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
- 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
@@ -78,7 +78,7 @@ PVS-Studio Analysis Results
General Analysis
- marktree.h:97
+ marktree.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.
@@ -181,20 +181,20 @@ PVS-Studio Analysis Results
V781
The value of the 'len' index is checked after it was used. Perhaps there is a mistake in program logic.
-
- Fail/Info
- base64.c:1
-
- V009
- To use free version of PVS-Studio, source code files are required to start with a special comment.
-
General Analysis
- insexpand.c:2810
+ insexpand.c:2810
Medium
V1048
The 'ret' variable was assigned the same value.
+
+ Fail/Info
+ base64.c:1
+
+ V009
+ To use free version of PVS-Studio, source code files are required to start with a special comment.
+
General Analysis
log.c:183
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{