From 1b3f47d04cd48eea3de2d859da8541896519dfa4 Mon Sep 17 00:00:00 2001 From: Olivier Dugeon Date: Fri, 26 Jul 2019 16:07:39 +0200 Subject: [PATCH] isisd: Update TLVs processing for TE, RI & SR In preparation to Segment Routing: - Update the management of Traffic Engineering subTLVs to the new tlvs parser - Add Router Capability TLV 242 as per RFC 4971 & 7981 - Add Segment Routing subTLVs as per draft-isis-segment-routing-extension-25 Modified files: - isis_tlvs.h: add new structure to manage TE subTLVs, TLV 242 & SR subTLVs - isis_tlvs.c: add new functions (pack, copy, free, unpack & print) to process TE subTLVs, Router Capability TLV and SR subTLVs - isis_circuit.[c,h] & isis_lsp.[c,h]: update to new subTLVs & TLV processing - isis_te.[c,h]: remove all old TE structures and managment functions, and add hook call to set local and remote IP addresses as wellas update TE parameters - isis_zebra.[c,h]: add hook call when new interface is up - isis_mt.[c,h], isis_pdu.c & isis_northbound.c: adjust to new TE subTLVs - tests/isisd/test_fuzz_isis_tlv_tests.h.gz: adapte fuuz tests to new parser Signed-off-by: Olivier Dugeon --- isisd/isis_circuit.c | 11 +- isisd/isis_circuit.h | 2 +- isisd/isis_lsp.c | 83 +- isisd/isis_mt.c | 17 +- isisd/isis_mt.h | 6 +- isisd/isis_northbound.c | 22 +- isisd/isis_pdu.c | 7 - isisd/isis_te.c | 1262 +++++---------------- isisd/isis_te.h | 228 +--- isisd/isis_tlvs.c | 1092 +++++++++++++++++- isisd/isis_tlvs.h | 272 ++++- isisd/isis_zebra.c | 4 + isisd/isis_zebra.h | 2 + lib/mpls.h | 1 + tests/isisd/test_fuzz_isis_tlv_tests.h.gz | Bin 221946 -> 206007 bytes 15 files changed, 1646 insertions(+), 1363 deletions(-) diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c index 8d008d78bd..5da8e6ee9e 100644 --- a/isisd/isis_circuit.c +++ b/isisd/isis_circuit.c @@ -135,8 +135,6 @@ struct isis_circuit *isis_circuit_new(void) } #endif /* ifndef FABRICD */ - circuit->mtc = mpls_te_circuit_new(); - circuit_mt_init(circuit); QOBJ_REG(circuit, isis_circuit); @@ -266,8 +264,11 @@ void isis_circuit_add_addr(struct isis_circuit *circuit, ipv4->prefix = connected->address->u.prefix4; listnode_add(circuit->ip_addrs, ipv4); - /* Update MPLS TE Local IP address parameter */ - set_circuitparams_local_ipaddr(circuit->mtc, ipv4->prefix); + /* Update Local IP address parameter if MPLS TE is enable */ + if (circuit->ext && IS_MPLS_TE(circuit->ext)) { + circuit->ext->local_addr.s_addr = ipv4->prefix.s_addr; + SET_SUBTLV(circuit->ext, EXT_LOCAL_ADDR); + } if (circuit->area) lsp_regenerate_schedule(circuit->area, circuit->is_type, @@ -478,6 +479,7 @@ void isis_circuit_if_add(struct isis_circuit *circuit, struct interface *ifp) for (ALL_LIST_ELEMENTS(ifp->connected, node, nnode, conn)) isis_circuit_add_addr(circuit, conn); + } void isis_circuit_if_del(struct isis_circuit *circuit, struct interface *ifp) @@ -521,7 +523,6 @@ void isis_circuit_if_bind(struct isis_circuit *circuit, struct interface *ifp) assert(ifp->info == circuit); else ifp->info = circuit; - isis_link_params_update(circuit, ifp); } void isis_circuit_if_unbind(struct isis_circuit *circuit, struct interface *ifp) diff --git a/isisd/isis_circuit.h b/isisd/isis_circuit.h index 2371c0b73a..e3541644aa 100644 --- a/isisd/isis_circuit.h +++ b/isisd/isis_circuit.h @@ -121,7 +121,7 @@ struct isis_circuit { uint16_t psnp_interval[2]; /* psnp-interval in seconds */ uint8_t metric[2]; uint32_t te_metric[2]; - struct mpls_te_circuit *mtc; /* MPLS-TE parameters */ + struct isis_ext_subtlvs *ext; /* Extended parameters (TE + Adj SID */ int ip_router; /* Route IP ? */ int is_passive; /* Is Passive ? */ struct list *mt_settings; /* IS-IS MT Settings */ diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c index 4b29e6dc7e..061e758831 100644 --- a/isisd/isis_lsp.c +++ b/isisd/isis_lsp.c @@ -52,9 +52,9 @@ #include "isisd/isis_csm.h" #include "isisd/isis_adjacency.h" #include "isisd/isis_spf.h" -#include "isisd/isis_te.h" #include "isisd/isis_mt.h" #include "isisd/isis_tlvs.h" +#include "isisd/isis_te.h" #include "isisd/fabricd.h" #include "isisd/isis_tx_queue.h" @@ -781,8 +781,8 @@ static void lsp_build_ext_reach_ipv6(struct isis_lsp *lsp, if (!rn->info) continue; struct isis_ext_info *info = rn->info; - struct prefix_ipv6 *p, *src_p; + srcdest_rnode_prefixes(rn, (const struct prefix **)&p, (const struct prefix **)&src_p); @@ -863,6 +863,7 @@ static void lsp_build(struct isis_lsp *lsp, struct isis_area *area) /* Protocols Supported */ if (area->ip_circuits > 0 || area->ipv6_circuits > 0) { struct nlpids nlpids = {.count = 0}; + if (area->ip_circuits > 0) { lsp_debug( "ISIS (%s): Found IPv4 circuit, adding IPv4 to NLPIDs", @@ -908,10 +909,12 @@ static void lsp_build(struct isis_lsp *lsp, struct isis_area *area) area->area_tag); } - /* IPv4 address and TE router ID TLVs. In case of the first one we don't - * follow "C" vendor, but "J" vendor behavior - one IPv4 address is put - * into - * LSP and this address is same as router id. */ + /* IPv4 address and TE router ID TLVs. + * In case of the first one we don't follow "C" vendor, + * but "J" vendor behavior - one IPv4 address is put + * into LSP. TE router ID will be the same if MPLS-TE + * is not activate or MPLS-TE router-id not specified + */ if (isis->router_id != 0) { struct in_addr id = {.s_addr = isis->router_id}; inet_ntop(AF_INET, &id, buf, sizeof(buf)); @@ -919,11 +922,14 @@ static void lsp_build(struct isis_lsp *lsp, struct isis_area *area) area->area_tag, buf); isis_tlvs_add_ipv4_address(lsp->tlvs, &id); - /* Exactly same data is put into TE router ID TLV, but only if - * new style - * TLV's are in use. */ + /* If new style TLV's are in use, add TE router ID TLV + * Check if MPLS-TE is activate and mpls-te router-id set + * otherwise add exactly same data as for IPv4 address + */ if (area->newmetric) { - + if (IS_MPLS_TE(area->mta) + && area->mta->router_id.s_addr != 0) + id.s_addr = area->mta->router_id.s_addr; lsp_debug( "ISIS (%s): Adding router ID also as TE router ID tlv.", area->area_tag); @@ -1004,6 +1010,7 @@ static void lsp_build(struct isis_lsp *lsp, struct isis_area *area) && circuit->ipv6_non_link->count > 0) { struct listnode *ipnode; struct prefix_ipv6 *ipv6; + for (ALL_LIST_ELEMENTS_RO(circuit->ipv6_non_link, ipnode, ipv6)) { lsp_debug( @@ -1036,25 +1043,10 @@ static void lsp_build(struct isis_lsp *lsp, struct isis_area *area) lsp->tlvs, ne_id, metric); } - if (area->newmetric) { - uint8_t subtlvs[256]; - uint8_t subtlv_len; - - if (IS_MPLS_TE(area->mta) - && circuit->interface - && HAS_LINK_PARAMS( - circuit->interface)) - subtlv_len = add_te_subtlvs( - subtlvs, - circuit->mtc); - else - subtlv_len = 0; - + if (area->newmetric) tlvs_add_mt_bcast( lsp->tlvs, circuit, - level, ne_id, metric, - subtlvs, subtlv_len); - } + level, ne_id, metric); } } else { lsp_debug( @@ -1079,36 +1071,6 @@ static void lsp_build(struct isis_lsp *lsp, struct isis_area *area) lsp->tlvs, ne_id, metric); } if (area->newmetric) { - uint8_t subtlvs[256]; - uint8_t subtlv_len; - - if (IS_MPLS_TE(area->mta) - && circuit->interface != NULL - && HAS_LINK_PARAMS( - circuit->interface)) - /* Update Local and Remote IP - * address for MPLS TE circuit - * parameters */ - /* NOTE sure that it is the - * pertinent place for that - * updates */ - /* Local IP address could be - * updated in isis_circuit.c - - * isis_circuit_add_addr() */ - /* But, where update remote IP - * address ? in isis_pdu.c - - * process_p2p_hello() ? */ - - /* Add SubTLVs & Adjust real - * size of SubTLVs */ - subtlv_len = add_te_subtlvs( - subtlvs, circuit->mtc); - else - /* Or keep only TE metric with - * no SubTLVs if MPLS_TE is off - */ - subtlv_len = 0; - uint32_t neighbor_metric; if (fabricd_tier(area) == 0) { neighbor_metric = 0xffe; @@ -1117,8 +1079,7 @@ static void lsp_build(struct isis_lsp *lsp, struct isis_area *area) } tlvs_add_mt_p2p(lsp->tlvs, circuit, - ne_id, neighbor_metric, - subtlvs, subtlv_len); + ne_id, neighbor_metric); } } else { lsp_debug( @@ -1512,7 +1473,7 @@ static void lsp_build_pseudo(struct isis_lsp *lsp, struct isis_circuit *circuit, } if (circuit->area->newmetric) { isis_tlvs_add_extended_reach(lsp->tlvs, ISIS_MT_IPV4_UNICAST, - ne_id, 0, NULL, 0); + ne_id, 0, circuit->ext); lsp_debug( "ISIS (%s): Adding %s.%02x as te-style neighbor (self)", area->area_tag, sysid_print(ne_id), @@ -1554,7 +1515,7 @@ static void lsp_build_pseudo(struct isis_lsp *lsp, struct isis_circuit *circuit, if (circuit->area->newmetric) { isis_tlvs_add_extended_reach(lsp->tlvs, ISIS_MT_IPV4_UNICAST, - ne_id, 0, NULL, 0); + ne_id, 0, circuit->ext); lsp_debug( "ISIS (%s): Adding %s.%02x as te-style neighbor (peer)", area->area_tag, sysid_print(ne_id), diff --git a/isisd/isis_mt.c b/isisd/isis_mt.c index f7d4c7170f..36413bac59 100644 --- a/isisd/isis_mt.c +++ b/isisd/isis_mt.c @@ -511,8 +511,8 @@ static uint16_t *circuit_bcast_mt_set(struct isis_circuit *circuit, int level, static void tlvs_add_mt_set(struct isis_area *area, struct isis_tlvs *tlvs, unsigned int mt_count, uint16_t *mt_set, - uint8_t *id, uint32_t metric, uint8_t *subtlvs, - uint8_t subtlv_len) + uint8_t *id, uint32_t metric, + struct isis_ext_subtlvs *ext) { for (unsigned int i = 0; i < mt_count; i++) { uint16_t mtid = mt_set[i]; @@ -527,30 +527,27 @@ static void tlvs_add_mt_set(struct isis_area *area, struct isis_tlvs *tlvs, area->area_tag, sysid_print(id), LSP_PSEUDO_ID(id), isis_mtid2str(mtid)); } - isis_tlvs_add_extended_reach(tlvs, mtid, id, metric, subtlvs, - subtlv_len); + isis_tlvs_add_extended_reach(tlvs, mtid, id, metric, ext); } } void tlvs_add_mt_bcast(struct isis_tlvs *tlvs, struct isis_circuit *circuit, - int level, uint8_t *id, uint32_t metric, - uint8_t *subtlvs, uint8_t subtlv_len) + int level, uint8_t *id, uint32_t metric) { unsigned int mt_count; uint16_t *mt_set = circuit_bcast_mt_set(circuit, level, &mt_count); tlvs_add_mt_set(circuit->area, tlvs, mt_count, mt_set, id, metric, - subtlvs, subtlv_len); + circuit->ext); } void tlvs_add_mt_p2p(struct isis_tlvs *tlvs, struct isis_circuit *circuit, - uint8_t *id, uint32_t metric, uint8_t *subtlvs, - uint8_t subtlv_len) + uint8_t *id, uint32_t metric) { struct isis_adjacency *adj = circuit->u.p2p.neighbor; tlvs_add_mt_set(circuit->area, tlvs, adj->mt_count, adj->mt_set, id, - metric, subtlvs, subtlv_len); + metric, circuit->ext); } void mt_init(void) diff --git a/isisd/isis_mt.h b/isisd/isis_mt.h index 515b63f50f..b40139c50a 100644 --- a/isisd/isis_mt.h +++ b/isisd/isis_mt.h @@ -116,10 +116,8 @@ bool tlvs_to_adj_mt_set(struct isis_tlvs *tlvs, bool v4_usable, bool v6_usable, bool adj_has_mt(struct isis_adjacency *adj, uint16_t mtid); void adj_mt_finish(struct isis_adjacency *adj); void tlvs_add_mt_bcast(struct isis_tlvs *tlvs, struct isis_circuit *circuit, - int level, uint8_t *id, uint32_t metric, - uint8_t *subtlvs, uint8_t subtlv_len); + int level, uint8_t *id, uint32_t metric); void tlvs_add_mt_p2p(struct isis_tlvs *tlvs, struct isis_circuit *circuit, - uint8_t *id, uint32_t metric, uint8_t *subtlvs, - uint8_t subtlv_len); + uint8_t *id, uint32_t metric); void mt_init(void); #endif diff --git a/isisd/isis_northbound.c b/isisd/isis_northbound.c index c1b630eb2d..bd61918697 100644 --- a/isisd/isis_northbound.c +++ b/isisd/isis_northbound.c @@ -1384,7 +1384,7 @@ static int isis_instance_mpls_te_create(enum nb_event event, struct mpls_te_area *new; - zlog_debug("ISIS MPLS-TE: Initialize area %s", + zlog_debug("ISIS-TE(%s): Initialize MPLS Traffic Engineering", area->area_tag); new = XCALLOC(MTYPE_ISIS_MPLS_TE, sizeof(struct mpls_te_area)); @@ -1410,12 +1410,12 @@ static int isis_instance_mpls_te_create(enum nb_event event, * 2) MPLS-TE was once enabled then disabled, and now enabled again. */ for (ALL_LIST_ELEMENTS_RO(area->circuit_list, node, circuit)) { - if (circuit->mtc == NULL || IS_FLOOD_AS(circuit->mtc->type)) + if (circuit->ext == NULL) continue; - if (!IS_MPLS_TE(circuit->mtc) + if (!IS_EXT_TE(circuit->ext) && HAS_LINK_PARAMS(circuit->interface)) - circuit->mtc->status = enable; + isis_link_params_update(circuit, circuit->interface); else continue; @@ -1446,11 +1446,16 @@ static int isis_instance_mpls_te_destroy(enum nb_event event, /* Flush LSP if circuit engage */ for (ALL_LIST_ELEMENTS_RO(area->circuit_list, node, circuit)) { - if (circuit->mtc == NULL || (circuit->mtc->status == disable)) + if (!IS_EXT_TE(circuit->ext)) continue; - /* disable MPLS_TE Circuit */ - circuit->mtc->status = disable; + /* disable MPLS_TE Circuit keeping SR one's */ + if (IS_SUBTLV(circuit->ext, EXT_ADJ_SID)) + circuit->ext->status = EXT_ADJ_SID; + else if (IS_SUBTLV(circuit->ext, EXT_LAN_ADJ_SID)) + circuit->ext->status = EXT_LAN_ADJ_SID; + else + circuit->ext->status = 0; /* Re-originate circuit without STD_TE & GMPLS parameters */ if (circuit->area) @@ -1458,6 +1463,9 @@ static int isis_instance_mpls_te_destroy(enum nb_event event, 0); } + zlog_debug("ISIS-TE(%s): Disabled MPLS Traffic Engineering", + area->area_tag); + return NB_OK; } diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c index 3d16d56016..ecfce392ff 100644 --- a/isisd/isis_pdu.c +++ b/isisd/isis_pdu.c @@ -199,13 +199,6 @@ static int process_p2p_hello(struct iih_info *iih) changed |= tlvs_to_adj_mt_set(iih->tlvs, iih->v4_usable, iih->v6_usable, adj); - /* Update MPLS TE Remote IP address parameter if possible */ - if (IS_MPLS_TE(iih->circuit->area->mta) - && IS_MPLS_TE(iih->circuit->mtc) - && adj->ipv4_address_count) - set_circuitparams_rmt_ipaddr(iih->circuit->mtc, - adj->ipv4_addresses[0]); - /* lets take care of the expiry */ THREAD_TIMER_OFF(adj->t_expire); thread_add_timer(master, isis_adj_expire, adj, (long)adj->hold_time, diff --git a/isisd/isis_te.c b/isisd/isis_te.c index 4ea6c2c60d..44fa45d02b 100644 --- a/isisd/isis_te.c +++ b/isisd/isis_te.c @@ -3,8 +3,9 @@ * * This is an implementation of RFC5305 & RFC 7810 * - * Copyright (C) 2014 Orange Labs - * http://www.orange.com + * Author: Olivier Dugeon + * + * Copyright (C) 2014 - 2019 Orange Labs http://www.orange.com * * This file is part of GNU Zebra. * @@ -47,6 +48,7 @@ #include "isisd/isis_common.h" #include "isisd/isis_flags.h" #include "isisd/isis_circuit.h" +#include "isisd/isis_adjacency.h" #include "isisd/isisd.h" #include "isisd/isis_lsp.h" #include "isisd/isis_pdu.h" @@ -56,6 +58,7 @@ #include "isisd/isis_adjacency.h" #include "isisd/isis_spf.h" #include "isisd/isis_te.h" +#include "isisd/isis_zebra.h" const char *mode2text[] = {"Disable", "Area", "AS", "Emulate"}; @@ -63,424 +66,6 @@ const char *mode2text[] = {"Disable", "Area", "AS", "Emulate"}; * Followings are control functions for MPLS-TE parameters management. *------------------------------------------------------------------------*/ -/* Create new MPLS TE Circuit context */ -struct mpls_te_circuit *mpls_te_circuit_new(void) -{ - struct mpls_te_circuit *mtc; - - zlog_debug("ISIS MPLS-TE: Create new MPLS TE Circuit context"); - - mtc = XCALLOC(MTYPE_ISIS_MPLS_TE, sizeof(struct mpls_te_circuit)); - - mtc->status = disable; - mtc->type = STD_TE; - mtc->length = 0; - - return mtc; -} - -/* Copy SUB TLVs parameters into a buffer - No space verification are performed - */ -/* Caller must verify before that there is enough free space in the buffer */ -uint8_t add_te_subtlvs(uint8_t *buf, struct mpls_te_circuit *mtc) -{ - uint8_t size, *tlvs = buf; - - zlog_debug("ISIS MPLS-TE: Add TE Sub TLVs to buffer"); - - if (mtc == NULL) { - zlog_debug( - "ISIS MPLS-TE: Abort! No MPLS TE Circuit available has been specified"); - return 0; - } - - /* Create buffer if not provided */ - if (buf == NULL) { - zlog_debug("ISIS MPLS-TE: Abort! No Buffer has been specified"); - return 0; - } - - /* TE_SUBTLV_ADMIN_GRP */ - if (SUBTLV_TYPE(mtc->admin_grp) != 0) { - size = SUBTLV_SIZE(&(mtc->admin_grp.header)); - memcpy(tlvs, &(mtc->admin_grp), size); - tlvs += size; - } - - /* TE_SUBTLV_LLRI */ - if (SUBTLV_TYPE(mtc->llri) != 0) { - size = SUBTLV_SIZE(&(mtc->llri.header)); - memcpy(tlvs, &(mtc->llri), size); - tlvs += size; - } - - /* TE_SUBTLV_LCLIF_IPADDR */ - if (SUBTLV_TYPE(mtc->local_ipaddr) != 0) { - size = SUBTLV_SIZE(&(mtc->local_ipaddr.header)); - memcpy(tlvs, &(mtc->local_ipaddr), size); - tlvs += size; - } - - /* TE_SUBTLV_RMTIF_IPADDR */ - if (SUBTLV_TYPE(mtc->rmt_ipaddr) != 0) { - size = SUBTLV_SIZE(&(mtc->rmt_ipaddr.header)); - memcpy(tlvs, &(mtc->rmt_ipaddr), size); - tlvs += size; - } - - /* TE_SUBTLV_MAX_BW */ - if (SUBTLV_TYPE(mtc->max_bw) != 0) { - size = SUBTLV_SIZE(&(mtc->max_bw.header)); - memcpy(tlvs, &(mtc->max_bw), size); - tlvs += size; - } - - /* TE_SUBTLV_MAX_RSV_BW */ - if (SUBTLV_TYPE(mtc->max_rsv_bw) != 0) { - size = SUBTLV_SIZE(&(mtc->max_rsv_bw.header)); - memcpy(tlvs, &(mtc->max_rsv_bw), size); - tlvs += size; - } - - /* TE_SUBTLV_UNRSV_BW */ - if (SUBTLV_TYPE(mtc->unrsv_bw) != 0) { - size = SUBTLV_SIZE(&(mtc->unrsv_bw.header)); - memcpy(tlvs, &(mtc->unrsv_bw), size); - tlvs += size; - } - - /* TE_SUBTLV_TE_METRIC */ - if (SUBTLV_TYPE(mtc->te_metric) != 0) { - size = SUBTLV_SIZE(&(mtc->te_metric.header)); - memcpy(tlvs, &(mtc->te_metric), size); - tlvs += size; - } - - /* TE_SUBTLV_AV_DELAY */ - if (SUBTLV_TYPE(mtc->av_delay) != 0) { - size = SUBTLV_SIZE(&(mtc->av_delay.header)); - memcpy(tlvs, &(mtc->av_delay), size); - tlvs += size; - } - - /* TE_SUBTLV_MM_DELAY */ - if (SUBTLV_TYPE(mtc->mm_delay) != 0) { - size = SUBTLV_SIZE(&(mtc->mm_delay.header)); - memcpy(tlvs, &(mtc->mm_delay), size); - tlvs += size; - } - - /* TE_SUBTLV_DELAY_VAR */ - if (SUBTLV_TYPE(mtc->delay_var) != 0) { - size = SUBTLV_SIZE(&(mtc->delay_var.header)); - memcpy(tlvs, &(mtc->delay_var), size); - tlvs += size; - } - - /* TE_SUBTLV_PKT_LOSS */ - if (SUBTLV_TYPE(mtc->pkt_loss) != 0) { - size = SUBTLV_SIZE(&(mtc->pkt_loss.header)); - memcpy(tlvs, &(mtc->pkt_loss), size); - tlvs += size; - } - - /* TE_SUBTLV_RES_BW */ - if (SUBTLV_TYPE(mtc->res_bw) != 0) { - size = SUBTLV_SIZE(&(mtc->res_bw.header)); - memcpy(tlvs, &(mtc->res_bw), size); - tlvs += size; - } - - /* TE_SUBTLV_AVA_BW */ - if (SUBTLV_TYPE(mtc->ava_bw) != 0) { - size = SUBTLV_SIZE(&(mtc->ava_bw.header)); - memcpy(tlvs, &(mtc->ava_bw), size); - tlvs += size; - } - - /* TE_SUBTLV_USE_BW */ - if (SUBTLV_TYPE(mtc->use_bw) != 0) { - size = SUBTLV_SIZE(&(mtc->use_bw.header)); - memcpy(tlvs, &(mtc->use_bw), size); - tlvs += size; - } - - /* Add before this line any other parsing of TLV */ - (void)tlvs; - - /* Update SubTLVs length */ - mtc->length = subtlvs_len(mtc); - - zlog_debug("ISIS MPLS-TE: Add %d bytes length SubTLVs", mtc->length); - - return mtc->length; -} - -/* Compute total Sub-TLVs size */ -uint8_t subtlvs_len(struct mpls_te_circuit *mtc) -{ - int length = 0; - - /* Sanity Check */ - if (mtc == NULL) - return 0; - - /* TE_SUBTLV_ADMIN_GRP */ - if (SUBTLV_TYPE(mtc->admin_grp) != 0) - length += SUBTLV_SIZE(&(mtc->admin_grp.header)); - - /* TE_SUBTLV_LLRI */ - if (SUBTLV_TYPE(mtc->llri) != 0) - length += SUBTLV_SIZE(&mtc->llri.header); - - /* TE_SUBTLV_LCLIF_IPADDR */ - if (SUBTLV_TYPE(mtc->local_ipaddr) != 0) - length += SUBTLV_SIZE(&mtc->local_ipaddr.header); - - /* TE_SUBTLV_RMTIF_IPADDR */ - if (SUBTLV_TYPE(mtc->rmt_ipaddr) != 0) - length += SUBTLV_SIZE(&mtc->rmt_ipaddr.header); - - /* TE_SUBTLV_MAX_BW */ - if (SUBTLV_TYPE(mtc->max_bw) != 0) - length += SUBTLV_SIZE(&mtc->max_bw.header); - - /* TE_SUBTLV_MAX_RSV_BW */ - if (SUBTLV_TYPE(mtc->max_rsv_bw) != 0) - length += SUBTLV_SIZE(&mtc->max_rsv_bw.header); - - /* TE_SUBTLV_UNRSV_BW */ - if (SUBTLV_TYPE(mtc->unrsv_bw) != 0) - length += SUBTLV_SIZE(&mtc->unrsv_bw.header); - - /* TE_SUBTLV_TE_METRIC */ - if (SUBTLV_TYPE(mtc->te_metric) != 0) - length += SUBTLV_SIZE(&mtc->te_metric.header); - - /* TE_SUBTLV_AV_DELAY */ - if (SUBTLV_TYPE(mtc->av_delay) != 0) - length += SUBTLV_SIZE(&mtc->av_delay.header); - - /* TE_SUBTLV_MM_DELAY */ - if (SUBTLV_TYPE(mtc->mm_delay) != 0) - length += SUBTLV_SIZE(&mtc->mm_delay.header); - - /* TE_SUBTLV_DELAY_VAR */ - if (SUBTLV_TYPE(mtc->delay_var) != 0) - length += SUBTLV_SIZE(&mtc->delay_var.header); - - /* TE_SUBTLV_PKT_LOSS */ - if (SUBTLV_TYPE(mtc->pkt_loss) != 0) - length += SUBTLV_SIZE(&mtc->pkt_loss.header); - - /* TE_SUBTLV_RES_BW */ - if (SUBTLV_TYPE(mtc->res_bw) != 0) - length += SUBTLV_SIZE(&mtc->res_bw.header); - - /* TE_SUBTLV_AVA_BW */ - if (SUBTLV_TYPE(mtc->ava_bw) != 0) - length += SUBTLV_SIZE(&mtc->ava_bw.header); - - /* TE_SUBTLV_USE_BW */ - if (SUBTLV_TYPE(mtc->use_bw) != 0) - length += SUBTLV_SIZE(&mtc->use_bw.header); - - /* Check that length is lower than the MAXIMUM SUBTLV size i.e. 256 */ - if (length > MAX_SUBTLV_SIZE) { - mtc->length = 0; - return 0; - } - - mtc->length = (uint8_t)length; - - return mtc->length; -} - -/* Following are various functions to set MPLS TE parameters */ -static void set_circuitparams_admin_grp(struct mpls_te_circuit *mtc, - uint32_t admingrp) -{ - SUBTLV_TYPE(mtc->admin_grp) = TE_SUBTLV_ADMIN_GRP; - SUBTLV_LEN(mtc->admin_grp) = SUBTLV_DEF_SIZE; - mtc->admin_grp.value = htonl(admingrp); - return; -} - -static void __attribute__((unused)) -set_circuitparams_llri(struct mpls_te_circuit *mtc, uint32_t local, - uint32_t remote) -{ - SUBTLV_TYPE(mtc->llri) = TE_SUBTLV_LLRI; - SUBTLV_LEN(mtc->llri) = TE_SUBTLV_LLRI_SIZE; - mtc->llri.local = htonl(local); - mtc->llri.remote = htonl(remote); -} - -void set_circuitparams_local_ipaddr(struct mpls_te_circuit *mtc, - struct in_addr addr) -{ - - SUBTLV_TYPE(mtc->local_ipaddr) = TE_SUBTLV_LOCAL_IPADDR; - SUBTLV_LEN(mtc->local_ipaddr) = SUBTLV_DEF_SIZE; - mtc->local_ipaddr.value.s_addr = addr.s_addr; - return; -} - -void set_circuitparams_rmt_ipaddr(struct mpls_te_circuit *mtc, - struct in_addr addr) -{ - - SUBTLV_TYPE(mtc->rmt_ipaddr) = TE_SUBTLV_RMT_IPADDR; - SUBTLV_LEN(mtc->rmt_ipaddr) = SUBTLV_DEF_SIZE; - mtc->rmt_ipaddr.value.s_addr = addr.s_addr; - return; -} - -static void set_circuitparams_max_bw(struct mpls_te_circuit *mtc, float fp) -{ - SUBTLV_TYPE(mtc->max_bw) = TE_SUBTLV_MAX_BW; - SUBTLV_LEN(mtc->max_bw) = SUBTLV_DEF_SIZE; - mtc->max_bw.value = htonf(fp); - return; -} - -static void set_circuitparams_max_rsv_bw(struct mpls_te_circuit *mtc, float fp) -{ - SUBTLV_TYPE(mtc->max_rsv_bw) = TE_SUBTLV_MAX_RSV_BW; - SUBTLV_LEN(mtc->max_rsv_bw) = SUBTLV_DEF_SIZE; - mtc->max_rsv_bw.value = htonf(fp); - return; -} - -static void set_circuitparams_unrsv_bw(struct mpls_te_circuit *mtc, - int priority, float fp) -{ - /* Note that TLV-length field is the size of array. */ - SUBTLV_TYPE(mtc->unrsv_bw) = TE_SUBTLV_UNRSV_BW; - SUBTLV_LEN(mtc->unrsv_bw) = TE_SUBTLV_UNRSV_SIZE; - mtc->unrsv_bw.value[priority] = htonf(fp); - return; -} - -static void set_circuitparams_te_metric(struct mpls_te_circuit *mtc, - uint32_t te_metric) -{ - SUBTLV_TYPE(mtc->te_metric) = TE_SUBTLV_TE_METRIC; - SUBTLV_LEN(mtc->te_metric) = TE_SUBTLV_TE_METRIC_SIZE; - mtc->te_metric.value[0] = (te_metric >> 16) & 0xFF; - mtc->te_metric.value[1] = (te_metric >> 8) & 0xFF; - mtc->te_metric.value[2] = te_metric & 0xFF; - return; -} - -static void set_circuitparams_inter_as(struct mpls_te_circuit *mtc, - struct in_addr addr, uint32_t as) -{ - - /* Set the Remote ASBR IP address and then the associated AS number */ - SUBTLV_TYPE(mtc->rip) = TE_SUBTLV_RIP; - SUBTLV_LEN(mtc->rip) = SUBTLV_DEF_SIZE; - mtc->rip.value.s_addr = addr.s_addr; - - SUBTLV_TYPE(mtc->ras) = TE_SUBTLV_RAS; - SUBTLV_LEN(mtc->ras) = SUBTLV_DEF_SIZE; - mtc->ras.value = htonl(as); -} - -static void unset_circuitparams_inter_as(struct mpls_te_circuit *mtc) -{ - - /* Reset the Remote ASBR IP address and then the associated AS number */ - SUBTLV_TYPE(mtc->rip) = 0; - SUBTLV_LEN(mtc->rip) = 0; - mtc->rip.value.s_addr = 0; - - SUBTLV_TYPE(mtc->ras) = 0; - SUBTLV_LEN(mtc->ras) = 0; - mtc->ras.value = 0; -} - -static void set_circuitparams_av_delay(struct mpls_te_circuit *mtc, - uint32_t delay, uint8_t anormal) -{ - uint32_t tmp; - /* Note that TLV-length field is the size of array. */ - SUBTLV_TYPE(mtc->av_delay) = TE_SUBTLV_AV_DELAY; - SUBTLV_LEN(mtc->av_delay) = SUBTLV_DEF_SIZE; - tmp = delay & TE_EXT_MASK; - if (anormal) - tmp |= TE_EXT_ANORMAL; - mtc->av_delay.value = htonl(tmp); - return; -} - -static void set_circuitparams_mm_delay(struct mpls_te_circuit *mtc, - uint32_t low, uint32_t high, - uint8_t anormal) -{ - uint32_t tmp; - /* Note that TLV-length field is the size of array. */ - SUBTLV_TYPE(mtc->mm_delay) = TE_SUBTLV_MM_DELAY; - SUBTLV_LEN(mtc->mm_delay) = TE_SUBTLV_MM_DELAY_SIZE; - tmp = low & TE_EXT_MASK; - if (anormal) - tmp |= TE_EXT_ANORMAL; - mtc->mm_delay.low = htonl(tmp); - mtc->mm_delay.high = htonl(high); - return; -} - -static void set_circuitparams_delay_var(struct mpls_te_circuit *mtc, - uint32_t jitter) -{ - /* Note that TLV-length field is the size of array. */ - SUBTLV_TYPE(mtc->delay_var) = TE_SUBTLV_DELAY_VAR; - SUBTLV_LEN(mtc->delay_var) = SUBTLV_DEF_SIZE; - mtc->delay_var.value = htonl(jitter & TE_EXT_MASK); - return; -} - -static void set_circuitparams_pkt_loss(struct mpls_te_circuit *mtc, - uint32_t loss, uint8_t anormal) -{ - uint32_t tmp; - /* Note that TLV-length field is the size of array. */ - SUBTLV_TYPE(mtc->pkt_loss) = TE_SUBTLV_PKT_LOSS; - SUBTLV_LEN(mtc->pkt_loss) = SUBTLV_DEF_SIZE; - tmp = loss & TE_EXT_MASK; - if (anormal) - tmp |= TE_EXT_ANORMAL; - mtc->pkt_loss.value = htonl(tmp); - return; -} - -static void set_circuitparams_res_bw(struct mpls_te_circuit *mtc, float fp) -{ - /* Note that TLV-length field is the size of array. */ - SUBTLV_TYPE(mtc->res_bw) = TE_SUBTLV_RES_BW; - SUBTLV_LEN(mtc->res_bw) = SUBTLV_DEF_SIZE; - mtc->res_bw.value = htonf(fp); - return; -} - -static void set_circuitparams_ava_bw(struct mpls_te_circuit *mtc, float fp) -{ - /* Note that TLV-length field is the size of array. */ - SUBTLV_TYPE(mtc->ava_bw) = TE_SUBTLV_AVA_BW; - SUBTLV_LEN(mtc->ava_bw) = SUBTLV_DEF_SIZE; - mtc->ava_bw.value = htonf(fp); - return; -} - -static void set_circuitparams_use_bw(struct mpls_te_circuit *mtc, float fp) -{ - /* Note that TLV-length field is the size of array. */ - SUBTLV_TYPE(mtc->use_bw) = TE_SUBTLV_USE_BW; - SUBTLV_LEN(mtc->use_bw) = SUBTLV_DEF_SIZE; - mtc->use_bw.value = htonf(fp); - return; -} - /* Main initialization / update function of the MPLS TE Circuit context */ /* Call when interface TE Link parameters are modified */ void isis_link_params_update(struct isis_circuit *circuit, @@ -488,155 +73,223 @@ void isis_link_params_update(struct isis_circuit *circuit, { int i; struct prefix_ipv4 *addr; - struct mpls_te_circuit *mtc; + struct prefix_ipv6 *addr6; + struct isis_ext_subtlvs *ext; + + /* Check if TE is enable or not */ + if (!circuit->area || !IS_MPLS_TE(circuit->area->mta)) + return; /* Sanity Check */ - if ((circuit == NULL) || (ifp == NULL)) + if ((circuit == NULL) || (ifp == NULL) + || (circuit->state != C_STATE_UP)) return; - zlog_info("MPLS-TE: Initialize circuit parameters for interface %s", - ifp->name); + zlog_debug("TE(%s): Update circuit parameters for interface %s", + circuit->area->area_tag, ifp->name); /* Check if MPLS TE Circuit context has not been already created */ - if (circuit->mtc == NULL) - circuit->mtc = mpls_te_circuit_new(); + if (circuit->ext == NULL) { + circuit->ext = isis_alloc_ext_subtlvs(); + zlog_debug(" |- Allocated new Ext-subTLVs for interface %s", + ifp->name); + } - mtc = circuit->mtc; + ext = circuit->ext; - /* Fulfil MTC TLV from ifp TE Link parameters */ + /* Fulfill Extended subTLVs from interface link parameters */ if (HAS_LINK_PARAMS(ifp)) { - mtc->status = enable; /* STD_TE metrics */ - if (IS_PARAM_SET(ifp->link_params, LP_ADM_GRP)) - set_circuitparams_admin_grp( - mtc, ifp->link_params->admin_grp); - else - SUBTLV_TYPE(mtc->admin_grp) = 0; - - /* If not already set, register local IP addr from ip_addr list - * if it exists */ - if (SUBTLV_TYPE(mtc->local_ipaddr) == 0) { - if (circuit->ip_addrs != NULL - && listcount(circuit->ip_addrs) != 0) { - addr = (struct prefix_ipv4 *)listgetdata( - (struct listnode *)listhead( - circuit->ip_addrs)); - set_circuitparams_local_ipaddr(mtc, - addr->prefix); - } - } - - /* If not already set, try to determine Remote IP addr if - * circuit is P2P */ - if ((SUBTLV_TYPE(mtc->rmt_ipaddr) == 0) - && (circuit->circ_type == CIRCUIT_T_P2P)) { + if (IS_PARAM_SET(ifp->link_params, LP_ADM_GRP)) { + ext->adm_group = ifp->link_params->admin_grp; + SET_SUBTLV(ext, EXT_ADM_GRP); + } else + UNSET_SUBTLV(ext, EXT_ADM_GRP); + + /* If known, register local IPv4 addr from ip_addr list */ + if (circuit->ip_addrs != NULL + && listcount(circuit->ip_addrs) != 0) { + addr = (struct prefix_ipv4 *)listgetdata( + (struct listnode *)listhead(circuit->ip_addrs)); + IPV4_ADDR_COPY(&ext->local_addr, &addr->prefix); + SET_SUBTLV(ext, EXT_LOCAL_ADDR); + } else + UNSET_SUBTLV(ext, EXT_LOCAL_ADDR); + + /* Same for Remote IPv4 address */ + if (circuit->circ_type == CIRCUIT_T_P2P) { struct isis_adjacency *adj = circuit->u.p2p.neighbor; + if (adj && adj->adj_state == ISIS_ADJ_UP && adj->ipv4_address_count) { - set_circuitparams_rmt_ipaddr( - mtc, adj->ipv4_addresses[0]); + IPV4_ADDR_COPY(&ext->neigh_addr, + &adj->ipv4_addresses[0]); + SET_SUBTLV(ext, EXT_NEIGH_ADDR); } - } - - if (IS_PARAM_SET(ifp->link_params, LP_MAX_BW)) - set_circuitparams_max_bw(mtc, ifp->link_params->max_bw); - else - SUBTLV_TYPE(mtc->max_bw) = 0; - - if (IS_PARAM_SET(ifp->link_params, LP_MAX_RSV_BW)) - set_circuitparams_max_rsv_bw( - mtc, ifp->link_params->max_rsv_bw); - else - SUBTLV_TYPE(mtc->max_rsv_bw) = 0; + } else + UNSET_SUBTLV(ext, EXT_NEIGH_ADDR); + + /* If known, register local IPv6 addr from ip_addr list */ + if (circuit->ipv6_non_link != NULL + && listcount(circuit->ipv6_non_link) != 0) { + addr6 = (struct prefix_ipv6 *)listgetdata( + (struct listnode *)listhead( + circuit->ipv6_non_link)); + IPV6_ADDR_COPY(&ext->local_addr6, &addr6->prefix); + SET_SUBTLV(ext, EXT_LOCAL_ADDR6); + } else + UNSET_SUBTLV(ext, EXT_LOCAL_ADDR6); + + /* Same for Remote IPv6 address */ + if (circuit->circ_type == CIRCUIT_T_P2P) { + struct isis_adjacency *adj = circuit->u.p2p.neighbor; - if (IS_PARAM_SET(ifp->link_params, LP_UNRSV_BW)) + if (adj && adj->adj_state == ISIS_ADJ_UP + && adj->ipv6_address_count) { + IPV6_ADDR_COPY(&ext->neigh_addr6, + &adj->ipv6_addresses[0]); + SET_SUBTLV(ext, EXT_NEIGH_ADDR6); + } + } else + UNSET_SUBTLV(ext, EXT_NEIGH_ADDR6); + + if (IS_PARAM_SET(ifp->link_params, LP_MAX_BW)) { + ext->max_bw = ifp->link_params->max_bw; + SET_SUBTLV(ext, EXT_MAX_BW); + } else + UNSET_SUBTLV(ext, EXT_MAX_BW); + + if (IS_PARAM_SET(ifp->link_params, LP_MAX_RSV_BW)) { + ext->max_rsv_bw = ifp->link_params->max_rsv_bw; + SET_SUBTLV(ext, EXT_MAX_RSV_BW); + } else + UNSET_SUBTLV(ext, EXT_MAX_RSV_BW); + + if (IS_PARAM_SET(ifp->link_params, LP_UNRSV_BW)) { for (i = 0; i < MAX_CLASS_TYPE; i++) - set_circuitparams_unrsv_bw( - mtc, i, ifp->link_params->unrsv_bw[i]); - else - SUBTLV_TYPE(mtc->unrsv_bw) = 0; - - if (IS_PARAM_SET(ifp->link_params, LP_TE_METRIC)) - set_circuitparams_te_metric( - mtc, ifp->link_params->te_metric); - else - SUBTLV_TYPE(mtc->te_metric) = 0; - - /* TE metric Extensions */ - if (IS_PARAM_SET(ifp->link_params, LP_DELAY)) - set_circuitparams_av_delay( - mtc, ifp->link_params->av_delay, 0); - else - SUBTLV_TYPE(mtc->av_delay) = 0; + ext->unrsv_bw[i] = + ifp->link_params->unrsv_bw[i]; + SET_SUBTLV(ext, EXT_UNRSV_BW); + } else + UNSET_SUBTLV(ext, EXT_UNRSV_BW); + + if (IS_PARAM_SET(ifp->link_params, LP_TE_METRIC)) { + ext->te_metric = ifp->link_params->te_metric; + SET_SUBTLV(ext, EXT_TE_METRIC); + } else + UNSET_SUBTLV(ext, EXT_TE_METRIC); + + /* TE metric extensions */ + if (IS_PARAM_SET(ifp->link_params, LP_DELAY)) { + ext->delay = ifp->link_params->av_delay; + SET_SUBTLV(ext, EXT_DELAY); + } else + UNSET_SUBTLV(ext, EXT_DELAY); + + if (IS_PARAM_SET(ifp->link_params, LP_MM_DELAY)) { + ext->min_delay = ifp->link_params->min_delay; + ext->max_delay = ifp->link_params->max_delay; + SET_SUBTLV(ext, EXT_MM_DELAY); + } else + UNSET_SUBTLV(ext, EXT_MM_DELAY); + + if (IS_PARAM_SET(ifp->link_params, LP_DELAY_VAR)) { + ext->delay_var = ifp->link_params->delay_var; + SET_SUBTLV(ext, EXT_DELAY_VAR); + } else + UNSET_SUBTLV(ext, EXT_DELAY_VAR); + + if (IS_PARAM_SET(ifp->link_params, LP_PKT_LOSS)) { + ext->pkt_loss = ifp->link_params->pkt_loss; + SET_SUBTLV(ext, EXT_PKT_LOSS); + } else + UNSET_SUBTLV(ext, EXT_PKT_LOSS); + + if (IS_PARAM_SET(ifp->link_params, LP_RES_BW)) { + ext->res_bw = ifp->link_params->res_bw; + SET_SUBTLV(ext, EXT_RES_BW); + } else + UNSET_SUBTLV(ext, EXT_RES_BW); + + if (IS_PARAM_SET(ifp->link_params, LP_AVA_BW)) { + ext->ava_bw = ifp->link_params->ava_bw; + SET_SUBTLV(ext, EXT_AVA_BW); + } else + UNSET_SUBTLV(ext, EXT_AVA_BW); + + if (IS_PARAM_SET(ifp->link_params, LP_USE_BW)) { + ext->use_bw = ifp->link_params->use_bw; + SET_SUBTLV(ext, EXT_USE_BW); + } else + UNSET_SUBTLV(ext, EXT_USE_BW); - if (IS_PARAM_SET(ifp->link_params, LP_MM_DELAY)) - set_circuitparams_mm_delay( - mtc, ifp->link_params->min_delay, - ifp->link_params->max_delay, 0); - else - SUBTLV_TYPE(mtc->mm_delay) = 0; - - if (IS_PARAM_SET(ifp->link_params, LP_DELAY_VAR)) - set_circuitparams_delay_var( - mtc, ifp->link_params->delay_var); - else - SUBTLV_TYPE(mtc->delay_var) = 0; - - if (IS_PARAM_SET(ifp->link_params, LP_PKT_LOSS)) - set_circuitparams_pkt_loss( - mtc, ifp->link_params->pkt_loss, 0); + /* INTER_AS */ + if (IS_PARAM_SET(ifp->link_params, LP_RMT_AS)) { + ext->remote_as = ifp->link_params->rmt_as; + ext->remote_ip = ifp->link_params->rmt_ip; + SET_SUBTLV(ext, EXT_RMT_AS); + SET_SUBTLV(ext, EXT_RMT_IP); + } else { + /* reset inter-as TE params */ + UNSET_SUBTLV(ext, EXT_RMT_AS); + UNSET_SUBTLV(ext, EXT_RMT_IP); + } + zlog_debug(" |- New MPLS-TE link parameters status 0x%x", + ext->status); + } else { + zlog_debug(" |- Reset Extended subTLVs status 0x%x", + ext->status); + /* Reset TE subTLVs keeping SR one's */ + if (IS_SUBTLV(ext, EXT_ADJ_SID)) + ext->status = EXT_ADJ_SID; + else if (IS_SUBTLV(ext, EXT_LAN_ADJ_SID)) + ext->status = EXT_LAN_ADJ_SID; else - SUBTLV_TYPE(mtc->pkt_loss) = 0; + ext->status = 0; + } - if (IS_PARAM_SET(ifp->link_params, LP_RES_BW)) - set_circuitparams_res_bw(mtc, ifp->link_params->res_bw); - else - SUBTLV_TYPE(mtc->res_bw) = 0; + return; +} - if (IS_PARAM_SET(ifp->link_params, LP_AVA_BW)) - set_circuitparams_ava_bw(mtc, ifp->link_params->ava_bw); - else - SUBTLV_TYPE(mtc->ava_bw) = 0; +static int isis_link_update_adj_hook(struct isis_adjacency *adj) +{ - if (IS_PARAM_SET(ifp->link_params, LP_USE_BW)) - set_circuitparams_use_bw(mtc, ifp->link_params->use_bw); - else - SUBTLV_TYPE(mtc->use_bw) = 0; + struct isis_circuit *circuit = adj->circuit; - /* INTER_AS */ - if (IS_PARAM_SET(ifp->link_params, LP_RMT_AS)) - set_circuitparams_inter_as(mtc, - ifp->link_params->rmt_ip, - ifp->link_params->rmt_as); - else - /* reset inter-as TE params */ - unset_circuitparams_inter_as(mtc); + /* Update MPLS TE Remote IP address parameter if possible */ + if (!IS_MPLS_TE(circuit->area->mta) || !IS_EXT_TE(circuit->ext)) + return 0; - /* Compute total length of SUB TLVs */ - mtc->length = subtlvs_len(mtc); + /* IPv4 first */ + if (adj->ipv4_address_count > 0) { + IPV4_ADDR_COPY(&circuit->ext->neigh_addr, + &adj->ipv4_addresses[0]); + SET_SUBTLV(circuit->ext, EXT_NEIGH_ADDR); + } - } else - mtc->status = disable; + /* and IPv6 */ + if (adj->ipv6_address_count > 0) { + IPV6_ADDR_COPY(&circuit->ext->neigh_addr6, + &adj->ipv6_addresses[0]); + SET_SUBTLV(circuit->ext, EXT_NEIGH_ADDR6); + } -/* Finally Update LSP */ -#if 0 - if (circuit->area && IS_MPLS_TE(circuit->area->mta)) - lsp_regenerate_schedule (circuit->area, circuit->is_type, 0); -#endif - return; + return 0; } -void isis_mpls_te_update(struct interface *ifp) +int isis_mpls_te_update(struct interface *ifp) { struct isis_circuit *circuit; + uint8_t rc = 1; /* Sanity Check */ if (ifp == NULL) - return; + return rc; /* Get circuit context from interface */ - if ((circuit = circuit_scan_by_ifp(ifp)) == NULL) - return; + circuit = circuit_scan_by_ifp(ifp); + if (circuit == NULL) + return rc; /* Update TE TLVs ... */ isis_link_params_update(circuit, ifp); @@ -645,418 +298,11 @@ void isis_mpls_te_update(struct interface *ifp) if (circuit->area && IS_MPLS_TE(circuit->area->mta)) lsp_regenerate_schedule(circuit->area, circuit->is_type, 0); - return; -} - -/*------------------------------------------------------------------------* - * Followings are vty session control functions. - *------------------------------------------------------------------------*/ - -static uint8_t print_subtlv_admin_grp(struct sbuf *buf, int indent, - struct te_subtlv_admin_grp *tlv) -{ - sbuf_push(buf, indent, "Administrative Group: 0x%" PRIx32 "\n", - ntohl(tlv->value)); - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_llri(struct sbuf *buf, int indent, - struct te_subtlv_llri *tlv) -{ - sbuf_push(buf, indent, "Link Local ID: %" PRIu32 "\n", - ntohl(tlv->local)); - sbuf_push(buf, indent, "Link Remote ID: %" PRIu32 "\n", - ntohl(tlv->remote)); - - return (SUBTLV_HDR_SIZE + TE_SUBTLV_LLRI_SIZE); -} - -static uint8_t print_subtlv_local_ipaddr(struct sbuf *buf, int indent, - struct te_subtlv_local_ipaddr *tlv) -{ - sbuf_push(buf, indent, "Local Interface IP Address(es): %s\n", - inet_ntoa(tlv->value)); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_rmt_ipaddr(struct sbuf *buf, int indent, - struct te_subtlv_rmt_ipaddr *tlv) -{ - sbuf_push(buf, indent, "Remote Interface IP Address(es): %s\n", - inet_ntoa(tlv->value)); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_max_bw(struct sbuf *buf, int indent, - struct te_subtlv_max_bw *tlv) -{ - float fval; - - fval = ntohf(tlv->value); - - sbuf_push(buf, indent, "Maximum Bandwidth: %g (Bytes/sec)\n", fval); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_max_rsv_bw(struct sbuf *buf, int indent, - struct te_subtlv_max_rsv_bw *tlv) -{ - float fval; - - fval = ntohf(tlv->value); - - sbuf_push(buf, indent, "Maximum Reservable Bandwidth: %g (Bytes/sec)\n", - fval); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_unrsv_bw(struct sbuf *buf, int indent, - struct te_subtlv_unrsv_bw *tlv) -{ - float fval1, fval2; - int i; - - sbuf_push(buf, indent, "Unreserved Bandwidth:\n"); - - for (i = 0; i < MAX_CLASS_TYPE; i += 2) { - fval1 = ntohf(tlv->value[i]); - fval2 = ntohf(tlv->value[i + 1]); - sbuf_push(buf, indent + 2, - "[%d]: %g (Bytes/sec),\t[%d]: %g (Bytes/sec)\n", i, - fval1, i + 1, fval2); - } - - return (SUBTLV_HDR_SIZE + TE_SUBTLV_UNRSV_SIZE); -} - -static uint8_t print_subtlv_te_metric(struct sbuf *buf, int indent, - struct te_subtlv_te_metric *tlv) -{ - uint32_t te_metric; - - te_metric = tlv->value[2] | tlv->value[1] << 8 | tlv->value[0] << 16; - sbuf_push(buf, indent, "Traffic Engineering Metric: %u\n", te_metric); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_ras(struct sbuf *buf, int indent, - struct te_subtlv_ras *tlv) -{ - sbuf_push(buf, indent, "Inter-AS TE Remote AS number: %" PRIu32 "\n", - ntohl(tlv->value)); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_rip(struct sbuf *buf, int indent, - struct te_subtlv_rip *tlv) -{ - sbuf_push(buf, indent, "Inter-AS TE Remote ASBR IP address: %s\n", - inet_ntoa(tlv->value)); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); + rc = 0; + return rc; } -static uint8_t print_subtlv_av_delay(struct sbuf *buf, int indent, - struct te_subtlv_av_delay *tlv) -{ - uint32_t delay; - uint32_t A; - - delay = (uint32_t)ntohl(tlv->value) & TE_EXT_MASK; - A = (uint32_t)ntohl(tlv->value) & TE_EXT_ANORMAL; - - sbuf_push(buf, indent, - "%s Average Link Delay: %" PRIu32 " (micro-sec)\n", - A ? "Anomalous" : "Normal", delay); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_mm_delay(struct sbuf *buf, int indent, - struct te_subtlv_mm_delay *tlv) -{ - uint32_t low, high; - uint32_t A; - - low = (uint32_t)ntohl(tlv->low) & TE_EXT_MASK; - A = (uint32_t)ntohl(tlv->low) & TE_EXT_ANORMAL; - high = (uint32_t)ntohl(tlv->high) & TE_EXT_MASK; - - sbuf_push(buf, indent, "%s Min/Max Link Delay: %" PRIu32 " / %" PRIu32 " (micro-sec)\n", - A ? "Anomalous" : "Normal", low, high); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_delay_var(struct sbuf *buf, int indent, - struct te_subtlv_delay_var *tlv) -{ - uint32_t jitter; - - jitter = (uint32_t)ntohl(tlv->value) & TE_EXT_MASK; - - sbuf_push(buf, indent, "Delay Variation: %" PRIu32 " (micro-sec)\n", - jitter); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_pkt_loss(struct sbuf *buf, int indent, - struct te_subtlv_pkt_loss *tlv) -{ - uint32_t loss; - uint32_t A; - float fval; - - loss = (uint32_t)ntohl(tlv->value) & TE_EXT_MASK; - fval = (float)(loss * LOSS_PRECISION); - A = (uint32_t)ntohl(tlv->value) & TE_EXT_ANORMAL; - - sbuf_push(buf, indent, "%s Link Packet Loss: %g (%%)\n", - A ? "Anomalous" : "Normal", fval); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_res_bw(struct sbuf *buf, int indent, - struct te_subtlv_res_bw *tlv) -{ - float fval; - - fval = ntohf(tlv->value); - - sbuf_push(buf, indent, - "Unidirectional Residual Bandwidth: %g (Bytes/sec)\n", fval); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_ava_bw(struct sbuf *buf, int indent, - struct te_subtlv_ava_bw *tlv) -{ - float fval; - - fval = ntohf(tlv->value); - - sbuf_push(buf, indent, - "Unidirectional Available Bandwidth: %g (Bytes/sec)\n", fval); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_subtlv_use_bw(struct sbuf *buf, int indent, - struct te_subtlv_use_bw *tlv) -{ - float fval; - - fval = ntohf(tlv->value); - - sbuf_push(buf, indent, - "Unidirectional Utilized Bandwidth: %g (Bytes/sec)\n", fval); - - return (SUBTLV_HDR_SIZE + SUBTLV_DEF_SIZE); -} - -static uint8_t print_unknown_tlv(struct sbuf *buf, int indent, - struct subtlv_header *tlvh) -{ - int i, rtn; - uint8_t *v = (uint8_t *)tlvh; - - if (tlvh->length != 0) { - sbuf_push(buf, indent, - "Unknown TLV: [type(%#.2x), length(%#.2x)]\n", - tlvh->type, tlvh->length); - sbuf_push(buf, indent + 2, "Dump: [00]"); - rtn = 1; /* initialize end of line counter */ - for (i = 0; i < tlvh->length; i++) { - sbuf_push(buf, 0, " %#.2x", v[i]); - if (rtn == 8) { - sbuf_push(buf, 0, "\n"); - sbuf_push(buf, indent + 8, "[%.2x]", i + 1); - rtn = 1; - } else - rtn++; - } - sbuf_push(buf, 0, "\n"); - } else { - sbuf_push(buf, indent, - "Unknown TLV: [type(%#.2x), length(%#.2x)]\n", - tlvh->type, tlvh->length); - } - - return SUBTLV_SIZE(tlvh); -} - -/* Main Show function */ -void mpls_te_print_detail(struct sbuf *buf, int indent, - uint8_t *subtlvs, uint8_t subtlv_len) -{ - struct subtlv_header *tlvh = (struct subtlv_header *)subtlvs; - uint16_t sum = 0; - - for (; sum < subtlv_len; - tlvh = (struct subtlv_header *)(subtlvs + sum)) { - if (subtlv_len - sum < SUBTLV_SIZE(tlvh)) { - sbuf_push(buf, indent, "Available data %" PRIu8 " is less than TLV size %u!\n", - subtlv_len - sum, SUBTLV_SIZE(tlvh)); - return; - } - - switch (tlvh->type) { - case TE_SUBTLV_ADMIN_GRP: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Administrative Group!\n"); - return; - } - sum += print_subtlv_admin_grp(buf, indent, - (struct te_subtlv_admin_grp *)tlvh); - break; - case TE_SUBTLV_LLRI: - if (tlvh->length != TE_SUBTLV_LLRI_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Link ID!\n"); - return; - } - sum += print_subtlv_llri(buf, indent, - (struct te_subtlv_llri *)tlvh); - break; - case TE_SUBTLV_LOCAL_IPADDR: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Local IP address!\n"); - return; - } - sum += print_subtlv_local_ipaddr(buf, indent, - (struct te_subtlv_local_ipaddr *)tlvh); - break; - case TE_SUBTLV_RMT_IPADDR: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Remote Interface address!\n"); - return; - } - sum += print_subtlv_rmt_ipaddr(buf, indent, - (struct te_subtlv_rmt_ipaddr *)tlvh); - break; - case TE_SUBTLV_MAX_BW: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Maximum Bandwidth!\n"); - return; - } - sum += print_subtlv_max_bw(buf, indent, - (struct te_subtlv_max_bw *)tlvh); - break; - case TE_SUBTLV_MAX_RSV_BW: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Maximum Reservable Bandwidth!\n"); - return; - } - sum += print_subtlv_max_rsv_bw(buf, indent, - (struct te_subtlv_max_rsv_bw *)tlvh); - break; - case TE_SUBTLV_UNRSV_BW: - if (tlvh->length != TE_SUBTLV_UNRSV_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Unreserved Bandwidth!\n"); - return; - } - sum += print_subtlv_unrsv_bw(buf, indent, - (struct te_subtlv_unrsv_bw *)tlvh); - break; - case TE_SUBTLV_TE_METRIC: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Traffic Engineering Metric!\n"); - return; - } - sum += print_subtlv_te_metric(buf, indent, - (struct te_subtlv_te_metric *)tlvh); - break; - case TE_SUBTLV_RAS: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Remote AS number!\n"); - return; - } - sum += print_subtlv_ras(buf, indent, - (struct te_subtlv_ras *)tlvh); - break; - case TE_SUBTLV_RIP: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Remote ASBR IP Address!\n"); - return; - } - sum += print_subtlv_rip(buf, indent, - (struct te_subtlv_rip *)tlvh); - break; - case TE_SUBTLV_AV_DELAY: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Average Link Delay!\n"); - return; - } - sum += print_subtlv_av_delay(buf, indent, - (struct te_subtlv_av_delay *)tlvh); - break; - case TE_SUBTLV_MM_DELAY: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Min/Max Link Delay!\n"); - return; - } - sum += print_subtlv_mm_delay(buf, indent, - (struct te_subtlv_mm_delay *)tlvh); - break; - case TE_SUBTLV_DELAY_VAR: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Delay Variation!\n"); - return; - } - sum += print_subtlv_delay_var(buf, indent, - (struct te_subtlv_delay_var *)tlvh); - break; - case TE_SUBTLV_PKT_LOSS: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Link Packet Loss!\n"); - return; - } - sum += print_subtlv_pkt_loss(buf, indent, - (struct te_subtlv_pkt_loss *)tlvh); - break; - case TE_SUBTLV_RES_BW: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Unidirectional Residual Bandwidth!\n"); - return; - } - sum += print_subtlv_res_bw(buf, indent, - (struct te_subtlv_res_bw *)tlvh); - break; - case TE_SUBTLV_AVA_BW: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Unidirectional Available Bandwidth!\n"); - return; - } - sum += print_subtlv_ava_bw(buf, indent, - (struct te_subtlv_ava_bw *)tlvh); - break; - case TE_SUBTLV_USE_BW: - if (tlvh->length != SUBTLV_DEF_SIZE) { - sbuf_push(buf, indent, "TLV size does not match expected size for Unidirectional Utilized Bandwidth!\n"); - return; - } - sum += print_subtlv_use_bw(buf, indent, - (struct te_subtlv_use_bw *)tlvh); - break; - default: - sum += print_unknown_tlv(buf, indent, tlvh); - break; - } - } - return; -} - -/*------------------------------------------------------------------------* - * Followings are vty command functions. - *------------------------------------------------------------------------*/ +/* Followings are vty command functions */ #ifndef FABRICD DEFUN (show_isis_mpls_te_router, @@ -1092,45 +338,104 @@ DEFUN (show_isis_mpls_te_router, return CMD_SUCCESS; } -static void show_mpls_te_sub(struct vty *vty, char *name, - struct mpls_te_circuit *mtc) +static void show_ext_sub(struct vty *vty, char *name, + struct isis_ext_subtlvs *ext) { struct sbuf buf; + char ibuf[PREFIX2STR_BUFFER]; sbuf_init(&buf, NULL, 0); - if (mtc->status != enable) + if (!ext || ext->status == EXT_DISABLE) return; vty_out(vty, "-- MPLS-TE link parameters for %s --\n", name); sbuf_reset(&buf); - print_subtlv_admin_grp(&buf, 4, &mtc->admin_grp); - - if (SUBTLV_TYPE(mtc->local_ipaddr) != 0) - print_subtlv_local_ipaddr(&buf, 4, &mtc->local_ipaddr); - if (SUBTLV_TYPE(mtc->rmt_ipaddr) != 0) - print_subtlv_rmt_ipaddr(&buf, 4, &mtc->rmt_ipaddr); - - print_subtlv_max_bw(&buf, 4, &mtc->max_bw); - print_subtlv_max_rsv_bw(&buf, 4, &mtc->max_rsv_bw); - print_subtlv_unrsv_bw(&buf, 4, &mtc->unrsv_bw); - print_subtlv_te_metric(&buf, 4, &mtc->te_metric); - - if (IS_INTER_AS(mtc->type)) { - if (SUBTLV_TYPE(mtc->ras) != 0) - print_subtlv_ras(&buf, 4, &mtc->ras); - if (SUBTLV_TYPE(mtc->rip) != 0) - print_subtlv_rip(&buf, 4, &mtc->rip); - } - print_subtlv_av_delay(&buf, 4, &mtc->av_delay); - print_subtlv_mm_delay(&buf, 4, &mtc->mm_delay); - print_subtlv_delay_var(&buf, 4, &mtc->delay_var); - print_subtlv_pkt_loss(&buf, 4, &mtc->pkt_loss); - print_subtlv_res_bw(&buf, 4, &mtc->res_bw); - print_subtlv_ava_bw(&buf, 4, &mtc->ava_bw); - print_subtlv_use_bw(&buf, 4, &mtc->use_bw); + if (IS_SUBTLV(ext, EXT_ADM_GRP)) + sbuf_push(&buf, 4, "Administrative Group: 0x%" PRIx32 "\n", + ext->adm_group); + if (IS_SUBTLV(ext, EXT_LLRI)) { + sbuf_push(&buf, 4, "Link Local ID: %" PRIu32 "\n", + ext->local_llri); + sbuf_push(&buf, 4, "Link Remote ID: %" PRIu32 "\n", + ext->remote_llri); + } + if (IS_SUBTLV(ext, EXT_LOCAL_ADDR)) + sbuf_push(&buf, 4, "Local Interface IP Address(es): %s\n", + inet_ntoa(ext->local_addr)); + if (IS_SUBTLV(ext, EXT_NEIGH_ADDR)) + sbuf_push(&buf, 4, "Remote Interface IP Address(es): %s\n", + inet_ntoa(ext->neigh_addr)); + if (IS_SUBTLV(ext, EXT_LOCAL_ADDR6)) + sbuf_push(&buf, 4, "Local Interface IPv6 Address(es): %s\n", + inet_ntop(AF_INET6, &ext->local_addr6, ibuf, + PREFIX2STR_BUFFER)); + if (IS_SUBTLV(ext, EXT_NEIGH_ADDR6)) + sbuf_push(&buf, 4, "Remote Interface IPv6 Address(es): %s\n", + inet_ntop(AF_INET6, &ext->local_addr6, ibuf, + PREFIX2STR_BUFFER)); + if (IS_SUBTLV(ext, EXT_MAX_BW)) + sbuf_push(&buf, 4, "Maximum Bandwidth: %g (Bytes/sec)\n", + ext->max_bw); + if (IS_SUBTLV(ext, EXT_MAX_RSV_BW)) + sbuf_push(&buf, 4, + "Maximum Reservable Bandwidth: %g (Bytes/sec)\n", + ext->max_rsv_bw); + if (IS_SUBTLV(ext, EXT_UNRSV_BW)) { + sbuf_push(&buf, 4, "Unreserved Bandwidth:\n"); + for (int j = 0; j < MAX_CLASS_TYPE; j += 2) { + sbuf_push(&buf, 4 + 2, + "[%d]: %g (Bytes/sec),\t[%d]: %g (Bytes/sec)\n", + j, ext->unrsv_bw[j], + j + 1, ext->unrsv_bw[j + 1]); + } + } + if (IS_SUBTLV(ext, EXT_TE_METRIC)) + sbuf_push(&buf, 4, "Traffic Engineering Metric: %u\n", + ext->te_metric); + if (IS_SUBTLV(ext, EXT_RMT_AS)) + sbuf_push(&buf, 4, + "Inter-AS TE Remote AS number: %" PRIu32 "\n", + ext->remote_as); + if (IS_SUBTLV(ext, EXT_RMT_IP)) + sbuf_push(&buf, 4, + "Inter-AS TE Remote ASBR IP address: %s\n", + inet_ntoa(ext->remote_ip)); + if (IS_SUBTLV(ext, EXT_DELAY)) + sbuf_push(&buf, 4, + "%s Average Link Delay: %" PRIu32 " (micro-sec)\n", + IS_ANORMAL(ext->delay) ? "Anomalous" : "Normal", + ext->delay); + if (IS_SUBTLV(ext, EXT_MM_DELAY)) { + sbuf_push(&buf, 4, "%s Min/Max Link Delay: %" PRIu32 " / %" + PRIu32 " (micro-sec)\n", + IS_ANORMAL(ext->min_delay) ? "Anomalous" : "Normal", + ext->min_delay & TE_EXT_MASK, + ext->max_delay & TE_EXT_MASK); + } + if (IS_SUBTLV(ext, EXT_DELAY_VAR)) + sbuf_push(&buf, 4, + "Delay Variation: %" PRIu32 " (micro-sec)\n", + ext->delay_var & TE_EXT_MASK); + if (IS_SUBTLV(ext, EXT_PKT_LOSS)) + sbuf_push(&buf, 4, "%s Link Packet Loss: %g (%%)\n", + IS_ANORMAL(ext->pkt_loss) ? "Anomalous" : "Normal", + (float)((ext->pkt_loss & TE_EXT_MASK) + * LOSS_PRECISION)); + if (IS_SUBTLV(ext, EXT_RES_BW)) + sbuf_push(&buf, 4, + "Unidirectional Residual Bandwidth: %g (Bytes/sec)\n", + ext->res_bw); + if (IS_SUBTLV(ext, EXT_AVA_BW)) + sbuf_push(&buf, 4, + "Unidirectional Available Bandwidth: %g (Bytes/sec)\n", + ext->ava_bw); + if (IS_SUBTLV(ext, EXT_USE_BW)) + sbuf_push(&buf, 4, + "Unidirectional Utilized Bandwidth: %g (Bytes/sec)\n", + ext->use_bw); vty_multiline(vty, "", "%s", sbuf_buf(&buf)); vty_out(vty, "---------------\n\n"); @@ -1170,8 +475,8 @@ DEFUN (show_isis_mpls_te_interface, for (ALL_LIST_ELEMENTS_RO(area->circuit_list, cnode, circuit)) - show_mpls_te_sub(vty, circuit->interface->name, - circuit->mtc); + show_ext_sub(vty, circuit->interface->name, + circuit->ext); } } else { /* Interface name is specified. */ @@ -1185,7 +490,7 @@ DEFUN (show_isis_mpls_te_interface, "ISIS is not enabled on circuit %s\n", ifp->name); else - show_mpls_te_sub(vty, ifp->name, circuit->mtc); + show_ext_sub(vty, ifp->name, circuit->ext); } } @@ -1197,6 +502,11 @@ DEFUN (show_isis_mpls_te_interface, void isis_mpls_te_init(void) { + /* Register Circuit and Adjacency hook */ + hook_register(isis_if_new_hook, isis_mpls_te_update); + hook_register(isis_adj_state_change_hook, isis_link_update_adj_hook); + + #ifndef FABRICD /* Register new VTY commands */ install_element(VIEW_NODE, &show_isis_mpls_te_router_cmd); diff --git a/isisd/isis_te.h b/isisd/isis_te.h index beb0c1836f..2a6911d500 100644 --- a/isisd/isis_te.h +++ b/isisd/isis_te.h @@ -3,8 +3,9 @@ * * This is an implementation of RFC5305, RFC 5307 and RFC 7810 * - * Copyright (C) 2014 Orange Labs - * http://www.orange.com + * Author: Olivier Dugeon + * + * Copyright (C) 2014 - 2019 Orange Labs http://www.orange.com * * This file is part of GNU Zebra. * @@ -50,10 +51,10 @@ * Remote AS number 24 RFC5316 * IPv4 Remote ASBR identifier 25 RFC5316 * + * NOTE: RFC5316 is not fully supported in this version + * only subTLVs decoding is provided */ -/* NOTE: RFC5316 is not yet supported in this version */ - /* Following define the type of TE link regarding the various RFC */ #define STD_TE 0x01 #define GMPLS 0x02 @@ -73,170 +74,9 @@ #define IS_INTER_AS_AS(x) (x & INTER_AS & FLOOD_AS) /* - * Following section defines subTLV (tag, length, value) structures, - * used for Traffic Engineering. + * Note (since release 7.2), subTLVs definition, serialization + * and de-serialization have mode to isis_tlvs.[c,h] */ -struct subtlv_header { - uint8_t type; /* sub_TLV_XXX type (see above) */ - uint8_t length; /* Value portion only, in byte */ -}; - -#define MAX_SUBTLV_SIZE 256 - -#define SUBTLV_HDR_SIZE 2 /* (sizeof (struct sub_tlv_header)) */ - -#define SUBTLV_SIZE(stlvh) (SUBTLV_HDR_SIZE + (stlvh)->length) - -#define SUBTLV_HDR_TOP(lsph) (struct subtlv_header *)((char *)(lsph) + ISIS_LSP_HEADER_SIZE) - -#define SUBTLV_HDR_NEXT(stlvh) (struct subtlv_header *)((char *)(stlvh) + SUBTLV_SIZE(stlvh)) - -#define SUBTLV_TYPE(stlvh) stlvh.header.type -#define SUBTLV_LEN(stlvh) stlvh.header.length -#define SUBTLV_VAL(stlvh) stlvh.value -#define SUBTLV_DATA(stlvh) stlvh + SUBTLV_HDR_SIZE - -#define SUBTLV_DEF_SIZE 4 - -/* Link Sub-TLV: Resource Class/Color - RFC 5305 */ -#define TE_SUBTLV_ADMIN_GRP 3 -struct te_subtlv_admin_grp { - struct subtlv_header header; /* Value length is 4 octets. */ - uint32_t value; /* Admin. group membership. */ -} __attribute__((__packed__)); - -/* Link Local/Remote Identifiers - RFC 5307 */ -#define TE_SUBTLV_LLRI 4 -#define TE_SUBTLV_LLRI_SIZE 8 -struct te_subtlv_llri { - struct subtlv_header header; /* Value length is 8 octets. */ - uint32_t local; /* Link Local Identifier */ - uint32_t remote; /* Link Remote Identifier */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Local Interface IP Address - RFC 5305 */ -#define TE_SUBTLV_LOCAL_IPADDR 6 -struct te_subtlv_local_ipaddr { - struct subtlv_header header; /* Value length is 4 x N octets. */ - struct in_addr value; /* Local IP address(es). */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Neighbor Interface IP Address - RFC 5305 */ -#define TE_SUBTLV_RMT_IPADDR 8 -struct te_subtlv_rmt_ipaddr { - struct subtlv_header header; /* Value length is 4 x N octets. */ - struct in_addr value; /* Neighbor's IP address(es). */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Maximum Bandwidth - RFC 5305 */ -#define TE_SUBTLV_MAX_BW 9 -struct te_subtlv_max_bw { - struct subtlv_header header; /* Value length is 4 octets. */ - float value; /* bytes/sec */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Maximum Reservable Bandwidth - RFC 5305 */ -#define TE_SUBTLV_MAX_RSV_BW 10 -struct te_subtlv_max_rsv_bw { - struct subtlv_header header; /* Value length is 4 octets. */ - float value; /* bytes/sec */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Unreserved Bandwidth - RFC 5305 */ -#define TE_SUBTLV_UNRSV_BW 11 -#define TE_SUBTLV_UNRSV_SIZE 32 -struct te_subtlv_unrsv_bw { - struct subtlv_header header; /* Value length is 32 octets. */ - float value[8]; /* One for each priority level. */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Traffic Engineering Metric - RFC 5305 */ -#define TE_SUBTLV_TE_METRIC 18 -#define TE_SUBTLV_TE_METRIC_SIZE 3 -struct te_subtlv_te_metric { - struct subtlv_header header; /* Value length is 4 octets. */ - uint8_t value[3]; /* Link metric for TE purpose. */ -} __attribute__((__packed__)); - -/* Remote AS Number sub-TLV - RFC5316 */ -#define TE_SUBTLV_RAS 24 -struct te_subtlv_ras { - struct subtlv_header header; /* Value length is 4 octets. */ - uint32_t value; /* Remote AS number */ -} __attribute__((__packed__)); - -/* IPv4 Remote ASBR ID Sub-TLV - RFC5316 */ -#define TE_SUBTLV_RIP 25 -struct te_subtlv_rip { - struct subtlv_header header; /* Value length is 4 octets. */ - struct in_addr value; /* Remote ASBR IP address */ -} __attribute__((__packed__)); - - -/* TE Metric Extensions - RFC 7810 */ -/* Link Sub-TLV: Average Link Delay */ -#define TE_SUBTLV_AV_DELAY 33 -struct te_subtlv_av_delay { - struct subtlv_header header; /* Value length is 4 bytes. */ - uint32_t value; /* Average delay in micro-seconds only 24 bits => 0 ... - 16777215 - with Anomalous Bit (A) as Upper most bit */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Low/High Link Delay */ -#define TE_SUBTLV_MM_DELAY 34 -#define TE_SUBTLV_MM_DELAY_SIZE 8 -struct te_subtlv_mm_delay { - struct subtlv_header header; /* Value length is 8 bytes. */ - uint32_t low; /* low delay in micro-seconds only 24 bits => 0 ... - 16777215 - with Anomalous Bit (A) as Upper most bit */ - uint32_t high; /* high delay in micro-seconds only 24 bits => 0 ... - 16777215 */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Link Delay Variation i.e. Jitter */ -#define TE_SUBTLV_DELAY_VAR 35 -struct te_subtlv_delay_var { - struct subtlv_header header; /* Value length is 4 bytes. */ - uint32_t value; /* interval in micro-seconds only 24 bits => 0 ... - 16777215 */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Routine Unidirectional Link Packet Loss */ -#define TE_SUBTLV_PKT_LOSS 36 -struct te_subtlv_pkt_loss { - struct subtlv_header header; /* Value length is 4 bytes. */ - uint32_t - value; /* in percentage of total traffic only 24 bits (2^24 - 2) - with Anomalous Bit (A) as Upper most bit */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Unidirectional Residual Bandwidth */ /* Optional */ -#define TE_SUBTLV_RES_BW 37 -struct te_subtlv_res_bw { - struct subtlv_header header; /* Value length is 4 bytes. */ - float value; /* bandwidth in IEEE floating point format with units in - bytes per second */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Unidirectional Available Bandwidth */ /* Optional */ -#define TE_SUBTLV_AVA_BW 38 -struct te_subtlv_ava_bw { - struct subtlv_header header; /* Value length is 4 octets. */ - float value; /* bandwidth in IEEE floating point format with units in - bytes per second */ -} __attribute__((__packed__)); - -/* Link Sub-TLV: Unidirectional Utilized Bandwidth */ /* Optional */ -#define TE_SUBTLV_USE_BW 39 -struct te_subtlv_use_bw { - struct subtlv_header header; /* Value length is 4 octets. */ - float value; /* bandwidth in IEEE floating point format with units in - bytes per second */ -} __attribute__((__packed__)); - -#define TE_SUBTLV_MAX 40 /* Last SUBTLV + 1 */ /* Following declaration concerns the MPLS-TE and LINk-TE management */ typedef enum _status_t { disable, enable, learn } status_t; @@ -244,7 +84,10 @@ typedef enum _status_t { disable, enable, learn } status_t; /* Mode for Inter-AS LSP */ /* TODO: Check how if LSP is flooded in RFC5316 */ typedef enum _interas_mode_t { off, region, as, emulate } interas_mode_t; -#define IS_MPLS_TE(m) (m && m->status == enable) +#define IS_EXT_TE(e) (e && e->status != 0 \ + && e->status != EXT_ADJ_SID \ + && e->status != EXT_LAN_ADJ_SID) +#define IS_MPLS_TE(a) (a && a->status == enable) /* Per area MPLS-TE parameters */ struct mpls_te_area { @@ -262,56 +105,9 @@ struct mpls_te_area { struct in_addr router_id; }; -/* Per Circuit MPLS-TE parameters */ -struct mpls_te_circuit { - - /* Status of MPLS-TE on this interface */ - status_t status; - - /* Type of MPLS-TE circuit: STD_TE(RFC5305), INTER_AS(RFC5316), - * INTER_AS_EMU(RFC5316 emulated) */ - uint8_t type; - - /* Total size of sub_tlvs */ - uint8_t length; - - /* Store subTLV in network byte order. */ - /* RFC5305 */ - struct te_subtlv_admin_grp admin_grp; - /* RFC5307 */ - struct te_subtlv_llri llri; - /* RFC5305 */ - struct te_subtlv_local_ipaddr local_ipaddr; - struct te_subtlv_rmt_ipaddr rmt_ipaddr; - struct te_subtlv_max_bw max_bw; - struct te_subtlv_max_rsv_bw max_rsv_bw; - struct te_subtlv_unrsv_bw unrsv_bw; - struct te_subtlv_te_metric te_metric; - /* RFC5316 */ - struct te_subtlv_ras ras; - struct te_subtlv_rip rip; - /* RFC7810 */ - struct te_subtlv_av_delay av_delay; - struct te_subtlv_mm_delay mm_delay; - struct te_subtlv_delay_var delay_var; - struct te_subtlv_pkt_loss pkt_loss; - struct te_subtlv_res_bw res_bw; - struct te_subtlv_ava_bw ava_bw; - struct te_subtlv_use_bw use_bw; -}; - /* Prototypes. */ void isis_mpls_te_init(void); -struct mpls_te_circuit *mpls_te_circuit_new(void); -struct sbuf; -void mpls_te_print_detail(struct sbuf *buf, int indent, uint8_t *subtlvs, - uint8_t subtlv_len); -void set_circuitparams_local_ipaddr(struct mpls_te_circuit *, struct in_addr); -void set_circuitparams_rmt_ipaddr(struct mpls_te_circuit *, struct in_addr); -uint8_t subtlvs_len(struct mpls_te_circuit *); -uint8_t add_te_subtlvs(uint8_t *, struct mpls_te_circuit *); -uint8_t build_te_subtlvs(uint8_t *, struct isis_circuit *); void isis_link_params_update(struct isis_circuit *, struct interface *); -void isis_mpls_te_update(struct interface *); +int isis_mpls_te_update(struct interface *); #endif /* _ZEBRA_ISIS_MPLS_TE_H */ diff --git a/isisd/isis_tlvs.c b/isisd/isis_tlvs.c index bdf00b64cc..442442152c 100644 --- a/isisd/isis_tlvs.c +++ b/isisd/isis_tlvs.c @@ -3,6 +3,8 @@ * * Copyright (C) 2015,2017 Christian Franke * + * Copyright (C) 2019 Olivier Dugeon - Orange Labs (for TE and SR) + * * This file is part of FRR. * * FRR is free software; you can redistribute it and/or modify it @@ -28,6 +30,7 @@ #include "memory.h" #include "stream.h" #include "sbuf.h" +#include "network.h" #include "isisd/isisd.h" #include "isisd/isis_memory.h" @@ -98,7 +101,8 @@ static struct pack_order_entry pack_order[] = { PACK_ENTRY(EXTENDED_IP_REACH, ISIS_ITEMS, extended_ip_reach), PACK_ENTRY(MT_IP_REACH, ISIS_MT_ITEMS, mt_ip_reach), PACK_ENTRY(IPV6_REACH, ISIS_ITEMS, ipv6_reach), - PACK_ENTRY(MT_IPV6_REACH, ISIS_MT_ITEMS, mt_ipv6_reach)}; + PACK_ENTRY(MT_IPV6_REACH, ISIS_MT_ITEMS, mt_ipv6_reach) +}; /* This is a forward definition. The table is actually initialized * in at the bottom. */ @@ -108,9 +112,683 @@ static const struct tlv_ops *tlv_table[ISIS_CONTEXT_MAX][ISIS_TLV_MAX]; /* Prototypes */ static void append_item(struct isis_item_list *dest, struct isis_item *item); +static void init_item_list(struct isis_item_list *items); -/* Functions for Sub-TLV 3 SR Prefix-SID */ +/* Functions for Extended IS Reachability SubTLVs a.k.a Traffic Engineering */ +struct isis_ext_subtlvs *isis_alloc_ext_subtlvs(void) +{ + struct isis_ext_subtlvs *ext; + + ext = XCALLOC(MTYPE_ISIS_SUBTLV, sizeof(struct isis_ext_subtlvs)); + init_item_list(&ext->adj_sid); + init_item_list(&ext->lan_sid); + + return ext; +} + +/* + * mtid parameter is used to determine if Adjacency is related to IPv4 or IPv6. + * A negative value could be used to skip copy of Adjacency SID. + */ +static struct isis_ext_subtlvs * +copy_item_ext_subtlvs(struct isis_ext_subtlvs *exts, int16_t mtid) +{ + struct isis_ext_subtlvs *rv = XCALLOC(MTYPE_ISIS_SUBTLV, sizeof(*rv)); + struct isis_adj_sid *adj; + struct isis_lan_adj_sid *lan; + + memcpy(rv, exts, sizeof(struct isis_ext_subtlvs)); + init_item_list(&rv->adj_sid); + init_item_list(&rv->lan_sid); + + UNSET_SUBTLV(rv, EXT_ADJ_SID); + UNSET_SUBTLV(rv, EXT_LAN_ADJ_SID); + + /* Copy Adj SID and LAN Adj SID list for IPv4 if needed */ + for (adj = (struct isis_adj_sid *)exts->adj_sid.head; adj != NULL; + adj = adj->next) { + if ((mtid != -1) + && (((mtid == ISIS_MT_IPV4_UNICAST) + && (adj->family != AF_INET)) + || ((mtid == ISIS_MT_IPV6_UNICAST) + && (adj->family != AF_INET6)))) + continue; + + struct isis_adj_sid *new; + + new = XCALLOC(MTYPE_ISIS_SUBTLV, sizeof(struct isis_adj_sid)); + new->family = adj->family; + new->flags = adj->flags; + new->weight = adj->weight; + new->sid = adj->sid; + append_item(&rv->adj_sid, (struct isis_item *)new); + SET_SUBTLV(rv, EXT_ADJ_SID); + } + for (lan = (struct isis_lan_adj_sid *)exts->lan_sid.head; lan != NULL; + lan = lan->next) { + if ((mtid != -1) + && (((mtid == ISIS_MT_IPV4_UNICAST) + && (lan->family != AF_INET)) + || ((mtid == ISIS_MT_IPV6_UNICAST) + && (lan->family != AF_INET6)))) + continue; + + struct isis_lan_adj_sid *new; + + new = XCALLOC(MTYPE_ISIS_SUBTLV, sizeof(struct isis_lan_adj_sid)); + new->family = lan->family; + new->flags = lan->flags; + new->weight = lan->weight; + memcpy(new->neighbor_id, lan->neighbor_id, 6); + new->sid = lan->sid; + append_item(&rv->lan_sid, (struct isis_item *)new); + SET_SUBTLV(rv, EXT_LAN_ADJ_SID); + } + + return rv; +} + +/* mtid parameter is used to manage multi-topology i.e. IPv4 / IPv6 */ +static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts, + struct sbuf *buf, int indent, + uint16_t mtid) +{ + + char ibuf[PREFIX2STR_BUFFER]; + + /* Standard metrics */ + if (IS_SUBTLV(exts, EXT_ADM_GRP)) + sbuf_push(buf, indent, "Administrative Group: 0x%" PRIx32 "\n", + exts->adm_group); + if (IS_SUBTLV(exts, EXT_LLRI)) { + sbuf_push(buf, indent, "Link Local ID: %" PRIu32 "\n", + exts->local_llri); + sbuf_push(buf, indent, "Link Remote ID: %" PRIu32 "\n", + exts->remote_llri); + } + if (IS_SUBTLV(exts, EXT_LOCAL_ADDR)) + sbuf_push(buf, indent, "Local Interface IP Address(es): %s\n", + inet_ntoa(exts->local_addr)); + if (IS_SUBTLV(exts, EXT_NEIGH_ADDR)) + sbuf_push(buf, indent, "Remote Interface IP Address(es): %s\n", + inet_ntoa(exts->neigh_addr)); + if (IS_SUBTLV(exts, EXT_LOCAL_ADDR6)) + sbuf_push(buf, indent, "Local Interface IPv6 Address(es): %s\n", + inet_ntop(AF_INET6, &exts->local_addr6, ibuf, + PREFIX2STR_BUFFER)); + if (IS_SUBTLV(exts, EXT_NEIGH_ADDR6)) + sbuf_push(buf, indent, "Remote Interface IPv6 Address(es): %s\n", + inet_ntop(AF_INET6, &exts->local_addr6, ibuf, + PREFIX2STR_BUFFER)); + if (IS_SUBTLV(exts, EXT_MAX_BW)) + sbuf_push(buf, indent, "Maximum Bandwidth: %g (Bytes/sec)\n", + exts->max_bw); + if (IS_SUBTLV(exts, EXT_MAX_RSV_BW)) + sbuf_push(buf, indent, + "Maximum Reservable Bandwidth: %g (Bytes/sec)\n", + exts->max_rsv_bw); + if (IS_SUBTLV(exts, EXT_UNRSV_BW)) { + sbuf_push(buf, indent, "Unreserved Bandwidth:\n"); + for (int j = 0; j < MAX_CLASS_TYPE; j += 2) { + sbuf_push(buf, indent + 2, + "[%d]: %g (Bytes/sec),\t[%d]: %g (Bytes/sec)\n", + j, exts->unrsv_bw[j], + j + 1, exts->unrsv_bw[j + 1]); + } + } + if (IS_SUBTLV(exts, EXT_TE_METRIC)) + sbuf_push(buf, indent, "Traffic Engineering Metric: %u\n", + exts->te_metric); + if (IS_SUBTLV(exts, EXT_RMT_AS)) + sbuf_push(buf, indent, + "Inter-AS TE Remote AS number: %" PRIu32 "\n", + exts->remote_as); + if (IS_SUBTLV(exts, EXT_RMT_IP)) + sbuf_push(buf, indent, + "Inter-AS TE Remote ASBR IP address: %s\n", + inet_ntoa(exts->remote_ip)); + /* Extended metrics */ + if (IS_SUBTLV(exts, EXT_DELAY)) + sbuf_push(buf, indent, + "%s Average Link Delay: %" PRIu32 " (micro-sec)\n", + IS_ANORMAL(exts->delay) ? "Anomalous" : "Normal", + exts->delay); + if (IS_SUBTLV(exts, EXT_MM_DELAY)) { + sbuf_push(buf, indent, "%s Min/Max Link Delay: %" PRIu32 " / %" + PRIu32 " (micro-sec)\n", + IS_ANORMAL(exts->min_delay) ? "Anomalous" : "Normal", + exts->min_delay & TE_EXT_MASK, + exts->max_delay & TE_EXT_MASK); + } + if (IS_SUBTLV(exts, EXT_DELAY_VAR)) { + sbuf_push(buf, indent, + "Delay Variation: %" PRIu32 " (micro-sec)\n", + exts->delay_var & TE_EXT_MASK); + } + if (IS_SUBTLV(exts, EXT_PKT_LOSS)) + sbuf_push(buf, indent, "%s Link Packet Loss: %g (%%)\n", + IS_ANORMAL(exts->pkt_loss) ? "Anomalous" : "Normal", + (float)((exts->pkt_loss & TE_EXT_MASK) + * LOSS_PRECISION)); + if (IS_SUBTLV(exts, EXT_RES_BW)) + sbuf_push(buf, indent, + "Unidir. Residual Bandwidth: %g (Bytes/sec)\n", + exts->res_bw); + if (IS_SUBTLV(exts, EXT_AVA_BW)) + sbuf_push(buf, indent, + "Unidir. Available Bandwidth: %g (Bytes/sec)\n", + exts->ava_bw); + if (IS_SUBTLV(exts, EXT_USE_BW)) + sbuf_push(buf, indent, + "Unidir. Utilized Bandwidth: %g (Bytes/sec)\n", + exts->use_bw); + /* Segment Routing Adjacency */ + if (IS_SUBTLV(exts, EXT_ADJ_SID)) { + struct isis_adj_sid *adj; + + for (adj = (struct isis_adj_sid *)exts->adj_sid.head; adj; + adj = adj->next) { + if (((mtid == ISIS_MT_IPV4_UNICAST) + && (adj->family != AF_INET)) + || ((mtid == ISIS_MT_IPV6_UNICAST) + && (adj->family != AF_INET6))) + continue; + sbuf_push( + buf, indent, + "Adjacency-SID: %" PRIu32 ", Weight: %" PRIu8 + ", Flags: F:%c B:%c, V:%c, L:%c, S:%c, P:%c\n", + adj->sid, adj->weight, + adj->flags & EXT_SUBTLV_LINK_ADJ_SID_FFLG ? '1' + : '0', + adj->flags & EXT_SUBTLV_LINK_ADJ_SID_BFLG ? '1' + : '0', + adj->flags & EXT_SUBTLV_LINK_ADJ_SID_VFLG ? '1' + : '0', + adj->flags & EXT_SUBTLV_LINK_ADJ_SID_LFLG ? '1' + : '0', + adj->flags & EXT_SUBTLV_LINK_ADJ_SID_SFLG ? '1' + : '0', + adj->flags & EXT_SUBTLV_LINK_ADJ_SID_PFLG + ? '1' + : '0'); + } + } + if (IS_SUBTLV(exts, EXT_LAN_ADJ_SID)) { + struct isis_lan_adj_sid *lan; + + for (lan = (struct isis_lan_adj_sid *)exts->lan_sid.head; + lan; lan = lan->next) { + if (((mtid == ISIS_MT_IPV4_UNICAST) + && (lan->family != AF_INET)) + || ((mtid == ISIS_MT_IPV6_UNICAST) + && (lan->family != AF_INET6))) + continue; + sbuf_push(buf, indent, + "Lan-Adjacency-SID: %" PRIu32 + ", Weight: %" PRIu8 + ", Flags: F:%c B:%c, V:%c, L:%c, S:%c, P:%c\n" + " Neighbor-ID: %s\n", + lan->sid, lan->weight, + lan->flags & EXT_SUBTLV_LINK_ADJ_SID_FFLG + ? '1' + : '0', + lan->flags & EXT_SUBTLV_LINK_ADJ_SID_BFLG + ? '1' + : '0', + lan->flags & EXT_SUBTLV_LINK_ADJ_SID_VFLG + ? '1' + : '0', + lan->flags & EXT_SUBTLV_LINK_ADJ_SID_LFLG + ? '1' + : '0', + lan->flags & EXT_SUBTLV_LINK_ADJ_SID_SFLG + ? '1' + : '0', + lan->flags & EXT_SUBTLV_LINK_ADJ_SID_PFLG + ? '1' + : '0', + isis_format_id(lan->neighbor_id, 6)); + } + } +} + +static void free_item_ext_subtlvs(struct isis_ext_subtlvs *exts) +{ + struct isis_item *item, *next_item; + + /* First, free Adj SID and LAN Adj SID list if needed */ + for (item = exts->adj_sid.head; item; item = next_item) { + next_item = item->next; + XFREE(MTYPE_ISIS_SUBTLV, item); + } + for (item = exts->lan_sid.head; item; item = next_item) { + next_item = item->next; + XFREE(MTYPE_ISIS_SUBTLV, item); + } + XFREE(MTYPE_ISIS_SUBTLV, exts); +} + +static int pack_item_ext_subtlvs(struct isis_ext_subtlvs *exts, + struct stream *s) +{ + uint8_t size; + + if (STREAM_WRITEABLE(s) < ISIS_SUBTLV_MAX_SIZE) + return 1; + + if (IS_SUBTLV(exts, EXT_ADM_GRP)) { + stream_putc(s, ISIS_SUBTLV_ADMIN_GRP); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_putl(s, exts->adm_group); + } + if (IS_SUBTLV(exts, EXT_LLRI)) { + stream_putc(s, ISIS_SUBTLV_LLRI); + stream_putc(s, ISIS_SUBTLV_LLRI_SIZE); + stream_putl(s, exts->local_llri); + stream_putl(s, exts->remote_llri); + } + if (IS_SUBTLV(exts, EXT_LOCAL_ADDR)) { + stream_putc(s, ISIS_SUBTLV_LOCAL_IPADDR); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_put(s, &exts->local_addr.s_addr, 4); + } + if (IS_SUBTLV(exts, EXT_NEIGH_ADDR)) { + stream_putc(s, ISIS_SUBTLV_RMT_IPADDR); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_put(s, &exts->neigh_addr.s_addr, 4); + } + if (IS_SUBTLV(exts, EXT_LOCAL_ADDR6)) { + stream_putc(s, ISIS_SUBTLV_LOCAL_IPADDR6); + stream_putc(s, ISIS_SUBTLV_IPV6_ADDR_SIZE); + stream_put(s, &exts->local_addr6, 16); + } + if (IS_SUBTLV(exts, EXT_NEIGH_ADDR6)) { + stream_putc(s, ISIS_SUBTLV_RMT_IPADDR6); + stream_putc(s, ISIS_SUBTLV_IPV6_ADDR_SIZE); + stream_put(s, &exts->neigh_addr6, 16); + } + if (IS_SUBTLV(exts, EXT_MAX_BW)) { + stream_putc(s, ISIS_SUBTLV_MAX_BW); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_putf(s, exts->max_bw); + } + if (IS_SUBTLV(exts, EXT_MAX_RSV_BW)) { + stream_putc(s, ISIS_SUBTLV_MAX_RSV_BW); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_putf(s, exts->max_rsv_bw); + } + if (IS_SUBTLV(exts, EXT_UNRSV_BW)) { + stream_putc(s, ISIS_SUBTLV_UNRSV_BW); + stream_putc(s, ISIS_SUBTLV_UNRSV_BW_SIZE); + for (int j = 0; j < MAX_CLASS_TYPE; j++) + stream_putf(s, exts->unrsv_bw[j]); + } + if (IS_SUBTLV(exts, EXT_TE_METRIC)) { + stream_putc(s, ISIS_SUBTLV_TE_METRIC); + stream_putc(s, ISIS_SUBTLV_TE_METRIC_SIZE); + stream_put3(s, exts->te_metric); + } + if (IS_SUBTLV(exts, EXT_RMT_AS)) { + stream_putc(s, ISIS_SUBTLV_RAS); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_putl(s, exts->remote_as); + } + if (IS_SUBTLV(exts, EXT_RMT_IP)) { + stream_putc(s, ISIS_SUBTLV_RIP); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_put(s, &exts->remote_ip.s_addr, 4); + } + if (IS_SUBTLV(exts, EXT_DELAY)) { + stream_putc(s, ISIS_SUBTLV_AV_DELAY); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_putl(s, exts->delay); + } + if (IS_SUBTLV(exts, EXT_MM_DELAY)) { + stream_putc(s, ISIS_SUBTLV_MM_DELAY); + stream_putc(s, ISIS_SUBTLV_MM_DELAY_SIZE); + stream_putl(s, exts->min_delay); + stream_putl(s, exts->max_delay); + } + if (IS_SUBTLV(exts, EXT_DELAY_VAR)) { + stream_putc(s, ISIS_SUBTLV_DELAY_VAR); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_putl(s, exts->delay_var); + } + if (IS_SUBTLV(exts, EXT_PKT_LOSS)) { + stream_putc(s, ISIS_SUBTLV_PKT_LOSS); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_putl(s, exts->pkt_loss); + } + if (IS_SUBTLV(exts, EXT_RES_BW)) { + stream_putc(s, ISIS_SUBTLV_RES_BW); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_putf(s, exts->res_bw); + } + if (IS_SUBTLV(exts, EXT_AVA_BW)) { + stream_putc(s, ISIS_SUBTLV_AVA_BW); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_putf(s, exts->ava_bw); + } + if (IS_SUBTLV(exts, EXT_USE_BW)) { + stream_putc(s, ISIS_SUBTLV_USE_BW); + stream_putc(s, ISIS_SUBTLV_DEF_SIZE); + stream_putf(s, exts->use_bw); + } + if (IS_SUBTLV(exts, EXT_ADJ_SID)) { + struct isis_adj_sid *adj; + + for (adj = (struct isis_adj_sid *)exts->adj_sid.head; adj; + adj = adj->next) { + stream_putc(s, ISIS_SUBTLV_ADJ_SID); + size = ISIS_SUBTLV_ADJ_SID_SIZE; + if (!(adj->flags & EXT_SUBTLV_LINK_ADJ_SID_VFLG)) + size++; + stream_putc(s, size); + stream_putc(s, adj->flags); + stream_putc(s, adj->weight); + if (adj->flags & EXT_SUBTLV_LINK_ADJ_SID_VFLG) + stream_put3(s, adj->sid); + else + stream_putl(s, adj->sid); + + } + } + if (IS_SUBTLV(exts, EXT_LAN_ADJ_SID)) { + struct isis_lan_adj_sid *lan; + + for (lan = (struct isis_lan_adj_sid *)exts->lan_sid.head; lan; + lan = lan->next) { + stream_putc(s, ISIS_SUBTLV_LAN_ADJ_SID); + size = ISIS_SUBTLV_LAN_ADJ_SID_SIZE; + if (!(lan->flags & EXT_SUBTLV_LINK_ADJ_SID_VFLG)) + size++; + stream_putc(s, size); + stream_putc(s, lan->flags); + stream_putc(s, lan->weight); + stream_put(s, lan->neighbor_id, 6); + if (lan->flags & EXT_SUBTLV_LINK_ADJ_SID_VFLG) + stream_put3(s, lan->sid); + else + stream_putl(s, lan->sid); + } + } + + return 0; +} + +static int unpack_item_ext_subtlvs(uint16_t mtid, uint8_t len, struct stream *s, + struct sbuf *log, void *dest, int indent) +{ + uint8_t sum = 0; + uint8_t subtlv_type; + uint8_t subtlv_len; + + struct isis_extended_reach *rv = dest; + struct isis_ext_subtlvs *exts = isis_alloc_ext_subtlvs(); + + rv->subtlvs = exts; + + /* + * Parse subTLVs until reach subTLV length + * Check that it remains at least 2 bytes: subTLV Type & Length + */ + while (len > sum + 2) { + /* Read SubTLV Type and Length */ + subtlv_type = stream_getc(s); + subtlv_len = stream_getc(s); + if (subtlv_len > len - sum) { + sbuf_push(log, indent, "TLV %" PRIu8 ": Available data %" PRIu8 " is less than TLV size %u !\n", + subtlv_type, len - sum, subtlv_len); + return 1; + } + + switch (subtlv_type) { + /* Standard Metric as defined in RFC5305 */ + case ISIS_SUBTLV_ADMIN_GRP: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Administrative Group!\n"); + } else { + exts->adm_group = stream_getl(s); + SET_SUBTLV(exts, EXT_ADM_GRP); + } + break; + case ISIS_SUBTLV_LLRI: + if (subtlv_len != ISIS_SUBTLV_LLRI_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Link ID!\n"); + } else { + exts->local_llri = stream_getl(s); + exts->remote_llri = stream_getl(s); + SET_SUBTLV(exts, EXT_LLRI); + } + break; + case ISIS_SUBTLV_LOCAL_IPADDR: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Local IP address!\n"); + } else { + stream_get(&exts->local_addr.s_addr, s, 4); + SET_SUBTLV(exts, EXT_LOCAL_ADDR); + } + break; + case ISIS_SUBTLV_RMT_IPADDR: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Remote IP address!\n"); + } else { + stream_get(&exts->neigh_addr.s_addr, s, 4); + SET_SUBTLV(exts, EXT_NEIGH_ADDR); + } + break; + case ISIS_SUBTLV_LOCAL_IPADDR6: + if (subtlv_len != ISIS_SUBTLV_IPV6_ADDR_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Local IPv6 address!\n"); + } else { + stream_get(&exts->local_addr6, s, 16); + SET_SUBTLV(exts, EXT_LOCAL_ADDR6); + } + break; + case ISIS_SUBTLV_RMT_IPADDR6: + if (subtlv_len != ISIS_SUBTLV_IPV6_ADDR_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Remote IPv6 address!\n"); + } else { + stream_get(&exts->neigh_addr6, s, 16); + SET_SUBTLV(exts, EXT_NEIGH_ADDR6); + } + break; + case ISIS_SUBTLV_MAX_BW: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Maximum Bandwidth!\n"); + } else { + exts->max_bw = stream_getf(s); + SET_SUBTLV(exts, EXT_MAX_BW); + } + break; + case ISIS_SUBTLV_MAX_RSV_BW: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Maximum Reservable Bandwidth!\n"); + } else { + exts->max_rsv_bw = stream_getf(s); + SET_SUBTLV(exts, EXT_MAX_RSV_BW); + } + break; + case ISIS_SUBTLV_UNRSV_BW: + if (subtlv_len != ISIS_SUBTLV_UNRSV_BW_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Unreserved Bandwidth!\n"); + } else { + for (int i = 0; i < MAX_CLASS_TYPE; i++) + exts->unrsv_bw[i] = stream_getf(s); + SET_SUBTLV(exts, EXT_UNRSV_BW); + } + break; + case ISIS_SUBTLV_TE_METRIC: + if (subtlv_len != ISIS_SUBTLV_TE_METRIC_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Traffic Engineering Metric!\n"); + } else { + exts->te_metric = stream_get3(s); + SET_SUBTLV(exts, EXT_TE_METRIC); + } + break; + case ISIS_SUBTLV_RAS: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Remote AS number!\n"); + } else { + exts->remote_as = stream_getl(s); + SET_SUBTLV(exts, EXT_RMT_AS); + } + break; + case ISIS_SUBTLV_RIP: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Remote ASBR IP Address!\n"); + } else { + stream_get(&exts->remote_ip.s_addr, s, 4); + SET_SUBTLV(exts, EXT_RMT_IP); + } + break; + /* Extended Metrics as defined in RFC 7810 */ + case ISIS_SUBTLV_AV_DELAY: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Average Link Delay!\n"); + } else { + exts->delay = stream_getl(s); + SET_SUBTLV(exts, EXT_DELAY); + } + break; + case ISIS_SUBTLV_MM_DELAY: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Min/Max Link Delay!\n"); + } else { + exts->min_delay = stream_getl(s); + exts->max_delay = stream_getl(s); + SET_SUBTLV(exts, EXT_MM_DELAY); + } + break; + case ISIS_SUBTLV_DELAY_VAR: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Delay Variation!\n"); + } else { + exts->delay_var = stream_getl(s); + SET_SUBTLV(exts, EXT_DELAY_VAR); + } + break; + case ISIS_SUBTLV_PKT_LOSS: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Link Packet Loss!\n"); + } else { + exts->pkt_loss = stream_getl(s); + SET_SUBTLV(exts, EXT_PKT_LOSS); + } + break; + case ISIS_SUBTLV_RES_BW: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Unidirectional Residual Bandwidth!\n"); + } else { + exts->res_bw = stream_getf(s); + SET_SUBTLV(exts, EXT_RES_BW); + } + break; + case ISIS_SUBTLV_AVA_BW: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Unidirectional Available Bandwidth!\n"); + } else { + exts->ava_bw = stream_getf(s); + SET_SUBTLV(exts, EXT_AVA_BW); + } + break; + case ISIS_SUBTLV_USE_BW: + if (subtlv_len != ISIS_SUBTLV_DEF_SIZE) { + sbuf_push(log, indent, + "TLV size does not match expected size for Unidirectional Utilized Bandwidth!\n"); + } else { + exts->use_bw = stream_getf(s); + SET_SUBTLV(exts, EXT_USE_BW); + } + break; + /* Segment Routing Adjacency */ + case ISIS_SUBTLV_ADJ_SID: + if (subtlv_len != ISIS_SUBTLV_ADJ_SID_SIZE + && subtlv_len != ISIS_SUBTLV_ADJ_SID_SIZE + 1) { + sbuf_push(log, indent, + "TLV size does not match expected size for Adjacency SID!\n"); + } else { + struct isis_adj_sid *adj; + + adj = XCALLOC(MTYPE_ISIS_SUBTLV, + sizeof(struct isis_adj_sid)); + adj->flags = stream_getc(s); + adj->weight = stream_getc(s); + if (adj->flags & EXT_SUBTLV_LINK_ADJ_SID_VFLG) { + adj->sid = stream_get3(s); + adj->sid &= MPLS_LABEL_VALUE_MASK; + } else { + adj->sid = stream_getl(s); + } + if (mtid == ISIS_MT_IPV4_UNICAST) + adj->family = AF_INET; + if (mtid == ISIS_MT_IPV6_UNICAST) + adj->family = AF_INET6; + append_item(&exts->adj_sid, + (struct isis_item *)adj); + SET_SUBTLV(exts, EXT_ADJ_SID); + } + break; + case ISIS_SUBTLV_LAN_ADJ_SID: + if (subtlv_len != ISIS_SUBTLV_LAN_ADJ_SID_SIZE + && subtlv_len != ISIS_SUBTLV_LAN_ADJ_SID_SIZE + 1) { + sbuf_push(log, indent, + "TLV size does not match expected size for LAN-Adjacency SID!\n"); + } else { + struct isis_lan_adj_sid *lan; + + lan = XCALLOC(MTYPE_ISIS_SUBTLV, + sizeof(struct isis_lan_adj_sid)); + lan->flags = stream_getc(s); + lan->weight = stream_getc(s); + stream_get(&(lan->neighbor_id), s, + ISIS_SYS_ID_LEN); + if (lan->flags & EXT_SUBTLV_LINK_ADJ_SID_VFLG) { + lan->sid = stream_get3(s); + lan->sid &= MPLS_LABEL_VALUE_MASK; + } else { + lan->sid = stream_getl(s); + } + if (mtid == ISIS_MT_IPV4_UNICAST) + lan->family = AF_INET; + if (mtid == ISIS_MT_IPV6_UNICAST) + lan->family = AF_INET6; + append_item(&exts->lan_sid, + (struct isis_item *)lan); + SET_SUBTLV(exts, EXT_LAN_ADJ_SID); + } + break; + default: + /* Skip unknown TLV */ + stream_forward_getp(s, subtlv_len); + break; + } + sum += subtlv_len + ISIS_SUBTLV_HDR_SIZE; + } + + return 0; +} + +/* Functions for Sub-TLV 3 SR Prefix-SID */ static struct isis_item *copy_item_prefix_sid(struct isis_item *i) { struct isis_prefix_sid *sid = (struct isis_prefix_sid *)i; @@ -127,20 +805,22 @@ static void format_item_prefix_sid(uint16_t mtid, struct isis_item *i, { struct isis_prefix_sid *sid = (struct isis_prefix_sid *)i; - sbuf_push(buf, indent, "SR Prefix-SID:\n"); - sbuf_push(buf, indent, " Flags:%s%s%s%s%s%s\n", - sid->flags & ISIS_PREFIX_SID_READVERTISED ? " READVERTISED" : "", - sid->flags & ISIS_PREFIX_SID_NODE ? " NODE" : "", - sid->flags & ISIS_PREFIX_SID_NO_PHP ? " NO_PHP" : "", - sid->flags & ISIS_PREFIX_SID_EXPLICIT_NULL ? " EXPLICIT-NULL" : "", - sid->flags & ISIS_PREFIX_SID_VALUE ? " VALUE" : "", - sid->flags & ISIS_PREFIX_SID_LOCAL ? " LOCAL" : ""); - sbuf_push(buf, indent, " Algorithm: %" PRIu8 "\n", sid->algorithm); + sbuf_push(buf, indent, "SR Prefix-SID "); if (sid->flags & ISIS_PREFIX_SID_VALUE) { - sbuf_push(buf, indent, "Label: %" PRIu32 "\n", sid->value); + sbuf_push(buf, 0, "Label: %" PRIu32 ", ", sid->value); } else { - sbuf_push(buf, indent, "Index: %" PRIu32 "\n", sid->value); + sbuf_push(buf, 0, "Index: %" PRIu32 ", ", sid->value); } + sbuf_push(buf, 0, "Algorithm: %" PRIu8 ", ", sid->algorithm); + sbuf_push(buf, 0, "Flags:%s%s%s%s%s%s\n", + sid->flags & ISIS_PREFIX_SID_READVERTISED ? " READVERTISED" + : "", + sid->flags & ISIS_PREFIX_SID_NODE ? " NODE" : "", + sid->flags & ISIS_PREFIX_SID_NO_PHP ? " NO-PHP" : " PHP", + sid->flags & ISIS_PREFIX_SID_EXPLICIT_NULL ? " EXPLICIT-NULL" + : "", + sid->flags & ISIS_PREFIX_SID_VALUE ? " VALUE" : "", + sid->flags & ISIS_PREFIX_SID_LOCAL ? " LOCAL" : ""); } static void free_item_prefix_sid(struct isis_item *i) @@ -188,13 +868,15 @@ static int unpack_item_prefix_sid(uint16_t mtid, uint8_t len, struct stream *s, sid.flags = stream_getc(s); if (!!(sid.flags & ISIS_PREFIX_SID_VALUE) != !!(sid.flags & ISIS_PREFIX_SID_LOCAL)) { - sbuf_push(log, indent, "Flags inplausible: Local Flag needs to match Value Flag\n"); + sbuf_push(log, indent, "Flags implausible: Local Flag needs to match Value Flag\n"); return 1; } sid.algorithm = stream_getc(s); - uint8_t expected_size = (sid.flags & ISIS_PREFIX_SID_VALUE) ? 5 : 6; + uint8_t expected_size = (sid.flags & ISIS_PREFIX_SID_VALUE) + ? ISIS_SUBTLV_PREFIX_SID_SIZE + : ISIS_SUBTLV_PREFIX_SID_SIZE + 1; if (len != expected_size) { sbuf_push(log, indent, "TLV size differs from expected size. " @@ -205,6 +887,7 @@ static int unpack_item_prefix_sid(uint16_t mtid, uint8_t len, struct stream *s, if (sid.flags & ISIS_PREFIX_SID_VALUE) { sid.value = stream_get3(s); + sid.value &= MPLS_LABEL_VALUE_MASK; } else { sid.value = stream_getl(s); } @@ -276,7 +959,7 @@ static int unpack_subtlv_ipv6_source_prefix(enum isis_tlv_context context, p.prefixlen = stream_getc(s); if (p.prefixlen > 128) { - sbuf_push(log, indent, "Prefixlen %u is inplausible for IPv6\n", + sbuf_push(log, indent, "Prefixlen %u is implausible for IPv6\n", p.prefixlen); return 1; } @@ -305,7 +988,7 @@ static int unpack_subtlv_ipv6_source_prefix(enum isis_tlv_context context, memcpy(subtlvs->source_prefix, &p, sizeof(p)); return 0; } -static void init_item_list(struct isis_item_list *items); + static struct isis_item *copy_item(enum isis_tlv_context context, enum isis_tlv_type type, struct isis_item *item); @@ -703,11 +1386,8 @@ static struct isis_item *copy_item_extended_reach(struct isis_item *i) memcpy(rv->id, r->id, 7); rv->metric = r->metric; - if (r->subtlvs && r->subtlv_len) { - rv->subtlvs = XCALLOC(MTYPE_ISIS_TLV, r->subtlv_len); - memcpy(rv->subtlvs, r->subtlvs, r->subtlv_len); - rv->subtlv_len = r->subtlv_len; - } + if (r->subtlvs) + rv->subtlvs = copy_item_ext_subtlvs(r->subtlvs, -1); return (struct isis_item *)rv; } @@ -724,28 +1404,37 @@ static void format_item_extended_reach(uint16_t mtid, struct isis_item *i, sbuf_push(buf, 0, " %s", isis_mtid2str(mtid)); sbuf_push(buf, 0, "\n"); - if (r->subtlv_len && r->subtlvs) - mpls_te_print_detail(buf, indent + 2, r->subtlvs, - r->subtlv_len); + if (r->subtlvs) + format_item_ext_subtlvs(r->subtlvs, buf, indent + 2, mtid); } static void free_item_extended_reach(struct isis_item *i) { struct isis_extended_reach *item = (struct isis_extended_reach *)i; - XFREE(MTYPE_ISIS_TLV, item->subtlvs); + if (item->subtlvs != NULL) + free_item_ext_subtlvs(item->subtlvs); XFREE(MTYPE_ISIS_TLV, item); } static int pack_item_extended_reach(struct isis_item *i, struct stream *s) { struct isis_extended_reach *r = (struct isis_extended_reach *)i; + size_t len; + size_t len_pos; - if (STREAM_WRITEABLE(s) < 11 + (unsigned)r->subtlv_len) + if (STREAM_WRITEABLE(s) < 11 + ISIS_SUBTLV_MAX_SIZE) return 1; + stream_put(s, r->id, sizeof(r->id)); stream_put3(s, r->metric); - stream_putc(s, r->subtlv_len); - stream_put(s, r->subtlvs, r->subtlv_len); + len_pos = stream_get_endp(s); + /* Real length will be adjust after adding subTLVs */ + stream_putc(s, 11); + if (r->subtlvs) + pack_item_ext_subtlvs(r->subtlvs, s); + /* Adjust length */ + len = stream_get_endp(s) - len_pos - 1; + stream_putc_at(s, len_pos, len); return 0; } @@ -780,9 +1469,6 @@ static int unpack_item_extended_reach(uint16_t mtid, uint8_t len, rv->metric = stream_get3(s); subtlv_len = stream_getc(s); - format_item_extended_reach(mtid, (struct isis_item *)rv, log, - indent + 2); - if ((size_t)len < ((size_t)11) + subtlv_len) { sbuf_push(log, indent, "Not enough data left for subtlv size %" PRIu8 @@ -795,20 +1481,14 @@ static int unpack_item_extended_reach(uint16_t mtid, uint8_t len, subtlv_len); if (subtlv_len) { - size_t subtlv_start = stream_get_getp(s); - - if (unpack_tlvs(ISIS_CONTEXT_SUBTLV_NE_REACH, subtlv_len, s, - log, NULL, indent + 4, NULL)) { + if (unpack_item_ext_subtlvs(mtid, subtlv_len, s, log, rv, + indent + 4)) { goto out; } - - stream_set_getp(s, subtlv_start); - - rv->subtlvs = XCALLOC(MTYPE_ISIS_TLV, subtlv_len); - stream_get(rv->subtlvs, s, subtlv_len); - rv->subtlv_len = subtlv_len; } + format_item_extended_reach(mtid, (struct isis_item *)rv, log, + indent + 2); append_item(items, (struct isis_item *)rv); return 0; out: @@ -1257,6 +1937,7 @@ static struct isis_item *copy_item_extended_ip_reach(struct isis_item *i) rv->metric = r->metric; rv->down = r->down; rv->prefix = r->prefix; + rv->subtlvs = copy_subtlvs(r->subtlvs); return (struct isis_item *)rv; } @@ -1348,7 +2029,7 @@ static int unpack_item_extended_ip_reach(uint16_t mtid, uint8_t len, rv->prefix.family = AF_INET; rv->prefix.prefixlen = control & 0x3f; if (rv->prefix.prefixlen > 32) { - sbuf_push(log, indent, "Prefixlen %u is inplausible for IPv4\n", + sbuf_push(log, indent, "Prefixlen %u is implausible for IPv4\n", rv->prefix.prefixlen); goto out; } @@ -1834,7 +2515,7 @@ static int unpack_item_ipv6_reach(uint16_t mtid, uint8_t len, struct stream *s, rv->prefix.family = AF_INET6; rv->prefix.prefixlen = stream_getc(s); if (rv->prefix.prefixlen > 128) { - sbuf_push(log, indent, "Prefixlen %u is inplausible for IPv6\n", + sbuf_push(log, indent, "Prefixlen %u is implausible for IPv6\n", rv->prefix.prefixlen); goto out; } @@ -1848,6 +2529,7 @@ static int unpack_item_ipv6_reach(uint16_t mtid, uint8_t len, struct stream *s, } stream_get(&rv->prefix.prefix.s6_addr, s, PSIZE(rv->prefix.prefixlen)); struct in6_addr orig_prefix = rv->prefix.prefix; + apply_mask_ipv6(&rv->prefix); if (memcmp(&orig_prefix, &rv->prefix.prefix, sizeof(orig_prefix))) sbuf_push(log, indent + 2, @@ -1898,6 +2580,222 @@ out: return 1; } +/* Functions related to TLV 242 Router Capability */ +static struct isis_router_cap *copy_tlv_router_cap( + const struct isis_router_cap *router_cap) +{ + struct isis_router_cap *rv = XMALLOC(MTYPE_ISIS_TLV, sizeof(*rv)); + + if (!router_cap) + return NULL; + + memcpy(rv, router_cap, sizeof(*rv)); + + return rv; +} + +static void format_tlv_router_cap(const struct isis_router_cap *router_cap, + struct sbuf *buf, int indent) +{ + char addrbuf[INET_ADDRSTRLEN]; + + if (!router_cap) + return; + + /* Router ID and Flags */ + inet_ntop(AF_INET, &router_cap->router_id, addrbuf, sizeof(addrbuf)); + sbuf_push(buf, indent, "Router Capability:"); + sbuf_push(buf, indent, " %s , D:%c, S:%c\n", addrbuf, + router_cap->flags & ISIS_ROUTER_CAP_FLAG_D ? '1' : '0', + router_cap->flags & ISIS_ROUTER_CAP_FLAG_S ? '1' : '0'); + + /* SR Global Block */ + if (router_cap->srgb.range_size != 0) + sbuf_push(buf, indent, + " Segment Routing: I:%s V:%s, SRGB Base: %d Range: %d\n", + IS_SR_IPV4(router_cap->srgb) ? "1" : "0", + IS_SR_IPV6(router_cap->srgb) ? "1" : "0", + router_cap->srgb.lower_bound, + router_cap->srgb.range_size); + + /* SR Algorithms */ + if (router_cap->algo[0] != SR_ALGORITHM_UNSET) { + sbuf_push(buf, indent, " Algorithm: %s", + router_cap->algo[0] == 0 ? "0: SPF" + : "0: Strict SPF"); + for (int i = 0; i < SR_ALGORITHM_COUNT; i++) + if (router_cap->algo[i] != SR_ALGORITHM_UNSET) + sbuf_push(buf, indent, " %s", + router_cap->algo[1] == 0 + ? "0: SPF" + : "0: Strict SPF"); + sbuf_push(buf, indent, "\n"); + } + + /* SR Node MSSD */ + if (router_cap->msd != 0) + sbuf_push(buf, indent, " Node MSD: %d\n", router_cap->msd); +} + +static void free_tlv_router_cap(struct isis_router_cap *router_cap) +{ + XFREE(MTYPE_ISIS_TLV, router_cap); +} + +static int pack_tlv_router_cap(const struct isis_router_cap *router_cap, + struct stream *s) +{ + size_t tlv_len = ISIS_ROUTER_CAP_SIZE; + size_t len_pos; + uint8_t nb_algo; + + if (!router_cap) + return 0; + + /* Compute Maximum TLV size */ + tlv_len += ISIS_SUBTLV_SID_LABEL_RANGE_SIZE + + ISIS_SUBTLV_HDR_SIZE + + ISIS_SUBTLV_ALGORITHM_SIZE + + ISIS_SUBTLV_NODE_MSD_SIZE; + + if (STREAM_WRITEABLE(s) < (unsigned int)(2 + tlv_len)) + return 1; + + /* Add Router Capability TLV 242 with Router ID and Flags */ + stream_putc(s, ISIS_TLV_ROUTER_CAPABILITY); + /* Real length will be adjusted later */ + len_pos = stream_get_endp(s); + stream_putc(s, tlv_len); + stream_put_ipv4(s, router_cap->router_id.s_addr); + stream_putc(s, router_cap->flags); + + /* Add SRGB if set */ + if ((router_cap->srgb.range_size != 0) + && (router_cap->srgb.lower_bound != 0)) { + stream_putc(s, ISIS_SUBTLV_SID_LABEL_RANGE); + stream_putc(s, ISIS_SUBTLV_SID_LABEL_RANGE_SIZE); + stream_putc(s, router_cap->srgb.flags); + stream_put3(s, router_cap->srgb.range_size); + stream_putc(s, ISIS_SUBTLV_SID_LABEL); + stream_putc(s, ISIS_SUBTLV_SID_LABEL_SIZE); + stream_put3(s, router_cap->srgb.lower_bound); + + /* Then SR Algorithm if set */ + for (nb_algo = 0; nb_algo < SR_ALGORITHM_COUNT; nb_algo++) + if (router_cap->algo[nb_algo] == SR_ALGORITHM_UNSET) + break; + if (nb_algo > 0) { + stream_putc(s, ISIS_SUBTLV_ALGORITHM); + stream_putc(s, nb_algo); + for (int i = 0; i < nb_algo; i++) + stream_putc(s, router_cap->algo[i]); + } + /* And finish with MSD if set */ + if (router_cap->msd != 0) { + stream_putc(s, ISIS_SUBTLV_NODE_MSD); + stream_putc(s, ISIS_SUBTLV_NODE_MSD_SIZE); + stream_putc(s, MSD_TYPE_BASE_MPLS_IMPOSITION); + stream_putc(s, router_cap->msd); + } + } + + /* Adjust TLV length which depends on subTLVs presence */ + tlv_len = stream_get_endp(s) - len_pos - 1; + stream_putc_at(s, len_pos, tlv_len); + + return 0; +} + +static int unpack_tlv_router_cap(enum isis_tlv_context context, + uint8_t tlv_type, uint8_t tlv_len, + struct stream *s, struct sbuf *log, + void *dest, int indent) +{ + struct isis_tlvs *tlvs = dest; + uint8_t type; + uint8_t length; + uint8_t subtlv_len; + uint8_t sid_len; + + sbuf_push(log, indent, "Unpacking Router Capability TLV...\n"); + if (tlv_len < ISIS_ROUTER_CAP_SIZE) { + sbuf_push(log, indent, "WARNING: Unexpected TLV size\n"); + stream_forward_getp(s, tlv_len); + return 0; + } + + if (tlvs->router_cap) { + sbuf_push(log, indent, + "WARNING: Router Capability TLV present multiple times.\n"); + stream_forward_getp(s, tlv_len); + return 0; + } + + /* Allocate router cap structure and initialize SR Algorithms */ + tlvs->router_cap = XCALLOC(MTYPE_ISIS_TLV, sizeof(*tlvs->router_cap)); + for (int i = 0; i < SR_ALGORITHM_COUNT; i++) + tlvs->router_cap->algo[i] = SR_ALGORITHM_UNSET; + + /* Get Router ID and Flags */ + tlvs->router_cap->router_id.s_addr = stream_get_ipv4(s); + tlvs->router_cap->flags = stream_getc(s); + + /* Parse remaining part of the TLV if present */ + subtlv_len = tlv_len - ISIS_ROUTER_CAP_SIZE; + while (subtlv_len > 2) { + struct isis_router_cap *rc = tlvs->router_cap; + uint8_t msd_type; + + type = stream_getc(s); + length = stream_getc(s); + switch (type) { + case ISIS_SUBTLV_SID_LABEL_RANGE: + rc->srgb.flags = stream_getc(s); + rc->srgb.range_size = stream_get3(s); + /* Skip Type and get Length of SID Label */ + stream_getc(s); + sid_len = stream_getc(s); + if (sid_len == ISIS_SUBTLV_SID_LABEL_SIZE) + rc->srgb.lower_bound = stream_get3(s); + else + rc->srgb.lower_bound = stream_getl(s); + + /* SRGB sanity checks. */ + if (rc->srgb.range_size == 0 + || (rc->srgb.lower_bound <= MPLS_LABEL_RESERVED_MAX) + || ((rc->srgb.lower_bound + rc->srgb.range_size - 1) + > MPLS_LABEL_UNRESERVED_MAX)) { + sbuf_push(log, indent, "Invalid label range. Reset SRGB\n"); + rc->srgb.lower_bound = 0; + rc->srgb.range_size = 0; + } + break; + case ISIS_SUBTLV_ALGORITHM: + /* Only 2 algorithms are supported: SPF & Strict SPF */ + stream_get(&rc->algo, s, + length > SR_ALGORITHM_COUNT + ? SR_ALGORITHM_COUNT + : length); + if (length > SR_ALGORITHM_COUNT) + stream_forward_getp( + s, length - SR_ALGORITHM_COUNT); + break; + case ISIS_SUBTLV_NODE_MSD: + msd_type = stream_getc(s); + rc->msd = stream_getc(s); + /* Only BMI-MSD type has been defined in RFC 8491 */ + if (msd_type != MSD_TYPE_BASE_MPLS_IMPOSITION) + rc->msd = 0; + break; + default: + stream_forward_getp(s, length); + break; + } + subtlv_len = subtlv_len - length - 2; + } + return 0; +} + /* Functions related to TLV 10 Authentication */ static struct isis_item *copy_item_auth(struct isis_item *i) { @@ -2318,6 +3216,39 @@ static void append_item(struct isis_item_list *dest, struct isis_item *item) dest->count++; } +static void delete_item(struct isis_item_list *dest, struct isis_item *del) +{ + struct isis_item *item, *prev = NULL, *next; + + /* Sanity Check */ + if ((dest == NULL) || (del == NULL)) + return; + + /* + * TODO: delete is tricky because "dest" is a singly linked list. + * We need to switch a doubly linked list. + */ + for (item = dest->head; item; item = next) { + if (item->next == del) { + prev = item; + break; + } + next = item->next; + } + if (prev) + prev->next = del->next; + if (dest->head == del) + dest->head = del->next; + if ((struct isis_item *)dest->tail == del) { + *dest->tail = prev; + if (prev) + dest->tail = &(*dest->tail)->next; + else + dest->tail = &dest->head; + } + dest->count--; +} + static struct isis_item *last_item(struct isis_item_list *list) { return container_of(list->tail, struct isis_item, next); @@ -2596,6 +3527,8 @@ struct isis_tlvs *isis_copy_tlvs(struct isis_tlvs *tlvs) rv->threeway_adj = copy_tlv_threeway_adj(tlvs->threeway_adj); + rv->router_cap = copy_tlv_router_cap(tlvs->router_cap); + rv->spine_leaf = copy_tlv_spine_leaf(tlvs->spine_leaf); return rv; @@ -2631,6 +3564,7 @@ static void format_tlvs(struct isis_tlvs *tlvs, struct sbuf *buf, int indent) format_tlv_dynamic_hostname(tlvs->hostname, buf, indent); format_tlv_te_router_id(tlvs->te_router_id, buf, indent); + format_tlv_router_cap(tlvs->router_cap, buf, indent); format_items(ISIS_CONTEXT_LSP, ISIS_TLV_EXTENDED_REACH, &tlvs->extended_reach, buf, indent); @@ -2717,6 +3651,7 @@ void isis_free_tlvs(struct isis_tlvs *tlvs) free_mt_items(ISIS_CONTEXT_LSP, ISIS_TLV_MT_IPV6_REACH, &tlvs->mt_ipv6_reach); free_tlv_threeway_adj(tlvs->threeway_adj); + free_tlv_router_cap(tlvs->router_cap); free_tlv_spine_leaf(tlvs->spine_leaf); XFREE(MTYPE_ISIS_TLV, tlvs); @@ -2897,6 +3832,14 @@ static int pack_tlvs(struct isis_tlvs *tlvs, struct stream *stream, fragment_tlvs->hostname = copy_tlv_dynamic_hostname(tlvs->hostname); + rv = pack_tlv_router_cap(tlvs->router_cap, stream); + if (rv) + return rv; + if (fragment_tlvs) { + fragment_tlvs->router_cap = + copy_tlv_router_cap(tlvs->router_cap); + } + rv = pack_tlv_te_router_id(tlvs->te_router_id, stream); if (rv) return rv; @@ -3131,6 +4074,7 @@ ITEM_TLV_OPS(mt_router_info, "TLV 229 MT Router Information"); TLV_OPS(threeway_adj, "TLV 240 P2P Three-Way Adjacency"); ITEM_TLV_OPS(ipv6_address, "TLV 232 IPv6 Interface Address"); ITEM_TLV_OPS(ipv6_reach, "TLV 236 IPv6 Reachability"); +TLV_OPS(router_cap, "TLV 242 Router Capability"); ITEM_SUBTLV_OPS(prefix_sid, "Sub-TLV 3 SR Prefix-SID"); SUBTLV_OPS(ipv6_source_prefix, "Sub-TLV 22 IPv6 Source Prefix"); @@ -3144,21 +4088,22 @@ static const struct tlv_ops *tlv_table[ISIS_CONTEXT_MAX][ISIS_TLV_MAX] = { [ISIS_TLV_AUTH] = &tlv_auth_ops, [ISIS_TLV_PURGE_ORIGINATOR] = &tlv_purge_originator_ops, [ISIS_TLV_EXTENDED_REACH] = &tlv_extended_reach_ops, - [ISIS_TLV_MT_REACH] = &tlv_extended_reach_ops, [ISIS_TLV_OLDSTYLE_IP_REACH] = &tlv_oldstyle_ip_reach_ops, [ISIS_TLV_PROTOCOLS_SUPPORTED] = &tlv_protocols_supported_ops, [ISIS_TLV_OLDSTYLE_IP_REACH_EXT] = &tlv_oldstyle_ip_reach_ops, [ISIS_TLV_IPV4_ADDRESS] = &tlv_ipv4_address_ops, [ISIS_TLV_TE_ROUTER_ID] = &tlv_te_router_id_ops, [ISIS_TLV_EXTENDED_IP_REACH] = &tlv_extended_ip_reach_ops, - [ISIS_TLV_MT_IP_REACH] = &tlv_extended_ip_reach_ops, [ISIS_TLV_DYNAMIC_HOSTNAME] = &tlv_dynamic_hostname_ops, [ISIS_TLV_SPINE_LEAF_EXT] = &tlv_spine_leaf_ops, + [ISIS_TLV_MT_REACH] = &tlv_extended_reach_ops, [ISIS_TLV_MT_ROUTER_INFO] = &tlv_mt_router_info_ops, - [ISIS_TLV_THREE_WAY_ADJ] = &tlv_threeway_adj_ops, [ISIS_TLV_IPV6_ADDRESS] = &tlv_ipv6_address_ops, + [ISIS_TLV_MT_IP_REACH] = &tlv_extended_ip_reach_ops, [ISIS_TLV_IPV6_REACH] = &tlv_ipv6_reach_ops, [ISIS_TLV_MT_IPV6_REACH] = &tlv_ipv6_reach_ops, + [ISIS_TLV_THREE_WAY_ADJ] = &tlv_threeway_adj_ops, + [ISIS_TLV_ROUTER_CAPABILITY] = &tlv_router_cap_ops, }, [ISIS_CONTEXT_SUBTLV_NE_REACH] = {}, [ISIS_CONTEXT_SUBTLV_IP_REACH] = { @@ -3593,6 +4538,18 @@ void isis_tlvs_set_dynamic_hostname(struct isis_tlvs *tlvs, tlvs->hostname = XSTRDUP(MTYPE_ISIS_TLV, hostname); } +/* Set Router Capability TLV parameters */ +void isis_tlvs_set_router_capability(struct isis_tlvs *tlvs, + const struct isis_router_cap *cap) +{ + XFREE(MTYPE_ISIS_TLV, tlvs->router_cap); + if (!cap) + return; + + tlvs->router_cap = XCALLOC(MTYPE_ISIS_TLV, sizeof(*tlvs->router_cap)); + *tlvs->router_cap = *cap; +} + void isis_tlvs_set_te_router_id(struct isis_tlvs *tlvs, const struct in_addr *id) { @@ -3614,6 +4571,38 @@ void isis_tlvs_add_oldstyle_ip_reach(struct isis_tlvs *tlvs, append_item(&tlvs->oldstyle_ip_reach, (struct isis_item *)r); } +void isis_tlvs_add_adj_sid(struct isis_ext_subtlvs *exts, + struct isis_adj_sid *adj) +{ + append_item(&exts->adj_sid, (struct isis_item *)adj); + SET_SUBTLV(exts, EXT_ADJ_SID); +} + +void isis_tlvs_del_adj_sid(struct isis_ext_subtlvs *exts, + struct isis_adj_sid *adj) +{ + delete_item(&exts->adj_sid, (struct isis_item *)adj); + XFREE(MTYPE_ISIS_SUBTLV, adj); + if (exts->adj_sid.count == 0) + UNSET_SUBTLV(exts, EXT_ADJ_SID); +} + +void isis_tlvs_add_lan_adj_sid(struct isis_ext_subtlvs *exts, + struct isis_lan_adj_sid *lan) +{ + append_item(&exts->lan_sid, (struct isis_item *)lan); + SET_SUBTLV(exts, EXT_LAN_ADJ_SID); +} + +void isis_tlvs_del_lan_adj_sid(struct isis_ext_subtlvs *exts, + struct isis_lan_adj_sid *lan) +{ + delete_item(&exts->lan_sid, (struct isis_item *)lan); + XFREE(MTYPE_ISIS_SUBTLV, lan); + if (exts->lan_sid.count == 0) + UNSET_SUBTLV(exts, EXT_LAN_ADJ_SID); +} + void isis_tlvs_add_extended_ip_reach(struct isis_tlvs *tlvs, struct prefix_ipv4 *dest, uint32_t metric) { @@ -3668,17 +4657,14 @@ void isis_tlvs_add_oldstyle_reach(struct isis_tlvs *tlvs, uint8_t *id, void isis_tlvs_add_extended_reach(struct isis_tlvs *tlvs, uint16_t mtid, uint8_t *id, uint32_t metric, - uint8_t *subtlvs, uint8_t subtlv_len) + struct isis_ext_subtlvs *exts) { struct isis_extended_reach *r = XCALLOC(MTYPE_ISIS_TLV, sizeof(*r)); memcpy(r->id, id, sizeof(r->id)); r->metric = metric; - if (subtlvs && subtlv_len) { - r->subtlvs = XCALLOC(MTYPE_ISIS_TLV, subtlv_len); - memcpy(r->subtlvs, subtlvs, subtlv_len); - r->subtlv_len = subtlv_len; - } + if (exts) + r->subtlvs = copy_item_ext_subtlvs(exts, mtid); struct isis_item_list *l; if (mtid == ISIS_MT_IPV4_UNICAST) diff --git a/isisd/isis_tlvs.h b/isisd/isis_tlvs.h index 4954d791d8..2948728e2b 100644 --- a/isisd/isis_tlvs.h +++ b/isisd/isis_tlvs.h @@ -2,6 +2,8 @@ * IS-IS TLV Serializer/Deserializer * * Copyright (C) 2015,2017 Christian Franke + + * Copyright (C) 2019 Olivier Dugeon - Orange Labs (for TE and SR) * * This file is part of FRR. * @@ -66,14 +68,14 @@ struct isis_lsp_entry { }; struct isis_extended_reach; +struct isis_ext_subtlvs; struct isis_extended_reach { struct isis_extended_reach *next; uint8_t id[7]; uint32_t metric; - uint8_t *subtlvs; - uint8_t subtlv_len; + struct isis_ext_subtlvs *subtlvs; }; struct isis_extended_ip_reach; @@ -130,6 +132,95 @@ struct isis_threeway_adj { uint32_t neighbor_circuit_id; }; +/* + * Segment Routing subTLV's as per + * draft-ietf-isis-segment-routing-extension-25 + */ +#define ISIS_SUBTLV_SRGB_FLAG_I 0x80 +#define ISIS_SUBTLV_SRGB_FLAG_V 0x40 +#define IS_SR_IPV4(srgb) (srgb.flags & ISIS_SUBTLV_SRGB_FLAG_I) +#define IS_SR_IPV6(srgb) (srgb.flags & ISIS_SUBTLV_SRGB_FLAG_V) + +/* Structure aggregating SRGB info */ +struct isis_srgb { + uint8_t flags; + uint32_t range_size; + uint32_t lower_bound; +}; + +/* Prefix-SID sub-TLVs flags */ +#define ISIS_PREFIX_SID_READVERTISED 0x80 +#define ISIS_PREFIX_SID_NODE 0x40 +#define ISIS_PREFIX_SID_NO_PHP 0x20 +#define ISIS_PREFIX_SID_EXPLICIT_NULL 0x10 +#define ISIS_PREFIX_SID_VALUE 0x08 +#define ISIS_PREFIX_SID_LOCAL 0x04 + +struct isis_prefix_sid; +struct isis_prefix_sid { + struct isis_prefix_sid *next; + + uint8_t flags; + uint8_t algorithm; + uint32_t value; +}; + +/* Adj-SID and LAN-Ajd-SID sub-TLVs flags */ +#define EXT_SUBTLV_LINK_ADJ_SID_FFLG 0x80 +#define EXT_SUBTLV_LINK_ADJ_SID_BFLG 0x40 +#define EXT_SUBTLV_LINK_ADJ_SID_VFLG 0x20 +#define EXT_SUBTLV_LINK_ADJ_SID_LFLG 0x10 +#define EXT_SUBTLV_LINK_ADJ_SID_SFLG 0x08 +#define EXT_SUBTLV_LINK_ADJ_SID_PFLG 0x04 + +struct isis_adj_sid; +struct isis_adj_sid { + struct isis_adj_sid *next; + + uint8_t family; + uint8_t flags; + uint8_t weight; + uint32_t sid; +}; + +struct isis_lan_adj_sid; +struct isis_lan_adj_sid { + struct isis_lan_adj_sid *next; + + uint8_t family; + uint8_t flags; + uint8_t weight; + uint8_t neighbor_id[ISIS_SYS_ID_LEN]; + uint32_t sid; +}; + +/* RFC 4971 & RFC 7981 */ +#define ISIS_ROUTER_CAP_FLAG_S 0x01 +#define ISIS_ROUTER_CAP_FLAG_D 0x02 +#define ISIS_ROUTER_CAP_SIZE 5 + +/* Number of supported algorithm for Segment Routing. + * Right now only 2 have been standardized: + * - 0: SPF + * - 1: Strict SPF + */ +#define SR_ALGORITHM_COUNT 2 +#define SR_ALGORITHM_SPF 0 +#define SR_ALGORITHM_STRICT_SPF 1 +#define SR_ALGORITHM_UNSET 255 + +struct isis_router_cap { + struct in_addr router_id; + uint8_t flags; + + /* draft-ietf-segment-routing-extensions-25 */ + struct isis_srgb srgb; + uint8_t algo[SR_ALGORITHM_COUNT]; + /* RFC 8491 */ +#define MSD_TYPE_BASE_MPLS_IMPOSITION 0x01 + uint8_t msd; +}; + struct isis_item; struct isis_item { struct isis_item *next; @@ -233,26 +324,10 @@ struct isis_tlvs { struct isis_item_list ipv6_reach; struct isis_mt_item_list mt_ipv6_reach; struct isis_threeway_adj *threeway_adj; + struct isis_router_cap *router_cap; struct isis_spine_leaf *spine_leaf; }; -#define ISIS_PREFIX_SID_READVERTISED 0x80 -#define ISIS_PREFIX_SID_NODE 0x40 -#define ISIS_PREFIX_SID_NO_PHP 0x20 -#define ISIS_PREFIX_SID_EXPLICIT_NULL 0x10 -#define ISIS_PREFIX_SID_VALUE 0x08 -#define ISIS_PREFIX_SID_LOCAL 0x04 - -struct isis_prefix_sid; -struct isis_prefix_sid { - struct isis_prefix_sid *next; - - uint8_t flags; - uint8_t algorithm; - - uint32_t value; -}; - enum isis_tlv_context { ISIS_CONTEXT_LSP, ISIS_CONTEXT_SUBTLV_NE_REACH, @@ -266,11 +341,12 @@ struct isis_subtlvs { /* draft-baker-ipv6-isis-dst-src-routing-06 */ struct prefix_ipv6 *source_prefix; - /* draft-ietf-isis-segment-routing-extensions-16 */ + /* draft-ietf-isis-segment-routing-extensions-25 */ struct isis_item_list prefix_sids; }; enum isis_tlv_type { + /* TLVs code point */ ISIS_TLV_AREA_ADDRESSES = 1, ISIS_TLV_OLDSTYLE_REACH = 2, ISIS_TLV_LAN_NEIGHBORS = 6, @@ -295,10 +371,149 @@ enum isis_tlv_type { ISIS_TLV_IPV6_REACH = 236, ISIS_TLV_MT_IPV6_REACH = 237, ISIS_TLV_THREE_WAY_ADJ = 240, + ISIS_TLV_ROUTER_CAPABILITY = 242, ISIS_TLV_MAX = 256, + /* subTLVs code point */ + ISIS_SUBTLV_IPV6_SOURCE_PREFIX = 22, + + /* RFC 5305 & RFC 6119 */ + ISIS_SUBTLV_ADMIN_GRP = 3, + ISIS_SUBTLV_LOCAL_IPADDR = 6, + ISIS_SUBTLV_RMT_IPADDR = 8, + ISIS_SUBTLV_MAX_BW = 9, + ISIS_SUBTLV_MAX_RSV_BW = 10, + ISIS_SUBTLV_UNRSV_BW = 11, + ISIS_SUBTLV_LOCAL_IPADDR6 = 12, + ISIS_SUBTLV_RMT_IPADDR6 = 13, + ISIS_SUBTLV_TE_METRIC = 18, + + /* RFC 5307 */ + ISIS_SUBTLV_LLRI = 4, + + /* RFC 5316 */ + ISIS_SUBTLV_RAS = 24, + ISIS_SUBTLV_RIP = 25, + + /* draft-isis-segment-routing-extension-25 */ + ISIS_SUBTLV_SID_LABEL = 1, + ISIS_SUBTLV_SID_LABEL_RANGE = 2, + ISIS_SUBTLV_ALGORITHM = 19, + ISIS_SUBTLV_NODE_MSD = 23, ISIS_SUBTLV_PREFIX_SID = 3, - ISIS_SUBTLV_IPV6_SOURCE_PREFIX = 22 + ISIS_SUBTLV_ADJ_SID = 31, + ISIS_SUBTLV_LAN_ADJ_SID = 32, + + /* RFC 7810 */ + ISIS_SUBTLV_AV_DELAY = 33, + ISIS_SUBTLV_MM_DELAY = 34, + ISIS_SUBTLV_DELAY_VAR = 35, + ISIS_SUBTLV_PKT_LOSS = 36, + ISIS_SUBTLV_RES_BW = 37, + ISIS_SUBTLV_AVA_BW = 38, + ISIS_SUBTLV_USE_BW = 39, + + ISIS_SUBTLV_MAX = 40 +}; + +/* subTLVs size for TE and SR */ +enum ext_subtlv_size { + ISIS_SUBTLV_LLRI_SIZE = 8, + + ISIS_SUBTLV_UNRSV_BW_SIZE = 32, + ISIS_SUBTLV_TE_METRIC_SIZE = 3, + ISIS_SUBTLV_IPV6_ADDR_SIZE = 16, + + /* draft-isis-segment-routing-extension-25 */ + ISIS_SUBTLV_SID_LABEL_SIZE = 3, + ISIS_SUBTLV_SID_LABEL_RANGE_SIZE = 9, + ISIS_SUBTLV_ALGORITHM_SIZE = 4, + ISIS_SUBTLV_NODE_MSD_SIZE = 2, + ISIS_SUBTLV_ADJ_SID_SIZE = 5, + ISIS_SUBTLV_LAN_ADJ_SID_SIZE = 11, + ISIS_SUBTLV_PREFIX_SID_SIZE = 5, + + ISIS_SUBTLV_MM_DELAY_SIZE = 8, + + ISIS_SUBTLV_HDR_SIZE = 2, + ISIS_SUBTLV_DEF_SIZE = 4, + + ISIS_SUBTLV_MAX_SIZE = 180 +}; + +/* Macros to manage the optional presence of EXT subTLVs */ +#define SET_SUBTLV(s, t) ((s->status) |= (t)) +#define UNSET_SUBTLV(s, t) ((s->status) &= ~(t)) +#define IS_SUBTLV(s, t) (s->status & t) + +#define EXT_DISABLE 0x000000 +#define EXT_ADM_GRP 0x000001 +#define EXT_LLRI 0x000002 +#define EXT_LOCAL_ADDR 0x000004 +#define EXT_NEIGH_ADDR 0x000008 +#define EXT_LOCAL_ADDR6 0x000010 +#define EXT_NEIGH_ADDR6 0x000020 +#define EXT_MAX_BW 0x000040 +#define EXT_MAX_RSV_BW 0x000080 +#define EXT_UNRSV_BW 0x000100 +#define EXT_TE_METRIC 0x000200 +#define EXT_RMT_AS 0x000400 +#define EXT_RMT_IP 0x000800 +#define EXT_ADJ_SID 0x001000 +#define EXT_LAN_ADJ_SID 0x002000 +#define EXT_DELAY 0x004000 +#define EXT_MM_DELAY 0x008000 +#define EXT_DELAY_VAR 0x010000 +#define EXT_PKT_LOSS 0x020000 +#define EXT_RES_BW 0x040000 +#define EXT_AVA_BW 0x080000 +#define EXT_USE_BW 0x100000 + +/* + * This structure groups all Extended IS Reachability subTLVs. + * + * Each bit of the status field indicates if a subTLVs is valid or not. + * SubTLVs values use following units: + * - Bandwidth in bytes/sec following IEEE format, + * - Delay in micro-seconds with only 24 bits significant + * - Packet Loss in percentage of total traffic with only 24 bits (2^24 - 2) + * + * For Delay and packet Loss, upper bit (A) indicates if the value is + * normal (0) or anomalous (1). + */ +#define IS_ANORMAL(v) (v & 0x80000000) + +struct isis_ext_subtlvs { + + uint32_t status; + + uint32_t adm_group; /* Resource Class/Color - RFC 5305 */ + /* Link Local/Remote Identifiers - RFC 5307 */ + uint32_t local_llri; + uint32_t remote_llri; + struct in_addr local_addr; /* Local IP Address - RFC 5305 */ + struct in_addr neigh_addr; /* Neighbor IP Address - RFC 5305 */ + struct in6_addr local_addr6; /* Local IPv6 Address - RFC 6119 */ + struct in6_addr neigh_addr6; /* Neighbor IPv6 Address - RFC 6119 */ + float max_bw; /* Maximum Bandwidth - RFC 5305 */ + float max_rsv_bw; /* Maximum Reservable Bandwidth - RFC 5305 */ + float unrsv_bw[8]; /* Unreserved Bandwidth - RFC 5305 */ + uint32_t te_metric; /* Traffic Engineering Metric - RFC 5305 */ + uint32_t remote_as; /* Remote AS Number sub-TLV - RFC5316 */ + struct in_addr remote_ip; /* IPv4 Remote ASBR ID Sub-TLV - RFC5316 */ + + uint32_t delay; /* Average Link Delay - RFC 8570 */ + uint32_t min_delay; /* Low Link Delay - RFC 8570 */ + uint32_t max_delay; /* High Link Delay - RFC 8570 */ + uint32_t delay_var; /* Link Delay Variation i.e. Jitter - RFC 8570 */ + uint32_t pkt_loss; /* Unidirectional Link Packet Loss - RFC 8570 */ + float res_bw; /* Unidirectional Residual Bandwidth - RFC 8570 */ + float ava_bw; /* Unidirectional Available Bandwidth - RFC 8570 */ + float use_bw; /* Unidirectional Utilized Bandwidth - RFC 8570 */ + + /* Segment Routing Adjacency & LAN Adjacency Segment ID */ + struct isis_item_list adj_sid; + struct isis_item_list lan_sid; }; #define IS_COMPAT_MT_TLV(tlv_type) \ @@ -329,7 +544,6 @@ struct list *isis_fragment_tlvs(struct isis_tlvs *tlvs, size_t size); #define ISIS_MT_AT_MASK 0x4000 #endif - void isis_tlvs_add_auth(struct isis_tlvs *tlvs, struct isis_passwd *passwd); void isis_tlvs_add_area_addresses(struct isis_tlvs *tlvs, struct list *addresses); @@ -359,6 +573,8 @@ void isis_tlvs_add_csnp_entries(struct isis_tlvs *tlvs, uint8_t *start_id, struct isis_lsp **last_lsp); void isis_tlvs_set_dynamic_hostname(struct isis_tlvs *tlvs, const char *hostname); +void isis_tlvs_set_router_capability(struct isis_tlvs *tlvs, + const struct isis_router_cap *cap); void isis_tlvs_set_te_router_id(struct isis_tlvs *tlvs, const struct in_addr *id); void isis_tlvs_add_oldstyle_ip_reach(struct isis_tlvs *tlvs, @@ -371,11 +587,21 @@ void isis_tlvs_add_ipv6_dstsrc_reach(struct isis_tlvs *tlvs, uint16_t mtid, struct prefix_ipv6 *dest, struct prefix_ipv6 *src, uint32_t metric); +struct isis_ext_subtlvs *isis_alloc_ext_subtlvs(void); +void isis_tlvs_add_adj_sid(struct isis_ext_subtlvs *exts, + struct isis_adj_sid *adj); +void isis_tlvs_del_adj_sid(struct isis_ext_subtlvs *exts, + struct isis_adj_sid *adj); +void isis_tlvs_add_lan_adj_sid(struct isis_ext_subtlvs *exts, + struct isis_lan_adj_sid *lan); +void isis_tlvs_del_lan_adj_sid(struct isis_ext_subtlvs *exts, + struct isis_lan_adj_sid *lan); + void isis_tlvs_add_oldstyle_reach(struct isis_tlvs *tlvs, uint8_t *id, uint8_t metric); void isis_tlvs_add_extended_reach(struct isis_tlvs *tlvs, uint16_t mtid, uint8_t *id, uint32_t metric, - uint8_t *subtlvs, uint8_t subtlv_len); + struct isis_ext_subtlvs *subtlvs); const char *isis_threeway_state_name(enum isis_threeway_state state); diff --git a/isisd/isis_zebra.c b/isisd/isis_zebra.c index d1bc20ba5a..39a2f6ef35 100644 --- a/isisd/isis_zebra.c +++ b/isisd/isis_zebra.c @@ -53,6 +53,8 @@ struct zclient *zclient = NULL; +DEFINE_HOOK(isis_if_new_hook, (struct interface *ifp), (ifp)) + /* Router-id update message from zebra. */ static int isis_router_id_update_zebra(ZAPI_CALLBACK_ARGS) { @@ -82,6 +84,8 @@ static int isis_zebra_if_add(ZAPI_CALLBACK_ARGS) isis_csm_state_change(IF_UP_FROM_Z, circuit_scan_by_ifp(ifp), ifp); + hook_call(isis_if_new_hook, ifp); + return 0; } diff --git a/isisd/isis_zebra.h b/isisd/isis_zebra.h index d00f348c8e..83a32108eb 100644 --- a/isisd/isis_zebra.h +++ b/isisd/isis_zebra.h @@ -24,6 +24,8 @@ extern struct zclient *zclient; +DECLARE_HOOK(isis_if_new_hook, (struct interface *ifp), (ifp)); + void isis_zebra_init(struct thread_master *); void isis_zebra_stop(void); diff --git a/lib/mpls.h b/lib/mpls.h index 472ee9bc46..635ecc77a1 100644 --- a/lib/mpls.h +++ b/lib/mpls.h @@ -47,6 +47,7 @@ extern "C" { #define MPLS_LABEL_OAM_ALERT 14 /* [RFC3429] */ #define MPLS_LABEL_EXTENSION 15 /* [RFC7274] */ #define MPLS_LABEL_MAX 1048575 +#define MPLS_LABEL_VALUE_MASK 0x000FFFFF #define MPLS_LABEL_NONE 0xFFFFFFFF /* for internal use only */ /* Minimum and maximum label values */ diff --git a/tests/isisd/test_fuzz_isis_tlv_tests.h.gz b/tests/isisd/test_fuzz_isis_tlv_tests.h.gz index 6f8bc2218e2f7bcca388a9f7185bcb2816223ca9..46e45e5ee07abe69c86bb889e46916ff29187517 100644 GIT binary patch literal 206007 zcmc$`cUY5I(>T0qV=cg15fQM0h=9^Nt0<^66#;2MNX3 zfkdSfAQT}$fG90M2mwM8LP+w9?o;+D@B6*~eOJzP?$hR+nK^ytOr&Fe`DNrQ#PO${ zK|oNDlRG#(+{qK<333YZ33mFP1X6tT(=wM>zFa@@_Jv~woiGo z;?enBxThkQgyDrS%CHe6p{dC!9*)o8uQ^4qE%jlOmP{ zfXo>Zi^O9ya7-4B&ujUEGb7*>gJZzkUX#W~um!loIZhE!kO7?S%jX(Mk(eB$LHvq$ z1TGF6!C#{$z_=thw_|8y1Bc~fc_b1KP{?DLD11uAHauP0Z(s$d;+85p@5ASa+IhoH z?FY8wGe}5eA)jP?$nOx|!k}(?Y$YK*y$N;!YKVqPQ3ESf(ZCR zF*YedJ3V2ILpK9WPI)8EmMFIr*IF4|20zBGrYQn*bG9+gex+-PpAQbVRpgUGJ{5S= z0$95XXdN2IQlnJ;-Q>>s#jKu-M>MG`DOwbCCF4Ms*zt3`1x@`9%fZJiB9xUEb)M z5E-0u$OpfwVQddUiN6(=XXTzG)8I>0?~W8MEXy5gznc--7eLXfZgxl|wLNV)uG054 z>PX!C#h2%D4yD__$kXFkA z(GSd&N4xdf0;ICDeNHGw_MJ1|k56ws+m{!camg=t9!(7&dx%ZVhZ@DTd{`Rc6!1K% zho;0BE16r!)&R|uq>yv=FdbS(EGnTDcp|>Ya2V zZU#_=2Gi0>SJ?COgoqT>FXs#2Tt8BXE0sADknI^d5dLE68ohaMsp3Wi2v+-T;@-sK zXxBy5!y&7A+rinPcAJ}sWe|)IdRGl(C_c^vd|5Ts4e|1w=yop=$t(a^7-15oq^%}L z`_m!DGdIK6#_;b#6z=o#yQ&+u$Lt*qy77avduJ)#p(9W2XXmDs69Mj#D|W}y5SuWA z3Y45X4%(C~^W`jKPUBlgP}<3A@$Q!Q<<(Qw_{uJMaIlKjHZ3fzd9uvmcKv<|2IllG zbv?jmYM7;v5B+u+&9NR%u_(zrz#R?fy%ueuzV7p7BSuw9jQnxc$VFQ`yGMwft=e)X zf;iTe7($q!wVL1ynlm4fkzItZciLpse>ObI(H?INZlGAWnhmNJqg2|)&G5mKzZyv- zeS3(WJh6|95s$Zldyg0N0q%PcuJ2sbJN-aC`dRf0v5%gw9M_=Y?LjY_mCibp#cc8# zHSIC_h*rOxIf`>5+?BND^(36RFL*y=r}qUC?GWG{qWKKXzS>8}q1Zp{P30b^Ab*K| zZRS{GJ-E`)mg~K^V>aBV($L6u3##Swwx`+eZ4dY=&LKtQ($3rKvjGs#riNcN)P0Is zwxq)$VWJs_I}6FXQ|iyvAesG1#*Xu&`ZnQoac%5}#p6>h23OTpdV{(B(NKdRkepxG z`<}=njXt2ER-%4kqd5?Bh2>+g9)x~Ex5{d6xZ2UMv2CJAm;r6)SJi?(Snpxk z2Ax!Pigy?s0^%=PEOGTam1k;_hq_Wj>5;Z|=e7ozUzxX$D{V3pdn!faWJ|_t-@Hh{ zyG#ZL46UbXuuf8ew@PMU3S55b=kcH(d&$ME>^pk-h=?y9#r&Rl#@xCheeA~FS_Tm9 zMj{1Qrf&PUr1cF$-hpU8`yRKMs+tF&{m#~yfxOd|ifH)pX$9g<6{aIVo~1TNEN>Xl z)v-5egqpHvd_Id*J}KuJl)yndxe(|$V^+`FH$uO}Px>i2WQ$EFD)|DUws(RpS}21k z>~0#WFqd%U zTg*mZT4kk&Y1)-~P?sD8xm*28Wp0jDvdJqdxa~`U?#b(1{Vb zeQe`R?`?*6>bDSIp%wwQe?w7#xN%kUOxiCqc^l}(keS2n+i>0711jd-nsU6YxoyTf z)@K>3O({_oMZDw43Z$y}3(vLs&eWcf$|%Og2gVxHl4-^^{@&RO0hu7bPw&E9(3MeY z0{(hGXgMJ$^OqoF%eKP`vO+$S&YFeDF-NujYpK5g{4*G_$J;R>QAin|$uVvanr9s2 zP!-J}R1aeZC@*QLk!L{Li#h9|7nA!w)M9miHpCTqD^?83x#>O{-JWdKBpX`1J=d!z z_#&plEGjFpKnb~x1L+Il4Ph3mJA6OxS|UyS#^1k$o)}cOv0^!lGjSKE4)tDuZ`Q8aYeJTl@_lcaB`aa=ie0KJ! zfBo*&zvCW0p-Fr@?GyQ*L$5@W_&bdKXWzBdUhZkqw(Gd={L=CJ@Dp?>DX<6rSl71W zEqI%qyVU+xZIcC@s^&e|$kN*RK{6E!Nl+157?air_VkmOGOs{LSp?NnSLBpwi2FfF zVCG>Ham_6SS4T_bg?ff#`$(KDzkLSQ@c|6|{2BT=pB@og5ezB{6HDrS76D$sRJoQ% z5E;}BghTm_z~1LlKp%BE_k|&3$K*}yUGnzXZ8hFjEp8Q!iu^to{)VFSFD+-srUFc# z2He}4+(57Gb>$f#?na5r0<(_5xq-a!0f=+*MQB2_cq&=Zo254f@Zx{4z2Lv|KgJVa z7o|QU#Lw!StJ&Hv&d2S>013&%YsUlqhC?%K@Iu9yp_ibNl`h+kD6P7s{CVdwg<$ySFpO zgq~yDov=5>-TnMN#R?yAt~ZTRsy(Jt9vZzGGba0EwfH-SIzuPYbycM501||Nwd?IO z_qO+7#Qr*AFGGJaq{4e<7u*_M%zEvs+5rMYMsQR1gwh<318G+tLO-YRk(N=(U=Dnw zpS6)5w&s6vq<^M@RD8f`LZnX+9wPky=Mwd!(QnD(isAm5t>oGDX|1s#_jaJ|V0!1j zOkTB8(o?WqEoGNj2QitNpXN%!xn{?d>BWSsylL4xpIch(Z1gO)delSg%7`mL?VQ!B zj*i&r>T+^F;|NfV&BJAun{^crsmZ36vIat{yw)Y-nrM}cp}w*Fz6M^#A%#fU2*2kc zgKYg&z#zN&1H;=@9h0W)cFejU(Zg~5j{o;xlT&k|)h7!5*lF6}w#@n|eC?bCF5`8} zjjlRXKxd?`d!F7q-{Zbm=>3w>lDZo1?Pad`>Hwy~yf|}(8@3quQddx@(@@8`fpOhb z=SlFjhf?CQ?pY78D&{?!YXvS@$HU&+{QdVzC~V}MC_O;{5-UGtXwhS!T)w&df2l(N z`Q3ReuJ=p3Ph{~fQ(b1SO8syMwXT`CD|NJ=oRXj>GtYkD12PHwLhF0&X~k^}`9e7~ z>kNIlCf8ng9C_^rOjw4l0e72$OT}_|o?8?!%Wu-XOzt2kDL%4oIbAJ>iD0 zomktL5ps^=t^!mtObcq!_&fAaxo9G{G~2b|C);vi=6R)reW=9k&JC%9J}_5Yvpi=^ z)thlJ`r3+gy$AZI%uqK?Xl!+w#4#HwoB6Zv5-E5^*VLyQbhdIGM{bxYHWS515@|3t{VHectjd zX_Nlet@=q^Fu$Wo{|os>XiPJvQk$IE8tDavUyyCN=(LRO%x*@XtR!*Sk7|PiiDg~{wQT1{bzBk z8m%Q;VU;;p%$^{$LloT472pIC6OJpu!@z@v;pxlESa zQnk84II@VQ^#vQ^Ia|033E5vd%#D_FV*Zlp~fQh#+|p~?8{|>^-Tg?y&^5r{s65zjVq{{jYlFug){d) zq{l%?s^Ni->J=s$jEGfC{J_}nebePS`bB6hT*5uiGe@jg#g!A@2%mVcM!qa`+!UE& zy;*afqk0zj>894r@VRrstDcLGZLfOlr+c0a|6JI+;d#SC209)HwOd{+Tv-0}ChpS5 z)Ud`IHWsVE^v$YwOXH*OuqI&EJ)S~ywZEm_Lg>fLO;nA>)H}gxTFlID1zvRdHU6yL zoR!Y`VkVMu1ks)uYWk*mi6miHeQ6^^XIouW|LoB3=0-}Qe)aw;SI&vuXp?cfS?;s( zke-%OSh2Ux5Wv|2IaOc21;X~G@(dU&;0kJdJm0^fAxD!97-!y^*ye4PjuZ0Hr@Lxm zl#(Dm04g^^TRkpvIBdkBZp}@)kWkjc`8mu7K&&7978IwIVhIF$o@{I)Zi?3Wp*Sm2 z{HY79*&=${jkp72^P05ajOm+uoPCD|H?re{3oDH4Se{ct`3Ol>FYsqAWFv5rG#f4 z>HXuMf1hB2#MDsZn+ZeT*6U+awE$8k66X=CT?OHjS3te22GmP)*i>b6AdT613w@SW z-oUZ?A$S<^$KHbFFi`eJYB}@)^{%6Vd4~gQs4Goj1&&c01B=U#ijtvANf#t+AZGLN zg6k)`VCLXrz)4?wrybhbxw)OLVsV#;Auo#^tAaPOmagGejfYX`u1?s6$+D8XZPfKR#Rd3&=O zH=5RJGdammHp!bW9;DUjJNPs)1`5y>jDf@uGj1&$i3-X0la8~%D8*6rIuwXyLMLeb z_4$1jX)lzg2<8Q#Z8Esw4}eKHwz*(xKrNBxaKe=^ z`Kq!0kDgd3r#Nnjgow{O)3TnBmAjct?OK`MmE5D>b`HPn9vJ_2HG=Xw+XJK+--Moz zkOhRRQzx&pf9WATtW9*Ai@mX^efWy^-L3MH0QFmHn9A+hv7ro^E4WfmclDnD?+R>3 zKj)!T3bVmuLOH?THcszXQjPx%XU1p8Pb6wLK+LRfU)3-@O{KSGYZ0rWELX zXgT~@+4H+6qnVh}{mcu(CG$Cg3y*V08fA5H(iI7!_#N_>e7VS@nR-C7;;|83X){6F zYAWG0^O1<_o7eYO!% zur~>W?=KgZ_>5|4W_wmy5?3gDw3Xcw#MXXeEY zzG>@{^QrK}nB^xk2ektA?5G{Hthx0P%gY6H6~9~dcC{wM4WyT-4oej3H$9pm$nUNFJoM_bel7O5N( zGqUl{)~NF7`Ag1wO&)wcl=5#uNt{q$+9FI*Us8h<65yr(n()>fT%b}seg&+tvksYd zC1!oFN7JUOZ>K2+6`;Xex&fgkR`>>aI24*eqn~IR(x(f^;rK09Z=VVDll+D1p{C`i zzGCG<4=Ll_QWJ^vP@)Z^-zXr5r z0B8~$KHp0HO=P#n^+pQ9s@n2p$>W4Vg);NIVL`5^!QE9$M;2WHpj~cG9Sh61sBUFv zYaAFjP2acAVfH?fzXKlZj~uSU-k{yIk(dYq_hd;fDs^3_s`x_}YK3lJ;V(O) zU3hF;RD>ubJTa^m?ASZC10q!XR=~OsBvVlP2rG4UyPz1 zzHSx2)7#OykS6Hx1EpdKxO4k7`zvEJ!2`jQs7zd3Mr~h8LgIEKi)uF#J}*s(1h0W(0GZ1s-GSYCnc|N~lAs3=Ech_nm4qb>g{)A9i^AT4R){ZanPxAcyF862KFj5!0s!iv(JBB`6U&5~(+XUgH+N9~vl@sYiow0L z*M9jwvjpub#`|&?0a?N}KL48CoTT909!>Y=lQ;Y>j>IbU`~B}&Iv%x;lR%CBj}&mu zp-LsB`zpA|A#~9L4a{%ozfn7t=F3fYGy9z?jxtJP7<|A}ma8#H6~DETf8&RA=SckS z16j6zqlB6~X7pHi`h-B+5FFMcnxbOs*UtX5ehvL^i&{f?N{o}eWLV?s^a%$W$vE8W zFm{z^eNcFq&m8x)MP~FnlUyaNl9K~-HtxKEXJJKXwK7vX<#0Dig5&JSxdz+in)`2< z{FM`EQxt=LjVal34DG03?>%GN#ufoVcR(H@{OkS-2Gh0QIW#u&O9ATz>>l%b4f<~s zC@ufsaP*@Lu- zfk&F1xkSQPYlu8;L3^?ER!2aY0a&=E0EirJs)t-hsK?*K5Gm?#VzHx>F99yyl^I9j zEO2so_fx>zi{{5KB$y>L6Ja;jd*-8*QxS0|*gZ`&BR2*Avy^)S?={g0HX`X^T+bpGtzM0=3E_@#4X6k)A!~|CYc3uT7yFy-EBO4kqmYDsIf?b9BIRFkHl-U zEBjx6O7Op=DC{}adGF>#nD(#67Jy8#RM{b|9UA?meMWQiX^`ppxRhjA!O2twRl!cE zV3PpGWa4KW#+OdoN2lXKY3!#h2i}woPaX|?s=4BDaTg0ZB@k9TFfKzTV50i^7EIHR zX7`mU1tN=BdfwB16&_RM=-2o`^a|w$t}&#y&AZ>CG6EW$Ipl530)8eCJO|$3P(JfJ z34`+h{#e9`g-fO$9-Fs@j7q1@e$;?%PhaypSM`GW5ub9I-Gdr#-AM4EPz4B$HlQ!n;Tb z{v(kh4Wv7g<(4Nt=`YR)E>A>pv0PuGn6|VF+ygzMB_fuz_7GX?Sx46%d)%~TKZK&6 zzB|?9RBtiV(=kd@ce}xIoEh0bkmtP%N7?N^HEDtWLBVK1SRO>9hI=s z#iP16k~Czd2Vr%KiB0lJ$wOzuK>UmXqb*O-1~u?qDk$IPhR@TM0@u)(a!Y~w`fQ!8 z`btUJAv1FO_{ER@E6kEG3BsqL!Z$f&d`m6ApB z^NRFO);O1oP>qCX3%r4_b6pJdA>+$bqUajvG({0Jw_3W3;$E=9KA57v(VbWknW)jQyIKDyKBIvmKTfN0@ z>yZfw+Gk>FT?#u1MX=Rr0z%Y+8ELwiBnQk+2`&wOdcc54fF%ma=Z@0kWmVXr$a$GxZ+*{n~C`WL+ z|Ec_fLY{^{+@EPiv$r|px8!k~6Q)Up83YbE57zcf6&ov*J-?$=+uas5ojw8kKwfMb zw*m$P?jwyUq3GUDK>>%m{0H8kH~PQa_Kh*dRTCQP^mcpTJi!weeS{31 zvNB^I)}RkO+*1wNdUxFYQ%_z*lh@C^cIz3TY=r@=>zTuYN=SUY_V^ptVA$~8+$xFF zpZfA6E|AVuC}*&i!g}-Jqwxo*CmbT#IpAa1OvFMGC)|W8 z(NyXXvLrUqNadC?sS3nbb$*3_lW_uZBqjn?{Uz8aoCgJ`h+N5Ux-eeh!qhhrM zQN~wC?G^41!@ABZz6E>rDU}t#%V-%XS(9@C)H#TOPo@PYORxXTiALEax51hOk>6k4 z8DYVeEn3K(jAp1GsKNiMl(!gKJNwIh+5P9Kr%xIcI4$q!(DXhAa7Q!=A}7Tp2+^iR zUyzv&>or>X7hJtFT4aL8+kMV)w^UwQ%*f@ss(;9%E>Cy=Dm3A$btK7O=lmO(x^5|S zWY2y5WDUaWY*@Rw>llPu^98W{am>tu#8YAN7w<^vL1OmQ+d<@FR&3wo<5gdxH>j^| zAxH%CHq_f5qh z%?)Zi_kqav5cOFRU$)O5!@V*imoMjwAH_M`EtO{l#jj+~|0dAR=0}OAE+*2EG45VF zY}*G5Ol8u-*@3>7Kp7p@Qx+9Hp(RCI>m2#Z32w)$IlV7OI}TO-CaIeNv%u6tPcz3Y z_SW(xO7kDfS3;W~VNHi#YNvBb_JKSj8$CqNYTM`X4|4V??zGhB0)VF|Z+@;#x4Ezr zc#37rkrLd+)^&1t^8>+tx+4`Xq!%6PPOWY@qO%2S7|CSNk&f6H5Is0W_B*%9fm z?Wv)^TrQpQHG&d4kh8e6R^A9wVnc5=87fecCmOSN%?3PP;bVNMXqDm7a8v z*YleL^{^uMhtE4rLm1he1%%zpU?kT$?Tdr@>t7G?uSWgBENH2~H*UY_W&8Wt!<8ZJQbSrrHUWUeiqoQS} zaiit@-HxVVn?){mVPi~R0|LfxW1^x3?v5{j?d~Xk`+jP;K)76F6BO7^ z5FUdrjWNYDS@`l3gOq`=n;1av%O%!(T*w`6x$hHWQAn8bQa{1X-p9;P82}T{+nGLJ zgA|o!GG>FqSAk)>9j{yI2p=llU)u{gkO;KW$>-Lbu6m*?BAR$q=Hc^F$FU8$g1dZP z<>c)}bD02w!Z4vPEyt!YF9DVtGYCsXAX64z9lC6F_EJp;c`!M}aD~jUF3Wtf8EL05 zg7eD=+W69|yVL}O1jXB&A+}+rYEj@bvZ`BaY`yZ5V@nlh5_Tdk_RajxK;$22CmMOW z#S?xX^Jx%^YwOKPjxGx=snWXW!XMM6jJ)iEjZnrQAw{fZ=WSc`9*|{_)OzkhzIO(P zIu7B%T>g{_d3_Hx*<|b z(12}6Q*VbIblzf6Vs{myy&mzST6bdn)Xtzz<%8)M(Q8d0n=^}p%UDa8beQXI+WXj|qa;PP#Q2<{cafCQ~l5pp!<>h54rcB6E8jjNHAcY*AP7wq!U< z8}6MsxVLdL);C{lYr+&-4&MsHw-+pXuIbwl=T7T~c)elwD4hJ z#TL}a$~fE;)Mq{toLwqvijS3LG3345107}E3CUgBpBg|BgdRyw&gA%&nT(VVZ`s(I zrFm9(aHOPzyHJ^fo|E#{o(V&XV~l*yj>^eXauY6VSL;F#mscNlb|=5G6fDQcN=Dj} zd$^g0Jj)JtgRnMWwxGy+-w35YS{_!CNT8r*CimH8>dx#K0p4kzXU zrV>y`-gCMdUBai&=!THdgIXS72dn(l;l--#<@)hplaQoxaq;^wO42FITC@3*;M($w z6+8XZuVj9#OJ5jx9PTjDMSIWYvctCEdR~3))#A@PFgMzxdN}&Wu7w0KNnXle|DbvP z2|@MT+C6oV)R~u>>qmvWg&?Y@ z4K$lYT!Q6BbiC99fZ}$XU%znURSlE=xDpy8?DpZOqy?H{C4mgzk@bx$K^ zg-k{O3b$C^Ckf-~!AZBJvM!}}0y)?7H*Zf4UM569)(SnQ4aSRS#%`l`lY7*B_GNx9 zs4TiM{yHk?hB|PEZ@1~_>r`o!j%9?6eMHgWO1VEv$oY7&)q!+v515fdZAVaPU;FV2 z=tAgu0Yd&2nZHb4vetMl5fu3+iVJ%t-~Kb={-!Zt?JcrxiEIn>7yw;vD72Ypq!C&Q ze$*Wz^DssNOdIupQ{XDe+f&{~h!1oIn(3YEK0#1W&Y* zA^-uxj@bjlyB(4@nc*jfCKsA+SPS=6Jepdr#-}-jkEyEVDIqKd&zTLL>lMluZxnK& zvIP<7gACCH(x`_+<9Kk~^{9jwKgJk4z6DViI11SS9b}*MYAI1dgOMLqOQjP13lDR* z>sRX#r|AQ0CmP{<*`DBVUj$e4*{7uSFg$5CVSDl{yf1ozw!l~?jF9fp9Je@k8Q;og z&%SAalZ3b2hWZzLYmbo$J*-$Kvt9)f zArL2|D#1BiyflB4-l2r0V&NQ4-39rLK zw@e8pu5IeK{Cib@YLzD0kyCVis2q+?ZGQwz>IBo;lm)MXL=g7dF^_#lJGlb^P+6tV zw>p4!%ljV(n`NzF1d2J0BlnNV7FK4%UOjxM?WvTF8c2LD?C$@H@ZiLY^T20S*KD=y zt$mD(-0da0l9y1lM@PrP*WsY(Frx(lT!m37bOQoheU^;FLo zr7nd-erui*4+nrs8Me%K6dXe0f>nD_=LMKwCL#rQ>7eBC7nUNiKDebj2t(YGFi^9Y zaA@n-%_;fu8+V7w&G&74;hsil0hjJ^a-7U0$V|_v1qzd^_pM|48G>xrd8-0g3e%RGC_R19~?*xp1W;h-{oGakg0@>19%GF?l zZf~E9v>1bm*+XynZO|9VL--DI#X!h6`Wib#5wZytU;)31*^k6N@O$mty?W1Q?R-PC z2|5m=O;v~TyxHX;nI3ND2tijk3;gxtoW0A&O}e66?AN^-Rc)!WMh3_TeJ=ES>tX_W z;N+@kK?^f#H#oBCIDe4J&JRZrxZf%*fEMc%reF&KyHy3 zI2aU+_J>M+@1pUbuU}@A^Si9FMyJ8MKRYv=)t=qj1_$)#n zICq66<$aokATA3LY5;56rf3E!GRdbgOzDrYk*1 zScTT8s%lVXAx7!ueP#|A*c>hpE}=CiAyfejQHOZ3?+U z;12<|7!a5%Y^`vqV$kT`e$QF@X2{_WXvb-V=DdvK1@|X1lItDi{T^L0?|%F=BGFn* z%k4}|@SDT~au7eCL92EGy8Hg@W5T=k8;y{s0d}{izO-^VRqWDh#dEJziC*EfhV#AA zHV10!b=-9-Zcl9>tOy=623h)rRxeFLhMro--{VP#l)}VNjTa?!4w%!Y%$n{-ob5H| zlx~fI*6VuzFg(1cBr)%K)9uz+t25vlcf!Nir3<3bilceAA!Y4B?`c{Oj;J@-H5m#d zPagEr<^oo_FNmhdKkLTI{YU}uQs^fDBDzS|H`i+)(k30JKuF+3yT zj9LtJQt>KV)M0xR5L5Jq^7J;tURg+V%TOJRUK5>>ZV#{PvW(h+3x?o%%@-uoHu$Da zEJxeOW2ZJ9+LgD`y+7#BGkJl;d4s|q@6oI`+&&j7bQHEBBKG-fYKXzI=|F^^(^Z?( zhRx|p#)^xcu(I{MDS!9_HRdec`oQ~mgu7)TfskHRws8%a`2w$?D?L&DK@MWqgdYwL zdyZF--7ZV5$jo*bOvY!sDXTd)+8*Ro?K99bqQTB_*6VvtcI}6ZI(1L&3e*sF_tX7h zC-BdA{C|BJ5AKie)O^)oFk;ZIAEfB#W3KTgOfuat;YJ8PW2l*s^{@aGT!o^z!5)UY z>o!z4*{Y;aw6CBMrXza+HM#VpFbtr-p;?Pi6T7>YpKqmsB~(i+e^u6bG`GY)q>MAQ z8TJKD?{tJ!Cen&Jr5rm3#@_o;Uh3L@iP|%JV*KDT^uyYA?m8)$?MwJ6578X|#ow^h zVm|mhEs|J09ca1BXT4S;oVw**2e6-xQy2D@n9wh3vM=#x887lphHFDA1m=XVHkTf* z%fvN1@|_IO8ojV*r5q)pK@g|)dVywQvkMard{D`0lA$G1GkI#M?h39oM{TK%ua<+j z;Q@_Mt{*xpW{I1U8?6pokHRZt>LqCYdM!0YM=T}iKzuMvF8YQ9yJrdy2pT|n(}eEmz>{Cg8XprjII)2>ZskgjQEpl& znnW$)c98fKhNB;(@BqI@&%g}7a|;K)MJ;1EydxJbYWX8{N-T@^J4#$wDVK{jVKi+7 zH)776wq_TMQwHiyL+tlZyTrDxb(EM}*@k68sMJoiy5W%t-UCo}<5alI!b9x)*q!li z;{^6ix6R&&@tN1RArlD>{0o^h-kK!GF6w?nDsi6AtYgF_I@DpSb6kD@CdBS&b!%B$ z@;4)XVciH*F|F%De=~vf?m^d@V7(_!kO1qGtzp`&sYofe`sar)uJ`qjJT>oxT-c+g zvhD>Yw=#$H$M+Wbtf&&fUmRBQ!-{lzhJl%V;KfTZ)@FTS1^Et zlbYYGFrOzW!+nZoqMm$legG_DjXbq`jF>0b>A}=O0#vW?X zw^aK^k`$%?E^v0e#Qk*Gx2ils&o0bWyz|o(C^|DbEv~#qP9w8_Xv6y;6Gd+J6p=!a zlteg-eA?2c*@yUF-%Q>#3_IHpGPg!k-V0Svx*N0mar)uy$Xfrl$HJfDw{-2JKKy1Y z-7f~@E?q7u%~Wia@1Z18FV&YuKb3=5#z-xTGA%m!^K5O+4|3ZB!`ivjwd>rkmWcAm z!|0EN4w9>KEKxgDb{rJZ_taPhFI6{rqr-$AHj|`u1z$#g)W&d)uHd=UIj6`o^3lddo^Z%bvN``nFdJj1YQL`zQ{o3BxfelFzFhrE^@z z*TrdMr|($lUkW;IHQAUXyk!Wt_=2o6 z?K<}?FL{@XTq>b33Mt?ENic?37@=ns_8PmJlCUMp&B3B6{*UbE2af4h z#6|K_3JtoY1(hs(&pE~Ix_c-VUVa~bc+P(S1WIC#H8i+5q@YjMp20VqwZ7l};;gmx zr;M=vx!xRM2Un>epthS-P=I!xLoT0uTIWa|ZKQqc_OULI@=L zHwHw%mjlG54WkA@gS3V%R~~3`EAs+829caxlg@w2F!|tK&eo#8_M8z-_Xd0rDJ;K2 zXwsC#05fs%YHow`FZ)Rf8>##8=WEgjNS|@v5jPo-_SPFI!=?k{YNh0denbqG3^vFC zgoqtm=rW#l!^lqVH-mxig<}Ru@5uA#sBaq@9yuV;_-9^Q>QlA&=qP0+L?`-pwNj6& z_%?W7I?ZC1XIw?=8rw>3O@>h$KduPO`P!CrE<=CeXgSe zqECs24OeK}zd|5$Y{0y&*hgXho;sb!uKJ>oNQsHB%rg^vm!7LV!?Ve*g>0uwx(z>b~X@!bj>=g*;$cs$?gE>H*~ zft#>Z$ljWB66lb(=8(+63KE606eFEH-$!IvEej*;Rc-d*;Etr)|ZwRUyPm# z3^1sP#A4z|eJW+$zV5t;B=-u+@p6z(p%ivyP;$KSQE@Icox4%G*Xu!V@ICP@v+GgS z#M^?`hdFH18}VmBQ>rX9A9;n-P+FxuStBsH1ZRw}@+8=o8qd6bncbi(lt-GE^E|Gl z_q=S>Vk3b!V6bJ(Uw|LoQu2QbS8~$Ov3@7(RBBkSzEUeacXcdxIS2k{DYz4Nh#9U6 zslGEmzuVSWATd7H>OjNGxK-oo17CQb4Y)2WABS(tRwwLdZ-}G4qx)F(ayu9X0mJcH z~5 z28whT_rBVGbZ{Yk%H%*t$07A6H}bO{TRdSyH#1#A{=7+!EUB-!2{c{A{u=x2T?OAC zdD`7_H=Md3se~lud4(*W%hc%fztm_(I#uzaN6|xm{n_C5f%V9Nr@Hd~7fsa<4l0X2 zI(_}_koIGRC)&$ND`+z#thCn$6A<>!mx5Xo3t;7K!h(C8vpc9TKHb6Ki*R6wg0!EPcbEDa~`_LIY0$ogx^LS3yHjkucY zWl-r}SVbuxHH9`dF<5bfjlX@U1dmkUL6djaY&z}_C#2cmH->8leUkCEpF!or1c&|6 zVtRkPmiMlqM`#{0>tcPR^l56(t8^4 z%>{G@pbk=lHn@EMOZ%Agj?Qpaky$8FXmXdo!AdQde&`$fHyxI2Ew`&W_{^n>MzBo? zVnaXCm%z3r8i3|b)1uxxj&(L^c6){2JaY$QT_+`KhLw~`Pb|j*2?c_4{QLM3)%-yP z!AjW3tc;U?QZDm6Tj5sFq?C`5(=Dfp@ z@-bC@s`cbH0Pj~BiCcdA#``0`mYm{PJ$a!ho`Cd}LOCMF8z^69bf;4}#E%Xq8WDF0 ztJjA&QSa(wuQ88OfmEm$a8w-vjy3bwkR1FSqB^Q)=s}a)vC`#qDR2KPXXkI?kmpSF zn%d^T`b#_=I2!P1JbnPRD4U-oBx@oQcyzF0p!s1yXhxYx z_z$`8QZ9MYgUHec34fOg|3lFEuVT;du@!gA;8FvsespE_4Lr47g?)m>cmErmzLAft#Y}6w;Vcr&^P=>s9;}~ZVK~!BQ1Cvq7T7C#i@#H2> z4fI-hqKs$KeDYu^(qwQ2w2;BxTolMVFxym?0et)Wzr<{#_&h3&bf)^2WeEHG7FhRh zTc8Bx`xZ#`c8)tbsGYUN$%+5+zyqBr;`veUgz1sT76%_&@LWzeo9RY-kX!bn1{=>k zkZ4j}_9kkc%y?|3yX&*UP7GLcwr&-o^i^l=&8{6!R=aZ+vlrBAW{UWp@tG5D$+}&1`&3Y^PK0+Ip?~#ASAzXmn8SS*7~gPGHTpbxzT;!+JpZF$~^bu z(=9Lj;A23G^3ynwLMQ6$4}uyWwh0@EmMFCzyBi=b?E5)O3?JY>d-%wBf&uz^PivBN zG-UF=F8?6E`vOOPKmP9@c1?a=284y0=?c>#wQD>vm=l8NypLRSoK`!l0I1aFbOu|o zJar`65ZN=N^WNLRPL3SdxS{9Gi;_bSFcV!8mK4&D-O}VNUChCXUM1?rrb%gaTb`8f ztwta}f)IQQZgUGQ0Jn(-Oyu+5`Oh0;1q6usr1 zfvRIJI>)G1nAO^6kxMtc5gGh|NRN9yThTezU{|R zs*(RCd_cO~YR`4%<#0hw5o{dRk*`;j-?&Ow9)lzyCs^-jk?5!WdWmo&Ke_n!jL!}ZhkqW(T^!ED2WQv21u5ZX zYD(D@WJeWG!Zt>{-a@S$`}viRPMPB1ZDXM0`hs<%r&W&)(Tb*k!Iq9zvwT};e(EXO zL?{CwabqRIYPzX9y3=TOv0E34Oi?J|rC5WNXQ>*k$75P=bh4}_@nB^!xF6d_Gp4o1 z#ed4Ocn{zEzHw!?>!nH9yLKesOGY(lCiutdvM&oV2S!5=E9N8BXQo}?9r=tncp)4o zzAj}+44Jq{Ik7*r(@3_*IBVgg!(m3_l153?&B;M*vA?4M^Ux>Pc&Q9C^_#JoFKj=T=;RvYp0wdYv#6 z@hLx<8Q5N1ds??aDBNDD$auQ;R|D8iLgPGzbZ9Z{yWWb3fdDtA9VT;fc~^ z^OW<)O?Pnw<~}WW6`VTVmB_g1Jhif9#mo{n&urXv=2acMVs{pO4_{^B8dbmMU}tPs zP>0rg6P%_(T7fz%FnP{sR;TsN_>}1tb3KS+Zs$2S7W_cD$V{f*n>wualmEKi`F%Z& z*f#8zRoo*~(OUZFa?I$rhRao`DSguV$wkuSl-wJ^S^7cp+NA-X0ebIE4?0}!B5$rY z@{ND5K~c2kt9}kk5?;QZt75H%aW$ogJ~e@086|M z*a4khw`TyF95qNNfMbKx_e*PQkYXH=iDBN2Ay(15{zF!S@1k`~4nFIwwX*k3^sLIV zi*Makj%U9Pq4j6WW~x_4hx|NowzI!8a8|My)@wmEYf6}H8k$E`{O6_g0+*jbBdzCa zFWv@VeC5v}eY}spq)K6+8L)e8yOq0+QiD>Sn{r2`vPvnnd6MHs&mf-kE zlA@6x%BGb4Hds)5@G($$iTk|z`SWO==0jK&d*1H_|ng%SX!t~ z*{dy8HMKPjjKK~Ptx`Iv)2Fq~)TEcfct8K+B$_+xc828g3dk2Il?hgJ7Y{eCsa}@H z3VM#YWH4-o*N)8v<2btInmH*PX;$BW)`&IqJnlA&{0sRTGd;5>ZrI3=I7m%f_wQdCpgI$kFdpnKoG7+|*eV5U=CCki}M9nCHQFf1*2iUDklXK5XytKhTm zKu3{}LZF(#K|tWw#MS?@VtI%jkocz^WK!^?8}3Jmq1}?g_GJ%WGi?+Gvzq40N}d!V z;T2p5o-dys10ok-ZiF$kNu#^S6n2?x>iwJpRcQN7iC|3HR&zi${*hRM{SUs)U;+$d zdCtx4U*IwH0*{cg+d=ftuvKcvy3w&09Tz^bE93|d1|oHQB;?e}ejuE*lg_U7)To`k zUnNm-ig{QRAn{SMHCuv?0vNR5e?>0w*vZW8n`xRIW4J2^4u>M*qUK_2cXMsse9~VpbMV? z4tU_quVbUnDLOv143~uJKuG)RksI~EY4D01Ahi-TF_N~ptQ7v;Y97uK&Lb5-{9g~P zI`PFMtLqsd9vm}n>HZeo$6VgkF6ut?mceWkWD%qlnEu%}Z&H6_ zFCO+knV&N|>*>Ks&?X-ly`Vq`^R=o}y^{Hk$L6;2<}tdPzhvlYpt0M-Q}YRyU+#Qy zifcMjmz&S1-V)9bQLaq`2WYW#8-BT(pOZiOj|Ows?nv?s*)96R>U3cA$M=oG3{PCp zxA@31zz-~!>{#LxSg4&_{PYuDiju4E_Byzrin`R_C>Q-pUaoTVqF;}JD?2!WOn zss5>E{o|`=XbApmgC<|&!%bu3kspwa4yEoE$N>Eqj&R)1i|G^+wVo%RPeiS#@ z*6$LvN56q*oX^_J#qd&9C8U?AK-Wr%{Yrp!2j#{y-?^u)Efim-~(?$ zcjHbAkshiynAY`v2~S(}gxg;_sF?@Fwg`6OXV1SRA4haP)4eM)BET#QgPv0_6WI0Z zY3OTR$~I_iobF?@7i&!V71CJZ0DHbkVXEjf9BHLiE=ak^fR;#p@yVmyV3r9|CirKL zZ_j+kp3V$cnt=n3(&wKs?yep$&iQp%{Tqb)u+Bv6^T++kfo<}oHnA>R;s(jVt6~sO z-H|+nnC-@OJEr+b>I)Tntk=suXNj!pShs;`Yy?JwlF!2wO{uqNT{etG8qkG%zW_R$)Xtw9=44ziZb@>6VNBSN5CWxN@$i2%8mooWrEr%??o#$Tc zLRG%RJ`gBQoOID8SrIBh0+MOWIm76iglbsJWnM9k8=iV0ETRdype;D7azJye`U)Ne zpN(MgxDydv*l4)LMQ4j`o@NR)Ov0>|?AJF-4d=@MRBMd1zXr@~-Aj=O5Vg^CpMY12V}yTQYDpFTT)F%uqhi37iIxt;H1c~d5%-#i z?f=`(_5cB}~7bjN) zY&h(-$-Gr%Brk_R%1k#CgpJ}#g(y<|{QyH|lbwTuiLh7hGe|kzl};Ai)XUwwEyS>L z=fzluz}*i*$9jvkJyS=6Z$64Pm94`>5Mql-V8J`XE5^g-Z)OKzq;^do0bUG+M`2iT zEt#1BI8S1t&t5{KyTWd^&wDPa3Oe+~Sac_O9Cx}%epVaTtsve#ajpA+ex zLM!-sVF%+6kJ{ZiMv@!=Kzi;tDrd})a2BUs?GwcjxL5#4AxPA_w}yHj}}r5?8F=PRk<$aK;6<0Q0!ratdF zco+ScZ19T+CG+_~&h}^BzzF!u(u@KJBw>l#ZprQq-kIoMH|%F~U7ozx)dL;=8^$CnS#)Kg%t z-U?!VrRWKL`yIp3{-*L>Z9!P-Ug= z$=oBTnwqP54680MZ+CK;$>JTbG5Z#h@37Sa*h!_N%7i+JtecF&e_fva*d5nK`0#J? zi~nQL=xNs+J@)jkWL#79JY~e!Sw}>yA{hGKz%bh(rd3V&!@$!-UZ}rXr0OjaG`;PnpYB%sB z_^9oDVtwx5x)kOC=uOgSi_GSui@bU1O{E*WQo!pR9%M*=MtU=c#~Q*=c}w}gW<(#R z37}`it3XgZKudXEtb)4|T~%>1+D`>bCnUy=c`C?1;!pf275~)VgHhlA!Mx%wv4xDu z$w7dOQlxyL&(cksU|`zux;)@?z%yskijXxq*InklLbdVYvJQOk!gT|++9ckAHnyL; zCn&8!L@FPidUisGIG2g-46V;`ddZ<}pIZ=)W~PtY2Pe|KQlyqk1bPQf>d51m3yXA>Y#n-gJlhK){0&n zJt&1dF!`Jw1k=Er(bmUCfl z!Qm)jKXWD5y)|*2(-@#+E^mpAN)F5P(H5&C_YXl6X2C;IF5`n4FC`!q+Uy)QJ-cXx znyXf|5&?CMsR*#Po+utWFdAi@YOm9;e`qVd$J@`qTGvraB0IO@fz+bN-p&@ahv5b~ zetSvZ^f-vnz5hD)f0+ng(kidjeJ1a;`-~ooa;LXba&OFFikOBxM5Ai1-Dn8Vn{6Lf zTO+I?pYpBvgLNGpUt~UtI2JlvJVti;T0HiI5NfADwYzFBn6qhsCHa-Qgw&@eq3``B z8N%N_Glll5?4r{IQ&Q9uQ!yIg$Q1W2yNsW7+Y)GnTz` z)3RA}(?-PnXK-wLW^-C+_57+%V|)6MeDyr$!Kti{R*DQQJG5ohKA{Z_K0R9`73ZE1 zS`}brd3VY&aqo@=y(R}1S9xqq-jQYHM#!71+fYMzimpbMc4nMv&hd#n$_+Xm5vkS9 zc{4O}Ww9JRs2{?v8&zgk70KFaOVNmMmEez0^)4P} zvf!|>kh+$jbupAR3ijdPXnD<(2XE%eSDf}-Q5;6|)n*^3L^hP{2_c_2zim9sQLHWZ zU~`6{Pa3x3AgRgVb3v(w@Dj{gjADKN;KwhG%z>q61ksts9o3*9Q4b38hW7Yw!Hg|66UGvh=G>o)cV!y`uYv{nVi$`W$5gt zStGQvPL{^XoOrqd^e!m!YiO?15q}sfySzObf)kT{C+{aja$vXt4;anANm& z(9acK-MqL6ko;q@F2UJ{8&_#N8EHc{wt$CSc@a4e z#?GwE+^9K|57Nm?ORtx%z@8@PoW?{rhUGSJX8ioDf3?XtYjVAgxMA4;Zlb1gmvLG4 zsh_M5?prwbYS+M?oh@v?FB8%%ua@Fa*=uQ8$F-|+4X!=uKKqOI%K?5mN7~6B`}iWlzn4lW}d|UfinxaxA|p40|m9%STEa*3_B)wyyYwv>^q)-s+J2p}3CUXr6A?FaS zbb<}(^U#VXOyXIaZ#~m8D@;qm+h?}*vEro*`G}_P`RBDW zH6Y?*FoAaD8X-1U7rbecst9BDSIN>NmwDX$a9_WH62v z2Otg_l@*X_aR}%U@(l@emba{yv>@u6hV2J^`xIYqnt!n|h$77OoUc4G5?*_LK{=YK zKD1K51Q8!kC=5j(*wULCDLJHEgfzHZo-1)22yeSw8WVm-j(LB}dTL%=`Z)GMc=`N+ z;*}J43%L^i!*42#N1LU}qR&IWoNftZekEXKV1edl#K16@E+A`2_PXFL*H>Xb>pzwL z%s+~}^zrt@98?D{x1|M5@;=x()^HTKAr+BOAxO4#m(=aW5bp_n&bE%iFIBew6u#~n z`vc-4;VJ58egnpurS>@Q7<@GNXsuD5#<$)&rCddzAEc6shlwWT@Qt`r&@BVd6nfX&O|$+jpYG?|cn`oTt_c;<{1alT zqK!vCb|HuIy>Fnl?7ei|b4DxS_HQI!U*#NKySQXj|4Z;Z{qhy5Fsur@%G=n_=7y>~Mr@LzpRlM#%TtxQL+b@x)8={O%}1&LHK zW9#5et0kO|)_B%myiO=rtg5F-gjD>T;>`syw1(>V=NS1CJmbZ3pp2HhR)(h8r24HD zY3|rnzAl*euYc~r!tG}=k%Xrr#B>~gf1hVAAErDpkUTYT&s^WoU8Hxp@(0J+1?GXE z1IpB--xLSFBN}?DuFa$2TRZ)hxT)v=3&{17?yx)G7 z^c?D;GAO&WYrBPQ>cW~n_s9^c^tE^|W5$dt-YWsLqn0vdCJx4kRM7E@3AEg<6b|A$ zcwK2rTz|bA^WG_+m2aC+P)r0|$S7%dV;rz=Ya1OmHqSF*I=47%R;<+eX!kCSMJ$d^ zTxq=U`I}3x1>eO)J)_t)`3YwEq_`Tg&`R{Jv9Q%6HrcHcmwBU^qrhriBG8p(om!hV zrk+SaQ$cvd6uF()$fO%&l7g^Ime2?kT!DOxX>09RwvW*dJ4SADhfndu*{iIXTp5~| zO`qFzBw+w1a)VzCNAsKa>!6SGTH~OBUE&1y$xgd7Bv$}3z&Ch*#-eAk&$M{gbxeM? zJMmV&numVEwCE@Y7yYo&9Rp&D8pk3VQS-MsOIf9 z;-l(>W=RS5t+s7+rL|rf6nX523;uQss4%y-cL}|=c@U#-6@oP!x)Iq&L>JTt`Y>rc zz)-0)*wc8N(fl+5TW%r#N^ukAm>$AN!%>e+LIR>bJFM0KDOc75V2yQ*eossFIHq;~ zagq6o+Cq{V>>At0;8;&pg=alEUrM}hQxEjhWwx^I_C?9IYn}--ldA2jP5VUB92}qf z`r82b^vnQC-1SQJ<)xFljDzo9pHOgp;E4*GZ$V@}<9WQp#J-Swh0C!A8B%Q=>>F-@ zI*z1Ao1iyFS69cv`aMlJGC;^%Cbe>TT`| zr<|9oZ)bRCQsUWe*~3>V0Q0|Ejt(AqC&mmOM4PiQLIM{qSB)LMS18GPe&O?2#AFFR z3^`&vXmk78c;9&a28|5T)?ToWx$MgcKQ86xD2cebPxpfqQkk0V}3-Dpyj%=^Ki z)YE;KST&^q;`=Q>@Rw7e-+_f}AoI>9>ieP!jZVP^-V4x#Pi6;Hum z1Nb+5OEl$!n@;>)!11Mt8(_bfxXvwUN$O|ix8~tP$p!-*^DY($p!HsFO&!fbnU#Km zDo4CTY&%`OL0nr{tJwfzo3j1@rYVOG$U}Y6zA6%zWLGiJ+VW8texn3gw{xH~j9+*r z8Jnkt-_Y@d$k3#hgrQGk4d9Pwf*$34NGsnClyFn?hJPY!1-yjl`jo0mtnZ4y{#4qs zP{#KxJ>wc!*?Et;y%AA5jrr_CKJfwsv#9Q)QH^zzN~qc$wt5G8!uPFrNiRRtnDJt2 z-fGtI_pS-8pdg3L9fOn1%U`cNhqsj2 zu9%#Dz6=@M;L$7BF_D~d-Q*7m`LI$RS}Z}k$8vJScz@}OHg4ppOih|;OW+CYoWBk; z(ts8|c09lxoY z42y9bGMgABKMyJ)6|j|L+3gR0<=2jB11%Dgg`=|`y-yqneQlU-eQ0m&N>kUEiB6!m z_F^mDLc1wL$t4_`cjV$!Stvags(W+X&X@HOPYw7b@c7h+C7ujh5sMC%T=_shj9Do? zIik&v2tlcYK$3&|2s-hdBUlFtnUP!6D~EaW-oYAKI;eytrA{VwhQ)s-asj13!oHZZ*3hy|NHq+?*ul4QIognGGv|gl*vwBNjd{}9!mUiw z5EDD}(HW(L9aW`dTFu&&Z4QmIG6pxHceZOu`bTXbHQruC6Fj zR1OpMpu2qo1L?%?~sk;aIj;C?u&$%~I8fUvk;E$Iu^-C-e^b^=x z?!gk~^^!Sz^F?r9aY8c_=k<4;p4)SHYk;sCA}C%d%6w}uED8GRy@Ae9{!2`1MEs87}{)UjH2c@F&plr!V9GhgV=| zS>tGO491DwE8oxBLlXxcMW#t*JxLj4|(4OCltk4=2p%IkjPh$P)kz&T< z_JJ5tC0#hvY+8Cs^o2fsWq?mRg|i7%zJOaBLO)`wHXDJ2X<;}nDDujAPLX_xxBtwi zR;&J!7hfBjX1*7GyR?fsnZu3+J}`y(x=gEh>BTL;TE%t@xO{#l$G#Gv!<7 zA_ZJQ^ivVF``EX8hejUZ8U3AaTX|ltSk%SNC(6_gRsdy6qFkgqA4m`7W;2}8e!@j} z>!-tXBKpE~K$rHh=0A?ruX zJJc6J8gk0vB^<81x!&mQqEg)*ZPO&;yLOYGO#*RQjTC5(nRN;A@ApPMEUWcv|MIwK z?qt*+=Z+ejs+M-RV>~~XP4q1BLI8SA#dEemYI#gY`y~)};G}l$Ow=9x}U(^t5ZtiEx=r5435v7`B}{4 z(PoCRLpUcLu>K`?0dnA0>dn)GC7=_45~F)pfieqh(yeE}Krf~FNIRY}=V|@g!_}-X zz+=eiW2wU}r|2(_xksi&2l&}*hDd53_W0z|iqNK~VHeXA z=uEF|jp`L`G%=7VoV}phPnHlbXrCxGj0?2P3F6@xKj6(+)UMgepVCByu2g1-5g@Px zHQ!A7U_^{Fs;FKQ#SZ~S5mD$RTZx*z z#h^V7#eb&#uh%-U>@ zg3*aXR0qCZe2Qj#3(O6WJjSx8d-mn_E0z;|ZIuW<5Us&?y~*f%#=2i6hMr$^xB|bT zP61=+-O=&Aqe1xP`{9|5d7g1Zv5xBZbr4TV^11DW#F8%+5erw|4|EKAc`~V7 zrUUfm=dV>Ah9hdS#xC$!kz|NOv7i!JLr<^%I{sr{1v}!@G-pC%M0Mi=Vv~p1TVA~P zKqv(wk)PBSvOImb_sNxM8<<93{g z91RuUn}5O1rQg-UA1`3m4B(wCtP6?Au{FLvY%#-@QL-Lep=$%q#3bH2{o>F(c2R?S}UKNuERIGxfs^T4t!Ot#N;t z5liUEE9xR;?glG6w1o+f=HApo#~Y=RUn)i#?n2!TR=F>3Y9s4E)Z5(@9^rbWdGzAj zgcihY;@ODHqYpYX62X;5ic9tOLvgV7bI5qPUtX8QylK=D={#V1cf07D57Swu6@~U= zI}%==uUGdiI@xaoWrw$BN7`@ScU`J1;W-!k&RJQRJ2-4e?R~sr`{r@7pyK&|%1Z7iZU-4?ASfJ=kq}x8jIw%s4!M^EO+uO5L0)ov2W# z82KP(!6mptdb)<`FTB?`BeI??WVef^-Vj{-V^}1g|G3B^;sr#fY^bwoFZRzq4%nu= z@6$tqyicZ5+x6ecMa;-Qk&AOzPvF`_#jx0}5|BUG8{yt!cy6+lLm6GWTV|y*RN>{KP3}&O12- z|JU!BBCg_yAk93*30o=aM^?pK#^iqA<|-s#)q)KpJWPuS=>o7PM=tuJM2UM~rL9s1 zn;%|FjyDUg%{aQ+Ku4qhab*vCR@`&R8ZPD%Xa8prH}bnmHFFn`!{gvz+OMRJshkBK<-V=9%fx)48sPYNT|~jZ5pXDl_XuvaWj91WfmOdt zdqnqn20>0{;e#-m59{6KQ;kn*R;sys>ZyAohIcf&t0WlP5Z#t~4+MNOJKL%EC$1OqD|$qgA94*nN9Q9W!3Sl)!oTmk z7_P-VqWqzDlH6GlFW>uEYBy!z#P8kaLxbw1^xd#^VA&%{_e)BMKfq69mtt-llHvXZ z=KDo11lP3hPxg@yGODv3teQaZOqDGDL%j}GHjbPtWve7Lob~ZvBf<`G*JE$eNC{^3+`!qe{XLJ7NF7scfsb=iNrt0^3 znqh;6O3^i2$!PLvD~fQi4JpxQ`d{V=x1R8i^AvHIe4|xn)7&2Egn;o&B=pa>3!R7F9TVH}~oaGe*gDP71 zi(Q)@)46<>v7Ox>FwF)oZll}-1>6)lYuWqte3d*>x7!y~h^gQ}UUu;SfjuRTW+x-y zW)8u?)JpLRk2C=U)|{8mSLI>TYDm0|l>~k|42{5DufasdsQKH}{)1X@QL(5x+Gymx z**ssb=Rj^1&MS-W5RL{Z+=dZfGgzF+bu2$A2S8OJ%#PbH>Ov1if*sxO-5MkTHTAqt zg)OAbaz{E-)%=e%giy8zNuUVJ>x~c3t2F-4 zDd69wIp0&l^sq%`>UCOryOWB$`T_hpp9gtJ_sTtgh7%m{TyjJ;sfPG| zUii!T{c~BNKD4)KDioWo$`gbaijT3wQ%O*ab9pu8ArL|ZG{%p88D&3b z8?E&wA|Ky!!(t%%&dyHU;_y_~cL@(NWWIVT;(rNc?Eim^GCuo1MH$PsP{#5wgWW;T4os44%r`D(T|>P}6os+adidn95&6J~FI zuF9HhqgblbN%tABUg&4?@tp0Ly*9?jfdHsqXd6-`!r}D)x;>H;sK~3*N>E4bL)BCd1(< zsEf)ud9AY(b;T#s5ji;O_c>FS`d}BI|A2rS)~h*(T9_z3kUbhVCO5jzHub<>>;=DO6fZ_ zrq`!T70V|2=@8c;g=VwDsgrmmw`P%*)3e)Qzhp-jlNYNvE2}TP60OLSR%>BB`0E+f z{#PY61{;lw9b06fTI7!WE6V0ioL!o918Nf#a|fI^NNTfHtmT zb8aU{x7hNZUxRc?)t$_XPI)WMRxzYb&gQc9W`82cPG|W?SHh?3fgc`=wWN3?`_^ac zjUGv;FI-9n(4gvQ$s&--_ThM=`No?dyW2yINmIeeL9g~sXHBwu10qskJd{+^I17)z z`zEh*p)GJf(n9pp`;wdBwiS=c`Dx99ylVFJYK>>6@6s7op+hKlZ2s%3U=7Vr>B4r2 zXGr!YaMEwgVo-O3tVxl9C+hLybp&uGGsj>l%#$T=QzLA95TA5JJ`jKM)MvFi?ul0}4eA_S0xi@ppyfs)Q2tZH)jSiw>3*ybLrw%&Z&KSf5 z5^^ku9wGCZ3%HMlZ#ay4lMxQKd8C8lLs@&Ks*9vICI&;Igk9HAlDp6^g^kxU$NdN+ zRg$nel`%O^z-rcZ5csW#A!%k0`azQrEUF830>n_E$l@2PUP?PdssPBl#_%uB>Ol=q z2bXR6XbDd-spHl&2N7JoLH4M-y_PZEB0u`$crgB&*f6H+b<*tvUNrao68^?HCZpnc zA$XUg7{%e0QCE`~f@D8*M^rI^W6M`J(#?#)Ao9!iDwUVUUM&L8vc~q!+pRPsx!-4}p-o1E!KJC)Fu|xUN2)cisc8cxTR%+{Hft5igo0~X zP|3W9pgVRP%5l=wl}V147$xHVorNw|q&zITegF8?pO0h{KC3XAVp4=w8rIhtoF2wa zyL}iji+7dsOGBgYS15P%^=I3X92ZDFKZAk&#Ec+(#RtK-UEyE$3g|sOr(#Ddtwlf9 zUW=op(fl4&ta=m2m67WXh}mRnvI#a9U}g67@*KFqn-yyPrM6RW=x3yluE#7 z35k3WbR$<+s#^aV1jg7rwP-zpacJX7=B` z73{mVI4Z;k#r}fiMZV=aukwaDH5W4tc)o?a^Y+H`yb^}vTVBm@neiKJrattM`WN#zzBPZdr+-eXB|1+xm z3L)gF@6$2?$`4y88vjlSCr^xgv?Xkd`2Iws5iiD}4asrE{v`>AL9U4R`Jh!LA{q+Y znIJybeYfV%o%Hv;_FVUl&epLnCf$4gl{4gNll6^wz9o?o)0(TiJdX50@MA8?hL^5F zALoeF9xRSTN2?ZTxbK2~kbe6eO5~s6ND#1Y(Nq}`;NJbnnM)VlNC!4C2=3`W zCLoF_lqDF9)D8!L^k}?#%A(R z?*k1Yq$=B{1N)5z#FPSmyCuJ6*#A=QjmR`kT7l?O zuOHWKo(`&Fx?ptANOywKo5?SB1LWlT9o_r>Y?^Nk8J__q{MuN9OIWy z$wVx|1VDwsD9akQ`Re+lGu(zkFS(!#k&grH2Di2ZfEVI>K>PyE*#u1FwbKE@|zH)cTp%w?DIX5oPkO5lGvdwu#^r zOFP6Rnmt0@Dx7JrzUigiDLJ$JV5WD$ogS8M)RnPP>UpJiuyWK-Q&Vd=^cZJ#b6y5E ze3M2c(5JlJ->#&!!SA;yyt6-_s2*cC<{owg+~I8CWLsMf)-toLT=>=Ut3!#k{ZU|H zjaN^-MS~?7FkE`oy#O~@TF^dOI=T+NgZ|L9iFv(oGFyPxf*q z27b~>^E<}9=+<}hYo96~2A}3qCrTrvCKXtSo)@+H#ZJv`1fhiw)%Rb7tr(6oCa2c) z&n?;xzVoMo;LOE$AjlwMDHQfJI$eQr?dN3!#5;EcVn`UyXNz zS9BTH6omVnA>D=-wuN3ty+17n!h*;P5W+i{vZqHHGoy3S+~}Z}oZv!eLHO@-PTqL5 zv$oEJ=nKrpalp%UiHynealq)CMzHAdRO{}`-M3}qW9-#eKvV)1{%jgH7%Q_BGh5G$ zKmKe0uy!W13jVV~91i{*j!iI6RW);&)BuJVE5@BV8?gj1TnX6#58sh%v)}k$%;D-r z1skDP!=CTwCo3xVIUH#tblUUuW75|3)nr&Bq~Hz0=0Yx%a{i}|gjUVh5s0KA>d*2$ zU0Kg?EwFgo6Dz(F^yM~b*q$;i)fV4mscM#_$k|^`O}c_3W&FErD5MghVz%B~sp}gk z=vJ_CPe}uMSeVlBgIy*R%W2*&Gq9~Pzi=z{+2*)!=G9zlPoy@1nI|_^T`WQCb9)ZA z=v(-?(R}e)j=M8^`Q1d2+(l|2Nv1CIExK~RE_LmwBcxMj@l6fqOakNe>gqURSvxE* z-#jSLNWFjTcInm0^TV{4!850Bz>L~lol1TBy2K;Z@3J;U6Kz}lgBRQM;)4l`^2mBc zKZlIP1H>IehVj-qZv{#EuJ@?Yk_4Fy?=+IJ>pSGYXK2$e83*LOqQ%WI?)6N^}S@~k*V=R2HIoA zV zmy_G3;=oI(lE!#~e<^4Eqv~H(4Bt8F!(HyJET{(i8;NdH1%+AlL_KqQ1u{SdA8{W&HYN%hbUaWQ~yXeXWbt<&O8p zQV zL5@&AqSV-BBQWDPc|dq#6}GqMz*NPUYe}ij-0(tSEYLAW2soSW2so#9tt%>xzRMF!)=cVi!XgKd1%*nw%-?}3D3D=5V?z5$iSj@Ic{q3I{JpK*a(nMB` z+5Gm1Y$`bLwFvn)do(+n$2>uTD&8KbSt*6-slEeCsfivRfVSCUuXOXDL^gD9E z<_V+5pK8RWTGviarI<|e|8V#E#7yx2GIy!hmOO+@`lg1M8+LU!S-Q@{d_!%f$JfWZ zN7lzp>1J{;L9>m~9Z({QzB&M_sV|;6Gfk9_xI%U}9p16tw6_veieBrQS|dUqng%Ao z@?Yx>v^u4cp2#IsCz)#0GwuZtr-g(Uw!73q-h(QN^+jIJFL!T(b;qsBm=qq0>eELp z>9O0#ME7z_pUoX;uA}MSUN)dM>v!*2i?QZrOMeq%iLAxQMXA$7vRKG|{cwjAJtvrx zt&ZcaOVt|sC=Y$crw8C}QGum5NA=6rz}<_@3+VSbCjincWiRXSg@fRZA4Y5&U*Hwp z3F=4pR{!1$2Sz_n^F(N# z2AaJKClr7x@ZfoFUU7+j*JEd1rN^4x=Rs9HUjX%~Lx2gvkk3-ADqk3fbg3U0bBw&z@Wq`(B&$nJ}&!2a0+THwqeUK&2 zFS(jrV#4hF=!zJWJ}q^6IK2bF@mUnv#Dn1j4XW;{+a=`lf0txjJc%{fr0?0=tCDO5t8? ziD3O!MnkRI3tll-p0uTkWvqWkKZURG^rd=ev&n4$IbO{>NmwrtGV2l z|555j#05lHDYwKSoTW_GfzLND5t`y#P#ti9WvGXgt>y_uf?hDqL&vrD$buQ=SW<`@ z;D}-zO@sPGiEhD_Lrs6Lg}ltKg^bqU>y5yzxORFSja)`|qL)_hX;y=RNp4IUK|bLT zX2?yrZN?*Z;HpiFXPr&qvTtu#?2H3`sY&YfkX^4@?=})cEp{q%Nme(n(`wW4bZm}K z!_lXKeXI7QSAl)s0*)j#kFPg;)_=p-(+yKwjKnr#O~OmoQfge%MEDi1T>tXftUVWX zgXKwxFYOWR>atoKOXW!>JMrIP;|+6wH;aMP_MzMMhd0oZ4Rym$HzmR0gIE`5LAdE)Rf~f+Ea60L+H=8S{+c|-)MO&DVxh{8HYFZwUbAFd z8C`DL^dQg3Gwq0Y#ZjVzV+;y!v+%*TX{@=Lb|{49Kcnb`w$NGuuVWH^--8KLKl*L+ z6{qZQJ>JZ)-&aNcz18g%+_hDLvfUBXW= ztxjkSGf({)mm0Xi#x+;M;0*eNaqW&6BKm(4T0v;22!Z+xAcqhLc#N z^>tJK-aDz<=n_5CHuViifUR#`jobs_r7wd-wTgTnr?NoJc<*9&J`s zL*Jvv%CK4SJks=K{!?*F(JVI(PU!ccVBEQNktHdMoM?)s4+f-;{hHd}PsnI^pyZh! zvjva*ly*O?BG^;@j-xEQ4gDajVy&E}hQWKJ!2{+}fHeeN@_vy}kG@f91CX69XXS9b zn)0vJTyf!7BLD8yuhH`c{chGz=ae6%V;k@CeYRD88y#QPq~nRr(Si!^{dWR`lH8Oab;THbhjivb^n_T;q4pi@Da^yYHZvx?Sgbdip$0udp@E{>EKD zq9nXrKmDkYzT#Ke)Cphtj5_=ICRO)m?Eeef&BaT5eg46AQw#FZbdhsM8xQWt{qDF< zQgf&;5vioMIU;YjrrUipU;A!@EcXn9zK0n&ounPql+2T?we-MuxfDpwMCTEGk99UU zOnW#}&-SUMgkqeL+KXXG`Dzsdd)p9VgR?P7Sd*ebNo8le4(j2jn(4r&qgTAGSas2o zpR(jxzHDTW;*ijt9#*cK@Q@FAQoT&DQUx9OHvG)D33%R#d2+S)y)|A5J8$FL)Hs&S z7{2(Q*}A>(X6LP=-nviuVr)(Q++Xw- z*ktc-Qv{>^1vJrNH)TGhicY25=Q}NMu-qXpDb>;1cfkUHjkIJPP_+fiB zfp7@KDzCb9^4ZIo5bLxsYn;6bt8vt&Zy__y6<;(&3<&`=3e-!r@fLz&dYaLMk-j%Z z%&D=8da{np9PwOn(TnN_ddjr4PXWP@+YqJIy7vvKz*}!9D9FUS_jSANQd2GZ4F2^9 zb<)eqZSibaYXv_W4~nR5pg_j5M)rKU>*r^Ei`J_t9xv51fHg2r4ytXDUo2c4D(jx- z@u&)pW-SIZ&KJnMX` z>LFVkH;te5-uwGX)C&d;ng=uC7r&#jaOS%~&}dfyZD)va2nr3rU7)!@wF zRW|e9W5PJKs-&#Y#`;d9b3Hk&>Q1fbmp??qz{G&#F!elpX<<78Kh*bF*x*d~BVzDT9=!Wj{7CYn&{AI|ONG%bF9{wp({| zMf{}w*uJQNTi)Z`t_JeR2=M0WcAe^|T2Um~;eO?s^{2y>p)a{{t&gf|B3Di+q<6>w zW;VlJ7Y|A9rCZm@Y|A=2`KIRc9h)=m!qR+<@2(H2FT!eLzdmDaenKNXKQ1UHI};9=u41D)iG z%T$0u=U^o@&YHXN4h4NLyu2_!M-LbwrO9Djq9)Q%&fDE`@91|{<&TKr(AHi2(agv@ zb-~$*VS!9qtec!n&BpAAVXoC0qwwktB&FF=uVV&Kw1Xn6tN)}#7{s@81T_qy|6KN zdBY$E?R)yFksr_crlj(k3MkzrQ&C4ahv2)%c$0Zgd&hZ^xh!ui&vTGl)2pxUNl0xJtfKn z(xF6(9~gQpwExF*ul1dFK}%wqG^`%GXbz_r?O+vyFPR7{33*8ozY*a1Q--_JG!jZL zx*YVXc>h32(y?Nj(T+nuKMffF;D0nOEbozf1TmrNUm6)d*>b<>KYR7kb?hR|e{eT4 zt(5K-^4A4RZGBMo?%v8!Tjo{3{lZzBkoHgA&vTVN)4`<3r8AY zff4@F55B(JD^~l|{q~Zv=H1jjk|^r3$`($EoLZ+3;J^w;)?2kNHHJ#+tm>p z%t8$dc_@T3JZSGpfe14s=@fj;m^O1QT|Rw_iaQ} zI?VI)8l1UeY4D(E(k)5(y<4Bn?3)ks%5g$tnAPfl>8roeB7fr_{t1TopFH5UhA0OM z{z4{%Y5!TxM@9S*&{)p&JzmE2m6YHM5`Tj$05NVda=`Li~OBmG?u#$?s}HQ=R|(j zO8(ZKUmsBM%;Hjvyusi8@)x}1pLPocX2w|RrGJNMiVOdDMMKDs?yHx7`-ePT)z{z3 zK@NU+@eNq{r&s*XA25+CU^|nizxH8fCv!G+q{y)8>{T?qA~i15KbCq!`a|M3)Z*W) z4vNrG_DJE~qk_Gbwuc!R>p!mWwT!>4-nerwXHr9*2Utf0d+REYu9H@wz(2jlTwMoBh zHTBIc!$;o!ZN^!J=%)p@2Y>-PQ_1o1?jPlELQ4m>O7Tm2MCL+ZMiB$-&d%XuA46SuP z=QXuCdmfvB2q69@YPA1d)ELS_bvke+=z6QRoUElcA({4s??y>|zdyO=W8Rud`4Ngd z=CIJO#0?3Z%%?ic$?MxoK4W~VWO4}Y59;`&nV``rtv0?klM(Lr7g^)`&F`{C7_TEK z%2xBfH9$oni$GGN4}{7!zmp9mQ;ISE!xOsH)m9B3MJs!jE zt#X)c4<7N3`MhH|2u3#u>YX;?;%}!0wX_cxduopaEdb25CMEWZ$ znHVC%=SMl02x+8;5~j8Cr|J|~e0KZ6Anah^rU}baYm6olK0iEpm8 zsGvT!S@?=;5l_Z9Z5H-?Lq3cn8Fuw#!y#4tm@qw&YZ0(#q4Aiud>OC6IxI7jYq8MS zewtxNYU>&fSCbOOSR5@L3a9Txmh8Sqf@7m$ScWURTKt~P_ujjGsaVPSJt)oZo>^L=#XDbNfEbb zJ$CvR?o%ahmlhZVeruGbo&ikmf4s=|(Shg09Ch2Z#hs_U9^2djW2)GmP`~Dijl~Ph zf@hb;KBCD0%rT-*drfB^RR`uIc2_aA{LWIY-r>9P+u;*>99zwMCO=7$El(y;C(pm2 zK1?_~YCOLqedmW=A|OllE)hfnmm!PBTKHC6sruKUox;2MGPGR`mWz24=F5YND?P6sPFYJ&JSp{XN`;3b)1_=*Mt+fWvzvp{IcknF%a zG`>%YO;=Es=y()M_v3gL9stqVa_!&7lTX=*Ig>SB7TcsCd+uI4FKtfuXTtZ9r+QEL zcUe^8AGvJ&U4F|I`c>~lHsPK9raz*p847S4^S`N&!s9ln?w*ovagq(yl3#Y*dJ`V7 z=h~(=mw&~Aoo9}Yz*Ut5*I@-$8phLVdVRyh`fiEBzmw&34S!KK z=@x7lWHCoM8HSvv=h#)W;zx_YqGV=6qG>K@;M$O?(^I zRI>I!HLW&@bEC~?u>8qma?eskYvTc-f+mn^^I0f`+prV;A^T3>F~x0TpX~8ZK~oI? zIIw7VcORsT7eG;W249WoEI)!#m2 zyjVRzxR5Gl5gueluga8$_{{3r=DjfCBK?^&hD*b5);+9uD359Mb%+O*xZ0LfmS1g8 zu5*O1`I!b!%Zo~00b%uCbq#RRYj?2BZ#4)gQ)`o1FYnzQ6!n_c3a;_)JY#*P7QUxe zaA-Z`bA|@jXhS-h?L98q?_r?e8LdMlVMsCRJvyk>@hOWrBKMy!D0=bcE*x#m4 zUji$cgF+Q`&grOHBwmmD#0X>1nW2hLht-ycsEiEE8fq=&M$bEebC7uaIUST0mUTPW#wZ=Y3{Q)&^ZYF8vge>Bo{!)lqtz| zBaY;MKdAR?06V#1#D%*dG;-r!M$0QfCQKo*FIq4&+RmgU)1AY%)i_F!z%C!cQdZui z_iChf&9=0sUrRUe`e|pY*VRLd6hgC0#A-BJc8vRe*7)TVPGZb3SWj{Z@JU2-wS<&; zKydk)-=U1ndu=KA9${aVNPaZLj7#TFj{4EEj*oGBL2Z7rO}?bG2J(rg(`ZCwiGD}r zB9IB5xVO2N1e!0QMY3(pO{8_eNg2S6#oHru?*<-^QK)MA(k}F)j3QD-^02PG$*lu}2=IF-eK^7?XBhh5>g({PW2)rQ2 z4bEO`e>P+0R{;%^9?+fVu-WG1lYolU8cVCknIqB`G@Q9~%}RfQvXaiB>+}rypXr<8 zHIL(Oy_U^TbO%alOSbQR`*ov+wtXNzq?z-=JzA`BsOL)GmK2wGesII~CxxCr-oPi9 z#Zrd!iQ5qXa?iDMrCua2a-BOALB36F#b^#SJkYu9GXM6($fH5I+`e!kW4UCm{T58Q znow~F@CJ64hVVdD*^L3(yJ~?S0oL_w+DRBM83`##<$oxIz#1An3bO(AIJ5a>DJVs- z1oaGsYMz!aXwDnVaunIoQCzP+o!fc-UMo{Y)2DPZTRF+W4Of6JpU>vVak&Z_K#u`iPasBSb-`uPxVn)l=kMh;hTI3tMzoe$agx7kRaUQv&Yt4oblJ_P^{|osi9OTFrp>2M@ppAXn3`cO zqovUwYA1Z1*wuN$9`8uCd$<4y77rDLD$ z&Ng0^KAETncUg{Knvo`qWf*B^nE8w7)D_7>4w)m(^iO3IYV7&VGaZS+-Hz3D?A+?) zJ6v=sdriJ9jXo5+yb!sp8KT8~>QvTTk`ISq7K0uD1bm1cu*vT)UkgfmsDc_*X}3J# zl&FGQP;o0jxH291tqS2hv@+92^ch^Ua8#G=_LS0TE?(Xd=N+#ib;!n42jv3tt2~?A z9ndsZs8ik=DA)Xx=qY81t`dO;3$*hKiH@gqfB7InZY{iB%ao$50@*kowof-Y)Am{B z#@|OUwI7Qk4d^m-=QC%hh;aU}j(@g%Q0&-c}{h?hIo)q!= zO;dhRhzC30PheC_KPS_Y3^5ubk;?~mMy zt}z^YHR7tyhu?z-!h#)0<5vQT9Zneshu;JRl&_Yw7C8mxX4Zg@jidU45MJcaI?6Sc z6hAJ(*cf-0@wM|p>Tt)o0oX7+-RNAW4+G_6BOO};ZoOP8ogoe&g({Uq1?xsB^xr-q*K*T-2k%Zg*(Vh_DHuooYmJ^5>iDGaofym<$|9FP$tJ2sxT=gijvG znDp}zvJy@Hg$EY?EwT-GRpc~n%6BE2*PUZmQW939)3FRq8PdB|ZL~w=zmJ1`{HQ_G ztwalHC^@yFs5iCwH8fR?L8_U%)5CYQX*{CXBISC!c0*0(SB&6Z4FXrm6b2+$=rjKfnK{$*j*Z;VOBDtbS7_!G#H*q(<*0rQ0@j|CC_tP zCTqO!Y!fI0f21FMYGSZlc@i>nChS%<`d@lzi1OJ)Y4cTopnmP4_VAg-mhadCA@%(q zU8u|L7;^cLwf_e-FIkIHK2&-y_}`3z*-e(g#lIA=sAuZ^(Nd0-%|!FlqQ&FW8@gyXkqP;9qgke=KN`uIR8vm9q1vq5P~H zWv#S5t$_w`4r~VVN?NQ>*hqVRk4qS%?J<3G$jIUV=;f2PUr7yEc zg9Pu~<^1Q07QJS&j`Kb6?|&nV$HkKh<=c z6@3oKaPMmInu4ERxm??AcwJ=o^{h>J_z_(v(sSGQ-r*U~ld~&t~fD zY(2kHvw2qgr`69;imKkmQAUjr95)FGEd(5ge{~-I*~+gaRy2d_k$RtdTX#s9QF)nT zwf5?M%dy!#k6mqZ(N*Sfl;+C-ntR6e|9Ra1@AKVsTzQ6%K5qZgdu=w{K#3$%;hHg| z^!w~Hom!cJ7UulqA~`Q*NfuS|@Ul}NCNPagVPs?@^L;bI9}w!l^dLWuDH^ExFzASn zYD6tvHLZXoFT~kV5vATRF6b55BtG^v@~?N{iVceDTH$=lwp8?m^!a%uri7EKm~+4|T`X(k#5t@TVPUxdSs+E&?#gIbO1Vd*U9p(v($@ zP}O9ce|-Mp3f8%upVXvK8b`K?vCEcv@YnwNbFYQ%7&GSJCQl6Ay-5ly-RsW{_QwFo&%h3ZAv$r`FU?M7Sq?llpf6c^b?RB+ zDmAiYA>5Hx1@|XUz3JY(7AA{%H$HjLbu%eyA*i<@E&lJ5k`KHZzSbBwe4BM!5(oSH2E6%w!r2B$&2}e5YTQFx@YFZjwVdKgQ zeziy*s>NP=zkTP>zH!^Krf{zN+}5dJ{jw%J=-{gt*Csk0C~semNpzw+K%ZX*V0fdW zH^b8EPpO*}T-WJ}KOeDt%Ka{)Z1I*K65zk+n_nXxgd)9Xo$h+kVR7JN{X+XIfh*ZD zYCe$8;B4^`Jz({wT#CK)VUxiDjp$_j9g@Fy-wHyVSv5VU7lH_rW{00D0<|;@yy*H6 zIe&`2mJKxHy7(6J zT1F^sEgK_L$aU7F2j3U>pk!0GFx+Pw7ao!k+Pt9%^D+0sC&7ugcj_I)N;O@HpMGc8 zm=$MzgS73>g&Q`=QdOB$78Df*SncgFQdRD3ShH@IUhNf|Lk2t@TP=$vPTe?V_ED!C(9qea^r zDLqepuI7UoRbzUHpCC1=6+sY$l>JDVP>*siU|v4fj? z|9QUk+vjeW$zaisu%U(~ZBh4&Rs!wT-P6TC4*0x`Y4#uV5G(qz*is<)K}QT^N2~SE ze|^sp2JZA&`1@4-gV7EhM)|})6B`OyV33ox9|Gr(nPdWek)nldG5~xe1Sn9U0>&1t*Q7KZkn=4Q0K4P;- zy3fbWWZ3aRJf>Fg)dg;v_-y#aP=w9MOu@X=AYKts{@~~yMBCjS2c3E5A&WndX~MvR zniLVm#2`L$^G-bS-@oMk(h0i$#tOoY85Rpc#7DUPdG{kAMg!)g3!_1exqfeIphrr8 z(O|w1)CNQW$(#A(~kI8fPO=KshcJODh^yvJ|i`7hT($B8Cxq zUj6#7?^#7dm^bk5tHquPF^i0mqMA11>kj|%%erDvBh&Rw2YdyyAHE>*pDTuSBh)w_ z!~siXVMy+mg&i)s>nn^1uc_MF#=v6#4`E*?0Y7j)G&w@nAh#J24%=jZ=FMzp+x_u$ zy;Uxqj_LUOcKxOQ|E6PpKS948nw11Bf^de#>DO!cCIV;l#UZ zxG&L};uA<;tg^4k(5qPG+&w9elb};p2dL6&33_{xgJM{Lj;=u%by$<@OLqWDr*J+t4K;bv(q&+RN)4rqimGlOGD&pSbKxP7G&S`A(lbpyd-J zbhWY5>=^x~?2J<8x1!AV>I?7mn%&q19t7*@54gks4AV?_$;bce@qXEWuMo_mRgbQ| zm+t&d^_K_}`fWeXe5SwBH$3rX&$lEP{`PzyeC}@PrCv_uuHkw3!ib?5L4Tr*JgEc} z3mCCgo>FB@-6aSijf<45F|BO7-w2!-P+p}ea0^S^HsX*=+K|n|L-7h9&fO}hvs!fR z^FWvm&bf}%B4rxoIlJj3MW=q=QIbeYQod~p?=lNP@AdhgHP=+$;>A`A)-S~cM zBgJoJKtI9SF0e_(IZE9Gt<83Lh_l;yJJ9k;1L+M87&PIh6^8hQ4 zg6unEN_hkq+}Em>WW!p|5!_Nwubuan$3w~RlBF$RFPu@AU z`{f&I-kddko~kLr2fGZfr(>`106O8X=88%Z9Kd$m5%K{}RW+i|k2rQgL<8S@A9Stc zF<7petgiSaLd;{u3E6)%+1&y>&Cf( z6ONt^n7utD>46U>DbU-)OsmtF()Ro`T$-k?devF~cL&a!oBfERv>=Tnrtb??iN@&w zAsYTGg^SKr5>YE!ngASlcFl?A6CL zSPDdyv)AvLp0o5CP%LwuQqyz5kM%Po0yWTVeY0BiYRT3S6Z7*<`)-W49*-z)Ii}iE zJtF8^3`}$RT@39xoJUZUmqj_{*6Y^X%LOw{Cd=Rb7IwfAy*R$QIX)JIwXl4PZP-i8 z<#~~2)s~fyE-)ZL_@<2L+9i>!POjhG^V;OUq#YpJ6|84JT(crP3dJo>%a#p?WiRLY zdrW^(^Q&f|Xo1uRaM~reQkE9#o%7;)m!RYMRE*)L7Wr?X2k=TIpVGOHuiv4aoqPn^ z{w?%CQs=zsuT&}@NsECJ!oFs6b#u7ogc^7##z|bg;dk)!ciN^daj?o@$HX#!UBztUvIke4HPf2VhI?;R&z;#^;|YYmZFQ=K7vy zTwkx6UauPJGwB(QsN^WTM+Bile*`~PXqQgg=DYGugh8~cl7_F$U8{K8_a`~E(*YCC zKI}$+bM69k8E8SAJ_@W&|60rcu&6PulFPIac*8(3VzZoF5{{0_SyYlE{-392E}j&& zUyP^6mkT3f#MAmfP7s5cZigOH<&5uA4Z(!6u+|@$u_vyn|Cbm8kJ&5bK9r3TzCAjk zi`H46>!jeisa%X=VKPX!cOZr@@<5^D>Vx_c^jM+cyB7S+2~-@S@^icrGN#t$Gr0cz2n9`R zlLum}aW8^Bp3JpLluU)L@2$Hh^5a6&3R91?@g%0Tgg)~mW(%`oeWrOIBED@U(M4U& z5_k)FYq`SweJJ@R$zIoVK=Sf&(ETxs9z4k%Zy zX@IRWxDk}9>owD+O;Mxad(+a*YP_n8m}8skU5s3cOD$NEeq!F@X#sU{&pDb6`FVhU zw&u<`sS_FTZuo~|evL%W&p&f+)ZEfIgwbA)5)cCLVonNZY}J(8yYmM=di=jQ*PNQkKJh>|L>3gu?yTj0L*a- zLmSBtYMheoZDO3=Jm2@?;$zWg@`Bu_Hxf_rD|^m3G*0ztkG#BPst0h9*$Ak#Ezb}unkse zKGrytRf!k;eQ2dtM1D*^IqC5#HgvFt$~VN#I=qyH{vTPfH&Y=8QO>}BxCA~P-QN1o zUbG}F+uot8ZWkBqlNQlG$lpAqekqTEwf+){EZ5^&jlkE29glxn;o)WDCb~b9a)|=N zC2aW$9$5`qUq#(J+@vcE(nqep#Gj+Dj5(eHJt}s>7Nb-z@}*Z{)RYW8m-TpL^`T%< zx0iqqIW`XGHJE+pDrSdsxobrkY6r`O1MF_IO*CTERu*nfuTH?(DMkG0ig}6A^Us5V zBjLBDq`Ag|i11T50NCj@%g6T4i;J0xO?{s9a;OKsO?7W3M@k?bh6s>1qP7$ZD{D(1 z0TSo&%`UWVh)*L8EgX(_uTDCYBh;c;P`GrJ5>7Fmpt4 z9#0I`8%bOYhvq4Bf^P1Z+SdXZvQ%=ih@Xn4w46|EF`L}w+OlWHZ2pOD=-7Q&Jx@9n zK2fY~CP5)qM_)0CfQ@MzVnn^PdnZVQV@^+V;xr4wm+nFD4drq!TE8Zi9Pn7GEFQx^ zt#h0SpC)VXa9up8LkE=kW_oG3BAB(ge5w&vI5K9DZFEAAz!rR>tF~=9ZG0UjWxJ7U zRt}`DSO9o^6o9nM-0@CK)Sb(lY@Strt9FtBXTzUNQVlK@v&(!iKz!{HB?}Z!hXm+I z%8qMFIEL(yv}OrK&8^!=>VI@3?#}}z%w`*w;vJ(|kNZ|vwQO%0!$%GGDOci%0=4Q%u5=* zyEHar^WC#%dLM5*cYf7xzQ{J{TLA4_+KitGBjohIi4$JpHKRr0O|dT{{SClk=8Juc z1=MTExvj6Y#?2YNc^%ntL4~EgobaBx%1{7fZM;RqLXLe|-Njc1j8A?u(y-ErQb~NL zL2bqS<2JtNFqp;+?VW$uo=|U932Xv1*331bV@DcNwXC>V= z^i2AKH4o#0UPB`1fxdpZ*Gc){ZlHShqMn6|uU{U&20JZ`L=uLpX%CG!kXhLa>H#I; zm)2r4wr-4Vo6qdV60GU;wVcM6l;_nq^@?N_B0|l5La6%s4)kDWNm3=1x?o+$4u_*_JSoL<=wth%loTsry~G>{J8F52S&ao; zscc?qip-KjLl@&=kUrTsz5dS*l#O3U43)!w(vYh<$^4d$7NRf3c(w}l+P_#F;orF` z644i~?I|t?DEk)??EWNyf_u#`NE5Iw%g!n8WL4;r=SQNuaydh1ep*X2ZpjfdAUJ4M z5AYnF8*DoXxZP(q=wJGn=nOq>Jj@vMaJpn(38%IM5m zOeNM=`roV3(tp>?=4w zqVp$_!#sIO#VxjW-#a2X>>G?8%Oha|mp!&F*b_*|?YIVk>Pw1-xyvaCZ7 zjq4I8yDRxhOAq}?Oqi}>v9qMWt*aaz0ssvo8igymX0-HuXo_<xKznd@9YvKNazb)-_U3B0G?`z1v*SlYH{jPDdI`fU;KvFe%YkTx*< z9KP=G<`3g5e!}dkUlJVaDFgKNftajUr2va(+a8(N#F_BX^!t%I=h67BAt`zMGQRmg zs@)yRzpLF_oD+-w}IDqQYc;IpY+DnIZUbLCrI-gmJ9^*z^Zq&TK=zrR*n`%rYCtiZCI_Cu$XXd*CWCn+GhHX zt-Zo+{$Ef~M*5;xQd}q8m(rkpTbi=)8s3_r*rM9>Tv6fuqTa_b2AnT{j*g*FoL-Dy zvUwu6NnuFNcVl_5w(0@XN@b(_iOA6oyT{a9dad$82b`jIAa_5(a(X&Q!sbZb| z#4o|glw3D;DA2?HF@Lyg`$py2FgI1y^3gpL>5fqf^5b7h41XwYe7oEDum29rZoUdx z$=T6!T@oUlYA4?(kDbM}SBAb=%GC^J5&EXBR+#Tvo{%@ND@;p`kQ&>K8TCf#HBPD~ zd>8!~S(*oCQjU*RJ8rp0nn!mMowwW@o#VK%<5wgmkNw@Dz=m12fFKX;`c*z_pUd=? zgX2JU3eV5sYrLOfesGX2EixuzkG#)Ce&?hm`Xq+1klHSgmvr}i=9YSWlGNnZZ_7MA}GBo=3?5R!A8UfA(LMl+Z)JyREze0d3hW`ru%dj8_~MsF3(9 zNa&OFx#T&P02k;R8}hpY3)fi-6PV8nryW=&;U_UAAB6nl?@;2^oBoGyVEy{ zZ4H$Uy}*_!$$AKSexrh{u!sCm*9$4_ibz0 zo~t!h_ay?@o*dbD%LrpWj(-t)owfyx+mxAVSWI>IG1N3l_EFS+A)>K#)a5Ga_4N5! z?14dx@8tf6P)ljCb)~^86uw99Kj!p1O1dcV)H~H`WzQw8!!&~iiiJC!TeF}-A*uhQ zLpWX0+5FFAoB=yd#ZRM(b;U9<^JKKG=)fSMS1%N_>2+P^8D{BcJ2HXHtp3Ws$aW|t z!acrbo}yK=v3iPS`KpL^pQtRhyNw-Z-9shKD0g(#TMY4Hi2+pIM*yZ8+fAB)0yhBh zN?~n23cN}@Y6H>9TdVJkLKx5IB%EW8YzVd6@iBLYQ}R}3S5v3PKNDPT(^Ge6$_xvE zLICG6OTn7PUDWk`&4k(Rb{D@!$hNq#LsuFpc3Uir4vyJ{efNe%k`d3 z4W1c8{@5JSt0RqmeIL8W6SC8G>1WJ&J-Hi$czekQN?>UXkKQiG7L?$gD=r-@OBIwW zpVCR@WV;1VMq?j&UoOePKKuIa;!C{y^U<}veezQ~-40H7sz#q{Snwl!MWEWjwFH$O z^cb&a)Tf+b$nZ4>zSakq1;0TDLA>QFJ=9>v?N>(_!@RV z%#}rMSA+Hm3e_b!O$pY1e$WJ~A-X0k1XxWL?UF^9h)DT=Zs33s0ev|^`(93xM-J$| zC4GHJh7IC1^lUYYvh*Cep4=`WyN@p=j{c;RPbHd6HAo>3@5t!nI_rA7stHxcYgXj(mS` ztBr4fgX_*BnsXrONe%If-^DnTO!+x4x*1w#b4hsZr*mE#-t4(Z8G-ZLeKx*EDgkt~ zBq|1c2rut*-tKvm1|>~#$NkBRQIVT?gK3vLb=8uZD&Tt8sP-sd zD_>?c{aLAU_~|Qjr@;Z)-EIQWIwi%5Z(Z6n;D(ypQ*~QD+sI63C@NP$+bjTkGm}Yg zR>y6~y_Grs#YwY<#H>v(OzyH)P`k4m5b-AGQXg$#fO`~eF+E>u=N^=wc|h9xljf== zl_~c7fIqamc*A6)7_J0Nmbb{}S` zjOd>%@O-69Tg#z7B(i~s^Nf$p_cT_+UesV!%)2dnZv#OC)d%!Fa9m#ZXf{QyJ|u|6 zpr301o;U8h&w8rj)_j0=AsPHGR&xsce0cBex#U#Sle5~@J`?TsBtwPjR^Ev%TFIU;F|^p?~%T9kTv$P_y&DD z5%%GCTVGb~96B=LcE4(Mp+tDp(pPv;WCf4A@YdU=~<`|o&e8S$a=k0tw6^RX}osYxFds+$`)nHmk z>FI%<8&V%xW!oj21-?`@@AWb%%@IzvKlK6CEW1a6c6ND^y=FKd#A-A*GcL^NE;!!^ zYTSHbc9UBbm8%~WiOY?=>UCBUzFbzM0DdB@8fA%bjR zo!sJ?YSV6+)%Rr?rLhA8BqC%GYgL6sD{se^^ag~8h3QvDSkcGk>U5i=Mx2BWhj6Ys z4@K#MkCA5mQT3L!;L)m$=}sL3Emw@w(Fh)20~-ZHYk~ZZ8yP*MCkC@kGxIl9wFVJ5 zw68Q*QkT{rS0i($$FzS+>(QJo2A`64((&C#MR$JC64X=icNLZIF8rqzq>ZY$g8SIr zca_y|aV?3uU9t=R5}%#tRkGF9yBk|5N?L+y%6gj*PSl>@FE?*{=jPOOhL_>@W*pJ|*y&c|3rX!)2>k2z-4>-u)W4-N}k zf*Yi}$qCboWPk)$C2)cg87PNb5+I2HoF`*W={egw9S#~iAxz)SUz#}s;#LP5bbWqW zQR?(kx|NaH!2F2AO&BFm7U!kmoPxkrI<7HnlTF9z5)tj{OYvj`2$=5Sr)kQCBVxD& zLa%l1)lIL<066F*i5MBPXMi^O9}mdcr#r$A<#_h=#`ycQBh9~&OhzNFa|fhp~R zpN0T;1ITvJ~ZR}q4 z64lW^#9RsWEV|L+($ai-+o~In`A(JFJW`b3>f3MJ^(|7%aO4MA3##(DtS?ZsEx~6l1R~@g5T_47GG5>7Ugy>NI=gP#W3dbBL-v12f#SyS<8DSBExAbo9$> zYD`iiJs>S^TRq0+oG+Em_ZhD}^?W%0#$TbZG%75V?}U77HwfrlGL;T6Cb#V--oaw? zM(&hPH6BFJUNS6CyRfTas?{R!&bac0RLX+OI60sNFdE$e88N6S3Vod7U{r~VZ@J2! z(X-RcJwcBEkwcXW7$H|-UTC}?Gh7ares+2^MvK~emt5Ql`{*b2(Y3@F90vMq_13g$ zET<5V4XC2eN8D^L4q@*RND(W$7*tJ>ZGmKJ(iYotq{jxgm?G@xKShKUuX&6WY9%&( z33PYN`Y7%d+tO@9JO8=ll%4IH-=i8zLuPB52w5bybE~Gl6kxu~!pY*W>I%6W=G}JApj8$%i z9t|1}4-AUNPdVL>Na_Q+uPkpYR`zWyR`iu;o_uQD9F{wBt!q#iWR<3qA>wzmKd+%b z(AZV{Sb^te-1bIK52{+Rg{zG1nEsgoDEz&bnCplSC4~!kP}34Kzo1jT9JJr$w zA(p47mm$FGEog^j`y0}dtgOY7<3dr0a2coljpW7aK1R##V7g-CBR$vX7q;b6H6uxAR2@k$vV&aBCuG-6JT37K_DDI_nFmsj+ zU#Z{3wBIh^Ai))m(i6;8&ol9y`PJ7kgdDb@8OhO@dV)KTS*`2V+&tkIw4|+69>QR& zE%k=mG~(n(n1deNC<@F;`{D%_TK00^WFV?=l*l~BkLJ+ z%{4PJnQP85exunO#*uE(P)uX(NANPL+OO2H7_UlYE&1bFFOr)V{~Quk{x{(&8Hrrz+D(ZnQ;0{sKo zP$Xk!*UH8%aP`9c7pz>75L+gQKc5NJ(k->?A3;3JR~;3~9T1#!PAWJH;#RZidr$Xy z;n)huJEQ9mKKnY>Bqx?|tdh~JwQjr+eqk)mKerd-On_)+ zY(-Jf)MKM7UsRtSVl1e3Z`Hx~8q4NWtvws-W&w3uRexmB{M@vz)>d6)UqGC|gE_(6b$>uGei(@F;!omtbzZ58oHWnZ6B zC?rW9lFbaNRSmxuo;h|Q&wt(GL48Me5Iq8AvJVdr%t*H&-&?q*4j%xbWFOrv0G5s! zh{@HT0aX}JZMkHLrBHWNosyjl)@b79VuLfbHcoIsO3PnLX-nxJ5`S0;)ivu;b~NV; z6%6H_kz%RJ4@ZxeWf8&-@@yi-2WW>Ft(sy9HHANObO@R|&42te+=vNjDgZB7@Clfj z^-7=}a}LkDRTDFuZ7GS-7W`XMJ<;ma-+|k?P#X1uoPwFxuUQ2jGS&PEO}(WHc#uq}J^Uk8Jtc_T0K1@NitdRg#U((aslJSVAF!fVE(>jzkRDL~VveT!Gz zrKoJ2<^P8QGrz&J4b3v}>d32u#Jo3BFnAU7&XTB{-P#uJu2i(+IAH^? z`e&BC7V%w%#>!0Zd5Z&OZ-DXn%S=z)E23Dk&0+=GYqLJj9Xuc5p<9E3dCJat57!bA zYz29uxd#=do?ahw*D}52K9^Z;@91U1wpg<&^rf8SGaThuYqm*V4Tq?1K{*IKht09r zUt(60+>}1_-{*dq6gXgs^`~ME(xF!#oHaYMhFaFrHoJtX+y~v9&-^fIOFos0>^F%m zeY3|bs7m$j)Tdv6`pwR!`8~o?m3VHd<^;wH7uBT466#P|(n~k@K%3MFon`VZ)89`M z^&MuQtA9=DJ-fkI!DaG&QkOMy^mA=}=e4G@0kYCt3sPQ!n~l%?iZ}Tj-S);1s%Jr2 zc`)HsavL0pu9i@9OQA6eI76l73iD#dDm-;o#D7!9Zh zNcctW-EJz}KI-fPM*6(2U=FVP*U&``*ad{8i zW_gt!^9um5bznfM>#rjjkoMN*>9*#YWL>_czIW)hDG9_KlbNBz`awlPOA*7s!MCqY zzH%EG3=bEjDE|1COxJmHpEP*!jJ-Gasa)*?m#`${W3}w*yT@O%C1daUitSJ;a&0^G zjK7?#oRJy(x!tlbD8gNu)@r)dUdlOM+47|wr1`kME2fh`27wY~( zu|PrSc3AlGd*gR5Nwa#e`Uy$m>B|;F7y~;A^~+Ygc9ZjtW@FruoLN(#2O^+pesvw3 z)@W%0XSc3VdWtOZVXe_tHfi)$6&<-!c-GfsGLEJy)0o)x6*xB)b-A>u3~8I zuZAJ}v#Z+?aoa89#bx<>F8e9Zc`;vnw2V)n3M>9y=eK~1lZjs(a~=2n4Aaw;>9ikG z{3ILQ1=21zg}hA%2pMp%&RoHCanO&@e~pOi>D;pAHu7he6?@5s?X~500?>-HTb)%@ z{`BpA;_2cid>Q2U^)hV_xaJa33JSTx7Tn#mF5)ROq!B;d?W?W}OgF)1*f>d4Yljye zoUNMJK7>+nV+Nh%%7tV@hFT47F#Zwr`*(udSIB&BvY}GDN7fAJd5a^yoh72m4Cu{G zJoz$$DriK%k>JYcmWUzUxAqz27bT*z`YVK98PF?Z1res^IWph+6?d_B>YeA(9PRd) z2XyzOimB0!LT8ZD?SajzQJC1UWtYUtF@I9pNlS-l{I&DtWe3x9mnq?lfP*K*wLwX> zw3(q~&qlTC&+7Epj$D2=r*u$Kb8nhg(s_;(w~Zmn1VhHIQc!Ayg~Mfsa{D{Mru@fU zE!!H1?Sh&)sNO6m>}h!8@}qF873|PMFvX@H^|=BCsCz3Xj`Pi{rv9}Gq?Ol9=vpgU zX)oyu599Rvo%@42FYzoZVqYYgR>W9gF6@muuuTTY#QGA*FZ*50Sx+KV*m|omutv_f z1A2NBSiAFNs8jYZ!`&I~$Em7=-AhPlg10I1AKltppeO@YVWX;jZf1JzYi`6UFKT`1 zABOgQEX`4P2(0V61o<}pe5)GzjM{V7+tcW+pr2~@qHj%FGd|Cn@2*1z$IKYDm(cFo z9I80jSX7czCk@^pFHAMs(D}Z_WaVb*Gl)WjrSC22h&gf0r=;H7^W>;_6VkKn8C#|! z5|Eh^Er|AWlb_i7i=~qH66Iu5txN`_4raHCgZ>-A5$M*|;^tlkqdFU@s&5f9F~La> z&Qk^*G!1*gWvMlB15p9oM&br6A(*&1JXcypEchf&h}?cvyJGSGUjdTsZ5NfYy78nrgJ)cT9X0t zT|?{25ri4BOyDo9XQGx9>PR)BUp!RlA~#CfQuI`sWUp|{#Wh25_W|Y(xH@mV6CA3< zG*)mIKU(;5yCixisFnQ|!Os3FxH@5#g8mvQ8PLA;?*AJ>MlCmtlvUuZvn$^F}H@NzGb;bzQb%Nd3 zU@{Xy6B0-ftA)o8=okCf{T~LwPmt^n-%S!eb&$#aE>G1yfeNs~4aEUSF5+5JBCdO@p`N8l#Dwbr_&N<2H-v{`o(JoPfTFu968(uH2?_@RLAIvCUyg|)e#q4XE zEiX9G)5d`LP2ejpKwj(c4EnAga=m}m`_ZthFW@#RyDtO0Z(ueH_f2?`n&8%Ia>Ku% zExw6nxk#t+81yg&L_Lqqlp|S80CcXvJ6rDVIojoam1A~hLIrGaHxMHxvd>)wA2fA%;a~pAZf$uvdB+9g)VF`<$%{THP3bJ#4r)*7av?y zn7R9AyQ|yQ&!VENvJye0cKRHx#L_NbdKPx>tXS38-3NcOviNyO8YjpWY|APiQFM&L z_k>ZsTti{_6i^{2)%F=(^`ADxf)3^|QC9=Ji3Vd$*z?oxOh7HyBb%M80dydB)MCXj zKUfOEzk{0rS_p4MM9?*Zx?8^AJ|pV>+Y9Kgt!#U;JSyPEPx(^3$*+KE^4hxL_0EIH zUE0#@46X!K)H<4Vxy{(o;$|7eOCEC@7`2wej6v>%Gv=9J4 z;zs4+wN~?}j3FBKH%UB0HKwy4z9R!EW~9pH+hfw z>#ZI#E7IQ$jysx?_kR<9f04iMQuK!a3?$izhTx`H#g#_Np8la#F3J(+tDe2Q);T&! zSJss!wI4Ez{2rnC_Za^)q%_3Qan|;u?@c1hf9}_f&bn{gAnrGIlgFq0=g{er=yTd_ z)*iB{pMP@lfTLI}wVk0+>!+{KKXLL8eE!pS{Fkr%O?vY&=L0Nfbx^_$) z8?|mY`PruJG;LPQdOlUm(z2tTJzAGMPM6tj)KXogo~<5~-260mbmFoR2zjumLF)Uq zT`DX-N{M(f3<2X;OzRL}+?nvp^z8{7 zA{NuVQg@150mIJmxE0~J<6#6lm7*y4qT1^BKNR@tUvglC`5xTqoYL9OMcZW1BWTkb zIL~c#`)X5iJ^_GfQX#2XsrhrVD_eO@c1=R<_qCfug4U3Ll-B3x)tU_ee(LE`H-*H` zjhBgmtD9+GbK*Dpei(Npc(78I=+>={{%~CPJ`2(<+n=zSry0y9GCLrfGKR)Uby_^u#RlfQPoQmjNIXi#3aITy!dLPJ| z5(^)Gy4*C`YPrpz#z*C|SLv9c>=^*BPaXDNCU)m$%LAAq+5o!o{+S`Xn+pNYF%b} zwkBCM<(sh3m0JPsrhC`UzPsx^;?PKGTN_}SrZ^SA!~)Eyc93R}i6+^$lfy%?;|6X& zN5JcCx5a=;BK^d3Kvy4f>>xSMw>e#^$-(Bjv-kXt?H;h{$<~0~qWPR!zdKyAV!~#o za@s_l&5~FQlEO%LW06>&`KseYFL%$8p>Kjo<=&MHXSmMN)jN$#V$+91Zr3mtNjRs! z7+7q!q-qGAhrHbDHX}NxxU5k6g7bR^6e|0MgM=mz)1SY|=w^U=4{TOXaGs?hB|M9l zqtrzqwqTxYMO~@EQ9n1|(b~PZzK1%CK7m=P>242ar8I2z+DhCAS>MyY9Y$xl%VM6O zs#UR@=SYdTm`R=S@^^hCV=65XUy)z6Gi8S;#(bKPS2rU9#-|vf4nNrZ^u25z{|mZg zIc?cYxf7&tA&(&27X9g%yG=)Y)Yu*q{%mR`&`guBWWH{{Gli(Py=_!iq~il>z--AL zfT!53%}@oxn^EZF$GBUM1TSw~rW|ZB|HmV^FWs}Y z{H!vXj<1XkW@n3m13;{MN9mfcp~TzVRhl4^CM8+gYZ+uuC--AK(y%7GuRo{?=(w%j zADKb-^)+>3wHUMYb;(#m2N*Q(*g!>Bm3l_q6hQR}gGA5MV$JN00Nt>d9`+|1Pbcf& z)2{hD1wE!cD)roYEAmHYvBQSx($ACL(v11EAA7R_Oq|zK+~*^s(+-gSH1xda%XwBk z4>bXrzBY8nC$FFF^7Ntlknsl(0#;4Drkm?0$aATFei=;s=W(4_F)pai78PPIuhw1)mpz#-KI zPN%Ks2UT^^x-L)2*aPjf+%FEcb*l-yhxwprx%_Nqb>a4J&10il%}jWTZ^WK?%>ISr zTvFhtrPHv$tZ^fGvSG=>ak7&u8In&5+=ySrl?$9y3pzh2H6)SGNsZAr7Izx&Z;>_% zaG50P2S#b()B2iJHl>;?oh=pj16$QS=Tf;Z8}=ApIy4QjZ#qRd+g3V&^Ide5N<*+m zIS++Z1}~LLDEVj%Il3)e6w*$ac_C(O1+QFmALr!ZP8o0C)^c34_R7Q!uO5mC1;CG= z9yJR;t2-4N;zccmJH=a9c zR{q-3+16=?lp-IHoamFRU|N-mU4>Wnme~qw*F_U#lj|sbY!gJo(HLG zLkb>@NlgB0Xk-8D>tDXDOdV)*T0O2iO&L|NNozWfYB$Db_8*dI#ZtZm%ipWQ!vcsL z2zVKzr^2Zo4e+C4#DpXk8Q1se`vxoNYcHt6X$9FI6eZ_T@2+$nTH1=!j6#hV?#$qT zeCY5g;`PDKSzr62d2fYkp%rF__{fo=yLatyy5QctwW)zaGZ$v1)^)vZYL-t6N*OnGN4Lbyeax3}yFsJ* zxj2pkbU&&z@#dOUKn&Qoq1OQW!f4jvnY{zoZY9Z7K!(>1xl%IWPq?}&LQm?NeeGS2 znc9HnTvV!E#821QO4+klI}<1qtB*kg8n4BA<)@wrV`JP$T@p~n&Q#Dz#0Yom@Uniyn6t|+8%mI|A|c@tCeTgcwGZ$cZiB!yADxYj$}9{I{q=2=SvhmY zn95iYcDbV$e@ zl3KxuJ!eoj^kzlDBmG527haD}*0~o}2!i9ntoB>EA;GvkPLo`B0>C?|AJ*U;mtB0u zGM!mNiLcZ2Qw$vpcVcUgO>z3pr`T~vfE{&kSQe$#^VX&JK^%}hOnhL7AuS;U++7wW z%cIlQvT;T;ZYaCxm7nCO$b5Y)m|M@|dhcZ{cQKsTuT&Vnj-y8}7ki zORMGn$sh6|LZ%MW3kS% zR;RP$XKPoE0;E|R6bpSs<;ihX2zNIg&A7|HMP#=7xGeW@{m^E_$k`>YIi<7t)%r{< zZ&7b`*Syh(G%vlcMW=J!Xdc$}ugmM+!s+=s)KsFUw2qo%R8i$u2b`@$3~hL;`#iNr zy68_ZTVd|1$vH%DKG9YpqZT%X{U~6WiEhkf?$bzZw3Mo3&|jo*|EM`@8Lc?GZgAR> zsiz^Q744q+^9Bl;d|Z-#gF9QXq8io7^DQ7l_h)qv51HO(q?iA0wEjSlzFvfvosHCIIdR{)_Cq$uLk(R6!x0mn6xcP2X|yr z((dcEDIOq_C>_PP3<=%ml?R-p%wJ7%aX@LHNKd`LJZPs2z)ZXLNm>4zmTOOk1IuiIV{qRMvYcQ z%E=N*rmu(2AJY3R4_q$Hh**5n^TtpH6eLe~oRmOev0b^| zwe)HUbl@{g`Nx7HJiiv$nBQrgPZIo^S zz4I-c4(AGm)bT=P@_{oOq4=01`MoJdBBQ1F8Kj{Y7r1Sw`kqA~Wx(g5o5*>2Qe6s> z5OBTQkIzYOC|4nbWr|;8Kk`rD9v^w9wW_99nA%CX1{xIqtRSXHpe+R?i+J$ z(nQzlrOo>5{s@EFRwM5(6N~UT^%{Z;%FVOc(n7TtVL$Al!K0#2GsxeL`}k~FL@t~2 z&D_n|Hp5JFbsaD_4b^PM& zPwd=#fqqC?x6p(xM-lLBSYjmQhUSI5oyEp((Wml?S%7CIMd-bJRH7=6elD1S-M6)+ zBZ2cPbI+|+GI!F3p!vtn_oV&{sYmHa%Qle;+0C(!a`Wfhhr)Xa>k4A-w_Tz3GPed= zhVv$C_qNYPS>03mUkBs7$1V@|w3l#E_GZ(Qd*leKzEqsixM>5ZcCUWD@%}ZLV(7AY7Kb|r|0Ek!rHSD54f*PQ-2fRl7> zIWx++3^$B6c~j1e_%{E)pMu{5w^w{x@BxAb!HKBC4+|$`YyV%&t+5$%l;BQR)0_jL z%3q&$r%UQ#-T&?X>7S-=&ec)MMT+oEiuWq`sjtKA7vsgw2}-SM?jv80lt;r{UUFK# zGBv$W=-{bD2P&1Q#72JIWeT%APx9NbrhsHLVo&~ z{r|VbucPz-0k(0=@^r2ug3eYBjL-20Fhn2$e~{FBibO?|v!}rHi2Cw3UcnnhMuWee zE%2z=nWNbf=Glkmg{iU!KmEGEN>*TV!1L1H734%-Af~Xh2}=OFM0dsGR?dQ>{-(w$ zN_uWJMm9am5*`M0fk7nQVnc z##|P|Rp5^12rk@DUub@4*(OFRPCZB31})8*>F=~}orgN+DYWZ0do*kqlS)ddC zAT(!w^qREi)=sCal^SNyO-|(KBn$&wq*q!&vnk>6)wOeW0Qq5b_0Vla=et8=AX*(_zRJgY2u^Q zr^c@P<_nyz%B!TcOh#N9&+Ix&U2QP28H=H>+X~yRt%qjk?0BlWvyFe?4k$}cBN{{< z)#T45LN3xp_k?unO`>E|8i&4a|1nz%sPh(l>?^X__izKGX>B4uNQV03l*Q#L+gn&3 z*y_Rq@<-#|(6C%U>gx$F{-rnUzAagzLj{Asf0Gm8>2PGi69AuV;}`jg+{ zl3J!@nTIccE!!jFasdDA+7w-hq^uu|AI3&^Ua196Q*4)$g6$ZMC(8Y7*%xK}01_SP z)@y6A!=#Y?K2&r%0auqx7b6?)`tY0mD+}I#npckdtFFFKPVR3eDDJ2XFP{#1N@Q%0 zF#2gi&n8m#jBG#fLS|x|;Bf)p0xKZ%>%udU){ZMNvLN7orascHlJ^}fY%={r2 z7XjQNze)%uE)nT)E=VcH6R;j3hxnWJ#R(t7aMd0s^!VZLPHlJ|M0rStqoE9hx~EIh zI){VYO_j~F-S1yyeeZIDC4zZ zclH`0Zp`U~xSivl08^`bZ>#18askeY%4G)HBrY>RI=A#Si`(N zlqL^SV6M$HrV77yy755tYJj+$GJ6SR-oLA-2dIii6#Iu0=cH`CJX%2tZ|)29F_~)L zu-aCHy>h;chxLnzZ1$DEn~IN}D}+cZqRunV=5ggmMMGD-9Zs~2i-l_BT_eq$=^M%5T#x# zMNLxj860_uJL0Yd2yIe=>+Ri4udaM3&oyijBCw#)( zTlLA4S<9_RTgGqmVH$4W4fxqg%9#q)T7FBYc7qb3 zDFBX2l@HW5*|IG&f`U+Bc!w45p{!zilDcmZ;Ej?CYIWR;5%@A{MpbIl{Qv=fA=%ZF zeAFCh)HLXj_uC4*A&Uq9seb;4GsKWO8!z8E_CZ07ui3wFhM2!Y#TyP;=Ge?dBhQky zcrlR?b24V&ap0l?pLeX`itE6DSf{qAZ4H+Ku}|`Yh2Zh5>c`qQliTms%ktt@Te}*$ zpt?r=vc?f|CEZ~cM+9Ycl~F8N-O%85NJOi~w2=7TBla}gzHFT#vFe!*=G5fl#lboy|9lp0&-k?E;)H7vi_l^(kT@A4W zPpjAL(QwUZIv8qMfRpa%CD_eY{xn#WHmqjotK(*vtQ1#98U^coYz2q!EOcni*Z1>~ zAlXrg9o(XJRq(V}OQwH&aTiM=9LG`5LmJ>nyAxppu^*w>2|9nh^XA^()?hM!P#wwN z-^Bmsv~jWJ!{m*>(R^%}-$u179to79H1)?DC^NFUJDPMdHUoF|yw5F^8U{@B4m4pnrqNl9su8_pv?1Jpn_7Xns38f#W!w*Uu2vSQH*d2u-R<70Fc zCUSE6N9VDJq)xi!J6RQpFr34Im{V96BxY~91(aCu3Qu=_^W4S=X84rSVwpC;h!8bE zkr|@7?~>99)$ar1UtLs}VPRDxA0W(zJ@MEmu za~dysvl$y1SmVdC> zR%E-KlgKCcR883##eeulcF|zWQ-b=W)I4=-RtMdY1wfD0mFYNzOzob$oN8Y!HV=!A zzM(Wf{eWNg=Q~repYZ5u^WN`0?j7Yc`a;E1dKJ44!6i+0eXmr6-)<;v)nS_J)sw`- z64q-Ws}hGJ@$mW&A3`5S`(8sneUqe=|jl+YA<$!J*ghN^Mb@kl_= zMtSZJ<^>V|m$>cKaGO})Hh;aP!|s#$Hdtihm59TJOAw_lWN{#hOUGWo%7bl)*}4zW zhAbH#cUnf84#IQZjZ6;IA0#``8&e*B^yRe9wv-vxa9g}9+Dotj#NBMz{g8MT(|LS< ziyLrkahUCtp@EIHfK!#tuYHlyeSoBIOhKd8U9gU?!7VHK>7{f0)muXl&`RfbWE>JG zt<}8Hy=>L75wW$=#1Y!zJ80}NFrk7#BJ4c007_!pwV|!dPClW$;)1i77|SK8Y?K9C)xbpsYBP}V!#nObahHCXEeNz0>bP$PHXUNaQ8U^mCsPC zZXaL2-F3}iELZRPw_mU5C19lemjrSG@$c8J3FNWVf=TiEQx67|2w%#=$ z=?@fGV^JtWB6p8RoOeD`L?`8G#UER#2t4vh+pWE@BO4ucO}04I|ML#&LbqLyj=5GB zQul55k7Sh=1V1AF!y}j7ETJ{zN8=KRy(=;xzbLoBp=}}2A-th90 zU|(uqHp)JqCc%#;w$cw-*Z9QQCUQ!br!?zS7mw2jb(=B(6&i(44h)erz^rxT{)~PSD=j z0rU*sMValKIoo>2$)5hc-a zPJDT5vr~Bjv7%26AKt(Lu^crg^#zX}$>)2?c!5%?uTv#XsWZbzG%{TJsed(DFh1XT zr2{`<)ek8IBafi!WTNdPq$#w@eRW9=juM-@N?ueBMc$&nPZl3LTrI^EirKZB zK^%|f8A4)+)m=7B2HIVf{YYkm5Ody&{?3bh8k)FfvE@QOSiUou&F4$N#(683uOCJM z7Kfqw{pc_0n^FO#YHMw(Yz7zpV}I&z`I2qxWDYxFwfAl{F^#g5JGqyWA@T#_c&k)^ z8Dy5zk|oh%j%kVQuk_2EjF@z%ewaYMYM6bl@;9q@yGhl&C(Wxv-&x*o^9?2EcwJF! zFN3kWKC>UQm;xs#Ts8H2<(L%z@-Mcpgdn@hz1WW2q3g|sq${8e2?KVeImB8Eu0srB zl9>};HQ44cF(uPJH&kxyIa}qZ9#Mz^=Vx3+-(zl7EDt~_w%4{r=E(jLUvl{TI3Xdz z#pUeL=I2q%Cq@3}+4wFKx)kE7+tC{~s~e&c#`&Hl!#gP z?M9ohB2WHFhds8bNCZuCB-c%8YYg6D!nScG$SJu>m&u3vWNXbIA9)6aZUKy`N)%Lw zrLM4<9P0qi0!Oi7AbJ!0<;7NJA5xd4ThJh>eX>QK*0iB#>8MNPp~Zi1{M`eEUDEP! zRaC0w&Bsq1K1n-2oMH@>T%$`+f_=We{XO49fC}Q13P-M!QG3`p?^i+^3J|lEc@m0= zQ5s(g*1UEqmTeg+THsSHN#VBQ=9zwmpVjl3V4DNBpUGN6ZC#Q^1lH?EHM4^|I%fgrbwqVHq&!XUe ztgC;s8{qCXAadN<(H)HxL#0CBpaNXhn)8NKjpu-aRjAxfi^5^6r^jFArx8YYp{-Ry zgaZ@z0N;RQvCZZGNPyX>0v6R273~i8uE^0>YX`L zP3!Bx-!GK!JwxO8sp8<;AL2IOZdC`>j*rvfbeP#6yL^2fZa8v6uxH}ZYG4RW`j&t& zjs;{MdIkjg-2}we)~s9Dwoz3(1=nKmEe?X?gc6>ymi5!T=q@g}sk}?~EQLc^%@n|R ziq<&aNyo!{L^5#iZ0l@vy~SaK9^N<{6(FCP`$WGE?2={bVu*Y%IfBui^&xbNH*dk@ z;WH!)CZ090e%xM1&8M7;N^K&_!W&nczX7F=Vl%x#w?WwfE(XDX5eh$L)W|%10un)^ z8@M%BX@$oRnwLvu2K{;K&qwHwKKz{k!jCe6kTv)PqIhyp2PWdW!36vYJF)Sc(2oFz zRZ72b!hl`C@_|JVB?5MC_~KL4kcdA&SbA^>-y(*)171;C^lL2i2$K#4OP6e+xM}mv z8*y`i+{ehy_(QuBc#=+Ma8TiQ7{a3uCKdNXC2WE~v<~0Kx@UL$OIb7d#Xm$`o7A7k z9p;>Sej3;$l(dH>5QWs^LdKSkz6lmc3L3)h?8o|aL83ybG@bk8jVUr|c@pJHK0TTe z&5!GoyJpIVng-?gpAJSfICUG&{bC#Tlo<$-6_;DFDwQkEWc7J7>H5kUK7+j0Y+tbT z9o=QC33-U>Z7@m1$9!D#-N_0tGaa>L?8J)3^xgfb%V!ugm z4ue|oY77LGBUngo+g+eRzE@bd(Uau2z^4&QR-_K^_V|e^Y zX5lj5c+~HQ9M;=POSK1$4eH3nKl2KYwM{T_);0Iwk&elx+`8@8Vqx>i5=Pw}Z7^&8f-9lGw`n=IwM#FUjoKBvj=rcq@VSN(a9g~p48{AT#4Lb&@?AWm<& zRnepu3Iu;;SUW!LFV=W41QuT*n3SaqFh#<%fmPhOm*K^%TABXc;syMO3G+U6SgN&T z3$jJwxM`TwFIC~oM(|xf4(&DS=bNuJ*R;i7$$@aUOY&;7YA8SbC`||N6}YiVFwOHz z<*akr0rUo~ZZ(-UlQk2Zo3ZACBaGC(BgRU zaZwST1v`X;@XJoL=t@Ztz1YMv91AY*`wCD~KD-kZZ(|8W*s9`O3YM_kCxh~Vo!GEI z^D!yMZGQj_yz-N!k*|_`7dO36^sed_BV6SRsu03GkYd#6CzP437160lTiwj%yfw5g z4Pq_AO0Mr{Bmpy4_-R8~R?>DqIxGOH1kGx1N~bgqCI&5(K2n9!&uaUOc!Tl4vr>eF zFFw6-Vi-{4gIy%Vi+JtkP2ocVV)KhO=$wM8F&pHA4 zonlSzKZE}wYAI#t66nT`p9l2fwc8gf+BcB*wXrd%rB2SKGw^1=>->v-Ih#)iI|DJ(^R}b_VGu52%LXcG%gBS|AwlJRl02B z;ctYa+pCFsF%1-#-rvk--{fS^>oDUA(&2|3%8z;QZ-;F)gI z%c0R76pj2V`>mhr;LYBr2w2M|HfNy8cTYJjU)K4h0gh!_Cf9$Q%(w-;+>e^Y&>n;F z0NkXm&XXLIMHS)-QM}Ne?Ol#9(fx4vNRhwK!O~2DvC*yxzLsKz^K&|QbRGGNAriS? z{%Zyk9(u>z{m0}p=D3Zb(y}iXQKJ;;iipL%7PNetR_qtQWiE@JKX_6J=slf{qaNS&4ICA2d&W%NZ%3v~H2$#oPy%~G>zE9o4)K$sY>#8qFUY%-Ke zha#$gyr5v#mgXNx*qpkW{?w%-*$n7u^x{hXSojHKlU=Nr#G(1 zv&vdc7*Gs6H%rW1b-d&tQ@oaF)So9;Rg{3~DBF2w&(}=*74}o2_2?8<0+-{CqT-A*^#k7w9ZvenfG3GfqBsS? zMfG#B=ZdWb=86Z0l-p(NSgsShjiFdNb_$VD&DMgX^Dq&*$~{a2Y>Ozsext3dcx#>i zFxba#J0EGnZqf35cr938*eBt-qB`Kq1{Iz~m3L!R26>(J`XY1$=+Q+p!%lY*$VfXK z%_*Flxs1BILg%7#vfH=0Bol4BG)Vy%m4ot3e8rX(y2X7QcX?@|pMxk5)FsHU0Xb2j zr|dq*jix0MgpWru`^c-{MRCH>LGl^niTD7IRCl15X=9h-{?;>ykv(8(ky!*2biqo^ z7}QLgNIDESbliiQZOu|ZuP+Vut>|2XwG~`y#)cg5c<$Ed2c|IJ-))G`7Y)+`>RInJ zpL8jhzi=-$tO^u^Hd6Ai?%(90*6(dD0A=>J_it-F z6NN?cG`4i}Fq^*n34&;^3wTENKK)|SL`fg#_@r_1X~&!+z|iuQCo2Jwc?=CpOsbCZ z!C;!%Sk+wA4(gFP{bY6kzGn-#;s@V=i)mdO8C3<%<~6m8^*r|zH{!9j&@;?LPF)xG zk2uPR$7%Jiq#Y`J=7j;Wv8S(bCRRAoWq_r*D6`=jbr6C{G_=xLyH9Y%7v}2LMv-U_%2$ zo*;fVw%Bd{8GI9c5iz4wst21IXFa8}0Mt|l&vKX9za|x(x`?~Y*gn;M(@-QghbH;c z8W)1odCs;(RK`IjppS`4yhKvpTYuhAKVc6d+OC72R|gT1s~5(T{~4WKBC6vMv(#6J zI$hwQoW@pS9Gd<7Kdp48Ux{h8&9;P=$_D-O>f&Y8y^}`|gV&?UjwhfLNv|1 z8Hk!ag5`?$r`&23Ouv7B_ts2FwLmlfmPgisM^^kg*AcF^;SUW!E0O8|%voj)$ZyuZ zu?&7a400+r))q-fQI?G2WFEP70Um?R2&y#%aw63LF&C}8HA)=rCdNR?euLA*C46)% zQTOm4nEOwIVstMt#zA49XogoM{;g4ohq&pxPt5(Z#n`_lX@Mu9>4XihL{HS;CWas! znVG^6&+0G2cx)iP>=OM!;49_-rfQ}rKQ&5T5v3g>vHD*FHn-sh-IExLeQqn^A6JJ+ zR&qL)CIvhqB@Sb8sc^3uqWG_8kXwsZ**6m@mTe*Df<)U*!nok#_Yp>d}V`x?TWO8KhsaAzwGs_SKwL|UrTiQwqdm!?PGR|2uU6K|5CXA#2XG&>->sW3OJw?y$ z1YqmAqxieLjg&-}-BH_k*eB2CFhb_BlC9Ug_IM#fOBT53l1wc=;>`D~Lx&e>dibaw z>;*F9{5G%W$ z5jxwDd_c`-IsoaAhnd(S{5{9FV?VD)&F{UhO5{v|ajVk~+K0gswPQ);$}Y@WsrpSd zT!Re@OnF5MSq|}6?Og-y|0ePQyP-BHu4GovO6?!uBB$=(p=Mnjr@*3*C&>+N+Y?f>~z@B=E|PaX2w zxT(Os$U3OHYAx`W9Sgw*{<_d%8NJj5>l%A)6TV0gkg|{Nc|jKPXpdidTt%&LLaT3;bp^CL?&#h zLw;7D;@yw-d@IqVAV>aivx$2)I~YSdmE{PE2n-IaS_!nw{H3!;Wr_Z9rUmddRy#P~ zKUZxoL+xmDFZa#ipIZ=GJW{5Mh2_eOdsVFxg+Z%l=x_dYb5EwdPAhq2hxL!FVK!$+ z*5D$SqxaE;_9}rWuw+yyBB^Dk*Xz7iI3sZ>NpBF*aFTgzzrSyV!qoGm63Da7o>>f8 z+(ZGs@7sDo{m&f^8~P#V3-(d4^NIL?UGl>`>+h^p)@47&3lz2fALiZzsL6I+_x}_- z0xBxfRa8U-q)S&25NV$xHB>2~BQ=B&P*6}Q5s+S@(nLz=HFPP`0)$=?sR0562qcgY za)RGld#$tA+UM*&|CuxY$xNPk^EUEKLf-efuj_YL;tk+~W;$;R4JLd^y%Dm|=+*;t zHk`cy|cV zEIDGZ%#3Ny4dRz)QQnyxcJe$956}_}TnYbM7#beH2t((ETgfsm>i-8}XvW`A?$#Xa z^v2@XcpzOW{q;n^m8w!N+-LCJ6)|BPo8zHxH#BjioM!}RWE{SMSGAJ!w9?wo#WM*o zX8uEo{ykr9Nc`3@Xt?i>R0^tSK^4vO_@Stb5Qq3?w6aK}=Hl^gb@OXED9ib;@kZ(1 zybokuM_?JF8S@+x-LQrNq^<>=r)u(H_0C?u;A`dWHaE*Vzy=k0`?(A{Wu;Fxh}y1C zC@hzB*yCQQ>GLNmFVq8rJ05dPZi6EC?{mugrHx=?7L&cnW6>+bvEpgezW=Lzdt%|; z9K%))Zx^ZS^t8Rc#K*xI355#)S1+>&*H@RxP^Rsx{Cg3R?+0*B4-dq*rqlQ(DwNxQ z;+#x{gN;ys885VB|mR78%l^VjH=g( zSW_Q@@|wt=tVDRj#6Mi%E$;aCSkzs8_?_F8r_+9H(G$Sg>l5<5bWh=&k)U|f;V~x8WDpN72k}wID$%!pdIS(=Bi_Q znJ$4k@tJAgwy#uzG12K9ciE>BmuftwdzlSz3wU2_?~?&p(*pr|MqU{$W7zQPl!i`Q z2eFEIhFZbH=Z9?+D#GQ^hCE6*r|)At3>D!bSm$q?LI27 zeeRn<+m(3P*X-9IN&c0cj-T)=xSXpkQYEC+?KVqX(Gm|cvtNmpIEk7NprjjOFd^{s z_v=i;M!V9}iRPniCGP{3I`MlyhNQYPBghW6zj$jMk-L^c%HeM-= zl_gkiy{Gcq^g+>!o^+%#ITUlyQLSC~b3U0Y22PZsZr;YIQx{DU(@$^M?TrLPQ&P(` zc`_y611}pSKZd>Cio~Y=khJLLh8?L}7rUD5k(xmj7fY)Avd2%=SfKe7&H`^aMn+ub{XWr%GQIdNSn3s3 z1BV%0zZbVQP5{Abo&dCx-0z#;Ar+$1iSYrBf@Uof37U1 z2=XnVdaidmcF;*^$BFwD+WK#!)+cHUrtlf0=EmqCW(-JX1yU z@$2jNm1e!u5Ec4rpKxj91pZZ!%tKJbLLt`4Tg;P4{;=#EOn%ruPE)W)%32yco3Shr z!8T_KgGlZw-Dk)j3jZeJkSxVTjoA+ZD^rXyLAimwf=lHw@**As$I>f#(=QuW8|w@v zGoD=^S8hK}&%ZMzJTg*KZG094IKm)-ocy;W5U6v(!gy=$y+kQwQv(Mvqbxft`Rn(W zK~lv1B^`(ZaJ+k5O1}om3|~u|bIt1Rkr-`akQ`er2|>s5qJ{*~j$?%F`9k@%Cg)Rhx3l_b5-J`FMRNraRRYpNS3y)+Eg}AS>!;{xnU(PxQFAk{Zi3 zIR!oWK1Ytb#aooRIyNB!6a)vS>FV2XmbP6(k2NXG@V01Ft}?=w3e1$H{unN{A33l2 zHfsxGhzMxlTiSC;<2yYuD`3hNb>+26p&LYV_;t|k=53?2uPHKhik}HQS3`*Y;5j{) zUEb&yH}!r7WPYqz@rF+UmuQJGb4h%B_IpZZ*O8GgviIMW#ox9AyxWy@$e|CBMjWTO zcU8%eo$|N)Ydkw;1#(Z%r>6Wo7S+)9Hf=5{K-;CnH4Cxm!SvqLq3vS9!vl_mgE|GI zdpwXew5K_0FQ^7Iq$%W5k7rft?fELO`+6UH>jF8=D51|uzKFNmEg5_gn&<%FrnjLn z5z9*IYchTPO6~ajUrunZGg+h4*qWw9N&U7c7!-rLIdoxp3{dmy*f@H`<>|ESJO)2uk zdPt?3oLFSD;=wCql_!kt1_2p%x;X<56(s#tYXq&%J($|F_B%zDjZXjKt8ms)ubt5u zda!EX1=@yFl4A0?U;#BK*;;x#(+vd5W5*5T_6k7zJLd>Da>WWg2fIwC)6Pt?_HcpU z(C)hKkp5=0A)(uA7gXsn4P}Hj-P(EkB9h~~=x3OpE_$(u_s$CgF**XU!U2u#Oc5gZ zsW}+CX2`$NS+-->v7(lb&n>XxkS>nW=vrkhRw@m85hT|zy#iXbHn1^JK#%U+-tWlU}Fx!&jX`e2J{9 z3YXhPmVWXn6rF>pmfow;}sn1b-NNqDX-VL8;5Deg2FSg0xJ z8nE9I=tlJpuMY8OQt*BI{TFw!RHf-O$8H>sajCqxG9zLGnWyDe5d-FkoEu!o6NqM) z|IvUsir{D)$?EVnn4J`{&#ZGwE&k@*o&-x-h^iFka03k8((msa-I2qFR!>w}WVm+g z>{kp}aK^XNLa6VDz!P{mqEok?V$^!ZDfNJ|4S5OR#2ZX`Bl}Y;(;DIV-`V^=VN|I} z$2Cv}bd;=?1QF<|=-1Acu&PwNaU*NNfT)}l4G58}=vA)Ci6kE35_Z@wWXk>peY}%Onf8Kuo@; zvV-SB;Fnc$+M>d$ZLDD*d7?6O(b~)M?!x)4<9i{24;!vpeMGc&8b6V^6l3lbn_ud6 zQ1(%*lVh7>p7|eJFkblo;UWUmofvZsY^AHQT?;Y$4?-AvannLLIgx!abm8ICnmT|) zLd8(`m%7#k%e}hhq61Jnyt3%r^}-$xgWh;b zNIlXx5Z%eGQRoch8aKv@J(Js~M|ElOW6=sw+{LOOmDrky&LHJM8fm{VpugxkB{1vR z@Lr-eQ4U>XUS47mEgW&rctx&JQXK^r!+yDFQAb2nrL-s7|3HC_+~s3w^g-HGKO_p* zmEm=1Gra+ujOBGJ70Ta<_}Lf;Di`Lk&(3`Lp=LJS$J!Y86ip^N#&3jF@*2C`Pf_pO(_^Htzi_5c1!XMWb;@2 z$Q95>7mBu)4VQ>wu3ZWH}_g z#l#bc``xr?;b73@81h>N|HR%OxSLYId8{cOL=B$4Q$|xEGnoRno3RTg@zJN@FaCgU zC1XxBtl`vxIwY})jb&!HPSVB9-1LAW;|C%O!Ye;Llx!D#KKJBGw>_VrP)w&Y2|5`uUT4LTYc?4-24x0MTlW=>{DW zYn;?N^Wp+!r0RU~f|ui2^Jk0HEuGYP9wF${#JyEC9DNQnd8Q@2r zc}M#c-ERoqDMVcskY_4|WRfYtYWi6E7J5Ea@*=SStbfy&PXz@=vN@Avd{@YiboU%Q z;^DH8>Z&?@hJu#pVxf$-B@xQ@!D7;e`hYy>^>yopQ9~GpPuI$)BH~yPHFrM%z$Qqc?@K6AcNQMi`eBxzzoT3r zJYL~6sjUA>-3l!B&F(#zr-bDovxi@H(nDdjXy$v)^vI!tQb$SSe}S;#!- z7<7UK96f#dw3A*y%ACimTUibg31oPV4XnH{=AQloRWsRSG{zWWk}kvwCGE}2d_eC) zfmMNN8Ab*A$R?SVBz~K4w~4m%=`li z!%u40D-R8wIAohWySq{$b8lgO5U;7a4A<9%!0!ZC%Gq1&fo(N>eLH_U z{K{F0<5Z@ey?gv8J({>TP9Tr`9|ynAR9$$ZT?pbnx;6RG8ulM==0Cl+e=LezGXO6@ zrQ<&e#T=e<=^tzU-JJZJwJYWl_NW+x!?_FiPbXYKOSE}=|GPE+*f2Lv2tAV3GHv`^ z_C<6b_4l;>>oooI+!3E*6uT-aUooJni3DZf{9%1d`pD=F%M5)e60cPCIKPj0$vqWJ zX2)rNWA}|Nii=bBS9mJ8@+h6L__eQoi1SKB5P9uyi|nI&cZ_d#DZEt%>mp4pgn{ay``0cBjZsp@tGb z@F@4lT#I1EG-MLl*3_u|%H_X@2Hgr&g7=0DUwXJB|3oc7i65a z_Yz2YpVy!Vq{aghu>;mfqoPy}h&X=w?&uoX>fk{8lgp*aRXXOtf8Xdo)eM^dsu{E= zZJLE%QsN3|q}si@t%J$@dKhq7IMO9xbqPj*(cQ5-b+=$}gG9=B{$&D&img|=@_Z3S zV3Tjq=>qJ0r|gaO=iw#Rzw)p@YWhw5l(+wW@Z8ysVyV*W2Jo_At1{N=G84ZHcrxI- zOV3I&aut{pe> znT(4B-kiuMLhN?5E-R1mV^T1mQP|Ntq)nz|Id}fVt(sQ@>gPIT+qga2c{-ZpoAB zBx2pIzoHD}SU;{Lyxq&i(fyaVq@)Q5)sFBr)_91uy@Q{1lJSSJ&I)e)qKME0@V-!e z!#=02WuhMZ)+OI*BZP}H&~$X6Yw$&=`gz0!6^$zyrfH8ooCoN%w`9H>L;uobnJ~*)&4g%N3wSQk6&q<>*+XxD7?k8VzJg-#5Jfz^MbG7(T_ z(xH6ZMih76rH}*M_ZUx1@+ar*%$nh&K8-Sg#6g!2NvQ4LWrCel8p_fOpCu|+5wTxh8 zR%lO3^3KzQUB8lpTvNScY z4IepSyR}g#rqP}7bkkH6jvrKiC{7l@G|ocrE2s88 z;w*&bDcAg>Pf*P)4sId^+o-1QYvjCN7ZHO{*Y>V*=f<+0y^G8GV6>isNYgu#D1l?QYf?y|5S6*RbEQ; zWU45rZQ+W`6Q%Iz&%0Ocid~c1?cuWcu&S8eouQqbH6TK&7 zC!XJKDpmDI8_^ODVs@@0m!rYIqj2XiK8&Kzj4lKBI(ueD_h$Mj5Ba;l!_2~OWEX-$ zH*!vuoMyz-c>dclwYf8~jH=JIWAT5F9J^gV8@~k4fBWS{;FC=NgZN>c^7|{2C3#U{ zVEXf0-#pTliH0I2ck$)VH(MIHxzc&D`|+x+4dfYHdl*I*xG%FE zc*8E#eqpc$R`UK$w4o|NyeRQMhZG4AQ;QP9lJpw$t8a(21SLyEPH|Hr>CdOq zYgIke2dJtZF+!@2Ao=W{zT^7n<=(>aA=f4!(_G(V@tSKB1nzy0)1!gbJRzROQtF0H zsXJwum<@+D-PHNS$Ba=APPzxpmvyPRKvI>N>HV;scg$mC#a~<4zpN$o5~g6oA-%+Q z)xXXjC1%l_y2D`U%HkO;U8LzDOSg9-iyc$&cb2ZKFqxaNSLTKP5lc5r7JqC)Z>jB+ zhf(Ll(4qv<@d8=lM5}Xt#?C6sr+H;}QieBgLPsB=bo57hUod(OJ@V@wS$u%D0Q+8p2>nF*_CFj=9Fw+KQ^1 zYumv4-%ukKUGJweDuyN4N*r==>jU_H5D(P@rxe`_XLBjFhMvXMxU+l$`srE0E8Ob4bDPTJ+_J%DZAGt@uj5`)0-SaPMuFVo`i z=p!Rd6cZEFrhbGXDS-n-=~e#Rl4GI_?6ysvPZf)sY*xh2%S}4Rvc$AKi9D_}nt9Xy z6?P(u#%pK+FQW3B2?^E<=2MYa3 zl8;N>YB`fYrANfweTV&^bw1+O=*|9(KeQ_RtI1VK7Ky{?wyN5T(+Ra!3GaX3J=ThK zvSjscx}D$+c*TmF{W!9af*tW8qRUSSUR$$EGUPrvuC zpUfFo_HWz0rXAdD5Pn@zgmig44=<~hT--Oe0$YIdzNyXIi%qpw^(ahpahPbzr8~|i zTdXOB1?G+(n!NV>F;ixgE)i@E%kgOTOtI;Peo1gyRABvM!uA8;)6d3`CAVB{NOmgV zoGP4U%f}TGXK-L(nwPYeHRrhQoNw9RlA(m;#4EE+_DP)(e)4pLLOa2>eS4$Eg*kKy z5|HlQ#RVlUX710r1WA04Xw;9%zUdURY~LtqrDE%@YpLo`yH&`?y(B3Pjn1C2|L|Rq z&AaA%%5<2~xYkfb${m^dG%lpjBf}2Bv#6bkgt{5YM8oi%sc5C5GGsnF8flCfR@WR~ z^NL*=r`C3B*Xg$Amqy4V2xK&i@oU1`I>=I55wD_$%EzumVKXnw*anm16*xkR8c5$^ zksoP=G|NJU#G9psek6!QEL=)$AOyxLlG45GYs2PkVAxEy%5aer zu|}Ao1N3?Xpo!dbe<{Ioe9q&&?Q`Oi&zfAhEuHi|SlCN*lX%dRAc=P0EuM zf|b>_7ClPW9#5`fg%DzO@=>dA^}vLeLX&^6NE#%cP)w`}3f4u4IVV>9SsK%zuodx< z^nPeq@Wb(W+J!MewZZz;pY#j3tCIe2hTtJS*lguct~+YI%A;%Vt`^7yT()1df6^m6 z8<(#Bwy*33Y#5`nzZ>{7W#|SUtbGc$QR3egU)7YoXHmTO6xAzT8U1yf6lRW|x+j>- z5ava=+R~n3_$1mt^}ZM$X!y(>>~;1^Y9*U~?|@eVdmbOS07s2QxnkHrq4nh9$g+%%rRlh|g^2Je40pnigM39kvb zSp|y1E^7k;M$k%cBFAk`BjKVQWVP|Tl^Y?w*C`j<|NQG1y_S~2DFICq z9YQ@a%N+OO$7TLt;dsfumMCgjrSc%_RA=Y>2|`;eEFabmGdg z`|$(pV%rXgT>+P;m@J9{e^8kO4Zi!-pKOn#k8jjjEMJmY?8^YXn429WS=$cU|DqM_ z6vYFdr2A_WJ|BY1X#9C&y%O9Xv>-ubrHJa@<@#MevW2DZNs-roWZ}8&uP~5hipp=} zg^B8^9?mo$LzElFJ9xk?gS3;F)yQkGZIISrrBWZ;TCK@Cd8HwrU~vpi&dF8I_E2ui zuklgS=d;r98*qwI4%3@7P#J%cnm9YWhOb6aKI!3|y+`Z)vjZ9&0$;*@sk)feDubQ} z4wPchSG+}5ugylZ8xkkBznNm<3X4{9m(yixQ`@C7X+`H0wHrYb@ADiJ>wt)14NXGT zSZ)`T*Nt)$>R{D1z^FGdY>2`0H=VAM)P9$oWFqS1Pc3?0#Y`QrEWxtL8Mswhg`iIr zQ>Fnq>ysVQ>HALPRjtNJMXp?VIHQmRf7p<_Tvot$2|#rni86J>#1v0&?~P6cJt8_E z_|R^D-|=h5rEk{@dt5|dUn*C|2Msk{z@>5;5}BvKXJ8ATpde#7-tXPP+4oi$JXV>IfOE9P zllyP=XoK}2S<2g-mTcxE$ z&QJvY)O+KW$fv92X8_b0a8j9@M?ZtwX zAP+TD)kHqHp)htEZQmU%jYHWgQyR72k(x&Id5xQ(fmU|S`Qkoo}0^$?jc&M>^@*rUjy zUMSG|D7|c~MdZU;(;nzu`j5-D?ye^o6~6Wf-{=&Bd0e|+0q=r&dhzlmGqGX~#XEaO zCY~^K>3fLog4x)h;@8(AlLI#HmAlH>W!Zq22Y;AD7FpNi5L~Z??fl9QSlVTjuNB=5 zzR>z$nmIZBYT4^rj3Id)u{Zuq<|KT@?z2%Xsl!(973L!ja>Ue9Z0GGLd2X~_^>0si-WYzY$N*8B;1)Q7Crcs8xAbG zUR8T$B0R%h4WjD0wjb91dbndm(njHEM}@1SEYy#s?ud1;#$nym)QU92H>NS>g6tpA zLMf{LVoMD@E8$mSWPQw`_1 z{dI{?e^&;vS*>d1JMvp0;9iLT4?ITvexW?>q+Gl`W}0dd0%=5e5J3HFw2Z2HIAE3L zUZ{lSs30pOlY$5X7{cWVDoqK}C;%jQ@7H7POUYDKQjlOr2BCh8I(-4s&}c&d-B_jZ zh17RYuytbn>w(3iUmHE5QTv#!jGs+rFWpi@>fw_Fnkx@PIm8H~ov@8?Wvd0IcGpiz zugmGpV{FCOl`u0H+cWD*?pTcN+?vt>4~bc`zf0aPdcUCDYPZstqwwv>XE^y3H_*Z? z(g_*A}H|-six;vyOjWkM>MUByemIe^}U!7 z3gus=Mw;MWU~y35$yF-SW;J9zoblivqD2%;8~4+4$01|4X_-6pw0eC$tO)JDlH;;U zB`U}1^|a01LPi=9>!A{Su-k1%Ba%BpVLev)bYZ^Zc`hsuwr}q;47}(5WEgmlFv<^P z%~qmjL%=!zfA8Sk-TLxw=wBdb9ru-!d}?+HE;q9^a{g1^s#k-awpI19NOk~QRt%bD z&ejQ3d1;n<(kKyX!g`lJ7c}l4`y_1fZj~XROIz!&a+-^PO`Sfd+ zgG;pYD9!!8@7DbLG<_=1MKz|gW2YrOcJl)yNEbgpG>mFGwI<*DC<5(%RPN8zwTHrJ z!7lvSte9=|r70tIcKySg)_l{@PybY{GT$k~=eOjRC9LEpX-5?_@gY*x?bG4U2m8xx={x7e*1RyBi`ozmDJMLVfOD6mhaL7-N1>9gbb3qYW83Yop)=W zeMb#G8!2tp;7#tAbvY&j{<^l}n{V-%YgJ;xf3`vV#TTw8@ZVq>cwKX6s**mO9K-By zAPIH*=kpsQ@@jueak-27 zywq+Fn|C70C*l^a$yZ(Juli~cah%t60La8viu~`3X8+l${*Tl$Wnuhi_SK#R%V2)e z7oaB;So?Q#FLXr*R4Cc}3AMU=;oW5x(JN~3w2D1#8C%ZD_nZ)kQuecQL~ox8yLV#6 zosGz;-@@6t8bde(7ciuOpBZu}JGq_<%>bo8fr}-v$nt8Z0A=@h(+lacvz+5`$&x0a zQN6Z&68d5ddc3mKH^Xet;Ud^_A+F$@TK_-B&VvhD+mA6VuOu!3(UkG)488-VB!1PU zo#7yTsG}%$XfB37kQwTmpG~Jc{7WHIKbWj}cH#gYPhUDz%z`Zsv}vejBg;*A=%*7z z_c=HL;Lk6vXgnf@y zd-I3XWS>?=;XT#kn=hDd<(?84;?nb3P}SJtg|06NeMNS%$<@!iIRw-;tLB2xhl3?s0Lq`oA(g zWzqx;S_w5jv#^tWJ=v`M3U1|9Mwy6 zOxwHjqj%?0??3umFm8~G#Wa>6L8SCC4iPB7zj8J6sx3TZ1E;j@^XjDcn!eBQOZ#{4 z!{MbWukqb4Av2WU37z132whXIeU-cPWkp^ZBaOl~FU=5cL+OGu!N(5ZDSv%R|4VYx z;U`%6pyL-kZx022&aoT(>^FALc9-7i?P+)IBrcw5>9xfM9MQFZkuK{NirRB7x4VyntXj}hAS^Qrl4^)f1*&q1+GQ>BAdHNwE$@8DK?}!#jc`h21-wK|caFB2V z6bsp5?ulWn0ZWefkI+gS`l&@u+p9^Gzd6#Cle1JYM<1XkWLJ36t$J6+GXn}MSznG@ zGzIh-Yv*LvicV&HbBEy4Jx!;oB}LckB-gL8{bT}q<3ei$^^z|RBV(5>`<3+a^yLw7 z9I)W*2arzkBD!)Wrh(s0c(1XetV%QaP97K8qa0uVbnkmsfFV>Y3M?bx1tv>f2^d5s zQ2TLTqamWD+si2t4eJXgfrtn`sIR)wo=Xu^?dywi(^i0MLkpjs`@Z`kcwm*8vE0Tc zl3~JmPMSc=d}Uj&LJw&ck|g=N_~E~3tB2c?N@n{Fab4&`d}Mx8mRHX37aul8qGzwpM_<1 zSqYjA{`s)=ZOsUJqh~oWY5v~#5-0N8r>)Mf&hD_x6i}07^|w6FQ^YT!HtwYajQh~c z4|0Sy@|_-ij+^!R@bay@yl%ATcfWam z?XuGBt&Q|$c&J>8)DVs;Av_2fnTow{$4698NbsF}*Vwn9)ulg=t)lxz*{UsQiqyOp zmJMf)O%1UNvwyQZlWjdN!d)-%kzvs9Pg{{9yy)w14v)v3?T;V+UVEX|LBs-G5_KW( z+qucx-+|oO_WZa5xGK=!sLQ!27hIP!bdNq8T))nUw_=U=c>Eu z9*yYKk*eWWpqcSa)KP8S+QzSY&0-YbEc52*1D{`x(f3p|KDh( z>#E+4@}plQx0C!qwf#Jlwji(6Mmx#M3gO1~MNfWac{+M{69I*k{Z$_jKKn$&N7m8C z;=59q=p*Kt%W*n+JSW@bf1xAaDj=t+um^-P&O$pquu9BuS2@n*0UKWpzhExm-Qjej#hoX1f0Gk5aSo~>?GL;l zeam#y&v~B{hVnC#_9iC>NwJQ;-wQM^7V}NS%H=(6F=1B z8@ssfhjoA5vyj=eF8;woQ>(rM z<6m5wqk;&v+*{Svid$EXon@MTwo3PjUOsdGMLKcOS8qR3@ZQ;`bJPc8Cnv6F^urj# zg$yQdja8$x(w zRr=IiMm9)0@<)Ilz@>$iKlTx$*B-A%JFeMsbN@D-VnJ0*(obCfgd&?JkvMwo2oIeT zGohUASljnr6WfpM^Lf;Tmc?)hkwUofM1kN;VNJ{Q!KhX@>^m>{Y1z`CfXbCx8+@iH z{AVTUTj&75kar>c8#h%YPZ8n^z;tC2^ugoAItgADK|kukmu3s@u|DDbi)U%9G|_78 zaz;?%1$sZ>@PQd69PLo(hI2Xq0d09zSfQ8>p@)rXjj7{=L9^(7LOZ$6w4;UFTo&nF zRNS^V`DH@oi%Me|!SyM;9znA({@iir%(!x3|4YcHV9C)06-V@UjJzavuPnVMA+_d% z`66fiP*5L|-wJP6H8)GC11Ay{&dia#AHZd`p46wt+cimyu+jB-h1+eJI)t( z(7+-qXEdnh4LY$uZGKtBkYVNS8vLyi0t%h#EA}3tj3Z>eV%?xY4B{$P<}K*?=&&Km z{tsBe+qZQYcUJNwowHfbCUF>xN)nm?L-~{YFeUw7;HUG2g}4NFZ$Pw+W|bw(xTuH2 zts!p*ZMf~S81H5v^OSxJ$(?c|Lrorp_PVh^ZzxnoNkl8F=*Ut6gKI4;QF894Co#-@ zaz3fKQ156v-gF1GKlJ*YTvJM`^#E6}x#j(7?wjJF6Mo;sZEcj^fMwPEpE!H+{(SOos)h$UdE|$-vloDK3gKUf7SawO1{LfQHDjjR&yG*p6u}) zE{0==uMyKHGMCSVy!^OHS~wC0tvZFMBUrKmKm)EGqRUxhbh)32P%-zxn*_0sAc134 zCWCr!f|&T2=|TVzYqe-^NeWpPd;i$8SMK&nL@rUjaH`q*6oNb4w`7#}A+paIT54}8 z_QB1PI68CV9&;~qyU{38k)_fiDK7Tl$1JsG<8heMQNCfkz~fsYw4u^mhFrAK48 z8hS%%R?O3Br;r`isjgO7z5v&?nS5!a6P{w1bAW9g3vjdyU+KBop80OXj(c%Op}0aT zV$bo({pDKoy{T_O<({r=)3Ej)SZ1<3@y%bd&=0`-26faiTS%oGvD23qwr7HmYO2hp z8*>6sVIsB~kQpx)VETTXk!1(NoZp~?HuLB^fRWZ-Pbu5Fz}*nZ&re48pN=El_K&*L z5!^n|%e#BeW1VMJN8YAO@inoutCx7KYT66m=i9b_nfT^yu?Ry$+y5NXfzxnaocJ;& zQ<-ZKn!n;SJy_wv+k>x89Zju-pK}XzQfo$$`agZ}OO|(4`VGilMweeB`<5?z5I;Zk zFjtza{sUsoA5wqjhf>gCV_RPSV|brAuM9quKFMpEh+=)^s|1D+cutDv2vwY70X3=0 z54GmIgGX%ZSaZW1m{)d7hJsunRuQ=Iqrqd5x=k`$wFc{XH=LRnkvslKw`X$@E?0$n zWdzt5owYro@0Q+sk>wwK^`dUZ3Y+}8L7 z{TElhL9Ugt+sXV%KFaVFl%}^cy8`!g(^&w9N|UZ<3tvxy+a9}id)o-FH9;0etUrm} zLnyIV7HAr%By5uVkpjza1SWeU7w~s21t;O`A*1o|j=q89UpwGH1z+DHZ-JJMhE)F^ zqs_H>D4E3;vJ@ocur`i~NGa~9@=dStQ3>(Db$R9Ie}+2l`bD>n^m#b)m_S__rx18q z4*BL?yv7OmZ^(mwGv7|L52w(*Qfey|g)1-4U3JtuTVv5)^jX+rMs72wL#&7Q)nTW) z4Q!s`s5`sag>T(XI=G@wHI^@wytOiWyEk#Um@Qr5$EE#2OrG%b zOYl zd|OO5Kf(~2tqG?g`iGin)6`6FfU4n~n^H%#$MVlb)+<<6r3T*1lh=59fdgHcb=mfq z+cndZ8L)Bco%~{PogH*p7xH2M3HsoM@&~!rW7GNHH@(A3<|a&WXUhrwO_vX@b)z^L zQxYYyueLZx5v8B|ExxYC+amVAjlB??sh{H@b(I)59A6a&jb&u~IsB`3^pn!0tnEoW zMqrYYZS$U#SkkBz|MA0g21Qq1(FgHWfbj}4Tobv@8;bt!9rV$_baDFT8WkKY-mpgy zJN%9tnzk}EJAgR$){?>lNK48S!D$sjd+7 z3G}{T-js>(&KdNI&$Ia*Y|cFJ!@-PVbncGLK78a8WKbmw#I+rVahl%@a9!UuY< zEx0ko;3S$K@t|>~Uqwe4UA3?yuofOT8|Y5}7Du2_m3mB6^Hj8o0CgqSFC0>}Hd#iS z!nh5Q?)w!EdrVSGTsmf_A;`)4j!)B&sge2)jcLgKKs}tWuB11=PU>|MDL+9oy|XPy z28y(o-z4>_)O&n7TLDfjyux{GWS7SnxicL=_9B-+a=Y zRs8=-bUua<{|j^eBueL>o4yyd(o^5|{IlrXT@(BDp}h#7i3Q0IXI3b?1{{g8CO96pMA5JAO1#uvugh zGt_U-2wDC9{rps=MQ*aA=Y;M(OK0zm1r@21)lA{)!VkAHepqP>{(PMmw<#0nz#aJX zY4SzKn7zUAb&fGPGsexJZW_3Cb1>yGkzjJSuYFPdg}}_L6B_2X^37d;4r+E+F+SO6 zzO69eg;|sL-z}U@=RY+V_w@$f)pQt$e+ErRC{19IaqfE4U@CBbhuzH>0a!aaY@ImJ z&Q6Xx&piCM&KUG577ffQn1Y0vH{ri~zFQ3uT+9F>9|D&JY1cw)tH6xz^d8PqGQm`T z*^v$X3I;34!q~{&`{2_5-k$#MZd`<}s&X|XyZe|2tSMhA7i^&8{Vi768)kZEx$~Pc zA0nAgBnT_a(Ui7a&fuY!JpA!qlRqx+ae;5x{{bAKUU#|vu35S}~cfx%O#@ zHY0v**gf2P1y0dZJ6=zqKz*+3^!)irA6~jvRBz}0F6f$%`gj^8jV~^1Df){(IB~S2o0Iju|@w-3^c5-c=QA%z; z3O*`Zu)~J6EZ8X->0qphl_N$L9Js^VlDNVEi=*C6kJ8#s0pifM7f#DHD>k&>xFx66 zv6F5|O)Xz3KOZ|It0L_e=!|k?;f~Z_g9bVW<Guioo9^N-kU2)|2z3hXqGO2xi=? zM&Z$lsEMuQ0eA4mvZqd(m^IJj!2Qa>AhCAwNZUH}7vc5cKxdVC0|+bJY&6(mZEB_^ z{zhI)g=s|2fN@+;H7oO|1N4>E^_hu+_3dSs0%cFP1f8}P#ik0=$M7fBG7%ZfSq~G) zGW7tQA12UpNz#xkeHE!8CTyNsaRT*5lylxf{52@n zIJw`qTrkq5%&6Z99C2%@d~K<`nsMgXJ|yG$cPYqRS*(|_m*LqZ0D~*l^1gDZwZhbc zL5(6Mt65ARTU7~XTyk5~b9&$0Flzd*OFf5c%u}Ub%XsQlk0k#ZDbi+~;A7|s3toyx zO#YYhet5QHYg?5QY4}f9{Z1LhdBT{t^z%52d8bJg*k6e^JzuBltj2(=lh7aU!q zyP?_k%;otI=g^-%%BRZ_dqI%V%57735qIO1oYOlvO#Gb%Mn5`z0f}c!rb0_shi$rV z7GzIe@18HRi}7Sl`o1$LsRecs}rZbAZuKA*=u_BCHmboUM-}Jq4A+b7Z&R~3ZJA8COsC1l;28LuN%iWl`Ui!y zvQpNK#p52Tn>fOgjn~AjTKB%WfuRGev85T>mZQKbo-N@^Q(2-SnpbgY)^LSt0ffgi z*3fTn>M^?6#~as5hY|f}+r^`=C8p+Lh)p^=F3hn#f0!}Li$qBYKiPs3%h0XvGoBh|I{-@6 zuQ-J84^Hq&)H&e1iM$Bn9MCRbp2brm#plEoZ^nMd(z`pPe~XoBX)%nQ+F!s-IGPS3 z$MPRc4X275AN4q1@cQ3%(D*wxStBjxbb0!{hGVml4_LW;Dtxqz6=A=zLAB2zXVW7t z97>G=3(-TSj8bE%7bFk)cSrJ^H~wK_mLs2NM4Q$7w(4hR6vadWv=a3{G!81~XIGMc zSP6y9B0e@6!W&<68h9+1I>pk@E?1qSzX9BMHbJ3<4XMZF=%eYA$_7;mo12^U?}St~ z4_K?Thw)avYfVq|o2vxkJ=f3<%UAE#DD~ZX6WiL5g+tpg;PbkHjWT;&Xy7~Sr){=! zIWg;EgMxAeA8B6d`w3uT5?qpUvZlf8}?%M^aw^~wpK6yz)7 zLhGQdTnetW`_=FYk+RtlX=j2vAzg6O03J6fb7RO!$QXU z;2~$;R;FPDKKt&;wYtrh5C!q2jkv*VOb+~0GCg5#vFXqWJez8n8drZ~KWlMdqudf% zu$}6wDzx>Yxm9+4O{3CYLDdeR-1w^j4Nw)TARC@i;e7JOsl?}h5%=D4O|97*uZn<* zfPjL6fQW!flP)bND2TL!^se+C>4XqaktSVwOB4_U1f=((^cs4Q0HL=4fdmpDlpFNS znKLtI=FV^KANRBW*x6+7>|`hG_g!l}>-*5RxgDGeS{*3xVHO{^TkwrqEA=uYNu;h7 zm2<**)zJD(SEC7vpN~&VOjAs}VjG9oO!WSvOrw zIxX^?qUY70HzFgi;Tc}HKZo7CPJ>bhq=u>Yk0x#3N`IVDPw4=hB@lijGFiO%kQN;U z*G3&qmM1Q%I5kEnROsm)smESEG>-#l-r_y~lBGaHTMRS4SYO8E`SK9gm4!vzCu8V1 zfA2K+AMgESL#gR4=9>i!#zZ_D+^zuLYpR}q>roowc5&j&!umyUbsbMK^h1Hr%5Z6# z@+}W3U!#SwX!-VtRbnVRd*qbqSk|ei4_h;5oyalL?l0bz8g$TY>X(_l08$E{k$Kfl zk1G*b)7&&IeVYr2{K+IhKxd_pSvfn-Z=~&!F2)FKnJ-d%d4| zKX^T~RJrf&1nS<~^P^rbsy-csUm}?$Rc>qTYK5b~_rG1EUleVc`*hSq5-+EnV}N7| z=SGGTe#vcvZn_bgtCIc5Q6)$#twS>0&^@9I|Ad80Z*V8{9r@%6*pb}#% zr_@*mZ!@}u`b2(U5VEP+l~f;1F$da1oaz)@3{3ur&4wrdPA)y+*L+hh)e|DAk89#roB}LFUe6aQol; z|LOHHkp#_s;0Nm-NuNGBLi26pQI?2nuB=ayBWT@HK%8_9E48Bnwaa7pnzF+R4-g+Mfm@1d)god zSU3AG-hclMD$lf9ggtv`Q0cJMSNJC-nUcLR`hRUt6ZB=1f2l#SKX!MFsTVNxfr-=% zlKWo|Vt$~C2Y1f7RU=TrkYxj7RB~bA0qd;^n%7&kaCd|hgX&&Sq+=~~jch0Ea9-TM z)0)rXcVDR31IO$%Tsb{#J)-lM+cK|z1L8eP$2U<)5=75ER8~pc!yj}Qb7BgppJ*TT z5vOo-!hG;yk#D3Fx<^Kr+Ms^lheQP)6S&e^P(W;3@xnmc7fi3eBJJFP>!|pkI;< zd|wJTXa~SQe|5dNB}?tglho$>1FQO!@xvA?z~~9f6Cbk`&z*+*Z4%g_?He2%_0k@@ z4y~=8hvlpzrqA$2a%J0ZR_6@oNP`~ctZ5~7B< zHs;6*ngk*TPt2=L`Abg3(O>KX3lXth<_QJCUorU2{JWWRiHOf$&(|w!_^Y zeZIKYr*D)NX1~d%?hLE*8k($BcB%lm>|8J1I`P#KAM+lvn%w9k@|4QJ$u?koY#w_t)Lcq11-qMn7H9*liC7pIE%_oB@6+Iax2pnlsC{d!pIoGP={G%%$HSj; zja6W`i$vml1~m}UMX(D6$e9POt$EUd5aM;#JhR?#Rv&#x?=zH(39Qv*Bya36GNrNL zU6kTyZ#7IJvB~4g6{nXMG~uE>fvZ7%o_7amtBy%J@cqU2UDdt6p_S=<@;4Eg%d=a# zY@HJVj$_QZT_|zif<}pFgXukLnQ5*^rk;u2jn&Sv8DH2QLszvXk0)n0Y@E8dvytIm zR)bXWxS(yJhKP((3&xmsWV+(~+;A&LHhr-^>sxg$VY#>KR#F3nM27tF5#11DrH<{_ zdrsMOTwCvRVtbI5``c&khxuhZ$%)%}no3MI`qWNr14-11QgsD@+OhGmaZ#3UeP2r6 z+39@m*N)337)6IYCYtHW&Fv2{tq2@V?f5^`=Z&hK(-e1AQlmQh+Glx~EWT%jEX>a_ zlAU-KxI{0sbvqBq`esGHAVhQpAJ*{kEXKM=UV6iwAZK7Yn_i=z6g(~}!4!1b`NlPN7;W6tM6EudrWJ|Zm# z+1==4`_o6jT}KufiYTvMi)Gg_=Q}W3WI^`E{n`yAc7HY80n_UEu4b)w%=*>n3^*=A zL9v*Qcw=&gri<@Fh}ZMOes+&ypxW9;kWi>8bIM|G*5m*Gdt#pBu1J_qvT6+r0kgh&p|G0s027n^23dBuQ9IxqZVZSa3|<}?k}zV_fP2?)bDDUl<|aj^MV?hH zX#|ZcX>m$eb>}T^-=W(H<+2wPIK7TeQ~YGt!PnJtBqDUG_si&`Gw%liRLcYNY@VDT zcuQx+UCyxg*8Sla+4ty@@E>*w18;?kY|PCxS-<6Jo6#jvjQ;ojLW^V_|XHi${}ASEtB_TV6411&MwmEd&mk9Qzq`-S$l)pS^23@ zKgeqk#EHWsS@Nex^YAs@hxc21ZDrQTMi4;ED1l#X?Oy}wm#(l{gb-mrOJg z6Si)|Y4@Eo(kW<&$2~GKTk{>QbTB&bn0WDg1?DrJdAD*Mw=F5&^$L$v!pHLOy23>O zc3)2fw@4l*wg4Me8HO6mXs_0@Q_7}R@`wRtXl<0cffAB+Kr8l{8|NEQXy_gJ7I8^L2iUnzFWaxsgCiYD zj=%eyoHZpYxUrq`W0x)6%M9VC`Qu65u}MumS$q(-)Y!Pu*b;H*>w1Q)J56bG-ginYt&Yau%}U~kf>M6<4N zBvzhIH}p+uXo`!73$To+&d6;vepv@r+AlM0_x7sVa?X9bRhY+FzH>mT;5@MT?sID2 z<-Ex`fLil8yL&HWH}A@}cZ9sp7_*MP=y}z5L3>#0tmLB)7dyFLTnCaDF_!^+;=xwRmz}yfB_}?bT%MS2w1vyU!`B$vm5A#!gE=Z+D_j zp2O{4+nzW-de+8->f@xX#CU{f=488FC8)2(_a&%P^4H5zI#(tSE%7)K4E7>CDJ#K4 zcqzl@yj`zZng3a*`M10uZJ38DSZeD`QgDR`zD$}VFp1)PxhN<4EO z!ZcQJh0wA_mz8~(yp+nFGT#vRt+PJ$f{c54_TziT}wN%@C=R?dq8KuEdNxlyYdB&0ktslVb&)>LA6JTS2}U{}Hi zR;rV|al3Rq@&4UHbzZ@ScNnHwp7r#_m?9oQXgBC?;*?GJ8e4u-W6^a2+mFg0vJ-K; zdZQS*0{$n~s;txOyIzb(ok=e=Tv`=3i*WS}SfKNP_#&*uW$1vj!DWqNlZ16D-9mqB zoWug(AB8tnPHs^j(vZxDn;HXm5!GzJv4Zpo>%so|l>sN##wTvYkOL8XccG*crtC-e)oD5QL_T`W0C9nd3A{8JJ@uWQ%3R653C9l*P@d+S?eG>Wz z4{Mj=s$cG_$7BHwAwGkWCrubG+__fg>QLMmh1r<-*V_wP%drbNen(9fxvd9Jed~8! zWSQ!on|5tMJ!t1?Tq&yqCLV6w@QRl1VEw;rPO>fZjXONV-vIZ6qH7Z-cCa6Vxp9T1 z*G!@%;P}_9p5I)c^WXXOsgudg9Q+GhS#~={d>X;$ZRzCI&js!2dfWCf;u-d!r974N1`+_Ash1 z%uTm4Nvy+k>~ZqW>c}6adRx2Ptj|^U@3>#_7lUqmmO?ke_l-JB?huwyt=|qgU{^e? zv9a*23&Q;2SIse6c0qeEMiU}q`cpPNbX0;Tb+)ujiQtwkgs+f(@1IS73^I5)Kb4YT zlB(jeP{5Xf(z|ikOX<>=D^1F}3-}G4uCwwsK88gk!?EM#+5BE_>+2jiP7x|m=QaQD zr27A+wWXs1-3j=uaZJPcpG%E>KZ;d-D2q(?8W4@z;M0AO1zbae2h# z?9WPLf{~G*rlcGXNbhZAs!#9g?)wIZ3?3=az8{R16H6hUD#xnf zj;Jg`1ohio#ArJtm^k<;kYkP^ROm^l%j@F$vSl4;W6$w#Q?luHTFBbN!7kDHnhRF$ z&(vWzukDBXU-O@mb{xyJP32y*9Hq-kp?T3DP}|k7eFu|c)pgl!{Z4f2@-r_r2t!F6 zy@{j;m$+F}GumCoHonL#4wa;9c{HTPG!8P5JunjcTp8SaSC9DC6y5B~(ysy17hc#l zMJX(PA+r~vsc)g2szH1Ee>bX>I3b*TGpdw^j0fP)P1VF~h6h#(4Cc_+c?9QVr0Q>c zwc%bb`DWzBOuaceS(OGHC@uIhU4YC(4K|X)#V5z#+~)O07k(4*Mzg8pkoK#UqMoWz zlbR`z{vBrGjdpE(T`3@=NQ&lR0snP<%NtE1V7)a>*&GeLE=rm`y)W>|BE4Vs)HtI0 zqhqTEb^}N6gXgNw+Dha6VGsyCv`z=sZJ5B?VWTDoh=7mh0aP}H&}y4PMm$d6Z0_8D z+#M$}PwP>2ISLG@`O=f9MZSK4 z*Dpj3Ju@-YE2|JiT3;gbTvN{1-1;!SgLg^*?r&aveeqJqje<)Z&$%R(ZUh{a+2xp- za72HT_6~YLK_cv(v;1n3PI{;&1!wN~a4woxRuh#y;&zE_u%MRK{FIIJN%QDGy6$4w z(3j>8%7uWGyi!#7XtzHN&}4sa5Bty6#Q!hHV49=~U%I?xa^k7G$H+vfK*JatkmUUs zme9zFd$VwZ8=Cm`ihmRbOLPQ7chGpU@x=%R&ECq^HX8CH%)8^)pcCgClFv=f;x8Q1 z@Al(}Bpg(%=oloJLpUg@V#5u$fr{FYBh#VZKJULl5z8CaMvR{pvN<*U5!b1cs{TcWbzqD?0pC>WTh?m~ zIIw#5%Ly+?-6YY4X(8#z^2A%EC|=PlfmrWnSljFHNe!!#wcKj8j6Z6;wgBYl46DHy zj7jUVr{8)^*a3YFq?&aJB}!^tmNRRBDsG8mOf`7DQ0~jV^(0r6G?$?Y%3pkL zNig(fVi4qw=kjj$5#lht)Q7K|jAQL>{@(Q?u?RKofVP%=UR_o8)qc<10Fw7M(&C~Z zo0eB(QDDzbxTcA>Y&!fIQX2AQHY0@0_lt8>Ng37?(HcN8$72PlG3*?-N?m#e3$Ir| z;SM7A%GSNJFscUx?_+DnYUQ@s$ppJ0j3t9(L6dM6ndB4kN1i~ zHeTUls`{s<`QfDbc-kQf)s%g){GI%C^`&^DlZYWCe9&lx94Y%B7n;O$FcCI-0!6_L|Zx zU&8o;k7ReGB(~;yXOO8Opmu{@s(MP*uNY|{-)|(jNP!v)7^)9`+o}9kX#4B>!q!bD zu!Kz_Xf&*|YAXXV%2^<_u4(zCU1N>Tw~KK`%Pq|WA^qYATUa_HHu?!BH8)Wno>pKw z_%JL^V#|0*%Z3Lg1slU&YZ7ShKM(#;F?xMOGCW;B|0Ls(gR{=11{fiIUP=v(|F4ZGL8!7sT6SoXN+3vaEe!y34kC+(cr zrk~!-(%>>yegr2UywMF#HM>(pYfG~~SQIy!=yv$jg=>IR{*DdxWh=aOAr4n%ZyLYF zEs3Gp83YA=JY<6&hNE34aeP1^4Ou|GY~BW%sl*=Z@z`RQ*3WZOYx%>&21bV6yL(CJ zSq*d}^24*SmwbecHD*&XBhcTgzKbcH$UVfAe#$-O%1DnUfbUL2c*o22ciR~uRg23J zW9)l*tj~`n|LHdV@9))fDVgWXLfyWX8Uq6yB5zPq*GO%n9v0!1OJ3zev~_dd`1)To zX+w0(8%Xao9jiUf97l!1it(6$V>#qg9(eX(zDaJZ_L2x>amkcA^hb%p%(z1O$xPyf zn$y>^tVeq4CXs5exlJinTEhi2(}Hxodi&>Vsm>F3ZR~B-UX)$EE8NxnH#}*C@MG_q zmp3ZAYR#e@lVuVFdBH*?>}YwUYVU;^{OS6dd?}mFg+mWdJ|Omsuf;72Kbn}UkK}I! zO`T-8-affFxiS<(H^m${6L^s?=2GbC6|M6zSKIgv0429F#X0GlWtcC8zL;}ucuYI@ zjIUOkoYo@SpNg%`kS|O}?9RA+YWuVSC0zWH=8KS@ecH?!+>UxV9QN|D>W|c}Cj6`j zUCH2n+4ykytoH`lzjbB!%bQlpz1I~CKHZ%5XXZaV)Kf`xf6UVnvO&TBMWwvG|FQaw zlTys0aq2%{1TA+~(F-;#HV0o+mJeixpg9816hvt=$&?aqzkAg|U#a30TtH17h1t(P zGBNJJA895E@0b{^?;xDw3SFVJ9EUY9NsDkemh^TbkvPv?)GZirtmA5(eHW{HukAj zV8ZC)Egw8Qq;wlHV@9%0A}5c`3Er%JUaKZap>ATNmW0wsZv--Hy^z?YhnKik0D(qD z7xvdu;!oOVWebcvt~k?5-0F6i7O<5bH+^{N7muaC#)K%SgR^cfvF{nF9etI#UfylE z!6z%?d-V(LRmk{GX^)B&)(~FoOHoidWMd%9S23)&7faxNgQZ8YJ!gsJC&~m)vxYm# zOQGk-B0H(t5*Bf_%#BHl(L&)c$P!6_eNq$>BFVR3D9grd_pqKlN|IJ>63B5D5A)IL886l5BbJMmaq$0$lD$y<1u;Pmb}W z#m^BRix4CU4T-xh2knEX@ggJ<@O=ug3O1v~KzgeQ)tggGsbJ{PI(TZ>3Yi?I`M?+w z2?UP&A7k;sUL|*^LnD9$X}0YNoV~j-gvIReu`y)l!+OeoYIk^nm0mdH2V=m;F7U=V z?*T^Q#M_FA_Xw}E;Z9+9&vrUIg+}vrvLs&$=4c$P?miCA4ip=f=Lo|c`x1xyE5;nGnQ4#$XZ|{umu?$-Iv(1G>L&7;JnU&6(eaoSZ^mCmtLpU8BD-p22<8pcD&Ro6zgx0YY}INGK+woIswRX<2{QcY|%r7&jyAT_`DG`bhCwR=uR z#II`6kENLtl5h8w1eg%`37A0U-8<=C))SbbJ~4~)v%q}iFm+PIv;m5=Mr|7;eAeb6 zh(W}X<&z#Bg#{*bEZT!m}G_~$pw)XxHC2x!3%;bcPlu?`Tap`t%nr{FKZJQF&7+IdaAvez#MQD zsN`B9Ok<)HB?_!&?XloU)H?j^*@-ys_at?Zw*b7@(jdvlj&NRj?`!MX2RDd_{J?@>@Fq!ZE%hf{md!h)T zuPKS%xhbATY&#~ETtAr4C{cUaBdb;u01JQ(cV+bjApqUZz~@g)C0(qNhQ=4U0}=cN zH}}OycCh=ODjHVpbLgc4J)Rq*X_Xw57p{&AY^zT>R$fF-NtUhNX5e&~U^?8>^p($q z?upWYs2E%lv5oKcYr`%;iZZV|>^t3DPdV_ zyVWG^GK@IUd~@T2r+;+q=;Hpkmo^}a*xXwf6xB!u*T*$;E#-f#)v^any6t=39Tn9b zrAI|_Os3Lwd^11Lw`kQkyiaAkBhu)$xHNLy7qqX2S~byW&L;?Wk?CR<0jv#}SWHLYwkL9!}O7;#+k z{%KYI^%_e$&pJi`Dqef#%86@bkunr%#mx$G$!D7?ocTRV*oXX9ciAU4jj(T4I+-lP z4aN=h=0HFaPFgwnRtIgrkRkQWQ@D6m%&C89Bp5fAe(?>-xoI!a?xWKEcNk3>7LfPl zFKEt&e7e9e085cq$Hn{!I(%Sa=cNf08&5S!noLpO#5ShUYDzv^NFvf3z^isMQ{u4uUeSvx8JqOs&mQ*EkjXjaTRMFZ+eRPxN zm@t1|ueZVVDL?dZ*)xm2Ay=<+1om;pB0LI&yg)>y_Tl6-c)K!$&?+F&Hx*i7sy6h~*f0&mAC z#1ZSjBiDRe9gW3`3>Pq(JC>0U(Q9B9OpP}eC|hwe+_FiH|9w{~k1*}r9Cl-Fh=GkI zAuZ*cpNEE8#)o8OZ4Mv*=gh1e*9M5-A#PGol|k_0Vfq0mvQ}zCDUdKyAyZM?xo?*b z=d#P$k*4>Cyv8|v5%@D11dWa`+fWi^;Sq*54!4U#+J;P_X4exqO&nGoEFVTJAM$Rg zF28>`b%nv32h^HCunSy1bXYB`lixlnSS_oP-}X~pGL3Y*RPS%}XFgKM6#J{6=JsBX zqABsgP5l4BJ~)wLhQDDBJQJ1=dsM!oKTa4+KpqCQh}vD1_>fr z#<5;4Zg$F$U19r}wez2U5|57MB#sAunitm{C~f<9C`LPnNMk>+^fe#Hfd2YR|Mg2y znmulBMk|iwWE|&^o3HtaTl1Q);j>9ep<69u>+09R;_vbwn~yomlI}1qV~_W><-;dk za3fK>9>1m1S$MHghZNWTO#8HET1sCvWxoIk@Q$0=x!JbyJ45>2`8tL0Ndj85Wo)ug zJ&d{rK?P$`LmOBRVlHIirSx(WZaamR2IwW`PQr1ROl)y=K~zI2>m8Hw?noAjCrxnHxa6p{)4?ZJNf%EZn@pn@$z$twUTLH2pbV^#;!~kjzdbCziZ$deXGDg5CQ9`;o)TebId1*w3BSh*L9)wzd+GK6) zO85Exm7SdQn~yx)x5d|W#r}xtl9K-x(^-gQu73YpP`4EBq@EFJV3hz+<0S@N%K5&r zb5GbVFG&X=j4;R!b6LpPC8q}G!Lsj6$tO2?hfDNl3-#u0+UhNAUN*mik$7mvCwq2( zzJYXeuelIa__xq5W$DGALOVOEfK0bVtC6JdUh9s5qwBlhy6=ctEZr+ynb)Ye?gk>c zDx)P6;5Uj&w+(b@!}xb}j^-yvKh(8UQjP^#bTj60cvD)WYWHz&^!y6$yuK4e{W>R! z(N3_>uxy=0>R;w9gzDy`z483LX6Z%8_fz#2wAH~Af_#MfB!Z)Cw?%zD++Pl$3s1Ay zfUpsMMqf$19@h&VDZhVLdS%3`;@PkgOolyzt+D9Z3b`BfWf2hGyX@G6e_;aSpI}1) z-AjO7LVFt&fUU^ttx+~vO|x9!GJ_5E_8}SxlbrzWR0n2Dsb08amcNNrV`-BC+G#ex zaA3x;jH4*jokkzqr>iy?kcJWaagOF>1CPwjs9?~sD-OPG&eP>EX9awT&R921w0R%@ z+93?3e7~`M+QIG!+J#V3Hb0b7J=9 zkS{5e^reaWJPTQRV0q@AH##&g5=?WsCb64{kVbYpO!4 z3sbDy0pyn1w^*i{LY2kx=yfJxAV{Q1Z`96Y;f;i#w+NkEum~Y_^!`v}5XWBkfz;Xr zZ{b95Ws<*>)<(Lc${ruuH>arKtt#3^vI3QBD$V%Y@mEac{L~H$bjWTwXS!NfKIw69 z@$P~?9PSmd)54RT^AU3vGY*Vlb;l{4yAt zI)$6|8lRha^`$Y^#s~>UiVE7SnXy7>m&b^=O=fN~#0Tz*R#@E3yUWLI&MVtm#qy+$ z=g#(zkGCwgu1(=(6Wv?%eU&YgR2wz2xMuG+aISE5gSWfQt*>!sXKam>&S>)_eDm{= zBqE$nE%7inE|$Actq?1m_rkgs6^FDZ+cC)O*pLIp)al16GzI&XP>6pr~Q4Wh5 zt6{ewE*dyBSzq>*v!r3AS_p&0 zLqG)sKEBr)P8@fxj*Ms8~i zQFnMC`&rrCEV32EhnwJ$C)UR^?Drjh8nU_7=f>}=ILii$`5xy|aA?yrDe4FZ^Gup= ze6E%o_dC%!B(Wg(GVom05CkSg#_!K%CR?!G##^8Mt>4Q`$coi2Bt}b;LL^pz=@?Ql zzj1h84fyqn+3$6xTXRvO+l^bAsak)C2i1KgHS8yL%AdJvi>ssgQbTE%O6s9}n zm%K<^-*;r){5FWeSS zA#xV`F0y2ZwNtVv00i0LmQ1Xew62H#-eK)k^r>G0SbW&vGdUgtYTEbwR9^cNAUsQ6EI;&~I{j#~3Gm|I1{AJI<-KQ1@` z9_B<0|Iv-9zsW|3!RA z>aE7XNhnWKSmkLC`9@wLwA_uQ*xzPD&*O5D&pwUb}XF^An1DMyLgAum^GMJrqrNw9dTY@ zII)OUjyF|h*Rs|8;12l)6Fm3_z+hcu@?qnb3{{20lCE*uuHB5w-`QJ_A|d9|5WL9v|lpDSdkC<;%6R*HM#p=kPK8o0l%=1U6qP>p?(HBa6W7;TbCuO=&0tvrrlI7UW< zM~Y>hPg?DJHuvl?3Ozq8lYS@lO=w0aj1=-bCcJwU4z{3@vnwUzsHlEd&r6WR$s4*w9&=W2k)W*@zZ*u&Qk|5<$MS4ruE`< zNk=I6&FGQn?M?wjyt`NG18g>Vr4rNw%mzF?m=E5ixPLFQ)jz?&rIPlY^&@M%xm!Vk z@BAAt>A$L4Z1Sc&U^!5xI25mVNs4jY`qxx8gNO?9bvM%1CG+n{Gy5N%XV1ssLm$uI z;5Hq|S-^DEJ(mm#UE+Gtikf5S_~&@1;Wgud9M2ySPvSnx*L5P0xw1-qIqqWFR`Aij%fxM&^J$net?!|CbRk34eL(DD~B3NhC2@@WgnwNDhG}LIc_@$cT z`0~T01*4X1$gl_Rs&^=NP(f&vzTXHu`D(={@4hzOwUA<_e5atXuy&8b=C=ryC+*C{E`&ssD$LqgwVXNI`OgTPk%dhr4QFmfd=Bla)73gzyaH$>j z?)cbN&jJpgBjUi0czZNIdVcwahi!L6N?u#gv5F^m*aSho=bgvG_h$FO%Q`~}$-Ekw zpY}F_eVF8V7@L*4hlkC5=se6)OSaysJRnMqfanuXj~iP}c8Y$&H1;pe`!Ci;y!X3; zk}mVdUVmP$ahFw!U?{BQu$?7k)}-yXp(AMcAWS9mK=pZT&_F$@Tt{$(Fc^w+)z}VN zgYOgCn*LU8f$NK-;9c=rC5@dEqz+Of7p_QKc7zUYjE%BD80!b z;yNP2DM93pAnNq6h3$slmdl1?Q#Yud^-8~6gUD}3>d4JPKtS@u#N5aq-rG|@?gPQ; zR^n`WbMiM*m%6RW3n$DyIV}}Akve5Dc(dI}ot+$o|SYS{uLMn*I2A+MF-;$(Fb&{2F;(YDaCAeN~;@A+%cw8sD~E z|M|c#Mhd|0#XwIq!7}RfMG%x53|+;a>TOoPq8DZaffmr`Bl#SF2!fSckhBqsDZY{P zqz1=MvVW;A6VFu!xVUGUvR8U$l-C#Su$$Bdxu&b}nc}PXXZ|Uu)3pTae*^9?U3hl!!hdUr^AELUI89-h z&M#-20&|-G+^_w2f%TtM)qiypYWlmrXi9uktB_Nj*NfbQ2mg9q?0Dv>`F;a}_iil! z6W^E+v)|pFkJg?9@I&5a)ZoIOeCDp5AY@NhCfC3%LI6_+7_k zDW|0hZaMN7{^;GQgiqdCGRaGvhMY_uK3ry63%vt{d6nZky`RAEXeU&D7<3VSGiMg- z_Q6VDE)faCe;%c*03;YC%!TFj;sZmxub*c&N3kIRFKkx#?NuR~n#b8PL}@yYl>MS! z0O9Qn)%9US5vhB2YYupPgo`>p*lU+N@*o~2HXc8-E-tD538=qze6ZDs@;f@%O6=TU z!bB~xB{%9Gdx7H$E^=p2wG)V$Z1JPmyRls`TwC@ps56RE<-*GC6?`@e&j+EBr(L&}p$2)Mha=b$m7F%+jSK}uezeo0ZYNQuzz zPArSuXx1)sC>~RL17K;)-FDcUY=8Og?h@?*{ZEWD)jl8oB!N)G*w5kcyzuPQ|Moxe z5C0(l(+2v~7fE$9wvcKNpg>EI^t+GW+81rbRC+8ko3Y46F87>mvzXme%U(CE-o-{p z3ta6k$FR|PyN}526^01z`xQZFcLJyQ2U|IxlV0S^R1=Fg8E~4q?zO}w#lPKvh7#sL zU~9coULBHu?8X}Dwf{juNvv>RcZg(x9`*1iHYmmIzE9b%lVjrh6z-EgTKt2>SfS%8 z_8!=MfjTRE@!C<@Mcm$Le}Ne#^6H>JzxR5M>Wz3* z+3NOEcc>z6V`{Yd1Jm{!(|#(Shl0!G^&bem+t{Of1NU12UT#j~EVK^NldQQpmjvm7E%2A*!eSuXp*PI!7j4#_+XA?F0mEm zKk0Y8fN6YWmlxlAgjtVj2kzk7kNt>yxOOvcG^|mM&DZkC@X+jq_&$5YZ<^^Fw6mC~ zAjNGXSwGZ8H@5h@Bk`+UPBF$_0?WDiE4V13_2N2lFQXXRkq>fe24V-__!8Dw7!f72 zUsZ0KO{9+Czpdbo$G2t8vU`<#i6;S~flMyV-obk>U#l}ql@l`~t4tH7#CjF@Z)^vr zYj?UX`IT_Vo*+b9+x@Q)2q&TpsiUAPL*7YJF2}a$LK^N7rki7SM&8 ztv6w4Uau^$&WApo6B*)?7Qvtot0x;OAn6A~CrMbx&?Jc^`~bgC24zpwv#CX%WdA%q zDnZ3XboR}P$Iw0$V6boFAE|cI-oLq|s&F z2Hly3RPixvJd=bUqN3>Y@f@M62hx9zgXoseL<7p}RrPAsv@`GrLhoeAT$To;{b_c}1h`8_9V za4qp0?ymH}!jP~Lk9mq4-4Fv*e$(CKx#X0@8l_+-!+6GR%5082sl^f*R-wmnaJX>_ z3&>uTGnBj6LlKHEw2O$xy&oSFYn|Yfb1fFze#a!Vb(8f2Z(gEr1s}9;YkOlBU9Qy< zvKeuW}J!C{k$f=9l~X`s|*kb@w(`*)V&H)JE0l zLdbzvO?|MOFtc+y_9H9{(mUfm1W%%>Njm)EFc(_Vymrlt8PH2e!-Yv5TL*o2sJ|-%t#ctoHaTrsH>ILlz9N;LTh&pxbBN#JknghS_V!HGdCz_Z#=D8ZU@T0ak zZ~M)s{IqK?om~*)=3MFxYmujBxHa697*%*)Nb|hI|0Y|b6NS9_a1qRUrBP z1=7;h-SA#lgHC!tuU}8GlUDE{rpz(JYtl{*Sbv?B)_-V34mDm4_Kt+R3Wtlv2 z^^K@#TlrasbIYb*IKECPnmsf#_*(S5KB7Tb&+qG$XGzeG`2M1S=mWD$je;&Osi4(LMbog(Zxp*F(~(XoBzo_mQ+nWYvDa<)D41cm=$M2_;?aS}8-A zN2zHvj^#jick72ne9qBV-}To~^~|l#Nzgq3d2QRi-s+Ot3a!Xz#{uZ?G|Vkt$)Qpl zt~GSGU(_(J?wG7YK%);yA8B#I^Jzi^#sS5op##QMfxPRMOq^ibHJ3qQ?0{CcOwT z73oI~wFN<=eV6j>(wI1eblE+Uy_2{Xt$lJWOj0h5Dl!JWr|}Mo4c*zpCd<^-HE7?$ zb$e%^!R)!WQHiSlsAo0CqeYoSSK%yK9)?A;w);n-vQKz(K1XgHxJX%NKTp3>P{b5V ze7CO~1;kZtUmue0EhS6}B=3u9VEiKN3wbY228Rr#hj=y`Qs!DA9%v!%rM9{E99bIR zrZd5DstT|Pj2%pv-l0BP>@b?TgPG(XF`MyN@GB+W?W;!Kro+p5oXAc!w~wQ#Hri#X zwB)!FSQ8KbG$%wQNk*GHlpcz@>rc_Keu<>~HDZ(=7jy;ZU`?vc-2MHc+Uvs!iBBI= zu800`J?{XDtgOYkT)7>*+AH;{o3>8&%KtQ<|I>6u>YM|<^IZ8typS#NE3G3CSVwIl z+d2lSJqDQ_P_$vmwpc6=W9RPs4iJik#I+aZ?v?G5{V}xuzt1-)rhu)f@Pf<~3S#|d zV`K2+II502cw6pSMn#FxyW0@qlkM|5BxY9MQ{o4XF|Fb;2BuL>qTun3evdE zu38vd10c;g_LXV&Vy#|=VX5jb?#X7Dnm#E6FGv(f9d5a14Ac=<`_3T}hzFLoW6yjj z)l{Y{5-k_(Y{0kwW!OC#=OyHU#%dLb6UIjPAlaWo{_b|)4?($CtXlX9k3u9Nitz6y*p^Zizb4qZ|KtGW_R|5XHd$Pz>sj18CDyLzFgYHaza>-!BD{o# zz;V)xBL34cvV&gSM=I!jomn&@Z_m%iZj{L|2ZG-MH6pAOgXFx9p?8|cE+&;uKN;CI z&_CC}#}GaG+YT!iOM<>jJ>oITC@q_8qE55>O}fbp5$%FJW)5>?`v@ePzV@6Q%g|5n z^XQ6e9<^*W*>6jG&-OXI&0p7oq}bZKZ>iR$UQl&UA9HL?xp{H3PO$f*0&PD>&XTSg zW7bieUO<9Z^{#I`Pj^@grtA}RuM&?*mim^@RL9&MRajTFFOpfnL)_Cr3y#{P`*K08 z>KyUAu`b(7VXCE`;8%i-dzfqu_ekb@+j+V-p=N-J>+QO`KgjA&Z)8En%(9) zmDC-pI_eLM_g+i?sB+Pr1T!9bsI&H$%Y+ZU8hJrCkarKuE1Ecd{1~49`L>_oW4nOc zMK=UY$*Q|$m%XMk%Y({vHs6IYPUjf9Y-KClQ5^kvC2=+9PF4Clp9@3Tyd8uP++1gsZaP|3Zmu=pfgjC6Wf3xZU!fX-N269i$MWYA8Ugl!62 zeQ8;5vv6;}ykpeRJ9<0H6;M1oQ>%F5p3B1e2W_~vqFBzQVEt9x%w4(TpgVAS%6yW; zVt(3WyNZm;xT(+5ut~p74(8YW>jL}T_8;Q&_sg8a20lT@?V;*ZpBqZDJJmTsK5W5= z74QDLW{tNSi(kO@G_=f~u#ptpM=L)HkOLg$rPoM)GJR2Z&SUID_7u=iM3(J*MhRU2ZelKjr!WuMmA-`(;ShaZH6v! zxDh;0!Tsw6B;}O0#TdNnuf8kEc}s7jk^so`%SWuSUp_Hl zZ;nUM4dJHl_^L{ax+wi?wZw?^oe9*dqk6(5UNeV}pX>kO>^-2GYWDSEJ1PRN4Mf_j z2#7SL*Px=H(nO?}Pz?}zfB+$&C?L|5-chRbPJlonU25o|haLzeKnN`m{?YfGd(K(+ zoO|#0tu<>Wu-4AZ{>|RAXP#$%&$CugdUmM;S*%$>p8V8&pu6fH@TB2pz1-;KfX;r! zGSeDxyId^I_$+Vc;kKw~tmE2VY;*YpNlm$QC{r=>y47Dh=>J8wl4rU1*V}wRnYJnC zDNUZq!_APULksho9!QD%yJtzEPr22-E8vt{{~`6$=r2)Ac_G8?mSXu(8p@3OxLhk%shhZFB*(SuxVdb=wK{TMzcn3M4^5dPRXBE`qH~ucrMr*W7n58*VS8mZIrbav)B2FvN=C=!OZ~ zc69)8OcwQW!(`44lZXbn5~NOp_noFv(Xg>;{wpPvIo?in6ZzV09xQ zdqw0Nb&A*0MHHCEbogMyX-o&QipF%{DrroI3ESV84j*ha?gx~Cs{Q|s>F~kw(wL4k zp1q<+zx5c~-yD?-pAxI;b|6WRw@2{%T@$^R{PH>d^3$K4J}eAPi_)zu)^W*Q7{0@U z>Wro(X&dtGPiCTa)i`#vD_=c<^A_XKtVVgw$4*Ox{PCgO16z0Z>==^3ee0>PiK#B56b%V3?0MH@s6&>_O z(l754vFn0YSB{TLS=K4*7YskIdF(co#7-e@#j9c_pcc6Ffvt!Au4haiuD|=Also?o z61=jh4;rFyH$Jbcp|Zs9TBLYb4my+Xi?0ux=625A9V#s$>%uuzSVy0Mx~*1o3nw!h zglMyR1NEvJ%(24w%~rO0>Bq9GsV#TDq``*P!al~Fo&=PH5qBmYShH&0gkRmFr8&>9 zeR0wImFDd8SDLf)QukpFDbW_+_eayRv-DDjiDTaer`_BiLxd<2W6=8>hB75c_n&J~ zmm4j?(gm~T*9j&qwSvw01j2)5a=NH^pIbUaf5_z{my@~v3r^+HS27iE{`sDZ7z;XGV6D^? zYc({BeOYI%`%+g^@0v||`=&H6Ll-go)KwFqxm~&U;eQ^R@hEFf9;nlwqZkR^d%H}p zws2~7cvCK2OV*ppU=K8tduxIxmU+AOpDd!EzL;>f3f3r@n>c59$^Lz5jDWrCALZz% zjuQNkw%EP$+19N}9}aYUV_jlG3R)-JI6ii3Gp3)n?Q zx9EMgn|v*dqmPP*C;iZ; zHKSVnl2kpm$(xH}_fLGzzj^Zi=jM&;ujF}QCSo_3D>yDfe(vs+^xT6I*Hkuo@@8PS zBR0o7E`5JU z%|E+`{#M!f_qd7_{vpTgqWNy-`GbjVQ>GR8YW~Upx!wQc_~&R@D9{`p;KQYdQY!7q zYZxhQh4zdTjk&(?PIJ%^K>@T;v(g#yVEuYJ^XiAE^bY$E;ts=&NowKk+?f#z0ZrjhUp~i>JEI zqs&{$w^IkYcW<9+@Ieqw2***#ukC}jKfV$t&RIV3@jKy;m%O4Kmhtx6rs9{Y)I15Ym7hxq)CHEF=XQ4c3$2?|v z0S!T@A-#ElwHkfS_to37LIMvaUpqUr46I+1VSUFo!{pHsV))+jEyVP@*i`m)UKtE4 zUHqRd26Z>SpBg{tIdS>{nH2rtlY&S8X4EgiVbnKwInHO2>-iI%GdUY9_fp2#;;__-EMoL%jwSJ5odr~W< z;+JcEmkeLraJW9FKzIAC2E$-(LfmyTQB&-R2*}Kge}h%8M20)Vik+E1YDfyCMK;`| zNUo2oX)zReyMz(3<(TGD!lo{R2X z+zo;2_u1gSNy$rU_p)9;)=*AcFvp#?Jh~EZbw_msMD~tv6N!x~-%TkmAT`%5TmvhV z$=G)d^$4##l^C6}WRXN~Qy1B_4YxTu9`Tr-ApO`8vb8)K?CFnl=&aY~($T5T=&ZLJ zp^)}pnd&m|B^8;G>%)bD?`@qx$IfcS)(*pQd(ZTN=U-$C&mmp>24PavTZ@9LUy4JE zo958tf4M#mX8Hcz^pPpKvu>yKK9w2hm2aw}$i*h>ZqjNJZMkRum;S++FR#eJ?t$%^ zWO2-|{XFR_8^<2&QW=LrnJensyMn7Jd#@p72O=Y>iEf8vMbEs8o<8cP4N{3x`B zG~#b>bTm7a(kaSD?7q0220D7{L{1#7$k{~kdO61ZW%*%)9$)xN-i|bqMyk{9Sr~h{ z9;I*CkvF4_sPbF??exLM5?qQ}(`TxkzEtNSs4xZD39I&1J^ty<#`0y-8$i_I{zIiV z3-M_$ytJ`v;;63PZ+@-Ce_#blZ`D#nGk#08oiT}-9x?Wxy zUHUg?$QO`AsTT2|d&^?G@eC%+YfF8zyOYFX(O;X+#-$n6b1rcS<2-O1yg`r=9cy*x)9IK~)0(yEB0geRee4^?>QE-(F zr-tsiJO-+|e%RU|4(Hz)pALOBD`%L-lCI+sv z@|AI+?pN81sz(QSPAjf3?JaxMbMuhlzVKs~(Q`JJo~;)({lG^_EPhgrfD)gj4X@lF zGD=Me#oV7#=zmL{-17b^X0CAJsQQEOnY3*4590A9oSreV>zf*%X8FxpU-l}p$VVrS zD4%UG3;Lm_p;V|8u5_l+3}oo*%lB?hGA!45(I*&WAQRM#V7+|)py1ZYfnL5{m?-c0 z785ipBpC63d^H134BKVs=byG;(leX=j zaP{PUW0-r2)keTASQjc&t^<2|LF!caXVf&&#EYhJ2mkH?`J^$tUcSXf)6LWDT^HO* z6D59Jb40il%A3)xP6ebO@9UnVNrsi2{!1&*5&V-qtqt=PuTjD)y<&Ktc3Pif1=|`x z1KADXU3}lE+SB*@=K#*g?qql z5X|yJz9OYGXL3fFyprjQjk!EPiR;*x9i{hBnT=T_`^M!ODW>-Ez!!asLzWTSb=Ao` zLud2*Hxoe}i#o<;q#f@YFA4X(LuUODx`T?-St6KU%V)Y3{HXm#6V4 zK3~dmDxLW90mCi)e@&#w;{VVhlr8$hsD`frclqy8P)1_L9h-Gc0ZcSm!DihlfX8P! zS{UDQl*kEt+=BRUD!xyZYe<|f0N~Ep_{Q(c&M&+%{?GgYCte=1X= zbo#$^`2Ievak>ev)G8P{SsG~kPn3c8ihe$mMIocV`?Zhm#tjGr-%K3?tp=5fByG1c zkF*%vukQBuXhJ~ufA#G2I1;}4C-j&8A+p?z4_~d)%t+ezHITMIegnOo>?>*V;dG^2 zjcpUQax8f=Wl%caJzB~<^2ycg>dAkE>R%>eD@_(0G-Kwv6N}&0LKW5+rSgD$WMolj z{1p0i&-zq_xuB`7DG{1bOP*sj=?AUv*2ep)YRu>B9D2|#o)lnGbm5k~;d*mkt~e#~fEih?*NO=N`FZ9CQ$?LWT5YAW50sxKI6f_!5K-UB@J;j|&wVx@oD-`&Tb~G8uFRW=MR>& zhK|;wadbmDFL=`Kf>b5OQ5rzHT`4qCAF(fu4emOQluiOe^UA1 z^LqD%rpXj{BR9>%GWS8<;Il~I+8)%z{hWE`w2&VHSJ9S{m2QtYiN;TViT!cAKXr%Q z{P#QFy^IlZGg;WA`3Yg-v+(W8?D5#NL3q#4z!qJdd|Wd1$uH%7q_{4*ECyjTzpmff zscG8k@ic`#6SJv1-9WQuQ5hD1E_%|fFOxLVc(1!pvaU5R7#B?}4Ez><3I^5S6Iz0| zvw4qhadTAs@*3OtN5I68q{+qc43>l98E z`=_VAkQL2~Xai@fgy42-o%9nT&cX+QtCGT-zhwV{D|^!p3JViWL~!qbw-%ju{7|BLLKZp-VflXuOzyqU4k?EGcp zpq^gKS&kmJe23)aypFWoO3zBrDy7E+=_uerIn0VPH`^poqb-NFERM~;GeiD?4( ztfR{pdbgooCnd-hN?hQ++6RwsCN?Z%0kjW_9Zg=zKiN+2?RF|T8b_{oV=%P!zMLi}J**Q$!R2p!)rUg96k$96g77C0YZa%zA z`kMLWb9jRB_ceyzevS4lZd~s{FB2k*@NKJW*P^hhYe*5C`EiVDD+@@dwK6~L$`$Fj zD9@b$)JXP22_>mrwZ6r$C4XMOvV@SMwB@>1U(6E zR+=Up2|<&>Ct8xxkp(&WmIb3Lqt^k z9A?>FZI1`niItoK|8HeQ>WA#bYb#3(rLDycHw*q&WZeofSS&c|FASIR4F}UB&vq%0 zydvCvP`1$J0B_HT0s4J_dzeoY5z&G8Aie676h|!ZR-87JQ{NgKs4+X9elJS2Yk`t28+C74J9dqtyQ|u*pSPdib6+;< z=o-4gX$t40TaOm0pY)sBssGl>vXhs*2J5PtXIgsp=VUk&i7f;;Gy9!T^xSVa6vG~8 z5K(RqS?SnnKa#w$7Pv6nsCBDwW*IqBb3AqJ~ntUr7?1Q`SYXg&9T$`i~Oc!`- zOa>j501~^&p=t?pT#2hGiO1o%werQp36`~S7*m4xj`;CvY5QZHDuqCis~uXkS}?y^ z?`v7*>a!2-CzRlJaa`Buh451|!)s*DnLaPy*XJWeuFp1Y9lseQ#qKGc56ZYl48Vz1 z1)D!ELZMwe#pxzpWJNB;9$QUG_4xdG0>?AKIXmxTB^(iTKWK3awPG_s{W?=qS&Yo- ztn0NF<^aF~^uGD>^eNTu2?bUEz`N>!~DM_smg6w>_D$|Z{P&x;y;_!BmI1)4B{8Ve?{uN0LaFffT z+?yQDYlD$D{2P_}5j(|ddQ5UZKR1oyb2$sXb{j)ST5oLB4HF?u zLfR9k(|TUZW9q?RC7t#1)d!uG9097D1aK*zHd@nBT7G4%Vy9-yBFKqDMTC^APj-*> z5kS6zKyqrb`lr7{2<>ZcBnqs#a&?;+)_>n}M_kX~rbMdpJ$1BQ_-^X5`i?T7r%VjA zeq$yw^8ToDL?yLaMYC1@m8Xgs!|;DBa2Lmhvm#w&{bTkW6vPDrsZB`2x=9vK~~Pd7Y}8T%78m^4V}ePP8UJDKbZNI z3?j@CEzL8r(l{|v!fepfyy|Y|enIa7@i=Bg*JN7gY(a90N?SsKx%T+S`F&BYsVJVN zEwjo;>)pn_vt&{(qN{V|Pf|9xDA?DlyYP*>B2@NXRCMV|$B4<{pDxBVnw`WB@RaXo z=^lZg7+>x&Bt^O60opSg@MMGOc!TTqaaGFeAICXcn)^Y1d&kDqN@|kkcp&DfNLh2~`*c|Ieg$~;M8l*;O& z77E$MiUi_8s~s{3kE6i`xUM_2qFm;5laF#YL~9U;mV9Q&TRbP`vF7zoofDyhV7Zm<1Ab0QO-XY31It8as^sBpXi7BjTv)`hN@S{K_XMrf3G z?RLRm+`qXI6Yg_60S{dkoStN-GaxD+9L)3r<>2b`{7J!@LH!E`z)l@`gU$?c{s<0~ z-Ls+Qp%oAEDrX+%F>*?p)kII4*w>@#AJe z+FSQm(BgZr3saF)IWx}U0?oL?3FyRK-8Gkh$qdsNYhcTKYr9p!Qlhx*s>KEnigyAi)34*ngt?5<`F-TuRYtGKFCo2{s0mEE0+=1g#iX>JS&wu3b9eed=ao! zAr`(}qhWaNz79MsOmh(w0Z)!(nz4_BEc>;(BUFZqT4X!CBZ4JfKd(@gAAadhq}N*s z;>BtEZo#nC1?8LYstJUCauPLxIvYdw}bZ~#BhRory)_EMUGO1Sg6_P=I_};8y~U@d&QTP zE~0D<^%EtrM3H1B6N215#~C}zBP#2<|FG1-(I9`G+5_zI8~2WnM%CWtDX)f)#_qJ? zDkshsIt}s<@&}XlD~>c$uIQ&k?och1vi*~qYQL+00`7TR)ZZRaRk)3_W>+Tb#Ckr) z=+b-LSS*SvxuUmU5gXgX zOS11>(C)|zJv(WB)Xhs+apAIBIEeWwQ$J_;q1(kPr{?hMem!?(9V7KQS zW=&yR8t$B`)Hkn!CrwQ#lP4*=Nz*%wM|0CP@E@MrywxWCR+!C+>6-c=UO9HPv807z zl_;(h49rykaBo3xEX<482Ht&D&r^)~iC6GSSvjr4X)U3(+sd}EJ?7ghwnY_8E!G#P zF-Rqr3_C~3Q$lU;GR_~Ft9Cx+hXbplT=gwh_JOTiXNj= zU+v3edU`=84l6KheXe^&XbsfRusqBwQ(tv-7+Qym!oxxxo~1&`Rc(dBLp8Jp)OVI} zs;I9N)jM~N(GQ=oe@k&Oxsxbv=hU^RQ{k6?#Dm*9T=JPR%8&B)3UA1f&&N+Cj?=E3 zbxkO3lc7Do$t)^)s(K~q|@Q9dOLqiE1+v*nMZF`i~JB>w%o0>c3p9IKX2`to0?@@|5JpsHyf8X zNgM<`qQ@)!G`xF^Z)^J?LEUsSy*sd?^ng9zvu!g#tpd~zP1Vmvmf88tBRRkoN*^7+ zKhVf~&G4}5bOpEK_iO3iC8d6KTJDY{*Iv5I zKTp(@H{k#Dm!XN)CCJFFN&0_W zD3MAbDpJnHY3klSQ3LxBSN-?u2saB9!aJl<+>VU(<7f5Oi=q z^l=PXh26uvRMaKw=uYIkDz8V8Y=y-&kmTi@Jx}Nfe~Mc8N-+-|8BW|&OTo1qeMprt zGiS#b)WH@oxT015L%zB8A&6t7I<@>zr%4pdN41c+99y;Qb15jV;OCuhGbI$?cTJ8K zE{g+kv`ISPbCZ~0^3-y$aW{6bvfJhE)qcmw{mDHe7z5SxXPO`&)Z3xLOXOf>gXO-T zK&Rmh^ZZm-nxK3Tx^0UkAKbSMk4C@UhrK%DOJwjHpO4srviYSP=kJ7|vd5)2SUCNn z75Co%E~HsaNsqdjJ-o^W;w9BTH3?!1OimKOJ9zz6U7monYm7=uH~}5bgBKq)B`GCU zx5_WIN?UP?OEcQi)m`vge|cta{H|X#I$}D)t2b=3O@66rUrBL>i5gFrGOHP&i6>@s zq}fXGY*fii-Gy$@`4ulj>|-2AzblJ^*oqxr7N- zn!Q*X+w;KFYd-`Kj}DOei5SAz%q7=96U!w{6SWS{DsV3MzgcDZy&jfzE`Z}BM)IYb z)AlnW5@BXk8w$Ix70`d5dof~KWCSID*nk_@iy|W!lT;xL8!R_|#|@1opVYHkFxtqW zydACDH=4C37zY?oCq^$MO%ua9a3|;@AlIkTX-+o*(Xp68hDZz2}9+9;RT8`HW1e&X*@XLkm=Y9=!dyLM`aanmdbz3R=U6%r8kTVVg%ed*gBu`C_RYCmc2V5sqD#CIF2% zfZfD3ztd9ArxDOr2Me`J6P!e+P(BkPB$Q9flxBlh?LIgihz|I`HupTW`a$XwnX?Ep z=ka;Z$cua9R}Z@fRW5kWfTo!R9YeY6n{m8t3KPD-)-N|yEZCQO);`w(V7N|Z7Xf2H zRXQa9zAIQw3aD!v;lu9uN*H$mk?VWZpV$~jG1@*g!Q3h{Rh6tfelN*p3^c3Em7g8) zlq&?l3@_LvNjbwf99Jb8aX*ASCx&C&5kJ%sGi4OYcuxJ*2x#9oC*nsVZ0qsEiQyuw z_eXSYi8lk*aXXpGQH&@*C%Au|yewpSn?BxWmUVrQ$sEhX6~=Z1+wuMIfeohEE9J}v z(5quasIMPY598EQKx2+qLHGTVF{w=`AB33FQ`Oyd zGc`(84E&%RG*JtZ>(W@H{$=+Ar0(Onjt@u?=%cwkiiqD4Pftj7N!&5~Fk_#CmX`Zh z+AR>WOhijbNwWAka5~-&OFWZ4NTdj(oQn@pD#n^6c>V2NueKO*6=D&OU?Up$M@s1QL-OC}+B23f|(wy(qm_JD@Z?H8-X?I+QXJ~#^KQgc!XjU>aPm;1{d<9D4>QgH4#P9e%(n@5OA zu%Muri$*0+K7+YBE8LfLGK_E#E&75rEA*U>a>jws*xVk&Sa=m(s5>Fp{m`mFJHY*r zSAPzRX_8&86nWOAvQvM3XOL3CQoPAVxZSaYjMGw({B?T2>7~=)?a!qbJ8VYuwUw9k zrlrO=*eW<2a)6h4hxa7hF>+XiK3IhTz*Y!sS~an#E^h$Q)UCmk;VZW*itAbd9B2}M zgWk@^c-K3WXI4u3xz&FNla)(d{o{I%80)>?nJ&A`#8-(r&}w*T9ZeOqjuyS?!5T(D z*zC?p(S))&?+-`!IUhV@^?i@4tHDi}J2ubiRZHL7wV$vnxuvBB^2}QjUS_XiugA!W@F&QKw5KXTY}%OTc&7$(nRx3{ zYKBLA?AB!x9snQ@wWHA5B-|zvK5QICNr%ITx3n>-i)jjyUf*vjisDCn5?+S)hmBFn z7YC9d+?f3_wx@Vo0;P2)@iZcxNN&jV>xL9Fwqi`Lcg@&h0Z5$U6ktUT+!(lb@rvSa z=q=mNRrN69d|PXpW*c^VhGUk}43XZsdAKF7AbV$JJz`fcvotVntLo7HQ#sqw(1A_n zp$-5&+@>?}-RVOcT}GQ>l12ayvSZBG==1Yb$xN%+!EJ3UaRwS;gKQqM?0ClhP=;qO z0GgK{Cds9;@WXEVJG^qRO3gGyrP1W^sZ$4q@E>V16q~M|7Dd%1kF>m+<^~Kv1UB8ZeYd8!28);&12yCkr{xLbzck>eMB zK~5HY_$uUMDDIkp6A;l?v{bX2n$OPICg3c*@(68WPhi%RNxRmy?cNzS$Ts)%Wm_%m zw8^cIp~wq8ui6r#AL$TBwo-cywgasK@42fLYFcMKLuV;z|~Uo2%0I4jX}#XC?bK_u~bCEIYm#^M&BMiJ!` zp(zi*wb^zr%vgJ1CY<6T^4tOjSc!PaGOvpO)7Rf?*INN+Fe*4Qe=oXTSl z(o(ypz_{RIUlI*!>J0%|7TLoDy81vRXH@?~>7-b+kBC}!h6-h{nq7$fw}tD2H8e7Y zDZB4fcEpV|w$WWjOE)v79a@e}ug72HI9JM$hmJnva=f0jy zTSJ&V$4#q?pZwLphSXY!?6KMYEq&!w{eG55|J1@+gweK9$&=H7*QZ72A_77(TrsUe zl2;-^Z#bm#5hHqL?p2IgTOI=oB z$j#AaQ}ahIj`6!-Z*q4mirI;Jc2Gd7bj`V5lC;-@1eP%YSFRFeKr)W{Mq^u+-Jn4v z&@N@Byp?K_o+`0#dqO^bZ=yV*CbqIFnRoShl5`X=EjM3*F(?X2yvQCp@XUK_b<>Sn z;PP3FU2SIXriH#WH+x>Ebo^e0VkS<>@0spi(^K{?NZ$v=%)+p8>U07N2k4E@ZO6IP zkb(J@F`HDO0}%R(A}*DLX#keqOM0qyby36#O%;EHn^g(!~ zH4lH>ZD_fyX|{4NIPzUlIMo+iiU^QbEvRh&HYT>tg4V zUkg3jnj98E*!9hPJ!~5yL1aY?3rU_ru}r1#Z{dk$CUI;gDhzHFwHx*xHQ}Nd-8osp zNVaW9ZTkR})a8rUg8DG5glEYUBRaieL76>RcNHIdk|?==TrWVfm;FN)1Da_2M5%{K zI?1tB(a#**ToBgf_*?~ifc09H6${4>dYB!`CB1nmH(A5@QheY`SRlu<$%L|FCl}|2 zOG{Eanf?6arM>KBIGsb85_tDV>JtVZW0~)eN{1lSdj~hch%v@`_KP6d@nPm*%N*Ig z{+VL$I{4a3wT|brgJEjSayHQJ<%~4R>n7v8RbH6Zi@MxTotsW2CG0IltMlsv414&y8*6swVw83C-WdK&?#IRQFZ5s`C1 zrkDR_D6x>vw&A85Qs&&Hu>6K!6TsjH;jCX{CoS2vH|c>Q!)32Ga}J~+zrjzn zu;6c&@0LeiD*_4YhyK3&rZcum@I%%q|6%ci-9hfBxb<|-3k96dW0-?ccieH9xTBw{ zwV8VX#Q_JIp3d;wr1*Ye;i5SP2cukvZF19K6>OV)9lb%GMWK?$Wydqbn=Z>%J#Kq7 z#AR-(C@&OMrJv;)>2kQ_9~kxv>fYU_zb;%^$np!sUE0;o`F@aeaHr(p&KlghM2de! z0;Cmp4dG1oKe&@mL7_q??=)5YU{|pjxyTUZ6?=w(UZbh3Hc5&#I_M`HIx|bds6~A0 zzx#=h;!6)SQ|j-x{jNMS{24_wF!pS=b>B1ewsh9Ec5H<`E#L~zF;;O|G{Y7quS200Z!XrOOvJdgXQd)g`LgZxCToX}s_ zFw76e-V<_WsX%Gvyv(Vtu87X>dID>dN&7Q^J?L^)@qQ2Y;U5$ULt@ z(G3OqR~V}>t=z|habIX=>7Ra8#b$sB&UKk>@Y1E-L)HQnf*ixUHU?&fu|vBu(AO@P zKqCDWs`v=Ozfk;!lm}h+B^(?tm2dTyU8cq9ln~Ox)czgvE4h29!E|hA^?{l-n`Jyx zfp#t%l(p$7x?7)UQX!0*`JQrlpovilV+atpF_#+L3F3ryR)MS-u zEB5O~78mlURyBAs(AY0-8`ADmzOHC$m-ego7|4|09jA|ck`nn{^ap^tL5Qv?otIcK z=b$yFQTFL@(;IjqXl?ESjS#tRxY+ut{~`xWfJ3{kaUkSiFK$?%+xdfUVXugSrl8lu zrpCS!Sg1kxFKS?UG|MZVMqWoB7t0VAR z_fLbj(x0ZQiz<3N|5p+ucKB%D$;Lq6&?5qXo@GIq7Fa{T(SHpV`a0#3{I5BX?$nmi z)0%9AISehcB)bot!}(=v{xGF>K8z6gE3SyuGnzJ|7loo8?41AmMYN7JU#&Y^ zXj>7St8zt0PYh2sb#JHLGZ(+A8*d+){GxAuu>@DJN4`TJWO=G(dDe~=@*w#twA+H7 zaJ?S-ci>MxzMB~?h|k; zZD+Tzp)b>XRst2rVdPhlW=*7z6j>3G+g-k2vHWSc$Jxwn{9sKFMk6t~Gix<`hHUS- zo0z#zDlA@OM>toOQU@+UAFZ$*@e!`sB6u!Z5~7_6(J*ovJ9^`~=drCn-?n{LYP)Cl z{7D6R6-=48^pxP5psk3U3G(}Iej+`)zWsd(zHuelM6n z^+d4r!7hs9^1`vA0H)EKHP48H~NWLix2~VneQvxLgn2$=f-|EUu}-5oBKv zi|BUXGQ)C*6ZQ_q3xEp)hK909UF8jN7%+CJw(=WO`&>qwMy3J}{102mvh2Z^eI#E{ zLjOnsipp`$F4TtP^I}wQE}jWv`7ycHm$WFOu0xITcC|MX^YZy2Kg-wEbQWlur5QJL zB#Zhr{#oEAD>WtOI_I|Xu;dOur1uCBZpEoIV8+VwQ?hHBhr!p4Q)%w?*bSpR$Z!>$ zE2RzQdXLJ2J*qWY)@wcTW07%3ZNAh9p>s*ZV%LUXZYW|mNeIjwO>`=oAb14qdB0-9 zcW}~9+w$rhc^^%($uNH574v|9$k)dfr8Ec4U&}VypL}dY(Dh9Tq}jhtVsj^Qkf8OW z8mDgSt#5{hKYegfK&jY)%5QF_A`9BB4uDb=TzQJvPAYV;YA>F%j4}q+pbxn{-7Te@ zFe}_7FHKV(Kj@S|%>_s630?xJ#-rH0cY?RR5K-`a>P*~Ng!P0v!LVKXwPw$_L%ONX zT0nzzR~TO0K5$%r!Gx4|kgtkoKhs@k^CH)OuZ$_jHVv=tBCAu}L$*$%kwtM>BfOUz zn0=$Qe_M=)rRn3=-PUMDLL@W-kwh&?eiVOw4Ef?ENU z=7-1;Q>j>$MN(?r3*>U5Ox=^2@*(mA(Kc>}wgOGkD#!PTE|5)f?bgvwGC(vfV)6B= zro41DYnIV6XU41 z&h6!EMGI{?sSTDIgpetU0T#<>u5)`%S{w;fsU{Q>e0$6?ftu~0XSIUxV9mh=75q`E zylN`Zhj*BFFEwc;$%u;_>I3jMnyD-Zx@j^PNBN-9#6t^h4YhAVe_m{B|1MlZ1r1G2 zmSvZ0&*hxE`?`8?%JWx$LRPny4|R5SpdgjK`JtG15%V;j4vo;o$;M_a{*=^V0%i=+ zLR(*HSREt(9A~oSldCS|JAGiNIU~7TtZwn=+%h&6JfwkISgoF}Nh7G}q%PDD=0>c% zP#(gwtX@o7=&a(JAsGwck*^ydO)C)YjwC!7xs!v4ol#j-xK_wqH)SqtA%p>W9siXS zw~$6#5*5>u;>H!jX-RQdV5GE$C~P0srkIH9!*Cr_*6_5WL>!e0gIGc~v5Paj4bpas z8H-}nqT_P8nm;PB>Ac!nkfTB45Voe-*3Sb^?xKv8?6)mcGVQ@pUH!F+$Z<2GbUB_i z&2Y8LNoE}8qg=R9Q3E2_8{$Zj$Ri^yg`=MR@0`gT01eEBh`A~#h0h}H6KE@xWHFTr z?vWO`hKi7Gs_R6P_++GN3l0tqjCm`5NUeo4We6>YjoqI6%B?PBJSvGv0`DZ-y8|NY zMb=4kSu$GreBWjh!#e8sEbyeP5X_9_Q3ssy5aH~?&LMm*$^>}s)9Zb+Y#)=^&E9wI zKFS@tSp~d>Y0xTNVNT2ODFtmtl90RUwnWCV?M?otns2ThjXd$QkHlOm?B0#ay?seN z$o%7roORWPct5+C<7>cb#KuSBK;Y@SG7gqw0)hj+mP8vkn zX!-7H$aV-M$vnqBIm*n|kb(>D2uXOI$qAEywc0Y79+ked7Lw2^vSSSEugmJxu_BQ2 z*Ac}k>xi1&%-T0!Kw@`wO^Wl@K zd#W)kp-8epD%*zewb(I9WRh=K4n*ZUDFB->A>ZXn@c z_8c0qpLXNZN^N{PICzfVk))yUSmBC~L7gtfjqP5Z2q*NR!M6e*djl8p`5XSXewUdH z%HwUA-I!~|!qV9y5Z=l?d9n$yBwO z7_3wM8|m|$?g_yJWEbSzmtswRk&$vC7-y!F4XYtD!PxzoB%P(^E1-l5%ZIgFD=krN zDAwboALNsBexX`JQZ*JuLUD+?-2)=m6=Pm)!K?P_;Ru6D&t9w6zW zC*gVfQ$M)#D^Yocw44e~6aykJ$Z6^)q2Y7)HBBjXTlnX7`$n$ymyS|jFiA(g>GZGO z1Y>G2F><@3PbQxrLQIP9IHFZb57ym@&Ci22AxyHNEBmpwuhBq}My~+9&dPWMU-Nqg zAq`3uh?_@m>rU2k-k9?*P8*~rYZ8&;e477N2NL?EB?J7WmiL%z!ktuS^l?n+Z7^jl zeIi$S;>d*Q>1<>`0b_<^Dc<}>#K`z4H%7*~{JoY&%qmeyVN^`QC0<-oo73t(=xI%L zrJ7qv#)M4IaBIbSPgm?#q+C($)PDPZQuMc6c}nazxv{TwosJGV3jM+zn-UA2c0XKM z_Cxj7R~lG{f>~ASc&yGe!UCg`gE-#`&3#_yD`GQJ522baSMPBq#u<_Emm9hp>L$YV z0{MaGe-PpRYkk>>wy5Z0jOyo^7r-^C&#q+wQY6wz43WNuUIzSNJ5$>{Q0Zp`Bp7~GH6`?JpL?v?+R*u&1OhvNS5lfyzwSvw*0oomWk{sJb+ z_~PT62ra}Td#xp#Z(?)kGjo`H=SaJ6i~{$C^pNHUs4H!vNfh8>Iyc0d_gjtY(e8W{ zJ$6Tguwjh(!n2kYmI*)~TU*!oeBgVcdd=&zR{ZgYw~hd+WN)LoRCdJh3ryH1m@Jqf znH72mrJd-t$?Diq2Jdbjpt1@=61*rOhnwugO~(rZA4VMd_W`TSe-{Vg##8od$vOO5*99M>CaI-!1#rF=K$R^5 zpU_}qYDW*YhBJ2zV%#B#q`fq7C`IrCK$o>DY12Mn&1ieMw$G+yTI%fa^ z=Jd&sVmLjokLqG9QKc`iKZn4t;kgwJ{}W|seIG!pg7h*}GX9|)j?3zLHOc-F{qnZU^z5e(pTLtn43^Y7NDd8u3f zKG2#~{ZQP~K)mk25^BdFcv54^X4eu6m~4MrOJMldkf#^yrR{p8`A&0@vF5b;nmsRqm?M>%CskPP@M8$QioM$V;qG@>CE_H)wUS**Uax z{`kO<(=WTu1E+zZ==!FIpEnySHu;rau)h1<=z}! zl9C1`t!~>;T?dE$x+LlGR#6;~gZ$qd?bCUV99E{ZiYN$;~RgS`7fwK7u)xy znbsl3ZCH&J{jv7vJ#i|k>sMJI=%rH>;iZVlzU=-uu5Gy{ zMjPCdv2i>KY^J@ZWB46|$XtE2YE%;AU?J=ElvatHH=n(*V$HPpSfnvB%)?X0!-dDKiUI`GH$YqTZb!XQ^#xGi>(avJavuL$f zj9$nz-F_tB_o4IN-dIPo@3^oHJJaY%*L_TJhXonBv=)g!l@4o|{!%P=m&eUvEP2zR z;MPz*+~@Y{nAnpV2Zx?q=(MMeqz%@@Dfbvjcl?MK^7ocx7(4ewCO@?C$J)2{{*Lh49oSVHK}Y=RgEh8_JJ;sN?qi2JP+8;S z-tq!NI0XZyNX|OEqSt65Ijt6Qv)4lp;ECa7D*np;j76}GvaH&a?ShO2OFss|JO!wSzRWoqqL)e<%d6k* z>u3;c7sOZ~U$8HiuKAiIDe?*ohxj4p4U^xF&}e!1!S;k&$`KnIDV5(<2Gfk@{erGp zaX_Y7YYL89Bc?lKz%1cuX6{B>%leXg%j^iOUh@dY8q0g7{-gvMnOU*UeGc;y6kdAi zNs__+PlP0hq&Ggi=`{sqZ;y`KQa{{hu6RR<$zg8C*Hd-7&Un)pb{#6T%3Q6zvb_Y8)gJm z6J^V!0D2w$>^pW)hBb<`oav6_jN5W=o4aKGOcet} z)RQOApwwQ<;W0S-=!T}r$f?UmXnh&ZztzPJtX=RiyBCWk$r|Z0rBU7XAk1jibbkT-e_4#!!mfGM2?(u3 zbN5{SKOFG?yIrd65%P@_jM`+9IJY>m|4*gzkDH`f0vrj^zTA?&`7Z@-M=~8!?&N;y z_pi0^kE(GB>3$SnwbNSDvLWsL)8YTmXa^UVAQ(9h7V0g@v9&hpxxVDD!<|)Nvb$Whe{30b)Am2Ge_vS)K z|1=?$tv?<0ppH3buW3rL(jN|j-V7BtpWf@oHN}fZh0TwvWb!bLGbV0l)bq&EAMV}D zmnAdX-N`!(GplE)FiNdKCa43ZzSyso01R=Gv12qodNL<*nysGo47WKo?PFEDrNCgm z54l#_0Qr=2 zFrL*9E$y?bxlb@pz1HK^`xdf`Oy%=*O+b;|N!u*TZK`xs(^_A`FaIPoEzxKu8Nb7c z?U&gWyZc*}U4!mbU~4tkEHh#9+o-Gyr7`P;^)IAM#?frIgZ8&(ztX6BsPx&=m~H#t ztaeV!Mxq#-jlto6giub?{IvUn068Mg8)Oe7m}>|=wg7>ZTN|Y=$T#yh1QmSqvSCRt z_3)|Gh!KC4=}YfqAXLy?jQRldqzZ+xIL13@*=$(Rnr=ZA>wq_7N?ybBiAa%-JvzHu!TtI z)|1{#VUS<{X|mw{Ojn7^>OZ;prjV=?~Ht8M!b>Y3+^;QqpEMi4@e zS?fm)?m1%&&B+R`!(TwkOR|v>o@?Y8S(h$)h=Y;7CURC#bXo8ScmMZ)KkRQuZ+8%O z?hHWhymX)w{`xyCQ4@5}jc#h^paI4v)x4Rk^a0teP-Xf9(^icK)fACqR zQS}EW06+e{(bxZ$$N!$=f3C%x!!OSTP_J<>eSwm3lY7kSslVUZ{4C0N%vQq;`(c++ z3w!Mq@@7A)cYZ>h*kb=No6@BE?=2;NCvE@dR!XG5iErq#Qng^ICFV4}zO+^rS-jJ# zLatll{a(tX-Ef$4=f5rEl>e=alhf3;x?y5qf$g4-y(=37F~U}xZ&7mjSF$kcF}zzb zzjDt!@Ly`{`@PRoLoO|AU22hI`u@W}IjMO?i7A0B%TxyUSbqa!xtZI7tRLTP`Fpke zsN4T-%_ql8kv^_=bMFA>PYrJKm@?XBW@K~BTVi#7E%h5}j$N$)f z)MlzR@Nw-`ek)7HUKN%(6D1&}>ePz&J<1{t=A#R0o}_Civ%PpuWwY1uSh3@LNK1t@ zCB~CPrWCU(Ene30g}b(JxDM7=yYtz`5n{x?6>=kHI|yJOltgPO)GSf!)Nqj+RQylB z(En-Ab^jcyIHse);m9{$VI56DKh6X?Jjqg`GL|OZqoZF#rN%POo%YMRxVhD<>F@3| zeHBRg#us!ExUkX{^csKt``Ygcz==%i$euI$ap_dPHGHo!L`+0eI^%Sc1bKQ;G(n|z zSYz`xS9z9uT+LGCMwvJDoyR3$a7b@->Lg@zF!nrfAyV_L_>X;pdo=xh8UpYisi&G{ z_ct_20UeRNA5QEt9;zt6&4(e>mQ-up+#ln@CM9HDK}SOWb_zYC1yt zO{t>p?dzRI)HWg6AKPJfvd)TfxBv4(7lH9f=O+8`*FltTqY0Z&7(W|KxP@FPXd1H) zOX6N8QWGo%oOrGIz+y=v=mPMl13P_gMHohz2vV;k#HJFLaP~NjKF@Cv<9_rYD_7^S zBt8vzQXSBgkP1m}CtFP|wPU?%&t~GB5I~}*%;JTh0BZ0i&)7sG#e7NYX;7kOzCVVi z67c}RpoXw_C()wX>`gS+;fvwE!jMEe@$em@te$auYSSKNUbK(0Oo-#K=v3}!nm(M< zR99BF?ao3tI6M-nJEjtTd$5fX$mTeB+;smdW-L#X^3D)!;!Bvjaxzm*e4wevb3>@9 zP$Xl;dBZ0VnAO8S`aB}BVy|)(+M2_drrH6QV%XwiG@GwGpwM>QM>>32K z#%l2ydOWI?E@@D%{EaCPL((F};MR~Z({2!;s?s=dlEg(+) zd42H6dKK5iU1AXn<^cd2h8QQ5NS!?GRUY`1!{1tKxV;;IPiGqGI{S`b#Y!(QoXEbS zHHf9@O~pO@+NG-8-TVpbfL#?fH_IOc^*KF3NGmep^?`)h)F9*OiA`ogf z%{^4A+g+pT%9^9l-t(LOey+MJZ_;xG!fctYJ_4MYi)TghYhM+LM7UGWNoc=ffaONe zS zrze(CYi`%*$8z{J!rB)Feeo?GY9_f9G1ta03&ep4Iuv8{s^vSCcC5*J7;-$-_ zjm^MtJ_GD}Kx$2Cy3i=qP=(d(m!pJTA4W-bPqdWo!`!Fx2$74(hU{~ z7m&v--4rYYThtkC*d3DTM*r#WdJ}fIBh>p$Vdj|V6RSI$mrbuY`iI?#o9h*u6C#$l ze8_C^p@Fim3)jffM%gmiM?piuy_$46y!AvE1jxyQbEwJle~D6^0qh!H)DPuAd>zmQZRbPpy}w>wUo zt*;DGI|bc5!Ejf7R}${^#XiDSdEw5-I~qI>INnQs@aJj!k+=ey#>&$c~??VHpV~OBwsHlp@g`nN=8lhU+|cu!wxw6zX=% zq9Z`2Sr6AIeo6;kBB>8eL`fd47!O?Vd8)3|Uv#@KU(AXvl=W zRqNQho{>{_A(Ka*SCXnjhbjpp_mV0}jSmO=J69^>eXuXnZ_($rK&K6M+*;e*idI9W z*Ry*{3U_@8zbu9#073QlBMyy=i{@)7O-nc=qx8ioa$I%ar+u;v80o3mEZ5JT_i2a_ zd%EVdD*k0fYZzcrWA zYaS(Ach?BFdI!ni>Th;+#)}Y+hW^D{e3tr({DqU#nSEJSWd1&5tIu#$3scQ{B2(;5 z0$6s=>?T=zF%CZS`8E8}S+VdNakN)t{QZb9GnHq5fA#wpVD|sCO6&OSITyH_>LK8z z$N6Q65z6{=nHm1#bI_v5lr)9U5xw}iw{*g{fYCI;WJt%>AIn;qIyLQzgrS(^r4Y>& z`FEIUXzKINDqLqERIFdTyL^PuXVuUFp!T0h5cM^G0|0%?1y5h`xrb$Z&M>faE7e_s zov4F0w`VtrF;acQdz&H*w4iBl`uMx~!i`(LVuQ&?7O&zyHQ`Y`mx~${;x3D*c{w#x znzgSL19%C{jen|76)4o1eWu*1y}5`62zbP>)?RK^hiVhmdi=N-CW(@_lf%#CP5p zSJcK0PTv>&P%A%TcvN>dK6snWo0=dY1WM)xyEA!gz)J>0P^MY&uDU)d(YBy22p7kR zIusY;(S>-9v2jgix{y6@c!|p4HOplu3h0YtgdIo|aCe5iRmaAC?mf145c;|K4D%Zw zW4S9u_jk%~|H(lQn-*MTk*{ivX-70sY^J6%JeQXIr-Xv%YN4YUwZZ$-$KQa;$#`Cl4up(Mu|+6Lai!XUi5bcbeYfXAWa_Za8D^>aS^*>oJQk zaV-;CpLHq~iE@>WT0|fHj6)Mz-el-o`p!vKszJqa*~w<^Pi>)q!^!Y`K1=x#rJ{{Q zW|kUsj?wl}vNHl;TZbvVb=NxN>DTf|;L@%_P5=8hn}kh!>eEYh<+7$ja%@+%_@|c_ z-LzXwKfflT0I$u2FQ`&<>36g+b4O8{S$$p&jX<)oe&I!9=tz8?mfPUEDaEv6wt<5m zR|vh+vK_pU$Bsi&h-{U!V&tqyRY=#<>!^Sgkt1WFcqoLFKduNtOgKPfnTKX?PIqcX zW(J^Ve$jRELNrZpk3#?s6^F_519?7%c3z8OO)`B&bsO!MMRqwwwW+P1JJVDxDZRI0 zbrDwzWD#<5ZitWtktCPtkJ4+P4a=GowPt;rdO&qRkO9u$88IHIJ;N(H%iG23crYD+ zNbhiIOzve^O@S0>`CZ8y!(Rc)EZabXF)hMr#&LA;q{wJ%(_cp!)2*dZuB(0~7|)bl zbgPKyWUrb=N9Re1$SW564#z)G+#bt61W#~OJI}nii)`(#km^gsyxH`VYo6b|aGp63 z5yNJ5(1vWW4!c;JOj)bk{zHM5f>H&{rq*P#aB{0{?e1g7#bkRdorlx6Yx$>g=q9}K zIP%MCM|Cy;q0$zDVsh7aWZO7NThHmUQL5Rn+B%MBLH@08ogbHihp=#5ISSriZ9R6o zy{Tj@AoYbpN>`9vq}2;$D+MuMFI#Lx*v@(Mo*^>v^)*VB38)0LOl^#72xtl~ow<7p1&mfbETetOK59$dR2HA1JJUskKY{c+@lfTa$nwPruSJ z$whJ+0HWch&F4TsWoacdm*;AnOWbg^?N2>W;L{2`+6tcL}53-s3;niFBwX1U0RE<^W!)r0vM~3Enz0>P*mMRPKSeFPbI~zbnBt1r_V)B1-TAzTj4kN216!co$xa zTEJieg0+$D*8;%u3H{{VziVkh7KdU-DW*)$l*X>iqH8};10Fp+PLN52gphXt;u#)Y z1i$7k48;WFgs31Tl}!|r`xOHxw%2Zph<7^As~W*NoDC5^_*fk){HsZZ$WqsGgT8e~ zX+WJ|gGNTDeaBCPEJ@&MnxLtbutniqIohyM<(j%+xYf1YGfSpKvPIMH_i{H9!V|}g z(l1XIoqY1?n`aIXDs{+Y_H)_8E3^qYK2$)jaH{?A_;D)W>^1+VChG7Cbj+eb*Be0f zmm-0p)k)BW&%~V?Q=87vsAdM<}+~zd}D2Ikz-|-n9Dd>MhDvU-jYMka5>zu5bpl1T zpa#~0{&t79_3cnB>f=~LMSat_m5>Zvd|#w$U;d&IGg7dBL|>9SHRFghe`dGCiQ~zg zS=>nE?TNrS%hn#UdwsF6V}a`nV4~3@s9W4z!zu;~W=s`7E7%mZKm*+#m3zdI zRBR^0)uesFq;F2x>kR;{AbOxW5CRr-iset}G zL2YK@_Ncor*kcfAicItCdspuz2rVSNQ-vX@;K|rjca8R(5}iEwWS3MF!&O6A3~R*H zt;{U!tjwGf#2U#PYI|xV@~<|y!Ea5jjL4tss&=;U>N?9&9ajCXxe zDPhFZ%ld1TDj-u7Ot%VA2cEiYOQY_ z=g%Jwnifr_YF3eq=l!E8t+Y#fBO!=Ibp*O*FpSu`V^Xau9d(^y*8QuMC4&;2mUhZ- zrfKw-+O|b4ia1TiNaQ0m07q)FPAp&fnh>Q=v5t>CIV|^vaa40v*dTaQPBafbeA`el zEq4%+pU4Mt#g%-m=5u|3YhqsOS*?iNmP4#7dsQj-|Yn7F<{4W?&*{=33X{}#(cT34< z(7mgeSHSHfe>Ud=x)VdWl5C+RBgk6hr2*uZEy;og>Z`T<=uR^caM=&0tA|LQdRXLe z(#+aJn#=B_Z-zx-lcblimz347PR3`J`?_iR>Ze3l<=6hXuSIro_tYq^ZqVG>1~lNl z_H>^t95BjSCCGk<#wy3{)3+Rt?*mnj^XxSiZ|UIKtKIF~`~<~^b_E(3Ls(};jRp!6 ztrFurZWgr+U0cCelmalji``!yGu`*kHpD*JxX)v9(J;eWzxl5&R*%w@m5e0P0`z+B zOtp+AR7yR-R&rm4W8{@e|T8z)V)pz4NO;rEy>|`qOB+MuH@?lpSp&TJD zm-wvmZKuOKF7?KxJPlU8v7NK76GPj%@AyW&GDZ}*LT*hDdraC9tN31@m$4-Sa!O+1 zu?Igo_!8gRAbgCQPa)U0eqnVJL#0ht*!oCwM~Dyjl<ih!0&J`j5{rP}n~UT*hvbZ8fsx=}@k1>jJJv`IZ@ z1kR*{>(Ic2h-fa@fWRnHg2y)zucGGlT_>*<#n<8D^1L|)e?pi`OIz6^oxeniD7lFZXuUpJsEb1 z>M-kyoqFiBnC*DUb9Ob-%6t^oY}#>bYI@XN?Wh&zY-_H}4^2KjRewFMCf_QJ&=k!j zM^ks7KnV4htp;W6W`2{l&USRgA@gr{whWa)x2WIQQ9x+nw*I>$E*!XD(-zvFjU@gQ zPEfbm-5&DVnn*_mhUN1UF*ep7;g`1D!$Ob5nW((Cw|5=a!alyl{kd@m{g{_5G9h9; z^IhUL2#0jl*{2uJ@#+&paWCBvL7Bd@`{ZV2-;+`uYSL84KG->R)c@Xx?k}Q z++xcrBGs>CsOzl$F?exMELF52*YHy4tmJ_5<}bkIiQlynLc??8lEQKv8Ou~jZVk6v zDc9U_4Zq~)5f)3bxjR@kLk$*Md*kL|IBW{h>lZ``_Y0-M)~c5p($wraZ2|4x`)OZ(&pK#t&eQS zk9{vQKIlcP>sPn5Xa{run&!z}o#|v=WF6~OfYp6cr7^6sjoS`QhI6O5ZDXI4PW~^P zG*=dK`#YFwV?C@tS$@zK+O`*69ws>jZwBM0%{$~<-7dv- z%74eDS1s)-JSA>RH*~6g`~iy=%mHa$OW)b@6al_loxcp16@;Qja61QCCR~m+e0N)6 z9|0|H&J`Ji-Kk5iznoEj`9bhyfrP8mQ*i#tHtyY7f3kRe7$fP9p~-qj^p^~%owK%Q znFI)D_DUl%qP0Dmb04ozE>V&Mh*O?pJ!631XT9uxQ3Fz*q{wwF{iSh6{(D5ZM5 zXVsI(@xI81;HPmtYpN;pTzGP%Ia#gmAuE4Z@jDIfZ?FoflroTxy0e?tDUpYGs@HRh z+wU)HCDc`ZA{386R=wcCP!Gdk_BDDTOJv{6020^v0{} zBub2JHd|)O{}{GxD(qat_n!mmVe0KAhO<&be-i%_B7H_u>Kx<<@SljZ^Bb;6>8hU9 zN5cA|>1xggj!?!8?r>yPeY5Auw2wuF5x3fUR+$+$3ik=(EoLWio4UIv75_JkxK<(j z+{cf7G4|#nR?6RLe@9Gz)OT*XPJLW|GD|DGz{BAf^_lE1+A<{mvf!v0Y>ecWc->yPr?7ORIHe4JiC)C#qHiHF24P{RqNU0-0Az&SH(WZKeONL-c-D+ zsJHY*#&zfwXgky z)qu{d=+PpgSzHO>xSlaVJzQKwfzLao{XVg!_enQbv#wgkze{lR%KlU0AnUD?`xUXk zn?2?(sauSberqLu1{=QvWk)_&Ic$CJNc$}HP(AU0NnE3`)(7s`^b@v42aWrF!jVfO zm&&ND4;aq2+ ztkbWV*K)5T@AZ#6h2;9xi!WaKAD+RDrnT|i9Ik{a=uL=-_+)eK=pb zOgtBx=f)^=ReVtniqd}?My-0TRcH`zuCk47wTu3y7TeY6Y{sBOnELYJ8sxceWlfnM zxl^H1vR#AvpmR561S8!NR^((>ps{1)GNr(%S#VO#R1UzZHGS)fqj2_e200>D3H&^# zX1GEZ=^V8h8gnY`jJcp;huxD9Q1{ItCa0Zdyf5tgRn-bRkEcnu1NUG3_FvN0akRx_ zT1W4q&7i%^rlu2(jedKep)RvJfw)A&^;3ZIF)g&@2C?dnPRBbC9{Iz zUy6r4aS^2N!ZpLNTCL-r%I3)&~=Qm!(E4m)C#Ba#yxln#|WjD671Qe=p@s-3Ki zdglN+lYznhMo6%xm-WW{EJfoqsBIKfV;`C>?Rg{TzA+oI&T%Cy`RTzJTyGwK&G`79 z{`A44`M`L}GVy;=an!4063?%KFdkv|^O6`h?&i0yj6|5AEQU9_y%GZAt5!NYCgviyKCEzJySAE?Pg#V| zA4jjg!AWF=eLghr0>9KD)2G|E!f&NpLniKN%J41jl>nU!+^()Y$UC2@dLrZ8tbj#z z9-oEjcu0GxH8%$7Xpd^2+Ox^q^M%V{YmeuMnh>F(bg4B|-U z@t;fpJz!?LZ4YR0dN?s(R%v}hiOT7>mwq9Wc4_okU9dvzvNK?zX9@Pfcg)`X2erQ(9{Kaj6?TrsI_H(1Y$Qn5ikhhsZx)k zjjOy)L|tGxRxKX~ZT|^+<8yAu4>bTouSdl(j&2;$Qu#Wr8v4wxF#_ZQdZ<8;m2E`G zzCW>jF!UK{hTlH+F!%LcgjNgE!ULAN*Ud&*AC?Q9N?Aq$hqZY6_KpGm2-+0IJ>&dE zxHxk*R;5qQs^11W0&*^eeG*2L!bFE_tX9R_X}fA;1v`+`TgJYn%A#9Q)3+2p>2Eyy zmcUu&**k3G^+is|E6t%YBh>hI^KYaEc#xya(;Gc@P0C{x_-ZBmw_K0k@=ZK%^K~mr zGeKh?E$h)Yc4UHM4`R4B&y!x*o!O7pn+OZK*X{Z9*SF=(?JHM3f6dXT-ZY7+d~e_$ORk&~V&Ab`2Y9mBlE!3~H>)u)l_NE6}*k!#L{L#8FemNuH3Dh2Od%>sXOdGh*^oM?2q z5Gvw=Z{m>6br}WP)CD5fp(4iCK1%o{OUM3NU_iFvZtOL3(X=a0c&#?kw?xW_X&$-g zt&ck_oj}Ag=2a^qRS!GgJI%`1bJ$EPJnaGB{e%)7VKkXsn@_$sxYl!F3T6wPYL`UV zTKC(J^hpYZZ}b8P*kVaaC%yIv`56UT& zhD@d+M%eHveh7Z3g^UXH15JtGTmj7q^xgB|TQmzn_=748@c5I41x?g^X^gK$CF87M zA#$a%VfzF1zJX1H(pg5GuIADwQ$hR4A?lw= zUkfN5&Vp%Hhms~DT@k8r`breOzLH<%d@`mo^r!kyj~86w@70VBGR#UXl9T*%t~fL5 zl}-ADl(A9|gi2B7VeVEn9$x}bo7-FovSw4GrLa3ga;_dW@*Nkf$UC;(>wJhr&Z8ti!~&7Tt7kg^`97?*BZA)6=UWa8gf2S*xgv?V$HYY zoUY{JDVd_++6Mc_RT~c)yz`=hNvot5f0YmQ*7*_&GXWp1N=#Oa&Oc?O5?(svO`}U~ zzc#7aQ0XF;hV~n;nfTpAOm(DP>}Q#;{(~S~{yyfB(DN%%qWKKm?io>9oa}jKGPA`v zL=AZu2_a8MUu6{7YN5P>kDkM*F~L|KwCCa2YF`T5msSJwY?QGqk*F?0&M9XmCuNtD zEyTO4?uHrTX8L?jsiJeLr)|v>ODv7WHUcYIV$^e^&XPSHp^hBwD#qQKd5=*`OIgaY z#QZoxXR4w40jPHA-PYxR(o|=7Cy9eE%(v&Ae6>o>n^Mmr*KJUYHN`D09fN-_JE}6S zz>gMyCe582r)oua?x{GUF%@e;Cjpc;Om?s^Xg<)6q>U^iG-42I{S7Q$>(i;VP6LMn z2n`db%e)G#MKQRg2x)&}zVdPB{*PaOHVF$>wn%vb9yol-#`mvb>3}Ck1CH@%7}?fT zx*!q49#R~~RZcCL_m+`0r^a?>gL)F4Tbj46!Dc^(i!!O>AdBsWV@h{}^m1mY)q8C$ zaqgJZTs1b&+z$PO;#|dbGB#KPFt{Eg;UFG@E*WB-#dk6eY{L9R@f??TZ5K%n7{_ng0*wFlt z;idL=ZE<(~OBF7ifcFh0fK`uOLCDIWZ>;aUta`Yvw{z?@aEsoweM}lrvs$u430FI@ z9fAbNhO`jq+Zn-wX7A33i1UyO14P+t&Iwssk=_`)ifVH{FPZKZ%~aV^W=)b9&Dmp7 zB}n;UL3UyLg|cP(?C0JIdt@q;hc;80=ds7*_k;L=RQ447sf-p`fdt*Nj=rZda_JUe ze|DPhDSZYMd%eC5-uPEVw*_PFow0}pw3&zkThKS+NTQR@M%W7Fl-hi(%jlsphBWkn zpcCo!WNB1Pej&4FOdMvTJYC#W3RF5}K&mnYojLZ=Ht6ndKrJ9>fNk_3_yNe=sjTiz z%?jUWO(BtWk5y$u?m`^_4-E*S0>O@k3_-Y^2 zUrkx7FLE@@!HiKl1WTi4#*qQ3Z%aNpedM`a(iNHMueRT zj+n+Dk`~ywfl*(Xt6jIsA1%4c72CxZFkkyMm?zA;Z&J;WQ0a$b$$XO)Z<5~b*l`h4 z3#C4S3A@RzYhi9Bq%|i4YyN~x?z76cCs6@C4JuHV{Cr}9Omv4-o(d{X|g^(@qsua78*O{+b>@~R|a_&Q0! zI%mb(Abca58saD8bSR&;&}EaQ(O`4hZ=8YI#Eq9yvBlR~iu($Wf>$8LeRK7K4jUzX zcJf*xjMq%_;dwnG#BQ9j+P>mLX}lK`VnTAaU>67HYjI~V4$~i9$^z>%tEI>;t?$RC z8E8XPgN>Ef19+cHTp4}}9^hrpI}HXvy)-wb%xpH+&w)D^v<7=21*6VvMwu@?%k7kG zv*_+*Pksn&a))8NHqD|!>>&`F?0|7TBFHalTCaBH&gv`4S#e<+EJ?!kF{>pm& zO9k>+hoslF#+l}HSJCCoD|A}{*T9j@x=%G!$9W(AWHhPKZn=TdIrVhjWT%KkdhpK3@`eh;b;byZGULM~kUsBEl{C=T%N2hPSm1v{x9RjM-S}0 zCVIM6_}M0H_sM+)iOkEYHwVzRRJEBG0$y+u06bLJBsa10a!}`q8rkz%E#A$4`N*|c z5LQgGhEp|(d!7<#Z+|s(z{>iI)(e|GzUmt{NgmI{hV{$z(`_uU;`lXMu`M&6*_I{g61V>7V!VmYtk`L;!4-D|) zD;xGGlObLGz2$|6ZK(y3TSZAi-Rrwmd<%N+`61XYADDDzt#UnZZ`l18Ep5hVP5W5l zgPnI_hwU&UoA*D{I?d16Z_kioN{+3Bs#d#~202KwkkX@|#}zcau| zw}%62f0-N~brevTc&~slPjDanyayfinmBB)@hlY<8qLt!Q}$%`Afih=-Y!?)TXrus zsxKs6&pC1f1F95u(HIC=_PQSMT1E2HoOtY9gynb_Xs4UA4%L5#X{A9PrNUI(G z#2LXf`aeFvny%9vuY}wJ2?!x8Ae_2Q7leLzzzP@@pzk&Hkt$W1th&{-)K}#m*P>+8 zN=s0jf)qcVOH;wfhg;Z=_atKyNC#je<71eprVy|`mifqquI+#u?%4pjH&@P5T(#Mv zxvXtY!k%^^NSR(o+h{L|n+3x%Jc!gWYlPtR<{oj3pgI^@DN2IJ(zPG21rQy~#^GUX zJb21wPPMzZ_nN--f=}kckTEI{)q zAaPBdbwSKxptH=`ELohwxgkje_1N*Mh1eKl4zWQ%hfX zFzTdAn*xZ~)EXEo5?Zn~;Jsw9z8=XGH7| zxy8;LA%ac?9_EZu*)RAHe)Q+G)MYkUtQ?d5z41fyxl!DB*95`U5k4LR{id0|c&((N z;{BRsZ)vkD2~wYpv5Do*akwJ)+{ittcGC7M?p2Wyqp)6(i2C6r=zeSHVx`KRLMrs0 z(vleU(cfas7W3R?uauI^xFY>r%XPph8La|jdzJwUFpAr~SvHI%bVu3F6I6p!f$cCs zufdvfNhK9Xn)S8gB0J;p+6R$!Ln4g9Dctkv!Vnx7)cFn2P;+a~zfjg1{2Q~DAxPPk zvHOBoK&Do-+eKO9hKSG#pE?X#U7tEDwLSpj)nu z+N|l?%Q8?Wp`e?#{^NNTzS*s*Cp}{MhP&G1MGaGT$t+<{OUli0&lD?;JS}VZ z{8;mXn}=$etHzyH`i83ESab0=ce4t%BdJQa82;A1>#FeB*Uvml354j1-A(ng4jRNq zp7RE-M~IK6{~UgJn6LC>8IO~TIPuZL!@e;~rKwSmg^&4u=JL2Tk3@s!M6}LP@6HPU zr+`vgd)-0)#_JddmhU*TzrC+-#mUo7x1Z%b)#PTxF!p_3*E>;HW$R2lP;qp=%OMn( zR(5kNGL`nkGjj&3)@;2L>;I;%NePo19n{Bh^w(}y*%aKHQP*Bx6L5`eR4CY6rR8`B z@Oqq(?h8KFpry-G)8_gn6>~;wi1|(jE;h`aUb4*#yr&U?`?`olQUeJgQUe4MAdnCOQv-dN5p8Y)Ye*b*mcW@n93s+og zvFd$a_jUeGEorfFS%qkTN9pWpfi8Jb-7zfRODvdxXsX~hkPf*%g=5ub0HM&6Zqbl^EF8&r<+tVs`#MPmp1si{8JrDo z4iMTVHNjPavUh2&5)CO*O^jEY44KsdUJJgFk>1=LqVrBo9bKo9uRPE1LW8JU=5D}E zoZ4sFReGi?I7&nPf?QP!JX+Cf>pN&td98qks)p7%opAA<<_k~ugGyb?9;K1SKi*u4 zP0C9VZ?K)(4DalA5)paXX25uhVsVNN0^H-GaE%3>2buVRnILaAh~3!(|75fCA5{(i zR&nfhkXR{|@88sTOTa$ZEGytXz0f>}H1K8gN%#FbgS$guXk+zlNnLx$z(F8VP{~m zsudcUJ|RAKo^jM@7C#8#+i)rbbODvcTkWL|*oqaF-Bixx*NZk#K9Nc?2>E)@@@s3W zEj8(MF)u``lbfT1#$g(Gf8*1M6se12wzr{o---1TJB1fvov*&!z zRtXoq0uq#5x*0O>NjH~PsQeSfr~F*wD|jGUCiZoWh;{SMzV^JKoC#;! zTOnZT=7{Vp-=>F?GTQUW^2c6nv&q=*QS4RzXN+I8XfZ<>5{?&-;~4x4v%%#P(WysN5)Evl_G?Xg zOv?sOXmy`;@+0txEtSzN9CWwj#RKi3Q$oG=o}P&K_1U%+=hAL|-e}a-hWK(>K*Am9 zwx5~;>WN1xa%psK44eQm9f5cnhmo?pFv4YP<#{SWs`Tv@>Z>cfwPo3h=kcBgf4d>}Nj+b?vS`!0 zX0sB5_F`SZF51|we_X-8+%;>!hTF`%r_h(VKl#7l+q>uf5s6-wEYD{Bc+%I)4>P`A zyk~jE*!6&j(vg_+U7QV{*?*0O<5EE4>^C(Bwl*kCJ$cJzgp@4_b5zI8sMLMgwkMQm z=mZHd9+VA0dv;2RQe=#KC$e~>x{vw^ym$s_wv4c|8o!CJMT2idIjBVvoux9@(o>yd z%+yO3!tmijZX{HLZ7zPHj+Zchu}5MDBC?*wG|lKh4)2*wxv+{qldRQ|~q4?(IV zt)G$B3GHqio%g~&xMU72vq%*=KiXN{`2OHP)3m#|?-49-nYbYWX}lZYjn2+Uz6`aA z*2=XH(Q=azO&jrdd<&xz^YjU_Csq{fzw90sgN!KWm0s{qRtSYqH1o|*hVZNZOiA0 zpl8{ZBTR@9mf%y>2qmXMi4DE=sk*0e)tz;hw0(i{dfbNIPjR@RTe;F3bZPU-2mWk8B?`kb!N{45EK@)X z-bh3Em&%jpO+fg?27WYQHVI0YeFH_m_J~U}4D-5K>6NT+W^Qck}H$Gi5|LuI@iYwD`PQFw7}gb2DZbU zrm{RBy`y#oOQSx}4N5YF;E}e_Qu!oKXDUU*(?#*PAL6Wr?xIh7|9B@VJMS?iGdgoY zIw7ZWASIVy)@#0CG4beSQSlc5l^%2DSlbChyucgMn|m}P5Sdxnp%E`I8u?zyYvZ@lt$or7A<5@S|!-($IHi|6x{ zt9yq#jeEqv2XeD^hp=l~EN9SItSV~9C3;Y`Fa2O|d4WAyT@a~^fbpX^Q?RPENyYXB z+}3A(vqWEq!jTBg7;`Cbz{(k?mk>4ht??C?CNLfXF(@H+qhFERLp2F>y|cFw2Cuog znOKDZj@8g(oSKFc>_~fOjg9NyC~y}RkY*Brr9v#Z(4_n_z@EzXwf+_MdRiJ;t81D9 zx^vZexR>a<)R>b#v}7IbNR{@-taRFRq^?ko5t!M!Z7De`ZJcFW)Kc7DNleG)r`4 z6yBna!HuS1`XG$s^-&_oMzBT$6oYkrXeTLn^9Sl9^2>k6Irx{?lx1KIx9%VP-c4}J zV|OnK9htUAEdU*Lq!X1@tE-64phv#eYW_ViGg+e!6`Asko+9oBN92Y)B`E7huRy2b zJEtir%n9NoE!|{qM&m(c5=s3AK~j}w}%kHqOP^c0qllByS(|K2u~XaQ^kni{HkuR#ON0)*9d~zPcMG9vHnP?BeU$`#mklSToNyS_l#s zFAnW7J*sgIS(c_B@&gdZc0*(UT+_xDYZk2*cw>hrC{6FP2k^dz&<8!(z;kq5Wf*C) z_%_t%@tv88Zs#WOY}m!aZZ&fL{%s4wAD}qATIU68leW|`O3OYMT1 zZlCyByZkIdS4}Iopuyty2u_F$yKTcEHS0njJ87@DRj|=NN4Z}^o~pJYPK&w@DK>fS z%YC8#-2@Ncu>x?OPved)! zkqhb75jMx2qHiAUN5!fXo^KgaOYfn020avLTeWtLHb(MZM+!C(;%~0VPH8%{ozsm` z+jVDERXPQ`^7zmKIK0KAad#JqG3o}aVn6nEF&Hc`xc4ZlATnj`Wkf)N#M80!Rc4~t zcYZ3S5)}bAmQK4BeULnyCFucb4@63GvWgxh6BM3Tu;p(}5lMTMwGzc_*ysHf-^okl zlXuUUDX~|;G=3?G{227~n@QVp0+7in5yjj`LY~)u-Eip*nts4!9&xd;3IrkW9S$8L z1jYF)-1Svay8dqi30*zs+j` z@E7pZ|H8p-ZrU0n$UQB@&juaZ{+Fd&y9CNs@$w+?4xxnB0|VyLmX3P*^_hg0H*JpD zztLDc>cq(C?^#Vs!cjXbnkCiGxMh zJ8JqssLT$luR^<%zXvmHTV#dVzn%Iu<0X@877|T7wX2cBJi+>a#5hfCEBcpDzX_Wb zglsxPeuiv@vVw`4vBK>42T_5B+mriuzE}St0m8^IQnYsiE?4%%kJ&Jh9Q2hGMWzQ1 zX=dVqryoZg|LCT66YzNZJB?r0@ynVZo6tFp`3**sRN%$mi5!1|o&EjTY+01(EUxsG zbd3jnY&2Q>AibL;TUe&hvo)54*G+xN8XA7I|0-1u1Eh*HOEgqK2g)@OK zScDd#B|v}M_T#*a*JcxfW#GfR%>+E<%r^2eQ)U|?$Bg@JuR@u;UZ=|wc9D?>yKCIX za%`F17&(@98rC`LIyt38-85P9^-(l3{|IMxjFz~>-ZAfEyGTygonr^q_%Y*~gGNhj z6+;ABm0W*LUGOlSQ~edS-}xt~{Vk1l;pZLS*}lfI_ye?JI@s}qn*8CL!llxJT3X&x+yRS1>dtYJ2$St{YJCFJO8TPk~rNJQ+J{^c0SZY&Z9n<$M zB#5!I#`N+x=hjqNWtybPI$UH|YWFY$3ofTd*fQ!la@|Di@Pk*^;4M*;_YtUtcBSR? zzQIdH9@744v-9rBl)MtJMg!OSdCyB_yY%72BGE(5~6l#?OJ1$VQQkU2s&3#h865n(8XRsA0Xv@dueAePWwAxXBVX zieZjA?>l54Cm(ufAGejNN_5JmXX!HLpxO~PRVsPulzAdKH=f;hrgm|^hv61(*tT8I zUr9v`JtgV^IaiF4vQf0UJUUfgZ4I~#<%blvmby0tor`vzZhpT_yny{?Tl5r%Q>-N9i;d)wzu) zj4JQdB>U=-5sWFoF2d#I*C3Dq!L?Qr`$Cwl9b%7d*|+`iwoT%MFuFOljxY7?vjWZ{Ij)h6oLtdx_9_b+6TTsB2hEF~4h{XQTvlG}E<**jVvaJ3cZ>0RWcl#}Ws=@%LM-zGaa& ziWE!BdknOcmkk^1F;HVWi-8C5fbs_6Rr^%c28XyR4^Q=V5ec zFu;?DGcmyyY`!|59ZY2mjT96Dv0H|s$m4x3CVCCJqL363K>*BG`^wv~ANzmuzPrWo zz+=P?E54$LUM5T!axxV7hpsU%oRJ`Dq`Ps>Hx=W)*eWO|S7@;{KYDo&xDCqZo${J= zUs8-nKZCX9HgOJL_j4+rcyv59%375MGKRWPO8}>Dp~YvoQ?H31a)^PBK9O#y2x}X6 zlYUJjq>8*NYsVgV89~1{T$#rq6JV1zvFTeyw}XIt#hwhJ(ayW`Yc)c_o>M8WKJG-~ zyv7_RE%~NkRb6mzsN2feJ+FlftzEUYX3H2{xd#zHtsP}Q`A&d)_X=n0K2$qwHn4B) z0#F2+x5b<%YqUSDOLH1`l^{3;SzZ&2k@iG9UMHLb7B|8x?#Qy3c_Q4YIpLx`bN-7e z1;gGxjFH~;8?%fDvN(C7n@hf*woW^&a*+PqrB12A3thM%Tx9`La}~B2u0UpSSa_8< zug2LWv?`?5B-9u8XFI*!lGraKDruAI($`+>(C~&d1*do1T8(&M(QQ8XY&}pGkuih| zxyI^o@@{V*kC41Y1F9Z@TH@&wR z8SA4`e+zgaHgVQieQ6PTt11%nIN(}&YLXYi&*8Ss6>WJF$K{ijoS-^SSP?SLB70oq z`f=gtQLe=LG^My@kpK6a<_kfY~8-P5gHQWNKbuy<6`cuj5C->{!!`}4FhM?R2 z$0aqJJ*v`8k4|^L3%JiWT370cm$k>rcE?P6=bMiP@isdtCPFKugsucJsI!EDeG{sQ z(E81rz#*gl`^|||b~x>j=cIOu1$CxCU1JS`mIJ$R#GZW&OT@0V>EGr?k6 zfw%BCa20a$@`lygQNg$27ko^Ox!SVuBKFLQ$@g89Oh^o+R1UHk+;|mu(5qx-U|e9b_u7)8->HBk)wDMyK=USyAdpxw=^Ld4)#?fV zDRIlz(Oh`VNgvs2o=HsgcsMN}W2kjdYRUxuh;(C&<{K){a@m9WuWojZiZR5giEX#5 zUxB>YIQ-Ymt^b*$_Q!|d|6;z;T7to^rP~AbD7GA#a-!jtRbez}zv#i@_52IAp^lAVjx!5L~OCyYdex&-<mY6x)6uu0MQkUv0Sz-)c;A`z z=q&Okn~2YNWouECC>K?rNoSe`WFJ-?!9}3`^iE(4n7|Ztv4{p_n_LZLeO3ov4P;1C zEx2{PpVD7vQ3X~`L~^Kl6_pZ)#=RV!FQ*dqV)1|OU;WTXdm{6<@zp@c~$^$2IlY zaV%oz^BS~=(U#10;Fmsk#quF6zk6?pnvQ{4rpx&!d5&VshDhh3Vo`g{^Xc6O3z*cL zsQxmkao`H6k(54XyYHUKhXd* zc@MchF^~k0{Qi#B{2ee*^-x@$e@v4#V0bcef7k@#k@HlJOxP#wz%{RBrJHkIrXS`$ zji1VN&!Hio=xD5uF8)`DdOkR4`oy<9ftcnuuQb!l&C7w1Hy{vSie~vEgf5%GS z7{^`g#YxOBpPzHnq+To|spnT~#1xE()4yg&#+8OX(lFJR|G$n&7YP);rSOnH;a7-9 za3QxWv2$FdvC<1%-6KH!W5R$!L8ko$%43Ntq`a3fNTi37e`f=93>_!fT ziJx9f8Q$yyq0-b>T}C@h*c9M3t=OE);IrT|A!|iU;&2i4WH0wUntB_q0h|-$p3|4o z1T%BGOiVSO5TTi0thbmfB`l79Os@0UP%TG2!f(L}i>d?R<8I|5VqJ_!BfyRw{j;7Z zteV_p{e7l9N~m`$ufl47#?58|Wk*^aFSiWWtGD{xavA_p-axS|v;#P^03O~5QbR|x zxvymRIknjtiG;N7GWlBO1KHe9WQ6nbn08X4^G-TT7m)KREXx3D<%8t6a670I*tzbg zU?7=MMv94#A-d*$F)GFP43udyItJto4gJupYV%s*1q_og)qTt3W*=Xx#vspb4U0NP zn*UP6wK)UW{OB}citk`J*(1w$lg}0HY}eIfN#*nj6$EUaiSEcw9(p-_Qc|F{QXZL3 zX>GNB^GQ%)IGg>%u*D#t!B5Hg5Cv}0#(UAvpkces3D#m zT(!gd;!`iNp3N1f!a`D=?iwc!KB zurWttF+)oc?DtedBAu^pb^2Lsv*)w6RbkpuyN6T5W~9R?j+{u0jd+)IH0DP&rIr}g z{MqD2!n3R%3PP7Fv4kY|c&;W@mxI=HzGiLn>Y3G!N4ehnF5%G$f!Auj*WNApS(w{s zktX7JW4oo|g;>nf1J=j-M4nDnh@0OySFk;mLG|)~4ql$m(kr7AisN^QLm9YClHg$B~NyjEznG2r<46@jGNg@}j50 zSJWouv+>4@l-0+lw&|C5x1}{Y7hOMOtjN@^EMQupWh=5pp^Te76AsRtz9*0(2^9G`}Q<%c|owpU6UHl_-ul#;i zTjF1V)oCP}(J8I6wOMrd_lr#6c}zlIf@v z2-b2VEb*}{A+d!wwarpnbey1Ocn9D?N+RPXX)_K5V@F>h>`x>CtRf7)AZolooK_Gy z;3+f+YKvyrCsa3h6JuE386K&Spi@GK1q?h$$#=Dj&p-rcmG-Uwx78anI6I(B-GFd z_$?T{D|XPk@FI}tm0eK~ul&ejrN}{{HWp2@`3mGmC~ed!n6=wyH+`0ZO573rwa@Y= z(5p_{0bbxJOJtvwLW{*0#*BH;h$IhJ;EBJ=i2R-!`TH|l7ayjU|9mF!8DzVoN>@qu zE}fDK4Q8MC%JClspvi2mXgY<4K&Jfju}JkR0S-#71(=Z^$%Eo*=HTSb64zDnNlS~aORP+KZL@NI;e^Qe=)X107_<$kCASHS;uKXxuOOb1BYvCnNP z{d!7JUnQK5aE#dEP{BDx+G_xvOZ$J{|ErS{6l^gQmEro&=SqLYPH693UHbK0byv$7Q`puz1+Q+OLAJqI=Vot$?}6FxD8fW&>+yZJC`;FC2PTPE(FrwOu&<&;p%jJM z>8>5i*5P8prKf4~;M(SFclxd;UPFM;Gsd?;UyvSncv#ZGtj~DzK^@^^WOrR|KB*!L zAQlkscCjeumxoV3Ob&bnZ(93RPEiS2*Ir{iwc-T~hmS`5YkWWE>fk*}g_Wpu-Z-G@8Uv!GGQN(Qf`@)W=fP z$8MLXt}gtE%0ISs{BrZ;b(iu5?uB1BwXHe8om;_;!-lo-JdXo5Vu5ibtR;!`%X`~z zop4{mVUk2B`jH~P^eD_4{vD-VE-JR`FDUK1sMY$g_nj^M4MDKZuXhgGd@jB-A6MhV zpk{oMS&8F<7Ny+NjCyM&9G95k!ck@S8veHHx)Wwx^?Qy(BN~xmq;%UhLJj!pKU|9h0<)cqS5>0*Y2nv>f)Xd7$vj08*%5(@7O!mrvwI$@dJfy&HiO)0 z0rEgw2ebR>F06(wjd5#QP`~K#NJ1Hj`Uw-r!!@U#?Nn;&g8iUPzLzy#>6v}22*kG- zcWdHflwK-zhM?XzBYM(aXHW&#l?F}d3f&taJirpwGQ~Zs%{na%X!g0wG?G)BCWjV9OP21fO$pC#W9*r@bkfznaLdKK}`>A>(TY(zTe98A>U^ z)9^w(nNMvu!9mZwGlY0v%xDE~masCdnbj>CJRb|kRVQlQmGajtH`Qa8G{n?WUfQq0 zpS&CzL2c)3R0*96@+f|UC;p;7pE<_iu=emgceikQh_B7 zkgk==d&xC9`0|hd=R~yydZn+5hP1woMg5QTky#r;u^h057JZ1kBuHBi`mTDZg9 zL~Id!_hDV@K(IoU)fvhAdw%xK0^blO@|!1Z+4Vb&JUrwaiHRcB;CpX#zd+9Al#6?xW${L=1T>mL6C>>-K9G=j1wkp z{KJFaMivV$z5v$bvfD159gRtl=KO~HyXo~&iu@8e^0QgH!#f~Xz(QfK)t-Bqj4{hP zj#rNDtq8S0cE@rGe;H6sBL77W0M@2rnSqs|gxg6Dww<@hymG6KJSe-0l`){@xy+Az zOdoekp4KO#ocUSiJ9}~#VHZU|#fZ+}25nd7?eKHP42^fmJ3?;(Oaa((yibO2`qObH zP#8REPzfDI&mK$PlHPU8b(U?M5ULC`R7rizoikDfBtHpmAo(G{T?0d1<(G1H45;vg zO0|Ho@Ky(WSJ^#+R>qU?o%~smtZ#b8?yH%=(L82mrJjyn{OosSOG8`l>!g%F1=8;3 zL|Ta|%W4VtRLUhY;|K?{1|;fvwh2=U8D4`rMx3^FcRQ{4H0vz-`qseC6sN9mgdL=P zCl_I-982a?0g@LW`$; zxC#a!eQo6O`lKl+>1h?OEAx1Lf>jlJf<<@v-XP(#*5X-vHeU&=AL!G{kI+{p4WC zID^YNR1mP<=lkTf$z&C`Bg}HTC2RON_E7$%RV9b7HEw7(`?e4e!vRdDy7q!&jh+ms ziih@03m(>6f{-7)9`>u(d7RdVQNOPzv}749vQ&$CFlsCKVZ9;dr#%Cmeb0ZHOg3I^ zdtJ99qmTx*J|=Q!y@4WXD_bRaZ#%B}@ROHW|R-7M%O;M~t>4*1!DjarKW+jZuOM&zX~uO`+Y;{|6?7 zX-Mj*SyByS+B%3_R_$I~XxArv2fKCcLq;!;qzT}oxept;SR7eB`c`68<`P$UmOQeN z*ZFS+RmIsv5tz=ZnVVJ5H&GOPkAERC`nRG;qpA=9?Ss)#Yl6dt0In}?e`^O>f8U6Z z*+>+N>$q+2ALBR@#Wr94h`s7>1u;f~*p^Fi+AVL;lqa_BUpFf``1fL?J;7&skS@3nq^Ua<>=j zVn_8l{A{76V?ij3x^x#+8qQpiK3WYGMwFeI93GD)rE&DP5c1kDIFPzIC1c*<^R>$( zWc3=Yp$U>LE~X0buG!|9f;(B_*r0ciHQn7#4Y~+(2D%;lUw>gT=9vGE)j??(9qVQS zcl)=a!G8|xIIW%9;oECJ^s4aA`^{n|_rKwF+);J>DLi6MHsdz=aN{G7Bm5CF2Wy^L z8zUw{lyz3g(oMbQ7ZPh9T38}1U)_8^JL_N$E-^xwy`O0KzWyhlN9?l<{U+H(?Jnb_ zMt5XPlVs=zPo|_byJ;ksIp4dT6~7Glgm4fE-aJY;Kr_Z}gg@#s17NNisLCz2-Jg~d z8}4vaeUwt)KYQgtRy)2(7Na-aRvJ+zfRlg8?nT4ueYFX6Q!GoXI^UjGZ+9!JJ6~v6 zLG0DCPwcJ9TV<)tGGSbUJ5z{ptoFEFAT(D%1yNgb;Ylzc%;-GH-Xn4;{_Sy*7)0 zju&cHJg&OF-QZ~+PHqp!9!Ya+Qg$U*m*0+0z3FM&6H+$&xLb*!jj>Y>3lSUGJMMwFdlAC>jxE#{T>Z5uspV;`CBlD#eC>&ruqOjlkyt!lF*{vI5r zX!-qy6=@+gH9xS}g)y67RPE&g?-&+XrD8!>AMro`#UTFdsfp5w1QpY^8;vKCtS#IJ>}U9i=$fk*r#e9`CHvjC~_aIXS_hZx!|PMLWMehY@LKMHYFJ$1D4*dN0E z5mqEROj_qIG8L?tBAv_Z48PK&v@oW$@T_M5EWF4t1_;@tJSD1E$j^fc-Z7t@;tG8A zZ<9e=uJ$>t&mRNJ$VDaXsDJylKg|K3Zy~%dQ#@t{7 zeSF_!9UV#|svomgzWx(6o8&kFGp<=zXs{Yri@hcKlzH2DGqfcZ-C*UGx6QMx&YB94 z8>~>)5R}3@RiUZJj7tcd>jaGNJ=cwlZB4(g8t)O^>L4$DA5^6avSDr~APspaL@3<) zi;a3FBeLMHBujsh0{!D6pGyy6>gdnEr9(ZduJ(={B8SV`11e}wRgWYJ+5_CHzTf+3 zTm_I~$|`{ul#I{WgM>ul0Uy2nsJ!Y1=kxYdha|4B2Nt{W}V zeX1f-12VjGs^S31syJiVrr&AqXc~ERTRk9c?4`ZBtMlM^^)oX|o)~+65+kt792cvs zvo--aVSMNi68De=f4<_n^QLs;_L$Y>1|g-YXyF4nhtYiu83YEE%?r9+Am-zbkJ~y2HQS9-PjM7MbI1 zcNY8x$+x)Y)-_D@LQad=rk#X?RpFcgQqHCf^6KlkW&aKg$QEn1tP#DhRrNpd@dnEl z#@4BF%iZqLq{4Zqo67$)od|NDlSz!;v&XJ|$39^QcBQO3H=HK4j(p_$#CbL7TrWZP zFy5p$@Rd+ldD^hvNQ35PR9~wM>f_rZ7>xm*-LtDR^5o-|qAX7bF4nYNm3-WH6knb` z6WDeys2=p2h@35h_eZVt?rK2-F}W3-F8ES1I?-v63Xr z^yb|Rmya#Dz&y}NysIJ^$^M1yobDc5O6Wd*HUm+cS4Y59Sy_6u2@|frm<)YJ_7fy83gSXM9gApzU8&H=*u=BC;f3+N&rA`(d1*-jzbUfo}i?WsFi%<^5Dk@j#&sc0yRl5{a# z@M`&4J{ z-+q=FGnTQ<=4V+Jsy08zd=0C;Hh09zLWi}#tbwJcBCpJJFH~?p6?r!I*5h$o*sSVw zOC$@uFx@ixQvH|sfV~b$^6=Vfu81hL2T-Lanw~`j**65Q@-D_lVJSowfo*%UTZ6eh zZ3Wp~t%mSJn6ohC$D5|v)HP%bL=Ktt=Tera=X$aCM=m^bJfV`l_2>j%J}fPzMYmU7 zL_aBo__ns1PTs@;or(<^)L&fOx9q2%t~>94IFq5SaIn^qU&is9>LUkmb9pC>#c`E2 zZd8l4M{#w6l_SY`U31me>xJ4tA8E92Kix;*-dW2n2!Bsw+?;-UYR`CJTFC-NIx*z% z>SR;-s+@u_zZe9-sTu4i^S1AxPJ81fIiDdi@G$&*MvVrrxLQ9nT@#qq!lk=hy-M3w zuilEDTz=q!85R}9mR~XA@iAlC<$rJh{7~$H6EI%_cYkP`-XH4HoKs}Tc}#hV4CV}mHF#=w%>L601H7{q5AbYYfF&Samwl^F%iiEes^Xk( z3q9U!7Elb~Rbpq5)#u{!4OYzp$Ag7eWFq+eSucTGAPKkTMW=x~Q4FUxL}8~BZ?(UQ zR-khX@j$wT)~$ux?FPRZ#S^d0$7-O_y^txboa?b#0ey(#{XS1!WM~O%3n~-1ohh$S z!1e^1bR7nN*_ScD+SQi<0|}6ih}~i4=-3VAsMBk!rt^gN*L{EB^y|dNgEow&_kCw} zC%sUg)0QvbU2uz~>t43y=>jsEj+CCw&&9g1 zDlYLGv#aN*o@Ck5J=t|7+^ikA)}kJ8WiH=x(Rur1VRo+({Ma|k0_b=n3igySfdQ*` z+Yh(nHt;&6>WcFQR=q&|b+k(1P||f{H)C}{>edaw#WI_t+}vCq2EvXLXKUrikAm!x z;EBc_?#T8bKUWVepp2`cV&6nCS)m2LLkkSeu6^~)7$#&qE)jZ}{}4rF4%5TmzR*2s zr}Qa-aGjdvVc0yJt^BsqI=Xt5zf%tsLz$I9cKRpwG#eX*$Wu-l=f0JUdEU;F`mdKJ z2hL@{+d>I#bBRHh-~&)^gzddWy&&-|lr=`AodTnkT%EgralZCld0=mvX^{VfUegRn z-|G~&*E7CplT_ox(5#-*&;X8d>&Jqf<6h4Of<7z7u%JACEnP$L=&ixkYh$lt!{|}@ zNBzKA`Srm$J#IY}{>k_nHRJ~Z=ac@EUH~cbU{MCvJ>r&-JhDFudIZtG4Ej7=1;-}& z8A!$Wh=>tn9utUbm!}1aoiS^!ORyZ}jmG!Wh2FDD9=3I!P+K=$Vm|?rOSMaugyTd9+7T^2fGk6U#;x*Gt{~VQ_A8tT%wBM z7j19N9n2zj4H#{%UY_=1)iLdS>ym7FC>MPnYs)kQUsw*iXmzI7%-_K)64{WA{Gpmg zO|(!SHF%7DrHAXap4Qqtfp{e~skJ%K47yxUzj65`*>!1>v|}V+Yy&E)>4Oz-luO3w z?F=EXMZQ+DyPo}tB>CcO8Ms_dcF>YAcG^hDIbaGuMRwHwxwJW2pa#_!@)3nHbUN`M z-fnmiz4WkzjdRfHfyTd*AW4)4qtju*8%C)6%t8t^(t;rzv zlVya@w1|yH%8bA$`>$5n#1dU6W-o1P_dARX!ojRZn0M?6i|KWEBsjpx&Ab!yBm3i} zYhhx%H^v`pRy}HebUb|OX|LPgO%}m9|Nn&6-%e<;vWh#Uwzy4ia4#f*_Q?+S>}T-b zObfDC?T(hY2B{$DG`a%~%2_71$iJBuJZJ{_znWiN4k>ZT(56iKNyC56Ys`C)BoU-Y z?JJJ$!+MJs_vRKpPpIfAm!ie6+j22V{=XLF5C59w>qoBt4d^owzKF0tS=z(;N9(2E3XAIQc+QX4^qVR8dv-vbI$2RZz@?N_NvXi z^{LFV!~MZuo)oIddn6qT9EaFQFC?w^(2B4S?bpM!dmvP~!bwBsj(7`6*0d(~unD(s z)-$Ptu`p-vBJ&z#^Y}r$x1fMv;~mmUobT++|`-h`{HX#yc`tq-FL&R7K@># z$J6c(zD|18aTp3m4IUD}o132~yJqdXBm-!XDMQb+&Rt$?#m=;Sh!#dP2dItYsDD~HAY|%i>~?RFyvAfgaBmcNE5O7>rn#Q+hdLN3WHI@RO)*9VF7p!}S1-%=yoj8?xCnk7YjDDM%KR&mZ(PN!L+xA7|LR5=P%C2^8=BqIl zb!T9z7~ml9%J2tW39+jF#TOec77CAZ?PtT+j$2T7bQ^ttwmlGHY@Kwuw+~l-lVMTJ z;SIjan600urU#AB$vbW2iW7?k-Xz=mW%W(=&-&@Ye}b1h_w+0BT~N>)0zWXiBo-G> z4>+*b^K5P^Arjbu6+C&&iBG$f)%b5hi6=)NE_Du(W1A%bTkjsJt>hZVEjI{}wX)r6 z=1kQ*ButM(=R482_09PwQZn0r)Tbra65|2Q@ADf@8&RZG!WNx4> zaM~{d8ICzXKRCqKX3Ye?KxG5he6_Mw=eOBCvr7tcl|*Q6eQ-pL;h)agGZu@`8M6ho z%`?3q`KLlZV_D|dqKOT)Q=xBvfS#2N%Gf5j`6g?8qGn^`GBSIasNevx{r$smw zPVovwJfE>zaVNgLK#q;L87q#>tIX`|G3`&EtO%3M$N0FenT^P#;OiHIIL!EiYhOte z8*_XQZ(Wm*wO3U8vDnLjjw$LMxni$rd{ZExvxFIw8nJ~4Qa1wjnn2|uDx{*R84qW* z@4VP7Y+ZUE9wZ-N#MjQ^0+ltOa?C0}lsDf=i&7N48(XU&e=l4J5h}DOdZSKz%9yv{ zIxI_pvoQcR<&M5MQBC6mG1FXt!>m@Yb$141DMjf8F;DQGjW-T|!^2=5U3Ud;>>w19 z;u#X7xhq^iEsRuiq7E(J7)=&zL1YK=*YS}2g(6i^I4M*TY9Mm$w|Y}RO{RB^qoszM zuh0B?&|n4amaF26QdK9j%WG+2%_sGyr#!qT951hx8+Dr>UO1&vsRwfnt7&zrxWRkZ zyMKb2SNYkq_t*eUr%my!8TzAgv{#y< zgqcy9h^n{YTqzB;uk*)TzCDF9x`v)cM>t7Ej;FS%Af(k${Pg9|#>kVF|N1Br%FsoRv%EUQP3KVW^M zG2p9nqGuhh6Eqdih`W#;Ru0n82eA`E+1N^==0b{h9kD&&ezJ~*>P>i2UFL|YkBi_r zi+-JTj&NxwMfux0%SKR|&=tq(`aEiJ<)Endi02a-$-v>N*lSy+6KxmeKfvd9$-Kki zQ}z9H(mDstVoKnnjK}iw3blu3h+f-Gk70B%)uZiga5I_7Gqt5cUQkVVRgzosGl@|8Vt~f* zwSvnrL8jU+&>De78HrP%sxX<>G=|3&N)D?}Ec+DV$QYPgN}2X!6sGI?(2^4(e`g>7 zUKf|@P$PNAXL-KT?IbDCC=<@a7&~A^c_O0M!ltz{`9J#h&3nQj8Apn z`e4Y>C5&nE4=d*P+=*YVR)_3^mg zP{!`WOHRKG{nF>Gx{gutc};9a+l#4P068%$ohq{G00Bx2^LkfRFWVw_s3DGg(I>4F zq2`1fandEN-G9OUHuY^{O!mioT-BM845;l5q0q9bBc4^r1 zfzUW#ZjI3Mou@G3XG>NUuTyD^nnz4Vr2og2=)cmUZcUB9V7E*nmhLJqfe2G`bKd23 zcyCeq{Zkr&|Av{BC%X-r+ujpAJt1&uW31r#lYOM;5)VSk1e;w|!eo`Lg)T%>@=2)bqO>_=z1s}{CBlC3`hh))?b$V{(B98X`!!uU zOUTPK->uxmW?8)J-tL~%pV+PkJ$@-)ZirjfXjE)kk9sb2fgAlL1T_hnmH(#u{aqdV z`wY`>iuqQPuvKV%rlG)~$gGT*sRKgTgWSox0HJuZk;LfE-Um=G&(xZpv8uTSQ!n2P z5cJdTc1kVK3wi+0Xh&=B8f6RBfkNAJgu?JTaEd$-0x~^jFIabF^)1XyYjM{+Qj6$} z+o74;m|aQ}qSn3AC!2W+YnyD)iA%5ND)DA``$g&0HrFKDbKP!?F2Rjj`{YTMsZ&0> zG+=l`JIGI2N~DNQ6N}ZYMd+h-LF&`$WImeDc23uuM^pMCnb>aKH!v~p034kjyk4)C zEpaQ`DeJb`!QDxS{x)OegVuHd3uXuT(t)VPh@3na?!O-LFw1M6f4f;@FCdc43a`t7 zaq28tG+|8$y;IA5))7|5wVb^KHyq2tT_4L@YW((1ecA)s11d24*I%3W&H^^VN4wDJ z8ezhM@T(}BDND~y*ZSo@l^2KkXve{IF9lWvUi!8P)`4ej1vUGQXmVnYG)4ec4NTRMt9^(N8R6%V;E9-R;d2WDoUce61g~d)4PaXB3L_ zNqzG`)kIY%SRzS(iVslK8_gbARlPDffwi8#wB36)JVoSMQ0BDvKR%&}5*!@4m7e(h z?z==XkG~A?c(n(r)nV_7klk(rMrYnN+c@uUw33rVW+z1?6ql4J7IaZeVznTIfCj-~y>JS_1C9a;*Pl zHKp{D_D!Q%ePm&2dwguFytLu&^dkKZ$GwE*QkPCAtaPp|Ye4sYtV>e*+CkdVs&@wI z2_PrMt@+vNgG!H-O;Ufz+q$_AE=lshDzmYW%Ukxy6UYFU;wXtNhegBK;ssTDRcS6p zCv1?WjIUZws;$yjb5<45Vpi#!(ks(Bxm|L1&SP|jZ7@2k94@&Xl}_lY^!y#xtUlJy zR3AT9TA*5$P8tchV>KF5`z0YY$oKi6g^zk}TY|hxk`i1WV5eBo-sXQ3(AFaJh2ngs znYS`kh1$LYL|aj_JxBr-fRxMckmrg0V-1&2vCtveIysk#j?1+hM>hb%vVemG#s zk6Xs>3usvDX}RwM(zNA`)S5f0oz=s|};9_Wb2OIFvRk zEOehq;Z4fvG`F4W3f{cmUyZEul$qiNXMD7}BB(!Pq0tt~UE!E*G|PI)=a*F6-P(vR zKvjZkuau1Lp7A(p|GWZu0JeDLo0^V$iCa!WNjvpS?n!M*|CLq=bM-sj53;rE>!4h| zPCMdKvm4_Fi`*jhALP#OTHj4SVV-`@%VNONH{eO-<$S3ay=a!l-cOj0X_+q8Q7GpL z5ca8I)yT4pv1hw7# z=4`eHJ7HAb&Spr#Gphd&ckdn6)VBWnuC*+vC@e)lq%8{|T|hd7t)eVMh=BAaAW}n> z5+JYy0qG*WMrx#n9%>LNp?4Apoj@od1PGypas%$Y&;I?+@3)_O?>Xm>d!HxILncY) z9CM8Kea9T{7~}i-Dj9jKNcq$w**?ye{-UDus-m%;F>TJf z=bL(IE0cHilm47uX3QENgJyqDBlGC6_3L=96sa@Joi3Vep)(c93QdoBNRxK)2+FHH z_*I?$)$m(KnL_x)xwCKO*e32&iu`1$DbIBr>U*U~NhkaR515sp<32-*6FZ0Sq!{)E zpe5TM=Bv^6`I^5pxuIclL(uQb!2#KngC@zP4P9F|PE;1ew$XEBS_xJP6;mm3%li6q z9?^ctQ-s|l3drmqI#kX^Q|e-t!>`hz`7eC4)Cy7KHamy}_>h@t=uC^F6#H-*Z;=Ky z6`j*uz4%B-=vuvskpr!sdzTH?ny2nfSe|*Fq%fQ+S$tZgg>nQCxfs($!biF*N2Zo z#RUAON8I5W*+8%_Y4HdhTEBVokl(kSr~cMU5fx+< zWj>G|bY(xRrsql-@2h?LDUHsbP(cJ#8}1@aq`PGZC< zyb8^SlTu4w(qpo>s^f|`DTqLD}|Go?09C4z2)ELN|xK`oGk#?|XIFyn;*77_3D zlDShjDOV;}D8VnrEc)g7GB`u(c+QHfcUPEpb z(Wm|tMY8}Z%M0tP$GY?stnYXlHFZ$8<|Gl^gBtV&=~4yJr~4#y?NZ{{(fmO$TWzv< zmThQA0{Pbin^cDLJPM4e8j8S zPX=>@*g*oHV_f(_;5I^LDXcR&VO~Yo7+FoJP2D)rr=r8GQqm z*O5rww>0MGixXs@wCLI-_0-#9@D^nr@cmg!4eJX zCZk?&)p*7keLV3p+MvXsqVf#xn8f2ACZJuk=wBgcbw=*gsD0NsboG=L>VCyN%qaDT zLCyy>KcX)v@@I4kXdJnxGZoz&fjzHwib>lR($yDVzmbvAc{^Jx=$q(0*8V?qPWAY( z9o`y61yqS5@mwpKN7DkvOFXBiB+cqZ%8QWwY&oYe&X~Lv_d_tmkEQce3GRwI(BgLExuAZomeY#-sD8{sdT=hLK_$dtD@ zoP0owRLnN);17J;4!Idtl5XOetK*6XM`yU!VH&P=omM0B5A*vmE#jhX)P|QMbdQ7| zs>fC*^+*$rak)FE%+#NPSTurUmD&h@sKB|N=pa2dCX`fiDqb~U(Er8`2W+;M32c@FFzVaPs)j`t$l#;jdF|cuw$kGB1TU4-IciV+BMM|ER}hKe3@J^TMO8_5gw=4 zKjX}{3c4sh=_e0zXhvX!iFUWY+0e5p zdSXsL(~N!<-Rj=t83j=Fa#zJt)jWesB6jQQ+U%o^U(DS9%4 zyAuBY8(t!ZlI9fD{f_&|w-V^+BbrF0qU!M5X^8^rZcBb`=(-8ps8zI=NrqkX-Nc-@uBmq{PXY0~?z>fxk zntUgXhO@l=jz%2yMf8=JKj+afjix^<FDSjGiIDSagh$Fyto!6%BgIb!hb`tayA z8q*Y1X@nX)?W^e92Yt~%8o!(dm#)w^XUnv1UNIQjeO%|NXF5=N9p=3K_8Jp1htU9i zj?*W+>h&GlqzFZPqf(anueLN!a_{NJJ$h8H#cpFkeU(I@$M{vC6U;W6LppXV6ZB;G z$6)1V(zwPZ&yl+1j(EMEipwEG8n{>jeJa%tQ%$D{=R)kdKT(d9$CtVyO+43Xt~~eA z@qr9sj3=DjIRyx;g@DGA$mF73gh5jmtg7<8RI+uT2vket0$+Y1xqU)_Mvho0vU&g^k4)HO(qFE9JnoR7^` zHW@aUBTA%sw6=m<+Zf9&TbH87lmxmhg<=E|E-)4uxbbU{OOLg<%x8eJufSFuj zArOimfEeJ)AWSH)`z&UvX5oxREuhD}+2mU(>s|VwYI6Y{serWlQ;KARbpfS5XTfPLZtOd+wnQ93H-L7yCdS`33 z-Bt=^pShOkDuiQQIS-HSS;_{-izRKH^D;3qMf@mS0Aep|(Wxd2+nv;*A}bsdCe)5F z)(hn8lYPV^uKf~Ha%k$T?zVIR9N^|WJXxpELcCbpsKWljcI=%OC&4AlFMQ|SJyY)V zexEIYYSY`W&%UzUGeZ8kFZc-LiuV_R8;4VK3g6USz%AexkKOnwkMjc-q)nP_8y;&w zP(jd`ejnF@_O6SBs#fa?=E*v1={ArtBmNs2DgBG%oK%O{rJ2p#%6@8IjY(l=bl*~A zZTuEL=zESSfA9{h+n% zFYd>qvE=toefNQykfR!;oswfPs@4T^S=)Uzn+ygzQc`{yH0(5*Jn`II`+emko)KT| z^%>oD8&*Z-p*4r~Xz@_SH-#;sqwh2T1~;a-zhg2n z6yf`Wfb(K5zMZa9Eo%xps2E~EKH@GU*NuvWxumC3Y&Bf#g2cjn;&m`e-nZcOzijWu zfDe^5p62T*MPfY7EDvaB5Nt4=Fm(mdiE40OOr5VRph}8@rx2;WM|&|~zl%*sqWR{@ zRQq1MxIBhS7wrE6Ft@!ANdw|WMmwGQSMJenNTW>`o6Kd$=3(i`h?C#xpelAb7d(80JdX4IAv_5vRE$SYa2C?` z?Hvt*n>^W~RwvMde`ZwBCC>Sf)6ryt&Cr3b|C+=Wn<1OWEr;M?pM*IT{1I(M(XH~~ zw8yDKFvaBE8i$l6d+bnjA5{_T0ZJ-4flZhpX*0l%w10Pzv&nwIj9iZJ-sCGKzGgk} zxRBxmTOHsEWJGFuHFW=K3`S))o~yZVtOT9m2`bU_S>WGq;DhhlJq^#ZX2(etU?Q~v zr{OCew*p?KG))6w!BW)!P@LiNx4Y?veMe7VjkM{mBVfWVfMUT{^56 zj;0mV*fd^e@Nfrg<|=ec^xLWN9aX7beH%GgHK_;ju4C|#W!POX?F;+tXTA{AWD-5f z+fC6gwCYjWJ#{K;n<}UJx>elReHfXK=>p{xa_EqA6-l;;I z4=j%IoHPvPPWJQ)Ub04a1|+6d>^;ahizjP%c)e7v({aHyH-f~pOG3YyKXo66GCSU1 z;yyVbM>iee_Nb!%M?A$@0*HURYQaJLHkW&fqBTgzKW0e zE}wt$#|Q6H#tf|I7gcEJ!*y0;_IVPeUzu;Waix%>mqell=RYFL%E!vjI!DXoIb-4e zc?#G3C!)yb9ONsiHuLwMH?1C35N}Pamk?O>z*%zLAZ{78sW(s7<&GV{f4?d;Mp#E2 zHPz}qx0{`Af@*fAx2p_sL6~6o9$5n--O5*I} z)e`BQn{Dq?-u?3A$-+g}HAsfk@*aNv%V*{*6_(NCe?-MJiYHkRI|zP%d&YaxM%&lF zcuy}-VX#3Rx&P?I-Af=MJWz?@v86z)4!}#dZwdcUXJ6blZV-G56Vyr8Jm+Rft%7uF zj6Xb+vrKGW9%Ax`oJ9Ji%lfQU)ljV294b#p#$4JV@Kd38gXx^qHsTvQ4+lDZqV+hV z<3Wyr%uyA%XY%Ar^r3OIum{~zw5q?;uEP*6Ev*k4yX7=oj2#%CyBGj!U?B9d#+q8s zpt)n~QqLd1_Fp^fT8W;$NBqSNUdimh5wLICHdmt7;6##MzU3D-2)3nUO8P`^xdOnWX9?hAIU32tzY?|E>%bu^CRUTh6zuvlOh`+auo0s5F>UX$+*?tN6P--VB00my^sTkYZtlAx(8UZa9=*Em1u)Ft zQXDsuhsVIBjc)!hR&XqjTH`-D=HX^Qj1& zfsumYMsFD~hrviX)mBfhW~T<@jHF{ga5Q}lTN7UH6*q**uz5k9OorS9kR6uOmbzf z5m6(w{vDbn*)w7d>$&&7zkPii?_IfNAip!VKpM$mm)uQDu@C7X8BjG?$i}h9iI;nK zO|mj1r6l*|ZW+;Lx*!(~rW!LzLZW8EJD6GL2U8Heg~c)B!slSN93OSl6l!7CetJL3 zcCAdxyFJ+#A=TcixK(mqLc{_02-ni9=)#16%=9lCXjh*fW|+_#ce5eNuJdN}rmJK2 zRNVui97|=5XkbLY8If=0=&-dx;?J$}aFeusDdnc~Fj-*ogZb zaeU+|?|9Xk^m}(6oJk}^P2cmj=2l6S%E#F*T&msqIqz#;hz&qnwybc%9lzMvaX+Ja^3ek*1*UJW-m34RPFZ*MX7iDeV?(efQuc2OxITZ%#1rY z5WD>%Z+ChM_nlUAZPFD(=bvnD(1cPrvD-zUccs`jFqT(JcK5t#lOa!sn%r-^$=xh`JjIwU^afGzS6pN=zt| zQCI#+;Z54uYNVok-Ao}gAqZwwi_3R@j6D}0k|66iC-8;B8Rb_eX3a6UMZ3eSSp@+h;b%vE{SnK$Z;K-~yO@<7t-dvFmW6^?r)PYS} zHfWumy*io(W9ZkVWr$0yj(J`x*6aD3ola-iVSnb0VgWg`;dw#1wr)qqKlTT5k=gSs zB~oY_sezWL&7J|KXLY>}5p#bbgh~ItM{|gL~mszE5z*W!#stSv*i4I9SNtm zY~bvjcR(m#A5EZR3-46GcF__}YZpLPb1%`_Hz6s3VvB4U1C{Y9d8I1Dzl~J-^u(T~ z?4G6IC4f>tMcG@qnpxH9)rRr-PJzGYnoo0IooBhPTirPt*L}o;e%?aSo@$&FZShM# zM=~w%{u}5XZBBwVGL~Rd8qc(9wjFOgIE*seyYjl5mW4v;E+@6b?I-=>?oa|HRdDHU zUIDVN;(lgxn*7xj=b!ve`4q>8;Kh%+cV=&Q?Ah=yO35NJCj_Mz%`8o|m*_(4oo4I` zYLPVbueX@)1f;SoLH&8SGLrIMN?~-Dq@tFw1v2m;k z2kuryu*kaj(Keu<{AWh|x#!@~+jBKs z8Dx@gnY_eA@40_fLya_Znt}&T(=E?ec;tJHxm`Z1CeB;vyr>t1(j5?A$$EF3$rZ~T zP?Oi1_rI5%Ym%M5h^s->q|&Jq){h9@k$2KwUHtx!DhT{;gs;YVgGHr{XQ}^G^`gCT z3YPYHwF)9Wj@i^(srXi=3qRuBdk8qR<4)K=x8HyQ2>cHbFTWVGrdBhl4yXS`fi*e( zBAlPF!RMstH6OvXr)?ZX|IfDE()Qtc+v}&g72ft48e(#D^PdhjSW~3QL&TC-w+$=; zD{2Hh;XlUGe5zUCw4EP>aXT{#ap_6)-mm`b-zew8Nw`qvIqXEd&+MNAv{Wz?Gbl1OHNhAikk z>=j+`L5R=9bm96ST^xp^c-x21w>lJpJ8XvlRCF3ZJbHKGk;ma;-#b0HyMi9;-c2HK zI;mfUmZ9fumncX#>XJX`|C)A{g=(K&$^|C53R%7uN8Gu?i3cU<<$9*h>o_Ee z3(i=Te7(I%1N{VRF{(Aq?C<8uG*)r>J)ed)SM(?4?6vS!BNWJ7Ti#}8!fiC|wzC(c zyiuIN0-L6np>)$Yqq_aq9Sc$dG2W%M#uRd_;`}d?c3lm@zJ4^#&zyjE8$I|0{axaV zeEQeyTUZG9o5Ir05m*E#d(nDL|Hac_d9GO=T61xFx44_9iTO-rjwUqsFRzPM@G?>O z5kCD%e>b`mb*dz{i}19!M5#ik4NNpKyR=(BrSj}grSgCrQ3j1Qd`xGebU&r(Sbex{ z;1PFZ*z2op4S}Rk?2~^MUQ!BAS**<$Ua+zsv!q>IC{Okm{Kkfc^TMk%UQvR*VNB+z6AqhD(q1*56o=)Cpkv?gA_eF4(HXGnM zz=lHm_k1T`gYs7 zDb>f5wlF@#WYn*#v7I+o6c@*P?Q**m*+7oUGjouU|9Q>Gi1$RPfFuHZR`$CY?g7jx zzR85jRzHI(La6=FSXaznLI%rlGSWyvRoUS_((}W{Gf>OM@Zgo(484@QMzef&WH&i= z6e13>d9=B^U-iMMwcF!r#smUs4TwFeHF1Tko`{&is0l%8QvGu^Hy_Px2Kf}9EDrnG zDiepuxc5;(-Tnn@CBet8aa+7JIg2klvEx2B+FY{WhyWWajqQg~aer206O+SWW!XI@ zLAZ}oSJv~H&B+tTGsc4Vbj%_3VLh`}UEZ-LLzkOIQGMR6h*s`N82`qmEpxF<2FkYx$-e>D46)M=v5M@PtV0uU6B`)*qCU6=erYF*nEX= z&7(T%Fu2||UOF~P-9E0r5AW1g<_(^gVYFnAO)s~MDztmbQS+-Zd8O^cRb@QA!X93F zh5VIWUdrE=>cEP6nLWUY_$vEJp)5LMje6r`JwOW7IfFxO#f~Wp|B-09@<@z zzWRel!bE0xQLMMiw_w~2y`1cp&^Mq>c!+uQ7EtnQY;~j8%*CGK_;>iV<>%)a+@Zc55;vWJbGjhjvJ;gjGimMY*SiUbBXba&|9;>?1ocGs&a#*P!n!(!#ZGFVtlH1&tx(}sIHnQz`@@U9=$F}ugEBT$xe96vIH>vtYd-sAVs9#IQ z@%&QrP{kI&#V`3)rAq?cz8@g|ChJl+hD$2(CT42dn;pZ~%a<$I4(>gwWv8FS>W}5G zCn$79fDA@k7MU2J_iwM37GZX)EFB{o)GeiZsBiLfjVv^~(w^!-MK@omNvt(InasnD zM!l!r5Yol0tK1S^)TdAv4ts?KH>ZJr;NZ-EU*PJL;EzFjTOSAhpoVQ#GpF%eFAE*E zoS-(KXp5YU0T*KQNofx2c1HL5x>@$xbRWGLkQ#=U^M4ypQM%jGHe zgG*E=yKZ1n~P-BGD-e)OU<*~k^w)8F)o4wvT;I=e3GhE9@4!` z4Xo?U91d}qA6U_z;*^6NmcSU_^iK$_o*Rp9AB{*inBwdc+U)o+fPb^2MwdNvyTN(S z&*8y(8f?2cX{EF^M)uXNEl2N1nlPq+UA^$}??2|gd3Z8+??y3>adSWMSMz!%hiq0z ze7;+S%h)L%S{Sy(DXrx_jVm+>-9Lob2RdbdOlWJx?=>mms9gnO5XuJ zQ&Fj`{u7{G_}X1*YSHQ7QJ+ws;C5t@$@GC&zcG3s7n|MYjp*wm{7kP*i(o9GN_}!2p@7 zA;FKD8a;{b9IEB#l~6~_2+Ki}WF5_MU!^?WrS2>i{k7lddwN1Hgav&p;nMjK)e!Tk zMl*dZ<&dQ2nNrKn|Hbu1&O)5VFI-=|R6Q%)dV0<98ZgPxjjl2J{g*}0FRgu0ET!A| zek`=s*5{15)hKIWi(f|7BovDYrpm&ND`zfu-nRsozf?%QV*JG}Lps>xkC0*Z5IGL@ z{c8>%gi9|}e`gu{&FBsN|JwsaMx)lqT|(h;9+**}HPXih@n4=0{t0x^A-$~kpiG{^ z{vR*c_er>&;a1|W|E3VFk-!1HBXu&@>rd>v1CIaen zzhr?kB32{S^-&3h5A`=UgVpiW2~=nu-Toik3xU3$8Mht-I{xheba%^2FF}+bdNShl z^P8zcGuR`E|9ihay9f!eSO_IfG$Ct@3yQSjtXiQ+%vFQouWJsZ~WE0X{UF(_n$(pgHf8G9BSHrPscbO(XDUSWouF8wPoKD;y zTbk?>I#@^IZm!nvFJFpw!*bnC1;Cw&f6h4`l3ZL2jsZDSrX#yO#AF+)zA6EdDICc| z>~?gZOF6L_lZtZqes1DfokEc2u*<;IudC8I=J(~8)Vc3yrnCB~E?2MAJYav7&Iw8P zBdaM>8Axn$f3;J1par;GdF$)(CjP65pLwg#<-)^R<2|}xr}JuTedQ*Z72Vc^MK3b# zUu)EN|5L=;vR$4xPxAZ9#}(Ki}K_DFs}Hy(TQ}+hCiqp!b%B-rJ??*BXWh*xCd3 z3C(i*1@t~jJ$<;j_`;OnVebu5R=^jKHN<}AuUNWh-sk|NN*o5=m6o`^#pZZ{%NUv9 zZ&91KenEY_5lVOPI^U)X?WcH0u{*B_{fq1$e!tBNz2w?7*|x-T?^t))s-1#TnsA}EmE(W<%%9D zdsZrnb~v43-|=!0bGMfCUE`se!eH2D> zQXPwQWnSt)9Yb-ZO6ycH`hB7y(@St~ltq2i{JB^ra;J$O|2rX^j2JWUxl4dH=1{~y zJ|PsdlV^;R!&e?BzV?8?Eu~8X$!p&`MmKr9ISt|)%Z~5et2HVw6;&4st}EeVL45N4 zY>0X1AJ?WUx}(%+^^QdlgfRM$>{XT*#y{ZWATnSu!K4UB6Pcq@-0-RUGae7kAy4O| z&&_q;DlBg6E5h*osJ@8J0vJc3%~f}&dtYnDSX+qdJgQ6#+fm9_RIfA1R#fM2L!-9y zEmkR}53oL?koDi|6=>4}oXjej6P6_HQD?4{0ts0TdATx&sr+}IOkteBW!KQ(qiR!* zb5lJ6TdD`cpIU8|+vyqoc-Jvn-z7HUup%B-yPBZ~EXVDeuL-Mi+3R1|z4SftUYidQCja3sE}2P{2L{ z3oh|~No?ZY&G42&3Zs22NGz|TF+Mjk_D2>vbElQeN%b(Q2S_ye{kece$jbX7$xLw2o0 z+B0fk-w(n%uT0-8BEKnm1`L3^Axl}ux@&h_HJykb5A#%9ZM6J>ALTCN6t62PW$)yV z-o5$0FA~{~c?zD&=bLY1Iiw?2$&4P9f$k%tbXp1|j~{vS>X61?mss6q@ZR#2qZZh# zg`;k=iRygZNuedCD&hOV&xZ1$4ifEBqc;Tlvv*zwvCDT0RPd-T6}Rg$sQs2lndeG> z+Q>QTqqe&MYFyB-z__(Po)r(&keC;N#c-xuR1|AuT++FZ>Q8?u8i_5AMQ~_v4~xj> zdjpABhk{O+SJ|5RtjCG5s$}qi{EEy+ZQuD;q2#y6mV6(0I32dhnZ10;-*M)adYUh_ z-m&**Yda;g#<{O5izE&gCUm&jX{nbTau&=;CYrk*j3+*gjwoPIKEkAfRo6Oo+b$fM z3SLWp&Kit~&zA1xf7;(*Y@Flg5n`EgV^KAgZuJIExuDxhpBVc3!^H0Bm;_<@_NZt0 z)G#L-$&t?exfEXT_zAMU1>oGOSR;=A@Lm2F^!J0S(0MtCC#WIF!81s9jaqk6lMVgU@RzQD$CU zM3DryM+K*mC8f5Tr?)V@(Z2uJkZ=uR&VEG%UVguxAX#Fs!Pmyp%OMmpn_@M6L#pC- z>dJkluJ0V=s)1vG58Z?DNyRbLnmO}h_eyQo4#z#GZ22pQYT}?AjD>!frDKL8uAYbE zH!*Ixw>ZVjJAreo=3Mf`H#rX^k4KyU1xhWf)JACw;SIM?kuyQtEABGJr&-2?s3yr&`wH9u zZ%W1$;tt9IXFEq^|G>+#fZP{&;ruu6_?@B5*(!bT#EPV!yet0E{ zF?%CRtt0!Jib8|M3&dxal+18v#8gYUT@#aaI3e2C1e5%EH3=p@&5=60Q$8zKg8S#| z0Al7uk(JjzSelmDhEyMd8@P&Jdr*>P2r#0P5vwAT(7UV%Nq@_%p;iGvPASs>jgh4|FYfuirCT6-|Jh61_pUAp7yiU z6{-_PIY<@r~p)faBY^ zy2=e}6I0&h830;EiZcoD<)30w#G`n5sL(Uoi_oh_Vo zONMoPBWvn$T{WM>t|Y)}G7xlx5cmA<(W;SE8c1A!pJ6$+v&lRPwHio!;qtL~E7zE& za_yaS__px)g#&?L9yxf_3OZd^MdPbG}ximbgEh#9DW6l*@Ib6?j*S z*HFKgr|Fg$8YM2;nOZbcm8okj59Q~8d#|x#9Hs{uisou|N4r8sax#_n*0aCoE$x%l zK&sG$_aFLKMtR(3D^<9xjB?ee;?KCQ=YnGxBZ7`z$}h2Bm7M zbw?wFt#8b;E*#JkiZmuw+)FFaKImV3-RT+&csZD$vIKt4{d}?PJvXoCvc$Ga!PZU{ zW5q<|wmAa~)v;vJIoT^f{gYi%4hd9g-(3u~j?Iv=n{dn?sZhaDA=-HbgcqD-<6MyvI>l%o-1_@A-PNx^dZ0VZ&^aEBA+g0^Z?K>{bs@rXOu1i(^Ox4bV$&a7F z45D8Eg`%JLA@_S+pCwVp@;*vss&5vlo1ff#CI7=OtUW-(E%CH0bVmzFm*Y#o4O=FN zp{-a5kURj}G_-m`2>?B)ID*q8&U^!)g8QNw(VYcov0<3Z2YAYC;g7BcJ4Qll#(@AA zCNW-?qjwKpE{?Ld-=`j!ot~BNNVL6Bp_j=Qdmh?uJmmY(H^mxI?3D2Zg5@_u&#@R! zd1Z*R`lhAO-J0vOKM4lEsN{F`y_K!LS)x8yC9)&BmO9kcW0JA09$>bysLEX{uOj<{ z>2UnKzwYaI$LEnf5@u3TN}Uwt2zH;Nad!W|rb+kzyu=uY&K>T6D9x~N4=ralHJUxji1 zyN%zFv4Hd_L8Trg8p!RHGazPH!;nQqYc;V;S8afV+B7f`^Drc|`s1SN`F0z%LtC{c z&A`{`{tQ<)>5&()u@?C1`$+?$TyvL@4gsR!g6zP{O87+XR7+Zl`+}J?7Y-HB^vw=M z*>ygzB-I?PN&QQPhwz z?k;oD`rNV5`&q}%AcI^ z)pK~EqaAaRviYQnG*OK-y!LF10@>WH$H0SD2JT8*l2*iOD1khyqT2B}9# zAx>X|5F=;zmd(Wx+3xG7*G{TXPQ8o175UOe`_NXq=9;-#D>4*=(%8>qXqxRF25ix8 z#G2`lEn1?+cTe2kcbvo0uUT}ju1u6YO!M~anS%%lw({<;qC^Z-SQ-Lg%#oXPUSurH z+&9`oIZCjU!NUxsdUn;F9QN4z?P8V+&57z8RthMt@6l87+)T9J#8X0jPJfdLjPUrl z1S_3(HzR(UWmW(Wu=WXgF3~&(_*6c?<9^W^*XSiss3%C(fw)+-8+2xMj@sfMl%j!8 z4!HD)d-K0$%=Y(fSdTciK*9L_8q@Q%rQ}b_yCD9GE?4^;2Y?<^5@O%aVhKxl*`=KY z>dG+w(`6=(zzTNC@ROJqsfI4*r^ZODIw9a+ekll=4~cbmt&z|kG1!B-%4+VfP`r*( z@i159Ce57&VJ?l2)4urA0+LBE#BgD@`#jAkFCy0_C6CW4SReX0^~cs5z;M4*5N2n* zsnqF3p{e;WMmuw3GC>Mhb$motNJ%ToM)yU8CJ zL4BJ$8w&a+GuI+F8BoX`eIgN~K`B$IA!D1&8GZqU*)$Dic%d^|(Yk$DfBsWrwE=$V zirNJ;@MZaSyF|^l(3TdMx`ocRG?2|ztA?E?rui+xHFb|?UiKMigc{sF>jGreD*3ZC?j)S_VdGANL@=mJcJsx#NicC{ zAn&Vs=Ge`&XREfUt}BN6A+#Xf<`Go3}~`}R9*AzM_f0NnQn^Qj^2KVm~cby3za z5kDiY*m_dS_Au;PuXzFk?XGCW{U9puY2xrv9)84L)vSReV%?ISNcEVDjOCRognqvT z3R42Tc(51x(dmUC6A=I2l$#d66o~g|5!_#D5X!@he(OuIc8j3O(=PWblts>2Is_Pg zAw&}eyY};v*Q3*BhZV@SldL$(J6S)4QKi!^UiZ;D_gMvv@l^81d^@MlO@^zprKn}x zU{pJ8=W2cq#?&$K=mQijdYn4xqr@AD88;o za#~>ssKZ!HwUri1T+C$duiG^E-;5n;iNzc{ykK|jN;JvlG-n$~=$T1~W1i>r1*wRn zv-5(#)9n7 zE;D6whIUSisrdhQ!R1&sLiNyI&B9(3&tVevA*Z^{7HS+(7Rp*SDUKH`pN!mGXjD=w zQipC^FD@d5a$T>HR9mXbQ zEc&7#(F>3p!F9$vRp&S!G!+v)XmaNQ6C3%(xEfsL4?iC63AvpQtw6z@lMw|CTEMKz zDjUA!X-bujfDYu9_J`4Ww9^=U&<;$Szl`IXXY~aG{8niXhz?mw;SSVmr+uv2d8N>0 z>rJ_H`;xHTn1PDfwJ?Bi5!N!**f`rKYFcHeg%v4<2YcA>*;t%ym9AZx2w%73Sd&pjX6<`{n9PhlOX*9=J8-4k$pm-7@h?omqO~_1EpMO53>V( zxug4Kug`q`ceNm?AS%c<1aw9gfqq3Lt|-;RQn$URV=0BFt= zp;4@_q5hqOD`l?Tygq{L{nhB0}&Nuk{@18yteV)69DQ2 zOO$YH(LBuG*Kj6{ZB!A5X`SqzMRGQ8DmvqDS_>_9&^FwtKF?4-1UzzAp76WBknNp~ ziwYHV@`W$Mcd@rAN4$tkjwbypJ~%+$CkdA-#N+xGREVvHc)oQb910Pu%YAAVXz`SF z&}F4Iwz6&yf-M{Xe~=7UNg~rBX3>KFYePT_#cbyB4GsX$VDU8}8 zV(D8zC|pQh68BP4eXC@I!_l;?>ifd>lhJjz_wVxoDwxS&feas8&ZUxU1*O>69>=_2 zNx6YQ3niqk+2mr}iSBzD6D^gQLy`VX9zpze+>D8#it`nX#MP7X40|H0%ZcZz-$X9u zV$Nzx*gDehPC_$KyEk*yD?Kd8Cf3x8szFA*mLe zV2M%A8T(*qPAy!}kD`pB?{y&>zC+_(Km=RsLw_c5VXN#ZiQo7N$~j zk086oxbDR_IirOyBljSGZ3M%^V8%rW`Bx+3V zAl$YyKQbC!gD+K9sS#xP;4xK?184FfTt)ZBsRgwQt~Uz%$H0oSLlPpQGCrO5BDJ87 zXBH6L<+NbIg%Nk*+1uWIo%u=9_HD~$y}V2{xz>7Zpa<_0-K#j}JX95%g=^9+0YBVJ z_^a#SVH5c@8&O=sClL5{f6cZtbPyvL7nM%Ga5TZEB%p`&95KtW{c|4bfaE1TWp>NG z^@whj{)w;P$ojczON`#2TjPtZu>#Fg1vv1gQmm`|k>I@kbALbCawS_1*FbhNzk;Dd{q+9oM>Gv2|nj zc)St|u4?1^iAX-~p6jYw{eexxv`@pl}h z&Isc-Jmf86VwOy@`3+_dwVrqRg@7CKH#GFzxSHX#QfTYwE{1$cH?_1eTK4^KV+T6h zv{u+HB9sGs~86GB=YM{2!RqmE9EXY2CwS|>rEu}S-Pnq6;zr?kN z=vSB-0?lgG_1ZzkoT#jjcmw*ib&0014CKCL`yKu3wB^{iTuNH1UbS{DU;NVV8j+zE znoAftUe^^Rlc)W)kTM6QF<#gj)H*%fuF<|>N+S41;qY~Y+G?$`d^gC!^Q560>=!|o zJL>9F!03KWacMz!hs~?_}Bm;(Hn2lB?Mj4rQ}Nyi8B0VpYq#9&VXsJ^dnG19&}1ynm?^9A&?}5(^graTPAS zK3L`7)WZxwG%`>JqYX+1+fO6>-jWOF5{|wk#WoaZVCEgV^lc&)Tsf_{1@QtsK6IEK zVy@+#_F1ljj-|aR9(TI_+5MEG2kqhL-?_trA74FGoY4{d&ZM4epd#T96?_7Kr-fGh8kNk0gq6j`R{>)&; zXqGY~(DaAR$I-i=i!}KcoLXND2V)d|=V*L%VDGqERMF7_TLUys2tsi`_~rR_&Yn=`AI@6o!R$9CkhkpRmrIc zC3dLbl5~lCpS<+B^f*Unt|t68;~>o$sBOi5gordPFmC^gGF-Dg;)y8_S%r(#+YnOK zWD(oa<-$kCBME|*QP~%{A^zeb(J^ZK6?;$oS)`Enak9gWM}Dg*p_U#Lx4XxejA#C` zccdmG8g1;a48>v}I!2ejG**MTOf8Oka7=U!&=W*{eVc0#qsW63?GV|ufl&c+BhL5BV>$#@%mc@2q>-?pNEYlAw{JSe_ zSnUkWiz^1->!A&>s;jDFUQ=&pyey8AjgDPa_P5*?V)xxhi7u8so~?w0EsMUl@bnUE z`BcWkYikT1boD-u>g(U$FEggjV6;Vk!(?ogWWMO<=XTI~#=L51vYm-s`l|ez-0n`= zfAwEZk3Z;cSP6A{-6g+xvG*wEi-hf#%qQQQBLX1A4pmFFHx~HfKh2KI)yxMRqJ|uS zQpi`wQ?Bp3CNn~-qvI3sv$qxMJHA48{{nH0e~(;zmckb_xcPte_TEuVZCm@Wor5T- zs0awC2uK%@5~|7pM4HljktV%&LO|50G^O{@q!W4#0THA_q=p`PfDi%%2uUFM;kozR z_ulut?T>GKf6l$vnrrMm#+qx+XFhYTeuF8o{e+GjndTd_NI154&2^;v`lMx2w@<3T z58V{Zl~>X47GW7ex%2n2DCTnYqt$QGdy!6$ddk5bCj4paXWm80m!TP}(5{&th}uFO zdSTg}+8iF7x03JRX?XLUATF7th)&TvMXb+CaAs1Li_hvZ_RDVHN${!=Lq^d?0H7zi zYasn&wPIgOZzBx__52gq2(!=+&T6{)D;y!!G;=Zrrz*%}hwl&vJ9}!qRzx$>p94hs zVy2xEd9JoHB+zPF18Rd`O{M%}+PQ4=LhwNw8!Kxy4-P0q=rap;63uA6NwuaPN<&EME3AQ8a%4?*s>{b$4c+<6RDBmh=I$JnRGj_u5Z zDBq`Aj$q=Xsl3-fh~Ly+gnG)`l=NJaVud76P{i3ym>0~tZnBm(71QS*;x;`Gh05%Y z-F9zy@Jv5X|8eP(IJBIH?A7K0f9LW|!jctJeK}4`KP4-Gk~uVSsZL}_B9`&E@5ZEx zFz)Kkb4URcFs-6Hc~+TmM=tORtdS8SIwn7_!`>~SJau(X$&%He`tm3ELnpQ)Sm^9G z*LfXF){4s$olmis%Uy=;0wUeU9VF8&{08r*c@4g0@NSp#ul0RXM^krtI`og_PX=Fb zKKoa3+=4fKZ{}5_3Oe-muj^PW8MdA5CzDH2=IL$%-g&$J18=bE>qV`& zxA1(<168tkZTeFNd3CdOdG}EN^pDkMIbqdi&!yXQ3h@_}J`EqZX>tKK;0sUiz}(>$ zK#Z-i^qdKMP*ZJs0rmE5_pCF2d23J*)K#SgcF~HSzZ%|2OD;_13I^OY+N=FMb6xy0 z2{(&82Nci3|0#)#t=pOtSSmrf}CouHfl$hmfAE~1ugmI^&>1^#5b(l$31BI_?gy`3% z%^AiU7|XD9bUkUE93@4L-MsyOZfoK@+mD{l;L&{WY8BR6zKEnR?lKTTLIU)}y zvHpUQl`V~iD%yBLmPc|Ce{ZSBKH$s43OE=2+-hrzeLF>T>naXvUYJyvRE<=Fy6FmS zd<}v(uMOPt+XSP(9b{tKR}S}DW;wm3s{LDC0&6~s4!Gcp(2aH8cD81vf%O?I{YCMc zSih9m8fu`0wwx_8C_z>cME8T>y)3T-T>^XyAfyj658jO44cKkO#LKyB`zGp+ueu5% zEMU)nB`Gv4pDRj4Cx4+cd!=r=+{^z>Jc zno0y&E)wrGx&gblkae%6Yy!BqGX4Bs+MWEMq9q6P6hA8b?1u`=hNQ& zDUSBKe9{^A5)3_gFkkS`M*Ob{*PS=Ao%y!g^P4+GlTY_?y?PFy%E-J%&|*GlFM^LX zcRtEUH{d#_$xKGi?e{Ml@C)N#Gb@q4CpThFxOKZ?HO?%iwYCoE=E z?Bz_zYFGpJ`^@3o68?dNX>dV-AN7%NyvrP$$*5;BK?%=Ou(cnoQ#&UJ>`v992vU6~ z(K|A3OGj%7^{S?mDTit#JEdcip z*=8%5TXVGI*_ThbhF%ndBFqH}st5l;#TXOO2o519AJ7&4B0jWGR$)LBz6SWmgT%7}pa5A@3 zgNerOS@HEay`n2s`#mh@x~lT0>q@691WhC>OO54u6{FlHzw~qmt|f^_mIiYPuD^fU z36K41Pg|!RooK1zM|ACp-xW*L!=OYA$SOwqJ{eU}4o&@Mk!a((PKW7BwmMBoKEsAr zx}Yn!He~|1KYhsI8jZJ}iqF2s6CWuZdoSB5tRd$8ipP__BN-2zeuJKE(q_n* zxF^_Sl-Q4T3&|AebqGw~!L2gVWT5Lh9F$jh_JVkvKP{W^+nZg|V}5R-XJCxHw^)+L z?I_%W>mcZ)D`^}LC)<6$DUE`ldZ9DDBA5(~E zB)y4Ms6^?dF2U3?KZW!1`ZtC&-H^~}(fU#Op+I4YQ?mYfu|;KP&8(2c`x)%px69T| zeyt7B5*UAgfJQX3y?G)wSpv8LHc_A}aWLWdZj~}#vETNKZf6&)vLxk>;~@x5o14}* zEu*`6@LE{I_^xj(_>BE^uoO#NSP%T(dQX4|$b{VHT8*#2{P_Gwu0KZmB8h*Kef7K7`L-JY$Rls@cn3~A2l2&=eZu`No zR{=OH;O$@bkzup^o!pOG04oH+oH6Jwq|>|?=DT@TWhR{8n*F!tv;UUz_OHos|9`(h zogd$?mGbFG!@;>%|2PFszM}mi&Jo6S;Ljm4M@#qT5Bbmk|Ifd7R1LF{m3ZQjY9Ftq ziYURoWR*;4ZOR-e7?in^%%0kDWT%v7kfCB%zK*JVpye+5VSsk_%>bD}3paPXO`M(< zM$LtgYCu5B4j{5!U^J<96SaXF8iAqYW#!=Hf~LKl+Lp?e!xmC)q3Y$0H=m@J6a|+T zz7ho-@3zi3zf^@~F}^yszhH9tTc?V&>o&thkjr=b}Ron2`psFPt)RUNo|;*0Hm z>K^>4bu8mD(^QO`qTH}wUS;&Gyq)-HL*atyYjzV9J~?^+5rapG$8Yahz)cgD$j8?_ z&puK8Sjrk@oURB&JlU7uz&sHg&ZbOLz6R)<@z)RhLCZCWFl_!=4PKqh8ssmf-n>6R z2<_$9JFE96L)TWx3U8`eRe7oRlI|~pE?em}rLO@#>Q&xMX|2#)|z zo72I988sXh-+g&zU@^t|WDhm7@5deX7kV${E}hnnT~$%cyMI&hZP^;j7QdKN7A%ZY zu_#+83h(|&IZDK@mBYbM+@q6kD}^nk)X5!Y#LtO|6iwcGt$FBt-aO@SV0Ppr5G<`#U%4{CFF&Xg4gJj7qlce*T5og9TMC{OQcAN6PDp1% zO`_~>wv?AYZ87e9;BDzjW8YbQ$1j-)y-v49xvUAi9hfigJ5Wt#i57*vFA$E-l-ttm z41>UX8dy;HDTm6f9G-PAy0p(pQ!k^gu&)dmk58HiOy1kCePLSXg!w)9>M=Y|pO+^{ zwXoL9CF6oWO$?`8%-%W3kKg6PHF5V!rsDSAAc|(nzH?ku@KFQ34h*QoiUcl^Z*{%f z=>Pd_;ltTUvR!b;Z|Z%BnRii9YcCaz*t(Rx7g?G}^atODA9;OLPp&u|HS->p6OLhu zHja4K=J}C_Z%K!a{cMCR4avlC!l^irW0v)ilw+^T&4>ocS+Jr({%iHQtS=gJOrFAU z`><|R!hDTD9Cwmx=JB_@9o~Rle!+|GQw0)5&$58y!Kkm;)|8;zyXj3ob7H@{ynfm9 zLto?G(f7)rNpp+T-6pzg1vUv0j`^io8Co;dkD2nuhF-lna4<6+$qb^8(rBDenK1CR zkgj|^)$6tC_Nr2S5)pqsQ)mAuHcuojLJr!X{w#aZ%ciozds|`Q9Au<*EuI9>`20bY zk`E+{s@WT> z6>h)Ihx9~}y58~?SBSDn==X%(_B4>zk$Iq#^Z1+kxzoV%EG zre3w-YXYF+RKsb>`Be^A;Iy9x*&Yfl+QRBPru+aI4+2NA$osJPS1hSF@G zV*hs5|5S|0kK#F4<~+O|7RmYBx_LkKd-UI4GR&X;pOFmnJKO%Ux{)^OP1?V=C=3)GPB3fmc{X~CU%iS!w$l%O_j{#9ZUFRgu$cA=#b9mwc z-w?F94+5R~%XO$Vo%#Ai-i z_t8VJkZ|P-32sbaPP2M%IX6tsQb3AA$KP1XB(U`s(W;@>mN9D40H6N??CQ zm|Rct+uPf!XVB8ZQHq3s!DVix!Y$tck+jZ_K&{>YgY0f%}L6 zUWH(fuj5V_Lr*!dtR?!G1gIN~M>%QS#E<}YzYF}Dc%Nm)iZ)hJR zHIes;f3((k`Pa#sq6U;J9FrLZO}9Qm6gvf5RJd%-axG4_Z&#Cz--)^f%CaWxYBoOc z0_82Mr^?db<2WDpe7fwoMOPFqhTN+PHa13ojZF&vczvsr3N0WBccZ{H(-EZ1M!8(@ zlbG1W6~NDy%}(DeV$6G&rS1!|6=r#TI=9#m+<8{ZXz!=SDM(e>nfRx_&&nm@I(~{q zgI7Gq#a}lS_m?NeZ9ZmT{mo6>bWG>n=@s54c=)VQmqR_x`fe zqm{4V3%?G#6L#=F0DPLiD_XSZ?=5FQy9YU0&xB~mpx3?1B9bX%Rq+y~;o!l}d|#%C z+7f3OjLF!cI+Dix;(XJWPqLqS=`8}JOpKd_jaue+YmXTF#C?Qc_ii1_))W+7W1+{$ zN}&vw6Lb%rt%Nq@tlwExU-~^n>@M|gK~K{OLxFwptuXTnR4QDiM~^$$%ppln^DhjZ z6}FW5k)s`lFY`Q1Iy1~WKD|k_uDCG%q;;Hb@0XVWGv?K@9}fi!x;XE0j4{ap)o#!B z=RXx0XRa<=R)?g;A_m?uY)wog%LU-P8ZEXKy&|rHU>(|~D)R9AT?b7ET!2cSk@E!q zylBBUz#*uZU_h8$g#r`#+f~ARZ!*mp+^K(3fbw@X7wG8{7R$Km2|Y2f$l8W%@!7ZI zKCds!-P>}l&4-PqTJ}2mUZ3{4&XJs+thKePCSuLp^|8ob^b@13lM@br3C`$n3etgk zuz49%)%aj7$V%3Uwg6wt<&DE@@aWRsIYa7~FEfHh6G_}R6|2WSxJPu;WK3<$nAq7> z4*T{YoQrN((QwsM29m2TarKlo&6Gd@S=Ia?Qo}Np(GMmZAQB5QoG^D%85>ESd1eMvt6z2y2pjDP2j~ z$0@p2F5RNYVe#6cg&0SUgg{qN#lc9&TO`5FnMi`gnrt%6SJldkm@z0h17=|Xl^~hX z3Ac@A^MjE-O}Y}NJ6qVr9BY?#93L*!M)v2pELTjRGVys7t<@mGL4Y%itXADs8X=wp zdTxPFiEW`j8Vsuzh*%jTtsXSG_#VxK1r)7lV4N1}c4*8Z+ch}rNj8)8;5zf(3vo#Y z)p0v%p{!^Qj!o23Nltn1tf z#)XbNKZwPgz+4kss6ffO%Q0k>pLnMRw{dO^WKNtp|IDqV9Tj){4L;LrQsGBMH_*65xTygD8)9UK0BO5`(a?eY5?gCZA; zl?Fvlj8N8_$uKPxAfybCX_<8<#lt=Tj`#LmoK!=o_i(54wp%+;%7Pb)>|fC^lLz@8 z1VVefqoHvK^|f?(E`nwq5La+#4m`Lyv2-1q4W7L-C)ZkWnJ0w^F&XVu3SUq*Kxx~es``~3pfwtQ`#Yt%+(SsS95vB^FWa4n zOou$uMVdAE6xEAzWuOA*JeDbqgP50QX8=eUy{#ui&2C(*ucE!hJG~%Eqjl~=|Gv%h zjp~$&g6MQdl|3(Vrjy)0e$zW!!MSJ5@4ePF58OFb@Sc@;mAe=}N7$8-0~>Ic0vOPaRl zE?H8mz6btFsc59vrmF2A-A^wn!If#DMt(Q<$3qq&PJS>Y@`PF~jt@L6bgTt7X}uUG zytVO)bTT#TcMENL(^R$96svR)hxs;CYjY@%Zi>~Jea0V@XmfaKpQpim)@X{m25Y|! zi95D`p<(O`W`IXCoY(wDD|MP@-Wwv7G64r1boA_pYg;zgHVxMCL_cJiWn{W(^_~zj zkjh=oU~!8kln`TN!Fjvc5te3wTgsw5~FdFGI?iS{R8f|+)nO-e)wep{r2ev zEI~5=Ju)%q4N#QeIC#m;vl<6G((a$g-OSb%O+9R^7&5R(!ZbN6)Yughrar)>jeWc1 zBuivU!mtI`Tb1BXR~(i>tX`gT-W=XR~>*OO01y)L&b zcpO6fFaMg(KxtDrq@m8AO#L5$nt6yug3|o&M<*;bG&Wa>sH)mpCp>NHtaM{usjNS2 z?08r^$9Zot(c5&iZA0#L_;p0y%JslCv8rBW!km}q$eoXDgFR!oPh~69T^YD1c$t}# z+vq<)U9hNr853fo^L>RD1zBK>n!FGSW_x+vU96F2%fS9(pJz%;Heycp47t9DP*3#@ zPJDF>9g_LAaKl*Lr+ugZ^~31Xrp|X?c_8}X0CRa7t#d)g(wRP*Hc|HuQI^~b5wsO|WVNM74#^K?c^=o)9HsY2`H2q(ItRde641)m2xxQ~#)i%rD zP|W}b+sxmFWds&L2DbGdtGXh0AFNMSw7tg<1#sKI_IO2Bs%>`U%1xSJ0?o1t_AQYU49W zwdtb+(f%)0beOF&?S`*7{>N_b6^U-O(;J&dNRdu9S21><>VR&Gf{43b{f__$@1sN&TDlj$K)nXVr*DtZ{US?k?f zjT=YWoy95&Vg;QI@iz;`gSsZ{4iW;Af(f&`Whk)Y6!C|ta)>N)ogZEODxK~&3<4P7 z%?vLhZKfz3+!%pDRhAV8GW&re^vuwg_W28dRgmeCj`K8#r@4_GdJY4Fsv%cH-ue9N zt@982=ud(Ahysr$#06Fd-)o)oR|uQdBXrOK0u-Fp4hoG4Efe3qgwOX*(44{l2Z!q4 z75@Ic-z756M`<_`?(>dBV57&HO+ z738!0doS`oD`hcMxIP|!tKfK|(0)k+@2rjfQYCa%u07!Tp4`2Rx;!2$W=3{t<<=G+ zA(r&Tc=_DbARJE71Yx5RSk&Cu+)xlXvmqC;+4#AfoFciB$yGv%v`lKs8I=Yw!Ut`C%^^R`sv|JX=UMTy|vw@EpP6YPnF$9jxIXHO%Ute$00zck! zppuT3ypok2iiAOvtz)g>1%9nS|G+?kme2Z<6VMvC1KfAY7A>TkLB4tC)A=Mrg0HCO zjd5s}(Dn-^U#UmD3O{RWcy;Y0z8x2@2a433p^j=W;pGoCWx##R=u9NpUX^7V{gsogQ z#j7L&c4nq%O(Piqw|Nr$P(GUQ5bo#Kn1mT6%#~j
    m-%c5WsfVw2MvGecM!V^jT`RUb#TZ?dTzeUrQN_vg{985 z+y`+Cy9#dvtsbb?e7)a_@-R*fZ(lh0KQUm;_2GxoEPVGX*SOtcVD^CHL6!H{6=(0E zt&|+W1`LulFBG3|Rhc`y&VE1Fq^5r42xy#csr4`6a{HQVv?c$d9>BbH6Y~9!{sm<# zZ4-4?EGMLoM4eMQWdpKFj&xBZHty8J_;BVdXdE0t)!6@E_j) zl>NOqHUt0j1?JE81v+)vm6!R%e&nr8m{}sBRoGIumGuf)r-rBoSM}tZUI_?y{_SLO zn{1qyW5d&5E(>B4rB`roq70K$N7m+@l&isH8 zbpEoJ*Fw0AgoK^e9NBa$33fR1ssnWqZbyg4b{DhunaK;|(u~cYXXJcyC$Fp5-W8W+Lrr~b>w<$d4XaARH_2-G8aM;R2(NllH zfAix~sFa;hxwEXc_N3I;&rpvU6Xk$S!4RPxwcxqaC!H4s){_gv$AW%dsNbt^E(6PI zHWNO~JbHG|L)rC_yYf~`qC&94^5tIcb;ic(RhTTN$fXVfQxmxShlcsb#n?gpQFMF} zjx`M-^a3ry4jEvg31J^#((=0M=OJLBTdN87yLf&8yduqW=@Fxp@YU6#o#MWST`ebG zNDBlI%~EP}E4%H!!!-k|S=mT;`L!IO&z#I(+8cJ%8{8b9AKv22kkBI+R%+NLW~wt* z6>VM(O*^QKOyUqF*VlShJ@d+*$#K$Y^BHYJ?pcX{YI~vcU1QYH>smp!qLb%Fhfl^a zGf$|WmcBtju|jXr=JR?lk3R0q9Qph>`7%fDjA(6HcX-_4^6ro2wY+Sy5I|`CgPG(EIRise2&dlIYCFo@>iEY4(_Wsnx(1F%#ui zx#HfDcoG9(rEl!6XB249$wPFYzmW^8csgN=90T)e_xM|Hn>)@ft{TO4{Z!B6v@>7& zqf^J^Du5a^jgcb({81=YTZi zFJN0fALJhEg-VZ~mDKY{tIUB4`ZtmYcEl5z0$R)+e|#xT@W+}}NyKh590Rn62OK;Z zKDjPcto%5g|LmMB*`L-e)9eX~$;qI^9QHlUo(-F>2naaxIU%HFr~Bib!6p#YaI&sM zyjbD(>f~1`#ul6SzgZVqgm&iYpV3jk_#e>`zBFE}{A8%e^z*^JMu&Hj2v0b#@)7nL zMvRSk@|^#bMGdCk41Rol0!9Dt@gbQ%h-F(>yaLvnYZoHX?0!$RQqha{Uc`QJbnOk~ zy9aR(EC)=h=|;8eY;R#NU`M<;7-zsP{UMP?FW9h+%vH>kw8S8t{qnoo>KP%? zTEmf>aAS5N`SGqBe>HlphNfV%xrELN32Wu)jTp58X*~||9Cb({M@6lVyXedSMpS+T zmcXT8OAYf60T=1mW!SVzJYTP+-QHl;bW+~B*N^mR;QD@M-1`j|cynWf@+u;1#uJHt zl|I`Y3LCX$asirHZJ3Zu9L?H>^dB#1F4KL_(CUvAcGfQ}_O+Wae!tmt_QVJ6L{?BxGrX#>S&gWJ6cbp zs0C^j=q%^1@B8TD?z$OgZs)%=YG?-KN#K%w+nJ{GW6C2o?!&87n}v94t*zEVLX?3U zMupOFn?*MVe9N_fUH@w}5UqObu4&)$2rPkM5b&NhN_7p80G@i6tuAsY+9XV1zxqZN zWl*v9%u8Dd7pd9{Mzx!E)jtm;%ZIe3+{|BHV%msf0T?s~s4jXBapz|d%evT419x$G zm3qhYNexvISk|4{6&3`^-ROCF_yf?!({z%+6e2AuU{n}s=+h}D-705QEeAa-WU5}7 zQK@v%%yb{8oq|}mPp?^MB)QB$ zE9jZ}1!el!_0b$}m`%)FJx|%ugwI_yGhY?5x47^qmG1Y1lM^J69Lp{~R{T~RINgxK zzf`Ze;l*#!ago8I{KqWVSE)Pl`a1JhO_a|`Wf#wE4c-}uV3ixitxjfE!$lQToQn33 z7{rV@`6WzRwZ@Jt4fCA_r)O{EtBSWAqmaZGV8e^_DM&-JD+X3lIp(Q}*qJ$_S6IVW zC^B$ki1%nFrNkK7Ifn61Pz$(;x%3`aShaKGNakxMB0JSL_jtAE~xieU-tH2*( zTrdfV@V}1=$h?893b!_%w4S)ddKL4ik^OvE!<-&@uC36ZPEGmgmxTR9&bvhx)YlJu zST6G>wH0KJkbe5A6c9^%a*QK^Q%CwvN_Kf8UZ338)|;->vpm^1BK^}`F1wVJn{qLY(AsNisyyE zaHk($UkaI#ADD$kvauWO>!oYV#`xQtX7@FR#QYJTgHn%#z)343!_vYD&C6<8Mrh2Wr2Up z6`mvxV}iPJeI!nyf(qRwPHny>rQiJuLndI-&X!VEB(ti z-tH5BrXh{Y*MS6*8}0h<5Ykj)X3ql#Jv$&M$A={fYsX)Ms0u9M0~q%+LuVo5G}vY$X#>Ngm-tXyTrRk%}Lbx zo^*mYXkrkNj51Fi4ONE*de(}Mr4RT@ve9r9ADRjwnm=(l%d24Zb@5QPssV(sme!4! zoM*b*Sw-`$$Ls6snCVsQ(gAS^Gkwx)7c=cg?V=JvR3eekq!03U4SB>2M70q6>XDGq zv(p2}W512>U9(_x5(1(iN42J|tl*Ky1g%=~A?aXcx~|7)_V6f3kJP$@Cp{a;h_1r3e}8-V21ai+#m^o z#v5qR>~RtrbZiWFJV~X2o{t$Mbg+@5UiW0bia+Xh~iN7&!40`!o@|?u` zLXE8@FoLwZu)RKwYy}mBG?Vv;`)&w9I{9X-0??6C_<|9{x_SZ^-rZ*d1(C^k^jX`2 z7PH@M!V?_OA#=f`y#W6ERs9m;_J&fuODoe071Z6}!=raf zNZGy}>`&nUQSj9L5$YkHdK8kCB}}Fs9X2gh)jataJ9sXvqmX|v`VsZcA!+;exI!z4 zlGNlS@?gx)Am|$BIP*1LUixXR+G>Z*#c51IOgYtKlZM5pm3%YDNP$ z05k_GHaq;XX1YNgDJ0`pUC0EuKGJ=(x5i3wjC$dSG%Xdqf0;TFEX|}6Nb2Ii2>MBO&g&CzQ2(~jDp~KUfI9$Mdee!pk!HG44mxZn z^zx-XrEFUlOj2JkSy*SkwX1cEa-=b#mT!@!hBeVd6+1mDOF&g)dBE-(^P9p(A&*$W zX%wL~ga@Qkpxm|{=gL$VF)Ul?R>Zag>E~*yY&nP{^(OYUI>pD+5Rbifk7y1&SKWMK zN+=PBWJqf3IH-^fa)Q8EaHy|3v+d(j6G>2%UK@_``^@J%Z!)E=6$g<9PhZ$l!RTdz zxS+%Ag#K7LmF4%=;^&A=Ehi$pb3vGcb(dDPtl{0ulnMNn30CFuWS1G>GQuWK&4Do=CXBDF2@NCb zXS)o>E^NuuaRl<^n(^n-YaTcL9O=E_ggb&MP@t8V{BVo#h5+)>mxzb#$uB4^ElaJ9 z((Il{n#G3kQdgu?_N3sJJg&9a^*aR_V}UZ3w;;V*Pn(9S21E#>)Zww8-lOU{wB_~O YnH`0w^~X-L^G8&cKCfs8toy0|2fdIP_W%F@ literal 221946 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 z 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