diff --git a/reports/pvs/PVS-studio.err b/reports/pvs/PVS-studio.err index cf77c0d294b7..02db25756596 100644 --- a/reports/pvs/PVS-studio.err +++ b/reports/pvs/PVS-studio.err @@ -3,7 +3,7 @@ pvs-studio.com/en/docs/warnings/:1:1: error: Help: The documentation for all ana ./src/mpack/mpack_core.c:31:1: warning: V1071 Consider inspecting the 'mpack_w1' function. The return value is not always used. Total calls: 48, discarded results: 5. ./src/mpack/rpc.c:248:1: warning: V1086 A call of the 'memcpy' function will lead to underflow of the buffer 'dst'. ./src/mpack/rpc.c:248:1: warning: V1086 A call of the 'memcpy' function will lead to underflow of the buffer 'src'. -./src/nvim/marktree.h:97:1: error: V629 Consider inspecting the 'id << 1' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. +./src/nvim/marktree.h:99:1: error: V629 Consider inspecting the 'id << 1' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. ./src/nvim/api/private/helpers.c:810:1: warning: V601 Pointer is implicitly cast to an integer type. Inspect the second argument. ./src/nvim/api/ui.c:80:1: error: V564 The '|' operator is applied to bool type value. You've probably forgotten to include parentheses or intended to use the '||' operator. ./src/nvim/base64.c:1:1: error: V009 To use free version of PVS-Studio, source code files are required to start with a special comment. @@ -18,8 +18,8 @@ pvs-studio.com/en/docs/warnings/:1:1: error: Help: The documentation for all ana ./src/nvim/ex_getln.c:3103:1: error: V595 The 'colored_ccline->cmdbuff' pointer was utilized before it was verified against nullptr. Check lines: 3103, 3109. ./src/nvim/fileio.c:3336:1: warning: V557 Array overrun is possible. The value of 'strlen(tmp) - strlen(user)' index could reach 18446744073709551615. ./src/nvim/help.c:1012:1: error: V781 The value of the 'len' index is checked after it was used. Perhaps there is a mistake in program logic. -./src/nvim/lua/base64.c:1:1: error: V009 To use free version of PVS-Studio, source code files are required to start with a special comment. ./src/nvim/insexpand.c:2810:1: warning: V1048 The 'ret' variable was assigned the same value. +./src/nvim/lua/base64.c:1:1: error: V009 To use free version of PVS-Studio, source code files are required to start with a special comment. ./src/nvim/log.c:183:1: warning: V601 Pointer is implicitly cast to an integer type. Inspect the second argument. ./src/nvim/log.c:286:1: warning: V601 Pointer is implicitly cast to an integer type. Inspect the second argument. ./src/nvim/lua/stdlib.c:663:1: warning: V601 Pointer is implicitly cast to an integer type. Inspect the second argument. diff --git a/reports/pvs/PVS-studio.html.d/index.html b/reports/pvs/PVS-studio.html.d/index.html index 52bfd7030483..baa681038c4b 100644 --- a/reports/pvs/PVS-studio.html.d/index.html +++ b/reports/pvs/PVS-studio.html.d/index.html @@ -34,7 +34,7 @@

PVS-Studio Analysis Results


- + @@ -78,7 +78,7 @@

PVS-Studio Analysis Results

- + @@ -181,20 +181,20 @@

PVS-Studio Analysis Results

- - - - - - - - + + + + + + + + diff --git a/reports/pvs/PVS-studio.html.d/sources/base64.c_15.html b/reports/pvs/PVS-studio.html.d/sources/base64.c_16.html similarity index 100% rename from reports/pvs/PVS-studio.html.d/sources/base64.c_15.html rename to reports/pvs/PVS-studio.html.d/sources/base64.c_16.html diff --git a/reports/pvs/PVS-studio.html.d/sources/insexpand.c_16.html b/reports/pvs/PVS-studio.html.d/sources/insexpand.c_15.html similarity index 100% rename from reports/pvs/PVS-studio.html.d/sources/insexpand.c_16.html rename to reports/pvs/PVS-studio.html.d/sources/insexpand.c_15.html diff --git a/reports/pvs/PVS-studio.html.d/sources/marktree.c_20.html b/reports/pvs/PVS-studio.html.d/sources/marktree.c_20.html index def4bacb8bdf..6d7502ca0890 100644 --- a/reports/pvs/PVS-studio.html.d/sources/marktree.c_20.html +++ b/reports/pvs/PVS-studio.html.d/sources/marktree.c_20.html @@ -1155,1172 +1155,1177 @@ // TODO(bfredl): clean up this mess and re-instantiate &= and |= forms // once we upgrade to a non-broken version of gcc in functionaltest-lua CI rawkey(itr).flags = (uint16_t)(rawkey(itr).flags & (uint16_t) ~MT_FLAG_DECOR_MASK); - rawkey(itr).flags = (uint16_t)(rawkey(itr).flags - | (uint16_t)(decor_level << MT_FLAG_DECOR_OFFSET) - | (uint16_t)(key.flags & MT_FLAG_DECOR_MASK)); - rawkey(itr).decor_full = key.decor_full; - rawkey(itr).hl_id = key.hl_id; - rawkey(itr).priority = key.priority; -} - -/// @param itr iterator is invalid after call -void marktree_move(MarkTree *b, MarkTreeIter *itr, int row, int col) -{ - MTKey key = rawkey(itr); - MTNode *x = itr->x; - if (!x->level) { - bool internal = false; - MTPos newpos = MTPos(row, col); - if (x->parent != NULL) { - // strictly _after_ key before `x` - // (not optimal when x is very first leaf of the entire tree, but that's fine) - if (pos_less(itr->pos, newpos)) { - relative(itr->pos, &newpos); - - // strictly before the end of x. (this could be made sharper by - // finding the internal key just after x, but meh) - if (pos_less(newpos, x->key[x->n - 1].pos)) { - internal = true; - } - } - } else { - // tree is one node. newpos thus is already "relative" itr->pos - internal = true; - } - - if (internal) { - if (key.pos.row == newpos.row && key.pos.col == newpos.col) { - return; - } - key.pos = newpos; - bool match; - // tricky: could minimize movement in either direction better - int new_i = marktree_getp_aux(x, key, &match); - if (!match) { - new_i++; - } - if (new_i == itr->i) { - x->key[itr->i].pos = newpos; - } else if (new_i < itr->i) { - memmove(&x->key[new_i + 1], &x->key[new_i], sizeof(MTKey) * (size_t)(itr->i - new_i)); - x->key[new_i] = key; - } else if (new_i > itr->i) { - memmove(&x->key[itr->i], &x->key[itr->i + 1], sizeof(MTKey) * (size_t)(new_i - itr->i - 1)); - x->key[new_i - 1] = key; - } - return; - } - } - uint64_t other = marktree_del_itr(b, itr, false); - key.pos = (MTPos){ row, col }; - - marktree_put_key(b, key); - - if (other) { - marktree_restore_pair(b, key); - } - itr->x = NULL; // itr might become invalid by put -} - -void marktree_restore_pair(MarkTree *b, MTKey key) -{ - MarkTreeIter itr[1]; - MarkTreeIter end_itr[1]; - marktree_lookup(b, mt_lookup_key_side(key, false), itr); - marktree_lookup(b, mt_lookup_key_side(key, true), end_itr); - if (!itr->x || !end_itr->x) { - // this could happen if the other end is waiting to be restored later - // this function will be called again for the other end. - return; - } - rawkey(itr).flags &= (uint16_t) ~MT_FLAG_ORPHANED; - rawkey(end_itr).flags &= (uint16_t) ~MT_FLAG_ORPHANED; - - marktree_intersect_pair(b, mt_lookup_key_side(key, false), itr, end_itr, false); -} - -// itr functions + rawkey(itr).flags = (uint16_t)(rawkey(itr).flags & (uint16_t) ~MT_FLAG_INVALID); + rawkey(itr).flags = (uint16_t)(rawkey(itr).flags + | (uint16_t)(decor_level << MT_FLAG_DECOR_OFFSET) + | (uint16_t)(key.flags & MT_FLAG_DECOR_MASK) + | (uint16_t)(key.flags & MT_FLAG_HL_EOL) + | (uint16_t)(key.flags & MT_FLAG_NO_UNDO) + | (uint16_t)(key.flags & MT_FLAG_INVALID) + | (uint16_t)(key.flags & MT_FLAG_INVALIDATE)); + rawkey(itr).decor_full = key.decor_full; + rawkey(itr).hl_id = key.hl_id; + rawkey(itr).priority = key.priority; +} + +/// @param itr iterator is invalid after call +void marktree_move(MarkTree *b, MarkTreeIter *itr, int row, int col) +{ + MTKey key = rawkey(itr); + MTNode *x = itr->x; + if (!x->level) { + bool internal = false; + MTPos newpos = MTPos(row, col); + if (x->parent != NULL) { + // strictly _after_ key before `x` + // (not optimal when x is very first leaf of the entire tree, but that's fine) + if (pos_less(itr->pos, newpos)) { + relative(itr->pos, &newpos); + + // strictly before the end of x. (this could be made sharper by + // finding the internal key just after x, but meh) + if (pos_less(newpos, x->key[x->n - 1].pos)) { + internal = true; + } + } + } else { + // tree is one node. newpos thus is already "relative" itr->pos + internal = true; + } + + if (internal) { + if (key.pos.row == newpos.row && key.pos.col == newpos.col) { + return; + } + key.pos = newpos; + bool match; + // tricky: could minimize movement in either direction better + int new_i = marktree_getp_aux(x, key, &match); + if (!match) { + new_i++; + } + if (new_i == itr->i) { + x->key[itr->i].pos = newpos; + } else if (new_i < itr->i) { + memmove(&x->key[new_i + 1], &x->key[new_i], sizeof(MTKey) * (size_t)(itr->i - new_i)); + x->key[new_i] = key; + } else if (new_i > itr->i) { + memmove(&x->key[itr->i], &x->key[itr->i + 1], sizeof(MTKey) * (size_t)(new_i - itr->i - 1)); + x->key[new_i - 1] = key; + } + return; + } + } + uint64_t other = marktree_del_itr(b, itr, false); + key.pos = (MTPos){ row, col }; + + marktree_put_key(b, key); + + if (other) { + marktree_restore_pair(b, key); + } + itr->x = NULL; // itr might become invalid by put +} + +void marktree_restore_pair(MarkTree *b, MTKey key) +{ + MarkTreeIter itr[1]; + MarkTreeIter end_itr[1]; + marktree_lookup(b, mt_lookup_key_side(key, false), itr); + marktree_lookup(b, mt_lookup_key_side(key, true), end_itr); + if (!itr->x || !end_itr->x) { + // this could happen if the other end is waiting to be restored later + // this function will be called again for the other end. + return; + } + rawkey(itr).flags &= (uint16_t) ~MT_FLAG_ORPHANED; + rawkey(end_itr).flags &= (uint16_t) ~MT_FLAG_ORPHANED; -bool marktree_itr_get(MarkTree *b, int32_t row, int col, MarkTreeIter *itr) -{ - return marktree_itr_get_ext(b, MTPos(row, col), itr, false, false, NULL); -} + marktree_intersect_pair(b, mt_lookup_key_side(key, false), itr, end_itr, false); +} + +// itr functions -bool marktree_itr_get_ext(MarkTree *b, MTPos p, MarkTreeIter *itr, bool last, bool gravity, - MTPos *oldbase) -{ - if (b->n_keys == 0) { - itr->x = NULL; - return false; - } - - MTKey k = { .pos = p, .flags = gravity ? MT_FLAG_RIGHT_GRAVITY : 0 }; - if (last && !gravity) { - k.flags = MT_FLAG_LAST; +bool marktree_itr_get(MarkTree *b, int32_t row, int col, MarkTreeIter *itr) +{ + return marktree_itr_get_ext(b, MTPos(row, col), itr, false, false, NULL); +} + +bool marktree_itr_get_ext(MarkTree *b, MTPos p, MarkTreeIter *itr, bool last, bool gravity, + MTPos *oldbase) +{ + if (b->n_keys == 0) { + itr->x = NULL; + return false; } - itr->pos = (MTPos){ 0, 0 }; - itr->x = b->root; - itr->lvl = 0; - if (oldbase) { - oldbase[itr->lvl] = itr->pos; - } - while (true) { - itr->i = marktree_getp_aux(itr->x, k, 0) + 1; - - if (itr->x->level == 0) { - break; - } - - itr->s[itr->lvl].i = itr->i; - itr->s[itr->lvl].oldcol = itr->pos.col; - - if (itr->i > 0) { - compose(&itr->pos, itr->x->key[itr->i - 1].pos); - relative(itr->x->key[itr->i - 1].pos, &k.pos); - } - itr->x = itr->x->ptr[itr->i]; - itr->lvl++; - if (oldbase) { - oldbase[itr->lvl] = itr->pos; + + MTKey k = { .pos = p, .flags = gravity ? MT_FLAG_RIGHT_GRAVITY : 0 }; + if (last && !gravity) { + k.flags = MT_FLAG_LAST; + } + itr->pos = (MTPos){ 0, 0 }; + itr->x = b->root; + itr->lvl = 0; + if (oldbase) { + oldbase[itr->lvl] = itr->pos; + } + while (true) { + itr->i = marktree_getp_aux(itr->x, k, 0) + 1; + + if (itr->x->level == 0) { + break; + } + + itr->s[itr->lvl].i = itr->i; + itr->s[itr->lvl].oldcol = itr->pos.col; + + if (itr->i > 0) { + compose(&itr->pos, itr->x->key[itr->i - 1].pos); + relative(itr->x->key[itr->i - 1].pos, &k.pos); } - } - - if (last) { - return marktree_itr_prev(b, itr); - } else if (itr->i >= itr->x->n) { - return marktree_itr_next(b, itr); - } - return true; -} - -bool marktree_itr_first(MarkTree *b, MarkTreeIter *itr) -{ - if (b->n_keys == 0) { - itr->x = NULL; - return false; - } - - itr->x = b->root; - itr->i = 0; - itr->lvl = 0; - itr->pos = MTPos(0, 0); - while (itr->x->level > 0) { - itr->s[itr->lvl].i = 0; - itr->s[itr->lvl].oldcol = 0; - itr->lvl++; - itr->x = itr->x->ptr[0]; - } - return true; -} - -// gives the first key that is greater or equal to p -int marktree_itr_last(MarkTree *b, MarkTreeIter *itr) -{ - if (b->n_keys == 0) { - itr->x = NULL; - return false; - } - itr->pos = MTPos(0, 0); - itr->x = b->root; - itr->lvl = 0; - while (true) { - itr->i = itr->x->n; - - if (itr->x->level == 0) { - break; - } - - itr->s[itr->lvl].i = itr->i; - itr->s[itr->lvl].oldcol = itr->pos.col; - - assert(itr->i > 0); - compose(&itr->pos, itr->x->key[itr->i - 1].pos); - - itr->x = itr->x->ptr[itr->i]; - itr->lvl++; - } - itr->i--; - return true; -} - -bool marktree_itr_next(MarkTree *b, MarkTreeIter *itr) -{ - return marktree_itr_next_skip(b, itr, false, false, NULL); + itr->x = itr->x->ptr[itr->i]; + itr->lvl++; + if (oldbase) { + oldbase[itr->lvl] = itr->pos; + } + } + + if (last) { + return marktree_itr_prev(b, itr); + } else if (itr->i >= itr->x->n) { + return marktree_itr_next(b, itr); + } + return true; +} + +bool marktree_itr_first(MarkTree *b, MarkTreeIter *itr) +{ + if (b->n_keys == 0) { + itr->x = NULL; + return false; + } + + itr->x = b->root; + itr->i = 0; + itr->lvl = 0; + itr->pos = MTPos(0, 0); + while (itr->x->level > 0) { + itr->s[itr->lvl].i = 0; + itr->s[itr->lvl].oldcol = 0; + itr->lvl++; + itr->x = itr->x->ptr[0]; + } + return true; +} + +// gives the first key that is greater or equal to p +int marktree_itr_last(MarkTree *b, MarkTreeIter *itr) +{ + if (b->n_keys == 0) { + itr->x = NULL; + return false; + } + itr->pos = MTPos(0, 0); + itr->x = b->root; + itr->lvl = 0; + while (true) { + itr->i = itr->x->n; + + if (itr->x->level == 0) { + break; + } + + itr->s[itr->lvl].i = itr->i; + itr->s[itr->lvl].oldcol = itr->pos.col; + + assert(itr->i > 0); + compose(&itr->pos, itr->x->key[itr->i - 1].pos); + + itr->x = itr->x->ptr[itr->i]; + itr->lvl++; + } + itr->i--; + return true;} -static bool marktree_itr_next_skip(MarkTree *b, MarkTreeIter *itr, bool skip, bool preload, - MTPos oldbase[]) -{ - if (!itr->x) { - return false; - } - itr->i++; - if (itr->x->level == 0 || skip) { - if (preload && itr->x->level == 0 && skip) { - // skip rest of this leaf node - itr->i = itr->x->n; - } else if (itr->i < itr->x->n) { - // TODO(bfredl): this is the common case, - // and could be handled by inline wrapper - return true; - } - // we ran out of non-internal keys. Go up until we find an internal key - while (itr->i >= itr->x->n) { - itr->x = itr->x->parent; - if (itr->x == NULL) { - return false; - } - itr->lvl--; - itr->i = itr->s[itr->lvl].i; - if (itr->i > 0) { - itr->pos.row -= itr->x->key[itr->i - 1].pos.row; - itr->pos.col = itr->s[itr->lvl].oldcol; - } - } - } else { - // we stood at an "internal" key. Go down to the first non-internal - // key after it. - while (itr->x->level > 0) { - // internal key, there is always a child after - if (itr->i > 0) { - itr->s[itr->lvl].oldcol = itr->pos.col; - compose(&itr->pos, itr->x->key[itr->i - 1].pos); - } - if (oldbase && itr->i == 0) { - oldbase[itr->lvl + 1] = oldbase[itr->lvl]; - } - itr->s[itr->lvl].i = itr->i; - assert(itr->x->ptr[itr->i]->parent == itr->x); - itr->lvl++; - itr->x = itr->x->ptr[itr->i]; - if (preload && itr->x->level) { - itr->i = -1; - break; - } else { - itr->i = 0; - } - } - } - return true; -} - -bool marktree_itr_prev(MarkTree *b, MarkTreeIter *itr) -{ - if (!itr->x) { - return false; - } - if (itr->x->level == 0) { - itr->i--; - if (itr->i >= 0) { - // TODO(bfredl): this is the common case, - // and could be handled by inline wrapper - return true; - } - // we ran out of non-internal keys. Go up until we find a non-internal key - while (itr->i < 0) { - itr->x = itr->x->parent; - if (itr->x == NULL) { - return false; - } - itr->lvl--; - itr->i = itr->s[itr->lvl].i - 1; - if (itr->i >= 0) { - itr->pos.row -= itr->x->key[itr->i].pos.row; - itr->pos.col = itr->s[itr->lvl].oldcol; - } - } - } else { - // we stood at an "internal" key. Go down to the last non-internal - // key before it. - while (itr->x->level > 0) { - // internal key, there is always a child before - if (itr->i > 0) { - itr->s[itr->lvl].oldcol = itr->pos.col; - compose(&itr->pos, itr->x->key[itr->i - 1].pos); - } - itr->s[itr->lvl].i = itr->i; - assert(itr->x->ptr[itr->i]->parent == itr->x); - itr->x = itr->x->ptr[itr->i]; - itr->i = itr->x->n; - itr->lvl++; - } - itr->i--; - } - return true; -} - -bool marktree_itr_node_done(MarkTreeIter *itr) -{ - return !itr->x || itr->i == itr->x->n - 1; +bool marktree_itr_next(MarkTree *b, MarkTreeIter *itr) +{ + return marktree_itr_next_skip(b, itr, false, false, NULL); +} + +static bool marktree_itr_next_skip(MarkTree *b, MarkTreeIter *itr, bool skip, bool preload, + MTPos oldbase[]) +{ + if (!itr->x) { + return false; + } + itr->i++; + if (itr->x->level == 0 || skip) { + if (preload && itr->x->level == 0 && skip) { + // skip rest of this leaf node + itr->i = itr->x->n; + } else if (itr->i < itr->x->n) { + // TODO(bfredl): this is the common case, + // and could be handled by inline wrapper + return true; + } + // we ran out of non-internal keys. Go up until we find an internal key + while (itr->i >= itr->x->n) { + itr->x = itr->x->parent; + if (itr->x == NULL) { + return false; + } + itr->lvl--; + itr->i = itr->s[itr->lvl].i; + if (itr->i > 0) { + itr->pos.row -= itr->x->key[itr->i - 1].pos.row; + itr->pos.col = itr->s[itr->lvl].oldcol; + } + } + } else { + // we stood at an "internal" key. Go down to the first non-internal + // key after it. + while (itr->x->level > 0) { + // internal key, there is always a child after + if (itr->i > 0) { + itr->s[itr->lvl].oldcol = itr->pos.col; + compose(&itr->pos, itr->x->key[itr->i - 1].pos); + } + if (oldbase && itr->i == 0) { + oldbase[itr->lvl + 1] = oldbase[itr->lvl]; + } + itr->s[itr->lvl].i = itr->i; + assert(itr->x->ptr[itr->i]->parent == itr->x); + itr->lvl++; + itr->x = itr->x->ptr[itr->i]; + if (preload && itr->x->level) { + itr->i = -1; + break; + } else { + itr->i = 0; + } + } + } + return true; +} + +bool marktree_itr_prev(MarkTree *b, MarkTreeIter *itr) +{ + if (!itr->x) { + return false; + } + if (itr->x->level == 0) { + itr->i--; + if (itr->i >= 0) { + // TODO(bfredl): this is the common case, + // and could be handled by inline wrapper + return true; + } + // we ran out of non-internal keys. Go up until we find a non-internal key + while (itr->i < 0) { + itr->x = itr->x->parent; + if (itr->x == NULL) { + return false; + } + itr->lvl--; + itr->i = itr->s[itr->lvl].i - 1; + if (itr->i >= 0) { + itr->pos.row -= itr->x->key[itr->i].pos.row; + itr->pos.col = itr->s[itr->lvl].oldcol; + } + } + } else { + // we stood at an "internal" key. Go down to the last non-internal + // key before it. + while (itr->x->level > 0) { + // internal key, there is always a child before + if (itr->i > 0) { + itr->s[itr->lvl].oldcol = itr->pos.col; + compose(&itr->pos, itr->x->key[itr->i - 1].pos); + } + itr->s[itr->lvl].i = itr->i; + assert(itr->x->ptr[itr->i]->parent == itr->x); + itr->x = itr->x->ptr[itr->i]; + itr->i = itr->x->n; + itr->lvl++; + } + itr->i--; + } + return true;} -MTPos marktree_itr_pos(MarkTreeIter *itr) +bool marktree_itr_node_done(MarkTreeIter *itr){ - MTPos pos = rawkey(itr).pos; - unrelative(itr->pos, &pos); - return pos; -} - -MTKey marktree_itr_current(MarkTreeIter *itr) -{ - if (itr->x) { - MTKey key = rawkey(itr); - key.pos = marktree_itr_pos(itr); - return key; - } - return MT_INVALID_KEY; -} - -static bool itr_eq(MarkTreeIter *itr1, MarkTreeIter *itr2) -{ - return (&rawkey(itr1) == &rawkey(itr2)); + return !itr->x || itr->i == itr->x->n - 1; +} + +MTPos marktree_itr_pos(MarkTreeIter *itr) +{ + MTPos pos = rawkey(itr).pos; + unrelative(itr->pos, &pos); + return pos; +} + +MTKey marktree_itr_current(MarkTreeIter *itr) +{ + if (itr->x) { + MTKey key = rawkey(itr); + key.pos = marktree_itr_pos(itr); + return key; + } + return MT_INVALID_KEY;} -/// Get all marks which overlaps the position (row,col) -/// -/// After calling this function, use marktree_itr_step_overlap to step through -/// one overlapping mark at a time, until it returns false -/// -/// NOTE: It's possible to get all marks which overlaps a region (row,col) to (row_end,col_end) -/// To do this, first call marktree_itr_get_overlap with the start position and -/// keep calling marktree_itr_step_overlap until it returns false. -/// After this, as a second loop, keep calling the marktree_itr_next() until -/// the iterator is invalid or reaches past (row_end, col_end). In this loop, -/// consider all "start" marks (and unpaired marks if relevant), but skip over -/// all "end" marks, using mt_end(mark). -/// -/// @return false if we already know no marks can be found -/// even if "true" the first call to marktree_itr_step_overlap -/// could return false -bool marktree_itr_get_overlap(MarkTree *b, int row, int col, MarkTreeIter *itr) -{ - if (b->n_keys == 0) { - itr->x = NULL; - return false; - } - - itr->x = b->root; - itr->i = -1; - itr->lvl = 0; - itr->pos = MTPos(0, 0); - itr->intersect_pos = MTPos(row, col); - // intersect_pos but will be adjusted relative itr->x - itr->intersect_pos_x = MTPos(row, col); - itr->intersect_idx = 0; - return true; -} - -static inline MTPair pair_from(MTKey start, MTKey end) -{ - return (MTPair){ .start = start, .end_pos = end.pos, .end_right_gravity = mt_right(end) }; +static bool itr_eq(MarkTreeIter *itr1, MarkTreeIter *itr2) +{ + return (&rawkey(itr1) == &rawkey(itr2)); +} + +/// Get all marks which overlaps the position (row,col) +/// +/// After calling this function, use marktree_itr_step_overlap to step through +/// one overlapping mark at a time, until it returns false +/// +/// NOTE: It's possible to get all marks which overlaps a region (row,col) to (row_end,col_end) +/// To do this, first call marktree_itr_get_overlap with the start position and +/// keep calling marktree_itr_step_overlap until it returns false. +/// After this, as a second loop, keep calling the marktree_itr_next() until +/// the iterator is invalid or reaches past (row_end, col_end). In this loop, +/// consider all "start" marks (and unpaired marks if relevant), but skip over +/// all "end" marks, using mt_end(mark). +/// +/// @return false if we already know no marks can be found +/// even if "true" the first call to marktree_itr_step_overlap +/// could return false +bool marktree_itr_get_overlap(MarkTree *b, int row, int col, MarkTreeIter *itr) +{ + if (b->n_keys == 0) { + itr->x = NULL; + return false; + } + + itr->x = b->root; + itr->i = -1; + itr->lvl = 0; + itr->pos = MTPos(0, 0); + itr->intersect_pos = MTPos(row, col); + // intersect_pos but will be adjusted relative itr->x + itr->intersect_pos_x = MTPos(row, col); + itr->intersect_idx = 0; + return true;} -/// Step through all overlapping pairs at a position. -/// -/// This function must only be used with an iterator from |marktree_itr_step_overlap| -/// -/// @return true if a valid pair was found (returned as `pair`) -/// When all overlapping mark pairs have been found, false will be returned. `itr` -/// is then valid as an ordinary iterator at the (row, col) position specified in -/// marktree_itr_step_overlap -bool marktree_itr_step_overlap(MarkTree *b, MarkTreeIter *itr, MTPair *pair) -{ - // phase one: we start at the root node and step inwards towards itr->intersect_pos - // (the position queried in marktree_itr_get_overlap) - // - // For each node (ancestor node to the node containing the sought position) - // we return all intersecting intervals, one at a time - while (itr->i == -1) { - if (itr->intersect_idx < kv_size(itr->x->intersect)) { - uint64_t id = kv_A(itr->x->intersect, itr->intersect_idx++); - *pair = pair_from(marktree_lookup(b, id, NULL), - marktree_lookup(b, id|MARKTREE_END_FLAG, NULL)); - return true; - } - - if (itr->x->level == 0) { - itr->s[itr->lvl].i = itr->i = 0; - break; +static inline MTPair pair_from(MTKey start, MTKey end) +{ + return (MTPair){ .start = start, .end_pos = end.pos, .end_right_gravity = mt_right(end) }; +} + +/// Step through all overlapping pairs at a position. +/// +/// This function must only be used with an iterator from |marktree_itr_step_overlap| +/// +/// @return true if a valid pair was found (returned as `pair`) +/// When all overlapping mark pairs have been found, false will be returned. `itr` +/// is then valid as an ordinary iterator at the (row, col) position specified in +/// marktree_itr_step_overlap +bool marktree_itr_step_overlap(MarkTree *b, MarkTreeIter *itr, MTPair *pair) +{ + // phase one: we start at the root node and step inwards towards itr->intersect_pos + // (the position queried in marktree_itr_get_overlap) + // + // For each node (ancestor node to the node containing the sought position) + // we return all intersecting intervals, one at a time + while (itr->i == -1) { + if (itr->intersect_idx < kv_size(itr->x->intersect)) { + uint64_t id = kv_A(itr->x->intersect, itr->intersect_idx++); + *pair = pair_from(marktree_lookup(b, id, NULL), + marktree_lookup(b, id|MARKTREE_END_FLAG, NULL)); + return true; } - MTKey k = { .pos = itr->intersect_pos_x, .flags = 0 }; - itr->i = marktree_getp_aux(itr->x, k, 0) + 1; - - itr->s[itr->lvl].i = itr->i; - itr->s[itr->lvl].oldcol = itr->pos.col; - - if (itr->i > 0) { - compose(&itr->pos, itr->x->key[itr->i - 1].pos); - relative(itr->x->key[itr->i - 1].pos, &itr->intersect_pos_x); - } - itr->x = itr->x->ptr[itr->i]; - itr->lvl++; - itr->i = -1; - itr->intersect_idx = 0; - } - - // phase two: we now need to handle the node found at itr->intersect_pos - // first consider all start nodes in the node before this position. - while (itr->i < itr->x->n && pos_less(rawkey(itr).pos, itr->intersect_pos_x)) { - MTKey k = itr->x->key[itr->i++]; - itr->s[itr->lvl].i = itr->i; - if (mt_start(k)) { - MTKey end = marktree_lookup(b, mt_lookup_id(k.ns, k.id, true), NULL); - if (pos_less(end.pos, itr->intersect_pos)) { - continue; - } - - unrelative(itr->pos, &k.pos); - *pair = pair_from(k, end); - return true; // it's a start! - } - } - - // phase 2B: We also need to step to the end of this node and consider all end marks, which - // might end an interval overlapping itr->intersect_pos - while (itr->i < itr->x->n) { - MTKey k = itr->x->key[itr->i++]; - if (mt_end(k)) { - uint64_t id = mt_lookup_id(k.ns, k.id, false); - if (id2node(b, id) == itr->x) { - continue; - } - unrelative(itr->pos, &k.pos); - MTKey start = marktree_lookup(b, id, NULL); - if (pos_less(itr->intersect_pos, start.pos)) { + if (itr->x->level == 0) { + itr->s[itr->lvl].i = itr->i = 0; + break; + } + + MTKey k = { .pos = itr->intersect_pos_x, .flags = 0 }; + itr->i = marktree_getp_aux(itr->x, k, 0) + 1; + + itr->s[itr->lvl].i = itr->i; + itr->s[itr->lvl].oldcol = itr->pos.col; + + if (itr->i > 0) { + compose(&itr->pos, itr->x->key[itr->i - 1].pos); + relative(itr->x->key[itr->i - 1].pos, &itr->intersect_pos_x); + } + itr->x = itr->x->ptr[itr->i]; + itr->lvl++; + itr->i = -1; + itr->intersect_idx = 0; + } + + // phase two: we now need to handle the node found at itr->intersect_pos + // first consider all start nodes in the node before this position. + while (itr->i < itr->x->n && pos_less(rawkey(itr).pos, itr->intersect_pos_x)) { + MTKey k = itr->x->key[itr->i++]; + itr->s[itr->lvl].i = itr->i; + if (mt_start(k)) { + MTKey end = marktree_lookup(b, mt_lookup_id(k.ns, k.id, true), NULL); + if (pos_less(end.pos, itr->intersect_pos)) { + continue; + } + + unrelative(itr->pos, &k.pos); + *pair = pair_from(k, end); + return true; // it's a start! + } + } + + // phase 2B: We also need to step to the end of this node and consider all end marks, which + // might end an interval overlapping itr->intersect_pos + while (itr->i < itr->x->n) { + MTKey k = itr->x->key[itr->i++]; + if (mt_end(k)) { + uint64_t id = mt_lookup_id(k.ns, k.id, false); + if (id2node(b, id) == itr->x) { continue; } - *pair = pair_from(start, k); - return true; // end of a range which began before us! - } - } - - // when returning false, get back to the queried position, to ensure the caller - // can keep using it as an ordinary iterator at the queried position. The docstring - // for marktree_itr_get_overlap explains how this is useful. - itr->i = itr->s[itr->lvl].i; - assert(itr->i >= 0); - if (itr->i >= itr->x->n) { - marktree_itr_next(b, itr); - } - - // either on or after the intersected position, bail out - return false; -} - -static void swap_keys(MarkTree *b, MarkTreeIter *itr1, MarkTreeIter *itr2, DamageList *damage) -{ - if (itr1->x != itr2->x) { - if (mt_paired(rawkey(itr1))) { - kvi_push(*damage, ((Damage){ mt_lookup_key(rawkey(itr1)), itr1->x, itr2->x, - itr1->i, itr2->i })); - } - if (mt_paired(rawkey(itr2))) { - kvi_push(*damage, ((Damage){ mt_lookup_key(rawkey(itr2)), itr2->x, itr1->x, - itr2->i, itr1->i })); - } - } - - MTKey key1 = rawkey(itr1); - MTKey key2 = rawkey(itr2); - rawkey(itr1) = key2; - rawkey(itr1).pos = key1.pos; - rawkey(itr2) = key1; - rawkey(itr2).pos = key2.pos; - refkey(b, itr1->x, itr1->i); - refkey(b, itr2->x, itr2->i); -} - -static int damage_cmp(const void *s1, const void *s2) -{ - Damage *d1 = (Damage *)s1, *d2 = (Damage *)s2; - assert(d1->id != d2->id); - return d1->id > d2->id ? 1 : -1; -} - -bool marktree_splice(MarkTree *b, int32_t start_line, int start_col, int old_extent_line, - int old_extent_col, int new_extent_line, int new_extent_col) -{ - MTPos start = { start_line, start_col }; - MTPos old_extent = { old_extent_line, old_extent_col }; - MTPos new_extent = { new_extent_line, new_extent_col }; - - bool may_delete = (old_extent.row != 0 || old_extent.col != 0); - bool same_line = old_extent.row == 0 && new_extent.row == 0; - unrelative(start, &old_extent); - unrelative(start, &new_extent); - MarkTreeIter itr[1] = { 0 }, enditr[1] = { 0 }; - - MTPos oldbase[MT_MAX_DEPTH] = { 0 }; - - marktree_itr_get_ext(b, start, itr, false, true, oldbase); - if (!itr->x) { - // den e FÄRDIG - return false; - } - MTPos delta = { new_extent.row - old_extent.row, - new_extent.col - old_extent.col }; - - if (may_delete) { - MTPos ipos = marktree_itr_pos(itr); - if (!pos_leq(old_extent, ipos) - || (old_extent.row == ipos.row && old_extent.col == ipos.col - && !mt_right(rawkey(itr)))) { - marktree_itr_get_ext(b, old_extent, enditr, true, true, NULL); - assert(enditr->x); - // "assert" (itr <= enditr) - } else { - may_delete = false; - } - } - - bool past_right = false; - bool moved = false; - DamageList damage; - kvi_init(damage); + unrelative(itr->pos, &k.pos); + MTKey start = marktree_lookup(b, id, NULL); + if (pos_less(itr->intersect_pos, start.pos)) { + continue; + } + *pair = pair_from(start, k); + return true; // end of a range which began before us! + } + } + + // when returning false, get back to the queried position, to ensure the caller + // can keep using it as an ordinary iterator at the queried position. The docstring + // for marktree_itr_get_overlap explains how this is useful. + itr->i = itr->s[itr->lvl].i; + assert(itr->i >= 0); + if (itr->i >= itr->x->n) { + marktree_itr_next(b, itr); + } + + // either on or after the intersected position, bail out + return false; +} + +static void swap_keys(MarkTree *b, MarkTreeIter *itr1, MarkTreeIter *itr2, DamageList *damage) +{ + if (itr1->x != itr2->x) { + if (mt_paired(rawkey(itr1))) { + kvi_push(*damage, ((Damage){ mt_lookup_key(rawkey(itr1)), itr1->x, itr2->x, + itr1->i, itr2->i })); + } + if (mt_paired(rawkey(itr2))) { + kvi_push(*damage, ((Damage){ mt_lookup_key(rawkey(itr2)), itr2->x, itr1->x, + itr2->i, itr1->i })); + } + } + + MTKey key1 = rawkey(itr1); + MTKey key2 = rawkey(itr2); + rawkey(itr1) = key2; + rawkey(itr1).pos = key1.pos; + rawkey(itr2) = key1; + rawkey(itr2).pos = key2.pos; + refkey(b, itr1->x, itr1->i); + refkey(b, itr2->x, itr2->i); +} + +static int damage_cmp(const void *s1, const void *s2) +{ + Damage *d1 = (Damage *)s1, *d2 = (Damage *)s2; + assert(d1->id != d2->id); + return d1->id > d2->id ? 1 : -1; +} + +bool marktree_splice(MarkTree *b, int32_t start_line, int start_col, int old_extent_line, + int old_extent_col, int new_extent_line, int new_extent_col) +{ + MTPos start = { start_line, start_col }; + MTPos old_extent = { old_extent_line, old_extent_col }; + MTPos new_extent = { new_extent_line, new_extent_col }; + + bool may_delete = (old_extent.row != 0 || old_extent.col != 0); + bool same_line = old_extent.row == 0 && new_extent.row == 0; + unrelative(start, &old_extent); + unrelative(start, &new_extent); + MarkTreeIter itr[1] = { 0 }, enditr[1] = { 0 }; + + MTPos oldbase[MT_MAX_DEPTH] = { 0 }; + + marktree_itr_get_ext(b, start, itr, false, true, oldbase); + if (!itr->x) { + // den e FÄRDIG + return false; + } + MTPos delta = { new_extent.row - old_extent.row, + new_extent.col - old_extent.col }; + + if (may_delete) { + MTPos ipos = marktree_itr_pos(itr); + if (!pos_leq(old_extent, ipos) + || (old_extent.row == ipos.row && old_extent.col == ipos.col + && !mt_right(rawkey(itr)))) { + marktree_itr_get_ext(b, old_extent, enditr, true, true, NULL); + assert(enditr->x); + // "assert" (itr <= enditr) + } else { + may_delete = false; + } + } - // Follow the general strategy of messing things up and fix them later - // "oldbase" carries the information needed to calculate old position of - // children. - if (may_delete) { - while (itr->x && !past_right) { - MTPos loc_start = start; - MTPos loc_old = old_extent; - relative(itr->pos, &loc_start); - - relative(oldbase[itr->lvl], &loc_old); - -continue_same_node: - // NB: strictly should be less than the right gravity of loc_old, but - // the iter comparison below will already break on that. - if (!pos_leq(rawkey(itr).pos, loc_old)) { - break; - } - - if (mt_right(rawkey(itr))) { - while (!itr_eq(itr, enditr) - && mt_right(rawkey(enditr))) { - marktree_itr_prev(b, enditr); - } - if (!mt_right(rawkey(enditr))) { - swap_keys(b, itr, enditr, &damage); - } else { - past_right = true; // NOLINT - (void)past_right; - break; - } - } - - if (itr_eq(itr, enditr)) { - // actually, will be past_right after this key - past_right = true; + bool past_right = false; + bool moved = false; + DamageList damage; + kvi_init(damage); + + // Follow the general strategy of messing things up and fix them later + // "oldbase" carries the information needed to calculate old position of + // children. + if (may_delete) { + while (itr->x && !past_right) { + MTPos loc_start = start; + MTPos loc_old = old_extent; + relative(itr->pos, &loc_start); + + relative(oldbase[itr->lvl], &loc_old); + +continue_same_node: + // NB: strictly should be less than the right gravity of loc_old, but + // the iter comparison below will already break on that. + if (!pos_leq(rawkey(itr).pos, loc_old)) { + break; + } + + if (mt_right(rawkey(itr))) { + while (!itr_eq(itr, enditr) + && mt_right(rawkey(enditr))) { + marktree_itr_prev(b, enditr); + } + if (!mt_right(rawkey(enditr))) { + swap_keys(b, itr, enditr, &damage); + } else { + past_right = true; // NOLINT + (void)past_right; + break; + } } - moved = true; - if (itr->x->level) { - oldbase[itr->lvl + 1] = rawkey(itr).pos; - unrelative(oldbase[itr->lvl], &oldbase[itr->lvl + 1]); - rawkey(itr).pos = loc_start; - marktree_itr_next_skip(b, itr, false, false, oldbase); - } else { - rawkey(itr).pos = loc_start; - if (itr->i < itr->x->n - 1) { - itr->i++; - if (!past_right) { - goto continue_same_node; - } - } else { - marktree_itr_next(b, itr); - } - } - } - while (itr->x) { - MTPos loc_new = new_extent; - relative(itr->pos, &loc_new); - MTPos limit = old_extent; - - relative(oldbase[itr->lvl], &limit); - -past_continue_same_node: - - if (pos_leq(limit, rawkey(itr).pos)) { - break; - } - - MTPos oldpos = rawkey(itr).pos; - rawkey(itr).pos = loc_new; - moved = true; - if (itr->x->level) { - oldbase[itr->lvl + 1] = oldpos; - unrelative(oldbase[itr->lvl], &oldbase[itr->lvl + 1]); - - marktree_itr_next_skip(b, itr, false, false, oldbase); - } else { - if (itr->i < itr->x->n - 1) { - itr->i++; - goto past_continue_same_node; - } else { - marktree_itr_next(b, itr); - } - } - } - } - - while (itr->x) { - unrelative(oldbase[itr->lvl], &rawkey(itr).pos); - int realrow = rawkey(itr).pos.row; - assert(realrow >= old_extent.row); - bool done = false; - if (realrow == old_extent.row) { - if (delta.col) { - rawkey(itr).pos.col += delta.col; - } - } else { - if (same_line) { - // optimization: column only adjustment can skip remaining rows - done = true; + if (itr_eq(itr, enditr)) { + // actually, will be past_right after this key + past_right = true; + } + + moved = true; + if (itr->x->level) { + oldbase[itr->lvl + 1] = rawkey(itr).pos; + unrelative(oldbase[itr->lvl], &oldbase[itr->lvl + 1]); + rawkey(itr).pos = loc_start; + marktree_itr_next_skip(b, itr, false, false, oldbase); + } else { + rawkey(itr).pos = loc_start; + if (itr->i < itr->x->n - 1) { + itr->i++; + if (!past_right) { + goto continue_same_node; + } + } else { + marktree_itr_next(b, itr); + } + } + } + while (itr->x) { + MTPos loc_new = new_extent; + relative(itr->pos, &loc_new); + MTPos limit = old_extent; + + relative(oldbase[itr->lvl], &limit); + +past_continue_same_node: + + if (pos_leq(limit, rawkey(itr).pos)) { + break; + } + + MTPos oldpos = rawkey(itr).pos; + rawkey(itr).pos = loc_new; + moved = true; + if (itr->x->level) { + oldbase[itr->lvl + 1] = oldpos; + unrelative(oldbase[itr->lvl], &oldbase[itr->lvl + 1]); + + marktree_itr_next_skip(b, itr, false, false, oldbase); + } else { + if (itr->i < itr->x->n - 1) { + itr->i++; + goto past_continue_same_node; + } else { + marktree_itr_next(b, itr); + } + } + } + } + + while (itr->x) { + unrelative(oldbase[itr->lvl], &rawkey(itr).pos); + int realrow = rawkey(itr).pos.row; + assert(realrow >= old_extent.row); + bool done = false; + if (realrow == old_extent.row) { + if (delta.col) { + rawkey(itr).pos.col += delta.col; } - } - if (delta.row) { - rawkey(itr).pos.row += delta.row; - moved = true; - } - relative(itr->pos, &rawkey(itr).pos); - if (done) { - break; - } - marktree_itr_next_skip(b, itr, true, false, NULL); - } - - if (kv_size(damage)) { - // TODO(bfredl): a full sort is not really needed. we just need a "start" node to find - // its corresponding "end" node. Set up some dedicated hash for this later (c.f. the - // "grow only" variant of khash_t branch) - qsort((void *)&kv_A(damage, 0), kv_size(damage), sizeof(kv_A(damage, 0)), - damage_cmp); - - for (size_t i = 0; i < kv_size(damage); i++) { - Damage d = kv_A(damage, i); - assert(i == 0 || d.id > kv_A(damage, i - 1).id); - if (!(d.id & MARKTREE_END_FLAG)) { // start - if (i + 1 < kv_size(damage) && kv_A(damage, i + 1).id == (d.id | MARKTREE_END_FLAG)) { - Damage d2 = kv_A(damage, i + 1); - - // pair - marktree_itr_set_node(b, itr, d.old, d.old_i); - marktree_itr_set_node(b, enditr, d2.old, d2.old_i); - marktree_intersect_pair(b, d.id, itr, enditr, true); - marktree_itr_set_node(b, itr, d.new, d.new_i); - marktree_itr_set_node(b, enditr, d2.new, d2.new_i); - marktree_intersect_pair(b, d.id, itr, enditr, false); - - i++; // consume two items - continue; - } - - // d is lone start, end didn't move - MarkTreeIter endpos[1]; - marktree_lookup(b, d.id | MARKTREE_END_FLAG, endpos); - if (endpos->x) { - marktree_itr_set_node(b, itr, d.old, d.old_i); - *enditr = *endpos; - marktree_intersect_pair(b, d.id, itr, enditr, true); - marktree_itr_set_node(b, itr, d.new, d.new_i); - *enditr = *endpos; - marktree_intersect_pair(b, d.id, itr, enditr, false); - } - } else { - // d is lone end, start didn't move - MarkTreeIter startpos[1]; - uint64_t start_id = d.id & ~MARKTREE_END_FLAG; - - marktree_lookup(b, start_id, startpos); - if (startpos->x) { - *itr = *startpos; - marktree_itr_set_node(b, enditr, d.old, d.old_i); - marktree_intersect_pair(b, start_id, itr, enditr, true); - *itr = *startpos; - marktree_itr_set_node(b, enditr, d.new, d.new_i); - marktree_intersect_pair(b, start_id, itr, enditr, false); - } - } - } - } - kvi_destroy(damage); - - return moved; -} - -void marktree_move_region(MarkTree *b, int start_row, colnr_T start_col, int extent_row, - colnr_T extent_col, int new_row, colnr_T new_col) -{ - MTPos start = { start_row, start_col }, size = { extent_row, extent_col }; - MTPos end = size; - unrelative(start, &end); - MarkTreeIter itr[1] = { 0 }; - marktree_itr_get_ext(b, start, itr, false, true, NULL); - kvec_t(MTKey) saved = KV_INITIAL_VALUE; - while (itr->x) { - MTKey k = marktree_itr_current(itr); - if (!pos_leq(k.pos, end) || (k.pos.row == end.row && k.pos.col == end.col - && mt_right(k))) { - break; - } - relative(start, &k.pos); - kv_push(saved, k); - marktree_del_itr(b, itr, false); - } - - marktree_splice(b, start.row, start.col, size.row, size.col, 0, 0); - MTPos new = { new_row, new_col }; - marktree_splice(b, new.row, new.col, - 0, 0, size.row, size.col); + } else { + if (same_line) { + // optimization: column only adjustment can skip remaining rows + done = true; + } + } + if (delta.row) { + rawkey(itr).pos.row += delta.row; + moved = true; + } + relative(itr->pos, &rawkey(itr).pos); + if (done) { + break; + } + marktree_itr_next_skip(b, itr, true, false, NULL); + } + + if (kv_size(damage)) { + // TODO(bfredl): a full sort is not really needed. we just need a "start" node to find + // its corresponding "end" node. Set up some dedicated hash for this later (c.f. the + // "grow only" variant of khash_t branch) + qsort((void *)&kv_A(damage, 0), kv_size(damage), sizeof(kv_A(damage, 0)), + damage_cmp); + + for (size_t i = 0; i < kv_size(damage); i++) { + Damage d = kv_A(damage, i); + assert(i == 0 || d.id > kv_A(damage, i - 1).id); + if (!(d.id & MARKTREE_END_FLAG)) { // start + if (i + 1 < kv_size(damage) && kv_A(damage, i + 1).id == (d.id | MARKTREE_END_FLAG)) { + Damage d2 = kv_A(damage, i + 1); + + // pair + marktree_itr_set_node(b, itr, d.old, d.old_i); + marktree_itr_set_node(b, enditr, d2.old, d2.old_i); + marktree_intersect_pair(b, d.id, itr, enditr, true); + marktree_itr_set_node(b, itr, d.new, d.new_i); + marktree_itr_set_node(b, enditr, d2.new, d2.new_i); + marktree_intersect_pair(b, d.id, itr, enditr, false); + + i++; // consume two items + continue; + } + + // d is lone start, end didn't move + MarkTreeIter endpos[1]; + marktree_lookup(b, d.id | MARKTREE_END_FLAG, endpos); + if (endpos->x) { + marktree_itr_set_node(b, itr, d.old, d.old_i); + *enditr = *endpos; + marktree_intersect_pair(b, d.id, itr, enditr, true); + marktree_itr_set_node(b, itr, d.new, d.new_i); + *enditr = *endpos; + marktree_intersect_pair(b, d.id, itr, enditr, false); + } + } else { + // d is lone end, start didn't move + MarkTreeIter startpos[1]; + uint64_t start_id = d.id & ~MARKTREE_END_FLAG; + + marktree_lookup(b, start_id, startpos); + if (startpos->x) { + *itr = *startpos; + marktree_itr_set_node(b, enditr, d.old, d.old_i); + marktree_intersect_pair(b, start_id, itr, enditr, true); + *itr = *startpos; + marktree_itr_set_node(b, enditr, d.new, d.new_i); + marktree_intersect_pair(b, start_id, itr, enditr, false); + } + } + } + } + kvi_destroy(damage); + + return moved; +} + +void marktree_move_region(MarkTree *b, int start_row, colnr_T start_col, int extent_row, + colnr_T extent_col, int new_row, colnr_T new_col) +{ + MTPos start = { start_row, start_col }, size = { extent_row, extent_col }; + MTPos end = size; + unrelative(start, &end); + MarkTreeIter itr[1] = { 0 }; + marktree_itr_get_ext(b, start, itr, false, true, NULL); + kvec_t(MTKey) saved = KV_INITIAL_VALUE; + while (itr->x) { + MTKey k = marktree_itr_current(itr); + if (!pos_leq(k.pos, end) || (k.pos.row == end.row && k.pos.col == end.col + && mt_right(k))) { + break; + } + relative(start, &k.pos); + kv_push(saved, k); + marktree_del_itr(b, itr, false); + } - for (size_t i = 0; i < kv_size(saved); i++) { - MTKey item = kv_A(saved, i); - unrelative(new, &item.pos); - marktree_put_key(b, item); - if (mt_paired(item)) { - // other end might be later in `saved`, this will safely bail out then - marktree_restore_pair(b, item); - } - } - kv_destroy(saved); -} - -/// @param itr OPTIONAL. set itr to pos. -MTKey marktree_lookup_ns(MarkTree *b, uint32_t ns, uint32_t id, bool end, MarkTreeIter *itr) -{ - return marktree_lookup(b, mt_lookup_id(ns, id, end), itr); -} - -static uint64_t pseudo_index(MTNode *x, int i) + marktree_splice(b, start.row, start.col, size.row, size.col, 0, 0); + MTPos new = { new_row, new_col }; + marktree_splice(b, new.row, new.col, + 0, 0, size.row, size.col); + + for (size_t i = 0; i < kv_size(saved); i++) { + MTKey item = kv_A(saved, i); + unrelative(new, &item.pos); + marktree_put_key(b, item); + if (mt_paired(item)) { + // other end might be later in `saved`, this will safely bail out then + marktree_restore_pair(b, item); + } + } + kv_destroy(saved); +} + +/// @param itr OPTIONAL. set itr to pos. +MTKey marktree_lookup_ns(MarkTree *b, uint32_t ns, uint32_t id, bool end, MarkTreeIter *itr){ - int off = MT_LOG2_BRANCH * x->level; - uint64_t index = 0; + return marktree_lookup(b, mt_lookup_id(ns, id, end), itr); +} - while (x) { - index |= (uint64_t)(i + 1) << off; - off += MT_LOG2_BRANCH; - i = x->p_idx; - x = x->parent; - } - - return index; -} - -/// @param itr OPTIONAL. set itr to pos. -/// if sloppy, two keys at the same _leaf_ node has the same index -static uint64_t pseudo_index_for_id(MarkTree *b, uint64_t id, bool sloppy) -{ - MTNode *n = id2node(b, id); - if (n == NULL) { - return 0; // a valid pseudo-index is never zero! - } - - int i = 0; - if (n->level || !sloppy) { - for (i = 0; i < n->n; i++) { - if (mt_lookup_key(n->key[i]) == id) { - break; - } - } - assert(i < n->n); - if (n->level) { - i += 1; // internal key i comes after ptr[i] - } - } - - return pseudo_index(n, i); -} - -/// @param itr OPTIONAL. set itr to pos. -MTKey marktree_lookup(MarkTree *b, uint64_t id, MarkTreeIter *itr) -{ - MTNode *n = id2node(b, id); - if (n == NULL) { - if (itr) { - itr->x = NULL; - } - return MT_INVALID_KEY; - } - int i = 0; - for (i = 0; i < n->n; i++) { - if (mt_lookup_key(n->key[i]) == id) { - return marktree_itr_set_node(b, itr, n, i); - } - } - - abort(); -} - -MTKey marktree_itr_set_node(MarkTree *b, MarkTreeIter *itr, MTNode *n, int i) -{ - MTKey key = n->key[i]; - if (itr) { - itr->i = i; - itr->x = n; - itr->lvl = b->root->level - n->level; - } - while (n->parent != NULL) { - MTNode *p = n->parent; - i = n->p_idx; - assert(p->ptr[i] == n); - - if (itr) { - itr->s[b->root->level - p->level].i = i; - } - if (i > 0) { - unrelative(p->key[i - 1].pos, &key.pos); - } - n = p; - } - if (itr) { - marktree_itr_fix_pos(b, itr); - } - return key; -} - -MTPos marktree_get_altpos(MarkTree *b, MTKey mark, MarkTreeIter *itr) -{ - return marktree_get_alt(b, mark, itr).pos; +static uint64_t pseudo_index(MTNode *x, int i) +{ + int off = MT_LOG2_BRANCH * x->level; + uint64_t index = 0; + + while (x) { + index |= (uint64_t)(i + 1) << off; + off += MT_LOG2_BRANCH; + i = x->p_idx; + x = x->parent; + } + + return index; +} + +/// @param itr OPTIONAL. set itr to pos. +/// if sloppy, two keys at the same _leaf_ node has the same index +static uint64_t pseudo_index_for_id(MarkTree *b, uint64_t id, bool sloppy) +{ + MTNode *n = id2node(b, id); + if (n == NULL) { + return 0; // a valid pseudo-index is never zero! + } + + int i = 0; + if (n->level || !sloppy) { + for (i = 0; i < n->n; i++) { + if (mt_lookup_key(n->key[i]) == id) { + break; + } + } + assert(i < n->n); + if (n->level) { + i += 1; // internal key i comes after ptr[i] + } + } + + return pseudo_index(n, i); +} + +/// @param itr OPTIONAL. set itr to pos. +MTKey marktree_lookup(MarkTree *b, uint64_t id, MarkTreeIter *itr) +{ + MTNode *n = id2node(b, id); + if (n == NULL) { + if (itr) { + itr->x = NULL; + } + return MT_INVALID_KEY; + } + int i = 0; + for (i = 0; i < n->n; i++) { + if (mt_lookup_key(n->key[i]) == id) { + return marktree_itr_set_node(b, itr, n, i); + } + } + + abort(); +} + +MTKey marktree_itr_set_node(MarkTree *b, MarkTreeIter *itr, MTNode *n, int i) +{ + MTKey key = n->key[i]; + if (itr) { + itr->i = i; + itr->x = n; + itr->lvl = b->root->level - n->level; + } + while (n->parent != NULL) { + MTNode *p = n->parent; + i = n->p_idx; + assert(p->ptr[i] == n); + + if (itr) { + itr->s[b->root->level - p->level].i = i; + } + if (i > 0) { + unrelative(p->key[i - 1].pos, &key.pos); + } + n = p; + } + if (itr) { + marktree_itr_fix_pos(b, itr); + } + return key;} -MTKey marktree_get_alt(MarkTree *b, MTKey mark, MarkTreeIter *itr) +MTPos marktree_get_altpos(MarkTree *b, MTKey mark, MarkTreeIter *itr){ - MTKey end = MT_INVALID_KEY; - if (mt_paired(mark)) { - end = marktree_lookup_ns(b, mark.ns, mark.id, !mt_end(mark), itr); - } - return end; -} - -static void marktree_itr_fix_pos(MarkTree *b, MarkTreeIter *itr) -{ - itr->pos = (MTPos){ 0, 0 }; - MTNode *x = b->root; - for (int lvl = 0; lvl < itr->lvl; lvl++) { - itr->s[lvl].oldcol = itr->pos.col; - int i = itr->s[lvl].i; - if (i > 0) { - compose(&itr->pos, x->key[i - 1].pos); - } - assert(x->level); - x = x->ptr[i]; - } - assert(x == itr->x); -} - -// for unit test -void marktree_put_test(MarkTree *b, uint32_t ns, uint32_t id, int row, int col, bool right_gravity, - int end_row, int end_col, bool end_right) -{ - MTKey key = { { row, col }, ns, id, 0, - mt_flags(right_gravity, 0, false), 0, NULL }; - marktree_put(b, key, end_row, end_col, end_right); -} - -// for unit test -bool mt_right_test(MTKey key) -{ - return mt_right(key); -} - -// for unit test -void marktree_del_pair_test(MarkTree *b, uint32_t ns, uint32_t id) -{ - MarkTreeIter itr[1]; - marktree_lookup_ns(b, ns, id, false, itr); - - uint64_t other = marktree_del_itr(b, itr, false); - assert(other); - marktree_lookup(b, other, itr); - marktree_del_itr(b, itr, false); -} - -void marktree_check(MarkTree *b) -{ -#ifndef NDEBUG - if (b->root == NULL) { - assert(b->n_keys == 0); - assert(b->n_nodes == 0); - assert(b->id2node == NULL || map_size(b->id2node) == 0); - return; - } - - MTPos dummy; - bool last_right = false; - size_t nkeys = marktree_check_node(b, b->root, &dummy, &last_right); - assert(b->n_keys == nkeys); - assert(b->n_keys == map_size(b->id2node)); -#else - // Do nothing, as assertions are required - (void)b; -#endif -} - -#ifndef NDEBUG -size_t marktree_check_node(MarkTree *b, MTNode *x, MTPos *last, bool *last_right) -{ - assert(x->n <= 2 * T - 1); - // TODO(bfredl): too strict if checking "in repair" post-delete tree. - assert(x->n >= (x != b->root ? T - 1 : 0)); - size_t n_keys = (size_t)x->n; - - for (int i = 0; i < x->n; i++) { - if (x->level) { - n_keys += marktree_check_node(b, x->ptr[i], last, last_right); - } else { - *last = (MTPos) { 0, 0 }; - } - if (i > 0) { - unrelative(x->key[i - 1].pos, last); - } - assert(pos_leq(*last, x->key[i].pos)); - if (last->row == x->key[i].pos.row && last->col == x->key[i].pos.col) { - assert(!*last_right || mt_right(x->key[i])); - } - *last_right = mt_right(x->key[i]); - assert(x->key[i].pos.col >= 0); - assert(pmap_get(uint64_t)(b->id2node, mt_lookup_key(x->key[i])) == x); - } - - if (x->level) { - n_keys += marktree_check_node(b, x->ptr[x->n], last, last_right); - unrelative(x->key[x->n - 1].pos, last); - - for (int i = 0; i < x->n + 1; i++) { - assert(x->ptr[i]->parent == x); - assert(x->ptr[i]->p_idx == i); - assert(x->ptr[i]->level == x->level - 1); - // PARANOIA: check no double node ref - for (int j = 0; j < i; j++) { - assert(x->ptr[i] != x->ptr[j]); - } - } - } else if (x->n > 0) { - *last = x->key[x->n - 1].pos; - } - return n_keys; -} - -bool marktree_check_intersections(MarkTree *b) -{ - if (!b->root) { - return true; - } - PMap(ptr_t) checked = MAP_INIT; - - // 1. move x->intersect to checked[x] and reinit x->intersect - mt_recurse_nodes(b->root, &checked); - - // 2. iterate over all marks. for each START mark of a pair, - // intersect the nodes between the pair - MarkTreeIter itr[1]; - marktree_itr_first(b, itr); - while (true) { - MTKey mark = marktree_itr_current(itr); - if (mark.pos.row < 0) { - break; - } - - if (mt_start(mark)) { - MarkTreeIter start_itr[1]; - MarkTreeIter end_itr[1]; - uint64_t end_id = mt_lookup_id(mark.ns, mark.id, true); - MTKey k = marktree_lookup(b, end_id, end_itr); - if (k.pos.row >= 0) { - *start_itr = *itr; - marktree_intersect_pair(b, mt_lookup_key(mark), start_itr, end_itr, false); - } - } - - marktree_itr_next(b, itr); - } - - // 3. for each node check if the recreated intersection - // matches the old checked[x] intersection. - bool status = mt_recurse_nodes_compare(b->root, &checked); - - uint64_t *val; - map_foreach_value(&checked, val, { - xfree(val); - }); - map_destroy(ptr_t, &checked); - - return status; -} - -void mt_recurse_nodes(MTNode *x, PMap(ptr_t) *checked) -{ - if (kv_size(x->intersect)) { - kvi_push(x->intersect, (uint64_t)-1); // sentinel - uint64_t *val; - if (x->intersect.items == x->intersect.init_array) { - val = xmemdup(x->intersect.items, x->intersect.size * sizeof(*x->intersect.items)); - } else { - val = x->intersect.items; - } - pmap_put(ptr_t)(checked, x, val); - kvi_init(x->intersect); - } - - if (x->level) { - for (int i = 0; i < x->n + 1; i++) { - mt_recurse_nodes(x->ptr[i], checked); - } - } -} - -bool mt_recurse_nodes_compare(MTNode *x, PMap(ptr_t) *checked) -{ - uint64_t *ref = pmap_get(ptr_t)(checked, x); - if (ref != NULL) { - for (size_t i = 0;; i++) { - if (ref[i] == (uint64_t)-1) { - if (i != kv_size(x->intersect)) { - return false; - } - - break; - } else { - if (kv_size(x->intersect) <= i || ref[i] != kv_A(x->intersect, i)) { - return false; - } - } - } - } else { - if (kv_size(x->intersect)) { - return false; - } - } - - if (x->level) { - for (int i = 0; i < x->n + 1; i++) { - if (!mt_recurse_nodes_compare(x->ptr[i], checked)) { - return false; - } - } - } - - return true; -} - -#endif + return marktree_get_alt(b, mark, itr).pos; +} + +MTKey marktree_get_alt(MarkTree *b, MTKey mark, MarkTreeIter *itr) +{ + MTKey end = MT_INVALID_KEY; + if (mt_paired(mark)) { + end = marktree_lookup_ns(b, mark.ns, mark.id, !mt_end(mark), itr); + } + return end; +} + +static void marktree_itr_fix_pos(MarkTree *b, MarkTreeIter *itr) +{ + itr->pos = (MTPos){ 0, 0 }; + MTNode *x = b->root; + for (int lvl = 0; lvl < itr->lvl; lvl++) { + itr->s[lvl].oldcol = itr->pos.col; + int i = itr->s[lvl].i; + if (i > 0) { + compose(&itr->pos, x->key[i - 1].pos); + } + assert(x->level); + x = x->ptr[i]; + } + assert(x == itr->x); +} + +// for unit test +void marktree_put_test(MarkTree *b, uint32_t ns, uint32_t id, int row, int col, bool right_gravity, + int end_row, int end_col, bool end_right) +{ + uint16_t flags = mt_flags(right_gravity, false, false, false, 0); + MTKey key = { { row, col }, ns, id, 0, flags, 0, NULL }; + marktree_put(b, key, end_row, end_col, end_right); +} + +// for unit test +bool mt_right_test(MTKey key) +{ + return mt_right(key); +} + +// for unit test +void marktree_del_pair_test(MarkTree *b, uint32_t ns, uint32_t id) +{ + MarkTreeIter itr[1]; + marktree_lookup_ns(b, ns, id, false, itr); + + uint64_t other = marktree_del_itr(b, itr, false); + assert(other); + marktree_lookup(b, other, itr); + marktree_del_itr(b, itr, false); +} + +void marktree_check(MarkTree *b) +{ +#ifndef NDEBUG + if (b->root == NULL) { + assert(b->n_keys == 0); + assert(b->n_nodes == 0); + assert(b->id2node == NULL || map_size(b->id2node) == 0); + return; + } + + MTPos dummy; + bool last_right = false; + size_t nkeys = marktree_check_node(b, b->root, &dummy, &last_right); + assert(b->n_keys == nkeys); + assert(b->n_keys == map_size(b->id2node)); +#else + // Do nothing, as assertions are required + (void)b; +#endif +} + +#ifndef NDEBUG +size_t marktree_check_node(MarkTree *b, MTNode *x, MTPos *last, bool *last_right) +{ + assert(x->n <= 2 * T - 1); + // TODO(bfredl): too strict if checking "in repair" post-delete tree. + assert(x->n >= (x != b->root ? T - 1 : 0)); + size_t n_keys = (size_t)x->n; + + for (int i = 0; i < x->n; i++) { + if (x->level) { + n_keys += marktree_check_node(b, x->ptr[i], last, last_right); + } else { + *last = (MTPos) { 0, 0 }; + } + if (i > 0) { + unrelative(x->key[i - 1].pos, last); + } + assert(pos_leq(*last, x->key[i].pos)); + if (last->row == x->key[i].pos.row && last->col == x->key[i].pos.col) { + assert(!*last_right || mt_right(x->key[i])); + } + *last_right = mt_right(x->key[i]); + assert(x->key[i].pos.col >= 0); + assert(pmap_get(uint64_t)(b->id2node, mt_lookup_key(x->key[i])) == x); + } + + if (x->level) { + n_keys += marktree_check_node(b, x->ptr[x->n], last, last_right); + unrelative(x->key[x->n - 1].pos, last); + + for (int i = 0; i < x->n + 1; i++) { + assert(x->ptr[i]->parent == x); + assert(x->ptr[i]->p_idx == i); + assert(x->ptr[i]->level == x->level - 1); + // PARANOIA: check no double node ref + for (int j = 0; j < i; j++) { + assert(x->ptr[i] != x->ptr[j]); + } + } + } else if (x->n > 0) { + *last = x->key[x->n - 1].pos; + } + return n_keys; +} + +bool marktree_check_intersections(MarkTree *b) +{ + if (!b->root) { + return true; + } + PMap(ptr_t) checked = MAP_INIT; + + // 1. move x->intersect to checked[x] and reinit x->intersect + mt_recurse_nodes(b->root, &checked); + + // 2. iterate over all marks. for each START mark of a pair, + // intersect the nodes between the pair + MarkTreeIter itr[1]; + marktree_itr_first(b, itr); + while (true) { + MTKey mark = marktree_itr_current(itr); + if (mark.pos.row < 0) { + break; + } + + if (mt_start(mark)) { + MarkTreeIter start_itr[1]; + MarkTreeIter end_itr[1]; + uint64_t end_id = mt_lookup_id(mark.ns, mark.id, true); + MTKey k = marktree_lookup(b, end_id, end_itr); + if (k.pos.row >= 0) { + *start_itr = *itr; + marktree_intersect_pair(b, mt_lookup_key(mark), start_itr, end_itr, false); + } + } + + marktree_itr_next(b, itr); + } + + // 3. for each node check if the recreated intersection + // matches the old checked[x] intersection. + bool status = mt_recurse_nodes_compare(b->root, &checked); + + uint64_t *val; + map_foreach_value(&checked, val, { + xfree(val); + }); + map_destroy(ptr_t, &checked); + + return status; +} + +void mt_recurse_nodes(MTNode *x, PMap(ptr_t) *checked) +{ + if (kv_size(x->intersect)) { + kvi_push(x->intersect, (uint64_t)-1); // sentinel + uint64_t *val; + if (x->intersect.items == x->intersect.init_array) { + val = xmemdup(x->intersect.items, x->intersect.size * sizeof(*x->intersect.items)); + } else { + val = x->intersect.items; + } + pmap_put(ptr_t)(checked, x, val); + kvi_init(x->intersect); + } + + if (x->level) { + for (int i = 0; i < x->n + 1; i++) { + mt_recurse_nodes(x->ptr[i], checked); + } + } +} + +bool mt_recurse_nodes_compare(MTNode *x, PMap(ptr_t) *checked) +{ + uint64_t *ref = pmap_get(ptr_t)(checked, x); + if (ref != NULL) { + for (size_t i = 0;; i++) { + if (ref[i] == (uint64_t)-1) { + if (i != kv_size(x->intersect)) { + return false; + } + + break; + } else { + if (kv_size(x->intersect) <= i || ref[i] != kv_A(x->intersect, i)) { + return false; + } + } + } + } else { + if (kv_size(x->intersect)) { + return false; + } + } + + if (x->level) { + for (int i = 0; i < x->n + 1; i++) { + if (!mt_recurse_nodes_compare(x->ptr[i], checked)) { + return false; + } + } + } -// TODO(bfredl): kv_print -#define GA_PUT(x) ga_concat(ga, (char *)(x)) -#define GA_PRINT(fmt, ...) snprintf(buf, sizeof(buf), fmt, __VA_ARGS__); \ - GA_PUT(buf); + return true; +} + +#endif -String mt_inspect(MarkTree *b, bool keys, bool dot) -{ - garray_T ga[1]; - ga_init(ga, (int)sizeof(char), 80); - MTPos p = { 0, 0 }; - if (b->root) { - if (dot) { - GA_PUT("digraph D {\n\n"); - mt_inspect_dotfile_node(b, ga, b->root, p, NULL); - GA_PUT("\n}"); - } else { - mt_inspect_node(b, ga, keys, b->root, p); - } - } - return ga_take_string(ga); -} - -void mt_inspect_node(MarkTree *b, garray_T *ga, bool keys, MTNode *n, MTPos off) -{ - static char buf[1024]; - GA_PUT("["); - if (keys && kv_size(n->intersect)) { - for (size_t i = 0; i < kv_size(n->intersect); i++) { - GA_PUT(i == 0 ? "{" : ";"); - // GA_PRINT("%"PRIu64, kv_A(n->intersect, i)); - GA_PRINT("%" PRIu64, mt_dbg_id(kv_A(n->intersect, i))); - } - GA_PUT("},"); - } - if (n->level) { - mt_inspect_node(b, ga, keys, n->ptr[0], off); - } - for (int i = 0; i < n->n; i++) { - MTPos p = n->key[i].pos; - unrelative(off, &p); - GA_PRINT("%d/%d", p.row, p.col); - if (keys) { - MTKey key = n->key[i]; - GA_PUT(":"); - if (mt_start(key)) { - GA_PUT("<"); - } - // GA_PRINT("%"PRIu64, mt_lookup_id(key.ns, key.id, false)); - GA_PRINT("%" PRIu32, key.id); - if (mt_end(key)) { - GA_PUT(">"); +// TODO(bfredl): kv_print +#define GA_PUT(x) ga_concat(ga, (char *)(x)) +#define GA_PRINT(fmt, ...) snprintf(buf, sizeof(buf), fmt, __VA_ARGS__); \ + GA_PUT(buf); + +String mt_inspect(MarkTree *b, bool keys, bool dot) +{ + garray_T ga[1]; + ga_init(ga, (int)sizeof(char), 80); + MTPos p = { 0, 0 }; + if (b->root) { + if (dot) { + GA_PUT("digraph D {\n\n"); + mt_inspect_dotfile_node(b, ga, b->root, p, NULL); + GA_PUT("\n}"); + } else { + mt_inspect_node(b, ga, keys, b->root, p); + } + } + return ga_take_string(ga); +} + +void mt_inspect_node(MarkTree *b, garray_T *ga, bool keys, MTNode *n, MTPos off) +{ + static char buf[1024]; + GA_PUT("["); + if (keys && kv_size(n->intersect)) { + for (size_t i = 0; i < kv_size(n->intersect); i++) { + GA_PUT(i == 0 ? "{" : ";"); + // GA_PRINT("%"PRIu64, kv_A(n->intersect, i)); + GA_PRINT("%" PRIu64, mt_dbg_id(kv_A(n->intersect, i))); + } + GA_PUT("},"); + } + if (n->level) { + mt_inspect_node(b, ga, keys, n->ptr[0], off); + } + for (int i = 0; i < n->n; i++) { + MTPos p = n->key[i].pos; + unrelative(off, &p); + GA_PRINT("%d/%d", p.row, p.col); + if (keys) { + MTKey key = n->key[i]; + GA_PUT(":"); + if (mt_start(key)) { + GA_PUT("<"); } - } - if (n->level) { - mt_inspect_node(b, ga, keys, n->ptr[i + 1], p); - } else { - ga_concat(ga, ","); + // GA_PRINT("%"PRIu64, mt_lookup_id(key.ns, key.id, false)); + GA_PRINT("%" PRIu32, key.id); + if (mt_end(key)) { + GA_PUT(">"); + } } - } - ga_concat(ga, "]"); -} - -void mt_inspect_dotfile_node(MarkTree *b, garray_T *ga, MTNode *n, MTPos off, char *parent) -{ - static char buf[1024]; - char namebuf[64]; - if (parent != NULL) { - snprintf(namebuf, sizeof namebuf, "%s_%c%d", parent, 'a' + n->level, n->p_idx); - } else { - snprintf(namebuf, sizeof namebuf, "MTNode"); - } - - GA_PRINT(" %s[shape=plaintext, label=<\n", namebuf); - GA_PUT(" <table border='0' cellborder='1' cellspacing='0'>\n"); - if (kv_size(n->intersect)) { - GA_PUT(" <tr><td>"); - for (size_t i = 0; i < kv_size(n->intersect); i++) { - if (i > 0) { - GA_PUT(", "); - } - GA_PRINT("%" PRIu64, mt_dbg_id(kv_A(n->intersect, i))); - } - GA_PUT("</td></tr>\n"); - } - - GA_PUT(" <tr><td>"); - for (int i = 0; i < n->n; i++) { - MTKey k = n->key[i]; - if (i > 0) { - GA_PUT(", "); - } - GA_PRINT("%d", k.id); - if (mt_paired(k)) { - GA_PUT(mt_end(k) ? "e" : "s"); - } - } - GA_PUT("</td></tr>\n"); - GA_PUT(" </table>\n"); - GA_PUT(">];\n"); - if (parent) { - GA_PRINT(" %s -> %s\n", parent, namebuf); - } - if (n->level) { - mt_inspect_dotfile_node(b, ga, n->ptr[0], off, namebuf); - } - for (int i = 0; i < n->n; i++) { - MTPos p = n->key[i].pos; - unrelative(off, &p); - if (n->level) { - mt_inspect_dotfile_node(b, ga, n->ptr[i + 1], p, namebuf); - } - } -} + if (n->level) { + mt_inspect_node(b, ga, keys, n->ptr[i + 1], p); + } else { + ga_concat(ga, ","); + } + } + ga_concat(ga, "]"); +} + +void mt_inspect_dotfile_node(MarkTree *b, garray_T *ga, MTNode *n, MTPos off, char *parent) +{ + static char buf[1024]; + char namebuf[64]; + if (parent != NULL) { + snprintf(namebuf, sizeof namebuf, "%s_%c%d", parent, 'a' + n->level, n->p_idx); + } else { + snprintf(namebuf, sizeof namebuf, "MTNode"); + } + + GA_PRINT(" %s[shape=plaintext, label=<\n", namebuf); + GA_PUT(" <table border='0' cellborder='1' cellspacing='0'>\n"); + if (kv_size(n->intersect)) { + GA_PUT(" <tr><td>"); + for (size_t i = 0; i < kv_size(n->intersect); i++) { + if (i > 0) { + GA_PUT(", "); + } + GA_PRINT("%" PRIu64, mt_dbg_id(kv_A(n->intersect, i))); + } + GA_PUT("</td></tr>\n"); + } + + GA_PUT(" <tr><td>"); + for (int i = 0; i < n->n; i++) { + MTKey k = n->key[i]; + if (i > 0) { + GA_PUT(", "); + } + GA_PRINT("%d", k.id); + if (mt_paired(k)) { + GA_PUT(mt_end(k) ? "e" : "s"); + } + } + GA_PUT("</td></tr>\n"); + GA_PUT(" </table>\n"); + GA_PUT(">];\n"); + if (parent) { + GA_PRINT(" %s -> %s\n", parent, namebuf); + } + if (n->level) { + mt_inspect_dotfile_node(b, ga, n->ptr[0], off, namebuf); + } + for (int i = 0; i < n->n; i++) { + MTPos p = n->key[i].pos; + unrelative(off, &p); + if (n->level) { + mt_inspect_dotfile_node(b, ga, n->ptr[i + 1], p, namebuf); + } + } +}

V1086 A call of the 'memcpy' function will lead to underflow of the buffer 'z->key'.

diff --git a/reports/pvs/PVS-studio.html.d/sources/marktree.h_2.html b/reports/pvs/PVS-studio.html.d/sources/marktree.h_2.html index 43043bc7f3cb..0ad7e35d73d6 100644 --- a/reports/pvs/PVS-studio.html.d/sources/marktree.h_2.html +++ b/reports/pvs/PVS-studio.html.d/sources/marktree.h_2.html @@ -87,107 +87,122 @@ #define MT_FLAG_ORPHANED (((uint16_t)1) << 3)#define MT_FLAG_HL_EOL (((uint16_t)1) << 4)#define MT_FLAG_NO_UNDO (((uint16_t)1) << 5) - -#define DECOR_LEVELS 4 -#define MT_FLAG_DECOR_OFFSET 6 -#define MT_FLAG_DECOR_MASK (((uint16_t)(DECOR_LEVELS - 1)) << MT_FLAG_DECOR_OFFSET) - -// These _must_ be last to preserve ordering of marks -#define MT_FLAG_RIGHT_GRAVITY (((uint16_t)1) << 14) -#define MT_FLAG_LAST (((uint16_t)1) << 15) - -#define MT_FLAG_EXTERNAL_MASK (MT_FLAG_DECOR_MASK | MT_FLAG_RIGHT_GRAVITY | \ - MT_FLAG_NO_UNDO | MT_FLAG_HL_EOL) - -// this is defined so that start and end of the same range have adjacent ids -#define MARKTREE_END_FLAG ((uint64_t)1) -static inline uint64_t mt_lookup_id(uint32_t ns, uint32_t id, bool enda) -{ - return (uint64_t)ns << 33 | (id <<1) | (enda ? MARKTREE_END_FLAG : 0); -} - -static inline uint64_t mt_lookup_key_side(MTKey key, bool end) -{ - return mt_lookup_id(key.ns, key.id, end); -} - -static inline uint64_t mt_lookup_key(MTKey key) -{ - return mt_lookup_id(key.ns, key.id, key.flags & MT_FLAG_END); -} - -static inline bool mt_paired(MTKey key) -{ - return key.flags & MT_FLAG_PAIRED; -} - -static inline bool mt_end(MTKey key) -{ - return key.flags & MT_FLAG_END; -} - -static inline bool mt_start(MTKey key) -{ - return mt_paired(key) && !mt_end(key); -} - -static inline bool mt_right(MTKey key) -{ - return key.flags & MT_FLAG_RIGHT_GRAVITY; -} - -static inline bool mt_no_undo(MTKey key) -{ - return key.flags & MT_FLAG_NO_UNDO; -} - -static inline uint8_t marktree_decor_level(MTKey key) -{ - return (uint8_t)((key.flags&MT_FLAG_DECOR_MASK) >> MT_FLAG_DECOR_OFFSET); -} - -static inline uint16_t mt_flags(bool right_gravity, uint8_t decor_level, bool no_undo) -{ - assert(decor_level < DECOR_LEVELS); - return (uint16_t)((right_gravity ? MT_FLAG_RIGHT_GRAVITY : 0) - | (decor_level << MT_FLAG_DECOR_OFFSET) - | (no_undo ? MT_FLAG_NO_UNDO : 0)); -} - -typedef kvec_withinit_t(uint64_t, 4) Intersection; - -struct mtnode_s { - int32_t n; - int16_t level; - int16_t p_idx; // index in parent - Intersection intersect; - // TODO(bfredl): we could consider having a only-sometimes-valid - // index into parent for faster "cached" lookup. - MTNode *parent; - MTKey key[2 * MT_BRANCH_FACTOR - 1]; - MTNode *ptr[]; -}; - -static inline uint64_t mt_dbg_id(uint64_t id) -{ - return (id>>1)&0xffffffff; -} - -typedef struct { - MTNode *root; - size_t n_keys, n_nodes; - // TODO(bfredl): the pointer to node could be part of the larger - // Map(uint64_t, ExtmarkItem) essentially; - PMap(uint64_t) id2node[1]; -} MarkTree; - -#ifdef INCLUDE_GENERATED_DECLARATIONS -# include "marktree.h.generated.h" -#endif - -#endif // NVIM_MARKTREE_H +#define MT_FLAG_INVALIDATE (((uint16_t)1) << 6) +#define MT_FLAG_INVALID (((uint16_t)1) << 7) + +#define DECOR_LEVELS 4 +#define MT_FLAG_DECOR_OFFSET 8 +#define MT_FLAG_DECOR_MASK (((uint16_t)(DECOR_LEVELS - 1)) << MT_FLAG_DECOR_OFFSET) + +// These _must_ be last to preserve ordering of marks +#define MT_FLAG_RIGHT_GRAVITY (((uint16_t)1) << 14) +#define MT_FLAG_LAST (((uint16_t)1) << 15) + +#define MT_FLAG_EXTERNAL_MASK (MT_FLAG_DECOR_MASK | MT_FLAG_RIGHT_GRAVITY | MT_FLAG_HL_EOL \ + | MT_FLAG_NO_UNDO | MT_FLAG_INVALIDATE | MT_FLAG_INVALID) + +// this is defined so that start and end of the same range have adjacent ids +#define MARKTREE_END_FLAG ((uint64_t)1) +static inline uint64_t mt_lookup_id(uint32_t ns, uint32_t id, bool enda) +{ + return (uint64_t)ns << 33 | (id <<1) | (enda ? MARKTREE_END_FLAG : 0); +} + +static inline uint64_t mt_lookup_key_side(MTKey key, bool end) +{ + return mt_lookup_id(key.ns, key.id, end); +} + +static inline uint64_t mt_lookup_key(MTKey key) +{ + return mt_lookup_id(key.ns, key.id, key.flags & MT_FLAG_END); +} + +static inline bool mt_paired(MTKey key) +{ + return key.flags & MT_FLAG_PAIRED; +} + +static inline bool mt_end(MTKey key) +{ + return key.flags & MT_FLAG_END; +} + +static inline bool mt_start(MTKey key) +{ + return mt_paired(key) && !mt_end(key); +} + +static inline bool mt_right(MTKey key) +{ + return key.flags & MT_FLAG_RIGHT_GRAVITY; +} + +static inline bool mt_no_undo(MTKey key) +{ + return key.flags & MT_FLAG_NO_UNDO; +} + +static inline bool mt_invalidate(MTKey key) +{ + return key.flags & MT_FLAG_INVALIDATE; +} + +static inline bool mt_invalid(MTKey key) +{ + return key.flags & MT_FLAG_INVALID; +} + +static inline uint8_t marktree_decor_level(MTKey key) +{ + return (uint8_t)((key.flags&MT_FLAG_DECOR_MASK) >> MT_FLAG_DECOR_OFFSET); +} + +static inline uint16_t mt_flags(bool right_gravity, bool hl_eol, bool no_undo, bool invalidate, + uint8_t decor_level) +{ + assert(decor_level < DECOR_LEVELS); + return (uint16_t)((right_gravity ? MT_FLAG_RIGHT_GRAVITY : 0) + | (hl_eol ? MT_FLAG_HL_EOL : 0) + | (no_undo ? MT_FLAG_NO_UNDO : 0) + | (invalidate ? MT_FLAG_INVALIDATE : 0) + | (decor_level << MT_FLAG_DECOR_OFFSET)); +} + +typedef kvec_withinit_t(uint64_t, 4) Intersection; + +struct mtnode_s { + int32_t n; + int16_t level; + int16_t p_idx; // index in parent + Intersection intersect; + // TODO(bfredl): we could consider having a only-sometimes-valid + // index into parent for faster "cached" lookup. + MTNode *parent; + MTKey key[2 * MT_BRANCH_FACTOR - 1]; + MTNode *ptr[]; +}; + +static inline uint64_t mt_dbg_id(uint64_t id) +{ + return (id>>1)&0xffffffff; +} + +typedef struct { + MTNode *root; + size_t n_keys, n_nodes; + // TODO(bfredl): the pointer to node could be part of the larger + // Map(uint64_t, ExtmarkItem) essentially; + PMap(uint64_t) id2node[1]; +} MarkTree; + +#ifdef INCLUDE_GENERATED_DECLARATIONS +# include "marktree.h.generated.h" +#endif + +#endif // NVIM_MARKTREE_H -

V629 Consider inspecting the 'id << 1' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type.

+

V629 Consider inspecting the 'id << 1' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type.

diff --git a/reports/pvs/PVS-studio.log b/reports/pvs/PVS-studio.log index 301463aba155..32905b83a83a 100644 --- a/reports/pvs/PVS-studio.log +++ b/reports/pvs/PVS-studio.log @@ -19,28 +19,28 @@ dR'8_uR%Rr[[SRER'haa@->uR%Rccauoha>c; 28Uo^vcmmcvnRER']uR%VXJER U2=u$2UaPR% U2=u dR'8_uR%Rr[[SRER'haa@->uR%Rcc- c;vcmmcS^cdRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R$>c8__ckau'-=uc'8PkUa-=8>%cvcmmcS}c1oN=cka89U92fc9uoouaco8ch=ucUc'8PkUa-=8>c]-oLc_u ->u_ckau'-=-8>%c U9=;$cwcO^cyc}RER>u/o@->uR%Rccccav}28cmcSnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's('8>v}'RER2->u=R%!*Ji"B"ER=U=o1_R%R{uR%Rccccav}28cmcSnRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNav}28NcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%Rccccav}L-cmcSnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's('8>v}'RER2->u=R%!**S"B"ERkauv@->uR%Rcc- c;vcmmcS^cdRB dR'8_uR%RrxSS*RER'haa@->uR%R|_u ->uc\?4J;>^c))RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cN\?4JNc-=cUc_U>jua8h=cu/kau==-8>}c,LuckUaUPuouacN>NcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%Rcc;;_8h92u^;xcyyc;>c(cJ^^c+c;_8h92u^;xcyyc;>c(cJ^^c+c;_8h92u^;xcyyc;>cYcJ^^^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's('8>v}'RER2->u=R%!xJ"B"B -dR'8_uR%RrxSS*RER'haa@->uR%R|_u ->uc6\${`K\$C.jua8h=cu/kau==-8>}c,LuckUaUPuouacN'NcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%Rcc;=-:u8 ;PkU'sK>8_uKo^c+c'ctccccccc))RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(895u'o}LRER2->u=R%![i"B"B dR'8_uR%RrVxSRER'haa@->uR%Rccccccccauoha>cPkU'sKa9289;6\${`K,?`Eco8s^nRER']uR%G[XER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%Rg>_u ->u_c9uLUv-8a}c{Lu'scoLuc=L- oc8kuaUo8acNyyN}c,Luca-jLoc8kuaU>_c-=c>ujUo-vuc;N;ocwcS/_9^Ncmc!wJG}}b"^}RER>u/o@->uR%Rcccccc'U=ucS/_u%cc(+cPUkcxVc+(RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(PkU'sK'8au}'RER2->u=R%!Jbx"B"ERkauv@->uR%Rcccccc'U=ucS/__%cc(+cUaaUfc*Jc+(RER=U=o1_R%R{uR%R=oUo-'c->ocPkU'sK]x;'LUac++9Ec=-:uKoc+92EcPkU'sKh->o*JKocv^nRER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac->=ku'o->jcoLucNPkU'sK]xNc h>'o-8>}c,Lucauoha>cvU2huc-=c>8ocU2]Uf=ch=u_}c,8oU2c'U22=%cbXEc_-='Ua_u_cau=h2o=%c[}RER>u/o@->uR%R=oUo-'c->ocPkU'sK]J;'LUac++9Ec=-:uKoc+92EcPkU'sKh->o*JKocv^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(PkU'sK'8au}'RER2->u=R%!*xEbX[EbXVEbXGEbXXEbXb"B"ERkauv@->uR%R=oUo-'c->ocPkU'sK]PUk;'LUac++9h Ec=-:uKoc+9h 2u>EcPkU'sKh->o*JKoc2u>^nRB dR'8_uR%RrxSS*RER'haa@->uR%R|_u ->uc,@juK=oUao^c;;PkU'sKh->o*JKo^;xcyyc;vU2cwcaU>juK=oUao^^^RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cN,@jua8h=cu/kau==-8>}c,LuckUaUPuoua=cNvU2NEcNaU>juK=oUaoNcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%R|- >_u c61QRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(PkU'sK'8au}'RER2->u=R%!xS"B"ERkauv@->uR%R|_u ->uc$Fr$Q{<;9h Ec9h 2u>^c;;+9h 2u>^wwEc;h>=-j>u_c'LUa^+;;+9h ^tt^^RB -dR'8_uR%RrxSXVRER'haa@->uR%RccPuP'kf;_=oEc=a'Ec=-:u8 ;PkU'sKak'K8>uK=u==-8>Ko^cwRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R$c'U22c8 coLucNPuP'kfNc h>'o-8>c]-22c2uU_co8ch>_ua 28]c8 coLuc9h uacN_=oN}RER>u/o@->uR%Rcccccc=-:u8 ;=oah'ocPkU'sKak'K=28oK=^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(ak'}'RER2->u=R%!JbX"B"ERkauv@->uR%Rcc(+c'8kfcU22c -u2_=cu/'ukoc=28o=c+(RB -dR'8_uR%RrxSXVRER'haa@->uR%RccPuP'kf;_=oEc=a'Ec=-:u8 ;PkU'sKak'K8>uK=u==-8>Ko^cwRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R$c'U22c8 coLucNPuP'kfNc h>'o-8>c]-22c2uU_co8ch>_ua 28]c8 coLuc9h uacN=a'N}RER>u/o@->uR%Rcccccc=-:u8 ;=oah'ocPkU'sKak'K=28oK=^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(ak'}'RER2->u=R%!JbX"B"ERkauv@->uR%Rcc(+c'8kfcU22c -u2_=cu/'ukoc=28o=c+(RB -dR'8_uR%RrxSS*RER'haa@->uR%R|_u ->uc6\${`KC\{K.<..1?QK.,Cg{,K.1W<;'^cccccccc))RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cN6\${`KC\{K.<..1?QK.,Cg{,K.1Wjua8h=cu/kau==-8>}c,LuckUaUPuouacN'NcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%Rcc;=-:u8 ;=oah'ocPkU'sKak'K=28oK=^c+c;'cwcx^ctcc))RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(ak'}LRER2->u=R%![*"B"B dR'8_uR%Rr[VSRER'haa@->uR%Rcc- c;;=-:uKo^wxc3c;PkU'sKh->o*JKo^wxcZZc2u>c3c;PkU'sKh->o*JKo^wx^c((cwr[VSRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R$ckUaoc8 c'8>_-o-8>U2cu/kau==-8>c-=cU2]Uf=coahu%c;=-:uKo^cwcxc3c;PkU'sKh->o*JKo^cwcx}RER>u/o@->uR%Rcccc(+cP=jkU'sc=ku'c_8u=>NocU228]c2u>joL=c3c*Jc9-o=c+(RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(2PkU's}'RER2->u=R%!Jbi"B"ERkauv@->uR%Ru>_%RB dR'8_uR%Rr[JJRER'haa@->uR%RccccccPuP'kf;h>kU'suaw3=oa->jK9h uactc6\${`K\$C8_u^w3k8=ERER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->oua}RER>u/o@->uR%Rcccccccccc>8_uw3o8s}_UoU}'Lh>sKkoaEc>8_uw3o8s}2u>joL^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(2PkU's}'RER2->u=R%!*J["B"ERkauv@->uR%RccccccU==uao;h>kU'suaw3=oa->jK9h ua^nRER=U=o1_R%R{uR%Rcc- c;h>kU'suaw3h>kU's->j^cdRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RFuau uau>'->jc8 coLuc>h22ck8->ouacNh>kU'suaNcP-jLocoUsuck2U'u}c,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cN2PkU'sKh>kU'suaKh>kU'sK=oaNc h>'o-8>}c1>=ku'ocoLuc=u'8>_cUajhPu>o}c{Lu'sc2->u=%cb*[EciSi}RER>u/o@->uR%Rccccauoha>c2hU@Kuaa8a;@Ec)Rg>kU'suac->=oU>'ucU2auU_fc]8as->j}cg=ucU>8oLuac)RRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(2PkU's}'RER2->u=R%!b*[EiSi"B"ER=U=o1_R%R{uR%Rccauoha>c;h->oVbKo^>=cyyc**cpc;-_cyyx^cpc;u>_Uczc6$C`,C<=-_uac->=ku'o->jcoLucN-_cyycxNcu/kau==-8>}cO-oc=L- o->jc8 coLuc*Jw9-ocvU2huc]-oLcUc=h9=u~hu>ocu/kU>=-8>co8coLucVbw9-ocofku}RER>u/o@->uR%RBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUasoauu}LRER2->u=R%!iG"B"ERkauv@->uR%RdRER=U=o1_R%R{uR%Rcccc2->u=!-"cmc/PuP_hk:;2}_UoUEc2}=-:u^nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN2->u=N}RER>u/o@->uR%RccccPuP'La=h9;2->u=!-"EcQg@EcQ@Ec2}=-:u^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(9h ua}'RER2->u=R%!*iV"B"ERkauv@->uR%Rcccc((cQ@wh=u_w 8awQg@}RER=U=o1_R%R{uR%R|_u ->uc6\${`KC\{K.<..1?QK.,Cg{,K.1W<;'^cccccccc))RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cN6\${`KC\{K.<..1?QK.,Cg{,K.1Wjua8h=cu/kau==-8>}c,LuckUaUPuouacN'NcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%Rcc;=-:u8 ;=oah'ocPkU'sKak'K=28oK=^c+c;'cwcx^ctcc))RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(ak'}LRER2->u=R%![*"B"B +dR'8_uR%RrxSS*RER'haa@->uR%R|_u ->uc6\${`K\$C.jua8h=cu/kau==-8>}c,LuckUaUPuouacN'NcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%Rcc;=-:u8 ;PkU'sK>8_uKo^c+c'ctccccccc))RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(895u'o}LRER2->u=R%![i"B"B +dR'8_uR%RrxSXVRER'haa@->uR%RccPuP'kf;_=oEc=a'Ec=-:u8 ;PkU'sKak'K8>uK=u==-8>Ko^cwRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R$c'U22c8 coLucNPuP'kfNc h>'o-8>c]-22c2uU_co8ch>_ua 28]c8 coLuc9h uacN_=oN}RER>u/o@->uR%Rcccccc=-:u8 ;=oah'ocPkU'sKak'K=28oK=^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(ak'}'RER2->u=R%!JbX"B"ERkauv@->uR%Rcc(+c'8kfcU22c -u2_=cu/'ukoc=28o=c+(RB +dR'8_uR%RrxSXVRER'haa@->uR%RccPuP'kf;_=oEc=a'Ec=-:u8 ;PkU'sKak'K8>uK=u==-8>Ko^cwRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R$c'U22c8 coLucNPuP'kfNc h>'o-8>c]-22c2uU_co8ch>_ua 28]c8 coLuc9h uacN=a'N}RER>u/o@->uR%Rcccccc=-:u8 ;=oah'ocPkU'sKak'K=28oK=^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(PkU's(ak'}'RER2->u=R%!JbX"B"ERkauv@->uR%Rcc(+c'8kfcU22c -u2_=cu/'ukoc=28o=c+(RB +dR'8_uR%RrVJiRER'haa@->uR%Rccauoha>c;h->oVbKo^>=cyyc**cpc;-_cyyx^cpc;u>_Uczc6$C`,C<=-_uac->=ku'o->jcoLucN-_cyycxNcu/kau==-8>}cO-oc=L- o->jc8 coLuc*Jw9-ocvU2huc]-oLcUc=h9=u~hu>ocu/kU>=-8>co8coLucVbw9-ocofku}RER>u/o@->uR%RBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUasoauu}LRER2->u=R%!ii"B"ERkauv@->uR%RdRER=U=o1_R%R{uR%Rcccc'UkohauKjUcmcZ'UkohauK28'U2nRER']uR%[VJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8c28'U2cvUa-U92ucN'UkohauK28'U2Nc-=c=o8au_c8ho=-_ucoLuc='8kuc8 coL-=cvUa-U92u}c.h'LcUck8->ouac]-22c9u'8Puc->vU2-_}RER>u/o@->uR%RccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-('8PPU>_}'RER2->u=R%!V[X"B"ERkauv@->uR%RccccjUK->-o;Z'UkohauK28'U2EcxEcXS^nRER=U=o1_R%R{uR%RccccuUkw3Uaj2u>=!-"cmc=}=-:unRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNuUkw3Uaj2u>=N}RER>u/o@->uR%RccccsvK'8>'Uo;'P_2->uEc)Rc)R^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-('8PPU>_}'RER2->u=R%!XJ*"B"ERkauv@->uR%Rcccc.oa->jc=cmcUaj=}-ouP=!-"}_UoU}=oa->jnRER=U=o1_R%R{uR%RccccuUkw3Uaj=!-"cmc'P_2->u}-ouP=ctc8 =uonRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNuUkw3Uaj=N}RER>u/o@->uR%Rcccc8 =uoctmcuUkw3Uaj2u>=!-"nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-('8PPU>_}'RER2->u=R%!X*X"B"ERkauv@->uR%Rcccc8 =uottncc((c$''8h>oc 8ac=kU'uRER=U=o1_R%R{uR%Rcccc]ctmc;->o^P9K=oa->jJ'u22=;ou/o^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN]NcvUa-U92uc-=c->'auPu>ou_c->coLuc288k}cg>_u ->u_c9uLUv-8ac]-22c8''hac->c'U=uc8 c=-j>u_c->oujuac8vua 28]}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(u/oPUas}'RER2->u=R%!xJJJ"B"ERkauv@->uR%Rcccc'LUac+ou/ocmcoaU>==oa;=oa}=-:uc3cSczc=oa}_UoUc%c)R)REc U2=u^ncc((cU228'Uou=RER=U=o1_R%R{uR%Rcccc2->u=!-"cmc/PuP_hk:;2}_UoUEc2}=-:u^nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN2->u=N}RER>u/o@->uR%RccccPuP'La=h9;2->u=!-"EcQg@EcQ@Ec2}=-:u^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(9h ua}'RER2->u=R%!*iV"B"ERkauv@->uR%Rcccc((cQ@wh=u_w 8awQg@}RER=U=o1_R%R{uR%Rcccc]ctmc;->o^P9K=oa->jJ'u22=;ou/o^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN]NcvUa-U92uc-=c->'auPu>ou_c->coLuc288k}cg>_u ->u_c9uLUv-8ac]-22c8''hac->c'U=uc8 c=-j>u_c->oujuac8vua 28]}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(u/oPUas}'RER2->u=R%!xJ*x"B"ERkauv@->uR%Rcccc'LUac+ou/ocmcoaU>==oa;=oa}=-:uc3cSczc=oa}_UoUc%c)R)REc U2=u^ncc((cU228'Uou=RER=U=o1_R%R{uR%RccvUK=oUao;Uaj=xEc 8aPUo^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%RccvUK'8kf;Uaj=JEcUaj=x^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(ka-vUou(Lu2kua=}'RER2->u=R%!XxS"B"ERkauv@->uR%RccvUK2-=ocUaj=JnRER=U=o1_R%R{uR%RccccKPkKkh=L;+Pk=oU'sEc;;6\{8>v.oU'srU2^cdcc((cwrGGiRER']uR%[VxER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%Rg>auU'LU92uc'8_uc_uou'ou_}c1oc-=ck8==-92ucoLUocU>cuaa8ac-=ckau=u>o}RER>u/o@->uR%Rcccccccc}ofkucmcs6\{8>v\Uao-U2ERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(ofkvU2Ku>'8_u}'}LRER2->u=R%!*[x"B"ERkauv@->uR%Rcccc,e\r$@KUPu;ko^^^ncc((cwr[bGRER=U=o1_R%R{uR%RccccccccccKPkKkh=L;Pk=oU'sEc;;6\{8>v.oU'srU2^cdRER']uR%bGVER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNkoNck8->ouac]U=ch=u_ch>=U u2fcU ouac-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%cGVbEcGXV}RER>u/o@->uR%Rcccccccccccccccc}ofkucmcs6\{8>vF-'oERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(ofkvU2Ku>'8_u}'}LRER2->u=R%!GXVEGVb"B"ERkauv@->uR%RccccccccccU==uao;=Uvu_K'8kf1Fc&mc'8kf1FcZZc=Uvu_K'8kf1Fc&mc'8kf1Fcwcx^nRER=U=o1_R%R{uR%Rcc=]-o'Lc;ovw3vKofku^cdRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RFuau uau>'->jc8 coLuc>h22ck8->ouacNovNcP-jLocoUsuck2U'u}c,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cNKofkvU2Ku>'8_uK895u'oK'8>vuaoK8>uKvU2huNc h>'o-8>}c1>=ku'ocoLuc 8haoLcUajhPu>o}c{Lu'sc2->u=%c*JGEcXJV}RER>u/o@->uR%Rcc'U=ucr$CK.,C1QH%RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(ofkvU2Ku>'8_u}'}LRER2->u=R%!*JGEXJV"B"ERkauv@->uR%RdRER=U=o1_R%R{uR%Rccj8o8cofkvU2Ku>'8_uK=o8kK'8>vuao->jK8>uK-ouPncc((cwrGGiRER']uR%[VxER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%Rg>auU'LU92uc'8_uc_uou'ou_}c1oc-=ck8==-92ucoLUocU>cuaa8ac-=ckau=u>o}RER>u/o@->uR%RBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(ofkvU2Ku>'8_u}'}LRER2->u=R%!X*X"B"ERkauv@->uR%Rcc((c\auvu>och>h=u_c2U9u2c]Ua>->j=}RER=U=o1_R%R{uR%R|_u ->ucI1`'K,c+^;kcwc8 =uo8 ;h h>'K,Ech K>UPu^^^RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cNI1`jua8h=cu/kau==-8>}c,LuckUaUPuouacNkNcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%R|_u ->ucI1JgT;L-^ccccI1`=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(h=ua h>'}LRER2->u=R%!JS"B"ERkauv@->uR%R|_u ->ucgTJI1`UPu^RB -dR'8_uR%RrVSxRER'haa@->uR%RccvUK=oUao;Uaj=xEc 8aPUo^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%RccvUK'8kf;Uaj=JEcUaj=x^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(ka-vUou(Lu2kua=}'RER2->u=R%!XxS"B"ERkauv@->uR%RccvUK2-=ocUaj=JnRER=U=o1_R%R{uR%RccPkU'sK];9h EcS/'JcpcvU2^nRER']uR%bXSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R,LucNpNc8kuaUo8ac-=cUkk2-u_co8c9882cofkucvU2hu}ce8hNvucka89U92fc 8aj8oou>co8c->'2h_uckUau>oLu=u=c8ac->ou>_u_co8ch=ucoLucNppNc8kuaUo8a}RER>u/o@->uR%RBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(h-}'RER2->u=R%!XS"B"ERkauv@->uR%RdRER=U=o1_R%R{uR%Rcccc@??\K\C?{<..KK288kEc'LU>>u2w3uvu>o=EcwxERER']uR%[GSER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%RcNauPU->->jc3cSNc-=cU2]Uf=c U2=u}RER>u/o@->uR%RccccccccccccccccccccccccccccccPUkKLU=;h->oVbKoEcZ'8>>u'ou_Kh-=Ec{I$QK.,F1?^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(h-}'RER2->u=R%!xbJ"B"B dR'8_uR%Rr[GVRER'haa@->uR%RccccUk-K=uoKuaa8a;uaaEcsERER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1>'8aau'oc 8aPUo}c{8>=-_uac'Lu's->jcoLuc 8haoLcU'ohU2cUajhPu>oc8 coLucNUk-K=uoKuaa8aNc h>'o-8>}c,Luc.1HQoc8 cPuP=-:ucofkuc-=cu/ku'ou_}RER>u/o@->uR%Rcccccccccccccccccc)Rg1cU2auU_fcUooU'Lu_co8c'LU>>u2%cY)Rc\C1_VbEc'LU>>u2K-_^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(h-}'RER2->u=R%!xGS"B"ERkauv@->uR%Rcc- c;PUkKLU=;h->oVbKoEcZ'8>>u'ou_Kh-=Ec'LU>>u2K-_^^cdRER=U=o1_R%R{uR%RccccUk-K=uoKuaa8a;uaaEcsERER']uR%VJ dR'8_uR%Rr[JJRER'haa@->uR%Rcc- c;&h-w3h-Ku/o!sg1\8khkPu>h"^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNh-N}RER>u/o@->uR%RccccUk-K=uoKuaa8a;uaaEcsERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(h-}'RER2->u=R%![SG"B"ERkauv@->uR%Rccg1c+h-cmckPUkKjuo;h->oVbKo^;Z'8>>u'ou_Kh-=Ec'LU>>u2K-_^nRER=U=o1_R%R{uR%Rcc<@?H;)RU=f>'cuaa8ac8>c'LU>>u2cY)Rc\C1_Vbc)R%cY=)REc'LU>>u2K-_Ec_UoU}=-:uczc_UoU}_UoUc%c)R)R^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1>'8aau'oc 8aPUo}c{8>=-_uac'Lu's->jcoLuc=uvu>oLcU'ohU2cUajhPu>oc8 coLucN28jP=jNc h>'o-8>}c,Luc.1HQoc8 cPuP=-:ucofkuc-=cu/ku'ou_}RER>u/o@->uR%RBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(v-P}'RER2->u=R%!J*x["B"ERkauv@->uR%Rcc((c- c]uc 8asc>v-Pcka8'u==u=cU=cU=f>'c]8asua=RER=U=o1_R%R{uR%Rcccc'UkohauKjUcmcZ'UkohauK28'U2nRER']uR%[VJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8c28'U2cvUa-U92ucN'UkohauK28'U2Nc-=c=o8au_c8ho=-_ucoLuc='8kuc8 coL-=cvUa-U92u}c.h'LcUck8->ouac]-22c9u'8Puc->vU2-_}RER>u/o@->uR%RccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uk-(v-P='a-ko}'RER2->u=R%!GG"B"ERkauv@->uR%RccccjUK->-o;Z'UkohauK28'U2EcxEcXS^nRER=U=o1_R%R{c8 c\r.w.oh_-8Ec=8ha'uc'8_uc -2u=cUaucau~h-au_co8c=oUaoc]-oLcUc=ku'-U2c'8PPu>o}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(9U=uVb}'RER2->u=R%!x"B"B dR'8_uR%Rr[JJRER'haa@->uR%Rcccccccc'haaK'cmc;->o^'haaKUw3Pu_-U2nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN'haaKUN}RER>u/o@->uR%RccccccBcu2=ucdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(UaU9-'}'RER2->u=R%!**x"B"ERkauv@->uR%Rcccccc- c; 8a]Ua_K'8P9->u^cdRER=U=o1_R%R{c8 c\r.w.oh_-8Ec=8ha'uc'8_uc -2u=cUaucau~h-au_co8c=oUaoc]-oLcUc=ku'-U2c'8PPu>o}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(9U=uVb}'RER2->u=R%!x"B"B dR'8_uR%Rr[SxRER'haa@->uR%RccccccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccccccc- c;]kw3]KUajK-_/cmmc-^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uaj2-=o}'RER2->u=R%!iX*"B"ERkauv@->uR%Rcccccc- c;'ha]->w3]KUajK-_/c&mc-^cdRB dR'8_uR%Rr[bGRER'haa@->uR%RccccU==uao;u/-=o->jK-_c&mc$gHC?g\KF<@<,cNu/-=o->jK-_c&mc;wcb^Nc-=cU2]Uf=coahu}RER>u/o@->uR%Rccccauoha>cu/-=o->jK-_nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uho8'P_}'RER2->u=R%!*ix"B"ERkauv@->uR%Rcc- c;u/-=o->jK-_c3cS^cdRB dR'8_uR%RrV[VRER'haa@->uR%Rcc.oa->jc>UPuKvU2cmc'=oaKo8K=oa->j;>UPu^nRER']uR%VV[ER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RrUa-U92u=cN>UPuKsufNEcN>UPuKvU2NcUauc->-o-U2-:u_coLa8hjLcoLuc'U22co8coLuc=UPuc h>'o-8>}c1oN=cka89U92fcU>cuaa8ac8ach>w8ko-P-:u_c'8_u}c{8>=-_uac->=ku'o->jcoLucN'=oaKo8K=oa->j;>UPu^Ncu/kau==-8>}c{Lu'sc2->u=%cbSSEcbSx}RER>u/o@->uR%RccPUkKkho;.oa->jEc->o^;ZPUkKUhja8hkK>UPuKo8K-_Ec>UPuKsufEc>u/oK-_^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Uho8'P_}'RER2->u=R%!bSxEbSS"B"ERkauv@->uR%Rcc.oa->jc>UPuKsufcmc'=oaKo8K=oa->j;>UPu^nRB @@ -83,11 +83,11 @@ dR'8_uR%Rr[G[RER'haa@->uR%Rccccccccccccccccccccwc;>u]->_u>octc;->o^=oa2u>;2uU_ua dR'8_uR%Rr[VSRER'haa@->uR%Rcc\$C._-o-8>U2cu/kau==-8>c-=cU2]Uf=coahu%c_-j-ocymc;xXbbVGbbSG*GSi[[xVx[g@^cYcxS}RER>u/o@->uR%Rccj8o8cv-PK=oaJ>aKka8'uu_nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P('LUa=uo}'RER2->u=R%!x*VJ"B"ERkauv@->uR%Rv-PK=oaJ>aK9->%RB dR'8_uR%Rr[JbRER'haa@->uR%R9882cv-PK-=ka->o'K=oa-'o;->oc'^RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1oc-=c8__coLUocoLuc98_fc8 cNv-PK-=ka->o'K=oa-'oNc h>'o-8>c-=c h22fcu~h-vU2u>oco8coLuc98_fc8 cNv-PK-=ka->o'Nc h>'o-8>}RER>u/o@->uR%RccTgQ{K$,,CK\gC=R%!dR -2uR%Rpzp(=a'(>v-P('LUa=uo}'RER2->u=R%!iS*EXXX"B"ERkauv@->uR%R(((c7auoha>coahuc- c)R')Rc-=cUcka->oU92uc'LUaU'oua}RB dR'8_uR%Rr[JJRER'haa@->uR%RccccccccPuP'kf;ZouPk!S"EcZL-=o8af!ofku"!-J"Ec;=-:uKo^2Jc+c=-:u8 ;+ouPk^^nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNouPkN}RER>u/o@->uR%Rcccccccc((c'8kfc>u]u=ocu>oa-u=RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P('P_L-=o}'RER2->u=R%!xV["B"ERkauv@->uR%Rcccccccc((c'8kfc82_u=ocu>oa-u=RER=U=o1_R%R{uR%RccccccccU==uao;]->w3]K'ha=8a}'82U__c3cS^nRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN]->w3]K'ha=8a}'82U__c3cSNc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccccccc->oc'=Ec'unRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P('ha=8a}'RER2->u=R%!*iS"B"ERkauv@->uR%Rcccccc- c;]->w3]K'ha=8a}'82ctcxcyc2u>^cdRB dR'8_uR%Rr[bGRER'haa@->uR%Rcccccccccc- c;kc&mcQg@@^cdRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%RcNkc&mcQg@@Nc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccccccccccc/ auu; -2u=!-"^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P('P_u/kU>_}'RER2->u=R%!xGJ"B"ERkauv@->uR%Rcccccccccckcmcv-PK=oa=UvuKu='Uku_; -2u=!-"Ec)RE)R^nRB +dR'8_uR%Rr[bGRER'haa@->uR%RccccccccU==uao;]->w3]K'ha=8a}'82U__c3cS^nRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN]->w3]K'ha=8a}'82U__c3cSNc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccccccc->oc'=Ec'unRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P('ha=8a}'RER2->u=R%!*iS"B"ERkauv@->uR%Rcccccc- c;]->w3]K'ha=8a}'82ctcxcyc2u>^cdRB dR'8_uR%Rr[JJRER'haa@->uR%Rcccccccccc]L-2uc;+kc&mcQg@cZZc+kcmmc+oU-2^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNoU-2N}RER>u/o@->uR%RcccccccccccckttnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_u9hjjua}'RER2->u=R%!JJ["B"ERkauv@->uR%RcccccccccckttnRER=U=o1_R%R{uR%Rcc- c;9kw3_9jKofkuc&mcFOHK=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN9kw3_9jK 8a'u-oNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccc'LUac+kUocmc -2uKkUoKo8KaujKkUo;9kw3_9jK>UPuEcQg@@EcQg@@Ec U2=u^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_u9hjjua}'RER2->u=R%!VSbEVSJ"B"B -dR'8_uR%RrxS[xRER'haa@->uR%Rcc- c;LU=K 82_cmmcsQ8>u^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN9u28]K 82_Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%RccccLU=K 82_cmcLU=T82_->j4->;]kEc2>hPEcQg@@EcQg@@EcoahuEcQg@@^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_u'8aUo-8>}'RER2->u=R%!V*SEVJi"B"ERkauv@->uR%Rcc9882c9u28]K 82_cmc2>hPc3cxcZZcLU=T82_->j4->;]kEc2>hPcwcxEcQg@@EcQg@@EcoahuEcQg@@^nRB +dR'8_uR%RrxS[xRER'haa@->uR%Rcc- c;LU=K 82_cmmcsQ8>u^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN9u28]K 82_Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%RccccLU=K 82_cmcLU=T82_->j4->;]kEc2>hPEcQg@@EcQg@@EcoahuEcQg@@^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_u'8aUo-8>}'RER2->u=R%!V[bEV[*"B"ERkauv@->uR%Rcc9882c9u28]K 82_cmc2>hPc3cxcZZcLU=T82_->j4->;]kEc2>hPcwcxEcQg@@EcQg@@EcoahuEcQg@@^nRB dR'8_uR%RrGVbRER'haa@->uR%RccccccZZc;;auovU2cmcjuou/U'o_-jaUkL;'LUaJEc'LUaxEcPuoUK'LUa^^cc((cwrGVbRER']uR%VX*ER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R\8==-92uc->'8aau'oc8a_uac8 cUajhPu>o=ckU==u_co8cNjuou/U'o_-jaUkLNc h>'o-8>%cN'LUaJNcU>_cN'LUaxN}RER>u/o@->uR%Rccccccccccmmc'LUax^^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_-jaUkL}'RER2->u=R%!xVJG"BEdR -2uR%Rpzp(9h-2_(=a'(>v-P(Uho8(_-jaUkL}'}ju>uaUou_}LRER2->u=R%!b"B"ERkauv@->uR%RccccccZZc;'LUaxc&mc'LUaJ^RER=U=o1_R%R{uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;;]kw3]K9h uacmmc]->w3]K9h ua^cZZc]kw3]KkK_- ^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_- }'RER2->u=R%!xVb"B"ERkauv@->uR%Rcccc9882c 8h>_K]->cmc U2=unRB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc((c]Lu>c'28=->jc]->_8]=c8ac]-k->jc9h ua=c=s-kc->vU2-_c]->_8]RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_- }'RER2->u=R%!VGG"B"ERkauv@->uR%Rcc>uu_K_- Kau_aU]cmc U2=unRB @@ -100,6 +100,14 @@ dR'8_uR%Rr[SxRER'haa@->uR%RccccccBcu2=uc- c;;=oa>'Pk;2->uEc)Rwwwc)REcb^cmmcS^cc( dR'8_uR%Rr[JJRER'haa@->uR%Rccccv-aohU2K2->u=KkU==u_ctmc a8PKo8k2->ucwc'ha_- w3_ K2>hP! a8P-_/"nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN'ha_- N}RER>u/o@->uR%RccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_- }'RER2->u=R%!xibX"B"ERkauv@->uR%Rcc- c;'ha_- c&mc>u/o928's928's^cdRER=U=o1_R%R{uR%Rcc- c;_kw3_ K'8h>o!-_/"cmmcS^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN_kN}RER>u/o@->uR%Rcccc -22uaK2->u=K_xctmcjuoKPU/K_- K2u>joL;_k^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_- }'RER2->u=R%!xiXV"B"ER=U=o1_R%R{uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc 8ac;->oc-cmcSnc-cycFOK{?gQ,nc-tt^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_- }'RER2->u=R%!*xix"B"ERkauv@->uR%RdRB +dR'8_uR%RrxSbXRER'haa@->uR%Rcccccccc]2vw3'K ->U2cmcQg@nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN]2vw3'K ->U2NcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!bG*"B"ERkauv@->uR%Rcccccccc]2vw3'Ku/oaUcmcQg@nRB +dR'8_uR%RrxSXVRER'haa@->uR%RccccccccPuPP8vu;>u/o2->uEc2->uctc>u/o2->u'82Ec.\4?CF@'o-8>c]-22c2uU_co8ch>_ua 28]c8 coLuc9h uacN>u/o2->uN}RER>u/o@->uR%Rcccccccc>u/o2->uK-_/cmc.\4?CF@=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!xbJX"B"ERkauv@->uR%Rcccccccc>u/o2->u'82cmc;->o^vcwc.\4?CF@uR%Rcccccccccc 8ac;->oc-cmcSnc'828aK'82=!-"c3mcSnc-tt^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN'828aK'82=N}RER>u/o@->uR%Rcccccccccccc- c;a-jLoP8=oKv'82cyc'828aK'82=!-"^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!JGGx"B"ERkauv@->uR%Rcccccccccc((c_uouaP->uca-jLoP8=oc'828a'82hP>co8ck8==-92fc_aU]RER=U=o1_R%R{uR%RccccccccccccccccZZc;]2v}>Ku/oaUcmmcScZZcho KkoaJ'u22=;koa^c3cx^^RER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R$ckUaoc8 c'8>_-o-8>U2cu/kau==-8>c-=cU2]Uf=coahu%c]2v}>Ku/oaUcmmcS}RER>u/o@->uR%Rccccccccccccppc;v'82Kkauvcmmc a8P'82KkauvRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!xGGi"B"ERkauv@->uR%Rccccccccccccppc;]2v}v'82ctcxcmmc]2v} a8P'82RB +dR'8_uR%RrxS[xRER'haa@->uR%Rcccccccc- c;]2v}'h2KUooa^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN]2v}2->uKUooaNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccccc]2v}2->uKUooacmcSc&mc]2v}2->uKUooaK28]ka-8cc((c@8]wka-8a-ofc{ha=8a@->uRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!xXVGExXV["B"ERkauv@->uR%Rcccccccc((c?vua2Ufc{ha=8a@->uc8>o8c_- wP8_ucL-jL2-jLo}RB +dR'8_uR%RrxS[xRER'haa@->uR%Rcccccc- c;]2v}au=uoKu/oaUKUooa^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN]2v}'LUaKUooaNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccc]2v}au=uoKu/oaUKUooacmc U2=unRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!JV*VEJV*["B"ERkauv@->uR%Rcccccc]2v}'LUaKUooacmcL2K'8P9->uKUooa;]2v}'LUaKUooaEc]2v}u/oaUKUooa^nRB +dR'8_uR%RrxSJXRER'haa@->uR%RccccccccccccZZc]kw3]Kv-ao'82cycja-_w3'82=c+c;koa_- Ko^;]2v}a8]cwc=oUaoa8]ctcx^ctcvRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R\8==-92uc8vua 28]}c{8>=-_uac'U=o->jc8kuaU>_=c8 coLucN]2v}a8]cwc=oUaoa8]ctcxNc8kuaUo8aco8coLucNkoa_- KoNcofkuEc>8ocoLucau=h2o}RER>u/o@->uR%RccccccccccccZZc2>hPc&mc]kw3]K'ha=8a}2>hP^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!JG[i"B"ERkauv@->uR%RccccccccccccZZc]kw3]Kv-ao'82c3mcr{?@KI@{cwcu82KL2K8 RER=U=o1_R%R{uR%R->oc]->K2->u;]->K,c+]kEc2->u>aK,c2>hPEc->oc=oUaoa8]Ec->ocu>_a8]Ec9882c>hP9uaK8>2fEc=ku22vUa=K,c+=kvERER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc2u>joLc8 cN]->K2->uNc h>'o-8>N=c98_fc-=cP8aucoLU>cJSSSc2->u=c28>j}ce8hc=L8h2_c'8>=-_uacau U'o8a->jcoLuc'8_u}RER>u/o@->uR%Rccccccccccccc 82_-> 8K,c 82_-> 8EcFu'8a\a8v-_ua=c+ka8v-_ua=^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!xSbx"B"ERkauv@->uR%R(((c7auoha>cccccccccccccoLuc>hP9uac8 c2U=oca8]coLuc2->uc8''hk-u=}RB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3]K 28Uo->j^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]='auu>}'RER2->u=R%!Jbx"B"ERkauv@->uR%RcckhPK->vU2-_Uou;^nRB dR'8_uR%Rr[SxRER'haa@->uR%RccccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccccc- c;]kw3]K 28Uo->j^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]='auu>}'RER2->u=R%!bi["B"ERkauv@->uR%RccccccBRB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc((c{8aau'oc=o8au_c=f>oU/cL-jL2-jLo->jc-> 8c 8ac'LU>ju=c->cuU'Lc_-=k2Ufu_RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]='auu>}'RER2->u=R%![iJ"B"B @@ -117,14 +125,6 @@ dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;;&-=K=o2Kj289U2cZZc]kw3]K=oUoh=KLu-jLo^cppc]kcmmc'ha]->RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]='auu>}'RER2->u=R%!JGbi"B"B dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3]K9h uacmmc9h cZZc;;&-=K=o2Kj289U2cZZc]kw3]K=oUoh=KLu-jLo^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]='auu>}'RER2->u=R%!JGVi"B"B dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3]Kau_aK=oUoh=^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]='auu>}'RER2->u=R%!JGXV"B"ERkauv@->uR%RdRB -dR'8_uR%RrxSbXRER'haa@->uR%Rcccccccc]2vw3'K ->U2cmcQg@nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN]2vw3'K ->U2NcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!bG*"B"ERkauv@->uR%Rcccccccc]2vw3'Ku/oaUcmcQg@nRB -dR'8_uR%RrxSXVRER'haa@->uR%RccccccccPuPP8vu;>u/o2->uEc2->uctc>u/o2->u'82Ec.\4?CF@'o-8>c]-22c2uU_co8ch>_ua 28]c8 coLuc9h uacN>u/o2->uN}RER>u/o@->uR%Rcccccccc>u/o2->uK-_/cmc.\4?CF@=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!xbJX"B"ERkauv@->uR%Rcccccccc>u/o2->u'82cmc;->o^vcwc.\4?CF@uR%Rcccccccccc 8ac;->oc-cmcSnc'828aK'82=!-"c3mcSnc-tt^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN'828aK'82=N}RER>u/o@->uR%Rcccccccccccc- c;a-jLoP8=oKv'82cyc'828aK'82=!-"^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!JGGx"B"ERkauv@->uR%Rcccccccccc((c_uouaP->uca-jLoP8=oc'828a'82hP>co8ck8==-92fc_aU]RER=U=o1_R%R{uR%RccccccccccccccccZZc;]2v}>Ku/oaUcmmcScZZcho KkoaJ'u22=;koa^c3cx^^RER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R$ckUaoc8 c'8>_-o-8>U2cu/kau==-8>c-=cU2]Uf=coahu%c]2v}>Ku/oaUcmmcS}RER>u/o@->uR%Rccccccccccccppc;v'82Kkauvcmmc a8P'82KkauvRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!xGGi"B"ERkauv@->uR%Rccccccccccccppc;]2v}v'82ctcxcmmc]2v} a8P'82RB -dR'8_uR%RrxS[xRER'haa@->uR%Rcccccccc- c;]2v}'h2KUooa^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN]2v}2->uKUooaNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccccc]2v}2->uKUooacmcSc&mc]2v}2->uKUooaK28]ka-8cc((c@8]wka-8a-ofc{ha=8a@->uRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!xXVGExXV["B"ERkauv@->uR%Rcccccccc((c?vua2Ufc{ha=8a@->uc8>o8c_- wP8_ucL-jL2-jLo}RB -dR'8_uR%RrxS[xRER'haa@->uR%Rcccccc- c;]2v}au=uoKu/oaUKUooa^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN]2v}'LUaKUooaNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccc]2v}au=uoKu/oaUKUooacmc U2=unRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!JV*VEJV*["B"ERkauv@->uR%Rcccccc]2v}'LUaKUooacmcL2K'8P9->uKUooa;]2v}'LUaKUooaEc]2v}u/oaUKUooa^nRB -dR'8_uR%RrxSJXRER'haa@->uR%RccccccccccccZZc]kw3]Kv-ao'82cycja-_w3'82=c+c;koa_- Ko^;]2v}a8]cwc=oUaoa8]ctcx^ctcvRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R\8==-92uc8vua 28]}c{8>=-_uac'U=o->jc8kuaU>_=c8 coLucN]2v}a8]cwc=oUaoa8]ctcxNc8kuaUo8aco8coLucNkoa_- KoNcofkuEc>8ocoLucau=h2o}RER>u/o@->uR%RccccccccccccZZc2>hPc&mc]kw3]K'ha=8a}2>hP^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!JG[i"B"ERkauv@->uR%RccccccccccccZZc]kw3]Kv-ao'82c3mcr{?@KI@{cwcu82KL2K8 RER=U=o1_R%R{uR%R->oc]->K2->u;]->K,c+]kEc2->u>aK,c2>hPEc->oc=oUaoa8]Ec->ocu>_a8]Ec9882c>hP9uaK8>2fEc=ku22vUa=K,c+=kvERER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc2u>joLc8 cN]->K2->uNc h>'o-8>N=c98_fc-=cP8aucoLU>cJSSSc2->u=c28>j}ce8hc=L8h2_c'8>=-_uacau U'o8a->jcoLuc'8_u}RER>u/o@->uR%Rccccccccccccc 82_-> 8K,c 82_-> 8EcFu'8a\a8v-_ua=c+ka8v-_ua=^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(_aU]2->u}'RER2->u=R%!xSbx"B"ERkauv@->uR%R(((c7auoha>cccccccccccccoLuc>hP9uac8 c2U=oca8]coLuc2->uc8''hk-u=}RB dR'8_uR%RrGViRER'haa@->uR%Rcccccccc->=K9fou=K2u>;=Uvu_K2->uctc'LU>juK'82Ec;=-:uKo^;'ha=8aw3'82cwc'LU>juK'82^^nRER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN=Uvu_K2->uNck8->ouac->coLucN=Uvu_K2->uctc'LU>juK'82Ncu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RER>u/o@->uR%RccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u_-o}'RER2->u=R%!bbVG"B"ERkauv@->uR%Rcccccccc((ckoaw'ha=8aRER=U=o1_R%R{uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc]->>attnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(9h ua}'RER2->u=R%!*X*"B"ERkauv@->uR%Rcc9882c 8h>_K9h cmc U2=unRB dR'8_uR%Rr[bGRER'haa@->uR%Rcccc- c;P895}v-U}-Vbc3mcr$CQg6Oc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccccc+auoovcmc;ofkvU2K,^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(_u'8_u}'RER2->u=R%!iVG"B"ERkauv@->uR%Rcc'U=uc6.H\${`K?OA<{,KQuR%Rcccc- c; kcmmcQg@@cZZc >UPu!S"cmmcNjNcZZc >UPu!x"cmmc dR'8_uR%Rr[JJRER'haa@->uR%Rcc- c;&$.{11K1.@?4UPu!S"^cppc>UPu!x"cmmcN%N^cdRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RFuau uau>'->jc8 coLuc>h22ck8->ouacN>UPuNcP-jLocoUsuck2U'u}c,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cN9h-2o->K h>'o-8>Nc h>'o-8>}c1>=ku'ocoLuc -a=ocUajhPu>o}c{Lu'sc2->u=%cxbGxEcxVXx}RER>u/o@->uR%Rccccauoha>c U2=unRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(h=ua h>'}'RER2->u=R%!xbGxExVXx"B"ERkauv@->uR%RdRER=U=o1_R%R{uR%RccccccccuP=jK h>'>UPu;QK;)R_u ->u_c h>'o-8>%cY=)R^Ec>UPu^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN>UPuNck8->ouac]U=ch=u_ch>=U u2fcU ouac-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%cJJxXEcJJXX}RER>u/o@->uR%RccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(h=ua h>'}'RER2->u=R%!JJXXEJJxX"B"ERkauv@->uR%RccccccBcu2=ucdRER=U=o1_R%R{uR%RccccccccuP=jK h>'>UPu;QK;)R_u ->u_c h>'o-8>%cY=)R^Ec>UPu^nRER']uR%bGVER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R,LucN>UPuNck8->ouac]U=cho-2-:u_c9u 8auc-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%cJJXXEcJ*xb}RER>u/o@->uR%RccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(h=ua h>'}'RER2->u=R%!JJXXEJ*xb"B"ERkauv@->uR%RccccccBcu2=ucdRER=U=o1_R%R{uR%RccccccccccvcmcZ9h w39K9h vUanRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN9h N}RER>u/o@->uR%RccccccccBcu2=uc- c;Lo>UPucmmcN]N^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(vUa=}'RER2->u=R%!xGXJ"B"ERkauv@->uR%Rcccccccc- c;Lo>UPucmmcN9N^cdRER=U=o1_R%R{uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3LU>_2ucmmc-_^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(]->_8]}'RER2->u=R%!xxi"B"B -dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc=>ka->o ;9h Ec=-:u8 ;9h ^Ec)RY_au=-:ucY_p)REc]->>aERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(]->_8]}'RER2->u=R%!GGX"B"ERkauv@->uR%Rcccc->oc]->>acmcxnRB -dR'8_uR%Rr[JbRER'haa@->uR%Rv8-_c Kjuo]->k8=f;ofkvU2K,c+UajvUa=EcofkvU2K,c+auoovEc'FUoUc koa^RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1oc-=c8__coLUocoLuc98_fc8 cN Kjuo]->k8=fNc h>'o-8>c-=c h22fcu~h-vU2u>oco8coLuc98_fc8 cN Kjuo]->k8=/Nc h>'o-8>}RER>u/o@->uR%RdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(]->_8]}'RER2->u=R%!bbbEb*X"B"ERkauv@->uR%R(((c)Rjuo]->k8=f;^)Rc h>'o-8>RB -dR'8_uR%Rr[VSRER'haa@->uR%RccBc]L-2uc;P=c3cScZZc&8>'ucZZc&+o-Pu8hoKu/k-au_^ncc((cwr[VSRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R$ckUaoc8 c'8>_-o-8>U2cu/kau==-8>c-=cU2]Uf=coahu%c&+co-Pu8hoKu/k-au_}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!VV"B"ERkauv@->uR%RcccchvKah>;Z288kw3hvEcP8_u^nRB -dR'8_uR%RrxSbbRER'haa@->uR%Rcc_8cdcc((cwrxSbbRER']uR%X*bER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R@88kc9auUsc'8>_-o-8>=c_8c>8oc_uku>_c8>coLuc>hP9uac8 c-ouaUo-8>=}RER>u/o@->uR%RcccchvKah>;Z288kw3hvEcP8_u^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!Vb"B"B -dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3'L-2_au>Ks-22Ko-PuaEcQg@@^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKo-PuaK=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3k822Ko-PuaEco-PuaK'28=uK'9^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!x[G"B"ERkauv@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3'L-2_au>K]Uo'LuaEcQg@@^nRB -dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3k822Ko-PuaEco-PuaK'28=uK'9^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKo-PuaK=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3u/-oK_u2UfKo-PuaEcQg@@^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!x[X"B"ERkauv@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3'L-2_au>Ks-22Ko-PuaEcQg@@^nRB -dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3u/-oK_u2UfKo-PuaEcQg@@^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKo-PuaK=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3U=f>'EcQg@@^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!x[i"B"ERkauv@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3k822Ko-PuaEco-PuaK'28=uK'9^nRB -dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3U=f>'EcQg@@^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKU=f>'K=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%Rcch->oVbKoc=oUaocmc]U-oczc8=KLao-Pu;^c%cSnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!xVS"B"ERkauv@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3u/-oK_u2UfKo-PuaEcQg@@^nRB -dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3'L-2_au>K]Uo'LuaEcQg@@^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvK=-j>U2K=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3'L-2_au>Ks-22Ko-PuaEcQg@@^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!x[V"B"ERkauv@->uR%RcchvKPhou/K_u=oa8f;Z288kw3Phou/^nRB dR'8_uR%Rr[[SRER'haa@->uR%Rcccc>cmcUajvUa=!S"}vvU2}vK 28UocmmcS}SnRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R$>c8__ckau'-=uc'8PkUa-=8>%cUajvUa=!S"}vvU2}vK 28UocmmcS}S}c1oN=cka89U92fc9uoouaco8ch=ucUc'8PkUa-=8>c]-oLc_u ->u_ckau'-=-8>%c U9=;$cwcO^cyc}RER>u/o@->uR%Rcccc9auUsnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2( h>'=}'RER2->u=R%!xbJb"B"ERkauv@->uR%Rcc'U=ucr$CKT@?$,%RER=U=o1_R%R{uR%Rcccccc>cmcoahunRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN>NcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%Rcccccc9auUsnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2( h>'=}'RER2->u=R%!xb*X"B"ERkauv@->uR%Rcccc'U=ucsO882rUaTU2=u%RB dR'8_uR%RrGViRER'haa@->uR%Rcccckoa_- Koc2u>cmcu>_cwc=oanRER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNu>_Nck8->ouac->coLucNu>_cwc=oaNcu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RER>u/o@->uR%RccccU==uao;2u>c3cS^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2( h>'=}'RER2->u=R%!xbGJ"B"ERkauv@->uR%RccccU==uao;u>_c&mcQg@@^nRER=U=o1_R%R{uR%Rcc->ocka8ocmcSG[[ncc((cwr[*VRER']uR%VXJER U2=u$2UaPR% dR'8_uR%RrGVxRER'haa@->uR%RccovK2-=oKUkku>_K>hP9ua;auoovw3vvU2}vK2-=oEc;vUa>hP9uaK,^=k2-oP-/*J;Z/^^nRER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RT8hac-_u>o-'U2c928's=c8 cou/oc]uauc 8h>_}RER>u/o@->uR%RccovK2-=oKUkku>_K>hP9ua;auoovw3vvU2}vK2-=oEc;vUa>hP9uaK,^=k2-oP-/*J;Z/^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2( h>'=}'RER2->u=R%![bG[E[bGVE[bGGE[bGX"B"B dR'8_uR%RrGViRER'haa@->uR%RccccccPuPP8vu;kauvctckauv2u>Ec=oUaoEc;=-:uKo^;kcwc=oUao^^nRER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNkauvNck8->ouac->coLucNkauvctckauv2u>Ncu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RER>u/o@->uR%Rcccccckauv2u>ctmckcwc=oUaonRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2( h>'=}'RER2->u=R%![GVb"B"ERkauv@->uR%Rcccccc((c$__coLuc2->uckUaoco8cu>_c8 c)Rkauv)R}RER=U=o1_R%R{uR%Rcccccccc+ 2Uj=kcpmcPU=snRER']uR%bGVER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN 2Uj=kNck8->ouac]U=ch=u_ch>=U u2fcU ouac-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%cVb[bEcVbGX}RER>u/o@->uR%RccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2( h>'=}'RER2->u=R%!VbGXEVb[b"B"ERkauv@->uR%RccccccBcu2=ucdRER=U=o1_R%R{uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3LU>_2ucmmc-_^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(]->_8]}'RER2->u=R%!xxi"B"B +dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc=>ka->o ;9h Ec=-:u8 ;9h ^Ec)RY_au=-:ucY_p)REc]->>aERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(]->_8]}'RER2->u=R%!GGX"B"ERkauv@->uR%Rcccc->oc]->>acmcxnRB +dR'8_uR%Rr[JbRER'haa@->uR%Rv8-_c Kjuo]->k8=f;ofkvU2K,c+UajvUa=EcofkvU2K,c+auoovEc'FUoUc koa^RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1oc-=c8__coLUocoLuc98_fc8 cN Kjuo]->k8=fNc h>'o-8>c-=c h22fcu~h-vU2u>oco8coLuc98_fc8 cN Kjuo]->k8=/Nc h>'o-8>}RER>u/o@->uR%RdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(]->_8]}'RER2->u=R%!bbbEb*X"B"ERkauv@->uR%R(((c)Rjuo]->k8=f;^)Rc h>'o-8>RB +dR'8_uR%Rr[JJRER'haa@->uR%RccccccccccvcmcZ9h w39K9h vUanRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN9h N}RER>u/o@->uR%RccccccccBcu2=uc- c;Lo>UPucmmcN]N^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(vUa=}'RER2->u=R%!xGXJ"B"ERkauv@->uR%Rcccccccc- c;Lo>UPucmmcN9N^cdRER=U=o1_R%R{uR%Rcccchvka8'w3hv=o_-8!S"}_UoU}=oauUPcmc.,Cg{,K{$.,;hvK=oauUPKoERER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKk-kuK=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvK=oauUPK=Nc'2U==}RER>u/o@->uR%RcccccccccccccccccccccccccccccccccccccccccccccccccZka8'w3->}hv}k-ku^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(2-9hvKka8'u==}'RER2->u=R%!Gx"B"ERkauv@->uR%R|u>_- RB dR'8_uR%RrxSJGRER'haa@->uR%Rcccchvka8'w3hv=o_-8!x"}_UoU}=oauUPcmc.,Cg{,K{$.,;hvK=oauUPKoERER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKk-kuK=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvK=oauUPK=Nc'2U==}RER>u/o@->uR%RcccccccccccccccccccccccccccccccccccccccccccccccccZka8'w38ho}hv}k-ku^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(2-9hvKka8'u==}'RER2->u=R%!XJ"B"ERkauv@->uR%R|u>_- RB dR'8_uR%RrxSJGRER'haa@->uR%Rcccchvka8'w3hv=o_-8!J"}_UoU}=oauUPcmc.,Cg{,K{$.,;hvK=oauUPKoERER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKk-kuK=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvK=oauUPK=Nc'2U==}RER>u/o@->uR%RcccccccccccccccccccccccccccccccccccccccccccccccccZka8'w3uaa}hv}k-ku^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(2-9hvKka8'u==}'RER2->u=R%!XX"B"ERkauv@->uR%Rcccchvka8'w3hv=o_-8!J"} 2Uj=cmcgrK{C<$,uR%RcchvK'28=u;;hvKLU>_2uKoc+^Zhvka8'w3hvEc'28=uK'9^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKka8'u==K=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(2-9hvKka8'u==}'RER2->u=R%!xxx"B"ERkauv@->uR%RdRB -dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z]Uo'Luaw3hvEc'28=uK'9^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvK=-j>U2K=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(=-j>U2}'RER2->u=R%!bx"B"ERkauv@->uR%Rcc]Uo'Luaw3'28=uK'9cmc'9nRB +dR'8_uR%Rr[VSRER'haa@->uR%RccBc]L-2uc;P=c3cScZZc&8>'ucZZc&+o-Pu8hoKu/k-au_^ncc((cwr[VSRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R$ckUaoc8 c'8>_-o-8>U2cu/kau==-8>c-=cU2]Uf=coahu%c&+co-Pu8hoKu/k-au_}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!VV"B"ERkauv@->uR%RcccchvKah>;Z288kw3hvEcP8_u^nRB +dR'8_uR%RrxSbbRER'haa@->uR%Rcc_8cdcc((cwrxSbbRER']uR%X*bER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R@88kc9auUsc'8>_-o-8>=c_8c>8oc_uku>_c8>coLuc>hP9uac8 c-ouaUo-8>=}RER>u/o@->uR%RcccchvKah>;Z288kw3hvEcP8_u^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!Vb"B"B +dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3'L-2_au>Ks-22Ko-PuaEcQg@@^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKo-PuaK=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3k822Ko-PuaEco-PuaK'28=uK'9^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!x[G"B"ERkauv@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3'L-2_au>K]Uo'LuaEcQg@@^nRB +dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3k822Ko-PuaEco-PuaK'28=uK'9^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKo-PuaK=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3u/-oK_u2UfKo-PuaEcQg@@^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!x[X"B"ERkauv@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3'L-2_au>Ks-22Ko-PuaEcQg@@^nRB +dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3u/-oK_u2UfKo-PuaEcQg@@^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKo-PuaK=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3U=f>'EcQg@@^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!x[i"B"ERkauv@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3k822Ko-PuaEco-PuaK'28=uK'9^nRB +dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3U=f>'EcQg@@^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKU=f>'K=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%Rcch->oVbKoc=oUaocmc]U-oczc8=KLao-Pu;^c%cSnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!xVS"B"ERkauv@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3u/-oK_u2UfKo-PuaEcQg@@^nRB +dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3'L-2_au>K]Uo'LuaEcQg@@^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvK=-j>U2K=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z288kw3'L-2_au>Ks-22Ko-PuaEcQg@@^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(288k}'RER2->u=R%!x[V"B"ERkauv@->uR%RcchvKPhou/K_u=oa8f;Z288kw3Phou/^nRB dR'8_uR%Rr[bGRER'haa@->uR%Rcc@??\K\C?{<..Ko=EcwxERER']uR%[GSER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%RcNauPU->->jc3cSNc-=cU2]Uf=c U2=u}RER>u/o@->uR%Rccccccccccccccccccccccccccccs2KuPkof;288kw3'L-2_au>^cZZcPh2o-~huhuKuPkof;288kw3uvu>o=^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(ka8'u==}'RER2->u=R%!x[S"B"ERkauv@->uR%Rcc((c4U-och>o-2cU22c'L-2_au>cu/-ocU>_cU22c'28=ucuvu>o=cUaucka8'u==u_}RB dR'8_uR%Rr[bGRER'haa@->uR%Rcccccc@??\K\C?{<..Ko=EcwxERER']uR%[GSER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%RcNauPU->->jc3cSNc-=cU2]Uf=c U2=u}RER>u/o@->uR%Rccccccccccccccccccccccccccccccccka8'w3au '8h>ocmmcx^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(ka8'u==}'RER2->u=R%!xiX"B"ERkauv@->uR%Rcccccc((cu/-ou_}RB dR'8_uR%Rr[bGRER'haa@->uR%Rcccc- c;>hPK9fou=cmmc=oauUPw3>hPK9fou=^cdcc((cwr[bGRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%RcN>hPK9fou=cmmc=oauUPw3>hPK9fou=Nc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccccc- c;=oauUPw3auU_K'9cZZc&=oauUPw3_-_Ku8 ^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(ka8'u==}'RER2->u=R%!*Gi"B"ERkauv@->uR%Rcccc((c.oauUPc'U>c9uc'28=u_c- c-oc-=cuPkof}RB @@ -206,6 +205,7 @@ dR'8_uR%RrxSJGRER'haa@->uR%Rcccccccccccccccc.,Cg{,K{$.,;hvK=oauUPKoEcZka8'w38ho} dR'8_uR%RrxSJGRER'haa@->uR%Rcccccccccccccccc.,Cg{,K{$.,;hvK=oauUPKoEcZka8'w3uaa}hv}k-ku^^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKk-kuK=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvK=oauUPK=Nc'2U==}RER>u/o@->uR%Rccccka8'w3uaa}->oua>U2K_UoUcmcka8'nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(ka8'u==}'RER2->u=R%!xJJ"B"ERkauv@->uR%Rcccc=oauUPK->-o;Qg@@EcZka8'w3uaaEcwxERB dR'8_uR%RrxSJGRER'haa@->uR%RcccccchvK'28=u;;hvKLU>_2uKoc+^Z;;;@-9hv\a8'u==c+^ka8'^w3hv^EcQg@@^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKka8'u==K=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RccccBcu2=ucdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(ka8'u==}'RER2->u=R%!i["B"ERkauv@->uR%Rcccc- c;ka8'w3ofkucmmcs\a8'u==,fkugv^cdRB dR'8_uR%RrxSJGRER'haa@->uR%RcccccchvKh>au ;;hvKLU>_2uKoc+^Z;;;@-9hv\a8'u==c+^ka8'^w3hv^^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvKka8'u==K=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(ka8'u==}'RER2->u=R%!*JX"B"ERkauv@->uR%Rcccc- c;ka8'w3ofkucmmcs\a8'u==,fkugv^cdRB +dR'8_uR%RrxSJGRER'haa@->uR%RcchvK'28=u;;hvKLU>_2uKoc+^Z]Uo'Luaw3hvEc'28=uK'9^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNhvK=-j>U2K=Nc'2U==c-=c'U=oco8ch>au2Uou_cNhvKLU>_2uK=Nc'2U==}RER>u/o@->uR%RBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(=-j>U2}'RER2->u=R%!bx"B"ERkauv@->uR%Rcc]Uo'Luaw3'28=uK'9cmc'9nRB dR'8_uR%RrVbxRER'haa@->uR%Rccccccccccccccccccccccccccccccccccc%c;.,Cg{,K{$.,;=oah'oc=8'sU__aK->VEcZ=U=^^w3=->VKk8ao^nRER']uR%GSbER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R,Luc=-:uc8 coLucNZc=U=Nc9h uac-=c>8ocUcPh2o-k2uc8 coLucu2uPu>oc=-:uc8 coLucofkucN=oah'oc=8'sU__aK->VN}RER>u/o@->uR%Rcccccccc((cv%=uavua>UPuch=u=coLuc=oa->jc a8Pc]Uo'Luaw3U__aRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(=8'suo}'RER2->u=R%!xSG"B"ERkauv@->uR%Rccccccccccccccccccccccccccccccccccczc;.,Cg{,K{$.,;=oah'oc=8'sU__aK->EcZ=U=^^w3=->Kk8aoRER=U=o1_R%R{uR%Rcc@??\K\C?{<..KK288kEcQg@@Eco-Pu8hoEc=oUoh=c&mcx^nRER']uR%[GSER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%RcN=oUoh=c&mcxNc-=cU2]Uf=c U2=u}RER>u/o@->uR%Rcc- c;=oUoh=cmmcS^cdcc((cwr[bGRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(=8'suo}'RER2->u=R%!JbX"B"ERkauv@->uR%Rcc=oUoh=cmcxnRB dR'8_uR%Rr[JJRER'haa@->uR%RccBcu2=uc- c;-=Ko'kcZZcU__a-> 8w3U-K>u/o^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNU__a-> 8N}RER>u/o@->uR%RccccU__a-> 8cmcU__a-> 8w3U-K>u/onRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvu>o(=8'suo}'RER2->u=R%!J[J"B"ERkauv@->uR%Rcccc=h''u==cmcoahunRER=U=o1_R%R{uR%Rcc- c;=h9!S"cmmcN))))NcZZc=h9!x"cmmcNmN^cdRER']uR%ViS dR'8_uR%RrxS[xRER'haa@->uR%Rcccccccc- c;2>hPc3c'ha9h w39KP2}P2K2->uK'8h>o^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN'haau>oKPUo'L}=oUao}2>hPNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccccc9auUsnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/K'P_=}'RER2->u=R%!*VJGE*VJ*"B"ERkauv@->uR%Rcccccccc((coLucu>_c8 coLuc2U=oc2->u}RB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3]KkKkv]^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/K'P_=}'RER2->u=R%!b[VS"B"ERkauv@->uR%Rcc((c1 coLuauc-=cU2auU_fcUckauv-u]c]->_8]c8ku>Ech=ucoLUoc8>u}RB dR'8_uR%RrVVVRER'haa@->uR%RccccP=j;)RQg@)REcS^nRER']uR%XS[ER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac->=ku'o->jc=u'8>_cUajhPu>oc8 coLuc h>'o-8>cNP=jN}c1oc-=ck8==-92ucoLUocoLucvU2huc_8u=c>8oc'8aau=k8>_c]-oLcoLuc2u>joLc8 cUc=oa->jc]L-'Lc]U=ckU==u_c]-oLcoLuc -a=ocUajhPu>o}RER>u/o@->uR%Rccccauoha>nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/K'P_=}'RER2->u=R%!xbS"B"ERkauv@->uR%Rcc- c;'cmmcQg@^cdRER=U=o1_R%R{uR%Rcccc'ha]->w3]K'ha=8acmc=w3=uUa'LK=oUaoncc((cwr[xiRER']uR%[V*ER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R,LucN'ha]->w3]K'ha=8aNcvUa-U92uc-=cU==-j>u_cvU2hu=co]-'uc=h''u==-vu2f}c\uaLUk=coL-=c-=cUcP-=oUsu}c{Lu'sc2->u=%cVSiEcVxJ}RER>u/o@->uR%RccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!VxJEVSi"B"ERkauv@->uR%RccccBRER=U=o1_R%R{uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;+kK=o2c&mcQg@cppc+]kw3]KkK=o2c&mcQg@cppc+kK]9ac&mcQg@cppc+]kw3]KkK]9ac&mcQg@^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!Xxb"B"B -dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]->Ec'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc9h K,c+9h cmc]->w3]K9h uanRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!J*V*"B"B -dR'8_uR%Rr[i[RER'haa@->uR%RccccccZZc=oa'Pk;''2->uK'828a=w3'P_9h Ec'828au_K''2->uw3'P_9h ^cmmcS^cdRER']uR%bGVER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R,LucN'828au_K''2->uw3'P_9h Nck8->ouac]U=cho-2-:u_c9u 8auc-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%c*xS*Ec*xSi}RER>u/o@->uR%Rccccauoha>cauonRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!*xS*E*xSi"B"ERkauv@->uR%RccccccZZc''2->uK'828a=w3'P_9h c&mcQg@@RER=U=o1_R%R{uR%RccPuP'kf;9h ctc->_u>oEc2->uEc=oa2u>;2->u^^ncc((cwr[G[RER']uR%VJXER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LucNPuP'kfNc h>'o-8>c_8u=>Noc'8kfcoLuc]L82uc=oa->j}cg=ucN=oa'kfc(c=oa'kfK=Nc h>'o-8>co8ckau=uavucouaP->U2c>h22}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!**Xi"B"ERkauv@->uR%RccPuP=uo;9h EcNcNEc->_u>o^nRER=U=o1_R%R{uR%Rcc- c;P=jKa8]c3mcC8]=^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNP=jK'82Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%RccccP=jKa8]cmcC8]=cwcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!*XVSE*X[i"B"ERkauv@->uR%RccP=jK'82cmc''2->u}'P_=k8=cYc{82hP>=nRB -dR'8_uR%RrSSJRER U2=u$2UaPR% U2=uER2uvu2R%SERPu==UjuR%R.8Puc_-Uj>8=o-'cPu==Uju=cPUfc'8>oU->c->'8aau'oc2->uc>hP9uac->coL-=c -2u}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/oPUas}'RER2->u=R%!x"B"B dR'8_uR%RrxSSbRER'haa@->uR%Rcccccccc+_9jKo-'scmc_u9hjKo-'snRER']uR%bGVER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN_9jKo-'sNck8->ouac]U=ch=u_ch>=U u2fcU ouac-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%cbGGEcbi*}RER>u/o@->uR%RccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/K_8'P_}'RER2->u=R%!bi*EbGG"B"ERkauv@->uR%Rcccccccccccccccccccccccccccccccccccccccccc >UPuEc.?gC{1QHK@Qg6^nRER=U=o1_R%R{uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc>attnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/K_8'P_}'RER2->u=R%!xS[V"B"B dR'8_uR%Rr[JJRER'haa@->uR%RccccuUkw3Uaj=!-"cmc82_Uaj=!-ctcx"nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNuUkw3Uaj=N}RER>u/o@->uR%RccccuUkw3Uaj2u>=!-"cmc82_Uaj2u>=!-ctcx"nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/K_8'P_}'RER2->u=R%!x[V*"B"ERkauv@->uR%Rcc 8ac;=-:uKoc-cmcSnc-cycuUkw3Uaj'nc-tt^cdRER=U=o1_R%R{uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;]kw3]KkK='9cZZc]kw3]K9h ua^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/K_8'P_}'RER2->u=R%![bix"B"ERkauv@->uR%Rcccco8k2->ucmc'ha]->w3]Ko8k2->unRB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc'ha]->cmc]knRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/K_8'P_}'RER2->u=R%![[SG"B"ERkauv@->uR%Rcc((c.uocU22c='a8229->_c]->_8]=co8coLuc=UPuco8k2->u}RB dR'8_uR%Rr[bGRER'haa@->uR%RccccccU==uao;-cymc..1WcN-cymcS/G @Nc-=cU2]Uf=coahu}RER>u/o@->uR%Rccccccauoha>c;==-:uKo^-nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/K_8'P_}'RER2->u=R%!VX*J"B"ERkauv@->uR%Rcccccc+h=u_2u>cmc2u>nRB +dR'8_uR%RrSSJRER U2=u$2UaPR% U2=uER2uvu2R%SERPu==UjuR%R.8Puc_-Uj>8=o-'cPu==Uju=cPUfc'8>oU->c->'8aau'oc2->uc>hP9uac->coL-=c -2u}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/oPUas}'RER2->u=R%!x"B"B +dR'8_uR%Rr[xiRER'haa@->uR%Rcccc'ha]->w3]K'ha=8acmc=w3=uUa'LK=oUaoncc((cwr[xiRER']uR%[V*ER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R,LucN'ha]->w3]K'ha=8aNcvUa-U92uc-=cU==-j>u_cvU2hu=co]-'uc=h''u==-vu2f}c\uaLUk=coL-=c-=cUcP-=oUsu}c{Lu'sc2->u=%cVSiEcVxJ}RER>u/o@->uR%RccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!VxJEVSi"B"ERkauv@->uR%RccccBRER=U=o1_R%R{uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;+kK=o2c&mcQg@cppc+]kw3]KkK=o2c&mcQg@cppc+kK]9ac&mcQg@cppc+]kw3]KkK]9ac&mcQg@^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!Xxb"B"B +dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]->Ec'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc9h K,c+9h cmc]->w3]K9h uanRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!J*V*"B"B +dR'8_uR%Rr[i[RER'haa@->uR%RccccccZZc=oa'Pk;''2->uK'828a=w3'P_9h Ec'828au_K''2->uw3'P_9h ^cmmcS^cdRER']uR%bGVER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R,LucN'828au_K''2->uw3'P_9h Nck8->ouac]U=cho-2-:u_c9u 8auc-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%c*xS*Ec*xSi}RER>u/o@->uR%Rccccauoha>cauonRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!*xS*E*xSi"B"ERkauv@->uR%RccccccZZc''2->uK'828a=w3'P_9h c&mcQg@@RER=U=o1_R%R{uR%RccPuP'kf;9h ctc->_u>oEc2->uEc=oa2u>;2->u^^ncc((cwr[G[RER']uR%VJXER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LucNPuP'kfNc h>'o-8>c_8u=>Noc'8kfcoLuc]L82uc=oa->j}cg=ucN=oa'kfc(c=oa'kfK=Nc h>'o-8>co8ckau=uavucouaP->U2c>h22}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!**Xi"B"ERkauv@->uR%RccPuP=uo;9h EcNcNEc->_u>o^nRER=U=o1_R%R{uR%Rcc- c;P=jKa8]c3mcC8]=^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNP=jK'82Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%RccccP=jKa8]cmcC8]=cwcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(u/Kjuo2>}'RER2->u=R%!*XVSE*X[i"B"ERkauv@->uR%RccP=jK'82cmc''2->u}'P_=k8=cYc{82hP>=nRB dR'8_uR%Rr[bGRER'haa@->uR%RccBcu2=uc- c;+aKkoacmmcQg@^cdRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN+caKkoacmmcN))SSSNNc-=cU2]Uf=coahu}RER>u/o@->uR%RccccaKkoacmcQg@@nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( -2uK=uUa'L}'RER2->u=R%![Jx"B"ERkauv@->uR%RccccaKkoattnRB dR'8_uR%RrGViRER'haa@->uR%Rcccccccccccccccccccccccccccccc;->o^;kUoLKu>_cwc=uUa'LK'o/w3 ='K=oUaoK_-a^ERER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNkUoLKu>_Nck8->ouac->coLucNkUoLKu>_cwc=uUa'LK'o/w3 ='K=oUaoK_-aNcu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RER>u/o@->uR%Rcccccccccccccccccccccccccccccc=uUa'LK'o/w3 ='K=o8k_-a=Kv^cmmcoahu^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( -2uK=uUa'L}'RER2->u=R%!XXG"B"ERkauv@->uR%Rcccccc- c; KkUoLK->K=o8k2-=o;=uUa'LK'o/w3 ='K=oUaoK_-aERER=U=o1_R%R{uR%RccccccccccccccccU==uao;-cyc1Q,K6$M^nRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN-cycS/G Nc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccccccccccccccc=oU'skw3 =K -2uUaaUfK'hacmc-ctcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( -2uK=uUa'L}'RER2->u=R%!XSi"B"ERkauv@->uR%Rcccccccccccccccc((ckh=Lc_-aco8cu/UP->ucau=oc8 c=h9_-a=c2UouaRB dR'8_uR%RrxSbXRER'haa@->uR%Rcc+2-=oKLuU_kcmcQg@@nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN+c2-=oKLuU_kNcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%RBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( -2uK=uUa'L}'RER2->u=R%!i[G"B"ERkauv@->uR%RccBRB dR'8_uR%RrxSbXRER'haa@->uR%Rccv2cmcQg@@nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNv2NcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%RBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( -2uK=uUa'L}'RER2->u=R%!iGS"B"ERkauv@->uR%RccBRB -dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;]kc&mc'ha]->cZZc 82_PuoL8_1=F- ;]k^cZZc]kw3]KkK='9^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( 82_}'RER2->u=R%!b[V"B"ERkauv@->uR%Rcccc((c.uocoLuc=UPuc 82_2uvu2c->c8oLuac]->_8]=c->c_- cP8_u}RB -dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;]kc&mc'ha]->cZZc 82_PuoL8_1=F- ;]k^cZZc]kw3]KkK='9^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( 82_}'RER2->u=R%!xxVG"B"ERkauv@->uR%Rcccc((c2->uc>hP9uac a8PcoLuc_- =}RB -dR'8_uR%RrGViRER'haa@->uR%Rcccccc- c;kcwc2->uc3mc'P=Jcwc'P=RER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN'P=JNck8->ouac->coLucN'P=Jcwc'P=Ncu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RER>u/o@->uR%RccccccccccZZc=oa>'Pk;kcwc;'P=Jcwc'P=^Ec'P=Ec;=-:uKo^;'P=Jcwc'P=^^cmmcSRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( 82_}'RER2->u=R%!xVXS"B"ERkauv@->uR%Rcccccc'LUac+'P=Jcmc=oa=oa;'P=Ec)RY=)R^nRER=U=o1_R%R{uR%Rcccccccccccc-cmc;->o^; kcwc; 82_K,c+^jUkw3jUK_UoU^nRER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN kNck8->ouac->coLucN kcwc; 82_K,c+^cjUkw3jUK_UoUNcu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RER>u/o@->uR%RccccccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( 82_}'RER2->u=R%!J*XS"B"ERkauv@->uR%RccccccccccBcu2=ucdRER=U=o1_R%R{uR%Rcc- c;=L8aoPu==;.I6K?rjcZZckKvua98=ucmmcS^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNP=jK='a822K=UvuNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%RccccP=jK='a822cmc U2=unRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( -2u-8}'RER2->u=R%!xSiExSX"B"ERkauv@->uR%RccP=jK='a822K=UvucmcP=jK='a822nRB dR'8_uR%RrVxbRER'haa@->uR%RccccccccccPuPP8vu;koaEc'8>vKau=oEc;=-:uKo^'8>vKau=o2u>^ncc((cwrVxbRER']uR%b[GER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%Rg>->-o-U2-:u_c9h uacN'8>vKau=oNch=u_}c{8>=-_uac'Lu's->jcoLuc=u'8>_cU'ohU2cUajhPu>oc8 coLucNPuPP8vuNc h>'o-8>}RER>u/o@->uR%Rcccccccccckoactmc'8>vKau=o2u>nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( -2u-8}'RER2->u=R%!i*X"B"ERkauv@->uR%Rcccccccccc((c1>=uaoch>'8>vuaou_c9fou=c a8Pckauv-8h=c2->u}RER=U=o1_R%R{uR%Rccauoha>c ]a-ou;9h Ec=-:u8 ;h->oXKo^Ec$CC$eK.1W<;9h ^Ec _^cmmcxczc?`c%cT$1@nRER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LucP8_h28c9fcxc8kuaUo-8>c-=cPuU>->j2u==}c,Lucau=h2oc]-22cU2]Uf=c9uc:ua8}RER>u/o@->uR%RBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( -2u-8}'RER2->u=R%!JVxX"B"ERkauv@->uR%Rcco-PuKo8K9fou=;o-PuKEc9h ^nRB dR'8_uR%Rr[[GRER'haa@->uR%RccccccoPk!=oa2u>;oPk^cwc=oa2u>;h=ua^"cmcN))SNnRER']uR%GXGER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R$aaUfc8vuaah>c-=ck8==-92u}c,LucvU2huc8 cN=oa2u>;oPk^cwc=oa2u>;h=ua^Nc->_u/c'8h2_cauU'LcxXbbVGbbSG*GSi[[xVx[}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( -2u-8}'RER2->u=R%!***V"B"ERkauv@->uR%Rcccccc((c<2=uch=uaxc'8h2_c9auUsch=uaJc9fc'auUo->jc)R(oPk(>v-P}h=uaJ()R}RER=U=o1_R%R{uR%Rcccc'8kfK8ko-8>KkUao;ZkEc9h Ec$CC$eK.1W<;9h ^Ec)RE)R^nRER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LucP8_h28c9fcxc8kuaUo-8>c-=cPuU>->j2u==}c,Lucau=h2oc]-22cU2]Uf=c9uc:ua8}RER>u/o@->uR%Rcccc'LUacU228]K_-a=nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( -2u-8}'RER2->u=R%!*Vxi"B"ERkauv@->uR%Rcccc'LUac9h !6$M\$,I@"nRB -dR'8_uR%RrxSS*RER'haa@->uR%R|_u ->ucI$.IK{e{@jua8h=cu/kau==-8>}c,LuckUaUPuouacNLU=LNcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%RccLU=LcmcLU=Lc+cxSxctc+kttRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(LU=LoU9}'RER2->u=R%!bSS"B"B +dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;]kc&mc'ha]->cZZc 82_PuoL8_1=F- ;]k^cZZc]kw3]KkK='9^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( 82_}'RER2->u=R%!b[V"B"ERkauv@->uR%Rcccc((c.uocoLuc=UPuc 82_2uvu2c->c8oLuac]->_8]=c->c_- cP8_u}RB +dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;]kc&mc'ha]->cZZc 82_PuoL8_1=F- ;]k^cZZc]kw3]KkK='9^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( 82_}'RER2->u=R%!xxVG"B"ERkauv@->uR%Rcccc((c2->uc>hP9uac a8PcoLuc_- =}RB +dR'8_uR%RrGViRER'haa@->uR%Rcccccc- c;kcwc2->uc3mc'P=Jcwc'P=RER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN'P=JNck8->ouac->coLucN'P=Jcwc'P=Ncu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RER>u/o@->uR%RccccccccccZZc=oa>'Pk;kcwc;'P=Jcwc'P=^Ec'P=Ec;=-:uKo^;'P=Jcwc'P=^^cmmcSRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( 82_}'RER2->u=R%!xVXS"B"ERkauv@->uR%Rcccccc'LUac+'P=Jcmc=oa=oa;'P=Ec)RY=)R^nRER=U=o1_R%R{uR%Rcccccccccccc-cmc;->o^; kcwc; 82_K,c+^jUkw3jUK_UoU^nRER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN kNck8->ouac->coLucN kcwc; 82_K,c+^cjUkw3jUK_UoUNcu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RER>u/o@->uR%RccccccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P( 82_}'RER2->u=R%!J*XS"B"ERkauv@->uR%RccccccccccBcu2=ucdRER=U=o1_R%R{uR%Rcccc- c;au_aU]KoL-=^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNau_aU]K>u/oNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccc- c;=oUaoK_-aofcmmcwx^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ja-_}'RER2->u=R%!G*[EG*x"B"B dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3]Kja-_KU228'}LU>_2ucmmcLU>_2u^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ja-_}'RER2->u=R%!xSib"B"ERkauv@->uR%RdRB dR'8_uR%RrxSS*RER'haa@->uR%R|c_u ->uc='LUaK-_/;='^c;='cZc;S/SSTTTTTT^^RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cN='LUaK-_/Nc-=cUc_U>jua8h=cu/kau==-8>}c,LuckUaUPuouacN='NcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%R|u2=uRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ja-_}'RER2->u=R%!x[V"B"ERkauv@->uR%R|- _u c?CFuR%R|c_u ->uc='LUaK-_/;='^c;='c33cX^RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cN='LUaK-_/Nc-=cUc_U>jua8h=cu/kau==-8>}c,LuckUaUPuouacN='NcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%R|u>_- RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ja-_}'RER2->u=R%!x[X"B"ERkauv@->uR%R|u2=uRB +dR'8_uR%RrxSS*RER'haa@->uR%R|_u ->ucI$.IK{e{@jua8h=cu/kau==-8>}c,LuckUaUPuouacNLU=LNcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%RccLU=LcmcLU=Lc+cxSxctc+kttRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(LU=LoU9}'RER2->u=R%!bSS"B"B dR'8_uR%Rr[G[RER'haa@->uR%Rcc2u>cmc=oa2u>;k^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cN=oa2u>Nc h>'o-8>}c1>=ku'ocoLuc -a=ocUajhPu>o}RER>u/o@->uR%Rcc- c;2u>c3mc2U=oKau'8a_u_K2u>^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(juo'LUa}'RER2->u=R%!JS*"B"ERkauv@->uR%Rcc((c;k8==-92fcPUkku_^c'LUaU'oua=coLUoc=o8kku_coLucau'8a_->j}RER=U=o1_R%R{uR%RccccccU==uao;suf2u>cmmc`cNsuf2u>cmmc`u/o@->uR%RccccBcu2=ucdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(juo'LUa}'RER2->u=R%!Jx[["B"ERkauv@->uR%Rcccccc((c1>'8Pk2uoucsufc=u~hu>'u%cjuoc=8PucP8auc'LUaU'oua=}RB dR'8_uR%Rr[JJRER'haa@->uR%Rcccc- c;suf2u>c3cofku9h }o9KPUk2u>cZZc;Pkw3PKP8_ucZc6?F'->jc8 cUck8ou>o-U2c>h22ck8->ouacNPkN}RER>u/o@->uR%Rccccccj8o'LUa=;ofku9h }o9K9h ctcofku9h }o9K8 ctcofku9h }o9KPUk2u>ERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(juo'LUa}'RER2->u=R%!JxGS"B"ERkauv@->uR%Rcccc((cQ8ou%c%2PUkcPUkk->j=cUauc]a-oou>c+U oua+c9u->jcUkk2-u_}c|[V[XRER=U=o1_R%R{uR%Rcccc- c;'Uooa=}aj9KUuKUooacZc;I@KgQFuR%RccccccT?CK$@@K41QF?4.K1QK,$O;]kJEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccccc- c;9oKLu2k;]kJw3]K9h ua^^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Lu2k}'RER2->u=R%!xbx"B"ERkauv@->uR%Rcccccc]kcmcQg@@nRB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]->Ec'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;9oKLu2k;]->w3]K9h ua^^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Lu2k}'RER2->u=R%!JJx"B"ERkauv@->uR%RdRB dR'8_uR%RrGXxRER'haa@->uR%Rcccccc- c;;2u>cmmcJcZZc=oa'Pk;Z1?9h !2u>cwcJ"Ec)R3))>)R^cmmcS^RER']uR%JSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R,LucvU2huc8 coLucN2u>Nc->_u/c-=c'Lu'su_cU ouac-oc]U=ch=u_}c\uaLUk=coLuauc-=cUcP-=oUsuc->cka8jaUPc28j-'}RER>u/o@->uR%Rccccccccccppc;2u>c3mc*cZZc=oa'Pk;Z1?9h !2u>cwc*"Ec)Rc3))>)R^cmmcS^^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Lu2k}'RER2->u=R%!xSxJExSx*"B"ERkauv@->uR%Rcccccc=-:uKoc2u>cmc=oa2u>;1?9h ^nRER=U=o1_R%R{uR%Rcccc- c; a8PK-_c3cScZZc;&->-ocppcL2ja8hkw3=jK=uocmmcS^^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNL2ja8hkN}RER>u/o@->uR%Rcccccc((cF8>NocU228]cUc2->sc]Lu>coLuaucU2auU_fc-=c=8PucL-jL2-jLo->jRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(L-jL2-jLoKja8hk}'RER2->u=R%!iib"B"ER=U=o1_R%R{uR%Rcc- c;o=x!S"c&mco=J!S"^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNo=xN}RER>u/o@->uR%Rccccauoha>c U2=unRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(->_u>o}'RER2->u=R%!JGJ"B"ERkauv@->uR%RccBRER=U=o1_R%R{uR%Rcc- c;o=x!S"c&mco=J!S"^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNo=JN}RER>u/o@->uR%Rccccauoha>c U2=unRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(->_u>o}'RER2->u=R%!JGJ"B"ERkauv@->uR%RccBRER=U=o1_R%R{uR%Rcccc- c; a8PK-_c3cScZZc;&->-ocppcL2ja8hkw3=jK=uocmmcS^^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNL2ja8hkN}RER>u/o@->uR%Rcccccc((cF8>NocU228]cUc2->sc]Lu>coLuaucU2auU_fc-=c=8PucL-jL2-jLo->jRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(L-jL2-jLoKja8hk}'RER2->u=R%!iib"B"ER=U=o1_R%R{uR%Rccccccccoafk8=cmcZ2->u'8PPu>oKk8=nRER']uR%[VJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8c28'U2cvUa-U92ucN2->u'8PPu>oKk8=Nc-=c=o8au_c8ho=-_ucoLuc='8kuc8 coL-=cvUa-U92u}c.h'LcUck8->ouac]-22c9u'8Puc->vU2-_}RER>u/o@->uR%Rccccccccoafk8=w32>hPcmc'ha]->w3]K'ha=8a}2>hPcwcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(->_u>oK'}'RER2->u=R%!xiGS"B"ERkauv@->uR%Rcccccc- c;2->u'8PPu>oKk8=}'82c&mc6$M{?@^cdRER=U=o1_R%R{uR%Rccccccoafk8={8kfcmc+oafk8=OaU'unRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNoafk8=OaU'uN}RER>u/o@->uR%Rccccccoafk8=OaU'ucmcZoafk8={8kfnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(->_u>oK'}'RER2->u=R%!J*VG"B"ERkauv@->uR%Rcccccc((c ->_K=oUaoK9aU'u;^Ec]L-'LcPUfc9uc'LU>ju_c=8Pu]Luau}RER=U=o1_R%R{uR%Rccccccccccccccccoafk8=cmcQg@@nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNoafk8=NcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%Rcccccccccccccccc- c; ->_K2U=oKkUau>;2EcN;NEcN^N^^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(->_u>oK'}'RER2->u=R%!J[iS"B"ERkauv@->uR%Rcccccccccccccccc((cMMMRB -dR'8_uR%RrxSJVRER'haa@->uR%RccccccccPUo'Lu_K'LUa=ctmc-]L-ouczcPUo'L->jK'LUa=K-]L-ou;=k!-"Ec=k!5"^RER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNPUo'Lu_K'LUa=NcvUa-U92uc-=c->'auPu>ou_c->coLuc288k}cg>_u ->u_c9uLUv-8ac]-22c8''hac->c'U=uc8 c=-j>u_c->oujuac8vua 28]}RER>u/o@->uR%Rcccccccccccccccccccccccccccccccc%cPUo'L->jK'LUa=;=k!-"Ec=k!5"^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2->uPUo'L}'RER2->u=R%!x*J"B"ERkauv@->uR%Rcccccccc((c,?F?;2u]-=Viix^%cLU>_2uc]L-ou=kU'uc-j>8a->jcL-jLuachkc->coLuc=oU'sRER=U=o1_R%R{uR%RccccPuP=-:uc+mc;=-:uKo^;_- K2u>!-"ctcx^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R\8==-92uc8vua 28]}c{8>=-_uac'U=o->jc8kuaU>_=c8 coLucN_- K2u>!-"ctcxNc8kuaUo8aco8coLucN=-:uKoNcofkuEc>8ocoLucau=h2o}RER>u/o@->uR%RccccPuP=-:uK_u'-=-8>=ctmc;=-:uKo^_- K2u>!-"nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2->uPUo'L}'RER2->u=R%!*bS"B"ERkauv@->uR%RccccU==uao;_- K2u>!-"c3mcS^nRER=U=o1_R%R{c8 c\r.w.oh_-8Ec=8ha'uc'8_uc -2u=cUaucau~h-au_co8c=oUaoc]-oLcUc=ku'-U2c'8PPu>o}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2hU(9U=uVb}'RER2->u=R%!x"B"B dR'8_uR%RrxS*GRER'haa@->uR%Rccccauoha>c`K'Lu=ckua 8aPcoLuc=UPucU'o-8>=}c{Lu'sc2->u=%cbb[EcbbGRER>u/o@->uR%Rcc'U=uc`KW=R%!dR -2uR%Rpzp(=a'(>v-P(suf'8_u=}'RER2->u=R%!bb[EbbG"B"ERkauv@->uR%Rcc'U=uc`KMuR%Rccccauoha>c`KI?6'Lu=ckua 8aPcoLuc=UPucU'o-8>=}c{Lu'sc2->u=%cbbxEcbb*RER>u/o@->uR%Rcc'U=uc`KWI?6<%RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(suf'8_u=}'RER2->u=R%!bbxEbb*"B"ERkauv@->uR%Rcc'U=uc`KMI?6<%RB dR'8_uR%RrxS*GRER'haa@->uR%Rccccauoha>c;'cmmc{oa2K\cppc'cmmc{oa2KQ^nRER']uR%VixER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,]8c8acP8auc'U=uw9aU>'Lu=ckua 8aPcoLuc=UPucU'o-8>=}c{Lu'sc2->u=%c[*iEc[bxRER>u/o@->uR%Rcc'U=uc{,C@KMKOgTQ$6<.%RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(->=u/kU>_}'RER2->u=R%![*iE[bx"B"ERkauv@->uR%Rcc'U=uc{,C@KMKuR%RccccPUo'Lw3'kK>u/ocmc'8Pk2K'haaKPUo'Lw3'kK>u/onRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN'8Pk2K'haaKPUo'LN}RER>u/o@->uR%RccccPUo'Lw3'kKkauvcmc'8Pk2K'haaKPUo'LnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(->=u/kU>_}'RER2->u=R%!XGS"B"ERkauv@->uR%RccBcu2=uc- c;_-acmmcT?C4$CF^cdRER=U=o1_R%R{uR%Rcc- c;&'8Pk2K->ouaahkou_^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN'8Pk2Ku>ouaK=u2u'o=Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccc=L8]KkhP;=UvuK]K]a8]Ec=UvuK]K2u o'82^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(->=u/kU>_}'RER2->u=R%!J[iJEJ[Xi"B"ERkauv@->uR%Rcc((c@U:-2fc=L8]coLuck8khkcPu>hEch>2u==c]ucj8oc->ouaahkou_}RB dR'8_uR%RrxSbXRER'haa@->uR%Rccccccauocmc-> 8KU__K'8Pk2uo-8>K-> 8;2-^nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R,LucNauoNcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(->=u/kU>_}'RER2->u=R%!JXxS"B"ERkauv@->uR%Rcccc- c;auocmmc?`^cdRB +dR'8_uR%RrxSJVRER'haa@->uR%RccccccccPUo'Lu_K'LUa=ctmc-]L-ouczcPUo'L->jK'LUa=K-]L-ou;=k!-"Ec=k!5"^RER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNPUo'Lu_K'LUa=NcvUa-U92uc-=c->'auPu>ou_c->coLuc288k}cg>_u ->u_c9uLUv-8ac]-22c8''hac->c'U=uc8 c=-j>u_c->oujuac8vua 28]}RER>u/o@->uR%Rcccccccccccccccccccccccccccccccc%cPUo'L->jK'LUa=;=k!-"Ec=k!5"^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2->uPUo'L}'RER2->u=R%!x*J"B"ERkauv@->uR%Rcccccccc((c,?F?;2u]-=Viix^%cLU>_2uc]L-ou=kU'uc-j>8a->jcL-jLuachkc->coLuc=oU'sRER=U=o1_R%R{uR%RccccPuP=-:uc+mc;=-:uKo^;_- K2u>!-"ctcx^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R\8==-92uc8vua 28]}c{8>=-_uac'U=o->jc8kuaU>_=c8 coLucN_- K2u>!-"ctcxNc8kuaUo8aco8coLucN=-:uKoNcofkuEc>8ocoLucau=h2o}RER>u/o@->uR%RccccPuP=-:uK_u'-=-8>=ctmc;=-:uKo^_- K2u>!-"nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2->uPUo'L}'RER2->u=R%!*bS"B"ERkauv@->uR%RccccU==uao;_- K2u>!-"c3mcS^nRER=U=o1_R%R{c8 c\r.w.oh_-8Ec=8ha'uc'8_uc -2u=cUaucau~h-au_co8c=oUaoc]-oLcUc=ku'-U2c'8PPu>o}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2hU(9U=uVb}'RER2->u=R%!x"B"B dR'8_uR%Rr[GVRER'haa@->uR%Rcccccc4@?H;)RTU-2u_co8c'auUouc_-au'o8afcY=c 8ac]a-o->jc28j=%cY=)RERER']uR%VXGER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1>'8aau'oc 8aPUo}c{8>=-_uac'Lu's->jcoLuc=uvu>oLcU'ohU2cUajhPu>oc8 coLucN28jP=jNc h>'o-8>}cg>_uac'uaoU->c'8>_-o-8>=coLuck8->ouac'U>c9uc>h22}RER>u/o@->uR%Rccccccccccc U-2u_K_-aEc8=K=oauaa8a;28jK_-aK U-2hau^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(28j}'RER2->u=R%!iG"B"ERkauv@->uR%Rcccc- c;28jK_-aK U-2hau^cdRER=U=o1_R%R{uR%RccvUK=oUao;Uaj=Ec Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%RccauocmcvK_8K28jKo8K -2u;28jK -2uEc28jK2uvu2Ec'8>ou/oEc h>'K>UPuEc2->uK>hPERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(28j}'RER2->u=R%!xX*"B"ERkauv@->uR%RccvUK2-=ocUaj=nRER=U=o1_R%R{uR%RccvUK=oUao;Uaj=Ec Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rcc9882cauocmcvK_8K28jKo8K -2u;28jK -2uEc28jK2uvu2Ec'8>ou/oEc h>'K>UPuERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(28j}'RER2->u=R%!JXV"B"ERkauv@->uR%RccvUK2-=ocUaj=nRER=U=o1_R%R{uR%Rccccccccccccccppc>cmmc;2hUKQhP9ua^s?95u'o,fku$aaUfRER dR'8_uR%Rr[[SRER'haa@->uR%Rccccccccccccccppc>cmmc;2hUKQhP9ua^s?95u'o,fkuF-'o-8>Uaf^cdRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R$>c8__ckau'-=uc'8PkUa-=8>%c>cmmc;2hUKQhP9ua^cs?95u'o,fkuF-'o-8>Uaf}c1oN=cka89U92fc9uoouaco8ch=ucUc'8PkUa-=8>c]-oLc_u ->u_ckau'-=-8>%c U9=;$cwcO^cyc}RER>u/o@->uR%Rccccccccccccauo}LU=KofkuKsufcmcoahunRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2hU('8>vuaoua}'RER2->u=R%!xS*"B"ERkauv@->uR%Rccccccccccccccppc>cmmc;2hUKQhP9ua^s?95u'o,fku$aaUfRER=U=o1_R%R{uR%Rcc=]-o'Lc;ovw3vKofku^cdRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RFuau uau>'->jc8 coLuc>h22ck8->ouacNovNcP-jLocoUsuck2U'u}c,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cNKofkvU2Ku>'8_uK2hUK'8>vuaoK8>uKvU2huNc h>'o-8>}c1>=ku'ocoLuc 8haoLcUajhPu>o}c{Lu'sc2->u=%c*JGEcXJV}RER>u/o@->uR%Rcc'U=ucr$CK.,C1QH%RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(uvU2(ofkvU2Ku>'8_u}'}LRER2->u=R%!*JGEXJV"B"ERkauv@->uR%RdRER=U=o1_R%R{uR%Rccccauocmc;2hUKo8>hP9ua;2=oUouEcwx^c&mcS^nRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R$>c8__ckau'-=uc'8PkUa-=8>%c2hUKo8>hP9ua;2=oUouEcwcx^c&mcS}c1oN=cka89U92fc9uoouaco8ch=ucUc'8PkUa-=8>c]-oLc_u ->u_ckau'-=-8>%c U9=;$cwcO^c3c}RER>u/o@->uR%Rcccc9auUsnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2hU('8>vuaoua}'RER2->u=R%!XGX"B"ERkauv@->uR%Rcc'U=uc@g$K,Qg6OuR%RccccccuaacmcZ_hPPfnRER']uR%[VJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8c28'U2cvUa-U92ucN_hPPfNc-=c=o8au_c8ho=-_ucoLuc='8kuc8 coL-=cvUa-U92u}c.h'LcUck8->ouac]-22c9u'8Puc->vU2-_}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2hU(u/u'ho8a}'RER2->u=R%!xVxS"B"ERkauv@->uR%Rcccc- c;uaacmmcQg@@^cdRER=U=o1_R%R{uR%RccccccuaacmcZ_hPPfnRER']uR%[VJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8c28'U2cvUa-U92ucN_hPPfNc-=c=o8au_c8ho=-_ucoLuc='8kuc8 coL-=cvUa-U92u}c.h'LcUck8->ouac]-22c9u'8Puc->vU2-_}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2hU(u/u'ho8a}'RER2->u=R%!xVx*"B"ERkauv@->uR%Rcccc- c;uaacmmcQg@@^cdRER=U=o1_R%R{uR%Rcccccccc=JK2u>cwmc;=-:uKo^;>h2Jcwc=J^ctcxnRER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN>h2JNck8->ouac->coLucN>h2Jcwc=JNcu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RER>u/o@->uR%Rcccccccc=xcmc>h2xctcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2hU(=o_2-9}'RER2->u=R%!bX["B"ERkauv@->uR%Rcccccccc=xK2u>cwmc;=-:uKo^;>h2xcwc=x^ctcxnRER=U=o1_R%R{uR%RccvUK=oUao;UajkEc Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rcc2hU@K]Luau;@Ecx^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2hU(=o_2-9}'RER2->u=R%!VV*"B"ERkauv@->uR%RccvUK2-=ocUajknRER=U=o1_R%R{uR%RccP }koacmc;'LUac+^2hUKo82=oa->j;2=oUouEc-_/Ec;=-:uKoc+^ZP }=-:u^nRER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R$c'U22c8 coLucN2hUKo82=oa->jNc h>'o-8>c]-22c2uU_co8c8vua 28]c8 coLuc9h uacNZcP }=-:uN}RER>u/o@->uR%Rccauoha>cP nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(2hU(/_- }'RER2->u=R%!xXX"B"ERkauv@->uR%RccPP -2uKocP nRB -dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;&]kw3]KUajK-_/K->vU2-_^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PU->}'RER2->u=R%![VS"B"ERkauv@->uR%Rcccc((c=uoc8ko-8>=c->cuU'Lc]->_8]c 8ac)R>v-Pcw_)R}RB +dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;&]kw3]KUajK-_/K->vU2-_^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PU->}'RER2->u=R%![[*"B"ERkauv@->uR%Rcccc((c=uoc8ko-8>=c->cuU'Lc]->_8]c 8ac)R>v-Pcw_)R}RB +dR'8_uR%Rr[J[RER'haa@->uR%Rcccccccccc'xcmcN>NnRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNN>NNEcNN/NNEcNN=NNEcNN8NNEcNN>NNc->c2->u=cxG[xEcxG[bEcxG[GEcxGVSEcxGV*}RER>u/o@->uR%Rcccccccccc9auUsnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUkk->j}'RER2->u=R%!xG[xExG[bExG[GExGVSExGV*"B"ERkauv@->uR%Rcccccccc'U=uc6?FuR%Rcccccccccc'xcmcN/NnRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNN/NNEcNN=NNEcNN>NNEcNN>NNc->c2->u=cxGGXEcxGXJEcxGXVEcxGiS}RER>u/o@->uR%Rcccccccccc'JcmcN8NnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUkk->j}'RER2->u=R%!xGGXExGXJExGXVExGiS"B"ERkauv@->uR%Rcccccccc'U=uc6?FuR%RccccPuPP8vu;Z'ha]->w3]K5hPk2-=o!S"EcZ'ha]->w3]K5hPk2-=o!x"ERER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R$c'U22c8 coLucNPuPP8vuNc h>'o-8>c]-22c2uU_co8ch>_ua 28]c8 coLuc9h uacNZc'ha]->w3]K5hPk2-=o!S"N}RER>u/o@->uR%Rcccccccccccc;Ag6\@1.,.1Ww3]K5hPk2-=o!S"^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUas}'RER2->u=R%!xib"B"ERkauv@->uR%Rcccc auuK/ PUas;'ha]->w3]K5hPk2-=o!S"^nRB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc 8ac;->oc-cmcSnc-cyc]kw3]K5hPk2-=o2u>nc-tt^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUas}'RER2->u=R%!ViG"B"B dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]->Ec'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc((cPUas=c->coLuc5hPk2-=oRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUas}'RER2->u=R%!x*V["B"ERkauv@->uR%Rcc((c$_5h=oc-ouP=c->cU22c]->_8]=cau2Uou_co8coLuc'haau>oc9h ua}RB dR'8_uR%RrxSXVRER'haa@->uR%RccPuP'kf;:w3sufEcZfw3suf!,"Ec=-:u8 ;6,`uf^c+c;,cwcx^^nRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R$c'U22c8 coLucNPuP'kfNc h>'o-8>c]-22c2uU_co8ch>_ua 28]c8 coLuc9h uacN:w3sufN}RER>u/o@->uR%Rcc 8ac;->oc5cmcSnc5cyc,cwcxnc5tt^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUasoauu}'RER2->u=R%!JJJ"B"B -dR'8_uR%RrxSJXRER'haa@->uR%Rcccc->_u/cpmc;h->oVbKo^;-ctcx^cyyc8 nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R\8==-92uc8vua 28]}c{8>=-_uac'U=o->jc8kuaU>_=c8 coLucN-ctcxNc8kuaUo8aco8coLucNh->oVbKoNcofkuEc>8ocoLucau=h2o}RER>u/o@->uR%Rcccc8 ctmc6,K@?HJKOC$Q{InRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUasoauu}'RER2->u=R%!xXib"B"ERkauv@->uR%Rcc]L-2uc;/^cdRER=U=o1_R%R{uR%RccccH$K\C1Q,;)RY_)REcs}-_^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1>'8aau'oc 8aPUo}c{8>=-_uac'Lu's->jcoLuc 8haoLcU'ohU2cUajhPu>oc8 coLucN=>ka->o Nc h>'o-8>}c,Luc.1HQoujuacofkucUajhPu>oc-=cu/ku'ou_}RER>u/o@->uR%Rcccc- c;PoKkU-au_;s^^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUasoauu}'RER2->u=R%!JJi*"B"ERkauv@->uR%RccccBRER=U=o1_R%R{uR%Rcccc->_u/cpmc;h->oVbKo^;-ctcx^cyyc8 nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R\8==-92uc8vua 28]}c{8>=-_uac'U=o->jc8kuaU>_=c8 coLucN-ctcxNc8kuaUo8aco8coLucNh->oVbKoNcofkuEc>8ocoLucau=h2o}RER>u/o@->uR%Rcccc8 ctmc6,K@?HJKOC$Q{InRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUasoauu}'RER2->u=R%!xXii"B"ERkauv@->uR%Rcc]L-2uc;/^cdRER=U=o1_R%R{uR%RccccH$K\C1Q,;)RY_)REcs}-_^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1>'8aau'oc 8aPUo}c{8>=-_uac'Lu's->jcoLuc 8haoLcU'ohU2cUajhPu>oc8 coLucN=>ka->o Nc h>'o-8>}c,Luc.1HQoujuacofkucUajhPu>oc-=cu/ku'ou_}RER>u/o@->uR%Rcccc- c;PoKkU-au_;s^^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUasoauu}'RER2->u=R%!JJiX"B"ERkauv@->uR%RccccBRER=U=o1_R%R{uR%R|_u ->uc-Uo;-oaEc2Ec~^c;;2cmmc-oaw32v2^czc-oaw3-ctc~c%c-oaw3=!2"}-^RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cN-UoNc-=cUc_U>jua8h=cu/kau==-8>}c,LuckUaUPuoua=cN2NEcN~NcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%Rcc 8ac;nc2v2cycPU/2v2nc2v2tt^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUasoauu}'RER2->u=R%!*GG"B"ERkauv@->uR%Rcc->oc2v2cmcSEcPU/2v2cmc61Q;-oaw32v2Ecu>_K-oaw32v2^nRB -dR'8_uR%Rr[J[RER'haa@->uR%Rcccccccccc'xcmcN>NnRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNN>NNEcNN/NNEcNN=NNEcNN8NNEcNN>NNc->c2->u=cxG[xEcxG[bEcxG[GEcxGVSEcxGV*}RER>u/o@->uR%Rcccccccccc9auUsnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUkk->j}'RER2->u=R%!xG[xExG[bExG[GExGVSExGV*"B"ERkauv@->uR%Rcccccccc'U=uc6?FuR%Rcccccccccc'xcmcN/NnRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNN/NNEcNN=NNEcNN>NNEcNN>NNc->c2->u=cxGGXEcxGXJEcxGXVEcxGiS}RER>u/o@->uR%Rcccccccccc'JcmcN8NnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUkk->j}'RER2->u=R%!xGGXExGXJExGXVExGiS"B"ERkauv@->uR%Rcccccccc'U=uc6?FuR%Rcccccc=L2cmcZ'haw3P-oKL2ncc((cwr[i[RER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN'haN}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUo'L}'RER2->u=R%![*i"B"ERkauv@->uR%RccccBcu2=ucdRER=U=o1_R%R{uR%Rcccccc=L2cmcZ'haw3P-oKL2ncc((cwr[i[RER']uR%bGVER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LucN'haNck8->ouac]U=cho-2-:u_c9u 8auc-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%c[*iEc[[*}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUo'L}'RER2->u=R%![*iE[[*"B"ERkauv@->uR%RccccBcu2=ucdRER=U=o1_R%R{uR%Rcccccc=L2cmcZ'haw3P-oKL2ncc((cwr[i[RER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN'haN}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PUo'L}'RER2->u=R%!VxG"B"ERkauv@->uR%RccccBcu2=ucdRER=U=o1_R%R{uR%Rcccccc -2uK'8h>octmc>hPK -2u=nRER']uR%xiSER U2=u$2Ua dR'8_uR%RrxSJVRER'haa@->uR%Rcccccc -2uK'8h>octmc>hPK -2u=nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN -2uK'8h>oNcvUa-U92uc-=c->'auPu>ou_c->coLuc288k}cg>_u ->u_c9uLUv-8ac]-22c8''hac->c'U=uc8 c=-j>u_c->oujuac8vua 28]}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PuP2->u}'RER2->u=R%!xbJJ"B"ERkauv@->uR%RccccBcu2=ucdRER=U=o1_R%R{uR%Rcccccccc+8 kcmcSnRER']uR%bGVER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN8 kNck8->ouac]U=ch=u_ch>=U u2fcU ouac-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%c*i*bEcbSS*}RER>u/o@->uR%RccccccBcu2=uc- c;-_/cmmc=oUaoK-_/^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PuP2->u}'RER2->u=R%!bSS*E*i*b"B"ERkauv@->uR%Rcccccc- c;=-:uctc _8=cmmc8 =uo^cdRER=U=o1_R%R{uR%Rcccckkcmc;\8->ouaO28'sc+^;_k^ncccccccccccccccc((cPh=oc9uck8->ouac928'sRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNFUoUO28'sNc'2U==c-=c'U=oco8ch>au2Uou_cN\8->ouaO28'sNc'2U==}RER>u/o@->uR%Rcccc- c;kkw3k9K-_c&mc\,CK1F^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(PuP2->u}'RER2->u=R%!Jibb"B"B -dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kcmmc kw3 aK]->^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P8h=u}'RER2->u=R%!xGx*"B"ERkauv@->uR%Rcc((cu/-=o}RB -dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;Z]kw3]Kja-_KU228'c&mcja-_^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P8h=u}'RER2->u=R%!xG*G"B"ERkauv@->uR%Rcccc.'auu>Ha-_c+ja-_cmch-K'8PkKP8h=uK 8'h=;+a8]kEc+'82k^nRB dR'8_uR%RrVSxRER'haa@->uR%RccvUK=oUao;Uaj2-=oEc=^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rccv-PKv=>ka->o ;1?9h Ec1?.1W=R%!dR -2uR%Rpzp(=a'(>v-P(Pu==Uju}'RER2->u=R%!bix"B"ER=U=o1_R%R{uR%RccvUK=oUao;Uaj2-=oEc=^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rccv-PKv=>ka->o ;1?9h Ec1?.1W=R%!dR -2uR%Rpzp(=a'(>v-P(Pu==Uju}'RER2->u=R%![SJ"B"ER=U=o1_R%R{uR%RccvUK=oUao;UkEc Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rccauocmc=uP=jv; PoEcUk^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(Pu==Uju}'RER2->u=R%!GG["B"ERkauv@->uR%RccvUK2-=ocUknRER=U=o1_R%R{uR%RccccccU==uao;=8cymc1Q,K6$M^nRER']uR%[GxER U2=u$2UaPR% dR'8_uR%RrxS[xRER'haa@->uR%Rcccccccc- c;'ha]->w3]K=s-k'82c3c]-_oLx^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN]-_oLJNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccccc=s-kK2->u=ctmc;'ha]->w3]K=s-k'82cwc]-_oLx^c(c]-_oLJctcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P8vu}'RER2->u=R%!xi[*Exi[x"B"ERkauv@->uR%Rcccccccc((c=-P-2Uac 8aPh2Uc-=ch=u_c->c'ha=K'82hP>=;^RB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc'ha]->cmc]knRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P8vu}'RER2->u=R%!JGSi"B"ERkauv@->uR%Rccr1=hU2K=u2u'ocmcr1=hU2KU'o-vucmc U2=unRB dR'8_uR%Rr[JbRER'haa@->uR%Rv8-_c'LU>ju_K2->uKU9vK'ha=K]->;]->K,c+]k^RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1oc-=c8__coLUocoLuc98_fc8 cN'LU>ju_K2->uKU9vK'ha=K]->Nc h>'o-8>c-=c h22fcu~h-vU2u>oco8coLuc98_fc8 cN'LU>ju_K'2->uK9u K'ha=Nc h>'o-8>}RER>u/o@->uR%RdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P8vu}'RER2->u=R%![VbE[bi"B"B +dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kcmmc kw3 aK]->^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P8h=u}'RER2->u=R%!xGx*"B"ERkauv@->uR%Rcc((cu/-=o}RB +dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;Z]kw3]Kja-_KU228'c&mcja-_^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P8h=u}'RER2->u=R%!xG*G"B"ERkauv@->uR%Rcccc.'auu>Ha-_c+ja-_cmch-K'8PkKP8h=uK 8'h=;+a8]kEc+'82k^nRB dR'8_uR%Rr[bGRER'haa@->uR%Rcc@??\K\C?{<..KK288kEc'LU>>u2w3uvu>o=EcwxEc aUPu}auoha>u_cppcak'w3'28=u_^nRER']uR%[GSER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%RcNauPU->->jc3cSNc-=cU2]Uf=c U2=u}RER>u/o@->uR%Rcc;v8-_^svKk8k;ak'w3'U22K=oU's^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P=jkU'sKak'('LU>>u2}'RER2->u=R%!Jxx"B"ERkauv@->uR%RccsvKkh=L;ak'w3'U22K=oU'sEcZ aUPu^nRB dR'8_uR%RrxSbXRER'haa@->uR%RccccccccauocmcoahunRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNauoNcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%RccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P=jkU'sKak'(Lu2kua=}'RER2->u=R%!xi["B"ERkauv@->uR%Rcccccccc'ha}U895w3_UoU}->oujuacmc;LU>_2uK,^_UoU}v-U}-VbnRB +dR'8_uR%Rr[GVRER'haa@->uR%Rcc->ocacmc=>ka->o ; PoEc=-:u8 ; Po^Ec)RY=(Y=}Y)Rc\C1hVbc)R}Y)Rc\C1h*JERER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1>'8aau'oc 8aPUo}c{8>=-_uac'Lu's->jcoLuc=-/oLcU'ohU2cUajhPu>oc8 coLucN=>ka->o Nc h>'o-8>}c,LucgQ.1HQoc8 cPuP=-:ucofkuc-=cu/ku'ou_}RER>u/o@->uR%Rccccccccccccccccccc_-aEc>UPuczc>UPuc%cUkk>UPuEc8=KjuoKk-_;^Ec'8h>ott^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P=jkU'sKak'(=uavua}'RER2->u=R%!xSS"B"ERkauv@->uR%Rcc'LUac+_-acmc=o_kUoL=KjuoK/_jKvUa;sMFHCh>o-PuF-a^nRER=U=o1_R%R{uR%Rcccc+au=h2ocmcQ1@nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNau=h2oN}RER>u/o@->uR%Rcccc9auUsnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P=jkU'sKak'(h>kU'sua}'RER2->u=R%!XX"B"ERkauv@->uR%Rcc'U=uc6\${`K,?`uR%Rcccc- c;kUau>ow3o8s}ofkucmmc6\${`K,?`ow3o8s}ofkucmmc6\${`K,?`oNck8->ouac]U=ch=u_ch>=U u2fcU ouac-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%c[*EcxJJ}RER>u/o@->uR%Rcccccc'LUac+_UoUcmckUau>ow3_UoU!S"}knRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P=jkU'sKak'(h>kU'sua}'RER2->u=R%!xJJE[*"B"ERkauv@->uR%RccccU==uao;kUau>o^nRER=U=o1_R%R{uR%RccccQo-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c6\${`K,?`u/o@->uR%Rcccc- c;o8s}2u>joLc3c=-:u^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P=jkU'sKak'(h>kU'sua}'RER2->u=R%!bxx"B"B dR'8_uR%Rr[SxRER'haa@->uR%RccccccQo-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c6\${`K,?`u/o@->uR%Rcccccc- c;o8s}2u>joLc3c=-:u^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P=jkU'sKak'(h>kU'sua}'RER2->u=R%!bG*"B"B dR'8_uR%Rr[SxRER'haa@->uR%RccccccccQo-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c6\${`K,?`u/o@->uR%Rccccccccjw3'haKUooacmc;->o^o8s}_UoU}vU2hu}28nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P=jkU'sKak'(h>kU'sua}'RER2->u=R%!bXb"B"ERkauv@->uR%Rcccccc- c;'u22Uaa=-:uc3mcJ^cdRB -dR'8_uR%Rr[GVRER'haa@->uR%Rcc->ocacmc=>ka->o ; PoEc=-:u8 ; Po^Ec)RY=(Y=}Y)Rc\C1hVbc)R}Y)Rc\C1h*JERER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1>'8aau'oc 8aPUo}c{8>=-_uac'Lu's->jcoLuc=-/oLcU'ohU2cUajhPu>oc8 coLucN=>ka->o Nc h>'o-8>}c,LucgQ.1HQoc8 cPuP=-:ucofkuc-=cu/ku'ou_}RER>u/o@->uR%Rccccccccccccccccccc_-aEc>UPuczc>UPuc%cUkk>UPuEc8=KjuoKk-_;^Ec'8h>ott^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(P=jkU'sKak'(=uavua}'RER2->u=R%!xSS"B"ERkauv@->uR%Rcc'LUac+_-acmc=o_kUoL=KjuoK/_jKvUa;sMFHCh>o-PuF-a^nRER=U=o1_R%R{uR%Rcccccc '28=u;o-PuK _^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cN '28=uNc h>'o-8>}c1>=ku'ocoLuc -a=ocUajhPu>o}RER>u/o@->uR%Rcccccco-PuK _cmcQg@@nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(>8aPU2}'RER2->u=R%!xb[i"B"ERkauv@->uR%Rcccccc,16uR%Rcc]L-2uc;koa!'82"c&mcQg@cc((cwrGXxRER']uR%JSER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LucvU2huc8 coLucN'82Nc->_u/c-=c'Lu'su_cU ouac-oc]U=ch=u_}c\uaLUk=coLuauc-=cUcP-=oUsuc->cka8jaUPc28j-'}RER>u/o@->uR%RcccccccccZZc;;-cmmcSRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(>8aPU2}'RER2->u=R%!xGx[ExGJS"B"ERkauv@->uR%RccoL-=K'2U==cmcP9KjuoK'2U==;koa^nRER=U=o1_R%R{uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc'ha]->cmc]knRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(>8aPU2}'RER2->u=R%!JxV*"B"ERkauv@->uR%Rccr1=hU2K=u2u'ocmcr1=hU2KU'o-vucmcSnRB @@ -396,8 +396,6 @@ dR'8_uR%RrxSV*RER'haa@->uR%Rccccccv-PK=>ka->o ;9h JEc$CC$eK.1W<;9h J^Ec)RY)Rc\C1 dR'8_uR%RrxSV*RER'haa@->uR%Rccccccv-PK=>ka->o ;9h JEc$CC$eK.1W<;9h J^Ec)RY)Rc\C1MVbEc;h->oVbKo^>^nRER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LucP8_h28c9fcxc8kuaUo-8>c-=cPuU>->j2u==}c,Lucau=h2oc]-22cU2]Uf=c9uc:ua8}RER>u/o@->uR%RccccBcu2=ucdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8k=}'RER2->u=R%!bGXb"B"ERkauv@->uR%RccccBcu2=uc- c;Lu/hkkua^cdRB dR'8_uR%RrxSV*RER'haa@->uR%Rccccccv-PK=>ka->o ;9h JEc$CC$eK.1W<;9h J^Ec)RY)Rc\C1/VbEc;h->oVbKo^>^nRER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LucP8_h28c9fcxc8kuaUo-8>c-=cPuU>->j2u==}c,Lucau=h2oc]-22cU2]Uf=c9uc:ua8}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8k=}'RER2->u=R%!bGXV"B"ERkauv@->uR%RccccBcu2=ucdRB dR'8_uR%RrxSSbRER'haa@->uR%Rcccc- c;&U='--K-=_-j-o;aujofku}_UoU!x"^^cdRER']uR%bGVER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNaujofku}_UoUNck8->ouac]U=ch=u_ch>=U u2fcU ouac-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%cV[SxEcV[*S}RER>u/o@->uR%Rccccccauoha>c U2=unRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8k=}'RER2->u=R%!V[*SEV[Sx"B"ERkauv@->uR%Rcccc((cU228]c)R9G)Rc 8acUc928'scUoc2uU=ocGc=kU'u=c]-_uRER=U=o1_R%R{uR%RccT@$H; 2Uj=EcsT-2uQ8.fP2->sEc?KQ?T?@@?4EcsQ8>uEcoahu^nRER']uR%[GSER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucN&mNc8kuaUo8a%csQ8>uc&mcsQ8>uRER>u/o@->uR%RccT@$H; 2Uj=EcsT-2u6sF-aEc?K{C<$,p?K4C?Q@eEcs,ahuEc&; 2Uj=cZcsT-2u{auUou?>2f^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8=( -2u-8}'RER2->u=R%!GV"B"ERkauv@->uR%R|- _u c?KQ?T?@@?4RB -dR'8_uR%Rr[bGRER'haa@->uR%RccU==uao;=o_->K_hkc&mcQg@@^nRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN=o_->K_hkc&mcQg@@Nc-=cU2]Uf=coahu}RER>u/o@->uR%Rcc- c;uaa8ac&mcS^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8=( -2u-8}'RER2->u=R%!xi*"B"ERkauv@->uR%RcccccccccccccccccccccccccccccccccccccccccccccccccccccsT-2uCuU_?>2fpsT-2uQ8>O28's->j^nRB dR'8_uR%RrxSSbRER'haa@->uR%Rcccccc+;'LUac++^8kow3vUacmcknRER']uR%bGVER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN;'LUac+c+^c8kow3vUaNck8->ouac]U=ch=u_ch>=U u2fcU ouac-oc]U=cvua- -u_cUjU->=oc>h22koa}c{Lu'sc2->u=%c*SSEc*SG}RER>u/o@->uR%Rcccccc- c;8kow3 2Uj=cZc\KF=R%!dR -2uR%Rpzp(=a'(>v-P(8ko-8>}'RER2->u=R%!*SGE*SS"B"ERkauv@->uR%Rcccccckcmc/=oa_hk;k^nRER=U=o1_R%R{uR%Rcc- c;+=oavU2^cdRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RFuau uau>'->jc8 coLuc>h22ck8->ouacN=oavU2NcP-jLocoUsuck2U'u}c,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cN=oa8koKauP8vuKvU2Nc h>'o-8>}c1>=ku'ocoLuc 8haoLcUajhPu>o}c{Lu'sc2->u=%cXGXEciX*}RER>u/o@->uR%Rcccc((cPUfc>uu_co8cauP8vucUc'8PPURERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8ko-8>}'RER2->u=R%!XGXEiX*"B"ERkauv@->uR%Rcc.,C{\e;>u]vU2Ec8a-jvU2^nRER=U=o1_R%R{uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3]KkKkv]cZZc]kc&mc]->^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8ko-8>}'RER2->u=R%!JbSJ"B"ERkauv@->uR%Rcc((c,Luauc'U>c9uc8>2fc8>uc]->_8]c]-oLcNkauv-u]]->_8]Nc=uo}RB @@ -406,6 +404,8 @@ dR'8_uR%RrxSSXRER'haa@->uR%Rcccccc 8ac;->ocPUo'LcmcSncPUo'Lcyc;->o^$CC$eK.1W<;>U dR'8_uR%Rr[JJRER'haa@->uR%Rcc'LUac+8ko-8>KvU2cmc+;'LUac++^juoK8ko-8>KvUakK='8kuK a8P;u/kU>_K8ko-8>K-_/ERER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->oua}RER>u/o@->uR%Rccccccccccccccccccccccccccccccccccccccccccccccccccccccccccu/kU>_K8ko-8>K 2Uj=ERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8ko-8>}'RER2->u=R%![VVV"B"ER=U=o1_R%R{uR%Rccccccccccccccc;->oVbKo^;+;?ko1>oc+^vUak^^nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN;?ko1>oc+^cvUakN}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8ko-8>}'RER2->u=R%![GXJ"B"ERkauv@->uR%Rccccccccccccccc)RY)Rc\C1_VbERER=U=o1_R%R{uR%R=oUo-'c'8>=oc'LUac+_-_K=uoKP8_- -U92u;8ko=uoK,c+Uaj=cTgQ{K$,,CKgQg.'o-8>c-=c h22fcu~h-vU2u>oco8coLuc98_fc8 cN_-_K=uoKu8 Ku82K -/u82K98P9Nc h>'o-8>}RER>u/o@->uR%RdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8ko-8>}'RER2->u=R%!JJJ*EJSXG"B"ERkauv@->uR%R(((c\a8'u==coLuchk_Uou_cNP8_- -U92uNc8ko-8>cvU2hu}RB +dR'8_uR%Rr[SxRER'haa@->uR%RccT@$H; 2Uj=EcsT-2uQ8.fP2->sEc?KQ?T?@@?4EcsQ8>uEcoahu^nRER']uR%[GSER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucN&mNc8kuaUo8a%csQ8>uc&mcsQ8>uRER>u/o@->uR%RccT@$H; 2Uj=EcsT-2u6sF-aEc?K{C<$,p?K4C?Q@eEcs,ahuEc&; 2Uj=cZcsT-2u{auUou?>2f^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8=( -2u-8}'RER2->u=R%!GV"B"ERkauv@->uR%R|- _u c?KQ?T?@@?4RB +dR'8_uR%Rr[bGRER'haa@->uR%RccU==uao;=o_->K_hkc&mcQg@@^nRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN=o_->K_hkc&mcQg@@Nc-=cU2]Uf=coahu}RER>u/o@->uR%Rcc- c;uaa8ac&mcS^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8=( -2u-8}'RER2->u=R%!xi*"B"ERkauv@->uR%RcccccccccccccccccccccccccccccccccccccccccccccccccccccsT-2uCuU_?>2fpsT-2uQ8>O28's->j^nRB dR'8_uR%RrGViRER'haa@->uR%Rcckoa_- Koc2u>cmcu>_cwc=oanRER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNu>_Nck8->ouac->coLucNu>_cwc=oaNcu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RER>u/o@->uR%RccU==uao;2u>c3cS^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8=(u>v}'RER2->u=R%!*Ji"B"ERkauv@->uR%RccU==uao;u>_c&mcQg@@^nRER=U=o1_R%R{uR%RccccccccccPh=o auucmcoahunRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNPh=o auuNcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%RccccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8=(u>v}'RER2->u=R%!VVJ"B"ERkauv@->uR%Rcccccccccccccccccccccccccc41@FK$FFK.@$.Ip41@FK.1@uR%Rccccccccv-PKkUoLcmcu/uK>UPuncc((cwr[SGRER']uR%[VJER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R\8->ouaco8c28'U2cUaaUfcNu/uK>UPuNc-=c=o8au_c8ho=-_ucoLuc='8kuc8 coL-=cUaaUf}c.h'LcUck8->ouac]-22c9u'8Puc->vU2-_}RER>u/o@->uR%RccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8=(u>v}'RER2->u=R%!i*G"B"ERkauv@->uR%Rcccccccccccccccccccccc6$M\$,I@^cmmc?`^cdRER=U=o1_R%R{uR%RccCOgTT^cdRER']uR%X*bER dR'8_uR%RrGViRER'haa@->uR%RccccPuP'kf;2U=oK=s-kku_Ec8hokhoctc=oUaoEc6$MK{IgQ`K.1W<^nRER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN8hokhoNck8->ouac->coLucN8hokhoctc=oUaoNcu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RER>u/o@->uR%Rcccc2U=oK=s-kku_K2u>cmc6$MK{IgQ`K.1W=R%!dR -2uR%Rpzp(=a'(>v-P(8=(=Lu22}'RER2->u=R%!xxS*"B"ERkauv@->uR%Rcccc=-:uKoc=oUaocmc=-:ucwc6$MK{IgQ`K.1WuR%R|_u ->uc?g,KF$,$K,IC<.I?@FccxSJbc+cxSgcccccc((cxS`OEc)RUc u]c='auu> h2=)Rc8 c_UoU}RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cN?g,KF$,$K,IC<.I?@FNc-=cUc_U>jua8h=cu/kau==-8>}c,Lucu/kau==-8>cPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(8=(=Lu22}'RER2->u=R%![J"B"ERkauv@->uR%R|_u ->ucQ.KxK.<{?QFcccccccccxSSSSSSSSSgccccc((cxc=u'8>_Ec->c>U>8=u'8>_=RB dR'8_uR%Rr[[GRER'haa@->uR%RcccccccccccccccZZc;>UPu!x"c&mcN}Ncppc>UPu!J"c&mcQg@^^^cc((cwr[[GRER']uR%xJ[ER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R$aaUfc8vuaah>c-=ck8==-92u}c,LucNJNc->_u/c-=ck8->o->jc9uf8>_cUaaUfc98h>_}RER>u/o@->uR%RccccccccccZZc;;aujPUo'L}aujka8jc&mcQg@@cZZcv-PKauju/u';ZaujPUo'LEc>UPuEcS^^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(kUoL}'RER2->u=R%!G*i"B"ERkauv@->uR%RcccccccccccccccZZc>UPu!x"c&mcQg@RER=U=o1_R%R{uR%RccccPuP'kf;]koaEc=a'Ec'8kfK'8h>o^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cNPuP'kfNc h>'o-8>}c1>=ku'ocoLuc -a=ocUajhPu>o}RER>u/o@->uR%Rcccca9h uaKka8_h'u_;9h Ec'8kfK'8h>o^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(a9h ua}'RER2->u=R%!xX["B"ERkauv@->uR%Rcccc=-:uKoc'8kfK'8h>ocmc61Q;=a'K=-:uEc]'>o^nRER=U=o1_R%R{uR%Rcccccc- c;khPKa2^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNkhPK]->Ka8]Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccc'ha=8aK'82cmc'ha]->w3]K]-_oLK->>uacwc'ha]->w3]K]'82cwcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(k8khkPu>h}'RER2->u=R%!xb[Exbb"B"ERkauv@->uR%RcccccckhPK]->Ka8]cmc'ha]->w3]K]a8]nRB dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;]kw3]KkKkv]^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(k8khkPu>h}'RER2->u=R%!xX["B"ERkauv@->uR%Rcccc]->K,c+kv]->cmcQg@@nRB dR'8_uR%RrxS[xRER'haa@->uR%Rcccc- c;khPKu/oua>U2^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNkhPK=-:uNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rccccccauoha>nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(k8khkPu>h}'RER2->u=R%!*SxEJii"B"B dR'8_uR%RrxS[xRER'haa@->uR%Rcccccc- c;khPKa2^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNkhPK'82Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%RcccccccckhPK]-_oLcmckhPK'82cwcP->K'82cwckhPK='a8229UactcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(k8khkPu>h}'RER2->u=R%!*JXE*J["B"ERkauv@->uR%Rcccccc((c=oUaoc]-oLcoLucPU/-PhPc=kU'ucUvU-2U92uRB dR'8_uR%RrxS[xRER'haa@->uR%Rcccccccccc- c;khPKa2^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNkhPK]-_oLNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccccccc- c;khPK]-_oLc3ckhPK'82cwcP->K'82^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(k8khkPu>h}'RER2->u=R%!*G*E*GJ"B"ERkauv@->uR%RcccccccccckhPK]-_oLcmc;->o^kKk]nRB dR'8_uR%RrxS[xRER'haa@->uR%Rcc- c;PU/Ka8]cwcP8h=uKa8]c3ckhPK=-:u^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNkhPKU>'L8aKja-_Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccc((c<>8hjLc=kU'uc9u28]coLucP8h=uca8]}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(k8khkPu>h}'RER2->u=R%!iiGEiiV"B"ERkauv@->uR%RcckhPKU>'L8aKja-_cmcP8h=uKja-_nRB +dR'8_uR%Rr[G[RER'haa@->uR%RccccPuP'kf;]koaEc=a'Ec'8kfK'8h>o^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cNPuP'kfNc h>'o-8>}c1>=ku'ocoLuc -a=ocUajhPu>o}RER>u/o@->uR%Rcccca9h uaKka8_h'u_;9h Ec'8kfK'8h>o^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(a9h ua}'RER2->u=R%!xX["B"ERkauv@->uR%Rcccc=-:uKoc'8kfK'8h>ocmc61Q;=a'K=-:uEc]'>o^nRER=U=o1_R%R{uR%Rcc=>ka->o ;9h Ec=-:u8 ;9h ^Ec)RYxS}V2 )RERER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R1>'8aau'oc 8aPUo}c{8>=-_uac'Lu's->jcoLuc 8haoLcU'ohU2cUajhPu>oc8 coLucN=>ka->o Nc h>'o-8>}c,LucU'ohU2cUajhPu>oc-=c8 coLuc_8h92ucofkuEc9hocU>cUajhPu>oc8 coLuc28>jc_8h92ucofkuc-=cau~h-au_}RER>u/o@->uR%Rccccccccccc;_8h92u^ka8 -2uK=-j>u_;oP^c(cxSSSSSSSSS}S^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ka8 -2u}'RER2->u=R%!G["B"ERkauv@->uR%Rcc=oUo-'c'LUac9h ![S"nRER=U=o1_R%R{uR%Rcccc kw3h KoPKo8oU2cmcka8 -2uK:ua8;^nRER']uR%VV[ER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RrUa-U92u=cN kw3h KoPK=u2 NEcN kw3h KoPKo8oU2NcUauc->-o-U2-:u_coLa8hjLcoLuc'U22co8coLuc=UPuc h>'o-8>}c1oN=cka89U92fcU>cuaa8ac8ach>w8ko-P-:u_c'8_u}c{8>=-_uac->=ku'o->jcoLucNka8 -2uK:ua8;^Ncu/kau==-8>}c{Lu'sc2->u=%cbXbEcbX[}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ka8 -2u}'RER2->u=R%!bX[EbXb"B"ERkauv@->uR%Rcccc kw3h KoPK=u2 cmcka8 -2uK:ua8;^nRB dR'8_uR%RrV[VRER'haa@->uR%Rcc=-w3=>KkaK=u2 cmcka8 -2uK:ua8;^nRER']uR%VV[ER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RrUa-U92u=cN=-w3=>KkaKo8oU2NEcN=-w3=>KkaK=u2 NcUauc->-o-U2-:u_coLa8hjLcoLuc'U22co8coLuc=UPuc h>'o-8>}c1oN=cka89U92fcU>cuaa8ac8ach>w8ko-P-:u_c'8_u}c{8>=-_uac->=ku'o->jcoLucNka8 -2uK:ua8;^Ncu/kau==-8>}c{Lu'sc2->u=%cVGGEcVGX}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ka8 -2u}'RER2->u=R%!VGXEVGG"B"ERkauv@->uR%Rcc=-w3=>KkaKo8oU2cmcka8 -2uK:ua8;^nRB @@ -461,47 +461,11 @@ dR'8_uR%RrxSJXRER'haa@->uR%RccccccccccccccPuPP8vu;]8a_ctc-ctcsSEc]8a_ctc-ctcsEc= dR'8_uR%RrxSJXRER'haa@->uR%RccccccccccccccPuPP8vu;]8a_Ec]8a_ctc-ctcxEc=-:u8 ;->o^c+c;=-:uKo^;]8a_2u>cwc;-ctcx^ctcx^^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R\8==-92uc8vua 28]}c{8>=-_uac'U=o->jc8kuaU>_=c8 coLucN]8a_2u>cwc;-ctcx^ctcxNc8kuaUo8aco8coLucN=-:uKoNcofkuEc>8ocoLucau=h2o}RER>u/o@->uR%Rcccccccccccccc-cmcSnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22}'RER2->u=R%!*xVX"B"ERkauv@->uR%RccccccccccccccBRER=U=o1_R%R{uR%RccccccccccccU==uao;_ukoLc3mcS^nRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN_ukoLc3mcSNc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccccccccccc- c;_ukoLcymckUo2u>RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22}'RER2->u=R%!*bJG"B"ERkauv@->uR%Rcccccccccccc((c-j>8auc'U=u}}}RB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3]K9h uacmmc'ha9h cZZc]kw3]KkK=ku22^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22}'RER2->u=R%!*Gxi"B"B -dR'8_uR%RrxSXVRER'haa@->uR%Rcc{@<$CK\?1Q,'o-8>c]-22c2uU_co8ch>_ua 28]c8 coLuc9h uacN=kN}RER>u/o@->uR%Rcc=kw3o=K'ha-cmcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22=hjju=o}'RER2->u=R%!xxGV"B"ERkauv@->uR%Rccoaf=oUouK,c+=kcmcZ=oU's!S"nRB -dR'8_uR%Rr[JJRER'haa@->uR%Rcccccccc=kw3o=K'ha-cmc2kw32kKauk2U>jw3=2KaukK -a=o!;h->oXKo^ ]8a_!=kw3o=K -_/""nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN2kw32kKauk2U>jN}RER>u/o@->uR%RccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22=hjju=o}'RER2->u=R%!JJbx"B"ERkauv@->uR%RccccccBcu2=ucdRER=U=o1_R%R{uR%Rcccccckcmc/PU228';=-:u8 ;->o^c+c;=-:uKo^;2kw3=2K=U2K -a=o!-"c+cJctcx^^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R\8==-92uc8vua 28]}c{8>=-_uac'U=o->jc8kuaU>_=c8 coLucN2kw3=2K=U2K -a=o!-"c+cJctcxNc8kuaUo8aco8coLucN=-:uKoNcofkuEc>8ocoLucau=h2o}RER>u/o@->uR%Rcccccc;;->oc++^jUkw3jUK_UoU^!-"cmc;->oc+^knRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22 -2u}'RER2->u=R%!x[Xx"B"ERkauv@->uR%Rcccc- c;2kw3=2K=U2K -a=o!-"c3cS^cdRER=U=o1_R%R{uR%Rcc- c;;=-:uKo^2u>c3mc.1Wo^^cdcc((cwr[bGRER']uR%[GSER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%Rc-=cU2]Uf=c U2=u}RER>u/o@->uR%Rcccc((c1>vU2-_c2u>joLEcPh2o-k2fc]-oLc=-:u8 ;->o^c]8h2_c8vua 28]}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22 -2u}'RER2->u=R%!xVi["B"ERkauv@->uR%RccBRB dR'8_uR%Rr[bGRER'haa@->uR%RccccU==uao;jUkw3jUK2u>c3mcS^nRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcNjUkw3jUK2u>c3mcSNc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccc 8ac;=-:uKoc-cmcSnc-cyc;=-:uKo^jUkw3jUK2u>nc-tt^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22 -2u}'RER2->u=R%!bbGi"B"ERkauv@->uR%Rcccc=-:uKoc2cmcJncc((c'8h>ocyauk'8h>o3c8acy=U2'8h>o3RB dR'8_uR%RrxSJXRER'haa@->uR%Rcccccccc'LUac+9cmc/PU228';;=-:uKo^;'2ctcLuU_'2^ctcJ^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R\8==-92uc8vua 28]}c{8>=-_uac'U=o->jc8kuaU>_=c8 coLucN'2ctcLuU_'2Nc8kuaUo8aco8coLucN=-:uKoNcofkuEc>8ocoLucau=h2o}RER>u/o@->uR%Rccccccccho K'LUaJ9fou=;'Ec9^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22 -2u}'RER2->u=R%![X[J"B"ER=U=o1_R%R{uR%R|c_u ->uc\C1Q,.?6<;2Ec_ukoLEc PoEcUxEcUJ^cv-PK=>ka->o ;2ctc_ukoLc+c\C1Q,41F,IEc))RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cN\C1Q,.?6jua8h=cu/kau==-8>}c,LuckUaUPuoua=cN2NEcN_ukoLNcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%Rccccccccccccccccccccccccccccccccccccccccccccccccccccccc\C1Q,@1Q<.1W=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22 -2u}'RER2->u=R%!xi**"B"B -dR'8_uR%Rr[J[RER'haa@->uR%Rcccccc+_ttcmcN))NNnRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNN))NNNEcNN))))NNEcNN))NNNEcNN))NNNc->c2->u=cJ[bEcJ[[EcJ[VEcJ[G}RER>u/o@->uR%Rcccccc+_ttcmcN))))NnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!J[bEJ[[EJ[VEJ[G"B"ERkauv@->uR%Rcccc- c;+kcmmcN))NN^cdRB -dR'8_uR%Rr[VXRER'haa@->uR%Rcc.,$,1{K$..j^cmmc?TT;vK2-=o^cc((cwr[VXRER']uR%x*xER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R1oN=c8__coLUocN=-:u8 ;^Nc8kuaUo8acuvU2hUou=coLuc=-:uc8 cUck8->ouaco8cUc'2U==Ec9hoc>8ocoLuc=-:uc8 coLucNov=!S"}vvU2}vK2-=oNc'2U==c895u'o}RER>u/o@->uR%RccccccccccccccccZZc?TT;vK=oa->j^cmmc?TT;vK_-'o^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!VSV"B"ERkauv@->uR%R|_u ->uc?TT;Uooa^c8 =uo8 ;h>-8>cofkvU2KvvU2Kh>-8>EcUooa^RER=U=o1_R%R{uR%Rcc.,$,1{K$..j^cmmc?TT;vK2-=o^cc((cwr[VXRER']uR%x*xER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R1oN=c8__coLUocN=-:u8 ;^Nc8kuaUo8acuvU2hUou=coLuc=-:uc8 cUck8->ouaco8cUc'2U==Ec9hoc>8ocoLuc=-:uc8 coLucNov=!S"}vvU2}vK_-'oNc'2U==c895u'o}RER>u/o@->uR%RccccccccccccccccZZc?TT;vK=oa->j^cmmc?TT;vK_-'o^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!VSV"B"ERkauv@->uR%R|_u ->uc?TT;Uooa^c8 =uo8 ;h>-8>cofkvU2KvvU2Kh>-8>EcUooa^RER=U=o1_R%R{uR%Rcc.,$,1{K$..j^cmmc?TT;vK2-=o^cc((cwr[VXRER']uR%x*xER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R1oN=c8__coLUocN=-:u8 ;^Nc8kuaUo8acuvU2hUou=coLuc=-:uc8 cUck8->ouaco8cUc'2U==Ec9hoc>8ocoLuc=-:uc8 coLucNov=!S"}vvU2}vKkUao-U2Nc'2U==c895u'o}RER>u/o@->uR%RccccccccccccccccZZc?TT;vK=oa->j^cmmc?TT;vK_-'o^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!VSV"B"ERkauv@->uR%R|_u ->uc?TT;Uooa^c8 =uo8 ;h>-8>cofkvU2KvvU2Kh>-8>EcUooa^RER=U=o1_R%R{uR%RccvUK=oUao;UkEc Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rcc'8>=oc->oc=oaK2cmcv-PKv=>ka->o ;=oactc2u>Ec=kU'uEc PoEcUk^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!GSV"B"ERkauv@->uR%RccvUK2-=ocUknRER=U=o1_R%R{uR%RccvUK=oUao;UkEc Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rcc'8>=oc->oc=oaK2cmcv-PKv=>ka->o ;=oaEc=oaKPEc PoEcUk^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!GJb"B"ERkauv@->uR%RccvUK2-=ocUknRER=U=o1_R%R{uR%Rcccc PoK=ku'cmcN_Nnc2u>joLKP8_- -uacmcNLNnc9auUsnRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNNLNNEcNN2NNEcNN2NNEcNN2NNc->c2->u=cGi[EcGiGEcGiiEcXSx}RER>u/o@->uR%Rcc'U=ucNFN%RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!Gi[EGiGEGiiEXSx"B"ERkauv@->uR%Rcc'U=ucN+N%RB -dR'8_uR%Rr[G[RER'haa@->uR%RccccccccccccPuPP8vu;=oactc=oaK2Ec=oaKUajEc61Q;:>EcUvU-2^^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cNPuPP8vuNc h>'o-8>}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rcccccccccccc=oaKUvU-2cmc:>cycUvU-2nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!JSGb"B"ERkauv@->uR%Rcccccccccccc=-:uKocUvU-2cmc=oaKPcwc=oaK2nRER=U=o1_R%R{uR%Rcccccccccc- c;;U9=K c3mcS}SSxcZZcU9=K cycxSSSSSSS}S^cppcU9=K cmmcS}S^cdRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R$>c8__ckau'-=uc'8PkUa-=8>%cU9=K cmmcS}S}c1oN=cka89U92fc9uoouaco8ch=ucUc'8PkUa-=8>c]-oLc_u ->u_ckau'-=-8>%c U9=;$cwcO^cyc}RER>u/o@->uR%Rcccccccccccc PoK=ku'cmc$.{11K1.g\\=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!xiJS"B"ERkauv@->uR%Rcccccccccc((c'U>Noch=ucYjc_-au'o2fEc'Uh=uc-ocka->o=c)Rx}S)RcU=c)Rx)RRER=U=o1_R%R{uR%RccvUK=oUao;UkEc Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rcc->ocka->ou_cmcv=>ka->o ;=oaw3-ouP=czc=oaw3-ouP=ctc=oaw3=-:uc%cQg@@EcauPU->->jEc PoEcUk^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!Jx[*"B"ERkauv@->uR%RccvUK2-=ocUknRER=U=o1_R%R{uR%RccccvUK=oUao;UkEc Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rccccka->ou_cmcv=>ka->o ;=oaw3-ouP=ctc=oaw3=-:uEc=oaw3'UkU'-ofcwc=oaw3=-:uEc PoEcUk^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!JxV["B"ERkauv@->uR%RccccU==uao;=oaw3-ouP=c&mcQg@@^nRER=U=o1_R%R{uR%Rcccccccccc>9fouctmcho 'KkoaJ2u>;kctc>9fou^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN>9fouNcvUa-U92uc-=c->'auPu>ou_c->coLuc288k}cg>_u ->u_c9uLUv-8ac]-22c8''hac->c'U=uc8 c=-j>u_c->oujuac8vua 28]}RER>u/o@->uR%RccccccccBcu2=ucdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!JVS*"B"ERkauv@->uR%Rcccccccc- c;=s-k''^cdRER=U=o1_R%R{uR%Rcccccccccc>9fouctmcho KkoaJ2u>;kctc>9fou^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN>9fouNcvUa-U92uc-=c->'auPu>ou_c->coLuc288k}cg>_u ->u_c9uLUv-8ac]-22c8''hac->c'U=uc8 c=-j>u_c->oujuac8vua 28]}RER>u/o@->uR%RccccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!JVS["B"ERkauv@->uR%RccccccccBcu2=ucdRER=U=o1_R%R{uR%Rcccccccccccccc- c;'haau>oK2>hPc3mcu>_K2>hP^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN'haau>oK'82Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccccccccccc9auUsnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!V[XEV[G"B"ERkauv@->uR%Rcccccccccccccc'haau>oK'82cmc 8h>_KPKu>_k8=}'82nRB -dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3]K=cmmc928'scZZc 82_PuoL8_1=.f>oU/;]k^^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!iS["B"ERkauv@->uR%Rcc((c4Lu>ch=->jc)R=f>oU/)Rc 82_cPuoL8_EcPh=ochk_UoucU22c 82_=}RB -dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;;]kw3]K9h uacmmc9h ^cZZc;]kw3]K=c&mcZ9h w39K=^^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!iiS"B"B -dR'8_uR%Rr[J[RER'haa@->uR%Rcccccc2-P-oKk8=K:ua8;Z=-kw3=-KPKu>_k8=EcZPU/k8=^nRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNPU/k8=NEcNPU/k8=KLNEcNPU/k8=Nc->c2->u=cJJbbEcJJb[EcJJbV}RER>u/o@->uR%Rcccccc2-P-oKk8=K:ua8;Z=-kw3=-KLKu>_k8=EcZPU/k8=KL^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!JJbbEJJb[EJJbV"B"ERkauv@->uR%Rcccc- c;PU/k8=}2>hPc&mcS^cdRB -dR'8_uR%RrGXJRER'haa@->uR%Rcccc 8ac;sufu>oafK,c+skcmcI1J`<;L-^ncskc&mcQg@@ncskcmcskw3suK>u/o^cdRER']uR%bViER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R,Luauc-=c>8c=u>=uc->cuvU2hUo->jcoLuc_-=oU>'uc9uo]uu>cu2uPu>o=c a8Pc_- uau>ocUaaUf=%cN_hPsuf}suf]8a_cwc;'LUac+^cZc_hPsufN}RER>u/o@->uR%Rcccccc- c;'haau>oK>u/oK2-=oc&mcSRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!JGi*"B"ERkauv@->uR%Rcc- c;&I$.I1,<6K<6\,e;L-^^cdRER=U=o1_R%R{uR%Rcccccc- c;+UajcmmcN7N^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNUajKu>_Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccc-_cmc=f>K='2K>UPu>J-_;UajctcxEc;->o^;UajKu>_cwcUajcwcx^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!*xJGE*xJV"B"ERkauv@->uR%RccccccUajKu>_cmc=s-ko8]L-ou;Uaj^nRB -dR'8_uR%RrxS[xRER'haa@->uR%Rcccccc- c;+UajcmmcN7N^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNUajKu>_Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccc->oc-_cmc=f>K='2K>UPu>J-_;UajctcxEc;->o^;UajKu>_cwcUajcwcx^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!*JXXE*JXG"B"ERkauv@->uR%RccccccUajKu>_cmc=s-ko8]L-ou;Uaj^nRB -dR'8_uR%Rr[JJRER'haa@->uR%RccccccccccccccccccauovU2!'8h>o"cmc;->oxVKo^;-ctcx^ncc((cwr[JJRER']uR%bGVER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%RFuau uau>'->jc8 coLuc>h22ck8->ouacNauovU2NcP-jLocoUsuck2U'u}RER>u/o@->uR%RccccccccccccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%![SVJ"B"ERkauv@->uR%RccccccccccccccccBcu2=ucdRER=U=o1_R%R{uR%Rcc=ow3=28]u=ocmcka8 -2uK:ua8;^nRER']uR%VV[ER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RrUa-U92u=cN=ow3o8oU2NEcN=ow3=28]u=oNcUauc->-o-U2-:u_coLa8hjLcoLuc'U22co8coLuc=UPuc h>'o-8>}c1oN=cka89U92fcU>cuaa8ac8ach>w8ko-P-:u_c'8_u}c{8>=-_uac->=ku'o->jcoLucNka8 -2uK:ua8;^Ncu/kau==-8>}c{Lu'sc2->u=%c[[X*Ec[[Xb}RER>u/o@->uR%Rcc=ow3'8h>ocmcSnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%![[XbE[[X*"B"ERkauv@->uR%Rcc=ow3o8oU2cmcka8 -2uK:ua8;^nRB -dR'8_uR%RrxSxiRER'haa@->uR%Rcccccccc- c;;oUj=oU's-_/cwmc'8h>o^cycS^cdRER']uR%bXSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8Pk8h>_cU==-j>Pu>ocu/kau==-8>cNoUj=oU's-_/cwmc'8h>oNc-=ch=u_c->=-_uc'8>_-o-8>}RER>u/o@->uR%RccccccccccuP=j;K;uKUoK98oo8PK8 KoUjK=oU's^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oUj}'RER2->u=R%!bSX"B"ERkauv@->uR%Rcccccccc'8>=oc9882c82_K`uf,fku_cmc`uf,fku_nRER=U=o1_R%R{uR%Rcccccccccc- c;;oUj=oU's-_/ctmc'8h>ocwcx^c3mcoUj=oU's2u>^cdRER']uR%bXSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8Pk8h>_cU==-j>Pu>ocu/kau==-8>cNoUj=oU's-_/ctmc'8h>ocwcxNc-=ch=u_c->=-_uc'8>_-o-8>}RER>u/o@->uR%Rcccccccccccc((cOuf8>_coLuc2U=oc8>uEc5h=ocj-vucU>cuaa8acPu==UjucU>_RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oUj}'RER2->u=R%!bV*"B"ERkauv@->uR%Rcccccccccc=UvuKk8=cmcoahuncccccccccccccc((c=UvucoLuc'ha=8ack8=-o-8>c9u28]RER=U=o1_R%R{uR%RcccccccckauvoUj=oU's-_/cmcoUj=oU's-_/nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R,LucNkauvoUj=oU's-_/NcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oUj}'RER2->u=R%!bXx"B"ERkauv@->uR%Rcccccccc((c.Uvuc->_u/c 8ac]Lu>c=u2u'o-8>c-=c'U>'u22u_}RB -dR'8_uR%Rr[JJRER'haa@->uR%RccccccsuukKLu2kK 2Ujcmc9oKLu2k;'ha]->K=Uvuw3]K9h ua^nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN'ha]->K=UvuN}RER>u/o@->uR%RccccBcu2=ucdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oUj}'RER2->u=R%!JiJV"B"ERkauv@->uR%Rcccc- c;2KjK_8KoUjkauv-u]c&mcS^cdRER=U=o1_R%R{uR%RcccccckK-'cmc=UvuKkK-'ncc((cwr[xiRER']uR%[V*ER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R,LucNkK-'NcvUa-U92uc-=cU==-j>u_cvU2hu=co]-'uc=h''u==-vu2f}c\uaLUk=coL-=c-=cUcP-=oUsu}c{Lu'sc2->u=%cJiXXEc*SJb}RER>u/o@->uR%RcccccckK='=cmc=UvuKkK='=nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oUj}'RER2->u=R%!*SJbEJiXX"B"ERkauv@->uR%RcccccckK]=cmc=UvuKkK]=nRER=U=o1_R%R{uR%Rccccv-PK=>ka->o ;9h Ec$CC$eK.1W<;9h ^Ec)R2->ucY)Rc\C1_VbEc;->oVbKo^.?gC{1QHK@Qg6^nRER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LucP8_h28c9fcxc8kuaUo-8>c-=cPuU>->j2u==}c,Lucau=h2oc]-22cU2]Uf=c9uc:ua8}RER>u/o@->uR%RccccjUK'8>'Uo;jUkEc9h ^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ou=o->j}'RER2->u=R%!GS"B"ERkauv@->uR%Rcc- c;.?gC{1QHK@Qg6c3cS^cdRB -dR'8_uR%Rr[G[RER'haa@->uR%Rcccccccc9h 2u>ctmc=oa2u>;k^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cN=oa2u>Nc h>'o-8>}c1>=ku'ocoLuc -a=ocUajhPu>o}RER>u/o@->uR%Rcccccccc'ha-ouPttnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oUoh=2->u}'RER2->u=R%!xVGS"B"ERkauv@->uR%Rcccccccc/=oa2'kf;9h KoPkctc9h 2u>EckEc,6\@^nRER=U=o1_R%R{uR%Rcc- c;+ouaPkkcmmcQg@@^cdRER']uR%[GSER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%RcN+couaPkkcmmcQg@@Nc-=cU2]Uf=c U2=u}RER>u/o@->uR%Rccccauoha>ncc((c,uaP->U2cLU=cU2auU_fc9uu>c_u=oa8fu_}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ouaP->U2}'RER2->u=R%!JVJ"B"B -dR'8_uR%Rr[bGRER'haa@->uR%Rcc- c;avw3=9K9h uacmmcQg@@^cdRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%RcNavw3=9K9h uacmmcQg@@Nc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccc((c@8'U2cN='a8229U'sNcKU ouaKcUho8'P_=}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ouaP->U2}'RER2->u=R%!JVV"B"B -dR'8_uR%Rr[JJRER'haa@->uR%Rcc_-'oK=uoKvUa;9h w39KvUa=ERER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RFuau uau>'->jc8 coLuc>h22ck8->ouacN9h NcP-jLocoUsuck2U'u}c,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cN9h K=uoKouaPKo-o2uNc h>'o-8>}c1>=ku'ocoLuc -a=ocUajhPu>o}c{Lu'sc2->u=%ciJVEci[b}RER>u/o@->uR%Rccccccccccccccc.,$,1{K{.,CK$.K.,C1QH;)RouaPKo-o2u)R^ERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ouaP->U2}'RER2->u=R%!iJVEi[b"B"ERkauv@->uR%RccuR%Rcccccccccppc;+2uU_uaK2u>c3cScZZc+ 2Uj=cmmc{?6K'->jc8 cUck8ou>o-U2c>h22ck8->ouacN 2Uj=N}RER>u/o@->uR%Rcccccccccppc=oUao\.;2>hPEcQg@Ec U2=u^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ou/o 8aPUo}'RER2->u=R%!bii"B"ERkauv@->uR%Rccauoha>c+=s-k]L-ou;koactc+2uU_uaK2u>^cmmcQg@RER=U=o1_R%R{uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;]kw3]K82_K'ha=8aK2>hPc&mcS^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ou/o 8aPUo}'RER2->u=R%!X[x"B"ERkauv@->uR%Rcc- c;8Ukw3-=Kr1=hU2^cdRB dR'8_uR%Rr[*VRER'haa@->uR%Rcc 8ac;-cmcSnc-cyc*cZZc>acycSbSnc-tt^cdcc((cwr[*VRER']uR%VXJER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%ROucU_v-=u_coLUocoLucho-2-:u_c'8>=oU>ocvU2huc-=caukau=u>ou_c9fcU>c8'oU2c 8aP}c?'o%cSbSEcFu'%c*J}RER>u/o@->uR%Rcccc'cmc;h->oXKo^aujkUa=u!S"nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(auju/k}'RER2->u=R%!xSSG"B"ER=U=o1_R%R{uR%Rccccau/}->khocmcau/}2->uctc'82nRER']uR%xxiER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNau/}2->uNck8->ouac->coLucNau/}2->uctc'82Ncu/kau==-8>c'8h2_c9uc>h22koa}c1>c=h'Lc'U=uEcau=h2o->jcvU2huc]-22c9uc=u>=u2u==cU>_c-oc=L8h2_c>8oc9uch=u_}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(auju/k}'RER2->u=R%!xJi["B"ERkauv@->uR%Rccccau/}2->ucmc;h->oXKoc+^aujKjuo2->u;au/}2>hP^nRER=U=o1_R%R{uR%Rcc- c;u/kac&mcQg@@cppc;=8ha'u!S"cmmcN))))NcZZc=8ha'u!x"cmmcNmN^^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN=8ha'uN}RER>u/o@->uR%Rcccc((c,8cPUsuc=haucoLUocoLuc2u>joLc_8u=>Noc'LU>juc9uo]uu>c'Lu's->jcoLuRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(auju/k}'RER2->u=R%!xXVV"B"ERkauv@->uR%Rcc((c4Lu>coLuc=h9=o-ohouckUaoc=oUao=c]-oLc)R))m)RcuvU2hUouc-ocU=cU>cu/kau==-8>}RER=U=o1_R%R{uR%Rcccccccccccccccc+;;;auj=oUaK,c+^ak^cwcx^cmca=onRER'] dR'8_uR%RrxSJGRER'haa@->uR%Rccccccccauj=oUaK,c+a=ocmc;;auj=oUaK,c+^ak^cwcxnRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R\8->ouaco8cU>c895u'oc8 coLucNauj-ouPK.Nc'2U==c-=c'U=oco8ch>au2Uou_cNauj=oUaK.Nc'2U==}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(auju/k}'RER2->u=R%!GSXS"B"ERkauv@->uR%Rcccccc'U=ucC.K.,$CK.I?C,%cdRB dR'8_uR%RrxSS*RER'haa@->uR%R|_u ->ucT1C.,KQ@cccccccc$Qectc$FFKQ@RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cNT1C.,KQ@Nc-=cUc_U>jua8h=cu/kau==-8>}c,Lucu/kau==-8>cPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%R|_u ->uc$QecccccccccccccJScccccc((cccccc6Uo'LcU>fc8>uc'LUaU'oua}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(auju/k}'RER2->u=R%!J[[b"B"ERkauv@->uR%R|_u ->uc$FFKQ@cccccccccc*SRB dR'8_uR%RrxSS*RER'haa@->uR%R|_u ->uc@$.,KQ@cccccccccQg\\jua8h=cu/kau==-8>}c,Lucu/kau==-8>cPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%R((cwr%41,IKQ@%[VSRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(auju/k}'RER2->u=R%!J[X["B"ERkauv@->uR%R|_u ->ucQg\\8>whkkua'U=uc'LUaRB +dR'8_uR%RrxSXVRER'haa@->uR%Rcc{@<$CK\?1Q,'o-8>c]-22c2uU_co8ch>_ua 28]c8 coLuc9h uacN=kN}RER>u/o@->uR%Rcc=kw3o=K'ha-cmcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22=hjju=o}'RER2->u=R%!xxGV"B"ERkauv@->uR%Rccoaf=oUouK,c+=kcmcZ=oU's!S"nRB +dR'8_uR%Rr[JJRER'haa@->uR%Rcccccccc=kw3o=K'ha-cmc2kw32kKauk2U>jw3=2KaukK -a=o!;h->oXKo^ ]8a_!=kw3o=K -_/""nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN2kw32kKauk2U>jN}RER>u/o@->uR%RccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=ku22=hjju=o}'RER2->u=R%!JJbx"B"ERkauv@->uR%RccccccBcu2=ucdRER=U=o1_R%R{uR%Rcccccc+_ttcmcN))NNnRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNN))NNNEcNN))))NNEcNN))NNNEcNN))NNNc->c2->u=cJ[bEcJ[[EcJ[VEcJ[G}RER>u/o@->uR%Rcccccc+_ttcmcN))))NnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!J[bEJ[[EJ[VEJ[G"B"ERkauv@->uR%Rcccc- c;+kcmmcN))NN^cdRB +dR'8_uR%Rr[VXRER'haa@->uR%Rcc.,$,1{K$..j^cmmc?TT;vK2-=o^cc((cwr[VXRER']uR%x*xER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R1oN=c8__coLUocN=-:u8 ;^Nc8kuaUo8acuvU2hUou=coLuc=-:uc8 cUck8->ouaco8cUc'2U==Ec9hoc>8ocoLuc=-:uc8 coLucNov=!S"}vvU2}vK2-=oNc'2U==c895u'o}RER>u/o@->uR%RccccccccccccccccZZc?TT;vK=oa->j^cmmc?TT;vK_-'o^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!VSV"B"ERkauv@->uR%R|_u ->uc?TT;Uooa^c8 =uo8 ;h>-8>cofkvU2KvvU2Kh>-8>EcUooa^RER=U=o1_R%R{uR%Rcc.,$,1{K$..j^cmmc?TT;vK2-=o^cc((cwr[VXRER']uR%x*xER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R1oN=c8__coLUocN=-:u8 ;^Nc8kuaUo8acuvU2hUou=coLuc=-:uc8 cUck8->ouaco8cUc'2U==Ec9hoc>8ocoLuc=-:uc8 coLucNov=!S"}vvU2}vK_-'oNc'2U==c895u'o}RER>u/o@->uR%RccccccccccccccccZZc?TT;vK=oa->j^cmmc?TT;vK_-'o^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!VSV"B"ERkauv@->uR%R|_u ->uc?TT;Uooa^c8 =uo8 ;h>-8>cofkvU2KvvU2Kh>-8>EcUooa^RER=U=o1_R%R{uR%Rcc.,$,1{K$..j^cmmc?TT;vK2-=o^cc((cwr[VXRER']uR%x*xER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R1oN=c8__coLUocN=-:u8 ;^Nc8kuaUo8acuvU2hUou=coLuc=-:uc8 cUck8->ouaco8cUc'2U==Ec9hoc>8ocoLuc=-:uc8 coLucNov=!S"}vvU2}vKkUao-U2Nc'2U==c895u'o}RER>u/o@->uR%RccccccccccccccccZZc?TT;vK=oa->j^cmmc?TT;vK_-'o^RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!VSV"B"ERkauv@->uR%R|_u ->uc?TT;Uooa^c8 =uo8 ;h>-8>cofkvU2KvvU2Kh>-8>EcUooa^RER=U=o1_R%R{uR%RccvUK=oUao;UkEc Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rcc'8>=oc->oc=oaK2cmcv-PKv=>ka->o ;=oactc2u>Ec=kU'uEc PoEcUk^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!GSV"B"ERkauv@->uR%RccvUK2-=ocUknRER=U=o1_R%R{uR%RccvUK=oUao;UkEc Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rcc'8>=oc->oc=oaK2cmcv-PKv=>ka->o ;=oaEc=oaKPEc PoEcUk^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!GJb"B"ERkauv@->uR%RccvUK2-=ocUknRER=U=o1_R%R{uR%Rcccc PoK=ku'cmcN_Nnc2u>joLKP8_- -uacmcNLNnc9auUsnRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNNLNNEcNN2NNEcNN2NNEcNN2NNc->c2->u=cGi[EcGiGEcGiiEcXSx}RER>u/o@->uR%Rcc'U=ucNFN%RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!Gi[EGiGEGiiEXSx"B"ERkauv@->uR%Rcc'U=ucN+N%RB +dR'8_uR%Rr[G[RER'haa@->uR%RccccccccccccPuPP8vu;=oactc=oaK2Ec=oaKUajEc61Q;:>EcUvU-2^^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cNPuPP8vuNc h>'o-8>}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rcccccccccccc=oaKUvU-2cmc:>cycUvU-2nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!JSGb"B"ERkauv@->uR%Rcccccccccccc=-:uKocUvU-2cmc=oaKPcwc=oaK2nRER=U=o1_R%R{uR%Rcccccccccc- c;;U9=K c3mcS}SSxcZZcU9=K cycxSSSSSSS}S^cppcU9=K cmmcS}S^cdRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R$>c8__ckau'-=uc'8PkUa-=8>%cU9=K cmmcS}S}c1oN=cka89U92fc9uoouaco8ch=ucUc'8PkUa-=8>c]-oLc_u ->u_ckau'-=-8>%c U9=;$cwcO^cyc}RER>u/o@->uR%Rcccccccccccc PoK=ku'cmc$.{11K1.g\\=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!xiJS"B"ERkauv@->uR%Rcccccccccc((c'U>Noch=ucYjc_-au'o2fEc'Uh=uc-ocka->o=c)Rx}S)RcU=c)Rx)RRER=U=o1_R%R{uR%RccvUK=oUao;UkEc Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rcc->ocka->ou_cmcv=>ka->o ;=oaw3-ouP=czc=oaw3-ouP=ctc=oaw3=-:uc%cQg@@EcauPU->->jEc PoEcUk^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!Jx[*"B"ERkauv@->uR%RccvUK2-=ocUknRER=U=o1_R%R{uR%RccccvUK=oUao;UkEc Po^nRER']uR%GSbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R\8->ouac-=c-Pk2-'-o2fc'U=oco8cU>c->oujuacofku}c1>=ku'ocoLuc=u'8>_cUajhPu>o}RER>u/o@->uR%Rccccka->ou_cmcv=>ka->o ;=oaw3-ouP=ctc=oaw3=-:uEc=oaw3'UkU'-ofcwc=oaw3=-:uEc PoEcUk^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!JxV["B"ERkauv@->uR%RccccU==uao;=oaw3-ouP=c&mcQg@@^nRER=U=o1_R%R{uR%Rcccccccccc>9fouctmcho 'KkoaJ2u>;kctc>9fou^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN>9fouNcvUa-U92uc-=c->'auPu>ou_c->coLuc288k}cg>_u ->u_c9uLUv-8ac]-22c8''hac->c'U=uc8 c=-j>u_c->oujuac8vua 28]}RER>u/o@->uR%RccccccccBcu2=ucdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!JVS*"B"ERkauv@->uR%Rcccccccc- c;=s-k''^cdRER=U=o1_R%R{uR%Rcccccccccc>9fouctmcho KkoaJ2u>;kctc>9fou^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN>9fouNcvUa-U92uc-=c->'auPu>ou_c->coLuc288k}cg>_u ->u_c9uLUv-8ac]-22c8''hac->c'U=uc8 c=-j>u_c->oujuac8vua 28]}RER>u/o@->uR%RccccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oa->j=}'RER2->u=R%!JVS["B"ERkauv@->uR%RccccccccBcu2=ucdRER=U=o1_R%R{uR%Rcccccccccccccc- c;'haau>oK2>hPc3mcu>_K2>hP^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN'haau>oK'82Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccccccccccc9auUsnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!V[XEV[G"B"ERkauv@->uR%Rcccccccccccccc'haau>oK'82cmc 8h>_KPKu>_k8=}'82nRB +dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3]K=cmmc928'scZZc 82_PuoL8_1=.f>oU/;]k^^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!iS["B"ERkauv@->uR%Rcc((c4Lu>ch=->jc)R=f>oU/)Rc 82_cPuoL8_EcPh=ochk_UoucU22c 82_=}RB +dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;;]kw3]K9h uacmmc9h ^cZZc;]kw3]K=c&mcZ9h w39K=^^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!iiS"B"B +dR'8_uR%Rr[J[RER'haa@->uR%Rcccccc2-P-oKk8=K:ua8;Z=-kw3=-KPKu>_k8=EcZPU/k8=^nRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNPU/k8=NEcNPU/k8=KLNEcNPU/k8=Nc->c2->u=cJJbbEcJJb[EcJJbV}RER>u/o@->uR%Rcccccc2-P-oKk8=K:ua8;Z=-kw3=-KLKu>_k8=EcZPU/k8=KL^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!JJbbEJJb[EJJbV"B"ERkauv@->uR%Rcccc- c;PU/k8=}2>hPc&mcS^cdRB +dR'8_uR%RrGXJRER'haa@->uR%Rcccc 8ac;sufu>oafK,c+skcmcI1J`<;L-^ncskc&mcQg@@ncskcmcskw3suK>u/o^cdRER']uR%bViER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R,Luauc-=c>8c=u>=uc->cuvU2hUo->jcoLuc_-=oU>'uc9uo]uu>cu2uPu>o=c a8Pc_- uau>ocUaaUf=%cN_hPsuf}suf]8a_cwc;'LUac+^cZc_hPsufN}RER>u/o@->uR%Rcccccc- c;'haau>oK>u/oK2-=oc&mcSRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!JGi*"B"ERkauv@->uR%Rcc- c;&I$.I1,<6K<6\,e;L-^^cdRER=U=o1_R%R{uR%Rcccccc- c;+UajcmmcN7N^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNUajKu>_Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccc-_cmc=f>K='2K>UPu>J-_;UajctcxEc;->o^;UajKu>_cwcUajcwcx^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!*xJGE*xJV"B"ERkauv@->uR%RccccccUajKu>_cmc=s-ko8]L-ou;Uaj^nRB +dR'8_uR%RrxS[xRER'haa@->uR%Rcccccc- c;+UajcmmcN7N^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNUajKu>_Nc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccccc->oc-_cmc=f>K='2K>UPu>J-_;UajctcxEc;->o^;UajKu>_cwcUajcwcx^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%!*JXXE*JXG"B"ERkauv@->uR%RccccccUajKu>_cmc=s-ko8]L-ou;Uaj^nRB +dR'8_uR%Rr[JJRER'haa@->uR%RccccccccccccccccccauovU2!'8h>o"cmc;->oxVKo^;-ctcx^ncc((cwr[JJRER']uR%bGVER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%RFuau uau>'->jc8 coLuc>h22ck8->ouacNauovU2NcP-jLocoUsuck2U'u}RER>u/o@->uR%RccccccccccccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%![SVJ"B"ERkauv@->uR%RccccccccccccccccBcu2=ucdRER=U=o1_R%R{uR%Rcc=ow3=28]u=ocmcka8 -2uK:ua8;^nRER']uR%VV[ER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RrUa-U92u=cN=ow3o8oU2NEcN=ow3=28]u=oNcUauc->-o-U2-:u_coLa8hjLcoLuc'U22co8coLuc=UPuc h>'o-8>}c1oN=cka89U92fcU>cuaa8ac8ach>w8ko-P-:u_c'8_u}c{8>=-_uac->=ku'o->jcoLucNka8 -2uK:ua8;^Ncu/kau==-8>}c{Lu'sc2->u=%c[[X*Ec[[Xb}RER>u/o@->uR%Rcc=ow3'8h>ocmcSnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=f>oU/}'RER2->u=R%![[XbE[[X*"B"ERkauv@->uR%Rcc=ow3o8oU2cmcka8 -2uK:ua8;^nRB +dR'8_uR%RrxSxiRER'haa@->uR%Rcccccccc- c;;oUj=oU's-_/cwmc'8h>o^cycS^cdRER']uR%bXSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8Pk8h>_cU==-j>Pu>ocu/kau==-8>cNoUj=oU's-_/cwmc'8h>oNc-=ch=u_c->=-_uc'8>_-o-8>}RER>u/o@->uR%RccccccccccuP=j;K;uKUoK98oo8PK8 KoUjK=oU's^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oUj}'RER2->u=R%!bSX"B"ERkauv@->uR%Rcccccccc'8>=oc9882c82_K`uf,fku_cmc`uf,fku_nRER=U=o1_R%R{uR%Rcccccccccc- c;;oUj=oU's-_/ctmc'8h>ocwcx^c3mcoUj=oU's2u>^cdRER']uR%bXSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8Pk8h>_cU==-j>Pu>ocu/kau==-8>cNoUj=oU's-_/ctmc'8h>ocwcxNc-=ch=u_c->=-_uc'8>_-o-8>}RER>u/o@->uR%Rcccccccccccc((cOuf8>_coLuc2U=oc8>uEc5h=ocj-vucU>cuaa8acPu==UjucU>_RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oUj}'RER2->u=R%!bV*"B"ERkauv@->uR%Rcccccccccc=UvuKk8=cmcoahuncccccccccccccc((c=UvucoLuc'ha=8ack8=-o-8>c9u28]RER=U=o1_R%R{uR%RcccccccckauvoUj=oU's-_/cmcoUj=oU's-_/nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%R,LucNkauvoUj=oU's-_/NcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oUj}'RER2->u=R%!bXx"B"ERkauv@->uR%Rcccccccc((c.Uvuc->_u/c 8ac]Lu>c=u2u'o-8>c-=c'U>'u22u_}RB +dR'8_uR%Rr[JJRER'haa@->uR%RccccccsuukKLu2kK 2Ujcmc9oKLu2k;'ha]->K=Uvuw3]K9h ua^nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN'ha]->K=UvuN}RER>u/o@->uR%RccccBcu2=ucdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oUj}'RER2->u=R%!JiJV"B"ERkauv@->uR%Rcccc- c;2KjK_8KoUjkauv-u]c&mcS^cdRER=U=o1_R%R{uR%RcccccckK-'cmc=UvuKkK-'ncc((cwr[xiRER']uR%[V*ER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R,LucNkK-'NcvUa-U92uc-=cU==-j>u_cvU2hu=co]-'uc=h''u==-vu2f}c\uaLUk=coL-=c-=cUcP-=oUsu}c{Lu'sc2->u=%cJiXXEc*SJb}RER>u/o@->uR%RcccccckK='=cmc=UvuKkK='=nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oUj}'RER2->u=R%!*SJbEJiXX"B"ERkauv@->uR%RcccccckK]=cmc=UvuKkK]=nRER=U=o1_R%R{uR%Rcc- c;+ouaPkkcmmcQg@@^cdRER']uR%[GSER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%RcN+couaPkkcmmcQg@@Nc-=cU2]Uf=c U2=u}RER>u/o@->uR%Rccccauoha>ncc((c,uaP->U2cLU=cU2auU_fc9uu>c_u=oa8fu_}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ouaP->U2}'RER2->u=R%!JVJ"B"B +dR'8_uR%Rr[bGRER'haa@->uR%Rcc- c;avw3=9K9h uacmmcQg@@^cdRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%JERPu==UjuR%RcNavw3=9K9h uacmmcQg@@Nc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccc((c@8'U2cN='a8229U'sNcKU ouaKcUho8'P_=}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ouaP->U2}'RER2->u=R%!JVV"B"B +dR'8_uR%Rr[JJRER'haa@->uR%Rcc_-'oK=uoKvUa;9h w39KvUa=ERER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RFuau uau>'->jc8 coLuc>h22ck8->ouacN9h NcP-jLocoUsuck2U'u}c,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cN9h K=uoKouaPKo-o2uNc h>'o-8>}c1>=ku'ocoLuc -a=ocUajhPu>o}c{Lu'sc2->u=%ciJVEci[b}RER>u/o@->uR%Rccccccccccccccc.,$,1{K{.,CK$.K.,C1QH;)RouaPKo-o2u)R^ERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ouaP->U2}'RER2->u=R%!iJVEi[b"B"ERkauv@->uR%RccuR%Rcccccccc9h 2u>ctmc=oa2u>;k^nRER']uR%VJXER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cN=oa2u>Nc h>'o-8>}c1>=ku'ocoLuc -a=ocUajhPu>o}RER>u/o@->uR%Rcccccccc'ha-ouPttnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(=oUoh=2->u}'RER2->u=R%!xVGS"B"ERkauv@->uR%Rcccccccc/=oa2'kf;9h KoPkctc9h 2u>EckEc,6\@^nRER=U=o1_R%R{uR%Rccccv-PK=>ka->o ;9h Ec$CC$eK.1W<;9h ^Ec)R2->ucY)Rc\C1_VbEc;->oVbKo^.?gC{1QHK@Qg6^nRER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LucP8_h28c9fcxc8kuaUo-8>c-=cPuU>->j2u==}c,Lucau=h2oc]-22cU2]Uf=c9uc:ua8}RER>u/o@->uR%RccccjUK'8>'Uo;jUkEc9h ^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ou=o->j}'RER2->u=R%!GS"B"ERkauv@->uR%Rcc- c;.?gC{1QHK@Qg6c3cS^cdRB +dR'8_uR%Rr[JJRER'haa@->uR%Rcccccccccppc;+2uU_uaK2u>c3cScZZc+ 2Uj=cmmc{?6K'->jc8 cUck8ou>o-U2c>h22ck8->ouacN 2Uj=N}RER>u/o@->uR%Rcccccccccppc=oUao\.;2>hPEcQg@Ec U2=u^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ou/o 8aPUo}'RER2->u=R%!bii"B"ERkauv@->uR%Rccauoha>c+=s-k]L-ou;koactc+2uU_uaK2u>^cmmcQg@RER=U=o1_R%R{uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;]kw3]K82_K'ha=8aK2>hPc&mcS^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(ou/o 8aPUo}'RER2->u=R%!X[x"B"ERkauv@->uR%Rcc- c;8Ukw3-=Kr1=hU2^cdRB dR'8_uR%RrxSbXRER'haa@->uR%Rcc->khow3->K _cmc.,F1QKT1@khow3->K _NcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oh-(->kho}'RER2->u=R%!xbS"B"B dR'8_uR%RrxSbbRER'haa@->uR%RccccccCOgTTkhow3auU_K=oauUP}9h uaEckoaEc2u>^cdRER']uR%X*bER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R@88kc9auUsc'8>_-o-8>=c_8c>8oc_uku>_c8>coLuc>hP9uac8 c-ouaUo-8>=}RER>u/o@->uR%Rcccccccc=-:uKoc'8>=hPu_cmc61Q;'8h>oEc2u>^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oh-(->kho}'RER2->u=R%!GbX"B"ERkauv@->uR%Rcccc- c;->khow3kU=ou^cdRB dR'8_uR%RrxSbbRER'haa@->uR%RccccCOgTTkhow3auU_K=oauUP}9h uaEckoaEc2u>^cdRER']uR%X*bER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R@88kc9auUsc'8>_-o-8>=c_8c>8oc_uku>_c8>coLuc>hP9uac8 c-ouaUo-8>=}RER>u/o@->uR%Rcccccc=-:uKoc'8>=hPu_cmcouaPsufKkh=LK9fou=;->khow3osEckoaEc61Q;'8h>oEc2u>^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(oh-(->kho}'RER2->u=R%!GVS"B"ERkauv@->uR%Rcccc((c\h=LcoLa8hjLc2-9ouaPsufc;oaU>=2Uou=co8c)Rysuf'8_u3)Rc=oa->j=Ecuo'}^}RB @@ -568,7 +568,6 @@ dR'8_uR%RrxSV*RER'haa@->uR%RccPuP=uo;h-K'9Ku/oEcSEc$CC$eK.1W<;h-K'9Ku/o^^nRER U2 dR'8_uR%RrxSV*RER'haa@->uR%RccPuP'kf;uvu>oK'9w3u/oK]-_juo=Ecu/oK]-_juo=Ec$CC$eK.1W<;uvu>oK'9w3u/oK]-_juo=^^nRER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LucP8_h28c9fcxc8kuaUo-8>c-=cPuU>->j2u==}c,Lucau=h2oc]-22cU2]Uf=c9uc:ua8}RER>u/o@->uR%Rcc- c;uvu>oK'9w3u/oK]-_juo=!sg16u==Uju="^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(h-}'RER2->u=R%!GJS"B"ERkauv@->uR%Rccuvu>oK'9w3'9cmc'9nRB dR'8_uR%RrxS[xRER'haa@->uR%Rcc- c;ja-_w3'8PkK->_u/c&mcS^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucNja-_w3'8PkK]-_oLNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%RccccP8vu_cmc;a8]c&mcja-_w3'8PkKa8]^cppc;'82c&mcja-_w3'8PkK'82^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(h-K'8Pk8=-o8a}'RER2->u=R%!xxSExSi"B"ERkauv@->uR%Rccja-_w3'8PkK]-_oLcmc]-_oLnRB dR'8_uR%RrxSJXRER'haa@->uR%Rcc'LUac++Uaj=cmc/PU228';;;=-:uKo^;JctcUaj'^^c+c=-:u8 ;'LUac+^^nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%xERPu==UjuR%R\8==-92uc8vua 28]}c{8>=-_uac'U=o->jc8kuaU>_=c8 coLucNJctcUaj'Nc8kuaUo8aco8coLucN=-:uKoNcofkuEc>8ocoLucau=h2o}RER>u/o@->uR%Rcc->ocUaj=K-_/cmcSnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(h-K'2-u>o}'RER2->u=R%!bV"B"ERkauv@->uR%RccvUa>hP9uaK,cu/-oK=oUoh=nRER=U=o1_R%R{uR%RccU==uao;2->u=K=-:ucymc@?QHK6$M^nRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN2->u=K=-:ucymcS/G @Nc-=cU2]Uf=coahu}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(vua=-8>}'RER2->u=R%!JGGb"B"ERkauv@->uR%Rcc=-:uKoc2->u=K=-:ucmc$CC$eK.1W<;2->u=^nRB dR'8_uR%Rr[bGRER'haa@->uR%Rcccc- c;;=-:uKo^hukw3huK=-:ucyc.1Wc-=cU2]Uf=coahu}RER>u/o@->uR%RccccccUaaUfcmc/PU228';=-:u8 ;'LUac+^c+c;=-:uKo^hukw3huK=-:u^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(h>_8}'RER2->u=R%!xSix"B"ERkauv@->uR%Rcc- c;hukw3huK=-:uc3cS^cdRB dR'8_uR%Rr[JJRER'haa@->uR%RccccUaaUf!-"cmc2->unRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacNUaaUfN}RER>u/o@->uR%RccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(h>_8}'RER2->u=R%!xxxx"B"ERkauv@->uR%RccccBRER=U=o1_R%R{uR%Rcccc- c;;=-:uKo^>hPKLuU_cyc.1Wc-=cU2]Uf=coahu}RER>u/o@->uR%RcccccchLkKoU92ucmc/PU228';;=-:uKo^>hPKLuU_c+c=-:u8 ;+hLkKoU92u^^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(h>_8}'RER2->u=R%!x[xG"B"ERkauv@->uR%Rcc- c;>hPKLuU_c3cS^cdRB @@ -582,24 +581,9 @@ dR'8_uR%RrxSJVRER'haa@->uR%Rcccccccc2u>ctmc'LUa2u>nRER']uR%xiSER U2=u$2UaPR% U2= dR'8_uR%RrxSJVRER'haa@->uR%Rcccccccccc2u>ctmc'LUa2u>nRER']uR%xiSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucN2u>NcvUa-U92uc-=c->'auPu>ou_c->coLuc288k}cg>_u ->u_c9uLUv-8ac]-22c8''hac->c'U=uc8 c=-j>u_c->oujuac8vua 28]}RER>u/o@->uR%Rcccccccccckctmc'LUa2u>nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(h=ua'P_}'RER2->u=R%!xxX["B"ER=U=o1_R%R{uR%Rcccccccc+~ttcmcN)RNnRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNN)RNNEcNNENNEcNNcNNEcNN)RNNc->c2->u=cxJxiEcxJJSEcxJJxEcxJJJ}RER>u/o@->uR%Rcccccccc+~ttcmcNENnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(h=ua'P_}'RER2->u=R%!xJxiExJJSExJJxExJJJ"B"ERkauv@->uR%RccccccccBRB dR'8_uR%Rr[J[RER'haa@->uR%Rcccccccc+~ttcmcN)RNnRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,Luc'8_uc'8>oU->=coLuc'822u'o-8>c8 c=-P-2Uac928's=}c{Lu'sc-ouP=cNN)RNNEcNNENNEcNNcNNEcNN)RNNc->c2->u=cxJbxEcxJbJEcxJb*EcxJbb}RER>u/o@->uR%Rcccccccc+~ttcmcNENnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(h=ua'P_}'RER2->u=R%!xJbxExJbJExJb*ExJbb"B"ERkauv@->uR%Rcccccc- c;-c&mcUaj'cwcx^cdRB +dR'8_uR%Rr[bGRER'haa@->uR%RccU==uao;2->u=K=-:ucymc@?QHK6$M^nRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN2->u=K=-:ucymcS/G @Nc-=cU2]Uf=coahu}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(vua=-8>}'RER2->u=R%!JGGb"B"ERkauv@->uR%Rcc=-:uKoc2->u=K=-:ucmc$CC$eK.1W<;2->u=^nRB dR'8_uR%RrxSbbRER'haa@->uR%RccCOgTTo^cdRER']uR%X*bER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R@88kc9auUsc'8>_-o-8>=c_8c>8oc_uku>_c8>coLuc>hP9uac8 c-ouaUo-8>=}RER>u/o@->uR%Rcccc'9;akoaEca'>o^nRERk8=-o-8>=R%!dR -2uR%Rpzp(ou=o(h>-o( -/ohau=(a9h ua}'RER2->u=R%!xS"B"ERkauv@->uR%RdRB dR'8_uR%RrxSbbRER'haa@->uR%RccCOgTTo^cdcc((cwrxSbbRER']uR%X*bER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%R@88kc9auUsc'8>_-o-8>=c_8c>8oc_uku>_c8>coLuc>hP9uac8 c-ouaUo-8>=}RER>u/o@->uR%Rcccc'9;]koaEc]'>o^nRERk8=-o-8>=R%!dR -2uR%Rpzp(ou=o(h>-o( -/ohau=(a9h ua}'RER2->u=R%!xX"B"ERkauv@->uR%RdRB -dR'8_uR%Rr[[SRER'haa@->uR%Rcc- c;>hPcmmcScppcu/k8>u>ocmmcS^cdRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R$>c8__ckau'-=uc'8PkUa-=8>%c>hPcmmcS}c1oN=cka89U92fc9uoouaco8ch=ucUc'8PkUa-=8>c]-oLc_u ->u_ckau'-=-8>%c U9=;$cwcO^cyc}RER>u/o@->uR%Rccccauoha>c>hPnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!x[J"B"ERkauv@->uR%RdRER=U=o1_R%R{uR%Rcccccccccc{I$CCu_coLuc=UPucvU2hu}RER>u/o@->uR%RccccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!*b["B"ERkauv@->uR%Rccccccccccu/kK=oUaocmcauo}2u>nRB -dR'8_uR%RrxSbXRER'haa@->uR%Rcccccc{I$CC1_u>o- -uaEc1.4?CFK?CK$g,?@?$F^nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNauo}ofkuNcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%Rccccccauo}_UoU}vUa}Uho828U_cmc;RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!bix"B"ERkauv@->uR%Rccccccauo}_UoU}vUa}='8kucmc;uR%Rcccccc{I$CC1_u>o- -uaEc1.4?CFK?CK$g,?@?$F^nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNauo}ofkuNcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%![S["B"ERkauv@->uR%Rccccccauo}_UoU}vUa}Uho828U_cmcoahunRB -dR'8_uR%Rr[GVRER'haa@->uR%Rcccc,`Q$CH.;s'8aau'oc 8aPUo}c{8>=-_uac'Lu's->jcoLuc=-/oLcU'ohU2cUajhPu>oc8 coLucN=>ka->o Nc h>'o-8>}c,LucU'ohU2cUajhPu>oc-=c8 coLuc_8h92ucofkuEc9hocU>cUajhPu>oc8 coLuc28>jc_8h92ucofkuc-=cau~h-au_}RER>u/o@->uR%Rcccccccccccc;->o^o8su>}_UoU}>hP}-=K 28UoERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!X*G"B"ERkauv@->uR%Rcccccccccccc;->o^o8su>}_UoU}vUa}Uho828U_^RER=U=o1_R%R{uR%RccccBcu2=uc- c;+'haK>8_uc&mcQg@@^cdRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN+c'haK>8_uc&mcQg@@Nc-=cU2]Uf=coahu}RER>u/o@->uR%RccccccsvK_a8k;U=oK=oU'sEcx^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!xS[i"B"ERkauv@->uR%Rccccccsv-Kkh=L;U=oK=oU'sEcZ;+'haK>8_u^w3>u/o^nRB -dR'8_uR%Rr[JJRER'haa@->uR%Rcc'8>=oc8_uK2v2cmc;;98kK>8_uw3ofkucmmcs'->jc8 coLuc>h22ck8->ouacN98kK>8_uNcP-jLocoUsuck2U'u}c,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cNv-P2Kku/kaKLU>_2uK98kNc h>'o-8>}c1>=ku'ocoLucoL-a_cUajhPu>o}c{Lu'sc2->u=%cxJVVEcJxiJ}RER>u/o@->uR%Rcccccccccccccccccccccccccccccccccccppc98kK>8_uw3ofkucmmcs=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!xJVVEJxiJ"B"ERkauv@->uR%RccU==uao;svK=-:u;+U=oK=oU's^^nRER=U=o1_R%R{uR%Rcccccccc.<@<{,KT1HgC8_uEc@UP9_UEc@UP9_U^nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN>8_uKN}RER>u/o@->uR%RccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!JJi*"B"ERkauv@->uR%RccccccccU==uao;2UP9_UK>8_uw3_UoU} -j}ofkuKjhu==u=}U228]K2UP9_U^nRER=U=o1_R%R{uR%Rccccccccu]Ko8kK>8_ucmc+>u]Ko8kK>8_uKknRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN>u]Ko8kK>8_uKkN}RER>u/o@->uR%Rcccccccc=]-o'Lc;>u]Ko8kK>8_uw3ofku^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!Jb[X"B"ERkauv@->uR%RcccccccccccccccccccccccccZZc;+>u]Ko8kK>8_uKk^w3ofkuc&mcsuR%Rccccccccu]Ko8kK>8_ucmc+>u]Ko8kK>8_uKknRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN>u]Ko8kK>8_uKkN}RER>u/o@->uR%Rcccccccc=]-o'Lc;>u]Ko8kK>8_uw3ofku^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!J[VV"B"ERkauv@->uR%RcccccccccccccccccccccccccZZc;+>u]Ko8kK>8_uKk^w3ofkuc&mcsuR%Rcccccccc.<@<{,KT1HgC8_uEc@UP9_UEc@UP9_U^nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN>8_uKN}RER>u/o@->uR%RccccccccQ<4KQ?F8_uEcs=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!JVXX"B"ERkauv@->uR%RccccccccU==uao;;+svK2U=o;U=oK=oU's^^cmmc2UP9_UK>8_u^nRER=U=o1_R%R{uR%Rcccccccc- c;2UP9_UK>8_uw3'L-2_au>cmmcQg@@^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN2UP9_UK>8_uN}RER>u/o@->uR%RccccccccccU==uao;]U>oK>8_ucmmcs=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!JViS"B"ERkauv@->uR%RccccccccQ<4KQ?F8_uEcsuR%RccccccccccU==uao;&-=Koua>Uaf^nRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN&-=Koua>UafNc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccccccccc9auUsnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!J*VX"B"ERkauv@->uR%Rcccccccccc((c'U>K9uKoua>Uafcmc U2=unRB -dR'8_uR%Rr[bGRER'haa@->uR%RccccccccccU==uao;]U>oK>8_ucmmcscN]U>oK>8_ucmmcsu/o@->uR%RccccccccccU=j>K2uvu2cmcsvK=-:u;U=oK=oU's^cwcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!JVVX"B"ERkauv@->uR%RccccccccccccZZc&koK-=KU==-j>Pu>o;svK2U=o;koK=oU's^^^cdRB -dR'8_uR%RrxS*GRER'haa@->uR%RccccccccU98ao;^nRER']uR%VixER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,]8c8acP8auc'U=uw9aU>'Lu=ckua 8aPcoLuc=UPucU'o-8>=}c{Lu'sc2->u=%c*SJJEc*S*[RER>u/o@->uR%Rcccccc'U=ucsoujua%RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!*SJJE*S*["B"ERkauv@->uR%Rcccccccc((coL-=}RB -dR'8_uR%RrxSS*RER'haa@->uR%R|_u ->uc1.{,C@;='LUa^c;='LUacycNcN^RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cN1.{,C@Nc-=cUc_U>jua8h=cu/kau==-8>}c,LuckUaUPuouacN='LUaNcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%Rcccc{I$CCvU2-_Ec1.{,C@^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!JXG"B"ERkauv@->uR%Rcc'U=uc{oa2KW%RB dR'8_uR%Rr[SxRER'haa@->uR%RccccT?CK$@@K41QF?4.K1QK,$O;]kJEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccccc- c;]kJw3]KkKkv]^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(]->_8]}'RER2->u=R%!JXx"B"ERkauv@->uR%Rcccc]->K,c+]kcmcQg@@nRB dR'8_uR%RrxS[xRER'haa@->uR%Rccccccccppc;'haKo8k2->ucmmc2U=oKo8k2->ucZZc]kw3]K=s-k'82cyc2U=oK=s-k'82^^cdRER']uR%G[bER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R{8>=-_uac'Lu's->jc 8acP-=ka->o=}c1oN=ck8==-92ucoLUocoLucN2U=oK98o2->uNc=L8h2_c9uc'Lu'su_cLuau}RER>u/o@->uR%Rcccccc- c;2U=oKo8k2->uc3cScZZc'haK98o2->ucyc2U=oKo8k2->u^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(]->_8]}'RER2->u=R%!xSVJExSVS"B"ERkauv@->uR%Rcccc- c;'haKo8k2->ucyc2U=oKo8k2->uRB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kcmmc]->^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(]->_8]}'RER2->u=R%!xG[J"B"B @@ -619,3 +603,19 @@ dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U dR'8_uR%Rr[bGRER'haa@->uR%Rcccccc- c;]kw3]KLu-jLoK->>uac&mckauvKLu-jLo^cdcc((cwr[bGRER']uR%[GSER U2=u$2UaPR%oahuER2uvu2R%JERPu==UjuR%RcN]kw3]KLu-jLoK->>uac&mckauvKLu-jLoNc-=cU2]Uf=c U2=u}RER>u/o@->uR%Rccccccccauoha>ncc((cCu'ha=-vuc'U22cU2auU_fc'LU>ju_coLuc=-:uEc9U-2c8ho}RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(]->_8]}'RER2->u=R%!VGxV"B"ERkauv@->uR%RccccccBRB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;=uoK]->9UaK]->;]kEcPUsuKa88PEcoahu^cmmcT$1@^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(]->_8]}'RER2->u=R%!GxiJ"B"ERkauv@->uR%RdRB dR'8_uR%Rr[SxRER'haa@->uR%RccT?CK$@@K41QF?4.K1QK,$O;]kEc'haoU9^cdRER']uR%[GxER U2=u$2UaPR%oahuER2uvu2R%xERPu==UjuR%R,LuaucUauc-_u>o-'U2c=h9wu/kau==-8>=co8coLuc2u ocU>_co8coLuca-jLoc8 coLucNmmNc8kuaUo8a%c;'haoU9^cmmc'haoU9RER>u/o@->uR%Rcccc- c;]kw3]K9h uac&mcQg@@RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(]->_8]}'RER2->u=R%!GJVX"B"ERkauv@->uR%Rcc->oc'8h>ocmcSnRB +dR'8_uR%Rr[[SRER'haa@->uR%Rcc- c;>hPcmmcScppcu/k8>u>ocmmcS^cdRER']uR%VXJER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R$>c8__ckau'-=uc'8PkUa-=8>%c>hPcmmcS}c1oN=cka89U92fc9uoouaco8ch=ucUc'8PkUa-=8>c]-oLc_u ->u_ckau'-=-8>%c U9=;$cwcO^cyc}RER>u/o@->uR%Rccccauoha>c>hPnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!x[J"B"ERkauv@->uR%RdRER=U=o1_R%R{uR%Rcccccccccc{I$CCu_coLuc=UPucvU2hu}RER>u/o@->uR%RccccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!*b["B"ERkauv@->uR%Rccccccccccu/kK=oUaocmcauo}2u>nRB +dR'8_uR%RrxSbXRER'haa@->uR%Rcccccc{I$CC1_u>o- -uaEc1.4?CFK?CK$g,?@?$F^nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNauo}ofkuNcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%Rccccccauo}_UoU}vUa}Uho828U_cmc;RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!bix"B"ERkauv@->uR%Rccccccauo}_UoU}vUa}='8kucmc;uR%Rcccccc{I$CC1_u>o- -uaEc1.4?CFK?CK$g,?@?$F^nRER']uR%xxVbER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucNauo}ofkuNcvUa-U92uc]U=cU==-j>u_coLuc=UPucvU2hu}RER>u/o@->uR%RccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%![S["B"ERkauv@->uR%Rccccccauo}_UoU}vUa}Uho828U_cmcoahunRB +dR'8_uR%Rr[GVRER'haa@->uR%Rcccc,`Q$CH.;s'8aau'oc 8aPUo}c{8>=-_uac'Lu's->jcoLuc=-/oLcU'ohU2cUajhPu>oc8 coLucN=>ka->o Nc h>'o-8>}c,LucU'ohU2cUajhPu>oc-=c8 coLuc_8h92ucofkuEc9hocU>cUajhPu>oc8 coLuc28>jc_8h92ucofkuc-=cau~h-au_}RER>u/o@->uR%Rcccccccccccc;->o^o8su>}_UoU}>hP}-=K 28UoERERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!X*G"B"ERkauv@->uR%Rcccccccccccc;->o^o8su>}_UoU}vUa}Uho828U_^RER=U=o1_R%R{uR%RccccBcu2=uc- c;+'haK>8_uc&mcQg@@^cdRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN+c'haK>8_uc&mcQg@@Nc-=cU2]Uf=coahu}RER>u/o@->uR%RccccccsvK_a8k;U=oK=oU'sEcx^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!xS[i"B"ERkauv@->uR%Rccccccsv-Kkh=L;U=oK=oU'sEcZ;+'haK>8_u^w3>u/o^nRB +dR'8_uR%Rr[JJRER'haa@->uR%Rcc'8>=oc8_uK2v2cmc;;98kK>8_uw3ofkucmmcs'->jc8 coLuc>h22ck8->ouacN98kK>8_uNcP-jLocoUsuck2U'u}c,Luck8ou>o-U2c>h22ck8->ouac-=ckU==u_c->o8cNv-P2Kku/kaKLU>_2uK98kNc h>'o-8>}c1>=ku'ocoLucoL-a_cUajhPu>o}c{Lu'sc2->u=%cxJVVEcJxiJ}RER>u/o@->uR%Rcccccccccccccccccccccccccccccccccccppc98kK>8_uw3ofkucmmcs=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!xJVVEJxiJ"B"ERkauv@->uR%RccU==uao;svK=-:u;+U=oK=oU's^^nRER=U=o1_R%R{uR%Rcccccccc.<@<{,KT1HgC8_uEc@UP9_UEc@UP9_U^nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN>8_uKN}RER>u/o@->uR%RccccccBRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!JJi*"B"ERkauv@->uR%RccccccccU==uao;2UP9_UK>8_uw3_UoU} -j}ofkuKjhu==u=}U228]K2UP9_U^nRER=U=o1_R%R{uR%Rccccccccu]Ko8kK>8_ucmc+>u]Ko8kK>8_uKknRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN>u]Ko8kK>8_uKkN}RER>u/o@->uR%Rcccccccc=]-o'Lc;>u]Ko8kK>8_uw3ofku^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!Jb[X"B"ERkauv@->uR%RcccccccccccccccccccccccccZZc;+>u]Ko8kK>8_uKk^w3ofkuc&mcsuR%Rccccccccu]Ko8kK>8_ucmc+>u]Ko8kK>8_uKknRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN>u]Ko8kK>8_uKkN}RER>u/o@->uR%Rcccccccc=]-o'Lc;>u]Ko8kK>8_uw3ofku^cdRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!J[VV"B"ERkauv@->uR%RcccccccccccccccccccccccccZZc;+>u]Ko8kK>8_uKk^w3ofkuc&mcsuR%Rcccccccc.<@<{,KT1HgC8_uEc@UP9_UEc@UP9_U^nRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN>8_uKN}RER>u/o@->uR%RccccccccQ<4KQ?F8_uEcs=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!JVXX"B"ERkauv@->uR%RccccccccU==uao;;+svK2U=o;U=oK=oU's^^cmmc2UP9_UK>8_u^nRER=U=o1_R%R{uR%Rcccccccc- c;2UP9_UK>8_uw3'L-2_au>cmmcQg@@^cdRER']uR%ViSER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LuaucP-jLoc9uc_uau uau>'->jc8 cUck8ou>o-U2c>h22ck8->ouacN2UP9_UK>8_uN}RER>u/o@->uR%RccccccccccU==uao;]U>oK>8_ucmmcs=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!JViS"B"ERkauv@->uR%RccccccccQ<4KQ?F8_uEcsuR%RccccccccccU==uao;&-=Koua>Uaf^nRER']uR%[GxER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%RcN&-=Koua>UafNc-=cU2]Uf=coahu}RER>u/o@->uR%Rcccccccccc9auUsnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!J*VX"B"ERkauv@->uR%Rcccccccccc((c'U>K9uKoua>Uafcmc U2=unRB +dR'8_uR%Rr[bGRER'haa@->uR%RccccccccccU==uao;]U>oK>8_ucmmcscN]U>oK>8_ucmmcsu/o@->uR%RccccccccccU=j>K2uvu2cmcsvK=-:u;U=oK=oU's^cwcxnRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!JVVX"B"ERkauv@->uR%RccccccccccccZZc&koK-=KU==-j>Pu>o;svK2U=o;koK=oU's^^^cdRB +dR'8_uR%RrxS*GRER'haa@->uR%RccccccccU98ao;^nRER']uR%VixER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,]8c8acP8auc'U=uw9aU>'Lu=ckua 8aPcoLuc=UPucU'o-8>=}c{Lu'sc2->u=%c*SJJEc*S*[RER>u/o@->uR%Rcccccc'U=ucsoujua%RERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!*SJJE*S*["B"ERkauv@->uR%Rcccccccc((coL-=}RB +dR'8_uR%RrxSS*RER'haa@->uR%R|_u ->uc1.{,C@;='LUa^c;='LUacycNcN^RER U2=u$2UaPR% U2=uER2uvu2R%*ERPu==UjuR%R,LucPU'a8cN1.{,C@Nc-=cUc_U>jua8h=cu/kau==-8>}c,LuckUaUPuouacN='LUaNcPh=oc9uc=haa8h>_u_c9fckUau>oLu=u=}RER>u/o@->uR%Rcccc{I$CCvU2-_Ec1.{,C@^nRERk8=-o-8>=R%!dR -2uR%Rpzp(=a'(>v-P(v-P2(kUa=ua(u/kau==-8>=}'RER2->u=R%!JXG"B"ERkauv@->uR%Rcc'U=uc{oa2KW%RB diff --git a/reports/pvs/PVS-studio.tsk b/reports/pvs/PVS-studio.tsk index 380ca9832f33..e39858b43dc4 100644 --- a/reports/pvs/PVS-studio.tsk +++ b/reports/pvs/PVS-studio.tsk @@ -3,7 +3,7 @@ pvs-studio.com/en/docs/warnings/ 1 err Help: The documentation for all analyzer ./src/mpack/mpack_core.c 31 warn V1071 Consider inspecting the 'mpack_w1' function. The return value is not always used. Total calls: 48, discarded results: 5. ./src/mpack/rpc.c 248 warn V1086 A call of the 'memcpy' function will lead to underflow of the buffer 'dst'. ./src/mpack/rpc.c 248 warn V1086 A call of the 'memcpy' function will lead to underflow of the buffer 'src'. -./src/nvim/marktree.h 97 err V629 Consider inspecting the 'id << 1' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. +./src/nvim/marktree.h 99 err V629 Consider inspecting the 'id << 1' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. ./src/nvim/api/private/helpers.c 810 warn V601 Pointer is implicitly cast to an integer type. Inspect the second argument. ./src/nvim/api/ui.c 80 err V564 The '|' operator is applied to bool type value. You've probably forgotten to include parentheses or intended to use the '||' operator. ./src/nvim/base64.c 1 err V009 To use free version of PVS-Studio, source code files are required to start with a special comment. @@ -18,8 +18,8 @@ pvs-studio.com/en/docs/warnings/ 1 err Help: The documentation for all analyzer ./src/nvim/ex_getln.c 3103 err V595 The 'colored_ccline->cmdbuff' pointer was utilized before it was verified against nullptr. Check lines: 3103, 3109. ./src/nvim/fileio.c 3336 warn V557 Array overrun is possible. The value of 'strlen(tmp) - strlen(user)' index could reach 18446744073709551615. ./src/nvim/help.c 1012 err V781 The value of the 'len' index is checked after it was used. Perhaps there is a mistake in program logic. -./src/nvim/lua/base64.c 1 err V009 To use free version of PVS-Studio, source code files are required to start with a special comment. ./src/nvim/insexpand.c 2810 warn V1048 The 'ret' variable was assigned the same value. +./src/nvim/lua/base64.c 1 err V009 To use free version of PVS-Studio, source code files are required to start with a special comment. ./src/nvim/log.c 183 warn V601 Pointer is implicitly cast to an integer type. Inspect the second argument. ./src/nvim/log.c 286 warn V601 Pointer is implicitly cast to an integer type. Inspect the second argument. ./src/nvim/lua/stdlib.c 663 warn V601 Pointer is implicitly cast to an integer type. Inspect the second argument. diff --git a/reports/pvs/PVS-studio.xml b/reports/pvs/PVS-studio.xml index 3c883e99f4a6..014b85169e40 100644 --- a/reports/pvs/PVS-studio.xml +++ b/reports/pvs/PVS-studio.xml @@ -44,7 +44,7 @@ error V629 Consider inspecting the 'id << 1' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. - 97 + 99 ./src/nvim/marktree.h CWE-190 CERT-INT00-C @@ -194,14 +194,6 @@ CWE-20 CERT-API00-C - - 0 - error - V009 - To use free version of PVS-Studio, source code files are required to start with a special comment. - 1 - ./src/nvim/lua/base64.c - 2 warning @@ -211,6 +203,14 @@ ./src/nvim/insexpand.c CWE-1164 + + 0 + error + V009 + To use free version of PVS-Studio, source code files are required to start with a special comment. + 1 + ./src/nvim/lua/base64.c + 2 warning diff --git a/reports/pvs/index.html b/reports/pvs/index.html index 767625e5ad21..2b21dae452ce 100644 --- a/reports/pvs/index.html +++ b/reports/pvs/index.html @@ -83,7 +83,7 @@

PVS-studio analysis results

./src/mpack/mpack_core.c:31:1: warning: V1071 Consider inspecting the 'mpack_w1' function. The return value is not always used. Total calls: 48, discarded results: 5. ./src/mpack/rpc.c:248:1: warning: V1086 A call of the 'memcpy' function will lead to underflow of the buffer 'dst'. ./src/mpack/rpc.c:248:1: warning: V1086 A call of the 'memcpy' function will lead to underflow of the buffer 'src'. -./src/nvim/marktree.h:97:1: error: V629 Consider inspecting the 'id << 1' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. +./src/nvim/marktree.h:99:1: error: V629 Consider inspecting the 'id << 1' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. ./src/nvim/api/private/helpers.c:810:1: warning: V601 Pointer is implicitly cast to an integer type. Inspect the second argument. ./src/nvim/api/ui.c:80:1: error: V564 The '|' operator is applied to bool type value. You've probably forgotten to include parentheses or intended to use the '||' operator. ./src/nvim/base64.c:1:1: error: V009 To use free version of PVS-Studio, source code files are required to start with a special comment. @@ -98,8 +98,8 @@

PVS-studio analysis results

./src/nvim/ex_getln.c:3103:1: error: V595 The 'colored_ccline->cmdbuff' pointer was utilized before it was verified against nullptr. Check lines: 3103, 3109. ./src/nvim/fileio.c:3336:1: warning: V557 Array overrun is possible. The value of 'strlen(tmp) - strlen(user)' index could reach 18446744073709551615. ./src/nvim/help.c:1012:1: error: V781 The value of the 'len' index is checked after it was used. Perhaps there is a mistake in program logic. -./src/nvim/lua/base64.c:1:1: error: V009 To use free version of PVS-Studio, source code files are required to start with a special comment. ./src/nvim/insexpand.c:2810:1: warning: V1048 The 'ret' variable was assigned the same value. +./src/nvim/lua/base64.c:1:1: error: V009 To use free version of PVS-Studio, source code files are required to start with a special comment. ./src/nvim/log.c:183:1: warning: V601 Pointer is implicitly cast to an integer type. Inspect the second argument. ./src/nvim/log.c:286:1: warning: V601 Pointer is implicitly cast to an integer type. Inspect the second argument. ./src/nvim/lua/stdlib.c:663:1: warning: V601 Pointer is implicitly cast to an integer type. Inspect the second argument. @@ -130,7 +130,7 @@

PVS-studio analysis results

Date:Wed Nov 8 05:23:29 2023
Date:Thu Nov 9 05:28:56 2023
PVS-Studio Version:7.27.75620.346
Command Line:plog-converter PVS-studio.log --srcRoot . --excludedCodes V002,V011,V1028,V1042,V1051,V1074 --renderTypes fullhtml --output PVS-studio.html.d
Total Warnings (GA):45
General Analysismarktree.h:97marktree.h:99 High V629 Consider inspecting the 'id << 1' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. V781 The value of the 'len' index is checked after it was used. Perhaps there is a mistake in program logic.
Fail/Infobase64.c:1V009To use free version of PVS-Studio, source code files are required to start with a special comment.
General Analysisinsexpand.c:2810insexpand.c:2810 Medium V1048 The 'ret' variable was assigned the same value.
Fail/Infobase64.c:1V009To use free version of PVS-Studio, source code files are required to start with a special comment.
General Analysis log.c:183