From a52e8e953153df4f9086155e0cf4456661b74b47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jarom=C3=ADr=20Smr=C4=8Dek?= <4plague@gmail.com> Date: Wed, 15 Nov 2023 13:58:10 +0100 Subject: [PATCH 1/5] dp_port refactoring fixes --- src/nodes/virtsvc_node.c | 2 +- src/rte_flow/dp_rte_flow_traffic_forward.c | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/nodes/virtsvc_node.c b/src/nodes/virtsvc_node.c index e0353062d..c957f12ba 100644 --- a/src/nodes/virtsvc_node.c +++ b/src/nodes/virtsvc_node.c @@ -232,7 +232,7 @@ static __rte_always_inline uint16_t virtsvc_reply_next(struct rte_node *node, vf_port_id = conn->vf_port_id; vf_port = dp_get_port_by_id(vf_port_id); - if (!vf_port || !vf_port->attached) + if (!vf_port) return VIRTSVC_NEXT_DROP; dp_fill_ether_hdr(ether_hdr, vf_port, RTE_ETHER_TYPE_IPV4); diff --git a/src/rte_flow/dp_rte_flow_traffic_forward.c b/src/rte_flow/dp_rte_flow_traffic_forward.c index 5e6c9d5c7..26020323e 100644 --- a/src/rte_flow/dp_rte_flow_traffic_forward.c +++ b/src/rte_flow/dp_rte_flow_traffic_forward.c @@ -587,8 +587,7 @@ int dp_offload_handle_local_traffic(struct dp_flow *df, static __rte_always_inline int dp_offload_handle_in_network_traffic(struct dp_flow *df, - const struct dp_port *incoming_port, - const struct dp_port *outgoing_port) + const struct dp_port *incoming_port) { // match in-network underlay packets struct rte_flow_item_eth eth_spec; // #1 @@ -609,9 +608,7 @@ int dp_offload_handle_in_network_traffic(struct dp_flow *df, // misc variables needed to create the flow struct flow_age_ctx *agectx; - - df->nxt_hop = (incoming_port == dp_get_pf0() ? dp_get_pf1() : incoming_port)->port_id; - // no need to validate as this can only be PF0/PF1 + const struct dp_port *outgoing_port; // create match pattern based on dp_flow dp_set_eth_flow_item(&pattern[pattern_cnt++], ð_spec, htons(df->tun_info.l3_type)); @@ -632,6 +629,8 @@ int dp_offload_handle_in_network_traffic(struct dp_flow *df, // set proper ethernet addresses // in network traffic has to be set via the other pf port via hairpin + outgoing_port = incoming_port == dp_get_pf0() ? dp_get_pf1() : incoming_port; + df->nxt_hop = outgoing_port->port_id; dp_set_src_mac_set_action(&actions[action_cnt++], &set_src_mac, &outgoing_port->vm.info.own_mac); dp_set_dst_mac_set_action(&actions[action_cnt++], &set_dst_mac, &outgoing_port->vm.info.neigh_mac); @@ -689,7 +688,7 @@ int dp_offload_handler(struct rte_mbuf *m, struct dp_flow *df) if (df->conntrack->nf_info.nat_type == DP_FLOW_NAT_TYPE_NETWORK_NEIGH || df->conntrack->nf_info.nat_type == DP_FLOW_LB_TYPE_FORWARD ) { - ret = dp_offload_handle_in_network_traffic(df, incoming_port, outgoing_port); + ret = dp_offload_handle_in_network_traffic(df, incoming_port); if (DP_FAILED(ret)) DPS_LOG_ERR("Failed to install in-network flow rule", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port), DP_LOG_RET(ret)); } else { From aad332641032f7e8035c09e0237ba8ade499e92f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jarom=C3=ADr=20Smr=C4=8Dek?= <4plague@gmail.com> Date: Fri, 10 Nov 2023 17:49:23 +0100 Subject: [PATCH 2/5] Removed enum flow_type --- include/dp_mbuf_dyn.h | 7 ++-- include/dp_port.h | 2 +- include/rte_flow/dp_rte_flow.h | 4 --- src/dp_cntrack.c | 19 +++++------ src/dp_flow.c | 4 +-- src/nodes/cls_node.c | 2 -- src/nodes/conntrack_node.c | 38 +++++++++------------- src/nodes/ipv4_lookup_node.c | 33 ++++++++----------- src/nodes/ipv6_lookup_node.c | 25 +++++++------- src/nodes/lb_node.c | 3 +- src/nodes/packet_relay_node.c | 2 -- src/nodes/virtsvc_node.c | 4 +-- src/rte_flow/dp_rte_flow_traffic_forward.c | 18 ++++++---- 13 files changed, 69 insertions(+), 92 deletions(-) diff --git a/include/dp_mbuf_dyn.h b/include/dp_mbuf_dyn.h index d1bbff668..4736a66ff 100644 --- a/include/dp_mbuf_dyn.h +++ b/include/dp_mbuf_dyn.h @@ -19,9 +19,8 @@ extern "C" { struct dp_flow { struct { - uint16_t flow_type : 2; // local,outgoing,incoming uint16_t public_flow : 1; - uint16_t overlay_type: 1; // supported overlay type + uint16_t overlay_type : 1; // supported overlay type uint16_t nat : 3; uint16_t offload_ipv6 : 1; // tmp solution to set if we should offload ipv6 pkts uint16_t dir : 2; // store the direction of each packet @@ -61,8 +60,8 @@ struct dp_flow { uint8_t proto_id; //proto_id in outer ipv6 header uint32_t dst_vni; } tun_info; - uint8_t vnf_type; - uint8_t nxt_hop; + uint8_t vnf_type; // TODO(plague) enum? + uint8_t nxt_hop; struct flow_value *conntrack; #ifdef ENABLE_VIRTSVC struct dp_virtsvc *virtsvc; diff --git a/include/dp_port.h b/include/dp_port.h index e7d0ca39d..f7a09bec7 100644 --- a/include/dp_port.h +++ b/include/dp_port.h @@ -43,7 +43,7 @@ struct vm_entry { }; struct dp_port { - enum dp_port_type port_type; + enum dp_port_type port_type; // TODO bool! uint16_t port_id; char port_name[IF_NAMESIZE]; int socket_id; diff --git a/include/rte_flow/dp_rte_flow.h b/include/rte_flow/dp_rte_flow.h index 4f77a3ae9..6cceed3cb 100644 --- a/include/rte_flow/dp_rte_flow.h +++ b/include/rte_flow/dp_rte_flow.h @@ -15,10 +15,6 @@ extern "C" #include "dp_lpm.h" #include "dp_mbuf_dyn.h" -#define DP_FLOW_TYPE_LOCAL 1 -#define DP_FLOW_TYPE_OUTGOING 2 -#define DP_FLOW_TYPE_INCOMING 3 - #define DP_FLOW_WEST_EAST 0 #define DP_FLOW_SOUTH_NORTH 1 diff --git a/src/dp_cntrack.c b/src/dp_cntrack.c index 9545f5c23..899036cf4 100644 --- a/src/dp_cntrack.c +++ b/src/dp_cntrack.c @@ -93,31 +93,30 @@ static __rte_always_inline void dp_cntrack_init_flow_offload_flags(struct flow_v static __rte_always_inline void dp_cntrack_change_flow_offload_flags(struct rte_mbuf *m, struct flow_value *flow_val, struct dp_flow *df) { - bool offload_check = false; + bool offload_other_pf = false; + struct dp_port *port = dp_get_port(m); if (!offload_mode_enabled) return; - if (df->flags.flow_type == DP_FLOW_TYPE_INCOMING) { - if (m->port == dp_get_pf0()->port_id) - offload_check = flow_val->incoming_flow_offloaded_flag.pf0; + if (port->port_type == DP_PORT_PF) { + if (port == dp_get_pf0()) + offload_other_pf = !flow_val->incoming_flow_offloaded_flag.pf0; else - offload_check = flow_val->incoming_flow_offloaded_flag.pf1; + offload_other_pf = !flow_val->incoming_flow_offloaded_flag.pf1; } if (df->flags.dir == DP_FLOW_DIR_ORG) { /* Despite the incoming flow is offloaded to one of the pf ports, pkts can arrive on another one */ /* So we need to check if the incoming flow is offloaded on the current port, */ /* if not, we do another offloading */ - if (flow_val->offload_flags.orig == DP_FLOW_NON_OFFLOAD || - (df->flags.flow_type == DP_FLOW_TYPE_INCOMING && !offload_check)) + if (flow_val->offload_flags.orig == DP_FLOW_NON_OFFLOAD || offload_other_pf) flow_val->offload_flags.orig = DP_FLOW_OFFLOAD_INSTALL; else if (flow_val->offload_flags.orig == DP_FLOW_OFFLOAD_INSTALL) flow_val->offload_flags.orig = DP_FLOW_OFFLOADED; } else if (df->flags.dir == DP_FLOW_DIR_REPLY) { - if (flow_val->offload_flags.reply == DP_FLOW_NON_OFFLOAD || - (df->flags.flow_type == DP_FLOW_TYPE_INCOMING && !offload_check)) + if (flow_val->offload_flags.reply == DP_FLOW_NON_OFFLOAD || offload_other_pf) flow_val->offload_flags.reply = DP_FLOW_OFFLOAD_INSTALL; else if (flow_val->offload_flags.reply == DP_FLOW_OFFLOAD_INSTALL) flow_val->offload_flags.reply = DP_FLOW_OFFLOADED; @@ -170,7 +169,7 @@ static __rte_always_inline struct flow_value *flow_table_insert_entry(struct flo /* This will be an uni-directional traffic, which does not expect its corresponding reverse traffic */ /* Details can be found in https://github.com/onmetal/net-dpservice/pull/341 */ if (offload_mode_enabled - && (df->flags.flow_type != DP_FLOW_TYPE_INCOMING) + && port->port_type == DP_PORT_VF && !DP_FAILED(dp_get_vnf_entry(&vnf_val, DP_VNF_TYPE_LB_ALIAS_PFX, port, DP_VNF_MATCH_ALL_PORT_ID)) ) flow_val->nf_info.nat_type = DP_FLOW_LB_TYPE_LOCAL_NEIGH_TRAFFIC; diff --git a/src/dp_flow.c b/src/dp_flow.c index d1bba88fb..b8de4d3e8 100644 --- a/src/dp_flow.c +++ b/src/dp_flow.c @@ -100,7 +100,7 @@ static __rte_always_inline void dp_mark_vnf_type(struct dp_flow *df, const struc struct snat_data *s_data; struct dp_vnf_value vnf_val; - if (df->flags.flow_type == DP_FLOW_TYPE_INCOMING) { + if (port->port_type == DP_PORT_PF) { if (df->vnf_type == DP_VNF_TYPE_NAT || df->vnf_type == DP_VNF_TYPE_LB_ALIAS_PFX) key->vnf = (uint8_t)df->vnf_type; else @@ -129,7 +129,7 @@ int dp_build_flow_key(struct flow_key *key /* out */, struct rte_mbuf *m /* in * key->proto = df->l4_type; - if (df->flags.flow_type == DP_FLOW_TYPE_INCOMING) + if (port->port_type == DP_PORT_PF) key->vni = df->tun_info.dst_vni; else key->vni = port->vm.vni; diff --git a/src/nodes/cls_node.c b/src/nodes/cls_node.c index dae874977..c10d055f9 100644 --- a/src/nodes/cls_node.c +++ b/src/nodes/cls_node.c @@ -156,7 +156,6 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod if (virtsvc_present) { virtsvc = get_outgoing_virtsvc(ether_hdr); if (virtsvc) { - df->flags.flow_type = DP_FLOW_TYPE_OUTGOING; df->virtsvc = virtsvc; return CLS_NEXT_VIRTSVC; } @@ -171,7 +170,6 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod if (port->port_type == DP_PORT_PF) { if (unlikely(is_ipv6_nd(ipv6_hdr))) return CLS_NEXT_DROP; - df->flags.flow_type = DP_FLOW_TYPE_INCOMING; #ifdef ENABLE_VIRTSVC if (virtsvc_present) { virtsvc = get_incoming_virtsvc(ipv6_hdr); diff --git a/src/nodes/conntrack_node.c b/src/nodes/conntrack_node.c index 7a7822817..ccad9222b 100644 --- a/src/nodes/conntrack_node.c +++ b/src/nodes/conntrack_node.c @@ -26,27 +26,6 @@ static int conntrack_node_init(__rte_unused const struct rte_graph *graph, __rte return DP_OK; } -static __rte_always_inline rte_edge_t dp_find_nxt_graph_node(struct dp_flow *df) -{ - if (df->flags.flow_type == DP_FLOW_TYPE_INCOMING) { - switch (df->vnf_type) { - case DP_VNF_TYPE_LB: - return CONNTRACK_NEXT_LB; - case DP_VNF_TYPE_VIP: - case DP_VNF_TYPE_NAT: - return CONNTRACK_NEXT_DNAT; - case DP_VNF_TYPE_LB_ALIAS_PFX: - case DP_VNF_TYPE_INTERFACE_IP: - case DP_VNF_TYPE_ALIAS_PFX: - return CONNTRACK_NEXT_FIREWALL; - default: - return CONNTRACK_NEXT_LB; - } - } - return CONNTRACK_NEXT_DNAT; -} - - static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_node *node, struct rte_mbuf *m) { struct dp_flow *df = dp_get_flow_ptr(m); @@ -73,7 +52,22 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod return CONNTRACK_NEXT_DROP; } - return dp_find_nxt_graph_node(df); + if (dp_get_port(m)->port_type == DP_PORT_VF) + return CONNTRACK_NEXT_DNAT; + + switch (df->vnf_type) { + case DP_VNF_TYPE_LB: + return CONNTRACK_NEXT_LB; + case DP_VNF_TYPE_VIP: + case DP_VNF_TYPE_NAT: + return CONNTRACK_NEXT_DNAT; + case DP_VNF_TYPE_LB_ALIAS_PFX: + case DP_VNF_TYPE_INTERFACE_IP: + case DP_VNF_TYPE_ALIAS_PFX: + return CONNTRACK_NEXT_FIREWALL; + default: + return CONNTRACK_NEXT_LB; + } } static uint16_t conntrack_node_process(struct rte_graph *graph, diff --git a/src/nodes/ipv4_lookup_node.c b/src/nodes/ipv4_lookup_node.c index 877643912..f802333e5 100644 --- a/src/nodes/ipv4_lookup_node.c +++ b/src/nodes/ipv4_lookup_node.c @@ -24,41 +24,34 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod struct dp_flow *df = dp_get_flow_ptr(m); struct vm_route route; uint32_t route_key = 0; + const struct dp_port *src_port = dp_get_port(m); const struct dp_port *dst_port; // TODO: add broadcast routes when machine is added if (df->l4_type == DP_IP_PROTO_UDP && df->l4_info.trans_port.dst_port == htons(DP_BOOTP_SRV_PORT)) return IPV4_LOOKUP_NEXT_DHCP; - dst_port = dp_get_ip4_dst_port(dp_get_port(m), df->tun_info.dst_vni, df, &route, &route_key); + dst_port = dp_get_ip4_dst_port(src_port, df->tun_info.dst_vni, df, &route, &route_key); if (!dst_port) return IPV4_LOOKUP_NEXT_DROP; - if (df->flags.flow_type == DP_FLOW_TYPE_INCOMING) { - if (dst_port->port_type == DP_PORT_PF) + if (dst_port->port_type == DP_PORT_PF) { + if (src_port->port_type == DP_PORT_PF) return IPV4_LOOKUP_NEXT_DROP; + rte_memcpy(df->tun_info.ul_dst_addr6, route.nh_ipv6, sizeof(df->tun_info.ul_dst_addr6)); + dst_port = dp_multipath_get_pf(df->dp_flow_hash); } else { - df->tun_info.dst_vni = route.vni; - if (dst_port->port_type == DP_PORT_PF) { - rte_memcpy(df->tun_info.ul_dst_addr6, route.nh_ipv6, sizeof(df->tun_info.ul_dst_addr6)); - df->flags.flow_type = DP_FLOW_TYPE_OUTGOING; - } + // next hop is known, fill in Ether header + // (PF egress goes through a tunnel that destroys Ether header) + dp_fill_ether_hdr(rte_pktmbuf_mtod(m, struct rte_ether_hdr *), dst_port, RTE_ETHER_TYPE_IPV4); } - df->flags.public_flow = route_key == 0 ? DP_FLOW_SOUTH_NORTH : DP_FLOW_WEST_EAST; - - if (!df->flags.flow_type) - df->flags.flow_type = DP_FLOW_TYPE_LOCAL; - - if (df->flags.flow_type == DP_FLOW_TYPE_OUTGOING) - dst_port = dp_multipath_get_pf(df->dp_flow_hash); - - // next hop is known, fill in Ether header - // (PF egress goes through a tunnel that destroys Ether header) - if (dst_port->port_type == DP_PORT_VF) - dp_fill_ether_hdr(rte_pktmbuf_mtod(m, struct rte_ether_hdr *), dst_port, RTE_ETHER_TYPE_IPV4); + if (src_port->port_type == DP_PORT_VF) + df->tun_info.dst_vni = route.vni; + df->flags.public_flow = route_key == 0 ? DP_FLOW_SOUTH_NORTH : DP_FLOW_WEST_EAST; df->nxt_hop = dst_port->port_id; // always valid since coming from struct dp_port + return IPV4_LOOKUP_NEXT_NAT; } diff --git a/src/nodes/ipv6_lookup_node.c b/src/nodes/ipv6_lookup_node.c index 21162c01d..c898d0c7f 100644 --- a/src/nodes/ipv6_lookup_node.c +++ b/src/nodes/ipv6_lookup_node.c @@ -22,13 +22,10 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod struct rte_ether_hdr *ether_hdr = rte_pktmbuf_mtod(m, struct rte_ether_hdr *); struct rte_ipv6_hdr *ipv6_hdr = (struct rte_ipv6_hdr *)(ether_hdr + 1); struct vm_route route; + const struct dp_port *src_port = dp_get_port(m); const struct dp_port *dst_port; int t_vni; - t_vni = df->flags.flow_type == DP_FLOW_TYPE_INCOMING - ? df->tun_info.dst_vni - : 0; - dp_extract_ipv6_header(df, ipv6_hdr); if (DP_FAILED(dp_extract_l4_header(df, ipv6_hdr + 1))) @@ -38,30 +35,30 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod if (df->l4_type == DP_IP_PROTO_UDP && df->l4_info.trans_port.dst_port == htons(DHCPV6_SERVER_PORT)) return IPV6_LOOKUP_NEXT_DHCPV6; - dst_port = dp_get_ip6_dst_port(dp_get_port(m), t_vni, ipv6_hdr, &route); + t_vni = src_port->port_type == DP_PORT_PF ? df->tun_info.dst_vni : 0; + + dst_port = dp_get_ip6_dst_port(src_port, t_vni, ipv6_hdr, &route); if (!dst_port) return IPV6_LOOKUP_NEXT_DROP; - df->nxt_hop = dst_port->port_id; // always valid since coming from struct dp_port - - if (df->flags.flow_type != DP_FLOW_TYPE_INCOMING) - df->tun_info.dst_vni = route.vni; - if (dst_port->port_type == DP_PORT_PF) { + if (src_port->port_type == DP_PORT_PF) + return IPV6_LOOKUP_NEXT_DROP; rte_memcpy(df->tun_info.ul_dst_addr6, route.nh_ipv6, sizeof(df->tun_info.ul_dst_addr6)); - df->flags.flow_type = DP_FLOW_TYPE_OUTGOING; } else { // next hop is known, fill in Ether header // (PF egress goes through a tunnel that destroys Ether header) dp_fill_ether_hdr(ether_hdr, dst_port, RTE_ETHER_TYPE_IPV6); } - if (!df->flags.flow_type) - df->flags.flow_type = DP_FLOW_TYPE_LOCAL; - if (dp_conf_is_offload_enabled()) df->flags.offload_ipv6 = 1; + if (src_port->port_type == DP_PORT_VF) + df->tun_info.dst_vni = route.vni; + + df->nxt_hop = dst_port->port_id; // always valid since coming from struct dp_port + return IPV6_LOOKUP_NEXT_FIREWALL; } diff --git a/src/nodes/lb_node.c b/src/nodes/lb_node.c index 9d780821a..e562f23af 100644 --- a/src/nodes/lb_node.c +++ b/src/nodes/lb_node.c @@ -19,9 +19,8 @@ DP_NODE_REGISTER_NOINIT(LB, lb, NEXT_NODES); static __rte_always_inline void dp_lb_set_next_hop(struct dp_flow *df, uint16_t port_id) { - df->flags.flow_type = DP_FLOW_TYPE_OUTGOING; // for recirc pkt, it will be changed back to DP_FLOW_TYPE_INCOMING in cls_node.c if (DP_FAILED(dp_get_portid_with_vnf_key(df->tun_info.ul_dst_addr6, DP_VNF_TYPE_LB_ALIAS_PFX))) { - df->nxt_hop = port_id; // needs to validated by the caller! + df->nxt_hop = port_id; // needs to validated by the caller (but it's always m->port) df->flags.nat = DP_CHG_UL_DST_IP; } else df->flags.nat = DP_LB_RECIRC; diff --git a/src/nodes/packet_relay_node.c b/src/nodes/packet_relay_node.c index c84013ebf..07697a8e9 100644 --- a/src/nodes/packet_relay_node.c +++ b/src/nodes/packet_relay_node.c @@ -34,7 +34,6 @@ static __rte_always_inline rte_edge_t lb_nnat_icmp_reply(struct dp_flow *df, str temp_ip = ipv4_hdr->dst_addr; ipv4_hdr->dst_addr = ipv4_hdr->src_addr; ipv4_hdr->src_addr = temp_ip; - df->flags.flow_type = DP_FLOW_TYPE_OUTGOING; df->nxt_hop = m->port; dp_nat_chg_ip(df, ipv4_hdr, m); memcpy(df->tun_info.ul_dst_addr6, df->tun_info.ul_src_addr6, sizeof(df->tun_info.ul_dst_addr6)); @@ -52,7 +51,6 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod return PACKET_RELAY_NEXT_DROP; if (cntrack->nf_info.nat_type == DP_FLOW_NAT_TYPE_NETWORK_NEIGH) { - df->flags.flow_type = DP_FLOW_TYPE_OUTGOING; df->nxt_hop = m->port; // trick: use src place to store old dst address for offloading rte_memcpy(df->tun_info.ul_src_addr6, df->tun_info.ul_dst_addr6, sizeof(df->tun_info.ul_src_addr6)); diff --git a/src/nodes/virtsvc_node.c b/src/nodes/virtsvc_node.c index c957f12ba..77ff306f1 100644 --- a/src/nodes/virtsvc_node.c +++ b/src/nodes/virtsvc_node.c @@ -247,9 +247,9 @@ static __rte_always_inline rte_edge_t get_next_index(struct rte_node *node, stru if (dp_conf_is_offload_enabled()) DPNODE_LOG_WARNING(node, "Virtual services not supported while offloading"); - if (df->flags.flow_type == DP_FLOW_TYPE_OUTGOING) + if (dp_get_port(m)->port_type == DP_PORT_VF) return virtsvc_request_next(node, m, df); - else if (df->flags.flow_type == DP_FLOW_TYPE_INCOMING) + else return virtsvc_reply_next(node, m, df); return VIRTSVC_NEXT_DROP; diff --git a/src/rte_flow/dp_rte_flow_traffic_forward.c b/src/rte_flow/dp_rte_flow_traffic_forward.c index 26020323e..7709877de 100644 --- a/src/rte_flow/dp_rte_flow_traffic_forward.c +++ b/src/rte_flow/dp_rte_flow_traffic_forward.c @@ -675,16 +675,22 @@ int dp_offload_handler(struct rte_mbuf *m, struct dp_flow *df) const struct dp_port *outgoing_port = dp_get_dst_port(df); int ret; - // TODO(plague): think about using enum for flow_type - if (df->flags.flow_type == DP_FLOW_TYPE_LOCAL) { + if (incoming_port->port_type == outgoing_port->port_type) { + if (outgoing_port->port_type == DP_PORT_PF) { + DPS_LOG_ERR("Cannot offload PF-PF flows", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port)); + return DP_ERROR; + } + // VF -> VF ret = dp_offload_handle_local_traffic(df, incoming_port, outgoing_port); if (DP_FAILED(ret)) DPS_LOG_ERR("Failed to install local flow rule", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port), DP_LOG_RET(ret)); - } else if (df->flags.flow_type == DP_FLOW_TYPE_INCOMING) { + } else if (incoming_port->port_type == DP_PORT_PF) { + // PF -> VF ret = dp_offload_handle_tunnel_decap_traffic(df, incoming_port, outgoing_port, dp_get_pkt_mark(m)->flags.is_recirc); if (DP_FAILED(ret)) DPS_LOG_ERR("Failed to install decap flow rule", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port), DP_LOG_RET(ret)); - } else if (df->flags.flow_type == DP_FLOW_TYPE_OUTGOING) { + } else { + // VF -> PF if (df->conntrack->nf_info.nat_type == DP_FLOW_NAT_TYPE_NETWORK_NEIGH || df->conntrack->nf_info.nat_type == DP_FLOW_LB_TYPE_FORWARD ) { @@ -696,9 +702,7 @@ int dp_offload_handler(struct rte_mbuf *m, struct dp_flow *df) if (DP_FAILED(ret)) DPS_LOG_ERR("Failed to install encap flow rule", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port), DP_LOG_RET(ret)); } - } else { - DPS_LOG_ERR("Invalid flow type to offload", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port), DP_LOG_VALUE(df->flags.flow_type)); - ret = DP_ERROR; } + return ret; } From bf49921fbc6af8deabf132f78607a00e4522cd3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jarom=C3=ADr=20Smr=C4=8Dek?= <4plague@gmail.com> Date: Mon, 13 Nov 2023 18:25:51 +0100 Subject: [PATCH 3/5] Replaced port_type with a boolean is_pf --- include/dp_port.h | 7 +--- src/dp_cntrack.c | 4 +-- src/dp_firewall.c | 4 +-- src/dp_flow.c | 4 +-- src/dp_graph.c | 11 +++--- src/dp_hairpin.c | 10 +++--- src/dp_internal_stats.c | 2 +- src/dp_lpm.c | 10 +++--- src/dp_periodic_msg.c | 2 +- src/dp_port.c | 41 +++++++++++----------- src/grpc/dp_grpc_impl.c | 2 +- src/nodes/cls_node.c | 4 +-- src/nodes/common_node.c | 4 +-- src/nodes/conntrack_node.c | 2 +- src/nodes/firewall_node.c | 2 +- src/nodes/ipv4_lookup_node.c | 6 ++-- src/nodes/ipv6_lookup_node.c | 8 ++--- src/nodes/virtsvc_node.c | 6 ++-- src/rte_flow/dp_rte_flow_capture.c | 15 +++----- src/rte_flow/dp_rte_flow_traffic_forward.c | 8 ++--- 20 files changed, 69 insertions(+), 83 deletions(-) diff --git a/include/dp_port.h b/include/dp_port.h index f7a09bec7..bd298d500 100644 --- a/include/dp_port.h +++ b/include/dp_port.h @@ -16,11 +16,6 @@ extern "C" { #define VM_IFACE_ID_MAX_LEN 64 -enum dp_port_type { - DP_PORT_PF, - DP_PORT_VF, -}; - struct macip_entry { struct rte_ether_addr own_mac; struct rte_ether_addr neigh_mac; @@ -43,7 +38,7 @@ struct vm_entry { }; struct dp_port { - enum dp_port_type port_type; // TODO bool! + bool is_pf; uint16_t port_id; char port_name[IF_NAMESIZE]; int socket_id; diff --git a/src/dp_cntrack.c b/src/dp_cntrack.c index 899036cf4..e25580c8d 100644 --- a/src/dp_cntrack.c +++ b/src/dp_cntrack.c @@ -99,7 +99,7 @@ static __rte_always_inline void dp_cntrack_change_flow_offload_flags(struct rte_ if (!offload_mode_enabled) return; - if (port->port_type == DP_PORT_PF) { + if (port->is_pf) { if (port == dp_get_pf0()) offload_other_pf = !flow_val->incoming_flow_offloaded_flag.pf0; else @@ -169,7 +169,7 @@ static __rte_always_inline struct flow_value *flow_table_insert_entry(struct flo /* This will be an uni-directional traffic, which does not expect its corresponding reverse traffic */ /* Details can be found in https://github.com/onmetal/net-dpservice/pull/341 */ if (offload_mode_enabled - && port->port_type == DP_PORT_VF + && !port->is_pf && !DP_FAILED(dp_get_vnf_entry(&vnf_val, DP_VNF_TYPE_LB_ALIAS_PFX, port, DP_VNF_MATCH_ALL_PORT_ID)) ) flow_val->nf_info.nat_type = DP_FLOW_LB_TYPE_LOCAL_NEIGH_TRAFFIC; diff --git a/src/dp_firewall.c b/src/dp_firewall.c index 7928aa272..c7f015105 100644 --- a/src/dp_firewall.c +++ b/src/dp_firewall.c @@ -166,11 +166,11 @@ enum dp_fwall_action dp_get_firewall_action(struct dp_flow *df, struct dp_fwall_rule *rule; /* Outgoing traffic to PF (VF Egress, PF Ingress), PF has no Ingress rules */ - if (dst_port->port_type == DP_PORT_PF) + if (dst_port->is_pf) return dp_get_egress_action(df, &src_port->vm.fwall_head); /* Incoming from PF, PF has no Egress rules */ - if (src_port->port_type == DP_PORT_PF) + if (src_port->is_pf) egress_action = DP_FWALL_ACCEPT; /* Incoming from VF. Check originating VF's Egress rules */ else diff --git a/src/dp_flow.c b/src/dp_flow.c index b8de4d3e8..bb0a292f3 100644 --- a/src/dp_flow.c +++ b/src/dp_flow.c @@ -100,7 +100,7 @@ static __rte_always_inline void dp_mark_vnf_type(struct dp_flow *df, const struc struct snat_data *s_data; struct dp_vnf_value vnf_val; - if (port->port_type == DP_PORT_PF) { + if (port->is_pf) { if (df->vnf_type == DP_VNF_TYPE_NAT || df->vnf_type == DP_VNF_TYPE_LB_ALIAS_PFX) key->vnf = (uint8_t)df->vnf_type; else @@ -129,7 +129,7 @@ int dp_build_flow_key(struct flow_key *key /* out */, struct rte_mbuf *m /* in * key->proto = df->l4_type; - if (port->port_type == DP_PORT_PF) + if (port->is_pf) key->vni = df->tun_info.dst_vni; else key->vni = port->vm.vni; diff --git a/src/dp_graph.c b/src/dp_graph.c index 49834ae5d..703cd3dc5 100644 --- a/src/dp_graph.c +++ b/src/dp_graph.c @@ -133,8 +133,10 @@ static int dp_graph_init_nodes(void) // some nodes need a direct Tx connection to all PF/VF ports, add them dynamically snprintf(name, sizeof(name), "tx-%u", port_id); - switch (port->port_type) { - case DP_PORT_VF: + if (port->is_pf) { + if (DP_FAILED(ipip_encap_node_append_pf_tx(port_id, name))) + return DP_ERROR; + } else { if (DP_FAILED(arp_node_append_vf_tx(port_id, name)) || DP_FAILED(dhcp_node_append_vf_tx(port_id, name)) || DP_FAILED(dhcpv6_node_append_vf_tx(port_id, name)) @@ -142,11 +144,6 @@ static int dp_graph_init_nodes(void) || DP_FAILED(firewall_node_append_vf_tx(port_id, name)) || DP_FAILED(rx_periodic_node_append_vf_tx(port_id, name))) return DP_ERROR; - break; - case DP_PORT_PF: - if (DP_FAILED(ipip_encap_node_append_pf_tx(port_id, name))) - return DP_ERROR; - break; } #ifdef ENABLE_VIRTSVC // virtual services node is bi-directional diff --git a/src/dp_hairpin.c b/src/dp_hairpin.c index 389d4ee54..45d61c00e 100644 --- a/src/dp_hairpin.c +++ b/src/dp_hairpin.c @@ -65,15 +65,14 @@ static int setup_hairpin_rx_tx_queues(uint16_t port_id, int dp_hairpin_setup(const struct dp_port *port) { - uint16_t hairpin_queue_id = 0; uint16_t peer_hairpin_queue_id = 0; hairpin_queue_id = DP_NR_STD_RX_QUEUES; - if (port->port_type == DP_PORT_VF) - peer_hairpin_queue_id = DP_NR_RESERVED_TX_QUEUES - 1 + port->peer_pf_hairpin_tx_rx_queue_offset; - else + if (port->is_pf) peer_hairpin_queue_id = DP_NR_STD_TX_QUEUES - 1 + port->peer_pf_hairpin_tx_rx_queue_offset; + else + peer_hairpin_queue_id = DP_NR_RESERVED_TX_QUEUES - 1 + port->peer_pf_hairpin_tx_rx_queue_offset; if (DP_FAILED(setup_hairpin_rx_tx_queues(port->port_id, port->peer_pf_port_id, @@ -85,7 +84,7 @@ int dp_hairpin_setup(const struct dp_port *port) } // PF's hairpin queue is configured one by one - if (port->port_type == DP_PORT_VF) { + if (!port->is_pf) { if (DP_FAILED(setup_hairpin_rx_tx_queues(port->peer_pf_port_id, port->port_id, peer_hairpin_queue_id, @@ -95,6 +94,7 @@ int dp_hairpin_setup(const struct dp_port *port) return DP_ERROR; } } + return DP_OK; } diff --git a/src/dp_internal_stats.c b/src/dp_internal_stats.c index caccc5f14..6b812f6a1 100644 --- a/src/dp_internal_stats.c +++ b/src/dp_internal_stats.c @@ -14,7 +14,7 @@ int dp_nat_get_used_ports_telemetry(struct rte_tel_data *dict) int ret; DP_FOREACH_PORT(ports, port) { - if (port->port_type != DP_PORT_VF || !port->allocated) + if (port->is_pf || !port->allocated) continue; ret = rte_tel_data_add_dict_u64(dict, port->vm.machineid, port->stats.nat_stats.used_port_cnt); diff --git a/src/dp_lpm.c b/src/dp_lpm.c index 4f1d0bc5e..458c84b86 100644 --- a/src/dp_lpm.c +++ b/src/dp_lpm.c @@ -101,7 +101,7 @@ int dp_add_route(const struct dp_port *port, uint32_t vni, uint32_t t_vni, uint3 // can only fail if node is NULL rte_rib_set_nh(node, port->port_id); /* This is an external route */ - if (port->port_type == DP_PORT_PF) { + if (port->is_pf) { route = rte_rib_get_ext(node); route->vni = t_vni; rte_memcpy(route->nh_ipv6, ip6, sizeof(route->nh_ipv6)); @@ -164,7 +164,7 @@ static int dp_list_route_entry(struct rte_rib_node *node, if (unlikely(!dst_port)) return DP_GRPC_ERR_NO_VM; - if ((ext_routes && dst_port->port_type == DP_PORT_PF) + if ((ext_routes && dst_port->is_pf) || (!ext_routes && dst_port->port_id == port->port_id && !dp_route_in_dhcp_range(node, port)) ) { reply = dp_grpc_add_reply(responder); @@ -240,7 +240,7 @@ int dp_add_route6(const struct dp_port *port, uint32_t vni, uint32_t t_vni, cons // can only fail if node is NULL rte_rib6_set_nh(node, port->port_id); /* This is an external route */ - if (port->port_type == DP_PORT_PF) { + if (port->is_pf) { route = rte_rib6_get_ext(node); route->vni = t_vni; rte_memcpy(route->nh_ipv6, ext_ip6, sizeof(route->nh_ipv6)); @@ -302,7 +302,7 @@ const struct dp_port *dp_get_ip4_dst_port(const struct dp_port *port, if (!dst_port) return NULL; - if (dst_port->port_type == DP_PORT_PF) + if (dst_port->is_pf) *route = *(struct vm_route *)rte_rib_get_ext(node); if (DP_FAILED(rte_rib_get_ip(node, route_key))) @@ -339,7 +339,7 @@ const struct dp_port *dp_get_ip6_dst_port(const struct dp_port *port, if (!dst_port) return NULL; - if (dst_port->port_type == DP_PORT_PF) + if (dst_port->is_pf) *route = *(struct vm_route *)rte_rib6_get_ext(node); return dst_port; diff --git a/src/dp_periodic_msg.c b/src/dp_periodic_msg.c index be4d8690e..a1707874a 100644 --- a/src/dp_periodic_msg.c +++ b/src/dp_periodic_msg.c @@ -25,7 +25,7 @@ void send_to_all_vfs(const struct rte_mbuf *pkt, uint16_t eth_type) int ret; DP_FOREACH_PORT(ports, port) { - if (port->port_type != DP_PORT_VF || !port->allocated) + if (port->is_pf || !port->allocated) continue; clone_buf = rte_pktmbuf_copy(pkt, dp_layer->rte_mempool, 0, UINT32_MAX); diff --git a/src/dp_port.c b/src/dp_port.c index 7f441a1f0..5a9765ad5 100644 --- a/src/dp_port.c +++ b/src/dp_port.c @@ -16,6 +16,9 @@ #include "rte_flow/dp_rte_flow_capture.h" #include "monitoring/dp_graphtrace.h" +#define DP_PORT_INIT_PF true +#define DP_PORT_INIT_VF false + static const struct rte_eth_conf port_conf_default = { .rxmode = { .mq_mode = RTE_ETH_MQ_RX_NONE, @@ -71,7 +74,7 @@ struct dp_port *dp_get_port_by_name(const char *pci_name) return _dp_port_table[port_id]; } -static int dp_port_init_ethdev(struct dp_port *port, struct rte_eth_dev_info *dev_info, enum dp_port_type port_type) +static int dp_port_init_ethdev(struct dp_port *port, struct rte_eth_dev_info *dev_info) { struct dp_dpdk_layer *dp_layer = get_dpdk_layer(); struct rte_ether_addr pf_neigh_mac; @@ -84,9 +87,9 @@ static int dp_port_init_ethdev(struct dp_port *port, struct rte_eth_dev_info *de /* Default config */ port_conf.txmode.offloads &= dev_info->tx_offload_capa; - nr_hairpin_queues = port_type == DP_PORT_VF - ? DP_NR_VF_HAIRPIN_RX_TX_QUEUES - : (DP_NR_PF_HAIRPIN_RX_TX_QUEUES + DP_NR_VF_HAIRPIN_RX_TX_QUEUES * dp_layer->num_of_vfs); + nr_hairpin_queues = port->is_pf + ? (DP_NR_PF_HAIRPIN_RX_TX_QUEUES + DP_NR_VF_HAIRPIN_RX_TX_QUEUES * dp_layer->num_of_vfs) + : DP_NR_VF_HAIRPIN_RX_TX_QUEUES; ret = rte_eth_dev_configure(port->port_id, DP_NR_STD_RX_QUEUES + nr_hairpin_queues, @@ -126,7 +129,7 @@ static int dp_port_init_ethdev(struct dp_port *port, struct rte_eth_dev_info *de } /* dp-service specific config */ - if (port_type == DP_PORT_VF) { + if (!port->is_pf) { DPS_LOG_INFO("INIT setting port to promiscuous mode", DP_LOG_PORT(port)); ret = rte_eth_promiscuous_enable(port->port_id); if (DP_FAILED(ret)) { @@ -143,7 +146,7 @@ static int dp_port_init_ethdev(struct dp_port *port, struct rte_eth_dev_info *de static_assert(sizeof(port->dev_name) == RTE_ETH_NAME_MAX_LEN, "Incompatible port dev_name size"); rte_eth_dev_get_name_by_port(port->port_id, port->dev_name); - if (port_type == DP_PORT_PF) { + if (port->is_pf) { if (DP_FAILED(dp_get_pf_neigh_mac(dev_info->if_index, &pf_neigh_mac, &port->vm.info.own_mac))) return DP_ERROR; rte_ether_addr_copy(&pf_neigh_mac, &port->vm.info.neigh_mac); @@ -170,7 +173,7 @@ static int dp_port_flow_isolate(uint16_t port_id) return DP_OK; } -static struct dp_port *dp_port_init_interface(uint16_t port_id, struct rte_eth_dev_info *dev_info, enum dp_port_type type) +static struct dp_port *dp_port_init_interface(uint16_t port_id, struct rte_eth_dev_info *dev_info, bool is_pf) { static int last_pf1_hairpin_tx_rx_queue_offset = 1; struct dp_port *port; @@ -182,7 +185,7 @@ static struct dp_port *dp_port_init_interface(uint16_t port_id, struct rte_eth_d return NULL; } - if (type == DP_PORT_PF) { + if (is_pf) { if (dp_conf_get_nic_type() != DP_CONF_NIC_TYPE_TAP) if (DP_FAILED(dp_port_flow_isolate(port_id))) return NULL; @@ -200,16 +203,15 @@ static struct dp_port *dp_port_init_interface(uint16_t port_id, struct rte_eth_d // oveflow check done by liming the number of calls to this function port = _dp_ports.end++; - port->port_type = type; + port->is_pf = is_pf; port->port_id = port_id; port->socket_id = socket_id; _dp_port_table[port_id] = port; - if (DP_FAILED(dp_port_init_ethdev(port, dev_info, type))) + if (DP_FAILED(dp_port_init_ethdev(port, dev_info))) return NULL; - switch (type) { - case DP_PORT_PF: + if (is_pf) { if (DP_FAILED(dp_port_register_pf(port))) return NULL; ret = rte_eth_dev_callback_register(port_id, RTE_ETH_EVENT_INTR_LSC, dp_link_status_change_event_callback, NULL); @@ -217,8 +219,7 @@ static struct dp_port *dp_port_init_interface(uint16_t port_id, struct rte_eth_d DPS_LOG_ERR("Cannot register link status callback", DP_LOG_RET(ret)); return NULL; } - break; - case DP_PORT_VF: + } else { // All VFs belong to pf0, assign a tx queue from pf1 for it if (dp_conf_is_offload_enabled()) { port->peer_pf_port_id = dp_get_pf1()->port_id; @@ -229,8 +230,8 @@ static struct dp_port *dp_port_init_interface(uint16_t port_id, struct rte_eth_d } } // No link status callback, VFs are not critical for cross-hypervisor communication - break; } + return port; } @@ -240,7 +241,7 @@ static int dp_port_set_up_hairpins(void) const struct dp_port *pf1 = dp_get_pf1(); DP_FOREACH_PORT(&_dp_ports, port) { - if (port->port_type == DP_PORT_PF) { + if (port->is_pf) { port->peer_pf_port_id = (port->port_id == pf0->port_id ? pf1 : pf0)->port_id; port->peer_pf_hairpin_tx_rx_queue_offset = 1; } @@ -262,7 +263,7 @@ static int dp_port_init_pf(const char *pf_name) return DP_ERROR; if (!strncmp(pf_name, ifname, sizeof(ifname))) { DPS_LOG_INFO("INIT initializing PF port", DP_LOG_PORTID(port_id), DP_LOG_IFNAME(ifname)); - port = dp_port_init_interface(port_id, &dev_info, DP_PORT_PF); + port = dp_port_init_interface(port_id, &dev_info, DP_PORT_INIT_PF); if (!port) return DP_ERROR; snprintf(port->port_name, sizeof(port->port_name), "%s", pf_name); @@ -286,7 +287,7 @@ static int dp_port_init_vfs(const char *vf_pattern, int num_of_vfs) return DP_ERROR; if (strstr(ifname, vf_pattern) && ++vf_count <= num_of_vfs) { DPS_LOG_INFO("INIT initializing VF port", DP_LOG_PORTID(port_id), DP_LOG_IFNAME(ifname)); - port = dp_port_init_interface(port_id, &dev_info, DP_PORT_VF); + port = dp_port_init_interface(port_id, &dev_info, DP_PORT_INIT_VF); if (!port) return DP_ERROR; snprintf(port->port_name, sizeof(port->port_name), "%s", vf_pattern); @@ -403,7 +404,7 @@ static int dp_init_port(struct dp_port *port) if (dp_conf_get_nic_type() == DP_CONF_NIC_TYPE_TAP) return DP_OK; - if (port->port_type == DP_PORT_PF) + if (port->is_pf) if (DP_FAILED(dp_port_install_isolated_mode(port->port_id))) return DP_ERROR; @@ -414,7 +415,7 @@ static int dp_init_port(struct dp_port *port) if (DP_FAILED(dp_port_bind_port_hairpins(port))) return DP_ERROR; - if (port->port_type == DP_PORT_VF) + if (!port->is_pf) if (DP_FAILED(dp_install_vf_init_rte_rules(port))) assert(false); // if any flow rule failed, stop process running due to possible hw/driver failure } diff --git a/src/grpc/dp_grpc_impl.c b/src/grpc/dp_grpc_impl.c index 4e2c9303e..5c8c4cb2b 100644 --- a/src/grpc/dp_grpc_impl.c +++ b/src/grpc/dp_grpc_impl.c @@ -954,7 +954,7 @@ static int dp_process_capture_status(struct dp_grpc_responder *responder) return DP_GRPC_ERR_LIMIT_REACHED; } - if (port->port_type == DP_PORT_PF) { + if (port->is_pf) { reply->interfaces[count].type = DP_CAPTURE_IFACE_TYPE_SINGLE_PF; reply->interfaces[count].spec.pf_index = port == dp_get_pf0() ? 0 : 1; } else { diff --git a/src/nodes/cls_node.c b/src/nodes/cls_node.c index c10d055f9..816b20d0b 100644 --- a/src/nodes/cls_node.c +++ b/src/nodes/cls_node.c @@ -150,7 +150,7 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod return CLS_NEXT_DROP; if (RTE_ETH_IS_IPV4_HDR(l3_type)) { - if (port->port_type == DP_PORT_PF) + if (port->is_pf) return CLS_NEXT_DROP; #ifdef ENABLE_VIRTSVC if (virtsvc_present) { @@ -167,7 +167,7 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod if (RTE_ETH_IS_IPV6_HDR(l3_type)) { ipv6_hdr = (const struct rte_ipv6_hdr *)(ether_hdr + 1); - if (port->port_type == DP_PORT_PF) { + if (port->is_pf) { if (unlikely(is_ipv6_nd(ipv6_hdr))) return CLS_NEXT_DROP; #ifdef ENABLE_VIRTSVC diff --git a/src/nodes/common_node.c b/src/nodes/common_node.c index 33d03cca7..2d87463f8 100644 --- a/src/nodes/common_node.c +++ b/src/nodes/common_node.c @@ -38,7 +38,7 @@ int dp_node_append_vf_tx(struct rte_node_register *node, struct dp_port *port; port = dp_get_port_by_id(port_id); - if (!port || port->port_type != DP_PORT_VF) { + if (!port || port->is_pf) { DPNODE_LOG_ERR(node, "Node requires a valid virtual port to connect to"); return DP_ERROR; } @@ -55,7 +55,7 @@ int dp_node_append_pf_tx(struct rte_node_register *node, struct dp_port *port; port = dp_get_port_by_id(port_id); - if (!port || port->port_type != DP_PORT_PF) { + if (!port || !port->is_pf) { DPNODE_LOG_ERR(node, "Node requires a valid physical port to connect to"); return DP_ERROR; } diff --git a/src/nodes/conntrack_node.c b/src/nodes/conntrack_node.c index ccad9222b..15ab00191 100644 --- a/src/nodes/conntrack_node.c +++ b/src/nodes/conntrack_node.c @@ -52,7 +52,7 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod return CONNTRACK_NEXT_DROP; } - if (dp_get_port(m)->port_type == DP_PORT_VF) + if (!dp_get_port(m)->is_pf) return CONNTRACK_NEXT_DNAT; switch (df->vnf_type) { diff --git a/src/nodes/firewall_node.c b/src/nodes/firewall_node.c index 3166e14ae..5cfb6114a 100644 --- a/src/nodes/firewall_node.c +++ b/src/nodes/firewall_node.c @@ -43,7 +43,7 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod // return FIREWALL_NEXT_DROP; } - if (dst_port->port_type == DP_PORT_PF) + if (dst_port->is_pf) return FIREWALL_NEXT_IPIP_ENCAP; return next_tx_index[dst_port->port_id]; diff --git a/src/nodes/ipv4_lookup_node.c b/src/nodes/ipv4_lookup_node.c index f802333e5..7720276f2 100644 --- a/src/nodes/ipv4_lookup_node.c +++ b/src/nodes/ipv4_lookup_node.c @@ -35,8 +35,8 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod if (!dst_port) return IPV4_LOOKUP_NEXT_DROP; - if (dst_port->port_type == DP_PORT_PF) { - if (src_port->port_type == DP_PORT_PF) + if (dst_port->is_pf) { + if (src_port->is_pf) return IPV4_LOOKUP_NEXT_DROP; rte_memcpy(df->tun_info.ul_dst_addr6, route.nh_ipv6, sizeof(df->tun_info.ul_dst_addr6)); dst_port = dp_multipath_get_pf(df->dp_flow_hash); @@ -46,7 +46,7 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod dp_fill_ether_hdr(rte_pktmbuf_mtod(m, struct rte_ether_hdr *), dst_port, RTE_ETHER_TYPE_IPV4); } - if (src_port->port_type == DP_PORT_VF) + if (!src_port->is_pf) df->tun_info.dst_vni = route.vni; df->flags.public_flow = route_key == 0 ? DP_FLOW_SOUTH_NORTH : DP_FLOW_WEST_EAST; diff --git a/src/nodes/ipv6_lookup_node.c b/src/nodes/ipv6_lookup_node.c index c898d0c7f..c3c8810d8 100644 --- a/src/nodes/ipv6_lookup_node.c +++ b/src/nodes/ipv6_lookup_node.c @@ -35,14 +35,14 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod if (df->l4_type == DP_IP_PROTO_UDP && df->l4_info.trans_port.dst_port == htons(DHCPV6_SERVER_PORT)) return IPV6_LOOKUP_NEXT_DHCPV6; - t_vni = src_port->port_type == DP_PORT_PF ? df->tun_info.dst_vni : 0; + t_vni = src_port->is_pf ? df->tun_info.dst_vni : 0; dst_port = dp_get_ip6_dst_port(src_port, t_vni, ipv6_hdr, &route); if (!dst_port) return IPV6_LOOKUP_NEXT_DROP; - if (dst_port->port_type == DP_PORT_PF) { - if (src_port->port_type == DP_PORT_PF) + if (dst_port->is_pf) { + if (src_port->is_pf) return IPV6_LOOKUP_NEXT_DROP; rte_memcpy(df->tun_info.ul_dst_addr6, route.nh_ipv6, sizeof(df->tun_info.ul_dst_addr6)); } else { @@ -54,7 +54,7 @@ static __rte_always_inline rte_edge_t get_next_index(__rte_unused struct rte_nod if (dp_conf_is_offload_enabled()) df->flags.offload_ipv6 = 1; - if (src_port->port_type == DP_PORT_VF) + if (!src_port->is_pf) df->tun_info.dst_vni = route.vni; df->nxt_hop = dst_port->port_id; // always valid since coming from struct dp_port diff --git a/src/nodes/virtsvc_node.c b/src/nodes/virtsvc_node.c index 77ff306f1..205910cf7 100644 --- a/src/nodes/virtsvc_node.c +++ b/src/nodes/virtsvc_node.c @@ -247,10 +247,10 @@ static __rte_always_inline rte_edge_t get_next_index(struct rte_node *node, stru if (dp_conf_is_offload_enabled()) DPNODE_LOG_WARNING(node, "Virtual services not supported while offloading"); - if (dp_get_port(m)->port_type == DP_PORT_VF) - return virtsvc_request_next(node, m, df); - else + if (dp_get_port(m)->is_pf) return virtsvc_reply_next(node, m, df); + else + return virtsvc_request_next(node, m, df); return VIRTSVC_NEXT_DROP; } diff --git a/src/rte_flow/dp_rte_flow_capture.c b/src/rte_flow/dp_rte_flow_capture.c index ae65dc4af..da4fc8102 100644 --- a/src/rte_flow/dp_rte_flow_capture.c +++ b/src/rte_flow/dp_rte_flow_capture.c @@ -219,12 +219,10 @@ int dp_enable_pkt_capture(struct dp_port *port) if (DP_FAILED(dp_destroy_default_flow(port))) return DP_GRPC_ERR_RTE_RULE_DEL; - switch (port->port_type) { - case DP_PORT_PF: + if (port->is_pf) { if (DP_FAILED(dp_install_pf_default_flow(port, true))) return DP_GRPC_ERR_RTE_RULE_ADD; - break; - case DP_PORT_VF: + } else { if (DP_FAILED(dp_install_vf_default_jump_flow(port, DP_RTE_FLOW_CAPTURE_GROUP))) return DP_GRPC_ERR_RTE_RULE_ADD; // rollback flow rules if failed on the second one for VF. @@ -239,7 +237,6 @@ int dp_enable_pkt_capture(struct dp_port *port) } return DP_GRPC_ERR_RTE_RULE_ADD; } - break; } port->captured = true; @@ -257,19 +254,15 @@ int dp_disable_pkt_capture(struct dp_port *port) if (DP_FAILED(dp_destroy_default_flow(port))) return DP_GRPC_ERR_RTE_RULE_DEL; - switch (port->port_type) { - case DP_PORT_PF: + if (port->is_pf) { if (DP_FAILED(dp_install_pf_default_flow(port, false))) return DP_GRPC_ERR_RTE_RULE_ADD; - break; - case DP_PORT_VF: + } else { if (DP_FAILED(dp_install_vf_default_jump_flow(port, DP_RTE_FLOW_VNET_GROUP))) { // rollback does not make sense here, but rather to report the error. because the default operation should be without capturing. DPS_LOG_ERR("Failed to turn capturing off by installing default jump rule to the vnet group on vf", DP_LOG_PORT(port)); return DP_GRPC_ERR_RTE_RULE_ADD; } - - break; } port->captured = false; diff --git a/src/rte_flow/dp_rte_flow_traffic_forward.c b/src/rte_flow/dp_rte_flow_traffic_forward.c index 7709877de..84819a5f2 100644 --- a/src/rte_flow/dp_rte_flow_traffic_forward.c +++ b/src/rte_flow/dp_rte_flow_traffic_forward.c @@ -458,7 +458,7 @@ int dp_offload_handle_tunnel_decap_traffic(struct dp_flow *df, if (cross_pf_port) { // move this packet to the right hairpin rx queue of pf, so as to be moved to vf - if (outgoing_port->port_type != DP_PORT_VF) { + if (unlikely(outgoing_port->is_pf)) { DPS_LOG_ERR("Outgoing port not a VF", DP_LOG_PORT(outgoing_port)); dp_destroy_rte_flow_agectx(agectx); // no need to free the above appeared (not allocated) agectx_capture, as the capturing rule is not installed for the cross-pf case @@ -675,8 +675,8 @@ int dp_offload_handler(struct rte_mbuf *m, struct dp_flow *df) const struct dp_port *outgoing_port = dp_get_dst_port(df); int ret; - if (incoming_port->port_type == outgoing_port->port_type) { - if (outgoing_port->port_type == DP_PORT_PF) { + if (incoming_port->is_pf == outgoing_port->is_pf) { + if (unlikely(incoming_port->is_pf)) { DPS_LOG_ERR("Cannot offload PF-PF flows", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port)); return DP_ERROR; } @@ -684,7 +684,7 @@ int dp_offload_handler(struct rte_mbuf *m, struct dp_flow *df) ret = dp_offload_handle_local_traffic(df, incoming_port, outgoing_port); if (DP_FAILED(ret)) DPS_LOG_ERR("Failed to install local flow rule", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port), DP_LOG_RET(ret)); - } else if (incoming_port->port_type == DP_PORT_PF) { + } else if (incoming_port->is_pf) { // PF -> VF ret = dp_offload_handle_tunnel_decap_traffic(df, incoming_port, outgoing_port, dp_get_pkt_mark(m)->flags.is_recirc); if (DP_FAILED(ret)) From 93f97928f4c4c2df71c44848d92b2eb95fcbef08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jarom=C3=ADr=20Smr=C4=8Dek?= <4plague@gmail.com> Date: Tue, 14 Nov 2023 13:51:18 +0100 Subject: [PATCH 4/5] Updated dataplane schema after removing flow_type --- .../sys_design/dpservice_dataplane.drawio.png | Bin 151903 -> 146662 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/sys_design/dpservice_dataplane.drawio.png b/docs/sys_design/dpservice_dataplane.drawio.png index 8131cb9d967e7febda666579dbbf2e3aa89b098f..ddc69f274568ef6dc0b2eb9367519a95cd9b0e49 100755 GIT binary patch literal 146662 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≦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 z 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 JM8yl&{s)5p(pLZg literal 151903 zcmeGDXIN9)+64?-w^$K-7ZFgbDWsr)klq6csfe0{^xjDj6)R!|6h*M3h}ckyqM%!_ zqNu1;1+k;p6$=9I%s$7xw|<`Q@B8C@F1aMEH8a;N_Z(x~Wvvcl5c~HT)u&6BF8#?Q z9IH#0Kk!|;bdPcS16+yof3qC?>S|^YFgWO({_}-$n1HNe7#&p1bVURh zifaTq5g6%Tt4uVB3<`oqZ~sp}C@xeSjiiwYHh(BjYL#G6biLS0RnaACwIqN_Q6s~h za2eg9bjXc(B+DE_RB53Iw2`JaneiH;0&8JQp%G9vpB{k>Fu`GP9ZwNW7t!F(7$@Ck zB>KQG2%(eAu?55kxDFYcL}L@U9JC6JL@RhqBVNg~8;A<9cLb@*2o>PKS`%D5##Mz2 z_)d`%d_O=4L2<}30a^;D1Q6uW1W1?_iQ=LIBvu9v66Oq$*+@K$&h;g;4q*w!hC0vz z5Pzad7GMaF#jqJ<6Aa4K5p*yKgB8Hw5#gaRVJbS@-`^@{7#vKe3OqzgAxrt%aI40j z7-mx#Kxagyz^Q=*SSbi_TWmu~z%_6kBME>=WhjLWf<{F{;9T%rj73f+!9^&C15R`O zi4mGipfOwz=R5t;43t!>LGi-i;EvP+H^UJca5F4|3!%siE@RV3&;qVV<|G6_lsG83 zpa7F)2w`HVRLNDqqOEWwHB2K>v5*EmNrjD8<0&MJ%;A)Qrv65eZ89V{ zECiiG!veqf7z8}rAVe$i*l4>{uI4$&ERvCcGJ|_~Enlw?i&W5Xf*xsxv#ffC&L1HO z7c#w-f3tgln|=mkoo)=9tIvJQL4pSs)MeyX_Xv0 z01|@I%%TabdI45O=TpN1B>uec7#R|Qb*(4(i2=BVk?~`kNEuROLm+j))WCI&39hj@ ziD;419InNwQ4Vm);S6Qlu`bgW$Kd4A{z^MTrWfF(6o-<{;2OYtcjG785r#z{Vju9V8Bm8A>CEBOOEs$wX5SNl-c6WpxUX9fhF4Y;YCaAz~@e zbOk&D#nni0;SQ@tPN74oLcQE>rU(TV6`iI~vSA_=*(%o1c>ruMLOoT1GFfF*En6>i zI-O#Ev>+6Yz?uzW9)-suGw}2nJ`L>z8;F79Id}t8VI}kAW&^my!r3AmFh0yiaV;sC zs}{xZ6)?C_B;%=sY9tD$g~@R$q|^qrD*})x2U%v4gwvQhm?D&7p;9TBFg?IByID^S z&_xHBPywJ9v;`?ODGVYB+J=TnO;ofUOM>aib~HLV9BRZya9qdBOos#H!}y!R6l^tv z4n8{MhG;efA3?=xxOzsILLiqQ1P(>CmVuLEAki@~PNt4S(mAdBSkPS0%|4N1FRhI z%m}Vuqo^l|roz$B&`Y4ICxOA2gAgA#@oB zjFdnmK+R-&0NqMaY6561J4qygQg8+sp2;VL3CKpS!qq?7z?KIJoCBd$@(olC zM;{8KGiV$R_$=obtyUC8Pqd;eRwGgmQ(%NnnV1LY+Qw5T3?wmM3FWdZYz{11CKf59 zEmEQsror-=L<5eY&>4luFf){{2p8FD0dhe^1UWp04t2^U0;CEJG2#ReyDoy^f>9Ad z8X>T1HKBBC1P!Vs^9TyMQziGOxK;#ilVSK;5mLueNU&mjj6f?6C21hi2#t&gkSxL= zL#l`bvWiQ@la(f^hJ{cl$tYexxXP*tXPQYSs2OgO08K&Au!%g2R!8HgR8*zJA;Xa! zER0AbiU}vUj#apoM1mMalmLlSPlYSE(FBZM21nSLS|y!JV>+Q^wn=A#@)R5wDp6fr z>(s@FwP>a$K;WR5VbKaM2ck5RxjGaD%?Jxef^%hcu^t=+3*gBDTqG=VM5r(tHdBR= zOTwTmt{lPE&^1Pp+Td!)GAWtD2=GA%2~fe*3W!<6#ECE*F2QP|8=znb!4?y2Oh9)S zq`@8@A<dX?HU0t7Xp;dR?%-%3Xe-|&rf3bgP^u-I8E%r9(MFTph|>xU za<*M&h4bJxC_)E?QOHDxog`rEs8W?lZ!jy^OtD@X6G4QjBzo|i7zY&KDuIR|z`~_M zI+h24gmI%WNMkfsEyifFN63CtJ&pmQgr>%P{&dE6n0_T|>qYln%PZ z$k2$Sc$E$AFGW&9?LdO)=tMPB=44?odQqr9)E`B_X~kwTl4;jO57jTSMXf>0Frwvx=V3b6DTDw`q^U@;Pw*@klI z2iGknA8iza4<;E)#0(3I(E)=7f1(*wvXn|!fL2Bq%sWXUEeyd%v)Eb;3>!+s3q?X= zI1s!9YPdi`j%KT1CMLm*a|XakVLGiOfQbkQqY0!WBT5#)N5g5Ha4SY4vEW&DzQ0({ z*V!~U5-Gx_AvwcHp?0z;nrcxpl^nH(NvD}~BpX{qBrvcsEFK&aj+Mn=(N-3n>9i>6 z2#hL}4ma{h92ra?K#It0J|$F5AgT;ZGSLdb3ZQfh2Nhveb2KPNG(!M2nS^L@02Hb> zMdioJ_WZC`LpW%t(4zgdE0mS`jL!(cj<@>&+$vghHg-u_}bX?jWGK zPC5<+;p2fE4~?+O4H~@NVn%UA8k~^HbF!i}5n75wqlD@ZFuoRwF^U90u2D5KJkb_r zwkTX$!zQGo0<{iWGV_)&5594@j{X<9IC|`I8>6-s^w$3HY-U* z4**UJ0mVn?Z8SQ=A8BFe6m*DDt|KX_Ouj`&5J=gkP(-NGNQA7NlqQFcgLNXQG>jbBEVzy_M8pu;Tt3E3 zMTD{fGz7a0%M9ZI|ARo)gjzLZ4ccg<3jEp8+z5D>o~l(~onnHJ#y2Bfl%Uh81IR21 z%@$_Rs$?uJoe&K{F_D6ZP$JEMrba7J5D}hC)`W=!IAJK0MDY*Dhlwb9nw&^*V&qZ_ z)L@s>QKWD^(-dQ{hvBpkhe0Ka0e&1F8ir$w1VB(kXxR2JgN|Xc%NYT92g8OiiNoz= zCkwCFI`vo>6lV^j;mIaGLWd%t;CQ-8z=#GO7G5nE2FQ7Mlz^po$qO9>rc<(!e_?`- zX&2c{z@G*3M?es1Oc<9#sL@);SQL$ktiTJmYTt%p)4|@7|FFbp;j8wg%vOZObC$& z&{=c>Gt7vmg$vAlJW?J`M}~3P&OHwUTud8HC($CDim6Ao7VB~5NL+H@N_(Pp2J4|lms6P+s#m&G6nWTOoW zk&*rJDh^J>)j@0me^e;eBn8{0;c^fXm>MpE!cZkJc zuV-@%TDTYi!T*idOe44W$>(us7Q zKAamP7c1yul$nhtQdt-#ln4Q%M1ncn(Q=uQq_e2`#%QyMYSz-i*m{Fgf^{gMNCpO{ z4>kH*Auh+BhI9Ihkp3K^kfUZ=aSDim5^fMfFMks=yqEeCi zFnXB4$$;~;C_0gbMB8w7D3m7&b+V;MDPTd20fHk_@M0084s|KW6h zM6}I`XP}s9m^B=0P(wI&mmDA=h)k^l!8J;ez{$6AOv(s;07*=P0o=iWF;Nj15m^Nf zWz)=BtBox&vu$KC7r61@wi<>Ok;4^qZG>JG#=-OGDzyTK3D>9)D6WM|cR)+pMlo5X;3m{$X}kD9ZH%!fJ#cVXVJmTHx>hMh4;duS0u) zAfjg%GA=YCW?swvz8M^Aac5^?{YXL>^1(pG5U4QNRB^ zj3pst&|)=nYv<(V`44Z8buRt=fF}%$;a2i6HwSE6vScb4`CL&y{Dko&uN}MHdanEJ zQh6e~ow2W_Pi{`={dQ1L@S`QG*bBvE=5MFtwx-LQv8980*EJ<}A$#yfV8h+qv%;3g z6Mj4Jfm6FS%)U4!!?H4ywD4jV_pC2v$vb}Eau{g2(q~X!>CmppUPmA+_Y54z*zMN+ ze~g&x8Zigm+>e~}Wo_4SjCZSjfqKAp&l`B zM&uYOM<#o{8`(WD^a`(j{@s3OB=P*-ZyTW8 zrcAgu{vrI281#insULg%w&gK5&~jSRuCYhJZW~uXhpc#O=z|}j=_$sP2dSaRq* zSx!nUllOaTNMufH?)}@AA`j4#?-e?Gu7{`J!#e}6tm#<<^J|8miw`Q5J8JMMHC}S3u zX|c{eI2;BJ1ph)kmVbZ`-!bi9n&=Y-VH)UXAmLnm4aw z5gvb`KzG0BaAUr@dTMsW3p_bLnR{`|iX9VvW{Kr|V5AcU44{|KUy@1ckco$HU&N zh>~!2(s+RO-@{t728?5LpxJ!^3~XF;E_CS7p~EK)TD^GAivxRw7dMP=Y%3egymKzT zyZKZ>sk!QKWY(me3t3>4_lumLUL3c~YA@fve}BDCag<^A+=O3HGNc;7X-i!K+{-(J z<&F9C#h&cHLGsp6G$f7IaVR&}c<;jS`QQJ<508q_!7=xOHGfW`{zh(U1E~Y~}e&FODKL{d;G}l}!-Lfx>v0Ye|#TuH&{o2PnT|9FNqT$AmD)-QrNU-KH_X419;63O@wpZ*3iX1$NVJUpvjgpg{eJhik(sH%0&wWma$J}43 zJ0up25#}rQ0gD>k^!NwdCM*dN2x_g}|LC_hZ^55SA18QB#N2-PqRF* zw|#heeOA-*!39-!?*kB?$t3yUD|9STZ`nWpv6XxYpL8noJ@K1Y;VXy5@50KhxUE* zH8A7+=+VNJUAjR%j`^He={`PKRC`=nyti^+(nO*zDp!1AOloB!rA#sDCvqD&3yf&x z3~&DfBfy9*JYVrrIF8Yj*z0g;m-sKe=Z0}O)(=-VPfZccg-sn@IDH>NQ*$gLF0OqD za{h+KU75t6m}iMQ7}m$GX;Z!r1`N3~zZ&t*@Lss}y+_EdO+8nF)JtS!4n%u!hdM;_ z;nRy3s@ZW{GdZW`U2^=?3s^GJ!{Ujho?I}uhl3eEv`PHN-Vt1G2`uj0$5LNL#)#vo zPZ~0|Z5u^TN4~nda^=cW^VvkW$1k?)>34oa!j>*Tvq zjy~-dUqt1u8wr=y@4>H;QI5|U^Xp(9yZ9Lx<|G&xkJsRXGe%!6&8B)WTu*vG3=K&l z9g2IEUp;79FZYVJhsUCh$*zwY>wLbu*)l7LR5@Fu9{=hWVdb_Dm_Byouu+@?U}Tsl z=j~(Nv)*1`6-Ok^M$@KQQCo zr%eAI11B5fU*A8ipP#R~8*HqhX2wm{>XUY3SG`tfG%bRMqWx{Z>_k-Gw+*@Ki4_SO z!K%6S%vrPl{SUd;W2WK7f$+Vr=N^wHzj=`UkluHFz|*aVsas|ghgFs~+zHA4r7x&U z%+b1$QNcsN9Cs%DEu;n>3z15n?7f}E>})MtJ-EAWwf%1OojZ!UJmm(2zkkNVsOheC z{dac*yMr@y(KEr)v>42>Oz!`;itI6M0abqY?%h{#!-I26A|FP5dRcY&_QnZVKBj!O zm_qo8h90`?>?AIEQ8duQWpdAddYKA2bnxJdG(e@k%d{&$=ev*cpUjy*e{n|U=7wrQ z|9_7KfUE~F1_`b^@x<(5e@*Sr9~yDsp>xZPk1pOv+h5-+{;Q)6QP2m@vVuO}gMauO+mgGgGx zT-UU-^{32P6@edUV=XsBi=L!L&I**jdw5~ir#tL?+4XI-rI}kLxAx#i&9=2r(~;Uy z;k1CcYkt{vwQJXBo!M6%0Qg~bzz+Mpb+)>y>h+wMw+nc} zcgx0q4*_I!*&EM2I`1$LPKU@IZGUdJH)Qu37Zbvq({5Qs_LwcNIVSpcg}G=?3N!fB z0i;m8uc*k0owE6xCA_B*`pYI|xHjq8^V9{6z-lHv|C^>7`h4G#sm_=(C|RdTACrCH zK#ab0W&faWADh{hshU$c%iM$cfTAx?+iZQld)14hi`#R+*`7sQ6Bu|p2o>iTle;GXM=>Gk_0O{#l<~fzJok^`!P3;Zsuq$`6+3<3CZOOz7W4J(c z;%9AVEIygtyVuW))TP_bArFct?)CbaQasbojrVEq8+fF5rcW&`sY-Z8NsSCri2}irz6KY9w((;t)Ilu z6s*2J=u~T++FIs89MTvfH`{rA_6+=qw!6fm`@S6)P;qN|ZV7bjqrnE3;Q+VWGrh~_ zQ?U|BN+u->&6Fi-?iX=(c7A^*9i3fRF)KIoGSHd;C8yNBpPTwvar)M`wIksl@0o90 zL5AqlhbUv$$MzWS8@1K%;r_|epXFfgkOy(NX{ExV?Op)oYCilIFTL?+#&$m(n^^Pa z+=kTa$(w2o_YVi*HP}zX=f#A6cy^BPGVn{zD^6c(vOYSKq%XGKc1y zviRuX!}k}zeefqfU;OxT(zlM!XOG?n2SD;9u;a_4ZNYIxsna7{S7#<{k9m2x@WqkS zuPa~N&5^>XbvJzd4u-#)Q4mKyn3IFbWMwl?3ugQ>Z@1sO$s32fv-O)hrFqL?IJS;= zw@}~s1k830@D6S@6nOR6R}YHm2m@YI z2bw%}Z^Q7q4L{@DgEY`z;NE=?JOM5B*!`NmJuu^pabHA_^WNv;UbFp+>~Bhnj~vnM zjPKs-Tg2YZyN4nR89*G@-m0mox!qZp?eTMz#uL-+%!Y)pV+vI@&{IXo#H%9%GxiMf zt6Lq?)a~B074=W701*CR;15MJD3kupz=QVLZgYP=S6v%>#*A;89Wd1C2SO;+sKw<^ zn;suU&pd5HBixsHq=Yk5U$^XFc62DVPye^btdLZ;OQI|9ocLa5S(b z9(_k#e>E5QqzefkKKEDDZ6h6Q$faBnRdHCDuiE+NvR-ZcoH?Asf)fPnssYmGX#jb8 z{xsPHAbuw985dgD3H{5782AI7$w>p(#wR8wru)*j`G0+yuAku^YM!e-zsZli4S2Lc zz};zP@%rwE{5;QibRQ7gS|2{WDL4rL>)Ri|n(WmyqI<8+Teh5i_xkjk)KAT~CykkI z+C3Bib$Dk-d*rtC^f{B7wZjuLe+gE_#{i^;HoTjDs=?La<$pSyFtR&v@^|ze?7Q}K z$G4Z|n99sO>Bg^5wiI3iN_5_o&9ja^KR@{=0Rvq2At0v5?-M>_cW^T3?$|%wHI3}v z%XiS~{G-LKLaza_Yij0sts3W40JwHf{>X^gs{AG97LwqiwTBOG=6wg6>al)U)l?82 zM8NX;cKzJr7@$C+q`RVGjJ&+xmsI+c4(sZ@RqM+x5lFZ{pS~=}{-(^@ zo+>=Ms9lqK%`~-c)6dS!raWLYlv&^3y$p0YkemKJ-I82meCBL$Ru8WpJn4^yB9|k& z&HqZBaYFjRUgHLg`q^B{KrGh7xZ1n@FY~(*^3OzZ>VEw|lq+NQ!Y^;T>rTHamL$S+&0KZeeY{N2q*5_5Y$=|l#`S5xnQI>2r<5>KDyJ{+LC?z zI4nOePtn%;s_vw5?~9i&rErW&t!|9%`1;JQzjqRP3t&;!=uxAdlAY*nL-I!bL<1q7 zOI@6|;HJW4`-=z0{=)-b*2jyI52jpsJp8ovrR~d+sMCM=BM_fdI$gum?F|BW45K9b+P~T^Uj{`S;q(~ zZ4(~saEZ*+O}~VsfSsP|{WjPOHK`&o0emH)$COpF_lB!oSF;BuoCHf$)}8d>7qc6f zunQavuMz&+GNS%s$X@?q$c)_o-^9?OzHfui>y0lyM1V|0)|rxF6{S~rx+z%CfdDN- zYO;s?yj)%4lZOFdAg`LUX!|4ph+BUEVl6nxBS-&YQEr|O3c+x`56cQ>0P=m~I)u$;AAS1tX>nz<#Vd)FSzcb=c=W)58jx%$ z{B+v(%IUM2Qam}ETX_{?S%Sn7mgEjg3&S7Wy*B52>4mn0@7GUyl>zSpGbST2{bH#f z6T%<@48Hfwqu(g{-~N)=%b)_D#>wro?TcKgfM&^tAlr=>FJ2V)avuj=q$wcj!~~&D zQ2v%C6bkd=+HBf;C&Pj25}uH)`=9Xdi?ozRb-lRl^o~ufySqF(crpp7rib58&Wd)8 zXxK)tZKb8zZhTUysuV;#GPEjYAdR$!8L%%iLAH{S)Hk7HB%g@I=+`7(odz4VGSED`Iu z98B;p|M&+QhB{sN`!tl>vM!S8{lXLGj~>BmDBJYeqv0e=6#^Eq+tSawK$>FQ zE|zz<2|zWt3qlkFenfl*PK@6TDBTQ%=%RDl!uwU_Ytkk}32Lt;QD>ZrcFEC>s+%_< z^C}M>InwkjX~=>@c$j9l-v80n`hj2?k@G2^1%Rb)JQ&BlRC)zFH<94!?V3jK9@qZ{ zNwKft-{LR-Z}GP~^K>`;!2SmIlH8~JeWm$*AVw|Ky=Zc9T3|Bzqt=-!()Z;nDOIJbn{ci1%2`Vmks|ES24g{K&^U*+BT_UWa( zFfZ@>WdHtqC-m$Ksp_-;(RoIX5xkQA?hV8*1Uh~ZP|@$OwL53Upuaw%O?T_z2XuL6 zu=Ved19b3jQdggJzfE0jIssN+K80}&yTrJ;7x!J(``|q>Sc+Q`5D5c&?!CPKtzpWb zjpZH*OTaXGEX57}L9+3a-D=9qno3tKc7;@n&o?vxKcJy?q+@v*sb=C`W7`Pzt+kOg zk=IYY55j<@*`Cp-*tInKj+~W#Fubo$uN&xw0XFJpeeuu1@Lf=Tz26USg}6^Wk+}X| zk@!Mlz_fisHz&l^FfI!79uD1H1v}Dh^^i9cyNR+`M}Zp< z_l-l3^=)26UYEScQ<;6cwQBjL_~eeK-=o~gXOlh_WOk}jKpd~)UGlh8{~Gef9wDKd z-O9MTZngy$cv|}Xt&Tir#_vw%R#jC^p`{;uR@c3LVR2DW9b>$&l5?cmIM1`&+We3j z$$Y;@Q%(;25bTAHRkecSpU~?-*P(*vrOnTht7emv_IlG>y#2&;io!sRLrJQSpZM9K zO&{6h4ZWg6^WDlguBRRu_p$FkPj!#~mv?-)v!(pe!;Kk2HhV7!loi+AylIFbZNtH5 z4P0;tI_=EB1#=y{x0%z5TMPLSqI-jMCdOdB~r)`Da!&G$%^w$=)wARv4Yt19ihIujhF$*~r9fhH_|{nvGCLBB$zZxfgr9N7mIwG*9BYW5@$@OiBSs!m=Z#P@&N=|-W&ny=BDl@&) zcZ=tD2|TyTxgquAl1%Kv1LcROj8KoI7Q|gjPQ62~T$8-WH@oUo=3eQwSHyyaUwPhf z^#L~;p2W?s#3z57J#}&5%;rnU4Qrb_j;@_r`1$_fQut!uvA=-Ilgd|-&@>5vJZ z19tpl)IKvd(tO{fK}6?IzC3!iVP4V2hbO;CZF|a!O5blW2ZmQ2E!&W|U8RcFJ9J-6Xuu&``hDnmY5%Yj09Z-=m$El<~zo zS6>Ii&)K7=qxw9ETRu8*lgB79{N26rxB6fC+;k_h@@2)$E5ovE)Wkz6(W7}v1jp(jP3Snyg8XP3!_-ScUNke?)LzP|k6Bba^SZu1~& z#RW*!akeye@%xG7g2YR?0lxTe0gtYfJW#crvRR^YrXFlN3p-*e=@}H1^x0#_d)CQD zz+>NseLhmMa6F^n#E!US=YnhUgIciLt`AGQAIgdzFLzHq;S+TC%1q50C;5uorh<@? z&km*fR_s5a9!^BWJ&=mcynmFjrV^ff_$P=r3sB=X`E z%aN2JU-!VVWgQhI_x0uS;>Xj*wr}-r`<&~8Z)vPZ zkEe{uU4F@n{K5NrvSpKZo7ck=6<|p|e9|U+HCmGaPTpT%?%jS%sV%6UQ*RG*#pW!5i(erF=}bmQ|KIOLhNPhZ~uRhR>N6Dn3CJmLHorOt(3@d~~gBM!8RI zW37o_&{Az651$=NtrAKvi zV88bjv)^3qs8|nzYA->sbMuA!gS@woUAJ!Cx5_OgnTtC<>^%OMluPy)eoC97X?&KUzd58~>JeO*_=0Yt(>GTCEwYw`ob1UMi%{L! zPEDPb>$5}b7-PN$jodOL%DFoQGI{@og0)HXN$4#4gaZG~*T>{;snVu+X;DJ`>32of z8;%7bwSpG~mqw6xn&xTT4T~0(O9aV}a*~HpX0a=0W(c~TO^t>})amndC-5Dmep%7mzSc-KC;^5E z3$B%P`b91J`Xo)@Yrk*ZG7c1F>`C$B%9140BUxn^GY(gYR>SM(?9WN_Lb9I^ko$eq zOi-Q9KJD{h&za7gsgI`I$ZdJqj9))>PW{z3w>kOQ=U=my5l;P(2#lj>evc^3$dq`$T<@6xDIqkG0ytl_@um2|NpWY<-0?rNDE_ z2914{;&r&X_R!Ksbh%#eaAM^473#;1eUXyGIhmJ5tH$n6*A|xpBP5GXnV% z)fr6PDn8Mf6A6}}>3=LiSNBPc2eRGb&w-ds_q|!-zo+i(R?tF=in<@%y;q%Wcq4jw&PIJ|u7nwA68nbLAaZ8EkXx~hk~)H1aS zi7yNaUi7@>#@8mo@SQYU&Hfjym30Fm3ofS?9=BOH4apr|U$DFAmCx}%YXjqoGJ`7? z`D*2fHOC`AqstAoXZvbWS6|oV`ji~MEAS>(Y&ngrI(fsn^NeAkXfy}k&-y06EcN_|%Q0Jy$qL6S2tJxO$868iga zgZ7X$e<8R2NR;_Hq7IaAXxN{CkKX=laYvRfZR;+Ox^CKgyJ6u6dM(Y5n!K?6<@}k# zmAPDhQE<e4hSz}{{+r~@a#H6&WY?u^`o;|s+n@U zQ`>fUWnQK(d7h=DEBj@vK6_w%<&eowgJ*&_q}Tn(j&3>-0!uq12l?=4j2(diGviZJ zht(Fo*QUI{dF_rmZIh->D0*=)Cn73pyI;cPc@u#XtitmT?d$51!k>9_VHtDoi z*mM5N1Me3md+E=-TX}K)*qm4Og=*k(rR_UWH(obmr&J2BnmZB}FqC!q41 zV&qHFjpHt`93OO6BPi(Xc+*)0N=tX!8{>HQPur_=FO5r2J8Zc;Vb#KqWAfxrcErBU z2G?^IcXkvttsLzS6nMtB8Yc^Pap;?g?-Qp?TIC7>*G$|L+m`4+*Jj<&CU;C|?m<>( zsAf|V$JEG{ojQ?0f1ruGGv`S|Ler#zi5IlTAydvapUC*oLZgzxIsd*%Y?ok{M6DPC(4yk1*gKAKYfY>UsL z)0D*TZ&%H^^JdZK+1Gc@nGYDK{2J+ak1L>>=F2TjX6qBasUo?gV0pR^$rR+}GPfjk zNWe_j3ou?D`!hxfu9aR%_L}XzeWvoziE-JSIsq#)KfIu0pAT#O_3X_VAUc1+ZHRg2 zaQ4jVf8_3R=DFa}b)xj8;~Rqml4-u3^CBZpFIJ!Ts(xCyIJ?Gq-&!5Dg}fxN^ZSRi z%*$W__MU!IGW)~%w^t_Zyp~ZF&U)Ny&X>@qqrayP5rCYD%sruC)o8LuY*$w`^@Poo z+J-S>UibB<9AEdR-q5jdS^(=g-+VT$VasK{`EJc8#-t zuBq?*%Pma{%2lB7a$efwgzMi=f|@S`$N)0|hX$nmUEFl#-^ESAs*PaQK-mH=Xso?+ zXGmK++q5AwN8aJ8lo~WWz$B@EOxi8Ees|cnh!K+O97Xjd&XF5Ok0g5`v1O^fT;9dAk5s>U{B;T|l_xTG}j!|a(lg4q&4SA_aDxhEUCW7Qo6bOXwu^wGNw{7Dqd?QGs-Z^d8 zYa7l4oajYTv!X$XZ_(THeLsN$(U+?y?f6o&!wY%haY@_j@@Xi^rGRG{ds7&*{7#&q zy=)?|%IfBZhbJ+zZpS{YV^)+$?)vkq{cMz?@onK}a@u2(S5l4eGQa$E&j}|%^vXGK z?pWTb;Iq^G#N|g`k^+ERP`S!BW9xF}nDclW?uAjK$4y>V5p z&rDc5wSjmt_`4s31hi7P)^OON$|Y%Lv?_Pw5St-P`oX!ri&(OL8TnrBzQgf_;B%vL!5NOE*~ zZSA2!;O)A%++ADS?$xJ;7me;#R^1%08(Ghgp&-XeDeTEVMcE|Gn#v?G&_z}Hl;JoyME}^VPSdwtLrD> zHDhnVy+NoMO`iGezIaARm-vM)B>!-D&4>2ko+TaWY{}bhYug@3Li+BRc`j~9`-ow6 z-RHLs$;GXl-rEcU%P-U9J8mTr$9)A=UDgK&bBagL`u5p85YH@c*?#BVy$nI0x5LkVS+OIowU&0gaIdM)Y8-BdXko)- z?~`)}3th2@{`7|aQ=c~731^id55!_C-`mJZi%E5_yvZG2&BWw+s@rvE$)hG+NsVs; zbY*wV_`bIHKF5TRg~eg}t{v+Od0jegLf!D5U0?5=jJuMKET|atwdRkPhdDm~lzu)q zqtc)CUfW)%J+=s7bu%cKt=M#T(f)+?`>}6|vu?z_HjjdealU>q(_>OxXIo=+bJos| z+;7v3pxWJ1{IPOX=UU4|Kk>`YJRVO^+Q-^ik#iy=BWKC031aoGs7BkePYW*!+ltiwxw1(*5;o%Sv2d^bK~8TrNHok z+i^%kT~f2N|7hd^P#FL1{g$)S(yi}nZ!AK77-O00Hz>(?;n}()1phf3Hi76bX+_TM ziz}Zr`Qt0iuLk+N3*SG`M#G{>vSF894p>o9(KUy*GxqzJcWKf(P@6u& zRatu+3Xc6e;GkYZxJpamPwIj_?DveTTs4+{rLt+Y?@50Z3(GajT0rr)?cgQ;2fg75 z?8tZZxV1vxpUvq!RW2GTF^A9zTK7H9t4@^XvMTFJ82c zL>m@_On+M3h_TM$)sH-^-nahw~V2h=cBVZ#wUx{+&c=zxQ@^3RXYcDcfA|oSyImVU@(o`^l+ftZdb-? z*+X$k!qGKbhYTIr^Vf=a<^@}%vas&uy>wE&p_%@2S|votmL z5dW5vwLEv&<(m&j4s(lLwfVhcVqoqrpBX@L8@oci@!(ZwvZvyYZsS~KehH(O?pdvO zr5G22Gt<6307yC;{=Q@D?vwQ1i8j7R_M6S=@; zDBBhX3a@3dghTU+g{yHG_n?nqvXRs4C7Jd&4Qa)5f-B&4NNkQh>0x=TtL0b!7C7+OM9LQ%Sr5|D0`ZUpIWM9ydY?e9LneO>Q9`<&N* zy_mJuXFdJg_q}dQ+^B2`fOa%quYM<&1WD!W+xH(d|2_bBtNVlPw6^QqvC&lvp`?NA?;QQ~uT`ta- zkus9x_AcS(XBRECw`7&i8VJ!u_8Kr0sb!+@6Bf&S6$j;zYOx2X_L7hwjyGpFHr2Mj z;&AT-xfG0f<36YT#-43_yxQ`Zq3i^7U`p*~&VtGp12A$-SEM#<9^^W!2Qr|QZW>+*tt zK5UXM@$$k9a7~Zii>PgU09;d0jTk%H+6v7i-eUQF7oa)Vqe(_okuG=F;uj9(a(-*= zR0FDAjcgG6;HR)rN%%|M5j<4+)%AjpN*<%_(SNORpS6b*Iwk$Gr}z(i@DE|-5jGR{f^t7>a{Kd07k^HS=ud`84Z>lA zRR0I?gQ3%%eGd?z8R%PT;~uBkT6SUA#!1uUzyx+*6&4m|=oTBM&j90;nP`a3sC;o~ z4GO&nfIucGJ7Sbz=WQpLRHieve_D7N4brzLSLz_u*ILa_^5~h}tJ^tGX;h&(noJlH z04RNlzvJf7K5p~85HAFrBU+_^kPL(rZ%B}>KbmRV7Dn)<6u?a99(^}a$okJMJs^ci zvi;GA&)gQ%%(J|;8?X#B`= z5BS>i_CTG-2B0{b+Q$RxB|gXXzW*>~*946v0b!)3=xNy!I;>{Vl9S&hd(iTfJuMbb zl+e`hTte)u;lJYsynt=|`GN4es>sjZ1J>O}jHgdz1T1f@gL5xsTIn0TOlW5L^TpOV zGegDRl)nEY_$o@n_ZBs@Fv;y@_g!2_p&iL3GC_k>O|F{hXjVf5=}Czn;E?NS5@S3< zk2;xl)f(H!X>Fe2rh;QL+|S`3Mn_`n8R^ky2BFsfJt+BB|8v$t`sk{6XSG665U{m* z`}NmtFn8}F0B+>Za;bTf;C?{nN9;g4kko>{pEfxyZ8q}o2djak)|58%ZVmXVESI&J z!#*}@CsW+F8qJ*bzC_*`Bogof|G~PlpP7sTJNA(^)@F1tlNMLMKnn7{kLHyc1 z-xmJ=#;3Z!^^XK?qAB(njOcUoconfpNeHWCG{h6KJ@X7XcmCLdms1ti7o&ZEe z)9LTS!QHu97mIhG1yU1y_^>bW=s9$Ifd~tRV~ixA|JvEoOA0gL@?aJH44wdusg*^5 zCr})Ylrty*+y;BjFI(kDfRNS;(%$lmPv|)=ph{HFcrV99xQo0D$xYAJRm3&}Fo_WQ zTl@By%RL!s2QS*FbQNzafDkXWXQbu(e}I1(eEC1azofyW!2sN-f7GP`?fx;q(X@hi zKp=n5R<;tvgLl-;rPY60EP2l>IyyRBK=HnRlg!9ny^f4eek;lkot6)`Yv!BeL4Nv` zr}6OmKYnL9`!*DVnw9>7l zgkIA!ezV89fYQ&s^Pcd&K7|wTrRSaZH;R_=eAVMj-KPehMyY;&_g$kS*>`y9FcjdC zNicvV)8o7v#mYYoxldY&6ezT1pB<@(DBz^W!M4>8kqRG}+(exq!7E%s<|Ni|`UEPZkcabawIMMpS z!NDmz8(X!<=9uFZKxZ2x@-(;<3zI9$zn88#s{_Q%f4C;wHE_+Ce~^c-ZV&vM!#OCy ze*ikkNG@V576=&J^$xNHYlKQNaB~fvSo<+ve(Oe^7}36RH!!||D)g?i0`AT&Zf5jR zZec|8%iYBIgZsSs+(t!30uAwk*1cx~m3A=|w`of*HXbQlKAN2H3A=>e_Q6W8$CO<` z-WV|UFL`+@@^9_PZv&1V@!u;!|6Yk2l=~12W8A&VHg>%p4lN{)-iLeRE9@;#dv&7^ z30Vx0mqpJ-i}By0U-GMwzoZU)3fG?25Io;qFjt0F<{Ywt&CF+Fpq^$A7Jcuhs~trp z-EZeU!bvIyhOk8KyF|5nHX@2*h=yV{5G|aB>6RxMe1KS#KM^kO)kT)2l#u^od;-wr z2LC`>ByN5qVgSkGdSK~Wl<&Er$J`IWKNS9qe^7^I;yfE7(#u@=1}uOo-npnpHbQmB`{X)zkF=s*Yjei2t*YAC1_?AnDD z8!eTAcEhj}y9LM8{`=!$q6PoI7a{}k=QkAtnU=QpY=i4ck0p6(Ur&drlHEUPHl%<2 zit54lU@20lL~y&WEo|PqGj-16K})TTCEb$-@bmkjNejggixDF=#a_;qrxxyX3vVE& z83AM8e+Gd%gEpS&Hn6zrY8|sFE%EW<>D5iZD)+qLMtpK@j6H-&wRnJEu2rQh#E5YI z(E7;2j|kNJSStKwq#(<9cr#84cUZ#PNW10u#uz9BD5=$SHUkF{N}_3Qg}fI!^A%U_np zk^uFUId`xMl82%?yuC&|y6UVWB|8ML7diZR-pa}Xi)F>&>QpL-1tXsgO*Qem7coD+ zYz+Q;AqOY}fAIF`+XLJr?cq&eW2pNSi~JNVUKCyqjwk6o*iTC!#rhS1c5?w}7mTjTI@Y9GK$jtS{rO|}O%R`G814hgJ6JPv?_6w_ za2=LXnnX4I7p#>1H!UE(!Q2uS?;VHv|7QMy)rf>SRJDSS+K2?bgT1awdAm$St{2nx z{f}1xULK9pl9KLpUe){6SQv0@BD5byQB<270KCl0`%R>cG3^ocEF}bb?4(JJw z79!!_iHQPay0Kuh3Aly!%~vO*pl3>FbptG!A>HN+ZE(g)-IgQCKJ{#tJxQ$n0C|)R z0-d{^?ymzkAmgG9(owN%XfgK^Rek&r9W8jL5_FofTOb{o(=K&+#Pd+p#miQIjjrkn zjSZE50!-%BqxapD*fR=|eW~uGh=e#s&~3iF1Y_#hdi6jq{h$(%*tS%+xTQLzQIL!1#a za0y&LQZN_G3!6M~$45io6WT%f9usWAo5v7^uFS2#`Ox6Q_{np^T|;ZXF?@HW7;)fJL$?1aa|Hs|M>$C%769y zB;2kn_d5P)@J>qaGfB6f>Ij`dFZkqj&9W=diZ)_jzeU!l_P(}!$&{XgB{Z87!@1j0Owpo4$-4}7!+{~x37O}$CnE*HpQF6Ja-r-TH7$fBw;xjE263Ac9L| zxAa*SXJxiqPHuD6`d9$sBJyyc=g-vKkAI;Nm7XOXHRRGN`Bd~@a(%L|fg32cr=YIi z=E~xeV~G*rj9#s(ld)DO{XMpFwJ(`BH>m))4lZ*Cb;Ni-ea{LJr%;&WUY`3yb!nL& z(FniF2zrs4Yo)63zG|jfl)&?H#WW%!^~;A(CAmJo0s{aXma#j<`SpD}zdMM865*Gn zsb}*ZQ&zZd7EyN+j#3N)OFn=0a|cz{e74ZA>*F12fD{=kHu_XCAfkk3iWS!`-P)dO zGypNOey4u(`@}@r`8;6%vLq8cA{QR#49H%U9-@aW?tIr(*;HEZzYT5#EDCuhK4YL2{_YN**@V|5M6O@zlJS88Z@-GAg-f5_SQ*gDh;bfuO z?pDgEo@Q;FmlIj{5eqPzWNl0eb-Ne6xQB<)bc$65 zwz&zL#G{eF_(+6Lr``*Y^{J^RH_8tk^HK>??<`8S7zG;c3VPY+Jp`uJ1;EKlnv*h< zcQUffG*7mm_DbrL!xF5#2!Il659@zu=R3jmifLf5T48GZ+-wuGv7-J#uTzHgL^Mf; z#KhDIKPvQRJV{xh18#`{lhML&qRQw-Ca(wG%VRwMaNz5kHeXz(GoU%O^kMhj*<`raY$Qa+qDQW)|+1{ynN)OwXUC8`vuCDiNq zQfXutKIu;{@PlibE3$f}dj7ht*v=%iD8{=n_matIwNJIo#PA&a6{6%=)x6WX`YH2Q z>$*y{Ig%i8vzb~KK@eWOcFk|CuT90K48G>Ekh3O8kd6A|HQ9xhI}@CF9^}B>{X^HJ zDBx;5z~c*R`T@{JyPj)!arl6=Iu0L5aCmdIgu!-Wf<6bH-T0_B`v^=yf=~r>Lg@Js z>+AhBJPTeLmuP7&S8Dqdk}|HfYX28MQbxU{HIfhW^e#tA8hgvz<{TS${SwA>Sh_up zs=bW1Q#;B}pBQ9uVLN*@!81{oj?UtrRWqv0w@X)+wtG7mMRBDrbHk0CP0p(F)*WR@ z+23G7Yp`7#=Vyvj4`6$bTVisTUjV=lSepQq3!{MZUX#kxx#C~8 z5C0w4W4QYOn*k{$|2G=d{!h_pyv!QCrEo!NYE55PuM{~PC%8>%St!{~rrK`5)U4ig z@a+6Cz<<(w;{Wlz9-U70cC-EEs|nXV^rri+&d&3c=)tkW>Wunnl!;D$KT%oC#C0F? zQ41s51LFz{o?^}1eGaycqqjJy9Mj!>A=CLA0^)nWRIR6Z$G8+1qAvrG=yeep}#_9|CLIc7Tbj(fRVvfqELp8G?cuWm-?wd5P)q)YC{Stt)9BMOAQ-0oAA8+cFST`QjJN2v)mC~D zAroG5|1$}tD`;E0FdrX+0pClK2<~JpMgT-|NIW92IkYplGaU<{PhrBnHiC*5fw_6x zB#zf%yNczxA*r3rh?k9@k>z-#UB~C+;JmHlCbn+*>RM7|nyfuAJGKH#bm>F}TpI*? z#v^mzvZhQ6jdpH_yrlgB8Ww>a$Me%srmL_-lFG-X@_eedLVrqQxx&DM^}c0MeMILS zr~%5A&}%IOnQ-q*y|F8b8kr~R>ics5a_MulZegMyaf-&}Z#Q565d}g&GbS1AbM8lX z0;Rz~NaKUy!(zs!;c((2cXT6Hd_ONaAKhqmi1#(_u(6iQjGPb9>Z(sChn#uc=@(O7 zzu1duyMk?YGp@WManDN0!IQ^Tsq59T)ya0f;nPZvqVvYp^X%*N2;k#brKd#IVZqeZ z7qXjm)gqxqEj(T4>E{z8%62x0g8(<J+uL_>zW%HG^h(9nd|E)VW%un%x!?AvJ1O74hkmF4%U$&pQABuWW^ji);!Wbi zCnIe4^~|iEHUf`*2RCqgDP=_P4O`q*9RVO4qrwEm)v=AgzzRA^vYm0KNIUYJHp(>eCOFa6K zo7jWRfDB0)=m)CpgW;u_A-p6FjrI~#zdfM4l*tkUNSM4b;VxQ~i}|TvK~D%jBln)f zSlZ0vv9%~b`HtUfVy z(XXnwEeh0toAt+uI)PF6dZr~J?mm3-8L0r{;^sgh>50YWF2AbAPlx*-N2gRj^;+jl zWRs<^ES+&zH^iC3=@#NZ=Po($eJK&rEM^#LogdztLjq*e9MNOY-F+#)Woi?j@iNGA zc0!=kKG;suut;$el!bvD+KdY6;a%<742bAO;_^9JoX|*=Eza|1Sw_`LUU|@{ z3rnx~=<}xk_6726fI7SRW&X-(wO+c{w#X55 zv49IY7q6Hnk>!ggL=44>gn{@==uKFgbS6iq@Nn1zEFL#=NuB}85fFza>ZSJ__NNdSDfxntlDG3c%iHaO3NJVAC<5P05p0#XGupi1oGxfPIr07!1cbf5 zD2&)-y_D1u@u*RApNK}yi(bC`u5=NRxK-+fe{$+*lU&(6mNHxJKizRq?HpM(dO}^+ zCZJto8B1Lq7w%X+Hx=p~owDTf^{_-pvRICe77VrgDuo1(FkBQOE14fUh&XJ1pYmHY zQi}X{!9r1oHoyaL9}xbvmNEZ3Kig-6wekATWg*!5={A|0T*PPl9UzQe9{*5;6K#wZ z#Q7h8GFflIB=`<=P(6U&$0lf&h76n=^8gxY#ez>3sLAAjIlnau4zOHa`F-><4(VF! zQ}!i4fM8F-pQ}szzBHctU)jDQnXCr@`LzL-y&r+}pZm`Q`3)e~q!UMTGFi540pt>lRq`~d1MmG?`OH&t$omf#;J+)SmB>4Cx2X@}EAX|`w6|$z1lU(8?ytLiOiWvx zpQw}Nz_;M2NpU5`7$yTlOMm?JM^u4Ap!T<@uE^w<##D=(5L5=}Ua#euI=Ag<&No61 z`5izj*Afx!46q|UAT;wkPCaY{vN0E(l7HR;0E}T(RnU*`2buHkd)7pZsV4p}#;B|TZfdtbLvT0^<5@_o^Aq$nED& z;ztN^K%_SCHh-jK2(wiIM?h?iDED}vi>TK`6^)-O*=*!%TaC&(>i=RXm@8m1Vz5iB zpq~`5sozw~;+K$IQ6{W%7Harqm}pM{_)05&vwCr(`B5~?9}y$wh-%}4mruRFonPwQ zGVuK_@x)yxE^E5Fxq9G(icQvf$AKOy6zI!{S9oquS<3I1frQKo(7pLUenzIhzaJ>z z41xDi1y+yBYqP=a5B&fD@%ua#wI6j^4JdLpe1}=l;``kqYq&$`k;rE zB@V5JEKzOj4GG18DILvM4F?2BvdLPtjKg|hcHBx5CC58vPADfrNQj;tV?|o8GMge2 zvIjz~t0^Y%5!dk#wMSY65EvOF=da<@mRs|g?{;0sE-L%m9oE^V-M5TvIEEw@$}PJd z4Txl=JnyQ)zm$9YK3BiM-=Nv820ne(hoTV3a?j4)AE;raNzht%=(El!)qm$|Cu$izh4lk>KYapI%lT!aI zAd89r&-q}0bxIRZd3w3}8jM;2>`N7hNCD){REiy+yg$H3SzAX;Y!Qm4aG4bI4T>ES zBNEW`0iTs*T?rjI8<{Ta0(=TyOL+iIdVwy(B+<=Br|<{;aOWon->Gsz^8q4cY!oP8 z4H+oj_;WKa6Ze*$0-O#S;04;6#CRowDD$Vo6YK6+ z`z*HyF6O@smf8e_DpZ=cZj}9Oy@4oD@@bj8*MG7F4vT%x`tyXGeNmVStBR7y6O^O= zNnyo6{?*JzwTQtf$$BBp^!L7t%cNXqp}P||?8i#p3F_Azuw4h76l3ocvc8l&TxUq- zVyo+Qw1sOi-o0^+Q>PT8o^GhLgIgC2m!>pB*~{?DbZ3zy806)UJlrZf2%ubW_% z;4RtBsBPAA?|t)LO%Ua1zE%v5xL93Dw*nk>Y>Tc**_X{kh9i=AcuLBe879gHcu?i5n^^E|ZpY1vFJVL1>L0 zH}>tnC;~hfowFjq56c0nC_2RnXmwa|XW~^7ySawCtrB!o`BjDT#o(3{@L&!gAPO-iT1 z>M?VAb0;T8`13gia(m=`)8pgZdk!4xw-QP}%1JGA{Mg`V9&p)r@YN9#mo4UfTj`+j zlN_RkX<8gttY=zir9c?^ZmP#{5H1_}ahVq)i0MrZA@&(%3>H=^Phjx4ZI)O~DD(LuAcMlR6J7XrAf2P5Wy%uox`WGP6-27<$yL2z89 z?Ww9F%S~nEj$Gv4Tqlh$KK}b}evExGyyopV?0TYj#C4+94jPb-Z zf=^>;C20V3wzNT)MX=4~N6BEg-6k2)1ArTPviA8PgX{b98sQKF+=m*AHSmZEUSB9$ zjMKHVTu9NK499vHi^?rJh_AZmfHM0+6+sd)lhgZkjNzsp1`ad`*^!}4uMKuuZv`=B zG#t&Pt%s+VHHZs)m~jPe>=8nk)tc`?EF@>KkjB)Pl+wY*aHm`a9*-fFz~FBgv0@C$ z?^FqheBLxTv^wkyhF((MTo@HA=j|IKV@~byfHVodG`B5YWRCFdRxCEC*>MC~{}KUf zLvJ0Njp$ijfg-M6HYI`sNTBP91Hm{^fb8l1&B+FwA~*~<#iALttkQ@x$%jw<9|+@T z<%^(IZ*G9+8OizPe*9G}W6Qxcn|E++5JLXmhZETd<#t)MfOr#}^838zo=mspZT))A ztjl`JoAxHDTjcOZ!l!NZ)lwEl>%GUzL69AfuCF-v@WlsQNgz9--1me|)zaP{D?vE= z-F7h+?BrO*=X#XpKkgQ7TfZbnnlVe_%u1!ZEek-r(!XH_ zo?#*lVxm|YdFL>OZbD3!jKzQj1<_ah!Okhtt1J~qk--&fVImU`BGbBFhIEItV(mGV zYsAVxXUr~oL-40fad;$pu@h;n3IOi++6J(|ss!dUg|`AY5cg$M9_YOS8zI+zAQ?*$ zx)m_FbS0(ifdi$FCxCKDAJ8XlZH_pXAKzb(l9BQ>x##4gh$BQeB!m)gzYT46aJ@;) z`syckqWuZ?{PiUTK}?d2;p>Q*D4$(57jjwxOf&h(}(f4@c$2JfNWwuL-bOlJh z5(*yk_B9|>G^#O7?;(u?#{*A=$}5r1OZLZ;RX#0%0!OE;{2=i-2HBzho$|?LI?kC@ zqD>kOA%0+gYg@V)KB5FhlkyYVsp#g&pJ1l#K!i?laV!wo!;mRc@qILf-1Ly;_o zUVVai^1OKL?epq|ST%G{ei;|#Lx-`kZ~|r-hZ4W{+9LaA7@$>TwpD#h<-n-{;^O<3 zt)V}rqgpZ^lzxv2s}cuMqpr}rK33wBN)4TCd?1696bl|@oxJcy0O4LQa|t&MO@K#u zCrtn7-rLkrzOTaK0_99%^N56({yxzfg8qpFj%`D7TygKag6e{5Q4uQI}S{zj~h=wp!Qn_l@)nmbbwYc5{5$yUP5c9SRZNLJom7Ufy*N) zPg*h+g;+Raj!Tl|cAlnZvjb|5@;*dps^u|3lvRglFb%!2LP9Zwlh>?D2TJ#~HIo7V zPZz=O1w+-Q{A{-30#^+Y{UlAW(he-LLGg=(y4`N7Ns}1fw zT0+~2(#1cacl{RZts{?v0a6RR8B<@ zW0YSC*~yf{??PkV=RV_XbiK4noKEk$dxUT1>biPusZc1nLjN$cE8AY$iW(1jF57`I zK`!-0%%irdA2UuHB7o6im{He7v8u2VI4Zzgg6sBf#5Wiop+Fe0HP2;mC{Ou=0c!-9 zph5kyfoCHzD^YCEdLW-KfPPN^G-8|GaHo#-KxV{PQ99Kf4wZMJwD!8%Ae50HK`6sU zCbt;m&112tFr-E!x0)<*v;$$KVpqpT_hrI~G5n`~A|T{FkuLet@G0J%hFl~C{vk}u_tf^IBU>6x{wS%5G zV5dqzXjsZb#5uvi+JS@Bp!9bM(7%ZJ5(+ngfm9MCrR|YIg+VF5lD~g;sw+SdK%FNm zJ*lt%@S{H*3fvuTi{SN*x>8ExjKG4=~ER%@ao5LKx@_*hzS1xv(PTf#-W~ z9a-WN!dQs{H58(O$iY$YuQvhy6+)pS=3Sq`hXMX@gD(!;e;oeUl&?O3xd4m7cQgqTchG>*ZdN|)jzBKF>2$ovMvAvfZ z`}Wx$8FVtY*}G8SC2jYOV5xhsp&6Q+911t)VKCMusw7!$_Z!Gdpf48dHXvN^;nr`z zHPFV(?anpoF$vBkY0ZMqyr#nTZi0C5`zudz)z6XLEXW=2G1Ft$AV!8m$kIPqVGVXvbUC?9BLi=!y zaQIoUf{|pvfc9T$xbAl6&r?JEFmi;E*FyDjy9qT=e8GTgOesybEMxkUYkBC}EmJn6 zB&KOB%fKNXxic)?;9$hLE`9Pai&ze+Rpw*Fcc<#}pu~VcMEsv895X4v?WGpb=95@T7k2)t@d4 z+l5eiI;=>vMZJ5g)E+c>q$C~m7#oq$#|vqph2VR{(=~J=B8OytvO}ma7V=x!L&fwk zknJ7D%nwMr$%vNV;@$xSGLc)Uk0MKBL7s<_JMW0%wfuRpp%#n*w}j)^8b@Jy^1tQ< zRg^~l5Q%%IT1GS@tMuLOC;^(#je??Y@8wa_IPGM>rO!6xP~Ag#OAp5T?$p^F8+pwhe*s^MiYYEGZo1Ku3O!NM2Dxv60F>-! zK^BJg;0?J!Ga(B@52R0d=P2P-ZZ9H*5QK99TJIPxMAXt=k_fvca-dib-%ls@rt7 zgeP`7<3xc!PyDCg5>}i!@>DxVdZQxPT;j;e_q`7-K*MpmdbZZg2jDdV+%!s0@w{QKMox>TE$g5PARBInSJ)g;n8w2WQ|oijwHL(^5ad@^nIK~Yb2RQ zd(j_vd(}pEY-qoIUQU5cNJ|NbrQJkJp~yD^2#udAkYknmS;mEi_j!Iz2|!XZ_%#h6 zxA9%R+OXh>3+Z4iT*0{%QYPlgG9YJPKfkP9rB832_vZ;i+pL5L;|hrOv7F zZJt~fadm}`=U44Zt07-r%89y+nxKB}kB*_fJ9o2Ty^{h>>#grUtW7}{z{Q`EVq49B zx(UFtR~z3yR{R2?vf8N5)#?hY0Gyu!ZoNAArwMSscLBcFNFRI|4f~T$kxz4d{RPLe zj+iJcLhB<8hGE8#Bdd^R8#b@Qd38sifGpi4xPW-Q&Lv2gqFXc8AWbs?-%K0ZG`E|* zwS992f5DlGq9m@MKcbVizf(+d3lYivf^{?B2B%GaC?ohj&vg=0K{(&!M-V|xAaxrA zv?^6;Bv=nim}E6kd;{R%zUhgsux7jwSYORkbbrJ5wtN*@d%GnNa>7Gj;_2F=M)35H z|2>FLjeo*h%FxNB*UuP`j@096ZZW}O)QV9rzVi|njT!`p$2Vr?7;*0w(K;Rb!Y6R@_CqWSX8EQN$}%{q|>pqP1u?u)?}aA|jpE45q0(B3b0C_WE4$X%bb>=S4-3IuzyEglq5`XmxlD$*h=I zZ-1-O;^Z=x~WhLAx_n%QSV7I6H@q&H<)LDWAbn7WU=|H>@u1Dp9`UVGNruZ~{A(94i8Oz-;|Jz!OIXh)3rW+#K-k9!)J{%80y|ER zBca#Z=RxK{{t&cyg_4-1sT0u>Lo#iNN-H=+n=V?sfB4^8FopDCw)$2iF!arLaOY)U z*bIh7rfjooO&M)v|KsK$`h7FBtC#P7U;BLSF-`%YjCgk@M8-)j3)Wurr_ zJX)r;i>r8bk9GoR!K|BRMDQ#(giQEx-YKDA)>%yj_de%x6Q9;SJd1ih=R3Wt9RuTO z*Sq*RQ~TWGEe=85J{0W!$%yb?;;)|tP0SeP1kRmCJm_IW7>}AIr8h!fBM8y&MM5LE zl*gUr*8wAbD1IXUfcKc|Y+Df3QLL2{5h=5F^W5)@U20|no7#0l%Wu=G)UEYTGqV}+ ztG=C3_(WY<#}XHpkQcM3k`*fuUPsTW862vy{eWYQpc8?}v3_+U5vxXZp>Agg5~e^0 zG9Ubj9d`JGD^f^`lge$3^jsXZ3xE68jJ=;+N&*_W6v!|Y^I0V*H(_xFchWt<_X@_A z>@^sszr9xnUfh(ThV)Ih)u(+5YkzB?hmSOSs`a;YyJWnhACIq!)mn)_Ehj<^9f`6u z@1Pj^w!b#mv8~I|DH|vWqBgQ%U2)*1{G;9FUx6wQMQ4T30+mG%&0llD7;&yY{xoML zPX|==a9h?xa~2TBDGs?fh})sudQJk(X;|ZWGYSbE%wIW)mw1B}i(T`(e_8yRTz8tf zXZ17Vnd|xU!)*}=KO_Yrgx8X~O3+r$-8t|Ex>t80w<-bge0UzKO{ z+|MxRNeh;`f#DO-1z!r4dMYqU+hPKpaYTKd778bc$dJXlulBT>)Q~`{0;X^WG%nr4 z$?#(&Qh^W{JSn*IU@2u7@MPvl90mM!K{``y$Ipc5&rYRHY#sfk8|LQ0V{Lun2&Ytd z#=X@Y2JwWJjtpxGYWx&}$UuJ2VN-<8n=5;Vu9|5Uxy6LxY|g`4bRctrb4+hC zU=QGKXJOe75+Ttyo)^$Nd!x>^i8rFgP2B8$VL&daq(k1#;VlqD;K86ZCWbajS`xU( zNC{8~#^mbKOzQi1e9HbtfG(NV9}^{myG|f#8GVoT&cJwd{IP72aZ@wtT@(=&H4kbD!X~b?aO&bS67+ zpc|sfM_)rO(90}K?*FMGAt8=Cx|aa*R83H3CiCV32c!+^fVseYC?M&8j(Nh7-e?CNyaKo(E%|HXAA9iW!9&)?}CO_nSX?| zz-v22u)I(V${$oqh)Msbyj$Fbc=n786GB!g2k-bKZrO`HNt5y-M9T1q$zEX8^5Us~ z^<#p|rTxCThKLa?aOE5I9I8Psp*iD9#hxs4ZlOo%HqveP$n#yl>zKpBm#z}XpTlk8 zI9<$)fsGHSl8ch_rhcr4gBBtR$D5xDAG8p!zG_$9LKo1l(6>(aBt|VueXZuH#$!bO zvV|ZbwLOMplBOkt`Nd8IbM%-sL;|D5-d_0^BGM0<6N2mU?ai#1>>5Qm41yb)P63&- z*s$q(fFi>;sp|30=PpoSW|ek^`FL^9%U4Tdgy!Oki*Z8tis=PC1)KTme2YDw(rz+O zwhbAYP&p^&ZW;ViVH!B(|$ z-rSYJQi*0;nYaJ;VjzV4M))9K4Q8U{b*9h}({nAH+60EAh=_0Lm_M6CN!~W{ZQbq0 zvUvecc*e}%ol(}iSNqPpAl&{8S>-%PPi8%zyU3V6er9`{ zTCP<(Gjk80xCuD!ig^=pk8BCyA9~g{n0_LZTOPMjvAjw~c-`@!47Wlyju^$yCQU~S zKzan1jgo!w&L?i2Hr^&L9(^y43Wj&4RtSxg!P(Da5C^Ce74s)~zhQgj`K*#!-iLy;2R zj+6LwI=5?9?z*pPAw_H|U2PFA^NPC@6HhP*F%+K!B;br;UGkCf;S2d}+u2lg__H0k zzv8U5RF`rkk&>_H4-*&~VzB1UJ2rzYxn(?D#CS-^wljY+B5+r!=-+lVFyVjUpNMZ) z{yv8b=_Ko>A{`r@ju!m$W{xQ{E}iTr6`$P1jZXH&o?rH19$+MKZxQ>+tY!-Oh4mS< z1>MOkK$MnY$wp2D<2KeP6z^i^$ml(LoOM#3PpBx}LV#sy@1OHQBp4|ODx`+R+%H70 zK#U4zQ8fSSE(_vilSRxoBoTy8?+z{bm5Md9k2p=kNkc=rJqQH9--LK8zQ)0aaz!a` z9P+!3WS)+SS};MFEv*&UZCscgtj+CwBA+w%>22-l_1Q_i3d$%JTiHwzdtETI4IjnF zZBN{-F!56VawpG3c}6u3Wi~(Y;~y-*r+)IogXkSrNi2|h-rz$O zb_?I*KLlAb;>5orDkqG*f{C!H8=&i)jPv&b-v$P6JOw;-l>kd6H_b8YbqmsUtE9M+McpUvm(Fdw@%gRAa1 z4*||9>f!$G`8_=M{~-6XA32J#{ z50>%V4l;2wXuW=tOwRw#;90N}tV7B3`K4r8UXWPu&DdH{m^nn!u(L_G;9(eV%_)i3 z%i|>RVHhhAF17h-^kr4FJc=|llQt9<$6XIp7$htv+*%4DaS0tX_owwqt%mGb39}a{ zUl!LjD&M7jRAXgNh%9FAB?YEfuKiL(6qsU`k9G+zCMWIM2Y+S!Qai)T<;V!5U;AW)5UU$D+ zH)^%~G6R|J29usYZz1H0A@pVBz7o0zwmw1J-4B-sPNAhC-7ngLC&WDZZUgDg1#Bpn z=WZU&EF%{1kdj=S`D;Iuz1e_w`>@5#{!C4ID#-fE*WXW)A^z@2eHPYMd5V;%x55Uj;|br~C9#Fp2TSFsH1POpFgtwEig*vi#iR+KCDCtpzNcG=sU6xDpbbFg`w~0iz*o5 zL$3LAyF5FHld|cL)`Uhs<0>?WD!m16Lu|r-p0AMhDTxf@^>nY&y!wewH7V1@voABi zBiIFF3L2UjWHpLSJ=8$;qD3F?Ovp>!G7k}ZJ#6pf&uzxF9Km-lWmGe`#@JT%)U7Qm zn`v?faW|f4TUp{t!y$ozM?1TnjS}3FiTlb6nx7Hp!_1kPhhr5`_nXgi5MuoeikT+D zf}nsWc7mAFBYPo3Zi=!vk0Ye$fs`ObL8I?sF3w867hRhz&(SIY#0PpN_FhJSRk~!9 zvXg)HlMjc5-`>F~vkgTfm39w7Aj_|l1DP)kz7Gu8ov%KfE;8iolXA{I<1ht-LoEE# zLa^}$*nn`bJCJxq(N>r{PtGRGfE_E9ZQWac_guGVG`l)fU+ys%i*M`>(4S5a0AYz2B^~tgSX&&^>AVvSfvoAgS-mAN=BV)EXJ+GL9mX zcG&MiC-pz#Y=BM}Ttjg8>G}W`x)X*fqQcSF0LyGr`gH;9b-~#S?cH)lSk)};jRntT z4r$zZ0eGh+qZ6k_Zt*@Hg+r^2w$fK=I%%wTH1dR=Mk<{o&`C?>yNS|emiDY#h4mx` zAWxcqqQuof$Joe6Dudvt=&;^B0%fJ`bAnIW>w@4oRWo7XQ#?YO{ckB`} z$TFM&Y%tE&7`9PeVlS7GCdTW%-cuQ2$>OQcw@?yc!j=LCS%&Ic{3a|IF68ndJ)bW}V?en&dl93#YiaK?5^9MM1?8&U z`1AB*wOoaCR>Rr5pj;gWTOyS0@ycD}i+;QWCk1*8m$FO2J$nTtCLec7fx@jA&Jd%> zULi&L$_5sm9%nMmiLkb{!#MER?`Z-n|_Sa(N7%AHDSfp%I2IYM{i!1-bc~F6a3M8xDK#FemTPr zKSv?Ko{Xqc%b2%^`G1awVB}Z${XApf|9cM|Is&W30@LzhEN*YOevA}L|bxmpZ|A|k?E#nk=EJZN*|KN_VEwhd@#F)#4)DML$t{zi@ zR^L$F=eY0@&Sx2^YGw-<#xPyZvE0MjPd|Wdu@b>b3w6-;0fT_q3>M^BbYYUeMJ|2> z5hYk159R2{umXq>%eNktC*umQ{BGtH%d93ts^e1?UR9>yt6SN34<+U*(_-j5=c*N0 z%`zr1SQYtu7=vUJOb-sXl|(0}cEmXlxqhNWNB2c7gz`s3IG74XK7~H>r^XQbI+#g- zpHVgSlQ1DQ93PGYitU#zU7r2*a_!W0EJ8Sn*-D9HsTC7NR1Eri1xa&K@As@!!jl{ilFmg^%`5XCA=+N3d ztj&W`Z2p#$Z-a^j5Vdv6q~9)JKFxw2NC|)klq71g>tSMe|G)Tp>!>Q*Z*6pes308@ zQqmwDl8Xib1yK;Cqy?4k29*+!MnYgAvJ{bSP)Zs}LAo2HLuoj3x%d9l3h^T+EL z4jsNc&vVC|*SrFk8V>4uM2;6z^vf56v_hc(J!!G({kFk-4_UYiey+cNjW`c{(HYA( ztSUYOPK#J>b~Yq>fBu~P_}kww5N-11X=io6f;nJ~@#Dv*lrLxymK-@bu@7eel>B=kGkR^ibv#fALk)>cM;NVK**IRS0`c`*dKghhysE`Nl1 z#ZN>_Yuy-(E8?&IdyWdsa~zF+12;sY%hUSC+&WK+F6;$2^zPD#}4W zU$#Oz>z;ABU3!1Kr*2G5)z=tHoTlCdk%Q%fKTU<8Md;#A z3nAj1_CCg2kz+?S5g@Q4b`f$B_uux}+dUa}UZf>mS^ckZx6-=z^Msia@CvsM>d{hT z#D4tM#nTnUo>$V}$_yO+WT}xok-P7D5DKTYrie}=Eu3Q`Atb7oFh6!imO9tX*2Ufw z7)?>T)PYHWJWv$#R)z|U^SZ>QkPht_+SUIxqD5S~Jo)tGS{tiq`Q`d4-O-eL<`$n+ zqb(A&P!Wt|v77|(4jbhpzKWua-PbbNl{xA0?8&Aa`M?~1VgHuLljg9imB4S_0@nO2 z7&Ep!G_Y;JBje=PzPypr4| z@rdF$Nwh|b2FuD@mGT6mi7!?wm*PYcc_$l@i7-MMOI>6j)x_!fuZvqmFZ!`~g!lgnqg#3q-B1! ztq`fW?=JzkOMuf$P```lzBs){QIy`!rs$9GVdO(>@gp8#5C1d}yHm^UqBRe*{Z{bM z2)dgliLqO220H}BC@oC-#^9#>TiDQMOKI*ckKF~|W%()(D0ziObutC)T9Xf7lH(lXpuO{+rvt)s&22 zc>VBQuYQk;jSpg)48d;^^Euv1arOPRFgjRrZ8{{M5q$;j9_tdjml48PF2a)@(umZH zCjJNmTA{B&+r6~ruSv&gWuDhG^$jFlo;|7idpM>}Ozah2A z5nP510^1V|>_Uxdyk@{Y>N{vMLO^;z3lTZO5Vjo%4B44zMWXM+MdsUJ+qzg?4s6>Q zI0Q;Y$6(0puvxROzi$L)pwz;a1mGoaW9YT=v2wk93_~vkGF1i)3Lz+&)opzHk>7JL zy+|Nnl|L9G6dQj5emLKc>VWHt;p@s`TsBwtKWSv^>+T0VrjX&bX)>QcO)?fe)YQAe zkpg9sO5d{)eJC&QGu;z{4R$+NApVL-t5={N`nAgYliEBCDaaPG7;0K0XdhK=)*c@{ z_Wk+Cu|E@z?g0phqpr2=ddD4>&nZE?$SmrikX&_(TInSF z5hMESzdv`1W!A=e@a~$bcyC8$==Rq8thQ~MGH27)sYt;(=SU;dYIW+r4p&~>TD&H$ zRF3HFI5{UrJXT-kk;=jijWQJ4s%k{I2=$!P)W0uOjVXi~Q}Po$&XKM znV5=zU9WF}P3+X`Z2_)k9?KaaJRe>uHM))2T9L9~{P~p~w%#{GAV=!1eh3kLVF%y0 z_h7hHxsYJM(--i^rl^^+a`{6zPt;p@rM*Wf=oUSzv?nnfA&h?FFa!?)BDH=GqeDGb zC5TaYg@SDRk6po!epNLF^6};%-lPfAfkQz=IQZKz9{rjuj|ypz-hql(D|=AM{kCZG z(?4vtJx26D{9-c=l4FPWZe~aR&KzGmS~aF&YiD5t{u$X}5E_%C{Lc=%u8BOIzLVzn za0jH^ndYsLvYlyC`=M}Q3fZW=yOVFRqW<+RKWVVKCsn;NVvTzGLrN zoAjfE3-AG4QiAsk;{DRlxHX&Q!e!C#3(x(tw@*wCxUHDfdge~Mr)U(yQ7p9B9)qNl zVa|K(h@*E`mWkw|NGLhDV((n)K9-^_P?PB=s&9P8ro8<4XPv))H6$TCokC@o`WaxX zLQ*{!lM^`bq;CVAE1*kstdp754j2>RFP2A2IBvb6ehF{>3aoGGMkjrv!m512Ya+N9 z7tC(yeM4>#Fi-rf@pea^2+SDOfvXKaC02>eh>#EH)hl7y@z}?LE5aoeM&CUzu`yRc zC(^I2WK1f z3v%{En8q-hhV&FGT7l)zHOS)V`eNu6BtUu$=4?O9Z4FjYaL<2dzD3R6LG$HzR=Qtt z8&NFl-a(tIEhLWXsgaf|77$ZyYL8$JpA0_^2vHL_$mUw>WUOHt2zZayS9qQCZl`DLJ-AcmTD zsf+~mlg@yy4LaqIu_%&c}G1c`l;Q%X%*adWusshgT`UU>CR%#ki!ggo+_Vf8J7nPx1Bq+N0-pg1Pf6 z8+Nu#_(;4$*UHE2z(BJIgaOOU+YR@O+;n*i+)^kcHmi4g(Q4$}VtB_bGA-{34kkAJ zth`ZPq*;^*ulGXgbW1(gf5@=AcjqJ4{?=YByo9K`DuXRoyd~>-&3%wOFf}w^doxNY zhyQIu2fKFmpsw5Pa>_eps+>&s{tI;AowgEbr6h)=E#x zYJ(8}&|QehdHDwldVh&ffa-|yRl)}EMQB2}mRIzcNcb_}z#Yc;Th2CklB8T( z*d7;=quBLpP@`YJt2R*cqi22IOOX6M#3X#DbPs$gQ0FNf1$C!WKWt zKk2iNY+SC7jB^%7pe!tP+3XT7YlNxRP41-xe-p)aK)iU=iFbO3VB1NbIt^dShw`|I zj!A67CGKs<9Gow5klo}k?%1kVCwN~1e+Zi(1e0H5l44t41TTiX@$Zj9X=F8^$!9Te z)$7^9Dfp6F)MnUTHAYkB5C=A9vFf!S&O7ZK2A)b7w`^`fgIK_Zx?h;){?56sq-Uo zM9jl~)~2DD@AkwuVi5>?`W|@Xdx5Km;r`FLRmK*npq>7JcTJh}b8j+sRNo9j(T7;9 zFt0=g4`e245WZkTbPJ)(_jtTv{wBys(rTX?Hpz&=jF_;C)kfrXp*w9*&|k-W>40g# ziMovpe$uU8&8FKArQjl!0tU`xNe+# z*kht74iN~kjH+k1qDbw6iySVjKSn5al^qkxHxQQ8tC6k@mH72LuqakV2xL@I%Y@H- zQ?2!-zqJG=N*x+g#&OR-qlsQJljVJjVU|Knn_lfsOf~SP*0PXAq+B@oMM6_LQzzIQ zh8NHr9Z-NZ+!c-QGGNM(W`kB$gsHlZS=;jpuQc@QF<-+w-8j8n9+$Q3$motQn7|}w z?xc;yRJetN1?KmR2+fsV#oP)eHPv{L%K{T5a;z$5I(uiY-%7F)AV$!g*Lk4lH)YCm z3zU0`p>q-bJ|TP-*%fuaR!S*sUh(tZ>Zv4n(%a8Ag%)Y%q6%`LNI2+Ii(@CeR4D-B?P`-Y39Fft+c47h71*OY|D>2})Pi{}cZk;~VOQqA%B>&N?>1-<8gKTmESS}$21x`i>zM7kl9S(x z+SyK%j}5B3zbJmSMs^lW*scI9gW`byWf{z1U;t$9ZW&ralu>~pKb&G4p@mmrV|@R< z;3nt~a)*80{R-H=`J8OGLg<||xVk=f6PdXZJHe#Jk8=X-+iC$iXEuE+W>c?F0W`j} zg02VlJ3hDZWphqm6mxC8%?rU5etb=$%WAMOgH|57C%%@Wm?^nUp%+E<;ziF)Ns@V1 zHWQf*7d56pIlo!u`1fLA-@LIt&h$Oup1wPQ4A*$7myG#lO3rYnFV5A-M{zBVw?8b1 zqsVC0$v;*NE392tKkhy^e%>%3SejU}chku~W?QN~jaPj+&ldllGIho8(-_((V#J)s z*Ay-CvFbMmqTVF-`wM;P)FCFmOJ~z|b99rXrS?#~CT#6qs?mDA(YI>T`KsYSpE0s} zCqx15G1@(Wm%JurP0+GJkzXk|%)Fb2GT(PtGuD$%crWrRK|O21tE(RAHpO!FF5W+3 ze}x6#CBE`fmj&J}!*AGKaSTdf2RIhx&%p><C@I;8m$6uhcXv=+W#rbA%*PsF7Noq5iU?=`{Oeu5XvMvHJ#Tzpc6s9CT0I zm%m_tuwMEyK)0Gs2JbE8iKT|rK>p)nS$rzK+_J+(f}GUIVz}6BsumKg9~KyOkq0A# zJ~LxRXc4;&WyZK%4W7Z<^I{k4Be1393rhyBODm(N8vf*P07!{eU7>EN!VK2E^m|Jp zQB20~aFz*#|8OW$^oPGnsW5yUd9e_v6N_iK~5B9L%@8hb)ipMg0`Bz3YD5#PS zDj6_4s`PMLZ7YO<%JCMBP{7QXs+onsBa66kqi?<1LFRdROiINQcar_Ew=@ww*dF8K zN(xI9ad)f~cMaIN8q(ED2@qTHJ> z=3sEA|A_j^yKFgDIO3jgx-3fuT)>4ArrrzN5Npok(}MmOT?1 zm)3(;u54t!W6;C|{TkCySP*>k{U0tsrq}1;s){6m8!!I~{@BvHOz%Ph{++>aGuV9P zs!}z9Tp^HsV`1`GLCTDCyzz}+bi{((=kJKs)A7n8*B;0m2&|a$qfPfa;yOFs^f%bI zNPzToN@L&VnL58J09OQ`lF*a9czA}JPat`bIZe1-uIpAY3nK)@v# zG?Xe-yY5O3xlWywQiDE6M4W*X&z?F>`e0B0CJ?#8ru;N9^|g&w19#=$(T^{gtd`ef za_+Hvg$SH?t*}!OZTi-GyhJ9F%5;Hc0_CY?AP$ucL6T?9Zi2IE$(&^2MmXPBK6%hf~V(8rPl-(Z{(Yn28OC`SPW4 zeyVVwZ?WAo`Ji6vhtYF^6(+T;AM!48TPY{KN9LFZ6C`s2A4>(y z7KTU}z|NWU3{o-l_AOYHBc=c9o`B1OUdRA6FgRxkdXt_@^wkjEQVAXm_v`#lKZrfQ zpc5ALmMZ4yMC+iAjxH{|VpVLe*?xBnML`KCRD#S~r==voNU7UwsIifJ{Bse$bBso3 ztTy_AmW7pKOVt7^1kaN3vvQ^+SIe+U{S}y5OO;Tz(Fzn2R-#k81Law|54Vx6PzoVv zj%c7L!*DF^=hMe#L+u}0aY{dqp06=V? zIv5XqS=9BvdR?o@7`Z+wS!O%-_YBg;>?qa${2UquLuN);=Wd@Qwkc}l&f{J%a-BO= z4oRK&Y>`#BXunCrx+nVvt22t7lHJ3S$GT-}!M-!4;T{aedq-zLz4rXLoSBass_Dt+o5z8YVkt?+i=N~mGD9cp z1epy!7m;{9UEDI~8QF6VQKGiV(hZ`ha~bD|{(_@D?#iGs>dE zWcmd}$sFOP`|RMAPx&3^qTAqhiu@i>Rk4(}2B_s{oty;aFpRD|gwE+TTO(v`g+iF- zEV2K=h5VYo`r)}F0EO{x#zMP0%KQLoY2?X@rhoCqLi?gWWMztP)nC{Ks1Lv|r*<}v z-7c}b^Ii1r=lhvF_KBQfsxh4Rh-)dB(&pk&$qsqR+%R}gJG z0`jOo1dk!y(Y=z<>@*i4HVe^<#iFIevL_C2=p>3+vHLYCuXDE|qL;jtS?s{G~9hMR}_;L>mS_iDN!VnVF*g5tK}uu+xP?r-j?rXTIQDvJFlSR%z~iu>Tx~ zO+zvO!>L>=?$`oP)tRrW`HITQ7pa}z?aEAXL&{|Z-os`z?owW0!(rcU?R^_oh$3&x*MVj z!TLp3PeKDihEUKT3Mmp#0`?Z(}sAI_1%2L_u=IO~1filVzvi zC>%ClHg>X(6!eK@l9zmk5`Kh*_s;)vq|&Vm_k(*raE|9P&zOdM1vBxqdRaJccfR)O zfwO4}6}8@tXlldbNPWTg_$vm`OHk>^DX9G#sXk&B z&b!sd5~bVJc5}$kob<*cqjulctvjSMB@I+sya|DFT${u|Jcgd{eU|9*bywTAZK9`JU68luO;scIOx^tPsTY5OHA)7B0)JR38 zE+fp>9rG)~jnS$yX=7;Iy33TwNUMS+k2cU?)Dcf{oRot>f%Bn*B3DY5stiq7t=yL&( zci{s&Cbb6HJ(7&H0$tOkY#1XEi|UEgdTsgRQkYq*HEWb7Jm^xhONSd_mOQ%oL8e4G z^{?@CQm$FqPw%Dr!EHxu1X7!^KT9*{>@?;AIPFM~@ivNL<{2+)$7}?@UKsH%iFzEF zXA_4ccqcU;&8)8fBSNa>lI6^{R?GS)DcOm!s-o7Z<=IWjh9JJ}JsDFef~IbZh%o_+ zZ=v>`=m_;2Ut$q(Zjrx7lPSgf-9hw>Wu|hgDGj;XkmQLtn_K1*ERCz#%XIg*T8WtV z)F`S)2C*P=v8F}+OKhdekxRz03&<`x{s>C@+V8k9dfZS(<|Ig^m>Mz{A_iSg|=Ce<d64Ly028MAEvo zXGg29Xw?Fvnp_P-yC#T8`T!9gCgMr2Z)b!KvXE(aQHKBb@_2cfp&nM=vk^&r%~|`( znc#z&5XRhI=WYeE=*jCK%r0%=KVQW2OMv!IkHO?)G_#D)Ws2Kjy>Ul6h&`eCqY=KK zSO6n4Dn*4%bF06Muq#grpeFWCK84JPC^~FK_g5{-U7eC1Z_lzh8MJKU_hTs}K9O?K zLW8!fRDP6ZJrt=eQ`jGbXZdx-@`ap%fF%ryoAi9t$cfSLAG6FBz5z$ld z_|!AH+xeu-Wu@lG3>D6mqB1l#m%*Jci>wuz(9#0g!R!lwfdtPtdf<1A z{RuEC^?U**s;dRmr}i8>*C3an6$4r^n%!N$#TP|-oslb+yNDy|%}$_Djf!p(+h5~g ziWxk9qaIcsRXZEgyPW6O(oKA|EG{6%-aY2t_)Vixa`mBV0_>J9$V(H z{|+G6>nSOVdS{1ri`y{o-;W??e>g_K(NyaY$M=C5;x4BZpO-`1L(8Rr9WB}wVf9TQ zkP=TlQrS-2neJDf0TrlW>BSd~yjIx4tI>(L(sy({h<8up6~YQpWOWy8gaQ~SZW2wn z2nI?hs`*+kx)_~J28z=qX0*atA|r!Wzlr5?W16-_Ev%5Jmir)NGTcWqdcLm3!&gcg z7_3uP1pBH5P6>r-F|TZdgnxR0SqZOGs#_@xl=OCe`3$~6cJnrPx)fMtt_duSfoXaD zmGu_)3yRIrDf22wnuqgfd?d7HGGE~gMY3sZF!zBr;E8^h^%cE@Rm?Hi_yOe1_6 zNr>={VLl5O&4Ia+;;o2lWku&YtvM|l6W`8}UwXUJh9(Uuel1<3Wy=< zL{VIVue3f?f{_l&Za3O50CS&wC4|<3`gY*FprStgijaFO!OSO`rKeV=zWm8?l_$qe zieD?crmDy`L|z^X$@TmbRMEe zV@d96u^J!b!W==jN*3xHVF5fTF^3e9XJ)p;cT+^W!dQ9;g%>Z(w7UfxbAiPZNI`jb z0*lr>Klniet?^LSy|;Jf*83I)pd6v6bNlw3Uj*m2m;d}O#SGVpRr-?~?7CSi5^fN$ zop&M$txO@v8D_)!gHWmO(}ipau7Z3QC*;)X{SAV03AY+Jyz0cUk?8ASEvcg>t${#e?*`or_j zz@zibuV3FWWz1?(M}}2NP?LpkY_nkXdIx$+!`@;ywc;TRZk&Bq`V#>YXWZ{5vxp6w$$F?y_MiY096CW2s9zk&;;Tq3o=9OAjil;qLvP<5mEy6OTYCNWW}1;??P9^`_juKp$snXgfpO&|X4?-Sae^Pb#pP$Wg(lh+hmRAOG~s5af> zD_)QFres}M18LXZs}6#ZTRr!K%`@HU?|`y3*YGw^DhnX&+N;x-J76&x^-kia$K+kK zQu!kB7cQevRpsXHBEL?5`UuCg!1D{?Wr)ht%ox z`0KNwaO<)F{ap6^YFFJ#Uk^A!{apn|C<>vd-I$Xk;%R;I!G%r4rIfF#qYiOV+nYMG z0SI$>;gHUP)=c5BA;)e)8M}L159rA?cOG!y#lj?$!oGSt_^Mg`UF3@UkXodZVqB0j zLQL-9yWZ2#ZE^lm?(SoLEC>DKDy(DKJkhYAV>sSYa!vq`X(cS(6`oSi@t8uSH1B63YrpC z4O?{{2_pp1iBru3XR~r)4#Htd*h{4B4GVM)v1(ykVq}!#XwG;F(+Qu*U8eIc4Pq~6 zn_@g|7c7Ft1_$}QH51zE?k+NREq?erQb?Q~D1~M}XGS(a?D$H0uzmrPAEOrw=IC4%hfZ@^KTg)|RYV4?)IgjP+|I13N zbvds&5qFBQ89%L?!?>a0L~T3Ns9C;oe#V_C>TKA2w)omC?XSJvjd+b)*3(9HQBG>@TM5W|InDc&WVL&SA5R@JBUZ73 z_kG~X=N&U^zZHgY0T%!BOFOUeso@=gsH74H*}(GF3#!eOBl<;cD^(O2zNk3c(UD9K zyCvk#!cSpU(^D0)z;l_=N1#Szd#LX0<`T+T&>={oHH?DmmLgxzgNG0Oq|IC2KzjdT^+aE?valp+LXh#Si)Ouze!-c z1P9Fm1eM5d)@cI?rP(tS8Cz6VajIEqihZzg%|wZlc|22mGEeE;hD`@m*zwYF|Ev<+T<$N_P`{b~mnvjSFH~MA>b=`t z(y<&?qEoGdT=AzFtTf0P*&W}@@vQRd43S%>q~theEWtK?pA|%D@-(~-Wqz$cVs=|mEcWQ-K|J&IOG&zv-ubhs%5+%n;fysCxf$J$MwP{C|m}a48jKo ze|e!X!yclu1@<2=R~eMKtUEgodsb1xie+{+e+CErD0bzFdjpa$4?z21ZC#5wng|U4 z9Zg|BqdSCwpmTbNv5kM7^30BnHs(9I0kTG!EI{z9r&BTf;UGJ^rr);x*Y8q_CPfj3 zXxxdIXY+3+-gU@bCcI`5R5Q(`{;hXdt)(}hDX;gB3mDWJl|!o2uO-dx5p`X9;o2P+ z;YZIhT62lt%RbAAz^EgV!^_EmJSyW7U+sZeIDu&r zHp+5V1)+JXNT3v<=h;m&;%+~Q#d3^cnDi_sn0oT$m7Q= zNr!KXZ!$G{q)`?udTvK6Sq6OPRcnE!+^T+E$-=FY3q6HOthZDfhS9i>jSjot)A5l0 zu1HlQeROP2W)y6z%|-tbz;Q(U(;An7TY3Rm`zp1YFF2*9AB~aL%AWjI(ElByaZTd~ zd*;n&{8K7+WPLevz}u`)ICWb8QCBgtI8>5o_{|PFw85#p6AXPX*IP)9bR)gj*%jC+ zgJ+kCV+GxlcMG!^(XVZI^$oOFV=yxX@q-Kg=~mtTM*FEFPd0cRq7ETUx|C!(wd-CI zvMr^jqx4=|L#nxQ7{!+~(@5h6P3}|J6e}$O2+sIrkcC7?e?m!$~=Ob8r((R z8Jq8Y#(n9+6m9#ck6Go$jT=U7V%;=LDNKm*9fiuEo3qpm5>Du=EUA<1;}4cBr8E!6 zOpTpRQOVj(ATy5hte9{!XkFa>*d|H6FY!oiTimLfiT#%)6JE=HhH~Ts_@U)a`x@EP zi5P*jvl_4lC|%Kw*^`baQQ)UoFx5zV6u$}z4~Af$OF)dRP>nGhN=3icKnd^_pBg#* z{_%`s?9tx_dUxG zdpc0U-%e)3`DZ_b^A%Ss>%wq>ag{`7cW~j#`44F;ul=j~|MLY;_Pr%%lGQ8(46kaQ z3&|5|{*}a!8{L}wahIsYhXqOhy`ioLAjmX~Z1ot2zqQ3!p) zLr!T*JIj9SK#ue^Vw_l(5kIT(6B}T5;PsJ5FygW*snz$^))a)E}SGj5tx5QWYylwZ_Ib0)AcN+N-B3qL#a+X!PwZN?uXgA)D6#*=ZVR( zE0HV62PPxNkPBVGAmz3uf7tRdpM(4*usXZbAu>45;x>OaJ#J;K?2n7t6a~bwpA|;t z&ucZxT1g`=dXHY-zA@S(dv3FU{1}29Y7pgWSn@PW4haXElUf)65zUfYPZ(Lj=ekIA zWBI#1l`M?DKGK;Q-ON7L3YM#iVb(?jo<61=K1L3mB--~RTi`BfZ!kH^ESMU2?F!zw z!a{Sn&PBFJmvb?oM>u|noNVOHVlb^;;a%k|m%zu={JWUuMRZ8@Meml-9hnO*-@2Pz z-)QzIt?~dQ9vI>Bh`DO^A-37(58K#3BiKwQCyJ%4;4O0{`d1RtQ-}z;RiCRRp++jS z%!;JZ59Oz^vvJ-9gX6U;s_)NWkWmz?8T+g4@3H)4`goXQT45Pm&@H*BZ31pfF*h#D zd)1h{B1ddp@i63RohlLJaO$M)!UX~_ettP#Yl(b&UB#s}EB{qtR zQs&gkDD0W3Jp$xRAbD;FR@Yp!^+z96=QDo{3Aw(!{qv4ITHWi5M*IU#$<1R$6mxd3 zbF3s&%CC3qPTqgM631%X+mLpcP{(f6TV|T7a<<|Q%#EX%$q=@ibvzFw^!$yQu?JVr!?qTTk~fHOljK zyeI9t^hH_cus}>Hv+XIgeeI4g?fvhB;w|+S!}O@&=@neB2#3Z9bQ=cb7N|vPGD+Rx zLgR{UER#08tdFC9Wat=lRi9%Q?U>(u2O*){07fq5FWPd*{mwqWpHF3`2vF-(vk}O` znVZ_VsNinr1tu@y442&UFQ45Kb0niY5tvrv=*H?~X(GP|@A|6M%0N!yg5DrZ1#;_z zr&RegN$p03B_09dw+*zxf@8V1iv~&Cbf@>zvh>$H(tIxGvZ!*u}dO!1$t*v4OZA(;B6v z#kgd43C2?ue0)%cdUL%Y#cdnB2p%@i(AbT*vgZTJiD2-JDQ>3W(5^`_>_j5>gbJGW?| zF-W<`%lbgI+|c3s#fLS1(agnVPi-~wRKnz{*2RKGrs}7bl6TXGq^-tgWe(@bxp#1v z%*pyvQ}lM$)u^5q{cn>54q$aC@L?JpcX8padSf|UXgb|)&PM>9sZd9yhgWJ4?FZoh zQv->`OJ_;A-e-u0b^`_z%~7&vPuW%$*zE!?xqUtzuQ92O9n3TE*9L8e^(7Ji+evYe zvSh6}lru|FGB*4%f5>vjbiC=8s?$@3PZ|lWy-5Czc4Bd3-?%_a?0gFR`En#75aM28 zUAUy15h*VE&3!WxhD}{pvYQESE?%5LekZ>_;&%>z5m>_Up*{B)78BYYf#%}y9pRCr z8h(k~Rx@*ox3%~n5cI1GDL~3~T^eev`F2&wi;Ya?#e3+UN z`~rKz3r{p{DW1d~KJV`IZ$GZObXs?QEISUOib1h#gU|*y_@mNmYkw4Kql(oO6fAn* z%RhW-pKnclZ55pQ%ZS4J7=&Rivgp`V0*qIEv?_2sb8iZVQdluLHuQJ0KGKC9YhnF; zH1>JaO>9WhqOkP8;F&I!$K`xxe&ELM-Q6vzYUnIIP0)z4@2R>MPUIYUl}qch+s^nD z?3QF`KMq;MO8bnc7jxiXIX9~I*shiNd$UumRi(&W`|Z}Q%2jRz9Vn+qzTDXn&r-P- zXZmv@m2c(nw%i=jxJ2IA%HxB#ZBKM(OKk3x!pl3^e)vI5YsZh*iKmU^%9lkwaS8v2 z3*dWBF6=zhzD0sml_$P#h1>mJlCs(IQHC$q!xpo2ZaEn?eSSnP^`!o<<4oOeH~v-$ zIP@R05X4KD-H+E;%#j$obXi)Lrr|Be?z*CP)$jkjJlDMRfaXVK_%D;L-?KZ`F#RhQ zz3-{M_UXD{gHL)m1()j0L;L*PTsqH2La{yZ^ON1(snjhgkK4TwVV>lW}AF z&jaJjUsa=DLb56MU4zsg5l)2N1Qz6ZHX1@GlU{9K65!E-vFnQr#Q8U22() z+T)FqhK3?c2J_%a5s=LFvqV)Q=|aIwdrz$Q4XqdvgoKojK1n06g3Nbq?k2-125FuG zwn;_J3NY$x{nDZLNi*GU!fLvOOusoD8)9#_{Wxx}DHrcJK7f56=yoR8m)LzpE-r?O@oA zAPk=UNHqh|5_!GVbh~>-ewr_;hMk`An8H%0fuFAQW_ROvi7yY)Q=g+BeN*TBE#X5M7urYo^~;wlV98hBu=5lD zjiWBj+}kE>=T?DKoOY7nA+uo-yVo-CjVVXL#~f>yqzDCqC2|NtD{QDEWRw{n6BhdJ}|4zxtmj!$2gm>q9(ZrqNP+9%^ZUlt{&X_1YJD<%W zSEIQ0?+nN~dmc$x-wEh0@$(K)msAVcPa^l_a?UDfy&|MGD$W0#9PWBH@opBiVF!ly zqqScQ7ggyT1Z7@{*mZD-{Bm_g?8f{6pSjh7MyZ|s!x)eEDwmu|Z`us^jy|=WtUk2A zH=k|f<<^^G0i+X3F8ShDOnV;ssSAMjlq1Ed`%{84{wA@6xC)1mrY}5mru-@r7ue3K z?7=waHRihYK+^n0KX)L`UGTTN_xQ2x!1sH`t#r-=i#_ResA`zw8@dW4YVy%c9JM5s zjpthWhki6@qvD7JGD5LgvOkP-K0hizDPxn4Vd(M$VQ-&G{|P{@9tXHJQ+Jm7dzr3MwFzk|`(DMI!!~flt%^=(&KXFT9IQFuu+j?*trjJL}9F2*lY?y)V| zOCWoJsa%iX%Vkm(I@7dEQV^-Z3_R^3WqMY#=9#SCZ?RvXfK4FZi=K>AfInnx`Z zhGHU+eOu+m^i!@lfMaxJ;(LP^%_EsOiYm}E@@!JrHH-!^l`cy(5Z?T;4}pk!iIt(N zCw0F5GFq&U=;Ngm-|Pjq4~UsHk{Dq+1SJPMg>$Hu^2K*bMKs3%hmIU%&k&w5;j^aX ziam2gt)I$&Gh622z-ue|KDCnk*1FoOthIA{{^T4c;?E<*mMYPdS7@k`_3^i)uAg2a zlP3<>>$mU<^MSEQ!sS`+f@(9*YYQbzUYsLnRTAfH8zF4Pon8yU^2Ll%-H8u}{11Oe z3(T-!&hVn&1&g}pghuGs=Se%Ii~k4=D97V|eUFAx7`JIY)X_ zW*qG61Fk*{$#PGoWhvQ8)7&J1kHA!xRL7cGkLEMY1r@9+vshV>{YBI3)~tj!gB8}}d_Q~EW3scWw8Io0vsD!W)Y zl&a$at?zQFHl&|#0`ULa^7{iu-#n;Fk4<4kT47UfmWUL+bMe_QpdP@h6S#L)Mi{ZX zRT%k!ZAAD{XWA>W~mdjl*d{Yi%LHOXD| z+J=`Hl6#gvrfdVQ!b{Y(lk<2k?cBI|R`KPPpCFzQ`1K&*5@Bziff%&U zRK2%5u$rKtK|`cM!ys#v1~Vs8{UE?P473i*_V_3Y$2do@&X+h|ycO1)!cG+#pN#H- z0YoH5Oa;h&`A&rg=k3xBEOg-1PRjmevDXG=&!0qOf#j?2$GY=`>yX}DLsxeyZHL`{ zRRlk3*h*Krn{*FnE`xXUchwSV)zi@8H%tBIi@+S2@>#0tPXO@>bWTG7Y}U29SLmE# zP%~dH*`2@uM7x!KD~BttKnE_20{bB39k0 z8V5zGmr90OeRk8RIyh{y~7;02h7d`2z z?&{#2&_|o(wHoXx42g`WlKzc$mYt$ul}=*hNF=4g+8|g;RGfYq{`1H=w=N;C%gTS-@R0$Wg7&Ku-}Vnd;gd&yk32?aEK4(e0Ej=@CgNOIT4PT`98p`mZQxgR5&k_WPE5Ln`!3dx1@TxT_E(Y+WQYaeD4&o{XFv1m z6+jcj4SI83Nng15aegXuUuDNNshpu{ggrd@PTCRP!I+5cClU|;SsUw*Zbsz~Z@lu7 zx%ls+uVFs=)O}VA>o2Wr{Q=xy=RAg$g@Z7BWiaGs8tN3F!^CgBgLkocX}S(egz=ji z#|xQDdLOs&$tI=-^BfuYCQU2YPlF>WM|b0&J{C}ps;_@}A+P^0fpQb;s!=#up11Oi z?R^lfd0hRJf1#+f-E2wAK#IvHgihDqum}V4xoqB5)E9yn9^V_zbBagtC$Sb7$Hx}-<219 z{+zTA_y0pQQw6U1(~Y851{kp4l)^p`y1r~Cv4Zn!==ztde)8{s8)db49wdc~eAuI9 zAANpjrbNr`0-Tjj7YnAOYh-`io(NrrsWs{I+d=%g}pX%Q0VG5}=9W*~tGt6(VqF|C1Z*;UbDlM5J) zW2bE}te}hZk}eK!cj5G{&(1=HVWdMK25*9~QpoAwG5*rpg{P`$)nC_et9)x@72v}y zD9ec^Q!!6WLwv%`^cN3qDqNTOw`6mVb0o_5UNUK+T?lG^_5PP!$^-^ff1LbtH)WFHG7QkxQ_E|R%Rs-A+M%^TNgXceP|l78_V>@^0el9E^F*>ObA+bQbRORH!~@_deRHv%=Pc|4%?J;2|WMBX#?WsBx!Ha zyO3qO`b4g9I+tfF ztrlsiBsDCblET*L08<(@e$EvJS&V1g%MZUvu(#zf8zHtAHUirl!Wd?@7mt=Rfq(cl z8{@G79bv6rM$au*e?STRl5ScLzJ~t{Nn;7rl3WyCefVq{Xneo$a6h`G%3rsoh`n{kEg#0FGWHP!xpz?A`RS$yNYHZ&AF`^e zMpgr>R(w8MG1ptoE7he>%>%f>U~L0J-e#2d2A)^PM)httwTw@ta_m-ANsT%$kPF`3 zv<@D#`$h$fm2*4a#^d^urNBRC8;m`^osa z9XGA6k5w2;f^4-lk?*mW*Znl!jSMAq$!1sH_^d!Dju;FmN+M~T*`Q;jL zOr2P`lBUe(+hUT$9X}|)5};d#&tu^kBfvTU+wt}GT&uw~bYi>CqsLETn1MkofRTR# zd$8qei`BAgvCp9s57<}GgxhXChVhE#}2 zfsNg=FEqOuuP%x6)*SMGZFuwkFw8IdQ8WYCnBh59>&vT^VK?#h0BWw@N=I{ytecX{ z3Al~s-(Ou!NFsRKETF&FWReWTlDE^TXpko>=B`Su6*hW3X0B3DX#T6-t`asJI+*N| zX2hHu$H0WixT=Q(laP#^;Nu^-F7-`Isr$llLb0wwicsStW8aI5f}w?+KfMB{TQi=4 z@a+A?b}-5i{4(8k6s@W|)FIoo)!+kGo62t9j6@%5`l?Q0o@rgK8bti!V32&V2XKxX$6@ ze#h&S-|uDJrAO}dDn9Hc0eLVa!|}X&8N^g(*xeuU&MveTr} zynPjQ3MRopjJ2C!;D4;$aQ|KEw+-Rmp|sq;AHytrVHhoNU)yt^2C-q~vkuuF96Lli z@lPPvgR3=}iA|?xaH&Z{GKSmE7c0=XlL8xnIX}s5ZRV9BO_B5T8h5Oc;u~YF_7%c! z-rF?E_ujj7C*T(aHNAYvT0b$d?(^6Ba{BsoIR1WZiSg5T#3uDt3Ur-{m*T^+cz9LM z-%<3Eg!KH9J0=qli6*5EbWCzQuG^RxEg$JdjciVCn$~Q37p%@=TNX6#j`x%dRv*_4 z?IPcC_wMPbTj}WOC9_lO5~Tg4gFWQ(wYH5d(eM=vMzS*HsJUWco~LjT5BF2a@8KdA zsJ)9_0xzk>K&}9qMe1R$ZcP6D9hlmE%7i>wivpEdwr^!R+N|F;!Eq%LQjg5w=3FV& zOMbPEvEE?6o2shr2p2+@>jye{(T_b>$b4a@zDc~QPUih`KCZ|eYYGuvaCoVVk_%Q*mdO+~hW)?ai4MG5w^-$RSb*S~_fleI4;K=@U4u!x>JRtvwTmY?Zbt?o{7RDD{yq|gjINZ`ge;&{u%bJC{xFc$XCat zOIGd$#z1EBclR1*6s@TQdX&~aID`BG06~dS4xA!6;SqY^6sDDZ&D*6AJSBqM7rF^a+Zy%%T0(i}M*Dly-JlY=T|x;v3IKO0O9O~E)(&N4^fa;bLK zsI2=`y$Vm-8yJRWh~7OYT#!}T-E}#Hd|_GcV@bvHkb6WA_Y%`WHk!at;gU`)4K4+{ z*4b9H!hE0QnNRjE@GpEQogEQ5`DITPY_!QD$Z?KN;p5e$u)|_^x|r9p+YLXbjI&kA z!<*lE#y)D3wl$xOzKKTgf1wE^$5cX}pe~we$xe825RHWCb{DLb-wH|;W zM`$mVHxboi)k%N_XC;hU9aSik%ZW0l{VvxFdHMXe_iFL3sdsIot;L_?P9eK1^Flb= z8i_FME-O2mWr_&c&i?Dj^hdyv<(<-kBQw)MlW^D07WWqZPjjxfaYFDNT;`c1z!HQli0nP)rsRDKK zOD#0xKnfyN*HQ?$O)-O9#;;XkurDqyK8UmB;4Sh{oQEem!4YZ@s@WnY3S3_M2&NJ0 zyus{tb6b=BbTJnlt`$+`G>+njAGZqrJYkx^|Fe7CiBBOG`HHZI%OcV+rQs1OSmzfU zZ(WVeV>73)v}$l7_taj5yA~f~t@hOyI^pCpSlod!D~@ib81pKZ+9mcSAzt7D=f3JB z#H7QOyQZd6Zot>Z@&3k?*nL1W*|an?^krj50=cANpwP8j*wcVHS#enGha&`_r@_;iUOS&!dRObyE2o@J5wb5GvZ-J98KktvIGq??qG zZLGa%fJTU$yq95Ai4BN$r*Xt?CSErao00D2>U3`x)DW;FPHEt9y-V?A`ndG^+A9${ zMH3_?o%VShT;UhaR(AQdQF_d6=ocu4W3F%~hcwsnIO_;!$(8^-xEl7;Tz#+_>#b2?8Z;8OFi4K{7(nr!6f|=UjLxSzFIrlf8p8=7DTRTLi zGE3ltu6|5!;D?8KIW~t=-4};1`hudG2KLM~{fe4RBoS<*=vEdlUB@RbTWbg2)YK|d z>r0mbsq0(g+_zFs?U{o)mm{6n4`f!{>kKev=>+(+BWjD6RAE}ZudUI%Ea1?CU~3Kv zC7h4?_F@DHr;x_;dmTAwM>U~@SD(lys@boatoLyS7HnkMw!}VR#szb_f zI{bNvUDizwvc(i1oOTM3Y$EHilsHdjCtvSe`*u&jfaBXGvVw=wewrfL|M4p&4;iir zvp{Q(8~B1cBZw|oxqg9);}Tz?$EDVk1~ zqT4D80_0G%roTjSF>|n1vghOw7VBSRLGrvka6c()GXN66m1M@S4v_cKo{$1b5N*He ztw?APN08I8Uom6183)4$<>PNP;7gHAM%^6D4t0G5SlBFsxUgKfG zrUVqshJ%e;DO_+eD7U^3dz;$5Dy0rJ&g#5xZD%3AWrJMk-q=6daPrx8g;GLZwid1SJDCw3QV6Y`@gVY9s|n`84@+GYV^z`$vhsU$0#MTCQM~7iQ0z* zm9Fhb2_3{}aDDAPIsTnHpdQQ#v#Rf5g^a#iuFPn<0Bx>EdXME4F^S6ExHXko1_!3L zM0$AW5V>%%Y7NF~1_UTOLQCEIV&qc6U>J$-8NN=WEzQq&A;GYmtsv=|=EOel$4aXd zYe$$8p)rjSXwnW#nk9m(PK1R)tl8nykY7xrRPnPw{elOiKKKe0UJuU>;VD=O9DP+b zkK+M>kSzJ*+seWxS1@)^*e8S#5@!o>ja^a~SC9%L2xa_$tJa=wnkbu`sPh&R8rq#Q zVq~B^Xp00j>F{fP*L2eNDdZIa=Mi4}E!-~#HPdONv}bAwF&acX6pW1+;Rv4l-44m) z&cAhd%`_l+)+&KAN=I;5+`e8&qfBKdh z+2lCW-N)H!cBJJ@jD{LY)hNYv+$#R!@LGDqC` zP43W}10Inehk%hAj0C@$1XHraSzyWF%p6APwVHCK`Ql4q1S*(c6PtRYk^SOQWVBVF zy%kVe+7GYG%hcGXTyD)2zJj4AVpEl5HFOhN%~<^KLMPRu4a^T%yOlZLM2xUh zIBwU;`koFav7E?$_Hm7M6GZb)KC~OZ+8aFB(uQYch`oC!8%cjwhKstR{fzc3Kg0d2 zSU_66;{|;#|56YNWf`47P-rexvQ^hXl6M(?{P0pGEp=a;app~>gLu@*S4T|4T@FgG zH;K7PhgBozMG z9077XK`cnGbub^Dp z9(3WpGYyjR$}f7(amJmmFC&>?3gpkc*uT{7b_m28pEl`6PGq!K2iy>LlrR+j?GG6m zZ)HrTW^b*OsLJ+-UI2yw+~}0GtA~t_IPzoL3A_ZLysDEQC-%O_7$qd)ngM+8 zX=;ao8sYWL)?h`#=0~W{bF3HleTZE9J4RqOL}y_jemIuKyDJ!-`=MMNvsPZuabLi(8%SKori z2w6;}DM)gKX2|Ai_+nIJn{C>Vy5GjQ*e^dy-NuI1w2v*7l6U#}9)rJ|mN8U1v4Q(2@nmrs%JOLJ6#%-+b59OTKpp>ZU`+dR@1K{D)q0Z{Ie&8|Ax0C(7ihkV0W?O}FQm zcj^{s;}{S}i!CtB_KvW0KA4n$1FjXjYUT^{h`(XKX@4uQFcRdt7Dk_hx6nrhZgJ?R zl)7yL;g=E1wb@Nzv)Iz}+VHv(CJa2yneA)ZqG)h3sfVGB%!)k330hEVs$ohzYde9J zFiKTwSn8UpWbQ~={3@$k;hiE!QfC#s+@s=K)Hq!THcMVQsi)L9gOpFEL*sJV2IUZo z>?a(m2g3uRrf%B4T}GzCzdwf6{f=bzOP6FB9;8L(Zxj*Nc(y66$x<_3+s37)RIk4!yHXM1`4=x^U(|EjJiH!j~+WYy}w~Hb{=~KVXi0{6bqF-$z z>6cU$*{Pc>eC40Ra0)2LvquE#e2VN+yznso|;<~Gbq z{^I;SlDX8@{*$8oi-%vf(c{Os^E)g1{q7H|u;Z;DM)u0b=IxF4sNpT905l+5xOcqJ z`Hr(a7moL|r}#?WzR*cR=Tud&9P5kdAF&#Z?vhpo}~n^8NYAGVNJvknFjLZSD?LAVBhe^) zET(9pRa|w5_;iIWbt4~obL9~*_hy%qcP!L?E&fE1nO?ct^dRy1=|J&vl`8%uPuR z&_td1U{dRXjc-%qM6%7>vC<0X9}$KdP$uc6$3Fi^ABzgEyj47=2duzBfXvZ30+F~5 z%C*-1G-Sfs$n)y1%Ik(hmb^uRxu-jC2}LAoYR2&Dge^QCQ3nXcZ!Xp4UDGIYFhinfLCu1}#Q5z10ZC*zYA5&1iLY1^{4nLE|I#?<{K+e>9KGDGT5rQZ=~bK9 zQI>B<#)`AuyEVyILDe_j;Ud+`tag!u-A0?l3?kY-RA>da4}QE(rIuPhb|4o`-vc~n z1v-UqEi9MrXhQwJKJ?jSEg9##1TE!-Bp7wxsMGC1MpKSPt1U zK^)$b4yT3=`}7dvZk~8K`#C`~Ach@_qHZ5bx*U(QgnKMVecL+{E@MI;W63a)Xg$%2 z+95(+QGQtc>uL<~ne~)$)bo@BHmQz}fs6@l(<*Vhm$qKF-0qsb9d95%LleD3%A@8} zjb)CZj4E6<=cO-dL{f&9w~%2xweatJw|$IC387)SRqXT}Kp(h~3dV7L<2Lpl+)RRh ze{?yCG}do?K@RCbWtdO9v=kG5CQxw2p^)5@Qr5JyjJ^L#Pfgq*!p1oH_mYgo(sDb& z@Ib}6l6h?N?-nGb#I0RVvac=`8k{LFz^Loj0btGfd%C%;17CYTMV>TGfW{dG1|AXs zy>Xf82G^!Q04Z0EjgO0HMir>H-e-t%_*_7Jsny4xCe*s#Y(coMEz*|uV_vN%LnUXH zmMSJ@&M^fMk7qq-Djo_uNW089#HrfmjL?D@>*iyzHdEO3bnuXVBI7oAqCX6oUl_dOmH+;1y~xdoGfNI5P)hDN z%j5U9O;_uFC_`75Q&q48qgKs5S6_N_-!hZHlY3PrQnM^~D)ip)M=!<6;{cp*+T_aA z{Bv=CgJ30QIV{?d}MxP#t$V^1%0^L!FC{aB!&Cn!CFGz+URTybKl+8<%bsH1=#P??3GNw6fQ16Fln9 zC~7GSP>in5!O>B&f4;xUUDL>i$Q#@pspfoozwhtN#&%5|GGBk&@+F!(F#`hD6HyiT zCbqeh0({kjeXbR>gICyth;F}}2nDLLK%2;0{kD-&yaor=+y)Sq-Pu~`BxezIqIkG# z^>FRm6p&2X0{cByXD5d;U|MUQu37TS-ObI;I!`I{!#6s9k5rv#UGFP+GMWeYaqZ); z`r7WXUtK?`^{hT{{bNPp^=)5QgR*qoX0hv#zbsv+*iL>h31NwYiS{l1KIKY8URz42 zL75B>PI4rAy^ftSYw2rBljmj7a{4034g$OVZty1+m#vO54O1|7=_{}56sU6JYBcDJ z&aZ15!c(r;a$w!LS>;+Vs8=ekcY{0GQ+9dqPIt8BH}jXLDT!Xal~R5ldB0o4qT3*p zzF5|jQoG=yz20M;wueeBYxaKRbyc)HK|=DTKWA3C@M;0T(90Tu3cDy7CW}3RHPUB- zCL_a$^2eriGKTS|?ht)uj~{k%sg7EpXA6g+NVRqu{$O5>bufe!b>8P=8mh-jfLR{G z9bi>U?%(OG1SExUp9R;eS=yYQ?oLh&;tu_pi9iTNfA9%K6B9dfX&`4@6wE?Tr93L)0LGW1mniv;Ex|`>E?T z;QHm!ZHPTvXGgrxmWj8Lq{8f7HHgS>O4UpV;>3DxFO@sNkz5wx@^`e>abV1x5K%`d$u;7LLN9JKA$K|PE&PiK6^7Jf7hnDGEh(={DWB^+ zlAKZ3PQipI<#SP{%+|)lVL#S|>S^5%_SryN9KWD2C~o-8h;!Z0*NFplE*g~o{RY0* zTezy(D=wAf#%r_gd)J!md{g*H;%g~!Kv*{fH!CIMPq9#h#LD~A9s8ddxsAg1V{ z-Q4Kb=bv5(ws!Itvm6Z;gp#xB+N9k`;$(I=pm1~Oau__PqHi}oWlhAdmXKuS97p5q zE_<0WnWp7_aOO9-=n`))m3xngI>ImI_8K*%NDnS}w2G34M_CrWOc@q1{| zi+28yUJkDqO|b>$IU7yQD{J{&rnSjPv=!-lbN&5+JUON!HK7jK32~s!AI~yCoVtRL z*(cz5O7?6NMgLcq<}^9(Pn^b?zixgd^a`^ssOlH$bBY^@VK0u$CXi?V*R_96YV8@@ zv`(dsv*m;dx)k$YylKlm!)`|>-i9y$l7ailq~R|HVXxT8!Nt!)qW^m9U_#@+L9Icp zgO{5ZHllLV>@qA2;QtqG%vk_h^%Ynl?qLAw;(`C>*N|NRu_tro2m2@*1p7<^nME5g zN&k~0;h8r(Gt+Nw9x4HP7Wj?-_5${7b~;OFxYL7{ky0a08q&`HlShn3w{r*%`H)NEFTh#UHMG|-qJYebm{*$@P!-SxU5mf#+EG#=Z{HLW(F5+@0$9{v?TSh5%JqC=-0Vc^nSYW|-u4NYBQDCs;U zv}3`h`s8C56i^V$U6d&tcVF_%!|K!Poz84|x0Z{CF@O2J)9l((9t=y@*32lF&{)Bz@frwq}UVUGPEV`5- ze^-S<=Sm=ede9OzH1&iR*GX{oI0zcYH9`N75a}0T%vT7AiF8&J$+vV}#r$rGQE*+E zTC%>xB(B2rV#`Mtg8ed)iUVDxIOMBQkGZ0$OUbE$?6l9UUX1%^`wXiJw zJY9$D*vx?(`Rue3_etf(_D%&H_=_ba~{BcYhC`$$U6H`gIOqE^Z8*{{t6~je$4`k7Y&?- zJHJRuUo~ebH_H9%_^5j+$5Z1wVK*9lL^Kh66 zYPBg;E?tJJBHd03(l&XiVQzh~G%chUR{&o%c4|V)&_R`~f+Nu#-fUn8-tT39`}UW3 zK;YzZ*Um~Kzf?N93an&K0m~<_t{3>dSj+mI>=ZWMp$c`krCDOB^~|gsZv@G5nxR~M zm*V=zO;e5|N9YQ4(sX%1k9&0b|<#fzO(|9w+E`%*Y6SeS6^drN6Bf1ZB^_C1*Dp3)hIWNq)WIZSWck|Zoj+e(~gHfY06)(bw=c`C7Fp8th=U3-KAIC zyU%Q(!+?Vq`}>#`XTlBO*zn+=4zBzLi#(8R-6}JQgs&h;ZiYOvUa&Q{DK{YH<%mkG zT?*pv<3AK0FpSNpw%mu-)_n2u`zCkh9UyLMDS`L_!{v;nbC(pfy9xzU}U=Zo%M~o$?!Wl--bDE z4vL@>BrM6WOK{bIwOG4L8jN2{5hF@I5!Op2s>}RTbQvt}u>vXAt!)>a<&|sZI)PR5 zjfPT5u{gOpq!=-4vXMSDjxNOohTmV=rt};@Pbt8&OQ?$tz+;!ho>Jm;{dMgfLh>at znoRWU5`-Rr-D+0!hxvUDDy|X${Fg4{*H__6;$TuBU2*+A{?k^;%^fRX1x2nnkmb_> zh^$2C-P629{I~-P7Z3z7pE)aU7l^3_$ixPon$mco82fT~+i|PA`*U*S;|>F*5{4At zLAwwpxTV6igT{hHnH6WA*FiQ+7ZG7cKrGUv5?jq%4`SWqCr5Gszt@U?RxB=BJ9ZD>B*5&7) zg4?a##nf7TL)Er--ZBV;2)z?3Qtgqd-}PP2TOJ`qBUoUrrEh$B0Ke+Gm{f0l~OH~i4?#d41{<6W*M@3FM1_Gu9cW!N4D zBqStQwJ(^veEJyl2PdlMXp#@mH8UPMI7Pl-dhnUjuiGs?cfakxhOh9S;7HsU0;U6}vC1D`H2$u47`zp&VvAQ_?op_ zw!OVQ-sCoEfNc>mtXC~^pKD_Vs|l_iE-p3;ETJRbZvo0is{bE+0q5=BwvvSxBMT}3 zEfMLWwM^J9arU>>A#V!~<|gOvn1aVoSczU{{lwtz^SpfSJ$-s`U|@ch*XwcxpC)CH zF{T+cI?Q)lzl2_b)DrEG$>~6UYO5W(Aza+U4l$&+$>f%%j=>P1d)3#*jfiF_z<>N(L^J3(kx=WuY(GOKAZ)@}113AN`YNT}U3DCe zQ6*Negx-?Q()D9fruCa=-V357#bgvPuHz>*!uD4+D6l`R*~9k>HT3=fqz?*{kk@Ws zV*SOQOcn3)$%CJgg#$m7Y@QKnqF0PfsbqM_0P@aThXP**fvm|FV`9GPNyuv> zlT4VmOC*SLmD;pr4Dpf(74oX@qZs4wt!Yrel2;o!&Tb-Gy8mj*&7Lx`B9QU3pR+B=KPE$@m4Z` zr{Oab`|Sain+9SD%iF6eWvPQs$MX3NHiGp`MuyW4(T;d|rpxmRFcR@+nX7RexBU63 zR(qTn)xLiym-^EyY0YjitE$+xbR#cYhp;~C-_hYd@QV1j_?Uo%!D|le6J;JtCvO0i zgV`EDoBrCfNY5j2aS?`T{@aW2Z<7{ovqxE^%CK?E9dY#|gUzFre3KVkZ_$v|YMBy3 z)g&hxO=~H>vLLBvzEa0fBRr(y&=BR;hWz^h*8hNE(IhKW^hQ^l(k`B7+T{tE%^zp# zl8=G9_!!Zvl$OFQUwk&QE z=0;@95<=d>8C$-Oj1P`JwJp?TQODR@aygZI8i7tgy(@W?9f_wosm?)TLTq~(#a~K> zETz+J)YTnz)WO?Qg>VP(+|h_uq*~#EHl$?^t8LgdZE>ZOcHHyf2h#!T4>S*6z$S?2 zeGHW&Mp!x0+VJM7L@uAVDWeh2qME;Z+4hsM7eIT%)}%I7^u_QWJeih(U3z&Sa`U^$ zY#;Peo3yJ@HhD!ct0Pmt*}WkMx=M`t!>AftA8AaZ;J8`=a82g1BK5@UFEg-!b*}Rh zaMtL#>kEB;;@Jl+(9>+6Rq!4kJ@&ozs;BKHyz2gA6~$0ijw3S}n^j%Sf4KlW7paa9 z(k*;+-)&+k`zIN8!rBh^vx(5ucM?O-2#(929lyYSTJ?mJ_=C?+`|Y2wrM{hSKQE5s(}4w)7JZ^1ujn25_ftGp)G8(%cPu7xO|5S0DO!rUR;0urw=Igg2l>MS zCRD!KAykFMR2eKl*m2~&MgBtGbiRI-6Hgv|iaNS*yc6Y%FOlbBnzPFwzxiAEldhp9 z8eJ2Nwf(S$lX4}M`?iApjn{&+D>OSZon|+kvqmpv-KNs5C9N1g!)y zleinwj2*51Xm@?GE)-}*kUSltp}cQfQg&6^!%DyZYDX2rSciz(9%*7_EZS&~9~5_& zWpK8StIcn1PouyLb!;{mw$%49A%q!|2Kna{u5w(T$kx`Z?5~qA(nt`pOchb+qsQMq z@6Qc^IQsAMspVN1Mz{*r+C-Tq;^CcN^;peq#hX`yJTr#?VmEOuXrN!(eIU!d9b}WQ zrHdI4vA3;9c60iP!&!4OaJ4J%7r?`jN%4YRSSf*CuF#JP-mZWZ<#B+t+y_`dOLU0? z6^{E~#V2h@9nhpr`8`U^E~P8z{F*^X`2ASKcad?&{+;>zoZA^AwG~Al<9H9vT4JOf z9%9ewxJR+ZvA>qtqrpCtI{gAcZ5FPsBCJu+HKT)~&owB;q8xaAvb(tOm{ zwosd4=xlF!Q3=vqd>QX!N8wI@!S|>JDspIp=JAz}wtm1YWveMJ`nre zKD2wj)$QVaXjakBZ;$)e?4Rdodop50<50Fki`_Fjj``#`8alHkQ{Fg zUB714e!ABgcG4YY1r&mjoW$g!z0cObN}38_lX{I?Jg^4T?w;VUK!%5diUa@r%Y{P% zpJm%spkOZS@n(fn7HGX(Y|)IA5DTa@%wAvq5JMei1}ZIruqLzr@qGa0A?zxdo%}Hu z%0XTncJQj@_MrJM{sskHE6rzLOb$p4GBMd*^OAU??wK zC=R_Z?n%C;B?v5-6g;OJpC0(N~H`7_(B#21lWp?MoXDakD>0nLaJh)s#sVEam71KG>nwWD1_o90b z4Yay(59@PX^#+&gOHWaX;mt&+2_a3h9Fj4xOCcdC`LB}`o8gQ5$w|TiI_byI1G&Dr-uXa5QIyBc( zxfC?_U@jy8tl#_wGCbBtyDI@JB^g_Q`z|a;8Iw+YqZztmIWX3I?s2$u0ai%kMA)gj z79$->0nu5#nDBB2(2#quy0&H-&|OKFrrgahn>)yUl8c~weOBw)y#B+;Y;v62W|b8m zFZP;hnM@q(`E@QTj>ngk-%I3t`^cfBmPKwBN7F(CDTinzS2sd&^1ccFOMN&obW439 zq?jg{Xm+X;V3BZu!ozjfZEBK zA;6BDF!>x#9#!G^oD)x&@aKMX@OyF4<2IUdyxHy5{X%`N2!^fR_hODJiyL>6DJ{5;jNwT~FN~GE@>y zK~iRrrXe}xK_#s%xLVkdZceZW6jv2(ZP_oJWr1}0ukX_AU^V3<*qqPflxGQCq|Eig zsZ&{>1}Mp3r&G#hYR=-%j`x2K!*ya8u{2U(YqQ2{p(ByY_X>B%eO?|O&=Rj&s_M@; z1M+gG{@)ZDd&_BlqwL^XPv-+?KS@e2&DfJp6`y*E78e1rE?8XySD?2P6#8+G0`)@2 z?3I#h>|KZ0Ya&{omQqS~kn<*xkqFP`~dL7JQZomjo|+&^j_ zZCP3LNoPSoJNTH!oeS1+9StrFyH4R^97k{3FgJI{Z$7e3pQ2>PW?9GF($59V?yh}p zwVw5qN&em{Ac7<_r@dENX~!QPFMj@MzFW4LLs+;$$t2847WZ4qcuLL_H^YPi zjn?Wjq`X1IY*u#${!%-QIv0A-9r1kmu{hj-ARjPMjz|LHGg7L$CJqc{AN&K;Z<5jO zK6>3gLS|O*eEb2Zi!4q~fD5M9IE6KAM>}XK%kd&Jg`+t*6oKFBj9%FU-O31dIqNdu zoUy3J;<yUmw&{eAAjideY|2$m? z%W{nhLiO&Y=G1HiQ2Lh#OHo7fjta+&nNu!c!FQz$4F)U1IRv0H2!PAEUKI4jwPg+ z%>K5fl%PoU-Y4Z)L81ssrg%>45K6V2t?;-%GOr=b*zNtS%gfnE>6pmxWd91fWmA{O-*$M{juR$IpJs3|6Rm-O1M84rU2&SahoBVK`Uc-v@^Q= zzudk9&(gL5-Sx5d3^>QBWe#!q^T5!iOX8ki`#V-vlzxF0@_j+Hu&>J5$A{OzM&c%* zdW3zlXAraaP55*82FqK)_|%Y2tCDZ_sUdOQy6l~CpoH$(%T@Z8!65utpE1kmHlW); zDKNfI2KkW#rX0@}Z~DK5FdXu_fav`OI%p{0tf9o{l#=x(!ukoeo@cTf&X1MkY1G>{*kqjli=JIMaF!z44gWI&Kt9t z!80{>lHJn)=ABP%{u4J14&neg+OoC5Oq6n1KDN}Nvmz~6xF1WLvA*5lHK{ck z#qWi8G}>Qtz7CkgOLq2|UIv+URZsX-s)t@YKPJ>)d#ziWD#?CLEq( z7_EBway1gv-yE~~Q?D7pO1)`2*qIe@{L#^ot{%Ouzf%mTQ7$&>-mho#@6I~A;?D*=AdoTro1 zPp4>=0zaH`TK-~BtK-ZMO$_2~NuusWu{o1g z?m@sj@)pFQ4phsho7}LkDcYM%Lwh;#+!Vo5&Lv)Clp9FQ+XVl$>GLnhk@$at9AtYA zNAr$ypu&FuO8yg`9h@5hph~y|&U0iBA4FF7r!;WsSFjlzD+CIdDLJ#frNH1prvvA} z6qyUf3%ko_z%i9z-{LPl&L@%dffygWgaSdsiilLbkDq43d3Y^}X+rr~080GVUR3`K zBe+oL-Yg|ou!KnPXSIv??TE_-9|`Prr%Cte)~yaVe!k(Maqaj`Wbv~d8k;$Q>fC|d zC74&C7TR_%TGfNKl2}C@uFESYom2tq#%FLf1KMxt zd6(4?&=dB;{~@w;=~$l2_9mx+g*dw>v9Yl$03BeF0WyO=iRpxHQ{bA3f%$xp11L@` zTgw5%kj(w<`a+{?@I>d+1T=TVRrmzHN`egbqbubf5PeM4u_U8 z2&d2B2|NMa+Xx}%+8MuMhkq8LF z2ks1Fq<|n?SN86xXMDZkDMuX3-xaOILzd|%HNedj4HV7__5x}Hou#_Z%$62}+jK*K z!kNSn_<=V=LQb24EllEQV^L%qN@yZSg-MBAe_o?iz%e&Is#tIEfQDgE+)GcqEq2Hk z77Ty&c?1%Nv1x3-Rl>im0G~(TL>|10>vQITQ)qyfgmA{*;=Ptn(r~DBtu>h6XeqfG zuKo|;I3xEgPQc)Ul!LC?)hr~3cnY!XJlEsDz z%yXvss4M~(T}K)!MeF{iZ~UAlSN#9pddw?tc7;_m4(SkQ03nnG6WVFtf9F}vhBed^ z!oL6?;cE+U{9Jmq%qk{B`J}JFo$KhUmi?=cof5w(Rtz09hg;1-E?W}+hs8VW4xqg1 zA}KZ7=|Gn&u%r(zS-UvaC0_-cD7}Z0B9MMZlShEfw~d9`JDDYERgseqljYnlxLc~G zbMHYb+6g?peT~6Vx*@Q#J30dimS9^c?DlQiH~t&3Kq|SgqJm^#U|^!bmA=tqHufo# z#3TA8S69~u0v2y}JAqCkC(v8nx@%!EivuM_4-^14msQPwj4HJ^SOzZ$E!x?lD_`Ec zdGo!q{H9xR!gc{O6MJJ}S>>MlhN>Jp%|TyH1{~@0h1cF~EV#q?SdG+i#g-nd!n|FF zJ9or@TPe9gXJ7s!MZfX2#hc#o_1fs-81cVa_|N-g;ENTCQTg^Z{hg-c`~;IHUFI4K=@|?HiBXn~kU6*Q<)6+$Q0w1ff&FM1GX-Uhfdo`5OfBC`@k;Udlz7H*I~UJ3XXMh8$9I=ig7UZOBrmR9cvm@ zJuc4vD(3&^?5(j)p1=p_1pHBUplFk)dru{*{>N(k)fS**;Q!jJVf8O11NVMe4ufKT z-Zv+Kz`2E`?DgxjshuGO&ya;bB15t%gU26$24ee$FiG~H3|>dDQ&6;~pF`u9w!_#G z37A!JH#yWwGH(V+F!^q6zJ<|9i%T2#SH)EBJ;mJ{6_UKzt+1|2D|!qrsh=AotqusC zHN~e7LFjBkbHtNfTvF>V`S6fg0yMu(@XBSq@I^mpyeFChR>cU6}|?IGBT9s#l( zLDf&o>obMdfD+Ag4OsK$QhkCq&sM_Eh*f?oTKQdM%J{f3P5zY_ahkBWOM26nHvLZ1 zqlrjR9^ME-W_ux?htTN0RW)@vv`ejY&G6V3yZC+z|Js52xoaO)2yCtr@6|i$kCtX* zD{jl#^&}ku>ztuRZfZ0VjUwZda#6&nhfNNHBrg&3>dKVMoWYZ)1|Q!Ly~acljX0!|7X{J-iqo{;;nb}NOmW)NAI zGh3vT;5r_KBrU`2?T{OZ1~=>VzLQLkyh;>C;@UdjtUnFqwpedilZA94D98!&j$-Z|f8G zw5h(Q%f4Cb>7;$_rUiiRHxZfHJdNPKcVTz2JU8;|v7%^d?KV286is;CML|m(+19UO zWMLua(-ligV7@MM`~>?iZ-~i{2lVoL0sRpw2=C*A-`@?XIkm5^&9u}lCtnOw4NJA1 z^TgfF5FoBVRH6)4g+ zx31fju&4AcR+5sEc7on%XXFVb`=_8ktG9b3)kCmVmWltjltViu#yo*j-_e|su(QCO z*WWrxYmfACT5JZOSFp%DB@qC){nnIj@-(=_Xt~BDj&mhNd2T(hGkutCiF5_>J?(X~ zdpjips4oEGt1d5lSilt7H4Z4{6Yp42Vvz~Hb@_n0KjP>4x(N6@d;}c*&ApY+F9Hv? z76{0%h!V;@+`axV^8Xc#i7`29bE5LQjYg+pu7G-8472!+#zdNGON-CgR5p>yJLDSgW4Kk+K+*z z%{#L@cOJB+czgT-%i?s&Uk5~*YioTbKsh(K3bY7UcR%aRwU?GIDXJwI-M(D_v>|>1 zVHc3XhG%Btfuw;oXb2{nz1bNk4b08o2Ca;iu!0X$Yy^n8EQ7#92L;T?c#HXB2!9p` zTHyw?wyv)UVPJX!$Cun7epW*8W)-c*3n{@){B@g4Pf^m_y@U)x96UYaN;cPH7%yL> z1vl)2|0)9}^t@C?9cn^<)z{svEkx zF&x{K;M=UtHhVvT0Ou`T14DTAGgmrg?h%`d4f*(|p5?3C8d{{(H)|GMDMeoz)zX13 zQ^Neue^F5GrQY3|J`N~2pRi5TDKRL|3(fEcMSN33LmtHz9n75E-LoNKXx+Nbvu07P z=DXV;pk+Ae!q{t%i(@S_?uOA8CIm}_^@)qrjc~U7`T@j9ntB_Z#k8i#@kI`*Gnl(* zVtdf+(K^qh8~WwxxpfPHj!s+PubGyLz|+ca4%amoYzM z2rdHsXXxXiO6FaBD?SuCY#kE3igBRE@22SE>YrN1ZT>>DN;K8_l9aX{zdqE2Vr%U# zF)>TBAtB90_!la3j?Vyh^PS2aU&jk^6NP^`Ds}pEML-3^5=@V^E)--=>sq^c|AU8d zRFU6Mr5YRHW}+j27p#W)s66dRh|lXDhfynXK8<(8XgvO1Nb59QwE{JnYbk5sLa6}i7IE{E_2-AIhQBFS}6!zZrGl39d(?J8BH{;1rkeDrD+AA+slTyM1k7G~5Sqka}=IKvIDRVu$6D&Legv z6`?v(?rj}v({0+F$(x+3MRK6sb-LKm88thq=z|20BG&xyx1>>eFehk>9Kwa%h>y$M0-kP;L&xd{;g=}_1-h=d@Zpma&6#5R!b5~P$8L8Lpj3IZx! zN=r9Lx8J()dEWOq=ZkZ`^V93{(tGW-)?9OrIp!E25?@}ZyCq=$C2kh9eA%_~`be%* za}p8S@?Bs8Q}~0gpS}>Hz)6<}8UMZe|EG*!WN8a**l{7yremCLZvL7v8cr(%a@u3K^Rgi}Q`AGqr}0B3&Q7Sj@hRwxxi|vu;*9PTai!7W8M_ ziMi@$_-)~G>TlnzS{PkJmB?VMEeaKSJ$NvsYU7rWB%TQ_W&zS5!(RB0icQo_xaTf0 z7lJG&6>wV*6z|?;>J5E&79!w7;e}kszIS;?_d`g5@EJakA}P}6mUjNaIc2((Asqi6 z-yZSq66a~m>GfC#-p;Fr6?XL6FBD5sy%+N&fbMh0)QB~7mw!iI^%VqUr|@l705Xo!WJ>DqvR2M?B&mlG z<2$}njx8VT+O-+M_bQ%5F;XwcI?6!(A!V#VUEFk_cygO(n?o+ zlak4cm=KK}!oyBcJ~uL`L3mKPe$%vGR#tie|7~(9JD@#p5V1_0Hd$^j7~Z+FKRw+R z%U|}h{;A&OmR|42EkCn{E4C5VhaqfXx z6O{sShz!SMi;(Djr9wy%;o&9+)4(H$1`=(KLXJXpHnaD`qky%X_cJzS&& zaZU$Nyd1p_9#X>m-({#>Fm=>b>)|l2Wfe?q-OIMfjCUgdqZ{b{CWQ9cs4x_B=>lQ|Z^9aq z>3Exdy=T@Dn%gt~3@kpSz<;wAng+BDpOT49lQ$;td8PuMJQ?sOABzAOgcK0z>u{iz z)MSDOFZa9(_ur@9rp7s8&hVWk>oCZ61b9<`X?9vRc&>rUO*jpphr&xz9{1DL)#bPQ zUc{n3+#fu8qrcL!Gi@8_8XaAQ8hAF!03GG;oy!3`H)C3qv3#h^S}H1$sm+12mwHKB z_Fr^$A5NJ89`kTGop)16BNxy*7s9Y4fFnLAc}Bmt1>};M`Y*(ERK9S^nHOpj0qCiG zpUtQBukVQd^ql17HUASIi}oPb3!r{n#V4YT4pu2OGacXNnjV@O3`2hS3>DGIvo~GHz0Ywg-!e7|sCWP{I`T?O$f&CVU?M zkw?yO$|Judr`eLX=Uqga)o%zyev%pG2ni7^#u$S?UB+FKMBro=~ zHhlO|&F^9`Ffi~j=k;R1#}AWBATe4VBf}=&Xvs?_Uq=ApA8AYh`!ftVIgT`IM(L;} z*0e6ghwt;}#KneFMU>nI5{S;iDRIA)Oe{u?W4!R)JE=Oo_xI2jq!OuCy=~V0k!;``&hODa{A$G9MW9Y01@%|^Jn>-i%J3<4k+IN0E6@{ zyjQZ5+-PNmHE9h}4m=tUnF{N7hFr@C4b!E4u}ZNZ2yB{au~p`@{;*6B2j@?mCcXsx z5Lw{SKZziaU}V;6Vli2~jK`~pU6UJj7DaO2)7(iV0b((Fh`sQ@HzkvLR2YApJ#xtZ z>_f!56r>87Nsp5<$FsLwfX;Zb4MqpcKlo((zCMAAU8kS*2jk7JntkA4Cy>#FJ@Wnf z3y*;rZ$y##jZ3?)x=&eBaW%#GDkjkF z-W}#w*YoVSgu8s7+l#W7NEJYQ1~zw z8A4rrNFL>S18aeIBwc3z85vT7e}6n3v3Djk40jKOS;O(9$L1n@5Lj}EO3ke0A;eo# zOo|Q8`TZX9X_t35BE>X{MdGgWVtjc#k0mJC61OIXDk0C$mRi&QB0S$#S=AV3j208G z{Wn%V#F0K7%!G42#kLst&N(6kIE_9EvX-@-m=;g5eS@%Y{(fH=U2ebWD+q{ob?Z(; zywJjvrF(tU;6)eFko+Ytxj!9itu+n&QksoVHfR|=O}=JJj(JXz5HkpIsfS4ZYN8Sa zf`L*jXwa+O^?ipQAZtdxzS$K)Y{jC*#&x&~VJAll7Rzz4`Vbj3k1z>mk)`_qCic;E zx*tz?5Ge!`_)sK5^bFRTgK>)qI^z4%DEKZL4B>xniXTLHcHGp;dj0yr!F+dSOUDa= z%sRSD_dOQ@Zz~Mwdgl^F0)vtJ-~E3de|Ta6c;2ext#qP}CZXDiS1ZWxw1i(66au}o zr10?YCS7$xykJ?)IfE#1TYLCg%Jxxo{kZ5xG@P04(|*xVDQ5n!@L0g|aqFjcDN%u? z5qFYW1DMBo*$4>9A+xeI_HZZ;$Js8`#9>AZaZO8{u;wkBe ziXm5KJk-_OPlMoww<^jvVUQ50u}$#90p!Fcr$0zmbEiEDNpRuy6f+gQGdqR|;nVyg z7Y9oKeUI$E$d5DsK-%nlhh`FAO4EBkYuHhqyq>YqM|Nv|i=(#u<-kk!Iy8eF=? ziqJBLalb(zWJ$`s^MN(-yC*Om#ikca0c~MANzW^LMCo|SFxbc<>Nxs0C%HK4WRVq5 zQXamva`8gt@TFzm0Wm7Fo@nn3AkvDwDUTv2T=tdM>^k&nSTC8ZPil=a3aI^?2R2iy zLr*Pxub}oH50=D_(EZXm;7jm#3Xu+{5Z1y-@;I1)NJ%~#F4jPnAp+$ze-X;*dazi4 z3mq{)MBb&vTC{C(zh-}{6$=w%(@Q_k(im7ClPd%tVY8OM&?-*`co1K_VuFQxLaZOO zb!@}GPdo!C(I<70(Pu=LO-K%X0X$7~e&;We@X_lRpcR5;gJ$or~k;u;L} zP7@9S@Ubl)zPQhG8JB({1$>V`L+ER*_dh*Xe<|bd_Z43TIqeS&7RG^oGS0o6)TMI3 zWT;cn-y}l#QvfxQ9lcG@0-8AA&1fW>qP}ZtG>d}(2|LCCXYX|$O3N-wX#yy|S%S94 zYQ{w={cG7(36bBe07GezA?eEf8{)n+o9?p}TAyjSSN_Vsv%9#duWWCggMZfdTitbk zepd3v;ieKVN5XkAr084xw z#C*c2!0Nfpc>#~-Q)QIgLCvON7g)vh+IF+{0J*bJE z9Cp9CEzw*Fyo01}Y@9_{66(8INl@LbCz6%j;e)cYYO8dc3Ql2Rjji3%prrraKW%?N z`uBy95Pf^mV=*sxRlmVUthYpFH828+K9ap-3u7@wD_uJ`!4Y6PtTCNif<}l;^i+G@ z7JAHQJ_ZooWB_qeIY0h}UEI}y;4ak!-Va@`#KL(k!R}n=rnA&gYzOB&!?s5n68$WOPbhQRVlEG#afA}s;R>Gm=jz9oV zxFyOOeuHmdy}@NLba>rL$YmTFhRRkVJUwI@m#=kQ!Z;ymzO zbkWxCwM5h{44wg>@i$@;4iFRY8RvftN=XcY3{Y(l!ZecgPAeg!zjuHC{(_5#$HhTd z)zaqSLj^P%4OCzRoE5<1^%$@`m^BBJPj8(Ac)M2l8j_F4;g%c8UoE$SzC>Y7AWSS~ z2VBvjz3w~xhd%X@%bb5bo)#5|_Tq&4URH_(V_4x=zWpO|%=jRbB~|>LnC;2dkNYhs zBBaQw=Jb-==y49}XNdW?Y2e)M8K^K;?iXnZnZ>hzw`>2(6N7Giamd+{ z2F^HMw@NuNl}97zyw6T@4jHHtdPZX2fzBORJwCj82V70-9PO+iBzk0%w|yE`mDQlo z_J<#5%rSV6D#sOWMQb+DoL5zeyaG?yT9h_Wogrlug^evzKTe3gYxDf)Or$ONm3c-C z)CfHzFztaAb6;9a5MZ-eEp0;9JtkVLOQ9^H!u*^d31(Xw7ENYwzR%&QjGhJwmK)#_ z2Zfz?zBOYDw`9o9!@GKW35Hz00LUfsg0PLwn-ng??_w^qCOuio?+5z(nJzt}M53R_ z-nBi4SR*ew=-Sa(`TmU;TsIqq=S9yy_buZrCFOzU#VJ>qmLcRz4dcwrj3^M{2O1Ye z9&7hfoWG!|fN{kwZSARuri<+#HT(bK0n5yEQzqXgEDHd;UP0b72k-jhb(V}$DW7XZ z`Ar+;MFtwqffO)GJ-od_Wa4IT&!+)QMZ5NU0r(=grh0(Tr+NlPF#h#<$KdleJx@Om zjs`D-iQ7_3R1+`r&|Wt3>;aReLe@*!US3 zKi%$;g(lN)}xJl?evE=QLmy>c8jV);A~3Wa+=bvV{w6eG%j#Xkp2dsg2S~&8B*yzlW*xVmw@s;+{ASR zh4~cl6ls}k4(*jEmb=+0Iu-WBtiyG3PKI7;#*1T`@J zL*>YjYm1MEr?#}F#(O&CJP&C_i>^Up7Vt=u0KOf9(K`G!9 zxW4662!RJO-d)}WMg9~xt7?kRqp0^MX&VU(i^u&AU*+Wm<4+a?r6(X5o=sld>+8L< z+!oc(FGy?s;c4G3!m3d4zQ8TX({OqLRICr5o}XlS>ce-@Jt4vUbe^BvS2=8Jb@cEx zIAc2|7qqQ^)wcp)*h*7SY1|x=4RTZsrY@c`iKf1R<-@z-W>uT*8a5m4>wDE5VC5cv zC05>L)eitKnBpQJY$#J*0-8zydKh^;vajTLv}`H!37GCZ0lQ+AUM_vKE*Ex5<|41G z!pA9K#DNA(6?mE;TRA%Pat$FcCYfz9h0U(FIwQqqUtBY{2n0>WS02FQK}1N%mDdU* zeiq>Xqb4MU$-1XWBpZ0Ep32MIv;8_aY3^WsfftTyuX+>n%4$5;q`kXeqm^HVyx&ay z4BSB$MSumR#C+VHABKRhQ$!GQn-=FGD|wCFuswv7PG4S%eGG)Q(o-b8HUcsg!fjld zeX?4CuV6BV5FJwqNI|dkJPjChxzHA+c*$2NRfVUP&!~zVOht&C?6t_e2Hi#Lo@c^n zpai!R2t0~drP!!YCHBMDsJ(ff2`d2}{1#|SkD~3l^GI)CB>6?QGg5XX@ zROEQgM)}?kBL;#~a=rd`Jtfvx?Z@5LL*nZ;X1u{c_vF>gU^XC%5$UL>RFQ;{jHtz-FQ1 z4j@Vr!ydd90GKWXgs5b3V3oN0J}*x!iuA6oZoEczPqC?DTzvdv{#np?jqgAKMyf&= z;{VK#s)tI)=h>C$KqnTj+*D9!XS=&k?NvD-{X8A=#sH>uAd@@Y&ba??U_ufz1*Soo zlsQwkikrglSe!oGzIQL}azzKul3k?Ci6}5@OK@!>7&O%({Ot>7i*kD%e$~y*86Pj| zIc@jrO@WH){vPUb)dUXgfwS;n6*gmqA1m@3N5@?t8_n+ECggM50Kb#%McjggQ&#Jcrf0ZPq}KYvI)FGDZ!A%8Aw~wxU3alK7{&g zO3SB+w{PCi#VWBiz;<`DKR*RtlCvKcV)pUGH6*hZ=zi6l*5do=U8 zz>0U@hnN$Wmom=-DnSmQad|I?(F=a@HLA$Srb9XZYNnlX@IN%Xe(WLv=xBx3Anpr- zcKCZ98yphg|G@%a#?!G^I7y}fN%HW6;Q6mC#-R=2*{`Hdsc-1<|D8TDT(fs4?CY<| znST() zP`u5){l~9QxvVc0~W_FL%c{-Ub5x@OzsI z%?@>?*U2CUcsyXRG~xbMs{vGsFgiOy3f)ZZ$koAY2LLc5ddL-S^FRG{?2{WWfBWxr;HkZxTs-_;Rtl-$lD-bQT6F`9|KiFML!oJ0+|`f^ z6Bi$!U1wl-(%}#wRnTD$5ycI8jT8Kw>){K`2E$VvQqlO2UQA%_s4EIw4b{=UM zzOx^e@~vIF?Yq{P7D$j%D6YFL(QodyFk21ql$&jMq%vn ztcLC7R6jW3c@B88DPhHM{0({TtJ>S3Y`EgNut4d87t&IFC_2Upn7g#1o$a^u%7>2Aw&;I#p}| zsWW+H<>1zYz=O!4tHGr=0(l4mMbVSPm!Km$Sz*j7RH(~zQLiIH2G`S=7#DLBBBXPQ zX}uI(sU;@eBu04wh13OOLH=aWZ~S#m$P4nrH<5($p7`V?FWsLhtM0tP>nAWogZ#>U ztM9$UA~%zemF5CS_J*qk>)lF8FG^NDY>Q!^OzE%qp5#`WoyE%{TbsZhGI>=QgQvty zf>X9)jeVe}4Sol;pHn83N}-tX1_!@k2ZO*5M5znZPRgNTVqzX1Aonl>c3d9-gR#0S zd;9~ z&-{Ebx}Q+8&f49aL*xZ`gQmA?VanO;C4#-G9gM?^cY%6CecL2;3;A7j5uV6 zS4(hwgrqu?BjeiN)o5TH#zh)e2Dfo%w{YgEosvZ{Am&RA0IE3AJ-_{#9fFIV8ALo* zUSF6b+)aQYS}k~48jCeXnJ$EYyOh z8zwb&pQR)GDa3oG3*8p(7P3rWat`|CD*UEl_yMC}C?tt6Va4RV9SeT^j&AivrahhR zZTBp{QEkIZP(DZ!Gh$hXxk#NnX=zm_46_nqzDr)C>Y6$cwMP@I*O zaCW`m*Rv=fN^`X1yE*KaDxsYGO+Gj1QwVvW(yd$F0ibf|mnQiNs-Gn=^`GAUpe0D& zLP_YkBwn13emBS5y&j8p&GPFH3A)Z;}w^G4t0ab8RLRQ&abKy-5i}FMzjs}S8>%+V4!N>Pr_3ZxE zVtQc|?{1vJvN3X{;ryGSW<3i>Y>XH>tD?j#HmLBY>o(;+5xppSI%%< zc6jDTfsj|nBV5d;7Kz=0i#YmQm#PEr_!W)FMBVzCu&=bv)R2>_l1l!Zu1&#Rf!G3k zavWyk6RTMMAE}EnO^r76+NRBx(gFJ2h(JR^)KXY^8O?E7fq=CcMBQP17sBc47KXuflnwATq+emBZO4 zKlbq7jR;0E6EX~u?q>#+Il0>dC81|=1W^Y~F=@snKU;|=Hi)%TII|&V9alw>_{HA> zGdj_888J1+X{sD9Axb+bh1_4{7B6+4S*M4bx^&(WOH5`2$FuYMd@XIi{dTNGls7Bb z)SL)I1xe-((5LDlZ?VO8kZv0ZA5>rQl#dsRDp1*2vz%qb3z zp7yKw8`>cye(;fs(@yr6;e!y8mu?@ehKuY%gp@D`!h~N|9~O|9i`@UROMw^?zJz*d z$c~^~CqWFkkG~n(4&NxKF2uQvRfMmji%p|eqW;zXpxEp8N-h(u-wvaa>rogjxHp-= z(3)wgb;9W!(sWTdub7vVs7)vK8w!ak89P&S9t&U`8s`A#s-~RI5U{8;RprO}xzDmX z8Q#xQ=C(b8A|i$Z>&h;7vu)UchLU1l5LxuL#P*ZwqdEeN<2QvSREb*rjVObT7HunVb3`bWV-nR0eN5D|_6ObR?V?uN_gejuGdGX(f=XqsGUSGCBLRyVNk zh4~mFW&|ZO;_KP23d4vvoLKUSJ5$}vh`G~^@AHe)Etla(tRpe$T=5F2bd%K4HHazxy0|BiFR1Q(qvCyb8ctMReUYvPkG4L;^2ISHk-Ed=azU<2B9~u08SgC zy?wJh`@>U$LB2aB@;Az+$zG=6rCc5IUL8Bkf9<#3TYOZKcK6mT1QX-T0tqL&|RWm1gbwbgZ5<{~Fh zraxXCMc@1}3eTVe672I&KZ|_Y*cusM`r)Mr4IQkE9rA#+^*NC*M7 z7k2I~Zvy%={3M7B4h*QIX`tdhE8zT)#klibC~Fdq0m+c8Hwa3-Q_W*ZR1KDejL7ZIhDko7$VXGKd}{`Iws_{`f%l;|f}A=J^y zNUaumGyJ}q-{c;m=BbndtlJsc%EtGZZCk6lQ85BFeYj6QOr!wbePq>K+M}$AaLysV z%8?#Pz&-PNr8&=V)2{W=OUE9oN0DhK5@7uUx2&1Tt89VX?$4f{o)qBP{Jmia5NjTQ z26j6jeV={y={_pzvy$|1o(oRs*{;Gn#Bq~wV3x%NA&i0R1E=c5oz39a)#`kwC%N+2 z#;G;M2rm`6(=Ck@5!wC3->~;Fn!t3&e(Er01~CHgnh`M0#U{4cbfGPW7QtX&zjc4x z=8bWFumS(ty2%w!OF-QTDmHELld|c1VnxSeojB7T@-6fqb?379YBe?t^8$ zG^*PV+^rqKSz5LAUgsL2gJ^pH*y{=Jwc;gR+yF?+ws`DKQFfx1{3vA@5st*WB( z8DJ-TgE=T8sz<%*BEmrQTJn2Wmt(1IXpzNaJhv zyoHlLgMH{@8;*#Bel-?8-npQoqod--vJ=mN!m3Clqgcr?Xrll_<-stIBI{lbUV}11 z&{h~N2kBFaqv(;NoZKg3@i&4BUmkmtXWZ?TBQwH>FOI%4reahjIj)})ktUo*M(G&w z*LS;cD#s?xgYTvQc+yxsD4=ndJ>|aVuwS6zap2lr=$-p|aBxuZoM7RHlLRJ$p7$LM zR{8Clo6C*aP3L4X4H3Uq*4+uE+XxCjFM+i>uwS2;On9yox!Ylj!KH^wXMhjD-xq*r-Gh5JQ} zWtiGGX|^bQ@K~3~DjOl;#bklSNU57FrwJg^%EP*yn9pXZ|4ArCR&b+NaKUmEpVE@h zT`}3&nE5(9%sS?q2PTp>3W1cVQkHy$^oy57CZd=bh$Bz(XblI*QRhKs4pVWlrnC^s zs16^9C1!bc+vpz66K^~0?}rP3J}d<0o>6pLq!?SovYV`n&=9GtyVJSFLG&Jt`Y5fe z(-k^N6hHr36`b}eB@hwr>>n8T^69so9VJT%y(|yZf*Yk{Fp1|yjL}g%p_Bc0eUg2RTO($w zZ*RVl46z>P9O8PLjQH@&_z=lx{EN_*PgBANk4E)Y#c4sZgi*0@nJfoPi2YD4Xf*u^i ztM+OF0ldDhkYLsN^*(SA^slJ1iyEs;Xh;(m0>O-(RN)uD~Plem6x)+Zvna zOB={PpYKqoEpHR5GRt7Sk!03@!t08go@fgln>_lScW*sH96c?TYxXI6?!`vQ?l_{A zXso#Xt@K9N79F&kC#-snxNRWT&c4Dw5FEOTPU9axejEhCc3k)PZvuvCO#sNfJHGYA zUH+vJ-3--m1t{A`p`Zgmtac>F*h7AW(l=+Q_ro_vLT)+LESQz0j@4e8&Gf5(XTCT% zd@!?0Ni|VD*LM1-uYsR`H%-HBl%g}aF!^Uqof3THQ+I}AwBlal?{)w=J)M8YvifO0oIFB zz?B^Z;z;~D`^`$A`M8<{z}jao__eRCh>W2&;4*|n=^aHLne#b}!i+$CGEyNGIZ0fN zht;IT%$t?n{oXK_n+3l6!GHU^Uw%VTYErQ7;);I2z6$k_)PVp=N!4aK|I3|Ux59Yy z59HAeq!T8>owfp-U8o1Lj}1J|o_Xp5a9r2zDkrV9kNUQtf%)*^Wl}(-U9LO-qtov>!6hH^4;jBQVzo8I@L3hYWPPM!f!GTjSYb1un$aZX%LS4W;!W3Xs!Pni zFfDq3_8F>5805EoDe5#i^-5DoOV!-aHdiv;9>|?B51^3ca%_^zM!Lq+@3|Gn+iYU< zkm#(O)<;lQ#s&uz|Mptj8Y3nPoIaDHG5kbNbBaF*eYBC>`fT!HI_3>Le4{ z40H{8k$a|r#DpBfB=7|6TkSQku6hMA=bblX^VG`OQlm0!-;1Z-?r+ZhHtS**llyGY zhuQ!Xy`M#&8qVJSUhBbs888kRoth}Be)~D?(c4B!ZV;w zj1usSbem9=5{UwBGRx&K-v$`Ht^mt))#N-oJ5?R&+VQs|-rY(R0@o(l?MX7uVAl|J z&;*OQm6jO#Su@(ksPO6)N-3>5h%Gg&0(W?Ol)CSIrLM-Yw_)SR-3K_5yOQ*$@1_)Z z$;W#03MD4*^y&&4CDNV+#Yj%CpLTZVRqrvd<{0NCZzwT;Sxl=y>V*Eit}k$#tV`t& z7@Gk`bBjsK_sTuR(P1{X2K_#mtZxG2jSkRD6RB&G*Px)61oZb){Vagj3b-xm94#6D z{s^WLFGcfcByM&{kTo8};|co=-gre0{J_J=r1v0@yM_7`d2L!8f#$*Ixpe;s&`&p< zrT$TLA2%d4wDS3lS8^l{2}~;-8L{0JkKX&m-2`h|0*l-JI?B$0b?J<~jssRU#tLd^ zsno?9)->U}!k^r{qTz>Cd}Z*BwtPr7=UbGsB!<8=q}ZQyLK0%p-K!IUl<%?$$FLi) z-HwPGi<+FbICO>9v%WO3vU6UxzP+uN(vn0A~0&1vY&)P80O z-Xsj((G83TL!;Huu`ejE-s2X6Ifg%I$FWOHzXr&8^k*K+nizx84Q5WxmZIssWTdh0 z_IU;d2F=^IpT7isrQuWYp@^);m=oXvE~FvK;zW|Fch3u7WX#i)%|PA&t18}6^z-u*WhC|2CJay~z!4e}xBAc^tl79z+<*P*cK%bE zsx!IZnUYXX*^GuU#AA>)uULMgZ(zZeevXv|4q|XE?{Mh0%4U6)3Pd}eNig=5uonJ{ z=2AV#07)5rx4NTW&jSnb$z42U7B{D=IsoTJr>oYV>i=vw>>H-A0LU^%d?|qTp6tDQ z7yW*P8c+1zlnIxQ*QZAzT~w}nURxp5L=ELNmEiwMEHURQr#6#se2FkRW5NzJ+kYd9 zZU)r&A!KdXlWv=`^fA}A$A~(U z#}0lj)}j9b%M5e-u@Cpw`=Bh>nis%Ap3hI(x+hDCgaT!8(H;y(e5~IcBMN4tAP5qb zh!Iw<20B>JKnwVKiVz?LL>Jx`N85!^zv@<=!yXs$?A(Ra}X^feA-69!o)H+rbk#g3gtUB98=&YFW_=~S7=bFF^2==VwRS1+HfZpCPCwn=I)z`9_K=DaO|wtI`Zk!iZB7LzXKR}-1z z=QbEsy-nZkpsGQUdzVOl_0q|ubvy!tU`R|X}X@SuG{L^-Ftn)12Jd^ z&Wk2JEr5uI@xG=-NcNB&PobJ0HR=+BH4fy1_ zKOAC*>tFLJKX#rbKJHQXtrx9NO}$9hZ*HqiOuy)K(CNfG$?;2AoN0qIG3Kk5Z_hSW z0=&8&n$AlU&{Jv-V3YA!*gJ8AH|sXKC4xz>JzeHECz$y!(J%3vWGf#8V+7+sBIA(^ zkzQiBLd(aMmo#X<910sg%t60_R1U4Bd}CV*a{ui>tJw_k0-@|>WNN>;d+%U0eIuG$@?x>JZF#`hx0oP@SZ&HKLWF0pRT*o(8;8@h1kA{q8NT3Y91*#2P|PC?sh(527xQk%KlnNm`ZkL7g^` zBKT@^dH+av+c`%RO?iC8%BNB4EvJ)M?rF~COGHFuJY3~u+QoB0r6TgLESZg0_1vLB ze@Xwmez||Cb89E>_4*d=M(?GT<;Adh5vJVMVrUlED!<3V{uYrB0j93K7{a=7msK?W zXm*i2Yo-LBD@~!mzs{9B*a!A?>68S^_CS@nguAEbs$x|y4HpcYQ9{6FI#^r)93OM; z<^fM#%Pa(@I~j@O9z!8D5=o%hJg>1c%);zVsF?XV2_uOQPE>+gO=r~09*%nN0+D#K z`JwWBlAdkyYEXiM*~}?WBYS&&w=n;DJJXaMSFohDlUVAwMXT{(srB2raQO3s3ee}? zsN%IQ2oS|uMYlk%5OV~jQ<&9e#dCTLjBJ3QPeYFMANT$|!s0-W!`29Ea7{jFBMP zYof1T|L_qYj+-rE(K@SRe<6;K3M(pha6&y^v@5hcpr#LIZ44_iZ)aW0Au)z>zJl3?9)`Pw zu;rtWZYme?Gzn#GlKnu^vrRec`}W15ALNHC`x@Oe7d1aO)*L#Wi08p2xC1T{tK*!Bs8O2fFSpGFqQ!s}Ix&f8P z2Q!SlsL5wJ|Ah3MQ(klii^0T**(5>B4x)e?gWrWNg-3`LOLYY}_jIG%$QVE-p8h(EqaFhK&@B9uPAIYx}&o4g7jsHDSgLf5#G z`k`g6YLlNajgLQA@IUSW>ag*b@6}bM*7ttr_XRno8=xg85zC%@@2`8{x;z=Ha(O=+ z88@1)-T32OqfUOVpEkwh+&wm|%NqKf^G)y@`oSHuU8;$Z6R&|3)App(8vOmTUJ6nW zN_iFGs0gj$aN%{CP3Qx_hzi4FIRA(SV+`$G!rdraxRD!#`<9D~%d@eru5J)8dl+A| zr=hrccy9gaoWAo(TDH3T!QEbGf1(F&>9LmLPmya_HyPWK?c7m=O2=5txLvK@4v$8(Ih56*NQcekUX(j&Aj3Z5z9HW+ zU;}J|qC^e|5L^hyw}@P&qv|-oc_`{{$9-w@P#mpAQL?_7l9Eyz`d5duKH!1A*ZD&258H7W7H?RlwTsb=HD=()Ow;I?|iO3$4Jg-3*4 z6~mw6wHBy<(laAO&hE8WJTh+#?y*F7c5|IaIbXoseydp{9}*-tH3xlut30Ys#1nVP20 zXHGGftf`~@9!7gu+*=%^?|9gLyRI*Pi!x6R# zk>S<&aaBNL<@zmE`9GxSi-U|Z5gi%;zW9+R zQkV=c-T)~(+_CwS8sO)-N-h^EGr*64HN^wu1-(~;%2rxvG(M1znOaqWbZ*~%oh5HG zKj9r1@|JT*kY9LK1LvRh)}?LRh)ar=oQSl;<-QAgr}xD*WSw|k7PCvpRE8Da3-}A2 zH}3dVd6=c$;^KN?sH5ZheQTk2*llfW^w)WN@R$Kjsl)@8mw+Xwh@(HXhirHm zrO?9Y^IxrI9-OMK$Iu#uxYc7@FiH96(QHgH6-Nv8x&H6%nx_BQuK78PP^<9m>7(kJ z&$4LxjSy(zda1a17~MXkTJOFnBFwt8ei1~gwS_ndB>ch+xu+p=3D*n6(8-%oP_N}L zAXW>pqPMi>e*!e819TWDOj{z3z5CwWs&*RxKo;J!EnE^_irx1w->)M0YuXY z9-~Iw^&}21&pd%#!vAWW|JPmX)_$cpJvSFgf`=mlIJmW5K!9%r7_^1}16PYWSnBLP zV6VQA@K`Mb&6e3`pMC}cxWoe56Ec0ZLp+`RnNjb*`oI5gzwwmAF7Pxu;ck4BkzvvV z`a1q&dD^+_fKpgt?Bw+8gz~!9|EpC(Nui~yTW$#|&O^{Dp|R@CY0n2jLYt6e=C2BC z*Ker6|7pJQLL-{D-_;mu278hP-l!=spy{aH zkQYV-2lmHtpoG^(J_sZ}yMB_wB1+1NAR+|8{m{OVhB11X@_KHNlW#rg1P#Pv`dkfn z{VY(<**fF+-pPq?r;ZNL0I42$GZ9SOg>n&|+Q&v)y8@U-=*5fABXhWWVwhql(=&I< zBJ&a7AV*$IXRm&uYj(FXmA;Y3zfY@*zb_>PvO-!>Om^CTD;c4NaI`&`6n*l4{!Ria zJWu~?h)6kQEFPlqhdW?xHFdXkymAep8yr3l0l8FFVfnG?aB;as%AjZwpWk>BDpT4% z!-7fL(@v1>g8|1HXX(1A$J%Dh7$^FI_SPtW98U_+sq&zwC+`hZ;8Ztp8vS<`&UL&U zOf}sIZJ0j428jmULN0uo4k};+?6`QFsn;+&E&~mqWJzX_+8+M^loxfJHu!A>KVO5y zA^0f0YRRGl5zG`~8R5u+0VGNy=EWv`gb5u+PWN0~1H^$#m`50KM}&mQ}fRYT+D;fGuTk%2xEr%FCM@F1AsVt5gG zZcyLMpByWwHI~}&4=sf++AJD5xmR^d%sfrAo1JonWm_#x4Y?#evlZ28nu;t2%#^n< zF@^2G$n2OJn?rYJFi(kg|JDU)Enl2xWBf3$?8?WlR+-%bD%?&o|Go`he0;k{S_{}? z#N;BrX@F4hpI>}D#8`T2#y2sg2?-p((iOkq_iG*EUF_VVJ*BQzM27A^ARqd_&bo5EB>|Hjcvu`fk#M8AGXdCG<@=0{oLgETs>}ztTp?L^(9P(7xF5D+K`*VPN>56v8AU_m@t7oU7 zs=jzh`Pq;FWTVT(sw_e`&W4{M8u6ZB-DC8;$%lii0iFNPhCAEHv`3Q-(QGauWmh;x z+g-iV*F_3W94E{{G`TlWxcO-6_=neQN;DoN#rjM8-LHPWwx$czuU_?rV~oQh?vAu| zUM}%&byEQqR`e%bwq(sH1G!FUo>Z2Rt!-!tx_IWwC5&inr%t!?ujA(X&XkzQZCSgo z+?Tnzxaf+(3{ASnVjs$9$U1jL&&a6G9}H#O`hUIhKnYwHSO=xS{uMy4#V`Y8B=3PP zONX|2k$Ew-3JxiiMKeh>`8KVTspRI^PE+7B&+U9IW}*60gxfsmO#O zf^(%9Ok#KhzNc0Qb7NdkNzGI31N$}<5@LUF{dE(Y_X>c~x!=Yl-|SgZ7D|ziVN88e zAs?e;9L-5#FY<;^NO_;rE$KPRi!!@}080lgA(R+yEc`|SZGmUHTSnC(A0OR8k5%U_ zvx25o%Nd-<7k~`ss3f4t?|^O<7&W4ljlDBmW=%!IXYdTD9IYDEy4!1rGWu1$dUgMK z$c=AmT#C_{L%fs{+tsx=p3|21Z%{+-Mi#ysL9KP(?#be%ECOsByV}7W)e9GPQ!})i zyjiaY&k}mJ&%elwKC#+RO}}$3+)<@5F9mrCs=6b_$@V~g@vJhHVnCnK0UlNqGSqF) ze6QnOP=3~A4TpIFA@Rob?$uQRXi`c)b2e(*=v@kuQWtrwhoHlm5QhAbWN-PO7=BT8PUW&8Y=bk@-5#FK{l@ot%}OP2`|J5;SMc9S~yKzvNAZSu`YN z3y~9!2;cws%+cD~S|gBja;~@%hL&PEZ$3-|BPq;`q~nFIrfXSo8aM-#;JDqXwNYV( z^ZCDFv0EU(TwrhZgBvdJaa&HjRuQm9l8RitaK3Qj5U)pLuUk&&~Swy6-bX2G3*rLKf5C~`Zvn!4f08DWyD0Sl)OE1-RF{(_5GYZR1 zKWkGGAMFKd0SMK8d1H1%CB6o&Rab|Q)%r}h1hA&_vHmhi^M5!lm^ynV-#2@l@%%D3 zXMQA#l$pN#b|0P22t~fBEH-b~*12WuMZW(AeAb(RN@jKGyc)~WZsl?jPH9dVPOe&! zKgI7%sBn$XB91fG+FL)e`Iq^ks>lly?WANA*zC&i^9q ztD~yQ+W!wFA_{^i(r^hyN@A@NJw1}lt$^24iy0fDG5ayq`O19 ze$Qpb8Q=Kl{r=XPHEYe9nd>=wKWFbJK0#qVMuBl^d6S-A_43jPjeY42Yyp}qd&cfV zLDvGeUtzeEIj&kyaXZH!q}aV<#L0piSx>Gl#@@wyJ@w98j>S`OE{EI}+g@J1bJ^17&LMHN#B7L2<~~N27Lj-dm?xDvm+#XrJ5WTpdwf zL2FdwGRoo&E~8J#`26BMq(6<`THZVUNc?mC!j7rr{+BXz^{q@_xm8D>dwsVHpd~hx zK$l#w>OAv#f({8s{6@9B*bm614)FUS3uDQYolB8@s+e=!wceW*{r!e2Sr@aMy}kXy zLR*S*!y^LXM|;~!sTak2flYf6bkDvo$0qDaM)VS41k6>>S$XY?t7hDshY zlhS%eP-WQ;(7) zW;Eyg#J-mbgR0x)C(e;Ej^z0X`k%o(n%1}_L(4jH7Ng6s%oU|6yRCm*ihgDhk8w{v z3$;M*GnuKGjP2B{!9?NF3j?pWdk+ce(|=%k^6wG;-4>ahnR(M;{qXilA`gWs_V@A= z*jo%c=1#PF5bV_1RI}sInI1sQ`p^h_Ap@ zL|h1zRU7Gd`F@;PY>f&V6(;{007todCma}pg^NUhsOfHPB9lzzOP}ZGjQa^NS$_Z_9anmtM0oZW2Tp`HP>9P zYnQ~d{w-V^NXf&ciHIy=}A*{MYMAe;qR!mW=Dl`Nz<#rql!|J*etXs&!G3# zslij=L|moJ+n)ZPV3UYkgJZE9FvSu-9K75e_mjw(VlJq|+pK&k9)E(75>SroH@%bZ zRB=8dGkN?i-vuZ`%#zA>=H~*pozz)9k?c2_nUB=uI)X+*M`k~N{@nJ#CTvPF>2-Gq zem0xbdlP}{aKXXeZUEf;eJ&oIcGXTHc7lPW$G{`LgWRKYtOpu>EK($;vFHW)x|I`p zoT0m%M>3;?fkEW+i$P=olBwJ|Rl7yMA>xm96k^cakkdMT!|yso+H^vMmj)YmULDyJ zvA9v^6E4Mz{bO{of6Oi=^l(>?vwzgZ)uo}cC^dh^zfwq$B`BR?@IdRjC@?15K0l+h zFt{atI{p_1-CVDM0eC%Fp3>n{Lupy13&~*TN|U@9EOt_7nF;y*C~U^j0)bFG)OR(_ zkKiQxCkzOit|@{2whHsb?P*Xm*0G8%MizrO0H zo_novu~}k>4Nlo9sR(Mac?V&1^CgYsg$^pD<)&o#<(6EWKwR64XgA~w(w}O6H$`-m zdSrPlEVjrZ9=~4o5D)VdVp~8f;IZ<^UeA^8*Z_Q5Y~S|HEL?6}qCXu2ZsCXB_$XlH)6p;KF!aGlf8i&7uqluB@=!WD-QUD7U9AfgGQwB`dDX zcQX#Uz0xnu0^I1TxDf5yz?dU|3t3?+5@Qh)nQ%}dUWsr!%X%+Z?NWl+(J-M5xe375 z{@gpa7J6MHtX`(^G+-danz?k^^c9lsHPq6QOM8(#bT*?tw-z(^aG4OXKC+Z~B~9@r zVu92@wo`I)EVd7b#UFAp9<9YWIjQIoLn<|~le9e~gs5GcE)2_QW=sEA#ub?>s^T~Nq+ZF9df1>1kJ45eH)gQG|8~Ll>+D7d~}A7{Y7lW8;bq|zTKzS zU9*x-Z2B4d*$@4ra3)2Lh~4P3>!oqEhsc{}@qlDV5=J35&opk!7n$k(BrR5n=Hg|$(t z?M#ErI-VAVl33>f;gHvOeMD>L1>dH&m-ipSkYst)G&>Vo+>3Xx6KfN5|C-Bk5<7Ez z^{vSu{YF8l??{&1;w!8eR-CZ^Gp%g+Da}QXOs$R!?ZU&Lp?+07v*_m9^8l^aXJRt*5bE-zwWF z-jYiZq4&Awcsi&kw=CCB*|xpusibK+OfXm&;UMvJBgrn4oDJZv-YI<3H~dbK@f7w9 z?wyBgJp5ja$8o^dt*9tOiS}4Y zWP?=j^Tcb}d5Nk-5pQkc2w#k8hIA3IiUjatt$V5H(r{kJhU}`~wtJL?ZwK*6bJ;gT`Hv|taP6yg8Ama?hD+0`N>wT zl)qsHpIyW4ETH6-2KkI4L?7o@wbN{usTD!);9esc;#x~oqNQF*&7z1n z?b{${mf9MY0QKH-%;^(N+9{#|voMn=hVW|t*jgai1@ zQE|=nd9dus`fxAyFfLVkbLHp$vNVcMuFO@h$jUBiU>wQyQI&;_TIZ5hO_NiAyW|51 z!pRUSW;Wi{$VT?IteZS4aiXWO%BL)M$MWkc8c@zyse~t|)T%HF^!`}JhaPfO=4lqltL-9 z@Q(2zO71cC~JH3G`5+!r0e&v^4DIJuiz+>IYVn?9o2mp#?i5nKB{TVTXzKdra1CGXCzOhG@@es9E$f7!)0-d{|vvn6a|?` z7~8dVZh^?xTyb09Z&>_dP@K()!z^st?408$;+E@Ty*d`+y?c)ZC94a%w2U?h{?)P? zW*d10Wv>`ugXR#bUFO z`6&dNUN1!P72#gCi&*OnzDsQo4YNLElF%`cjl_SP>M3|u#C|LutV~q>GQ^FYztF0~W+&<^zc{;d zsJyTb-_%+crh}tsZr^h4Q+8zCP9f05d7fcMQ?o@-Y|vDkcMRx8B2cPiUmK=g_WCJ5 zZfIp)B2iV|6GcS-0b2&~iR+1~VMrx+Pl9%29gJ3)%?jT+Zl&(;`k#yU1JlI2pgDzw z)h>g2mf?6~L~0isZt|T5@VjOp1*Fj}RH(EfqbGFYr};*YVpGAdanPSxpe}InlwW8C z1Fg{e)4(BQJQ;dCW3UKxx!LT`eV8lwvb0?HP37$wo{Rp%89fg`+C*U@Xzzh?;p+Ze zptbO`NNhb^+>=X26EjtF+wq&63#ivIGhiEDKthvK3uaM4K;Z0@43BO+$fljWbQgbQ zHU~tLs$mMueaC&iIJw00^Rb4zad#ZrYTMYu;;p;;yl{KZ((RO*e>py8N~~@5M5D4Z zeZ&MI#p{k!y!{)TR;hv2feSv`CKiHrR@^azgD_6@L4N-;Z^2`Y`Ndhg=YIEO_b0yv zU^Tk!YRW%&?l`mGZIQ>d1`?mcW6{Y&WVkyNT76%-PE7M4X9)}~Qa2{kHOIi{=y5-0 zv=2(iyg{$9ub9t?R+R9ad z>4qgW!2z_ZBxU)&Jxq_l5G_gOV%_yx(`-d+F3e@p53}Q-tcEECiLE|G3@8~W+&LQd z&V7ZgkW)B9?H3k6%uf###TLp&gB73n%SPAByaT~rv6V@%{yrBhI&&VI6JZD)!RHY} z?eRTT^;vRa90-qtX9k_WJXxADoW0C8LSMefM+wV83#`9q;%Oj2EI<5c*ps)iM;@?WCx0)=+9?v2 zkWgs~v{S1w@3Qg%mhEIOb_}EN`t@tn2n$9MxEID_ zSK^bMG3})zW7ssvYx{eGbX#rxBv{vp9;&&4y*eSC<4Lc*S%akfd@@j%zb3CnHjt1b zto9s}g1_r*^T57x4blA^`)pA}A+Wn!%M^>B{pJd-g0h{3_smYJ6-_(Ll- zd268~ixQHplKK!hr79HViR~_?1>mX_zu9b!E6R5aNY0{LFO5Nm%hxS@C}T?4?N40j zk8RI&%C^9vO|NMnko97ak7Wj?$xSTNB--NpJNC737Rr}EkhK-2br!t&(Cd5|Y6Gh$ zQy0&7c&h!tA7k3qv?Fz!iw|F!XFjR@V4|A})q(-?wn)dGh>j`-ngI&5rvdwm^$!MQ zuP=}lc*%Q~A?Ldb!YVFsiZHJ>wzBrh(2sz*7b%EU0C4Y!n&>pk^XJcH2X0q@o*^^) zyRl}hXq9J3J@5g1uo8|yd8ZPA;3`=}UoTicTrIcCZ}&0Xk5AeK<7W@ zvXKCerA|GYD+5pCFaCiGISnfh-f-o?9*?Ng%#)i2o&wBiew>dsOtXSX#-V^a%XreY zZ|N$?H-6Zs_~Q z>Xf2#1qwH#vY&4^KhYhz)Q98O{Jd6?Og`Y&gM#yij8{0Q6dA9Abm@R7ainYj%Y|AR zJx$qIlxdukHjC*8e*Ytwso)oPuI_SA=GW2F*hOdG%15nC6qHYUtTqeDth9Y;9alAW zt>2i4v5}{rQ2J=7v=x@2S<_JZ@`IB{84c;lq1B`A5mPS7e#uPb@Yybd6M`Hq*KTUbB7beIBNFRB8MUx|9By2^}E8nI$iu|QfUilU5Xjg#ZnE$=F zpubiQ)-Rip@j<62qK$Lb&_}A#Hcsm2iHXJ2w_3;cW37|@nwV_(4i+9%K2v!S6GOvZ zGEkaZP8y)t?n|NdLKg*9RIsoL7^tC0PP)33LRt_D<}ny8Js%&RO)!=~JG6=mg_$U$ zG`K4^?|SSm*9|&^7RknJn0B?ID2M2ABtr5+Jlku%a;w}#1qD0WM!uUW>0WVt!-R2c zdsDf;UGETx^>8}v1T7u;cz0mn&-F=YEBt+T#qQmXMcEf*;wavq`5h0dT})ji0tMSy z{6ze!j3cqAQk?G0*J>=UWw`|cDeSacom*-RG@RR<38iN$=Eugs{)Dw&wTZ0ZJrM_I+Nd?iZ09wHZ_ZFHa`>kv1{D*E zfo_Ctvz9rWz1MZ@aWINxcIHL6c~|5DVowbHgQY#Qq;Nx7_MM_CM%U>rrk7QepIXO3 zm+>zIhG^m|!;8YEpwxRaghq&a+OlEbDOMwuWio&4d}Im8RYEI4WTZXxVtZrbRp5v) zlM~oOjeHNFtr)NT196y)D=v(Nt4mOYm1=e}+2nozqAKRnieOCr4={)YA%@fJvh1q% zZjCYa`tKb5g-uy}S0Jy~V`00_1tPH?Vid=euF47ic49w57PGalHKC{=P1Y%*8%X%@ znscGr9QtC~rv%Q22zD~2^S=iL54MXj?@O_$-TEYQu49Sf=pJPMm{dTQTpTJ6r<}+z zHQ+qve5kB|-0MEWWWVNPPFKXdmEIyhKC%NI-7tjy(%qWpFv4e3ON~l?`BIqi4V?9g z@v3$vmc2zpz^?EY=3~)XTdrdW5tbWpo6R{BhazV}?Xl*XdVFhuidZf{_39fV%m(ED zvH|i}7skP5gm1)X8k8++>{cK0t$O zz)HlAYq}`N2<0K0VDVlCVP9JRyco2<>0f)O-x|h>?h!cRs=!oZ6ZL)y-gG6AckL@RL513DTCDDMpS@xlNf4 zXXbFJE{Q_8!la2|foB{ZTM?4a0JgUw$6+38iZs7wD#}0e5E{ToLMhCsa3I{y{{qI5 zn56@6;(b@HfwvUMww`J^n;>BU-wD`jf_|XwJ+OkMXAVkorR~98+ zqr(eLO^?lCUreh}6Nuz6OSaaquY8pu9bW4)s53aYpmQ3a?qH{2@r@moQ4U9Ad{$1* zhbpG**r$Jo2m>}meB&!izi4fk@?b-RSa*zG1@I(7IIVNndT$ltdkX_Ld^SqswFoYM z0nl2|r2t?aj`iZ91~Z5`$Xk_9q%jo9s{Kx1ZBSfx@Snn(<)AQ3ASmF%5+EaSs;&V` zAIH|AVcVIBiAdLN2i4>jKVdl-Hlif^z*vk$uG9F1{uw*#8u_R7kM170cVylW-spG8 z|D*ay5lGbXrUDROF0CFmrQ8C1Q@ijs*(T4>9Jad-d4;!RU=u8aO=6zI{IsVeN_G~) z=eJjS^a>(JD)2ObM?XukxA0?Q=jh+DW3Ko~vnyN2K?)E#-WM%UX?~7wLk|g2WGFD` zlw&+uHMqZCsz}Y1aj6ZeNX7XO<`6Mnlnv&%l1!Ig9H@ zLLnUyyu+I-Zw7JUWI7|o&-_TR^Y{mb;1q0Y{<%p!5|l0S^cT^HP~dq&f@E=WvQa+> zq}tQP3MOT+WR3+14OD?1w|{^CZRkV_kSp<;w!}VJv3@t5nhFwggit$Kx7?Q|IYgfy z9+3~nurV<`U7xz+@a_W45cTiQEna~q;O2-B?9?RyjR`LGt9=XR)FKSDDY_AUMLO5O+aU@R-#dXy6PVV*8HBNSZP{T4f zPkgV{O~VKF=shK+&Xb84fjZ1zVAR?2rzE8KxHMfkdX$P zK4hc(xr9%!OSth7fVYF&lM5e|;nzujz|<<45a`2ztcWCoU-u3B_3Ob;uM(c1)_Ui% zJmS2dV)G;WF(K(2y#k{KBV+}nZ~i`F<`}CkXVGaDDziagr0~3n#1F)NsnQKm5)jt5 zFhR!kqxgdz8`Q$Tf|}b5(DT3K)B^3y2qx07nw~m3J%j*;uZwyiPxMcg5c(W$Mlsr< zy(nKaz8L7h=rc#O)kfbu5{H_g(s)!1mqhb2%U?J9yR=vTaG(})P}Na4p&vUka+m4{ zWmWX?&$eg(+0(O3@Z@Ay2Nq!-vfig9I{2VKk3BW(!(u_0cj{|AL}B z-IV!z_z&cAQpX3ZW=$0!Lhy6GPe@Bs)8Q0a;rrRfH@`hP5!@JjuO^x=l}oy7=JrQO zLcq+XJ%H)ID9p0(#Yl>MupdnJuMg&h!1M5MhX)`&ITgWiv*dv*`_r_=U(g3=o|RJ5 z*98Ce`y$xiH=TTof!|k4=@0dW-?vD2@9l1ikj4TZgxlz`0a^AdAO*f&1J5jajtdvw z*@FCNFXbHuaQe`9a#|~deoL1*I#~HI60s4pLT{n%d5#S6|XIC0ot&!mH2 zrvO-mNxyKT1oqdv|NixFp|?dL*zG=k;i>GuQ>UdH#%u9Q|1*??OqJxsi$gR3yum(p z@x2|bT+#r9281A%L=L!=^ab$Hf`XpoU)jSX_=59ZU>B$2*Wv{6v;2_>*%Z4@p5c{i zX(O{5TAt92e8r_#qIJnLjAp+lPMzXB6vy^Rs!X>>hmZZ)jfX$aLkfGRobUMr@&T4iDgh`Q8i=jF zqh0dfit?3)0L3<%ku()}^lQDzlli_Yzarp=z|SAs!S$`J3^Ygat*3w&yb7MkeWYO7 z2hgi#7s41pt52`xo?U#f(60~IV>6L&H7Us7Hz7-AwbCM?|D0Oc=OFynRQ4D#8>W)? zquiTJAU=As#Uc9Cyd49KHXg2z%$ON9oBaloC(m7c4dXO2zHW!w!}jbB|C)lFlUn@eknfG9 z?5!(b`jfcvH$A`0ox1JI3WU3S{G@T|-Pp+>`Obbj)Zd7BCWqN1ujb{^`-gWG_A(Sd zx}=umOTU|UEM5S+L+w6DrOmthk7o0pU@_5#MJo0GNk0p77?@!bnK5mS?%=;y8^}-$ zoc}xLDYog*t=aMCWL)_Rs2*un|0hA|kR*uxz@yt2> zA-Zp*$!DHH_`fb!;hj^tcx41tjc31oM?7$cWRMRy{TAPfDDkEM&L3Dlih$$@KVp-a z@GN)e9^#F2@lw#+R>CC*xuf3?HuI!3{u1SNA&>MBg z>-(XVT%D?(FwhcQAF8DsQIA<3t?L5&RvYm9q$4s^&AcS&r3MEW_y6I+Zz95{s(2!% z`p=pwzV_WCK=$#68jnYYHL5TD=r9%6m&MlgX-s+8577*{R~R zlmz;+#tF4`5v)>Yp-I0JVscYU%Mc)Dor?TSDWICi%F2owc0)pn1M&2PVDstCoj~iy%+p>Uu z?nEN!=O*2W*UTa(9!bnlL1hV`MK0VOMaE^xL`QD@&M=~ICG#dk{I3Bj;yC?vl3?eV z!Pc5r75He`*!orTFVqmmuT<2psj0R6_;s!20d;%&L`nX}zae8k&rUcdVFVOn|6wBi zk|X&0`1lE#SP;G2QuPIw&fP@gh3k~KyA?f2L`p3Sc@0> zw#ICQ9-VY=BEnOV!XLDona4p%7pLq>Lzr6^ubS5Yo|LeBNw$uLiE4oc0U#ihz9(k? zr$YG0>n%=w{|1h&xjb!zea)Ev{WbmX-6)~=f9gV3rQXh;4<&I}XuCujwQYc(m{R^4 z!?=;KMhCgl8Fo}KX+|>>hCv+(og(*N4|QWxXTvxp*t^wFemeu|Rm_P0ZT}w%md%){ zNz`l_BKWyJtm$h0bTvzJw+>b63FS-yQMoyhuSzKaGRf)bQ=dTG_o`xOrxo=2HB85J zeCe3sgj6H=pTko9l=6*XTlP2H>{-dI_H2sDeiXcwv{j%^|0LKgbmeuZ)YH41vEhe%g4=CC82I^m{M6TNwVLJ+NUTQj_R2_W--?Om20-DJX%fK-dL>60xzP}#~DSCR%Ar|&-;+( zuY7~+gpv|#u{69zfa4LyViA+f{R3nv!~X1lV<$0Q-#*l~1$3gqo*pfUGQtwZ%3hKz z^**_%*Ff%_qIj4rhVf9d&#(OwnGR0zf+UL+m($HuoGBzxXI^JLES>QKlPV}s9}Q=X zd&9xW8C&AEHj^04UKloiO~Y*Muk1Wr=5rU^=yXEA>cc}lr$e&%-&NAr$H*eT+tf$W zEYPfd9Qjs3|LD?A>NB=766K>%V-nRqm)=Hhf#V55TtH^p?cy26&t1=+v9=xa!~qC1 zceU65{{^FWM&sJGB`+8nU}` z9y>(S(c`Ga=yXdOtwyGNvE+QRQed+tt01hb)ite+}Q?F8F&IOn*B^I0DywAc{7$0-7biDTbu7!%jS8{rBtN!L2Cy zIVZ`H$L9bRLf6&Z-JSC4)hm5XP0cKr5+23J9q#Y%&jpUsEa>8t@Cyo7FdXw4z-9cr zpndtnt(HSF71S0aCz_&GrC)s&5L8uxtB-SQ&wG90h*;)K3&Um?Q^U#UL?;FP7$0i0 z5*VNr@t*|+Gd=3l!B7CbKTB{$kZIpX@J>Y&YAv8%VF8N)V zuOd}JG1ogVH$H(b#ip^TiBs5Xce7YWM`r+@{6XWFFPHTyHbdj$g0izY9p`&bv$M0` zx3c;S|MEKY$%a*k~JwGIYn}Ll0Kfe}^%je+W!V|}?p>Zh^(LuN# zsrh7=8)8O^BgZHaUz;q%z^24Lq4SnHqKDi@q)G%_2&+htmACsnz>~|%e7q2Zza)m1 zLn1RBQg#=S<3~b|z!YHu?Itav5Kwfp()&gnj@SvQ+7XStTSScAtx0dJ9%v-fplkU8 zGda*auTNHE!hc}_B+T8Z&xS^W0x`^THNkeuTK$<|5!itE-TB~FTvAkY8{hB&Mf8}e zHfe;Hn^)=!6A#sp&^rfb4a6(&N6-&BilzzE2EX?`PSvJ+>sGhb?&k6ov{`HB=YPDX z1epA+2^ z>CDd^9(61lbgUuV_)F$3i;d*SDv)qV7a53y4d*?cMWO+s)?G zAF&mtj~8)BElp0YiKI&4J>@V^?wUhQ&|WJ0*`Ir5m;`%eS);a+>XO5{ zMNl=|ccH2)CZ|75;0!1G$TdEBdOTaRqd$mMbnBn^2p|Jm#)BFS0qT1*$FNT?qZCkn zBJqW}>0^V-AHC>5<)JQru1WUG=IF$iD$oqe*aofTqlP@_LEN%4pu6mSvrsj1ILk7{ z`>hW$_9%4vGI?kavVW=yIX#u2;40s!%B&E4y8;BnbhtU0LZI@c>jAqY{p+`gAgG2m_r-RLsVx;sXK6dWzv-Luq^ z#W6B5c>~f%?<>+3O>kK!u3x|Y5O9%QAR20&=klbyVdi0*dTZ;?w!qwJvbI@<(X7cd zy=^rFEPlTH@u_lfWzo_uUu;II0?kO%wv7D{Aw+AQ!Tyf0YAg?`-?3O`kO^k=!rydz zrk^dUE5XqoPr$}y)WGFh>B@($FfUvm#)jE$gOPLlR~k7E94?D3nYfNteq z7cM-#U{_^<#&tfnG+>>!K5gX_O@V1{>+91TBVTiM=`)$*B^wq+tc#boP9g$`&=<`1r5S`5kPxO31a5pCMhkBQ;^nmkiLkLaX;`=$|qf+G~t4A`L1H zOqT}_gph+MRG5z&LzRNLPEJX(pZD96-^xdOwX_v_gLGI;&xKbqzS+0YaY8+ccq=zV{ynfhv3r_2JFmY6nCDxS z+q@jzQbz1KU3*hs(pif*1&E_n=02A12Dd4|EP@)KBJFN3Wu6=1sG@Ylv=Z4fpE$M2e2`pr#EfT1i}xxA%=Hu! z0)dMd2-6|pS<3+Z$raC|ybl&`^9u>>><_^F%}m*_xLC+;MD{qn*x8LA4-ys?LL|1& z4|pGV4zB2YB)|A-z2l&~wpL!Ligv?AOnV{WQ;a3c$IaB^dp~zoc$zn(>6t$4U#f8P zVv1;KYTC`q&bG9LvtMyC#s#aObyZne()|AYP-8jQ!`u=fP&oxJVMeCZzrUob+}~|) zG(ohqW^zXb*Zrp;S_diF+`CH#%$&{e-Wd1igNutewz%lI1}*lQbFGk7)t={NziW4%mZXk7q;6DE3DZ$7eHnLyLd0$aUyMG)W9T6j zpNYqZ)_Q2adVDcx*uugBxj+1DbEerGWjOG2UwB(5q$eB9B=dCBBpMtQCuYI!J{|=k zRxrNhke3YEck=HxEP+MBIB&)Zl*K#~=@ z%mQBb)`E}lInQ;c!kE9I;Pr|x;o+5bt%?Ol;`>XApqd5Z+~S&G9tG1#$gWL3Cw&;` z#~q>ut&vId^#~3_z zg2Z5`S#c0q$x1b{=H{tv`T;DZ6_u5%v6%e1fe(E`Sv8GOsJ2wgqYOUG7b4_eC9r8X zcqgj_1~_@%^~fpY&riKyTWU3!b3ib3gH+m^VCf{<+~=Efuo!29j9MSlApKkFsn|n_L-y7ykRg2ojG8A+k^h z$&I+KEBO^Yz|T@>IUq%H^{P*6bKz-dYD$W@EE!%EcK7n>kUp*!>Fw(dThiOsW>1Fx zacK%SCizz_bF$f#IzY3^0Nq8MOL(mN9Ml1xouXU~?$v2HyBwe^UUvINXC#Q3>E5-7 z?lrABRU41exM8Rv8^-+}(aLZhAPCJ3L(T8)=CurEbACzoi-<;Ub9YSwKKMhmPBina z*CT*`s>6!JL+v;;;J&!V%5U_RQ)J=YEVmi)voj3?g7XaEz7S#KniWK2d?P%Ugd-eP z;HUt)YB;5Rp7B0`kR$%_dlGEGKT5-SeOVk~K&DZLzC z<{pbcs?y|7;2yRKpUG$Sz^*LS4r58ou@0+)WWQa-u(LmIjIgu^b*9{gMbP#sBd%&j zwsCI}fRB!$q>%ijNF|IUZkaY$<+qZBmsRz=v;~4u*^k*6Iu()eP=SV(-LdV>9M=l% zoSSDHy1^>TT0j5p=kcwrFbd^4naK5MFy43%@_S*=eq>@RJ*D68@Mk6-k6AAmRWCCm zZXin~6^61#_G9ifRMxF5X3w#sG_9WD1PWJQ!|MxMS+Sz%Ie9y>HEi2TyzTq<5bME; zy;$3dJVOgY0qSs`^T+8#e?9|e%s12>dFTH+Vy`~DFY*0Wk9z0n16YL-$)~hec8@Nt zosrBBOUX&lPzos77<{Ni*27SA2AxemoIpWTlIAz3S#VaWWV?UJ0qM%v*a*pN?l+eF zW`Gykg9>xFzX(@MEiXIjeVZiVP$i<6*Bk7OyYzIMEyF0v=;lrdsVU1S%apy!5ysib zhO>c60rk=2V4wBYYNkD-7GFe{PN&@E(qYE-*&=F{EsOHve=LZcJu-LAKrxi?Ww1#= zy@uYGb}y!n@-$`N-nFwA${I1RZ>;&DE_i;2@#YJg-l7aW*_6@5uj$v5f-MKibt>YR zcS@Fi6;8U0(XIUX^fY~-IMx-dvutQXt_NL=nqZr@Anr&dvMu=}%aRKWk-K>4@T&&A zIxDpm*R0x5uqHWPp}pzG8KO4Dx)m}e;b+4sFh;5{A9@79taYIs#YE-oyu77bFuYVj ztS;r>b%dy9|Bt9(vHS$(wv z^XT*%5B5aY5^fLER&HmrSoC>GfgzJft|+^P81f-KX)-1r`{Y%mMmw2|d}==(QJh@L zrr_li{~e4@k6K);>;_>-On7)TYf%&FX?I0Pycu=yUvH^|b3Uaty$^9J?J%N4ktYo$ z52WC}mvHmd0_vaUyjZSXlg*>Gxw@^eG(*9zGx zacp__80vSDMyyGUA2m)@)WaVewA}hmQw5y(BaDS=65=xA`F`}3=_iSuN|X+3g$8ao zYNL%x$2Zj}hl*=C9^tNI6SxEcy@D%@oec4frOKq~q*`Mfv7}i7b;eX7LU>`Qko2)S z{NjvvoMcQiCHs<<$%@_)NDrYQX8Xvjb7jg~OGbh+E#EVIHU+vKDgjf=R0h$xq@yy) z9am~^KFj^_>2_P2n`S3=%^(w=QiN)Zj%ay98{4|N8n$*V@g6inL{w3DCi`8x zk*@mP7uSVeiear;v&W*wJGDOK2Cfk+vbA_XY#2SbqARJfP{81CIUy>wcR-0uATMq1 z-7d?p80#)?khea^I{n+Whb(uj?r59+R?W?rRa*R0&4HB(SlpA}ylqDS0>(IFyuZ_z9%sx&?N-yi?CJKTJL0H6I z+0Y~6iZ=?qaAceUV>KV>cMb#l_KKI+K9vIJm%Dqrlaknr_JToK70^<~XHDJfz=HS^ zROFM`tl$h^f#{$2fK(Z@aEWdPPAXi0oIpb)GD!-14fxoYNc%s-DaSMP)zy(-uZmP6 z%Hmw;Z^fx6?<3TG(5%EU8fXbs4|TtK9X@Q@@p?Z4n?4vGK#Dbg$bVzlydSG^Y#Nq zYuuE-pLzE@syAYAhLjM6K91f()7Bgg?d&qKi(4mOF2UV_f5&544raV~;5NhdrhKI_ zG#rKHK@GT!o&Z(`E>y-c4i1GpS5{WO@QlVi80$Gzfgk8?ZwzqkG7uzSJcz&gh^2e^ zF~cr`^~!;&aw^LP{;yl_9L?UR+cO2*_6j?<-gtXSU9<>APKD(9gSkWqng{`yvxN z$}?14a!m7K3&NtbLYZ>rB_tkK17okbKdWES+gBnZT2e*?(^b2_BhNu7u~`Ds++!sY zt2X&*WMm`*oL|Bu*xD}v@H!G^8lUMy6eI!*wue-;)t~=MhiPzW&qy*{4Keap-Ez>i zuNk-ZyaOlLD6Q4PibD+} z+Zrj5z+Gh#bQ7Oo4%!9H5*8eK$5a9oe=ub1y^BG_vIaCw5f>b(h-g2?zMJ*#U)+!t zlLz!@q4w->VqDQ%M~6g<#h>mj*daW6B7XPVjiohYYuEIOdo1E~*RS5WZ;#I=XY|x> zj;VkIJ$JcneW%zwfsCq^6De?fGI!mcyvi4$*VqY`t-g3G?w?!{AhGk7LYY^<-IZU zm@ZxW&oN0sIgrTbuZ0vjLC#ig8c9SDf>TBzg^9kTfm=m1q=^g?T%<>PknQgvZ?yXE z)VJOG7#wxM&Yl?k1{{^wVgri4J3r@RWxrc@%gRQklQ%)k)&Aq|)~fN$HECKbAPXP{ zW;ZChI44!L7q7nhmvUB!S2BvASLU>p_H6QY7&D3Qs9)WvU2<~leyeSstemFiDZs=( z1x9cZl)DwleqY8v>6m)1mW?gDTy&nhH5eF7dB+6@W_I1sd-@trSi(AP;5N+)B)iQp zCP)lFK^kK>RE0CR&k}|Y9jS+$`2wyhM&ORs@gf})#mt*!1nArO64rU)IJMla*@!4U zF>Fs5Zh(B~gQ#+@g=bmav1mAL6D(MQO>sLV+d5g9Zft#t?@!B1(o?esEGe1R_=4kerKAUAs- z^NxUJIGj6Djsz|?A#Zpr4&<>#-jRP!XUEiJzqxs?hT}b?dL`+%NFYDIz4(G+I%j?V zPUbqTE1?v0a@qzBvU0eLyluAnU5XxFJ9 z|JAgj)Z{0HYs>MUY#`s;nYd`49o5RWa_+S_bYvKnbycHy2|((p3QGvk(2zZ{12Eu3 zKqUcly23b5S66oldqZth9*7Tk?O4^f>CZO{FZ*r-A@w5k-Dt(#+Fuw>e@_cp>}m_? zDKxzYa{-s_=`?J=lt4d|BY1;i*t2=z=7~P+-0q|&&Ol$1P1BhQa%}ST@VDd(T7Wd6 z#>U5WUgW%cM_ujvrNDC8slL<%8i~o@s}ai(`$gCA4!qRAzw(;>9xg^c86(o5t$mv8 zQm0S9?hjj{FIB8LV+Y2A!N3X{fyduCO)6Mj?VYq%0+3&nw~;|8xBk1KoxuYMqs|5} zQ9D}{FLhq0MA-zryVdHwzkQQeZwv?pXcjS+>nMM+jKU8xk!4LVpB{34-&%P2X!QJY zMJiGK2)2iDoMPz1kE%qL`!AqLd;kA&_TKSa|K0!iizrfLE3=nfMvtRe`NNtzo<#bNjmixlw4}F_Bo15!m}-|^n>{5`E7vlV#mju80-Q)a^UedOL*x94T#R` zOZc-l13fJ4Z-Ir`L$M|4p!kiz%dW2<=dLQ!bJ{erBlrqQyDk9@x{yHvfnPKEP;&ks5}Cm-yn(MbZQ3jHp}4k z6HqO$(N4Hp`p_i<{q{uJp*c^3f(}wpQ!5O=uHwq78T`@O-#&Fzt!nmX)vy@d3QtBXM}nkPGR8^K~JMioSI=$yIM2_|e-g_3>k{*Ihd<+S#p;Y|#_wi(4a8Tg(GMG_n zB(=gVVB32OWPB1XgwZ`mL=!$KPCumdI3{qTGZH%Ao2ZZJ7d(TkEF|!qv+s>`z znQ$cJSX57mP>dqCP(o(fP#A8ZZyMz%2L(XaYhilOLd^a9=|JKUugJx@ZfRKuMQ$Bx zF0G+C*UII652zO}oVE5A>I(~Py|sVuO5}00rEel^0H|{xXx|^nD+tid8U5H+GKSAR zk31stJ$G`Kk%Mz0XglMk$T$SWb2)u2{0tmIdrh!(`_HR9J?DWxfDc2)SM8x!Gpl_C zB_|=JU23V_gk@D|y{Mv+XaC|8396U+-n@(&t4(3#6A$&jrFXE+bng!ndRlsVVz*%) zMAijI)im|JT#M_M$(tU%%zLAjY=vA(a8M(<-fg7w^pZ;wRY>(Y54r^C!6=QsvhvkT z+)}m^rgI`W%9mb}pPxSf{cWj5m>kR36|Rdnpn}H$QlD}`JyRYXqw`!i`2(kL;ez5y z|0(|jZ17((l)7rn40^DMP#;UGycGz}1aZA(rzvShEF z?ggKq6U%e;1iyq0NzoI`caGAX5RS5H$G6a%F_E5?j6S-2s;)m1d z@LW$bJtO0)J4}t2UY2I?3AGLE2;t)oefMKxN;lyTGFE(=sm6V>Kc8FK z?_ENUe#&25rofAh=;5rb@Y3|h=O0KzGdRC9l)KMg11g(-UeCZ_3hOE6YvAR`1Y%OR zZ?2-YryId)dVh*3eP-&-@F zR>|8A%-)=*6JJW)_8&)d;r7&ZC+D)qA`b`UtS=*X6q=B6q@0!scJp}Jp11cXZ$w<& z>NV(Z8Umj(x_&I@E)4YH;O5?V0v=+doW4$oe%yl_=T77CoywUJOU-xy&8wombP6cW za@Ho5-!)TXu`{O4V}|60*Zyx@+FR{>gyw|8MGZ|&mblmyNx zyc*_IO{aSPO?;S2z`xOowYghG0wbQPpCl{%`n?~~k|a+1J_TbM3@=K>xf9hN-*5-A zSV@(+sJGX?e381}^K7)}%Ml;;9^pLN_D?|<>5Sv`s2{HNKW*823W4Nqp;Q`_8rnWy z`rJdt5<$0r8|7u%56(IOM>IiE2hbm^;6k8?Et{-#_!Kwl8O|Kh6_zgEqaB^f0&ytM z14HAfLi3ApudwL0ESr0!i^J=v7?d;fo%BW;lsfY_T{&5R4LvG!5``IRKB1mXJxN&; zw<$a>jV}_q=UJl`!UaYhcwz^3o4&#f-Iupq>jFsS;Ps6u1ri6F{u-UMq>BL&PT=F6 zBjb4g40hG|nre*%tZ}-?OhFJl2bpLgc})X~2gmkMO(@C}cZe8eg*g;=_%seMdnda( zs0wkO>bBHy;6yw!b6Pm?{y+^siY2Rqs75+^h#-dIIir-MKvUY$8hg|_O8!nJTK+1Z z`lvQ45$9nV85PVL%b7l4%jw`@=p7sx$o~&ZwV))(H#ffOaX#%EBa_B|{>I z$VYDrc0P2P5+aAn&z9WJ;n`4_Sz-V9EslbaH=PLOo{l|agUhjRPO~~afQuHIxtfQ{ z$!bhc_$W^*7S55uHKyqNl~e-{pCmVV*leO9ZJ92M_$c@+4~qO5!EPU zJB!2A6n@Wsj*T`*ZO&n@#o4hl1xCVjFWT-L?GG(=8O0`VbL>Xz>9cZkuSRc9n z`Qt_g6raNzFS_4uVZ|HzlWREMm7cdhWtmkJZ*bVI<`i}5bHw7Tpz*9fo1B*tt>xT% z-ODK=GK$w0Ce&Zrk6nz#B;++^PLi`J+CraTwb-ke<{#C{@HtKJIopH}3Xm#nBfa43 zlPFJyd=AU|w|t85IpGVgi^r=ipYbSYylvO#I|q5p77%T^QD>gngC zle0HZSNHdBpGJz*MP`NI5DBJ#0WPdBx45kx#8qGk^}r9IpE! zDn(+R{@grJV=Zv=Jof0_E7GHO(I#2@=M+lLM0bkdO1U+eW7K5&Ur^RaW^F>NgDC2I z7pnq1tltYk->cvGnD?|?$7jU|q$;D2E({Os98=x+9gdQQq&XyxesbLY8I3%nG*AK# z%W|%W>^&D}YMS`CIPJKEgn?yHLTRKCR{gQM!~p%4uYr7FvKi3^{5TV@yzfg(HA~&j z1_(E0Cl)6|433ceA~6dw5_Q~#w!Ty%@EsMDZN+llP*F4AyLXQW?gQ!7A9|)IK-v{E z0kwwChA!aD0$ZqrM=QT(c+qwCz$xCz(D-)L>`k*epUT}*5pXD(M^4|Ec6bRfFI8To zarFSDp_(tXp9MUJld`^h9AK^}b0$?e%!iK?OJ^7M_|gw3#c}^*Cy74Zha&^rZ~kUcVc|=F zE@ting{QQc>1}K41q}@~UqLOJUMDvw1}=fLQw#};EVc{@%>IS$)!Sd1z|>H&hv6V`udp)ypfn_gito&{n_ zu;`w+nKusa|20;MOL;(Xt#}I{LefhtYLHQuFs4f_g&yv_vo_0pxG>%RMeN?(C?1sU zX>TXgG>WO)e4jH-%~Rrddcq+WR4|I`%J{|AK^&SxOou^BwgqQV>$b8vN@ZU}LHT7# zji;skQwh;QU?>)QF(Ke<*y1}I5J3fECy3^F&j#PDPehTg0!iL_P9OF#H$xNUZInefTVobrvDg|8em#~E4Fw?naphB3gb)7 zkQ~7INMv~RfNdf3BGHMy6U#XUs0dTv{xC`0mBXm#dE&%F4Ap}e?2;hrhf~l+4h6=S zCoY{_6ibg`;S=|qX2j>1v+~jU*h6z*+k8>@Waq&b1d_^yp(PMs5H4I0d;B2y0`z5? z$M_0C!kr;7fLQOCw1-cizda~Hzs!19m4T&9Uh6XL60y2cwaapbMD9opP2y{>bR#?) z^`e3R8$-1(?gGI|eq4n5eJrji7bEbDBi!Cbp)^n{oZdH4iW=-^aegVaTsZp(%YzO1 zl;Jt3ua=%mQrMZ?oT5uG#E$xHq)yj+2%p0+QHpEkX7^%}zz$iB}-#Ae?Nw-<`HVHj& z1wH;?4L=G^FU#v#JuazMP*j#Srd5X=+|eRSnhi$Om#R74YVjzRxZ`e&m=0+(EM5X7 zdtfwX@+B|oBaR{3d;Z{pA|_JMA(*Sro(S2G1h4D7K5j3ygF~=D z3?qZxpHv$b2n#-a%{;9gyi=WPUsz1r!IC#Mb$8uu0V+igO6t+-cd42QCf6wm@ z5Yq)rPg|Opnx+B}FOR{TyLt0u7=w5a$cT1!bzK8-nJ3SlNt8lxqYhdyVF28{?0Wy6 z>8)K{YVBRzKqh1t(B*cAws!&NAj&;#=!z81I#^m!TRe9k6OhXn8-agjQnUcv>F0Pg zM%697k_T+*QDyxrdJ>oKm;CZNEM*qF(!)G|zoq?l+r+c(O-WksUoQJ=_)xFbx=oHV zL-zAv%emj;8lmOlL^tWb)kpSYtmw;U_O~IQQD5{~FcEqsb=_(xY+ZESy=J<|^jW5R z+{>r6)v{ZGw}o3{AANoGvEvd2p<<8;Dk7uI6?Od#OTa!Tn^E}J+AT*MKd%Fm$X|pq zN-}J$yu?zwONp3E*gyBB^lX8$X9(2noA$@1C;C3wv&U4lONh``r&pQt9^1jDcZ5HQ=b%t zdC;h)qxm$BA>+h3^mt?S*_Ipi36?QD3E5tnR*!g!AFeeb-#xWnCUCE`5q)_0_mOo|{I7M(HJPs_e9DW-$A0l`{^hLqU2b8& z_wPv=?RXU|BVUn8&Kk4AzKeWyk`T(BGa0=Vcf~&K;|*%<`0GcHAMzkO0ZL+~08b)EaCg&l6RM04SMHmMz1 z>wf#kQk2!cpap8vvULO%%v>7h8N5YM8o1@qN{nhG(^kRlMGZ*~V1neI`*;5Ed2yFT zmgN;%!TBwjTF(Y;B(jfa(r-8k+|q7MO!ctAT1+kMNAh4K%Cb~TOdvYx@wq3 zwoWCc04p9*HS6z^)t?}rsVx6UhKxBGcZJsb5^53_W}=d&(n+S#&3fq z&ehOTKirmNLbRBSs=MsrR%s+If?>#t>zJx`?vWpk*vu z{;Bm1miJhB2mJDr;XqQ%-5e|zKqLXdO3Fv5Jk%PXxz{FoMB@dh(+F2BV;7yaQCM(juZ_e!A)Lr>ok%t%2kDq=tbFgRr zyL)yzEP^X8Iw9e#3-oq6Orh{%GvR`&6L^X1yT~L+d;^LN=YmD&z^N_2U@ir8&4c%$c31WV}h0sUOand zEh=OX{vE%rdw_DtBb0gvweiM{L^8KMl$3h1{YYLjFr=3*k+PURn8=V;?oHUOgNoc!ebTyr4l_Q&ZFj zf1F;18zM<^IJ9_>V&TLo?N|}nWhBKqrbXN&4*_w=A)>RCSzttw@3b|oEBh~RkfSKS zv&ept!`6L!M#e6Ri9C&(!3FurDn$B`7}^+fX-&Tg0Gw5E#m#)@WeCb^=6j+1Nz#P( z(RF%0e&rb_tL4|Fjx+mJpJ3~_Z&b778L*pZ3^ZQ9eQ^@Hzjg@ok&4fP+mNdd5GW(S z`SK%)2k;e11G+p~?#~x7?mBrH9zXyaziVM}hY_FjjHXRU2cD;1|MADDBsI*zvdOSb zMbgzvyr>eCC;2ILmfj?Ep~_n$R3GZgzPh%q1MzB`X($u^Wo48n@?tmMe*aIir_Ww_ z_gh*MwW539#}fx4Z%zE-pX|V(OVV5}{)yvGHCDBvX#nEJ28E8_bw-6WW*beWdkd66 z={Vtl)bF_zZ$jLHioCc}j!Ql}?j8rYB68nW3(nxbCI#4%jyvh*OW5Rke~t;!Mu2h~ zw@hgQf;xOuS!2f~RMI}CBEioG=IEneK0rYiDJQC-Q$iM7SE-oDtFZ4gfs~n}{Oj{E z^Rzijr`JqTKwQOHTo<2o;>-SSj2g$e9(E35TL0PtbD$4|`RqFo@9A-?w;Hryb}?bb znkr(VIlO~12251TCEvn>xOcsZp+9()X;m{?ij|9yrRWn9veu-_OW)%^z8_qJKF!Wj z-z*cL;$E>etytllq6BPiEo*}l%A)*2*6JA2IEYzo@J|uf>=$VIE{)Q}wFT}Q{-ll9 zG9^j^cTRWld|bO@7WA*ZnL$Vsu8x3yogNIV%veAacku_vYl{nIAE0}$yrT9be>iDMICz+-xQKMocf zn2TGI7g_zH86BBX1YCLys<2=k6^&PLI}<28e+xUA1~kJHP4&ix37gV-%OR_KyvX%bq*sJ;7*kjUg@|6U2T=BAGTi8f}lJvwJ%<% zMhQmyM#V^4)GwJ0FH!GNl!;BmG(i+vt*aKrLVCPN`O9FI+Lh{DOyt7CLK?`MO0ttK zkrBSkH?@fbj)!MEly18gf|E8BoPD%D^^h^d?Azh6v-p7V0kBB-=rmFRgy+2OARKOv zYVk8-?Yo=wC3+!sUo97hhfYkzOEGx&;7qIC?tYSC!DT6(ed4o8$x8WrG(+-yhVkMW zfW(ns0xTSu9LV={QnyHjv!kOfu3RU8S*J>eY;Qv1EBQI~Pb32X4c zZ#+40>QD`g=6XUx$xA@<$nt`F_1gO%dMJ`C2c<~h-tm&{f>Y|gCKEZJyWjxw;^ykX zOF~6Xv-)4Ye6c0uUZ3b2nZSLSHy^YcMlz{^`;$4*U{65+&5UJpEn2S);Z&OshIzpu z(8e5PMkrn0?pL+VLhhq%aaSm6oNz)kp+(7FK=Y}MMbp2m))_n58q`#> zk5d5Lf`4ZRm-`<0ez(>hS$T@u@$dJI4JlGVmHErJe4Cw@tO(5LnxlK~ zi#jrR6ADJ+7SgV%)#WIpRE`z(y9#4kD4vr@nU`FWm3eBm%LS-to{R9UFF|EKi9`Qb zZZW6nrbKmI{vivk0k_vp)s3G&kF$kXi5hc1b0ZY;bvZ?-*}Q+>$1~;2>d4x9q|F>B(cDg&&qL0#O6@IzT}z;_L2onjCyFM zOLlnisZ1^dN8_RojNLVu>J2d8eL3D&!L~Y^{25RX-P%pFj^)87SJ4f(QJzdh<93?+(`eDTDz?@g@H{)WJF}NoWc8)kV@cki_ z3a)U!{_Q<2m!@P%0{$#we0+RNgy8}=yA6T7SQRt?ZGQu0Brv?|4NT^k8wut$f;qO% zAYX1b7F{U)sH6dCdq6y@a{`4lmLg&oRVFI15QOcr3q1cXu!%yYNC^R+Z|rU`n{)%t zE!??)wLRq17u28W0h9c!kr6kda8NFafKL zR!!{-%;l+PjnzX6=gizn8j{5`kjKi*ey$966HD?Plzby9&}~uxK{eIgKkRBOq22)) zS_@oqDQswBZH9LuaCFMl6Rc#f!qf4DyvXMiK2!t9xrT1-?iG*pVU+8W$@nhpovJSZ zwZp+=$bX$IGAsO|nWv#XYn8}}wt8oIq)*rb+U=Y{N86+6I%b4LK%i^+Y~S_D@6O*+ z{qvz@J(xq5P0~tHpmTq5Hvxu%b)A$qzpRmWD;pAL)D?kypQo#=n?5Vq*%N#cz;i88 z5xjor^Y_{}7M|-CR7@%f;+)8MnA3(e-i}dd{XA;k$^|m0Vca=PD>zix#8V_D`cb{k zUQJ`C$pG=+hIy!EiUJUnK>o5k0k~~4bO@mUf#;JvYGpXsf?M_kjm<~;&Kp;4?w_(c z@AO&r)X}Y$ok9^nlqv<-dM3 zaU&iEDnimbjbi$jj~Qm{-PnL6se$;iuBN)8La2s-xlZNA$up`;e^j?xKI_-AUzTlp>2j(#_f9AQ2NC`Sn? zeTt2^?oSBgo_->So7K=k;f=(pa86}PAk8~0K*g&c0!&58amN=nDl4z-z4xp(kgaC9 zI*{s87(%J?R)Q3`7q7)knri60QsZT4?YIPqz@3ACIBAZLXkm6LL-y0B@q~sJkHVuz zchpIc<;V-;czQC#wsee`FrCN zB3p{;jrnFgwzA8bf#W1o_MY`3=SinKf^4B1P>Ko~;&Od?YW(Bh=K{Z|$jIU#9_3!f z7@39z_<_c^Z&x1yigfceF?QeH)tMlxYiu9uMgEA)CAef9BZZRzcq^*pqys(opxO*u zH%Ita7~=`YHCdRGsH&s0rgQ#$?P0>R^28y#VGEo^BtD!)WLi@JVs8PD;D|5PnRY?5 zKq?zrkWF@>S1TTOkgVL|OJigc3~%h@zGSrSc*}SlJei?>}`?b zdBhHx%z~x1g9#jMU~_IR1!6PtxCTUxWI9NgY7Wl_;p0MZ$w14xuVBuqXClJ1TY%t* zxQy$*nQ(ddt08jZwBVNo+>Xh4dkl`^n+T-7;TfEBCI28+1=jQZZD26J@F+BNbeDjG z9PKfjs!gSMRfiO0aXC&&>3+pBs90A0`m7hbS5w zGlPiNZu=)8|0!bMJ-gS3SaKh_bsl-g^17lR-}P#Gy>hwrVN zLP9w%C7&g{iy&jA(EaRc0_m(6be>y*9Kt6tkXGJl9f$9N-!`HRc04NLI(-)T#WYAA z=)Ak&r)Ma}8w)&#w)d`|61azdn(;p#yt3V3mj)Hd;8DjT)52R`Wane6NQc%9^bc=c z;vt^&M&k+iN>?DZH@JK-80AqMVR6G2azNtk~ zI%0nz0f9x|4-=LkKrrA1DK^O`>tzF+%S}QLjk~Ajj(t6^m$fF-|ZbA`!yJR(K1T3X6&&qoePE76h7=6+bsOSJ-udV{&ThlBT9V;1a17 z6>GiFrK8f-({r}s*2E7Dm|#HZt$Bz+5RUZD`Rz0C$31%VXxk1T={hQ;&&Y44s1D@g zY?x*1bW8YD64>k?^YvLFgEg)MQM)O?|5`%>Z&wK68w>iQ|FfiC`M*l)C`UOxi(3bO zq+V!4^tQlIBk)*GV?mR;HeTRnMO^v)7_K-0>yPEk5F}(jI6}yozS}2+tcdA1axZ@y z)iWSKDez7(q|C49ZnL+-Ye^y?Bt)$k$2Zo5iDJum7jh(dtK1Qz6JTx@)fsl><6bz)NgL084>gS`+*BcJc zrDhtZ@h6_!K8tePKWyMfwoN*oo}hFQ6dauK`9*nF#n{W7Jr8UR7u*MdlMK^`k=t5M z3f8-ndh8#hkbwH;h%i46emO|P*``{(wuPVE_RGo({=KVF+gtUGz_va)jG<}om0}WuRUK{%Hs1oTy^%Y0 zAr`mi5y`0Qx&=GN1!+;e~2eABqYQf zXw}wQMP^E64C1bJDF@80f6NWn(g<09gf^J|D~OTyemn>3^4Y$0hS4>s#~(!A4BLJb zH))LMe*OBjHN@a@z|=-R^MZF5vIYSVlnMuYk@?NkqQu0!a}27N-Y$b{PlzVvvqFg& zdMLfymS@dG0*+>0!pI$leDXDi57&f*%$jNX%)eYoAZLcS=B(Od%9O1KfeDC6redY5HghA|} zsJNtLQAmgKp8f+8fmGcRCxpojZ*)5q&3>k~G5f2LF)@zwZ==}PoyC$uVq#)if#N!B zEBq4Lr`R7Vo2%>S^#6`xSMmJj_+s;5%CVZ#>rP>dy95kmJxpQ9WemIX<{4rQr;u=O z{gK@t>LsG3LvxoaL*Os*a-il7Jjo{8&&nRlLw>CDhZnM5?qRP2;&|%8*&C_I`@Iu# z&(6+14MRWNbc*w%fhvpUB#v|2Bc8~K5WlEAwQ0sM_x8&TG(p!0gFAghi~UJY+>itr zt>}JYI+{;0mQOsO*iLiidPL9E;?jY9-iu1$G)ZE%oaUA>?D^jL<6sx_r0h#r#4hZ> zE@V!#Ab15FFLiUWq$F!lORvu24!v3j{Gd&^S}nvfcQdw3cRLpNb0AXg1aliU?sb8c zNG@pj5L`h!(Od7%&Q29#2C)Yn&};au#K@rq+}k%8!gy0bp-C1Td#Vdu$kc5Ivva|B zO_vF%CclLwM(XspOhp+9Z|~Jj+~VQl;Yq5v-u|eQLx8mC2Be3(DiqBD((FjkaB<5? z{vURb0{ah)lm%NU>qkt#CJO}H9*((r*t_iq=l`&G>@0tfOqjc}*4ra`qw@(f%#N)h zsyRuu><8gT%CFw0%wGH~P!k6-l@pKIw?F^{O;c~4k0%8~ zm;36w#M|B4D}Z_gya}eR9XsgJ@fHR!1;U7VyczQ!&?ff?n(3gyZmy)O(hXWO!}8Xh zhwo7v0Zx5fH_hjIQ#Yw!9YNw=g%G|xgJEufqr%wPyFys z&ttI*B|GR|wOxtuvSEz$m$ssTyVfAs=pMDA3lPRf{t zyDwflxZ4Fx0M5YIo1&HTuQVC)q32p|7*fuc?yL4M7djN2K{YKO+K!QKyZWiT>X~d! zEKko>CwkA-CWEBzuz~Lvz{=)f${sQowrUVY%$cuzUas?`0$iBKx=0>Ok2g^;==S(xYb3ovq}kqiKTcNx^4)(1ijOCgC5JP zo(td7!bjl$z093V$%R9H!(gNBrlsY5yk@)b2IH~coWE2hv4-wjZ9EW`{Ec$Ae*8*Q z+(I?XMf%hD4a2UhA`LzdGNQ^ZVhnOHucJ}mzznDTNFAZG7y}d!5J1#mmcJ0@G!6dH zwEqo?3?T}WNj_A5 z3{Kv&gfvLt09YI%1qKP`zc0lqF7!c)qky*E`D>=o|L>jXmK#N+y4o_%OX8Z_AdClU zJzF0e^@S#$D6he45fkRynDUn!O9NGm?>w0StxTD%9<#ytIalfrc4*tYoZkzKkz0LNt#iQ_<(K^>B$>=_9%e&A+SmN@I})`qxO^dPR3yWA%NH{D9#^m~DK1U{ z3y5G*($KpL6^A`WoN8lZL0(!+<8bjrA|r?c9WqsCZ;lm9coWs<;m4nG_~3l7wvan}?4IP9kyZdfG5;PuN6nTZTGd0?h; zS$|N7X;+J?T#tuKr5+zr-6V4=gSZM zr=YNK@?+or1FOG`{*#er@MO$|0X%|_Fy)ZAp!^WLODjP$dz`9`UCY-i>`fT%I`TYrOoAq>O_W@lZ#A z7G&Hu)C!KAI%5w?*) zCeR*^i9C|}TG&bpBrpBobIMz?PR#&>=gg>oVmiX-;ACPh=R#o-V9dRAup->sM8e`rAgDFPAL7k=2T{kGv zs=*61x>=>?@bM;b;=LEU_q!H9xvo+mcfuxHBjp_KqGQd{72HR6e4A7Q&c9xf*qmTE zdnm3sN#QG5)w+v&gh^i0?`iQS$4#?bSq`#l?PfB#noV#QdE5N5Qcj;u7$OvWa|^fw zZD-D$(Tg;sq_|0oBOO_4m!W}oL<)uT=N~?Jc+;j=F_^c}Ac{8`FEw9Gb@a56?|1$m zXI{zc^jRFj!NVRg3{g51uF7({Oe>@Q5Ut>JDg@w8!MBZ`{q_Vr%?$?m8Q-*)h|cbL zue`3r(V=X^6?+ebOTgs4`;Ra2-rVDAYHEDfzW0}i{PZ+|#&tJn|E>axfa2*_P*(IX5Y)1%{j)^&+QZP52p(^g?OO<#0Ozry5 zzd?5sSBQd=vISDNpJt<2?RINF?u;vXdX{caludsw8h?)*b0ux$#HsIPv8GOyCv(oF zHt5%&d^-mK)=~f+-!Embwy>#nE&(*f$5y(0V{$tB<@c6h-X{lYc zvdS&AP`_QqQM&4CVUd-n&t-9U!2Y2>d~`a-`?MhDx^yH9jxHy}O`g98pvR+e3YuC5 zO0Zw!VVqqW{44|*pNDeC3k&O{uSP^ig6afE4*fZqtuyiwq=4|uJ*}|NUX^FIWO6!V z%?yBdZ7X@%F4$kGkFaZYQS?{5RasnWp9p}yxEz2;r>vnT%*Co#Q75|!p5O$~WG}88 z|9LgJ+s~po7nK^I%h`H>`%LZBw}z^H_YE+sG~O5S{R;BLsMBnEvk4Tb)TMs8sno zwiJ8*N(wzuFZE(PiwDO1`>xSSd-=1 z3z%w!yN74bgd{tZN(NmRRw*JR+ zb|WWSADmX`xG&t$DKpUarR4FW@3*>N(IlX)q$4TLm8u<{xH>@l;k6__7{al=hQOr8 zw18ebgQ3#tZP)Jb5@|vY1oy|Z2IiQTrsrL(s9y?>=zL2k|14&~1{In;w?g5vjRJnWfV<{`qs+=Q_q~rL#*bk_;Utb*&KPU&9P1cd=w2q*5tX86K5cscsmk-u;N;F8B!18`6=T z+81&IZ-4IaRwO@;BTbrwzt_Y9C<3V1dZ%%SPVv~21})fY9HRM(hi<>mY#!uW{j!8_ z*s3Czzf(gjHK4?}$k5WPSsydXYUOkyo?*#}$j>q}I5%KuDZizRF>)b3y-n2TJqO0= zY>}m9X^Ycq4XtwNj;q*%EE}>NWvqP?iNpN5j~2_)(*0QvWAF1$a6f+8^2=gkeDj!~ z`j=R2)x<|$-FK737?rcsE^+C}!nA=eDrdCD3(9UZNiTi;{pq<46-R%Ok(>z!pN87K zpUn)mW|CGxPq1zFHzb?tX7Lp6 zTv=C;t#|d)!;OM}1q4{lfB_^|o=JB5A3*X+d|EX370R z{2`}#v9dEUnIoQB-#&IYe^hfTs4uZx6F0UzIJ-Yp{@`idtQ+}o3J|8*L+DzaUw;GwAe6i4Wmv^?`_}-#9wwY0o zbLj%E!80I%osg6?U{Ab-g<%LOAfS}(H2XPT+^rOP*>rM*;tH)rVQO4wCWv(4dsc4> z3XRJ>G;aIe&}wcO`m?Zm#><(bqsL{?h_~T8ze&@LKCG=^6Z@~BqKEx$_BUs8@1X_H z*UfyGKV5&ndy<4icACFJxkDJEBC1%1)$bqbLSC4%+6KPiu~PsdAdT94{n z=L!@I>m$=mWq#>V*5+U$sct8!LmSRKpfEK0@Ht4|7Q{`tOvgmg85;||e|^*!O<2Hs z`I{d|7P&yR^)o=eESJx*9sK^eQWx0kRcmW&S*>NNeC>z(Z}CcTjC>B_C;j_w3Txn@ zmyhRDy9nM)RqN0jPnbw`;F2L2RR7{JPGmo5ufNowb6&DP3C&#sNBQ0(2-G<%4NGI! z+m|Q``cCyI9OJaOlfKDp5u%>u(KH~P>b!&|tgI1hFDRPIw-Fl9`Q_N#_WjKxZeBBf zfoaljUaAkGQ^ak?$D5D%&mHDOfkTZK>4d zp8`qix{zhBt^lhBit&_(a3(in3rGUq6^ql&UR_&q+}& z1=Io$n36^gwZ)s8mzn~NcO!@=&!6{Y_Su_M!-KOl$m|-h8*{+xSb>kOzG^+#Srpn{ zJ>9I6|GTbVz0Qn19U{gjNp(mTju)KmKBaLZhz$fYi$^{~f?!!~luPGz~jQtMNF1?5D z9&*pYcAfld8-Po8Uv>JF(Vk{CxWXK6@~%Pv88QDEs8PKR#>cOS$vJZvjaimPRHDkp zK1!zsR5}#IDGj#;a;KUO2YP6vdF)@|Vqey_ZuzAD;{~Ct4z0RQ_MpVc)HoW!3%|nC zz0$omY51kRoX(ob`k{x7FXxdIa+B{QU+A@%OvcF`C8BRp=nNG>O?w`$*#-Jpy-koQ#xd8Hs zmKS;CtOD# zPw<_Ybj<@ii;h?AR1x)1slls@?41M~Jio?yOUZ(?7_Hv&>5ep+p{`_19_QlX($j~Y zs@1wc!Bo})W{v#QQ1@<0JgZ4<;68upFpGM(l??=v0zd#T2b|vWtBM#rJ4UZYPGYBj z8aBoEaiQ1!UUt#C`dP+Awj3;s+qYhOY;?ziQK@Nro33y6UNatZXMcH+1hst-X58h3 zvLC~=BU9y9Xee)n1X2dc&^El5JP^q*`%$bd@|x<28M&LIb|!A~?qU3{)+g$FL-f6a z>!WCluXcJaaBjIQ&Bi;C0Osi-BjIm1)n^o2zRdyX=hiHg-eSlDSe)|sRpV7z_I*1O zxaT6o5EU<=yJARIy;>FbuYa}7QLW=?7yMdk`$}K5?=wNElP|XSc3>PZDWWkGj0?%9{poL*Il*R411#iOljP#b80H@WQIqI;|qz?&LOAD5DjcTjQ zmV+9l)E`T!Hm6$2Oa!CS`}@Z01jR_Wm%DVltk`_6mT^BfX+S>?y?V*hdOftb_%YlH zxAv+&?XZc#M9=gu?IosHVeI-Xqrs|DRw*O7V#C_mVd89(P&k)G?kJ=2VC7_&hWFATPlrYP3m5ss;Mwszo933+zw)=^az z{L*E|dlGvqmfZK3Vuzx+1^2pR)jjDYzMp31MYqe!3Nol~3X<1JGoNj47u3yj_-(x& ztHsDAQ>gm7>b4bax4(2`_nPkL%a9UNgXzuLzAC0As~ZWX#=I8HUe@bOGDNaDXEo|) zKDB?~{;0pvK2AwZNx5+iSbuVlDeXFsS{2zS&E#|mH3wb z6WhP^G+$eM_(1ZQm%EwzqPE~b_eZOv5=5R>dh5~YoLEcVBWEq^V>VuRR9VfYTsOW5 z@w6YhJ7%%AI8Xm-ON+nKRlCIlJbeL*ROU-dLV|iaI8qe-b}xjf%g0AgPCU4g0UB0Gk-`| z>d&U}n>CkP1MdWLB|$MiQnAljw9@bu?k6Z4gs-|+86TGk_Gcp>H)}F~p1a=Oy=Xr2 zx!sHocRr*50O$5#-u`a24iHuE%ut{n8|%a4pGb82Y+<+hs__|&?r1XWOT5*AnS7sm z7pOBikP6=f*d1!+>fe@u#SzcPXNUEjF?V11)%yHpwjT_ zhjrMkumWGS^^Cl0Yu22z*fL;U+^Ux@MVgan=rS%1KM-*+`w7!)#C)WN{9DhAlv>BE z4QP0)rdxSr(f_@B$WKg)DdufSQ!zYOU8^d&6u!!{^~z^jih1Zix6gR?{A;|X)AxSU zbun86(8xNHe>9jx^xVd!MOM-J{_+*5@7(yNIxzEYgY=*{bdgc%#lJ@)t+%+;>qZ{e zu3bBIhH%s4$r4~s`)f&wF0@K+x`U?LO0oy;G^e3A#)*<3Ib@KGGq;!3n%$i5`_^3WZ*lRHKjO9vNFg zRt0laV4#SCE7V%<-qwu}cU`#t$v)U>YOyUXL$%IRS5GhJ#Y}}l+J(@dV?kOg^T7tc zq(SqTK%*RLG(#a#aCF%zDNLDHL>siEBOjD8GqXR`S5-arc69#ZEhsn%gfmK3C5YQX zc}l6A9~7t#OGH2)s~b=(9#9kDF)XZa5V2M!*k({PUjVeq^5w||!hf99^~bpQ`1l7T zVE9Mtgw{OzgKz0b{af~A_xH2Q>?K|oGxP2)kxDUT<5@@F3je^Y8-7FCSs43`hW2Ps zFP~OMMn=VK)p}=dFU>CppyA1J`IveHPz4=2c1E5mNAFgroh|j4k4@*fwzVDHrG!B);0=7Y3ECM`jxmK5_`=biW%h7v^27^vJlVp zJf5oUJAae#Bhc!u7#J``gJYzL{_r_mH2gL_*TI? z89ICOaw(Kg8on4q+qLS!S;Ac1!KBdXN`-Uh&M_S!=#?PZI>M)T$5<9^PZWW9v`Wx~ z0i&WaFrkj7mM^!5;M95(4?!ZEVEzPK_Po(*DME6+d{v-OoK3p{#} z%yLg*KJTjvm@mC(Q3>kY6-l0J7Ka(cg#R97wlYV|<;g`?$w3egD~~qz|2RPBWj z*KkOImBjl}mwgsq?$?j}YaLsDfE%}&0z3w>>#8l_w@_f8fNn+4U8jV$j8eE;0f zqtx=ZD%V4t#C(X;9V*xHD&$DsoUiJp&qpM(~48UA2eBu)E_U9|o}D}{*dkT)`K zi`$?|j3x*v*17@({Pt@?IqS&#iX0<9SMTskbGeIb{`z^lf!^sGR3J&Lt7g8+kJB_M zk_tKbI_&lPyNF*H83-ND_JFd#rCV}^xHRu4bWeKOk2Z<*97~s2OEF9F4X|etI6%(6 zUdc6I6fP&Zyg7%FTR^XbY$<8Ov?>i*1y-hB>m=MO#On$-)y6axj@HxK-0zv{0yV`j zDFrr)f*{Y$^}(qaU2DP_x2xbgU}*f}H`0EdjK%e+*3&VnbsOemvY0Xj9a@dLq;> zyjC-*Pb~Da3j=Cx9(D_n>U+}k?S!4F3Evg;Q>`aDGR9-0`%dCJ$>qd?cqV33`=sWx zPJtf1pOe6B^h>Y4ts{f-Idd?bpW?Yv$KA+l^51mGj~ajYcE2NY%SD%0-yXcbV2T;E z3+k1=o_Z=hBX;8+*7L-K?o7hULi6?1Mq{j?@8U2Kmg?e~5^icE0Vaz4n{E#J>O%>A z=C^__WuwFx{89szoY%h?{=@$43D9g+ z1U-l@5X={_|I)}5!oB$e3aDD1)sp3O&CKCqkHFs?=qWVFH}pY(8S76K_|>T&AFD9t z8dU4|=)2|eyqM+_2U~fSVGNpyiy6EgoIKaF*IUodx;Fzn%&2)z`2xyE4>|0Pr%GsJ z%V*d8*AljmO5KQeaZ|IS4@)dxq1IuFt>WgSFv^KMqk&aQ`^cH4)uD)yFyDXSUb>jM zqnsqhgGGF#IprI-#WQkSh#fsSvhw(wYBM#&Su7G*h^{|P>+JgfI{Wf?DA)J@lFCxq zChC->F~ivFD6)&D3|T^C%f4kRS&D2W357>EwxmXqCHua#sL0w>vSc~gk}V8E^1Y@` z9i=&+*YDR~^YWVRxu5&Fw)?u?@9QFvZa0NpWlLgylHKtrX$)zKB!|6h)+(1^v#ua^ zA&x<+@8@hjp5gC(|KanZ4ojeEl$9w{=?gg#+ZBnlZz(m!YYayyK)pnuk@IrgaT&0H zz#WRrK|!0g-vT729b`ScMsuH$r<0eB?^jHPP&`O4A`GAmEr1y~4IbLPtrU9hyFJ}* zYX^-+7aDBkZ%_D4c*8kH_|E1h+XJ8f;exPPDbO8eVAQ1@lvcbJoffk*7A>LA(#9BJ z1B(nVVOLX1nuurP`aC{VBx-J3!o}`~qG?|}$Amx}@31<*)u$|?s;$I9+>uXFn1m@S z@%@f#8|aazgaxnbT9}HN01dOr3G-cQ{Zj@-2U{}``3Q0WaVv5!vFvedGsFE68>2%S zBy!GE$N5YFBvXV@{Y0$Wq2uKqoU>b*64WgYJU7KGg%T4I%Y6H<=O;5opy)C>7aY}W z8iT`Q@>i?IMnHXrgnY@du4ljBS#=o#aWQZ@X-_ny22e0Ks7@&ocpvo=V}*T%Z%(|_ zubSEl5Z{fGqlIzkW?9Rgo-kk8FQ59n$S)3G6jv5T%|GI(x(VKWxTNnI%r}l=U|=W! zk2f>g{?e)V^?g$XQ<&MCh1MP_W9CQuD~d8$>EKx5m_mD7hrUL0lXBSPC~^)aVe@1U z(&QO(`7&BU?UpgAx|9x|DQ{#kq6{aPnIEfC5Qkp+Ww`=fW8JrKK;66HH&a9z}la1Au7W)xbAd zMjV@D&hqh!A?#pMOl7)4dd$Z)ZXKdKC?c*Gb zq%)F8T(_3CqgYYm5<0{)tnrCa)Hv8h%$GE)=={?qjkyKbj8RA^DVbkrMCD#>sNQ8? zKvYYN=r<-bOYf@jK}M@TDxCT7iHVT92OL!<+oE(}V{guyM>eU)aim?UCK5U|kJvjg z@@|+vLfQ}`3Co(8wV@tud4>|xHM83Dx6dFVPpo|k4E9n2ihuJ3lus?!XkoZvtiGP! z33=%9t*;+_1ZQDhd*5%#A?vt#sO{%zm_v~c^Fji8S&hKyZwlfoN>jn1a+j1HU07w5 z#3}fkR7k6qe8?X=Kw(l)5-HiIj`>GHz#Y3jPY`tl9vT11EgYiwNd>IFjJJIoqPzUp zvvyaUYaXUE;c;tRfzSRghY=s_Lz;Dr;v1v_p884eQp+M5VcJQ$9-E?Hk){mTLyps( z$s*q0zw8|FSd}31+Im^&p@dyAHp|gRGhx_bF|uGU8!`3Nvjx_80SoVtHhDh1*hUv0 zbyBzyPl1pAAmM{(dV8r&c}$E1F?@N87R@TloJTNg$T5G+WmxIuE-9I$3cgJa-z2{{ z+WV)Gg!q#S+l+$hXE}0H^L(chdhDPL{6fc@syoo<*be03;r3mSCR-SD@yk#XEj_5I zuvFknzRkVfHnBu5h>5$(voU^Ok>APw?t9J|y|T2-wVVN&40z0weNP9sOe=WDf0YQ1 zWY&eSpI;E=eOX2Ni%jGJ^MGw}Zh|{sKShfO9^&w*fW>;hj~BTC12_6|AaB(6?|R$z zo@B2N0!x4o+S2qXXVy_Kcxe$DzTW{cgs!dY{gz+f_dN!)7S(dHA;dcg=zp)_)L6HV zy$3{2R2=6pHVZvpBQN37oeBBkd^bHu!6wCZ4wAdrEQM24vgNSk zUt>Ht(Aqx(AUZ4sXmZq0V?u1QwFzSrs`SIX403Vxl1NH6@UjZi0df$~Ghu7+F_2au zP_c>L$^?frS~})=N`75B&-3ckDmjH?NE;d&s;&gOiEP4JME&reDZwI7UIVOX@Xnn( z%~JKZY+t6n;D8e6j(|)?JjNO}+aOZ=YMUAkX)w7hys}RHj}j!M-uPg)Qx)0|9-|rn7DKa&5QNX zAr>2w8@3k@v%?Ga3c3moj5g95U{CA<~eL9E}~h2^TzUK-ZPZ22qhY?orMJM^*s_-I@NIq?Tvb^ zerv)Ac0HzYBvaYm@2NCeIaHO9fE78-P$igtgfyNL@-~r8x=S5rF$6`a*(^Fn*DZmC zTgQfSvqO7$f3f`j5BBg-M!uQ?DkQMb;f+UqbUh~oLfta}qk$%0RlNEOM-(8;8K5a; z4hh~PF}bLLLrP2vkX*=Hby`^2nX5T>;f8l08txJf;fWVN4DOUnsm($hZ9<*M-2^D= z%N=qKnVP=nEEY2T{po+GPH!8_`xUhX!4V(|L5H9!_;rO!0JXYs%XkJ0;nxJP)4HNj zxxV60`DQ<}hF}I;4F!r*f}LWzNjK28YKF{3+ZPv+Luyk}JCc+6>t@NHsxS#6tS7>| zG&^@z7M{8F+U4)VcNMy@OWGv*CWUYnLt%lAW}W*gS6A7X7E#*K)Gq(E>$1;|mkyO# z_h}mzS+%Cdo+$H#V6mS5V8;{QXLz27OvR=^bc$Kv9*HU=4IFDShwZAf1*2UfU{+t@ zI`jC&nl(F7go6ikLDJLC11zoEvEzJ~#4&Cek4zV6Gk;7tZtIZxfE#VceMOB+XpbG+ zEc?7c`rl2zb6llFaFMQ|b&eow9Xl2clcN4QzF9!{n2AZ&)Rb$+ix?rl{g;mEY^9;= zFH&r}gx(@)nOQ${O{)frO5648+lL)uM0S@zFZeq|V*ji8=^@Xto@zhR)~7}fVfNC# zA34ULNkpQ?XyXtlMLB!zYpoh*2FuLQ!%six&4JRnSLe#za2r@z9P8|h`kSRGa zH(qqrzLN`vTfAt96HkCC6MgiwGz!=E<~tb?J-{#=4KUt}p?)%DYV*9)o-;Mj)Ag6E*;6g@=8Zh-D;=(wZgSvK@I7CA^!A~2kYoBc zHsI-aZa`xF>lMJ@3+D?y+ZpKRMP*$Q$nE-O3>sC zjW8Am5fX0cR*F1D_w=}Jkm4iFjq9UWaS`Ndq$$Qtkra)HMvRSPO{o}Yll}Sd3?*RFH5-}9(Blf&`2U4cQ@EdKq!iZ86objqmo@mSM zGk~c~ANuAN%O&>hC)FlIQKZU9)WI&bv^#+y=ofy683DLV9WdZ5t96;dYzoq9T2av~+#!bHcv`Wf`MV)cl6nm}~v`8i{95>*TI_3Jy?;EQ9QCD=j=rgt<9{LTP= z{ay(>59+jfbOJwXNdKVE?Ki7U&p&(ohVQZ0dkulov0`Og!a@}BDl*!g$TQ4EsMmSh z=tB5|zfNda9~n$5@x8aQX0%czU5^5ak7L4crw3EbCCU;mVqcftP0(58MZc+dz^teuj?^@<8vv7Cy|r33UUPSd zEXXXuOILd%!Gz-aSP7PxtI=*D#3UpH+jyP4!?v|`4i7z)ZJ{tbX5c+$ohn3wEcBrC&uRhX+6TX zU(FKl;1bW4cwR@FgK%GFW~ax?15K;qp?}V%BNqffrmED#J`mmReo+K<&Vb}aSWB3Y z&X*r;UQAl^*e1B`DF3h!5~Ly+r7JqzV;qR?iFCV1EKl@05$%>PUXLl?`+hSuNk2i6 zbg#6^eV|8C#T{m9^|qH7-i|h)<^zZTb@Q+}Ys@!{CPXF1p=XCA4ebX^v2vrdIJjCX zMK%-im}DSaULl76y354F4x2%CXyu(u3lhf6raMnN0B3lrfOxf!YC;Nk`Tf! z<$djQUArV^O0ZgN*n+^B6o(Va3k~T0?V_;!b{44l(0MQXfdvKHCqh+zt%~8`JbIFe z-iL9>-d(?xh*s>mfDMko!{w;svjD2QF$VNe+K{%zR@i`hfYy(?w0hr`dv$Z z-D`wbfF%|s@c&ygP?PgsIEndRkEiIp1^*Pq&VEhi?8jbwrPmCDG4QH5fiSO0=^+J8 z_+Mq{i@6Vz@IV`Yz_k_N#D$QKf)thmfZFasd5kjIjJvz^Oj;V$L&N|pEgVVK_2_B3 zO*u0M&#*64?NULsqBkR6Lku9qFfh^X&POt7B{Q&JK9{ECj>vhOhAzh%w zdP4f}9MmBXRQFVCk;>`yKMN} z3%JLuALyG27?#`F-f{p6mnDqkwJS~g%EbXk?FtDbMPN1bKZiQ8d*g=K|GT8h*PZa}Sf3|_O2-KaWt{yoKa}rlIdfdn z16s>0>SY^C=^#r{trxX0S#S3SQMFP}C|Qog!O62l6*H|yH^4sF?ny4sc7kc-|E6e4 zg`(s00rlReB0}|@l!`?}rv$^4EH@Z_*k{uiA04|`vs`ka)1|ud98Bp_gJRmua0Q=I zq}$1t>{MTj1f!KD&h;n0fJEn$*Tuk@xeKz^2t5cOdUQ6v6ty4FM)a~F)XkF+CD{e} z_raLhSj`*I5W=?{iP^gXmRsazvLi*MjA*}+>MQD8pC^hMewF_63-p*uY~z|`y;3n> zR9p+R$K~#}wl=H@6L^gOwS)+2ySQUp&SjW((IwLPH|tmrWXU)tv)!xw}mfXGj9_Dj8P8KN- z@rtHH(VPMk7E`?ns>S?OJSJ9iJHeRdd-xA@CoiEQ*>ROXeI4%y2f%S%2xJO~a-^U5? zMb|32+oIH=+gWsS^8F|cX#!+$TA-E#c~KXj8ymrBR)(c2NET0>l}(-}-h7A6|}~Me2H&Ie~wKtQQ5s zyWV%q%-MB4pPov(b-BN>2dBF5@i9{$10Hlc-2p&3uc5ES<|`R5=@XCOkTrkc|9#oN zeCkN0)YcCXBnB*srkh#*rf6w(QPFHaX#2DEoZCZS%(OoAQbTS4$Jk7cJui$)&JYse z^(-?%HWv;CaRD6s;dUN&3g#|QFn_z?WDuIY3|P3nz0>m=S4J$@D7v_IZ^+M9dd1Nc zs0FwMp^H_^o*gYXWd(>7Z7r=+y%(9}-#gYHdvfMr5V~lS9uNkgS|krcpEoQULoCCh zW@fPTLMf6myZ1tLsA$>UMv&mC5r7-Xzn@#|Jim-miadLRuL=K?Szht*cFi=yoA3>} z2eg?szOuR2CbMWp>Df2Cu;i<0=fYh4{`XLkd!m1$CKs2yV0`qkqeoecl*y^~%QxKM#1=hgKaKdk!@*ZuMb_jRP$s9l>^^u!A_|k|c_k37 z2Vjx)eIXLf!W|U>pPYZ6X#2K>Qw?-P>pQg&iS6~Cb@YM9dbkG0Vv9;K?ALqGGBTIK zz($Y%OTe{3cET7(%>q2wBghQcaXzv0WsWh#-k_264xRo70qdlpA70`4`6)A;D{yK@ zD3~sK{+*>hhcjDvTPLFE@ohT&+m>igtu8cvzb8Bk^B>z~;ceHz&|@a&HUshA5~Nn5 zDD@l;6{rG(#bOlov97mnKizj#^7+WjNg%5oezil0Y&SN?elih+_TfU2OOJEHosE*N zJvrtV<)`DCYeuWb478z5TR`)W40f=NaO1(00f9z)CpBBY28e*pQDiea8x^bhANmSb zf?hYt=x3#~AGrZn=fd4H)Dj+08cFk~_(Gtmzfr#-E7gRQdM-deBDbL=Px-;=`D~Yw z?*F+&^@HzlNh#Oq@J}Ok3#>rNSIDudL+lauLU&twe23v*3#)3{Khz=E^yUwX{nT`C zu`19&oApgim#qozPF=t>EMmXoOU>!5rDbJ)Pw{*dzJFV>OAoE;(4okGAjf_#j*g?q zH7>UQ_BzbLIyZB2PMx#19vFab0b%)8FN-fGk*46b{Z~|fOv-Ratk%B zSwl0)mI`Ztp)vE7od1Endmfm26N(q7Ur~!D%F6BCqncGL$b=D><`Bb56W0t7wFz4 zj%`=4m!rdzo~v6@-vEYB>-h0chd>x^LSI`xy#wsm@BLfm+AqY`wF^}jDD6aj2h7zE z%n0uPFwH)viW^&WmAMOwh!mbcsdYqL8HYrSQj!F9g-|*2Q+)}er@TRRCEp3*YEtC5 zpbm*<)f*oFv5X>*nAk)WbR46Hc|Bt>ij!fe?LXCrcsWl&a-xnX??l~1MEEOG?o=?2 zvefnUy<-N|lMBHtyt4pR`Z5d%5+9iWHFbN)%wKoa-cDV|FF3<`Bl1Gl>K6G_;``rQN)M(V5ZyRpY zl-Mq7+q6@YhxtAA*hcs_bs|9BrG-gl-Wt5KWmR#K&J_qNU*q zf5ukZ+`L=@RUuR0g%opx;%rWCp0gzsA|G6*LXtF={lcrd_cY{J{;>xB5%3xZvz5#) F{2yVs)rSB8 From 7e11033293c5b6c0850324dcc8fba44278cf2eb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jarom=C3=ADr=20Smr=C4=8Dek?= <4plague@gmail.com> Date: Wed, 15 Nov 2023 16:44:42 +0100 Subject: [PATCH 5/5] Fixed bad flow offload for rte_flow removal --- src/rte_flow/dp_rte_flow_traffic_forward.c | 29 +++++++++++++--------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/rte_flow/dp_rte_flow_traffic_forward.c b/src/rte_flow/dp_rte_flow_traffic_forward.c index 84819a5f2..4f1664d41 100644 --- a/src/rte_flow/dp_rte_flow_traffic_forward.c +++ b/src/rte_flow/dp_rte_flow_traffic_forward.c @@ -675,33 +675,38 @@ int dp_offload_handler(struct rte_mbuf *m, struct dp_flow *df) const struct dp_port *outgoing_port = dp_get_dst_port(df); int ret; - if (incoming_port->is_pf == outgoing_port->is_pf) { - if (unlikely(incoming_port->is_pf)) { - DPS_LOG_ERR("Cannot offload PF-PF flows", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port)); - return DP_ERROR; - } + if (!incoming_port->is_pf && !outgoing_port->is_pf) { // VF -> VF ret = dp_offload_handle_local_traffic(df, incoming_port, outgoing_port); if (DP_FAILED(ret)) DPS_LOG_ERR("Failed to install local flow rule", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port), DP_LOG_RET(ret)); - } else if (incoming_port->is_pf) { - // PF -> VF - ret = dp_offload_handle_tunnel_decap_traffic(df, incoming_port, outgoing_port, dp_get_pkt_mark(m)->flags.is_recirc); - if (DP_FAILED(ret)) - DPS_LOG_ERR("Failed to install decap flow rule", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port), DP_LOG_RET(ret)); - } else { - // VF -> PF + } else if (outgoing_port->is_pf) { if (df->conntrack->nf_info.nat_type == DP_FLOW_NAT_TYPE_NETWORK_NEIGH || df->conntrack->nf_info.nat_type == DP_FLOW_LB_TYPE_FORWARD ) { + if (unlikely(!incoming_port->is_pf)) { + DPS_LOG_ERR("Invalid in-network flow", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port)); + return DP_ERROR; + } + // PF -> PF ret = dp_offload_handle_in_network_traffic(df, incoming_port); if (DP_FAILED(ret)) DPS_LOG_ERR("Failed to install in-network flow rule", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port), DP_LOG_RET(ret)); } else { + if (unlikely(incoming_port->is_pf)) { + DPS_LOG_ERR("Invalid encap flow", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port)); + return DP_ERROR; + } + // VF -> PF ret = dp_offload_handle_tunnel_encap_traffic(df, incoming_port, outgoing_port); if (DP_FAILED(ret)) DPS_LOG_ERR("Failed to install encap flow rule", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port), DP_LOG_RET(ret)); } + } else { + // PF -> VF + ret = dp_offload_handle_tunnel_decap_traffic(df, incoming_port, outgoing_port, dp_get_pkt_mark(m)->flags.is_recirc); + if (DP_FAILED(ret)) + DPS_LOG_ERR("Failed to install decap flow rule", DP_LOG_PORT(incoming_port), DP_LOG_PORT(outgoing_port), DP_LOG_RET(ret)); } return ret;