From 8e76e4f88c0dde1e4c29296bbc5a4f439d10b1b0 Mon Sep 17 00:00:00 2001 From: Funda Wang Date: Mon, 20 Oct 2025 13:49:49 +0800 Subject: [PATCH] 3.9 --- ...k-the-right-bits-of-an-ibpkeycon-rul.patch | 36 --- ...icy-Fix-MLS-users-in-optional-blocks.patch | 173 ------------- ...d-leak-of-identifier-on-required-att.patch | 45 ---- ...avoid-memory-leaks-on-redeclarations.patch | 229 ----------------- ...k-allocation-and-free-memory-on-erro.patch | 63 ----- ...licy-check-identifier-before-copying.patch | 55 ---- ...heckpolicy-clean-expression-on-error.patch | 237 ------------------ ...kpolicy-cleanup-identifiers-on-error.patch | 196 --------------- ...icy-cleanup-resources-on-parse-error.patch | 91 ------- ...ee-complete-role_allow_rule-on-error.patch | 40 --- ...rt-checkpolicy-free-ebitmap-on-error.patch | 57 ----- ...ee-identifiers-on-invalid-typebounds.patch | 39 --- ...eckpolicy-free-temporary-bounds-type.patch | 55 ---- ...checkpolicy-handle-unprintable-token.patch | 50 ---- ...policy-include-ctype.h-for-isprint-3.patch | 46 ---- ...-return-YYerror-on-invalid-character.patch | 36 --- ...licy-use-YYerror-only-when-available.patch | 59 ----- checkpolicy-3.5.tar.gz | Bin 69904 -> 0 bytes checkpolicy-3.9.tar.gz | Bin 0 -> 77103 bytes checkpolicy.spec | 49 +--- checkpolicy.yaml | 2 +- 21 files changed, 13 insertions(+), 1545 deletions(-) delete mode 100644 backport-checkpolicy-Check-the-right-bits-of-an-ibpkeycon-rul.patch delete mode 100644 backport-checkpolicy-Fix-MLS-users-in-optional-blocks.patch delete mode 100644 backport-checkpolicy-avoid-leak-of-identifier-on-required-att.patch delete mode 100644 backport-checkpolicy-avoid-memory-leaks-on-redeclarations.patch delete mode 100644 backport-checkpolicy-check-allocation-and-free-memory-on-erro.patch delete mode 100644 backport-checkpolicy-check-identifier-before-copying.patch delete mode 100644 backport-checkpolicy-clean-expression-on-error.patch delete mode 100644 backport-checkpolicy-cleanup-identifiers-on-error.patch delete mode 100644 backport-checkpolicy-cleanup-resources-on-parse-error.patch delete mode 100644 backport-checkpolicy-free-complete-role_allow_rule-on-error.patch delete mode 100644 backport-checkpolicy-free-ebitmap-on-error.patch delete mode 100644 backport-checkpolicy-free-identifiers-on-invalid-typebounds.patch delete mode 100644 backport-checkpolicy-free-temporary-bounds-type.patch delete mode 100644 backport-checkpolicy-handle-unprintable-token.patch delete mode 100644 backport-checkpolicy-include-ctype.h-for-isprint-3.patch delete mode 100644 backport-checkpolicy-return-YYerror-on-invalid-character.patch delete mode 100644 backport-checkpolicy-use-YYerror-only-when-available.patch delete mode 100644 checkpolicy-3.5.tar.gz create mode 100644 checkpolicy-3.9.tar.gz diff --git a/backport-checkpolicy-Check-the-right-bits-of-an-ibpkeycon-rul.patch b/backport-checkpolicy-Check-the-right-bits-of-an-ibpkeycon-rul.patch deleted file mode 100644 index 45969c6..0000000 --- a/backport-checkpolicy-Check-the-right-bits-of-an-ibpkeycon-rul.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 84a33fb96b4876a49bfb739b9a2160d88e015209 Mon Sep 17 00:00:00 2001 -From: James Carter -Date: Mon, 8 Jul 2024 12:50:32 -0400 -Subject: [PATCH] checkpolicy: Check the right bits of an ibpkeycon rule subnet - prefix - -The lower 64 bits of the subnet prefix for an ibpkeycon rule should -all be 0's. Unfortunately the check uses the s6_addr macro which refers -to the 16 entry array of 8-bit values in the union and does not refer -to the correct bits. - -Use the s6_addr32 macro instead which refers to the 4 entry array of -32-bit values in the union and refers to the lower 64 bits. - -Signed-off-by: James Carter -Acked-by: Stephen Smalley ---- - policy_define.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/policy_define.c b/policy_define.c -index 4931f23d..bfeda86b 100644 ---- a/policy_define.c -+++ b/policy_define.c -@@ -5148,7 +5148,7 @@ int define_ibpkey_context(unsigned int low, unsigned int high) - goto out; - } - -- if (subnet_prefix.s6_addr[2] || subnet_prefix.s6_addr[3]) { -+ if (subnet_prefix.s6_addr32[2] || subnet_prefix.s6_addr32[3]) { - yyerror("subnet prefix should be 0's in the low order 64 bits."); - rc = -1; - goto out; --- -2.33.0 - diff --git a/backport-checkpolicy-Fix-MLS-users-in-optional-blocks.patch b/backport-checkpolicy-Fix-MLS-users-in-optional-blocks.patch deleted file mode 100644 index 9e0edf9..0000000 --- a/backport-checkpolicy-Fix-MLS-users-in-optional-blocks.patch +++ /dev/null @@ -1,173 +0,0 @@ -From 6f2b689f63ec7c3fe51ee420d0046a870bd5f496 Mon Sep 17 00:00:00 2001 -From: James Carter -Date: Wed, 28 Aug 2024 10:29:44 -0400 -Subject: [PATCH] checkpolicy: Fix MLS users in optional blocks - -When a user is created in an optional block, a user datum is added -to both the avrule_decl's symtab and the policydb's symtab, but -the semantic MLS information is only added to the avrule_decl's -user datum. This causes an error to occur during policy expansion -when user_copy_callback() is called. If this error did not occur -then the policydb's user datum would be written without any MLS -info and the policy would fail validation when read later. - -When creating a user datum, search for a user datum with the same -key in the policydb's symtab. If that datum has no MLS information, -then copy the MLS information from the avrule_decl's datum. If it -does, then compare the default level, low level, and high level -sensitivities and give an error if they do not match. There is not -enough information to expand the categories for the high and low -levels, so merge the semantic categories. If the two category sets -are not equal an error will occur during the expansion phase. - -A minimum policy to demonstrate the bug: -class CLASS1 -sid kernel -class CLASS1 { PERM1 } -sensitivity SENS1; -dominance { SENS1 } -level SENS1; -mlsconstrain CLASS1 { PERM1 } ((h1 dom h2) and (l1 domby h1)); -type TYPE1; -allow TYPE1 self : CLASS1 PERM1; -role ROLE1; -role ROLE1 types TYPE1; -optional { - require { - role ROLE1; - } - user USER2 roles ROLE1 level SENS1 range SENS1; -} -user USER1 roles ROLE1 level SENS1 range SENS1; -sid kernel USER1:ROLE1:TYPE1:SENS1 - -Signed-off-by: James Carter ---- - policy_define.c | 72 ++++++++++++++++++++++++++++++++++++- - 1 file changed, 71 insertions(+), 1 deletion(-) - -diff --git a/policy_define.c b/policy_define.c -index f8a10154..af30da90 100644 ---- a/policy_define.c -+++ b/policy_define.c -@@ -4287,6 +4287,50 @@ static int parse_categories(char *id, level_datum_t * levdatum, ebitmap_t * cats - return 0; - } - -+static int mls_semantic_cats_merge(mls_semantic_cat_t ** dst, -+ const mls_semantic_cat_t * src) -+{ -+ mls_semantic_cat_t *new; -+ -+ while (src) { -+ new = (mls_semantic_cat_t *) malloc(sizeof(mls_semantic_cat_t)); -+ if (!new) -+ return -1; -+ -+ mls_semantic_cat_init(new); -+ new->low = src->low; -+ new->high = src->high; -+ new->next = *dst; -+ *dst = new; -+ -+ src = src->next; -+ } -+ -+ return 0; -+} -+ -+static int mls_add_or_check_level(mls_semantic_level_t *dst, const mls_semantic_level_t *src) -+{ -+ if (!dst->sens) { -+ if (mls_semantic_level_cpy(dst, src) < 0) { -+ yyerror("out of memory"); -+ return -1; -+ } -+ } else { -+ if (dst->sens != src->sens) { -+ return -1; -+ } -+ /* Duplicate cats won't cause problems, but different cats will -+ * result in an error during expansion */ -+ if (mls_semantic_cats_merge(&dst->cat, src->cat) < 0) { -+ yyerror("out of memory"); -+ return -1; -+ } -+ } -+ -+ return 0; -+} -+ - static int parse_semantic_categories(char *id, level_datum_t * levdatum __attribute__ ((unused)), - mls_semantic_cat_t ** cats) - { -@@ -4345,7 +4389,7 @@ static int parse_semantic_categories(char *id, level_datum_t * levdatum __attrib - int define_user(void) - { - char *id; -- user_datum_t *usrdatum; -+ user_datum_t *usrdatum, *usr_global; - level_datum_t *levdatum; - int l; - -@@ -4370,10 +4414,16 @@ int define_user(void) - return 0; - } - -+ id = strdup(queue_head(id_queue)); -+ - if ((usrdatum = declare_user()) == NULL) { -+ free(id); - return -1; - } - -+ usr_global = hashtab_search(policydbp->p_users.table, (hashtab_key_t) id); -+ free(id); -+ - while ((id = queue_remove(id_queue))) { - if (set_user_roles(&usrdatum->roles, id)) - continue; -@@ -4400,6 +4450,7 @@ int define_user(void) - usrdatum->dfltlevel.sens = levdatum->level->sens; - - while ((id = queue_remove(id_queue))) { -+ /* This will add to any already existing categories */ - if (parse_semantic_categories(id, levdatum, - &usrdatum->dfltlevel.cat)) { - free(id); -@@ -4425,6 +4476,7 @@ int define_user(void) - usrdatum->range.level[l].sens = levdatum->level->sens; - - while ((id = queue_remove(id_queue))) { -+ /* This will add to any already existing categories */ - if (parse_semantic_categories(id, levdatum, - &usrdatum->range.level[l].cat)) { - free(id); -@@ -4445,6 +4497,24 @@ int define_user(void) - return -1; - } - } -+ -+ if (usr_global && usr_global != usrdatum) { -+ if (mls_add_or_check_level(&usr_global->dfltlevel, -+ &usrdatum->dfltlevel)) { -+ yyerror("Problem with user default level"); -+ return -1; -+ } -+ if (mls_add_or_check_level(&usr_global->range.level[0], -+ &usrdatum->range.level[0])) { -+ yyerror("Problem with user low level"); -+ return -1; -+ } -+ if (mls_add_or_check_level(&usr_global->range.level[1], -+ &usrdatum->range.level[1])) { -+ yyerror("Problem with user high level"); -+ return -1; -+ } -+ } - } - return 0; - } --- -2.33.0 - diff --git a/backport-checkpolicy-avoid-leak-of-identifier-on-required-att.patch b/backport-checkpolicy-avoid-leak-of-identifier-on-required-att.patch deleted file mode 100644 index b241b9c..0000000 --- a/backport-checkpolicy-avoid-leak-of-identifier-on-required-att.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 77747a36a9afd4b9e27af608301487b44d681b4d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Wed, 6 Nov 2024 11:49:06 +0100 -Subject: [PATCH] checkpolicy: avoid leak of identifier on required attribute -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Example policy generated by fuzzer: - - class s - sid k - class s { i } - optional{ - require{ - attribute i; - } - } - type m; - typealias m alias i; - - typeai - -Reported-by: oss-fuzz (issue 377576480) -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - policy_define.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/policy_define.c b/policy_define.c -index dc404530..9ae8c4d4 100644 ---- a/policy_define.c -+++ b/policy_define.c -@@ -1287,6 +1287,7 @@ static int add_aliases_to_type(type_datum_t * type) - aliasdatum->primary = type->s.value; - aliasdatum->flavor = TYPE_ALIAS; - -+ free(id); - break; - } - default:{ --- -2.33.0 - diff --git a/backport-checkpolicy-avoid-memory-leaks-on-redeclarations.patch b/backport-checkpolicy-avoid-memory-leaks-on-redeclarations.patch deleted file mode 100644 index b67022f..0000000 --- a/backport-checkpolicy-avoid-memory-leaks-on-redeclarations.patch +++ /dev/null @@ -1,229 +0,0 @@ -From beca1ee16b291e1556bc905498cc814898edc07d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Tue, 5 Nov 2024 22:06:18 +0100 -Subject: [PATCH] checkpolicy: avoid memory leaks on redeclarations -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If declare_symbol() returns 1 the id and the datum are already defined -and not consumed by the function, so it they must be free'd by the -caller. - -Example policy (generated by fuzzer): - - class s sid e class s{i}optional{require{bool K;}bool K true; - -Reported-by: oss-fuzz (issue 377544445) -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - module_compiler.c | 2 +- - module_compiler.h | 2 +- - policy_define.c | 72 +++++++++++++++++++++++------------ - 3 files changed, 49 insertions(+), 27 deletions(-) - -diff --git a/module_compiler.c b/module_compiler.c -index 4efd77bf..3a7ad1bb 100644 ---- a/module_compiler.c -+++ b/module_compiler.c -@@ -196,7 +196,7 @@ static int create_symbol(uint32_t symbol_type, hashtab_key_t key, hashtab_datum_ - * not be restricted pointers. */ - int declare_symbol(uint32_t symbol_type, - hashtab_key_t key, hashtab_datum_t datum, -- uint32_t * dest_value, uint32_t * datum_value) -+ uint32_t * dest_value, const uint32_t * datum_value) - { - avrule_decl_t *decl = stack_top->decl; - int ret = create_symbol(symbol_type, key, datum, dest_value, SCOPE_DECL); -diff --git a/module_compiler.h b/module_compiler.h -index e43bc6c0..2fe3455d 100644 ---- a/module_compiler.h -+++ b/module_compiler.h -@@ -28,7 +28,7 @@ int define_policy(int pass, int module_header_given); - */ - int declare_symbol(uint32_t symbol_type, - hashtab_key_t key, hashtab_datum_t datum, -- uint32_t * dest_value, uint32_t * datum_value); -+ uint32_t * dest_value, const uint32_t * datum_value); - - role_datum_t *declare_role(unsigned char isattr); - type_datum_t *declare_type(unsigned char primary, unsigned char isattr); -diff --git a/policy_define.c b/policy_define.c -index af30da90..dc404530 100644 ---- a/policy_define.c -+++ b/policy_define.c -@@ -147,9 +147,9 @@ static int id_has_dot(const char *id) - - int define_class(void) - { -- char *id = 0; -- class_datum_t *datum = 0; -- int ret; -+ char *id = NULL; -+ class_datum_t *datum = NULL; -+ int ret = -1; - uint32_t value; - - if (pass == 2) { -@@ -166,27 +166,29 @@ int define_class(void) - datum = (class_datum_t *) malloc(sizeof(class_datum_t)); - if (!datum) { - yyerror("out of memory"); -- goto bad; -+ goto cleanup; - } - memset(datum, 0, sizeof(class_datum_t)); - ret = declare_symbol(SYM_CLASSES, id, datum, &value, &value); - switch (ret) { - case -3:{ - yyerror("Out of memory!"); -- goto bad; -+ goto cleanup; - } - case -2:{ - yyerror2("duplicate declaration of class %s", id); -- goto bad; -+ goto cleanup; - } - case -1:{ - yyerror("could not declare class here"); -- goto bad; -+ goto cleanup; - } -- case 0: -- case 1:{ -+ case 0: { - break; - } -+ case 1:{ -+ goto cleanup; -+ } - default:{ - assert(0); /* should never get here */ - } -@@ -194,12 +196,10 @@ int define_class(void) - datum->s.value = value; - return 0; - -- bad: -- if (id) -- free(id); -- if (datum) -- free(datum); -- return -1; -+ cleanup: -+ free(id); -+ free(datum); -+ return ret == 1 ? 0 : -1; - } - - int define_permissive(void) -@@ -772,8 +772,13 @@ int define_sens(void) - yyerror("could not declare sensitivity level here"); - goto bad; - } -- case 0: -+ case 0: { -+ break; -+ } - case 1:{ -+ level_datum_destroy(datum); -+ free(datum); -+ free(id); - break; - } - default:{ -@@ -813,8 +818,13 @@ int define_sens(void) - ("could not declare sensitivity alias here"); - goto bad_alias; - } -- case 0: -+ case 0: { -+ break; -+ } - case 1:{ -+ level_datum_destroy(aliasdatum); -+ free(aliasdatum); -+ free(id); - break; - } - default:{ -@@ -943,15 +953,20 @@ int define_category(void) - yyerror("could not declare category here"); - goto bad; - } -- case 0: -+ case 0:{ -+ datum->s.value = value; -+ break; -+ } - case 1:{ -+ cat_datum_destroy(datum); -+ free(datum); -+ free(id); - break; - } - default:{ - assert(0); /* should never get here */ - } - } -- datum->s.value = value; - - while ((id = queue_remove(id_queue))) { - if (id_has_dot(id)) { -@@ -967,11 +982,11 @@ int define_category(void) - } - cat_datum_init(aliasdatum); - aliasdatum->isalias = TRUE; -- aliasdatum->s.value = datum->s.value; -+ aliasdatum->s.value = value; - - ret = - declare_symbol(SYM_CATS, id, aliasdatum, NULL, -- &datum->s.value); -+ &value); - switch (ret) { - case -3:{ - yyerror("Out of memory!"); -@@ -987,8 +1002,13 @@ int define_category(void) - ("could not declare category aliases here"); - goto bad_alias; - } -- case 0: -+ case 0:{ -+ break; -+ } - case 1:{ -+ cat_datum_destroy(aliasdatum); -+ free(aliasdatum); -+ free(id); - break; - } - default:{ -@@ -1819,10 +1839,12 @@ int define_bool_tunable(int is_tunable) - yyerror("could not declare boolean here"); - goto cleanup; - } -- case 0: -- case 1:{ -+ case 0:{ - break; - } -+ case 1:{ -+ goto cleanup; -+ } - default:{ - assert(0); /* should never get here */ - } -@@ -1840,7 +1862,7 @@ int define_bool_tunable(int is_tunable) - return 0; - cleanup: - cond_destroy_bool(id, datum, NULL); -- return -1; -+ return ret == 1 ? 0 : -1; - } - - avrule_t *define_cond_pol_list(avrule_t * avlist, avrule_t * sl) --- -2.33.0 diff --git a/backport-checkpolicy-check-allocation-and-free-memory-on-erro.patch b/backport-checkpolicy-check-allocation-and-free-memory-on-erro.patch deleted file mode 100644 index 20e0e20..0000000 --- a/backport-checkpolicy-check-allocation-and-free-memory-on-erro.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 770ad3ecac91f59c3e3296ac63a7001630f98d86 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Mon, 22 Jan 2024 14:54:57 +0100 -Subject: [PATCH] checkpolicy: check allocation and free memory on error at - type definition -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - policy_define.c | 23 +++++++++++++++++------ - 1 file changed, 17 insertions(+), 6 deletions(-) - -diff --git a/policy_define.c b/policy_define.c -index 053156df..ec19da9d 100644 ---- a/policy_define.c -+++ b/policy_define.c -@@ -1399,7 +1399,7 @@ int define_typeattribute(void) - return 0; - } - --static int define_typebounds_helper(char *bounds_id, char *type_id) -+static int define_typebounds_helper(const char *bounds_id, const char *type_id) - { - type_datum_t *bounds, *type; - -@@ -1482,15 +1482,26 @@ int define_type(int alias) - * old name based hierarchy. - */ - if ((id = queue_remove(id_queue))) { -- char *bounds, *delim; -+ const char *delim; -+ -+ if ((delim = strrchr(id, '.'))) { -+ int ret; -+ char *bounds = strdup(id); -+ if (!bounds) { -+ yyerror("out of memory"); -+ free(id); -+ return -1; -+ } - -- if ((delim = strrchr(id, '.')) -- && (bounds = strdup(id))) { - bounds[(size_t)(delim - id)] = '\0'; - -- if (define_typebounds_helper(bounds, id)) -- return -1; -+ ret = define_typebounds_helper(bounds, id); - free(bounds); -+ if (ret) { -+ free(id); -+ return -1; -+ } -+ - } - free(id); - } --- -2.33.0 - diff --git a/backport-checkpolicy-check-identifier-before-copying.patch b/backport-checkpolicy-check-identifier-before-copying.patch deleted file mode 100644 index 9491e30..0000000 --- a/backport-checkpolicy-check-identifier-before-copying.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 158fb95ef28af13ccc8a6f1474aaa2e69620afd0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Wed, 15 Jan 2025 14:13:25 +0100 -Subject: [PATCH] checkpolicy: check identifier before copying -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Avoid calling strdup(3) with a NULL pointer, which can happen with an -invalid policy context, e.g.: - - class C - sid S - class C { P } - ; - user U roles j; - sid S s:l:q:q:q - -Fixes: 6f2b689f ("checkpolicy: Fix MLS users in optional blocks") -Reported-by: oss-fuzz (issue 390004173) -Signed-off-by: Christian Göttsche ---- - policy_define.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/policy_define.c b/policy_define.c -index 2f811b67..96a481f7 100644 ---- a/policy_define.c -+++ b/policy_define.c -@@ -4411,6 +4411,7 @@ static int parse_semantic_categories(char *id, level_datum_t * levdatum __attrib - - int define_user(void) - { -+ const char *username; - char *id; - user_datum_t *usrdatum, *usr_global; - level_datum_t *levdatum; -@@ -4437,7 +4438,13 @@ int define_user(void) - return 0; - } - -- id = strdup(queue_head(id_queue)); -+ username = queue_head(id_queue); -+ if (!username) { -+ yyerror("no user name"); -+ return -1; -+ } -+ -+ id = strdup(username); - - if ((usrdatum = declare_user()) == NULL) { - free(id); --- -2.33.0 - diff --git a/backport-checkpolicy-clean-expression-on-error.patch b/backport-checkpolicy-clean-expression-on-error.patch deleted file mode 100644 index 4a1746c..0000000 --- a/backport-checkpolicy-clean-expression-on-error.patch +++ /dev/null @@ -1,237 +0,0 @@ -From 187e75849e045636f02ff3a91ae5a67fa6855b92 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Mon, 22 Jan 2024 14:54:58 +0100 -Subject: [PATCH] checkpolicy: clean expression on error -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The passed expression needs to be transferred into the policy or free'd -by the sink functions define_constraint() and define_validatetrans(). - -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - policy_define.c | 68 ++++++++++++++++++++++--------------- - 1 file changed, 40 insertions(+), 28 deletions(-) - -diff --git a/policy_define.c b/policy_define.c -index ec19da9d..97582630 100644 ---- a/policy_define.c -+++ b/policy_define.c -@@ -3569,20 +3569,22 @@ int define_constraint(constraint_expr_t * expr) - return 0; - } - -+ ebitmap_init(&classmap); -+ - depth = -1; - for (e = expr; e; e = e->next) { - switch (e->expr_type) { - case CEXPR_NOT: - if (depth < 0) { - yyerror("illegal constraint expression"); -- return -1; -+ goto bad; - } - break; - case CEXPR_AND: - case CEXPR_OR: - if (depth < 1) { - yyerror("illegal constraint expression"); -- return -1; -+ goto bad; - } - depth--; - break; -@@ -3590,51 +3592,48 @@ int define_constraint(constraint_expr_t * expr) - case CEXPR_NAMES: - if (e->attr & CEXPR_XTARGET) { - yyerror("illegal constraint expression"); -- return -1; /* only for validatetrans rules */ -+ goto bad; /* only for validatetrans rules */ - } - if (depth == (CEXPR_MAXDEPTH - 1)) { - yyerror("constraint expression is too deep"); -- return -1; -+ goto bad; - } - depth++; - break; - default: - yyerror("illegal constraint expression"); -- return -1; -+ goto bad; - } - } - if (depth != 0) { - yyerror("illegal constraint expression"); -- return -1; -+ goto bad; - } - -- ebitmap_init(&classmap); - while ((id = queue_remove(id_queue))) { - if (!is_id_in_scope(SYM_CLASSES, id)) { - yyerror2("class %s is not within scope", id); - free(id); -- return -1; -+ goto bad; - } - cladatum = - (class_datum_t *) hashtab_search(policydbp->p_classes.table, - (hashtab_key_t) id); - if (!cladatum) { - yyerror2("class %s is not defined", id); -- ebitmap_destroy(&classmap); - free(id); -- return -1; -+ goto bad; - } - if (ebitmap_set_bit(&classmap, cladatum->s.value - 1, TRUE)) { - yyerror("out of memory"); -- ebitmap_destroy(&classmap); - free(id); -- return -1; -+ goto bad; - } - node = malloc(sizeof(struct constraint_node)); - if (!node) { - yyerror("out of memory"); - free(node); -- return -1; -+ goto bad; - } - memset(node, 0, sizeof(constraint_node_t)); - if (useexpr) { -@@ -3646,7 +3645,7 @@ int define_constraint(constraint_expr_t * expr) - if (!node->expr) { - yyerror("out of memory"); - free(node); -- return -1; -+ goto bad; - } - node->permissions = 0; - -@@ -3698,8 +3697,7 @@ int define_constraint(constraint_expr_t * expr) - yyerror2("permission %s is not" - " defined for class %s", id, policydbp->p_class_val_to_name[i]); - free(id); -- ebitmap_destroy(&classmap); -- return -1; -+ goto bad; - } - } - node->permissions |= (UINT32_C(1) << (perdatum->s.value - 1)); -@@ -3710,6 +3708,13 @@ int define_constraint(constraint_expr_t * expr) - ebitmap_destroy(&classmap); - - return 0; -+ -+bad: -+ ebitmap_destroy(&classmap); -+ if (useexpr) -+ constraint_expr_destroy(expr); -+ -+ return -1; - } - - int define_validatetrans(constraint_expr_t * expr) -@@ -3728,20 +3733,22 @@ int define_validatetrans(constraint_expr_t * expr) - return 0; - } - -+ ebitmap_init(&classmap); -+ - depth = -1; - for (e = expr; e; e = e->next) { - switch (e->expr_type) { - case CEXPR_NOT: - if (depth < 0) { - yyerror("illegal validatetrans expression"); -- return -1; -+ goto bad; - } - break; - case CEXPR_AND: - case CEXPR_OR: - if (depth < 1) { - yyerror("illegal validatetrans expression"); -- return -1; -+ goto bad; - } - depth--; - break; -@@ -3749,47 +3756,45 @@ int define_validatetrans(constraint_expr_t * expr) - case CEXPR_NAMES: - if (depth == (CEXPR_MAXDEPTH - 1)) { - yyerror("validatetrans expression is too deep"); -- return -1; -+ goto bad; - } - depth++; - break; - default: - yyerror("illegal validatetrans expression"); -- return -1; -+ goto bad; - } - } - if (depth != 0) { - yyerror("illegal validatetrans expression"); -- return -1; -+ goto bad; - } - -- ebitmap_init(&classmap); - while ((id = queue_remove(id_queue))) { - if (!is_id_in_scope(SYM_CLASSES, id)) { - yyerror2("class %s is not within scope", id); - free(id); -- return -1; -+ goto bad; - } - cladatum = - (class_datum_t *) hashtab_search(policydbp->p_classes.table, - (hashtab_key_t) id); - if (!cladatum) { - yyerror2("class %s is not defined", id); -- ebitmap_destroy(&classmap); - free(id); -- return -1; -+ goto bad; - } - if (ebitmap_set_bit(&classmap, (cladatum->s.value - 1), TRUE)) { - yyerror("out of memory"); -- ebitmap_destroy(&classmap); - free(id); -- return -1; -+ goto bad; - } - - node = malloc(sizeof(struct constraint_node)); - if (!node) { - yyerror("out of memory"); -- return -1; -+ free(id); -+ goto bad; - } - memset(node, 0, sizeof(constraint_node_t)); - if (useexpr) { -@@ -3809,6 +3814,13 @@ int define_validatetrans(constraint_expr_t * expr) - ebitmap_destroy(&classmap); - - return 0; -+ -+bad: -+ ebitmap_destroy(&classmap); -+ if (useexpr) -+ constraint_expr_destroy(expr); -+ -+ return -1; - } - - uintptr_t define_cexpr(uint32_t expr_type, uintptr_t arg1, uintptr_t arg2) --- -2.33.0 - diff --git a/backport-checkpolicy-cleanup-identifiers-on-error.patch b/backport-checkpolicy-cleanup-identifiers-on-error.patch deleted file mode 100644 index 0a6e2a3..0000000 --- a/backport-checkpolicy-cleanup-identifiers-on-error.patch +++ /dev/null @@ -1,196 +0,0 @@ -From b75bf48b42d93bf03211eeb176495dbc667d4e99 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Mon, 22 Jan 2024 14:54:55 +0100 -Subject: [PATCH] checkpolicy: cleanup identifiers on error -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Free identifiers removed from the queue but not yet owned by the policy -on errors. - -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - policy_define.c | 32 ++++++++++++++++++++++++++++---- - 1 file changed, 28 insertions(+), 4 deletions(-) - -diff --git a/policy_define.c b/policy_define.c -index 260e609d..db7e9d0e 100644 ---- a/policy_define.c -+++ b/policy_define.c -@@ -342,6 +342,7 @@ static int read_classes(ebitmap_t *e_classes) - while ((id = queue_remove(id_queue))) { - if (!is_id_in_scope(SYM_CLASSES, id)) { - yyerror2("class %s is not within scope", id); -+ free(id); - return -1; - } - cladatum = hashtab_search(policydbp->p_classes.table, id); -@@ -373,15 +374,18 @@ int define_default_user(int which) - while ((id = queue_remove(id_queue))) { - if (!is_id_in_scope(SYM_CLASSES, id)) { - yyerror2("class %s is not within scope", id); -+ free(id); - return -1; - } - cladatum = hashtab_search(policydbp->p_classes.table, id); - if (!cladatum) { - yyerror2("unknown class %s", id); -+ free(id); - return -1; - } - if (cladatum->default_user && cladatum->default_user != which) { - yyerror2("conflicting default user information for class %s", id); -+ free(id); - return -1; - } - cladatum->default_user = which; -@@ -405,15 +409,18 @@ int define_default_role(int which) - while ((id = queue_remove(id_queue))) { - if (!is_id_in_scope(SYM_CLASSES, id)) { - yyerror2("class %s is not within scope", id); -+ free(id); - return -1; - } - cladatum = hashtab_search(policydbp->p_classes.table, id); - if (!cladatum) { - yyerror2("unknown class %s", id); -+ free(id); - return -1; - } - if (cladatum->default_role && cladatum->default_role != which) { - yyerror2("conflicting default role information for class %s", id); -+ free(id); - return -1; - } - cladatum->default_role = which; -@@ -437,15 +444,18 @@ int define_default_type(int which) - while ((id = queue_remove(id_queue))) { - if (!is_id_in_scope(SYM_CLASSES, id)) { - yyerror2("class %s is not within scope", id); -+ free(id); - return -1; - } - cladatum = hashtab_search(policydbp->p_classes.table, id); - if (!cladatum) { - yyerror2("unknown class %s", id); -+ free(id); - return -1; - } - if (cladatum->default_type && cladatum->default_type != which) { - yyerror2("conflicting default type information for class %s", id); -+ free(id); - return -1; - } - cladatum->default_type = which; -@@ -469,15 +479,18 @@ int define_default_range(int which) - while ((id = queue_remove(id_queue))) { - if (!is_id_in_scope(SYM_CLASSES, id)) { - yyerror2("class %s is not within scope", id); -+ free(id); - return -1; - } - cladatum = hashtab_search(policydbp->p_classes.table, id); - if (!cladatum) { - yyerror2("unknown class %s", id); -+ free(id); - return -1; - } - if (cladatum->default_range && cladatum->default_range != which) { - yyerror2("conflicting default range information for class %s", id); -+ free(id); - return -1; - } - cladatum->default_range = which; -@@ -508,6 +521,7 @@ int define_common_perms(void) - comdatum = hashtab_search(policydbp->p_commons.table, id); - if (comdatum) { - yyerror2("duplicate declaration for common %s\n", id); -+ free(id); - return -1; - } - comdatum = (common_datum_t *) malloc(sizeof(common_datum_t)); -@@ -770,12 +784,14 @@ int define_sens(void) - while ((id = queue_remove(id_queue))) { - if (id_has_dot(id)) { - yyerror("sensitivity aliases may not contain periods"); -- goto bad_alias; -+ free(id); -+ return -1; - } - aliasdatum = (level_datum_t *) malloc(sizeof(level_datum_t)); - if (!aliasdatum) { - yyerror("out of memory"); -- goto bad_alias; -+ free(id); -+ return -1; - } - level_datum_init(aliasdatum); - aliasdatum->isalias = TRUE; -@@ -940,12 +956,14 @@ int define_category(void) - while ((id = queue_remove(id_queue))) { - if (id_has_dot(id)) { - yyerror("category aliases may not contain periods"); -- goto bad_alias; -+ free(id); -+ return -1; - } - aliasdatum = (cat_datum_t *) malloc(sizeof(cat_datum_t)); - if (!aliasdatum) { - yyerror("out of memory"); -- goto bad_alias; -+ free(id); -+ return -1; - } - cat_datum_init(aliasdatum); - aliasdatum->isalias = TRUE; -@@ -3863,6 +3881,7 @@ uintptr_t define_cexpr(uint32_t expr_type, uintptr_t arg1, uintptr_t arg2) - if (!is_id_in_scope(SYM_USERS, id)) { - yyerror2("user %s is not within scope", - id); -+ free(id); - constraint_expr_destroy(expr); - return 0; - } -@@ -3874,6 +3893,7 @@ uintptr_t define_cexpr(uint32_t expr_type, uintptr_t arg1, uintptr_t arg2) - id); - if (!user) { - yyerror2("unknown user %s", id); -+ free(id); - constraint_expr_destroy(expr); - return 0; - } -@@ -3883,6 +3903,7 @@ uintptr_t define_cexpr(uint32_t expr_type, uintptr_t arg1, uintptr_t arg2) - yyerror2("role %s is not within scope", - id); - constraint_expr_destroy(expr); -+ free(id); - return 0; - } - role = -@@ -3894,6 +3915,7 @@ uintptr_t define_cexpr(uint32_t expr_type, uintptr_t arg1, uintptr_t arg2) - if (!role) { - yyerror2("unknown role %s", id); - constraint_expr_destroy(expr); -+ free(id); - return 0; - } - val = role->s.value; -@@ -3906,11 +3928,13 @@ uintptr_t define_cexpr(uint32_t expr_type, uintptr_t arg1, uintptr_t arg2) - } else { - yyerror("invalid constraint expression"); - constraint_expr_destroy(expr); -+ free(id); - return 0; - } - if (ebitmap_set_bit(&expr->names, val - 1, TRUE)) { - yyerror("out of memory"); - ebitmap_destroy(&expr->names); -+ free(id); - constraint_expr_destroy(expr); - return 0; - } --- -2.33.0 - diff --git a/backport-checkpolicy-cleanup-resources-on-parse-error.patch b/backport-checkpolicy-cleanup-resources-on-parse-error.patch deleted file mode 100644 index e972701..0000000 --- a/backport-checkpolicy-cleanup-resources-on-parse-error.patch +++ /dev/null @@ -1,91 +0,0 @@ -From c2fc48be68ee466207d870137681896b0b544691 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Mon, 22 Jan 2024 14:54:54 +0100 -Subject: [PATCH] checkpolicy: cleanup resources on parse error -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Close the input file and free all memory by the queue and lexer on a -syntax or parse error. - -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - parse_util.c | 26 +++++++++++++++++++------- - 1 file changed, 19 insertions(+), 7 deletions(-) - -diff --git a/parse_util.c b/parse_util.c -index 8c1f393..5f92730 100644 ---- a/parse_util.c -+++ b/parse_util.c -@@ -26,6 +26,7 @@ extern FILE *yyin; - extern void init_parser(int); - extern int yyparse(void); - extern void yyrestart(FILE *); -+extern int yylex_destroy(void); - extern queue_t id_queue; - extern unsigned int policydb_errors; - extern policydb_t *policydbp; -@@ -34,6 +35,8 @@ extern void set_source_file(const char *name); - - int read_source_policy(policydb_t * p, const char *file, const char *progname) - { -+ int rc = -1; -+ - yyin = fopen(file, "r"); - if (!yyin) { - fprintf(stderr, "%s: unable to open %s: %s\n", progname, file, strerror(errno)); -@@ -41,21 +44,26 @@ int read_source_policy(policydb_t * p, const char *file, const char *progname) - } - set_source_file(file); - -- if ((id_queue = queue_create()) == NULL) { -+ id_queue = queue_create(); -+ if (id_queue == NULL) { - fprintf(stderr, "%s: out of memory!\n", progname); -- return -1; -+ goto cleanup; - } - -+ mlspol = p->mls; - policydbp = p; - policydbp->name = strdup(file); -- mlspol = p->mls; -+ if (!policydbp->name) { -+ fprintf(stderr, "%s: out of memory!\n", progname); -+ goto cleanup; -+ } - - init_parser(1); - if (yyparse() || policydb_errors) { - fprintf(stderr, - "%s: error(s) encountered while parsing configuration\n", - progname); -- return -1; -+ goto cleanup; - } - rewind(yyin); - init_parser(2); -@@ -65,11 +73,15 @@ int read_source_policy(policydb_t * p, const char *file, const char *progname) - fprintf(stderr, - "%s: error(s) encountered while parsing configuration\n", - progname); -- return -1; -+ goto cleanup; - } -- queue_destroy(id_queue); - -+ rc = 0; -+ -+cleanup: -+ queue_destroy(id_queue); - fclose(yyin); -+ yylex_destroy(); - -- return 0; -+ return rc; - } --- -2.33.0 - diff --git a/backport-checkpolicy-free-complete-role_allow_rule-on-error.patch b/backport-checkpolicy-free-complete-role_allow_rule-on-error.patch deleted file mode 100644 index efdddb7..0000000 --- a/backport-checkpolicy-free-complete-role_allow_rule-on-error.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 652e28838c1af8adf442dee8a805a65c1e58353a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Tue, 2 Apr 2024 17:29:25 +0200 -Subject: [PATCH] checkpolicy: free complete role_allow_rule on error -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Free the ebitmaps inside the rolesets on error. - -Reported-by: oss-fuzz (issue 67769) -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - policy_define.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/policy_define.c b/policy_define.c -index 4fc6c417..1c019a3b 100644 ---- a/policy_define.c -+++ b/policy_define.c -@@ -3310,6 +3310,7 @@ int define_role_allow(void) - - while ((id = queue_remove(id_queue))) { - if (set_roles(&ra->roles, id)) { -+ role_allow_rule_destroy(ra); - free(ra); - return -1; - } -@@ -3317,6 +3318,7 @@ int define_role_allow(void) - - while ((id = queue_remove(id_queue))) { - if (set_roles(&ra->new_roles, id)) { -+ role_allow_rule_destroy(ra); - free(ra); - return -1; - } --- -2.33.0 - diff --git a/backport-checkpolicy-free-ebitmap-on-error.patch b/backport-checkpolicy-free-ebitmap-on-error.patch deleted file mode 100644 index d9904bf..0000000 --- a/backport-checkpolicy-free-ebitmap-on-error.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 8b115c45ad116030d29bb2b84a268e4083d7548c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Mon, 22 Jan 2024 14:54:56 +0100 -Subject: [PATCH] checkpolicy: free ebitmap on error -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - policy_define.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/policy_define.c b/policy_define.c -index db7e9d0e..053156df 100644 ---- a/policy_define.c -+++ b/policy_define.c -@@ -2525,6 +2525,8 @@ static int define_te_avtab_helper(int which, avrule_t ** rule) - int add = 1, ret = 0; - int suppress = 0; - -+ ebitmap_init(&tclasses); -+ - avrule = (avrule_t *) malloc(sizeof(avrule_t)); - if (!avrule) { - yyerror("memory error"); -@@ -2571,7 +2573,6 @@ static int define_te_avtab_helper(int which, avrule_t ** rule) - } - } - -- ebitmap_init(&tclasses); - ret = read_classes(&tclasses); - if (ret) - goto out; -@@ -2648,8 +2649,6 @@ static int define_te_avtab_helper(int which, avrule_t ** rule) - free(id); - } - -- ebitmap_destroy(&tclasses); -- - avrule->perms = perms; - *rule = avrule; - -@@ -2658,6 +2657,9 @@ static int define_te_avtab_helper(int which, avrule_t ** rule) - avrule_destroy(avrule); - free(avrule); - } -+ -+ ebitmap_destroy(&tclasses); -+ - return ret; - - } --- -2.33.0 - diff --git a/backport-checkpolicy-free-identifiers-on-invalid-typebounds.patch b/backport-checkpolicy-free-identifiers-on-invalid-typebounds.patch deleted file mode 100644 index e090d4d..0000000 --- a/backport-checkpolicy-free-identifiers-on-invalid-typebounds.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 9f2f9e28475abfaf9c2c756726f6f829c9183308 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Sat, 30 Mar 2024 14:35:01 +0100 -Subject: [PATCH] checkpolicy: free identifiers on invalid typebounds -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Free the two identifiers on an invalid typebounds in the error branch, -similar to the success branch. - -Reported-by: oss-fuzz (issue 67700) -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - policy_define.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/policy_define.c b/policy_define.c -index 0cf938ea..92d1e5f2 100644 ---- a/policy_define.c -+++ b/policy_define.c -@@ -1461,8 +1461,12 @@ int define_typebounds(void) - } - - while ((id = queue_remove(id_queue))) { -- if (define_typebounds_helper(bounds, id)) -+ if (define_typebounds_helper(bounds, id)) { -+ free(bounds); -+ free(id); - return -1; -+ } -+ - free(id); - } - free(bounds); --- -2.33.0 - diff --git a/backport-checkpolicy-free-temporary-bounds-type.patch b/backport-checkpolicy-free-temporary-bounds-type.patch deleted file mode 100644 index fa86487..0000000 --- a/backport-checkpolicy-free-temporary-bounds-type.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 63207ce82e8ea515704731c908945e8a90fa6843 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Mon, 22 Jan 2024 14:55:05 +0100 -Subject: [PATCH] checkpolicy: free temporary bounds type -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Free the temporary bounds type in the error branches. - -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - module_compiler.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/module_compiler.c b/module_compiler.c -index 119b7e36..464897cc 100644 ---- a/module_compiler.c -+++ b/module_compiler.c -@@ -234,6 +234,7 @@ static int role_implicit_bounds(hashtab_t roles_tab, - if (!bounds) { - yyerror2("role %s doesn't exist, is implicit bounds of %s", - bounds_id, role_id); -+ free(bounds_id); - return -1; - } - -@@ -243,6 +244,7 @@ static int role_implicit_bounds(hashtab_t roles_tab, - yyerror2("role %s has inconsistent bounds %s/%s", - role_id, bounds_id, - policydbp->p_role_val_to_name[role->bounds - 1]); -+ free(bounds_id); - return -1; - } - free(bounds_id); -@@ -479,6 +481,7 @@ static int user_implicit_bounds(hashtab_t users_tab, - if (!bounds) { - yyerror2("user %s doesn't exist, is implicit bounds of %s", - bounds_id, user_id); -+ free(bounds_id); - return -1; - } - -@@ -488,6 +491,7 @@ static int user_implicit_bounds(hashtab_t users_tab, - yyerror2("user %s has inconsistent bounds %s/%s", - user_id, bounds_id, - policydbp->p_role_val_to_name[user->bounds - 1]); -+ free(bounds_id); - return -1; - } - free(bounds_id); --- -2.33.0 - diff --git a/backport-checkpolicy-handle-unprintable-token.patch b/backport-checkpolicy-handle-unprintable-token.patch deleted file mode 100644 index 58eee88..0000000 --- a/backport-checkpolicy-handle-unprintable-token.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 39b3cc51350a4ba670f9f38493311ec316e4d84d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Fri, 22 Mar 2024 15:50:49 +0100 -Subject: [PATCH] checkpolicy: handle unprintable token -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In case the erroneous token is unprintable, e.g. a control character, -print its hex value instead. - -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - policy_scan.l | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/policy_scan.l b/policy_scan.l -index c4d8e937..d7cf2896 100644 ---- a/policy_scan.l -+++ b/policy_scan.l -@@ -321,6 +321,16 @@ GLBLUB { return(GLBLUB); } - %% - int yyerror(const char *msg) - { -+ const char *token; -+ char buf[8]; -+ -+ if (isprint((unsigned char)yytext[0])) { -+ token = yytext; -+ } else { -+ snprintf(buf, sizeof(buf), "%#x", yytext[0]); -+ token = buf; -+ } -+ - if (source_file[0]) - fprintf(stderr, "%s:%lu:", - source_file, source_lineno); -@@ -328,7 +338,7 @@ int yyerror(const char *msg) - fprintf(stderr, "(unknown source)::"); - fprintf(stderr, "ERROR '%s' at token '%s' on line %lu:\n%s\n%s\n", - msg, -- yytext, -+ token, - policydb_lineno, - linebuf[0], linebuf[1]); - policydb_errors++; --- -2.33.0 - diff --git a/backport-checkpolicy-include-ctype.h-for-isprint-3.patch b/backport-checkpolicy-include-ctype.h-for-isprint-3.patch deleted file mode 100644 index 2023839..0000000 --- a/backport-checkpolicy-include-ctype.h-for-isprint-3.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 0ffe97479c8e4ac720526a368bb23f3e6ed9b71a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Tue, 2 Apr 2024 17:29:20 +0200 -Subject: [PATCH] checkpolicy: include for isprint(3) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Include the necessary header for isprint(3) to avoid an implicit -function declaration: - - policy_scan.l: In function ‘yyerror’: - policy_scan.l:342:13: warning: implicit declaration of function ‘isprint’ [-Wimplicit-function-declaration] - 342 | if (isprint((unsigned char)yytext[0])) { - | ^~~~~~~ - policy_scan.l:36:1: note: include ‘’ or provide a declaration of ‘isprint’ - 35 | #include "y.tab.h" - +++ |+#include - 36 | #endif - -This does not currently break the build cause -Werror is stripped for -the parsing code to avoid breakage on old flex/bison versions that might -not generate warning free code. - -Fixes: 39b3cc51350a ("checkpolicy: handle unprintable token") -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - policy_scan.l | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/policy_scan.l b/policy_scan.l -index d7cf2896..62f28c11 100644 ---- a/policy_scan.l -+++ b/policy_scan.l -@@ -22,6 +22,7 @@ - - %{ - #include -+#include - #include - #include - #include --- -2.33.0 - diff --git a/backport-checkpolicy-return-YYerror-on-invalid-character.patch b/backport-checkpolicy-return-YYerror-on-invalid-character.patch deleted file mode 100644 index 51b358d..0000000 --- a/backport-checkpolicy-return-YYerror-on-invalid-character.patch +++ /dev/null @@ -1,36 +0,0 @@ -From f4330d57705205b52ec117803bf8543a2e59bb00 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Mon, 11 Mar 2024 15:57:04 +0100 -Subject: [PATCH] checkpolicy: return YYerror on invalid character -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Inform bison about an invalid character by returning YYerror, so the -parser can cleanup internal state and return the failure via yyparse(). -Currently the error is only observable via the global variable -policydb_errors, which needs to be checked separately. - -Reported-by: oss-fuzz (issue #67270) -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - policy_scan.l | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/policy_scan.l b/policy_scan.l -index 19c05a58..1926129c 100644 ---- a/policy_scan.l -+++ b/policy_scan.l -@@ -310,7 +310,7 @@ GLBLUB { return(GLBLUB); } - "]" | - "~" | - "*" { return(yytext[0]); } --. { yyerror("unrecognized character");} -+. { yyerror("unrecognized character"); return YYerror; } - %% - int yyerror(const char *msg) - { --- -2.33.0 - diff --git a/backport-checkpolicy-use-YYerror-only-when-available.patch b/backport-checkpolicy-use-YYerror-only-when-available.patch deleted file mode 100644 index d389e7f..0000000 --- a/backport-checkpolicy-use-YYerror-only-when-available.patch +++ /dev/null @@ -1,59 +0,0 @@ -From ca77c5929905216fb1c0f70ed632664aa3ec85a7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Fri, 22 Mar 2024 15:50:48 +0100 -Subject: [PATCH] checkpolicy: use YYerror only when available -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The special error value YYerror is only available since bison 3.6 -(released 2020). For example the version used by oss-fuzz does not -support it. - -Use a special token in case YYerror is not available. Only downside is -a duplicate error message, one from the manual yyerror() call and one -from within bison for the unexpected special token (which would be -omitted by using YYerror). - -Signed-off-by: Christian Göttsche -Acked-by: James Carter ---- - policy_parse.y | 1 + - policy_scan.l | 9 ++++++++- - 2 files changed, 9 insertions(+), 1 deletion(-) - -diff --git a/policy_parse.y b/policy_parse.y -index e0103502..1b275ebc 100644 ---- a/policy_parse.y -+++ b/policy_parse.y -@@ -155,6 +155,7 @@ typedef int (* require_func_t)(int pass); - %token FILESYSTEM - %token DEFAULT_USER DEFAULT_ROLE DEFAULT_TYPE DEFAULT_RANGE - %token LOW_HIGH LOW HIGH GLBLUB -+%token INVALID_CHAR - - %left OR - %left XOR -diff --git a/policy_scan.l b/policy_scan.l -index 1926129c..c4d8e937 100644 ---- a/policy_scan.l -+++ b/policy_scan.l -@@ -310,7 +310,14 @@ GLBLUB { return(GLBLUB); } - "]" | - "~" | - "*" { return(yytext[0]); } --. { yyerror("unrecognized character"); return YYerror; } -+. { yyerror("unrecognized character"); -+/* Available since bison 3.6, avoids duplicate error message */ -+#ifdef YYerror -+ return YYerror; -+#else -+ return INVALID_CHAR; -+#endif -+ } - %% - int yyerror(const char *msg) - { --- -2.33.0 - diff --git a/checkpolicy-3.5.tar.gz b/checkpolicy-3.5.tar.gz deleted file mode 100644 index 871b4efc2345e0dd57ff14780a852424e66b0b45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69904 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

{d`K{ko>aelD z{c`6>xG9Q;?{E=NP-NsI$tdt4#)YGb_znmi%rx>Rdk;8haw8PUV_RfF)FL-_M}Lhs zWQ}M{%;&Ceoj<2~6`Thid8!SaY7a7Z>>eHM9_%+>ZXf+^p*I+IE+E$)e^E%J#EieZ zJl=lNINJT69mTH}em8-YAo|~CB+n|L0KR6@q8~QL;c_yxjiz+0Luu z7vgT4bDJOn1m3;uLoB9rP=ql`d1f)DZxGa~4mmtq5W~4;%y(7V^!<-q6R2hrQ1tpS z2cGV2A01^y9T1W9rjIyaot%Q}vOS`_A?etNb~J(9ClOvW z*r+>{Zs7XfP}hPDH?53wYHx3ok{kRidj|^($9vaz=+O#f&#t|W<@GP#sl!XP7Ne$~aDixHOH;%c;9%E6rle)S3+A%ID1dMu)c*VM8^Tc>gE*0z_Ao25Ldf z$MWo;z-(tJHoZ=~+c`sY8AH^}KQAC|42iz57!UeNk{|5@Zm`a1$9_EASjWGI5ARF? z4GRBZ^P+Qe>$HE-8KZ}q*f8)o87%EK^r>1~#-Ni&HX;|{T&AEdRsomvC_Neh6_Fao z=Us3`-+{}R)0Q>p1#i&x4 zq5R#ruJ`q+ZLWIpr8KuGpt!d3R!wWlg7C8`P6a5LR(Hy8_M7_j@2Wm6MD?dCA z-DlUJ{&*@=W&OrkxUPoduIX$Yr^5aXu7iUyY?RvI3(zkZk3zHkEG4#Rb9lDq{a(-5 z*AY>R@b8lPvu00L(skI2N9oY6Quwu%aX-`U_Pz9M1W|9C#BLf~x*c77!4Vfx{^7&5 zBe<7}cfY`tglJ4c#f*E zpo4W8K3vy*#6)51kXyO~S12UD8=hq4`>bk-Lo;0OAm#PZ&Y?6m#Nt>>^VISDE7}iss3QHFZ$7Nm*YFco!lS^5y-b0x=|3J1x|4#SjJT|=4j|1kh z0ycxAs{%*E(4oqEWez(nc=Y<8R)$9QWI!Q?;H(~OvIvJBDG~5L?7{22m zOexx17=XAKj4y!$0y35o#+rl;V=GgG z{7_BA8+S_TU*c(4wHkfwd~nhOMhG_zI@n!K{0aq2F|Li~5`MdjjpC05|Vk?f~q|<|-?EONEXWTvuP(3*~ z*o&EBaRf!?SOIPvOjr}$&O4x~vC^O~Kbvn$<|@99b4y9qfU5xnuVj2NaO$D44We*2 zhvN>8|76m^K%O7y9jq8Ok=+5_CM;wNr(E3WZNJ!rmH3K(Rr9sws9>xZXJwZZDA zr_3IE{o#e;`Tv*Rg8;w%iveV>@Rlt5umY3i!o)qq1qTIO-7Y$VtHH3Z7{-O^h0l1a z;0-S+LB6|>3UI$ZnGN9>4-$1iq!qv%DfI##Mv$FGGZ027cISzy_SKi9-{#sEtgK--_+^cmuV(zSd}giJ$x zT97PvQQo~NZx_=^vn@xo1)!uYNU8yhKW!?BvMopC96;v|FUzn^Jue;0$I z_b_oD9&U8`XW~#+cw2eCR(a>*y7OSP+F~U~-OCc^I0$scm}6(q4yobZ039h>(EvF% zt%$QuXym9Qvquls%&r#3Pev2+mkgrZVe_y^XYd(gDOc<5|EHMB;@y+K5Tr^nEIr3H;`iRraJ_Nnp+KhzxMev2fzkE_@i> zyxBX0`=&~RUE&`~TUxSN*A*G4xoNcf;{`MI8V;(bW)Hmp>|;o7j`x*Y=R+jfyDN85 z>6lwwpx57hr${)t`|IjmeB3f&;vGl}{D#!%T&JPA470w5RCo`?eTOswG0rbF5sB)d z4~#$|c#?$PKU<$~gbAT@`hn@nS;L~Kj1G#swB;U3Y6|_bbk|r2m<8LbvkW;R81ZLA z-qeUIMGJ)}BnAXl)Q%~RmA8^k@=!FOe#4T{TI{VL0h?w3%a4&YEI(EN!<`5okWt}@ zap?SyL9J1$v}-0=6VyTN1MT!<1C!2;7D#~?#v`&i$7WjX2`wdQu+?5EM*}235kSW%u=oH8$vX6~H zVfW??)s0o{)F4vr`uhF2xtez}9kEYCnIL&?@ai2)5N52#r`W@Y?6S)^a z6;3D`L^-Ji2+6Qg_23W_%@8b{*f4=GfdE)$wh6OgD~8}vbG;V5iRZ99tl}`ef_o6U zzf86VvJu>y?TjyFct#uqi(x#_Gx#FZLXj|nIULmr3y4pD?dwy zV(H1|FiUbicVe&tyNn+1#E!9Dm!2Y0s}(H$0;-vUY;x!(N;uO{4v-FMb5YW%f<#nO z>>`IoS8z~ox^Ih#s1oO_NJc&#-N^(~(vN?`G@6jWW4dK_6NiBt{%!Kybma|gW`=f{ zL|GV2DL#m`w?!)_qvGn@k{)&;5qy%V6*G0F)?}#25DulsN{U(FzkHLQj9sM?jb#V% zo~=kyHfA*(l%ip_TBvKxR}NOr>ecWpmaF+9(EmTO%suVC!IYG=+z7n=cksKN4%1Wh zKg5x2dC_!RuDoM~he@|xl zr)djB39^DCzxLhtZ;8hDICjpLAqFzx4=#vigWg(xOji*S z%Lau4j~+!zFH-xYs`V~S2X+!oID0QSl$>o`(Pp-%k4BE|V27|qN8}QW^ccjn{_+Vm zGqSHwmE=8#7-9*>JlJyy!2`Qxk^=>4W-_S2PD%k4n1l(}qylVbrc^M)(DYu9A~yYk zyG7?yf(%w)iYJ(kuC7E>dCm@}7&;6QuY&D9DHx*;L!#<+AT@Pj?6YMFC@;8u1`*jg z^@+&e%RQn3Baf8lt=Qla*m>G)m(`JFdoemAC1E}!w^)+Ka&9Gm93|?=Rh}|~5meJO zk?&Mhjsz(H85lb#WGbNB3e%}ixmpwRINEq9&5jd)&;rlOFEw)PNRzX^oPr{?a9OfCJbA+d_(ha=jr;64$inRV^R(3=- z%E*MKyVL&1E$Mw6=0`(D(d;%98!^gW%!1t4?ZR2sQnCnqD^C?G!CC~BWoVr!?F(LR z45QcEsDWh~{&}?ftn@w&gHD_Kx7-S!D4y;1}dV4yY}7|e<)7bOJ2jzBgV3>8J3F32XA zlKI=K>mN7aA4UF5K}0k~)JyG10=9mI4%mf|mG5Ou_u_94Av9al!BWT@pC7&5s#Ru< zF46^)^p9Wct)a9x9#V{H$nuelE=S|^LioD`<0^@iqGD@rh0!kT#Km6Jk%cPpu`w~2 zxm<+usc;_C8+3;MinBd2k6TOO!Vbufu7uz>DocaZYA_9$M!cT0 z;x$Ftm4CaPD7K6gj;qbfilYe%6NEVVLDX8(=|M{1A-evYoHLB;Z27ydh`_E-^=9Ki z1NBCVIEKGK<@ypU6@i=mQvLT|sff50NTZD360jHaKWzC0U|zYzBb;PCYhX5bOw;a3 zEedq@PTQZBraw9Pl%W~Ef{SUj%0VjiI z^Ih5;c01{it7lY|6G~!@829I5c{D+@;CaAELZPJF@0~H{a~^#;_6Kl&Md}%c3o_ORmg3JRB$PI%mSh4%+{cGIQ*!}v z*FDSBDo;trsY?Z8zY zCp`$uS7K!K$q7VujmnSJCB%fsX6J zKgE9KwQz4Sc{NN&>F_;87rSVVTjvl)uRm-nz0F?M;?Quaz0=Owgrc6T;K_dBZgwpd z*yp3`OMy0wkIfl_oXRavS9T^b(39Os)Kak_i(5n&>;7FiGslk}kpit0X}aslnsuHS z9ca|IM{3@e>5N0I3X-Hv@?-#>iL)06I4W4Dx6x>}+iG1+PI|D{4^_V( z9kGBS$+QwqtuqrDfrj-*mJ$%HpGQD2P1mNn7;@U|bjj}t0+y2B6HabIlgpsMkjNi^ z!W&J-JY0O!L1Gy9dkfpo8@u~E#~U19-k}pi$JPg1)i#llBOoE_vtZ)-xZT2P&4v*b z2?@!{i0Jsu`diq=33#!qCjLThZrL4`ko1~sd2 zH<0gHFd62x;~C(o1a4z6n85l@?`b2W0u`hYs1Qga^e~V{3aGlYWMYW9?zD6>(#h_V zSAX02WhU}Tu9@DQwLtjrXU)Wf%9AYAgBm%9XVMOo&84ku;lyqm-qxSY$K?`150W5C z$ta&=DA@xDrJO*z@kSUCZ*qovO;LwwGH&uvy<`|RhpkYcNqg;V69>Ghd`|IsBov18 z42OJIgK8_sR}Yi*?>FLu{er@gU3okX zI6Y{vIkub`HmsU2Om%wTvws2!LHKL}>XZ@*l)&9hdkc9zKTdX^uz?YCi$VGZ%-rDL z+lT>SHpq+S$3*pXHa-UoZ`?10E(D292BdU;hBK#|*+qBupUqCuSEyj!9=_QBh*_N(F%fWV_+j#SomE& z{th6xlgMXvCo|cH=CG$^b`6HULW{>WXOsSfP-7x6I*s2!^yM^r-XD$8ItY@o#5Y|3 zHx1AFm^;q|S-g?keO$4J6&&XyIZnR>V(n2P@bbBIlBbl@h?Ec*G+>vN5sVicy=xKnh44m=!_ZwU&Ag9hy({y;GI=1(lCCbE$qquk;p&01$MBp zqEBXtvgKK=;;Pxz04Y?BWG27bEQF`b@qR^O)W&t>C_wGSAcoo{41481QFw)em(MR+ zZ8#=V-oiK)RYb&cwFrJ>FcP7QkDEQBi0D%ofhlo{d!1I8VESbjVb9 zI-+dQ=vk!3FytjgkiH|;@?!ruDKm=+ChHcX39SxNwhCM>q+X3q6+HSwI8ZIQ<6EJr@v(F@ED%_TU0(D+>Y;l#{ zSuu_C-IKeJRdQbqNq(MN1S1G+PS9B*(v1aV(n6;!*p1Y- z-A-sww@0`m>H844y1|MB+kASV#2E#;=pm#hEeaYW>Hgh3XcdJ*cVQV>k2#*!EN~;T zTaY8*4RSQIB010c+vxRf#;5j_TjDntgU3E1uwVVN+=(@@S^B+jTkQ_FM|CYVIy*t; zMO8U7N|Z@3d!lq2Gvz_hv9H~Cs9~zwk5L>dR7q)Wq1YfpBNg*z-{H2QmxUEENEL;F zY}O3#tLtq>moFtUqY-@M)VJG|bJW4i{2F&|9VvJr5O}#>p2!^E9F}Z5ewUPWZ>;`| zutSoAjq$@bS!X1wVHkWt@4lZHs0wWN`v* zfPtph?=8RFJ93RQrG?|Ea{Eo45HLXT+_ZTC%ckV16$G`f5}G|od^2S_DKEKMpdjGP zW{A^1HCa&)e^nLr0^-D6IoK4CWA&_pm@#7E4z!?lF#KiD1|XTS70|TFa?a5Ib^9Ba z>aP|hMbj#r254EqG|a!l)oN(r ziWOYMwrKoLYi_`Oo!8mJ(o!hIfD?6vw9heb*K6kNp{(e=aKu3rc$YZyxQEySN+-Uk zmR(XO?>5;11Mt0hElx7&-@(gKa{~jk*S6(yPuw-o3@- z`QG-?-{9EjKc@R&DmhwG%lB8lzeisiB*(3sPuZ&bSyi8njR*Kwef+=Qf4{o^A8QZp z|M30B#{CEP@2lr)8yg$y{Y-i<_)H*iwCZx$?~n7!6}|Td_Xqg^2~Bz};A+eXF?k@& zJ{wGvvtje%LM_`?|6A6aPm^XsW(r(*36p)R-^PvRve{}uD<964 zDrjraIX~5ay`>3)dmA}+vx`FgN&-E%n!USYPNE3SKv~e!lZ8$S4CW+lH79tJyE(=T zSqc+lHSUg*8ZQ|xf@q}%n9#$0da(bjv2%C`Zb0v~K2l#^tD6$AODAjQ=kx8oqn%{6 zR(vO3oUmTt-m;jqp0<8s5QNcMpTchubiTVyVK7}?(>B)2- z!3#{P7km4@p_JDP(m*@C^K{r5kK7_BeTB2}qzB>y6&vZFZb6-SD$)%~W|8M?exn@Y z5}}bYID&#Q0TsmBfz2eVkRqpxevfey8AleiIc3axT5#qX{z@_%H+;f7#V1M7p4#l1 z>dAur>NM(&vwzX)HG8etbXU(w<5v${2)0U^QJiv_d7!dN#oop*Mfhc6-hfUS6l5aL zBe%w!_dp|^(Wvu2hG@lSTFpTWqU!Nny!yr0r#(n2Mw4@E=jZcqK`WhHz^gVzd~O%W za?x)+ZV->J=@cq5(Yb{o#VOcKKEzsrmsJ`f!$L+wz|%9{nKYHL)gRrDL;+B!B9Eh6 zUgW)EN=gK1r){yP#EPq-Dfyro?F!!I3<2Js^e4S`R%PrITX)~#4ii>EK}GFbgpqvy zs=hWAI}dl-PER#HZYVA#y%Ur!iR)xCI(N&BQYC~n$9>xI_`RDTS5CI#=U)2UVNm`e z9iCC~QLOyhlJ@|F2UwDWF$_{~G?@a3ElNU&^BdZ#{YlNc(l?dl8pyNPP`tj9Plo=7 zqV&q;Z2HL6|JGLT-~awWp#Ocp@%=ab?*=|fAp;d?don&(TF_>4G)@PgRULteJiS~> z9*)|hzm6|k=lzx5sJU|1fBzVj90Fyv$zo#Td4wIvPcYa{uOHhT)%cC)402mdzFcrv%GI&M4aAS<`3*4d-X^A z{n7cPnLHVGdhKqSJpAVgee?Q3^U~j%!*24j*?QUOs+N<7?=G6H3;h09u>3Z=Kt}I6 zV_nHwp#Hl#>i3dk1rGjv_|LKW8V-d=G7{K2Q6lm1QV-~&-&PX09>mlB;Bu&higB{= zw4SW5u0B{+|9oFKThY4rlV$kxXH^@ZN{-Xkd9UB?pD8lg+j|8xhg zen?)XfT8|J+hQjj=?Zhl=Sl}34Etb*0CgM;V#%m~I{wfcrd!Ene*zl4(#YFN!JyqW z=_vNyYu{7YQTXVbULvaJ)Kj&+s?lOXYS_oYng>6A+<%??nD)}4qKsFQ6NSlSPsvbf zQ%jnvb9gd3R|7eLmgb{u6TkTJsUaLE4 zD@syGyhnM!&mW7&VCje0nDW_Z+*bQh@Jwx1;j@15sM|U5pD7yln^Vw$*GcL%3Ce={ z|6Zr(fjJyB@4=g_?&QN%k>@>ay1z%_hF8xmqQB%8f+#C$nnt;W#H!CNcivIcKWv>} z7Qv;oAGgPOv|q2B&x=Q5V|8E90!4LO$*e>7rDuMfuhoDr4SU9U5kwqw0H78cdA{MV#2 zR08^>*J_OG3mQTwdi#_5f6{}+@|zdLTM4gQHJgh{{oHuK4@f#wPt+Inh%89>UGq}6 zPv|7*{O^siI&qz=i^&*%u{y9<97JJrCdzbc6TWMza z7#@X<+G8kN#pojD2_G1^^+_I9MNnqeuLxhNbsDQ3XMaF7;5el}5XB$krE9!jgUwM4 zEm2_O!DD{7@jyS8xPELf-%eXygi{skzfbe?2_d+mYY5 zkB<*`pS(Uc56y#yU(_^r{L8By)$O+Xz;6g1J~?>3|I8^Sznd3MV?jeZKfl`Ee-=D` za&WL`T6?{}{lr4M``pysJ94^gAf9%QcP)PL@ynf;Pj(KSM^9gD@Bio^AX51d%0!+Y z?cjr-c8`D2kDeX8+}+>af4UZ3jShT7W{JXYzO`t+Q2A?PwiBhNLJz*&fB$ z>7#uvslb5G>;9|z7=1t*ZS4{tF zN$fj+f31p(cJYC!{pzO&jqPX84#k5F=fTT^XRr5m5;cEEyAT-6be9~emUa(!l7m;U zG;Et>UU<4~C?2MK_vmQ%Cj&I_$D?14j(05G>^$Foy?5MzDK|f0Rhl2LYV8}jP83-+ zUhMw(0=^{p<;T4zd#|4;KHW`E#|a=1zx-^zDcsg>ll-nw!Vd{m0!O!NB&5vE&21(p z%@JCS)$dx8@wsBfrKsFiO|<5`*-U;*D6f*XQmYc^lLx*^;5)FqR!{5!dh#i=lO$nx zn?#uDM@h2H2&ecnUm)L|4x|j8gUiwN| z8IBgn57~5u?psc8pU5SoKN#E7Bv2&riINSJzSJ0=G+S^;Jfx@Aq&P~lfh~s&IEl+b z1%o#0G3y~m4s2+A_PEFVo{ShH&S}sHB6_)HA(Ef-z&#w%&%6T<@YlU zC2UEUGU-JCDo@E`;JPakIw88W2c3yN1*QtYYr{O`(`+u4!B`r-R{R z+z|@8amvIyb<1Rc;I< zQ=gm~5TxDVfE1mFLiEmY$J9`D@+T?m1_kx1{XnIv9U1jtia}NDkf*E?0{Mb_6$ElO z)yBmAOgWy42(*K$)*0u*I<+;RZ?otSzZYN$Dzo|6qKwUM znNmNpCFENct;G`*TG^slnktMRXpAyqtyODdt47OX4oAn=BF)fv>6pi&h8_@_M4kRO zVLnk0X!2}^5Rsc;Y)D~yTOloERY%^S?LeD$$>VVVwQrt9-iqq@jN1^7Oh#r@j~#C( zi=Ci?YD8LxnSIi~bT*<9lsI~naa0XGsTS-1`5?+lV_;GLjwQOVch{3E3c&p+0Bo~C z{>i2*v3h>-+D*SXm(r8fh`8(&tCry zRK}Uk(=v>cAwJ3mQoEoLBP%Ls2`jO^m~%ecvxUk92%cNIWQ@+aK1`uhH9TWZ<-5ypy?}=&gz=3u5x$wvV zWyE#E0ae7h;^fa*a7tulIdh3g-eOWx)cR6lZqI>K=lf&|^il#iTBV!M31Ss0Jo3=;NgsA-0N_Nvd`GIZ>S#^fL-qFwO;d->jW{yu$Y`WU|oX-FmF!+;ZjT~gY1 zrY)<`Rp`Q4u0c|u*pJYtj^1brX2u-|i&Mfm%`pOi#e}|z%~@YBD-aZdY4fh7)swBv z+PNfXEi#osuL!Yo4S4&f!`F^`-}MHNRqsmr8s5l=sH?K0nQl1bCwU{op{}k!IhHHP zg*vzCIXdUMKKW}m;uK9BH?OGnmCh~cx==?;@@P!YWMYS7ruekbzg7efuy5{*GUlc7HFW=|)w%pz z>8RC>QI+WzCvHvY&t@W?PI>#p)ThfQ!skgl?#P}a1!N<}$0p`&mEmgT`B~w$m7DOg zin&jm{|1Pn|@-CZ(w2_5T}?}6Og0g zwng7}{$92ly0nF4cmwRAB6NHs>T^Pu%PJ~@i;c**NS{j(;8{Z&yMeVo-K>31=yLf$ zMR50A`E9R)c(u2-w_ah|yq;cE>gh$5o?c8prWe)5^kVuky{I-OAA4(+u(wvFr}gRQ zX}!XjK(|LlkfR3KUNi|yJ&>a0_+|D@AvVeo&=l4pZYg?p@G@vdJ(KUB{1Pki!_JqnIe~ z*#RZq%V9aOX-q5$QN%4H4nSqaNC~GIO#m{?K2F6IFDDsN-+duN;>b6HRwwqjEkoT~ zSb~lfFgku2g)PiNbd36(YypZX_^7s~xL{zaUlT7)$4jizwVQn4Ki8LXy1$Bab$9vh zjQV|$J8Xa2aNIgPTt3EK(sr{Z#0LzF%WvEcblQHx0Rka;WQT+#quotGO+i|RT#^bX z9OF=k5PQj>IX&~>u9jW96$Y$o2*saAs91}p^UiS)R0I*XR_nlr8{9Qn3D z(k?}yZU!wEiHW66hrK5TVb0U(@Fkl-bcqK7TTV~0GHz2ERU8}G4FK-`Dz%J*JZ3Sr zA$nt`VZW8^WuvGUBg0?>Px(Qa1D;MRz634GRtuPju3n2CnhnVx>9ql}QeYku4OXK+wSfv}-Nont98|Jxa&0P~L=%XT3=o#?2!GcaIaab>| zEPgf<_vuuG8f!Sxcmch7t(33o0l<7lhx(ROi<%6G3l$9_ZhppyTh~>7ckusj;zs-O zJi1_fnnCB;_{@Z;dZ&Km3X*gr%Z6>jhAp29Z}C%_knkcuHucfOiN$Y0eS0Dh_uK2G zka4I%ex##xT)Ba9r`t}s^DK-8aS48(4?|tc<_e*TH)1WqrGN*4#O()MhJL&2b}!=r zcs1Y^%0%K>+D##+R0O-&P*z#5Wq!l6N~^#h|8fM0mI|)q*BCyTc2G*893o|>FP9)= zOJr`-@%-GpoAXnfjfFut>?(e+%nu?5vozXjdxTu#T zU8gXgIlr@M7@`7i8g8foEYAuT!&O|7jcKM?D)_>zd8o&+HQJI={JPRev&MAgEQ->M z(ht>HW!u0ZlV`N^*(79CLx22koF*i{m(3|jEZ&QC3UHZ=@e{a;g&t*}aM}_r&5KF` zLD5FV`=a)Nr-W~_ppCW^De1JT$1hUPWQ$=LnDjcH3z$#32inmP)~smi~w`ERYSrRXMV$4oS|?u9(L0n*QzJW$=ciGQF8a!)w^5KhLi7- zwHyos*U|XJta6{JFA{4}f}k8y%<0`+?H_r|ONYZ=Uv;(0zdx$)3Yc+!(lu+Ja@ROl z0I*t}e#1xXq<>QHU+*34|JZoB{d4j-dA+-T3}0>KkK$=Y8<^&rUZESvf=tL*XXu>) zZ#=Lgjt#i%sHYvagq1TzdT<&;BI~{z)9JoWoLVGzovEwfq8ViijoKsKFr(P0$@W#$ zs;TO?T)VeuKb%r4fyB8N&0%tqcKaU^QQ%&!=49Ox%X?Gj;{v6HLQIV~{8B!LN+ALW zg`~pb7=|yBeybn?##9-dGTY2!V`7}nXHzF|6LZ0-eH+t+dUX<#tyN1%wpEMt%ut5; zMZTn{&6{f0uMS?@}z5K(TZ*f)vWxIC98TyxC*|#!GD@ z{X;vcWt&rVi(Id;#e$gFWlA|+I&U^h#oZnkLeX*}b7z-xL#}0)^TK*(7c2GLbwyS+hWb9uL93k@Dc zRx>4rg6^^Lp#X!*uZ-c0T} z^y90SCF6gh$F`f2dNrv;!dKzibM1$pvvagQ3+8IyY+AO9tOj_ayZhzdp06aRhOE??^RSzQ6MQJgZqPg zYHI1!lEq|uGCuDQ)$%(Ur-O6IB7f2BcGJtH3g;jhZWG{r8V+u+E_7 z>j8w#Xm2LZn(sU9)MS(n+V+9A4_4NZZ$~ zKkW}LDVO=e(|WSLx_W>4`{WoKO^(ynd9UB?pD7&d?LCbZU;80>nRXTM{g1XdWFFh? zwN?O{qyFjmLvyHPuFL)emEB?5R-y&Tj7evlG<)rP3UUQ& z=kyY>FsGhQdTk}LkIz%3nTT*<4+i5g|H*J&v%rb$zE4o^ns z3MVJf(j3%y4p1C16v=Z)%F%@RSTY*;`ihz2=X>D31wU^8R{K+@*XmB%sUnKY(LIb> zwQ~MgJnnWbI%DtIXx#4f#{RQmr*{U=F#QO67xold7ZWKkHOBRY_x(=0zEuMgCzRUW ze|C7V`^+{q&m3#e9FEeJ^ZDAJP!zH6FIUFR6MBIL&YD{AV}+#Fd2^U_JH7N|a{6Zd z?VI)Qzkj=>UrN(w($#iL`0*hf4%OV4-ZX0Af=Fhc%*s-u|Sf zpEmuZ*YETOld<|c;lFB-!{$JhXby+X%UU-bkHI|kW_$U6n#=$9w$|>PbwGB1v%36W zZ)?qNZvvtG->7%01U@@YKfZ5v=b*s$^7H2M>08y>?b@%smBl%*eWHPz>}c(UMnjSO z(?+A7+_{tJAIalK$)9U~8Vs9f7tQ3yr%#i1r+L=vk6zhr*-A4HV> z!SZ;hh!2;$&J>kCcx#O4 z@RDXRS%z==p*PLneWzc51m{u7BYSXA=Th)t!kwqm2!nP%?<+2G+U$*juG6g=o zLI&@GhHnrwn>*{uX4vwJVgXxRjKoQ96;!h$;i{a=>Pn=%@+(mhQ-jL}&|?8Kzg%JB zr7Wd`6eq3-<*8-1$6V>OP;UG5mMG~t(9o&#e)l=P!hAwkHA*ieUc+-Npz*44D(1={ zR3bBqNEeBIlDR8CAzk+1y{ZPoGL$1BTcqpo(Jmu@n+7FI|~R%$IRAi$OYBLkPJZe3R44qwCgJwbeo&7EqJAgRR}ZOmCSSOa1L7tE7`!E zS2CBdtzZfelhoF_E0ZkOVUheA%hEmjE6PCY5E#C(!`5SU`IEt|laKYvN!cnZ$YQ#l z&!qi~t8Vp>Q&TXm8buBeh2c3C5FwVYL_V;U8_whC&EZ)(j+N#RH`q4E zhl19X(9gtZ+vV4=r;_@5#V6A_^F<}FdDf_|^g&u?9WH>Cw1w|V+aGxRc0LIX# zqv_b74{#6=s#48=&lP#pQ+NqcGS%$#$IeUj6kdK*ZC}+O?^@o+)cW~=7IFG7Rcq(( z?ly^WTA)!S?WgKJBuOmQDyCC}c9Ys^6D-kJHOz}xsxFqK%8DDSs*3&2dF&W~QZG*~ z>GhLe`~pvYfg%*31!YV~_~6P2_zp^)0y6~=@tR2q5V0WCq&v7&+uZDRI?)fQG~X@N z73>vOw~l=d)ocx0*p?Or@xmpRjDla&w>#a1OwX`>zn$h)r#pxq(cv=$vorh`gUJy@ zk_dV8J46S>&R|sNfE?l@F~YB@mcXEiZjn(Id^ifC} z_}XpoH8nVa24A}kzNQAp(BQG#;4w8gh6az_29K%1F*JDWHh4@8cA>#Nx4}JXunP_D zxee}7gXd7|g%C))#OQEe@!Y8g>VT*RDnP8BQQUPs&_6^y&^u!FjM8cP1A$t02;y|K zMbMTMl7rQ^caOUUW9}Rd$Q$gjpjF=8x09*;NojI=!e0$bC=}t~y zE$uzod;P>ILyxf7{Jr@%|C{{U`*ry1_}A07ixHN(eN6rRI*)~ao&UA>cJbGF$;|#P z3cdMXRSXM#_v^giI_v<9rG6s|<)?+;&=&dW>P_R<<+t_4g*U&hy#0&!w7w{Ku5q!W zcF?f->AS1dkH3)x^V4@xK0zL`REHX0)G+AZA$Kw^;j*va)|T#nTKIKE{;dCY|C3YI z-0`HE4BBt2OAkKHZ_fL_7xaUxH=8R83vNRjq9Gox>R#Xos?`7D^dEX8V*NjXLGVrT zc1`^c6GamV^XQww*`WGgPBq=Vr4em?bR3K4lE4n``c{9pq1}wvR?+KQ8b`_5*fgDM z2OanO$w}wTnn6FYUGq;gwyf<#A?n^@(oPixqzRZcQwYevcu&=Tli)h|4ws89^x?cS zPDg{L0sxE6KY9cUAR^7e%Uh4;<-24-2OOl=ckXzvQSgR0S6AK}7N6&Dg$>e+|DDeq zq@;+%NaFKL^NJ}bs)K*G@ZSaXZ&I7DC|xA^bx`0t_v6i@D( z)wd*EujB#-py`8~`AKi6q@J^0=l|ev^1L~0w$#d;hfV$V?c6h-nxYe7QpeL71%M)h z)4@YXCsGkq4Z`gX~j zORT*GFuZdkH2VwB>`%44^DvD_I$Q$;a#f9aJ~aCZvHg$j!~Na;A8#DrjG$FSZMnll zz;fh_a893UIf#N93SDYZ^iSoR`ZCCBHHp5-OI#tbM2hc?oUp-=`yBsOOUn_P>8#g;$op-)wnDD>M{-)c8TQLg;uqA%ZH&@l8R6vfAs|Mp?11`jV zfM0s2yY(*t5A33~IWA#GX=~>W7mAtTnnr>_JDn^))>myGB?>0{xCgf(Efx@i8cWZK1hn&6>CWS=588$2Y{6M!erLSKM;i$U(f1Uiv*uFZ%CO zI}I5)r#6EbicUh_ki$|uQ+71}uf1>WZtF%8+^^!VfR(mPx+z-nGcDQfmL<7c6WQ`u za?&}rhv$mClo(SaoA=VTCh?r4ACu`#Z>MK>vpZ+cY(Hi`?wPZWJMJiU?0o1yK>ees z2Y?IU;__iD%8U2d)O`SjLZMJ76o4v=Ab7_$p3elB?&}E9Y8=!CJ7Jio7B-|o*oQJ$ zj6;`~tf~@0s#+R3r518&)eyL{wL7Ry+C>qEJ8fSR;Jda(RG5}FLXmHaBPQ<=P1+g} znjIrd$lAtxy3yq4>0A_4>Ei`;bGMyQQ*8St z9srBI3^y}ueIY%hsu@*=qNz3$e0(aVeN_@H73UJ+flr;+^_JbK+-maN%AiAXDtZ`- z7^&%1{`l6*5D;c0K@=;7=|@a_hiP?hIw-=jp$4B2yt3Qiy_RSOt0gJb*Q8fXm|Y%| z@G0^{QknuW1=G__C(<&6j6?Wqb_cgVOl(naNY~l!DHdvywqAG-OsP%WWh!qO`v3NU z>X-xc|C8s=&ZhMLS(p=y_5UybIuQMzPZ0Q&{dyz<5!IVpja{@~+`)~=c#00D2bf3l zIPGN*I-B*lgIo1!NhID5V$iF0#bzjiN+pbpWZCFQd00PR<^N3m#H;0%1_Qvv! zI;xmS4qt?@?hGiRyhNWJ;wdrEs#i4)n^H}%^dl}0NJ9>o*8=>r2mHh7$}2%jic zN{;&;rB4DJvs=K;*Q%2EJ$t$}pE=1%Y1&p=Q!DqS97c`IOlIm-kSJT}K_!itRfvUl zyMYHaaE=8{XWu?gB+m$BzD4=b8m=}-4 z0oN0J1p;2zipj8!xiDD@3#`C#(QX0xXq5r50ic9Uy?M9A8`Dc%YE9In0USG8v(=pb z`>@jzc#5GL6%lYVDN)?3HyWZ627FYr4&VV6VcBVQx3&q7?I401+?0yPP&iAw(`pA> zzy(|%R6-Dd)L8(-Iz|*mnbF}M>DAjt(b~AFu#oj&hYqr6a77W`uY~QGB}BbH1rP!e z!E6Ys6NnY&FKG5oYljlB%))Bp(-vmdETJ+5#5q;0wE?pvsNTaVZik|_(U}=};>8;A z?aLkiJKYlpKE~j9c<$Vptnr`jo$>$lsgo!F%b5em#B+Ve$A3@z(<|O+SbFs!${3*k zojZ5-RO-}H&`_W{s_aA`eL$Uwf{?GT{?LF*01GN7U zU%U&|!MZ-8s=;Tt!*uxAdkks+f)y0-2(*CLl(qL*5eOeY+5Z6Qc-^dIDOb97&8_&f z*#B=xNgy1+ect;sVe&abDH1#;bMN8)hbqYS6hhB}E>>M{IJcc}ZZ~J_90Av40^9 zh+dxp6ioUMXbgA&4p8)SEdL>u|7iaMe>gvmnL*xJ*;1_lHKUxJILv3pt-sTO!Gcf{=9oxBI__yFX(^ zK0ypj@?z>o$fdu)M9hvl%VV+sE5*E2&abhdtUg(!#!OfVxCM#%7feXt5Y6l=6m`2x zCP`3x#))-a_@9yh@Tvsz1nNrf_kYv-6ySaaUmuGoRPN`3%AH^SOFl$FQEdT0nSJnLirh` zctT*FBk_|IkFd`X6`n9;g!-aqU|n2C^V{{slt zKf?ci?S0hyH@N$MxzYxSI}qr_Ths7M2k~>gKOhexSj3lG)yLa=fSRJaD~qV3SQSlm zvq#jg-(%Sdq}~4&NpF=~x2Q`o2N3Y?e<+r71%^zEf)siKcN5?ZVg~yCm^czz<^F2_EHqwzfi=Mh_U5wbv z5Y7)vInW-Vv)Nf_cvKno%zkZZuhbqWSf3=S7BkQuYbtvr^Bdw2>=fZB^5nm(rF zA0)USY4-q%>h{dG*b|A_-oxRS#*0LnJ>LH(t&Zf0_M{a6OG;F%l(HO#A*J9`8dyKX zFNI{#_#@3VKEf$MvzB{BkdTqx<3;o_xo>8vz*5|la^Dm7 z1n3G%L9rdj?P@8;7cKb!DRQM+Jtrp`e}W4Ap2om`f!~h={QR!>e|rB5=N!<+YDCY! z3JR>N0>R5%?|-5MB7OHUvn2{Npu1AeuZOj;6E-WMxW-;>NI}NYg~$)1DIpfkoj9>o zkGH#<=ppBX%zdrXdMm8NCpuw`=lv({)$aiA+#tULf&6bcLxb^q#Q70wZPYt}nos21 zi2KQL-IXHTCyowom+9NT{m z7Di~&=iu8Ab z3Y^y#bZdH@esMtzk7JkHjUcYIIy)jCg$+cuct30wv^B}L9c^~LBKwg@3`nv!S_ULZ z$S==;#1r9P!s|bSPKYxM_I>yOB&vPUW*O@R9- zaj3Ley5#esNm{Px7yBO&f=ZvZB{A#2?~_^~+Yt0B$&fH|G;2x;k}&fqvRSh-N=CGB zcKBzUEEm4a8TIh9MPr6(=)!g$qn?Hedzt67@UqWb!N~eTbJ>3La)VziqY97qj7Mrh zAaz}yvp*(1(#FO$6lG5+zoJQfm5Qx~o82v(S3f5U(jIjX>}r3J_A0{?v1iyJ?Y{NI zGuQnN&QgZ9SQrK|oIs3jtH`FcIleihH74#p!JK6{Pum)`bTiD-M1~IwquT?9XWmf_ z02-5Z!X#>SVzNpB2@G{!wu%ypYG5^ty1+U4mWpCqK(tsB|AadMRc8M;NGN;QO0RDX zv=4qt0G_Jh_EYM4N=WxoHfu)r5p@F;xDV|S$(2YBI#9O9AoV#3voDD2p6~yfDhBh; zpotz=p%J1GL{-J0ZcNl=Wy$3@;Md2*A2g~U*r)X6mo!{|4(zX#D%G)2w;JBs2G~C$ z?$c`@&n*jFh7ofJFujkx!vT%kd!=C}?_bTt{J`erscGs#PoamL_I@iT(%;a_o&U#S z6d&{spcmQybN0-s@&2DfxV-IO0^!7daSx=70rnp>_oVDUXHUpF`C z6~Q3)N^bG;>cWrL#Sbrt=`At+1}J6l3;)C3<``cHS7&PctoyxYr;IaT}4NrR9t4CoG_ke#dzq)d1efiqj>Ow&T zjZPR;cX2~DWQpVseNheDcmSnYsfWA)z7ql*C>T&`hP-iG9u5h_-JsFsYOgLK=(2{N ztJlJxiM&~2v7lqixT(b)5Tr4e)HEk|UPBG%6cweYm9kd7F14&`;W zNzxR=G^G8J_}<^qI~#)n!3FqpvYdm1TWN$rb1pYA-PsY-HM=(AIFvIUHom!+SN=;5 zIw&t7{pJ7J+0!%W{oki%PLAdOAzaD%zi3We?gY&{FdXcL9W(^MpPCtBhfc=47IYer zq;jQ>fp5h5J3B#ThweQQf70=Fituw9fBMAP`8I^j!QxdnlEm16uBB@wj}MUzQXPPF zLKWeF7T%9BD=t=+R1_sCc{y(;*$BA@rqhAw?4PW4Yj?%gL&XD4D`=<5?_GLtMVFRm_NlCzmfl-p5>(>Wb{O8a_C z0xr$xF!))gX~&+5qH?_n92zvxJ>fjN#7NeI#088}UgpgkOP9*Z_2#98_2u~_)Ro~0 zF52DMY&FV_U=!N?<`2+g+S|E_Ne-_Qp>w)P3ZfIjy_lr1GD6@ji37exAGz`tgP+hX zhXm><(VRZHr97A%RNKvZjAwL1{!8_tL$*$h*~O_-ZKtvptaA|2{kWAfK%=1@7#Td5fZ6klsLs zq415Bs~b?)Mc@r_{ygNJS8hcVy&Z}JyBQQ`9~({zALViC)ChLV^=dwok_P2vSH+Hp z^p_0gex^BWQP@2N#L<0&0qfFh31q?aNCfN?H;oc*-!$RfMz@faRy!<%j?>*iEa_2P z$PpfS=VO7+jmN=endk55w1tvbMU?1VIW!J>5}06Zgdu6qFUngazLX$vJX>E}gRuaF zvh*=zk^1J*=xB7C`a0HI!8bglxQ)lnXQwtA3;9>I6~zaN!Z@#PsKwx~(NMKUu$2-D zymwW#Tfd%CM32H$P^5jFhVk@80xPB{+6q+NzNjP%Jny|ke0Y!#9lP1S$O#N8nwBGZ>`bM zpVs*I>2h|jjlxFF%GJMVc~o+|jd_F~PAVzB845miLt>2-!j%3qSiG?;VH^oYB9=%W ze=+gqgEUyc_2CW)kpA>#4?E!?{xDN#Nh(W5QR}gM@aRqHUj1cPX}B7hY@Tp91)_91 zs9DXyOq#)^93Va~D7*ip|>|0|;&CtWXzhY++?ep0EW13@JL<^0fe zkTx+i%p_Et7o?8crU4oqx(`^2fHDkujHroT1e_R?L)S}&kj#e3p(lriC!$CO52YDhCm#G#Zeq}&Mi2NFvl z>e-sT_yO8g>mH=Jj|X-tqK%qPu3!!zXQ#dsbaqp{bxLW_sSeBeq7rYNF-4$jl&jvJL%Xz=Zn}eV-TYze;nWM(lRiqH0;lj0^Q=8tq26K$Q4C5 zLbsLmh;s!ETw{SIg;MSXyI6p%Htu-}DC`ZcFr{sVNsaPsR4q_jr>keu7sl4R!2i&x z$@s?M&pnD+5a*UDWszgdwAI@3BUK%+KBly>A8rP>kX;(0MfGNj^3w5Da{;P(a;hn z%3d?jaRij$!4;i0P=qrov%6P*`4ql^_|O920DN5W^%lT2R+;#2K9?FF2yZH&)Wjw= zIM#1pz)+kPb6A9DWp#p!gHooDFbG~Pgs_Wc7*eD)qoge*jM`hi&d1Nto8C(IH}y?* z$+xTy=k_;#1oEf_tNvD$w{$J3-#l=uD~D`1qJXCjY2|jLHngn5W@{0sAzSOx+S+P% zYl%5=w94zY(-#q}rS^gRAnfx%ADRtO}>TuMKqHCe@yc_7UM)5t9s{52n(;^G=@(3s;xYIi{xi0w08&T!S2 z<48J(jHR1SOWT=`cx|m2d?w=)x0-po2Z4sOfqRfa*@!@a5imNUfsmYLtB6^oo}gp< zRufc}`c7C9Vzt$}qx^E`P;uF+#{!bYEp(9I0%Z`Cp?X{*UB$wEz18V}UeavENeN1o z&svY>9VX?dUL7P6)T!B|U$8QS616CfqwFjyW!6D#g-a3ZD@)Owlv75h0zTJAa&N9J zV*FT0d3%_SMlqW&BqK+c*^R~o%TUAKA> z)CXbi*GRN&Z^RXtrsaiva$D9*RB>m}>M7A=9unezAWdv_I13T#7RgeEuxBpT zD()15QLDGgo;Q)U5@RyM%B)lROu!Rqwx;|EL#GPzDz#k0du7$j{kox6ZTk_PmH_g} zZ9@1?FeKqS0saTVcY^+eH`m4dG)D-TG*2g0G>9?@KZpj(DTic0`*9>DG)q-rgtKba zpHuz375SJegAMy7&FI6iYo4D=&F0(bSv+KFsevM6V!|T=S5a;!b+?RBW9lxEX&-cV zzw*B3f(rC8obiy$QU*VKvW$m0HN58Sgo7-DDJEy~^|yt{UX01Twh)_;)Tnd9f}6BE z14$a*DlP?VSc@(1Rs@wfyq`DjiS^+Qj|mL1r?-V(;WDxEe}S}yQZ zjJD6xrwPxd)cWn4Z^;=gm0za~ph+iJCDBK$lEx?5&Jkh#bixVmmS>$!CXz%lfnb;> z>*M#)0P`07nJwBMpjwhW7;)R~nWBNpJbAv^61?g{KC~`Q>ijwVs|-D)ooV_yYF0vA zxdSEHhmcB=VI<;dgxPPj83f1%LVwWYkdoUQY3NmOw~SHW@Gab?%qeYB*sGLgm^p_% zRoB?fIYTjECOg+g2V@)~tR_`lA+DZ6Ifg{C zR`SDghs|s-)7vQebfgRc> zv#@H8uqm73Kj>Gw;x~+;Jr6wcazIKJOivNP8p;?5l55RP7l8LgrgOi z?JjtB%qvT(wAU*=1N%Ma$=r9g*y=W_Wb+}z5T%wHi-O{8H6bjdF%{28;9s=RJXTBJ6<)cG}LxHyeG=w4b!bw4;xjv56`zl&oj=ZL>EF6N4s)@PQanf zv8+0Q&hr~kSAm38@k3mRln=Mjx(pf#R!Ny=2_>Q@Sr4<1w9UOOr@mD!%J2aw#|0(= z4AUiB68Vl^s_iB%ExXgzOG`6Ho*DWO0#bs_8hcVuy&{f>83tktIuC@jxKowH?oTj+ zyNS4?@3Ov}OpnFh&6{dGls(p{q&=wWBGtBlBn~^(Juw0#+*iuf_1Joty7C2$R#B>&DHB+BVYHLWQyAMfjKUHt zM^au+apY*_$|J9HTJ!fzpVX`iq=Myqls zpA5tOPOGKIVJS`s2&po7gQ~kaiNDooZ3dv-D2c!cEP>!C1~igi5R`EG;wBKRvaLmM zO8!hwPm9fPtKO8tfb$7>tpt)Rn84bC$d*H-q_9$AQDPW=0j3XG@R2xkV;d3HClozo zZS)qv_N3yjDw=^x zLh4;L-cpv9ufEy0kfpG>`;ui`U;dlr#f`qDT&E}i1Ix*xK6;LlOSV$GS3TF;FNpBm z6!m7AHs{H}-2A=F-m~WU+z1qUm%4&JAG+DC-JHFxcHZR)1~5wvWLYzxlswtl1ntzX z@L-$huaN zi)+^|H}RnZ7fy$!Bg;W0E7SGRIdfUt3sw zZQ;kudsB()^L#--{$fu4BsvM`vha__*j&O5X%J6Xy4%uiMZVnMYAEfR|X zcOyJ-PGgd{`qb6@>|dN>QkUle2z={%vH9?J)=)9{YwNlA4l4WVL;DhFpn= z8Sx;IgY!zz5Hz(T_c+{OOHc6&B^R+M)f%LtV}IrC2;|R%si_=)fE*O9W@DF7N0}ox zv5;SS-fct3ySqpw9+xnvCdh6tdk zNl`{Z_6{J9(7@Fwsm0`FzbJ@z-r?iAPC6POqdf9iQFWrCnDJB29NH**U#y_XfnN-1 zpo(ERfQ3agqRu3Z86&x7?B2PGol^37o}Ggptrm#KJJL~tN}7MO)fM;Z4RSNO3FO<= zemXlLEo&)9YK3IoLQ|v)Njj}vO*1X&GWTc5oq9og&}xQS_fiWQ_;;QRyV}tTKtaBm zm+}w?{j;ZWr;%sltZA;5`~lg6&3XgmR;V{;sZwjLPB{!J=*WTJnLShAQ zmtPf)(rQmBVWYj>us<*&Xv=!loR5$ZxIyKvK0$<%K zDXguo?O|UpTTFKXzZKpQpXDFO|tj|ovlhyimc=CaMzg7@`z0{-Lz(8_gc zI5zbXsteYCKzT2rm?Y$K)jG4*8F~pS#A0g7)(=M1VF-6yjS1_hTPW2T=G~*{H2syD zLG89oS^{N4TFHDvmt!kM$tuk3kmYgy!NplLzR+iaa*4U#n1e8xk)UB!5zv@MIvFi` z`?Bf`a`M6x7dhT)bhX~=q?SHw(;4IkRdlmHA!z=~pNt0Sp;mH@sBCU_Wea2+#WoKL7>6W$GnGQaym17i;XyC!q zLcDfxZ1$LSl0*wPTREWv>d9iHYoYJAv?meGSYxyg!W=u9fz3)hEx4oyR&R zHC(AdM$N57EK@HYfev!Hb|fln4ug-Wc@K||TC^PrpNh9taBeAt%ow>UDlBH(qo!` zP)lmfa>LZ|r5VvgE@ein)$dD>8mKf&lVU+`rl7S750DFJB%;#OQx3y3N?w2EGw06-NnK8LC7RszDOPctwdY~#KKORwExgv=+v&O~H!OTXYg{4Yy*zIyg zcl1prhwq8@riGFEV}lVgmji~&_%qpYQg%75_H#4ikTv6lu)`3v-k5PtH=+4TlfBkd zwp;Z|sHu|%kW*VIsPyHZu56UoZ!9h@udf$yuKZPp;P^_ftoSeR>X72UoH}*(%xpUT z%gNbs{Fg(x4mya5GGU*!1b<%5dC(PuLnQ33fPsXhgL80CyEhcxiIM9?k} zhQI=9o*ztfFRdfS`FO1U66NM`uUtQe4Mgjx)$LSxW43bE5D(5JTgb}AXMbfjKFgPt zPahM$E!&k5othF)0362WOg9?oJbr#zlDF>@co!txpt zjpG<7v=eRx9hlKaG-Rp+K74-32ni(t!UX8j>hjVA!#e4HhAETz{j~et#3pZpe8&M% z@QO5fV9nE&_?12srp|Zko{zNi9+L7od^?iI7{ij3dx_<@!&j4ilmCs6&?Ni=#b1`8I6Fe~JgOomp!^GRl(XgA|=X^Ce=$wUTUx)Q6clBQn zd~wsf4_)n8dQmo@Q5J>`m}(fQO?tZYk==-*-)kj>@OvT z!N4O=qyS0Hh=R7b%Fn1_1{qX4MrWPmT!OYAZSU-qN+o$tj=V~vn;ofs?F4P!oCAab2M-ys}F9;Kw0 zKa^~jmen3($3uR{L*uhNU-z>-{X$%~6K}=`9pKt{{X$``T{oZU*w9(bC;Rl>FsrKl zSZ@$lY2fIgdK8Y*8Osz`!s06L5Y*Q-YW*es@v?W6e)KV%B%>$O*z1PWw-Jhl=1$B_ zE)&fQ03hgPC-ym`_4*&iq$%ISeaX_1(Ta!2p(6u9mSFtwYdgq+3+O zQjT`yL94v{P)Ioi9>!aCKPfeUckm}Axccql#0({5p|*P9J+JuaL~*jg6g@cL6rn?* zq`r11YegRBn)OcD*ey8OPW8`5Tbtwx7?aKgaC!&;YKhSg;YZuY5O&p}v~bMQgfwt4J$nLc8%<*d3Ibd90Ur=w?bw1~UZ4b*7gko6v;2T? z4KVeKSKz?TOPdal(zE0dtF(+vUdGV{z5@_F9>E#c!vIpY_F*|f1u~EvyMGW z-y^nXBjfM^)I@qWl5R&{{5*C$=tOd3Y^}c4<)co6k7XN0K|??l?S?Xr=-yI36xaz< ztxDbVTX`gQm=m$~%Aao2QXKNDqIa*2Y2qB|$ZMbCqy5W*zy#(ej7svvouEg+n?^hrK`^e?w%{**OZ- zH8G)VdU2=PZBqhW8IKh&jdBIetvq5P1i@?j+9QCCjY&IFFTUZ#BMm5S)#)2=8dO$f z_R%W0wkEG-M$@LQ{9}?OJ%bI&*PotxW}IgBn7Iz;%xl}ppO_)XXJ!wNRmW#$Gq5_O zGqV{soNv!*Ro+T}d39m^HRO`7`k>(W8eijUe2uU1HNM8z_!?j1YkZBb@io52*Z3M= u<7<44ukkg$#@F~7U*l_hjj!=FzQ))18eijUe2uTK)%BlRLUApTR^#5SoRshcl}WO;^`=$I2p)D|Tt zUU4>0vl}Ek>Ia5&|z&(lBM|7UY^bMx7=XZY{t=4Scd&CO>|{!~{)Z+`3i(J+7c+~3EWa_@4Mgn>72?X4}%b<1ZZI z-{w=^|3|%p?#ZBguYIiE|4(+dcD5Gezh}?C?El~6v$n<y z)H`4j5gaPO7<>!!V(_k{qSpA^Ew!Z!5+a|tZuT#$1 zAQ@-ZZpzu~B#(VJ3zE3Wda>7bSoP=Wx9prpvyijX(Dite4e}u4Y-eY)$zCNQgZjrE z#x}RNwzgVZJDblLyBKsF*1h8CJc&6A1e@_R3bKs*EK8V|%;wCEedY%uOM_9KadySi zk(&h(ybQQ-STbhWG!QHdJRS?q{KU&aC~mS*o-uFg#*-kPupoox<0NBl7$(=;Z#&K! z&CqGe-DnhY$6@Sz%2i8(jgyo`iO85xa{>SRTm+MtAk5rL&fIHv&gMy;I^&dcKZ)Rt zm}2?ZClELbvNmI{=FCgtEOkZJWZ9I{^6{9bZpcpaQ5bm6ksL@MSP*AC_Nl8$?xt>> zagJTFRb9b5N5R}`WeJM_PLZb^JJrJp1eV2tx?#wIOt4(=RJ36x0^!)8F$J1Cn}q=v z&^gWzt^v34#wqaTu`p&Z#?iR(oF&Vr=9;=0V1+YvuV{r0>@fBYZJ7o5SY6^yIzd!$a6bv2UIiX!!5Erm*MXQenz}2N za*qdB&`6$o(6rB4lH!C-c*cUvQ5D@7ei~JwjKow68lgGH#Whc}U01hZEF6mVQtCGUTO>ux!s_mRp9jlkrjYa5Y*to~j%nf2FF-u|* zjDj%80!fFUWtvf^az)LVYyw1b`lG}T#(=&!6|a+&@eeLg>82`C*__C|DRb47H`(=+ z!?trKshb5jVx$>t%z2ag$wkH{fyBR*d%-N=aVC(i6tjTy3fqVQuC{5HVcilsXH!1M z4c64CW}sI#1p=orugzE|_6s<~G`WT{kwONZMnHqGRYI6-%7fHVO9OkDS78ae4zelB zt`jCQJ`=mFzSTg!M2yp(bvO2%`gVgQ<1tSqni!nvdK!3BoFjoRLq2gs;&=l2vt)Tq zbA{d5-#|8m%V_q8Pz zAm!r_mL68YXv>lO=rK$AEYFa`5W2jE*WtX0otWeaK+2{mcQX!z+Dl@X%PgGJ=p}QU z!Rrk8><=7iD^ifFB=E6+AE;wWBTl(S2jGm!7`7cuy5^iPh#>ZZtH93zD3*+nkWeRD zo@ufmW_&z`aYpVX@}X(b%q&f2X}~i#owp^?~;T)9rRD%^-jKPvculs z{H*ut0$yRkYhHcC!aqLM^Moa`i(a?Ev-UP{UUlA#;K!f|10fcMTo zkVbq3q$tSFGzo#Z2zM?;+sK{6tQT~{cXG{tXbzQ}TrFO-Y1(V21YfPmMm$Wen-0n> z8hm66#uxy4quP#WmwJZy#|tJ7f89>8A#$> z-%mM`NmsDiJjrWq$LV-ka76+_BIgwZt7ZGb8YBvnAb1uMGGT{Ahdm;(D3#@z2yn{_ zCcI>(P{jpmId;-KUYL4Gl$E5z{ic-Iu(es9v2mJ2W);T}){_{-?J;%;Yl}Pp$!L%v zM`R0#=BS?QLG1Gxh+Z+CN~Z1=05{@1Cc-tEvkHhCZRZCPaF|B2GzW1T+7i%<;yZef ze!__pY_&;lNv%t%f zT!hrSJ0n`|W;~p;8EkYhg+ZW!}gXahiwR;tGK7t858H5Xb!cYD3A}QEs1zks!ec=7T`eKgbC2i8uOK;YG=u# zZ4hHK*V81#w!H}4jNuSuNmQhDVh=+4Icpd|RHO_=I zm4Ku85_Gn}QWX`39Ra9^)r|&GNDN{L5a^gvKZrqdbM4~6kj>Hnh2@TQW$G=9ikKyc^^jY468+BMwqhFDJ+ zuVx#U3tK2}7|BL?7%Kh+%`rUeChRKU*Cm>WtrQYoz5BuANUnB)!CEXk6FeL%ougWV zQJ!HF!0V8uYfPZYCoMs2O?i`um_>oqXci@ezvn?pDi~_9)L6UW{2#41!Lku46;LN9 zxrxSC?6cS&co=m8kOhKq;EqDh1eb~zoFF((VigjGmTt`^@+Htci~tT-B(XaRQI!j# zQHl~`A$LGw!Dns?cm^E^DepyshgWb8%U~y%dyrNZBp%$NP0(YZuDTd!BDkZ$$E{Q% zNT}~{MX760I_H_L;FOR~xREg{t{~EbXG|h7bTkQs#Z;U!Q$fON3Y?N@Q5)(|C~GMy zgQ9@>p+=A30u}_Cj8dl0DZt90z;QC)r z6Lt-3nv`Sb(;QC7nW<7h{d=Yfrkp2aMj#j&`acv@Mdp~Qqb!l9yA&)MF(Y6}5in2k zJ(jvKxTe_^9&a4}fv0r*Rf;px4S@!IFo|i;35Lbe%kbL1;$dT8jq*F#l z7`fgwhfV9)|L}z;%gJRFwH%-P@ZvvN0%4JS_c&ThymYj4VKS8 zjpP&7z*~l0K@3wsl)^Z(qI@bDGcFME{*oPP$&f)tLG76vW;~6Fo=GuAnr%rvFh=!Z zjQ)?Q7r5b~x!x*$7V{4y;q7*a?yQ3rYadEQwJ%t!JS5RX02yz{5jx3? zr*vo)bCL0gluST)?eW7&Ni#iIrw!3nNqN3TJJ;&*d7o-KFbr7+P9RSuE zsV75358{dAdLDKy9WqclcBLsAv0+C39w^nSS`5VXD>novOARbwpAxrG7{$hzm*gnt z3#Uq~w5TK)DL_8XCsTvA2hw6rO3rA;!_aUlF&ZhUi;T$ts{vzA3Yh`0h!jDju4yuX zN_3K6O{v9_B^<(3z+V1g28vufKuK1w$hje^fHe~oOc{@6nS(OUHA;iY((ae{4)hc3 zN`!-GD{^yS1DRxIz(oRBNXzb70hXipp_*V2q0uO$i7V->a59vc9hVn4gp$wv{(U<@(2uFLCnT^NR%ZE+}I;=?fwV>j3^E^%n2OvNo{MJa-~WyNy}$0L*WA_zLM>Od~e{y>#9>( ziblF=FbXnK)rao2w%*Hw;^KIyos^FguuYHVWEewzg(YB@l=pS1U|gzXZ;)~a433`0 z8tUJbN?mJ>GZbLKObr@G%8)GIkf#W3Vq2GJ82A-jA}3mufjOHmF@`D^3Q3-VXqHILRDaC$VN()UNdOS9xzDC(;%YngPLdufBqcEpvY-d+RO~=$QZmRfj-zxU zd){WfF)?;jr|`e$+A;u4AkEk>xj#W&9tkPN>6C2FP7sfQ<8W1IEZ0-n4?thT>SS$> z0_j^Q?bU%0ITwwlV_+c)!#IzK2!K0v>Hh+QBB+woM~P&Ta@BD`sT+zQ(j;>m?PXvWp!|e>HEUd6ms~ES{}WUY{ zOr%^{P<_WV+Zf(@Jk3b`Zd8-3e_;_p^j3(uWba9{|DtD-t5#Qg&m?(Bf*kpXvNV~y zVK#4}OM$Vu4LL#eGMYOi_9p0tlV}5*G_m+W$~|z=K()R8l}%HWD&|Q}Lqy7h2Mg)) z3CIxodU{7mHU;6C6j3Ih!(t;KhG0=ofoW-V5H9ix@JWUm3lh%F<_%9&hm?}ao}vmFW{HyLs&t@? z356W9Td<(^ES1|VPmzLE=-h%B+;^0Zo!a$=_lYRnDnQZC(`+uaXQ-}Ij(Sp8M~Z_W zn@ekugW7B=xo3Aib>)c$MrS~%tbEdw1_nJzWsAxUvp8T|OH4w4Q|niq08k$&39q4ESKa8N_%)dDQ?x;Xci#d?+;zJeG@Aj$ni`%6eNC^;b!;%O3~On6?}H71&(OB?_Sy?}Nf9h|P^A#udR zfM3xD81Y4JMO;;6i+V>mM10d$#)6B6pYgRI7<8lF9Q@_zHOr?%u-i$m?`Cbk@Bkmt+%w~;M9CYVHv`aYrn)L zon!!zVqrT45petgjLmEVHxD4D2%-Rpdk`}*3sQ7jS865!8&}q#@Cbm=572cXh?&nb zHwcl$lfw~qp*<+c%;E7AT_91omW{zufqoVAjj)74JjnxrXCzf3&Z7}e3;$4cHb!mE z7*Fe^vI_?ZB9(?io#eDNAl~4pm8uqM&Egb?EL-_#6v}f$focoX%1KOF2o+FCs=NlQ zuG9h-ZhC+YP6awFjJ+^u&?L;Orl4dbn`{ zP*zy*KS5tOqQ9mWs*v_OYX_HvYQi+M5yKYaHh*xW4?T$Q#YtL=5}wz70N0xnv`{%7o}iI4?q-PWtSJ&e>V# zK=4123>akrpr#x`rn;(j#+P@ykZa8>$7f`^kVq`hu-;{{>8Zl9tPJrdB?u*og6k^?w4hG#r zr+>zJ$EQcV?qQSlP7aPP4$%?#)x|kG>7TQs-f<7$Jn!SwsIsc{UU$Iyubt!W*}Nyp1tm$9d}L+aG^>I3BzUY`WL`8-t;ey4xxaf3cy5l*56*Fdj*i$#_n2+iq62m&d#eo%)zTJJL(}==Y5rU_J;%ouO&ikx?+QlXj*YtuYBpWoEhy$$mnhh=v-pJKs z)~I)`t2KzXPi=d?c<^yHlMWeaj1k+5O#Y4?Q6S2*y4?>`iILvB(X zJdKiu^&I(smVgQ^WheYvaXA4PEIFgkuXvcun5(3r!jIC3Zs?(S-+^!ZySd6)7m#DQiE<@HH(C)L0nAQfIpDSvGN!;1+Sh=&a)D_a>2)W*d%w6Jk!h_h>&9N zdpZI`nhH_98=}Xca_LOQ*hHC6C+Th2^nfFtI6A;+$w3a63Zr=8oF(MYL9uS)b>T>1 z`H3uVSh`0TX3SzP_uxDmCuND-J{3Uya+H7bljHdv2Z9n&MPT}ffEtY`FuE2{m?cQd z99-4XBn~_o4>;o~i`*b2y{F}_VY#O^6?s%qB`(Zksy%wc;F5@`gWiupM#M=_NQLF- z8YMoL?o{8!Nt9fXXs_`5*|*Koc81-|?5(^|+e;!Y14uis2K}Rp^X}0*Q*7Qtl#tlK zviXd&|BIok*N@x9t|*g(g7qLT;34z_^ID<~*n$kC(#j)s9@{g!^B$Xkw8?K}I-kKQ z4~<-f%eR6LVbHZD`l_&7E40KqL@o_J>yOc{B26Jhe`q%rpyHf^b^{DLFg;hpn)BlZhz$*^-jLK=nU9j_MOwS?(5!< z>@WLlBNwUjs&{hOJAb*( zIOHFkcb$U+w$DZZIApZuj&tz(sPi2_!&(#8`T@94>j$2uNy=J3h^gx**R0jwX036Y zw8$FPa>Kxdlt7O26;Q)Ck=k=KmW~96Om;3FQ>A6WZ?ZA8JaWBDkV20RsaL_>6r$PP zZ0dZ)`pS0$ol(B7AN5`hx~Ki4PJ_82IBp|t25)l34OPI87f9<`%AK!dsF=ztgWj=V zExdBWoL1@R5Skw9_MKqN|IX@WkIjb8u~jb3cK2B;+$~1x@YoN=j&ty)d+>e#)!$$( zDB)kiWG29b{XOS7Zzs~fcc>V18{A-0!H0PkgzbdACq)UZ;*el(C)D(5|46p}bzS$> zFqd7GJnkPZElB{h6UQOF*?ISHU*#*5V5@(p4)|>BGWK;{Vp+pk`?`MI`M%p=tpkSY z6*KYSuIf*M+OSp;>K+`xvxC!9L;(CQzqJzf^`)Rlzi#_iA?=u!8_hW*xY+NW>&C+~I%W#G@QiMP&Ld!tB% zIZWXooTb66Ev7(YraXiLX$BD@m=TJN^MCvU2oSbG{=#C{LUzZIKJB|8Q9Em`=+X~T z)|#=e>xbRJ`C;#@@pYX@Ze!VNqPz{Dv)?#tvO(60*z>1PjZIP2}R$|PGj(PZRPk? z9qfwjQH>Iuy3G0#Fsm9F2lT~HV(vI858V+DcU3rov$i2dLA(J6pd{s95?9UihJ{GC zuc5djIGMz|&RQ#tSZi!AYnhnY#HK_o_0D9ANnP1u=GQVMMQ@iF@D@&1yUtp>y&>Z_ zHje0_z1P34YYN_IeqFx~Lf>;!pRKol@}@sG8edKkzxAgq|G({?4SM~Pd+p<<{Lh=4 zi~0YbZ|{7O|9^+iPWwwf|NrDqdH-9y`kwl@VgEnf+TJej|7Y7fPrvN{-{I3ff5VhW zaBARKS;4yo&vRc7OM^3o%Bx!y@AtyWgXw!Jy!ea zeQWwN`{{jagnvCHUQ6o;K0Ls`UHlv2-(&oHf`5u^;kb9z#Ays`wWFCenm6 z1ZBq0?57~sKWYeH?XWvIIP0B)MZZS+-pGw}$e#%r1AGp`%7~m-o%X9UYY@_!(01CV zr{w_#hKgP}3v;jwkXIm15fo8#D7crSi?=nI4rPdw0iuvBlDsXo<6kCImx3lXmCm?BXPD8Ku|?0V}}-ms*FJ>s`7NUjL@ypb;<{ zp`Cq72|}Sg)OUl`g~sKEX!OUpVg7*E@0?_2L%GD`Ril#7;tlY|-6;W4ur$FGqhR;X&1hbvH0bsiV>j1&>g3$Q^jlc)J zBL&4m_coB&Ytc{_8@k3*zH<&s0Ty(~0pq*39?vo41n^+WxWP)*A z(P}g`N*`l$Q7D{lj8QGHG{;ASjpKs>6Zs6HV<^!LZeisZNt;;dMVB>xf{puufR3fOALzme?dKp0gAp<&6f8umSKLX+>^&$Vin9CfdTeR5$f=xz>E+;rr!Ue28k2Cj!vTiE^QaC+1 zI_4U1Xi^}%1WeXY$#3;!!s=^L~C=JvI6rYF1&|Ml^NCy%~ex?1zLUetTG_w0+=lJxf>$Kys^A&p~ zS(4nfEsh)6U%L0dX0|AE3`B!Xvux(KGkB25A5r2v?QuYT)&|`!>l_XGwGt<2R&pc7 z+Rr$8r+b{85)|qx2^kxbVP9f*V`CCz(|pwSl4wI#K1~ytzm1fSX$TwF!DZkOJe`a4 zH~q6kspZ-g6oF`@95d}GksDJ%$FQIO&;OUs{^$Ss?AViW@(4WA=j^iYa^HU&FtDO}RgHGZ@LsFNWWLug|LUpLb7v ztUmv3@9b>uES&##wzj^U|9*$h#=67SS%(tT@3OxoVw$_`RT?1qfAPzRzWp^zxtI&w z;tpF!3*Yx{8nR>8I}XCojoFLK$n_%pUMgMO?(;W{qCW>6KRU|(lDYAuRGR)PdCF~X zZa!%}W#?FuopWy*Ct)&~H`&qA0RVJAzOU-yR%-`8g0^xAgV`iA3tB@+v= z7ZaW(v#dRRX*|p0KxDrCOk{o-j7rbuVgp?A#NuO!6tbU=y*LXO+6)r=5l_=NS!@o@ z!uHcJ7)>}nGmCx@yM{IPiu~YS&2PHwTGGfvgbIE#4<$>R2GF| zmV|reBRXI0>H6@@)|{|?h8E)CVfW?UU0+6uGnd z$;Hu8lZjDVWJ5R;HX%soe0bLF9I}7XcL=KLg5&n-@bs+rwgW!^_DyKt>$6Ft{fSZwg$#-J&(rv4k4Xf{m~eTjoav@yw6Tw4=)DY;c@r4fA$Vv_-^L1eMVR^ zZigH;MKN-CIAi@LK6qO)nlqa>X_P-~{qc?n|Z zR$$}QXH7PqHQ82m$Iu@2O;aTrjK>(_j_HN3rvYlLQb9>};&Cv^Q)EcDfW}$dSZ4=# zXq6|M1C_|Zn*$Fca9b~?Wi=pmt*k~}M{-`LdFXbH)7iw4x$qoAn zZ4_uuKsyCmB+wvHWp_Xu1)3<(LV*T~R)Q-C-#jLb=|8iddMBqB=RYrCj{<=-8mPO# z=oM3cA=>ZbnpwC{q2#-z$BbboBxsY?Ua6`;EkG~pxHo{5(9`#|hvI#$LEB#n>5|*q zZMWWPAzs`;$F=}tYoy!BQ1y#O8j5jP)EX~VKhV_|Rg{J=y4BQTE8P+hi~8rqI#XR| zR;ZyDi(N>Cz77>#qDjMbE>vj?4Ot&hv+c4&xHnL>Bh__eXIfpGv~s)b4F5%g1V+7# z)x@F6L^gawTd3;WWgXP`-42#kq-!ffgpa?{ejWc7!B z>!EM&@8kaA@U(x_J9u~aYAAac9`{a~OWt&T1i1KzAggZ?3C1Ib8^m?IY$2U^O-WzZ z-E?w=#I-ELvwcNZn#A4c8OWM@&YH!|uq+2dW4isF#%L%2M=m zQ$61Vc@X3x620qnZ_4%=X?TXP%5~a3ux*;GHcfU%Z@U+}(ecTFw|i7;T9`nMHX7`~ zK5K1}L@Ta?%$u^hH>KZ@sS2=R7bH`Xf1vH3Hh(5zb(C`Va!(gbs9>=llNk_|s-hz* zsy8Q!yKAzVJoH!9drS37TVkuKXqSr8L@z6JL51*aA+i)6deN*-fHzqUSY=HfkJi=} zL{?kZv1YaplKYB=iHoji`mFo6?!oz|HBLynyzS1>QU8aPO)oAs%~wS8RY~xU`-fFi zd`wm7B$uyS+h1bWtT|=p|wnp7h<5ipLqocZw*^8y@Rb@~5=RaA@ zUM}agD}gqErC^|kp~_1y6Eh;iFJO4S+mAD<-vkpzS|rl2To(?^e#x`y`I152`4sVjN| zElHvLhLZy5BhZ0>&{w4wEX3wE9y85})3Td}T$1t6fVee6z*-SyI*#$~fDE(L;Bf-e ztzcmNZQ!ZKk4KN#11|_yf^np;m_ff0BZEcj;5I!2bB%o%Ij~~c6>&AJNbmpr=b!ha zLa9`t5>=(PY``Wd^=z*2!Vys1l+Rj$AT5zt?tor!<=3~_-7S2+T8Pxrn<`Q7DE>US$Po<2W0A+V;Q$u`#E4(dek{q>E_CVQ|b z_^$?3E|5}5-wskezdod~PUfYx*((zxe>4Q`<}eU}FG`eBv9g9K256Q?)^*)YiS1d$ z%&^cvP69L?%K}YSyRJ1fUOm7*0EQdH z@RLM4L|^OZ0Psw;EvL&x@x`5Pi>4)`>c%>IebgCz5A^+ycA@*X{#5#Zsu2Hs>f?s^ zzh~Q3@qbUh_<#N$A07Wk!q-ClpR^|}#{aDj{F7lvGVpKo)9as&06)JnkdM`o&Nnfn zKn4;li2*c&3Kk>({`tOz4+r=+lV-BvEOaxx8?!EW2qS5J;4$^kH{uT8E(8va($5GU zloL@IJSg9NZt$Sx$g?trP_|B2kb|H^My|w&|7bgu4vEb2NYn8cV5LGTkAUt2q?-mQ zhotf^Fx&+(c0_vEP}U>Vcfoy?Tt<#TEXK$ghwjAc?>++MZi0$z7{Elf#nLCCD$`zmp$oUrwA6gczr#%;L z6{z=dnVUo^Dx2nx#rs4HFfpQcN%S7%glif1(Fpyj>5zO&x!U3W zF&`4v5KIQB0|ZqhY32+dqBPO*$0NK;Q_ox?*UQ?~L z5)$}&%A*96Rr?Sb0p8)T1P|7q9>20ytTh5Zrq*k=!830|PUZ&9GWTV;fc&SuvjhG_MnBFOmm-1Pi8c)=l55gg zyf%l&fa3KWh>69=fKUJTe>d9BNs`HEeVea9R6&e$sKp6^5%zlL>icwx+eYQx0p-CT zgNGcDeHhm*XTTi(SID#E3B6be*w!Uk2R2HcqK5Mp%W-h`xqD-O^oi&{>$B?o|NF#$K7aaT zXYu^M^Ckb!@A7fX08qAD-mlFYH!OuOQY#lTAB2rvcAn+}sL4SR&2l(s43aRHPHd1g zp1trV3HN;-{xzebo*DnSHjsHZ=vwG0+#Kqo*bn!$y4oV%ma(F`-&=>ILanuq?{nkQ zK3B^nkmNB3s;W7kDECAO=#P^$4Fr4fON3wkin;E+#OKgY+s)N@sHfiP)iaf1WC8Sl zjmXy1*sF(cu5fN_U7i(8}XyE?hb1)S$jzoa8;c% z?z1;;rYTl%U4MmuFsmfU@*SYUw+bZ}AF6dBT8m zErTNtBiXqL)pSB7DYQy`lh#jBQQYTn=>QH^T?kD|E^v*(D?eY&)d8_-32>ln5~`Zf zf1BY&2aj8$$E8HxnN}L;`Jh(JgP4R&#wH*}!vEN!rEa{bb*zSm#;W%9#h_z#L%X5N zgF%(gsK)8H&6ow2ej1w+*l5&Tq_o#a8IJMrkZrANnC|K2%lF8 zA9j?_=qe@feuy|w1i1TI&`rr~9d4BY&|`INSt-mROAvhkjbwV9LIViZ)v3C;3kR>E zC6BcrgdyUH=oVu-qzcpmz^$-sosE(NQroKQYc<0lo1?l|`Z{JVT*Kz7Gb-Lb4E8ea zFU0wKU}m)g#(%fae|(yFm%Q{mhHw&|Z3Hs5e;oUK%zCE~^xGdE9vqxHU&(Cr=0mo# z<9tOa*3k=tr z!tLg!lmCN?HLoE7I`~X986`0Y z;s$%~_zC+J(zT;s#e`=9i(rW$ZtU+%U%|EaRjv+LLHaJ?&5_X2Lme%^hQp)YNq0DG zQhNCX4-0&(fPD}C74MyoGAzHo*|1O-`v$+Hx^l`TUOWtZ+A-RpU22wxbS%O+a`{M= zu+Wgz>v;^Uwb5u23a&#MgqzAzWVsEB>N#UVegz-m;2+$0G7Nbv!{Sm8{Wv^ui&S1$ zl6FGLIt+?EQWcG_(1yw;k)q4B^7a>j&mQ`$^-{XNkgGpV4@*774dq(2SVc9jmJe&G zhv=h%UX13G#o&I7+q-g+381C)*HQ%Gl?zV7w6)2L^`lLs#zE{4K{BgPT`>iUc**DJ zsyJ^l^~iU#JQ`*U|5fWYGsFE&7}l@AofyInc^c`u>ocC>cZ}4R-`PH^+oc*z7lH}D zYQ4O2L-5a3Ra!4a8>3IiBj~F2Qo6%l^0|>WLZywcChV(V4B`RY-~9Ic-D!7V&O{Ik zo@VHOHU!D4?p_tsvCb}=j2>uE8SVl^TsaF=AO;iXx^Blxi(r;Mf9m|WoByO{rBwcaS$=bcx|*Rr%V%JZ##P+&LE z;cS$^0h5q?%FP|2bPDF4uyKEZj9fNhY>x`ie=4D2i*5akj=^>|m)kdH;$wAV3zSf< z70x*D8FQ&B<~>}xAkoZ-FqU4LSp@V6qf;Q&>gnu^9;DwmMcs_*C?JERG z)B(Vok)g@f!!7u;Et!4LWWVg;_Htkm4^+x+SYpidfX@5uihB_4KnR8EUc3u@KI2$T zXEe2oXW+fjc4*BljJ#>fYGnX~AJ7Qf@hlA@y_XHH@rj#yE#i^jS>2qS%_9H8r^7~N zAxGCET`=QAeB4~z@lAtsmEGRevVaam-e`` z*o!5w!*5?86LVQ7ULebz5%ntD2zq2>&89RqZZ7U*fT=pf`(tBJ_3>i_n+lho#VOEpm5& zsniZWch-vNYp91zuZ^c;?yE}HL)mpj0DriJt!z^X6KU7VbbJxn$jyH7d65gHIH{Zi zlEYaaw&O!mGZve%t%AH&Rw8?M42|=^Pr=W(E%}QMwO%!tz!=Qp<6416e9C5~0k7B((5 zba>MSqAW|`SBBVUsZB|77^ue8MEHcK`jjK_6DC8U z>b};p&~3i;3R;2^XOpRTSB!;M)y)WFHP8ceg9eXcQ177qNU52YW&4!vNiu@5!)^wA zg@dvML^~LcD4;8oQhSylygP(@UGA(_a?{CbH6S)yOliokv?{6es-#PLpo+F$1_JM3 zMuAH|jFXJixBe2@y9=9SmoWiu8Ch@zmb-@noz7sc(PD^(XoQ1qPDWda&bPXD$>&wG zZ%yPa5}cWa4YYjFgS|y1DaaqgjAi&`@jdBtQTLeP-*pIHZGtTlf5!ZpUb^B^1b#&a zm0DPt4;hQPS3{qB0h&tPD<5<80#JIHywH{Fv?6hv(qg)?`01NXko$gavUP~>hFr=* zW=b&YFXVZv&Q8)1Kk2RF%O$8PkDAz4s1JWS+0kv zm0r`Nb9oj!Di09}Njx0o<0TpVsDNw+!g)k>5^l&!dzS=wcS&wXbG))_cDF=$h*e7p z`Twrj@@|p%4o#oUsv@sd5!hu*ni=TKgmSYjDc8SKp1n`Y@^^~_il3LjFWJp@{n5ql z@yWsK!CP;)-#wasau&ZkB{3=a9q(P)jC4?6-BdxwsJT_) z@fXrgU5YW;t;uv}3&HDVCbn|C{C#CC^krr{$wVqs)!iYh;UAW;@bhyD{-(JQmnAG5 z$f+g9T{)$Fxibp(U0Ljp%47IimLNG}S*k;txl*dbQm(_BlN~N*JFLzec$a*KcEZD| z41o6LGjwv00C8FJLo@r~s?3MW24DbwyWEG6{BT9$!?hJz4{tqaOFE0I5Z%gc%1X&i zSqU%hmM+oE_IeMg6Ce7lZaYO9)7mi9jmDt=V*c2zTvul3(5l{7FVd2fi@#C2zJHHw zeP-gL8&mZGfqL`^Pdh6wT=A0l3azmTM$r}b4^ViZD_w!%Fp~ulueM@;Y7WQaTr5BU zIw~tozLgq=Yv~a z-|4gJBA;8|Qj~V?GrM-ExpudZB#fd&i4T;DVn$odGhd2FO|a?Av};f~nPvZ~;=`yGwo?EAIiaX4kwBsNzPTPq`AP z>P{Y;Q{R+f>^2~*ycOsZKqx00v~SyavA@U#AzfK-FzCJQ8q;UgdC4lt^+LW>J^bG6$@AA6PQWecuY zNxdl3#iT0EA3aj4u9vB#{$(0tXo~3&ZPeLVXFqUx)d$|8Lzm(h7aEU)6jWsa#Fe9D z0fpp!^w@Mt(Po&ILde{gMwg`&xAwIcg+?2MijqIK4Z6}`HWWEH;!@Sj-~b3{aLr}b z0T*+zAgaM`Qa7wG!dA|zYrVWhTHT6)ej>sw5I;-5zdSRquB6iP){NMz8u5N>%~euf zX^a78ZJD0Xh@ovyhDk>$k;<*XQUo#P!pSgchzE<1jHO=H4H>0LWTP;F3{#p~SL7o# zMstf~q+LpMh&(6dA_=cBxryvnRPT}Mbd@*o<r@@p(jWF~y=~NLN&U|#@KK&!tgD3vm;VguI9ugpRFu_^_uR*Xe6BlT-bE5wwUMPz=GlY?2I#;v^= zoFDct&R^E{N*r%xPFW>BnK@;_iyuV4TP6}MZL|jl7c8S$iATVKAca{WmRAVo>Xtux zXI=EC@~$SScBm^aHoP0^#7Xw?SJf|8{f32y#*ieb_6$8yNzG&Hd8DF;{+1x5+X-#q z-4cj?HEPj`U4{%6=3|N-tXnB~^`6uu${6SEGtJt=yVo?l#umQEEWG9s{^n^bGV_*a zZQ10n&hKlG{4$65r0KtNqF>to4;0g|NbmGJSR zKnC^Gs#zE}nDW1~@&KTdSgGt}Nm;{XuT*2&U~+}v;3wV7(AH5Z7}!nAD?C=T{EJZm z%|LF(5vNwvxl|JpjAr0Ewm4;BQG&<5y{?Oae!AK}8jNAGy>euMtVtfhx_G3D!@gzi z#0}yS9Di>x*8LEuJtl4STefxMeS9!Y5&_}UBu-I;unQ)68Is|~q5)LV4`L!N(k>4k zPjI_RVVmE4Z24}=@FWrVe^IU9qWLxO`U1m6mIU~cBrMgaG>YG~(d;&jqW{;On#EWs z;Rll-Q}dx15qY-ReJc6vLAKz3FN+u2tM+Ut6U54J7bVaYOLvmMbstk1=~$eW79#_c zD;wL_ed>P5>&^Dtme7E^@}lej0~J{s@)(DOr3&M0MOXEbV_jpJYiV1`X3{cN%z*uz zj{f$u(gZ6gZkn}KlcrZtHKs#+r4-&dNM2zI!!H+LO-3RQ^6ud06?cd&(V z2m5-%T=_b5gsro0jJN|icSZ^Jh}AE8C+9oc!vmmGFJ3^KEr_HkPBT|+jJrlh$l`e9 z6qsP@jfw@($YQR9epo^%9edtnkFNCj2Ui+;1N-5^f)@~45S2kPA6I}UQx`;4k4?yJ zfbn%T&>s!pVO3QXeWCJ0aG$$s7grY9M>}2aV->O?cC@;^lee9tGL8h&v!Y;-R#nq7 zuWLznW5^Z9Ha|T4@SdCiv*qqgTP2qB*}SH-d&#Nc-+nDeKw?#B&o;-sTYr@yauFN79zp_cCdFqgzT3*?Y z00Hi}x|msm7FJij;{w{JrGL3a+`&bp?@x^HPo>Kjc!!d7WQ$$*CLsRS@?k>xoB!9! zhhN0IRpOn8_a#2wc}(21VDA{Wj+DdJL{te{npYbnq);DG4^LL~P-rnK#kf+dOPeWF z9XB=ed(yXmVFvX~I^LQZHOw_Y-yF-DYXohjrnJIcda1kD9sRxT(5-U#`UH0!xQqM%Zq8wPZGN-UmS3}YxWwaIBBi(`of6IEY6H{X^hk_;idzlkv|!PrVI^JcXM z$T9Zg^Mg|rH>03n`#K})`N65pC+*6)U)kox;i@(-4p+A6d)0tKLe~|o!s}Jd3NNc{ z7IMC>Xck@<%~s=%sT3O%dkzg1O`7Iq)+lNY9WOgdRn4x`8ADwEm4p z#;B~&pIcA#YT$rDI4?-my3K0&2d@(MY;8#sNB-TOM8CQ2`wr0NTo_>(oWTWbT}$0%hiCG{m#8|z?pBY|EeQcmoW3%SH9 zD@{ws7R0LiLMoXsvKXLX|^i#Pab64B8?if0RIH>q+LCA)*gqPH}^LVH1(^k zNNA}NdTr?wuJu?}G!vUqGBceHO(Jb!x-KnD@WmbJ3rGI<;mC;4kQNGZ$GqwPF#PVU zb8;@7!7(bJ_{F9VN$B5sA5%KI~ zRrri>UZ5D+eo(wk|_ju%8aXNW` zV)?xvOYYH#Wrb(Rv&G%)SJlUliWm>MK>v_Q@2V~ov73;=9FM}N9E@~{QmdK^*0~F1D>|M&*%f@arLf%i>}HS!Dhcivs+w9yy}`=4CeifuGhWs3SV_vx!wJ{zvY#= z5>$B+dTL*utMAh_Z?x5+&q~OaXB3(HCS&XLtts!LHB!>ALnOS>)X~w~7T)DhrdM}1HZa>{mar`hbdyPCiWHM! zGMNPNMBirnwtM!fKj^YeeaVB6%QVizQ0AdPPZ?hgoRYue!BZB++;DW2n|uQGG9D{2 zR|d{vIrdVyuByUh^`Wky8*G}|+$(ah7%s0mH7)4wySu z^(!_M%)VMDxDVG@3cQ~M^i~m%#{Q75bF0??ms*IwwI(}$eKUV$a9yH`NB+|Lr zzR|*2yM`pQ268}$1vskmbqbY1C8g%#8t;F>G8FHOnJ30{4k%w}I2QBRqnFN_+^q_k zV4DI6KBeLGA#HR`_4@$c-lBt)Uk9;Y$I_TdND>paFX@Y%CDm^6-n16U^ck|1wKaS5 zR(5PALjs+IP9jbD3=tNC>TJR7(0ZX-TQ!~ch*)TSB}Kqw@N(DCuoP@+JP6|_3%A-i(Z0MvA4Y7G8pvoyJa3urM1Ys&pR_T4yh)<|5a zryja`mMS*%WzF!m{PMRLr-dih(rnvHvyC`d5OnYEsJcW&_^H#b{-q^sBl>NxnLLTCk0r3SOt2{52c@XoT}5qF zSWJ>$J9a;mW*V;OfosN)GK1!w$7pV$&N2e|G!kuQtg+t(T+JjlC&eh1hy2 zbJ-y`mQ8E@z>qpI%`UYf9j#C{Jq(pHhy@y(QI3m=4v5BAOV#v^MM@ z^RtiJX=(A&4uIko(yv+E60(b$)%UFA%(DIE2yRcpasSW+Yvp#oc@h@s$m&_J%inz( ztonPav#eT`?M$l++B?nTmRr`!lZPC&Mb5ZI225;xR1KSaSqqb zz%4a&ag2G`yIKE#TlD+N@UYNwZ=G43-ijo+BpC)Dy}@qJEKwwj7CF8gI(79~pNP*PNQ4L_zGv9?q(p@kx@xV@&6->en2& zYnUK-fDT6LyL51&pT#$fe3oAmpUc-l`gd6`0hcNH)u`_U3f!P`Fo5( zkV6btEPjFqpz%wt7RDS=wR8*qY{Q=&SV#Do!_ORkX7DqEpBelN;b#axr|@mMjl%+p z?71)tDn;HE&XkO~mMfrs%3Y;?%FUwRN{kDW>((@wOraP0htOvdj>3FY`w#Jh`A_{+ z^8YA^K{mq+Z|%ttLd`$=~2zNCyu5sxGm|A9;)+&fLdeV?qC@T4-6o0`vm3Px!@+ z=R@d#(@!Ad_yuXd`WA@^eNB97E|^5K;mp<50xz1G&19bSQ_O{z;lX8=CL?Y=sld_)!@T%#Ldk!#j ze1Kn2hBoRK`$(7BRd07yGu9Tnshr+@Hx;~m$nOISLZ=rk^&Bm*1{L$oo;j@zeN1?b68Q=!~zq7fu$p4=|efEX_{|=uo z{QnF8|6kAl4NVLan|qGd#X$K@_R&!a8Rl*7IjE9hVsjUMnEDt!r{;8SG5&X!ZT~M6 zGMJhOc@4bSWGyuzw@Uo|COT@J}2%+eOAhUTboaJwx2G@f7@GM>_5N9 zXJegp@@$%Kq7ZA7TMq4(M+rDfAzV=QyslAfxNH(IqnDX(S*+6#V$^b5*36SOBZC}B{S(o z&ty;ql-NVRku8XXHmVcfz8rg90p&%F@6hPfB+LG577f*71l>?W?Kfj6c6 z2kQ(9yD6>_V3C)nDcoacG@G&Y&=r}y6IHtX2JsN=k_6?leu8Wo#H@QX=rZz1BY#?q zKtY?@a1vbcc#lRJjOn^~tj(sb&)kfK+!Yy1Vy>!S6BSdpK63%^J?EqOc$gKDSf3c? zMNv|e@ZAi>io~R`=M0C1^>@hXb?}mMvpPj@H`!K`Z8sW?Qa~0qwr#aGjtcv5>SZ9}<&p^8NF4d-n#biOoBgjUZ-IrHg<+`_A?-V=-LIgJ_D0ZMKTRnsXt4j6?S- zN#TCGp9b%ahbI@ukjLOxXAOTI^pB7GCj)q-tou#%>Zmgqbmc3w_p3K&{UiAtZHnqK z#{A=Bv@NQ~7lZB@Jw}71di<*2KcdHIuUC(cx^KJkIT^z>IGu9|i<{M)kHwg2(J<2= zVg%%xuG8+wn#H7vc{G9xOCU`nhAx!y4^qOuon4H-AUv)0%`ATpDEWfr>fPEl%5T?e zhxsfF;P_|}gk(&&jTuW}K=X4&vs-qv2k6%wCz))PvxkCBdCG6usNr{BG^!FJPhy|j_Q||gaB?^S|DkCg?z^EJwY(8q+#w#d+ynKaC}nj+e8hRK8W*|zLkMncwc zyAg>?d6Zo7BJ!qTI-1E088Tglb(6MlWQM73smLS(KE{+sL}O%}$N^w_6O}Z?8U>|D zp(Lcm^cLAVN)O>mL0|W2R#BpczD;E5&`Ze}jir)n)%`HzUdDaqD)3d~qda4f(-Uun zrX)ejNA=Ni4qkyk`?o=$S4(iCDS=X;R$$l?^nw32){R&klL|;a4liY(9npLTz#(pZ z9fTos!)tdg*wnou4_6=P#}+c|65-#LzJcf|NZiLuW|$;MaUq4e1>bpKu2sS7Xy4PE z7Tj{nxCXuTlEAKbWVy-%I^dXCOXf1NgV)vy)~21_jkfj{ldyajV9eo^Yq^R-k`TtG z^oSHB`?xmcO|`&t4Kx%a^$}<4-c2B(P-YWq#!1#@>~)ed{=toAfColX0;8Q|W015J zeJ`OsATz4LAU35+NY9gyKn5KF-F9Q^_GiHeBcL5MHk26T3T9IrcpwOT<^1WgO%neN z87B}F{R%0{Bse6%V2ttDK!MgvMP#=irpI_L#Zhb3WQ3CZwWZdilVv=bVbHqbNycQm zlHHm}Z;cPYXJ@owO)e7qb!M( ztIJuo>+6(>1?M&9tF>(}+xFfwM3aDtko5$*gJTZ} z%|N4B$R}@Pb9|T#{Hd>yj<%y{JdzSJ5}23vNs9>4qWV02~uQe*^MJl4sD0 zrfqsoTRUyWP7*aH11DkT2pQ>j1d2VyZ!yFblvXHI&XOR`cq%aBA<($7nl3uH74JeE z8Cymji+FSOvH<*3XeB78EXux=(wR^U4*I9v;bHgS$RcdzEm)*C!C1^ukVWncV^>E( zRxgMpVlxRNe=g4)Qn7V&d0L>P*=pQsvzs|oz;!-|0I`B>NS^$4wF2~74B@&-BPl4= zfs85eMH4Leg_CVRrZ)G~!IXYt^>v?zK}2CYQ;{fAwyT@eMQGaeDbKoHpjMFpqGgq+TtFgA{vi-q6G)pq4??Lu5M7LEHzt8jsaDSm zG63B^pM<>iQUU~pjNfcuwr=M5Etrs5^1(vUWuu$AAezIz4nzj*Mz-)!Z0Ip*EGY(u z&&@L_8dYJ7Ku{YTw|}w#f~=yqn~22{%M*D>+5tV)ZNaTsN{JK*5KGHD3Aa*Hsu9;g zQZW@fOI09y<*g@^Nt<~ti1=ur z@JEq70Mb0>n(7nms8F7i(M`b|foSU0WqMT_N<&ABQlZK&s&s~?HfTY{Ev5`3=&7eY z2}$cE>G$;Dbs`}o%peyQRA13v$naouK&`cHvcT8OkCZfQ3W(H>vM}7W9b2%L z49L#J&GwlVFV*s634A~ZAnB%@I%ttzSo)@wQ@^O9SrB8TmO{aBqhw#Gz@=QzO!%;s zM~@&kJR<9ZefhAV*0N#4yT6IY^%zK_+sUQn~}JQ5ktl z`^QE(6US7Pszx(e)c9SVu}@ex)F>LrR94TUYF^Ld;vQKAuMKX6cu^ukawiZqte}1d zakHq-qI9wB9SUJ~feI0(pnxd-Ztv*>u1T+p?cCJV`4Q3MNAk?LOt6z(e#3Q&u3GJR{yXg%!u2s?iseU-z{{5(fHpOGy|by9-HJn~Mvx=9*nZ zvA$)}txABoE^}2am1)6zUdXig3;t04h}&2VEt{b!@|N_^cu`yBsgfu=UegWYT@AdA zYYhVhbgS?2-TNAx``jV}1&$HgZ{IBV-b&JbU|a?Bi6XYSUX>Cy+^_?@kCL_Bx7dwd z5%(Z=->RLviro??6%H?zjg2Y1Ng&gW-b#)ppOGp#8e1vL(YPJ&OO94vDwZ5=@6xgy zU6zcEx3`gYakLBQdWXrakakPdNFpFnJd46fG_NLnNaO6LO7yC%nZzC{rB!(oY85KN zD|5riZ}!O0Z?8ni@lMg@dO}pOm-U2H$8S<)Judi#!?hoOik?vSaL;-|+3s(vCsdu> zMo(DG@2&NO7(((ndO~9oZmlPTI;Nh`{JmOFXqCKKPpC$B8$F@Mk~`@MEr5PgJt6e8 zC>>dw12@elX$0+d?xGRIDX!KC-mK-r%Kt)IK4Tgz8RS!?3UsQx2dUy#?c7zWkSq5` zD)a6R-K|wtIAse9ZY=O8F!9nZk?V~cQ~U5#sHheh+p>3fLb3}~aL*f6R0xsD^dAvn z_zcyQ1?Rt3#_>ZH|2?~rh zK821#0Wn+a6x!tWJhb9QKWnXZnjgG*v`+U0{2W@Rz>v;p>SsWqL#s;8K_}Aj(Ym7$ zyWlL%W93eZP8R6@L$0>yJ9_vMy;u%M;0*&3DSD9zkyNlFbV8QRAcLLI-$W&Qf`2{1 zJ}_WxG|ezQB8$p$I_4#LuRz1YmmuN__akz3WGvnoZS>F=2V}BAk`3@pr@J8{*N%?Q z4xSR{Q(aHXX)!5Tex326yi6vrz7RG(s(5i76~l6au`_UpLO&pM7`g=C8<<(aN4($= z(w=}Pb0HmsAaYH&M{h#=(g!Jv5u0?slMT=#bV^`ftorkzN8jXY;ZH;GqiM(4<4^7jKdV zZ?vC#DDxSlA@GJV@n|+Gq#8e<1-E#n-f9lt3|Iia^3A*OP1^*l`6gO%7vP&UCS{*- z8V2Qi6o}ih&QEEptzn*qan5C)s+GY#&7L|omb*6hG+#R0)97Rl_PN|(l64rUdQ{Ir zjZb_Q+Talt;*u5)4P#wBn`|;#2Kl7(VzwaZ@=1Tbk7iG}>yPzudC9jFT3pg_J#Qbu zf^O8x;~e;ibUK$srlXW~z|;VoC8?B;kGtP%4bU@r{Svnxk?di>IKksEbu)Vdbx8dha^O3IJbNPA;V5tY+*LztydplaK z2Y2@VJlwob4*uiLUfz<>?#avBn5UJPKnQD&$_sE14Tl3rU5ynVAjDj+9zJ$4j^8YR zZwkUsvLV00Abj{~oSu3tsJDez4)MkqP`wh$TDEE(&*>oyQw~xY|Ey+} z0N0Z%RI#;;Uk}F71QoX8eDb>)M-#GjQ9zM7>>86w9?_FN%T(9aA?BGi!{f0%CfcJ; zGcQ;t0dxoF*k=iQW`fmc$v5AK0p(=zM64O?8I=JgG=nS1DHqy%9bQ= z&_j^mx2=#!&#Z#Y2Uonq0Yyg>;elaUBWqwr-4m8CdkS*=kct2C?t)*aJ!(B z5%n#NYbe6xF$9`BMmUvKfc^3dg_El|P;@%;D5b~V9-O=xoc{FYZ2yPB>EVAKbXyqh zLi<5Wt^ST@BDOtXOA`rGdQ2it+th5yUNRczanOKLYlae|Svy11(mc}&S@$;Agn5S6 z6aok_c(Bh3j^`+YG9b4g?_SWw(5VFoM=iGHrFQ-4-o?oGKQpIQb6>QssRAa+nk=M= zLtk_#GdT#V#=b>`O^n?{EeIdd?7bBbTQAG6apUnQzLc4R44NgW9}-4E(9$^O%R839dd@K%@ zCE2+=bHiiE2BFcE^y7{SzXhRfuCbrc85PP~!|c#EktXMJPSd=ECAZkRLZS#9#@OH} zV?3*hTV#4kCHrfYk3`qu)b1okqLd#X{g22-vaT+p`N&+b$D}8Ni`Jw_;KF8vLa!K6 z=H}c2(+%d0QH~Eb$}>>BVl`Tq$2xQAth~Ve@>r&O@`4nL*4$U*!u#9W@}F^(Dd0h)S}uSWb2Du#i)lyf5XZQR6j+-Vr_qc$ z6Ob_Z-?_Qx-E9Y%g*W5eIz-8g|aIDbxbPtyv^v$S2KFs=DR|`#*q@Y>6=0aJk2HrDQDAu*!S9F_w}#0uK$kg~9ZZ(jF&9 zb4B?f9l;gYauwV)M^h8qA}AWTj79Uc9LwDlEqe;ED#&3KVpYw1$w`VuH7xFF4+UfG z%;F-o8%Tm-UmGk~bp#wf_TialcbGk+`i%ON_z`)+Jb=b2=-HvE3yx^vLuHO6`KlU> zzSKYGnSzEzPe4Lp?BCGVrL1YRcd-FoaaPSfC`Ve41s>M!T65kSJZshlgvR8}r*k1} z?%gjE#?8O|6QmEBXt`sh!7PTs@NR*p)kXVE!VgZYnfjw&0VnN&88AmYx?%esuU z3WP%l`g)Zgk_l;`=?Ea?2-S6E`QwrLIw@t^-7;sO0|mzx;Z_EX1scU2ZMqgpp2;%OA z8rO4vkj~1M&q$arBB{$J;F)W8=E2zHU_wATra)l{oC!n2%DPv24TEXOUvii-Ugp7d zQ~HGqAJKt&(Xl>38pqY#Tw|{ee`IeCp0Z(%xxdN2K1@dFmR^y+rl=FdG7k3Vk)u~=#=-CY zB$mOq#EkGbb zN;Y|6%ceP?zkgB^)8%CUKIfOwRe}lCrCEMDDXW4$UO?+{o>B|8 z$Lgs7eGOHCsA@dXzK5#4$_x$!0`+F2^YqsCvsFGjveEkU=&CBF97nRrzvdI>J+s~T zQPi!*-~|}$q0g!@loa7Nm4vvzEF~svrrviMywRW6jP1{86s6^?DVg6e|6!|18K2+B ztnAU3mkoH8YSQ?Ld(5OeB9M-z6LC42#|M@IuT_3@Y6TTnu)b`BM4$4Cr?&>XiD4^G zqUsWv3?S<=%7!V{Oc5PmL4|xgfwVdpdWD~MMCBkPb_q8hL{}JbV7?S>2g1?E;Dcp}D2;F44 z=2PP%Vzd+uFLJ0vaW#!nSUw~SDpZ3`!naT!1D=)O*5~jowB2Fl*N*;kpomF4!w2Qu zG=&CZU3VDEqF6Oigs^2va&6Yd0!yJ#h^Xc}EO6yLm6-?iSNDuioL@)(=^#`;TM(z% z!9AnX04ju0jJ~1kViPb?fh^h&u z7ETnubW{T+PkCI4i^okRkyGSja@M_!k_@Z%hTFvSzvWdE|(9UvZbJnFv#t^h=RbrF)HUUImG_6i! zLJ@#NJY8I#!7hX68O7|~k0sKAEWp|04Gar>qW!vSe{ck)ldW z2CUMq(41nyjX$5;{*rS5SRC2g*OP?G-LcMPKH;M&98*A^UAK}d@IcyZc9~?_^T-Iy z9Unf7yj_o(V_Zf>Av5f4G)wZVW3=osJ+9Q7&vL%@J*z)To%%H{yohHp9q|=o zFec{4T0Upy9D>H4U<|7?oXAktx?WT~D@JvCEB5~P4LKg*=EQwY<77jnk5VO?Axt?Zohq;NzB?v67baqM10zvr40x^ zQza%EFa&L`2}QU#sUWc`$Kx-mSX8l;M?#%V`hSSNQ%ND{dbG^Mbx)jrbUVl)cqolx zUb1T{Im=EC{^Q-@$pL29QMnW?O+3P|(-VO@s!x_=m%K`~pRud_b33OW-ajV*Wz3#S!2h#m{VCJMv=5owuDj3PoH z&pES;SsS-eb8>D_9hBWXczt>x@}TgN3RqILYoGKL*;B`Ai=JsZy~N^{8a^IVAY7ft zk}Vc(uCce%@>0mu!XlhW`xOZ^Sj3Z}e&FE~5YC>+Oe97nV}BDQBec^Pl`l7(3ckkG z4t|QYL3fvpjSbuwjsR8$9j;3}|E?msm*S~}CwfpClYVPg5p-Kr9ps2=Xv}hPomBB9 z>y&bPneU;m80cdADX!~PG>D1|?8ViF&?=Nl)b&4=8=k&AFL?AptQ8Ki;|*b1+5A>R zK8mJk^;D*|x{A_dDC=p%R7hq{0EWKq+DIA^$s+GS*a|GEG z$9V}#w^$fmAc9)!DzKvsCIiYeX(3k@)Mbzhs_FDqRV4;?=!1X`FiNAu@RC0>Ia`@Z z!nA5zbC#cdTweZTG8*y`d-d)=|MT$ZuY(`n9lm}!cys*nVDRqfbpO@C;MMWT;O)ur z%Xcq84@8Q_aXy4)msZvRRp8<+Pm#@5!>*6!|i_}{IqE$6@6TYvh~?jN?l-}?6ZKW*)Nx3m3+ zt*z}p?d*K_hpl@Ud*;6>@WVfBZ54T5HGMbhy*s%t|f{f*Z-~xUfz})aXx;&%+^q<_`fHENzydR*s~AgC?4bA&eu%+`#({c zXY4G>F7W5Ge^pU-;r6|c9J8EGCV4?=E6Pi_lL9oBi#WjkA2 z-?4T0&-d&MyJcrQzRdD8zqswO*RNl|2q;KQiu|I8#vtwh?_*^?s;;Ag_t|Ye1-CO+ z@L^KQ@-dJNG8=B@1&p7JF!vi^Ie{nTB_FbL=xGUByaFgr1r+QR)(ZitrpLfF1~g$ilmHD_a0Wd1&GAc6xW71l z^Y-xd!O7rn%YP&@d*IFTA1PfMXU|GL${BlFMOJvMo4Wtmo zsfLW-N1?!9_V6|tI))O!Tc|xc~1`-`CV#Gf1BID`ixlVV`1BX6LvMEkZSXp+- zqah{fgm(6-LwY+%G!v!Cf79_PoMFnUn8ww#;4-0Tql}hk424RgdN{f#&|pqDpJ0dt zmXO2ybfa@?)|+}uAx=tttReYqF!lm4OBcGR5;-QIQBo?K7+vPj;VLp~)9ak9B8vyP zR+)JN%TVG#qjbHU`=_I`qB>axb#eKw6m6~CfQAXL$JTdXy)b`ZuxNabt$$0DATkK* zbbg;z?e_ls)kORERgtMbvnoX2t^Rbk?A`r)&1p-!Vt+W)J0iRbP>|E9Z`1{jaz(0r z5lNPy@>oJyFX;>ndqZ}h@(|Oo#^!hTLTLAYCg~&zeFqp63H(*3Kp_Sy@-q3!Nlo6; z;%aJNOz)bMk)VDhQZbj5pj2FWgeHn^?ZCYEMM5(2-V`)K4xyOySwxnp97)E^o|NLM z4i!S&1ZFsGNFD92W!GC|Ct+N_A=5&?A*#PWD@woSgT^83*!+G&bZ);nT!^nLFA`pU3(N90Xib}(Q z#rEB_vc?Oi@Pdo1WF>n7-#(!v#@MaV)XqhZlf_-HQqpfQc0iKob#&X4h;X_=ez2Io ze&2M1M>B21={BDydB2_WZ+~$g&p^{Tyczp&_kf4er@27MLUk8=BCBGXEGm?=R`O5K*E!&Bc{M2mI zr+5$DLR(lc5(By0lTxYxOjOq3$nmr3yEjtw2Uh_mkU7rq2a(q*ePNQuf+2tqp&bHp zzTYajM9ZC!G(87RtI-fNx`Lepzg(7%5JK`KN}#sDmXQ0Fz#Ae#3b0bL?UHu|EUh9Tj05xxEa$bNwZ(hwC_CVS<)~tAY&A|-f=-;q;jSh}ADd74-zl9xW zUEH=DQS^z*tWH$HEDCWdby3<&BhYY(mK$}r&{I~iY~U6rG(|Kw!<=oSw2*$0ux`z1=@KJACo(_5KNa`|jlJ@#(<^W2c-;Y!hBX7+2UH zq1vw?)Vfuiye`7O=2rfCk26LcbK-1dbW-DB59QYo3uT5asd zRJk5z@kWn*zs+71QT8ECGIm<^*sEkzU9wkco)6?AVwsy9+x7N46-P&gC z-RZtm(+Z92iosGZSB&R)*M&#q$a;MFog%WBbUxW+T47ezu4)Qj-riy} zd77A=-rhpZ4lpg#ux`VY-zcYGyE$c-snqpfy-->v1X5<2#sjrfAF1bH2$gOT*4X2; zoa7LVKo?&ZVI8vvHn9-_VyOKDEC+}f4E~26W44F(b?}Z(z%_G}Pk7d$rYpsY$~ptD zMGhBCzB1~R)sPoOkF7i|pE5?*cpy>efZ?;p<^RoAdQ6VmW7I7KuA*NAFN!R;a_i|F z-%_0-6Zpu;fWFKKC*PY613}O%z0o5JA{^RtM91_^lN{{-llAB06wKyob>N}-d;K}a zZ(Xi`%s6PB0XS2M7`v$U<>*xX^Q^_UF zL{p->n ztNi~}{(k`ZAM(amNeWp(N6I=@USbix^IOZg0y8SWZ(;8=y*vhkxBDlj2ZMKKhpz{J z8w`|_hxel1$3y-hojgu>gf?1~f|&utB%e%E>6s{7;q?Hias#TUlB=S4g`T|96o+eg z&cSm81YLxS;B;{AR*MaX%a!y);W+;RqlGqN}_RAYgky44`x{AdT7> z9NRCzC*&w6>|xfK5hEu^@;SIncmYO=+aBXpyg`L!*-$3wzuyZ%fB6gaKlILjx^fbc z-IEHi@%;a8YkO@vz?K4foRpRyzy6_IlGk_U+z_hodI4B3lll15pNJsU=GKx`2%hNf*%aG^BH zE~e21B(bVErm8C45$?%F609Im3MBO*sTT8;ybou|b>S-6yjsDw-;$%{pX)_Fzs;Z6 z2_Le*MOAIL+kawjIAAEh!5(w$GU26c@x^;@g0sx){nNkOI>Kk=ZMlibl;DikkLfJ4 zpOw`xDlWWdN#=i-5DVJ4LoGq-|px}3LnKJ+5`}6xX{|^pf1U(077GUhH_A? zw1j!;h7LmN1*+PQN?u$gu?v9nk?ESy^qmr9X2BIl6MIChX4a29Cx7#$EdhXfdY0~Z zK$VdiRLE{phY^^us}8B0dJqq}0~sD{eX=MoW=UV;ilU_Y%gZ&2UsszB4UuW@3cJqVXSzuiCk+u+UqkMC{$I#e<; zKC{pw#ZOD&ejOE=_0_n%aFz0;+w(tK#yBeFX)PiqMF>;H*;P~|psOxL7%G^^qb%bE z>5mHK{jvzTfMVT2yUe3tqFFq1@G3GRP&}wP95i=OXpyK;K7ul`FjbE-GhZ`3s)YIY z(YU<$dFT7x_ilWi6@51vV{-PZG839t*;Ix2$p>BhxW_0;O|F`H+qc8mJ}$T2Zf2Aj z(aWsa!8eOdPP9~W6TjW5A<@cr{>0Fa4c+AjC7*yNOD^bYT3#xP3}QwVD8e^OOLS|L zrVx0lR+;LUEP?ll_n|1FXMZXZTf>J=nF3-t`4ullX?`6n9pELK5fe&=7V^Of&zhOo z>ijwp8PEvq!E`+EK`k0#1hDTsau# zm9y$bQt=|bEU+%nlZ_``D8-o!p%&uI1n5Rc3%NV1P)nnxN2_AjqKbzwa4y+l05xUV znk$CX7yekLmLlq)TiZi@eUJreQ>zNXe#&g8jEMPK7ZRcHn3;RaH|B|=o}${5uIlNJ zL-==sWUT7bX5DF-*j?2Skzw7knkR->uYdcrMSiD1+Ba&wW3}GttOR3zpu<=IXh4_0 zl!jfA)e{%0?n8+{SRG!_F`@s-v!C9=MnL#n01=$WrDWA+C4d#tq#2@WMuBm9&~KuZ2Ab@UWBR;2x?m678S2c$xJP!;;{ z^z`r_2mR&cd|FA0mOWbLc#~{#7e&)yQhlams{#BJ_;&*&ZGIX`F%WpVvZ3*yjj&SjG_I5agy zaHo5Cz5aZ6S&TXjTdixXWytrdI=#A(AF<}mqdl?g9-8uOlqNBTA&M3Z zTO=8&+GW;;x#6sVL;&KP)xmnc4gsrt178XFcSyikHYP~G_+~Bw#ug7iz}WBN1g!FI zd?n!DApxUiAxOaZW-bC23Y>cA~CM*MozD9}iE@oC)eR5IEPw z5Sp&v>Cy3Qx0qafI)&(I7mNnn1UF@PzD5b};I@QsL$B2iRST&QR=Y)m zjMB*A24YHPaY|!!S50b7xN#G=*u~*q8z=-f%*O?EqKcu(R|bbOPXXN zhf`|Zd>QK2mM5YsAxn_w8zqctEfd#@7mcDtPygKcQbdi)@n(vyT8bH3aQ0oA+KbY- z0R;Q-PECE@TQYY26+qaGYYlg{WUVBTUw$!!YHvT(3qlqjGcZ;oOV``-3`e=pnHhp@ zp))h!da1UCw%^SpCYze%i24}Fa-E`06IKnf{!&-uPYa5&s;Dn6wvliR5@XDxx*EDu zw>wMHv@TVGmDkdqYxP>PDDMNml}5g$07>dI9AVj9qsl=qfT-5X36GOe5?jYC`b1M) zGM=F&qb54>ITW`ruM*U913%lezz9eUjY0*HQ~Ue=Zz5vdn{@TfHw~Ej!elE`%CK1h z(cBE81Gi=Il}A{m$e=3o)8D(sR#$YP~pAdbnni%ZCS_4&2F)ZH(>1~#Ln+!jl zblbr8?oEI-JM>eDdxRda<9gQH7W`rnNq8}l74v6%s;@q#xEiGVieoV={6k2W^w4vv z2SGGSlc)?Tyoqu+zP5~z~N1N3+wxVOEM-$fOt}3!W7izNF6YVq)M*9 zkIImUz~3>?)*-gqO5zlfOFmao*_@gZYr^vl%giDfnvBO#N^QNn%-)QMk;mFi5!_fJ za(YhkVV!ijB&noh(T;n%8ZWhS4Ij*{SyMfs%u0Po3SEB=^FlhrYSVEwjZ#5eCC3v& z+A{KSl0g_go(Wck(pAw_997*}-O%ijQk9(H>=hRk*6YRME^OqBzNosY-1~wZB_(c8 zw#Q!Wzdk+CFXXb}fA!-muVl8yJ#<46E=%Efjn@bNIC%Zg;ToDj&Ks&>(m2hx>G%kR zZ0v+$HbUJ}2uE|@vqCt`#gvKQ)Os#CF%^!zBvd?bfw+%(O=%$>Q^RD44%_gT8I~aH zyqSNq(Qeb7v^l7o0rEDX(Rtqj*xZk_x$L*@rnFuLw`RM&sk`an<=@<%-u|>V=&Xvu zO6P}TC;`*js@5GtTryg1T1hh@SvEM}cKv|O`&dz@vyU5xlN(y^KK)KY657-beF*vr zKUIL(V_18<{U+BXpXV1f>7-s-PepcU-j(WH6&xk-_R9|sh+br)z? za0>WDn4A2u$hrpNo5DU_qS=aJ;GD;O!sOgS`h2t}LqKYd!p9}c<9J#?-RQJRCh6_H zffN7-)JTFfmqqz%%(o5NoDZB&{M!by3dfrQ=1PR|$g#$XMe{Y-k_1*D*@hk@k@d3A zK{bP_9(PS#WAm(h1Jbi2s`y1-+y<|o<=~&)cD{48m6(_I5%Fib=q*%r zb*C$+HV>I=?74X8mv_8%>7Lr%xtb#0_s>4x`;%Iod$~3ly|ue7VUM0pTn3`o-=p;M z{620`3ULo~g_>*E-2e5-*-Z;yo;(tfw5HSRv|h9qwepYKJsg3?Rf!n|sidRNJKmNcz=00-hyZ#gdunt0k2dMW33U_`x&Cl&6g4LGe)T zAZn=`eDrgu+laaI%#>@`=h9k--hcB=m+i49|99&NJ&(2SMz}%Ql3}9{R8%Pks3q6^ zY00N6oEBfyLsG$1NEs2lppOeq3kt>2HS(o(=DU3)Q?W zCWusmc#u%&51*M7>qDiWq41o?!}Z5Qu@zx$o>|6xR*Sy(_w;a|hN>q=d$+Gaq zsy(SpxwPjBaC1AR)(b2o-fD>@ATr=gYIuK0I)FQZxPxK{Fkn{T*DhE$OWjHNygd*N zp-N}|fREr#rn8R0=76WhXIVbP8rAS$$^~O3Vm39QN#Cgvh`%T?l}KS02=Y`Ux`l+v zc1(I~f0jBVW_Yrhh_;0F^4cPIKg8@giwkK_X~^%2NrD`zWWVsaN5+1(C) ze7k@2645^pN-yIGoY6qv%k-ug<;8$U@#SEWqnOMs!~+B9u|%XwqV!M(9hSG_!Bv!k zDrzC|&r<0diNp zo?^M74wJd9uA>rt!9e$wLy4|p%F#=C6s0Ba3nSjj2`}^X3hUVC^lD?pn71|Y)jjrW z^V%!jl*kteWc5@puGIW!rspSV6Nvx~O%HguqH2Seu(EhI*~bN?Cv?sj=R`48%66{h zxp{A+K73jGsY4b6(n`*0KAKBCZqL)z)|hXb6y(;3%?!+gN5m1BI%*wB-~$j=io4HjR6d%;QuvE3Q>0sYBuswjzD02I$Du6k>(v2V1u1Y7(j*8n2q4zd-^Bih;(yp7^rJnUuq?vJMIO2>_(>IN< z{#*d=Q?&b`OwTF=nAeBuY_Lpfmh5co(qw*XJA{3jAED zKh>mWsX%8YBM$f-G^Zk-tqPng6S1K|tsnxlZR%jDO%T9hJyxij3j10VsFXsz*y|{B zu$6!S-b$@0-vkAMZjkEaNNp&uC-0qK5CJNQ?<)~bc-zD)iz&(<_SQW^;=7+4_~sg` zpinHSf%n5BdMgBK8dS{Am<|phls;6!;%7_n zhQ0P)tEFm3MFD*7L8P=V2Qdp^tUo8x=!!1oZ?>mMPhSok;KY}Yyiem zXQ^GDiZTl45qN0mYOpFv2uc_&Y(nM%JLIWIj6u!uH@QJreh|u@q*av4cR~@VRd-OD zeoc~`X%KZZ4US2a2w_R=il0%VIHBN~nODRqFa146V!VoMie3_bx2-x_e*%6|)aXkYBGpU#~u& z=IY}+huo=#gm?MDx@CqW0=-(Lps%7-1wN9;z(*>%ygwXjlwTxQJY(m#nDGNjq(D{$ zs`^sp;;WKZ8w?JlwP*;AL!d<6>QNz5c!H(v;jF51{5#_p5tuQ-7T0Gv=*X`V67@t6 zY#aJe9VC@(DlMQ;(uZ%rM`w2V)c=5KPt46|_UJ788c{pFq%=uMNodSRteB>} z&h)g2^Pp{YdbWRpmRZ`*C07;6_VfqP5D`!1azbp{oYSuh&*|5@%n76tD$Yw8qj*&} zrx(X>-p)Cvb!$$d;Z}{#Z0pNYAKrtCkh&t&C`<+U9Ii;lFK{UqE4lNzIK?ts;C(j|pXalpYEt%%)mw-YcxB~ftkndE+{T_?1fWm=QtRbzpxC&Tq zVUgrfuB|jFKUOo3Pg(TS#+j9)(vVR?mNl)g^Eh##p;4$h#fxrG- zd+F#*@$y{?*BPyc7{Ko=Hyh{EBIX0}o$)L5)hJ21aG4P|2jhh^Nw3lTj*GUJn_SNY zbng22T2;V_?E&m;70;|KV^^p+SiKYG9MNEwB~M2dzqF+ESEPTsvf7@Quwe$^Kj$tuanl>D(CIaMp<$eid#IX1mWT`Q#c&UUMe zUjs~`dY7N#T&W4hcKv4Bo;7q6U22F!p&@?xg*le~yBo6XshD=G8UAx}X&o0jkp(_f zc->&5cDm7pQjNNOB3F>Ptr3j%=OO{~9!o^deDQo3RS{g8txJS{Eeah<^2c1)=w@U- z05(cT!N-6*n#G;g#BrdGm6|}yrd}k|SH2U9?~~tz`dRBUVV(jVC9X;_b+rH~!y*NI4 zIXE~uF*MH-o%W_V&+~LpO*7!rlwT)5`1@5BBBLJLZdnar1*^5kI(iJO2EE6goIUBXzp!og6j_Tf zwkSXX3Igp4inK4J7u*9KgEmoDY}~_sWV_@ ziu_tXfsFk%hbQ?c10ZES=5QIfU}X-5L0H!6vdE_wmkb+i(*n;rq{`IRh;Od3Gf>{4 zc3!wVv-32MKlJ3#lY(C*`Ltv(6>Ailo#=gYjlC^62pvK>d@bH9oo~U{FS?8RIt<&xTe8b%sliO2Tn+afw_QtpB+GWjJ|sg+0JTOLC^hSU0SIu*b@@kHrv3 zil)CIzo&Wx{0)*Is0Sz*iy29@r?}v7mJj)e33YsQHMl`}p8{?FhYrx~-9g3D{JL-a zyi6`G`^z7l76VxCU|&c;vco?^V#6^8FS+e0x)eBPeJ^V`Z?p!O5hp|#WnNU&r0g{H zv4%gehC5Jg)2Bs`tra^xwpOApK>Z<#*UQQ$n`@ML@RHk`L$j`Fz@J*`wZ<% z*a3rAg;~y?2Jvos^^oc-pKK~NgyOWw!1@&Z0ZBdNgbH$7a9*zy*rd-SnLQ-7u}OhH0EK6 zq;G1{eR(seKF1tGg13x$als#exm05ierDnX{ObyrqQqH;pcy_cioSqRgKDPBo+}Lc zJ7RNlcu-= zNgh|}X2z>D$v$AAnh1P}U{MxTkvk?*bhNnSC1)Vyi~38T3*-oJ#U*33)aYU^WCGRP z!x&}V8wII>gk~_PA~y+iJwtinQCCOGC0&qYs(gx~FNPFuX`O$7c)gQB-+n^Eo5(-% z$D8%Xf4or%XJM_%m}f(j|3C!TP$7cm7(He|AWRB@lpU5claZXnAP(TYaC8tZ357s* zbBhav8Ek1t3y!#eU3-T<*;@@NwvP*ozM%s#Uzg3~1_~9T9-%LXBt>r_}m$u@{6;`|(Z(&*mB%rO5;~V3Nh@6ljoGmE$8KI2sIk--nW5 zV3hU_nxF`bx;!GXn22nB0^YG|v>RD!scm&6Ea!2`%fIY4};>J3|KuegjQ?-AM9 z2ca)b806=+c8b9l?il)X)2&1rodpqPW6IfwhKMCMhb0SB2zDC`&?x%8=+9~EW;7a& z0@!+3@lCC=X~J1lcr$j%oJT&c$INYFV8FiDS_iqkLsbWcN5C9^j7-`k!XI!$-xvkr2dI3OIlsapGeHU z#-9iQ{fl-hVo&MsqvJF9sVCI2o3836pm$>7*RmIHf;c~bpJoaSc05JrYJL-^(=xf@ z^^<7ydh&?LbAGx%Vp_H_LnCciDV)F=x9gr0HCS?-Xu`f?Km*zrxHQdq8npVcjDei@ zd+b-+xh(8^CV(|?Q0vwwjGHwcWm3lARoCDocnffOl-{6lL|V7?#hjdsgH6@X_76qR zeqG% zEJ1C@z*15*qlR^DRbszduNA1{RIyHi)#)W)X)~T*1-ZTgvYW0k1W{elW2fZ#vdTfV zLZxVM?S#$T$WUeHdNnbNfwal{fL2ng#lT+@$wzujGCZkfcRFJ-P_#h+%#xClwa{FG zj+VXUyHAHABsI08uir0w?A_tf*|$4`7oF`cd-g0;LmW~l1o%?er!V9S2pgcu*AKSr z3^%`g3fb)z^Yueh%#hzm<@og59qC4c+4wH4y3%W#%YPK{t$1<`4qyJ*x#_YF{NMBE z?ECJr2!%O^;H52P_r6)*mMbSm@%lPFIQ!x7?3DU*F%M5y+1AbWsM|%P!$4YHhyl)E z91r&V`uLv;%4g36l!oHAx%J-;|N1v-jvb)o0ec}h0#+5e@0Ps6D;A)lV_Kbi%rZLD zhK#NTQa?*n2&ch~;ID2VSz;Nkfdgqp2wW)hg2BOr^QkVQie{JQ*X#HpDSfMa8ehUO z1?x2|5^zB=tHmo5FJz?E%MGe!kvCaCB<-)xRx79g6#hsFNhWbCBs(+`?iuTobV;T| z0H5!fxKD($+Kt$q_@AGX_pn2M-Fny8<3X=D9uB1Kmd&F*Yde@tr=;!{BV$K(LqETl zd9rl}09*+T!Z;ZYQ$9Zs&sqcF&c6<#8bg&(9zd-Dkp^a7qF?q>BnvUgg0{OEdiwL$ zdy_%|FYX*ook=LG^ybO4b>HzZ@s=zFQdf*Z|*mR z8znp)me3E@DFWx5A%|pW;A*yPvb)3M7lW54hyO4+`k%Yj>sRlNUZ~frs8O{)c=6_C zM*;~TAlsw|$Tj~A477u9y0tpZNmNuxlv1-s)uz&CH84@Sxm0{0;Hv*}&3-gnTT1Re zbtG))P?77CiFkQQ=|enCdZ06{ExIve{kd|tOI@GvmqHzcRQ!`dU9G%jK!nbO>fHZ8 z+51pRwoz=z&jj_L;$_uABsibSElV~!b#T(R_O9-S`osgYZKw3H->WGF&IX}He*qJN zsj@X0p;%QB1#7Q9+hdB7%zV}$(B0_a{8r);Yw@ozPezV2kocQ>$9=+Wq@^d}YVkR3 zBbg#*Kf9GoIL?Qhgs)4?f&E`o4n4g=Q~KQky+O;%WK^kaH7+~p$Z&?P>&yURwv=v? z5zWJzfQe=~)oqDcLXLwMgkToK0~%2$o%I&ENt$1O^NswDWH=zou2x=!q<=-W6hCe3 z-G$hMVIVde)XVb*bf45z_p3Fm)%F4Km|^q3_pN)be! zzX~A_#Eh2faq=6pDRCXdi##X{sD`xOJ3Tf^gde!H>H^P-CQxtN@W`^{g~D+!ah(RF zGaRKGqQM>+yN;Ye;RX_TiIRm>61jddwjN$4AQSt*8$pR7VyC(iD$1`UB^aE^`vUcm zrjP(#lAEjdz35J}8T+k*TYrF@CLnL&b0ucAU@jJ8@puINQO70J-(mNN-&%Olyu{k( z0v4r+2mQPC!Pb_fXVZ{%v@Enucn4 z-xc3Elvl*Y1NDhaFN3dTp%a;z64R8xOjkvJ!rrz@o#C&!t6bIgURk|Y3-(TZNz*#? z1b=Ik%#$7?*knP79GgEPP(KomKS>rBG7%7Ibm71tH9hTH5L4rPa?4Nzgo8tolI&K} zl{it^&+GHKm{VkH)IBXs>`c!o%#bQj9CCvDZVV1HT#y(r!a*B4%urqNLl&mJQOLt2AP3LMf#mXo1kxQi{l_izrL} zTX?(IxRC`s8M|Ez9Ul-qFcckL`N4qy=5HZgNN?8!E3*P zm{nJ!6LQrHYJI|2;>S~zk(mhBUB6 z9tEVrKv(E}FwEt7g2A9JJ)^}+PYg>Eo3qD8EA|H~SPzISl@VpBLxq4)nDC8@4OZsy z2VSwQn?L`rWmyLZVsuTzCK^r9Vg-JzkRDOE!0-xVUjezod0L!aA<=U+=`nZmuDhmj z0XFyBjS#AmUg*LOSAny`<0FrPEklOoV>9Ot3~a#}S$hLf9`kHNr@glkZ}eGMvjIap zuwe_@F&VX+(1_^+dVMN`y{%Q1_Za7~kyT7P+S>l(&h323bI66iUAOYCl`G3Q7$GD@ z|3<&3%1eyha4rk4=`ZSJp5q+0j^Vo>z{r&!h98SsabKD6=gEYRUcWj0>sRLcmHE!i ze8c%i6a%)|TYUyEPeawftJfqvW_{7vDm!gB%Hf{_sx`95-X6a`eDTxZ?*}JGpq}+U zyn;RXOnmn8hrvG%PEHSxj|P}*h&GFxvMCUCT9QL?Hbno4D5Y@{UQ*PH?SEb-U^b)S z8H|r^g2SHhy6|35plTC@z3{wD6^YLEB^5(8ID6C@XK#*Q4n95J#`zHVQ7!uF-V+vQ z!8|V}TU9;(Ztkk*%YMCty7W41bB#qAqzlW|F#~}PHx_rVNj{mvMiQKj$&E$DK}j{X zSw+PKuQr8dMxOP}(NcD1Ih!K~Qp`0+jJx3>cv-aKLvYK76)_&mSS6Nb*C#T&&(d*u zF}r&yPtG2|rgbD;y6>X78%7J|8X`hhG%ktQ%m#*VDQlQP6hZ%3y$ZIYtodB9{@B!S zsBYA}X?DYp!fp>5_B*9>CM^x4};Ug|2$xSVVz%t^Q+smI?l#_l7mZ{M#i34u5vWES>m6cXA3BIt+^euq$8<6&I2s(b`pqfS!?&G< z!d~fqLx};DwMr7=*9h1Kmyh2d2DUz4(Ok68GZOaULtrf&{5}F=XHDsW!ebYuv(G0; zwh7Kp8Zo;-Tx=jL_KOUCZCr!TIt+Hs3!`>& zD?^B-oDP$URP1=`iP*1yk&M-!;IHnZ)dl8^=6SbkV}2o7loA(O6lqKZbJ2i~U&wqo zlPtFq0rN_g^u#+Sk)qM3K#spl%*37+8Hc~HvnJZdk2sNn%dTZ|88o~=sCY0kdq%Lh zGxChF{jhO}Zmx|SXH3^J{b<<(f>1t^0=^>E_Ce({qRQur!?stAZnbh*g7M|pXucS8 zXTowd<_JA+5qv)9v_IBOUO;!JICSitvJM07KV6=^pZr40?IYD?NjHo@Pt2;hL1jT# znN{@f*` zfsI&RK-4b&sp{|c*!i?#WuAg_UzCjb5P31RhvV58E-K4BPN?qq21fcCYYyLunr*7c zJw8(kEcn&8sK6;%7+CnvpzsXhOI5vhuwPTeLLN76`L~nf*EQweaFoT%iW078loo|g zLZwCFd0pK$0avTiHv$A*oEaYA`HEQ6#hE+wTNjW6yvPD_cdMmHJ=fI=^pIxmFN2tA zdl3AJniIb+5+b7pyZ|L`uCbS5V@A$CG^`Xp% zh`gs+)r;8&e%n*DC7C5vds`N27EH6YHZjBajc(c66(}owew(MlNRMw+%}4vIE>j-? z;;z=8Uqx7hO*T=eBJ^CXKNr^D5B%2H-a%djQI-4FnLr zfGNku&KyURhHY8198l*`*@9w2hP&E;uk;0%tU>k?1AXBjgjJOB8LIqyOdf=xTc$*J zz3IT*REi?kBo{y{thfdvt0;LDO#ki=^Xu$kew}-mFXQyPw?k|>%w$SlDIR097>mO! zSS!_d)p)6bED7XONBUSh4T$N~g8?u>{f9x#IG_IVk_r;9DDJXFj(Y9CBeX6(Mlj+Z z^)5XXS>@IW@!weZ_z2#hXUWzoqdJrKdVsnoslJspoGh=P9{X31eRw!E&tgTNN77bo ztlh#&#KlW|D=Hu_C|tR2-*t`>OWHMQM7T|1(ttpN+83qsV-uwBKsL`?wiG z5gRk$LTKfctqCMcl>Q_l|Ux$Gf@ChNy)T_$72>hQryev*BhnI!g?5jx| zyqI@RSy5OJAUlWDra<3G$^JE^a=<(*rv+D$eFasf5!Kd5X%bh`>LAV`GL^`Svf`Wk zW)fvX#gSIk>8F-NMnU3zr)vT3wV3az8U_5G{f7xQQ76mQDg~G8>~C1Nxf@0+dNXbjai|a&agDVc9~wQSHD&*Do=UH^5BBqnUk^k-mc_^X0^QUCl!%}B&ygUNBLX@7ZmzK- z@S7cqG;=&k$rK7qLP(@DP(2_suHw+`%O)wtCs0gLu?8aS%Y|oPEWh`tRvXwpAxU&e0a=ZwGQSIHHK=&g13whBt^J zy5r3uQulYQQFcdCQE-u={**sL`oTMaBX`jKf@JPJB02iHMHsgX*${hHk*ZodWXJj- zET#Xa3LG&tO9^IX$Afak2=Xn>VvyRU$KEh?kjPB~Wlu>}DX#v83PVPHRFapOx{6XM zD}t{Zf{{w0v8Wu)g$?RJ;&p__27;yZC)Mpl>Q7{zV3xxtuI?i4F_?hXT|iNbbkq}i z(f~IAXJlL*v^FfX&B2Iq4_z4k&WrYuYcS@}aBQxTfp6Y+4tsMH9i`&^t_Gx5(^1wd zN9x~LVQ6<(WO$)ZHJS_z{h(O6PaMlsAFX7Cp;#sCq?Cz5rU0Gfzs7(axmfKKJFfnw zG8H)19qw+52cq(O(KfbbO;1vpk2P?lcd@aJy z*qTyjjH3@=^hb?`smxIKSm@;JlHaoHBu&9c%YfVQA@&j&lR=ELb`0=z6e=~XK1&<5 z6k$b&q3O66RY&EjAL5qU4mk&Lx|eO$9TIFI4Jd5|8ZA{gE>H)F1xZ%&qUwm?2|d^H zo9!N};QwOyKOiM>^(W;KQZwn0@Ud}4FJe%!ogTbBemyw;yQMAxDCDbygC7r1&zf}| zN`AAI98X>Hek}g?6l`fyLt(&d-Jk<{jq-iV538CFef>u~L;taW_Ckf5zzK7wg)P4> zY|9Tn*}|enXuS%DvJ72wHcW=u6JaKSKnBfFNx&QhG-@F98$q2Tr9+#?q!GMOpqL2# z!AIhT=iHI#EkULnIYbygo@f#-J0&=Nt@DkW$-w6WyQXW!>Z`@O9$8AiSStPSu{`eO zJ&K;HZ0jH++L7o|&PS0!A|{~M@uhfEA=LQNPzm`usKA9n>!*V1E>d)T*6=#2FXx zXZXW3JU}=828XA{4#%I0V)J~gO#IHcxPS3$;NR=p=H&<<_uXFPmZBhQ9bqk|r!uc! z8qZSWZ}{)}bDA{m5c8-0LU`|qzx4BbLQnIFoRin%9(!@{`DPvHPzp~((4G_B9bf~ZH)*{b|A+>z(?ciETWfcf~T zPl0k5Ty_JFWQHzFxAVxtqHv)FHogJbQf0xpL&_dY$%T!_(IlYa;&Q0)t_ddH8S+VW zX}&}_rzMA$pM}efqu;SLFA^Kbb8#**wL%LXQC=rie91cIwh);MqLRzqaeVev?hG2> zSwQ)bq~LLp8mo`vat!6I*MXcDJOURdbHM$hmrv~{$0r^H+xG~EBE z%Y`Kf1L#<)9AY2&WCp&d;2Qy zI!AsZI=!_MzbhST=P5fGi{S@7uTvGdBiP>DUCa5u-owh7kxVzxaxy{xDaoYn?mpEx zHXb)MrfcU^GG!q6*>-6BI5@a4XOlWbo3ov9&7?Wvj1gnQTVlhKWy4c_4q-h(Q&_MX zgvCYNoi{A`4FliSy@|v9njSN~seX_*ehoqSx`5+($$Tv$kQy4FQ;|782b#WSHSuk05S`<%N(Paw!;BE<%cEydn%Wv z&#fb9xqh>VZPMTzWJ#wFe?<)51Z!@5pZtRNMcvixYsGJLU7H_>JKxymyDQZJ_)yoS z83^IItc_;ha_l`=f6w`RPI>V1 zn^bU|N?kB~*ip`Z>LjAd?(}I?Tx>hPcWO?5T!%II{~lZ8+u8`ici_Y>d7(En{0aq< zb4w=3_(h3z&CF5_5?qSQo*hn!`?1+haOb3Hty0W&1fe=s99%7(jDY>}%Q7;rpw)(U zi($2y8RM%qfSrg49y=BpZH`&i0*WP__`-==X0!tBfD2k3VRV6%481wuk?t+f2hxb> zg729569tFj+fa;+Z(H#=bEzk1Y?mbqML4h=&0t3|)gR5plbk%k>E8xHjnmpe&NwG7 zcD`6#%qA8g)zU5$R!_P7^bk#+5(_e|rQ*X~IYvk>*1of?2e9up#CLroSF?Mm6ka65 zbxbMmP7h8@eMU&qgl{Z4)AG|Sc~L89N~up@<(-@T>;<)#RO%>jRMM-UL}{O6O@gV^ zdytL@3P%=NZxT=tHED<}6%nBi`U_!6c(V#@8B*)Lp@j0HzyNkon^Bo3u>Lyoc8)Ad ztz(w`^=~sf2O*)!QdF5ba5>-DFA==)oL9Y`Hqe=p0({h@@`-w$eRUVqo?LOaCM z$EK%+z=J)Sp*|wnS=BKt7&hC1wF%m$Sx*`s!eSnWfP*OH;9GKs9TPMuC;IFHw5Qzi~MO7SS z!2QlS-4;~NJbjN2$vLX1rAyYK^hz{+Lnkyc9w0d5Np%Z+7!ccIVg*bnAx1!SO}-5p zX|pA%%{6wIUGYNHgdlL(o>&9C*~mvqnxw0h89#`ZTMX$tIzH=(Mc&dXkC5Gz)(k=! z5(1zJb-{qg%{8d=nT#xKz%(osu_P0r)R43ye%^xuSxkGT{#c)DGpMD{eu#$b==iLm zNV2291sE)SGCVjwv48*QJ~;Rf`}Yw&XjDMYIg9foi;7#8Pa5XZpqB=yemFjU9a2H# z3}&gJ4RFI?!q!TY4?u_&76Nxw({%uYZWIdLo6}PsWdP`VWr36(=+a4Q z+JjfG_y2l2ID2=r|AUt33=-b<4_brXCCKe{=yUGD)=o$B@I*C%)m6pW=jyr7UO=&$ zBrD|^fjm<570#%)xyC@sW>7oE>=jkKRc=(0Kc6O$Nr_+6JK#4$8M_Jxj-iXqQ282X z8@8G?&NiZ}s+e-gSS!hE@y#eoOYX8^1Tf2sag-+i%{M0nhpIl1Mbu$^!Uq}7K=Cm# zXCpvmHO{)4Jt>?{iu^p~V>OEKEoixN2p|TTLEV9yq^#Wbq^bt#vT7(T%I13C@NG^Juv z1xC!#ci0@`MWPhKMQ>@YSo7%|IM(_)eS<-F=Ny|}M%ggsLpGci0i;5BPM-Ck2a1y0 zhyf!3I+4{kJt~nel52nw9bwY zMs;2#3PowHl0$E7VpiFmsfw0Nbsj~uOl4$>^dFu2Cl)?ilt6)!T;>)qcCf%Ed>K?= zyV%y*HUc7PeZCD<+F5cgA+VWdBsnDr$4nMK# zR_)QF<1_y(wDtWCVrS?m8z$vSbB-|Q%5sh<=SgzEHA0s?Suy3KieY*XC{bl#SqX}F z#C6RCTWH0H53djR@lhlfmvbY;zu>_Vej>t@;&{6x2zC|(z0uC2p*h<=fWl*_J}O1F zWEir8&z@eLz7ycC@vD$S&gWS%8x(ytP`(!aA=vD10pA)PfR6uPlh1`5+?%b`TAH)Y z>O?(}ue@f?p)Bzhso}XH2ijx$s$=Lf18!ix0&A{IMbH?l4n05HH`*C~%aq@Vupv+( z04j9#aGAg78|~jI1Gw>S!DQgeR&b$~yUlpQ1_><~O$%f?iHedB;9_!-7YQ#rIw4ld zueiZa;5U^TVA{K5jm1$_l1eqI4EInkEmaX^7Z6h%6;)6C;MuUJE951^!DUnqhI!Rd z>o0+!c96{x9hKB$C`5-b>G5TObo*rE3B|0hb?7w|)!SoF{_oZkd>pIF1{Sz8eAA-J ztteV!;*pRV9%^C#G)YAQ@wbwajOKoA5d($b;pBUu^&f7AjL^CG#AM^TY0**!CneKh ztM8tf)a3jA$)WKh_ISAdcnEw$m?c(vHMCfxj53mHKNxBkMr$idnTcTHQL-eZ(HM(U z8XXu_DoG|4jNn2tGRY&>pCk8Je;!8_MDvIVDQ-Z#g+SP2UaOL4r6g#T)?<)lLw+;B zIzwfLQ~-whiOd2aI(S@y#f1rzi!A!chblKY#<$?mOr)n(u3t zDs&zI&Gew&z=M>U8K>o-mh?1ygWktJ4Z`MF7$Y_B5;(BPy(tM<*86;}$<;bA9M@(oieCmfvib^vIw8*Y=$dVIB zpfne%2rqDl=aayYtZFsOeO0Y`R) zP{&cVI7%88odhlug7%UZ8w^xUt-*kGI@1gi-F3UF`V$N8%$ZVJ&5n(u%FWUcK03e3 zaQ7m^J>>L$8v(BWdl#Sti>J+U$D>T1WXO72s@&BTv-Yfm-ue)zjF*$x?B5HRAEK0pfT__`e zv&l+ES;~b~V_foR=%+=MpZTd#QH=zzYSc$Vorz9$BA2`)Nyezaj5O#Li)>QZXj+@0 zHzJQ<2V>YRv|T<3v*3nhAn&65<*tW*JHpJfrHXxx`C) zm4>6V!ag@pAg;OSVxu{Bv@A-5t^k;DGDowp*P-%dFpbatl{5k zXqIr)1Wnr^XD8bibrz8>&tQo&=xqUlYoNFw$t^;2Ky;*~3KHEsNJRCD<`2;622Sed z^!;q|o9jeboB-#gK$iqpYiDSZUXA~|z?(P$opY?s0d1X$>PS>o>QXbIO2du2W)j=) zXKlKghFkAj`k4FlqhL4AyVX@@{CWgIB35z_IkSM~VpTUZ*n(CcE!8j%AO5$(X$&=U z!l-1NL=8TaZNalKSPSDUMEih(B>fOTZnpz+yA_Zq($9dBJTYhKG2&^FRJY*hRq-24 zND2QHzNus(a;p;sBZlh>n*{Fz3ts`+*6{!?hp3vb{0B5c)8PEg(7(x2ROu_nzt7!a zQ@TV7N@B5Hl_38BzlXfws0@rbi=7Gsu`T9nadw)fs@F-LWEC$Sg)bPAit!E|ca`&C zRYWnlq9SSFh>h5=Bx_T!=A#jhApsipG*@j7H^8!Gbmi=t7skbDju1)v4z#TJQ&@Hq z7eDhvsfFK5+EEXBy#AbmJelT-hEff^bXmqZ$|@f?pXfzYC4QX3pXO@gj#jI^c!d`1 z2M2^bT2hP@(xX@B`FM0!nKB681ihp0eYH1CO8Y*^R_GRv(VLzG6>&lR8G z0;-%Z=iYs4-?wXXKh39{K$bG^ecD)MSYc&$fWl047oJBB)7R$4+p=J{t3JT@aXmJs zgx3d;YTJ_STo>usz1~RV$L{59gRmdU+V6J)hF+S!`*KTTtHqt#OECA*@NiU~D@vX$ z(FMtjnu@#50U@KO<<&}U*?`znQ^HmbC%w4i=6sRJ0itwJCPQ_P3ssfPWxrrL?y)t{ z>Nnl8W>bPmWi=N{6y*EiaLFz`af7*7vhwmyPk(soFuL`(Ve@r&c5!QtuQ%l9$@ z7~DY+O)T!Sn5b5}?;~`E*DXk~8)(eHtzib&lWo&I`2g_6#3Z~ZVZvSj9f)4%BGLVy zK|wiz7>OtvZ#+$_WRl*_HE7M*sn#NNbk>l?ss%ja%kurHvqp|e)rIBPFpmC}7d>V_ zOR}8Oq?(iu7SCQ_189P%q5>S^CTUcS@?xxOZ&4uvs2g;6^zKK8C`V(I0FXd$zr0!7XwGd0vxSXjV!$vy&pdtM{9N5S{5zQ>>rG88T)+R{{?3s|YA4O>f z-Q&TBroR|0GkN2y)A#-5xmlx)bc0E{wmuzX%d@JWQXNp#jFq=##m9zor#G*bNSXE7 z_IpDg=MQ3IFX%T$jf9s5F_@)BgbF8&CZ;z@ivJ3;J$Tc^;nKyq+>ZxGZX|e8{MRSp zabX_zc`z+N0_>5b_^-P%i6FXW?!g}qjs|ZJPyR#6D7w^{wI$(k-1B#)M?Vw-iGR_z zG)Z|ur3urFcN(^=qz=7x9}n3|k4O}^i!O_bOJ{FdCoSr&j4KeXTLRgs(okp7HTXa~&H*r#~lF&4E0G(Ry`V%=P| z{E8Q8G%3kGDpX@UD$;}(qIpeIb3sY6Fy{SGOp6xiKDZWe1z#>m^Xx+KF6+@JW?%r^ zR}O|~5PJpw4Dm4hL~IxQW*#mknrz)XPH$}fWxn}BIM>_ble4?9E{aWSWL?gB1elk* z91F59N&goAN^jO_r7WIR$FlI_o8O2@;ac3COHJZr$gh%^*Dxx2`RVR35}bc~)Z|LN-v;sy#GyZAfeSRH{oe{8V7F-=x=FV7~o0! z`+}oWD)K6i^VG@ScP~bkd%ILTyn*wx;3ErIS!Y@+tUNzony-$bry}x@oyZ3i5n|dF{4Zy#A(E@t-s9}IIuIdLk zeQ`E>0Qks`!8M~)AlvIjmi#v#s!eCb#X42!lnNUzIL2VchP6I{Tavhs+E-S6Lz?@# ziVYqQ?VGB2=v`7B_!l^@oE|pU*xQ1aytty2l;fz1FCo$;FNVA@;^Ra<(KydW$;Fg% zVQrv&d**3&r#r06M|XPObrv5hMZLL{edn@kEuwePwHHxo`z2XCBD&b=E<5EL+zGFn^# zN-T>kh@^K@l}ZQRBuETZo^|$L4GxbE&UQt$8H-N3eJ}4`5$nPO0gw>&bufwcc-*4x zz7|HjNSKgpltjnh?)<#-9?tQ)x8J^ZV6)(0q#k(7~o)Z`s{wk&XcO# zn1w@q$Zp+?MxzlxgdA8taAoEX{8przh8hMbY=Itwr<6l`d$--VV2_z7kBR99?XwLF z8SWxV_$YrG5gwq~l3A&I|)0PQ!HXDDDWF468lzX;q`#EMi}%;n}cW%>i#( zN-+;Dr3g5`5J80|T~y+ffkTHbe{Ox3ozBXkaDi8Iq))Ty_#6TRhduKsWY6gBGq&^n zF8B-OMHQU(ZzwA1Jt!swwuFI|B4?IT)^FM@S|u6yv7bYM8eyq`Hm!t%vMN%Zb(%(g z&JKSN>PD#bVJP7KB#+B+bi-1fT~wEV<=t;L3|(npI+I1iQZ}BW26MBn-K6T7 zx_-O?5Hurr&|^m~O{rPUFXFIh6yJ|QOtjbaR`K2%{c3_#w1zEi)xTeuD-*HVjY)tdHf88YAH>l zDgZP-gZ-B;PfpKHULPF2moLXr`62KU&*&FaMv4w)*ur^P$-@~FjHEm&D=2pwC0UYP zpsoSV>-NWZ;9zdR*YV4P_cP7WYT@!B-+<`>7j>SfBiZ^G)uz_R@MJD>#VUlL=vKsv zdbg~~CsOa$W2@e%Jx2fUEJT<6|1|G_TKqqE(C@`* zTH7Y>-%YweDrphlqqdVP8Z6b`LbZ;aRP3~9Fr~gPPu!mnkqZRCG5AIIVQt(|0oKfcN+%M?JV+J-Jd$NgW5a6|OGAx1& zSMpo9;#E+t6bN~(oTQ1BNgq9zVOmh`qcqDT2@V|K&OyE`c>0&epg%nWK72ci8R0TH zwFow!r~&Y`uizq8CHDT}@Z|}h4yD4UZJF+x99LF2xaWhwoOo-#$crM&g{Ytim2gw# z)3ie{e**=|Rwc1-Z%M$Y^)J83jR4dKvx7&vx99BJojQCHo6PF*ssLDs#f#~9yi^Z| z0OTX!WlEr!CvPN<96w(|LDzboTAe;6-P<%bq=Boo{#8x}JQui|SIN zqsuCXgQO!*J^M5W9s_lUfVJY{5Kt#TOees09gn`lAuxlzvsKC7>bU%G#NN#d>f~y7 zkdy;lD1AP6sBVGln6gH9fd3&rJc1gMz^Jw@m)5>nTx$zUYO(EIr<7Jltn>PFY4J|p zvsJcr^XionH0r-F#R8Lc>cXW0wpCgJtB=~IqV0^P2qCss^Or*#*!Kz#BBG&K3{Wm^ z2`GP6hiAH;%vywbaSqKLbb2Tbp>|fCAFO4L6GTA)Cs*Z2Q%>}fdf!`kTHiUdQeB$f z>ej5j-GRBvWzxQrkC#ukjRYmuM}8D8|&vvqg| z--`>i@k;RL;Mzo!NqS3*;^Dpk?LiV(tda24SMx2^^3sw;d4!|YJ?3MsUVpZGC;i!O zqXKRB3(=tM&Q_s;)6sa+v6M=?LaVguJ=xwRhia`=3%4h#SoNOB_V=x5+jZ1pyPm3T zcL80S->a)_YwGp>)ot^y)pOyD_n;cM-Igl2-NqYXg9dK*s|xN@so-`OQAh3GMF+P# z_toqEm2h{O^+H;>-MeYw9@UBA1dXRw+ijy(tC2WY1v3xy>}u9_KVQw7>s+f(32>by z+BKbNfqm9CLqPzWk?PHD_9-rDyUjYd-TT+UNmbhKoiYC=s<#;|=#Hwl-G^1ZEq(x) zGylwVZ`(V6ZlQb&W468Wt%bsEx1GWbdkf#G)d2dqdRUfko>vdAR&#Hw7Wn^eynj?e zy^#()Ip>$rRq{zw^g>nY&y7LM?t7jiKR)9We7PBo3b_P zVbT+S^^lF=p8=`Q;4VG3HUSM<8kMC{T0MVU?P#O&Qv&0U}o`$&Fo zvzu@g40pF1r-YckJ}La+=T{B5fE)VITyr z*zoAHwD9)rfAac3ASQ+omBCq=y6K~n8#7c*^~1pPoW8&KWvY!oTncKATq4oSiUK414?@xBywXrC^;Bruu~4rbJr zM=-p4dIX&&BH5WoCNYLc!m&I`vLT~MJudNRmRU-W&4JblBq~1USp~OyJ%Ue9QtDPn zlH(gy(&i68aXE|-s|D+qmpD9;C*jz)NrMq^mPoD5eUkC1`Tg<>du03;pTT1n5jd{= z*)B4K&KvsOd0h6`I;|_^c$_7;tWhD+sR}N)aca4oT^^t{QvHred3^OREDaRtsQ!LVqDI3u2 zOkPexSTM^Qs-xKG2FqzN=mWHBS)Q%Gd3|bo0JOd(v?`mo>{PH@s1Z7zxF~L0xNq4l zqSv+(^sIu5^OOzr>Mbu=;@;{gP_r3Vw&q^pQj?Z>@z=aEuSc9%q8Ymaa%_(sym#@6 z3YB(Np@;S7$Sg{&?e9TuJtu1To$`w)zGWU)(SnO{EUNhKWxE(;DfK2cmU_Mr15Ri? zc6Rdapxfq-5sE6mW2tDED6mU!#$JU&n>d@ehj9k9F3QRbcIeh#HIqqx$nxuqVN;MY zrzQD%dEh(is%K*qXtfxZn-|A4zATA_oVPyf99+~CWXDlfC2?aB*81JC8iv&@&1zR> zH7D+ur6uB?uTZcp*^%65808WwRjemUA_Q8A0>E#-Z)OL<87po3+#4#IOn5f5q#(if z{frCVF(Ktf*#a@?G#5hN<{EqTdjItA;FI`=umApC|HYR){y=PT{o9TIwMl;tNEY9? zyq7Vywzjr*cfZ5`Zf$M3|NZ{^-9PxuZ&3f-n?hE+`Y+#zja59P0tjfhrOlbevMG=k1QNiMTJjpYjRV6wy zFaI$aWkWt<1G2*mULL$UJUSTsZLs`D(SiR4*v>LrWB=r$K<*{fCQj4*8XO_YoLzHv z8C`J}F;X=l^JIc`#o$AnWb8JIW9a4jl4nK>az>#RARk0<`5NM>8>M(L+h8zq9A!_y zEXCsw2n>7+x)#<+I2;n^JdUQABQvVN+b&|0yy6*Dk4|p|Tm;d^GGIbZ_r>wi%fZ3P z3B+7n$vb6teY>l^07;8&tDmp-U!NYZt>tC?xwr%a-~&MTwBjgC<5l?jGKnFjUikA# zo(|Hatc<~JAaDZ&d53r=|6puZQ06P|+> zUC|^saU6PQyo^LfCkzIzE%#EXjptvuAzawdK+b|-(22)Bh>jF2;;%X&lcBCH#h_Gf zNoT58IO7hr2DQLo4W_^(MvsjS2oh;P-C#HjeAXtGdZdj~4Mxnvvewt|uR1*AjyYia zm_ictqBwLspIxQGpBho4p25)b9lvYq?%88yo9GEko%Nh5Gz~5_K7AULE!XZMBMFmY zR%!y;jQx`^d5ED{Y)QBH`qJ`Y)Ok_lUD~?NcQ4)08TULZW-#bFBOA}NJM=d2r~A${ zIGHh=h>o2d)>vmPcZgO4?G7;#btd!0FEbV&dw?YkXqq-y2Mz{q2h?+)ZImE$7D7~q zl|l$UAt`zE>oSh5i;ea3rvSj--I8qmHe2$uKFBKg^~iMwo?|Tv@-nIb`Dek{@1-GQ zp-5fN!w*^#1?4Fxc4>=bFX!&n$nkrY4?DN2?3GoUBd=G*c`}YJbhyYJIiV8=^aIQC zVS!*K-maa&Y249QV27~>wZN_PD2B6-<658PhQ9sDb%pxua5 zE0Tr65w)k%8ibJps zRfvn3T6Fq*<@8)SC7B>eSw{;x3aK{PR6IMy|-Q z+r99EL2!OuCA+&@R-6~)(Cv}8PMk`%@q+BR&_cnLr0BU3M<^U$co7_vdf}a)}d>5u`*HZjYP+r2=5Q0WOXh7vv3m9r3)kN-o_H z#t~^Q@`)nVuEnP}#mAoC9gKS}c^O?tODJ+IUc6G0;phfJ5UFWV+;hV7M4IO(;k+P` zH1N*Mw9xZSa@Wxkm=U=KNs!llH(v65gUxW{EJ03MacZJF3Iaw-r2?)rM*UU9)mOUH{rs_-<7&P^D4l92=| z!ng%hAb^z@Na+4P_CmMQAN$=-Tq$!70rcr@vG{cC!<@J=LLy!|1Lh|w0rll%d*?WrvfbWS zDzkr#i5h`l-?b0-l2o*0fvKfRjXgOfwqVDw&#$lKg&tCe~KZ9%}jKm3b6uJOmg zb{qZ`V*_K)Y{{+?Q2~^+cRPna0n*OFUVD%J;DkkNZg`O~d=+H84D~CFSNii9%Iy4^SkqYP}yhH6Pl)SGV|&+oZc!iG*rl$D&!5$QvXm(ffq zBZx2DFe+06c2N-8{V8SLQcI#>6w8As*sfyAa1fE$?SyAe7tWg>RVarJmt(`n467S=PwTE_$6oFeU9Tvi@XbJi;2TwDOF2K~kuwGOrxk{VpZH{I}$lrzEl@V%liS%bz&d$IraR zU}_&E3*&nPH7&IyW?Fl11M$uR=yX(uWYswfg_bS{!9iZcL~ZhXJ<$uAB?rf(;E9jT#73IR z?YT))@C0e44_P}Y6+sy;Z$;4DBzHv=($g!Vk)B!+-kC~8Q2xwY5j>_$tw^FK3hn7N z(P&Ta5pWy9d8y^-i)7l+9-?1(0SdM(hXfP@!3hV_h{< z(=iVa`J0XvGFyFEDR-*Nj7=viG)r-GgODST8NcWL8X3}(cS@xTUrf` zI?T`TB#l%)0!f)rumEhLW{~zKTX1+ILatD$WeG9TXfCG&BdMl{DS3;K(zEPq@wA9c zy_@VTiK6JtOf=OkkAzTjnZ&H5pft*~j=4vJunA3$2pg?gD6ALhlqg`$*wt83EjC?5 zvVy@YgDO+4^cM6aiuMlc$0R@0xG!0qB(?SA7_cMbTEJB~Ejh*UbbwM9X_j0C9n%;M z#kxp{g2O?inIOrQNgxzjn&y}-mh>+@D&dVov~7_vR!y2WEmWSYSQbtjQ?ztVM?JM{ z-MGqH{IaEZrg*`%nEh57o~vcd9DygAJa!c{37fuz;AvD850(B2M)bJ0b2bRNpJGeT-MXr(55gmcFgq+hV%NwpkQ1Wr-5wgz-GU6208fAjW2WZBX(+q7M>2;zmo8+ z#|a_6FsZC4ErUC)Mz&ZqNtF5pWz`dvrju8lHwu1B9{A=K4y0vn@{5?5cdSjV<7?_i zTetJImnLVfSu1)#on2twc4gMYIY*SB2Buw4hz zRsLC1L#}Z+JLpk-DktWrT`RO<`G^bbM2+#ZQxcTM)1~85H7EZQep+fH^CmYLcK3^a z@-;Sh-YAwju%*z=b6`UuO?0w5Dsg^extOHhOj@WsX;z82Ne5Dz{<>BnFX41gR1r>h zrc@I6gq{Z53VVHMV?KF8Hpr7@u|r>4AntG!Uz3F;qClWSKHk}~q0G*HUVg4NV?`^Z z$whTI78g(oMB*|YUUJ+&IIa?CAsQD6&b0cZ3e^Kq9?pP8(NS|da+_f;YC{qVxBRQI>)tNGy z^PK2qaSMxmwQe1_{QB-J>z0_jDvuT`LT+G}erRpsT3qN=uMiX4#WHsg+0 zg{-GyXAeKt5HmAABfr`O-p!v6Pc(zQFJV6oYogi?K1h9NQF-ffm&#D9#|NnlE$T}< zMy>|x1TC}-1LsV8BXiDLjG^f&n+3{kq%$FPGv_Qw!-_f&Y<`AqHrG~o*0h2u)yczI zlzoKIzf#ao3a>FM(Io(1+C`s~YBYW>zaK=SZCbg*>uc zLC#Ct#Mg%VLsvzc7I&*n>R5W;zY}%KP{|}O>pojSHZ7he zoWbdke#DfNU09kbRZU1jV&P{PI;KT-5{Z_AQlufCkt_j>6z(PvsVd_XNhtN3Wi0cv zi#1t=%Y{3;d?B06ESyX$9i@`g!u7Ah%pyic;c}f%EnFV~P`bRY^u_%yNu@Jzuab(5 znS2t;H2&^c4!HxPIfn7qkTPcHG{>m3tv=e&dmvWx4A7)4LZM|`C7ognq&l-pFGsU& z!0)3$8Sj;*PkzNCQu3%!Gib08PoBBj$fHlCoTq@g4F)eW?Sq`%f{JG->!&`0aH^D( zUPL3U{ib{w(;5xkU0DQ&gz*V$qr06J>yE8bto4-3S^PnD5>LJ3RTqIzZ@MTJS=_Wp zE!hH~5)oEFHe0Y1LomY%4DZN%eH$>F0oa3Be<49MMZ&W~`?(>X9e8kOOvAP*m#+~jF1X*LGZf1AE#qBEic4&9~<$IZR=(VZIgr1{mj zDNA<1yn?nAy+D$mz2ygG@7G!RJN(+6In&5J{OX;FlF(f{^YE*8rpDgPoq7DVJ9DOW z;`pm~CYlo7wKI>udS`0v&D@#7Ey#=?Bl^4jQ@%pz6)+rjUwsjni8FS?>g#cqxggBM zDw0s$FnyiRI_oPORbPFM-=(j<9%q^JeI{0Sbs21T1|ey;vD?huSw=Z;XDa7y{&L>l zy*_Vesn6TH*XQjl^)cJ6F;lxW@|V-Rd;c_Z*9Z3DxN&2?iDVgk(5m}3>N3ZK*%v@e zF+o|T{w{308oc$7_6c07l3+*QPU_a->;+4 zs^~k=EgRcEvrDRYm!58;O(le?2*DfocKrt@A}`WGioAtKZ`f)_LPhCl!R8gl@Q5PA zgR*K{J;`KXSW9851>Ii?G2_{C5-I*tgbVjHZxfelr8H+X!qJ2RqQfZXSSq3gLL3BhL#Gm zM70Vn>5q-OV4S63J*vQyW;M0&iKU?DwdeO#>PkkH%?`slbJug(ZLJS!Jrshivand0 zq-7=VT8ddY7(T{e!{MWP(YwPKO2lc%7)XgxjXo+A$9-hv#22#^ZwdL3TDs{FOKOzW z)H|t^6#}q6C_#(GLZgR!2bW&_M@@c4ixMrA!`XpSowDTmR zgc;|2qOeu_r_%J>Mmxety;D~hG|=CgmZS(41`~ETlO$hwxu;Nq;eo&>@Jx%N9-k+r zUor}rbumtsm)bR^`#fwyn@>G1)aAmMawj=SWJVGeK15eZAFg>PQCcZ_o0>6_j6O_f z)v|2i(;`Odo#uc}1EzqMqMAo(g;}8ta>CAldC zE0qK`m6D*elva`rMkmFaiTM}S{f6srxu$O-=2>#F(8|JaWiwGv1~|(sf~`jKSI&ag zW-0@i%1?QE6@_;K_cz`U&FHSd<{TN>((&iW)rzWx@h!l3f`5f1}*)ua(e@ zIoJl-OD_ZLm2RHv zMXQb#3=GIZ@lQ!}2QEbBva~7^N`o~hvmDl!bo!WeuO*sK_WVTsX=_O~UQi^XaaQtn zTgDKy&8$L8vukWU&v@k;a7DMBT<8)&&}psb7NvNh$Q_|6z|@PIqEd&p)l$S-kU4~` zj)Lxo4rN($s+Z+X?+f^~xLco{S>5ncJ}ra%#557DJ~trNi#YYE-QfSR8RtZ?8+y?v zOkCj8kec|5r(hN~`_kw2?y&B0=JGFk3tzHg@wG9R3yb?)Dvd=srLDfKn6#Qqw9%h) zCA{NkU?UKZ`E@Q@v;}5sZ`*AwK4i=?T6Y{wwlbuxg1&eN^M#4czbfU3ed^@cR*;m& zu@Y7Cr_qOXBbl4Vt(B4mQlrZ2uSDTV7pbi6XcSvWEHeqt5-XZEW3=v8Bn_`8#f-Gh zS4rtBZA&4;1P3xPNhd&Z6~xK$f|Qv!xx-u}=4zYHgG9>Rg|_J|g?~I?kztDR&M`af zH0;TpI8AQ_+^`V5quQcD>}IL{gvGi;92U$mio=2HGn@*kk;W<6AkRP6pRZfVlJ7_( zwPj(Q;q8jCp1w*+LJ3;ns!>^1?v}XY2%4y4<{mnf3fm~*&`@B^%aR`J{)&Az-7xe6 zvO((X{fcamC=TObJP_*^4H%@|i9oapeTPSUiywP^a+cA zOpQQz=AjdkGj|YtCJMk(v8cscQ|4ETM`DAG9rbV)G4Eg5>%9y9U#Lek1V?X=iNI@9 z{GZ$*pjRrztTjZbqxQ6Tv_GX6Sn%l1UEBt1VdxsOgrQq6TFPZSCPNW^x$0qZKT3== z?1^!vw6q|Cazmu>K@fZ*1MicIUFuKpP9>+shArMPjQ9(;Lrm9AbBYXa zD#a;I)bl`TMQS;%T#nk~sa)u;+|%K7KY!_Ph9CHJz$u>K)#8+#mWZhdqCJPoA=qo6 z8bK{bjc%NyHKuf)3T7`9L+)j^#Uv4NStN)pO|GV-MX5|AVwurEBx$7R1lP#XH9Y5f zm8gec1g}bnQc#lMz+l^)y>6iSza1HF!e=APYt{*5agRDDg$}Dl8krnbLHlQWRbY9_ zMn(tOc4Y7|Ew5!T57xH!qJFBg%TeRu82AtXXNos!9y%pic-M*ZjURJ!p3~hd8szK2 z%J~yt1syoR(a0agl*lQUC5`EsL`VW|=`}1rs@(d_!>@e&(W- zmcXd5YD+-EAJ__-W8XX#Fun>c874ZL(=+$n^S`7CWkcx?^?5#1>DUW*V8Il+Bnvz# zzg(8L;s5dNKHUqq`-$!qYRilNTw*bkqORjF4(_Rpdc9s>TU)_@>-D8q|ESl)Ac(WzrsbQJ`$nGP(gG=x1+qDg zFM^P?$WiQ$E?l1+4V}Tjy{?j%5lvZ)Xv*T}ApG>N^P%Gn7Q4alRT1U}kU1HFuaRDh zY&(};k8C-kf#X-n%bwHyR~&*Om%~GWh0R{i?GYsa1KVbkf#aW#opYCeX2#}BR~IE0Yf@w|cZiILd z>4&aMqM#ptc0zZZTnA&^kcMv0iinsBtE?@7N1hliui%&kH*luWA^X$ z_2LA<@aH;_P0m4S6V3VNmd}m8C?Xkq3UOBe-lXi`MQjt&Gl6h=5yn@D$SIz0w};JP2QiS8>+ zMbiKgb!Y!=`*7zNusr|54ZT=H;MoWZccLf7$m?lbAMI>oE_LOBm*lm4NEZM{3?fQ^ z90?eyE1KwT`%Dx8SXsX<8v3D$;Y(7*)j237+?k*VAi1p(%-oFNZgc7U!UGKb>=iMbPJNZkvt|4bk;f8cx$>8whBn+aA8 zU`oLB<~>neiZc?Df&opJ3PpK2Q3Ho-D~AL^BpES#q6X-e2m*jEl3d3*5mBhMC6Z+$ zEOkIJq2Zmi0fsrU+Ptp%`Xt&`3wS)yVj`;uDj3Hz7ilx7v5uZxsi~*AB6X>u07E(g zD9)rOimz$q?m0(MT=CM`M{yW<5?%q7uEHmZCvh8&^r0*e(aHBjdH_#DLm%FBL~!ri z6Y08p+S;W=`QVkKE{<6ZnYDO9uO5OJbrfi#qDfpGSm&DK3)U0pI;hc&99{Nh0^b0p zbB}teniQ$vV(U-}LYEloJ!(>gmR5di^{URtNv;wrpW2v4NY>^e3_khi{d9GMPi5<>z@Xax|B{1DR0 zevw~^)+aJeL;RrUW}(x2ug0LmG-T5Ye`jnm=Q_kPyjdPL2e_7DO~L)uD397AESq8} zEhrqoq@by-$bGIb9#s!6R%{glhnw)4LMiAzSQHX+7^)C-py9>XE06_oyveJoYNN_q zvIkJ900*xo!~AdcmY^%b*#4(>jJRe>R4|nmN0$9 zm4aD4>PrPnq~O9h5#WVMqlO?-5kuM@l1WioEGFdwAq4f@zB3-g)TtXxnKzp!yT|CV zR9ml=bPW$S5DFe_8f~K>)XwC?xYi@VR#3onJs_ z9{f^!yYu5)tw#@j=|CFoJPOBPln&$oV5W(53I+|#Js+G6#%D15c34Ieu-aMw|eJmmH$I?gtbm3!3UH*PjfIj@Ev{XW%?>?54b&8p+ zBh(GmSKgLyP&0Wu`Ox`TJFP5~KYUy~{lQ4BEGVnAFk+;1P|bP!-K2hXL-m=r-&t1{ zY7I?sDDef(1AkAhXTlI&E$gOHUA`@UTvT5xH_NxBrIJi)-YP8f`^9;vXbgxe&J>eX z@TOi}xh=Iy=6jhZOg^+0Pb&*Lp|!gc(rUJ>*K93Ov+v3u7nKeK0+k=MY9$R)5uYPT zDtkRm<~AU=VhAZ>q&)_W=m&Djx%)s)VTjTpT)0U;7GMhIH7gZ4 zOSm>xGovq%#JPZei{QI8ZdBi><4p}!Sximq1?fz^a2y2W%sZEA;ajHXeN5|^_Q@qT zU?VPzAdXhht%h+!j9&TnWCz1w#UTzVKo<8aZ8;f|WKlU@l&(X*bm)qaPE8mg#-2r zCv>{88$!1(Es)Ji#~XlJlb!mVd2p1zytq~+4xDX8q&FT7JkT!@dXzbIqX>@U@$3%| zCEvft95zZ=ld!~fcEGCT?d+p=2XuCa>NS+YEu0c%9g`OE=*XYxD72swiGxqBzg{fh z8=S&?f4W{Q7SN(R8ig23UzPaT5_Y3P>ulTyLW~jhaIk&~r#O8^Hi~<07y_}V^>i?9m8#He3Vc;x z9H0=^{0S1}vH!^rKKl%#(rV#MPr%`UDS7@hdQO~}P>%5}@ab{^jC}N;M)ZHm(l9#5 ze-Rvi8E06S#!tfPr&Vz()_|5_V}_pQ52JH2NQwpHJQI(j*s!WK;KVoUARSJVp@r$G zJhUuB)sL9(Fvk9T{r1b|;r`D4k9X}kcB|qJUB^0#wQL>xB;TnzbdTlGyTFfWwFUzW zF~^jgN)0wBMYVN5SfRuXM%H`uilYhxXS^DjBnXn(AkRzBp}+G0vobA>GR1ZPT1Ph4 zda+#W`xO1#eMg$`b&o!IBjOPHVR!r< zamerEAjXe8%(BALLa_k$COQpxj|?Fv4oG7Wfj1+lw2|%f!9oFSQ#`Pn(CH!GQgUSR z2D|;14L0xjG3`HpAG>3Bv3sv&WZQq%SC^MpO#9E(#_HPK{__DI6bbKa`JJ<1VM-`Td|$Vaww0u)f2FN)Z>}6)DzUUARt< zY>?k;uVTj=kPVT?Kz|o938xMB7R!RMDobbH89Fg>70%H`<0uY0;Pl}$ym4vu(eDaB zAo&yv3_{jYVrNztz(jQgkwm4nLTazLJBbYf-y)Ih!|i|B3fO|Yl^99<#MqinR8f_w zS+<}ofeKbkQ}mEc4`yTYhR@ybCS``WuF=S7c(Zxwd*}{>OILP7N}E%fi5{|cLROWN zP^_n9ZL|h~U$n;SsRWaA9SCZj0|I&Ix@GKPWi@a!S_XAVJ!P_={UAd zpnBf=hAu1weWl7(a*4Gm&?~z!+MF`7Se)4ix3-<3s5e_4I)TqD(q%hHe;|2UM1jVn z^1}I-G+>nsoG9i4CaWgP?sbE|L-B5```c3>x8z=o)>{~$n(z!*Px5}1d1%U?H=?Ihph>C zm(2;!yf}obdU&9Y*O`XSH92#M)9t!Z`C+(AV=WRz^ z36d$|QW^aU7+;BXnV*o}Ik5azWJ2FqL|P#*S~ecAtlcUE(#gY?mDoOAT*x)kVYQaT z0bL`mCi6-{e)@KMJ#~|t*lB67>aNTNnP(f33Z}}`mGxAiSI;u!N08rf922rR8V%qM zC#Wx?k=q4-3_SvO4^gqv2R)_hbT4?X5)ba)p`!u`PS;dYgw!1$TnwQ_IpD(mcF4Tmhx$*qVfZl&vq^0&rpPj|Q9P|Uf_Fp#) z2;6BKM^zx~%M!_FZ!jQT*P$L4yx0w$m~t5gEhvKw*XMUMo>Ef z>vZN4I`n#^9|l7NpvxIl8{WMv2^dem*b&ZLc>3Et zru-MXQM`1|Wq>^N;>Bv3{D;2{`EO-yrT&lAd*;LX{LSS*YyU5vdojIMdoN{7k^jNn zN5cQdT61+S|3ARf^P*wUEB3r-6b$Bz{@?Dg&i_5j_I zpZWaF=l|p4W5TKO8S6)=5#;7zGZitl8#&_>|S87r{ZIB z0Gs>IUgTCmwtrII-Fbb~es{3DSs~6Kbe-Nc2->a_Mr`LrdhQ5x4u02j>Bc5>i;tmT zKOnwK1#+ejaLA=I7}IL+ZUgC#pkMU*?(d|mmRPL_7hondX>E|&pe1WsWD>PA7_@jR zvZa=-wLEz-(5h7|JSlH&RmhX_*1LDuBKTYUV$D<`wSYYN7kTm@Ow+lkU>U=p*J5RU zoiboU?YD}BS~w)NzFteRuo#f}=j6}-Sl53xYVOMlD0}^1TdS`m^uKG(7tQ(l{{W9r z|3)qHCUpEyWY4*FL-KM6|MXR-YN+t|w-XM?p3~j)z||Rf`Dy5Mhxps#<1Oh?t=g>D zSKv>EXSKhAqckX<&mz_s$8HphS~0BPIojeUsXu?s>0pj*#XX=HcQ9J#$8@ES@c8eAGKEN26u1Bt>)IuP}? za8y`L1=((I?QR0dS}F*?rpS1DA$$u81AFPNZCyGZRP4a%@927X77RKA=gb{MAN~n8 zL3yzO~$_R3#Gp@V2$LP4gP$ulOKpap8+GCAiWMGxU`=pC%c_!km6SgENAAGw#>C-pt0;Q><TAL5~SqNH`H zR*Qfm%v*Tx{zvKnZA!``tF#{)T2g3 zXFn%uOcDROUrvcPP+9h^^PtwunO9C6Nk6&Qe)U%gU#h^1>F#aKn*A0%oPzbH(EG=A=Z)GCsJi2KW}uN zc4w~L?3cI8$~@{0Y>y2-1-fu|!@_mNQ4TXWy4*@$F=197s#o8OKK?qAYX!<}IAE&$ zO;`t?=#d(oXAeIhCh=VjYuPOz7i8Ivmfs-1OLV+|vIP3D^!eeffRbV}5k*|~_B;a3 z$1HA666q1fn%XZktU+kflP(;Y2bjv`4;dvPg*mOF39w-D2EqJR)Kmwkl(DwG)QX_|vm zxX|$CjSH(J9Q0UrE)&Pn=l%s7aHkbE|;Q6#TaZyk!3;OkYYdO^8kguQ>dgZ3azdSNTTL>hrL^*mI2i|{s7UG zsEMCzegjkLA!pXT+35TYgc!3jg%UGnrF_kKiShK|hc1i+adE!PM`q_c+Bk)FCf-%d zk0B+q^CxJkhNY|}HCQocHz3)8DjcxE%-2+o+}N#lX}})5hz+&V(ytzN*-G3O!Z#Yr zAIiJoBp7IR{d*%(mNl`|Zo#)99HPS+Ax&d+GsqOu6>goEMl<`VK@-3v#*E4V_+^Na zi)@O-K3H-<_C*t?=;bD>k-*LKS1&_H9X93P+bfpz-V$2a=~$=0COX7lAQ5KOG#D`x zivqnp%Kaa|PcLRG*z=oe#K4fJ1eRY5wN_J*=veVP@K`nzHD0gW4(2$)5-%Ip?D*7c zE7Rr8CeE9kYq9Y11%EFfnQ3aa|?jd1Ja((0l0AtXehK%;0$+`nr*N_q3i zV%By8TLrKQ!X47IWV-DVuNH+81)(cp?<=ASPk#^rFAPbE{FZehEXI$jS6`zl599we8MIdPLYc6low z>P@Z~SSKp$>rJ=(rFEqPMaN}@g_6dc%)7;@2gMXwB%0zsrw3bMD7%WP(2D*T@++tl zF+vw4^l;Hsw-7el>#^BPYyUY);m#s`JkHL*b6CxmiD`4ssZErj1u|_o|D^-o7Txc_dz8eVR>lZqA%oxBh zZjv`x=561XvkAru?AqQjJBkiSTEGn%OIkDdl`agEFjO(B9{dt!r?Ep7rZvE{V;jZv z!g??1+97Sx0&UD`eUm)+44r>KilOh_%aZqF;aBcc`SE~E5>{AkIXux>salTLYBueR zrkcXK(-Xu@E4VS7$kcf&cOq`Sj8wI22^A%$r*S%$;c17#$4DOwOC+=5vEI4s^W-Rx zMX_CvLZL83NOr6`LnW2cmO(S3i?7K=tw7%h@<{sLm!s z-mbN65zUn6;Uy9`81*Fj;3QGu+m^IurtnE+nbp7|uDCmA5LCy4qDh7Bo~4l0wON=S z_6N(i$|8-5i??+-E7jBAvW_dPLikqKyZ7f2lf=E4h?xw7ziTZY#MhS@cPq`Mhdx@p zAuYxUyt(f(c9u#|a_BhufkJ-j*-a1{y+w^k9;;*D`M}*nq^&p#7203~Mp;>9+fl~Y z%9c5-3?mb`po*FX$T?+4?66GXXpqBc-6*|tno}|+3fqq&%!^E{CK1?J?o!nV>?Xjysu=p3c>IAS%{unocui_#6?EC*j6XV~&%Rdb(s4 zB~7+IJ6Zw{!|>&-dB{oBI1JbcFea1|#Fg^%E@KVgd32K76qde?!x4~~MaJ|F zs>vfkHDukBX3n&X9bT4JB1&SoYspwyz>;e#lfYlo3@8zJW*-_t=`!HM9PrVoG-YdU z%oO3G@5!ITQHyfWVO04&cm2S+FZ&bU@W5>GWNfBPA?EE3X#GrIb)2o9LlXH>m2j z%&bTWN~7T|WuBR@7R_*3SU(!#yU5>h*Fa`X>8^C}6)w?9oVo4Ib(X`l{F`EC@M*?R z|Kwe{!sZ7xqG}exlvVHdw>emlYmj_?2J92RiViGHNCXD-6Mq=R`~7R}&Khuiq6XVn z)x-vl@|gh>1GiU3_*RN8< zi}GXXs4{5Pll$2c&q*PdCTWx1xzA$+fmAKj7_c*!a)C!!BvJR=sUO}|_O3)5j4vBV zCNb8CG^%F0KJ4nj_OboGw8}Y3v&3397WC$dPY6Q(lH=7D(o1D3wf~VJ92{mUs-6lx z!H{-C!_$!VU-U@A8Qp>B77i%`Ez={;_A#t&PgFH>o>y=EEpne^$K9KRRM~YdV%c4Q z;rWM^BWmjY+3c-EKH|XQ>z2?dEvtmC)Yx-Osvv|d*I%iSpcr{R#(!WU!&@e;OIk1S zQuIo~siX&Amf^q`qxFMVK-Z*Ghvi4XRyrKQ%G)K1i|I5=5c&rM4J?dae25(k7p>q+vUezR?Z1y*%=|Zn?pRIfatB@*=Wi% z7dhS59L(Q~Gt(2Cimw`(Gg=HH%tOH+IXAZ_fA_{>Bq}JU#{w;-#Md+S8YzRXX z<;@=s(VC0f_qt86HMg0^-@7PlB~bGM8DJ_~K^?sEMQUj|1(piB@CNNbe; zz##44ha6STdHZNg$@yYncexpSI0e33#yH81$*T7R+n`j@Ri(#ulJ^9qEacl`j43lh z->}<3e@Gb|VQ&yiruCA@SsO9Vr!@4WfD^v`qj`<94_CtG8oIkSX$Q)>zv~#mePU+T zd|e>PkZ&taB?i`DCG^sxpDvXvM{l&}d*uT_SsW%O-!U66mGI^~chd@$%oxsxF%5(fWp&pMqnZQW?)fH7)%74r(8N<9B zhNCP>o%GMa3M#Tl>MO10p^+-%)pZa8;_8#WWB&~UEIoB8dzyuJe}=&7d&Qh7aKPPj zj?USxGz>{)P9VNKj)b0fW)+B~1uq5M{*miO>gbOL&M{;{c{6@jj_M>*Zw{j}6G7FU ziQ!r6%WU6y;vU$|bjIAZLUQCyIy7ZFUoyDkoJd9`_BVk40Aa{(-(v@Wn@;g*Bq@Mc z^V5TaeZ<=$fme2Nz~Xj$5G3ymyeU>Jj-+`YbfKM;^TC!bT6ppsKoF^W5zH+UpedBf z;F& z+>CnDiLw&8ynIXw|4@0>SL{!yTAGv5!Qk8TO3o=hcln>T%A%> zWL1y74#b?@#_>Ektxs-#VktJR7(xqf;Fp-w*SUvy4pD-B=3?_*aK9YG?gg}d75h1~ zs_S5z^O5K39lRNjicoM-DN{O^=>~pm+J77~fJ#N)ukUrC{dFJ_6Sfok9Gm}E1aby> z&h*7YC*F6Z*YaKx?OZ41boO|LjI{aw0IhRErAGg*U)%S49&zH;pV);>S))O@(QFK5 zIGO#6=vkci6qLT_*ZrsCoY}rD2fu}_am`_n^8qQd5n=%BAryp{TNJl&9h^bR}b`cnBvTFNuLw)%%6Jo4*wk z>>wSK%u85Na76XMf_mpxE)Lt6(kXxolt4)AIwl&vPUBBO<}5mQxxFs^SbW1-3eMDR zO_#e`vA>g|!-|Az55TuSM2bgV{QF8j<=q3o-4_8GWwP&3s=iwgW728es%gu8zIow( zn#XapDjQ~@qs?u!IqPFRe!D(~)ZmvsyiJNz@0C9T_inWe8i<-+?uHOhS4vJhxC;&+o$RtDzAi z%nr>#DRL%`tL zbFv`|+z*-U3EQOwsna5H%*A%==w6&|TRKNesW+-(efXt~ZQd=6zW27N2j`uDE@;dfQhTZ>EY%iyAB`DbjYCVuw(@5|sp zA!9}-I%C=l&NAe0Z>IvriD1f{Gi3!?9ELlOu#+^c*`AQGA43s&lFNVAl;O#xA1vS| zm6w;19IJ**4Aa^GK5G>_QgCSr@CX{-fJkBA{6EK5e`&bczN{s|1v|xPC*Z$v$lbW8(1GQ*=Z8n#aiCV52NdKEO;Y1 z<7+6HqV<3RizH*-L_Bdrekw7H(WuSSQ>h$?Y<%U>O75m2#gAvVToQpaMyVbA!BF14 zu-d5c^^qVQOUa3*Dx!Rz`KCtVJXb-X>&*$v+LD)ECgOEWjw0=*LAC0hA;2@Md+w)~yovRde=4Jiw;7iW2 zsC8{(=)Tp`|L9l(67xPfa9%htP{B%}do(PGX;>?JDzTMZla*>Wu?!)TQ7VQvLGPaY zsIfO)PF#7)wK8uyG>!kb_rgrmp#!vg#gHA%=jcyh<`Ldz2T;>>=%d*q_eB9+wwWsY z(ILgFPz1TNi8zwv@g2m{HxrnH`Yvq#h2x06isjmgavNpq4ztDt0j0TvWUdNAzHby7 zy1r0n@O^SE*R+KJx}3y)nV6&!C`br&0y>*e#Q^Krq{^!C6_*+j8&+ozJ!H3|U?#nT zSFBDi10OLJSn;bo!Sf5Od2+G)#bV+*Yi_n~&F4K$lJSgPLF$e{^P8qoX4wWDdD53jm~ zS`%g5YuVz9*h+k&6YWpaLxgT{rdY?#0$XU8;rV5p5Pk-WBTs2+8Ts^dZ+k8O;H@Xr zysC}-H*fFLI>@Dy!pj5j_Ka?Z^h=Y7xFOPLU3UBsgJy{a6kX6@LxRj&Ie(Ev6Lq=1 zn{WF3TIR5QZM65slF5KoJ5aUEX3e%_H692r@R$-Q0lV{DM0s4}`J{+)4#>6Oi@ z*z)>A=W1k>@ldE6kcQ|aELyaDcb8YKptOHf!Uml{g~d#9v_z~zq-=gsn$=7Bi?{xP zS-s6$mU*eYs>dxOI>2u7aOQ9GwdRbx~( ztL_#lhl_;fasIhTw<%FJA~c6i~|yJn_E=|HZmHo3Fw5}Y$b z@zYHQuX(WwEjZCX)?cxjY5Z#aw#*~%N_fXfdv-?rM_&)Pq%E+`VS}AxbUPn?NvpxzR^|JhAi1(zA96TS`W*j!M+#eG+i_t1X_~%mt50rsd&t|7hcpAwvk8 zl%%E9$i9J#2f zLjK=xSu**ihxA(LkR>Dwla5Ysxzti$2=XQ0QdJ(y7Is{*u%;An!08U=1LIFfEr8*=p zx~F5r(4>I!`_q z-N1*gl_694^xbPk+zL`=^UnZ_ybD=eEkfLvLYjW1j z?*}G-C#VNgdMq_3b!+q1wWv_?q>&Y3gQXz}x}dV!vBcF>ijURM$UmXPF9Ah@@e4x> zb3fd^Ui-pw6k!6{O$QAhYhxsHP+nSls$J#-gq(ZZ<+{t4&*3dZ{nmL+>GAVCt^zy# zaCT)PbYY8|vy;T;BJoi#e&8))yXB)N<$<%{oWu)81= znea4ZJz6wQW}eGq_Ye@q72#6dar(){uuv}s?CQ|s7^x|*>a)T0J$69i%|kP%n~!L*SD_KBB@GY?rAcFEFpya=5Pb6dTDhLu1Ck-qOF17 z-7`ofr!sr4*uy|u9WQn8s!cK<0XA4yfk9QX?CBm2-J8;h>?)+@Y*G@xgp%kT(<;DT|t2QGY+m;)LOxS#mgG9B<3gc z&v1+b;&$hG0fEsT(W9SSL3$!gszOYEaG9eko|DHsq z5}EbG;=UwCLh@Hyy`nd3%3Ll&Xaw;yVN#D@*--5U!rYf#lYERG$f{`f*T+x#9Bw$g ze>cEM>!&`~#^A2rl+|J8xG+a`j#o^#isi zHy&eS1do=?E1S40yS5jOwX7v&SK*7^#GiS?Si+GqJ+J@$NDi{n^FVsg8tWtJ>pNFv}s~ zI&`s==X+X}z_!}dh=6LZtR}4SFN89yD9l>wU?CSKpp3J*p7<7?`Kchp;-cY3NF9Jm z;)pze8CLaY%h?MGhdJ`}IS#Zcfj$^WP%L8wi)xRpJXvSR-_9!1~Kt8346kZbREPn=VWq)+U^Ou?lTFA;Z zWR4Xy-$HtjcVyT594J2No%=5sYK+hs01hG2WMZ;s}vN65I)4IwbWe@LG_V? zXF|JYGSY7>0#%nrm1wwpQRuj0P)H+vT%eS6_ux*g(BQgya8TOnFP_UMib!yHW>|?i zH0dx-G{giIB|Crh?}w8`1Z>Oe>Snx5hun69N5!A{!Z4P&>h0nC&|*qiR7nA(VqNHD zQhkx?^d9>bLaceV=8B~qXV^D*R<^yS(X&7C+(t7jNnIuqHbe`kqg z<*@ETq@p9>#2rEY=vduYwJv#WF1!GHz-)l~^X%oRzgTx~S+J7EJMQ@u=AM_MvPAzAu9Om_A3dISBgbvE8h^8d9ptf-pSLY z#M41k^Sf;q7gV94ujvlcp?Cg%F>$#+*`}BHG7Dk%sU1E7QfRboGxh-HA}}i`zH&}% z`+@Toovj}+i|@w$Umug7ysPgyr+ho%;oDA_`VK${W21Lqc}>-#YUG#g(z4FPrw{kQ zeJU2qzrVFLV$+E?nPquhOp7VTkH$fr4;`_e0zmnPV{*714LycC_k#qSx2s&}5=cMU zCWNOageRPXV5{ECV#wCTF;dn*QV)JsypuHPy;n?|lR@N?e1?<}^adtMs)OK{0DVUp zn}~~mAb+C2Lh3Cf4+`&XBf~^HI8%c(d8!-6JmoO9YycG9ksERy$CXE>+CTVu=ri=F z>F2`F76-oT4Divu=v~}3;xo=(ouQFEWx9f|o0WI|LUW9EklCnlIG*bpo2y(JTT0&D z!7X|}+=KWdK9VSp(e#W=`oWEiC2YPU(NoxLY7uG-BWv!+(!sk|@HO>fvFNz_H0Ji6 z{_ZIv67C7e^tL_~Ppu$u`++k4UWgLmcNPh4n2&=}hkF}++80c)! zm=0MA8^;_$TL>O2k`@~^J}sOs2cI!INc(MWSEY|xc9?g7#aqORu$8*ZNlPQ3U6oCI z2ro&G`3BLWN0deQ>$>WwCwqdp!Sm)sC=1);W7j6kpfw0)LdH^rt}LOYpaDhN(gbLZ z?89+cXwhZ+R1EaC%Mm&`Tm}iB!Kq+ciJkvs<~WOzuox}rx`1S5ac_&f-9EJ^BDj=TW2+2o3Y5lI!h6?waD6%8Y zlI$rpGV_J7u4(O?f-Hi_oJ$xMeq1eE0mg`?PS}`T^piu*97d={By7QgUC%F}h>b5Z z9>N$M@CdL$KOgo&m#Ts3jfOm?cmo7Ln(q z6?)6FR!z5(jz!GD$w~f|7xp-3a&TzvIf80(u#K;RP9tNP+N7*CKE&RzwrfFc+}En{ z?bExPWOaD?)Q3^*>3w@yv+Ba&{nNd3(Sq8`RvUzNgUZCkAWabIycdT94CTc}>0wGF zXTy^CRG_xd`|)TpgB7Drd_?23T;I~_dg9T;a|IDfl`4zF{K!}Hav{t*@+0oOTkGA& z=E6Z#xToP0IA$@w0c2I>(|us3wBot{1bPC2WZS^wRS->=w=)dg&7R|}(uf6PR0B5$ zjuA^#;xcxz?ME_n2&xWld+SuGw3WI)P5w-e)@2*qkdOJm8#>KIut zU6}|r+s>peLXN1NbJx@U4H_Y`duL~nYL;j;4*fRU*3z5RWRjK^QORKXY3EG}Xac_l zm7z$S*eI3SAcsZ9HO}gOn#&Wa$ElbIT5J^+9yNTY@}j0tvgxA_+5bi1u@0dUZoiU9G3k9n^{zhr}Dm|+JsXMaqFYus`XbqxhyS812bOU+)ZHIQTf{H+sk zTAq#ZZe?ob-j!|BTh0*M57o46Kf%5Ob?$0TouJfGhx8wG&*XsX+ zfS1vF;58i7Y{~{`Y7@}5x+?7*ICOS)_q|Ra)7%%p?l2nQ^47X2?U+J}j;C~f+wB(p zR)!V8b770O&x_tlJvjTC?{_f{%A)u}Y}yQ@%tbcTF7xTqauQ~j?e-d%i4o*g5huQU zCxq`s(d^k$#b&UpZ8c^{0J)$VPHqQt?q7_!O8!2`Q;7b0OWJ<;Ujz5;y?=#h)9*bH zo}H$5uiYvL1~fnB&-@D9Yb|FVJ|1oP7ixapOTzhtefOXY@IW62=qaridBx&mR`_UJi(r|;c?pU)EY?A^f6|85D^ZQ$gy&;952|KMlPH_qDjJZ9Z~opkZO&&s(ySOaRe zeyKJ9wRJQ#8&`lV$M4-xu3sJR-L}TZtj(5L>y2NV9ZqDdl@9Auw(Cvv)h%v28QCrm z(A;-@+w!E1D>@jRdM5}a$1Ew9<4y0nIz2%xXr9?wB6r7(>v>zLoqL&dJB8)- zN`&7BwCDy<{M>2($vJNLNR?p{IjpG*OH}U(DHrf?5miB8JX>M3IqO2#ZPX}p0-BqBbSEKno zkfj;u6MC$3)NTG@gH?}Xa*6@&p$;@N8!QRwKcS~6oTc;)CQUnyl4Uhx_bU)Gld5| z)m*P>4qskIkxd%x?rh%94ka8K)b2Rb{ZLq2Sy{pVrZjtevAfyNx6q(R1d*{yj5Z&P z!s~6KBz+sy%|aG_$zXzRXmA+QT-}Kh<<24&whFUzVtr(_O4JV>-Z=|Hkh~q~%|&n< znNEskUYd=H9OxVgLi@BAF_K&*N*y$3{Xt0MTLC)>>3Q7KmY2uRGI0yhVwXE^EENJ$ zVTXAMA{an?u`6QK~KIm%{9Y@7v2#9Po>@8AFeC3*ivp-fnj|xg}!mZOo zlx@hZC;!!H6r`Id4J@=7wPy1WnotVuZ>d1n%m6+?(|PYrzb0~C|M(nDf294th6CL+ P5UlN21UHBoB*=dNM(Qt; literal 0 HcmV?d00001 diff --git a/checkpolicy.spec b/checkpolicy.spec index b12a16d..88202dc 100644 --- a/checkpolicy.spec +++ b/checkpolicy.spec @@ -1,30 +1,15 @@ Name: checkpolicy -Version: 3.5 -Release: 3 +Version: 3.9 +Release: 1 Summary: SELinux policy compiler -License: GPLv2 +License: GPL-2.0-or-later AND LGPL-2.1-or-later URL: https://github.com/SELinuxProject/selinux Source0: https://github.com/SELinuxProject/selinux/releases/download/%{version}/checkpolicy-%{version}.tar.gz -Patch0: backport-checkpolicy-cleanup-resources-on-parse-error.patch -Patch1: backport-checkpolicy-cleanup-identifiers-on-error.patch -Patch2: backport-checkpolicy-free-ebitmap-on-error.patch -Patch3: backport-checkpolicy-check-allocation-and-free-memory-on-erro.patch -Patch4: backport-checkpolicy-clean-expression-on-error.patch -Patch5: backport-checkpolicy-free-temporary-bounds-type.patch -Patch6: backport-checkpolicy-return-YYerror-on-invalid-character.patch -Patch7: backport-checkpolicy-use-YYerror-only-when-available.patch -Patch8: backport-checkpolicy-handle-unprintable-token.patch -Patch9: backport-checkpolicy-free-identifiers-on-invalid-typebounds.patch -Patch10: backport-checkpolicy-include-ctype.h-for-isprint-3.patch -Patch11: backport-checkpolicy-free-complete-role_allow_rule-on-error.patch -Patch12: backport-checkpolicy-Check-the-right-bits-of-an-ibpkeycon-rul.patch -Patch13: backport-checkpolicy-Fix-MLS-users-in-optional-blocks.patch -Patch14: backport-checkpolicy-avoid-leak-of-identifier-on-required-att.patch -Patch15: backport-checkpolicy-avoid-memory-leaks-on-redeclarations.patch -Patch16: backport-checkpolicy-check-identifier-before-copying.patch - -BuildRequires: gcc byacc bison flex flex-static libsepol-static >= %{version} libselinux-devel >= %{version} +BuildRequires: gcc +BuildRequires: byacc +BuildRequires: bison flex flex-static +BuildRequires: libsepol-static >= %{version} Conflicts: selinux-policy-base < 3.13.1-138 @@ -43,35 +28,25 @@ Security.) %autosetup -n %{name}-%{version} -p1 %build -make clean -make LIBDIR="%{_libdir}" CFLAGS="%{optflags}" LDFLAGS="$RPM_LD_FLAGS" -make -C test LIBDIR="%{_libdir}" CFLAGS="%{optflags}" LDFLAGS="$RPM_LD_FLAGS" +make LIBDIR="%{_libdir}" CFLAGS="%{build_cflags}" LDFLAGS="%{build_ldflags}" %install -rm -rf %{buildroot} mkdir -p %{buildroot}%{_bindir} %make_install LIBDIR="%{_libdir}" install test/dismod %{buildroot}%{_bindir}/sedismod install test/dispol %{buildroot}%{_bindir}/sedispol -%pre - -%preun - -%post - -%postun - %files -%defattr(-,root,root) %license LICENSE %{_bindir}/* %files help -%defattr(-,root,root) -%{_mandir}/*/* +%{_mandir}/man?/* %changelog +* Mon Oct 20 2025 Funda Wang - 3.9-1 +- update to 3.9 + * Thu Aug 28 2025 xieyanlong -3.5-3 - Fix character escape in changelog diff --git a/checkpolicy.yaml b/checkpolicy.yaml index dd527ab..36a92c2 100644 --- a/checkpolicy.yaml +++ b/checkpolicy.yaml @@ -1,4 +1,4 @@ version_control: github src_repo: SELinuxProject/selinux tag_prefix: -seperator: +separator: . -- Gitee