summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cynapses.org>2010-09-06 14:28:38 +0200
committerAndreas Schneider <asn@cynapses.org>2010-09-06 14:28:38 +0200
commitf7842e3a4b9acea2126ff725f993c299aef0e6db (patch)
tree18239f819a5edbcfc7f2961c48f3f9297314ef22 /src
parent38421403d2dc45636e597f2a909daa6ae31976de (diff)
downloadlibssh-f7842e3a4b9acea2126ff725f993c299aef0e6db.tar.gz
libssh-f7842e3a4b9acea2126ff725f993c299aef0e6db.tar.xz
libssh-f7842e3a4b9acea2126ff725f993c299aef0e6db.zip
misc: Rename libssh/ to src/
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt204
-rw-r--r--src/agent.c502
-rw-r--r--src/auth.c1682
-rw-r--r--src/auth1.c206
-rw-r--r--src/base64.c287
-rw-r--r--src/buffer.c578
-rw-r--r--src/callbacks.c43
-rw-r--r--src/channels.c2495
-rw-r--r--src/channels1.c298
-rw-r--r--src/client.c814
-rw-r--r--src/config.c347
-rw-r--r--src/connect.c600
-rw-r--r--src/crc32.c92
-rw-r--r--src/crypt.c216
-rw-r--r--src/dh.c1049
-rw-r--r--src/error.c123
-rw-r--r--src/gcrypt_missing.c99
-rw-r--r--src/gzip.c222
-rw-r--r--src/init.c94
-rw-r--r--src/kex.c835
-rw-r--r--src/keyfiles.c1902
-rw-r--r--src/keys.c1497
-rw-r--r--src/legacy.c237
-rw-r--r--src/libcrypto.c443
-rw-r--r--src/libgcrypt.c423
-rw-r--r--src/log.c82
-rw-r--r--src/match.c185
-rw-r--r--src/messages.c848
-rw-r--r--src/misc.c685
-rw-r--r--src/options.c1138
-rw-r--r--src/packet.c529
-rw-r--r--src/packet1.c362
-rw-r--r--src/pcap.c434
-rw-r--r--src/pki.c113
-rw-r--r--src/poll.c692
-rw-r--r--src/scp.c752
-rw-r--r--src/server.c1174
-rw-r--r--src/session.c520
-rw-r--r--src/sftp.c3207
-rw-r--r--src/sftpserver.c490
-rw-r--r--src/socket.c719
-rw-r--r--src/string.c212
-rw-r--r--src/threads.c159
-rw-r--r--src/wrapper.c325
44 files changed, 27914 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..b158ae6
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,204 @@
+project(libssh-library C)
+
+set(LIBSSH_PUBLIC_INCLUDE_DIRS
+ ${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}
+ CACHE INTERNAL "libssh public include directories"
+)
+
+set(LIBSSH_PRIVATE_INCLUDE_DIRS
+ ${CMAKE_BINARY_DIR}
+ ${ZLIB_INCLUDE_DIRS}
+)
+
+set(LIBSSH_SHARED_LIBRARY
+ ssh_shared
+ CACHE INTERNAL "libssh shared library"
+)
+
+if (WITH_STATIC_LIB)
+ set(LIBSSH_STATIC_LIBRARY
+ ssh_static
+ CACHE INTERNAL "libssh static library"
+ )
+endif (WITH_STATIC_LIB)
+
+set(LIBSSH_LINK_LIBRARIES
+ ${LIBSSH_REQUIRED_LIBRARIES}
+ ${ZLIB_LIBRARIES}
+)
+
+if (WIN32)
+ set(LIBSSH_LINK_LIBRARIES
+ ${LIBSSH_LINK_LIBRARIES}
+ ws2_32
+ )
+endif (WIN32)
+
+if (HAVE_LIBSOCKET)
+ set(LIBSSH_LINK_LIBRARIES
+ ${LIBSSH_LINK_LIBRARIES}
+ socket
+ )
+endif (HAVE_LIBSOCKET)
+
+if (OPENSSL_LIBRARIES)
+ set(LIBSSH_PRIVATE_INCLUDE_DIRS
+ ${LIBSSH_PRIVATE_INCLUDE_DIRS}
+ ${OPENSSL_INCLUDE_DIRS}
+ )
+
+ set(LIBSSH_LINK_LIBRARIES
+ ${LIBSSH_LINK_LIBRARIES}
+ ${OPENSSL_LIBRARIES}
+ )
+endif (OPENSSL_LIBRARIES)
+
+if (GCRYPT_LIBRARY)
+ set(LIBSSH_PRIVATE_INCLUDE_DIRS
+ ${LIBSSH_PRIVATE_INCLUDE_DIRS}
+ ${GCRYPT_INCLUDE_DIRS}
+ )
+
+ set(LIBSSH_LINK_LIBRARIES
+ ${LIBSSH_LINK_LIBRARIES}
+ ${GCRYPT_LIBRARY}
+ )
+endif (GCRYPT_LIBRARY)
+
+set(LIBSSH_LINK_LIBRARIES
+ ${LIBSSH_LINK_LIBRARIES}
+ CACHE INTERNAL "libssh link libraries"
+)
+
+set(libssh_SRCS
+ agent.c
+ auth.c
+ base64.c
+ buffer.c
+ callbacks.c
+ channels.c
+ client.c
+ config.c
+ connect.c
+ crc32.c
+ crypt.c
+ dh.c
+ error.c
+ gcrypt_missing.c
+ gzip.c
+ init.c
+ kex.c
+ keyfiles.c
+ keys.c
+ legacy.c
+ libcrypto.c
+ libgcrypt.c
+ log.c
+ match.c
+ messages.c
+ misc.c
+ options.c
+ packet.c
+ pcap.c
+ pki.c
+ poll.c
+ session.c
+ scp.c
+ socket.c
+ string.c
+ threads.c
+ wrapper.c
+)
+
+if (WITH_SFTP)
+ set(libssh_SRCS
+ ${libssh_SRCS}
+ sftp.c
+ )
+
+ if (WITH_SERVER)
+ set(libssh_SRCS
+ ${libssh_SRCS}
+ sftpserver.c
+ )
+ endif (WITH_SERVER)
+endif (WITH_SFTP)
+
+if (WITH_SSH1)
+ set(libssh_SRCS
+ ${libssh_SRCS}
+ auth1.c
+ channels1.c
+ packet1.c
+ )
+endif (WITH_SSH1)
+
+if (WITH_SERVER)
+ set(libssh_SRCS
+ ${libssh_SRCS}
+ server.c
+ )
+endif (WITH_SERVER)
+
+include_directories(
+ ${LIBSSH_PUBLIC_INCLUDE_DIRS}
+ ${LIBSSH_PRIVATE_INCLUDE_DIRS}
+)
+
+add_library(${LIBSSH_SHARED_LIBRARY} SHARED ${libssh_SRCS})
+
+target_link_libraries(${LIBSSH_SHARED_LIBRARY} ${LIBSSH_LINK_LIBRARIES})
+
+set_target_properties(
+ ${LIBSSH_SHARED_LIBRARY}
+ PROPERTIES
+ VERSION
+ ${LIBRARY_VERSION}
+ SOVERSION
+ ${LIBRARY_SOVERSION}
+ OUTPUT_NAME
+ ssh
+ DEFINE_SYMBOL
+ LIBSSH_EXPORTS
+)
+
+if (WITH_VISIBILITY_HIDDEN)
+ set_target_properties(${LIBSSH_SHARED_LIBRARY} PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
+endif (WITH_VISIBILITY_HIDDEN)
+
+
+install(
+ TARGETS
+ ${LIBSSH_SHARED_LIBRARY}
+ RUNTIME DESTINATION ${BIN_INSTALL_DIR}
+ LIBRARY DESTINATION ${LIB_INSTALL_DIR}
+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
+ COMPONENT libraries
+)
+
+if (WITH_STATIC_LIB)
+ add_library(${LIBSSH_STATIC_LIBRARY} STATIC ${libssh_SRCS})
+
+ set_target_properties(
+ ${LIBSSH_STATIC_LIBRARY}
+ PROPERTIES
+ VERSION
+ ${LIBRARY_VERSION}
+ SOVERSION
+ ${LIBRARY_SOVERSION}
+ COMPILE_FLAGS
+ "-DLIBSSH_STATIC"
+ )
+
+ install(
+ TARGETS
+ ${LIBSSH_STATIC_LIBRARY}
+ DESTINATION
+ ${LIB_INSTALL_DIR}
+ COMPONENT
+ libraries
+ )
+endif (WITH_STATIC_LIB)
+
diff --git a/src/agent.c b/src/agent.c
new file mode 100644
index 0000000..16b38b8
--- /dev/null
+++ b/src/agent.c
@@ -0,0 +1,502 @@
+/*
+ * agent.c - ssh agent functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2008-2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/* This file is based on authfd.c from OpenSSH */
+
+/*
+ * How does the ssh-agent work?
+ *
+ * a) client sends a request to get a list of all keys
+ * the agent returns the count and all public keys
+ * b) iterate over them to check if the server likes one
+ * c) the client sends a sign request to the agent
+ * type, pubkey as blob, data to sign, flags
+ * the agent returns the signed data
+ */
+
+#ifndef _WIN32
+
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+#include <stdio.h>
+
+#include <unistd.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/agent.h"
+#include "libssh/priv.h"
+#include "libssh/socket.h"
+#include "libssh/buffer.h"
+#include "libssh/session.h"
+#include "libssh/keys.h"
+#include "libssh/poll.h"
+
+/* macro to check for "agent failure" message */
+#define agent_failed(x) \
+ (((x) == SSH_AGENT_FAILURE) || ((x) == SSH_COM_AGENT2_FAILURE) || \
+ ((x) == SSH2_AGENT_FAILURE))
+
+static uint32_t agent_get_u32(const void *vp) {
+ const uint8_t *p = (const uint8_t *)vp;
+ uint32_t v;
+
+ v = (uint32_t)p[0] << 24;
+ v |= (uint32_t)p[1] << 16;
+ v |= (uint32_t)p[2] << 8;
+ v |= (uint32_t)p[3];
+
+ return v;
+}
+
+static void agent_put_u32(void *vp, uint32_t v) {
+ uint8_t *p = (uint8_t *)vp;
+
+ p[0] = (uint8_t)(v >> 24) & 0xff;
+ p[1] = (uint8_t)(v >> 16) & 0xff;
+ p[2] = (uint8_t)(v >> 8) & 0xff;
+ p[3] = (uint8_t)v & 0xff;
+}
+
+static size_t atomicio(ssh_socket s, void *buf, size_t n, int do_read) {
+ char *b = buf;
+ size_t pos = 0;
+ ssize_t res;
+ ssh_pollfd_t pfd;
+ socket_t fd = ssh_socket_get_fd_in(s);
+
+ pfd.fd = fd;
+ pfd.events = do_read ? POLLIN : POLLOUT;
+
+ while (n > pos) {
+ if (do_read) {
+ res = read(fd, b + pos, n - pos);
+ } else {
+ res = write(fd, b + pos, n - pos);
+ }
+ switch (res) {
+ case -1:
+ if (errno == EINTR) {
+ continue;
+ }
+#ifdef EWOULDBLOCK
+ if (errno == EAGAIN || errno == EWOULDBLOCK) {
+#else
+ if (errno == EAGAIN) {
+#endif
+ (void) ssh_poll(&pfd, 1, -1);
+ continue;
+ }
+ return 0;
+ case 0:
+ errno = EPIPE;
+ return pos;
+ default:
+ pos += (size_t) res;
+ }
+ }
+
+ return pos;
+}
+
+ssh_agent agent_new(struct ssh_session_struct *session) {
+ ssh_agent agent = NULL;
+
+ agent = malloc(sizeof(struct ssh_agent_struct));
+ if (agent == NULL) {
+ return NULL;
+ }
+ ZERO_STRUCTP(agent);
+
+ agent->count = 0;
+ agent->sock = ssh_socket_new(session);
+ if (agent->sock == NULL) {
+ SAFE_FREE(agent);
+ return NULL;
+ }
+
+ return agent;
+}
+
+void agent_close(struct ssh_agent_struct *agent) {
+ if (agent == NULL) {
+ return;
+ }
+
+ if (getenv("SSH_AUTH_SOCK")) {
+ ssh_socket_close(agent->sock);
+ }
+}
+
+void agent_free(ssh_agent agent) {
+ if (agent) {
+ if (agent->ident) {
+ ssh_buffer_free(agent->ident);
+ }
+ if (agent->sock) {
+ agent_close(agent);
+ ssh_socket_free(agent->sock);
+ }
+ SAFE_FREE(agent);
+ }
+}
+
+static int agent_connect(ssh_session session) {
+ const char *auth_sock = NULL;
+
+ if (session == NULL || session->agent == NULL) {
+ return -1;
+ }
+
+ auth_sock = getenv("SSH_AUTH_SOCK");
+
+ if (auth_sock && *auth_sock) {
+ if (ssh_socket_unix(session->agent->sock, auth_sock) < 0) {
+ return -1;
+ }
+ return 0;
+ }
+
+ return -1;
+}
+
+#if 0
+static int agent_decode_reply(struct ssh_session_struct *session, int type) {
+ switch (type) {
+ case SSH_AGENT_FAILURE:
+ case SSH2_AGENT_FAILURE:
+ case SSH_COM_AGENT2_FAILURE:
+ ssh_log(session, SSH_LOG_RARE, "SSH_AGENT_FAILURE");
+ return 0;
+ case SSH_AGENT_SUCCESS:
+ return 1;
+ default:
+ ssh_set_error(session, SSH_FATAL,
+ "Bad response from authentication agent: %d", type);
+ break;
+ }
+
+ return -1;
+}
+#endif
+
+static int agent_talk(struct ssh_session_struct *session,
+ struct ssh_buffer_struct *request, struct ssh_buffer_struct *reply) {
+ uint32_t len = 0;
+ uint8_t payload[1024] = {0};
+
+ len = ssh_buffer_get_len(request);
+ ssh_log(session, SSH_LOG_PACKET, "agent_talk - len of request: %u", len);
+ agent_put_u32(payload, len);
+
+ /* send length and then the request packet */
+ if (atomicio(session->agent->sock, payload, 4, 0) == 4) {
+ if (atomicio(session->agent->sock, buffer_get_rest(request), len, 0)
+ != len) {
+ ssh_log(session, SSH_LOG_PACKET, "atomicio sending request failed: %s",
+ strerror(errno));
+ return -1;
+ }
+ } else {
+ ssh_log(session, SSH_LOG_PACKET,
+ "atomicio sending request length failed: %s",
+ strerror(errno));
+ return -1;
+ }
+
+ /* wait for response, read the length of the response packet */
+ if (atomicio(session->agent->sock, payload, 4, 1) != 4) {
+ ssh_log(session, SSH_LOG_PACKET, "atomicio read response length failed: %s",
+ strerror(errno));
+ return -1;
+ }
+
+ len = agent_get_u32(payload);
+ if (len > 256 * 1024) {
+ ssh_set_error(session, SSH_FATAL,
+ "Authentication response too long: %u", len);
+ return -1;
+ }
+ ssh_log(session, SSH_LOG_PACKET, "agent_talk - response length: %u", len);
+
+ while (len > 0) {
+ size_t n = len;
+ if (n > sizeof(payload)) {
+ n = sizeof(payload);
+ }
+ if (atomicio(session->agent->sock, payload, n, 1) != n) {
+ ssh_log(session, SSH_LOG_RARE,
+ "Error reading response from authentication socket.");
+ return -1;
+ }
+ if (buffer_add_data(reply, payload, n) < 0) {
+ ssh_log(session, SSH_LOG_FUNCTIONS,
+ "Not enough space");
+ return -1;
+ }
+ len -= n;
+ }
+
+ return 0;
+}
+
+int agent_get_ident_count(struct ssh_session_struct *session) {
+ ssh_buffer request = NULL;
+ ssh_buffer reply = NULL;
+ unsigned int type = 0;
+ unsigned int c1 = 0, c2 = 0;
+ uint8_t buf[4] = {0};
+
+ switch (session->version) {
+ case 1:
+ c1 = SSH_AGENTC_REQUEST_RSA_IDENTITIES;
+ c2 = SSH_AGENT_RSA_IDENTITIES_ANSWER;
+ break;
+ case 2:
+ c1 = SSH2_AGENTC_REQUEST_IDENTITIES;
+ c2 = SSH2_AGENT_IDENTITIES_ANSWER;
+ break;
+ default:
+ return 0;
+ }
+
+ /* send message to the agent requesting the list of identities */
+ request = ssh_buffer_new();
+ if (buffer_add_u8(request, c1) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Not enough space");
+ return -1;
+ }
+
+ reply = ssh_buffer_new();
+ if (reply == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Not enough space");
+ return -1;
+ }
+
+ if (agent_talk(session, request, reply) < 0) {
+ ssh_buffer_free(request);
+ return 0;
+ }
+ ssh_buffer_free(request);
+
+ /* get message type and verify the answer */
+ buffer_get_u8(reply, (uint8_t *) &type);
+ ssh_log(session, SSH_LOG_PACKET,
+ "agent_ident_count - answer type: %d, expected answer: %d",
+ type, c2);
+ if (agent_failed(type)) {
+ return 0;
+ } else if (type != c2) {
+ ssh_set_error(session, SSH_FATAL,
+ "Bad authentication reply message type: %d", type);
+ return -1;
+ }
+
+ buffer_get_u32(reply, (uint32_t *) buf);
+ session->agent->count = agent_get_u32(buf);
+ ssh_log(session, SSH_LOG_PACKET, "agent_ident_count - count: %d",
+ session->agent->count);
+ if (session->agent->count > 1024) {
+ ssh_set_error(session, SSH_FATAL,
+ "Too many identities in authentication reply: %d",
+ session->agent->count);
+ ssh_buffer_free(reply);
+ return -1;
+ }
+
+ if (session->agent->ident) {
+ buffer_reinit(session->agent->ident);
+ }
+ session->agent->ident = reply;
+
+ return session->agent->count;
+}
+
+/* caller has to free commment */
+struct ssh_public_key_struct *agent_get_first_ident(struct ssh_session_struct *session,
+ char **comment) {
+ if (agent_get_ident_count(session) > 0) {
+ return agent_get_next_ident(session, comment);
+ }
+
+ return NULL;
+}
+
+/* caller has to free commment */
+struct ssh_public_key_struct *agent_get_next_ident(struct ssh_session_struct *session,
+ char **comment) {
+ struct ssh_public_key_struct *pubkey = NULL;
+ struct ssh_string_struct *blob = NULL;
+ struct ssh_string_struct *tmp = NULL;
+
+ if (session->agent->count == 0) {
+ return NULL;
+ }
+
+ switch(session->version) {
+ case 1:
+ return NULL;
+ case 2:
+ /* get the blob */
+ blob = buffer_get_ssh_string(session->agent->ident);
+ if (blob == NULL) {
+ return NULL;
+ }
+
+ /* get the comment */
+ tmp = buffer_get_ssh_string(session->agent->ident);
+ if (tmp == NULL) {
+ ssh_string_free(blob);
+
+ return NULL;
+ }
+
+ if (comment) {
+ *comment = ssh_string_to_char(tmp);
+ } else {
+ ssh_string_free(blob);
+ ssh_string_free(tmp);
+
+ return NULL;
+ }
+ ssh_string_free(tmp);
+
+ /* get key from blob */
+ pubkey = publickey_from_string(session, blob);
+ ssh_string_free(blob);
+ break;
+ default:
+ return NULL;
+ }
+
+ return pubkey;
+}
+
+ssh_string agent_sign_data(struct ssh_session_struct *session,
+ struct ssh_buffer_struct *data,
+ struct ssh_public_key_struct *pubkey) {
+ struct ssh_string_struct *blob = NULL;
+ struct ssh_string_struct *sig = NULL;
+ struct ssh_buffer_struct *request = NULL;
+ struct ssh_buffer_struct *reply = NULL;
+ int type = SSH2_AGENT_FAILURE;
+ int flags = 0;
+ uint32_t dlen = 0;
+
+ /* create blob from the pubkey */
+ blob = publickey_to_string(pubkey);
+
+ request = ssh_buffer_new();
+ if (request == NULL) {
+ goto error;
+ }
+
+ /* create request */
+ if (buffer_add_u8(request, SSH2_AGENTC_SIGN_REQUEST) < 0) {
+ goto error;
+ }
+
+ /* adds len + blob */
+ if (buffer_add_ssh_string(request, blob) < 0) {
+ goto error;
+ }
+
+ /* Add data */
+ dlen = ssh_buffer_get_len(data);
+ if (buffer_add_u32(request, htonl(dlen)) < 0) {
+ goto error;
+ }
+ if (buffer_add_data(request, ssh_buffer_get_begin(data), dlen) < 0) {
+ goto error;
+ }
+
+ if (buffer_add_u32(request, htonl(flags)) < 0) {
+ goto error;
+ }
+
+ ssh_string_free(blob);
+
+ reply = ssh_buffer_new();
+ if (reply == NULL) {
+ goto error;
+ }
+
+ /* send the request */
+ if (agent_talk(session, request, reply) < 0) {
+ ssh_buffer_free(request);
+ return NULL;
+ }
+ ssh_buffer_free(request);
+
+ /* check if reply is valid */
+ if (buffer_get_u8(reply, (uint8_t *) &type) != sizeof(uint8_t)) {
+ goto error;
+ }
+ if (agent_failed(type)) {
+ ssh_log(session, SSH_LOG_RARE, "Agent reports failure in signing the key");
+ ssh_buffer_free(reply);
+ return NULL;
+ } else if (type != SSH2_AGENT_SIGN_RESPONSE) {
+ ssh_set_error(session, SSH_FATAL, "Bad authentication response: %d", type);
+ ssh_buffer_free(reply);
+ return NULL;
+ }
+
+ sig = buffer_get_ssh_string(reply);
+
+ ssh_buffer_free(reply);
+
+ return sig;
+error:
+ ssh_set_error(session, SSH_FATAL, "Not enough memory");
+ ssh_string_free(blob);
+ ssh_buffer_free(request);
+ ssh_buffer_free(reply);
+
+ return NULL;
+}
+
+int agent_is_running(ssh_session session) {
+ if (session == NULL || session->agent == NULL) {
+ return 0;
+ }
+
+ if (ssh_socket_is_open(session->agent->sock)) {
+ return 1;
+ } else {
+ if (agent_connect(session) < 0) {
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+#endif /* _WIN32 */
+
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/auth.c b/src/auth.c
new file mode 100644
index 0000000..f0443db
--- /dev/null
+++ b/src/auth.c
@@ -0,0 +1,1682 @@
+/*
+ * auth1.c - authentication with SSH protocols
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2008 by Aris Adamantiadis
+ * Copyright (c) 2008-2009 Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/priv.h"
+#include "libssh/ssh2.h"
+#include "libssh/buffer.h"
+#include "libssh/agent.h"
+#include "libssh/keyfiles.h"
+#include "libssh/misc.h"
+#include "libssh/packet.h"
+#include "libssh/session.h"
+#include "libssh/keys.h"
+#include "libssh/auth.h"
+
+/**
+ * @defgroup libssh_auth The SSH authentication functions.
+ * @ingroup libssh
+ *
+ * Functions to authenticate with a server.
+ *
+ * @{
+ */
+
+/**
+ * @internal
+ *
+ * @brief Ask access to the ssh-userauth service.
+ *
+ * @param[in] session The SSH session handle.
+ *
+ * @returns SSH_OK on success, SSH_ERROR on error.
+ *
+ * @bug current implementation is blocking
+ */
+static int ask_userauth(ssh_session session) {
+ int rc = 0;
+
+ enter_function();
+ do {
+ rc=ssh_service_request(session,"ssh-userauth");
+ if(rc==SSH_AGAIN)
+ ssh_handle_packets(session,-1);
+ } while(rc==SSH_AGAIN);
+ leave_function();
+ return rc;
+}
+
+/**
+ * @internal
+ *
+ * @brief Handles a SSH_USERAUTH_BANNER packet.
+ *
+ * This banner should be shown to user prior to authentication
+ */
+SSH_PACKET_CALLBACK(ssh_packet_userauth_banner){
+ ssh_string banner;
+ (void)type;
+ (void)user;
+ enter_function();
+ banner = buffer_get_ssh_string(packet);
+ if (banner == NULL) {
+ ssh_log(session, SSH_LOG_RARE,
+ "Invalid SSH_USERAUTH_BANNER packet");
+ } else {
+ ssh_log(session, SSH_LOG_PACKET,
+ "Received SSH_USERAUTH_BANNER packet");
+ if(session->banner != NULL)
+ ssh_string_free(session->banner);
+ session->banner = banner;
+ }
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ *
+ * @brief Handles a SSH_USERAUTH_FAILURE packet.
+ *
+ * This handles the complete or partial authentication failure.
+ */
+SSH_PACKET_CALLBACK(ssh_packet_userauth_failure){
+ char *auth_methods = NULL;
+ ssh_string auth;
+ uint8_t partial = 0;
+ (void) type;
+ (void) user;
+ enter_function();
+
+ auth = buffer_get_ssh_string(packet);
+ if (auth == NULL || buffer_get_u8(packet, &partial) != 1) {
+ ssh_set_error(session, SSH_FATAL,
+ "Invalid SSH_MSG_USERAUTH_FAILURE message");
+ session->auth_state=SSH_AUTH_STATE_ERROR;
+ goto end;
+ }
+
+ auth_methods = ssh_string_to_char(auth);
+ if (auth_methods == NULL) {
+ ssh_set_error_oom(session);
+ goto end;
+ }
+
+ if (partial) {
+ session->auth_state=SSH_AUTH_STATE_PARTIAL;
+ ssh_log(session,SSH_LOG_PROTOCOL,
+ "Partial success. Authentication that can continue: %s",
+ auth_methods);
+ } else {
+ session->auth_state=SSH_AUTH_STATE_FAILED;
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Access denied. Authentication that can continue: %s",
+ auth_methods);
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Access denied. Authentication that can continue: %s",
+ auth_methods);
+
+ session->auth_methods = 0;
+ }
+ if (strstr(auth_methods, "password") != NULL) {
+ session->auth_methods |= SSH_AUTH_METHOD_PASSWORD;
+ }
+ if (strstr(auth_methods, "keyboard-interactive") != NULL) {
+ session->auth_methods |= SSH_AUTH_METHOD_INTERACTIVE;
+ }
+ if (strstr(auth_methods, "publickey") != NULL) {
+ session->auth_methods |= SSH_AUTH_METHOD_PUBLICKEY;
+ }
+ if (strstr(auth_methods, "hostbased") != NULL) {
+ session->auth_methods |= SSH_AUTH_METHOD_HOSTBASED;
+ }
+
+end:
+ ssh_string_free(auth);
+ SAFE_FREE(auth_methods);
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ *
+ * @brief Handles a SSH_USERAUTH_SUCCESS packet.
+ *
+ * It is also used to communicate the new to the upper levels.
+ */
+SSH_PACKET_CALLBACK(ssh_packet_userauth_success){
+ enter_function();
+ (void)packet;
+ (void)type;
+ (void)user;
+ ssh_log(session,SSH_LOG_PACKET,"Received SSH_USERAUTH_SUCCESS");
+ ssh_log(session,SSH_LOG_PROTOCOL,"Authentication successful");
+ session->auth_state=SSH_AUTH_STATE_SUCCESS;
+ session->session_state=SSH_SESSION_STATE_AUTHENTICATED;
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ *
+ * @brief Handles a SSH_USERAUTH_PK_OK or SSH_USERAUTH_INFO_REQUEST packet.
+ *
+ * Since the two types of packets share the same code, additional work is done
+ * to understand if we are in a public key or keyboard-interactive context.
+ */
+SSH_PACKET_CALLBACK(ssh_packet_userauth_pk_ok){
+ int rc;
+ enter_function();
+ ssh_log(session,SSH_LOG_PACKET,"Received SSH_USERAUTH_PK_OK/INFO_REQUEST");
+ if(session->auth_state==SSH_AUTH_STATE_KBDINT_SENT){
+ /* Assuming we are in keyboard-interactive context */
+ ssh_log(session,SSH_LOG_PACKET,"keyboard-interactive context, assuming SSH_USERAUTH_INFO_REQUEST");
+ rc=ssh_packet_userauth_info_request(session,type,packet,user);
+ } else {
+ session->auth_state=SSH_AUTH_STATE_PK_OK;
+ ssh_log(session,SSH_LOG_PACKET,"assuming SSH_USERAUTH_PK_OK");
+ rc=SSH_PACKET_USED;
+ }
+ leave_function();
+ return rc;
+}
+
+static int wait_auth_status(ssh_session session) {
+ int rc = SSH_AUTH_ERROR;
+
+ enter_function();
+
+ while (session->auth_state == SSH_AUTH_STATE_NONE ||
+ session->auth_state == SSH_AUTH_STATE_KBDINT_SENT) {
+ if (ssh_handle_packets(session,-1) != SSH_OK)
+ break;
+ }
+ switch(session->auth_state){
+ case SSH_AUTH_STATE_ERROR:
+ rc=SSH_AUTH_ERROR;
+ break;
+ case SSH_AUTH_STATE_FAILED:
+ rc=SSH_AUTH_DENIED;
+ break;
+ case SSH_AUTH_STATE_INFO:
+ rc=SSH_AUTH_INFO;
+ break;
+ case SSH_AUTH_STATE_PARTIAL:
+ rc=SSH_AUTH_PARTIAL;
+ break;
+ case SSH_AUTH_STATE_PK_OK:
+ case SSH_AUTH_STATE_SUCCESS:
+ rc=SSH_AUTH_SUCCESS;
+ break;
+ case SSH_AUTH_STATE_KBDINT_SENT:
+ case SSH_AUTH_STATE_NONE:
+ /* not reached */
+ rc=SSH_AUTH_ERROR;
+ break;
+ }
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief retrieves available authentication methods for this session
+ * @deprecated
+ * @see ssh_userauth_list
+ */
+int ssh_auth_list(ssh_session session) {
+ return ssh_userauth_list(session, NULL);
+}
+
+/**
+ * @brief retrieves available authentication methods for this session
+ * @param[in] session the SSH session
+ * @param[in] username set to NULL
+ * @returns A bitfield of values SSH_AUTH_METHOD_NONE, SSH_AUTH_METHOD_PASSWORD,
+ SSH_AUTH_METHOD_PUBLICKEY, SSH_AUTH_METHOD_HOSTBASED,
+ SSH_AUTH_METHOD_INTERACTIVE.
+ @warning Other reserved flags may appear in future versions.
+ */
+int ssh_userauth_list(ssh_session session, const char *username) {
+ if (session == NULL) {
+ return SSH_AUTH_ERROR;
+ }
+
+#ifdef WITH_SSH1
+ if(session->version==1){
+ return SSH_AUTH_METHOD_PASSWORD;
+ }
+#endif
+ if (session->auth_methods == 0) {
+ ssh_userauth_none(session, username);
+ }
+ return session->auth_methods;
+}
+
+/* use the "none" authentication question */
+
+/**
+ * @brief Try to authenticate through the "none" method.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] username Deprecated, set to NULL.
+ *
+ * @returns SSH_AUTH_ERROR: A serious error happened.\n
+ * SSH_AUTH_DENIED: Authentication failed: use another method\n
+ * SSH_AUTH_PARTIAL: You've been partially authenticated, you still
+ * have to use another method\n
+ * SSH_AUTH_SUCCESS: Authentication success
+ */
+int ssh_userauth_none(ssh_session session, const char *username) {
+ ssh_string user = NULL;
+ ssh_string service = NULL;
+ ssh_string method = NULL;
+ int rc = SSH_AUTH_ERROR;
+
+ enter_function();
+
+#ifdef WITH_SSH1
+ if (session->version == 1) {
+ rc = ssh_userauth1_none(session, username);
+ leave_function();
+ return rc;
+ }
+#endif
+ if(session->auth_methods != 0){
+ /* userauth_none or other method was already tried before */
+ ssh_set_error(session,SSH_REQUEST_DENIED,"None method rejected by server");
+ leave_function();
+ return SSH_AUTH_DENIED;
+ }
+ if (username == NULL) {
+ if (session->username == NULL) {
+ if (ssh_options_apply(session) < 0) {
+ leave_function();
+ return rc;
+ }
+ }
+ user = ssh_string_from_char(session->username);
+ } else {
+ user = ssh_string_from_char(username);
+ }
+
+ if (user == NULL) {
+ leave_function();
+ return rc;
+ }
+
+ if (ask_userauth(session) < 0) {
+ ssh_string_free(user);
+ leave_function();
+ return rc;
+ }
+
+ method = ssh_string_from_char("none");
+ if (method == NULL) {
+ goto error;
+ }
+ service = ssh_string_from_char("ssh-connection");
+ if (service == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_USERAUTH_REQUEST) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, user) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, service) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, method) < 0) {
+ goto error;
+ }
+
+ ssh_string_free(service);
+ ssh_string_free(method);
+ ssh_string_free(user);
+ session->auth_state=SSH_AUTH_STATE_NONE;
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return rc;
+ }
+ rc = wait_auth_status(session);
+
+ leave_function();
+ return rc;
+error:
+ buffer_reinit(session->out_buffer);
+ ssh_string_free(service);
+ ssh_string_free(method);
+ ssh_string_free(user);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Try to authenticate through public key.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] username The username to authenticate. You can specify NULL if
+ * ssh_option_set_username() has been used. You cannot try
+ * two different logins in a row.
+ *
+ * @param[in] type The type of the public key. This value is given by
+ * publickey_from_file() or ssh_privatekey_type().
+ *
+ * @param[in] publickey A public key returned by publickey_from_file().
+ *
+ * @returns SSH_AUTH_ERROR: A serious error happened.\n
+ * SSH_AUTH_DENIED: The server doesn't accept that public key as an
+ * authentication token. Try another key or another
+ * method.\n
+ * SSH_AUTH_PARTIAL: You've been partially authenticated, you still
+ * have to use another method.\n
+ * SSH_AUTH_SUCCESS: The public key is accepted, you want now to use
+ * ssh_userauth_pubkey().
+ *
+ * @see publickey_from_file()
+ * @see privatekey_from_file()
+ * @see ssh_privatekey_type()
+ * @see ssh_userauth_pubkey()
+ */
+int ssh_userauth_offer_pubkey(ssh_session session, const char *username,
+ int type, ssh_string publickey) {
+ ssh_string user = NULL;
+ ssh_string service = NULL;
+ ssh_string method = NULL;
+ ssh_string algo = NULL;
+ int rc = SSH_AUTH_ERROR;
+
+ enter_function();
+
+#ifdef WITH_SSH1
+ if (session->version == 1) {
+ ssh_userauth1_offer_pubkey(session, username, type, publickey);
+ leave_function();
+ return rc;
+ }
+#endif
+
+ if (username == NULL) {
+ if (session->username == NULL) {
+ if (ssh_options_apply(session) < 0) {
+ leave_function();
+ return rc;
+ }
+ }
+ user = ssh_string_from_char(session->username);
+ } else {
+ user = ssh_string_from_char(username);
+ }
+
+ if (user == NULL) {
+ leave_function();
+ return rc;
+ }
+
+ if (ask_userauth(session) < 0) {
+ ssh_string_free(user);
+ leave_function();
+ return rc;
+ }
+
+ service = ssh_string_from_char("ssh-connection");
+ if (service == NULL) {
+ goto error;
+ }
+ method = ssh_string_from_char("publickey");
+ if (method == NULL) {
+ goto error;
+ }
+ algo = ssh_string_from_char(ssh_type_to_char(type));
+ if (algo == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_USERAUTH_REQUEST) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, user) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, service) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, method) < 0 ||
+ buffer_add_u8(session->out_buffer, 0) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, algo) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, publickey) < 0) {
+ goto error;
+ }
+
+ ssh_string_free(user);
+ ssh_string_free(method);
+ ssh_string_free(service);
+ ssh_string_free(algo);
+ session->auth_state=SSH_AUTH_STATE_NONE;
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return rc;
+ }
+ rc = wait_auth_status(session);
+
+ leave_function();
+ return rc;
+error:
+ buffer_reinit(session->out_buffer);
+ ssh_string_free(user);
+ ssh_string_free(method);
+ ssh_string_free(service);
+ ssh_string_free(algo);
+
+ leave_function();
+ return rc;
+}
+
+
+/**
+ * @brief Try to authenticate through public key.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] username The username to authenticate. You can specify NULL if
+ * ssh_option_set_username() has been used. You cannot try
+ * two different logins in a row.
+ *
+ * @param[in] publickey A public key returned by publickey_from_file(), or NULL
+ * to generate automatically from privatekey.
+ *
+ * @param[in] privatekey A private key returned by privatekey_from_file().
+ *
+ * @returns SSH_AUTH_ERROR: A serious error happened.\n
+ * SSH_AUTH_DENIED: Authentication failed: use another method.\n
+ * SSH_AUTH_PARTIAL: You've been partially authenticated, you still
+ * have to use another method.\n
+ * SSH_AUTH_SUCCESS: Authentication successful.
+ *
+ * @see publickey_from_file()
+ * @see privatekey_from_file()
+ * @see privatekey_free()
+ * @see ssh_userauth_offer_pubkey()
+ */
+int ssh_userauth_pubkey(ssh_session session, const char *username,
+ ssh_string publickey, ssh_private_key privatekey) {
+ ssh_string user = NULL;
+ ssh_string service = NULL;
+ ssh_string method = NULL;
+ ssh_string algo = NULL;
+ ssh_string sign = NULL;
+ ssh_public_key pk = NULL;
+ ssh_string pkstr = NULL;
+ int rc = SSH_AUTH_ERROR;
+
+ enter_function();
+
+#if 0
+ if (session->version == 1) {
+ return ssh_userauth1_pubkey(session, username, publickey, privatekey);
+ }
+#endif
+
+ if (username == NULL) {
+ if (session->username == NULL) {
+ if (ssh_options_apply(session) < 0) {
+ leave_function();
+ return rc;
+ }
+ }
+ user = ssh_string_from_char(session->username);
+ } else {
+ user = ssh_string_from_char(username);
+ }
+
+ if (user == NULL) {
+ leave_function();
+ return rc;
+ }
+
+ if (ask_userauth(session) < 0) {
+ ssh_string_free(user);
+ leave_function();
+ return rc;
+ }
+
+ service = ssh_string_from_char("ssh-connection");
+ if (service == NULL) {
+ goto error;
+ }
+ method = ssh_string_from_char("publickey");
+ if (method == NULL) {
+ goto error;
+ }
+ algo = ssh_string_from_char(ssh_type_to_char(privatekey->type));
+ if (algo == NULL) {
+ goto error;
+ }
+ if (publickey == NULL) {
+ pk = publickey_from_privatekey(privatekey);
+ if (pk == NULL) {
+ goto error;
+ }
+ pkstr = publickey_to_string(pk);
+ publickey_free(pk);
+ if (pkstr == NULL) {
+ goto error;
+ }
+ }
+
+ /* we said previously the public key was accepted */
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_USERAUTH_REQUEST) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, user) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, service) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, method) < 0 ||
+ buffer_add_u8(session->out_buffer, 1) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, algo) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, (publickey == NULL ? pkstr : publickey)) < 0) {
+ goto error;
+ }
+
+ ssh_string_free(user);
+ ssh_string_free(service);
+ ssh_string_free(method);
+ ssh_string_free(algo);
+ ssh_string_free(pkstr);
+
+ sign = ssh_do_sign(session,session->out_buffer, privatekey);
+ if (sign) {
+ if (buffer_add_ssh_string(session->out_buffer,sign) < 0) {
+ goto error;
+ }
+ ssh_string_free(sign);
+ session->auth_state=SSH_AUTH_STATE_NONE;
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return rc;
+ }
+ rc = wait_auth_status(session);
+ }
+
+ leave_function();
+ return rc;
+error:
+ buffer_reinit(session->out_buffer);
+ ssh_string_free(user);
+ ssh_string_free(service);
+ ssh_string_free(method);
+ ssh_string_free(algo);
+ ssh_string_free(pkstr);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Try to authenticate through a private key file.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] username The username to authenticate. You can specify NULL if
+ * ssh_option_set_username() has been used. You cannot try
+ * two different logins in a row.
+ *
+ * @param[in] filename Filename containing the private key.
+ *
+ * @param[in] passphrase Passphrase to decrypt the private key. Set to null if
+ * none is needed or it is unknown.
+ *
+ * @returns SSH_AUTH_ERROR: A serious error happened.\n
+ * SSH_AUTH_DENIED: Authentication failed: use another method.\n
+ * SSH_AUTH_PARTIAL: You've been partially authenticated, you still
+ * have to use another method.\n
+ * SSH_AUTH_SUCCESS: Authentication successful.
+ *
+ * @see publickey_from_file()
+ * @see privatekey_from_file()
+ * @see privatekey_free()
+ * @see ssh_userauth_pubkey()
+ */
+int ssh_userauth_privatekey_file(ssh_session session, const char *username,
+ const char *filename, const char *passphrase) {
+ char *pubkeyfile = NULL;
+ ssh_string pubkey = NULL;
+ ssh_private_key privkey = NULL;
+ int type = 0;
+ int rc = SSH_AUTH_ERROR;
+
+ enter_function();
+
+ pubkeyfile = malloc(strlen(filename) + 1 + 4);
+ if (pubkeyfile == NULL) {
+ leave_function();
+ return SSH_AUTH_ERROR;
+ }
+ sprintf(pubkeyfile, "%s.pub", filename);
+
+ pubkey = publickey_from_file(session, pubkeyfile, &type);
+ if (pubkey == NULL) {
+ ssh_log(session, SSH_LOG_RARE, "Public key file %s not found. Trying to generate it.", pubkeyfile);
+ /* auto-detect the key type with type=0 */
+ privkey = privatekey_from_file(session, filename, 0, passphrase);
+ } else {
+ ssh_log(session, SSH_LOG_RARE, "Public key file %s loaded.", pubkeyfile);
+ privkey = privatekey_from_file(session, filename, type, passphrase);
+ }
+ if (privkey == NULL) {
+ goto error;
+ }
+ /* ssh_userauth_pubkey is responsible for taking care of null-pubkey */
+ rc = ssh_userauth_pubkey(session, username, pubkey, privkey);
+ privatekey_free(privkey);
+
+error:
+ SAFE_FREE(pubkeyfile);
+ ssh_string_free(pubkey);
+
+ leave_function();
+ return rc;
+}
+
+#ifndef _WIN32
+/**
+ * @brief Try to authenticate through public key with an ssh agent.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] username The username to authenticate. You can specify NULL if
+ * ssh_option_set_username() has been used. You cannot try
+ * two different logins in a row.
+ *
+ * @param[in] publickey The public key provided by the agent.
+ *
+ * @returns SSH_AUTH_ERROR: A serious error happened.\n
+ * SSH_AUTH_DENIED: Authentication failed: use another method.\n
+ * SSH_AUTH_PARTIAL: You've been partially authenticated, you still
+ * have to use another method.\n
+ * SSH_AUTH_SUCCESS: Authentication successful.
+ *
+ * @see publickey_from_file()
+ * @see privatekey_from_file()
+ * @see privatekey_free()
+ * @see ssh_userauth_offer_pubkey()
+ */
+int ssh_userauth_agent_pubkey(ssh_session session, const char *username,
+ ssh_public_key publickey) {
+ ssh_string user = NULL;
+ ssh_string service = NULL;
+ ssh_string method = NULL;
+ ssh_string algo = NULL;
+ ssh_string key = NULL;
+ ssh_string sign = NULL;
+ int rc = SSH_AUTH_ERROR;
+
+ enter_function();
+
+ if (! agent_is_running(session)) {
+ return rc;
+ }
+
+ if (username == NULL) {
+ if (session->username == NULL) {
+ if (ssh_options_apply(session) < 0) {
+ leave_function();
+ return rc;
+ }
+ }
+ user = ssh_string_from_char(session->username);
+ } else {
+ user = ssh_string_from_char(username);
+ }
+
+ if (user == NULL) {
+ leave_function();
+ return rc;
+ }
+
+ if (ask_userauth(session) < 0) {
+ ssh_string_free(user);
+ leave_function();
+ return rc;
+ }
+
+ service = ssh_string_from_char("ssh-connection");
+ if (service == NULL) {
+ goto error;
+ }
+ method = ssh_string_from_char("publickey");
+ if (method == NULL) {
+ goto error;
+ }
+ algo = ssh_string_from_char(ssh_type_to_char(publickey->type));
+ if (algo == NULL) {
+ goto error;
+ }
+ key = publickey_to_string(publickey);
+ if (key == NULL) {
+ goto error;
+ }
+
+ /* we said previously the public key was accepted */
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_USERAUTH_REQUEST) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, user) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, service) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, method) < 0 ||
+ buffer_add_u8(session->out_buffer, 1) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, algo) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, key) < 0) {
+ goto error;
+ }
+
+ sign = ssh_do_sign_with_agent(session, session->out_buffer, publickey);
+
+ if (sign) {
+ if (buffer_add_ssh_string(session->out_buffer, sign) < 0) {
+ goto error;
+ }
+ ssh_string_free(sign);
+ session->auth_state=SSH_AUTH_STATE_NONE;
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return rc;
+ }
+ rc = wait_auth_status(session);
+ }
+
+ ssh_string_free(user);
+ ssh_string_free(service);
+ ssh_string_free(method);
+ ssh_string_free(algo);
+ ssh_string_free(key);
+
+ leave_function();
+
+ return rc;
+error:
+ buffer_reinit(session->out_buffer);
+ ssh_string_free(sign);
+ ssh_string_free(user);
+ ssh_string_free(service);
+ ssh_string_free(method);
+ ssh_string_free(algo);
+ ssh_string_free(key);
+
+ leave_function();
+ return rc;
+}
+#endif /* _WIN32 */
+
+/**
+ * @brief Try to authenticate by password.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] username The username to authenticate. You can specify NULL if
+ * ssh_option_set_username() has been used. You cannot try
+ * two different logins in a row.
+ *
+ * @param[in] password The password to use. Take care to clean it after
+ * the authentication.
+ *
+ * @returns SSH_AUTH_ERROR: A serious error happened.\n
+ * SSH_AUTH_DENIED: Authentication failed: use another method.\n
+ * SSH_AUTH_PARTIAL: You've been partially authenticated, you still
+ * have to use another method.\n
+ * SSH_AUTH_SUCCESS: Authentication successful.
+ *
+ * @see ssh_userauth_kbdint()
+ * @see BURN_STRING
+ */
+int ssh_userauth_password(ssh_session session, const char *username,
+ const char *password) {
+ ssh_string user = NULL;
+ ssh_string service = NULL;
+ ssh_string method = NULL;
+ ssh_string pwd = NULL;
+ int rc = SSH_AUTH_ERROR;
+
+ enter_function();
+
+#ifdef WITH_SSH1
+ if (session->version == 1) {
+ rc = ssh_userauth1_password(session, username, password);
+ leave_function();
+ return rc;
+ }
+#endif
+
+ if (username == NULL) {
+ if (session->username == NULL) {
+ if (ssh_options_apply(session) < 0) {
+ leave_function();
+ return rc;
+ }
+ }
+ user = ssh_string_from_char(session->username);
+ } else {
+ user = ssh_string_from_char(username);
+ }
+
+ if (user == NULL) {
+ leave_function();
+ return rc;
+ }
+
+ if (ask_userauth(session) < 0) {
+ ssh_string_free(user);
+ leave_function();
+ return rc;
+ }
+
+ service = ssh_string_from_char("ssh-connection");
+ if (service == NULL) {
+ goto error;
+ }
+ method = ssh_string_from_char("password");
+ if (method == NULL) {
+ goto error;
+ }
+ pwd = ssh_string_from_char(password);
+ if (pwd == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_USERAUTH_REQUEST) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, user) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, service) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, method) < 0 ||
+ buffer_add_u8(session->out_buffer, 0) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, pwd) < 0) {
+ goto error;
+ }
+
+ ssh_string_free(user);
+ ssh_string_free(service);
+ ssh_string_free(method);
+ ssh_string_burn(pwd);
+ ssh_string_free(pwd);
+ session->auth_state=SSH_AUTH_STATE_NONE;
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return rc;
+ }
+ rc = wait_auth_status(session);
+
+ leave_function();
+ return rc;
+error:
+ buffer_reinit(session->out_buffer);
+ ssh_string_free(user);
+ ssh_string_free(service);
+ ssh_string_free(method);
+ ssh_string_burn(pwd);
+ ssh_string_free(pwd);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Tries to automatically authenticate with public key and "none"
+ *
+ * It may fail, for instance it doesn't ask for a password and uses a default
+ * asker for passphrases (in case the private key is encrypted).
+ *
+ * @param[in] session The ssh session to authenticate with.
+ *
+ * @param[in] passphrase Use this passphrase to unlock the privatekey. Use NULL
+ * if you don't want to use a passphrase or the user
+ * should be asked.
+ *
+ * @returns SSH_AUTH_ERROR: A serious error happened\n
+ * SSH_AUTH_DENIED: Authentication failed: use another method\n
+ * SSH_AUTH_PARTIAL: You've been partially authenticated, you still
+ * have to use another method\n
+ * SSH_AUTH_SUCCESS: Authentication success
+ *
+ * @see ssh_userauth_kbdint()
+ * @see ssh_userauth_password()
+ */
+int ssh_userauth_autopubkey(ssh_session session, const char *passphrase) {
+ struct ssh_iterator *it;
+ ssh_private_key privkey;
+ ssh_public_key pubkey;
+ ssh_string pubkey_string;
+ int type = 0;
+ int rc;
+
+ enter_function();
+
+ /* Always test none authentication */
+ rc = ssh_userauth_none(session, NULL);
+ if (rc == SSH_AUTH_ERROR || rc == SSH_AUTH_SUCCESS) {
+ leave_function();
+ return rc;
+ }
+
+ /* Try authentication with ssh-agent first */
+#ifndef _WIN32
+ if (agent_is_running(session)) {
+ char *privkey_file = NULL;
+
+ ssh_log(session, SSH_LOG_RARE,
+ "Trying to authenticate with SSH agent keys as user: %s",
+ session->username);
+
+ for (pubkey = agent_get_first_ident(session, &privkey_file);
+ pubkey != NULL;
+ pubkey = agent_get_next_ident(session, &privkey_file)) {
+
+ ssh_log(session, SSH_LOG_RARE, "Trying identity %s", privkey_file);
+
+ pubkey_string = publickey_to_string(pubkey);
+ if (pubkey_string) {
+ rc = ssh_userauth_offer_pubkey(session, NULL, pubkey->type, pubkey_string);
+ ssh_string_free(pubkey_string);
+ if (rc == SSH_AUTH_ERROR) {
+ SAFE_FREE(privkey_file);
+ publickey_free(pubkey);
+ leave_function();
+
+ return rc;
+ } else if (rc != SSH_AUTH_SUCCESS) {
+ ssh_log(session, SSH_LOG_PROTOCOL, "Public key refused by server");
+ SAFE_FREE(privkey_file);
+ publickey_free(pubkey);
+ continue;
+ }
+ ssh_log(session, SSH_LOG_PROTOCOL, "Public key accepted");
+ /* pubkey accepted by server ! */
+ rc = ssh_userauth_agent_pubkey(session, NULL, pubkey);
+ if (rc == SSH_AUTH_ERROR) {
+ SAFE_FREE(privkey_file);
+ publickey_free(pubkey);
+ leave_function();
+
+ return rc;
+ } else if (rc != SSH_AUTH_SUCCESS) {
+ ssh_log(session, SSH_LOG_RARE,
+ "Server accepted public key but refused the signature ;"
+ " It might be a bug of libssh");
+ SAFE_FREE(privkey_file);
+ publickey_free(pubkey);
+ continue;
+ }
+ /* auth success */
+ ssh_log(session, SSH_LOG_PROTOCOL, "Authentication using %s success",
+ privkey_file);
+ SAFE_FREE(privkey_file);
+ publickey_free(pubkey);
+
+ leave_function();
+
+ return SSH_AUTH_SUCCESS;
+ } /* if pubkey */
+ SAFE_FREE(privkey_file);
+ publickey_free(pubkey);
+ } /* for each privkey */
+ } /* if agent is running */
+#endif
+
+
+ for (it = ssh_list_get_iterator(session->identity);
+ it != NULL;
+ it = it->next) {
+ const char *privkey_file = it->data;
+ int privkey_open = 0;
+
+ privkey = NULL;
+
+ ssh_log(session, SSH_LOG_PROTOCOL, "Trying to read privatekey %s", privkey_file);
+
+ rc = ssh_try_publickey_from_file(session, privkey_file, &pubkey_string, &type);
+ if (rc == 1) {
+ char *publickey_file;
+ size_t len;
+
+ privkey = privatekey_from_file(session, privkey_file, type, passphrase);
+ if (privkey == NULL) {
+ ssh_log(session, SSH_LOG_RARE,
+ "Reading private key %s failed (bad passphrase ?)",
+ privkey_file);
+ leave_function();
+ return SSH_AUTH_ERROR;
+ }
+ privkey_open = 1;
+
+ pubkey = publickey_from_privatekey(privkey);
+ if (pubkey == NULL) {
+ privatekey_free(privkey);
+ ssh_set_error_oom(session);
+ leave_function();
+ return SSH_AUTH_ERROR;
+ }
+
+ pubkey_string = publickey_to_string(pubkey);
+ type = pubkey->type;
+ publickey_free(pubkey);
+ if (pubkey_string == NULL) {
+ ssh_set_error_oom(session);
+ leave_function();
+ return SSH_AUTH_ERROR;
+ }
+
+ len = strlen(privkey_file) + 5;
+ publickey_file = malloc(len);
+ if (publickey_file == NULL) {
+ ssh_set_error_oom(session);
+ leave_function();
+ return SSH_AUTH_ERROR;
+ }
+ snprintf(publickey_file, len, "%s.pub", privkey_file);
+ rc = ssh_publickey_to_file(session, publickey_file, pubkey_string, type);
+ if (rc < 0) {
+ ssh_log(session, SSH_LOG_PACKET,
+ "Could not write public key to file: %s", publickey_file);
+ }
+ SAFE_FREE(publickey_file);
+ } else if (rc < 0) {
+ continue;
+ }
+
+ rc = ssh_userauth_offer_pubkey(session, NULL, type, pubkey_string);
+ if (rc == SSH_AUTH_ERROR){
+ ssh_string_free(pubkey_string);
+ ssh_log(session, SSH_LOG_RARE, "Publickey authentication error");
+ leave_function();
+ return rc;
+ } else {
+ if (rc != SSH_AUTH_SUCCESS){
+ ssh_log(session, SSH_LOG_PROTOCOL, "Publickey refused by server");
+ ssh_string_free(pubkey_string);
+ continue;
+ }
+ }
+
+ /* Public key accepted by server! */
+ if (!privkey_open) {
+ ssh_log(session, SSH_LOG_PROTOCOL, "Trying to read privatekey %s",
+ privkey_file);
+ privkey = privatekey_from_file(session, privkey_file, type, passphrase);
+ if (privkey == NULL) {
+ ssh_log(session, SSH_LOG_RARE,
+ "Reading private key %s failed (bad passphrase ?)",
+ privkey_file);
+ ssh_string_free(pubkey_string);
+ continue; /* continue the loop with other pubkey */
+ }
+ }
+
+ rc = ssh_userauth_pubkey(session, NULL, pubkey_string, privkey);
+ if (rc == SSH_AUTH_ERROR) {
+ ssh_string_free(pubkey_string);
+ privatekey_free(privkey);
+ leave_function();
+ return rc;
+ } else {
+ if (rc != SSH_AUTH_SUCCESS){
+ ssh_log(session, SSH_LOG_RARE,
+ "The server accepted the public key but refused the signature");
+ ssh_string_free(pubkey_string);
+ privatekey_free(privkey);
+ continue;
+ }
+ }
+
+ /* auth success */
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Successfully authenticated using %s", privkey_file);
+ ssh_string_free(pubkey_string);
+ privatekey_free(privkey);
+
+ leave_function();
+ return SSH_AUTH_SUCCESS;
+ }
+
+ /* at this point, pubkey is NULL and so is privkeyfile */
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Tried every public key, none matched");
+ ssh_set_error(session,SSH_NO_ERROR,"No public key matched");
+
+ leave_function();
+ return SSH_AUTH_DENIED;
+}
+
+struct ssh_kbdint_struct {
+ uint32_t nprompts;
+ char *name;
+ char *instruction;
+ char **prompts;
+ unsigned char *echo; /* bool array */
+ char **answers;
+};
+
+static ssh_kbdint kbdint_new(void) {
+ ssh_kbdint kbd;
+
+ kbd = malloc(sizeof (struct ssh_kbdint_struct));
+ if (kbd == NULL) {
+ return NULL;
+ }
+ ZERO_STRUCTP(kbd);
+
+ return kbd;
+}
+
+
+static void kbdint_free(ssh_kbdint kbd) {
+ int i, n;
+
+ if (kbd == NULL) {
+ return;
+ }
+
+ n = kbd->nprompts;
+
+ SAFE_FREE(kbd->name);
+ SAFE_FREE(kbd->instruction);
+ SAFE_FREE(kbd->echo);
+
+ if (kbd->prompts) {
+ for (i = 0; i < n; i++) {
+ BURN_STRING(kbd->prompts[i]);
+ SAFE_FREE(kbd->prompts[i]);
+ }
+ SAFE_FREE(kbd->prompts);
+ }
+ if (kbd->answers) {
+ for (i = 0; i < n; i++) {
+ BURN_STRING(kbd->answers[i]);
+ SAFE_FREE(kbd->answers[i]);
+ }
+ SAFE_FREE(kbd->answers);
+ }
+
+ SAFE_FREE(kbd);
+}
+
+static void kbdint_clean(ssh_kbdint kbd) {
+ int i, n;
+
+ if (kbd == NULL) {
+ return;
+ }
+
+ n = kbd->nprompts;
+
+ SAFE_FREE(kbd->name);
+ SAFE_FREE(kbd->instruction);
+ SAFE_FREE(kbd->echo);
+
+ if (kbd->prompts) {
+ for (i = 0; i < n; i++) {
+ BURN_STRING(kbd->prompts[i]);
+ SAFE_FREE(kbd->prompts[i]);
+ }
+ SAFE_FREE(kbd->prompts);
+ }
+
+ if (kbd->answers) {
+ for (i = 0; i < n; i++) {
+ BURN_STRING(kbd->answers[i]);
+ SAFE_FREE(kbd->answers[i]);
+ }
+ SAFE_FREE(kbd->answers);
+ }
+
+ kbd->nprompts = 0;
+}
+
+/* this function sends the first packet as explained in section 3.1
+ * of the draft */
+static int kbdauth_init(ssh_session session, const char *user,
+ const char *submethods) {
+ ssh_string usr = NULL;
+ ssh_string sub = NULL;
+ ssh_string service = NULL;
+ ssh_string method = NULL;
+ int rc = SSH_AUTH_ERROR;
+
+ enter_function();
+
+ usr = ssh_string_from_char(user);
+ if (usr == NULL) {
+ goto error;
+ }
+ sub = (submethods ? ssh_string_from_char(submethods) : ssh_string_from_char(""));
+ if (sub == NULL) {
+ goto error;
+ }
+ service = ssh_string_from_char("ssh-connection");
+ if (service == NULL) {
+ goto error;
+ }
+ method = ssh_string_from_char("keyboard-interactive");
+ if (method == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_USERAUTH_REQUEST) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, usr) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, service) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, method) < 0 ||
+ buffer_add_u32(session->out_buffer, 0) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, sub) < 0) {
+ goto error;
+ }
+
+ ssh_string_free(usr);
+ ssh_string_free(service);
+ ssh_string_free(method);
+ ssh_string_free(sub);
+ session->auth_state=SSH_AUTH_STATE_KBDINT_SENT;
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return rc;
+ }
+ rc = wait_auth_status(session);
+
+ leave_function();
+ return rc;
+error:
+ buffer_reinit(session->out_buffer);
+ ssh_string_free(usr);
+ ssh_string_free(service);
+ ssh_string_free(method);
+ ssh_string_free(sub);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @internal
+ * @brief handles a SSH_USERAUTH_INFO_REQUEST packet, as used in
+ * keyboard-interactive authentication, and changes the
+ * authentication state.
+ */
+SSH_PACKET_CALLBACK(ssh_packet_userauth_info_request) {
+ ssh_string name; /* name of the "asking" window showed to client */
+ ssh_string instruction;
+ ssh_string tmp;
+ uint32_t nprompts;
+ uint32_t i;
+ (void)user;
+ (void)type;
+ enter_function();
+
+ name = buffer_get_ssh_string(packet);
+ instruction = buffer_get_ssh_string(packet);
+ tmp = buffer_get_ssh_string(packet);
+ buffer_get_u32(packet, &nprompts);
+
+ if (name == NULL || instruction == NULL || tmp == NULL) {
+ ssh_string_free(name);
+ ssh_string_free(instruction);
+ /* tmp if empty if we got here */
+ ssh_set_error(session, SSH_FATAL, "Invalid USERAUTH_INFO_REQUEST msg");
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+ ssh_string_free(tmp);
+
+ if (session->kbdint == NULL) {
+ session->kbdint = kbdint_new();
+ if (session->kbdint == NULL) {
+ ssh_set_error_oom(session);
+ ssh_string_free(name);
+ ssh_string_free(instruction);
+
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+ } else {
+ kbdint_clean(session->kbdint);
+ }
+
+ session->kbdint->name = ssh_string_to_char(name);
+ ssh_string_free(name);
+ if (session->kbdint->name == NULL) {
+ ssh_set_error_oom(session);
+ kbdint_free(session->kbdint);
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ session->kbdint->instruction = ssh_string_to_char(instruction);
+ ssh_string_free(instruction);
+ if (session->kbdint->instruction == NULL) {
+ ssh_set_error_oom(session);
+ kbdint_free(session->kbdint);
+ session->kbdint = NULL;
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ nprompts = ntohl(nprompts);
+ ssh_log(session,SSH_LOG_PACKET,"kbdint: %d prompts",nprompts);
+ if (nprompts > KBDINT_MAX_PROMPT) {
+ ssh_set_error(session, SSH_FATAL,
+ "Too much prompt asked from server: %u (0x%.4x)",
+ nprompts, nprompts);
+ kbdint_free(session->kbdint);
+ session->kbdint = NULL;
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ session->kbdint->nprompts = nprompts;
+ session->kbdint->prompts = malloc(nprompts * sizeof(char *));
+ if (session->kbdint->prompts == NULL) {
+ session->kbdint->nprompts = 0;
+ ssh_set_error_oom(session);
+ kbdint_free(session->kbdint);
+ session->kbdint = NULL;
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+ memset(session->kbdint->prompts, 0, nprompts * sizeof(char *));
+
+ session->kbdint->echo = malloc(nprompts);
+ if (session->kbdint->echo == NULL) {
+ session->kbdint->nprompts = 0;
+ ssh_set_error_oom(session);
+ kbdint_free(session->kbdint);
+ session->kbdint = NULL;
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+ memset(session->kbdint->echo, 0, nprompts);
+
+ for (i = 0; i < nprompts; i++) {
+ tmp = buffer_get_ssh_string(packet);
+ buffer_get_u8(packet, &session->kbdint->echo[i]);
+ if (tmp == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Short INFO_REQUEST packet");
+ kbdint_free(session->kbdint);
+ session->kbdint = NULL;
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+ session->kbdint->prompts[i] = ssh_string_to_char(tmp);
+ ssh_string_free(tmp);
+ if (session->kbdint->prompts[i] == NULL) {
+ ssh_set_error_oom(session);
+ kbdint_free(session->kbdint);
+ session->kbdint = NULL;
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+ }
+ session->auth_state=SSH_AUTH_STATE_INFO;
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ * @brief Sends the current challenge response and wait for a
+ * reply from the server
+ * @returns SSH_AUTH_INFO if more info is needed
+ * @returns SSH_AUTH_SUCCESS
+ * @returns SSH_AUTH_FAILURE
+ * @returns SSH_AUTH_PARTIAL
+ */
+static int kbdauth_send(ssh_session session) {
+ ssh_string answer = NULL;
+ int rc = SSH_AUTH_ERROR;
+ uint32_t i;
+
+ enter_function();
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_USERAUTH_INFO_RESPONSE) < 0 ||
+ buffer_add_u32(session->out_buffer,
+ htonl(session->kbdint->nprompts)) < 0) {
+ goto error;
+ }
+
+ for (i = 0; i < session->kbdint->nprompts; i++) {
+ if (session->kbdint->answers[i]) {
+ answer = ssh_string_from_char(session->kbdint->answers[i]);
+ } else {
+ answer = ssh_string_from_char("");
+ }
+ if (answer == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(session->out_buffer, answer) < 0) {
+ goto error;
+ }
+
+ ssh_string_burn(answer);
+ ssh_string_free(answer);
+ }
+ session->auth_state=SSH_AUTH_STATE_KBDINT_SENT;
+ kbdint_free(session->kbdint);
+ session->kbdint = NULL;
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return rc;
+ }
+ rc = wait_auth_status(session);
+
+ leave_function();
+ return rc;
+error:
+ buffer_reinit(session->out_buffer);
+ ssh_string_burn(answer);
+ ssh_string_free(answer);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Try to authenticate through the "keyboard-interactive" method.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] user The username to authenticate. You can specify NULL if
+ * ssh_option_set_username() has been used. You cannot try
+ * two different logins in a row.
+ *
+ * @param[in] submethods Undocumented. Set it to NULL.
+ *
+ * @returns SSH_AUTH_ERROR: A serious error happened\n
+ * SSH_AUTH_DENIED: Authentication failed : use another method\n
+ * SSH_AUTH_PARTIAL: You've been partially authenticated, you still
+ * have to use another method\n
+ * SSH_AUTH_SUCCESS: Authentication success\n
+ * SSH_AUTH_INFO: The server asked some questions. Use
+ * ssh_userauth_kbdint_getnprompts() and such.
+ *
+ * @see ssh_userauth_kbdint_getnprompts()
+ * @see ssh_userauth_kbdint_getname()
+ * @see ssh_userauth_kbdint_getinstruction()
+ * @see ssh_userauth_kbdint_getprompt()
+ * @see ssh_userauth_kbdint_setanswer()
+ */
+int ssh_userauth_kbdint(ssh_session session, const char *user,
+ const char *submethods) {
+ int rc = SSH_AUTH_ERROR;
+
+ if (session->version == 1) {
+ /* No keyb-interactive for ssh1 */
+ return SSH_AUTH_DENIED;
+ }
+
+ enter_function();
+
+ if (session->kbdint == NULL) {
+ /* first time we call. we must ask for a challenge */
+ if (user == NULL) {
+ if ((user = session->username) == NULL) {
+ if (ssh_options_apply(session) < 0) {
+ leave_function();
+ return SSH_AUTH_ERROR;
+ } else {
+ user = session->username;
+ }
+ }
+ }
+
+ if (ask_userauth(session)) {
+ leave_function();
+ return SSH_AUTH_ERROR;
+ }
+
+ rc = kbdauth_init(session, user, submethods);
+
+ leave_function();
+ return rc;
+ }
+
+ /*
+ * If we are at this point, it is because session->kbdint exists.
+ * It means the user has set some information there we need to send
+ * the server and then we need to ack the status (new questions or ok
+ * pass in).
+ */
+ rc = kbdauth_send(session);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Get the number of prompts (questions) the server has given.
+ *
+ * You have called ssh_userauth_kbdint() and got SSH_AUTH_INFO. This
+ * function returns the questions from the server.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @returns The number of prompts.
+ */
+int ssh_userauth_kbdint_getnprompts(ssh_session session) {
+ return session->kbdint->nprompts;
+}
+
+/**
+ * @brief Get the "name" of the message block.
+ *
+ * You have called ssh_userauth_kbdint() and got SSH_AUTH_INFO. This
+ * function returns the questions from the server.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @returns The name of the message block. Do not free it.
+ */
+const char *ssh_userauth_kbdint_getname(ssh_session session) {
+ return session->kbdint->name;
+}
+
+/**
+ * @brief Get the "instruction" of the message block.
+ *
+ * You have called ssh_userauth_kbdint() and got SSH_AUTH_INFO. This
+ * function returns the questions from the server.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @returns The instruction of the message block.
+ */
+
+const char *ssh_userauth_kbdint_getinstruction(ssh_session session) {
+ return session->kbdint->instruction;
+}
+
+/**
+ * @brief Get a prompt from a message block.
+ *
+ * You have called ssh_userauth_kbdint() and got SSH_AUTH_INFO. This
+ * function returns the questions from the server.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] i The index number of the i'th prompt.
+ *
+ * @param[in] echo When different of NULL, it will obtain a boolean meaning
+ * that the resulting user input should be echoed or not
+ * (like passwords).
+ *
+ * @returns A pointer to the prompt. Do not free it.
+ */
+const char *ssh_userauth_kbdint_getprompt(ssh_session session, unsigned int i,
+ char *echo) {
+ if (i > session->kbdint->nprompts) {
+ return NULL;
+ }
+
+ if (echo) {
+ *echo = session->kbdint->echo[i];
+ }
+
+ return session->kbdint->prompts[i];
+}
+
+/**
+ * @brief Set the answer for a question from a message block.
+ *
+ * If you have called ssh_userauth_kbdint() and got SSH_AUTH_INFO, this
+ * function returns the questions from the server.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] i index The number of the ith prompt.
+ *
+ * @param[in] answer The answer to give to the server.
+ *
+ * @return 0 on success, < 0 on error.
+ */
+int ssh_userauth_kbdint_setanswer(ssh_session session, unsigned int i,
+ const char *answer) {
+ if (session == NULL || answer == NULL || i > session->kbdint->nprompts) {
+ return -1;
+ }
+
+ if (session->kbdint->answers == NULL) {
+ session->kbdint->answers = malloc(sizeof(char*) * session->kbdint->nprompts);
+ if (session->kbdint->answers == NULL) {
+ return -1;
+ }
+ memset(session->kbdint->answers, 0, sizeof(char *) * session->kbdint->nprompts);
+ }
+
+ if (session->kbdint->answers[i]) {
+ BURN_STRING(session->kbdint->answers[i]);
+ SAFE_FREE(session->kbdint->answers[i]);
+ }
+
+ session->kbdint->answers[i] = strdup(answer);
+ if (session->kbdint->answers[i] == NULL) {
+ return -1;
+ }
+
+ return 0;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/auth1.c b/src/auth1.c
new file mode 100644
index 0000000..06f0549
--- /dev/null
+++ b/src/auth1.c
@@ -0,0 +1,206 @@
+/*
+ * auth1.c - authentication with SSH-1 protocol
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2005-2008 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <stdlib.h>
+
+#include "libssh/priv.h"
+#include "libssh/ssh1.h"
+#include "libssh/buffer.h"
+#include "libssh/packet.h"
+#include "libssh/session.h"
+#include "libssh/string.h"
+
+#ifdef WITH_SSH1
+static int wait_auth1_status(ssh_session session) {
+ enter_function();
+ /* wait for a packet */
+ while(session->auth_state == SSH_AUTH_STATE_NONE)
+ if (ssh_handle_packets(session,-1) != SSH_OK)
+ break;
+ ssh_log(session,SSH_LOG_PROTOCOL,"Auth state : %d",session->auth_state);
+ leave_function();
+ switch(session->auth_state) {
+ case SSH_AUTH_STATE_SUCCESS:
+ return SSH_AUTH_SUCCESS;
+ case SSH_AUTH_STATE_FAILED:
+ return SSH_AUTH_DENIED;
+ default:
+ return SSH_AUTH_ERROR;
+ }
+ return SSH_AUTH_ERROR;
+}
+
+void ssh_auth1_handler(ssh_session session, uint8_t type){
+ if(session->session_state != SSH_SESSION_STATE_AUTHENTICATING){
+ ssh_set_error(session,SSH_FATAL,"SSH_SMSG_SUCCESS or FAILED received in wrong state");
+ return;
+ }
+ if(type==SSH_SMSG_SUCCESS){
+ session->auth_state=SSH_AUTH_STATE_SUCCESS;
+ session->session_state=SSH_SESSION_STATE_AUTHENTICATED;
+ } else if(type==SSH_SMSG_FAILURE)
+ session->auth_state=SSH_AUTH_STATE_FAILED;
+}
+
+static int send_username(ssh_session session, const char *username) {
+ ssh_string user = NULL;
+ /* returns SSH_AUTH_SUCCESS or SSH_AUTH_DENIED */
+ if(session->auth_service_state == SSH_AUTH_SERVICE_USER_SENT) {
+ if(session->auth_state == SSH_AUTH_STATE_FAILED)
+ return SSH_AUTH_DENIED;
+ if(session->auth_state == SSH_AUTH_STATE_SUCCESS)
+ return SSH_AUTH_SUCCESS;
+ return SSH_AUTH_ERROR;
+ }
+
+ if (!username) {
+ if(!(username = session->username)) {
+ if (ssh_options_set(session, SSH_OPTIONS_USER, NULL) < 0) {
+ session->auth_service_state = SSH_AUTH_SERVICE_DENIED;
+ return SSH_ERROR;
+ } else {
+ username = session->username;
+ }
+ }
+ }
+ user = ssh_string_from_char(username);
+ if (user == NULL) {
+ return SSH_AUTH_ERROR;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH_CMSG_USER) < 0) {
+ ssh_string_free(user);
+ return SSH_AUTH_ERROR;
+ }
+ if (buffer_add_ssh_string(session->out_buffer, user) < 0) {
+ ssh_string_free(user);
+ return SSH_AUTH_ERROR;
+ }
+ ssh_string_free(user);
+ session->auth_state=SSH_AUTH_STATE_NONE;
+ if (packet_send(session) == SSH_ERROR) {
+ return SSH_AUTH_ERROR;
+ }
+
+ if(wait_auth1_status(session) == SSH_AUTH_SUCCESS){
+ session->auth_service_state=SSH_AUTH_SERVICE_USER_SENT;
+ session->auth_state=SSH_AUTH_STATE_SUCCESS;
+ return SSH_AUTH_SUCCESS;
+ } else {
+ session->auth_service_state=SSH_AUTH_SERVICE_USER_SENT;
+ ssh_set_error(session,SSH_REQUEST_DENIED,"Password authentication necessary for user %s",username);
+ return SSH_AUTH_DENIED;
+ }
+
+}
+
+/* use the "none" authentication question */
+int ssh_userauth1_none(ssh_session session, const char *username){
+ return send_username(session, username);
+}
+
+/** \internal
+ * \todo implement ssh1 public key
+ */
+int ssh_userauth1_offer_pubkey(ssh_session session, const char *username,
+ int type, ssh_string pubkey) {
+ (void) session;
+ (void) username;
+ (void) type;
+ (void) pubkey;
+ enter_function();
+ leave_function();
+ return SSH_AUTH_DENIED;
+}
+
+int ssh_userauth1_password(ssh_session session, const char *username,
+ const char *password) {
+ ssh_string pwd = NULL;
+ int rc;
+ enter_function();
+ rc = send_username(session, username);
+ if (rc != SSH_AUTH_DENIED) {
+ leave_function();
+ return rc;
+ }
+
+ /* we trick a bit here. A known flaw in SSH1 protocol is that it's
+ * easy to guess password sizes.
+ * not that sure ...
+ */
+
+ /* XXX fix me here ! */
+ /* cisco IOS doesn't like when a password is followed by zeroes and random pad. */
+ if(1 || strlen(password) >= 128) {
+ /* not risky to disclose the size of such a big password .. */
+ pwd = ssh_string_from_char(password);
+ if (pwd == NULL) {
+ leave_function();
+ return SSH_AUTH_ERROR;
+ }
+ } else {
+ /* fill the password string from random things. the strcpy
+ * ensure there is at least a nul byte after the password.
+ * most implementation won't see the garbage at end.
+ * why garbage ? because nul bytes will be compressed by
+ * gzip and disclose password len.
+ */
+ pwd = ssh_string_new(128);
+ if (pwd == NULL) {
+ leave_function();
+ return SSH_AUTH_ERROR;
+ }
+ ssh_get_random( pwd->string, 128, 0);
+ strcpy((char *) pwd->string, password);
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH_CMSG_AUTH_PASSWORD) < 0) {
+ ssh_string_burn(pwd);
+ ssh_string_free(pwd);
+ leave_function();
+ return SSH_AUTH_ERROR;
+ }
+ if (buffer_add_ssh_string(session->out_buffer, pwd) < 0) {
+ ssh_string_burn(pwd);
+ ssh_string_free(pwd);
+ leave_function();
+ return SSH_AUTH_ERROR;
+ }
+
+ ssh_string_burn(pwd);
+ ssh_string_free(pwd);
+ session->auth_state=SSH_AUTH_STATE_NONE;
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return SSH_AUTH_ERROR;
+ }
+ rc = wait_auth1_status(session);
+ leave_function();
+ return rc;
+}
+
+#endif /* WITH_SSH1 */
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/base64.c b/src/base64.c
new file mode 100644
index 0000000..262c97c
--- /dev/null
+++ b/src/base64.c
@@ -0,0 +1,287 @@
+/*
+ * base64.c - support for base64 alphabet system, described in RFC1521
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2005-2005 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/* just the dirtiest part of code i ever made */
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "libssh/priv.h"
+#include "libssh/buffer.h"
+
+static char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "0123456789+/";
+
+/* Transformations */
+#define SET_A(n, i) do { (n) |= ((i) & 63) <<18; } while (0)
+#define SET_B(n, i) do { (n) |= ((i) & 63) <<12; } while (0)
+#define SET_C(n, i) do { (n) |= ((i) & 63) << 6; } while (0)
+#define SET_D(n, i) do { (n) |= ((i) & 63); } while (0)
+
+#define GET_A(n) (((n) & 0xff0000) >> 16)
+#define GET_B(n) (((n) & 0xff00) >> 8)
+#define GET_C(n) ((n) & 0xff)
+
+static int _base64_to_bin(unsigned char dest[3], const char *source, int num);
+static int get_equals(char *string);
+
+/* First part: base64 to binary */
+
+/**
+ * @internal
+ *
+ * @brief Translates a base64 string into a binary one.
+ *
+ * @returns A buffer containing the decoded string, NULL if something went
+ * wrong (e.g. incorrect char).
+ */
+ssh_buffer base64_to_bin(const char *source) {
+ ssh_buffer buffer = NULL;
+ unsigned char block[3];
+ char *base64;
+ char *ptr;
+ size_t len;
+ int equals;
+
+ base64 = strdup(source);
+ if (base64 == NULL) {
+ return NULL;
+ }
+ ptr = base64;
+
+ /* Get the number of equals signs, which mirrors the padding */
+ equals = get_equals(ptr);
+ if (equals > 2) {
+ SAFE_FREE(base64);
+ return NULL;
+ }
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ SAFE_FREE(base64);
+ return NULL;
+ }
+
+ len = strlen(ptr);
+ while (len > 4) {
+ if (_base64_to_bin(block, ptr, 3) < 0) {
+ goto error;
+ }
+ if (buffer_add_data(buffer, block, 3) < 0) {
+ goto error;
+ }
+ len -= 4;
+ ptr += 4;
+ }
+
+ /*
+ * Depending on the number of bytes resting, there are 3 possibilities
+ * from the RFC.
+ */
+ switch (len) {
+ /*
+ * (1) The final quantum of encoding input is an integral multiple of
+ * 24 bits. Here, the final unit of encoded output will be an integral
+ * multiple of 4 characters with no "=" padding
+ */
+ case 4:
+ if (equals != 0) {
+ goto error;
+ }
+ if (_base64_to_bin(block, ptr, 3) < 0) {
+ goto error;
+ }
+ if (buffer_add_data(buffer, block, 3) < 0) {
+ goto error;
+ }
+ SAFE_FREE(base64);
+
+ return buffer;
+ /*
+ * (2) The final quantum of encoding input is exactly 8 bits; here, the
+ * final unit of encoded output will be two characters followed by
+ * two "=" padding characters.
+ */
+ case 2:
+ if (equals != 2){
+ goto error;
+ }
+
+ if (_base64_to_bin(block, ptr, 1) < 0) {
+ goto error;
+ }
+ if (buffer_add_data(buffer, block, 1) < 0) {
+ goto error;
+ }
+ SAFE_FREE(base64);
+
+ return buffer;
+ /*
+ * The final quantum of encoding input is exactly 16 bits. Here, the final
+ * unit of encoded output will be three characters followed by one "="
+ * padding character.
+ */
+ case 3:
+ if (equals != 1) {
+ goto error;
+ }
+ if (_base64_to_bin(block, ptr, 2) < 0) {
+ goto error;
+ }
+ if (buffer_add_data(buffer,block,2) < 0) {
+ goto error;
+ }
+ SAFE_FREE(base64);
+
+ return buffer;
+ default:
+ /* 4,3,2 are the only padding size allowed */
+ goto error;
+ }
+
+error:
+ SAFE_FREE(base64);
+ ssh_buffer_free(buffer);
+ return NULL;
+}
+
+#define BLOCK(letter, n) do {ptr = strchr(alphabet, source[n]); \
+ if(!ptr) return -1; \
+ i = ptr - alphabet; \
+ SET_##letter(*block, i); \
+ } while(0)
+
+/* Returns 0 if ok, -1 if not (ie invalid char into the stuff) */
+static int to_block4(unsigned long *block, const char *source, int num) {
+ char *ptr;
+ unsigned int i;
+
+ *block = 0;
+ if (num < 1) {
+ return 0;
+ }
+
+ BLOCK(A, 0); /* 6 bit */
+ BLOCK(B,1); /* 12 bit */
+
+ if (num < 2) {
+ return 0;
+ }
+
+ BLOCK(C, 2); /* 18 bit */
+
+ if (num < 3) {
+ return 0;
+ }
+
+ BLOCK(D, 3); /* 24 bit */
+
+ return 0;
+}
+
+/* num = numbers of final bytes to be decoded */
+static int _base64_to_bin(unsigned char dest[3], const char *source, int num) {
+ unsigned long block;
+
+ if (to_block4(&block, source, num) < 0) {
+ return -1;
+ }
+ dest[0] = GET_A(block);
+ dest[1] = GET_B(block);
+ dest[2] = GET_C(block);
+
+ return 0;
+}
+
+/* Count the number of "=" signs and replace them by zeroes */
+static int get_equals(char *string) {
+ char *ptr = string;
+ int num = 0;
+
+ while ((ptr=strchr(ptr,'=')) != NULL) {
+ num++;
+ *ptr = '\0';
+ ptr++;
+ }
+
+ return num;
+}
+
+/* thanks sysk for debugging my mess :) */
+#define BITS(n) ((1 << (n)) - 1)
+static void _bin_to_base64(unsigned char *dest, const unsigned char source[3],
+ int len) {
+ switch (len) {
+ case 1:
+ dest[0] = alphabet[(source[0] >> 2)];
+ dest[1] = alphabet[((source[0] & BITS(2)) << 4)];
+ dest[2] = '=';
+ dest[3] = '=';
+ break;
+ case 2:
+ dest[0] = alphabet[source[0] >> 2];
+ dest[1] = alphabet[(source[1] >> 4) | ((source[0] & BITS(2)) << 4)];
+ dest[2] = alphabet[(source[1] & BITS(4)) << 2];
+ dest[3] = '=';
+ break;
+ case 3:
+ dest[0] = alphabet[(source[0] >> 2)];
+ dest[1] = alphabet[(source[1] >> 4) | ((source[0] & BITS(2)) << 4)];
+ dest[2] = alphabet[ (source[2] >> 6) | (source[1] & BITS(4)) << 2];
+ dest[3] = alphabet[source[2] & BITS(6)];
+ break;
+ }
+}
+
+/**
+ * @internal
+ *
+ * @brief Converts binary data to a base64 string.
+ *
+ * @returns the converted string
+ */
+unsigned char *bin_to_base64(const unsigned char *source, int len) {
+ unsigned char *base64;
+ unsigned char *ptr;
+ int flen = len + (3 - (len % 3)); /* round to upper 3 multiple */
+ flen = (4 * flen) / 3 + 1;
+
+ base64 = malloc(flen);
+ if (base64 == NULL) {
+ return NULL;
+ }
+ ptr = base64;
+
+ while(len > 0){
+ _bin_to_base64(ptr, source, len > 3 ? 3 : len);
+ ptr += 4;
+ source += 3;
+ len -= 3;
+ }
+ ptr[0] = '\0';
+
+ return base64;
+}
+
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/buffer.c b/src/buffer.c
new file mode 100644
index 0000000..80c9956
--- /dev/null
+++ b/src/buffer.c
@@ -0,0 +1,578 @@
+/*
+ * buffer.c - buffer functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2009 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/priv.h"
+#include "libssh/buffer.h"
+
+/**
+ * @defgroup libssh_buffer The SSH buffer functions.
+ * @ingroup libssh
+ *
+ * Functions to handle SSH buffers.
+ *
+ * @{
+ */
+
+
+#ifdef DEBUG_BUFFER
+/**
+ * @internal
+ *
+ * @brief Check that preconditions and postconditions are valid.
+ *
+ * @param[in] buf The buffer to check.
+ */
+static void buffer_verify(struct buffer_struct *buf){
+ int doabort=0;
+ if(buf->data == NULL)
+ return;
+ if(buf->used > buf->allocated){
+ fprintf(stderr,"Buffer error : allocated %u, used %u\n",buf->allocated, buf->used);
+ doabort=1;
+ }
+ if(buf->pos > buf->used){
+ fprintf(stderr,"Buffer error : position %u, used %u\n",buf->pos, buf->used);
+ doabort=1;
+ }
+ if(buf->pos > buf->allocated){
+ fprintf(stderr,"Buffer error : position %u, allocated %u\n",buf->pos, buf->allocated);
+ doabort=1;
+ }
+ if(doabort)
+ abort();
+}
+
+#else
+#define buffer_verify(x)
+#endif
+
+/**
+ * @brief Create a new SSH buffer.
+ *
+ * @return A newly initialized SSH buffer, NULL on error.
+ */
+struct ssh_buffer_struct *ssh_buffer_new(void) {
+ struct ssh_buffer_struct *buf = malloc(sizeof(struct ssh_buffer_struct));
+
+ if (buf == NULL) {
+ return NULL;
+ }
+ memset(buf, 0, sizeof(struct ssh_buffer_struct));
+ buffer_verify(buf);
+ return buf;
+}
+
+/**
+ * @brief Deallocate a SSH buffer.
+ *
+ * \param[in] buffer The buffer to free.
+ */
+void ssh_buffer_free(struct ssh_buffer_struct *buffer) {
+ if (buffer == NULL) {
+ return;
+ }
+ buffer_verify(buffer);
+
+ if (buffer->data) {
+ /* burn the data */
+ memset(buffer->data, 0, buffer->allocated);
+ SAFE_FREE(buffer->data);
+ }
+ memset(buffer, 'X', sizeof(*buffer));
+ SAFE_FREE(buffer);
+}
+
+static int realloc_buffer(struct ssh_buffer_struct *buffer, int needed) {
+ int smallest = 1;
+ char *new = NULL;
+ buffer_verify(buffer);
+ /* Find the smallest power of two which is greater or equal to needed */
+ while(smallest < needed) {
+ smallest <<= 1;
+ }
+ needed = smallest;
+ new = realloc(buffer->data, needed);
+ if (new == NULL) {
+ return -1;
+ }
+ buffer->data = new;
+ buffer->allocated = needed;
+ buffer_verify(buffer);
+ return 0;
+}
+
+/**
+ * @internal
+ *
+ * @brief Reinitialize a SSH buffer.
+ *
+ * @param[in] buffer The buffer to reinitialize.
+ *
+ * @return 0 on success, < 0 on error.
+ */
+int buffer_reinit(struct ssh_buffer_struct *buffer) {
+ buffer_verify(buffer);
+ memset(buffer->data, 0, buffer->used);
+ buffer->used = 0;
+ buffer->pos = 0;
+ if(buffer->allocated > 127) {
+ if (realloc_buffer(buffer, 127) < 0) {
+ return -1;
+ }
+ }
+ buffer_verify(buffer);
+ return 0;
+}
+
+/**
+ * @internal
+ *
+ * @brief Add data at the tail of a buffer.
+ *
+ * @param[in] buffer The buffer to add the data.
+ *
+ * @param[in] data A pointer to the data to add.
+ *
+ * @param[in] len The length of the data to add.
+ *
+ * @return 0 on success, < 0 on error.
+ */
+int buffer_add_data(struct ssh_buffer_struct *buffer, const void *data, uint32_t len) {
+ buffer_verify(buffer);
+ if (buffer->allocated < (buffer->used + len)) {
+ if (realloc_buffer(buffer, buffer->used + len) < 0) {
+ return -1;
+ }
+ }
+
+ memcpy(buffer->data+buffer->used, data, len);
+ buffer->used+=len;
+ buffer_verify(buffer);
+ return 0;
+}
+
+/**
+ * @internal
+ *
+ * @brief Add a SSH string to the tail of a buffer.
+ *
+ * @param[in] buffer The buffer to add the string.
+ *
+ * @param[in] string The SSH String to add.
+ *
+ * @return 0 on success, < 0 on error.
+ */
+int buffer_add_ssh_string(struct ssh_buffer_struct *buffer,
+ struct ssh_string_struct *string) {
+ uint32_t len = 0;
+
+ len = ssh_string_len(string);
+ if (buffer_add_data(buffer, string, len + sizeof(uint32_t)) < 0) {
+ return -1;
+ }
+
+ return 0;
+}
+
+/**
+ * @internal
+ *
+ * @brief Add a 32 bits unsigned integer to the tail of a buffer.
+ *
+ * @param[in] buffer The buffer to add the integer.
+ *
+ * @param[in] data The 32 bits integer to add.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int buffer_add_u32(struct ssh_buffer_struct *buffer,uint32_t data){
+ if (buffer_add_data(buffer, &data, sizeof(data)) < 0) {
+ return -1;
+ }
+
+ return 0;
+}
+
+/**
+ * @internal
+ *
+ * @brief Add a 16 bits unsigned integer to the tail of a buffer.
+ *
+ * @param[in] buffer The buffer to add the integer.
+ *
+ * @param[in] data The 16 bits integer to add.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int buffer_add_u16(struct ssh_buffer_struct *buffer,uint16_t data){
+ if (buffer_add_data(buffer, &data, sizeof(data)) < 0) {
+ return -1;
+ }
+
+ return 0;
+}
+
+/**
+ * @internal
+ *
+ * @brief Add a 64 bits unsigned integer to the tail of a buffer.
+ *
+ * @param[in] buffer The buffer to add the integer.
+ *
+ * @param[in] data The 64 bits integer to add.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int buffer_add_u64(struct ssh_buffer_struct *buffer, uint64_t data){
+ if (buffer_add_data(buffer, &data, sizeof(data)) < 0) {
+ return -1;
+ }
+
+ return 0;
+}
+
+/**
+ * @internal
+ *
+ * @brief Add a 8 bits unsigned integer to the tail of a buffer.
+ *
+ * @param[in] buffer The buffer to add the integer.
+ *
+ * @param[in] data The 8 bits integer to add.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int buffer_add_u8(struct ssh_buffer_struct *buffer,uint8_t data){
+ if (buffer_add_data(buffer, &data, sizeof(uint8_t)) < 0) {
+ return -1;
+ }
+
+ return 0;
+}
+
+/**
+ * @internal
+ *
+ * @brief Add data at the head of a buffer.
+ *
+ * @param[in] buffer The buffer to add the data.
+ *
+ * @param[in] data The data to prepend.
+ *
+ * @param[in] len The length of data to prepend.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int buffer_prepend_data(struct ssh_buffer_struct *buffer, const void *data,
+ uint32_t len) {
+ buffer_verify(buffer);
+ if (buffer->allocated < (buffer->used + len)) {
+ if (realloc_buffer(buffer, buffer->used + len) < 0) {
+ return -1;
+ }
+ }
+ memmove(buffer->data + len, buffer->data, buffer->used);
+ memcpy(buffer->data, data, len);
+ buffer->used += len;
+ buffer_verify(buffer);
+ return 0;
+}
+
+/**
+ * @internal
+ *
+ * @brief Append data from a buffer to the tail of another buffer.
+ *
+ * @param[in] buffer The destination buffer.
+ *
+ * @param[in] source The source buffer to append. It doesn't take the
+ * position of the buffer into account.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int buffer_add_buffer(struct ssh_buffer_struct *buffer,
+ struct ssh_buffer_struct *source) {
+ if (buffer_add_data(buffer, ssh_buffer_get_begin(source), ssh_buffer_get_len(source)) < 0) {
+ return -1;
+ }
+
+ return 0;
+}
+
+/**
+ * @brief Get a pointer on the head of a buffer.
+ *
+ * @param[in] buffer The buffer to get the head pointer.
+ *
+ * @return A data pointer on the head. It doesn't take the position
+ * into account.
+ *
+ * @warning Don't expect data to be nul-terminated.
+ *
+ * @see buffer_get_rest()
+ * @see buffer_get_len()
+ */
+void *ssh_buffer_get_begin(struct ssh_buffer_struct *buffer){
+ return buffer->data;
+}
+
+/**
+ * @internal
+ *
+ * @brief Get a pointer to the head of a buffer at the current position.
+ *
+ * @param[in] buffer The buffer to get the head pointer.
+ *
+ * @return A pointer to the data from current position.
+ *
+ * @see buffer_get_rest_len()
+ * @see buffer_get()
+ */
+void *buffer_get_rest(struct ssh_buffer_struct *buffer){
+ return buffer->data + buffer->pos;
+}
+
+/**
+ * @brief Get the length of the buffer, not counting position.
+ *
+ * @param[in] buffer The buffer to get the length from.
+ *
+ * @return The length of the buffer.
+ *
+ * @see buffer_get()
+ */
+uint32_t ssh_buffer_get_len(struct ssh_buffer_struct *buffer){
+ return buffer->used;
+}
+
+/**
+ * @internal
+ *
+ * @brief Get the length of the buffer from the current position.
+ *
+ * @param[in] buffer The buffer to get the length from.
+ *
+ * @return The length of the buffer.
+ *
+ * @see buffer_get_rest()
+ */
+uint32_t buffer_get_rest_len(struct ssh_buffer_struct *buffer){
+ buffer_verify(buffer);
+ return buffer->used - buffer->pos;
+}
+
+/**
+ * @internal
+ *
+ * @brief Advance the position in the buffer.
+ *
+ * This has effect to "eat" bytes at head of the buffer.
+ *
+ * @param[in] buffer The buffer to advance the position.
+ *
+ * @param[in] len The number of bytes to eat.
+ *
+ * @return The new size of the buffer.
+ */
+uint32_t buffer_pass_bytes(struct ssh_buffer_struct *buffer, uint32_t len){
+ buffer_verify(buffer);
+ if(buffer->used < buffer->pos+len)
+ return 0;
+ buffer->pos+=len;
+ /* if the buffer is empty after having passed the whole bytes into it, we can clean it */
+ if(buffer->pos==buffer->used){
+ buffer->pos=0;
+ buffer->used=0;
+ }
+ buffer_verify(buffer);
+ return len;
+}
+
+/**
+ * @internal
+ *
+ * @brief Cut the end of the buffer.
+ *
+ * @param[in] buffer The buffer to cut.
+ *
+ * @param[in] len The number of bytes to remove from the tail.
+ *
+ * @return The new size of the buffer.
+ */
+uint32_t buffer_pass_bytes_end(struct ssh_buffer_struct *buffer, uint32_t len){
+ buffer_verify(buffer);
+ if(buffer->used < buffer->pos + len)
+ return 0;
+ buffer->used-=len;
+ buffer_verify(buffer);
+ return len;
+}
+
+/**
+ * @internal
+ *
+ * @brief Get the remaining data out of the buffer and adjust the read pointer.
+ *
+ * @param[in] buffer The buffer to read.
+ *
+ * @param[in] data The data buffer where to store the data.
+ *
+ * @param[in] len The length to read from the buffer.
+ *
+ * @returns 0 if there is not enough data in buffer, len otherwise.
+ */
+uint32_t buffer_get_data(struct ssh_buffer_struct *buffer, void *data, uint32_t len){
+ /*
+ * Check for a integer overflow first, then check if not enough data is in
+ * the buffer.
+ */
+ if (buffer->pos + len < len || buffer->pos + len > buffer->used) {
+ return 0;
+ }
+ memcpy(data,buffer->data+buffer->pos,len);
+ buffer->pos+=len;
+ return len; /* no yet support for partial reads (is it really needed ?? ) */
+}
+
+/**
+ * @internal
+ *
+ * @brief Get a 8 bits unsigned int out of the buffer and adjusts the read
+ * pointer.
+ *
+ * @param[in] buffer The buffer to read.
+ *
+ * @param[in] data A pointer to a uint8_t where to store the data.
+ *
+ * @returns 0 if there is not enough data in buffer, 1 otherwise.
+ */
+int buffer_get_u8(struct ssh_buffer_struct *buffer, uint8_t *data){
+ return buffer_get_data(buffer,data,sizeof(uint8_t));
+}
+
+/** \internal
+ * \brief gets a 32 bits unsigned int out of the buffer. Adjusts the read pointer.
+ * \param buffer Buffer to read
+ * \param data pointer to a uint32_t where to store the data
+ * \returns 0 if there is not enough data in buffer
+ * \returns 4 otherwise.
+ */
+int buffer_get_u32(struct ssh_buffer_struct *buffer, uint32_t *data){
+ return buffer_get_data(buffer,data,sizeof(uint32_t));
+}
+/**
+ * @internal
+ *
+ * @brief Get a 64 bits unsigned int out of the buffer and adjusts the read
+ * pointer.
+ *
+ * @param[in] buffer The buffer to read.
+ *
+ * @param[in] data A pointer to a uint64_t where to store the data.
+ *
+ * @returns 0 if there is not enough data in buffer, 8 otherwise.
+ */
+int buffer_get_u64(struct ssh_buffer_struct *buffer, uint64_t *data){
+ return buffer_get_data(buffer,data,sizeof(uint64_t));
+}
+
+/**
+ * @internal
+ *
+ * @brief Get a SSH String out of the buffer and adjusts the read pointer.
+ *
+ * @param[in] buffer The buffer to read.
+ *
+ * @returns The SSH String, NULL on error.
+ */
+struct ssh_string_struct *buffer_get_ssh_string(struct ssh_buffer_struct *buffer) {
+ uint32_t stringlen;
+ uint32_t hostlen;
+ struct ssh_string_struct *str = NULL;
+
+ if (buffer_get_u32(buffer, &stringlen) == 0) {
+ return NULL;
+ }
+ hostlen = ntohl(stringlen);
+ /* verify if there is enough space in buffer to get it */
+ if ((buffer->pos + hostlen) > buffer->used) {
+ return NULL; /* it is indeed */
+ }
+ str = ssh_string_new(hostlen);
+ if (str == NULL) {
+ return NULL;
+ }
+ if (buffer_get_data(buffer, ssh_string_data(str), hostlen) != hostlen) {
+ /* should never happen */
+ SAFE_FREE(str);
+ return NULL;
+ }
+
+ return str;
+}
+
+/**
+ * @internal
+ *
+ * @brief Get a mpint out of the buffer and adjusts the read pointer.
+ *
+ * @note This function is SSH-1 only.
+ *
+ * @param[in] buffer The buffer to read.
+ *
+ * @returns The SSH String containing the mpint, NULL on error.
+ */
+struct ssh_string_struct *buffer_get_mpint(struct ssh_buffer_struct *buffer) {
+ uint16_t bits;
+ uint32_t len;
+ struct ssh_string_struct *str = NULL;
+
+ if (buffer_get_data(buffer, &bits, sizeof(uint16_t)) != sizeof(uint16_t)) {
+ return NULL;
+ }
+ bits = ntohs(bits);
+ len = (bits + 7) / 8;
+ if ((buffer->pos + len) > buffer->used) {
+ return NULL;
+ }
+ str = ssh_string_new(len);
+ if (str == NULL) {
+ return NULL;
+ }
+ if (buffer_get_data(buffer, ssh_string_data(str), len) != len) {
+ SAFE_FREE(str);
+ return NULL;
+ }
+ return str;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/callbacks.c b/src/callbacks.c
new file mode 100644
index 0000000..1568d51
--- /dev/null
+++ b/src/callbacks.c
@@ -0,0 +1,43 @@
+/*
+ * callbacks.c - callback functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include "libssh/callbacks.h"
+#include "libssh/session.h"
+
+int ssh_set_callbacks(ssh_session session, ssh_callbacks cb) {
+ if (session == NULL || cb == NULL) {
+ return SSH_ERROR;
+ }
+ enter_function();
+ if(cb->size <= 0 || cb->size > 1024 * sizeof(void *)){
+ ssh_set_error(session,SSH_FATAL,
+ "Invalid callback passed in (badly initialized)");
+ leave_function();
+ return SSH_ERROR;
+ }
+ session->callbacks = cb;
+ leave_function();
+ return 0;
+}
diff --git a/src/channels.c b/src/channels.c
new file mode 100644
index 0000000..6900bee
--- /dev/null
+++ b/src/channels.c
@@ -0,0 +1,2495 @@
+/*
+ * channels.c - SSH channel functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2008 by Aris Adamantiadis
+ * Copyright (c) 2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+#include <time.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/priv.h"
+#include "libssh/ssh2.h"
+#include "libssh/buffer.h"
+#include "libssh/packet.h"
+#include "libssh/socket.h"
+#include "libssh/channels.h"
+#include "libssh/session.h"
+#include "libssh/misc.h"
+#include "libssh/messages.h"
+
+#define WINDOWBASE 128000
+#define WINDOWLIMIT (WINDOWBASE/2)
+
+/**
+ * @defgroup libssh_channel The SSH channel functions
+ * @ingroup libssh
+ *
+ * Functions that manage a SSH channel.
+ *
+ * @{
+ */
+
+static ssh_channel channel_from_msg(ssh_session session, ssh_buffer packet);
+
+/**
+ * @brief Allocate a new channel.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @return A pointer to a newly allocated channel, NULL on error.
+ */
+ssh_channel ssh_channel_new(ssh_session session) {
+ ssh_channel channel = NULL;
+
+ channel = malloc(sizeof(struct ssh_channel_struct));
+ if (channel == NULL) {
+ return NULL;
+ }
+ memset(channel,0,sizeof(struct ssh_channel_struct));
+
+ channel->stdout_buffer = ssh_buffer_new();
+ if (channel->stdout_buffer == NULL) {
+ SAFE_FREE(channel);
+ return NULL;
+ }
+
+ channel->stderr_buffer = ssh_buffer_new();
+ if (channel->stderr_buffer == NULL) {
+ ssh_buffer_free(channel->stdout_buffer);
+ SAFE_FREE(channel);
+ return NULL;
+ }
+
+ channel->session = session;
+ channel->version = session->version;
+ channel->exit_status = -1;
+
+ if(session->channels == NULL) {
+ session->channels = channel;
+ channel->next = channel->prev = channel;
+ return channel;
+ }
+ channel->next = session->channels;
+ channel->prev = session->channels->prev;
+ channel->next->prev = channel;
+ channel->prev->next = channel;
+
+ return channel;
+}
+
+/**
+ * @internal
+ *
+ * @brief Create a new channel identifier.
+ *
+ * @param[in] session The SSH session to use.
+ *
+ * @return The new channel identifier.
+ */
+uint32_t ssh_channel_new_id(ssh_session session) {
+ return ++(session->maxchannel);
+}
+
+/**
+ * @internal
+ *
+ * @brief Handle a SSH_PACKET_CHANNEL_OPEN_CONFIRMATION packet.
+ *
+ * Constructs the channel object.
+ */
+SSH_PACKET_CALLBACK(ssh_packet_channel_open_conf){
+ uint32_t channelid=0;
+ uint32_t tmp;
+ ssh_channel channel;
+ (void)type;
+ (void)user;
+ enter_function();
+ ssh_log(session,SSH_LOG_PACKET,"Received SSH2_MSG_CHANNEL_OPEN_CONFIRMATION");
+
+ buffer_get_u32(packet, &channelid);
+ channelid=ntohl(channelid);
+ channel=ssh_channel_from_local(session,channelid);
+ if(channel==NULL){
+ ssh_set_error(session, SSH_FATAL,
+ "Unknown channel id %lu",
+ (long unsigned int) channelid);
+ /* TODO: Set error marking in channel object */
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ buffer_get_u32(packet, &tmp);
+ channel->remote_channel = ntohl(tmp);
+
+ buffer_get_u32(packet, &tmp);
+ channel->remote_window = ntohl(tmp);
+
+ buffer_get_u32(packet,&tmp);
+ channel->remote_maxpacket=ntohl(tmp);
+
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Received a CHANNEL_OPEN_CONFIRMATION for channel %d:%d",
+ channel->local_channel,
+ channel->remote_channel);
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Remote window : %lu, maxpacket : %lu",
+ (long unsigned int) channel->remote_window,
+ (long unsigned int) channel->remote_maxpacket);
+
+ channel->state = SSH_CHANNEL_STATE_OPEN;
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ *
+ * @brief Handle a SSH_CHANNEL_OPEN_FAILURE and set the state of the channel.
+ */
+SSH_PACKET_CALLBACK(ssh_packet_channel_open_fail){
+
+ ssh_channel channel;
+ ssh_string error_s;
+ char *error = NULL;
+ uint32_t code;
+ (void)user;
+ (void)type;
+ channel=channel_from_msg(session,packet);
+ if(channel==NULL){
+ ssh_log(session,SSH_LOG_RARE,"Invalid channel in packet");
+ return SSH_PACKET_USED;
+ }
+ buffer_get_u32(packet, &code);
+
+ error_s = buffer_get_ssh_string(packet);
+ if(error_s != NULL)
+ error = ssh_string_to_char(error_s);
+ ssh_string_free(error_s);
+ if (error == NULL) {
+ ssh_set_error_oom(session);
+ return SSH_PACKET_USED;
+ }
+
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Channel opening failure: channel %u error (%lu) %s",
+ channel->local_channel,
+ (long unsigned int) ntohl(code),
+ error);
+ SAFE_FREE(error);
+ channel->state=SSH_CHANNEL_STATE_OPEN_DENIED;
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ *
+ * @brief Open a channel by sending a SSH_OPEN_CHANNEL message and
+ * wait for the reply.
+ *
+ * @param[in] channel The current channel.
+ *
+ * @param[in] type_c A C string describing the kind of channel (e.g. "exec").
+ *
+ * @param[in] window The receiving window of the channel. The window is the
+ * maximum size of data that can stay in buffers and
+ * network.
+ *
+ * @param[in] maxpacket The maximum packet size allowed (like MTU).
+ *
+ * @param[in] payload The buffer containing additional payload for the query.
+ */
+static int channel_open(ssh_channel channel, const char *type_c, int window,
+ int maxpacket, ssh_buffer payload) {
+ ssh_session session = channel->session;
+ ssh_string type = NULL;
+ int err=SSH_ERROR;
+
+ enter_function();
+ channel->local_channel = ssh_channel_new_id(session);
+ channel->local_maxpacket = maxpacket;
+ channel->local_window = window;
+
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Creating a channel %d with %d window and %d max packet",
+ channel->local_channel, window, maxpacket);
+
+ type = ssh_string_from_char(type_c);
+ if (type == NULL) {
+ leave_function();
+ return err;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_CHANNEL_OPEN) < 0 ||
+ buffer_add_ssh_string(session->out_buffer,type) < 0 ||
+ buffer_add_u32(session->out_buffer, htonl(channel->local_channel)) < 0 ||
+ buffer_add_u32(session->out_buffer, htonl(channel->local_window)) < 0 ||
+ buffer_add_u32(session->out_buffer, htonl(channel->local_maxpacket)) < 0) {
+ ssh_string_free(type);
+ leave_function();
+ return err;
+ }
+
+ ssh_string_free(type);
+
+ if (payload != NULL) {
+ if (buffer_add_buffer(session->out_buffer, payload) < 0) {
+ leave_function();
+ return err;
+ }
+ }
+
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return err;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Sent a SSH_MSG_CHANNEL_OPEN type %s for channel %d",
+ type_c, channel->local_channel);
+
+ /* Todo: fix this into a correct loop */
+ /* wait until channel is opened by server */
+ while(channel->state == SSH_CHANNEL_STATE_NOT_OPEN){
+ ssh_handle_packets(session,-1);
+ }
+ if(channel->state == SSH_CHANNEL_STATE_OPEN)
+ err=SSH_OK;
+ leave_function();
+ return err;
+}
+
+/* get ssh channel from local session? */
+ssh_channel ssh_channel_from_local(ssh_session session, uint32_t id) {
+ ssh_channel initchan = session->channels;
+ ssh_channel channel;
+
+ /* We assume we are always the local */
+ if (initchan == NULL) {
+ return NULL;
+ }
+
+ for (channel = initchan; channel->local_channel != id;
+ channel=channel->next) {
+ if (channel->next == initchan) {
+ return NULL;
+ }
+ }
+
+ return channel;
+}
+
+static int grow_window(ssh_session session, ssh_channel channel, int minimumsize) {
+ uint32_t new_window = minimumsize > WINDOWBASE ? minimumsize : WINDOWBASE;
+
+ enter_function();
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_CHANNEL_WINDOW_ADJUST) < 0 ||
+ buffer_add_u32(session->out_buffer, htonl(channel->remote_channel)) < 0 ||
+ buffer_add_u32(session->out_buffer, htonl(new_window)) < 0) {
+ goto error;
+ }
+
+ if (packet_send(session) == SSH_ERROR) {
+ /* FIXME should we fail here or not? */
+ leave_function();
+ return 1;
+ }
+
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "growing window (channel %d:%d) to %d bytes",
+ channel->local_channel,
+ channel->remote_channel,
+ channel->local_window + new_window);
+
+ channel->local_window += new_window;
+
+ leave_function();
+ return 0;
+error:
+ buffer_reinit(session->out_buffer);
+
+ leave_function();
+ return -1;
+}
+
+/**
+ * @internal
+ *
+ * @brief Parse a channel-related packet to resolve it to a ssh_channel.
+ *
+ * This works on SSH1 sessions too.
+ *
+ * @param[in] session The current SSH session.
+ *
+ * @param[in] packet The buffer to parse packet from. The read pointer will
+ * be moved after the call.
+ *
+ * @returns The related ssh_channel, or NULL if the channel is
+ * unknown or the packet is invalid.
+ */
+static ssh_channel channel_from_msg(ssh_session session, ssh_buffer packet) {
+ ssh_channel channel;
+ uint32_t chan;
+#ifdef WITH_SSH1
+ /* With SSH1, the channel is always the first one */
+ if(session->version==1)
+ return session->channels;
+#endif
+ if (buffer_get_u32(packet, &chan) != sizeof(uint32_t)) {
+ ssh_set_error(session, SSH_FATAL,
+ "Getting channel from message: short read");
+ return NULL;
+ }
+
+ channel = ssh_channel_from_local(session, ntohl(chan));
+ if (channel == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Server specified invalid channel %lu",
+ (long unsigned int) ntohl(chan));
+ }
+
+ return channel;
+}
+
+SSH_PACKET_CALLBACK(channel_rcv_change_window) {
+ ssh_channel channel;
+ uint32_t bytes;
+ int rc;
+ (void)user;
+ (void)type;
+ enter_function();
+
+ channel = channel_from_msg(session,packet);
+ if (channel == NULL) {
+ ssh_log(session, SSH_LOG_FUNCTIONS, "%s", ssh_get_error(session));
+ }
+
+ rc = buffer_get_u32(packet, &bytes);
+ if (channel == NULL || rc != sizeof(uint32_t)) {
+ ssh_log(session, SSH_LOG_PACKET,
+ "Error getting a window adjust message: invalid packet");
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ bytes = ntohl(bytes);
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Adding %d bytes to channel (%d:%d) (from %d bytes)",
+ bytes,
+ channel->local_channel,
+ channel->remote_channel,
+ channel->remote_window);
+
+ channel->remote_window += bytes;
+
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/* is_stderr is set to 1 if the data are extended, ie stderr */
+SSH_PACKET_CALLBACK(channel_rcv_data){
+ ssh_channel channel;
+ ssh_string str;
+ size_t len;
+ int is_stderr;
+ (void)user;
+ enter_function();
+ if(type==SSH2_MSG_CHANNEL_DATA)
+ is_stderr=0;
+ else
+ is_stderr=1;
+
+ channel = channel_from_msg(session,packet);
+ if (channel == NULL) {
+ ssh_log(session, SSH_LOG_FUNCTIONS,
+ "%s", ssh_get_error(session));
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ if (is_stderr) {
+ uint32_t ignore;
+ /* uint32 data type code. we can ignore it */
+ buffer_get_u32(packet, &ignore);
+ }
+
+ str = buffer_get_ssh_string(packet);
+ if (str == NULL) {
+ ssh_log(session, SSH_LOG_PACKET, "Invalid data packet!");
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+ len = ssh_string_len(str);
+
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Channel receiving %zu bytes data in %d (local win=%d remote win=%d)",
+ len,
+ is_stderr,
+ channel->local_window,
+ channel->remote_window);
+
+ /* What shall we do in this case? Let's accept it anyway */
+ if (len > channel->local_window) {
+ ssh_log(session, SSH_LOG_RARE,
+ "Data packet too big for our window(%zu vs %d)",
+ len,
+ channel->local_window);
+ }
+
+ if (channel_default_bufferize(channel, ssh_string_data(str), len,
+ is_stderr) < 0) {
+ ssh_string_free(str);
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ if (len <= channel->local_window) {
+ channel->local_window -= len;
+ } else {
+ channel->local_window = 0; /* buggy remote */
+ }
+
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Channel windows are now (local win=%d remote win=%d)",
+ channel->local_window,
+ channel->remote_window);
+
+ ssh_string_free(str);
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+SSH_PACKET_CALLBACK(channel_rcv_eof) {
+ ssh_channel channel;
+ (void)user;
+ (void)type;
+ enter_function();
+
+ channel = channel_from_msg(session,packet);
+ if (channel == NULL) {
+ ssh_log(session, SSH_LOG_FUNCTIONS, "%s", ssh_get_error(session));
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Received eof on channel (%d:%d)",
+ channel->local_channel,
+ channel->remote_channel);
+ /* channel->remote_window = 0; */
+ channel->remote_eof = 1;
+
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+SSH_PACKET_CALLBACK(channel_rcv_close) {
+ ssh_channel channel;
+ (void)user;
+ (void)type;
+ enter_function();
+
+ channel = channel_from_msg(session,packet);
+ if (channel == NULL) {
+ ssh_log(session, SSH_LOG_FUNCTIONS, "%s", ssh_get_error(session));
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Received close on channel (%d:%d)",
+ channel->local_channel,
+ channel->remote_channel);
+
+ if ((channel->stdout_buffer &&
+ buffer_get_rest_len(channel->stdout_buffer) > 0) ||
+ (channel->stderr_buffer &&
+ buffer_get_rest_len(channel->stderr_buffer) > 0)) {
+ channel->delayed_close = 1;
+ } else {
+ channel->state = SSH_CHANNEL_STATE_CLOSED;
+ }
+
+ if (channel->remote_eof == 0) {
+ ssh_log(session, SSH_LOG_PACKET,
+ "Remote host not polite enough to send an eof before close");
+ }
+ channel->remote_eof = 1;
+ /*
+ * The remote eof doesn't break things if there was still data into read
+ * buffer because the eof is ignored until the buffer is empty.
+ */
+
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+SSH_PACKET_CALLBACK(channel_rcv_request) {
+ ssh_channel channel;
+ ssh_string request_s;
+ char *request;
+ uint32_t status;
+ (void)user;
+ (void)type;
+
+ enter_function();
+
+ channel = channel_from_msg(session,packet);
+ if (channel == NULL) {
+ ssh_log(session, SSH_LOG_FUNCTIONS,"%s", ssh_get_error(session));
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ request_s = buffer_get_ssh_string(packet);
+ if (request_s == NULL) {
+ ssh_log(session, SSH_LOG_PACKET, "Invalid MSG_CHANNEL_REQUEST");
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ request = ssh_string_to_char(request_s);
+ ssh_string_free(request_s);
+ if (request == NULL) {
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ buffer_get_u8(packet, (uint8_t *) &status);
+
+ if (strcmp(request,"exit-status") == 0) {
+ SAFE_FREE(request);
+ ssh_log(session, SSH_LOG_PACKET, "received exit-status");
+ buffer_get_u32(packet, &status);
+ channel->exit_status = ntohl(status);
+
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ if (strcmp(request, "exit-signal") == 0) {
+ const char *core = "(core dumped)";
+ ssh_string signal_s;
+ char *sig;
+ uint8_t i;
+
+ SAFE_FREE(request);
+
+ signal_s = buffer_get_ssh_string(packet);
+ if (signal_s == NULL) {
+ ssh_log(session, SSH_LOG_PACKET, "Invalid MSG_CHANNEL_REQUEST");
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ sig = ssh_string_to_char(signal_s);
+ ssh_string_free(signal_s);
+ if (sig == NULL) {
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ buffer_get_u8(packet, &i);
+ if (i == 0) {
+ core = "";
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Remote connection closed by signal SIG %s %s", sig, core);
+ SAFE_FREE(sig);
+
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+ if(strcmp(request,"keepalive@openssh.com")==0){
+ SAFE_FREE(request);
+ ssh_log(session, SSH_LOG_PROTOCOL,"Responding to Openssh's keepalive");
+ buffer_add_u8(session->out_buffer, SSH2_MSG_CHANNEL_FAILURE);
+ buffer_add_u32(session->out_buffer, htonl(channel->remote_channel));
+ packet_send(session);
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ /* If we are here, that means we have a request that is not in the understood
+ * client requests. That means we need to create a ssh message to be passed
+ * to the user code handling ssh messages
+ */
+ ssh_message_handle_channel_request(session,channel,packet,request,status);
+
+ SAFE_FREE(request);
+
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/*
+ * When data has been received from the ssh server, it can be applied to the
+ * known user function, with help of the callback, or inserted here
+ *
+ * FIXME is the window changed?
+ */
+int channel_default_bufferize(ssh_channel channel, void *data, int len,
+ int is_stderr) {
+ ssh_session session = channel->session;
+
+ ssh_log(session, SSH_LOG_RARE,
+ "placing %d bytes into channel buffer (stderr=%d)", len, is_stderr);
+ if (is_stderr == 0) {
+ /* stdout */
+ if (channel->stdout_buffer == NULL) {
+ channel->stdout_buffer = ssh_buffer_new();
+ if (channel->stdout_buffer == NULL) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+ }
+
+ if (buffer_add_data(channel->stdout_buffer, data, len) < 0) {
+ ssh_buffer_free(channel->stdout_buffer);
+ channel->stdout_buffer = NULL;
+ return -1;
+ }
+ } else {
+ /* stderr */
+ if (channel->stderr_buffer == NULL) {
+ channel->stderr_buffer = ssh_buffer_new();
+ if (channel->stderr_buffer == NULL) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+ }
+
+ if (buffer_add_data(channel->stderr_buffer, data, len) < 0) {
+ ssh_buffer_free(channel->stderr_buffer);
+ channel->stderr_buffer = NULL;
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+/**
+ * @brief Open a session channel (suited for a shell, not TCP forwarding).
+ *
+ * @param[in] channel An allocated channel.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ *
+ * @see channel_open_forward()
+ * @see channel_request_env()
+ * @see channel_request_shell()
+ * @see channel_request_exec()
+ */
+int ssh_channel_open_session(ssh_channel channel) {
+#ifdef WITH_SSH1
+ if (channel->session->version == 1) {
+ return channel_open_session1(channel);
+ }
+#endif
+
+ return channel_open(channel,"session",64000,32000,NULL);
+}
+
+/**
+ * @brief Open a TCP/IP forwarding channel.
+ *
+ * @param[in] channel An allocated channel.
+ *
+ * @param[in] remotehost The remote host to connected (host name or IP).
+ *
+ * @param[in] remoteport The remote port.
+ *
+ * @param[in] sourcehost The source host (your local computer). It's optional
+ * and for logging purpose.
+ *
+ * @param[in] localport The source port (your local computer). It's optional
+ * and for logging purpose.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ *
+ * @warning This function does not bind the local port and does not automatically
+ * forward the content of a socket to the channel. You still have to
+ * use channel_read and channel_write for this.
+ */
+int ssh_channel_open_forward(ssh_channel channel, const char *remotehost,
+ int remoteport, const char *sourcehost, int localport) {
+ ssh_session session = channel->session;
+ ssh_buffer payload = NULL;
+ ssh_string str = NULL;
+ int rc = SSH_ERROR;
+
+ enter_function();
+
+ payload = ssh_buffer_new();
+ if (payload == NULL) {
+ goto error;
+ }
+ str = ssh_string_from_char(remotehost);
+ if (str == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(payload, str) < 0 ||
+ buffer_add_u32(payload,htonl(remoteport)) < 0) {
+ goto error;
+ }
+
+ ssh_string_free(str);
+ str = ssh_string_from_char(sourcehost);
+ if (str == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(payload, str) < 0 ||
+ buffer_add_u32(payload,htonl(localport)) < 0) {
+ goto error;
+ }
+
+ rc = channel_open(channel, "direct-tcpip", 64000, 32000, payload);
+
+error:
+ ssh_buffer_free(payload);
+ ssh_string_free(str);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Close and free a channel.
+ *
+ * @param[in] channel The channel to free.
+ *
+ * @warning Any data unread on this channel will be lost.
+ */
+void ssh_channel_free(ssh_channel channel) {
+ ssh_session session = channel->session;
+ enter_function();
+
+ if (channel == NULL) {
+ leave_function();
+ return;
+ }
+
+ if (session->alive && channel->state == SSH_CHANNEL_STATE_OPEN) {
+ ssh_channel_close(channel);
+ }
+
+ /* handle the "my channel is first on session list" case */
+ if (session->channels == channel) {
+ session->channels = channel->next;
+ }
+
+ /* handle the "my channel is the only on session list" case */
+ if (channel->next == channel) {
+ session->channels = NULL;
+ } else {
+ channel->prev->next = channel->next;
+ channel->next->prev = channel->prev;
+ }
+
+ ssh_buffer_free(channel->stdout_buffer);
+ ssh_buffer_free(channel->stderr_buffer);
+
+ /* debug trick to catch use after frees */
+ memset(channel, 'X', sizeof(struct ssh_channel_struct));
+ SAFE_FREE(channel);
+
+ leave_function();
+}
+
+/**
+ * @brief Send an end of file on the channel.
+ *
+ * This doesn't close the channel. You may still read from it but not write.
+ *
+ * @param[in] channel The channel to send the eof to.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ *
+ * @see channel_close()
+ * @see channel_free()
+ */
+int ssh_channel_send_eof(ssh_channel channel){
+ ssh_session session = channel->session;
+ int rc = SSH_ERROR;
+
+ enter_function();
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_CHANNEL_EOF) < 0) {
+ goto error;
+ }
+ if (buffer_add_u32(session->out_buffer,htonl(channel->remote_channel)) < 0) {
+ goto error;
+ }
+ rc = packet_send(session);
+ ssh_log(session, SSH_LOG_PACKET,
+ "Sent a EOF on client channel (%d:%d)",
+ channel->local_channel,
+ channel->remote_channel);
+
+ channel->local_eof = 1;
+
+ leave_function();
+ return rc;
+error:
+ buffer_reinit(session->out_buffer);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Close a channel.
+ *
+ * This sends an end of file and then closes the channel. You won't be able
+ * to recover any data the server was going to send or was in buffers.
+ *
+ * @param[in] channel The channel to close.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ *
+ * @see channel_free()
+ * @see channel_eof()
+ */
+int ssh_channel_close(ssh_channel channel){
+ ssh_session session = channel->session;
+ int rc = 0;
+
+ enter_function();
+
+ if (channel->local_eof == 0) {
+ rc = ssh_channel_send_eof(channel);
+ }
+
+ if (rc != SSH_OK) {
+ leave_function();
+ return rc;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_CHANNEL_CLOSE) < 0 ||
+ buffer_add_u32(session->out_buffer, htonl(channel->remote_channel)) < 0) {
+ goto error;
+ }
+
+ rc = packet_send(session);
+ ssh_log(session, SSH_LOG_PACKET,
+ "Sent a close on client channel (%d:%d)",
+ channel->local_channel,
+ channel->remote_channel);
+
+ if(rc == SSH_OK) {
+ channel->state=SSH_CHANNEL_STATE_CLOSED;
+ }
+
+ leave_function();
+ return rc;
+error:
+ buffer_reinit(session->out_buffer);
+
+ leave_function();
+ return rc;
+}
+
+int channel_write_common(ssh_channel channel, const void *data,
+ uint32_t len, int is_stderr) {
+ ssh_session session = channel->session;
+ int origlen = len;
+ size_t effectivelen;
+ /* handle the max packet len from remote side, be nice */
+ /* 10 bytes for the headers */
+ size_t maxpacketlen = channel->remote_maxpacket - 10;
+
+ enter_function();
+
+ if (channel->local_eof) {
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Can't write to channel %d:%d after EOF was sent",
+ channel->local_channel,
+ channel->remote_channel);
+ leave_function();
+ return -1;
+ }
+
+ if (channel->state != SSH_CHANNEL_STATE_OPEN || channel->delayed_close != 0) {
+ ssh_set_error(session, SSH_REQUEST_DENIED, "Remote channel is closed");
+ leave_function();
+ return -1;
+ }
+
+#ifdef WITH_SSH1
+ if (channel->version == 1) {
+ int rc = channel_write1(channel, data, len);
+ leave_function();
+ return rc;
+ }
+#endif
+
+ while (len > 0) {
+ if (channel->remote_window < len) {
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Remote window is %d bytes. going to write %d bytes",
+ channel->remote_window,
+ len);
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Waiting for a growing window message...");
+ /* What happens when the channel window is zero? */
+ while(channel->remote_window == 0) {
+ /* parse every incoming packet */
+ if (ssh_handle_packets(session,-1) == SSH_ERROR) {
+ leave_function();
+ return SSH_ERROR;
+ }
+ }
+ effectivelen = len > channel->remote_window ? channel->remote_window : len;
+ } else {
+ effectivelen = len;
+ }
+ effectivelen = effectivelen > maxpacketlen ? maxpacketlen : effectivelen;
+ if (buffer_add_u8(session->out_buffer, is_stderr ?
+ SSH2_MSG_CHANNEL_EXTENDED_DATA : SSH2_MSG_CHANNEL_DATA) < 0 ||
+ buffer_add_u32(session->out_buffer,
+ htonl(channel->remote_channel)) < 0 ||
+ buffer_add_u32(session->out_buffer, htonl(effectivelen)) < 0 ||
+ buffer_add_data(session->out_buffer, data, effectivelen) < 0) {
+ goto error;
+ }
+
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return SSH_ERROR;
+ }
+
+ ssh_log(session, SSH_LOG_RARE,
+ "channel_write wrote %ld bytes", effectivelen);
+
+ channel->remote_window -= effectivelen;
+ len -= effectivelen;
+ data = ((uint8_t*)data + effectivelen);
+ }
+
+ leave_function();
+ return origlen;
+error:
+ buffer_reinit(session->out_buffer);
+
+ leave_function();
+ return SSH_ERROR;
+}
+
+/**
+ * @brief Blocking write on a channel.
+ *
+ * @param[in] channel The channel to write to.
+ *
+ * @param[in] data A pointer to the data to write.
+ *
+ * @param[in] len The length of the buffer to write to.
+ *
+ * @return The number of bytes written, SSH_ERROR on error.
+ *
+ * @see channel_read()
+ */
+int ssh_channel_write(ssh_channel channel, const void *data, uint32_t len) {
+ return channel_write_common(channel, data, len, 0);
+}
+
+/**
+ * @brief Check if the channel is open or not.
+ *
+ * @param[in] channel The channel to check.
+ *
+ * @return 0 if channel is closed, nonzero otherwise.
+ *
+ * @see channel_is_closed()
+ */
+int ssh_channel_is_open(ssh_channel channel) {
+ return (channel->state == SSH_CHANNEL_STATE_OPEN && channel->session->alive != 0);
+}
+
+/**
+ * @brief Check if the channel is closed or not.
+ *
+ * @param[in] channel The channel to check.
+ *
+ * @return 0 if channel is opened, nonzero otherwise.
+ *
+ * @see channel_is_open()
+ */
+int ssh_channel_is_closed(ssh_channel channel) {
+ return (channel->state != SSH_CHANNEL_STATE_OPEN || channel->session->alive == 0);
+}
+
+/**
+ * @brief Check if remote has sent an EOF.
+ *
+ * @param[in] channel The channel to check.
+ *
+ * @return 0 if there is no EOF, nonzero otherwise.
+ */
+int ssh_channel_is_eof(ssh_channel channel) {
+ if ((channel->stdout_buffer &&
+ buffer_get_rest_len(channel->stdout_buffer) > 0) ||
+ (channel->stderr_buffer &&
+ buffer_get_rest_len(channel->stderr_buffer) > 0)) {
+ return 0;
+ }
+
+ return (channel->remote_eof != 0);
+}
+
+/**
+ * @brief Put the channel into blocking or nonblocking mode.
+ *
+ * @param[in] channel The channel to use.
+ *
+ * @param[in] blocking A boolean for blocking or nonblocking.
+ *
+ * @bug This functionality is still under development and
+ * doesn't work correctly.
+ */
+void ssh_channel_set_blocking(ssh_channel channel, int blocking) {
+ channel->blocking = (blocking == 0 ? 0 : 1);
+}
+
+/**
+ * @internal
+ *
+ * @brief handle a SSH_CHANNEL_SUCCESS packet and set the channel state.
+ *
+ * This works on SSH1 sessions too.
+ */
+SSH_PACKET_CALLBACK(ssh_packet_channel_success){
+ ssh_channel channel;
+ (void)type;
+ (void)user;
+ enter_function();
+ channel=channel_from_msg(session,packet);
+ if (channel == NULL) {
+ ssh_log(session, SSH_LOG_FUNCTIONS, "%s", ssh_get_error(session));
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Received SSH_CHANNEL_SUCCESS on channel (%d:%d)",
+ channel->local_channel,
+ channel->remote_channel);
+ if(channel->request_state != SSH_CHANNEL_REQ_STATE_PENDING){
+ ssh_log(session, SSH_LOG_RARE, "SSH_CHANNEL_SUCCESS received in incorrect state %d",
+ channel->request_state);
+ } else {
+ channel->request_state=SSH_CHANNEL_REQ_STATE_ACCEPTED;
+ }
+
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ *
+ * @brief Handle a SSH_CHANNEL_FAILURE packet and set the channel state.
+ *
+ * This works on SSH1 sessions too.
+ */
+SSH_PACKET_CALLBACK(ssh_packet_channel_failure){
+ ssh_channel channel;
+ (void)type;
+ (void)user;
+ enter_function();
+ channel=channel_from_msg(session,packet);
+ if (channel == NULL) {
+ ssh_log(session, SSH_LOG_FUNCTIONS, "%s", ssh_get_error(session));
+ leave_function();
+ return SSH_PACKET_USED;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Received SSH_CHANNEL_FAILURE on channel (%d:%d)",
+ channel->local_channel,
+ channel->remote_channel);
+ if(channel->request_state != SSH_CHANNEL_REQ_STATE_PENDING){
+ ssh_log(session, SSH_LOG_RARE, "SSH_CHANNEL_FAILURE received in incorrect state %d",
+ channel->request_state);
+ } else {
+ channel->request_state=SSH_CHANNEL_REQ_STATE_DENIED;
+ }
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+static int channel_request(ssh_channel channel, const char *request,
+ ssh_buffer buffer, int reply) {
+ ssh_session session = channel->session;
+ ssh_string req = NULL;
+ int rc = SSH_ERROR;
+
+ enter_function();
+ if(channel->request_state != SSH_CHANNEL_REQ_STATE_NONE){
+ ssh_set_error(session,SSH_REQUEST_DENIED,"channel_request_* used in incorrect state");
+ leave_function();
+ return SSH_ERROR;
+ }
+
+ req = ssh_string_from_char(request);
+ if (req == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_CHANNEL_REQUEST) < 0 ||
+ buffer_add_u32(session->out_buffer, htonl(channel->remote_channel)) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, req) < 0 ||
+ buffer_add_u8(session->out_buffer, reply == 0 ? 0 : 1) < 0) {
+ goto error;
+ }
+ ssh_string_free(req);
+
+ if (buffer != NULL) {
+ if (buffer_add_data(session->out_buffer, ssh_buffer_get_begin(buffer),
+ ssh_buffer_get_len(buffer)) < 0) {
+ goto error;
+ }
+ }
+ channel->request_state = SSH_CHANNEL_REQ_STATE_PENDING;
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return rc;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Sent a SSH_MSG_CHANNEL_REQUEST %s", request);
+ if (reply == 0) {
+ channel->request_state = SSH_CHANNEL_REQ_STATE_NONE;
+ leave_function();
+ return SSH_OK;
+ }
+ while(channel->request_state == SSH_CHANNEL_REQ_STATE_PENDING){
+ ssh_handle_packets(session,-1);
+ }
+ /* we received something */
+ switch (channel->request_state){
+ case SSH_CHANNEL_REQ_STATE_ERROR:
+ rc=SSH_ERROR;
+ break;
+ case SSH_CHANNEL_REQ_STATE_DENIED:
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Channel request %s failed", request);
+ rc=SSH_ERROR;
+ break;
+ case SSH_CHANNEL_REQ_STATE_ACCEPTED:
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Channel request %s success",request);
+ rc=SSH_OK;
+ break;
+ case SSH_CHANNEL_REQ_STATE_NONE:
+ case SSH_CHANNEL_REQ_STATE_PENDING:
+ /* Never reached */
+ ssh_set_error(session, SSH_FATAL, "Invalid state in channel_request()");
+ rc=SSH_ERROR;
+ break;
+ }
+ channel->request_state=SSH_CHANNEL_REQ_STATE_NONE;
+ leave_function();
+ return rc;
+error:
+ buffer_reinit(session->out_buffer);
+ ssh_string_free(req);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Request a pty with a specific type and size.
+ *
+ * @param[in] channel The channel to sent the request.
+ *
+ * @param[in] terminal The terminal type ("vt100, xterm,...").
+ *
+ * @param[in] col The number of columns.
+ *
+ * @param[in] row The number of rows.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ */
+int ssh_channel_request_pty_size(ssh_channel channel, const char *terminal,
+ int col, int row) {
+ ssh_session session = channel->session;
+ ssh_string term = NULL;
+ ssh_buffer buffer = NULL;
+ int rc = SSH_ERROR;
+
+ enter_function();
+#ifdef WITH_SSH1
+ if (channel->version==1) {
+ channel_request_pty_size1(channel,terminal, col, row);
+ leave_function();
+ return rc;
+ }
+#endif
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ goto error;
+ }
+
+ term = ssh_string_from_char(terminal);
+ if (term == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(buffer, term) < 0 ||
+ buffer_add_u32(buffer, htonl(col)) < 0 ||
+ buffer_add_u32(buffer, htonl(row)) < 0 ||
+ buffer_add_u32(buffer, 0) < 0 ||
+ buffer_add_u32(buffer, 0) < 0 ||
+ buffer_add_u32(buffer, htonl(1)) < 0 || /* Add a 0byte string */
+ buffer_add_u8(buffer, 0) < 0) {
+ goto error;
+ }
+
+ rc = channel_request(channel, "pty-req", buffer, 1);
+error:
+ ssh_buffer_free(buffer);
+ ssh_string_free(term);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Request a PTY.
+ *
+ * @param[in] channel The channel to send the request.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ *
+ * @see channel_request_pty_size()
+ */
+int ssh_channel_request_pty(ssh_channel channel) {
+ return ssh_channel_request_pty_size(channel, "xterm", 80, 24);
+}
+
+/**
+ * @brief Change the size of the terminal associated to a channel.
+ *
+ * @param[in] channel The channel to change the size.
+ *
+ * @param[in] cols The new number of columns.
+ *
+ * @param[in] rows The new number of rows.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ *
+ * @warning Do not call it from a signal handler if you are not sure any other
+ * libssh function using the same channel/session is running at same
+ * time (not 100% threadsafe).
+ */
+int ssh_channel_change_pty_size(ssh_channel channel, int cols, int rows) {
+ ssh_session session = channel->session;
+ ssh_buffer buffer = NULL;
+ int rc = SSH_ERROR;
+
+ enter_function();
+
+#ifdef WITH_SSH1
+ if (channel->version == 1) {
+ rc = channel_change_pty_size1(channel,cols,rows);
+ leave_function();
+ return rc;
+ }
+#endif
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_u32(buffer, htonl(cols)) < 0 ||
+ buffer_add_u32(buffer, htonl(rows)) < 0 ||
+ buffer_add_u32(buffer, 0) < 0 ||
+ buffer_add_u32(buffer, 0) < 0) {
+ goto error;
+ }
+
+ rc = channel_request(channel, "window-change", buffer, 0);
+error:
+ ssh_buffer_free(buffer);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Request a shell.
+ *
+ * @param[in] channel The channel to send the request.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ */
+int ssh_channel_request_shell(ssh_channel channel) {
+#ifdef WITH_SSH1
+ if (channel->version == 1) {
+ return channel_request_shell1(channel);
+ }
+#endif
+ return channel_request(channel, "shell", NULL, 1);
+}
+
+/**
+ * @brief Request a subsystem (for example "sftp").
+ *
+ * @param[in] channel The channel to send the request.
+ *
+ * @param[in] subsys The subsystem to request (for example "sftp").
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ *
+ * @warning You normally don't have to call it for sftp, see sftp_new().
+ */
+int ssh_channel_request_subsystem(ssh_channel channel, const char *subsys) {
+ ssh_buffer buffer = NULL;
+ ssh_string subsystem = NULL;
+ int rc = SSH_ERROR;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ goto error;
+ }
+
+ subsystem = ssh_string_from_char(subsys);
+ if (subsystem == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(buffer, subsystem) < 0) {
+ goto error;
+ }
+
+ rc = channel_request(channel, "subsystem", buffer, 1);
+error:
+ ssh_buffer_free(buffer);
+ ssh_string_free(subsystem);
+
+ return rc;
+}
+
+int ssh_channel_request_sftp( ssh_channel channel){
+ return ssh_channel_request_subsystem(channel, "sftp");
+}
+
+static ssh_string generate_cookie(void) {
+ static const char *hex = "0123456789abcdef";
+ char s[36];
+ int i;
+
+ srand ((unsigned int)time(NULL));
+ for (i = 0; i < 32; i++) {
+ s[i] = hex[rand() % 16];
+ }
+ s[32] = '\0';
+ return ssh_string_from_char(s);
+}
+
+/**
+ * @brief Sends the "x11-req" channel request over an existing session channel.
+ *
+ * This will enable redirecting the display of the remote X11 applications to
+ * local X server over an secure tunnel.
+ *
+ * @param[in] channel An existing session channel where the remote X11
+ * applications are going to be executed.
+ *
+ * @param[in] single_connection A boolean to mark only one X11 app will be
+ * redirected.
+ *
+ * @param[in] protocol A x11 authentication protocol. Pass NULL to use the
+ * default value MIT-MAGIC-COOKIE-1.
+ *
+ * @param[in] cookie A x11 authentication cookie. Pass NULL to generate
+ * a random cookie.
+ *
+ * @param[in] screen_number The screen number.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ */
+int ssh_channel_request_x11(ssh_channel channel, int single_connection, const char *protocol,
+ const char *cookie, int screen_number) {
+ ssh_buffer buffer = NULL;
+ ssh_string p = NULL;
+ ssh_string c = NULL;
+ int rc = SSH_ERROR;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ goto error;
+ }
+
+ p = ssh_string_from_char(protocol ? protocol : "MIT-MAGIC-COOKIE-1");
+ if (p == NULL) {
+ goto error;
+ }
+
+ if (cookie) {
+ c = ssh_string_from_char(cookie);
+ } else {
+ c = generate_cookie();
+ }
+ if (c == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_u8(buffer, single_connection == 0 ? 0 : 1) < 0 ||
+ buffer_add_ssh_string(buffer, p) < 0 ||
+ buffer_add_ssh_string(buffer, c) < 0 ||
+ buffer_add_u32(buffer, htonl(screen_number)) < 0) {
+ goto error;
+ }
+
+ rc = channel_request(channel, "x11-req", buffer, 1);
+
+error:
+ ssh_buffer_free(buffer);
+ ssh_string_free(p);
+ ssh_string_free(c);
+ return rc;
+}
+
+static ssh_channel ssh_channel_accept(ssh_session session, int channeltype,
+ int timeout_ms) {
+#ifndef _WIN32
+ static const struct timespec ts = {
+ .tv_sec = 0,
+ .tv_nsec = 50000000 /* 50ms */
+ };
+#endif
+ ssh_message msg = NULL;
+ ssh_channel channel = NULL;
+ struct ssh_iterator *iterator;
+ int t;
+
+ for (t = timeout_ms; t >= 0; t -= 50)
+ {
+ ssh_handle_packets(session,50);
+
+ if (session->ssh_message_list) {
+ iterator = ssh_list_get_iterator(session->ssh_message_list);
+ while (iterator) {
+ msg = (ssh_message)iterator->data;
+ if (ssh_message_type(msg) == SSH_REQUEST_CHANNEL_OPEN &&
+ ssh_message_subtype(msg) == channeltype) {
+ ssh_list_remove(session->ssh_message_list, iterator);
+ channel = ssh_message_channel_request_open_reply_accept(msg);
+ ssh_message_free(msg);
+ return channel;
+ }
+ iterator = iterator->next;
+ }
+ }
+#ifdef _WIN32
+ Sleep(50); /* 50ms */
+#else
+ nanosleep(&ts, NULL);
+#endif
+ }
+
+ return NULL;
+}
+
+/**
+ * @brief Accept an X11 forwarding channel.
+ *
+ * @param[in] channel An x11-enabled session channel.
+ *
+ * @param[in] timeout_ms Timeout in milliseconds.
+ *
+ * @return A newly created channel, or NULL if no X11 request from
+ * the server.
+ */
+ssh_channel ssh_channel_accept_x11(ssh_channel channel, int timeout_ms) {
+ return ssh_channel_accept(channel->session, SSH_CHANNEL_X11, timeout_ms);
+}
+
+/**
+ * @internal
+ *
+ * @brief Handle a SSH_REQUEST_SUCCESS packet normally sent after a global
+ * request.
+ */
+SSH_PACKET_CALLBACK(ssh_request_success){
+ (void)type;
+ (void)user;
+ (void)packet;
+ enter_function();
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Received SSH_REQUEST_SUCCESS");
+ if(session->global_req_state != SSH_CHANNEL_REQ_STATE_PENDING){
+ ssh_log(session, SSH_LOG_RARE, "SSH_REQUEST_SUCCESS received in incorrect state %d",
+ session->global_req_state);
+ } else {
+ session->global_req_state=SSH_CHANNEL_REQ_STATE_ACCEPTED;
+ }
+
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ *
+ * @brief Handle a SSH_REQUEST_DENIED packet normally sent after a global
+ * request.
+ */
+SSH_PACKET_CALLBACK(ssh_request_denied){
+ (void)type;
+ (void)user;
+ (void)packet;
+ enter_function();
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Received SSH_REQUEST_FAILURE");
+ if(session->global_req_state != SSH_CHANNEL_REQ_STATE_PENDING){
+ ssh_log(session, SSH_LOG_RARE, "SSH_REQUEST_DENIED received in incorrect state %d",
+ session->global_req_state);
+ } else {
+ session->global_req_state=SSH_CHANNEL_REQ_STATE_DENIED;
+ }
+
+ leave_function();
+ return SSH_PACKET_USED;
+
+}
+
+/**
+ * @internal
+ *
+ * @brief Send a global request (needed for forward listening) and wait for the
+ * result.
+ *
+ * @param[in] session The SSH session handle.
+ *
+ * @param[in] request The type of request (defined in RFC).
+ *
+ * @param[in] buffer Additional data to put in packet.
+ *
+ * @param[in] reply Set if you expect a reply from server.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ */
+static int global_request(ssh_session session, const char *request,
+ ssh_buffer buffer, int reply) {
+ ssh_string req = NULL;
+ int rc = SSH_ERROR;
+
+ enter_function();
+ if(session->global_req_state != SSH_CHANNEL_REQ_STATE_NONE){
+ ssh_set_error(session,SSH_FATAL,"Invalid state in start of global_request()");
+ leave_function();
+ return rc;
+ }
+ req = ssh_string_from_char(request);
+ if (req == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_GLOBAL_REQUEST) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, req) < 0 ||
+ buffer_add_u8(session->out_buffer, reply == 0 ? 0 : 1) < 0) {
+ goto error;
+ }
+ ssh_string_free(req);
+ req=NULL;
+
+ if (buffer != NULL) {
+ if (buffer_add_data(session->out_buffer, ssh_buffer_get_begin(buffer),
+ ssh_buffer_get_len(buffer)) < 0) {
+ goto error;
+ }
+ }
+ session->global_req_state = SSH_CHANNEL_REQ_STATE_PENDING;
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return rc;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Sent a SSH_MSG_GLOBAL_REQUEST %s", request);
+ if (reply == 0) {
+ session->global_req_state=SSH_CHANNEL_REQ_STATE_NONE;
+ leave_function();
+ return SSH_OK;
+ }
+ while(session->global_req_state == SSH_CHANNEL_REQ_STATE_PENDING){
+ rc=ssh_handle_packets(session,-1);
+ if(rc==SSH_ERROR){
+ session->global_req_state = SSH_CHANNEL_REQ_STATE_ERROR;
+ break;
+ }
+ }
+ switch(session->global_req_state){
+ case SSH_CHANNEL_REQ_STATE_ACCEPTED:
+ ssh_log(session, SSH_LOG_PROTOCOL, "Global request %s success",request);
+ rc=SSH_OK;
+ break;
+ case SSH_CHANNEL_REQ_STATE_DENIED:
+ ssh_log(session, SSH_LOG_PACKET,
+ "Global request %s failed", request);
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Global request %s failed", request);
+ rc=SSH_ERROR;
+ break;
+ case SSH_CHANNEL_REQ_STATE_ERROR:
+ case SSH_CHANNEL_REQ_STATE_NONE:
+ case SSH_CHANNEL_REQ_STATE_PENDING:
+ rc=SSH_ERROR;
+ break;
+
+ }
+
+ leave_function();
+ return rc;
+error:
+ ssh_string_free(req);
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Sends the "tcpip-forward" global request to ask the server to begin
+ * listening for inbound connections.
+ *
+ * @param[in] session The ssh session to send the request.
+ *
+ * @param[in] address The address to bind to on the server. Pass NULL to bind
+ * to all available addresses on all protocol families
+ * supported by the server.
+ *
+ * @param[in] port The port to bind to on the server. Pass 0 to ask the
+ * server to allocate the next available unprivileged port
+ * number
+ *
+ * @param[in] bound_port The pointer to get actual bound port. Pass NULL to
+ * ignore.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ */
+int ssh_forward_listen(ssh_session session, const char *address, int port, int *bound_port) {
+ ssh_buffer buffer = NULL;
+ ssh_string addr = NULL;
+ int rc = SSH_ERROR;
+ uint32_t tmp;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ goto error;
+ }
+
+ addr = ssh_string_from_char(address ? address : "");
+ if (addr == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(buffer, addr) < 0 ||
+ buffer_add_u32(buffer, htonl(port)) < 0) {
+ goto error;
+ }
+
+ rc = global_request(session, "tcpip-forward", buffer, 1);
+
+ if (rc == SSH_OK && port == 0 && bound_port) {
+ buffer_get_u32(session->in_buffer, &tmp);
+ *bound_port = ntohl(tmp);
+ }
+
+error:
+ ssh_buffer_free(buffer);
+ ssh_string_free(addr);
+ return rc;
+}
+
+/**
+ * @brief Accept an incoming TCP/IP forwarding channel.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] timeout_ms A timeout in milliseconds.
+ *
+ * @return Newly created channel, or NULL if no incoming channel request from
+ * the server
+ */
+ssh_channel ssh_forward_accept(ssh_session session, int timeout_ms) {
+ return ssh_channel_accept(session, SSH_CHANNEL_FORWARDED_TCPIP, timeout_ms);
+}
+
+/**
+ * @brief Sends the "cancel-tcpip-forward" global request to ask the server to
+ * cancel the tcpip-forward request.
+ *
+ * @param[in] session The ssh session to send the request.
+ *
+ * @param[in] address The bound address on the server.
+ *
+ * @param[in] port The bound port on the server.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ */
+int ssh_forward_cancel(ssh_session session, const char *address, int port) {
+ ssh_buffer buffer = NULL;
+ ssh_string addr = NULL;
+ int rc = SSH_ERROR;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ goto error;
+ }
+
+ addr = ssh_string_from_char(address ? address : "");
+ if (addr == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(buffer, addr) < 0 ||
+ buffer_add_u32(buffer, htonl(port)) < 0) {
+ goto error;
+ }
+
+ rc = global_request(session, "cancel-tcpip-forward", buffer, 1);
+
+error:
+ ssh_buffer_free(buffer);
+ ssh_string_free(addr);
+ return rc;
+}
+
+/**
+ * @brief Set environment variables.
+ *
+ * @param[in] channel The channel to set the environment variables.
+ *
+ * @param[in] name The name of the variable.
+ *
+ * @param[in] value The value to set.
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ *
+ * @warning Some environment variables may be refused by security reasons.
+ */
+int ssh_channel_request_env(ssh_channel channel, const char *name, const char *value) {
+ ssh_buffer buffer = NULL;
+ ssh_string str = NULL;
+ int rc = SSH_ERROR;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ goto error;
+ }
+
+ str = ssh_string_from_char(name);
+ if (str == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(buffer, str) < 0) {
+ goto error;
+ }
+
+ ssh_string_free(str);
+ str = ssh_string_from_char(value);
+ if (str == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(buffer, str) < 0) {
+ goto error;
+ }
+
+ rc = channel_request(channel, "env", buffer,1);
+error:
+ ssh_buffer_free(buffer);
+ ssh_string_free(str);
+
+ return rc;
+}
+
+/**
+ * @brief Run a shell command without an interactive shell.
+ *
+ * This is similar to 'sh -c command'.
+ *
+ * @param[in] channel The channel to execute the command.
+ *
+ * @param[in] cmd The command to execute
+ * (e.g. "ls ~/ -al | grep -i reports").
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured.
+ *
+ * @code
+ * rc = channel_request_exec(channel, "ps aux");
+ * if (rc > 0) {
+ * return -1;
+ * }
+ *
+ * while ((rc = channel_read(channel, buffer, sizeof(buffer), 0)) > 0) {
+ * if (fwrite(buffer, 1, rc, stdout) != (unsigned int) rc) {
+ * return -1;
+ * }
+ * }
+ * @endcode
+ *
+ * @see channel_request_shell()
+ */
+int ssh_channel_request_exec(ssh_channel channel, const char *cmd) {
+ ssh_buffer buffer = NULL;
+ ssh_string command = NULL;
+ int rc = SSH_ERROR;
+
+#ifdef WITH_SSH1
+ if (channel->version == 1) {
+ return channel_request_exec1(channel, cmd);
+ }
+#endif
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ goto error;
+ }
+
+ command = ssh_string_from_char(cmd);
+ if (command == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(buffer, command) < 0) {
+ goto error;
+ }
+
+ rc = channel_request(channel, "exec", buffer, 1);
+error:
+ ssh_buffer_free(buffer);
+ ssh_string_free(command);
+ return rc;
+}
+
+
+/**
+ * @brief Send a signal to remote process (as described in RFC 4254, section 6.9).
+ *
+ * Sends a signal 'sig' to the remote process.
+ * Note, that remote system may not support signals concept.
+ * In such a case this request will be silently ignored.
+ * Only SSH-v2 is supported (I'm not sure about SSH-v1).
+ *
+ * @param[in] channel The channel to send signal.
+ *
+ * @param[in] sig The signal to send (without SIG prefix)
+ * (e.g. "TERM" or "KILL").
+ *
+ * @return SSH_OK on success, SSH_ERROR if an error occured
+ * (including attempts to send signal via SSH-v1 session).
+ */
+int ssh_channel_request_send_signal(ssh_channel channel, const char *sig) {
+ ssh_buffer buffer = NULL;
+ ssh_string encoded_signal = NULL;
+ int rc = SSH_ERROR;
+
+#ifdef WITH_SSH1
+ if (channel->version == 1) {
+ return SSH_ERROR; // TODO: Add support for SSH-v1 if possible.
+ }
+#endif
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ goto error;
+ }
+
+ encoded_signal = ssh_string_from_char(sig);
+ if (encoded_signal == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(buffer, encoded_signal) < 0) {
+ goto error;
+ }
+
+ rc = channel_request(channel, "signal", buffer, 0);
+error:
+ ssh_buffer_free(buffer);
+ ssh_string_free(encoded_signal);
+ return rc;
+}
+
+
+/**
+ * @brief Read data from a channel into a buffer.
+ *
+ * @param[in] channel The channel to read from.
+ *
+ * @param[in] buffer The buffer which will get the data.
+ *
+ * @param[in] count The count of bytes to be read. If it is bigger than 0,
+ * the exact size will be read, else (bytes=0) it will
+ * return once anything is available.
+ *
+ * @param is_stderr A boolean value to mark reading from the stderr stream.
+ *
+ * @return The number of bytes read, 0 on end of file or SSH_ERROR
+ * on error.
+ * @deprecated Please use ssh_channel_read instead
+ * @see ssh_channel_read
+ */
+int channel_read_buffer(ssh_channel channel, ssh_buffer buffer, uint32_t count,
+ int is_stderr) {
+ ssh_session session=channel->session;
+ ssh_buffer stdbuf = channel->stdout_buffer;
+ uint32_t maxread = count;
+ uint32_t len;
+
+ buffer_reinit(buffer);
+
+ enter_function();
+
+ if (count == 0) {
+ maxread = MAX_PACKET_LEN;
+ }
+
+ if (is_stderr) {
+ stdbuf = channel->stderr_buffer;
+ }
+
+ /*
+ * We may have problem if the window is too small to accept as much data
+ * as asked
+ */
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Read (%d) buffered: %d bytes. Window: %d",
+ count,
+ buffer_get_rest_len(stdbuf),
+ channel->local_window);
+
+ if (count > buffer_get_rest_len(stdbuf) + channel->local_window) {
+ if (grow_window(session, channel,
+ count - buffer_get_rest_len(stdbuf)) < 0) {
+ leave_function();
+ return -1;
+ }
+ }
+ /* block reading if asked bytes=0 */
+ while (buffer_get_rest_len(stdbuf) == 0 ||
+ buffer_get_rest_len(stdbuf) < count) {
+ if (channel->remote_eof && buffer_get_rest_len(stdbuf) == 0) {
+ leave_function();
+ return 0;
+ }
+ if (channel->remote_eof) {
+ /* Return the resting bytes in buffer */
+ break;
+ }
+ if (buffer_get_rest_len(stdbuf) >= maxread) {
+ /* Stop reading when buffer is full enough */
+ break;
+ }
+ ssh_handle_packets(session,-1);
+ }
+
+ if(channel->local_window < WINDOWLIMIT) {
+ if (grow_window(session, channel, 0) < 0) {
+ leave_function();
+ return -1;
+ }
+ }
+
+ if (count == 0) {
+ /* write the ful buffer information */
+ if (buffer_add_data(buffer, buffer_get_rest(stdbuf),
+ buffer_get_rest_len(stdbuf)) < 0) {
+ leave_function();
+ return -1;
+ }
+ buffer_reinit(stdbuf);
+ } else {
+ /* Read bytes bytes if len is greater, everything otherwise */
+ len = buffer_get_rest_len(stdbuf);
+ len = (len > count ? count : len);
+ if (buffer_add_data(buffer, buffer_get_rest(stdbuf), len) < 0) {
+ leave_function();
+ return -1;
+ }
+ buffer_pass_bytes(stdbuf,len);
+ }
+
+ leave_function();
+ return ssh_buffer_get_len(buffer);
+}
+
+/* TODO FIXME Fix the delayed close thing */
+/* TODO FIXME Fix the blocking behaviours */
+
+/**
+ * @brief Reads data from a channel.
+ *
+ * @param[in] channel The channel to read from.
+ *
+ * @param[in] dest The destination buffer which will get the data.
+ *
+ * @param[in] count The count of bytes to be read.
+ *
+ * @param[in] is_stderr A boolean value to mark reading from the stderr flow.
+ *
+ * @return The number of bytes read, 0 on end of file or SSH_ERROR
+ * on error.
+ *
+ * @warning This function may return less than count bytes of data, and won't
+ * block until count bytes have been read.
+ * @warning The read function using a buffer has been renamed to
+ * channel_read_buffer().
+ */
+int ssh_channel_read(ssh_channel channel, void *dest, uint32_t count, int is_stderr) {
+ ssh_session session = channel->session;
+ ssh_buffer stdbuf = channel->stdout_buffer;
+ uint32_t len;
+
+ enter_function();
+
+ if (count == 0) {
+ leave_function();
+ return 0;
+ }
+
+ if (is_stderr) {
+ stdbuf=channel->stderr_buffer;
+ }
+
+ /*
+ * We may have problem if the window is too small to accept as much data
+ * as asked
+ */
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Read (%d) buffered : %d bytes. Window: %d",
+ count,
+ buffer_get_rest_len(stdbuf),
+ channel->local_window);
+
+ if (count > buffer_get_rest_len(stdbuf) + channel->local_window) {
+ if (grow_window(session, channel,
+ count - buffer_get_rest_len(stdbuf)) < 0) {
+ leave_function();
+ return -1;
+ }
+ }
+
+ /* block reading until at least one byte is read
+ * and ignore the trivial case count=0
+ */
+ while (buffer_get_rest_len(stdbuf) == 0 && count > 0) {
+ if (channel->remote_eof && buffer_get_rest_len(stdbuf) == 0) {
+ leave_function();
+ return 0;
+ }
+
+ if (channel->remote_eof) {
+ /* Return the resting bytes in buffer */
+ break;
+ }
+
+ if (buffer_get_rest_len(stdbuf) >= count) {
+ /* Stop reading when buffer is full enough */
+ break;
+ }
+
+ ssh_handle_packets(session,-1);
+ }
+
+ if (channel->local_window < WINDOWLIMIT) {
+ if (grow_window(session, channel, 0) < 0) {
+ leave_function();
+ return -1;
+ }
+ }
+
+ len = buffer_get_rest_len(stdbuf);
+ /* Read count bytes if len is greater, everything otherwise */
+ len = (len > count ? count : len);
+ memcpy(dest, buffer_get_rest(stdbuf), len);
+ buffer_pass_bytes(stdbuf,len);
+
+ leave_function();
+ return len;
+}
+
+/**
+ * @brief Do a nonblocking read on the channel.
+ *
+ * A nonblocking read on the specified channel. it will return <= count bytes of
+ * data read atomically.
+ *
+ * @param[in] channel The channel to read from.
+ *
+ * @param[in] dest A pointer to a destination buffer.
+ *
+ * @param[in] count The count of bytes of data to be read.
+ *
+ * @param[in] is_stderr A boolean to select the stderr stream.
+ *
+ * @return The number of bytes read, 0 if nothing is available or
+ * SSH_ERROR on error.
+ *
+ * @warning Don't forget to check for EOF as it would return 0 here.
+ *
+ * @see channel_is_eof()
+ */
+int ssh_channel_read_nonblocking(ssh_channel channel, void *dest, uint32_t count,
+ int is_stderr) {
+ ssh_session session = channel->session;
+ uint32_t to_read;
+ int rc;
+
+ enter_function();
+
+ to_read = ssh_channel_poll(channel, is_stderr);
+
+ if (to_read <= 0) {
+ leave_function();
+ return to_read; /* may be an error code */
+ }
+
+ if (to_read > count) {
+ to_read = count;
+ }
+ rc = ssh_channel_read(channel, dest, to_read, is_stderr);
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @brief Polls a channel for data to read.
+ *
+ * @param[in] channel The channel to poll.
+ *
+ * @param[in] is_stderr A boolean to select the stderr stream.
+ *
+ * @return The number of bytes available for reading, 0 if nothing
+ * is available or SSH_ERROR on error.
+ *
+ * @warning When the channel is in EOF state, the function returns SSH_EOF.
+ *
+ * @see channel_is_eof()
+ */
+int ssh_channel_poll(ssh_channel channel, int is_stderr){
+ ssh_session session = channel->session;
+ ssh_buffer stdbuf = channel->stdout_buffer;
+
+ enter_function();
+
+ if (is_stderr) {
+ stdbuf = channel->stderr_buffer;
+ }
+
+ if (buffer_get_rest_len(stdbuf) == 0 && channel->remote_eof == 0) {
+ if (ssh_handle_packets(channel->session,0)==SSH_ERROR) {
+ leave_function();
+ return SSH_ERROR;
+ }
+ }
+
+ if (buffer_get_rest_len(stdbuf) > 0){
+ leave_function();
+ return buffer_get_rest_len(stdbuf);
+ }
+
+ if (channel->remote_eof) {
+ leave_function();
+ return SSH_EOF;
+ }
+
+ leave_function();
+ return buffer_get_rest_len(stdbuf);
+}
+
+/**
+ * @brief Recover the session in which belongs a channel.
+ *
+ * @param[in] channel The channel to recover the session from.
+ *
+ * @return The session pointer.
+ */
+ssh_session ssh_channel_get_session(ssh_channel channel) {
+ return channel->session;
+}
+
+/**
+ * @brief Get the exit status of the channel (error code from the executed
+ * instruction).
+ *
+ * @param[in] channel The channel to get the status from.
+ *
+ * @returns The exit status, -1 if no exit status has been returned
+ * or eof not sent.
+ */
+int ssh_channel_get_exit_status(ssh_channel channel) {
+ if (channel->local_eof == 0) {
+ return -1;
+ }
+
+ while (channel->remote_eof == 0 || channel->exit_status == -1) {
+ /* Parse every incoming packet */
+ if (ssh_handle_packets(channel->session,-1) != SSH_OK) {
+ return -1;
+ }
+ /* XXX We should actually wait for a close packet and not a close
+ * we issued ourselves
+ */
+ if (channel->state != SSH_CHANNEL_STATE_OPEN) {
+ /* When a channel is closed, no exit status message can
+ * come anymore */
+ break;
+ }
+ }
+
+ return channel->exit_status;
+}
+
+/*
+ * This function acts as a meta select.
+ *
+ * First, channels are analyzed to seek potential can-write or can-read ones,
+ * then if no channel has been elected, it goes in a loop with the posix
+ * select(2).
+ * This is made in two parts: protocol select and network select. The protocol
+ * select does not use the network functions at all
+ */
+static int channel_protocol_select(ssh_channel *rchans, ssh_channel *wchans,
+ ssh_channel *echans, ssh_channel *rout, ssh_channel *wout, ssh_channel *eout) {
+ ssh_channel chan;
+ int i;
+ int j = 0;
+
+ for (i = 0; rchans[i] != NULL; i++) {
+ chan = rchans[i];
+
+ while (ssh_channel_is_open(chan) && ssh_socket_data_available(chan->session->socket)) {
+ ssh_handle_packets(chan->session,-1);
+ }
+
+ if ((chan->stdout_buffer && ssh_buffer_get_len(chan->stdout_buffer) > 0) ||
+ (chan->stderr_buffer && ssh_buffer_get_len(chan->stderr_buffer) > 0) ||
+ chan->remote_eof) {
+ rout[j] = chan;
+ j++;
+ }
+ }
+ rout[j] = NULL;
+
+ j = 0;
+ for(i = 0; wchans[i] != NULL; i++) {
+ chan = wchans[i];
+ /* It's not our business to seek if the file descriptor is writable */
+ if (ssh_socket_data_writable(chan->session->socket) &&
+ ssh_channel_is_open(chan) && (chan->remote_window > 0)) {
+ wout[j] = chan;
+ j++;
+ }
+ }
+ wout[j] = NULL;
+
+ j = 0;
+ for (i = 0; echans[i] != NULL; i++) {
+ chan = echans[i];
+
+ if (!ssh_socket_is_open(chan->session->socket) || ssh_channel_is_closed(chan)) {
+ eout[j] = chan;
+ j++;
+ }
+ }
+ eout[j] = NULL;
+
+ return 0;
+}
+
+/* Just count number of pointers in the array */
+static int count_ptrs(ssh_channel *ptrs) {
+ int c;
+ for (c = 0; ptrs[c] != NULL; c++)
+ ;
+
+ return c;
+}
+
+/**
+ * @brief Act like the standard select(2) on channels.
+ *
+ * The list of pointers are then actualized and will only contain pointers to
+ * channels that are respectively readable, writable or have an exception to
+ * trap.
+ *
+ * @param[in] readchans A NULL pointer or an array of channel pointers,
+ * terminated by a NULL.
+ *
+ * @param[in] writechans A NULL pointer or an array of channel pointers,
+ * terminated by a NULL.
+ *
+ * @param[in] exceptchans A NULL pointer or an array of channel pointers,
+ * terminated by a NULL.
+ *
+ * @param[in] timeout Timeout as defined by select(2).
+ *
+ * @return SSH_OK on a successful operation, SSH_EINTR if the
+ * select(2) syscall was interrupted, then relaunch the
+ * function.
+ */
+int ssh_channel_select(ssh_channel *readchans, ssh_channel *writechans,
+ ssh_channel *exceptchans, struct timeval * timeout) {
+ ssh_channel *rchans, *wchans, *echans;
+ ssh_channel dummy = NULL;
+ fd_set rset;
+ fd_set wset;
+ fd_set eset;
+ socket_t max_fd = SSH_INVALID_SOCKET;
+ int rc;
+ int i;
+
+ /* don't allow NULL pointers */
+ if (readchans == NULL) {
+ readchans = &dummy;
+ }
+
+ if (writechans == NULL) {
+ writechans = &dummy;
+ }
+
+ if (exceptchans == NULL) {
+ exceptchans = &dummy;
+ }
+
+ if (readchans[0] == NULL && writechans[0] == NULL && exceptchans[0] == NULL) {
+ /* No channel to poll?? Go away! */
+ return 0;
+ }
+
+ /* Prepare the outgoing temporary arrays */
+ rchans = malloc(sizeof(ssh_channel ) * (count_ptrs(readchans) + 1));
+ if (rchans == NULL) {
+ return SSH_ERROR;
+ }
+
+ wchans = malloc(sizeof(ssh_channel ) * (count_ptrs(writechans) + 1));
+ if (wchans == NULL) {
+ SAFE_FREE(rchans);
+ return SSH_ERROR;
+ }
+
+ echans = malloc(sizeof(ssh_channel ) * (count_ptrs(exceptchans) + 1));
+ if (echans == NULL) {
+ SAFE_FREE(rchans);
+ SAFE_FREE(wchans);
+ return SSH_ERROR;
+ }
+
+ /*
+ * First, try without doing network stuff then, select and redo the
+ * networkless stuff
+ */
+ do {
+ channel_protocol_select(readchans, writechans, exceptchans,
+ rchans, wchans, echans);
+ if (rchans[0] != NULL || wchans[0] != NULL || echans[0] != NULL) {
+ /* We've got one without doing any select overwrite the beginning arrays */
+ memcpy(readchans, rchans, (count_ptrs(rchans) + 1) * sizeof(ssh_channel ));
+ memcpy(writechans, wchans, (count_ptrs(wchans) + 1) * sizeof(ssh_channel ));
+ memcpy(exceptchans, echans, (count_ptrs(echans) + 1) * sizeof(ssh_channel ));
+ SAFE_FREE(rchans);
+ SAFE_FREE(wchans);
+ SAFE_FREE(echans);
+ return 0;
+ }
+ /*
+ * Since we verified the invalid fd cases into the networkless select,
+ * we can be sure all fd are valid ones
+ */
+ FD_ZERO(&rset);
+ FD_ZERO(&wset);
+ FD_ZERO(&eset);
+
+ for (i = 0; readchans[i] != NULL; i++) {
+ if (!ssh_socket_fd_isset(readchans[i]->session->socket, &rset)) {
+ ssh_socket_fd_set(readchans[i]->session->socket, &rset, &max_fd);
+ }
+ }
+
+ for (i = 0; writechans[i] != NULL; i++) {
+ if (!ssh_socket_fd_isset(writechans[i]->session->socket, &wset)) {
+ ssh_socket_fd_set(writechans[i]->session->socket, &wset, &max_fd);
+ }
+ }
+
+ for (i = 0; exceptchans[i] != NULL; i++) {
+ if (!ssh_socket_fd_isset(exceptchans[i]->session->socket, &eset)) {
+ ssh_socket_fd_set(exceptchans[i]->session->socket, &eset, &max_fd);
+ }
+ }
+
+ /* Here we go */
+ rc = select(max_fd, &rset, &wset, &eset, timeout);
+ /* Leave if select was interrupted */
+ if (rc == EINTR) {
+ SAFE_FREE(rchans);
+ SAFE_FREE(wchans);
+ SAFE_FREE(echans);
+ return SSH_EINTR;
+ }
+
+ for (i = 0; readchans[i] != NULL; i++) {
+ if (ssh_socket_fd_isset(readchans[i]->session->socket, &rset)) {
+ ssh_socket_set_toread(readchans[i]->session->socket);
+ }
+ }
+
+ for (i = 0; writechans[i] != NULL; i++) {
+ if (ssh_socket_fd_isset(writechans[i]->session->socket, &wset)) {
+ ssh_socket_set_towrite(writechans[i]->session->socket);
+ }
+ }
+
+ for (i = 0; exceptchans[i] != NULL; i++) {
+ if (ssh_socket_fd_isset(exceptchans[i]->session->socket, &eset)) {
+ ssh_socket_set_except(exceptchans[i]->session->socket);
+ }
+ }
+ } while(1); /* Return to do loop */
+
+ /* not reached */
+ return 0;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/channels1.c b/src/channels1.c
new file mode 100644
index 0000000..4cf7e77
--- /dev/null
+++ b/src/channels1.c
@@ -0,0 +1,298 @@
+/*
+ * channels1.c - Support for SSH-1 type channels
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2008 by Aris Adamantiadis
+ * Copyright (c) 2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+#include "libssh/priv.h"
+#include "libssh/ssh1.h"
+#include "libssh/buffer.h"
+#include "libssh/packet.h"
+#include "libssh/channels.h"
+#include "libssh/session.h"
+
+#ifdef WITH_SSH1
+
+/*
+ * This is a big hack. In fact, SSH1 doesn't make a clever use of channels.
+ * The whole packets concerning shells are sent outside of a channel.
+ * Thus, an inside limitation of this behavior is that you can't only
+ * request one shell.
+ * The question is still how they managed to embed two "channel" into one
+ * protocol.
+ */
+
+int channel_open_session1(ssh_channel chan) {
+ /*
+ * We guess we are requesting an *exec* channel. It can only have one exec
+ * channel. So we abort with an error if we need more than one.
+ */
+ ssh_session session = chan->session;
+ if (session->exec_channel_opened) {
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "SSH1 supports only one execution channel. "
+ "One has already been opened");
+ return -1;
+ }
+ session->exec_channel_opened = 1;
+ chan->state = SSH_CHANNEL_STATE_OPEN;
+ chan->local_maxpacket = 32000;
+ chan->local_window = 64000;
+ ssh_log(session, SSH_LOG_PACKET, "Opened a SSH1 channel session");
+
+ return 0;
+}
+
+/* 10 SSH_CMSG_REQUEST_PTY
+ *
+ * string TERM environment variable value (e.g. vt100)
+ * 32-bit int terminal height, rows (e.g., 24)
+ * 32-bit int terminal width, columns (e.g., 80)
+ * 32-bit int terminal width, pixels (0 if no graphics) (e.g., 480)
+ * 32-bit int terminal height, pixels (0 if no graphics) (e.g., 640)
+ * n bytes tty modes encoded in binary
+ * Some day, someone should have a look at that nasty tty encoded. It's
+ * much simplier under ssh2. I just hope the defaults values are ok ...
+ */
+
+int channel_request_pty_size1(ssh_channel channel, const char *terminal, int col,
+ int row) {
+ ssh_session session = channel->session;
+ ssh_string str = NULL;
+ if(channel->request_state != SSH_CHANNEL_REQ_STATE_NONE){
+ ssh_set_error(session,SSH_REQUEST_DENIED,"Wrong request state");
+ return SSH_ERROR;
+ }
+ str = ssh_string_from_char(terminal);
+ if (str == NULL) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH_CMSG_REQUEST_PTY) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, str) < 0) {
+ ssh_string_free(str);
+ return -1;
+ }
+ ssh_string_free(str);
+
+ if (buffer_add_u32(session->out_buffer, ntohl(row)) < 0 ||
+ buffer_add_u32(session->out_buffer, ntohl(col)) < 0 ||
+ buffer_add_u32(session->out_buffer, 0) < 0 || /* x */
+ buffer_add_u32(session->out_buffer, 0) < 0 || /* y */
+ buffer_add_u8(session->out_buffer, 0) < 0) { /* tty things */
+ return -1;
+ }
+
+ ssh_log(session, SSH_LOG_FUNCTIONS, "Opening a ssh1 pty");
+
+ if (packet_send(session) == SSH_ERROR) {
+ return -1;
+ }
+ switch(channel->request_state){
+ case SSH_CHANNEL_REQ_STATE_ERROR:
+ case SSH_CHANNEL_REQ_STATE_PENDING:
+ case SSH_CHANNEL_REQ_STATE_NONE:
+ channel->request_state=SSH_CHANNEL_REQ_STATE_NONE;
+ return SSH_ERROR;
+ case SSH_CHANNEL_REQ_STATE_ACCEPTED:
+ channel->request_state=SSH_CHANNEL_REQ_STATE_NONE;
+ ssh_log(session, SSH_LOG_RARE, "PTY: Success");
+ return SSH_OK;
+ case SSH_CHANNEL_REQ_STATE_DENIED:
+ channel->request_state=SSH_CHANNEL_REQ_STATE_NONE;
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Server denied PTY allocation");
+ ssh_log(session, SSH_LOG_RARE, "PTY: denied\n");
+ return SSH_ERROR;
+ }
+ // Not reached
+ return SSH_ERROR;
+}
+
+int channel_change_pty_size1(ssh_channel channel, int cols, int rows) {
+ ssh_session session = channel->session;
+ if(channel->request_state != SSH_CHANNEL_REQ_STATE_NONE){
+ ssh_set_error(session,SSH_REQUEST_DENIED,"Wrong request state");
+ return SSH_ERROR;
+ }
+ if (buffer_add_u8(session->out_buffer, SSH_CMSG_WINDOW_SIZE) < 0 ||
+ buffer_add_u32(session->out_buffer, ntohl(rows)) < 0 ||
+ buffer_add_u32(session->out_buffer, ntohl(cols)) < 0 ||
+ buffer_add_u32(session->out_buffer, 0) < 0 ||
+ buffer_add_u32(session->out_buffer, 0) < 0) {
+ return SSH_ERROR;
+ }
+ channel->request_state=SSH_CHANNEL_REQ_STATE_PENDING;
+ if (packet_send(session) == SSH_ERROR) {
+ return SSH_ERROR;
+ }
+
+ ssh_log(session, SSH_LOG_PROTOCOL, "Change pty size send");
+ while(channel->request_state==SSH_CHANNEL_REQ_STATE_PENDING){
+ ssh_handle_packets(session,-1);
+ }
+ switch(channel->request_state){
+ case SSH_CHANNEL_REQ_STATE_ERROR:
+ case SSH_CHANNEL_REQ_STATE_PENDING:
+ case SSH_CHANNEL_REQ_STATE_NONE:
+ channel->request_state=SSH_CHANNEL_REQ_STATE_NONE;
+ return SSH_ERROR;
+ case SSH_CHANNEL_REQ_STATE_ACCEPTED:
+ channel->request_state=SSH_CHANNEL_REQ_STATE_NONE;
+ ssh_log(session, SSH_LOG_PROTOCOL, "pty size changed");
+ return SSH_OK;
+ case SSH_CHANNEL_REQ_STATE_DENIED:
+ channel->request_state=SSH_CHANNEL_REQ_STATE_NONE;
+ ssh_log(session, SSH_LOG_RARE, "pty size change denied");
+ ssh_set_error(session, SSH_REQUEST_DENIED, "pty size change denied");
+ return SSH_ERROR;
+ }
+ // Not reached
+ return SSH_ERROR;
+
+}
+
+int channel_request_shell1(ssh_channel channel) {
+ ssh_session session = channel->session;
+
+ if (buffer_add_u8(session->out_buffer,SSH_CMSG_EXEC_SHELL) < 0) {
+ return -1;
+ }
+
+ if (packet_send(session) == SSH_ERROR) {
+ return -1;
+ }
+
+ ssh_log(session, SSH_LOG_RARE, "Launched a shell");
+
+ return 0;
+}
+
+int channel_request_exec1(ssh_channel channel, const char *cmd) {
+ ssh_session session = channel->session;
+ ssh_string command = NULL;
+
+ command = ssh_string_from_char(cmd);
+ if (command == NULL) {
+ return -1;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH_CMSG_EXEC_CMD) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, command) < 0) {
+ ssh_string_free(command);
+ return -1;
+ }
+ ssh_string_free(command);
+
+ if(packet_send(session) == SSH_ERROR) {
+ return -1;
+ }
+
+ ssh_log(session, SSH_LOG_RARE, "Executing %s ...", cmd);
+
+ return 0;
+}
+
+SSH_PACKET_CALLBACK(ssh_packet_data1){
+ ssh_channel channel = session->channels;
+ ssh_string str = NULL;
+ int is_stderr=(type==SSH_SMSG_STDOUT_DATA ? 0 : 1);
+ (void)user;
+ str = buffer_get_ssh_string(packet);
+ if (str == NULL) {
+ ssh_log(session, SSH_LOG_FUNCTIONS, "Invalid data packet !\n");
+ return SSH_PACKET_USED;
+ }
+
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Adding %zu bytes data in %d",
+ ssh_string_len(str), is_stderr);
+
+ if (channel_default_bufferize(channel, ssh_string_data(str), ssh_string_len(str),
+ is_stderr) < 0) {
+ ssh_string_free(str);
+ return SSH_PACKET_USED;
+ }
+ ssh_string_free(str);
+
+ return SSH_PACKET_USED;
+}
+
+SSH_PACKET_CALLBACK(ssh_packet_close1){
+ ssh_channel channel = session->channels;
+ uint32_t status;
+ (void)type;
+ (void)user;
+ buffer_get_u32(packet, &status);
+ /*
+ * It's much more than a channel closing. spec says it's the last
+ * message sent by server (strange)
+ */
+
+ /* actually status is lost somewhere */
+ channel->state = SSH_CHANNEL_STATE_CLOSED;
+ channel->remote_eof = 1;
+
+ buffer_add_u8(session->out_buffer, SSH_CMSG_EXIT_CONFIRMATION);
+ packet_send(session);
+
+ return SSH_PACKET_USED;
+}
+
+
+int channel_write1(ssh_channel channel, const void *data, int len) {
+ ssh_session session = channel->session;
+ int origlen = len;
+ int effectivelen;
+ const unsigned char *ptr=data;
+ while (len > 0) {
+ if (buffer_add_u8(session->out_buffer, SSH_CMSG_STDIN_DATA) < 0) {
+ return -1;
+ }
+
+ effectivelen = len > 32000 ? 32000 : len;
+
+ if (buffer_add_u32(session->out_buffer, htonl(effectivelen)) < 0 ||
+ buffer_add_data(session->out_buffer, ptr, effectivelen) < 0) {
+ return -1;
+ }
+
+ ptr += effectivelen;
+ len -= effectivelen;
+
+ if (packet_send(session) == SSH_ERROR) {
+ return -1;
+ }
+ }
+
+ return origlen;
+}
+
+#endif /* WITH_SSH1 */
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/client.c b/src/client.c
new file mode 100644
index 0000000..d12aa11
--- /dev/null
+++ b/src/client.c
@@ -0,0 +1,814 @@
+/*
+ * client.c - SSH client functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2008 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/priv.h"
+#include "libssh/ssh2.h"
+#include "libssh/buffer.h"
+#include "libssh/packet.h"
+#include "libssh/socket.h"
+#include "libssh/session.h"
+#include "libssh/dh.h"
+
+#define set_status(session, status) do {\
+ if (session->callbacks && session->callbacks->connect_status_function) \
+ session->callbacks->connect_status_function(session->callbacks->userdata, status); \
+ } while (0)
+
+/**
+ * @internal
+ * @brief Callback to be called when the socket is connected or had a
+ * connection error. Changes the state of the session and updates the error
+ * message.
+ * @param code one of SSH_SOCKET_CONNECTED_OK or SSH_SOCKET_CONNECTED_ERROR
+ * @param user is a pointer to session
+ */
+static void socket_callback_connected(int code, int errno_code, void *user){
+ ssh_session session=(ssh_session)user;
+ enter_function();
+ ssh_log(session,SSH_LOG_RARE,"Socket connection callback: %d (%d)",code, errno_code);
+ if(code == SSH_SOCKET_CONNECTED_OK)
+ session->session_state=SSH_SESSION_STATE_SOCKET_CONNECTED;
+ else {
+ session->session_state=SSH_SESSION_STATE_ERROR;
+ ssh_set_error(session,SSH_FATAL,"%s",strerror(errno_code));
+ }
+ session->ssh_connection_callback(session);
+ leave_function();
+}
+
+/**
+ * @internal
+ *
+ * @brief Gets the banner from socket and saves it in session.
+ * Updates the session state
+ *
+ * @param data pointer to the beginning of header
+ * @param len size of the banner
+ * @param user is a pointer to session
+ * @returns Number of bytes processed, or zero if the banner is not complete.
+ */
+static int callback_receive_banner(const void *data, size_t len, void *user) {
+ char *buffer = (char *)data;
+ ssh_session session=(ssh_session) user;
+ char *str = NULL;
+ size_t i;
+ int ret=0;
+ enter_function();
+ for(i=0;i<len;++i){
+#ifdef WITH_PCAP
+ if(session->pcap_ctx && buffer[i] == '\n'){
+ ssh_pcap_context_write(session->pcap_ctx,SSH_PCAP_DIR_IN,buffer,i+1,i+1);
+ }
+#endif
+ if(buffer[i]=='\r')
+ buffer[i]='\0';
+ if(buffer[i]=='\n'){
+ buffer[i]='\0';
+ str=strdup(buffer);
+ /* number of bytes read */
+ ret=i+1;
+ session->serverbanner=str;
+ session->session_state=SSH_SESSION_STATE_BANNER_RECEIVED;
+ ssh_log(session,SSH_LOG_PACKET,"Received banner: %s",str);
+ session->ssh_connection_callback(session);
+ leave_function();
+ return ret;
+ }
+ if(i>127){
+ /* Too big banner */
+ session->session_state=SSH_SESSION_STATE_ERROR;
+ ssh_set_error(session,SSH_FATAL,"Receiving banner: too large banner");
+ leave_function();
+ return 0;
+ }
+ }
+ leave_function();
+ return ret;
+}
+
+/**
+ * @internal
+ *
+ * @brief Analyze the SSH banner to find out if we have a SSHv1 or SSHv2
+ * server.
+ *
+ * @param session The session to analyze the banner from.
+ * @param ssh1 The variable which is set if it is a SSHv1 server.
+ * @param ssh2 The variable which is set if it is a SSHv2 server.
+ *
+ * @return 0 on success, < 0 on error.
+ *
+ * @see ssh_get_banner()
+ */
+static int ssh_analyze_banner(ssh_session session, int *ssh1, int *ssh2) {
+ const char *banner = session->serverbanner;
+ const char *openssh;
+
+ ssh_log(session, SSH_LOG_RARE, "Analyzing banner: %s", banner);
+
+ if (strncmp(banner, "SSH-", 4) != 0) {
+ ssh_set_error(session, SSH_FATAL, "Protocol mismatch: %s", banner);
+ return -1;
+ }
+
+ /*
+ * Typical banners e.g. are:
+ * SSH-1.5-blah
+ * SSH-1.99-blah
+ * SSH-2.0-blah
+ */
+ switch(banner[4]) {
+ case '1':
+ *ssh1 = 1;
+ if (banner[6] == '9') {
+ *ssh2 = 1;
+ } else {
+ *ssh2 = 0;
+ }
+ break;
+ case '2':
+ *ssh1 = 0;
+ *ssh2 = 1;
+ break;
+ default:
+ ssh_set_error(session, SSH_FATAL, "Protocol mismatch: %s", banner);
+ return -1;
+ }
+
+ openssh = strstr(banner, "OpenSSH");
+ if (openssh != NULL) {
+ int major, minor;
+ major = strtol(openssh + 8, (char **) NULL, 10);
+ minor = strtol(openssh + 10, (char **) NULL, 10);
+ session->openssh = SSH_VERSION_INT(major, minor, 0);
+ ssh_log(session, SSH_LOG_RARE,
+ "We are talking to an OpenSSH server version: %d.%d (%x)",
+ major, minor, session->openssh);
+ }
+
+ return 0;
+}
+
+/** @internal
+ * @brief Sends a SSH banner to the server.
+ *
+ * @param session The SSH session to use.
+ *
+ * @param server Send client or server banner.
+ *
+ * @return 0 on success, < 0 on error.
+ */
+int ssh_send_banner(ssh_session session, int server) {
+ const char *banner = NULL;
+ char buffer[128] = {0};
+ int err=SSH_ERROR;
+
+ enter_function();
+
+ banner = session->version == 1 ? CLIENTBANNER1 : CLIENTBANNER2;
+
+ if (session->xbanner) {
+ banner = session->xbanner;
+ }
+
+ if (server) {
+ session->serverbanner = strdup(banner);
+ if (session->serverbanner == NULL) {
+ goto end;
+ }
+ } else {
+ session->clientbanner = strdup(banner);
+ if (session->clientbanner == NULL) {
+ goto end;
+ }
+ }
+
+ snprintf(buffer, 128, "%s\n", banner);
+
+ if (ssh_socket_write(session->socket, buffer, strlen(buffer)) == SSH_ERROR) {
+ goto end;
+ }
+ if (ssh_socket_nonblocking_flush(session->socket) == SSH_ERROR){
+ goto end;
+ }
+#ifdef WITH_PCAP
+ if(session->pcap_ctx)
+ ssh_pcap_context_write(session->pcap_ctx,SSH_PCAP_DIR_OUT,buffer,strlen(buffer),strlen(buffer));
+#endif
+ err=SSH_OK;
+end:
+ leave_function();
+ return err;
+}
+
+
+
+SSH_PACKET_CALLBACK(ssh_packet_dh_reply){
+ ssh_string f = NULL;
+ ssh_string pubkey = NULL;
+ ssh_string signature = NULL;
+ (void)type;
+ (void)user;
+ ssh_log(session,SSH_LOG_PROTOCOL,"Received SSH_KEXDH_REPLY");
+ if(session->session_state!= SSH_SESSION_STATE_DH &&
+ session->dh_handshake_state != DH_STATE_INIT_SENT){
+ ssh_set_error(session,SSH_FATAL,"ssh_packet_dh_reply called in wrong state : %d:%d",
+ session->session_state,session->dh_handshake_state);
+ goto error;
+ }
+
+ pubkey = buffer_get_ssh_string(packet);
+ if (pubkey == NULL){
+ ssh_set_error(session,SSH_FATAL, "No public key in packet");
+ goto error;
+ }
+ dh_import_pubkey(session, pubkey);
+
+ f = buffer_get_ssh_string(packet);
+ if (f == NULL) {
+ ssh_set_error(session,SSH_FATAL, "No F number in packet");
+ goto error;
+ }
+ if (dh_import_f(session, f) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Cannot import f number");
+ goto error;
+ }
+ ssh_string_burn(f);
+ ssh_string_free(f);
+ f=NULL;
+ signature = buffer_get_ssh_string(packet);
+ if (signature == NULL) {
+ ssh_set_error(session, SSH_FATAL, "No signature in packet");
+ goto error;
+ }
+ session->dh_server_signature = signature;
+ signature=NULL; /* ownership changed */
+ if (dh_build_k(session) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Cannot build k number");
+ goto error;
+ }
+
+ /* Send the MSG_NEWKEYS */
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_NEWKEYS) < 0) {
+ goto error;
+ }
+
+ packet_send(session);
+ ssh_log(session, SSH_LOG_PROTOCOL, "SSH_MSG_NEWKEYS sent");
+
+ session->dh_handshake_state = DH_STATE_NEWKEYS_SENT;
+ return SSH_PACKET_USED;
+error:
+ session->session_state=SSH_SESSION_STATE_ERROR;
+ return SSH_PACKET_USED;
+}
+
+SSH_PACKET_CALLBACK(ssh_packet_newkeys){
+ ssh_string signature = NULL;
+ int rc;
+ (void)packet;
+ (void)user;
+ (void)type;
+ ssh_log(session, SSH_LOG_PROTOCOL, "Received SSH_MSG_NEWKEYS");
+ if(session->session_state!= SSH_SESSION_STATE_DH &&
+ session->dh_handshake_state != DH_STATE_NEWKEYS_SENT){
+ ssh_set_error(session,SSH_FATAL,"ssh_packet_newkeys called in wrong state : %d:%d",
+ session->session_state,session->dh_handshake_state);
+ goto error;
+ }
+ if(session->server){
+ /* server things are done in server.c */
+ session->dh_handshake_state=DH_STATE_FINISHED;
+ } else {
+ /* client */
+ rc = make_sessionid(session);
+ if (rc != SSH_OK) {
+ goto error;
+ }
+
+ /*
+ * Set the cryptographic functions for the next crypto
+ * (it is needed for generate_session_keys for key lengths)
+ */
+ if (crypt_set_algorithms(session)) {
+ goto error;
+ }
+
+ if (generate_session_keys(session) < 0) {
+ goto error;
+ }
+
+ /* Verify the host's signature. FIXME do it sooner */
+ signature = session->dh_server_signature;
+ session->dh_server_signature = NULL;
+ if (signature_verify(session, signature)) {
+ goto error;
+ }
+
+ /* forget it for now ... */
+ ssh_string_burn(signature);
+ ssh_string_free(signature);
+ signature=NULL;
+ /*
+ * Once we got SSH2_MSG_NEWKEYS we can switch next_crypto and
+ * current_crypto
+ */
+ if (session->current_crypto) {
+ crypto_free(session->current_crypto);
+ session->current_crypto=NULL;
+ }
+
+ /* FIXME later, include a function to change keys */
+ session->current_crypto = session->next_crypto;
+
+ session->next_crypto = crypto_new();
+ if (session->next_crypto == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+ }
+ session->dh_handshake_state = DH_STATE_FINISHED;
+ session->ssh_connection_callback(session);
+ return SSH_PACKET_USED;
+error:
+ session->session_state=SSH_SESSION_STATE_ERROR;
+ return SSH_PACKET_USED;
+}
+
+/** @internal
+ * @brief launches the DH handshake state machine
+ * @param session session handle
+ * @returns SSH_OK or SSH_ERROR
+ * @warning this function returning is no proof that DH handshake is
+ * completed
+ */
+static int dh_handshake(ssh_session session) {
+ ssh_string e = NULL;
+ ssh_string f = NULL;
+ ssh_string signature = NULL;
+ int rc = SSH_ERROR;
+
+ enter_function();
+
+ switch (session->dh_handshake_state) {
+ case DH_STATE_INIT:
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_KEXDH_INIT) < 0) {
+ goto error;
+ }
+
+ if (dh_generate_x(session) < 0) {
+ goto error;
+ }
+ if (dh_generate_e(session) < 0) {
+ goto error;
+ }
+
+ e = dh_get_e(session);
+ if (e == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(session->out_buffer, e) < 0) {
+ goto error;
+ }
+ ssh_string_burn(e);
+ ssh_string_free(e);
+ e=NULL;
+
+ rc = packet_send(session);
+ if (rc == SSH_ERROR) {
+ goto error;
+ }
+
+ session->dh_handshake_state = DH_STATE_INIT_SENT;
+ case DH_STATE_INIT_SENT:
+ /* wait until ssh_packet_dh_reply is called */
+ break;
+ case DH_STATE_NEWKEYS_SENT:
+ /* wait until ssh_packet_newkeys is called */
+ break;
+ case DH_STATE_FINISHED:
+ leave_function();
+ return SSH_OK;
+ default:
+ ssh_set_error(session, SSH_FATAL, "Invalid state in dh_handshake(): %d",
+ session->dh_handshake_state);
+ leave_function();
+ return SSH_ERROR;
+ }
+
+ leave_function();
+ return SSH_AGAIN;
+error:
+ if(e != NULL){
+ ssh_string_burn(e);
+ ssh_string_free(e);
+ }
+ if(f != NULL){
+ ssh_string_burn(f);
+ ssh_string_free(f);
+ }
+ if(signature != NULL){
+ ssh_string_burn(signature);
+ ssh_string_free(signature);
+ }
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @internal
+ * @brief handles a SSH_SERVICE_ACCEPT packet
+ *
+ */
+SSH_PACKET_CALLBACK(ssh_packet_service_accept){
+ (void)packet;
+ (void)type;
+ (void)user;
+ enter_function();
+ session->auth_service_state=SSH_AUTH_SERVICE_ACCEPTED;
+ ssh_log(session, SSH_LOG_PACKET,
+ "Received SSH_MSG_SERVICE_ACCEPT");
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ *
+ * @brief Request a service from the SSH server.
+ *
+ * Service requests are for example: ssh-userauth, ssh-connection, etc.
+ *
+ * @param session The session to use to ask for a service request.
+ * @param service The service request.
+ *
+ * @return SSH_OK on success
+ * @return SSH_ERROR on error
+ * @return SSH_AGAIN No response received yet
+ * @bug actually only works with ssh-userauth
+ */
+int ssh_service_request(ssh_session session, const char *service) {
+ ssh_string service_s = NULL;
+ int rc=SSH_ERROR;
+ enter_function();
+ switch(session->auth_service_state){
+ case SSH_AUTH_SERVICE_NONE:
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_SERVICE_REQUEST) < 0) {
+ break;
+ }
+ service_s = ssh_string_from_char(service);
+ if (service_s == NULL) {
+ break;
+ }
+
+ if (buffer_add_ssh_string(session->out_buffer,service_s) < 0) {
+ ssh_string_free(service_s);
+ break;
+ }
+ ssh_string_free(service_s);
+
+ if (packet_send(session) == SSH_ERROR) {
+ ssh_set_error(session, SSH_FATAL,
+ "Sending SSH2_MSG_SERVICE_REQUEST failed.");
+ break;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Sent SSH_MSG_SERVICE_REQUEST (service %s)", service);
+ session->auth_service_state=SSH_AUTH_SERVICE_SENT;
+ rc=SSH_AGAIN;
+ break;
+ case SSH_AUTH_SERVICE_DENIED:
+ ssh_set_error(session,SSH_FATAL,"ssh_auth_service request denied");
+ break;
+ case SSH_AUTH_SERVICE_ACCEPTED:
+ rc=SSH_OK;
+ break;
+ case SSH_AUTH_SERVICE_SENT:
+ rc=SSH_AGAIN;
+ break;
+ case SSH_AUTH_SERVICE_USER_SENT:
+ /* Invalid state, SSH1 specific */
+ rc=SSH_ERROR;
+ break;
+ }
+
+ leave_function();
+ return rc;
+}
+
+/**
+ * @addtogroup libssh_session
+ *
+ * @{
+ */
+
+/**
+ * @internal
+ *
+ * @brief A function to be called each time a step has been done in the
+ * connection.
+ */
+static void ssh_client_connection_callback(ssh_session session){
+ int ssh1,ssh2;
+ enter_function();
+ switch(session->session_state){
+ case SSH_SESSION_STATE_NONE:
+ case SSH_SESSION_STATE_CONNECTING:
+ case SSH_SESSION_STATE_SOCKET_CONNECTED:
+ break;
+ case SSH_SESSION_STATE_BANNER_RECEIVED:
+ if (session->serverbanner == NULL) {
+ goto error;
+ }
+ set_status(session, 0.4f);
+ ssh_log(session, SSH_LOG_RARE,
+ "SSH server banner: %s", session->serverbanner);
+
+ /* Here we analyze the different protocols the server allows. */
+ if (ssh_analyze_banner(session, &ssh1, &ssh2) < 0) {
+ goto error;
+ }
+ /* Here we decide which version of the protocol to use. */
+ if (ssh2 && session->ssh2) {
+ session->version = 2;
+ } else if(ssh1 && session->ssh1) {
+ session->version = 1;
+ } else if(ssh1 && !session->ssh1){
+#ifdef WITH_SSH1
+ ssh_set_error(session, SSH_FATAL,
+ "SSH-1 protocol not available (configure session to allow SSH-1)");
+ goto error;
+#else
+ ssh_set_error(session, SSH_FATAL,
+ "SSH-1 protocol not available (libssh compiled without SSH-1 support)");
+ goto error;
+#endif
+ } else {
+ ssh_set_error(session, SSH_FATAL,
+ "No version of SSH protocol usable (banner: %s)",
+ session->serverbanner);
+ goto error;
+ }
+ /* from now, the packet layer is handling incoming packets */
+ if(session->version==2)
+ session->socket_callbacks.data=ssh_packet_socket_callback;
+#ifdef WITH_SSH1
+ else
+ session->socket_callbacks.data=ssh_packet_socket_callback1;
+#endif
+ ssh_packet_set_default_callbacks(session);
+ ssh_send_banner(session, 0);
+ set_status(session, 0.5f);
+ session->session_state=SSH_SESSION_STATE_INITIAL_KEX;
+ break;
+ case SSH_SESSION_STATE_INITIAL_KEX:
+ /* TODO: This state should disappear in favor of get_key handle */
+#ifdef WITH_SSH1
+ if(session->version==1){
+ if (ssh_get_kex1(session) < 0)
+ goto error;
+ set_status(session,0.6f);
+ session->connected = 1;
+ break;
+ }
+#endif
+ break;
+ case SSH_SESSION_STATE_KEXINIT_RECEIVED:
+ set_status(session,0.6f);
+ ssh_list_kex(session, &session->server_kex);
+ if (set_kex(session) < 0) {
+ goto error;
+ }
+ if (ssh_send_kex(session, 0) < 0) {
+ goto error;
+ }
+ set_status(session,0.8f);
+ session->session_state=SSH_SESSION_STATE_DH;
+ if (dh_handshake(session) == SSH_ERROR) {
+ goto error;
+ }
+ case SSH_SESSION_STATE_DH:
+ if(session->dh_handshake_state==DH_STATE_FINISHED){
+ set_status(session,1.0f);
+ session->connected = 1;
+ session->session_state=SSH_SESSION_STATE_AUTHENTICATING;
+ }
+ break;
+ case SSH_SESSION_STATE_AUTHENTICATING:
+ break;
+ case SSH_SESSION_STATE_ERROR:
+ goto error;
+ default:
+ ssh_set_error(session,SSH_FATAL,"Invalid state %d",session->session_state);
+ }
+ leave_function();
+ return;
+ error:
+ ssh_socket_close(session->socket);
+ session->alive = 0;
+ session->session_state=SSH_SESSION_STATE_ERROR;
+ leave_function();
+}
+
+/**
+ * @brief Connect to the ssh server.
+ *
+ * @param[in] session The ssh session to connect.
+ *
+ * @returns SSH_OK on success, SSH_ERROR on error.
+ *
+ * @see ssh_new()
+ * @see ssh_disconnect()
+ */
+int ssh_connect(ssh_session session) {
+ int ret;
+
+ if (session == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Invalid session pointer");
+ return SSH_ERROR;
+ }
+
+ enter_function();
+
+ session->alive = 0;
+ session->client = 1;
+
+ if (ssh_init() < 0) {
+ leave_function();
+ return SSH_ERROR;
+ }
+ if (session->fd == SSH_INVALID_SOCKET && session->host == NULL && session->ProxyCommand == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Hostname required");
+ leave_function();
+ return SSH_ERROR;
+ }
+
+ ret = ssh_options_apply(session);
+ if (ret < 0) {
+ ssh_set_error(session, SSH_FATAL, "Couldn't apply options");
+ leave_function();
+ return SSH_ERROR;
+ }
+
+ session->ssh_connection_callback = ssh_client_connection_callback;
+ session->session_state=SSH_SESSION_STATE_CONNECTING;
+ ssh_socket_set_callbacks(session->socket,&session->socket_callbacks);
+ session->socket_callbacks.connected=socket_callback_connected;
+ session->socket_callbacks.data=callback_receive_banner;
+ session->socket_callbacks.exception=ssh_socket_exception_callback;
+ session->socket_callbacks.userdata=session;
+ if (session->fd != SSH_INVALID_SOCKET) {
+ ssh_socket_set_fd(session->socket, session->fd);
+ ret=SSH_OK;
+#ifndef _WIN32
+ } else if (session->ProxyCommand != NULL){
+ ret=ssh_socket_connect_proxycommand(session->socket, session->ProxyCommand);
+#endif
+ } else {
+ ret=ssh_socket_connect(session->socket, session->host, session->port,
+ session->bindaddr);
+
+ /*, session->timeout * 1000 + session->timeout_usec); */
+ }
+ if (ret == SSH_ERROR) {
+ leave_function();
+ return SSH_ERROR;
+ }
+
+ set_status(session, 0.2f);
+
+ session->alive = 1;
+ ssh_log(session,SSH_LOG_PROTOCOL,"Socket connecting, now waiting for the callbacks to work");
+ while(session->session_state != SSH_SESSION_STATE_ERROR &&
+ session->session_state != SSH_SESSION_STATE_AUTHENTICATING &&
+ session->session_state != SSH_SESSION_STATE_DISCONNECTED){
+ /* loop until SSH_SESSION_STATE_BANNER_RECEIVED or
+ * SSH_SESSION_STATE_ERROR */
+ ssh_handle_packets(session,-1);
+ ssh_log(session,SSH_LOG_PACKET,"ssh_connect: Actual state : %d",session->session_state);
+ }
+ leave_function();
+ if(session->session_state == SSH_SESSION_STATE_ERROR || session->session_state == SSH_SESSION_STATE_DISCONNECTED)
+ return SSH_ERROR;
+ return SSH_OK;
+}
+
+/**
+ * @brief Get the issue banner from the server.
+ *
+ * This is the banner showing a disclaimer to users who log in,
+ * typically their right or the fact that they will be monitored.
+ *
+ * @param[in] session The SSH session to use.
+ *
+ * @return A newly allocated string with the banner, NULL on error.
+ */
+char *ssh_get_issue_banner(ssh_session session) {
+ if (session == NULL || session->banner == NULL) {
+ return NULL;
+ }
+
+ return ssh_string_to_char(session->banner);
+}
+
+/**
+ * @brief Get the version of the OpenSSH server, if it is not an OpenSSH server
+ * then 0 will be returned.
+ *
+ * You can use the SSH_VERSION_INT macro to compare version numbers.
+ *
+ * @param[in] session The SSH session to use.
+ *
+ * @return The version number if available, 0 otherwise.
+ */
+int ssh_get_openssh_version(ssh_session session) {
+ if (session == NULL) {
+ return 0;
+ }
+
+ return session->openssh;
+}
+
+/**
+ * @brief Disconnect from a session (client or server).
+ * The session can then be reused to open a new session.
+ *
+ * @param[in] session The SSH session to use.
+ */
+void ssh_disconnect(ssh_session session) {
+ ssh_string str = NULL;
+
+ if (session == NULL) {
+ return;
+ }
+
+ enter_function();
+
+ if (ssh_socket_is_open(session->socket)) {
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_DISCONNECT) < 0) {
+ goto error;
+ }
+ if (buffer_add_u32(session->out_buffer,
+ htonl(SSH2_DISCONNECT_BY_APPLICATION)) < 0) {
+ goto error;
+ }
+
+ str = ssh_string_from_char("Bye Bye");
+ if (str == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(session->out_buffer,str) < 0) {
+ ssh_string_free(str);
+ goto error;
+ }
+ ssh_string_free(str);
+
+ packet_send(session);
+ ssh_socket_close(session->socket);
+ }
+ session->alive = 0;
+
+error:
+ leave_function();
+}
+
+const char *ssh_copyright(void) {
+ return SSH_STRINGIFY(LIBSSH_VERSION) " (c) 2003-2010 Aris Adamantiadis "
+ "(aris@0xbadc0de.be) Distributed under the LGPL, please refer to COPYING"
+ "file for information about your rights";
+}
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/config.c b/src/config.c
new file mode 100644
index 0000000..cfe2cc5
--- /dev/null
+++ b/src/config.c
@@ -0,0 +1,347 @@
+/*
+ * config.c - parse the ssh config file
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <ctype.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "libssh/priv.h"
+#include "libssh/session.h"
+#include "libssh/misc.h"
+
+enum ssh_config_opcode_e {
+ SOC_UNSUPPORTED = -1,
+ SOC_HOST,
+ SOC_HOSTNAME,
+ SOC_PORT,
+ SOC_USERNAME,
+ SOC_IDENTITY,
+ SOC_CIPHERS,
+ SOC_COMPRESSION,
+ SOC_TIMEOUT,
+ SOC_PROTOCOL,
+ SOC_HOSTKEYCHECK,
+ SOC_KNOWNHOSTS,
+ SOC_PROXYCOMMAND
+};
+
+struct ssh_config_keyword_table_s {
+ const char *name;
+ enum ssh_config_opcode_e opcode;
+};
+
+static struct ssh_config_keyword_table_s ssh_config_keyword_table[] = {
+ { "host", SOC_HOST },
+ { "hostname", SOC_HOSTNAME },
+ { "port", SOC_PORT },
+ { "user", SOC_USERNAME },
+ { "identityfile", SOC_IDENTITY },
+ { "ciphers", SOC_CIPHERS },
+ { "compression", SOC_COMPRESSION },
+ { "connecttimeout", SOC_TIMEOUT },
+ { "protocol", SOC_PROTOCOL },
+ { "stricthostkeychecking", SOC_HOSTKEYCHECK },
+ { "userknownhostsfile", SOC_KNOWNHOSTS },
+ { "proxycommand", SOC_PROXYCOMMAND },
+ { NULL, SOC_UNSUPPORTED }
+};
+
+static enum ssh_config_opcode_e ssh_config_get_opcode(char *keyword) {
+ int i;
+
+ for (i = 0; ssh_config_keyword_table[i].name != NULL; i++) {
+ if (strcasecmp(keyword, ssh_config_keyword_table[i].name) == 0) {
+ return ssh_config_keyword_table[i].opcode;
+ }
+ }
+
+ return SOC_UNSUPPORTED;
+}
+
+static char *ssh_config_get_token(char **str) {
+ register char *c;
+ char *r;
+
+ /* Ignore leading spaces */
+ for (c = *str; *c; c++) {
+ if (! isblank(*c)) {
+ break;
+ }
+ }
+
+ if (*c == '\"') {
+ for (r = ++c; *c; c++) {
+ if (*c == '\"') {
+ *c = '\0';
+ goto out;
+ }
+ }
+ }
+
+ for (r = c; *c; c++) {
+ if (isblank(*c)) {
+ *c = '\0';
+ goto out;
+ }
+ }
+
+out:
+ *str = c + 1;
+
+ return r;
+}
+
+static int ssh_config_get_int(char **str, int notfound) {
+ char *p, *endp;
+ int i;
+
+ p = ssh_config_get_token(str);
+ if (p && *p) {
+ i = strtol(p, &endp, 10);
+ if (p == endp) {
+ return notfound;
+ }
+ return i;
+ }
+
+ return notfound;
+}
+
+static const char *ssh_config_get_str(char **str, const char *def) {
+ char *p;
+
+ p = ssh_config_get_token(str);
+ if (p && *p) {
+ return p;
+ }
+
+ return def;
+}
+
+static int ssh_config_get_yesno(char **str, int notfound) {
+ const char *p;
+
+ p = ssh_config_get_str(str, NULL);
+ if (p == NULL) {
+ return notfound;
+ }
+
+ if (strncasecmp(p, "yes", 3) == 0) {
+ return 1;
+ } else if (strncasecmp(p, "no", 2) == 0) {
+ return 0;
+ }
+
+ return notfound;
+}
+
+static int ssh_config_parse_line(ssh_session session, const char *line,
+ unsigned int count, int *parsing) {
+ enum ssh_config_opcode_e opcode;
+ const char *p;
+ char *s, *x;
+ char *keyword;
+ char *lowerhost;
+ size_t len;
+ int i;
+
+ x = s = strdup(line);
+ if (s == NULL) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+
+ /* Remove trailing spaces */
+ for (len = strlen(s) - 1; len > 0; len--) {
+ if (! isspace(s[len])) {
+ break;
+ }
+ s[len] = '\0';
+ }
+
+ keyword = ssh_config_get_token(&s);
+ if (keyword == NULL || *keyword == '#' ||
+ *keyword == '\0' || *keyword == '\n') {
+ SAFE_FREE(x);
+ return 0;
+ }
+
+ opcode = ssh_config_get_opcode(keyword);
+
+ switch (opcode) {
+ case SOC_HOST:
+ *parsing = 0;
+ lowerhost = (session->host) ? ssh_lowercase(session->host) : NULL;
+ for (p = ssh_config_get_str(&s, NULL); p && *p;
+ p = ssh_config_get_str(&s, NULL)) {
+ if (match_hostname(lowerhost, p, strlen(p))) {
+ *parsing = 1;
+ }
+ }
+ SAFE_FREE(lowerhost);
+ break;
+ case SOC_HOSTNAME:
+ p = ssh_config_get_str(&s, NULL);
+ if (p && *parsing) {
+ ssh_options_set(session, SSH_OPTIONS_HOST, p);
+ }
+ break;
+ case SOC_PORT:
+ if (session->port == 22) {
+ p = ssh_config_get_str(&s, NULL);
+ if (p && *parsing) {
+ ssh_options_set(session, SSH_OPTIONS_PORT_STR, p);
+ }
+ }
+ break;
+ case SOC_USERNAME:
+ if (session->username == NULL) {
+ p = ssh_config_get_str(&s, NULL);
+ if (p && *parsing) {
+ ssh_options_set(session, SSH_OPTIONS_USER, p);
+ }
+ }
+ break;
+ case SOC_IDENTITY:
+ p = ssh_config_get_str(&s, NULL);
+ if (p && *parsing) {
+ ssh_options_set(session, SSH_OPTIONS_ADD_IDENTITY, p);
+ }
+ break;
+ case SOC_CIPHERS:
+ p = ssh_config_get_str(&s, NULL);
+ if (p && *parsing) {
+ ssh_options_set(session, SSH_OPTIONS_CIPHERS_C_S, p);
+ ssh_options_set(session, SSH_OPTIONS_CIPHERS_S_C, p);
+ }
+ break;
+ case SOC_COMPRESSION:
+ i = ssh_config_get_yesno(&s, -1);
+ if (i >= 0 && *parsing) {
+ if (i) {
+ ssh_options_set(session, SSH_OPTIONS_COMPRESSION_C_S, "zlib,none");
+ ssh_options_set(session, SSH_OPTIONS_COMPRESSION_S_C, "zlib,none");
+ } else {
+ ssh_options_set(session, SSH_OPTIONS_COMPRESSION_C_S, "none");
+ ssh_options_set(session, SSH_OPTIONS_COMPRESSION_S_C, "none");
+ }
+ }
+ break;
+ case SOC_PROTOCOL:
+ p = ssh_config_get_str(&s, NULL);
+ if (p && *parsing) {
+ char *a, *b;
+ b = strdup(p);
+ if (b == NULL) {
+ SAFE_FREE(x);
+ ssh_set_error_oom(session);
+ return -1;
+ }
+ i = 0;
+ ssh_options_set(session, SSH_OPTIONS_SSH1, &i);
+ ssh_options_set(session, SSH_OPTIONS_SSH2, &i);
+
+ for (a = strtok(b, ","); a; a = strtok(NULL, ",")) {
+ switch (atoi(a)) {
+ case 1:
+ i = 1;
+ ssh_options_set(session, SSH_OPTIONS_SSH1, &i);
+ break;
+ case 2:
+ i = 1;
+ ssh_options_set(session, SSH_OPTIONS_SSH2, &i);
+ break;
+ default:
+ break;
+ }
+ }
+ SAFE_FREE(b);
+ }
+ break;
+ case SOC_TIMEOUT:
+ i = ssh_config_get_int(&s, -1);
+ if (i >= 0 && *parsing) {
+ ssh_options_set(session, SSH_OPTIONS_TIMEOUT, &i);
+ }
+ break;
+ case SOC_HOSTKEYCHECK:
+ i = ssh_config_get_yesno(&s, -1);
+ if (i >= 0 && *parsing) {
+ ssh_options_set(session, SSH_OPTIONS_HOSTKEYCHECK, &i);
+ }
+ break;
+ case SOC_KNOWNHOSTS:
+ p = ssh_config_get_str(&s, NULL);
+ if (p && *parsing) {
+ ssh_options_set(session, SSH_OPTIONS_KNOWNHOSTS, p);
+ }
+ break;
+ case SOC_PROXYCOMMAND:
+ p = ssh_config_get_str(&s, NULL);
+ if (p && *parsing) {
+ ssh_options_set(session, SSH_OPTIONS_PROXYCOMMAND, p);
+ }
+ break;
+ case SOC_UNSUPPORTED:
+ ssh_log(session, SSH_LOG_RARE, "Unsupported option: %s, line: %d\n",
+ keyword, count);
+ break;
+ default:
+ ssh_set_error(session, SSH_FATAL, "ERROR - unimplemented opcode: %d\n",
+ opcode);
+ SAFE_FREE(x);
+ return -1;
+ break;
+ }
+
+ SAFE_FREE(x);
+ return 0;
+}
+
+/* ssh_config_parse_file */
+int ssh_config_parse_file(ssh_session session, const char *filename) {
+ char line[1024] = {0};
+ unsigned int count = 0;
+ FILE *f;
+ int parsing;
+
+ if ((f = fopen(filename, "r")) == NULL) {
+ return 0;
+ }
+
+ if (session->log_verbosity) {
+ fprintf(stderr, "Reading configuration data from %s\n", filename);
+ }
+
+ parsing = 1;
+ while (fgets(line, sizeof(line), f)) {
+ count++;
+ if (ssh_config_parse_line(session, line, count, &parsing) < 0) {
+ fclose(f);
+ return -1;
+ }
+ }
+
+ fclose(f);
+ return 0;
+}
diff --git a/src/connect.c b/src/connect.c
new file mode 100644
index 0000000..d877982
--- /dev/null
+++ b/src/connect.c
@@ -0,0 +1,600 @@
+/*
+ * connect.c - handles connections to ssh servers
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2009 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef _WIN32
+/*
+ * Only use Windows API functions available on Windows 2000 SP4 or later.
+ * The available constants are in <sdkddkver.h>.
+ * http://msdn.microsoft.com/en-us/library/aa383745.aspx
+ * http://blogs.msdn.com/oldnewthing/archive/2007/04/11/2079137.aspx
+ */
+#undef _WIN32_WINNT
+#ifdef HAVE_WSPIAPI_H
+#define _WIN32_WINNT 0x0500 /* _WIN32_WINNT_WIN2K */
+#undef NTDDI_VERSION
+#define NTDDI_VERSION 0x05000400 /* NTDDI_WIN2KSP4 */
+#else
+#define _WIN32_WINNT 0x0501 /* _WIN32_WINNT_WINXP */
+#undef NTDDI_VERSION
+#define NTDDI_VERSION 0x05010000 /* NTDDI_WINXP */
+#endif
+
+#if _MSC_VER >= 1400
+#include <io.h>
+#undef close
+#define close _close
+#endif /* _MSC_VER */
+#include <winsock2.h>
+#include <ws2tcpip.h>
+
+/* <wspiapi.h> is necessary for getaddrinfo before Windows XP, but it isn't
+ * available on some platforms like MinGW. */
+#ifdef HAVE_WSPIAPI_H
+#include <wspiapi.h>
+#endif
+
+#else /* _WIN32 */
+
+#include <netdb.h>
+#include <sys/socket.h>
+#include <sys/select.h>
+#include <netinet/in.h>
+
+#endif /* _WIN32 */
+
+#include "libssh/priv.h"
+#include "libssh/socket.h"
+#include "libssh/channels.h"
+#include "libssh/session.h"
+
+#ifndef HAVE_SELECT
+#error "Your system must have select()"
+#endif
+
+#ifndef HAVE_GETADDRINFO
+#error "Your system must have getaddrinfo()"
+#endif
+
+#ifdef HAVE_REGCOMP
+/* don't declare gnu extended regexp's */
+#ifndef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE
+#endif
+#include <regex.h>
+#endif /* HAVE_REGCOMP */
+
+#ifdef _WIN32
+void ssh_sock_set_nonblocking(socket_t sock) {
+ u_long nonblocking = 1;
+ ioctlsocket(sock, FIONBIO, &nonblocking);
+}
+
+void ssh_sock_set_blocking(socket_t sock) {
+ u_long nonblocking = 0;
+ ioctlsocket(sock, FIONBIO, &nonblocking);
+}
+
+#ifndef gai_strerror
+char WSAAPI *gai_strerrorA(int code) {
+ static char buf[256];
+
+ snprintf(buf, sizeof(buf), "Undetermined error code (%d)", code);
+
+ return buf;
+}
+#endif /* gai_strerror */
+
+#else /* _WIN32 */
+void ssh_sock_set_nonblocking(socket_t sock) {
+ fcntl(sock, F_SETFL, O_NONBLOCK);
+}
+
+void ssh_sock_set_blocking(socket_t sock) {
+ fcntl(sock, F_SETFL, 0);
+}
+
+#endif /* _WIN32 */
+
+#ifdef HAVE_REGCOMP
+static regex_t *ip_regex = NULL;
+
+/** @internal
+ * @brief initializes and compile the regexp to be used for IP matching
+ * @returns -1 on error (and error message is set)
+ * @returns 0 on success
+ */
+int ssh_regex_init(){
+ if(ip_regex==NULL){
+ int err;
+ regex_t *regex=malloc(sizeof (regex_t));
+ ZERO_STRUCTP(regex);
+ err=regcomp(regex,"^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+$",REG_EXTENDED | REG_NOSUB);
+ if(err != 0){
+ char buffer[128];
+ regerror(err,regex,buffer,sizeof(buffer));
+ fprintf(stderr,"Error while compiling regular expression : %s\n",buffer);
+ SAFE_FREE(regex);
+ return -1;
+ }
+ ip_regex=regex;
+ }
+ return 0;
+}
+
+/** @internal
+ * @brief clean up the IP regexp
+ */
+void ssh_regex_finalize(){
+ if(ip_regex){
+ regfree(ip_regex);
+ SAFE_FREE(ip_regex);
+ }
+}
+
+#else /* HAVE_REGCOMP */
+int ssh_regex_init(){
+ return 0;
+}
+void ssh_regex_finalize(){
+}
+#endif
+
+
+static int ssh_connect_socket_close(socket_t s){
+#ifdef _WIN32
+ return closesocket(s);
+#else
+ return close(s);
+#endif
+}
+
+
+static int getai(ssh_session session, const char *host, int port, struct addrinfo **ai) {
+ const char *service = NULL;
+ struct addrinfo hints;
+ char s_port[10];
+
+ ZERO_STRUCT(hints);
+
+ hints.ai_protocol = IPPROTO_TCP;
+ hints.ai_family = PF_UNSPEC;
+ hints.ai_socktype = SOCK_STREAM;
+
+ if (port == 0) {
+ hints.ai_flags = AI_PASSIVE;
+ } else {
+ snprintf(s_port, sizeof(s_port), "%hu", (unsigned short)port);
+ service = s_port;
+#ifdef AI_NUMERICSERV
+ hints.ai_flags=AI_NUMERICSERV;
+#endif
+ }
+#ifdef HAVE_REGCOMP
+ if(regexec(ip_regex,host,0,NULL,0) == 0){
+ /* this is an IP address */
+ ssh_log(session,SSH_LOG_PACKET,"host %s matches an IP address",host);
+ hints.ai_flags |= AI_NUMERICHOST;
+ }
+#endif
+ return getaddrinfo(host, service, &hints, ai);
+}
+
+static int ssh_connect_ai_timeout(ssh_session session, const char *host,
+ int port, struct addrinfo *ai, long timeout, long usec, socket_t s) {
+ struct timeval to;
+ fd_set set;
+ int rc = 0;
+ unsigned int len = sizeof(rc);
+
+ enter_function();
+
+ to.tv_sec = timeout;
+ to.tv_usec = usec;
+
+ ssh_sock_set_nonblocking(s);
+
+ ssh_log(session, SSH_LOG_RARE, "Trying to connect to host: %s:%d with "
+ "timeout %ld.%ld", host, port, timeout, usec);
+
+ /* The return value is checked later */
+ connect(s, ai->ai_addr, ai->ai_addrlen);
+ freeaddrinfo(ai);
+
+ FD_ZERO(&set);
+ FD_SET(s, &set);
+
+ rc = select(s + 1, NULL, &set, NULL, &to);
+ if (rc == 0) {
+ /* timeout */
+ ssh_set_error(session, SSH_FATAL,
+ "Timeout while connecting to %s:%d", host, port);
+ ssh_connect_socket_close(s);
+ leave_function();
+ return -1;
+ }
+
+ if (rc < 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Select error: %s", strerror(errno));
+ ssh_connect_socket_close(s);
+ leave_function();
+ return -1;
+ }
+ rc = 0;
+
+ /* Get connect(2) return code. Zero means no error */
+ getsockopt(s, SOL_SOCKET, SO_ERROR,(char *) &rc, &len);
+ if (rc != 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Connect to %s:%d failed: %s", host, port, strerror(rc));
+ ssh_connect_socket_close(s);
+ leave_function();
+ return -1;
+ }
+
+ /* s is connected ? */
+ ssh_log(session, SSH_LOG_PACKET, "Socket connected with timeout\n");
+ ssh_sock_set_blocking(s);
+
+ leave_function();
+ return s;
+}
+
+/**
+ * @internal
+ *
+ * @brief Connect to an IPv4 or IPv6 host specified by its IP address or
+ * hostname.
+ *
+ * @returns A file descriptor, < 0 on error.
+ */
+socket_t ssh_connect_host(ssh_session session, const char *host,
+ const char *bind_addr, int port, long timeout, long usec) {
+ socket_t s = -1;
+ int rc;
+ struct addrinfo *ai;
+ struct addrinfo *itr;
+
+ enter_function();
+
+ rc = getai(session,host, port, &ai);
+ if (rc != 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Failed to resolve hostname %s (%s)", host, gai_strerror(rc));
+ leave_function();
+ return -1;
+ }
+
+ for (itr = ai; itr != NULL; itr = itr->ai_next){
+ /* create socket */
+ s = socket(itr->ai_family, itr->ai_socktype, itr->ai_protocol);
+ if (s < 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Socket create failed: %s", strerror(errno));
+ continue;
+ }
+
+ if (bind_addr) {
+ struct addrinfo *bind_ai;
+ struct addrinfo *bind_itr;
+
+ ssh_log(session, SSH_LOG_PACKET, "Resolving %s\n", bind_addr);
+
+ rc = getai(session,bind_addr, 0, &bind_ai);
+ if (rc != 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Failed to resolve bind address %s (%s)",
+ bind_addr,
+ gai_strerror(rc));
+ leave_function();
+ return -1;
+ }
+
+ for (bind_itr = bind_ai; bind_itr != NULL; bind_itr = bind_itr->ai_next) {
+ if (bind(s, bind_itr->ai_addr, bind_itr->ai_addrlen) < 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Binding local address: %s", strerror(errno));
+ continue;
+ } else {
+ break;
+ }
+ }
+ freeaddrinfo(bind_ai);
+
+ /* Cannot bind to any local addresses */
+ if (bind_itr == NULL) {
+ ssh_connect_socket_close(s);
+ s = -1;
+ continue;
+ }
+ }
+
+ if (timeout || usec) {
+ socket_t ret = ssh_connect_ai_timeout(session, host, port, itr,
+ timeout, usec, s);
+ leave_function();
+ return ret;
+ }
+
+ if (connect(s, itr->ai_addr, itr->ai_addrlen) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Connect failed: %s", strerror(errno));
+ ssh_connect_socket_close(s);
+ s = -1;
+ leave_function();
+ continue;
+ } else {
+ /* We are connected */
+ break;
+ }
+ }
+
+ freeaddrinfo(ai);
+ leave_function();
+
+ return s;
+}
+
+/**
+ * @internal
+ *
+ * @brief Launches a nonblocking connect to an IPv4 or IPv6 host
+ * specified by its IP address or hostname.
+ *
+ * @returns A file descriptor, < 0 on error.
+ * @warning very ugly !!!
+ */
+socket_t ssh_connect_host_nonblocking(ssh_session session, const char *host,
+ const char *bind_addr, int port) {
+ socket_t s = -1;
+ int rc;
+ struct addrinfo *ai;
+ struct addrinfo *itr;
+
+ enter_function();
+
+ rc = getai(session,host, port, &ai);
+ if (rc != 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Failed to resolve hostname %s (%s)", host, gai_strerror(rc));
+ leave_function();
+ return -1;
+ }
+
+ for (itr = ai; itr != NULL; itr = itr->ai_next){
+ /* create socket */
+ s = socket(itr->ai_family, itr->ai_socktype, itr->ai_protocol);
+ if (s < 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Socket create failed: %s", strerror(errno));
+ continue;
+ }
+
+ if (bind_addr) {
+ struct addrinfo *bind_ai;
+ struct addrinfo *bind_itr;
+
+ ssh_log(session, SSH_LOG_PACKET, "Resolving %s\n", bind_addr);
+
+ rc = getai(session,bind_addr, 0, &bind_ai);
+ if (rc != 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Failed to resolve bind address %s (%s)",
+ bind_addr,
+ gai_strerror(rc));
+ close(s);
+ s=-1;
+ break;
+ }
+
+ for (bind_itr = bind_ai; bind_itr != NULL; bind_itr = bind_itr->ai_next) {
+ if (bind(s, bind_itr->ai_addr, bind_itr->ai_addrlen) < 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Binding local address: %s", strerror(errno));
+ continue;
+ } else {
+ break;
+ }
+ }
+ freeaddrinfo(bind_ai);
+
+ /* Cannot bind to any local addresses */
+ if (bind_itr == NULL) {
+ ssh_connect_socket_close(s);
+ s = -1;
+ continue;
+ }
+ }
+ ssh_sock_set_nonblocking(s);
+
+ connect(s, itr->ai_addr, itr->ai_addrlen);
+ break;
+ }
+
+ freeaddrinfo(ai);
+ leave_function();
+
+ return s;
+}
+
+/**
+ * @addtogroup libssh_session
+ *
+ * @{
+ */
+
+/**
+ * @brief A wrapper for the select syscall
+ *
+ * This functions acts more or less like the select(2) syscall.\n
+ * There is no support for writing or exceptions.\n
+ *
+ * @param[in] channels Arrays of channels pointers terminated by a NULL.
+ * It is never rewritten.
+ *
+ * @param[out] outchannels Arrays of same size that "channels", there is no need
+ * to initialize it.
+ *
+ * @param[in] maxfd Maximum +1 file descriptor from readfds.
+ *
+ * @param[in] readfds A fd_set of file descriptors to be select'ed for
+ * reading.
+ *
+ * @param[in] timeout A timeout for the select.
+ *
+ * @return -1 if an error occured. E_INTR if it was interrupted, in
+ * that case, just restart it.
+ *
+ * @warning libssh is not threadsafe here. That means that if a signal is caught
+ * during the processing of this function, you cannot call ssh
+ * functions on sessions that are busy with ssh_select().
+ *
+ * @see select(2)
+ */
+int ssh_select(ssh_channel *channels, ssh_channel *outchannels, socket_t maxfd,
+ fd_set *readfds, struct timeval *timeout) {
+ struct timeval zerotime;
+ fd_set localset, localset2;
+ socket_t f;
+ int rep;
+ int set;
+ int i;
+ int j;
+
+ zerotime.tv_sec = 0;
+ zerotime.tv_usec = 0;
+
+ /*
+ * First, poll the maxfd file descriptors from the user with a zero-second
+ * timeout. They have the bigger priority.
+ */
+ if (maxfd > 0) {
+ memcpy(&localset, readfds, sizeof(fd_set));
+ rep = select(maxfd, &localset, NULL, NULL, &zerotime);
+ /* catch the eventual errors */
+ if (rep==-1) {
+ return -1;
+ }
+ }
+
+ /* Poll every channel */
+ j = 0;
+ for (i = 0; channels[i]; i++) {
+ if (channels[i]->session->alive) {
+ if(ssh_channel_poll(channels[i], 0) > 0) {
+ outchannels[j] = channels[i];
+ j++;
+ } else {
+ if(ssh_channel_poll(channels[i], 1) > 0) {
+ outchannels[j] = channels[i];
+ j++;
+ }
+ }
+ }
+ }
+ outchannels[j] = NULL;
+
+ /* Look into the localset for active fd */
+ set = 0;
+ for (f = 0; (f < maxfd) && !set; f++) {
+ if (FD_ISSET(f, &localset)) {
+ set = 1;
+ }
+ }
+
+ /* j != 0 means a channel has data */
+ if( (j != 0) || (set != 0)) {
+ if(maxfd > 0) {
+ memcpy(readfds, &localset, sizeof(fd_set));
+ }
+ return 0;
+ }
+
+ /*
+ * At this point, not any channel had any data ready for reading, nor any fd
+ * had data for reading.
+ */
+ memcpy(&localset, readfds, sizeof(fd_set));
+ for (i = 0; channels[i]; i++) {
+ if (channels[i]->session->alive) {
+ ssh_socket_fd_set(channels[i]->session->socket, &localset, &maxfd);
+ }
+ }
+
+ rep = select(maxfd, &localset, NULL, NULL, timeout);
+ if (rep == -1 && errno == EINTR) {
+ /* Interrupted by a signal */
+ return SSH_EINTR;
+ }
+
+ if (rep == -1) {
+ /*
+ * Was the error due to a libssh's channel or from a closed descriptor from
+ * the user? User closed descriptors have been caught in the first select
+ * and not closed since that moment. That case shouldn't occur at all
+ */
+ return -1;
+ }
+
+ /* Set the data_to_read flag on each session */
+ for (i = 0; channels[i]; i++) {
+ if (channels[i]->session->alive &&
+ ssh_socket_fd_isset(channels[i]->session->socket,&localset)) {
+ ssh_socket_set_toread(channels[i]->session->socket);
+ }
+ }
+
+ /* Now, test each channel */
+ j = 0;
+ for (i = 0; channels[i]; i++) {
+ if (channels[i]->session->alive &&
+ ssh_socket_fd_isset(channels[i]->session->socket,&localset)) {
+ if ((ssh_channel_poll(channels[i],0) > 0) ||
+ (ssh_channel_poll(channels[i], 1) > 0)) {
+ outchannels[j] = channels[i];
+ j++;
+ }
+ }
+ }
+ outchannels[j] = NULL;
+
+ FD_ZERO(&localset2);
+ for (f = 0; f < maxfd; f++) {
+ if (FD_ISSET(f, readfds) && FD_ISSET(f, &localset)) {
+ FD_SET(f, &localset2);
+ }
+ }
+
+ memcpy(readfds, &localset2, sizeof(fd_set));
+
+ return 0;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/crc32.c b/src/crc32.c
new file mode 100644
index 0000000..94d3020
--- /dev/null
+++ b/src/crc32.c
@@ -0,0 +1,92 @@
+/*
+ * crc32.c - simple CRC32 code
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2005 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "libssh/priv.h"
+
+static uint32_t crc_table[] = {
+ 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL,
+ 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL,
+ 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL,
+ 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL,
+ 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL,
+ 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL,
+ 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL,
+ 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL,
+ 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL,
+ 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL,
+ 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL,
+ 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL,
+ 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL,
+ 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL,
+ 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL,
+ 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL,
+ 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL,
+ 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL,
+ 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL,
+ 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL,
+ 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL,
+ 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL,
+ 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL,
+ 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL,
+ 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL,
+ 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL,
+ 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL,
+ 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL,
+ 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL,
+ 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL,
+ 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL,
+ 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL,
+ 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL,
+ 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL,
+ 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL,
+ 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL,
+ 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL,
+ 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL,
+ 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL,
+ 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL,
+ 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL,
+ 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL,
+ 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL,
+ 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL,
+ 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL,
+ 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL,
+ 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL,
+ 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL,
+ 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL,
+ 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL,
+ 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL,
+ 0x2d02ef8dUL
+};
+
+uint32_t ssh_crc32(const char *buf, uint32_t len) {
+ uint32_t ret = 0;
+ while(len > 0) {
+ ret = crc_table[(ret ^ *buf) & 0xff] ^ (ret >> 8);
+ --len;
+ ++buf;
+ }
+
+ return ret;
+}
+
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/crypt.c b/src/crypt.c
new file mode 100644
index 0000000..1085c4a
--- /dev/null
+++ b/src/crypt.c
@@ -0,0 +1,216 @@
+/*
+ * crypt.c - blowfish-cbc code
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#ifdef OPENSSL_CRYPTO
+#include <openssl/blowfish.h>
+#include <openssl/evp.h>
+#include <openssl/hmac.h>
+#endif
+
+#include "libssh/priv.h"
+#include "libssh/session.h"
+#include "libssh/wrapper.h"
+#include "libssh/crypto.h"
+#include "libssh/buffer.h"
+
+uint32_t packet_decrypt_len(ssh_session session, char *crypted){
+ uint32_t decrypted;
+
+ if (session->current_crypto) {
+ if (packet_decrypt(session, crypted,
+ session->current_crypto->in_cipher->blocksize) < 0) {
+ return 0;
+ }
+ }
+
+ memcpy(&decrypted,crypted,sizeof(decrypted));
+ ssh_log(session, SSH_LOG_PACKET,
+ "Packet size decrypted: %lu (0x%lx)",
+ (long unsigned int) ntohl(decrypted),
+ (long unsigned int) ntohl(decrypted));
+ return ntohl(decrypted);
+}
+
+int packet_decrypt(ssh_session session, void *data,uint32_t len) {
+ struct crypto_struct *crypto = session->current_crypto->in_cipher;
+ char *out = NULL;
+ if(len % session->current_crypto->in_cipher->blocksize != 0){
+ ssh_set_error(session, SSH_FATAL, "Cryptographic functions must be set on at least one blocksize (received %d)",len);
+ return SSH_ERROR;
+ }
+ out = malloc(len);
+ if (out == NULL) {
+ return -1;
+ }
+
+ ssh_log(session,SSH_LOG_PACKET, "Decrypting %d bytes", len);
+
+#ifdef HAVE_LIBGCRYPT
+ if (crypto->set_decrypt_key(crypto, session->current_crypto->decryptkey,
+ session->current_crypto->decryptIV) < 0) {
+ SAFE_FREE(out);
+ return -1;
+ }
+ crypto->cbc_decrypt(crypto,data,out,len);
+#elif defined HAVE_LIBCRYPTO
+ if (crypto->set_decrypt_key(crypto, session->current_crypto->decryptkey) < 0) {
+ SAFE_FREE(out);
+ return -1;
+ }
+ crypto->cbc_decrypt(crypto,data,out,len,session->current_crypto->decryptIV);
+#endif
+
+ memcpy(data,out,len);
+ memset(out,0,len);
+
+ SAFE_FREE(out);
+ return 0;
+}
+
+unsigned char *packet_encrypt(ssh_session session, void *data, uint32_t len) {
+ struct crypto_struct *crypto = NULL;
+ HMACCTX ctx = NULL;
+ char *out = NULL;
+ unsigned int finallen;
+ uint32_t seq;
+
+ if (!session->current_crypto) {
+ return NULL; /* nothing to do here */
+ }
+ if(len % session->current_crypto->in_cipher->blocksize != 0){
+ ssh_set_error(session, SSH_FATAL, "Cryptographic functions must be set on at least one blocksize (received %d)",len);
+ return NULL;
+ }
+ out = malloc(len);
+ if (out == NULL) {
+ return NULL;
+ }
+
+ seq = ntohl(session->send_seq);
+ crypto = session->current_crypto->out_cipher;
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Encrypting packet with seq num: %d, len: %d",
+ session->send_seq,len);
+
+#ifdef HAVE_LIBGCRYPT
+ if (crypto->set_encrypt_key(crypto, session->current_crypto->encryptkey,
+ session->current_crypto->encryptIV) < 0) {
+ SAFE_FREE(out);
+ return NULL;
+ }
+#elif defined HAVE_LIBCRYPTO
+ if (crypto->set_encrypt_key(crypto, session->current_crypto->encryptkey) < 0) {
+ SAFE_FREE(out);
+ return NULL;
+ }
+#endif
+
+ if (session->version == 2) {
+ ctx = hmac_init(session->current_crypto->encryptMAC,20,HMAC_SHA1);
+ if (ctx == NULL) {
+ SAFE_FREE(out);
+ return NULL;
+ }
+ hmac_update(ctx,(unsigned char *)&seq,sizeof(uint32_t));
+ hmac_update(ctx,data,len);
+ hmac_final(ctx,session->current_crypto->hmacbuf,&finallen);
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("mac: ",data,len);
+ if (finallen != 20) {
+ printf("Final len is %d\n",finallen);
+ }
+ ssh_print_hexa("Packet hmac", session->current_crypto->hmacbuf, 20);
+#endif
+ }
+
+#ifdef HAVE_LIBGCRYPT
+ crypto->cbc_encrypt(crypto, data, out, len);
+#elif defined HAVE_LIBCRYPTO
+ crypto->cbc_encrypt(crypto, data, out, len,
+ session->current_crypto->encryptIV);
+#endif
+
+ memcpy(data, out, len);
+ memset(out, 0, len);
+ SAFE_FREE(out);
+
+ if (session->version == 2) {
+ return session->current_crypto->hmacbuf;
+ }
+
+ return NULL;
+}
+
+/**
+ * @internal
+ *
+ * @brief Verify the hmac of a packet
+ *
+ * @param session The session to use.
+ * @param buffer The buffer to verify the hmac from.
+ * @param mac The mac to compare with the hmac.
+ *
+ * @return 0 if hmac and mac are equal, < 0 if not or an error
+ * occurred.
+ */
+int packet_hmac_verify(ssh_session session, ssh_buffer buffer,
+ unsigned char *mac) {
+ unsigned char hmacbuf[EVP_MAX_MD_SIZE] = {0};
+ HMACCTX ctx;
+ unsigned int len;
+ uint32_t seq;
+
+ ctx = hmac_init(session->current_crypto->decryptMAC, 20, HMAC_SHA1);
+ if (ctx == NULL) {
+ return -1;
+ }
+
+ seq = htonl(session->recv_seq);
+
+ hmac_update(ctx, (unsigned char *) &seq, sizeof(uint32_t));
+ hmac_update(ctx, ssh_buffer_get_begin(buffer), ssh_buffer_get_len(buffer));
+ hmac_final(ctx, hmacbuf, &len);
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("received mac",mac,len);
+ ssh_print_hexa("Computed mac",hmacbuf,len);
+ ssh_print_hexa("seq",(unsigned char *)&seq,sizeof(uint32_t));
+#endif
+ if (memcmp(mac, hmacbuf, len) == 0) {
+ return 0;
+ }
+
+ return -1;
+}
+
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/dh.c b/src/dh.c
new file mode 100644
index 0000000..74d799e
--- /dev/null
+++ b/src/dh.c
@@ -0,0 +1,1049 @@
+/*
+ * dh.c - Diffie-Helman algorithm code against SSH 2
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2008 by Aris Adamantiadis
+ * Copyright (c) 2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/*
+ * Let us resume the dh protocol.
+ * Each side computes a private prime number, x at client side, y at server
+ * side.
+ * g and n are two numbers common to every ssh software.
+ * client's public key (e) is calculated by doing:
+ * e = g^x mod p
+ * client sends e to the server.
+ * the server computes his own public key, f
+ * f = g^y mod p
+ * it sends it to the client
+ * the common key K is calculated by the client by doing
+ * k = f^x mod p
+ * the server does the same with the client public key e
+ * k' = e^y mod p
+ * if everything went correctly, k and k' are equal
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/priv.h"
+#include "libssh/crypto.h"
+#include "libssh/buffer.h"
+#include "libssh/session.h"
+#include "libssh/keys.h"
+#include "libssh/dh.h"
+
+/* todo: remove it */
+#include "libssh/string.h"
+#ifdef HAVE_LIBCRYPTO
+#include <openssl/rand.h>
+#include <openssl/evp.h>
+#include <openssl/err.h>
+#endif
+
+static unsigned char p_value[] = {
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
+ 0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
+ 0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
+ 0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
+ 0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
+ 0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
+ 0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
+ 0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
+ 0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
+ 0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE6, 0x53, 0x81,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
+#define P_LEN 128 /* Size in bytes of the p number */
+
+static unsigned long g_int = 2 ; /* G is defined as 2 by the ssh2 standards */
+static bignum g;
+static bignum p;
+static int ssh_crypto_initialized;
+
+int ssh_get_random(void *where, int len, int strong){
+
+#ifdef HAVE_LIBGCRYPT
+ /* variable not used in gcrypt */
+ (void) strong;
+ /* not using GCRY_VERY_STRONG_RANDOM which is a bit overkill */
+ gcry_randomize(where,len,GCRY_STRONG_RANDOM);
+
+ return 1;
+#elif defined HAVE_LIBCRYPTO
+ if (strong) {
+ return RAND_bytes(where,len);
+ } else {
+ return RAND_pseudo_bytes(where,len);
+ }
+#endif
+
+ /* never reached */
+ return 1;
+}
+
+/*
+ * This inits the values g and p which are used for DH key agreement
+ * FIXME: Make the function thread safe by adding a semaphore or mutex.
+ */
+int ssh_crypto_init(void) {
+ if (ssh_crypto_initialized == 0) {
+#ifdef HAVE_LIBGCRYPT
+ gcry_check_version(NULL);
+ if (!gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P,0)) {
+ gcry_control(GCRYCTL_INIT_SECMEM, 4096);
+ gcry_control(GCRYCTL_INITIALIZATION_FINISHED,0);
+ }
+#endif
+
+ g = bignum_new();
+ if (g == NULL) {
+ return -1;
+ }
+ bignum_set_word(g,g_int);
+
+#ifdef HAVE_LIBGCRYPT
+ bignum_bin2bn(p_value, P_LEN, &p);
+ if (p == NULL) {
+ bignum_free(g);
+ g = NULL;
+ return -1;
+ }
+#elif defined HAVE_LIBCRYPTO
+ p = bignum_new();
+ if (p == NULL) {
+ bignum_free(g);
+ g = NULL;
+ return -1;
+ }
+ bignum_bin2bn(p_value, P_LEN, p);
+ OpenSSL_add_all_algorithms();
+#endif
+
+ ssh_crypto_initialized = 1;
+ }
+
+ return 0;
+}
+
+void ssh_crypto_finalize(void) {
+ if (ssh_crypto_initialized) {
+ bignum_free(g);
+ g = NULL;
+ bignum_free(p);
+ p = NULL;
+ ssh_crypto_initialized=0;
+
+ }
+}
+
+/* prints the bignum on stderr */
+void ssh_print_bignum(const char *which, bignum num) {
+#ifdef HAVE_LIBGCRYPT
+ unsigned char *hex = NULL;
+ bignum_bn2hex(num, &hex);
+#elif defined HAVE_LIBCRYPTO
+ char *hex = NULL;
+ hex = bignum_bn2hex(num);
+#endif
+ fprintf(stderr, "%s value: ", which);
+ fprintf(stderr, "%s\n", (hex == NULL) ? "(null)" : (char *) hex);
+ SAFE_FREE(hex);
+}
+
+/**
+ * @brief Convert a buffer into a colon separated hex string.
+ * The caller has to free the memory.
+ *
+ * @param what What should be converted to a hex string.
+ *
+ * @param len Length of the buffer to convert.
+ *
+ * @return The hex string or NULL on error.
+ */
+char *ssh_get_hexa(const unsigned char *what, size_t len) {
+ char *hexa = NULL;
+ size_t i;
+
+ hexa = malloc(len * 3 + 1);
+ if (hexa == NULL) {
+ return NULL;
+ }
+
+ ZERO_STRUCTP(hexa);
+
+ for (i = 0; i < len; i++) {
+ char hex[4];
+ snprintf(hex, sizeof(hex), "%02x:", what[i]);
+ strcat(hexa, hex);
+ }
+
+ hexa[(len * 3) - 1] = '\0';
+
+ return hexa;
+}
+
+/**
+ * @brief Print a buffer as colon separated hex string.
+ *
+ * @param descr Description printed in front of the hex string.
+ *
+ * @param what What should be converted to a hex string.
+ *
+ * @param len Length of the buffer to convert.
+ */
+void ssh_print_hexa(const char *descr, const unsigned char *what, size_t len) {
+ char *hexa = ssh_get_hexa(what, len);
+
+ if (hexa == NULL) {
+ return;
+ }
+ printf("%s: %s\n", descr, hexa);
+}
+
+int dh_generate_x(ssh_session session) {
+ session->next_crypto->x = bignum_new();
+ if (session->next_crypto->x == NULL) {
+ return -1;
+ }
+
+#ifdef HAVE_LIBGCRYPT
+ bignum_rand(session->next_crypto->x, 128);
+#elif defined HAVE_LIBCRYPTO
+ bignum_rand(session->next_crypto->x, 128, 0, -1);
+#endif
+
+ /* not harder than this */
+#ifdef DEBUG_CRYPTO
+ ssh_print_bignum("x", session->next_crypto->x);
+#endif
+
+ return 0;
+}
+
+/* used by server */
+int dh_generate_y(ssh_session session) {
+ session->next_crypto->y = bignum_new();
+ if (session->next_crypto->y == NULL) {
+ return -1;
+ }
+
+#ifdef HAVE_LIBGCRYPT
+ bignum_rand(session->next_crypto->y, 128);
+#elif defined HAVE_LIBCRYPTO
+ bignum_rand(session->next_crypto->y, 128, 0, -1);
+#endif
+
+ /* not harder than this */
+#ifdef DEBUG_CRYPTO
+ ssh_print_bignum("y", session->next_crypto->y);
+#endif
+
+ return 0;
+}
+
+/* used by server */
+int dh_generate_e(ssh_session session) {
+#ifdef HAVE_LIBCRYPTO
+ bignum_CTX ctx = bignum_ctx_new();
+ if (ctx == NULL) {
+ return -1;
+ }
+#endif
+
+ session->next_crypto->e = bignum_new();
+ if (session->next_crypto->e == NULL) {
+#ifdef HAVE_LIBCRYPTO
+ bignum_ctx_free(ctx);
+#endif
+ return -1;
+ }
+
+#ifdef HAVE_LIBGCRYPT
+ bignum_mod_exp(session->next_crypto->e, g, session->next_crypto->x, p);
+#elif defined HAVE_LIBCRYPTO
+ bignum_mod_exp(session->next_crypto->e, g, session->next_crypto->x, p, ctx);
+#endif
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_bignum("e", session->next_crypto->e);
+#endif
+
+#ifdef HAVE_LIBCRYPTO
+ bignum_ctx_free(ctx);
+#endif
+
+ return 0;
+}
+
+int dh_generate_f(ssh_session session) {
+#ifdef HAVE_LIBCRYPTO
+ bignum_CTX ctx = bignum_ctx_new();
+ if (ctx == NULL) {
+ return -1;
+ }
+#endif
+
+ session->next_crypto->f = bignum_new();
+ if (session->next_crypto->f == NULL) {
+#ifdef HAVE_LIBCRYPTO
+ bignum_ctx_free(ctx);
+#endif
+ return -1;
+ }
+
+#ifdef HAVE_LIBGCRYPT
+ bignum_mod_exp(session->next_crypto->f, g, session->next_crypto->y, p);
+#elif defined HAVE_LIBCRYPTO
+ bignum_mod_exp(session->next_crypto->f, g, session->next_crypto->y, p, ctx);
+#endif
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_bignum("f", session->next_crypto->f);
+#endif
+
+#ifdef HAVE_LIBCRYPTO
+ bignum_ctx_free(ctx);
+#endif
+
+ return 0;
+}
+
+ssh_string make_bignum_string(bignum num) {
+ ssh_string ptr = NULL;
+ int pad = 0;
+ unsigned int len = bignum_num_bytes(num);
+ unsigned int bits = bignum_num_bits(num);
+
+ /* Remember if the fist bit is set, it is considered as a
+ * negative number. So 0's must be appended */
+ if (!(bits % 8) && bignum_is_bit_set(num, bits - 1)) {
+ pad++;
+ }
+
+#ifdef DEBUG_CRYPTO
+ fprintf(stderr, "%d bits, %d bytes, %d padding\n", bits, len, pad);
+#endif /* DEBUG_CRYPTO */
+/* TODO: fix that crap !! */
+ ptr = malloc(4 + len + pad);
+ if (ptr == NULL) {
+ return NULL;
+ }
+ ptr->size = htonl(len + pad);
+ if (pad) {
+ ptr->string[0] = 0;
+ }
+
+#ifdef HAVE_LIBGCRYPT
+ bignum_bn2bin(num, len, ptr->string + pad);
+#elif HAVE_LIBCRYPTO
+ bignum_bn2bin(num, ptr->string + pad);
+#endif
+
+ return ptr;
+}
+
+bignum make_string_bn(ssh_string string){
+ bignum bn = NULL;
+ unsigned int len = ssh_string_len(string);
+
+#ifdef DEBUG_CRYPTO
+ fprintf(stderr, "Importing a %d bits, %d bytes object ...\n",
+ len * 8, len);
+#endif /* DEBUG_CRYPTO */
+
+#ifdef HAVE_LIBGCRYPT
+ bignum_bin2bn(string->string, len, &bn);
+#elif defined HAVE_LIBCRYPTO
+ bn = bignum_bin2bn(string->string, len, NULL);
+#endif
+
+ return bn;
+}
+
+ssh_string dh_get_e(ssh_session session) {
+ return make_bignum_string(session->next_crypto->e);
+}
+
+/* used by server */
+ssh_string dh_get_f(ssh_session session) {
+ return make_bignum_string(session->next_crypto->f);
+}
+
+void dh_import_pubkey(ssh_session session, ssh_string pubkey_string) {
+ session->next_crypto->server_pubkey = pubkey_string;
+}
+
+int dh_import_f(ssh_session session, ssh_string f_string) {
+ session->next_crypto->f = make_string_bn(f_string);
+ if (session->next_crypto->f == NULL) {
+ return -1;
+ }
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_bignum("f",session->next_crypto->f);
+#endif
+
+ return 0;
+}
+
+/* used by the server implementation */
+int dh_import_e(ssh_session session, ssh_string e_string) {
+ session->next_crypto->e = make_string_bn(e_string);
+ if (session->next_crypto->e == NULL) {
+ return -1;
+ }
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_bignum("e",session->next_crypto->e);
+#endif
+
+ return 0;
+}
+
+int dh_build_k(ssh_session session) {
+#ifdef HAVE_LIBCRYPTO
+ bignum_CTX ctx = bignum_ctx_new();
+ if (ctx == NULL) {
+ return -1;
+ }
+#endif
+
+ session->next_crypto->k = bignum_new();
+ if (session->next_crypto->k == NULL) {
+#ifdef HAVE_LIBCRYPTO
+ bignum_ctx_free(ctx);
+#endif
+ return -1;
+ }
+
+ /* the server and clients don't use the same numbers */
+#ifdef HAVE_LIBGCRYPT
+ if(session->client) {
+ bignum_mod_exp(session->next_crypto->k, session->next_crypto->f,
+ session->next_crypto->x, p);
+ } else {
+ bignum_mod_exp(session->next_crypto->k, session->next_crypto->e,
+ session->next_crypto->y, p);
+ }
+#elif defined HAVE_LIBCRYPTO
+ if (session->client) {
+ bignum_mod_exp(session->next_crypto->k, session->next_crypto->f,
+ session->next_crypto->x, p, ctx);
+ } else {
+ bignum_mod_exp(session->next_crypto->k, session->next_crypto->e,
+ session->next_crypto->y, p, ctx);
+ }
+#endif
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("Session server cookie", session->server_kex.cookie, 16);
+ ssh_print_hexa("Session client cookie", session->client_kex.cookie, 16);
+ ssh_print_bignum("Shared secret key", session->next_crypto->k);
+#endif
+
+#ifdef HAVE_LIBCRYPTO
+ bignum_ctx_free(ctx);
+#endif
+
+ return 0;
+}
+
+/*
+static void sha_add(ssh_string str,SHACTX ctx){
+ sha1_update(ctx,str,string_len(str)+4);
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("partial hashed sessionid",str,string_len(str)+4);
+#endif
+}
+*/
+
+int make_sessionid(ssh_session session) {
+ SHACTX ctx;
+ ssh_string num = NULL;
+ ssh_string str = NULL;
+ ssh_buffer server_hash = NULL;
+ ssh_buffer client_hash = NULL;
+ ssh_buffer buf = NULL;
+ uint32_t len;
+ int rc = SSH_ERROR;
+
+ enter_function();
+
+ ctx = sha1_init();
+ if (ctx == NULL) {
+ return rc;
+ }
+
+ buf = ssh_buffer_new();
+ if (buf == NULL) {
+ return rc;
+ }
+
+ str = ssh_string_from_char(session->clientbanner);
+ if (str == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(buf, str) < 0) {
+ goto error;
+ }
+ ssh_string_free(str);
+
+ str = ssh_string_from_char(session->serverbanner);
+ if (str == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(buf, str) < 0) {
+ goto error;
+ }
+
+ if (session->client) {
+ server_hash = session->in_hashbuf;
+ client_hash = session->out_hashbuf;
+ } else {
+ server_hash = session->out_hashbuf;
+ client_hash = session->in_hashbuf;
+ }
+
+ if (buffer_add_u32(server_hash, 0) < 0) {
+ goto error;
+ }
+ if (buffer_add_u8(server_hash, 0) < 0) {
+ goto error;
+ }
+ if (buffer_add_u32(client_hash, 0) < 0) {
+ goto error;
+ }
+ if (buffer_add_u8(client_hash, 0) < 0) {
+ goto error;
+ }
+
+ len = ntohl(ssh_buffer_get_len(client_hash));
+ if (buffer_add_u32(buf,len) < 0) {
+ goto error;
+ }
+ if (buffer_add_data(buf, ssh_buffer_get_begin(client_hash),
+ ssh_buffer_get_len(client_hash)) < 0) {
+ goto error;
+ }
+
+ len = ntohl(ssh_buffer_get_len(server_hash));
+ if (buffer_add_u32(buf, len) < 0) {
+ goto error;
+ }
+ if (buffer_add_data(buf, ssh_buffer_get_begin(server_hash),
+ ssh_buffer_get_len(server_hash)) < 0) {
+ goto error;
+ }
+
+ len = ssh_string_len(session->next_crypto->server_pubkey) + 4;
+ if (buffer_add_data(buf, session->next_crypto->server_pubkey, len) < 0) {
+ goto error;
+ }
+
+ num = make_bignum_string(session->next_crypto->e);
+ if (num == NULL) {
+ goto error;
+ }
+
+ len = ssh_string_len(num) + 4;
+ if (buffer_add_data(buf, num, len) < 0) {
+ goto error;
+ }
+
+ ssh_string_free(num);
+ num = make_bignum_string(session->next_crypto->f);
+ if (num == NULL) {
+ goto error;
+ }
+
+ len = ssh_string_len(num) + 4;
+ if (buffer_add_data(buf, num, len) < 0) {
+ goto error;
+ }
+
+ ssh_string_free(num);
+ num = make_bignum_string(session->next_crypto->k);
+ if (num == NULL) {
+ goto error;
+ }
+
+ len = ssh_string_len(num) + 4;
+ if (buffer_add_data(buf, num, len) < 0) {
+ goto error;
+ }
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("hash buffer", ssh_buffer_get_begin(buf), ssh_buffer_get_len(buf));
+#endif
+
+ sha1_update(ctx, ssh_buffer_get_begin(buf), ssh_buffer_get_len(buf));
+ sha1_final(session->next_crypto->session_id, ctx);
+
+#ifdef DEBUG_CRYPTO
+ printf("Session hash: ");
+ ssh_print_hexa("session id", session->next_crypto->session_id, SHA_DIGEST_LEN);
+#endif
+
+ rc = SSH_OK;
+error:
+ ssh_buffer_free(buf);
+ ssh_buffer_free(client_hash);
+ ssh_buffer_free(server_hash);
+
+ session->in_hashbuf = NULL;
+ session->out_hashbuf = NULL;
+
+ ssh_string_free(str);
+ ssh_string_free(num);
+
+ leave_function();
+
+ return rc;
+}
+
+int hashbufout_add_cookie(ssh_session session) {
+ session->out_hashbuf = ssh_buffer_new();
+ if (session->out_hashbuf == NULL) {
+ return -1;
+ }
+
+ if (buffer_add_u8(session->out_hashbuf, 20) < 0) {
+ buffer_reinit(session->out_hashbuf);
+ return -1;
+ }
+
+ if (session->server) {
+ if (buffer_add_data(session->out_hashbuf,
+ session->server_kex.cookie, 16) < 0) {
+ buffer_reinit(session->out_hashbuf);
+ return -1;
+ }
+ } else {
+ if (buffer_add_data(session->out_hashbuf,
+ session->client_kex.cookie, 16) < 0) {
+ buffer_reinit(session->out_hashbuf);
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+int hashbufin_add_cookie(ssh_session session, unsigned char *cookie) {
+ session->in_hashbuf = ssh_buffer_new();
+ if (session->in_hashbuf == NULL) {
+ return -1;
+ }
+
+ if (buffer_add_u8(session->in_hashbuf, 20) < 0) {
+ buffer_reinit(session->in_hashbuf);
+ return -1;
+ }
+ if (buffer_add_data(session->in_hashbuf,cookie, 16) < 0) {
+ buffer_reinit(session->in_hashbuf);
+ return -1;
+ }
+
+ return 0;
+}
+
+static int generate_one_key(ssh_string k,
+ unsigned char session_id[SHA_DIGEST_LEN],
+ unsigned char output[SHA_DIGEST_LEN],
+ char letter) {
+ SHACTX ctx = NULL;
+
+ ctx = sha1_init();
+ if (ctx == NULL) {
+ return -1;
+ }
+
+ sha1_update(ctx, k, ssh_string_len(k) + 4);
+ sha1_update(ctx, session_id, SHA_DIGEST_LEN);
+ sha1_update(ctx, &letter, 1);
+ sha1_update(ctx, session_id, SHA_DIGEST_LEN);
+ sha1_final(output, ctx);
+
+ return 0;
+}
+
+int generate_session_keys(ssh_session session) {
+ ssh_string k_string = NULL;
+ SHACTX ctx = NULL;
+ int rc = -1;
+
+ enter_function();
+
+ k_string = make_bignum_string(session->next_crypto->k);
+ if (k_string == NULL) {
+ goto error;
+ }
+
+ /* IV */
+ if (session->client) {
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->encryptIV, 'A') < 0) {
+ goto error;
+ }
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->decryptIV, 'B') < 0) {
+ goto error;
+ }
+ } else {
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->decryptIV, 'A') < 0) {
+ goto error;
+ }
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->encryptIV, 'B') < 0) {
+ goto error;
+ }
+ }
+ if (session->client) {
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->encryptkey, 'C') < 0) {
+ goto error;
+ }
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->decryptkey, 'D') < 0) {
+ goto error;
+ }
+ } else {
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->decryptkey, 'C') < 0) {
+ goto error;
+ }
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->encryptkey, 'D') < 0) {
+ goto error;
+ }
+ }
+
+ /* some ciphers need more than 20 bytes of input key */
+ /* XXX verify it's ok for server implementation */
+ if (session->next_crypto->out_cipher->keysize > SHA_DIGEST_LEN * 8) {
+ ctx = sha1_init();
+ if (ctx == NULL) {
+ goto error;
+ }
+ sha1_update(ctx, k_string, ssh_string_len(k_string) + 4);
+ sha1_update(ctx, session->next_crypto->session_id, SHA_DIGEST_LEN);
+ sha1_update(ctx, session->next_crypto->encryptkey, SHA_DIGEST_LEN);
+ sha1_final(session->next_crypto->encryptkey + SHA_DIGEST_LEN, ctx);
+ }
+
+ if (session->next_crypto->in_cipher->keysize > SHA_DIGEST_LEN * 8) {
+ ctx = sha1_init();
+ sha1_update(ctx, k_string, ssh_string_len(k_string) + 4);
+ sha1_update(ctx, session->next_crypto->session_id, SHA_DIGEST_LEN);
+ sha1_update(ctx, session->next_crypto->decryptkey, SHA_DIGEST_LEN);
+ sha1_final(session->next_crypto->decryptkey + SHA_DIGEST_LEN, ctx);
+ }
+ if(session->client) {
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->encryptMAC, 'E') < 0) {
+ goto error;
+ }
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->decryptMAC, 'F') < 0) {
+ goto error;
+ }
+ } else {
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->decryptMAC, 'E') < 0) {
+ goto error;
+ }
+ if (generate_one_key(k_string, session->next_crypto->session_id,
+ session->next_crypto->encryptMAC, 'F') < 0) {
+ goto error;
+ }
+ }
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("Encrypt IV", session->next_crypto->encryptIV, SHA_DIGEST_LEN);
+ ssh_print_hexa("Decrypt IV", session->next_crypto->decryptIV, SHA_DIGEST_LEN);
+ ssh_print_hexa("Encryption key", session->next_crypto->encryptkey,
+ session->next_crypto->out_cipher->keysize);
+ ssh_print_hexa("Decryption key", session->next_crypto->decryptkey,
+ session->next_crypto->in_cipher->keysize);
+ ssh_print_hexa("Encryption MAC", session->next_crypto->encryptMAC, SHA_DIGEST_LEN);
+ ssh_print_hexa("Decryption MAC", session->next_crypto->decryptMAC, 20);
+#endif
+
+ rc = 0;
+error:
+ ssh_string_free(k_string);
+ leave_function();
+
+ return rc;
+}
+
+/**
+ * @addtogroup libssh_session
+ *
+ * @{
+ */
+
+/**
+ * @brief Allocates a buffer with the MD5 hash of the server public key.
+ *
+ * @param[in] session The SSH session to use.
+ *
+ * @param[in] hash The buffer to allocate.
+ *
+ * @return The bytes allocated or < 0 on error.
+ *
+ * @warning It is very important that you verify at some moment that the hash
+ * matches a known server. If you don't do it, cryptography wont help
+ * you at making things secure
+ *
+ * @see ssh_is_server_known()
+ * @see ssh_get_hexa()
+ * @see ssh_print_hexa()
+ */
+int ssh_get_pubkey_hash(ssh_session session, unsigned char **hash) {
+ ssh_string pubkey;
+ MD5CTX ctx;
+ unsigned char *h;
+
+ if (session == NULL || hash == NULL) {
+ return -1;
+ }
+ *hash = NULL;
+ if (session->current_crypto == NULL ||
+ session->current_crypto->server_pubkey == NULL){
+ ssh_set_error(session,SSH_FATAL,"No current cryptographic context");
+ }
+
+ h = malloc(sizeof(unsigned char *) * MD5_DIGEST_LEN);
+ if (h == NULL) {
+ return -1;
+ }
+
+ ctx = md5_init();
+ if (ctx == NULL) {
+ SAFE_FREE(h);
+ return -1;
+ }
+
+ pubkey = session->current_crypto->server_pubkey;
+
+ md5_update(ctx, pubkey->string, ssh_string_len(pubkey));
+ md5_final(h, ctx);
+
+ *hash = h;
+
+ return MD5_DIGEST_LEN;
+}
+
+/**
+ * @brief Deallocate the hash obtained by ssh_get_pubkey_hash.
+ *
+ * This is required under Microsoft platform as this library might use a
+ * different C library than your software, hence a different heap.
+ *
+ * @param[in] hash The buffer to deallocate.
+ *
+ * @see ssh_get_pubkey_hash()
+ */
+void ssh_clean_pubkey_hash(unsigned char **hash) {
+ SAFE_FREE(*hash);
+ *hash = NULL;
+}
+
+ssh_string ssh_get_pubkey(ssh_session session){
+ return ssh_string_copy(session->current_crypto->server_pubkey);
+}
+
+static int match(const char *group, const char *object){
+ const char *a;
+ const char *z;
+
+ z = group;
+ do {
+ a = strchr(z, ',');
+ if (a == NULL) {
+ if (strcmp(z, object) == 0) {
+ return 1;
+ }
+ return 0;
+ } else {
+ if (strncmp(z, object, a - z) == 0) {
+ return 1;
+ }
+ }
+ z = a + 1;
+ } while(1);
+
+ /* not reached */
+ return 0;
+}
+
+int sig_verify(ssh_session session, ssh_public_key pubkey,
+ SIGNATURE *signature, unsigned char *digest, int size) {
+#ifdef HAVE_LIBGCRYPT
+ gcry_error_t valid = 0;
+ gcry_sexp_t gcryhash;
+#elif defined HAVE_LIBCRYPTO
+ int valid = 0;
+#endif
+ unsigned char hash[SHA_DIGEST_LEN + 1] = {0};
+
+ sha1(digest, size, hash + 1);
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("Hash to be verified with dsa", hash + 1, SHA_DIGEST_LEN);
+#endif
+
+ switch(pubkey->type) {
+ case SSH_KEYTYPE_DSS:
+#ifdef HAVE_LIBGCRYPT
+ valid = gcry_sexp_build(&gcryhash, NULL, "%b", SHA_DIGEST_LEN + 1, hash);
+ if (valid != 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "RSA error: %s", gcry_strerror(valid));
+ return -1;
+ }
+ valid = gcry_pk_verify(signature->dsa_sign, gcryhash, pubkey->dsa_pub);
+ gcry_sexp_release(gcryhash);
+ if (valid == 0) {
+ return 0;
+ }
+
+ if (gcry_err_code(valid) != GPG_ERR_BAD_SIGNATURE) {
+ ssh_set_error(session, SSH_FATAL,
+ "DSA error: %s", gcry_strerror(valid));
+ return -1;
+ }
+#elif defined HAVE_LIBCRYPTO
+ valid = DSA_do_verify(hash + 1, SHA_DIGEST_LEN, signature->dsa_sign,
+ pubkey->dsa_pub);
+ if (valid == 1) {
+ return 0;
+ }
+
+ if (valid == -1) {
+ ssh_set_error(session, SSH_FATAL,
+ "DSA error: %s", ERR_error_string(ERR_get_error(), NULL));
+ return -1;
+ }
+#endif
+ ssh_set_error(session, SSH_FATAL, "Invalid DSA signature");
+ return -1;
+
+ case SSH_KEYTYPE_RSA:
+ case SSH_KEYTYPE_RSA1:
+#ifdef HAVE_LIBGCRYPT
+ valid = gcry_sexp_build(&gcryhash, NULL,
+ "(data(flags pkcs1)(hash sha1 %b))", SHA_DIGEST_LEN, hash + 1);
+ if (valid != 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "RSA error: %s", gcry_strerror(valid));
+ return -1;
+ }
+ valid = gcry_pk_verify(signature->rsa_sign,gcryhash,pubkey->rsa_pub);
+ gcry_sexp_release(gcryhash);
+ if (valid == 0) {
+ return 0;
+ }
+ if (gcry_err_code(valid) != GPG_ERR_BAD_SIGNATURE) {
+ ssh_set_error(session, SSH_FATAL,
+ "RSA error: %s", gcry_strerror(valid));
+ return -1;
+ }
+#elif defined HAVE_LIBCRYPTO
+ valid = RSA_verify(NID_sha1, hash + 1, SHA_DIGEST_LEN,
+ signature->rsa_sign->string, ssh_string_len(signature->rsa_sign),
+ pubkey->rsa_pub);
+ if (valid == 1) {
+ return 0;
+ }
+ if (valid == -1) {
+ ssh_set_error(session, SSH_FATAL,
+ "RSA error: %s", ERR_error_string(ERR_get_error(), NULL));
+ return -1;
+ }
+#endif
+ ssh_set_error(session, SSH_FATAL, "Invalid RSA signature");
+ return -1;
+ default:
+ ssh_set_error(session, SSH_FATAL, "Unknown public key type");
+ return -1;
+ }
+
+ return -1;
+}
+
+int signature_verify(ssh_session session, ssh_string signature) {
+ ssh_public_key pubkey = NULL;
+ SIGNATURE *sign = NULL;
+ int err;
+
+ enter_function();
+
+ pubkey = publickey_from_string(session,session->next_crypto->server_pubkey);
+ if(pubkey == NULL) {
+ leave_function();
+ return -1;
+ }
+
+ if (session->wanted_methods[SSH_HOSTKEYS]) {
+ if(!match(session->wanted_methods[SSH_HOSTKEYS],pubkey->type_c)) {
+ ssh_set_error(session, SSH_FATAL,
+ "Public key from server (%s) doesn't match user preference (%s)",
+ pubkey->type_c, session->wanted_methods[SSH_HOSTKEYS]);
+ publickey_free(pubkey);
+ leave_function();
+ return -1;
+ }
+ }
+
+ sign = signature_from_string(session, signature, pubkey, pubkey->type);
+ if (sign == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Invalid signature blob");
+ publickey_free(pubkey);
+ leave_function();
+ return -1;
+ }
+
+ ssh_log(session, SSH_LOG_FUNCTIONS,
+ "Going to verify a %s type signature", pubkey->type_c);
+
+ err = sig_verify(session,pubkey,sign,
+ session->next_crypto->session_id,SHA_DIGEST_LEN);
+ signature_free(sign);
+ session->next_crypto->server_pubkey_type = pubkey->type_c;
+ publickey_free(pubkey);
+
+ leave_function();
+ return err;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/error.c b/src/error.c
new file mode 100644
index 0000000..f5bb119
--- /dev/null
+++ b/src/error.c
@@ -0,0 +1,123 @@
+/*
+ * error.c - functions for ssh error handling
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2008 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <stdio.h>
+#include <stdarg.h>
+#include "libssh/priv.h"
+
+/**
+ * @defgroup libssh_error The SSH error functions.
+ * @ingroup libssh
+ *
+ * Functions for error handling.
+ *
+ * @{
+ */
+
+/**
+ * @internal
+ *
+ * @brief Registers an error with a description.
+ *
+ * @param error The place to store the error.
+ *
+ * @param code The class of error.
+ *
+ * @param descr The description, which can be a format string.
+ *
+ * @param ... The arguments for the format string.
+ */
+void ssh_set_error(void *error, int code, const char *descr, ...) {
+ struct error_struct *err = error;
+ va_list va;
+ va_start(va, descr);
+ vsnprintf(err->error_buffer, ERROR_BUFFERLEN, descr, va);
+ va_end(va);
+ err->error_code = code;
+}
+
+/**
+ * @internal
+ *
+ * @brief Registers an out of memory error
+ *
+ * @param error The place to store the error.
+ *
+ */
+void ssh_set_error_oom(void *error) {
+ struct error_struct *err = error;
+
+ strcpy(err->error_buffer, "Out of memory");
+ err->error_code = SSH_FATAL;
+}
+
+/**
+ * @internal
+ *
+ * @brief Registers an invalid argument error
+ *
+ * @param error The place to store the error.
+ *
+ * @param function The function the error happened in.
+ *
+ */
+void ssh_set_error_invalid(void *error, const char *function) {
+ ssh_set_error(error, SSH_FATAL, "Invalid argument in %s", function);
+}
+
+/**
+ * @brief Retrieve the error text message from the last error.
+ *
+ * @param error The SSH session pointer.
+ *
+ * @return A static string describing the error.
+ */
+const char *ssh_get_error(void *error) {
+ struct error_struct *err = error;
+
+ return err->error_buffer;
+}
+
+/**
+ * @brief Retrieve the error code from the last error.
+ *
+ * @param error The SSH session pointer.
+ *
+ * \return SSH_NO_ERROR No error occurred\n
+ * SSH_REQUEST_DENIED The last request was denied but situation is
+ * recoverable\n
+ * SSH_FATAL A fatal error occurred. This could be an unexpected
+ * disconnection\n
+ *
+ * Other error codes are internal but can be considered same than
+ * SSH_FATAL.
+ */
+int ssh_get_error_code(void *error) {
+ struct error_struct *err = error;
+
+ return err->error_code;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/gcrypt_missing.c b/src/gcrypt_missing.c
new file mode 100644
index 0000000..7a456a6
--- /dev/null
+++ b/src/gcrypt_missing.c
@@ -0,0 +1,99 @@
+/*
+ * gcrypt_missing.c - routines that are in OpenSSL but not in libgcrypt.
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2006 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include "libssh/priv.h"
+
+#ifdef HAVE_LIBGCRYPT
+int my_gcry_dec2bn(bignum *bn, const char *data) {
+ int count;
+
+ *bn = bignum_new();
+ if (*bn == NULL) {
+ return 0;
+ }
+ gcry_mpi_set_ui(*bn, 0);
+ for (count = 0; data[count]; count++) {
+ gcry_mpi_mul_ui(*bn, *bn, 10);
+ gcry_mpi_add_ui(*bn, *bn, data[count] - '0');
+ }
+
+ return count;
+}
+
+char *my_gcry_bn2dec(bignum bn) {
+ bignum bndup, num, ten;
+ char *ret;
+ int count, count2;
+ int size, rsize;
+ char decnum;
+
+ size = gcry_mpi_get_nbits(bn) * 3;
+ rsize = size / 10 + size / 1000 + 2;
+
+ ret = malloc(rsize + 1);
+ if (ret == NULL) {
+ return NULL;
+ }
+
+ if (!gcry_mpi_cmp_ui(bn, 0)) {
+ strcpy(ret, "0");
+ } else {
+ ten = bignum_new();
+ if (ten == NULL) {
+ SAFE_FREE(ret);
+ return NULL;
+ }
+
+ num = bignum_new();
+ if (num == NULL) {
+ SAFE_FREE(ret);
+ bignum_free(ten);
+ return NULL;
+ }
+
+ for (bndup = gcry_mpi_copy(bn), bignum_set_word(ten, 10), count = rsize;
+ count; count--) {
+ gcry_mpi_div(bndup, num, bndup, ten, 0);
+ for (decnum = 0, count2 = gcry_mpi_get_nbits(num); count2;
+ decnum *= 2, decnum += (gcry_mpi_test_bit(num, count2 - 1) ? 1 : 0),
+ count2--)
+ ;
+ ret[count - 1] = decnum + '0';
+ }
+ for (count = 0; count < rsize && ret[count] == '0'; count++)
+ ;
+ for (count2 = 0; count2 < rsize - count; ++count2) {
+ ret[count2] = ret[count2 + count];
+ }
+ ret[count2] = 0;
+ bignum_free(num);
+ bignum_free(bndup);
+ bignum_free(ten);
+ }
+
+ return ret;
+}
+
+#endif
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/gzip.c b/src/gzip.c
new file mode 100644
index 0000000..1e892dc
--- /dev/null
+++ b/src/gzip.c
@@ -0,0 +1,222 @@
+/*
+ * gzip.c - hooks for compression of packets
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003 by Aris Adamantiadis
+ * Copyright (c) 2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+#include "libssh/priv.h"
+#include "libssh/buffer.h"
+#include "libssh/session.h"
+
+#if defined(HAVE_LIBZ) && defined(WITH_LIBZ)
+
+#include <zlib.h>
+#include <string.h>
+#include <stdlib.h>
+
+#define BLOCKSIZE 4092
+
+static z_stream *initcompress(ssh_session session, int level) {
+ z_stream *stream = NULL;
+ int status;
+
+ stream = malloc(sizeof(z_stream));
+ if (stream == NULL) {
+ return NULL;
+ }
+ memset(stream, 0, sizeof(z_stream));
+
+ status = deflateInit(stream, level);
+ if (status != Z_OK) {
+ SAFE_FREE(stream);
+ ssh_set_error(session, SSH_FATAL,
+ "status %d inititalising zlib deflate", status);
+ return NULL;
+ }
+
+ return stream;
+}
+
+static ssh_buffer gzip_compress(ssh_session session,ssh_buffer source,int level){
+ z_stream *zout = session->current_crypto->compress_out_ctx;
+ void *in_ptr = ssh_buffer_get_begin(source);
+ unsigned long in_size = ssh_buffer_get_len(source);
+ ssh_buffer dest = NULL;
+ unsigned char out_buf[BLOCKSIZE] = {0};
+ unsigned long len;
+ int status;
+
+ if(zout == NULL) {
+ zout = session->current_crypto->compress_out_ctx = initcompress(session, level);
+ if (zout == NULL) {
+ return NULL;
+ }
+ }
+
+ dest = ssh_buffer_new();
+ if (dest == NULL) {
+ return NULL;
+ }
+
+ zout->next_out = out_buf;
+ zout->next_in = in_ptr;
+ zout->avail_in = in_size;
+ do {
+ zout->avail_out = BLOCKSIZE;
+ status = deflate(zout, Z_PARTIAL_FLUSH);
+ if (status != Z_OK) {
+ ssh_buffer_free(dest);
+ ssh_set_error(session, SSH_FATAL,
+ "status %d deflating zlib packet", status);
+ return NULL;
+ }
+ len = BLOCKSIZE - zout->avail_out;
+ if (buffer_add_data(dest, out_buf, len) < 0) {
+ ssh_buffer_free(dest);
+ return NULL;
+ }
+ zout->next_out = out_buf;
+ } while (zout->avail_out == 0);
+
+ return dest;
+}
+
+int compress_buffer(ssh_session session, ssh_buffer buf) {
+ ssh_buffer dest = NULL;
+
+ dest = gzip_compress(session, buf, 9);
+ if (dest == NULL) {
+ return -1;
+ }
+
+ if (buffer_reinit(buf) < 0) {
+ ssh_buffer_free(dest);
+ return -1;
+ }
+
+ if (buffer_add_data(buf, ssh_buffer_get_begin(dest), ssh_buffer_get_len(dest)) < 0) {
+ ssh_buffer_free(dest);
+ return -1;
+ }
+
+ ssh_buffer_free(dest);
+ return 0;
+}
+
+/* decompression */
+
+static z_stream *initdecompress(ssh_session session) {
+ z_stream *stream = NULL;
+ int status;
+
+ stream = malloc(sizeof(z_stream));
+ if (stream == NULL) {
+ return NULL;
+ }
+ memset(stream,0,sizeof(z_stream));
+
+ status = inflateInit(stream);
+ if (status != Z_OK) {
+ SAFE_FREE(stream);
+ ssh_set_error(session, SSH_FATAL,
+ "Status = %d initiating inflate context!", status);
+ return NULL;
+ }
+
+ return stream;
+}
+
+static ssh_buffer gzip_decompress(ssh_session session, ssh_buffer source, size_t maxlen) {
+ z_stream *zin = session->current_crypto->compress_in_ctx;
+ void *in_ptr = buffer_get_rest(source);
+ unsigned long in_size = buffer_get_rest_len(source);
+ unsigned char out_buf[BLOCKSIZE] = {0};
+ ssh_buffer dest = NULL;
+ unsigned long len;
+ int status;
+
+ if (zin == NULL) {
+ zin = session->current_crypto->compress_in_ctx = initdecompress(session);
+ if (zin == NULL) {
+ return NULL;
+ }
+ }
+
+ dest = ssh_buffer_new();
+ if (dest == NULL) {
+ return NULL;
+ }
+
+ zin->next_out = out_buf;
+ zin->next_in = in_ptr;
+ zin->avail_in = in_size;
+
+ do {
+ zin->avail_out = BLOCKSIZE;
+ status = inflate(zin, Z_PARTIAL_FLUSH);
+ if (status != Z_OK) {
+ ssh_set_error(session, SSH_FATAL,
+ "status %d inflating zlib packet", status);
+ ssh_buffer_free(dest);
+ return NULL;
+ }
+
+ len = BLOCKSIZE - zin->avail_out;
+ if (buffer_add_data(dest,out_buf,len) < 0) {
+ ssh_buffer_free(dest);
+ return NULL;
+ }
+ if (ssh_buffer_get_len(dest) > maxlen){
+ /* Size of packet exceded, avoid a denial of service attack */
+ ssh_buffer_free(dest);
+ return NULL;
+ }
+ zin->next_out = out_buf;
+ } while (zin->avail_out == 0);
+
+ return dest;
+}
+
+int decompress_buffer(ssh_session session,ssh_buffer buf, size_t maxlen){
+ ssh_buffer dest = NULL;
+
+ dest = gzip_decompress(session,buf, maxlen);
+ if (dest == NULL) {
+ return -1;
+ }
+
+ if (buffer_reinit(buf) < 0) {
+ ssh_buffer_free(dest);
+ return -1;
+ }
+
+ if (buffer_add_data(buf, ssh_buffer_get_begin(dest), ssh_buffer_get_len(dest)) < 0) {
+ ssh_buffer_free(dest);
+ return -1;
+ }
+
+ ssh_buffer_free(dest);
+ return 0;
+}
+
+#endif /* HAVE_LIBZ && WITH_LIBZ */
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/init.c b/src/init.c
new file mode 100644
index 0000000..5952e27
--- /dev/null
+++ b/src/init.c
@@ -0,0 +1,94 @@
+/*
+ * init.c - initialization and finalization of the library
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2009 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+#include "libssh/priv.h"
+#include "libssh/socket.h"
+#include "libssh/dh.h"
+#include "libssh/poll.h"
+#include "libssh/threads.h"
+
+#ifdef _WIN32
+#include <winsock2.h>
+#endif
+
+/**
+ * @defgroup libssh The libssh API
+ *
+ * The libssh library is implementing the SSH protocols and some of its
+ * extensions. This group of functions is mostly used to implment a SSH client.
+ * Some function are needed to implement a SSH server too.
+ *
+ * @{
+ */
+
+/**
+ * @brief Initialize global cryptographic data structures.
+ *
+ * This function should only be called once, at the beginning of the program, in
+ * the main thread. It may be omitted if your program is not multithreaded.
+ *
+ * @returns 0 on success, -1 if an error occured.
+ */
+int ssh_init(void) {
+ if(ssh_threads_init())
+ return -1;
+ if(ssh_crypto_init())
+ return -1;
+ if(ssh_socket_init())
+ return -1;
+ if(ssh_regex_init())
+ return -1;
+ return 0;
+}
+
+
+/**
+ * @brief Finalize and cleanup all libssh and cryptographic data structures.
+ *
+ * This function should only be called once, at the end of the program!
+ *
+ * @returns 0 on succes, -1 if an error occured.
+ *
+ @returns 0 otherwise
+ */
+int ssh_finalize(void) {
+ ssh_threads_finalize();
+ ssh_free_global_poll_ctx();
+ ssh_regex_finalize();
+ ssh_crypto_finalize();
+ ssh_socket_cleanup();
+#ifdef HAVE_LIBGCRYPT
+ gcry_control(GCRYCTL_TERM_SECMEM);
+#elif defined HAVE_LIBCRYPTO
+ EVP_cleanup();
+#endif
+#ifdef _WIN32
+ WSACleanup();
+#endif
+ return 0;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/kex.c b/src/kex.c
new file mode 100644
index 0000000..d57273e
--- /dev/null
+++ b/src/kex.c
@@ -0,0 +1,835 @@
+/*
+ * kex.c - key exchange
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2008 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/priv.h"
+#include "libssh/ssh2.h"
+#include "libssh/ssh1.h"
+#include "libssh/buffer.h"
+#include "libssh/packet.h"
+#include "libssh/session.h"
+#include "libssh/wrapper.h"
+#include "libssh/keys.h"
+#include "libssh/dh.h"
+#include "libssh/kex.h"
+#include "libssh/string.h"
+
+#ifdef HAVE_LIBGCRYPT
+#define BLOWFISH "blowfish-cbc,"
+#define AES "aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,"
+#define DES "3des-cbc"
+#elif defined HAVE_LIBCRYPTO
+#ifdef HAVE_OPENSSL_BLOWFISH_H
+#define BLOWFISH "blowfish-cbc,"
+#else
+#define BLOWFISH ""
+#endif
+#ifdef HAVE_OPENSSL_AES_H
+#ifdef BROKEN_AES_CTR
+#define AES "aes256-cbc,aes192-cbc,aes128-cbc,"
+#else
+#define AES "aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,"
+#endif /* BROKEN_AES_CTR */
+#else
+#define AES ""
+#endif
+
+#define DES "3des-cbc"
+#endif
+
+#if defined(HAVE_LIBZ) && defined(WITH_LIBZ)
+#define ZLIB "none,zlib,zlib@openssh.org"
+#else
+#define ZLIB "none"
+#endif
+
+const char *default_methods[] = {
+ "diffie-hellman-group1-sha1",
+ "ssh-rsa,ssh-dss",
+ AES BLOWFISH DES,
+ AES BLOWFISH DES,
+ "hmac-sha1",
+ "hmac-sha1",
+ "none",
+ "none",
+ "",
+ "",
+ NULL
+};
+
+const char *supported_methods[] = {
+ "diffie-hellman-group1-sha1",
+ "ssh-rsa,ssh-dss",
+ AES BLOWFISH DES,
+ AES BLOWFISH DES,
+ "hmac-sha1",
+ "hmac-sha1",
+ ZLIB,
+ ZLIB,
+ "",
+ "",
+ NULL
+};
+
+/* descriptions of the key exchange packet */
+const char *ssh_kex_nums[] = {
+ "kex algos",
+ "server host key algo",
+ "encryption client->server",
+ "encryption server->client",
+ "mac algo client->server",
+ "mac algo server->client",
+ "compression algo client->server",
+ "compression algo server->client",
+ "languages client->server",
+ "languages server->client",
+ NULL
+};
+
+/* tokenize will return a token of strings delimited by ",". the first element has to be freed */
+static char **tokenize(const char *chain){
+ char **tokens;
+ int n=1;
+ int i=0;
+ char *tmp;
+ char *ptr;
+
+ tmp = strdup(chain);
+ if (tmp == NULL) {
+ return NULL;
+ }
+ ptr = tmp;
+ while(*ptr){
+ if(*ptr==','){
+ n++;
+ *ptr=0;
+ }
+ ptr++;
+ }
+ /* now n contains the number of tokens, the first possibly empty if the list was empty too e.g. "" */
+ tokens=malloc(sizeof(char *) * (n+1) ); /* +1 for the null */
+ if (tokens == NULL) {
+ SAFE_FREE(tmp);
+ return NULL;
+ }
+ ptr=tmp;
+ for(i=0;i<n;i++){
+ tokens[i]=ptr;
+ while(*ptr)
+ ptr++; // find a zero
+ ptr++; // then go one step further
+ }
+ tokens[i]=NULL;
+ return tokens;
+}
+
+/* same as tokenize(), but with spaces instead of ',' */
+/* TODO FIXME rewrite me! */
+char **space_tokenize(const char *chain){
+ char **tokens;
+ int n=1;
+ int i=0;
+ char *tmp;
+ char *ptr;
+
+ tmp = strdup(chain);
+ if (tmp == NULL) {
+ return NULL;
+ }
+ ptr = tmp;
+
+ while(*ptr==' ')
+ ++ptr; /* skip initial spaces */
+ while(*ptr){
+ if(*ptr==' '){
+ n++; /* count one token per word */
+ *ptr=0;
+ while(*(ptr+1)==' '){ /* don't count if the tokens have more than 2 spaces */
+ *(ptr++)=0;
+ }
+ }
+ ptr++;
+ }
+ /* now n contains the number of tokens, the first possibly empty if the list was empty too e.g. "" */
+ tokens = malloc(sizeof(char *) * (n + 1)); /* +1 for the null */
+ if (tokens == NULL) {
+ SAFE_FREE(tmp);
+ return NULL;
+ }
+ ptr=tmp; /* we don't pass the initial spaces because the "tmp" pointer is needed by the caller */
+ /* function to free the tokens. */
+ for(i=0;i<n;i++){
+ tokens[i]=ptr;
+ if(i!=n-1){
+ while(*ptr)
+ ptr++; // find a zero
+ while(!*(ptr+1))
+ ++ptr; /* if the zero is followed by other zeros, go through them */
+ ptr++; // then go one step further
+ }
+ }
+ tokens[i]=NULL;
+ return tokens;
+}
+
+/* find_matching gets 2 parameters : a list of available objects (available_d), separated by colons,*/
+/* and a list of preferred objects (preferred_d) */
+/* it will return a strduped pointer on the first preferred object found in the available objects list */
+
+char *ssh_find_matching(const char *available_d, const char *preferred_d){
+ char ** tok_available, **tok_preferred;
+ int i_avail, i_pref;
+ char *ret;
+
+ if ((available_d == NULL) || (preferred_d == NULL)) {
+ return NULL; /* don't deal with null args */
+ }
+
+ tok_available = tokenize(available_d);
+ if (tok_available == NULL) {
+ return NULL;
+ }
+
+ tok_preferred = tokenize(preferred_d);
+ if (tok_preferred == NULL) {
+ SAFE_FREE(tok_available[0]);
+ SAFE_FREE(tok_available);
+ return NULL;
+ }
+
+ for(i_pref=0; tok_preferred[i_pref] ; ++i_pref){
+ for(i_avail=0; tok_available[i_avail]; ++i_avail){
+ if(!strcmp(tok_available[i_avail],tok_preferred[i_pref])){
+ /* match */
+ ret=strdup(tok_available[i_avail]);
+ /* free the tokens */
+ SAFE_FREE(tok_available[0]);
+ SAFE_FREE(tok_preferred[0]);
+ SAFE_FREE(tok_available);
+ SAFE_FREE(tok_preferred);
+ return ret;
+ }
+ }
+ }
+ SAFE_FREE(tok_available[0]);
+ SAFE_FREE(tok_preferred[0]);
+ SAFE_FREE(tok_available);
+ SAFE_FREE(tok_preferred);
+ return NULL;
+}
+
+SSH_PACKET_CALLBACK(ssh_packet_kexinit){
+ int server_kex=session->server;
+ ssh_string str = NULL;
+ char *strings[10];
+ int i;
+
+ enter_function();
+ (void)type;
+ (void)user;
+ if(session->session_state != SSH_SESSION_STATE_INITIAL_KEX){
+ ssh_set_error(session,SSH_FATAL,"SSH_KEXINIT received in wrong state");
+ goto error;
+ }
+ if (server_kex) {
+ if (buffer_get_data(packet,session->client_kex.cookie,16) != 16) {
+ ssh_set_error(session, SSH_FATAL, "ssh_packet_kexinit: no cookie in packet");
+ goto error;
+ }
+
+ if (hashbufin_add_cookie(session, session->client_kex.cookie) < 0) {
+ ssh_set_error(session, SSH_FATAL, "ssh_packet_kexinit: adding cookie failed");
+ goto error;
+ }
+ } else {
+ if (buffer_get_data(packet,session->server_kex.cookie,16) != 16) {
+ ssh_set_error(session, SSH_FATAL, "ssh_packet_kexinit: no cookie in packet");
+ goto error;
+ }
+
+ if (hashbufin_add_cookie(session, session->server_kex.cookie) < 0) {
+ ssh_set_error(session, SSH_FATAL, "ssh_packet_kexinit: adding cookie failed");
+ goto error;
+ }
+ }
+
+ memset(strings, 0, sizeof(char *) * 10);
+
+ for (i = 0; i < 10; i++) {
+ str = buffer_get_ssh_string(packet);
+ if (str == NULL) {
+ break;
+ }
+
+ if (buffer_add_ssh_string(session->in_hashbuf, str) < 0) {
+ goto error;
+ }
+
+ strings[i] = ssh_string_to_char(str);
+ if (strings[i] == NULL) {
+ goto error;
+ }
+ ssh_string_free(str);
+ str = NULL;
+ }
+
+ /* copy the server kex info into an array of strings */
+ if (server_kex) {
+ session->client_kex.methods = malloc(10 * sizeof(char **));
+ if (session->client_kex.methods == NULL) {
+ leave_function();
+ return -1;
+ }
+
+ for (i = 0; i < 10; i++) {
+ session->client_kex.methods[i] = strings[i];
+ }
+ } else { /* client */
+ session->server_kex.methods = malloc(10 * sizeof(char **));
+ if (session->server_kex.methods == NULL) {
+ leave_function();
+ return -1;
+ }
+
+ for (i = 0; i < 10; i++) {
+ session->server_kex.methods[i] = strings[i];
+ }
+ }
+
+ leave_function();
+ session->session_state=SSH_SESSION_STATE_KEXINIT_RECEIVED;
+ session->ssh_connection_callback(session);
+ return SSH_PACKET_USED;
+error:
+ ssh_string_free(str);
+ for (i = 0; i < 10; i++) {
+ SAFE_FREE(strings[i]);
+ }
+
+ session->session_state = SSH_SESSION_STATE_ERROR;
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+void ssh_list_kex(ssh_session session, KEX *kex) {
+ int i = 0;
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("session cookie", kex->cookie, 16);
+#endif
+ if(kex->methods==NULL){
+ ssh_log(session, SSH_LOG_RARE,"kex->methods is NULL");
+ return;
+ }
+ for(i = 0; i < 10; i++) {
+ ssh_log(session, SSH_LOG_FUNCTIONS, "%s: %s",
+ ssh_kex_nums[i], kex->methods[i]);
+ }
+}
+
+/* set_kex basicaly look at the option structure of the session and set the output kex message */
+/* it must be aware of the server kex message */
+/* it can fail if option is null, not any user specified kex method matches the server one, if not any default kex matches */
+
+int set_kex(ssh_session session){
+ KEX *server = &session->server_kex;
+ KEX *client=&session->client_kex;
+ int i;
+ const char *wanted;
+ enter_function();
+ ssh_get_random(client->cookie,16,0);
+ client->methods=malloc(10 * sizeof(char **));
+ if (client->methods == NULL) {
+ ssh_set_error(session, SSH_FATAL, "No space left");
+ leave_function();
+ return -1;
+ }
+ memset(client->methods,0,10*sizeof(char **));
+ for (i=0;i<10;i++){
+ if(!(wanted=session->wanted_methods[i]))
+ wanted=default_methods[i];
+ client->methods[i]=ssh_find_matching(server->methods[i],wanted);
+ if(!client->methods[i] && i < SSH_LANG_C_S){
+ ssh_set_error(session,SSH_FATAL,"kex error : did not find one of algos %s in list %s for %s",
+ wanted,server->methods[i],ssh_kex_nums[i]);
+ leave_function();
+ return -1;
+ } else {
+ if ((i >= SSH_LANG_C_S) && (client->methods[i] == NULL)) {
+ /* we can safely do that for languages */
+ client->methods[i] = strdup("");
+ if (client->methods[i] == NULL) {
+ return -1;
+ }
+ }
+ }
+ }
+ leave_function();
+ return 0;
+}
+
+/* this function only sends the predefined set of kex methods */
+int ssh_send_kex(ssh_session session, int server_kex) {
+ KEX *kex = (server_kex ? &session->server_kex : &session->client_kex);
+ ssh_string str = NULL;
+ int i;
+
+ enter_function();
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_KEXINIT) < 0) {
+ goto error;
+ }
+ if (buffer_add_data(session->out_buffer, kex->cookie, 16) < 0) {
+ goto error;
+ }
+
+ if (hashbufout_add_cookie(session) < 0) {
+ goto error;
+ }
+
+ ssh_list_kex(session, kex);
+
+ for (i = 0; i < 10; i++) {
+ str = ssh_string_from_char(kex->methods[i]);
+ if (str == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(session->out_hashbuf, str) < 0) {
+ goto error;
+ }
+ if (buffer_add_ssh_string(session->out_buffer, str) < 0) {
+ goto error;
+ }
+ ssh_string_free(str);
+ }
+
+ if (buffer_add_u8(session->out_buffer, 0) < 0) {
+ goto error;
+ }
+ if (buffer_add_u32(session->out_buffer, 0) < 0) {
+ goto error;
+ }
+
+ if (packet_send(session) == SSH_ERROR) {
+ leave_function();
+ return -1;
+ }
+
+ leave_function();
+ return 0;
+error:
+ buffer_reinit(session->out_buffer);
+ buffer_reinit(session->out_hashbuf);
+ ssh_string_free(str);
+
+ leave_function();
+ return -1;
+}
+
+/* returns 1 if at least one of the name algos is in the default algorithms table */
+int verify_existing_algo(int algo, const char *name){
+ char *ptr;
+ if(algo>9 || algo <0)
+ return -1;
+ ptr=ssh_find_matching(supported_methods[algo],name);
+ if(ptr){
+ free(ptr);
+ return 1;
+ }
+ return 0;
+}
+
+#ifdef WITH_SSH1
+
+/* makes a STRING contating 3 strings : ssh-rsa1,e and n */
+/* this is a public key in openssh's format */
+static ssh_string make_rsa1_string(ssh_string e, ssh_string n){
+ ssh_buffer buffer = NULL;
+ ssh_string rsa = NULL;
+ ssh_string ret = NULL;
+
+ buffer = ssh_buffer_new();
+ rsa = ssh_string_from_char("ssh-rsa1");
+
+ if (buffer_add_ssh_string(buffer, rsa) < 0) {
+ goto error;
+ }
+ if (buffer_add_ssh_string(buffer, e) < 0) {
+ goto error;
+ }
+ if (buffer_add_ssh_string(buffer, n) < 0) {
+ goto error;
+ }
+
+ ret = ssh_string_new(ssh_buffer_get_len(buffer));
+ if (ret == NULL) {
+ goto error;
+ }
+
+ ssh_string_fill(ret, ssh_buffer_get_begin(buffer), ssh_buffer_get_len(buffer));
+error:
+ ssh_buffer_free(buffer);
+ ssh_string_free(rsa);
+
+ return ret;
+}
+
+static int build_session_id1(ssh_session session, ssh_string servern,
+ ssh_string hostn) {
+ MD5CTX md5 = NULL;
+
+ md5 = md5_init();
+ if (md5 == NULL) {
+ return -1;
+ }
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("host modulus",ssh_string_data(hostn),ssh_string_len(hostn));
+ ssh_print_hexa("server modulus",ssh_string_data(servern),ssh_string_len(servern));
+#endif
+ md5_update(md5,ssh_string_data(hostn),ssh_string_len(hostn));
+ md5_update(md5,ssh_string_data(servern),ssh_string_len(servern));
+ md5_update(md5,session->server_kex.cookie,8);
+ md5_final(session->next_crypto->session_id,md5);
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("session_id",session->next_crypto->session_id,MD5_DIGEST_LEN);
+#endif
+
+ return 0;
+}
+
+/* returns 1 if the modulus of k1 is < than the one of k2 */
+static int modulus_smaller(ssh_public_key k1, ssh_public_key k2){
+ bignum n1;
+ bignum n2;
+ int res;
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_t sexp;
+ sexp=gcry_sexp_find_token(k1->rsa_pub,"n",0);
+ n1=gcry_sexp_nth_mpi(sexp,1,GCRYMPI_FMT_USG);
+ gcry_sexp_release(sexp);
+ sexp=gcry_sexp_find_token(k2->rsa_pub,"n",0);
+ n2=gcry_sexp_nth_mpi(sexp,1,GCRYMPI_FMT_USG);
+ gcry_sexp_release(sexp);
+#elif defined HAVE_LIBCRYPTO
+ n1=k1->rsa_pub->n;
+ n2=k2->rsa_pub->n;
+#endif
+ if(bignum_cmp(n1,n2)<0)
+ res=1;
+ else
+ res=0;
+#ifdef HAVE_LIBGCRYPT
+ bignum_free(n1);
+ bignum_free(n2);
+#endif
+ return res;
+
+}
+
+#define ABS(A) ( (A)<0 ? -(A):(A) )
+static ssh_string encrypt_session_key(ssh_session session, ssh_public_key srvkey,
+ ssh_public_key hostkey, int slen, int hlen) {
+ unsigned char buffer[32] = {0};
+ int i;
+ ssh_string data1 = NULL;
+ ssh_string data2 = NULL;
+
+ /* first, generate a session key */
+ ssh_get_random(session->next_crypto->encryptkey, 32, 1);
+ memcpy(buffer, session->next_crypto->encryptkey, 32);
+ memcpy(session->next_crypto->decryptkey, session->next_crypto->encryptkey, 32);
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("session key",buffer,32);
+#endif
+
+ /* xor session key with session_id */
+ for (i = 0; i < 16; i++) {
+ buffer[i] ^= session->next_crypto->session_id[i];
+ }
+ data1 = ssh_string_new(32);
+ if (data1 == NULL) {
+ return NULL;
+ }
+ ssh_string_fill(data1, buffer, 32);
+ if (ABS(hlen - slen) < 128){
+ ssh_log(session, SSH_LOG_FUNCTIONS,
+ "Difference between server modulus and host modulus is only %d. "
+ "It's illegal and may not work",
+ ABS(hlen - slen));
+ }
+
+ if (modulus_smaller(srvkey, hostkey)) {
+ data2 = ssh_encrypt_rsa1(session, data1, srvkey);
+ ssh_string_free(data1);
+ data1 = NULL;
+ if (data2 == NULL) {
+ return NULL;
+ }
+ data1 = ssh_encrypt_rsa1(session, data2, hostkey);
+ ssh_string_free(data2);
+ if (data1 == NULL) {
+ return NULL;
+ }
+ } else {
+ data2 = ssh_encrypt_rsa1(session, data1, hostkey);
+ ssh_string_free(data1);
+ data1 = NULL;
+ if (data2 == NULL) {
+ return NULL;
+ }
+ data1 = ssh_encrypt_rsa1(session, data2, srvkey);
+ ssh_string_free(data2);
+ if (data1 == NULL) {
+ return NULL;
+ }
+ }
+
+ return data1;
+}
+
+/* SSH-1 functions */
+/* 2 SSH_SMSG_PUBLIC_KEY
+ *
+ * 8 bytes anti_spoofing_cookie
+ * 32-bit int server_key_bits
+ * mp-int server_key_public_exponent
+ * mp-int server_key_public_modulus
+ * 32-bit int host_key_bits
+ * mp-int host_key_public_exponent
+ * mp-int host_key_public_modulus
+ * 32-bit int protocol_flags
+ * 32-bit int supported_ciphers_mask
+ * 32-bit int supported_authentications_mask
+ */
+/**
+ * @brief Wait for a SSH_SMSG_PUBLIC_KEY and does the key exchange
+ */
+SSH_PACKET_CALLBACK(ssh_packet_publickey1){
+ ssh_string server_exp = NULL;
+ ssh_string server_mod = NULL;
+ ssh_string host_exp = NULL;
+ ssh_string host_mod = NULL;
+ ssh_string serverkey = NULL;
+ ssh_string hostkey = NULL;
+ ssh_public_key srv = NULL;
+ ssh_public_key host = NULL;
+ uint32_t server_bits;
+ uint32_t host_bits;
+ uint32_t protocol_flags;
+ uint32_t supported_ciphers_mask;
+ uint32_t supported_authentications_mask;
+ ssh_string enc_session = NULL;
+ uint16_t bits;
+ int ko;
+ enter_function();
+ (void)type;
+ (void)user;
+ ssh_log(session, SSH_LOG_PROTOCOL, "Got a SSH_SMSG_PUBLIC_KEY");
+ if(session->session_state != SSH_SESSION_STATE_INITIAL_KEX){
+ ssh_set_error(session,SSH_FATAL,"SSH_KEXINIT received in wrong state");
+ goto error;
+ }
+ if (buffer_get_data(packet, session->server_kex.cookie, 8) != 8) {
+ ssh_set_error(session, SSH_FATAL, "Can't get cookie in buffer");
+ goto error;
+ }
+
+ buffer_get_u32(packet, &server_bits);
+ server_exp = buffer_get_mpint(packet);
+ if (server_exp == NULL) {
+ goto error;
+ }
+ server_mod = buffer_get_mpint(packet);
+ if (server_mod == NULL) {
+ goto error;
+ }
+ buffer_get_u32(packet, &host_bits);
+ host_exp = buffer_get_mpint(packet);
+ if (host_exp == NULL) {
+ goto error;
+ }
+ host_mod = buffer_get_mpint(packet);
+ if (host_mod == NULL) {
+ goto error;
+ }
+ buffer_get_u32(packet, &protocol_flags);
+ buffer_get_u32(packet, &supported_ciphers_mask);
+ ko = buffer_get_u32(packet, &supported_authentications_mask);
+
+ if ((ko != sizeof(uint32_t)) || !host_mod || !host_exp
+ || !server_mod || !server_exp) {
+ ssh_log(session, SSH_LOG_RARE, "Invalid SSH_SMSG_PUBLIC_KEY packet");
+ ssh_set_error(session, SSH_FATAL, "Invalid SSH_SMSG_PUBLIC_KEY packet");
+ goto error;
+ }
+
+ server_bits = ntohl(server_bits);
+ host_bits = ntohl(host_bits);
+ protocol_flags = ntohl(protocol_flags);
+ supported_ciphers_mask = ntohl(supported_ciphers_mask);
+ supported_authentications_mask = ntohl(supported_authentications_mask);
+ ssh_log(session, SSH_LOG_PROTOCOL,
+ "Server bits: %d; Host bits: %d; Protocol flags: %.8lx; "
+ "Cipher mask: %.8lx; Auth mask: %.8lx",
+ server_bits,
+ host_bits,
+ (unsigned long int) protocol_flags,
+ (unsigned long int) supported_ciphers_mask,
+ (unsigned long int) supported_authentications_mask);
+
+ serverkey = make_rsa1_string(server_exp, server_mod);
+ if (serverkey == NULL) {
+ goto error;
+ }
+ hostkey = make_rsa1_string(host_exp,host_mod);
+ if (serverkey == NULL) {
+ goto error;
+ }
+ if (build_session_id1(session, server_mod, host_mod) < 0) {
+ goto error;
+ }
+
+ srv = publickey_from_string(session, serverkey);
+ if (srv == NULL) {
+ goto error;
+ }
+ host = publickey_from_string(session, hostkey);
+ if (host == NULL) {
+ goto error;
+ }
+
+ session->next_crypto->server_pubkey = ssh_string_copy(hostkey);
+ if (session->next_crypto->server_pubkey == NULL) {
+ goto error;
+ }
+ session->next_crypto->server_pubkey_type = "ssh-rsa1";
+
+ /* now, we must choose an encryption algo */
+ /* hardcode 3des */
+ if (!(supported_ciphers_mask & (1 << SSH_CIPHER_3DES))) {
+ ssh_set_error(session, SSH_FATAL, "Remote server doesn't accept 3DES");
+ goto error;
+ }
+ ssh_log(session, SSH_LOG_PROTOCOL, "Sending SSH_CMSG_SESSION_KEY");
+
+ if (buffer_add_u8(session->out_buffer, SSH_CMSG_SESSION_KEY) < 0) {
+ goto error;
+ }
+ if (buffer_add_u8(session->out_buffer, SSH_CIPHER_3DES) < 0) {
+ goto error;
+ }
+ if (buffer_add_data(session->out_buffer, session->server_kex.cookie, 8) < 0) {
+ goto error;
+ }
+
+ enc_session = encrypt_session_key(session, srv, host, server_bits, host_bits);
+ if (enc_session == NULL) {
+ goto error;
+ }
+
+ bits = ssh_string_len(enc_session) * 8 - 7;
+ ssh_log(session, SSH_LOG_PROTOCOL, "%d bits, %zu bytes encrypted session",
+ bits, ssh_string_len(enc_session));
+ bits = htons(bits);
+ /* the encrypted mpint */
+ if (buffer_add_data(session->out_buffer, &bits, sizeof(uint16_t)) < 0) {
+ goto error;
+ }
+ if (buffer_add_data(session->out_buffer, ssh_string_data(enc_session),
+ ssh_string_len(enc_session)) < 0) {
+ goto error;
+ }
+ /* the protocol flags */
+ if (buffer_add_u32(session->out_buffer, 0) < 0) {
+ goto error;
+ }
+ session->session_state=SSH_SESSION_STATE_KEXINIT_RECEIVED;
+ if (packet_send(session) == SSH_ERROR) {
+ goto error;
+ }
+
+ /* we can set encryption */
+ if (crypt_set_algorithms(session)) {
+ goto error;
+ }
+
+ session->current_crypto = session->next_crypto;
+ session->next_crypto = NULL;
+ goto end;
+error:
+ session->session_state=SSH_SESSION_STATE_ERROR;
+end:
+
+ ssh_string_free(host_mod);
+ ssh_string_free(host_exp);
+ ssh_string_free(server_mod);
+ ssh_string_free(server_exp);
+ ssh_string_free(serverkey);
+ ssh_string_free(hostkey);
+ ssh_string_free(enc_session);
+
+ publickey_free(srv);
+ publickey_free(host);
+
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+int ssh_get_kex1(ssh_session session) {
+ int ret=SSH_ERROR;
+ enter_function();
+ ssh_log(session, SSH_LOG_PROTOCOL, "Waiting for a SSH_SMSG_PUBLIC_KEY");
+ /* Here the callback is called */
+ while(session->session_state==SSH_SESSION_STATE_INITIAL_KEX){
+ ssh_handle_packets(session,-1);
+ }
+ if(session->session_state==SSH_SESSION_STATE_ERROR)
+ goto error;
+ ssh_log(session, SSH_LOG_PROTOCOL, "Waiting for a SSH_SMSG_SUCCESS");
+ /* Waiting for SSH_SMSG_SUCCESS */
+ while(session->session_state==SSH_SESSION_STATE_KEXINIT_RECEIVED){
+ ssh_handle_packets(session,-1);
+ }
+ if(session->session_state==SSH_SESSION_STATE_ERROR)
+ goto error;
+ ssh_log(session, SSH_LOG_PROTOCOL, "received SSH_SMSG_SUCCESS\n");
+ ret=SSH_OK;
+error:
+ leave_function();
+ return ret;
+}
+
+#endif /* WITH_SSH1 */
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/keyfiles.c b/src/keyfiles.c
new file mode 100644
index 0000000..9512de0
--- /dev/null
+++ b/src/keyfiles.c
@@ -0,0 +1,1902 @@
+/*
+ * keyfiles.c - private and public key handling for authentication.
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2009 by Aris Adamantiadis
+ * Copyright (c) 2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifndef _WIN32
+#if _MSC_VER >= 1400
+#include <io.h>
+#undef open
+#define open _open
+#undef close
+#define close _close
+#undef read
+#define read _read
+#endif /* _MSC_VER */
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/priv.h"
+#include "libssh/buffer.h"
+#include "libssh/keyfiles.h"
+#include "libssh/session.h"
+#include "libssh/wrapper.h"
+#include "libssh/misc.h"
+#include "libssh/keys.h"
+
+/*todo: remove this include */
+#include "libssh/string.h"
+
+
+#ifdef HAVE_LIBGCRYPT
+#include <gcrypt.h>
+#elif defined HAVE_LIBCRYPTO
+#include <openssl/pem.h>
+#include <openssl/dsa.h>
+#include <openssl/err.h>
+#include <openssl/rsa.h>
+#endif /* HAVE_LIBCRYPTO */
+
+#define MAXLINESIZE 80
+#define RSA_HEADER_BEGIN "-----BEGIN RSA PRIVATE KEY-----"
+#define RSA_HEADER_END "-----END RSA PRIVATE KEY-----"
+#define DSA_HEADER_BEGIN "-----BEGIN DSA PRIVATE KEY-----"
+#define DSA_HEADER_END "-----END DSA PRIVATE KEY-----"
+
+#ifdef HAVE_LIBGCRYPT
+
+#define MAX_KEY_SIZE 32
+#define MAX_PASSPHRASE_SIZE 1024
+#define ASN1_INTEGER 2
+#define ASN1_SEQUENCE 48
+#define PKCS5_SALT_LEN 8
+
+static int load_iv(char *header, unsigned char *iv, int iv_len) {
+ int i;
+ int j;
+ int k;
+
+ memset(iv, 0, iv_len);
+ for (i = 0; i < iv_len; i++) {
+ if ((header[2*i] >= '0') && (header[2*i] <= '9'))
+ j = header[2*i] - '0';
+ else if ((header[2*i] >= 'A') && (header[2*i] <= 'F'))
+ j = header[2*i] - 'A' + 10;
+ else if ((header[2*i] >= 'a') && (header[2*i] <= 'f'))
+ j = header[2*i] - 'a' + 10;
+ else
+ return -1;
+ if ((header[2*i+1] >= '0') && (header[2*i+1] <= '9'))
+ k = header[2*i+1] - '0';
+ else if ((header[2*i+1] >= 'A') && (header[2*i+1] <= 'F'))
+ k = header[2*i+1] - 'A' + 10;
+ else if ((header[2*i+1] >= 'a') && (header[2*i+1] <= 'f'))
+ k = header[2*i+1] - 'a' + 10;
+ else
+ return -1;
+ iv[i] = (j << 4) + k;
+ }
+ return 0;
+}
+
+static uint32_t char_to_u32(unsigned char *data, uint32_t size) {
+ uint32_t ret;
+ uint32_t i;
+
+ for (i = 0, ret = 0; i < size; ret = ret << 8, ret += data[i++])
+ ;
+ return ret;
+}
+
+static uint32_t asn1_get_len(ssh_buffer buffer) {
+ uint32_t len;
+ unsigned char tmp[4];
+
+ if (buffer_get_data(buffer,tmp,1) == 0) {
+ return 0;
+ }
+
+ if (tmp[0] > 127) {
+ len = tmp[0] & 127;
+ if (len > 4) {
+ return 0; /* Length doesn't fit in u32. Can this really happen? */
+ }
+ if (buffer_get_data(buffer,tmp,len) == 0) {
+ return 0;
+ }
+ len = char_to_u32(tmp, len);
+ } else {
+ len = char_to_u32(tmp, 1);
+ }
+
+ return len;
+}
+
+static ssh_string asn1_get_int(ssh_buffer buffer) {
+ ssh_string str;
+ unsigned char type;
+ uint32_t size;
+
+ if (buffer_get_data(buffer, &type, 1) == 0 || type != ASN1_INTEGER) {
+ return NULL;
+ }
+ size = asn1_get_len(buffer);
+ if (size == 0) {
+ return NULL;
+ }
+
+ str = ssh_string_new(size);
+ if (str == NULL) {
+ return NULL;
+ }
+
+ if (buffer_get_data(buffer, str->string, size) == 0) {
+ ssh_string_free(str);
+ return NULL;
+ }
+
+ return str;
+}
+
+static int asn1_check_sequence(ssh_buffer buffer) {
+ unsigned char *j = NULL;
+ unsigned char tmp;
+ int i;
+ uint32_t size;
+ uint32_t padding;
+
+ if (buffer_get_data(buffer, &tmp, 1) == 0 || tmp != ASN1_SEQUENCE) {
+ return 0;
+ }
+
+ size = asn1_get_len(buffer);
+ if ((padding = ssh_buffer_get_len(buffer) - buffer->pos - size) > 0) {
+ for (i = ssh_buffer_get_len(buffer) - buffer->pos - size,
+ j = (unsigned char*)ssh_buffer_get_begin(buffer) + size + buffer->pos;
+ i;
+ i--, j++)
+ {
+ if (*j != padding) { /* padding is allowed */
+ return 0; /* but nothing else */
+ }
+ }
+ }
+
+ return 1;
+}
+
+static int read_line(char *data, unsigned int len, FILE *fp) {
+ char tmp;
+ unsigned int i;
+
+ for (i = 0; fread(&tmp, 1, 1, fp) && tmp != '\n' && i < len; data[i++] = tmp)
+ ;
+ if (tmp == '\n') {
+ return i;
+ }
+
+ if (i >= len) {
+ return -1;
+ }
+
+ return 0;
+}
+
+static int passphrase_to_key(char *data, unsigned int datalen,
+ unsigned char *salt, unsigned char *key, unsigned int keylen) {
+ MD5CTX md;
+ unsigned char digest[MD5_DIGEST_LEN] = {0};
+ unsigned int i;
+ unsigned int j;
+ unsigned int md_not_empty;
+
+ for (j = 0, md_not_empty = 0; j < keylen; ) {
+ md = md5_init();
+ if (md == NULL) {
+ return -1;
+ }
+
+ if (md_not_empty) {
+ md5_update(md, digest, MD5_DIGEST_LEN);
+ } else {
+ md_not_empty = 1;
+ }
+
+ md5_update(md, data, datalen);
+ if (salt) {
+ md5_update(md, salt, PKCS5_SALT_LEN);
+ }
+ md5_final(digest, md);
+
+ for (i = 0; j < keylen && i < MD5_DIGEST_LEN; j++, i++) {
+ if (key) {
+ key[j] = digest[i];
+ }
+ }
+ }
+
+ return 0;
+}
+
+static int privatekey_decrypt(int algo, int mode, unsigned int key_len,
+ unsigned char *iv, unsigned int iv_len,
+ ssh_buffer data, ssh_auth_callback cb,
+ void *userdata,
+ const char *desc)
+{
+ char passphrase[MAX_PASSPHRASE_SIZE] = {0};
+ unsigned char key[MAX_KEY_SIZE] = {0};
+ unsigned char *tmp = NULL;
+ gcry_cipher_hd_t cipher;
+ int rc = -1;
+
+ if (!algo) {
+ return -1;
+ }
+
+ if (cb) {
+ rc = (*cb)(desc, passphrase, MAX_PASSPHRASE_SIZE, 0, 0, userdata);
+ if (rc < 0) {
+ return -1;
+ }
+ } else if (cb == NULL && userdata != NULL) {
+ snprintf(passphrase, MAX_PASSPHRASE_SIZE, "%s", (char *) userdata);
+ }
+
+ if (passphrase_to_key(passphrase, strlen(passphrase), iv, key, key_len) < 0) {
+ return -1;
+ }
+
+ if (gcry_cipher_open(&cipher, algo, mode, 0)
+ || gcry_cipher_setkey(cipher, key, key_len)
+ || gcry_cipher_setiv(cipher, iv, iv_len)
+ || (tmp = malloc(ssh_buffer_get_len(data) * sizeof (char))) == NULL
+ || gcry_cipher_decrypt(cipher, tmp, ssh_buffer_get_len(data),
+ ssh_buffer_get_begin(data), ssh_buffer_get_len(data))) {
+ gcry_cipher_close(cipher);
+ return -1;
+ }
+
+ memcpy(ssh_buffer_get_begin(data), tmp, ssh_buffer_get_len(data));
+
+ SAFE_FREE(tmp);
+ gcry_cipher_close(cipher);
+
+ return 0;
+}
+
+static int privatekey_dek_header(char *header, unsigned int header_len,
+ int *algo, int *mode, unsigned int *key_len, unsigned char **iv,
+ unsigned int *iv_len) {
+ unsigned int iv_pos;
+
+ if (header_len > 13 && !strncmp("DES-EDE3-CBC", header, 12))
+ {
+ *algo = GCRY_CIPHER_3DES;
+ iv_pos = 13;
+ *mode = GCRY_CIPHER_MODE_CBC;
+ *key_len = 24;
+ *iv_len = 8;
+ }
+ else if (header_len > 8 && !strncmp("DES-CBC", header, 7))
+ {
+ *algo = GCRY_CIPHER_DES;
+ iv_pos = 8;
+ *mode = GCRY_CIPHER_MODE_CBC;
+ *key_len = 8;
+ *iv_len = 8;
+ }
+ else if (header_len > 12 && !strncmp("AES-128-CBC", header, 11))
+ {
+ *algo = GCRY_CIPHER_AES128;
+ iv_pos = 12;
+ *mode = GCRY_CIPHER_MODE_CBC;
+ *key_len = 16;
+ *iv_len = 16;
+ }
+ else if (header_len > 12 && !strncmp("AES-192-CBC", header, 11))
+ {
+ *algo = GCRY_CIPHER_AES192;
+ iv_pos = 12;
+ *mode = GCRY_CIPHER_MODE_CBC;
+ *key_len = 24;
+ *iv_len = 16;
+ }
+ else if (header_len > 12 && !strncmp("AES-256-CBC", header, 11))
+ {
+ *algo = GCRY_CIPHER_AES256;
+ iv_pos = 12;
+ *mode = GCRY_CIPHER_MODE_CBC;
+ *key_len = 32;
+ *iv_len = 16;
+ } else {
+ return -1;
+ }
+
+ *iv = malloc(*iv_len);
+ if (*iv == NULL) {
+ return -1;
+ }
+
+ return load_iv(header + iv_pos, *iv, *iv_len);
+}
+
+static ssh_buffer privatekey_file_to_buffer(FILE *fp, int type,
+ ssh_auth_callback cb, void *userdata, const char *desc) {
+ ssh_buffer buffer = NULL;
+ ssh_buffer out = NULL;
+ char buf[MAXLINESIZE] = {0};
+ unsigned char *iv = NULL;
+ const char *header_begin;
+ const char *header_end;
+ unsigned int header_begin_size;
+ unsigned int header_end_size;
+ unsigned int key_len = 0;
+ unsigned int iv_len = 0;
+ int algo = 0;
+ int mode = 0;
+ int len;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ return NULL;
+ }
+
+ switch(type) {
+ case SSH_KEYTYPE_DSS:
+ header_begin = DSA_HEADER_BEGIN;
+ header_end = DSA_HEADER_END;
+ break;
+ case SSH_KEYTYPE_RSA:
+ header_begin = RSA_HEADER_BEGIN;
+ header_end = RSA_HEADER_END;
+ break;
+ default:
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+
+ header_begin_size = strlen(header_begin);
+ header_end_size = strlen(header_end);
+
+ while (read_line(buf, MAXLINESIZE, fp) &&
+ strncmp(buf, header_begin, header_begin_size))
+ ;
+
+ len = read_line(buf, MAXLINESIZE, fp);
+ if (len > 11 && strncmp("Proc-Type: 4,ENCRYPTED", buf, 11) == 0) {
+ len = read_line(buf, MAXLINESIZE, fp);
+ if (len > 10 && strncmp("DEK-Info: ", buf, 10) == 0) {
+ if ((privatekey_dek_header(buf + 10, len - 10, &algo, &mode, &key_len,
+ &iv, &iv_len) < 0)
+ || read_line(buf, MAXLINESIZE, fp)) {
+ ssh_buffer_free(buffer);
+ SAFE_FREE(iv);
+ return NULL;
+ }
+ } else {
+ ssh_buffer_free(buffer);
+ SAFE_FREE(iv);
+ return NULL;
+ }
+ } else {
+ if (buffer_add_data(buffer, buf, len) < 0) {
+ ssh_buffer_free(buffer);
+ SAFE_FREE(iv);
+ return NULL;
+ }
+ }
+
+ while ((len = read_line(buf,MAXLINESIZE,fp)) &&
+ strncmp(buf, header_end, header_end_size) != 0) {
+ if (len == -1) {
+ ssh_buffer_free(buffer);
+ SAFE_FREE(iv);
+ return NULL;
+ }
+ if (buffer_add_data(buffer, buf, len) < 0) {
+ ssh_buffer_free(buffer);
+ SAFE_FREE(iv);
+ return NULL;
+ }
+ }
+
+ if (strncmp(buf,header_end,header_end_size) != 0) {
+ ssh_buffer_free(buffer);
+ SAFE_FREE(iv);
+ return NULL;
+ }
+
+ if (buffer_add_data(buffer, "\0", 1) < 0) {
+ ssh_buffer_free(buffer);
+ SAFE_FREE(iv);
+ return NULL;
+ }
+
+ out = base64_to_bin(ssh_buffer_get_begin(buffer));
+ ssh_buffer_free(buffer);
+ if (out == NULL) {
+ SAFE_FREE(iv);
+ return NULL;
+ }
+
+ if (algo) {
+ if (privatekey_decrypt(algo, mode, key_len, iv, iv_len, out,
+ cb, userdata, desc) < 0) {
+ ssh_buffer_free(out);
+ SAFE_FREE(iv);
+ return NULL;
+ }
+ }
+ SAFE_FREE(iv);
+
+ return out;
+}
+
+static int read_rsa_privatekey(FILE *fp, gcry_sexp_t *r,
+ ssh_auth_callback cb, void *userdata, const char *desc) {
+ ssh_string n = NULL;
+ ssh_string e = NULL;
+ ssh_string d = NULL;
+ ssh_string p = NULL;
+ ssh_string q = NULL;
+ ssh_string unused1 = NULL;
+ ssh_string unused2 = NULL;
+ ssh_string u = NULL;
+ ssh_string v = NULL;
+ ssh_buffer buffer = NULL;
+ int rc = 1;
+
+ buffer = privatekey_file_to_buffer(fp, SSH_KEYTYPE_RSA, cb, userdata, desc);
+ if (buffer == NULL) {
+ return 0;
+ }
+
+ if (!asn1_check_sequence(buffer)) {
+ ssh_buffer_free(buffer);
+ return 0;
+ }
+
+ v = asn1_get_int(buffer);
+ if (ntohl(v->size) != 1 || v->string[0] != 0) {
+ ssh_buffer_free(buffer);
+ return 0;
+ }
+
+ n = asn1_get_int(buffer);
+ e = asn1_get_int(buffer);
+ d = asn1_get_int(buffer);
+ q = asn1_get_int(buffer);
+ p = asn1_get_int(buffer);
+ unused1 = asn1_get_int(buffer);
+ unused2 = asn1_get_int(buffer);
+ u = asn1_get_int(buffer);
+
+ ssh_buffer_free(buffer);
+
+ if (n == NULL || e == NULL || d == NULL || p == NULL || q == NULL ||
+ unused1 == NULL || unused2 == NULL|| u == NULL) {
+ rc = 0;
+ goto error;
+ }
+
+ if (gcry_sexp_build(r, NULL,
+ "(private-key(rsa(n %b)(e %b)(d %b)(p %b)(q %b)(u %b)))",
+ ntohl(n->size), n->string,
+ ntohl(e->size), e->string,
+ ntohl(d->size), d->string,
+ ntohl(p->size), p->string,
+ ntohl(q->size), q->string,
+ ntohl(u->size), u->string)) {
+ rc = 0;
+ }
+
+error:
+ ssh_string_free(n);
+ ssh_string_free(e);
+ ssh_string_free(d);
+ ssh_string_free(p);
+ ssh_string_free(q);
+ ssh_string_free(unused1);
+ ssh_string_free(unused2);
+ ssh_string_free(u);
+ ssh_string_free(v);
+
+ return rc;
+}
+
+static int read_dsa_privatekey(FILE *fp, gcry_sexp_t *r, ssh_auth_callback cb,
+ void *userdata, const char *desc) {
+ ssh_buffer buffer = NULL;
+ ssh_string p = NULL;
+ ssh_string q = NULL;
+ ssh_string g = NULL;
+ ssh_string y = NULL;
+ ssh_string x = NULL;
+ ssh_string v = NULL;
+ int rc = 1;
+
+ buffer = privatekey_file_to_buffer(fp, SSH_KEYTYPE_DSS, cb, userdata, desc);
+ if (buffer == NULL) {
+ return 0;
+ }
+
+ if (!asn1_check_sequence(buffer)) {
+ ssh_buffer_free(buffer);
+ return 0;
+ }
+
+ v = asn1_get_int(buffer);
+ if (ntohl(v->size) != 1 || v->string[0] != 0) {
+ ssh_buffer_free(buffer);
+ return 0;
+ }
+
+ p = asn1_get_int(buffer);
+ q = asn1_get_int(buffer);
+ g = asn1_get_int(buffer);
+ y = asn1_get_int(buffer);
+ x = asn1_get_int(buffer);
+ ssh_buffer_free(buffer);
+
+ if (p == NULL || q == NULL || g == NULL || y == NULL || x == NULL) {
+ rc = 0;
+ goto error;
+ }
+
+ if (gcry_sexp_build(r, NULL,
+ "(private-key(dsa(p %b)(q %b)(g %b)(y %b)(x %b)))",
+ ntohl(p->size), p->string,
+ ntohl(q->size), q->string,
+ ntohl(g->size), g->string,
+ ntohl(y->size), y->string,
+ ntohl(x->size), x->string)) {
+ rc = 0;
+ }
+
+error:
+ ssh_string_free(p);
+ ssh_string_free(q);
+ ssh_string_free(g);
+ ssh_string_free(y);
+ ssh_string_free(x);
+ ssh_string_free(v);
+
+ return rc;
+}
+#endif /* HAVE_LIBGCRYPT */
+
+#ifdef HAVE_LIBCRYPTO
+static int pem_get_password(char *buf, int size, int rwflag, void *userdata) {
+ ssh_session session = userdata;
+
+ /* unused flag */
+ (void) rwflag;
+ if(buf==NULL)
+ return 0;
+ memset(buf,'\0',size);
+ ssh_log(session, SSH_LOG_RARE,
+ "Trying to call external authentication function");
+
+ if (session && session->callbacks && session->callbacks->auth_function) {
+ if (session->callbacks->auth_function("Passphrase for private key:", buf, size, 0, 0,
+ session->callbacks->userdata) < 0) {
+ return 0;
+ }
+
+ return strlen(buf);
+ }
+
+ return 0;
+}
+#endif /* HAVE_LIBCRYPTO */
+
+static int privatekey_type_from_file(FILE *fp) {
+ char buffer[MAXLINESIZE] = {0};
+
+ if (!fgets(buffer, MAXLINESIZE, fp)) {
+ return 0;
+ }
+ fseek(fp, 0, SEEK_SET);
+ if (strncmp(buffer, DSA_HEADER_BEGIN, strlen(DSA_HEADER_BEGIN)) == 0) {
+ return SSH_KEYTYPE_DSS;
+ }
+ if (strncmp(buffer, RSA_HEADER_BEGIN, strlen(RSA_HEADER_BEGIN)) == 0) {
+ return SSH_KEYTYPE_RSA;
+ }
+ return 0;
+}
+
+/**
+ * @addtogroup libssh_auth
+ *
+ * @{
+ */
+
+/**
+ * @brief Reads a SSH private key from a file.
+ *
+ * @param[in] session The SSH Session to use.
+ *
+ * @param[in] filename The filename of the the private key.
+ *
+ * @param[in] type The type of the private key. This could be SSH_KEYTYPE_DSS or
+ * SSH_KEYTYPE_RSA. Pass 0 to automatically detect the type.
+ *
+ * @param[in] passphrase The passphrase to decrypt the private key. Set to null
+ * if none is needed or it is unknown.
+ *
+ * @return A private_key object containing the private key, or
+ * NULL on error.
+ * @see privatekey_free()
+ * @see publickey_from_privatekey()
+ */
+ssh_private_key privatekey_from_file(ssh_session session, const char *filename,
+ int type, const char *passphrase) {
+ ssh_private_key privkey = NULL;
+ FILE *file = NULL;
+#ifdef HAVE_LIBGCRYPT
+ ssh_auth_callback auth_cb = NULL;
+ void *auth_ud = NULL;
+
+ gcry_sexp_t dsa = NULL;
+ gcry_sexp_t rsa = NULL;
+ int valid;
+#elif defined HAVE_LIBCRYPTO
+ DSA *dsa = NULL;
+ RSA *rsa = NULL;
+#endif
+ /* TODO Implement to read both DSA and RSA at once. */
+
+ /* needed for openssl initialization */
+ ssh_init();
+ ssh_log(session, SSH_LOG_RARE, "Trying to open %s", filename);
+ file = fopen(filename,"r");
+ if (file == NULL) {
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Error opening %s: %s", filename, strerror(errno));
+ return NULL;
+ }
+
+ ssh_log(session, SSH_LOG_RARE, "Trying to read %s, passphase=%s, authcb=%s",
+ filename, passphrase ? "true" : "false",
+ session->callbacks && session->callbacks->auth_function ? "true" : "false");
+
+ if (type == 0) {
+ type = privatekey_type_from_file(file);
+ if (type == 0) {
+ fclose(file);
+ ssh_set_error(session, SSH_FATAL, "Invalid private key file.");
+ return NULL;
+ }
+ }
+ switch (type) {
+ case SSH_KEYTYPE_DSS:
+ if (passphrase == NULL) {
+ if (session->callbacks && session->callbacks->auth_function) {
+#ifdef HAVE_LIBGCRYPT
+ auth_cb = session->callbacks->auth_function;
+ auth_ud = session->callbacks->userdata;
+
+ valid = read_dsa_privatekey(file, &dsa, auth_cb, auth_ud,
+ "Passphrase for private key:");
+ } else { /* authcb */
+ valid = read_dsa_privatekey(file, &dsa, NULL, NULL, NULL);
+ } /* authcb */
+ } else { /* passphrase */
+ valid = read_dsa_privatekey(file, &dsa, NULL,
+ (void *) passphrase, NULL);
+ }
+
+ fclose(file);
+
+ if (!valid) {
+ ssh_set_error(session, SSH_FATAL, "Parsing private key %s", filename);
+#elif defined HAVE_LIBCRYPTO
+ dsa = PEM_read_DSAPrivateKey(file, NULL, pem_get_password, session);
+ } else { /* authcb */
+ /* openssl uses its own callback to get the passphrase here */
+ dsa = PEM_read_DSAPrivateKey(file, NULL, NULL, NULL);
+ } /* authcb */
+ } else { /* passphrase */
+ dsa = PEM_read_DSAPrivateKey(file, NULL, NULL, (void *) passphrase);
+ }
+
+ fclose(file);
+ if (dsa == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Parsing private key %s: %s",
+ filename, ERR_error_string(ERR_get_error(), NULL));
+#endif
+ return NULL;
+ }
+ break;
+ case SSH_KEYTYPE_RSA:
+ if (passphrase == NULL) {
+ if (session->callbacks && session->callbacks->auth_function) {
+#ifdef HAVE_LIBGCRYPT
+ auth_cb = session->callbacks->auth_function;
+ auth_ud = session->callbacks->userdata;
+ valid = read_rsa_privatekey(file, &rsa, auth_cb, auth_ud,
+ "Passphrase for private key:");
+ } else { /* authcb */
+ valid = read_rsa_privatekey(file, &rsa, NULL, NULL, NULL);
+ } /* authcb */
+ } else { /* passphrase */
+ valid = read_rsa_privatekey(file, &rsa, NULL,
+ (void *) passphrase, NULL);
+ }
+
+ fclose(file);
+
+ if (!valid) {
+ ssh_set_error(session,SSH_FATAL, "Parsing private key %s", filename);
+#elif defined HAVE_LIBCRYPTO
+ rsa = PEM_read_RSAPrivateKey(file, NULL, pem_get_password, session);
+ } else { /* authcb */
+ /* openssl uses its own callback to get the passphrase here */
+ rsa = PEM_read_RSAPrivateKey(file, NULL, NULL, NULL);
+ } /* authcb */
+ } else { /* passphrase */
+ rsa = PEM_read_RSAPrivateKey(file, NULL, NULL, (void *) passphrase);
+ }
+
+ fclose(file);
+
+ if (rsa == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Parsing private key %s: %s",
+ filename, ERR_error_string(ERR_get_error(),NULL));
+#endif
+ return NULL;
+ }
+ break;
+ default:
+ fclose(file);
+ ssh_set_error(session, SSH_FATAL, "Invalid private key type %d", type);
+ return NULL;
+ } /* switch */
+
+ privkey = malloc(sizeof(struct ssh_private_key_struct));
+ if (privkey == NULL) {
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(dsa);
+ gcry_sexp_release(rsa);
+#elif defined HAVE_LIBCRYPTO
+ DSA_free(dsa);
+ RSA_free(rsa);
+#endif
+ return NULL;
+ }
+
+ privkey->type = type;
+ privkey->dsa_priv = dsa;
+ privkey->rsa_priv = rsa;
+
+ return privkey;
+}
+
+/**
+ * @brief returns the type of a private key
+ * @param[in] privatekey the private key handle
+ * @returns one of SSH_KEYTYPE_RSA,SSH_KEYTYPE_DSS,SSH_KEYTYPE_RSA1
+ * @returns SSH_KEYTYPE_UNKNOWN if the type is unknown
+ * @see privatekey_from_file
+ * @see ssh_userauth_offer_pubkey
+ */
+enum ssh_keytypes_e ssh_privatekey_type(ssh_private_key privatekey){
+ if (privatekey==NULL)
+ return SSH_KEYTYPE_UNKNOWN;
+ return privatekey->type;
+}
+
+/* same that privatekey_from_file() but without any passphrase things. */
+ssh_private_key _privatekey_from_file(void *session, const char *filename,
+ int type) {
+ ssh_private_key privkey = NULL;
+ FILE *file = NULL;
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_t dsa = NULL;
+ gcry_sexp_t rsa = NULL;
+ int valid;
+#elif defined HAVE_LIBCRYPTO
+ DSA *dsa = NULL;
+ RSA *rsa = NULL;
+#endif
+
+ file = fopen(filename,"r");
+ if (file == NULL) {
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Error opening %s: %s", filename, strerror(errno));
+ return NULL;
+ }
+
+ switch (type) {
+ case SSH_KEYTYPE_DSS:
+#ifdef HAVE_LIBGCRYPT
+ valid = read_dsa_privatekey(file, &dsa, NULL, NULL, NULL);
+
+ fclose(file);
+
+ if (!valid) {
+ ssh_set_error(session, SSH_FATAL, "Parsing private key %s", filename);
+#elif defined HAVE_LIBCRYPTO
+ dsa = PEM_read_DSAPrivateKey(file, NULL, NULL, NULL);
+
+ fclose(file);
+
+ if (dsa == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Parsing private key %s: %s",
+ filename, ERR_error_string(ERR_get_error(), NULL));
+#endif
+ return NULL;
+ }
+ break;
+ case SSH_KEYTYPE_RSA:
+#ifdef HAVE_LIBGCRYPT
+ valid = read_rsa_privatekey(file, &rsa, NULL, NULL, NULL);
+
+ fclose(file);
+
+ if (!valid) {
+ ssh_set_error(session, SSH_FATAL, "Parsing private key %s", filename);
+#elif defined HAVE_LIBCRYPTO
+ rsa = PEM_read_RSAPrivateKey(file, NULL, NULL, NULL);
+
+ fclose(file);
+
+ if (rsa == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Parsing private key %s: %s",
+ filename, ERR_error_string(ERR_get_error(), NULL));
+#endif
+ return NULL;
+ }
+ break;
+ default:
+ ssh_set_error(session, SSH_FATAL, "Invalid private key type %d", type);
+ return NULL;
+ }
+
+ privkey = malloc(sizeof(struct ssh_private_key_struct));
+ if (privkey == NULL) {
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(dsa);
+ gcry_sexp_release(rsa);
+#elif defined HAVE_LIBCRYPTO
+ DSA_free(dsa);
+ RSA_free(rsa);
+#endif
+ return NULL;
+ }
+
+ privkey->type = type;
+ privkey->dsa_priv = dsa;
+ privkey->rsa_priv = rsa;
+
+ return privkey;
+}
+
+/**
+ * @brief Deallocate a private key object.
+ *
+ * @param[in] prv The private_key object to free.
+ */
+void privatekey_free(ssh_private_key prv) {
+ if (prv == NULL) {
+ return;
+ }
+
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(prv->dsa_priv);
+ gcry_sexp_release(prv->rsa_priv);
+#elif defined HAVE_LIBCRYPTO
+ DSA_free(prv->dsa_priv);
+ RSA_free(prv->rsa_priv);
+#endif
+ memset(prv, 0, sizeof(struct ssh_private_key_struct));
+ SAFE_FREE(prv);
+}
+
+/**
+ * @brief Write a public key to a file.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] file The filename to write the key into.
+ *
+ * @param[in] pubkey The public key to write.
+ *
+ * @param[in] type The type of the public key.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int ssh_publickey_to_file(ssh_session session, const char *file,
+ ssh_string pubkey, int type) {
+ FILE *fp;
+ char *user;
+ char buffer[1024];
+ char host[256];
+ unsigned char *pubkey_64;
+ size_t len;
+ int rc;
+
+ pubkey_64 = bin_to_base64(pubkey->string, ssh_string_len(pubkey));
+ if (pubkey_64 == NULL) {
+ return -1;
+ }
+
+ user = ssh_get_local_username(session);
+ if (user == NULL) {
+ SAFE_FREE(pubkey_64);
+ return -1;
+ }
+
+ rc = gethostname(host, sizeof(host));
+ if (rc < 0) {
+ SAFE_FREE(user);
+ SAFE_FREE(pubkey_64);
+ return -1;
+ }
+
+ snprintf(buffer, sizeof(buffer), "%s %s %s@%s\n",
+ ssh_type_to_char(type),
+ pubkey_64,
+ user,
+ host);
+
+ SAFE_FREE(pubkey_64);
+ SAFE_FREE(user);
+
+ ssh_log(session, SSH_LOG_RARE, "Trying to write public key file: %s", file);
+ ssh_log(session, SSH_LOG_PACKET, "public key file content: %s", buffer);
+
+ fp = fopen(file, "w+");
+ if (fp == NULL) {
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Error opening %s: %s", file, strerror(errno));
+ return -1;
+ }
+
+ len = strlen(buffer);
+ if (fwrite(buffer, len, 1, fp) != 1 || ferror(fp)) {
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Unable to write to %s", file);
+ fclose(fp);
+ unlink(file);
+ return -1;
+ }
+
+ fclose(fp);
+ return 0;
+}
+
+/**
+ * @brief Retrieve a public key from a file.
+ *
+ * @param[in] session The SSH session to use.
+ *
+ * @param[in] filename The filename of the public key.
+ *
+ * @param[out] type The Pointer to a integer. If it is not NULL, it will
+ * contain the type of the key after execution.
+ *
+ * @return A SSH String containing the public key, or NULL if it
+ * failed.
+ *
+ * @see string_free()
+ * @see publickey_from_privatekey()
+ */
+ssh_string publickey_from_file(ssh_session session, const char *filename,
+ int *type) {
+ ssh_buffer buffer = NULL;
+ char buf[4096] = {0};
+ ssh_string str = NULL;
+ char *ptr = NULL;
+ int key_type;
+ int fd = -1;
+ int r;
+
+ fd = open(filename, O_RDONLY);
+ if (fd < 0) {
+ ssh_set_error(session, SSH_REQUEST_DENIED, "Public key file doesn't exist");
+ return NULL;
+ }
+
+ if (read(fd, buf, 8) != 8) {
+ close(fd);
+ ssh_set_error(session, SSH_REQUEST_DENIED, "Invalid public key file");
+ return NULL;
+ }
+
+ buf[7] = '\0';
+
+ key_type = ssh_type_from_name(buf);
+ if (key_type == -1) {
+ close(fd);
+ ssh_set_error(session, SSH_REQUEST_DENIED, "Invalid public key file");
+ return NULL;
+ }
+
+ r = read(fd, buf, sizeof(buf) - 1);
+ close(fd);
+ if (r <= 0) {
+ ssh_set_error(session, SSH_REQUEST_DENIED, "Invalid public key file");
+ return NULL;
+ }
+
+ buf[r] = 0;
+ ptr = strchr(buf, ' ');
+
+ /* eliminate the garbage at end of file */
+ if (ptr) {
+ *ptr = '\0';
+ }
+
+ buffer = base64_to_bin(buf);
+ if (buffer == NULL) {
+ ssh_set_error(session, SSH_REQUEST_DENIED, "Invalid public key file");
+ return NULL;
+ }
+
+ str = ssh_string_new(ssh_buffer_get_len(buffer));
+ if (str == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Not enough space");
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+
+ ssh_string_fill(str, ssh_buffer_get_begin(buffer), ssh_buffer_get_len(buffer));
+ ssh_buffer_free(buffer);
+
+ if (type) {
+ *type = key_type;
+ }
+
+ return str;
+}
+
+/**
+ * @brief Try to read the public key from a given file.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @param[in] keyfile The name of the private keyfile.
+ *
+ * @param[out] publickey A ssh_string to store the public key.
+ *
+ * @param[out] type A pointer to an integer to store the type.
+ *
+ * @return 0 on success, -1 on error or the private key doesn't
+ * exist, 1 if the public key doesn't exist.
+ */
+int ssh_try_publickey_from_file(ssh_session session, const char *keyfile,
+ ssh_string *publickey, int *type) {
+ char *pubkey_file;
+ size_t len;
+ ssh_string pubkey_string;
+ int pubkey_type;
+
+ if (session == NULL || keyfile == NULL || publickey == NULL || type == NULL) {
+ return -1;
+ }
+
+ if (session->sshdir == NULL) {
+ if (ssh_options_apply(session) < 0) {
+ return -1;
+ }
+ }
+
+ ssh_log(session, SSH_LOG_PACKET, "Trying to open privatekey %s", keyfile);
+ if (!ssh_file_readaccess_ok(keyfile)) {
+ ssh_log(session, SSH_LOG_PACKET, "Failed to open privatekey %s", keyfile);
+ return -1;
+ }
+
+ len = strlen(keyfile) + 5;
+ pubkey_file = malloc(len);
+ if (pubkey_file == NULL) {
+ return -1;
+ }
+ snprintf(pubkey_file, len, "%s.pub", keyfile);
+
+ ssh_log(session, SSH_LOG_PACKET, "Trying to open publickey %s",
+ pubkey_file);
+ if (!ssh_file_readaccess_ok(pubkey_file)) {
+ ssh_log(session, SSH_LOG_PACKET, "Failed to open publickey %s",
+ pubkey_file);
+ SAFE_FREE(pubkey_file);
+ return 1;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET, "Success opening public and private key");
+
+ /*
+ * We are sure both the private and public key file is readable. We return
+ * the public as a string, and the private filename as an argument
+ */
+ pubkey_string = publickey_from_file(session, pubkey_file, &pubkey_type);
+ if (pubkey_string == NULL) {
+ ssh_log(session, SSH_LOG_PACKET,
+ "Wasn't able to open public key file %s: %s",
+ pubkey_file,
+ ssh_get_error(session));
+ SAFE_FREE(pubkey_file);
+ return -1;
+ }
+
+ SAFE_FREE(pubkey_file);
+
+ *publickey = pubkey_string;
+ *type = pubkey_type;
+
+ return 0;
+}
+
+ssh_string try_publickey_from_file(ssh_session session, struct ssh_keys_struct keytab,
+ char **privkeyfile, int *type) {
+ const char *priv;
+ const char *pub;
+ char *new;
+ ssh_string pubkey=NULL;
+
+ pub = keytab.publickey;
+ if (pub == NULL) {
+ return NULL;
+ }
+ priv = keytab.privatekey;
+ if (priv == NULL) {
+ return NULL;
+ }
+
+ if (session->sshdir == NULL) {
+ if (ssh_options_apply(session) < 0) {
+ return NULL;
+ }
+ }
+
+ ssh_log(session, SSH_LOG_PACKET, "Trying to open publickey %s", pub);
+ if (!ssh_file_readaccess_ok(pub)) {
+ ssh_log(session, SSH_LOG_PACKET, "Failed to open publickey %s", pub);
+ goto error;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET, "Trying to open privatekey %s", priv);
+ if (!ssh_file_readaccess_ok(priv)) {
+ ssh_log(session, SSH_LOG_PACKET, "Failed to open privatekey %s", priv);
+ goto error;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET, "Success opening public and private key");
+
+ /*
+ * We are sure both the private and public key file is readable. We return
+ * the public as a string, and the private filename as an argument
+ */
+ pubkey = publickey_from_file(session, pub, type);
+ if (pubkey == NULL) {
+ ssh_log(session, SSH_LOG_PACKET,
+ "Wasn't able to open public key file %s: %s",
+ pub,
+ ssh_get_error(session));
+ goto error;
+ }
+
+ new = realloc(*privkeyfile, strlen(priv) + 1);
+ if (new == NULL) {
+ ssh_string_free(pubkey);
+ goto error;
+ }
+
+ strcpy(new, priv);
+ *privkeyfile = new;
+error:
+ return pubkey;
+}
+
+static int alldigits(const char *s) {
+ while (*s) {
+ if (isdigit(*s)) {
+ s++;
+ } else {
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+/** @} */
+
+
+/**
+ * @addtogroup libssh_session
+ *
+ * @{
+ */
+
+/**
+ * @internal
+ *
+ * @brief Free a token array.
+ */
+static void tokens_free(char **tokens) {
+ if (tokens == NULL) {
+ return;
+ }
+
+ SAFE_FREE(tokens[0]);
+ /* It's not needed to free other pointers because tokens generated by
+ * space_tokenize fit all in one malloc
+ */
+ SAFE_FREE(tokens);
+}
+
+/**
+ * @internal
+ *
+ * @brief Return one line of known host file.
+ *
+ * This will return a token array containing (host|ip), keytype and key.
+ *
+ * @param[out] file A pointer to the known host file. Could be pointing to
+ * NULL at start.
+ *
+ * @param[in] filename The file name of the known host file.
+ *
+ * @param[out] found_type A pointer to a string to be set with the found key
+ * type.
+ *
+ * @returns The found_type type of key (ie "dsa","ssh-rsa1"). Don't
+ * free that value. NULL if no match was found or the file
+ * was not found.
+ */
+static char **ssh_get_knownhost_line(ssh_session session, FILE **file,
+ const char *filename, const char **found_type) {
+ char buffer[4096] = {0};
+ char *ptr;
+ char **tokens;
+
+ enter_function();
+
+ if(*file == NULL){
+ *file = fopen(filename,"r");
+ if (*file == NULL) {
+ leave_function();
+ return NULL;
+ }
+ }
+
+ while (fgets(buffer, sizeof(buffer), *file)) {
+ ptr = strchr(buffer, '\n');
+ if (ptr) {
+ *ptr = '\0';
+ }
+
+ ptr = strchr(buffer,'\r');
+ if (ptr) {
+ *ptr = '\0';
+ }
+
+ if (!buffer[0] || buffer[0] == '#') {
+ continue; /* skip empty lines */
+ }
+
+ tokens = space_tokenize(buffer);
+ if (tokens == NULL) {
+ fclose(*file);
+ *file = NULL;
+ leave_function();
+ return NULL;
+ }
+
+ if(!tokens[0] || !tokens[1] || !tokens[2]) {
+ /* it should have at least 3 tokens */
+ tokens_free(tokens);
+ continue;
+ }
+
+ *found_type = tokens[1];
+ if (tokens[3]) {
+ /* openssh rsa1 format has 4 tokens on the line. Recognize it
+ by the fact that everything is all digits */
+ if (tokens[4]) {
+ /* that's never valid */
+ tokens_free(tokens);
+ continue;
+ }
+ if (alldigits(tokens[1]) && alldigits(tokens[2]) && alldigits(tokens[3])) {
+ *found_type = "ssh-rsa1";
+ } else {
+ /* 3 tokens only, not four */
+ tokens_free(tokens);
+ continue;
+ }
+ }
+ leave_function();
+ return tokens;
+ }
+
+ fclose(*file);
+ *file = NULL;
+
+ /* we did not find anything, end of file*/
+ leave_function();
+ return NULL;
+}
+
+/**
+ * @brief Check the public key in the known host line matches the public key of
+ * the currently connected server.
+ *
+ * @param[in] session The SSH session to use.
+ *
+ * @param[in] tokens A list of tokens in the known_hosts line.
+ *
+ * @returns 1 if the key matches, 0 if the key doesn't match and -1
+ * on error.
+ */
+static int check_public_key(ssh_session session, char **tokens) {
+ ssh_string pubkey = session->current_crypto->server_pubkey;
+ ssh_buffer pubkey_buffer;
+ char *pubkey_64;
+
+ /* ok we found some public key in known hosts file. now un-base64it */
+ if (alldigits(tokens[1])) {
+ /* openssh rsa1 format */
+ bignum tmpbn;
+ ssh_string tmpstring;
+ unsigned int len;
+ int i;
+
+ pubkey_buffer = ssh_buffer_new();
+ if (pubkey_buffer == NULL) {
+ return -1;
+ }
+
+ tmpstring = ssh_string_from_char("ssh-rsa1");
+ if (tmpstring == NULL) {
+ ssh_buffer_free(pubkey_buffer);
+ return -1;
+ }
+
+ if (buffer_add_ssh_string(pubkey_buffer, tmpstring) < 0) {
+ ssh_buffer_free(pubkey_buffer);
+ ssh_string_free(tmpstring);
+ return -1;
+ }
+ ssh_string_free(tmpstring);
+
+ for (i = 2; i < 4; i++) { /* e, then n */
+ tmpbn = NULL;
+ bignum_dec2bn(tokens[i], &tmpbn);
+ if (tmpbn == NULL) {
+ ssh_buffer_free(pubkey_buffer);
+ return -1;
+ }
+ /* for some reason, make_bignum_string does not work
+ because of the padding which it does --kv */
+ /* tmpstring = make_bignum_string(tmpbn); */
+ /* do it manually instead */
+ len = bignum_num_bytes(tmpbn);
+ tmpstring = malloc(4 + len);
+ if (tmpstring == NULL) {
+ ssh_buffer_free(pubkey_buffer);
+ bignum_free(tmpbn);
+ return -1;
+ }
+ /* TODO: fix the hardcoding */
+ tmpstring->size = htonl(len);
+#ifdef HAVE_LIBGCRYPT
+ bignum_bn2bin(tmpbn, len, tmpstring->string);
+#elif defined HAVE_LIBCRYPTO
+ bignum_bn2bin(tmpbn, tmpstring->string);
+#endif
+ bignum_free(tmpbn);
+ if (buffer_add_ssh_string(pubkey_buffer, tmpstring) < 0) {
+ ssh_buffer_free(pubkey_buffer);
+ ssh_string_free(tmpstring);
+ bignum_free(tmpbn);
+ return -1;
+ }
+ ssh_string_free(tmpstring);
+ }
+ } else {
+ /* ssh-dss or ssh-rsa */
+ pubkey_64 = tokens[2];
+ pubkey_buffer = base64_to_bin(pubkey_64);
+ }
+
+ if (pubkey_buffer == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Verifying that server is a known host: base64 error");
+ return -1;
+ }
+
+ if (ssh_buffer_get_len(pubkey_buffer) != ssh_string_len(pubkey)) {
+ ssh_buffer_free(pubkey_buffer);
+ return 0;
+ }
+
+ /* now test that they are identical */
+ if (memcmp(ssh_buffer_get_begin(pubkey_buffer), pubkey->string,
+ ssh_buffer_get_len(pubkey_buffer)) != 0) {
+ ssh_buffer_free(pubkey_buffer);
+ return 0;
+ }
+
+ ssh_buffer_free(pubkey_buffer);
+ return 1;
+}
+
+/**
+ * @brief Check if a hostname matches a openssh-style hashed known host.
+ *
+ * @param[in] host The host to check.
+ *
+ * @param[in] hashed The hashed value.
+ *
+ * @returns 1 if it matches, 0 otherwise.
+ */
+static int match_hashed_host(ssh_session session, const char *host,
+ const char *sourcehash) {
+ /* Openssh hash structure :
+ * |1|base64 encoded salt|base64 encoded hash
+ * hash is produced that way :
+ * hash := HMAC_SHA1(key=salt,data=host)
+ */
+ unsigned char buffer[256] = {0};
+ ssh_buffer salt;
+ ssh_buffer hash;
+ HMACCTX mac;
+ char *source;
+ char *b64hash;
+ int match;
+ unsigned int size;
+
+ enter_function();
+
+ if (strncmp(sourcehash, "|1|", 3) != 0) {
+ leave_function();
+ return 0;
+ }
+
+ source = strdup(sourcehash + 3);
+ if (source == NULL) {
+ leave_function();
+ return 0;
+ }
+
+ b64hash = strchr(source, '|');
+ if (b64hash == NULL) {
+ /* Invalid hash */
+ SAFE_FREE(source);
+ leave_function();
+ return 0;
+ }
+
+ *b64hash = '\0';
+ b64hash++;
+
+ salt = base64_to_bin(source);
+ if (salt == NULL) {
+ SAFE_FREE(source);
+ leave_function();
+ return 0;
+ }
+
+ hash = base64_to_bin(b64hash);
+ SAFE_FREE(source);
+ if (hash == NULL) {
+ ssh_buffer_free(salt);
+ leave_function();
+ return 0;
+ }
+
+ mac = hmac_init(ssh_buffer_get_begin(salt), ssh_buffer_get_len(salt), HMAC_SHA1);
+ if (mac == NULL) {
+ ssh_buffer_free(salt);
+ ssh_buffer_free(hash);
+ leave_function();
+ return 0;
+ }
+ size = sizeof(buffer);
+ hmac_update(mac, host, strlen(host));
+ hmac_final(mac, buffer, &size);
+
+ if (size == ssh_buffer_get_len(hash) &&
+ memcmp(buffer, ssh_buffer_get_begin(hash), size) == 0) {
+ match = 1;
+ } else {
+ match = 0;
+ }
+
+ ssh_buffer_free(salt);
+ ssh_buffer_free(hash);
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Matching a hashed host: %s match=%d", host, match);
+
+ leave_function();
+ return match;
+}
+
+/* How it's working :
+ * 1- we open the known host file and bitch if it doesn't exist
+ * 2- we need to examine each line of the file, until going on state SSH_SERVER_KNOWN_OK:
+ * - there's a match. if the key is good, state is SSH_SERVER_KNOWN_OK,
+ * else it's SSH_SERVER_KNOWN_CHANGED (or SSH_SERVER_FOUND_OTHER)
+ * - there's no match : no change
+ */
+
+/**
+ * @brief Check if the server is known.
+ *
+ * Checks the user's known host file for a previous connection to the
+ * current server.
+ *
+ * @param[in] session The SSH session to use.
+ *
+ * @returns SSH_SERVER_KNOWN_OK: The server is known and has not changed.\n
+ * SSH_SERVER_KNOWN_CHANGED: The server key has changed. Either you
+ * are under attack or the administrator
+ * changed the key. You HAVE to warn the
+ * user about a possible attack.\n
+ * SSH_SERVER_FOUND_OTHER: The server gave use a key of a type while
+ * we had an other type recorded. It is a
+ * possible attack.\n
+ * SSH_SERVER_NOT_KNOWN: The server is unknown. User should
+ * confirm the MD5 is correct.\n
+ * SSH_SERVER_FILE_NOT_FOUND: The known host file does not exist. The
+ * host is thus unknown. File will be
+ * created if host key is accepted.\n
+ * SSH_SERVER_ERROR: Some error happened.
+ *
+ * @see ssh_get_pubkey_hash()
+ *
+ * @bug There is no current way to remove or modify an entry into the known
+ * host table.
+ */
+int ssh_is_server_known(ssh_session session) {
+ FILE *file = NULL;
+ char **tokens;
+ char *host;
+ char *hostport;
+ const char *type;
+ int match;
+ int ret = SSH_SERVER_NOT_KNOWN;
+
+ enter_function();
+
+ if (session->knownhosts == NULL) {
+ if (ssh_options_apply(session) < 0) {
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Can't find a known_hosts file");
+ leave_function();
+ return SSH_SERVER_FILE_NOT_FOUND;
+ }
+ }
+
+ if (session->host == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Can't verify host in known hosts if the hostname isn't known");
+ leave_function();
+ return SSH_SERVER_ERROR;
+ }
+
+ if (session->current_crypto == NULL){
+ ssh_set_error(session, SSH_FATAL,
+ "ssh_is_host_known called without cryptographic context");
+ leave_function();
+ return SSH_SERVER_ERROR;
+ }
+ host = ssh_lowercase(session->host);
+ hostport = ssh_hostport(host,session->port);
+ if (host == NULL || hostport == NULL) {
+ ssh_set_error_oom(session);
+ SAFE_FREE(host);
+ SAFE_FREE(hostport);
+ leave_function();
+ return SSH_SERVER_ERROR;
+ }
+
+ do {
+ tokens = ssh_get_knownhost_line(session, &file,
+ session->knownhosts, &type);
+
+ /* End of file, return the current state */
+ if (tokens == NULL) {
+ break;
+ }
+ match = match_hashed_host(session, host, tokens[0]);
+ if (match == 0){
+ match = match_hostname(hostport, tokens[0], strlen(tokens[0]));
+ }
+ if (match == 0) {
+ match = match_hostname(host, tokens[0], strlen(tokens[0]));
+ }
+ if (match == 0) {
+ match = match_hashed_host(session, hostport, tokens[0]);
+ }
+ if (match) {
+ /* We got a match. Now check the key type */
+ if (strcmp(session->current_crypto->server_pubkey_type, type) != 0) {
+ /* Different type. We don't override the known_changed error which is
+ * more important */
+ if (ret != SSH_SERVER_KNOWN_CHANGED)
+ ret = SSH_SERVER_FOUND_OTHER;
+ tokens_free(tokens);
+ continue;
+ }
+ /* so we know the key type is good. We may get a good key or a bad key. */
+ match = check_public_key(session, tokens);
+ tokens_free(tokens);
+
+ if (match < 0) {
+ ret = SSH_SERVER_ERROR;
+ break;
+ } else if (match == 1) {
+ ret = SSH_SERVER_KNOWN_OK;
+ break;
+ } else if(match == 0) {
+ /* We override the status with the wrong key state */
+ ret = SSH_SERVER_KNOWN_CHANGED;
+ }
+ } else {
+ tokens_free(tokens);
+ }
+ } while (1);
+
+ if ( (ret == SSH_SERVER_NOT_KNOWN) && (session->StrictHostKeyChecking == 0) ) {
+ ssh_write_knownhost(session);
+ ret = SSH_SERVER_KNOWN_OK;
+ }
+
+ SAFE_FREE(host);
+ SAFE_FREE(hostport);
+ if (file != NULL) {
+ fclose(file);
+ }
+
+ /* Return the current state at end of file */
+ leave_function();
+ return ret;
+}
+
+/**
+ * @brief Write the current server as known in the known hosts file.
+ *
+ * This will create the known hosts file if it does not exist. You generaly use
+ * it when ssh_is_server_known() answered SSH_SERVER_NOT_KNOWN.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @return SSH_OK on success, SSH_ERROR on error.
+ */
+int ssh_write_knownhost(ssh_session session) {
+ ssh_string pubkey;
+ unsigned char *pubkey_64;
+ char buffer[4096] = {0};
+ FILE *file;
+ char *dir;
+ char *host;
+ char *hostport;
+ size_t len = 0;
+
+ if (session->host == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Can't write host in known hosts if the hostname isn't known");
+ return SSH_ERROR;
+ }
+
+ host = ssh_lowercase(session->host);
+ /* If using a nonstandard port, save the host in the [host]:port format */
+ if(session->port != 22){
+ hostport = ssh_hostport(host,session->port);
+ SAFE_FREE(host);
+ host=hostport;
+ hostport=NULL;
+ }
+
+ if (session->knownhosts == NULL) {
+ if (ssh_options_apply(session) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Can't find a known_hosts file");
+ return SSH_ERROR;
+ }
+ }
+
+ if(session->current_crypto==NULL) {
+ ssh_set_error(session, SSH_FATAL, "No current crypto context");
+ return SSH_ERROR;
+ }
+
+ pubkey = session->current_crypto->server_pubkey;
+ if(pubkey == NULL){
+ ssh_set_error(session, SSH_FATAL, "No public key present");
+ return SSH_ERROR;
+ }
+
+ /* Check if ~/.ssh exists and create it if not */
+ dir = ssh_dirname(session->knownhosts);
+ if (dir == NULL) {
+ ssh_set_error(session, SSH_FATAL, "%s", strerror(errno));
+ return -1;
+ }
+ if (! ssh_file_readaccess_ok(dir)) {
+ if (ssh_mkdir(dir, 0700) < 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Cannot create %s directory.", dir);
+ SAFE_FREE(dir);
+ return -1;
+ }
+ }
+ SAFE_FREE(dir);
+
+ file = fopen(session->knownhosts, "a");
+ if (file == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Couldn't open known_hosts file %s for appending: %s",
+ session->knownhosts, strerror(errno));
+ SAFE_FREE(host);
+ return -1;
+ }
+
+ if (strcmp(session->current_crypto->server_pubkey_type, "ssh-rsa1") == 0) {
+ /* openssh uses a different format for ssh-rsa1 keys.
+ Be compatible --kv */
+ ssh_public_key key;
+ char *e_string = NULL;
+ char *n_string = NULL;
+ bignum e = NULL;
+ bignum n = NULL;
+ int rsa_size;
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_t sexp;
+#endif
+
+ key = publickey_from_string(session, pubkey);
+ if (key == NULL) {
+ fclose(file);
+ SAFE_FREE(host);
+ return -1;
+ }
+
+#ifdef HAVE_LIBGCRYPT
+ sexp = gcry_sexp_find_token(key->rsa_pub, "e", 0);
+ if (sexp == NULL) {
+ publickey_free(key);
+ fclose(file);
+ SAFE_FREE(host);
+ return -1;
+ }
+ e = gcry_sexp_nth_mpi(sexp, 1, GCRYMPI_FMT_USG);
+ gcry_sexp_release(sexp);
+ if (e == NULL) {
+ publickey_free(key);
+ fclose(file);
+ SAFE_FREE(host);
+ return -1;
+ }
+
+ sexp = gcry_sexp_find_token(key->rsa_pub, "n", 0);
+ if (sexp == NULL) {
+ publickey_free(key);
+ bignum_free(e);
+ fclose(file);
+ SAFE_FREE(host);
+ return -1;
+ }
+ n = gcry_sexp_nth_mpi(sexp, 1, GCRYMPI_FMT_USG);
+ gcry_sexp_release(sexp);
+ if (n == NULL) {
+ publickey_free(key);
+ bignum_free(e);
+ fclose(file);
+ SAFE_FREE(host);
+ return -1;
+ }
+
+ rsa_size = (gcry_pk_get_nbits(key->rsa_pub) + 7) / 8;
+#elif defined HAVE_LIBCRYPTO
+ e = key->rsa_pub->e;
+ n = key->rsa_pub->n;
+ rsa_size = RSA_size(key->rsa_pub);
+#endif
+
+ e_string = bignum_bn2dec(e);
+ n_string = bignum_bn2dec(n);
+ if (e_string == NULL || n_string == NULL) {
+#ifdef HAVE_LIBGCRYPT
+ bignum_free(e);
+ bignum_free(n);
+ SAFE_FREE(e_string);
+ SAFE_FREE(n_string);
+#elif defined HAVE_LIBCRYPTO
+ OPENSSL_free(e_string);
+ OPENSSL_free(n_string);
+#endif
+ publickey_free(key);
+ fclose(file);
+ SAFE_FREE(host);
+ return -1;
+ }
+
+ snprintf(buffer, sizeof(buffer),
+ "%s %d %s %s\n",
+ host,
+ rsa_size << 3,
+ e_string,
+ n_string);
+
+#ifdef HAVE_LIBGCRYPT
+ bignum_free(e);
+ bignum_free(n);
+ SAFE_FREE(e_string);
+ SAFE_FREE(n_string);
+#elif defined HAVE_LIBCRYPTO
+ OPENSSL_free(e_string);
+ OPENSSL_free(n_string);
+#endif
+
+ publickey_free(key);
+ } else {
+ pubkey_64 = bin_to_base64(pubkey->string, ssh_string_len(pubkey));
+ if (pubkey_64 == NULL) {
+ fclose(file);
+ SAFE_FREE(host);
+ return -1;
+ }
+
+ snprintf(buffer, sizeof(buffer),
+ "%s %s %s\n",
+ host,
+ session->current_crypto->server_pubkey_type,
+ pubkey_64);
+
+ SAFE_FREE(pubkey_64);
+ }
+ SAFE_FREE(host);
+ len = strlen(buffer);
+ if (fwrite(buffer, len, 1, file) != 1 || ferror(file)) {
+ fclose(file);
+ return -1;
+ }
+
+ fclose(file);
+ return 0;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/keys.c b/src/keys.c
new file mode 100644
index 0000000..f0ebc15
--- /dev/null
+++ b/src/keys.c
@@ -0,0 +1,1497 @@
+/*
+ * keys.c - decoding a public key or signature and verifying them
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2005 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#ifdef HAVE_LIBCRYPTO
+#include <openssl/dsa.h>
+#include <openssl/rsa.h>
+#endif
+#include "libssh/priv.h"
+#include "libssh/ssh2.h"
+#include "libssh/server.h"
+#include "libssh/buffer.h"
+#include "libssh/agent.h"
+#include "libssh/session.h"
+#include "libssh/keys.h"
+#include "libssh/dh.h"
+#include "libssh/messages.h"
+#include "libssh/string.h"
+
+/**
+ * @addtogroup libssh_auth
+ *
+ * @{
+ */
+
+/* Public key decoding functions */
+const char *ssh_type_to_char(int type) {
+ switch (type) {
+ case SSH_KEYTYPE_DSS:
+ return "ssh-dss";
+ case SSH_KEYTYPE_RSA:
+ return "ssh-rsa";
+ case SSH_KEYTYPE_RSA1:
+ return "ssh-rsa1";
+ default:
+ return NULL;
+ }
+}
+
+int ssh_type_from_name(const char *name) {
+ if (strcmp(name, "rsa1") == 0) {
+ return SSH_KEYTYPE_RSA1;
+ } else if (strcmp(name, "rsa") == 0) {
+ return SSH_KEYTYPE_RSA;
+ } else if (strcmp(name, "dsa") == 0) {
+ return SSH_KEYTYPE_DSS;
+ } else if (strcmp(name, "ssh-rsa1") == 0) {
+ return SSH_KEYTYPE_RSA1;
+ } else if (strcmp(name, "ssh-rsa") == 0) {
+ return SSH_KEYTYPE_RSA;
+ } else if (strcmp(name, "ssh-dss") == 0) {
+ return SSH_KEYTYPE_DSS;
+ }
+
+ return -1;
+}
+
+ssh_public_key publickey_make_dss(ssh_session session, ssh_buffer buffer) {
+ ssh_string p = NULL;
+ ssh_string q = NULL;
+ ssh_string g = NULL;
+ ssh_string pubkey = NULL;
+ ssh_public_key key = NULL;
+
+ key = malloc(sizeof(struct ssh_public_key_struct));
+ if (key == NULL) {
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+
+ key->type = SSH_KEYTYPE_DSS;
+ key->type_c = ssh_type_to_char(key->type);
+
+ p = buffer_get_ssh_string(buffer);
+ q = buffer_get_ssh_string(buffer);
+ g = buffer_get_ssh_string(buffer);
+ pubkey = buffer_get_ssh_string(buffer);
+
+ ssh_buffer_free(buffer); /* we don't need it anymore */
+
+ if (p == NULL || q == NULL || g == NULL || pubkey == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Invalid DSA public key");
+ goto error;
+ }
+
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_build(&key->dsa_pub, NULL,
+ "(public-key(dsa(p %b)(q %b)(g %b)(y %b)))",
+ ssh_string_len(p), ssh_string_data(p),
+ ssh_string_len(q), ssh_string_data(q),
+ ssh_string_len(g), ssh_string_data(g),
+ ssh_string_len(pubkey), ssh_string_data(pubkey));
+ if (key->dsa_pub == NULL) {
+ goto error;
+ }
+#elif defined HAVE_LIBCRYPTO
+
+ key->dsa_pub = DSA_new();
+ if (key->dsa_pub == NULL) {
+ goto error;
+ }
+ key->dsa_pub->p = make_string_bn(p);
+ key->dsa_pub->q = make_string_bn(q);
+ key->dsa_pub->g = make_string_bn(g);
+ key->dsa_pub->pub_key = make_string_bn(pubkey);
+ if (key->dsa_pub->p == NULL ||
+ key->dsa_pub->q == NULL ||
+ key->dsa_pub->g == NULL ||
+ key->dsa_pub->pub_key == NULL) {
+ goto error;
+ }
+#endif /* HAVE_LIBCRYPTO */
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("p", ssh_string_data(p), ssh_string_len(p));
+ ssh_print_hexa("q", ssh_string_data(q), ssh_string_len(q));
+ ssh_print_hexa("g", ssh_string_data(g), ssh_string_len(g));
+#endif
+
+ ssh_string_burn(p);
+ ssh_string_free(p);
+ ssh_string_burn(q);
+ ssh_string_free(q);
+ ssh_string_burn(g);
+ ssh_string_free(g);
+ ssh_string_burn(pubkey);
+ ssh_string_free(pubkey);
+
+ return key;
+error:
+ ssh_string_burn(p);
+ ssh_string_free(p);
+ ssh_string_burn(q);
+ ssh_string_free(q);
+ ssh_string_burn(g);
+ ssh_string_free(g);
+ ssh_string_burn(pubkey);
+ ssh_string_free(pubkey);
+ publickey_free(key);
+
+ return NULL;
+}
+
+ssh_public_key publickey_make_rsa(ssh_session session, ssh_buffer buffer,
+ int type) {
+ ssh_string e = NULL;
+ ssh_string n = NULL;
+ ssh_public_key key = NULL;
+
+ key = malloc(sizeof(struct ssh_public_key_struct));
+ if (key == NULL) {
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+
+ key->type = type;
+ key->type_c = ssh_type_to_char(key->type);
+
+ e = buffer_get_ssh_string(buffer);
+ n = buffer_get_ssh_string(buffer);
+
+ ssh_buffer_free(buffer); /* we don't need it anymore */
+
+ if(e == NULL || n == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Invalid RSA public key");
+ goto error;
+ }
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_build(&key->rsa_pub, NULL,
+ "(public-key(rsa(n %b)(e %b)))",
+ ssh_string_len(n), ssh_string_data(n),
+ ssh_string_len(e),ssh_string_data(e));
+ if (key->rsa_pub == NULL) {
+ goto error;
+ }
+#elif HAVE_LIBCRYPTO
+ key->rsa_pub = RSA_new();
+ if (key->rsa_pub == NULL) {
+ goto error;
+ }
+
+ key->rsa_pub->e = make_string_bn(e);
+ key->rsa_pub->n = make_string_bn(n);
+ if (key->rsa_pub->e == NULL ||
+ key->rsa_pub->n == NULL) {
+ goto error;
+ }
+#endif
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("e", ssh_string_data(e), ssh_string_len(e));
+ ssh_print_hexa("n", ssh_string_data(n), ssh_string_len(n));
+#endif
+
+ ssh_string_burn(e);
+ ssh_string_free(e);
+ ssh_string_burn(n);
+ ssh_string_free(n);
+
+ return key;
+error:
+ ssh_string_burn(e);
+ ssh_string_free(e);
+ ssh_string_burn(n);
+ ssh_string_free(n);
+ publickey_free(key);
+
+ return NULL;
+}
+
+void publickey_free(ssh_public_key key) {
+ if (key == NULL) {
+ return;
+ }
+
+ switch(key->type) {
+ case SSH_KEYTYPE_DSS:
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(key->dsa_pub);
+#elif HAVE_LIBCRYPTO
+ DSA_free(key->dsa_pub);
+#endif
+ break;
+ case SSH_KEYTYPE_RSA:
+ case SSH_KEYTYPE_RSA1:
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(key->rsa_pub);
+#elif defined HAVE_LIBCRYPTO
+ RSA_free(key->rsa_pub);
+#endif
+ break;
+ default:
+ break;
+ }
+ SAFE_FREE(key);
+}
+
+ssh_public_key publickey_from_string(ssh_session session, ssh_string pubkey_s) {
+ ssh_buffer tmpbuf = NULL;
+ ssh_string type_s = NULL;
+ char *type_c = NULL;
+ int type;
+
+ tmpbuf = ssh_buffer_new();
+ if (tmpbuf == NULL) {
+ return NULL;
+ }
+
+ if (buffer_add_data(tmpbuf, ssh_string_data(pubkey_s), ssh_string_len(pubkey_s)) < 0) {
+ goto error;
+ }
+
+ type_s = buffer_get_ssh_string(tmpbuf);
+ if (type_s == NULL) {
+ ssh_set_error(session,SSH_FATAL,"Invalid public key format");
+ goto error;
+ }
+
+ type_c = ssh_string_to_char(type_s);
+ ssh_string_free(type_s);
+ if (type_c == NULL) {
+ goto error;
+ }
+
+ type = ssh_type_from_name(type_c);
+ SAFE_FREE(type_c);
+
+ switch (type) {
+ case SSH_KEYTYPE_DSS:
+ return publickey_make_dss(session, tmpbuf);
+ case SSH_KEYTYPE_RSA:
+ case SSH_KEYTYPE_RSA1:
+ return publickey_make_rsa(session, tmpbuf, type);
+ }
+
+ ssh_set_error(session, SSH_FATAL, "Unknown public key protocol %s",
+ ssh_type_to_char(type));
+
+error:
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+}
+
+/**
+ * @brief Make a public_key object out of a private_key object.
+ *
+ * @param[in] prv The private key to generate the public key.
+ *
+ * @returns The generated public key, NULL on error.
+ *
+ * @see publickey_to_string()
+ */
+ssh_public_key publickey_from_privatekey(ssh_private_key prv) {
+ ssh_public_key key = NULL;
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_t sexp;
+ const char *tmp = NULL;
+ size_t size;
+ ssh_string p = NULL;
+ ssh_string q = NULL;
+ ssh_string g = NULL;
+ ssh_string y = NULL;
+ ssh_string e = NULL;
+ ssh_string n = NULL;
+#endif /* HAVE_LIBGCRYPT */
+
+ key = malloc(sizeof(struct ssh_public_key_struct));
+ if (key == NULL) {
+ return NULL;
+ }
+
+ key->type = prv->type;
+ switch(key->type) {
+ case SSH_KEYTYPE_DSS:
+#ifdef HAVE_LIBGCRYPT
+ sexp = gcry_sexp_find_token(prv->dsa_priv, "p", 0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp, 1, &size);
+ p = ssh_string_new(size);
+ if (p == NULL) {
+ goto error;
+ }
+ ssh_string_fill(p,(char *) tmp, size);
+ gcry_sexp_release(sexp);
+
+ sexp = gcry_sexp_find_token(prv->dsa_priv,"q",0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp,1,&size);
+ q = ssh_string_new(size);
+ if (q == NULL) {
+ goto error;
+ }
+ ssh_string_fill(q,(char *) tmp,size);
+ gcry_sexp_release(sexp);
+
+ sexp = gcry_sexp_find_token(prv->dsa_priv, "g", 0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp,1,&size);
+ g = ssh_string_new(size);
+ if (g == NULL) {
+ goto error;
+ }
+ ssh_string_fill(g,(char *) tmp,size);
+ gcry_sexp_release(sexp);
+
+ sexp = gcry_sexp_find_token(prv->dsa_priv,"y",0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp,1,&size);
+ y = ssh_string_new(size);
+ if (y == NULL) {
+ goto error;
+ }
+ ssh_string_fill(y,(char *) tmp,size);
+ gcry_sexp_release(sexp);
+
+ gcry_sexp_build(&key->dsa_pub, NULL,
+ "(public-key(dsa(p %b)(q %b)(g %b)(y %b)))",
+ ssh_string_len(p), ssh_string_data(p),
+ ssh_string_len(q), ssh_string_data(q),
+ ssh_string_len(g), ssh_string_data(g),
+ ssh_string_len(y), ssh_string_data(y));
+
+ ssh_string_burn(p);
+ ssh_string_free(p);
+ ssh_string_burn(q);
+ ssh_string_free(q);
+ ssh_string_burn(g);
+ ssh_string_free(g);
+ ssh_string_burn(y);
+ ssh_string_free(y);
+#elif defined HAVE_LIBCRYPTO
+ key->dsa_pub = DSA_new();
+ if (key->dsa_pub == NULL) {
+ goto error;
+ }
+ key->dsa_pub->p = BN_dup(prv->dsa_priv->p);
+ key->dsa_pub->q = BN_dup(prv->dsa_priv->q);
+ key->dsa_pub->g = BN_dup(prv->dsa_priv->g);
+ key->dsa_pub->pub_key = BN_dup(prv->dsa_priv->pub_key);
+ if (key->dsa_pub->p == NULL ||
+ key->dsa_pub->q == NULL ||
+ key->dsa_pub->g == NULL ||
+ key->dsa_pub->pub_key == NULL) {
+ goto error;
+ }
+#endif /* HAVE_LIBCRYPTO */
+ break;
+ case SSH_KEYTYPE_RSA:
+ case SSH_KEYTYPE_RSA1:
+#ifdef HAVE_LIBGCRYPT
+ sexp = gcry_sexp_find_token(prv->rsa_priv, "n", 0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp, 1, &size);
+ n = ssh_string_new(size);
+ if (n == NULL) {
+ goto error;
+ }
+ ssh_string_fill(n, (char *) tmp, size);
+ gcry_sexp_release(sexp);
+
+ sexp = gcry_sexp_find_token(prv->rsa_priv, "e", 0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp, 1, &size);
+ e = ssh_string_new(size);
+ if (e == NULL) {
+ goto error;
+ }
+ ssh_string_fill(e, (char *) tmp, size);
+ gcry_sexp_release(sexp);
+
+ gcry_sexp_build(&key->rsa_pub, NULL,
+ "(public-key(rsa(n %b)(e %b)))",
+ ssh_string_len(n), ssh_string_data(n),
+ ssh_string_len(e), ssh_string_data(e));
+ if (key->rsa_pub == NULL) {
+ goto error;
+ }
+
+ ssh_string_burn(e);
+ ssh_string_free(e);
+ ssh_string_burn(n);
+ ssh_string_free(n);
+#elif defined HAVE_LIBCRYPTO
+ key->rsa_pub = RSA_new();
+ if (key->rsa_pub == NULL) {
+ goto error;
+ }
+ key->rsa_pub->e = BN_dup(prv->rsa_priv->e);
+ key->rsa_pub->n = BN_dup(prv->rsa_priv->n);
+ if (key->rsa_pub->e == NULL ||
+ key->rsa_pub->n == NULL) {
+ goto error;
+ }
+#endif
+ break;
+ }
+ key->type_c = ssh_type_to_char(prv->type);
+
+ return key;
+error:
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(sexp);
+ ssh_string_burn(p);
+ ssh_string_free(p);
+ ssh_string_burn(q);
+ ssh_string_free(q);
+ ssh_string_burn(g);
+ ssh_string_free(g);
+ ssh_string_burn(y);
+ ssh_string_free(y);
+
+ ssh_string_burn(e);
+ ssh_string_free(e);
+ ssh_string_burn(n);
+ ssh_string_free(n);
+#endif
+ publickey_free(key);
+
+ return NULL;
+}
+
+#ifdef HAVE_LIBGCRYPT
+static int dsa_public_to_string(gcry_sexp_t key, ssh_buffer buffer) {
+#elif defined HAVE_LIBCRYPTO
+static int dsa_public_to_string(DSA *key, ssh_buffer buffer) {
+#endif
+ ssh_string p = NULL;
+ ssh_string q = NULL;
+ ssh_string g = NULL;
+ ssh_string n = NULL;
+
+ int rc = -1;
+
+#ifdef HAVE_LIBGCRYPT
+ const char *tmp = NULL;
+ size_t size;
+ gcry_sexp_t sexp;
+
+ sexp = gcry_sexp_find_token(key, "p", 0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp, 1, &size);
+ p = ssh_string_new(size);
+ if (p == NULL) {
+ goto error;
+ }
+ ssh_string_fill(p, (char *) tmp, size);
+ gcry_sexp_release(sexp);
+
+ sexp = gcry_sexp_find_token(key, "q", 0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp, 1, &size);
+ q = ssh_string_new(size);
+ if (q == NULL) {
+ goto error;
+ }
+ ssh_string_fill(q, (char *) tmp, size);
+ gcry_sexp_release(sexp);
+
+ sexp = gcry_sexp_find_token(key, "g", 0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp, 1, &size);
+ g = ssh_string_new(size);
+ if (g == NULL) {
+ goto error;
+ }
+ ssh_string_fill(g, (char *) tmp, size);
+ gcry_sexp_release(sexp);
+
+ sexp = gcry_sexp_find_token(key, "y", 0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp, 1, &size);
+ n = ssh_string_new(size);
+ if (n == NULL) {
+ goto error;
+ }
+ ssh_string_fill(n, (char *) tmp, size);
+
+#elif defined HAVE_LIBCRYPTO
+ p = make_bignum_string(key->p);
+ q = make_bignum_string(key->q);
+ g = make_bignum_string(key->g);
+ n = make_bignum_string(key->pub_key);
+ if (p == NULL || q == NULL || g == NULL || n == NULL) {
+ goto error;
+ }
+#endif /* HAVE_LIBCRYPTO */
+ if (buffer_add_ssh_string(buffer, p) < 0) {
+ goto error;
+ }
+ if (buffer_add_ssh_string(buffer, q) < 0) {
+ goto error;
+ }
+ if (buffer_add_ssh_string(buffer, g) < 0) {
+ goto error;
+ }
+ if (buffer_add_ssh_string(buffer, n) < 0) {
+ goto error;
+ }
+
+ rc = 0;
+error:
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(sexp);
+#endif
+
+ ssh_string_burn(p);
+ ssh_string_free(p);
+ ssh_string_burn(q);
+ ssh_string_free(q);
+ ssh_string_burn(g);
+ ssh_string_free(g);
+ ssh_string_burn(n);
+ ssh_string_free(n);
+
+ return rc;
+}
+
+#ifdef HAVE_LIBGCRYPT
+static int rsa_public_to_string(gcry_sexp_t key, ssh_buffer buffer) {
+#elif defined HAVE_LIBCRYPTO
+static int rsa_public_to_string(RSA *key, ssh_buffer buffer) {
+#endif
+
+ ssh_string e = NULL;
+ ssh_string n = NULL;
+
+ int rc = -1;
+
+#ifdef HAVE_LIBGCRYPT
+ const char *tmp;
+ size_t size;
+ gcry_sexp_t sexp;
+
+ sexp = gcry_sexp_find_token(key, "n", 0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp, 1, &size);
+ n = ssh_string_new(size);
+ if (n == NULL) {
+ goto error;
+ }
+ ssh_string_fill(n, (char *) tmp, size);
+ gcry_sexp_release(sexp);
+
+ sexp = gcry_sexp_find_token(key, "e", 0);
+ if (sexp == NULL) {
+ goto error;
+ }
+ tmp = gcry_sexp_nth_data(sexp, 1, &size);
+ e = ssh_string_new(size);
+ if (e == NULL) {
+ goto error;
+ }
+ ssh_string_fill(e, (char *) tmp, size);
+
+#elif defined HAVE_LIBCRYPTO
+ e = make_bignum_string(key->e);
+ n = make_bignum_string(key->n);
+ if (e == NULL || n == NULL) {
+ goto error;
+ }
+#endif
+
+ if (buffer_add_ssh_string(buffer, e) < 0) {
+ goto error;
+ }
+ if (buffer_add_ssh_string(buffer, n) < 0) {
+ goto error;
+ }
+
+ rc = 0;
+error:
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(sexp);
+#endif
+
+ ssh_string_burn(e);
+ ssh_string_free(e);
+ ssh_string_burn(n);
+ ssh_string_free(n);
+
+ return rc;
+}
+
+/**
+ * @brief Convert a public_key object into a a SSH string.
+ *
+ * @param[in] key The public key to convert.
+ *
+ * @returns An allocated SSH String containing the public key, NULL
+ * on error.
+ *
+ * @see string_free()
+ */
+ssh_string publickey_to_string(ssh_public_key key) {
+ ssh_string type = NULL;
+ ssh_string ret = NULL;
+ ssh_buffer buf = NULL;
+
+ buf = ssh_buffer_new();
+ if (buf == NULL) {
+ return NULL;
+ }
+
+ type = ssh_string_from_char(key->type_c);
+ if (type == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(buf, type) < 0) {
+ goto error;
+ }
+
+ switch (key->type) {
+ case SSH_KEYTYPE_DSS:
+ if (dsa_public_to_string(key->dsa_pub, buf) < 0) {
+ goto error;
+ }
+ break;
+ case SSH_KEYTYPE_RSA:
+ case SSH_KEYTYPE_RSA1:
+ if (rsa_public_to_string(key->rsa_pub, buf) < 0) {
+ goto error;
+ }
+ break;
+ }
+
+ ret = ssh_string_new(ssh_buffer_get_len(buf));
+ if (ret == NULL) {
+ goto error;
+ }
+
+ ssh_string_fill(ret, ssh_buffer_get_begin(buf), ssh_buffer_get_len(buf));
+error:
+ ssh_buffer_free(buf);
+ ssh_string_free(type);
+
+ return ret;
+}
+
+/* Signature decoding functions */
+static ssh_string signature_to_string(SIGNATURE *sign) {
+ unsigned char buffer[40] = {0};
+ ssh_buffer tmpbuf = NULL;
+ ssh_string str = NULL;
+ ssh_string tmp = NULL;
+ ssh_string rs = NULL;
+ int rc = -1;
+#ifdef HAVE_LIBGCRYPT
+ const char *r = NULL;
+ const char *s = NULL;
+ gcry_sexp_t sexp;
+ size_t size = 0;
+#elif defined HAVE_LIBCRYPTO
+ ssh_string r = NULL;
+ ssh_string s = NULL;
+#endif
+
+ tmpbuf = ssh_buffer_new();
+ if (tmpbuf == NULL) {
+ return NULL;
+ }
+
+ tmp = ssh_string_from_char(ssh_type_to_char(sign->type));
+ if (tmp == NULL) {
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+ if (buffer_add_ssh_string(tmpbuf, tmp) < 0) {
+ ssh_buffer_free(tmpbuf);
+ ssh_string_free(tmp);
+ return NULL;
+ }
+ ssh_string_free(tmp);
+
+ switch(sign->type) {
+ case SSH_KEYTYPE_DSS:
+#ifdef HAVE_LIBGCRYPT
+ sexp = gcry_sexp_find_token(sign->dsa_sign, "r", 0);
+ if (sexp == NULL) {
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+ r = gcry_sexp_nth_data(sexp, 1, &size);
+ if (*r == 0) { /* libgcrypt put 0 when first bit is set */
+ size--;
+ r++;
+ }
+ memcpy(buffer, r + size - 20, 20);
+ gcry_sexp_release(sexp);
+
+ sexp = gcry_sexp_find_token(sign->dsa_sign, "s", 0);
+ if (sexp == NULL) {
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+ s = gcry_sexp_nth_data(sexp,1,&size);
+ if (*s == 0) {
+ size--;
+ s++;
+ }
+ memcpy(buffer+ 20, s + size - 20, 20);
+ gcry_sexp_release(sexp);
+#elif defined HAVE_LIBCRYPTO
+ r = make_bignum_string(sign->dsa_sign->r);
+ if (r == NULL) {
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+ s = make_bignum_string(sign->dsa_sign->s);
+ if (s == NULL) {
+ ssh_buffer_free(tmpbuf);
+ ssh_string_free(r);
+ return NULL;
+ }
+
+ memcpy(buffer, (char *)ssh_string_data(r) + ssh_string_len(r) - 20, 20);
+ memcpy(buffer + 20, (char *)ssh_string_data(s) + ssh_string_len(s) - 20, 20);
+
+ ssh_string_free(r);
+ ssh_string_free(s);
+#endif /* HAVE_LIBCRYPTO */
+ rs = ssh_string_new(40);
+ if (rs == NULL) {
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+
+ ssh_string_fill(rs, buffer, 40);
+ rc = buffer_add_ssh_string(tmpbuf, rs);
+ ssh_string_free(rs);
+ if (rc < 0) {
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+
+ break;
+ case SSH_KEYTYPE_RSA:
+ case SSH_KEYTYPE_RSA1:
+#ifdef HAVE_LIBGCRYPT
+ sexp = gcry_sexp_find_token(sign->rsa_sign, "s", 0);
+ if (sexp == NULL) {
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+ s = gcry_sexp_nth_data(sexp,1,&size);
+ if (*s == 0) {
+ size--;
+ s++;
+ }
+ rs = ssh_string_new(size);
+ if (rs == NULL) {
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+
+ ssh_string_fill(rs, (char *) s, size);
+ rc = buffer_add_ssh_string(tmpbuf, rs);
+ gcry_sexp_release(sexp);
+ ssh_string_free(rs);
+ if (rc < 0) {
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+#elif defined HAVE_LIBCRYPTO
+ if (buffer_add_ssh_string(tmpbuf,sign->rsa_sign) < 0) {
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+#endif
+ break;
+ }
+
+ str = ssh_string_new(ssh_buffer_get_len(tmpbuf));
+ if (str == NULL) {
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+ ssh_string_fill(str, ssh_buffer_get_begin(tmpbuf), ssh_buffer_get_len(tmpbuf));
+ ssh_buffer_free(tmpbuf);
+
+ return str;
+}
+
+/* TODO : split this function in two so it becomes smaller */
+SIGNATURE *signature_from_string(ssh_session session, ssh_string signature,
+ ssh_public_key pubkey, int needed_type) {
+ SIGNATURE *sign = NULL;
+ ssh_buffer tmpbuf = NULL;
+ ssh_string rs = NULL;
+ ssh_string type_s = NULL;
+ ssh_string e = NULL;
+ char *type_c = NULL;
+ int type;
+ int len;
+ int rsalen;
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_t sig;
+#elif defined HAVE_LIBCRYPTO
+ DSA_SIG *sig = NULL;
+ ssh_string r = NULL;
+ ssh_string s = NULL;
+#endif
+
+ sign = malloc(sizeof(SIGNATURE));
+ if (sign == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Not enough space");
+ return NULL;
+ }
+
+ tmpbuf = ssh_buffer_new();
+ if (tmpbuf == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Not enough space");
+ signature_free(sign);
+ return NULL;
+ }
+
+ if (buffer_add_data(tmpbuf, ssh_string_data(signature), ssh_string_len(signature)) < 0) {
+ signature_free(sign);
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+
+ type_s = buffer_get_ssh_string(tmpbuf);
+ if (type_s == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Invalid signature packet");
+ signature_free(sign);
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+
+ type_c = ssh_string_to_char(type_s);
+ ssh_string_free(type_s);
+ if (type_c == NULL) {
+ signature_free(sign);
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+ type = ssh_type_from_name(type_c);
+ SAFE_FREE(type_c);
+
+ if (needed_type != type) {
+ ssh_set_error(session, SSH_FATAL, "Invalid signature type: %s",
+ ssh_type_to_char(type));
+ signature_free(sign);
+ ssh_buffer_free(tmpbuf);
+ return NULL;
+ }
+
+ switch(needed_type) {
+ case SSH_KEYTYPE_DSS:
+ rs = buffer_get_ssh_string(tmpbuf);
+ ssh_buffer_free(tmpbuf);
+
+ /* 40 is the dual signature blob len. */
+ if (rs == NULL || ssh_string_len(rs) != 40) {
+ ssh_string_free(rs);
+ signature_free(sign);
+ return NULL;
+ }
+
+ /* we make use of strings (because we have all-made functions to convert
+ * them to bignums (ou pas ;) */
+#ifdef HAVE_LIBGCRYPT
+ if (gcry_sexp_build(&sig, NULL, "(sig-val(dsa(r %b)(s %b)))",
+ 20 ,ssh_string_data(rs), 20,(unsigned char *)ssh_string_data(rs) + 20)) {
+ ssh_string_free(rs);
+ signature_free(sign);
+ return NULL;
+ }
+#elif defined HAVE_LIBCRYPTO
+ r = ssh_string_new(20);
+ s = ssh_string_new(20);
+ if (r == NULL || s == NULL) {
+ ssh_string_free(r);
+ ssh_string_free(s);
+ ssh_string_free(rs);
+ signature_free(sign);
+ return NULL;
+ }
+
+ ssh_string_fill(r, ssh_string_data(rs), 20);
+ ssh_string_fill(s, (char *)ssh_string_data(rs) + 20, 20);
+
+ sig = DSA_SIG_new();
+ if (sig == NULL) {
+ ssh_string_free(r);
+ ssh_string_free(s);
+ ssh_string_free(rs);
+ signature_free(sign);
+ return NULL;
+ }
+ sig->r = make_string_bn(r); /* is that really portable ? Openssh's hack isn't better */
+ sig->s = make_string_bn(s);
+ ssh_string_free(r);
+ ssh_string_free(s);
+
+ if (sig->r == NULL || sig->s == NULL) {
+ ssh_string_free(rs);
+ DSA_SIG_free(sig);
+ signature_free(sign);
+ return NULL;
+ }
+#endif
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("r", ssh_string_data(rs), 20);
+ ssh_print_hexa("s", (const unsigned char *)ssh_string_data(rs) + 20, 20);
+#endif
+ ssh_string_free(rs);
+
+ sign->type = SSH_KEYTYPE_DSS;
+ sign->dsa_sign = sig;
+
+ return sign;
+ case SSH_KEYTYPE_RSA:
+ e = buffer_get_ssh_string(tmpbuf);
+ ssh_buffer_free(tmpbuf);
+ if (e == NULL) {
+ signature_free(sign);
+ return NULL;
+ }
+ len = ssh_string_len(e);
+#ifdef HAVE_LIBGCRYPT
+ rsalen = (gcry_pk_get_nbits(pubkey->rsa_pub) + 7) / 8;
+#elif defined HAVE_LIBCRYPTO
+ rsalen = RSA_size(pubkey->rsa_pub);
+#endif
+ if (len > rsalen) {
+ ssh_string_free(e);
+ signature_free(sign);
+ ssh_set_error(session, SSH_FATAL, "Signature too big! %d instead of %d",
+ len, rsalen);
+ return NULL;
+ }
+
+ if (len < rsalen) {
+ ssh_log(session, SSH_LOG_RARE, "RSA signature len %d < %d",
+ len, rsalen);
+ }
+ sign->type = SSH_KEYTYPE_RSA;
+#ifdef HAVE_LIBGCRYPT
+ if (gcry_sexp_build(&sig, NULL, "(sig-val(rsa(s %b)))",
+ ssh_string_len(e), ssh_string_data(e))) {
+ signature_free(sign);
+ ssh_string_free(e);
+ return NULL;
+ }
+
+ sign->rsa_sign = sig;
+#elif defined HAVE_LIBCRYPTO
+ sign->rsa_sign = e;
+#endif
+
+#ifdef DEBUG_CRYPTO
+ ssh_log(session, SSH_LOG_FUNCTIONS, "len e: %d", len);
+ ssh_print_hexa("RSA signature", ssh_string_data(e), len);
+#endif
+
+#ifdef HAVE_LIBGCRYPT
+ ssh_string_free(e);
+#endif
+
+ return sign;
+ default:
+ return NULL;
+ }
+
+ return NULL;
+}
+
+void signature_free(SIGNATURE *sign) {
+ if (sign == NULL) {
+ return;
+ }
+
+ switch(sign->type) {
+ case SSH_KEYTYPE_DSS:
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(sign->dsa_sign);
+#elif defined HAVE_LIBCRYPTO
+ DSA_SIG_free(sign->dsa_sign);
+#endif
+ break;
+ case SSH_KEYTYPE_RSA:
+ case SSH_KEYTYPE_RSA1:
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(sign->rsa_sign);
+#elif defined HAVE_LIBCRYPTO
+ SAFE_FREE(sign->rsa_sign);
+#endif
+ break;
+ default:
+ /* FIXME Passing NULL segfaults */
+#if 0
+ ssh_log(NULL, SSH_LOG_RARE, "Freeing a signature with no type!\n"); */
+#endif
+ break;
+ }
+ SAFE_FREE(sign);
+}
+
+#ifdef HAVE_LIBCRYPTO
+/*
+ * Maybe the missing function from libcrypto
+ *
+ * I think now, maybe it's a bad idea to name it has it should have be
+ * named in libcrypto
+ */
+static ssh_string RSA_do_sign(const unsigned char *payload, int len, RSA *privkey) {
+ ssh_string sign = NULL;
+ unsigned char *buffer = NULL;
+ unsigned int size;
+
+ buffer = malloc(RSA_size(privkey));
+ if (buffer == NULL) {
+ return NULL;
+ }
+
+ if (RSA_sign(NID_sha1, payload, len, buffer, &size, privkey) == 0) {
+ SAFE_FREE(buffer);
+ return NULL;
+ }
+
+ sign = ssh_string_new(size);
+ if (sign == NULL) {
+ SAFE_FREE(buffer);
+ return NULL;
+ }
+
+ ssh_string_fill(sign, buffer, size);
+ SAFE_FREE(buffer);
+
+ return sign;
+}
+#endif
+
+#ifndef _WIN32
+ssh_string ssh_do_sign_with_agent(ssh_session session,
+ struct ssh_buffer_struct *buf, struct ssh_public_key_struct *publickey) {
+ struct ssh_buffer_struct *sigbuf = NULL;
+ struct ssh_string_struct *signature = NULL;
+ struct ssh_string_struct *session_id = NULL;
+ struct ssh_crypto_struct *crypto = NULL;
+
+ if (session->current_crypto) {
+ crypto = session->current_crypto;
+ } else {
+ crypto = session->next_crypto;
+ }
+
+ /* prepend session identifier */
+ session_id = ssh_string_new(SHA_DIGEST_LEN);
+ if (session_id == NULL) {
+ return NULL;
+ }
+ ssh_string_fill(session_id, crypto->session_id, SHA_DIGEST_LEN);
+
+ sigbuf = ssh_buffer_new();
+ if (sigbuf == NULL) {
+ ssh_string_free(session_id);
+ return NULL;
+ }
+
+ if (buffer_add_ssh_string(sigbuf, session_id) < 0) {
+ ssh_buffer_free(sigbuf);
+ ssh_string_free(session_id);
+ return NULL;
+ }
+ ssh_string_free(session_id);
+
+ /* append out buffer */
+ if (buffer_add_buffer(sigbuf, buf) < 0) {
+ ssh_buffer_free(sigbuf);
+ return NULL;
+ }
+
+ /* create signature */
+ signature = agent_sign_data(session, sigbuf, publickey);
+
+ ssh_buffer_free(sigbuf);
+
+ return signature;
+}
+#endif /* _WIN32 */
+
+/*
+ * This function concats in a buffer the values needed to do a signature
+ * verification. */
+ssh_buffer ssh_userauth_build_digest(ssh_session session, ssh_message msg, char *service) {
+/*
+ The value of 'signature' is a signature by the corresponding private
+ key over the following data, in the following order:
+
+ string session identifier
+ byte SSH_MSG_USERAUTH_REQUEST
+ string user name
+ string service name
+ string "publickey"
+ boolean TRUE
+ string public key algorithm name
+ string public key to be used for authentication
+*/
+ struct ssh_crypto_struct *crypto = session->current_crypto ? session->current_crypto :
+ session->next_crypto;
+ ssh_buffer buffer = NULL;
+ ssh_string session_id = NULL;
+ uint8_t type = SSH2_MSG_USERAUTH_REQUEST;
+ ssh_string username = ssh_string_from_char(msg->auth_request.username);
+ ssh_string servicename = ssh_string_from_char(service);
+ ssh_string method = ssh_string_from_char("publickey");
+ uint8_t has_sign = 1;
+ ssh_string algo = ssh_string_from_char(msg->auth_request.public_key->type_c);
+ ssh_string publickey = publickey_to_string(msg->auth_request.public_key);
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ goto error;
+ }
+ session_id = ssh_string_new(SHA_DIGEST_LEN);
+ if (session_id == NULL) {
+ ssh_buffer_free(buffer);
+ buffer = NULL;
+ goto error;
+ }
+ ssh_string_fill(session_id, crypto->session_id, SHA_DIGEST_LEN);
+
+ if(buffer_add_ssh_string(buffer, session_id) < 0 ||
+ buffer_add_u8(buffer, type) < 0 ||
+ buffer_add_ssh_string(buffer, username) < 0 ||
+ buffer_add_ssh_string(buffer, servicename) < 0 ||
+ buffer_add_ssh_string(buffer, method) < 0 ||
+ buffer_add_u8(buffer, has_sign) < 0 ||
+ buffer_add_ssh_string(buffer, algo) < 0 ||
+ buffer_add_ssh_string(buffer, publickey) < 0) {
+ ssh_buffer_free(buffer);
+ buffer = NULL;
+ goto error;
+ }
+
+error:
+ if(session_id) ssh_string_free(session_id);
+ if(username) ssh_string_free(username);
+ if(servicename) ssh_string_free(servicename);
+ if(method) ssh_string_free(method);
+ if(algo) ssh_string_free(algo);
+ if(publickey) ssh_string_free(publickey);
+ return buffer;
+}
+
+/*
+ * This function signs the session id (known as H) as a string then
+ * the content of sigbuf */
+ssh_string ssh_do_sign(ssh_session session, ssh_buffer sigbuf,
+ ssh_private_key privatekey) {
+ struct ssh_crypto_struct *crypto = session->current_crypto ? session->current_crypto :
+ session->next_crypto;
+ unsigned char hash[SHA_DIGEST_LEN + 1] = {0};
+ ssh_string session_str = NULL;
+ ssh_string signature = NULL;
+ SIGNATURE *sign = NULL;
+ SHACTX ctx = NULL;
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_t gcryhash;
+#endif
+
+ session_str = ssh_string_new(SHA_DIGEST_LEN);
+ if (session_str == NULL) {
+ return NULL;
+ }
+ ssh_string_fill(session_str, crypto->session_id, SHA_DIGEST_LEN);
+
+ ctx = sha1_init();
+ if (ctx == NULL) {
+ ssh_string_free(session_str);
+ return NULL;
+ }
+
+ sha1_update(ctx, session_str, ssh_string_len(session_str) + 4);
+ ssh_string_free(session_str);
+ sha1_update(ctx, ssh_buffer_get_begin(sigbuf), ssh_buffer_get_len(sigbuf));
+ sha1_final(hash + 1,ctx);
+ hash[0] = 0;
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("Hash being signed with dsa", hash + 1, SHA_DIGEST_LEN);
+#endif
+
+ sign = malloc(sizeof(SIGNATURE));
+ if (sign == NULL) {
+ return NULL;
+ }
+
+ switch(privatekey->type) {
+ case SSH_KEYTYPE_DSS:
+#ifdef HAVE_LIBGCRYPT
+ if (gcry_sexp_build(&gcryhash, NULL, "%b", SHA_DIGEST_LEN + 1, hash) ||
+ gcry_pk_sign(&sign->dsa_sign, gcryhash, privatekey->dsa_priv)) {
+ ssh_set_error(session, SSH_FATAL, "Signing: libcrypt error");
+ gcry_sexp_release(gcryhash);
+ signature_free(sign);
+ return NULL;
+ }
+#elif defined HAVE_LIBCRYPTO
+ sign->dsa_sign = DSA_do_sign(hash + 1, SHA_DIGEST_LEN,
+ privatekey->dsa_priv);
+ if (sign->dsa_sign == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Signing: openssl error");
+ signature_free(sign);
+ return NULL;
+ }
+#ifdef DEBUG_CRYPTO
+ ssh_print_bignum("r", sign->dsa_sign->r);
+ ssh_print_bignum("s", sign->dsa_sign->s);
+#endif
+#endif /* HAVE_LIBCRYPTO */
+ sign->rsa_sign = NULL;
+ break;
+ case SSH_KEYTYPE_RSA:
+#ifdef HAVE_LIBGCRYPT
+ if (gcry_sexp_build(&gcryhash, NULL, "(data(flags pkcs1)(hash sha1 %b))",
+ SHA_DIGEST_LEN, hash + 1) ||
+ gcry_pk_sign(&sign->rsa_sign, gcryhash, privatekey->rsa_priv)) {
+ ssh_set_error(session, SSH_FATAL, "Signing: libcrypt error");
+ gcry_sexp_release(gcryhash);
+ signature_free(sign);
+ return NULL;
+ }
+#elif defined HAVE_LIBCRYPTO
+ sign->rsa_sign = RSA_do_sign(hash + 1, SHA_DIGEST_LEN,
+ privatekey->rsa_priv);
+ if (sign->rsa_sign == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Signing: openssl error");
+ signature_free(sign);
+ return NULL;
+ }
+#endif
+ sign->dsa_sign = NULL;
+ break;
+ default:
+ return NULL;
+ }
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(gcryhash);
+#endif
+
+ sign->type = privatekey->type;
+
+ signature = signature_to_string(sign);
+ signature_free(sign);
+
+ return signature;
+}
+
+ssh_string ssh_encrypt_rsa1(ssh_session session, ssh_string data, ssh_public_key key) {
+ ssh_string str = NULL;
+ size_t len = ssh_string_len(data);
+ size_t size = 0;
+#ifdef HAVE_LIBGCRYPT
+ const char *tmp = NULL;
+ gcry_sexp_t ret_sexp;
+ gcry_sexp_t data_sexp;
+
+ if (gcry_sexp_build(&data_sexp, NULL, "(data(flags pkcs1)(value %b))",
+ len, ssh_string_data(data))) {
+ ssh_set_error(session, SSH_FATAL, "RSA1 encrypt: libgcrypt error");
+ return NULL;
+ }
+ if (gcry_pk_encrypt(&ret_sexp, data_sexp, key->rsa_pub)) {
+ gcry_sexp_release(data_sexp);
+ ssh_set_error(session, SSH_FATAL, "RSA1 encrypt: libgcrypt error");
+ return NULL;
+ }
+
+ gcry_sexp_release(data_sexp);
+
+ data_sexp = gcry_sexp_find_token(ret_sexp, "a", 0);
+ if (data_sexp == NULL) {
+ ssh_set_error(session, SSH_FATAL, "RSA1 encrypt: libgcrypt error");
+ gcry_sexp_release(ret_sexp);
+ return NULL;
+ }
+ tmp = gcry_sexp_nth_data(data_sexp, 1, &size);
+ if (*tmp == 0) {
+ size--;
+ tmp++;
+ }
+
+ str = ssh_string_new(size);
+ if (str == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Not enough space");
+ gcry_sexp_release(data_sexp);
+ gcry_sexp_release(ret_sexp);
+ return NULL;
+ }
+ ssh_string_fill(str, tmp, size);
+
+ gcry_sexp_release(data_sexp);
+ gcry_sexp_release(ret_sexp);
+#elif defined HAVE_LIBCRYPTO
+ size = RSA_size(key->rsa_pub);
+
+ str = ssh_string_new(size);
+ if (str == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Not enough space");
+ return NULL;
+ }
+
+ if (RSA_public_encrypt(len, ssh_string_data(data), ssh_string_data(str), key->rsa_pub,
+ RSA_PKCS1_PADDING) < 0) {
+ ssh_string_free(str);
+ return NULL;
+ }
+#endif
+
+ return str;
+}
+
+
+/* this function signs the session id */
+ssh_string ssh_sign_session_id(ssh_session session, ssh_private_key privatekey) {
+ struct ssh_crypto_struct *crypto=session->current_crypto ? session->current_crypto :
+ session->next_crypto;
+ unsigned char hash[SHA_DIGEST_LEN + 1] = {0};
+ ssh_string signature = NULL;
+ SIGNATURE *sign = NULL;
+ SHACTX ctx = NULL;
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_t data_sexp;
+#endif
+
+ ctx = sha1_init();
+ if (ctx == NULL) {
+ return NULL;
+ }
+ sha1_update(ctx,crypto->session_id,SHA_DIGEST_LEN);
+ sha1_final(hash + 1,ctx);
+ hash[0] = 0;
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("Hash being signed with dsa",hash+1,SHA_DIGEST_LEN);
+#endif
+
+ sign = malloc(sizeof(SIGNATURE));
+ if (sign == NULL) {
+ return NULL;
+ }
+
+ switch(privatekey->type) {
+ case SSH_KEYTYPE_DSS:
+#ifdef HAVE_LIBGCRYPT
+ if (gcry_sexp_build(&data_sexp, NULL, "%b", SHA_DIGEST_LEN + 1, hash) ||
+ gcry_pk_sign(&sign->dsa_sign, data_sexp, privatekey->dsa_priv)) {
+ ssh_set_error(session, SSH_FATAL, "Signing: libgcrypt error");
+ gcry_sexp_release(data_sexp);
+ signature_free(sign);
+ return NULL;
+ }
+#elif defined HAVE_LIBCRYPTO
+ sign->dsa_sign = DSA_do_sign(hash + 1, SHA_DIGEST_LEN,
+ privatekey->dsa_priv);
+ if (sign->dsa_sign == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Signing: openssl error");
+ signature_free(sign);
+ return NULL;
+ }
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_bignum("r",sign->dsa_sign->r);
+ ssh_print_bignum("s",sign->dsa_sign->s);
+#endif
+
+#endif /* HAVE_LIBCRYPTO */
+ sign->rsa_sign = NULL;
+ break;
+ case SSH_KEYTYPE_RSA:
+#ifdef HAVE_LIBGCRYPT
+ if (gcry_sexp_build(&data_sexp, NULL, "(data(flags pkcs1)(hash sha1 %b))",
+ SHA_DIGEST_LEN, hash + 1) ||
+ gcry_pk_sign(&sign->rsa_sign, data_sexp, privatekey->rsa_priv)) {
+ ssh_set_error(session, SSH_FATAL, "Signing: libgcrypt error");
+ gcry_sexp_release(data_sexp);
+ signature_free(sign);
+ return NULL;
+ }
+#elif defined HAVE_LIBCRYPTO
+ sign->rsa_sign = RSA_do_sign(hash + 1, SHA_DIGEST_LEN,
+ privatekey->rsa_priv);
+ if (sign->rsa_sign == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Signing: openssl error");
+ signature_free(sign);
+ return NULL;
+ }
+#endif
+ sign->dsa_sign = NULL;
+ break;
+ default:
+ return NULL;
+ }
+
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(data_sexp);
+#endif
+
+ sign->type = privatekey->type;
+
+ signature = signature_to_string(sign);
+ signature_free(sign);
+
+ return signature;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/legacy.c b/src/legacy.c
new file mode 100644
index 0000000..ea97a31
--- /dev/null
+++ b/src/legacy.c
@@ -0,0 +1,237 @@
+/*
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2010 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/** functions in that file are wrappers to the newly named functions. All
+ * of them are depreciated, but these wrapper will avoid breaking backward
+ * compatibility
+ */
+
+#include <libssh/libssh.h>
+#include <libssh/server.h>
+#include <libssh/buffer.h>
+
+void buffer_free(ssh_buffer buffer){
+ ssh_buffer_free(buffer);
+}
+void *buffer_get(ssh_buffer buffer){
+ return ssh_buffer_get_begin(buffer);
+}
+uint32_t buffer_get_len(ssh_buffer buffer){
+ return ssh_buffer_get_len(buffer);
+}
+ssh_buffer buffer_new(void){
+ return ssh_buffer_new();
+}
+
+ssh_channel channel_accept_x11(ssh_channel channel, int timeout_ms){
+ return ssh_channel_accept_x11(channel, timeout_ms);
+}
+
+int channel_change_pty_size(ssh_channel channel,int cols,int rows){
+ return ssh_channel_change_pty_size(channel,cols,rows);
+}
+
+ssh_channel channel_forward_accept(ssh_session session, int timeout_ms){
+ return ssh_forward_accept(session,timeout_ms);
+}
+
+int channel_close(ssh_channel channel){
+ return ssh_channel_close(channel);
+}
+
+int channel_forward_cancel(ssh_session session, const char *address, int port){
+ return ssh_forward_cancel(session, address, port);
+}
+
+int channel_forward_listen(ssh_session session, const char *address,
+ int port, int *bound_port){
+ return ssh_forward_listen(session, address, port, bound_port);
+}
+
+void channel_free(ssh_channel channel){
+ ssh_channel_free(channel);
+}
+
+int channel_get_exit_status(ssh_channel channel){
+ return ssh_channel_get_exit_status(channel);
+}
+
+ssh_session channel_get_session(ssh_channel channel){
+ return ssh_channel_get_session(channel);
+}
+
+int channel_is_closed(ssh_channel channel){
+ return ssh_channel_is_closed(channel);
+}
+
+int channel_is_eof(ssh_channel channel){
+ return ssh_channel_is_eof(channel);
+}
+
+int channel_is_open(ssh_channel channel){
+ return ssh_channel_is_open(channel);
+}
+
+ssh_channel channel_new(ssh_session session){
+ return ssh_channel_new(session);
+}
+
+int channel_open_forward(ssh_channel channel, const char *remotehost,
+ int remoteport, const char *sourcehost, int localport){
+ return ssh_channel_open_forward(channel, remotehost, remoteport,
+ sourcehost,localport);
+}
+
+int channel_open_session(ssh_channel channel){
+ return ssh_channel_open_session(channel);
+}
+
+int channel_poll(ssh_channel channel, int is_stderr){
+ return ssh_channel_poll(channel, is_stderr);
+}
+
+int channel_read(ssh_channel channel, void *dest, uint32_t count, int is_stderr){
+ return ssh_channel_read(channel, dest, count, is_stderr);
+}
+
+/*
+ * This function will completely be depreciated. The old implementation was not
+ * renamed.
+ * int channel_read_buffer(ssh_channel channel, ssh_buffer buffer, uint32_t count,
+ * int is_stderr);
+ */
+
+int channel_read_nonblocking(ssh_channel channel, void *dest, uint32_t count,
+ int is_stderr){
+ return ssh_channel_read_nonblocking(channel, dest, count, is_stderr);
+}
+
+int channel_request_env(ssh_channel channel, const char *name, const char *value){
+ return ssh_channel_request_env(channel, name, value);
+}
+
+int channel_request_exec(ssh_channel channel, const char *cmd){
+ return ssh_channel_request_exec(channel, cmd);
+}
+
+int channel_request_pty(ssh_channel channel){
+ return ssh_channel_request_pty(channel);
+}
+
+int channel_request_pty_size(ssh_channel channel, const char *term,
+ int cols, int rows){
+ return ssh_channel_request_pty_size(channel, term, cols, rows);
+}
+
+int channel_request_shell(ssh_channel channel){
+ return ssh_channel_request_shell(channel);
+}
+
+int channel_request_send_signal(ssh_channel channel, const char *signum){
+ return ssh_channel_request_send_signal(channel, signum);
+}
+
+int channel_request_sftp(ssh_channel channel){
+ return ssh_channel_request_sftp(channel);
+}
+
+int channel_request_subsystem(ssh_channel channel, const char *subsystem){
+ return ssh_channel_request_subsystem(channel, subsystem);
+}
+
+int channel_request_x11(ssh_channel channel, int single_connection, const char *protocol,
+ const char *cookie, int screen_number){
+ return ssh_channel_request_x11(channel, single_connection, protocol, cookie,
+ screen_number);
+}
+
+int channel_send_eof(ssh_channel channel){
+ return ssh_channel_send_eof(channel);
+}
+
+int channel_select(ssh_channel *readchans, ssh_channel *writechans, ssh_channel *exceptchans, struct
+ timeval * timeout){
+ return ssh_channel_select(readchans, writechans, exceptchans, timeout);
+}
+
+void channel_set_blocking(ssh_channel channel, int blocking){
+ ssh_channel_set_blocking(channel, blocking);
+}
+
+int channel_write(ssh_channel channel, const void *data, uint32_t len){
+ return ssh_channel_write(channel, data, len);
+}
+
+/*
+ * These functions have to be wrapped around the pki.c functions.
+
+void privatekey_free(ssh_private_key prv);
+ssh_private_key privatekey_from_file(ssh_session session, const char *filename,
+ int type, const char *passphrase);
+void publickey_free(ssh_public_key key);
+int ssh_publickey_to_file(ssh_session session, const char *file,
+ ssh_string pubkey, int type);
+ssh_string publickey_from_file(ssh_session session, const char *filename,
+ int *type);
+ssh_public_key publickey_from_privatekey(ssh_private_key prv);
+ssh_string publickey_to_string(ssh_public_key key);
+ *
+ */
+
+void string_burn(ssh_string str){
+ ssh_string_burn(str);
+}
+
+ssh_string string_copy(ssh_string str){
+ return ssh_string_copy(str);
+}
+
+void *string_data(ssh_string str){
+ return ssh_string_data(str);
+}
+
+int string_fill(ssh_string str, const void *data, size_t len){
+ return ssh_string_fill(str,data,len);
+}
+
+void string_free(ssh_string str){
+ ssh_string_free(str);
+}
+
+ssh_string string_from_char(const char *what){
+ return ssh_string_from_char(what);
+}
+
+size_t string_len(ssh_string str){
+ return ssh_string_len(str);
+}
+
+ssh_string string_new(size_t size){
+ return ssh_string_new(size);
+}
+
+char *string_to_char(ssh_string str){
+ return ssh_string_to_char(str);
+}
+
+int ssh_accept(ssh_session session) {
+ return ssh_handle_key_exchange(session);
+}
diff --git a/src/libcrypto.c b/src/libcrypto.c
new file mode 100644
index 0000000..f43a91e
--- /dev/null
+++ b/src/libcrypto.c
@@ -0,0 +1,443 @@
+/*
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2009 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "libssh/priv.h"
+#include "libssh/session.h"
+#include "libssh/crypto.h"
+#include "libssh/wrapper.h"
+#include "libssh/libcrypto.h"
+
+#ifdef HAVE_LIBCRYPTO
+
+#include <openssl/sha.h>
+#include <openssl/md5.h>
+#include <openssl/dsa.h>
+#include <openssl/rsa.h>
+#include <openssl/hmac.h>
+#include <openssl/opensslv.h>
+#ifdef HAVE_OPENSSL_AES_H
+#define HAS_AES
+#include <openssl/aes.h>
+#endif
+#ifdef HAVE_OPENSSL_BLOWFISH_H
+#define HAS_BLOWFISH
+#include <openssl/blowfish.h>
+#endif
+#ifdef HAVE_OPENSSL_DES_H
+#define HAS_DES
+#include <openssl/des.h>
+#endif
+
+#if (OPENSSL_VERSION_NUMBER<0x00907000L)
+#define OLD_CRYPTO
+#endif
+
+#include "libssh/crypto.h"
+
+static int alloc_key(struct crypto_struct *cipher) {
+ cipher->key = malloc(cipher->keylen);
+ if (cipher->key == NULL) {
+ return -1;
+ }
+
+ return 0;
+}
+
+SHACTX sha1_init(void) {
+ SHACTX c = malloc(sizeof(*c));
+ if (c == NULL) {
+ return NULL;
+ }
+ SHA1_Init(c);
+
+ return c;
+}
+
+void sha1_update(SHACTX c, const void *data, unsigned long len) {
+ SHA1_Update(c,data,len);
+}
+
+void sha1_final(unsigned char *md, SHACTX c) {
+ SHA1_Final(md, c);
+ SAFE_FREE(c);
+}
+
+void sha1(unsigned char *digest, int len, unsigned char *hash) {
+ SHA1(digest, len, hash);
+}
+
+MD5CTX md5_init(void) {
+ MD5CTX c = malloc(sizeof(*c));
+ if (c == NULL) {
+ return NULL;
+ }
+
+ MD5_Init(c);
+
+ return c;
+}
+
+void md5_update(MD5CTX c, const void *data, unsigned long len) {
+ MD5_Update(c, data, len);
+}
+
+void md5_final(unsigned char *md, MD5CTX c) {
+ MD5_Final(md,c);
+ SAFE_FREE(c);
+}
+
+HMACCTX hmac_init(const void *key, int len, int type) {
+ HMACCTX ctx = NULL;
+
+ ctx = malloc(sizeof(*ctx));
+ if (ctx == NULL) {
+ return NULL;
+ }
+
+#ifndef OLD_CRYPTO
+ HMAC_CTX_init(ctx); // openssl 0.9.7 requires it.
+#endif
+
+ switch(type) {
+ case HMAC_SHA1:
+ HMAC_Init(ctx, key, len, EVP_sha1());
+ break;
+ case HMAC_MD5:
+ HMAC_Init(ctx, key, len, EVP_md5());
+ break;
+ default:
+ SAFE_FREE(ctx);
+ ctx = NULL;
+ }
+
+ return ctx;
+}
+
+void hmac_update(HMACCTX ctx, const void *data, unsigned long len) {
+ HMAC_Update(ctx, data, len);
+}
+
+void hmac_final(HMACCTX ctx, unsigned char *hashmacbuf, unsigned int *len) {
+ HMAC_Final(ctx,hashmacbuf,len);
+
+#ifndef OLD_CRYPTO
+ HMAC_CTX_cleanup(ctx);
+#else
+ HMAC_cleanup(ctx);
+#endif
+
+ SAFE_FREE(ctx);
+}
+
+#ifdef HAS_BLOWFISH
+/* the wrapper functions for blowfish */
+static int blowfish_set_key(struct crypto_struct *cipher, void *key){
+ if (cipher->key == NULL) {
+ if (alloc_key(cipher) < 0) {
+ return -1;
+ }
+ BF_set_key(cipher->key, 16, key);
+ }
+
+ return 0;
+}
+
+static void blowfish_encrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len, void *IV) {
+ BF_cbc_encrypt(in, out, len, cipher->key, IV, BF_ENCRYPT);
+}
+
+static void blowfish_decrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len, void *IV) {
+ BF_cbc_encrypt(in, out, len, cipher->key, IV, BF_DECRYPT);
+}
+#endif /* HAS_BLOWFISH */
+
+#ifdef HAS_AES
+static int aes_set_encrypt_key(struct crypto_struct *cipher, void *key) {
+ if (cipher->key == NULL) {
+ if (alloc_key(cipher) < 0) {
+ return -1;
+ }
+ if (AES_set_encrypt_key(key,cipher->keysize,cipher->key) < 0) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ }
+
+ return 0;
+}
+static int aes_set_decrypt_key(struct crypto_struct *cipher, void *key) {
+ if (cipher->key == NULL) {
+ if (alloc_key(cipher) < 0) {
+ return -1;
+ }
+ if (AES_set_decrypt_key(key,cipher->keysize,cipher->key) < 0) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+static void aes_encrypt(struct crypto_struct *cipher, void *in, void *out,
+ unsigned long len, void *IV) {
+ AES_cbc_encrypt(in, out, len, cipher->key, IV, AES_ENCRYPT);
+}
+
+static void aes_decrypt(struct crypto_struct *cipher, void *in, void *out,
+ unsigned long len, void *IV) {
+ AES_cbc_encrypt(in, out, len, cipher->key, IV, AES_DECRYPT);
+}
+
+#ifndef BROKEN_AES_CTR
+/* OpenSSL until 0.9.7c has a broken AES_ctr128_encrypt implementation which
+ * increments the counter from 2^64 instead of 1. It's better not to use it
+ */
+
+/** @internal
+ * @brief encrypts/decrypts data with stream cipher AES_ctr128. 128 bits is actually
+ * the size of the CTR counter and incidentally the blocksize, but not the keysize.
+ * @param len[in] must be a multiple of AES128 block size.
+ */
+static void aes_ctr128_encrypt(struct crypto_struct *cipher, void *in, void *out,
+ unsigned long len, void *IV) {
+ unsigned char tmp_buffer[128/8];
+ unsigned int num=0;
+ /* Some things are special with ctr128 :
+ * In this case, tmp_buffer is not being used, because it is used to store temporary data
+ * when an encryption is made on lengths that are not multiple of blocksize.
+ * Same for num, which is being used to store the current offset in blocksize in CTR
+ * function.
+ */
+ AES_ctr128_encrypt(in, out, len, cipher->key, IV, tmp_buffer, &num);
+}
+#endif /* BROKEN_AES_CTR */
+#endif /* HAS_AES */
+
+#ifdef HAS_DES
+static int des3_set_key(struct crypto_struct *cipher, void *key) {
+ if (cipher->key == NULL) {
+ if (alloc_key(cipher) < 0) {
+ return -1;
+ }
+
+ DES_set_odd_parity(key);
+ DES_set_odd_parity((void*)((uint8_t*)key + 8));
+ DES_set_odd_parity((void*)((uint8_t*)key + 16));
+ DES_set_key_unchecked(key, cipher->key);
+ DES_set_key_unchecked((void*)((uint8_t*)key + 8), (void*)((uint8_t*)cipher->key + sizeof(DES_key_schedule)));
+ DES_set_key_unchecked((void*)((uint8_t*)key + 16), (void*)((uint8_t*)cipher->key + 2 * sizeof(DES_key_schedule)));
+ }
+
+ return 0;
+}
+
+static void des3_encrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len, void *IV) {
+ DES_ede3_cbc_encrypt(in, out, len, cipher->key,
+ (void*)((uint8_t*)cipher->key + sizeof(DES_key_schedule)),
+ (void*)((uint8_t*)cipher->key + 2 * sizeof(DES_key_schedule)),
+ IV, 1);
+}
+
+static void des3_decrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len, void *IV) {
+ DES_ede3_cbc_encrypt(in, out, len, cipher->key,
+ (void*)((uint8_t*)cipher->key + sizeof(DES_key_schedule)),
+ (void*)((uint8_t*)cipher->key + 2 * sizeof(DES_key_schedule)),
+ IV, 0);
+}
+
+static void des3_1_encrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len, void *IV) {
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("Encrypt IV before", IV, 24);
+#endif
+ DES_ncbc_encrypt(in, out, len, cipher->key, IV, 1);
+ DES_ncbc_encrypt(out, in, len, (void*)((uint8_t*)cipher->key + sizeof(DES_key_schedule)),
+ (void*)((uint8_t*)IV + 8), 0);
+ DES_ncbc_encrypt(in, out, len, (void*)((uint8_t*)cipher->key + 2 * sizeof(DES_key_schedule)),
+ (void*)((uint8_t*)IV + 16), 1);
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("Encrypt IV after", IV, 24);
+#endif
+}
+
+static void des3_1_decrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len, void *IV) {
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("Decrypt IV before", IV, 24);
+#endif
+
+ DES_ncbc_encrypt(in, out, len, (void*)((uint8_t*)cipher->key + 2 * sizeof(DES_key_schedule)),
+ IV, 0);
+ DES_ncbc_encrypt(out, in, len, (void*)((uint8_t*)cipher->key + sizeof(DES_key_schedule)),
+ (void*)((uint8_t*)IV + 8), 1);
+ DES_ncbc_encrypt(in, out, len, cipher->key, (void*)((uint8_t*)IV + 16), 0);
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("Decrypt IV after", IV, 24);
+#endif
+}
+
+#endif /* HAS_DES */
+
+/*
+ * The table of supported ciphers
+ *
+ * WARNING: If you modify crypto_struct, you must make sure the order is
+ * correct!
+ */
+static struct crypto_struct ssh_ciphertab[] = {
+#ifdef HAS_BLOWFISH
+ {
+ "blowfish-cbc",
+ 8,
+ sizeof (BF_KEY),
+ NULL,
+ 128,
+ blowfish_set_key,
+ blowfish_set_key,
+ blowfish_encrypt,
+ blowfish_decrypt
+ },
+#endif /* HAS_BLOWFISH */
+#ifdef HAS_AES
+#ifndef BROKEN_AES_CTR
+ {
+ "aes128-ctr",
+ 16,
+ sizeof(AES_KEY),
+ NULL,
+ 128,
+ aes_set_encrypt_key,
+ aes_set_encrypt_key,
+ aes_ctr128_encrypt,
+ aes_ctr128_encrypt
+ },
+ {
+ "aes192-ctr",
+ 16,
+ sizeof(AES_KEY),
+ NULL,
+ 192,
+ aes_set_encrypt_key,
+ aes_set_encrypt_key,
+ aes_ctr128_encrypt,
+ aes_ctr128_encrypt
+ },
+ {
+ "aes256-ctr",
+ 16,
+ sizeof(AES_KEY),
+ NULL,
+ 256,
+ aes_set_encrypt_key,
+ aes_set_encrypt_key,
+ aes_ctr128_encrypt,
+ aes_ctr128_encrypt
+ },
+#endif /* BROKEN_AES_CTR */
+ {
+ "aes128-cbc",
+ 16,
+ sizeof(AES_KEY),
+ NULL,
+ 128,
+ aes_set_encrypt_key,
+ aes_set_decrypt_key,
+ aes_encrypt,
+ aes_decrypt
+ },
+ {
+ "aes192-cbc",
+ 16,
+ sizeof(AES_KEY),
+ NULL,
+ 192,
+ aes_set_encrypt_key,
+ aes_set_decrypt_key,
+ aes_encrypt,
+ aes_decrypt
+ },
+ {
+ "aes256-cbc",
+ 16,
+ sizeof(AES_KEY),
+ NULL,
+ 256,
+ aes_set_encrypt_key,
+ aes_set_decrypt_key,
+ aes_encrypt,
+ aes_decrypt
+ },
+#endif /* HAS_AES */
+#ifdef HAS_DES
+ {
+ "3des-cbc",
+ 8,
+ sizeof(DES_key_schedule) * 3,
+ NULL,
+ 192,
+ des3_set_key,
+ des3_set_key,
+ des3_encrypt,
+ des3_decrypt
+ },
+ {
+ "3des-cbc-ssh1",
+ 8,
+ sizeof(DES_key_schedule) * 3,
+ NULL,
+ 192,
+ des3_set_key,
+ des3_set_key,
+ des3_1_encrypt,
+ des3_1_decrypt
+ },
+#endif /* HAS_DES */
+ {
+ NULL,
+ 0,
+ 0,
+ NULL,
+ 0,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ }
+};
+
+
+struct crypto_struct *ssh_get_ciphertab(){
+ return ssh_ciphertab;
+}
+
+#endif /* LIBCRYPTO */
+
diff --git a/src/libgcrypt.c b/src/libgcrypt.c
new file mode 100644
index 0000000..f8fe96f
--- /dev/null
+++ b/src/libgcrypt.c
@@ -0,0 +1,423 @@
+/*
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2009 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "libssh/priv.h"
+#include "libssh/session.h"
+#include "libssh/crypto.h"
+#include "libssh/wrapper.h"
+
+#ifdef HAVE_LIBGCRYPT
+#include <gcrypt.h>
+
+
+static int alloc_key(struct crypto_struct *cipher) {
+ cipher->key = malloc(cipher->keylen);
+ if (cipher->key == NULL) {
+ return -1;
+ }
+
+ return 0;
+}
+
+SHACTX sha1_init(void) {
+ SHACTX ctx = NULL;
+ gcry_md_open(&ctx, GCRY_MD_SHA1, 0);
+
+ return ctx;
+}
+
+void sha1_update(SHACTX c, const void *data, unsigned long len) {
+ gcry_md_write(c, data, len);
+}
+
+void sha1_final(unsigned char *md, SHACTX c) {
+ gcry_md_final(c);
+ memcpy(md, gcry_md_read(c, 0), SHA_DIGEST_LEN);
+ gcry_md_close(c);
+}
+
+void sha1(unsigned char *digest, int len, unsigned char *hash) {
+ gcry_md_hash_buffer(GCRY_MD_SHA1, hash, digest, len);
+}
+
+MD5CTX md5_init(void) {
+ MD5CTX c = NULL;
+ gcry_md_open(&c, GCRY_MD_MD5, 0);
+
+ return c;
+}
+
+void md5_update(MD5CTX c, const void *data, unsigned long len) {
+ gcry_md_write(c,data,len);
+}
+
+void md5_final(unsigned char *md, MD5CTX c) {
+ gcry_md_final(c);
+ memcpy(md, gcry_md_read(c, 0), MD5_DIGEST_LEN);
+ gcry_md_close(c);
+}
+
+HMACCTX hmac_init(const void *key, int len, int type) {
+ HMACCTX c = NULL;
+
+ switch(type) {
+ case HMAC_SHA1:
+ gcry_md_open(&c, GCRY_MD_SHA1, GCRY_MD_FLAG_HMAC);
+ break;
+ case HMAC_MD5:
+ gcry_md_open(&c, GCRY_MD_MD5, GCRY_MD_FLAG_HMAC);
+ break;
+ default:
+ c = NULL;
+ }
+
+ gcry_md_setkey(c, key, len);
+
+ return c;
+}
+
+void hmac_update(HMACCTX c, const void *data, unsigned long len) {
+ gcry_md_write(c, data, len);
+}
+
+void hmac_final(HMACCTX c, unsigned char *hashmacbuf, unsigned int *len) {
+ *len = gcry_md_get_algo_dlen(gcry_md_get_algo(c));
+ memcpy(hashmacbuf, gcry_md_read(c, 0), *len);
+ gcry_md_close(c);
+}
+
+/* the wrapper functions for blowfish */
+static int blowfish_set_key(struct crypto_struct *cipher, void *key, void *IV){
+ if (cipher->key == NULL) {
+ if (alloc_key(cipher) < 0) {
+ return -1;
+ }
+
+ if (gcry_cipher_open(&cipher->key[0], GCRY_CIPHER_BLOWFISH,
+ GCRY_CIPHER_MODE_CBC, 0)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ if (gcry_cipher_setkey(cipher->key[0], key, 16)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ if (gcry_cipher_setiv(cipher->key[0], IV, 8)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+static void blowfish_encrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len) {
+ gcry_cipher_encrypt(cipher->key[0], out, len, in, len);
+}
+
+static void blowfish_decrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len) {
+ gcry_cipher_decrypt(cipher->key[0], out, len, in, len);
+}
+
+static int aes_set_key(struct crypto_struct *cipher, void *key, void *IV) {
+ int mode=GCRY_CIPHER_MODE_CBC;
+ if (cipher->key == NULL) {
+ if (alloc_key(cipher) < 0) {
+ return -1;
+ }
+ if(strstr(cipher->name,"-ctr"))
+ mode=GCRY_CIPHER_MODE_CTR;
+ switch (cipher->keysize) {
+ case 128:
+ if (gcry_cipher_open(&cipher->key[0], GCRY_CIPHER_AES128,
+ mode, 0)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ break;
+ case 192:
+ if (gcry_cipher_open(&cipher->key[0], GCRY_CIPHER_AES192,
+ mode, 0)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ break;
+ case 256:
+ if (gcry_cipher_open(&cipher->key[0], GCRY_CIPHER_AES256,
+ mode, 0)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ break;
+ }
+ if (gcry_cipher_setkey(cipher->key[0], key, cipher->keysize / 8)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ if(mode == GCRY_CIPHER_MODE_CBC){
+ if (gcry_cipher_setiv(cipher->key[0], IV, 16)) {
+
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ } else {
+ if(gcry_cipher_setctr(cipher->key[0],IV,16)){
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ }
+ }
+
+ return 0;
+}
+
+static void aes_encrypt(struct crypto_struct *cipher, void *in, void *out,
+ unsigned long len) {
+ gcry_cipher_encrypt(cipher->key[0], out, len, in, len);
+}
+
+static void aes_decrypt(struct crypto_struct *cipher, void *in, void *out,
+ unsigned long len) {
+ gcry_cipher_decrypt(cipher->key[0], out, len, in, len);
+}
+
+static int des3_set_key(struct crypto_struct *cipher, void *key, void *IV) {
+ if (cipher->key == NULL) {
+ if (alloc_key(cipher) < 0) {
+ return -1;
+ }
+ if (gcry_cipher_open(&cipher->key[0], GCRY_CIPHER_3DES,
+ GCRY_CIPHER_MODE_CBC, 0)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ if (gcry_cipher_setkey(cipher->key[0], key, 24)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ if (gcry_cipher_setiv(cipher->key[0], IV, 8)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+static void des3_encrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len) {
+ gcry_cipher_encrypt(cipher->key[0], out, len, in, len);
+}
+
+static void des3_decrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len) {
+ gcry_cipher_decrypt(cipher->key[0], out, len, in, len);
+}
+
+static int des3_1_set_key(struct crypto_struct *cipher, void *key, void *IV) {
+ if (cipher->key == NULL) {
+ if (alloc_key(cipher) < 0) {
+ return -1;
+ }
+ if (gcry_cipher_open(&cipher->key[0], GCRY_CIPHER_DES,
+ GCRY_CIPHER_MODE_CBC, 0)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ if (gcry_cipher_setkey(cipher->key[0], key, 8)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ if (gcry_cipher_setiv(cipher->key[0], IV, 8)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+
+ if (gcry_cipher_open(&cipher->key[1], GCRY_CIPHER_DES,
+ GCRY_CIPHER_MODE_CBC, 0)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ if (gcry_cipher_setkey(cipher->key[1], (unsigned char *)key + 8, 8)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ if (gcry_cipher_setiv(cipher->key[1], (unsigned char *)IV + 8, 8)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+
+ if (gcry_cipher_open(&cipher->key[2], GCRY_CIPHER_DES,
+ GCRY_CIPHER_MODE_CBC, 0)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ if (gcry_cipher_setkey(cipher->key[2], (unsigned char *)key + 16, 8)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ if (gcry_cipher_setiv(cipher->key[2], (unsigned char *)IV + 16, 8)) {
+ SAFE_FREE(cipher->key);
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+static void des3_1_encrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len) {
+ gcry_cipher_encrypt(cipher->key[0], out, len, in, len);
+ gcry_cipher_decrypt(cipher->key[1], in, len, out, len);
+ gcry_cipher_encrypt(cipher->key[2], out, len, in, len);
+}
+
+static void des3_1_decrypt(struct crypto_struct *cipher, void *in,
+ void *out, unsigned long len) {
+ gcry_cipher_decrypt(cipher->key[2], out, len, in, len);
+ gcry_cipher_encrypt(cipher->key[1], in, len, out, len);
+ gcry_cipher_decrypt(cipher->key[0], out, len, in, len);
+}
+
+/* the table of supported ciphers */
+static struct crypto_struct ssh_ciphertab[] = {
+ {
+ .name = "blowfish-cbc",
+ .blocksize = 8,
+ .keylen = sizeof(gcry_cipher_hd_t),
+ .key = NULL,
+ .keysize = 128,
+ .set_encrypt_key = blowfish_set_key,
+ .set_decrypt_key = blowfish_set_key,
+ .cbc_encrypt = blowfish_encrypt,
+ .cbc_decrypt = blowfish_decrypt
+ },
+ {
+ .name = "aes128-ctr",
+ .blocksize = 16,
+ .keylen = sizeof(gcry_cipher_hd_t),
+ .key = NULL,
+ .keysize = 128,
+ .set_encrypt_key = aes_set_key,
+ .set_decrypt_key = aes_set_key,
+ .cbc_encrypt = aes_encrypt,
+ .cbc_decrypt = aes_encrypt
+ },
+ {
+ .name = "aes192-ctr",
+ .blocksize = 16,
+ .keylen = sizeof(gcry_cipher_hd_t),
+ .key = NULL,
+ .keysize = 192,
+ .set_encrypt_key = aes_set_key,
+ .set_decrypt_key = aes_set_key,
+ .cbc_encrypt = aes_encrypt,
+ .cbc_decrypt = aes_encrypt
+ },
+ {
+ .name = "aes256-ctr",
+ .blocksize = 16,
+ .keylen = sizeof(gcry_cipher_hd_t),
+ .key = NULL,
+ .keysize = 256,
+ .set_encrypt_key = aes_set_key,
+ .set_decrypt_key = aes_set_key,
+ .cbc_encrypt = aes_encrypt,
+ .cbc_decrypt = aes_encrypt
+ },
+ {
+ .name = "aes128-cbc",
+ .blocksize = 16,
+ .keylen = sizeof(gcry_cipher_hd_t),
+ .key = NULL,
+ .keysize = 128,
+ .set_encrypt_key = aes_set_key,
+ .set_decrypt_key = aes_set_key,
+ .cbc_encrypt = aes_encrypt,
+ .cbc_decrypt = aes_decrypt
+ },
+ {
+ .name = "aes192-cbc",
+ .blocksize = 16,
+ .keylen = sizeof(gcry_cipher_hd_t),
+ .key = NULL,
+ .keysize = 192,
+ .set_encrypt_key = aes_set_key,
+ .set_decrypt_key = aes_set_key,
+ .cbc_encrypt = aes_encrypt,
+ .cbc_decrypt = aes_decrypt
+ },
+ {
+ .name = "aes256-cbc",
+ .blocksize = 16,
+ .keylen = sizeof(gcry_cipher_hd_t),
+ .key = NULL,
+ .keysize = 256,
+ .set_encrypt_key = aes_set_key,
+ .set_decrypt_key = aes_set_key,
+ .cbc_encrypt = aes_encrypt,
+ .cbc_decrypt = aes_decrypt
+ },
+ {
+ .name = "3des-cbc",
+ .blocksize = 8,
+ .keylen = sizeof(gcry_cipher_hd_t),
+ .key = NULL,
+ .keysize = 192,
+ .set_encrypt_key = des3_set_key,
+ .set_decrypt_key = des3_set_key,
+ .cbc_encrypt = des3_encrypt,
+ .cbc_decrypt = des3_decrypt
+ },
+ {
+ .name = "3des-cbc-ssh1",
+ .blocksize = 8,
+ .keylen = sizeof(gcry_cipher_hd_t) * 3,
+ .key = NULL,
+ .keysize = 192,
+ .set_encrypt_key = des3_1_set_key,
+ .set_decrypt_key = des3_1_set_key,
+ .cbc_encrypt = des3_1_encrypt,
+ .cbc_decrypt = des3_1_decrypt
+ },
+ {
+ .name = NULL,
+ .blocksize = 0,
+ .keylen = 0,
+ .key = NULL,
+ .keysize = 0,
+ .set_encrypt_key = NULL,
+ .set_decrypt_key = NULL,
+ .cbc_encrypt = NULL,
+ .cbc_decrypt = NULL
+ }
+};
+
+struct crypto_struct *ssh_get_ciphertab(){
+ return ssh_ciphertab;
+}
+#endif
diff --git a/src/log.c b/src/log.c
new file mode 100644
index 0000000..6ec5a8e
--- /dev/null
+++ b/src/log.c
@@ -0,0 +1,82 @@
+/*
+ * log.c - logging and debugging functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2008 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <string.h>
+
+#include "libssh/priv.h"
+#include "libssh/session.h"
+
+/**
+ * @defgroup libssh_log The SSH logging functions.
+ * @ingroup libssh
+ *
+ * Logging functions for debugging and problem resolving.
+ *
+ * @{
+ */
+
+/**
+ * @brief Log a SSH event.
+ *
+ * @param session The SSH session.
+ *
+ * @param verbosity The verbosity of the event.
+ *
+ * @param format The format string of the log entry.
+ */
+void ssh_log(ssh_session session, int verbosity, const char *format, ...) {
+ char buffer[1024];
+ char indent[256];
+ int min;
+ va_list va;
+
+ if (verbosity <= session->log_verbosity) {
+ va_start(va, format);
+ vsnprintf(buffer, sizeof(buffer), format, va);
+ va_end(va);
+
+ if (session->callbacks && session->callbacks->log_function) {
+ session->callbacks->log_function(session, verbosity, buffer,
+ session->callbacks->userdata);
+ } else if (verbosity == SSH_LOG_FUNCTIONS) {
+ if (session->log_indent > 255) {
+ min = 255;
+ } else {
+ min = session->log_indent;
+ }
+
+ memset(indent, ' ', min);
+ indent[min] = '\0';
+
+ fprintf(stderr, "[func] %s%s\n", indent, buffer);
+ } else {
+ fprintf(stderr, "[%d] %s\n", verbosity, buffer);
+ }
+ }
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/match.c b/src/match.c
new file mode 100644
index 0000000..98adf67
--- /dev/null
+++ b/src/match.c
@@ -0,0 +1,185 @@
+/*
+ * Author: Tatu Ylonen <ylo@cs.hut.fi>
+ * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
+ * All rights reserved
+ * Simple pattern matching, with '*' and '?' as wildcards.
+ *
+ * As far as I am concerned, the code I have written for this software
+ * can be used freely for any purpose. Any derived versions of this
+ * software must be clearly marked as such, and if the derived work is
+ * incompatible with the protocol description in the RFC file, it must be
+ * called by a name other than "ssh" or "Secure Shell".
+ */
+
+/*
+ * Copyright (c) 2000 Markus Friedl. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <ctype.h>
+#include <string.h>
+#include <sys/types.h>
+
+#include "libssh/priv.h"
+
+/*
+ * Returns true if the given string matches the pattern (which may contain ?
+ * and * as wildcards), and zero if it does not match.
+ */
+static int match_pattern(const char *s, const char *pattern) {
+ for (;;) {
+ /* If at end of pattern, accept if also at end of string. */
+ if (!*pattern) {
+ return !*s;
+ }
+
+ if (*pattern == '*') {
+ /* Skip the asterisk. */
+ pattern++;
+
+ /* If at end of pattern, accept immediately. */
+ if (!*pattern)
+ return 1;
+
+ /* If next character in pattern is known, optimize. */
+ if (*pattern != '?' && *pattern != '*') {
+ /*
+ * Look instances of the next character in
+ * pattern, and try to match starting from
+ * those.
+ */
+ for (; *s; s++)
+ if (*s == *pattern && match_pattern(s + 1, pattern + 1)) {
+ return 1;
+ }
+ /* Failed. */
+ return 0;
+ }
+ /*
+ * Move ahead one character at a time and try to
+ * match at each position.
+ */
+ for (; *s; s++) {
+ if (match_pattern(s, pattern)) {
+ return 1;
+ }
+ }
+ /* Failed. */
+ return 0;
+ }
+ /*
+ * There must be at least one more character in the string.
+ * If we are at the end, fail.
+ */
+ if (!*s) {
+ return 0;
+ }
+
+ /* Check if the next character of the string is acceptable. */
+ if (*pattern != '?' && *pattern != *s) {
+ return 0;
+ }
+
+ /* Move to the next character, both in string and in pattern. */
+ s++;
+ pattern++;
+ }
+
+ /* NOTREACHED */
+}
+
+/*
+ * Tries to match the string against the comma-separated sequence of subpatterns
+ * (each possibly preceded by ! to indicate negation).
+ * Returns -1 if negation matches, 1 if there is a positive match, 0 if there is
+ * no match at all.
+ */
+static int match_pattern_list(const char *string, const char *pattern,
+ unsigned int len, int dolower) {
+ char sub[1024];
+ int negated;
+ int got_positive;
+ unsigned int i, subi;
+
+ got_positive = 0;
+ for (i = 0; i < len;) {
+ /* Check if the subpattern is negated. */
+ if (pattern[i] == '!') {
+ negated = 1;
+ i++;
+ } else {
+ negated = 0;
+ }
+
+ /*
+ * Extract the subpattern up to a comma or end. Convert the
+ * subpattern to lowercase.
+ */
+ for (subi = 0;
+ i < len && subi < sizeof(sub) - 1 && pattern[i] != ',';
+ subi++, i++) {
+ sub[subi] = dolower && isupper(pattern[i]) ?
+ (char)tolower(pattern[i]) : pattern[i];
+ }
+
+ /* If subpattern too long, return failure (no match). */
+ if (subi >= sizeof(sub) - 1) {
+ return 0;
+ }
+
+ /* If the subpattern was terminated by a comma, skip the comma. */
+ if (i < len && pattern[i] == ',') {
+ i++;
+ }
+
+ /* Null-terminate the subpattern. */
+ sub[subi] = '\0';
+
+ /* Try to match the subpattern against the string. */
+ if (match_pattern(string, sub)) {
+ if (negated) {
+ return -1; /* Negative */
+ } else {
+ got_positive = 1; /* Positive */
+ }
+ }
+ }
+
+ /*
+ * Return success if got a positive match. If there was a negative
+ * match, we have already returned -1 and never get here.
+ */
+ return got_positive;
+}
+
+/*
+ * Tries to match the host name (which must be in all lowercase) against the
+ * comma-separated sequence of subpatterns (each possibly preceded by ! to
+ * indicate negation).
+ * Returns -1 if negation matches, 1 if there is a positive match, 0 if there
+ * is no match at all.
+ */
+int match_hostname(const char *host, const char *pattern, unsigned int len) {
+ return match_pattern_list(host, pattern, len, 1);
+}
+
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/messages.c b/src/messages.c
new file mode 100644
index 0000000..027daf2
--- /dev/null
+++ b/src/messages.c
@@ -0,0 +1,848 @@
+/*
+ * messages.c - message parsion for the server
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2009 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <string.h>
+#include <stdlib.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/libssh.h"
+#include "libssh/priv.h"
+#include "libssh/ssh2.h"
+#include "libssh/buffer.h"
+#include "libssh/packet.h"
+#include "libssh/channels.h"
+#include "libssh/session.h"
+#include "libssh/misc.h"
+#include "libssh/keys.h"
+#include "libssh/dh.h"
+#include "libssh/messages.h"
+
+/**
+ * @defgroup libssh_messages The SSH message functions
+ * @ingroup libssh
+ *
+ * This file contains the Message parsing utilities for server programs using
+ * libssh. The main loop of the program will call ssh_message_get(session) to
+ * get messages as they come. they are not 1-1 with the protocol messages.
+ * then, the user will know what kind of a message it is and use the appropriate
+ * functions to handle it (or use the default handlers if she doesn't know what to
+ * do
+ *
+ * @{
+ */
+
+static ssh_message ssh_message_new(ssh_session session){
+ ssh_message msg = malloc(sizeof(struct ssh_message_struct));
+ if (msg == NULL) {
+ return NULL;
+ }
+ ZERO_STRUCTP(msg);
+ msg->session = session;
+ return msg;
+}
+
+SSH_PACKET_CALLBACK(ssh_packet_service_request){
+ ssh_string service = NULL;
+ char *service_c = NULL;
+ ssh_message msg=NULL;
+
+ enter_function();
+ (void)type;
+ (void)user;
+ service = buffer_get_ssh_string(packet);
+ if (service == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Invalid SSH_MSG_SERVICE_REQUEST packet");
+ goto error;
+ }
+
+ service_c = ssh_string_to_char(service);
+ if (service_c == NULL) {
+ goto error;
+ }
+ ssh_log(session, SSH_LOG_PACKET,
+ "Received a SERVICE_REQUEST for service %s", service_c);
+ msg=ssh_message_new(session);
+ if(!msg){
+ SAFE_FREE(service_c);
+ goto error;
+ }
+ msg->type=SSH_REQUEST_SERVICE;
+ msg->service_request.service=service_c;
+error:
+ ssh_string_free(service);
+ if(msg != NULL)
+ ssh_message_queue(session,msg);
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ *
+ * @brief Handle a SSH_MSG_MSG_USERAUTH_REQUEST packet and queue a
+ * SSH Message
+ */
+SSH_PACKET_CALLBACK(ssh_packet_userauth_request){
+ ssh_string user_s = NULL;
+ ssh_string service = NULL;
+ ssh_string method = NULL;
+ ssh_message msg = NULL;
+ char *service_c = NULL;
+ char *method_c = NULL;
+ uint32_t method_size = 0;
+
+ enter_function();
+
+ (void)user;
+ (void)type;
+ msg = ssh_message_new(session);
+ if (msg == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+
+ user_s = buffer_get_ssh_string(packet);
+ if (user_s == NULL) {
+ goto error;
+ }
+ service = buffer_get_ssh_string(packet);
+ if (service == NULL) {
+ goto error;
+ }
+ method = buffer_get_ssh_string(packet);
+ if (method == NULL) {
+ goto error;
+ }
+
+ msg->type = SSH_REQUEST_AUTH;
+ msg->auth_request.username = ssh_string_to_char(user_s);
+ if (msg->auth_request.username == NULL) {
+ goto error;
+ }
+ ssh_string_free(user_s);
+ user_s = NULL;
+
+ service_c = ssh_string_to_char(service);
+ if (service_c == NULL) {
+ goto error;
+ }
+ method_c = ssh_string_to_char(method);
+ if (method_c == NULL) {
+ goto error;
+ }
+ method_size = ssh_string_len(method);
+
+ ssh_string_free(service);
+ service = NULL;
+ ssh_string_free(method);
+ method = NULL;
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Auth request for service %s, method %s for user '%s'",
+ service_c, method_c,
+ msg->auth_request.username);
+
+
+ if (strncmp(method_c, "none", method_size) == 0) {
+ msg->auth_request.method = SSH_AUTH_METHOD_NONE;
+ SAFE_FREE(service_c);
+ SAFE_FREE(method_c);
+ goto end;
+ }
+
+ if (strncmp(method_c, "password", method_size) == 0) {
+ ssh_string pass = NULL;
+ uint8_t tmp;
+
+ msg->auth_request.method = SSH_AUTH_METHOD_PASSWORD;
+ SAFE_FREE(service_c);
+ SAFE_FREE(method_c);
+ buffer_get_u8(packet, &tmp);
+ pass = buffer_get_ssh_string(packet);
+ if (pass == NULL) {
+ goto error;
+ }
+ msg->auth_request.password = ssh_string_to_char(pass);
+ ssh_string_burn(pass);
+ ssh_string_free(pass);
+ pass = NULL;
+ if (msg->auth_request.password == NULL) {
+ goto error;
+ }
+ goto end;
+ }
+
+ if (strncmp(method_c, "publickey", method_size) == 0) {
+ ssh_string algo = NULL;
+ ssh_string publickey = NULL;
+ uint8_t has_sign;
+
+ msg->auth_request.method = SSH_AUTH_METHOD_PUBLICKEY;
+ SAFE_FREE(method_c);
+ buffer_get_u8(packet, &has_sign);
+ algo = buffer_get_ssh_string(packet);
+ if (algo == NULL) {
+ goto error;
+ }
+ publickey = buffer_get_ssh_string(packet);
+ if (publickey == NULL) {
+ ssh_string_free(algo);
+ algo = NULL;
+ goto error;
+ }
+ msg->auth_request.public_key = publickey_from_string(session, publickey);
+ ssh_string_free(algo);
+ algo = NULL;
+ ssh_string_free(publickey);
+ publickey = NULL;
+ if (msg->auth_request.public_key == NULL) {
+ goto error;
+ }
+ msg->auth_request.signature_state = SSH_PUBLICKEY_STATE_NONE;
+ // has a valid signature ?
+ if(has_sign) {
+ SIGNATURE *signature = NULL;
+ ssh_public_key public_key = msg->auth_request.public_key;
+ ssh_string sign = NULL;
+ ssh_buffer digest = NULL;
+
+ sign = buffer_get_ssh_string(packet);
+ if(sign == NULL) {
+ ssh_log(session, SSH_LOG_PACKET, "Invalid signature packet from peer");
+ msg->auth_request.signature_state = SSH_PUBLICKEY_STATE_ERROR;
+ goto error;
+ }
+ signature = signature_from_string(session, sign, public_key,
+ public_key->type);
+ digest = ssh_userauth_build_digest(session, msg, service_c);
+ if ((digest == NULL || signature == NULL) ||
+ (digest != NULL && signature != NULL &&
+ sig_verify(session, public_key, signature,
+ ssh_buffer_get_begin(digest), ssh_buffer_get_len(digest)) < 0)) {
+ ssh_log(session, SSH_LOG_PACKET, "Wrong signature from peer");
+
+ ssh_string_free(sign);
+ sign = NULL;
+ ssh_buffer_free(digest);
+ digest = NULL;
+ signature_free(signature);
+ signature = NULL;
+
+ msg->auth_request.signature_state = SSH_PUBLICKEY_STATE_WRONG;
+ goto error;
+ }
+ else
+ ssh_log(session, SSH_LOG_PACKET, "Valid signature received");
+
+ ssh_buffer_free(digest);
+ digest = NULL;
+ ssh_string_free(sign);
+ sign = NULL;
+ signature_free(signature);
+ signature = NULL;
+
+ msg->auth_request.signature_state = SSH_PUBLICKEY_STATE_VALID;
+ }
+ SAFE_FREE(service_c);
+ goto end;
+ }
+
+ msg->auth_request.method = SSH_AUTH_METHOD_UNKNOWN;
+ SAFE_FREE(method_c);
+ goto end;
+error:
+ ssh_string_free(user_s);
+ ssh_string_free(service);
+ ssh_string_free(method);
+
+ SAFE_FREE(method_c);
+ SAFE_FREE(service_c);
+
+ ssh_message_free(msg);
+
+ leave_function();
+ return SSH_PACKET_USED;
+end:
+ ssh_message_queue(session,msg);
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+SSH_PACKET_CALLBACK(ssh_packet_channel_open){
+ ssh_message msg = NULL;
+ ssh_string type_s = NULL, originator = NULL, destination = NULL;
+ char *type_c = NULL;
+ uint32_t sender, window, packet_size, originator_port, destination_port;
+
+ enter_function();
+ (void)type;
+ (void)user;
+ msg = ssh_message_new(session);
+ if (msg == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+
+ msg->type = SSH_REQUEST_CHANNEL_OPEN;
+
+ type_s = buffer_get_ssh_string(packet);
+ if (type_s == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+ type_c = ssh_string_to_char(type_s);
+ if (type_c == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Clients wants to open a %s channel", type_c);
+ ssh_string_free(type_s);
+ type_s=NULL;
+
+ buffer_get_u32(packet, &sender);
+ buffer_get_u32(packet, &window);
+ buffer_get_u32(packet, &packet_size);
+
+ msg->channel_request_open.sender = ntohl(sender);
+ msg->channel_request_open.window = ntohl(window);
+ msg->channel_request_open.packet_size = ntohl(packet_size);
+
+ if (strcmp(type_c,"session") == 0) {
+ msg->channel_request_open.type = SSH_CHANNEL_SESSION;
+ SAFE_FREE(type_c);
+ goto end;
+ }
+
+ if (strcmp(type_c,"direct-tcpip") == 0) {
+ destination = buffer_get_ssh_string(packet);
+ if (destination == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+ msg->channel_request_open.destination = ssh_string_to_char(destination);
+ if (msg->channel_request_open.destination == NULL) {
+ ssh_set_error_oom(session);
+ ssh_string_free(destination);
+ goto error;
+ }
+ ssh_string_free(destination);
+
+ buffer_get_u32(packet, &destination_port);
+ msg->channel_request_open.destination_port = ntohl(destination_port);
+
+ originator = buffer_get_ssh_string(packet);
+ if (originator == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+ msg->channel_request_open.originator = ssh_string_to_char(originator);
+ if (msg->channel_request_open.originator == NULL) {
+ ssh_set_error_oom(session);
+ ssh_string_free(originator);
+ goto error;
+ }
+ ssh_string_free(originator);
+
+ buffer_get_u32(packet, &originator_port);
+ msg->channel_request_open.originator_port = ntohl(originator_port);
+
+ msg->channel_request_open.type = SSH_CHANNEL_DIRECT_TCPIP;
+ goto end;
+ }
+
+ if (strcmp(type_c,"forwarded-tcpip") == 0) {
+ destination = buffer_get_ssh_string(packet);
+ if (destination == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+ msg->channel_request_open.destination = ssh_string_to_char(destination);
+ if (msg->channel_request_open.destination == NULL) {
+ ssh_set_error_oom(session);
+ ssh_string_free(destination);
+ goto error;
+ }
+ ssh_string_free(destination);
+
+ buffer_get_u32(packet, &destination_port);
+ msg->channel_request_open.destination_port = ntohl(destination_port);
+
+ originator = buffer_get_ssh_string(packet);
+ if (originator == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+ msg->channel_request_open.originator = ssh_string_to_char(originator);
+ if (msg->channel_request_open.originator == NULL) {
+ ssh_set_error_oom(session);
+ ssh_string_free(originator);
+ goto error;
+ }
+ ssh_string_free(originator);
+
+ buffer_get_u32(packet, &originator_port);
+ msg->channel_request_open.originator_port = ntohl(originator_port);
+
+ msg->channel_request_open.type = SSH_CHANNEL_FORWARDED_TCPIP;
+ goto end;
+ }
+
+ if (strcmp(type_c,"x11") == 0) {
+ originator = buffer_get_ssh_string(packet);
+ if (originator == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+ msg->channel_request_open.originator = ssh_string_to_char(originator);
+ if (msg->channel_request_open.originator == NULL) {
+ ssh_set_error_oom(session);
+ ssh_string_free(originator);
+ goto error;
+ }
+ ssh_string_free(originator);
+
+ buffer_get_u32(packet, &originator_port);
+ msg->channel_request_open.originator_port = ntohl(originator_port);
+
+ msg->channel_request_open.type = SSH_CHANNEL_X11;
+ goto end;
+ }
+
+ msg->channel_request_open.type = SSH_CHANNEL_UNKNOWN;
+ goto end;
+
+error:
+ ssh_message_free(msg);
+ msg=NULL;
+end:
+ if(type_s != NULL)
+ ssh_string_free(type_s);
+ SAFE_FREE(type_c);
+ if(msg != NULL)
+ ssh_message_queue(session,msg);
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+/* TODO: make this function accept a ssh_channel */
+ssh_channel ssh_message_channel_request_open_reply_accept(ssh_message msg) {
+ ssh_session session = msg->session;
+ ssh_channel chan = NULL;
+
+ enter_function();
+
+ if (msg == NULL) {
+ leave_function();
+ return NULL;
+ }
+
+ chan = ssh_channel_new(session);
+ if (chan == NULL) {
+ leave_function();
+ return NULL;
+ }
+
+ chan->local_channel = ssh_channel_new_id(session);
+ chan->local_maxpacket = 35000;
+ chan->local_window = 32000;
+ chan->remote_channel = msg->channel_request_open.sender;
+ chan->remote_maxpacket = msg->channel_request_open.packet_size;
+ chan->remote_window = msg->channel_request_open.window;
+ chan->state = SSH_CHANNEL_STATE_OPEN;
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION) < 0) {
+ goto error;
+ }
+ if (buffer_add_u32(session->out_buffer, htonl(chan->remote_channel)) < 0) {
+ goto error;
+ }
+ if (buffer_add_u32(session->out_buffer, htonl(chan->local_channel)) < 0) {
+ goto error;
+ }
+ if (buffer_add_u32(session->out_buffer, htonl(chan->local_window)) < 0) {
+ goto error;
+ }
+ if (buffer_add_u32(session->out_buffer, htonl(chan->local_maxpacket)) < 0) {
+ goto error;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Accepting a channel request_open for chan %d", chan->remote_channel);
+
+ if (packet_send(session) == SSH_ERROR) {
+ goto error;
+ }
+
+ leave_function();
+ return chan;
+error:
+ ssh_channel_free(chan);
+
+ leave_function();
+ return NULL;
+}
+
+/**
+ * @internal
+ *
+ * @brief This function parses the last end of a channel request packet.
+ *
+ * This is normally converted to a SSH message and placed in the queue.
+ *
+ * @param[in] session The SSH session.
+ *
+ * @param[in] channel The channel the request is made on.
+ *
+ * @param[in] packet The rest of the packet to be parsed.
+ *
+ * @param[in] request The type of request.
+ *
+ * @param[in] want_reply The want_reply field from the request.
+ *
+ * @returns SSH_OK on success, SSH_ERROR if an error occured.
+ */
+int ssh_message_handle_channel_request(ssh_session session, ssh_channel channel, ssh_buffer packet,
+ const char *request, uint8_t want_reply) {
+ ssh_message msg = NULL;
+ enter_function();
+ msg = ssh_message_new(session);
+ if (msg == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Received a %s channel_request for channel (%d:%d) (want_reply=%hhd)",
+ request, channel->local_channel, channel->remote_channel, want_reply);
+
+ msg->type = SSH_REQUEST_CHANNEL;
+ msg->channel_request.channel = channel;
+ msg->channel_request.want_reply = want_reply;
+
+ if (strcmp(request, "pty-req") == 0) {
+ ssh_string term = NULL;
+ char *term_c = NULL;
+ term = buffer_get_ssh_string(packet);
+ if (term == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+ term_c = ssh_string_to_char(term);
+ if (term_c == NULL) {
+ ssh_set_error_oom(session);
+ ssh_string_free(term);
+ goto error;
+ }
+ ssh_string_free(term);
+
+ msg->channel_request.type = SSH_CHANNEL_REQUEST_PTY;
+ msg->channel_request.TERM = term_c;
+
+ buffer_get_u32(packet, &msg->channel_request.width);
+ buffer_get_u32(packet, &msg->channel_request.height);
+ buffer_get_u32(packet, &msg->channel_request.pxwidth);
+ buffer_get_u32(packet, &msg->channel_request.pxheight);
+
+ msg->channel_request.width = ntohl(msg->channel_request.width);
+ msg->channel_request.height = ntohl(msg->channel_request.height);
+ msg->channel_request.pxwidth = ntohl(msg->channel_request.pxwidth);
+ msg->channel_request.pxheight = ntohl(msg->channel_request.pxheight);
+ msg->channel_request.modes = buffer_get_ssh_string(packet);
+ if (msg->channel_request.modes == NULL) {
+ SAFE_FREE(term_c);
+ goto error;
+ }
+ goto end;
+ }
+
+ if (strcmp(request, "window-change") == 0) {
+ msg->channel_request.type = SSH_CHANNEL_REQUEST_WINDOW_CHANGE;
+
+ buffer_get_u32(packet, &msg->channel_request.width);
+ buffer_get_u32(packet, &msg->channel_request.height);
+ buffer_get_u32(packet, &msg->channel_request.pxwidth);
+ buffer_get_u32(packet, &msg->channel_request.pxheight);
+
+ msg->channel_request.width = ntohl(msg->channel_request.width);
+ msg->channel_request.height = ntohl(msg->channel_request.height);
+ msg->channel_request.pxwidth = ntohl(msg->channel_request.pxwidth);
+ msg->channel_request.pxheight = ntohl(msg->channel_request.pxheight);
+
+ goto end;
+ }
+
+ if (strcmp(request, "subsystem") == 0) {
+ ssh_string subsys = NULL;
+ char *subsys_c = NULL;
+ subsys = buffer_get_ssh_string(packet);
+ if (subsys == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+ subsys_c = ssh_string_to_char(subsys);
+ if (subsys_c == NULL) {
+ ssh_set_error_oom(session);
+ ssh_string_free(subsys);
+ goto error;
+ }
+ ssh_string_free(subsys);
+
+ msg->channel_request.type = SSH_CHANNEL_REQUEST_SUBSYSTEM;
+ msg->channel_request.subsystem = subsys_c;
+
+ goto end;
+ }
+
+ if (strcmp(request, "shell") == 0) {
+ msg->channel_request.type = SSH_CHANNEL_REQUEST_SHELL;
+ goto end;
+ }
+
+ if (strcmp(request, "exec") == 0) {
+ ssh_string cmd = NULL;
+ cmd = buffer_get_ssh_string(packet);
+ if (cmd == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+ msg->channel_request.type = SSH_CHANNEL_REQUEST_EXEC;
+ msg->channel_request.command = ssh_string_to_char(cmd);
+ ssh_string_free(cmd);
+ if (msg->channel_request.command == NULL) {
+ goto error;
+ }
+ goto end;
+ }
+
+ if (strcmp(request, "env") == 0) {
+ ssh_string name = NULL;
+ ssh_string value = NULL;
+ name = buffer_get_ssh_string(packet);
+ if (name == NULL) {
+ ssh_set_error_oom(session);
+ goto error;
+ }
+ value = buffer_get_ssh_string(packet);
+ if (value == NULL) {
+ ssh_set_error_oom(session);
+ ssh_string_free(name);
+ goto error;
+ }
+
+ msg->channel_request.type = SSH_CHANNEL_REQUEST_ENV;
+ msg->channel_request.var_name = ssh_string_to_char(name);
+ msg->channel_request.var_value = ssh_string_to_char(value);
+ if (msg->channel_request.var_name == NULL ||
+ msg->channel_request.var_value == NULL) {
+ ssh_string_free(name);
+ ssh_string_free(value);
+ goto error;
+ }
+ ssh_string_free(name);
+ ssh_string_free(value);
+
+ goto end;
+ }
+
+ msg->channel_request.type = SSH_CHANNEL_UNKNOWN;
+end:
+ ssh_message_queue(session,msg);
+ leave_function();
+ return SSH_OK;
+error:
+ ssh_message_free(msg);
+
+ leave_function();
+ return SSH_ERROR;
+}
+
+int ssh_message_channel_request_reply_success(ssh_message msg) {
+ uint32_t channel;
+
+ if (msg == NULL) {
+ return SSH_ERROR;
+ }
+
+ if (msg->channel_request.want_reply) {
+ channel = msg->channel_request.channel->remote_channel;
+
+ ssh_log(msg->session, SSH_LOG_PACKET,
+ "Sending a channel_request success to channel %d", channel);
+
+ if (buffer_add_u8(msg->session->out_buffer, SSH2_MSG_CHANNEL_SUCCESS) < 0) {
+ return SSH_ERROR;
+ }
+ if (buffer_add_u32(msg->session->out_buffer, htonl(channel)) < 0) {
+ return SSH_ERROR;
+ }
+
+ return packet_send(msg->session);
+ }
+
+ ssh_log(msg->session, SSH_LOG_PACKET,
+ "The client doesn't want to know the request succeeded");
+
+ return SSH_OK;
+}
+
+/**
+ * @brief Retrieve a SSH message from a SSH session.
+ *
+ * @param[in] session The SSH session to get the message.
+ *
+ * @returns The SSH message received, NULL in case of error.
+ *
+ * @warning This function blocks until a message has been received. Betterset up
+ * a callback if this behavior is unwanted.
+ */
+ssh_message ssh_message_get(ssh_session session) {
+ ssh_message msg = NULL;
+ enter_function();
+
+ msg=ssh_message_pop_head(session);
+ if(msg) {
+ leave_function();
+ return msg;
+ }
+ if(session->ssh_message_list == NULL) {
+ session->ssh_message_list = ssh_list_new();
+ }
+ do {
+ if (ssh_handle_packets(session,-1) == SSH_ERROR) {
+ leave_function();
+ return NULL;
+ }
+ msg=ssh_list_pop_head(ssh_message, session->ssh_message_list);
+ } while(msg==NULL);
+ leave_function();
+ return msg;
+}
+
+int ssh_message_type(ssh_message msg) {
+ if (msg == NULL) {
+ return -1;
+ }
+
+ return msg->type;
+}
+
+int ssh_message_subtype(ssh_message msg) {
+ if (msg == NULL) {
+ return -1;
+ }
+
+ switch(msg->type) {
+ case SSH_REQUEST_AUTH:
+ return msg->auth_request.method;
+ case SSH_REQUEST_CHANNEL_OPEN:
+ return msg->channel_request_open.type;
+ case SSH_REQUEST_CHANNEL:
+ return msg->channel_request.type;
+ }
+
+ return -1;
+}
+
+void ssh_message_free(ssh_message msg){
+ if (msg == NULL) {
+ return;
+ }
+
+ switch(msg->type) {
+ case SSH_REQUEST_AUTH:
+ SAFE_FREE(msg->auth_request.username);
+ if (msg->auth_request.password) {
+ memset(msg->auth_request.password, 0,
+ strlen(msg->auth_request.password));
+ SAFE_FREE(msg->auth_request.password);
+ }
+ publickey_free(msg->auth_request.public_key);
+ break;
+ case SSH_REQUEST_CHANNEL_OPEN:
+ SAFE_FREE(msg->channel_request_open.originator);
+ SAFE_FREE(msg->channel_request_open.destination);
+ break;
+ case SSH_REQUEST_CHANNEL:
+ SAFE_FREE(msg->channel_request.TERM);
+ SAFE_FREE(msg->channel_request.modes);
+ SAFE_FREE(msg->channel_request.var_name);
+ SAFE_FREE(msg->channel_request.var_value);
+ SAFE_FREE(msg->channel_request.command);
+ SAFE_FREE(msg->channel_request.subsystem);
+ break;
+ case SSH_REQUEST_SERVICE:
+ SAFE_FREE(msg->service_request.service);
+ break;
+ }
+ ZERO_STRUCTP(msg);
+ SAFE_FREE(msg);
+}
+
+/**
+ * @internal
+ *
+ * @brief Add a message to the current queue of messages to be parsed.
+ *
+ * @param[in] session The SSH session to add the message.
+ *
+ * @param[in] message The message to add to the queue.
+ */
+void ssh_message_queue(ssh_session session, ssh_message message){
+ if(message){
+ if(session->ssh_message_list == NULL){
+ session->ssh_message_list=ssh_list_new();
+ }
+ ssh_list_append(session->ssh_message_list, message);
+ }
+}
+
+/**
+ * @internal
+ *
+ * @brief Pop a message from the message list and dequeue it.
+ *
+ * @param[in] session The SSH session to pop the message.
+ *
+ * @returns The head message or NULL if it doesn't exist.
+ */
+ssh_message ssh_message_pop_head(ssh_session session){
+ ssh_message msg=NULL;
+ struct ssh_iterator *i;
+ if(session->ssh_message_list == NULL)
+ return NULL;
+ i=ssh_list_get_iterator(session->ssh_message_list);
+ if(i != NULL){
+ msg=ssh_iterator_value(ssh_message,i);
+ ssh_list_remove(session->ssh_message_list,i);
+ }
+ return msg;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/misc.c b/src/misc.c
new file mode 100644
index 0000000..bd903b0
--- /dev/null
+++ b/src/misc.c
@@ -0,0 +1,685 @@
+/*
+ * misc.c - useful client functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2009 by Aris Adamantiadis
+ * Copyright (c) 2008-2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <limits.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <ctype.h>
+
+#ifdef _WIN32
+#define _WIN32_IE 0x0501 //SHGetSpecialFolderPath
+#include <winsock2.h> // Must be the first to include
+#include <ws2tcpip.h>
+#include <shlobj.h>
+#include <direct.h>
+#if _MSC_VER >= 1400
+#include <io.h>
+#endif /* _MSC_VER */
+#else /* _WIN32 */
+/* This is needed for a standard getpwuid_r on opensolaris */
+#define _POSIX_PTHREAD_SEMANTICS
+#include <pwd.h>
+#include <arpa/inet.h>
+#endif /* _WIN32 */
+
+#include "libssh/priv.h"
+#include "libssh/misc.h"
+#include "libssh/session.h"
+
+#ifdef HAVE_LIBGCRYPT
+#define GCRYPT_STRING "/gnutls"
+#else
+#define GCRYPT_STRING ""
+#endif
+
+#ifdef HAVE_LIBCRYPTO
+#define CRYPTO_STRING "/openssl"
+#else
+#define CRYPTO_STRING ""
+#endif
+
+#if defined(HAVE_LIBZ) && defined(WITH_LIBZ)
+#define LIBZ_STRING "/zlib"
+#else
+#define LIBZ_STRING ""
+#endif
+
+/**
+ * @defgroup libssh_misc The SSH helper functions.
+ * @ingroup libssh
+ *
+ * Different helper functions used in the SSH Library.
+ *
+ * @{
+ */
+
+#ifdef _WIN32
+char *ssh_get_user_home_dir(void) {
+ char tmp[MAX_PATH] = {0};
+ char *szPath = NULL;
+
+ if (SHGetSpecialFolderPathA(NULL, tmp, CSIDL_PROFILE, TRUE)) {
+ szPath = malloc(strlen(tmp) + 1);
+ if (szPath == NULL) {
+ return NULL;
+ }
+
+ strcpy(szPath, tmp);
+ return szPath;
+ }
+
+ return NULL;
+}
+
+/* we have read access on file */
+int ssh_file_readaccess_ok(const char *file) {
+ if (_access(file, 4) < 0) {
+ return 0;
+ }
+
+ return 1;
+}
+
+#define SSH_USEC_IN_SEC 1000000LL
+#define SSH_SECONDS_SINCE_1601 11644473600LL
+
+int gettimeofday(struct timeval *__p, void *__t) {
+ union {
+ unsigned long long ns100; /* time since 1 Jan 1601 in 100ns units */
+ FILETIME ft;
+ } now;
+
+ GetSystemTimeAsFileTime (&now.ft);
+ __p->tv_usec = (long) ((now.ns100 / 10LL) % SSH_USEC_IN_SEC);
+ __p->tv_sec = (long)(((now.ns100 / 10LL ) / SSH_USEC_IN_SEC) - SSH_SECONDS_SINCE_1601);
+
+ return (0);
+}
+
+char *ssh_get_local_username(ssh_session session) {
+ DWORD size = 0;
+ char *user;
+
+ /* get the size */
+ GetUserName(NULL, &size);
+
+ user = malloc(size);
+ if (user == NULL) {
+ ssh_set_error_oom(session);
+ return NULL;
+ }
+
+ if (GetUserName(user, &size)) {
+ return user;
+ }
+
+ return NULL;
+}
+#else /* _WIN32 */
+
+#ifndef NSS_BUFLEN_PASSWD
+#define NSS_BUFLEN_PASSWD 4096
+#endif /* NSS_BUFLEN_PASSWD */
+
+char *ssh_get_user_home_dir(void) {
+ char *szPath = NULL;
+ struct passwd pwd;
+ struct passwd *pwdbuf;
+ char buf[NSS_BUFLEN_PASSWD];
+ int rc;
+
+ rc = getpwuid_r(getuid(), &pwd, buf, NSS_BUFLEN_PASSWD, &pwdbuf);
+ if (rc != 0) {
+ return NULL;
+ }
+
+ szPath = strdup(pwd.pw_dir);
+
+ return szPath;
+}
+
+/* we have read access on file */
+int ssh_file_readaccess_ok(const char *file) {
+ if (access(file, R_OK) < 0) {
+ return 0;
+ }
+
+ return 1;
+}
+
+char *ssh_get_local_username(ssh_session session) {
+ struct passwd pwd;
+ struct passwd *pwdbuf;
+ char buf[NSS_BUFLEN_PASSWD];
+ char *name;
+ int rc;
+
+ rc = getpwuid_r(getuid(), &pwd, buf, NSS_BUFLEN_PASSWD, &pwdbuf);
+ if (rc != 0) {
+ ssh_set_error(session, SSH_FATAL,
+ "Couldn't retrieve information for current user!");
+ return NULL;
+ }
+
+ name = strdup(pwd.pw_name);
+
+ if (name == NULL) {
+ ssh_set_error_oom(session);
+ return NULL;
+ }
+
+ return name;
+}
+#endif /* _WIN32 */
+
+uint64_t ntohll(uint64_t a) {
+#ifdef WORDS_BIGENDIAN
+ return a;
+#else
+ uint32_t low = (uint32_t)(a & 0xffffffff);
+ uint32_t high = (uint32_t)(a >> 32);
+ low = ntohl(low);
+ high = ntohl(high);
+
+ return ((((uint64_t) low) << 32) | ( high));
+#endif
+}
+
+char *ssh_lowercase(const char* str) {
+ char *new, *p;
+
+ if (str == NULL) {
+ return NULL;
+ }
+
+ new = strdup(str);
+ if (new == NULL) {
+ return NULL;
+ }
+
+ for (p = new; *p; p++) {
+ *p = tolower(*p);
+ }
+
+ return new;
+}
+
+char *ssh_hostport(const char *host, int port){
+ char *dest;
+ size_t len;
+ if(host==NULL)
+ return NULL;
+ /* 3 for []:, 5 for 65536 and 1 for nul */
+ len=strlen(host) + 3 + 5 + 1;
+ dest=malloc(len);
+ if(dest==NULL)
+ return NULL;
+ snprintf(dest,len,"[%s]:%d",host,port);
+ return dest;
+}
+
+/**
+ * @brief Check if libssh is the required version or get the version
+ * string.
+ *
+ * @param[in] req_version The version required.
+ *
+ * @return If the version of libssh is newer than the version
+ * required it will return a version string.
+ * NULL if the version is older.
+ *
+ * Example:
+ *
+ * @code
+ * if (ssh_version(SSH_VERSION_INT(0,2,1)) == NULL) {
+ * fprintf(stderr, "libssh version is too old!\n");
+ * exit(1);
+ * }
+ *
+ * if (debug) {
+ * printf("libssh %s\n", ssh_version(0));
+ * }
+ * @endcode
+ */
+const char *ssh_version(int req_version) {
+ if (req_version <= LIBSSH_VERSION_INT) {
+ return SSH_STRINGIFY(LIBSSH_VERSION) GCRYPT_STRING CRYPTO_STRING
+ LIBZ_STRING;
+ }
+
+ return NULL;
+}
+
+struct ssh_list *ssh_list_new(){
+ struct ssh_list *ret=malloc(sizeof(struct ssh_list));
+ if(!ret)
+ return NULL;
+ ret->root=ret->end=NULL;
+ return ret;
+}
+
+void ssh_list_free(struct ssh_list *list){
+ struct ssh_iterator *ptr,*next;
+ ptr=list->root;
+ while(ptr){
+ next=ptr->next;
+ SAFE_FREE(ptr);
+ ptr=next;
+ }
+ SAFE_FREE(list);
+}
+
+struct ssh_iterator *ssh_list_get_iterator(const struct ssh_list *list){
+ return list->root;
+}
+
+static struct ssh_iterator *ssh_iterator_new(const void *data){
+ struct ssh_iterator *iterator=malloc(sizeof(struct ssh_iterator));
+ if(!iterator)
+ return NULL;
+ iterator->next=NULL;
+ iterator->data=data;
+ return iterator;
+}
+
+int ssh_list_append(struct ssh_list *list,const void *data){
+ struct ssh_iterator *iterator=ssh_iterator_new(data);
+ if(!iterator)
+ return SSH_ERROR;
+ if(!list->end){
+ /* list is empty */
+ list->root=list->end=iterator;
+ } else {
+ /* put it on end of list */
+ list->end->next=iterator;
+ list->end=iterator;
+ }
+ return SSH_OK;
+}
+
+int ssh_list_prepend(struct ssh_list *list, const void *data){
+ struct ssh_iterator *it = ssh_iterator_new(data);
+
+ if (it == NULL) {
+ return SSH_ERROR;
+ }
+
+ if (list->end == NULL) {
+ /* list is empty */
+ list->root = list->end = it;
+ } else {
+ /* set as new root */
+ it->next = list->root;
+ list->root = it;
+ }
+
+ return SSH_OK;
+}
+
+void ssh_list_remove(struct ssh_list *list, struct ssh_iterator *iterator){
+ struct ssh_iterator *ptr,*prev;
+ prev=NULL;
+ ptr=list->root;
+ while(ptr && ptr != iterator){
+ prev=ptr;
+ ptr=ptr->next;
+ }
+ if(!ptr){
+ /* we did not find the element */
+ return;
+ }
+ /* unlink it */
+ if(prev)
+ prev->next=ptr->next;
+ /* if iterator was the head */
+ if(list->root == iterator)
+ list->root=iterator->next;
+ /* if iterator was the tail */
+ if(list->end == iterator)
+ list->end = prev;
+ SAFE_FREE(iterator);
+}
+
+/**
+ * @internal
+ *
+ * @brief Removes the top element of the list and returns the data value
+ * attached to it.
+ *
+ * @param[in[ list The ssh_list to remove the element.
+ *
+ * @returns A pointer to the element being stored in head, or NULL
+ * if the list is empty.
+ */
+const void *_ssh_list_pop_head(struct ssh_list *list){
+ struct ssh_iterator *iterator=list->root;
+ const void *data;
+ if(!list->root)
+ return NULL;
+ data=iterator->data;
+ list->root=iterator->next;
+ if(list->end==iterator)
+ list->end=NULL;
+ SAFE_FREE(iterator);
+ return data;
+}
+
+/**
+ * @brief Parse directory component.
+ *
+ * dirname breaks a null-terminated pathname string into a directory component.
+ * In the usual case, ssh_dirname() returns the string up to, but not including,
+ * the final '/'. Trailing '/' characters are not counted as part of the
+ * pathname. The caller must free the memory.
+ *
+ * @param[in] path The path to parse.
+ *
+ * @return The dirname of path or NULL if we can't allocate memory.
+ * If path does not contain a slash, c_dirname() returns
+ * the string ".". If path is the string "/", it returns
+ * the string "/". If path is NULL or an empty string,
+ * "." is returned.
+ */
+char *ssh_dirname (const char *path) {
+ char *new = NULL;
+ unsigned int len;
+
+ if (path == NULL || *path == '\0') {
+ return strdup(".");
+ }
+
+ len = strlen(path);
+
+ /* Remove trailing slashes */
+ while(len > 0 && path[len - 1] == '/') --len;
+
+ /* We have only slashes */
+ if (len == 0) {
+ return strdup("/");
+ }
+
+ /* goto next slash */
+ while(len > 0 && path[len - 1] != '/') --len;
+
+ if (len == 0) {
+ return strdup(".");
+ } else if (len == 1) {
+ return strdup("/");
+ }
+
+ /* Remove slashes again */
+ while(len > 0 && path[len - 1] == '/') --len;
+
+ new = malloc(len + 1);
+ if (new == NULL) {
+ return NULL;
+ }
+
+ strncpy(new, path, len);
+ new[len] = '\0';
+
+ return new;
+}
+
+/**
+ * @brief basename - parse filename component.
+ *
+ * basename breaks a null-terminated pathname string into a filename component.
+ * ssh_basename() returns the component following the final '/'. Trailing '/'
+ * characters are not counted as part of the pathname.
+ *
+ * @param[in] path The path to parse.
+ *
+ * @return The filename of path or NULL if we can't allocate
+ * memory. If path is a the string "/", basename returns
+ * the string "/". If path is NULL or an empty string,
+ * "." is returned.
+ */
+char *ssh_basename (const char *path) {
+ char *new = NULL;
+ const char *s;
+ unsigned int len;
+
+ if (path == NULL || *path == '\0') {
+ return strdup(".");
+ }
+
+ len = strlen(path);
+ /* Remove trailing slashes */
+ while(len > 0 && path[len - 1] == '/') --len;
+
+ /* We have only slashes */
+ if (len == 0) {
+ return strdup("/");
+ }
+
+ while(len > 0 && path[len - 1] != '/') --len;
+
+ if (len > 0) {
+ s = path + len;
+ len = strlen(s);
+
+ while(len > 0 && s[len - 1] == '/') --len;
+ } else {
+ return strdup(path);
+ }
+
+ new = malloc(len + 1);
+ if (new == NULL) {
+ return NULL;
+ }
+
+ strncpy(new, s, len);
+ new[len] = '\0';
+
+ return new;
+}
+
+/**
+ * @brief Attempts to create a directory with the given pathname.
+ *
+ * This is the portable version of mkdir, mode is ignored on Windows systems.
+ *
+ * @param[in] pathname The path name to create the directory.
+ *
+ * @param[in] mode The permissions to use.
+ *
+ * @return 0 on success, < 0 on error with errno set.
+ */
+int ssh_mkdir(const char *pathname, mode_t mode) {
+ int r;
+
+#ifdef _WIN32
+ r = _mkdir(pathname);
+#else
+ r = mkdir(pathname, mode);
+#endif
+
+ return r;
+}
+
+/**
+ * @brief Expand a directory starting with a tilde '~'
+ *
+ * @param[in] d The directory to expand.
+ *
+ * @return The expanded directory, NULL on error.
+ */
+char *ssh_path_expand_tilde(const char *d) {
+ char *h, *r;
+ const char *p;
+ size_t ld;
+ size_t lh = 0;
+
+ if (d[0] != '~') {
+ return strdup(d);
+ }
+ d++;
+
+ /* handle ~user/path */
+ p = strchr(d, '/');
+ if (p != NULL && p > d) {
+#ifdef _WIN32
+ return strdup(d);
+#else
+ struct passwd *pw;
+ size_t s = p - d;
+ char u[128];
+
+ if (s > sizeof(u)) {
+ return NULL;
+ }
+ memcpy(u, d, s);
+ u[s] = '\0';
+ pw = getpwnam(u);
+ if (pw == NULL) {
+ return NULL;
+ }
+ ld = strlen(p);
+ h = strdup(pw->pw_dir);
+#endif
+ } else {
+ ld = strlen(d);
+ p = (char *) d;
+ h = ssh_get_user_home_dir();
+ }
+ if (h == NULL) {
+ return NULL;
+ }
+ lh = strlen(h);
+
+ r = malloc(ld + lh + 1);
+ if (r == NULL) {
+ return NULL;
+ }
+
+ if (lh > 0) {
+ memcpy(r, h, lh);
+ }
+ memcpy(r + lh, p, ld + 1);
+
+ return r;
+}
+
+char *ssh_path_expand_escape(ssh_session session, const char *s) {
+#define MAX_BUF_SIZE 4096
+ char host[NI_MAXHOST];
+ char buf[MAX_BUF_SIZE];
+ char *r, *x = NULL;
+ const char *p;
+ size_t i, l;
+
+ r = ssh_path_expand_tilde(s);
+ if (r == NULL) {
+ ssh_set_error_oom(session);
+ return NULL;
+ }
+
+ if (strlen(r) > MAX_BUF_SIZE) {
+ ssh_set_error(session, SSH_FATAL, "string to expand too long");
+ free(r);
+ return NULL;
+ }
+
+ p = r;
+ buf[0] = '\0';
+
+ for (i = 0; *p != '\0'; p++) {
+ if (*p != '%') {
+ buf[i] = *p;
+ i++;
+ if (i > MAX_BUF_SIZE) {
+ return NULL;
+ }
+ buf[i] = '\0';
+ continue;
+ }
+
+ p++;
+ if (*p == '\0') {
+ break;
+ }
+
+ switch (*p) {
+ case 'd':
+ x = strdup(session->sshdir);
+ break;
+ case 'u':
+ x = ssh_get_local_username(session);
+ break;
+ case 'l':
+ if (gethostname(host, sizeof(host) == 0)) {
+ x = strdup(host);
+ }
+ break;
+ case 'h':
+ x = strdup(session->host);
+ break;
+ case 'r':
+ x = strdup(session->username);
+ break;
+ case 'p':
+ if (session->port < 65536) {
+ char tmp[6];
+
+ snprintf(tmp, sizeof(tmp), "%u", session->port);
+ x = strdup(tmp);
+ }
+ break;
+ default:
+ ssh_set_error(session, SSH_FATAL,
+ "Wrong escape sequence detected");
+ return NULL;
+ }
+
+ if (x == NULL) {
+ ssh_set_error_oom(session);
+ return NULL;
+ }
+
+ i += strlen(x);
+ if (i > MAX_BUF_SIZE) {
+ ssh_set_error(session, SSH_FATAL,
+ "String too long");
+ return NULL;
+ }
+ l = strlen(buf);
+ strcat(buf + l, x);
+ buf[i] = '\0';
+ SAFE_FREE(x);
+ }
+
+ free(r);
+ return strdup(buf);
+#undef MAX_BUF_SIZE
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/options.c b/src/options.c
new file mode 100644
index 0000000..9cbaf6f
--- /dev/null
+++ b/src/options.c
@@ -0,0 +1,1138 @@
+/*
+ * options.c - handle pre-connection options
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2008 by Aris Adamantiadis
+ * Copyright (c) 2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifndef _WIN32
+#include <pwd.h>
+#else
+#include <winsock2.h>
+#endif
+#include <sys/types.h>
+#include "libssh/priv.h"
+#include "libssh/session.h"
+#include "libssh/misc.h"
+#ifdef WITH_SERVER
+#include "libssh/server.h"
+#endif
+
+/**
+ * @addtogroup libssh_session
+ * @{
+ */
+
+/**
+ * @brief Duplicate the options of a session structure.
+ *
+ * If you make several sessions with the same options this is useful. You
+ * cannot use twice the same option structure in ssh_session_connect.
+ *
+ * @param src The session to use to copy the options.
+ *
+ * @param dest The session to copy the options to.
+ *
+ * @returns 0 on sucess, -1 on error with errno set.
+ *
+ * @see ssh_session_connect()
+ */
+int ssh_options_copy(ssh_session src, ssh_session *dest) {
+ ssh_session new;
+ int i;
+
+ if (src == NULL || dest == NULL || *dest == NULL) {
+ return -1;
+ }
+
+ new = *dest;
+
+ if (src->username) {
+ new->username = strdup(src->username);
+ if (new->username == NULL) {
+ return -1;
+ }
+ }
+
+ if (src->host) {
+ new->host = strdup(src->host);
+ if (new->host == NULL) {
+ return -1;
+ }
+ }
+
+ if (src->identity) {
+ struct ssh_iterator *it;
+
+ new->identity = ssh_list_new();
+ if (new->identity == NULL) {
+ return -1;
+ }
+
+ it = ssh_list_get_iterator(src->identity);
+ while (it) {
+ char *id;
+ int rc;
+
+ id = strdup((char *) it->data);
+ if (id == NULL) {
+ return -1;
+ }
+
+ rc = ssh_list_append(new->identity, id);
+ if (rc < 0) {
+ return -1;
+ }
+ it = it->next;
+ }
+ }
+
+ if (src->sshdir) {
+ new->sshdir = strdup(src->sshdir);
+ if (new->sshdir == NULL) {
+ return -1;
+ }
+ }
+
+ if (src->knownhosts) {
+ new->knownhosts = strdup(src->knownhosts);
+ if (new->knownhosts == NULL) {
+ return -1;
+ }
+ }
+
+ for (i = 0; i < 10; ++i) {
+ if (src->wanted_methods[i]) {
+ new->wanted_methods[i] = strdup(src->wanted_methods[i]);
+ if (new->wanted_methods[i] == NULL) {
+ return -1;
+ }
+ }
+ }
+
+ if(src->ProxyCommand) {
+ new->ProxyCommand = strdup(src->ProxyCommand);
+ if(new->ProxyCommand == NULL)
+ return -1;
+ }
+ new->fd = src->fd;
+ new->port = src->port;
+ new->callbacks = src->callbacks;
+ new->timeout = src->timeout;
+ new->timeout_usec = src->timeout_usec;
+ new->ssh2 = src->ssh2;
+ new->ssh1 = src->ssh1;
+ new->log_verbosity = src->log_verbosity;
+
+ return 0;
+}
+
+int ssh_options_set_algo(ssh_session session, int algo,
+ const char *list) {
+ if (!verify_existing_algo(algo, list)) {
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Setting method: no algorithm for method \"%s\" (%s)\n",
+ ssh_kex_nums[algo], list);
+ return -1;
+ }
+
+ SAFE_FREE(session->wanted_methods[algo]);
+ session->wanted_methods[algo] = strdup(list);
+ if (session->wanted_methods[algo] == NULL) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+
+ return 0;
+}
+
+/**
+ * @brief This function can set all possible ssh options.
+ *
+ * @param session An allocated ssh option structure.
+ *
+ * @param type The option type to set. This could be one of the
+ * following:
+ *
+ * - SSH_OPTIONS_HOST:
+ * The hostname or ip address to connect to (string).
+ *
+ * - SSH_OPTIONS_PORT:
+ * The port to connect to (integer).
+ *
+ * - SSH_OPTIONS_PORT_STR:
+ * The port to connect to (string).
+ *
+ * - SSH_OPTIONS_FD:
+ * The file descriptor to use (socket_t).\n
+ * \n
+ * If you wish to open the socket yourself for a reason
+ * or another, set the file descriptor. Don't forget to
+ * set the hostname as the hostname is used as a key in
+ * the known_host mechanism.
+ *
+ * - SSH_OPTIONS_BINDADDR:
+ * The address to bind the client to (string).
+ *
+ * - SSH_OPTIONS_USER:
+ * The username for authentication (string).\n
+ * \n
+ * If the value is NULL, the username is set to the
+ * default username.
+ *
+ * - SSH_OPTIONS_SSH_DIR:
+ * Set the ssh directory (format string).\n
+ * \n
+ * If the value is NULL, the directory is set to the
+ * default ssh directory.\n
+ * \n
+ * The ssh directory is used for files like known_hosts
+ * and identity (private and public key). It may include
+ * "%s" which will be replaced by the user home
+ * directory.
+ *
+ * - SSH_OPTIONS_KNOWNHOSTS:
+ * Set the known hosts file name (format string).\n
+ * \n
+ * If the value is NULL, the directory is set to the
+ * default known hosts file, normally
+ * ~/.ssh/known_hosts.\n
+ * \n
+ * The known hosts file is used to certify remote hosts
+ * are genuine. It may include "%s" which will be
+ * replaced by the user home directory.
+ *
+ * - SSH_OPTIONS_IDENTITY:
+ * Set the identity file name (format string).\n
+ * \n
+ * By default identity, id_dsa and id_rsa are checked.\n
+ * \n
+ * The identity file used authenticate with public key.
+ * It may include "%s" which will be replaced by the
+ * user home directory.
+ *
+ * - SSH_OPTIONS_TIMEOUT:
+ * Set a timeout for the connection in seconds (integer).
+ *
+ * - SSH_OPTIONS_TIMEOUT_USEC:
+ * Set a timeout for the connection in micro seconds
+ * (integer).
+ *
+ * - SSH_OPTIONS_SSH1:
+ * Allow or deny the connection to SSH1 servers
+ * (integer).
+ *
+ * - SSH_OPTIONS_SSH2:
+ * Allow or deny the connection to SSH2 servers
+ * (integer).
+ *
+ * - SSH_OPTIONS_LOG_VERBOSITY:
+ * Set the session logging verbosity (integer).\n
+ * \n
+ * The verbosity of the messages. Every log smaller or
+ * equal to verbosity will be shown.
+ * - SSH_LOG_NOLOG: No logging
+ * - SSH_LOG_RARE: Rare conditions or warnings
+ * - SSH_LOG_ENTRY: API-accessible entrypoints
+ * - SSH_LOG_PACKET: Packet id and size
+ * - SSH_LOG_FUNCTIONS: Function entering and leaving
+ *
+ * - SSH_OPTIONS_LOG_VERBOSITY_STR:
+ * Set the session logging verbosity (string).\n
+ * \n
+ * The verbosity of the messages. Every log smaller or
+ * equal to verbosity will be shown.
+ * - SSH_LOG_NOLOG: No logging
+ * - SSH_LOG_RARE: Rare conditions or warnings
+ * - SSH_LOG_ENTRY: API-accessible entrypoints
+ * - SSH_LOG_PACKET: Packet id and size
+ * - SSH_LOG_FUNCTIONS: Function entering and leaving
+ * \n
+ * See the corresponding numbers in libssh.h.
+ *
+ * - SSH_OPTTIONS_AUTH_CALLBACK:
+ * Set a callback to use your own authentication function
+ * (function pointer).
+ *
+ * - SSH_OPTTIONS_AUTH_USERDATA:
+ * Set the user data passed to the authentication
+ * function (generic pointer).
+ *
+ * - SSH_OPTTIONS_LOG_CALLBACK:
+ * Set a callback to use your own logging function
+ * (function pointer).
+ *
+ * - SSH_OPTTIONS_LOG_USERDATA:
+ * Set the user data passed to the logging function
+ * (generic pointer).
+ *
+ * - SSH_OPTTIONS_STATUS_CALLBACK:
+ * Set a callback to show connection status in realtime
+ * (function pointer).\n
+ * \n
+ * @code
+ * fn(void *arg, float status)
+ * @endcode
+ * \n
+ * During ssh_connect(), libssh will call the callback
+ * with status from 0.0 to 1.0.
+ *
+ * - SSH_OPTTIONS_STATUS_ARG:
+ * Set the status argument which should be passed to the
+ * status callback (generic pointer).
+ *
+ * - SSH_OPTIONS_CIPHERS_C_S:
+ * Set the symmetric cipher client to server (string,
+ * comma-separated list).
+ *
+ * - SSH_OPTIONS_CIPHERS_S_C:
+ * Set the symmetric cipher server to client (string,
+ * comma-separated list).
+ *
+ * - SSH_OPTIONS_COMPRESSION_C_S:
+ * Set the compression to use for client to server
+ * communication (string, "none" or "zlib").
+ *
+ * - SSH_OPTIONS_COMPRESSION_S_C:
+ * Set the compression to use for server to client
+ * communication (string, "none" or "zlib").
+ *
+ * - SSH_OPTIONS_HOSTKEYCHECK:
+ * Set the parameter StrictHostKeyChecking to avoid
+ * asking about a fingerprint
+ * - SSH_OPTIONS_PROXYCOMMAND:
+ * Set the command to be executed in order to connect to
+ * server.
+ *
+ * @param value The value to set. This is a generic pointer and the
+ * datatype which is used should be set according to the
+ * type set.
+ *
+ * @return 0 on success, < 0 on error.
+ */
+int ssh_options_set(ssh_session session, enum ssh_options_e type,
+ const void *value) {
+ char *p, *q;
+ long int i;
+ int rc;
+
+ if (session == NULL) {
+ return -1;
+ }
+
+ switch (type) {
+ case SSH_OPTIONS_HOST:
+ q = strdup(value);
+ if (q == NULL) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+ p = strchr(q, '@');
+
+ SAFE_FREE(session->host);
+
+ if (p) {
+ *p = '\0';
+ session->host = strdup(p + 1);
+ if (session->host == NULL) {
+ SAFE_FREE(q);
+ ssh_set_error_oom(session);
+ return -1;
+ }
+
+ SAFE_FREE(session->username);
+ session->username = strdup(q);
+ SAFE_FREE(q);
+ if (session->username == NULL) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+ } else {
+ session->host = q;
+ }
+ break;
+ case SSH_OPTIONS_PORT:
+ if (value == NULL) {
+ session->port = 22 & 0xffff;
+ } else {
+ int *x = (int *) value;
+
+ session->port = *x & 0xffff;
+ }
+ break;
+ case SSH_OPTIONS_PORT_STR:
+ if (value == NULL) {
+ session->port = 22 & 0xffff;
+ } else {
+ q = strdup(value);
+ if (q == NULL) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+ i = strtol(q, &p, 10);
+ if (q == p) {
+ SAFE_FREE(q);
+ }
+ SAFE_FREE(q);
+
+ session->port = i & 0xffff;
+ }
+ break;
+ case SSH_OPTIONS_FD:
+ if (value == NULL) {
+ session->fd = SSH_INVALID_SOCKET;
+ } else {
+ socket_t *x = (socket_t *) value;
+
+ session->fd = *x & 0xffff;
+ }
+ break;
+ case SSH_OPTIONS_BINDADDR:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ }
+ q = strdup(value);
+ if (q == NULL) {
+ return -1;
+ }
+ SAFE_FREE(session->bindaddr);
+ session->bindaddr = q;
+ break;
+ case SSH_OPTIONS_USER:
+ SAFE_FREE(session->username);
+ if (value == NULL) { /* set default username */
+ q = ssh_get_local_username(session);
+ if (q == NULL) {
+ return -1;
+ }
+ session->username = q;
+ } else { /* username provided */
+ session->username = strdup(value);
+ if (session->username == NULL) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+ }
+ break;
+ case SSH_OPTIONS_SSH_DIR:
+ if (value == NULL) {
+ SAFE_FREE(session->sshdir);
+
+ session->sshdir = ssh_path_expand_tilde("~/.ssh");
+ if (session->sshdir == NULL) {
+ return -1;
+ }
+ } else {
+ SAFE_FREE(session->sshdir);
+ session->sshdir = ssh_path_expand_tilde(value);
+ if (session->sshdir == NULL) {
+ return -1;
+ }
+ }
+ break;
+ case SSH_OPTIONS_IDENTITY:
+ case SSH_OPTIONS_ADD_IDENTITY:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ }
+ q = strdup(value);
+ if (q == NULL) {
+ return -1;
+ }
+ rc = ssh_list_prepend(session->identity, q);
+ if (rc < 0) {
+ return -1;
+ }
+ break;
+ case SSH_OPTIONS_KNOWNHOSTS:
+ if (value == NULL) {
+ SAFE_FREE(session->knownhosts);
+ if (session->sshdir == NULL) {
+ return -1;
+ }
+ session->knownhosts = ssh_path_expand_escape(session, "%d/known_hosts");
+ if (session->knownhosts == NULL) {
+ return -1;
+ }
+ } else {
+ SAFE_FREE(session->knownhosts);
+ session->knownhosts = strdup(value);
+ if (session->knownhosts == NULL) {
+ return -1;
+ }
+ }
+ break;
+ case SSH_OPTIONS_TIMEOUT:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ } else {
+ long *x = (long *) value;
+
+ session->timeout = *x & 0xffffffff;
+ }
+ break;
+ case SSH_OPTIONS_TIMEOUT_USEC:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ } else {
+ long *x = (long *) value;
+
+ session->timeout_usec = *x & 0xffffffff;
+ }
+ break;
+ case SSH_OPTIONS_SSH1:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ } else {
+ int *x = (int *) value;
+ session->ssh1 = *x;
+ }
+ break;
+ case SSH_OPTIONS_SSH2:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ } else {
+ int *x = (int *) value;
+ session->ssh2 = *x & 0xffff;
+ }
+ break;
+ case SSH_OPTIONS_LOG_VERBOSITY:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ } else {
+ int *x = (int *) value;
+
+ session->log_verbosity = *x & 0xffff;
+ }
+ break;
+ case SSH_OPTIONS_LOG_VERBOSITY_STR:
+ if (value == NULL) {
+ session->log_verbosity = 0 & 0xffff;
+ } else {
+ q = strdup(value);
+ if (q == NULL) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+ i = strtol(q, &p, 10);
+ if (q == p) {
+ SAFE_FREE(q);
+ }
+ SAFE_FREE(q);
+
+ session->log_verbosity = i & 0xffff;
+ }
+ break;
+ case SSH_OPTIONS_CIPHERS_C_S:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ } else {
+ if (ssh_options_set_algo(session, SSH_CRYPT_C_S, value) < 0)
+ return -1;
+ }
+ break;
+ case SSH_OPTIONS_CIPHERS_S_C:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ } else {
+ if (ssh_options_set_algo(session, SSH_CRYPT_S_C, value) < 0)
+ return -1;
+ }
+ break;
+ case SSH_OPTIONS_COMPRESSION_C_S:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ } else {
+ if (ssh_options_set_algo(session, SSH_COMP_C_S, value) < 0)
+ return -1;
+ }
+ break;
+ case SSH_OPTIONS_COMPRESSION_S_C:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ } else {
+ if (ssh_options_set_algo(session, SSH_COMP_S_C, value) < 0)
+ return -1;
+ }
+ break;
+ case SSH_OPTIONS_HOSTKEYCHECK:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ } else {
+ session->StrictHostKeyChecking = *(int*)value;
+ }
+ break;
+ case SSH_OPTIONS_PROXYCOMMAND:
+ if (value == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ } else {
+ SAFE_FREE(session->ProxyCommand);
+ q = strdup(value);
+ if (q == NULL) {
+ return -1;
+ }
+ session->ProxyCommand = q;
+ }
+ break;
+ default:
+ ssh_set_error(session, SSH_REQUEST_DENIED, "Unknown ssh option %d", type);
+ return -1;
+ break;
+ }
+
+ return 0;
+}
+
+
+/**
+ * @brief Parse command line arguments.
+ *
+ * This is a helper for your application to generate the appropriate
+ * options from the command line arguments.\n
+ * The argv array and argc value are changed so that the parsed
+ * arguments wont appear anymore in them.\n
+ * The single arguments (without switches) are not parsed. thus,
+ * myssh -l user localhost\n
+ * The command wont set the hostname value of options to localhost.
+ *
+ * @param session The session to configure.
+ *
+ * @param argcptr The pointer to the argument count.
+ *
+ * @param argv The arguments list pointer.
+ *
+ * @returns 0 on success, < 0 on error.
+ *
+ * @see ssh_session_new()
+ */
+int ssh_options_getopt(ssh_session session, int *argcptr, char **argv) {
+ char *user = NULL;
+ char *cipher = NULL;
+ char *localaddr = NULL;
+ char *identity = NULL;
+ char *port = NULL;
+ char *bindport = NULL;
+ char **save = NULL;
+ int i = 0;
+ int argc = *argcptr;
+ int debuglevel = 0;
+ int usersa = 0;
+ int usedss = 0;
+ int compress = 0;
+ int cont = 1;
+ int current = 0;
+#ifdef WITH_SSH1
+ int ssh1 = 1;
+#else
+ int ssh1 = 0;
+#endif
+ int ssh2 = 1;
+#ifdef _MSC_VER
+ /* Not supported with a Microsoft compiler */
+ return -1;
+#else
+ int saveoptind = optind; /* need to save 'em */
+ int saveopterr = opterr;
+
+ save = malloc(argc * sizeof(char *));
+ if (save == NULL) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+
+ opterr = 0; /* shut up getopt */
+ while(cont && ((i = getopt(argc, argv, "c:i:Cl:p:vb:t:rd12")) != -1)) {
+ switch(i) {
+ case 'l':
+ user = optarg;
+ break;
+ case 'p':
+ port = optarg;
+ break;
+ case 't':
+ bindport = optarg;
+ break;
+ case 'v':
+ debuglevel++;
+ break;
+ case 'r':
+ usersa++;
+ break;
+ case 'd':
+ usedss++;
+ break;
+ case 'c':
+ cipher = optarg;
+ break;
+ case 'i':
+ identity = optarg;
+ break;
+ case 'b':
+ localaddr = optarg;
+ break;
+ case 'C':
+ compress++;
+ break;
+ case '2':
+ ssh2 = 1;
+ ssh1 = 0;
+ break;
+ case '1':
+ ssh2 = 0;
+ ssh1 = 1;
+ break;
+ default:
+ {
+ char opt[3]="- ";
+ opt[1] = optopt;
+ save[current] = strdup(opt);
+ if (save[current] == NULL) {
+ SAFE_FREE(save);
+ ssh_set_error_oom(session);
+ return -1;
+ }
+ current++;
+ if (optarg) {
+ save[current++] = argv[optind + 1];
+ }
+ }
+ } /* switch */
+ } /* while */
+ opterr = saveopterr;
+ while (optind < argc) {
+ save[current++] = argv[optind++];
+ }
+
+ if (usersa && usedss) {
+ ssh_set_error(session, SSH_FATAL, "Either RSA or DSS must be chosen");
+ cont = 0;
+ }
+
+ ssh_options_set(session, SSH_OPTIONS_LOG_VERBOSITY, &debuglevel);
+
+ optind = saveoptind;
+
+ if(!cont) {
+ SAFE_FREE(save);
+ return -1;
+ }
+
+ /* first recopy the save vector into the original's */
+ for (i = 0; i < current; i++) {
+ /* don't erase argv[0] */
+ argv[ i + 1] = save[i];
+ }
+ argv[current + 1] = NULL;
+ *argcptr = current + 1;
+ SAFE_FREE(save);
+
+ /* set a new option struct */
+ if (compress) {
+ if (ssh_options_set(session, SSH_OPTIONS_COMPRESSION_C_S, "zlib,none") < 0) {
+ cont = 0;
+ }
+ if (ssh_options_set(session, SSH_OPTIONS_COMPRESSION_S_C, "zlib,none") < 0) {
+ cont = 0;
+ }
+ }
+
+ if (cont && cipher) {
+ if (ssh_options_set(session, SSH_OPTIONS_CIPHERS_C_S, cipher) < 0) {
+ cont = 0;
+ }
+ if (cont && ssh_options_set(session, SSH_OPTIONS_CIPHERS_S_C, cipher) < 0) {
+ cont = 0;
+ }
+ }
+
+ if (cont && user) {
+ if (ssh_options_set(session, SSH_OPTIONS_USER, user) < 0) {
+ cont = 0;
+ }
+ }
+
+ if (cont && identity) {
+ if (ssh_options_set(session, SSH_OPTIONS_IDENTITY, identity) < 0) {
+ cont = 0;
+ }
+ }
+
+ ssh_options_set(session, SSH_OPTIONS_PORT_STR, port);
+
+ ssh_options_set(session, SSH_OPTIONS_SSH1, &ssh1);
+ ssh_options_set(session, SSH_OPTIONS_SSH2, &ssh2);
+
+ if (!cont) {
+ return SSH_ERROR;
+ }
+
+ return SSH_OK;
+#endif
+}
+
+/**
+ * @brief Parse the ssh config file.
+ *
+ * This should be the last call of all options, it may overwrite options which
+ * are already set. It requires that the host name is already set with
+ * ssh_options_set_host().
+ *
+ * @param session SSH session handle
+ *
+ * @param filename The options file to use, if NULL the default
+ * ~/.ssh/config will be used.
+ *
+ * @return 0 on success, < 0 on error.
+ *
+ * @see ssh_options_set_host()
+ */
+int ssh_options_parse_config(ssh_session session, const char *filename) {
+ char *expanded_filename;
+ int r;
+
+ if (session == NULL) {
+ return -1;
+ }
+ if (session->host == NULL) {
+ ssh_set_error_invalid(session, __FUNCTION__);
+ return -1;
+ }
+
+ if (session->sshdir == NULL) {
+ r = ssh_options_set(session, SSH_OPTIONS_SSH_DIR, NULL);
+ if (r < 0) {
+ ssh_set_error_oom(session);
+ return -1;
+ }
+ }
+
+ /* set default filename */
+ if (filename == NULL) {
+ expanded_filename = ssh_path_expand_escape(session, "%d/config");
+ } else {
+ expanded_filename = ssh_path_expand_escape(session, filename);
+ }
+ if (expanded_filename == NULL) {
+ return -1;
+ }
+
+ r = ssh_config_parse_file(session, expanded_filename);
+ if (r < 0) {
+ goto out;
+ }
+ if (filename == NULL) {
+ r = ssh_config_parse_file(session, "/etc/ssh/ssh_config");
+ }
+
+out:
+ free(expanded_filename);
+ return r;
+}
+
+int ssh_options_apply(ssh_session session) {
+ struct ssh_iterator *it;
+ char *tmp;
+ int rc;
+
+ if (session->sshdir == NULL) {
+ rc = ssh_options_set(session, SSH_OPTIONS_SSH_DIR, NULL);
+ if (rc < 0) {
+ return -1;
+ }
+ }
+
+ if (session->username == NULL) {
+ rc = ssh_options_set(session, SSH_OPTIONS_USER, NULL);
+ if (rc < 0) {
+ return -1;
+ }
+ }
+
+ if (session->knownhosts == NULL) {
+ tmp = ssh_path_expand_escape(session, "%d/known_hosts");
+ } else {
+ tmp = ssh_path_expand_escape(session, session->knownhosts);
+ }
+ if (tmp == NULL) {
+ return -1;
+ }
+ free(session->knownhosts);
+ session->knownhosts = tmp;
+
+ if (session->ProxyCommand != NULL) {
+ tmp = ssh_path_expand_escape(session, session->ProxyCommand);
+ if (tmp == NULL) {
+ return -1;
+ }
+ free(session->ProxyCommand);
+ session->ProxyCommand = tmp;
+ }
+
+ for (it = ssh_list_get_iterator(session->identity);
+ it != NULL;
+ it = it->next) {
+ char *id = (char *) it->data;
+ tmp = ssh_path_expand_escape(session, id);
+ if (tmp == NULL) {
+ return -1;
+ }
+ free(id);
+ it->data = tmp;
+ }
+
+ return 0;
+}
+
+/** @} */
+
+#ifdef WITH_SERVER
+/**
+ * @addtogroup libssh_server
+ * @{
+ */
+static int ssh_bind_options_set_algo(ssh_bind sshbind, int algo,
+ const char *list) {
+ if (!verify_existing_algo(algo, list)) {
+ ssh_set_error(sshbind, SSH_REQUEST_DENIED,
+ "Setting method: no algorithm for method \"%s\" (%s)\n",
+ ssh_kex_nums[algo], list);
+ return -1;
+ }
+
+ SAFE_FREE(sshbind->wanted_methods[algo]);
+ sshbind->wanted_methods[algo] = strdup(list);
+ if (sshbind->wanted_methods[algo] == NULL) {
+ ssh_set_error_oom(sshbind);
+ return -1;
+ }
+
+ return 0;
+}
+
+/**
+ * @brief This function can set all possible ssh bind options.
+ *
+ * @param session An allocated ssh option structure.
+ *
+ * @param type The option type to set. This could be one of the
+ * following:
+ *
+ * SSH_BIND_OPTIONS_LOG_VERBOSITY:
+ * Set the session logging verbosity (integer).
+ *
+ * The verbosity of the messages. Every log smaller or
+ * equal to verbosity will be shown.
+ * SSH_LOG_NOLOG: No logging
+ * SSH_LOG_RARE: Rare conditions or warnings
+ * SSH_LOG_ENTRY: API-accessible entrypoints
+ * SSH_LOG_PACKET: Packet id and size
+ * SSH_LOG_FUNCTIONS: Function entering and leaving
+ *
+ * SSH_BIND_OPTIONS_LOG_VERBOSITY_STR:
+ * Set the session logging verbosity (integer).
+ *
+ * The verbosity of the messages. Every log smaller or
+ * equal to verbosity will be shown.
+ * SSH_LOG_NOLOG: No logging
+ * SSH_LOG_RARE: Rare conditions or warnings
+ * SSH_LOG_ENTRY: API-accessible entrypoints
+ * SSH_LOG_PACKET: Packet id and size
+ * SSH_LOG_FUNCTIONS: Function entering and leaving
+ *
+ * SSH_BIND_OPTIONS_BINDADDR:
+ * Set the bind address.
+ *
+ * SSH_BIND_OPTIONS_BINDPORT:
+ * Set the bind port, default is 22.
+ *
+ * SSH_BIND_OPTIONS_HOSTKEY:
+ * Set the server public key type: ssh-rsa or ssh-dss
+ * (string).
+ *
+ * SSH_BIND_OPTIONS_DSAKEY:
+ * Set the path to the dsa ssh host key (string).
+ *
+ * SSH_BIND_OPTIONS_RSAKEY:
+ * Set the path to the ssh host rsa key (string).
+ *
+ * SSH_BIND_OPTIONS_BANNER:
+ * Set the server banner sent to clients (string).
+ *
+ * @param value The value to set. This is a generic pointer and the
+ * datatype which is used should be set according to the
+ * type set.
+ *
+ * @return 0 on success, < 0 on error.
+ */
+int ssh_bind_options_set(ssh_bind sshbind, enum ssh_bind_options_e type,
+ const void *value) {
+ char *p, *q;
+ int i;
+
+ if (sshbind == NULL) {
+ return -1;
+ }
+
+ switch (type) {
+ case SSH_BIND_OPTIONS_HOSTKEY:
+ if (value == NULL) {
+ ssh_set_error_invalid(sshbind, __FUNCTION__);
+ return -1;
+ } else {
+ if (ssh_bind_options_set_algo(sshbind, SSH_HOSTKEYS, value) < 0)
+ return -1;
+ }
+ break;
+ case SSH_BIND_OPTIONS_BINDADDR:
+ if (value == NULL) {
+ ssh_set_error_invalid(sshbind, __FUNCTION__);
+ return -1;
+ } else {
+ SAFE_FREE(sshbind->bindaddr);
+ sshbind->bindaddr = strdup(value);
+ if (sshbind->bindaddr == NULL) {
+ ssh_set_error_oom(sshbind);
+ return -1;
+ }
+ }
+ break;
+ case SSH_BIND_OPTIONS_BINDPORT:
+ if (value == NULL) {
+ ssh_set_error_invalid(sshbind, __FUNCTION__);
+ return -1;
+ } else {
+ int *x = (int *) value;
+ sshbind->bindport = *x & 0xffff;
+ }
+ break;
+ case SSH_BIND_OPTIONS_BINDPORT_STR:
+ if (value == NULL) {
+ sshbind->bindport = 22 & 0xffff;
+ } else {
+ q = strdup(value);
+ if (q == NULL) {
+ ssh_set_error_oom(sshbind);
+ return -1;
+ }
+ i = strtol(q, &p, 10);
+ if (q == p) {
+ SAFE_FREE(q);
+ }
+ SAFE_FREE(q);
+
+ sshbind->bindport = i & 0xffff;
+ }
+ break;
+ case SSH_BIND_OPTIONS_LOG_VERBOSITY:
+ if (value == NULL) {
+ ssh_set_error_invalid(sshbind, __FUNCTION__);
+ return -1;
+ } else {
+ int *x = (int *) value;
+ sshbind->log_verbosity = *x & 0xffff;
+ }
+ break;
+ case SSH_BIND_OPTIONS_LOG_VERBOSITY_STR:
+ if (value == NULL) {
+ sshbind->log_verbosity = 0;
+ } else {
+ q = strdup(value);
+ if (q == NULL) {
+ ssh_set_error_oom(sshbind);
+ return -1;
+ }
+ i = strtol(q, &p, 10);
+ if (q == p) {
+ SAFE_FREE(q);
+ }
+ SAFE_FREE(q);
+
+ sshbind->log_verbosity = i & 0xffff;
+ }
+ break;
+ case SSH_BIND_OPTIONS_DSAKEY:
+ if (value == NULL) {
+ ssh_set_error_invalid(sshbind, __FUNCTION__);
+ return -1;
+ } else {
+ SAFE_FREE(sshbind->dsakey);
+ sshbind->dsakey = strdup(value);
+ if (sshbind->dsakey == NULL) {
+ ssh_set_error_oom(sshbind);
+ return -1;
+ }
+ }
+ break;
+ case SSH_BIND_OPTIONS_RSAKEY:
+ if (value == NULL) {
+ ssh_set_error_invalid(sshbind, __FUNCTION__);
+ return -1;
+ } else {
+ SAFE_FREE(sshbind->rsakey);
+ sshbind->rsakey = strdup(value);
+ if (sshbind->rsakey == NULL) {
+ ssh_set_error_oom(sshbind);
+ return -1;
+ }
+ }
+ break;
+ case SSH_BIND_OPTIONS_BANNER:
+ if (value == NULL) {
+ ssh_set_error_invalid(sshbind, __FUNCTION__);
+ return -1;
+ } else {
+ SAFE_FREE(sshbind->banner);
+ sshbind->banner = strdup(value);
+ if (sshbind->banner == NULL) {
+ ssh_set_error_oom(sshbind);
+ return -1;
+ }
+ }
+ break;
+ default:
+ ssh_set_error(sshbind, SSH_REQUEST_DENIED, "Unknown ssh option %d", type);
+ return -1;
+ break;
+ }
+
+ return 0;
+}
+#endif
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/packet.c b/src/packet.c
new file mode 100644
index 0000000..a97db93
--- /dev/null
+++ b/src/packet.c
@@ -0,0 +1,529 @@
+/*
+ * packet.c - packet building functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2008 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/priv.h"
+#include "libssh/ssh2.h"
+#include "libssh/crypto.h"
+#include "libssh/buffer.h"
+#include "libssh/packet.h"
+#include "libssh/socket.h"
+#include "libssh/channels.h"
+#include "libssh/misc.h"
+#include "libssh/session.h"
+#include "libssh/messages.h"
+#include "libssh/pcap.h"
+#include "libssh/kex.h"
+#include "libssh/auth.h"
+
+ssh_packet_callback default_packet_handlers[]= {
+ ssh_packet_disconnect_callback, // SSH2_MSG_DISCONNECT 1
+ ssh_packet_ignore_callback, // SSH2_MSG_IGNORE 2
+ ssh_packet_unimplemented, // SSH2_MSG_UNIMPLEMENTED 3
+ ssh_packet_ignore_callback, // SSH2_MSG_DEBUG 4
+ ssh_packet_service_request, // SSH2_MSG_SERVICE_REQUEST 5
+ ssh_packet_service_accept, // SSH2_MSG_SERVICE_ACCEPT 6
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, // 7-19
+ ssh_packet_kexinit, // SSH2_MSG_KEXINIT 20
+ ssh_packet_newkeys, // SSH2_MSG_NEWKEYS 21
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, // 22-29
+#if WITH_SERVER
+ ssh_packet_kexdh_init, // SSH2_MSG_KEXDH_INIT 30
+ // SSH2_MSG_KEX_DH_GEX_REQUEST_OLD 30
+#else
+ NULL,
+#endif
+ ssh_packet_dh_reply, // SSH2_MSG_KEXDH_REPLY 31
+ // SSH2_MSG_KEX_DH_GEX_GROUP 31
+ NULL, // SSH2_MSG_KEX_DH_GEX_INIT 32
+ NULL, // SSH2_MSG_KEX_DH_GEX_REPLY 33
+ NULL, // SSH2_MSG_KEX_DH_GEX_REQUEST 34
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, // 35-49
+ ssh_packet_userauth_request, // SSH2_MSG_USERAUTH_REQUEST 50
+ ssh_packet_userauth_failure, // SSH2_MSG_USERAUTH_FAILURE 51
+ ssh_packet_userauth_success, // SSH2_MSG_USERAUTH_SUCCESS 52
+ ssh_packet_userauth_banner, // SSH2_MSG_USERAUTH_BANNER 53
+ NULL,NULL,NULL,NULL,NULL,NULL, // 54-59
+ ssh_packet_userauth_pk_ok, // SSH2_MSG_USERAUTH_PK_OK 60
+ // SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ 60
+ // SSH2_MSG_USERAUTH_INFO_REQUEST 60
+ NULL, // SSH2_MSG_USERAUTH_INFO_RESPONSE 61
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, // 62-79
+ NULL, // SSH2_MSG_GLOBAL_REQUEST 80
+ ssh_request_success, // SSH2_MSG_REQUEST_SUCCESS 81
+ ssh_request_denied, // SSH2_MSG_REQUEST_FAILURE 82
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,// 83-89
+ ssh_packet_channel_open, // SSH2_MSG_CHANNEL_OPEN 90
+ ssh_packet_channel_open_conf, // SSH2_MSG_CHANNEL_OPEN_CONFIRMATION 91
+ ssh_packet_channel_open_fail, // SSH2_MSG_CHANNEL_OPEN_FAILURE 92
+ channel_rcv_change_window, // SSH2_MSG_CHANNEL_WINDOW_ADJUST 93
+ channel_rcv_data, // SSH2_MSG_CHANNEL_DATA 94
+ channel_rcv_data, // SSH2_MSG_CHANNEL_EXTENDED_DATA 95
+ channel_rcv_eof, // SSH2_MSG_CHANNEL_EOF 96
+ channel_rcv_close, // SSH2_MSG_CHANNEL_CLOSE 97
+ channel_rcv_request, // SSH2_MSG_CHANNEL_REQUEST 98
+ ssh_packet_channel_success, // SSH2_MSG_CHANNEL_SUCCESS 99
+ ssh_packet_channel_failure, // SSH2_MSG_CHANNEL_FAILURE 100
+};
+
+/* XXX include selected mac size */
+static int macsize=SHA_DIGEST_LEN;
+
+/* in nonblocking mode, socket_read will read as much as it can, and return */
+/* SSH_OK if it has read at least len bytes, otherwise, SSH_AGAIN. */
+/* in blocking mode, it will read at least len bytes and will block until it's ok. */
+
+/** @internal
+ * @handles a data received event. It then calls the handlers for the different packet types
+ * or and exception handler callback.
+ * @param user pointer to current ssh_session
+ * @param data pointer to the data received
+ * @len length of data received. It might not be enough for a complete packet
+ * @returns number of bytes read and processed.
+ */
+int ssh_packet_socket_callback(const void *data, size_t receivedlen, void *user){
+ ssh_session session=(ssh_session) user;
+ unsigned int blocksize = (session->current_crypto ?
+ session->current_crypto->in_cipher->blocksize : 8);
+ int current_macsize = session->current_crypto ? macsize : 0;
+ unsigned char mac[30] = {0};
+ char buffer[16] = {0};
+ void *packet=NULL;
+ int to_be_read;
+ int rc;
+ uint32_t len;
+ uint8_t padding;
+ size_t processed=0; /* number of byte processed from the callback */
+
+ enter_function();
+
+ switch(session->packet_state) {
+ case PACKET_STATE_INIT:
+ if(receivedlen < blocksize){
+ /* We didn't receive enough data to read at least one block size, give up */
+ leave_function();
+ return 0;
+ }
+ memset(&session->in_packet, 0, sizeof(PACKET));
+
+ if (session->in_buffer) {
+ if (buffer_reinit(session->in_buffer) < 0) {
+ goto error;
+ }
+ } else {
+ session->in_buffer = ssh_buffer_new();
+ if (session->in_buffer == NULL) {
+ goto error;
+ }
+ }
+
+ memcpy(buffer,data,blocksize);
+ processed += blocksize;
+ len = packet_decrypt_len(session, buffer);
+
+ if (buffer_add_data(session->in_buffer, buffer, blocksize) < 0) {
+ goto error;
+ }
+
+ if(len > MAX_PACKET_LEN) {
+ ssh_set_error(session, SSH_FATAL,
+ "read_packet(): Packet len too high(%u %.4x)", len, len);
+ goto error;
+ }
+
+ to_be_read = len - blocksize + sizeof(uint32_t);
+ if (to_be_read < 0) {
+ /* remote sshd sends invalid sizes? */
+ ssh_set_error(session, SSH_FATAL,
+ "given numbers of bytes left to be read < 0 (%d)!", to_be_read);
+ goto error;
+ }
+
+ /* saves the status of the current operations */
+ session->in_packet.len = len;
+ session->packet_state = PACKET_STATE_SIZEREAD;
+ case PACKET_STATE_SIZEREAD:
+ len = session->in_packet.len;
+ to_be_read = len - blocksize + sizeof(uint32_t) + current_macsize;
+ /* if to_be_read is zero, the whole packet was blocksize bytes. */
+ if (to_be_read != 0) {
+ if(receivedlen - processed < (unsigned int)to_be_read){
+ /* give up, not enough data in buffer */
+ return processed;
+ }
+
+ packet = (unsigned char *)data + processed;
+// ssh_socket_read(session->socket,packet,to_be_read-current_macsize);
+
+ ssh_log(session,SSH_LOG_PACKET,"Read a %d bytes packet",len);
+
+ if (buffer_add_data(session->in_buffer, packet,
+ to_be_read - current_macsize) < 0) {
+ goto error;
+ }
+ processed += to_be_read - current_macsize;
+ }
+
+ if (session->current_crypto) {
+ /*
+ * decrypt the rest of the packet (blocksize bytes already
+ * have been decrypted)
+ */
+ if (packet_decrypt(session,
+ ((uint8_t*)ssh_buffer_get_begin(session->in_buffer) + blocksize),
+ ssh_buffer_get_len(session->in_buffer) - blocksize) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Decrypt error");
+ goto error;
+ }
+ /* copy the last part from the incoming buffer */
+ memcpy(mac,(unsigned char *)packet + to_be_read - current_macsize, macsize);
+
+ if (packet_hmac_verify(session, session->in_buffer, mac) < 0) {
+ ssh_set_error(session, SSH_FATAL, "HMAC error");
+ goto error;
+ }
+ processed += current_macsize;
+ }
+
+ /* skip the size field which has been processed before */
+ buffer_pass_bytes(session->in_buffer, sizeof(uint32_t));
+
+ if (buffer_get_u8(session->in_buffer, &padding) == 0) {
+ ssh_set_error(session, SSH_FATAL, "Packet too short to read padding");
+ goto error;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "%hhd bytes padding, %d bytes left in buffer",
+ padding, buffer_get_rest_len(session->in_buffer));
+
+ if (padding > buffer_get_rest_len(session->in_buffer)) {
+ ssh_set_error(session, SSH_FATAL,
+ "Invalid padding: %d (%d resting)",
+ padding,
+ buffer_get_rest_len(session->in_buffer));
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("incrimined packet",
+ ssh_buffer_get_begin(session->in_buffer),
+ ssh_buffer_get_len(session->in_buffer));
+#endif
+ goto error;
+ }
+ buffer_pass_bytes_end(session->in_buffer, padding);
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "After padding, %d bytes left in buffer",
+ buffer_get_rest_len(session->in_buffer));
+#if defined(HAVE_LIBZ) && defined(WITH_LIBZ)
+ if (session->current_crypto && session->current_crypto->do_compress_in) {
+ ssh_log(session, SSH_LOG_PACKET, "Decompressing in_buffer ...");
+ if (decompress_buffer(session, session->in_buffer,MAX_PACKET_LEN) < 0) {
+ goto error;
+ }
+ }
+#endif
+ session->recv_seq++;
+ /* We don't want to rewrite a new packet while still executing the packet callbacks */
+ session->packet_state = PACKET_STATE_PROCESSING;
+ ssh_packet_parse_type(session);
+ /* execute callbacks */
+ ssh_packet_process(session, session->in_packet.type);
+ session->packet_state = PACKET_STATE_INIT;
+ if(processed < receivedlen){
+ /* Handle a potential packet left in socket buffer */
+ ssh_log(session,SSH_LOG_PACKET,"Processing %" PRIdS " bytes left in socket buffer",
+ receivedlen-processed);
+ rc = ssh_packet_socket_callback((char *)data + processed,
+ receivedlen - processed,user);
+ processed += rc;
+ }
+ leave_function();
+ return processed;
+ case PACKET_STATE_PROCESSING:
+ ssh_log(session, SSH_LOG_RARE, "Nested packet processing. Delaying.");
+ return 0;
+ }
+
+ ssh_set_error(session, SSH_FATAL,
+ "Invalid state into packet_read2(): %d",
+ session->packet_state);
+
+error:
+ leave_function();
+ return processed;
+}
+
+void ssh_packet_register_socket_callback(ssh_session session, ssh_socket s){
+ session->socket_callbacks.data=ssh_packet_socket_callback;
+ session->socket_callbacks.connected=NULL;
+ session->socket_callbacks.controlflow=NULL;
+ session->socket_callbacks.exception=NULL;
+ session->socket_callbacks.userdata=session;
+ ssh_socket_set_callbacks(s,&session->socket_callbacks);
+}
+
+/** @internal
+ * @brief sets the callbacks for the packet layer
+ */
+void ssh_packet_set_callbacks(ssh_session session, ssh_packet_callbacks callbacks){
+ if(session->packet_callbacks == NULL){
+ session->packet_callbacks = ssh_list_new();
+ }
+ ssh_list_append(session->packet_callbacks, callbacks);
+}
+
+/** @internal
+ * @brief sets the default packet handlers
+ */
+void ssh_packet_set_default_callbacks(ssh_session session){
+#ifdef WITH_SSH1
+ if(session->version==1){
+ ssh_packet_set_default_callbacks1(session);
+ return;
+ }
+#endif
+ session->default_packet_callbacks.start=1;
+ session->default_packet_callbacks.n_callbacks=sizeof(default_packet_handlers)/sizeof(ssh_packet_callback);
+ session->default_packet_callbacks.user=session;
+ session->default_packet_callbacks.callbacks=default_packet_handlers;
+ ssh_packet_set_callbacks(session, &session->default_packet_callbacks);
+}
+
+/** @internal
+ * @brief dispatch the call of packet handlers callbacks for a received packet
+ * @param type type of packet
+ */
+void ssh_packet_process(ssh_session session, uint8_t type){
+ struct ssh_iterator *i;
+ int r=SSH_PACKET_NOT_USED;
+ ssh_packet_callbacks cb;
+ enter_function();
+ ssh_log(session,SSH_LOG_PACKET, "Dispatching handler for packet type %d",type);
+ if(session->packet_callbacks == NULL){
+ ssh_log(session,SSH_LOG_RARE,"Packet callback is not initialized !");
+ goto error;
+ }
+ i=ssh_list_get_iterator(session->packet_callbacks);
+ while(i != NULL){
+ cb=ssh_iterator_value(ssh_packet_callbacks,i);
+ i=i->next;
+ if(!cb)
+ continue;
+ if(cb->start > type)
+ continue;
+ if(cb->start + cb->n_callbacks <= type)
+ continue;
+ if(cb->callbacks[type - cb->start]==NULL)
+ continue;
+ r=cb->callbacks[type - cb->start](session,type,session->in_buffer,cb->user);
+ if(r==SSH_PACKET_USED)
+ break;
+ }
+ if(r==SSH_PACKET_NOT_USED){
+ ssh_log(session,SSH_LOG_RARE,"Couldn't do anything with packet type %d",type);
+ ssh_packet_send_unimplemented(session, session->recv_seq-1);
+ }
+error:
+ leave_function();
+}
+
+/** @internal
+ * @brief sends a SSH_MSG_UNIMPLEMENTED answer to an unhandled packet
+ * @param session the SSH session
+ * @param seqnum the sequence number of the unknown packet
+ * @return SSH_ERROR on error, else SSH_OK
+ */
+int ssh_packet_send_unimplemented(ssh_session session, uint32_t seqnum){
+ int r;
+ enter_function();
+ buffer_add_u8(session->out_buffer, SSH2_MSG_UNIMPLEMENTED);
+ buffer_add_u32(session->out_buffer, htonl(seqnum));
+ r = packet_send(session);
+ leave_function();
+ return r;
+}
+
+/** @internal
+ * @brief handles a SSH_MSG_UNIMPLEMENTED packet
+ */
+SSH_PACKET_CALLBACK(ssh_packet_unimplemented){
+ uint32_t seq;
+ (void)type;
+ (void)user;
+ buffer_get_u32(packet,&seq);
+ seq=ntohl(seq);
+ ssh_log(session,SSH_LOG_RARE,
+ "Received SSH_MSG_UNIMPLEMENTED (sequence number %d)",seq);
+ return SSH_PACKET_USED;
+}
+
+/** @internal
+ * @parse the "Type" header field of a packet and updates the session
+ */
+int ssh_packet_parse_type(ssh_session session) {
+ enter_function();
+
+ memset(&session->in_packet, 0, sizeof(PACKET));
+ if(session->in_buffer == NULL) {
+ leave_function();
+ return SSH_ERROR;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET, "Final size %d",
+ buffer_get_rest_len(session->in_buffer));
+
+ if(buffer_get_u8(session->in_buffer, &session->in_packet.type) == 0) {
+ ssh_set_error(session, SSH_FATAL, "Packet too short to read type");
+ leave_function();
+ return SSH_ERROR;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET, "Type %hhd", session->in_packet.type);
+ session->in_packet.valid = 1;
+
+ leave_function();
+ return SSH_OK;
+}
+
+/*
+ * This function places the outgoing packet buffer into an outgoing
+ * socket buffer
+ */
+static int ssh_packet_write(ssh_session session) {
+ int rc = SSH_ERROR;
+
+ enter_function();
+
+ rc=ssh_socket_write(session->socket,
+ ssh_buffer_get_begin(session->out_buffer),
+ ssh_buffer_get_len(session->out_buffer));
+ if(rc == SSH_OK){
+ rc=ssh_socket_nonblocking_flush(session->socket);
+ }
+ leave_function();
+ return rc;
+}
+
+static int packet_send2(ssh_session session) {
+ unsigned int blocksize = (session->current_crypto ?
+ session->current_crypto->out_cipher->blocksize : 8);
+ uint32_t currentlen = ssh_buffer_get_len(session->out_buffer);
+ unsigned char *hmac = NULL;
+ char padstring[32] = {0};
+ int rc = SSH_ERROR;
+ uint32_t finallen;
+ uint8_t padding;
+
+ enter_function();
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Writing on the wire a packet having %u bytes before", currentlen);
+
+#if defined(HAVE_LIBZ) && defined(WITH_LIBZ)
+ if (session->current_crypto && session->current_crypto->do_compress_out) {
+ ssh_log(session, SSH_LOG_PACKET, "Compressing in_buffer ...");
+ if (compress_buffer(session,session->out_buffer) < 0) {
+ goto error;
+ }
+ currentlen = ssh_buffer_get_len(session->out_buffer);
+ }
+#endif
+ padding = (blocksize - ((currentlen +5) % blocksize));
+ if(padding < 4) {
+ padding += blocksize;
+ }
+
+ if (session->current_crypto) {
+ ssh_get_random(padstring, padding, 0);
+ } else {
+ memset(padstring,0,padding);
+ }
+
+ finallen = htonl(currentlen + padding + 1);
+ ssh_log(session, SSH_LOG_PACKET,
+ "%d bytes after comp + %d padding bytes = %lu bytes packet",
+ currentlen, padding, (long unsigned int) ntohl(finallen));
+
+ if (buffer_prepend_data(session->out_buffer, &padding, sizeof(uint8_t)) < 0) {
+ goto error;
+ }
+ if (buffer_prepend_data(session->out_buffer, &finallen, sizeof(uint32_t)) < 0) {
+ goto error;
+ }
+ if (buffer_add_data(session->out_buffer, padstring, padding) < 0) {
+ goto error;
+ }
+#ifdef WITH_PCAP
+ if(session->pcap_ctx){
+ ssh_pcap_context_write(session->pcap_ctx,SSH_PCAP_DIR_OUT,
+ ssh_buffer_get_begin(session->out_buffer),ssh_buffer_get_len(session->out_buffer)
+ ,ssh_buffer_get_len(session->out_buffer));
+ }
+#endif
+ hmac = packet_encrypt(session, ssh_buffer_get_begin(session->out_buffer),
+ ssh_buffer_get_len(session->out_buffer));
+ if (hmac) {
+ if (buffer_add_data(session->out_buffer, hmac, 20) < 0) {
+ goto error;
+ }
+ }
+
+ rc = ssh_packet_write(session);
+ session->send_seq++;
+
+ if (buffer_reinit(session->out_buffer) < 0) {
+ rc = SSH_ERROR;
+ }
+error:
+ leave_function();
+ return rc; /* SSH_OK, AGAIN or ERROR */
+}
+
+
+int packet_send(ssh_session session) {
+#ifdef WITH_SSH1
+ if (session->version == 1) {
+ return packet_send1(session);
+ }
+#endif
+ return packet_send2(session);
+}
+
+
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/packet1.c b/src/packet1.c
new file mode 100644
index 0000000..d4b2eae
--- /dev/null
+++ b/src/packet1.c
@@ -0,0 +1,362 @@
+/*
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2010 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+#include "libssh/priv.h"
+#include "libssh/ssh1.h"
+#include "libssh/packet.h"
+#include "libssh/session.h"
+#include "libssh/buffer.h"
+#include "libssh/socket.h"
+#include "libssh/kex.h"
+#ifdef WITH_SSH1
+
+ssh_packet_callback default_packet_handlers1[]= {
+ NULL, //SSH_MSG_NONE 0
+ ssh_packet_disconnect1, //SSH_MSG_DISCONNECT 1
+ ssh_packet_publickey1, //SSH_SMSG_PUBLIC_KEY 2
+ NULL, //SSH_CMSG_SESSION_KEY 3
+ NULL, //SSH_CMSG_USER 4
+ NULL, //SSH_CMSG_AUTH_RHOSTS 5
+ NULL, //SSH_CMSG_AUTH_RSA 6
+ NULL, //SSH_SMSG_AUTH_RSA_CHALLENGE 7
+ NULL, //SSH_CMSG_AUTH_RSA_RESPONSE 8
+ NULL, //SSH_CMSG_AUTH_PASSWORD 9
+ NULL, //SSH_CMSG_REQUEST_PTY 10
+ NULL, //SSH_CMSG_WINDOW_SIZE 11
+ NULL, //SSH_CMSG_EXEC_SHELL 12
+ NULL, //SSH_CMSG_EXEC_CMD 13
+ ssh_packet_smsg_success1, //SSH_SMSG_SUCCESS 14
+ ssh_packet_smsg_failure1, //SSH_SMSG_FAILURE 15
+ NULL, //SSH_CMSG_STDIN_DATA 16
+ ssh_packet_data1, //SSH_SMSG_STDOUT_DATA 17
+ ssh_packet_data1, //SSH_SMSG_STDERR_DATA 18
+ NULL, //SSH_CMSG_EOF 19
+ NULL, //SSH_SMSG_EXITSTATUS 20
+ NULL, //SSH_MSG_CHANNEL_OPEN_CONFIRMATION 21
+ NULL, //SSH_MSG_CHANNEL_OPEN_FAILURE 22
+ NULL, //SSH_MSG_CHANNEL_DATA 23
+ ssh_packet_close1, //SSH_MSG_CHANNEL_CLOSE 24
+ NULL, //SSH_MSG_CHANNEL_CLOSE_CONFIRMATION 25
+ NULL, //SSH_CMSG_X11_REQUEST_FORWARDING 26
+ NULL, //SSH_SMSG_X11_OPEN 27
+ NULL, //SSH_CMSG_PORT_FORWARD_REQUEST 28
+ NULL, //SSH_MSG_PORT_OPEN 29
+ NULL, //SSH_CMSG_AGENT_REQUEST_FORWARDING 30
+ NULL, //SSH_SMSG_AGENT_OPEN 31
+ ssh_packet_ignore_callback, //SSH_MSG_IGNORE 32
+ NULL, //SSH_CMSG_EXIT_CONFIRMATION 33
+ NULL, //SSH_CMSG_X11_REQUEST_FORWARDING 34
+ NULL, //SSH_CMSG_AUTH_RHOSTS_RSA 35
+ ssh_packet_ignore_callback, //SSH_MSG_DEBUG 36
+};
+
+/** @internal
+ * @brief sets the default packet handlers
+ */
+void ssh_packet_set_default_callbacks1(ssh_session session){
+ session->default_packet_callbacks.start=0;
+ session->default_packet_callbacks.n_callbacks=sizeof(default_packet_handlers1)/sizeof(ssh_packet_callback);
+ session->default_packet_callbacks.user=session;
+ session->default_packet_callbacks.callbacks=default_packet_handlers1;
+ ssh_packet_set_callbacks(session, &session->default_packet_callbacks);
+}
+
+
+/** @internal
+ * @handles a data received event. It then calls the handlers for the different packet types
+ * or and exception handler callback. Adapted for SSH-1 packets.
+ * @param user pointer to current ssh_session
+ * @param data pointer to the data received
+ * @len length of data received. It might not be enough for a complete packet
+ * @returns number of bytes read and processed.
+ */
+
+int ssh_packet_socket_callback1(const void *data, size_t receivedlen, void *user) {
+ void *packet = NULL;
+ int rc = SSH_ERROR;
+ int to_be_read;
+ size_t processed=0;
+ uint32_t padding;
+ uint32_t crc;
+ uint32_t len;
+ ssh_session session=(ssh_session)user;
+ enter_function();
+
+ switch (session->packet_state){
+ case PACKET_STATE_INIT:
+ memset(&session->in_packet, 0, sizeof(PACKET));
+
+ if (session->in_buffer) {
+ if (buffer_reinit(session->in_buffer) < 0) {
+ goto error;
+ }
+ } else {
+ session->in_buffer = ssh_buffer_new();
+ if (session->in_buffer == NULL) {
+ goto error;
+ }
+ }
+ /* must have at least enough bytes for size */
+ if(receivedlen < sizeof(uint32_t)){
+ leave_function();
+ return 0;
+ }
+ memcpy(&len,data,sizeof(uint32_t));
+ processed += sizeof(uint32_t);
+ rc = SSH_ERROR;
+
+ /* len is not encrypted */
+ len = ntohl(len);
+ if (len > MAX_PACKET_LEN) {
+ ssh_set_error(session, SSH_FATAL,
+ "read_packet(): Packet len too high (%u %.8x)", len, len);
+ goto error;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET, "Reading a %d bytes packet", len);
+
+ session->in_packet.len = len;
+ session->packet_state = PACKET_STATE_SIZEREAD;
+ case PACKET_STATE_SIZEREAD:
+ len = session->in_packet.len;
+ /* SSH-1 has a fixed padding lenght */
+ padding = 8 - (len % 8);
+ to_be_read = len + padding;
+ if(to_be_read + processed > receivedlen){
+ /* wait for rest of packet */
+ leave_function();
+ return processed;
+ }
+ /* it is _not_ possible that to_be_read be < 8. */
+ packet = (char *)data + processed;
+ rc = SSH_ERROR;
+
+ if (buffer_add_data(session->in_buffer,packet,to_be_read) < 0) {
+ SAFE_FREE(packet);
+ goto error;
+ }
+ processed += to_be_read;
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("read packet:", ssh_buffer_get_begin(session->in_buffer),
+ ssh_buffer_get_len(session->in_buffer));
+#endif
+ if (session->current_crypto) {
+ /*
+ * We decrypt everything, missing the lenght part (which was
+ * previously read, unencrypted, and is not part of the buffer
+ */
+ if (packet_decrypt(session,
+ ssh_buffer_get_begin(session->in_buffer),
+ ssh_buffer_get_len(session->in_buffer)) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Packet decrypt error");
+ goto error;
+ }
+ }
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("read packet decrypted:", ssh_buffer_get_begin(session->in_buffer),
+ ssh_buffer_get_len(session->in_buffer));
+#endif
+ ssh_log(session, SSH_LOG_PACKET, "%d bytes padding", padding);
+ if(((len + padding) != buffer_get_rest_len(session->in_buffer)) ||
+ ((len + padding) < sizeof(uint32_t))) {
+ ssh_log(session, SSH_LOG_RARE, "no crc32 in packet");
+ ssh_set_error(session, SSH_FATAL, "no crc32 in packet");
+ goto error;
+ }
+
+ memcpy(&crc,
+ (unsigned char *)buffer_get_rest(session->in_buffer) + (len+padding) - sizeof(uint32_t),
+ sizeof(uint32_t));
+ buffer_pass_bytes_end(session->in_buffer, sizeof(uint32_t));
+ crc = ntohl(crc);
+ if (ssh_crc32(buffer_get_rest(session->in_buffer),
+ (len + padding) - sizeof(uint32_t)) != crc) {
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("crc32 on",buffer_get_rest(session->in_buffer),
+ len + padding - sizeof(uint32_t));
+#endif
+ ssh_log(session, SSH_LOG_RARE, "Invalid crc32");
+ ssh_set_error(session, SSH_FATAL,
+ "Invalid crc32: expected %.8x, got %.8x",
+ crc,
+ ssh_crc32(buffer_get_rest(session->in_buffer),
+ len + padding - sizeof(uint32_t)));
+ goto error;
+ }
+ /* pass the padding */
+ buffer_pass_bytes(session->in_buffer, padding);
+ ssh_log(session, SSH_LOG_PACKET, "The packet is valid");
+
+/* TODO FIXME
+#if defined(HAVE_LIBZ) && defined(WITH_LIBZ)
+ if(session->current_crypto && session->current_crypto->do_compress_in){
+ decompress_buffer(session,session->in_buffer);
+ }
+#endif
+*/
+ session->recv_seq++;
+ /* We don't want to rewrite a new packet while still executing the packet callbacks */
+ session->packet_state = PACKET_STATE_PROCESSING;
+ ssh_packet_parse_type(session);
+ /* execute callbacks */
+ ssh_packet_process(session, session->in_packet.type);
+ session->packet_state = PACKET_STATE_INIT;
+ if(processed < receivedlen){
+ /* Handle a potential packet left in socket buffer */
+ ssh_log(session,SSH_LOG_PACKET,"Processing %" PRIdS " bytes left in socket buffer",
+ receivedlen-processed);
+ rc = ssh_packet_socket_callback1((char *)data + processed,
+ receivedlen - processed,user);
+ processed += rc;
+ }
+ leave_function();
+ return processed;
+ case PACKET_STATE_PROCESSING:
+ ssh_log(session, SSH_LOG_RARE, "Nested packet processing. Delaying.");
+ return 0;
+ }
+
+error:
+ session->session_state=SSH_SESSION_STATE_ERROR;
+ leave_function();
+ return processed;
+}
+
+
+int packet_send1(ssh_session session) {
+ unsigned int blocksize = (session->current_crypto ?
+ session->current_crypto->out_cipher->blocksize : 8);
+ uint32_t currentlen = ssh_buffer_get_len(session->out_buffer) + sizeof(uint32_t);
+ char padstring[32] = {0};
+ int rc = SSH_ERROR;
+ uint32_t finallen;
+ uint32_t crc;
+ uint8_t padding;
+
+ enter_function();
+ ssh_log(session,SSH_LOG_PACKET,"Sending a %d bytes long packet",currentlen);
+
+/* TODO FIXME
+#if defined(HAVE_LIBZ) && defined(WITH_LIBZ)
+ if (session->current_crypto && session->current_crypto->do_compress_out) {
+ if (compress_buffer(session, session->out_buffer) < 0) {
+ goto error;
+ }
+ currentlen = buffer_get_len(session->out_buffer);
+ }
+#endif
+*/
+ padding = blocksize - (currentlen % blocksize);
+ if (session->current_crypto) {
+ ssh_get_random(padstring, padding, 0);
+ } else {
+ memset(padstring, 0, padding);
+ }
+
+ finallen = htonl(currentlen);
+ ssh_log(session, SSH_LOG_PACKET,
+ "%d bytes after comp + %d padding bytes = %d bytes packet",
+ currentlen, padding, ntohl(finallen));
+
+ if (buffer_prepend_data(session->out_buffer, &padstring, padding) < 0) {
+ goto error;
+ }
+ if (buffer_prepend_data(session->out_buffer, &finallen, sizeof(uint32_t)) < 0) {
+ goto error;
+ }
+
+ crc = ssh_crc32((char *)ssh_buffer_get_begin(session->out_buffer) + sizeof(uint32_t),
+ ssh_buffer_get_len(session->out_buffer) - sizeof(uint32_t));
+
+ if (buffer_add_u32(session->out_buffer, ntohl(crc)) < 0) {
+ goto error;
+ }
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("Clear packet", ssh_buffer_get_begin(session->out_buffer),
+ ssh_buffer_get_len(session->out_buffer));
+#endif
+
+ packet_encrypt(session, (unsigned char *)ssh_buffer_get_begin(session->out_buffer) + sizeof(uint32_t),
+ ssh_buffer_get_len(session->out_buffer) - sizeof(uint32_t));
+
+#ifdef DEBUG_CRYPTO
+ ssh_print_hexa("encrypted packet",ssh_buffer_get_begin(session->out_buffer),
+ ssh_buffer_get_len(session->out_buffer));
+#endif
+ rc=ssh_socket_write(session->socket, ssh_buffer_get_begin(session->out_buffer),
+ ssh_buffer_get_len(session->out_buffer));
+ if(rc== SSH_ERROR) {
+ goto error;
+ }
+
+ session->send_seq++;
+
+ if (buffer_reinit(session->out_buffer) < 0) {
+ rc = SSH_ERROR;
+ }
+error:
+ leave_function();
+ return rc; /* SSH_OK, AGAIN or ERROR */
+}
+
+SSH_PACKET_CALLBACK(ssh_packet_disconnect1){
+ (void)packet;
+ (void)user;
+ (void)type;
+ ssh_log(session, SSH_LOG_PACKET, "Received SSH_MSG_DISCONNECT");
+ ssh_set_error(session, SSH_FATAL, "Received SSH_MSG_DISCONNECT");
+ ssh_socket_close(session->socket);
+ session->alive = 0;
+ session->session_state=SSH_SESSION_STATE_DISCONNECTED;
+ return SSH_PACKET_USED;
+}
+
+SSH_PACKET_CALLBACK(ssh_packet_smsg_success1){
+ if(session->session_state==SSH_SESSION_STATE_KEXINIT_RECEIVED){
+ session->session_state=SSH_SESSION_STATE_AUTHENTICATING;
+ return SSH_PACKET_USED;
+ } else if(session->session_state==SSH_SESSION_STATE_AUTHENTICATING){
+ ssh_auth1_handler(session,type);
+ return SSH_PACKET_USED;
+ } else {
+ return ssh_packet_channel_success(session,type,packet,user);
+ }
+}
+
+SSH_PACKET_CALLBACK(ssh_packet_smsg_failure1){
+ if(session->session_state==SSH_SESSION_STATE_KEXINIT_RECEIVED){
+ session->session_state=SSH_SESSION_STATE_ERROR;
+ ssh_set_error(session,SSH_FATAL,"Key exchange failed: received SSH_SMSG_FAILURE");
+ return SSH_PACKET_USED;
+ } else if(session->session_state==SSH_SESSION_STATE_AUTHENTICATING){
+ ssh_auth1_handler(session,type);
+ return SSH_PACKET_USED;
+ } else {
+ return ssh_packet_channel_failure(session,type,packet,user);
+ }
+}
+
+
+#endif /* WITH_SSH1 */
+
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/pcap.c b/src/pcap.c
new file mode 100644
index 0000000..56bf331
--- /dev/null
+++ b/src/pcap.c
@@ -0,0 +1,434 @@
+/*
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2009 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/* pcap.c */
+#include "config.h"
+#ifdef WITH_PCAP
+
+#include <stdio.h>
+#ifdef _WIN32
+#include <ws2tcpip.h>
+#else
+#include <sys/time.h>
+#include <sys/socket.h>
+#endif
+#include <errno.h>
+
+#include "libssh/libssh.h"
+#include "libssh/pcap.h"
+#include "libssh/session.h"
+#include "libssh/buffer.h"
+#include "libssh/socket.h"
+
+/**
+ * @internal
+ *
+ * @defgroup libssh_pcap The libssh pcap functions
+ * @ingroup libssh
+ *
+ * The pcap file generation
+ *
+ *
+ * @{
+ */
+
+/* The header of a pcap file is the following. We are not going to make it
+ * very complicated.
+ * Just for information.
+ */
+struct pcap_hdr_s {
+ uint32_t magic_number; /* magic number */
+ uint16_t version_major; /* major version number */
+ uint16_t version_minor; /* minor version number */
+ int32_t thiszone; /* GMT to local correction */
+ uint32_t sigfigs; /* accuracy of timestamps */
+ uint32_t snaplen; /* max length of captured packets, in octets */
+ uint32_t network; /* data link type */
+};
+
+#define PCAP_MAGIC 0xa1b2c3d4
+#define PCAP_VERSION_MAJOR 2
+#define PCAP_VERSION_MINOR 4
+
+#define DLT_RAW 12 /* raw IP */
+
+/* TCP flags */
+#define TH_FIN 0x01
+#define TH_SYN 0x02
+#define TH_RST 0x04
+#define TH_PUSH 0x08
+#define TH_ACK 0x10
+#define TH_URG 0x20
+
+/* The header of a pcap packet.
+ * Just for information.
+ */
+struct pcaprec_hdr_s {
+ uint32_t ts_sec; /* timestamp seconds */
+ uint32_t ts_usec; /* timestamp microseconds */
+ uint32_t incl_len; /* number of octets of packet saved in file */
+ uint32_t orig_len; /* actual length of packet */
+};
+
+/** @private
+ * @brief a pcap context expresses the state of a pcap dump
+ * in a SSH session only. Multiple pcap contexts may be used into
+ * a single pcap file.
+ */
+
+struct ssh_pcap_context_struct {
+ ssh_session session;
+ ssh_pcap_file file;
+ int connected;
+ /* All of these information are useful to generate
+ * the dummy IP and TCP packets
+ */
+ uint32_t ipsource;
+ uint32_t ipdest;
+ uint16_t portsource;
+ uint16_t portdest;
+ uint32_t outsequence;
+ uint32_t insequence;
+};
+
+/** @private
+ * @brief a pcap file expresses the state of a pcap file which may
+ * contain several streams.
+ */
+struct ssh_pcap_file_struct {
+ FILE *output;
+ uint16_t ipsequence;
+};
+
+/**
+ * @brief create a new ssh_pcap_file object
+ */
+ssh_pcap_file ssh_pcap_file_new(){
+ struct ssh_pcap_file_struct *pcap;
+
+ pcap = malloc(sizeof(struct ssh_pcap_file_struct));
+ if (pcap == NULL) {
+ return NULL;
+ }
+ ZERO_STRUCTP(pcap);
+
+ return pcap;
+}
+
+/** @internal
+ * @brief writes a packet on file
+ */
+static int ssh_pcap_file_write(ssh_pcap_file pcap, ssh_buffer packet){
+ int err;
+ uint32_t len;
+ if(pcap == NULL || pcap->output==NULL)
+ return SSH_ERROR;
+ len=ssh_buffer_get_len(packet);
+ err=fwrite(ssh_buffer_get_begin(packet),len,1,pcap->output);
+ if(err<0)
+ return SSH_ERROR;
+ else
+ return SSH_OK;
+}
+
+/** @internal
+ * @brief prepends a packet with the pcap header and writes packet
+ * on file
+ */
+int ssh_pcap_file_write_packet(ssh_pcap_file pcap, ssh_buffer packet, uint32_t original_len){
+ ssh_buffer header=ssh_buffer_new();
+ struct timeval now;
+ int err;
+ if(header == NULL)
+ return SSH_ERROR;
+ gettimeofday(&now,NULL);
+ buffer_add_u32(header,htonl(now.tv_sec));
+ buffer_add_u32(header,htonl(now.tv_usec));
+ buffer_add_u32(header,htonl(ssh_buffer_get_len(packet)));
+ buffer_add_u32(header,htonl(original_len));
+ buffer_add_buffer(header,packet);
+ err=ssh_pcap_file_write(pcap,header);
+ ssh_buffer_free(header);
+ return err;
+}
+
+/**
+ * @brief opens a new pcap file and create header
+ */
+int ssh_pcap_file_open(ssh_pcap_file pcap, const char *filename){
+ ssh_buffer header;
+ int err;
+ if(pcap == NULL)
+ return SSH_ERROR;
+ if(pcap->output){
+ fclose(pcap->output);
+ pcap->output=NULL;
+ }
+ pcap->output=fopen(filename,"wb");
+ if(pcap->output==NULL)
+ return SSH_ERROR;
+ header=ssh_buffer_new();
+ if(header==NULL)
+ return SSH_ERROR;
+ buffer_add_u32(header,htonl(PCAP_MAGIC));
+ buffer_add_u16(header,htons(PCAP_VERSION_MAJOR));
+ buffer_add_u16(header,htons(PCAP_VERSION_MINOR));
+ /* currently hardcode GMT to 0 */
+ buffer_add_u32(header,htonl(0));
+ /* accuracy */
+ buffer_add_u32(header,htonl(0));
+ /* size of the biggest packet */
+ buffer_add_u32(header,htonl(MAX_PACKET_LEN));
+ /* we will write sort-of IP */
+ buffer_add_u32(header,htonl(DLT_RAW));
+ err=ssh_pcap_file_write(pcap,header);
+ ssh_buffer_free(header);
+ return err;
+}
+
+int ssh_pcap_file_close(ssh_pcap_file pcap){
+ int err;
+ if(pcap ==NULL || pcap->output==NULL)
+ return SSH_ERROR;
+ err=fclose(pcap->output);
+ pcap->output=NULL;
+ if(err != 0)
+ return SSH_ERROR;
+ else
+ return SSH_OK;
+}
+
+void ssh_pcap_file_free(ssh_pcap_file pcap){
+ ssh_pcap_file_close(pcap);
+ SAFE_FREE(pcap);
+}
+
+
+/** @internal
+ * @brief allocates a new ssh_pcap_context object
+ */
+
+ssh_pcap_context ssh_pcap_context_new(ssh_session session){
+ ssh_pcap_context ctx=malloc(sizeof(struct ssh_pcap_context_struct));
+ if(ctx==NULL){
+ ssh_set_error_oom(session);
+ return NULL;
+ }
+ ZERO_STRUCTP(ctx);
+ ctx->session=session;
+ return ctx;
+}
+
+void ssh_pcap_context_free(ssh_pcap_context ctx){
+ SAFE_FREE(ctx);
+}
+
+void ssh_pcap_context_set_file(ssh_pcap_context ctx, ssh_pcap_file pcap){
+ ctx->file=pcap;
+}
+
+/** @internal
+ * @brief sets the IP and port parameters in the connection
+ */
+static int ssh_pcap_context_connect(ssh_pcap_context ctx){
+ ssh_session session=ctx->session;
+ struct sockaddr_in local, remote;
+ socket_t fd;
+ socklen_t len;
+ if(session==NULL)
+ return SSH_ERROR;
+ if(session->socket==NULL)
+ return SSH_ERROR;
+ fd=ssh_socket_get_fd_in(session->socket);
+ /* TODO: adapt for windows */
+ if(fd<0)
+ return SSH_ERROR;
+ len=sizeof(local);
+ if(getsockname(fd,(struct sockaddr *)&local,&len)<0){
+ ssh_set_error(session,SSH_REQUEST_DENIED,"Getting local IP address: %s",strerror(errno));
+ return SSH_ERROR;
+ }
+ len=sizeof(remote);
+ if(getpeername(fd,(struct sockaddr *)&remote,&len)<0){
+ ssh_set_error(session,SSH_REQUEST_DENIED,"Getting remote IP address: %s",strerror(errno));
+ return SSH_ERROR;
+ }
+ if(local.sin_family != AF_INET){
+ ssh_set_error(session,SSH_REQUEST_DENIED,"Only IPv4 supported for pcap logging");
+ return SSH_ERROR;
+ }
+ memcpy(&ctx->ipsource,&local.sin_addr,sizeof(ctx->ipsource));
+ memcpy(&ctx->ipdest,&remote.sin_addr,sizeof(ctx->ipdest));
+ memcpy(&ctx->portsource,&local.sin_port,sizeof(ctx->portsource));
+ memcpy(&ctx->portdest,&remote.sin_port,sizeof(ctx->portdest));
+
+ ctx->connected=1;
+ return SSH_OK;
+}
+
+#define IPHDR_LEN 20
+#define TCPHDR_LEN 20
+#define TCPIPHDR_LEN (IPHDR_LEN + TCPHDR_LEN)
+/** @internal
+ * @brief write a SSH packet as a TCP over IP in a pcap file
+ * @param ctx open pcap context
+ * @param direction SSH_PCAP_DIRECTION_IN if the packet has been received
+ * @param direction SSH_PCAP_DIRECTION_OUT if the packet has been emitted
+ * @param data pointer to the data to write
+ * @param len data to write in the pcap file. May be smaller than origlen.
+ * @param origlen number of bytes of complete data.
+ * @returns SSH_OK write is successful
+ * @returns SSH_ERROR an error happened.
+ */
+int ssh_pcap_context_write(ssh_pcap_context ctx,enum ssh_pcap_direction direction
+ , void *data, uint32_t len, uint32_t origlen){
+ ssh_buffer ip;
+ int err;
+ if(ctx==NULL || ctx->file ==NULL)
+ return SSH_ERROR;
+ if(ctx->connected==0)
+ if(ssh_pcap_context_connect(ctx)==SSH_ERROR)
+ return SSH_ERROR;
+ ip=ssh_buffer_new();
+ if(ip==NULL){
+ ssh_set_error_oom(ctx->session);
+ return SSH_ERROR;
+ }
+ /* build an IP packet */
+ /* V4, 20 bytes */
+ buffer_add_u8(ip,4 << 4 | 5);
+ /* tos */
+ buffer_add_u8(ip,0);
+ /* total len */
+ buffer_add_u16(ip,htons(origlen + TCPIPHDR_LEN));
+ /* IP id number */
+ buffer_add_u16(ip,htons(ctx->file->ipsequence));
+ ctx->file->ipsequence++;
+ /* fragment offset */
+ buffer_add_u16(ip,htons(0));
+ /* TTL */
+ buffer_add_u8(ip,64);
+ /* protocol TCP=6 */
+ buffer_add_u8(ip,6);
+ /* checksum */
+ buffer_add_u16(ip,0);
+ if(direction==SSH_PCAP_DIR_OUT){
+ buffer_add_u32(ip,ctx->ipsource);
+ buffer_add_u32(ip,ctx->ipdest);
+ } else {
+ buffer_add_u32(ip,ctx->ipdest);
+ buffer_add_u32(ip,ctx->ipsource);
+ }
+ /* TCP */
+ if(direction==SSH_PCAP_DIR_OUT){
+ buffer_add_u16(ip,ctx->portsource);
+ buffer_add_u16(ip,ctx->portdest);
+ } else {
+ buffer_add_u16(ip,ctx->portdest);
+ buffer_add_u16(ip,ctx->portsource);
+ }
+ /* sequence number */
+ if(direction==SSH_PCAP_DIR_OUT){
+ buffer_add_u32(ip,ntohl(ctx->outsequence));
+ ctx->outsequence+=origlen;
+ } else {
+ buffer_add_u32(ip,ntohl(ctx->insequence));
+ ctx->insequence+=origlen;
+ }
+ /* ack number */
+ if(direction==SSH_PCAP_DIR_OUT){
+ buffer_add_u32(ip,ntohl(ctx->insequence));
+ } else {
+ buffer_add_u32(ip,ntohl(ctx->outsequence));
+ }
+ /* header len = 20 = 5 * 32 bits, at offset 4*/
+ buffer_add_u8(ip,5 << 4);
+ /* flags */
+ buffer_add_u8(ip,TH_PUSH | TH_ACK);
+ /* window */
+ buffer_add_u16(ip,htons(65535));
+ /* checksum */
+ buffer_add_u16(ip,htons(0));
+ /* urgent data ptr */
+ buffer_add_u16(ip,0);
+ /* actual data */
+ buffer_add_data(ip,data,len);
+ err=ssh_pcap_file_write_packet(ctx->file,ip,origlen + TCPIPHDR_LEN);
+ ssh_buffer_free(ip);
+ return err;
+}
+
+/** @brief sets the pcap file used to trace the session
+ * @param current session
+ * @param pcap an handler to a pcap file. A pcap file may be used in several
+ * sessions.
+ * @returns SSH_ERROR in case of error, SSH_OK otherwise.
+ */
+int ssh_set_pcap_file(ssh_session session, ssh_pcap_file pcap){
+ ssh_pcap_context ctx=ssh_pcap_context_new(session);
+ if(ctx==NULL){
+ ssh_set_error_oom(session);
+ return SSH_ERROR;
+ }
+ ctx->file=pcap;
+ if(session->pcap_ctx)
+ ssh_pcap_context_free(session->pcap_ctx);
+ session->pcap_ctx=ctx;
+ return SSH_OK;
+}
+
+
+#else /* WITH_PCAP */
+
+/* Simple stub returning errors when no pcap compiled in */
+
+#include "libssh/libssh.h"
+#include "libssh/priv.h"
+
+int ssh_pcap_file_close(ssh_pcap_file pcap){
+ (void) pcap;
+ return SSH_ERROR;
+}
+
+void ssh_pcap_file_free(ssh_pcap_file pcap){
+ (void) pcap;
+}
+
+ssh_pcap_file ssh_pcap_file_new(void){
+ return NULL;
+}
+int ssh_pcap_file_open(ssh_pcap_file pcap, const char *filename){
+ (void) pcap;
+ (void) filename;
+ return SSH_ERROR;
+}
+
+int ssh_set_pcap_file(ssh_session session, ssh_pcap_file pcapfile){
+ (void) pcapfile;
+ ssh_set_error(session,SSH_REQUEST_DENIED,"Pcap support not compiled in");
+ return SSH_ERROR;
+}
+
+#endif
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/pki.c b/src/pki.c
new file mode 100644
index 0000000..ef925dd
--- /dev/null
+++ b/src/pki.c
@@ -0,0 +1,113 @@
+/*
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2010 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/** @defgroup ssh_pki SSH Public Key Infrastructure
+ * @ingroup libssh
+ *
+ * Functions for the creation, importation and manipulation of public and
+ * private keys in the context of the SSH protocol
+ *
+ * @{
+ */
+
+#include "libssh/priv.h"
+#include "libssh/pki.h"
+#include "libssh/keys.h"
+
+/**
+ * @brief creates a new empty SSH key
+ * @returns an empty ssh_key handle
+ */
+ssh_key ssh_key_new (void){
+ ssh_key ptr=malloc (sizeof (struct ssh_key_struct));
+ ZERO_STRUCTP(ptr);
+ return ptr;
+}
+
+/**
+ * @brief clean up the key and deallocate all existing keys
+ * @param[in] key ssh_key to clean
+ */
+void ssh_key_clean (ssh_key key){
+ if(key==NULL)
+ return;
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_release(key->dsa);
+ gcry_sexp_release(key->rsa);
+#elif defined HAVE_LIBCRYPTO
+ DSA_free(key->dsa);
+ RSA_free(key->rsa);
+#endif
+ key->flags=SSH_KEY_FLAG_EMPTY;
+ key->type=SSH_KEYTYPE_UNKNOWN;
+ key->type_c=NULL;
+}
+
+/**
+ * @brief deallocate a SSH key
+ * @param[in] key ssh_key handle to free
+ */
+void ssh_key_free (ssh_key key){
+ if(key){
+ ssh_key_clean(key);
+ SAFE_FREE(key);
+ }
+}
+
+/**
+ * @brief returns the type of a ssh key
+ * @param[in] key the ssh_key handle
+ * @returns one of SSH_KEYTYPE_RSA,SSH_KEYTYPE_DSS,SSH_KEYTYPE_RSA1
+ * @returns SSH_KEYTYPE_UNKNOWN if the type is unknown
+ */
+enum ssh_keytypes_e ssh_key_type(ssh_key key){
+ if (key==NULL)
+ return SSH_KEYTYPE_UNKNOWN;
+ return key->type;
+}
+
+/**
+ * @brief import a key from a file
+ * @param[out] key the ssh_key to update
+ * @param[in] session The SSH Session to use. If a key decryption callback is set, it will
+ * be used to ask for the passphrase.
+ * @param[in] filename The filename of the the private key.
+ * @param[in] passphrase The passphrase to decrypt the private key. Set to null
+ * if none is needed or it is unknown.
+ * @returns SSH_OK on success, SSH_ERROR otherwise.
+ **/
+int ssh_key_import_private(ssh_key key, ssh_session session, const char *filename, const char *passphrase){
+ ssh_private_key priv=privatekey_from_file(session,filename,0,passphrase);
+ if(priv==NULL)
+ return SSH_ERROR;
+ ssh_key_clean(key);
+ key->dsa=priv->dsa_priv;
+ key->rsa=priv->rsa_priv;
+ key->type=priv->type;
+ key->flags=SSH_KEY_FLAG_PRIVATE | SSH_KEY_FLAG_PUBLIC;
+ key->type_c=ssh_type_to_char(key->type);
+ SAFE_FREE(priv);
+ return SSH_OK;
+}
+
+/**
+ * @}
+ */
diff --git a/src/poll.c b/src/poll.c
new file mode 100644
index 0000000..7942ea0
--- /dev/null
+++ b/src/poll.c
@@ -0,0 +1,692 @@
+/*
+ * poll.c - poll wrapper
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2009-2010 by Andreas Schneider <mail@cynapses.org>
+ * Copyright (c) 2003-2009 by Aris Adamantiadis
+ * Copyright (c) 2009 Aleksandar Kanchev
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ *
+ * vim: ts=2 sw=2 et cindent
+ */
+
+#include "config.h"
+
+#include <errno.h>
+
+#include "libssh/priv.h"
+#include "libssh/libssh.h"
+#include "libssh/poll.h"
+#include "libssh/socket.h"
+
+#ifndef SSH_POLL_CTX_CHUNK
+#define SSH_POLL_CTX_CHUNK 5
+#endif
+
+/**
+ * @defgroup libssh_poll The SSH poll functions.
+ * @ingroup libssh
+ *
+ * Add a generic way to handle sockets asynchronously.
+ *
+ * It's based on poll objects, each of which store a socket, it's events and a
+ * callback, which gets called whenever an event is set. The poll objects are
+ * attached to a poll context, which should be allocated on per thread basis.
+ *
+ * Polling the poll context will poll all the attached poll objects and call
+ * their callbacks (handlers) if any of the socket events are set. This should
+ * be done within the main loop of an application.
+ *
+ * @{
+ */
+
+/** global poll context used for blocking operations */
+static ssh_poll_ctx global_poll_ctx;
+
+struct ssh_poll_handle_struct {
+ ssh_poll_ctx ctx;
+ union {
+ socket_t fd;
+ size_t idx;
+ } x;
+ short events;
+ ssh_poll_callback cb;
+ void *cb_data;
+};
+
+struct ssh_poll_ctx_struct {
+ ssh_poll_handle *pollptrs;
+ ssh_pollfd_t *pollfds;
+ size_t polls_allocated;
+ size_t polls_used;
+ size_t chunk_size;
+};
+
+#ifdef HAVE_POLL
+#include <poll.h>
+
+void ssh_poll_init(void) {
+ return;
+}
+
+void ssh_poll_cleanup(void) {
+ return;
+}
+
+int ssh_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) {
+ return poll((struct pollfd *) fds, nfds, timeout);
+}
+
+#else /* HAVE_POLL */
+
+typedef int (*poll_fn)(ssh_pollfd_t *, nfds_t, int);
+static poll_fn ssh_poll_emu;
+
+#include <sys/types.h>
+
+#ifdef _WIN32
+#ifndef STRICT
+#define STRICT
+#endif /* STRICT */
+
+#include <time.h>
+#include <windows.h>
+#include <winsock2.h>
+
+#if (_WIN32_WINNT < 0x0600)
+typedef struct ssh_pollfd_struct WSAPOLLFD;
+#endif
+
+typedef int (WSAAPI* WSAPoll_FunctionType)(WSAPOLLFD fdarray[],
+ ULONG nfds,
+ INT timeout
+);
+
+static WSAPoll_FunctionType wsa_poll;
+
+int win_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) {
+ if (wsa_poll) {
+ return (wsa_poll)(fds, nfds, timeout);
+ }
+
+ return SOCKET_ERROR;
+}
+
+#define WS2_LIBRARY "ws2_32.dll"
+static HINSTANCE hlib;
+
+#else /* _WIN32 */
+#include <sys/select.h>
+#include <sys/socket.h>
+#include <unistd.h>
+#include <sys/time.h>
+#endif /* _WIN32 */
+
+
+/*
+ * This is a poll(2)-emulation using select for systems not providing a native
+ * poll implementation.
+ *
+ * Keep in mind that select is terribly inefficient. The interface is simply not
+ * meant to be used with maximum descriptor value greater, say, 32 or so. With
+ * a value as high as 1024 on Linux you'll pay dearly in every single call.
+ * poll() will be orders of magnitude faster.
+ */
+static int bsd_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) {
+ fd_set readfds, writefds, exceptfds;
+ struct timeval tv, *ptv;
+ socket_t max_fd;
+ int rc;
+ nfds_t i;
+
+ if (fds == NULL) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ FD_ZERO (&readfds);
+ FD_ZERO (&writefds);
+ FD_ZERO (&exceptfds);
+
+ /* compute fd_sets and find largest descriptor */
+ for (rc = -1, max_fd = 0, i = 0; i < nfds; i++) {
+ if (fds[i].fd == SSH_INVALID_SOCKET) {
+ continue;
+ }
+#ifndef _WIN32
+ if (fds[i].fd >= FD_SETSIZE) {
+ rc = -1;
+ break;
+ }
+#endif
+
+ if (fds[i].events & (POLLIN | POLLRDNORM)) {
+ FD_SET (fds[i].fd, &readfds);
+ }
+ if (fds[i].events & (POLLOUT | POLLWRNORM | POLLWRBAND)) {
+ FD_SET (fds[i].fd, &writefds);
+ }
+ if (fds[i].events & (POLLPRI | POLLRDBAND)) {
+ FD_SET (fds[i].fd, &exceptfds);
+ }
+ if (fds[i].fd > max_fd &&
+ (fds[i].events & (POLLIN | POLLOUT | POLLPRI |
+ POLLRDNORM | POLLRDBAND |
+ POLLWRNORM | POLLWRBAND))) {
+ max_fd = fds[i].fd;
+ rc = 0;
+ }
+ }
+
+ if (max_fd == SSH_INVALID_SOCKET || rc == -1) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ if (timeout < 0) {
+ ptv = NULL;
+ } else {
+ ptv = &tv;
+ if (timeout == 0) {
+ tv.tv_sec = 0;
+ tv.tv_usec = 0;
+ } else {
+ tv.tv_sec = timeout / 1000;
+ tv.tv_usec = (timeout % 1000) * 1000;
+ }
+ }
+
+ rc = select (max_fd + 1, &readfds, &writefds, &exceptfds, ptv);
+ if (rc < 0) {
+ return -1;
+ }
+
+ for (rc = 0, i = 0; i < nfds; i++)
+ if (fds[i].fd >= 0) {
+ fds[i].revents = 0;
+
+ if (FD_ISSET(fds[i].fd, &readfds)) {
+ int save_errno = errno;
+ char data[64] = {0};
+ int ret;
+
+ /* support for POLLHUP */
+ ret = recv(fds[i].fd, data, 64, MSG_PEEK);
+#ifdef _WIN32
+ if ((ret == -1) &&
+ (errno == WSAESHUTDOWN || errno == WSAECONNRESET ||
+ errno == WSAECONNABORTED || errno == WSAENETRESET)) {
+#else
+ if ((ret == -1) &&
+ (errno == ESHUTDOWN || errno == ECONNRESET ||
+ errno == ECONNABORTED || errno == ENETRESET)) {
+#endif
+ fds[i].revents |= POLLHUP;
+ } else {
+ fds[i].revents |= fds[i].events & (POLLIN | POLLRDNORM);
+ }
+
+ errno = save_errno;
+ }
+ if (FD_ISSET(fds[i].fd, &writefds)) {
+ fds[i].revents |= fds[i].events & (POLLOUT | POLLWRNORM | POLLWRBAND);
+ }
+
+ if (FD_ISSET(fds[i].fd, &exceptfds)) {
+ fds[i].revents |= fds[i].events & (POLLPRI | POLLRDBAND);
+ }
+
+ if (fds[i].revents & ~POLLHUP) {
+ rc++;
+ }
+ } else {
+ fds[i].revents = POLLNVAL;
+ }
+
+ return rc;
+}
+
+void ssh_poll_init(void) {
+ ssh_poll_emu = bsd_poll;
+
+#ifdef _WIN32
+ hlib = LoadLibrary(WS2_LIBRARY);
+ if (hlib != NULL) {
+ wsa_poll = (WSAPoll_FunctionType) (void *) GetProcAddress(hlib, "WSAPoll");
+ }
+#endif /* _WIN32 */
+
+ if (wsa_poll != NULL) {
+ ssh_poll_emu = bsd_poll;
+ }
+}
+
+void ssh_poll_cleanup(void) {
+ ssh_poll_emu = bsd_poll;
+#ifdef _WIN32
+ wsa_poll = NULL;
+
+ FreeLibrary(hlib);
+
+ hlib = NULL;
+#endif /* _WIN32 */
+}
+
+int ssh_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) {
+ return (ssh_poll_emu)(fds, nfds, timeout);
+}
+
+#endif /* HAVE_POLL */
+
+/**
+ * @brief Allocate a new poll object, which could be used within a poll context.
+ *
+ * @param fd Socket that will be polled.
+ * @param events Poll events that will be monitored for the socket. i.e.
+ * POLLIN, POLLPRI, POLLOUT, POLLERR, POLLHUP, POLLNVAL
+ * @param cb Function to be called if any of the events are set.
+ * @param userdata Userdata to be passed to the callback function. NULL if
+ * not needed.
+ *
+ * @return A new poll object, NULL on error
+ */
+
+ssh_poll_handle ssh_poll_new(socket_t fd, short events, ssh_poll_callback cb,
+ void *userdata) {
+ ssh_poll_handle p;
+
+ p = malloc(sizeof(struct ssh_poll_handle_struct));
+ if (p != NULL) {
+ p->ctx = NULL;
+ p->x.fd = fd;
+ p->events = events;
+ p->cb = cb;
+ p->cb_data = userdata;
+ }
+
+ return p;
+}
+
+
+/**
+ * @brief Free a poll object.
+ *
+ * @param p Pointer to an already allocated poll object.
+ */
+
+void ssh_poll_free(ssh_poll_handle p) {
+ if(p->ctx != NULL){
+ ssh_poll_ctx_remove(p->ctx,p);
+ p->ctx=NULL;
+ }
+ SAFE_FREE(p);
+}
+
+/**
+ * @brief Get the poll context of a poll object.
+ *
+ * @param p Pointer to an already allocated poll object.
+ *
+ * @return Poll context or NULL if the poll object isn't attached.
+ */
+ssh_poll_ctx ssh_poll_get_ctx(ssh_poll_handle p) {
+ return p->ctx;
+}
+
+/**
+ * @brief Get the events of a poll object.
+ *
+ * @param p Pointer to an already allocated poll object.
+ *
+ * @return Poll events.
+ */
+short ssh_poll_get_events(ssh_poll_handle p) {
+ return p->events;
+}
+
+/**
+ * @brief Set the events of a poll object. The events will also be propagated
+ * to an associated poll context.
+ *
+ * @param p Pointer to an already allocated poll object.
+ * @param events Poll events.
+ */
+void ssh_poll_set_events(ssh_poll_handle p, short events) {
+ p->events = events;
+ if (p->ctx != NULL) {
+ p->ctx->pollfds[p->x.idx].events = events;
+ }
+}
+
+/**
+ * @brief Set the file descriptor of a poll object. The FD will also be propagated
+ * to an associated poll context.
+ *
+ * @param p Pointer to an already allocated poll object.
+ * @param fd New file descriptor.
+ */
+void ssh_poll_set_fd(ssh_poll_handle p, socket_t fd) {
+ if (p->ctx != NULL) {
+ p->ctx->pollfds[p->x.idx].fd = fd;
+ } else {
+ p->x.fd = fd;
+ }
+}
+
+/**
+ * @brief Add extra events to a poll object. Duplicates are ignored.
+ * The events will also be propagated to an associated poll context.
+ *
+ * @param p Pointer to an already allocated poll object.
+ * @param events Poll events.
+ */
+void ssh_poll_add_events(ssh_poll_handle p, short events) {
+ ssh_poll_set_events(p, ssh_poll_get_events(p) | events);
+}
+
+/**
+ * @brief Remove events from a poll object. Non-existent are ignored.
+ * The events will also be propagated to an associated poll context.
+ *
+ * @param p Pointer to an already allocated poll object.
+ * @param events Poll events.
+ */
+void ssh_poll_remove_events(ssh_poll_handle p, short events) {
+ ssh_poll_set_events(p, ssh_poll_get_events(p) & ~events);
+}
+
+/**
+ * @brief Get the raw socket of a poll object.
+ *
+ * @param p Pointer to an already allocated poll object.
+ *
+ * @return Raw socket.
+ */
+
+socket_t ssh_poll_get_fd(ssh_poll_handle p) {
+ if (p->ctx != NULL) {
+ return p->ctx->pollfds[p->x.idx].fd;
+ }
+
+ return p->x.fd;
+}
+/**
+ * @brief Set the callback of a poll object.
+ *
+ * @param p Pointer to an already allocated poll object.
+ * @param cb Function to be called if any of the events are set.
+ * @param userdata Userdata to be passed to the callback function. NULL if
+ * not needed.
+ */
+void ssh_poll_set_callback(ssh_poll_handle p, ssh_poll_callback cb, void *userdata) {
+ if (cb != NULL) {
+ p->cb = cb;
+ p->cb_data = userdata;
+ }
+}
+
+/**
+ * @brief Create a new poll context. It could be associated with many poll object
+ * which are going to be polled at the same time as the poll context. You
+ * would need a single poll context per thread.
+ *
+ * @param chunk_size The size of the memory chunk that will be allocated, when
+ * more memory is needed. This is for efficiency reasons,
+ * i.e. don't allocate memory for each new poll object, but
+ * for the next 5. Set it to 0 if you want to use the
+ * library's default value.
+ */
+ssh_poll_ctx ssh_poll_ctx_new(size_t chunk_size) {
+ ssh_poll_ctx ctx;
+
+ ctx = malloc(sizeof(struct ssh_poll_ctx_struct));
+ if (ctx != NULL) {
+ if (!chunk_size) {
+ chunk_size = SSH_POLL_CTX_CHUNK;
+ }
+
+ ctx->chunk_size = chunk_size;
+ ctx->pollptrs = NULL;
+ ctx->pollfds = NULL;
+ ctx->polls_allocated = 0;
+ ctx->polls_used = 0;
+ }
+
+ return ctx;
+}
+
+/**
+ * @brief Free a poll context.
+ *
+ * @param ctx Pointer to an already allocated poll context.
+ */
+void ssh_poll_ctx_free(ssh_poll_ctx ctx) {
+ if (ctx->polls_allocated > 0) {
+ register size_t i, used;
+
+ used = ctx->polls_used;
+ for (i = 0; i < used; ) {
+ ssh_poll_handle p = ctx->pollptrs[i];
+ socket_t fd = ctx->pollfds[i].fd;
+
+ /* force poll object removal */
+ if (p->cb(p, fd, POLLERR, p->cb_data) < 0) {
+ used = ctx->polls_used;
+ } else {
+ i++;
+ }
+ }
+
+ SAFE_FREE(ctx->pollptrs);
+ SAFE_FREE(ctx->pollfds);
+ }
+
+ SAFE_FREE(ctx);
+}
+
+static int ssh_poll_ctx_resize(ssh_poll_ctx ctx, size_t new_size) {
+ ssh_poll_handle *pollptrs;
+ ssh_pollfd_t *pollfds;
+
+ pollptrs = realloc(ctx->pollptrs, sizeof(ssh_poll_handle *) * new_size);
+ if (pollptrs == NULL) {
+ return -1;
+ }
+
+ pollfds = realloc(ctx->pollfds, sizeof(ssh_pollfd_t) * new_size);
+ if (pollfds == NULL) {
+ ctx->pollptrs = realloc(pollptrs, sizeof(ssh_poll_handle *) * ctx->polls_allocated);
+ return -1;
+ }
+
+ ctx->pollptrs = pollptrs;
+ ctx->pollfds = pollfds;
+ ctx->polls_allocated = new_size;
+
+ return 0;
+}
+
+/**
+ * @brief Add a poll object to a poll context.
+ *
+ * @param ctx Pointer to an already allocated poll context.
+ * @param p Pointer to an already allocated poll object.
+ *
+ * @return 0 on success, < 0 on error
+ */
+int ssh_poll_ctx_add(ssh_poll_ctx ctx, ssh_poll_handle p) {
+ socket_t fd;
+
+ if (p->ctx != NULL) {
+ /* already attached to a context */
+ return -1;
+ }
+
+ if (ctx->polls_used == ctx->polls_allocated &&
+ ssh_poll_ctx_resize(ctx, ctx->polls_allocated + ctx->chunk_size) < 0) {
+ return -1;
+ }
+
+ fd = p->x.fd;
+ p->x.idx = ctx->polls_used++;
+ ctx->pollptrs[p->x.idx] = p;
+ ctx->pollfds[p->x.idx].fd = fd;
+ ctx->pollfds[p->x.idx].events = p->events;
+ ctx->pollfds[p->x.idx].revents = 0;
+ p->ctx = ctx;
+
+ return 0;
+}
+
+/**
+ * @brief Add a socket object to a poll context.
+ *
+ * @param ctx Pointer to an already allocated poll context.
+ * @param s A SSH socket handle
+ *
+ * @return 0 on success, < 0 on error
+ */
+int ssh_poll_ctx_add_socket (ssh_poll_ctx ctx, ssh_socket s) {
+ ssh_poll_handle p_in, p_out;
+ int ret;
+ p_in=ssh_socket_get_poll_handle_in(s);
+ if(p_in==NULL)
+ return -1;
+ ret = ssh_poll_ctx_add(ctx,p_in);
+ if(ret != 0)
+ return ret;
+ p_out=ssh_socket_get_poll_handle_out(s);
+ if(p_in != p_out)
+ ret = ssh_poll_ctx_add(ctx,p_out);
+ return ret;
+}
+
+
+/**
+ * @brief Remove a poll object from a poll context.
+ *
+ * @param ctx Pointer to an already allocated poll context.
+ * @param p Pointer to an already allocated poll object.
+ */
+void ssh_poll_ctx_remove(ssh_poll_ctx ctx, ssh_poll_handle p) {
+ size_t i;
+
+ i = p->x.idx;
+ p->x.fd = ctx->pollfds[i].fd;
+ p->ctx = NULL;
+
+ ctx->polls_used--;
+
+ /* fill the empty poll slot with the last one */
+ if (ctx->polls_used > 0 && ctx->polls_used != i) {
+ ctx->pollfds[i] = ctx->pollfds[ctx->polls_used];
+ ctx->pollptrs[i] = ctx->pollptrs[ctx->polls_used];
+ }
+
+ /* this will always leave at least chunk_size polls allocated */
+ if (ctx->polls_allocated - ctx->polls_used > ctx->chunk_size) {
+ ssh_poll_ctx_resize(ctx, ctx->polls_allocated - ctx->chunk_size);
+ }
+}
+
+/**
+ * @brief Poll all the sockets associated through a poll object with a
+ * poll context. If any of the events are set after the poll, the
+ * call back function of the socket will be called.
+ * This function should be called once within the programs main loop.
+ *
+ * @param ctx Pointer to an already allocated poll context.
+ * @param timeout An upper limit on the time for which ssh_poll_ctx() will
+ * block, in milliseconds. Specifying a negative value
+ * means an infinite timeout. This parameter is passed to
+ * the poll() function.
+ * @returns SSH_OK No error.
+ * SSH_ERROR Error happened during the poll.
+ */
+
+int ssh_poll_ctx_dopoll(ssh_poll_ctx ctx, int timeout) {
+ int rc;
+ int i, used;
+ ssh_poll_handle p;
+ socket_t fd;
+ int revents;
+
+ if (!ctx->polls_used)
+ return 0;
+
+ rc = ssh_poll(ctx->pollfds, ctx->polls_used, timeout);
+ if(rc < 0)
+ rc=SSH_ERROR;
+ if(rc <= 0)
+ return rc;
+ used = ctx->polls_used;
+ for (i = 0; i < used && rc > 0; ) {
+ if (!ctx->pollfds[i].revents) {
+ i++;
+ } else {
+ p = ctx->pollptrs[i];
+ fd = ctx->pollfds[i].fd;
+ revents = ctx->pollfds[i].revents;
+
+ if (p->cb(p, fd, revents, p->cb_data) < 0) {
+ /* the poll was removed, reload the used counter and start again */
+ used = ctx->polls_used;
+ i=0;
+ } else {
+ ctx->pollfds[i].revents = 0;
+ i++;
+ }
+
+ rc--;
+ }
+ }
+
+ return rc;
+}
+
+/** @internal
+ * @brief returns a pointer to the global poll context.
+ * Allocates it if it does not exist.
+ * @param session an optional session handler, used to store the error
+ * message if needed.
+ * @returns pointer to the global poll context.
+ */
+ssh_poll_ctx ssh_get_global_poll_ctx(ssh_session session){
+ if(global_poll_ctx != NULL)
+ return global_poll_ctx;
+ global_poll_ctx=ssh_poll_ctx_new(5);
+ if(global_poll_ctx == NULL && session != NULL){
+ ssh_set_error_oom(session);
+ return NULL;
+ }
+ return global_poll_ctx;
+}
+
+/** @internal
+ * @brief Deallocate the global poll context
+ */
+void ssh_free_global_poll_ctx(){
+ if(global_poll_ctx != NULL){
+ ssh_poll_ctx_free(global_poll_ctx);
+ global_poll_ctx=NULL;
+ }
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/scp.c b/src/scp.c
new file mode 100644
index 0000000..4a6f6f1
--- /dev/null
+++ b/src/scp.c
@@ -0,0 +1,752 @@
+/*
+ * scp - SSH scp wrapper functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2009 by Aris Adamantiadis <aris@0xbadc0de.be>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include "libssh/priv.h"
+#include "libssh/scp.h"
+
+/**
+ * @defgroup libssh_scp The SSH scp functions
+ * @ingroup libssh
+ *
+ * SCP protocol over SSH functions
+ *
+ * @{
+ */
+
+/**
+ * @brief Create a new scp session.
+ *
+ * @param[in] session The SSH session to use.
+ *
+ * @param[in] mode One of SSH_SCP_WRITE or SSH_SCP_READ, depending if you
+ * need to drop files remotely or read them.
+ * It is not possible to combine read and write.
+ *
+ * @param[in] location The directory in which write or read will be done. Any
+ * push or pull will be relative to this place.
+ *
+ * @returns A ssh_scp handle, NULL if the creation was impossible.
+ */
+ssh_scp ssh_scp_new(ssh_session session, int mode, const char *location){
+ ssh_scp scp=malloc(sizeof(struct ssh_scp_struct));
+ if(scp == NULL){
+ ssh_set_error(session,SSH_FATAL,"Error allocating memory for ssh_scp");
+ return NULL;
+ }
+ ZERO_STRUCTP(scp);
+ if((mode&~SSH_SCP_RECURSIVE) != SSH_SCP_WRITE && (mode &~SSH_SCP_RECURSIVE) != SSH_SCP_READ){
+ ssh_set_error(session,SSH_FATAL,"Invalid mode %d for ssh_scp_new()",mode);
+ ssh_scp_free(scp);
+ return NULL;
+ }
+ scp->location=strdup(location);
+ if (scp->location == NULL) {
+ ssh_set_error(session,SSH_FATAL,"Error allocating memory for ssh_scp");
+ ssh_scp_free(scp);
+ return NULL;
+ }
+ scp->session=session;
+ scp->mode=mode & ~SSH_SCP_RECURSIVE;
+ scp->recursive = (mode & SSH_SCP_RECURSIVE) != 0;
+ scp->channel=NULL;
+ scp->state=SSH_SCP_NEW;
+ return scp;
+}
+
+int ssh_scp_init(ssh_scp scp){
+ int r;
+ char execbuffer[1024];
+ uint8_t code;
+ if(scp==NULL)
+ return SSH_ERROR;
+ if(scp->state != SSH_SCP_NEW){
+ ssh_set_error(scp->session,SSH_FATAL,"ssh_scp_init called under invalid state");
+ return SSH_ERROR;
+ }
+ ssh_log(scp->session,SSH_LOG_PROTOCOL,"Initializing scp session %s %son location '%s'",
+ scp->mode==SSH_SCP_WRITE?"write":"read",
+ scp->recursive?"recursive ":"",
+ scp->location);
+ scp->channel=ssh_channel_new(scp->session);
+ if(scp->channel == NULL){
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ r= ssh_channel_open_session(scp->channel);
+ if(r==SSH_ERROR){
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ if(scp->mode == SSH_SCP_WRITE)
+ snprintf(execbuffer,sizeof(execbuffer),"scp -t %s %s",
+ scp->recursive ? "-r":"", scp->location);
+ else
+ snprintf(execbuffer,sizeof(execbuffer),"scp -f %s %s",
+ scp->recursive ? "-r":"", scp->location);
+ if(ssh_channel_request_exec(scp->channel,execbuffer) == SSH_ERROR){
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ if(scp->mode == SSH_SCP_WRITE){
+ r=ssh_channel_read(scp->channel,&code,1,0);
+ if(r<=0){
+ ssh_set_error(scp->session,SSH_FATAL, "Error reading status code: %s",ssh_get_error(scp->session));
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ if(code != 0){
+ ssh_set_error(scp->session,SSH_FATAL, "scp status code %ud not valid", code);
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ } else {
+ ssh_channel_write(scp->channel,"",1);
+ }
+ if(scp->mode == SSH_SCP_WRITE)
+ scp->state=SSH_SCP_WRITE_INITED;
+ else
+ scp->state=SSH_SCP_READ_INITED;
+ return SSH_OK;
+}
+
+int ssh_scp_close(ssh_scp scp){
+ char buffer[128];
+ int err;
+ if(scp==NULL)
+ return SSH_ERROR;
+ if(scp->channel != NULL){
+ if(ssh_channel_send_eof(scp->channel) == SSH_ERROR){
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ /* avoid situations where data are buffered and
+ * not yet stored on disk. This can happen if the close is sent
+ * before we got the EOF back
+ */
+ while(!ssh_channel_is_eof(scp->channel)){
+ err=ssh_channel_read(scp->channel,buffer,sizeof(buffer),0);
+ if(err==SSH_ERROR)
+ break;
+ }
+ if(ssh_channel_close(scp->channel) == SSH_ERROR){
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ ssh_channel_free(scp->channel);
+ scp->channel=NULL;
+ }
+ scp->state=SSH_SCP_NEW;
+ return SSH_OK;
+}
+
+void ssh_scp_free(ssh_scp scp){
+ if(scp==NULL)
+ return;
+ if(scp->state != SSH_SCP_NEW)
+ ssh_scp_close(scp);
+ if(scp->channel)
+ ssh_channel_free(scp->channel);
+ SAFE_FREE(scp->location);
+ SAFE_FREE(scp->request_name);
+ SAFE_FREE(scp->warning);
+ SAFE_FREE(scp);
+}
+
+/**
+ * @brief Create a directory in a scp in sink mode.
+ *
+ * @param[in] scp The scp handle.
+ *
+ * @param[in] dirname The name of the directory being created.
+ *
+ * @param[in] mode The UNIX permissions for the new directory, e.g. 0755.
+ *
+ * @returns SSH_OK if the directory has been created, SSH_ERROR if
+ * an error occured.
+ *
+ * @see ssh_scp_leave_directory()
+ */
+int ssh_scp_push_directory(ssh_scp scp, const char *dirname, int mode){
+ char buffer[1024];
+ int r;
+ uint8_t code;
+ char *dir;
+ char *perms;
+ if(scp==NULL)
+ return SSH_ERROR;
+ if(scp->state != SSH_SCP_WRITE_INITED){
+ ssh_set_error(scp->session,SSH_FATAL,"ssh_scp_push_directory called under invalid state");
+ return SSH_ERROR;
+ }
+ dir=ssh_basename(dirname);
+ perms=ssh_scp_string_mode(mode);
+ snprintf(buffer, sizeof(buffer), "D%s 0 %s\n", perms, dir);
+ SAFE_FREE(dir);
+ SAFE_FREE(perms);
+ r=ssh_channel_write(scp->channel,buffer,strlen(buffer));
+ if(r==SSH_ERROR){
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ r=ssh_channel_read(scp->channel,&code,1,0);
+ if(r<=0){
+ ssh_set_error(scp->session,SSH_FATAL, "Error reading status code: %s",ssh_get_error(scp->session));
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ if(code != 0){
+ ssh_set_error(scp->session,SSH_FATAL, "scp status code %ud not valid", code);
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ return SSH_OK;
+}
+
+/**
+ * @brief Leave a directory.
+ *
+ * @returns SSH_OK if the directory has been left,SSH_ERROR if an
+ * error occured.
+ *
+ * @see ssh_scp_push_directory()
+ */
+ int ssh_scp_leave_directory(ssh_scp scp){
+ char buffer[]="E\n";
+ int r;
+ uint8_t code;
+ if(scp==NULL)
+ return SSH_ERROR;
+ if(scp->state != SSH_SCP_WRITE_INITED){
+ ssh_set_error(scp->session,SSH_FATAL,"ssh_scp_leave_directory called under invalid state");
+ return SSH_ERROR;
+ }
+ r=ssh_channel_write(scp->channel,buffer,strlen(buffer));
+ if(r==SSH_ERROR){
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ r=ssh_channel_read(scp->channel,&code,1,0);
+ if(r<=0){
+ ssh_set_error(scp->session,SSH_FATAL, "Error reading status code: %s",ssh_get_error(scp->session));
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ if(code != 0){
+ ssh_set_error(scp->session,SSH_FATAL, "scp status code %ud not valid", code);
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ return SSH_OK;
+}
+
+/**
+ * @brief Initialize the sending of a file to a scp in sink mode.
+ *
+ * @param[in] scp The scp handle.
+ *
+ * @param[in] filename The name of the file being sent. It should not contain
+ * any path indicator
+ *
+ * @param[in] size Exact size in bytes of the file being sent.
+ *
+ * @param[in] mode The UNIX permissions for the new file, e.g. 0644.
+ *
+ * @returns SSH_OK if the file is ready to be sent, SSH_ERROR if an
+ * error occured.
+ */
+int ssh_scp_push_file(ssh_scp scp, const char *filename, size_t size, int mode){
+ char buffer[1024];
+ int r;
+ uint8_t code;
+ char *file;
+ char *perms;
+ if(scp==NULL)
+ return SSH_ERROR;
+ if(scp->state != SSH_SCP_WRITE_INITED){
+ ssh_set_error(scp->session,SSH_FATAL,"ssh_scp_push_file called under invalid state");
+ return SSH_ERROR;
+ }
+ file=ssh_basename(filename);
+ perms=ssh_scp_string_mode(mode);
+ ssh_log(scp->session,SSH_LOG_PROTOCOL,"SCP pushing file %s, size %" PRIdS " with permissions '%s'",file,size,perms);
+ snprintf(buffer, sizeof(buffer), "C%s %" PRIdS " %s\n", perms, size, file);
+ SAFE_FREE(file);
+ SAFE_FREE(perms);
+ r=ssh_channel_write(scp->channel,buffer,strlen(buffer));
+ if(r==SSH_ERROR){
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ r=ssh_channel_read(scp->channel,&code,1,0);
+ if(r<=0){
+ ssh_set_error(scp->session,SSH_FATAL, "Error reading status code: %s",ssh_get_error(scp->session));
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ if(code != 0){
+ ssh_set_error(scp->session,SSH_FATAL, "scp status code %ud not valid", code);
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ scp->filelen = size;
+ scp->processed = 0;
+ scp->state=SSH_SCP_WRITE_WRITING;
+ return SSH_OK;
+}
+
+/**
+ * @internal
+ *
+ * @brief Wait for a response of the scp server.
+ *
+ * @param[in] scp The scp handle.
+ *
+ * @param[out] response A pointer where the response message must be copied if
+ * any. This pointer must then be free'd.
+ *
+ * @returns The return code, SSH_ERROR a error occured.
+ */
+int ssh_scp_response(ssh_scp scp, char **response){
+ unsigned char code;
+ int r;
+ char msg[128];
+ if(scp==NULL)
+ return SSH_ERROR;
+ r=ssh_channel_read(scp->channel,&code,1,0);
+ if(r == SSH_ERROR)
+ return SSH_ERROR;
+ if(code == 0)
+ return 0;
+ if(code > 2){
+ ssh_set_error(scp->session,SSH_FATAL, "SCP: invalid status code %ud received", code);
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ r=ssh_scp_read_string(scp,msg,sizeof(msg));
+ if(r==SSH_ERROR)
+ return r;
+ /* Warning */
+ if(code == 1){
+ ssh_set_error(scp->session,SSH_REQUEST_DENIED, "SCP: Warning: status code 1 received: %s", msg);
+ ssh_log(scp->session,SSH_LOG_RARE,"SCP: Warning: status code 1 received: %s", msg);
+ if(response)
+ *response=strdup(msg);
+ return 1;
+ }
+ if(code == 2){
+ ssh_set_error(scp->session,SSH_FATAL, "SCP: Error: status code 2 received: %s", msg);
+ if(response)
+ *response=strdup(msg);
+ return 2;
+ }
+ /* Not reached */
+ return SSH_ERROR;
+}
+
+/**
+ * @brief Write into a remote scp file.
+ *
+ * @param[in] scp The scp handle.
+ *
+ * @param[in] buffer The buffer to write.
+ *
+ * @param[in] len The number of bytes to write.
+ *
+ * @returns SSH_OK if the write was successful, SSH_ERROR an error
+ * occured while writing.
+ */
+int ssh_scp_write(ssh_scp scp, const void *buffer, size_t len){
+ int w;
+ //int r;
+ //uint8_t code;
+ if(scp==NULL)
+ return SSH_ERROR;
+ if(scp->state != SSH_SCP_WRITE_WRITING){
+ ssh_set_error(scp->session,SSH_FATAL,"ssh_scp_write called under invalid state");
+ return SSH_ERROR;
+ }
+ if(scp->processed + len > scp->filelen)
+ len = scp->filelen - scp->processed;
+ /* hack to avoid waiting for window change */
+ ssh_channel_poll(scp->channel,0);
+ w=ssh_channel_write(scp->channel,buffer,len);
+ if(w != SSH_ERROR)
+ scp->processed += w;
+ else {
+ scp->state=SSH_SCP_ERROR;
+ //return=channel_get_exit_status(scp->channel);
+ return SSH_ERROR;
+ }
+ /* Check if we arrived at end of file */
+ if(scp->processed == scp->filelen) {
+/* r=channel_read(scp->channel,&code,1,0);
+ if(r==SSH_ERROR){
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ if(code != 0){
+ ssh_set_error(scp->session,SSH_FATAL, "scp status code %ud not valid", code);
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+*/
+ scp->processed=scp->filelen=0;
+ scp->state=SSH_SCP_WRITE_INITED;
+ }
+ return SSH_OK;
+}
+
+/**
+ * @brief Read a string on a channel, terminated by '\n'
+ *
+ * @param[in] scp The scp handle.
+ *
+ * @param[out] buffer A pointer to a buffer to place the string.
+ *
+ * @param[in] len The size of the buffer in bytes. If the string is bigger
+ * than len-1, only len-1 bytes are read and the string is
+ * null-terminated.
+ *
+ * @returns SSH_OK if the string was read, SSH_ERROR if an error
+ * occured while reading.
+ */
+int ssh_scp_read_string(ssh_scp scp, char *buffer, size_t len){
+ size_t r=0;
+ int err=SSH_OK;
+ if(scp==NULL)
+ return SSH_ERROR;
+ while(r<len-1){
+ err=ssh_channel_read(scp->channel,&buffer[r],1,0);
+ if(err==SSH_ERROR){
+ break;
+ }
+ if(err==0){
+ ssh_set_error(scp->session,SSH_FATAL,"End of file while reading string");
+ err=SSH_ERROR;
+ break;
+ }
+ r++;
+ if(buffer[r-1] == '\n')
+ break;
+ }
+ buffer[r]=0;
+ return err;
+}
+
+/**
+ * @brief Wait for a scp request (file, directory).
+ *
+ * @returns SSH_SCP_REQUEST_NEWFILE: The other side is sending
+ * a file
+ * SSH_SCP_REQUEST_NEWDIRECTORY: The other side is sending
+ * a directory
+ * SSH_SCP_REQUEST_END_DIRECTORY: The other side has
+ * finished with the current
+ * directory
+ * SSH_ERROR: Some error happened
+ *
+ * @see ssh_scp_read()
+ * @see ssh_scp_deny_request()
+ * @see ssh_scp_accept_request()
+ */
+int ssh_scp_pull_request(ssh_scp scp){
+ char buffer[4096];
+ char *mode=NULL;
+ char *p,*tmp;
+ size_t size;
+ char *name=NULL;
+ int err;
+ if(scp==NULL)
+ return SSH_ERROR;
+ if(scp->state != SSH_SCP_READ_INITED){
+ ssh_set_error(scp->session,SSH_FATAL,"ssh_scp_pull_request called under invalid state");
+ return SSH_ERROR;
+ }
+ err=ssh_scp_read_string(scp,buffer,sizeof(buffer));
+ if(err==SSH_ERROR){
+ if(ssh_channel_is_eof(scp->channel)){
+ scp->state=SSH_SCP_TERMINATED;
+ return SSH_SCP_REQUEST_EOF;
+ }
+ return err;
+ }
+ p=strchr(buffer,'\n');
+ if(p!=NULL)
+ *p='\0';
+ ssh_log(scp->session,SSH_LOG_PROTOCOL,"Received SCP request: '%s'",buffer);
+ switch(buffer[0]){
+ case 'C':
+ /* File */
+ case 'D':
+ /* Directory */
+ p=strchr(buffer,' ');
+ if(p==NULL)
+ goto error;
+ *p='\0';
+ p++;
+ //mode=strdup(&buffer[1]);
+ scp->request_mode=ssh_scp_integer_mode(&buffer[1]);
+ tmp=p;
+ p=strchr(p,' ');
+ if(p==NULL)
+ goto error;
+ *p=0;
+ size=strtoull(tmp,NULL,10);
+ p++;
+ name=strdup(p);
+ SAFE_FREE(scp->request_name);
+ scp->request_name=name;
+ if(buffer[0]=='C'){
+ scp->filelen=size;
+ scp->request_type=SSH_SCP_REQUEST_NEWFILE;
+ } else {
+ scp->filelen='0';
+ scp->request_type=SSH_SCP_REQUEST_NEWDIR;
+ }
+ scp->state=SSH_SCP_READ_REQUESTED;
+ scp->processed = 0;
+ return scp->request_type;
+ break;
+ case 'E':
+ scp->request_type=SSH_SCP_REQUEST_ENDDIR;
+ ssh_channel_write(scp->channel,"",1);
+ return scp->request_type;
+ case 0x1:
+ ssh_set_error(scp->session,SSH_REQUEST_DENIED,"SCP: Warning: %s",&buffer[1]);
+ scp->request_type=SSH_SCP_REQUEST_WARNING;
+ SAFE_FREE(scp->warning);
+ scp->warning=strdup(&buffer[1]);
+ return scp->request_type;
+ case 0x2:
+ ssh_set_error(scp->session,SSH_FATAL,"SCP: Error: %s",&buffer[1]);
+ return SSH_ERROR;
+ case 'T':
+ /* Timestamp */
+ default:
+ ssh_set_error(scp->session,SSH_FATAL,"Unhandled message: (%d)%s",buffer[0],buffer);
+ return SSH_ERROR;
+ }
+
+ /* a parsing error occured */
+ error:
+ SAFE_FREE(name);
+ SAFE_FREE(mode);
+ ssh_set_error(scp->session,SSH_FATAL,"Parsing error while parsing message: %s",buffer);
+ return SSH_ERROR;
+}
+
+/**
+ * @brief Deny the transfer of a file or creation of a directory coming from the
+ * remote party.
+ *
+ * @param[in] scp The scp handle.
+ * @param[in] reason A nul-terminated string with a human-readable
+ * explanation of the deny.
+ *
+ * @returns SSH_OK if the message was sent, SSH_ERROR if the sending
+ * the message failed, or sending it in a bad state.
+ */
+int ssh_scp_deny_request(ssh_scp scp, const char *reason){
+ char buffer[4096];
+ int err;
+ if(scp==NULL)
+ return SSH_ERROR;
+ if(scp->state != SSH_SCP_READ_REQUESTED){
+ ssh_set_error(scp->session,SSH_FATAL,"ssh_scp_deny_request called under invalid state");
+ return SSH_ERROR;
+ }
+ snprintf(buffer,sizeof(buffer),"%c%s\n",2,reason);
+ err=ssh_channel_write(scp->channel,buffer,strlen(buffer));
+ if(err==SSH_ERROR) {
+ return SSH_ERROR;
+ }
+ else {
+ scp->state=SSH_SCP_READ_INITED;
+ return SSH_OK;
+ }
+}
+
+/**
+ * @brief Accepts transfer of a file or creation of a directory coming from the
+ * remote party.
+ *
+ * @param[in] scp The scp handle.
+ *
+ * @returns SSH_OK if the message was sent, SSH_ERROR if sending the
+ * message failed, or sending it in a bad state.
+ */
+int ssh_scp_accept_request(ssh_scp scp){
+ char buffer[]={0x00};
+ int err;
+ if(scp==NULL)
+ return SSH_ERROR;
+ if(scp->state != SSH_SCP_READ_REQUESTED){
+ ssh_set_error(scp->session,SSH_FATAL,"ssh_scp_deny_request called under invalid state");
+ return SSH_ERROR;
+ }
+ err=ssh_channel_write(scp->channel,buffer,1);
+ if(err==SSH_ERROR) {
+ return SSH_ERROR;
+ }
+ if(scp->request_type==SSH_SCP_REQUEST_NEWFILE)
+ scp->state=SSH_SCP_READ_READING;
+ else
+ scp->state=SSH_SCP_READ_INITED;
+ return SSH_OK;
+}
+
+/** @brief Read from a remote scp file
+ * @param[in] scp The scp handle.
+ *
+ * @param[in] buffer The destination buffer.
+ *
+ * @param[in] size The size of the buffer.
+ *
+ * @returns The nNumber of bytes read, SSH_ERROR if an error occured
+ * while reading.
+ */
+int ssh_scp_read(ssh_scp scp, void *buffer, size_t size){
+ int r;
+ int code;
+ if(scp==NULL)
+ return SSH_ERROR;
+ if(scp->state == SSH_SCP_READ_REQUESTED && scp->request_type == SSH_SCP_REQUEST_NEWFILE){
+ r=ssh_scp_accept_request(scp);
+ if(r==SSH_ERROR)
+ return r;
+ }
+ if(scp->state != SSH_SCP_READ_READING){
+ ssh_set_error(scp->session,SSH_FATAL,"ssh_scp_read called under invalid state");
+ return SSH_ERROR;
+ }
+ if(scp->processed + size > scp->filelen)
+ size = scp->filelen - scp->processed;
+ if(size > 65536)
+ size=65536; /* avoid too large reads */
+ r=ssh_channel_read(scp->channel,buffer,size,0);
+ if(r != SSH_ERROR)
+ scp->processed += r;
+ else {
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ /* Check if we arrived at end of file */
+ if(scp->processed == scp->filelen) {
+ scp->processed=scp->filelen=0;
+ ssh_channel_write(scp->channel,"",1);
+ code=ssh_scp_response(scp,NULL);
+ if(code == 0){
+ scp->state=SSH_SCP_READ_INITED;
+ return r;
+ }
+ if(code==1){
+ scp->state=SSH_SCP_READ_INITED;
+ return SSH_ERROR;
+ }
+ scp->state=SSH_SCP_ERROR;
+ return SSH_ERROR;
+ }
+ return r;
+}
+
+/**
+ * @brief Get the name of the directory or file being pushed from the other
+ * party.
+ *
+ * @returns The file name, NULL on error. The string should not be
+ * freed.
+ */
+const char *ssh_scp_request_get_filename(ssh_scp scp){
+ if(scp==NULL)
+ return NULL;
+ return scp->request_name;
+}
+
+/**
+ * @brief Get the permissions of the directory or file being pushed from the
+ * other party.
+ *
+ * @returns The UNIX permission, e.g 0644, -1 on error.
+ */
+int ssh_scp_request_get_permissions(ssh_scp scp){
+ if(scp==NULL)
+ return -1;
+ return scp->request_mode;
+}
+
+/** @brief Get the size of the file being pushed from the other party.
+ *
+ * @returns The numeric size of the file being read.
+ */
+size_t ssh_scp_request_get_size(ssh_scp scp){
+ if(scp==NULL)
+ return 0;
+ return scp->filelen;
+}
+
+/**
+ * @brief Convert a scp text mode to an integer.
+ *
+ * @param[in] mode The mode to convert, e.g. "0644".
+ *
+ * @returns An integer value, e.g. 420 for "0644".
+ */
+int ssh_scp_integer_mode(const char *mode){
+ int value=strtoul(mode,NULL,8) & 0xffff;
+ return value;
+}
+
+/**
+ * @brief Convert a unix mode into a scp string.
+ *
+ * @param[in] mode The mode to convert, e.g. 420 or 0644.
+ *
+ * @returns A pointer to a malloc'ed string containing the scp mode,
+ * e.g. "0644".
+ */
+char *ssh_scp_string_mode(int mode){
+ char buffer[16];
+ snprintf(buffer,sizeof(buffer),"%.4o",mode);
+ return strdup(buffer);
+}
+
+/**
+ * @brief Get the warning string from a scp handle.
+ *
+ * @param[in] scp The scp handle.
+ *
+ * @returns A warning string, or NULL on error. The string should
+ * not be freed.
+ */
+const char *ssh_scp_request_get_warning(ssh_scp scp){
+ if(scp==NULL)
+ return NULL;
+ return scp->warning;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/server.c b/src/server.c
new file mode 100644
index 0000000..e236767
--- /dev/null
+++ b/src/server.c
@@ -0,0 +1,1174 @@
+/*
+ * server.c - functions for creating a SSH server
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2004-2005 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "libssh/priv.h"
+#include "libssh/libssh.h"
+#include "libssh/server.h"
+#include "libssh/ssh2.h"
+#include "libssh/keyfiles.h"
+#include "libssh/buffer.h"
+#include "libssh/packet.h"
+#include "libssh/socket.h"
+#include "libssh/channels.h"
+#include "libssh/session.h"
+#include "libssh/misc.h"
+#include "libssh/keys.h"
+#include "libssh/dh.h"
+#include "libssh/messages.h"
+
+#define set_status(session, status) do {\
+ if (session->callbacks && session->callbacks->connect_status_function) \
+ session->callbacks->connect_status_function(session->callbacks->userdata, status); \
+ } while (0)
+
+static int dh_handshake_server(ssh_session session);
+
+
+/**
+ * @addtogroup libssh_server
+ *
+ * @{
+ */
+
+#ifdef _WIN32
+
+#include <winsock2.h>
+#define SOCKOPT_TYPE_ARG4 char
+
+/* We need to provide hstrerror. Not we can't call the parameter h_errno because it's #defined */
+static char *hstrerror(int h_errno_val) {
+ static char text[50] = {0};
+
+ snprintf(text, sizeof(text), "gethostbyname error %d\n", h_errno_val);
+
+ return text;
+}
+#else /* _WIN32 */
+
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netdb.h>
+#define SOCKOPT_TYPE_ARG4 int
+
+#endif /* _WIN32 */
+
+/* TODO FIXME: must use getaddrinfo */
+static socket_t bind_socket(ssh_bind sshbind, const char *hostname,
+ int port) {
+ struct sockaddr_in myaddr;
+ struct hostent *hp=NULL;
+ socket_t s;
+ int opt = 1;
+
+ s = socket(PF_INET, SOCK_STREAM, 0);
+ if (s < 0) {
+ ssh_set_error(sshbind, SSH_FATAL, "%s", strerror(errno));
+ return -1;
+ }
+
+#ifdef HAVE_GETHOSTBYNAME
+ hp = gethostbyname(hostname);
+#endif
+
+ if (hp == NULL) {
+ ssh_set_error(sshbind, SSH_FATAL,
+ "Resolving %s: %s", hostname, hstrerror(h_errno));
+ close(s);
+ return -1;
+ }
+
+ memset(&myaddr, 0, sizeof(myaddr));
+ memcpy(&myaddr.sin_addr, hp->h_addr, hp->h_length);
+ myaddr.sin_family = hp->h_addrtype;
+ myaddr.sin_port = htons(port);
+
+ if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(opt)) < 0) {
+ ssh_set_error(sshbind, SSH_FATAL,
+ "Setting socket options failed: %s", hstrerror(h_errno));
+ close(s);
+ return -1;
+ }
+
+ if (bind(s, (struct sockaddr *) &myaddr, sizeof(myaddr)) < 0) {
+ ssh_set_error(sshbind, SSH_FATAL, "Binding to %s:%d: %s",
+ hostname,
+ port,
+ strerror(errno));
+ close(s);
+ return -1;
+ }
+
+ return s;
+}
+
+ssh_bind ssh_bind_new(void) {
+ ssh_bind ptr;
+
+ ptr = malloc(sizeof(struct ssh_bind_struct));
+ if (ptr == NULL) {
+ return NULL;
+ }
+ ZERO_STRUCTP(ptr);
+ ptr->bindfd = SSH_INVALID_SOCKET;
+ ptr->bindport= 22;
+ ptr->log_verbosity = 0;
+
+ return ptr;
+}
+
+int ssh_bind_listen(ssh_bind sshbind) {
+ const char *host;
+ socket_t fd;
+
+ if (ssh_init() < 0) {
+ return -1;
+ }
+
+ host = sshbind->bindaddr;
+ if (host == NULL) {
+ host = "0.0.0.0";
+ }
+
+ fd = bind_socket(sshbind, host, sshbind->bindport);
+ if (fd == SSH_INVALID_SOCKET) {
+ return -1;
+ }
+ sshbind->bindfd = fd;
+
+ if (listen(fd, 10) < 0) {
+ ssh_set_error(sshbind, SSH_FATAL,
+ "Listening to socket %d: %s",
+ fd, strerror(errno));
+ close(fd);
+ return -1;
+ }
+
+ return 0;
+}
+
+void ssh_bind_set_blocking(ssh_bind sshbind, int blocking) {
+ sshbind->blocking = blocking ? 1 : 0;
+}
+
+socket_t ssh_bind_get_fd(ssh_bind sshbind) {
+ return sshbind->bindfd;
+}
+
+void ssh_bind_set_fd(ssh_bind sshbind, socket_t fd) {
+ sshbind->bindfd = fd;
+}
+
+void ssh_bind_fd_toaccept(ssh_bind sshbind) {
+ sshbind->toaccept = 1;
+}
+
+void ssh_bind_free(ssh_bind sshbind){
+ int i;
+
+ if (sshbind == NULL) {
+ return;
+ }
+
+ if (sshbind->bindfd >= 0) {
+#ifdef _WIN32
+ closesocket(sshbind->bindfd);
+#else
+ close(sshbind->bindfd);
+#endif
+ }
+ sshbind->bindfd = SSH_INVALID_SOCKET;
+
+ /* options */
+ SAFE_FREE(sshbind->banner);
+ SAFE_FREE(sshbind->dsakey);
+ SAFE_FREE(sshbind->rsakey);
+ SAFE_FREE(sshbind->bindaddr);
+
+ for (i = 0; i < 10; i++) {
+ if (sshbind->wanted_methods[i]) {
+ SAFE_FREE(sshbind->wanted_methods[i]);
+ }
+ }
+
+ SAFE_FREE(sshbind);
+}
+
+extern char *supported_methods[];
+/** @internal
+ * This functions sets the Key Exchange protocols to be accepted
+ * by the server. They depend on
+ * -What the user asked (via options)
+ * -What is available (keys)
+ * It should then accept the intersection of what the user asked
+ * and what is available, and return an error if nothing matches
+ */
+
+static int server_set_kex(ssh_session session) {
+ KEX *server = &session->server_kex;
+ int i, j;
+ char *wanted;
+
+ ZERO_STRUCTP(server);
+ ssh_get_random(server->cookie, 16, 0);
+ if (session->dsa_key != NULL && session->rsa_key != NULL) {
+ if (ssh_options_set_algo(session, SSH_HOSTKEYS,
+ "ssh-dss,ssh-rsa") < 0) {
+ return -1;
+ }
+ } else if (session->dsa_key != NULL) {
+ if (ssh_options_set_algo(session, SSH_HOSTKEYS, "ssh-dss") < 0) {
+ return -1;
+ }
+ } else {
+ if (ssh_options_set_algo(session, SSH_HOSTKEYS, "ssh-rsa") < 0) {
+ return -1;
+ }
+ }
+
+ server->methods = malloc(10 * sizeof(char **));
+ if (server->methods == NULL) {
+ return -1;
+ }
+
+ for (i = 0; i < 10; i++) {
+ if ((wanted = session->wanted_methods[i]) == NULL) {
+ wanted = supported_methods[i];
+ }
+ server->methods[i] = strdup(wanted);
+ if (server->methods[i] == NULL) {
+ for (j = i - 1; j <= 0; j--) {
+ SAFE_FREE(server->methods[j]);
+ }
+ SAFE_FREE(server->methods);
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+SSH_PACKET_CALLBACK(ssh_packet_kexdh_init){
+ ssh_string e;
+ (void)type;
+ (void)user;enter_function();
+ ssh_log(session,SSH_LOG_PACKET,"Received SSH_MSG_KEXDH_INIT");
+ if(session->dh_handshake_state != DH_STATE_INIT){
+ ssh_log(session,SSH_LOG_RARE,"Invalid state for SSH_MSG_KEXDH_INIT");
+ goto error;
+ }
+ e = buffer_get_ssh_string(packet);
+ if (e == NULL) {
+ ssh_set_error(session, SSH_FATAL, "No e number in client request");
+ return -1;
+ }
+ if (dh_import_e(session, e) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Cannot import e number");
+ session->session_state=SSH_SESSION_STATE_ERROR;
+ } else {
+ session->dh_handshake_state=DH_STATE_INIT_SENT;
+ dh_handshake_server(session);
+ }
+ ssh_string_free(e);
+
+ error:
+ leave_function();
+ return SSH_PACKET_USED;
+}
+
+static int dh_handshake_server(ssh_session session) {
+ ssh_string f;
+ ssh_string pubkey;
+ ssh_string sign;
+ ssh_public_key pub;
+ ssh_private_key prv;
+
+ if (dh_generate_y(session) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Could not create y number");
+ return -1;
+ }
+ if (dh_generate_f(session) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Could not create f number");
+ return -1;
+ }
+
+ f = dh_get_f(session);
+ if (f == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Could not get the f number");
+ return -1;
+ }
+
+ switch(session->hostkeys){
+ case SSH_KEYTYPE_DSS:
+ prv = session->dsa_key;
+ break;
+ case SSH_KEYTYPE_RSA:
+ prv = session->rsa_key;
+ break;
+ default:
+ prv = NULL;
+ }
+
+ pub = publickey_from_privatekey(prv);
+ if (pub == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Could not get the public key from the private key");
+ ssh_string_free(f);
+ return -1;
+ }
+ pubkey = publickey_to_string(pub);
+ publickey_free(pub);
+ if (pubkey == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Not enough space");
+ ssh_string_free(f);
+ return -1;
+ }
+
+ dh_import_pubkey(session, pubkey);
+ if (dh_build_k(session) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Could not import the public key");
+ ssh_string_free(f);
+ return -1;
+ }
+
+ if (make_sessionid(session) != SSH_OK) {
+ ssh_set_error(session, SSH_FATAL, "Could not create a session id");
+ ssh_string_free(f);
+ return -1;
+ }
+
+ sign = ssh_sign_session_id(session, prv);
+ if (sign == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Could not sign the session id");
+ ssh_string_free(f);
+ return -1;
+ }
+
+ /* Free private keys as they should not be readable after this point */
+ if (session->rsa_key) {
+ privatekey_free(session->rsa_key);
+ session->rsa_key = NULL;
+ }
+ if (session->dsa_key) {
+ privatekey_free(session->dsa_key);
+ session->dsa_key = NULL;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_KEXDH_REPLY) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, pubkey) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, f) < 0 ||
+ buffer_add_ssh_string(session->out_buffer, sign) < 0) {
+ ssh_set_error(session, SSH_FATAL, "Not enough space");
+ buffer_reinit(session->out_buffer);
+ ssh_string_free(f);
+ ssh_string_free(sign);
+ return -1;
+ }
+ ssh_string_free(f);
+ ssh_string_free(sign);
+ if (packet_send(session) == SSH_ERROR) {
+ return -1;
+ }
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_NEWKEYS) < 0) {
+ buffer_reinit(session->out_buffer);
+ return -1;
+ }
+
+ if (packet_send(session) == SSH_ERROR) {
+ return -1;
+ }
+ ssh_log(session, SSH_LOG_PACKET, "SSH_MSG_NEWKEYS sent");
+ session->dh_handshake_state=DH_STATE_NEWKEYS_SENT;
+
+ return 0;
+}
+
+/**
+ * @internal
+ *
+ * @brief Analyze the SSH banner to find out if we have a SSHv1 or SSHv2
+ * server.
+ *
+ * @param session The session to analyze the banner from.
+ * @param ssh1 The variable which is set if it is a SSHv1 server.
+ * @param ssh2 The variable which is set if it is a SSHv2 server.
+ *
+ * @return 0 on success, < 0 on error.
+ *
+ * @see ssh_get_banner()
+ */
+static int ssh_analyze_banner(ssh_session session, int *ssh1, int *ssh2) {
+ const char *banner = session->clientbanner;
+ const char *openssh;
+
+ ssh_log(session, SSH_LOG_RARE, "Analyzing banner: %s", banner);
+
+ if (strncmp(banner, "SSH-", 4) != 0) {
+ ssh_set_error(session, SSH_FATAL, "Protocol mismatch: %s", banner);
+ return -1;
+ }
+
+ /*
+ * Typical banners e.g. are:
+ * SSH-1.5-blah
+ * SSH-1.99-blah
+ * SSH-2.0-blah
+ */
+ switch(banner[4]) {
+ case '1':
+ *ssh1 = 1;
+ if (banner[6] == '9') {
+ *ssh2 = 1;
+ } else {
+ *ssh2 = 0;
+ }
+ break;
+ case '2':
+ *ssh1 = 0;
+ *ssh2 = 1;
+ break;
+ default:
+ ssh_set_error(session, SSH_FATAL, "Protocol mismatch: %s", banner);
+ return -1;
+ }
+
+ openssh = strstr(banner, "OpenSSH");
+ if (openssh != NULL) {
+ int major, minor;
+ major = strtol(openssh + 8, (char **) NULL, 10);
+ minor = strtol(openssh + 10, (char **) NULL, 10);
+ session->openssh = SSH_VERSION_INT(major, minor, 0);
+ ssh_log(session, SSH_LOG_RARE,
+ "We are talking to an OpenSSH client version: %d.%d (%x)",
+ major, minor, session->openssh);
+ }
+
+ return 0;
+}
+
+/**
+ * @internal
+ *
+ * @brief A function to be called each time a step has been done in the
+ * connection.
+ */
+static void ssh_server_connection_callback(ssh_session session){
+ int ssh1,ssh2;
+ enter_function();
+ switch(session->session_state){
+ case SSH_SESSION_STATE_NONE:
+ case SSH_SESSION_STATE_CONNECTING:
+ case SSH_SESSION_STATE_SOCKET_CONNECTED:
+ break;
+ case SSH_SESSION_STATE_BANNER_RECEIVED:
+ if (session->clientbanner == NULL) {
+ goto error;
+ }
+ set_status(session, 0.4f);
+ ssh_log(session, SSH_LOG_RARE,
+ "SSH client banner: %s", session->clientbanner);
+
+ /* Here we analyze the different protocols the server allows. */
+ if (ssh_analyze_banner(session, &ssh1, &ssh2) < 0) {
+ goto error;
+ }
+ /* Here we decide which version of the protocol to use. */
+ if (ssh2 && session->ssh2) {
+ session->version = 2;
+ } else if(ssh1 && session->ssh1) {
+ session->version = 1;
+ } else if(ssh1 && !session->ssh1){
+#ifdef WITH_SSH1
+ ssh_set_error(session, SSH_FATAL,
+ "SSH-1 protocol not available (configure session to allow SSH-1)");
+ goto error;
+#else
+ ssh_set_error(session, SSH_FATAL,
+ "SSH-1 protocol not available (libssh compiled without SSH-1 support)");
+ goto error;
+#endif
+ } else {
+ ssh_set_error(session, SSH_FATAL,
+ "No version of SSH protocol usable (banner: %s)",
+ session->clientbanner);
+ goto error;
+ }
+ /* from now, the packet layer is handling incoming packets */
+ if(session->version==2)
+ session->socket_callbacks.data=ssh_packet_socket_callback;
+#ifdef WITH_SSH1
+ else
+ session->socket_callbacks.data=ssh_packet_socket_callback1;
+#endif
+ ssh_packet_set_default_callbacks(session);
+ set_status(session, 0.5f);
+ session->session_state=SSH_SESSION_STATE_INITIAL_KEX;
+ if (ssh_send_kex(session, 1) < 0) {
+ goto error;
+ }
+ break;
+ case SSH_SESSION_STATE_INITIAL_KEX:
+ /* TODO: This state should disappear in favor of get_key handle */
+#ifdef WITH_SSH1
+ if(session->version==1){
+ if (ssh_get_kex1(session) < 0)
+ goto error;
+ set_status(session,0.6f);
+ session->connected = 1;
+ break;
+ }
+#endif
+ break;
+ case SSH_SESSION_STATE_KEXINIT_RECEIVED:
+ set_status(session,0.6f);
+ ssh_list_kex(session, &session->client_kex); // log client kex
+ crypt_set_algorithms_server(session);
+ if (set_kex(session) < 0) {
+ goto error;
+ }
+ set_status(session,0.8f);
+ session->session_state=SSH_SESSION_STATE_DH;
+ break;
+ case SSH_SESSION_STATE_DH:
+ if(session->dh_handshake_state==DH_STATE_FINISHED){
+ if (generate_session_keys(session) < 0) {
+ goto error;
+ }
+
+ /*
+ * Once we got SSH2_MSG_NEWKEYS we can switch next_crypto and
+ * current_crypto
+ */
+ if (session->current_crypto) {
+ crypto_free(session->current_crypto);
+ }
+
+ /* FIXME TODO later, include a function to change keys */
+ session->current_crypto = session->next_crypto;
+ session->next_crypto = crypto_new();
+ if (session->next_crypto == NULL) {
+ goto error;
+ }
+ set_status(session,1.0f);
+ session->connected = 1;
+ session->session_state=SSH_SESSION_STATE_AUTHENTICATING;
+ }
+ break;
+ case SSH_SESSION_STATE_AUTHENTICATING:
+ break;
+ case SSH_SESSION_STATE_ERROR:
+ goto error;
+ default:
+ ssh_set_error(session,SSH_FATAL,"Invalid state %d",session->session_state);
+ }
+ leave_function();
+ return;
+ error:
+ ssh_socket_close(session->socket);
+ session->alive = 0;
+ session->session_state=SSH_SESSION_STATE_ERROR;
+ leave_function();
+}
+
+/**
+ * @internal
+ *
+ * @brief Gets the banner from socket and saves it in session.
+ * Updates the session state
+ *
+ * @param data pointer to the beginning of header
+ * @param len size of the banner
+ * @param user is a pointer to session
+ * @returns Number of bytes processed, or zero if the banner is not complete.
+ */
+static int callback_receive_banner(const void *data, size_t len, void *user) {
+ char *buffer = (char *) data;
+ ssh_session session = (ssh_session) user;
+ char *str = NULL;
+ size_t i;
+ int ret=0;
+
+ enter_function();
+
+ for (i = 0; i < len; i++) {
+#ifdef WITH_PCAP
+ if(session->pcap_ctx && buffer[i] == '\n') {
+ ssh_pcap_context_write(session->pcap_ctx,
+ SSH_PCAP_DIR_IN,
+ buffer,
+ i + 1,
+ i + 1);
+ }
+#endif
+ if (buffer[i] == '\r') {
+ buffer[i]='\0';
+ }
+
+ if (buffer[i] == '\n') {
+ buffer[i]='\0';
+
+ str = strdup(buffer);
+ /* number of bytes read */
+ ret = i + 1;
+ session->clientbanner = str;
+ session->session_state = SSH_SESSION_STATE_BANNER_RECEIVED;
+ ssh_log(session, SSH_LOG_PACKET, "Received banner: %s", str);
+ session->ssh_connection_callback(session);
+
+ leave_function();
+ return ret;
+ }
+
+ if(i > 127) {
+ /* Too big banner */
+ session->session_state = SSH_SESSION_STATE_ERROR;
+ ssh_set_error(session, SSH_FATAL, "Receiving banner: too large banner");
+
+ leave_function();
+ return 0;
+ }
+ }
+
+ leave_function();
+ return ret;
+}
+
+int ssh_bind_accept(ssh_bind sshbind, ssh_session session) {
+ ssh_private_key dsa = NULL;
+ ssh_private_key rsa = NULL;
+ socket_t fd = SSH_INVALID_SOCKET;
+ int i;
+
+ if (sshbind->bindfd == SSH_INVALID_SOCKET) {
+ ssh_set_error(sshbind, SSH_FATAL,
+ "Can't accept new clients on a not bound socket.");
+ return SSH_ERROR;
+ }
+ if(session == NULL){
+ ssh_set_error(sshbind, SSH_FATAL,"session is null");
+ return SSH_ERROR;
+ }
+ if (sshbind->dsakey == NULL && sshbind->rsakey == NULL) {
+ ssh_set_error(sshbind, SSH_FATAL,
+ "DSA or RSA host key file must be set before accept()");
+ return SSH_ERROR;
+ }
+
+ if (sshbind->dsakey) {
+ dsa = _privatekey_from_file(sshbind, sshbind->dsakey, SSH_KEYTYPE_DSS);
+ if (dsa == NULL) {
+ return SSH_ERROR;
+ }
+ }
+
+ if (sshbind->rsakey) {
+ rsa = _privatekey_from_file(sshbind, sshbind->rsakey, SSH_KEYTYPE_RSA);
+ if (rsa == NULL) {
+ privatekey_free(dsa);
+ return SSH_ERROR;
+ }
+ }
+
+ fd = accept(sshbind->bindfd, NULL, NULL);
+ if (fd == SSH_INVALID_SOCKET) {
+ ssh_set_error(sshbind, SSH_FATAL,
+ "Accepting a new connection: %s",
+ strerror(errno));
+ privatekey_free(dsa);
+ privatekey_free(rsa);
+ return SSH_ERROR;
+ }
+
+ session->server = 1;
+ session->version = 2;
+
+ /* copy options */
+ for (i = 0; i < 10; ++i) {
+ if (sshbind->wanted_methods[i]) {
+ session->wanted_methods[i] = strdup(sshbind->wanted_methods[i]);
+ if (session->wanted_methods[i] == NULL) {
+ privatekey_free(dsa);
+ privatekey_free(rsa);
+ return SSH_ERROR;
+ }
+ }
+ }
+
+ if (sshbind->bindaddr == NULL)
+ session->bindaddr = NULL;
+ else {
+ session->bindaddr = strdup(sshbind->bindaddr);
+ if (session->bindaddr == NULL) {
+ privatekey_free(dsa);
+ privatekey_free(rsa);
+ return SSH_ERROR;
+ }
+ }
+
+ session->log_verbosity = sshbind->log_verbosity;
+
+ ssh_socket_free(session->socket);
+ session->socket = ssh_socket_new(session);
+ if (session->socket == NULL) {
+ privatekey_free(dsa);
+ privatekey_free(rsa);
+ return SSH_ERROR;
+ }
+ ssh_socket_set_fd(session->socket, fd);
+ session->dsa_key = dsa;
+ session->rsa_key = rsa;
+
+return SSH_OK;
+}
+
+/* Do the banner and key exchange */
+int ssh_handle_key_exchange(ssh_session session) {
+ int rc;
+
+ rc = ssh_send_banner(session, 1);
+ if (rc < 0) {
+ return SSH_ERROR;
+ }
+
+ session->alive = 1;
+
+ session->ssh_connection_callback = ssh_server_connection_callback;
+ session->session_state = SSH_SESSION_STATE_SOCKET_CONNECTED;
+ ssh_socket_set_callbacks(session->socket,&session->socket_callbacks);
+ session->socket_callbacks.data=callback_receive_banner;
+ session->socket_callbacks.exception=ssh_socket_exception_callback;
+ session->socket_callbacks.userdata=session;
+
+ rc = server_set_kex(session);
+ if (rc < 0) {
+ return SSH_ERROR;
+ }
+
+ while (session->session_state != SSH_SESSION_STATE_ERROR &&
+ session->session_state != SSH_SESSION_STATE_AUTHENTICATING &&
+ session->session_state != SSH_SESSION_STATE_DISCONNECTED) {
+ /*
+ * loop until SSH_SESSION_STATE_BANNER_RECEIVED or
+ * SSH_SESSION_STATE_ERROR
+ */
+ ssh_handle_packets(session,-1);
+ ssh_log(session,SSH_LOG_PACKET, "ssh_accept: Actual state : %d",
+ session->session_state);
+ }
+
+ if (session->session_state == SSH_SESSION_STATE_ERROR ||
+ session->session_state == SSH_SESSION_STATE_DISCONNECTED) {
+ return SSH_ERROR;
+ }
+
+ return SSH_OK;
+}
+
+/**
+ * @brief Blocking write on channel for stderr.
+ *
+ * @param channel The channel to write to.
+ *
+ * @param data A pointer to the data to write.
+ *
+ * @param len The length of the buffer to write to.
+ *
+ * @return The number of bytes written, SSH_ERROR on error.
+ *
+ * @see channel_read()
+ */
+int channel_write_stderr(ssh_channel channel, const void *data, uint32_t len) {
+ return channel_write_common(channel, data, len, 1);
+}
+
+/* messages */
+
+static int ssh_message_auth_reply_default(ssh_message msg,int partial) {
+ ssh_session session = msg->session;
+ char methods_c[128] = {0};
+ ssh_string methods = NULL;
+ int rc = SSH_ERROR;
+
+ enter_function();
+
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_USERAUTH_FAILURE) < 0) {
+ return rc;
+ }
+
+ if (session->auth_methods == 0) {
+ session->auth_methods = SSH_AUTH_METHOD_PUBLICKEY | SSH_AUTH_METHOD_PASSWORD;
+ }
+ if (session->auth_methods & SSH_AUTH_METHOD_PUBLICKEY) {
+ strcat(methods_c, "publickey,");
+ }
+ if (session->auth_methods & SSH_AUTH_METHOD_INTERACTIVE) {
+ strcat(methods_c, "keyboard-interactive,");
+ }
+ if (session->auth_methods & SSH_AUTH_METHOD_PASSWORD) {
+ strcat(methods_c, "password,");
+ }
+ if (session->auth_methods & SSH_AUTH_METHOD_HOSTBASED) {
+ strcat(methods_c, "hostbased,");
+ }
+
+ /* Strip the comma. */
+ methods_c[strlen(methods_c) - 1] = '\0'; // strip the comma. We are sure there is at
+
+ ssh_log(session, SSH_LOG_PACKET,
+ "Sending a auth failure. methods that can continue: %s", methods_c);
+
+ methods = ssh_string_from_char(methods_c);
+ if (methods == NULL) {
+ goto error;
+ }
+
+ if (buffer_add_ssh_string(msg->session->out_buffer, methods) < 0) {
+ goto error;
+ }
+
+ if (partial) {
+ if (buffer_add_u8(session->out_buffer, 1) < 0) {
+ goto error;
+ }
+ } else {
+ if (buffer_add_u8(session->out_buffer, 0) < 0) {
+ goto error;
+ }
+ }
+
+ rc = packet_send(msg->session);
+error:
+ ssh_string_free(methods);
+
+ leave_function();
+ return rc;
+}
+
+static int ssh_message_channel_request_open_reply_default(ssh_message msg) {
+ ssh_log(msg->session, SSH_LOG_FUNCTIONS, "Refusing a channel");
+
+ if (buffer_add_u8(msg->session->out_buffer
+ , SSH2_MSG_CHANNEL_OPEN_FAILURE) < 0) {
+ goto error;
+ }
+ if (buffer_add_u32(msg->session->out_buffer,
+ htonl(msg->channel_request_open.sender)) < 0) {
+ goto error;
+ }
+ if (buffer_add_u32(msg->session->out_buffer,
+ htonl(SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED)) < 0) {
+ goto error;
+ }
+ /* reason is an empty string */
+ if (buffer_add_u32(msg->session->out_buffer, 0) < 0) {
+ goto error;
+ }
+ /* language too */
+ if (buffer_add_u32(msg->session->out_buffer, 0) < 0) {
+ goto error;
+ }
+
+ return packet_send(msg->session);
+error:
+ return SSH_ERROR;
+}
+
+static int ssh_message_channel_request_reply_default(ssh_message msg) {
+ uint32_t channel;
+
+ if (msg->channel_request.want_reply) {
+ channel = msg->channel_request.channel->remote_channel;
+
+ ssh_log(msg->session, SSH_LOG_PACKET,
+ "Sending a default channel_request denied to channel %d", channel);
+
+ if (buffer_add_u8(msg->session->out_buffer, SSH2_MSG_CHANNEL_FAILURE) < 0) {
+ return SSH_ERROR;
+ }
+ if (buffer_add_u32(msg->session->out_buffer, htonl(channel)) < 0) {
+ return SSH_ERROR;
+ }
+
+ return packet_send(msg->session);
+ }
+
+ ssh_log(msg->session, SSH_LOG_PACKET,
+ "The client doesn't want to know the request failed!");
+
+ return SSH_OK;
+}
+
+static int ssh_message_service_request_reply_default(ssh_message msg) {
+ /* The only return code accepted by specifications are success or disconnect */
+ return ssh_message_service_reply_success(msg);
+}
+
+int ssh_message_service_reply_success(ssh_message msg) {
+ struct ssh_string_struct *service;
+ ssh_session session=msg->session;
+ if (msg == NULL) {
+ return SSH_ERROR;
+ }
+ ssh_log(session, SSH_LOG_PACKET,
+ "Sending a SERVICE_ACCEPT for service %s", msg->service_request.service);
+ if (buffer_add_u8(session->out_buffer, SSH2_MSG_SERVICE_ACCEPT) < 0) {
+ return -1;
+ }
+ service=ssh_string_from_char(msg->service_request.service);
+ if (buffer_add_ssh_string(session->out_buffer, service) < 0) {
+ ssh_string_free(service);
+ return -1;
+ }
+ ssh_string_free(service);
+ return packet_send(msg->session);
+}
+
+int ssh_message_reply_default(ssh_message msg) {
+ if (msg == NULL) {
+ return -1;
+ }
+
+ switch(msg->type) {
+ case SSH_REQUEST_AUTH:
+ return ssh_message_auth_reply_default(msg, 0);
+ case SSH_REQUEST_CHANNEL_OPEN:
+ return ssh_message_channel_request_open_reply_default(msg);
+ case SSH_REQUEST_CHANNEL:
+ return ssh_message_channel_request_reply_default(msg);
+ case SSH_REQUEST_SERVICE:
+ return ssh_message_service_request_reply_default(msg);
+ default:
+ ssh_log(msg->session, SSH_LOG_PACKET,
+ "Don't know what to default reply to %d type",
+ msg->type);
+ break;
+ }
+
+ return -1;
+}
+
+char *ssh_message_service_service(ssh_message msg){
+ if (msg == NULL) {
+ return NULL;
+ }
+ return msg->service_request.service;
+}
+
+char *ssh_message_auth_user(ssh_message msg) {
+ if (msg == NULL) {
+ return NULL;
+ }
+
+ return msg->auth_request.username;
+}
+
+char *ssh_message_auth_password(ssh_message msg){
+ if (msg == NULL) {
+ return NULL;
+ }
+
+ return msg->auth_request.password;
+}
+
+/* Get the publickey of an auth request */
+ssh_public_key ssh_message_auth_publickey(ssh_message msg){
+ if (msg == NULL) {
+ return NULL;
+ }
+
+ return msg->auth_request.public_key;
+}
+
+enum ssh_publickey_state_e ssh_message_auth_publickey_state(ssh_message msg){
+ if (msg == NULL) {
+ return -1;
+ }
+ return msg->auth_request.signature_state;
+}
+
+int ssh_message_auth_set_methods(ssh_message msg, int methods) {
+ if (msg == NULL || msg->session == NULL) {
+ return -1;
+ }
+
+ msg->session->auth_methods = methods;
+
+ return 0;
+}
+
+int ssh_message_auth_reply_success(ssh_message msg, int partial) {
+ if (msg == NULL) {
+ return SSH_ERROR;
+ }
+
+ if (partial) {
+ return ssh_message_auth_reply_default(msg, partial);
+ }
+
+ if (buffer_add_u8(msg->session->out_buffer,SSH2_MSG_USERAUTH_SUCCESS) < 0) {
+ return SSH_ERROR;
+ }
+
+ return packet_send(msg->session);
+}
+
+/* Answer OK to a pubkey auth request */
+int ssh_message_auth_reply_pk_ok(ssh_message msg, ssh_string algo, ssh_string pubkey) {
+ if (msg == NULL) {
+ return SSH_ERROR;
+ }
+
+ if (buffer_add_u8(msg->session->out_buffer, SSH2_MSG_USERAUTH_PK_OK) < 0 ||
+ buffer_add_ssh_string(msg->session->out_buffer, algo) < 0 ||
+ buffer_add_ssh_string(msg->session->out_buffer, pubkey) < 0) {
+ return SSH_ERROR;
+ }
+
+ return packet_send(msg->session);
+}
+
+int ssh_message_auth_reply_pk_ok_simple(ssh_message msg) {
+ ssh_string algo;
+ ssh_string pubkey;
+ int ret;
+ algo=ssh_string_from_char(msg->auth_request.public_key->type_c);
+ pubkey=publickey_to_string(msg->auth_request.public_key);
+ ret=ssh_message_auth_reply_pk_ok(msg,algo,pubkey);
+ ssh_string_free(algo);
+ ssh_string_free(pubkey);
+ return ret;
+}
+
+
+char *ssh_message_channel_request_open_originator(ssh_message msg){
+ return msg->channel_request_open.originator;
+}
+
+int ssh_message_channel_request_open_originator_port(ssh_message msg){
+ return msg->channel_request_open.originator_port;
+}
+
+char *ssh_message_channel_request_open_destination(ssh_message msg){
+ return msg->channel_request_open.destination;
+}
+
+int ssh_message_channel_request_open_destination_port(ssh_message msg){
+ return msg->channel_request_open.destination_port;
+}
+
+ssh_channel ssh_message_channel_request_channel(ssh_message msg){
+ return msg->channel_request.channel;
+}
+
+char *ssh_message_channel_request_pty_term(ssh_message msg){
+ return msg->channel_request.TERM;
+}
+
+int ssh_message_channel_request_pty_width(ssh_message msg){
+ return msg->channel_request.width;
+}
+
+int ssh_message_channel_request_pty_height(ssh_message msg){
+ return msg->channel_request.height;
+}
+
+int ssh_message_channel_request_pty_pxwidth(ssh_message msg){
+ return msg->channel_request.pxwidth;
+}
+
+int ssh_message_channel_request_pty_pxheight(ssh_message msg){
+ return msg->channel_request.pxheight;
+}
+
+char *ssh_message_channel_request_env_name(ssh_message msg){
+ return msg->channel_request.var_name;
+}
+
+char *ssh_message_channel_request_env_value(ssh_message msg){
+ return msg->channel_request.var_value;
+}
+
+char *ssh_message_channel_request_command(ssh_message msg){
+ return msg->channel_request.command;
+}
+
+char *ssh_message_channel_request_subsystem(ssh_message msg){
+ return msg->channel_request.subsystem;
+}
+
+/** @brief defines the SSH_MESSAGE callback
+ * @param session the current ssh session
+ * @param[in] ssh_message_callback_ a function pointer to a callback taking the
+ * current ssh session and received message as parameters. the function returns
+ * 0 if the message has been parsed and treated sucessfuly, 1 otherwise (libssh
+ * must take care of the response).
+ * @param[in] data void pointer to be passed to callback functions
+ */
+void ssh_set_message_callback(ssh_session session,
+ int(*ssh_bind_message_callback)(ssh_session session, ssh_message msg, void *data),
+ void *data) {
+ session->ssh_message_callback = ssh_bind_message_callback;
+ session->ssh_message_callback_data = data;
+}
+
+int ssh_execute_message_callbacks(ssh_session session){
+ ssh_message msg=NULL;
+ int ret;
+ ssh_handle_packets(session, 0);
+ if(!session->ssh_message_list)
+ return SSH_OK;
+ if(session->ssh_message_callback){
+ while((msg=ssh_message_pop_head(session)) != NULL) {
+ ret=session->ssh_message_callback(session,msg,
+ session->ssh_message_callback_data);
+ if(ret==1){
+ ret = ssh_message_reply_default(msg);
+ ssh_message_free(msg);
+ if(ret != SSH_OK)
+ return ret;
+ } else {
+ ssh_message_free(msg);
+ }
+ }
+ } else {
+ while((msg=ssh_message_pop_head(session)) != NULL) {
+ ret = ssh_message_reply_default(msg);
+ ssh_message_free(msg);
+ if(ret != SSH_OK)
+ return ret;
+ }
+ }
+ return SSH_OK;
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/session.c b/src/session.c
new file mode 100644
index 0000000..42f5e77
--- /dev/null
+++ b/src/session.c
@@ -0,0 +1,520 @@
+/*
+ * session.c - non-networking functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2005-2008 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <stdlib.h>
+#include "libssh/libssh.h"
+#include "libssh/priv.h"
+#include "libssh/server.h"
+#include "libssh/socket.h"
+#include "libssh/ssh2.h"
+#include "libssh/agent.h"
+#include "libssh/packet.h"
+#include "libssh/session.h"
+#include "libssh/misc.h"
+#include "libssh/buffer.h"
+#include "libssh/poll.h"
+
+#define FIRST_CHANNEL 42 // why not ? it helps to find bugs.
+
+/**
+ * @defgroup libssh_session The SSH session functions.
+ * @ingroup libssh
+ *
+ * Functions that manage a session.
+ *
+ * @{
+ */
+
+/**
+ * @brief Create a new ssh session.
+ *
+ * @returns A new ssh_session pointer, NULL on error.
+ */
+ssh_session ssh_new(void) {
+ ssh_session session;
+ char *id;
+ int rc;
+
+ session = malloc(sizeof (struct ssh_session_struct));
+ if (session == NULL) {
+ return NULL;
+ }
+ ZERO_STRUCTP(session);
+
+ session->next_crypto = crypto_new();
+ if (session->next_crypto == NULL) {
+ goto err;
+ }
+
+ session->socket = ssh_socket_new(session);
+ if (session->socket == NULL) {
+ goto err;
+ }
+
+ session->out_buffer = ssh_buffer_new();
+ if (session->out_buffer == NULL) {
+ goto err;
+ }
+
+ session->in_buffer=ssh_buffer_new();
+ if (session->in_buffer == NULL) {
+ goto err;
+ }
+
+ session->alive = 0;
+ session->auth_methods = 0;
+ session->blocking = 1;
+ session->log_indent = 0;
+ session->maxchannel = FIRST_CHANNEL;
+
+ /* options */
+ session->StrictHostKeyChecking = 1;
+ session->port = 22;
+ session->fd = -1;
+ session->ssh2 = 1;
+#ifdef WITH_SSH1
+ session->ssh1 = 1;
+#else
+ session->ssh1 = 0;
+#endif
+
+#ifndef _WIN32
+ session->agent = agent_new(session);
+ if (session->agent == NULL) {
+ goto err;
+ }
+#endif /* _WIN32 */
+
+ session->identity = ssh_list_new();
+ if (session->identity == NULL) {
+ goto err;
+ }
+
+ id = strdup("%d/id_rsa");
+ if (id == NULL) {
+ goto err;
+ }
+ rc = ssh_list_append(session->identity, id);
+ if (rc == SSH_ERROR) {
+ goto err;
+ }
+
+ id = strdup("%d/id_dsa");
+ if (id == NULL) {
+ goto err;
+ }
+ rc = ssh_list_append(session->identity, id);
+ if (rc == SSH_ERROR) {
+ goto err;
+ }
+
+ id = strdup("%d/identity");
+ if (id == NULL) {
+ goto err;
+ }
+ rc = ssh_list_append(session->identity, id);
+ if (rc == SSH_ERROR) {
+ goto err;
+ }
+
+ return session;
+
+err:
+ ssh_free(session);
+ return NULL;
+}
+
+/**
+ * @brief Deallocate a SSH session handle.
+ *
+ * @param[in] session The SSH session to free.
+ *
+ * @see ssh_disconnect()
+ * @see ssh_new()
+ */
+void ssh_free(ssh_session session) {
+ int i;
+ enter_function();
+
+ if (session == NULL) {
+ return;
+ }
+
+ SAFE_FREE(session->serverbanner);
+ SAFE_FREE(session->clientbanner);
+ SAFE_FREE(session->banner);
+#ifdef WITH_PCAP
+ if(session->pcap_ctx){
+ ssh_pcap_context_free(session->pcap_ctx);
+ session->pcap_ctx=NULL;
+ }
+#endif
+ ssh_buffer_free(session->in_buffer);
+ ssh_buffer_free(session->out_buffer);
+ session->in_buffer=session->out_buffer=NULL;
+ crypto_free(session->current_crypto);
+ crypto_free(session->next_crypto);
+ ssh_socket_free(session->socket);
+ /* delete all channels */
+ while (session->channels) {
+ ssh_channel_free(session->channels);
+ }
+#ifndef _WIN32
+ agent_free(session->agent);
+#endif /* _WIN32 */
+ if (session->client_kex.methods) {
+ for (i = 0; i < 10; i++) {
+ SAFE_FREE(session->client_kex.methods[i]);
+ }
+ }
+
+ if (session->server_kex.methods) {
+ for (i = 0; i < 10; i++) {
+ SAFE_FREE(session->server_kex.methods[i]);
+ }
+ }
+ SAFE_FREE(session->client_kex.methods);
+ SAFE_FREE(session->server_kex.methods);
+
+ privatekey_free(session->dsa_key);
+ privatekey_free(session->rsa_key);
+ if(session->ssh_message_list){
+ ssh_message msg;
+ while((msg=ssh_list_pop_head(ssh_message ,session->ssh_message_list))
+ != NULL){
+ ssh_message_free(msg);
+ }
+ ssh_list_free(session->ssh_message_list);
+ }
+
+ if (session->packet_callbacks)
+ ssh_list_free(session->packet_callbacks);
+
+ if (session->identity) {
+ char *id;
+
+ for (id = ssh_list_pop_head(char *, session->identity);
+ id != NULL;
+ id = ssh_list_pop_head(char *, session->identity)) {
+ SAFE_FREE(id);
+ }
+ ssh_list_free(session->identity);
+ }
+
+ /* options */
+ SAFE_FREE(session->username);
+ SAFE_FREE(session->host);
+ SAFE_FREE(session->sshdir);
+ SAFE_FREE(session->knownhosts);
+ SAFE_FREE(session->ProxyCommand);
+
+ for (i = 0; i < 10; i++) {
+ if (session->wanted_methods[i]) {
+ SAFE_FREE(session->wanted_methods[i]);
+ }
+ }
+
+ /* burn connection, it could hang sensitive datas */
+ ZERO_STRUCTP(session);
+ SAFE_FREE(session);
+}
+
+/**
+ * @brief Disconnect impolitely from a remote host by closing the socket.
+ *
+ * Suitable if you forked and want to destroy this session.
+ *
+ * @param[in] session The SSH session to disconnect.
+ */
+void ssh_silent_disconnect(ssh_session session) {
+ enter_function();
+
+ if (session == NULL) {
+ return;
+ }
+
+ ssh_socket_close(session->socket);
+ session->alive = 0;
+ ssh_disconnect(session);
+ leave_function();
+}
+
+/**
+ * @brief Set the session in blocking/nonblocking mode.
+ *
+ * @param[in] session The ssh session to change.
+ *
+ * @param[in] blocking Zero for nonblocking mode.
+ *
+ * \bug nonblocking code is in development and won't work as expected
+ */
+void ssh_set_blocking(ssh_session session, int blocking) {
+ if (session == NULL) {
+ return;
+ }
+
+ session->blocking = blocking ? 1 : 0;
+}
+
+/**
+ * @brief Get the fd of a connection.
+ *
+ * In case you'd need the file descriptor of the connection to the server/client.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @return The file descriptor of the connection, or -1 if it is
+ * not connected
+ */
+socket_t ssh_get_fd(ssh_session session) {
+ if (session == NULL) {
+ return -1;
+ }
+
+ return ssh_socket_get_fd_in(session->socket);
+}
+
+/**
+ * @brief Tell the session it has data to read on the file descriptor without
+ * blocking.
+ *
+ * @param[in] session The ssh session to use.
+ */
+void ssh_set_fd_toread(ssh_session session) {
+ if (session == NULL) {
+ return;
+ }
+
+ ssh_socket_set_toread(session->socket);
+}
+
+/**
+ * @brief Tell the session it may write to the file descriptor without blocking.
+ *
+ * @param[in] session The ssh session to use.
+ */
+void ssh_set_fd_towrite(ssh_session session) {
+ if (session == NULL) {
+ return;
+ }
+
+ ssh_socket_set_towrite(session->socket);
+}
+
+/**
+ * @brief Tell the session it has an exception to catch on the file descriptor.
+ *
+ * \param[in] session The ssh session to use.
+ */
+void ssh_set_fd_except(ssh_session session) {
+ if (session == NULL) {
+ return;
+ }
+
+ ssh_socket_set_except(session->socket);
+}
+
+/**
+ * @internal
+ *
+ * @brief Poll the current session for an event and call the appropriate
+ * callbacks.
+ *
+ * This will block until one event happens.
+ *
+ * @param[in] session The session handle to use.
+ *
+ * @param[in] timeout Set an upper limit on the time for which this function
+ * will block, in milliseconds. Specifying a negative value
+ * means an infinite timeout. This parameter is passed to
+ * the poll() function.
+ *
+ * @return SSH_OK on success, SSH_ERROR otherwise.
+ */
+int ssh_handle_packets(ssh_session session, int timeout) {
+ ssh_poll_handle spoll_in,spoll_out;
+ ssh_poll_ctx ctx;
+ if(session==NULL || session->socket==NULL)
+ return SSH_ERROR;
+ enter_function();
+ spoll_in=ssh_socket_get_poll_handle_in(session->socket);
+ spoll_out=ssh_socket_get_poll_handle_out(session->socket);
+ ssh_poll_set_events(spoll_in, POLLIN | POLLERR);
+ ctx=ssh_poll_get_ctx(spoll_in);
+ if(ctx==NULL){
+ ctx=ssh_get_global_poll_ctx(session);
+ ssh_poll_ctx_add(ctx,spoll_in);
+ if(spoll_in != spoll_out)
+ ssh_poll_ctx_add(ctx,spoll_out);
+ }
+ ssh_poll_ctx_dopoll(ctx,timeout);
+ leave_function();
+ if (session->session_state != SSH_SESSION_STATE_ERROR)
+ return SSH_OK;
+ else
+ return SSH_ERROR;
+}
+
+/**
+ * @brief Get session status
+ *
+ * @param session The ssh session to use.
+ *
+ * @returns A bitmask including SSH_CLOSED, SSH_READ_PENDING or SSH_CLOSED_ERROR
+ * which respectively means the session is closed, has data to read on
+ * the connection socket and session was closed due to an error.
+ */
+int ssh_get_status(ssh_session session) {
+ int socketstate;
+ int r = 0;
+
+ if (session == NULL) {
+ return 0;
+ }
+
+ socketstate = ssh_socket_get_status(session->socket);
+
+ if (session->closed) {
+ r |= SSH_CLOSED;
+ }
+ if (socketstate & SSH_READ_PENDING) {
+ r |= SSH_READ_PENDING;
+ }
+ if (session->closed && (socketstate & SSH_CLOSED_ERROR)) {
+ r |= SSH_CLOSED_ERROR;
+ }
+
+ return r;
+}
+
+/**
+ * @brief Get the disconnect message from the server.
+ *
+ * @param[in] session The ssh session to use.
+ *
+ * @return The message sent by the server along with the
+ * disconnect, or NULL in which case the reason of the
+ * disconnect may be found with ssh_get_error.
+ *
+ * @see ssh_get_error()
+ */
+const char *ssh_get_disconnect_message(ssh_session session) {
+ if (session == NULL) {
+ return NULL;
+ }
+
+ if (!session->closed) {
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Connection not closed yet");
+ } else if(session->closed_by_except) {
+ ssh_set_error(session, SSH_REQUEST_DENIED,
+ "Connection closed by socket error");
+ } else if(!session->discon_msg) {
+ ssh_set_error(session, SSH_FATAL,
+ "Connection correctly closed but no disconnect message");
+ } else {
+ return session->discon_msg;
+ }
+
+ return NULL;
+}
+
+/**
+ * @brief Get the protocol version of the session.
+ *
+ * @param session The ssh session to use.
+ *
+ * @return 1 or 2, for ssh1 or ssh2, < 0 on error.
+ */
+int ssh_get_version(ssh_session session) {
+ if (session == NULL) {
+ return -1;
+ }
+
+ return session->version;
+}
+
+/**
+ * @internal
+ *
+ * @brief Handle a SSH_DISCONNECT packet.
+ */
+SSH_PACKET_CALLBACK(ssh_packet_disconnect_callback){
+ uint32_t code;
+ char *error=NULL;
+ ssh_string error_s;
+ (void)user;
+ (void)type;
+ buffer_get_u32(packet, &code);
+ error_s = buffer_get_ssh_string(packet);
+ if (error_s != NULL) {
+ error = ssh_string_to_char(error_s);
+ ssh_string_free(error_s);
+ }
+ ssh_log(session, SSH_LOG_PACKET, "Received SSH_MSG_DISCONNECT %d:%s",code,
+ error != NULL ? error : "no error");
+ ssh_set_error(session, SSH_FATAL,
+ "Received SSH_MSG_DISCONNECT: %d:%s",code,
+ error != NULL ? error : "no error");
+ SAFE_FREE(error);
+
+ ssh_socket_close(session->socket);
+ session->alive = 0;
+ /* TODO: handle a graceful disconnect */
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ *
+ * @brief Handle a SSH_IGNORE and SSH_DEBUG packet.
+ */
+SSH_PACKET_CALLBACK(ssh_packet_ignore_callback){
+ (void)user;
+ (void)type;
+ (void)packet;
+ ssh_log(session,SSH_LOG_PROTOCOL,"Received %s packet",type==SSH2_MSG_IGNORE ? "SSH_MSG_IGNORE" : "SSH_MSG_DEBUG");
+ /* TODO: handle a graceful disconnect */
+ return SSH_PACKET_USED;
+}
+
+/**
+ * @internal
+ * @brief Callback to be called when the socket received an exception code.
+ * @param user is a pointer to session
+ */
+void ssh_socket_exception_callback(int code, int errno_code, void *user){
+ ssh_session session=(ssh_session)user;
+ enter_function();
+ ssh_log(session,SSH_LOG_RARE,"Socket exception callback: %d (%d)",code, errno_code);
+ session->session_state=SSH_SESSION_STATE_ERROR;
+ ssh_set_error(session,SSH_FATAL,"Socket error: %s",strerror(errno_code));
+ session->ssh_connection_callback(session);
+ leave_function();
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/sftp.c b/src/sftp.c
new file mode 100644
index 0000000..e5c91af
--- /dev/null
+++ b/src/sftp.c
@@ -0,0 +1,3207 @@
+/*
+ * sftp.c - Secure FTP functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2005-2008 by Aris Adamantiadis
+ * Copyright (c) 2008-2009 by Andreas Schneider <mail@cynapses.org>
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/* This file contains code written by Nick Zitzmann */
+
+#include <errno.h>
+#include <ctype.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#else
+#define S_IFSOCK 0140000
+#define S_IFLNK 0120000
+
+#ifdef _MSC_VER
+#define S_IFBLK 0060000
+#define S_IFIFO 0010000
+#endif
+#endif
+
+#include "libssh/priv.h"
+#include "libssh/ssh2.h"
+#include "libssh/sftp.h"
+#include "libssh/buffer.h"
+#include "libssh/channels.h"
+#include "libssh/session.h"
+#include "libssh/misc.h"
+
+#ifdef WITH_SFTP
+
+#define sftp_enter_function() _enter_function(sftp->channel->session)
+#define sftp_leave_function() _leave_function(sftp->channel->session)
+
+struct sftp_ext_struct {
+ unsigned int count;
+ char **name;
+ char **data;
+};
+
+/* functions */
+static int sftp_enqueue(sftp_session session, sftp_message msg);
+static void sftp_message_free(sftp_message msg);
+static void sftp_set_error(sftp_session sftp, int errnum);
+static void status_msg_free(sftp_status_message status);
+
+static sftp_ext sftp_ext_new(void) {
+ sftp_ext ext;
+
+ ext = malloc(sizeof(struct sftp_ext_struct));
+ if (ext == NULL) {
+ return NULL;
+ }
+ ZERO_STRUCTP(ext);
+
+ return ext;
+}
+
+static void sftp_ext_free(sftp_ext ext) {
+ unsigned int i;
+
+ if (ext == NULL) {
+ return;
+ }
+
+ if (ext->count) {
+ for (i = 0; i < ext->count; i++) {
+ SAFE_FREE(ext->name[i]);
+ SAFE_FREE(ext->data[i]);
+ }
+ SAFE_FREE(ext->name);
+ SAFE_FREE(ext->data);
+ }
+
+ SAFE_FREE(ext);
+}
+
+sftp_session sftp_new(ssh_session session){
+ sftp_session sftp;
+
+ if (session == NULL) {
+ return NULL;
+ }
+ enter_function();
+
+ sftp = malloc(sizeof(struct sftp_session_struct));
+ if (sftp == NULL) {
+ ssh_set_error_oom(session);
+ leave_function();
+ return NULL;
+ }
+ ZERO_STRUCTP(sftp);
+
+ sftp->ext = sftp_ext_new();
+ if (sftp->ext == NULL) {
+ ssh_set_error_oom(session);
+ SAFE_FREE(sftp);
+ leave_function();
+ return NULL;
+ }
+
+ sftp->session = session;
+ sftp->channel = ssh_channel_new(session);
+ if (sftp->channel == NULL) {
+ SAFE_FREE(sftp);
+ leave_function();
+ return NULL;
+ }
+
+ if (ssh_channel_open_session(sftp->channel)) {
+ ssh_channel_free(sftp->channel);
+ SAFE_FREE(sftp);
+ leave_function();
+ return NULL;
+ }
+
+ if (ssh_channel_request_sftp(sftp->channel)) {
+ sftp_free(sftp);
+ leave_function();
+ return NULL;
+ }
+
+ leave_function();
+ return sftp;
+}
+
+#ifdef WITH_SERVER
+sftp_session sftp_server_new(ssh_session session, ssh_channel chan){
+ sftp_session sftp = NULL;
+
+ sftp = malloc(sizeof(struct sftp_session_struct));
+ if (sftp == NULL) {
+ ssh_set_error_oom(session);
+ return NULL;
+ }
+ ZERO_STRUCTP(sftp);
+
+ sftp->session = session;
+ sftp->channel = chan;
+
+ return sftp;
+}
+
+int sftp_server_init(sftp_session sftp){
+ ssh_session session = sftp->session;
+ sftp_packet packet = NULL;
+ ssh_buffer reply = NULL;
+ uint32_t version;
+
+ sftp_enter_function();
+
+ packet = sftp_packet_read(sftp);
+ if (packet == NULL) {
+ sftp_leave_function();
+ return -1;
+ }
+
+ if (packet->type != SSH_FXP_INIT) {
+ ssh_set_error(session, SSH_FATAL,
+ "Packet read of type %d instead of SSH_FXP_INIT",
+ packet->type);
+
+ sftp_packet_free(packet);
+ sftp_leave_function();
+ return -1;
+ }
+
+ ssh_log(session, SSH_LOG_PACKET, "Received SSH_FXP_INIT");
+
+ buffer_get_u32(packet->payload, &version);
+ version = ntohl(version);
+ ssh_log(session, SSH_LOG_PACKET, "Client version: %d", version);
+ sftp->client_version = version;
+
+ sftp_packet_free(packet);
+
+ reply = ssh_buffer_new();
+ if (reply == NULL) {
+ ssh_set_error_oom(session);
+ sftp_leave_function();
+ return -1;
+ }
+
+ if (buffer_add_u32(reply, ntohl(LIBSFTP_VERSION)) < 0) {
+ ssh_set_error_oom(session);
+ ssh_buffer_free(reply);
+ sftp_leave_function();
+ return -1;
+ }
+
+ if (sftp_packet_write(sftp, SSH_FXP_VERSION, reply) < 0) {
+ ssh_buffer_free(reply);
+ sftp_leave_function();
+ return -1;
+ }
+ ssh_buffer_free(reply);
+
+ ssh_log(session, SSH_LOG_RARE, "Server version sent");
+
+ if (version > LIBSFTP_VERSION) {
+ sftp->version = LIBSFTP_VERSION;
+ } else {
+ sftp->version=version;
+ }
+
+ sftp_leave_function();
+ return 0;
+}
+#endif /* WITH_SERVER */
+
+void sftp_free(sftp_session sftp){
+ sftp_request_queue ptr;
+
+ if (sftp == NULL) {
+ return;
+ }
+
+ ssh_channel_send_eof(sftp->channel);
+ ptr = sftp->queue;
+ while(ptr) {
+ sftp_request_queue old;
+ sftp_message_free(ptr->message);
+ old = ptr->next;
+ SAFE_FREE(ptr);
+ ptr = old;
+ }
+
+ ssh_channel_free(sftp->channel);
+ sftp_ext_free(sftp->ext);
+ ZERO_STRUCTP(sftp);
+
+ SAFE_FREE(sftp);
+}
+
+int sftp_packet_write(sftp_session sftp, uint8_t type, ssh_buffer payload){
+ int size;
+
+ if (buffer_prepend_data(payload, &type, sizeof(uint8_t)) < 0) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+
+ size = htonl(ssh_buffer_get_len(payload));
+ if (buffer_prepend_data(payload, &size, sizeof(uint32_t)) < 0) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+
+ size = ssh_channel_write(sftp->channel, ssh_buffer_get_begin(payload),
+ ssh_buffer_get_len(payload));
+ if (size < 0) {
+ return -1;
+ } else if((uint32_t) size != ssh_buffer_get_len(payload)) {
+ ssh_log(sftp->session, SSH_LOG_PACKET,
+ "Had to write %d bytes, wrote only %d",
+ ssh_buffer_get_len(payload),
+ size);
+ }
+
+ return size;
+}
+
+sftp_packet sftp_packet_read(sftp_session sftp) {
+ sftp_packet packet = NULL;
+ uint32_t size;
+
+ sftp_enter_function();
+
+ packet = malloc(sizeof(struct sftp_packet_struct));
+ if (packet == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+ packet->sftp = sftp;
+ packet->payload = ssh_buffer_new();
+ if (packet->payload == NULL) {
+ ssh_set_error_oom(sftp->session);
+ SAFE_FREE(packet);
+ return NULL;
+ }
+
+ if (channel_read_buffer(sftp->channel, packet->payload, 4, 0) <= 0) {
+ ssh_buffer_free(packet->payload);
+ SAFE_FREE(packet);
+ sftp_leave_function();
+ return NULL;
+ }
+
+ if (buffer_get_u32(packet->payload, &size) != sizeof(uint32_t)) {
+ ssh_set_error(sftp->session, SSH_FATAL, "Short sftp packet!");
+ ssh_buffer_free(packet->payload);
+ SAFE_FREE(packet);
+ sftp_leave_function();
+ return NULL;
+ }
+
+ size = ntohl(size);
+ if (channel_read_buffer(sftp->channel, packet->payload, 1, 0) <= 0) {
+ /* TODO: check if there are cases where an error needs to be set here */
+ ssh_buffer_free(packet->payload);
+ SAFE_FREE(packet);
+ sftp_leave_function();
+ return NULL;
+ }
+
+ buffer_get_u8(packet->payload, &packet->type);
+ if (size > 1) {
+ if (channel_read_buffer(sftp->channel, packet->payload, size - 1, 0) <= 0) {
+ /* TODO: check if there are cases where an error needs to be set here */
+ ssh_buffer_free(packet->payload);
+ SAFE_FREE(packet);
+ sftp_leave_function();
+ return NULL;
+ }
+ }
+
+ sftp_leave_function();
+ return packet;
+}
+
+static void sftp_set_error(sftp_session sftp, int errnum) {
+ if (sftp != NULL) {
+ sftp->errnum = errnum;
+ }
+}
+
+/* Get the last sftp error */
+int sftp_get_error(sftp_session sftp) {
+ if (sftp == NULL) {
+ return -1;
+ }
+
+ return sftp->errnum;
+}
+
+static sftp_message sftp_message_new(sftp_session sftp){
+ sftp_message msg = NULL;
+
+ sftp_enter_function();
+
+ msg = malloc(sizeof(struct sftp_message_struct));
+ if (msg == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+ ZERO_STRUCTP(msg);
+
+ msg->payload = ssh_buffer_new();
+ if (msg->payload == NULL) {
+ ssh_set_error_oom(sftp->session);
+ SAFE_FREE(msg);
+ return NULL;
+ }
+ msg->sftp = sftp;
+
+ sftp_leave_function();
+ return msg;
+}
+
+static void sftp_message_free(sftp_message msg) {
+ sftp_session sftp;
+
+ if (msg == NULL) {
+ return;
+ }
+
+ sftp = msg->sftp;
+ sftp_enter_function();
+
+ ssh_buffer_free(msg->payload);
+ SAFE_FREE(msg);
+
+ sftp_leave_function();
+}
+
+static sftp_message sftp_get_message(sftp_packet packet) {
+ sftp_session sftp = packet->sftp;
+ sftp_message msg = NULL;
+
+ sftp_enter_function();
+
+ msg = sftp_message_new(sftp);
+ if (msg == NULL) {
+ sftp_leave_function();
+ return NULL;
+ }
+
+ msg->sftp = packet->sftp;
+ msg->packet_type = packet->type;
+
+ if ((packet->type != SSH_FXP_STATUS) && (packet->type!=SSH_FXP_HANDLE) &&
+ (packet->type != SSH_FXP_DATA) && (packet->type != SSH_FXP_ATTRS) &&
+ (packet->type != SSH_FXP_NAME) && (packet->type != SSH_FXP_EXTENDED_REPLY)) {
+ ssh_set_error(packet->sftp->session, SSH_FATAL,
+ "Unknown packet type %d", packet->type);
+ sftp_message_free(msg);
+ sftp_leave_function();
+ return NULL;
+ }
+
+ if (buffer_get_u32(packet->payload, &msg->id) != sizeof(uint32_t)) {
+ ssh_set_error(packet->sftp->session, SSH_FATAL,
+ "Invalid packet %d: no ID", packet->type);
+ sftp_message_free(msg);
+ sftp_leave_function();
+ return NULL;
+ }
+
+ ssh_log(packet->sftp->session, SSH_LOG_PACKET,
+ "Packet with id %d type %d",
+ msg->id,
+ msg->packet_type);
+
+ if (buffer_add_data(msg->payload, buffer_get_rest(packet->payload),
+ buffer_get_rest_len(packet->payload)) < 0) {
+ ssh_set_error_oom(sftp->session);
+ sftp_message_free(msg);
+ sftp_leave_function();
+ return NULL;
+ }
+
+ sftp_leave_function();
+ return msg;
+}
+
+static int sftp_read_and_dispatch(sftp_session sftp) {
+ sftp_packet packet = NULL;
+ sftp_message msg = NULL;
+
+ sftp_enter_function();
+
+ packet = sftp_packet_read(sftp);
+ if (packet == NULL) {
+ sftp_leave_function();
+ return -1; /* something nasty happened reading the packet */
+ }
+
+ msg = sftp_get_message(packet);
+ sftp_packet_free(packet);
+ if (msg == NULL) {
+ sftp_leave_function();
+ return -1;
+ }
+
+ if (sftp_enqueue(sftp, msg) < 0) {
+ sftp_message_free(msg);
+ sftp_leave_function();
+ return -1;
+ }
+
+ sftp_leave_function();
+ return 0;
+}
+
+void sftp_packet_free(sftp_packet packet) {
+ if (packet == NULL) {
+ return;
+ }
+
+ ssh_buffer_free(packet->payload);
+ free(packet);
+}
+
+/* Initialize the sftp session with the server. */
+int sftp_init(sftp_session sftp) {
+ sftp_packet packet = NULL;
+ ssh_buffer buffer = NULL;
+ ssh_string ext_name_s = NULL;
+ ssh_string ext_data_s = NULL;
+ char *ext_name = NULL;
+ char *ext_data = NULL;
+ uint32_t version = htonl(LIBSFTP_VERSION);
+
+ sftp_enter_function();
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ sftp_leave_function();
+ return -1;
+ }
+
+ if (buffer_add_u32(buffer, version) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ sftp_leave_function();
+ return -1;
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_INIT, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ sftp_leave_function();
+ return -1;
+ }
+ ssh_buffer_free(buffer);
+
+ packet = sftp_packet_read(sftp);
+ if (packet == NULL) {
+ sftp_leave_function();
+ return -1;
+ }
+
+ if (packet->type != SSH_FXP_VERSION) {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received a %d messages instead of SSH_FXP_VERSION", packet->type);
+ sftp_packet_free(packet);
+ sftp_leave_function();
+ return -1;
+ }
+
+ /* TODO: are we sure there are 4 bytes ready? */
+ buffer_get_u32(packet->payload, &version);
+ version = ntohl(version);
+ ssh_log(sftp->session, SSH_LOG_RARE,
+ "SFTP server version %d",
+ version);
+
+ ext_name_s = buffer_get_ssh_string(packet->payload);
+ while (ext_name_s != NULL) {
+ int count = sftp->ext->count;
+ char **tmp;
+
+ ext_data_s = buffer_get_ssh_string(packet->payload);
+ if (ext_data_s == NULL) {
+ ssh_string_free(ext_name_s);
+ break;
+ }
+
+ ext_name = ssh_string_to_char(ext_name_s);
+ ext_data = ssh_string_to_char(ext_data_s);
+ if (ext_name == NULL || ext_data == NULL) {
+ ssh_set_error_oom(sftp->session);
+ SAFE_FREE(ext_name);
+ SAFE_FREE(ext_data);
+ ssh_string_free(ext_name_s);
+ ssh_string_free(ext_data_s);
+ return -1;
+ }
+ ssh_log(sftp->session, SSH_LOG_RARE,
+ "SFTP server extension: %s, version: %s",
+ ext_name, ext_data);
+
+ count++;
+ tmp = realloc(sftp->ext->name, count * sizeof(char *));
+ if (tmp == NULL) {
+ ssh_set_error_oom(sftp->session);
+ SAFE_FREE(ext_name);
+ SAFE_FREE(ext_data);
+ ssh_string_free(ext_name_s);
+ ssh_string_free(ext_data_s);
+ return -1;
+ }
+ tmp[count - 1] = ext_name;
+ sftp->ext->name = tmp;
+
+ tmp = realloc(sftp->ext->data, count * sizeof(char *));
+ if (tmp == NULL) {
+ ssh_set_error_oom(sftp->session);
+ SAFE_FREE(ext_name);
+ SAFE_FREE(ext_data);
+ ssh_string_free(ext_name_s);
+ ssh_string_free(ext_data_s);
+ return -1;
+ }
+ tmp[count - 1] = ext_data;
+ sftp->ext->data = tmp;
+
+ sftp->ext->count = count;
+
+ ssh_string_free(ext_name_s);
+ ssh_string_free(ext_data_s);
+
+ ext_name_s = buffer_get_ssh_string(packet->payload);
+ }
+
+ sftp_packet_free(packet);
+
+ sftp->version = sftp->server_version = version;
+
+ sftp_leave_function();
+
+ return 0;
+}
+
+unsigned int sftp_extensions_get_count(sftp_session sftp) {
+ if (sftp == NULL || sftp->ext == NULL) {
+ return 0;
+ }
+
+ return sftp->ext->count;
+}
+
+const char *sftp_extensions_get_name(sftp_session sftp, unsigned int idx) {
+ if (sftp == NULL)
+ return NULL;
+ if (sftp->ext == NULL || sftp->ext->name == NULL) {
+ ssh_set_error_invalid(sftp->session, __FUNCTION__);
+ return NULL;
+ }
+
+ if (idx > sftp->ext->count) {
+ ssh_set_error_invalid(sftp->session, __FUNCTION__);
+ return NULL;
+ }
+
+ return sftp->ext->name[idx];
+}
+
+const char *sftp_extensions_get_data(sftp_session sftp, unsigned int idx) {
+ if (sftp == NULL)
+ return NULL;
+ if (sftp->ext == NULL || sftp->ext->name == NULL) {
+ ssh_set_error_invalid(sftp->session, __FUNCTION__);
+ return NULL;
+ }
+
+ if (idx > sftp->ext->count) {
+ ssh_set_error_invalid(sftp->session, __FUNCTION__);
+ return NULL;
+ }
+
+ return sftp->ext->data[idx];
+}
+
+int sftp_extension_supported(sftp_session sftp, const char *name,
+ const char *data) {
+ int i, n;
+
+ n = sftp_extensions_get_count(sftp);
+ for (i = 0; i < n; i++) {
+ if (strcmp(sftp_extensions_get_name(sftp, i), name) == 0 &&
+ strcmp(sftp_extensions_get_data(sftp, i), data) == 0) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+static sftp_request_queue request_queue_new(sftp_message msg) {
+ sftp_request_queue queue = NULL;
+
+ queue = malloc(sizeof(struct sftp_request_queue_struct));
+ if (queue == NULL) {
+ ssh_set_error_oom(msg->sftp->session);
+ return NULL;
+ }
+ ZERO_STRUCTP(queue);
+
+ queue->message = msg;
+
+ return queue;
+}
+
+static void request_queue_free(sftp_request_queue queue) {
+ if (queue == NULL) {
+ return;
+ }
+
+ ZERO_STRUCTP(queue);
+ SAFE_FREE(queue);
+}
+
+static int sftp_enqueue(sftp_session sftp, sftp_message msg) {
+ sftp_request_queue queue = NULL;
+ sftp_request_queue ptr;
+
+ queue = request_queue_new(msg);
+ if (queue == NULL) {
+ return -1;
+ }
+
+ ssh_log(sftp->session, SSH_LOG_PACKET,
+ "Queued msg type %d id %d",
+ msg->id, msg->packet_type);
+
+ if(sftp->queue == NULL) {
+ sftp->queue = queue;
+ } else {
+ ptr = sftp->queue;
+ while(ptr->next) {
+ ptr=ptr->next; /* find end of linked list */
+ }
+ ptr->next = queue; /* add it on bottom */
+ }
+
+ return 0;
+}
+
+/*
+ * Pulls of a message from the queue based on the ID.
+ * Returns NULL if no message has been found.
+ */
+static sftp_message sftp_dequeue(sftp_session sftp, uint32_t id){
+ sftp_request_queue prev = NULL;
+ sftp_request_queue queue;
+ sftp_message msg;
+
+ if(sftp->queue == NULL) {
+ return NULL;
+ }
+
+ queue = sftp->queue;
+ while (queue) {
+ if(queue->message->id == id) {
+ /* remove from queue */
+ if (prev == NULL) {
+ sftp->queue = queue->next;
+ } else {
+ prev->next = queue->next;
+ }
+ msg = queue->message;
+ request_queue_free(queue);
+ ssh_log(sftp->session, SSH_LOG_PACKET,
+ "Dequeued msg id %d type %d",
+ msg->id,
+ msg->packet_type);
+ return msg;
+ }
+ prev = queue;
+ queue = queue->next;
+ }
+
+ return NULL;
+}
+
+/*
+ * Assigns a new SFTP ID for new requests and assures there is no collision
+ * between them.
+ * Returns a new ID ready to use in a request
+ */
+static inline uint32_t sftp_get_new_id(sftp_session session) {
+ return ++session->id_counter;
+}
+
+static sftp_status_message parse_status_msg(sftp_message msg){
+ sftp_status_message status;
+
+ if (msg->packet_type != SSH_FXP_STATUS) {
+ ssh_set_error(msg->sftp->session, SSH_FATAL,
+ "Not a ssh_fxp_status message passed in!");
+ return NULL;
+ }
+
+ status = malloc(sizeof(struct sftp_status_message_struct));
+ if (status == NULL) {
+ ssh_set_error_oom(msg->sftp->session);
+ return NULL;
+ }
+ ZERO_STRUCTP(status);
+
+ status->id = msg->id;
+ if (buffer_get_u32(msg->payload,&status->status) != 4){
+ SAFE_FREE(status);
+ ssh_set_error(msg->sftp->session, SSH_FATAL,
+ "Invalid SSH_FXP_STATUS message");
+ return NULL;
+ }
+ status->error = buffer_get_ssh_string(msg->payload);
+ status->lang = buffer_get_ssh_string(msg->payload);
+ if(status->error == NULL || status->lang == NULL){
+ if(msg->sftp->version >=3){
+ /* These are mandatory from version 3 */
+ ssh_string_free(status->error);
+ /* status->lang never get allocated if something failed */
+ SAFE_FREE(status);
+ ssh_set_error(msg->sftp->session, SSH_FATAL,
+ "Invalid SSH_FXP_STATUS message");
+ return NULL;
+ }
+ }
+
+ status->status = ntohl(status->status);
+ if(status->error)
+ status->errormsg = ssh_string_to_char(status->error);
+ else
+ status->errormsg = strdup("No error message in packet");
+ if(status->lang)
+ status->langmsg = ssh_string_to_char(status->lang);
+ else
+ status->langmsg = strdup("");
+ if (status->errormsg == NULL || status->langmsg == NULL) {
+ ssh_set_error_oom(msg->sftp->session);
+ status_msg_free(status);
+ return NULL;
+ }
+
+ return status;
+}
+
+static void status_msg_free(sftp_status_message status){
+ if (status == NULL) {
+ return;
+ }
+
+ ssh_string_free(status->error);
+ ssh_string_free(status->lang);
+ SAFE_FREE(status->errormsg);
+ SAFE_FREE(status->langmsg);
+ SAFE_FREE(status);
+}
+
+static sftp_file parse_handle_msg(sftp_message msg){
+ sftp_file file;
+
+ if(msg->packet_type != SSH_FXP_HANDLE) {
+ ssh_set_error(msg->sftp->session, SSH_FATAL,
+ "Not a ssh_fxp_handle message passed in!");
+ return NULL;
+ }
+
+ file = malloc(sizeof(struct sftp_file_struct));
+ if (file == NULL) {
+ ssh_set_error_oom(msg->sftp->session);
+ return NULL;
+ }
+ ZERO_STRUCTP(file);
+
+ file->handle = buffer_get_ssh_string(msg->payload);
+ if (file->handle == NULL) {
+ ssh_set_error(msg->sftp->session, SSH_FATAL,
+ "Invalid SSH_FXP_HANDLE message");
+ SAFE_FREE(file);
+ return NULL;
+ }
+
+ file->sftp = msg->sftp;
+ file->offset = 0;
+ file->eof = 0;
+
+ return file;
+}
+
+/* Open a directory */
+sftp_dir sftp_opendir(sftp_session sftp, const char *path){
+ sftp_message msg = NULL;
+ sftp_file file = NULL;
+ sftp_dir dir = NULL;
+ sftp_status_message status;
+ ssh_string path_s;
+ ssh_buffer payload;
+ uint32_t id;
+
+ payload = ssh_buffer_new();
+ if (payload == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+
+ path_s = ssh_string_from_char(path);
+ if (path_s == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(payload);
+ return NULL;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(payload, id) < 0 ||
+ buffer_add_ssh_string(payload, path_s) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(payload);
+ ssh_string_free(path_s);
+ return NULL;
+ }
+ ssh_string_free(path_s);
+
+ if (sftp_packet_write(sftp, SSH_FXP_OPENDIR, payload) < 0) {
+ ssh_buffer_free(payload);
+ return NULL;
+ }
+ ssh_buffer_free(payload);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ /* something nasty has happened */
+ return NULL;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ switch (msg->packet_type) {
+ case SSH_FXP_STATUS:
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return NULL;
+ }
+ sftp_set_error(sftp, status->status);
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ return NULL;
+ case SSH_FXP_HANDLE:
+ file = parse_handle_msg(msg);
+ sftp_message_free(msg);
+ if (file != NULL) {
+ dir = malloc(sizeof(struct sftp_dir_struct));
+ if (dir == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+ ZERO_STRUCTP(dir);
+
+ dir->sftp = sftp;
+ dir->name = strdup(path);
+ if (dir->name == NULL) {
+ SAFE_FREE(dir);
+ SAFE_FREE(file);
+ return NULL;
+ }
+ dir->handle = file->handle;
+ SAFE_FREE(file);
+ }
+ return dir;
+ default:
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d during opendir!", msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return NULL;
+}
+
+/*
+ * Parse the attributes from a payload from some messages. It is coded on
+ * baselines from the protocol version 4.
+ * This code is more or less dead but maybe we need it in future.
+ */
+static sftp_attributes sftp_parse_attr_4(sftp_session sftp, ssh_buffer buf,
+ int expectnames) {
+ sftp_attributes attr;
+ ssh_string owner = NULL;
+ ssh_string group = NULL;
+ uint32_t flags = 0;
+ int ok = 0;
+
+ /* unused member variable */
+ (void) expectnames;
+
+ attr = malloc(sizeof(struct sftp_attributes_struct));
+ if (attr == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+ ZERO_STRUCTP(attr);
+
+ /* This isn't really a loop, but it is like a try..catch.. */
+ do {
+ if (buffer_get_u32(buf, &flags) != 4) {
+ break;
+ }
+
+ flags = ntohl(flags);
+ attr->flags = flags;
+
+ if (flags & SSH_FILEXFER_ATTR_SIZE) {
+ if (buffer_get_u64(buf, &attr->size) != 8) {
+ break;
+ }
+ attr->size = ntohll(attr->size);
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_OWNERGROUP) {
+ if((owner = buffer_get_ssh_string(buf)) == NULL ||
+ (attr->owner = ssh_string_to_char(owner)) == NULL) {
+ break;
+ }
+ if ((group = buffer_get_ssh_string(buf)) == NULL ||
+ (attr->group = ssh_string_to_char(group)) == NULL) {
+ break;
+ }
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_PERMISSIONS) {
+ if (buffer_get_u32(buf, &attr->permissions) != 4) {
+ break;
+ }
+ attr->permissions = ntohl(attr->permissions);
+
+ /* FIXME on windows! */
+ switch (attr->permissions & S_IFMT) {
+ case S_IFSOCK:
+ case S_IFBLK:
+ case S_IFCHR:
+ case S_IFIFO:
+ attr->type = SSH_FILEXFER_TYPE_SPECIAL;
+ break;
+ case S_IFLNK:
+ attr->type = SSH_FILEXFER_TYPE_SYMLINK;
+ break;
+ case S_IFREG:
+ attr->type = SSH_FILEXFER_TYPE_REGULAR;
+ break;
+ case S_IFDIR:
+ attr->type = SSH_FILEXFER_TYPE_DIRECTORY;
+ break;
+ default:
+ attr->type = SSH_FILEXFER_TYPE_UNKNOWN;
+ break;
+ }
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_ACCESSTIME) {
+ if (buffer_get_u64(buf, &attr->atime64) != 8) {
+ break;
+ }
+ attr->atime64 = ntohll(attr->atime64);
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_SUBSECOND_TIMES) {
+ if (buffer_get_u32(buf, &attr->atime_nseconds) != 4) {
+ break;
+ }
+ attr->atime_nseconds = ntohl(attr->atime_nseconds);
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_CREATETIME) {
+ if (buffer_get_u64(buf, &attr->createtime) != 8) {
+ break;
+ }
+ attr->createtime = ntohll(attr->createtime);
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_SUBSECOND_TIMES) {
+ if (buffer_get_u32(buf, &attr->createtime_nseconds) != 4) {
+ break;
+ }
+ attr->createtime_nseconds = ntohl(attr->createtime_nseconds);
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_MODIFYTIME) {
+ if (buffer_get_u64(buf, &attr->mtime64) != 8) {
+ break;
+ }
+ attr->mtime64 = ntohll(attr->mtime64);
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_SUBSECOND_TIMES) {
+ if (buffer_get_u32(buf, &attr->mtime_nseconds) != 4) {
+ break;
+ }
+ attr->mtime_nseconds = ntohl(attr->mtime_nseconds);
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_ACL) {
+ if ((attr->acl = buffer_get_ssh_string(buf)) == NULL) {
+ break;
+ }
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_EXTENDED) {
+ if (buffer_get_u32(buf,&attr->extended_count) != 4) {
+ break;
+ }
+ attr->extended_count = ntohl(attr->extended_count);
+
+ while(attr->extended_count &&
+ (attr->extended_type = buffer_get_ssh_string(buf)) &&
+ (attr->extended_data = buffer_get_ssh_string(buf))){
+ attr->extended_count--;
+ }
+
+ if (attr->extended_count) {
+ break;
+ }
+ }
+ ok = 1;
+ } while (0);
+
+ if (ok == 0) {
+ /* break issued somewhere */
+ ssh_string_free(owner);
+ ssh_string_free(group);
+ ssh_string_free(attr->acl);
+ ssh_string_free(attr->extended_type);
+ ssh_string_free(attr->extended_data);
+ SAFE_FREE(attr->owner);
+ SAFE_FREE(attr->group);
+ SAFE_FREE(attr);
+
+ ssh_set_error(sftp->session, SSH_FATAL, "Invalid ATTR structure");
+
+ return NULL;
+ }
+
+ return attr;
+}
+
+enum sftp_longname_field_e {
+ SFTP_LONGNAME_PERM = 0,
+ SFTP_LONGNAME_FIXME,
+ SFTP_LONGNAME_OWNER,
+ SFTP_LONGNAME_GROUP,
+ SFTP_LONGNAME_SIZE,
+ SFTP_LONGNAME_DATE,
+ SFTP_LONGNAME_TIME,
+ SFTP_LONGNAME_NAME,
+};
+
+static char *sftp_parse_longname(const char *longname,
+ enum sftp_longname_field_e longname_field) {
+ const char *p, *q;
+ size_t len, field = 0;
+ char *x;
+
+ p = longname;
+ /* Find the beginning of the field which is specified by sftp_longanme_field_e. */
+ while(field != longname_field) {
+ if(isspace(*p)) {
+ field++;
+ p++;
+ while(*p && isspace(*p)) {
+ p++;
+ }
+ } else {
+ p++;
+ }
+ }
+
+ q = p;
+ while (! isspace(*q)) {
+ q++;
+ }
+
+ /* There is no strndup on windows */
+ len = q - p + 1;
+ x = malloc(len);
+ if (x == NULL) {
+ return NULL;
+ }
+
+ snprintf(x, len, "%s", p);
+
+ return x;
+}
+
+/* sftp version 0-3 code. It is different from the v4 */
+/* maybe a paste of the draft is better than the code */
+/*
+ uint32 flags
+ uint64 size present only if flag SSH_FILEXFER_ATTR_SIZE
+ uint32 uid present only if flag SSH_FILEXFER_ATTR_UIDGID
+ uint32 gid present only if flag SSH_FILEXFER_ATTR_UIDGID
+ uint32 permissions present only if flag SSH_FILEXFER_ATTR_PERMISSIONS
+ uint32 atime present only if flag SSH_FILEXFER_ACMODTIME
+ uint32 mtime present only if flag SSH_FILEXFER_ACMODTIME
+ uint32 extended_count present only if flag SSH_FILEXFER_ATTR_EXTENDED
+ string extended_type
+ string extended_data
+ ... more extended data (extended_type - extended_data pairs),
+ so that number of pairs equals extended_count */
+static sftp_attributes sftp_parse_attr_3(sftp_session sftp, ssh_buffer buf,
+ int expectname) {
+ ssh_string longname = NULL;
+ ssh_string name = NULL;
+ sftp_attributes attr;
+ uint32_t flags = 0;
+ int ok = 0;
+
+ attr = malloc(sizeof(struct sftp_attributes_struct));
+ if (attr == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+ ZERO_STRUCTP(attr);
+
+ /* This isn't really a loop, but it is like a try..catch.. */
+ do {
+ if (expectname) {
+ if ((name = buffer_get_ssh_string(buf)) == NULL ||
+ (attr->name = ssh_string_to_char(name)) == NULL) {
+ break;
+ }
+ ssh_string_free(name);
+
+ ssh_log(sftp->session, SSH_LOG_RARE, "Name: %s", attr->name);
+
+ if ((longname=buffer_get_ssh_string(buf)) == NULL ||
+ (attr->longname=ssh_string_to_char(longname)) == NULL) {
+ break;
+ }
+ ssh_string_free(longname);
+
+ /* Set owner and group if we talk to openssh and have the longname */
+ if (ssh_get_openssh_version(sftp->session)) {
+ attr->owner = sftp_parse_longname(attr->longname, SFTP_LONGNAME_OWNER);
+ if (attr->owner == NULL) {
+ break;
+ }
+
+ attr->group = sftp_parse_longname(attr->longname, SFTP_LONGNAME_GROUP);
+ if (attr->group == NULL) {
+ break;
+ }
+ }
+ }
+
+ if (buffer_get_u32(buf, &flags) != sizeof(uint32_t)) {
+ break;
+ }
+ flags = ntohl(flags);
+ attr->flags = flags;
+ ssh_log(sftp->session, SSH_LOG_RARE,
+ "Flags: %.8lx\n", (long unsigned int) flags);
+
+ if (flags & SSH_FILEXFER_ATTR_SIZE) {
+ if(buffer_get_u64(buf, &attr->size) != sizeof(uint64_t)) {
+ break;
+ }
+ attr->size = ntohll(attr->size);
+ ssh_log(sftp->session, SSH_LOG_RARE,
+ "Size: %llu\n",
+ (long long unsigned int) attr->size);
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_UIDGID) {
+ if (buffer_get_u32(buf, &attr->uid) != sizeof(uint32_t)) {
+ break;
+ }
+ if (buffer_get_u32(buf, &attr->gid) != sizeof(uint32_t)) {
+ break;
+ }
+ attr->uid = ntohl(attr->uid);
+ attr->gid = ntohl(attr->gid);
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_PERMISSIONS) {
+ if (buffer_get_u32(buf, &attr->permissions) != sizeof(uint32_t)) {
+ break;
+ }
+ attr->permissions = ntohl(attr->permissions);
+
+ switch (attr->permissions & S_IFMT) {
+ case S_IFSOCK:
+ case S_IFBLK:
+ case S_IFCHR:
+ case S_IFIFO:
+ attr->type = SSH_FILEXFER_TYPE_SPECIAL;
+ break;
+ case S_IFLNK:
+ attr->type = SSH_FILEXFER_TYPE_SYMLINK;
+ break;
+ case S_IFREG:
+ attr->type = SSH_FILEXFER_TYPE_REGULAR;
+ break;
+ case S_IFDIR:
+ attr->type = SSH_FILEXFER_TYPE_DIRECTORY;
+ break;
+ default:
+ attr->type = SSH_FILEXFER_TYPE_UNKNOWN;
+ break;
+ }
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_ACMODTIME) {
+ if (buffer_get_u32(buf, &attr->atime) != sizeof(uint32_t)) {
+ break;
+ }
+ attr->atime = ntohl(attr->atime);
+ if (buffer_get_u32(buf, &attr->mtime) != sizeof(uint32_t)) {
+ break;
+ }
+ attr->mtime = ntohl(attr->mtime);
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_EXTENDED) {
+ if (buffer_get_u32(buf, &attr->extended_count) != sizeof(uint32_t)) {
+ break;
+ }
+
+ attr->extended_count = ntohl(attr->extended_count);
+ while (attr->extended_count &&
+ (attr->extended_type = buffer_get_ssh_string(buf))
+ && (attr->extended_data = buffer_get_ssh_string(buf))) {
+ attr->extended_count--;
+ }
+
+ if (attr->extended_count) {
+ break;
+ }
+ }
+ ok = 1;
+ } while (0);
+
+ if (!ok) {
+ /* break issued somewhere */
+ ssh_string_free(name);
+ ssh_string_free(longname);
+ ssh_string_free(attr->extended_type);
+ ssh_string_free(attr->extended_data);
+ SAFE_FREE(attr->name);
+ SAFE_FREE(attr->longname);
+ SAFE_FREE(attr->owner);
+ SAFE_FREE(attr->group);
+ SAFE_FREE(attr);
+
+ ssh_set_error(sftp->session, SSH_FATAL, "Invalid ATTR structure");
+
+ return NULL;
+ }
+
+ /* everything went smoothly */
+ return attr;
+}
+
+/* FIXME is this really needed as a public function? */
+int buffer_add_attributes(ssh_buffer buffer, sftp_attributes attr) {
+ uint32_t flags = (attr ? attr->flags : 0);
+
+ flags &= (SSH_FILEXFER_ATTR_SIZE | SSH_FILEXFER_ATTR_UIDGID |
+ SSH_FILEXFER_ATTR_PERMISSIONS | SSH_FILEXFER_ATTR_ACMODTIME);
+
+ if (buffer_add_u32(buffer, htonl(flags)) < 0) {
+ return -1;
+ }
+
+ if (attr) {
+ if (flags & SSH_FILEXFER_ATTR_SIZE) {
+ if (buffer_add_u64(buffer, htonll(attr->size)) < 0) {
+ return -1;
+ }
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_UIDGID) {
+ if (buffer_add_u32(buffer,htonl(attr->uid)) < 0 ||
+ buffer_add_u32(buffer,htonl(attr->gid)) < 0) {
+ return -1;
+ }
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_PERMISSIONS) {
+ if (buffer_add_u32(buffer, htonl(attr->permissions)) < 0) {
+ return -1;
+ }
+ }
+
+ if (flags & SSH_FILEXFER_ATTR_ACMODTIME) {
+ if (buffer_add_u32(buffer, htonl(attr->atime)) < 0 ||
+ buffer_add_u32(buffer, htonl(attr->mtime)) < 0) {
+ return -1;
+ }
+ }
+ }
+
+ return 0;
+}
+
+
+sftp_attributes sftp_parse_attr(sftp_session session, ssh_buffer buf,
+ int expectname) {
+ switch(session->version) {
+ case 4:
+ return sftp_parse_attr_4(session, buf, expectname);
+ case 3:
+ case 2:
+ case 1:
+ case 0:
+ return sftp_parse_attr_3(session, buf, expectname);
+ default:
+ ssh_set_error(session->session, SSH_FATAL,
+ "Version %d unsupported by client", session->server_version);
+ return NULL;
+ }
+
+ return NULL;
+}
+
+/* Get the version of the SFTP protocol supported by the server */
+int sftp_server_version(sftp_session sftp) {
+ return sftp->server_version;
+}
+
+/* Get a single file attributes structure of a directory. */
+sftp_attributes sftp_readdir(sftp_session sftp, sftp_dir dir) {
+ sftp_message msg = NULL;
+ sftp_status_message status;
+ sftp_attributes attr;
+ ssh_buffer payload;
+ uint32_t id;
+
+ if (dir->buffer == NULL) {
+ payload = ssh_buffer_new();
+ if (payload == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(payload, id) < 0 ||
+ buffer_add_ssh_string(payload, dir->handle) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(payload);
+ return NULL;
+ }
+
+ if (sftp_packet_write(sftp, SSH_FXP_READDIR, payload) < 0) {
+ ssh_buffer_free(payload);
+ return NULL;
+ }
+ ssh_buffer_free(payload);
+
+ ssh_log(sftp->session, SSH_LOG_PACKET,
+ "Sent a ssh_fxp_readdir with id %d", id);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ /* something nasty has happened */
+ return NULL;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ switch (msg->packet_type){
+ case SSH_FXP_STATUS:
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return NULL;
+ }
+ sftp_set_error(sftp, status->status);
+ switch (status->status) {
+ case SSH_FX_EOF:
+ dir->eof = 1;
+ status_msg_free(status);
+ return NULL;
+ default:
+ break;
+ }
+
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Unknown error status: %d", status->status);
+ status_msg_free(status);
+
+ return NULL;
+ case SSH_FXP_NAME:
+ buffer_get_u32(msg->payload, &dir->count);
+ dir->count = ntohl(dir->count);
+ dir->buffer = msg->payload;
+ msg->payload = NULL;
+ sftp_message_free(msg);
+ break;
+ default:
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Unsupported message back %d", msg->packet_type);
+ sftp_message_free(msg);
+
+ return NULL;
+ }
+ }
+
+ /* now dir->buffer contains a buffer and dir->count != 0 */
+ if (dir->count == 0) {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Count of files sent by the server is zero, which is invalid, or "
+ "libsftp bug");
+ return NULL;
+ }
+
+ ssh_log(sftp->session, SSH_LOG_RARE, "Count is %d", dir->count);
+
+ attr = sftp_parse_attr(sftp, dir->buffer, 1);
+ if (attr == NULL) {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Couldn't parse the SFTP attributes");
+ return NULL;
+ }
+
+ dir->count--;
+ if (dir->count == 0) {
+ ssh_buffer_free(dir->buffer);
+ dir->buffer = NULL;
+ }
+
+ return attr;
+}
+
+/* Tell if the directory has reached EOF (End Of File). */
+int sftp_dir_eof(sftp_dir dir) {
+ return dir->eof;
+}
+
+/* Free a SFTP_ATTRIBUTE handle */
+void sftp_attributes_free(sftp_attributes file){
+ if (file == NULL) {
+ return;
+ }
+
+ ssh_string_free(file->acl);
+ ssh_string_free(file->extended_data);
+ ssh_string_free(file->extended_type);
+
+ SAFE_FREE(file->name);
+ SAFE_FREE(file->longname);
+ SAFE_FREE(file->group);
+ SAFE_FREE(file->owner);
+
+ SAFE_FREE(file);
+}
+
+static int sftp_handle_close(sftp_session sftp, ssh_string handle) {
+ sftp_status_message status;
+ sftp_message msg = NULL;
+ ssh_buffer buffer = NULL;
+ uint32_t id;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, handle) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_CLOSE ,buffer) < 0) {
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+ ssh_buffer_free(buffer);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ /* something nasty has happened */
+ return -1;
+ }
+ msg = sftp_dequeue(sftp,id);
+ }
+
+ switch (msg->packet_type) {
+ case SSH_FXP_STATUS:
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if(status == NULL) {
+ return -1;
+ }
+ sftp_set_error(sftp, status->status);
+ switch (status->status) {
+ case SSH_FX_OK:
+ status_msg_free(status);
+ return 0;
+ break;
+ default:
+ break;
+ }
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ return -1;
+ default:
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d during sftp_handle_close!", msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return -1;
+}
+
+/* Close an open file handle. */
+int sftp_close(sftp_file file){
+ int err = SSH_NO_ERROR;
+
+ SAFE_FREE(file->name);
+ if (file->handle){
+ err = sftp_handle_close(file->sftp,file->handle);
+ ssh_string_free(file->handle);
+ }
+ /* FIXME: check server response and implement errno */
+ SAFE_FREE(file);
+
+ return err;
+}
+
+/* Close an open directory. */
+int sftp_closedir(sftp_dir dir){
+ int err = SSH_NO_ERROR;
+
+ SAFE_FREE(dir->name);
+ if (dir->handle) {
+ err = sftp_handle_close(dir->sftp, dir->handle);
+ ssh_string_free(dir->handle);
+ }
+ /* FIXME: check server response and implement errno */
+ ssh_buffer_free(dir->buffer);
+ SAFE_FREE(dir);
+
+ return err;
+}
+
+/* Open a file on the server. */
+sftp_file sftp_open(sftp_session sftp, const char *file, int flags,
+ mode_t mode) {
+ sftp_message msg = NULL;
+ sftp_status_message status;
+ struct sftp_attributes_struct attr;
+ sftp_file handle;
+ ssh_string filename;
+ ssh_buffer buffer;
+ uint32_t sftp_flags = 0;
+ uint32_t id;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+
+ filename = ssh_string_from_char(file);
+ if (filename == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+
+ ZERO_STRUCT(attr);
+ attr.permissions = mode;
+ attr.flags = SSH_FILEXFER_ATTR_PERMISSIONS;
+
+ if (flags == O_RDONLY)
+ sftp_flags |= SSH_FXF_READ; /* if any of the other flag is set,
+ READ should not be set initialy */
+ if (flags & O_WRONLY)
+ sftp_flags |= SSH_FXF_WRITE;
+ if (flags & O_RDWR)
+ sftp_flags |= (SSH_FXF_WRITE | SSH_FXF_READ);
+ if (flags & O_CREAT)
+ sftp_flags |= SSH_FXF_CREAT;
+ if (flags & O_TRUNC)
+ sftp_flags |= SSH_FXF_TRUNC;
+ if (flags & O_EXCL)
+ sftp_flags |= SSH_FXF_EXCL;
+ ssh_log(sftp->session,SSH_LOG_PACKET,"Opening file %s with sftp flags %x",file,sftp_flags);
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, filename) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(filename);
+ return NULL;
+ }
+ ssh_string_free(filename);
+
+ if (buffer_add_u32(buffer, htonl(sftp_flags)) < 0 ||
+ buffer_add_attributes(buffer, &attr) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_OPEN, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+ ssh_buffer_free(buffer);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ /* something nasty has happened */
+ return NULL;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ switch (msg->packet_type) {
+ case SSH_FXP_STATUS:
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return NULL;
+ }
+ sftp_set_error(sftp, status->status);
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+
+ return NULL;
+ case SSH_FXP_HANDLE:
+ handle = parse_handle_msg(msg);
+ sftp_message_free(msg);
+ return handle;
+ default:
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d during open!", msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return NULL;
+}
+
+void sftp_file_set_nonblocking(sftp_file handle){
+ handle->nonblocking=1;
+}
+void sftp_file_set_blocking(sftp_file handle){
+ handle->nonblocking=0;
+}
+
+/* Read from a file using an opened sftp file handle. */
+ssize_t sftp_read(sftp_file handle, void *buf, size_t count) {
+ sftp_session sftp = handle->sftp;
+ sftp_message msg = NULL;
+ sftp_status_message status;
+ ssh_string datastring;
+ ssh_buffer buffer;
+ int id;
+
+ if (handle->eof) {
+ return 0;
+ }
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+ id = sftp_get_new_id(handle->sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, handle->handle) < 0 ||
+ buffer_add_u64(buffer, htonll(handle->offset)) < 0 ||
+ buffer_add_u32(buffer,htonl(count)) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+ if (sftp_packet_write(handle->sftp, SSH_FXP_READ, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+ ssh_buffer_free(buffer);
+
+ while (msg == NULL) {
+ if (handle->nonblocking) {
+ if (ssh_channel_poll(handle->sftp->channel, 0) == 0) {
+ /* we cannot block */
+ return 0;
+ }
+ }
+ if (sftp_read_and_dispatch(handle->sftp) < 0) {
+ /* something nasty has happened */
+ return -1;
+ }
+ msg = sftp_dequeue(handle->sftp, id);
+ }
+
+ switch (msg->packet_type) {
+ case SSH_FXP_STATUS:
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return -1;
+ }
+ sftp_set_error(sftp, status->status);
+ switch (status->status) {
+ case SSH_FX_EOF:
+ handle->eof = 1;
+ status_msg_free(status);
+ return 0;
+ default:
+ break;
+ }
+ ssh_set_error(sftp->session,SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ return -1;
+ case SSH_FXP_DATA:
+ datastring = buffer_get_ssh_string(msg->payload);
+ sftp_message_free(msg);
+ if (datastring == NULL) {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received invalid DATA packet from sftp server");
+ return -1;
+ }
+
+ if (ssh_string_len(datastring) > count) {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received a too big DATA packet from sftp server: "
+ "%zu and asked for %zu",
+ ssh_string_len(datastring), count);
+ ssh_string_free(datastring);
+ return -1;
+ }
+ count = ssh_string_len(datastring);
+ handle->offset += count;
+ memcpy(buf, ssh_string_data(datastring), count);
+ ssh_string_free(datastring);
+ return count;
+ default:
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d during read!", msg->packet_type);
+ sftp_message_free(msg);
+ return -1;
+ }
+
+ return -1; /* not reached */
+}
+
+/* Start an asynchronous read from a file using an opened sftp file handle. */
+int sftp_async_read_begin(sftp_file file, uint32_t len){
+ sftp_session sftp = file->sftp;
+ ssh_buffer buffer;
+ uint32_t id;
+
+ sftp_enter_function();
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, file->handle) < 0 ||
+ buffer_add_u64(buffer, htonll(file->offset)) < 0 ||
+ buffer_add_u32(buffer, htonl(len)) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_READ, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+ ssh_buffer_free(buffer);
+
+ file->offset += len; /* assume we'll read len bytes */
+
+ sftp_leave_function();
+ return id;
+}
+
+/* Wait for an asynchronous read to complete and save the data. */
+int sftp_async_read(sftp_file file, void *data, uint32_t size, uint32_t id){
+ sftp_session sftp = file->sftp;
+ sftp_message msg = NULL;
+ sftp_status_message status;
+ ssh_string datastring;
+ int err = SSH_OK;
+ uint32_t len;
+
+ sftp_enter_function();
+
+ if (file->eof) {
+ sftp_leave_function();
+ return 0;
+ }
+
+ /* handle an existing request */
+ while (msg == NULL) {
+ if (file->nonblocking){
+ if (ssh_channel_poll(sftp->channel, 0) == 0) {
+ /* we cannot block */
+ return SSH_AGAIN;
+ }
+ }
+
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ /* something nasty has happened */
+ sftp_leave_function();
+ return SSH_ERROR;
+ }
+
+ msg = sftp_dequeue(sftp,id);
+ }
+
+ switch (msg->packet_type) {
+ case SSH_FXP_STATUS:
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ sftp_leave_function();
+ return -1;
+ }
+ sftp_set_error(sftp, status->status);
+ if (status->status != SSH_FX_EOF) {
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server : %s", status->errormsg);
+ sftp_leave_function();
+ err = SSH_ERROR;
+ } else {
+ file->eof = 1;
+ }
+ status_msg_free(status);
+ sftp_leave_function();
+ return err;
+ case SSH_FXP_DATA:
+ datastring = buffer_get_ssh_string(msg->payload);
+ sftp_message_free(msg);
+ if (datastring == NULL) {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received invalid DATA packet from sftp server");
+ sftp_leave_function();
+ return SSH_ERROR;
+ }
+ if (ssh_string_len(datastring) > size) {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received a too big DATA packet from sftp server: "
+ "%zu and asked for %u",
+ ssh_string_len(datastring), size);
+ ssh_string_free(datastring);
+ sftp_leave_function();
+ return SSH_ERROR;
+ }
+ len = ssh_string_len(datastring);
+ //handle->offset+=len;
+ /* We already have set the offset previously. All we can do is warn that the expected len
+ * and effective lengths are different */
+ memcpy(data, ssh_string_data(datastring), len);
+ ssh_string_free(datastring);
+ sftp_leave_function();
+ return len;
+ default:
+ ssh_set_error(sftp->session,SSH_FATAL,"Received message %d during read!",msg->packet_type);
+ sftp_message_free(msg);
+ sftp_leave_function();
+ return SSH_ERROR;
+ }
+
+ sftp_leave_function();
+ return SSH_ERROR;
+}
+
+ssize_t sftp_write(sftp_file file, const void *buf, size_t count) {
+ sftp_session sftp = file->sftp;
+ sftp_message msg = NULL;
+ sftp_status_message status;
+ ssh_string datastring;
+ ssh_buffer buffer;
+ uint32_t id;
+ int len;
+ int packetlen;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+
+ datastring = ssh_string_new(count);
+ if (datastring == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+ ssh_string_fill(datastring, buf, count);
+
+ id = sftp_get_new_id(file->sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, file->handle) < 0 ||
+ buffer_add_u64(buffer, htonll(file->offset)) < 0 ||
+ buffer_add_ssh_string(buffer, datastring) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(datastring);
+ return -1;
+ }
+ ssh_string_free(datastring);
+ len = sftp_packet_write(file->sftp, SSH_FXP_WRITE, buffer);
+ packetlen=ssh_buffer_get_len(buffer);
+ ssh_buffer_free(buffer);
+ if (len < 0) {
+ return -1;
+ } else if (len != packetlen) {
+ ssh_log(sftp->session, SSH_LOG_PACKET,
+ "Could not write as much data as expected");
+ }
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(file->sftp) < 0) {
+ /* something nasty has happened */
+ return -1;
+ }
+ msg = sftp_dequeue(file->sftp, id);
+ }
+
+ switch (msg->packet_type) {
+ case SSH_FXP_STATUS:
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return -1;
+ }
+ sftp_set_error(sftp, status->status);
+ switch (status->status) {
+ case SSH_FX_OK:
+ file->offset += count;
+ status_msg_free(status);
+ return count;
+ default:
+ break;
+ }
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ file->offset += count;
+ status_msg_free(status);
+ return -1;
+ default:
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d during write!", msg->packet_type);
+ sftp_message_free(msg);
+ return -1;
+ }
+
+ return -1; /* not reached */
+}
+
+/* Seek to a specific location in a file. */
+int sftp_seek(sftp_file file, uint32_t new_offset) {
+ if (file == NULL) {
+ return -1;
+ }
+
+ file->offset = new_offset;
+
+ return 0;
+}
+
+int sftp_seek64(sftp_file file, uint64_t new_offset) {
+ if (file == NULL) {
+ return -1;
+ }
+
+ file->offset = new_offset;
+
+ return 0;
+}
+
+/* Report current byte position in file. */
+unsigned long sftp_tell(sftp_file file) {
+ return (unsigned long)file->offset;
+}
+/* Report current byte position in file. */
+uint64_t sftp_tell64(sftp_file file) {
+ return (uint64_t) file->offset;
+}
+
+/* Rewinds the position of the file pointer to the beginning of the file.*/
+void sftp_rewind(sftp_file file) {
+ file->offset = 0;
+}
+
+/* code written by Nick */
+int sftp_unlink(sftp_session sftp, const char *file) {
+ sftp_status_message status = NULL;
+ sftp_message msg = NULL;
+ ssh_string filename;
+ ssh_buffer buffer;
+ uint32_t id;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+
+ filename = ssh_string_from_char(file);
+ if (filename == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, filename) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(filename);
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_REMOVE, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ ssh_string_free(filename);
+ }
+ ssh_string_free(filename);
+ ssh_buffer_free(buffer);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp)) {
+ return -1;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ if (msg->packet_type == SSH_FXP_STATUS) {
+ /* by specification, this command's only supposed to return SSH_FXP_STATUS */
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return -1;
+ }
+ sftp_set_error(sftp, status->status);
+ switch (status->status) {
+ case SSH_FX_OK:
+ status_msg_free(status);
+ return 0;
+ default:
+ break;
+ }
+
+ /*
+ * The status should be SSH_FX_OK if the command was successful, if it
+ * didn't, then there was an error
+ */
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ return -1;
+ } else {
+ ssh_set_error(sftp->session,SSH_FATAL,
+ "Received message %d when attempting to remove file", msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return -1;
+}
+
+/* code written by Nick */
+int sftp_rmdir(sftp_session sftp, const char *directory) {
+ sftp_status_message status = NULL;
+ sftp_message msg = NULL;
+ ssh_string filename;
+ ssh_buffer buffer;
+ uint32_t id;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+
+ filename = ssh_string_from_char(directory);
+ if (filename == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, filename) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(filename);
+ return -1;
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_RMDIR, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ ssh_string_free(filename);
+ return -1;
+ }
+ ssh_buffer_free(buffer);
+ ssh_string_free(filename);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ return -1;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ /* By specification, this command returns SSH_FXP_STATUS */
+ if (msg->packet_type == SSH_FXP_STATUS) {
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return -1;
+ }
+ sftp_set_error(sftp, status->status);
+ switch (status->status) {
+ case SSH_FX_OK:
+ status_msg_free(status);
+ return 0;
+ break;
+ default:
+ break;
+ }
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ return -1;
+ } else {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d when attempting to remove directory",
+ msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return -1;
+}
+
+/* Code written by Nick */
+int sftp_mkdir(sftp_session sftp, const char *directory, mode_t mode) {
+ sftp_status_message status = NULL;
+ sftp_message msg = NULL;
+ sftp_attributes errno_attr = NULL;
+ struct sftp_attributes_struct attr;
+ ssh_buffer buffer;
+ ssh_string path;
+ uint32_t id;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+
+ path = ssh_string_from_char(directory);
+ if (path == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+
+ ZERO_STRUCT(attr);
+ attr.permissions = mode;
+ attr.flags = SSH_FILEXFER_ATTR_PERMISSIONS;
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, path) < 0 ||
+ buffer_add_attributes(buffer, &attr) < 0 ||
+ sftp_packet_write(sftp, SSH_FXP_MKDIR, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ ssh_string_free(path);
+ }
+ ssh_buffer_free(buffer);
+ ssh_string_free(path);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ return -1;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ /* By specification, this command only returns SSH_FXP_STATUS */
+ if (msg->packet_type == SSH_FXP_STATUS) {
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return -1;
+ }
+ sftp_set_error(sftp, status->status);
+ switch (status->status) {
+ case SSH_FX_FAILURE:
+ /*
+ * mkdir always returns a failure, even if the path already exists.
+ * To be POSIX conform and to be able to map it to EEXIST a stat
+ * call is needed here.
+ */
+ errno_attr = sftp_lstat(sftp, directory);
+ if (errno_attr != NULL) {
+ SAFE_FREE(errno_attr);
+ sftp_set_error(sftp, SSH_FX_FILE_ALREADY_EXISTS);
+ }
+ break;
+ case SSH_FX_OK:
+ status_msg_free(status);
+ return 0;
+ break;
+ default:
+ break;
+ }
+ /*
+ * The status should be SSH_FX_OK if the command was successful, if it
+ * didn't, then there was an error
+ */
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ return -1;
+ } else {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d when attempting to make directory",
+ msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return -1;
+}
+
+/* code written by nick */
+int sftp_rename(sftp_session sftp, const char *original, const char *newname) {
+ sftp_status_message status = NULL;
+ sftp_message msg = NULL;
+ ssh_buffer buffer;
+ ssh_string oldpath;
+ ssh_string newpath;
+ uint32_t id;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+
+ oldpath = ssh_string_from_char(original);
+ if (oldpath == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+
+ newpath = ssh_string_from_char(newname);
+ if (newpath == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(oldpath);
+ return -1;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, oldpath) < 0 ||
+ buffer_add_ssh_string(buffer, newpath) < 0 ||
+ /* POSIX rename atomically replaces newpath, we should do the same
+ * only available on >=v4 */
+ sftp->version>=4 ? (buffer_add_u32(buffer, SSH_FXF_RENAME_OVERWRITE) < 0):0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(oldpath);
+ ssh_string_free(newpath);
+ return -1;
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_RENAME, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ ssh_string_free(oldpath);
+ ssh_string_free(newpath);
+ return -1;
+ }
+ ssh_buffer_free(buffer);
+ ssh_string_free(oldpath);
+ ssh_string_free(newpath);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ return -1;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ /* By specification, this command only returns SSH_FXP_STATUS */
+ if (msg->packet_type == SSH_FXP_STATUS) {
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return -1;
+ }
+ sftp_set_error(sftp, status->status);
+ switch (status->status) {
+ case SSH_FX_OK:
+ status_msg_free(status);
+ return 0;
+ default:
+ break;
+ }
+ /*
+ * Status should be SSH_FX_OK if the command was successful, if it didn't,
+ * then there was an error
+ */
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ return -1;
+ } else {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d when attempting to rename",
+ msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return -1;
+}
+
+/* Code written by Nick */
+/* Set file attributes on a file, directory or symbolic link. */
+int sftp_setstat(sftp_session sftp, const char *file, sftp_attributes attr) {
+ uint32_t id;
+ ssh_buffer buffer;
+ ssh_string path;
+ sftp_message msg = NULL;
+ sftp_status_message status = NULL;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+
+ path = ssh_string_from_char(file);
+ if (path == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, path) < 0 ||
+ buffer_add_attributes(buffer, attr) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(path);
+ return -1;
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_SETSTAT, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ ssh_string_free(path);
+ return -1;
+ }
+ ssh_buffer_free(buffer);
+ ssh_string_free(path);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ return -1;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ /* By specification, this command only returns SSH_FXP_STATUS */
+ if (msg->packet_type == SSH_FXP_STATUS) {
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return -1;
+ }
+ sftp_set_error(sftp, status->status);
+ switch (status->status) {
+ case SSH_FX_OK:
+ status_msg_free(status);
+ return 0;
+ default:
+ break;
+ }
+ /*
+ * The status should be SSH_FX_OK if the command was successful, if it
+ * didn't, then there was an error
+ */
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ return -1;
+ } else {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d when attempting to set stats", msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return -1;
+}
+
+/* Change the file owner and group */
+int sftp_chown(sftp_session sftp, const char *file, uid_t owner, gid_t group) {
+ struct sftp_attributes_struct attr;
+ ZERO_STRUCT(attr);
+
+ attr.uid = owner;
+ attr.gid = group;
+
+ attr.flags = SSH_FILEXFER_ATTR_UIDGID;
+
+ return sftp_setstat(sftp, file, &attr);
+}
+
+/* Change permissions of a file */
+int sftp_chmod(sftp_session sftp, const char *file, mode_t mode) {
+ struct sftp_attributes_struct attr;
+ ZERO_STRUCT(attr);
+ attr.permissions = mode;
+ attr.flags = SSH_FILEXFER_ATTR_PERMISSIONS;
+
+ return sftp_setstat(sftp, file, &attr);
+}
+
+/* Change the last modification and access time of a file. */
+int sftp_utimes(sftp_session sftp, const char *file,
+ const struct timeval *times) {
+ struct sftp_attributes_struct attr;
+ ZERO_STRUCT(attr);
+
+ attr.atime = times[0].tv_sec;
+ attr.atime_nseconds = times[0].tv_usec;
+
+ attr.mtime = times[1].tv_sec;
+ attr.mtime_nseconds = times[1].tv_usec;
+
+ attr.flags |= SSH_FILEXFER_ATTR_ACCESSTIME | SSH_FILEXFER_ATTR_MODIFYTIME |
+ SSH_FILEXFER_ATTR_SUBSECOND_TIMES;
+
+ return sftp_setstat(sftp, file, &attr);
+}
+
+int sftp_symlink(sftp_session sftp, const char *target, const char *dest) {
+ sftp_status_message status = NULL;
+ sftp_message msg = NULL;
+ ssh_string target_s;
+ ssh_string dest_s;
+ ssh_buffer buffer;
+ uint32_t id;
+
+ if (sftp == NULL)
+ return -1;
+ if (target == NULL || dest == NULL) {
+ ssh_set_error_invalid(sftp->session, __FUNCTION__);
+ return -1;
+ }
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return -1;
+ }
+
+ target_s = ssh_string_from_char(target);
+ if (target_s == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+
+ dest_s = ssh_string_from_char(dest);
+ if (dest_s == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_string_free(target_s);
+ ssh_buffer_free(buffer);
+ return -1;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(dest_s);
+ ssh_string_free(target_s);
+ return -1;
+ }
+ if (ssh_get_openssh_version(sftp->session)) {
+ /* TODO check for version number if they ever fix it. */
+ if (buffer_add_ssh_string(buffer, target_s) < 0 ||
+ buffer_add_ssh_string(buffer, dest_s) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(dest_s);
+ ssh_string_free(target_s);
+ return -1;
+ }
+ } else {
+ if (buffer_add_ssh_string(buffer, dest_s) < 0 ||
+ buffer_add_ssh_string(buffer, target_s) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(dest_s);
+ ssh_string_free(target_s);
+ return -1;
+ }
+ }
+
+ if (sftp_packet_write(sftp, SSH_FXP_SYMLINK, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ ssh_string_free(dest_s);
+ ssh_string_free(target_s);
+ return -1;
+ }
+ ssh_buffer_free(buffer);
+ ssh_string_free(dest_s);
+ ssh_string_free(target_s);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ return -1;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ /* By specification, this command only returns SSH_FXP_STATUS */
+ if (msg->packet_type == SSH_FXP_STATUS) {
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return -1;
+ }
+ sftp_set_error(sftp, status->status);
+ switch (status->status) {
+ case SSH_FX_OK:
+ status_msg_free(status);
+ return 0;
+ default:
+ break;
+ }
+ /*
+ * The status should be SSH_FX_OK if the command was successful, if it
+ * didn't, then there was an error
+ */
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ return -1;
+ } else {
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d when attempting to set stats", msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return -1;
+}
+
+char *sftp_readlink(sftp_session sftp, const char *path) {
+ sftp_status_message status = NULL;
+ sftp_message msg = NULL;
+ ssh_string path_s = NULL;
+ ssh_string link_s = NULL;
+ ssh_buffer buffer;
+ char *lnk;
+ uint32_t ignored;
+ uint32_t id;
+
+ if (sftp == NULL)
+ return NULL;
+ if (path == NULL) {
+ ssh_set_error_invalid(sftp, __FUNCTION__);
+ return NULL;
+ }
+ if (sftp->version < 3){
+ ssh_set_error(sftp,SSH_REQUEST_DENIED,"sftp version %d does not support sftp_readlink",sftp->version);
+ return NULL;
+ }
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+
+ path_s = ssh_string_from_char(path);
+ if (path_s == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, path_s) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(path_s);
+ return NULL;
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_READLINK, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ ssh_string_free(path_s);
+ return NULL;
+ }
+ ssh_buffer_free(buffer);
+ ssh_string_free(path_s);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ return NULL;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ if (msg->packet_type == SSH_FXP_NAME) {
+ /* we don't care about "count" */
+ buffer_get_u32(msg->payload, &ignored);
+ /* we only care about the file name string */
+ link_s = buffer_get_ssh_string(msg->payload);
+ sftp_message_free(msg);
+ if (link_s == NULL) {
+ /* TODO: what error to set here? */
+ return NULL;
+ }
+ lnk = ssh_string_to_char(link_s);
+ ssh_string_free(link_s);
+
+ return lnk;
+ } else if (msg->packet_type == SSH_FXP_STATUS) { /* bad response (error) */
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return NULL;
+ }
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ } else { /* this shouldn't happen */
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d when attempting to set stats", msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return NULL;
+}
+
+static sftp_statvfs_t sftp_parse_statvfs(sftp_session sftp, ssh_buffer buf) {
+ sftp_statvfs_t statvfs;
+ uint64_t tmp;
+ int ok = 0;
+
+ statvfs = malloc(sizeof(struct sftp_statvfs_struct));
+ if (statvfs == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+ ZERO_STRUCTP(statvfs);
+
+ /* try .. catch */
+ do {
+ /* file system block size */
+ if (buffer_get_u64(buf, &tmp) != sizeof(uint64_t)) {
+ break;
+ }
+ statvfs->f_bsize = ntohll(tmp);
+
+ /* fundamental fs block size */
+ if (buffer_get_u64(buf, &tmp) != sizeof(uint64_t)) {
+ break;
+ }
+ statvfs->f_frsize = ntohll(tmp);
+
+ /* number of blocks (unit f_frsize) */
+ if (buffer_get_u64(buf, &tmp) != sizeof(uint64_t)) {
+ break;
+ }
+ statvfs->f_blocks = ntohll(tmp);
+
+ /* free blocks in file system */
+ if (buffer_get_u64(buf, &tmp) != sizeof(uint64_t)) {
+ break;
+ }
+ statvfs->f_bfree = ntohll(tmp);
+
+ /* free blocks for non-root */
+ if (buffer_get_u64(buf, &tmp) != sizeof(uint64_t)) {
+ break;
+ }
+ statvfs->f_bavail = ntohll(tmp);
+
+ /* total file inodes */
+ if (buffer_get_u64(buf, &tmp) != sizeof(uint64_t)) {
+ break;
+ }
+ statvfs->f_files = ntohll(tmp);
+
+ /* free file inodes */
+ if (buffer_get_u64(buf, &tmp) != sizeof(uint64_t)) {
+ break;
+ }
+ statvfs->f_ffree = ntohll(tmp);
+
+ /* free file inodes for to non-root */
+ if (buffer_get_u64(buf, &tmp) != sizeof(uint64_t)) {
+ break;
+ }
+ statvfs->f_favail = ntohll(tmp);
+
+ /* file system id */
+ if (buffer_get_u64(buf, &tmp) != sizeof(uint64_t)) {
+ break;
+ }
+ statvfs->f_fsid = ntohll(tmp);
+
+ /* bit mask of f_flag values */
+ if (buffer_get_u64(buf, &tmp) != sizeof(uint64_t)) {
+ break;
+ }
+ statvfs->f_flag = ntohll(tmp);
+
+ /* maximum filename length */
+ if (buffer_get_u64(buf, &tmp) != sizeof(uint64_t)) {
+ break;
+ }
+ statvfs->f_namemax = ntohll(tmp);
+
+ ok = 1;
+ } while(0);
+
+ if (!ok) {
+ SAFE_FREE(statvfs);
+ ssh_set_error(sftp->session, SSH_FATAL, "Invalid statvfs structure");
+ return NULL;
+ }
+
+ return statvfs;
+}
+
+sftp_statvfs_t sftp_statvfs(sftp_session sftp, const char *path) {
+ sftp_status_message status = NULL;
+ sftp_message msg = NULL;
+ ssh_string pathstr;
+ ssh_string ext;
+ ssh_buffer buffer;
+ uint32_t id;
+
+ if (sftp == NULL)
+ return NULL;
+ if (path == NULL) {
+ ssh_set_error_invalid(sftp->session, __FUNCTION__);
+ return NULL;
+ }
+ if (sftp->version < 3){
+ ssh_set_error(sftp,SSH_REQUEST_DENIED,"sftp version %d does not support sftp_statvfs",sftp->version);
+ return NULL;
+ }
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+
+ ext = ssh_string_from_char("statvfs@openssh.com");
+ if (ext == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+
+ pathstr = ssh_string_from_char(path);
+ if (pathstr == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(ext);
+ return NULL;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, ext) < 0 ||
+ buffer_add_ssh_string(buffer, pathstr) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(ext);
+ ssh_string_free(pathstr);
+ return NULL;
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_EXTENDED, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ ssh_string_free(ext);
+ ssh_string_free(pathstr);
+ return NULL;
+ }
+ ssh_buffer_free(buffer);
+ ssh_string_free(ext);
+ ssh_string_free(pathstr);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ return NULL;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ if (msg->packet_type == SSH_FXP_EXTENDED_REPLY) {
+ sftp_statvfs_t buf = sftp_parse_statvfs(sftp, msg->payload);
+ sftp_message_free(msg);
+ if (buf == NULL) {
+ return NULL;
+ }
+
+ return buf;
+ } else if (msg->packet_type == SSH_FXP_STATUS) { /* bad response (error) */
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return NULL;
+ }
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ } else { /* this shouldn't happen */
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d when attempting to get statvfs", msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return NULL;
+}
+
+sftp_statvfs_t sftp_fstatvfs(sftp_file file) {
+ sftp_status_message status = NULL;
+ sftp_message msg = NULL;
+ sftp_session sftp;
+ ssh_string ext;
+ ssh_buffer buffer;
+ uint32_t id;
+
+ if (file == NULL) {
+ return NULL;
+ }
+ sftp = file->sftp;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+
+ ext = ssh_string_from_char("fstatvfs@openssh.com");
+ if (ext == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, ext) < 0 ||
+ buffer_add_ssh_string(buffer, file->handle) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(ext);
+ return NULL;
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_EXTENDED, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ ssh_string_free(ext);
+ return NULL;
+ }
+ ssh_buffer_free(buffer);
+ ssh_string_free(ext);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ return NULL;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ if (msg->packet_type == SSH_FXP_EXTENDED_REPLY) {
+ sftp_statvfs_t buf = sftp_parse_statvfs(sftp, msg->payload);
+ sftp_message_free(msg);
+ if (buf == NULL) {
+ return NULL;
+ }
+
+ return buf;
+ } else if (msg->packet_type == SSH_FXP_STATUS) { /* bad response (error) */
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return NULL;
+ }
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ } else { /* this shouldn't happen */
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d when attempting to set stats", msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return NULL;
+}
+
+void sftp_statvfs_free(sftp_statvfs_t statvfs) {
+ if (statvfs == NULL) {
+ return;
+ }
+
+ SAFE_FREE(statvfs);
+}
+
+/* another code written by Nick */
+char *sftp_canonicalize_path(sftp_session sftp, const char *path) {
+ sftp_status_message status = NULL;
+ sftp_message msg = NULL;
+ ssh_string name = NULL;
+ ssh_string pathstr;
+ ssh_buffer buffer;
+ char *cname;
+ uint32_t ignored;
+ uint32_t id;
+
+ if (sftp == NULL)
+ return NULL;
+ if (path == NULL) {
+ ssh_set_error_invalid(sftp->session, __FUNCTION__);
+ return NULL;
+ }
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+
+ pathstr = ssh_string_from_char(path);
+ if (pathstr == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, pathstr) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(pathstr);
+ return NULL;
+ }
+ if (sftp_packet_write(sftp, SSH_FXP_REALPATH, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ ssh_string_free(pathstr);
+ return NULL;
+ }
+ ssh_buffer_free(buffer);
+ ssh_string_free(pathstr);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ return NULL;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ if (msg->packet_type == SSH_FXP_NAME) {
+ /* we don't care about "count" */
+ buffer_get_u32(msg->payload, &ignored);
+ /* we only care about the file name string */
+ name = buffer_get_ssh_string(msg->payload);
+ sftp_message_free(msg);
+ if (name == NULL) {
+ /* TODO: error message? */
+ return NULL;
+ }
+ cname = ssh_string_to_char(name);
+ ssh_string_free(name);
+ if (cname == NULL) {
+ ssh_set_error_oom(sftp->session);
+ }
+ return cname;
+ } else if (msg->packet_type == SSH_FXP_STATUS) { /* bad response (error) */
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return NULL;
+ }
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ } else { /* this shouldn't happen */
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received message %d when attempting to set stats", msg->packet_type);
+ sftp_message_free(msg);
+ }
+
+ return NULL;
+}
+
+static sftp_attributes sftp_xstat(sftp_session sftp, const char *path,
+ int param) {
+ sftp_status_message status = NULL;
+ sftp_message msg = NULL;
+ ssh_string pathstr;
+ ssh_buffer buffer;
+ uint32_t id;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(sftp->session);
+ return NULL;
+ }
+
+ pathstr = ssh_string_from_char(path);
+ if (pathstr == NULL) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+
+ id = sftp_get_new_id(sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, pathstr) < 0) {
+ ssh_set_error_oom(sftp->session);
+ ssh_buffer_free(buffer);
+ ssh_string_free(pathstr);
+ return NULL;
+ }
+ if (sftp_packet_write(sftp, param, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ ssh_string_free(pathstr);
+ return NULL;
+ }
+ ssh_buffer_free(buffer);
+ ssh_string_free(pathstr);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(sftp) < 0) {
+ return NULL;
+ }
+ msg = sftp_dequeue(sftp, id);
+ }
+
+ if (msg->packet_type == SSH_FXP_ATTRS) {
+ return sftp_parse_attr(sftp, msg->payload, 0);
+ } else if (msg->packet_type == SSH_FXP_STATUS) {
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return NULL;
+ }
+ sftp_set_error(sftp, status->status);
+ ssh_set_error(sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+ return NULL;
+ }
+ ssh_set_error(sftp->session, SSH_FATAL,
+ "Received mesg %d during stat()", msg->packet_type);
+ sftp_message_free(msg);
+
+ return NULL;
+}
+
+sftp_attributes sftp_stat(sftp_session session, const char *path) {
+ return sftp_xstat(session, path, SSH_FXP_STAT);
+}
+
+sftp_attributes sftp_lstat(sftp_session session, const char *path) {
+ return sftp_xstat(session, path, SSH_FXP_LSTAT);
+}
+
+sftp_attributes sftp_fstat(sftp_file file) {
+ sftp_status_message status = NULL;
+ sftp_message msg = NULL;
+ ssh_buffer buffer;
+ uint32_t id;
+
+ buffer = ssh_buffer_new();
+ if (buffer == NULL) {
+ ssh_set_error_oom(file->sftp->session);
+ return NULL;
+ }
+
+ id = sftp_get_new_id(file->sftp);
+ if (buffer_add_u32(buffer, id) < 0 ||
+ buffer_add_ssh_string(buffer, file->handle) < 0) {
+ ssh_set_error_oom(file->sftp->session);
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+ if (sftp_packet_write(file->sftp, SSH_FXP_FSTAT, buffer) < 0) {
+ ssh_buffer_free(buffer);
+ return NULL;
+ }
+ ssh_buffer_free(buffer);
+
+ while (msg == NULL) {
+ if (sftp_read_and_dispatch(file->sftp) < 0) {
+ return NULL;
+ }
+ msg = sftp_dequeue(file->sftp, id);
+ }
+
+ if (msg->packet_type == SSH_FXP_ATTRS){
+ return sftp_parse_attr(file->sftp, msg->payload, 0);
+ } else if (msg->packet_type == SSH_FXP_STATUS) {
+ status = parse_status_msg(msg);
+ sftp_message_free(msg);
+ if (status == NULL) {
+ return NULL;
+ }
+ ssh_set_error(file->sftp->session, SSH_REQUEST_DENIED,
+ "SFTP server: %s", status->errormsg);
+ status_msg_free(status);
+
+ return NULL;
+ }
+ ssh_set_error(file->sftp->session, SSH_FATAL,
+ "Received msg %d during fstat()", msg->packet_type);
+ sftp_message_free(msg);
+
+ return NULL;
+}
+
+#endif /* WITH_SFTP */
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/sftpserver.c b/src/sftpserver.c
new file mode 100644
index 0000000..77f6419
--- /dev/null
+++ b/src/sftpserver.c
@@ -0,0 +1,490 @@
+/*
+ * sftpserver.c - server based function for the sftp protocol
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2005 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/libssh.h"
+#include "libssh/sftp.h"
+#include "libssh/ssh2.h"
+#include "libssh/priv.h"
+#include "libssh/buffer.h"
+#include "libssh/misc.h"
+
+sftp_client_message sftp_get_client_message(sftp_session sftp) {
+ sftp_packet packet;
+ sftp_client_message msg;
+ ssh_buffer payload;
+ ssh_string tmp;
+
+ msg = malloc(sizeof (struct sftp_client_message_struct));
+ if (msg == NULL) {
+ return NULL;
+ }
+ ZERO_STRUCTP(msg);
+
+ packet = sftp_packet_read(sftp);
+ if (packet == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+
+ payload = packet->payload;
+ msg->type = packet->type;
+ msg->sftp = sftp;
+
+ buffer_get_u32(payload, &msg->id);
+
+ switch(msg->type) {
+ case SSH_FXP_CLOSE:
+ case SSH_FXP_READDIR:
+ msg->handle = buffer_get_ssh_string(payload);
+ if (msg->handle == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ break;
+ case SSH_FXP_READ:
+ msg->handle = buffer_get_ssh_string(payload);
+ if (msg->handle == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ buffer_get_u64(payload, &msg->offset);
+ buffer_get_u32(payload, &msg->len);
+ break;
+ case SSH_FXP_WRITE:
+ msg->handle = buffer_get_ssh_string(payload);
+ if (msg->handle == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ buffer_get_u64(payload, &msg->offset);
+ msg->data = buffer_get_ssh_string(payload);
+ if (msg->data == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ break;
+ case SSH_FXP_REMOVE:
+ case SSH_FXP_RMDIR:
+ case SSH_FXP_OPENDIR:
+ case SSH_FXP_READLINK:
+ case SSH_FXP_REALPATH:
+ tmp = buffer_get_ssh_string(payload);
+ if (tmp == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ msg->filename = ssh_string_to_char(tmp);
+ ssh_string_free(tmp);
+ if (msg->filename == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ break;
+ case SSH_FXP_RENAME:
+ case SSH_FXP_SYMLINK:
+ tmp = buffer_get_ssh_string(payload);
+ if (tmp == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ msg->filename = ssh_string_to_char(tmp);
+ ssh_string_free(tmp);
+ if (msg->filename == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ msg->data = buffer_get_ssh_string(payload);
+ if (msg->data == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ break;
+ case SSH_FXP_MKDIR:
+ case SSH_FXP_SETSTAT:
+ tmp = buffer_get_ssh_string(payload);
+ if (tmp == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ msg->filename=ssh_string_to_char(tmp);
+ ssh_string_free(tmp);
+ if (msg->filename == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ msg->attr = sftp_parse_attr(sftp, payload, 0);
+ if (msg->attr == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ break;
+ case SSH_FXP_FSETSTAT:
+ msg->handle = buffer_get_ssh_string(payload);
+ if (msg->handle == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ msg->attr = sftp_parse_attr(sftp, payload, 0);
+ if (msg->attr == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ break;
+ case SSH_FXP_LSTAT:
+ case SSH_FXP_STAT:
+ tmp = buffer_get_ssh_string(payload);
+ if (tmp == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ msg->filename = ssh_string_to_char(tmp);
+ ssh_string_free(tmp);
+ if (msg->filename == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ if(sftp->version > 3) {
+ buffer_get_u32(payload,&msg->flags);
+ }
+ break;
+ case SSH_FXP_OPEN:
+ tmp=buffer_get_ssh_string(payload);
+ if (tmp == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ msg->filename = ssh_string_to_char(tmp);
+ ssh_string_free(tmp);
+ if (msg->filename == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ buffer_get_u32(payload,&msg->flags);
+ msg->attr = sftp_parse_attr(sftp, payload, 0);
+ if (msg->attr == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ case SSH_FXP_FSTAT:
+ msg->handle = buffer_get_ssh_string(payload);
+ if (msg->handle == NULL) {
+ sftp_client_message_free(msg);
+ return NULL;
+ }
+ buffer_get_u32(payload, &msg->flags);
+ break;
+ default:
+ fprintf(stderr, "Received unhandled sftp message %d\n", msg->type);
+ }
+
+ msg->flags = ntohl(msg->flags);
+ msg->offset = ntohll(msg->offset);
+ msg->len = ntohl(msg->len);
+ sftp_packet_free(packet);
+
+ return msg;
+}
+
+void sftp_client_message_free(sftp_client_message msg) {
+ if (msg == NULL) {
+ return;
+ }
+
+ SAFE_FREE(msg->filename);
+ ssh_string_free(msg->data);
+ ssh_string_free(msg->handle);
+ sftp_attributes_free(msg->attr);
+
+ ZERO_STRUCTP(msg);
+ SAFE_FREE(msg);
+}
+
+int sftp_reply_name(sftp_client_message msg, const char *name,
+ sftp_attributes attr) {
+ ssh_buffer out;
+ ssh_string file;
+
+ out = ssh_buffer_new();
+ if (out == NULL) {
+ return -1;
+ }
+
+ file = ssh_string_from_char(name);
+ if (file == NULL) {
+ ssh_buffer_free(out);
+ return -1;
+ }
+
+ if (buffer_add_u32(out, msg->id) < 0 ||
+ buffer_add_u32(out, htonl(1)) < 0 ||
+ buffer_add_ssh_string(out, file) < 0 ||
+ buffer_add_ssh_string(out, file) < 0 || /* The protocol is broken here between 3 & 4 */
+ buffer_add_attributes(out, attr) < 0 ||
+ sftp_packet_write(msg->sftp, SSH_FXP_NAME, out) < 0) {
+ ssh_buffer_free(out);
+ ssh_string_free(file);
+ return -1;
+ }
+ ssh_buffer_free(out);
+ ssh_string_free(file);
+
+ return 0;
+}
+
+int sftp_reply_handle(sftp_client_message msg, ssh_string handle){
+ ssh_buffer out;
+
+ out = ssh_buffer_new();
+ if (out == NULL) {
+ return -1;
+ }
+
+ if (buffer_add_u32(out, msg->id) < 0 ||
+ buffer_add_ssh_string(out, handle) < 0 ||
+ sftp_packet_write(msg->sftp, SSH_FXP_HANDLE, out) < 0) {
+ ssh_buffer_free(out);
+ return -1;
+ }
+ ssh_buffer_free(out);
+
+ return 0;
+}
+
+int sftp_reply_attr(sftp_client_message msg, sftp_attributes attr) {
+ ssh_buffer out;
+
+ out = ssh_buffer_new();
+ if (out == NULL) {
+ return -1;
+ }
+
+ if (buffer_add_u32(out, msg->id) < 0 ||
+ buffer_add_attributes(out, attr) < 0 ||
+ sftp_packet_write(msg->sftp, SSH_FXP_ATTRS, out) < 0) {
+ ssh_buffer_free(out);
+ return -1;
+ }
+ ssh_buffer_free(out);
+
+ return 0;
+}
+
+int sftp_reply_names_add(sftp_client_message msg, const char *file,
+ const char *longname, sftp_attributes attr) {
+ ssh_string name;
+
+ name = ssh_string_from_char(file);
+ if (name == NULL) {
+ return -1;
+ }
+
+ if (msg->attrbuf == NULL) {
+ msg->attrbuf = ssh_buffer_new();
+ if (msg->attrbuf == NULL) {
+ ssh_string_free(name);
+ return -1;
+ }
+ }
+
+ if (buffer_add_ssh_string(msg->attrbuf, name) < 0) {
+ ssh_string_free(name);
+ return -1;
+ }
+
+ ssh_string_free(name);
+ name = ssh_string_from_char(longname);
+ if (name == NULL) {
+ return -1;
+ }
+ if (buffer_add_ssh_string(msg->attrbuf,name) < 0 ||
+ buffer_add_attributes(msg->attrbuf,attr) < 0) {
+ ssh_string_free(name);
+ return -1;
+ }
+ ssh_string_free(name);
+ msg->attr_num++;
+
+ return 0;
+}
+
+int sftp_reply_names(sftp_client_message msg) {
+ ssh_buffer out;
+
+ out = ssh_buffer_new();
+ if (out == NULL) {
+ ssh_buffer_free(msg->attrbuf);
+ return -1;
+ }
+
+ if (buffer_add_u32(out, msg->id) < 0 ||
+ buffer_add_u32(out, htonl(msg->attr_num)) < 0 ||
+ buffer_add_data(out, ssh_buffer_get_begin(msg->attrbuf),
+ ssh_buffer_get_len(msg->attrbuf)) < 0 ||
+ sftp_packet_write(msg->sftp, SSH_FXP_NAME, out) < 0) {
+ ssh_buffer_free(out);
+ ssh_buffer_free(msg->attrbuf);
+ return -1;
+ }
+
+ ssh_buffer_free(out);
+ ssh_buffer_free(msg->attrbuf);
+
+ msg->attr_num = 0;
+ msg->attrbuf = NULL;
+
+ return 0;
+}
+
+int sftp_reply_status(sftp_client_message msg, uint32_t status,
+ const char *message) {
+ ssh_buffer out;
+ ssh_string s;
+
+ out = ssh_buffer_new();
+ if (out == NULL) {
+ return -1;
+ }
+
+ s = ssh_string_from_char(message ? message : "");
+ if (s == NULL) {
+ ssh_buffer_free(out);
+ return -1;
+ }
+
+ if (buffer_add_u32(out, msg->id) < 0 ||
+ buffer_add_u32(out, htonl(status)) < 0 ||
+ buffer_add_ssh_string(out, s) < 0 ||
+ buffer_add_u32(out, 0) < 0 || /* language string */
+ sftp_packet_write(msg->sftp, SSH_FXP_STATUS, out) < 0) {
+ ssh_buffer_free(out);
+ ssh_string_free(s);
+ return -1;
+ }
+
+ ssh_buffer_free(out);
+ ssh_string_free(s);
+
+ return 0;
+}
+
+int sftp_reply_data(sftp_client_message msg, const void *data, int len) {
+ ssh_buffer out;
+
+ out = ssh_buffer_new();
+ if (out == NULL) {
+ return -1;
+ }
+
+ if (buffer_add_u32(out, msg->id) < 0 ||
+ buffer_add_u32(out, ntohl(len)) < 0 ||
+ buffer_add_data(out, data, len) < 0 ||
+ sftp_packet_write(msg->sftp, SSH_FXP_DATA, out) < 0) {
+ ssh_buffer_free(out);
+ return -1;
+ }
+ ssh_buffer_free(out);
+
+ return 0;
+}
+
+/*
+ * This function will return you a new handle to give the client.
+ * the function accepts an info that can be retrieved later with
+ * the handle. Care is given that a corrupted handle won't give a
+ * valid info (or worse).
+ */
+ssh_string sftp_handle_alloc(sftp_session sftp, void *info) {
+ ssh_string ret;
+ uint32_t val;
+ int i;
+
+ if (sftp->handles == NULL) {
+ sftp->handles = malloc(sizeof(void *) * SFTP_HANDLES);
+ if (sftp->handles == NULL) {
+ return NULL;
+ }
+ memset(sftp->handles, 0, sizeof(void *) * SFTP_HANDLES);
+ }
+
+ for (i = 0; i < SFTP_HANDLES; i++) {
+ if (sftp->handles[i] == NULL) {
+ break;
+ }
+ }
+
+ if (i == SFTP_HANDLES) {
+ return NULL; /* no handle available */
+ }
+
+ val = i;
+ ret = ssh_string_new(4);
+ if (ret == NULL) {
+ return NULL;
+ }
+
+ memcpy(ssh_string_data(ret), &val, sizeof(uint32_t));
+ sftp->handles[i] = info;
+
+ return ret;
+}
+
+void *sftp_handle(sftp_session sftp, ssh_string handle){
+ uint32_t val;
+
+ if (sftp->handles == NULL) {
+ return NULL;
+ }
+
+ if (ssh_string_len(handle) != sizeof(uint32_t)) {
+ return NULL;
+ }
+
+ memcpy(&val, ssh_string_data(handle), sizeof(uint32_t));
+
+ if (val > SFTP_HANDLES) {
+ return NULL;
+ }
+
+ return sftp->handles[val];
+}
+
+void sftp_handle_remove(sftp_session sftp, void *handle) {
+ int i;
+
+ for (i = 0; i < SFTP_HANDLES; i++) {
+ if (sftp->handles[i] == handle) {
+ sftp->handles[i] = NULL;
+ break;
+ }
+ }
+}
+
+/* vim: set ts=2 sw=2 et cindent: */
diff --git a/src/socket.c b/src/socket.c
new file mode 100644
index 0000000..2f1f553
--- /dev/null
+++ b/src/socket.c
@@ -0,0 +1,719 @@
+/*
+ * socket.c - socket functions for the library
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2008-2010 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <errno.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#ifdef _WIN32
+#include <winsock2.h>
+#include <ws2tcpip.h>
+#if _MSC_VER >= 1400
+#include <io.h>
+#undef open
+#define open _open
+#undef close
+#define close _close
+#undef read
+#define read _read
+#undef write
+#define write _write
+#endif /* _MSC_VER */
+#else /* _WIN32 */
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#endif /* _WIN32 */
+
+#include "libssh/priv.h"
+#include "libssh/callbacks.h"
+#include "libssh/socket.h"
+#include "libssh/buffer.h"
+#include "libssh/poll.h"
+#include "libssh/session.h"
+
+#ifndef _WIN32
+extern char **environ;
+#endif
+/**
+ * @internal
+ *
+ * @defgroup libssh_socket The SSH socket functions.
+ * @ingroup libssh
+ *
+ * Functions for handling sockets.
+ *
+ * @{
+ */
+
+enum ssh_socket_states_e {
+ SSH_SOCKET_NONE,
+ SSH_SOCKET_CONNECTING,
+ SSH_SOCKET_CONNECTED,
+ SSH_SOCKET_EOF,
+ SSH_SOCKET_ERROR,
+ SSH_SOCKET_CLOSED
+};
+
+struct ssh_socket_struct {
+ socket_t fd_in;
+ socket_t fd_out;
+ int fd_is_socket;
+ int last_errno;
+ int data_to_read; /* reading now on socket will
+ not block */
+ int data_to_write;
+ int data_except;
+ enum ssh_socket_states_e state;
+ ssh_buffer out_buffer;
+ ssh_buffer in_buffer;
+ ssh_session session;
+ ssh_socket_callbacks callbacks;
+ ssh_poll_handle poll_in;
+ ssh_poll_handle poll_out;
+};
+
+static int ssh_socket_unbuffered_read(ssh_socket s, void *buffer, uint32_t len);
+static int ssh_socket_unbuffered_write(ssh_socket s, const void *buffer,
+ uint32_t len);
+
+/**
+ * \internal
+ * \brief inits the socket system (windows specific)
+ */
+int ssh_socket_init(void) {
+#ifdef _WIN32
+ struct WSAData wsaData;
+
+ /* Initiates use of the Winsock DLL by a process. */
+ if (WSAStartup(MAKEWORD(2, 0), &wsaData) != 0) {
+ return -1;
+ }
+
+#endif
+ ssh_poll_init();
+
+ return 0;
+}
+
+/**
+ * @brief Cleanup the socket system.
+ */
+void ssh_socket_cleanup(void) {
+ ssh_poll_cleanup();
+}
+
+
+/**
+ * \internal
+ * \brief creates a new Socket object
+ */
+ssh_socket ssh_socket_new(ssh_session session) {
+ ssh_socket s;
+
+ s = malloc(sizeof(struct ssh_socket_struct));
+ if (s == NULL) {
+ return NULL;
+ }
+ s->fd_in = SSH_INVALID_SOCKET;
+ s->fd_out= SSH_INVALID_SOCKET;
+ s->last_errno = -1;
+ s->fd_is_socket = 1;
+ s->session = session;
+ s->in_buffer = ssh_buffer_new();
+ if (s->in_buffer == NULL) {
+ SAFE_FREE(s);
+ return NULL;
+ }
+ s->out_buffer=ssh_buffer_new();
+ if (s->out_buffer == NULL) {
+ ssh_buffer_free(s->in_buffer);
+ SAFE_FREE(s);
+ return NULL;
+ }
+ s->data_to_read = 0;
+ s->data_to_write = 0;
+ s->data_except = 0;
+ s->poll_in=s->poll_out=NULL;
+ s->state=SSH_SOCKET_NONE;
+ return s;
+}
+
+/**
+ * @internal
+ * @brief the socket callbacks, i.e. callbacks to be called
+ * upon a socket event.
+ * @param s socket to set callbacks on.
+ * @param callbacks a ssh_socket_callback object reference.
+ */
+
+void ssh_socket_set_callbacks(ssh_socket s, ssh_socket_callbacks callbacks){
+ s->callbacks=callbacks;
+}
+
+int ssh_socket_pollcallback(struct ssh_poll_handle_struct *p, socket_t fd, int revents, void *v_s){
+ ssh_socket s=(ssh_socket )v_s;
+ char buffer[4096];
+ int r,w;
+ int err=0;
+ socklen_t errlen=sizeof(err);
+ /* Do not do anything if this socket was already closed */
+ if(!ssh_socket_is_open(s)){
+ return -1;
+ }
+ if(revents & POLLERR){
+ /* Check if we are in a connecting state */
+ if(s->state==SSH_SOCKET_CONNECTING){
+ s->state=SSH_SOCKET_ERROR;
+ getsockopt(fd,SOL_SOCKET,SO_ERROR,(void *)&err,&errlen);
+ s->last_errno=err;
+ ssh_socket_close(s);
+ if(s->callbacks && s->callbacks->connected)
+ s->callbacks->connected(SSH_SOCKET_CONNECTED_ERROR,err,
+ s->callbacks->userdata);
+ return -1;
+ }
+ /* Then we are in a more standard kind of error */
+ /* force a read to get an explanation */
+ revents |= POLLIN;
+ }
+ if(revents & POLLIN){
+ s->data_to_read=1;
+ r=ssh_socket_unbuffered_read(s,buffer,sizeof(buffer));
+ if(r<0){
+ err=-1;
+ if(p != NULL)
+ ssh_poll_set_events(p,ssh_poll_get_events(p) & ~POLLIN);
+ if(s->callbacks && s->callbacks->exception){
+ s->callbacks->exception(
+ SSH_SOCKET_EXCEPTION_ERROR,
+ s->last_errno,s->callbacks->userdata);
+ }
+ }
+ if(r==0){
+ ssh_poll_set_events(p,ssh_poll_get_events(p) & ~POLLIN);
+ if(s->callbacks && s->callbacks->exception){
+ s->callbacks->exception(
+ SSH_SOCKET_EXCEPTION_EOF,
+ 0,s->callbacks->userdata);
+ }
+ }
+ if(r>0){
+ /* Bufferize the data and then call the callback */
+ buffer_add_data(s->in_buffer,buffer,r);
+ if(s->callbacks && s->callbacks->data){
+ r= s->callbacks->data(buffer_get_rest(s->in_buffer),
+ buffer_get_rest_len(s->in_buffer),
+ s->callbacks->userdata);
+ buffer_pass_bytes(s->in_buffer,r);
+ }
+ }
+ }
+#ifdef _WIN32
+ if(revents & POLLOUT || revents & POLLWRNORM){
+#else
+ if(revents & POLLOUT){
+#endif
+ /* First, POLLOUT is a sign we may be connected */
+ if(s->state == SSH_SOCKET_CONNECTING){
+ ssh_log(s->session,SSH_LOG_PACKET,"Received POLLOUT in connecting state");
+ s->state = SSH_SOCKET_CONNECTED;
+ ssh_poll_set_events(p,POLLOUT | POLLIN | POLLERR);
+ ssh_sock_set_blocking(ssh_socket_get_fd_in(s));
+ if(s->callbacks && s->callbacks->connected)
+ s->callbacks->connected(SSH_SOCKET_CONNECTED_OK,0,s->callbacks->userdata);
+ return 0;
+ }
+ /* So, we can write data */
+ s->data_to_write=1;
+ /* If buffered data is pending, write it */
+ if(buffer_get_rest_len(s->out_buffer) > 0){
+ w=ssh_socket_unbuffered_write(s, buffer_get_rest(s->out_buffer),
+ buffer_get_rest_len(s->out_buffer));
+ if(w>0)
+ buffer_pass_bytes(s->out_buffer,w);
+ } else if(s->callbacks && s->callbacks->controlflow){
+ /* Otherwise advertise the upper level that write can be done */
+ s->callbacks->controlflow(SSH_SOCKET_FLOW_WRITEWONTBLOCK,s->callbacks->userdata);
+ }
+ ssh_poll_remove_events(p,POLLOUT);
+ /* TODO: Find a way to put back POLLOUT when buffering occurs */
+ }
+ return err;
+}
+
+/** @internal
+ * @brief returns the input poll handle corresponding to the socket,
+ * creates it if it does not exist.
+ * @returns allocated and initialized ssh_poll_handle object
+ */
+ssh_poll_handle ssh_socket_get_poll_handle_in(ssh_socket s){
+ if(s->poll_in)
+ return s->poll_in;
+ s->poll_in=ssh_poll_new(s->fd_in,0,ssh_socket_pollcallback,s);
+ if(s->fd_in == s->fd_out && s->poll_out == NULL)
+ s->poll_out=s->poll_in;
+ return s->poll_in;
+}
+
+/** @internal
+ * @brief returns the output poll handle corresponding to the socket,
+ * creates it if it does not exist.
+ * @returns allocated and initialized ssh_poll_handle object
+ */
+ssh_poll_handle ssh_socket_get_poll_handle_out(ssh_socket s){
+ if(s->poll_out)
+ return s->poll_out;
+ s->poll_out=ssh_poll_new(s->fd_out,0,ssh_socket_pollcallback,s);
+ if(s->fd_in == s->fd_out && s->poll_in == NULL)
+ s->poll_in=s->poll_out;
+ return s->poll_out;
+}
+
+/** \internal
+ * \brief Deletes a socket object
+ */
+void ssh_socket_free(ssh_socket s){
+ if (s == NULL) {
+ return;
+ }
+ ssh_socket_close(s);
+ ssh_buffer_free(s->in_buffer);
+ ssh_buffer_free(s->out_buffer);
+ SAFE_FREE(s);
+}
+
+#ifndef _WIN32
+int ssh_socket_unix(ssh_socket s, const char *path) {
+ struct sockaddr_un sunaddr;
+ socket_t fd;
+ sunaddr.sun_family = AF_UNIX;
+ snprintf(sunaddr.sun_path, sizeof(sunaddr.sun_path), "%s", path);
+
+ fd = socket(AF_UNIX, SOCK_STREAM, 0);
+ if (fd == SSH_INVALID_SOCKET) {
+ return -1;
+ }
+
+ if (fcntl(fd, F_SETFD, 1) == -1) {
+ close(fd);
+ return -1;
+ }
+
+ if (connect(fd, (struct sockaddr *) &sunaddr,
+ sizeof(sunaddr)) < 0) {
+ close(fd);
+ return -1;
+ }
+ ssh_socket_set_fd(s,fd);
+ return 0;
+}
+#endif
+
+/** \internal
+ * \brief closes a socket
+ */
+void ssh_socket_close(ssh_socket s){
+ if (ssh_socket_is_open(s)) {
+#ifdef _WIN32
+ closesocket(s->fd_in);
+ /* fd_in = fd_out under win32 */
+ s->last_errno = WSAGetLastError();
+#else
+ close(s->fd_in);
+ if(s->fd_out != s->fd_in && s->fd_out != -1)
+ close(s->fd_out);
+ s->last_errno = errno;
+#endif
+ s->fd_in = s->fd_out = SSH_INVALID_SOCKET;
+ }
+ if(s->poll_in != NULL){
+ if(s->poll_out == s->poll_in)
+ s->poll_out = NULL;
+ ssh_poll_free(s->poll_in);
+ s->poll_in=NULL;
+ }
+ if(s->poll_out != NULL){
+ ssh_poll_free(s->poll_out);
+ s->poll_out=NULL;
+ }
+}
+
+/**
+ * @internal
+ * @brief sets the file descriptor of the socket.
+ * @param[out] s ssh_socket to update
+ * @param[in] fd file descriptor to set
+ * @warning this function updates boths the input and output
+ * file descriptors
+ */
+void ssh_socket_set_fd(ssh_socket s, socket_t fd) {
+ s->fd_in = s->fd_out = fd;
+ if(s->poll_in)
+ ssh_poll_set_fd(s->poll_in,fd);
+}
+
+/**
+ * @internal
+ * @brief sets the input file descriptor of the socket.
+ * @param[out] s ssh_socket to update
+ * @param[in] fd file descriptor to set
+ */
+void ssh_socket_set_fd_in(ssh_socket s, socket_t fd) {
+ s->fd_in = fd;
+ if(s->poll_in)
+ ssh_poll_set_fd(s->poll_in,fd);
+}
+
+/**
+ * @internal
+ * @brief sets the output file descriptor of the socket.
+ * @param[out] s ssh_socket to update
+ * @param[in] fd file descriptor to set
+ */
+void ssh_socket_set_fd_out(ssh_socket s, socket_t fd) {
+ s->fd_out = fd;
+ if(s->poll_out)
+ ssh_poll_set_fd(s->poll_out,fd);
+}
+
+
+
+/** \internal
+ * \brief returns the input file descriptor of the socket
+ */
+socket_t ssh_socket_get_fd_in(ssh_socket s) {
+ return s->fd_in;
+}
+
+/** \internal
+ * \brief returns nonzero if the socket is open
+ */
+int ssh_socket_is_open(ssh_socket s) {
+ return s->fd_in != SSH_INVALID_SOCKET;
+}
+
+/** \internal
+ * \brief read len bytes from socket into buffer
+ */
+static int ssh_socket_unbuffered_read(ssh_socket s, void *buffer, uint32_t len) {
+ int rc = -1;
+
+ if (s->data_except) {
+ return -1;
+ }
+ if(s->fd_is_socket)
+ rc = recv(s->fd_in,buffer, len, 0);
+ else
+ rc = read(s->fd_in,buffer, len);
+#ifdef _WIN32
+ s->last_errno = WSAGetLastError();
+#else
+ s->last_errno = errno;
+#endif
+ s->data_to_read = 0;
+
+ if (rc < 0) {
+ s->data_except = 1;
+ }
+
+ return rc;
+}
+
+/** \internal
+ * \brief writes len bytes from buffer to socket
+ */
+static int ssh_socket_unbuffered_write(ssh_socket s, const void *buffer,
+ uint32_t len) {
+ int w = -1;
+
+ if (s->data_except) {
+ return -1;
+ }
+ if (s->fd_is_socket)
+ w = send(s->fd_out,buffer, len, 0);
+ else
+ w = write(s->fd_out, buffer, len);
+#ifdef _WIN32
+ s->last_errno = WSAGetLastError();
+#else
+ s->last_errno = errno;
+#endif
+ s->data_to_write = 0;
+ /* Reactive the POLLOUT detector in the poll multiplexer system */
+ if(s->poll_out){
+ ssh_log(s->session, SSH_LOG_PACKET, "Enabling POLLOUT for socket");
+ ssh_poll_set_events(s->poll_out,ssh_poll_get_events(s->poll_out) | POLLOUT);
+ }
+ if (w < 0) {
+ s->data_except = 1;
+ }
+
+ return w;
+}
+
+/** \internal
+ * \brief returns nonzero if the current socket is in the fd_set
+ */
+int ssh_socket_fd_isset(ssh_socket s, fd_set *set) {
+ if(s->fd_in == SSH_INVALID_SOCKET) {
+ return 0;
+ }
+ return FD_ISSET(s->fd_in,set) || FD_ISSET(s->fd_out,set);
+}
+
+/** \internal
+ * \brief sets the current fd in a fd_set and updates the max_fd
+ */
+
+void ssh_socket_fd_set(ssh_socket s, fd_set *set, socket_t *max_fd) {
+ if (s->fd_in == SSH_INVALID_SOCKET) {
+ return;
+ }
+
+ FD_SET(s->fd_in,set);
+ FD_SET(s->fd_out,set);
+
+ if (s->fd_in >= 0 && s->fd_in != SSH_INVALID_SOCKET) {
+ *max_fd = s->fd_in + 1;
+ }
+ if (s->fd_out >= 0 && s->fd_in != SSH_INVALID_SOCKET) {
+ *max_fd = s->fd_out + 1;
+ }
+}
+
+/** \internal
+ * \brief buffered write of data
+ * \returns SSH_OK, or SSH_ERROR
+ * \warning has no effect on socket before a flush
+ */
+int ssh_socket_write(ssh_socket s, const void *buffer, int len) {
+ ssh_session session = s->session;
+ enter_function();
+ if(len > 0) {
+ if (buffer_add_data(s->out_buffer, buffer, len) < 0) {
+ return SSH_ERROR;
+ }
+ ssh_socket_set_towrite(s);
+ }
+ leave_function();
+ return SSH_OK;
+}
+
+
+/** \internal
+ * \brief starts a nonblocking flush of the output buffer
+ *
+ */
+int ssh_socket_nonblocking_flush(ssh_socket s) {
+ ssh_session session = s->session;
+ int w;
+
+ enter_function();
+
+ if (!ssh_socket_is_open(s)) {
+ session->alive = 0;
+ /* FIXME use ssh_socket_get_errno */
+ ssh_set_error(session, SSH_FATAL,
+ "Writing packet: error on socket (or connection closed): %s",
+ strerror(s->last_errno));
+
+ leave_function();
+ return SSH_ERROR;
+ }
+
+ if (s->data_to_write && buffer_get_rest_len(s->out_buffer) > 0) {
+ w = ssh_socket_unbuffered_write(s, buffer_get_rest(s->out_buffer),
+ buffer_get_rest_len(s->out_buffer));
+ if (w < 0) {
+ session->alive = 0;
+ ssh_socket_close(s);
+ /* FIXME use ssh_socket_get_errno() */
+ /* FIXME use callback for errors */
+ ssh_set_error(session, SSH_FATAL,
+ "Writing packet: error on socket (or connection closed): %s",
+ strerror(s->last_errno));
+ leave_function();
+ return SSH_ERROR;
+ }
+ buffer_pass_bytes(s->out_buffer, w);
+ }
+
+ /* Is there some data pending? */
+ if (buffer_get_rest_len(s->out_buffer) > 0 && s->poll_out) {
+ /* force the poll system to catch pollout events */
+ ssh_poll_set_events(s->poll_out, ssh_poll_get_events(s->poll_out) |POLLOUT);
+ leave_function();
+ return SSH_AGAIN;
+ }
+
+ /* all data written */
+ leave_function();
+ return SSH_OK;
+}
+
+void ssh_socket_set_towrite(ssh_socket s) {
+ s->data_to_write = 1;
+}
+
+void ssh_socket_set_toread(ssh_socket s) {
+ s->data_to_read = 1;
+}
+
+void ssh_socket_set_except(ssh_socket s) {
+ s->data_except = 1;
+}
+
+int ssh_socket_data_available(ssh_socket s) {
+ return s->data_to_read;
+}
+
+int ssh_socket_data_writable(ssh_socket s) {
+ return s->data_to_write;
+}
+
+int ssh_socket_get_status(ssh_socket s) {
+ int r = 0;
+
+ if (s->data_to_read) {
+ r |= SSH_READ_PENDING;
+ }
+
+ if (s->data_except) {
+ r |= SSH_CLOSED_ERROR;
+ }
+
+ return r;
+}
+
+/**
+ * @internal
+ * @brief Launches a socket connection
+ * If a the socket connected callback has been defined and
+ * a poll object exists, this call will be non blocking.
+ * @param s socket to connect.
+ * @param host hostname or ip address to connect to.
+ * @param port port number to connect to.
+ * @param bind_addr address to bind to, or NULL for default.
+ * @returns SSH_OK socket is being connected.
+ * @returns SSH_ERROR error while connecting to remote host.
+ * @bug It only tries connecting to one of the available AI's
+ * which is problematic for hosts having DNS fail-over.
+ */
+
+int ssh_socket_connect(ssh_socket s, const char *host, int port, const char *bind_addr){
+ socket_t fd;
+ ssh_session session=s->session;
+ enter_function();
+ if(s->state != SSH_SOCKET_NONE)
+ return SSH_ERROR;
+ fd=ssh_connect_host_nonblocking(s->session,host,bind_addr,port);
+ ssh_log(session,SSH_LOG_PROTOCOL,"Nonblocking connection socket: %d",fd);
+ if(fd == SSH_INVALID_SOCKET)
+ return SSH_ERROR;
+ ssh_socket_set_fd(s,fd);
+ s->state=SSH_SOCKET_CONNECTING;
+ /* POLLOUT is the event to wait for in a nonblocking connect */
+ ssh_poll_set_events(ssh_socket_get_poll_handle_in(s),POLLOUT);
+#ifdef _WIN32
+ ssh_poll_add_events(ssh_socket_get_poll_handle_in(s),POLLWRNORM);
+#endif
+ leave_function();
+ return SSH_OK;
+}
+
+#ifndef _WIN32
+/**
+ * @internal
+ * @brief executes a command and redirect input and outputs
+ * @param command command to execute
+ * @param in input file descriptor
+ * @param out output file descriptor
+ */
+void ssh_execute_command(const char *command, socket_t in, socket_t out){
+ const char *args[]={"/bin/sh","-c",command,NULL};
+ /* redirect in and out to stdin, stdout and stderr */
+ dup2(in, 0);
+ dup2(out,1);
+ dup2(out,2);
+ close(in);
+ close(out);
+ execve(args[0],(char * const *)args,(char * const *)environ);
+ exit(1);
+}
+
+/**
+ * @internal
+ * @brief Open a socket on a ProxyCommand
+ * This call will always be nonblocking.
+ * @param s socket to connect.
+ * @param command Command to execute.
+ * @returns SSH_OK socket is being connected.
+ * @returns SSH_ERROR error while executing the command.
+ */
+
+int ssh_socket_connect_proxycommand(ssh_socket s, const char *command){
+ socket_t in_pipe[2];
+ socket_t out_pipe[2];
+ int pid;
+ int rc;
+ ssh_session session=s->session;
+ enter_function();
+ if(s->state != SSH_SOCKET_NONE)
+ return SSH_ERROR;
+
+ rc = pipe(in_pipe);
+ if (rc < 0) {
+ return SSH_ERROR;
+ }
+ rc = pipe(out_pipe);
+ if (rc < 0) {
+ return SSH_ERROR;
+ }
+
+ ssh_log(session,SSH_LOG_PROTOCOL,"Executing proxycommand '%s'",command);
+ pid = fork();
+ if(pid == 0){
+ ssh_execute_command(command,out_pipe[0],in_pipe[1]);
+ }
+ close(in_pipe[1]);
+ close(out_pipe[0]);
+ ssh_log(session,SSH_LOG_PROTOCOL,"ProxyCommand connection pipe: [%d,%d]",in_pipe[0],out_pipe[1]);
+ ssh_socket_set_fd_in(s,in_pipe[0]);
+ ssh_socket_set_fd_out(s,out_pipe[1]);
+ s->state=SSH_SOCKET_CONNECTED;
+ s->fd_is_socket=0;
+ /* POLLOUT is the event to wait for in a nonblocking connect */
+ ssh_poll_set_events(ssh_socket_get_poll_handle_in(s),POLLIN | POLLERR);
+ ssh_poll_set_events(ssh_socket_get_poll_handle_out(s),POLLOUT);
+ if(s->callbacks && s->callbacks->connected)
+ s->callbacks->connected(SSH_SOCKET_CONNECTED_OK,0,s->callbacks->userdata);
+ leave_function();
+ return SSH_OK;
+}
+
+#endif /* _WIN32 */
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/string.c b/src/string.c
new file mode 100644
index 0000000..06042ae
--- /dev/null
+++ b/src/string.c
@@ -0,0 +1,212 @@
+/*
+ * string.c - ssh string functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003-2008 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef _WIN32
+#include <arpa/inet.h>
+#endif
+
+#include "libssh/priv.h"
+#include "libssh/string.h"
+
+/**
+ * @defgroup libssh_string The SSH string functions
+ * @ingroup libssh
+ *
+ * @brief String manipulations used in libssh.
+ *
+ * @{
+ */
+
+/**
+ * @brief Create a new SSH String object.
+ *
+ * @param[in] size The size of the string.
+ *
+ * @return The newly allocated string, NULL on error.
+ */
+struct ssh_string_struct *ssh_string_new(size_t size) {
+ struct ssh_string_struct *str = NULL;
+
+ str = malloc(size + 4);
+ if (str == NULL) {
+ return NULL;
+ }
+
+ str->size = htonl(size);
+ return str;
+}
+
+/**
+ * @brief Fill a string with given data. The string should be big enough.
+ *
+ * @param s An allocated string to fill with data.
+ *
+ * @param data The data to fill the string with.
+ *
+ * @param len Size of data.
+ *
+ * @return 0 on success, < 0 on error.
+ */
+int ssh_string_fill(struct ssh_string_struct *s, const void *data, size_t len) {
+ if ((s == NULL) || (data == NULL) ||
+ (len == 0) || (len > s->size)) {
+ return -1;
+ }
+
+ memcpy(s->string, data, len);
+ return 0;
+}
+
+/**
+ * @brief Create a ssh string using a C string
+ *
+ * @param[in] what The source 0-terminated C string.
+ *
+ * @return The newly allocated string, NULL on error with errno
+ * set.
+ *
+ * @note The nul byte is not copied nor counted in the ouput string.
+ */
+struct ssh_string_struct *ssh_string_from_char(const char *what) {
+ struct ssh_string_struct *ptr = NULL;
+ size_t len = strlen(what);
+
+ ptr = malloc(4 + len);
+ if (ptr == NULL) {
+ return NULL;
+ }
+ ptr->size = htonl(len);
+ memcpy(ptr->string, what, len);
+
+ return ptr;
+}
+
+/**
+ * @brief Return the size of a SSH string.
+ *
+ * @param[in] s The the input SSH string.
+ *
+ * @return The size of the content of the string, 0 on error.
+ */
+size_t ssh_string_len(struct ssh_string_struct *s) {
+ if (s == NULL) {
+ return ntohl(0);
+ }
+
+ return ntohl(s->size);
+}
+
+/**
+ * @brief Convert a SSH string to a C nul-terminated string.
+ *
+ * @param[in] s The SSH input string.
+ *
+ * @return An allocated string pointer, NULL on error with errno
+ * set.
+ *
+ * @note If the input SSH string contains zeroes, some parts of the output
+ * string may not be readable with regular libc functions.
+ */
+char *ssh_string_to_char(struct ssh_string_struct *s) {
+ size_t len = ntohl(s->size) + 1;
+ char *new = malloc(len);
+
+ if (new == NULL) {
+ return NULL;
+ }
+ memcpy(new, s->string, len - 1);
+ new[len - 1] = '\0';
+ return new;
+}
+
+/**
+ * @brief Deallocate a char string object.
+ *
+ * @param[in] s The string to delete.
+ */
+void ssh_string_free_char(char *s) {
+ SAFE_FREE(s);
+}
+
+/**
+ * @brief Copy a string, return a newly allocated string. The caller has to
+ * free the string.
+ *
+ * @param[in] s String to copy.
+ *
+ * @return Newly allocated copy of the string, NULL on error.
+ */
+struct ssh_string_struct *ssh_string_copy(struct ssh_string_struct *s) {
+ struct ssh_string_struct *new = malloc(ntohl(s->size) + 4);
+
+ if (new == NULL) {
+ return NULL;
+ }
+ new->size = s->size;
+ memcpy(new->string, s->string, ntohl(s->size));
+
+ return new;
+}
+
+/**
+ * @brief Destroy the data in a string so it couldn't appear in a core dump.
+ *
+ * @param[in] s The string to burn.
+ */
+void ssh_string_burn(struct ssh_string_struct *s) {
+ if (s == NULL) {
+ return;
+ }
+ memset(s->string, 'X', ssh_string_len(s));
+}
+
+/**
+ * @brief Get the payload of the string.
+ *
+ * @param s The string to get the data from.
+ *
+ * @return Return the data of the string or NULL on error.
+ */
+void *ssh_string_data(struct ssh_string_struct *s) {
+ if (s == NULL) {
+ return NULL;
+ }
+
+ return s->string;
+}
+
+/**
+ * @brief Deallocate a SSH string object.
+ *
+ * \param[in] s The SSH string to delete.
+ */
+void ssh_string_free(struct ssh_string_struct *s) {
+ SAFE_FREE(s);
+}
+
+/** @} */
+
+/* vim: set ts=4 sw=4 et cindent: */
diff --git a/src/threads.c b/src/threads.c
new file mode 100644
index 0000000..7cac6db
--- /dev/null
+++ b/src/threads.c
@@ -0,0 +1,159 @@
+/*
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2010 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/**
+ * @defgroup libssh_threads Threading with libssh
+ * @ingroup libssh
+ *
+ * Threading with libssh
+ * @{
+ */
+
+#include "libssh/priv.h"
+#include "libssh/threads.h"
+
+#ifndef _WIN32
+
+#ifndef HAVE_PTHREAD
+#warning "You do not have any threading library installed. If the linked"
+#warning "application doesn't provide the threading callbacks, you're screwed"
+#endif
+
+
+#ifdef HAVE_PTHREAD
+
+#include <errno.h>
+#include <pthread.h>
+SSH_THREADS_PTHREAD(ssh_pthread_user_callbacks);
+#endif /* HAVE_PTHREAD */
+#endif /* _WIN32 */
+
+static struct ssh_threads_callbacks_struct *user_callbacks;
+
+#ifdef HAVE_LIBGCRYPT
+
+/* Libgcrypt specific way of handling thread callbacks */
+
+static struct gcry_thread_cbs gcrypt_threads_callbacks;
+
+static int libgcrypt_thread_init(void){
+ if(user_callbacks == NULL)
+ return SSH_ERROR;
+ gcrypt_threads_callbacks.option= GCRY_THREAD_OPTION_VERSION << 8 || GCRY_THREAD_OPTION_USER;
+ gcrypt_threads_callbacks.mutex_init=user_callbacks->mutex_init;
+ gcrypt_threads_callbacks.mutex_destroy=user_callbacks->mutex_destroy;
+ gcrypt_threads_callbacks.mutex_lock=user_callbacks->mutex_lock;
+ gcrypt_threads_callbacks.mutex_unlock=user_callbacks->mutex_unlock;
+ gcry_control(GCRYCTL_SET_THREAD_CBS, &gcrypt_threads_callbacks);
+ return SSH_OK;
+}
+#else
+
+/* Libcrypto specific stuff */
+
+void **libcrypto_mutexes;
+
+static void libcrypto_lock_callback(int mode, int i, const char *file, int line){
+ (void)file;
+ (void)line;
+ if(mode & CRYPTO_LOCK){
+ user_callbacks->mutex_lock(&libcrypto_mutexes[i]);
+ } else {
+ user_callbacks->mutex_unlock(&libcrypto_mutexes[i]);
+ }
+}
+
+static int libcrypto_thread_init(){
+ int n=CRYPTO_num_locks();
+ int i;
+ libcrypto_mutexes=malloc(sizeof(void *) * n);
+ if (libcrypto_mutexes == NULL)
+ return SSH_ERROR;
+ for (i=0;i<n;++i){
+ user_callbacks->mutex_init(&libcrypto_mutexes[i]);
+ }
+ CRYPTO_set_id_callback(user_callbacks->thread_id);
+ CRYPTO_set_locking_callback(libcrypto_lock_callback);
+
+ return SSH_OK;
+}
+
+static void libcrypto_thread_finalize(){
+ int n=CRYPTO_num_locks();
+ int i;
+ if (libcrypto_mutexes==NULL)
+ return;
+ for (i=0;i<n;++i){
+ user_callbacks->mutex_destroy(&libcrypto_mutexes[i]);
+ }
+ SAFE_FREE(libcrypto_mutexes);
+
+}
+
+#endif
+
+/** @internal
+ * @brief inits the threading with the backend cryptographic libraries
+ */
+
+int ssh_threads_init(void){
+ static int threads_initialized=0;
+ int ret;
+ if(threads_initialized)
+ return SSH_OK;
+ /* first initialize the user_callbacks with our default handlers if not
+ * already the case
+ */
+ if(user_callbacks == NULL){
+#ifdef HAVE_PTHREAD
+ user_callbacks=&ssh_pthread_user_callbacks;
+ }
+#else
+ return SSH_ERROR; // Can't do anything to initialize threading
+ }
+#endif
+
+ /* Then initialize the crypto libraries threading callbacks */
+#ifdef HAVE_LIBGCRYPT
+ ret = libgcrypt_thread_init();
+#else /* Libcrypto */
+ ret = libcrypto_thread_init();
+#endif
+ if(ret == SSH_OK)
+ threads_initialized=1;
+ return ret;
+}
+
+void ssh_threads_finalize(void){
+#ifdef HAVE_LIBGCRYPT
+#else
+ libcrypto_thread_finalize();
+#endif
+}
+
+int ssh_threads_set_callbacks(struct ssh_threads_callbacks_struct *cb){
+ user_callbacks=cb;
+ return SSH_OK;
+}
+
+/**
+ * @}
+ */
diff --git a/src/wrapper.c b/src/wrapper.c
new file mode 100644
index 0000000..a78a93d
--- /dev/null
+++ b/src/wrapper.c
@@ -0,0 +1,325 @@
+/*
+ * wrapper.c - wrapper for crytpo functions
+ *
+ * This file is part of the SSH Library
+ *
+ * Copyright (c) 2003 by Aris Adamantiadis
+ *
+ * The SSH Library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * The SSH Library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the SSH Library; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/*
+ * Why a wrapper?
+ *
+ * Let's say you want to port libssh from libcrypto of openssl to libfoo
+ * you are going to spend hours to remove every references to SHA1_Update()
+ * to libfoo_sha1_update after the work is finished, you're going to have
+ * only this file to modify it's not needed to say that your modifications
+ * are welcome.
+ */
+
+#include "config.h"
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "libssh/priv.h"
+#include "libssh/session.h"
+#include "libssh/crypto.h"
+#include "libssh/wrapper.h"
+
+/* it allocates a new cipher structure based on its offset into the global table */
+static struct crypto_struct *cipher_new(int offset) {
+ struct crypto_struct *cipher = NULL;
+
+ cipher = malloc(sizeof(struct crypto_struct));
+ if (cipher == NULL) {
+ return NULL;
+ }
+
+ /* note the memcpy will copy the pointers : so, you shouldn't free them */
+ memcpy(cipher, &ssh_get_ciphertab()[offset], sizeof(*cipher));
+
+ return cipher;
+}
+
+static void cipher_free(struct crypto_struct *cipher) {
+#ifdef HAVE_LIBGCRYPT
+ unsigned int i;
+#endif
+
+ if (cipher == NULL) {
+ return;
+ }
+
+ if(cipher->key) {
+#ifdef HAVE_LIBGCRYPT
+ for (i = 0; i < (cipher->keylen / sizeof(gcry_cipher_hd_t)); i++) {
+ gcry_cipher_close(cipher->key[i]);
+ }
+#elif defined HAVE_LIBCRYPTO
+ /* destroy the key */
+ memset(cipher->key, 0, cipher->keylen);
+#endif
+ SAFE_FREE(cipher->key);
+ }
+ SAFE_FREE(cipher);
+}
+
+struct ssh_crypto_struct *crypto_new(void) {
+ struct ssh_crypto_struct *crypto;
+
+ crypto = malloc(sizeof(struct ssh_crypto_struct));
+ if (crypto == NULL) {
+ return NULL;
+ }
+ ZERO_STRUCTP(crypto);
+ return crypto;
+}
+
+void crypto_free(struct ssh_crypto_struct *crypto){
+ if (crypto == NULL) {
+ return;
+ }
+
+ SAFE_FREE(crypto->server_pubkey);
+
+ cipher_free(crypto->in_cipher);
+ cipher_free(crypto->out_cipher);
+
+ bignum_free(crypto->e);
+ bignum_free(crypto->f);
+ bignum_free(crypto->x);
+ bignum_free(crypto->y);
+ bignum_free(crypto->k);
+ /* lot of other things */
+ /* i'm lost in my own code. good work */
+ memset(crypto,0,sizeof(*crypto));
+
+ SAFE_FREE(crypto);
+}
+
+static int crypt_set_algorithms2(ssh_session session){
+ const char *wanted;
+ int i = 0;
+ struct crypto_struct *ssh_ciphertab=ssh_get_ciphertab();
+ /* we must scan the kex entries to find crypto algorithms and set their appropriate structure */
+ /* out */
+ wanted = session->client_kex.methods[SSH_CRYPT_C_S];
+ while (ssh_ciphertab[i].name && strcmp(wanted, ssh_ciphertab[i].name)) {
+ i++;
+ }
+
+ if (ssh_ciphertab[i].name == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Crypt_set_algorithms2: no crypto algorithm function found for %s",
+ wanted);
+ return SSH_ERROR;
+ }
+ ssh_log(session, SSH_LOG_PACKET, "Set output algorithm to %s", wanted);
+
+ session->next_crypto->out_cipher = cipher_new(i);
+ if (session->next_crypto->out_cipher == NULL) {
+ ssh_set_error(session, SSH_FATAL, "No space left");
+ return SSH_ERROR;
+ }
+ i = 0;
+
+ /* in */
+ wanted = session->client_kex.methods[SSH_CRYPT_S_C];
+ while (ssh_ciphertab[i].name && strcmp(wanted, ssh_ciphertab[i].name)) {
+ i++;
+ }
+
+ if (ssh_ciphertab[i].name == NULL) {
+ ssh_set_error(session, SSH_FATAL,
+ "Crypt_set_algorithms: no crypto algorithm function found for %s",
+ wanted);
+ return SSH_ERROR;
+ }
+ ssh_log(session, SSH_LOG_PACKET, "Set input algorithm to %s", wanted);
+
+ session->next_crypto->in_cipher = cipher_new(i);
+ if (session->next_crypto->in_cipher == NULL) {
+ ssh_set_error(session, SSH_FATAL, "Not enough space");
+ return SSH_ERROR;
+ }
+
+ /* compression */
+ if (strcmp(session->client_kex.methods[SSH_COMP_C_S], "zlib") == 0) {
+ session->next_crypto->do_compress_out = 1;
+ }
+ if (strcmp(session->client_kex.methods[SSH_COMP_S_C], "zlib") == 0) {
+ session->next_crypto->do_compress_in = 1;
+ }
+ if (strcmp(session->client_kex.methods[SSH_COMP_C_S], "zlib@openssh.org") == 0) {
+ session->next_crypto->delayed_compress_out = 1;
+ }
+ if (strcmp(session->client_kex.methods[SSH_COMP_S_C], "zlib@openssh.org") == 0) {
+ session->next_crypto->delayed_compress_in = 1;
+ }
+ return SSH_OK;
+}
+
+static int crypt_set_algorithms1(ssh_session session) {
+ int i = 0;
+ struct crypto_struct *ssh_ciphertab=ssh_get_ciphertab();
+
+ /* right now, we force 3des-cbc to be taken */
+ while (ssh_ciphertab[i].name && strcmp(ssh_ciphertab[i].name,
+ "3des-cbc-ssh1")) {
+ i++;
+ }
+
+ if (ssh_ciphertab[i].name == NULL) {
+ ssh_set_error(session, SSH_FATAL, "cipher 3des-cbc-ssh1 not found!");
+ return -1;
+ }
+
+ session->next_crypto->out_cipher = cipher_new(i);
+ if (session->next_crypto->out_cipher == NULL) {
+ ssh_set_error(session, SSH_FATAL, "No space left");
+ return SSH_ERROR;
+ }
+
+ session->next_crypto->in_cipher = cipher_new(i);
+ if (session->next_crypto->in_cipher == NULL) {
+ ssh_set_error(session, SSH_FATAL, "No space left");
+ return SSH_ERROR;
+ }
+
+ return SSH_OK;
+}
+
+int crypt_set_algorithms(ssh_session session) {
+ return (session->version == 1) ? crypt_set_algorithms1(session) :
+ crypt_set_algorithms2(session);
+}
+
+// TODO Obviously too much cut and paste here
+int crypt_set_algorithms_server(ssh_session session){
+ char *server = NULL;
+ char *client = NULL;
+ char *match = NULL;
+ int i = 0;
+ struct crypto_struct *ssh_ciphertab=ssh_get_ciphertab();
+
+ /* we must scan the kex entries to find crypto algorithms and set their appropriate structure */
+ enter_function();
+ /* out */
+ server = session->server_kex.methods[SSH_CRYPT_S_C];
+ if(session && session->client_kex.methods) {
+ client = session->client_kex.methods[SSH_CRYPT_S_C];
+ } else {
+ ssh_log(session,SSH_LOG_PROTOCOL, "Client KEX empty");
+ }
+ /* That's the client algorithms that are more important */
+ match = ssh_find_matching(server,client);
+
+
+ if(!match){
+ ssh_set_error(session,SSH_FATAL,"Crypt_set_algorithms_server : no matching algorithm function found for %s",server);
+ free(match);
+ leave_function();
+ return SSH_ERROR;
+ }
+ while(ssh_ciphertab[i].name && strcmp(match,ssh_ciphertab[i].name))
+ i++;
+ if(!ssh_ciphertab[i].name){
+ ssh_set_error(session,SSH_FATAL,"Crypt_set_algorithms_server : no crypto algorithm function found for %s",server);
+ free(match);
+ leave_function();
+ return SSH_ERROR;
+ }
+ ssh_log(session,SSH_LOG_PACKET,"Set output algorithm %s",match);
+ SAFE_FREE(match);
+
+ session->next_crypto->out_cipher = cipher_new(i);
+ if (session->next_crypto->out_cipher == NULL) {
+ ssh_set_error(session, SSH_FATAL, "No space left");
+ leave_function();
+ return SSH_ERROR;
+ }
+ i=0;
+ /* in */
+ client=session->client_kex.methods[SSH_CRYPT_C_S];
+ server=session->server_kex.methods[SSH_CRYPT_S_C];
+ match=ssh_find_matching(server,client);
+ if(!match){
+ ssh_set_error(session,SSH_FATAL,"Crypt_set_algorithms_server : no matching algorithm function found for %s",server);
+ free(match);
+ leave_function();
+ return SSH_ERROR;
+ }
+ while(ssh_ciphertab[i].name && strcmp(match,ssh_ciphertab[i].name))
+ i++;
+ if(!ssh_ciphertab[i].name){
+ ssh_set_error(session,SSH_FATAL,"Crypt_set_algorithms_server : no crypto algorithm function found for %s",server);
+ free(match);
+ leave_function();
+ return SSH_ERROR;
+ }
+ ssh_log(session,SSH_LOG_PACKET,"Set input algorithm %s",match);
+ SAFE_FREE(match);
+
+ session->next_crypto->in_cipher = cipher_new(i);
+ if (session->next_crypto->in_cipher == NULL) {
+ ssh_set_error(session, SSH_FATAL, "No space left");
+ leave_function();
+ return SSH_ERROR;
+ }
+
+ /* compression */
+ client=session->client_kex.methods[SSH_CRYPT_C_S];
+ server=session->server_kex.methods[SSH_CRYPT_C_S];
+ match=ssh_find_matching(server,client);
+ if(match && !strcmp(match,"zlib")){
+ ssh_log(session,SSH_LOG_PACKET,"enabling C->S compression");
+ session->next_crypto->do_compress_in=1;
+ }
+ SAFE_FREE(match);
+
+ client=session->client_kex.methods[SSH_CRYPT_S_C];
+ server=session->server_kex.methods[SSH_CRYPT_S_C];
+ match=ssh_find_matching(server,client);
+ if(match && !strcmp(match,"zlib")){
+ ssh_log(session,SSH_LOG_PACKET,"enabling S->C compression\n");
+ session->next_crypto->do_compress_out=1;
+ }
+ SAFE_FREE(match);
+
+ server=session->server_kex.methods[SSH_HOSTKEYS];
+ client=session->client_kex.methods[SSH_HOSTKEYS];
+ match=ssh_find_matching(server,client);
+ if(match && !strcmp(match,"ssh-dss"))
+ session->hostkeys=SSH_KEYTYPE_DSS;
+ else if(match && !strcmp(match,"ssh-rsa"))
+ session->hostkeys=SSH_KEYTYPE_RSA;
+ else {
+ ssh_set_error(session, SSH_FATAL, "Cannot know what %s is into %s",
+ match ? match : NULL, server);
+ SAFE_FREE(match);
+ leave_function();
+ return SSH_ERROR;
+ }
+ SAFE_FREE(match);
+ leave_function();
+ return SSH_OK;
+}
+
+/* vim: set ts=2 sw=2 et cindent: */
S"5ȿ:ow j_4.H(ahSڴGק2^#RC.gB=]0:Yܧ6w>sfSznFqՖ vvECJ$#|9i( ڈd}ei;WXǑ/nSλlm>$$3ʾ`\<}``b`"fV>2db(FV1juq|r.RYV=E`Nߡ Eb/G[sqĚLqDJ&@ai`"EQRk|Ra ?}⬶wd ypkfʫ3+5NB?-)]`-TPznsǓqW; 9<,Lj? fKwzMӄ'֕[h߁g.g GO(M퐃JW5re7oWm'f=g'߱ҤoN+4TG}hcE"é á TnϙӍ.@8RFy^v~~J9j1^;b_è-j g#&cˏ&hqΝˎj~~qcP[D, „^ ОіLCSCK1DrT2F{ uCyL0:Nȏ aqVm_*[e5?Ì.^?duU|qpKe諹̤"Z6<"'>f6SaF B=O)Z N ~]U|[۷!@B#Q׊ jؽiM4K!)W%M&˜K\ T}ɊQG=St q}@]>73([m]y{Y#w`_Ia7 Ow+`%)ϨγތZNVfv~_"WS5Ct6o@e-A9Hkf23{+DQR@^9nBX5t=Kg@P B?geljP{mɩvDzzX9hHǺvpM;21 6{Bʅ[7ZIA`h:b99] O')y gF:=/"NA2q9D#8jiƢ#5؀~[ƨ%7xwؔ6d/LwZa7ͣK fMP(#ڛŠ泀Do,7\vHĠ!,ƆK`>DRJF$W~:m8ll:r-븿ՂdybHl8Hz̠Nˌrg8 f[hkWpd8 u+SLpx:*1@O ЦY fNX,2].rA|ghϺ/cgCP[$=BIqAqPK4 m}1q׋R-lHu;%kr >u4R2C|ݫ nODg Exacqs>ϗ^^(WbY䂆UIl8Z!׵nB,n(gkj<MP?Y7u>v.W O0&&S$": " `x UXbF32 nߒ윍 m vAHɇWe^q׌SX<'KS2 ltmRXbm5+p+6JTGJ( EFɅXp[`͈~3Q=5M7AyB%[ ۇB$xx3@{N(`; -YIwf0l < D4 ^Y뷈=lIy?ځRә:pO׻)|Qߋ~-5JcĦwQAxrl  I;*ER2x`JO|Rp8*5ps;pb5:~?xS6Aip6exn}qdc;@PO`熤PNɠo壚^rۡI{q,oJ1욼 ɧ/b=?Y7?XTGѤ{|+Igv!QMn=E@[ĊJsOb1V~:߄r')Ub >6 b0bY= +g7rb>sR8T`?! B}=FPNFIN*\Ywn۱h`h q۽_'4֔XsN y27'w ݌PKtRHQa i qyxnV!Ez@:U7ᣚ5a\FkƗ+ \g1գ5'/dZni7i);$q|zfL<7 4<# ҏ>qM WI.H~eD:'3Kd翿%:ZS\/g[.dg-rZ[d|hC-t$*|%ύL8=P3hw)Na:nHG@XǛ*fZ%Ovc͇w"bQes@iH̹qb&myCI<ִS JYnہvM3gYn4#(gޣvQł*yX0{XM)007rR/M>Lb9H(MNX A#|:^z4#&/*I.6w(.0HFuTQA%¤sB.U%j nv/fSU~ur;2,DJ[嚐v˂$t/sDz]ۧHzi69P6 `N/oܧMA3ݛ2͎RNR3UX 'q>^QIr{H~%XXNv۫<&mޑu4%Gk |PH"{ bcZ-yX^ (h E2`~LLhEg 9=1Τ껥hbD Gi+TxTAfJB{}]'rTE AY1 M|&y}ӏkG`#6nUr 7U?{å4ԏ@][&]KĢ[!!s${ bm^8l͐fWi~L>)ݣN]qG.wKl ۳+$Б?->`Ak/;=z$g-3 Vߝz f#dDؐ$avQ/`E-uOnp)hSV^ mzDhŕ1[ &@ VrA 5ol !Cf^a.[.Q&O&@FK '\+`⼽| w$h6IEaYZ#Yim*'M$NzE`|JR[/uahD3 yu߼Hٖu)`ix\:< ?YA3 x lO.'"p[ N!2"KHoiyh;rNTj2x6:xP [A*ӅAoJbF&b7= e5bm̨u-Ǽ?#deQVE(B<';dVwKa|N:﬍awF:ş ^9ͥѪYkhh)Dzmg$XB!X[:(28 bM0. _ .MnW#9G[H^bg"lSqwSyT,Prףq"]+j ZlȭMǷN)Q_rp9ru;cZM$_}8zo۫\/0W*c]gF '?K/|_߄/Dh4ξR?[>Ká鏍U=Jѽ%Zԫd~S=n =fS^.7;-!pShy V *Dt,"I0~c}O'jhĮ٠@١JpTP7^ݻ&^)B-فG oEL~^xՙrWs>ןac62B"GI3Pt#8%-,-p>a)W rÝa'ʲ$feY3eA[ j(H v(@e=3$Z20MW e-Q?ܠgXZl cCO1W-Fѽ qR$AJt(ujY{vzs#B4k̂NhahxŖy8Dw C2*_Q45,&A9!,5Lj:y=\0NN}5| Lt0:"N|G#81Mmf#R.`i$R:8^asSi.yJaq ]f^GЂsf$ᖡda4c8S3etkj1DHE]LPHg7}_;K|Q|/L ԫY'>殡0jԌ򳞒Y;. ܦ)m<8Z ˧>P&~RVUAm -pSGFn`lp.o.jvkG3n{ vh#4;ֿ_Q!]cj#lgI&_1GouȒBL" Ѡ dh ؂kuip 3DžMO#i/փn= t }⎊DggJ;y)3>\j / 5n*]4NĝQS|)9CQ*b`шȓQUa?@UkoE^ +L(d.]m/R촦{`J7Xx4TB dmE1N2ۍd7t P0lV-l29}ֻvM%!UʧoZ8[_Ry4bG$_|#Gq;g7PѬlqgxl ٸ2g&8A[m3Yf'ʩVNZ3Iy{fADsz)ӏ%CRmO^-C%Ǫҏ3_7(xU哅u:YRs{Rb)4 ը5$K1ҙ .|g.%ܲ;C6o>UOB&! \ [dZ10s"Mˁc?GԱᜨve*ΔO.zNe, \2DؼbD!`NC0m#4S6*E@R߆gvc Je X"ȭ9ŕnx=Lˍ4bAq# TY_Ӎ6q?-| Kã5}ttVMk8`mg%0>)[Kr;΅EZ?Uoi@_/?o)3(}!v@PMiy%|흿ԫv' w.1&0 T`҃J*}D ZV$ 0vN?1' Ur%b|c0ǙT|1+;uPj~= d24)?};{-~fԗŊw0\iaz1}&+?SĨ?·qsM}sSnr_VK7%!NozŹP *KQag1ʉc|],|Wg.=tS (g{Qz6XG} q%u/(YP p(Z;PCA%Li@1v9sʥ#].?_ۃA1GkFV{F45G7M9;; gƹ^0_fZII{լ$7S.sv;uKxo!Q+d0zbZ^8m dc{< qLE6 BX>;^U嬜VIm۽ ~)Y2̴nh&Ir"x%ÙLSsXMf) Ėaw܀o }#0)dp.8)o'|"ϬOd($RIk`lmr.Í00ED$7oApgڦ>_vPVUA?w.r tT$E tWn~;upw0`帖> sw1ݽq 9ڇ }]<)wDb$I=$OF8ϊ~ɿ%2YwtHXvۊ0*"1@N"]x@sѳ>$ӧVh/f?|g A- C= 7 & d14UxԂjet<9n{VI,׹}i2V═ ,y`N^Wf7EtS/:==FmC:v?DxMr8/RyJ/6J~ YgMJ;1قIeLd=gR=wG]QJ蜐0d<lcX>Cn4|wf@IɬF EcI.'*@Ro^Q Abq `KixV~y܀z{KtFGk_J idz;yV<$ݿmQ{.tXgwr"3T',ȪSnjacghr("nq4DDt -Bdb?js -O9?"[E&q坒!35!),>'WyZ O^Zh]ҏ\%IH`ob*siO/s_]Z>F5}'.i7_'B _iL:. ^}&Xh_'vy8Z70Ӯ@v2@ND ,ff0A¨( st*}}d,u33Q, 1I _Ԥ,d A̾IˌAwsPiB⿢AKthY`'Es0\9~(}-.׸R1Q:1Mu%֝[Q\\uGh0DphOfx1]>P*C¨.rA997B@KZRd9Xa J{wIv-/vwLdXւ|Fv-$mǷV["H/1U '>Vsu:0%i!eu^_O0b{ўMh>\Jqu :ҳ,4!-[cT+"w R̃19!EH" I).?~L@Sǯ]qRd&/3M,tN0Yi^:R$4wb*ƃ?p){@ѺFKHۈ]z\f%u855ݔv*vϓo҉Hѣ)Oe n&A7"ՔN'hJ]X{.[OMQc ?tryMr=1˴&YkIT @P+ ;xQpF'7B{* \Qx@ p "W5"v:$n aPF9h#aVMđ@F|g;eTNUu `pqOlQ-K1]ųa&u(' ӯWbg L;fh#8 & +S'D9[t+Z3+ż6h&ig+;d)j2Z͘R9Z~n.5+ѝlhKl8C@RQ>5fZQ/K>o$`Id~STLZ- 2%KBhU.I.!̌ŤZSk Έ;%{1a/*,"~SQD 9SnK\‹;z}}MXFf73\`.?rD-@Elar9(J`^rYĚӓf;B# oe4GQ9^8B;;{Wk9Q[#~F}ڔ[!5πlTEtcΥhB[ԘT5Z Rsx+ 2&h`י;^Y=D!Z'83.oDBoW.ҷkJMpO [|x~(,Ӻgrmj܅dcrtu/L\QKŐ)"VᔎwKK[#{LJJB8J)l^8( 'nXeȺӰ$#v0;"HD<<|K$/:-jcpy}L_:a$=2EC G˳aF棂qe+hY30ח{)|B6BKpyJq=xE9/vWmFj)RB:2>mn=ҟɨnQS̥C0gwZC jt;+Ұi[}gT)ӬS%B2v<5Xr"2;u0E{4)G.͚vMYOZ'5h$ %H S- Dh@o;UHObz `Q@b񠶈ևS6FBUW[F F/o}zTb'J2uh:5Kqw)} $"x$РO(wt~KmtVvڣrF@HƍאM8`g)RgHB 0&jiQhLV-<8܅Is:7)a !HԾ*Yd$l 76P[Ѽdy0ZxD8w:{ۿSmԹp.( e/-3߽ "aRUnsz-|(QKrf.ϯb0:z*>eQ*\T=fYHO}O-ϘRt1#_>rgV-\]2kFQAQo#l Jݕ# Cٵ"Q+I{pxsXgR갵 ]ИKv&҆A5aHF #1RtbJ) ˞Fɰ7$mۭlN-NV,5q[AZb|nIxT|{~XxbϫlVsRiI!WY}KR)GԼ }.;Q䌕m2-pbR45­rã59nڴUcwəi]ܦ6f/,L0hNڠ$l<Sa!WhT+ Lg;q fr10Dc%y &v%5d;d⿊vC|&G;?&nsԷhebD{ Q푚A` 4U[@XϾoFeqmذzƾdz> J_Q"w 5?ǰ~{Ƚm7e+'~8a'{)R&*Gk31%<=]c) s GiDw`&L!i#>9:lphqFL|TT[b)K{ opi(M)c f)|5xMQRJJpM6ݰ 2b -:/ɒm7j,( ilބFi=AdNK|헅]D55k ZGu=4FozF\=뱼m1bƃsHˏʏl9Xl1:7 zPP /%4 &.E?*EMohT"`c6kC鉏C3xƦ1~GIWAMc593Όb^&Lk[b.ŏڇ;N&zt" $=c}}DlpeUECmʻYos@|L}H8;y# T 6f-}31"}axѺM1-i=ױ>q2gzrDA :b/5 '5ݑ0G4~I{8qh48wԖ)&ٷDmZaT+Ǜh쥜>[ORfN%AT=?nRNҲoz$ |<*M} $ݾx\| KTc NeNƾ}F uFt˺}ǥf˘38SdxnS0%a<."?4Ob$xYW&l"aܼ:@;3#y[˻?%[^@Ȯcz{eZDK4ʡf);@$)6_,q_ht ?42Lddl|;O吁JG&$j{q/>H x'F~hCUxO@qkV)ܪ>SS;rj2YDQ6Pk0cA̟RgLLʪzݙG͜[T;bH [X&ķZE7J//LCToIKvub%0>!rLp6CʷWNMܔE.E0֐pvPgɘpl W=yXڛ־,Xݮ4.a *͢.# J%C44Ke, M?JQ7N`Oj2{םtu!hªÎ'h)Aod Tx.ZD./Ьy6mheR_Ʉ~4`u/Bi 1a< MnFQ0'VtѪ̲+EN =Y$E~GoI; WWMZO7ld>%Xj N}JtSEX c'%ӄԞL޳L>쾰4 \:w?h8mǺxX g}p O6h' pߝR'Ћ`jz/{+UIAb[\+|3@&jӌD@%n$%N1Y;jqG|Yaך%"P'&6y/l)G[BZ22)vEZ^C7)SOW<0Rvs05wU :(u+i l.$d˪9DluP@9 [1*s"S:._./3TUy r0Ivr4Fԧ1Q!A铤.{jJio 2H  `y視1MwTiR_1I=Z"ۯv-*5-/"J?QルWD̚lr6djq[= 11268iC=-qMQb-n20:DO /l 3F $"1[k:!*Ϊ%7/'L}6v+#erpi/"=7Y (׸l6Ǟm;JUW8 YXyg8ljҭUbOHkMP+UQ;ib"?kwҎ-ÌeNwPZ5:wQ}R !!c̔5C@_ٴk\ ͸R?X";gʌ|# P"hW3^f)uy>gF?ܣƂqmǰ?zs|sFyE݃PC# u+Jz4=8<ݳᲤǖ\Ľ|_2/OfLdx4Baη$@)IP`_-Wy:kg8.ৠ !p }#A'i(Μ59? hn%E|J"Bd@&&buHBb[$Rd M˩VDPV>^zÿ/N%s)>-\&܆Zn"hl?f-o=g+B f{# MӲtxZ]2D 9>f X' rf7)Z^gK49|<غ{sik_"JPԩA.a"Nn/I=vcRȨ\l%ZI)}XW>1M/26?;,HJ}R8Yi{ǐ1{h|\ Y몔o\+MPT1GZtߔvQ=:קs׹5tFTyEV0Սc9b0; dJ"TA`|c]Ae~#cVAH7tb G̒tSbum^+=LhD^9tޒD'A41^qɺ#AWC)Q@odvr_/*hU%uϝfpt9AKHE(Qe0,%'|G^b!K-V|j.Q7!&+l(G̹ G8z!?P,|,Į\ZK-hb;dEvoO.F_Sk#MDZd.dXƚNv?`Zd`_G gۦ7˫9?p ڂ(w/49 X q)=Rhshu%}|hc[ ~Tv&({N<%(zo|)׀Xk*mdk{8K1_rϧ[V'G`NPyz_ #Ñs0 $ \CuTS)#>0$'.e,_ʃASMAU-X ݤ>6mDH#M_yRj+f22@.es& 1C\Ο q3 H_b%m8 ,E^yˆofOdGc8OImmܔA"L=pGCפğT=jxHPЀ1q]»o{1NioLB'kvXfBo+!e4)$i9N|xzup! 7I_:GAl 潚"" + V{4l0܊#SF-|z F_^3~}UGM*x,lܴr k. `K1a5[?6cDr0X`KDx (5RPRzvhbjYw-Kn^懜e?c`!2]W9DK,]*a֋u氇S\)`L!C4ءߩ9]AP{fimA}aE_ fzx^u2 scrLy,1F"dObeUJ#%Q(R ]~*6^fK;m :'N0cm(EiO2 owNKDlO0DlU²FɸiX2b]F߱vap!]j_'m9y1'+J\~P40.&qe).\Lj.M'}Yt_vvV*&~ERpQׄ>+r3U-N1ZkjtIQD ]26p5hFvg}ف-B$)"eYyռ"QcH}p }vҔS(Ƒ݄EpnX0x+S6c4ODamcyw!ĞYW3x;o頝Vk}͹kngz`L@w| wO9\d4 Pq-䰫hzUJC] d!N4+y&]^^m23^>9}L = IhM`%|!ρ5 p6pOX)QmE K r,(r&%jԀW 1}L PMspʏӭnZsSvCb#m%lߨ%¼tVEcմa5~;NEH] p3A];9R^9Ӄ G: NJX} xK5AAh欓_ڛ.VU5Cx3xf?3SⓆޚ{X}'տ?CǙUCm{G[9\Url7OZϤu4;朦+NF-KUk b(܎ YvrhOD3r(4.ݶO_:}5/*NTs.T#2':䌥%H,rԭqt'HnvJnE0չ QQ 'mX}xDv:JP;9- A4$Kx!֧u&,fa&a7|!EA} P-Jr d5Mw\lSvى5ҡ|(g;slH~ɽH /osߑ$[GH8#YҔ73]_TQ(*lF%q'`˗ID$Äٴ]ξflNmpb:N6%Iy{#>*{kaaa03CvCq`z꧓ ziհXF+nf0vaY7^~_4B1&:JXRfݞq%lPLa2c߰4BCt^#,myo5[4w]IߋKccSH&KaR<=rqENQ2(ףx}@ ~{e;1G1i*dNa6[_PEz\{(m@SOLWbp|i_RH|73tijw6:>ՈZc l(_C *>Z/MBO0wL1&w_9a瞞_^iHkokBUP!pe3|50ZIXcߺ$m%f@Q .>>@>; hsz5To&=qA?Wa.))HFY;"-*Aҩ{ISWzZ~X@J܍)h4\cun=[.>B1ȳy x}kty4pk޿՛H"Φ?}J<_(ETM$RHnE#rp5e݁ZHܕ[h`D>$%& a YGǻ;3KхD'Xw(v=\Ԑ`:Y8+%ճnz ,ƚsڢ'FUR`I-FvdVmJQG@kmV)Dr% _4Oz<\>R'i{Qx PchWyN"|>sxP1z\(f$ 8} PL]T,l_Yb+Yf)bW+T`eO!] ?8gѲm">8ǠeGE3 WK"+=k`[:P;ua@JDpyE'v ߭0X^{/u8~5(EQb>6W[KՐFvnfm>6J%hUǢdJ+Ժ}/l)) ,xnى-1e04+_H-$v\r:U^g,3])ěZ tzK)2alԆwعe6Ow=9V.(#X3EUtjcb^Gm DL)e@DuuS~L0VM\.6F^kǗ~l L`֎x2 LMP 1JcZCCԃ?.v Rc+ :DڻkVyסt,e9?kLՉPOd%(jNEŹ`3Π;Y0;5x%q #pyK^s在ӪGȉhw&KDDy17ؔvZR]@͓PrR(C:'3YDAuRLm_Ue xO)՟*Ԗ\TEzP-8WB)`lt{'$HK.*i %}ŦZ z4otTy4 Ĝ"ؔ;|He/B_0|Ʒ11ĜvqpC|ll Hm'٧@%4s.'5e/όg}rbR3[]t3\5j ;js%X{[8~4a'B:FhӡSr'8o25pEyk5P^0TWڔiR f9æא^SYꁿ'/t *[ww2cLW+},9z,x@Imf5aȭG 7%_yf\B|4&u?Q ZI+)(Y>yr;#ӍL(up'+Swckj^~57qIs𡔮2|~7se[6 S H Z1"VN1qgUjE H|2CX RMN_JuOb Z)џ"r$[yS%\66 E,e>L( L\id+n&w^34G%eǚk:=w5ZxLְ`H#5>މέ5 e[klE4{t)f!zU8_ ɗgaoegIl?ɫp[K̈́/P|.|&9`;[jJ} O;U 6}aVˌiOjj$i#V~^ܯ*aaGiZ0-:IԎ"#lceMrzS1]!DS%+VB9+$*`TNW&|OԟHikh W{pӐR-ێG@2fSnI1`%ly/0TІ;D'OsX9Mi_~CT5_΅o;ney bOu~X5C wnS`JS+vKt4qE4hA蚜G=x[x y -}$g-oǷrY7. $c f 9Z6_ɦrm%L޵䎌;<5n6\؟IVv>xZeϜ-Q T ?.T~E+K:o¾ /Nkjy6O]d$zWmO?_߆EM~7{9E=Mw5DJl$8d7kS;m~! ߳ cKkIŇu,ϱ:^NQj OMO(9P( NKf \*>rUڿƣkg-ĎvTkǸ;!rɓ/0Uoy6n'Ӓ[T Iu -Ŗ4Ⱥ#}S,dtx5{g3QSmz&Pb{!R:[Gh:Be'u4}b;$SrIJBKHixC1gՊ,b La@]By x;usZ< v?==rGC*T^6{.+ܹ 𺶳Q`r2]k=~p8*;PC,q;ZӆBAC"8`FXm3<9{OQq>Wbcmިp6;OȻA-!OK4_fy,tm=zdҿDh~:vZU|Y1}g tA!Zb)8/ 5*$MHDt9l8:,Lt.4TjL?7 ڗD̩cεڶp}vO) ZFm'كBijnZ&CR'C+<8Uc-Ir?.w\)Uea!ǻ‹ }ο=d3^ i< 閖dST)&y7)Wb8{zA{ ˪?Iͣ{ *%l?096\/8GII * U#khp} +"r8= 3ZR7!QA7Yʘ<\怮m#;*ޙP \Sj,#I7K cݲu(/¥8wYgD-Ĺ>6Rc!IfAwo tF /d8#/hx 'K(ܜ> uPΦRm6s$҄- v| d<+x 2)ߨc޹&eLM 3ū/{CfZu^妕™! PM`ZYX?&HN \zv8f&ؾٿ6q{^߶4ڀorϋNōԘuPPv0џy+0ªڌ 't{┥QQ;aH a'EV m?k]XHB4?l03/\0fZa[OF-o,LepmRFIae 9b2_`x:ϥ :LR~tNXy͑ne?,8+l<}LYȝJ FD%G%Lʲ*J̭8Ϊe#C/Bw|wm/A>jx/x3~1ij ~%C59x=rj /$vh lIƟ{c9ɚ4l2Vaq%+W_(vg`z"L-kɮe[mj"$,W:,캟CﱕX1i> wAS8 \mTI\;zSX@R];;[oWBNl1a[ 6 Z{h8@ʰCı\U_rp[iПݱF8:8%0y}{I_=/8J̬{ (γn&@Acj<(Sa)Lqɔ/Wjijzy`e*wSos vmFbr hY{(Þ:/[*A`YGNT-9o6B/9YɶGi*cyvq3qƼ<=y W5Bk<@BpB 1Ni[4p#/;$͉8F,&BݫUަ PUz+LQ{U7 '`:;yԜdӑS[)%% {i8AТboW)c#(7SzXr~1U˱qm,0 !P6ۮ >G5jc@pρ˃ȜцǓ1>Evo -ƯtX%,_pNX)r~EJ_lMv[J/mCz+w  ;^ =;HfjƥqOpK."A|GmEN7g0jxrhe$'r3zK$wbYHgNEyov6XJDڵLJpAk&Ծ_0\JqbwVOx={yJ¡OZeثi4MwuP2Os]V<wY]m,czcSdVz.8bU3hl9~s6'3hCO?*2{9nZ @tȬVr:7\X?"(׶:rHU:F1L|St툔 b00z:9rx!Sn۳S빞('S ~5zk*6-ݗxO<7%ʚ2A![ƂK&!F*p0ljSK^¾:ɯ[9qJgd[nZk8K!5^r\nMb7 V$H[ճ^G@˒vd#K%GD@YѽjNNRՠE13b/~`lLR_dMVBbZ±413'zeB =m6"rQm+QNj"dv@1V@ARu]_!L+T]$ɞg9°_N"A+& cQ^¥=ձ -ԣn/ kE7in[m5*hޢz%e=2Ҭ㐐\&u3duTl3OAJ-AklV;Q#Ft7oOZ%2d 2Bb6D!,?B}_kfa>j<;-b/`}k"-[t<6VMϚ\TCkIP'+D{Miј- 5G8Y5"m{B(9i~'%EC]bV_*cS gyĈSɚMN&nAZ65|vXM!7lJ@kksjG xg̃w#/ٛH)ϣsf տ@=z6lBK]:; BƑ~edOmD;EH*UL(= AF`mK_.P˜bJ wf i&&FubqP@G,M[+;O-mz񙰈_5%j:t.=D|(}+'H|zkd_p|̹PQ/sy VK8Pޏ/>@QdX@(x2@+5ҷWQMYLsLzQPjN\l[;eзLJM%aM 4aVk?VzΏ!qwon9D~Ok1HVn<[L,QU/O쭓( Ui}($ڲ gӲma$G=sX%1s!U)!h_@pr:79Rȳkv h0 A['&Wyul܊ HPؽ4v`2_w}b:fnkH~-3A=?[LFf;xs`͢ .AEuz5;һhyio+S^y%ᩭ^M^|WTxxB\ƒ 5j!f D @6s 89:hŠIRxDa<' +d~z>Zr7'Z.+lPg yj 1pxq)@a=7!?<;gb?lTK>h,Kz8;XѮr4+}WMv{gLuIun/܅VؘҔ$> .O~ye[\jy p틷 gD6^ZI#i"֩W 2_2 NjA^6>?QR K{Z0Ҿ$)ּ*ӊӊvtaӴ]+_:9I`kFSP 8} {}9=%L\@T^jk.#l6Ӣ`Zx!G3<x8f_BNʇ #;۹8ٿc6,;q*L@1ܟ/?^ zkp{Gb j/0%t(9t {O8>r&ځ9/ q޺OeI94F9Q[ّph&Wl'b9v!p c(@~ -/Z8xIFEp.2/EbR*Z^P%W z{< iAdX@ '+oNޅkli^2u۠PVZlqaYGN~M>ZsDž!jƾ{KTԜy /CGi$lAATsM%?m2RN:Jk \ɕO_欧c1DIgP9E \k)U9g8JC=akm2kda1 ,ۛz+vXV˖PKKoft۞™JQ(0 92NA(}E]lW$ R]f4p8][[X<7S-<Rƹ°:g\%SR$E rbX9!v?K ܍r!XARm$daxڍ:yïFV\L=$M9lT74ƬG\Kvvw {^r2ds.\:T=VHC9u!7z~g>ݚ떨d_xtQLudp ,K> j<<>'y z G`}[uZ t9f6LN!X~Χ*@qRPPz gF9Ȧ]AX_] j(ChO7jNS d2yNRPXgS *ӜX Ҵ}8 oN81w)s|@ɲƓlDCpl}"blY$Iď_朁nZH8M3/w޽e-bg)˵ 0'5/ Ya3#]dN_ ux۹dϾ?B3GY$jCDňA Jm?9O7S:LABY*GgO?*Xv'aG҄^/%`$gF\CKVUfWП"ɥVuԻsԉ릀b/Zjn} N b_6z(S2-Hywo_i ytv'eg4}Tg8t„ied?dn/6r˿VcҤFǽE~lki0[pr%c\etI0gw'̏ΪS"<mߙ9.;:D;Wtx-}6{M 9\tIϨ5ԖVt|̎ռHڦI&7IW/վ52لRq2΀6h\fq5:c2Ratts  ]P\@eT~gg5!8B?&"fu2(Vs*!65 vsw%d`dGBl(?#JG7g,ĿיA5G>!Xѥ KQ`5ș!}cx<18?_1<(d7Ō+L-OruoikӸzs@SO2*ϝ{Pׂo3W#[W_2 J8OǓ;Ur-OXuna½=IRt`[nDy=*%OϏ!C*bFP?/9n\{g7nY;:#i9[,o;lʝϺy |L{ ExDq?xY ?8-$i/f.dRG"qE| Β9T\{>(;WݎjXd,ֶ#S =k\-atO$1@''NO̳roЧ;}I7yG%*AHG`Hqm[3D {1{+j'wʄs`;:JD#I_r]2cTa_g^v5% qv$K?Dj% z%3-B:'. 4߈jqrLt()h.v. 1Je to@s_r_Bcd#ofWi^d`jEUktS m|>gG2TSccK;GTYyJgBk738?f(#E܂<q{ m;]*"ZqaUVD 4Gb0D/* cX_{lgN?iL:|X$b :e1hxM Q%(X8G6Hs9 ,%{?H_M ӓBow݂]8:kzBx lPNw47)}ѹ ` ih@&>(lR' "IN_reYSV_+$XZ)w,-dJ+IKg21.S4f˒ ۾- H&Aoc4Ccn]lxA`$Ǫ鏖 '*x[:^j=aCj$8[+FXZJk@EvS'uO m0v#9d#xE&ʙIbh5@Y6&QT,~LF;5 hT0ܜF%B,BIcnNG$OCzCNɊ".ڏ-'qÙR4#BB7|Bf֚0!B$_CɟKE0P7"*W54N6#hz96T) 1Q]s* جhTzʃS'bJXclΛ͙+@=|cjt?E?e uݽ_({<2pT<9#Hu:dvN"hjorf^R~dTC֓sMݤA'ApmI~٨{h^N?Eoљ(rǰ1JYxww};45"_,^똠(`8Jp}} CGeD!:9DAZl]N.̽cw@=mr3\`FKnTWiqL`XdҹHN9\햿;3dSkMg]T5Q—5&>B(s*ʋj'nwmiZ鼫LN+-!2υ/孖S*; ^s >۔ ,0rZ*XMŤG,r/s}m>*QÌ+.9+UuQ߻fbFgWD$xKXz׊l NiZoA烓3k hn96*1pDMOP 2I4.q>%#QjyDkd,,S?l_{z ߄ r/-%rGU<GuSȑ{tŽӿhy&X9\CMjI/ gVq@~Xn6xqlZ\EF{Bf&$4w=>/)~.Q3qU>ʍx9Ŗu3ם2t*z\~XJ)aFXvB\,1Yc4fj#{]h!1lޥևg&t-,+1BTxq}}@Aa/8#dMRnORQO0[՘'@ZN>.iHx"#D w+-cab U9C֜@ԧ]qujBD[NW<&1jޗ }z)B\T m(ɖ֒ yc"E @?l5h.+*ZU׾Njr*|H zH.lŷET/oFHVԮU=VGW.I=™XS}^dk= F4;FU liFѽ> m(|dM|XDvVe`*MXsFg3԰3tԅ3UD+.ӾjO ;j120zV%+hOD!hejMfIL։ɚT'vr\F0k/ h4Ժi 1eAKC[z:!S5,z SR[$wf E)<)}ʞ})Z1^5@æ}gGR&UVн| *Ev?|/iZ5@;fTOCUx>(Ӛjeo H@Q H!ۗEjm[A]m Gc"V|e!zEK7mY/TAy(k^T-3eG)`Q ֊+˔ĎeD٘"#,X]i#!vP/R7rxG MxlC ^EZ_Y]gkh4ۤZE..^OS >bOl%/D0}^tN`$T`_d"J[u;c1ĢwofB4:lݽ,wI=똹n"c<3.%'?:7=eKsr!n/@bO@`s.[ͷs7mqclK-}zgo͚=!F wyM6}jY"qU!éKMQI:?(үuNVƁm^H"ϒq(Xn7<2. IAL]y14]?Tٖ <)`0aHj3lCR66 5Ғ`=%2%=G;4oI,!TkѽZǏu,T٭LL~Wӌ.#nc8]ƒÎx4b.h+G՞2 +* <yKc4-l}0N 6I|D{'I( .M֙0Ur<'<.u8xv.(_N8\QSS}..Z6T`R1YLCt ϑp#a$F7Qd ڔxݹPP/̾L\;-Y.svEm~qmS=%e6F Ū;R-̤=Cr6zh{{y J$ӄb E)q*K'(^A?-f2=k{{(O~wBq"5ԣ%rU5ďX>~^6t? 7X7VYL :A#8_dBZяth-$N>*vp]m{\~xe?{PԋHOOI5Gtkň^%k7ƖdQvw |[i6X|ZJ:bwlw24G?(T<#'Uze9 ?Z"meִ߷(7 e PG c2(8^b >aݢ]Qj,vPZ [`+^ ;AE py8>ΠXQ?*nR#LN^G\@swL=7ΘfZ[Д5յk*ڬFoj2JʆKRbv5:℺GMuwpfۋi\ Mirr9i;0-6 vď06J{]to#4 XçοZfXBuz"p Ӏ1Sd A@2 fc 8<璺>V/k HtVWB!USp*3E `/6-`o`=SYrƼ;^8X5 5$::Mj> gV憇7cJΗR7X{~1H{tmMe1:P2_q.Sϖl[iݏwݽ"TSTuۆ?ʸ .4v"Jw>1snRlK ordžFcuR+IauEhqa DK@ vHf>2-ȐAs0+8 HԚ6dx`9DCb*A\B@%^pZ`.RLwqdxc/QpM{_MvǧZz b' >EXR*iu{j9#fhEA"رg]7Q #J}4;rE#MY{nJ%/F7h%j`3I&V^h5 R9mDbfruC̀A-D=@vF)$f/-,4eY,nÒ,WH~͆/cZM~M&Ȗԏ2\15׻,{X;ږ 5Ru]hďh87dm]=1?#xFi`"æ,\ϠrZPo(?jCZю2<_cFT$W:$Z $YS|rLޝgk)ɇWkԻybcPۻ/c5jK:F;#|E-QrLk5tJ[T Tnҗ(mvhB\pѵ0b]56v͂U\ eQG"DX@o @0F>Tܳya7{t>z֤]I}7_" 'h}zY7sbO+NU5y@J8*4zMڸ̈́c]`OއYzٕ>B .rz.fPU+N5;7J򧘱Qb*ޞlˈ`^F(C8/mQNh \=loXmw0T4˗PfAG ~3?~4Uxt&M +z~8:۳xdtZqo<"q?5JTn&vuV`7I=Gp.8HG#zbP͐OۡZ]qǖ .UKYsi0q!Yͬ(}`Rd~d YHgog`+~mFlA>8~v6TA*ȁR,u>IB,.7)Y .Q=zC4.Sz`>I{/߭#L[~,!8:S4xU|W`*խ]lDN4qJ^9|@kwA T R'/dҮpgv`,"O@Z ` InVQbj¯&εݕ'%H|/ &wJڡȸh,D-j,6IClܥTܳ[ O%o?*>1p9̋NѬs;0PK+ͳ7U@4n[p@[2"׶0OS#&Aڭ;cl3I{cݠj̙0i-%`C*cl\U/ߘ[3MFX'Po ܿ0TA˗Y*wGpmXH>b4%Yl?'>+C؅ރa_'14șgc $}ٞߕ=>6،U"iw*Wة5%BC zwrl!D|," ?8i[qmn3\;YqG~ћ~acEF7p@o&Kj@,2yD #&w~T91pNOë8Z_ޓ`TR?= !lؐki΢(P>՞` OKjUnqzaQ)]N/=˸}tP1v=viǪ줣7D1D(:ٺz{~I  " tqfgD3~kb$0񾉃nD8\R~{â 8v}ԁ%(Q0=BƌTGŷ&Wf.ثڵr]m˩|ίNf99(*xjKׯܮWF}ڻf4_x;g"1 ug34X`#1AvH@8>]A7Ad@+ }`:̕)E~0D]9+fK>1fo2 Q{O0p/j"*s,@!9#",5C]^  kF[a]\GhJ{?kT.Ea(W2N_@"wD3gY]kk-|nFcp9r-]W= S*eU<\3)kX(P!nG&7 sDh+(*GnJ;% -28h 91^=]׈2E̓Io5&w!5+ٕxjz 7\erR$DËE%BTMP3A8k뇶D>5X6\Ŧ#}z*qWX⛌DWOh tU,*Ol݇,;"mI:ٷr]xvoO e$>N9 b*2uo9ULD0,|;<BʦZT,غeKE}dC^4yh^BHk(?O;Xd#U='&hl8ނPԺNkcf\121Ծ*e[&[Nd!U_߽+C32o|~ϣ %u_Uʤ3˶>D䭤5/(9L0^,n<5L ./nm,E |xeCyoH{|GWvK_V;5)hLOi@D'vuzUBrjk)$(Ҿ*LIDpy15jZBvﵮ.jK4?*5 f3 _ĩ\} -  2(Y 0jXuKWB}?2Sb9 OCLq^Z/˷Ua ]%±+ʵSB4rG}Ǘ (ۣl:֞S~irKj=5Ԕv3m,w)g0QXepYmAT |M{3WIye38h |]%V(1Ǟ S@}+K^K9dy8G %KIHVX^(T K/Dx_$Ax !|; DP:r =S}  zN7QTH%Qyh?%ˮUI[4k4ZC/ERpi7S+i3w -=ԢAx>'Ʌ⮭klVHɏi7ذb\}P@pPpL6rir*gdq'öXKIڇE@.aA:6MC<[z/&-#^' +Bb'L7PJŚ6 !7jq$+qڤ9s 7dT`P7kvƤ]4lJb{mPpM?ޛh Q8OQXKw#OQIƔ, k')M <nT؍AҞc]HZ:K0,xAl,PvԆ7t)HFEozKhɋ)RfcbtFUiwC=1`cC֬SͯDH6}ݢIidKJʎKW"Dഔ^/ A.>]Ƅ̹/}?do_+ ]dz\mN=Љо>[UkƘQ{LpIDPv nQ1@6mW YVK~7`uohi.QaI(bRg\XA7ш׎xƅnq a^LD}U!+#vKӧbyUYAviQU~nF`& xD0-y3,H^P qY(3\c" 4彯Nhv9ș?'y]_JS3 -]NmTK!R)6̃c6C/'66gP E\i$DɜSkWJ{p!L2 P~%v5q?QB#J4vY.H&]nwprHBEqVIn]J|xJFOmFӡ8W?,8֙DpLAw/9 b4#JT$HgfBbJ?cO6V$>+3%ClG /|{/vuԓ/Y> 8chPOO~]L`7Qɡ^X9{!rVr;=MqHDYQ&\+x0Qb0dvd4QUD,%@@w6 )'TSKي@@kgJGo%wŦμ NE};ƹ!'WZ(Pd 6YYEb%Aԫ'mAg(VǍ|jN\be"˧ܶq: un|puPzIeXt#^fP/q+74*X\жq_p!_EBOԔB Ϲ3UV6k_b&G+[NJID˦4X 09?cWͅn"#͘Q7+3.^'o)L)]8ҽB9=d]^i#ݡnK>%ɭ3I5o(q6)EZEE ȅMjE!EW?'KГ ~ⵘxa+`Kȭ$ vb2- ͷt:V~fkBzᤀ1F87Py?>:$&Sl}v[V͏0T8ᾡEoLG4 >f.6OiZ=~읐&X)B6sInc (JCǶS{7|b[#s)Я/9V().f ‡\Yd!SƹF'Y#TGӛvpnLsj 'W4\7 8;W$>K3NY?ꊭ: F};W_č=y`j[Sj!ԊlP}/Y̼6۩|yI,hE(jb$** aZD@ڗB7&W |+-X/NVRc<#Ri11znioh,Yy.6jϝ5X}SCp$#JdWgTM7ym <ߌW~_ yBܟd3$:"%Q҅C6:)3e|f(?ou;l`UFb$JvC\{skK쿥W+ BUNUj@p{-y͐#ݱmśns87Ue-T-cIRf/4i^mO3cz7/ēRoYag]mM{(YRfʲ m9 #yQ)7@&塦/ HAG@2$WJaJ jkm,nuCxg+ϞCdXSоõ-uvylUE_rJLY1vAt.5ʉYdBkƈBj;|\Tf1=I!9՘3BL=8A (c1>x`BT@Hv:1fc5B1\ hl`9sIM!4DdT zmVu툧9. RHXah>j\-\]BJgAm#h%Uu7%WիOphDO8#tO;{¥*jjp_1C@__R6PWp ly%/{pAܞWjp } ,TO4 P"ZY;q.eBiZ)cWSZf!y'X &F7z'vjD~^+{|{a #p Φڼp":$e8S mm+S޴8"m ̷y<B-=4$0%jkq궗n&o&6n.[*?fa(o 'ag@ʝ*mJCv/T-'CH2jsP)Gt}7oLڽaA=4(4^:(Sfֲy(?(mM4,YnF1R K2 lF傰r-Z̅8Z #G!_fȼp]C1v S{,&kF1Hg;~b9f*i}iP2آT8mY˚(& o AK$ˍ#@9@ѲeV\RpJosXz1u4*_}Zop%)0Gx Jm?ʎ=UgEUsLVe4bgUP BmN^| V2]<dkyؒBʇ$EEX,)1U-i| m)Za܇u8<%TWqSΰߠ-xUm眼 8 `V\sApuP[<9 ՛х;E,HPwE|"=,reHGN/0y$?H nKה1sEEX8e"6A754>M@6!H4VB ?PHs-Ӊsj=/MffY,%%%_ s^0z̸^@bM9a-Wxno^BIIFה C7b?=-nm[w {uڤA{) )yt;nf"GSeyTUA3 Ϛ)%YXE/:Ledz8%vL**k~F Rc* aɁԵw]bUfS3ħF4xs+~!&L4酅Q%"}/f\ǒM|>m)q%,r;Pl)L>}E*eyIϐz0aSL-{lI-s`<C j3Pg)Ia|T` "J'b>rωRl;"⮇ B..6;a g6[@@ӥ6#`?]9y.m G,w2`{bfx DPU24RK>h6 MFaGGYXu[m(:}!->PCѨ'`; d$  V0ZyWE"z]&r^+ԛ" o[FSD=@zRHQU1Edžwy\b(ΊXp.#s8#NX+, e ~jօ\.ݒX=mMh˄ 0A:{ 9'fLPj_ `hy8zErg?w_t-JA&y{Fۛ`i7-X cr&{u&Wo8%[GC)].?J; dC0fngXVHZ!9ukRpu)îE֝1Yn1'9X$&8xPy.0'x_jf׶Dlى/+19!1yY:U"K@Wzd%\n&o ah\bb2:F=9VnjH6J O(<( iz %O0KĤ0X#ekf9<<;٬ rsZz4}A4m6 űGR]ދF.$Z&.mäe\/$4L'_TJM=r'/`V-dIM"heSĿ6P?ep{L@^x>.[IJJJFlcݸ,y@'fӣ]Ъ~%. +IE%[*iF#(KL=}(<,\tNCx+v78Tg[h0poƖ; NF} bC~ ,ѨO%NnG52V#r%]Խh4a )jbKSL/Hu,wʹoa l~VĮJϊY$ӏUTF.Y{nny1`Q~7Jv>Q4E d}F>RN2X y lP!: #"yI{b1s\VpޡQᄏtcܣ˻d_*Y'Ql} T=MZLMR!pL{Ĩ$u|j?P#m*ZDxbjV'uGApF)0e#'YQ$F ]VvUbt#֒ 1<.qYSRT'Cx/1L'uB)Ӯo36ȋ\ׁ~গ_կTFH9C+!E2牢ßv?YXm=Z4LNY5"]߰qx޺EaTTnƨ8An{YRns<e!U I{^:Ї } PL]~cЦw]E[[];vKtZЎQUV@f)?pX!TW egt@7!Gh͵[@A|T6C&`#ot19/yc/q3hS9;WC,i5؟\Jpf<"y0|I5 2JgP!$TƯΞϩxcx:]61ar qXEYI&ygVҍ0D0U?ăO:?m^_bN(> pԂ8Mtte-W x 198p]a5tDD.a2*]]F9< Y5? }WNpW'i2VnޥX=|-^&9y`|uFjzy{DdnaJ&IsT}y <U).aކ$ϐ]C9հOQڝ6i@tjҧjHّ"8n!0d$@)"H0yEF[Nڷ"J<;~ otjfNzO7v>Q-9$]Ф=~'Ϡkͧd͛ lFJ[yrt ؂jϗI%1B[^?4, j.y`sFͳ(ud[J`52 x` ̠d.EזW/00RHej٧>KBT*Ex-(4LL*!n|FN6ۋѣ'{?1λó.Lt&AYq>e%7$޶ǘ=eJش3)4&)OǵK_d[:QqlbL6; 5Z ,Q)njEb[o_BQ~)̯Xq Tk~j׸aiS3@1d~!kW]?IVl9Ӧ^m4n:uKGjWg:`dr }ʭXcx5/$=jSD]Ȯ}sR}шЧj2's,KsU}pQˣ^>s-FU=qDŽ8RK 0V%94lMLvcgDYA@?"CSWna:BV8I,4?.G{)L "w<1kfaSKu/tܗ&{rĺO)x7H qpXj$(xyG+(0.äsY7Qoq ~:C?ZɕPc\S0vR9HnXnkLƺz)QY+pf5t"#M͋q PېcEkёY4<0Iv_<,Ւ93>G T뚁(+ Xiq J SL P?$8kgua*-I[baD}VD}{a51z.Pۮ"d; VPmA&3kj_=l d=ژn pj`e6tST~˔2{0`RX1I:nf[DT4Jةw)6tNj=𨌋C#&uhHA(7+X^LtfͿw[ȿ|]KSGNGڮ~QJ 0 As^> ' 8*ŋ ]CNlYKXLݵaЂ{jN?LH/mw(-L|wҸY޷8ASWů 4$p܃*#Փp?I0e*<}gVegvs{pdxFB?yPȬ=Ěeo?/]M4ܮ7@񀫽 ePn'TnBnOnZ%WwwtdKD,zM!bD,lmyo/]k !~I0$3:DF>1^­@H~`zҦ 5x-d{fDaRc:jڧ K'I\jPˬ=TTU|V{t~;Y)&{Ơ{G8,AydC,dԣMJ^.}N(v ȍ= fi:.l{BI+y}i0 ۶_ .XZTBoJ_aBFge\C֧Dl(EIw+Ͽþʎ2WSMI׈/ġdo"-]m;ފW)OЙzj .Rtv;҈1)'.&ĈSY0XDN0xc t{+QJ 965^ TV`ʮM*a(pʡ[R/Az h5z}t|}Hߚ'4>6jl?N$6Zwog#TRx>BOi$ޑ"OQ(̮O3`K-: G0lNս-AR v!+QoJ2Eyŧ;]0yd]z6OLqGR;pG+l#I}ßSh":ʲmKWNs"*jx=1؜BpxLQ,SWJ߅jo4QiתEa"Е`RCjst1K{h_KY:soE"8 &*΋G|/Tz[m,*ړMş<0EǢ ιx^eE0<`M|O kLj״42Qj]'" Ub2iFz7~>|=")gJl_ȹq]LβA5YڲUS戞$0 x-γt_1yZS}wȥAՔ%p26YYye!{YV^͝y\o9H,݀jRLf`IAyA; /#OGAGp69z>49M,.vc6u/2xOܝJ|LtH!{F V99)z&[U="R%#x[[  t{ v&!";nD~;yuᢙ2JJn<%L QMM@ K6<gS[ },qеoנ1\ʂ^\fd1WeSb]莗ض01Yq%ry[y² zciH:yuՊED'ф J抟֌AdڽykؽA)#RG`J kMm`2co(e‘b@f4 ́ڡF2ERtPn1'2%j))uP$m;J&ɓXoMnqG ZQ4y1':9l#s<:SIjpddAm~K\l|V"Hu%&M]7{2&~<"=Odղ{MJ7¬{M)rl3vMZTйc,i}] ,yXl[BLH] 1UjxNf0 (EW-w.8' u[&BSɝ oM%jZQŵ^_ Rso(5fi#Zǻ_;WE BE23o4Wrjs3l 6k7"+> ku؄}HPWCsŘXΌLl'pp.BZF0>DƑ'X [T3"C}R#EvÜTֺ7D;`& ѤXI$$3iOWbbӹs* <^J` K QF3o 9>}?k3 24|Y(I!r~h-i| ы ~I@]߻Dx h;%;9sGH m 54r4mT27\gqOrCil#U&"1x&W_i.nm ^ed1lx_+sB^BQC=xNWAP &!g̪כK^80%=dB_f!yR c*֛O '!V#fDddc-cmIiޙܠ*<#=svJ 2öt>Z"ׅ(HNojpyby69viXkf/Q" Daȝي[W@z"5xx)K<Q\q6*PY-\4HƃH8r_c0U-KI #}'tȩ^vV%^l5kwsJ<о0&h?jRx%P[O_5ڂyE4*7gDf^|mFKTryf1o׆|3,]X|ȟ/>C6McvX ,ܵVp|a@inY؛?~ WkufȚ jxo5ua]=L{n_(5 ;E^ wkz-Ub2y-Ѝ4KCk!ʙ@y|G^fٍJtcD'=DMP0hzH6ݫrU'nkDY,eɎ5oo9&Y/Jy*dlNNcy0^O9VA&)Kb#CW Kq/qD@yOb?l;VLp=f?o,X}7D2EEԁJk1ŬC*p*y(2AI?S:)KAk%]j-sM|L/Mڨ]`Mt^.MFcAU.rU]eHNpacZVug>hni S2F ݲfNp3&",&ݺ 2L`9*9$?M\QvUI[pGy]i 'yHP0ոQ0CA[(}{o%77WN=HT#?yڋO aR=.J9C7 ~*Uc}iKq]n%wWG/MPbȂ%!ᏦjjTݕ@:8xN]5Pū#l>7w~Vp( ߱!ZkR=?zY8:~4&8Q#EߧeYDCL d^040wK7ID>cX:K%@$GZk*-T!ISm'{+gy0[fFS=?GHQ':vc'm ZQn͓.mtVl^߹Q6#nq"IjDc}0L?!bX/r7XCѠ/WWEԟ}:kO@2yb2 ljUJU`2K]eoZƩ ?;k«Ku;aj4hD r{2}io,E&)V;o" :qĝ7L>:v0P}M{5\Ɠ6}r=B3J\W_dh:R˯[hrs_0l@(*4b|uSЄ)zҕni3ɲt'( \ (0>gecXO(`8ڗIG"JI9P5ғa4%#f. )a[^I0 b@LDn%D>p6敆; uK/ _hZpp"^oWmmo(XC!e-TuPf䤀u f68ˆ~n[ߙ eWGw'br(O +6sկ> B#VA(Y-iXGԼвL'!tZ@yY臦_̓W4-DK2JLon>z¥'oмߑ]zß"*"HBWLc~@2 sӉ?f'PV_LY{ %0/ԙcrca#a ᚌ8!V<} |>t$_HPӡ5 i-9Fp&,\VmBk蔳8CYw ͍v\iFe/lJID0.z>$~۬Ӫj6hءrngKCDiyy9BÅS%,C X!A: Arw鋩;&k9]bC/2 TR#d@ciBW9 ԜUC l @YϑzwjTD`1y~'v"K梽)#7H&F60C/qSDm/Lj飥T bd52Ǟє+?.ǠZjH;y$3\ՌUbg] ?dĪ}߆n05(*#'¥`c m;Z5 WqN.JN {KJS>'Gyq5\SUX|{L 8/Jd0>bb 1}ǡGkCCN~|Xcs(d 3ʹSё7{#6GJ.:llk=z|% { jH (o:Зwv!yxR- 1n5^GkȑWg/IW".@ rØ4(i8Y%W)̢/ <$'[xQ(xͬR+%#`Aò}60*C'21R'[)RxafeD < JFV-siBeS%zJ9{TDkRZ ix_z}`ܤjd)!_jzwl+Vg)=N<2qjgilo4MCgԡ9ghݕ]*z Ӕ7 QlTۤ-YyԢe5^?o'xlMF+[:UguPAE>B!kB+۠@a3r\ߠ~ tt1>gv sP9,h #-A+m$kbѻs "Bm'+_}In;~]pؼ_=q#ǎnpwT Oe^fMdŦ+kf>v-9݌VZ3b:_IKCj~y BLNTclPp$g*ͅԆVR)}AG٪Ro3\:P'TB eㆪurMwD{; PY*!.(/4awdV Y>$-IeP)eFq!VGŭ r pK}, |ZO9<6jg vݚeC Yeb*%gld){@x_cvNy}{lpb{~[JVI}(i؂g9NBXa9kn== *G|Cf]Ų9*&ψ1Ekvf%*/N7fKJ&@Tʞ-xŽ uT:ihbXOd,˼\Ded"v?Sh0.h>(N?FkW(jd@߶%ķOH~?oNKx^JNbғչz*mD Dڝ V/Ϧ7*EBé*qڏ'IU|aJq|8!^fۗp gÕ?a՚Yla☤}L?plv?~Ueic5ug7UXhA*ߖ`m!_N3)lXO ίz5umF&Xxśwd7*!_ 1DGcMgV >q, ٶsckmDǖ^,h͎[o vTzIշɗROPbȡb^-VA\Ynβ6w?X§Ґ5CRy+~4nza[n%F3zl gt28(^^X,\"3: L`ddIdE D~ I-g@76$#,[tā#x',v7-v9 R85kN/T]%]@Q#J;{ m0 厍΀@AYU,uW[  uFxtʐXݷst'd0g"||GqL^>?f4"> jK&|6$Ő$$O$t"9E]pER'a>\q;7Xж ~T~v7xV`==;0X*2p![4=3nD5GK?;[>f85 a"`V"D~tXvȬ :*CdZ"c-n ^ZK ڎ>3Q.vLHKAic#^tmi .`,UޑLȱ/4QkQ>:2x"ZLn<->IY<'v &=OPb;"t`@R3/8P CaI/ $e-+"R,|Vq4#$~@z n!Wn>3DQ ?Zr~KeׇP;u$ieOxߤ'!r}Ǭɭپ|M -`ûc2 |N5(egʲ@lSZľCޗP[/=Aϙ+7*Yq2SAx֙ .z󓍵~Ee~rف@ {/&7_R3uk7}bB` M,|&kM'hA&n ~wyz^etJ`t]Z?/pg{ۇ{i8i0&lEh~êV+-R6:WdSGٕg2vW-ijbR4FǞkUU )0RD1s Ž_:1M`D29Tzs诔Pk[AZBo^j}9,v^|>%?)+VS 3Y8B&`K,@tPJAvĴ7Ѐ_5PҿHkЊPNtH^&BryŷA|w0 7^"ƙ~|O8R;G+~|֨APԃ|-m3n +ZrY<Rܟr"m_HYCU=XiqVg|J I ![AA\wIe FXtԮIbۀ\'f x} ?v1jt(w\9uclv/U{'r/%}8!y;HұsH& *G㝊WZdWT9zeAǙGĂHcEX$CPɘ:+<ѐ W/+1e"jȔ<] PEZlxʍ dOUFctAȬ׬o37t9JI||ҎuIHe64A\E\AUۄ[b,ccȘGPW)& @7dT] 2KKt⫃t=u\ ߯q{ZWׁq ֈ i@8Tcl9X239^?y.A*mgW6)Ư(V24G }xwDZWx]挤˸^1s]4P#'JL*{sz<"?KV(aQRRe"H>-H2j,:JO8Gx&Fn/6YQB9`3ǃd҈n}0Pf SJ5|ыjM{W Hc{P%U#K&N+h4 ؚDivq(wJ<`ꐲR+Jҽrϑu@R(A#)%f5,#\/|z^'g{PO_[dv))ci6ОeI^NўT1qI=rG3h_~8L,` ,}!HX1.Bs . Ӑ']R36{m;b6rT؅*B >qs+ k ]0 aiZ}捶151AssĢcIɕ}-ξ*kc*2KȺUg9W&$䔎hͳ!i#dkPԇN%6U΀Z~ɐopNO۾L^5eNU"q_(K~tN*SCmc푺o{ceڛ|+#/Rt!7NR6B2n.@lG@9D{(Hynio.{_h䧰woz)iJx FvJ}+YrTxDB3|-q?oV&tӅf'lZZ2sny~HX%YfǯR^SдE҅# P*y)LCb>(Vo1N}b]wtO@-=o10&:sN;l/G!\ N#w`p0a^l3l0.uY+eO)툯@tɺWX;"_yXK'&k$b*`a_ |-hx; 5nSc_K)9'{$(ZLA{q!"wvh z!d UU:G+oܨ̘*]Qk뚥{|+H>_8I'E:ɍYdZXqJ֨?=?HH]1O7=|^mpM(dj " | `9T$_v4a0ҋ}nKE\"?jZ[4($$Q܆ILǸ˅ca|Q!\9wgzl3ahE#]4l~I$$"% fqY=\O!5 Ps$&Q :`i'&usLi9q~Vtk[5%=6%ѫFһvv;<'CLjx!'ռon/а0|#d[f(Wv| yF0RkIz%cd8c{z6ycys(&8+Tq##_$Cf\J꘣¹=Kc!ܐ,6aAz'srmkW]aasETyGѯ<,_(U n\{JJK^PFmUoSBF3< #T}#E硵{qLKT+BMI} 6( :9b*oҺf@[^J?'*R0n{tcB(T @mWu~xPfx11g;ƹ[~YWҊN߂5{i^IOr݇{4D{uqM}wU˷BͼVBZ`elGʈ8+PAu=6w#@H . [j5!ݛtzLJ6 g;G c:%eR(czq|"B3ҳڶs*zM0ɍo4GT˺ͷ'"6Dp(>BR dfJQhaqsv# YfOB<T Қu P]F)6{ۥlZ 9S]k%P`u9yAk8u64PWR@2`5 -[y!)Z͈?* G!1ŏI!~3Mn(r\7&[L$ΌW&LY24\ )}7'l>\~Z;ۋpkR>-q},\b' 8nIj7Z=r[tzaj`׻,r8)1=a}D,q@5!DXocX&[6OW-.[Sipz([}U}_ӿ'CbD]AnH2ou; I-u6EGdY*{*fr'N@]yU/$jW6bJ6=2)&ðQXZ_EmӏMD$k7oz" m7)46V)1 q>0w-Pj30cR[Rr1ɻP]t5-$rFТM7gA~Oz8,iPQ1X@[Ep5kw |ƥniC;JtJ 12ĵ!-r,}z-蓏id!W?ӠkCc,C~f[?I_R5߳0+ ȱ+g`^)>+i9b*brUP|3J[uAU{MH|s;fzݩ |b(4M8S9 ;zǛr[b;`W6~mN{k$+ 7GS^+h.sQe6?ƜPWno<@JLK \ρs0=]v[-q⽁Kj!3Y)R>V=i H\| 9ߍץM_wYotNA8M*z{>>#U&iWT|#pt +{@]iFsԫ癌#V/Z3$r;溪-./G0AUTjבބ g׈%Qh#ӱ:pr$30e~usIY,o{ZtڂҺmsnAODi< r1''~P=M8 bκY/?ʏ.=|x%~&BID䞋n&i YG 8ιtjZ=N%;e/z}Lf F!>>_ F5';פ7@0K$r7=ǂYі(`m'IUha߰{D̯ߛ,pK0(;,2w0gq]Rb7צ{ֱQz~-/B,B '@: et5T ZC.e,w ԰2'p[S[{$>t$@A8OL?FF.lXGd n{,hr=Rd"Hc!%w3<7iaΉSrfvY;7z7(_X`{@8_@ u8u0CHWG-B㐀Gz!-񼣱8P]2Q[}IH.`Y qFxAiW̲3~CL0=gPK#D:8yEH된ltIk1?Vf#Tf_(681\qt^Vxa:-cJî 1d6@8UKǷ9n@MIn]5os,P %f`IEas'жi8zkgJ́[gf- OcĺY*8c x63_p:+Opk&jC@GAT6S9]/Q.6GRSy6TIY76-MwƍB"x`g8Ta%q(Te-?IUٝ&_ kC- rA@>q!;I啬 ق K+T'J56-/ukYH 믭ɈmƫGIi}B:=h;>uySWNvȖKyHx osηcn37i"}2_N8 {ɒJVЫ>krbsi͍_)0<e$aC(uB\"6Dm܉)'I-񕻾cYxB_5v[y<<,g_UP X[RZfߍb*ŘPRN TYى! 9q:[ πF6e쉰$Հpy: {,Xi4Ic6큇رnժޗ)l M:g7MycDV$ہoilǒ DBNN^(zeUG:Conr JX*.Kcj>FWsO f,n~j6.GO"kקz @yœqBzƸڴK 2mL[H l!*dx1ݞGFQDݗMBq0z펶13uk~r9̋*ʷׯD]lI$\.TT ޞ!zʍ6jojC۱ 7\(,^C5uDrM͏]Xެ kG4JpHk-D'J`&@dOJ#ɴUv- OB4ldI oo,r^ń3EؔӡqO;G|/PFl6~8Js9͸w>f2Ö`PHBjem#($B'Y$< 4ۊД>+b=8_bwX4w޳::` G=plsᶖq=qԹTmOr9ÞąVY]x)u0 {uUN&es-Ӏo8 4vMtsGӵnSќQD<҅ F|wWqՔ¨ƅF:Yg2T=Wٰmq|Om{H;1=(M]BYiUlW~Ȯʆ9C 'U\3-w|;P9QB3!x uiq)@VjI{DWo D,qJƨ1rRryn:u,BȂwX\Og(ݱXjsF[_p61,:-gJ e nb<m sOH`*wڨn>p6V(X>!p%}*<+fTF)VAx*8<!rS/` z-;Uu]^^9;e %BLwQ׶т P娊!E*EzW.2*߲{XLOjHĻ]}7L*wlۯi͜ش{8Qfc[F4]c:/49Z9b S6I\qϩ7OC()".#=REw.J=G7,-whPb= x=Xpν$[+lD(¦6ir"iQ1OR^أVO +NXͶ TK֝{iwIIk؆n^.QAsbSxيd16y@R]bK˞ڻT.N&j+y'a{CSV^S*z֛v]ΥH;fQ>s 偙gݮ𚠂\}Hq[a6h}dFQ=:{$PB͘Y5yTe7vp L(z_XW]XRk $piN^MG&ў*sQ%ZrH Tm[c^]omsI~ԌroTNESY<m$$]?t'flNEgBYoCe#㾊:ApBq7t -Ҙ3qlb#XA-Or?BBEN4Jp2ބ ٚJwdgEs[-w])(nAsPLc/wmSf bH5kCv[* GS#]9`oJB\yU '7剠In@a*t-W2T5AU3ܶ~~O.].F_tǯ-S'/O,7ڃXi: i7dӼ8 _<6þ b(~9_B};_]pεȮ uiU dd&6Ȅd2Ooޠ}S7KL)t / %(n~z9Bd|q:6 i>)_#_bUs]ޑ,]h_Grqa{S%.,5%J %6y#O :C]l+<^Byj7T*~bk"6zvWN }gdKe@q |\_fnIg.s &;G WvC(ˮH@"ױxM!1*Cus7Tu |ygebbcM: ӊV z`rtnN< ]~,BQ$/Uid2bK#RgjqMA[8M[CϏŸ=n\9l R1\y0aC],HՏѡ~izI6q.7Z8 6t` X;e_ d^&U,hlt;̵+U9lVǩ~ct&jLB^&ƫMJWDhI =DO8| ҳq2#4YL]FKsn ͿiOwM$tpZ{zG6`%f9%"屳!H 4q/ S*6ІE~vh7H"RjRۿ92&UYkU*3UyWPXCژZm,hz %*ݡ?P2GJ 2n,o?dgd2.mo@1/?3Vz JIAfBӀ;aK =V\?u^nX$n'?7驻iSŋuA;KFFg]gh<$k9vw>ʽT4}7ޕ(=4%p7Ҿ. IZ/bHִzk;}}P:ZfG{g*rF@uy5ț0גlHk>永Q!|5 CcwWnUq2tr_\K:=hu=oжRc#VdDxcx>d3݉3=WlN4$˝"STQ){c"Z qu_ kun}.%odZ83!"+qկ~EؼSq~O U}2Qb-TN:P7%(|E"6vMECmU7{7ΣO g~V4ƒIʈOpwݡtӉKaÚ%eAn&53]/а6fGSTKU1'0{Q=خu[.G%s&mCxr}?u81U7^I8tĸ\aF i3eO'x*cJ"N~0EYrэ~2DOz$?S ׅ5:bR'mJUHC!+ L:Kq|ENjKZATh N~Sa2B0Ţ;eFq PU_/ J޻"؃u9e泂ɷ&qF3_Lǖ}Kt&޶ow Jq]8l^*H`/hl5,qm2PpjA5>ܸBʔB>Bsf$vnȞh'æged@(i* 5xl(Eϡy VoNp">𸍧"2 Wx'f{c "g1O|7ܴPM0JSWvSlrO/~ݎfZ|KR5JO{M8 $cG(;@eGc$PɈObwk9vx_,Wk:N |mo>/I;5 Q?jAR W.m^g4,\qEҁ]NS0{ޮ:4=f;p6SMdXE4AȖ" Ń1 +h3nl)9\7ur|>N]mJQ?[D}'>w@nk)3_|~(R`)nէK)͕qdCH n@sn۟r?a?uE S1` ߟ>/ד&rCʆ֦n^ 1G?| ɥkE@0⠐U:[,or*Ol)1+N?MVNЙ2jɰ2hy}"2r\ QO8Lܾ4xTMF|0ƒԓB A4rC dv%4*El钴 G(q.OUǔ vm2^!΄6l7([ԛ( ak#(O(^R_3a`ʁnduK`?SIl186-d 38|&]C,y|?¦O %08  >*`-m *tc{Ի,|$~vdlٕz0K{'rҪL^ fB"XB "8@\%ˏme`dȿ; w,6I߽ɕ:hwxrUe0%3n۾C1ūUOS1r`|NJiFوܟ$s7Wj7]h}ME`Xn: t Jgvo|VUMD3H @oc _on0-@vp'%MQf!/V_˩Fo vK +&ϟ|6Aa :-l #"9Yxg^bs"%JT;!`K/N+)b.k距 )su v'}tz3@=6a^-AqN\l]Cc CPZ=yRz\NíŨC+ݣ|l4xMK 5$1s}Η0oVU\>WETV>,i). }ٿ7@|![_p5754\c0: pȏ7t1xFHYK'%,diK:oQ፪# ӄ_+O'6QP2sQ`#>\Ov*4~}!Q3g_s@>tΕCs  9JGJM5k;?̊cqCYry"T6ISQm-H}6Hbޙ< x~ 00!Jci2P=Z_XXVN6M{|nL}plws9F4 ,RG.=dk@Х彭I0ܹG@VkzեcFS=D^:LcA8lx/8ڢ{^JR#feEUf"K&nCV!jҝ`+z]#'-`_{  o)|V4)tzM.[t12ۯ^lUs~ ۀpdu;ٝ]Azu֭A+ˢ.lozjsisiYs K-fIyJ(kSdZm/{M{榿q&T,&}3z}Mw.h^ރU.p>S^iƴg6sy>Qw1Y:ah_1opn"3{'ϻ/U'O>k"f@N+8:N_vvlC4soeƧI@VB-Sg\/$,ciC;Y;rHO `a@<{!޵[5@%k(rd/!q@Etpڋ(vL_*9 / n/<.1neɆRhXO&R7-NfUYyF8ˈ(Y`"~ӍFQSggTfw^56.A aBAHWe mR&$*(&= SA,^i  ~`jkpHلA1rU1P$ਫ Āu>%̆mhvM(W gBR vI1Mo(T:b ٷ*~/][ʁD)皔>e_My]?!* NBW_Bjm- ד. ^5.ު}!a; l8,\ȗЫ=)2;  g Bdφ1i !'G;=FBY.Ea?tj,kcCe[ևH^[mRs¼[Ԭ2+.r`^-HSϪm4#H) ~l,jB˜I;"Bv21.Uk{:M;+_K{U" ].z:gyOړfZmX]ggԙEi)7UWK#AJR'0]d%U[SwE*כ:bDWv1dKBoGcʸcz) !i\p3W8C5ؙt$q#~qgooQq 0eC5mV=ø}]3|}4(j@jrN٢(8IdcN<>!AȜQe8_g0Q&np [vفyRبuz35s2{SHnFP rBX:D%U@ &3zQ5iڗP`wlC] $: @姒p`vÚne YrC, ˝el7PwzL]k0׍bb zX($LY"yWƖJfEСd0g'j2H7l뎩o_&ȂYDFqejQjeiۇG+Mm Ekud'hdww5;uPٻ]^((8FТʹo,鞏}+TKBܓ@{ڙEfl SP &B$ۀfb&% /lJtjK?oHXȒpͮ_o9%pv٪],y!66*ym |Q>mT$vvŵʙxg&Y ׊-,0!;NqlOv4,rHMh6yUer .ޓޘ^sO-UMk\R8sl$X*\SKqb2؄# oCmzIIێ?%BsK)"Z'T#S<q@vsL<7'n2t' *R|yX wm_8O)suvq_2II5  3pK- t0I幝hy'TGV\\%s0p!/>9HTT*Ҋfwu-}H5Zvoخ Щ'X#q7(IpGS}:1JZHh9@sTIa=hA)5M6W. ZKza|u_bfBІŒ3nm^Hd\/Yl~=] 萖(P e ߄Tb1UciGg2h3\n|b\'$VNr~]N)5Ú׏\B%WqO8>u i:iXGX' BdM,,gx?=mwU݆ATo""_DsQ+gL@\rOĸ'`i⧜sY =] N/̝/v淳~QM޶]&.ՍbĬbٶA$g m-B["in^<[ٛ_E\fhO>DHy`&b5 %(ѥ{HˡY^NjuZݖ?j}eAK!A}Δvq b_ai=*)"Ry}/KR4eNKDezGoc Q#S y JF@5*d8jvċZu-KvŸ80ϴq=qssM` d}_Zx4]c 81IG܁1h~hkOs:AeX44}x+OM{:15yWAC+h-6F)(mj X^}~zq4vgUƟ{sI='4M9ml^&0,ƢI3]+s"P]N$8CAA}Tp$!fa|k^7AXK" 1K<ȌNh&>xW`N;746'g_%P5E1^L<效#MO#)9rhཨvX )Jr8(#06 @[MSrNo5=ZCfq A$}A?ࣞ饆L/dWg6m sswkݐp,^f6 E$; oXɈ׷`t#ךD`Q,o/*u *F!^Un[>5Bո4BѪ>u*p(&Q#[)^kA *+7ϡ !􅛤v9v~:ȐOc|tZ ǚsk9!2jG^f˶quhLNmK ʵMww+G{b̝'2I5TlY_LITHgGP/ichknc39^mףe?2Lt&sQo};/ɩ9Nwzf5qM}KvBZO?3QWg#kY<^WUԖ=uf3@>X#{x3li*^\ $W>!ӺzhzOIi443= Ś6b 25˚Xn0-z(GJhR"Tm~%X'X( @:[0mGd>]pD2k 0 ;u'{Ɨ:Ⳇ}LѵfZ8 (O}sZڶKԘz 1+WS[MH%ۍ`+Q*276}֔L"1rܳb]Eb=;T[s.| NGzhfiek&- uHݐs% iAb +NџޏuKk6mec~gi):XCv]ҩc&3|@ޏRIbw %!ZFaUWtR'WT:IIQ2vZ65ǖ#'%M19)aP7 P[阞0|ʕMЧTCؗ\G+x,_mY/ &W96Qr3и4f"̎Z_!DD0͒ہ!H\hB+EGe̔]a]搻E ,EPqMd6˚ҔۚEFDEa徳m!]t$X+rdd%@YԠ7&);4vʼe|bYD,5IQUZLto/nR+y2ѵTSH'R8,RD5- ARNq_+L0[ G)-x~h_]?i>hw8xf6@v՗*h,$\]DWC1aѣqf O'w]' F032gd;$ڟxJ!`|wAʸd=O˂>$q?:f^mIT~.j#Mfm%Q}wkB[׻ z5E'aY:mwl$H<=ɫZǕ۹}HgDdMf<&uP($oYbc%@u'*{8ŝlA:7%A(^$u뇒IsN_~ESsUJa!ם2X*(~ cLsT-6kn'0yxkZDoo('*̆e.nIz}JAкLy"'5[xV᝿=~VDh-TWrV<ͮ2y4;m뾆]$wmS`]̓ɐ5wq_ݢϏlg֒3~Yu1z/HUn5sժ:qǰ ( e=AzvA\Xx@O:/q=0Ŀg"DN*%\ěCȤv㹊|НWν$R$ 5Eg-=;K(8=1ZpB  r~DaہA# Jak+++}.7ɗ} 2II}Y4jyk8ޣZt׿_cgnEE4\EJ=rE{XH0l姤 Ռ].T;/w NgFy}8֊s>bdw/າ"<^ܕ tuNױ| bg@b)o0!>BX36߸{6UvfɒO\ `C$z;P30疟Cr.HwjqͶɨ.^ ARvWFMb:…t[΄"Vt&XO1E ԅVP )^ TFz eyF$SNs3 SuxWJLISjs va%H~q-A`Caz3 N}ϫѯy=c̈́IF1TL9) E.{[.Gá}UwF~q%P2T.Twۘjț @3 : 8QOxt<,RmdNj{SS|PڻW6b]X,/0[O+ _d&5E 7ehR߸4" ĺz&½Xv N@֡q`Z@R, ;V;YCP^cמ#Cr|uxbsRCaц]$O2=10Bo _Oz%n#ؕυz7iIG&AOfڧG`WCc#EfLq#A5Bܐ=g,ML73$=] cssx<#ɡ7[^R~+;@8/҉u<]Y!f"]݇e ¨w ?bi[H1XS頔pE6`Q\ٛԄ=)!Q>5+!?,'rYۖXNծ7D݆`'R[53L!qxZob$nK#]T*N.nʅlĻ3Y [N_:c]}1fD!fΎږ%؇zx}Q׳81ʄQYh\w*S_'+(Pu,)7jy}do7ݍԎ}RΊjȥp,\\JL9IS9{h}"LY˹? V*(iJ;JUϻR,ϗA;&ctNj/"'ѡZXB_G*A~Im8=(s> C=:a;<<^lg4C7/̽Z'nL?q{r%WrֲĄ۷*j) FV 9Pr?ny tsXHh#lߣ,S kcKRldd!ff`:=%,FS K#-d(XK]ѧ>r#lyqIe2#"bBҧiCi-h:zu"S=x{av"3Vi-#eH"5 (Kꈛ{j`L L3"/OBJڣWaV#eՍW5 GIpD Ѫ8?tU],gb f[~Jy"t%J>ڃG>s$-pE8:w2xF8(_ ̜_8!ˤ`ן+G/1l8T̙٤o(l!1p#øGiP\P*2T F>|e>f̮̋|#1y|  .(dNk>丸M6|XB73󾓻mvs̙s w#*=6zX95S\iM[邷,f5[c=0D '6_oamܫWI7#;Zi_Ͻ- qDjD 'ݰG̭Ѽ):U9Gm wǾ=j|8jZ(Db3ʂ-2V +b'K%kN|21БJTxR%K'd Gɹ~V(=.?N4J14xm7r?ۍqcV[zB77:b=|I;gi}p Z&MXDÁn ;}sVJܣPɾ!<#v lT_QF:Ö=Ŵe!rg``Ū;oʗt '7O¡ӮsHS4L'ep^":3\,)lheJYtʪ^}FA%D\p%nmk5ݭ??4`{ HYNH<IWhOѹW'NbT|}a;0 A#!<y5E3f,JHpсu4sNt^6rr6D-ëZ~! @viƘ~NSfY  cvPӋsbC˝XW%*@dcLd$TAiDX'TqH;R OVdNy!&q0=M6]ԅd.I7C-zyrh`VUTI6^ k;ߘeDB {mf*z#&L?euǾ>X^}$ Dli(J 桖:hE#俸2IŅM14Dpt-sN%,aU2[H[ xr"igeH-ZD- em6nXoW 3Zad` *Zg$[7nmBYŐCjx[;_&]}vAV[ ] }KQk׈6/n$Qȼ+beT^z2Gn(`Ea\=_\ci*Xp9ٶ-%Йͦ(tt3({e9]~) & RW8xʿԇ㑪!2GMGs=8e),?o^ Q6VmH:y,DBWHQs>b3>׼|P T?.Vw6+^F1v'$DqsZ"@ېM̐ Vc91Ȫ|)qw"coYK2yL qeJbAIrBrziV-Zqbwnn0O8K~JmI zx`w6}s:uI8c}n/$M[w"KKjnSoO-8oY<)I"> 'S!Gg^D ,?Pu$5" 'w{T$caOh:U }7H3|q$3ܰp&Cs< N<(9m+_T/׽h]!4W*NaynMIa! lS0tC&Dv mB;7ŧ t&Mx0b@FxV2Ӛ|3.*#k{bnW[4gA`˃ʦ!}v*ޱa;P_A8"F[ΌW6O/˝ < s'BUJgXӚ2(Cv_/Zn{`(Ze!nVN"WID;Ɗvb ԆI{, C"6QjabnF {Ⱦ^g3mE!ELݺx9ڇRD+ Gp6K7q?C{O2ՀY. Zvg% "W_2QCvsrdwEĺ$];rDo[Ùdqh'=hifVBPcYKm"u+ nbD/69aOs(*8-KIf[h%pJrĄ 0LVQ`?QNyXtk7j%ǭB nDX`xPN){+$tWZdA!W(NS~_ʔI@ P;>tfFHϩ$Nl7=?ө"ĥ=ۘmpXl NNF_՝ΛW[ґ&m/es%˧Wn8wG1I'J믬iFud8QD~{滉n3] ߑ;Q5@ʡ:sF [ehU.Rw^dh=%B>'rpn6g7/ZjP>܆o ?|^޴+/G?7ōcԿDxn :E߮g]L .ITOE;?;IkZl4C#w~%Wg0Oj8ZaQJjOPR4egT*nimŕ6A~+5YO1DcI!ǽlcbԠF9/=/{# .t=&xn$bS="Ê1GNe\S >Pmd~sed> LJg# l)y4a/lWթzh!N4SeE &=߻ז6"Lq1=z+%Ogj^|(Egª E9yϲ`&b=DjO_mE k)c㓸 ^wf5g:Vl'ȶ씨:|$P,};2Nk Vm22[ĠP~&bi';3OqpCAaIW[ ഁEjZ~lx)1G(:Ce uY_8W NGAHa%m8-˗*z\  pfn&0m8W Zs=ޢn(@EL+U#0g;qU\)&F5ѳV9"yeuy/'}TvxLczn*QAQo5v-J"mb`ܒƪw//i\=*<|XJ%#1TSӿo]2:̶FYDl4pi@[BuW5;=Q&sd 2!DݺA9V2i?[BBnky{|*oErY8WqI @ whxB(R5jۭH &85k{SV!xT8dT)0G(2ݶbQX,?qV$ P$UHO>xb7 OdgXM~B5&_تwXցȐ\<p5}m?lPk\iƨ֛CS\A`<{l.!l,.XBԪڝIFOůCYd# T== FO#,90@B+}X g'ޗ= ,v 2}SS7U} ;ypWvj>Eg#bn4d+|TQ`it!8N3fhj_9ɶ0߭T)EfgEV0pkЪq@ \{Y%CdC*vb2CȕUOkwVh+'R}׼nvY={gzh5)FޓU :(G*K[Qg&wdFh "2|UqM_^\s#E}ĉzU ?nYXLgB8R3FCݳ*.zƐq} ;clS'?~p9J|2`UvB~D۹'WWxoPA=r> }a;GP%yb+[ S 9Fyxyچt(ZN:Ym'jr\BgEpjؚіp UWa~,N=T5|`>yBBA-Jv V^53[ $/Uݙ5 @iGeD`G*6P4]cOYlɠC}z?lŹV@%@"I 玕bt~h:HМYK]O6zےSZK9ҥaIW~K>У^aQ@! ts$YxpOaT238]4Ks?? ['pT*ʕkU=fpxzǵEit%<۟#x^|JSInb w5Ҡr)A@~ ݞ+4⥕Dh^fs;hye Ge"dzNڼ_&x&vm29M)S~+U& }uavD#]!) QJ[Qz`dò\=8fFT 7h\Wa.@X&d זND"M%@=3]Ly }rc, WGDY0c < k4A_b4N9{ mlTf3C!-R'X#̭ }f\IXsplP-m kMjlbT>8☟4WThiU]!,gxJ4n 2c έ S,ىaeKdU!غC`AvX>S oMrxG猙[Xިe0+{(}X{X*b^?nB  hV͈Vݳ"FD%#G28:5B![\XLG?ffyŔɻo7gV{SHq5+#e{Nse,e*z4Z=ޞuzB@u5~^ k ;GgT5h:~ۛJ(<)h/w:,TNc;`F2nʘU/TS[zKs+ΡmT/E,=%r(A:vT}lbHtytLja>(⋀6n7#?X(꣏TTRuq҆2aD;uyJELl<8L3'2B\۽R %ze]Î׺PSL>(">(LIщ{'$I_,d~= 9)Hhݾ`yhpvޜtmAH.9Bi#1Hldmm\*p aOM(fj% D8]ZҘͩ"op~OK$رWSbG4 _):T Fr7A N ߬ TJ D5*ٴ$H/ϻžQ|?O-胷r.p]1c0T>wu >i%<O|7~Op?؟4@qh,͋b.}7]ƿ#C`\d!XbYU~\R"3uκi/gR$=dZN6cJ t_1-}Kd-nwv?o2=y=s~%*=H3Y}w*ו[#6B|ME0`!?'؇ =z M$O٫,fbI6<$rq ٜ>~M&ڶ ռ=_ jyg]dVhܿ7 P/l8Q&NX8E&1`^3݇RWY\rU[INHǦ C4 qQ7;Q8o&BR-FkDē"p"XA;JPL=xU̦#xb`OZΒ&+_ h"*2M[ǺX B|Ne PC:+o, 0̶]~?(v@'?%/oSe0hXeNC$7dFt"H $?gwgן!Ar]u^gd (!;#աۥ8 %,U$HH*ZJYEr<9!Smjͮ$:}0nf~̷ ;oft] g l<Unh@o*8"B/Ӫ?8twC}$r5㮕blttd#M̪u g]WHUGO/u 0pC^#.@}nVO6SΠѥՈYΑWa>"U*Uz$Ӵn^Ygsss^Lf\>WaEB=8@CL HV>O SG?^Ahl, tf_Y^L|27piI4WZbD6@mpUhl8D0t Nhir,Hg|۸d]byODZmueZ*TG7F_T||K]@z,nP]4y028}qad[gogY- Xa儇yREwn2Tq)0)Y;ʮ7?iHwTJ}z"%qTLS /l]:g6Z{=%aJ(a t(2%ڥϛ|x'ELyk$mI#} SVN7lWGC$HpS G!44-rԐyzi ''t-EQ!'6b)hl ˢҝOlrPhT8ގs!\bagؿYki6~K NZ F U /Kft2EY؛̣Fme R)Y.hGe -VInˌŘD x8;x60 G,_:f`ZR2I^P6Czrq=q22Ap喺Pjũ7ZS_wR&w' Oc, w0l잮gB>nO-(3/u%k:Hgm=9Wl\(#UggxjMy19)dV33VV{vRR4~_ENa-R nuBX69u R0DDYؐv n#>zEj/iRRncDnT#O\n-_ƪyǦ7ۃ)h6}QL s6bZbf?=%TwSHNAW5p3A9ꏋP,R?|r&2 [^{>:u ˂ژurv܇H'+8rgͻݜR' u 퓀8ƃ53K,K*IBP]IJ.Z'Smn7o\'W1a>j 6 yWjC!/t0F|}g)Cx(燁Iq6Y8SCԕ`/_hY.5N"Xy:RfD(cy[ /f%YzN('60j)׳6VTpZԾ.)3ꐏZK!p~T 2os2f.]Q-v`g=rD?lѥ%:D C^ihDl]|"[Mz9F!dH h-~D>l6q<:kO.Epc|:|>r$z,l0{\5j mNmUhY)%.{r0aTvEGOLDJ-#@ A糽3ybfsurd o SBra=vz3MҎ,]ڝDN,y$g7Yv;$g2<~ yk7컛5-$@oS:bLp%mz`P[dAs<20XX/}w'l| k \eeiDz+\X o uСdWr|,̀VSAr0Ǵ+eňYb*4CQ:uF7 3fV?~kɫ ?BEupsQ4\pk:h0Hj;q(#C+o| *6ŢMlAg(rQᨷ#ē/9r s0 3i=-0)K$AMdZZ1B:O|׮,~oe71z?:wu|$|hΚO:pzLmLHD ܿkYLk gBMDR DCg Cw$Ll6xITdCgc#/aޣ.;w^:֨hi{!s]fᇻ_ɐ ZTޙd+i@>y748· D,sʩEc J;s`"ǦlW'kOX .7N4)-3RQtdb4I'S]WΧirKlzEJQ>m23Sl*Gb\̍k|&z I{ W7㛩s$y uXu*\kq$PkR/g7y3cGKⴄ.5٬$TU;G' k{v"lּ/@ [o4Fu/yD"*M镸S7d{DW5G"rם~&.(ޙP֗͘Oi"͗J#B҇$``s_(=a2̂-tWP2CJPF6'O#؄Q6OD8Ha2Z@v:ZŠ)7G!h4 }b .qp2bl̢~EA^X@y#/yz۵L8o\κTJ̏zn(˙ 6jEMzG=Gp+gR&~LJhglͤiQ-)JZN:̒F߃JrIsVc$ Q[76̤% qН ɦ0.q! `rS1Ho7ysB<\gzw*Sxb($ۭ^3 w!ת3j眶aPR۬gO+odpU 3M8a1cF0%<_;v:p )Y]YKJ=`is;47*XZҊFh,"Mu})s- \ߪ.;iu؟JdQOn$b›< :~+^*n63LtMmK `lxʅ-͊& #'W2_,iw0qJ7Ѣ*fQXk8n 97^^x7'#>W3N2 D_%":*=} ӥ%^LA{ˮ6- ?DXEGU ^Kk3f}o(졕;9K~ԝSZͦP}k QA wu~`%x >N,U FR{D@dOMIf~k`9m!ݶ2'ô2 œ@?:Dzэ"Kb%tRY `MPm"DFϭ{qP~3wcc 7DAZjbO"FHt.P=E\ۂ6*ph}j; ghNVt:)Fk@٪qm7pYĆ}YfoƏ)'؝KFvK ENvmUVJ5Ti曉m1PfʩWzK($[7 -3%zWe\K4WNba+O459ȸƘаuQsKiߓ/H^,*,PŬ&!u+CyGN -pNc>vãд+pkX"mXkV 2p}L)Hep0@T LKB=!kB A,Am(.(jaUVd-!hB<)&8^k}vTꃙշdFo9#ȗ*o7:oӄ9I%pƄ!Tz"Irb/]ڢ|8{EX9lHBEfTXqn͸Cl J]lNr&͋*])WաXkқ7Oҙ3rҌ&zkW ,,Xx!]/Hʪ]FD:z׹?IQ״$:rk(`@[N{͕<S7CU]~՜Wf% Tw@%20x 2O;_' 3.f&xƓ7Q%CsuJx߯ $H1=>||orKua=BFg"!.l8(fc{xx?-Y2y" uM<tNU2rM\YN!o zxpwH++2[qCcz?4 Y ׺VU\_T#h9zDͅ ԊMSY^ t/ TckC-.6q;،z]qݟ k ! v.ބUw{6a4(^݅ Xx~UK'Zs.aG/R ?cn~P jEOuq<@Jj-_KնGÅvm6F-eC+KE! X~KzP )zJ5p j׋ϳCeI,ڭC=| Mj( 5H͸~,kg9 t}pԃVI[!kAsbG \L ?:XjD?6q3g{C5 y8?l4aWy82q>k <|)[[^茾eg";qnS7V*onbaMc/lE@GbUפ6hct^ej^GvZǢނÂgJ /@JHqʗ[izr=>e}%%}?SyYg_+UZsyxߤrߖ͗pd0$bi6 ;/ eu?Q/1IdDڳbYsCoT7w ϸxw')|S bJdWU[綄so)Q7tڊ+ZP90>АWL@kG0%1A{¥erxfi9ҕK'ґձWos< cnkܟBt[P61&08!CY⨿ l .q6[%l}wjĒ rm~2;Na_sOLW!^4MA7.vRK_l&R42YpVixbްkq%&AwސY+;ʝL]&SgZzr{.) ߡd[;`e;KXK`K}DvpF:Q+FjsT nFaЇ4XP+D ʘ$[ytW>;MIoëk6S\8Qp gDq SR&>jFK() ؊Weqk+bIp=%DKs띗k pZ,*͒DH5\wD򪡉(iAշ*:Da5Ҿ"8{#O :|iwb&5 1nCFaVjS"z.h`5SWURhpՖ :]o$ωtJ%LJB%nSbF“^bEAXѺ_0'2"_0%=BQl*;Por0(dVFZ;k1G2veD3(;kCcxwD`Ob"[([5i9M+%(p6O1r8PDpT\ ĚІ)y%fWo3AT>>!> "f/2,{:MƟhQCκa y>/hT$UQ߻"9{PqtHjo) > >э5V% ZXއziZZLc7k?4UT=G`{'Π ETN~d8¹dxIeBެ}9eQزi Nπ 3Y:3_u+UyVÖw uVR҆HGSM+PٷKt3^"@5TisI[V)S=<`WΩws#.5mI(VCÖ@l! Ǝ pvB Ҁ`-2~&٧Si8mRi-}:i U9 I5[1on+pP8?hƑln=pԖ RrvYpVpMF(憆1 JNHd4 Zoʽ64hYDY#gZ6o&v7i:8gܘ }gMx)ԯ~4dx@K$(~9(r%h.\xZh}#ikO t>v3k{%yB[ÀWmHaTQۚ+<3 K7W~1jGs;okk9x-΀ޞП<8\۶";:'|FI/6CDijZq.ןF XN¶CzۄI˒vu`*HXt?ZWY\Cdb.4XA{JV!K%|uy-FmF;|7(TS#9wUE^)ber$")#Du|tCJHs+1<9g!5BuXe9E O颕n?7gg;މFO_% 40? JΝZ~xzC#.B7N}^%F5Ƒ<9R^>[_-0Bp5' \(l 5]=c̽ E%} (,I ]kVU.+%m5\"}| 82lAE;\ TQC7QFLO YFI3Wm2*Ŭܿvi$|5JXan实m(/X?n1D+C1nE'IG4a=#zS_?gy?J.cP|s,R8-5Dj\u,k5a=휙!@@|˭a~^HklxM*KF@]YKp]"tb|T zQm&Z;}?(h e1=ihDŽ ]rlm c y?_z_K1b.=Slm?CZo"5W+X$n $ǢfofR<>3U|l&))?UG%RXex2*ߌRFfcNȓ\L׺p-#-O&+*XD i MzDtbQs⧒Cd9EAiK`J\5(1n]\/܍ 6Ȁtr=Ki25o= CmlP{;ߵw1зBO.^C[k/ `e>1szLrEH=^hnlobE[&r zmb|mW((y(A?ܡ8) fF4|Q[H'q@coPxb֘I2dhuX~  f<ɋ cZ=<S<9Ä49Uܐ&)R,:38O[{;6Wi fxr,p٩-/R2Z@3[uϡXX]Y+Һj׽1LB<޷[R%8A^R*~K"|[xnz2=7: 1JKWQ{;4DNԝD ?>6 zB=oPA 6pcD"x"~|àั#ivxr}iFɶA yD/ GCxU=Z$r654c֣pޟȊ_@pu!fA GW/5@P J*75XD7ZI{Zӱ&Z15 qdh`E lX䬬-mJ愩?pAV@ϰ(9 I!;;E7[iH3>f̒yܯHtjo\%k/uQ4K8FsXy25iм%^3nk}٫wX!m}n(&khT&dL2Z({8nes;M=4F9|e#&QFVARk=7~zGtϳtb-co6ɚ&IgtS!teB*.iD  cՌ{h@ܹ(j=W! `ȍ1>̙͌m pO9v'Xڅ=^B9՞߄(-Tu7}6^sL4 )j> [)>u}}C[ f bCqeưԎpS 7vId,5zV=fKP9*[VB7;~Qe,Iy `R^[: S7QL?%b.%*xF8ie0xG~Ƃ4BHu \QD cq.潜bO+) հsp U/&H6z}Mf^Y2z%Vjr_1#,,TE fGbfcu?"3~SˁܗӔ<+2t-(뀡! l ^m3y(adS3 7*vv>G^C|-ZP6&b;Uq}Ӷs0Aj/Ix(ȼl=7?DܸgM9ZA9BA:Jb;_HٴO*bPםM CĜ20a~-dk }ڒBIe*_m_/kxɞeGpv89*f Hƈś!?U ޙcpXߧ* Rqu+A0Yo7}U"vFUbG̐ćq )^$B` \_BѻSYSA8:v>~WD#89W1wxvzN:**Ri¹$wa W}tgʴS3vdx,PJpiOlIUQ-E\'%h!t#p,BYsmil:Mz)˲~=9 픦}kZ#oupr\&$ t^y<(|OP.WmKy^_i]).7n.8١N#o{L缭Mnq~O?5 0t4W8 @L&[Kۘ>!%+^k>Űzb*v4(rZ:64CNCLFm@WNݷb ڴ?l_K M lTRԂ.~NSjK{.@l2dy']̉~&]I ΏWmeܺx }[8qb8dj2ZB J4BBjIIvIRpmP~Z*JpVRJ.2Iɋ[28HSuv;QItobj+6ҭ2h :U@dyVJ֦"ա@m]+?qQKbBʀc߷9D١EE*Ta5>\sʖ` d]u,ED'Qi,1ֿjY A|.YrAɑ/.'IљZii7u똫7$[6l-…!VU,B&)+ӕN3+cli~tO<+ƥR\Mx' YqGMZ  y|ud" #dzF'F bl<"1?lm 2RPr ddvۆEut704El< 6O~ V\k7ս-N%W9S!OBsLRbE͏{?L#4Yݓ<0nR,ӽUU '̥Qa)W.PTGwbz+c0)ǭI{@AQ=. ?(a9OUx8/A.xT4AtɎ ] 8o2š|$Ri=>Z9TŨe*.*⎎ W/Sl3-nr7gA7b$dDVz눟~tlT_[ T` vWc+NՅ/mŨ!#6+ $х t3xXT* y0u۞MT=@by'Gum ;9vrO/q'}TYoU͇v(-lO) Q-C<+:B-_Zx! "w\A~'pƴ(;ݮW٠1#L hk/mϨRKt |Cƫpsr,F~N޶*=Y*:z)T5 R-V=gNu W/EvKM^nw吮WV&4ٌW/EXRa13xdJ&%5BpayRd[m\[h!TMrK٭/*`jzgM>\Lǀ92̮zu}mGGpZ3 R,W9ɂL<B'3Cp.:HR,8 ))@滽 ynAZX}fhZ+nf;݊LPprÜm$f -sn %T:v p;3gsP#.C2(E@x|1qސ]3c8R+6onOʺ]T{m#LgDD· G"cƌ(5J*3}B!VE#N6M#3Ca_6.;x^e!0=0?7ֵa x'G#'_~O |ז@-~6-+ԉ? D .wq9 dʺ "oAgݛN%bko*7 C " :> /繖"$V_ |+z lZ,? ' *HDS \4G9~#tE@/c\ʅ22̘idlV3]L;LR_TND|vy3ޡǏWPA6*_A%d3*?_rw%aP6l~_Nп]=nMfD)qg?F*5wM =UH6 oOU%uC+g`e]:+du]xޢC:mYV{bj Wz]^6\@ulۓpRh1T3 @*|g$WL܆qײ'jl'`tKڃ.ׁU.v$EI~ulz}ITusO Qu{uՔ|2U ?rÑZKšQ![T\θrP Bͨ$S/εYu)gP)О mu} XZ&nLV69ra ^kǿW2E47b7 Maõ;\y_ꉓ=H#芃LfO˝UDD7Q?(0*Dx2CzTFJ4(t?bet-LV2|37DR igaX}&Eq95qu.WëAW}+rrC;ND1e x5o=|7[S,Lﰠ9M:~ڊo,/{VB_b+k#_wU r ߱7 X\jGMܙВ\I6Z$ŅO(mBFGl]D1ŀ. y0YZ>A%WG{V[434d~YtӒsm/.V,y mrk-#sjמ٩SJȃ*(Cpt㵵+Mb  HV+\2`qY _TKYrAuAJ^ɑ~2OP @v$\6XvgYrgf B9]@CC!Ҫ:f^KϽu>ȋ< "9k8N#8m:iHJn,3+VLnzY2$} 4 :]dp;̮vvPJ3P('0-c4ɑ - |{m#99ڠaRwU**)?39x钊C~ 8@5.V90p=& &t ǟ~g s ElzoIj`{R^exDhKڀ;tTGDIn9l, UڜAs['\#ff833n)+L$EZ$".(=3g_ 9bWS~[K8 c_N- )%N|N޽.ޠ&-22S fL㩇-> +2 HUQuwSxT=)>]ڪޛ s#;@wg&/QVsIQ HGȓHw+ժBW˅3+DRپ1 !r@(_n|?35sŖ3IJw*.53bBkkN& (mQjq9whV(L1ExȪJ;̲43͠e3 ShxGHIf`SbvvK+p5N/}ո{&j%kra8}J_jSL8 컴s2&ky#1q 4xpO`1,>*\қ#OqDD7I.KB5z\fc,pp&(wΤW;$i, 9J11X#,o@-qwZtX,:[W.i; W̦V#):vi }]NZE_9>IR\X| k`4ۛ+,fʛJ37X㸅wnYa&eݍ,: d?TZ6!*r`.;Ʒ忮7}@\0WCtwM [moN` <3 \C`B Z[&\R;4:V_z+pޭg0 .co|ž!.ebq9F/~g_K(Oړ_O/ڏby.b6d%_S@uTIQd,8AGCM>;NUMz ,S8jaղ37zԻ~ɃR`L J9!b% զB*~GH읱 .Kv\s}`hDU5>ĉHM>𒊅Kg_W=!2HR{.kvLBk?!0!zX~-I#"eū,1Fi:g$|[JPQ[ !gl+-n{y|eh~l{~VEQYWsmE.ƽid{N;n1WNnBinOd=6USز-᝚ ށ5(NHJȞ>as Vj.ǼZ BaVYx3kx_3Ry]V)4QQ߯̂_@m mcLNB1 ketjy5_ q@mT~|{xaT~aCfpRG_97Q( nlQ5` Vp>[`"JӽtbpPCJsoN >un\>'ˆy7|<0G&2M^Ltpʚ̷z .wp\~h0q Z"op5h1ς`%tMٌr@¤q.ʓ(*9Ֆ]K9Ƴ;Єf J҆61Ǚ?R`C7E&e} F8)7AxGq$DK"^޲hWh_Z텠ǔ`> @%kF p+SŴ+@LvK7pn'Z!佦Htd ]cw(zX ٖrfdtdөP} I3Wz7@]e3>tnFk {BQ \ ْ N{dj ֢ՒX3N$2a<suKNqm!q(Dub{ *'z 얚$ U^7x`7+ZWXmUĚUtĪ\g-"0Ԝ حUlѨo&j{Z2U1qL-n+|O:_C3˭G}k:%"16SΩX{3v_ny V_bQӏքhBԖd=}d30}}vDjmH-c>4-E 2T t}9ػ>o{Br팻D< HRlVoS3v:(9AJ5d$\J9=1TUEU ӻ(eo\7g!S#fO>w-R /; < aYt{JyDo;@CKH3?f.E,״- ]KP+ R CUH7|1rzKSij ,G ec [a oYwHn$me6BՎGBz!E]d~M hP-Ϻ"<w)։ Nʉe aRnZ%98KCSY5bgl$#˅dUZ&jBO~R7V(Q@ %cmR :OrH?@mgP{Gt(۔blS2jwe,{mO(eMqnW,t^TaCvx{=ײFf+kTh9›&ތs<|Tx9\{gc$!n ~~k7ժH<kd;^U# mVl)܃JCy/l7QPY7S6\ r(jwNRtM7[b8of{ϪyG;AcuaD¥ nPJVrsM ^ړ񎌄eDHK0#< YlZ ޟ DV-)=’aAȅaFd}NNX#i_ƏN(&?/{ȿP&ȵ!] ֲ`L 5kӚ~Y>3=^y2P(0Qǘt+<̓]"XǬLӵPtA,*7lřAOI[G o*Jɘ HYCr5>f( T:o\.'#rkޗzf׭,Cdx^ (s@ 0:5*)8i-@z[ZM0Xl:GƢQmg4EgGɼ@[Eq(D|01:X;MFysIxM0hQcz#iZ>bRVX-Ɖ-*"kV>?@Y<`\b+/yRdغ.T6l'yBH@-qr}!H(Ȳ+x>ȬM 38JAg-|d/u@M79qP'cprxH,!d 9<@MD+ݙU|*Òv#7oǦH7xR,4)ag].hHc3IuZ Ҕuʃ}0S":Ghv>E{.%(|vp  /M'Ȝ ھM KodCO A8ս)?$"qoQ&q^kx~4A! f贊[i@AQ8Ctl!a1?*}Ptsct=PmOZPyF ܂#͛8 D]WH! $Tu-"p-~6 ~ 5ͰiMi5>x~ d)I_Zt U @6"{WHVWFu8;}j-6snW rw$gzC%hַUǮnpWCwCK$D5%eT[N<'urTx)I=haT@_#`zE{{#UJ s0=FI<5>g56b_r D"  " ̫tl:tkGU/s cI^H4_ Yvʾ:Zxz'7pж1wRgũHw+,)P:edG7LգPýz9@C?j`&S؈>0*tfŝ4#`߃e"F1ʂ^>z9"85CsZRJܮt^nDu@33hzr*/u& } /+&;0@nVܷӱ+O?ٹ LPxw0]B3T]P8[]:wVyOoW%@=lO.@ѪpH/%FNv:c2C*!Yg|u~: lيrԾeUwaLj8ø[[Vbu3 {#י"u 7qS# Q'|-wIJjfusRR/DY*<Ăyq>h9uƎ8RקdsuT -R\_s7 xːe|zVTe$8~7د19+V}W%L&pLB_A"#xR-6t^-=~:K挙IM37DhOfv5Xghe#Mu?ڋy"LX VH`ŻwLn`{,|2A[#@(1H9Pq6w˸;3N] :P!1Ȥ'uɪVuF@R.nbV-/U=*軏rv%nUKP$"NP"TAg"]|u[ubP)͖T n|8(|<,ʠԟb"rYJƺCx*^9s%!& @Nl[_j2IO^™ԯYJ?FZ)a}ǀ~ )O @xOF6FqJ ,M|-I2 ] =V|eoD1ʑslyqՋr نqsKѲ)t [sQ)gJJHwQ `t/xA9&אC͙~<328M$x&`/4 @9d[q"Ew/y9m9?İXtݒ_ ?(ydN"K@I}j4iDӷgwy38{3] EP|涫:C߀@t٭(5%4ɊRf;ϗHl$h2<`Rf)1UU<C S9,``IPwu),-UatYmG1SS%26?c&,XYIȾaWH1/[!Ar "֮[iy.UoELW:XOɒJV"tHGmGkAJ]<ӉE;횖 iK%b 9E,6"̵332..o$DMEV`M rU CsSc`97\ma,D-B0/NhY=tԛ+4TyLܗ:Ua=F\2ƛnF6g͟қs;Ym5—|cݾry|db *Ms*/}DžoP)V%Ú>.&u׶ٗ=mth󿻝ᑭm2Brxq|6D3CKgfיa,xs ꑑcN<JPu4P6@(|{P@+&^, ){pEO2>o*?{>/rƐ7pI܁Nv+;Y lBgW`6}:5|(Wr\oG)N,l^]7oN{9"iR+fguN$bqeG[,3r-+J.sE9^dx%-34Xг ̵6e(*~u!.N/Zo6ƈzPY[)+PQSx~-%3r0fuz 7cSeЬ~W32U}3!M쫴vmu4U^AW۫pf̪qpFJ{KAx'ƐdL1lݵrPv#ݷtNsYkm!S"2o[eC hLR{cosgr"W+™CAͧ/ױn ?=̧(MD ԃ~{LAN`7MR6,M@ pu.@ ɏJ=+'?Ziߟ8Ս#c1s;q\J'Wg>R=$liaZ o1o[>Gd4 LA|?-h|f: >>'uP UJe~M()V'o׫aS"FDN׆\Z(]dPI+,Rd%;:/Ke]|şPvKiH"Y햋x̙7EgIS",?F (z)UPPW!|DaG7 c,ڒY+ an ͖aGV 6ٙJG߹: 75Uj>RoҌD704.D)x%n]*ںt|5c ~3dŸwYDXww"j_^4!I )nDJmh@^ePb!s -7kL^* bz~`~&$Ѽ=ZPo\\.zˡ|zZ"7UQA/Vx%k&~l>4S>vj:wEu flmҠ2/Ü*hH|I7JĒb]i#Mp~;yϦ ?mׅmM=0gtI{̛2Ar vafH;ܬӆzt|4_CtQ(v +流#iH*EDH(S/LW&")y(K* (x\(:kzڽiT,b4E#$Fz^cģGUhl lli/OtKbWɧH}Mb*;∸S{[:kG -T_}RI CG]D a?vݨcK9m~(υ$b&띹)Q diVIN; 7Ib[† ?89֬I1F~Ҫ,5I)QC74ZXUT }da۟'6@x>)͆t4˳a3>ĀZs8'v2 )H]XS?EߧPiRWէYj@,UF'9 oKHMwnk YԐ/ (3%fmlix{QZF:up%ʹjgh%!7a!$0 %rQlw ![_ľnܵf#NsiZkdԥ|TUe6 K&q!JHJ~V ϩZ_ wvGVI$!d.+i!IJ CFRxv}59~p-|ɥ2B=8K[Fm eiMi-}Fez T:o7"r&sћ녃,אS"t1>/ f B&xnF8 )2Y\Q~0pHD, *j?-(6Yk37\m+zB:q'M&2E#3P}N&@Gdd TiG#oN$!7ԞB.=~;@Ҭ+v:M7MKΧz?_$vn%WR>x@HZ۾_;M@T5^{sߧTgDC#HU>v&[KCZИcWLvufb9pqX2 nTV%xCAK" 1n=9hX aaYIȔjw$NLAך,UQa-+=>{Αt-XǍA<=JPmAH4GInk.d~0s|};#;l| ؄R6ޛ>_65\b/Ʒ:Zu֎ ՙI_}xW~~%) ML@`#)UWEoaacYV(/4]XNu4%"fe>;+˙/&g% ),Y;6!lX]ȟP׏ͷfLh2w ^ hȂE_Yj"䨬pdq40ڮ gҋy޵}\; >fv?/O[$+;eLD Kjr>-zzx'Ħbw'p٩W>bGqND,N7moF7TUxvm JTY B>Lrp3#thd]NZ#]K1?'˰$R-/XW=\VD2Φo=Tg6~ Ju]TF ƠAnVf䊴&oy Dsot]ZjX6<- 3fz"L6dW^<.n˴-,8R΄NfqX  UZ/E# 7BEuf3M ^{ DIgB1z:Mab%3k4& "Y*-bҺmn'U8$H0rX5+UNO^=f@F9T$B)$QO .elDic?žMu@dv%EC~gU T =*76nVAnzwU̱Սhij|we&2ܩ`[GxTl/ߘ16"d=L@qo& Z3:y6k1tkzɊckǷO6 L Еr5< :ax%_#93^v8}"2U6 JM0ͯmG^-sEQ6Wv5Xkr ضFej/.hS݊1)JF!b|bK7Qz+@j#g!r?@iGj`*؊H|,DP_^iܮD$H :*δBw\sE>C+dA5G ꈒ-C莙<AcGEWumN!ֳdx5 .BL.[h=2;KIv̙1o_nPEw%z7hdY遲_cIqpk  Q>U>"};nƽM {JCW-.ܐ|Dam+w4{Ui'}qxE&쓟 ؀PpB.NmCTT͕@젰sa`3KKzr`?F҇=^ d1aM=bj8*_Yb  #FW *d.yu"VrQs?+G,I leʊ*f2&nAw7\LdHv$=O0=^xr~<FnzK1ޤ͘ "xhJIVHZNsP꠮*[fC|J kB `z=W~i:tP@9 PJ]O]HvbSˑMQ8>v.ݭժD|qrBbN#R,Kp^rTY0K_i@֘ >$Xs.kgXʹ$-0IU s@?=iB&!mx)  Eh@FZ(+q#mv^#͚Ҿ/scWnla3 #.pG<"͋~;ED\aotͅ!ތscJ i$x~*o$m/ovAc¸#"KVR`4uNl*f 帱X1b$o#BOm 5ÒUUKYzɲfok𡵎 ]L+yq1_~"r>soCMl} }/f[2k Rȏ6b9r[HOTlG§M>&(gΘ$Et+˯bnfԫ[4L,?E5?GҼ/zfu(g9rf{81d s@QKƧ,K],<^Xy-O 7fiqM>!h_0zHA Hd|܍|b;ӛh'#݁=gMr]tO cMhGL@2ybm*bXكo QV"k% \g~E7]lB Ihd7r5S̯CY4udl_"$M"a;aݦb6EPCjۘ̌3?,zSD,~wTm38OF pS0Hʷ5[+k]m9fA^"VVgucM|kCxH2rWx ; #2{i\1<KlC{|2 R<1Lځ}` h/9,1z5s7~ <̭ǫT8eޏ]nx26+0z&@&Ými^; YX+5c.ٗnsPp~?'C]#$zb~kGgQ{^}'w.ڬ曀`XZ2x}=i: oG j"AdUvV F t//7ZY}7~x@93=:oDƼN&AS$Ij^Ta=arenu{Ѝ'п_ lGnk삜Kb@c71I)|]J$&D-|Qv~_D>q)W](6JR܃Aܙ E2MV Tur8u›iGzwR=SഠOrՆ r#M'M*[2 ސIƋ6v$,@~h'R'P~JKx7zqGAȭ)Y :,9$@7ۜ:+E!Ovϧ/;Eia! 48H$dhd.K PHxלBy2)1V͏4WJ11Y48.1gg+9om4Q[i+Ϭ>璥|cl>Rqrʛtrפ3gw_~%r)G2fVGO8Us;Ï^ ̇%4Zjf(ކp.叱юf@FW5.>:\Hr_`.Zpٯh|V<ɉ+z@4ٺXY]2JK$ߵzQ åIsx۹@#v#{+3C޸nEaׯ.~3yH6KofVNtѿ3q8^Q*'~GI숦X[-߭vĀ[ѲOi*T˵ϲ)9Y.=!lXl&4pbZpC~_Yi\Y\06ᔏИs$iojdwqgzEƂ: ykKP)$[Q*}X觫6ElQ0`e6Tfoʶ]B--6^w1P[1s8T`~ gdU\ٷ)~gu08j?,\hM{KɈqq.da=phx^|yKEYs[Lu f2\ < 2ֳ\>Z=GipdggۊdoG *} s&ZGDZquZ3?y!?F=%uC lŃL-A#Q_)y =©c{Ng+LB+%'+~?K-б">SU1_I $3Om&widȭCCr+H([pߠUv>4(vnM3I?[IZyJyynmw6hz(laHƊoH fokH+Ő] b zs\M)s+d3In2)HcjS-:XAaR]]!F<|kc!U2qޮ"Ƃٰ͓dx3mOW_NN~Kƒc698ӶTOUG޺'KJ7d\s:妴3<̀  JKaq>\ЭОd~ ?Y^<|ܚ&"NWF>+mpX+>Qʏy `g.];?@C0 IQi;F9 7 @:Wt:!ͱ{̝V>}{󕱠Wpϩ~ rj ~+VCU ~ 8A~#sh,'pBփXlafپ4TzߵR}!.EZɡgĜ&]6R"mbB` 6X'ɢ[6W]=V%aXv]*#ǂk9?M@LPMЙҕ&H#R(KeVl.犱l)*SNr%:w+l2zϚ%ӘP8⵰@&jtvw1\]eYEMp^ێc4?DvU8D5_lBGA0TI$ҽ]*g5mfKU/Bj2, I{@rl?lln.Ԇн"CӄFgHxChc`)7v§Q{LF ?!5 SrZdX 4܂j86$ϲފB,J̱?Wt+d;B 9es'KV\մnjdȧxK; ] sl-QT&:7b[Ay1 hDQQJi`$[>& U,  jRT[A-: O杸:QMu݊z}q ;LQ>g?4Iw4W. MQh"8au}vGTiآj:"q>{o\(ݢn;W.`]cRdUmOHsU>,&eJna͛|?Zqzİ֬Ckz;eP_¬f/wB|}VXˣֵ;S{YaVBs"Ü ^@_P h!]|\Tޠz$[Ȉ g V< @>ao3о:,N뺇T@<)ZN𗥈XǏ|3> bt¿_ #KeCtY|>U6؊ J8r_PٻӠ2U) >vz}/[O1u"@fiSP nrXA&g7zc$i=܀O qT͚bDŽ2‹sq6 B'}ZT^ϭ"B3[/Mot[5kW;njXcam4]GYh. lcDƺ} ΘɸpO)-{F+Xr(+GR5Au%9 tp9P)!Gnsn,uY]~$ƶM6N{ `+@;GV &שp%W!J>!j0;vS^SV8]K-[6^U6^Kwj٦*[Ze4/bhiO@ﰰVMU _iZQnIDٶHb$Ԣgt ;'[P!Vdq>ZrfW,Rȁ 4;ESPzKq~A?n|Ot#7~vHLњV1ɂ̲l2@h'9j |;upp7 kz)?h`&.Fާty4vS Oi:R؀f` \\*J |V:ͪ+1Pp,/6@{,_$wh+cf~r|{wY@ ]Q|V]X^-~(1j 4SJ]s T4',X0k'}s[ V ?&&15_O!e罋]NaP~=Ҷ-Vğڃ޾\9gh"Zkc.ݱሐ:[UD^zC V.t$ [%nn=+K +W%kQewΪ=UVty̍eR:}gNf Lu+7ҹ+ 8614!BiauF^p%p?т$ZzE9'B<Wozge~we p&:@Ve Mh$yȼ7UtbR][= W}dL57A]j"Üq9+6쁺]iQD,ħIsz@ ~_HۇX1e0e4 [=SaKss]ã>p[z,bGX"XQ [|/T7^{ JKAVq%ѧ+ 8</]m.Nt 6pYlFUEG|u7OũMKɜ-y 6,(Zggc{5[󶸦K()wa>h ;G(BLЋP 2b9;PCN>2' CKXwUvUz Λ ݾn` n>T GQ-`L>,%z,<(hL̈XpaeyX 2 FQO9,Qd܈*~&}bCX<X_C4 ,sM/ T+c‹󼅬Ya|cl69 qǏ{B^9cO- 9iy|SJ&^^iLb}B V]7oxZk 1oigZ~̐}zCPTZL.Qmo#³DT҂6GtT,[TPwS6/ܥ1 iEɦQ3CSy uijߙӚĐT C'K草˸ܗN%08L{sDdOY_mBm"3m텼 ;˺ +OX 5fZ٦; 'õ0gªF(783uLgvѱ3 'x;8⛾fsЮs'.PlSnRc0VuyD"j*hC xϿC( 4Tt߶10wL%GMLpяRr7hwtڀoW`T6Ƕ!A.lܝ&?U|^y7;-:3tXijn!nN\bXNj7-*#APGmNT~ܸc# B.?`K2T@)d)D&v~wY ᳼<7MI4srT ~+NJu{W9`X:ޗ7y#@8t5S/wI\RTo^RKk1I&vs^"px$VImԃ<@fa=TI^߇Ox;ʨJK/_VRjdaI-""xǂט^0XNF\Hw1}R+IXitJ;GQ#R RBS:L ,GHaE-5,^|.J^JATΦK?vVWXQzy+'EY('QmEP/RS(sdEUt ;@ <0oԎ]hg3, F 2I\^ZG;0{W E8N]DNHj1p_>O\΢sS O\~^ji.Nn<1nC =j2 ٸN)udw&A=\a/ټv+IWiOYG*EV]^ GVdG. ޿VQ8`M>ËR)In@S YPC#M) MJs29,D¦řCh  'CK*po0mgC~y+!zm0AMO!) cjf"" U%LmCZ?=3$VcV(N.TK%Firf@vv@G#'{`oV1>tт.OFpfFB}KH" -XtaofnIGGzo2&F| ]V1hc;ll#AF$R⚥̶RE0 Qʙ&AMytLŴ ' p7^#nNݹGS>tP'㸜LU}vN\+y Vz󙂝߽SA8 kl(W jJ4nY!C)Ur [f>‘6(MA d)o,xKSZ(vUcOVBFDV\|Xv9$m"dSOCe͠_=Fhf η7^g.YLsRX]6ērGuSv= 9I9\k|oN!C9IELj.7%EEH!(.1ѬM'@Hfuݒ;)7KWہٰb݄;xzѺBu݅\`X/Nk=nZg"8+ U\Pa`͂w<,7ҿq ;1J{ O7guSPS ;Qm[YGΧL3 nOtG9Eؗ:Y-X**eTPPh^":θQ+|`{ualkѣ2l6#b=f<35//p+*Ԁk mQ8NT)nafJzK(׉&Cv()$2>*Pi}v܀&_*_۟cNF%:6P9 &.as?F[ O|Ul`O0kw뇛mjqfAT14Nm*F+=+ܴʸ>>ƠU۶usе$K4 >\먂j*y.\ ~zf>ś_ cy"`uM1L!zÔb6sAЂ#^M'<`#z1Y$cq͂CMYZwA4Hn"A9x9[Dn)O8TQկaܭYb)\w\At?fVns6譤=t3DY N_v3%p>ӥy7Y"ɑ rZ}E99"РLISPٳbjs!j,C"B Ƚ϶C!8?7ڢ{)L B xI|l13rɇW0{Bz(c9'_>7)Z*4(63}H{v">.\2 T"Vv}>قAX>2RF9ÚUp-?ݡǼ~D<:cT-}~.%: jeD-Fǭ Gϖ,MA$0F D w+&lq,'kb- -^2G3\^!O_Eܗs5"1V2)Q4]FInӹZlo,#d-^RR J{rq|"r%A!{-' _ ;vjXdۼ}vE3{*G6qċy_6k(}N!?~" r[t ^dhN%V7^#7cuFI^l&݌ZX縹2% zayA"hgt=F;#_4jA$~eZ| 3j_(Kr"W%kIH)CWK2{s:4gg]ޏ+ 9\.05W#)+ђDgS&u51V #WF_6<ڎ  7/[˭T5؞h+>;Ԣ}]\jG"ՕHv/b~aRi U׉O\*ŝ*.`GRUmZ!B#oGfYBc*Λћj!a>7kxȑ %b6mc)ca$ ]+0O#j´;Rf>X'|O~qX,zYRkitUҘr*n2f pA{3w-X^sД(0C5ٞ]5}pBg=y8 .,)9V?r1xDp|4戍—\Դ@12%С L,bv3C6 xy:hԽ8qq UtS ̈́ƕc1suƈT%nymь!.ZW}p"F}䏠4^Ȥ=؅2.<"$`)A_ʠ=uo%Nj=QJk'aP?Cj$"dV,GiX(_U$(3LcJPlG\g4fңc|I&jQNFk.͚'54\&@LE"Mv9-mȁh%4~u` NB^B$€m`rxm{i#n*B:6T>/B!Yxt;bO/k,K"Hkٝ8F! )2?/E dyЊAo hOY1@BiΤnxf8^yh@ 9#xgTcOvb!aNFX2d!%F2-+m!,Zpna&m mP!.fBvJ>׆-3ݨ3^2t:ETt qz6f6; ]H\`j*H kt8Dt!mۋ&R Yy1`uGsHMI_[kPjU@WHٓ)FpX $@& o1\F$Ccar&挠Ϝc>(=א8RS{ƣ.AlH_.֋"r xy-\5I*Oل.Ojr*b],X@TiK<COyn VƚML{?(IAzEl`'SoX k?YK+|1w P˽&Qo5^0%?2=!ce&V?Jýbg#aaҹ -oQ _)Lṧ4ZBɌK3˃A&ʈ|~9U8‡pY iTmNuYL('q(B:>;ľ1+VL. v3F~KbZqabc+B5 5CB.j3CJ5Ю_9n Ҁ?")k#diVz"`b{hlԸ<1:XH?zZvRml`}Rdj_yGF=^&q+T\LE5o)5K3RtNI\v mPy|,S\`TlMy"ü$8دS47Qq(68*qioE74>Dlܟ+טtRz ɿ9?ylupp)2>M'J0%*NZM*zoJ˗|8qUnsfOq!F*L;c|q'Y)}6.;WRVͻ0'nkꂼaQDsVt%7w ̲,4q-a\fG=hd+MT:3.ʻLsPUl5\55ҫj}Q l+U<aZ&paō!KM'u1IBȭgRAiߡ VtW93T`A1x"n?1ҁ#"o呾mՔB]4 ޛ~"[n+t$=qn~M@>P:?'W}-pu=ya߲1KXvrD(I߼K5#~K"Lّܨa-f8ނsrx+EYK+)XWo |P #-"tƨ6$ Ʌ"`]smC#}%dH`\&֓0¯jBi€)[s;7^qpߖ¯ -|hf`hWe>7Wcto%UMkc(d:@laf4RdNs]{I4ȍm:}ԹrOJC.F{ 9{}f%ds/jUG!ǠBg9E#E:dM+B]ve zJŗF-9J[&ES!0۲ pǬ/T z!B@O)_d,JJ+_1?s-l<ς˵di?YX +, Ue]ީQ= m ]XZ\[y MW9]uP`Єed"Y4h.RI﹄8hvd׵e* 7#%0Ejj~dWO~gs$j6M *A{Q=ox8O>M¿:WiDp@[\+nLUDVu;g?alI ]֥J7q>iubiP#O*ufzKE OHٯ*"#}hEb/-\H]_L+X41"uB/תpmkI=xghj=N9N*QD2L P5ѶIJSLi"3}L:Yw@- pY5Sye*uI}q7`w]ZM/8'T$⼇r=/ʙv]f=i@{(dQ,6*R(b8_?;|~TiEO'24`4oP5jbrW\Z5#a߬x n;.* )9Aa*Q:p2ޣ"vTPUxg2z3iNB ;fJ]dLi[/=o*NuH>Gdx*g$z<wE˨Z좎n6ܵ@f2gX6Z։'u2PMNX'k!iIȿ~ػ)&m~֋JsֵUl hYa/5 `_unZmxÃ*)*y= rɃT=f͏q~%լ+\$O6z ˰K)%JKJ zh܉I^F6ͱ$`r=|{["XzZM~uRr`;̈yۺg'Q.dI崄4 L IB+)vu>jXT'f0}̴]5ߟ *!Mj@bzy \핽]](])JƭIKC2E悿DwDsA\$@Yc;'^ZmG3ጇshw03m+q%=Gy)fwZ6fBoֆ*i-2f5N|v' 9 ;y`@-`1BrhnOnq;^:*\6I;^GArMou^]>e8mLtoy'Xr,#31(;1 OW w,5RX% :hEvó&'Z䠬?wK1[^fPXzm=I.[<(N?އFB>⤹XxE劂A{14(I4>QG._u)Wy-:'i(@`9Z"W?C(rb'I)]Uqae0!Mѽ-_ӳ.N2_-3(K =&hu,of޵Ws|0_ajc<,* i, ookRh,yKF Jܱ=@|#1>ORau<( l<$ǀ*WV-J.2rL8l8eMh@OLiӴ|ZmT;(}S]Nn0IjJtn+68B1IPYtRɬqK6"! 08]+d͓`3b;+UQ*ShGjg,܅(Qx=˥{!v9)l#}Ljhڼj aӾV$U"jTT=`ͪԻNr#<°-;qU8'$hl*.B<~Ckn]}0$4 NC0Y)ާQ-lчwo`^U.i3&,2ferF/ 30ޘ*2:8H*nDg1Jܴ. &1ͣJic €q[O=@wT*r% Xh ODϨKC~U/|y61ͅLmJJ)X%"ϖӰoX'd /n4(R*؀Yv2Eܗ=[@}9wV'oZ"TrvɃ0B\9FRROo#]/}H8OC%9h>PYHiq<)ɼLN?i=g1i|8߲Hh}'EwsaPWW7 uӿ]q0nTOb8)ĥ+;4$GV-Y~QQ:dA- j5wAʚK"znC{; zM"MV 9HHv9\7Fkӻΰز[UK*p@ov: CmI^B[sӼ"G:09ICϼ5n>V .2lvTݑ ib?(/(Cė~ ȉOHvZh0HOEV9e2.R@k'\B;a{:D50m>1*Q¹FnI|`Cu( zI?^Vuc mY3o}g!DrBpKuJI5B4lj> pm,u~%LCw9S}/9.Hq``=Jt,n?%paix*FU@bҌׅ+}n&/\6 R_ CvcFf*kl +g?!<J7hMDžXT&eY* u$GWd [}"SB7V3\7gT3 Gc^a+H|xFh4.e\A1ꁐiϯ쫰/%" nR7ܑ!d!mU96!L2] kX^y *<S%=cH9Xe;V?[c@yއ[Gpۉ0 =WRr&tӔZY6KRg^!kMdF ]RFS /c SE'/),Cߋ80W+.3ىU,UO2&Ǯ伛r0he ܑNB  N@CTy! S21ߣƐa@o8x4C,6֞ꠃ\A]C0Q^t Rǧ%I&=3SHl%rݶ yEPpOV+쩣M#Q[$$`GqҗBIo>ֳosMAs˯t*Oq,${6u#j \#ћ&?Y$qU)֨I wtoK݇ȡEq&G!fmO"sL7gfM|eAݣ#h_zft;Kjӟ*e<_40c0 :-rES 9b^Hǩ-D uh[-)wEe-nӶ4vG#b}Jx4K&;=Ξ Gu]44^h>-66K*z)c{e rH8!h2+nVi졞wnXQkCځXٔ-Q14K)"[ Gg8h'(5`Dw@vT?L|;#9 "U`h DE|_R{~4nU"Nr'5vh }\ٽ6r&n3-0to/'9#K[\es׍G%L( p3 iT˒5 (zIT4 ?kvsU)Liƺ[{p+5.`O(t.FWdb_ϳ3A`2[lhO ?-M?z|W6eR]}b#P'LEsv.؄$pU7M$mQ#R-x8Ǒ.k@,UHP }琇9fWuf̨rkܷ)ox@ɛAœHhƊ!d\,^U԰FYm#̢*Ihx abڼfDz2۝"C g!N_ ~Y^̥;Fk]R~>'`W.׍L!2~F;ldP+a1 @&#(-'|<^rN=BKNɴI)61ucVDMj>26e0:&o- mH`m!9vx6|߈.O4Nu2DOO73uʏ9h&sFP|Nm?N> 35ՒSe!_'Z2eVt/I63#/@Pb胿O9JRPޒ ܼy_WjJ"<JvP|CPBakA9(v<&I,ഇ035 e+^$3I? sn7zU&_^~^ 4X&A?#@zN:f!{ͦ ^ jG_V-'XoK rYmyJcC8*qiح g558=1e\&i XыG0uyʓH rl(&A_ANb7El2Geƒy4TY.03^^`@ڐ8iJONYy]:m8z@yu/!ڬ$\\0#eQA@O8ؕ{L nEm8}kt#зn)O$`SzlK?ld y+, tY\BUp]q!Ŗ/`inAѬ\]gT=G0y7UX-\V \8n-\W"ȭk\J X xZ)@P?9N=a#R /0l[qA$⨰vI߾wPpBx{P9ЫO];4@ U ~c?{]0GBeWT\`d{ j+# QG;c+u% Sų~jE&] ]ucʨ0(0Ӳn ,j ވ kU;Ǽ.iͪ@UBT[.NjrDGNr=L4ֿp`E(P;)q\O`6 #5R>a+!q6^؏v{&!cD|;=.WFU|rk,vۦ Z#A\QsL(b٢Y\A4Lf [v_O46y!*w,Ϟd)I?0 WtqHu:M1üv4r"qդ~|ژ3ƔSIFu{.cޖU95ݚ$jGH Ԝ!^˳3iʈ>4f*AZ!wßpr7-9_ 0e_rdҩ}7OȴCxy(/3Q}o̲PdU)cjq|ov\z:Vt:1bT)U#myzYF0J.bv0.6:~0⩡>^gIޢ}0yakDɳDCٺ@@ޣӄ )Z,,=a7Tq y+w 3E$<v]]YK&y,$Jp4=}pH#@ϸK4D]]<FDvrXTJ .q[NR@z'⟾P 4kmގ$x.NW"j=6˭J/y z-U )Bc2WPD^mQ!井FnE]]ԅ2Rsb&.JG5b#<tzyQOs #)Vö/brYCT B1n]|vy pRKeI)*Usg7tL qk'|6c%<7u3^Zo~p,Z\0h@e0@8ܩ΃`W[̼W\y*(.4w.D$wF/$}_Jd҈^XȑW\y{J'u/:`%`e PHr1ڝlLi>4dui/\M|Qъ!',! !^n41"d+j=,@}nY|1ڕ zӾ@Od~{G0m%kNM )۹ x)/ٷ'uc<*[K7QI]\e!sX~ )pU,&cl+}ôdl{${kH q**p*-; ,赕KVD*Lu8I/QίZmϢ#8?SX2 DIK]ybͽpѸnz9^]tCղD9#dUdnVp4g3D!G4a'6O48p|)v20OJgD>{y5[rF`՛.Bچl!&99~ԛERUDGp㧴J\1XX*ͱp6 ٺKStY-:%{r:-1 4ѩ_-y%S=*rv0GA-1;>? u"E=+"Lb oc=ٚ傱~s C`?*1\~K(?qusѫxZ ]wտXd-tsBVoh(IP[ۡ R:Lc!6R"U{S0^}q~ksT-<Ǯ6faN"/dn lT9W`3f|ֆ;D|ƜS?kuؚF!KL_eaΦ_Hunp"w+m-1^$D81 MGI}轃+]V_W{ǭX姣8 cьÚh A{=<@ d[5(\TX\Ol3 /x!s䐉P'w5Fpc8fs ܴ~ a/@LiWD6[EhX f0~y/ܢ۱!1 -YΊ> i ^{,ˆ:w]&| =2:z,T)ۿ{rzB5no0|Csg6 W4LMf ςnQGO{G"]32(GCYUN,}wa7ĵ;>Lr,Su]Iz6BO%ƘYîb:I삒q >$މB!EOWl!fҮ-QGGVܙjhI^˫q̙IDmU:{hu>%!(c5jځK T!WWT+|93 (Y ZN:hU8V-Zd9ŃZu/y\=" 8dȭW=9ҠeGv35 ;4[6jv@fE78sSI.o)ެbSAu?Z$jEMo7(%ӷ|Ɨv6j.ya# 1ȑfTvA }DnH@48&?vYWl]y>w !&!^a–#\YDg@c ;0>(Kjka&Κ l̊@ȸ ,&HF&f?ݎgY _~+*C}2$hNOĊsHJd0eu@<˗ y 测ɰ6d_ hR#/?/B1 hQ &^uFd }K/Y@Sn]N(.n.ZpRa->skZ~SXxVˀO>|k<S}t&$ :)y>\U>#v\;&? ;0Ŕt ?ΙpM~8pPW0=6"7AᲓ9j9Y[k8$bo[<k9؛rFcS=ti5L1mjNvV&0¾`{} ):waI!Vvwv2ƙhT"T<Ӊ׶m:11s.ʸ<_Dwz" -<.R7"o/ZsY:*bT0)/-(`[%κZr,R#'G{ yTC_pCLgԥkXQV 6٤ ӭU}SDMiޚW"^80wCd$Qm# uD~|&chC|." ys<Zm$:XZ1l~gKѼf8wb&gEgҼr6.;j]5:Rpjd~%rәL^F ߓ Z6ӬڪC +p7ATomT[F4.AL3h4dx_ps} )lɓ 覥B]KNYx CF*a,*Ň_=HQ # Se' ݕ^+qJ_:Ea> 8M ~u7'~"ٻ?kG-1 F/&ǟUhT>hDE.u,HI'/7i),HOB&BZyW+XQf$§T\ӟ5 -quE ^•`/{Y6;q!H`=QҸf&R|ukDfG!]FaU2+Ixz,[`ꕨw۽L5ċXչP<al~qa4aߪ :e“ۙg6@:nd̊֝) @6,+|+W-6m >X{"BcSӫ =ȬvPIL^!ړRn$C-UH\:^KK`4!D f%iw,=`Y9\5?LS7rN$9KsW4Ogk?ɝH)MsZ)(͹|N/KÿLv  8'S"[!>NY ^Dʇzu[kl\*2ϯ WP)|2~ /X}_^ڵm K=oCThŽ2Ǥꏚ+Upȁܝ2۰-\j7/vd7R' kuJ1 ap߭5rk8#cK oK  /A03px`h4-eqie?P1du2@nh2]0|o_^s`,7 T܉K*>)=-C/-6oCsa<ɡ7@jҟj|:ˎ.[W՘^?NA.AkN8s,rM1%w.eC@`^ pdMm-}KQ<N8;^Jn>Zx0y',[LaXn^Bv D" ܄ሯGoYn]'Y*z3cwEr@-1 Y4#cmNvR :\df+d뙵F2רIFk~wpVzLz8tڥ;llL pG҈L Dy 7z4E`=.2/U hߵDKNmY~#A>|d_T#`1"b|A:"'J]>C=H }#j!Qy[ނx/375Ymvϝx-NxOpCja-M$q^dfQ>-UpGnAAB, k* (]Sk5>؟k#DqރֆMJpOyblDx0Ŋ5.J{(%Ќffo'u@8[vd{q ¬  Ra8ߞK[gr嬔`ۯGэ PmqŎbsSյ~M_2@c=fٻcd$0BF(^QO)C@vl% r |+GζͪI]:fߖzXK\PMd0#=d[9mkK6/D=vVGF>P ۆ٢QY/)^į|3C"YK2RTi/ ~Uxj Wg(Dw䏻?:9s1{ tVI^"g!%J e U Q ±ŻاE';nm~ZD`*WwBQ|>q$rp$0Ms 4`߇eY̽-E-ᝪE}Rw#\(ĥ>e_3VW 0a/2RٱˍOBgoڱk+8uC.:j/ݻh5ZLUR\e|؀ hzI@7QFȎ-<j)1xe5=*zvUt.A eLث# wPXb'L=2r~tb;k2骸r1^5YѦgMl)Me"a1C|r8_!Bٷ~~\ \&r,{*oEZmd,g{$k5w@mS`[%p KsĊ'gj`zuqyF5lΠnLϽIL*,NF7a7LMZ==8Xo.%g$ S˓˔Y&C!"=ֽ%z$6h=ыYsbIBBg_%o\GZƝqԉubׄNzf:κ_<V>bKl܎0 HY[bѹ[T\8^\1N4Zٷiɦ_)B`~Y NR^oC B1PoՌX_r̀j;:YEA%!Y:8Lgwi?)oIpia3{l,*8oG4hI ?kS!&T–U1C(G74z3S4˰lVȦGޭf!$>#@ 56i 0] $99I iN"ܗ8;O/ mh^bJSEM@XM/Yr6*7K~Ԭ2bĺxe>Ok^HA6Wј>r~mMtg19w0cH\!Ygj"Yh_/儀pNV8*.)&3DKT&PT2xS9"$r󤙄JC"%<=ݒPqծ%wSt+nN7nw~ڒeꐷ6E?:^&61[$Q|b1U^AA^ڇ=Tp1 D߳dGx92$wCLoHP b}4 ZJVt^*8}V7Cs4|C`,`f@㷐j*p7іCHgW>,U,=wlx|r&V.TzxJ;fV 7kIfr8\YH]8kRULUY7J)C{ZWU7z?yd, _u)N8`z.MlF#[w@ilPVtBDFac3a߫ W*9(ӵpMM!~F;cN<4(8}36)DّeXo'цMnO|zcZz&W奃#gQZKEsR`s/9 'oP—]hBY: *i#M1P t~tD(*h~.R⥮ٿ>%Ϲ`si3 0# z!Ǥ;WC⸽5:o[I{03eD`4xx4~[8"A_B$MQ9(շuTvt1jXrJ͞3\A=]΁[֧ϟ7d)Ny33QEٴ+$q,uq <\aA}}f Kg =2F^_D(zyمȰ ;g)g] ~Lx5_ӧXkϵ ZZ*O4\\S`  ?h7#b+lSӽi^%3Z%e b]~B2#Re9qfA|aCD&kVY9yIN `QQt=0 ,i[zҨQu\Z #3VPWؙGm{rMOAJ}L@xV`MGm1u89+^Ϻr<6נ;,>0,e8䱂`ʙU, WTgIW׼<8Ub:?l#b _4z};V~xJuCY4{܁^Xݘ Pp01"0{wR!\n=dcjRaY C2\,ij[uCGJR0DqI*V3s9)٢K5ݶ^j8bKdPk%,5;D;)Ȉ 96Xw>$OUf1iUE>j6,`;b` -=x 0O yҭܝu *ƛ;?xPK&S,Y@glgat[60>,F`GfpJVQKU!7h eSW ;-+Q5<KE6Հ%'HxzO@7ïzRj<ƃPNo`g]hA u3 dfvЄ?zyXPV0ouEh]g|u'"Mm<װ9Fķ6#SO.̩"@E䬞[[B)n]BQ" _Ww{^Tck-=G=,T m7FeaDT$鱞U,SO `B'iƒF]v}V;; _w#t`1ʐq+ ^{&>zZuPm/!l7tbψ/>OY*u3P+/@6b2p{ u}KyJi `39JfjYD[!(Y4KRu{߰D8 P }8?M`c<] B+~e%'č܃MGBuEz| ‡#,,_mP04:&/ Ϛ}g+k !1%n\j6JSdJx1 ~S#Eԥm/6! &+6&s"]@hv$;fq‹Sշ-ڵ*6U|q|:~۾Pj{.00MAǣޏO Z(B,#i0pnR.OrK2&ʅ;N1NRq\`d; rwkliJCo{ fC:4L<4&|po_[6 d֋7EKn鱢(lk{n&Do.Q%pER =dF&{ZtbQNc)OtNz3/sB _r$ؓ{䋛=eEk"MMTf}?¿v닔'܁khITTJW)`K15xYd'1R f3ekw%ЭLYï|Ao{KAPwgL8Zz,(?yȬ_|aOx͜3^BWµ mI[ #*0fv\|(̋FGtJ2UU| X-O\ Do;l4wz@BIDc^~F;lQZ%@ ,vL\ms]\c&[B"ٳk2OeZsB+8/ ӀkI*Qn5@#|u[@DaJf]`s/Z↱xxXmPK"F>8T/)0EB3tuAulS)'\eƧ4n64K%PW@{}U͘㡬6'xfzC?vA6D3.){H*sC,PJkv[v{ rtZ2,Xj |b֢ ViyaK`@f=)Ƴy7hûL>Փ¬m>4jShչ*#e'~o?vM5mOr2uL: ,j ҏF& s Ź1"U?&l-/VJZp'7E#ô \FFbS&#@_zhг0c܏j8fpRpvd7=u6(ϚV2*  `*1:n7z%=qSgv(zvOvAw6Ywd\Ļ4pj;E."֣$|Y&y&P +_WT5ZtFIwȘz2D%mo]'~9RfV}L^}W &Ցr >,eMZyǀP*+v Ѷ]?mY<$sËx*8u_DT""뒨H!za4@0M_UZF&m9,jm;T)d )m-?y{">G^ \v,pُyII{e7e9֑@wŚBiO+Ԁ.Pwlz"Ϯ[%-&15liݧz~4Ҽmݶs5)c?pFdpjr$XA  )Ua~Lv2W Zikm]D6v~P&zͯ8;mNbvSӅBҍ0Lɲ͸-ك٤`H^ C7FP÷&o坷cܑ=)k>&b\d,HU#7\# ʹu6܁#l>=b#ڮRql]}s4Gl uz9~&Y CpJuڽc]6;oށ-#|ogmi4 ,"L+"[$oMFcX(}3ecKD2Wղgٱ+,(Zf^m POʵ{k1pwGQ+u5\|r4whf^,Ja|s-2$_Womgj lYР|JCcs(mXb.7t^p55<C9|5f3adGT3Fx€1#d'vg4f;f5`kªE}ZCM(b8xO%V1Y[mYћSlFɭ+aCOJζ10F.:+q׹Z%g#]!l >GE4T>Lf&O=+S_sUû?>҇tfffye[ljDא r7{Ic5/ 8+:kTEp|׎뽋'"n2.I5Kk O8WZd$ mU3K?x骜7P[0t0|>l#|ߗniZlB0YMJGmnnJ%'?Lz|ᡔi]p)ѩvٻ6|S埧m ? 'v2sYҽd!pk?ЙX]Eg"{?d%Ig$tAY\?L?zX'"_FH:Y~eGƏ7k|T>Xc$SԡsfLn`Lj1XܯH$J{]L7&; T_ Gao;;=c9>.F!֫۔S0׷%z͓tJR+vToeIϦ`[PGf邞|Xֶ) 4d<`Ɣ*$/&cri#@AoԎOh{>qhYu[oV/Ixm !/ppQ%gr;:^l' 4}u5Mg4>3PM0A`$ 0R $j9:O^gF7ʆk/^/j i}D bo!7H@)m${HmOH% ]~Б_ȼ7uwq%SHgrJmOz*>z3ȈQ2YW'+\W|Ťui$5_i% j 1nsyT CQKݱ!F 0dLʄ9T`" !LF/fqAfqƲvoaQk>ޠpĤ$P^4"~2H1. A.3sЭkhg'Y;Wb&mD]=&+̄ GP oSV+t·yEI_WGavu[(׿sWR< w= ɑm*%W^(|50>,D<J znB#>P]Su/(kR8s<=UKVX]o`jt@H'6bm.{{ThZ۲ <ƀY2 >w\#/<߳貜z`8Y*+MXS3mOac#+ӴP6ʪIg;#LiJ3뾯(iQr*t Vwo }E8:ćI_?`c"!Rd +hH`-]\ qNhSPmxp3[ˡԽ>PF$n"qo/WPɢFWMg@;hg8UtꊑO18|ܷ@ex5DDc+vGϖ9>uK+VX*Ld W8nN˦@e:_`7:q/H'`7B^ʅmz]¤MۑjZ"T0AO!ю4LDjL}l])MKZ`+4?y`Z:7#$0z>1#B'EA{Ё3.ھ[ )λI@U@< |م`-(R3ݥ^èߖ^#EJ8kUS{3[>I( +B!&Ez Y$xڹ/+c'Sz,,7:$'zke >}  `_rKX+ʓ,UiY޳jH4精k3s.5HddO7s)sGRRE $Ow] w]K(8,燋L~7Ip~ryjtƼDCzjBIȴ*` &nlM^m@|s%(O,Ѝx&,a}E"5l;?21 .H3ci2Bm[w{,!ƻvR1+W0qxBͰi81j Iqy쮓ھY'7Vȿb%6Xnm<ɉ4^:%7 1^:1\,ɦ^'urѺm[A{;^Xh& Szfd>mSX)qxK eۆ=y>>l4YMZ-7C:!\31'nTc' '1`Dsע{F^Ql:Aʓ ~&;v T ul@:6GԨȟʥe4ѳ*EUtϭxhd]J)ZB6$ԒgrV.yKuHN @ 7t͔S燲 MWcIQ/vPqN)Z48"h;,=^vYj|9vb rC2 Ze5* c%T zuST}oFaR51:wyP>``*b%`nQ(q[o&:PBwzfmc)BVa! u{wܽB^ۣ*Ullj{9_rrԆ#:nV ̻BJh{!藔K g]nM}6k/:fP|6"FxڰS|dHi֬ëREf"rA&z~a40Ҁ?Cfo>i$|:L"J+󠼧]ͤ Q9tܨ8NoKX 7; ՛%(K.^H og 4.hlv$zm|F%iK |UuCm6tgܞh߯ZU[AUtq=žb9]ɍ1mp0=@ 3R $ d3ǃ+ #a="O!ASْ} /Uʼnlyw=!8Ql 3Z|pebcqi}g keK55#b0_ ;'d3H=7x6fnY-SF2@#HؾD:*+F=k&b9q g?TYk s:?Hb]N mz"\&LER$Iٰ;5q[Q*YL~=9ܫi0vX6n]\_x2j|O;&=OWacfR6"ܧ^PH[T/5zYn$Lˬ=%3nSDo=c 1s7hGeE.Ccəj:ioD VҪaʳ_6{֘aDNE!vkvNlF[WێA~ζ?C>t[5ƵqM=O{]Hk8?b(̐6nxk/m }wN`ܻyeqM'/qʲ璗0cŒ I_h )rl._ulnKH$r]ޓ% @ߛȫ2ev^2OsjskiI?_a၇~}|'Z2wrDز!Qp*zvfEV@Nbs ,5aAǒktmE+z,.} ?ƔԎJ";}^$\e/H~:q646e+Nv^5Ǥ)LeIdrrz_ "CRԪgHoA{W|s%B A]Hs*^ %{{~}R~$G=IVp`= }+aG}).δpZN  oң:_urMUgVmƳ <- Trp'CkR>^Z_J &_7sv3Ph% X찏V/׸lŴ'5Q ^n(;.~We{-J_eX)а;0bPҮh T)آrQ_+Zfsmi}/><ы!!#XI[KMbx`H\f'7#k4ҧ=D}&r(X}p.ʉ d1l%‰Yv~CT*̍*mo"pFa/ӎh 1|LY#4mD%Oewq-{F0ivq4^bZU_mIP Z=}*^ѾJy7_} op,H4exɎN _t;kKzR@'6A&ଅ>Xn'.@᳠Ϯ܎.TYPmK!Š}HdC1$q !V SuhtyF~dwN<m%J}$ڶ5OzGB/ܣZvP7g'Zh̻$R5{1QF1IF/؉x g9hϔXІ{GfyQfdx@9uo[edz %qy|F4"pgK`M 8؍4Pqq$ڈҖARtOj\bȶd= i=]r_d| >Ȓ /p(]ZSywe>,xRA.JA?c끲E*q}=ÑÆ^%8f8IYg܇ $f*9Et}6.%92Purle7tL/ʽ:+>UVEh^, A#LNʣ oqV *+e6 d\ XR)"/'+ƆQXjş6D-Km y*P(0uTgDޙvY'\N j!~*8Ck*zth-ķԿY y\֬)J Lrd%vuA}Qbq$ XNܻ?B,#zY) 34$j'+M3iܶ\ɠٮ.#R^*Or`a=&G hfZ=ݜA'r"Ob9< EG|?-n+b7#4 |²nXNO'S^"_ aTE?xGw3: NH})%Ddc96\[Kw=-ת+:?UT؜hV3M stԽ|7/ȅ5f O|)l3*c3\AjS73iugb̦cq[ayW˲hQSYCO 6 w2Ggo[)Ǖr i9Ɍ~JNP!}+8%+JAT-^Uܢ8qxrneS>} ha? tIi@1}2I|(y^YȡǴ$-oyyHnd^ɘ$kX_6WEў5U疓@}°p׳_ 0inR^Jr.jS0$;NvJ. 'HΟl%d%jT..M%%))춥 sD@N(nAT)hG JGrVwgTW,2t]"bɍVNM7< ]kH- /8℘3a8qx}gY2ʏ1-X4i;lJeI_wzXV*;E gU-r#SBq]ctoPa,ށq7t2i Jen=s=O,v_A0_xcdxpD. b-b\xyKnU3DtSVE6h Zu vN õƖ Vi;kD{odB:A vnȼ`/#_]} T^wkL{쏏(hPHd(&{ilS[7$žעꫥ]6l};wT!r̂Az#}bE){ËV;5gn b@}S'TA?Q9|~A"5wDjA!#vrh2^8 ̠:4Y!:~!]:tFbf?U$壊ǣ%2+5^5,u[V-"Ice"rCу0-ŭOo$(*L֧_EWQ,9R&5bۜJ:M Bk" Yr+t跻hklmؕV$a,B$^!lv煣x&3NIZ4廿 ӻ_z'_ǒ?]WXä́_y ŒO{:1eC -cbߒ{&Aj0(蜱yӣl:8!QƽyWU{KC\p!fI>d"s\UܻjNlb?K15,p_=!"@EQx[ CYG> M z ˮӨ'y[:SiyG?LF$ccH# PS>F]M3#*8'UꑺVߚU6˞WZieq[Fƒ؅3`Oo2;f;Tx|2*cmBINAxr>#gQaqzFRvEY5otM_˦?I7sJW1<% }˩Hڹa)VtJ,iyF@,i(`CJ Itt' ɕ$Gd{JTm!}2<%jTfaKcԋ9 Z7'X *4-&xR^N#_z'~<0F+0;jDJ*Ke<Kʩ_>Y؈4rR=H1O7; Z 3'Dl0Q }eZ0BgnpX%N9^Ag@@J ¨aW9;RolXV*8[z|G8 Ζq5UWnr`ti>J ,$kVWu,0A5zN&zXb~6*b~K"2I}GWIsNbs\nW5QS5D.( ܗ&BJJ'©4s)!|4?^t1}n9ũWN0`V=TK Fj,*GOubl%^|_ z<z%NqcR n"a#>߫UQ}jM&N_L$DC1)+N9>0"~N(M 4XͭA/r8H vAl@9PMO{tj Taw\:h_I47vc))ե:ɖ.ҳ qB!+qF x aXwurSZI&9z.{y5l~H 풵dž  5ۂļG q;hjg^/% ;$oKeS AD[iO٭g,r[%?V,1y"9׆ g|^=_1~}P%K,ⰰ\-|Q7ĝܟA1نs`;ǝvi0VgP $8KW{l6{{so~0(:bd0| aT=YAcQ-eBMƌAA\v-Uedܘԗ=w1?"+Tۭ1Z2˃xW <(K˹nDG[gDVyXbgC'c4Dya&:ʼem#hö9DFB͕'|=ϺFK}TV.g!ѧg}Dy5_^[J\!HH=Cln-bvAƝit -q6o{juƞd1"9 V!U]i`ɚ0}s"vs%y:}UUS ,hm4( fGh_]]X$$+x*|-pOB ԏbzvxC"(wA0&㕰D YfT*?z7tb\ FIDuUڇl><u`mi!,•Oi8~ |LnJCa=G۳o*duP|BLmW滁zY)Vb&ɾ2ah," A@Nit ѐwbn?`= V4IYޔCQ0?{X(MANܵ"khEi #zq7)]1ĝ2^QT+ҬL? _߫~gpSs+%(􍨸 6Vެƴg>ِC ) 8!nT$(kcgQZ,ؙS&Œۺc !ъm{Z d7m wg+"kBjD4HsbRn^wPaAwRn6i^o=kM̏yG丏ZWtW!p aDӖ\kJs.@fDg5:B!c`PMgb4SCLx4Rs(o;k+5.P! J#n(3N xG/ޭW^A|3^)U ,a+Ks_Hh~͇D5beBF}z6;P&a~K)־]9S$jQZ}==Tdo=2N7%9C2%vH[o_l\:/N?S'eU[:umɼl>Gh]PHh5ke--wUڀ`M4C/ƱG}E#O=+0Eǫ .g@tan gky#4u0&?skV(⽃;Ve20V+sz>m:.-j./mhÂo_k%Qo{ 󫄽vXԠWQWd&xM/w_{ iab.?AEsj]z{T_IBwh}IKDΒl0K!Pk, {TG%޹!AU|_'xJp.p/m񱿖9n&K--\l88l¢58i^[ eɺ-sX2H--FKL=DUI: i|u;K0]Ѽ0#&.|4eTJ`\䱪1\ 2G+fhv1XoVqnZpbMg8w: `ԃC(YE^G{~Ll.(Do;ԚCq4S8Hi!Y S[l;NKw <]Ҧ+p_'D6'#yVdw2ŷPS1FLB7Qp.xSPk#M֌R-NoDoU909~P ?Qd6*ɳ}Ś 1  O؈e1\8oA*E8=[ X..H(}JHs`sZKt%0kV"7,Zl1W!42lP<'pwz wS )N@l] N=0c&+AX/Oz!pH > vϭ(N ;o<^rNt~mrpeVwڱ܂׵C#8(`+Y`(w2r7.bS~@ȱoCr, ?wEDNE,7񺲆6>#$gw whΚQn;sh80`PSCT ,HqI7)V](Yo֮k1 R뢏f^XoW#d6>|pV/!cbHx9bvψiܮě& $吼8Aߩ\2k/humíVu[h K결T]ģi/CѲFh>{~\.bεqh_7<,r[V5%';ȫS+% TXjaiJf)[AH!aHxL-^#EW wP#0M;kFyQ*"3dٚ i؁FF%Ot0@YWOsҿg]-F@C`D5Hy!2F>0f8[?VBVE)Y*r=>\qvԛ StF,5;}oh$ b䳯HtS]Q:}"0 KZ=#7"F7l4t 4bAe Gsҍ_bkzM==BJ B7cr'L(q@ T-rm"c6Gl-L\OS,W{b?%@|Z2 L4n)" r9cNsnDzyXwJ/Mk"[L(\4XJNj `lSho>اvӯE{JB/b4b܂OXljR{ Z5۠h{S`_.}rD\ecP^``cnփ^/SR"նtNunŧM΄/}\ڜa:prS1e%fǑfPwߘ\@Nt*] ?욯'Ӷ$*%tLJ=YjvZy"oH=hSm*?Y숎ogyfZSՠT5UkҪ ~iS8url9&f@VsVdk ΈUM<;zy<_sk Hy6yƭ N'y0dR7*WʢŨZ7:9Kz1!JV8џ( `ڈ9M6fjFk̟rs]oA15G*y'f۬ċG 6f.&l-5yI)3 ^/d1D=&ش6v6Wv󳎹X7ιT{奄tuE"`O(3[` D<"Ԛp&)4eZ Ҙڅ#ŵ}e4CC .ǐ^ S4lNR&]uKr{RQ^+f/  a4#WinMtLKǼUoM=:e&-:~!WXk&jnwRi}!gsFoc^x;r^dCPKEI>;Q ӯʶ5~,y\ %$3摛?B< $)i+S_ͶG3'%ˀNZ䋤M@\sz#2%wN,E :a yJ/ٻVر7~57eh[]eW9| ňEQ>`QdJ[OW)V8)5=:%̳vĩ6J@OhIFi5/ b-Ve~"|4h* iV,'wٱH蹸T.kHLYXoy/B٤T=/cKAx#Q]sy0Xk(A}knOE' T]DL+x0r ϲGT ] ln6)䮀teVPS(Hhufx<i?o9+v 8Fco[ȹNH^/OLVSJiǿ2}$ǔ3UWViGU(-'WKk׼I IM01l[<_sJ f$fbkY۝yI|Sr8x;_=K{D)xT7_N|>`ڊ0=Mb ʮg.پz5&@駗g)[c=ǹZߞcOLjhK@JP|,7>w`u.T+T[{/)6GϿʝ +YOBNEl^1{xR:Rhq!'*Mzm˟Hr>*J]0mOׂ{ Þ1.=qp4制QC) u_ VU@$?82=|fv_MwSM#߷Vb A|Ɗ*:$3|Pv8A OPtܤs;lN#RWtxJA 1k?^nn3R^lB & 8ܾ!})%z7ys<[|:oz MEל@,^u< H*G/.#UO"yYN`ҧ,<&-J\481;5ypSD: D&W;I+Qdkrg,+kmKx:!Sғ6tGk0QMl;,jo9\"WN쨵"h=yMu(ap}y{ dyuS",=Y<=* fVBP m[bbu5靰M_%\gnTF~GRYish)^Xj@-zp¡1eAX̐FSD h9,ۨx^^ƣ=dతwbyTVJ0m=ISP2q,/'=QAD5P \pL5o'GN#(ܕp5oĀ+BbTU9n>L, qls_9v:L;Ջ&V4I=PW9VmQwxjᬣn+!b:8Pݩ$Ͻd̫] "z_ǟW;nd=DYrSE }Ic7ϙ./yV;2?!7 'c~c=v-{5Zy lܝmK6>_IcS+􌩯6z2_A %W0JŸ"-BGno r6I%OR~_^8퍭<fiB˿ƒX}>ɣDPjE u/<Ζ (&zhI^ry8/oAVI+nh_WXz'wc?TWAԇ7'`f2I8^R霖 .g8fԷar4߿5 MRNo^O~:,^B6 AvT1f(|knR^eB KUiڗ6ϡSMR6Mѵ*ah(c䯞->7'6 {bt>oJ=68 &v [chZ5idN㶘 ;] yr3WڤryMG&0eJѪ/8b#=EZ {;%jٌ| Lm0[+cǓb[*w yVdb&S]3QB6`%""qfwi hnM5GYU ]`[5sָyqUw ܸvF&O(~_Χ4caH:ب +V *`NE+1KXoTAG˼8V23ʃWF)|hkۥ/=_A{BUT |N`eKyy8me*Noi=lT ^=jOŧ) &-ìGPӱH-Ǩl͆fS ^ZmDL똂Cc X _*t8 A463ܕxy_46bc8SpS=o),!OCML鑱_ezǮ%kBa#SIl୐?a"Cf3VgޠXci\Ӏ3&mu+C$#Fا*bV@¼k\o' |\GF-(G;pY^(YO/,xYQb.)4LjPB 7W{d*lCPD1]vd&v(S@?/VeY5l/ ocwtwegmi%H@?x[+pY=+ʴߕdGZ'NRq\!αf 2ce>@Өk=~L<njE%z;*B|]>l ^ Uj;O& Sh0X4[(I5_1.Dl2;8)j~"Bی:*>a⸊Aa9@iۏ?7ESls߭IМQ ˫wjwkNk}I"{IOܖ?]oJv(Yvς(ٙnOKy it?ʉa.pn舅BhUF$-u!w:lNSeI,oڻ f:@Zj~]%jEx[m kFS`laU5ت$xWOBBN+OY9ChFZ঺vSa= 0N%1#}| 3=:X'Rɚ>,GW~ fw"jg,=K;L4#1jroR٤Kzڅ[0tW*l:7X~D kg|p(P,-]x9 CR{:=0, =ڍ4r dGXoj3wfxc-Dz5!iVE)x~k^D-2HA|r5=FnXʘR=A9C ItԤٚ:rHCJṬLIjO@tQ6oS &aI)n_'V )|cשI*bIq2(WpkJq7'ouyn͏G !R1E_(]Dz)HT:ۋ Q桸lwqJͫr6, gh5DF-=E$\6Vd6# ۽} Xxl h6׶Jz圝gF]Ms:hbIKasCMclߺR敪=)|UAPGB'7Hlo`Sjoc} UjNm˥@A$=M%L[0au|՟ MĚA$n]d[^;`J0w@9GQ٫4c3Sr |}Cu($9TȬG^}27aG(`9]uiJ.\&`C۲6FdĬyֶg?l(dH* @f&[ϝ"Vvzj`l0G-~.B5mma!6 pCGyLꀊ9p_E_~=@ѳK n yRicyPrkvzd^YfC y|{x#ٶk 苨lAgC"̴\g8c [ H;jz<`uΝjW7!va>fHT\4X2xOŚQˍIq+J5K^R",R =Ib#7hu zI`__⪐|SDM+!՟R%Y#&=E_ƛP>ߪ aj.\O"y3q7n@`I7ֺ9Xf$PLou`3nt{YUmg)L d fU8eْ >F/tVd$Y|ȼf/\%ĮL:|mQ~ >:{%kx"YWZiJy*ᓫmrxO4*Kuv"52[#rKjXDO5n5tv4c%)e;\:[vH dw" -`c)IH:B\LYڸzRYRMߝ<\sBZڈV?!t/sp6KiC=~דB.ws>|a֬8ؚjmY SH\R?'m͕xgY:_#>ٶQ i Gu"0в:qE{ʎ \@c֖- gE{Φ|GE%a h+#oO͋чaW\0z{\; D 5& G푸CK 1в!1NĴVRF@YCȱjg ^K܃T| /S;rxLIt^º0UI(IY=30 v]̣ FuU>!)- I.:_{ݡM8[}ybE @GQ" V2<0pt|C~bW. w6WJ(p dmeH/$q){%"D|cQH7҇3eu +839fRi0F$,O{V&Y) ?D fx}x*K-o/k2#fGvOXи8 }n EӮ;+oEw5 ɕI̅z.%gŢ&Q VLWC<A9Lߩ 6Et>Ԫ:6K|H7YDR!<*MEez2uD9tS^f&s- q Zn&h~ )"6- u5^)Nl1++!pV9hXPvw7]:d-ؽS>RGj߈+)'/ψ##3O[Kev!|ۢSMs BzjH:)IwY!><@ / ^`ڭW  A5cG&WIT>jn妿&Pژtm Ju PB“LGēJhA&~FM<70 fxT2=ŀimyxnc"[!~&v{1&ETE An9FKuL 9gL/nm+JG`e^tWM ur)`㻞#威b)B$]vނ6 ` `0?tJQPF]Y vj k8AqH5d(!I]y^X}ݴHzh5 v+WoB^yQ i 8Sԗ~.oV{z=>=). %`I#@αTpؖϥPsh~r[I[Bp ^.H zKE%>rꆾFԫZ6 g#QG eHEd5 {7q{;yY~lvmv&)ts9B@N16skYAUBS8X?OE)qO`Y\i1@2$9]:=)u (zDV)Bq[RaD !d4Y!ډ b6d@j̓1}`OU}!Nc[;|l)gcJT@}GL̈́0aUuhpUY" 6r<:#d-k[ڮfkޕ7B!L: ۚ't79ޔv;/\ZX`qHI|G{ﺱT|u`] (vfT' #Q!EԪu Rڶ އ}ݥYiZCr ߦ0ȍ"(SuIg>SeRsfa#ȹlo'Sh!c4s/G=%QGiޅ##yUtF<-&~7K7M0d\tA ѳEx yE;:mf.7 FY)Sk㊚p˴d7t!r%qةh-ߠy5sʷdvY|KIK taGkw 7Zb\p{Uՠ#cH{Ef@o^dzcVՊPlwKy:grK~:ǫRA\O;ꍈx # ,e-n٪(>2Dc^vܝo2$&_dCY jbThr!1nh_\<|-҂h0/%@S\f#[U.Q$˓JV~ov zYSW*$]Uy Hu"h[ 7 HRVSwGWP-\. i:Gia ])\f)M%|[ZhĤsO>wYA%UXZxsl.DEYeSNX~6O#2WPu ZzQVI"Y!։H.+Omi(Nӿte'H>L='-s B7r?A%prRY}Ky9sFJx o-(>5,7a39"S{gةgrd }q4Ӧnhb L)&|Gp]VK^|&AF Xz* 6ov+󟄨Gڍ]9׹iBmka:M@"EPHy1GĜ`eDIx#ş)_0n CzTԕDTN&׷"O3U BCahH66%ww~mn~)Fq*dzn<*kpUXL sp5nt |#HVN8{Bh /2S>V5~')@uiufG{eT-gz=*l{DgGљ*('dwMN l}\=;k=C\.>>^hZ|8!6](9="+" T͝22UW% 3sC$f|2uOf#@NF1Ytg|1iQP]nÌuJxφ֣ tڕ> %0ݺwȊ'gQ}' *dc(D$dBؽ"UgK$HJc0VUg#Yj䍝pKpmՓa'}F"(Mi-aDH[B|軠<]Zpo]7*#7"@v"ݪ+ܧW(V(ʮGĽk*qX*RǪe1ޜd ,'F\, [ȏxD2(hvss}f*kAmwO=b~SeςL߬7<ѓ¸qUO@i̤T "kxsJcUX*֛w/,:T>&RE$xSX `5Ms_Hu;7R ͖?Oִ"o˫YI!Sz!5ê^bh/q=N Ȅ,jR^P(W3SE/]LfUWGۈJ}M.&sm*cרSnN~5dE@[dgN,H\(\+s ?fT|$\꾳9BQ>ֹz/R@Y8k/KQw6=iwZwdh1#G#N/ )0`־J#*qeWos|"_0 ot=( DYVpULmU7-vqԿ>~rmVc5gن) jث~zN #cz>>`ԁDa1SחT\q;(O eu#{@]bpDk_k@gzݷѠ۸#Dp@zxem3sbػ%bWU5) {4LQ_bk}b;4YvԹJTUz+[,0:.`1Z [󷞒ro\@pLoZ i9 !y{kV*EvL=(tVd [qW.uz7Wm7"`iR>[`Xɲ*ÝH^KQfJϩaXwm l2R=@&tإJiH- hxJ$Bzl8\L >0DE3t\+= 9*Mt^PRw]8 "OVyYY3TŚM(n[Fև#t(`mYPi-s8QSguJ+<]*z,F}R{Pδ@B4H{qas&ke#GzG'eG4{-|@_ 9ߚՎRpc~AxO)`A*2PZ'gxFoڂycza_ipl)$ֵdמ>/9 PwgO n+< u*$ȣZ6.I`MXȣέVGt5 f-0X-fȖ\c܍]4N21-Dtig]"5s˭75tD 28#_#6Pwyy\ȸ+S`L6r>Gï`+f- ~p]~Dķ>[p5D/*:a_;r 0LwuLyO3~0#S 1n8nˌf,;zn .Y׽7~pp-ZM`thǸvH-nT.]Ӽ{BP AȒ;8&q8:ٝ#ohBgo7L}Kᔪ]lHl4rZ$DUM_Q~Ÿ܁d@2:cc3f?ŭӜNCm+. gyceDZwk{\-k7XC0+B+r7|2B Y9lNX|5t1Ez*C6OKӄqqZͮ췱f'~ll({w&|1^#\4Ӷ>7ʜucOb T!]K,p`.ܵp'<[lOچkR' -0#a~ҸV'XI+ zqOЬvUQƓ(AS]@u2/-RII_$U^9aYcGKe Gr~b zז.iEEi0UrGNTXN_xa9~8>[0$VR[}2BtaffOz{|2>S3NU#n#a6y D,sWXkQc(lȰ~q;pxuÕJ?*ΦTg̤Js 9xK),R!":L=+5(p}Y`_w={]Qoq1GrAcT v22˵W"S Dx$sW(!&1@tU?Q&맣Qxmc} ȝ/oZKlS(+ďqdIU2$1v_F^䚑ǾP#_+ ]KjJ+rybRGu -?]Kp{A)Ua&p[A:ⶡNu=QH%ޛvd½ s[4; pO"y8z vߞG۝1Քz.ăPvu[u".Gt]ϸfsC>Sa+_Įcrn\DB(c[D1$? #6Z֊R+89|Eamt0c9"NnUy;0jLb*xnܽ_q:nګo/uVL$7yȅnSaq@W0dE@?,r!KHƼsZ]U\ ?!PO?pX Y(K`*3 зiR\sohs1ry)r8y3fk ѧćvU1(Hd&Mkwot Z16{WBUL}a#5>ݳT9k8p!Bk#Vl3gvϿO8gx"=%*#fdn$U F H-84k#A@O4jDc#;/Z;] wgUb춐fD9?N-&?DR'T&[uB/w_K5eޗ\B{(**Wٹ&#+RVicswN -ǀeֳOd dzCw'ii*wҞsU6w$}#B /L{.Q倾HVxݷ Z1%dR"Mh!l8t p>6g9CcL9V7 _Vkh!woDGMGxge۸͎N(/rz <0kCR T?@YoJs S6GCXZ3+Pkq!.[5՗ Rp3;.Fu8gj3x a!ÜgB?FxDV+/Hw4ow\o<@MX.F2m4;"d Ŗ '~G} ،F~9 :V9p2WüLl4{py54$d\,w5 =x)tO:$=4qݟL&OT1,ȯ{~t^MjCMrh *[EEOBvI:i>h5Oal_CВr͉83HaKsce!_3£',t'̦".x,ޛdͻaxp8$3zlONj]nߔq\qzFd,+s2u޸yS:xO뺽ii!y]SWx |oGa;t! 2慱PR#8cp&6[CM}Mnb\@:x+m[v$5 |I޴ӳP+o)4h%N2r(A^>Zk**M29{T˔;OC/XzW@**1dD mE_bRaΫ 5e|"uW'#ګiu@)̌#ᐍ𞆝bΠpmQUYQ^J{8ߖԙ0*$F+` Pu>ªM%Hm 3Nҙ݂ߺ6 푘&Lr0\*;(Zrp%]6Mi%m]¢E+PW%7 CF-z]iLA+RvFk3Ė[wIS]krv_y֞ipyHm˥QF3{I>`{dC' L}S$S2 ?Jb1Z +VM@|oa\H>@2 +ï[.'=Kg5z<֕놿"r$ZkA(N%`7zzK CV&>j5c0bWnx'|3_0拌m4XfOY`&5Ci@$jv[K[\ՐA.I)9+eJ(XHN2tm1qM:7?F8YeЛ0*"%W(DbA6լ$5f>9r7>Xukf55pspiH0 $?Ņ$v|ϘȪ܀ $_,BrA062ft=so8a,!h,?p|kZj%Ce{aa6Er" I1ef-iq`e-@ӣ$#e/Ƥ՗-:nUssH?`q5TH1\̮ȞWȓ7Nuo PyėG"fCOo3s3Qj['0HRkMFJJߥ BBP߯Y5&cb6R⍚drA)𡷨UYFQ@ݯwE >wSO淜<)N3Z#fh6h]>*X]*j鉜wCNQ"=`S`|aK v{EwZ$g%+>➃PW]iG3*m$Q &z%( vW0ɿDY+aR8zE"HG\*v)\)'DE:¯E 6}(1֭]W+1.e¸@"t*u5eko8o8|T FKDS\ۺboz3?u{$Q7mm[z.->:Z!]oʰ:VĂګ3w@].0A@ʍsUk}QfM:jz"loyAJh;VI1v%2BK2V7wY6rJ;ngD3"c3SW=VQ>0!"G1!RjKp ɪw6s;v#EJ&r@nn8%SEk4BJ#(ܑÐ.lE$WO gtx[@"fG5Le.tyrĤWVؠN+k30Ϭ<=vW) ikiqH(iԾ ӻ.ho=NZ:iUH\.iS59E01voư_F#>?0Q2c|=| HADY.G{ua##җt(G>ц' V4pq=xȯl3ne4Da wh@ 況[}rK_# | >"Sq(iXPx; Ӏ3=`}G~"t(Ǯ)IXsNe44kd~{D{gV\OvˈΙxrMdwoPVϬ9p;6/k__y",8g櫓|BX*)8*xBš[ҀTO;F-\"^7 т4"׏1SI{s r<8Cp'L~Bpn:, q&LDjؗ J7\m1x=85G*SC!{3pye }yv[ ~;}6NTQnŤ2d '9rM2Uře-aV-&& s0[hX-<&;遵0MK=eF^3me~v\!45"4(hv(r.[SD YuD\ kK-AipLYHx(;}y^ +JMAf':9SI=orwwg5PٛwB(/zx:c)<'7]L_J*Pk d*&aҾIOQ2v98ngଯtqCQxUzi\i1\mB d )20ok;9g Hny^DyE~>$% ]p;RGH+ B7|^F*vamC .%#, &)X:kD |_´ ٧mV'*Go3m`zb-J 'ջ)p%aAe9[Ƈ+xˌ5 jFaMHRZ]w\+bDB=cCQ^C#f1,;^ryQTt '*?4UϤoܧFi^~ҭwj  IwHlyr@O[#^Pqf TR^[OԲ/3(d !b8n`~ң1U+٠5!Ս5Uط.5Si1xȢWY6#&!cszQ5,?D iJ?hC Wڂ7}h(#E 4?\}fKK{ln@vJh$S0CeN&┮?0a[zq<,FiIb*SGN63+ig_I0]=^g_7F/Fg:s9SK!/T?V] bBb!{P /I<'ި.Z>4ȌU6(>h>!r)(>Ԏd՚6X]PW6_#2M9ڋ+&vSb1`6,uS0 jw$Oo0pJEQSK3wp4:C}{ j·3Go$j?q9{V/&0Hf)Mȴ-y7 Y\[yˑsV^K,t"Ef`5̘_A O55(sؼ0"J Z'#dxbA1@SxloAwaf322 4!,jIHa&&v-\7nJ^R1 |O0۴Hs]eaɿ&C@9m=G=2rPY":0/8w,LvfC%ŎK@>Z >-~ LYEYi^_2J-G[sѢJ:f@Ap`}۱+Qp'@3 GND.;wKEFo )fZoqfhF[[!mT<-|򊷜f&dPSMTQE*W`XFr1Ȧw΃9:-&sbV_jBX1! )ܻ)sR^Q5gs ;q-\[X#]m4mUNH/st$^:W 7䯃^\bN,kϑaHbdhYA.4n#y!/j9CoL !f#Й@)&"I]puTXHᮜD|_⿃ڄ X./+%ԭo~7%y;'Dqh94 'XI +&iVNj7GD-Ü6e^Bquc)Yqyhp 'a'0RX9d6-4c[)'#k_be$ K?&n8uZ %Ƞq P4VrR-8\Wu3# / 6QSxlAE93ku.Z[7(+'BklIC/SnW!#>TO Ǽ6iJy Aό\!_K˰ve!c(ϯuIj'/⃝l\eڕ4qH_pNs1n+́QʫBs+׍(lzݡ5/!Q[@I/6r@ϔCgyb%r(kvIMdsT$əL*SJ+֌a1*󶦶48_Wjcn/@E[" mm]^{7MTAO uִ OX Ԗh~̂}q@*} 5U5->w.Հg:$>設y jAU YU.,A%((D!}#(DLs]%o12/,%vuv䀉{x.)Bbd*Ѝě!Ն м=khqtK&: ]X6=Zv?0"ĀjhvolKm{!r㔤ґE&Z3 [B3[paPTZ?O湬Y1ԈHWT̷l3huDybR,mT~XQv$׋1 XT YVh)HSc}š$⨥(/'clz irFwݐ>M 4#E4s@ׅBxIjZ'ib10c.wH4@T{cJ.(58M՘E &%!t9Z )" /;#ߖ+EY<]d~)UyfOy㫀Ĥ|(zPPeɟlWIc̢课OzHގ!v,|td4W?s`-:̆g+ArRxGqLL-bn3B*DAO]y`Ww=-h"}^ma\_|o!>7hN*PYs)ZHkK.wӂ~iuf+Pby1x[RT3JK@I&Zbr^uUyt\ ~<ǛXw%Lt?9=)nl)]PBSR?b…#Wl{C׵U"ʯrZ8r9K׃zqBnw9)ʌ |\PvqGV{d8kY|;!h!1 _'wAP@ E'_))&>!ʣP/@#j;ټm?H]Nk!BsaԽNefܲIX."5]}↗_mĞą6Cnӊ|9D5x986 9c4-493I`ƃ+J拄 ֎PZ-u@ X¥dL C1ϳ l5>A)75J6;;^#6'2tn?\yʔP ftWsYzOÜD $99? 53wn]Kß*(V<تtT')YY_x'W#hiX1aQ;}kM,c[-b֒_'θ Sٔ7קuΏ[yEzCp]Kѣ&őC(2W {W6|ี\nO3N_O mœ$v;t46R;^0tkj^<|"/auy*P-W8:]x;2Wc\`٨U%co-.hVfn5*U\Xq#}PΪ[f{Mۗ&·>p9\_&V/MUPsYk>s{wYĝBCKmxW" "AQ8l&&x>Wz}~.U iN&%+"DIz8 SԨțnMM]J';lЋ^7gLt"{Czlݏd/5%?@Qsje%uΎx'º }}$ݦʚJffgοx }5 D 5U>&j֧|הGwxXtu:0Vn0緆HWX+FP Hl?+,]1شK|bZߺXtʛψb-W|=~a/֋ DB~|} ̔ r575Akiɖ/0^q+uus e,+ƕ.#֮A:)o)Ɉh8쩠1HK[UÐ}50T?mI*.N,Y|-G[_}% 97cB_*l4jvXdyq1j(c̺"Nǹ17hI,OLA6uK}>S7JD_V_ % gɳu-LGxF: z7Ti|h M "a|^a_eYwllu̒b ~@PJ'I3]Cv0$Bii5:`~Y ӯ)? hQ) T (I80Qݚ%Da `mItTa6Nq M){2yP;V=2O;R_ t{3uG_S`V,3'Pvr뿍{ (Hn^F?-ܮS 6#˼$*9lu1]z܃Pg8@L+{U ]+ort-Z`U3I?ޟU o> ַEZA-_7N@}{ #|&qy2+,B7M ')_E#?yBRl[I_/mw翖 [dHSe5&SŹp9֎^Blm{vySG2j8[N3 >aFeI+pTnV"dTV$H515v: 'օR~3|å"zM_|9 ؒW! AJꑝ0<o&p| A1gvW@w72{ED]v$:6V³@/_]:ĺXN[,-\$o/`"Rs,s VnZƺ}H}قAJ1 aIܟc*8IBԅI/0ۂ|DFP(>m3}' y#&ݸf2xDbA{ܑa†C~0Iڙwg}`,-nGixVm4RjDIkca+wknm@`Һ_FC;IJ k7Gޛq n~ ^Ơg"Ŋ iM۟*hL;ZZœ&rbٚ=Ҧ*+ğ}\KKStʒKkkB׻&)46 rϯ6솃x~!vbڷw";%U("}[䁚N;6>'~7:L4K.Z7&*?ą%s)Um )T;ki;.I;2qʘuu4m GqZC]epð9}jzk;IѨY뮶z?xYVީkԤ[~FP}gJO0]49w++I-~ 1n%{N eқE?]?XshZAN!]#Z<=Y|-`U}גpUdos?LBL65R2&:'j )HSJuh9Ș#J>IAn7i?V`ڂF*/'Q|E `˜M$t|bmQ.TWkc1d"QŗOge4 l%FIՈ-6Klu GO=ub]t:<G͂?inWB($l;Z_WxpV,/d$+: GeJ}?dq~3 ";cگQS;'Mh;lC(LjfO[OWkt'n%!{_V"ǥz~,E6o< UAJ9$kZtgiYvXh#_V㔑7wjJ]UQK[;Ma bjy,+vßD|~/CT_Jzcar}>Do3 ;&#:η=Ȅ/}ZHR! p쀯5h*١/ib6 !E d=GA,'31viVVU>b2VhA+׆g7X‘'ҁuHCTv#= k&hu6 抡!BZD3E#j9ϵ0j|T*}C[spu s,D_N.9M6jptggOŔ&[}E6)kӳ) 7$9F⾒F9?eFm<}p 3_ cri1,T cuq|'؃l%mRۂ'Tĭ)ʀXsjׂ͑[P|S? jzuzјV삪άe%57v[@FHGU;gI䁐 N 0xȑ)ho_]GMgW%_$gF+p:'f$R.^w4>$1P.hĜ* cwLx1 nD ᬶ 2-biKGl.G}>K>GM%'ȨOjr>o.p7`NThYhlOCLXxcݿ=:G˽V]*##*M0KWCP+/N#!'ڇ1g6 P(,`CkIg S0Wf9꣝D`ZrbcR_ڵHfϽ8ڼ o7oSq.Pȟ07姝 e1//QtdBKoX3zW /7=mn9wv$.x^f9.f[n9?tELEAh~s <F_3Ysۅ9p5Ȓl{8gc\ϸx\uaIC5Zсw(2=ʦV$P|مz 8Moc Wj?HîszQ[5J$[ >å%!CN>2<,zSdV#xQQgvqReϬoPʭgUbu!.H)pfZ^ܸsZ2=/ X̡=,EK{JT{/> e+3:3%"xR XjW娑6Ũ d 2xku_ :I{ -n,7XO$O:p*OݯcJ8 Eغ:;vZ/]Z]Na{3@mǃ͵=p(u,Ѫt~>G x֞'|+ ][5ũYʭQr#.j l?J5Wَh>6] ׿yf.B-Ak𖬏PU?91navQ썡2 WM5jTvWPN`?&|w9&b=\%7Fty!0UWB2)iKw# Ou0QL-!nd@UY6.tCل[=p)5t芉N" H}MϩU@nS-b[Ui1HHjûǸ!)_y7LP%Rg,gԺ AȜBȻE2bEǷ Г';m(6,f| X #x+ŝ$|_rg.7u44]<Œj+C֩}U3172z]$ ʥ/^Jv]-}i2c D7@a7xՕ~ ewyI_WcG7ngOD;QeN*eYB3*\~iW{{Ido_![G}w2R+=*${Órs{ l%펟 @pUsn$J+"6x=0pOn_\]suXAVʁ9OZ<)1:kU7 XCb#ߒH75gtUn4-&`X4نSP[Y^9cX[JTXi |"_rߒ̐mM>-̞ a}cO_ZǦBkHQΜUJ9f@ (TQmYA8"8NS=_^,3⻎Ni- ^Ҧ0ڤnTDii#f/2CөcSYq;,*Dz a۲*1z0zQ_ܙ&fOuhǾobMj}J= M69V"Raʂm6|-ؐx9f6s=k]LE1/¯Q.cQkdU*"8cz+D?kǨ&};H8nMCR|r'D"H9"B"q~I mm<3e/222$uCm3%%FjReXw$͍5.6T7 ^hjhPPH8YH52 Z?lKDyh L%]l>N8Te J?v}9Eu>#Gx, NթhƁĈn!e)+~97Ǡ?JebjrC5Nmhyw4[+$<&G[BiƬ6ihݛ,ѕyo ƃߎE~Z٥@1V>Ke|=KSqg6yV[d }^%谂T_/7[IVWY= ~Q(_F=<DqYz )7ۅj .?[vEFҟɏï)Y) r] o b6 ׳*jZ00_E3=3UbL1?۶(:ظT e,;ػ;FR JNH844_]A̵Qw5>@4ob% O}@3F31=ן 6BKٞq`kq2fcM+f̱ҳ<'eNӋ 93*-W+? XK.~v~&'s~^$yAUo-5\94YSv5;i3wE28l܈ =Fmsk 0tYÌt)M_wb'WJmz9`o{hQlo 5{%9$ҽpxnN <]MX P1[ʶu:2 H.?*iu{ i f1k N2yC\]y#P=? yر-unJJڮ6'WL)xeOV,i7 ;̼ Ok R/<~ŕܞvsj#ِ i/¶zh%"9gc I/9وR *aP*H-Xx_-VwIv 3o.oE6 GN3nue5[@iLںv^ WR~uu"ɳ`kG\fme\!Khq֕('4߃ZwXYOP e8;e.AȖGZ0G:]u+}dGlh-N9t HP좠ɇi;%OGeb>A_wcو6A7(0OyJUJa es <)5KYJyBޙi0u˷$*4HDgӌoBte\V`TpD*3 K&rͷe܋~NhSBP\R*WY%Emb?l KO!oV!%qQM!AcQ ċQIEH.ŻuLTl xߔLiCz(5r8A , pڝo2ʛYYo[V0WpgN9rsG\W&LV>~kd)~H- P"es=?ZƻFy6-`YؠN94dL1jgqw>ht *)X˞UUGB'q N\ ޘКzɱ|j LjV%ꊾ`"'Ɔ'w&)Ȅ/ԑ^8焮)L!8 0hSuVAU8/NO9^ěiUƊ9x㪃[O=ySiWzeUUũ&{Y*zi< n2#(3vZ/mL-n<\*ٯ/݀htAiF^s`n`._` T#i{YW]3:#\3Enǂ}>`{ΨQPMФAE$[HC4nzaAf*6a ;0CvꊠM4nG>%zY K|]ATp#r|dO([zy2B^tVR^],}t>xk j4 ]NG".` "l-JZ$`-G\mX62]D:nwe)IqD m/L)*zwRh]>0҆Uzd`FmE*#lڋC<^E4גY)Me~Av?j FlNbrW6ċCRq >aT-(۶y2}L()1ukdd} W}*3paD,b{WC$tjS!ѐnYwTv&c)3P~ӵwu!4Օ{saapӯb[٤-P0` 6e%ϣN[PL fK6Xz/ZCT!)hAH{vmH] RĜ+ؗP7!& b7mk~ xv)?S׺ yjԷCdXㅒ|R ۛa| (;DܿFkAL;5Sk fuf)T u3ٖ+:tjuhhddd p ZwIr e_oŭKwL.(E3VaM"BXH8c]Bry0w$ λ?'xJUSVR8ᨿ.`zjWdwO)An coT()²x@K9~R~X6vN׍Pg.CemUv!*1)2/+烢6lLkqSݡN}NՁż- 1)|lJj-3cFK_9nsrnMhX0 F)]\46PCf Q94o5J1ذ%Yt}Z؎)$2@D"GGĝCl'9!qg`bTK V$8t]+FxC%;xD7 r%g-܂Jr7S_a*:9N;Yv-[OaECi6ˡEvff/v p@(o#ٝr# t0/XNYsra%MO:RdiZ'1=LN䍳 RtH%YHlw: r{f'^b ;$x~ۯCޕ'ZXR=FBq)IsvQ\b}f<`!:N3 L_#wwvEf#A-.ZE#IB#~Jf dџlrfŋ+,wUS(AAxd\sTZ 75+AǝUҵy.0#i){߿/^^l5mJ}~y7ɩZ*{զYJG#2)?Xg4-f=.@ky @u&r9 42dd!@%|t^-F7,k ԕF@ܞde ]XٙGͼ^]  ,÷ J'`_,R莍7D:V*'J`hE*fUVkob9&t妭=5)N<zQx];nW޵ԝסDm 6 ~i$r9eDuwկg7x_GYH|`d(YNOlQmu"շeog3z.b(zfݔƓq,'iK/6>(Y ~%bH2'鸷փ@zByٹLKVN_"Kb8Z_XC`RoдvaN!%צ{^w.CTdp#K Ց80pLR]1.{u(nCǰī. 9yeª*1AYT<S\]ob%OV3vῶ=6^Ω5ь*T&}83G&޾#X0yRb@G8RJ`64B>9M/FSI1ڋEVHY@J@F< QVHخ~arRсTG= >UjWH>^رg&]8[@L+`\Ow%Y3$?wƟѪCFd3bhnurlEv=X 0Ea W!"M"@-L{nBwު7Aal2I4(6V;@>)s~uq;fYP{|UZ[f^PJhe+b ɥ x'RwF{kIrOa "mIPXYF3Kƨޣ*&V&,d.xzsjOKMCpFpѸٹ;$0ԔI2>~arp#8c!:c !(R2аzE_U1d*RRťVԸZ%LSF+v2li%i.on^(U^-1s nTZ7vK B\. g 4ʮ죕_Y"9&Ҧ'$:Roc0tokJ< P\7l."죿Dh=o*kbFFi{raäR¡)䫥?DIGnxWṬ40?.ClxHȻ:_8V̈šKhx<~j4 K<`UEC)BALPm4x&a4-@2T_TH+c$eۙz-6؀̀98y.DP*`J͡ĕ9h35^0Ga(PTwsBdOϖyF/> ŗ [ ēJ|,*.-r^ Gu D]r@5 = ?րPʓQ鯽2Z|*PP#O6{g(XPTa}i$T mݢ֊=1nPtS%~U=s*/F(6Hi*ZӖo8;/ȅb@:![St0DOoU2?P&Es.[5ƭyE4DQB>sJuqI2\7{+PGNJef3-m)jKhsvXbxxS $.K2L/{f4 0Uk$w QPy43k#G{=H$&U }X &9¶h>34+# *EH^UJ԰5ϪU &XgAexy}i(:*<)74.^.r|8%E1ұ)_Xʥ615oz}XE]x#ܸ*-*+xf)BF}..z P JRBVÚaTЌ1tkqiJ"Z!~cF(^kRGs {_̑?|r<#u[}51=k݌ϗPEG_^31^vkgiDZ"+t<&?ә2CSۏV 4 #Mb\'w yra*=Շ -ܜ) R)N 6WNʨ Y+h,5;XyɛZݢpW&\s;FI{=l~&/LjN #<#0Bv>l?Hdߟ=-4䖺,|nlM [dhi>2iOБi 1voTj H6VeQ[4z&͒ȧ9±8I$s`0\Ɩޅ[}Qײf4dTK uK:}o| JHoͲ4Q\WKp)^/.Qk|o^#C o},푢u8WhٮVK:CP{;hQL_NȌ]rP$]Jw:pWG4CxTtr2Z9{Pv~ǡpwCr*3.-|tOx@z}Վ N |;I 8M3?pul z> ȗ7aGJwt2{`lWY6ȼ 3/VFp8&rg*4 PVɂh= ?kcv,h2DQde%bgɴA)[3[ l)%}*c8'.d]؊ZCp4=!Z,7*Z2zri{)"@ (+d K 'wH_2Eh ֪iIQP4f_ (]B0 nG<s};7ei5֜1c­3STT[BrIy  w6*9w!ԲoRQڋ=5{Zp0'~KwW޲FG^fR ,CGCҺnaͨFRSbH0  c;kt ɮ7w 8Ss o tus,6)gx'y"UΝJh`f6xY*a;;"I`L kW'S#")i|luBtAWA9^桅ད"3;MfzJ[Ѣx]wW!T'Na MUI:}ûc9hOd[9=4U =c$dB l{'Ž':ҕ56-z3\sv z3uo:e BH,(Q7\lW5_HZ<4c΀Qp㽛eي+v9ɼ URV'3Th-2P_ԁHl (͠ BlF15hM(a9T{9xams0i.o;`*;QVﵒtDuH|֌V#BK[ƙP[¿ҤV\u,t:*єC7-܆.͐:i =qܺAK17vGG}\mW5*D7rrgԶh@4Xq[!՘>;vOwx-qX [gc}VdW}烪R],ՎҧAB |K+]iRy@ jzCxueِn#(]mxW(GgKj)Wrp$n:*[D杬H-`Kv=L*^}ZɊnHc )nȶg]0vz NjF e mzm@!.TD^M yckIpCYpTsR6;}8Wk)]~\LSA8 5*gQU>ϳ c?YOtЗ 8ջ{?ٯ>- ~Ȏ m8V"e %EyO PIVm:#ݫBD^&'=Z6!loߟ^:瞄ڸe7Q=u 7p~X^˸$7;Ӄ vP[B̍O2Z <:bWbN8ڃ R夎Kǐ3pVZ=䯖PҼX9Hd-G;5Tj-Di*B!"c!c˿`1r2 L?oʓ;ٶfZs.r$J۵J闈}]E}l0 P,<V!MCN[fuŹ`;EΌ#z C禊`+*P' C$\ {K~}s w+A5_3g|;7獀/%^T9-'&72҇ 2 N/8Ǧ*K kur;!,-K!)ջ` .@T}(S@/XKIhXC:mH~9߿0?S#ij+kyN]%E]ڡY_#Z:D?Nl3+N&B.;lܶ)}v B̀u>IKuӅT!8SIusL]3 |oq>OvjB4"Iύ0Jy}阷Tc V+m_ е+saGL"W Z~HBú&]F\+AiV%)Y AtA`E$|sw\|bɬH1T&q=P=y\.Cf.]3{$ذK 'R1e`2(ZUMe5729T3ujəZ'O%q)bm?JnRG335e]v bw 鈾KHE IbuJ*i,?AߴSmЖv&6GHejnjqE98<9?]е*i>֘px- Iس.BSs.6C,/\Ξl:8~QDL0c{O^%9up"OM9xBWRf6fqYn--grdثzԊ+->sxq~/"c"(xƴ↵+(e@?Tn="oK:'UC9p`WKcEȥVٳlN“]8Ĉį&(g.`E댓qt"FC~U8I~clR9B*b9}Sh'?'8|*Z.$>3OF:F9]m6g3\/t˯pw'O! \EX5FnW$鶯LzUg aQ>{['Lt9O d2|VhYlZUBb)P7ZKNHZ [вF]6;l9VBt ;23sYg$^]+6mg1*=K$Y 'ʪśBTZ8Dms(^OO0ܖ줸Uȅ],q"/jU x Axu8g^}%yǙ2J Ld-%D6< ;t <"'L^B[Vi1!O]u ,KR/v4 b y<vRA@D]L8Q2a%^)Vq`ti|zsLЃDm*ȎAh4˭`=N}zxr><0TS`}t٦e&Hͪ\l{7E"h=6W ѱ>!f~UAP&MVS+d^_o~Xz7H&Qlq8E[^]&EwjnIm!Α2!ع)/,׀@˿U۰)aֵz'RdHPrד.4 L>Ts %#(E3agؖp?sB ČJjˈݐ>h@ p˦B,W JݢFBu+<=pCFи |7ZC_"!H 1O*SmRp[U/kBn|Ϧ,a;$5;gi'BfJ25-XoOQT ~`ԑ7͉ʍ#a@%vN]Ĵ<3oyVq{$K5x@IbʸS0H#= ľUpmBS!bE sA5$:ީX7?1ZɌL?ŁVʨ$ 1wIP 40;Zk?pQ$jw=Gzޕث[SWv.q@X֧牦 x"6Y!♊EgEWR(Q00$}/Ø\ʺ7 Pb^CC92td N*rtYaH[g+ p/zyr|Y!/2ɮ\5 'K ௦قb]яLF@{ &;쒺+DFY FᖵYDcaJ}^ᆦ$6Lx qc .:K1A oy l<riRE,42Nݚt<-hVJsn9_wަU>o#3R9ԷH0ۇjz'X&Ǘ"ҡZ2E4J{cVmo8h cC$ fZ_؋b_)_D"?+M\̱L.Юh,-OCLECP]O_5e%PdLu 5K\ujH yʿm6FC84m#;]vrq ƦV @Tp 4tr:>+ŔXck%y? _'y>}s$= s1x{,?sچ.{˱ǭi"QM}R`2w"]Rbtyꔦ,_iss´^ Yƴd@|dYZi1hwWx}h~vP:j\%;oRMGE#ObTPcLI``vؔ>[&XJM3,ىCi\ 2T3KGD A.&񸂢 ;׌ĥY6bCV/_p:R\qe{3uPXCvl$cu](A?깋)cq; "˖דSȃ_m=N޷EJgwB(/O/4+ΐekWQ8+XrϞ9z]Å*y+){ z86R3/%oj)@6H5'L<;gn!)D*Л#achd5WbXxdg& ; >\omoKNMFIa_2гFk''~,СP@Ո3H :,(a'&:e]!TsNƳ B`uļ*Nd'46/:feۓʱc2yCl0ÔIQUo=6yȞ[됩~}A(4iR+V>Xˢzr94s:5-hx?5%G6^3MhyX~ H >M%)zINkkc!dMFMXeM9"5aвKЂ" 916[Ht6Pq}a368 6{A%Kñ^Ur|+9Y $_YmO2™6y,5Ff+zliqRcwp0r+BC/@H[;t Y,cdѕrKSЭ{>u)8*r=Iv2z#h {ESWx$*kg4ފ*0ݚk}Vz ! [(Gg'0Bٝ_+놶nc^ꈇ n&+K0pBDm+q@1ﴣbQ"F mGx2~P69BamTlƳ\,\}Rk @ ṁvBϩ"|nwXM s>`> [t:_TQ*I rt_$M$\G!ѰRUU>`^7`ڐ$M3]2}Fx"IT{'jQhTkKTA (nWeSME 'c昄A@vWEJa_y+]ޏNH_wWo[/|4 ;c;s>=TXKKy9g~`n:fӄnKǦy:|D--3 3>HӗӜ9M5qpaRI@ @^i PϷ"˱=]b\@ &}Q-΅X.Ѹ` I b}EeBYխW0wdU ;?xӗ;'A'*0s% ͽu:?b SީcgݞqtQ %JeXa
h6J>ȳΰB#u_k uUl!&&%3ʐza R%` #(Zp;Z~ʑz%h\x!@ը ޤ#49maad(kjN!*cʦM8##(aW.|eT;]W*eH-{>͹ny=K<2Ġ'%Mf3t @nR$pKkP?xmz;59՞c1ש؂gڜ`2ߓG(Gk[CPz8vJKi[W/i.^PO1(wqGvZ0vG<*yBn9KlCkJxz6xFrߥ"(FecI2N& vk1=h{O:p?F"B c^N 9T H2 ]%GAAx J14(\хwhpNYSn+e*B`_ڏ+[^bT9/ᡁRY_@p%@)t .(Nh`8SjSM.*t/d7 R9md{ј'ƅ1 &zs|:FH'Xi{iVy=F‘=xu)ѢQ|'E|?ڟU0IQHw^E;o4hJU դ,26W4nY].ȩwեH|gˑ[ kJ9y)w:癶jOp/Af`4s1>6 ^ET "* p0`F8EL&+ DzC} ꏴlNH-aQP*^EL- J~BR\mKd` I/M"~ !'Q bzbw/t4o V*`XIV7s>U$A'kcYnŽg_Umnd`vč5Nt}8P b Y0^ @FMUc6β|o抬=X VC'67ĉΏyb>O ԆX5\._RLfͧ'zxHq8gjLzC`6-"̭)ҐiȄ̵Je(lb+ eh؜n4{gZ>]^²Y"2;2*3H\KCٗs)/Ϝ7|qVcM;)HU-A*BpMzྛN򠵏*W'xqIopųY^QT} 6Ħ mSa@-<ٜA؋xr0BH\w:}+ii&1 =ޮf Q gX,Yw0b.̪?ucp=]KzHMɍ]fVg$We!e[Dі>z.)\ A @ #!t_i͚@iD/.ć= uZz ׬ fP[(ki2Oy0Y5'YOߑU$Na@//_a4dQUZZr'f$jeT~rm[8:DXߚ:6@z *3 `N%}kn'-l!⦛)[?Sό6uVӼn(/,+yzڴ ?c{%1~[pZD%{fG *c+ Bю~.k[~Zf.' AcKs1_J`EdJmY3Й9@N*eua3 1XW26c7cGLhwsPfTlo[mBT\hZ7*ݵ<(/ R85H=[ȿY2lDvk6+ޠAXn#T ӆ{39,z*,l54SꚕL0[ z鑠`|ODR:W44tQdl"*k8D)ʯ,Qh*t_ ,P[X{zOօmä&aT(K2<_U?}>LQO"VY V B́VdR┣B=1Lkʓ(c%08+[J3+8gE>ȵ,Zzs`(t 9NrjrO&a2^߮0'ctFq5 AV^Yl1_SunpmH7di)OEi qҎ<jw<Fr-w&xkLx{,CďMW9T_ Y,S#Lb2kvmj7'qd'y Fo`(z@eEz:ss3Ӕ5V%kkcbB5_{]u05Y_bXq $=ލW88(\oOcʤ3/\&iiO?D^I/ɪR )<aCL0`EE[oSSoFHqxT/]56;J@ƱA|Z 5o7`7|kbܘipןyHYs.nh١僯Hqu4( nֻ`[3*LIϜ~FeqC왨`@Bt'0*l)$"(]S9qTRAd =KZ )%k eH~X fHQV۬BJ h\ZT1Ÿ ~"PXH6@6gZy2܏0UVr 04+DbR)qCK¶] 8,w Jstk E&[h̝Uwo 1Rt.__ɵ5a*QZ2, _Kr|:6t['V %Kr ]g`ÌM tbcMY ԫJnZC)ǩabA͘ƌA\/ŶI͛zj\$Es0a 3l9lrdUV <`mFt=o-8# (i#k·G]w]j0Ham3ƫyNywخp-%n㊾ RŗԴR"i*D"Otj"X},&2( ŅbY lϺ:ypix0*tXD7)[qg)^EL`Ɵ6c{kyi 'nb4(Q^YLsk݆YGsG]+28iJ ϝ n'S|iA]r\H쒃|Vi!I` PŌW t\MP;@Fu/cnoKX|@5Th`lb`g-m+~.SS*+lSrاhc 9buٴI[%B-Wvj>?caMtw8wexp9S[%'||/]䟚R0psqpˆvaz 11Djt%?X%d[G4ɥ$ϟ2%›ͬ׻} Ahwx2IMePzz$GU^2&FR'Q7l^!iv hN5~ϛR;G<*G- 5YbܤҐ^VD,bX[xHMqPn{Ti+Z}F .5/́2S.Zˋ&Ly׻9ݣ{  }.Eޞuk <)QkETEu |XFqffx+2/IE%zv̅׈-!i__h!C"gE nbZըxg$R7ne^]M r =Mp̭ ^ L'qB 7VtVA;-E["/x$S;0|9^ŅђQ aa}3AlWgk:A4GGDWe[6$vZĔ8n3:9Q{qO^9Nv)k>*uueɲ4aEC2ުf?R\~X&]Fhqe&Z}UXf(-S6ѩkA|Gj֓N;Y ߥ_H!8OL4FL~uD+Mx' K1\?ɸ_)5EA,,d1ncz&XE9x,XcNfźlyT9tXDMMVOmj#z:7|_:\6pJ%ᘭ>, {Xq-gѲ4O&myQo-0(ag@h.i[z 4I> CFLIg|''3t7VǞyH ZitQ^{ݽβ*Үee@اsY̺%(Y )KA`U 3Kl]x,xٰ-;$VvJNa7S!9%6 EVT PMӲ2/JVąHY>Pr,4/V 2Li+(p}PF)@$>R)srޯ"q\m?v J÷ Xjx=L~` ۢ ?sQqz]6m]$-Ԓy݌Ȣ\ӷD.:چz?o~H+lbi8\MjRؖߢ:`u8l$Pf̻L΢"&[l" >.#ccA{zoYZR3I, 6e-azi M,ӐP3Pb}ҐbFx9cw#YTd;zSE%5Ygj޾XTYk`o58:lmZ`I$*/$Upݝ}L"/ ETBHY4 \u q<}y>؍y,zMPwz?-mx(>Nľt5`9萝e//BTڵ/4oT~ݘ2o[A"std='܄]Zk Kӆ5C>|Ln~v/V\Ëleѥ9ئ6XUZd P3g2}KJE79?'@[}F%kŝt]a}H/1~1-Ȇe*@@80Hv:k1\9-dWGd9L) <U)ɕ(٥`qcCi&M9( )N 'q5F:'2%GӴ ofqSklVیݑX>I0fpNk*mT֠ۙŭ^V|xqL-`?n{Z}]?z XK=]48&a!Zf~a\N0uBy?|~f\ۘ\U0Ypi*lޓ/ߌglnxԅU\Fǫb9'UQp;/ړ7H-ugIigX-RzE pn۩;{<XbH*E"te-~pf R7i[!ΒJ3zi[{J E{Q7V*ٌQp'A"vuyٴn!L6/^*7y&1M,[%mH)QɼNw-UX+;Q?fvPɈp҈ YޙKmGae8{xomdʩuS,AF`V hszh'&?η~ʂsY7 ={8xVWr5"55N[~m b5D\ۍ~px6eF(%~d0|2`g_p&;}!6_l30.7,9\6y?aP,%tEK'zXE][VZ ޽*Cȡ?:ʕj|/Nvo -ʄ3 \&W'*Z !.9 G@pq3-RPxEj{`T] 8F;>-'5{nLr f_a?}U^$trwz`ddP\5= /Qgmh|Gi]4ea)ZN7Ձ )nԅkFfzSBՄj:<:tfnEB1D㧝p.U (2d2.+MH (/:eҴg rM: =w fg:p@+^d{Q.6V&-d>Oڋ^ "Cwkxhҩs{H߮X%To(5603`ukakTuʍA 3އ'IM@n>g3%0VǩL*T1F@NRA+UQn:IXc7n~xiߝyԺo`vϯQEѻߘh?^P~o+^tc}RzI'mAZ.pߊ/ɿ^A[ 򲂠qNWFK&;1a,CM.=5+W29:,f:eCdJ枉RJlF1/w&py֍b'O]l9$1's|iهDx5M{a$9!%+L^ă>nBwi5G'֒;H/Gx?SCJlA>A/%J#g}Ha_G "Fu߾ P&ڜLK'v6^Po:.?JӃewYn%fk{ש* nId>͎_19SR>] De~&[TNRaS1_-!7uI$hM|vGx6aN8Po/S沺tk U72ȕpq0+Cc<i} |6x!`R_Ǚ!6gY"|Z'^ vp<\_+oQ1 nRaFN_D:QIJhM{>T`2eG"[gw\9Iߗ+ LicN1,:񆃞^0b27U8QfMot&zV/OGHS!b#-LITEhz2)o[WfJi߄h4PlV_ ggkE`_a?F4~].F5 ]ADx$`.P4k/ 5M~$,6c/m꾒2k Sպ9&dz^0l$!T oy:"x񢖕F "R#\di< 퀹@b^}[wW?9h^)"Oe8-{17zSy!X"|UAN p0hڱ6 ·%rImGbak)m|1gپ(C -S8(8|k @JNq藖0xa1 1v<Q{*`R;-s}LL/~Dc?99CowR4:IБDQ9B{, Kdo^9s(0 N’lv*2ma+{&JS}06 Grw5:ٵpT%"#4I~ 4vSP1O\Sa",s)G:焔練G?ya( i4 LЎ=ʏR8=HsQ331:FqnthZp f]nO0ӴrC׳mI c k$W2Cߟ-rϠfVJ:bEo)( u [?=$ȖlFxa7窰ˠ&[3,b(]+D /;K]HR?YYspZm`4$q|}EbǪ1@0Bğqes< `?KzZN~D gYk[|][.ih5%-UgD\PVgQeyp'JH L[ zahA tD҇IAP,d )D~9hDv3T#و}Ys(E׵.ͼkrem&pnKp&ybw,u^o qޝ88|(Z)^uPGZiN!5slM-<$$@71DG>~<U6ox+$AGE[ ջV 02O\z_9Gʞ_-kgXC@Oc6u:x([2Q1AĚ *Xk5~{+D(z$}~b5<-WHd":޾1.=ca],M/fWq&7%YZ?yȴu¯T!@%e`}2שTel]y@9Sܟ DHP>bP; kZoH jvR˽*?d݋dEqy+5T>"-fjSW|E4K Y s9( z}U!LKE}b;H!#R ~2\ _OEap:ޒwloq붾4Z?%3PbGْ7,Gmׅ<զrPKVcSNYaoca^ !3\k;fQ3"ڷƩ|t/0Ya}l0As3G.C#mx[0i[nS6)jz3*51rtur6OG(_ToӼf2'8HP4'T>Ws@{s~n.=R =fܵA;-7p! }"]mhJb#12ŸzzF>E!уhl +qc\VJyi7gu<X 7 yHKO +I exGQcՔ!)jl{\Pבq4rihx^/m鄦6A >Ȍ%c<0S:Xq -WĴkեrOV JJ(* #/Ody@wYd+9٢G?oy%ЊAǷJl_)Ś|٤2,@0d R|͗(Ak*n 82DE*cmqCw62L?N/7"R?TC A|Cf  K剻juv T5/x顅G {&BeVN? %޻RHTX EY̾ {űJϩ^I*!*IpP\"lQ*k+m_(?DSsY2Z. ZK 2Az׬"-s~`>ro+h=䏧@fafogz ]~(%fYTm m˴䀙v)wr%-rk*UO~``Q._^{vc3oZ@= IP]R({&pZ;b-1b5&-Gjbj(Ueef:( DP ۣiz#E~*RyE{4.$ˣ0 D Ҥ DdJIhe.آ.ĊwPi7Ȼ ӯnI2S2oB6^p#ܗSH>æ^V`ϙlî @gWwo}9*<3a_P%W9DgR"mM4AQ54uƦJ7i+{ؕ4-Jc7l.bk<8.haÅ4%1.֐.C5al & 9[Q!wl7TX҂FQM_HCȲF—z^ ༄{\ e7)`vmb4ن:"{< ,eF!L82o/dAi,(W' aWVELUp/ֳJD ׁ)?f:?a^%%1LJ(8ыQNn6+dj0T%->cK5spᣒ<2`K(W-qiCk= gn{JJp$oߒJӲ_5v>yS]TFnCR.eX^,Iu J -y o\A_Ti^/w^Ϊ> /(4 x{C3xp=qܰν ꘧U;," %q|#)|C V\u{A) d+KW %4c ~wZڝ\DBCQ6V|WmP]k\ap4ա,6*+ʃj}簕::oi=Tl@YTC]ᠾ.nAy(a6Lv>]Jg sFHJm匉nHC?TY^)jO8J #S~YW :׸# ZO„2T Cp dd5~$~W*X1a^`AR:ccQ. Y;W컅ʴMS=-ož2@(S8Xq,Fh \׸}nuSs]HLw5-/޻"5M܃TU"7@W~g籩о>;6"vi5yϵQTU];8M@#N̒_E5%q#_ik*?1H)7W@~?Ffdu9Vq'G:Veak .W!S:U3^'st;lqyL-<1CWۻc)n.[~C? Ϯ`P fƻ O)yoxI) F-y >A|9ivۉDd;^̴FbW?@ uK}7?" !K0}hkp$ܖs!f,>߈; ^fhJ,,'DbS=64}[ACpv)p72mQv۴Y-&}έF\3>R= ]_&'݃CfMƂ u!\ij|g*"*-Zb9>'')l}ݽ={Ц/1Gq-@Nʐ80\/$D|5>"Д/ ;zT:x#ʞ~sN1˗ Р6{k x(i{a҉ք9u6uȢ͔TB@ ȸ;S,+ Ʊ˜X! - )(]7,g.KBAIT74SLgL׽ZG7OtWJ͋ | /f/L -r[M\vԣSw_;Q)=^Y&~?ju\}Acϔ! H4_s jqY#ӕZN9Emnj 5] W%}{pDQpNsˉW@\1*=N(Rc7S2N\c- v]kV~ >KBT9RZF*FuhPIo ;KGpX?ˣ*:aOl(-/J 6Hyn=߀I} WDm):!b9ަ,,DJF$rX48ԉm\ۂ$(=\RKJ";զ+i-d>?Rh54gjwiɗ/Xm|f爈Zo {{~t}Mi )VS# |S)0K,?ԂG=pgMgc5Zt)qhO&R`E.䓳S`kP]6gJPGoJ] ˝'f?8ZB>Je!Co!I[` HNu` Le7[ PSiv^/% Z7GjR&q߰ u3 vʐx(deH5pO$z\mQ)&_r8xuXKn$o SH\}( mt9{OZT~﫣\l")6?k.P bʥuƕw-%y]~xʟ3%gƱJ6%[:n;Q@O@F۝sC>{B/R!;2ߕz"Il*]Gb! R*@d\~#]m<(}VKDXl}tO31PP}["ŭhZ5Aco^{ټefw}!~-7!h0 L(GmYz%z:Czpd4.6] k[3)yhx9)+G5DK7E8 :Af8aYU3t(KQE߸Ը5\Ke̚{+'z <ܴhF ڣJ2o6_&ŝ;BCՊՌda!T'tS앳N*m1_1-8RȾ`#/@Ǯ`124 XjV,oHӛo))oj-01敍HL.Z:;&훺vA0 gQ|g_MՅnP,h;MҧSGHz`̼"H+i,Z@"T:a  KTx|ҧ6B*n#J3>yv~5[y"<S:`[*˗{w\1;ZxxM?(B_)_xv"IA\ |]i{Ht8R:p~ aVEZs" B消-#, `_5JcHO t˳]*5ryoK4i4ywt41ӄ:oޢ݌f(~d7F~jiBZ[ͅElM27BO"B@݌-^WJ,f:d1{wԌjA/whh>䤷P—W9*m\6˼ dq)8n9?^ I@񓬹16x`t|jEb(VN* ֶ .*V9h"3p.pkhbX lJmtJBoMwNq@A$ܩ}ϱK*}1o!Cz|]hy_aeʦrA|t"aCԂt.z2Y[pJ ?)iC.1@Xf"',燹=/;4Ȃ9 'f?ӧ0섋0U`H4X!5ۘn\ˑQ8^騚7NbdM.uzR-[w"^-[`F;6<V,RoS#*U JtG S/"e@:_7rzgƊ 's}L-pSz t.Tn DЂ2zA*Ֆ6,l4Óws?C0]n o( ?$=xCb>%Z<íC&}\E5gs2&JSO 3kq7pB3z4W Och +^B:DSvRKpLf yu@>aSt "^:2y 89Lu о(`DBnq `x^E~N.y8 Lڥ9=5 lGT5=S2ε'vqȧJ+Qi wld1FJ;66cU 5Lw TmH /r?(8[)aEnd : fP=f6K%1=Cn?]uz=)!yJCﶜ(V-Q5w65þ,4"Z|4pcr9+V{vQƟ@t}c k"n\ۓ -n[:ߩ*&գgZ\}>jK %v=,8D[#9_m4huX\x_$IR^`]ȨTMrf!͓zÉj+E'᝛+ X|[ܟ^t/:Gԩ/q%0Kn @.G^YTt3'E ?I}5CP q4o&n/hoх*zkͪġ_N2?Q+EKjpկ44zR}ԑwBBSj!ʖ>#(}@faḝ[*=pS]oY-ra^wM! d׳ϟL(2(*Z˗`u WsrA\$3TYKJi %Q`SONԅe{SF "̅uA7ȞRf{N5B@ܨYCLy^t!"ٲ* Ŗ(0kFJ,K~os@UFRZCG >Y>>o6O3e=kvvFt 7]ˉ rfnmǓNR0&2e43p0"Xhڕl:[c9v*X1 {|񧨘 aEx^g'pI᩽6)"dV?E}^gޞ:p*:[c!Y!X=XH&}nn)ދ2=8ttAa +KmVݾ2V_BDkH$Yt'WxzBҐ w2#WsTCICsv>[I"?St{Rr.+ב7+=0 &w Ҝm9~V#=1vz Tfx?WC]ĿbCJZ]w&p$EٌZ'Ź1;V5FY@MSnu]<9}@c!/_%,f/:2c_0*!e%ꦤ5!2AǬ%8 j%M#wgY&1eE _^Q%,I{i(v;V,sy}t&f)֖nI)R.̢3a~͓ Fҿʏ 3iOHcWn}WII 퐠 ̿Ɔ-Z R)ҨD`)hO^Ȟ2{k:Aw:SD >#$ۗc hG㫂Vws*g|N60aV`~g$m2}+t4*}FCɡ wKvCΟ3*{;n̓zGO@%σVLq^UEeijR'E dX,¢mzmb`ש7 FѤ{*I+lȠ/fsHMhp$_>C>gCXq|1o1dzy gx8b" |G;m;ɰYK7u*iuW`C )ss#2<# t8}hCv|Hv c1):gJ.^ z ^5i‡7ۦZosu} ҶmDKŒ`z"6d~yBG2|):7&X{][ iCt[3L+^Ҷ0 y$JZM~憦#ԺPj8>Ȟ >yX2l*rh| v( f6S1%;b.(ѽYA]L'%d}Ⱈ.0p^8J7Q^ѪbP'6IX IL4`PX $~iNmtA UejDT:iҼ L[w׋RS&ě}-AB_, ڷCޫ_^dt@;cUb';o!YTÝ*aj 1[umXń[\s./5HYXm:0pW#/IM|= Clj- _%qJ?JK!نflVkKWlCSI\0CV.yO&ro؞Е6ioUno|CjV1.[We9'NYDU=N*ӊv Z Zy5Ia}XO#~ix(9{#{Ԏ]V"!X%Os{|Pک{7!NHjdBȰ Kti7靯P IW-!b>e G_OC{.s YF\*R3W`.e:AXRӜ 2O2tgUKlP@+T ڦt@{Kp@ C-Wxa%#g<*AWBImkMfN'?@ǜCTEcgrhWZpŶP(;im[)!N Cz;R?[uf/ 0CKPEjlV3 O6, f4s|cٽ <Љ8u5.nfM"J*,vcQ#%61{=R#g_ecߵ ^q+Y>L=hnMl!b%V2uatFlNEަk/wݠIL>'*dK[A^l?⬪˱ !621e#6߷Te`oD6a,>:)jCXMe#2 J̶[M 9-R$+{4lӳ% şbؐU ՗֡ `١Y/NY)F_~@X \d,cL\#>3ez71Ľv,^hNULb.jLp0}&\!zm8`tXsA}Pѷ=쳻.mMW|hlY߹wc2 PMܡ4DʅY[e.{KTWIdC{SzA:|CGgQ.yrc#jճ$iL۪I5)rz ʏ9cz)i8 W+`F(@.Lf$ [ioUop賻(!Z7F[bzMoK |:V>mF ܯO&Ep$cwrl|G(Ϋmwb= TnB(MVbn'}08.#K,| RNTऻOk}aįTfZC`24{æQo,Wǣ555go4|l!fMʳ5 ?.QZhBm5.YeJO3U{&D N g8foqڮ&7(D7v&Ef7`w0oD4Fc"{SIVjnA2H 緹ojxk*yp7~bAoiH-BcѬ4WptPOuiݝpG1ADָ욅%9bX8Rz>OˆӉዿDQ8@.˗(s4ӂB͏?vbA%pJWlԃk6++})pXo\*b`a o[R>3Οi=t'uvI5[۟7Tv{/;ۭ/0{@||/)R"f%9/{mnL;VHmܥ3eEb.YDTCb `0pwDë\tIomMiR 2xSTo3#\7ƅF;#w1lkM&" ;">DMP{EI'^)̡nm7( R age RLyΐ]L%bgcPOJR[s 'ķRTtEQ !IOsu6"y}$͍l}Ջ6[( f<7 '0I[i u_WSLh/<?V\t,xpQ̍*9-FQP R:W˚fU>R%  e&@l`Zz .a"iuk?iy Cΰ򬪵^+KߦB89洞ThR_>=3 v1le1ƒMqR57<[RE홠r}O C~A˻LƤP,g(]ǩ*QIvԜXP)%&H-O$ ɣ|doWP.̤r\#.֕}8'e8-;u3)@m5oWyya2y'΅ SNd޽x}KR's 7ʻIfZ,N=.@ I@ñ*PF,G/8J׵tp,3‡8qەՖ8*mk R;5+cs5/Gc>vW?N´fRW&KȓCp57)y&Z}SN)QuVr\67؏e:20,Xk{Qmq=66מtxGDž]7fQ'qI/i;|K(RxAFvqktQ4YjFpyѦ@&;|ˑn-> .e퉂%o=EU5ޣ8+TBGO`+(C%f脴u#H U4J)MM(58Cd7b+}ѹna/*p^[%.ȃрcNi'YIpbز͏π}A i:[ k|KJ2u/"T?ɭK^,Z-dVQ OݯVO*fF."#qō XBqeN!'4 GBL]yq ն-|VBf#8=ZApl MTZ(D ~<]t@22_v""\͒G%"{n!7+#>xC$V9]ձ|AImMn:UTͧt^2e{gm B;fG3ke.?Cm3xU> k_!|MB_a\[JRuHA^N;y.4`hM: ,@% zoHUqnY S*OWIFJXaVEצݐV;p d5_/ LJ?_<4- u~Er)ypQa]b9: ?cjij,ڈ3uX5'Nr|;9$z\NFk?OW*{)*M }3 IJ2X2?kv4ls5WWfr^( 0ߴ} LuAI/IG_$SޔFb}ϵ(o7&WTycsU<*D%y)^n}X8m#IZN}pg Jqk"XUMp\ ˺ڱ45d ;#pW(XpVT?anCgeЫńM76WPֱ$Kq <]B1# (܏W>әI6uj7L/Kw֚H K੆QnaڮҸɵ r\gZjõd&WoAI+$y2 AdrI&%>M1&'2\ bx2"UآD=z 64OǗeT-"Nsڋ[ uRQnTd'ȸ7[o*ˋ/Fb75A0D"uJ ]_Z)nOXz2Z:m^bs@ D0t%ެplcv%C(r Pg)R0q *C uР0_Y -d XKAO-WZtnkD9y4 dʜn𤻖XX7<ؒ5&B\rK0m\yĄR"ʺx1̧7o`-Y V+w4ˑ3cd[زR!"t9 T7CLmWS&d3PrBL ߏ"%%v{E,{'<-\'/f%$ݒ}!!Yt y~q`e`36B_k`+-h%>_r]?\or/"ڬ >gw{D\9)bWOCC g$[=^{_&{ZؿuZl7>;߻hch_Uɮ4N?i;׾z=( A g > 6f5f[u)@':  7Qԩf K}:^/O+d#|`2isdu&.ޡ.Y/&[0o>`oG5qȕ;HEĢU?fQ/܊_KYYr߂iݒ8c%(x1\EHjGBRsa@-o#E諷IQDn?WQq+$NGɗJilz?Z[D8" 2qgyL2釜 8LCzDd[&+z:|K?}3-aƯaVldo}x$a^nUkytFلlT￐̑{H2uf(5ctgD˚FkN"k ev5ι1ԁ{r~;_8o uuȠwWhcXIn|CfFIG B5cʳӲһ8CX{*qNg:>ǰ [wdJaaLr^R\ܨW W*d*Oh}(sՠ~Cc\hqV X}+(/ndUg ҕ 3rzK2%c[oHW?j"=7)mG[QIO ^Vx.{5. M7<Өޞh"'& .qOvGϿR݃E7$eH,NVc7HVMuթ1d+h? Bll=}0aI-;΃A ľrXd{(|^_(g0!Rv2a}"R f3q!|\|Uduɝ^jJLʓ.f[F e: uF\J۰fH"%Z!."S6{`5Бe'!=z?כ^>he~!* $}C .77¸CAٸ r9@J}";1'8 C!LJo˜:3HKVըFp(> O׌0ވDCalM%e/>3o'?75j>C܈6CZ͋cs'ˆL;r)01Ly(NՂXUIX_>`qRLR54L^4~X=#^ X,uV1i;~*⾧ˈs \5Kǥ(nqj3§M̃.(Xck`8EȨFE-R 6L, zP{Lb̊3 *ohBL-_vtz=q"\n\Ɩ񥎋M~YfQXCwS=gq)ZnmSL׺rL[ "f%]TUʝC_ 9=0g?)fG5j7思NɩFv%#I xq?:A:iTZhPF؃CR_-?0f1dR( c2K7jϯMH5x41>/" ||6ȡD/ oL[G"Wa߳h>.tŸ4IV>l4v(lhv, m^>MwC g<dr\iAG(?Z9A{G٣C {VivTh>蜚Wv,m: i{ncz;E>P3wG~-b'V%Vӏ]+fC*697s܉j- |T(΄SmУ-pw5ǹDSI%f? ub&es%UYozOD&t疰hs?#q Mp Q{a!wFtsC ]`d )=c߾?Iri[\Y7?N(.3$)H\&k(̈́Pa&;2Gi84[ fV4ts§ 9=%1|3Ly[ ԁ#(|HW d͝#HDG c% zʑ~)lA,5U4k4 yNȪ4NR9 W#T0<<4M@VD0)+wjꮑRjC6lQ_8VY qA尝QS%k~lG&ghxU#6+\a?g?;͜,Ő&7^+4k~>QD3_d77(}eҖYLG.;|xw(mSd MHL"<| 8E)  $*@^/AB>xX?7o]%F+>A5qxIrMTUzC>clDH7rF?* /YHXջ!64?ll:;Ӌֳã N&Z"K.wYb[/J=0hb_zq>6&Sz}m\  vV~S;R&f®|_븺@q N֚?ჾZ=*3Q4ӵӥ'ϕƳڋ$DOGnHwfC󘟕/l6YfI7A͸m`Q|n}\}wn蚺67|F+n Y`'Gl4=2m"YGkR>{ӧ)+e{mj6CGe:`=WcjLmKQ"~F 0g<̗ѳC(LdL\a*_d[o^[L,+ LgqX6Yo ?k8ݹ 96KJs|2re>.*+LVHrWPzor0v{dڪ9N,"4myi|!n/V}#!~pV LBJEASԉU@Dc3R }҃g@,@XºP Ӌ 8 }a ?qPeOH\:QuA8@! - vebl(uÍ `6OTK N7>O )QIҮLjٲ|(OVG~ݩE?$62 2Б]\0h]=4 ƅ$t򮴔%C#  ]E|@4i@ ҡ$%0N9SY]03 BKXbgSvi>d m@0I_KERlnp8Cs( YPc\bR'xB1;ۃԆlpK綱9+w\Pv*#`ybOmXC҉ 㻎JUXڲQ&G~݌*m".^ ,CFqM 'fIYhj2! N|FofjvefT|B]&tgc;5(I" ~wz/x]~W֛OK)2`2;6LnB), suI{)(EBLQ9W2>YWnYE,@5-5nne )C=ˍŃ8.TqE$JL21N#wX\BPA EϒIH~ιyD"%sE8<`%N69@%Yet8 }-:Y"zph1 S;(lD+XӞB56׺=aʼ%41X4_| fP/J\#2kZ@~ke)@{A9w "8|}T(eڭsVcᯱfaT12l(#P+tF0+R;R\m7%۞E][ 8b>\ayЏ팷kҶqG!MoMΠ|*)_31,+z~0W}(#8i(3]&^>0 aaqmcݰ=:˜x p&5Z't.M$Sk'z٪Wf[++w_Of} #Bpq vmC7!=;RxiAiCӪ} ڭЛO4k…hi||Z;vpJ,8K_[WވeɽܿK-A#h a &2*B^zr{u¹^v:fCšyx;DDO*=Ԃ SP/1.اp\;dW{R"sw)t&[e źbԹ:nRG0!uHU*F3 >ŏ) q]ݚJ`xS[%i!0T<ɘE5>nB%.Z컵×!ʻ&ۘµ $[ `ݦ>b %%/*l!͕KɅ"vz M`gwM@k#t3H6iv߶>%Zbɖn8!#'8' \g@} ڥk 7uFf)|CS)AS6l-p:"ר* *K^H0z&G$5>7g_25>Y'XiVj8tA`xl;e< ldq Adqei Í4goFMYK~.h$^a0k} k<Ѵ;@s|yYD`o\]eBvxyz 5g:/\x&DRp噘F6^Y+4Y+EE6T5osJRBlyZ;nrC`g5-"|_fsv0$q+jMnSa䉓P+ȴR9<\f 04;#>1vFx~i.T5lwI|%恴A, ̢-k*j^u9G]qn2p"|2RH"gpd307HȒ;G?ۣZ6F1.lKf] + _~.I@'W3P j*7Wj9'1ek[}Y#bOե=@9#1MS)cCfZphzO[zH+jg^zg9Uvr}!5aq vDTg>נA3_.\!5Sq Zt7ƱE(;8›i6ʫ/Np>e}xWe(RCs})m;l$N ^6r :KҸe%Z tasf$Ҷ\Jl 0!kuyQ@w@J6I f>]?0]XhAu]JĔM4a _Ldw征 ], |vBğ[LW.9mR` kHJF*Qi xR'zN"w¥^U_m ]AB'!,7м(p3Oȕ"ԽFT EqIޫ[B٫<fl>/kZ)YQ@uB+ 9.o[R{ *I#X3.U*"z[as LaURWN&D !oL2X\ NԱ-5_.!PH7g vópʃ__KّA☷sܚ%F7uw4e lC÷dTR  HwV\DS"@,j9]`*rl[PGqa͵l"`@D8ަ`f댵t.KR=d=t3(Dωt4J|dɻQ 葈ijp"ZKI=x3 Ú̴.Yok]8Iq7C:GQ'@㓯]4lngOv)᪘p >'χcdhIuan2XM΅p}Q"qbwh֩6f )sp.L)|ĴJ }\Nb jf-h6`IstӛjG.6TB|$z}-;'KLB~oA}_J ,/ȓ@̡KX:kybAۭ!# 883g  N^}KTG:] mc&^y44qYD:+ a~y>X:qں_qmV»Ƽ%n{R:B;.wt1j+m.&̰:vZH@x?@؎ dԝ@駖_Ac3DŽuzvRs%z^Zճ,F6ؓ5Tn#ϯFED|Z"{YM?XZgR^vpk)^gJG~u2I֬^ 5Ŋ%1}[mp[HrddVnk8M> 7j!0K߅ rd!2ݯ^^aW["(r.=>c$ +ݻ{hҢ%]ŵ?Ud7y_+s¾GSdEC&!$Ap1x;#@b3;l#Wi-t)2/ܛdFF)~Z$mŰ%`[pdM/P?_075=w޶Sn|0Ԁ2 b["iX%YYa3A^c V}$bZծ k/>pp)r {O7|$kA"|qC J'cݩlV|{#qW'7 # 3BH{J$8h+"q^)/* *h[>&I4U)Ğ]V+Ҏ'f; T^Oj~6;pF47!hK:`%;OqVIE]l@PtYt WgP2m,bDGݾ .hEX"> p5)FM`8t'ݩwٲg͆bQ0dU"|V2F]E[28 0PS\NF!fLXJEK,;#`%oY R]hL2_MzKW@X79r/vPX!lh޸nB#ID%hk#R({/XWXlhe$0V/G1i~0BvUܮT;_$Pn돉 Xv:yXQ_pOZib^$d7ifCU>˿ץMv7JQ*J C6MQR?psOӞ {$ُJw%ZzKA N6zmlD5+r~Iгf nNLmͷ"J?]xu]S\3S-G-^uPrYMr^Quio{ܞaOXx%etYm',z .ż`% :9Ux`3mlugaĕf n#6JV9+Y5PFt){#wLBMsk??:FT01DFM}& lp2#!nI-ֿ6qj$_fiSnQIƊtoEުN"FC=KZ-p"B"+|I1lz{H ;ĉhGzj^jrL;44$IJz灤ݘk@I9L406=Ux j6c|V&6xqYzUH]W/v|`_{ qI&Ղp> up|F@@ta;l{e.?U?"m'6m.rp"@=kׇHxh'P̖8\0$I\vK$BZD>I:[ioո(unxe?` opJP$BsGKp?ɻ<࿐;<[Og8Y 8f/:",sPVM6\A_ S9:W_`]-N\7(-yUo0a  ,:5Q&5eK|A[T5蕎ļ*5@P}mg*>YeR \rvB$*؋BUS2X$18j]DJ6oQOOArY Z ַ"i i&7ڽ9&Ri!6x7dPv+tÂ92h0iT \xS:EƂB!:#` Һdx52(pɔN}$vxE`N2 F]0ugp} t|Z9ql,'9 $`SJ9BK(sC` ͒葆bp-GJ W#NcM/qpVhR&h7Z<5F]m%~`b V_`5\>kz6efoz};J(i`MTK9۷B Ǯ"—[Ԯ*6" Iʭj i >ÌEq#-#s$V0}Ay/5Y8Wb!iС w"OrPLfai+VP&*"-¡?ʣR oH0uDF٫')W NABE>{DnwI.`MrNwlYE+#\Y`kxyLqa(7qXUy^q67f*5+3]Dc-Oϋ"aX3f%G_)o0hNmwkYy/Jdz^C:g _"`ƣC[N#F@SE; fr5FP= ,=ٌRzq mg3"֪\;n6лV@)ZZ]RV\= `3H Cj+6 X4VokYn3x FTb!4^b%pȉꋁ]P?+p]ȺI71O h^[Gg7AKv_9Cfyab Vg2sH֒v?3K0IOgزx&^SeYyk$4F}3!N|~ ` ZpC{<9D 89QȵsEAD"l딤P-\1  CoBrXr#VZ_8U+i0p|R^~d1vB dZyT-WC;mg~x}T\)f{PCon|F|_'f&zU 2 }佬CrqKP{ٟΛwM])Zc K% Mݖf=!^0V˥)yKQ DhwqzbV񳕕KDiASo(^ZuNMi3C!S}|>AI.zszu#d[0!ʛ)e|l1A ;1q D+O9'mʻ!~DDn!wU+D ~ߵpasҢSjf }ޡG24[{lZ2SYe@`q⁞Y{#W-pw L7D(!(*-ĭZ4&"[C%ufa/'jpoؕ٣먻s6jpM lەl(3Oc\34%\"bv} 4XO=/Äq.vd;{H"HHĕ^E>^>Yn ?NC)鸬 ԥB8 [ p,#s:+LD v,nY=y ϲܲgˆw Le a*_eib9> ?!QtrF@XCo"seߠal9b0p/-L4`)s(ox O84 |7' P^v1~(5LCGQi7rO܆*DjX:-H;'$V. \e j6\mAk <_I)Hb EO5LjPa5 /hDgp+' '9@dq@{wҲf&7[#30nbBB{ U5l"TڌO7 n~a5X6",z[@|SCC]Ch h( z?텹-ȏK˯!S'v[;mQa{ݥqfc:Nݩ6hѺ4;0v~Qe^Y`DбB<3D#zTyuYBO0bpi:JRr*&y6G`ESw>vt쳥q΋O Rr׍)7煨*^}{A+M,21k$SB L|ruif2I /xҰw *&ia}Ӌּ?h=J Gʚ?8PQEpi<XW_懶 y@'Ax*=~ $&OĠ"mo(7jtpfpTsGo(uvkj ‰8VT+#1MJf|FY2\悋Y}߲$[kRT`aLP5`;gZݴЁkf7^ܶhҘ=lͤ<~N۴uUswVI,LlG=b|3Uh0d5g>߬EuU%6ԯ~K!'enaX$M?+,:v~"AJ*wXC>c}2Brf`:ƀaҳ.m4/葬+cL SеS=$†fKPz ԇ8y^V"lD&ܵKH,LIJH{?t^Bҭ+ګ&*18!| {ͣ\W8E2ij`ŧCUKrC-oZGIW7Qkz2 ^nU1 I^#H9}g l uʔFR) DNw5Ol-lmrޖPyJWTZene }F \֎DiVzE H*j~/YtbӺ4 ĚyEK{s$ۿȒ/d(;>1cU,֭3EA+o86y߄t_O I ` ҅V/TozJQH'ǍdG;Bbt@lzt謮xn̵58A 'mZ`ҏs'͒~1Yp7}YܝSwfZI`u \ 6?t}{[ e;;}t%URje|@rD`pGBhMR_2,gxOcxL-IRzF@V^wwEhC;m`?TNT vJK<(XWY҄z i pO^˧7fQ^Ӹ4h~`E~aZY$'o b|tRL.Loh_/8l_k[W*cIx f4Ihs?, owԓQy"'ryۚJ2 Դ tvs c&FH*Zjkے,?K3ks(SJN=gIY<Ϋn 6Q[Ź Hyv:(*\{ClU*2?)-|)/$HE/=n3s ~JV p OC_СM*a%:z0UD'O$<Q}-y)Ln70 9[rGf4"7͑Ѭ muίZZxi:n*>"A(}q+FsdC`6qPH+xq5/1#S`N60AVD'4C>O?M":Bi$2bVD3MvޘFPxXj|n9쮝]З PPPxx\םO󠝗Ԗ;Ei~y^tӕKФ$7;^q H] rD,L8@Qwd;\a]I1evqz/ysN0UTӵH駆;#ᅧg>1[uHPk<}Ć_,m?Clvur[lC>A=5iB^ "!0&( N`}60ᓦ}6փJ$;.}9)SU!zfiOX&f89&[ R5*F+G{&kSN gql]wF%`rY^K2,InP 1dEM]S\$sYyV#%7($C%_Q']>_<5 ^y!uN>?_ $4.';h9ٹڛʊ?nz d,eAru\ qp8m'=WQѲ*%ޙEx5s=b0 WW؍®3[9B#X |iB>y9HKuB+eM]O~ ܷ@⚀;lsԸV*o>k,jؘ֦-{m9Ƈs w)0 gַvgy7:*R`cא,^" 4M<‹AT@sY7eӲ@ݛ蠵W@Hsj.GX_Zp9}f˸XxŒ2-ˤ״"*PUuVֵ2 tZtcӄ\~\"y,OK=ynOl9\`ίqx;}jzpI" ,jHDu"i{==Z룬V<&jrx1}MhJ`x77.NKq"a2T6 \Nxj  O ՝oba%G1sc-"$>x|cٝ;kiA{/fwݶ&2sZ|gf2]Ca7FƼAUS++>˕Z=t]ro&Cɼ ʾV0~xhiwZU&KqX|62gŧqWBt/Ah/d?ME@jaWۜv7Ql޻rZ$Xb/W˂6T׫ooWk8jj4wIcz2Ə**fpTfhq|ltE +=g{l}zԗv3^ iB K?L1q `E%V[B d%NxWtQq#7;|Ă_[Ͼogb\GWRl 8+{t55FpMNa8"Mڿ@-2Y [%* g"R#Yjph^2ePojZ95T&n HIH3I(ss%:#A+`\Ib˃+򶷺.{.^2cAԝvȂ$njNݝiZ>n),ـ 88C> rǝ>0msM<&lYq=p=T@T(0LSUy#z~?0Afd\Ah ߸G߲ ffiC{P`u2|eV`cR7i+l/nE1D瘚۵hfS/̨]lq |AQcܵ5HgTA +YW䬆4?;+`1@:v7J1bKf޻y],A7%?G|4b}NɃ5?^ܢ/9b ];uOnN(z}vqP3wc4S|=zkRl٘mrqЀ斢c8.72UIgPr5D`u=S9\ g;]蟻K"`5pSy4yّPDcRHuN>;)0.p=^HKo:j]L95$W8/KJ$@X|Ni@K2'-*f,FTGg s~8 y }<x| nQ8i|4(&wVW/WQ |NxoOgz~|<5|*!m s?G33dU< 2] ߗ'zՓ=K7?6N0 -4+>Y_Fii>JqӣY8 g͑E.E(x0S`Kq4Qq܃|L _pp+9HJ]nfR.!1xAPnaTI W򞵉1?+d>Oxc]E2k:5myWo!t 0d, V̲PƑVuq͞xp÷7%]zB$!^5AIJslIX[ai0t#r>_V]ZDB~wfy4My" ú&NvW&O4Zp„$L"~߮%^0jW9gJDtevNS+t6[HO2Ћ;kW=z*׿V\Z-E-YӐQ+_rQsDqk8[7S }dXovs9扛p}GẘT {r+Ћˬ5J!{`غW)G> @[heFh7yZT>Diz_EIo`}b,3ɷ$,IKˆ,ĘĵIMY`cnIp~O0 |TpߗZ}ōR(gEtr p<9Pw$-\L4ӂw9jig=|Jcg/`3D& 4 %M2deя+cuМ$0OϼǒP'pB!`j9[%YYWkm\F4|;Bc "bȭO/tj U##2ICz$fr7y{c:EC0yk#m*\e8/xo "p3n9D!+:8A(+ zOrL|?˟o_?2B茙 ,øZ gJdo\BFQe,j[X@Oe Xb5#U sP^|=2Ql *[xB@Y4ڮm.=huƳg(rxt ތ*Dz"G?b!s"\Sf#. Pk' ;Qy.S@o?*3>{Dy3Oηp,m:?[MEB ~m~K5>|zjoǢ:Gi yq/[(xP.!nì(zzyu+jӗ ϪllJ pġ=`.#@2(&[OMo10W}a )Kt"Xd/m#%RԜ.؎'L\}vl@y?hoW"W(Q.;66OqiBskƏ<}{2.ahLC0ݬ\9|6;M@8ߎa,4^Ґvik:L s}lˍ{bk#F;sm 'OL?]=u`zwԅ)}_X*1#xMįD}t0RPmqeCtc$DDC}Lng!4Od@Hن ӫN 2qsCѺee r0$@=p.*rUy[9I "_fZ/zzT ^8}~x M^QW![w#٤k^^}!=ˊgX6۹~c|iY7o7.xb7-A{μH|PClz3 bssu^r4pxX6zVhA @W5`x/!W@ L_P͑ƞyj&چϘh (1@w(N,钺\Ǖ>y"L¹!;Gaæ6ܱt"jlh79/ɮg9FBcZ}0mI(v#%85HFa!QfUT%]xNwn=ᵔcS}pAGAi7t9oz lVA3qqDfkTA)~C|+ln td@aˈ}t$0sm47e8:ȚY5jxPoa8haw%ڃVwpMHyjhbxzEgF'yK^e4}*@lq(ִ%5}5yȸ2@cqesWBZ{#鼄 4!X}yE֛%'k,r?c> w5`M_D*t c13a-Covix kN^6N=,uR▖Ȼzi;.-R?eB7e*0>@dk>(OQ{ ɶTIJwYzکnlg ̖kFN,˝CFnZG}o(UN`E /ҥ}E6S+]ozQAFA.$1:6dnFaqbd[m:# v݁y4Q#ʤ)U"RC%j"Z{YX $.:CëjyQH0 qt5(F^ %e*WmEAKse Ͱ/$)>I@&( Pb|7_4.=Bߥ5;ΜnΖ|FǦ`꧐q`=|Lm@*3sHTi~TgNt"nOUͼm8 7&DvL~Sre}1Za!vن6rzBi 8v(meך"o)Iz>axIdkKd6&{ަmPtϺc0ܣסK5MH"1xbHxor*Hr^/C |U}Q5+pH[Nz oU#%ܠ;󰬩s-~޿!]n֥Dzy),c AQ*Dez9 tAё ֵkoFpIݗÊÄɳGϓ. 6:K~sD yYڽTmI '"IS s5/g0P{VrJǞ 3Mig.e3SG?dIrĨ+<=|XS#EoѾ~4n-{N\g{"3iJq i%!}9xf :]Ռ xw,=szC)iRQ!N=RL #H+LaeAH5.poጦ%d2ށ%ғ-JI+ IvIi}ʃ&4s$sKADzd߹w K -W_jf!J\;.q~/+8ژDРZj=1u,ևO*j9~LRGP73>o:V|;US}9y!%o 7A ;kXqZx-'b̰g@뤳8C:.Һ6CB 9|o͵ӧR/F)L虯ўK|=^Z'K4P< ϜKTiNԟ ԉ(i/1>/%"3\OR7qR26P&%BGpūro iOrܢyz~FOy.˾?*Bϔ\9=ZʮgEv`)uPq'if"ce ĶWl"`/jLH&$7B(ٝ@oQ_KwxAoXf` &c^$X]nWqv \l6'Fz.uHZ\O#pвZ7uJu^[*-ML ; :j I%nl駢 z H~GOJҋZ<#fꅉ)iF_W?^;m8eTƔ"Qiotnb73d@Lj͎- )_mX!g=wQouj *F׼؇,NqiR)+X"? Cfq X+&hI*,VV=IJ8m~JDf h,Auqn옆KV.A iz.pVCΒ,L=KzR 5]R}MHF48)|oU&u˿h`4ϚeۮSCxgtp"G_4}Xe?j̚Rɲ NUV r'PMmfZ@ +4C$8Cl2#;\$jB`r~ rqxsư4j.nᅟۇvǟ{)6JuႬ.L7\X3wa,fh_r},{(2-; })Q,V8gZS ЍPg0: UK~L 1Y`."&#venLOϘf)WA%x3,FPJw=?Fv;:o<.~ffKk|ByKW6?tӂCIs};}8*\vhW1 66U b,V`o)3׶-MV5R^]4)Ȇ_1t b/ǀ~}ÒCG\\rx!싉Rͨivڵ' fK5?1/h3T}@3h{n0k}bϷ5cO'}ILSFStH.ʮ kkje9:^("* _ _l;yP:nJ3yZopdŨ ?! avPؒX3Z *fVCsŽZ|$8E}U3ͣN˼{yq6Ql5:ɛ]KMX&rCdE8O@&Uc孌1\S&r{\޾'||Bёc T|h^ 3Mx-r*C;aCڦ( 6A%@g~0NilhD٥I &z4w!,lzrNWBH: `g`B+0顧ͬQ;=V =PgMIQoVA*66k7Ȩ][)Nx(PYtMH※(信Z~]ZvN?T"Lt׳Қf5[I7pE#Eyݩs=bh97027;^vyz tWg6O̐Qfb|S~= <6$h.7Fg}B6dO']63(Jdž Xc wOͅC'f;l(/E Ʃ,'ǰ&4H1tJu"v%f& m( .Pi$l`Ghjgfj'V 32G0Ln;\xz=4kS*deT`&rch˜2 du<{Rpj,Xߘ[lUN6W0kH+\!j2fuKfZDD쎜,v-ǓrOYRjzʚQx,1 srxsd ¬>5$֮yuMb܌ē7W3`^zz[U;^ C!Wm)8as[ %߶18L>O#~c(9GALavZҞ 25x['dnqBUOj$>5ﰼQc[M,4oZkҍN&Uײq`9jgh:u~g G|OlDBI?'Q(MIZ3ir>\LVXQ*{'@*̉Q4 SIU=]=N)1okoþB_CϦ|Hċ 7pDa?M)mJ@lhN"wRsBSn42-U!%>qA2{"ߔPl;N$wIQsT@mt\.+2Ͱ,MeΛ,id>2n["4mWChgvk`bRjRWHlрmr=]ЬY-/4l*(u.FYZ8`)?To?o4PzT!+%!]KYV(24Gj=Xv Hl`ϲS-Hlnș#lΪ~Z <ʭH].)۳*sܗ +CQ_3)Y{^*)`z_J=P0K>l ߭nߢ U Kv 7{H "^xH߂Z6^u3nG:qP{b\OMn*<5 ܄!*߆.b44ƙCȥXvʚHyrj#~|iyR-) p|V4}aA%^aҭtie_J.># RWl<}LauX9+J"=_F,ztPp#$s|h#,y^cY+uz(Fh1Y굖^,03ht%vch{.5>3R-GXKS 3b >"s7]ϫ;v+`YٞOtem:KfbDldF` }N3VSP66?Iq0mrr6,QE($f6;h:1IX6CD`/ )bli~3҈^Wm_.!䆗UcCaf$2^nKf"DtVS0~QE8-*fr6ױL|cyi,߅h>xT|Eeu'\XNL:,wl>.nIw! sA>;T$=˓ ]=NN=], yڠEsOˀعxňzʌpD;0v ]WX:ǡGQ@SAY}Z߾)ʳ顺g0,ԾVc_ߡXE6Q)ƙvOd֖z]= |YW&̅ȐCV w-4'̧i'rtFo0TU8s0I=%bt9c~k%K`^ObQ$XDת}}j0VQ#%yx`f{;3ZM~[ZvR mgy9ADVKghR=4FD~?"%^m(X$y&,W7R_)|Ueѳ0`wb CUR&wC.Y7N$JަrcJ)S՞y Hp ]cS;$F qښKbǓ {f/SeV!|znϵzsˢ+>A 1I~ťZ8 RNpBlPUV^913*;&e`A<ȃ27x`\zu=xӵ- y)7;$:fI،\i e-0DKOX\ 3#͞֍Pjs8; pqSINgCuG:"Uea@ᅴeO2dB)0XP+ HSMM؈փƱACj'&}*gm!N7`Á 7Lw0iSN}OIEj၆B5]dţ8i,-x׺> U|16EH,E&Y>~p 7( IZAYWxMB\g0D2uERwna*XG{^@Ax!Ml]P-3b -x&=~H-!Nu./6 ԩCM, Z`<8ٵNRa:J UJz)ǺŒ r0wW n %i٣a$,Jgi>uNW}Ǘ=YIob@FOWq ':F 4]S,MR(NUS-QlCE.  Vsʗ/xl\_tFzAZd(qu&c/7D ?.}zN =Sjn,^OGkxPt)_~>Kv[h ܟz *+HLh9 swrNOQ=PB(ŏ= & |y(YѫY^Y,),AauR9*ޠϟ Q"5$oJf(,^m@́HGMs PƟf[@h6ϳw˹4V lJ%'^~v )SSLG,~[yROжu) Ɩ@fg7$5FwDt-s̯= _Mn3.wIܸ]y$ Y>"ClBN~!Ay6m iH$P^t{nh_rUDa+CLkDcȭSb\Xa]ۮlDAD +O52(:LV.{}<>%O"ś&VcEF TMPO836bFQًhfO8Qba!UBv<YNvR Q}e좴1%:{A?Ťg_+Aݘ 9aZc.ꗢc27 U 獽03zJ^)7'BOxm,]@K= Џn[ѶdޯU-T3խq迣PH0S%v)H@t(ɮy^U)h"]0}XXvZ/2jK T Ai8$SSP-N]=黱:{=!cg @@|W: -VZ#z~"K ~<8h.a !tg;;Z#{a 'Dt#rZ|.5:S+Y9q&a*D.HHe}>}l$߉(!e^8^wh]Zc@bzd{Ko>eۺ⒫C_{ x2쀫 :fܨ7kYz΋h8X> P=RJ.PRj\=0*FIj} } RC,((GZnU_pOh yYװ)?4RX@Ei zk>X{WJi&N$ռ j&& e;PlRx]t:0x7\1*. 8PЁ[I@=u~wx~Á[O#˧U`EQ)Azje.?u%EC7rbkig59{죽WNfG4D?(`= 2a|,Ǝ^V Ņ1DH݆Ġ:i,S~0Fil0WDms B0,X)<}-d`A[㐐ʊf|DՍPCFXbNDz<:p3Pt@--Ơу-PXֳ}sL!=߈klK"sc0OR(nmZ n{3tG'lFhvIHI;,vuԖ /!_ND5=[&OyzQQ}Uh5CÌWn!P/(nJсNMdWxfV4Ii#e҇hL"i6R OleF}4߁ePPnݞ6;f9)NaWz (3+bԯPmiq뼳JO]-DTrN 61\g0Mg$8qf^ j"BMBIo_K {d0SCGj8-Oe?3ArgԨU"^ ެV7 0`6'C7pC@MB@E8AҠZ01 ^;\=Hfl 'funQP*U[&UKakЀJ1G%HM)UuqNz`OxH:kXm)ՎZ'lk,E.6KE"uiM2]}ua ^qȏ#o;Ć{;{Uf83B$cJ ˡffָ@mE~GbjY 8uZH$q $$@'9Z$P,MQ7=FYN2QJO?~0>r1Nu1-KIAx;9s>D P{qW& I |!VLŲ,{e*fR-:z:܃1_C{;47Rv߁ʒC[\ ø&SuI$zNJ5!wF0DcFrhOUy#iyhP+/2rk=cvr_\z3|;# ҒʛC{'wk"QL+Wp~mwe6헍[@B1{NIdF#>]^X|qDGS%mSBV4/g&܌O`u "  x$q HFSKeTPy:P4LjwOHN%}n(zO"0 e3jP? 'Oڼi2I3fc@ w4'p͟#՝p uH.S[Y0Lϻ]()m†(u솲絯yVZeʮsS瑥c_|1K|4?yLU~bHc|{0Վ2=1)Txfr2h;B 0Uy|{e j, ת8*] C{ھBGcQKO%M T/)qR|ގqs@Awy\$ iWHcWkTalM8'z!1t`{5S,E/N^)|?78wV7VnZgǶ`ͼW@I~)]ΡSw-7[pS0n7_Yϫ$\mzrh3M45c/wz$v}H~2ju5UMh.o]=نS50Kxmwcg?'a;^|% ~LQXӧlB_J6KCZ*<]]\ܩ }ے+8'ôb4l}J9j D6Z༆FjR uRoKMЖSR Wc7Nkh ݍq\-5 ?7# Sm.ã*uN "9 p t{_j?}a8ӧ4 >7:^͹k[B֓#QrL8,3Zi 8u sِ4 ^dmcB\ٯתR*)NERAMհ7M?ܭYBO$~ dwց/18Gᑨі9 `B4lEwBLnof 0c{g S(]xfQ}dB|Fl T-UXT`vT9+^Ѽ:Bbk l  w Xn[;f>X:r=jB9{mT;B>7,+vA$=6H!M0 ^V&3c ~e+ţ46)~҇!RHdr+ewS^ÿUˊP}T`;^ZD{AQ Ox@b[p ϳp16W]y?WL(@wv! q.5 />`/`Bj#to?y.1ƕ1LkLݵj``i=ТJg/lzLJ^>.rO2ͱ bxƎYqVG!5n81 =ԭNXPc 4W!ev(B{96>E+{hu6|N4U*hԌ8?e <|tn(l6޿TyՃ]`njnx%`:W%14PS~{ ctc4[olO>73 <%[{LDE"_ob 5qFRmw`uE͓L@lN?F]bzumLI&8MQ,%dw_w8q H- Xq FT_(gdu蟊>Y){*,M,O%a˾.lʋK= X5"TnEJ08Dhy߽VW-NY=l7 a&fڸsёl9A$< >#އ(h̅j%y b&XEثc+Q5^χ?#Bo*jX/)L/ /Q5iב^[2%R>}AiPPQݺ^NʒcM%>Q\*e*HU.Bj9߷҆jCvJ%jK 3PqeJZTL\JK}g =/Œ|5n }xuGt6]UKA+~PU>MK[no̸2$z M 9b R y J$28 [Gh-7; y6\~I;djf@NvP|7〹]7[>?k)|QYpm\Jlzj3ǩ .װqD{$6 6ݦhuhs"b-+@S8)SMA' d\+lVW%A{(^n> 9SiG#Cګ2 q_7C wRE Yőgh$.HM]+ qZ@ŚW^ eG.'tu^g`v_m'#w8%1 ~{zs4211Ȝ]t[산tR{ | $onpO kOJD'w3ǃ+o'w.cu`e3M`8DuRA8edhae񛛊6!1℮Ц qW~(%|qY̐+I9Љ' )olDOL;(DߘMmȠ%~%K3n.oE@x7qf3.!gĴ{򈀟U}<ŒdvgcGO*&cK\PCf 8u.JN=cCLsq g_y |+um{:U Lݧf$ghU+ْ}W*ĈEIkc*pxyQ0#eTz_2.=rl\D{]t:]:3ǧuv)$J%W݉@<`6D_1oUN ysWJQY|N?G]h|$wA얔l|V=f]8vpaZm kxN5.VLU cMg/N8S]dEr?zDL66Ǘlp"o.~=eo6RITJ'vi*@t\`R'BhK߃IBq g[oQd+W/Rμ~_Y80 V AkäYG`Lgi1 (+֪tOnf"6z*38Ih1r$ 3]Zm#tHEd1C74e~۰;jO93;[N^0yfU D躼/ë)IuxB?RZe V-þH 7l=6q!G74Qش,!/[sy;bO>f/tR#HЮ&cxkPAՔ;H/X6xo*s*_w?@XqyFyrݵVӈhf%ܞ[uu58aGqO%qYS0|. {.],IXڠvy!Apu1qTa.lhٍ'LxCz(dYcǜ`IGR>$N`x9h%Że4OҫS=+|Oh^I ]bОLl&23ӿXҷ ~8 ҪFr"i,Mw~C$+øCuˤbs5֫A%R+'"4'$7:0K>(;" ^tY'.!{F$X:LĔ<}XZ_њаt |ϝQHd.$=jfJ+G .z 5&HGDV gk~3RFkhRt;\%S,b)pJI/q=b?n^=SkCju?BS˳f!ca2X!(6[;!5P:`&[S6; &3V%g9ת*;(Q!F>]Q%EA, "E!(tyTѭ<kA't U2x:@?3%K xP Cf kxCȟ6ᔛP6b?2$litO" < eu1f]iwuY٧HJS~"i6i"e?<+gf !8qȱt8Y\Dne__yWU}%PM%s,' 2#1liy\<0,nBycfO'21=ĺ-D&9UȽ敕٣O1O!@wm1R,p~̿ν~vd,tz!ywlθ;q_3/8;yoxiŊؕSeBݟpXDlc#A+L#2G\$hU+xkMЙqH$V5J&WX&hkZg2OQ;1溌E$4_0ؿkl[Dv6rnކ!Ds 쑚,Ɛ}/Ӆ;=s(GfZ *:xW1OA/E._>#8 meJpxf0V5zm61llN1=p P e~IYJQу|wQA&nD{{hƔ1 V˲Q̓raΌwQ5x{ncE0Pu!f*9w;{34 Nk"]# 񞉌cR9 XMj7D[i7zD@n.xTi[&G8`oh*>De g7e}'28GIuL= |{֞Q3.FXu4IY @?HKYDH_qI;؎{jePs5LZț; lLo3l+Ɂ㑀p˭z4\@x*65lnT, !ì [3XR#nOCeܣcq W> Ei&?nq`#KUosyFvd;Y>>5Rm3#b h֖5XZ"qiE#sЪ /m0AUD[զI obf9V,f|x0ŗg}ۚ}M*##QOHǒUhz/O7Ŷ++wa'Iv"ݪ=.43W 'k$mA\?JA #Ĩt@l IPaH##EӆG_\;*JqH%kUih[1aq3 bNdMڧ6Zq== >jwbV3{2:Vc+G$ѾRŀp?Ȗ6]a0RE,&yKR' e0W,VcF"O}B8гfjEY\U 8B=X SVǤ0@FyZ Dʰ5ieS h2כޑhDmtt*V}QB41܈4Jh jKr͋:6TfԳbPokѸŒl<%G?C# WZzu*mp@6-JAQWUjbt?U>WHΡ{V ĩ%BC5ҝ8 Sc"*̮SQ ;+SSo-(Տ9Bf?3DvSxQ` T_jfKFnUR:kʹE=Ä́CmF. Վ6lfU`T90]^ضkJ <2"k/8X?7(e]jUwzߋkA!rf {FlFG bU Kn62Z <4v`5%]W^}N֧s}T`C@Q붐xRPZS:ҒM1IyմHGێ/l#\-Q#t]ȶP>yגK"w dӍx5 DX>yGC`x- wcZ^ ҌhZ8uV  "qV5`}S!ҫ4aP|4+ o&x ?oH {}X3Q?TrÿY]xFH k"}'LME8pȲD2wf$`}a5 eS t4mR/CdVI`\R?e:f96ppSEƺ\ ~EcYU7l|Y޿g3;EpjSfgDjR;='M0)t(6p֙A0׷>m6HNEFl]<+QbcDJ8I=xƛgnp7ڄf8!O!c*)uݑ{Я[Ew:S#eN_j(n9 ?Wޖ /,I.=?wcۼMxBs0\#Ohl䞦ֺge4̬ zK$绻rFu"- F%|i/;G3Z#O8TOv;'Y2GxB:yPǫ/;e'f;3!Jadϝ乣1`bӞA/$ :3E1_j+#N:KG?}2Wuw`܈casDW(QzgM!̼"!RA\DсƂEX~(,Fr+ߑKMo}Ma 5,4#el!-xG{ڮ0 {Oo[3Va`+_Bhxqr*~<Ӆ0Ň>L~u hEXv/vf7W@ A-0»3MOE[&sE9PF'EV CP$e6T EGդ }ޤ$-ֶuV$&;RA ;~:MHk6{`DOc!#&,2}ōcۈ2,?Z3l' #'?8-<Sp{4aHnsxZrElej]@#^ŊЊl-If ,4K`{ مHq{_51~HviGK'WpW7s}v譕H]?MEbZдF"[+ uy]GH HJ}q*֥_2f&$-co,Q;6'+x9eبO "0LҊ&D=pAQq q^; ]4n`5|s,5҉ F,Q[ρ4þxCRwڌ.oL- 1cZa P\^u6xrFaZL5s^`|#g 5l(mh5UJ$ m^lը//9hy, ?k/MCtu%YA K!Ӎ@TabTZ?1df@ad{ۣh=oa_*o_3X|4{}y{Wڍ/xYl&eXH_ۘ P߱ldXw SUKXC"/iVEoXwx TY$%+ p^b6qp݀*~Q>㥿gD3)f+0^e32޽GEBc$$fwаˍky#䶎(.|>s5L]d=4ZVuqE)_=wT.Mր9xus 9M޶f,JeKc&$H//"Bu嗈 t )bǸa[H1YV4NG bYqFW*ܲuK}5̄sp=ﻺSvN gQOϘxn/P<:%^CAdri#R?ueN$Lf9!2S̍&j1ܵ`LtGB3]&)cWҒs#Gžڄc8^z؈Wr- IH@XEs20+>PU`y 3X[m%<&$ʴ@q#: gy-D] 2 ..X|2yx/;d^uIo a.rޱIyY$j KO񵴔 1&Pva!+Ӑ=Fqr?+H."|Q LZ[- z)HohCC~ w#/J bɹF7R\)=kB)0/lcҝՏ>ZcԫNIdh] MUJB0ЧLg ` sXnޙMWjFi7^*Oa_}:kdzgTeGnx+-[TjzgpL~P}HzfS S!+|o\-D8}o^xp+2 F`!r; # ֡/%L&ad2+hi/G܃}p'4,|&.̎hCf,תմڧIykf$ DI17$ S ښٹhN 8Z^()GW?D돭2B SD^K5W"y,՞ [\HJ(BPSVcW%PC[Ӹ@%&iZ2N+)bp2J̡FGnEy4߶S׽=U X{7SY&s +wղld㴅@@My Oud2{VvX@Mڨ^kj5|Lœբ +ƈF" }>2c3{sҞon2ĥ[Srw뵌GJC6;oY)uVw25|=:Kvs!h cqɰBWMvFįʍ=&gz#d.k[ :\~7*h*pgB͜Kh! #O#q`[}~`Z.b7j%H cـ;Kc}I9TI#N;yűa<9q6PX![1q^*b+'VXɟt7B$zLŸl£ WR#YwӄܨPL~U3D[{9c˽,msU]%ϱCد8 ®# ::cɠ^*k2أ8:#5d!~lz ,f'L6]ۍ(N*M_7R\I=TL69q$CJ0@6Bӓ 7J?Dsn,<MԪңKuPz|ZԃIPT%krgl^oy绱"LmL_txQdy g+P 3g7}hpc!~@c7s'!f89JD>(bL0H,Z5[GFNL¦_- סK$rM#Bݯm6$3zYwAZ5 $[5$04-̱9wZ{߁}χ##؉ٕZb_wPI5^n"h^`(_Tv>}zfVcIySAG%c-dT+lQC[woꃘb5t-PEBi:<$vmuaXs -wv$ՈYp)EO[i-38pd L@f8m|E$H)&\R6y5ccj ^#b+E̊ؓmەTV6 ]|NgF;{3-%Zc GV(u 865 ;gK!#诫Xy>+£/$ ΑZB~gk;8wo`zn E{Xq*g J:a}:&: A^d6Zk}JG4 3Mh6遥,3"|/ lP(^ojse޳vV Y'0EX@Džr[K$Rhɉj2>~IF0"l+@hcdL  s`8*_G_Ы;(1Q6Yn+\h2bӁTdl.Nm XĖmsnV]Nm<Ϙ͟3BK{+VoWaQv[0w)l K`6:z߯eUDpE&x{V o8-ؙ&"Lac9q2ډjnT#24d]/_mNqx2{"2e:5lyHe=e|R:X0TԽc+JUj#y!fDu;%8_*m4-ΥZE`7]IM'Ŏw%2׉>JW/FqsƶޣCt>4`FẙZjunt쾛|EIS `Ƽe VNxyI^XLR+BS$VQUblY_Z8ZР5KS,kk =OCTu> Jrf.1ؗt\6&:gQ|GX2*Ⱥ:lm NIPFi5uD)KgA(sW˕-[/WsQ@~kHTNkcWא0tm=ыH2UDQaϯsS[e"|`WΪNX4^lyuO+@SThG KSf˫ LHoʠ%#J++ydLqStN:Tg7Gp5UH7_j* a$Ta)ԫ+XOӄ//Ai̮^X 2s'1 Y*ީta:硇I2"r"$l'yaK.r29'j^}=:M?U "@1nymzo-7O"X;ޯgy#{< %OEkTPab*ZMwZFA,HD7"\gSn`o!w?ղ{wrau@tH8]vEubVx7k; sK;%7BökZV ֭#`h gr uK2xt @Ew?(Ė6DŽM te Ϗ!ReEt_;8NJ~׭;dYsXZsF0\_DV:a0Nဤ7ͻOF=u&t)QKa`~k#M \EY&p'jf:ەZi?= ֮dNBg sa$V d9v#~6/*Z34|yB)wˆ+z]IH='qi Dl73ZEyufT@3Kh%_Ey\%3,x @uւZ NŠY A^n",6DKK1YIԼPj3>΃_ZF[ݠֹ@G鱉dA#`Aǚe*46'(%8НIt1f䥅 [a^.S2(G#kO7oMo ~^hі=s7}rjj]DJ|JC-ם9᜕KQu]_>:2q.~'<3(pM!YݦGZ0Qb78Wۤ3AxH=x[xYΙ.ײLhlcJ8iR7 T>C&9,IQpO-n$hs}Q_e[DcЂ{.T(*g-x<,ww7 sX똒-GRS~z)tP׏UEz`gm4Co9p $ A%Pdnd(al("K\a`v3?%&Z0iZDQ޶⬴I({){8#ub<}6^Ksa0CٗQ^kd')\g*Un3uzN>:zf%oˏv-R;-&0hfqG >n_8k*wO6 hl -L[⸀(%\ӒTCa0{J,>qa$Џc|ϿRAlH'|N4ך{WpXSs$/pvX. D^rX߼Iqfx Gn}.nPzB'GZc_9jHSl]Xzȩ(4ww7d#jølE A0VqʺXnr'ی6b9޸+N7vcfW1'_)]vϲt(QZsH"`z|#- ڭm)d39rΌbʞ| A?9euE&mW(tL Uz5{h~l6&Ǐ=qhlʄ弎/]=x^65to^(TA>Yogy+3" \b]J:-KfdMSu~NLWj8IaY})ON@i.-1}uKfwyhs9TXfil-E.s8R nP!qk|?f!"A'nj9d7/8"v"z?f3.,k߱ &EQItvk&"%B@DvN(X+M,Ƒ.$b[ BwJpp`b͊B%R*Qd]Y%\ol„>Ervqq'w\ 2Z(a;`#R,;f{uIUN _SPȶYC\5k 2AtG26KncVP* ؆Y9!YEh/WD_yi'2Y6CvmYжs꒬TF>pA69IK1@vTFc^Jg0~m l'â"D, ,3gdֆbYEaeV"В% -SmS i̜%$h5*׆\O]ey $/6,Ea?17k%埒^IL&ࠝVC\yS/]S웛Z-li.^FHU آ cqp]oCPOJKPJ'+m9H;dA`I|´fw,8ƱmM $wJ,:MEHִ}x)[V MUloPJ˿)0浔,vxy^SG%QLv}t 澞f[oxE?{|tJo([}|ý1cBK5 4+bV'/|n+`mόN&I*Qw℀OkgWǤlg1ڑesJװi IS`@4ZN/zLZ>jA^[8_m(=M8)GĘ-md)zDɅ/n.e@sH!"@,Ֆ55ugǓ!l;4f w*M͜Q C6*CGce::Ql@Likk',\ґD=R,hO9gLv2:v;|D߁U+KxL*^? Q6bA%oќ1!q}BgzPO\ @s-"&w! S>Wꋓ!Sw"لm6w6&|dGK2G,-Kўw~X]XK[2ꋋFH ~/]>kםP/"{s6piM,OϷac^ k %obۙ'Z4x@4t "ygKN=Dr8j5k)=Ɔ1z}n;@{V2F¥ 0ۧMU=~D-JH+O$ZHJ]W@Fx6}?2ԽUΪ 459Mf92%2 Ru5f5gO"ŮVZ7W5"d 4zuZe=U$72nqdr Qy6VaV=GǞnpl~Zpcz4s15#EȑLV!s!Kifb~>@#Y5g0 `a-;QY.^V3Sŀrl&=8}%$Is!-/DѺ>j_~̦O;mbK+0mD3hvFȪ>6:6ѐ:0wnxVZo1F4 .3RP3HMUR. Fb= ~8cOp˭)LΦK3 KMZUAXiؾhʳIšEʰ7Rh@bMw8Kha+pʟLrڥ05ݼe$9OѓV~CQ3ZבH88k]3h 9Hxri^&OE!#.POGeփC/QPCa>[탉3UwA \}h|N)XGK~D9eO %U[ϞI= Y=y[(gD'F}l{<,c7gdU_!p{tw6RBC|!1H䟽{eE3g$LSr\kTl0#{@D7z,9HopN^wD< (*@ڡ0Vɤ$9HK H$FO<+q:|ޕK4̊#%Ni&.)+G*8kF5cG垱T'8&r vRɴON֊X햷-{Hw6T%9)YBS"@ D ˜ea嘋dhw!kW#Awd/6 w=^yM#z.,sR+m?>1؁id7xQ%䫝waF%J B] iSFS0B*+5).ԘϱD:Z% &g}] -j=5DR.:&6CԬѪ_'*3pscr. gm?G0#mtKŝP[j(+^Na>X>~$8T_7=brD`oX3׭\Xw|n:]'VD#'N/^G X7.^VJ@`)3]s'oM6x0J1? NBKC8D$\̍re#f |4r3nKǾ^ϭFKcUOLWxX (NJ:'"2AYXCfd!)݉0s `WZIvwhJ/&FB Ÿ1S~wNj~\YD;.?"sW_4GvJŠ,}^է^*j}?v$fmp{/9ZFo2R 9<3ϰQַ8jsI$dlpze(; ~t =ib)WO_a}o{ BO+kH  9.ypBG4@J--,Yx@rQ8PZfwu<mP11jrJ0ś Fwcc1r.06 - ӀC{ONF*mҩc8?zlIފ6^MtCXN#t?yA5SjjxEoe#rdՃyL{q౔Ov U[H Bwb׿S޲J$" :I6_ v{\qmk-#ԥ%pHb^wI`Rk8$ #Ajmg,^o87~$^3Q `Ky~?')CD%6aK]`0{(KnXlfrCYdkጘΉj ]7UJk`vc]>#Ë*&e\Li5it h7fnCCI#݊lq(sC f-U0OI {_A gG\)t6Z~.ڊQ&QrEsʐf[+R8N43 1C|E%IYI17!tOUBPѹ膶 aIBLw8r kXi*,=vY8%& DB` rڐ>e5[EˤK*uIUWd㈺JY [Ui4Di{Vݨ;b^5mP 8xZ/ IS4.@A;"7|߉Ja`y T7`up6/zNroh}=0h]"=EoC4(b־6p`5Z|y @ޚ2HFM\҉񖡐80|opĶ+jn^D4BpO Jhe L(ΒP"Ou[R(. n%Hlמ6\TCQy\|) IP1AjV5(')bj(L-V?hP{Ë1ghqDU3#0@#=*8s u4ȟ:AԙK )qCJF⣟;7kAI+jCqRWnM^41;ISQXo>\>,ڟ$njLEFu0ӣO3(IȹkH>/<+IZΈroX K#y0f2-ic/C5޷5\QO/,ڢ=Hq62qTkS3/T憴kFV3E/(]?z.֫ lsM-UgA#^dы]7VSiP J@82#( Y˲T7^ٰ,0Ȑ -jm*85ÐH÷ft&Z0Sٓ\y:rӜz<X_VHf>G{{Si/Y:\ ,?bv^&pTw( t~Hp|NF*䘒; / e F5tW)& 󦚎޶ e s%m^Sć 8~ Xzlbn:c)L OPO't"alYĤ~: O d B˂(>^>)!&ԃ0|"րIqOV.tGGi%R#6_.5V̤~=,V y\<|n_qUX#5U# V@͵"o[ 2،3axnZ,Ea:q- c)W:3t~'!"i}bGGiReB Gayt! P0?F]MJ?-t|>/~gb|&ߡ?7@z%’SɀxGo74DgF#f)M>!nɼD<Ɛ{TԢ$} Pz>@SY:8[37c:C=kɫθp)1fC$46 !X׳3Nz3O+LP9a]&gbOHq*&hl;>8NdߵXGΒ͒_.@CQL3/JQ-j}I"`raŢldxE(4|:;B㣫>; 5Qm [_EqIwuh-g=BNq/H߳\7◛>/"]yThyC(u }`!cTho$ylÝI9X5=y6KQ$y/!f6D_44 |bY/+K`8|7ߑ[ @;$6VF-J <+|#O-!uq8}!z˻b^~"Cd:?~䘓+De׋'0A PA-7y?,]K 7߄33O) m x)p&ȷƊ9q8?vu$dG/H|gYvJy=$%#3zp[ 4b;U7_I8qgf?]XMbG %<>4"#Ti=!]4= 7zo38MW[~yǣ Ϸ;9 lb_n.l0xNN eI{h\š~h Kg7U nJZnRnHm|x-C8{,aicB Gn q8X_SlsbJLu] F0 q:կWO35qpޣfJ&&UVjS;΋yCrLCuJ j23J@l &(H?$%5$!$pmyNR'䋶}~xi(+jFo=r@ q):oG^'(꜐׈Mh0Tu>^ڶ*+(Ű<&j]hb"Apԧ;/K"ɛ;ˢOVI; $/tPIV{J E>/l#d9פW(CA&cH *2ED,"K.ZV7iONgŰiiɼ?`w˾yx w 'kَ@5}KDn[ϫ(M0$w)k)]ͳo*gOX5kԚ>H$-0Ջ "]A_[8?"Aփ HWHq{g.Lx;> aBvj  T4ǁV_-M^ȿ@=aKdHk~aN($N[(%Q[4bҁ=09(JVaW8W8ڥe ލ'3eÖ]06k Cy=R$Cֆףa)Vv$N]SK3CBFiR]ē 2⑏Q{䠨F#-1@Vlu=zѹXx]j[3b:nQ}h,֐[DZ*ލ#znaŹج*#pLK$[wLp@(w0c4?oHc= o6O;I/ΓٱCF niK?|#we@T=DclTy ݼ?'I86:Lyˡ[}q׀ 8Fi߲i:ZU*&^?smUt\QX|pE'|rMaVc*HNk ;~\X],]N7:Nձ.r*YǬ[kKU9= L!aޯq_sۻkn)\IP+dq bKď&of8T"XZ8:U" $Z +U>:#&ZQdTC4}ޱWVsQQ;/ uz *]NQrdJ[h,Ru /sLlЗf/8q@o6Ά|u<JGEqFNի9{hn斸ԥ %J̢on0y@uE W{-SP1څ+5!9`SN/xnZiujH$k>K&ZA\9bw[3;L/03g3vld=2y(2x ʂ8T{í24zC3L‹J)sI ;p`@LO'xcvrW:^F(lS]aY-̨w4.xv 櫠>̃6Xۍ5])ף@>)%Wrؤz&;-\ Bdi.҉HՠsXPeK(:3tTVtjzUȤ3ܰ =Mq-;Lhp6#MڠP }v,+N6_dLhHLۆZ_"F/XzQ=;!j1C|$,MjRMdcyL Ϲ t>Y@[8Ͻ,?JS7Z0KSrZڝRvh>@+ qfaCvS}Z$7B9#Ό_C hX&ۈDqa̷Kx* \# ٣/v?)dd,r%IIϭ-Uu.ЅMt]mrv%fWa u.YLd"1š\>+=֯_-\0h|H z²>}N"9nPN(@'SstL/7$sGM⒎HY:=%6yJ  \vmPSB7#KFOBۼc*(*›ց%\5ą 5N~xxޤIJTњmRŋ cn{dk?p̉` U/6pM\X1v;۝tGB3ݖ_aC=2]CaJXWh!{ݡ )̺ǺSfD4Y|kŰQ':RtR׼K#fmgu5s!]rh2Qqh$]9B`^pj{[!.H"59QXs8v#Q֙ ~!>5bS0EHA֖!*yH՚JtrQ~@$ d]2 ^mR\ ~#sSEERMҢqu>&V&fkq 6zt:H۩9µ͞Vfa٤YEn[!‡z֔ V/*˗Vl|‡H/6kBAgyϽ1Mh?_ 2Ek)qb؂b(B05|5 ҦqWFs o5Ċ͕+`MDo(3sYV d N`fvD:O=އqCʵ1 Dp5;.0v\Ov{+qd(ő@~:D AW'VTi=L@h9vQw `v-aX4 at<䪢:#?Y Bh$L:D2]IyOS%p#ϗ0VTr̔{ͲFilf"}? gdi==߰ hd8{1-+S#>'n5R%LY# v`xL3TT-x4ߥ"|3oNS>=CWΒd䊸ZtVvߏ"$qB#SN|kڒ[yE#f#^p ~+x>Fsd>X7"gE9*_L TcY;>$Dόm䤄.da)Hbp~1 %ПJE΂m*ߏEF p:H1J_<#,n}W( jҒ ' _ms/jrл289@ ";k eFX wG-aOq΢4v@u$ѣ:qؗѴ7QVr%Z/vinlfg.+Rٴ_:0!Me$ϺceUZsE߸Ԇ@LZbO1L\J@-AaD4w TKXZ~>Mx"2 : + _-/H9 CG/6."%W> 6BxMG%'3~,ݺvcމ셎 o\(BۉB!h2tFW.ڵ~cHK@Õm7W&&s|pɦTǛ%P`TɸvhUC5bpyڽv j]=$zU#ESYCh6tLy5i2-!lUpbdD<S2I a":NoNQ]5;,>׀8\$ !{~ ~GӁvi23k0zX!mڼXE\ktҰ{).t8Gs0ޙ+2EBj1U} )&;^`v:$h>n%,OVVZF}YTN&i#=ݛ׏>4YF17DI5yšqO\<~(11u}S.m=@G9_[T[߅l T$cΖY/mCӇkL](#0]=Yv>Q݃l%O\|E}*t5x_B e~E8ll3+x!<`_D f8waSSdo$ϥ q}z} Ab҃&!0ɏM ~1I.>Z9Sw @ 0b5u:a8yq8OdE'<O6<.tRbK4KP^$T,w< p-Ҟg ^GnezEK^u}Ѷc:p zeE̍yZ[ @O;nfRn#KhUxO M z^NwL+Pnu6D*taMqslJP`8]rS;pGQtlr^ܗa `ܥ}|/5T@nVc_W7nbG]tP@NLc8mle:JRP,R5J`({wӚ0VNl _0값NH eh&9P`\;X#ڬ5Yixfquw &(.E1&GtJ) YfNݧ JY SRe ު$ X^h٥'rנgj.UA)G CZ%*kji<$Nm[،U7|֗1zi$Zo{/Oz vq~HZЌ(D6`֐IbAcs5\Ȟmd ijv=^m뿿'J|{A{}^l_夂=]ڬE},_ aw#Va!6B`-"Bbj.t:.YA 25Yj`s!YJ=z-`@ĴxXQukOV+l EY,I R0quϚ]-2ms.51A>iL+Ub<_ %A〘 5(X 6Ub8L0 t-QII?xsy[n(׎51_G3C=ƃ<#hNx֫e_\,1oښ1XD38$[ɱ!K[П%{Yd@YP12h1y$Z`bxrhr^I$P{&E =Fd'YKgOe#͎B,Ѧ*/Xdx,=x nY(%%\ Wu BוҔ;)mkfoԊtPe:k9!m|-^\5"¢y?dzx1W>2ƀf Zk&y܀FXj5[+j)b*@jnTb@,Nᱚ:@L)fvpDꊒwǜ(t1w#+gT6e#`Aov9v"‘B).g!z83&VsU~jǯ( Gmu5 3"۔~t[x.%::qD3jӿ6^60v4iX3G!Mr'PN4JuG](F5 v FC˥W8tG~`0`  pYǓ.E_g[RqFR|!vuZz{P2'p6M6^]Yxd]rExӲh?L %֬[nTn:8ڡv7DC [@hqTҮZİCrOHPL ^n=+x/#0ekYňzT_fYژ!T#:MS J6hhY `TE9@pW{VB=y+I¶mo=99 qRZq兢SSG"6q(/D?]A6͝cbu.abύ"]j(뇰_BZHcހ U[F_BxC m(3I jL,2fҶZB13ÉuXɒ`E=B)>1fnH= M 2JfpnnӍ|+<4{KO)ś$2Xb265y7li~1G!/ @"z{Nv(U,~$$Ǿ0ĹGuRNl:.ȉr(oX"3W nL]LjO fPOtɍ!ȅ@QǀܲTڠ UlN|]qrucHU+-і FiWQniI%@_[pItj冣1m~q_P~t ^X![&[(':/h"eFϰnôE\fnfUdŢ,?1mU ('P(`N.n-M1@rOV[ii'+VD| /l퓭.`N@?bsvޢ~x-OF)` } _HHC R"~~aJo@<cLFu`:~KNЪJ52I1ظ ;FJgZw"(f݋6Ё%p Jt#LD619 [_w3 f[ߋ&POߒQ0H(9s+t|76LIgC#c:@cviOj.lG 4`&]16f֯8븯>n׫oD M vqW 1 " @9wDf:,;2 (yIARTyVq"bRpcاCdb̳ w@S1XEMjT5 u& ҩ\ܲc}QE\`Kܚ\-l}Ha`MQ ^!Xc $@iV \Qܭ$\fdn-A|\1VrRmҚ1Ec9:2*d[RDW+y,q|*ԸV9HgxTg͋pCĉ4Qz$Ns4oɀ! Y%3n6m:"p@.oQ$ԎRpbܧBzӼeE"~RND f%iA2{m@]bM JR锭p\}w C^i0wb{sx2~\n`b>*Қ )ڱn wC֟'{FFBy'PIvma=  % ?765J}B^{*5~iQ|]I37w~5P+~#6,(@}CQM *~x@f&1ᠶw bL1GN6iBY"p]էTc8hσ#..su+7 OfF[6%KKJ| /aڎ€jNٽ7@E(ܴ$%kqBF,ÌÑbuqƽە2 ZIވڼ|H|'Nb o5ﶋ&bK`!IY >j%XqndZ gETJE -N &n_#Hf^=~_؈h DWB}$OvTaTh{i'8^~ݑ1J8;MUUhIzX2܈XT&T(ii]Bu{#+=%I0GҲ|) c,Q(OS׶'H&kkhR2 ="8EB b FSMucڌNM-`&RĐ'Erd> ՀtCQ:{9ȠAНC6C~;OF]+<eɎ8 ? N2Hknt'W4|>FckG&Y ]P!hHe3l[̝IaH!?kw{$0xقG?zW =t&SShhPFՌ ☏l4@xSLZdW~k_3ގZKB28J~-òT`f"b?7x3~MS&4D`^aTQ-Ť {/ו4[S+'lj؝09Oawش 8&WAMKOxPi3ZkF5ax%/FHԵخ}Բh! b^&M}'yEdf"ɸu(PEX8Gry#7K8aˀav$ǑxJ%g$ujy}IKTz>_]oJrR'kKpWzmaZ`k.Fw Pp}ªܽv:5b{+W &-R<]!* ?Bgo˙v! 1{`-2RDDjW9]{E1SHT, nae +bGR OECZEEn=!`\q"AyK+IRIP;Z#=Z'sUv77&WsL QOa0Dwn&"Hnl8?(hL58_rd{*CnbeEihɦ{G2FVj~Utyg骕iS6#h㡴Q[2T_ht7roNvi(fߎX9i`H緍 KF#pOa="kVU ?F9^J J!,+T#b mu{^>5'i1`Õ&pڜW} Ɏ:3|59N.҆#a9bit咢;#n2mbVu{;P19֒#lV!Nq \tS@gHcoe[ۺD*=ùt%W)V{2;X#N}*@J='qD /uqEY#8B8WDQ'尾 &i+Ho~br* N e%Ji4u1q|z^ї!0e|/7(T67Y-+3o@=^zcYOfÃC_B:tWT_R GEms3_]QMY$?H@62wKB}燔0*ĕ Dbݓl8pWQkS8"ڡba&YOz?| Rwijz Åw웜u϶Z쩮#ė.5IDF?J({'봒%4CniS79ӯ <ӋE@1DKj;LΙTjtS2VL:/91[H-'U$=!Eo\qhk<_tԺ%wP8SA]~Ֆ9 *yҜgm']kc7|IF]@x ϭ8"NyaV]Z.[@m;#M=3)*:&ʞx+ $ %=տKh-Hi)R4̲ñs^AE M9 Q_c(p#zDS&L@m0o)=nI5Tu A:ahTu{wh8YQZ򇦺`.4P~ɭ➫>_vfׇJNu=@TǾ'kXː{m=7xw;t: ̆K2C1mgP߫0-{`0ѣĕav}!Eʖ:R|Alz{ 0ynW/N-sk :ĆT*N?/KL}8[Āk5jR)xBOYE^ al5T"itRL) IC5gϥ)"[3gaPm)ˡ뼮OȒ= Fv}ѓSqٹA@:,熼?zɁ䏩֛j lCnL!oEBշri o"sNM@:z~B*BnA#KLZ{cW=>g~Wr tΆB M8_fk= qd$QQu`o`/oTg:$Y;UC~Y&Sz:y7I E:|yf1n֯a0S+=@Ny i߶ߨC/cZn501|[BPK=ll˸FCuGcO~i8cKAx56Npw&KQ%|b9ؼu2 U )5SK<ѯ&'4R=-4\6! ̴܉u_ > Dd|D@oƠӍՄ?׀Iߒ\Cqkd)Y.yyűخ=W?X\'9Vmrk6kLV\om|K`I?:@"S؄""ی]"1eǹ@i%bk˗>F?94Bqf6Ӥw$<9B6AZ3ˆ؃*R,VMMGfv:LY% N B)>p%(m#2S?9 9!=@B0Mj9ѢS7T>fT~<~1^d7.9ôGBN_5U{sa 5V37>T6dT9HIr<Ű4EѡƓ}-j|C/Hd'[ # t~8ݎ#΂+c7o;(2.W)aR<`=>Y~ Ě1){6 k0UCڨ+hC׫,5*626-PEgUBasE͂ q=l8ngEURL'Sto 6=ZJ dR rHϤ8H/TgjT$-Az} #KK,7a*ՍB>S ؗqd)MKRИ mDBzfks/F# bהU.n<'"{B`OQ!o7\.s<ȣ(+ؗnv |^ ҽ8l9. `& Θ"j ]&Gܪu Ï ORA D_r*iXAL&h+d+ac路gS2T߫,j5f؄EC@IFT)El[ !vÇ탌A9& /}ݕ Fҡo g]"$!bQgzK"_tyvWhU 8rGH\9HFUqN E!n1LiWq7kG&B&2B`Y tUy,4'g@$#%'ʛ?_Էd9j=y}23;uMx Sn-$QˌNnaDG\A#^ZK|%cn~FJurD9}0/co |vCͤQ;{4FUKJ6ڋ~]:eM)픓q̦o1_u0(}X;({ęA'z ooG6! ڽ(}zS<|_K2DBleL/nG˫ Փu֠r]yUר4!,/4٢ś}s%'to0P,  ,(w^~TĘkƘFa}pDrݶu:ҁU,In |Y5LR&E^0AD6+5ޮZMT6%("Wҁ 6GeGkQj٫KfYFncw{ #\FU w.sQI(XYDI~yONv۲qv6dI%•𱊄z8$Xd}qDCd֚]==1_I?\U3I LJ:B čdQPŰzbQ^Cc~~@t7ѷ!;*0cPD/'u_P{^dbo*YD1x~A⇳_͂N,0v-49KRL2||A JR+ٜfдz0hKZ߁}4偦bPNcg%o}C2g_k (җdȊ.C^P~RO0WtrWd&fb4?(G#nO\@&HGʫb\tKL6NZ>k2pBTr  WN4 N14|t5]vI,sZdP|NS'MC( X6$J?_2a`SΧJ2X|s)ܿꏦ~WҲ;\cEOj^o"S¶0Ἐ83efhBHbnnZY]6yUڬ-Ykc]dlFVd,wF;\#,ZS/WZQ(y͚p0 ;<geۙa*aD!kϊvM>Zt:zB)[/TnLjq['-};qD!0g5x{aoF+_¢5 #sG^h俯#!_s'oTaڛX_}|yҙ<Ηd|¯Ad"(l+fZx] a#/odRxݞ6/{>ïU w}6 d *S_kl`+nñj3]v93΂(cc1%opH}mfE\^d v 6GLć_O&O愔~ |/"8F)SH )y찘 c`л?@$@[jH$=w#_ cR@,\"RN9{> {.U z>(Ǿ7T@nmv )T1$(aΡj*,9ъrZ #R͇*w|b+SXB ^ DW*yjGQF|x'~yS:1al؉#2(AV-C}r}ɍzn|un횗YXƽB(piY3ó]r=j6U4']7l#f|$zv.row:iEbK7Ae=_җ,Ƴ/eξJsGYjjrKPE9tj}JCdc,v 7C b0z]@AM4"CܡC#c|t}h.]/1㹠\~@Np8,2W!M?DZkGY09;WΠy5ہG$4s+hx^ pzRFx[PZ BNwNЧ HȲf>84g[\_Y@iț_F{RJEpXU,sZb!% .T T\VJ %rf9+4j&sXj|b?7݇IO9s^v;"<\2S_]/}gVve9m#wAkٟ4fH ?WH+ƈ?^v@6`nb:J|6nD@jvpgTJ f&J0h$pW@.w<>yYH*gkS*rkWk-Dc.dGV- fonZpWg5  rAmߑN]{;"yJxuV0jvV=AQ [K '5ȷ l.!mЊ쪿fX˅e' ҭ>9܇2X-JR F#3ة[{=xPLE·;5AScC%vK9?ofJLhPuyt@a{%" l1Ǹl%iŒ/n7]?#c*_-a]w6!P2~XiB\Ɍ59 jr@lvl+ ^^EZ_)Ea37^HqK/38VfF 7rLCljd{zb,6{K2kexS9t,l˚]m"ߛG5nGQ(jZ2$WzF1WTb5EZn(i* tuWF%G!И%Gd[&L(%k-ZHQOUH: U>MA@<ԁ<D&FUi, .ʌ"xA2EWdԸF]9KG;;8 q Kr>Ž^bj Dq덠VE5![Z~ wNqз!#9S-c/#/?MD'8X-dal:omO8q^j;f/jgI\x7ލŇCOpPC=˓mwW;&g3rn0b|u\آɇڽ|GO6O]l~Es pgCpU3HaNnkmĭ@ mTCA5]\׆yYp JNrͭ :kYDxl$Kߺt:G4m`C|v^^s6c\?yy;s׫P0!ea+2 dB  xS&]k|[I2ʹst|Վ sGxl  (m! NҤw{O`lcwޣHuL*KR۠孹:$i/X8㿞 =K$vTЏ_`2S%?c;Rwm4j  v??3pr_ m]v!eM:'甎e&$ ״BJX8ˡ7g] &~mS$ad9;5I Lߞf?r?9 '$1iG`[>?G4CGC*Qzg6Ō0(+f?IsWs37^q  \Ӧr#+/U_]u E#m๮<8W'RdgIFp7b]M9[lk(g铵&: /hܩT~Du緷d 6&g _<` s+y؜an' K.1QA)R(K,aZl!kkrEH\] NxL\k1K-S :(rC1Oum;N/f~b{ٝKD:^JzU^O=@ev{[l7.?N6HEv.n0Q-4.99')jKzGF};7"Xx J8hc'hz_W8aD h9j>Zs$9d%|gaj<^n] JK `BnѲ{@7c㸶\x{9vRP~Lu꙳|CxXn[AIN͗$Ghޭ|bȘhSPWݼC1X޿@C#PޖFrO5y2~ `"=xyn9JDYfF&=ǦUl7@f>'J+:U7#w?>ъw. L-Z %!vy&:U{q֣kr\5J=#l<^sGߒ} N_u"+GPPڂD( ţhoAv?&NS޴1<Ԋv@ XxY&߮ %)=~1mf[{:õq|]EЖp~#ea'|EEGf@S5J\.՝itd%E?~>h&Fg6ʶy 9_F[ڄ,mV۠5<:cyiay-9? ' *ڐ\v_H&;4+ivc8Ih@Oj!QVquNC$pa`X3B JmLl8G[ȅtRz@(i (P.='@~fzX[HJQ{=j2+4L45EEbk=u-+T+"&1s_xq1fb y$#+8Q+R19prGfJi8!yXj@O{ylZ+NR'AN_Tn3#4Y:Đ[v<̉)Ff hԠ$oZ,ٽ(ellZ?~>5OI(tl b( to;J*>*{o~t^ & shefX6yƍmboN-dd0Q] v|'Q[Zwb>uHw˄CM&H҆^ WD8i[[_yVKx+]85 ~9-Ӝd:,''۔x#7Rn=q=B8ŗܸ+ gJ"Tu9Zo}{U^ؼV4ֲ07謘nʒq~9hPJt.1(ӛ&œ,GakF20-O2(a+l$)6lTr,AhrG}1JPg3P^TWI,w[QSp {W @ L/QA@=>aҟк8ب9=J5h~8's;?eଢdxa bNUдM8У0 ޼ȼ`O}{{YW5 ꛫn y,u3?:ve;Lnˡ&)!sΘD fCMaW˟~ +/ۓ YjӮ)kW{n0'ꖙ f}kF)\T<+'vSm<%?_o IlkQ5d+#{Rs#ܻ/60Wo?W9N h.B2˔qHC"g147}'qD.x!&`ʇ::2F6e"eǹ 6#t;i %`p p>6as$-Õ#åMZ4 u48 s=EGqȲMPRqm)K>yOY* r;i]dE*մ׃5td6Ѭ-}nA1 et (SRNɕ>;v+j-āiYb?VD΅#AԷ :nwF R}[ Y0g""p:0,"]Zg@0#@s.<|2pCNACM SK:3D`] W,G @v*ߙE%E 68mb #̒C8dWެIХS}kw(/Bvpm~ȡ€,ː[b؂< VyM kf5kJE_־PIP*:_.c^r9M +`?Wk 6Pg8 ~wRS}A0C,޹6jvoIU="zq++Z/zf ҝc^omӽAVQ12&1:, Xhx2?W @SnuV@ll  .=7)hʦ ]>r%WbBfWp,wP_W{\TioQH:-N`2AڈlAsUX@mK8Ϩ?1nr96 ϛrm-_xv`j! &^-X[S) 5ZMnp˝ bQ91ιE+{I`']}ݎ"҆}!#msHv۸i 9"}rlGFHeZ]MľR_m?*6(v:|iRy0]jAtE@2\TL6ǘm d'ѓ7g߁L>cr@T|un3rě$yxi52(ngK46+V?-q)TLOh޹Ntt2%O @t]MEM=fQԥ-/I&Z@VBb.}0.{TaP'-[7('$ L H~* :hru[I]L5 &ˏܗ6|=\,L]T:u*Y ܦlcrŸʦp8ɹR7L{"扳uRSsk+Lm}ܴ3n :o{dkW_,V"}(r8OT |ߘj kV*ډVLmXz[M E?CֲB#*,\l&[+ 4@hذm_։ ZL\BodȔ;i%./F-8I^/?DbDjam:?.e8=/"8iR:)ׅ7QYC,ޭ/Twqj׆ͤIbȥ[Ap|ZIUo_ΟtrIB\WC qЙ&#E|$mw&ccx05 G u$\K0#04~ZQd\-`f{{Q(VwlyvEEv.`,[yyTơkK{~rͼP#ֵg= ݒm`>S`pt87]"!A|oQ'I,ڑw d9Q D19hJ >X0Sb$N3p\.kI[0^+D( PJ.x.eQXJ{% H*+.)PO#,И Ο= nHuuȯ 'jO!p n w 2|^ujFOSqK!^ a\Cw6%Z";mGÝ.>62 1? 0v;b*FXx0@^nMGCn0VҨV;e[.8S莓z/>WzS`Ҭ(FU7 ժԪ 5$/vVO{juC,&I*+̒Mɋ햏]6 Z^#oERB줊`PIߊ|AJ XARE(+{qI%$T3H!tQ&B?jPkx w^z, ㇮$0ة`F\ /)@|B[Ug'K91@P+Bl$HVf݈6#i;Q7Ԋa!ٺkAp}5WԛM{\8o} eQ m{:`BƎ`wIH)bf|z5noU(-@{N{4~wdk-9"t _ M@{H Y\NߟsĎ{|hQ-D z&(֬@L<{OKbKNNqD TpV}š<0ytp}^(;U ueS)ٸgWDM7CRr]Ŷ56J86ղ/v{R;VM"(aUWrSsQEa{$ QfԓtVw 0T|ȇKu=ԲlI۲ Zv%@] &!NTVήilw,, E?^kg 233T ԝySDSmY낁F%.аnHwĔM Vޤ{ywg<{ WV )9K^Cx5/ZЄ fƉֻmѥ#=-j[ C$ÃEz <cs{hrfAxs̰֩_칎VE= Qju2[,:URrJ N9Ie`Lp^ z޸rigsG(vekϰ5bY0\~;J+%nJ8PX}/]\Z ,]S5e 0Kk!r $W-*JB)t2;f:X\T&0}bÑ]P:ǰ7 d7MGVW\}Tf~$c1vcucDn#jADeRQ:VVƕ./єmBu9m1:0G5 qK,VG @IsT&8Sb=>ӊ+ãqOoBT8\8#Dxf ~99t#[;ks>Bg-T?N>ͯR!聯 pܣC5|AٔYrX/)8Bo-^ çr֑@YՍ7;eNP 2tˉi! :I xnàn*V<Ȱ)Zj0j`#Im=X1e=gfOQV$0>^~FA F_M&ÔMy9Erw 57YAU¼-͌\no9 r'7ah[Ğ/YZDY B qˋTT?fG n>M [}==]:;F5* ! V38Ga;󢡰4#OFW`'c5w'P*~/Ђ =gSZ JL/IQ41KѽrI$~\aح}FbAZ^]KSdK0ȄNN'*)QxZ݊+߲10@zJUHk YAk~]W-_Z[ҷ1C᨝ZxxXz̏\fRR09FlqHSkfM1 <ɌnH+Yg3R8x-]R Nx !l'jJjK xuSqGA,(QYzhҞ#U<3B B![Qs}_0Cx4z Z(ʞpV3lG hLe :whwsAˮ[ PS%%srWk6|3Rȋt/ 囤zJX8"Xw; {?8G}hSUCR/;";>|$]qfջYs<}1vw|D"%%XQb!HO U;V@;է^E4kiΫNJ1sW^G5Z^]b2g+A}8/x_bP s~xi1# >]V,gBu!)3ĭq( L0k:M./̩,vujyp_;#p"} ҝ:<cFی Pd3\I^LB=8rsb 4u%1ê΢EJ%?阷ؤdA&:!NNF=` e߀7'"u 8C,QH"pQIYxE]Т}Ǔ&(Pg)Іv3*`ZlK#8-g?+Syyapf$B +n=wV F ҂ˁ!hf^ #"ߪ|z_,Ōﯗc릛3m2|&$g,a!=T~* nyQ 1^t5x3%Xᝰ:6GhV+ة` 3wPRbIe Up缋gP/Hp QVQbTN$5,)qf@i Ƿz7ץJ&-uu\BPTmt)$<^{ LvN y4jmhq"Hs7&|)Wv#*aRnˤ1X dEF:!J,?Nhty,i @}Esr R*|xmڊ%) jKdXD9l&xYGrk  $:hHEDC9[AH3ux*><\HfA0 $,FB8vWтc+ÞlGBgˀ=R'=8XxD$)x3:kp=%ZTkI< b,f,,(j 03L=҈z[ZԫL#-5 2Ϙr8cѲ3#t`E (ҰTn! -/T16flB%adi#j[5!;Zc=/+ÌrA oΟjquI$Pi٧Ղ iLQ{&.z2٫C@ 'D>a yj/KB` _o9 K\p~3OsYѻz9<ix)!o{Ͻwꆮ)zyx ^te=T$*+MMmh~0{Ja.Fil%NikASE4Ic7l !g`sOϐXBȖq0HfkEĸ U)uOF(M3Z>E{"ZȽ!󷠺d$ p;-T} ^""Xsde-ap9%kҲ5jNbkJT1Hv'tlQ& 4͹4sީ8 K# 1&cIԄF'+ DB]Cz + y/ψPX hk+Mۺ xdVE[tB6@v분 %|]y_BtFy?ѫS[¾$95:aYEwe^}dH;{zE:"_#Tk #\ qStE_v=(#.S,JM%,$h=477A5Htq5 Ѱ CD֬1p31o Rsm oTr)Qtt=A 7{&bNlFNluwMͲpi+::QĴ'D\j&nu_5H<אDZWHl4\8u3ZB^}sֱ";7$8wLhWt_DR⠦g: 7< bp8ZWB̹R0ɫ8?9/Ӷ};Jl :Cs!l@^#0n+Re˪ˋWqՏXE5}!Gd0 rKQ?9%Xg$v $xȫ/Nhμ'PmpٙZғ - >^>G mUY "\DI40("BFJU ZҪnu RE_S;|Q(nY6NAN-g㱛XeggEkvF)'r~4k9G^ {&EWi1 .rKe*Saci~*oH(4oʎd3!(eGց#ah8Q'*D@PP_c}d,NA]GޭުF |yveZ:ii23Ղ6tٌs6,e2VV1:-u81ѡUBozKIr 3p-4rQd'p2.RUcuae414.",@ܵIQ9F* { \ #@O+'T 38a.UE/ֱ!`+JMt)zWڀUٙ&Ua 0c^e4H)QR5_}(M+_՗ F0 U{ƥcAXXkQ2|&.__M@Hqc׮j{ dGJ8:Y9 dqVߺIz"F^dX3=A49ힱ3L)˼#4-A/:hbЏ Zyqϴ`]KizwꉀC YbGpo ꮇX,0$ zWKQq K@q1c m=&VIF(se8A~9k?_.!o 9rjbDcn((8-A3S`y˵sdPN~UsE1Л;:xK|Om/  XO`!16)ږi惞YF5Nx9QTRXm$cN{`pu]q8DM㤵 GVm䢲wEde=*f\ (+ S&vRߍ>:ǿ> #(*5FF*QiP-9Oޒ{e!C`/)Z{>FVF X}fZwr<$S\ݍYHbO*& yozoFpxZì'!R,7D,%37aŠÇSYfsU2-)mG[(0+%|Z`Av&k}s<߈G5 E6C2t+y2mrH3&CgD~XN͆M-;\A):z;0Flr*Qgz1};Ou7$Owq4jv! ". #BoM m;4XɈ?X?zF([KBko)PXuCֳ"l}m*YV*^`؝~wBa;D~7OG&(YKpc*юZ'wH\[swĩY\Tgq/ZFJ91j,]vxs}TRfUiՎ<߸'.yW: ~69d%"N/v+B0Ҏн|U[TNwL#YۍjWjK+qPƨlezu9VmIUh@Q1HNde6 UܗUSi 1F3Z;`6dc{weUќ mucmHjN]+8 i.KhCЯ$Z%7J8Vûטٶ?i{7Iqf/p&uW>c1iE>g_ TOcs>ҩ`d8\.sܵXX=uAR1n?UQ.4&ٔ{T:w9JTB+19*m+"RD'jX\';*x70[M{rЪ9|s ո1MñaN|*p: nLrʑēPhQ0RDpu@cHk3tJ _l)@C=1dC4j"~k`6s)eKlpPHh]TY-A!>} m  Gš^Ca7)sZ;85F=܀K\w5pKVUz3A%%An]6!T #f@<wbzth' us,R2?QAdBTϳԸp4lԫˎZ} Tg󘔔S_nTY0I9<) SHCC:&k/'z Q pקu%A3KJv,x] )ne 0NrJ:[O)F%M\d֐"sTi4 #r܁mqW&D\pV<&q#'YUòBvT$^+WD7y^I֯n欣a6oJ$0q);KbD=%{ljt1]{q֝\p HRCTTt:|!N!Ti͌d@=vQ(~-]PP#0Ď/-<>"Tq`T|jHT3lKeʉ Tⴿ!&{K]ȤLy=O;& e°*gEY h8i?i'WX6X8@veoJt?  _Fyrwsh3 :[ы(.]ͺhoAʄwd`}KVixL$݉Xly,ypLrbt >0KYNPFp?/3QzIoeY~d fovYMMvF'l%㥘0@WԎphӲJ};/-1Sɠjۣvrߞv Ј{Ԣ|&]Snݰ7R]Q-$7YAQ4lY5Kd6Beo_s-r / {K:Y;R6m1-{5G_LVdw>q#Uk)I24*.opԍ_Ҁ^p7C[E6@Oe_rUUgBmEmyF?#o=8S'}]x(. |}z1i*9t؋#BE5j({&^#(c8z yҍ_s]u]tgYf|MM?D*?|R/ {HuߥՉJH_6A>/[jԙ.V?7m!"Z%(銢ls9k韩oMP7eBm]|ܤ1PJeĬ󮎖1Yϗ ţѽ0(B%pfI ˤTXUw73otҦ]YqS7!RtB">\I8WLpO\ijח&\m`#珇B4fAeb3,v|6>u_=hSa, tfV`,Y;#3׳ 'G z aAJ)Fq8.Y=F,3*JgRB>VTĀ7K%{*^$yΨx׃_ Q ?k`oW.,MazvI[GZ:7X٩G^$| =gSF%ŽZeZ#X8Hp;Dh>Os$Lj)P/.SIZqV;"X[R)eec-89HJ1꾐h /~wjs26CNuN;ոpbN wg%ZI-"^}ߝo!ߔE'ú5 rhHaTV0~H!\Ea+U>Lo7E)A+=e/ m\ uKb+W``TqHqNK9Ruli󘍣՜i2#}Sv.CQCƁ6e͘&7nmVT-\N5ycbrkh1]p8OUij.^ی/?vVOpݲs sEnՒlU[`W[ nCZF,Or57 0'#g3{Ͷl5 2 o;X6Y#e1%(Qaia tTS"+'y&6ф7CכّKZO lM uvO[X?gak_ia>0ɢ&K~7T's%aVNZ[#wÉX L;m-7'QrĦ&*;G/3,nS%1Cڢ 7J#D5fZP`g&Loq{xv3=-GyPH;\Wד?Ͳ;ZS w3sN< W&AL?SZtvi` zV}{hN l hvoF!Q_zǭ/Оy 5wTq ps UR%{%oP1PzvSo㳫Co3bV bV_I%?&~Tys#ǁ*F#ѩbUuvTKng MlId""K4kBtgRMҢ8W+ƍ1׺eUQ"n%tM3펱HXm]>sͭ=r2N DWȭZ i ?/MyQδ70L%ynB^ RP9jR1cG0̡6 @ 6JDHs .KF:r4LP#HOAgT2,/OVFD:>V~w-4|7z\uGޢ 72Ajɷ8 RBhՖUZX*L Q+9 yb9Ђ,`ڞ* v.*_j]Ѳ|| Qbp A Ơ gITȾA9^~T Hbs^gz1Gr?'7\j#Pvj[7fac; Wf/>}Adqԁqcf-0ƚY]̌-UVvFwriI<ނJ[.wDIK_/׉`3>{`i9řnZ]p|ܴw&rJ?MŞ:sTYr.Em=)b$kqͧB3n`i;)ٗ<F?bhJȐA7T"ckC;~8T^'̥,d3ot{,')<r&>7@M *￶tb*bBB0[MqmGA {rw  !5~}9\y`p8Kxe({>-De/ᕹPE+61)w⁏"h[^ƺ9|d!>~! Mv "bmMzW_/@ƑGoSGiK*8䤕ѮO괙M3Һ :kʼ.tjWC17up_1a&uY _#շ޲`TfH/D}C5|`]kgO` 3Ⅽ6AMMnÜ( x\Ʌ^suY\($bsb+c""7?VQf{NUoN2 Kvާ,&^Cjߧ,; |X^ ڤ[<8'#8rto6[9jsZLZXbsp˨Eijwr]Rq5$tIŔJP֌O5/ hjкGcDwf>)]N8ZVVD_ OФ:>A]S0 ='5ZqgS({n@קeY+i Y*!LI;,i[|# Th\C;D=AX3SH&I]1,W; ψ~[cf$]X^ -KC w\h6 SӉR G<[;81dYY '/`"|*-,HI!('/gϚsp|.4-X$ P%ik᭛9W,s%M'} VlJX7 5Hߤo(Ә 91/0c@c?P>V(#͎Pd9"JQnj#/f5%f0b̪%4@͚[)KC0:<%dLLNw`bXDp8{ԴadUAQ[G[y;/M[JQdMOK{F8ˆ?(s;^æ;\l["<\sŽUH/y[1wT0.nD.X>InH.lZN@\׫.$p+@HbWOenj0X 􉉬) e'AA,aO_~SR83Lbrcfqvߴ8Wxt}hH(]o \B*=pDi(x/ pr%ʹX:OH?a3ϾUlG#] QJIrȦ(녑߁ 6^zU0E5p N*0/bze~E=LWI!@ m{V(6/lS\Ɨ_t'/-ar-atmVdpIW# #}?4a)8u!WLsCˀ@A\R}"D. u3ɠ73x1Y89*ئ *[ VhHVDXĄX3 е3'ښ`inVwo ϬN6_A7YI PJ2iec^R?G뺞a f5A]WD"wIl?l^Ӛ%`sk'|EnV>]v~{v/.5ĕlRd|!6&HmOH.IlE'jvѠbUA MavE#yB`FMs(\Gp}KTʭGXvIAk+Yo,`s5?s$->eR#JhwܝNF4WXpKÌ. )r -@33(&ͦ*-./CC8!ƅ_2ĽMȑký:Ė\j@(q ӻ:n6†7ë]y+5gQAFv9(!zA\(F6۱/#DW/$l5cHrx#4iȊ5;ea[~/h[ $UHP*biX8Q4Ud%?[X~DW* Sj{D(/@/Œ{;LĒdՌSx;Q*%_C<>:.Udoə c$|9J5Ni^d:K0k!+jYDbtKM\WBź4]BMx%⑏M5I}rW5v)jHms/O=gp5-KfS(x#Ao2%+Q8bTgDw trf۽ Y_F|LC <bʏ~g6MN=k^#@O-y=Q|y$,t{4$I&wU`x))€;ј^4Wxx@;hKu14Xn.v5OvZ8fPU]Ci4RV[''24OO%arSF=L]ҙ;CJ¼Ǝ)_A Tܙl!Q D  l &ӂz, H韬ĖJoI| P @Wh\ʧV"T#h7 cwpiPϽ0KYWDH= VN5KZaFzq|\hXz$;rLzË@쪙>u4 kiL0 Сp7\e|) V4 .Np]\ӃRH*u(c8K\TpGJ"8p"h<K:(3W^z.ɲ7NWuw'~ϢW٧Od \4k'i}5 ^$tCqYًt- N4tCW. S,1?n i錺8 V/|ɵ!}J~ם]FLؽDJP>[34c)R/r:^Ћ{xnWh1 aŋP0C$|=?Wᑥ d1+wP'֐]~eQS;إ7C ꩸\$5Vpbh;\nȝ 7X~.46=3J';XKdA<~C+_cs"h5ONO*fVnQDY{&iǞD8 @82( \+R~ߴ#wnK#/56FAU8|D<^S-2* W/(=Ѯf2~cvb̆wpî^J!c d6RUNub+ȟ<=fXB[8]%qՊu6 bZI 0(k82ƟvjIֻ3OrOIRݎ)#\Ho#nO1Rz|L}\,rj^u ўuja$׻O1EfsxTR_NTve#p6AwgQӏ>ϨŬ%:>ċQٕO={~#r`JX@| oLxb hĐl_+wf Ip7svRe0K(T$v$JeՈzi$ԭa<5Wb8qss,6Y+ɱ>$m&oi*W@D8 >/h&.% ~>gffb9B[K񖹎;L'zLJ z/3E08N,.sUK'[Nb/=ڶSr>@Mtr*|Dp;W:w*`Xdcu²V\h"x!ΘvzA( 'R!`7H~euАH+ )V%mYQo~:;?nDž;H!]fk6^gzsY+eOUCݴimk6;V$oZM{FB>JhUGk5>i~fdeZ "N#hPDhT? fnvhwf٩T;_O#WJVH|lB"_(j'xKpȭx2z-\S Jр= SqDm?$M^n*0,@{`˚^,NѢc`@#k^b|V!zSIV@z=lMV&^C4BEͪ9"Cii(ƌ(U x*M xf #}{{k{[Uy-> -yy仩L|YfT&eZ=]Sdr.6q"<X,~snkx\Q4e~ܰHccXV3aUTk*x ֤d!v+w{规H;3mTWhULX^j;$Cޅ-dvWE;sBDʟ zm>Ưppl!TNvNT>T1XQhZFױ^N52XLؠQ5& *>H_?aNa霢s2+6_&1kcKp:ʦF9QǏrb~`u 1_Iֈ!eʱHcnx`yWI/@ͻ0?j|#$-FE]@6Q:Vޟ'ۉa[4*DE0EfYjoYRڌjs}L_/6o|aУlHi,.ۗަ=~c ͸Cހ@;^j88'A{4ܬ9cN, =.gh@BD$8Z 9)n/smǠtebxɭb"ꂔQs+ A'֏K[3TŸ"\ BdN}Z!W'|c8{-K~+孛΂n,=4۫d\j8p< "ڀPvQ`~iCUىlɷ(<K~A_`F\J)..rQ‚*}5;0^VG, ]dXkR G .HL-6AoZ-І6.VWm}XKvta䩴fPUF!I=mx$Uq%X_Ɔ&or< A $7sX2f|Z/fnL9# ,hs~RksVpwj9Ii7$׹od1w lf)$Qڎ3$N*z)~r[JYw֡-Dh ~࣭-!G֗3vÐ{2_s/*q,ROؑ/)*IҗFf? ]OG}yc6P{i CXPh xYM*e_M̡."-chcTs4.1l҈d* .|hYd ek wLƒ$^X2Jz +NEhI}bKmo$]!+H&e)7ON!/ } mx9zuA6Riq8]le a>dž3,vKյ"NJ}`-3Oks1@'=&^[7ҥ@ mq093CH[ӹ8@~ۢ\{o>ʽnxt%əJs[8&0ϕ~<[ӎOswAl4#sލҿd IU{ߍ ^K4ό_dc<* {;j?'?Dh@.ENI_Xy\v%?հɖiχSv tŨ$\v8",/.XBX.ؗ]Q?~Ѹw| {ZlQj@CXT>AMc HU]k ok;7}VYlź5?c[ʥGVg{/ Hq)^Ə[uf0BA^RgsW3 *.jN8q}>쏓 {g(tL ~! ؘBd&Sh[q:f2,)"ǥ}^>+W/whZ&%uzRP x5U <3E:⵺Bݱ:O/W.<ٲy #WSԘ ~{uA]_IaqI$Gd:ġi@x*c[1p]Mז1-*6RDkwևDb8Δ'DAv/x hP ו\P?WoFn$J83`sCV51|*О\9RѮ9j\AkWoµhQ˵qfh~d³1 q{BV@`8|WGDW {7 5'T'%LQHMT,-LuU6;%F? v<aP) wx:]<1BOCvYυȚ2^XV iqU5J&Fi%pB2X\TU C-0t s9Yz/?ڗ>m:98MnIzcvzeO=29ᗗyA>PhpOC.@\ lĐGBC3=$R}z0nl/VWtTbUŜ6Va}5dUT-?0 C_ ]Rsv`"j)kB741v^6#U.P^ RM6O&3M&!Kv,6)-SșfhO9VpdeTقSW0ŠwId4"@i5T11ZJBVB6ɡAsi{| uŢ1X4kkz6~٪ Z?ebX;D !Cc;q9*#GSF&OGUV֟f] 8*F 9u.[2v:kj3q͔tK?pniڛoM )" )!7=!l?EztsX MCEf8Et  Yeg)rU/"t~_[^%szj7yWA. VD:0h+&ڌ5;%9 n86O_,l<+5ۯ_$(p4^6i&\DޠdD",עUvf71̟.XR\8쥕*Ec?)ugx)S~".%#RQ述cj5,,v>#_XZDHE\|L(VO4}"`yNAֶ?"^Vz;JyYjLѩU̚gY `6S<+U:ԓ9l'd'qgj WU%G5\?`KE W֎H$تv^9_Z 5[ O(6I}˾3(A}%o!Q ¦nʐHXJ#||chLΝ؀bǎ'ND m/؜N0r.ѳv\0eO0l*PjX$cٻTi$2SWJ4XBx-*?t AC<:ZV75:V>oD$6vRB,REzvnu0dl2h;e3H|6s\kN%vo0Ṏ|A+5`6@1QhIM&O}__t  Uh,sZoM~+Isr2M"aCf.j+tM;NW\*l"}?FHG|GJT&Bм6`}ng>*w,j7+zkӵ߳*ch"88JڮW^\T8$w#RnmQ>t=w+ ZK]YFRMc۬ztϚcX Ћ@ /Ž4T ɞh>>Q`j$.!(&1HAS)%U3#BMքapܗq9 &h}@_:AZ8%)AGb<%d@%kPt]g;4oDAGFam4b:ܐTCeɚ6>A`Zl~L<!{eR,qeW9ÔEm/3FcnOryOɂá[@'?ArTns+ZOEZߘ/n~56Sn[)Q DEmH MTO~g ,F8 QC8 8 y]:H>LrbQIk̙VǠ'%a V5oB^'0bvRkP-SSUFgEXIЀO6cFE@ t9:9|"P׳:4$5|pSDH-w:?6@#ɒSM09XQl-N֣*z /ZϓZqs?}]HLvb}Qͧ[Ǎ:6<8@6J˾w1tÁL}#a0qI(NQ]9n3qVĠB$(AnVý;C☘ :Ұ- =Gej#/Z8TorзOGN WSyՋ$QT;qO$e> +,ڋ]V3ȩE9v'3\ג}6=>ne;_gf6q.N N-O閉+[qN&'Q$9ET 1>_Qp6zR7L!L~]%m}f|Ɩ ֮,ju3|򟩏3L"gWq|9y(hl_a"= I 85X(P D7 -2T_p!ehϯW]kSBakNU^R|% HT  y`):̕9H^4 #N-,RI p_W0rN ._g"Jrohu3`"5gHq0 ,ybpˌ|@Ywbc ts @h3pAj{CAU{=H,&y{cOS,bJ@2(2oJ&o6͹&gU#oN)U>WLTP9u< ,%b"cdWv(rYI>;^ (XwD.2`41yүI!zMMTiϗBMß d%/.;]IiFpjS~Zc-VXÔ^ [2Y%cN$pTnBxE^R%e6(3f}&̷{MP@2mC=ػн{:x# {#zҰdKAR0|$6< LE # 0;s 9䡚.様;$+>)W%Σe[晗pPxR ľJX_MS!_ԥ]Oăt}GB3`JC{˾)^u;E/ƒ-X'r?7PB[ǕJYGv}˱?SAbr{5ӂvGU> -|FNEߜ"- ~;/7^6~OSMmI6UxKT= xBqFh7j}O=ػT.;o c8l,:8QM\kLMk<H9G7;韙>y(PJ/Ar*{]9eպJ 7:ѹ?-fk%=D 2ys)~ڵ I4D@d$ߡ.\]7Pτ/WT{jѽ;oݦ(mbf"DVѨz5uڙyyG1gDgz8>~I;g749O:9P3Ԥ4w s2mUU;=NWF?U6)R2_}oآtTHƛa.TzM Fs]qx{1?ٶ`F΃߯޶I*GXsh?Zwv}$KW!&V޷գV=+ #'xK#Kpiok Pce׈ - F~{3ѯGD5^)RMFR򕋄FZ}344m&H-m];pu:<ܐڒ Qǁ4Vϭ" }wQpezfd:}?@ejG nk11{x}Y 2Z-&6gR^ysXˁJ]%Ѫj#}A".wr;PSXylFyv 2$ϛgR3̌I-A;픧sSHׄlPSA^|f! zΜ@#mrT}2@YEk[:ikiMCY)3 128Bk2׹.UzȄfA98Z!AWP*ngqH`$I$s;lNy-z@EG^Xt<fX+&_TP]Cg?oؑY~UʀeV@Tx\'c̔S\1Q ڬΆ&Ɓ sҫ =8,f%\bT?1vOAN$:. !5EPd1h&6„So 3SiL{ לNe&"nJq V#:2ac70Ccos VjJ ;mB8bg1H\6c'&Ipg{Pӱ+k6߆J;j!$2-}C〼tgQBHkڵȿwlW+\ 1ѓ@s+,0z{cHhb3cE^QxHhzoa8?:PX>u zJ H[hBgv^o,N@:n+ fnH(]n\@A1lz]+rHY[Mxq鞦A?d:'5] F&EKCpnj A_9dwNeM> p|?G'pA_0}JнkAq0N0=( SX@gtD[MĊÐ HQ(w~IӌweWj)q(hbcȹ ЛOvd(\u}>j}gwۧ9ohnePJKWqHHזYm[FeQH1bEp^a+FxE<]-Щd)GL?=`enmq|Vtq`D; )XndrdWWsK2Я,v0bVno!G-fןmiK%zFuIQ1X0\Mg6ED[sy3r? *۲J̛;Ȯ';KɻhA$[j3j3ڦc5|gJ ֕ smaDbGA^}*W]b+Qpc\bjԀ>z 3ą;G̰- DkVGHr=O`o!WU݈%]I I3YV to+R=hMxoBL'ՒDm؉~ 3q)D֥l[6BAgU2|uXI6-55k_ّ,WZUfcnWֵIdc*!'b  )zƣ^N 1u|J=䋐ɘJHCt=u8]E] {,!V`1|[mT SS& ?Afzyk Ě|#Y>ZМV 8 qF:r Ί8&$~ jk|Ƨ njK|Â=s I&bKC㵗=?.TA)ق=Dwѡ p5(q<ِfלe,fgmLqɾ0rTUAmQLynGȵvVgV*f g/E%m,J@6r4|37ޡ>4Xk"9YV?K %\}`KH8 +T_ +ZH \fIiܟ5ONdIoNR-zrAR )SVl*u#6W.ӯkA7(M5e~W+[ !$+EmEhq=Qg>o M]=YISKEeOk4ek'ۏ!IYuqVLv$)gFf혆V[);>i%t zB0" prHX`Ii8rXۀVj- k}˲R~C}!#Pj4V`r(^&UYW{r71M05!é- )C*cuHFS{SsLCS;H[y@8x4)'~RF 7R@`)6N+ VqX1*\C/ZPgu9?dmJ}aԓ5ӓOn*p=,tgqF97+v }HÔ} (lmInb{6hWQGQg߬h䡚l~dErljFa$@8Գ~:ܰ^S"FԳzavb3h|381C$i@fph -丑cP+GOv6x6UkST_a1 FFP~J%nO[bRQӪ'I.`5#*_@S}Gn#0W0fsKn2 + "߾1lyRh(kV/ u4Duk |b__+;'ɡY<;t96W1kq~ S &il(8J%%q Q;߬19΂Qvgg#ҁHԋ^M2zZި/f6>9(x/ 䃗BJ)A[4 wawy9Kg˓! ǻ qP3kds0}/8|cxl9LϺPAa½5sT?u}T9 dfo 6QmNJ|gڏ11P,"Xnc:u h5jÉnyIcנbj۷z(lQ0{ieZ IyPs7p e^gDj)zxDQJû57JAm 7V}u F0BYm p^&ZEFwF4c(v~a<1uX% % L1[A UhAۛAic;?oyaZH7缶0FbN'ÇIe>۝|  ' 6oi זT9OۇI!'C3z=i|-7F@q7vKgp7DLaC%7#_`)z}!߿d?Tz|$!g@2$N(|]LaABIQOPLzXZİ)M(?)Qq UMJ8(o_OOm;׆O1Yt/\J,*f:s"DhWu!zr"'FQF*]'g(" UfT발4 k/;rva=׳]s*#ۍ0^S0B22Y9шP\EJ=NY= )jpJꥲ)x0KZq V\rX x$b`Dּ^H%:ǃu ÃJ2N>+p8Ek&7);/e;).Ei}aw";a?Bh(`\rrOicZٲB~G+E`%v)΍2[ +_ۧ( O~A7DbW :wӡHmu $<%1Ȧ?6 Ż?3к#~xJބp4rߔ3:L BzSht)55 7Qht %9Xolkےo=NjG>Y*EmK!F Jo+逹6g~ ' zҐ/0͏,5'k_!q14o2i_ zCtDCs<>h?cGG V7LO@{:Y"jƜc:c%rG2/3|@nLćg WzR8?X94H ou A:~Q,H¸?4cέ'kZ(Hı9c$o([}fҝ&0YQ@7пbFj}Q:TŭN ?[7 فxuY7 =U`Ǩ"r[ő@.Dq6F%179\$$XuM]B5Pp):.gI yqsKbG[MhɯI Gݞl̔b? ~!,/odXЯ4IIKTh |aN||L,&[ r32`c/zgԪ,Isل:y筼ctʂNi>QhVҷ> -ʲ 8:v-!,NS+wIrYOs7s65=:TtOKp{r.AO*ҍZosXps9zw7}kkq"\aW0c5#mj!XSɇ>R6!ZW"Iz%oc}7raxk}W;b- @)U@6ĀvB[){XL&$§; .LOP#{|+og\.-kUtTj\\,ÆrSJL3x09ґ&_i`]16kLB*y0ce_՝τx! Glb(M-ާ@<$զ,(7w;aPPEBk|c9MK(;j?Bn'$duz1q~oϼ{ [1u%M,uPau+Bn.U_jVDSXt/,gc) dID+Ri,mYnϦV. iYr؋L֖Mtc>NA{8Vg18=d_\6K=+XmʯR`J6宒zkÆ`U`n¶*a)2>=T=R 1UOLE$¢!TɶX^}Ad@9B,Ԅ߱NX%y0'#3ԚxZii &KQ/0Xr6Sg@w'bs|`Soz 0V&7G[-l3.TJ! #Bfa( Fry۝ٵ'LrxJqrȰ T麡:@>?ҟ\[_C5c{ NhalxqL3xtSe+ibx[h喦R6Pr5 @=V(Aze##zl(ۿW̍ˆgJUeű 1x)x>uy-;S}u\:Ba^$r4SK~@:\DFI ~F-OALuEt nb5|RK O51Hf&,ZEdU!#w+dN. MaS@Rh26CA E|Ѭ mĭJDf(/׶J|kT`ȸkwwŕnWC) _Mgy UD}uJDh*h Ƴ7K!hG_+ɹ+>T& {, O[wPyz NjL0)+->Wa#튩CanDM[4y)h@%{0T#Yr^=C6ZI>FS?%Plr!:C X?"sE| V\Bq>̩}W.ф{]sE0fW7<+~zbӪ&#1>PxDnF阸']MSW(w[oHλ$jA qȱIieNg[^B|_OE1 @uduqO A^G7oַ PWOA@Yxr2J EQAKD(?i;ƖdF+"se^F ?Dȃ r w8ti5ٞܵd“Ń"]PQʀ\i*/Fiޔ/1:pXjf}آxH*> Q 3Y *)&p⨂kDSԍ385'ZF0`m 'FZ}ϽhCÚ#leP$~DC)r@C^.%_=&'+;HRs'Tw !M B@%USt ˣ,#^{SXk-t [0kj^vc21XKl }p96&〓2nEALDpjxڹh+39 Uy٤5G9kCP)eP(ݮ<%u#M;IZ`y<| Oϸ 7;Xt݈xӹuliVs ۹~jl.!IŸ gz;J?=7y\죐ܸ䄄VN"|BV WITu|24=:=Phl ,+DLT\:eʌ9 $sݶ\GofLTJ٣VrrKUoHUiZ`b.bF+?mAy6MKo@S;t6T-wGK1=b*A ԆIMêoȔ)bba|+9B[L 7gbhe~eO\6b{qMX nI8ǎgI>[ I@@((1z{TiU|K]o$<-`osi9~?z$+#HJGj‰HZ n0b"QM:P&1cֲ_fP(P8 f,Y%4j?2?r5a#m((M뭦1](̾9)6Uc;fm'['"^F D79ɅRg{F]]HqZO@V[mݝvraK+v#8noͭLv 5ġ M7H ߮pyJ\Hn1wJ0 ?ܮ"{$Y>A\Dtx9K֒{ 0$ WbM="L!Bi}m5@{g0& YZ5 X\A<9p.d߿¬F Ԉk1`{HВyc*,MRYnnbZAsجlBOSd8Yk`g3nQkElwƢwPs <8dw{>πj(,E=^"SQwiO$ivEf!Dl.w/Xt))"@&zPDxZ,L^HPI⍹]MҪN0bд|QmF}t,lLA<>؁n˴+t紷fwKrޙpkm|hz!u9ŪS/,\l>lO:Х?t@ ?̀UwEfΉFc؄ Ȣ T i<^aֳo]"P밇~m,ˍުFxPrPKgS>^Qasz#+WQ6[yB5 6 ;XˎcjVl*w)La.{',-=Eן3*b௝x$4? SL>i&*$AJ.6z(ev>Kh4u%(cYfn;C.` :&S 6o3Vb[hSk&\HEӱa+F{.:T֟DŽ>K7Շ }7S)bG84}َ+@8BĔvhOdg<F7kYVXҏL\a㹯!MjBU䡞YG-YˁLI Q$Bj4%5ǑeY~6ѻ8 OA8[g}cW<)HL* TGM^sPHR?UͷSZ2y1a_oBY!c-u'x.`5!]&{\GݜD&8n6G+c$BHQGE,yDI.+u]K&T)os,*<@V7{{+݉QF1uq~szrCK;r$D}>\2ܟn`Qs)uPlZepl3_(Ri.{F9ЖwĵEO8#_O ػU3O31Jps,%D@xlL.J+,VxV^o`TZ5z_ F4YwΕD(օ̪:y: i\( GTy,tB[$񒵖xӐI1aE3,^# 8/+O&Q¡ NVj&\OUpY.4–"m>1Z#5UD`@T㙧 U\?O88]x51\Kɹ9QlT ip4?^Geg7P-J}=&4m\`h!']t_!R|r|b0.1!NFXiW`ge-HEBs$t\)qpRέg^_cZzPXމ9bCʨ[ Q=;ZuξF8ғr{TnEXALȴ0-0?l=@p̵tqꐴ*fQmvfO?XL`nF!6QEGw.]쿪)d&A)J! JI"Ov؍TVcY r^{@R%ZRy*Nj<>MӧxS@W/m13="ZכoW8HBYvyp~ qTqUUgғmjj 0hiɜ%?Pg*|1w+ E%hd !j1!˵!uǦ*~~xW>X̿U=Ox#P*IcCs\ FK2( j 1F=(MQ 1`~g)>!0:>m\pwH lɤMޱj<ڸ7ު<*Nn Xetyr7dҾ*}wUKT,¬̽[++=gEk0t&ܖȺTXdDf@XGCXijDSb@ oW&T-A >LyH ZCAt1r\kZrPAi]~&Tc>_&Т˲H7gP^\ >FگT7kxw8Z!֍qE0 XsT<ֽIа!gv:Y]$> nc)Qcrίh&t{$ Z{ oB"ZM=tE7fy_L1꒢$/R@赟|nl-P•Jƀ67L#m1jQm4*s΀rQ,|IKrr#oâNŹ.;(0RTWqd#H*8QH1J-k{.N=z[ѴNW>71;|N:tncȢ( ]qf;0Ue fang.I]5[BtsIe m6m| O*6@b!ABPyjT$Qڽx* zFfɻ MYT,ˤ0s ûHHj+N{?X1l[%֕ 3u"3[NBZi`qD=PcfN)4^lqT-Z$-yi4sW]J/;M4Y-C;!U|U3;*~P&I=8W=U}*e6b"?OYjmع(|gsݻpw~ 0qAhYVL_ [5ݒM^y 2%.ͨf^6P;7\(~$GT}r,=JUS~tfd70 s2'2u(tUbuVR_ |݄0gE)c ҷн,< |ɷ=\g|G s8lUwZ}5=Q,$+4f߫ WfLg;:eRUw˛x~{ h<&ZbhTAGЭ(?#(E~%oKl? {;2fb0`ɲ#lCw9.=P? ,c6˥NǺX]H2UJYPDZ_K3S?I[J 5H##'gx 6TwĎfzrlTl6 i}F06T<|sfFenNnkZ6rYQ.*5n`ݦ \;2Hl2.|v4˲s*QCK6?&̓ޓN?mD],~.M6saL&x3>TLzx9"󟯮&]o|J-2@ꗨ.1aw ⯕!63[X{ZDqkϗMN?x[ <lLI9B2ng􁭏!VѶU}Tiy5{ֆ 'u1a<ē++nw,^yeRw]YE7H#'.Mo<["Ǝ}Դ6w[~#ڠhkOGOT2ςMqR9,,w:'/TY#^Ӳ$(k7q%Qov 'lUrRAar'࿺ju{gPY.L=+ H)͐5 %z4@yd,6 X c{)pVfędO.LﵗEG{>7MoȡL6f1>zV}"s#>s3*Gҗ+%-PPg̱_$ l#rt.D:eys3M,ix ?^aC=@O <|wyh498f5GTlV>|< @ T:=57 K~"u5&/1{Ar1S0v^l"xa[kM+EGIM!W& ]!etحitأ#wIr.V:T{FV-3€a&Oп>2.b +eru(7S*[K&0(p;صZ5>mjτuӼ;KT,X;4*{#h^9l.oSg9O`&rԻyr@nlB~7e6w>-s*.Li(^ N2Sj@~1W$/Fӽ ce_ƒ pۆ0BG1nb01I&7['0r*>_ ms|!qhI '8QbNпKr-MF#1q&(Y|ܒ>6;"B!.}vƞd9 XL(`+GETJP FUh+*EiSlj!,@H{03%@vG4Bӟ. )8 }7o\eY H`?(_IUWƙ1 ~46ZMsX2UN isHΚ ~h FFlvch}tUqdz`ãO2rn(D_m /܍Kz21-D>;:dl/5J00u;Y<3T1A f$/pS\Tw/t)] vӚ8=s x_:u8brB i\0\gR P1-|uMnX M7k)ר`(ȥ9|ѱ-cWۺ:}icXrYCpd)$9񳴴^f8LMso>(\7RmC±Kqzr ҂blb}Mw9[ߤ_k&風_F].q!د`C@tA7Zp?N=pĄƖ@x낉:'5xi[_q:vf{ *eG 9Fe 1}@+k,Li,@lL90(=-޿}ZR(6R$X\2W^̋R-H4;Kиy:hr6ձhE-* OeLe'T[jv-vU}(Rʥ~0i לnz7?) 2w<}RJ$#g 貐|s5 nYxu)@CJDzxo()yeR Q0:D;;k#hAw?!&3syG`r[ȫ$߾bXOta=WYvX3NwG~%`[K\~®X6@ZAsy/XZɢV ],u>?paSj_dnMBղڝ-rQ!pVL_lH"2l7A/iP wϰGϓE-4WWc 6[1_O#h'?.ys'"g'Aa\#:CٙwEB2'A.xM~,g H4b~wnj[GT :_ µ?vw]]9UDD"3(7XX* 㸌^%G#!~VXKːo VodI~QRs,-y s[*q_LHS9(N?V:Jx Ve fD8-.~KQMh8n]o` y['4ٶeb6E~=\R!Z8 WI5/F sqI`1C~!*&r,({t##M"{ mV(L>VjGHͅ?F9v(7"BnJg UUN4/Dg>7b"hf9APfUCU&}6;U~4%T؈6O I lmOF-M5OzxR#ַrp ;%&4w:zbG',avEfiK9;U FN3Q?T{2:3g,; Ρ>ʮ(NܥBA!CjŲx|bV3醍âD eBr{IZr[Df1"jBePs2 QQdg3ǪV>\AY >RS0:hz"Wk>ұi`6StK]{"in>$SB?:{f\#BWwX.95g+!۹0RWqv2A :u ^y |# 8e0݌ dċDѝ Cfo/>uۨ'kjۉE\=ԵCɄ9FSx\:ïַUg0%WG.JZ9<w,ez;4eZ;TlMZ~"L| c b "CPH,bH.ak-UTp;/|iGgkY^_ BY0k:v.%J(%%SjתT 67&xhwGd[b[A2 MyȔGMbf ^MNilȬpK,4`̷2vR ȣ!8Qd"B& zSCMbT1܇/~*72 }r|zBEgeqXG'Hv LsUcXMI $ /c#ƧpX,fyV߀*pyWY|$ffʭTtu K2Y>szU؆LZzbmgEgfi&M;CU08)[ȥ"j)UJ>#s➊۲=0|͹_%d0>= 0I>{9G)k0gdirXJȸဵn~u[? 0JE>0A'!YՙԱ!b餹l~,.f60s:L Sޗ3/t/;cwu0D}XZ<؆2T'>@_)_O*RRjl&V̞فJ\~qDx<'z&3* @?Yt(~vHMv y} @ӆ$\́ Sr2Nq*c e,TݠʻG}h\[X򡑶SH:+Yy5"fZ QԮFh'"2aKԹS+[ Nv+geTK^&G ߄/|&v8~踱#Da1 Oiƺ 1JwZGIo8WScVI1*hG(N+6bAr|2.'djEη ٥-Iʽ(¸xF$1ϊ z7H>C2܌nS Ž.:yha+1)n,P׾s)v|vbgȧϸ l?9ո |N30W~ݶG|xZ8  ƈ}4M9_`!2v!x;] =6Q>T9aNuSWQg@Lc3T\ﳷ2Rjs"'6"EBA!>IsF4cG{LBESx Al{ P{= ^IlL*.)Cxm OU( !"NtoG3J!.!d)2ԊXp )7C|ԱO&ͥW KiXG.'Ӭѓ]b#$*^Bov揥7?@NWq(Kzo@±LA`x^ADHM[~u;OR]uHH6hçsh8)dͿ$ :[V;3L7Oˎ3xό_2iNe3UrKe ]5,7*MbsV2iYٸOl;*^Tlp4CPbp{L7/tif#Yu35JO|#VU/Ɖ KxϤj6){¿́FȰq3'Uv;ShpUND%u4)C0LtT^5te_jGy)b8*w%`*MZiQtz>@D]9 +XƐ Z:k˧1~XW5a&m[tn6|fwӱ%\At^i|rdk<-G 1wZ"[ژ۷8xn -[lXqs@>2Ujy:,_qYD}&W oTBO VkvzICy47P5yV>;"oUע I$Zl|OHjӣKwY3jv+(e^Ɏ:ۜ*bzrQFu͏H[b|lx3zI}\Bdц# "0vN+c'+n,g+Ը_v ڀoD X͗ƝAS9ƴd`>\5xSpD[Uzw`no4xi6=7AWW%IWN+h&!%㟂$%$|~X@4rUmV,FrKb<>=qR !x'2 eiBͼ=kM dz-؟}l`M3a]sĶxb{`s *|tڊƯ۪ވE"x9TYa9E!͉pc艙WįE‘^˂{?+gKA4dg\ yٴ1A]v ?NqL~äirb#S֥ }\@0#BxL @av)Q@Jjp͛z=cxc kB::W wtn]!U̾ Ҫ] {RRγX#Qο׿22J5R\وwt22%.7$^)v|bVGD\1N@j] x|e"UzJz-/t &7%ycSN_~{s$wj1sr Xܴ:-Y Y߁RHj4ɇn_0znt` ZLWJwX /!=%i[._fn 37%uj%ޡp'wɻ(4;ɀ2#EAiG2Ż^ݜ*4$UcmX`i~Yud/YIɕ9k |Mpߠw%36%.ƍgOe嗀 k~:ٛ. ^Ԇ-PI28-o~V &!"J$-upt俠= l?Evmt 4|%5 eq0-l u0iBj}\vO2w0$2$}PX+lRA߼Վy+'H`J?+=2Lˤ$%ҍ6nyj$Bո@vTEއ8[>35Bҁ+L>Y5]i4&F-n|2]_0MHHJ m4Dҟ{1R^2Dx^E;:B>ҿ;F_9.:nhU[z7'."/_:@adLƞƸHS`{7ȫT!`>Č vڇ }K-xtG?_;KzW:Y7whY0G)\ÎB9iʽ@F94w]*.lqsn#*T4\$q TJo/?k\i3HG{̺jSf0'kUAlC+lҢ߰w󀭡@(2rauv% 4>>O v3 /˞3 ]Xlii4+Xw J^X !aW\|6`Za;R 㳥%(A6GZ '/tf3hj2)$eAEyKͷ.9'k6)?&bL&3J)/w&)cd2CNB\ {l%YKspb(WBc2РhY6DA-˷!Vi`$$ gsȊG<2p0f.2FZ(g#RetŠF\=g81=ٱuhHÖ3 jU(m~& JOukiNƣk B+ZKE66 ˵EuιP2a$i99rǪm ژ9Y NL 4sS~~RI}$= ݳhŖdMQ3/+xsc,7^+ſL]fq&wI+oy\xD3VάhSOKGThy}Fm>Ǖ%Xe Dj/Co/1roF-^ ۃR-vմ´+AWi8|S,&6en4Ӈ@b{六hU12t%lg>I_fpi܍ %V\t <6,yf3G | ,m' ȶ}oh*[K鈣ߟ9A&%8+Z9gFRKK.P-jɲ뽗DJU4 Kjkqhb Y*$ RH+xl=rͯAH@A$F0Ǹ͹Lh>wA8ңEq F-*t/2Q~խ tPJ.z$TY4u$$e6qT ShgĮEU`ś%SD8g)M$k}~~_g,vd'7XY`8h;ΊNWB8.u4i<Z܀mzm{UhPQ=}*sj5J1ʜ-neѹ>h6RX/r G W  Bd*ӧ',{w0 iǹ iQ=2g7"q7FJRbC6$^51 SXftvu6NI_p0RèOYaŖScQ/%. Q V2LBJ@T} 3VClB l,n:t0K*wݰhv}Wq)0#1vt.@]Pru2YcJ_kRbA3ŜID{"&?J'FUSjKy>P̨ba&;\OuūrbOJnÕnEUD>%MDV*e'Hv|P z`xqQ3&!g < (\5蕫kWap|-bdɓ)zgtis!zNY_}4㰭.p-[b$+~gꩪXt6[yk,qdnlWȅ-xVSz7\\@=1bE,3, S緯O _P+_b]3xߩDRw˱ !/#u@!JыjTI@|Gh vfI-,>*l^AXK(TdoIpL%:}οߕ4x•5 1M6.+tj UW%l4hcE`5K6\Q*:a=#:7T?\y6VB lQ *#@QMu?$&k֠ ]AhcOa\QnB97 ~ ]D_+xbW7}z"}Ca$5 `=-[5ͽi&?t,Lfq=(ZGzј@s+ukĐ$8 hTb b\3 q E)uP@׵N?HU\Ⱥv> "uՌJd_5yEcbq*jPy-SU "/6{S T9cagZ"0~WaX+۽c@[QOZ`p`W^s,A*r{as)5j׆{ČF<27|]J_}UlGnU=h\c݈\3.![LUղ,qn"5{0:β9~4%RBA) ݮy]v=̟ұ` bb}sͪ/̦0," ԇ%/϶a~D,ɭ|; Dtbx@56&͖᫐T-҅bDeIVk 纑V`E n!SKv_ ޛp-V՚Y> _m{s95=_ zOT r+/CGm>CoAbCS7esߝzşsy{-:8"2}\ז=5fR :/w,"!9bs\eNH`FY!´(p&$!`xUAȦ o͑Wsx?%ц:֞N46PCYS R3;2+R$a X zjx18D þW ƭqDAΛd28,a -h0a)^QtS0leL /tz?FjN^jQY[\޿ ̰˥7䣺p=cz<[c(̸ZZ1m_Z? Yzܷfs֞mR9F;f$ߕ|6zf_B#D q4Z_戡/o]>^th{/CvCww5sQPhGqG4|o8yoLBvSU 4;ⓟ VOMl}1ȁw+ԉa/̽`{6>@7Qז1fl6"[M:N P{ɷI73+XrO(n<)3EtPlrSt-s+]LJe/lYri&S`7+3&[r@;c}Qq 5zvo ?xq9r.Aj%+ٺ5y cLRIIAWiM [E~4 < 8(#}u %Nvv M3 Eox> շeXQkia鎁șf[3>y/Gcjd$2DOczt\P՝~Ӑ!M\iW'J/JX"yTCg7k|K0iQb`,Z&B|?_yĄy|A]!m"GA%Z7bݩ*Ҕ ߣT?o[]GYueЈ!V4RM ?7íǿȃ6D+ҵ'/`{\L0fH +9@Ry- /0dantZs,MK?{ ihH W4V ܁ڏ{y+ﭖ kgy%dE;q#V 7儑*o,8E@-۲(rXYa~Be$6}-{Y~Æya+PUMݖIM Qb+R$xMNZJ{y2^%i X]{FqUd$2PDB1gGh%`Gdg3} Uߴ^ini'H. l ]u^\KiS*, 9$p`f[1- I_ j.|mauξ g[ ~|uUXA~Z!wx/=GRj$ȧIvdbm3V~Gӣ]qkk>P'cF~ӰP%B៨J˽Hqyr1)c*7-ɠvX+\i,3Ii)<ш& 5eJHֿ7G9>{J O$FJcՐV1lO 5W#^+D,EIlO Ϥ./C&XY$gD Ql'^\ݫ$lﴆ#>+,skXW ú8FZS\?aZq(r/ӘHFi{'* #}ղ>09cÂGJ#z.tcv,)Df"~͝^2 ,3;9~_b?DrF5LpF u5jTW=A;س1F9Q3Hp3d ,+:O##vp^#2Ɇ"B !&JkJtQd;N\C('n|l-z3.1Lx Pm#_rp8`4ы^iwnx[G4zB^sm7~Z@zUƼxL%G*?tO"DQ٭WqpG7"|e|R TzFklg[?;1 L%;ߺ m Z4[Sۨ8 aşo8z\lh J#;a!Us#'nFH%p5Ot@ B:qeUNj _TKzx5\([S^l-H ; u{ y6՞N4 MbmA"3zo<=*˅,GU j5k AsTS%bV0ܴ݀f8[~E6VѱwTH]{T`x6zI5ҁ*I ӯ0J?*s)]K[Φ2@NBS8ӏO b2#Z%EF5C4z n㎏ 3}J_`f.EҖYIP|8 #NYqǮ͸%!<3)XZ$p?6RI/6!IM#? #P(/^Ș3?!a,YMd׋u]It~O^8OGe<`npIm< (~Xm멩[@Z Z9퍅.R7_CF_ѓj Vs&3_psp-4Iηү=e8>E)8筛yu 5Oq £rh&Nu/}gYy{Fzzrp'=u.PHDs+%oSbD n|Au0 …m~.FP|C*lI)՜`kV՘|G&cPG/TNZ9 ϵAW9YTFo"=S(2M!MU%< o;14vY27d.d/d4ntvx;١ZK6}bS8SCuecudf5 KP+yz˼ 1 8N֝w u?׃% +?#hH wG}mqyU{_>nJI{q]=M+_[;,u2ƼMDS.5`꣮Sb[F}L=v_ed m]rj9Rkl/u5EhRɼ{ux䆻ȥ0C \TMD.9獺K4lx7w dcG|a)eq+A9+R[OthcFͪ_ \ D%z}>צKa䪑fw-yFƥɆ(naJ^L_9e)}uKTҌ( 4͟$lا Wn6aYik[Q )eDz sa lGh4}csT=/@y:pf\OQj>½Nj±8bvvW5D}R>,6Ɣs9N" GC(~"S*Q8QT/R\DapWRcŏS<-3<+MfdiUtWrU&Þ;̇slZ,}P) )j"we1ټ]?4`ԙ8q>1og.4š88en+ss)p *b1oXZe Tڱ9L]\l>U<|GG#6bJ&GFh4()63'Ǜ|(HK>}#HT-+ )I%zMz0IPA}@î@/.IKceNe4Lϭvh=q-mɻ^~݇ ٨=.:N_0~@6W;8_ tP9j5u/0'vXy]<2״M -nrbljDsOw0 fqh<}jQ"7ЪC4NxxCYy_WC=+~9&_wG:.A:߁Q(2 l 0T7چh.ѳGXo¨S (VPp |N0^X/Ү, ~n^V JsleM8`sEUV-_vQ<ٜ&r꼍V"4fp  -v}KJRJ@^]Pq U(؛IM],n͌4ő`Ψ9P}R(Q6$;C|] hzTYuxy:m`GjT;Nnf;Ko"]IjcwOij"|qXXVf|8/ZC" +vrvѨ$i8-A.ܐP;U|9G/Ǣ Û!Fz-Cy^Vý_i=dvId\U6[7 [j<@vhIgc_)ejN0c^r뷖b |̃]hV# {fĐb^C~f4aDQ yqʓ09ֲ pȮA|>Ct + eBg[d "$rJqZ`ZEz8;Q[ty}^Zhk{ `Sf>))>Zz6R #et);" ]scqe(r>Ҥݽ\~J.2b;] 8c)3Եz! 7W!X5 HW$duI(d="7۹FluGE끑 qWG.|*tX_kL~>}z;^c[<SjHq,XlcmX"UBx_P)Cr2)$b0)ՕxoCv.@M4K,0g|(_HWSCRy/DN[2GgW-Y04Jag7m7i!+If; vԍF3α<0bvv\ii)14+1jݢaTQNI!W6MHj4pݤǢOh"Bݮa{,lڝϿ{ )m{UxӲ΅(]i=BoQLwԹM=!W;2ԧJߜf2~Wxg59uxr73 :jw_-o)/Qubpmݏ~`2sݑ2;{SB3 V}0cmu-EQExĖI9WM/y9Wfy1pM/u|v??HCOhnO?Nr7mP!wT%Z[uBc6)'a!5g$kzeh*{r[yQwңZ *#>w4:7&Og4"-xA9gs>d^uWcbny۝A-)N]oVGA^s"3qИޢ[qOjG2 Z>ߠ=z2BMػ 9Jhz'PЉĎ5Df -^eX&XCH,!:!R9M=i$h<Q^9'SV:ȩ֑!gC'| O'%I8LAI{jg o LCzo8; ȥ;>.>. Oyv<̬7 LB yBo|GX:9|k L~RF2@q!&58pT˸O>-P3kϢ>ڷ9Rk4ZJŅ#]oA ]&lYv/s 1њѹ߈߀}FFȯ7iX'&TV(z2Cq\7 wLҋwP& F#61ڰ."moGMq0{xv]@(k0J< i #x#Oc(ﮟc&[sYxj(NNYk R443+z!C,V2H*3wKki#,bUJ<`* Y~٫~Gվ4NU,owRpZ׌{~ J uϲxde(52Ḅs E:2t^ \tiΰjxxqTD,ɴsG;@ xVÉIށFd+l6< kňe:uszIQp{6?27_ѡ+_`?>S1uӕλ#'k @M)5TEP{%&vdrBdkAJ]٭{ M{^ ޻Y@و4W.k G ^%O!5"a18Eb"A0Ft@K{SyfHD޲l"4"N:V^UTI V%@rf?[ ZTݫ`m7^0"#Zlh5-zt׶]  mޮ'#HэWX5JV.QH5W'EzS W:a֩jHQH^]Z]5?|H#SGʒopt FS5~&'28 !T𮽞MUpj(2 }'HA @=-2tјt;Dk$CG`NmT䚉x^oo\kjm RkJZ:T6#8i ?$,ݽbzklwpi)] $[]w󘘊K&!a L۷nH*rxa[5ߪCO&(8:qÍ A4կ֪x[?bֈgw-e6.\H$˨VtЧ1ϑ ׆{Lݭ .9u6iZP6.r;9T@\Eܲ'sIӓS,QNLw\uzF$2KkvDnExo9K;@а|cuqjU$J?&Zn]bp\+?5XJ5$+:buHߕDĝٔ?vfnlr2\"]7eXQ{DIM@J 4'7-hKCa'K\505:#PI0IʻN/@N?O=WAyKPa[]uJ.Ng,YU9sZ<)AO! A{f/o9U7mtq_vlu@c֪ iz=>=(L4ybcWTPНnVg#L6l8yo; ɟ~ )]Ƙz} ĩ8q΂R,`86ـ g]H'^DV[P$gGE n0 =3u}/2q^IF&w:)[@ץfo֎"f7RR H]?`PyGu(t_F9xlN'8)S{Q1y$vZea5.,x˙0vX'Ӧ 56cW؝Stb}Z0 DI6܄ӄ*D՜0&k&dz ,5^$&5mY?91\@hp=H*O|&>L ^^F5=i47xWu[m.V+q%9QMQ#H9кVsm3?T-Oi,&2ēCgIړ-:sG)^<戃VQNj$~~WߋMEXєL,qlv)ܠÉʇ\L6|WF:HDg4͂"hoS~{y ţ0;r Fh-MWٻ Ώ!BCduZªCG(zɄ^ѐkWMK##c}-9$5[8ĪDSh䵇A1n;1t㭄6Pjo%{S%mpu6v~"ś>DAa$ fL')7\Q&[R8( qweך_U>p ce< }V بlC?@*:ipI ^fyMD7>P)ހ_•۵iB})8j.']QHoEP4!S:UbÞ[""5|eKpY&ه6qLl0sx 49yemv(Q" }(Py Pf#ʤ>02}X!]J}+(^Pd/ CaDbk>Gf!]y|6)OIy] Vc0{H|W\Nc-wI}k*[d$ "p̱Bd݇ġK@$$ơAͰ$T!}X6W||umSK66$_o<#uV}h=t O4Yɀs&g 3dG2lv$wUHr煙疤SoqJĵo]͵k;kF9 @|0 /bOH+@B*HXe7Qc~@1Z-D6 'i2n;fk2 mw Ζ713V߸mLm. &2t_20+Hl&Bt,|i= KlebReKl/5N.sl٥?HTIf_.nlt(f4 f8+g _{U![R x1^]EOG_GOKgZ~&C_fhס.gǾ59ClP_(ol?u[Wnx]Pc[ɦQ}.GFW/{ѺFI8go][ ű଍ґ )2uez>Hm{kuYM6Fu) V=BHwUKdxڻɻs:-.MRe[ǻKw4-i=(\?8,+i[j"=il\8;/M7\:Yb@KAUSYjtdZyv li\ jЩ^\pUGrN;Z黗Q"v U7>SXWڳ=`$]gZ]Lzn`8lMa8gPEwx8f3ǁ?x? T'H+[ě){̹MI"fS3ެBzV 9gy>{y'6;f}?,-j)3TpX<VaK& (ooػ&͍0B_*bwn y}-Xl6}6`tH.^D79k r#J)^̽/-&q 6E蟷_w*YUjlcRVTFTH09KM#-KUo/h=Ч`lArQ1Ԙ(,􂒜Z_i5V h[jH [L٘H%$y/ nLwmɈڱ-u L0^N6ٜD1m^R!z3+r6$B?^ǏTG KA@[flZMp{Bab l()7c2̊C̆>\٩ $pLe5^MS_qww2vIP[.o=H o"/YWxfz e$|:6M EDTh'g 6<2dR(`_-Vmȫ݄%ƔSZM{d4]1<ɳ9ǏkV{l\צ}{R\ʡ ,9$)*?`~~ڕ27d SdQ;GE8. ( ˬN){DJ  ̫LJ/z6FDs0T:TN /X.ړlȦ{ -s_(%F!o%N %gڱ,W%ݭu-hf}5n*Hw뵐 z[}#Dd[@lc+-V$.j #cp4]}8)"cEZey摑H}(RUW4oc3+!+yBR۳/5 kP\J hr7UޅXJ=C2?-YW4=]UvPК/Պfb0DZx }9Z0%&rfWSF1Q ~02Od>Jȶ|T%*nB8# yF4@ `aK-=R9H-{$[zc|\Kpp2InH @U;[;JZG^f5z^T 6|RCџ@7k8= b? D*Ac3du%7U %buiAgـt )&'0B9j~Ëckmܛm0Rs3-(jȄxτLlo[?_]qKHkR%qz"-7tUVVf e' PwkjLCɬoFVXP1^(װ֣H_4@Hyr<}ƦE,$:!$ꌌ8[`G2K.ݕ,R\n"8zj"v|^?ơ-DuGQj?apPqbܬU ^ƃfՋDC@fX#~o)D@8i-DUg2Qm(i0lvcOv9xR R8z ą7:JeP^NX9n+q 3ӔFU;=bĬDŽ]吝l8 Il84e[IH^q*_f=IDqL=oC:D 垡 .ȦTAŰ)+"ߍh:*ʀ^&q(Ȗb*Xd83lΛ0C%><]~X%.~M] W/ojYj C[sqX~{d=]9DɷslJSA)O8PY+G%Ghr~ǭ,PqF Yo]_;J;8I~S5i~'Os9\R&Hl3oDx#qÌl9EF!{PY \\+#$b/2p+r,)y`R]Cq& pjjqCg9%K4lLzG,.hĞڰ~7X [UG˳qDAS|k'4\װGl)ε"hvGŸwZv] qx|'%K)/!oՎE'8_viUZo,eXQz~"ąZRSFӲ(y˚^feL3(0t-g6QTwd(H蹔9W"TJu 'H -룏oÖ;pU z:H?d Mܳ {qC/˂mCЯ`c'..?`Ч͙"ӱ_;*8mK\Sm}8(] [:- iw$gz;9>nNEw̟*|2ga;]j95>;5fC4rI>0qPjRf\GsKc1<َp3F@k=15]-l#f˵ϯЍ#-;V7JQ Þ VOkJG_[mvw5*4Wo&wk3\*cl|q% 'Sva2wUsM˗eOeoJu_3c;vh8gz2oጞ{W# lmH8"u琼}P.secSvy9+z9qWc& Ј >v2TX00 " -)vԹf}X;QÁ  MI[QHYmVE c87;c$5@'6(,l$qv#;ohiD17Fo0N4}uiu- ̾4&˵ \xpL2̻m,ܻl`ċxjK mMlJF`9{aN3 d3KQj3_T]?KdaB'~{%r7fn)cW+NqeuPvrHN… η?چC_ ,IENEW?ngXAp yJ-7HCʕ$^LNI'`# W89E< K7`"DlV>D җ)hP"`&QTfX֋W 0 mP y R/it0X4@4xD+tښx%cAVq+a814˛\-fm;;Ɏ/_VIN 7kq# $5`ڢQqHײat-;.H'/Nfx_geu=j$av[ͫ—V p'4Z䊑K:>N%:d\g-CA$Ѿ6uIRvUnE5$fGhbUuA K:Q>_AcjwjI5YHk`ViI|vRxJN9 ~5D&3,"8n.-(C(\˾\1EspϻrVۈPqbb\|6 %8) .EP$o/LSO⌬|UJ7AʍuwzիpR=z8˾p>z wmtno Aחw|I¶ea#f7JEeڷfgjZP0aL>ϽO-I;pύ/ (tT^*$CZpM%TSe=bvy^a1jSkmmH0%+M7 ?#`p^:79дc ;HG< :Bvz 9|C,PX0]Aِ4(>ڡX&sNa <,q"bZpnŬAkU1c,^O YĂvn`Ӑ ␳-3T5laIym_X6#?F;VVݼXBfi*Vj7 Fl Q(4o6wP ibniT3̖}XghJ>{tv3NƼHO1Yf06<4k?h{B &G8(Mc"% =Z`9Vv]g#ttʫϐƇa7kiW;5lQ{YU6;"d\=&7x+R;_Fc^D{Frbx0 ߞ0oL_ P;k7]͚G_tsۙ:D B lp8K)/3~)A7 qe3nHQ hn ^y^ -pAw,6n(Q4T@eߙm[L ր69(K~Ǣ&ꑵ}Ps^$6-TNV Z?zO$޼4 7l"z;9c{$4 Ap12#Y7`VL;IE~jqajʧRAgp'.iSXqղh_4MqcoDTs'`=n2}&=j'BǘOoБ =V8-9o%<EeYU죕NK^ 뢥^t,]c33}”ɨF0xHzquJtPC Babc}pf&?LRaHp20o ypI?BK ٖCrSj3doLQ2W 5PI“to%_Z",8t^yyXR*mhC%i^ _v$fүd-fb )B(z%fso>"rs=.w.@4gUÉ6Rk H+xiFwj8:nV <ӄ܆-u,E۪jãvXh!_lv`[ *"v/Z@>]aGebBjg@ !X:9CIktZ$5 ҺO"C8tR=Fyr,*QN}6+s΁Eycd4]Boc?8GoJj2ť8"eL=\"-R c&"%w0O> [)(S؎YĄ)e3$3NڱQl_Ơb,޻$mR3B&vC&^;#|D la m~nWZ- v =3) 7Ɠx[?CuʮL8E_\x_י bۙ01sOR89դP5fb4ndY*eAtW* Jb)Nv l #3x=}QaP{f %5A qܡ^ &L5S83@baqt@?&<ܨ̈C"%s_Q"r7!ϛbW̉vz#5^h/ZDSTpjH:fU;H0xݭYrsx3ui4uK锶;pfL Zc1(Fi8YNzߘHU읕4P:2ԧ%aRq1{(*ͩjτf=[1~m&[昑~82L>ヾ]<ѭL> -jXD Bo>)-.3VyC)f104GA"2h7>D{;H#خY)i#H3G%'3 *CX>8Ϫ`Ec:l5D|P^Į!geX?| s8{ "M9CV261;a]!GM8ora~9|CΪ xL)6NC O *c4vu& ][Bf![\,nY_ {@ ׻\Dw u!ֽf$G hѺῗpGbBkXk2b'jxnõa, ߁0g?:MiW˂<)!Lze"p*Ӝ{ l>K/!:{j ,j wɌpShvn_/V}" n\"?h*u` y\'TEz!Dxm+?ju KJW\lwu !C (%9d$[& uTRH/mQ : W}n zz}F9ܣV*N%8Aˆ\N]&PJ  v-w8Sk|}gEcGe|֌nHy2,h2xw47?1aTb89e&}BQf Z~qpߢH˅îO6P$yŒ{ϩW,^6dEM/ _ǝ2?SpR9! ` _v+݇T=@˻Xi3K/TE!Ө[4@lazax44Qh>71* }enְ}PnoZw1FJpt l06}Ӆ[ɴb){ٙ_~qδǁ6'yQsφR0GwCGo珋GC7Td˩{#9P`R.&f8yiSv잜xZ/wiGf*Fz<樬Y'̂<$tWʦWOZi:NMK,`IB;M8T8z|eCO$M{# (a4`&󙈲*4Ta͍!^>0R(X$ר^/bKa2 ;c$^BdFΘ%qy-qαq{We >ٻ,Ԑ'Y%%R{[({8:ͷU0?~+ fq;zYDLLJ܅cNnwwGAK2w1MRs+,(~k9 P]rzD+f;E$ skCۿH77ݢ_ԳށGG8[VEKD\eV=_s2 $U^d'c?wŀ]PhtȽ1'8dдKTĸˑ sl1u@b 3Ϙy.J1Խ.cNlvo4n5eV rp_w@f(KyKQEtH~~A6) H3({ 6Sٓd)Bv:f.65>,8r"l$?4\oUdŐ/ o92L4.X4ԛ]ȃH>^!5Z=VDa>ViQ c>4ίIg,'zi#υS (Q%a6 6L 6šR81ABJ%R^d\T$"KM<:/BTDx~31((rXSaTJ;L("WsL}+lFS QJoWU~`tr7!VӬ^c6l*GZڮ?Tm&Ni'h֗r5Fydy]lnpojtVӥRNJk=%v! Bߤf)0et ӾOdDDz5!Y*NWmo_Z>s@{}( ?W?bpE{hnaE0yd`.ql hzI̻'όH.z%Id w}b {TN)ݓ;6fy S  S5/@&x](]Q3=Ĉ AW^{?zž  0-= {!EX>+dj' صxJ&ҁ\$C}Rg2l/yN*ᐂ9;6dž0hęEFY@P1N?(8[9a|V0/Ba("O2w^O"Qe2>X6CP՜OL;݃5w`/g/߷pch u|6*SU*7-볞F(Y4VDP1: )#*c^[<; .X{papa6ӣ7JEV/([NBf~Mcz{t,}Qs첅E'ٯd,09(V1 LG5=D}ζKq #⵼g'g#?g\Y|'nI&ѪibqI&!"%|hASSq+P,&$AwGg[kĸyɆ~M[ըBېaeI;9č&(i8!x$@Dz|x~CݽF[c&EyvdXP>єQ';QCcN´ :@_z {yF#[}d%>~MbԻD[]]uK5gG\{ڠ b:; _S_^p,bbں i}vOuGw:_;x T#^ O]c(w^t]: PqPo( _Xbq.EM2-pM~|BJ\ew b=nYO!Qꭇ :Ez(WIpe8g Ќb)euonȇ `$h1Sd;\5 tW$LĵQ .=>c3sɑ;ơWLlG(peŝx4O=/>6-bA^C5ٹгeN=դxy s~<78h]?P+w%ѻA֑Fe'=,v<[ksCq4\ՉlZu{$puB\--Ytysg%tczbNJ+9O -ң$oMRkOrRt| 7x5=_< 54OWdXM+?h{ʑ4\")ﺰ N QVhDH"3-p0,*Qoސ-n(|U|v x)#H0a,õWR,4,K>m-D4lTdVq) bprWh09;ρ+fM8vͳmnu,e>\ c1!,_VF \ՐX̺ՆHD*}^&G'MIG胴BiVpSmY@1wW}lZ$ؗ(vL+ˠӵ¬Y[}KgX9D4EzaȚA|_?ۓA &+|cXXIz(W&ŭAo-eHMU.,/|/WE+bqvX+vf$#A篈 }>N%O0 gFrkBn_߬0nnh֪&_x2*mQ*#Ew>b 1]qMWq`VnynnRF^UgB_픳SުNW񤵁9]pUEO`m{}tD@m_>C"%f"@ƺxPje&s0#Y1"(n9}3hvxʰgb5 ʿ9 M@jcyWldßV?Sa9Dg-ezVFbCA{9.Ĺt.s]^ˍ6/AT=HXS'a llՏKBaJ Wdo?9D޵$| d+/%ˀק! lGhG ^> 9g5 0ܱ1Ek$R*|\2`ATDK4bi4Z5$q`Xވ9Y.P%zU؇al}a–68.wlai4Ii|X>*NJe쭡^ͮRKYwjz7k"NUˡ%Ȭf}). Cy^;^M,CX*J͏[f\ܔ>u+b|_sDj."k=) p-pкP x ߣm*ޏH({RֱkDS;Wjeqs}̹+h'tH 87C_4l( ǜ»/g7s8pL& Ok31J[P&C#G(ƚܽdpXi;S}^_AAOip44YE/3Lד4st.LΩ Aoj8@쀭9O[y"1{wL.)xLфSWC!svii `WR:x!I W`^ v)sU%vө&ovaɨ)/r@[jYhkwco7, H!U)^7O^ I@|տ?~(:6WU@.\ĝ7\w9+maFשUb;j+fPoS RݍM!]k$KX6d-'`wb`Թ/P Uͣ n<浧."(к('61=V >bt@62o$Y~z)UAdVVMҚ ?leI& |Q|#~i%K`yv8u!ơWd{Xґq 4t|6 w6_d{GtMTgS4QxR8gdƺ- IS{6Y`瀈Aε]W[wjvmWpXQnW3thd!rz-y\  24GH3|l7[AFer=qDs[^<۶5} =&ٖO !v`#k 7n^NpnnWnȨl9s6kxO Aec"fHk!yc*–/A.^j9hj,od--NT?%M]$iGˆœaaPz}R܎Tԯ C$@nfcaǃh?M ޺LVm #ӉX3>V")k>R Řxu}~F*(w$yK͈ENV"g:Nw xa<)SU@Y bWՌ4^APc7`DTBcz,!˨9M\:7<\s|v9(ͷWdrXvfyO%1{eo2S7`x~KP#9rZLڄG![=jO"!1TP"e`a8>mxpG\sjo -F<lDF]CzNM=vq˔FL~ kFD YyFC6F;\U>4{Jl.?;C/'o mB:$8: \'{gy^*Ww Mj91_hf@S\=Rj-55͜+3o%o:wC4 V"mjZ䍟w.@tz򣇑4&s Boǻ2~uŠ"G,俟־U>":wj5WteLn5Ie4EQ/d}B@%c찔c=Q;B!4cbO$C B}'9vE n٪ReŀEȖe[qVbSXLr_:lh)v'ۅlfe=`7T 6Fb5BC~p_8c(8ʙD"9shZ{S5_.l[mU~;tN6bhH$;/oF5D޾cX{G?!.o|ޕse'iW*Pt-wNRk{:q^y}$m]:C *ғQY;x'HFT΃.biR$(⪣nwW Efe) (=)piEu ^Ʈk/B6/pŸ^f/& 2,-J.;뾾Kˤe,0[qxO5b=th]h¶D6_T~w0_y%ϟ"x/ȏ_aHzxZ }T!ֈ^,|N_'ffHy Z-bgЦ-.]guχ60+Z7w :[pNPg4{+0`mgU O֨{g'n]:[ (ZV8-HT%yXVI "pLlƛ9(06e)\Psg^or/4^ڠ<8*k8{;Yf{نY0L(>xvNsܝ,@KB/}K=lHdn9AtS'7wRn^?3+@vTt42S|sfD8Ci"#OoIywO/n8ǰDvۍoTa6jy( Ѯs'c-|jNs$ʲ$[URJbBd(۪L:4C_\p"+ӥ}ekb1ɉ3*eJqz/G6vCܳ0dkMڧ6-q Ky 5o2 `'jRtǑm> V8wT85I#XrG!\`(`Z1Ԣ~"6ˡ+΢) !%Utk sg9I>^T 8Z j !zyxe_k,laՃiEEoVCj.Vg%ݩe}dMrR\B\-(-P\-Jy[ ְYS hf@qHt\|Þ"o۷~Hg1mrcp V; ȡ,XǗ#n.>NB9s s[ ]0S1l.PSVgC pl"fNFԨllW>Z̗2l+h"4J›ou'ݷ&m uJivM_w@]=wC?(hNkE}i1`n( L^ҾӐ^JWAK3I,`Ѯ3dhRFH 7l,Қ;(>.8,Y*?D S]8n׽)-؛,ۄ c(8R#K^#.7 Ӿ[+/shϵ cDg~Ϙۓ FQ[b}6 uF4u\>('szv Q9 =zal䶷-yDGz Gr:^ `GySm<3PMr>ks?5qirh$A-lxS3 «WK}u"ɿ%'g~K,L8WXD]~=`vc\(4':Ӑh֡Hbk]R@95fΒPJuk^{Ugi2.rzsvC7[?RydHQ1bgPz%O%bA1$7De85OF+߅Wz.fO3d`Dƍ#?c+,7VϚ2E.(CjZ]Z|,k|ӨT[_'[9wHȶ";FtC ߥ])%.qi Vs`ZKEJ&}AA$@\B?CqFetfX qW2IP*2?ܡ3@-6!,;3gwX'GDŽEȃ\ǕHy}jz2%52@cyŞp*Lqk[gLQjy3]v~'.^`> Da>VrP1Lߕ[-Ɇ}L-OKi˹]ۣ)2[v3'P7h pj!;K:o11`j &Fn|2_CZb|AiXui˜h~lo3;"P]-0af+:].k}5>J;yc_\Z I=dB0cL\<38Uj=`j`qȸY%T" ɯA:yzmG]| & {l3>/l]6r<*ߎtPj*U&Q:BRKN> A*IF1Sli |_LP\Qf A-{~`Gzkl "d Iby1i&Ƽ#^SA}"T,FzT]A+' HolegN XQ昹q+yl0/&p[Gш'&F|qmܒ\t(mk%8̳'ZwN!<܅e3(0 ?m_4YTCvD~䩨y@@ 7cC ,VbZ5ϠWVĽoG#n-^[tWMFEdN>hǮ`\p2TBjNBI쒫9fO8en1 s4jC"n%7X>;Cs~ƹgd [TK=N"EDBz{|Ox5Q3+asijT8aoLFN-z."w wPiZߗhoLue~>7d[hA jXrsEV|N3h}*i@Wݏ|J/1-W5$~KV7u_[O5"[ +ysO;1 1~DSߑXۅd$}+=tDG@` ^lNtjKTFwo4RJxEP#0hӶ8sU(&|i i >Mk}ıEi Dn)h}n64s mo>g@vTRވ sձW, w`ڨ7 PDL}OLqHNԞyඇhl]pZ'g`1Bƚݏ#Q,$(2UilΕuS"{5?Wʬn>zdB ~rK=E,x&hQGG¼.,tX0jp-P \Y%s*Dvl9Z|U%.r )5y_i/Aצtg}r)wJ[s?A\]L)m{yz ╆#\Na% Z%u/O$ g3MiuV KoOBrwt+`⃥MN 5_va߬7ЄC|n?L+~)m5F#)ͤrtpOM5=-e+ݕf(k޽u^y_l5O Ukuw-X"-6. 0Ožvf=:g;IKkk_OxY։!]UL؀ Ή7MS3~³/*c@baf3>wGwPxB!LP0>NmNc\WP8FBunNxa4rҼmٷ{M `pLXجJ|%t׿lz)bŎ`}JCW^kQy2)3ͭFP<~pwS't(w'y7K`'ND QzZ?Cή$eDu-L%|eS^Z'6hv[lnϿHX;c/|6u[ TS.W_MJR e WdF@k4u!6i[u||aU%#zGؙU+ǽԏjkU6\.(h:+Yxe\@WTQn߃oA;?[vVIK8jޞ"7E(5?Jj_Z *FH+^?(4/rqsĵ@n€t[Gԁ]vhm0DZ72adARn &[D3EQm%U.n ц-uSajڎAgݝ!!;Zc0,2[hr0UϕQhWJLnxq4O$29c̉3.pYƲDiB'WźQm뻰y),]6 &@S' jQ!{tMJRν*ǎK$b5Υcvca6gfbM'K yj 14?V&w5צ#lg7VӨq .!Y疏 7={vl͙~yxBPM#WO!Җ'fbVC{^MoC+쿿Sxv~qM޻=jaEUJ(TAԹ@40W+ #a*Rv?uB;OՊzcf{}eB28H 0~BdZ \F`FlNyXMʣkwҒ'難dNgR4@JQ[ӓE3. &mVk6ܐ%[M}eȣ|%mY w޴d97i(2W⟪ye+txOP: z] +BtVcߝ@Gcd]P޵>ŰiIJnsD!RvQgTk7j@5uwǔW'?{P{yߊ,rKѮR}oYY}痉1=P( MZ$y-UbpS:9m岲dX}5]G;ai$ZŅa ߥ`s~U-p]Ok~ġJ~kd2'lYA #>>d! ,Qe&"b qV i2L_`jkMD-hPW%"9^Fmtpyؼ/_]V1Яq$o׌Fē*)hp ,y'&uPbIk_ 0'@_c!eI*Q՝R[\xqd6S>lz1p bJCN]=r/>\=z~5+cQ C%\P n`aHsH>.0;kB;ʽdT;.CLA@dk*B?ZoZ8QD" fejcS1g@ 8~Led&Vg?j+0ޡpfӉ(J@nk d>%9ֿ}cU,`piBX0 W GY69rwܯJ>6޽(nOHzY/SR:al߈G)LRȎ8#)+E|+@IݮN1~8,U-W$?:rI\|Ozrl)aa!c2B{'75 ](q_[W_4NL^ g}_a! 6uCݪkU;{6 +H,G-$:Ԇ:9j2RQ.~kPP{TPc2Oݬf;ϐM T:C$8J Wȩw`~iJ]td;25[Eh=T:F=p}U'W/D!Ć' >6܈o9AT.ehNUӂ] ǯ~S%(Ⓤ|F@NѨy.!f۱N#_2hN$ԧèȇmTxL@ぇ5Aڂv"UQKYͰGWt-R@ݡyo܄j0Haݱ;gQ[79Ts}b7!BB!wS!!M (К\L;X2{[A)[̱k'oY](7nJO3麰G=Wt9%-v+9iF,/ԕTR(L$օܶ4 3[z ָ5y].Nb^ . H;ar*9Ԅ7I¶Zy 0&mP2Bu[O(3Gpp'eXQ#Ϲ{RU1`c}_?5g4Wg (C-mX,n#I<\l.tr-AܸMb53ɟu_Mw`-Laa 7EO[6 %hĎXQil/SiLOW' ESbS*j&UO T;#xQq n-Ym)31 u !9) PxX6,Cָ_Kj~Uӛj"/qSbHcVY%devIXCudN1j@۷&RO(J0_^{&hpb%6TM% n4"wzz=_+R7xf-b; ,{{G| gw4}^_2A$mCq&]☹Φ6-tnY@&)H)+t4 i4)?@!g*L 0ptN#ͱZ{b xm›P\BħzQSsBQQȳj[N%yAHyE|bP.amMsQv|CC+6~P-ު\z#b)uSGu'׫KcmOzab=B ) P!McRD,_DTZ`_r괡=ZpAAi793vL_ ;O/PbjVXUL0/PpAH3<[ ?Am>[[}Zq| N];]T犡}O /ܫ]/1Bfg(HLm[:@]C+ťֳ2j%J1BuذedZòg ]fTLc jM&jd]F,^CN_AL ?ݒIB)/g'aG߇! _7Ymd颩Tǖ~J/<1ʭʟEVءs8#޷ TBj785G 6j?lLLm,i鐖%Wō@0ѿ7?#4Kۜ8) yVhȪ*@[72Aoϒgv&l\7@f3s'Xwz=I+` ~`D。Yeh++ik̶j`5,;JV(v PBՉYyJm~25{*g'g0 ~2^ I) {r;Y &*ٵsǔ^]NP?FtBA?r:R!6<)[Q{A2x⠗<0-i$Cc_[UYζdX::1f32ni3fDJ"ɨe|k(< 2rlyR BMz?*0D|en15D֞tz].!Yo"I 5&XePH ¸cŹfhW X+-Z yBp\`SF&RDd>GZJ5W[nj>h/oIn2J ;|M͍TȿPx?k~TJs6kme#kda\Xdؔ(7#lޔ}wVՌ"*1y-'-ht)*@OMc*;Shh3ԩ[7r4[+_Է߰z)F X%bG еNk@5DJix(.e8Z lEdvF`m͹sjљPhMWc;;cXAKE6ß= ,G6rvқ0cp[Xu ֖Y(?񤹥ys9H2t̔jBYL]g(}D眍P/yQ+3cM.[0eY[!\Yf/2Ǟ0+0`񨂋FǂrIŸ zfyV/C)a#{]4WR܏ї{@cѰڊ}-"T]v+ t(hC|E_21JgCELXb̮U )[>iAuz eY]`0g:>W^fª?G[qNw07HҮBO -! rlXIj$-3זc1 ɶϽBǶ>8Pygo밯 L(d~V cVL)+ 8&[~_,G(;l~v+r<>=:T‡ăPO|'ø.m%2{kp`˞<ɓ8\=it˂\6KrQ6aзfɺ LҹcL~p Va|~enanΒ`enVzArGpbA *1$ޟ35{/Y}4biP`H2-JJ7` ue\)+^ }1dnx[yx2bQ𮠞Nڭa>CȂQ!(ԣ;0qoy#5kfE8ޗq);C G6Allew$:9ҖlSAYr ;ci`VR%.eeB&( 1QlZD'h {@gea6S!4zѥM>43P=.) ?V*[هA)w3e~3`Zl  az_LF4f%cǏŸ-oUpVغzn$@ {W,2{-sIײH RYG~#9?|\*`4ERݞEa5t\\~ [)$OڡQ3(QU{&9 ? úJWĆ)\!{ l^a1K=R ϺE(5T=&DC%AGS*-שk[~Z:YX#(s!P8ṯs7MϧfeMg∠c9oezYNs=y@-'NklqWXih_e>wT$Cķ.ͼIYX\ B4ƨr&lMZ\Mi4Z~F~~0;SNKVrtkh$00CW/Cvr%/EL^oh ]J('I [ġ\S o*F}nʦnBC,~ X&a"gq V t L,#u6{lEa38 V}L WќbE֜C8_́keAV ɫɀ vc&pƥj^y׋A9F!մ 3.!ɭ`F͟%"t|LRJݖbSל'TL5 BIi T¿5T܎}4E[HiOIUd8ib+)>wa03eθ:_~ydDӡדKUox͕X):AaHAAow' Aߥm@bP)gWи&}6C6m3#'9I]x@.gK?Iqh uMBtg)8Wz$M@Sln-֣ jY\S0 Dxx=7yn xm^Ćr% ghA C{Cd.!:UGB?w$-oz 5(?aOMX!l)3GKd 9P Hěca")7.s\mGn?/ތ녌i]IcN0[W亼tc!SP3: qpg H sA2-~ߓdH8v!F\C\e*VsDwrT@kϒg5]7`ɝΞdzG4b_@uZd %|ߝfct3.5LB)o`Ǭ$, /in*| \qCā> mؗ(XR-@t~'OLB@aZAI_ƚIxH&ror>蘶hL @=v]h%ggDzoGֺw @t2@hi?"kȽR~i !|0j[PS^_Z-#Kr bz0}۫O v\[%"uo~Uj=pJ.C1<;@78^u+}E>Hpʼxn# dYE* b;j4GܚG J '[ET3lrW/p.duuezD- . W$JE^Ǡ~JYhR9O8/tC-Վ7(z!!Po$?2C&(ks腤T HH#0@7!@5w1FWn(Fc={f lW&DK@}%s@- 7PH~ B=1u}qld߭&|y֙FdjtFqYl~=(stI50ӕ}n+@ 04]:96?I ]Dr㑻B o* xjs ڑtqϽ!,Cn)'\a ޤPDZԶB ̕">k|=CtgG65ph~þҦ @O7xȄ"d7tN[x,s˷ӕEDFv˙4U8L^ #fڊenzd*gഭ;i݊G门JIdOZ]mHFfK4]6HQt8qt}$r@ϱ[Q+J,c^q] : s)s̓ 5FVE̿xk.9^P(ct7zgd^g.4bh3z͗`2l4_9y|m؍ h|Wѿ,"";yJKaPk Ձ $1VfQ)eVɇfIf$I%X2uS\)TGY.*ȸKgk'' -yw~%g%?Vb41+~ˤ;g. ETٷN؍{b c\6u꓌kMɊ,OSwO&{10cH1]'` dWNF2y6!qul%HpQ9Ժ-v PU2dKV5a!%[Dv0VżaV\ͶDӝsGCdVZ>gN:VW?(=R[m>#)%%䋪3ڽ+˕qi66z}7{{&5'k 3"uwP?,gAƟ;F}i4=r6Cez"Mva-F mґW 0! ZCJۓW]~#ATU EŢ3]@؝9onloyhLu!@9c9eJE7x~c6+WdΒ;U*-ng|amAjSz =EiXjOspY&!%}7wTsP| "vTm.͟l,A:T۔bg%dJHX1 U/ZJp BQ_\PR?βy{g4B>* n͛(o4g+c.V( ϛ!1:05<ȼk"zYxWZlx }֎ETk]yxy;D2hu@}Fu>Hvܹ=Qi .)$ڤ{l;3*KF>g)h]|[+Y5!Rh  W-*`2|[a)|k~vYY`kD2|ɳu:-A%gȅ g{uJTF9<0D Ez|!5uh2 bqO?=k#a2"EzM_°rin,bǓk:5yʦ_=tcuUY\TRc"F:kj j̥4J!_/[@[8#y{5̾za:.sh!U[$*BIwi~MyxDd_oYlC<&ڭ7]@j;w fHxzp,o\h.Ѐm:B>)&-0c\9#ZGV³SU]2+ I'gm"aj7~ _۲651sµ_ vd+ό k\lTk&a :([ֹDY߻܎yq?q`xFNm.q\: 24V?5k vzk9~1/8X{Ax!S˩d5yQ~'GGD] AlYX 累#;߁CVx7"d?K(kS*#zēxh+~N?iFPv+\OvRz&]:W %^eYJc/nk @ڞC=LhGY(9cMBsozTczjPR#RM Z!=V }uP-{ Zq`fM%2Dl#츩W1kFZ=ҙ\K2X0nK׋cTWH_ŒM{e$DuG>G8C,uV~տq 8e-,,ܢ'H[Fi6c;^M{?Z^j9\DRJ.6؊(RU .UEcG/`tH5KuKHoOs1*a]vЌyy\i7P_uF3U^8!/fO< `s+5ժa_5^9Cx,AycFVym%l:. W)b׾meykӍ>VP٭wEI[xT>[CyUiӰx'@{PeGRcC}T{}R@Q{چ{ӦbWQ&áZ3QH .3ɂ׬Y,Anw+Gш1O6$`~Lby`o 뗫޽ jzMt,O͌b{5ge";_ 񻡏:RCAFIW ʗNak\ej-sBO no3.c[l؈3~kExE~:0zn}˫{SA-bj7N FXQXZ  >O\pWV HqRctn/|{:Hn{;;L]WC7Oߪ/1=(Q˽R+6)s/&1VN`7^\N]4Q* Y: p"$7 k pJU͋We5+V1!Ro_-R` 2$a }/3 /)o)F3d5AAu(4B[m%jnNl x4ι&9V#,Cwq`ZZ< n88zhI6RJD^^݀?lPtWmhàETPKG//8 7Jj \FiE6L} NmP77!Ё xnIme-$hQjPXDӕB-}*_Ayne%{3.|qJ_xÉ-L1#Pwr+$ T)qt;$"v%p*9bP\tVxk jQ&-WKأD5݅+٠6ZL"y4{p'5s%۩KcZ<+>3JjE0}M7 &F|!i7ԶADW>9yL˒]=^"BijÀ*}kw }pk;QC4,;Zb}DBqAmno'r)e]4Ʀ)ځ9L%U/ˁ+g谷q/$o 5?o ]2أ65-*_~'>Q`$\dgtdCiڜҧyؼ׉E~'&Sh`/b=8ӄ~7ɐFн!sjߩSрm" _}8ƍ#r@RC=oyda_LrSL;DIyF .fzw h`J}0\ð:ڈHNoLnU'_ gJ^o4 pa*V󙇄@)gS]X:|8dIxrpE˸],pUD4`CGNHΫYoFD؉&ғs )6q~JCMLj_#e7ZD_A(j# w͹y`O1#,B[y-nk|9!I]NCa:/a6s4ТPڱ5S"d",yRziAR&q FZc5caG[ 0P7فjC)w+nr }H?I $Kr ~K^ ݝMtBg/:YؙOJ4cbRǜz8dRli|sn_{# ]S]XQ7ޗ-m^ߜ:R\"DJiԄ籉͜&F&DFSĐ[c98$uW3o A.rR C6 &_1kSX4HUeCmH-I{+1I3;Mw-ߪxք+r7xHZJ/-9W'%z_v/ zDN 3gj8(|g7[ Oo8k}˜pN\ J6PlWeL,[P%6y#F.bxr+!NƔ~p4 ^aŹ;4*I7z?H8YP:GxX5,8۱ֳ(R3._T@rV5 qIk,rr]1mUGI4dtbn6GK:$װB 1y3y_}:nӟjڬCn^I8ͧfp&۵v@!3̺:۶ӣ' R# wP$A*:EVcd<Yad3аNƁOw02j 6вRd=GZ` s,n_)<686iՀٕ^]d͟#o8^ ~nJ@wYל%),+íw9)f4/A[߫$W7ph`%Ž38wi4YM|ӭ9hw35#XÐϖ$Ąl]jt[YOʆjF 0H5xC/ s9S8pdiB ; vC.h=n⊕Đ[$koaٕh5{qȁ"RZFKƨ$D5xF [BݖTqj𫓯tF1Bx">["0/ކShZ7\ k5[[^ǙkJ5R %"LaN$mMC  גSek_̆?]6s|.|"},- w7X|quݬ+BDd)ܔXwi 9,h F-tW5sg\$\f+ K 1 oƝ_{׵*T?(Ua7{21!5b?է5HpTKo)Y]FY?#oOv'z0*6 r1_O2:}^^3Zb \7F;U]-?۝WSLXy6bRb*Qv?  3RsHm#8+L4}C=[-]Rh@&Br ?cxD]Ư!ʗUg-;Rv;qc5]=Wvl,J%8gDL\$!&zGl,tyBߩ1ˤ9zzYMzGk8Rl.k"8JH >GF%i.B玩Z(2Wc(NL@* 'N EM :WZ z)$de Hz==D> 밫PSwbY&Y]8Vyib?e 81ƵaavXkB8l_C?UޙBz(Ė%rcY{0*&CzhQhbgF1Iz5hkt~HUZ .KVD@q}3 b)5,I]۸Kovy؋c(ʖG i:q+([:aE|&-qF/z=ؗvf>\чT9ǞHgo`|yL2 o Ii Dcb9 .SqzJ}JZ1. lT'H#6euAiף<Bښ1^Xy{b.d= LL;Y.+)]ٙ a#1ɔ]Ѷ1gƤ-* k~&׆jGn<8(5n#tUr;AKG_h4BxoՂۥ [:]ӶZ+|c<~c7@O 2ٕ>+n6E}f/G>Ҧ<|ih8ĹՃTTU{y[FhV.N|BT^-Zitb㎄4lߞ'H?e%f.֫I\tVLg -7Wdz) Sd]kc`tNs&wH"D 7xN@:z;# ݪ9[$0 0|^ n,N"D< +4@l*[.2'<}cC~xѳČd;t=9wcl\;5.M](zkƁcO:ecA`-&jѠR!kSNe !]%ԆV]b{f:ָwAb4cUWy )1*K86_7 >]T]-_Bt2G-ie, (wd`:6dm\jjly>MrkT+"&;NOS›wT{&l`̄"| >K wR=p=> iyqeӅB'HY< Y3`𞚌1o@_rXm8+ϴe(Q^׏-6V+dJݻckOE\&gmyE|Jn;x~CE3tv5*èZ͋r qty99N1)]5=(07pcLcHiɩW$ˁuEIپ;)}"eCm`u[t?ƀX&\|P,DgEl.{ƹ6n@tBQ#;‹tݚU K3O(!̨ ^x$Ԥg]I`KW*MZ* *&䅾u?; eEု* )՘"KةB$9i[7fQ 2$xXZw7O~)EDL ۡM j$WqB#Saqby _9\UcH959z$( >=jMo=\70 yUE5iFCKQ*(۰I u05o^I%X<"&rƳD.Z6&DB# 1JHL`9;ڶ0=#[8y];Kw̛A$9SfA.oX>mfd%9Ю6x\´~n ANubpZ6[ b PZɳvUEQZuCO=w-%Wq%6y#E _$G=Tc75~kʶO0LL*N\)FKjWKꔾפ|fUD͋+g*^#%Uֽ$:EgQrէO']q !LRuQ?7P+dUZHw#)Kg? d^$ 8?HWƋ|uU<[3b\G{.J 4N, t˜8G<+MdC 'zyx,%B w%=S;Q}b9|PI+4ǹC D *$Z{B(#HWa׬yyAUjoR롼ϠVſߣw@-GSrs6W/E NP=a4/4xyQFЏ9_ö|@L@h_Jgr̀?-d-qA_yǙ16s7G^m{˲7ڮhğhI̓[OUן&<~¯xt㏺%cmD\8I"Xݡcݛy2^(4%qR MJ{qPxIS?4(FjϩwA.w{V/t҈ކ&'$N(#/+M_!pGp-QXv-z:ȨP.2z4%sZ֘g)2O5"iqMCA{5V_6ID'̒ڀ^qv6ģ glXׯ'`!4rf=ITsˠz|JyƱRw0ЪW/4_hr7H`\|ѩH/NHN} l,P= p殬Zf#5,z*7;0hSb=s^v3=`ȁ;@ 9Hqb(*Oc?@&BUG. +c;pj`ޞ.Z݇6ѝ% )v84:[{A_}!ġs\0}n$* bI8J3"? uBO: ]?'~Y~<~Q&ٖnwRԒU䜯wa IZxMp.+oܝKۜd!*5Q F,E9 tZƯ7!Ri=rR)%)w`No'2si/H7L .>t,5pӤ4vMl4%xe4Q]82rXOG9j’B3z`jߪHP3! zr,22KQmYO$2 , )yZGi?k |6]$΃ 78SCXe':o?/9_|(Ŋ2bOUML‘dCi&pD!_evk<|x yi;=#N0U yƹ uA%}cVD|JwjY+ OniQ4W]$!} 8:&C;PI\_ثDo-h芉ip} 5B{؎rFd66L)V[۸uĢ"72"b;3^ţ g\c,}PJ[jW+tN`:߿nR,{&SPqQ+G[(FOwP0|ڔ"h>YV0/OZv5zc%8g=ED(~k\%IΚ;B>h$ OJ?YeyD%=6kRܿi= t~\ cQ C1HvC#)٪A_o7'|E10x!NBTmM-hkp( Y!@I@q" Dl.IDJFvo!XmS;!=1i.S܂i^:YM_Bkxܑ Rw>2fi,L"ZA^~!B QA `v9*jNM̠~\8 ?ecS3U%K?gU] ĹG=to-?"XmP;ͬCoM, RF]b!A=Yk5sZ5/amYN#n aљ/x5NM2j$g||/ێ2u} mt5 pa[`I$DC :Cxx%KO EwTCު? E!e S_=v~R Y3[5*dS8OZUTE{_s~qOЃ Wp0?>K¼:n@=0_]Lt[LG]iL9qU%8=m܄eb1?WN)ϑĮ_{V+{d<]s@ۅ㚙Exݸat 4eV ba'v|V@hXMI<.O̵ T^p}i 6BJ+X'pRJa _:'Μo_SvnH!zX[ndU&7ucFTyh쾿Lœ˹V_}N0#6,SG3+ fGv:ozö4ʋ9SQz.ZF@s'`Ss D{g9ݧLBc!c!BW]w<~$@l*9F {XCaJPJt&SN!qs9QGU˒M`wh3Y]j%_.J%rf^pUb:}ESKNGAY~gYOe)Tt4B%l7hW^Ԅ)rd5(@ 8i΅+:n?Ť#*;.vh1!oum`aA86 L rԯCL_k.3^2D 3H,K[cTt@Hn/@DKq=T#YzyN>Px%l{hб;o$d)UnA!x4I݆i!boadv8>:|hvPm=|̆N(wH09g&p4_' qmZv}ov2 ]bMf aӯ#H*{T9S,=7iq7gC 71OnnF Bzf\uֆ.B(x-@? OeT ,ݰҦ{zY| Cf~#ٔ;Ano׫}\ĀE:(aCI{ 5 C?-eT1RžCfo_nd`w>FwdhRZt{0Ц&;%H֫jD;hhNnZ*%  bRcTgFQ>##2)E*xA1MRVg`TA8 w+LV;ܮ*x֭גd=L%aKw`Ne.O]ec%秊emlKU!෍)L¦P> ԟ-W_-XZ/Q_r1CRlrjD|M{,X q5[YN]J^d%l#Ӧ)#ADJ,@t@ X?LڢVľ:F?|77’o8Qe `9L fq6(W!tnjpW)VMȮd'5tF+U_{#P(A'2-;VO(i3@1Mb6DiU,Bl1BQmЛt?KD c(`ċ_G?z {aL[;}yh c)MnT8`B {EVi<%PXӕ'm&\-{`!X#[>N/=Jof>z AIQ,@_<_e:. 򉇆x`_Y=N`@e}FLnhY΄ n38f 3}G4EYwȩ_DOɗ܌[ +d"JUQ? >6sPM͕)% ON" E'x{l C,#!۷VU$fLl}d!xqMI߽!pHczkTbV߳$Q>L_rw %p[:Xeфy;kDs\|U yYE^{$Ө!9S>1J#8gj{ӏ 鹯${P{vZdpjmB*HNP\h1 ?rxUH\ hG=D(2s/> mnu& G˾}̰1_@x z߬3ɯ %$wxEEFФ>.#)^4})z}*A\nCh25PA2êa0@Yj~yX(qyC3lőyx7WD$ gx9U-jXp E qkAELBKcvk4[Q>'Lh|iWw |4SKzǻeFawX0̩|A˲3jLp@FA- #Q6L]SA| qX`ȑ9"}6 An;{@BN16͝y w}]eC0DtkϟMQ}!R~5wnPDc*+ܟpQ*gaqZ]:uEfŖ=ש {Ƈ >@>KrBz.ƭ<aD6dy.p^g~jԠ_9~}k6K9Qj9mF6gG _ɾd¬<P D/z<&eB'eBab)#L`Ql?`}@">I@&$%?O6Y7Z<J>/7ڠý̓ 6 >Id T[=0"dPn8^tpdCq2F˯ Gji؄P\}[ DU]ԣ-n)}D%ϱM`DwDG6q(x541x+ls%H"(7H|0KIQ}KdEzN]:s`';hz͔ E4ܤ$ZF4!ΑTP>$6K"+5g20nc&k%/jc Q1 _ l;(gtkڿn[͉.a+!&t쪎3y%8֘d<>{XnTx763w-}Ь9AJahV?{>TQO`&’DU^yO4}JNó>^*A tt׿>Y9$ŒCg彙I G"U.Sj:keM12O75v-r ?5'ʐ̯D-C,GEOw4pp^X^(tf6$B_T,oݷ=`^ }*y aTlA s.l=pG@n+u׷B ZH]=s+k3NW +eQӑB_jGKzh240o4y/qhP[J :/tھcL}1j0'Xosb4eCSt w?6Ҭc4Otm jd_n8ety!u(Mv!VxY<7xM$pTb]:jV'NlGl9d&x1ǯ1%u =Xn)xk X. [= Qx h h:>^e"Vܧf?QoLxUfr RTyr9 -D`u]iIIJ16ff l 3A\ˏ+ɰP@}/&0d`NE;(ƴq.X@w$bS>Nա.*8Xk"d?cU E,^ls6 a kI}찎QƁbУȀ,0U^%]iWیFTbn]eL׎!qsl@%c7}` PMwSc|í@aΰ<~ϴLvMĈub~Hxwk} BR@bmW8uhkFeض@u<) zfQB-ފ> "2*6B0Ɣl3U:0|{J#QS=X{ sb`41q9k:% 'Z(^p,bqO-gx!ɉ9 4ph+÷-XFõij[ak{wmy1 WUۼnٸ֎}/_H`%s.@+ĩ(nW?]RL= D0ڤO6H=I Ĩ _WQ2:#ҝm>. а(X.d~כO:DߐŞzc3&J}k@ߑ,7VL[𰐳nW1\2|]L.Fs@s솎9QpdpFӣ͕p*A% -D5A/gھɦ细?g77.UaЫJ۶Qow~饺>r #an_!c4"{10jbc}bz7r=p{^tɈ™D~6,#쏏@l:#+7'T~fz$=Iv~ǦӇ̷H^CTI/*XE?˚/o$I+dc.c]A@ʇf"TWK!&HfZ:ظecFfBDgKEU ӑskNp|R=-G"v>3hTT< +b:-SzD?TV%b9Q5n ^QAZ)hdjA)j*jf&/ ʮq@<`ؕx@1%0q .m9izyeԚ 1ca%;#H( S;z՛tQB(4|)ay!I(DMGgY:ŽPLqjY{%^ &KTIQg.WؕN:d+ e){ٷ)b"_N;&zrty<Ϧ{$0/D $^Iȷ^eܵN,!HdWu^fޔYJ8hDa{èS8ux"L O˒0&wA8-`vq& 1 t893 .0Eg;٦f^hFj?ؤ(6ءGc~کNpA0 >$_?}25q"ZҘѢ{3G  f8z ƺ:b u )&w)ˮ 6~ղ *%(wLyrRрSXk,dr{ɪHzmZμA8uNL=ԛ_2JSfTj51?u>ZXF]AC.|G@]71 u mKN}}\>J#S%F !hL`"񴈒5_hb0%3")7OwN=E"=PdqrU[Keȝ'f+Ɋϣ/0^ {^zcX0UP"[\F..D ņUZg $HkB9O Vz{.̹Xuw əL~ɦuت yW,BhE@ j@<+xe]!btcGaSO @wz&2-66"T8l'Ri"ea1rt]fwc-Y=NDpyK.ށ3다C6`Y 9!o xBY(KYztvE8WSg}~ Oh(JNՁ]WjG~*bF D{tEA;UbM$a1Øƻʷ|ߠB 0࿡tNcgk4NȞP!oR>e`Q|srpEgh$ ư2+9F .}w|QD-DOo :$ՓN^TmvnL5җTLC @Kd6Dm ͻwApՓc% ]& La\dg>mئ P }@]P?Ezvy.#ye-ߝa'<_UAGL` |7K&D[̗6NZ4PSɢas̀P8mzКr|HeoeE 7G8x pj`s'P ꩥ{H^1(?7 Z|1[/YrT+|?__ 6Hkz/YM{i˾xĦVk7!]9`փDo V.t AU랬k5MiiyIhPvUSzp@lKFNnMkrT$Td'(zR](O}Yyfٴ>|` ?JfYK22=緋up3o.lHw_FX3sIЪh+|MҧjւXʼn`6ؾ"7\sE>whVޢSyT@X˱{-ws,+$*c&ುa*œ'i>QYf|.1>GpNeh@b=*a_"+Aw/BOgj܅BPK3%=U+XkgHHܽbS go+f/NDYSH#qX%@?v׷w!{+fA!`_!^]۽n<'QU8#LzG7q4'q(Qʰl1'A6lRGiҤTsXRehbt?ab-Ƃx;0ި 4 ӦG*z'w>6bS&xEnM Eqs$IW;I76e2] RX˺P4[p3)xrYrpfE u]/'PV[1 A*\[2dPdI( mF@B'WK-Bts18*A Ve뙲zsH-o@a*M<ݽ45]JX/ms+!zFgByD"h^AYCqed4ulsQϘqCdOY5Ka-\g2 z+[<О8r`9X?p-e-#赨 ڭ u6)bei0~a|H#oiw/UHuɁ8@%D8",%x.!( aJNBKt ܊7Dv(s݇a"; ["h^ƖSsVUq蠼v[}Pe4,x,(0*R/1qЊhh(v-pn zngѫ|lj A}#`vK t >Y<졌p8bp`5SMiD`+|+(N5YޱlYMI VB=?ˋ$ uMsP.r3XA۔f)Moj F_EGQWe3 IY\ɣ6 6BJr77xWI-ıٳX*J%\cfS[8sG:! ڵƵ5-V!9$TzMApި>{Ig^a}|9AN}ɉY*/U:*N9օ$[/9GŹ3)Qb3R"|S ;H~ck1u@RM%7Yݯ\N;Qx^dsVٞʆ:VP =>M?mdSgC{ef-egO927r觵z>vKRQ[9lp^*ìE +Z-+p9ڬ7ɟu!`lMSi gjsO+GVPO<ѩ{Tdټa'qaA0Y=С;$U)m m{7:`>9>"Knu@cZUZ'] չ`Eů))n:ĕ(*oZƄl>-k+|`S_x_X=a,{8m &)R߽A!I(KIw!D .=E0tbӸ4 $J(={S~[^c-̂/"+.x=%i{vW0e0(!3d_P%T~_)9|QT) 8gd &3lVNَL''RlyɢD"Pz:+o5ʴmyr4iԃxi3Q郷\!O_¶킽cB??]9gaw$adY#gb 7փ(/>M$smk>ă4)&z{WxJ$a*1de,f^ `$C&7f7ӷ@+ ~X&h$KAw in2-N5As[G%вvUXWCjHm*s(f9F<?(WU˧xջ/'7?Z%^/bs: w H8 B ٻ7 u<Ǒ #F*6_+9SaS71.V<,c0$ƄUV9w,UMBukWlRp3`sp]x $Vz*mbM{cT,kP0/cz0*; J ˖Q*WvfbnJᄗyԉ$|sd7m@%2"^E<GD&vby\v-5 Pò%I- 9fV7a"^ OUQWkU$9/dÚΡi7"jsEeCkroPݽ[qOF }V={B9B@, EJD &J9, '(9k7U?ȺpQʌ;__-$Z4VưU)TD-0PcvS&d:>=5<0~$iu[{*D j&y̡ LrI|+I};=z8"RIm Yy9 ~NWEZ jXT/L &eN\ n%^;U}o̫L9;zdzYgٷSb{12vv)?o y}JwlºgMX1G2N\&QxNP HkEJ콟Tfpn@SY8DaH\T5hr Iϙ8ˎ3r[T-ĀXZJ%֤LJ$Iv% SY~xtRt er4} ؗX Х,|7a`+lbC&q>'m܈ߢ+6;oLoD2{:1uKƆ-Mi$0~KaD.Mֲ*6]oFKAk<_wsެH`p(yDi٦7(sԝ)Δ6s5Ke.,}u?rP'ReB"\>7.VPd9&ơOHXvwÓx{]CoPd9Jb_|;aƍ `˜:LrTd9If?q=+Ҧ*a|4V!ЙQ؇sdbun}cثqr/lhJSA|>t*ۄI$ KIޟNB,˩-4}:[3/Z#Kֻ?w{13Xl8#/8/y=[9ad3aVĕC;uq Lˡn'\g{2g8c!I."'g[±*t}yﰌjA@aXUwu,בC]ۤ'6gsTc$]פh>>]whҼI&kQղ^\k-Yr ҅~L9W[!MoV.)!d7L..g,b;fpؗA0$C!*֕ t܍o(׉l yXHNQKZ@GLK1*vz=JʰʁқˊI-^] `!_B{DnۤDR0gM523D[m=)~2[rG{aKvJp/+VkH p_VS;'?0탞稸[O+[v/hi6-Fߜb,yfyqMݢ[LJa.n p]l C&ZgFnjFzFV CՌnOGH#^Dmk8C^& 1}RNJBrQSrex랓ַQsjocrP ѴO7Jfy}8x4\¤mk( ^qj2F,P!Fs[##74Ttv+èxd bf,8 (ynTy]խ q Y{J[0t66(_9DQ9F`|z gtyΡ`.l +t\ے%mok˘;"@픴qmr,rm:xZ7MlЈMbZL1&-mױx+-#~ cգ@Ks|,vJY)UQO0 Uߎc)&Cw+~\N9EmR5  9`bk7" 8%mnb"g2z+ CzӚDsUYe8-[&j#\FOpDwGsF˱5׭+7u=!^,\/](WpESօW^J# ϺJ: az]9`t5;]ore$A۽{y3,&]t,9ƚa i/ `ZX`;@GUB#\CqV_h߀8>o6_H!ltտ ?Ux$/6xI42QT]c/ y ,֓xm*a*0/MUO l$+e0P$(?_rꮌWtgnZ1vΦwƱCʵrw %8)p3c8 2FϑmSALwi Evd";3d9^G8wC2h"\] `o7f+姘ʉ\[Y 1~vG8rסoO.kkePW,;?vKŨwqz` c*/,`!L/vvQ]w^?i ܮg$N84PJDQꨌ7h+*H-I#.TΑcgB"#C-?= iq%خ)eA.h_Is r'lKaph^O,!}O7jUimzju.$"4lI RAKǿ_3Z<1؊Y/ Puo`'6Th0qiNՠ69vj zZ˄{\E==VZd,1n\P- Dؕ87\mCJF>=~t{ʴs  }l\f'{}ag6\ I~bh:0:]&nM}\%".*7b^ڕ|̚)38xmj|k]NPY%fq0eyԩ-Zqvn~s@#*ͥG_̓Ծ~QsGBkm^RD so{9Y/1җcVF=|Gtw jnjcv~l)@RM֢.f;e-!\iʳrBd4{\~؞ ݱFj"(0*WHf8a%WђBA)d^Z||TۋJ\h.khϚ8p.o!jsk]]رcqd!۩N}*m$*/PvGs6F7F1I"jC{UV_^ ЫtϦj@NC+פּrN%]c&:SL6ɼZ,()AmK'dKpi 'I+|2];HeTK*# ҄'K 3]2׽ˇVRP6rHd6.= E$ed0/}{^{lq"kof \TQd I] I)idvgVE3ew+r=lRokrJe#OԂO:'/`)܏afZSȵ5l6(xwzw!b yh("m\ȿQ] [#%fܖOcq"98Ȩݬ()S"?Ɍrny5Swu>I?g\Vqg#rxG=ӥKq4M%T*IƤvև EɱrPQPߤFV`/!7ʵ7ZsbH""J]KXyGQB w6D*jr褥2zܚ,v㎸mIӷ&dj֐U$R@6e=XWz9T;`v_)ڣ탖I&"N0p@ xCKHaAoK _ zeEsNCy+PkONa)yLƗ[R5ri?2Q!v *YxɷMF6p=)d}OEuXQ"mp^qw gˁg'KLP EҾ!Rm#[=ml$ B 5ׇQ“ JD%nm{WۈM8Raccݒp< Вb:cf"UJǰoW|P9B+ĵqHTvl0 hD!`XA1dt[(Kz:ȸylmE:?'Y~!5C(Pe |:ڎ5dcl4)$8S<{c%d{f֎~jɕH@ʻ&ăL`_g)UU .r7X~4%Ke*_Y!ABSQ'4ݿD3Ќkl=uOl:HϫCZ[?`6'й #D?/2-ȮjpPyVgQR&8!d{=eh:x|C"7XtΥ"%b؄?s3BY>i;:h8< X`j 7^0 ِ4[ %wV`5W-nHVAoN𮋈.G4\ƪH|T͇ DrP{uhDJy2k$?@)U09' RѡvY,!4)HɊ.WZGxRv«U&ǝ(M#l"s7)}u%iJWMXZnl /eYLӞqq21Bgd$BJvo͑&f8?8FL~,0X֊=A!Ka`hL'BZݣkÞ>݇j`8[?.cE6%A`%1P'5[˼43TIn㉓E 䏂S錞BS (9Cz]BDŽ:ދ9pבFM?Bj]/@bWWӕě>07[EF+5o)}eXՇIsF.D Z?Zd^b`1 #p}ktݼQοK媃 biUTSRbE&¿~-{Dk~`%_P1]7D>7Hrh{heT4\\;ET^oض@h G`34/Mы(|GKE^$=s˕aFK^۪쪀zv峡D1 :}3҅O蟞p5p?,Q҂.6O9%92Ndn{;ȊB_)Rac]*tR^"3Y&z&P6<T(语41N}}"#]Te1~Śpi>}Q+*ΣJ1g@+ױq(_WmaZtM'H [ ǦswG02/INX2hY^4d[9#GFAs"hXXWدZ-V''?;~.F_YBNŇK,*$@~ V7GYf39g?Og.[xz+!X3h <5җ dz6hcB!M9@kozcy/ ]v]Ө|•#@4|W2~0Ď6ϴ @,4(6~ngwL-ױ~U$e렁^av)% /ZF.m(CgVKf)ߍRЀ]!1E&}{EWqiIe}5'ßBƓXF~R52Gڎ@XK'2{Ғ&.9vJ-yބylHwY/-| gbߴ].w;:rU&9Zkr|w?+Om;ccB$uu~)-e^ 2G<?ߘy\zJr,WHGr>fRDmw-ArmnuA,S2e; Rgq¸e= Hv45=k6` ۹(?p1U)_'~l> f l'A#K_ya4|]y8OVR>X\0~܁q>h0ʾ>1:fӼ\ ~?\t?UqEPz<$8>PMQrF yzr:zxXQT7hQX ^ffw&Z0D*"ɮ'dպG5xU^t-!thA'*6.A}Ф\ 5`sg7 6bIH\ /~U"3%I {;y6,Ťh%/ d=&'+}!Dz.oZRrhC݄PIH ,l߷f-Ke02g1\vFL~&h%[s_#A-f6J7j' &IpQ1d[H#xAa]EPĠ윝 "s؀|+@?M4$II p&uF6'ىu D'ZBZΞG8Fr8EC*&[ڞ&j'/6[z)!)_@yz;}+Vx>P#?JٷUD]׈ƶ;'#ɾ!x[|:S;҆.-MZRgR} 7aY$q% :mXWέ֞/rZvQ>4/Fڽs PmOk'NYsxBFTm;s9h^N)zFcٔB ֜% oq2z,ݣ>S %,[N,{!g65P9'ԅ!$8uW v4$ǭP}F㽳s-&ǘ TFTx\$ܝ&fLç",)` OXߢiDՔOwP䴆(4/o Ɗn$CÞn/D/T2:^4~ܔ1!%p8мO+AջJBie!A zAB6=И6Ӭ&50dűpݐcP*sO-> ;XiY,j! k^ӻ] YKdD躉/ t҃5`ԮZIh* kYef/bsMn3'cDmӪTJX\߱p5آ) 4Ń5?Su9mHidy'u{k?62ZӅI-$KӅӭ+wMJN-9VעJz٦q~T F eׅ(9\SYaO}ڹD.xMV3 9F;~#>7b AzJf&?֮]?`Z1XͱqIŢLՖh/Ҡ#û;3-hvX "o>:88 Ɯ\*H geejQ{dZks2ol|j} X\-q/B7tA9;~I5dq2"ɥx{04}7\?(5C~ySpslÒPa]{yo*aQ4_ xN$xS{]k}a%/:p")"vp:4^2EHydŔOu]wBT"sMvhWyWE˵zC(A 5ág*!>$wfq@3 Ѹ_N?ݧˢ ?{m#H _*=̲8&M^XTc:"42nk 4q!EG3gcl2 Waq[|uH0 ubwVtӸO[5D?X(?)Nuf`7^lR!@&OJŪ&u*؁ O.\.fݭ༫bd !i}5kL] GU| wp2\;:É PP稄BR'xMߐ8,1̠ _0 r`%h'6~ _r*pJUF;BQMwl!.!HkN/b=Ug[ ErNW1/$"0`_v 8`FD\;Do'yi&m!?8m+c1E)sDfrե=(Ms]8a*(|[1U=">*]LrM$W=,jr,!MtK"mΪcS􎋏ʯ(*6ir;XgB4|, ]Q\^)UiP}bJw>nuPJg=N1NnZ#C2%Ԣ) quibᷳYMEV^S ]Ґ׀`t)<,IAG06\--uss9ޅ 1]񦶷dqe"ϕR*A=#6}b[ydy3_qc}vD&" 9ة~sh c': M |aܭ$^2a-oj@g_+p ɖ`#4 >rI(ndZ"Gu8'emmx`rU9l3[eX{[ҏaQ9KHzhL>҃P"Oժb|],΀8r /.CTr4?L {- (Pb,tK>`qNe!]z쥿R$ Q񠆓U-Gw΄W䢝{c;II"2.Ng5(H4ꉜ/|4ޡ5xM >zEIuCV1drO|,ZI$ce~h[( #뾵h)wEMlaF8nO wm¦ AO6Aӛe}nlmlMSCALj&D@i %Vtя/LԎB EŒ.,on~f\l\GR5IPrXU!tNJVGd['ײ&`H[W hE's.<+|YEVvc8z^J .mrYfMxz0m2^bO4#u].6fO*Ɛ%6Nfqfh4g+o G%nlQUޮDZA7:Cc_a_k'"DQJ}#L4ͰaSW65>Ob5/`IZrk?i`·eˁ [tq"2|w&J{~]̹ lcGup]S7,`# 4֟KVO˝E-r:6DVU7R44NI3l#4xp^dWyu񾮲̨jڈlu'uDt$xgl)5Qى,< DnxGtܾ$oԂheƛĻ;4泞46O n-6ѩ |Iwted,n"ES_rvfDz~W_* %Bb F}hgr6/YSkbd;5j@zKFe/-a]3]C? bj}忋Dy>ȏGx1 `rfqsY,zk9 gtʹLך䎯Ц [7[1$蝤5<p{bׅfAkMVv'iPn@) 3Ǣ(ørQTKZr4B?[M& 1B6!7Vzp-akƭv8w逨G~\ 0K#RʩF}u&gChӧbӏWb=.FZMGj|9p ahmQ@Ub8M|# c&#(V~7ngMdZ'ue]vX u޵;MER]l۩#uH ;*\췕ݭz2Tl,V nccr g l.!h>pLxV)[MVF5.1xpꨤ9s t 8mط3)GH4(a.wO/?>S:dq,Zܫ7ec!$N{'9JLQʞlEc_#4TJh2qװH.A|}LO2> 3}a ɚR' M[j౉/Y\a:31ڈ`Cؽf|'_ُɝ7(H {J3=yDH[!1F1mYElJy6e(X9(n=;ˉD%{Y?=?-^s{8ŕw uOfpu#|t@>˙{ Q.܎J9xXEs{=!9j Rt7G^gDoDzL.'ϝqV#,T<$־]PQՎIxUQ_ %kIK`ιHE6D7ka8-Fju%.zXTb+DK{xms$']|YvCA"j\H MX-Og5q515xwƶW6;iϓz'<6qsq>;^ҫè^ wi=\n-xgiHvl::rZA6f%d V5{R6GUvz Ò z^7$P_$"m&]%%OX!pWTч!ϣVcp$y kYnTSWXA>i_Lr4|t#ZU7V2XA y(R\~By(&Ѝ u(i8i=wK\'(C;s{1[SpAxfG  SD 0a='Io3 rYl ))Wkd6MFO{.?k,eaw2ٜ)Qpb8m4M؃HcA4 ,¢r|8c%]C ܭj`6+&dz~gET!пCuj g K! wmebD9ߤ'xP&ey kfwr?UʹF?Ab+7;pI8t\Tնmf9tM(٫/GH+~.\$i~֟3! (m`%a|Yruau_.N*N^ fKYnz+gNbĝG2Pvsov(1zvKw@/&MӤO\L:#Yt'}zH>y^[@s8`FW_x^1I9P뵽(#u"ナ/>]6*_ քmAҪi*v*V`Kgn_ pyDU=: x,_k֠j-+?_}줐T1*a  re)XTᝳ?&kc:%lHDEʢaN7p4;qtG_À*cyL-23p6aI1|0nȌR]5XJr;n|b|1!UHwBE?S zg~3Q?s?6ksg]:YMoS m>8w$a%_eh8&+FQPe2&Pe+On&op.n< ˌאBY |텧 eX B[3p] Nd^Q18P}#@O7؍ϐ//&z~>t=oӰe`q%" ~ W8T i^F/!bpk2bV-o[syablP0ۃ)CR쇍~C &IiZ/9ceJu! 7)E.Y!H}Hʕqg5"ӱAL36K\; bպ0V Y\5En[T&EPOjm:4Y_2QeeRi/{ |34er048Es,26Nh6wͦߗHt wE}>p@4^~8gZtX̴IB3@Źꬻ8TaYh1Ib^)!=&7 mZE[uz`ܖ[%80w Sd˗u!1*BƳ)@eؗG_HlEM.r#˙(#oK~Ny4ܮ!kClf៛2ŶdGzF"nrՉ-Q%UCQŞ*!@ ?o'Y۟PN(-ƕ~|b|RK?ET7=@hVR` J#tD aay@Frh7zGoWn>ڀeQuI޳%lo3įIWH+k SݾJ)Ǒ;5i- eY+45S ۂ7;)MF/mr_ Mf% ZzzT{;0 .ƯX2"KkAIc!Uh;."Y:=Ǚs!{H񋝿_&$ϖ趗8k@:e'.&d{IX# fvIC’m>օg>  >p@ϱpp|0JdD W*#fXШN^bs!@GqgZE5LFIoy h#Aqt*D{<4:bZ؈k?ꕯkQRs9eI', 3fIdàcgV.:Yp(r:m]Eds"g߇>yfڗ)8dcqX lipqU~gyYX9 LHf3e.5|LUx!m2WQEaYDҼN{ؖ+ !aG2e2Ks)Œ'}` *t0A} b '~?A` 3X'(\T}"/E`ܩPo$JT)KoB /s la`;s9v7,>BC޿ıf)@rAu4N?'fk |usp0/ ^?0g5Lً5TtMl'Z1U?A dh!H Y ]Z"XN orPiح zQ]MLBɪ7NuߢlvHz .gǍUӳ+Zu0`'Tw1G pd)J_CT`IUS&6Z͓ʵ{7{Pl|? D#tClczI-)> Q&b7RK̦mtN p.Z-lp8H~-uqdehh0Z P cRYJbqZ08r5ˠ  xln puox"u_sw ta-Xv(2_'EA41X6|uM*gi~ /\ ,gHuޓٗv(1~: [A :-oyTUnI.5 &+O< p*"#^X D;TH .X bPt'MrYNHR>6&dckcΚ\TooٺhbĸWc W3E?EC3|gX::<†$"AK ouۃ.v@s[FÁA\.cKFy=65owTB͔j6t$6m.8ɟդ*_ՀPsCI㘱ۣL6ceUf taۘi R.宥^ᬒ4IycO:e֍Ii Z']2&v/ۄ>LjdCd73IpI/pQX@Rq!@)h#ȠKq*= Amkr!05~Q>R 1 nUMvY+5#ZړrY5/,B%6xV~cv%Άg;HOm] f/}6I|:YȨ=fer _:#5]bM1jCu)+lÊК+G/cs)q3WDQ'u:+$[qP}4}H~Ab\ΒlKr"1[_b~b"5zgӱGyRY팽D &{q LOĘ -UiK6<5$߀z6Lq  P̜4lH(\-YNd*d* R˱E4= )B<KAv"v2{!?)ݜP&Z;랢 Mf~)rkw7!;.ҧ Ӽ`ֳп $~T"+')cMξѻhK1}.GFp-f7nG7uiNpA:V7-Y)O?L4So .,'ڊ,Pѯ/ DPϮ^=WtK6=_U7Y:~bwQZYc~ Ap+c]lȇAc\oF%8RGA0!Ү𧜶e>"B>;*Y?Ö,"m;ztHq:[7i@ SYe&XMx : Q4lձMP~ǵ NMOXsf{y 6ˮ\):M%mGԇ?Pϴg)}b- b.9|tSC,g%_TMu&b;&oA)ǥ=E]cԣPnSߴ7<4ʁGpp'N/ΆtL*&+THR6` =[U){ Gxx쭸+/92LE v8:qOhzQ' XAQnB˲k"|#yE>kջ^^DJ^qr0 =t4DFV@bnMwCJ&lUzKOps޺f7֨ϖDF0M#W9EN(-IzokRZG`QrY8{YX<tPsjEthLbr5ү_I[?]Q6>Ԝx`_ĉˈC8ExiЉ9^:[$[ɴ}LQ_gcJE*b;]+#PKW5s~=9a'4(m|bˡ%]ݥ[R (LKNEniK5JPTk2N<(%K'yEԱɿgJ=wsOL~gE\g$#U* 톘(B쫱ɕDw1'ueX I$97rPͽ gEh94ő8*j{Rk*/*SYk $^„*ȂxnJ6xKX.áp-`݄ 1ێ a?Ҋ3/8B6Ѭ:8#:МS=iDbbybVÞV8mGq1 Jy]L7P1P,[#x8Ze$sVru# v^T1FHA|! |l<$O'P@+BІw@9"0*;6'5 T&C-Sl+72Aiډfޞ:-;ݬf (h2-8+؛I61jۢ[=Eƚ ЭVܾ^N1Cl.[9 >YVTM "?z(8(:dod4 +C3(8O(?WgэA#H@a#ƙ+Y #BVvBFWkRV, *T+fcd] \84@C /DY7lDfYcW E|m^Ƞ)[jWw i&s;F0}(`pLQ޾t.M/x0HC[I+w#sm;c/~O ʟ9s} k$E9Y#؊B?{Y@T2RsM{e+39恳הF$=hjOpE-6`κO*ݪJ]x;*+N`j؈1>5{KEFu}ɋⲅv= hB;Z% $DV(*ˠؔ9JxX+SlRs?2/v$ƟL6@"9۱5))(V'=˿cD ۟"r6.<;d1Ta(n`9D~KZi+#`5iV_,ٺ 4jEсk>zMt'_#/.@uv/5-Z4S3\d_2qqzE1˞I=,cjuj Z<!O6PKRv>g 5? kiY"43m}H? )6aEĉZ_Y| J%2T9/<0uJ+*pLH:x}M|X>0 yCK_zO|1- ,'-/Xe4?CٱthEZ94iWԆwSE[ǜq1G&@xew9p G*0ڏ!\S :sAv7} ȉ&1VZ/QSm0qy\_;eFmuU#>?ce%aM# d-S_B&F]E[ޭ {9B 1ψ`.lk:KC6V`Dk7ENn?(oќKd¦//o[ni+#bT0AF?E`Z <娻bEgX~FMB@0 {@{E_a[R!HC赢ˠkcZO6/C ]hg_;e;}4 *Xf^ÌhB :Dxi JQHä y| heO?>C#zT0ɞ#w:b=00沏s+`U̯a>^FȘhl⼛En=6?]A=e۔NM- p QmN\hg,->Q7/M@gPwF"&2HuIkH cI*fi3yEcnq+f:F"(JI4_VYp->ޝ}F ‰c+'ܔ]+8ǎE0/N دC y8JTo5%Jj6t JV~ckWH%/Y0e٠rg >;8Y Pv>*Uږ O-cE:UW%QaV= F/Ǧ@aY0)up f qQcʄS-7M_Z-:Z12,Q2yE'֙!I;{E {@2l@@8Nõf$t82ZϮ#2B2+50( c28#$J,67Uk9յ̛>qGOWkTq$y/!i6qDkOpabC e`=1W=,}}L}| kexiTRF5B?č9>\jDgp5Ո#jdBq4@lKBt,T/fM7Lbv~J3 g{8Kw/)$ku嶑|*mΡ2J/Wv_.ϻF0J9k3EW P+dhh.fwۜ ŋ?}!'ZP/[7G xł.K Pϊ/uw22@L0S _O=ş%GSTڼ1vx, +S/]5߂v|=;pIeA}#0V|]wXtxAiå:pKXNF347=sXҟ`(19 KdXwp?u Q4̄XKoShQ: ZEkݓ3X2fIYء64ZzBt3K/رԃ=pʁpN1梡چ\>֯Ӥ cf['uAU]&u=S_x6,-Ra˪Þmڏca|uqp`ERճ.žœCoʰFFO|K8 |P|F4"ss]R*6?-D'O[/N?1OAeG[e"TlJB"CeLJ$(4.fx'ly ocGD~$ X3Y&ߙKjoC` "ׇؑz>6i8E}Fs݆e,}4R ) bw(0J;[e#2Kx|~# ;6=HU.pJ(Vua [I!Y'm=d0v,99hE4(=Gz. zfSeY& w"}2ʵcC`!Vr,#Ju#"jxy88B ^n"9@v(O,#(v7鼌CC40e#ZV 9Ys> 0OorBYqāYqV?[ ๕6>D}Y\;|?T;s?,qF[E) 1xgiF}bVϰ aHˣʸ>dV2+?qMB5F/A'bs8Θ;, VxµK:s"cjuG$fIi92Tjλi msL_\ae]6ʵ#{Zܟf &LsKERganOOYG>8fwjs;GFb?F:OcV iYT Bu;.ҦwnO\;I@'j#Msyl>uIM'_+Ain>[!@D"Ch} g:iK^`"9\o$cdUwPCEoF>=ư_0meV3Y&sLʔ 3o#`+9m"iADE#? y_QϖȓuGp9TяoD8#&KpF^wvᕻ}WvJbZq OMLѦ#ȄIʹWF0sX(E3qTcI?-v565!8\W ?6G96tH>IQE1:۶E(=xbRcmǔr3FE|;SkJK-,a.(1<?΋(C{?jp/ bFD֚D[vwleƮ<:EbT)R L5mcNy^AdϓzybE~ELoHm竊у< +Y#;bBjwº7W WZֺ.nH4a;StV_/b\Q,7uU"Ai4n}C*S,W]:Xd}f:dn ]8{{"\7ckڰ~cǻ GHy)#_kKK!y [4 KHK x G8# W<2Zr>ps>PMsu/+EE eI*!mo(S y*MtOpTY#6Z`9n2+mOǀ>dao3JkZft~K哻0!g/*V e0N53y(xwےcBb[on`'k s2HȉpB>+5#b%.Id<;'#y:Fk+-;1m.U6ErG8aѮ_f? upKI輙Ê9u^&f{>P$!]Tq0+A m㠐ka2Bmb?2QcL@O@vCo4f"&*LsSX/ݞ>87iwOZ6S]eIWb''.È{)wP ܨ)eM;cCb}RA|::j) \{;p1d.H7% 2dv0OZCc[  )!Y) 2M\BK Zh^t/H^ ~8sjuÄQgDꊲAR+*K~{Xe{Ւj2_iy6A{=*萉Z:D[yBsɧ_a[*ò&>'c~bIweN WSw}Y ^"^`4*]%,_>plb{XIuMi[s'&6ft1jq-fh"9y4ҫ^B|34: eL㕋*|.̊YG*A[:doqH铄ex9\xqxu&)~r&FzMTZ7I@bKl|"7u+bM-қ,o8w;=;r@ nnC4e3QG"X7xpFP\d,40_c-(b5RpW(fI82C_Bl+51pE|ercI=\EyG6XJFOmC 7 tX]D=ba5ޥf!J.31*[@m\Ê.~ojȥB/2iWfo:攰rv̊U"M&ߣCJrA֣y9䈴~Fh +-مwI1,6 P#RCh}I-Y7{BDk27$lMBDͼl|Y7O3|];Z>#_uNtҭ1M;ָnvn݊?YZD q e (0`<@UVI9O5b+>AXW$Ҫ|A_yA`mR9e,5뮧/0Ϩmס (q"W .E1&Ӕ^u ;-j*.'8kgQ؞tE xF`.yUhlC{GNɀËf.4k N0IzT^~" xlb$is'yrR=JZ!Doovd܊!"h.q#%]!t}K! 78ZEA8fR^\&Vd"3IBn,#rDT^{e"t}+𻚲aTg^: 2Nz蘛_Y_Nz:yxLۖA[=p~1SZ=f|'-ڎb@hoBFD˦bq6B-Ky5||6BKM]!yNP7[QSz!3ja1JHX46X$OBP3C;d)I%X&8:sB/ ^_es#'ýV*׈|[_0@Z7pz: CqCs{6"XiZ"/}Fnw6z|,,|{-!c$ G"(6W,ӡAr*}FfeJﱞCq@s?SYmG_lwӞRۏ3pT'-lF45wT>[X.X廸9.I"릚=IWUv08-e ^Blll I^[? n } axvS 0qDjAR[+^Plq;}".5('A(t9#Z[Lz`׶a7C43s$#$9>PqBIX/@m [`COk<&v~Cu3kӡ1=V(N!$5nӃW5u\xNYQvz ڹ6&S[3`Haⅴ( eQÑg3nN^vsCڱ5^&WHbhɡ_\#w9"K:pxթ"> \ dI!r7ӽ;Hy;KoU60dr9d(^T ,I)*7K(Sד[髋+ 6U~lPыѬnITG<~Œ%1Z8>XʾFA3X/ؖR-=;.׃Xز7(a`xrO+B[OɊ׆q="Eqq2 j aK߇_b/+˸H^MąR%mW^^4RgTI/ x-@lwֲē]p/g>V/кRY~.2pnivt&x7whsvAy'+'wM酴;fuQ$ C*^b` PV{mN $/K4'hV;|)`FmuR]y|fF*iD*vQviҺk+6N-&y^.| wK?oC00S= EA C$adΟKͭ[~ J&o[fÇq [t 1IpJfK2 )@OCD|a`MR 3`m#:$b>Twݾnʌ?TZ 5+- ϑ?k#~Xbׂ;iLF;'JN Ԣ'NH*'a?z2)ek8-;pw=ȅH yW󰹥tn`i . e/mߏwY/Y[Q?qԑ<:-2`)+ dG٫ߕ270]0xwLq 5u7Tfw)y0z_K²ui$KW}zY/w\>صu `])H>/c+ 0pp~.v0!#F"9(q4m3"#>e\<%1Fvq$w4Yg ^L*e7sNLա_cs/P.ތU3b]xDZD®{ҡ-_3R2l)_' nifxp:_ M%32\yUZ+6{nԲ Bpzb8 GP;JgO:D t%r?{Hip“@|WKs*|6G86ZS~տ7FGteA<1Tj{CvҦط/ƗC+:w{U(9hnYƹ9^?nuV:J;c9Y M'=|qQE-rxC]k{VtrB~=Nsc4J-;>z4sm = !e1vVD۵<V#O3˗ͩzE-aTHc`4 k藖vc7t-ܖS:dk3Dly[lJ[I:K:S||EJ٘*xb)PUTά h!kκb'40\_Jh ԇ wXɏf\eOf!@KkOr->/"@cR="j?ˬ2HD|S*Dd \u4ui^>3i_ <eWhgȦ*1ˍF1b.NWN@HbBuYT Þ.)?K3ku5S^BI;yH6>3 tHYcL'`s(Rb_-c׻VOoM(SS|waӜ6LJ Zzkۺ4qVq+aDyP8 &~;h%$p}EZ/d m=NO5`kojYFT*`_ȣ7W5RrnŴW ZBwcrw֮?]$x146XԳ_cr&Ɯd=]<|Tk ($cRW]c87BSSַ‰+Mv{F[s @i4'ZνyI~7qsNBs1QJP y͌ N0:b 86]sU Ě; 'Z _ժ6DyFR]@ hh^(Ȍ*(OJx+̻҄{=%;<ߞ"FJ5GKdjcd`I`wcB,\n^/Jk MԧٛسGpֻ@jZg5YHRpmtDdi(P)@e&!ېuT8$Q-Cū7?K=,w1|LYЏ6Jj! x^q RXA2lsAhGmܾygv0ӎ@r#_j}nnTEd*R_۾Q> +vicutdf0~KL>~[LE6ghc?j ׌!K#-UZ2򨮜T`F"1c]~] {mS a 2tS6h #mvک?',v}`GFL ͺ&(Um)ʖqS\x^'I:4pcۨw/)G/ @,2 ›  F|11rY2Qs F[)®'TLyIs:I"Z6yJT{׿h :^SQu( &!ĉy4Rno40PJg h+Gv {6C {޶ea#f KxQt#|/AmmTAN_#eg"o-CP~9yA_{ű5M4s10* ͢9>->ufL\2AV8r=b׍PpZM=W/H039Rs;F*"I[)caAW{ͦ`}IR _Zn֟ RpVe'n:"3bEʘd7U&bS~ v79?"V8[A uv 홡0u#צ3kP'l+Cb}&A0Wv=.Z9%iҬEۙx*d9暋̧+;MpMto+/c3RR tQN C!mʹl^ݒw4H~o*x%V-h@T<- u;=9$,ik01&]] }N Q;? [''q쑢%;<릩"}ep杄hp["'K·b&ȱ6E16XM`x)^:ɇ[57qeZa SY3HG,3$r4-T&{$|߉4{"~9pZPBcoSZHBC45 +R|VTm0 >p÷ϝwhQ52‹c{)~08WdIӼB_?$w2/ ֡~ǃ KK vH;db|H+Wv,މXID=rMCPESǫȤ XlWahNm?TYyoi]o퐕r?oh6+_&Sm(n ]܂tX@Z #yA%NQ'(}!^'{*0e0nx.*Z`y&q-1uYIb5)6ش-}k8K@ubcw9>Us<Ѝߨ8LmX/6:5R\唁*p2Ck>@z*LAMZ"Mc$LݭR͕+:P/^ $4_QƪV<0F{Ξ% aɲ.Ai rXZPF฽%d "|k*n]l,{iX/8C@GZMbт}Mxxi 5$)`yipgE}d%;Xp#%a承!UM9)JNU, xɀd)3{'X ZV-7ڢx]ҳDac/ǡ1,agw0 %'!O j!O+:i7~Iˠ|kPHAPQP}LK㶠L.+m&ݍv8ٮȤN&'I^_W9"Sa/!Ië\!-C;uZ aj&O1egY9]sS@34n`$c=5}LN-}\l5\Piy&SWywЪ+#iB}Aןv`83 /_6TMV1rJ.ݗRUڪjs- Ok ۍxE1DMѲ91 հcCɻafytt^p6\{NH/#p/_VJW+Y!*rip*= a;=j/l}%9x*eh^>yfJægO2kz{}[ϕZWԴݸ73T*(`5q|BNbyQ"5bJJry1zC/.e1ors+pDRH8G)Zl@ jHm$9yh [B<]T<"Q$ чׁd.Il^niKq/?Qn%&I)O>J+E=ӅViӯzg1SE}\Y OF1O$SR&&RX N v^-,0y~B<"iIM5s67a>z#ݷ-3VzXY 'ЩS&;I< =Z+\iί|;a||\QiD-^@Cs7b_h1 xF!{,PeґíǶÛ²ue Dșp:g>c[`0bP5|X% Ӻ#Vºg`I?C=)|$~tx AaP ϛE4 [ &Ia/ Bm/aٙ]9j7 =?+1GkOv݋C4r8 C z:0}Y}}w^4 pd wC wr@ uih;9S)UH֟SrbyI8:i_VFPE&&=_]iEa"u. @?9T0Bݩx&u&-@^p\hFձ0'SvX^Zcic-uiYj Ndr=ҩՙ{ٻo+~8GEZmTjx> vz#l!#rP!UWuT[^02̤Zig7F|˯#D)\;ڼQ}pU:4K&$TN۽+-YM$$T"U)h*8$mPET7 ƐAZ2z( c?c) !nX. S/YPJMoGJ=Xy8Ņ;c"ZMSoA>cӌ[hl-rWTMt@^/_/xLdu^ IPhw9K^bb7ChjAf#ܹJ];Bz}| SVtym~O0O_v <~\dr .Mc|?(#Rd|~Zu i;D+@ 䈙5؞kӰQI%7J=8',.'磻mGbU@|O^oJ[;搭77RBS4-`8ձ@ԭ0^` 2=ug~knu4C`ڀgsEDYYlOO1Ѣp'l`d+S:8R?CI_(~Br%]*l^Ef8b9)TC"8TXKY|?rԏ,Iszsu6'|w1~N{ w @?VQ䵰4}ڜkf֥ʏnی7SB'U>zWl> Cq>Dz ۛE-m%`@FG&W4Wzi\@N͜+G RM*$ܛzGz+=+jffZ2W•AG;ZXOޑ-{@l@fo nQ 8xgàAuh.DiI-6཮x)ch=}*:۬ U0Dqy&YW| \ldB\E~ c~`8P&WLi/#'אS.EDP9U(u$"`^@AɢHfcbb(k|P/j%O9Viw!N 3Lu2p`)iY+ ҕjT,IX4&B C<<`y{ \W2PCa]hIA {IK*R.7]PyaAcncy5j\iI(.edHhwetOZ:ŏRBw:$8F 'u=!y'S: G)3^7⛯q8dn& |j;O+W|"x= zR m<S{CZ u! X>"5-Qo\Td|[C`z*J*T2*L?Q୔&NtK#`3E猪C,ttܐa0>1t%# Ni"K\XW:kdZ4ȡUymX!(43n1Jgjߠv}A;b5LQ "C;+<`[~`˔H!O.E'&6srչj}R9UݜjEri2<}_9 [:#Y cv Hp\8K>scV2 o>{ådКKuu*,[4)۱i}~;ϱׂ MhI&cX蝦K\Lx=@g5XxѪ=fΗDGf diX:ꁆg,dhvy1FM8 % ?S/'EF(%ލѪX(9H ."y66*rus-e8gAVmMe* ٵoR [܌AhQfNBPd͹"E!*\PF䋄Ӯl^ WQ|*V=R%,Nun5Yuo%>va/\Vt+'ydNh(ctF#DC:=ÑpD֮=vk8RNOx)+v}q@]r7@våe7r>HkIE=>cKFs/ڦ S–n'yZLXK:p\Ü\A.dD46='b 10]krJ[q<?#ί zShVqZ O?A; K MlLu,<: LF ّ3@{;w7\XA(8x^V&Uq؝zP(!B: Zf:< ƿ`8.=k<3qHH&T}?/l(" bk|U硅F7"PMcw6ϰ xz3wnܝ;dYnLͺYvfqOK(@[>k._N"jkgge_oHαcwKEt讫pk ccl'Wy' lDdƌ"+Hy7 8dЎ}a~H/1ODd"]uRwMLCW|yGa~9tZՓm& B}s^|kѝ*mP}HOG7aEJ!~IȄC|,L{ ^1i\8Cĉ^QZgx3/Zڿ?H`)'A.%Z.RГP;CcB{HI),'y~-xG঑X>r:;\PKBIس GiA(rŐolf #6ϋ t\|2)0h,JBbmL#u*6_$3.ef 9IP{-ܽJzB$TnțS2CO&:fXIhl.I\;Rc9&>=Ǐ q?&nחQD'dWYMgǃՔm(,$6xCTz]Ġg=;?O1H8FCذ!SE}Ex5hxC7xmS̾F§y^/7NY€̌GHQ]VK Ґe,6ݼ7ᖶOq Pu8PxV]{}L`ЗS,Vr3>F1.K9,y}z_!$7@?h9Y9op;M*>*ZQ5\b=Bb4TbF%0sZV7Z\OR3xB>/Gz\k( !]l}Lx#D W{SI1{ݕ2 *Y)t2uiBw%'f8i23_Nqh{I @,`M7AC#g0%LM\E</#+~ȫdA~AsE%bI:3ɘHז^79`1ڊNjd'e81fʯSLwv78(:yZzLfU@$ j"ےY8P97j9߬P<@jh5:K~D8}Xf,٫iT#PƿQ{(tK1=a3e &nv-UQhg2m~% ލLi"hP5@0sj}R+qA؈'w Pv$h.T)ÞqH>dn(^-h1xMX+@y-Vv?v v}C]ko_V}M$p cE7BL;Ա#`hFJ[V/ /u^@E~xo3hCFZF:BU 8(S/;{EрdDLۢa$4WHH0ĕlb6@RؐjSUYޅDUW&CBm{cIwL2Of귫2d~zt*}8ŀ7#>4$bf4ҋ-A⠁ R}7A@&mV$1]kQK!砢>ᰘ>xbt)͟]|?ɧ3~>d}\pm]7*U?:((f8c6`FeU{Ԯȸ3<b-ޝ)QɄ L Y_4TCi^jhC?.Eڳr\kRHrcx88oд&Axvf_^idDY%:}I^ Z4M7_su{BI_%tGI /,?|5Z[^ϭR=`aq*Bq MWm1Ӌ5d& к>壷zgБ#68H٨c=jWB' ukwlBRY/v>޴@4>P5@NKk˳|PF:uT-+P! SLچb{"H~3G+rvț# .Qr] 1pD*Q`gB2Xg!檬ҁ" O Ӈ TV3IN5؈vF&eM['Udp*eS۸R{-NUq=V].wnsK˻] .jMJR}A3zg #d|zUH vt{Il㵶n$LFDqUsRpP6o9m֨O!۶X5~G-]+ʶmLm:YD*bgAp׆<+jy04g8,0 S(Pˉ<ݏ<ڛts{CiK$s24|j^UeڊBs, G\0(픦 D{|UI5aNo5p~NKdq!|Bkr7ng0};ǿS_n ep%AhG+hycmS]f/ |Tƨjg0]ȴ! | McgSbӾaκ q]Ό6v|ZGU`ni a1mA `3qnKuYwMWf̞ٗ}:Іoq^]Si=SR1sCHnR{@. ~\ؐ3p";fA{iڷ̴-Yz5F <ѡ;u@kvh&6._+}xT9={axWAlDF5v;&%wlXfy;7!9\_lv༾'!3S)VܽJSb8943q'3F,RObKH%!Od }H,J=ppI773!<(br>padDS |{#,N%N6ͤ|܌L[^tdi'gR.SvlpR7UW_jw16b{ K܆SäJ_FS1]-.\%]#>OM4>j&A(tԓ{Ry@m+~DNœ4SfoKx8݃p$%=wGVđ@/B$g-\m厯s{)N>Fn I4O]슏Ы2GD%@S/am0ޭ.{mO8.kȐa_w-cסBBBu ;R 3P 2+/R20wfB[jfFn$͏>hĮ6\I}5LPk<1&MLb:$ݻ%ĥ &+*\x\<W˽N<e`VN 㧸gn0)aǘ`{1Z}z EcBe9,'?硃ݤÊ'*MY.DhJK[gߦWlaa8L c*n][uUJjG]'3G$`^XQzRYwn(U䴯 Rőum@ܺ UyrOUԦf'.lIJͭ#i7\%XEQj$ xf)Qv?pa4un3*J,p2yD\5X8mwwU֥߬Lllc1M9qE`8 )\Dm"тqna, sXX%/Y1JE`ZOEksSY6.vKp %#ŃFq} M"-HūeF3L5~S/kKOi1ֹ_>cCOH zNmUtŬ.4)C<.9T79~C!N`ϝd'nD!;;pE=ejȀ MGR2#급EK-nllcgS{9$fH?[K?#b@3`+'5$$(~]ˍ|׫EtfKr;^0N.Ca4:I~6bC_tO-b#1{.P7h_T+LOC(A*Z k`hƋq/xGܸ]LȈEG=&]PF7džPRFWUm"3$^+DyJ.ſZQ\ ubq {gD81b\|dF/'A͕bW׏ l`|:`חM]F7qsمxꞔb9tкcG*U]EkuonK qom1hHi;d %+H4TCu}cִzn`LM¤#E)p/(CX}8ith4)vv18vu{7RGy1P2vRuRP~nRIʔ#IoU4 knbYue봆)7@Y5/ 9Vƴ)5tc*ވVSNH4EcnNC VN>HAv}T$HISV%"b}؂&̼'FM^;-'ګceufldsS @{;}Þ:#&>}5S‚!\!$x̸^r=06?]vt˦ܼ1$WKZ*n)>OHW}y 5x YܴPȣ@Ǵ ߂]D sEb ax@? Gdg-Hy @s-l 9t#l^4L Je+\#u,_̮}r_u"dY|y]-8#X62$)ܡcZ[yv_H*ke -߁ 뽠lthkh aza*N~ 9Z(URW%m:.{zVVIi}7P`.DD+}nQ}FPIg<S`XMgCeijAZ?/&us|[F>?lI7aN4sNB{&UsVJ;wlոoNDJܨ#z g`zm8W`B^g"8[@r!F ҍȷr0uc6)|i~mE5#+GW)DaQ.ty٣8^M0i6D_6K=~t@%ĉ V|g>}٩-C* :G=XYvg4W~Ò".Œ#` 7C,䉚yl k` ||W踳s_L< Z !dsѲBԘ ]M (M *!Lwi%_h1cGn?D )Z߽\8OAo~#[SI5@G0L GD!w?-w4.?CsըVq®@ !!ZLX"L9 7&߶$$! $4s9Ad(mGq-ehV;,((ܒNό%t i۱•p@=JfŷΛ9gn#-f=vYv;KEP{sf)͘PBCRCLDA{PfQ ϿnڟjXaF|, /^ b;!2iPlOr嘘 26aiX2Y[@|bj9ZEt6blvuFu 5& F\Z&TB0 ~&& +Kiȼ x<=ƌ7.Gs+%$[{HyQ h7.k[|L8e?D>B Yrjd ~ӍƊPs):t6tQUA.`z.꯯J9c"5~kM' 1CZi[ W#@tap2]U@ՇQlq]K!/x=//as\Kgn1‹fp[Dߠf3'h_"`*DBlLL(~%·jNv !T,Aڰs _&m]J,M<bUfRdP­ ۮGQS(AmLBI=J :GSbnNo&\.|ȲPvHLr}ǖd5CjiES, RAKr6>]9ԘL`;Lt6ɮ'Ev6 wSŒ5I|Q?T pR$W!JfWM2sbS_dXFP"ٟMoO,څXɬ7D%01q'aSdpՅtnxp5hDew,(uȥ"]WVڛѯŻVU+ĦVABf0.Muu׎ډU&ÙS`<n54l!U—#sdBԏ6\bRU ]־.EdG* Yۍca8#_0q. Mq| W^d=|\^A]9< -j#5Ȏ6Zj Mj,H$걈U+OHcZAϿ.ᔅU b;VݶIQ9r[4ZFv0f(ӀvH+6K-r[|xdbiT\y/HMAͣ5 Z&Hܣt@v>Tڬ1dol@1ARFՑI z2Oowf#_@V#2EW]wVB0=}aU)ቊMD*uqn2 K2_*2F+g ۭG:Mbv6ޤ<^1ݲ5)[MIJ&@JM3gG14#s~[oYk~ DZ$nn^NUlpT+,sκDzw[k,v`}['}Ҟ_^g#Fٮ{ a!>􅔎K ˦jǓ>–鍮@έ=`Bտ/xP\-cy[CI]!'3%ygr)3ф|0E:bFqf^#fjL"{3J8X:{DFUk2e;)Xu$~-yyٳwLX]ms%5N!2tb?3m]0z޾ NǞ# }2hG($vdR-@!dS/,J!OHc Q57 OaWc_yF-ǃMק|`>} !˺(fѝ31lM?E$c=Z;MBxH܏ {?w j]y_v1CvʐT&zcT[܀)*Nv''N~uIZnq1˲Ƃ "2Zi=^3[tyw?مCtAwUЂzӰNtK*&f ,O<s?TvuJ"PdDBJ%h;$#69^{Z,~'[KF}bHSmF#JUMczX+?ȶ_Nf+# P;l)Vc^-5{+ %D9JS\%%\(dXJvJPP NP~wI__SA>疷Gl=ƈzV7K*l7%#] =ĂmuyvyU(C\zpt/Ɣ_SW?d'(;l,4ϸ1:O+8}@5%zsE@9F>y~Z3 !BnrTͥrJ:ቌʺy0M\$Rxhԕ*AjXIDe֖1FyBFGިNN̩[3f9p!$+b}!ce0TNEG:;W##)jUd)ϐlX"WE:u%En JAQ|jl$O79%/`dI&-4{I=P*gB4n\Hd;o!I26~VOP`~eP۞*;t8 O%i:)WM+ސ'8 gn@ dJt8uv̢ bX T6GQC]Kdm U(ӣ^8ǂHՉ>e![GC ytϛ6ƿŕcpv)׆5>!y0s#Qn:v*` uf@ թ BA8@ݚk{lH>dإ'#XxcK*2hMհF1Q zP"`zُw"`13bB OaAlƺ^{1a4S>"l@wNeC$J#= cbXQELVcTT08  8R'}[w5v($U"O1?8;(B?M[l:&3؊"V~bMb2kƣ&< ש@\+mWQg l;Sm4OH{wNjY2TρMG,.GHv"҇ 6.sIh('$ HSM^Uȇ;S1{{UEŪš0MT;) :NR:;+1v$j7 CFOg˧B*@zpH_n![!UFx>v)1R?iF?τ]aM 7\ҹXdEva oGbHTR'ּn3ެ0ȽkZnڙ*31a{f/Af bf/=5 (ʑ_"I=n_;"dhgf_f[,ϫifijFyFhpp* =z”}@8v47BPf9>zu&8@.pd[kLر{͓3#'tv0}H3GȔzN)@1"V6q7Q20l,̷n&tխMya? CD'+WxdVF {(iW sIȲ=%)n QKmTSǝ>z3Ȫ=zZU\s.Kokho< ˅Ov|=cAm-b!AxxFsG3h( Ehv8C:}U} XAݯX!{2!ƖgSIwsz2 6%)v/k2OLh7 ,l~edu]]أ[KL67):(7ޕL?_T/},FuK" \So3l:{rn{複?K/|̮UģCx7ŒYnʛ2iKcioA8Uk,?Ԕcv:ޒGn qXO*&IּWc 2]˲20OWDhYsWTFѷa,;}^COҼ,!wUh7q0þbYvXYT0N==YΛ{wߔup:#QhdǶ,A\8?=1-K}|v2aܤ ZnOآD-SZ?wF2D%mfɅZ  #EG|%}t[ 1H1S9|=_"Ch{mɨCVkȩ#Bڏ9gÃF̾X,`wnwWoSլۈQ COk2GE%ـa(umx6 ]E,F870w9%-_~?oX/7%*Ttၾкyr›-Ϭ+Ҟs.ڟ*Kƴǐ>Խ~qsd~>?H Uܚw"FŲpAXM']Cɝo($|hcJI8 !wLCZ4Wu)UOڙ4`tѭOSC=Tv&&q|D**.G0`wGO+wS+ʓƆsYcM +ˆl7$7H_34fJYBcc$NUmę MNrh{2vy9bHazJN:V\E`%w)0 t"˩>2*:"`9'*,0}Xc?iw;KK?z P˲`KhLF䦒LgFf%s|4+Dp +I'cGyYYZ\>kiD./ʘ`o=NUrW\J$tU*B9C&C2(_/aH#ͣA˅ f|5r} L)mn W.$ͽo#^"mQɊ;SJLOCןѵC p&!Ԇ%4ѧnpLb<[33_3:BEljgq%BmOj* L>g)5X`z $&sfSJnu|RNGF>DCێ['I LTQFO27ζRhg ֹ֕< Bd_Lb!7yx8:=ոu-7E{]'k^h+< &=HJ7y=?0f&Wh@Ul wӑl9T¥_oGL: hi1[Y'6a{! @  *ҍ*\uJmVx 'pס@] AD7wbA2w9v@ht;, īhueĎV|^1o˼c5k8ʀ)6!H MOꍘ<<)gJq2N7q?} ;,}rb=#)NE:\xM+ =C҄ RԤ+\*ȁ7d۹DSY"71\:T ~M$*/h! ZzDs.dzI{f)(T~s曛do.2Xs_Հ3ځҙ2&f,"Gzc:Ӣ+kW^nCRE}lޢb10໚Z, /"@K4f Be+LBP$ w2(hY}  u\]9gPSv{|D!~rE e&тuO8Pvە^KتjPՁSk*;#qYIkeǙq,!@U xDc8a6gS SFhqUX<9-rֹiH)"ɠ肋+i NCEO>k~>0Q,|+h+#o,Cv9#|h?z N*v Ѧk N OξB W8}Y9'ݔqN}[K }39~)Ki2ILG,e_pj $ i$qȂOd co М]_#Xt8vGe/JUJ zuHxT#G4Gm}..ϗg)uC*e+逓WCZi is!#Tzfˋ7lј4{$sjV%&9n y&{79SjƤ7˴CC0%aǎ ב@0*t1*;]hB KP f^Pu]zyr gR9i(H.Kį7!+w &6Uwsϑ-Vm7iCv. XEx7fmfBBR^*QCPyTVS?5g/k0xhyPR7yYD\Qk ;SJ|͂IZz ťzn [o|KIbX!@D,RRY Vg!ӐgCok'q[f'>̛SGR)eB_1M^ͼ"=6ΙTW3m+(Pi7irBXSq~ZHx'!Cۛxz8"`$D.twaq=i6Aܜ(Gu'[0AXxV4UHz#$@=I:^܂e%Q K32m咓Ԑ3D,+)9.1. tww!#DdvӚׇ!:8TnA0V >upd=q\ d&A謶\%4!f./bC: ?}P4 ە׫!b@肌\A{!e^gw#}sU*bTMri, xف]vVGifAC,}rάD bѢJgZU&v =QfPo7d[<ԯ[$t/ׇ|Pa1Fs7?}3(g40(EFLռ:|F,W1E"i@,Kf-aeW*Z]zcޙd S—Qo'%x9ƨ'SDȫMˆv}ư]4z/EBzMFq1sW&{qL6lw&.F&Zx+.:A62۞HDnyy08f^?뼧A0Xފn!:$D6WU2Q{L9SpŬBx&6 aaoAi=9Zxt)OA܌9%u}A MϙŤIs㕋 3 :loj 'X'K "P4דi^rF)pwi/l#P*.KM'pU @8u:Yk4B?h[GGx5YL/8V4fF3:[Hf}(¸* tƤ}w'|=.f?,dh$hAAa.8F :Wܛ~eL+hjǜ%o$h~9l##>{nNP(FU/*1j}~Y=L8P/8ZYUqN3"P YtZh9 4m"5̘׉Q@t~Xgt{@#'`0-3ǢH߀ HA pA2#pvVxPZT' a cS{#{ 藻L9fl+`*{EaqSl l{=-nLdsx\tJSG3?Mց Q,{{vHw٠R gnz[XU^XKVuѫ*cѐ7=a훷AK St $յ $@;ڭ*`XYVVw1ؠ8,\n4{CaÚѬ85 CKWOXBr@%<MkmuԳ͍v1쏑]Fxzq$Y!M?njsqr#ӓ9eZ xgR>4 M^uh1<OaM:Q́է ɛt6R. BܥrbCxE枆Hb[Y:T+ /Nkgm~V[^+P^4[5V/~Nɮ{R gB!k3"rs~Ƥk4q8R>+0ڪi! v=- Р@C1q=Uܪ]yu |̸ SmΩSXYR;=$=mM5'ИpztUfيW5$:W" Z9ڸsEE,Z ,4Xe˝E؈lD@'v).Gh5 !(-anĀbOh/Ǻ!6ݏ4@?Ag4 V%$vu"~#H vY}[t)k]>0ekz 'd6 5 ]+^ndnѦѺ=P|qܐ85lw) I,)Qw?䉾ogIn E.l{liJYAHu[Yuݟ-۞6vmMa-I<1xAUMDk@ÿLi`#Msqt{*agPFn;} ]mlY."xu`ŧ0̋2xO-c|VH݂2 z6>xN:>skPwȯHa5)%vMM[gUΝ·uHSY;vy.,*K*mL SPL(.l0N{B!aLѐ4ooj<0v[ EBV NeM(S j9 L!"P݅6}6.@.YyU{iUP6QyckG*Sm&[1G߇N=Y[`-4L!A?Jax j}~9 X(oUAӅ\SϮ36&Yoyn\/p5! Wx 7_9/)^$'g- aS nu "5/縲ʻ_J㳪v>!.#ɳr`lL:B #/7y:gZVo [N{᩿(HuʢA.ݣy ޥy*a$Dͱ@,e'fijR}QC؁O n?JRwLP#R[6'4t s)G6k3o-7c̴[tF4Z|֟d0L r B>xܭ" F4hKlm&qn,Wof{2āT}{s9壡Z1~l2*biϟF10N) ̲31ö-2BT/!z +$ S,BcEG1 zgdv Ȱl=Hhu&n(o}qB Ҫ>+apEU3潁 &\Ti.IR ~6~rV5n&H<^\-@P1m2 =Ř }FdQ0ve@@iY1,2ϫ h4K]$,6G݈:c* φ)ϴ.Ŕ⍈B`Z*{ 3E[Ġ68éGt5SyM%q{loZSƶڊ owQJf\d֋pBe)ƞT ŗE.|h1M4vb>FsnJˏ&Js3SSEP`VK_u¦} ,xd_@Vj\1(< X酪fy9H(o{;EE *ϭzϳU-|_P.4e,0R\ԇH,f6V v5ެFsp\doG>nј9m*=ϔp,3&a@]\TnH_bt@/^^92 OU$DF:z]l T[s_{&.};pc'JRP%Soq4<ű0%ɈW&*` xW;d>x*ObYsSEGdyM0@N{jHi5s8JVn-2-vg#½܀%r.57"L2aW}sϲB#uZ$bC⋊զ/S}+5]?"E֢f{iP; 'I8v?Rw8䞴^52f`)_6=\cZߌQ|5BBkM8`"J8()YzbCU56BklQaeoz;V7/nzOTr9%l -!] nq&"rsP m7Bw\b!AbaH, awbK3:0/iH"~W!D^SغV,j#Y͵͔6(0@byb>P_5΂0A>:*@ٶ ZKbpP6TSֺ@;P[BdzCֱViٵxkz^QZ\8whL$Z19AV3Jx1U~3 B0d"Ēg$ja\4H<" jV{(ngpw=z|^~Q0{]0t˷EbY~uhG6# K>?.y .Oɞy_mbN|K'I:E8k% MhNM['ߠ}\k_ /l;ٜ!7FeẃUuq|`4aq)O 80E@9؄I.O<.L(ӱy+dA0 HSXd⬬簵 rӇ mlH_S"w2OΠ !Ƴb4ӦANBVB( m4VfYܯM<0q1ii7eV^$/d̛bzr` hi..Fzl0J]Y&-#9:NˁL $+эv8D\d@"s*I7_^ si'0Du& &bפQے`[^+$Ϫo >jyqZbJQL?nx)۟TZj 02b07I3|q$a?bFM]B+S(Gz L׌E0GUQ<[ʡUl)^H5ǣE3A4G8@j#Z{ YW,:*uΜT{9_b`j#aR:9 xLKXv􅋋fl +!g6.^"hIzN Q#T"&1۴?եZ}S1ȫ9 y]5Zbg;P0np\AIR48_ C铆b{\j:hv )GRڰMvucR^Ki_rKMhl  -D$ xx?٩j*3 u: D: FOՇ]|@8lXp:$2$oT=M&L^FjYOb@ofj^qr>1M{xك7GE2x°uyvGE^¡UbwM q KjfLz1 ?=ݿ|X8-i~?Yi_rhi(PW_PJQfkĨ1X4*ҫZDUR,6kt& @pIi_-01(+  }c5ί -&1PӋހS+QUz_\u"MrI' nGc̕uz&[BNm9S;KInշ9zxn@ PJ辛F6b8_DRR+v֖LOmȾ6TVZUu'֝ BzwVVGх }B")YyW{kt)=e>Hٺw#̢hzϕvC47=O!D{<8 h?20w}Ui`;NٞP+W^ 8E2#_U6!`]ߪf@C@LPk$DmUOtGg(&)p*KQuT{ۺyQfw ^!aVVlSJ~;ARяI5Qwa12Ӊ8ۍaBd1 &Yf@nuRsؐ|q͏,sxH$$0hu\AXNhh@R=a?"\gAMJ-5  1z;2+KѲCFbȋ68N$a{2K}сh sGwo*,i&EbRj/A7 )hht`G'1-idT6v>>Mnx0v~L4'94_ω>,x>b=Avl<:'1)0_?xny) V0Q5s<ƘmBf\ӊB^oaj;\!LU`(iDdB dPo:3vs ֒  >ux ';4&^ 8F2 펰׃B bl b[_nbJUk4g.>1r.GbfZ:ӽmxxԺ(xYsm/qD6Փۊ:A%d!\J}6z 1b:*e1GB[k1Yl"[q@+ZIռ/h2l)CNAdZ-SsٚPRo]@UrO~՚?CNH0~ ] 6߰iXAMkZ~ eW*.,6=v޹ݹ8g*)|"MiA0Fq)#$/m2lF'"B?k#LB9F0B9"ϢQ1D=65BP#!Y,4rs(DhN3sK@ n MbSy)O8)(t꼞wf$"g}긘ޔ-AgT l'q'3}ja5R-uQw͒]4ּu3ea.dGqml'p8'9 *2}/OFD"MESGB "R1E *h떺ao7-nY:mdu`NP%R qI5{4Y5ȻM=6TN GTj,eQ@60.ݙX%`F{ </@~>v>26WU%[E843o&Tﮠe

(d`H: *N_i'V+X"ޑsͪHzٓK\e4ዜ@ȓaЬ4Ƕ3j$X7Y/ki>:>T,hE[c>U]زEG v4վ]3 B˱{ sm=\4U79ttm[MArtFmcEdXjgW;̖Gն4 Hx.A~"_F;gB#.9ʫ' Gy-+;Zȼ\s37NrcWgEmF E '2,܉ rSa}vMgʚ}˝_[6 堇>HQ {IO.bk * Cۺ?Txh"/Aa-2AKWQjM_Q;/*>.7yO$=`@uyu J6̡J?XhӬ$:i 5/`9M\E߀ Ԣ7 ~UDlanL4oiBr뜵CD1Z=t0`\EU8i7UΗUmEv.5d xQL2>|T@BWg=t ,{#.5ZޔgZU u=ѥx'36$fID|L@33V?v:SS;Ƒbg`*N3s'7˂A'Lx `EndMHI&gG2xNʲ n4rpUۇl>y/: b뛐%K} pܶU/ٖC `ʆ2_q)LJcx6!72Zc">&1RjڒU`(! 5|i -v{/} 닜҃25B!$<b٩MG'ms}br v\#k%e5XUFEHGC+b;YNtw5'v.Q$9 9kfW>z'CǬL,}+V0D7eԝz>vf,O/D}sav.#7Z Cɑ_Y-AXMwJء'k8V҆`=[Ra[. RMA㞎·Y$<)Sd9RI!fFhZDiPO3/wWq*P]2HNPI|DR|HczKXҪ"*TZnPYAAj !aްP~va^/W"Oᎂ[sDE@.6 Xإee_.@u,r\H"=RS AI"5/*Q- L [Sh݊`mk_wP*L4,AifHԳDQ$}oSmrƨAZO"C N`P~$ibw*Z>0%9@7:GX?6K,r4J%jNpf \n\NOY9}gdCc'\¹Z!ɘS2i/!ShC5(*ve(|/eKvoCSb^8`7HB,wR>88̪Њg? /l^b # Mp1EÑqJ:lajpwU4L^5.xMnnjC$f{#!Unj_mMQoq>+z;k,7.;= OK^o-+zbGbiS@Sy6$5>D"QT2*A}582%fӰD{݉Bեs[a;ovd ;+}G% o"Hʯ v~GhcM ۹"- IȀK6'yv aםtq0Y)Ua3=X=h2pIRu*D ٯF)R-AiDhgcAeeI&;?j~ +r6ص&,Z6kOI>D'Y$Cp^Mɣs_)kxy+J'u+%z\aV5lMIT(xC3Bib~Sr@B(PRrLkhU*ni͔ƻ^2Kz }[[vì N ?t(#sITTKwVԃ0'1NU:cpy%=HЊ'將AJMЬȢYmB,.]Љ?MpVs@N5qB &_-{EQ|j[݈5 KQ%>:W|ݩ\h_#܀kn@ݩa&t)s0q)4j ͯS@*٫J݅=% T$KZ.EM:Ϭ[iО+XGayJ#\#SB1Vc$LQTEd<=wn"זEG/N*dx[K6"-jfXt P,/4O3(R΅<-ʻ `r')Rc;|`2%ducWƜ0aW[J#1ۨ ykFJ*J e4Tb^xJ&s :42Ja+wc`6 | 0Fcelv.=>Ñ7BIVw.25sZm3^"%jwIF 6y)@MB 7-Zvx6+S ʬ@aRZWӠqٍNd(uRZ-TeS,'t;TAPMmsPjw0i,N1B:,P߄  R/mm2* 1 ,%6[V 8 9RZ*ZI#EW7&^#ۙ_K3tNި;ӻJ" ÷U3%EDȂꜝaZ U@`1?Iӷ,L>\GeC$F0Kѱvý.3}QFC;hIj@] ! fo3k8:6¤SZz I|h* Ry4.eې1St4Za>U/{"(phy8lZ>}$quR? ѻ_,ȶ:@̢+ă0$1Ѱl W Pã|= -̞< m"Mh2A*@Aub't(GtԷAb a}r .Rn1 R'%e;ӕ\>otT5\ja3_6j%w /ڔߌpйv;]kϚ^Z}R9;öEmPW- mѐ9s/ELDp)t& kJ/1ǥޔyrT'֣Vu0ѦR8fj2ٵN.d9(ҝryَQ4 /)X {dFXo,wqx;CP'^mx7ul+vTaZ>W*>O І2#ednN_rǵqH淞]T㎿QGP;ɥ3W燄2ZmۧЯe_,^EDHv"mu}?cz̗SJl'g0woQpI7-Bه5=Paoe#k`qcV,pƢ]HxK,/aJqU  9POYMvApxv#= ^5ݳ@i@<dUjW/SiBM8sq{~BڤgKX"2x8ɠ&W]=`,t88<sY6Uٸߦ&r${o#ņrLqVnj"tP%yFU0Č*觅>.aMh@2}bT̚ Q@(΃\Nc2X:6W^Wuf h_b曝|ʚm#ס? ٓ"Xl{ժK=8?TQȥ':,x";MN &IѴ-"Z.SG)i4(iH#Ň̋f.i@$,a {}S̆5!8@ȯA0yq;*sٹ5t_L΂`TM291 yQ6ngZɓ|b%SNx䗱Z}<h ANp3 0&# l|=fM\]V|V$jc#ڜ_b}K'P]8ч& `"Trydtq.8 e簡I(^]Tu-츈XwJ0#kD iSiO+IwTg/kNP mPwqXb߭/g^#92V1T |bJp:hbT?G'`7rj5]uw|C{4nVo0i4] ^`}wЗ;0I(^?I}[h6Gm&պG?㉿O}|H/jPYeV 'z_H@ [ՙD{P\ ~\YZsDEė=h;8.8,K>#99 Е^lm=[W=T;7JGkZ 'ZIzzaQ#p@c@Re`Xc~L:9& ]gY N=ɏ(ZsQIpD[پgl[]0cZ_-^HcMčOJ#)ќJ#Cba.?ܑs6/c*&xab䪆tq.UmHUK<4);3x-.4hۖEMY &~G<A?ѝ½Lyͣ .6Cf{ئrZg}q}61bB7kصHEY͞uj}+wh{w7#F|?7Uآ.vvȬ G"+Wƈ>8** g7ͅ#vLoد.t40?ދ^HaXn(Iڅ]9cC#[c qWb]dLئ.pcT,(gɖ"mqaUҚƽ0a^-p̿ \y݁B-Л; JYe h 90zNvbb% (Zz(m𹜨}A&=1 R=N9lzN!/2!h`ktx5 ъ7:9oφrNBWuFHoq''fA^%W 䧅rW8 A|YjQo<<:h1Q#|C?5~ W`ղJ3`KN]ڦ v6'k|>ҮI{V! /ݬa\[1309N,VhzlW}`[=ڴ;4+PѤ:fmP 1XSuH#5[: ;R&׏ ([zڪ"q` ^D_l ^sjZ~v^UszJ c7 NDcNba<&wc+0y9"dW14 1|EG 5MV7l"PnX=NjЮe=!>B'DwN桯S4QKG9Dy4I ,k 66$3E&P.6I*ӌ* ll!x`U-e8'w3$o{ͣ?/YYW(igi-O1dr|fk|FsrsW( .K~qgfRKv5%ƟURGgARW Iy8X}\od':ɭBCYyiBC -B ", =3j"SBZA% ]Mu&3&O?~34UR?f^.inO[|hk(nj2ONz7>ʑ>m,YaQ7ޢ,q=$'H4"؎UK;0HTvtڔR2oL' aT{] ֠jNWacL=Y'hQx&\'k/y+yHv8O\BmG.ܟLyR} qFȓI]@Z1S]OofÎ1`Um` qJy ASh nFMc 5SYu !heV z|ߟ}5f+pe5K#A44~<nRkN򣪮%z\*F#Uh,]=7DǺd3zr=;mIl*32`%`! rܛfd`qs;"Sh(k6JzP9eI+eԟBo&a?t_B>RJ'> AU迼 = BOʑcYݹ@fm4.1\a a'- B; vkZl=8,1> `w0=gG̮ IۤKeJ냾|<?VRlwD3QR;meveQvK`=r%Odcvc_MQi CvyNP`JY>ۦ#0ZӢoOh8!f*Kx\r gl6_5c!Z QЛc NX=5`d|mgH72'F5۴;'"LSgacR᣷)uxeh)ԏ~>Dʪ;CDז@<34#"["@y!DxE8.q̡ 'W !v,Vg2ɭ i@";E$*q(x~' BY龿k|#S` uB X2Fi>= y ??'%ɣGJ_ُkIjqۯ H-F4bpo8fHdWPHgv\CłF0M$뤃&S6%%U5\64[Y$RTḑ ~mϟC&`D^>MTw '$U|sh ]{ q YEYKC螴- Wto3uIr0[N"55kINW7H(-k?VִrMq&ԎaA|]&*"ѨV,S G댢7Й{sME,ͧqɸu](spīQn*S`R+dz}#Zo\/,h{qwI}|yqvE0‰CQ/R*{wnZ , 7Rh1@B0WT@ڔiO\Ig巒gr@[#=UOL(Wc1]禈Ք RnP!.ŎdmVUtj׸S)c$Yto3o:4Je|5 !-=͌j&PϠ{|_9gHr]'JA#3Bj* R^t_f!]\>y0lRSz"oGsԓxMl N*:J@pxR~)l"gqܗYU]WLxW`2}up,2ڹxH-{ ;0m.^.iZBQ2CY5"!>ڕЧտNľH ~\4\OUdt\nZОkTGMiE _^w/'`BKVE$Zxħͱ9yMcN(WMW{.jOm5 ;LudW(*5@V U WMk4#=Pնt/;Շp W@b"@A z%'\dd^ YN]Um*HJT[PBt"g2FU.`ӔdO3%h0qڍx$qO"ۡo?`v[}Ql).kW H 1q*_fĿ%r0hr{u•WUX'9ru `#l|L%ig V,u/A/[Q%|!A=%~=m&GȻTXEʶޡA+췥aQ9-Jfjf<*xZYSJpD͆ ӽ!K6錃щ٥UCb;@l"$( hD- Kyd1<8W.{ۑ`Lw#Z9̼'ll0|5@s]~w6/ۑa'Pr{x̱uxwsIJhN1M"P8,,u4u*Z^ѢÃvby[H )4Gm>q=.*L= ( -g1xY)8Sj,Q)D(ebuIypA_w#D_YV0{ !#|Ʌɓ9Ʃx Xn~?8G2pݰ>ON>6- Hۚ{EOܸcG p_--cVW:^'?Klr3Y0X%%pz-Dg\Π%LFH[>Oݬl.^*L9$ F+KE{*}zt6sWaшtԧ}41*B L|t|Y_0$wӪvvxg+!~6AYHMA]oAGHo! -#bnD5~VSNmSry! gsX4oo,ɘ>Bx8c {gg#Ey lQaz b"mk夊Q쫦CbGߩ6OCP|Y]'&Ļ.0Q1PդQYcF!,g_ʨW(ѱl/e<6KX35mc#N=' jlI*B^O؆R]W=ﰵb2COf!˖1cuA}9SnFSmվDuMTm떤T;5;/.:zzRXl?\|齏fҁM-mV'U'6fT5eSNqI8 qcHLHssmAU?*,K>}G<[BžY]mC9pUYI*ܾ+l[ &:#h`^6S7l@(p8/8HiZ*{ n}jt /s n>O*LсFXx՝)yж4LʔaHFM"T\ >D9ſ| {CTҖl}< (yxىYڅF2Jܾ ?'@N##(⅜p?=tKz+VMۘw ֬YNt:@ŷQєnqqkVjś?/<e,;sM˨}-J1{ XBb[M?XI;84(ROU&Q.:NG 47W \FHީg$w^ΌJ:0vOQ {9ךJb4fWkN%I\u4% `xIPL(ЁjbD+jnH*Ӄ!_uIfPnt>ЄA=_CcM=f+XIǾ1l\W!I9kж7T'7 Y^ &;)JG,9.\JWw&WR-j';F@OØ_lF,¬˷? oUW#k+| Gϔ5ܸͰy9HUb-z=ngζ>sog4O%d;z9'x7%(Q@ c$/@IB;\G!?yIm69|dߨ=ULAm}UAF9忷Bw0ҫ,4+%"L}R1m>Yp;썡//6s$#o4;$\v)>8,i6Sq &Qqs +w \ §pz \׶{rBs~X({Z^X_gEQ-ZODEn sF6'$#GpIY"/ lA =TEQB՚FXb\jP 0 (JY2g gi\Rk#K9݆Pт5mQ9ekB2G9`q((-tG|7== ̶̐!ʕ!f՝3rRSo\L_yt9ǫsy1;̅  r{?gܥr\2NՋŸ3C.X{Z42M/_ɳ/_845]ᄋc:j-wC3 kf(xݥh _S=V=%_Ҟ`sO] x|wmyL)?Wxj[|%̌$0bt?aC=B hEAY,:Ed҅ Iw(??v,l[^[\bB\|MQP[Sob_01 A![H53m[[+hM:f+@l~Bv*?MvV/4` D'cE޳Tl 0BR4IyXfЧg\)y5E]aUa,opOzRXW>Eh =)3i@ie{ ӼOQ<3ܩOIjKw ˆ|fPgn4-W`cIF4\*RclM=M rYG"fͪx`N7?G?I Vz}}D/&c$5:rCW\1mؿOwFK8$L'?&QG29#twj,͖EsHTn:jev} ^.RyT뫒ZZ:RW ,!':4nAӓ_BN&!MY98@_L5>Yx%5("ydiBW?W6p^QnỷT緾3NQ­w$󞷹_}m|HciTF f1d+dO}F$UU ʼ2Y<.e 2f%}7O!t-{*vH+:g^eb-/{/.BuF"OTm2cotg\M~5Fi#5VT恦A[a/ͩ"i]^qGABE4D%]a1(?{*:wj枽15Uou 0C|3.4jsy(O( ևy0,e:lp$yU5aop.Ɛd_Ku\̉iX#Zc `TG%>}o}Z7V}m! 9|v٣]z&vB'1jfŅ*\HJ;S4Z-y:);z_dG/Q82؆Zm꺾BF@y¨3IתuV0 >)9z)T0᳢:J+Δ;>Rfr\C uSa!w%Jg8y{8LK]h?&${hFPc:Y+wZΥ9iCH^ ^iBx\_u牑G'\W"4@sZJYK2OYNXJ]^Y77 ?9EE߫1Ś'uމ@o N¨NIm(c8$U&Yv*rJJc&kD 5yۯ8U)Ei@ҿF> pg9rE'@u~LuGx|(g2bPb`„65;Y;Pq6FH>y:oZ@.,Y].A8fLAnZ?E 69D3{)ғW 1bқS{'OwJךQ!aco<Ȋ n(a&wQXL1w%̊ʮ1pim'9&~AuSYd7p-= (NNdB![mNՙ0} O8|PdLVNb)qw-vyU؝M6Z 8\-q 6/j[#ft{7Sht 4%i<5x)e1ٿ@@B?#²)iD&2="˨³ETE+Rm}V~Q3lEIDbJ򏨼ŷ-+,7Q-MW phNJĝsS?9Nbo+\}AR5Ǯ)U4ڼu{~g ]O)0Sd'ZXϑ,7JC)ENbecoVI"cysIqwakyCyoʔY"w7un-@a*uCb~ i+ocnaAFHPp,?E*߱0֔xPfM S2^^'k-qѬ(?z]w!ըn2`f{lҮ/_cHέU~Yߴck+[#; pMe/zYB>e0bu4ekneC&f1b?cϼǻcU'I{ 8*]|')sBP<( ͹cF#F&Uc4fy7о56d蠄siY,sQ+:% Dh7t/㺲t%~gdlG jL=ɰxHL{~8s;K/' N#ʹS&phR/NTK L18MşZ^A1`̿3>%B*.1*Ⱥ1JD}SIfEQuMQ ~ődrꑞkL]guO"8w#a&vFjM1: DR]R':U>>z\ k=8jl/>Eqw~eXJ<xW4Oav->_0? NJRZ- ueݗɒ֠FeDu4ӣD̽W?\,c$UGuRP>yMD,;9pd_sa^ysCn8#EFP`@C.H!̚yz7B{iK)yW.7RGOP#9!#?B8KL$ֺyE]YQO!bCꛉZ[Yǹ@܇LSqe805h eeMBGvɰ4 lQ%^6)8Z)_7&1K<\ 8j^Gsy똓|(HuZ I77`pm7h░S?u nTf|Αzz&NY qmekfDx1iDa]Y52.DT%QԀz1Cn ߣS[o8/}0QIT<ﳢQ.Ϧ$poԅu0pէ .zJ4m߶Wx]}8C%Tָ溈!Kv\9SJeLW%h[Fc zޠ8~٪/ݓjJe(S MӦuHM q# vNj^n)yMk }<[hnrOkP2*u5 j֐e!2&DTcjAuʚ0ry!t"^Iz7k'_ g0LN㔯kI8CJrB>joM|;xz˝]YFN!KݿDr:NP-k!:¯$MK ë!gC܉MP1!@Ԝ_/;]S"ĻW2&@g呓Qzo{c;)/?bZId?AY _~ uԽ¾5 xfZ!JbX}ꘄFN4)? >@$7dU:U& 4(ta䃀(8>.}@?ag:j>@iD"} iI!3Uo"$4jWDpD~\FgϱfcqE7c#eCW',tqkS`e%ZeGЕä=2[ZRs|MR-9$KqFf/UzDTzz- /U9_cx 9~R 4u7 SԢV_ y LN0Q04z pD=u6p fG0ABëwܛcʇ6ScCgZ p

Uu5:D0]GQԻ(cLlaFCPt!%*i~8c.:2Df#C-+nmUe=qu>~rXQ 4_&Ai4ZܮUWcOD4 )6VW{HX[ITS×-$@]83fL$HeܧRz9d}ArP(62I@dq4/'#Y s&C>:\04e<Qdi>ZQ 2aoR<=꤬EmMWm/YQ9H{_Φ9WA>4y8i A@bNY23>*Tz:LΠ?ŹM;L#˜\/3 6ϕ4*Xx7υ7ڷT6:PĐ>tZ*dԟ>Dkl%@%J,NϢ3qAJݍC;[Y^S iI92wAk9+eBISrmU^B,ܖrxnkOf" xxs#(yŭ n2!E?<=H_P*֑tSOxK8z!VRG2 |.j€sa'SR։i&E @HS\z+A/z={Et(#o"͏"Jˌע^A pW)6GcKM I=u+$Sj ~GS/;UJҁ͗v޼N}h=]e9m7NA)ˣ+y!vUx%|t.Mc;uMMu %SSKY8vy[I&訢VGZk;Qf4+b9w0n|QD01v5mhYrrH(;uR1D^ $ MUm9tgDaRS^ 0{[䋢$|ʺĤ&YpQaA$~Ag˶>bk_& V0S L}E\z\GywƥL kJZ?؂U,֩|7RlL{wzY.z鞎9eytZr5ۉKwm ͩijnP<3(xq߃^<%25ĕJhH?7W+мc͗ a Ό8"4)&>ܰov "~rc#ŸrTFX,}Kƹ&fqzo_)?ǴA5{hl3a~8/}NM`ݸ0d$с;`_[I9<%=CXܾt-B.ToJvӼմ:aQn;?´;܍(VZf$8wTAtnfdp,(!9+ɷ4z Φk˧\;; b@v8oVgS2E]jlQ'yJΝ6ӖS4PmR Հ" v׌16GH%;9[@ƽyNy*-%;p* 6g,xe뮻cigO~DHw%湎mk)r4: :r.D5lȗ˝ϻI;G{6 Z8{|j1l#p=| atH+Xn@y _Uwi=J؛W첞O5s%+Bm`jmDN4S)A4]k5~J6Yx:ߚ_)t5ݓ/5 <߳q`pŀQBJ* V> f!܄y7MeJ"lV;-K3إP8 *߆=h-i1K 7aw)>;Z dA~weBUΧk AK (YNW'Iqf1݈C1o1&Z@e8u?!VǙ0SF_~̮==|OkI&$Ȅ!^TSOW:BSwWRdY"1j3x*_{2`]e'o OR$#kP:sc>KC3vU*fWʼnwz7M 'wjZFq5P̝yIFbvVٟ^y&<|ޑ͔2Doc&BمIlY[gTOKM[*jiN,@o{ 5Q؇1˫~SVBjQB"R=|'s8X RN f9Uu܏EY)BXE=$]~lÌx,t΍!eht{ZTy 5*\9[ N[M_Kn>Z:tyԐ{vzymu{W}'TId@d|A%3\aGU= tirͱ!z15zR{M6̊wkub%bȍFe I֪~VNӱԢ #eiaSo6\A1,#;"bvyR[BJ*̝Kz` H:Xn5QɝOfL $/6:hS ;1EgH~0rNVV!0,Bv͙.Ќ%]=>diN%ͭ.W>BYv\qf֛w 3ϖ**gemP*oi =tj"?|GMe4M UtjNp ¢瀞72 YMytsciKgi@L$ytXT>'DcvѠuc }gX쇳@.3y6qaI6$t캱,zS>Js#^i`Q7Q`֖mLE'Xf g}9xOz3 @JWv ,WPoKw2z]q I)OQ$Pp&Hd!Zڱ%5AHvWOUR`_@mCc3JI܂pj١cm6Y^xVTKYvmeTdžW宸lm\ 0dWXYt⟤j|Ӆ!:A}#A ++]ngW@[#7dEX ͍Գ2fPoPGZOvAFRET#mmɴQGaD}2>ܭnGŰypbb*))XجdE]cMbNp K?l˲YN`S`vRϥ=fGIdJf03h˴jF_)Dѐ95Dƭ/ :Bi+xKFp=mF, <ǿpv2NAT싨37ȍwD*D"K.C>ŸG:7jvt#8{ә i+NQ@_PB$q+} "PIĤUN՛ /* LA ̝[~Fݼ;G- tACmFž)>_03ADC'K2ՎSLp6RG3*`gGB y?1ҹܵ5 0ʝvX{0ǰN#o(.↉[KBvs~oH ,rHH>;I~VKldy)lYZW_;&>6dP/SAŠ#{Y6 ⤿]J|j; Ì0:s i>嵴Ќi&Gs w EMr,Y:w12/!*)Eّy1jj$=EpR~W Au%N[& Rt !{!zxM0OޕԺL(>qQ,c!3N\m(`;FMG`(q{38"wBȺNlW|t4q4NǬ%]pC /^ lvC"iU_#C&ia=Pn!\$/fTm}U֚r OVm5K" VC%dtL]2[6o;hjOq`p.@-9룠i|2FѣB^JxK>WWۣ )!ML|.8}ܧ6=>K!qZH' +^JjPI@␄%䭃Hau(otrO7# >cIMT`%! 2@!RZ֌Wx}Q/$WA;<UC;kF)$iUg=@Y>[> wʌ론A`0I٥S)ލ _b6|;@;ua K(@QO`U1XE.%SZm, ?W5.׌~gAF@|E.scZcZ3k]uSLTqeN@/o&C}saþa;q=9 ű{(UFP oVM `àxK5%3 oꀦ'}sTLvDv渿3=/fCW]F7L&*?əJA{4e1 v bVݭlo Њ|Su֯"t}j`Gk:2fFG!P9O_/<&%&njqUl!Y֒2%3ɤd8fLl&4[Vh\3|P %^x窗WrDca&;wISp+dϞTRݒ[o:('MNx1K$ܧSN\g!>&ҝMhzlH:BA."HϘJnb u/ s$`Irނu;K՜3&d1Y 9> jG=cS; 40lz{̾RIoH4j`MT-ڔچ>|B8^sǨR۞%.4s0'4z(Jm!^ $ ?Ay~"nFIhQL{Au*tw?ᛣo&ǣvvU 1jE7\oa]r/;}m욇[0Q ̍WZOH+|0lɺGOɝsea`BWÐfad\46p%ߦ6ABE͜ȑA;K,Fʰ+Hl :e0p=_1o8 ^gU]]o}LOƂ(TRΞw@'[L`CS{m/.+: `(&5v)M*5@SHzr47 Q5J\bRvpT2b1RL"8Jھ]&~Pas,UĶEIܿIemSa@LH #a?ujUhUtX>_d9<ݞժwҨhӶ|3faͥ!F}!IZ/Z}I4$4KafvbM/N*.RWV;$P<+zK1<>B2= U|q]zS٢XgEٷF݇eluPH8tϊT(7Ulȁ]$KqP1: l>Za vw; +,H1n%yrRk;6]NIG=c[k,"Pi(+GZ5_t@2{tV|cU p:YR8[ݟxO GJ$z]MIx)LK0;W1Ef Bczʏu;ě|$[bJ0>FhLb+Yu!M?wY *Sl/"R_q `|Aė]OarW*'|pwPS+̍Daq$-$e|OY}>$KOO&L{IX1_B.7[-3k^hmU@^eu\ܚ<ά9y2xN܍-j*l]?CnUF^Lj̄WF伋>?~^D;KƢeMo-iފ8+6jXΈTnL+spt-ti=%u0ne}LoO)v-8I8Opa2A(j3޵nY6Mָ4E@"5٪"/< &i,*Ib/r|I94HxOݶЅiz?Csuăx'Ttg z\/$9ݢ¸ 2KNF6.۟ȏWΓubRɤDd|($7JjU?0UnzMv7QQЏidz[r3{$6Xmjcc =om|JIE{5I؇|7`b!q `5nVcF=@khYKidMZLFCv(FNktM8 '4Į&eh+<xy1hΝmk%P eS"8)6f"*>pҟ JL]oex*/'%t"GV8JܳFcݫ'w 192HoM=U,~w43˻9A5L]qa71ЛP"'P/PbY"p8G蒫'|#4ܞUw/b)c4yoԛ fh[Y0 qc@r $ԉ7!NwB{bW\s{^9NʷԲ0y<`楹`z TЊlL׍ǎc}ӤMhƭ51"ѹ"fnы;Gd"ID e; dj +[=h]Pδ/s3g_1B+ J~4ė9o a8HNFMNvj^g`v_6Őd{;#s%g_GJۑ<8Tyy^ma3p1"!#>"|bl3Ӑƽ^CHZ\.]lK ?=, ,84{d,H;?ZUBe ?:?F"‹TӪvB/*vǽ,R\2t.@kK3ZuE+ ֜-䧅@zB&c-"0j+• bQsxUdYwi1 P&Js 4V>' hukfgm`lP.I_-VW ,(8o;Sr<,oh ~w :.d"QJ+ I,ʧܲi"4#HT=`y X_?/|UB}*Wf,9QߣzqJA.z>ïb\#pkmgw{x[ xBh|R06-'GNSwF3^c"QYՓuJqRl})\tlk\z}-/ [Pu~VJj<}ft5'P yC^.|VJ!aw ;e]=\[],62 *NS◾f` l/=y?li>bPA*f[qcV0yuQa:LTժo-xM(q8C%.LsoP +%!VJ\ˣKM qvSrWG1I!Y tJ`me鞍۔ͫ^Smq'q(hd ģ>ejJO E-?:] P#KxK~[zwĶڌfíIJ`7_9`,4Ba^c[=n?Sa<~*<+XGdE}/tǧ.fYDxFsH0- њ JIgC?'}[)+˜5jm A^tu;fkѱZUhDYY˂gCﴧnoGA6da)}rlk.R@53Y1Hw5F!# pQ7TF@Ay4(?{ v !^4gYUWJ @X2_.i員ЬS>T>؛}_*n{KcKWGKUsݮQ \BX[}lg^Ɔᶫ w3v* 2`qڭL&m#laE,S;JcYCdҳ#2."hrQ)09K0mb22%َbm6䡚hZHtIM1sg€sIR 6[}髹|t수,IsUp\rshF#=Mٶ݇(`NΈx_ZsRd/P>?ͺ3@Qϝgw `nPY NZ'M׏d>IFRVF HbbFehQwo]=8+|z{ uW;&(@Tyo߼b1iϞݽCѷ\uNv \ev6r+OXxe_jP>' egm)SmlJX2}P$7}(r|9}c jܯO%PJUyPx@p՟72UDa4~Z% 8aUT5.V̰4 SQ|^KIU3 oTۃ'47-9Y>`"VeWI u)6ǔ\@"<&39i!xbUms-GVle׈r-S_LOA#N¨5a mXpGd 6cO}+E4 2pP=fPgY#B_qΩoV&aK™:l'6N>q՝ҏR7QֶS6gD]NZU;l,aIN6m\EED㥒b `0p#㗕> eq)..:^sIܥ1pJHTXyo~N?8~2y2;ſnΈ8z/۾hhre"Y]9]_C\tIۈ=@DFRtb:8ڨIS $g2_EY,i(̨ eX7aB{h MWʥ's+-2oyh'HQ9TdAxqs̙),AJn$j3MI{h6>Vd|#b<퇬FO*rk=/>E>aJ!d;<¡I.1YSwKjXK؎LL½/?:e-bMUwlwxt5Nf"4JY#LUȢISq1(*|sŭˑy{Cz6=d19? DՄ 1.:T]"K$ġqul#I{5 &ALLuG؞]SAZ6,wptx̏I:Yx?cWYwNޔ2i=? s]VFP&bC2)ӿQ+K#p] Uhf$/Nyg xT?aW'aRauH2$](> )-.9 <+OP2K8XGNy4/m5vBA^'vJ&^m;D484Pǩǟ6;)ox+(9~=2.&2% ڏs#3Yjrᄱ-qa I;MQ?Tvڐ1b<`ǃdI 82ØWe 7Կ& U<`e[7{+k4"@8'bF0pp!`kFE$ͺrK (Cm0l/$xQ@kA"e=`yw"ޑo^ʞM7[t5+CelXҟҁվ 7JL |9Y婤ޖ '/8gϮ T=qyk6t*zZQ7Ù.Ģ箇T$qzA2Hhc3V 'o njX#H}Ɋ.\2Sp%/Uz+[|ozg:hS8 GD.[Yᴪ[US«`4OQK|Z=3y;)FlHYXZsܭĴYcZp! :Bb4m)2}n>C2y><>4’Q, ӎF{ag%xxڭGhH%s :mZG7GvCmݶk&ŚW8#p!ĥ;n0wtl*}a %_k<0C1qI/+?) ̎.2T c|:Y0t}8*+٨7MjX50f1[maciW7&rG҃{.k>[2$d\,/{ٺB=DVXɡqC0A,}oE`έztnN÷o@((Ol+u!{*yXmf:WEa %JZ(.,2|o9-t~Iu'^,U㡁 Qfcጽg/U/ֵbePҾ l#4G P_qANo{)@LimhqI'ULaMs\KÉw/G!"JQcH+Tn-8Ǡ Oh)1 b $8o}s_4]H=+}~F-#?܄"uY]wjaM5q9y썴gϑ}aGɺ䄋C<?C+S?ħ*{+IWą˶ w2f);2ㆫ0͔PmMnAvX.!cm8Th h Ӈs~T "-՚uIT[)7@F2@(0Ae+.xjt_ IqW-^_ja8Xϣ4/iG X.C UIC'-%UnJܷMxf~^wgOH*d"1܉֡uA3ej,_Im%..! 5~CX\J6Ӧ5  SE6}n7SXkd%mm^ްS:8TRzqVפȞnuppTV 4W2n Gcp F==e#%K%dμ7|xʂc_6Kqgչn[TnmX5fhJuD_ː32kXͨD&d UsxT^pr2li"-Ygձ7!|^G,W\ %v`ES&`'~sۮܼ4;dM;O8G64^R / +hS|{FUd~К/ڄ-Dҏ&d[y2dfAlc-F`.zTSP%3LxCȵ2 ׷_3:{3-Lma2 S#;C&ob=<:~tJ{.F晃F{IXʏE#/K~KSH9Z?L=l`7F~2Ap؄TV }>Rezngy}6& .$B*;W &E^hUʖuV^dq ,(dx~MbR9VoȢOpڮ+iaŷp#  m-|) K{qeDϮ_ (4KßwŻl Mq×ř5=x!tyL { :<Íu8%*@Me8$ApUt*t7r!<,3WU/pes=`i?2FH>*@a1a?셴*-g5'޴܂hAb4A]^YH0 z ~aNzzŕƕ"sxw^% ֖An4@T纰[etq>|.*CL  a/4K:WSab0- _֜젶0-ACTͫKT5̀(rIc"gI?gKLuk*%!\AFq5oohޘxC}ۖfvH'yhD/VhtPXg+1~N!ig[YHZ3'u5q4gu6M7J6% W>PQ:QfODWAwqyejbl7{1Beb @*NII^WH)ͽoja0.Z{ą?6|M|"pt#{\>uk Q㠲}:wCLƚqb=m%ٚ#X( z}@ߨTmAަ\l#=28&4EtH/W./@,'[_Zdɉ|]Z;M@Q)C Dk*hPƷvғ*c,j Wo:vChZ@]Y.:FDOMy E]G RoLp;C[95Q&+$ eqA刐 i8*H#0M}B-"ʆUuj:zG'e'C߷o%hwmWzVA!9cWaGR*;S[PFٸXO~3E;lu*$Lk׍tu\'yUz]EdP\O(ӸH7Åc5uk ʎձ8ЕQlc7j+M6Rw7I={yn`-JOht" M f%_~6q7t8u T>erP1Z6gF94BH隦UQ%4 @, TS7e먨7.VU$+sҔ*nLݒvMAX쭂T.v 0.vMRTrxy D8QzX`v8vw܃>^I.SK E_' ?4-: ȱ}\Mbwk)'rZ 3S }I֚d.gdi&3Bj$q)҉+'{c-X7Exkx ?R:q&$Xbt&ѯmDy( D9qw˗ ]O kAP3s]y˳EB(59!4ӄsl|%br;]+Vh3{Ĉj3- ?>P'xn9 uh?TE{R䥼>"tДOL-6#3xF$JR8\2"; ,g7nJP,YJ"VxjeDDs1#*˟g|jz!NE@A^*S?K`ч=~Q3tFXOw K?~""AL:PEa,eGكK*z0U>FFiVàZ=<{ti .Vup},!tuYļѶ8%-\K1nRNnR.^7Xr(`ң~|yѭHa0HNHrwUFM3H$sh\Y4%OeY5ԵϺMQmN+'˳HWCﰵg "yjc*Lk>qhg, R~)]RwB:%۳!I6 sGSRdy* q'SP8?v̻p䚄ҁeX] wA]]"* -AЋ 0D(@mƘ :A3*?* 9ֿ;I}(r G*yAI3*y][6مw||goaUY~Ʒ dE$G2&Vp\3 Y ]:?8e&dBY4B?dKY ܃*Zyü*\=k-'$3 7~C3ޞ8\(% I1e%+Y8tw| RCHrXqw'Aу@|LRȗX .6W2Z#b6 gE} 7s&Ԧ;tX H2i?\`/D xWi8R Nqe?;H+N@ߗ= xc΍ХD$=Fb$!^SUWUS T4[0?nɟѦKkwbhd=5)pDB!FHg'gffbеEpOwu):,8R.֞%%;utZm@@qL~t&`:{4|Tqރr}LծY_x .\YMyR/)q3,n3"Phy*^S|E'c@Q!(Db魒Y2()dNGXXxC׵S쮐ގ[/u+('#w=[4B,j~OEc򠾾2)v~Ge醞zI5sIYcg[U3.o IbWfZo-Ω&Tv Q ԗh%KoTƧGk%ؒ=cMC+>;H0r6݆!_aD*0ʳ U;*Mo,p U=An^q}&YiqywoB*M Σʼ\0"ޔeʠP՚<q  QJ,Z6tBOWO/Q_Ma.$mf,d+ <_XrY((| ]k;=$ng༞2ps)&0á45כe~$ DϦ Ygs{DIjag?WsG'JLaH9v ZcЇ-ΘeV]nc6Yشmx3Mp|\rp7nb2+D{E |sj1>1k$ U+ JJ#(5(I ` 0oCo6롐uA(܍#=-!Jj.ot ,ъȃE.ԑ:cPZ!`f[+ևiexׯz^*"~pGZ/ikϣj<_MX+N_nN^oNóJDû-bO{ݭPan4"3W-m$U~Лy0gDǚTZ?8r[x6 *AF~m..*/y^*/ĨٻxR[Fʱg*7-Cm˸} M-KM>=XyvgU~mm;k8DuzGL2] |Si?̪Qͮ9ɘOG;L[*w5 Qh$)l0H?1Š^^ P7Ol6O(;E{} XxsC!LU֍{1$7s 5h}+%*Z_dAWJg% -V@;wBkp@ڊ:m3PZZ=>bez{zd27? +seO$ ^>K¾R`vKQGNǢiT+}2/~FN U^*S~KEɆZG`v1NY#qILn錃# _~tF4 ; $-G@TR4ޠgǕNz%+#ZNH3 pE{{t2!ק2/˪ؼ ȵޜvdlZTlŔÐc89+c <<ΤPNg E/RF׭Z]3usöFc ׋np.9zCkW| %{`e:U!^AKc_o߹!OV\R'g"9[ D%eCHUO T".tA&A#(^r@]Q#.֋B&`̾w[9@@LaI%Sz}ZɃz2i]+B(3z]xMqدsFd^vKEF\QQ.,->}Wj7w`.>v# h-WY`5ɇ3[͐\A- |[ 133,@ b^+|odr.d 1~Ir[0\sԊى/V*I:/)PK q.4nX8LPn4;8UN6 ,2WpqqDʝŰׇ@aGF4gredω-xεhjSI8~6|M6ז/ۏ&1>wTT#p+i&pp޽]uD7$ _UcUd-RïZY%9PR$uD;*b#i)|8p#R&p5~5Jߋ {n=ߓ\Q2P鐇e̾9VSPG䮭M5 yCPU=pŇt==O(h%c/^^KNpZ=Lid0bT Mz _/ b>aZaJNRԒ/E&ő?2tL;RccGܡHiڂ|힚lс=<ê Y A$)rssq-E֤()Tm5JDo;{_ս/HX*Pgְ\[U`-RP=S419nUwkA#hѽဩMqjĝNN oR Ƕ U ,s_aao+$ZNNK/ӻh҄O)Fd4M{Xy:S)E}=vB7_n+4@hS@SQ{PWV(;Q=5}p}5`Fz1VKm f6uf/Psi~cqmMR pWz%mrEޏ{Sad YO v?pyRǤ<3 'ׂK."R}=0̺OvCo8@TPպW&ڏz#)ݺQ)%/K16[̼>Ê7A)cceǀ&N(D3)O f^+`BZB.I'К,z~\659(V8o9@JI<"QQ۠Lz XG/&l, zN5Zgb>n96rlT"X,G~v=nH\D~Ba88 H( #\>:wx{@X`9?U K}C̶NԄo&)jF [tj_[ƅ[ MnBn\zpHz KL->?d۱W\=C-:[o~- vw ڪg "䑀2|k;H n.`/b>cSNbNKX0J+ڑ}8]@y >TGRƹ7pKLתZ`]g7H8R6a8ó9Û *aYЃMd@ҍ bgjΚUr'.qt5=<[4ZS#?bbJn^?͉ gHL8 /ic&4ΛyLs?14|yS]H$TKә/ E=In+(^R8bz')gPU~3rTXUB=^z*h*B}(*1]bGT6(E[{nERB0陹 -% $^S<Ɲ R&c3vg悛@?^)[q9l+1XFGgs{x7^^&cd΅ða.C5JߧnmJH&$ }ruyf ӛ^[lj ]ݞ)sG߶N3xb8n\=L0c)_M Pb##v]Nl*ļRop݈#ό,苮m0M@(i\Okx3n<^Wvce% 41KP]L\P}f)aiF/U$( E{8ָul )zu0ğ>t.~嬡_X؜jfI۶(]sriJ<X+sAj†bĜאH8_-Kni6b4'D1:Ȫk1=PgJ(ʣO걮wԯkg0:Ϸ ' 8YPϪF[SP*>-Z( S*A$c&Yp ?ڨ-22XTءASM\cV""-ǒݦE(AͼWK5FnPp܄SlPfBT]/!QerHr_4 |zIY=?KPQv6W ʖ5"?cs yԂޒ3~8N447X38qGЍ_E2Wu|7-|a]aTO>Z%U0ho(.]G+EKVt^nI8;"0 <8ua'* w /ٚa\W 5O l2pxxIdߡ}]vGLHげ9:J?ו\G[xrckK$]V%D(UN/`ULK@Vl3mu8Y4#|p%p>%I*.Vb^~@/ȅZ"y8c(? 4lcSY 2myJ)םhN9c醀h1qhɛ{7QRCա>e3Aa]57u- <أ`]HY6]+Fֻ5yP>AC+т}lr}zH?ZѨEy+\X4 CaO84®wf`(nU8%g*M۞` i!`cpTB{ D-` Ol_JN^yQEh]$(\!E@0p6HsVMO>!6}!JEiĭag=Ty$U8ɒ=˰2BG;c݃~COڸ";t6c烇%{q=~vƨn?V^rN:LTsD,@Pٽte1nqFedPWr=> t|ކƏ$X_>hmj5nQ3qmeH"N;vGwηx|MVkAck I.߭Nw)遤6[x6@$b$T:!]4J{DГs ߲ ǃZ=$_E#<rw%'~\QXc+a r^틏>dCG-pA,o}LZ-;k9c 44N<>o~[v۰xo ߔ; '*U'RKvd*mRԧl%d]@,k{cph'za.6J;q2MHG;Q9?m7)NPʊ|X_s 9'ܺ!1sQ_u Gh*kODqyAŠCaaJ`]SIƁ_qKNqkSh4AD\",ԏ<'+æI,kdoHr xl[7lƼОp9hd1<9_7 Y** /uldz<{ZBuSEnݘ!bj~DAg«Ny}+XW0D'B/[sWv)n? pE{a9U8qtGx]uJ@ƹ3'` W ?{yݞepPA!R1{3PQ]Q˽"HZ BB>fJM p#~_ws`hXQ>րpPJ:jС;_ C]; e+B&8mZ{A G̸ .MQs&zNdh͑I ԢCڤC؄ hM: aؒiGS0̬)n EK.*?ݜ4,*{t!mە';B<jIfNIf}Op~RȞ-&xt8vmv֢SVm9I|k/cGxqO+.RŌHO^2ԗ܃D\89g'J< %Ñ~뀕֕W;И;s[/XY|,N\cE<sSOk1V9v,c# %yi8/ 0P0L섳T-YZ70q*,k ʞċZȝB) Es$Ov{==WV Ff5IP+b$5WQeU//mB\o4XFUe cdI҄ +iW?&]yK$XTX^$ſ^3 *W ?`n}8 >8wV\4IBy\[Zz`}Nt^oj9?⋋ WcᰭSiE$x;߃gDbi '*K :}$ ?6r孎9n#y~QM^X‚K,0]Liwxa\C ; wc*wT"hP2lP}4ha8mX` Ck&Doi̅%ݿG;^8z^hB֖{G[ӂ]INڮqmgZT:MLJ/ztNg-KBN[NtZK8VQ| Z~nEINB'v/{?4[d9^p.O;RB4<"poO117nFx,r΍ Uc779٢:A,9_҃^S^  +;-vƟ ү]d. ,$D nҴ<'R ƪ& 7P9cm[*>~1tr ҳvRbde 1O Pd466Wf9Ka/A $T{eza1>3^CWy&,"!]zK?xLl¾&p+g.}ObP٣s=Ac u+.f)qGH?&2AtS K; &m)L6#nk_IŽd*Tapv.2tgB==H>Tj<'t`ā]OwHi܅L-8e}7H^$&IwڧT KçG姟]P+V qUTaO|ȳeHXPM#ESM?{3)(!qd_"A dv7\Ϫݭ0@ TE-MɖIF: ӴcI q:&m_DrgL2|lz(N6Pn6[ZFC$kͤ$=mX/*\kSE d2'_Y6fJ3P@jSKM9 knRw{@Ȓ˞#n8T(g>Pft2(Jy͔^4HjWCoX͔N Ә!2P|WehUhpXSncbL$%ZGEpޖ&q&9[GN -]&{&%Q@CR> /)Mc2Ǥq],mZ⧫jHm 7Ew\$ϰ5Aۇ3{/k%P.$=?*WHw$˞& W; M_1тT6u:O[ls\WlʞOImG2$Ren-^$v42j҆5qHAOC BЭǕomiө EvocG}+ z fz]& `0Čl:ة9u%OYȓKACc[]7^g\R8ð'Yyx m,|0+~Byvíbh0ˊqh.u*" =X_..&!(  kqsq H xDṟDSPP|\G d% ^@ òg}Pw3䅥*L,EN1TWRrVj α'G6WNcOB)aws_fdA&\fQ" cSwdHmaU}#):|&P5/1{?рSͻ}; п-EBVr'!IM+tNߟ>LDLOePr_YCJM5s| veS!=kB,57' FTwChwUY\_CG҃{`5O"m,34j %ڬ,0|WKf\@?_A(sh(:Q+ovq:mgfh)J~UCO/Dr#.nT]3p9auSpƀVkf WYVnH`) 1,PŠ2 WiH$ Rd 쓱SB #͆ҬxrR:V#hR@^tB<_ѫx# cJO$7U T$WAHmslro$4vagӿ&&QN0 q?=Gw 'BtT$W̩I0@Ɓ|}M>$kȒ-gÎ*IACUB|Z=)dtQ]Hd9&xU w'oZ\QeL{ư++{WG"j&|53U=ht_\¸&'f'x~5FtDL|!5)![n"V NDZs2a\: Hj$*YI RLb=)sY4k l}%YK'Е>H@\ Z?Ȓ &$O &؉ I%woI?(ZۍB.9r1"?$َt;ulC3C-S K8]fm:+c"ۑ8=\(P}[{AM>ogjLAa-Q̬#k2&d]{#_=Z.8"IF2ei' ̀,님z X_S$kF1<)6wBrb(7?e?Ih5g MdrgO9|ezZ{_S$YԗV*_TwXh~oebjSÅb*xgQ:J2@2uu H}c|蓡;wk{U XX'}ӚK!w.LW6r4Mw^j2&5s/+)Gf@~>` UB?;:b6Hl w"މʗH%#<~ڈ ' Gn .c*Z/r_ 仇[`2k$gOВ|T۾^3Ԭ`\HGPz ԓ0FS

@+oϒSOw8C;%i?ǚ8 J/W3jm =9iHY0UHE®bґ{'l=Vρ:3}(@lEGS:z0 ?aӳPAli-ƈ?lSSW4/)8@m6l (ShR)N)6[)yY@䎛Y93LQ0l&9JJ/xῺ_wc]u@|;dTLX83ssmHB._ڹs/`]kh ξګU Qlk|ʗ ZvU0-f]ѸyƒKKδ! #Kcw-M4 @\RXlC ̴.˘?dw,(JJMwHQ g4?,O+y_SZW*z$(50[Diߤ1%3a$Zd;rIg>1IK]l^\g6 -Ԏll.ˍp)urpfۮD:G ˑp_k0ޔlk27冾ƄYn݆+&z3&K0|dG}3U~&gX;fiso` /FϟoA"A~3VjZ˞n1t>JGRUZZJ2) EV]ag'#?z$5`nN?c]jTU@l&?nU tUjq_xLG3e]şG IClH#~vOBc9]ΨEp|~)[&!<Ƽ4dX(v7SS݈&Jkls$6NtB]L}Ȅ$4>0 5% ?H+>-͝,ޏa0ZN!GTbH*K1zmw𙘠JoR%i/S)x@~Ax@n;c1ݠ @Eט 3h\FR{.׸ܻ; S _`B0JԺ1b֫>BP YP?㕁ft畚FGW2< T$Ju2r&YC<}+A%6SA˧!21=c|0&F7="dUkV m^{:±U0z!mG^9$ܝ5cs%5%lJ}pHpTs"GHQr ~":R8GMEc!d7 JzSq0F)yCPS*kk@FGG`gqU:<|:]dEo `#[vcZ5D<;U0o| *E*/!+L=m rUu=ybb?h F ,ϓj '`x1nIwCG*iдn iJzG.@ck3+2aP2}z[F`SV)jE[Sa(  ,A%pVƪOYL8bt.q"!0x| qhkgrmޮAjh6[ Fp0^esPɰ\= q3n:v.*W,& Bʊ>%FiU=ij8Ѫ6\٣$qYe$͎X֨O@VEby/]*hm `[ 6Gaգ`,ELQ"E\2 0(o|@np_" AG}#%IEX :j NOy;CW6!h: 6 J;'Picn@ANnV1T )&u)X[}_IM 48FQfT` efS!tB'po}~DT'B] j ش0F{60΄EZ@/%.QN,ZvQVHܐns|\$G`+4'$dV2ZA Na 6 !j6C4>ET+RN$zZ67YkNUɍ0"j3ʈ:Ƀ3 n:|wZ ]y*}o&c W$[T٧-P}JCp4~{ "Hx0$xt<[@O& z Hj92H}Q3a뼾8j`ZST7tꕤ|V}7@jfa ^gxq<ś'!'f tkoҡjr 0vrO༕Dd`0u[=m)HSL9nAc{2uk_WDѕv t]Dd28wK6t4tJyobA.*ƕ ʊYãei);#b:_茑m g{+.N+"XGohNי0231 Psly~ AZ1GGpr-BEs@w88lCBe4V! &[JȤI~|P`qq٣7'F/^FftMxdSwYFU lwTr('K&IO!f[ZJ.O{ב]T*5X1@Dqu %ٓު{'TI;F*kZ-G KrP1ȆƱ埥teceS>ޤqկ]ȓ%`·>v-6c`O_8Qzœ9ϔǓ EZc,r;MZO iz0?J,kĭ@.eH?=hA%6o ;Zv}9Y=Yoʭ ~@:r"]E)()gּ+ܣG􊄴 4w*i` 5;S7 5_\ǡ9fxCD3<ȩT,O*(D2#I[jjZۘ)P!E?[+]Uҙ-)h5qv,H51 F,;a\F;6 }%G1kB:$*Kn:cZVIE9EΑ* I &my\@oNHl"LF5fkة 6 z#>}Z*.\dtוaxOv/}yB{ҺXՁaeuQ߷o~2œ@5 r睲M>*v8蔸,r^&7ǐz@$i<(oȕ]U^ڀCL\*gLJAIdHZp17ט9Qn~pH~l;VM8!nR b×f'k`AkegC&jRxxϙQW}#V )0Қe+]fFAal >u LΥHOYSm"m0iT)irƹ}0ծ ˮ<]|9 q)`/\wr{I.v&"vd N6 K?`W>s-4=s" ]jS $&!̡ߞD=;-[B)~ ̄p6ᔛ+PҞ퓴\KҶԩak6މTH``h1Pr:s=@J.$}-%_a<Uj+QbAvXfϱ{{Saڛ}{G=_I n+c J'R$T0[4 ON =%pjuhʽca!L  ԈU;5m!uV*jZ/lKt$?ҝcźBY{]7}60YҴGF,j"s3W-ɱn+P$VXCk^ pXmb`.&W(}g#'sA ӗKQT7Rx1"Ի$a{d(00 ?6<.!nϹ;=Z>K:1׹+©c2 PW(l5j$I5uLy^QR!J =vuxb[pu]8P r9ue&Wl?Hw#Zuk.3?bŔ2]o,n_,Vj2C/bik10CvtՔ:X<CFGDͲ#.,R )!H* R8.L"O5s{I(2 M֙WG2ONalLr+d];FK97X|j&+whipWl tKh(d͎0SLtZ J[׋cȚ%-ge3w.+lptHMT -=i.Z7FN)R`ϱn14+ 鵗VrбCq 97D%O]:]g={ Mز~8/ΰ+9rG)Dv m ?Ay>f iñQjx( ,5^T:d݈Gl0gVyMSq:M8#`LRͳ75`w-Z.HzH+(.MDFL[ ȽhcWbk-bOg.).^Y sa*/٫7HlO,&Dc0g&2}xH5AРl)PS$hxsIy B)aA2o.Թ֜Ӭis+b_a>#f#J: GIu> |8N 6ؓ/pɏ 9p-Q8{E7%o!ΫsHֲ3{h^a-sR 9B,q]`$ ] 36 @,/%B_RgbIC!Dg"4m1/ʍ> #-1ذQ[EexBur:hx|/azˈԮ߆~)M謳~bD}?R NbLjRuPn.+Cf]Eb~ef9򹨦loK,xǿ(@Lߪɀ?e蘹X>A6|ޙZiF-ήB?!zy? @ u45r25eNc}ieȊ'XdIѴNmyVjo(IK`xK /juEԈWTO8Ss-A M<+O9ϝV&ܴǰ/R tN*'K0ǐ2InmdG,_Ne[[|&#)&ƸIߛA2 ky4Ǯ^qA^@LY ֵǙfzW-?I< (B<ю =߰$FxTj)-a?&7RªN#h3땘ClWR'8^wf–UF%ri/G%ɟMy,Pۧb 0ɓ\/D泿i2 І٩+cpC٪Qh"BbNvMΎV'55>KgtiOx9hF 75;C;4 [q &rcLF孶lvj SR$dU4Wܴy23L#èM$g\њԒgilZŀ!5X~ć `)BA( zt.-:'8~C}ЛH,v`Ki ^xwJ'V#@~jcXD <9@$u?1f( qWu$/Vbڹ3-F,MmۂBq[ }V#r<8ĩ@#ROmݢ5LCT|;`E>w0%H7kO)-q#ߗPmB{-eD&Ux;^ FL]Eli77Йm0It-g\HB 7yf[Q; #fT)»d+ VZ B(\O7WkeRxT l6LY1۫Bȗ/[W\ ]ŽgeI;VFܱUওivLJ5&Py -2A89hy"w">Vbcj@ێn}VQ;|릚B(5;$5;j ͷ$'B~ t|֏Pu_Z1N~'0 C C̑/}:Qg߫%%|-hċn&{et^JLyJ\ob7![x"W+e(7iui;ء:' XG&9cٍX`ʄD59Ԉ$U9FۚCZM{8/*W)[n6-"SDㅼ곢ZaFl~a=0^C|{b,8a\6;fqxvu `I<^Uom;tJq?H-ؠߛa [3'!lw晠Fdž?Z6jvU6τ@1g#iݓ/kIEC7˘*:a_{tQ @HQvAɰ+2-pl_O9a/!3[kQmn(.)-m}03eU}XOeғL??J;ÆAsxtz o(ϙ :ﬥKύ2kd}I| l[2fj&]} "-k2"wFPY|< N}mKOLjmyQ1*f\l&^P&*S/779܍0RE}9m yj.!0a.ăJG9)BB PG3y8 {e!ݳ1-|&c~)QɓSCec USj\Hٚˆk_PFۙ'QkAs&?""u[x N}W7pl=U 8Ba l$JQjgX߳Y,)*n(^j6g&G]ʜ"V #&yDԭ(NYxú UTBW'"6(C3T^ 5-z@ڦZ0^g6Jg6}NcRQfK # ueIۍb3|MqONVh/X bf.i{ǚ1}_U2:0&ƒ{O'1ѼuGxmG-KqA;z0/jdz fqI5:RdoƮe: Hvp79$m##;Jzb]x^A=5=\GhYyNröh!ba-".[b ?ρG<_E^^ZK]~γK2W1Nwۚ@!iv "{(9:H*~uI$yq&)tiPYHhvjnr}X@̈́}B}a 4ptS\e)hevZedwɿw+iC4\C #oKǤQ/h<-Ifx}y 9s MQѲ>t4z,d}QVQZ4ީl[npE; G\] TFq@5LV_&2mhäk kן9]J¼FLS@`g{ch1X9ִd2ckgIm[Ky bE;XcG֤Nb2Ahk5X j͢J+ؒhkpT#9 ވCGq[yEgÀqN(W GDR2=*W\ &q6춻9R2R *u_bKgd.PQ2]!>*Ovͬ rj*?,$\tX+@$>ɺ#i<ĮN) BRwpFvdݼSzxz#7|` aYϚ6~܀$iSͻwDj#ebS>:tC@uw/iiU@wwMuxDy9[ic]] M rt|p!,%iOmXbϮ%zn[N IFpF\djQ6IG_%$j~,Q <,3T+FP^`cA^k$4~7K"o BϠ4\Nm!W<$JiHT+WdQ41g2lNae;?btDv ' ;F Z)k5"qM7vN+l(E"d?Y]*)FMpqۛ[Wh)e aCk=n0v ~p!W|@v+N*_$bCPYMLԲ'ǃkm0]S)tRY &(Ξ}a!gv\cmݿ.(%؁R/ 7:b^-c8VBf.Ts6P[n &t`{ 3hHV"6dRگW Flט|a(όճaJob~L?ڷ1jD*n^z]6drvb#/ڐc 0hަ9UvrЯU\1%{].+KZCS(uQm7Y- Ű@ɹڠUIf15\p԰(Iˢrvz}\*@Ў}77GJ^:OjC~f Sd_4ܯkOM] i$lGAp¾P}^F]qZX{%>n ޻F! J kxx >huC hQMb Du:հJ|"q;qfnzPLEC|V2y &zkcp ź'ӗ=o콅e7%c7|> {}[xx֮> jF@\cNN+)ة Y:8po43F#Zj }H(]YF|HywL@L}5vt݉ auj~% "VNleNA.^[5X)7`f̍Фx!.ǂ<\_VYyM>IÝ \zfjtە3WyQ]wLv6L۷5+(Kh˥aJ#PC*kN_# o쑣*46J)oSR^ -7UP<ErJG!9h(y$3RS/g/$ ү5}T>&S[ ̬ Q.ړV,IKk :O{HO!e Z |zrˌ]mפ hfzUY +y6w*Vg` ^ud}I?]jˣi-]Gwl*g%lqCFy; b[#|i+T|/n)*Q?Z1a9.$@0lZUJ(+lbpsio^jVkJCŁm;xXCmeǘp aIPda^?e|neҀ7-K&l@:;w H/-Hr尠5HH`>Յo٢U|FPpչEs8`kTN)uэE:]nu2>kO}*RRAO6!#1yH.ñ3)Ľ;y)&oaP\ ވ?OfʽSLSU s c4ǻ)ٰ#p%QB]N#7SH%n wu{&|]Td .oFOgL#Һ~6~Ñ(PiV\.zu~~Ph[#Bw7HzqgIt/:'w W4ٶLMΜ&,jE[˹cǡWӄrN.Ujr REЁ+dD#spM,36\.m!W^2) 1 hx{\.v T| ٻK \@FOk7wЗau9C: 6#Ǹ['v?BW 9mhnnotBP,ߣ x֜T7D0;]2A/FG 4S'Z<^JOy|zԾ֡K`p~OW,SJ|xxqmmWpv+Rz'R?LH-V91`bjp6.g`qf0DU6 DOh~=!ս[[WJi4iji|J1 $]ڒ$̦;-9TSejFDFQф\:| }p}lUwVWK@m3ưsE̵ФKL(.v͑ E_(77;ՠ=/ԢؿS L1߰~R:xd뵸YS#Oއoh+jvhHx8" ky#iJ2$cR NvtAK} 3up}8dلQ-(͵=֦TD+`l1Pζ'f,o)&uuы3mjl( 1br!X^$]mHg? c*dן~" ȺO[`wt:%\2}}W ەէq3$v;Ezai@4NFz-ro>ha[,9D-4Q\^;ǞAS8$u(`1Ͳ+mDĩSRѵU夸^]N-Vbl7Avs;ȀJu/NmEg3%gesNl‹&4^l-'Ȏ%f ˷D9Yp2 )-݃0rɴ8#P, W^ AU%O8CzUPl(9\;=' !#^Eza, Tz ګԜy0)M E13,2fV%K,E FK:#RgAX=#zqEuÞЄ0;6Um֬}Z$QL.¼H=9kRbOywOnd 1s$.^k*0d'{?S- rj"r]gCPo˫٣松n1MHWuFT5hVv[S$4QT]C/=W\Ix=Кx%T$*f5EE_ WXU/N@MՁ#:meN9lZ_-z1}r6mgV *A/0&klp ?"*lP]&P:9ɶf3bERpPU7, nq^V(MEF m=8*~Eg:Yiz枩՞ΐڛBFEV׭-FI2OY{Zti#hkH(n 5!Gٝvao|hˡ<`YB 8T`S lB D0ʈP]̱!Qp{4eH9ć1 k%YBﲔȢti:DRW}R؄`ꚳk/x̸Yyb.EIۆ5T( y}#OS6uj3ĂS4v*gRl̚G .{GΪj6s5ј d-`x; 8k~rgdX>+Du$3gp9V` %Ob6WfU5Ǝ RJshNj`ދXG}%]E%;dgNPeֻ%Udh?.IKac] Zԡ1h+!low' aDb '[tCvӆϵ-xs BdOLzIذNTNj+xwD~ 2N `m$D&kha/̵R$%Zδ WZ z d=C cfLy~*1'o_S}c4 "1 IRFJFC,C{(wAK"xjߥmVpxCPԮ؛V#[5غ*D1;62 G_OzX_q=Kih  1C+֘Ou$XL$^n̐5ŲT)+/pͶe&s5F !-ֆF6~ŊiasNG{6zf+}D)S;Fx g8 u0k*psqI KdӠ_QT~8<o>С62RoXP1Jڗ32x/0ߘ*ϱ"2mOh!!1P‚W+Y$OќIH|D@ e0^՚_`5(i6yB`7L^2Ro7 f2nSj/@ l"q9Q*V&̗|AY<W_־X= j~YXULFwZxSDp2e3`&J+&wa0 I PF\n#1y&4IsiER &pSԓU*P"8 myNY}ơsFm@rOK<蚅E%9| j$>aVھޫ`"G\I/d%&jbZOމ}GI%t_RoHŹ h@,~|ˮfy?oV-R{AhԮE1JhpwiJfe<"X;b=(-z҅7HSLOLFt~m`,sƷ0\  #zj-ֶaݡ_F#@hjDz2F%fm|+.a)'zj*Hs}h[*䰂00i8JjH w$ЌK6}7-- azg_9/"z A8S㱖nźC)k&GpLAj}:2چ[ `OkL*"72=r<ͅzΣfFy3\(~Łmf5EEkI-Tc A ;--#JͣAKG @Ӕ(myV*g~rA 7ZI̅Ů.F|VѲA w1f!:{ s´GeQB^νXY\}g, |pj OВ`-ѰwS*[]T ǖ?"m j}Ml@vfM-X-op4Te#]?Կ knLLCCoٝLQ_.WɒZvq'heqOx6P}<t9ǭBp7U7g=#WO\{1r|M%I ~#K>Lf۠T/, |\dL9RI $y Q524 s[3`bj3A Q755 ]ǡ믯{u,C*>Ȭi=zMo [T/IYm$UZi{O]mޛ8F%BveJ }:_BMǂ.1"u.g f^/5@e8.׵m: I9Žɾ?Hı7w z&3'uvd4^pA~+ _V*4E:q _2_?o ٚ ׇ r.Lc[;klϧENҚKMw^DZ$Q0^Z4uOLXO8I>L }[;? SYh;K7z񤺷*%nw?ϙgny{SfP87h'x 5ow~w/R0rl+<,,%v[}LWuOViG^t*MB&g3X&v8j-=tx ')գXάP^N/a%fι0,3Ҩn{ 6lB 8E׎:+z=[V]"K i]. PeX䯛)ZE(I9!HK}+"mX-T ;4Fc9nn-Z]gOY% #f4` *3+@O;nYQ^ gayeS?i>AWcvrvlMFٟz`.9|nvg۹Ñ;1jTv;C;?=yr&+_02rʂYّaяP$B*q8"O^((KL]ks c24!N;7Mq2I?_X6A)fQ c=088]p'gSlC:k$X7KK]R\\ґ:/yQB?%}{k&XronWkQ\M-$y3 7/l,R݊I+}#jx,ř0#Z9sM?X#4l<_ڸx7E}tXâjf1Gl;z^FL"I~6;X&=ӾRh=3⦖)@Sg 3Σ"w}ȧ@COJq7717 0wbvɚv>%)e6 xR|p?VY 'Hh0jr.mzu3-j B&,߰eBNYomp3F=KX87An`1+m4ZBP`3ɨKw̆_HPƱ c1AZ YjT5 b5<B7qRuVkBrJD30! *xìp4Nş@<2#rJ ]84Y]@Ee꓉B#A?|Z#xG*dHPBV%)APZډv9ae:Sq%LEʹ+FXyhˑ)3x &ӔfFUF*qYw=#r|vwpaM%=*Lk ][A.g6 _C(>=K4-H82-bQ?S~<)$d>,N>E z֝Z0? Gb:ׯYVZ<퉻EKN}TR O撑`XGIFM(7p$.(Y5UKC4: 0(BÔJ^4vMdy:o؈ʦ{Í[9%fbg2O@!{GRJ,aΉ Ī#Ic>1HQwdD.HӉm_"!q)(4LϮʚ'^g`zv+@Af7;pCiZr%AF,0nغ4&o[~0y.ɐ D 1JݤFë[*5)7GNe EH&2֓=$j^OCbUMFGjX J @*:rQGb{+ԼWoڨ> RAnmNxt#S/dQd)?R&ɯ yUN녜"?qZV&=^c|-t-Se1݅=-ټZ&s7d钄س!6_V%X8Ʉ›]}lrtET(CJ̃wg9%Y< uPR34>[oQr( $;wqS ;>h ADAT 1Q6M?5Ӫ[M^:oV)¬`[l^FB |!1irUW:]c~؟#W)3j925p9<*|t+N4`Y4z~+T}k^*Af-¬؀f14(:GlUf  v_ V; IREJ@ԏhAoX?;Q@ZѦ GF)KV P׸`_m aa7syy%зL&/bѷ/bD.PPZtl)F$rfX 7zپΫByRCJbx Q"n2ͣT`Ezffޚx*?D~9u}]J*ΥCI%'5ŽL\]a(X*$|^F">KhĦӢaf=x8DH#h޽ln~OJϺ̃lKvbZkF->U ÓsGހU.;aǭp^b ,fud8ϐF`vrg(ZMI^f%raːG.cA-JM\NP$&>g+rT|" U= %ڂad%{J2 YI6t+sk0M9JY~\dPB^|Z$N V7šg\M0G蟰OY-<6LWC5ճJnG=1 PtK?]Q'Sɏ.suQMKsGɄ߸‘'/1 dreVE}E%1o33'm}x,[ &Vf!+=iֽ ]4F|coh6ݶJ=%r~K&ohWU[b$^˶#{V 缼im6u'ݍrP!@Cg}s*)N\˼"oWl0G;\]뼫;J61i>"&qoyX:ї]U t?=Liذ֮z*I+*Qx5Ve'ocw"zRX{vEZS-wo|>՞֖PoRr@/3@UQԼr.36kxaq o /#ބ~jչq}V pyAlYs&z@dxBTM@Lv@×@ޢjTU MfŌ_ wÙT6ᗤ>?Ag!!2l9.ZUu%p+۬k]lt2()6xU~z-Q)`oMg N5Cȼ0.]H:5_Q&h{F9a}y/QNJD@R~*gwg2(6P ٚ{aӽ!ܲFORَS[ 3%_`=VՍV}mA8>X6 (]Y5 N?= 6_ƀؿ"#!d:2ÇLEАN<`2[oWclA3N[/Hk_G$.Ukng`15l6}8.!m]gZ5 yЦ5mP<}Y|LjjR_+u1&m*߉ 4HuC# YWjo@7NI}/Cp@i"yA[QIa5Rri'QwFi,{0!Zo~v)_R=jShUP~ca̺I~-3:/^79X\Ԉ2fH,>ߠ1\E.`؎)K9  8!@hwrۃsĠ#7:B+$mRƗň+DCjυEʸ$Nc}T)ZLMXA9jlez|0(V* Oh "}46f*Hh0)G`l"³h+ONo?2䉠TT^? t.k-t$$1vb%WS}4mQh>ZxR@BJ/D/쭝OAޖZ7RjK 5T2%;dwȍzݘ -~D;+ Bl,n%t)y;ݩܩv4긕t0v֬ůkyx7Ꟛ/IЧzD؊bKl, %\)ae3%Zۥ&\QD] b5E<{l?ܢ0ə cwCqDN  cvHf!~[:fi&fv*saN| fkj&e?7p5.0 QWaqjx5l=x,jtP&=óXw3ܱ3EK)+ٛbEk D~)[ĥJ+?fhX)%jgC0+g-FU&J7#Pf#P* VO/3%ۙ{yDy]f!T pI$ݿbAÚt[ؾK tTt h`7 zKgxodd]%F$;uAOH.3FD K7 4kG}y3UbR;|k tSfPXדa&U_ݡp""4g!bCb?7 M`(|P^DU_8uϿ>e!{3}a?جuOmhNxgQF9p\}r\3:>]ʈ8k Ϣd!džG4XU G\['_(`.0шZl#i lop/lL乫 B>fxwaHܲ:aTmϡ&P1gRԠ"l8h,BNuboOʶz%||'gU~3QgPI>L!{-i=E(3/tj7;d5xwy3Lғ䙂y!sTiå` o`n; \gT]x[6Rvٿ'Œq0 (ۑ m͉sH\()ܿ6Xd[Ԥ]t :(Tj4ʆԎrQ(*P"zU>Ff&fT_" )g)}YY=ֆ;|v1(V3zG-J_d:fig+j1HѴa;tP{̈gDԿkkf-Z 7cdaP@clOjd"dp]Z\:m=.!>Tݲ2&3}q~P'a[j9ayDޢe6U$a^s ≣}.~줢怌ŭ٠"~Cj9 X29jTCfpDpq.*STE^VXy˂AV4Ԭ7;tXi.@n32¶X97p;aX^_GpKAp^:BaU,՟Zpx+b$){\}U6tmCҋԲcEb;Mĭ(N0 ^JU"`u|U>9YGZܢG': ?UVu佲ӤPNz)K/^woTWd[ :TZfq4!O=@t[*YLO;2"`K+kޓԧ>0S kv VeV;?F"7K@@)cPAχj'JE%017BVBe 4H\ _$Z 3:@IYdo ܱz l3Pc%ʡ{}ոrß*Ijos>ƒRy_ůG5ii  wbQǷ %Be釟hFR- / 4]X`1:o T Uܑ06Ja}yUS*nssx]~ mbtr_ V;󦼃ϑ_1wn$Q^6c~"M9TG@ 6 $2r }S$2?#7lb(lnb"ϫb<% ౲[ǐu;voϧc<~K`_{%- H-K+o91+鳵Ddl f^ %EHN,is~zm rJzo'ɝ,PS wc k|z4m¶O_K*0:wـ^މ؄>:R J+toI$uҼld (&'Vۛ5t6TXѣK V:](3:oH`rtHQ%fRYI@2[mvNȧ2„2$uamooKw |3[ rpެԺHÚk>C!ѢWOC/jp. UK9.Z h[nlXuZ& \JYwF sLC0Dmځ1e1єX!6~}FXC"˶疻)YhH r~Qtv;RԔy?8˿m)ᇲHO34Fr`|M z—-g= ϔIhF:cfgzՆ s9SƩ M6ŏ_ #H Xc:/N%"b&XZ+|h>g`Lޙ2d7ϥIG0ۦi!pfgGet m5(dX{:'=uģR 6/y gr)u̓+ꦱ-SWT? / R( Q5>N(lT\V=Rz>\5}-8e)ɤ͌i)l 5ΒK"Mcym~E# i7)بOV*]<àZϷ4$;@% seب"BG}3 q2UHebN 3}\K)AjV}hӠO}Im:(?Fg3l?m\jt8zNXk7aׁ̓FROM.37\ّIz+Yx b6CR9}`o1RX**xb#* uOpXz<xޞ0H$5. 0sٯ;qa>Hﻰ_[O|tT$S$< 7 !΀)?|T\1lB(9~;"ēHe񸖋0!]}XozRw 2/E!\|i6.\l0{8$= H˭ /6g\Wq"FHL8IN/>@mz:FwЩ.ae[-ǀ8 %?G! >,g'ӣgJsoKKNjdk#'uV7t7ɽ0OiڿW0^1KIVF^^.f6@vi r&L'uN帰.[l@H^ -32ËoҶ|W:?ϓ(ّax4cD~R1ӾDf}:cr{480Z ncVQf|uHnD)}{C-,cW&p;N+k2‰k+}9OcKbF ndUĐ1@zuѺ2hՐ,uۄ'D+ЮjxQ#}NHjz5^['b$V "xN? .Q/tp%h?>/lUK; 3+|bȿUP)ZSc*r')qu匎=^lQ0ECW2XhtG ?`n.vA>YYU֥P4Sn1-z&\_K+{IwFGx&Wq ۘ6~^roX\QuE/(Z4NCkˌFjx۩$1ΐGi[FQ-vĞzse*ٕi.#71OQƑPmk9mmjU#DZF}#?Bq]r'a2zoRS~QF/sՓ*+ ?rZN` >v dؕu,V&]@%qd㜀C=W w$Pr Ն;Iͼ=JHP:! I2ر?&ϳ G-dƘ*ˆ*$/giU>?{9i=J G2nZܭT:SZlX:JP =4{!as8TYY7e^YHM}:'jl XÛ/jG3[ L۴as}mmhM =dS˨W1_PBOԆD$h^џ%R;ΞpUR&#Ixh`ss ׯ :0PS?jyKxROo.H+[}JY*Ӂ$Xz"fMsg$tVKXe݅ å 4$y;/=㯭 Lm6][n1y܆"kZt Im{VY `f)vD%~j_~?1\Ο%aO%ݜ`97sЯ]6܀QgX)SѦ7ӎCpr^*]POa.{{J̲qwƚ@AhU p n=ŜŒ:_ z[J =吣t$msv[x#;C{H̍&|WJ.E{fBBrm#IBj4|rPe7N7Jf\ǘ2Qy]HwSsfD}jijhZ2q8F60ud̦u3=G@]Mesvmlon8t]>CE5!!Ij[1s` 8V=yn?r='kb#Q#gy1)Xdȸ.W rkR~<7H;ssu!d!jIک-wq̄pA;?stM}(Q$dfR qҧ> ږjdg+izOI@#W(_p7w BiYBj$"5(N񣂰.mM @8lr'ABNK̅^œOU ϦLnkE0X0嘳dnzdsIKpdnWE2R&9.NIܽ$]әRj 0UMrA?/:+[8\zLB%IA4wMu{* !{0*7ѱj# ˞jd FceɹefLF~&ޏXl+hpGYt N\5"C^MK}S>@^u뮁=fo;Q412nEdь훽"!]~6Iu7~rET%kʢ.Kjd篛69A8[: /+3j#Ww HLq1eM5h5 hC2ٕByl3g N7؎7X5k:{0ɪ괨AyR"{3r& RLqwfPabT: ̇|x}Hv)ȶ\LSd͋ȗ%L>~Hd$lyRM4$ iXyZ&#<F%,XwYֱ$Q۴>54K{m6/'P)p*IGŕh4y|/#*GXܚ &@%ƳdC۳5yhkO!3"m~+Z6<{Ɖss)y<:t\,H:wt>de=nH蒿3[',5ˈUf ~44OX<x4̓м#֩(hz `5{Hu'2h [9>2|#WLn`u%pNH_ѷeXI"֓1a)L4~,t%NX:D*c^t)d!9}iײs4 [iPZQ|ڒ=zU\ Rςy6X'~[Tr<P Z5g$YJ#I*b72*\֓T-Wo7gPC^Rl]Χ"6 ؝cQ J +}YTjAl7&nKtN~TkMT5V `PCV{n|1lT8DlG5+ -(뛖 D?RLGna6>`nԴSf:% . A &$/S JN6%3=鶑jixMA> "p2Fsy>֒E &`jAӈxk}y8l3X Ջ㮿H0=mV 7F%6=875 /PZ3YkcZJRT8B$ww9KLTZ}1  ]nB>п +a$XB)VP}Br[zrsQ N*Wk!d)[ݳ _VӖͶ:k&٦ cn8G{d!am+Be $^9~}Oݑ*j7zfHqD9>eOuN&ćL򟞎V x 'rѣ:K̉qdvK5``Me@(/Y)p#4" %ؒ葯gÀմvDgfxB"]^IqwJhsrCMgUl_W~9bQV|`L'کm=K 3ݹǑU/Z֏Eߡ*U_ls"VJbd!l 6LGeXQir-H7<)hB:6x5G!~l}`DZ~S8rKuEu5`<~aJHq&Z-ݗy[g +kijb&0b!}ftV6Vy+ơ@&kρt?YHa#3|B`Ƀ Zir,:׸);9V10RP/F:!+rNNJWUj 7'iVHD!(w 30 ~K{u[ ((/ Jer!T, bȡeS`'Q1;qLwF*Ԑ ھo7{h7SRFx-[`,# ~-{4>S70kk0 1R ǡQ##Aڥ߻a@*$g9;bb 9t~LLa*OZӠ7QH{Zސio]W} /"yK^G̜(04먷2mkcÚ^VyHW<o5L6~~H}JRЀ+- \c |_4 Pb=Kf+Nt;'g>ۛ~wU 񩦙'.\2OIAՕusԗ.LCYj1xGFm%mgbEY&PHC~ Ju>kl+A^\ְJ@'ɧ&Nix)- ;YiX3 ƅIMFme}>@D0-|*Ε @= pFQ:E`<>GbNGՑ*,RI.JLOw3"ZqNd RS%Ca;l),jPj1Nhc&˜(cdtl*NtUB iE5d*ۇ0AS,Z{CG#q[Ԯ,`>MU/(k?!)ET]?ܩa!c$DؖS46a,9W5Qᶱ%1q]&4Y~beֱ"L/#3 ZfC:qqzv"!t6rlk֨dΒF>t]S`kEu`TWZeV:R^RAHJ;\NoXԁP\64t쉝] h,$:[h~N> ^WWxc3H'Njl/ށ <+Eܗ rWYcdx76I"H+vTQ17V, `/I/uMx٨^QرPUH ot׉ݟ%k^hY'NA6$WzAhD|\q1>Oiunj*pܝas[ZK_]@"b{HQwJ2_ sRߞT#0ELT E-*)?DeN.olb8Eih!+tfz~G hbzT삤ftxbɢ$S?&L0i(\q_D-AJ.;$GVtAj x>dRfpi[`}9Z}P.;6Jg}E|ixE}tr>r^ZZߍ`*! ]^b#캃7 %al<QȕKvK:e\ўBIyZ (< $H) a'/vj__\Ϭz+iK0kQKתn|Oxdq5Nךiu|u"aҐhb4`uMӠm" S<8N*aԵ6qt3]Q<0yqX7H\(ݍ l%bI1 _Ϝ^c6^C~{ѕlb򑄷Vf`.7+׎l cFhs%nJ07y5kq'/!y&_0Gƕaу6Jmd\pyj~ ˍUӠ4XvMo$]P#'@hU)NZd5;PE1T!N~!p SM;FlWG~+!cHRSX_h`}y-ӲJ}Ӟ-j Ε#Ř$.'T1W-'@wCWS嫯K E. %d*f")>qG 6J3$=mMZ3G#'sՅڂe/ $})C5$i-1p hROzԜac"/Vo01IBo$O"QfK Kvs%ba"v4(t%8!*_ƭ,:.g^iU!@-Qѯ5iDEafo%|Dj$+&#Oih<1,l 楡;uvG|a zB7s7]~%V 7YS)j@$ܮW~|Bsz>!(%w̴}>KQ4?ꢱ5lT싃E]9zʞ7+%W2} _,|3Rw~`4vVF_1TN3NMÙKKc{<~QŸ́&B &|H%Ibϫ0)TmCފy1[M*Ȁ cn?5+:9Кjv^Ȍ6UT}8v񝟍K7m">#(,'PWR\=U1 hbj.5awa8F9 sIQxOݯЁ1ʆ髁ke#B;`I(N1_@K%I\{aG7F.505;;5#SR1MLb~Ӧ%{TrpqѶaR=Mˆef>kh|J 'G_`UgAdH=r0/-KzA104 ,2kMP"V'ݮdL7 Ag  D|-_ĜUgSN !LP~pK=k mC&X.Zq|ʒ%fGr;qy,@<9wi'#0S3WQ̈!pM × ҧRE#@ Ibp=PkW)2m*E[h?~M 5cI٭ _) _5*xc!e׀ A߯Ɣ}&ՕTrZӛ|{Hs[K>pnd&]i}2B.$ UDɐ>)ݖ%Ix h\\!/XK%Tْ0p^ph} @`i,֣i[:PUmEM=It=,\!\ ==WŀAО>+eH@#Fp+p ; f#wj]8]; %tI0hL,vv rᙘBZUJ+HWvgoڋV+' "} oQ HS;B(gX8ŦN}9$ؼ+)w "㒚]9e+k]wк<~-==ӆ+ mv,9S ]PߦonN%H؆S5SNs+jv|./0L:|c`mt@RE@7Ps2yfi D73*$+oѧ~BLa.J\1}\ĬP:ިֻ1H4\SRA^,r};-zK? :9G [ct.!F&;I~+JQO <<Z%rC]}?I qJ<>Q>Lt eVƃ蠘.X$-'G4mҩ;C4ÉD*&O(/{=HU4~ż*b$+w lLw|h`~- #>5/|Y#oȸ]~ˈ-TgfzLj "ݨO'Vn4vOyKgMк$Rk΃œt4[bC "Ԥl.q-%muQc VmO0\fp:R\r u>Cˆ Y{۵;ou%ۨ(U;Ƈ^ hyyY,]n gJtes)%(Q<\"/N9A*lЀ744sE&B+ۃ}"ㅴ-?[m=7PzR%ST^OQ&}=>rS~XZKkw^>-f!"s c4a$$PAs\d7W{.+1:rJٔ^A:Ak'Aq<~'0 һFkնk$t,*5V%T>ɓʷ6zeYGŢ01a2c / Ba<=fI-ַŬkfe P{#CAm$楽3}h&TߊaIY_^oks1GPۿމb)*ٷ6{`I{a}Γf^o~2h5E|5>֩&^Pi5PZJ9T06.fE2.l5!m ۟X./$c7BrG< Ehkh㞻C/") ΄3oQsabşVc6u^Gw)qD{#4Ҽv 5*i߆3~27 .*˞EUyp}V؋핋~nx"^MPNHcɑ8Ğ%$|Oeձ}6b];}eJı@҇#9{sv^t3 {QE!t-z g7 q^ɻQFԪoUc9ŸA)}%D> Ņf&<'Uūzr\8[wm!;kEȓo ЋΖk۪'{' y1~M \hK--8.*pٻzM~$F-;8_l tϖTM-)dkw\u.KR Mp׬,wK Ꟈ>L">DZ tAxʐ6 v~ êt9=&rMc6}bYI[s$U:|6^L) U{.!“Ыu|%dYjx]qqeH m'E02i{J@=#'dMFMBKA@$\A+q8ON_鼖 ?>ݫّ0b-E*Ea9HJ4ޱtXB2 uTzkhȹvs r /@vlw oqytID0E6P&EE[<[uࢇ3P5; 5e&ZE^'~O 銴cx /! טYRWͦDw!ݎ/Ǐ۩4 j#,(qo@c#Q30W4 9D"kds| K@:8? u/=5M_mO&7P@Jֳ2nSfvh^(,O3Pg>l4iqc dxkgc[]˅J*b.yQ?`;BET+?ߟFZfQ|QY^ 9 Š"D#DT]d`w!C.,Ah^ӓRs_XKcGQ~eFr%WɦVsVw~1A2%>>QxCT*m T+l"a<N:AF.GF_C)(Wr&Me<ܘljQ5g$-v4`\iJ0DHGpAWeH- L p'Y[FqT蝫LEX. J`d3oHu5ʽO^ q=93ؾڦ|J]ɿrM Lu׉`s2&".wیy1o l[ ցm#?U7wx1ѵ~ީros!&UˑmbUŎ%3"Bx8y%͞0u_YZEgr:~J>zBT\/~PkW/]E&jޙr%*K<_3w/)l(31]v]GKMbVXZ]f+HK7 "cY,jrWmaNDHoZw#9!^mr,&ASO Z-{xN(EE ג2f_9]bԏ?7̥tsUĕK.ȣܐ&ڻOx.l:cχi {WLp:IШG%wttM}ht22O[^824+~_ClrR *\ˉ%NDJ2G {FV\FNQפ1}B0FKSq=8z98) th4Th*q_-*6AUSg#F/8䌛T݊A{vv+!.пA EIH"q25 ."4t!*P`|SG3ZD_̃S7֊XsNjNPx?o_;Ļ 3lkşL; c[)h r(#2q)5T0#nlR Hxkp)Wԗ.>jSLkz R\ 9 v#XiC&ǁ'pa库ɣr8ݝ~ \3W~ +O7r_P8V`r= 3rnǥs3:=I+Mŏ. Cc,͡l Vm5wZd([agʍXVVX؂ʮU03k,q<,^r"\LB}harc dŌoEaE'% @;ߝ*tz >)h8g@<~F$F7JDhWAQ 켌4C*{yܧqϼRBVR"B5Ug,gIf)}V|] p+j )zf1Y!*hM@L<6ǝ#] *'Il$\oNWoRmN^ܙ+=bBoa}%Vk\)dqI*?k[LL* ~[EPm㆝mN]0lptԻ4U UYXh0kݖvFaD0IsעR{%M!ÍNNߴ ]B!Pk51[WK"v•L7 W99p ǘ~ܭ .ѧ` ?.D1k,[]p{/# `}@DKY?]m J+1Q9h)IX !E\Ujg CN;9IP +G}aD- WM<ɠ ?4D%bp]q!GB^xGvcYFusR0#47TQ B0PrP zN" ftMN#WokDҳ y$78/qgͲ,HA^szYeaeh3y\/QL+re{fa'c%Qr4Zb Sز'ȝ; jyϖ˷4'=U ܗ+~xۓqӡ,SH턛@}ocl+;g/ݏBf8LZB*+#'{ HvƂٛ+d(2G[-Qn! '˴т{!T%F n[63ceyo +@ΰ?Xi'h? ٯWr$Q $g'̶4wWsaǸo,}ּb-{%WȡIho "ׯÀ4ѻ|W! P3+=Ζ3hyB~,D#!i|>FRM|r-bRseG1rF&}=NcY?O zQfc {<ElcZS4! "IZ*PDƊ Drq* ._SSLٞx'Gg>i0 hT\t7ZC%Jbvhu~A3a솱n6/ ]aZr`1<C x#><5t[y-yAﺐww[H}Msr)vQl-}yRKLA 46JBᠲ.6rfo3,nQJz:fkq%Rޓ ~nH9a%\盏 ܬ}d)k4WSeKѭt>}fZcG4xqׄAoWzO*3b4k~Q^B=Q[Ir;y)a?0[^v}:wGBEh@g3S3zMn 5tܒufIz?);4:3 ͙")NѬgްC%.dTBx9T/_,A&o;/餗u8?aYLO)I'͢[2C4X2fxА'6\ztp0nVXkT8R@:6p6ebc!IG>B8ȣN>67%C0NN-9,%o--W}y]%B /z ̘3ҳ%˄b /u*L<+RN ztP/- ĕ0I%6%GowD<(ir _࿡8:쪤"Q9HVNw̖_ 4@ [VO.d25W?A,Ghe2x/١  [5(^埏/L%oؙ` +x$xH%R\@8BLդl im AE\;BS>#pj u}4R)k8U&`y"Z0հR%K//KFKê9Il_TP ̠bɴ$=@pi2on/aoG`LT `&i]k>BҎqT7[N\E2Cx}_ZJ.=yMwb.?5S PHi/0Caͷ|45y4VTܚ+ Ye&vy|b;:ŽYl{n0!7,EޅerAcTTgfFIurTB_&ئ\ۭa\=8qI׽$Ha`fCg9$F1KոNR*I,soTnveW8/4Cˮ]LdPsDH/CGwkX]M(zA.rcuM_Vp? 2]ghyJ8W3GD3D |iwP9eDb [~;bpCVI@i֮ WFo^m\J4mkҚ+8,UN:ھZ΁mua騒 a3bF,=-0Rx<x#@7AM1$kIǂpN PtHe<{ea /HHrs&|FñN[9'HIFf஘)!}+ lryhO5x}`2z!5J 6?.Yts0__Ub{hR giq8bz._:DF 6iz$4 ܓ54Ӝ */WKb;=7 IZ[j疢Ҋryo@X y]g頻¥WV}rDA|;39:LhڢI2%ٿZoSq(u[wx|xQE &mYS{O|d{H^5iK 6-F.c50flȌS8Ir/(0@*_N۾Nh# >e)_ (K=}]cMdm27%& [z>ɢn4}[SKXTB \$yG6GS!k$b*ɪ(W_1 4Y۔Zٹp ~YZ[k'w4\? 45pfšW&-b,fDY V0;,vu|5dW(V~aȾ*4:oR9y~e]^.21ekЕ &O/|'t p%Cxr y@E?bh;<"pg^,bϵKɔy(i`p$UȬ$ӔX1.;TӐJwfN}4`ĽUq9&4/4cz1hRv/j= kpƨs+RMEHK&FN0]P]Qv ihZsn"؂MpS_̴da Y'jE9owjtʥK1xL8Fڗ=3ܹMHe3 3B^MwƒLRzC ftrH^ E9B~ʈVi;]:L|c buy+WØJA z!ZXs]4h.PûY[ ̎{ ݎJ/GB{eر?;D.m9H-0be(`? A[_%|1Bm-r5VTd%szx͂ݩaSti,V/2]!fuM@FƆhܞ>ӷ5UOrsf^ S>&RzK~Էͳ0g=Jc_JB*UQjþCl#fߑ$JbuJI/2[puKζ 6&9.NK\TQ ?`x6>"lge\H<5C۔D´kGvP?ڴv=j}zwrNCu؜ϙ IMD9_s+(o@T"Djg>ғ2}֒ZLbp00>GNOd% ;\pA@G6ˎER]- , q/6rgWQHeWwY5mϔ͂F:7qvW-@Dh@X* R[%+"{tx`^T>ϹW_Of~s޶vGŒ,_s1810 e eVⱻ8'ҋj5YnrM%A|b;!+QC*! 7(J9Ğ9\<4 `O. Jr3BȇŞ T+eWYG6b , P"8ܞ-JMCڪ|蛢>WPlYƨ}y'Z{%=E9D@oyT\gꧼh2R%u@}6ݭy=tdٔeoEڿ>-zbXӡwi4&'@K;/o!GPV^dǣwп_}N.@߾9n^2hnCۅ< Kji.r7@5//sU{CXr[| N4q8ڛUo_1la>09nhW݇߇iPri ̱.&H祈@.!t!F%p3=Z`1'wL?[o \gKMf$_{2۳C"aOY'( 2[cy))I:DOl!-h[/?8VRjXsni|X9 5G-u3 v?kɄNx/QVilQO4uەy| ZAnZt U'UmbĴ3珞ly$Nw q[6kxIt&JuHlޯ]u3Y}ؿs8@!;)p[௳R9Gdg]8[)c]adN7%Vd|A|m$S$ jɎvI2hkao حSpLpj#>.)ESsF2*s_tkS2)=huZȮ )p(Ze D˸GY[2e[hH aA,ubGIpQho!%{Qє :@uŜW1.KCa7to}v&2QEEl{r~`ZM9':YAU\"` #1k.\eMقoa :- ;U%T67s8G{;ۍB?$ϯm'Jѐ>w"Wa !]ޢW}= +79k/GT?1qDn.Q&RE\h1B:GNH{/GyH c8BDAqiijg2AXijBq^^SZD ivuܩxH1(:,ǯe$}0Xwrm  v {x8W4-rUvrd%u躪D:lu|Pb2VNoJhWs@j#/9oV9q"5ΟL hjgIs:Và!3y7mVѼ`o/m=U,Vn6@0f~\Q1sjPy^Xw#L?Al^W&J1@~-9V>f܋X>|M*}+M){9MB]Pg @Zx["!3;#k= Y/d jb|sJ0Ar5KO=F!lKJfos\hz. ~޾լnj“eO8T˃5ڪ=xgd`X)hlbX6§0G6kb%Ry OO z;MzSPF~ n6ih)m}\+k>4%uuxOߠt,VU7&KfAn!{oAjM܏4oW:ˈ)+a{dl^[rq{O#c5cLZ;͑K-yƴ ,DK s"@jpv\Fbzexh;EV]T+)`C'0qnd« ny?lh^&q>3#U؝ k̵8% i7eɢHj_=]O(S 6RV&mͲ&Gh#|ENcs,g3B9 oK,֦~W4鳩ZzĤ0l&z~)R7]3* 7SLk]:Q&4 mI*~1ƍTHAoyKЕ)SCM BѢM#@>:Sr ALϗv,+30)?֑cWk S7:m0zd v$R<ɑt8K yE /(15y8sx^}ئ _P }lmnkf1г3W[zYPg >3j{_oi(fLrߤ&_ᶈ#1ZWh(}-/m|ƇAmj ?ϰ [P%jJgyU67>_sf*BQh[!eyTkl͛H=#oٱ0)̺mۭK;>2Zb=s`ʅCn@[DǖI5]5O +2VZKg68s)sP\5ldP:UD!y:t[ڴۡEBYHBcbԸ:qc"CORƴ}L" MmVS¡:EL&чɂ7~RZ1ADZܙBїH1^~6eQ }{$M++ʈ >B A7 =c E2I驀P?g "P;Z˪u9w5vI l tFe-I-v'չ֒!mt&5 EKQO\70&*n|}/?}72,+D2Zw,)VLa|c"LyXJ!1r|bYUta0&܊SlE0(T0M)XSD_}-YOưm >UCx:Ǹ܃=)7CQ~F :%DM cH"74h JòO'W?U}&pDq+VW$bStڭ|/^6ĎN5I˹DcoW(~標er~-Ixo,(˞S&6<' sϰη!Lf4CۊMPݴk]qPfy ٚG x'ʼn`i[9~~nr] !a=9޶# \>k.i) 3B`ĮW50bH_4'0Mk/ `Pj%S/Rm#*Co+9ɖ:(ӵbӎ lqHiҬf;c,*;Yo 12@ldo NbàdXqUڳq^I޾\lǠYԧgHDV:TQ isk O‰X- UgQS'CtԄܪ Cġcsg:F੆05_hBXeNOK:-ܭQ8;ݦ [~8ơ8ǔnZ+' 8[k`˥@-*>y Tv=V9gsȾrܽ|fa*[jo{ ('C  0L -Sts@5&(2H3\@Hu..TS'9IBά2k`t5#OB櫭ݩhi]R^%f'DO74,KڝxX"{ a>28#_3 $ܬUldd?8y``!M9F+'A:pZC. D"`4[9ÄQkN+'}.v?ad9"R vi*F񡿺EE18QOE]AYe9Z QVX@J G\mIQJcA`sRG&F1ip#53T5DJXv&DꉥcΞ/6/A+6.;\:.ޑ0!(P8ˌAvb$&#/؂S֔JCMO{ Iph"dJ5=})dk2sw}YEYUmwnvs.x\OɅK 2vEkVӉh$fƒS8B_E3PO-I,'-'o! $EkZ>;ȅ#/BoZ"ID+9k(+'@ MDp% OI /8g`n3%1D.t]W26E};\<@c@F}&KhL6x1o qC^&k^X'n]&IC4F[=f*=PS?3(2'#_B. JaXrߪw*xD pY Ս`c[{mqqSƖ- i*W,ptqeB.YQj2x"/|5jVvtI"!Y:G/ąY{aA#j^XZa`QH3>2cT}[fz'|IrH'+ ^fAƮt?a +TT`Qb?oކB]=+.P^yC]q묟o22`AJ=h棕 3G˗>0Ø'*W'&NldxiL\" b( W4q8Bh}9u# 2(V:,\'Qq d3܂ra\z./gehPp־H1AesS?VќE?XS>:iy,\{N79:sZW8P oزOk5?tz+YN{-=pcJ _:F6zC̓&䞤{b5w`Pt/FϬe5AH6UwwsQ/LXÇ:݇|vf!P`ɶţd))Dm_gQTqg準[dTƹ*k S٤ WV97f^EZ[- ʤ%#S=2Ϲ L ۱@A̒)Á?cf:K|b\ AB3 hsNy X i7Ǻ8U-HjULIIoDt^>Vs -aV3=,>,su"3y;-J/Ҹ%l1w4`+z?[2UK> p{S%|= '$IV5Ry<4R4mw{/ѾC(Ju7B2 E)S~dFܫ] $dH,ܒCG~ ߀Ynᳬ窟׍M[tU Գ%Clto A49 R'p̂WBz$*Hz )WVլ7Oo/YӔxsmθm˔8s(*mv%Y )ȨPp'=Lq)CL(לzܐoy2UZ !R 4B3J7 "#2葾/EȲ ǖ EDlv *2-ٶ7 ;v8"TlG0\iTv$)W,$!EHpS7Փ p"%X2˒8DP{Re? { xixPDɇEJ#n ƹ7PL,/06GʧQǩlCb0,~j6THܠYnwo7q[ņtǖbg#ܘo,ҋ4ўboķ/dH} C<1f&Ul Ъ]On'! q ,"*^~2S'1HuWs7R10eBGP|9RL{WԻ ^)S5`1|^]H]3cRГ5\@C8֮1\S./܃?wF{ {!r~4׺i{:.<%@"Se,F#J !e9#g~v BYhbm7lozX$7v k$Pm7*pG2.7!' A oޖվ3v*G(I"b .o_xhuՍ0Js #$u"k%|3_L~r8ˀޑ~q,B??zST rmu J% c^fj2rȴ̾NBܢJ`mIt䵛\AС1i(1FjQKx>URA)"V-"cNIԇ7jgQ-вGHH4 mE_[{Vn͒T#:zC9I ;ԖYd8xt# J\vɎLzRE;9i> /}d+l)wUחIsSWEN4A81d:X@29sbQaU"tuLhQD2:%lF+BI&VXp6"SYa0(i@EC#- +i@y FnV>0 vu0Oyu͵QuT L<N#4:N> ҳH c)N'SP7sdA>cu8ԋW1-[_jUݖ1Z?BxnNLM<<@e^Zv%2OV]e䫍r7qv_7Hpz(`i"~5hl|Nd~-ɿ?*:H&@I%fJYȐ[nrY/!"dlγ|Tw|[9T9=%A;w)nإ;R4$>f"p7Xw%t#r Ji7aA;BYXmOSf-Es}>:J&G19gP3hrK]w_:._S.N)?t1]b3ص`HS)eNЄ.w-y,^]MyS)Al'[=c^K*0RiF`ۋ᥄ BA@0yN ΊsUorua/\AHyaw q%tGE]嵘HokvrRPH<; twL:OqBD_\*R(?.vbrs$,g?H$渵>.4Ch!GIAT9춧|Tw$ֻ'W 圞{u#v^Pm#/yRxf34w"+6o]}5WOdS"!Kr~R!IεEzd I_pN~ML34OYs P]c@%};:w p#IXnM"m-r3ffqE~p8鋗!buL\`6Z)Ss@3^̠Nirřz;W/o$6`7jT&%i | UK=0SRM{nkw١x{ NF^HO{ 9<֊/,Gk"Z* LyT\w/2عxLS@ dƞ%PZW$єzJO8.( crUN$? wQD{$33A>%GY,Ҋ\u~}'ٛҒ:jjm4:a5?б-ޜ?C*ڏza`5=%·7Vv0K2oYlłJ?݆cѿ(r-`=PȊT \Rzx9KXZK5g]ȳ%t"K|=ǥSyEC=sK馢1iѬ哷HVɚ ާ3PR I힠c>bjz4Q?Ps Fa!X"x*[ifHTeJ 0^Z3ۇDSD]@iDF/H F?)(/c'"ɈGo5)uE|FP#T9N=ࢹ3J-D+|2ѐYnt(')lߖ?+PsтLpAǢ%-,0=u_O@<=p|U<چP3-gTS:avu{G~fZDm1 w~<9'^z16A0$#u3˯:xF k ugg-߫OQwV̚fyגljY&e5 tp]:"+iTX9Xvq?(S$wn UDhߡLYBVY0-9sZM h (7OI>/+_Ad Vq(THI.Gig A>jDY,E0 3>p #m>y:nj\z+D\hyxzKDkk=oZx~|d[k|aiscBVh_)y\"__ _%7##IyH(yOXafwYz;ojqQT>2KL$ͦTss[>s>KxjP &?)<:`SqC$jür31!f1ԟ&?ck_"oPwZJݯJ *4+25X 햎}bN.2yrUUW>SAPwZ%jҦ3E o8VLc(^9ˠ^n-[] & bWtӖ1$vQ1 @r[~[$=KpĚz#%~/sd-'XN/ëӥT12}z7 Jj}dB[rev飊LkJiVaB+fl+58 " giEaYP Mkct$=BT֞;SJO&TD0:_s).Cڇ=)~"L~3hV?Π9z_*H26[sT:lkhtmKA(BuOQQzl"G3w. ֒€^\ I ި@] -皽t|EjVc2w5t2ۃc1K h3n8p ^m] } xH zxk9paRΝ}7D {ܑRr\%44β JOsM{zF->8BV: -7C)?=V5 QfνyqQ0~ F |<06g ˜f#B'Zv% _w.#S-֧(o>1Hz0D_\YCSr3⣷*wasC7Mu4V/)s<ymݵR6!Y1: `~2i;i6K;*sog])JKB( Oǒ*ⓓ8QQQ/ѝ XO%6+-6d 6ߟ蘃')րsPw)@9|U4 BKp@8,ahjƶ$Jpyq"hԿHϦ8vdF^Qv6Oxҟ8J2^ snv/ j(9s)z!VOP", aUd %G4'!c"Nrzo0(~znxj C: aQ)j_tww#ٻ%83TVS6H1}9hR#uYl/k+jgszW{ʚVI.hP70/n0rR(~g(ʹ nC(Miq1,&ԓ)flinRm M(&Ic#=ӓK 2::L)edMӓ!08p*+|<_Mԝ"y2⅘*q&;8brYxk{Wf2q@/}^|#C4TF$K";#.;Đ99tbiJ.*pgġz3Z;k,Α4Đc%+i:^zۢ[j \^Y nb0}3M`-‰cetyV% $=EfZĨ#Y_iFu\D06!ƙPV0`H* xdX*[*`TY$$ϫ Ug )S/rUVbyEEɽm$Q`Y>Wm͌hGfzФł1*lGUP;La â- 6"U6vFݹӄ!p,a`J'7@ܓ|x'*脀y;1'vSQ`!U"b!c+3ۙAhQ=0  NVpbQvԢ\5_d9߫6 16rGLwibG [Nbe -x, V"YrT6 eJD^ ψ]iJlh_do KSn!a:bMڞ X9AFLV[ROCԊGƋFbZ4?sFm?ASg/Eg 26,\sC~4W*IJTV YCU_BvjױWYFa~k:;[˽~*[;;6AxFaqYEszQ{ثb&s?%i BfuKpl ;ʓ<3K;$)?‚rh`)LLÃ(̾0ߓx;{c %-/m@ϵ#B/"=*vFݙ&3ͶFA "#r?jZjب#Iu|m/ 4ܖf ѫ5RĉO4A8fEwEt|,&aߚ~Fءhܯ,y1+ٞrB'Iy"o!m[ᇔwKh+]P-/vL]KU׹y]D` mFUz-$ P u&aC4_e9#(11mP3d3dfrm4k%Q?|t%{ɜsIHJM&0׶O=X|Яd&"J~+/D퉋i/}>I/c!WASNj2^97Ψ'^B)#M՝PB^EG˃ƫG|..+@}?dQF Oڗ⏠"w dYSK6ɸFB*7X (ҁ*;4)89E{ {b{OCh[D[Y!&e[rKz%:i")VƊ0L5P6':2cf4ĨAի=ӊAﰷ!Y@Ǹ[+=ttߢ$R]qȈ9X#׶fzZjd<&B7u2FJj+uf@SJ%p0B>Y0ah(qzJͩvJ4V[XS&ÞxbmyY6XۿCW%Tl}u70+ES/cKܡ"Yx56k||(X+B]5&~(}x8V*2m4Q/W}ɦlhBx5,L5PO8{C|qKRT!z3:-[f{hG;pjA>$J w_ Z;K׶^PiFܹr.ަtzoՠV|AweR_JI¨*A$[Pњi:D)SNLBA;'yU^xfkdģ^! -MBV+$iv&0 +|̄Toa#eE0RoH*:tFQ6?%5Uuo1gns>wO7e(![?l.cޙ~e\lAHW83~௶yiZ-Ō8[ ͋gB*ݕT@g;3hDKV+spV~5k#ɴ=ORs>7S?/:e;2ܲc!bqXAR|B2Z[)j 2CISɍd̎]mtښR"w_W(? ,yo4)C_cdzZsY;A.ꏀ7H-5I5kK{bRcIAejbS]GQeXm(#@֭ b'(aKk0D́9}&/x]+P$Pg ٲǂKpN*ᨌ w'`W9M`g8Nyļ1z4EPۀ2WL^>s._0m ^rMl٦H6 n/rъic,LE%<| ~9Ģ܇M&]LL 8U[+i5*%diw5 OrРy%M| P Ѽ72xپIW4Ī?߅p-̼ÈcЏnF^l,jW EdX.x>'GsIMKƇ ܆#7*՝` `d~5R^ Y0)sNm0P7u,/Jh)DXOQ|/zI3ի遐ވ'AW5N*)Ht%0qX%M[8^eWCE.Cs +Zc"h}jcá)9([- k#i:rٹvy0*ʴsqGK%eIE^ M[ņVq{(lcs'[ Ea[qLzj^G#mƎ#cw}uf` {?g])G) GkOCn N`\p̅OWÈ=TeQ__Y:syF)QpvɨjAF<=;ͱ.[n-̢jY]5w[ ]:3 ϭ9?l@ݨVÉ) h "P}n[Ս5oj>W$"23Ҍ ^/;pR{Հ?hލc9nVzSPCGY!ދf]P,WTI㡶3~ϣ-2=~$< 3Wɏ9Ǿ`6kvn㮁}(=2o ,(seXWj]"3( 4߮C+FI!P>lvZpHXBxn#ƥ}t9Ƒju' dLu̦+|`췟^Cg #|thG$pyìqhJ*srwwjNkUg[!r&o;0'P{6ωAb85Z:yV}*1SAREEGqhnxڱ/a*1{ Tsz'T8lcIox?{lb.@#jA!GȐ>J8v/#`900'XRWD&&ebP vF=i]5V/U^{.hH|TF4p̚í22V3f.4AGm>7ґ}Ep᭟cMA?ΟmVec< _x%AWEb>;ǽӑzG<Aj -< b D_LȄfGշrUR%x2}Vk"B+ K$T9\xYbO5o9 u\)]%IhX\09CWZPap⢀M{:CBppqѦnDE^{ʄAH!gmg9;#FQF쨫i흰L˜-O#PE9f5NKچDU28Y+q#6dCЛ+U8)3+o56ŰԒER9*_:Ѫ2קOg_w%8wc)?}fro_uplV( 9WG̊ZkBu]u$^B2 <>95ʮi)ZƼ-`kQ m!\?`W[EˣN^Ǘ")j528,ލs/ґE#rD1L_ vmB۪#C/,[7A\ A<ؒ9d%|lV5^n6Sh&BJ>t#~#ܰ2Fd]/bv 9K@m^(l:mRk#*U{˅X x'VuĈ'|8ct#VZOZףNgRH|2OfȡBot,R 9N=(4o3Ocj:Z ! #+7PZ %*Q/d"i 4b/l4T輑0[Z6/K$_0h6lZfuO9vɡfٔUʫ-ʡPS)Z]Cǥ"JgCr+UK nvc(г!CR၊#*Z0ih1/펨s]U&nٛ;\8C8gt77h߼4Ad!}1,^WUs(黮Ic|^"_K/DV~;&.0`|W/ S—ɯ-]yV_Brwk NKoz ()ϹFR 6#b=2Ó"=L~8#g2 -9Ǫ[ׁ+aXMhS?m:7?j7ui b,,y`OΆ!TqG Fۥ d=_h)eBB>$y=gG5UiG:jG٣3̒IGb~zj=z5~FiCgX@ w{5W rv-/D0AaF:/67wES%nZs0S[-EE?g`ѭ-DGRMdcJlޏb@ފˎ`8 BzhG7]a[1/V7*o+ukgd[7 (4`h#J$]K :@%e-@KSu(ZW?b0C0&V6(^oRW+#ΆHKlɁ2h`V!K]L>_UG|Pt3ًh_ eEj3 hL= ho\.a٪b!f}SR||#;lӪA'( >~L2y_y!BW$L8Klտ3b`e=7P`X2ҡTK%B8ϗVdӐeql NgSuW?Rծ #yX٢xclL@.`!2bFgP@7h\R ݙ7` [ gQTd1aSVco?6'9|^G"/޾E1<~}#,UA]X~'M!04VE6ud1zctp\YZU%yX#vEj·'*͒iJ2kQwvkyZfaj'k:fuka@:u1{k,AdjR*x#¦[ˊ_wu媹~e&#< "|o%"in;74uжZyR$ ]sc0H '~|)0}O(5rp";vNxsbRpt?:)%j`8i t.GB&w{a}-+ueͳ ni A<8UW_'4a⤰/-7A[oA#ߋ8aKdGX?pSGgϖx2W[0c,d\zl֧uY.;7Q.%b 5l]9!DyhcHߦK3r7ZɫIhZESA]pXQr+7 Bs^0A5/ w$l D+3Kn9$S7ĥ"F+;铐V=t;'`Nk4€tJsy'[=S!AkI׹=XX:^3ٵZbn1,eT-A.wi!$Ij %g/x`JŖ P:߼.*ŤJRf"4&@;!ׄhsiO*B"f oDիqq'yW ɿKa)9Q-ÿUDDPYg\9?:BN&ix\H^K.4 s7i]8C=M4:sI,}ង`CH޺)LVU yi(pNaBJsY_jUHP9= abmJ:2FX` 箛M:IfIAm,OCT C\Iܧ67.с}1oHJЀ CE% i6,GurE=ƫg9QBr#Ywx )/Ee*ʈp1|ʧRW"& C`;bfR['gw7e&P8V' NOw4_@vÃ?02їZg7EלVyNfN"/7dJ M#ypSuI?9rDC7wf`mQ2>2:^s¬ؚ pH1J^ N*dpűn툯*Q|KR%JǦ]<kl>y'2a$W- :*V3xO=kNS:DMYx^'|udzcLgJ4eJQnT g!LjHZDVr;St9A'TTw+A(Gc3c ]qPcw[񖊠auΙpk_VJ%n?P^zrDB UY>x[ߚni_~OyfĿ~t1{#4hcT{9 ]~/F5:QCՓ˼(n VJ6CzS*:fQ$T:X~kύ54KNyxm7GNk XA~i&xDSE>HI؀~,/\W O@o.^#F݋O7.P~ӼWlYzdLe%(N  c#Rw&|p%>ۡ҂C+ki^7kU\3E;P#9- PLۂ;Ǚ7w"N;p,Z>i ODQEy9Qe7.N6fFCr@)s=ޭ76#.ed:V7D _6 (h# lοx_.9KP&z0QsUb*; ѿ׮tfJ5̘46<㉹Ȱ셭|=^bWviA펧@\0&rZ[Ӎ!yK ~x1jC.p*4&J:ZĠ.3O{B`H|\xɁnhm )? Ł =Ƹ3WZ(OUMט;'ާ\oU{"5F2hp* z')K zy|cSԽz-@HA>\ӜtDye:@(YW<י"7y#kcL+Gq0 EÄH2 0?5vUy8G]8 bh?~H ]>j{u\5{1wJ^ڠN36T|DT5e\'o]^Y X^n0lc ̃'] Mt"E4o_\h%d-8k1׊]fbAa;;Z,Q%^$ߙwsmn%^;`'pWڣ)srZJZK-`1(LB*-r+E޴]t{X3#Zņ!hqgaOG'yA򩐣6?KFZUGI(&`Zf@(za2݊.3Peܗӳ)]\ӣH{QRQ{#dX;å2,f[UzzjQ,AeO WʳYYYBUBw }&e տ9쩲%odL5AnouTxTGwl<@t[PBTyRFswx-Oγ!>7ʵ*Yy99mcQk I;8,-}Ņ︲@8^֛djrUK a.]a?e,wпPO nЏYFFZ10?FŪ@cG[ C~J7>>G+QYf[.Gm7k$}Vrr@ N>l^i$T_nC}{ e@8A12:Q]lEzD +,3F95>j\5@'t_ }M"JMuI|d  vuyʎUC̡;|b^H+IaOXys <v>(9e#/42'Ϝ lX[nS MtJϦ$)J׍} s< ^]0e/c//@}2{ɣբݯƂE9#xx_{< CUIׂ| k:Cɡ<+>zJ૚M2Lm.BiIXیp#"vzRGu l2kmb|k! j+ |Oi&ܶ|BFhd!hXSpm9iz+B(VS 1S{|4nT2+˕%-k 7^i7^l}hk/mLxak ) ̝eqF6V;8dqxoԕ[C0XL $6\~f#? 2ͦCFI*Ԇp)Kؼd[j _;B^q'4GV՗X h$YmKr.mFЬc]ѷ>"c|",uWevrt6`E>Ʃ7Y/AסL}%OM#k.[FY:_]ڹQSYve<2TDxewv wFdQg(o#XOi׊8;U4;)?"kp䕼rT@ME-q κ%x&EY8k/\M׾n#N*H"dZ-$px0C*>^+5Dzd6lL޾SJV~[[.~!mҋDh|/+v  [cZĔ i[Ʌ4OokpQ336A3^` <G ^ɾ?eGm&heGY"(t=;ba]~r͔} Tk!Ⳬ|EI2zD⡭K]l |@҈\.* 9=ZTE*qۘHZ8ua!oWW@G_8!1~aW"&Q4~+.oIBuL}] 7 #q?n R19}RmBnK:yd۵ÐoS(^rАBS}*oQ`NߪX 8zɿH}6F}5h}-;wzS|y.Q$j>9)~65Z!@|֦X"2dWwB;ӹm $yDU/-:ca &ɞ;vB! YvCmG_6>m'^W>޽ &=|FTXw&G.@ (806OT4︦vg=D'{VhLVprgȚߎjA.t1A*\iht?T@J[1% acBџ=ځw Hk>U'V?MʂMaBb"Cg⮄ў{~~ݳ4~R7%icdMeYR5?/D~[2Q4d/=4'U|xr645\~ޣp.B"ku {p%Mos<.@! В i+g>N}-[zhR¹wa3ؿa*rI/UxbeGxՋFP0!\yBn^#3SrEB!z KٜREVxyj5)mv!38IGrzv?jrgzg(Q!g^usKN]g@&v}J% d(&jLc|D[Vau8/4_t:G;6 ȳ g6W,wp|6ZԽ$n@:ȴ_9>42/IIMn`gqlVݪ0:%BX%3W*iA.I20?,Pbi[#_}8wՅ%?+@a1knϧ?MdЎ?_+{q)N.eaڌj/Z,5(fM ʲjأz KRxsd NqS'qImtu)/mO2Tutd CE D;'t2 ,>4R,6Yl'ܓnFo? k&JɋCl˒KG lȟ]VfM7Xxj3Aܪvʸȅ*a u~tϴQo+Y|%'n pCcr`'"A&{,^[&& .$%?%q0ɤ%v5:Srx.dX=[}D6K*uȲq ^&dϛvH@GbMd[BC_TCTZD輒h8R Ш)%3^&dCDxf Sgh0FlK< 2h$JǷ?D`- Q$Q0z.R ET(D4+SNippoM{U^8qu>entt $Yk(q$ΚD:{ϗ`1xRT"2.P>aB=gR.t(M$>ؒ>1QxL`n5~ ć_[$8{| 3;,Srgc=ğ'x/צꀛ>m>b -˚F7߸81- >1fQɚO̠Ctv_]QC-,^Ml}˥ Y@#;6lNٷ"lc'ɑb3_,`R\Xw7oS䌥ѳ?5HJF:~R{}Hv2mZlWuߥ>wL$ÇwOF3~mN(N]=129He@ҘNmmQ%6JVkI?•zx?y֒Ժ'b´c Ur?+v}J+whyΒq1bdWrH W#g ^eݻrijcDQI A Tx6L_}ҹ;L@SzsGʠCQr(xV9gdDqNs2Fzt^)[ 6r/ 5μ8qH yё.A-P[+fKK,:? n  qR)DQ^Uqř;#6;ہ7Sm/L!18N1T2Ъ^2ك ! I liX ALĞ$H"%эMi1?;M@> Pq.7|}ioMJ]mco)q6 L정Do6Lڎ} OP$]K3ڱw#rWoN/~6,r#j 䛢 Y[hbS&%xd$f5mF "<"5=ԘE]qĆMMSA(۔:EþgC͇eLQU:u{ "{ sݷS34,Aj'2^q&͸ÆUpny ,B5%ƼF(_-Om=Ԣu4ouZWO~YESwKC)2D.FnoE G!OH9Vx^|獞FL%ӒYad cxGK:㖜gAt&]' J$vEecxMnѱg_.Y dFY3e]zg2ä3[BJr\5Yul3uVv3=rʦqo2ɇܶ]hw. A0{]%=:$|FYMtܢa޴o=Ht[9q!x&u+E/.Ukp ,*:0ڠdLjA2\wM4T pY&ܙ' _V > c^)̣h:JSWp_dB#ZkݫuTG*ymrc-h;j"Y ?͚-4]$az#uAc+*'j 2ԊU92.H0U *P#7P=﹞*6{ۗ Ј{M? "NrsX0Y]2o)Eu T.huZz2^%Ņ+ѿS LtCK3LiV*dr~01|b&ʹ vI;*4c%m=!߸SrzC?L"C;5wvf0'+wHU7<%MՂ M C'})kmuכ{䛴d^dc4mi9#){ډnhG>51)B2!C8v53],kwE**[~([ UOP{~PA%{lI8M@jkb(m<,ePf._B!)OiTVeimnE9)^1 %\7HN391 ESJ[wHdъ:rrinp"f p)CǞ9\_JҀ?7y)a`ɉF?9L{إ7Fh*}LN]xO"`%؉}pZ,5{cf5~*E6lwNzvHF(jtL{bcD_yU'|<:miE6NLiݹq`A+#{92-/֨R^L=FQL֏3gcFuLjb!"ȶҳ9^wuQOeQ\ikhKV>kvvlל{@KNJE;N!b"17ۼ2Qq?XtQaFoz@Qه297cBwFC'EnP{»(wf7կȦ`+b-noGB-\8x[''JT3v_LqcQY.&9No8QY4q_4"kyVrlFv|[y ϡB%9n_&g WI'h 舔FqwN]FOl,^jT96%VV2W>#,5׈^FI*V:+\v$"سn]&BsWg`;QZM,(Gs(7-7/ SZd>sQ? ;8lMFQgDFq T`Js+k8! bz=O5v/V 2 }@ )jGQG|~'[3.n}u M_QmEuou,YXC9N9jOE;&YR1}c|'?z0ݯuϽ |<$RXg^!ayϖILnń0kJv\G -%Eg;&+k<[#jfl'͉}d;]?wCb6ViT-C΢#|0nMs1/5T;"B"S:R'ENx逦)6٪~x =m1nb5OFKBBpp }vq}2Zfq_h6ctXb "bJ뜯x+on钐'#[i›. v7s#8jnbt Sw|InmW7R ^v;w$x5s.+3wggM%kA)%W"ĸJbk0CR"JYzі~Tuo7s&'3%, p~Ht5c7oXO ;X}XEȄ[bB *<5}{&Rr*p/>}(R*Exl~d9lch#qVxGWqΓyzq)Ͼ5~%B-8~؎yH<ŰXhsqޮ.PZ4U2S\)4i,x]B}r .OzL3$s|/}>́ A;{˝s-P|!EN6b6Y@Zb_ʗtSc@0ezO]*k>>ZEbҰOO]+k-iT6_` Pz6!ߎmf6[s~~qT3T3|.[&_/d81 s-pmIpQI8 -tfWgcGނ<&$19"#kFӇ:mR KX]-EsdoJ1]MJ>s~j7q?d= m-&]L%$Z+#h?iˉSfc5J)5ƞ\]K&v$dP0oYTFVaeޟG1 }Y۽\v]Ì|zyX J.PöaMRA /kl޾IcLGk#/ dŠFC*Jc N?7<_Wz.cY Z-y'LV.t쐴zΟRzo~Z4հ#Xgr/y@K>Ҟtߒ+edu5QE)a%}( /}˞\ƹ2 S{&p5A d8)F$; keX#6Zv:SQ4C=pxD%/Kd?^𣑣6UY9qئv=}2}i PD5hT"KH$?0Uhu1TCx*D`Nc(C8I`} zvek GHe}_ʑk2:9)'x8 u{;&86?7Ԧqj?y Ï8evD˺!,獏}C716Bi'bP<ڷS~)p^!2{nhHiǜqE$q54yem1DSq3Kwt19FQ13oKbYf@ޮi|54U.C7s4"c{; OouR,2F_NWd折0i~XC JwB'酓Ty8a4N3<[UsX_'pё/WWqsRg@:]2~6ﲿ6ԧtu>OF>xDT6#n! Ҏх3Vt#qH%:v(178 8ׇQKfWA .sZ\cW2a~gH4*L !2 $-s-K%u35MyQvSYdRO [:(Z\>0Ξ+"[`Kcl@O!*ePzvn~Ym0!s^OkVkρI1/ߧCl\θ $Uzwtb 6 l:{C&W\]٨,}H\͡88U_,8.6O7+?`Vj\,G CǔP5pS8}PwvOb"5qLI>8LXFjT Wyv~4}~0x[x3{IƲD^Ho{ $Di4 ^ĭQ6#=w ~hR?TR(iwv#nyW]Pˣ0& NC^N205sj݀k$ϕ؆C5S[d(Q;@ G^ԁA]eh9ZZ𝧎 P]aY^Yo;c8EkGk'B<nj]jcn9YN9b~"S1b h}HK>яKnn/)s5Y(-̳8HrkM "/[Wpp*?C%CB+|E_W\Hh1v.mwџq/Rj&nVt~P^G}b!?y{6l -~`H\Wݒ,wMf*B*,Ws$Y9".jq3X[pqqQ )C0f)E 4".d,-7 3[~F זt5p[LRXd밵O"ԦVѩ"kpdb'iR7WtY<Em$nm[)9d}倂p_rL _%k:I>{6g NzYku2Ec֟QqU*2V<ape݅wTcU1NזTx NtÎt,r-Ĕg=ʎy4ژS=j@(C\1DYrm'aN( ؾH"+y5&e.H8KeN*[ˁlk]x嘢!qN:G"J(wQtyh%:mϏ~>e=iVSE5(ܛHy xuLB"5 (C:9r@Wu6<\ڔaš`` Mֱ2*98xu<`oOkAbꎄs514 HT0ٙN=j`/ 1sAOŧp_ݎB-n ç4y#L*lHpnd9Q/??d5J;Ԯ;'xz@otn?&==tӤK83@#47R\a,XY+;m)KcF+}SifQ#2[l &R7Ç aK/Vkaj6Ld:Fs%lK`{ }jo=_VGbR猖`}83./xJU$ #5 --|/Ϫ3 z{WP$=fHJ-g]V!0~B㮦G9>Ä֚VCh2,,g4[Π,aFV!-EHUExmkþimN]2)}qtF6O|`{y${;z'TUӭ1ؿ#Y^HY'$ * %>hq4AIf2p_tv͚^wtiG+ě႟>`cfFor+ HCҘ]6XU@Xv8d'eLE$ҿFaX@M_xVr^ )kz!#HR7>7pQq+H<,gZegԈ˻ƽ4`e DUT^&=E$eGNNu9)w;b'L}j.Fѻ&<5A1.Ë^ϩN۴JY⊀)5 7ޏN129PNS_1@~|J8[;q~.;Nݼ.(N6DrGiOd#{fUSb!|qvm-BxQh WUdr(v"hoZ:dݱ`4^"m"jdKbsKp7#uش6碩n+ⰓO};oL /=&uv~e7he֢tO4&E3PƁ(ϋ4EykB`Վ2F%dh t K ZAD E)E-톟,4[%=QG8D@iQQzXĦΩ-`fyP![ƭ]s*ˣXɇ|  8R$i0FvDs:*,sH S1 `GfKꨜZȁ'Q3ė`#(Z{D4ΙVtb}u6)63&36hVO-Fs59Hitgoms3y nYKAza,K**q~v|ۮmHV'sâZn` _P{>"~S$OOT*ey>*↘rrFkP;}9->Lu,"4;T >Yۈa֮v3-;v8`gYIYYZ03v{!Y!' @^֥!vCVÉURXS"du)29fFL(#C$F j]-Sk4NzXKjŬ iT#b!?{y m;k$Љ)l#Mwr8LXUlx3qw)]-Nclԙe9"`sOrD} : \5<]\j[ld)WԒNԬԋe-Tp@XbiT~Վo 3@ߙa.;z"[X[༳}2߅`ya& 8]Cm N:iϖeC4Rsj=-K î4ͥaG$g_z6?#7 MW;Vb.G2lf?14M.3A|( v$ 1.[À)J'oC<᪺ˋ:"|멓8ϝ;u z00zyLѥZzq{kC[=;Z7~R غ|>) ΧJQ};\kƩ y\l1鑄Džkȸ${;eHψ.RzX;A,nrghQRg݉bhh&kuR|ٞ;Ȥ[F7X >e::qQCLvڴG+ang](ulxPu$A-I$,]DR M^>{4 On \¢Xq‰9Ъb2֝ڒ=43`wtS> JlDH nl׵3 ~ kI&Ghi~Ľ.[UW`J0cܤ^"-_yMdQQuʔyo:8͹DHx)N=0 { ݶwvشqՏ Hj)X%~¯`W^''貢 R-8%jq޹b|Gn1)]_U [RQUFt13043B4'8``0zҪ{YiNcY[=1g >1s[ SQG;jTly/](ɩ VF`Q$k*֊<tI/@nh) RƁX,cs#docL)@fB~X4 =Uo &dMb('g^4Q D6<2Ҳ:m^I)tPz{5'v&ӌNmſR{bv}yOP#VrquHܠx.;1nŮ$\QvX)a>WSֻE\Z Cs2zY>ѕru[Tf,!};wT M.<LDASk{5"a$^6pӍqK_r:nrc5+O3~0Tzё EFSK#>y:JVqI{߸9 [/(6[X@ӹxAna(V3pk{MzX`)7f*;S\N&# Hxys& #jie.zB8<}'"dAu^9]oKNiDeY@R6x>Kaӻ;E+.'Bᕇxsmv~̽@m>XGe|lD0Y(fP3~H 5kia)lD%kS'>#8|ʐdb.]$JEh!ËĹs[H5Vn:00U>'Ɇ=E:qmH􇍤-au2(Y> Tt+c2JJ nTAb 69&6f hU,\!Hq :u8jV}}W`^Y|'Ph73OBG.+c2Ĝumd]=$ȜmF6L$8Vd껍'U\?)=͂UøCsԙK1v*YD␏ hwG۪Ud9  ]nƾX;^nYΆ6]/#HQ؄đ3CCQVL'ȩ6JᲀC+* G/tą0'6Xp$`D:lYVi@sTw+%"$ЕRjLޚFlgw$K.9rIzP)ϟh 83i^$;. ^̴=.%|t@6X^0ڗˌʯQ\өڑ]/ӶG#<h!i!d/V##)޸ŕJ)9V>zբ%eܪqqIcMs t K׾q`KrtgyӃoljSpW'zkyR2pr- 2P %#Ϭ ?Aڍz?y_Z+ū )xC)hS]KQIpIlme0%|t#}r4Y*\+Ƭ HX ۙгj N5^ Wxѥj:(ԝqpCb#>l>b%*Ɍ=0<톍:'e~ހdTxH)< %6kzՓ9W5VO\S k{ ~˗:#{KIlR|eu0ǪbH58/l9k _70^GI[Cמ*DۢRNj;*%Dckr|K8gCOsumm^6gwҡYɺ5G-_jI+^%@Ri1^ ӽi[Kì@<?[^;&byBCb]Hj` dC˘6Eooۓ] )Rh<ɝEJ[ejBfZ&v7-9UCaKKEYR'u F&{\@gs/تZ@Oֱ VhbFC'h~TD t6A?؅91\)PXM3-A!O&Iwi'*70,ؕFf67hNodk3 vսG^jX \>k|g}y%.5G60 {++Aުd鹎hȂOTQ!k"x(j}.$bTD"ν^f|sP|9KoQv3_5ׅTeq46smw,j@sRܙ.j̛ѿDɌ &*O[(e;V1:G_8ޡ";o1*&i7cxg测jSHod9Xǭ'%\pE'P:/a-L7 ^v-qeTߊN$FWE4HroıaBSz\_)`^̬TK;GF׷=R2 WyW>ny3b1H&w63(+Ʊ.#sj]'fEThdS y]V7̫aQ8jm^88<1U%#ntsN¿?PD Y 1zndU bwg@{n8)eHQv~A4 &' r#!G5YbxnAP7kBQ4TX jUC 2S#0 7ګ飌 PX^IdG1n o0)lѤy֋z H}!,w[ڡMVQ)_6Bɞ45 ԏZ?峏]}~$n&o)԰ABR |ԟ4,LC}^nޣȺ/&fWr_3I #%CI˩ʛO˼,UsȊȍܻc_A޶QddL6۸oJ |2DLE[icxzWMu8$0|X~Ò,K0vJ:L-]hI*Ej_,liwJ] ~} 0hgEwˀW|GPOL^?~M!!\zԦ]X S:?@Gil@LzeI _Wދ(n&JBKaH7f #FH:hbedG(#p{NVaߺ|6/i;})fʳ\!}1<ݧ:׷}i(r 7dv D}AyX9殤,O('Pvw .j!JdA"wi0q?>'(Qp')4cx[}5ŤxhDsΒVR=wQԷ7Z^ҞBIz :~d-'",Jv9G+Ħfq|!Gɩ,^绰qcj&5f2%W ޔvM 2 լh(1 iyE]C ڪ$p\hޢ g)hcMN×hmgΈ)vr˯$yE*d_ O>S-{A\_TP:Z|1+E`>MXlL6<-;*kԚ \:80b~}wf )=qR5N㪽|%erή0]TY&"3|*wh%w\7T7Mmߨ{kW飏8^{U\T1+Ԥ>#$mc6#bK\`xEy#v&8E?b`ÚK ǂ_yڷg3yJ$^4L-}ɜѻXűb23 Q>%pi껴 _Ctn lz/V  Kw!p*'Rٰ{T󻳎r[[kᔣ( !DwOs/7%)i I}y|T!il'o/#jc2BO[ț}M 6˟s2@F/7bw)SO,6́ YϦ%s$T*R2\Wu>r[PscQid>Fd{2n`TwŽ6>ȮA'gR?wCO;bFn7l+'x!1-ޕ<ʗaM<m/J3 yP 2.s!Ǥe!+YC.&vT-| oz`2k7E1| ?jQ D"q= MYҲ9;0mFbjj1"G&OuWLI@Ch5凢$1Q#i`OL$h~/#*=2ШhJ׼ 2l.ԤN*dTK^MPX 6}Bj`C!YCPG鈠=>Yr%`Ї6|apQJF 4p)ayxg*n'݂3ŵ@d~g_ǍPCHa]R1a`{{ǏοΚgk0 Ӊ9(U#ޥvOڜ'gqtj3ܻN+bwraJ\! 8%SN[J7q$ȯeLNJ Bb[zh{2 Hd]z^Zz[ܶ,Zp*rKR2-1ABʦg'uwXM 2bj@l؉<[HbX9xCnBeb?ͬ.PXʏ k7.Wل)"b ޻kJX@߯ӼXLݨ[BKXjx'۶oŭyLi aTb"U賹|ڊWt1,cӻ̪ͤޞB P;\뗵y.|6hN_Ha=jҺ<9!}E81\~9 ?xi:>0ϖHŅt4wF͇i[橌7W'>r\|R\Kݹ\(y1 pԞ=sn"7߂?4x ,wK l՘dft: X+2pow,V mAʤ!"t[FUPKux GSFr'T#<Qv@)|QKF?€Γ%;)lړ֓tVq먽n[]Md ~%=}Gqg TUqKs559*  $#^"/sKa=瘫6FSTLZ?(L6+;E?Ȥ-gECZUKLmBjz 9ꡂui^a'b5nS)$ "[wx/58q.>5Znc!ି|q Yط۹*A]8EHeňC3eg: k7!BW3C搿6f>BξSf#jd/#E LlølvD_yn"[^PnA4uZjz>x͉Z" /n9p04׈jSKn\ԟpfW 8QP;{8nIRx$u5NX8'>fӫi#$D]GRb4l0 ذ1٥H{6j*eb^ cHhl|>(|Fj؎|:$sӧt ه@8n1 g5 yOm5_[9D"%,4J&0ǕdzhVKV[Fݯ*^cAtc͚&߃@l &-PVŅL ۹}U7B 0 Ob1gz?3%Xr(|(sdw֒ Ktݣ&uA ]푞Bs!U?N1nůK kqMh;A A9\Z;Mb#Hhت /YS4=T+SzG,>hE'/%V> 4`}Tk=/8RV&h,M!~ %36IߘxY]S 8{gˋ8,j^+r:<'%Hq$g9h+|8|mDvyCǰ{1POJW3V|My<͢!霗#A,貵LVS]+,.G8AwY sP@AXۈxI%)-'ȁ-hhpD؇~j45Gcaȅ [I?yQArf[l=M+ZRnz9-45!jM`$AkrJѴU^hx`bdtiIɾ14łMtmX^YH1mLw:GმS@Ch_[(8aNC: >x+9:}K$ gC^x'}=VT}^qMMTsf(?2.6QByی҅[h(g9#+ 5"\cMBPcME:y.rQT9Z7nMQ+0d(Gg,a[q)mb1x4NL\?xr2 6p! 鬄)|n\p,/oA/;[[9]=-߅u5etWA7U䃍l@]ó͟94-R+6McٜAr-9b^ĂWMkh{:>ˤ=ŕ9Fι k,\IS `CY?"uS;YVx p~6ˏ1Tc.zTiL<2!Xdzgh#>Oɨ "BjШ[sa[[RGju)s}]tM@~% F|}%DC a fEw9w+:P99C~X5 pkG!$)q dlJ/22mAW|W9ond!BWMpf<^>prjվdmrfX 0E2+(9QdӶE3_{ԤAA&aw gdƂpu9z58jIUS9 esô0;w4T$R!L8-0z]_T &qއmTHtji5'S[) 51@ 8mҼ!@> &m ȱUeщepsl_|6)h9)DF͙}'je.U^ 3T́e&8NmWi@4Ajʛ[}'}8.`?yU,`}k*Xu6*W(c4q#uŊbfwM X$RmL_G8c(j1edYuǰwmL(RD.)Sݶ](^JOj]\d>djA864F@RW?ԐQWR3Wt"-ޤHnL'Y T $xnZ9[-q|z%pMTTDYMupo36gjnK`˛*uWO&..?,JjT#1h1GH7Я>)=ʊ`31jXgܒ= .{Hg:kg!D׊}Nqv FI)O#`K~v?|Z,&bi$Pg5J(d"ftpQBѸ=ԖMZE@_LU5OU}Z(eҀeJ.dQ|e:Lo" Qpi*FKSN+3\@MbP#,zF;{gvF3'N.fw+YF"Gq!/dSg(5%lp^DeS+Pm|"4] ANp׳p3dz$:0`7F6 ;zέ%*X„&+)}\ Kr<i\n ɴ4RyL@F8&u-<;c@}$.tٟ=or3-#`[ ?ˢ3q^ (CCY0kVZɷu:|ԝ5e<{ D=rNnÍɛK yxÓ+Y,(Dq!eKjwrO6l+>>&35T[FN!S-wbaf锍0a3zҕEQm}"5WnJl_;sN Ze]&x>{~[$1rݚR_t_B]f j^$iC] @&161:MCx/-XZ;frp {LU i`)W$[̒F,c&_QaM;s˸r92Rom]H;8ˍV!ΪPXfSJiy*YJޝ%(D3@[w E a':hFiC7Tu1I8o^թXCs3tUE>uZlm ]Md2e" 9Q V 2(JfVK~ܺsJ|#t7\k *W_6𣘈L{))CZd1gPe>ܨ70* GW |)bV39. Y㞖C4qe8yڼA?z{=jnjb{ k ; {r_/tt%TS,e>*ɰI&ÄuAy[\OoJv] }=qXɢ['7䋴ӂW!'0G|ߊS7$ӂ ,G$fHv0d|(^9aZ,9|[h 1Uq0 @l&{::F.M,[NZᨰ*x Wr/frCC_ V'GmURjG>j@[N_=@Uvbsyp/ޒp!RRb"զB+j: G4XdW!Ax D}uxQF:E:Aѣ-VU>}̷< ijR9PW~ĜЎȄH*vwsӉ'W@h0kK) e!.yHR?'ÞP@v0~2RB Z3={D"g땐skzA+#/5Z*ނ i{{%6%|LR%fƽ%|أƎ5cbzK"[?3ԸPaϸ*\/k'R,*9T=&ۮsu\F643rigt)# :wJ(QطN8ڬ@ Am51HH6s%Jhl*; Q; 6KƗuDН.}Fb/OIYo1( "SE%kRrM,ͯ P>C(%, j4g̐cQZ,PZ<ąP&,瀂Mwsu;CֿxlUțMM@= ` f d2<,>SM#rSX&#&lj뀏]QCZ0RASyH`2;\ ,; ]P d&\K"ǃ$!0\VV{Qo{cx963:$QSHuP"IF:oE;A%.')} mWb{*m s 2C\B3i.Rʚ9[O' 9JY!5VNH[)%mIη0*i,*fpTZ t>fFP= y݃F,i*?)|'͑}_fs[tSXKH){W[B6Rq RuC4PEW¾ < cIuYA M1sTl I 6}G_E\E`&cOrJtSc&䋌hYΗm{JCs26 NnbMt?9mѳ0yb7}Z p5Li Kb!T \&,`eqPOV@YSw1C]}8/`%L;t٤U4dꙈ~@o A[o"aQp<2l$ F…fVSYdu:]l ˴M4_pb_;Y$E[SUXGt{-g̀>Q z̈́Pƿ{(V.t\ltPVyձ6B] tLUm%g{S ^nYh BT;hsMrkiUh,@:*6/Jj| &oMGoZ< fT7o?Yߘޭt8Dk(1mϡϮ|mPm"o~jX T1DO^_*1]1wS2"r {zKj^p]^Sm=^Q(ȵ)@u*B๚%xjcw'[U,hg_3Yo/h (Gm>NBdmW9܅߼ h5;%>da? 5^flf(ᛧ_k XY-kc+z)~?R 6iN;+вR,) &UX+x9#e#rъ4#n1kGykXDsF;,Y m8h3F*h/#;+@z;1&ʊN~*>4(Dcg+-e2GbiGXFZ:)zUɁ; .$=nhd*k;hoe1A {a?Z5i7N'zd}ݦV)D.7WC,-33n/5:s /+Щݽ~T{КfGZr|YïC>#?Kրee-DavF(w#&<:5Ȧ0hEr0H'i97Zu3Oh'Ġ:uvp_"ǗIQ}zkxd] @'Bg:H)*fgU?=鹋{ơXz%4$tvhk5&-''=ljl##ݚ&}LpqAxcqV1lN I8O lKg=- ],kLŚS3]ݖԡZý@gOJJфF<ݬIp5=r>{܃*./%}oG(pZ| .8ǰ5Q0bb: qM)w60姻QX|1U DtemCݕ#fkª' eE=Ǿ[> F?bB. c TЖL|$!󆣉o8~*xЧLo* Uw.'cJϋͽ p`#.֢g`ɃwDB,DX/Hr/Y~a-o{h0MLכ76?sl;0=W/nњ-'ÆFCF/%|<>rv+j[\_P{ %q\Gm:> 6 P8Gyۅ$4](}nLPE(!<7&d n >IVfd~5_ṿx^`||$tS=$3XoOLqܧ7io!nABn032I)E4Uo)[_Z_*5^t(^fvb&[~h/&YwFM9"bp磫ke#-uґՋ5#ܭ'J:Q錅-QL3SgFIz \s _ӤAg6t J 8U=8Ҽ&<$jNp+{>꺷,D mq^Ҏc ?vA׺L`>OB[9Bg *~w)nRsӲ7Eio,^ƅhbʉ4!g4d@<_j9biH1 vXKݧq󝺉$t 0%t jsW5~i_z~vwt p!i}iB]dl.+Fd-RMF$'6Q_Ze&A]e& 0 /bǞG2{7+tF63%~ ,Dˆq5k:Oߟe/]56A쑝Sp`b[u~- vf{:IC`2r8 S LwQ> 1¿wo` Mznm MȞQ)XY{*"U}W}"T}m!j멒yt"Bcf)]RyN*sZep"X09=dbA~”p9?85KRGN2('N5݇l,b(.b  ݐAL,!bIWozBR+&fL $ m#6rFujbn}71d%J\NxJ{)ܵ#Kn0>0*`RO'z+=2(Mi ɀ\՘x$|JYm8v) uRvB~;®-]lJsWXȘz-=~tTy"7˕3]q\8qu6 \ 3ŷtZ'mi5Ӧ*&o4Șo*(FTD * >@귤cݪҜkȂkCxneTٛDƚ)ek=5g2@jߨmz{3bUb%OXsc2 ރW'rӦ1XW}0M볾T<3GstlLj6^𤐛N!3O!ӱ5GjYA_i~JQ=u2AQb-[@Ílz(O겒RA"> i\{좮wW6 Ֆs$erS+7J!na?Mh$U2LKqPWǍxRtnMy.0T8q5X 3q̵&Mn BSԾ3RY2Ae%֚EG|6442aTi:ޓ*LX$x]l35EO|S#4t<ι{UbNx==wsaPPA;꘯omVu\1t29sX\-ߩ2].v6.?}/kЛVw%hqjgnqs?:WsLbfQ5C3iy$/*P,qZ Q]3D'Ѭa3vߗɔ0C(S mSymcD1T!qЬ.z} Yf{nTY;Zh*IIrI"8iUЍJW[dBe "q!q8d<( .VPcZۿ4 VS|PE=dFxnycY(D!mn<4\ [5CD g ^wn>ȪL͵b -z!>Hyc},Yl#IfyMOl)QxN@ 8H>Owm t2͓uub(U'܀Br6Zn-.d| r]sWrM? p̖䧘:ωueFHke(㟭JJıԧUz}!T ׿^Ҧ4sxHP?!)?| 1OV ZU5ffV *pSq3+U͟O`yR-(ƃ5Cq^NmcЧrD }u [M+Y3e)$F@ ;.lUYͣ$\S0߂xoìBlܪuAIٯi:7N݃ipjj[7z#)d<л1gNƽγ o;o3υڐ}*N˞kiM8YA̷DeG/O?>^]w\9FXͭMb}S\ar?XJN=4[. Lj[d@vF-;~BUsJuz5#iJ"˽~|Pg'͟@'2q\+ӽB.L޻?J!_1<\#-j>c$˺<Sx;ñD?.}dG R覐fy!D>mA*&,(d:禑>OTgɵ9ծUH9Q* k]  VӺr8X|I sN~LqBxq!yChz/?bIW`uXΈ6ܛMZ7?3=sG/w"Ő8iWQ7!c.:3GA%ݯtNhg;wJe)Q%l[q*}r1܄YC:p6ܚ lI=)}1kV3pVCbH7rG3A_i$(Qmғ{΃С#')^+^i'6bVݩxd78 wM,týQ徲kV 3`$joB;"ǽ\3D ģ/D@RDTvb;Vus+ڵ2ĽD۸ ] dMv/:67 l ",.ޔ7rkȪ` -j8 f:0|޼ _W~v7 Zjy'L0QY / Ag9iq>]6nxqW΀'Ў>x{,oJFk-eXV^'w+V5`UB uS9d-,8̃bE {T&WAeDIR~t,^s:`}3WE\nGY Pבe`#LJΆp}N3.'~VK^+#Њq gxR͑(H%h> 4ODRi1L]eu'?ݣP5й_\|qNP0ctϳ[YCůvB 6:.:+$X-/I_)\a+h+ HhO69 F)ɏz3 4;p泂l]1R<2mήDxH z} `9Zw쟓I4e2Kq}_kQDR$آ9 |P]5*XI&"x`hԉfX ^߃"g,(7Aڷ%f$B58f1:K;\&e"j,$u_ vzS"wx g /u"mQ@rw~G &VCz$¯N>Jdp[ b#4A8\0 ?Nv.w,.VD%0Pr_Qr;C)[_vs:l[_'؍>Rd{NL6,[PI;Iv6=o]b; %Ù%0l:FGx/]Ul;6!o[%Xe&]9Xл >^^LK ,t0'ԇW|~)/iۮypa ϶c'ht^*g8Y4T9'E@D$ (HIv!5)c֋"gnu8W~ZD?b|{я`'}h8f9 2P@yq#jkyW:#d2MsnSMã B:iv'{34tLy`?F@ cSRʫᶏ=9EPc$;;ZHqSLŹ4)=<)-+%:?mJ[ilH("-G*W1)=DYbxHpj\C3Xxy+n$S%F,e|>9~%h@mSEr13 [%>܅Z8Dl%X<ZHE3yN?D՞Q;TN@f`Q5mGAT1" YˎsCN%Ai%Lkr󞚉 JX} ʕZ0lba3.S;Tz6:PV S~7ʼg--ܵČnid['!$1ZdHȚ\IN i0۵9B:q*W?-~1\9kA⁄g l X= &9s(\GH~]R@CF4"Hlh"J'U;Yas͘VTfa` n BgAo8m]B8hrk XY\^rQZka_.0󵌱PL\[au 4m"&S=띺)P1%I^IkŹ  ڮ%)v/N }\G5E`XFppz&. dT\̰uE`7y%1T"Jd29 L}YD|q{-:XLUlGJ-${f+KwJ|!Is2.]hYZY [Ҷ&ʷ'z + sm<$裁&)`N=-:7KxBpՔf0o,%\~*^cQʥMŐ"}6Q" ]z|HJbS)+,[ٲ ciz:ShrNej#ujX[c'FqKey ygb`:d(ĵbШ^Owl#%U%9B ڃcFk7+y !v89]'"oD]+i%D>ĥT VY28%Mۇ! l/(sH'kk̿9۱`մHq]v{ PUw?!l ;uYmH)Nx9c'?BG3v!Xk\wv#.G8q8`zgf?b+!{ ,HL\LYѴ8U; 5pu.8Z.͑~nE \3y#mC/AADP]=;W~-WpEhˎaٔkN5BlWV*ڥ|`E pԞ:5e}(Yɓ \y2X#u\0gި=`n&[Wl`yuEhxDL3b1lAL8˻#lG2ƴ\ s#0 FcT$i|S~&]Qpx4 } B|il&v'Y{C{ޣ2Vקh1#%ZYfC tcI8嶞SGRCN7%p=5:䊧ťtJ$&GБ=HKx`aP[k񰨔2C3+>pp*;OoPs'B=ް""V:8e5!"h τǢ9]]6gҊF>\D 9Wf`$op JO(Pye,*&..:CUY |E)' U(p}Lq sgjյW!vD- چSG{ߦ4s@ቐ[)?dBURw< `~;R.)&S%BAsU."L܇4 dw؃n0&uGTXaS͟ g}i,QWh0u9F9O%nTWtH8]53;lOI`=>WzsҨ.r᜛>{0Afw uJWO:j\& w`$뤛5Y tS6`!'qr4T+2(ی5&HFh8^ɈGcwlQ\]u/G4>@áCz u3>V5~ @#Q⚐M9_8i"aDMֵC?G3+P܂/yh3ı򡽾EM!cD+hCH@wKs>XiŵIcY]hΟ`V{'TO4$gĝdϰ}W*3}L;v8;TZ0]>)+Seҁ< $ s, 9܈w,E;>i{z]Jh,4rTp9ZΓ087b@0=i< 6Qȑ+L>[`}M5.k3KuV(w(~G8]ujN[`:3uwoh7֯ĭj<'z xw\'\%1[IR_,T4?$Ύ*ZYeQ7 ?YD߻pԒ_F֗l׏ӑdw923.6)%]& |:r|fQ4x~W8j qq-yZ笖eQVj,斱f0E\٫үdlh4/&-ֲJ廽ECOq6 !"*dP-#9trQHOu6~Y8K1'#T׀1͆1~xFUsQ@[S_]dC E$=](8e^k0g´<վ!ڸ"gFP=?.phJ$Ǖ!xy-C#:UteԼbN4Wo漰!s"[.A Wҵ-;.CU)(ޙW߱~Է#"gL[ b9(U&_jZl7)U%-h PR3̻XtF?:Crc6RHИbYBM~e_|>!2!ld0gnJ +a6>6i"9%2q {yޖ d-ZؕSɐN  l`uNOܹ mfɍE~B v +REdULLM1#߈XPY0Pw?ςiCᬋ6*\ȩ=l)R+sOiY'R O$_wjNX/aV^S5ćoH 5!S7)4T}:!w-}poFjn>ϴk  0-k^Iĵ@Y,ƒ~W gM{7/I*v (8Y$9QXUXИT:J<ӮE\~Eu k\61rHsl McKZsՔ>M (63 px.jGJwOGMVoK!ɥE-ݸj^RuDo 7I_g?a}{&A}ta=4 ,0[x 74ӎ`#ڗBH&?/tObI+\c];Lq[ /ܻ:Q xs57^ZvV}Sd;u$c72#M668G r6@^D2XƦlppTҌQu !'qβf^2ka>5žP{Q; ~^bseƛM54{h 7 03ќM^8%zxW9))5NαҩE<5vd¯ ܞ# >~3L,DY|2XIҟrRjB*U鼒< |ގ,ًQW4dKGC WF)B}}YOgXPV<+Iz#9h6;LZhu3>^JD)S@i iwp(.)ɘ1`=!E8*%Ƀuvâ8veҚ*\,poKX2U(ghӶ-C_j; PEwR;QR MMSmN?H}U7wW#X&TF@+s br[A2JiޖպlJoh^^ANIEŽ`dXzMS୒y#s }p{4 8ML;izW%\Et ֺ`e72۲I!3mӒSgѯ7;[;19dٟ=TTST/0H| p4J0l=Bj\5zl,o!SlD􊄾`s 5\̀7OL%_i m1|%pڻ ־ǝ^'%7) Z(nj(Es?㛏-Py}q48V~+, Ka>q\.&_A?QL]VQ,Uli-z$'7a(ǩOe^: ڑwfnOHUi+=e.a-wEqh훝_{_>iFT}qR+D|p 4ksRuGI,bI>#LLP遳tRά/Tg9ux6O'9$%h6KR_Ƚn9~ 3',jqa$x )|iHt QݵҐo}j]!rVsrv--˶¼.|Tg+I6ohwyu4%5Q%29~/ ⃬m8b>:-I7w+ZChF1n`h#]*RK2v]oowgլgèH(Mnm Gz[+JDd)fpr.^n>"BYf3ùK>Jŝ%)9଱Dr `zoz&T\3GTT ڤW)]IՌ/V@tUCNVÈes:y\/?XZu?rX++>Kx-4j!B%U#1ǽC]m>{?yHR2 S2c*^p͒MUΝLzP١`8^ zPEnu|D.N,֪ [1oS m"fit],uܛBZeLfFv u Xڬ*r^yq,;[:N(ؔRNM :}Dx5?=CQYD39(";swWӗQ`_uH5 i'$ <'/TG+waǒH[~b{WC_*>Y^j5o笔%\mJhGtRwC1'AEvfi.Iגl@LY-PN@е{:IlXh 6*:EFkE!XtŲN=/Fϱ{N4 bs VE4zVZgRp&$٧vm >nP@rnQj5.W7^x'T,5U9!@N5pbŜ2$kL.WXT.'*&Vq"8XѢȌ^E~b R; شD|$bOKD#㲹NE/lS綷K?jٱq9p*k\DsãK4P7K;Z,\c \%Q_yv|+^gwO KOP`=J-Y7uW9hX֮^yh ~ bhYD9#afeB/8Zk]~ j,9~!~AG0Q0; eϬԳaĨZ+'L,LRݕBj;TbeKO ]aPYpGe/ ˛+O7K5}7{g0D烞:aD&qfV/5B3vH=^5c2;J* Xip)ώ+U5cU[]{ZN۠d>uoiRSO/q ]4&y&<xb`ږc-ÅoՋcY%?X(waR<;B-[kt&ijtƘMȮb+wH5 3dOԚù1j!tG&յ J5qrTm؀,3R[ݑKa PBEfIM;ED?ppdwOq aА[@O߻>NM=u9HZX"ճA?Za TU >_=VScrALLN>h`!zNhT5.L\H`w+NR朆y ^lF`1VJ_(/#{sT,bωt~9>_G% NRz AL= ׵=RgN/u4) *eK uS&%kPOrBw[bO)q0edݱ z,;+9}hdB̦_Ir62^J@JCT"*T0D( -TQ 06b X|RqT}_r4]Ԣ͑,-0BR}('Z./,U50'mM"19(c,Jb0jO@2Q< weĤ?HLbiTSNX>?xV^dzcy]nJcm8khM>" EAyɞ>BBZ 1wgف iJ{dS4Ն q5n%g9޹*шqp ՁLreO*̜{H].Xr3T(tGP#n1HÁmҖ*tVs3T3._$SBfgXQ7BJNa4l>NT$]a:+|]pȭ ʤKBS%J /<0 I(E,W׶h?d%/yrg%IUV.iƎd+wC 9:cDFć$ :T!@]W."ANnw92腅A1C&Ӹ1 Qdi)ײ ҷ# n=F  i @{`2ԦbF*88>I_gA\_̌Zz CQ7 0tzr_ 1cH|WoP!E8}ia`]9fԿ1 G"XuF+ؾml9R1'Bkl{{plNL=Bpb@z5l+s oq?\`g,Ϫa уn*V99$9laŻz %&zK}LrFaֈ#R ȲM0Lp8}^*0PSlik6f: п[R9Ӈ{S@%/ Ҟ><U1ȇSJ$Gl' 7aO7t 8:Ոe&`f[qXkK ,#Hquޏ&=&{"'Y`X'Ǎ!j4]|NNXZ$}>T~E2Ԕ`@Ut/o,ͿReomL1!d_-jg|L8=ٓ!FtB<5_&r7@~['9ڊQo ~olk3W+KP;:!B+EB-äW$rcDo ײFWZǷفr[Ln-噟,*D5grA}ɊP+[,[v=wu/:/gG?8Zb)k͔매Y O{--}}<2ITmig$Y&Ż=%5QIfxK!VۘOː}>7B6vA>j!$҈)mPerx~?Dǎ{xw V);bl9AofכEdL_MA7zx8+BI|`_ 3m.Yѓ_|t̶8WZ c9V,^߈U:p#7X94H7 $@3=c8 ZH'u !7w%ɌmJ Ą䇏x`jzmQˋʼl(Uo[]&;:M8] FY@43|tvu_i8[@ KE08C6? W^Eg+hؽBvBe\_Mg3`LOJ[Bf'_M h D6u;^1އ=d XsTcr^^+ p]vD@Me^Yck9%VCT`Wz7;GTh ޏ =ע!n g/V&DVLqEH;AKxɒS3RU,xeJ0~Oc׮yT?K +M]ZelQU(E2F- QW"s%mvM.N; e0N :NJg:1I?;>RcJ@..OɎ&Y#GK` dqssɂx{-E nw-`Գ34x҃i7M#7IjsT,>ßb[K/):F ^# *C+]Zx2° jw fzAޕ~j*o6NIѳd01;j)݌s "JP1q\rHiÏ+WB3~S 4=lo8Dew X`_dx$1'93gel[8,LD Zv^|HLEr 8HwdSy#;zv/Tdͧ~X UZ D5uwIVF BQR-V`⛟6 mJ".bړ]-&Ӥ˿NZ( DcU/<U}0zəLt,E^]ea8V=}#Q_M97C/(AvMvրnQNTFXO{&)µwW щ51;H{3gMr,ѮMa~aG4!r M"=(jN/lfK īK$_MPTƦBq6#]+y(̗c_~ -j|G@pj/qֆՓǏԏn3B#(뢄%;t?ȩj9/9Zh 3m@.Pn\'VQ4ZQe9&+ϰn#U?6pFBQ}K\Qo0}MQDT7 6>F#pks;I{G Ơfy;Ю'2IYwd v4%qFQfQN?K [*{:<$B,*A1fp0Wc&5*u[ԞVÙ G͒lΫ1V?P &wb]8uU(5`io> ^d"ϐKr!"N*$F^ND[ :u0^Zt,Gُn\jp/+g#UBܟUxʴxlݠa"-3]kAu}bZԬ G@-nL";1,-X[5 &0ހ\/M0D l'oGKUFC4ںTE헇J 9TӍ1#]4D&i; g Lw]fJy)]Ӫ̈́tK?R𸴺%JCbX_OGAv>c'i [(E/45rd6ˍX$;5`&\ dLədq&'pطES}3dZЧqNGƫoN1<#/[A{Ec{MR rߔ)qճh0W“p).R^C^(/x;GxhyJA SIux8uv,;;;_s94 oQ"KV6G2+`3d~ lb)| 6lMa'Vik'TZgby;ҧoGD6ݍX3MY-N+5y'4:b{JX5shUsN ऌRp]olLVqsōidW0H/KHں?Z7&?j#}q=$rr6v22EY-]!Sސ_GH*8?$Oaj&dKSM!)Qf򤑉&yDwvҸidZ \4DnkΚ ln&v*L V}v1Pk7{Jσ tiwd&|aQG홎?fU)5nkۻ&C(EڌXH {«Udٽy[zD%3 @Bdl GߝZq$˚:~yL@/0&heUuUX@"E_WirMiC!똅UPS7~u06Eq(| qk߻DrEVڧ_=NaRHLWfp^Ov?'B\4"^hb\T.Wx.mCU]lN4I&,*KIy %!}@9}ϼđR] ` sB7_ PWS4Vݐ{ЛIth5:_琧n!;) 'X~)_>}oC)8QO~ɻÿ_S Ns޾B$ye &a@pyE>3 J/qT a$d-q 4FA(חT}8YĎaVO !ePZ)J_%~E&R'=W^a/)(v4~J4Ǚ^a8UX*!@H\9XRUwcLݟf7aUK[^nO,gwmQM DҴt='A W8ZjJ.6_nĘ fq XW35/;]l`a֕k}5}t$-_L+$Hz\Z_NȏB`t]-LgF&4pICu%^GċȈB4/LdG)*d7_eP`8X]@SIV3̅\;MKUBdcCҩ(ŋ-=&]D6D`8QkΑ3>2sa[f0 ZYuCD(g-\?&!L N\,!"@R ^ŮNUT_obC!~GTYJ'df2PiɶyRXL'B-Á)1** ?fNѮ#e$Ƴg=~5fuHUVČ ݤT>:09'Kҿ7Ÿ5홏&28័j5rdf| #_! m}knGa6\0\1jvM%1.}a&]-GKU4Ì'գq5duj%\.Z>~7R٫%\yZkY' N9-Ӱ gҝԻNG͓u)kW |Q*=i8':wXD^*iՂ" Zz!̃ `vDBWGl?~71_Ip6[SjIV3Gq6e&/nV>wpж& VZ&x46Z5NXZ qrplmx[e+!2=޼9O0d`}*c~N^X4A( z'++SH|eqUzhC5S`(ΌZA$:wѝֵt?/|K_N&-K5Feo[hK9 1߰^F鬬Nx59*2K-!rȟG_^Ģe`11hFTZ7/+T/^T*\s#Є~z`u]B뀠-X7_t%>Z &G>)Hv:Is y`fp5_wڕ$@x4y]!t,\gB%.H]3 @JpSah%ۉC3]ϨKBRl3 <8:gαZJD3*'l@7ؖ[cFp̛LHMGП:`_ޜqrD"'XzYVٖ5^en2Zs%wF[!X0R5ߧ}m XLzJ5[ {]{O)(V.G=҆Wm|A$۴t5v* &KƖ$ J}h$. !J{,`J[<\f?.$KW[PX\EZFlwTM8bPKeù9Af/djmek ʫD/P۞pn]~\&a"X\62A=lL>d}["5|ڰ,$sOʴ) !B4USyb* >roSuMB^Fxv$?q5Qxm HǼ>hR1pFMo4B[hP`zB]O%" >^1'i֏d%sSt4%?6…^+szďNm]"G,xq.ų//-I@|*@?dY G`OH"m#}r !;4uzԿ2xTj=*XSZ+"I=L\y97K~ ؞!\JgVvP')%cIh\,\ne~zgvg+bHE$8+R&dqk+g!>݁h/romʾ/s`EL;7*ΥR1@kn39.V\pڀOMi4Q[^QwHO[fl/g+)&p~:3+3 <9EDϝbpÅz:-kK*NzA@L֍j|/d?Lw| iϢ [>#$aFɧ<$韝쏟(-4t/ nij\|e.=բ1j6w,r8e5x4ͨXq{i$Yg5@*ϱ5Kp8Kx.F|bkXQw ੆(.%\LӎLc&O1"J[ *LgV 0prJ,(F%vɚ8z ǶU.r[6W6Oy4$J/1Ee݆dډu 8+2R:w` ֘;u>`"زk/;B-d2axV tNè `DQ?_ס1vD⫩3vQ{t;(y> +yf<ʠ0"!Yy+J[V, fܦY]OLL.VKeD*˯q.wtsUi)pò $/?iѠO(2m6fJgPo= k >rIe*Ch nUEb^Hx#fogl0)j#';ƶտ,SNoTϑ+m>^l;U(3)TLzk f|>\[ > "a-纫&$'\k뵑Cv~ f޳A;)jg0!TLK%5~9HNT@UzTa]Tv{ hJè l *U aLIe6XiΑ*$ 7@Ҋb5u),G2;3̺RPH{fr4.Ђ}mLwTMԼ{zydD'LLWͮ!w>\3nZ\\٭]kn;W>U½Cم&t%T^(wx{娳gno\SYt'Ϧ&RU0S2Idкh(aMQk &*O' ZvP"iCwdHx)vr|=*ł8ɸF^-OO*xŤy@P&?IB^ Q.h֗)_j= iH=|rw &ۯZ~*q%rq; ~gjo`~ b}bF:6f NĿBg#Ԥs´TUh@!m%{}A v1.NC8OYy ~l/6n4=DM|kf>_cZо.˳g;T?͜ ´Pcx 繴|ABmY"hbDBfda^!Í7k^N&C.i0>To$A`vO"I5sA$e5HaM0G:AEqTNo[>]n%0ܺkmC({gNav gם0>$L“9ICU*Jv|Jv y_?bQI(axO "79-&&[,36\Uoy Sf&ZH/8u Ϥ4Zj7H1PאO;UswuxC*˧lbЈ4F+Tl=txyf c lJvihxKqgEv ~HB/Of;|jĞ#E)8VG kMms#ba䳊ś1~v5#ڦV3ߖl bntu 3ǧXZa3Ou?4"c;R}4G.VӴY=!9*{ HZ,h DD9aSr۠D-s7X1~Yn)_*sOS7M& 3'MU>Y*1%%&6o+tc#HZsZyXk!M7QaW\C5:0]7m8x4Y]KҾBshVmXa2es(PJV`bСo.W'4%ƮqgX_PT19pK![uˬ)qe 1!PԥZn17UčhZ?2I ^$ Ԃ,qRXTP:6b3,.&9c=Y˚~k7m7JI_ qp;eSisRTgsnqxσv~'h<; !\io(߅oh$ȴL@yᓲ;kd =˼i xH xJ'Nk+9lm۔FHMBf~qQ(!Vqd~: .l쓐gLY`$vA]aYXcPbϹ[m4iͼ@As3(0ViK&C% P1h|A7T+kHL :l>yh`tiB x|xa#VZv9WŜHڌ!7փDD  {=h\eQ|ZYb 񥇃?⇃LnЀs)Z5Gvp힖lWpquV#ښ3yP(qq4A]Gz?aR+4YG|s~=H <5 (C:bW>lu~v`?C![Z?.d:#3KvҦ~W0 $洒d{T]P &PbSn!%KJ├Ԝ(ex)<9E 9|7w~sAg Uf;`׶Yc|lF|Λ)ĺ/u$sy+`YlZO6 Z!ϴXsh?]~bal͈|]}3b08Bﶨok Va2OҽoV;WLV'YXXژCf8Dt/Eq 5L4I2cyx,K$krպ$\T5쩲n;}KzIq0\[Q5C,<8"k4r6|@h+bbD &ݷZdh;?VK+U:bWFA/)w&g//Ib"2w%WD ~( O<,9On!ƾ"}; d<#L~Qi /"`FE}r oO,Њ+7N`K5lkC'%@cb>!GzmbKߜ_&!k bfӍA~J;$G0q].Av?CϙXZ # ;DNNdR1ܖRyO^s@/i̜j4:pa_ l\ƌ( #at(F-Φ>Wp,qXln"6gE]ڦVw1Qʡqfk젝{/XFuIZ/Tyrc^kErOh RE>^GI`(Gf'ʏR;+wemxDH) ~-zmgQ#YXF1'm%t j4arC關It51;l@^ 35(V![DI|߅/C_`}zK%9d UBξ3=wt(*Ԝ# ?u[+J!_|usIU[(<|B14WŲ&46j*~TC]e{cL`xe)GH[ ?8TR(Ǐ`t$O5־I5oʑu %~MBxk;#:@<73 wj `+'Ay6Z %Íp/]N(2 |+|eelSEMH E6- .vhSs1@KƢȉczta5JD[&X}l`3Э8]=lCMxBd_FKt`:(ux "7㋝(f!@bi&&L]kʊb{ }T;ӊdaIսbNP\mYgՄNG>^Q9MXZ'$)I1 1(D|x`U4(1 Bt[.;6ąGgbZ`{0ohn5>I[[rGדDQkh!4݃]q3vyH%LO[縔@Lߡ2b:oC OM9~nt)~L .V֪MK-:閱Z\al1h.]^z٩9jňtk'm8?@j^agJ+gTi։J`¤:60qLGQN#` $nU]P F~5fUn^yhV+~#9Xz5yTYPFɶM L By, )wۯkVjDm2Xάy\e B8o擨&$nW Q5?U{,X{ߌ&P3!W`T)ʼn]Y@ٺY4EWL#N1ecgD( ܪ-ֲ g= ,B0S_qdkncݷLo^ 'ƏW:=k(aRqY@2y(9 -g> oX)PB"r/2:<ۿ%PQnzX=i \:)/40 @l-W#%;Kkj>ּ Bɸ7$욾QL=@ޥ{mt09zN'_PY}l yh)(Ϧ`5 d!;[@hn(eZOU_QCK<rs$*0Ri< oۧ@~ I1ϱ_#X E D8>nNLHi 1L!ץ\O- J=7}{`.&#+26A[5-dc5TGR~틙:rZd1UCY|'8PC>_@h:AydW:wā mVOMN86ٓ*yCqko#wwz pk-}oYnSӤì8 w|?dž?aO߾ '$1攫&x91 VU!| )0ZZ?Z_]lT1;vҦ7CNtw޶:x$j_xy}˕oG\DxF&\w/=@]Bvn}v!YtZVi K7Bjh;ZdT{1çBmC`t@3hK72]J+n(|dHK<:}7;Ug~ ,>kq.hw&n(]K.i)дr<I;.汉P5P1u|?4bI7І0D=9F"݋kѯ˼؉A{V5͊{{3f]KYU\#r辶Iae!44jVTC{L n:)ٝ"\7|ؐtHd]y&78x` 2BT`S-#pVB׸\=l3vWq:3$"1]2owɦ d>l +9 9/)ݵ %o:^LmSdl٪ZН" Eߵ3Ir J\nyLƒ}xRZ>>~woų߰7}v![.>;3 gA6CZlώ 4wGoo}Z-"FsJ=aF᳌ϝ4tTӑ !}k^-PLTT[阔Sw~TV$Y{ZU*fs:[j@^S$ b 6OanWI HGBs; g&Xi٫Oݞ$iJ}վHie'?=t+Ф,ɤGcI>M': ;QEGܬ,t{'M p~LI]ґ* ^Tq8q=!&1HQE"^~g:n}@Uq|j4rר_Y>*g :B3Ys+@2N{h`ک-op2?ƪ4^D$X~H6(D>zyFp51j+w%}A]rwF>Lx_q {;Z3T-̓X0#uu Fg]MĆ*>f%?r/{tM-mQ 0r9>枖yzIZg?dÔF^#>͉&Vg^R_MLC˛`Rܶ3|< wbULLc!ǚ.qJӨmy8u3/_`JBP'1!ѩ0piً,Ky7{rm-Ӡ)¥ ]An?ܞ)u̒z&e.`c&g,G"if 뭧s糯}pAGZCIwmLTGΤ@DKtų#3MٯRv^7c LH }<^-Η!^PWf:Zt䚕^)tYMS 5n:d߈YUd\{tﻂ۰/|vU;8B@cCV `? 0b[d#}l5PJ/<2Yp5ZN}BF,EءΒ`ctG"uR|?G~n4yF GTܰX` Ulj5aAoٚjǵQoixome,w(9 WK&4`/Kٳm#d-jk 7/_m]B@=O| Gp` Z5oO1U$Fԃ\۽-(YB0"*Ek'ٟ#8 !PZdUY'f7 v=ML iԷ<;JVSѢn*" ffd?(oLZK5nL5\0tJ$i pŖ5p/d,.[ם 왻e*#}EiR7TQ*EtNUW` I4*/v8oORuЂ%[EqYoi0@s+[(Gl/wu̾G 37Vݻ8mmXv kGc1qZ[6noyaMh6jQpl3<,Spe'\8Q^NL1"l}(]K m&|G ;ŇAb:3Bf}_U.m$JA~~5u5N941@y[ezy߆xw43H#JKAݯCSgsBslI#nVsZ5( ;!5奴_=5l'NJꑍ 0J lw18D^Vm&iu&N^l&1U/e]P8> cTa峳*/ ^ɜeLxqrH+s^~/"@l{7)"mG=,rXB HL:+YP=ƷJ] I4ńs꜀ wCs&Ji͵4#HuO%u( g]o+l0蝖:OSn&ycA?`U1i_aMM]ʽ;2jAeI4%Bh+V\j-6pۮP9S# z=(OW8Xl|c‰xgon1A~qNqs8#e-[dM r/Xj6̃ǿn0zb>/>yۓ:Z_Vgi uܴ$*ӓ#/d)9uB婿N1t` "Qr sQ?:@W]5ծI=hQpqvuA3(otrYIb9ߪ 3G w;6NҢ!~6*#XT7fN>`W K3A|`k~S;QFПG5<A!6yEEc:);VQ0ӒtM&~7ں&J_{7Ylz%V!C}\Q[fk^zEyIis RZH񺁨"A|,ltnN$?GQ엡IZ%ha^̠ذ Jy:{4qE\s n՚t7h0OqvY\ 9- {tM6ujQ 0*Vs8{4<ɢuLԒ}3ȁ$ŝ !wвm w~ -ac\MX$@OX{/-[ <ؖ4uSpiveөsMQUy5b2=RGs]Y !=>RbB?K+fUR3> v!8 E˔(OK[X_eW8/e~v!4G3Gȭ[xЫtM"'Y2hv7-jJ_]doPJ tz1(bq?T*t'd&Pg9"Knvd9!uF7`ڍ3Da峽U0G+%}tJsE uD↦Ə9yr2rKNz 4߀""*"Z ěp?jT93D2"lzY?0sU"l0ˬ_ z|ϫX(Φcr'6UHߕf)AeP=҆zՇWܩVfQsysN] pmu?0Ye"m%{^HA5b@(MZ79\.sk8qATTqx$6@=U\nj`D]H'k&5YAF I2Rɜ˳"8U:7]uܴr_`X^ă7S̱_3P!2ƺJh3ilFh/ tD6} ?@v{Pg70 Q-fXR(PiY,`.c6Cw63*uF{8Ts(US[Qzŷn[tPbz5LqM@n)b%3_DsjRD]гU0'loŒ PɛV!mUf%p[YCupjNb֠wȳVu.r~EG)J R P9]wRz0Mkc4*#mrlsv3-2EMBfSOl:{?%&vٌL\XUc1#_y:pl4]cS!|W$P8=D t'zCQ7X!bAG&Iv.Rm%'d_Te4al,Z^r[C|5`~dp?(;cl^<8s% GE^QEhamozu nY`f[:hv4D>V2<`$T+dѹ%oD;N GLF1.Є<Ǜ_,Mg^m"$  $1_qNE3+z:_AX\')S2(>cDV:Opeq^1s+/2LM=Aϴ {R ϢOB}܊N|z1:T|mM_O[JG&B2kU6¶Jt{ (_֋O^}\\DKEhr 6vZsҡ/?exxY\kwu=TV^_ޥN@OXo%余4OiQkXܑY&-0z,{kf_#t ^)\33$Q\Q]->J{œsI-w+kHOtBD`l\פ, 0^(8"p2F /dK)V@'eG<'.mSEXaV}ۈ?S7O'zVk' J:Uf^({{+>9BLWW D(μMEEtӡfI(8+k=MαJcvSy[1,PXGV}_lC^H"N(xCYv) P4'-wn.L]Shlѝk$"J@+V _DV˛vb$ s-OM+^{M^DB{AA +xΕLR67$CSP 4uNV*~PeVM4}7wgL# (D9InL6raL?գn޸o~0M k?vYOzg#ɃK~ϭ}FdXN+uAs[stisBr,&Lpn )䭈kë{srrL ~+kIk*әZ 3= o! j^M~rׂnY*5${*g@^Mt3+LFd΀W{;և\!UɪȪ Asv#u$tiF qNk.qݼ846MssvW~װ!YʝGk,-\FHI`޼7,9e[Er%촁BWzew0^xGK@r^2zN̤ZΗ=jػj,h4ђZ ^bYkʕFt*e .})5H- ^f]m,3cH<%(}v ڙsU F 6xHK"aLQ6pI59^S5GHANH( ӽ* k=vpq̃QGb$3.A4,F[.Icf[-#jf\êamjr>^11E1wJi"P;I̐(>L_0[@BGBu,:ST(h>ulv R8_Ga -pD9;H[cm~F/hQstjLw:D TÝ| ?D $`iέ+x'$\!d~0J\ED8":JA"nL[^_Q!8ԻU=Lʸhbqi1>Oc)Z50o&zp8Us<ĈwvN?}O Y@hܝ//}@YA[ce^ArjMiBծ uU]Rep5'9erk@`cH{-piRH*HaY#JnA/͘wVЊB2p;Ko@`[A 'FNT '-);iT+uXeupԹ}U]݌y\YkD{>['n@ UR(C3䊾@a۠<鈥SqlP:,Eg&KUsMkt/d$M ͷ5ˣ9?vj7#r3ܙ̪֘z$7"8tvU*ϔ;v/B5*3qK~0C&o*72:'#SWtӑ E8<ӼL;Rr|դu˙ߙ!\vݭFwEI`G[=şjELcʛ GGS?b߫yA(J?~D8襇BXڎ;gGyPWb.e;<``^ !t: qdpNOӘՂ t&x9PF J٤J8vLyq%gE>U@YA]$;EwbC E*$GZޓpE$IIKX!ţVcBR;ŤӒ|53쮊)m:5f̐G9@)J7X}7!("N~qƢAȌ+nb XpsGS S3J;b~8I'$_4Gc`2W2o^InjG" 1HKl0!S6iq!Xit |jdR~U}D3H}vuH E sNp--UY zw4 OgWz&!$3jb#jv\hYj4ύrRm&Tz ӧ2V(h6PQ\=I,oZi^.TÖq Jz+5T bItδq|n3-#|1- NMonyQfcj4\#苠WzҳDt§&kK'[=aGĤ,>F)1!V;vs\ҭI,pJ([&I[$ySghB+JpE:Ҽ3c /"nz58#\K :?{VJE@HVLY\\{;v0/)Lƕd* ,V-2tFzunmG^3  6HTHF hkU;֗"&vb@$jͫb7j!4 V?&S/ݼ,}wD`_́rBYUf{FXIwCw펼K;K=Y;e ~Gz倭e%rLGD\L~hI-okȊ҈L7E@X;98?;̼W:\w]H4*JZyPVD>~ `5oE_'dIHPOcXqilbZYft xa$:sn+ {zi()#7Y} BM4n67O|ʍG&#&`tI ]ƒr0t>@!RXx܊yغ9T%dаlLѣ}uY0'ƦTH'[]9Gڻ$SrͬX1\Zf6ҺNDLr=j) %>K-;סj2Cb[Ĥ/F ׍>%^5FwbeV2b&~Z( ͈05inͨHC6^tL)U<΍A3 IuN 6zJ!26 ol\"iTޠu\h5Re v+O"7 +r!uӣHr`ړ@1z!Q\{ @Uv/xy)rL R#Ȕ9We?<ԸwBKxX8%띲H GRB3wc{5;cRvM®nzv4815 ms qu8V= T)Y+h yAnkW&eSLfd=Ug #S xʗYBR}ߓfL2D mMqv_΢_YLM"8qd[+fhGb"y{$S7ab =JӒ6XɉY4 ) G%|e$s;IU";=,T9zP{Ҕ#7+<-K< mkT͖8%^N:,M[ 4 )34_USn-6㒭NZL*0.'n,)!I\yȽfT Y`Wn)yQ]7KO1`b/!4֖=T!_ќrx6i|6XBN, q)}W@]4CĹd)~lTR{bX#8 UAyW)ԛ{ TNbc-=؇vM ? >ox)3zgbbCY 7[\FW9.%`e*ZwI`hZp=]I@O+!ps6a^Vj;vz65yP*ꊠ$ Ӈp۪bgglJrӋ8KHvM:O })4Շؕ|`̣2ϗT-u`,vn)r3–uxZn!S :qKxN}3}mo"M3 n.%)w v4t\W]iV}}MPkӧ_D" f@O{k$H RS+{ 947+-eϋAuRJ@Hhv3_"! z[yq K$$k#+䈢6kr!P;0J.0vj6 U 52{RGSZ3fd SBGl$$d6m{N6OI;(I >+}J1cP]N3lQX;! |9 M˛]N9HʕZ#Q7+AVg !rTD5vvMCHrS0 BAuK~44i~ͱ|2yO 㿢QE$>T &"B0U532 +<^s\s|iا} =Kz?x\'55WZZd4Q 2EK.Y.>5 \ T(oGp8L" m7 @. Cv%gNhtJ}]=5&+{\4Dx|maD?Is]${s7MbZTu saT,Y/ˤߤek=\6iyWȞ\iKjP@Ng9F1= )wOA-ԫ/s\xsN~R+{-KYz&-zs!riJW.+U{b0De*-&Q7ga9Xeȉjy@$Nيq_O+ax:IPYV0-Cݙ[}nf*K"Vo.i߃8Cy]_vj1vtߚK]&w /˟;. 6*T! @}z'ծ>f$Ě^ox? F,iU3F4H][mc>էbAzL|0ed~Kn :BmK|?oeܖAޛ0G֧_)y5֘ZѿVXwJ__tzaqC:!Ie74. 58k8㾡k*$t~ k{ym>9U`{0UE]tPg W뛏1á6,Ok}͠9;^Q}?ҝ,:KdD"ز̶UC3> }cbI S{ϱ٨}B|HM֌2UI;FgJ鈪<4&zJCcO=-*lH (biLEuFN4آD/QÜp҅L2 世U=8ӞEմ8d9g] BM“4n_5Y7$qQ=y TM . tb7WM,NE~ i39`+i(8pW؟YGk@fma0\@2<(UG$r-!EԘ7#w nYnE.ge`v^(>;\5%.ibW2BBW8&F_yx]:yVsFhʹFys#|0gM:"pwڔ"uJ&6gIQJ:79ه#Rb<Yu!n5R?}՟u_#t-a+Ÿ#ov:K7ժ Gp w-Bdm#Wڠ9hx%V`3Jᯇ:4Lcb7ԜP kL5.F eyo }a8v6&h%n^Yض7sH4K0+%=ШNclwLy5ɃDX/8w!t.~g]F"K736N өtp GJ2Vl@!`Ei>xI}i۾t E41SVfú|L_o c094KLw W9+ X4Xf:A)Mw0}8opej12^,neydH&v4ğhum(Nx`@5a3@d.-ݭoM(MD8AU}Mhb>ؑp-~Zk H25/S=iOr1iFm]L2cAWkѥL↳\LHᦚ%B1Ummis'ut- @m&йL+_~ Es9A$5`GKh8޶OFzWG:^8]uvH8Az9=$ P;.kJ6aD@Z<.DG8@$ `砋OA!IGs iEqW4W<>G!i,E#n|iSo8*oTqgS<=?7+ӈNuM$cKB*j,hȄynWXaLa1y)ƘZ9z՚G-}dSQ4}9@:tjJ,vih<*rǽ. N"J[:$=C0'.D7xUO RK *ȃCƲc&xCN*Hyn<l_z k3Gy `'ޱ!ވڮNAVnꋸ"rժH_:+Oyhղ >.bPkeMٍ7rZW:6B\Q8τ|8p#}!V{urK(- Cʷ鿂 ?A:$G6驁"b 逆{c,EHc"5#hkAjrV<(ŗЇTF\֢sf?y.RT>Z\n|eF1#&h+a<^|k#l|>d׀j[y,<K>ugZ?ȂO:N 8Ez\ʈ-UeF5"^R+ŇH]N1?znX{r P̏6라%LFRQ`wHA峔ܒ~ Ƨ "f%nN?IJvd}ck)DRҁ3fD"E<-uN:Ex j<@\įh.?p,P4@ʓYqMQI@ftaN؄EITJ$_N=W%0#l 4wa 񖾩L%%YZ0,t썮6 su0lՈO!SB| iⷡi嘙B>&!Jťt8`OLDžf kɲ:煂ρ,x?2?۠hx&9f,dK"q5KFLqb0:^նx3BUI``yh MeD_׬%|nED/A(̵o0.QWur!JFr-3/[XVƉ: PΘO'e͂`NN7h7bOuhYR½^h G9U|pͶRhi+Kj5M6dmfMA򂑨 @4D&DF4gߎ}]m)> z379ҚahzGHlpFH3ntERM+ת(csݢj\cpSt1 ~BvpuԑVa" rS%NPcΖ1Vw~ DŠ[K7 ,6IN:Uޖ[/Ì*@_ҝHff CQ?YAq'oߛ۲=`q$禮fwD0}D7m>(p:3riP?[C?v>3iĄ< &fdyQ~wJ,x?ߙ$&DmNt&tR[ 6x-E^I}+훌B]_b *3?"]:VQmC>l2- љ?;,Y%Fˆnx -=M*=J6o  mI}WΛpNJ $ϛΌG~ѐ_QklPʦ>`"?}̒/3k6|m VV!q}RXfU 4cF5-2&)2R J)VTS˕x2 Ԃc"ى, H ;q<@}z/_}7%hG:`{Z 7P1\ţ8jf@«ݭh[0Sh{0#Фν^)/tW] X}vԽo .񇠼dH0:EjTiԺXlXχy4FfcjT#؈d&Í}^২7eOCT[@FNxa% H8 Mn.$B<ށ|D{m0e"N L%yWn0E/(7nuz9I.40FyԅkӈpM;1mD0q-5$;%Icz%&TuB~Ո-F EWN^#&)>Vơ-؋Y O@IX~;3G~B"}beӮXrqw#W9z95 d6 \}[H9ˤǴfxm=@h*kpk6XQ8]KAjIMwICrSAA- O Ie8Δ/u,p1Jejȷu @5VУjB1,-2())/R:~\68X::4/42u_aAQsG}+S5ʔ`|)^ҳa;:+$5A47Wv2vp\䥲{rum4ƞY? Ɗ+dkR4/1C=,SOs쀽mc&П*QTg בFw qJv,:ShFy!i| ͺ1',_A_5rsa9To؝a>mN^iHJ揾@WkD=av ןkRL%57?'zث/#͟J\wq% Wa^DGeH]!4YNW)y)8 .! 1ZؠUJ#aSZw.~gđlb\hhuDcHK,?Y|+]\bk*eCd']-ITϹ܅~Daq_ꈴS8>>/?$y.sԺxD湙&h=Opd,WWÅ<v ܩbB)kpxԷq\)仸:tPkr!c R( d)IpX 5r]5Wsݘ3W"qz[&mUXw1\U5Q8$$]cj"Hikn쵤dzP`ѬK[)QSA71$W4F&si2mIO+fϪMq@(=lnO5Â8FH dce#J|SlKC|Mg ۖÁ*[7ՄH[Jiu:'"<:Qlj:SB$lh&|Iw)y6#k p7gf8 .YUd|=BQ8,h[O Zw-\WܬGr8clЌCN~l;Nyq,$C::?2uXluVQS|#ʒ DjD:<̰ëvß7.D_ MRYW.>_:yS~(ܵ m/F u"No&{6ڙyy@R U򷅮efo]J$q(Z4AP1(u~Y=Õ.@Y6u-qU`UK&ld. C%LŬ U|U'Y7ؐ(́kCĄ@kl !R*cM)uug=R&##~L.llc=G2nqw5i9639!CiD[ =j 13[o.SUWY޸UG㯝(`?w"N]8a#ή Vi BcA k~{' V[}8ܐ/~ F 0c+H/j^9jdddm "mI3rLEb R/]L 9(yx'fF' fsLʒG+f)^#itWџz _.ƓR6[ ^`v9ƪt浾%C f۞$}HU)Xw_ bePلˇ>1vs/W^o:W ~ǚ4l34sBpP跅}OjVf{Et%;ӄe$*1.~jxZh/QO[]Y0Bz@C!(oՒcG pzhl9h}ZsAsmkzm;|17\`U&M:F&ղ'"AߒTG {6@8f)CsXq`s81蘆H]1bz(01zIMEdݛ8 qTQEaMTnyufqGxK Tü|~Nȯ$%L"/Zd׮H=>cCpX@6DoZbSU#B>kUL&Yeraay3a\;v(#uCut`NYNI`\&N>ˁ!$:M0x.`00!kI\\l.,O%TMRŢ_NrEJTyxX(.W@-zsXGFnk+Sg%ǟ,藮#`qr?>T‰0P6cfDl lRVئ# [krCm\i8}(S$HЉg;G]yxwo?ֻ~FR`5~ѳtOϠ ?A7tCh6&ۀKթ8V%,~f9@<Ϙ ra?:߾j+^Ds;_tF+-BlI1f B @ +*_IԇWn/gCJ*k_r#F& bd _7gT`NL IE]c"PRd8.v^A~qJ|Hּ-_Q/Mփ8N6\!1vbe@&7KwY WT Mt4/ŰɜdcrE[ko/ZLFQ8`NɁJ/͂p͟McHT5Ahntɐ6uqA.JK% $]m(Y1g'5)<][9Jx*:<~$TCSz3- ɠ#bO3Ϡ=Q|jO`CNK[h IҰlrPeQ27FDhf% /pw^߳iD;hDBxOp} jS_>_P'\ gP86NQ:I^XH)jWGqFMJyn\iBZQFI?+^'ýٲ( `)zQǷ8X ݟڠOeīk5_ D8oUKQҿ)2D\,>$Kۍ|+" %Ǯ(t ]6sMd VrRQtc{H&BN[AUN Dr|oC%zG<^8dBį,EJf*h 698RHJLZ>8jz%L3Dꖏfro-/ VK嶧 HK_n7q4tj o:ٛѴ^e$>aיuF?FM*I)pi,SǕx*)Fzuas~ĕ䕖dtGK;zAw,ħ2Nx3Hk1 9[׼32Orwn8s6f|<ɄTx o?L)9ijmWL~}JxpY.0Mx*Bǎ8Qyl:x\_I zg|"omȳ/)V [4]rA؟_x"}T#j=eFm} #^4UnXX.bji(.VwbWZW!S[׀d?3- L W l^]p#_D]8sw)a惥ٞj I1*[ljnT N.oYc%%Ck쒑Iͣp824q?hp zP}_yʒVW+YPꩧtoV_# XTDBa8q$@4S{81 C c9N{V{7|Xu Ҩ: (g'ip׺`w'n4GY9"_Mz7u"7 /;ս]ݕiy14JhǘH.%{F\).#u~PZS/ ZĽ$j/.ΜV=+GFMQjJL!y4;_ `װ ##\fgkz z.6^Zjs^%AuUL8-a4 uUH)G$[ڒ ~b^q:_%ζeߍʚQ8U_ .\,5.p#ڽ7LsPe#CL]n1 p)r6z#L>!Yukf!)6ȌB~FaVUݔUfQT&x vQgVt󨢖+J ic"Kz)UAkPoDPl1"0+A(S8^5^`fA"mk-#Ő# d*8\F5D]8sU EΑ8RVJ|^>䬊I 0:Z$'pEFC?f0 7͗G~j0#7ܰq҈Q܉G;cKh Sl0%5edעݬ:3L2p s7 D-;nO,'(-CIjOfZR»Z͍: SzWND.C8\iY1'"hbvm-|l,n(E _GzOb? I#m]jnBfxcN}8|&ą,(Oa޸Ш:Ǭwo *X1,)J!b4|LydlJ%ݟ("p&n=MTj;ar kIB,ltzK#mqn.aͮ*1ϫ NJq@Tň l5VP+\ ֶY9f.%X%Wp\?H>`Cm=[hatoא[8Jܩ é ,^IлI` /0撨̆I/Z\w]3B8Wꪠ:q2ω}GfE*W*vK~6joHwL%p$$pd5:K`=U񼰄V5GkQW|yY/qGy >UXW%rg O2Q͠;2?b0öUu6ԬF5N3n!]5ֳ x] rbӐi&N{T&[oQ)|o?8L wSGl "ɒ`x:{top˅ 7 ArүAgW{`dz.Q޵9lo&= ű7 iIɵt(R;hlrHG./Øj{P\FIa$yuEΌ˟VPtRhiŭ7~.vLMcWcił|fI|2iՈ n6̖w/[`-2vK ܺkXŏm2aBaqc  ի9MuycXO{kQ WɁ0KƬ{Bpe]le]t;8[̏B'FWQOA5kue>ʤpC"<?DZiFe05m[4a|mϱۊ.-N)Č{y*wjqTR9.: Du=>+}8GnOwR}=eG}Bm"-`2{Ao#Qrq8x, J5kTaElJo`A ?hh6p L0U3>6Zļ*7MaI )ʘkxQ9'vb # 5dpDb^Ӏhtzn/B_s 7F]n4I8zL,u܄m1i!֛\xo~(BEʫyM(ýHZef2G<ɍ&#|icd+!zj!]*0TLJTuYyeIhpHd>"Lgg껉־' ggk W,!Sy')U%h_mգg8Vrzam` V*M8#my'aߩ8N~WKTboSRP!5/.ۆ{Kb|i~:^?A*8-uiSS?ʦ3" xas@Ý^5_M} M$Zg|gSN9X&ِa)h+ ӊOo?T"bU4 k?g9oy}5B&}"Oʎ 4D.88 ҄ hxY#ɄL }`iWxIĈ~62&_;hn9gܟrcaJm!xδ2B   eOάs O_4GDYqI (* $#!ق.+TAqɋlZsWdh=X EVk/qKkqoގdjN|B6OAY>h-D퇯 5?*oX B(k7s8qa^̌H^!s{D@w RLf=~Ƶmy,ygy /VF)1#!FCnIv t8FtShkq#"żSzOOP c,oD ΐ )D2B؋o~}dtNj`4fRa-DžE SM=I,˻_Z{ КQTM">2s)"eT??6'Eאַ̫_P|fEcA94t8i)q3:9SwT:g*ZUƁva5#8|UW>bSs d[d.f~f@X+UX~GqGEWmTNXǶTy!+92s*&䥷GY_8Re̖Z$>Q.soE PtVDhZi E.:fUMb .Nd <%&e{'%x_$ N86A4^R3rJ.҆(\(č] w 8H%,Xub}4b:Jv>~nHޣT G?D4\`lܥD 2"ƫF0a4"+ R/ ]D0@[d3cc1а7Gp8r_PѸfid<"v\STOȒL lsh/TxwQ=*SRdG*ΰ26x(݅g~NsÍ'HwŴSpiuͮ au8;ZQjTT@;r'[Ӂ.tUհ?u‘0ިk߲Xj؊II eLߔyJUTNSjl7=Sh4DNlU|WTcڍUO/J>ibr#NXƦc&)`gMtkଗAzABics@$dvPJvTbK&md&y'X䠣CK5D^RK _7IF>!:,r$ueps;:G(V8yVTw{!kwo*{4y Xqp~>5։ lgEj,)iVe.ų`.k2WCIՖ B) 1;k"&wcxƦK"U'PY"_7 Gytr&/Z( bw8bb 8BTόMo2:7%O20rⴌHr77f@lijxwRBlvFb{~G"5'Aƴvnj'nعw:a.xuRF!3Ѳp'JVg:栏IxYn(Bq&?z3q\vQ۫lwcZ9JjؼlGAOU9#tJ)kI h.tkO1I{l݇ UZ(#PVd]2p\m"z:fvo6gpE@g6nת?޷,t1?8*ltߗ:$&jI7]}x||`kU2~*Ήs2zM2Ar(YM *W.5 p4UglST+GCq Z:U~|>M8q=btn~vɁc0  ( fȡ$u+Ƈڰ\Y+贳DqQ٢ 5 hqQi2UU?~Vі4R>@a?qhr(AeKNB6g?2 㐗ͽcʐȔw[iZRPhi_Kg6TLB<` ArOe#Pn7C溜k:Sm8)fx\ G} PYmzW A-hN.ijC2Y C:tcyB*Uw ޤ<˙Yom4-;~zď!(xE6<CZ;,MN}W M1^;y qdbEU!gl(@&ItwJLT~Φ>YYeQ *njpM5q NSձ,:p82@)`gP0`54E{Hw+88Q=p|pVpOrҤӱHרXˀ KGkAytFA9>q|M(fKiZqreYH8܁e \}_paGҠv| Qtd6 ©~aHp:,5a0 w # gwγc:ﲂ !5*r(+.)O6K)-9{ԘG)@R_q{ >lO -Cg!+Z6I.ۻrVZV;>'p:)AEӘWit(6̉-y[;M#Хb-<Јk?~}Lz|P vp9 ]r!Ȃ-8Sǡv<T6%dbSΘSU5VH!=>3yh4rn(l" pCaχb!~ cIP c 7@#$5s˵A)}]g.9O m@qKF[Cx!534ܛPJcڸmg{Ur1ֱFۧELJ+qZ *Lcl|ҚO4;B/)3N)<.4Ds)3BK)DE L]6νD.nJFhޓ~' 2"aH0I]{/4a {}RSTi,jK;6 0ީɫ [YY/M}4^R $3pdzkdzR ZgՑaEb;0;fmʻ}*LV̳)ԦqG Z## )@A$yE]a6s ^5lMkBnzv%p%͵v)j_q9='/HOM5D[;iΚM֗^*:zF^.d2\T8Ư[$S^l; A<}{-bP6O?߼?$l8]+/Mc52'Aw\!8foP8޹AՖ~9Ѿ8X絊[BKT !L<*ߢO|Be !bȿ&luǵ1M1$337i?ScVĴ4:ގ&?0Y☟!2Au!!%P£GK5|2Y#}`>"iĎp"܄ǃ'Ӝ99{@mT V|լVXR2sIq[P_h*<z Y$p+3Uof')Њ#26jv p7~} w?Ŭ% fe׀<=>o<ϲ ?Z6{ay6~ A*FUz>eS^W>kz`OYgA%XIJi]gfCQi"YT2!f/}0[ycTQ"/ںm)%4jmx$mwAq~Gk$5kl{Vj_j\V[I?@0Snͦ=tl^VG<%=.XUogᴃb!vYa *z13:m*Mjyalr)2rL ?rYR~= s+_iBP9St%_B&@TӯԡsI /$@cT~_(pB!B"V{pbCsPQlJM,ӴGȍXFOBaY.cqsW"CyIjβ xXӳ93WcS_Ku&ZJ¿S{AC2efJiFl(%KʹUѮS 9`);`K4 pV:Z4~jw>iEI-*]2B[ U+=/ hDG܈%ͿW4H\5]r4l-a% P| #¥/T. Bk\^_u~|b4F r:ƴ&vDEˡ+yzt)x4ڌft9b3ƘV;]\HRP"H {a#%J;S܀0P῔PW(l'͍&싺[gbn;}0~-w{Dk-KD2W-;cWBg)=yd鵘J}_ylP)ccN3݉se< H4'p蓘~c}zώ+u S=! Hr <x#8*Lxo#1@e3@׳ 4KRO3\4to[}}r8} eE(zMIˋF[ɱ4UBB Coh=,J~o}Ejk0Z[Y Ts["N7ny1$m !񖁖n}PGw-gOFƝnOȾΗbs~hq#-&nш߇3&'i*BWp7rn-ru_jU?8FuiFR lHp\MJ# zmxbku҇>*~ Na>GZcKD$tv JE{/[M1Etܫ_ɸoOb]1)̒P;o$3sG$$9,$7dZs;h>OQWב(xsh?c"ϩb,OGYkN]󱙠5:פ~!sg*Z "Myہ8)llxlC(\dɼGn>Nʚ\qZ ThD^/B"oPډNtL$8׀FԎfrb8xEHXu11#4btWAS'71JQ|]TZyQN :$εSRZEn)Ev:.|3Ƭ^-Cr`l4ȓ+iv(iqA26G.<݌^3cQpljtP~ _<PSxNP/n8pͥ,ON0i Bu}gR:ٳ>7`#bHD2YGh{qYP},.ӄ*by}(9ӼkyYe/8u]J^6 &'QDfȳc?w]PôbwE'$;#0JY=Pfwz]4y*?ϔFoo(z)B[GjP/F7g[TݞOmFlA |IW Qx_I̬L%LыOk$*Ց;ҹ;\!fXvn(Ί+P)A'>Ln1cXw b$%F?:Y@zI/|n8]A*b.?/jUYrr@gl<^s!iφ"m񬽉 $ cijq(}?X:s,Mk ݆?e\ P!>~$Nrw%hkSH G |jYvGx>qZ`ׄ.yGYT=10Js\A,Ag?s@1dWuʍam*E%e"$ ?}Lg&^*0Sq'}[戌uE~Wu-5Kr9Xvw{r\^eEԁCךheX_Z6N-݅? a7J9} "ư!^\3 8Աjy .#_|tr%83C! Nr̹JHN?5p)2LW< {_i֡hbpk&Mpz% gھoDX<s3 w0A%dxh:W7{ezɂJ4g;7($۶V'eGqRyUW{_AFj<~ nKʜަm܉+9T`oK,\քr zu)neQ@'Y5w=^AJt+pX@#Ҥdv{qEelJᖓŖ!o#׍'}oir$ VVtaZmcQy,B֥TQ R)_& i(:dg`H-*D3s/zPMwyca7G}loS8L7ǔ۴"]տmgPnA^ 'W& P+vɩ9VfK 4y{>\ӡGgV1nM>3]oE FY5WnIUXG`N,A&p,Ani\AX3W?gG;rB*um5kR QI0'׿:%|ygexO%oYzq#UOj_o!LbPߘA68Hx) <,r\ktMZ50,;G|ƫW=~эkL{a,JN%F1x4>6d5:>]M;{+ ¶KkB$9~>KW"/]ot6U'oq2J!Fۑ@R >U}<(:p6SŃ2ՁZfN#SZ. gm= uU}fOi^ '-aW&q >4GOh`u4")| AM\tuH+z/KYMρCOV2DO/ˌ q\x+cĀԤb׾`۞Xt"VA'I!kNw'GVtbA RI uًu}2&l=:7zD st^{{+m⇾n3R;8*Lg&ffz8ֶ*vSrkVۆL.CHVcJ4g ?TX6 |bٛ#\v%,N'1xGO2+iL.6Shu{1j1#<\ {`G5EviOPCߢaԯ.),ͅGq GtI@5nx.fXW`gAxL3x ړwSzd(S]ՠ."FmUɨˣ RA l:{6p08=p#jl>(pfQϹKP`67$xbÚ3,\cy,tDyzDnrHa6V@Rv+vkƕ};u]۠ ug[-R4%웶Q^)ʰl)4]Hc<ٗ;. H艬%s9[ HTaQ*Ǯ#OQ]Ō:d]n:-y: Ū[KǢkbcI0n~:tR-RORA̾112q%_NB1rAHJӷ >9órdzTY)P6}!|eF z|j'hUx9ǦMD &J}շ ߌSѓ^ Y ʖwZ*umz`vLM9С'U::Pőc+IO[l*`JA^>^kJ9tԾX%/|iK;`=X[^ A9`jٞ{#wS1HAsƑOIm1T YM \K YaQ40/_;|;1a| +ws,cnnsޑKkdrq>?˶(8Di,L}kŦhe̘7`b"S?)S lhpaPTZsg6}=~x,:$#]#t A*t ݔwdQDTJMFlQ$.G,(JK js~fww[WjyNd D-4LEI"k@@ub嶻.rޗGĮr+{oZp28ձ ȤZ lsA@ lR? Kd3 F4Azfܧq8+ý[4VƝVV`yϦg<Z5X\Ӱܣ;?A22I/w{*l|}E-F-"}AteYRfV,aE˪^yF,4RI"T؉?gjiKợuփ[12.iVyr^ 21w6€nmR}[S 퀑vAk{]Q^}ȜU;rą"XVt `Г꺉GnF2ՓgptYjSUy)ba!%d>8l# ,jc OY#ÉF ɺ!ckSha[ DK_oAA \QYV^r:j^vDDl-c;֬mabT]% X2qdT0Eb߀\$ xGhi.H*2 T<+ş 9Y⿛Frpk lj3}'˹Bb1ejERU@/dӬ &WT4g $X)jRIf'a%;2% n<-bC0\(cg'W88;}~M&Q'A#"fAp'c N dèڽcdgbdBvh9*s?K3q9֐`À}=M3&]@奿ٳy-!t!&yVDQr'i›Xaq``k!B}a-IKO(u0>y<]Q>>ads {MaIùP O8+|BDli$$Mc~A| kыUo#+Kь5ĽKd؅a%|Bܩ 1ƯiIHkFxPĮ/AVBc M[F Klˑݠ =} g8d zX fՠevA0quVFg{>t~OU Ǿ!~]TvOx C?4| =mB$3%+s{!pn f~̓4 0̳;$6\y$rʋ"Զ}(8 xat$ՠJ;.^<䔌d )yKIߗh`??RŪAf.@sC!N'Iま)')/ 1`WbR5`ț7uEvٗeNbQ My6#kZMFsX)c6vW83mXH;DFh ;cF*,=A 3Ճ>Dq(?vz|kxpLњgm%IE_ݪ5m)2f,g\/V|9+^YQo^"9h6`٥ڽu',sО&ȷnͪ0wE:zv<| ux3XWT gVv)kXh6 $] IV$jl4?O^ TqB 8mP^YFhi* ^_kd4ur~ _I{TDub#bI=psDb1Cٙ[ #"_\`vx=(4+TyJ3[ejnRt}p>xHA l1@";G"%(10$eQB>{ P)׌0gq^#vt ѝRXA2 ߪ3v>zS{(\%d# Rs*gܬBLeyb#,aޠyיoAFêg }]z+z.-^"6n51@Dfĸ쭭Q_V(y5Y8lظTtܤILqIw ?8+D'>J(z o(s` ڀZ#GWL<#r]']lY-<4] "zc`[0ѶӇ޹Qݺ{E.η\#w$"⇇\rDy|mΧw3a-'!OZ$g,_Q]ַu6IPR| %ܚt=ZP'y D%8긚lܺ"ΪoPN;Q Py)/%<Rva#?+)Kp>+3%C'[=&VОqg'!u`iFxރ趃Qy]@z=F8͝Ia\2#T%?y]j"I`qq:[a_x }j{9Ce;[T2ϵQ\4~c|1],އ=mRD+=C ~ H;'n4~q``@S.=ĢZ `]6[a R.0܉..@ؚW74B$5R Z-ъ"b=#˔DH02vW{:SbH(:9_WU\Oخ}u+LIkǗc,ܞ#/*S_h-eS.}:R@"AMECPA3ͺ4 B_wܚYV.^[; @Uiվwq$`-kwk fSal"^!ovahXq]caߌ ~8ِ5-y2A2{i4j,=vr&mDSg|է,$9 'f2~>Z"wI@Uza`5}()A&/ZWA^2@qn' umě1>"{6& @pݪΐ;p GQ#aHY#k|yo΄LAK[,`]v,[wgHx󶙅tx"pDN2,cz8 CWVdӄA8'LB $-u ݯUx>6O&u3a/̎f\[C ÿz񇽃äeRdœBKwX r&-4|1o!"?ffapd:3#Q!u@kҒsb"aV)*4F1Dь^i8o~1{)n"(C|:]ؠ_`NGWǼ2OF>_GjqS-_E}ekXku X%ѭъR mi֠#?V0gEt4ɯۨluBy=So8z:(U\eC7ڟ(ٳ".K5Ѧ=q̵f+YSvs=@s攇cjH]EpH8c+]rroyjo&Xd1˴$XlC8WqS36zl;0AF{[\bKT*)簿j[3&YГlg|Vx@R7'WexA-E'TcфF!:ӪBmߊѦE )*TCd4m#kYfzS k͐ y`XITG**s0 O[Tl5܂iF;@"j,LjƬezY;$fx t0m6оwvLgdL>17Gq%aM~vb]u> -D/FK/E:Ĵzku"nk_OnZP%{eԧ |$pEŸ/4EB`m)r1\LرWo8"o"x,+g'IFA|?n(_(,QOx~P.7⯞^j^\ZáL8cN1IB*Q3`mX >nfeQ-QTBH(&Mt淙Cwhd3.n$Er/$c)}/蚔ǩ0?X2y><ρ(ԔyUnCxLl<s *3g®nI7%`qQ/1Dz!tXRpDYcZ^*U~*VneRySs<@]Lxgo9Kw^F]թ/m Hy폅qTI vv/JؕT-6,ܸrxx!Vik(C ;Fd>nXr.OB21@o֭-MBPWxnsF)"Zy-)ȴ8a 7:j k8bPKVBC'5Lg*O5 \ Jq QX\6ƚ 7Jǒ7b?S7?`Ws^ҰM ]g<1Ƹ a>K)cN/;nf:k6[}`y]vV:&„;DXfd~#oDV/{>19Ň˰z>D,>>6_:l)SLO8y!JLYf/x.y{Wh/Ͼyl٠ɕL/]{<\Z'R0l h'|a]{I?s)Y5 9mqF0ء#%axdit=2:bᯅ!nƿUO3YKO"q,Xe̯ 68#H3&wEȧ;LlK}ad`OO [kf,̿Ԥ>FU{r8Kv]ҷ<g|hKp/|$}<"3< vQ;!I30_5[`FtZRDD?f%K9z?ȥۃr;W`\gj kpE##a?6IM8)~l[-$c\XnFw,.J0RIal 6,4I )BoGQAJ[~Z™Tj@Re^5̄Egb%;/!%M=́>@#uh94ݾ^avD+DWDVv38$><fAb_ZyO :R 05N6sv#îe=)xm1y#@?PHm=Tfyl!r7ypӦ=:6MV0նaVrtIϽ}ǃߺo5|xPƃVGBXAG;pG*"‰JR@;,\l|$MH؞#WilJ4P`1B^?=gBRE 5-Mg<6>N+ˌE0RՆLI|3kW>Rq<5?*A @E\Dz(ۛr΁Skḧ́wstƊLhcJ *zڪp\M a Ģ[(e2K4qRvاU|\Xv:H^^}l[] Fl:.pPSSHJAv91T~cnsg?W{>Ա *) l`$zl[c!Bu׻@΋;,PJ{KIѿ#7)r/. ;L*L. ƕF~fi`yNpNT _Z,EFL#MtBH9VwrbJ8"ȳushZ%yOjg.{!ԛj+ !L+;m@[J-'&{BdBl40ݠ s":=Hvo:eł?z]\CђMjȄa^sI4O8BEiВ,D{JIM9Us L{~wa5$2"6A5E_kLBnh1-m&3 x[,R Jo _ :FţIr/ȻkI2imlW U0!F5U9Ar0`x݈ep\gq @~f(MxE蹛`Xp6)_K6A)=[3Q>@oz@҂D&G.o`2X9:*x  !^A=!O:V٩@$YIGؘXKnlWbAJ D:nU]YlDVTs%܅`^Vl"T8԰|0KJ]䞦ZV*lfTkeiݳfT֨>v-!-苆r?\ KK }2ݭ{\FonUtE&:VZ5V2\4٪K~Qok:5NN5u@7298a~Ւy|S̞|_--xPISKt)QKtЯeiXMrQ YPEsVcX_?#ʹÚBvDϲY,YYeWE[P{gJio°h]Έ"7SzܑU*I7w r#<##K(ϡk/70@GcAehۃ)jiR;`Q${R{ 0>1Tm:Ah!ܯY{Vct efZ'|[Lea,c8Č=xD91$^efdjmgR!ݓ|ú9m4u\5j*z&zNj`j&Y o6\E#^ɦw~.aw#(^8;H/0rn!yJiCsw mH~؝y|Eyf{{ər^-LH ߫UIosu_q7 bry Cz.Qb/;5/ Y–#ۇ2{ITJɄQ Gp^MM-ݣ AM7?0aFډ Z>]Ǩ>m5E{F1ܫLdo4 : @7n& JviHF&ŠMw_"r`8WK[ /^SZ5̈欵 rqTU<:+q /]u7|3B_G^.4m?2@rh -3"eq~@EhIT"MB#v{p>m@R( rz5}I6P$-*lA`0G3]7el Q'[oj2w=.^s.@.qژۜ7蟏 ݼ52LiH(kIrIim2ypcvPQ4t9+*ǝD&zAm~|88ai9;H{VVD$7Q^׷[aF& Jw($#7619U-3:lrKiMEOɥgf(HNo,H|Ƥ̢Dr[vln׵2x7.W=;F0}~ &^z bOngcӼS VT'5I{N9DeDGk#gc~W8Lē̘etvd0vWTdp;9R`Ifp*·l+JۨH!\!G= !p~1MU:ݕiygh5킩l!7Nŧ\j,˦k]-Ö+e:.ZǙhq$5=j2lR\Z|"1,MjRV^M54)o> ԧbwah L5u՞vimUipu6^G `Jg7wl̢h}f?3jC,WKh)0mPߎIՄ jC06@f[%9+XznvKR:e.ަi!i"Fմ;#)j [  ` TSsZwvk҇gw0⩚ӊ,yU&x=zrl/ !bY u5*J&Et<:i[3,g!'W ahkJjKNq|e~X.[.9cWzzܗ#i k5QoۏrL;@q>撺C[?!۳"E~y> i2rLҴK !mNEB8͍aG: eT$}ņ &e$̿讹(CSl~BW*8N,?`C۝4Oʿq?i8a$nݲtO 4FA\.'F#Bv&E2U#56WAziE2i'lmM_m-UKBX#y̜;X.)A%3@,m]RQJi5b763ԓ'fΏ2JΫ *~' v!e=uj]~KU~.5%98L:J )ve܊&(o{ t;a}|tp\ kaMڑb#2hN,tyQ4aUK>o7zŸTamŬmXxe*Hĥ,JsVSv<1&U*QrT7-2'vlrMn` \+9r \H>y ~d`*"|hd׽Z2@*F pf M&rb8 U)FG@%#E\ & w !<i[ M@{dܚѤ1Ά>81a'Kv>%iAOh9Pi#8WgPT/l#EGd3R\`3A[*"^`Uc8'4|$Jh\ks(\CgHLʻ>S@:.wcڦJ ZSޏ w9{Ͱ8%Cξ(j+izz ӥX%~X~'!JgV3GyL*M&ی&WǾHIb/E:QV&}SO{ÜA韠{8:LisI՞>Z}JX;{ï{_Sm_JNkOZyC+z(74Kyڰ X㢼Js_Vr^dϴT{\^}VٶYS8qܸPoͬrD5 \'pF)=Ģ :7,#[r{k^/@>ţSsYjк(o 1H/Sģu|WGWY`>c_@5` wbFUABMm蕙1GGhkOj7qLa}aRsG,)7<R{Rո}XRhᘮk2Ÿ9he2|ql[>@@C }3˪MyGBj#nӷCP/G$Ju\LPɊ-TŦFkQgɕγ3# Q1k- 6rbU8*Qo͏X0iKؑMؐ1O< Wg/cQh"OpP=- +h!"1߭ œora*enu"I~5q"@._k,b6p*!-D'#N$$<2 sYsKHS_]`D[ t$HNM8jol  /m'x&4k3/9u1oN=*:bcmaht&XiՁNbD4'ߎ 2Ԅ!PD=?~뎅锆|,X˕8A :v32xtQO) iX$?by%n<`"Wڝc'.0'cx3rh%'p]@$(v[6BQ`+p TT!E_?Q"[ m }<5RBVS/?| ^K<5o[c+pzWdUӴ$ MCb MgEWZy(3| "\EbsWz曔Bb=3PjzRx@1? [WU It>-; [.94z9;ܑl׶fe-]߅!T\4#'F'lj,aDtd"5a7Y1V;`7OrB),G b[sη7#݇ͯ OL"|f&tf^6tBÈġA3"az&7cMedkTq~ Dmoy=~a2\?%@ײ}eзp?r b! uE,vkl*iVIdCLNvm=-' ArߜN,|P`V6Jcͱ$qfE"Lj?]]#=06[HDz(yaɥѨ*~ӧ* 0gỢ%ZB&+ّ纸%94Η(ҟcxW|}$Uga (L=v3Y3+b{iӝv0W&lN$J}0?('zإfw< ֮4"*[qLBftq{F\-S٤z4M٩ƵçuCp8wNdYpml쫣s3AqԄ">0&уCA#T8I"xx_*)-:)ՓІ;Pg^MIJ)n8 /BixC?fk YE9R^uʝXrV6I4 񱧭i ڪBGܐu]0QBq  ]_UWM=룯ɋ6hi1L#{ZF^`,cW1+(˒z7{ցM-nu2Bj- %[| 8$ͥ7#UȗDC [ֽaaԚM.OAV7"N xȩ=UqWDwC@99wi]/2׌Fn7s#J4eZ }wV>fIQMy&X *`߳+n؈PIb])w;S&51QJ(-[Q*henOWKE 0dF $s˒#3ந봽vTM1,4Ϩ[)O͜/66F78mS>дuy|ў/^Yѩ:P:6՜*\6$h!Ssi0zk@|Sc|US/Sh㪩閭kkOHvϑ"ˆq|6Y,>i.K~X$5*a XnjUir: '`.t BqViXwlP]Q; i:h\d*<̐a|ЋӲ ۂ+^ow~u/M(JPw46 ]ҼUuJ -_%Sdе$˅=` yJ 8t3NvB屵"P9L>gB,}e,CFfFq@8V6%*B=UY:$AA= }9FG]E [ 4Jdoy*9FvWJEM!:+Rʕ $g5{Kegzj*_B;7nt^cbB;Xd6kiH`='(jk"Ywb7ׄa`版H4i;lJ!lXv- _lNE7.{XFAƅZ$IH92$HvIސ#jY_;Yώ3ފvRK,oc><8|aCFΊ[j|W v~_{aҏfD.|:wm{nDY9#e)Ky#z0.!o^zY&wsّ_t#Xph_.ˤ|^Ϣiܹ '8 U(y"D+" F܂Ya@,}{]\0ptV8<8"#ZϬZ3.v_RguA\u`WZ7x4&9baݩ,g>oشKvBokMW1ir 2ZxOǢ_oK 6MX\GVގ6}1hѓP B@7SM~+\ ;hFje$j=!YuB|5k 4 !&ҡ pML;Em봙cY{{3gHJȕ ]ݦuWGS WO[5ThiVlS6F#Nv/Ol$a߬#CK6G,=E̮}xܺ![Mf޳"UFIĬ,CAX|2U|=u۪ZN 9T{2X'vS΅_@Mr"7j3W@Mt,U#ϪPA#6X3vcVe*33&h2~A7cvn)f^jý~"z $0{B)-jQTKٺN;@QVl' Nz{ /H9)Qt_k^qw(#؀>Ϳ)i4ng ~A3ԻJixDA=3c\JZxI"v ~nkgJ!> ݯR1^  ӎZz`+kD]&|fQ# ɣVv^W_:(7̒:b7fgtqCˀsDK7B3P16|$I0L3+?lZu~!8#bLMW+XIeθ[A 5f'd,Aќg#6x V_͔a!J%q)Y{/ U{nV'g#?6mcLϭξbd/a4caey7071/^ ֗;*4b@LsX[Xo#$h8|jyo 5YP:"U_)YFoCrû"y_ @/Myy m'k#ÖJN'&li"AqRu86_9m0Rh_Ww qQ>:wpQp\hYLe*mwoAT&4 PjdE1]\($2 z}gix5қ&qLv(f>CPK E =>;/ů5 Β;ϝ]Yz;F0Qꂢ/tўC%j5رnZXZ AG0Ho@ DȾD w]k]4Hnli0?)\,yٍ_)Yz\E5\,Zd%}1\F؁XL}16Z19.$`(;iNyς=0mXAM (SuFw5ڝ8xb2} y;^zluSa'.3$q{YEt 1 ^N$`fOgߎ oN7Q>Q֤\<_?O`-N=dTF=g;ZDl Q)#H!eC6T2Y_*9rή#x XSER̆.L@2Zj=(I4Rpu h۠u$eB$%h>#mumhf9\uj06`Y~ϫ FE,`gKPyE$)O6g+Hox\IR$/__VݸMȜ`%vCoNtl_2-J i3>$vAijEY< fXF͈C}лc Z%a7SV2dp;V[9p62B%bÒDt8kl9YJSuMO[ڠl2a &i2 /#nCE~4^="OWPW, o>Ĭ2g<4Rڠ;'{d41Qm4> ^ ӪH}V!MWt u ]>K'/Ṫ&Q_O@_ `Cm?@C+Ŏ]s6<Qx\uG&릲H07/H/ O #\\MMj<>! A~H+)@,H{e}~܆p91T9]gW4anWu>z.c,5##/OJwٜ4V!JFFOM@|Xk!ҩ49=6U´FGQ>}h块t̛t^QI2n`Kk-2PȆG_BI/_W+oM'J_^{#(;^Cp+`KY}_/XêyLuM,[L]΍NbݼSLauLov3XM`\I Z/I`.bq sLZ[`h;ŀ?u-db$):;].R#jV u}y%&4Mĵ%7c6aPhZ5oObz`1\3C6hjH :) pD͔9}|;W>NlfI:UNν_n Y$S&COOvӵlx ostKz3:V>S€O?(QXGFH@C.Zw"!v FoHᘥ'Vͱ4 7ʣ`5#tw>Q.c? %ɡjY4VM]]N]dX1:UL^#ZXB۱lK uHh~Ly^rSۙ5;$$˻ $C#"ۧDTxnWa7{&r-><Sv!ڄAx sIU9Pq̍:ҝ3[v,JFǺ*,ܴu3e"80$Ip)/gM a>IJ*~]j\k?|_5ǙPUhJ/5p[dw.&lZt0lp@V*6K1py[4u;ohog1q}9Hr#ү+gToI~I5 -wH$A<.Do@{_ܘRR+3 RnlhIXD|&9o$YZAً(ݟA-żlyZ&V1eM> etE~>ZT= 뼛_T[+0"ߣfwB%_fg"^ͩ$Ԫ ~+ˬPw-.goK)3ݽO. ޅz8yvc^?XDYL ׻{Ln!v~U4qX({(bD~&* 2`L7cL6e^d+7kk9p.cS?MP{$& X MnHXTC{@VbqhB(߫rG-". (&uvw~&tR}HV,( qf;StOo|F W6;KH˥96LψƠ y[ eK|T1n/ xfg7/D!1 u쉙:'{x]d 2`gD{N Z>~.VqoR 3"p:'/'VO9 bcN͡AIWqX!66S}͒XMR j=Y|jeFW؍|D>ͤ40 Q5Ɨu ~^R;Jnf>:=)ڿHUiHx/Wn돏Oë s문Sȓ=Zi-̬L*-,"Y-c1+8`L'ɘs!7=ewwe(䊼 1N@IF\=Pcj8]YwQE;P ~yWk;># 1zΓ.WoKJ&l#Wu 4mKq/}\t]wJ7A)%3(5.c[ӿu4[,Ь^-%t?t$%q)[_a0 dz5莚z: jT-`uLУX_'eBHU3b#Tqd ?\FJ0ݏ?}3Ox8pb1}qb&6o!oiӉ;1|-|g^(Ӿ_4 .x}1<Y="K~R8Ci!>V]}&A[zA>.D7og)7L谓=yNAhvH|yc#y! 4bRlX~:7^Ԧ55 pY"Tnn 5(W3r&7g*aNJ5O4 eSγDbu;= = G04+ɕ8wGnN;oM-"lHe_dd5!!?>Po\~.y5Q3 .g\ڐ!'K-nt*h2ܹz39)Hm9u΁&i6|FQf25&A!G2u[=OUc[>(6oYNVDAg=Vyj70?j92*m4xt!r4~$mA(軛q`Y BL^b:wDg:}ۮ^ؽBN0fzPlEǔ¾)<8֫3C_#6éSk/߹㧬r*O7rs;pF;ӤvsĸMS8FhN}7!3ȤiQJ҅+s w 4;js)<}~CQCZٷYIX xƤX:0_y}G11Աv9 T)}U[91@t:wcDBf]W}NA2cc(wD b-$uRC܀cq7^`܉ͬ 6E'e8AijjDM7aDRV@xʗd >?Ƶ(q)A \TDIS{zEcGJq,Hso}='%AlD:IM@ ~ FХ߫:1& nw 'PBnPCaxV jUݰ*.cm(JD~3\S%$ƛܗKw|G?>jHa×(xa&Pc7sBSE'Ͷ.[+Ga}ʯl1R%i[V̛4/2+"}):? |}ȴ 恘8~df'n(! H3tp cc<;'@|+D|:]Gϼ5V$CIYу` aT֟"X),pE:hzjT`k؊τ`ϰ]+17;5/4h4zRSta'5?OM窳+ zؘ {UeÐ\>\t {qճFFSܔcrk1U=0ehc n%G뛄[M'EClt()8! 觝'dAPs.;cm=l)QIm}YRES4}ުwBW?a_ά̎Nt+ tӤ;& ^KvLAâ&wΊVlC+$Gu'HZZ1^)nkSj9fbQFwVڹR1#’NT0S} eY"/^K#-܃y㈓& Wu^zXqVD~ TU+{gv"!8'=):vŁ93s)fz񧢎J ac.),LN_RO\{3BGS94ҫ/}:\-fmh ju޳*w7xcXIgySKlKj,FYK)՛pTr>J}\+W);}7*B??>@e-=',RKN I]ixEreuzre ) ]˅pG9q;ֻ;s,4nɂWnSࡆ_}-8KFfK4uk,R6q3Hk ./ N6ҸCYZ6F.e%SFlej@ 8$~4ܚ6q4$g0`EOyVlkQt' nktۮCUGv?q܎IJPp#?!vB#!9X6V#tV{7bY QK7 {H""|{XJnorb{3%r B.)HJ9[}UTپBc^}Nɦm5Yf/ 1'EËC:CZlf,ᏕZo!EjjՈFF.YZ}m-#āt>|98ubd0+'P $&@[_gm$v4l9bG?kR#%4mȭ&B޿iB\iWƮ= B sߝ8q` U9FR@.ڥ ̉`" ӳTP%>4_xbx\XAd0BjYqs0^$QZc%X$' Y ?wwY@`zSr#+Hy{F%qNQ9|ggujS~BId9hνFEAed>t Fu@z8?#Y6R׭T[iS9XRzo\9QOr&Qw™;Hع7̭/;{?  *(:9f&s!7BcOɜo2?QA?ش6@δ;١<Dtx Qk̘Zx981oMm%tCf|IZF+sMQ_:H$8D-l{ [K 2?鲲F5)<AW0WS]gLV&zކAL~ +>&눁0 {rkSePtOC{,;)޵xHBR}@VyF@ie0u q0 A2k |!?qշLVT18,u˖Fj-5wdPq`9E?uVVb*|@#ŒF a%/`ϷP^ wkwor<4E8 (cN¼TKtC>6~qUD**i4UbJ]Y*$ '0a9F(]]bLIJtwf:pPN~Eᰚ$+ SRA`8OJ]gFIR\}&k<.WȺ'dUxXo?4ՎUҬ-eiRo )U7ƣ^*rH}Fƾ2ns* hu! 9 ‘$Pyr~x_J8F*6'}TNA"V9pְWzNG'}hZr: 5A3KB\-5,)O+sYU0i;dH-{oH[Ϛoi:avֲ-kɺzLvkeRf qCu׉tS8IdNh;[D KNdmXXpֵqzLq.Pֲ̆7Jʸes6!4_lL s-7* bf2/68uݱOK5&E9jnw6[}I?*7s\~? ޷ٳ(ey]Z^ۖk?Fl]:4limv1Y޸Vi~0%- &/'[@ ;5jGG2 \*Xf[XGoqEep'rm[X_µ}L1Q]3~@7V9a.~n]-sc+=4y&Wa< jtqJ^.aۂLIbfi hM r+1H&M5pDXw%xuQw;E eG{F ќ:^8 )sl4łEۋTϕvo?{ce )][Рt)XXY$JO&eݳkO5 a@qllW<%D_JͦkX~A%u˹y#FPƾ>;V' 2skGYd+Iե'|:*7'2UkAfć8 Q$ #vC6|#sF{E6 \k 2gx`f\4q8e-Q`epm3Io}IPpuv|C8dі-:NŸלEMظ#ܬ}S$T} װgp{U;g2|?o%3jCUa2+M Tx$y9tLd`'މ@\vK.]Wi(8]:H.fFK0?lKHu8v`ZWz8Y՘f 13LS"wι𓄟ZyHCU |L x=gwe ?_ [XtU kDA={uFiNIFlTM_9ަ}4K4<8<.d4 <@$ l;%UilLX@Qhxfvކz'O֟HB/밵A,g69{e}ՃT+(pTc8N*Gk_+dc;~W:RdxAz8 O=`'@zO)8!E"PHzhXec\*)#q E2yWt^D' ϱ|jMT0,dMFW8 ++,S`NqmG6y;fT"ĢTw A˸Ziq hR2Y)P 'GL?{ClP^z=Ծ= \免3m0}% <)∅ږ-E9 > jTSur1D֤[zN9̵)H v9O&ϕ $7*y䗪HDcr`Qf6DE hg#7l:V]-9.I^H9G4ڧ.&IܰCn\4 8HKd\Bau&v]W]ā:$h-%Z)^ c1VjRdE9JNZԒ^zbly:AJ'Ģt Чr{YRGSHsX\ iR!uݨڧ y'-uH?pl$˯k@r,aƞGd.=c$^E(k^l*GeywXLazl/p79vqV eI[/BurnZ|:mȊh4Y=0K{3b,V% S'rqĉy9`VƩ2_re8%U_)5D &*8st C%h ()#mz?o]!hOri/[c3'g~+8^sr,~hyK t$k-WbEՏWПֽ`#ط+LTaЅe+EͼJCN~s0?u bιOmNՉ!k8Zһ)Zrd8bz+4HFц x?O> ¸>6r(f_K?fī`v!}{yJvDvMP;x!^xd吔u49Q֧!NHwİi=`x(2yvKs'rZ^):ӗQ:7 cǠwIpW= 6F'W`׭O˜ 9pY OrY >ƅPH~NorR/WgiMe)&a*fWSX 8DJ K2s=&әY "fĝBx3%iB|Z\:Z@ H:d5g^{CWumhtVncr(B9x0@ǫ+&V}53-fhUb=Da׶%HW(%;I&V.U# eNӠꚻmI)KZo]j`4 w34-Ӷ?6DNQ@RaӅPg}{ʾxtx#Sx[n^lܶ3AΨ5柽F :6]g6aWjAMЎ&H6g!/b$yC -1T),H||\<AK*Z{D}2lSK RUb@=HwIIvoQ΄ֿP5TbihLHbѐ΢ )Z\ҒGf ZuA9Wj|Ue]ʪd"m*78jUkӕtjIۮ: )Yq Q+ D'[|zrJҟȸa: ¤})gx3؎oM]zG\s맢@:-$H,}FVQN=sDT27X%\ Γ#Dً˗eCW3 wϸQt )K;I "Xy?xt; 9-(l=Ustq݈F\y#O3 0!PrRu 7ȞE, ^? H4jakVGN><e $OmzF=q.PA+gWR`Ee?6}PPzxf[\f $0MX! ڍ*._uѝ_(]\Vg?^s?򧭼l>7QtQsortOL[wװiJڧEzZٯ딠8yւ+!{>R Ǩ} b7ewJQpX+ˆ\p@ (XC.O:žA"n-Ч[,k\fϰ8ϛ7p>nA-:{ުp9Y!|~MIL-;jq)&h:VWxt~>0V%27\3@ i+K'37;$)'s">S"O[=]~o{=6lZdnYY7@&TD,^OٓLJ}eٷqf7vk-c zwIJ[ڳ2Ǹj? 4:{dm<CZv3/ ۰æ%`̔+y =?`N Tk̏h=a8B:Ú0Qd2{[qֆMF/귏u Ԍ5eJ. ݭHW@ ۤq",[)!qGQk˨3l~7O+<۲ˋz# ݩt}m Js =i8myfjNE*OIKI;T5MyX"r4UI}U$,@X%Res4y3 |K-]E0 #t|0FEڗŨR؏ rt>p׋JVVȷ F@ILF@tC"hڴ ^diD쬭%1-eDQӨnZy.'RK]N)V(CODgW[̪Aq# 9.?J9mK(' hԲNhb%fU T)@ P2{@$ tE.7)n!jkD̹*r#8g[ݱįzBK)#qV? 2v +7L?EɎ$a|(WK*f{J٘5=xNΰAրgNt"3 HrʅPX$;t}Q syoa8Pf>ؐ!i:SO)T-@ЮŽ4Id0l|CyYAшQz8J!)Lr҄ѩkHQلS4?  Q@5K* Yw,(0x-kf+ܱ( -ZR}w"*HZsfgBe47d0pM5 J?:DXƴjhMeKDPp-\:TH9 h_܆ A(aJ/ld Xd:[ -fb: F6VΨ'9l\񦃵L}1@**ō\_6cj fytĊ_5}TY9<(0< +ќ%dBH4FP Ro4`J2r)k(j1_/4"|Eэ io)˲eֹu x.Z2P XޖJSsM{ıl%!f:CeNPtzU` ܴ>erwv :D6 c=W[1ϓF=`f,ԂѠ˨.GMgEk=һYJK$az$6S#>k8?C$&7eA0$J 4G!(/!AZv-)7]̘) IuR4vHae?0Z}@OYa"5 W pR{&|(a&\($7c p :{pWFi(j7E3Z^~m,Uvx]X_>igfW |xD* O%wF-ڜw]OȹhH}rq10pVR|HUHmq[,ò|YyΩP+)?Ƥ-!XDcArYQб O7,Z:@-21]Fz|q / ۥpV0~k;C_)϶j͖A1ġ-)Tk!wlRoh2X&fK@,ESPpMq# <6SrH *D^j ohC~Yn܏R䩏s񪈕yݍv|&%qMc zv1#H$27CYQ 4 խS"ϳeFX al}Ut][_ϣtHngJR8}m5332@†Sx(+<^_I g͵2ٟp;}x8C#@}?U"4 xSvp2sV6|JHj#DƃzR#g+m8z-߃kJ $M \k|xsEM)?=aA9 -9c(4pU˥]#vVJl2[u~-S}6[ob.uĊʱ9ӁZ\c|<tSeɻ QQM8H$"N{UEP2moxjؙwS ƭܟ+5ap _Mdš'%jEmt['YaDǃ\BkL2 3Pca*2(- t 31֥Wq>߷Q%SUJvByۉS|? qΤoU,U YoxI1O42H .oIo)iHpB\Sv2n6_oVW"/YThTSH[&v ǿEKTl$s0y2QQJ+@6h_Cr9Br~aGZSK]$gڻty?%Ma9' qlm~nT[;Tc{E$MV &hxmc\\]OSEqʌ2:2Ggk4"R'x (\(R9z 4c p[v.ӊB ZFs:6Qo!ƟL H=bE8/T|-VMpuRck-UYt`:bY lU9d яQ L kSlC1=bnX ˧I?6Znv3%=+5sK.{ Bnn˃mb[Q[ npz苸fZ  8lL K"Saa<*K',ʽ%`am_3>Z4Lnd$QSe[~U98wG#+*mpð"_pIfKAEX"ݴs0Dr/р0w3r)K~dS>Xc+CjNJ.箦.NnS#E,`"m2\9pw+*p}je\v4HF=8/ms%f Ƕ@g.3ى~$Mթ ::/AK!xHrōg n]h$P۶>$~\ω0$Ԇ҈% "4B%8DDU QaTM(0~T"ҲCp`ZoRP{ d՚i$\c R[ͬ{Rb==(SF\N~gP#м=Z"TԢ:zFTь4kfk<*M㜯IFrdcE0. Uiŀ5-(H_7$zz`MũeRI͡hx5}ɳ_ NӺؘԼiff7/ўR U]؟52{AǺ7=/AQQ[ j{Yɑ.b~ ᔌFo&lw)sƣ< mZs9om#R%1VQI 휄=MO59ESfաJGt1{&L+Ḛ>Ơʞ #% m 2+8:_l)a w:y[#Ba䟰&-gLůN/PrЊ-e NYs|tQ/eR2ňb{`R51IM܁fɢjUۨZ NY&/{0X> z:G5:S)pXO_*&aA0%J:F!AɅOקs蔶y z̀\6F͛DN@$@!Ì˺I4˷ww[|s)~uubzJpWhs ]>݀Pf ʹRc΄h۟X|tz?Jd v]<:}+&1 t`P\h\WsѮ,iR/-t-qDhC=?]E9͞qGz:d^$ڰ7'H@*NTVwt&NJ.K5[{#U|]"p/{CR07r^A&N11`HZsomݛc~D%Z*xrTbBnbhWGPC.Pg'a?w}O+!u,Ș'[1Z`h+̂Pt)cKm**D9(Nj/ɳ0γ"Icx0`}aFVpRA˦`вď}V!myʙ͍%`;"1ZŎþ])hB@7Y3+ *-">HWqZow]EܮiP*aJByɪb; [WP:rϓq/.u'R{ǵQmuZQZO'TkӚsշadOw~٤,cF"ij#~5$՞w)6!K JCt'<IM_Lvϸ.ܞstMe_aުo(?{B9࡬lPpØ~mcZ&ܕ w EE{rO5W|IoW$"T YRߝFXRVM4a=z56J G$>vFƦSB 3/z+0s i7ܴ _RC=WΉNoDU =H-hR2 o`X/;Z (9'}%! ϵ! i4Ν=Is>i5P`o n$938`h1=P3oMx>͔_ 9F 1hoiQ@"~; ɐo [F9ԖMU õ 9]З7Y{+#ʆsOqW']Yrb˞[֠2lHTCbS>A~X$Y_E9M{ƨAoY7)e5ސ*eO~TuxP32kRw5M7?[fKHI{{ouKI SV< :ny-tK$HE _U`H ~KSu},5`͏|b7*{ŷ\Adk hLX>vht=PFz|{7e7YB/L[屆ѽ/%-d2KSC{RJgܱ)x|żm)CķW8@Ӗ0jq̷;vv2WxZA X)Wols݌p)n[m#57K|(:GjY_w)I&zk>rRIrDGD|lKI* xb&o~ǕToD64 Tr"sݨ /L'P4R_*1DLAk8N7kzԝ^~U>jX{Otz2:.:? GRkszcr]-~ Kҹ: ;"YO0_ (-EvUѽx#}츇yqW Yq $CDAw/RxvBLu%QyOA@3D='F!W֩@Lqk}bbWhAYzIx6jڄ`9W3hxΎ>xf8Vrt @F.4uJ)ѤK L:|\/ .;qL[ #a_LLp^eEjA%AJMc!jV;V_NɛQKVIR@ 8d]ەw֋{Rc/ZLYuG՗o֩CEl7tn,[B8} a8vVAj\| QY*˙N|{ i9ӵ1yfV&,F?QB΂K-7ƶ_?l vPR:cxRlh>L0w?G0X5TXd Rh` .@N*s֢4+ B<>pcLҠ۵0iPwft̫.Hn5,èqauZ۫d*h_Nk^Fwqa 'q$\R1.)?"OB4|R_͘Wt&r \5j%gYb>=`0"WkC>Xf7)& i64f!Cm“w0Б>jKIRF* D"#WQ#=mLTYOTҙۯܝ*U‹*:f[q , sd >T5@Kc]BeLHP|f,+{CDXq!ZyW3(rliNA,@#Ĺ;*o @Q7'|]>d~8)s>TY>=E̚\GrloN9@v*P>ym$܃u=(~/ߤu" !֥Ŏ sL{&"J) t2 ?ͮEal{xG_#z;4̴!sbb ?b{y~ø>;fUlѭ?^UwQY^vPkSx:Ci<@gF7d-"+'>坈>k !B(? N<5&f'j+4/ǺDߓarL1c`% O096kYkvV*IoKfŝ!*Vh Ȁu]QU6ĄqRm s*it\p|U:`fJSgяЪ@+yt_("PH7-]N$wG}߫U Gџ]jU1.[)qp': h~Ԡ0 $iDk"&́m`4 {T*`])+$[?)Kv& HN$v{r> :K6sv ς$^O^Aby6uU.WSSaa ]@Q =5h!1}Kԫ_Vŗ!HiO$䳈+cdO.۰59p(hNw໣ޘZySC&fts<}"\u}\+E)Uc1F?߄rІ#<=B4ԡ3ә[ꭄ7?N g駈nU"Q\N+dEbJFtב8h2Ώ̸~NV?!z7kL H%<.ӮNʦWnO2Y Mz.~4;&ýd{0DרaE4q)Al[I ezvm DRV1)_3u]4C%kYsh'4[( K/]=7ݭ%tjs)ˉgbJ 0yŽTTQNGb|RrD狻އ W` #/݊7M/nm5s &k<zN93>v`2ÏwεՏfn9Ys0v]&nAl-GY{&=o !!|8@Y$~3IS&brSyCS"vo%C]f*Rd7u r)6 A|aYѲ+zЭ;!1'$Z*$Wa9-l"TEN}#IAҊJ~`҆!ЯQ>6AVSf?%q|@~6$_vo7ٗ C"u)KW s, 6z|AAdKr陗ql'n=qߚ)GbFpm[yʤP ϿQ3QMF$M4ZЖv.l$jfӯodߣm)C*W J{;axCMPe7QdMlĒoڪDL&9b߼x–^\*nvS4Wo2Qzݔ\ia(؅lN0Zsl[ׂ2nq!DG4<se(ihqA"V/i `&)iuau3E#hcAGH}mjNȵQ|g]Td-ߴfj隋2<~mKBE5]'e #soJw,+ F ГUZGe sȅn9>m.nҧ>1V{ j>Y}۹%|;<naANaK},e)=vwx1A0զ@Ksb4 RVߴ .WEzG~=/HFP n,yGv0DN# / ŶOVXӦI鵹 /e5K $MC! gB!I m͚QWfrz؞no {٢MDعˤfr>]u\D_m-\.1ݓjXnXWlY%of~]g`nttñp=chMrLxSrȻcp2%ya)\{ -#J jlC7rnCWiernJKX6Q> mYn>bT5!p._Ҧ{$$%!j[W*a*Or{(F=Lx\~ j(?_[GJǒU&?&Ef=#\uYƚ:Cӊ,ְ)sr]w}+?̒ڔ$m6qPΜb,;0[r< nDz % Tz6E;[9ԅxNrUk{mz p%ل_|i'$jf8FOZ_ި̋' B=%S: .\Ú9 MӆSӤ`VwN9B₇?[]T{Ux~X8HŻono{aVGp'C yK"]@cYIw7sOKscJf3sAkM cZ;:C W_@oH!sIu~QE/5WZs_r Kg 0!HwP7?ERwDT&ȹ, ݑ.HFfqı%>AbYPuC)z#b!˴Wfx1cLJuah|\Y/M#ajr', w={*5M8t\P'zi\R񝅷 ү!n gޏ&_)Y%cDJ;p#piHeCgز&&?zE#e2˫Y=fZ޾"?ؒ:ʀp!`[gcpGn⠠<;u߁W1is ǭTeTI>~$$8W~Z6ӣ<CʏϿ)kM/3sփp֮艹Y4x~uYw|1Fg-p.iKe;j1!ImW*|[+%Τ@f*`UYg])x%⯖8y7w1~ʴn8!h JLBDZ %||z7EeŪ-5~&EB4 /;Ym[o@njkL7:- -o7+j?q::~[^se^J_ rFi빘] Ll|d/mlk-r" a.TMI>C*4/ß+ ur>}m GGx4tq!S$L-1y3DlW ;=x7Wp-ЇԼ#FyACbz,4|j^st(o%:6Ɲ(v]oLT~{N*K!7x/ ;S+E=)Cc.zp[q)YM$E8ZUfx~0 ÉJPXyVٰJfK;()E|] *^b T9<҉ Z}r:5y=Ԉ6S66?nIn3- Sf5P+l+aFEI#rnÑ0p^{)]f7$_s9?E+ùKf "L<`#\Ck./ZHI#apל&bҏht;@ Lees26|`b]0 zѣCv.vB"y1:9L0*(|8dž85##ԡ.fO=Գq"Aϥv؆"fԃFz/a_j91]:,}i$Od&9ٖ9g.?KAEZˆrg柳?%A8,fnCOMЍH~gv5Y!:3tzf~ g=ŒSآ UF(| NBkU(߿sWu.᮱q (ҫ%:lhxL&#z){kaX"\߄߹U64XPn5b\O}h@$0]Q~iZJY #ϻu ٛuOǼe_Ju'$\q*ɥ6mw KK7 VFC3`Ѷ :x4=d|3ע[e89|=APԫG wUсںNCQ_{ LT8[l^} pև 1k˱`H=A{z"oʛޗI#4s< 6OVyM.(|Fҙzs]Qd0k3o^Hl&+ s%oʅ qЮ:~%%vdu㏒2|J0@-RgZʨ/%ANhTVk"H%ܭa,:~{e)*vWݟ4_u_|kj0HV'çܚzc20 yku2C-w8C(`2!éH݂TCR3,n_뉴-+{9>_<,T9IGZO$[akuVݿNtֹoUCGUu͏2qR^!+YnWϯ967vX˄rG3} =_(6T:.{\;o rZbt8bЕ" 3 $h;9ȌLR`8Zّ6 #`&GK"㲞ZZahzeyw{>=7 ]-#lt?x 3 0[DMZٚMYS.FfֱF qx?j uJ#ܨg} oت/x8,f:3B'1vp\t <-`EJEԊ,0;%4wYX-3yNzZ[ f<|ж}Y\`5gws?^&c]x?E|9X 7/zd6-~)UTkÀ6Cܤؾ2e"OnV֕vQ frŐ(\`O+] {ԧ)BAT4FQ_sM=7K¦bp׊@k"ř;#ws' Xw\_ԋZ‘{Z2pE YAB*;u`ȐcLsu+hr݋ZhUbl1<܀p%W63A+]׮?*E7- :c/^TtR͜f H,~ Ӛ--IPg__ m-&b/"S{:08T}˔R^jvAWN0-pVF2mE&MT5++f(ׄ6;$UFh~2#MLB F;,l éBcDa"U۪hBO| }8i8a͕D}Q0+qUUAp3^'r_~hcKn(4l$R)'ڣ-=3*1ՙLv, #k/;Ԣ&xthgb1@a/F|;B|6 i߀RzSxW]4Q 7wRRÝȡW0l&gu4?zBȏ@l}f4y&/֬7Dġ>Dq e~d)C* ձWtƇܧ!߻%t QQ )i_R j#g׻idӸM`0,TjEv7,+krϯ`4 expY@yPe7ǵ/Ht3Yz BՎ"ff:ʧXX#9uզ$/ V`S8ghun9p`2<&NAt X9A]_y@؎@6/O6,?!fYՖ^xXXS7BԳ!g `͎bt8zM,dBsJebtᢳjFTn65MV TkHw]#PfG+37>1VmPǛ)~&Kooi70~!ui\F'R@!K52+Nȹ"+%p(փPC6K(Vo?*\levcxʋ㤦BҾލ_U?aXj<=T)\ՊN=q(@Mayކ2T$۷RoS;R$f?mx˃hiy(}c9A{.m! CEa_}ԫ2v9oƄD?U 3|NGB(eEP_B]TZG`2F}uYG{ީ *ЁvXr{Sl2S-Ũ`ú 0=% G}7q_iUAr/ix*xla(b guzNpLT01qcz1v"R :=Կ`$ռ1S-ԱGD E`0 |XQX3dkToB8@o/u ۧ\ um͙ٓ=& Ё-Eq%>>iܮ_0^v}hk8zhzS;セix+z*ZE;.{tj7Ki(Yt.qFEm[ºsV S=i4>Xq.UbSn1}?A$(d/Gw'xqLhP6wcz@:uwWHy=UnYz&^9S,gwESVanJeOwRҔS8ѐ_af m4\# 9#ygrn%(%7A!\L>~eoc7\%n!s0m+EZ-e(c\8XYYXCmP8rC6=;>4]-KyiҸ0 U9Ec\* ǧR:&s?>so<+d)@V"nk1!&W">4 ہF ݪ1ov?Pлl5@^ֵc`Ys ӤV5&/Gkg0}t֫[kfɩЯg 1.)gڥ"sXx6V!q}ïzta\3Hίu/ Xni#5&cЎiA1ur:~xqn"V_w"|ςp &),C_2$BlO10 U^rIcQ\е$'OxhW!tPvvD~X說U7LP 0 ^\(Q 0,B7P7ɺ&6 cB/HT(]x~}Y!Kr\[@*ւGDÞ+u"I9dyzS[3Va/?u :h\1/feQunQ{+R| sn (d dmwP/L&G{}Q#< U2jߠN5ꨈ"t]cd7n[(e͛ĉ$1o=H<{`^G CXbg?K LfiCpyDa{e`8b\4d, x^TS9wDBjGJ }ExWWS^Jq6@p&ǭ8ǟЫd1tшnYps ZjXCҖ"NUw*t!w4WuB݂wjo.͡A0?yƬ;m&HTz)*Xn{k- tMQ3W`01B41Pl`Ev+PPޖ^rZN <Ck90tOҤ҈4:rDR!!ѡ~`J4`\hxP5]UѭWYbo0%{$ J`Jb3_qQ.Ni[Q de$^0򾮉Ump:T7oCI40\ejvp5 8#Qu oyu 0.oEW|<=!cYa'2DKf G%;H,@kJ4*/ @Jx1. c([Է:鉺UNs@`iߴ!@zFJHr,r] %yjq A'(M+ ylLs7=UB FYLyRi^c "5XA/N5{* ؊|dʇ M}n%~z!FVYtz`*Zߙ t=K$(AF7гCt&RAmT"?GچP!{jΟ3n^bVP(p D.`T3aՉ 1$ZI_'Hvٯ6p 1r-ʒ)hEہ%SCnUJUz7A .x3 fr@ju X@mqpqy x_Msa:R0zxqNQ(G餯QIB?v>Vcf]Z5^ @;6m_7qf &H┬}ipS"o7(8`AaܡfЂ<Й_#* ejrɠ\3j@٩ 'y'ޱ;IC}ʽtKzpϳuCc5V7{'!%x%̟Qӝ.7Lxi*c#CתsԤ w=6[W2G.0Gwx@ReJ( ~>x2dItN9botkavcl_3w(]|._I^|P$apgĨۨ-uwa"t |1 AO48vQ9VWe8lj3q5FjRA* LDƏ]ٲcf -(rupPVg T)PgY5NT3ĭi^ݺMN5`Vw'x-Qfl*#ѵpOZz8KfC |%ENd8uL PQS3MW@ tS/(|/dC1;.-mF06u~ڷSH7 n`=OpU-x6z~ )(ꜰ2*ɛ0o-+agk !ݣvO +a'G,,i Ȃ1:FswS]}i)/Πr(>-c$os` pN32E(3h+wXqu[l+ Y.rm=!/bҪw#o*iBTD wSILT|y-*y,67 HI_f ܽ mr A9 ܻbQT5곧c^kLR]ByNJ[ڑvP' %1E u h*FkɏiH/<[w·2륣D *ξ˝>_n$ cvoh2&ޚjV+:`=w=OU3ԅKDlbdjP&R Ԓ|@ZԌ)ȣ˵.'p|,qg `ކ>oثoqC7z/ΒP6&{oE/٬Ej'(c {&@Fа_)'.-˖p6]'8>^uHx}kc >,Myu*vA)y$•_쵝4gD6o /qWΌB?Nʆ!A90=}>ބZ-z;Yw>h{}tngzNH Й{g!>N8TqA҈|(Mi")+y 9g$Kv*Js&,wI.Q.>RԴ{#p6QZ]HB .{ń=o3ZX#ex pYsb;:bCs|5%Ia{eMq8!^`KQJ ZGX k2wB bLyVH!xY:s n=ڷ-Wk|N\i藷$2Iuv/k +F[&M̥/3rdob}h vi|] H_lx{ Ǡ.ԠLsd 6 A w(Ic"uLGWE*wY`p}~o#Q~Fs?k3$(KöYlC+=}{E8b-nC^ˀk]{*CSs:L=ߝ,H2ʈևb$̪oIO '4TL!)hUU-!g::9~a e$Ahj 1WK$oL[ Z\ŸgU5H-; 6R{f"U[8"ЌJTey0(&p=PBX"7ev*6+SkLx& ʯj(PH+< ~GCE j'rqjDsB'=]vhVCp Ď״tym k<^)^%L&.UԿ&ܱHݒ; )jL&A ?wX9߯UYUj{x ] (`Gjo0t,< BJ/q MCS/sTU9ܻ_Ń-M'܂a:ZKKr9b(*lP#)t/#*|2\;|ApB0K{u{Uȍ$FG~3wD!Wc?pY|pCVdRѩ#OhV&lkD\h[3r^jG$_ܼ-d1 %E5.x; fi^4MBCA;Z,?ѳrc:W4^J>7ؓ&3TzR,hy|E#lAwt&] *<Q[eXLt21V27GPjڴRAN;}}jkeԀң.YNcڟ~g N60z Ϥ,6jKR7$e+6xXfZӾc~2Z?"H"'݄5,"W8;9BmK\˿Rgmm\b"D!h3A2B"DNJvĪ&mvx[2F(h M4VOzTjtKhlѴnu츍1#8q\kZ0yh~Q扷=Ke(1ތCM"U2tiVڝ}B#]d}L`'ҥ= c׳8wa;Ye_3w6A{A%] #! X | 'JnrrV]U#Z 3nj&NO{AK9^eM2l\R]^WU9+ExM~%E @x)eIHMCdRhM2 s7䔣cF7z*p|S# )-!n^Jsd#Q Dq2[9AR1[QttK]~iKZd@\( +еs*;LZD` 4>1+~K0@Ț7#TbKbsA"[P-.y %;D; lc@tܲO`|9۪9* Z63Q1sERdUmS U]pDpwb!uh8ybz،>6)9`y4BHz 1BL@`̵ T78}eAҪu 7QPVaE&o(!@I?U+RD>K ʗ#V%}O Ѷd-T̒`mo9bi4͸5ٚ$eozqc(>*W:40?bC]Eb\<2g>z%Y_2 >YԈEj]yB6\u^c`&(ȷ-&Qsr}"b}ױjq*SX&?|@ keCJؓs#d}7$r $4n4Vjt8#޵LaJoeÛJ^1"5)=mS޻9Y161e08&g82`?_\w esMuQrq EDiw'f~^`YNBgou]O2dܸ[ji@ܸr.WbWb\U.NNs-o!윻w$ 0C QSr:jMe K\G Kd',۽9['mMGB`Y7 $׶4,~Gt?q۾9:B'>+e?FqDH B⸛** Ta#1=ݹOeXerХAVmU,ow ,UY0󠟄7i#GrX ){4G\ _Vu^e QU&V77>_D~\-f{Z;Bq0~:)+zF-h!P獃&!gyzʓa>me =ԑ82Ӷ_27b u4 6Y4E6h~p+}+о 7p3f®agTSLWvu ǣfj"wvyT3ǀE"zyj^.13AZ%{l]L8ׁC1kaq "\VR% zJL[#,?]˅#A Jv.1mA]9"|;ٻ>B1$6".lE_3JDiO"\WVߙG|ha{6 耊2O/M;e,f` 2F~^w x(j[BZ(dY XȘf2+ ЖB3~FlWlB%lC MRs#IbcξZS2i3UϡÙ [qi#ub9RBY<ě%!ir$,˨Ym:y"UV(m*gUA# ?P51^Mj-FTktFdaxd5Y*ߪhķhY}Jg7Hlj ,0{|tH|a$ y@N!i'M2Z}ն.Ͻ σ0}䗀+2 ӪU0- ~S?~q6Tc*jB yXE>y2~*{ZGI/ӛ𾚦L?6 ;1xhdAྙ2[ȕ JBh2->'Tk!}oWوh6,Æ1b+wF;J$kYRWwEy *R%|;Uh;ӱzo@"[UH}3^t >2ZaְӡNJET0(ⴂZ} ޤvݗ>uU5zB+mFiU{c͠baJQFuf>|fW٪pFqoEe4ԎhWY\Dgjյ_<Ϩē*_{vpJ.~#X*S\zXfʎJe16!coןf]0XeQX&?8%נ1'B8fc$`-XjYnM8|:绗Nށ= W",F53C>R@AͶ!:@=SYwjpRA麌z@򣳘k2kO8xl6IRX5{@-kl-_LOlGHH{.OC$Οn9x&j(2\6<藒d#$1B1+EDHW1𶝝YH6{5b3G23D枩,p>kp+Fma8gRJ}qqRޛni*ؓݦ@3nS[ͬ2d6.%D>G=O,;I!P9ì`>'A? 8̒:)(OԼWEmSܻ8ASLridh2㦠(̮mA 싏Ze^wya8$e71pYIR [ I#Զr#{H5ޭ: G|#*|^eS#jŒ rB½ҲH#R>IAE6w_0@̲Mb9 PcIJ\Cυ/Mjtst;KW܌:V4eO#jB;( X4#e}Jpfn2Y $jSP揽Hw[" {l^QŃXEŌ#o@3&;,ZDBKAzcPmw.Տ~ &Egkĺ}NA)19ʫr/$b]𕖼GR&ӘG&:O+{RxD@S>$Pl-o8I0 D%˭]m ^q f[M1bo?Zg@HG-COvF y3C1X͕w0 key4{e[L)IcsJRO]Mq`Luͥ@_p"md,z"!5;^=RL;#hOvfi{?MȦ&lk$ĺ_ ,;LL>ՀF80mEKID*\A%=~]?Υ(xGʕE_=U8딈]qT0`vՐS(NQhekEY#nyxcz߁4 _ڞuv/i}ɦ EBp/r*XIX2(2 Xgfae-@Xh*}%Wv-צ}xU$Zpڡ+y >q2{ 1l fWoG4EP7"CD_-v))4et`2Kt(a;Rx{XJI?-6‚@"DkjYԠlVYgU0)!aA 6*"}[zBP6h,ޘpmRmk5B4 )f^{umkOnEV6KG-oƃ)/?5%C ?- ;pRT4L b̫MRKXv׏R>E愴T BV#joXf r"̹;'C(Nɰ/ >m~qjZ Tnλx#Ô:t*rrOa gogj叭ndZ;xv]-\12!5kvrr-xS)[ fw*`}66]4DwJӳaKjǙf涴&^hjg{ ք/Mc/ex!/޴!V贓ʣ-C\Pw$?olG@P!ْ| ߝWψ^X>m[1x5].blaj@pQ\iG|g6;_v҆EVrKd.LcX DKݶ5t!#FCOÈ: SIb(W+w:{BJzW}Uշ7:cgsI'=V0&(᪷hD_=7g2J4 -GS\A(-UګX+[S:9C xx' P3Z)>L@ 2eWYנ4ChNwmU\ 9HFxmq$ʬ<%:>_ɸQ- L}J #ԷChO?d#{QqI֜ZѼX)+OME^/B&V-!ͅHT:l!™9H`=o\L+ -U@2e#u$a]:w݊xIxmg 8ee=9$a Ǚͣ:)xύ.'6 aKn-o~ ;%Sɷ_J$>PYvrꀉe@vHb̦3c]81W^UVM3Pal\`Vp: f*5ޣ9GӲg9CK&HEdltYɨ"1( ¥-5B}q55jGťL)iS!+'~5ep`0OW`'a&i{M)p?GekařQ(d JڹB\rG$ sp7r|(7g<Ae;my8laq0k^IF6$pzP{Bmڧg7_íOklwO݋Io>Zp2?{tSs0GUJxxa覸gr;@\-BV$+}dRp2ⵛ[$OOP}M4 5li![|@%\dLAQ70a%.|﬛VEܖő bc>f5bM?lߞ}^eI̒j~oڍ⮠fsh2۫=ۣ3y2O浕ЍaLy >&ͳB2^,za;Ug:H*\W"Pr;Zu;IkWⅰov̔)s2I}&Cz^i8 (G{_Q5m?tuMhp3YKuR;fڐ>])*Oqr|171L02ĪF kf/2X] HB{/>pH \@)KցD?S84Ռ豷-LuY=ըKGTCT݇}IOyNޥil92)9,|VkE,pҘbL%9 +g0{&E;HY:IhWe 0d\Ȏ]Ӣ<̲,r;ў1%2JC&|l9m̐O'%ӊ* drxf]A]5O Gn)jؘY[eqv!x?CaJߵvJ-&8^Q9ie[Nq{3WiڐT3eev Iح6\`ڝ\hfFi+SDߴގq]vO#siXlE@g[)=f Τ]cT:$~V[ cŗ;θ8}019%,܅?Y4~[erN,&N&=:V$%YE`34E&f]QNtE.ZvTmSd(֏\2 "uTƹ<+yZMP٩&; MI}p{)suz`L.O[}aE'L?dʎº.A2a:BH j)﮵ ' 1鑞] -9QuOWע]Hh5`][Xfa%7F#BzF '}SgNlK$er҉!:4t>E^ll4M;kk5` aڔS ͺ%-32!o̍$w{kP4SDb{Vނtr&&74`dxmvkVXjZIF qQφHIMS,ovr`٘+޿.2_{0G5# hMir % @r)sSxx.]P 4;91!2/RKߩQcs#`l5@`RNԏ+:|"' T~J{b."T.v%4<Ic$7<דNH1 "pi,B["4o9tq(S;-H,Z5B }L*z1{\*6˝' Œ І:b;xqE0K#&#T>XV庶X _: ƫ'EjHc3r!̉@8{vJU\? =ࡆ@vq.2dn.:0+o `Ti%vKNRHs[eODF,⮒Or;t@Oˏ]u/xfVyW -EDP!9 uoDΎ.gr&{S(}!Ȫ&s"?j&>2 jPg[Zjlr^s]'1d)orm**w9zPh]3"WڝdLS~9BW~XY?{#!iJE,'_-XJ.X\v4΅y !7L ( N\9P*u-N]X Vrt5Hm˻mUh0x6煻y/x7<+wB7b?ő_.9Wr ѥnpTʆZ?8;MN:ez^ׄ/ 3TdYjlSyh[4"$}Wt]<W7' GM_}EbC 2{y/7S W1lÈdiY7WUbhq85\"3b,şq?P9sTO׶9C052UXڥQė[UGxnu5+?BCaxI,8r֙|-1UwnsR3c B_ YJBK'`Ijȳ%5sjނ<.0?lq;@;e'&Bqj s%ۼjAg  ^ܥ !úIβ";T.^.X׏ـU8231m +&:t 1y*$#MPCRiq59_]*"j53)wsj1\w*YCcqlu|GM>0YC\6^)v` tll *? FVxtmɳ@cy AF|>׍C}+!C" xuk/-[p%D7r:v߫"y \[ʏ?ݾi01 dGl@0“!Ĝ[z0= Zՠg9d >D"Q'!pC >ʖnm7"M ةtelQB@he &*śDGM OA2us29\NG ;ج&cK廛1TMpJ+RsZ/ dU 6C-l0T$[!($YUr7 XbQu8'ٜz)ZZevcz5#,7V--(^d|t9]j"V yb9;({ΟpIkn L3l;ƉF~\ZGaa2 Y`! {q QUS(qnO. FE yG=wR۹Anc ڜJqy(:l6!=7WHxk.{ ^x@;CE?+zluO^ -Hn!}Ra㝹31p%c SwOB>pI \"bŘFYYXc+dO^{OB.;i~nkGXDx)7$`Kl/F䇝eU?ݬ< @[$xEע%giVX#}`4UEODp !p^Y-J{wՄWux "G t*" y  r:4֮ms<AP/"0\0(&Uˏkp ьthk&.2pX'ZF$**`1mq\1}v;a'BDctPΪL]HDy窟ɛYn~:h S)j i`NׄUm0W cxJ[V;l{(+],ӫzXI蔾F!_Vv]I>JTXN4On8WrGau&ܳ*.>{9Y֩?SD&=aZOѤ>V{GaݰmZ#K RcJh} ÕHfۛ]41Vj–N qFB!<8QL6kepHm/ "lN*qϪM,7Ě&`7-v+.M-8xQ [{YMVƥJ#T\. E]N߭&2[sPۗ$M``pJ` A_W~Tb( nꊰ{sK#:auzKIEDB<֖%Mwu{,1hH2DNX_]~pll>ʂPMcAb5Qbqp e^'k~zzpK]3Z{0:J MBF|cSNvF ȅ`QRcjd{P\ 3ڡF=<53=J{ iT4(`041f}<i$d+pnQhjrmGx[&*UP=Ui:yV5qл ̀K.3&*v{J$LMb!jZ(Pm%Q |`ӫӝï7:ncpGȣ$ỏL5[@6Z$x_>R2|9ZslD#fwc"XyQs\>g-]i G"܏xR'3EboM>@h)KB-95| i5\< |rw%eӟ+VG362B9p o O VZm4h!ưϧLj*j_1tڤ^ocJ ixyi19633mϓ>/?mWIVηDώ8Jc 1 WR!/Cz;'4qVK2m2iúj+0G3byavC#E绑׺Vu7~afڔx95#xg.Ɏ|yB)rWa=l؟0x% h9S4/5h'Sj5 ;quEjbPǃn؎9"ߗ};1-C4=#XYB|/C[Bl$~dOp~k@zVb3^<2d~jpq6?lNmҹG5Blф*<ŧ4UE5DPf:QVj/J(!]WGH H0'fwH7i`9et.nt8#k 7Z)aWJB`F;a8EYqaJωsE:<8&?:?Tq@pעt۩++ 5}^ 15Tqgy ή^DDg,~sXH"Qe,{ΘٳJj )A2qnߕeŌFxrճUSG} üXhNhWz0դgOB_9RGD )"Q߇EF֔|X4TJw g+HQصIgyrNQ&%٥ksf ɂ[BVOڔ_Ol ٶΔIW[̀g nN9!qA#Q'C:0$c{[h@r0w4)43cXtMZ{C:<LBHJ 9EU 'ۛAa]q$ Gt3/\4m̊ICtFPݝgDTfs IU|˜gQ1XsԎ(ZjE++`XrJoK@j D'QI# qSW/NMBk'S'vLA(e-*<κ4Nؤ:f >S+ce/H|)lf]8 kʬ÷4/+8&mHlŵyfM;ā2~RDlY#nK?,㟂q8l eg`vQo49v6 ̦v,k.W^!Sݏ5"sVfUv6E"[E<&a;2؜x_ Uyy3]I1 Vb\6;(Zg,‚CP.S\a iBs fl5/H\ד8qcX+ V\u=hW{bCqqăq݁7ނNYv=YV]Z4j e*RIS*磔h}0UrT},żb?O :] 9VtS/u(p Uk2BQs8\pRE%7U,1rBrho\8-Sڔ JL<'BAk8 N"K?C "sYvk/֑Mtr\™?8eI34װF٬p-tRqT%H_ BE-aC)N̕]R$![/͖jk'pTs32l*[ o|+zƳb)'E%T˄N%.4~j:tYRt"uG@,;:z9ȦKj41bp'דT ]r+˞=ة7w[ 79Wa gaU`|J`/~~f7X.d魸O)[/-]x۷ޢ=nh;<|8RJIhWl }U}12ӎ:eMB:åj"T]<$Ѷz@4 s%V6uo~[f?5p E~nZ|OP>yP]q_s >a&*CݚY=>:bmPT--[_1l\zVRZӅ4G5a { +B'V7Y'GA }xAjDDKa)>D;wy{WVdf]i7oIRcXE9}0!P.q*s:5i.ʘڃ$IhCY*pUR+^DfM,E,rͲ{{ǶA]3F hNg[mۿ)CќtGFp.%&5#] ؈gVxAqQzBG8Hw6@ 7^[+gܠ)Zb#!1@DGKVpA$3~J%Z} |a `˄K!aԃd$Q{EB6S |%P7rȎTgYcc=rFqڶ|[ E@jA.CX,[r }oމCk?(6;zFD#0Ȼ^WQE =nr $Tw_,2k^B,xr 'g<Cd:hmzE $s1,B RBêO |$ѫ2 9#.~k[c$Or`v؜ċ 5HZM5ʖ`n'e1Y\ uV@!o,KFpBdo=?>.H2rn+LZ԰ 3G^}ۢDjl=lEx-- 3yz0ѩ &E mGfI^SPPw~e*p,[_0n8aЮ`V^~8{6FٶCQ[S>պN7;}zMB6+)S^Օƒw?~CBdգmÈ#в %Uk DekImИTB8_-տ}ceyPYk㟁XutL\r yšݎ (n&_/2e0S &ߑQȒK0[_]ED@=`neQ ;ޡ:ȍDWР +,0M [XX$[u;ZbMLxJ; 4:K.B*~JL%N=Ue>_L#.u/{0lQCmYPM J}F6\Zv9. o+ ܟJC7 6.˵";LLux #BSSyAr +9ၷDwZٛy)<{q#*{z9;>+mEk%xdLNj>4ntn7,ЪKFug0~w{5?\!c>ԃ7WJI OH⊇B$Z 2Q2A]unG}%=jCp4ͷu0*%Mo )?;&n0"+ 8@9"kKI/L^5qµ7D'~`*얋lb_hJw ȶV}>;:|\[gP;_Ӭ/G ji/\KTGZdKGe}6FȞo$1*\$Rj!ZJ ΋K575{&XӒ#KK z&;y l7wQi9a"PB%T;g=Pe6#SrH 1|*Gj% u+OP8~,NKʠkقQ靄dН<7kE L:t3ab[gvkq7oo3zZSqHPZ&vnlp:/?*oAAI7Wh9S_!(7,do|Vϙ/eOM BըzvWt1{ dl1|r2S@϶jO?V9%-Jq2" VMÕӝq Q]/VkGK>q"=~؏t;Bg+?՝ (gH-!*e]T8:hEԏ-A 6/J8o(~LXc=/8=?BwN9L4?_1*y.uw&, lXJAb&T? π9tx3-9Q{G7r>:@rƨzUu /sgOé@U['+V)x= Y ,Y 7l`WY"aڃ^ `+-:w m+$U3|Wkھu]64s A \0-^V\ҸJd3~TnbڂX<l}I=ߢ#J+Z1{ظOۉ͆b]ڷ P XtV]=(+#1Ǝh.5G#Ώ:uJz { 0_\z]NFpbbǞ-/9̮^QwbAX,uN|̛ H7 nXY%&#0Hlbtܹ^ڋTOh.>eveeIiS*Bn}k @m[~Sj285E@8$qmOga>kƋ 5*hS/^aAUc1& $`Joځ QH{F cod+%v"wgb`!**}~ "̣mDN9A[h1:UC M*+TmDL?VTG߃un7+[Ed*Ҍ*%@o_f?|iR+v( 1| e5LSX.G0-׀EPa$ǂHUCa ^J! ?R$#f9#htoNioQڄS8.YwI]`R rh;vZE+oMVRv,L9qbLGm^ IPl.UeL z4Bve{?|$?6T$v-]'KHxQ*l4u=UX Wa>ߙ$, /tǠjݶ9T'#eAZ\V8`hB񐤺a '<2Dv`A ]nkگ0(e6UG&{؂L%W)9`Y^h\ XV)~:Fްr8?W H xO;':idQ{> L8y)"0W ) Y)_$O a(?i_zCPU?P )][ot /ǀG"B4gO°Tb_K#҉5O|8y\%1Zٔ<(8Wr|QbAze3'$g x2c f&1%kdQ/v z s/!6ހ VK4€DiT0`([+ 6 *ޓŪ>)kmiVo;hˢϚ2eCeP28{ OUlJˍ6].OvXxnl]}Sɥ/ J`E6΋6}h$4wuq{/NT3Țn"р.{'jPlP_nF!@@@ oŷqIC+KQeꓥ>{~(t'ՠ!^ -wƯw ~ٶ u0)Vd})(5}gtKvjRh ^gX`,90\32nۤڵicܮevRit'jM6.O5}{(φl zN,[|,-9MtJu P3ڎG<."16$riJ=]X')uBs>z~!0N@ږj{ƦCZ/*܀6dw4ϖCQ~!`}P eШ8nӼAʛH\ͷnB!ln}ӕ(- gIByx-1TMVjU^TN3{/9i@ lb WY 8Cqpu('X p8eV~]'Kؿ8P2;!@8[LCs-|ԗwm9`4,m-BǗJzcف|1E4Il/nSB zF3 ZJ=Vjإ6R )B~PT:oqdxrX&%(Yu8^ 蠾REa >,(%@Nf;:BS*G;jqR|oİOڼdnL%UTק s0nl"3n u+[ONE^eTQ0×G&1Y /!flvYdkcfq٥l0x#p7>^(}:=qE6*2Û(]`UDz\i TBa u鮘0n'3DDCiW]:oĊ{v_NLa@#u $-<0W&N2K6#оdV* W\`kJu"ʡJ#X4ңJ:H,֟x/يcD8_;f w]+V,ڜwUAֳS_T > 6?mwLJftnS>,}9#@HaP4k`5~|Yp٧b0GՐ8XN%14aʟ]VYe,/uugVdC%8#4$|<#2OR&[} LMePOBб`&Xpf-5өxpJrSxkAe[/V|ڟ0BFBzh🄒zɜ 4 œ7yyX<*h\VFYU˩-2ZUx2OJg $ō((@=Jy0qL }xrD- 4sz`B3|HƸ s%Nkk1PnH 4X} )eHk+}q͢_.BpCEi@&^؃2`1\Gf#ș쎢]Z2y*Ix!WaUl>,z}֦W A5>4eıA{`ZNQ![i35H;c8IU,Hx+y9_sc!+ah=X-p.%ag<Ѭw!pԖbЭV` e^R$nW)3U'KoS!Cgg=eK%i6y;Exe(Lbz 0/GX`w?_⒡ҕh~ȇ%75@T@x V 0|M3Au1ƨ/2tѪ;Qm5#Sᄸ{c֏p@ bI nCѵw > 7-,$ Uk==Cܥ(`nۖ B41 'YSt4q6Poڧ(6Kkv*n"SYټn0нD8 f)J:@gGcQPXcꐳq:VDִΗް]8:pkưغ5D\JAIt< Nb8H܂5;VXl SO2n<=8iOU4ErʧcxG?rcNXR.; A{ea 4~;x\zΑ#I~ql̫]tgW7ő$ $֖>aʧ:36Q%٧Uh(ԣGMYY*LYgFk!id1"OZ[ST8qS~+Ŕw{W:nnc겠 E> MGop$*I=h'U3eUi urK;#Xw77"HmHTb@. v~$$*F%FVpBfлԶ)]:Wi}ZاPpo~䡴|q}@ 2g- {5zNwB5x [cBԞF&st:[E>sÞ*ULNh!ßiV1e<(΁j((V;+tڻ^v'9bOdx"] WQk4yFq$7ҝ~L_ ҅P&cM {_vaEe4?_ۇԳzwYtn1ۀ]4-RGA,*$y >;KDXls[JWި ?[ux4\B|ZVjuyqI,_r %bNZjJ& 2*/ܺgr,eW܈eĢv>Vt7L_+#_Ӟqw7m^.,ýrd<$̓3Oc9)5" ~C!f'?'mo6$vm 0LQwa惑5ΐxdډb4 ? BJX~  ׾X8Ú%`||C ^5b)=vIKX^A>"rHY;vr-  aTPD-+ae<"#@%"{FOKC,2!ݗܶ~GWDZ,$[+$9diJT!ӊt`l/&to9 Ž<edaCk3%GT*2?t•QzJD1W1PXN1H5-4c>I`8*1C~wr{FɹgA0i$m? 9=rK" g`|p LZktOwb6ž?h~X#n;R>N=^W3O!\ so=PR2"=0 iw4 `p4z\1ʦ R iv݃FdtPdY>RQ))Gq@=KjMR@SfT3sJUϫLP{HK2VlGj12C,+xIhVrB0[p+"uҜ3{j)&i+%0T㘑զ :nɹ̘+MvV?є7+D n?Á&B.nHA|g*/ ugn8Ϛˢ{;D*EiYZYO74xFar4ѫVq̺f\:@HD+&a9k. }3vt. w!pz@,op$Ҡ(At$jK$\ yDq5glP"&fU-87)dY*:P؂{U mH׸.(亵S}ݩg1S?:35=e&g Utf>r.;VbV"pNp:KBI,4 %Vc6K^'Z>'l3ͽ023?a QfT5wf+(^]$EH6 bbjdgH rXzTKڣ:5RqTBw$пiQ3 .bG0QHR㉦VMϙJi}j?A*Y#Ի֙9BVPO9%r=@y=aMhAr8 U ђrT^ h  ?`;& g-esnz@fݫ\ri 1Z~&s{@Jxh VLFL3li4(%"> %looȚ(RE-b XүZ9mgIsM,N@: *eE!9}:cYқ:/>B& q & \L7zLfI?0Ṯx>>*zn;4* 4Jl3އvwV%;c×f;| Ďg÷m?Zjq; }_UWؠ֜/ %A5sK?SY^C9) `4ܾ@~Qokv%6Qבkesc[ć y] DLgKA+3.˲,XFώ{+w k<쉦=h]?)yHFR H7&q}Nd2L#66/5OyQlȎ8 戣nL}Xrb+rð9[[fDky"! ܧ]N5^(RJ]RD52iGܵ|*gIij2FV9uY $ 2R SNh#Uo2iCv==|&ToN"M?'`xh_)v eΰe'!bQ|OpUyh֣>iK;4MeqOrD)6M9շ@lGh6$듁e/ZY9h-֗!/4.F9=oBQz2:2@so]0Ûϗ4 ԩ80ԣ\,أ5 ho '<^ʣ 5 sI$z^EK âG%5eS0 w)_O<яHǜ1EX:Yr[,"Bԫ|Dǜ^f%˫- #vzvdB(6[Ѭ .V aII'zSwŸM3/Yh.B(A" b :@ 캐{2elbR!8A4*\Wmp +xͤ_M?n%8 iGMms$0KU AEqsr2I#^呜zj Hlm!h=H!K Y0{΄kMRT;RBvn2%F wyF fne \Lݢ%̹{HQ:,s4oj)&)J#@(UIU"= ۚu2q'+ۭ`rٗUS1{ gFGfu l<@w_] U=IG~?&wJ4AY;,tuԭ#DP y1-ʣJ%tBUWzM/G#-U\<Ǟ1+2k]bGbȆj^ Ήȍ݉S'>LE^)"()o|LNz®vBoģdc[^a9[_N}8%&)?wgHVg|8 aL>qڣbBu5'8BT0*"cu5BH2h1+[Ŧ";N(ztS,;̤I?b_SDKgQM̝ڶ02{đVd>v@J2d̯4ڟ7MT\}p{D˲0:#>abM`-C]Wщ=5JuO>7 iY"v6jOU?BBtÄ+9_G"׷Z5}B+wEҦ*nZ+ 8BV~o,jwhdʃT%Dl,!Vk_BO*^% Ω07na]iɻ*"+JRG9F9\|ͽ1r +=E CYX w&XB*#˱hP7P0AEzm3Nnک)_b0ZJj??SP +B$jÚC/' \~(%]x1VzevKq'R(͜-PmU4w70>A4!$$\ۃmsOOk}/[_cJ*`dߔԿ]?=6tjer+@خڧ4ӯyiuJsA-La=0nEl'>t1}MocDK DEowFyqdXh#xs83ġ$0Eݯlx$B4 pr?F-ݗ:Cv4Fyhʑ{txJi)⪟A_ڄe0N\``,K(_g *wIY]E}iqӚ/Ew*T v Y|i%sLà[s`# dGu:K ' BmTttpMPc@FoߚSv~VCŘ.ʹb Hg-רg?/Ph(ZbEb[PZ]aϫ!dE+ſd1gWk.aKd%Ja=[Mpc ঒usݼ;U<͏?P7X@"[V{gV;]i6> r +<w0𝱙/Zʑi84fXsW<~S̯@嘛|\e<|Me J;_5s$Fe2tL//d-s+ @ Rexf,eM~II>pIK,x>'| 4Ye \!W[vXs S(H+idقch]^ܳ?j? n8n!zTDX$BP_Vˏ']"/5IP~pTG)4A`:#?΍ې=byt t!驟B桅#yܜDC%:6nIQC;6 X4AbaE,Ըdamu@@1:_'F.By,׭WExK QC3ZfzxߐWQ1%/nuɞqT*^N & z|L|nV~֎,ąR04yBi`(I5(gz7` \ dҘYx[rm2rYђ]py)*MX!fɬTlYUsk"B]oCg+89StϱakG-a'+ꦍI DBWTH(er?q3Iy$DN]+ECt;Pc$ V~R:˵%s>ٳ(Wtԍ{G;:K7F%\"<DzpVC"3fnrz rD,v1T. z VK!ؽB7TTΆtd>Nx3iaxS`뙷pSψxCUp6cT"֋QT.pU䕆{Nނy·"#Hcr6g9y ?DQRLaʉ A6ƆYD,a!K{m:Fxrtl0v+^5y8> Q4sM 1N׬QƢˎor^1Wt-DAȿ  /4](–v88ݩ7‹1Z;!W ӗٿ]_A&Qv)Z6{oLwrm"X*_GG@.>5z TM:P+S݀GG{hi$CԌXSGZNBD)bғP\J݁v^PϚ\FlUESa/ZM<g~eȹiP35+Avudց;|=^w}7 qĭmlg{&di=(N;us7\$=w39nG2aׯlldqIy̽vj \NWq_5Gal8q3/GA Ы;.Ni1-6}9cB U*%ؽ@dN͌ 광=_^ja~5wHŵF>Gb!'˱/82'و6py\Ķg¤KDx `UT/3JXp6,XNk6uQ;(6XS,RlvuQvbdˋuXE,݁ mwU1S9hWWat9uQjwR34#2% 8mFw}A~G?op4X[2l?^AHP*8)vڻS.s(^3{J!m?/du쯥I^41l䢫SSgGh0v`dT\ږn'LC mIb!"+fQEG5J vY mgn-n?a70YS䝛nx`qWG)vL3ؤ1 f71QHΑU:yBaXZ,)C'-킺Kxs8ȿUIMHρ=ջ땬9T 1NR P`c.CL5w0dѹr}yOQ@Eև92Z7ߵ= NjDX_(fP9]ݫD}\҄G{I2 qo{8FI 1T>)|C?+Z4$!u|q}PjKNh[#+[I LyF<#V0'y$o־!ZHBP.(䇃O"IM`BH&n[џbȝ]zGI s}ƲAd YG:2.2WJRʚ- HuP%:4q9M5dʍ^b]s) XS}<8-Z.'1\6f9)zxw^ckr5$FXWT y\5󯂓08. v&Yԙ3m `%z@}]uocJL/X8 ;L)\n*U5kOV%dImU< Nb(6؎.đ_ cG/YQ'έ˻0 <Ι:`ag*WD b_J.ǙWbI7ƜHB"{!pJ"uгs|C/ggDcHJ[~`=* u$+v;x֢Sm}9\ ʃ診~ ]L}U #"k L|8ERXC, 8z\nLd݊->>2piA~5t  ' B؉x7Ȱ) /]c'|҈oY]׳P ؓ>CtƧmܲ[L_x|]\l{--Z:Crvcj-I-xr-d*#ʇAU kX?<qu Qpٝ{]N؛.f'(Hz-pvjӒg(X7`8~_wu=ʚb\BۛX.\lAFE !XTi geEP GurQVhќ7۪"w,zIK/1Q qɰK?iUHɕ=D<Fjir]:{ pT P17w²CzQ4Q9c+f2$qE8\Ō$m' RW} JzPjX*뻏l@g eDahn`'=s^U,{Ȇ/}I+~c^&'+M #&ٵ{.]5H,Vs `lH! ~3l^k .-Ҥ;d;?ǡeT{} 4 :ˋ~ZS:6&Ώvˉqڂ̷!y7 0rI.Eʸ`;k8SVh[n[A$v Cn<ưqBڭsy<8x> d){"Ц0ʾ" n^4&9S[PlX0`wƄm{'T?w[a=G,O@lr,EKy̛.O WwZYyto$΀FeBBϾ=p Zs3km\6@YDn y5C@]>X"?+=ƻ@.Q 1 MPp MXO>dD$ٖ;~;V(ʈ~S*%QڐKd,:rJ  K]h;m`7R8ky* M@HCwVrq5RCZN-) Wn\ XJ 3\Ao4ƀ(ȉ01Ys\dDEɧ mLz jΨĥ!ٵK< kjRTONdo\絬, >*'yȣyY+]2Y_l+o-Vlo}20bcPuͦo $jxm !-1oKXLMQtDGny)@*jE(ҒVa/eܬ2#Y/ˑٟ9Z=㛬S782?e k \VzdѴ3tgi,Mgl;+5dߞ©(6N;Hmd䌍I ó[~SR1f9'OٍF(H-YM-'4s- W8QZj@t~Nn9x+O]?CZ5LQ]^x jo"CGP1PM9L5td6P26rԾqL@1O 4dqrĆ #`d66哗dl\3Q*mrT2s1^lh5yYx!Sݗm>+SZˬ꣬Bk,f+[_PC4 S'G/:Xg~ޔ(RsOCDH[0>ϙ>n)}pƘZ#%,\-HK]#wEՃȸak\Z(`:yY*`ZFir &yG""e 3]{%Io_?5kӶ-!l9=קPAHȈڡ N޵oL}}fl~Z ,˼)(?@:o8 Ft 0YsV^GD'BdTSp 2*tGтOZ R0; O=ʹ5R$>*7޹(v#~ c/x zgƐ礃@Q=`cnNp'g @Jlh ܿ~tYў]i*qAUے֬eGêtaf_EB=h 1{NlFaGy)r D2W~A*kx@dma+Lxd>a9Ldt1xy\7=~7\M_fT}<uU=Y5j_ &U}h28~6'BbeU!e{`Y01?珢iX<?N5πK魈R(!_B Tgb &F1h0dvE}W-H-78kv/cCmmT ,(9t58h[]Ɛ`{nC)h)ah|.7p{@ft؁!Btגn\p'L z6>;qZcNvܭTɓiEjV`0c!ʼnwچx@Vz)ߦ-9oStQm5v8ZJPCj 7D|8C)J[/7IWoA/t4Ҟޑ5y/ۢʒQ<:G]m+^Opf%?*ia-*>`~5~L$u/.۳Ӓ(|DdG/k׬,kۼKO[­"")!YGyu|նۭ(_uoNw>=JUABzs8d_qFO9Rn}[u:rudTam>_|1ZPJq^U4:5-(mAcveH)>x0M%U8 UtRȬ]H2&`gLlXgt%%=m,Y"z[#?F>Qٷ pn6HbEK9|/elf>(9\_/J^/Nvn:B(SjݓI~=Cn@#.*weQmuNp0'm8h 0JNLmUg]RnoG^=~bjJoL4&9(YHvvkݠ\m=U~&섑[elzRM甤\~>Ct6R-Ʈ{jo@OrÝ(3bcק,1Ոe}[TX#0x_a'U4I"1p:uU2FNdMnCᒛ? 0KD}Ln~dH _K q1xq@l}"E4Lڒ2nEbnꗫ ak)5 ]C/fM 9/u؆*ۼ~4uIF!2ٝ f‘]/Ɍ4jIcmKS怞Gx77";r#PJ@W<XCli1C ax3o8Cnex,^j@9rJ3 u8q?zn? ~ͫ;!BLof5_a'PI;]3y{B?_]B+"SH1|ը{/!p/ZUu:X=u_+!*8!Eߗ@؁p!|m.,&WMx܍=5ݣwdFTz\j8Ig.n*<Q]s܊`ߨr%՚Y)"6lЩ8sx()ОR1 h <#T&z3,$(rd5 :9Yp(v?vi6}ec_Xo%u3|?!U>Bĥ#I\B,{tO]FGv) $(6U h>.Pׄ7r}k~1C -K[Kv&6:uRe i=,'`0LZ9_!n+b 4 .0 ܿ#ϬRP5&@ 弻Tഁ7oK.v _suÿ0㦑;䝘rQV"#(LH6?^ hU=8 tLf]״-PWUgcg >B2'MG.N#2+}ZrxpČFE}Stergq*# l@Ps}3WQ29._<6*[.,?G\ןp3_V("JbuOR\\zCYm}(r@i]B<v&_V_Kdgvԯ`,i(5V&;T ( Pc^dRY7N^-^Z\XlȔr&R?B'9A/#ز=IBRX:bm;nNg2! Ӕ4LRȉ_$3ѧ;to(4poi@S9+"9J]e+n0ə ,̌Řz=VoK]x96nvHajAxI23Y1i}%0ۻ(DoŸ32F h|uLe[D`pmt)XL9_q\NSg'QDbk+H AX+{쾜\=IsHĹ'uE1w$-Pg%0tJеmg}*c.ͼD3xQ^l%y%ɏkt,ث>0&A. @ p8qF ˘|dF֮Ҁս G/$ShzJ %/ox$Au~lZ]7`+(( i4ASݠh,ZM:v~mYl԰ClL}Hʋ݆bd-@'w*SwFQ"yq'P!?N,3igC[%WvlIp5eNqGDO~b:{ea^{#=HhmSEg>^#^>qF#<= &Pq|^,|v\uFKwq /a>ydw۷IBV!KD)$ d[4\nIE(Sdő]?tbkRJ5϶aNYU.BXmSЃ݆bU^}OzgO-p>PSt:s{>.+w&Mݳ5aIW?2 Dx{t4,#:iy )mt(q,:gԵ#M  "-^Z]1sLӸFUyE/xDDBLbvP6MO(leEAt0o ph]䧚U0V`rFO%=աٸ=VW)& 3D_-K$uB7F+"u7XwH>,=ף4kQDisJ*܏-5a]Dh@L v{&qC~4S @;1~ևd_2 G2Na~AFn=yN4JU[y@Oǐ=+>l x-D ~@ /Z+c8PI^\%ZuCFTDqzFt~%&빫AֱP߫!e=Jɲ~~9>Ar 8bD'ܧ|B[" Yrhӗ]W~FfODMO1A"#ܴ̄$.,q)̊e>v}A;zb̤z?[P E)Mv0E"gM;B 4I;W"2BkݢUgGTk0#zS_ Ӛbz]5\;W;Gf8D<8j"8.%yjF1zXWw̫Aal˰0&9ig27Xr!`g}grh|`]E (c`.Z%:T:EȢ_$9Cc\NbxSu,-i iCt$Xm{vygQ{>U&,I gyj^N& p;?pτBg$#2;k% ZU(R0TV$\ޑj#לJ9l&(_ƧyLQ~"kDXUW3hi+h:q$pvҮG+Q{LPmy0M0 iBQdD׷-w LಥcLqi1Sz}6\ȇ$T&Sb|.H gЏrHD?uua62Ame%[;Yv8'2YyfRۙy=)y5S9#zs6LҋX:60\nHȬW 6.|6 en@b77GX2ˀ)̒+9.VP. ŊO9yqJ|{% ;SM $z5"FiF=UKh-{-:-`U*F^NxH){0J]dH̘nh0I[^R\scjbf}qͤ?SunzacՔSwqLd4%&Ù81`4IlF do8x˭6J_baWο/&2"}A}i‘fq\~^J.6 z=<=:= Vzݲ~`h[MDIJPV%K<:<ǸuLzS-/>jsB5 ,AI|VKB( w/XOZd 4RU? S&& yJz㏮jҾ-.U76ll>_roNb%Z6{l~4^۳zxz9"@8w |$/@( (3h&S)@)T겵*,jǖ0ʌ}MnXe-'/i#DLsVbδ[% (tN*E!43BOm%?[ڻ)Ո0# 娀TXĸ"wmѝ4f## R/5^YBbyLº}^璥fpqmz#K\gNFr9O@՝)֗xT!Kyc뽯WZJ4! o !fykS6^@un3Uw#)6W:c *ʎA$aݗ+!Y#dACwt* ɫ.d>͹ J܆[^&6u^!bZkF!$q3όDT 0|gTox0(Y^َ0ƚ2y"-as;}F1=gbF=lZ}2F|#"ϙ쯟I\725̗'%ZCD V`m,'6$ej5*Osvf#L*Zw;FLoH_md]>CA8W.11">:" }N@W dOLG"hiTKiMD\I(FgvyrБ=/{bʋ\* UkJ 1@|z-#gX||d5Jĵ >ymہ6י~x(%c"eH{*t15^P3xR7 5fڄ  Lyu8ܚso0Њ0dE?-"8Uݗ m)ϒavڂԥܚ4U~mdٲGc~gݴc3ajΩb&4/b;eBdƠccqW")b!T (52?&djNT9 n4#yFG8lŲra˯ N`QB\Sֹtw ؓM}mPRϺ %cJ1m?qxڰ *jF\?8M`IkaF^$e-3 2F:^!2$;Òp_{Ƀ^ {E!UI|mG%o%̎/}NA bщVg!y?Ɣ}vPrxn\w7 NaC¸Y#poUAŀ3N_k(i5E }6vyaȝ<.ɠ^Ug, Tܪ(HO)i{6QX7-{eoMn)%@-;.uO-SK=R"=7Mֹ_~;dbɦ~v=|)Fƣ7F3X!t qtmZa͍i_[甊f )ٱQ>)7hB)[$`!DWx냎f0af_6QrNa Aǜ9h=WȠ?JP~sYޅU2ekV<nwA ő/+5ZozY8ǧ{ʹ*7q8܆4 R*CVkܵP.Ch‚X3#_³ds;>n"!'9!$^94WB Xr⩵$S)RjaAi;#?8z`̵򧯖|N~B]=; >Q"?&;jƿ(b6gz靼=G4zӢQ9y#0lrCMm빎5eE➑l0MBr%0 *ٓ~qH.Í!Оin|MX~;|6b>|]I m״ݹ^DQBC -f^`_۞3)zRF0YWHHzgEJ#7 T8_oED5(@<E x&b iYׄZ] ցz H}tKJl!M-̗֛4hT鱧r1jsjIR8[R6w(OS$2CM◸@<ٓ F^LQvI5,\DЬN ~հWVI sYS"$G"z6aͯbcoЩv`Y>pdOXe/WR| \-wR:.j~ԓSP4 }"¹,LЏkp@q4PY|b ^fHt/xUz9Z<4\UTj_j΂ {M( ?pn-=%&pc{+0]a`KX鶶6yzH!XDɒC7mY8UON#LŢq_ud  LU-5⾲i-eJ ;C1 -Գ>yMT9+zݚ)_/+5o]X pvG_)N}tP5!ЪbgZ_/|&z00qqbGRu8hLrI_׿3C9cyq Ti w9^Bi<Wi!GʂA})N*ׄ+.A㋞$*Gmp\#"`Y{`g6W-*}Ti'p#34LJ绛eG>""XU@<pJk`{qz1,PO?AqsE닃XvIs S%^5#S 0']N*Kkձp`{kś]DXNqTđ0`nDJ82nRIio69SPof`'cS3yy#:X.+Hր1e}s'0 ˎlC:r'ANz]!WL= . ,ʁR qHNO=?Jڌ%MBR |%B{x Y{lcd1kw^^9j"lZyڀrxw:Ĺ?&ZC=!=pVZRh.ؒK>'x7}=Ve 3vkVڶ*;X. Pۡ8qoq92Yk,s:֩"6FY?za呥o~,p硂'e)Q" D߸7u+=72͋5}Rw|۳Uz&| Elb Gdyf$?V^>1Ϫq25-Sm:n1ie|oFfz-}X^PܖXr;AJŪw7bNbDsꋙЦ?uEۚ7|*'Vqp\gd잣Y Cv ~q_6363y'=x#7-R 0opߊ"yҷ*0j7JtDm|D gӪ3u%Nq6?SQ4Ɓ;Rq.t6|CyFX۹$@L+9Ju)HTq+v*$ *]|l<&qNRb[@,TC8jFM{2K4Q&̳V({spGߍx7Y5NdcħͲGsYi+'{A[wꞋJ+͇g& af&QHz(\ݲσ.f MGlO߸Fp.@ Gr5Z!Ha\.-&M_,X <^ ;#Rn;8jmi  g/m ,3slXetݾj*)ěFÞ( l6ǁy8&/s׭O>gbb`D |BVVݙFhOp1} 7 E;*S 5p[χ^{Տ1Zrqg0했= ]l D}>PmÏ Hc&w@>^PN-'13 I%`L "7bޯq^?DXF&o;ӻҜ*k[΂".];E֍wQ.΢,%W@ƪȡJg3e-0p̞^yo,jؘmƈOo'jO8{!G{Xm܇ Ӓ~1pi8`޲v`Dvŵ.ixi#X[B6-)lb€L9Z miaol$^ۑj^FTxvW8ǰp5fetr!`M~u2Yӄ7ÈJT-]~K s ar0|>2m 8''QΕU]ݡYqJ2)=c .>O+cqхkʼnr'G n {s"5v"bT4lf]V|j֟YT**P'tK*LE.p>%dp^T_<ڈ +^VZ&F.L9oLN+ # Ӹ8,Jڐa`deQo+ XEΕxPY64NeT}`<ևأG\y![n@{Z~b2lG  "P"xV ;6H=ey&Sa:Q܆Qpk]{_3̳uqR֪B ZM @\ O(aA& m#f壚fæ ?H|[Tc)2pWdge ñ'I)Z惱ǀT'ݯmDA1=+fɑq}napǺ/tDo*On0<"KU߰v?FP~IxcEE+h۩-D{?nAAB` -U<^7E+7XsTvY{˃4meMua[ , 鯋9kCP*@lqrLE%R*0 gZnUr#_*}̵$%%PR0TQ׍1&2C]fjR}e"3f?N~w~ &blҦr9ؖ\x d}H'Wh`h)W#Gh CM" Y: OB4,;{X2'Ҿ 2%;j]Qr ڙ2c [9h3ASޤjÂ@9,K>XͷOKdϊ}'Xa"OlI|5a,Im z+æh)ȶOoGqg$ @;yhJrHGHI:a~h =Wg ޤD|CӔ66H‚odlvU# a{:9ISہu;ll\/#.(.ʻ%F'.GKk5x<ʷAYUNWf"Vc]B 4d:%ETV~n؏ FzF圜a7{_ƊhDDi|]lwr7b-:=1y_RSb"/̉sBTOj9uƆ+X 88A^}SS0^3dG)$HI;2}}6K?p&/%iuQ&ϩEA-fgg!9iE~ . -hUNbJH6S]] M+ᅫx +äKj5%yG|)Ͼ16^AE;5uMA&ܾ0 j_ڍwSjՔM\~ A[fY;A:1œ𮯃4DM3VcTq؎Z ųe%.& =ݦm)7g-iDdy@!$j0R:},xʦCQL.De;)T4!L†)#AcB>.hWPZ .TveRL?n Ua`ڍXz{?fnMӄTiޱkUK}\su-A bH0D=.:›VI` C x%ƥxדF'͇3! 4Ħ\<עrbzGBJ06tJ6VnfamRy[lU(MqiK ?H @ȢL<[4w; 1 "^_-Ϥ[4US-5ăAcX{bi|/2ň]@^C#K68)=EțeeBt v~..«* 6M65xqEjɮNJ݌w},^k?hwݒHR!ZcYoٞ㑓{@o<'Oeʩ.4,fa412$ 獴>uܢL=6]<[Zn5dN2ޮ$j63y"} ǩGc tBYз:j4s!A : L!NC3c+Mi2Uw]r'[sCΨE|9҂Ÿ7ߒ6l9Z8ɒ]|snr``˘Sx߁MLD8<:wZvjWʕ ܢ N1.R۴"7>P!ؠUcz>|eGr1uJC;F¤2+Q,d[Ou7hȲ 0MP9i@@I 3_Fb i lqnN)Y","k^l2_'Q7c5q[5om*Z&`ށ69&t갾rVd΃OJry9v+3OG-㼬9kބ]BJzWm &:j6J VJm@گ8XBO.{\gF &8D6~tߵn%LDF7$p6zh geW1RgA]X8XUҼF5>%7n\qI$,o*(Š+0OU5n%S "|E6Q耕!ևaMOLjŧCS#ż'tBX5Mw]M}͢_fR/S|Dw^,~;  JR8fhn=k3H䶮1<8Qc pNv'!DbTBK UbE//@=_[,I^[(MWECU@yXsjMH&q#9(_i;zH[aKBM^`U㋛_y(?{gGlj0ȃ5G8jw4Њk@9^bwv6]M ΋b$H<ל"^E5-j(0ag7 i߷2滩#NꯋsxzY>SzjQ#;[4y컱<Ү>(Us< tS|4|xڔ]HS\ M$&i0 뵕-Q~ֆh\P9P3idžD_&8@)Xlc'C.R1Mߵfa)W0纜' |(᱅tV^ +|XYh9; jO*H~.h.b^%.]~14 4eGwיynEaY,R9UV9^(V b8c[\KbnTn3 E<?&O)JUG.떚8zG8gַ;#I@NFbg4y_49Hϻkʚv| 8iQ,tb`)xf<1q+y4HvZXMncaq_7bt. Dc5͗M"ЁOL]-lpRظvAy 7pH-iSrGWr/P?.゠Wus@s 3'Sd4t%]Gʪ@7:LGw:YXrsYzJK4h lqnÃ^:nuEDž9 m%@7Gu۪-K3ZrVࢾ7qIX I6à2٢Ns'vfl }4WGnNeڤp_/4Ƈf.͈xZ|: *o:uUxҹ<"/!ǂqjx5Q#e-SAYQ]dJv)ۊa`Is YR;ĸr%X}BB6dܯ0j'Z$0uJQ7Ȳ\9nI[myV7'Ƿ yBhf3P.WF6m)Irʼn_ХG5Qrh5I lȖ|e凄ԯfFLX9_ۆ(לzu+R)'2i{&vݷ-cZ}s2> +f qx8PkQ~unc:ŰfS+^!+R7&[ o 6`}ʁ?dYj%X!B{-M)QnG˪fE{sGڱ_`k{\U@[C }AyTL~?,ÆMxE%A vQ{AV`5+99h5>p3pRH$hkeDZD;4и0.,/\ICѤ҇k3+y`Oq7}iUi@Kɢ(Nڼ^ֿޱ]݄r`ؗ@#   嗤fxNoGI9p=~H{yJ RZ d \oz7"1vFs'~"j2@IGAF:Sn\ea]I, U }y7!ʎDh n#pS6kVrJxmIUwo? 7o]sl58Z/&9MVx ` CI Dp.7DR_x+T>WY_W&:!&VT]C?d*|+"!ZSI>>Aa:grEWl5 8O#t{ ^ IPk8loGU2 %@gi-^RUE"pU 42mfj|E::~rXcHw.*[L,^dz1Sa-!%kn&3?}NǡE! {҆no@+%rN5Ny/F./Qo@!?~4;( in\#d "BY4\.*ɩL%:{󂨅.AՆڳMMƮlzUQ{pΙa jT yGv/aĠEѪ%zStwxV .[B5{slٕKI`HʈL{NWcZZl,MavBQ;UMOm\lf0V^q{bsFnYc =TQIGo& n0\wg@\䆥ŘV0`$%VZ6ŏ)ۅ M)]f댖( b(|4q9.Y6?P|FόʰmK 4bȩa'}aܖ7Oۺ~u-4vbTf4o(( =e@aN%LBY0(t?ޗ3>/*J1"֗f./ƩMk`_P6 îFިķDn~ۼH/&jB Z " E22PY|C]Fd!}%dCt܃f<@+E Rmp.l88c_U k=1c-ˉXaz^y+ǧ@`T<@IP'Mat%!Gi]8Q3H[m3Jb&4b(et$ gPG_,Kg^e꺩un؂w2hkiS"uTYEhϹl}’#|L F^%Ԇ Y*14 @$25psO@\aWWg|)KU`ˇ(~7xAC {~HY=ۊ{yQiPՙlCբ+q~:i 0us܉w&h ^DZh֐Ùr_7!C^T5R7LE{:QGIz# a#JTѣI^m1vqmv?afн[n&; gp1En^xEz}I*z.ZPRCQg( :0LLϓ\Gr&/ĠYE; T,LiM@FhbGZ{oh00mN0.ܷWf VJ.v0NF`C&!qF)pؓ\ 6ݥA+iLNz$:oJDhE{2OWo7Rf5`oS/n'BFb^Ɵ(f4e)=FxcV\&Xr̂P]DųvxWE_0=nwxUxօYmf`G`-bᘪq"70+9PaBu+GdSh-f\Sbvxȵ2|Uȋx.m ] cz#r*G8@J. /\#:6!g> ޳(jGɿY.KIbhM1-lPE?x5dEw- 8aX^Exm_N>&-~*v7F]3n-!^_ A1$5üp6[ &xf74S[C1l Bh *Qgy30Jq_X1<YxH2i:y);܆y4=F*H䡘CCv Sgډx i_%pc#V-oټvВ2DR᠆iϳ WǙG19MϩK'Lԛv zk Y1{+JuO#?g;#}Ԕ ү a\F*Wf,xmNO}(r0K88U-&SV,q]yAIKFUm'̩KX9vn/tw* HsC߫\͸|. $=V8d+$0&1)IV-bxizs~bAZ(ĪVcV2Ylom')fy3qlMB=< V= 8/ԾRy6E9/XXh)3C^;2{9BjY }r|у$mB| DTʎ}چ 4]{O^p zOFuF|R6fjH]FT>E3RJqcQuc3VOgib% Ko]m %~FJQOx*у&55ZTK,CGGeen>Mw}=BXxqg`["`?PScHTڕW4ʢ}%OkY̝}](es~QГR}QS*Tm˦q?K  nG=#/LPd:Yoσ@d&_xƕsPi^zUdC e!̼[TI#8;$~_BO=$]Wu'LV.OQ|JtB ܢ9YT-y}{+I#RpQ?(ms/()?^LER ӓ\&Zrv[Ye&ts1Q'뎋> :.$iy.{ [ *y򡜰Õ1ζ'<73=Ȣ)KI6@5R.j<ФjaamT@?  jsCHKV _$Udߥr0pdS5+Q[^?pS6&\˾P}40ϺyBƋɖ elaˍtv.e|xP>5ûJ^6Eم9fGͮH3+%jʅĿm&%Bi {ƙjHDueuE ^b-O(TҵRvL$p;51<2}\)_Ū~p~X4Edx9ʩV-vYZ&n[Ɔj~ӈ'6xH"j{˙ -(MES(}Vʤ+ &jZlγH T[&i"(wn:1 F酲WnSqfgqO:Ja?p>.] 6dT ?!Nt&9V(aXiK ">9|T7bG oUS0l&^b; lr:G so5k˿Ol{T' T7<բBI|i?p @mOYesq^"oL z+EzbYIG(A=HF9ײ~ͭN c[GD0'V kHrN#v +Y%te``ڷ hY `e3&ln;s;TDlV\ٮ%3vD_3&:t{O$e !\Gs$vV[p įD![u'-#UxL r1;>Pxݜd.eb~3xBZWB^P[&gKLo.;Q!9lkxak&> /2+ԋ毥((J-|HC EdוQOz-~e2 读Lb 22bbv-GŠ14Z2eS(c/:t] #֔fV%@8 Ot?4hDmK܌ W| %pDޒ6;@f q"dҰ^Ю.g468pp:P"+b~T36rR㒸.~ٗ9oMԖxyXH#TЂCEz x . C?]-Q،x\tN`1 rOȥ "2oJrkչTBzy2{4Q~OdE:x ]XG^bĆ[Rh{/CǯYa_q<&!N)ԀNnjlہ){-JPF\dfMCMGoO\s MUo_~w賨f^s;yT3)z[aH,'9 n]i뺆 =qHvpU5"?v9%Dxg$GŭL)=n 'qYqn:ץCR_n ,@ HBXH;6T֭= 5:6u tH1_˼JE卋DcfW{0NPxK9]]!%-PJ FrYgAY6U$ULhԍx:{[M4];bߊBZfhv*8$ KƃE[L4Wwpԣ`ңےWABq~iK pOWXwj$-`ca,h#Hqښb 2,W֝4u;)q|F@ ֆZm)Ϲc&Sk/Bc4ՎSjdeH}x5L[Jft۴N((7Po`ߘPt|@϶N ƮL:e!y7ԍGBzW0-$e/3a [~gkLl1zVy>4h'&XT :]me^I4mU<X,`J1H"O ҲjCI\v ]ԜšbLj_(C7he`'2\94$6!Be52eY7K+ߊ 1qYu{Oxfa)mО&8lxa@w:K61a{)@PE \IDHl˽ziT"MnehG%tY0Qḧ́XlMk-QISJ䭗֫C@@]ՈN t+? Q KSARpfҪ9Z]S ޸|zx7'^ԇ~ 8mOSxW~?OXߜ-gAĴOqh ~Iźͫf܆__ʎNZKO? 'bwrOoi^rxuq;7];*>KǘN  :6ཆ_'/>aُf24pcRFWT@wY"rwmeno_ɇ72DЃf*]E[;QѸ=S'|zBrQax52jcTa4Vna"IP$*ċ.3 = e A-s{s4=;k||C ~#iyBOY}@4j9V "U'ITqѧusQmVk$<$?bT| k|ٯ.l%:Z&7]GΕuӺ;N u6%A;'O#Ӻv:ZwdՊrGtXgr-;(K[ Tц5'U6凁JkwYG$]X\VWskY,VUQf!`,Uedevф^ݴ#>Px< 7n(_N Ux :)wyԩ0P:4{X7֩'Qnm%`xvUfgzT:nןoUՖI{ף&rIZ?(-INjL' `7 |К5A@ "3=9ؼ8 J4jR])qU/'ʺ/ʓ!ʮGF4͵CNQ eExx5!8;(؜q\|Cm~8ԊH*&BW&6ohud֯?6 ?La⊄w"[)k?WYUfJgskوo H@s5&6be31{**_U^!CkO6!Ҹh5Fn:3owj^! 4AK] &.ϙ\psZjx7{q;.φ"kzq]qvɟ1'!'5C-!zj1X#7.BJ# 1% )P=uħö|IPN3աѠ^T2 ww`= Ybh}I䗄+'91t&{2깇0HnS7*uVQh e PoA9);jPL`> 5KJ֊@johj'-,>`B A;Gfی){Hr>T xpceH_&ڧ +:z,tWO~px5e;5|j`΅wXt;|.U(\?o%, :w7Zj'T+*)r"w#2aY)Vpg ᯥ$ 5R.@IZo @E_lDQPi+7u[&Bl+A3X\u2yC?T3w@e 99-ެ}P(Ӫhuk7JLQX.,InL G;rTCY *X?2z"Yɝ?]/pKV| [3.lzJ]Ȥ(4BEke-X]4zfKf)l erQ_hTfX-:ZtXk"s{Gn"&fj4SvضK81>- ÖϊLBwo'>GXQ(FH%C Z jΥP8M`2ƩkJhA1/،cH[ ,7S\3憐JN7s&i$(bӯ٧MF]|l K$A4o]W":P&!^]JSl }8?U73yʼQA^5l`w%dŽ_ʮG8Gbg5EZsvwn nw(W#]H<*i[.рrYA4$c,[vkhNg0AxB#|˻ZB !5'uzHy.K?0'aphm|W1 kX,C .1a]RIwSAgu$$g]X[%M1lEiR/iK[.ċ49>ׄ1 ]q /֝% atuΣAuL/S,bߞ괴GJwsp~gڸ/KyN#Ue_k;'>pfZK&TAVr]7l!C~g\lM~o9mtt+p{xKQ,Q᫯iJ?c,۪+ύi0ZJxdM2Uv3EqFbwQu &$*MqX Bt.WJMV% ]g YATB 2E!H{Z6}Ɔ9*߮+[If7s&ŒDt@Pt+pq?F yy-VgpSk`iC`nKrnvh Rӱ(`?I,}p8rǥ_D9i(#$˵\Gた/ yY8kak^53sr"\(|ޘPt,M:IsI_<_Xl$Z g,)6+ǵ"/\5*J_VsҮ4=F1݆W'z?NA> <Ȣ; yQ:A_K[RPb*iQg2& z-G|k0|h|. yfDxgUrVUAyΝj??%D~]"S{H:k,\ӑhށۏ"M1젺A7(tM9%sƝZ:JKe,T hb\_P(Q';=>|5f(mXc wL>>"ldqrAa~-"YmpbOk/WQYIzoU?HDQo=T$MV=VYH|>n tC^.I `tӆNe׸1-S{QޢOTXZbeN`KYwjYS|A |48q᫭7fq?_MN\KP]&Aj2Ϧ .%}l}LAV$i1UggSh3.3޻֑_F6PҪ2^AwppJ@bgba>DVfvh: .9B.]yT3*ZboP) 3jwE"" =R]Juf2J>ry(kg7!ɶ^oHf> ߥja~ o9d:54d>TV>5ŏ m \s4EruYbg7 KYrFq6uy‚l83A#ơ.ڝ%?bzߪ#z%ڨqP_Nd*E9N-0E\ϼ{3Xfa#HvN@ *tx0 XvS i 0j u [rtmNm4j <^]OcVF1?D+ڑQ(潻; sGD^ RhOKdnأLAv0tp>S!ΏW ~Osh0󋃱{4>nɎ_76;6y4--`C[ =icp(@²6Hhv:[RO?04 B)ߠA 'Vr榶-I9%u:I9ptg{Aq?F2JZj~Ob6a%B0m$ɴ9b15STh$̇h3Z^Xa\4 ?U\=4`@vL3ZW5 eޓq$7>yHnƆ8N9Tr'Hn9 5^\䨩B!5LϼNVeEi)'e%oDĩEPf6|0S>/)4E`.xH]iO"a#cz uBl*GRbH>av >6Bv:AM B`"4]A^!JUW(Z\3ퟬ=PLg3j+,iF˓Aأ3Vnfj3|߃QIfCp& 4 Mh.anFCħJۣ ,1fA$)TV4`?cQ~Z9Ȯh':{]êrp,Ԥ aַE{~Cn-6| g^PXtv ~f\ql{Ų4'[n9Oxs2Ւҧ<^ћ:NbG1 i@" d:-h(ᅰ5^$%7^$J3㚊!LMjk)wU?l B}\naL+2*$tT#no4+ᜬ[tn %әr L)X ${7΁6|؁'aaٳK~Д?y DUi~G.!e\AsmwQQR0ē ʎc\6! !HTm=ۡ>}g>Q=UzL #}uXdrs٣j ҔMi븘3l.%2S,FJ9AJ3k}g>T<@V޼wKDݽ,Fhv|z e @ZQǸ\Zm>7Ysnq,YbLgC(ʔTzbb ;LflJ bp'aة6K%7(#q觽/C[(x*4v SM!Ʉ6tci LukҜ>%?]_[Y|Tl~\fsB[`&5׾@$#cm7@v 2|HK)̢]zX4?VA&҄`"OGkM%M5$3j7R}^ _jiF82a @Xğ o֯w3 ëzuyI? |[f>ffu |n&Rudm.A; GaC@RVG\zYՙ|95*mNIHٲ'T FLU׵@N9!Ҫ°P'IĭqeKZ0› Md1<^Ý_Räy'31#Zֿ%ۧ{Lv+$$neZ[mWہ6" c425!tBfÅ 8B)+`Kps*'Eb<ÖN`T~lkUd ҈$1JsTHb>4c%̊n Bj۷$RL#~ZB~ZmB]ͧ CR P@(p$9 Irm wts6EpcA6޳"2U31qƞ[A {˜ XV1Cy;y=<ٕ̣,kw@];h'aC] [3㠋(=;[!8L^ G4y&6[t.Oy#7)8'OH@h!NO-׶:v$(FsC)^F\^o(Rplm+#'/TQw;q؝+σ.IPŸjVwL\I߬})%3 {Hj}TuiF|PE.}KNM T;:=g2AaKTynˡ3`=^dTL@s޻ϣ '',%X+ 89.CލCZhK5rGwIq[jӢl+9g5e͐aB;NE;c3푯^G4mË0^B] [w+f'|A`KX.l][ z52vC!f䅯ؗU 1]n+"u@N*A@yhP8_ Vx*]m_DƔ⥫/mYV#F{ ;J `mjbA>l$EO+?f~p4[Vm8BQQި։uJ{ 0MɇL\>c% pVQ b.PX: 3еJ.J.詓۬

]M-K6r;jhC7]LGvW,罙@7UF}&D,*59ҊD$b;%;"R/&nˏ ^ E;;xFKSZZ7%SAJPSzS[^l_鯨tP9ov hkOp^+7LT z$T,lsW'P3UD6=)fK²iDFA!mr:\Cʛ{8k07w*sPԘZp,^uÂyĕiq&vVaC$ߏ;4lV|Uj0L(=pG Ɲ/ ȤCLnƜV堦v`o*wtL~zXYTA7 \&:A</.+eL1j[aK{2։=ȉ™}ov@NeWsyNVb 6vSٻJ3Ζ G-1SN#}=7u3J"P*B2+B"iY|uY0]hӦ-WŧO+_s5.b>-Wx7(Rl%g2 c|a&5sKe+%TlԻy= ϊl/b@ޖc,_zo,,ɂ"o!W?%%8?BJcPSbŗ `bnB`>,PŚiʼj;zxuEbLG$/D\)lî|JRu(.rVõ2.kЯOqۃ jP{m//@Tgu7TKctfcN7|&3ebKX(j 2ܕkt!_*Xe_1ism',Z&{ԙ7(DLOx~`E+7=E:>gFѳ*9Pk,G<O4𴣻Eh'y+I'  \r(lXD Xƴ1Ut0ɉCE|f ]Ck1fioשxUd乬%7-Yaz!0K^*QM ]p*jsqv8`mHfM8)R]@v>*〣e[{a}h*E{fj6:ޭ i+(BϯppkJ|tjH0t Ts[=nKPr.춡'hlΗJBvn4*n-?ig쮫I}nJ2I5~"7QHF/~'oF,p.U5*רq<JpxԢd 9_Ȍ܈ V&}~CzZr;d-$,;aj ?b,\,cT<!Rp~ pfL daU%M*P-c oRB2F$ǯfse ݍq5wOe{dH"JfQaQڪʚX%o_kq"~f_F?-I+e{$;_O.ͺ_o#^@{ lx_Pq-]$ #}Y\񆞎@R㰏s$+脇70\VJgp>d Y{b$^ 9`y$Yrױ"uA-ydgPzF0.i#u)6֪XA}^N{e5!xЦr+A\F kxהpnbzOE|+JG|#Ha2%\X|W7z.VV1Ex}crc!;%K7*VxOSTvKT: '@Szd V??1Sfz'8k,m~ _8eFe@ޗ0m:(rY`HMu Hg3@6 ZN.d05]?Bb2 Czc(BBp{'2`y.842{5&~^|$-3Nm{gsZ﯎/ KPD+jnCf:6ڟJ`(Jw| [ E)&,b!nj\8)k`uH)p]b#(BA$u:XawѭDi/& WvTARK/^Pt\pYR+U=4ewVu yb:"-Jyl[$_Wl&#T 4s/;ƛ=5b1!'~w-2*o"J ـ!/Wo@zև/*\CC6r4|R^US\2Vq Z#fxmQ!Ky`Ybzī/zM1 |~3+^ch  ele/Rď*>ۦz3Lj~O@Qٹ ej}ژJy#9 9&x}V3Pe??ћgfYȈzBO rM!ݞ̇(wX ]I.Dz!ZQDLb9yˮectr=|JE$<5OE⹃:%:aub`;4I·3 JF}M+ ̖ d;Xc4'YI X_׈!q],ZTY$E55ާHp |R4̐ ಭ힓,wCRH S+#n^ \wɽ\y3u/~@'_0gxaϭi-1lmRNU< Vk1ϖۑ#Nr#e\#^58NN5'$55 `$a0 (n3,mW I%NFtސ-.9Q+|Nr$Ad!b-Sq*%7V}M'*~a2zǔѪilmR {앎UoWRótl7Bea1Vל2ìcU}e"EG[o] ZcEdAJESW9nΗ]NS]hc%X Yw2n@+>U0vu 7x$:,`#X"^9ܸ]@d÷8zkA, ikEƧ"/s-Qyq=eG/h3.^vsf"f)Ա֦82xmՅ';w1xI1&3su S`RwT^ ,Kʌ{rKâd@##ߊmwqgI~cͶ|`D'jp!u=}WP[(648cZD^"V@2.lYqkY<ˢᇯ*F=3ug*$ Nd|O T+2h Iȍ:֫ uddb/eDyd 9[ZTNuSZC4U,)mSɀzTU Ob3-)0ų z h]'?Gg3S<)gA6,s9nr'2>HQ:hʂ\Ty饺}8(BrIoRLj(NR-L{yDbض5- #~kbgɃ +.4:x4Y*s+kȷ~Bۋ+p{҅]O/ ai d(1e^5f<8̖N7]e*uKh|l9v9 ԗpۈ \5>_fArW~BsҺ< Ĥ\R/%8jNL=+a9ֲg4ڗ `2'd[*ELK}㖕$JUP Wm)Мo(24Nj;v^J~n%f >[sfy}Gz2S{Lm}20$j@|Z.PX44<ܵ>*VU~X3LVх[:gsO{ ݖ/%$mzMB{Qg CaOxj62Q:HXQ9 6wOJ-Jxޮ|=h޽a7PTv<<@ufOTH3CGWv|)zc ahru bU +j(O$9wtKsDo ZD6P+cGاDܿߛ]ZYb\ޅv)L|2/SM}*m)Q :cj%Ԍ7ZFf}UGV7jbZ`:CX-{ȧEcRIt^ŢT5Gߎ^.`bL\3>;Wv`Ц|'>c'ĥ~{Q8_E3|7Jb͹2]/_@OP*.B,wASS9N?v4_¦*XQ%2LZXHþq m6Ж>ק:paϪJw98PFr*?0_l,*Ywa@]~Ejuy hYBˮ$m]w FZI,u!S GANB4Ep4oM"eWoYzi_IAtU|^!.70xX^Cb[.m -u{:[(Toj\voTp PD}U* u XdA7S0} =.̤5TT\%(9%7+pغpZAƛ&1г> ZR;u#"@RtơL,xX*]yV~y&آxs$v^H$(D. O}68 cM}Hr4œ ,@F3ApRKMz@׿S_'.t-T^N*Bvl4&(7p 쳵:K9qgw ot^:xH[es4 ,u!۝NG5x0ݪnEE\j:u<6iZ>LtO&7WwowWѶB5v8l'hRSG˥oVR2鏽ZHl5J"e2h61PxЧo=qtfga,qET\A/ ǽb!;ZWPQqڟlᒝxʍ!|ȝsbttԧFِLŦ7bi_ktg 9nȖc5c6o3m'w$mh;l@ 咳ez-QZQf*kOruSxz$ג uʵ]¯ s_*9)0߽j~/ꝑ"am)Ts?k9I.bp8gGѠݞDF QWT ֟ih%e ;Erm[|Uw\(k[P8N`$R^FٚP} Ϟ,J0 2GJU fP4!]Jؐq\UL_ +?+?sJҴ$~@ ~Jc&F/dRpZ>vԩZІj)ua/\x_B̈+P|=Z ^F$ҩ %B$:|מzۈ 9g∭I`UAyBIW˳츢NnIJEIW'Ϩ <۱h(P( ɣ'ģ !7 QIZәN'ERIIz0J!:3t<@ToRά#bl1k";E\0{g7F ynXF~Ԡ쇥v4_AzPdk0΀! |;{QY5 /NJ zvݍnTYfp [ 0aEHxd ecVa p\̚_Y.P b5PLZ@ 3;;"6SgO3_%b= RXʧ,1LR"W4˴o]j#lXe&NVw[FۗULaI"is E@&mW}N! XORt -"7$!J;y~!H/ huhKvJBrzT!>Wi̺}_~41T 9$K*;y $i3Z ŸKxjv] eVW2F Hf%,^+l.l^2w-8)3M vCIpHr؛(B痈߫== .%!FLD ldB(u%:sF f^د\6nb JF'@/ն!@\2:i4ҿ=Uն&8r}iàYJ'JK/-ddu9iX+e9(v/*v$PàI>wwP:JO& y'x}!iΑR՘%yPj|ϮYn_?m2g.7``ܹ:|J(Uw$,Mq} E[\1E+k%*Oc֕q++N@2rSl}䣶RoO֊WN_& u`aXѕ2*(x2BQ#z P,Q~tvmlj&KJh";YaWn<;G3{^@:sdȜv*[t CttHBLGE2aǀAd$C:WMLez3>8HeJ~|(5Uʬ Grچ35;goZuGnh l^#x2C+!hpYl@H.Y0q&t7A֬e&Z8;rٝ^G9SܑȌ1jlݾʇ->~f5I}kY恜\H(NE{LL4>r*!zOEiSf9B&S{>)R-Pf֒6,WrAOSG6_65Ӗ^9X&Q?lN,ٳQKi5];uJ]ءGE&N׼>U[[^MϭHi#*eVE)*2锗AW xtN> 4v$&Yimr8E"Z2O9lqR:gz(|@ j p}c2& }y'֫NAɝ/ SaTS+て+tOǠd WNӊ o9p.٬c<1dp JMFUvZ-S `rd8IK~T*9 ҵC0`1t_z+(.qwD,qݣVb^:AZ Uh:_y:=P!Ly0LO~Zxc0~zt䋏-,'.&7W fݝ|aʎg+yz`;a <=IvޞS)xz@u~}xnby[mGjXN3lsM^buSwhԦD3ߞenbyIKN؊q 4&u6C8S)w_΄ h鈛)Fs{|zMq=crxqz#l.{aֳ_pjl4or[gxzȒAfgPFg:T<;,i<=[z1]뱇 !%]$|'e?C\V\gCdcz4ęKB3,cc9xOތ+Ɛs}>rNؔPmRNׯά #gQP4 ܟT|:8PnLw*x`M<\ɹLLIPtă0L-J1GI0W TEI+lV@9!LХM㑂T*_ <2U1VMG) [#F@mXԴ뒝('AJ@7699;Vp/Uǿh_Y& W.#58kI_.Zby Ey o}@4gT\<-5_i-i) TV uYʤd3aDȰiXSo8%#pkE' $zsYhKfEL~77#`z1֨n%GKtRY4U=U|mD@)C3sՅxۧbZXf@Rg 3 ryRHD<ӹ~]t zi2Xg_2_t!2˖(5IF[hr:hZSlyt|@2{\ GD#d‚D B[Э3\_9j{@6C.Ӭڟ][ q^s$+y+o+J=q̂40>*?t@:(;2Iq"0-t.nI@GN-] $[VgYho*[@Kg|DXD%^pU2e_]o`{Y̝=oh6\PMS$2r[dDVIev <fC>%2l zʫ;AܐUiɃLu>O1+h-o`!CBnHRՑ$^[pڑncCN|vI_Pƍ-jڻR+MIX9IaB:nI9iֵۜe()ÊEu lH\Cm t${M̢dbԣAԩGcg _ !jxVnȜF{D\p} {>GD"]='᭱u$?qA*}oo#F-x>ՂRБ2}*3+p܏Y#!EmO*7ؚ8{*gN QLC$Q!q`жl L WBņZ-c}ߊOk:UKώއ}2_B9?JfLlHäm1,xH2ɕVan1pO!+X'P6 X }ąbN5YI 4)ۣ^asӱ‚;QKX޶)*fA^b:I&3v᜿C /_9Oٰaro/Rb9gJ_vbc?ڈ h(:oέ6M=gQR О Xnߧ'o^CIv4b.XjdϠ kRJ'yAl­J" jtY0i-h}*D:L%~sP&:M2rdo=bV^- L/p<(A|t:I @aHƜ4ӰFI*B ?`e="%Uefa(( YŴa{S񐧢i0kגǢJ%k6n(Bk(-b"b0tCc_gx<'%OrU".zo'{LݟcԂXD.[I"h46fS}$ڀktd12 a8OIQ51̓ب,>(v64|/dۖ/tPCgk_ab:@I85lwgQTWx>_9`%9*J`.vÀ"򙊥_ o@honZn2)b ~ϻu̖ @ԋzFǴjzϵK8ٚ6kX'֜#ƐD$i:N6ӈ sG/+;֘Jڲ*k!B0A1eCvQGLmC|8wjܣ[M:2RHMDjfFm=Ҕ@&1&Xjt$gG0p!;G]{y}K&i쉳1ܑw@ Df ,ک VMf zWR8ҫF̣ycynVAKZ*L/?6$S6ΡJ!5Mn*ˇ8ewHNJqŸ8ӿ9 xXa=4%Ўřp zi6-8(>bJc=ĎdQmci[?d~ZfNt\о/zLqܕ߼=rXaiы2H/=SP݊!Zg~U-9D+(cpYl7|!ST+王ePwXąX@,4%F- BoL͠AW/'. }7'9 x *@ZDX!taov{ uoI,K4z86tU6Ou99) i;̣%gƉO_ըr='Å6&p/Xh?3J" l.j)A Vj1٦n9 7y2ŰY8$.((j][ppFHf q h'ї秜Ј0P v( e-OXYԲ3XT#ϗ/8(7 2B=E%e5Mţ[x'i HSeeWf$~4sI\]znHymv'|wsi+.ٟ^f {+JSXZߪ@@v??̼YK3mccUV>V M2-ߦKpQ8G О=ܤ$a9λxmX%VgA?y Q<ǽҲL:r1<-R b?Zz?emRciա?fl^J!Nj:B{,]kd*X d <㌒tʼn򯻼mdI穲wtnUցC+SňՋ_'?^3j˜_jAq]Y6GuQ]9|s"; 7:? m{WA? kŽ/o/(.p]8Ѱם r`2[BsFTK4Y䝱;A~fߨi"b큮wDƻMy/@@w-"?>DdעS\Xxɛ㐸 PhjDwnZ"Zޡ0-~ȄVW&KD\p%`>QǦmt4RSgMʨ  B8TA%ndS+ey?'< m Ί[V_@6>[" A[ƏUĵyfʒxnkJN9^aI(zK)3ؠfujH;2=Dشٲ,w5댺]Z\Wzﴴ%BBSj~8wB$maEgz˽aa/ݳdpVAQm$&^ln]RZS ^9=-nvFl/gUեU%9Ҵ5,E Y za:T>4k}5 -ujMTA  Ø"j/q[IN=N(oN>Gq J_ 2A]*Yt!tVks6$!Rqg#Ys'.كѿc;bMJQ6Vʇj0vvfL/BGՇ͐fg0᠏.H@ |w.ū0dzJ= oDDYi Qޚ+֦On-K]p EBoIh0w_aÓyXQ=#ٻǘ0ş/y)7"©?/4+!"ҏB |)pᄁtgQn D~b)Wͣ1[ZżI܅"K>Js @ |:^T;ڃ{R1n b+O_ +/W VaLGwRX-.̃v5&O 4aXņ=QI@-* ~΍KN6/#dߖ eL`E?OكIڏ+Mg>VOFAL'kPXL('%Ί|0scZ'N^(_w' 5B|zČpPt߹8}NMlbFtܺN1obO;|)+J J鬘ѣ?#xPWEP5\$|F A";ߋ3зhY(`T`~}"1Q.໱ TvOhDw%-S k.()b6igܫ٠]WLcνYh<7my<*Vu],Wýka~F$=;+wvsT8'ûpUm_ T ;BT]?#ê1Ib\dR!ɞK ӎa 5[yLvidv Tcmh3[$g漆RiucSa=JlK*9;jGSRa|#gF>ԉH,w(#;m_fS5THwmS..a3&RzaR YuXvntr;q1t@(ɨ}? =ҝ f..OXh%mʞy?.&iMAzE),[@)!ofV[:̦&DL/4I)fzҎk[v˅h6P ai/1|6}ȡܶbEcB6f(h^Z`W#[d_Ns9d(cI\Gү{Md{ۭYPkdQZ)?1l1AFP;'}o<9e-Ծݪl~-@2L:TeHѴcnYۙ$oJC6+n-Z?Ҧ1lfx$1P!V]˼8."D=8-ۻS;Dg-vdTh&N7=4b[erVZиwdH)DnoR}IP8)󍵎{ps6>w&]EaL,5*0\8W6J't;zWÃh/J)5Mࢗ(WwC@ppSŧ23L5iN:uKҹ.͙,=ŶC`Px5W{T[K͆^+\7¾LP \dmۿY+׾)jZ3C[<#:/iUd%U/!2OeZ!vYmHk5;!F\*sCyӏaz;H@=.U[r fT0%L;5Reg u\ABqQ=Bl͍k` heWA' 9*S LE g(&=j$$=ey &7@G%ťEP:b)&ÇIx+Jpj##epyp^ZH!gZ>j[b=n朕V9ʔkR`j7>ć|[@fI iqZBN8؇=LvZҺ<*|\3uM di`>#3NvSm*_KʁՂfR7Et1= @* `[q.2IM(ї#]}WbJS%欅2f Z<VZ -A&01wᮻ [nwjZy<~~=1e6]s WՆ _peX $喢4aGrT;](%f''mGJT:8P/nyEQoC~X{SZ#88$滽!ad:DafZeZy1F(Vo,Qd<'hm^P?>W"e?IVs5OX*f1CԷTpԎ*AE;GrFF ?}>2-aPlz$"qV^:*Cs+]Uf3f~ ,?3l_$s1:™#¶^?x-a (AAjCgE'#YQmMtOGT zס<^=u/9@emғf5լ\wq:"ׇ짋Uk:*&5Up@#AK.B})cӞc]zNVJz:MJ1]Bɨ}k:n5ΖEݲ{ra.z3HgsQ^$aʫ"HJ QVU bZ0|ՅZ `>Bق#PaY{2U1,Ѧg9<'JZH̞ZF-ƴteú򄶦Vs|TN0ड(#9o,'IQnڎ^[!Vڷg &wssBQ WFoŽjbukstlh4-gUn߅q/+lTA؄,B0W!_/f0rf q$Q gUQDt:T0VXmT_0KsKq&٣zjnB%NsHFo)kzLP9aZVܢǐfQ5Z$¥ x*Я=s'^TҊ:zqm"D\V'IS퓟zGB#.chS_rO@͆1j<֕Y#іd,s4ev!kNU/+)SKu xFߵQWI -OLx ^!"J/!Q <>*ѹ1&g'چ%Vs03ߤe9UOH|_'J$NWz_k&mN3;NLjݖ$k0$q zD(a[$_D xHV-lirJ!|\l09#Q/*Wϑ#KNg~ja-AukҰ"&˞\Lo'72Jq>u R\~4.CsdiX<^\{s ML[&ȋvz% v֏]+>xS,<Po\v]m';LtxE¼#U(qLbX$`Tx@[Ӆ8ȖC,@N]` /^Rfخ*v߰Njb]2@>M)x%"YRc~aD;KХRwU' h!Ҕ|qi?%&}LQSCfhʣuš[d?86t+ #^|\); [ym3i͇(g3e'[]GDY0 @=Â,|6YbH,PYغ8Oo0/e"O6]iTb1l|)"eZx5ߖ|8der Jw|TLNS,6(EpOf_v] Uu \`V3Tu5ף9KϨ$.~hs ʽW6MTJ#Z<s2iVfˎ Dy2%֣ޘyƑ(}R#kmW zh_·*45lOsqt"t=&o hdV_dKe01e5Nz,wZMkew+u3@#ծo --?˓>l'5LlOWJ$b]68Ӷ&-I_YKm3qLu0y"6m^\#M"]7 B_7] le8V\9x.l)i4&ds:Eb=WH/0dF i@8~VG lb{ /fasK C8P(|@em\z*`+8GU!^BvGVGԭ/Y!!Z3@8I2 @'5O EȈr0rzCj0~mGj!UevbxX.k_Ν1Hlڳky^:>;y+?f0T sO1~vZ w=K85L3(ee^3aWpדjW挖>pVSbS6߳Ԭ'j| ÷ĉe&Q! f FUxhrX[HY&cגw4ȎS-'$ j$+T 2m%DRAs8 68%@ g̒/] +91ǛSɻ30MOAQpn0kZaH0T=P'GzIϽyGoԻ] s[!pj;QZj>I;v?"a&6H"QYtt]JV4Di,MfH驪#*"긮PW.q5wիD;̯`B855zc9l 8)4T{OAmEYՁy{-ٱI'3q B!o#@6(Qr&>r霖ik L)<~lyo+%+;RJ%;@B&eMot{֊~b:,1SRWCW !D'Ş%<wX '%_Y 3[ _8i)irM?H'"}dCYo2FN\1 }Y >IՔ&:%fCeޝ-üWQ)!wruf+V&uIP.7alA@b[r: 0o }םKͻ0ĥf9RY!y^Ba= RcvG7Z ZOQe#)/I J ÉvĀcM;((NFډ|enma˾O@8rBn{ L@IrZQj`mB/{nuBP6D2ZH}5ع5fΤRrVNaHoLNLD x1#8J(b v:d!RF1_LP"@`2|G 8ǹfUG |8v0`Lݦdee:Dt_ ' ;6;f-G;t] wS7 h2vVb`or00\OvQ"`M,vI!I*ivA^7"pTtP&յ"Gc]]'I@ųR͞38N~Իsqlen7N췧{GkB_QB=RNOypxS4mWE?%5QCՑ]^B'`) ]h!}W#ѳsJht{fFN7~{G1ʹv6ڟ`SJ B;^4ښoE#3 _@m\xJ v!,YSw^\]li~ꏀ57Cdi`m.xtA7'w}-NJ΅ K/Z78<|#j-rU1Vr@ީLu䩱҂KB ɥ{0Z$v+:%Zx !uvx8>I#Ol+4y䮻t)_4"Bt41FRt;ڌ. orIF:xlX,6RAyx|)!5wir-bmt09U`҅^OdQC頨]B"$Llc٤I_`rwDm蝯nV;$wR;]:7]0>z9J%Q?5/v,pc2Za؜=p@ 'h⯙5ƌ!]5} Na!Lf4sIvXbkrlM\3Q9:_ ļUD^tӥb:1ߠmݬWGEo*m&?$F䆝{y,G ѣ<Mݳk=/q!]~x!RZYMB虹G&);^ }t=sNO)_WHBxI_梂avfٛM:X9Pip -݄ W?#Q,Yы!h!,E夀iShK Ҡn3A x|5o'ksd#2`NlkC[-<աtqo8  XB<gy^OeMq|_@( 9"i\faI zfrptYaKA:ww[&&|!O󬄊1NjkO}oMsÒ. y/͸1 ^5}S%moV I\Bt}6m@ mSR&;w*VP"0[-w c 1Ob!L-ZB=%(6s4WHCЂZS}.3 b*Ѿ7*V9f5˝Y Kf2!CCZDC=QjNeAP,Jc}'[rj^hwP Pm)E.2͌gfG˘_qf(ipV5z E{0͓eOAv(so6%U}?+Mv^c t=Ǜ 19BSg u%x:tmxE3öTE8^Pm^gk8TOmfoW ,i tFv^Jd L%>WPUD|3 `xLq.'R!UWkYȖ߷ B W C}xzM4=v'`!kM'êP\3}0Q[! ;<js٢$p]|'wOb;И2*\2\3_co|;1$M>:c<#Py.J[.I9suw*irbu8'k0l`R(WiȒٙUE'-ϱg6ND֮+wpy!峆}vIҀ=-k0qÄ\% ,P`I:е =Oo;>կ~-88ƀ ~UYI v08m}20  -mpy l*EwIp'P]YrⱣƒ!Z}{2"@Fm.S V`]T?S/=!tMi =fcuғж{Tiŏ,UdZgOGWu e'Yre2|O;r{h6~"A?Z&31؅=3iYCFL3jXwZfGz洤 nJPHHQ~ͪ~8Ajc2$BP62` k0 !$RnPA6H6JMp/;J,A[*_.XJ"Z#g) ӐoBw%V#E ³t~Wh,D_`!! P06S{@h-:Y4&v v/hV`1S/ci9\o`3k8>ٶMۇl<ñ]t!W+ 4:M6bNJΠ/.;ǐF"c(!#O>(++Obfv])jҫ l.)4 kM7TUِ[e9#o7Z!~҆ttZ0>*,MqA歼o|HΏSb(=[}=ĸy5 (dqUTn信T){bR@}a]nc& 0uI+V.sIYB̨Ƽ\Nv7KJyE8(,:\m|_/ sЬӑ'{&Bi-^tI~/rLy/(@7Th85R оB}0ȼbHߦ-جp02- p@ R&Vv6+TFNO[w`V?Y?ښ'2+%,sUgv|E`DFydI{Iпb FR-nN9\_ rE0C6AȑYKQQz+6jw1YLT OZ["4a*MޝuԱjqoNI+kVG#ˁ_ѯWXq;7Mo\k_}̤J'0^QF&jB]zBmQ.˿P\%0&?qމ~V }H?Zcy۩[&6BOI:Lƣ(xNa?*h+{ǰ@#HA: gR9r$ 3jg&HYVa @-V"}}0V `$iXj%x>y`Hp$x%htWeC> _ڟxVyaK#gP2WHy(V@3YQZƢqLJς22j0GRK4Xd^27TUɀ_QGey0o\w2WH cc߂-pgIIRcA(v$HI&W}0qF PRel3*~ʌۧG[Yj1{>GwLnE?+F7K+ rT(,ɣB//Xfຼoj`uL= "s"Ԯ - SG52=x짜jɛ"a|{ e\KCT/2RT=#, S 9uef|"aS/MyI)ւa4A s/oiaMGo4TlTCTJؙ,1_ ]=Ӡn)Ji.z:7d\#wY?ɬsuBvďfH\`]Ι  zh ؘ[ӎKIpEȫ><z^bd(Iu㟯6l҄iFkI=\ܴdH[3W.EV.i3ٗ B¡P@̗\Dh?7Q`z>>yzW9-#@gx3G׶yI:XWo6q?J+wȤ CgM߃Qw3L4 Ź?Dm^߂#="攚 A} >@M{vcG?$> +??1`E=yedHc5]0D4jx ( ouu#>-h(T$dxI[gB7/a()K*B;$JKP/vN|+33x('zBNA2{c^I.w? {.)”<1LSMU'hArSAO!<øg .nv/fԇ<9SkAs7Yg쥠XGpW#4|X hUuΰݴ|0|E^V5ćcw|,Rs6ѳE$0Ht]#CRt [s=uiL &I.TJ,x>hkAz,/U6-+ &u:ǚy?3!FEGj,yIKu7WI*Q-kqqxbo# a"^Xr˻58Y1`^G끁~Y|F ՍvFܯ c#)n7 hCbCB[z(Po FbQr<[ GsRs AP֔=ViXifv_WinS,|u_\8P@5t:0tPVU]J ZRi+2ssVվI8gB?t:7"z0AU$toH^2Wh$7"{0Y"&V38Q?[3XVzhNfۍ_(ȕcDB([ wx1[+ k!JڵrfrLXIߓrB6V_̰Asť`A" [=EbvYY֓:O*Mӄ35[ocFIeоL p=oK7/' ˩9љ4wfqg׍D-Ѕ@TJlA*$K^C]&Y @5J&ې̏/OMs[UNS3i!/ՓDzxZ/% d 6@4ӕ ".C˃" ĭ'Ϸ'yp)uP%1^tΤ_c& }{jcoB3Y>s| ,K坊p,tVA>-8&;tTJݧۑ j٥p}^QUaѓ2yJˍP4|Y^ԡs;4r!CG_jtRKset0Fu왪J|,6eW6+u^0SG,hsAN9fx>{5uZ Ć jquX0~!FG ᆉ /i6C,M#CnvFh-\H-bı*8nJ)u=!GrNy5eQRlkF@)Z#$-SL&Oؕp։` HFU&G2]\Ol5SP?r`oHw꾼6k-\|VBJ,w Eםu$XمWke  ^Rk^Ub)LhͰwamsLG LCb^䬮ҞY˳?^W3ќ#c{B}p.0qp[Ae%/BM*&zX+YS-&B4Vh px~ܫb<Aa0e:3^UH={LGE[(@g` 8DS9&dH՞|]U7wqCnN l%2XiU-CvmGu?|V鼫otŢ" aq T$jsA+;,zK\[h=|xDAŅav2վl o+cTf'8N^& .2r0V:}iM!*9Y`^>;})F `&\VsIz|W55:w\0.4*t#حt5{ k5Z~e0ie0β^BfyMZ?d"LpV`d\5++Nn98FZډ~yiY)[/ߪHh@اX&c f xh[ʭ%w웴ޮ#ZnUq3Zz!-s#(yh78Ŧer]}X-G05htiمэdyұC$3;(@Z/iXU5/RvJuU6Ԩo V _#OсC{EY9 R ŦthMRkW9o7FۊJςw,>o199BC  yԪ{3juhJ,]1[|eN>gg`?AwY.+SR>%u* ֋iฦ1(ɰ,.b#̮2%4]nP|1&^A7ZW]EM *vnA,&CʉIL>35j́1.j2+Hg1zz=_=vɹL*`DV!R O8u a<ѧ<nA{i AW{n<=>j013SYL=y&t}u#s3~M66CiTAw<. o>C99zCGuY gxGW98> VW-l%{Ϲ8_}#[A[SEJݙ_5Y {L" EdO ]*)}sM˭zQYL.O SL.iiI@ qx1gE=V/85'([SMҌ6&/Mv_W9|$Cm7$/P6|#MDTo\es,Mv.llpMX3j2ąr٘:AXIB픝 C/IIC\e3Cvo@=nhS|V"$0zZ)s אּgU*]2b8E5~{ŭa58*,>5q/4w/SGͪ}/p 1Ƙ%d˧ϳ;t̊&6e&6%YҶ&-}V@ (? H뛴q&^ܴ+K&;m? eINv5ݟwZʙc^H$R|4 $D$wڞcV-<Rc&D k&2GIܟl@Kęt<h3G•/2 jW:':i|3~t d!B \L v^ iH(v)P_W"ޔ@O/N>ƈ洕i!mfUuc.@˲uMP-}NX<JxrCucGAm)oq/Hsy5WT4QBˉ9&.zEc6x3uEAA?; &(xhbKrWZ-1@|bBGh_LwEw($f8΃^I' 0CK`veɻN\WZ4h8j˞4K)L#3x̶.MhC_>Ծ.Jc5(dXI^ɒrl)-Y|dR Ʊ}N蛺Վ 5gPŹOYG3)#Ɨcfx`mLsrA̫xvUr1 <#cf7˯sBřAФXx:T @tx<.}({I WXo kpqI;"q&(ɋcdU}j3ӏ F,sUӛlG)}m[%ւJB57omcۏct+;, 4X,RkmY{]Ց?xG%V v&;W;})W {T:ߌhL9 Z+|"`$8HSG6.n!ŵH-*Hˆ>W䳸l ҏ-РZ~e4ڱ*Ԍ+z5aյL@ +;-PpH+}UDK,WKI"%#MoI&6`*ʼn#o%PsmlSgO]}ӿ/ z%\-56oaHֽHO r2o5eC6Q'М(\_#m_fpؚq.vaѕRWUDZ!Lyz[Aw#.U-ԡwCkȚhqUFDD;Qkh$YTA3oINe (m\*wٍ$~K>Sp~H;'1]Gt/ƾp|)0tXj{b[eƞoP7y^55Þg+\{ƅRgoaɀ/lFͩN';JtNRD>)n?tۆ{)c0|A*)!<9fjyZ;<3}ͱ?\GճHF;ݙdy=xYZ,^!uJ v]q$lQ ť &X. O?#fW5WÁ9`[O XW St@nu&/z([h+Te˻qb兪P.P!m.Q),p__PۓF\ڪ(7u loj5_vQ()ad/ Rs_1a#1'8z˹nƩ`oCt{MGD&&5Tny-U& LӻD(  5*5s?z)tC6XvC̵%1]͌N;93l xNG}wo;Isv~+5PG^z{p=6&06♈ F]j\3bÙCl/! p E 'xA|t }F'M :` }mؓ8/5h՟3N4^;űЀ JvJVsMMlıo?F)TBNnX8 z'"}B m0y݁3 x+wk'^Y%E-<BQ)=(K3dJ`u7 K#xcAԧem P*Ujj#nȟ9*gd/c֤SMe&2J[V.J?q#5?r[z]l1cׯLg~%Mȁ_z7Սܾ7uR5aRCslb5o$@ݥҢUE-L[|_ZCQ7ݺ tK@)4>A.s 2 !? v8EnЙBa69cHJ"hٜ5ܭdHƴIAxt@s 6zC4RW{/B}Q^6«FB~GklZINs,J0wcTR*ru[ pAh0˪]+ȫ5 (޵N'P>LEw38)[o'|pF ja BC~_rm0~µ:`F,Jݬ'gh}Jۭ.aL6IlS2c|hzT=ȹi,&k BZ?4 T'a($ql"иUsчﶽ.sox1!{[󢥙* 'tPaK Hp95[{i6'I,k8YK Gvvs¾ P)VdmǍ=hK_3p.čIIY62R ݊@j(USz;aRΔⴁ DcYRu}&zb(mnJ:Ql!wǗ3)~ :#pN  o0ҿîtNyoN]5;๦W.@]ŜK?2̢m9-(Y~ɑ:r={wu]8`5`ѕqgnQ\NBDC%Kʮ3C0cgx {'-bU3lq& 0n0g)t 屓Jg?~xWF[B8{u:'+J_?Y_x\pEC#w |4@ΰlkS$0_8?P >@Qڏ=JUvyʻfh QspQ7`|?"ox%k}+#M$:7ɒ SoS!`j; ]6 zRKXwW2hBc<Ϡ&.P}&jlzt#uy`&wb7,~T.il8A( {؍17F^o=P&5Ȋ" "Г 3nA r+ȃ4{g`v0#O*c‰`T$߈tg}pĦhdJI9oyRHMNh)-AN7ѣi7B:1JoVkزfy>^A7 Mc![ ә7$9_'gvB f~Ar'itCWvtVVڶ1nP_;>aNcoKG}5`dsqS -jǾkB-6ٳJ K}-~iIX4aoq^(A^np)w!_񬫖7_30%x辅Xu$sx5Ϝ-w<*29fkc2 oC2Ib@A?`Jo :^ " @4Q½E/}#87'X_NЁGدLsnx 9O3kZ݄H (#`~6!DIb9`Ub@C1@ӬRV}ISPopp5.D# [+ Q۵詝h X`ߏ~w΄g>떒W׵Q:TGs Oߠg 4_'iφܛ<ǦI@a ,ק=t2k:O{`UNg|m1,\NVK=!}$a]YRy!H聵-|/%з kSpb Z } m0$Y=daiS 56ZzIGx#jP$Fǂ=Ep,XQڏl}S~#^WUZa0pF/ ?2Djc?הa!BBU¯$d c+ ⡗V&Lފf򔐥WhXDsrpPt"٥UoQw>R@56å pҴr,HmIڷ [K3S~*h=:siPlKcZ7aʿS.͋u"@A!XVTV8鉠bmkI :5%el+}DnXAG; "hZ;hHdԐR P)؅l۶q$a{?ʛizb-dh@ C틚'bV5*49 pY>\W,33PЁi}iʻv(fjQGbMI)Zh SY񓿶Opa*ǚ_eélR1fE32LZݏX889ʼn sA'R~}G2&.l&˫gqVx^?=Ua0 :ۃI!ȗ zD)Ěz@w|}hd>zx>#~4qzWIW 3a!M-ϓk`^o˝؜ `4H{PƵԥ;&zJƋ sh եSq%UeLiX,_\VauKi|үzEKFru7=E']X' WF_\|E dhswB-_g-1ñjMmw":ҳ(g` , #^~_ gy4$>ƨo%K6p+K=U2W BM~a?1> FB$"X{G ?MKYE8.H ډ10ka'knx\J+mXLχO8Vkhd_8:&DPEPo2rB=RDkV5wʌ>mCGM]Y7]ɰ5aT$K17EuԏPoy}=B]w]>E@Q btQ>[P^ v<qQA `[JJߍ>#EN[v,P' ${wGM~4v:hPz9CXj:cZ5]٬?xBVr`hᄶJ2|DWԆ߇F5ƊYE7 puA{Auiu$N#5?;KO|-3|LծmŒJDz)r=zvJg]p-(VWvo<(a\s#\Q7ZF#T6EIβNӶMAkԷmAlEQ02VpX+}('"2Sq\"{3\M]Sz^%^7֤Yioo}uu"e;+,0-e3_NKn@ޜxrw$jaDx*x~co@}ۨ~FT{Yk8T)K}J=;sDA ;ȥs> qa*}nmE> cSZ:(qk_q-A:ѯHҁHC@.&ؒkI/ƚ1$f%O8_1YY&>z3^a\^f˰le#~ :; qm X#ݺ6}E% 2oΧ9QEi$w`\yN=/{ %pYȳ:O2,"NeS6#Xc>@̣9qߓMUsae0){N&ͷL| ~.11M(ZҥsBZN+-̢]O<%ze.?`6c:L6An}6~U68']k{Pi>;èзQy~ٮXB(4df(Vwa;Є-Qźˏ8V-[%d֣< jQ%$3.T"\`D~x\yEӡ`$C#1*^t1_$5 _ h & J5ZsZ,@Ddrfr"b T Oxun]_qKyHf-0lM+SMJ^Oj?lj K}%@!c^ɩf{kYCD$xtk@+#e7e4Q 37zk _3} p-0f&jef^Up0m/9@ vO|;ϋ 20dR(3W'߶9Ht/*̓R>4/KڬHXHIr_7Bė["ZJSLk{8P_ mY}Vֈ@ro&=IQ+g8)Bvϰ$sm'# !+q /}(v쏊_U/u K8׶eyZRluw\^fܯ1,3l{[ 57Q,PZCѦV7_>ޒ%*:g@P~"sSozr[?K4_Eݾ5;bPWD0[;d(|bOcjȉ )k M0^nL$/i R nSS %;-51KI)Ύs׺{gxʗH*GB)E18R 2U<7 |. ƧKEhn™JRu/P&LGheX筆Ϫu`.}XDP3 B|[4!v-+ݫ#s-?-C7m=jL=BaZ72vɮ?^JH"nAzO+s,xT;G$DIR*O6y2OH%:~Φ ށ%Q>ˎm>($f2\瓈dUInR|lt@7KsT7`T_Mq$ q mF|(!P]εNpa8.~ ~ *H hMqv[x"{|lbQ.!5X YUhO,4msMYVIUj*p]^v9qXZ^J^0iP]$y:ZNCIp6l OvgF\UpLzQU-N}t3f`.iydic NY1a>!P9mD:s;o19$ݏm·grZ=Yc 950ZܟDGc$;Ya=(G.SŸ3qHK^J #Fj`9ƇQ;"Vcp^4竃 }lYqEz⻐iV-6QN;p61\h3j?P*l6brN1C%&Kn1/a` 0?z +'Naq9נ0~VyWa-En_5v#@ec3_'w8 ʂ|~#ւLE|qfހc*$ rcwЯ N-m"5O߼}+?[]áκ]&5 ^$|8%MWgFC\Y;!4G>qre5?g^rRP Lo*ÉSjO -M 8s'DR\K %!e~^unzZ9aݺld:4={̢xh^*%DKr/^[8Q ,Zt8I"uCBh?ঔЅ+lJRLMi@ޏ$Ǖs-Vwnl>'LIB ?ͧ% pvRcJ4itKŝ\BȄW=9N "T"?T[[czm5eQ!Czf>ՂxmP#*ַe$8I3Zy-J3U!gzU)oԄZH'6.||{G@Py3OtJCcM-1iR}ݬMk'B*w?1 ]=T!r%E^+ `p\_8. zeUubq\ q~f ʸsMNim^$>)@B|KQs^S6ؒ6+Br?H.5=k e5DB9|{/G3pPlrJX?\XmaI5ofhKD]TZR$` 3n!z\r wɓI٦[Ṟ̑CA6oPBsXkRCytuuK&Q:-GWxq 0ixAv6 hu`ݗ5&髡y8 >p:ykߓIٿZ{ pױ3:s72"*R>L&Ig4txYj=3/Kb LvW4 sܻ*F%Ϝ%6K 6Rs(7uu?LJ5! #UIͼiwB5:OsrdG zIW\&cjlJE_O8o BVD~ 8A#C(k9a 0SV$nОϭ7BXMzDs/bYS.tO!/>T n OdҀW0ţG6|<4;u%ff?BJ-䯖I-xJ‹AYіR[5ќt$شQG|oO\C,Q5 j}xp6Թ11CH/Bե XADocoq(N5\/:%kV&[CșXU3 RZq7> yXN$O&AP}{Gc.1*zOQdg>@c^ u6]\4v>1Qʁ9H ))}$tĂѬI%@bxg-^! ̫!f>O x{Cb .WPlU,=HܩXBᕻP#5(6IՕ-(I1R|R {MIINJ[fD ,$ oqe/]}b~WSc=¨YZo+~}5Fhnwj !Αt#n\tos"]9K*n4_)ٻFi.ߢ=gA w` V cP&ޢi=ځD1pNL[?ktOVesEak|4kyzQ b>9SW򼌉ub\IAOCqT_ 3Frg{_F0'ñHVJhv &%;4oϨgF:&^E#)h^=Zji/.^|i@ ^oH*ߍqHPܱA5H6_dmF^l3  jάXp܉Ᶎ :bQ^\%^:)mI)ل»sgBde1ZYXMsAOUcr|fAqID)4%Hb#' áQ%\^+L>2ʝ$?)IC\#ObR5╓]}d;wr *Jv ?G=N2g8| [+j iBt<zqF Nz„# dMά>I@,uxKy%&Œeo?#hGV:~G 3nkp; p4c ЍP7Z!ej1&[׋ .Ph/kѨ\xe*ZQ s\W-t֢֩* j\ G3]oh@!v7`:@=^v#'|]jʣGMA[_x_Ux:"ìwڄ\1M2Ϝ| G}p3a~NG2.HH]ŦfJ&ݡM>U~<.ȟeU#{Ia˘è? g"V@+lˑ,Zۙ\Wm>zU 880bO /}N=z/G:mnBj(UW uHkm$CG|JkDzCXF[ݲ, -b 2*)n[i.|*pVZ,fr,*{5ᮗoqc7S֬w~S"p.mJ$أn!,W#|{z!'1Xˢ@ʼCJ$U6g!WBnG( jS;{=A-ϯ LajZʋ6.VXxDzD!/_9C\t6= l'*HqBvk_|W(ހ 1/[R(~h bq#Y^q K;u9ĢM)B-uе]ë́Fg("գ'`\1 !`JF}w8#,M_zZ3)!u2ӥIuɗΕ"ƍ@Z#=vס ΟtA˝C.F}깎xQk䊩'62~lHO=Tb3_ wJõhȫ zTzSP?Ɇ=(V=)w`an<3T-=&r.>GzOc\i;6~&4T'Z.=N_I%0KkP߀r( zo7OOц5u}|*pnGQ MeF qaKyg+n,ݳI#>(u˚P}:KLh\Y_ FKq^k+8dmne( ߾ q!N^=IR]2_WMc"2I ~L$8T6MN: OZ^R,eFiש -䃤{nۯ湪fB@_v͂=' lv6IEv5p譻\+| |DxuV#U˧ *|Io6I|bM%d$S#DH\Y|M_s3~2Gf[#?vjt^5=2DVR3aݳ7>V !T"W% XJA占"~ n/t TOrIVW? ~m@f3VX.Fl&[_3UF䟤n3YC?"M f܊Fc/C˼w߇h%g.x ue$t#2׆RQ "4Tsu㸣;Ntf^Π~8F$[ ]fm c񙗂BU04'kb&Ǝ;  s49޿faW j U9kЍ6(] ZQ?7[31[ou)8 DF(%D?HȎSlSIY.j_ Q68ň]. aָ^%|,SĨg/bOw\˛9d0wlUhd.Jۘ7~MK6}wRy`/הjJ.»ja8^Ӓd*Wز$#qhf%%Ls1 QUd]+WBxNkZy'>lW槨=7M$oxƯ[[#%ZfBiznAYN  MSX_\eSœ[ ΅LD д_h-aeԂֺIτ^9d#9mrL Pʚ$pM";x^ԝ 0NIh%vv@,R-DZy)^ӹ?zO]U:Ml>6S ^;8$z7z*W$)s4¬X6;60KRvsMcZ(͟< >bpߞ|}b+qC(0V&S>8-:_Z"Y%y$oMw0r}D@:9b`_K⤷~mU2w !T V_-#63AIpuTb8WpLLLz~Q'0QtEt~j.H0ҧOlI V@1UTDrs<6bUh8/$=-B(~ j D 6jϟ*2fjLFJTȌ"uuǠ_FڣŠPiʵ'RqULe.gՇut:U~rVK -lDn`0Yq Ah1jˤq G wQ:sܤ8.H¬h/ءI,>kF 5jbdCU`:7'Z-;;t|~5u E_ehdꦱy;=@SޤeReg nbQL#5(%bJ揜b:ec 22a{ XzJ\&9g6?u` yHg i]'cvGK?Nc4Yx4Ŭ'w p1#&q$ÖI-Ŏ6w^1/0{.4Ej NC|߹"7,Hr6#4> x_C?uX sSY} xqYr~4{?uJ(l"qիjx/!ˊ6[iSzTRxf߫VSs;..o(*ῦV'"Dmcʈs% ]* 15xvpePDwURn#Ppn2zNAi"#.A#m|`.2?օ% EsCV6u*T pFʓU6e k{' r H@%P]hpoU @ KVXb+:MGB)ސs ,Qu܆56I)ͤHxt=<2rDG ܀fi= xh şdȸE$s|?K 8^.L"ўׇ#p}(B;B,i ]!G⿪+3J&!Vk41s2G}2/eQ +V^,g ⼉yCgz*[FeX 8:?X%?2MCm%a|ە' k8j5kbmm; 4ǯv'$0.+rXlLnkJe etoaZd)>-f/C8.n.mCj SA-T (W n}ee9I֏lZ6৅ef]!wK dڡ]p c WyHɟ.啠_c 67mP7H`~Ac2FP@B,fQ sόqx  -PCr@qs2]cBƤ/N*u&nmdf 9O dE@7:}iJ5`z֋Α+,FP@lmk$et#ab ,i>]3ڡ<5=]11Fr:UZ/drFyQ~ߑUbuk;/Ā7!GF**pRE<]b/Q^qPMY.TCqNWއ$CB* @&Ly0Q"Z"ct8*6WڧQ:1+iZ Q֣`!Dn> mr`G`W ٞNB4a4ks#|¡,$-W2O^O @^_M(8U[U$\Y@kPտ*_d }q>(SZR,Y~3[GP R+]>j\x9h#UVr *B2)n4:ĎvA4VIOA@ 0VG^ Mmf T3ӷj2YXP!^dP DhG+WlumG死#Nxo;1(>8ƘKS uQ$#^yU[aݛ\$_Nr* S7(nz+GXTd;R16X\vDJ/; gK쿃9p62o3q.eL@S;($H5hdc.-nh&iEP:L!GH72[Ҷ␢x+$@3m99i:a[ui浸< e+8΄+G2Ghʺ(vzZEF Ij+ΞlkWpSOi<-}%V64ˉ)_0IwƙІ }ExޭE;ke@!gSnIBim /l˛x<̰֛bwC3 ˮiT XN^bMm9Q'___/&!"{ pown.W-T@[Q"s7:E>n{[YQ)ocftvK-?poI1Т6q}xF |QN2ݝ.OsDkFO6dt{G$L*co>5v!>wyX:X8#?#g-wK"ft#~d x-ES8R lAR)M=ݺ/S;{Vo}o=Ë'ut; ?Z Ds]"_J]8[F3X, +y=Rwc_LcM5X.LCQFrWnͤHDZx?/=BLޢylES"~`(.zh׳* ܕv!L>W9OŴi'?cGɫe2E`ĸW paI86b7J~L 2LfV:s\?#q*XU %] H;=TU !E ~LӺHͷ&u`Zn iI@=xlW_,ő0v7uϽ^h}W=`cӊO-2_ưB 充c9 .:4zڻ׳@ |P05 &)43g&ݓ_LVpҦ]Pv/%s >luG&g+N|\WWiR[[QV=~DªUA1M cm8fپeJ=/' Z˩ѥ3Wo6,!_^c_&Wb3adERvmdwЫt$@o4=ʅS5doշ?p\{f ZU %/?}@bԙ!o)"lR: R V,|cAT~Adwm$ꕄ8ÑO-|u&)/[m:Gs6*dĢx>VS>&dN h 1 9_cg[k.kbI29WȃF1lVzj{=ïZ3}ANAȯ0 \ލZU. zq^TIZSQ=[{\|fUÿ<ޯcq:VKg?rfG Iy4F 23IG#Z(!<702'i$BgiI;n]{tS0mOZ/RNچ אڮlS+d6 $C>S0bM3lj+NpQ* Zd!#OjH@SjnpD164;p[. rcYO< Ybg1zo"=ɎGA()?D.z QL]&@/7 =QJ 9kei&zG$2d_{ MFȞJzegpfKxB*p(8l!{ Fƛ+Qov窀]րe3͜43@xB Vf}^耱~TZd\s;!تl@Ի{^18"]R#KEji€7@G@8/r'B<ԡYdb/#Ie.AҢ0&_? +\Hwѽ1皐 _9+;wӝL/DZwZ9)BF(l䮺/`0[ "܄+r =7f / d)F62 T;5HEpcԽGSMڞ~`ܴ 46>dP97 'aNTB`&Uv)k2Y pԈ> x%`zb#oC}%s jʸ}[⿕PO m1XK=" VıM 9vP꺶 r(> $0^Dc @TW 9 Oo䰦U=.(Q 7\!=DVo*=[E_;Ev7߁\;$˻JFd´NUqt- >J_,C /ak=$O}߷=a5}hn_l5hp:PYb, šH;Ô=iʇh ձ[IiOЮz2ᓻ_] $I LEZjXT/ޖKa7R]do., tBzP '%DUp" #9O2mJMK-ӯ sy hO憮2jwwϠQhOAh9=);g/H]e$)x}#3,ŃqzC|ִU_l\xu\b\^?SKHI!m`3}d9e!jY>\*$=`T.?W _/f[G"XesѕlF8p'}J:$G¯1[k3U4D.,2FWwIh[}QiLfiެs =}/Qɮ#QG,!DV o^1M rx¸F"f&y˞Kޙ tғ@s\o)Ĝ~ySgAs (H6|½ V$E{W5ʮHڞG[j $F5+OĶW.DFc"tgH6 iB@=_?S~+EijO MI֒a n}w_ZH~i&}K.?kt"YyhI;nOdc̾\{+C!&=|Xew=*`Jƚo}=Q0xsF]O\ͶՇgbemɹ.>l [(̾|!$dmEj!?egEk^h;a{A1öN7+FRer%%q,glz:MT9(Pokn%>JH?Gu+d^X6GUhil"`-,E=$I$PE܇`J?\;[>5!:Fs ndADxNs 2ϸP ? rP+]Sge_<ތ"iJ p^@~howci'*]A<d+'K]),k氓5q.XRhr-$ݿfh1M;m58v[{T zN /y VA 0Tsd̝1檒Fi+u:boۑ@9ILSJuFRX\U"/m~Lm/17:#HZqmA`"()+WW; A-ݪT&d.NW(ip=s%Ä8 ̼3RZu:t$INN`%=Pj0'(KW9x 1DjPwkR5H^󀨊 lsAM>"I?˂p2 ! ߵ>l0bcH*놅7XI~p~c$i2 y}7{Z2a|EJi'ƉsIԼ5•KreuУ iSC{ O**A H[t7&6>=>ħIqMܬ7UH2dWq?:>#5}hKM3s9&ע,RtŻRA 8C4Z0io79PS}Kfx5$z<{ŕ Z%!pUMe24XfnxKwaK 'TC +JR@ َB4HBnm#{1}RNAk_ܣS#Kᓬ?EP)0Ԯmcm =WJ-CMS}^E KKIcBc~]wrYDTY#nsE{VD%$'!=U`Bs4njgIczG*Xz6P<#7װ&/ܙ^JwRkU19WH灮AxIpSt>RC!)D?^# o쿖/RŠ _0<]TZ Ҭ+NT@^kx/lw[)w.T%^9N5%d|dr *L.]!(Av3m> ;$@)(|/Ag` Si,Rw-%L+_xSո22{a[it_ddEjxuZ:p':sk>1M%&6(BE|#Z V7f{ıL~8?;`ǻ/>!le-S}ӫý2ݜ S~9%'m|Nn^Te0h c,(_{:m^٣~N؂'aHqr4\ qZ@i@ \^MىLNgl#q1r~+ukk[IW۠c {YDՃ٣YA.559q;~;h*12 xtmvip6O.R|Ўxyc/r4jD|UnbKVQbz>iO\60Kt?Lv.Ӈ37ԇߌTzŒ*ҍ1Q[ȟsAigsmAeP05(/$MYfޕ\{`;qQq=0'Jk5 ^?zHqu¡/bgR^'h:`6$+ dGW[{ؖ8, $il!5;1^|بJkyD->]+dS6QJ?4Rzxz(;Bz dezgaI*ИI|x@9^d` 74Y\ˠQ _tI<b80̴xW&*󨖚w9u\A#C}Vگw`erq]ؒEcgJ5Y O*2PW?py &ިsd 0G:zjY*Xiԧ oZK).fo%0,*h ,Ê?C|[xƜpNw醘D$8C{d6JÍo9$w $ _= K"gӶG}mMw=8(rl0Xb [,3r#_"}>egN>ϵ\G[Ԩ wٍQs<`r7(8NbmpAA a{ӥpf[.&"s0V#$Z{ؑaIi*@OP| S\XT>b$de8ɒZ3, !Uаa\m}mrM] DYNXu(]i3S<[BG8njIb~:AMa#RԉmsƱOxgZסx90> sߢ@>3SR|#%+j<υEԐjM]T?"]Q B@I05;>7fNC!!2Y5SE9:Z2!: s&4V:;!gemvC ,-Zmd&PH'ȕK۾OX=mЫah%A~Q$z {0 /. 8ݸa u*Syp brQA8˟׿uBJsצ_aur}Ѳdh--z <9T^ H\&#$I&Fhkev꘨W@hv p+F#Fu1BU^Bh|nu! ғ:agaT8`o/hCѫO?Э zwIvn͞xh+;SXKz]1}*մg[TƱݼGAe|uMȅC:8 m9>X04,P7s11[qL0 }!5.lZy ^]`oxSXaYMϷ+9"|P|z:b|O 9򅏉ԇwPmg%Ğ>Ey!o5t4y2`Ł&*%y4(<|eM,2Yo:]g,NEJ )Y,G~ mv1dh "S_B#v39 SfU{y<^Gm;ps`ब.VX )}af" PnhD'^[ބI6\T+ՙ+BOO8}#2ٽCrJjRv]Ś11G@gqe"BŚD0R|n]Xc {LӨ&^.;TAչ dN,rN7\(9c0L/MKZr8PUYQbch\plmFvCY-J! ۠v,@[Bw}ўe3(E|kfP{^-6OAtA ŅM3}A (V p6x2T&^8@.S.JrrMm ͏s3}B zCGְldg!4`#caJ?ǜBim~$*EUj-0UJ̅D{BUQƀSɎاs}-H5;+m~4xZ ]`ϠN>,,I\3wDʣ UFl;#!1tD"XsVSeO;-`IPf^pտa!G''Z yCXv>lgz}9x }(Uw̸O޼? N"F#Lyu6#\wltz;:eM'u&0 8y&mxEDc`Sc#n>,9TuժzTUWr+ "rY:i`}v,GʌY+BNCt \Qz7.I!-N̤W"LWk%/:oR8k"ŧ+@nh_KӔɅ`+hªt<APLP- `\V[-u7mg|Ń.4JQ"ˠ30_xO!Mb>-Z0F_3J\ӄ-ٕG\VO"{1XqW%BXd<'!~{WTDhOtT⌮2ug Ir 9(Հ26^+/)8n8'Ma$t T,ƒQ${sZە} :t A&R,ƮLi=E{wqLJh@1o<Dv<4Q#y#3y&*M;ɰNSJ.rsj]5cT,pT ol`~1:b%_967+F`{Vj"Ws+`!(C?iTX~T62091j̵]9cE&[T;@M Yk-^9c8mjv{h^0qDQjyPW6O e"h5s_ov4>~^r^ghתTgªSrq[Hi-Y2 5 5jugX-uM^)k!]e$:<&~;i\Hx$g\MvJ}=YtP)LDJ@!C/9*XcrPvAT2EF5-Kl ⎾RN3;HxIkg˧G EldUZ=ߊ~XSYʼu9q{;^uBne["b DC#/_|!4F>%M<ѴyەaBMW6栊67gS 9@tb_ʆF!=S ~`zi3ɢ4:G@6sʳ2VL X ݦkjyˤ` _Yn糳#[н6;.1pp7!كhat*ʻ{[oAd3MH te1?0[u3cӨa! ]ވTYBߘ- 2KXՓ\sC<#áWX< MAڢhijvStSGAH~AurhX;o~@Ϊ Yn%´ /S$i$`\TҝgO[~N •ko 8|):Goյt&mGD/DI #ߨg^gm0f$=7h[mc4‚ks{Vmo)vH1 Ҏ^2vL`37ň̝Ȋ%,]sZ< KHe%ZN+5m1LbO`or-v4San2q~#_FFYFCw,m'*^cX^J]+F-F{|ĩ$Ts!`*!&(X&g|$o1GJ84?޸sF"S d5O 5u6Eq;F{C%Xq -'CFDqZ::!TWg' !QmHFU8G[2]lWN6*3$xP[م1;َ` 0j9=mһFO.4^HEyh,Zj ciVZ|`P6r 5psX:,-eb Up~_x{uZ!\R%.$8!hVaAa[DTQ˰fLCmc4 &Nd*vt`?I*Na, vSҶ;VG@_+}˸2.*CÑ^"T/Z?m[#($SlՇ9AE<jHUoX\s? 4rZOu1Q@2V)q/Y4@RC ĩ Yw鍟rrtjtޫ-+2  S9o漍OgqJC Qۅf_Fk*+)F@ N:f)ab0ed8;vYŠ2늪ʬi=Mq:MM=buQE%Pm&U 61DHP~7ޠԂzU CATo-35MB,[X$h|+ƊGw?} ؎w>>zvl5z87DSw|Y" 4nJ#f-.@ơv,opIVVzgMʭc_I+)P ͉8Foo&2;#p`CCF4dzAc? Ȩr> iG  ,|Mf"a*x)W? 1s9/u,afA\a5 |>m#D7SBq*ow aq<+86I /#$Auo)c4ؕԒ2PFmH@$oz174p/J.lolƂufoU;k=W-!5ǟ2h -k1l27-E] Ŷ,}a@~0~k dҜn8 6mcG>n[Q8 B%k0<5]Sߴ.m?v"II0~#i_Cizq:U\9ţVG$,[J l&Nsz63)m0sЖx FW7m\+T=`%ԍ/ RG?ZO0wtp7""gS)|lL/|/bpmqϔZC͘Wi,Q&I}\4!z vVMn+י܋$ʯ> @Tp8~ Zxa &aFy; LT ɲnAtVc SHLל|ۼ';Ryd8va`Ia>&_n^I[Ʌ3@TXn"cf֠frPKYғ)"+3/d. NÖx' fSkQQogT,K*mTSS '}DK悷+r% Y]*LJH*K isKbP^"_jqyi釼  q%6KLAw jN.`)!~ʮ,w iK-5vHŵX.萟s{Wvaa9WM.(3#1 27o1xV}2 ?jbu.;mALJf%.^AOqXx`~z#T Sd,CpMyT/g?_1Fc8uKKGz`K]tDX̛uz&̄i~1YG<sNV_h'uj*}3Ss (R6{‘$O ]/Gf͜m=v/uÂZKi> ~" 镍︼>2X4m1W: qhzhyuW']:2vôW?s[~5R+S\XK A |+: pd(FҜ+H͋,/)eLB'RSH!n&]}B'MP@~k~#xEdv ȑ97{S_WFx2mg7GHqO?IJ\9h 2nD^KȋnAm~Oieb߼+V5-tJIQzVAkQJtO ;-ߡ7 g]Xf:)OjUcwMI|ڄǫ8ިEDIwS Xqd\ e6:eFC7{gfY#"yaCގnZ^nkg&K7QG<"1P !TcƂIG'̦>lj1df찪H< Bnh9wghm^ް |[ǖ;;J-H‡aڄ%N9 ՁzƲd-qÁj$Bcs.hOhv_~~18®7Ӱ$oG)HQ( ٟ(&&0E^8^L! W*@GB+Қ&c5oܰmǖ WAaRxmxD8e 8ekRN`.006PSP~'jF]-r&*~VqdÃU)lXxa/ ۭު4 ]=ۮ͚mE;5;802]ng8&z~P޼( 2GG$EUwh!w.>~1%#aG=\""6Hn>Y4LJalRIo_}QerN1*տp6*Kg9֘ˬXFey,ŧf[E|UJj wzyMbwUߵT^ҏKmh֨O Qc!Iآ rV_`dܚ0hl gVJI#[UDaՀ_198s{4' p3p3Y7@b1꘎DsgG$V0>ÙTI&!gZ-E,QǠHXE5i.`9+7ݴsm1 8G7ʇu|:h~ )a-ބIgaer>YM4r]#/q41~)KD0Ywq;NjՕYj_JB*n/NnjަW)WP3D9 6"(ҺvARgӢ\*,aXk\׭ v+aZr dڸS 3g"^Ҳ1x}DFx3*N40Y)gk1,&g;L[Y _y~a/\z9N/ggVnP;|mjb<ѩ?(Ϫj os< j [5 ƣAW'?bܷH%'vrКq$HGʲ.ofpU=2Lyӵx>3a_42E+0S8"F3̎¨_3V\9"l>nH8%yQ[3"?4d*1>Y}-E6w]D[-e ْrBEdۆكep0/~A.;g[x)^!|yJE'փ(Chg3*ɛJ!q~"++7'3[ '5J7(+K!ŷW`+6Sno>W}+۪ 7gPC/wX$낢Xjvl!Fj[p ^x QZ`I)l-Y]8AiAXDX\:lI[tV~~6 $] sѢsE5)]}8Q?`T:sb)+ܷ|KJ/Nj\69~0`dδ^PίZ+?ޯe tB&R LD p{Q[k{@`[LPkekd^ԫ+c+"00:/rL>C.c{<B_תǛtiU& }B߯5ixEcMި$~; E7@linI+5FV^knh? vvvazݑ"Ya!$,ȩө; ė<؃EYS_5/pHI^cے}a&cZ\l7z䤅Jgx"-|lA(  š1UO:e.iHMxEe;8.9kV1|b.zm%K+ʭXms5_U#ApwodT2v޶Gq7lrϙtb:& qղkQz:`6]*noƻgogo[ LQ?rI!Q}連+%+N%91N F-zH}hV a}FGIE:6c yEQww h|J!yį]w}?ѕ'.u/*f(rNl@% %4OfL=ѐbInIA4͚|pye.vNLr n(E*j Jvɛ |o|߶dSO(я8ߚ>$:)0 >(m퉁ޣʪU=iZaӭ?~[ ^P=z]#t'GH._pP2UR F wtc4`1NY- xPKsͯ!ɸ~ZIԖo(]j7'Jl $3v]^_m{D`ͥrWhvj=tt߽-UnM&5Ǯ_dǧĽ=lx1FLk8wiԤX_ϧ^mj`e 7,T@A`Pk9@? AJ 'uHf冭}qu{ a) qR,9WE,n4|Ufv)lݘ+}~-*ew|EIxd<4Ȭ*ٸᝯ'!yVLN]IrpltS q(IcuHw'dt$VJiV g êICn'ؗ`5 /SWl{TU=zYSb`Ź*ݽ19HJ_?_,xͧe yF) P z{Y ƤWZ˯&fA[3^_e{SE-z`h mVVj;~lH0XrctAt4 !NħZ!ACc"e2=lۃ>.jlXKjcq(U T#wOtLxz_m{,Q6=5=Dv8=R .6cl[HCCɓ3h6W-if5 v(OS~h/xo :iIbŹb{TEq@tuצQ x O_: Lc1ctWD(~y*$x>K_@|Ex: X>!3Z;.iJF9ޅ:l(|t"l"enYt nJi Q٧_B# qzJ~kyY#4sAł/RJs 82ITAg=P_M%5}1~/ Ð⎫c0gPY5 k}B䨋h0G}(yvfC @pa$%[67pՔgY0*Ϩrgb" Ү2I |iD6?sÓx̭Nqhx,wX3 nktrjX` qxwhX3OZ^iMq -kL(- BvHSuM}:; ,EAz!Xn.#ῡF@{F ߊ#H-R~CJ)ܰVr5gǮ(Z o6 #/3=GG'- _쁡q ]Dԓ:_rU+̈́A/J/GD 3VFOY䟵Ht suջ ֳQf&@E; =UUqUNM3+8"S?w:Ѽ.Ӓ"AqN W ]:0k}#1˾^n,roȹj,\L>a`JaFN!Gj(SˋB DEy{)\5|.(sOC1ri b0gkNn1C>aM( q]4Q]`06Q1^타b31YO{ehɑcwzh ^K_d oc38B{şQ."EeM+!XG1tO넇igkVfF`呶˞#-ːE&z)JlZu98ݗ)eLU1^cxKE@_ѨUBsv掤mԛ_w<7FsN"IEf{&J* R T֞1-=+q'CN*GS+/񢨀vAU.@hxd9҉H,,C%u|;:#W |'#qs]/-'C.[U;8>F+':kk# )^M?`+0z\ɶ8+mhv O7ĥ7Ym`䍢voNʿ 76%6Ώl͎tEszֆCVUbVpQk]>n4}Y0Wņ̈́}mE"_QXOfM?v' C#2zd~r6]St` ']`6Y <a~3:& j?5n/l.fAy/& ~woeHҧ8grM.?/b%03 !)l)t]~N}3/`zfE}^S)Yj'5ts (6)Mbnng233ϧR歑8 P27 3Ϙ8yCm>EYWvZpP[Ȇ/$q ?>Po$ݎ?gHJs i䭽u%$}/i3gqq須Kk k%EԃbZlѫYg&t6g&'eN& #8ҡ;D 7:` q"4Y}N*i0:Zb,D\}(i̶Qćf#BߺpsuORDWlx40}̷WF- qq6׆ Jb\IGmYNb0g FKY("؂y\0=7;I& l/{N<㙥UD:2rx^.DKb*e3ߣV޲ìWxĔx2AH;U)0FesY, 7Gӟn7=5X7:Q12iGw}bDu,~ix6nn|S5/B$6TX _Y:14ZޫG\$nǍzXBn}Y.qѰtOl`GMr7GM3X% >]G Ʋ K=` v[InpZrᙄP o6#aVCƞTtjdѿ  CPdVɴ8 G5 ~RR8 5vNc1>0<$_.h5@H9^j`dPV(^ κKUPMi?v_JMom{?oBQ((}P}s1}MJoZ%Hh \׫p+ٽx-Č51/pS@Gs{@%-P`JWЯr;ZLyc 8nz-vE]`*t~^DdL"uZW]5l=]qrO g5g2k2=J|$<./nóqT=0 ǘ屲gvz3%laIF^;] }4͌ȜΟיb m#N_p tg~*Q*nsmb~eD*Gi6r)J>J1]@ԈffDTd>]fLx0᪜T I ~VhRZ?3t?af IBQi"Ȍ "(W}x=tY1lwPՍ^{@>U!T/^F7G@&Fog5㨺\g1^i6Ժ;E]v~[uYJ F7.䤴XHdG!=8U(jX᪻XΖf{9PG9 0=0;hylrg!/. /l) YX\#[nnHK(]\ȫO XLAY}Kh&jgi+t*B9eJ {T9%-;oxio簗zȺE" 2;N045=99<5}p}tmzY n7HSQm|ꩂhl Cma2o .6Aq#?AQmywnpSѥbȣ0BraNƯ}[ {߁66֙?X%D@ Ŧ1,MKrKHկj4[[jڥ͆U¯Js>se^O*|LMX,`/ui)"rE> O$d¢&~x;^%9il:IJ#g"Fvykr!a"Cϡ.1 k%kR`c@ 98':K0N+Mkԕ;o t?6fd u_8u m5= >"Lj׵ag M&6^V}LU_> 5n>b[<:M4}<񷨌<+&ܞ,قwt-z*#nFǪڵIp`&SV3|"сNdj,ߍpI(Z?3:u:9{Ћ3hnG7u ɘ=<9?exsNGh#՟p0P.d`CX d!ԜC=c8 {3lusaz&BWb0[;݉ոb^u/rvPOz7l l_?`Vԫ  *d%RWfn®^.pTɱ+ ݼN[{o٦1_L5Fdʈw؛i^:%tO\sL/WY[8| Zl7~_e7d=j;=AyT[d{BS>v cY3uh\͹쀲Kg}S޳j[gb65Q>l BZkǵ{+ vDLGUDj.1uZm=~ Fd`o&JPNT>U(`1Y֮9cNpB`,j/ke0D|;kR'F i@jvƄ B#F&TS9:/%vbx}@ CRрsY řAb(E,¤P#OK1QdC'a.!3Wd߰*19VWVԙ9vG C3(٧؅T *3oA+\C}lŃ QʏYaxD&^ee9]ADʰ9:*ЌQ]ϼaxWD'EtQ<_/|).s]EВ9}^8EnW zJf[!~KM=Z)]k$l-tX6[ٖ{ݨڥ!Vs'!.t=CD; ~,Ӄ춖X5!_Y`k~1+< r-TSWBȃ*1|q́5dV{KDvT"4 ٦gԿ.R#oIT D&ɷ8At`!ߨqF;+GTOfL9ןBΟ*hXbJHDJZ}.Ѽ`x3lHy]Yװӂ0w-XćAe0/ ץ:,2d-/Gs%Mx+ȫ /C'5K1{TZEp;A{qT3rbwAny!>ljcyeQ,>QEOeEY;.9TK.m=TRv#ڞhAT>m_G 4I_1JAqj̉ŷ.J6d9JKZP+e@{E@uКmUy;[ ǜ] xt㡽D vy {VTMۻGiw#\VrObv:w*M.3a<-k2~#XO]xHK}OܨVZe=fP`JDZ; ǡOyc1(Pٰpc,0͵^_4AB-+NN#~ǂX4;e9=ϝ/BB?9fb{ DyNZ'f\2ڷ;#.'m./ @;lȄXڕec5BuHvZ{r~^Xh%ލBo_\cэܽcd=_ J|kmNHCbXV!k_1φwXT#5 w#ra"sygTj4!qoty6U5./*Gw{SՙHfj/;YDv r.1H2U vKt"{rjMR1'3 ~jR#Ex=&6י|!]ivU2Ħzcĥ@g(Wfg4tۑe:Դ@1X@}/x7!;0"E8tLSl"Et gat@[V{ xٖ%|sZ'SNLgCX ,_V ~#2W;Odu=PV}8_]?Y:'r%hD_uCfo0^1T#)H.Wox'EL+̉KN2 {ݯگg[L )jD_nCCTMxH!Ttp#}}+^ա]OLVwֺIop`:*xvCe¬+?33>s\TgмTf"ROQl^]Yq |ϱş_~nI@MQXMobͳY;{_K7%Նu|+DP [3(Jc83# 0ljjRs'bL֥:gzJZPP=վ?bwaU><@r˻cc2..\"K zS՜z Z`}0Wxf%0KQQv r6 0Oζ`%A _lUJO0| mƚPqV7Gj*b>REd-et5gXLr8ea.w`~Y4k*[\N~"?^J/kksIA'9@r vHE\UCEO4&F63V:+ļ?%ɇj2.&{ixKy }P,jvI^Eƀ(0R|R4MIR{WeR>KMČ7 _S]ꝶ`?egJG2?N-pI]^P-U'TuX]PڠI04[c=/h +5lQ ?Z =g8zIXYӕnD[8%ǡ+zl acA},J?3/K~ jI Rv-Vf+/%DEofG+kOQGzmqk edǩ%uJRErt2~"*ӗ kMH"/Y5 g Gs1[}IT.`]NP\Y*iR`hh?yJmDeHa¤"JgW= (*; `XmWGEg^k\^^@y8&/ >^ Q v:T~Б^B =,cD^xٰ @!ϫeTP>m;fUkyw H9 G6YU!@?E֩fNuDH*a9ړ7We}_X\k>v0ɇi*En7$R&x~p0^Z JR1|B2V+NҀůRI(<3+;VpHhg[ztkO!k33YqAjiK'gK Fr^WL&}$rBƁQ*CٺOB-œb37lFFd6Ύ-~x-]Ἲ2"aۺ=6w4*%)C(;K^ qA&a3SJ݀634+W̱0+%rqvH@m6%J?jfV`b:rѵVQ ˶sF8d9o -Ýmb^n3My~cX@4VjN3q_Wm507A=TbQ&@QbU_lq/ \ s1N-Q 6A8JpR1<"Cq}5aZf{^ w,iY,I6cxe,em08MaCӛ y?D)4Uė4'S,@r`)_w?HDt'>ď}B93f蹀UA+W |13Swvbt57 )RЖ6TI;uPۍNfiF',Acra!Qׯ8 v-ڈ<3/J-c-G}?`;Jx2Q/XNXowaY:4h.N3NtL3eNDUT&`Rր({ne x@RtCg _zMG% }P,Ͽ%|Nve[SH%)O7Or;kG[iKR!˾eS¹>4)7U[+v8uP6{Kf"~ȷ~tjY&8M3=@4z6& #-;RkQUQ(4mLC|u .; @V -SOs>]޼8Yd䷛-O/]uZ7IV-ͱN nig(NK2j,<ݥ6dV$IU[X3Q׋TE?=9L@uҩ)@jEχ5oNwd!k%K>(B 9R~٬ /` hv{͆O S;I"Fe)6yHt6da,_|fѯWlMƬɸ`Fq`c>B KmeGP' d eBK?ZX=owƪ Sm`|WVe:X8Z' Q]4OnY'&{Wp LQl?e+=<4Hw8&o,JV'6i!J" ?T}T1ɡL*arK7<16H +.$M#HNOVo@Ad0`kO;JӾ'J#3Y, oFhT<+Ɛh.K( 1,ͅ2/ j>qOVhOy(}1֎W> SB3+TCedg_ZHM?x) A-K8Ba #F/-uVa{yMGWW4=y5]Ri"p]j~Fy_3LՠVol/!* .EG>:7dVEȒKTjkaL 40Pc|g7QnG?͜@O[c]쌸rUt39X~Aӥ*[s <Xf _p<؏ \Iz*\/K cq*[pꧧEcA[5;Fqx2%d#t@!}$e'2AM {f. >0ij{t_*:Y%eޏpt!>0Vÿ́}y) ]:IhsW_L(+IبEy`A|ON +iow_ζXxyK* nBeq$}=AT%@`mm{. "&RW^*4ân"yQ1`~'52ܰ%I5o[c`_0-GWTХv ]q,pEeDl1Jrev#9"/tV }_@1XDw;2nIVxid_L-2P\~%QTuW)Q7wOYp.q!p=AL9%V/Y )<>lI݉H~Rxè:̀21g Gg1x瑣H@gFϥp{N?@tZ/(2F;t i>B7|tP T-u:K?ȦfdMӂo'e{4Fu)7it2X)d2_Z.WQ֪!/a:wSmF郘~+8/P:WM*Od8BtG% AOSMK9>'iw0ַER1?wmɲlgt~Qe'ub)ԧ hȅ贼)ܠ!"w >Yu^s1QxW |䭱;c5=IbM)O$ç,#`nnL<8X,]t=Fך9W Z~8&+SBFzNpo.paa+"tU$8A,{\Baop{jäM>ɑR$WS;Dk'&ݕQ68(@1'f Muŋxe o KKm>gr`z.$Xv-&OOٵ/*m]8L,KّU2n>ƓnV-ȎeYYA#{ԱZLt1`Xn-_׃4P#[&}|=k~>$DyуF:Ff9,>7I%eU3B^$)<Vzl"ePch$lO\,D`$=+FƖ3X~jV6i@1*]f͒-kTҧ/o_+6빒yyps'*PHJj$(&8=1leD7b)5GDN]cI8Kɂ۵Mt=wXu-O9Á=|w/Џ+2VD1Nk(H {-ªGFaw$^ *~86mTJ$W ~~"NJtaVpq|Y)%vaE5 73DvZPUf|~t>}D4U]*c'z}櫲܊ﳰ,Vpuk |O)WMCD sEJHr4?22Rwzc\槝U h3u"=c{JfXB疨 {MBR5sNPf)!1\'qQaWށ框Z:Cimc^ucY=4}|5ޚi|E=0|4<>Jp5/zh9!yY6\(+6$2Pzq'YZjEKz ~9ѧB^/!dGDqJn&{4e 5pƜMkL~{$$\ H=,=驳0_6 }?V|' Rt=3ToB/NǶZ0Up.Ƹ[;?w-:m PeZgfk%>-QT6 4S+ɟql؈@m)KM^7xrVں( CRR\(F,RJ+.^Gute[NYᆱ-z[L mf`ȤT5VxL?Ҧo#P7RA']a>(;5t- ;yP<1_m:×`TnGvNJU,H2e;IbT5B O|Hr(M[[S7 :1ttmDf{27[\hڏǻD53[nQ4||͐ҭf4J/ns! [\CsY t쥰ք>ZO|~$|LCĩ [l\ѵMfCyT ֧vw!'% H)͞lw \B naElG1G(UypP@#Vr̅0k@6*GjO:Zݨwr;gGu' ClՔ]T _mWN ;d_V8jh0*yk iZ"rͻ)a&MʙK5B~/se+, Lc?߱K:i]f"^DsHi߿6ߵq6^"\`05 vO0oztoyH {W̅W/(xк\ (|`vtDI1zGޓ>|?>qr|h}Jp^F{2:9qE>!Q m_&7V\ܟJGF0;*f5h0dGϼ @o9:n@Aƥ 0jigg Vq[IV$AmJ5SW^'L9庝HF]+V9t/&B}ǨFn? jsx2.d:j?L~n+Q:xd@"4,Wu );=~fxᏡԷd2~<5H4RRkmn䒏ҫDQ 3[YSPH꥚4)h{V:8s o'(7@w2)]Z[:%L)oIH#<fP,PvS_uD-\ C'p 3M –&xEW^Bd#LȻ %㪿gS^yq>?8-Y1,t)5R2/z-Bj]w!>1bƩ{W"$tm < QR9&2D S?Lmu6a5fPrڬBrdΝo rkyV>;utW/c^#@R6oԜ ~!%E%e(sjǵqA$=y5;9ʼk6TƲ23jX@v$<=youĪ[ O}dU1<iL)ȱA6r0֥!q/!Y#B=0%qRiMZ|*[}1ϟR>q_*RA6ql^KromLIUcDΕn6|| E0<ێ{)b끷QIx ɐ;)(I咉Mv>X%Flݭ |=A0HMx;_ o3tgB7]il[ `ZN2vN`"iy]p*m,}E%x%xg#ڵ3hPt"١|xtc0kq lD&Uˑ-;bKoEy21 :%v"_U#W6#۱h p/nT*d65Qw=gi~gp`NnܺYi-eG]rƐ3wnrNӟ#wq[zIɸZel{̜.6dƊaKY\fv -rLj5{o">*JE[5(wy(x3fӘR lص] kp \vK cKw>ߎ Ժ˳\붽xI3nAȀtCPJAq+/WC3FxuA!xjPW/B X/ðp\_ڨyjX?İ+`8nF~1slgR_$ nc7vhØڊ.止w8(YunV]ī^ 5<R\͏ y `I5/ؙq(I @q4 %ۿb2mQKO &JILds-1oD0cܓxwE<FRk֕'"8\!u4TPM"-㋅#ζ~dCCF+{G P+ 5XYw2@ }U$H 5TF'lmIRk|vR N,rF_o| )њf}N~ ޴no4$Z0UɯW3Y 'Iuc~u#@mH2N%I YOw(k fh%<^]}* 霈]PYbۇZ0׼ի.d'#auh*se3hY'M]P(F~vJw!MAc5|xy̴CiCm7zoO=D?>b#eԱ9*b gb.V<2E)+vI7a& `u){'ŽH *"pq/`͔Iθ߯?t>_3A;.q`;B ZBhi|+ӗ;.g0KğD?'ń.>%|8gHgymq`'oޜ6b1Ϧӕw`KX&h?5)z~A T HStAv?pxA` x%ю=NqW6{Zt,YNd0Bs w0=íۥ8Ĥ ̲|Tx|GY~;(D:(;R,dK 'p(V гې~\v=:ZEZW' {IE'm?j=Sx9.hBg%]_XPj.F_eiLVfWWqI}A@ 1#II}XL5$I.,u6!m!F8R#YJh9ƼOJvA+㻏>HWA* NpZuۜE_PC2X06Aq:C8/N\i䯌4ϹV^X3k*HHUN`dj~XE~Tos}Cx'uZR2m6EΟJ5M G@? #[N>V؜@΄:Y՟!@O,K}Y堛1>7ywr ȥYz Id\Wzv4UQ f}DW#wa eOd8+iHY"Kbp]?&L&&ɯVU͕`Zf{jF=4a'- 8攢,7>CZC;KTgg׺ P*zMaaA);0֕;AC m)}\c%`n>UBƼx[wN!&IyBhF e2[|8FX-%j-PKrJ)׳3FPåS saH C3NbE±bg@d4ɺVۈPoȊTBn|(́WqB1D G_A''J"Fqȣ^ouT>}!am[TI}\,…,u P'Nf&^ ?qº6;;6uR?Iw K0+Ҭj)by|a1O0R6;5lL@SA aD̙RtxWOKr!NB1H5{GK4бOX{ u!43'w@xVscV^ᡎS 2-eT~!)Q3ώa#MnVP! ]/gϧx\y_(+! ]j_PpV c;dSL-)J xG7eW-x!ݾ xs/FɳvrB`L~v K&LLB-?ptF_=dO-ɯԭ$pqLJ$v0^yq=Q2h6Ӹ._Vz'vzI`J<5Z$Ji1QNS;?"8B ]c1t:mP0ПfwyK)Ѓhյ{ 5`yߣgvӃKm9[TdA8jׁdH+ d>+ JZBF$W`-_R1f/8; DDZ?}auq? :J ^g.-GRyA3Sr_ʥ=4*PmC˾,s G<Γ_ XjC_)1$ ϶z ~z~LlO:Aq.◑JxS ;F K$3ՠ>IrQ歭Ok}?$+i Q9w4A;fπz~qkU'or6"o~p2=)S0N6kԐ/ Zkr|pD]@r8业kA2 *:<$Z˕Jͪſf,Z,ȴŻE$DuoX&F Eii )RGt(%cW7e]ŒgfgNNCOQtj].Zfqc$1wB:vk^=p;IϫEM%>XѠ^,"Pϑ3ao2,f.ԳQl8>}b~kmsܬ\W1\]ୱmmQà?$"'eWI41znT= KD/lQ 2Ry'& sY9jmR#Y;% I6J;`'貐uE9%9*lq 7ىsJPx|2/qB˨zs$RQ% y_)uu9[ᆷy/)'an,Mƈ`0ϰo.};ՄM7Џ?֧hTvM]ZYE!O+QOC gWhh3+(akj%ZA/  QdA܄B49gRr]0b PGKѣE(irhث`/6#OVnGa Mv!&ʄAz6Dp4Q_{z` b%ܕOvspTS<"Čŝ&td֠h,[e \q9%jW!pX $8.9SNEn']Kp- zvf4n'I1ɟ7.jN s(#\NvdkR8qKEXwBYq}IyޅA9rz/5 eAItD4@5$lu?<:6f}9e2W%+qMfF^jfbGkΊ =( ۘA90yBZ\M]$ 2.xtHGXSGk|SZ?X@Ìj s>Xޭ;=`-uq/uO%NŊj&pDy$ډd$s-:vlX IXCoɧ4ժo-=KOk~ 'zkk"$~rp(>_'fq+~Iə3{V>F{!~t.>dg}d-&$Ouؽf?!!D3G31O<%^(`/T5/$fXX* e鋻ռ֭+|T v̑d9̬{Ig#`<+3dHaC{-F.&{6yXYUG d.3y?4Y+"BQM'"1 qY<'fMГ6i䎴8_ 8tAnOĝB iViCTTf~ <7yoHr:#m4ncR"$Vՠ^lsyxmymRYizȒs"AbAqC5&$lIhv Z]5Vlp e!ZB/z}n#f$tvJR=mU'ou:)xTy^L5U{ 1=aNse`z yfjυmGgQs9E197Gn/&}^2 Ki[]7I}dV|BX%~ kꡩJ$&e0.~sÑg=|-0mwQ_vy2"_v^tr65x-cxD |\,P1]+6u!80meMJt`9N!toWΟ "b2KDNplTQ3 *+:!b@4Q~ݶ}2ڃcȽ qFM}3^;74ߦ`!M:zĤ'(ƂЯu %F/ڊ͹--'IF޸nFMa)dPY|~:>QWF&sB^{av=2d ,vɣBPܙ7.l]SeZS P 3vtgFwΙB=h3um-b[D_۫kFuKZsKf`?|CK{:'nd@D_c@<ƽXy\7{Q*>Rf= y %F.X3edT|z`>{mSi»TaN7aԈ\@>9M.n6#HxDq-4MM`xZDrz>ADfcqoOPA{%L"}-CĎ0UASB[C 8=oEB b'  u},;Ѥ">Ω5GLL'|fZGd2JiwC:?u܇R- }(m56E ,,`kh'Uwa >ujO=2 Zˆ+OzgY+L>^k9Vkp\}&p$,0 GpIF5: CuvwJSR 1r|z8SX>gȲҍ-ƴ}Q8B>D;|&ePM7A6$rah}'_ܳ@ mEt)t崒-Je8/&5Hb&1Wwm Ls]EcSF}k]Uk-ew WgX `voB1Ri3x;mq"F[J"Җx0۔MUe6;;Qj'5=] E'UD;pT S8RB iɘM \<%~Q$h.y1RKRk#{LŌX8ZZ{̀@!r~X@lΞmȭlmɷ(gŦ|t>ؽ] VyOU(nCDe'NvJax˔UuX, 1Y*LbcNHEI/JcG>bO2NgOڞ st>;42a:{}v'w"(:ZND¡50D輔Hv eɖTi)@:%A{Z!{FU)@JY.AIvP7}3Q£rèXx-ˑ@BRG#T>IbwituXWضϻa\۫Dz(*K ХXj&/PSm*pA`me\B#B)dI!I5NXK=&R(DVu+il1./Z=>?bO!Td̯VZk UP_F4F҄OP7+~M6\.mczB-֚ 3v0銺249h5' E}-W>QUO j." 5*cQe*[#=6=GP͋}+ci)% nİoS /tpS`J0WHݽ92 Wnl䜂>GS"pԣNOJ'%@4" 䎱" O!;c6`&%Tyfя^u;Ũ0-JKtRy2^eM2=R}#mlMq I|>@$Z}/*rSiur}p؛m0r{lo|z[8AԑMn"GwDU-M t6Zk^)k2WF#UmXX_ `yJ Ƃ Ij8!:(t(;NJ*'('JSIH0=V[)r3Wr8Cee98@ɾk~ _##J|Ff ժ >\IѬD(A7F3b#克}h53)&pdScy)pKn3Ț]W)LTZ刳YJzmYQh4Yr-AM)5bEBK^{.jP?,Q&EJTsV1|ɚ^Yح/a̿kѤMTCӱ}%_To;hi 7;43wbC䷟SRRn A˟InD +Dx,sM~̵AzU\g( ^Nj-e5sAls+5!}:b%%@j.*Am&08[6W`|\B Iz3cN,z8v3@;l'10lX1L=sN!6R%<- Qs- e4*(RR0#mB˘ͰTgKf[X( f֍$ĸ0vC!hydVa*~?~I5ZyCGIԊ{:l-S jScN!$edѣDg[URtB97*]x<\Ql"m~cýAr51([S8*2

rjEƒmM=Wюu)֨c˪zʅ #T<1 פ [Mc& ɇt ᄁ4xe NRJ.iV]+,{Q1->0+@AtOAgmI6Xx2*yK-we5+Ft'ьU-{ۃ0-n$ wkݱ6b\U`K 1n4BGޮ  {[ŽQ{qaz@^+~Rf*TY)}ðoFǚ6R~9 P5"M ^nq(oU0$=nhaoM1+?pɰc7fٮC' {%`عW,8WV< jigΫWyEQ5ly^_$xWQ]O:clj0gqׇHVF^&{RE ƕPuϘ+Β %9Yc)j~J;p;l(KONVtdlO%Z9OY(I)={C. 8b5o2`V4m4{ڋָK lmKpn!i/݆Jo] ´sQDɇc !A1wdhx$̤R4-'ek#[FbE3jER?1;CARy }輝ۍ[6GPMEk&ݬЅRd]R@FIa\:e pw!ĻH5;g4ۈuraa.s-Ƽ#2,6F^r»haȮMB$L|lS Yc룸+Ci QfWcs{JԔdReҒr#!=Z M9`"Gzӈk`Ư4"Y(v R$}Q/Qa٢b9P<?pjw  8ع U=oa!o۝yCkkC%1dmr .Lueh| r 7e6~;$掜&&~͌!ǺZi'!Ǣ\%{MA CDN ٝ`N)ܶR)|ƻB[9|XQGo eTm0r1꾓98m& .a0)VY4t~e̟HC\z3ߌcRPYӴ9ƽh_ MؑB6tfE 2/&8.黤41Pnp)/LBq#ZAhv[*"ט5GQ%`9a$,@(dUud%;h:7a!f\z /$Bk9GY-'!b;!X5_(FeCF!Dq!5 =;{*s}2^&?wmB*_Ci+ɯnU N v#:eऽҠnws0-/<5xF&ʱ" l |{)^[;P8Ǒ9i~g9{aUQ0XH-Կ+>!ȼ1YFwv@Q @F|!TmwH˼˂>yj'5.KO,4mNs@[7UzISBsG~>Piestu癨HPqe25WPaepDQЌwu¨mAayӦf ҈&U qRH =ᾭ(4գlJi!> ur6G,aUB+u$ T+A&\gB 0k GUG^T<SUn*}*Kv c?$WU q"Up?iL 0'D4-`N)?W ._b6bQ2f;qʫ֋ d}L\u2Ҏ ށ|q0Bxf5rMs|%ͭafQ$$Na9yc< lit>aI(R T4o/s s+ C(aٵZSď C˱"L]6Tlً:50r1y\b&:]GFGJ$ei/K{fwNV3ZvU9 Tds 1 Ȉl`x`eKO^=O .푝mZN $10N҇ <} %ECġwZĨ-&S#_͵8q 6BKv[s䳸5xe(LO}drel&ht-}&{|$qPwA3Hv5r.,CѤүQn45H wN4V rFƍ8$Z:y(n\6H}q L:⿓pC"EߴOHD}8SDS['KF\h{7՝S$iW>[ Umq7 83N5LQw]c~Ap+kn;J2-WlL.xΆPzIxZfVdeRtcE)mQnB93# ~d k9a0*GXRVqS]#6wԐvْ_qwϥmsEΜ oY1pv d[wJi42 #d}%,4ӭJF1<$[ȭݶspS CU7Tm qŵ3h,7Pp5^w69i /#j|f E&`ymh(q#9)+YoTrzujܪ* @雉H`(fhP {%H5rsh J#Rk-q~1| Ao6)j%rG`B ǸJqTcuv0B煇rPzk`ȩe~Z ijfψ b _LQ1$ R6f+ Z.U ꋚj&DUÝݘ, s&4ja0o;"Z@@GspJd VGC>*!1.352XwF8L-ԡs\u_&wI$4JL< x).zq.a;"X_<RўYѐ2d&.ӏR8DTV.2 F" 0pB1vW9d 71ǯF{+QK3PO؊YF\pVaT}51!UD*/ML5s$hUNAeڮ!QgV,Ǧ,ݏUBPd+ٴkҦ%ܪ!ȋSAuOzdiJqETms`|oY*-"A4f[ǀc2gG49|lc "tl41#+(T~GW.Kb@@JQiS8Ϻ͒1YU^gDۦDG]Ǎj٢M*B!{h=HCͰ'& V/[Jahz>P?`#{IڍQC*4tK2i[V#Jjjn5Tgk]'M+0Q*(hTbS"o ".2'rb:}Kœ>@!YIa2Wm\t14I^sJ.]G,&,]3pJaSӭĒ I7 M1K4&/ŒB=DԹU&Y9UBqZv< rfǂ6Z?ruu&OlbalHTG՚?SĠ!Ȋf]4g*e`*Ρ>ޅU$1/fԮi>ٽBBl,$AVm)vfyh|35P(d:s rEf*j]RcYʞs6@Let:r=獊 p} ĺK[㨤;ԋr.wzt$,6#K12Mew"bBR>A}qY(%^QbpZ4 Z~â!Ψ>vw)Uq:J/DBxgpvIuWȿ  Xe:/l%e},R5`*%JvΜ g4 ̒&he,XN[ BɷnYh;X`NPh{OVJM&lzkj{%'z[+)GCwTs@7͉K=*OR /goƄB>88%?c[K ~G'dDݞ mUЏQ{$gUX踪\v[~K/;{j_cPEdN$ޫdR#YfFhN#θ7d԰SAzV{pY|qd+ JJ{5vwNCZCbpT]D pDECDlO>FG}'蘢ϙpOzLGbjS`:/;=2=_xaL' T66DPz&qkͽ#V#ۯ&{V>n=ExisKRt;K Q#a.^ȃʳ +9ABCEIL춷۟3)Ārek5xb 2t3w9_݀=@~I~fEȰ\7..6_n?ִܦ1jSˌA ?B|ǫ%w q |O%m^sݞB6~t%U޷u<1 >z/} $uACb0OT'3>-8jw!,Ko8:ha#dŠ~y5ɁtH!=i=y3YiZYn3Ҏ+ `}ZNC֫2p%ewyZy5**3+&7M 7FH^Kwힴ۾+LAp{b+1[ e$L@j 0\NMM1opf[D[ZuoY_<+zkr.~r}fTد)=qp$W0ʚw omt8;F, +Ej=+TBqHuI)tO5Z{yN2w] Rf*tHE,6AΗ1/ǤL˂g4(Ioז]P[m̱h[,oq;lVlD8mY_)#{$ l9!{(b_G@ 7{x/N~՞'^(xY(acz#H:>7bV.3#Q@`mE7@%IFz |1cjh_ܻo`s4yFj۽Sļ,^!cU{(ߗ1a=) 'cQ?C^yasnsyA~x*;џ?u~o\Ol9} pQOHЉَ q#iCuPK8lnAǣn/(qQ=,?e{"|ARP7m2;Yzaz+kSSpUkR֓O?q:mpNvb J͖xsd;0E Fj<&#͹xX3VvHþBa4ez8\%$Û#P_U}?nBV,f{Y*q+)rΗ bWh[g&PH5;d,v$ }ՌSᐽ/n#|F$-c坡ɹk(3s29l$Է`ఏ]䆑LBct.ls D(%ެn*|(ZNj1XjgO_;mWhwDuTЇnOEzDBNE&XHxt}<7&hgiبhb}ۭ„v[m5qFpU+6yORekJekYflZnWD:{~#=Qa,=UkAdfLϦ`w7 aU86ɯ4rН?JySc%#:,| DYfRETa3?-mՉ&9 /pMK>B.MT9 mߗx" vtG3-O `t]P^@Q֖6r~ Y!\ 8#nEmdpf1|6mQOl|3S|L Ps +(Be6HA;+>(<'mO[ihg! <IJcݭz|ڂ)GG==*яK|Xػ kpp,tĕok/UA)6̻Bat4gg4?XHBa# tHJ*c0M–elqaxY@j̇b|As5յAth@܉eXh& ܇6PjUCM=&li<4R(;Ac"IzD4%Sm}M8+b~{*2 ":C3~PQ]5WM֔V <]RAk{ʒwYWqx:k)O8z)Hہ*d-'3L0x_6dPkMK/Rn(Wu?npALa{qJg(q^DN1,TUƷy)J{r=!#Hw)T4O#LVs[1ѐS9PJqzLC2ih|H}0庪z^ #j*4]hF Ţolf/]f)Y>/:>/c?؂"M[d`˳&@1[l<6lcH\.h9|_q uvp{F&*9e.@ [j ,&-p#6[٠1b>Dכ~gZj.هgDK27S[E8hLas<\$OdgY&Z+B<FAv.J^L,L 'DPJu$(]Ȇp=c]l%&{ ˨>4O 5X c4o"9.2ܱU^|tԒZ?)`!*SǴ箛 Vɇvxc\m?݊qʃ ]O\ǻjZ=.cYi> ?H6O*YpΎf_~'*()h$Cޒy4c~ֶ0Snƛ*Hbq&>kR7g0%\ܐ.f(g_},%isY4V 3fp^y5S.a6 ߾ )$|5Hw~t_ӕeQc-ehF\GE%Ai Y]ȕi堤a[heQdv56BM RYWv Fw#g|uJ}I92[(,Ssd i f$4>Ffua,4*Bl(ىXD12&NnJ7 ?2YSM(v1+XZmGc~@Do^,T`F Wk&(xzp]s8 Cw;STQiđ!D@zrgHP;KOL-!*5(O$5_wCa[MBB i؛Zim{`TpF:.HS8 dC7gm_>ȷsŏ-f! a2!91ɁH(\@$`-lx eGApkrj;buI>>,ahRcMfz㭴 J' ~Fe^AZު 4M,>oB;6ZY^. K'/"0S۫=`REq_Sǿ!R1Mcw|Oۉ1&K:_ꯛ Au g o4|"ܵxҠ]7`T<;%7>SH`ďBw; *ii(,i3PQQX3Nuq4F̭PB /P6M8u(>y&J5Vz@~c U2B+vTpB`x "U6lY@1 C偽Hr^Av!TH)l~i[{n[1ؙy:P"g:+O2' -)HWOldti~Hfr F.8;3 \.ȟr)?܋%9qb̀ 0%ypœs^O[~+%Uzt .Z '\⧻3KfMzGPw~lmYx Nk# 睌풸XV9Jw~VzQ89,JTda4':TbPqd';x5 eaROBM->"_#'YRr"roDj%BB$l&ӓ0f?[ h6v^;(wKD ȍQP3/lJy&j.i:&Rz2"NͯU1R7 ]ۗZvU94 fā "][n,Myi4ͯ7:T䅷j`[j{kXs^KcGE x-rKR)*i T/"S$,&pCbEέ( K0:(C ÕPGqm?"fQϽP-%!ܝvpǧ8USNyee QJuS _OAqz65BlD l+3sYǠ*u6A.*[]Ғj\<̡|H$oeO8k9䩁(xXă)2R[ɧ/x6]mƗ=FUk3V%1k?u}+d! [&p a[TahWZ'NN eG'{ LgsM#ATn>O2}+"s$.WcDY\I@ruX`l7%iF0Uх #2]KAZyGViJIQ+uٹBkG 78ZkrexG [rгфAiEٛ7˰#&mm[Hi|ZK7ft\=/J-; YO(&b YH7)Ĺ[ .w>áGOL)=84ba0/|u B> < /"&q\XO&FAK; cezwOƝiD󥙔^yrxK·+,h1nBisvF~"e<>Q! q?i]A =nBp!<1 < Ms5_~אhSYe-!\vs}*n RJ`J 2mCdu0 el||7>6@>Oc\8=/^pW38%QF*ntylcŁ2gO[g.1=<3j ʉ'] DU@Y[Ka '|dELژuj̩mFR!A^2"ΏD)d"8 , W"?*,\sD xv,2 '3$ T (Nk {!*k^6׶YP,C?I~wr k5zT7tHÑ#y {-yIIqOuة+j SSCEjn7{T鳾2K ٞ@يTSGDKWC_E m8 pijd?s)mJ->/ D(D٬p™H#8lpˊd=c,g#~YDBt\5 w#YtOAG:3&ռ8YO5^RYpB U]+LHny|v[R$=tS"±Άtfwʚ&|XgRj~?X|dG뛸8Ұܞy?Զ7-B$YKx}/@D@Wi瑓[l}XXȍ{"YYVIzqhIE۳#w.[VxMREb7vw f]8]Rj*;=C\2qoKwbbFBkUhJ9BrosbMmg-_*N sq@fmmeg5r1&WVkrɔÏ9GviNFQ%4,aA5@ .ɕ7h9'}o4H* g_̫EY?H'q^_|oD78 OVЍ@Ѱ _`]T1]n(:3Val]i{(qb HKx@1knAXXCLNw-dEi#TN4ikx<5AU5p-H%g>4^]z$]b,o/2W#;s&~?I8L٣ַ _FPoӪHɹ$+;a(3_._~7R[Q,YРړ$ 䩡LsDҠJj4S&ļB4&֩1p=Et6>|3n]YQŖ"'ș^9g2NI4gpRT,&GamLjR+|"Mه( wM=?P4 z,43+3î%_gR* Dhߚ\,,n@$'.T$BGK:ow Y ldn+#m!_ީJCkEScGS_of!)/t8@Khr"bɞCmkl>mUw˞goT x=ޢ5K?sim`[YUlbB!WDW9+H͝Y C.!ڮOAauv`F[T Ε*H[-s/t7=Ҋ˸Wnǿa7 ]pHfI[:"r~*b',#UB5T:4z(I]KM%%b3jZקq_gD\2dIoJpl2=yB]K-2@gk^H;;GגI˝Y>=R}:L{l Ud\!c+,aU׋xlt'zd>m qpRn~3@̒}raBwjċ`nj%h>i"@87j([kw kɔlTMn#oN.P@jӔ$H=Jn?Fg]:)XsF;23*@8atp7OLdO'- S\5]h$-IP,If'=m]^عV]qCzEb'nt9 8`*N[RxXJ$} //сnjƌDrⱑMo4x|7{_x Ek'GO B-Q_A#CwCMA$3KЖDԳaxR^@(LN7xq"UZI= ,I!UO:jąCo%vo<ܮ*5HZN~dB|#R 4g=\]tWqqaQl!K.r])11q[I?ViI$]r}).c_wW@w&Z8wQS6+ushAr6y7PBdw6b{8$dX!'T6CBAޚ[|  .OIx ]u~"hGJ^g߄@wX%#6QGzw,̟/pP: seqcQiC精3 ٘ *6ɟ2&}Zm2p^OJ |YԚqrY(~ na@ .0P﬽d_4 ZOK](0'qт/eg؏j^?ScJ"_LƢKKit񔺂8Qޘε_@ZEًRAM(Џnh&ޱ7W[ye]c߳8Z2h"_lL7PTY94$J/3#ʴM rmR ɴ0T! ̛ rWȤ0xm>Sj-RW N2h D w#ޒgĞ'`dsDR%dUfٲAb̕G\3$h/4 9s O^a:_]='Đڍ+pmriZlQtZVQA\M+,I5:|ZѰm2lJ`-sműm5{)n ~7Iy4@V̕;ɸX|˥gvʢL7 H~2tia t4j۾,gl2ȓuMÝL:j֖Oɫ+Z5p<@fyc6qJyCހ3Ar iY+c<3S`B7T`Iz+0t.\֌ytL:ȃZ^61 #z}Ye!~㷳DnT @"w8\(C $xi[ o/43!}٭f|w &ejQ}e&A(7?䌃B*OoBGW6wk)kQ<+~Z_)1O󖾉oLs ~I^הs6I\iJlo]ٛu|~Dٖ6ZYjխө7!opynvhllsq[2 J/iKu!v}On_+p8It|(pӼk:C?Lx^5@w-C}ӈ`SNR}TOH>9*q m8\N`wʳT Եr9L;!ɟѮ/3|Kcj|q<0f"Fž g\ů[)%,~tQf`6<%z=?E?󡈙(Ne.]>vw mKXp=\H V2K(xd(O/!w̰0 N01pYhRiy _gf\j<DZO"W g(b}dd!,%F)/yHGQS0aѣ".T8e([ 5k!eFеlV QJT(Z&WT=m%s=`jſD FKN4?;#亙.`:8v 9-4>Dinɨ0| mlGW_yru)^oɘV:us|W. a4 e&$0- YFQ8S5siy;G8R[|0=Mb_Ѡ$BIӫ+fHԊE4jm6]bQd&wsdAU0m̏yz9Hf0OˬI.B=3U4dj t>w9?0KJF|VJt*I GrΚPl/35GL* =%BbKM+ 3sk"Ñg-'q &RQAx`Piu*-Ho/CXΏ޺3Tc>IEH+5aL!(~ 5ȡ\\t|O i* d.L-u"H,ѫ 3{ 2fѐ/$rx9Ms qYok3y URc4ݪxIUwU`ܫj[n1" Xl oI Z1ocݮ?G#g=z+ <R Μ7f Ø;fl( PB./%zzDn~,cS/g=$}#2z8I4NE1i~soS ,@P'B')kq VifIn_e#.396F~Ĥ/grEvntQ|S4B5~et,a1'˂Õ~ez*~M~X(Qߓ]h7nIrxlsjŪt+,=\_&ڲ\L^.A> Mجx. Tg]O+ύEJf 'LӢC38B}qD8۞o'S+&T245,ԅ0L|n1>N}li$́T\F'Ì/T1AmI2J+qEd`P%˽2$83UH>1:K%Q 5 )0Z@3bɃN[k:cK+5Q֣eԑo-w4'|, kQ]M>0<<O"|L3~^K"\xcG+8]mCu=7˅V\ >Ő.Uq9{7b~zdVߛYOtf&b/!s"^S B*YmnU|&}i3ѧ{LTWZ,0*kǜ0gX> EbzP1}mͱpخ #"!Rc+s^RòîFV@6_XdA#Eؖn>~GΞ]9ӜV~M%=A I h~8H w<ΓYlC@ًAK+P2LAE  =>T3.?3we?g"~l5=}d]v:Fw#3򳽲<#߮*Gԧt ɈHA_NҚ:hOe#R ,'zAbSvn(S9&;L,n?_rEIx:X? XچtG I#:Xb)Xr϶_PQJ  x[P.t=Zʚ`RI*V&MX՝C/F~9vrgど*4v!B c}B_xe ,Lz OGph"OaZmR(p=8>/?:I qg/9sUNEWQ؁-9 ~/T? ͻ2QI0όN+0~Mx Uzh~Y Rpys"c_/Q=Tqҵ&)T=|#iU^T3u~Dl͐UHX R7ccMn4­Hku%щt"LX4ư)6Q30&}'OPLu :.fL.~nF|bK0E4 A l4]3͑$m5!z)Sq֦LPC5G8c3u1[}VQ\8h,ϞIDh|`+\kGBew 8k XEtfJD^UC8Ͼͽ1Vw~7qK/"} jp=mwUxH,)U375D:=ǮC@G襒Y6D'LЬFo'~KArq{EPf;/sis*hbkJYcbfr^xL#/z#y4{/deҕNGEB$Lr]N֬逘ޡ2xL%} /i}r`XAdqW%a[qy,ɲAڮNj=y^VGմ>T28mk5՝ :הS=@U ҽorf­ɷAl槥ee6ya!ulNӎ v%7Ŭ:m_!Y4`Y"?$?KMU#M"f{h"TC.5ll /Isu1܎rX2z[bYIL-zד(% %2 YOzھ0rnƥpa0 ۫ )isU'~ʹo2Zc4k3Jz,.oDIᲊ8B܉*ߩtv%CEf@k ux cЉdNmIuR~*^i^E~QUFЕ, pt QfGpE9/^E03T G+nj ے @\JRGIR5ˣY<7eЗ"N)~s%@?5" 5꨸宑˷HX Vw5n~=+|A?J-bFh@@0â+ f`3@\Hy*COKMܞ+{*t]2@ f+q2n NG]v$wpأ1p̉,m]3[* {@ZB~YK*)7սĶV}fY~p)f낆zhD{{ bf!TغuǦܙ5A?U gh%(A  2:W աDC -ޗ")A7e{ڟnqb*f$2m bf䪻=U7}x9M%6ǗO>\k,30ƥ$(Y]ڋה^/zOk;xApIC22nx{&cb֗rJa;Ե& :o,UמJ6ܰ]?4ֿؾԝy "X ,'WT,Zi4k'J֪%?,+9iv/)sYL ,<#g1uP?D/gi7|DͲ|@L>'t]_= ABd^5f~g`͒L]o-e aYHvs9#6A5ͼ}HYlAK|e1-eLu_'d15UqcfP/S4|  a##Nn](5a}{!tKv|=_>^ n_YSK`:bV&Ú>1 #c[n.pmC.(yAw0*WDfH8-2H[E=7-owt)@cs~~4'DzH@.M2P^bY8sӻ^K?dFuV:mE}}_ZqpJDQP=}u_4( cYУyGҷ!7fNg)ews=W[,/% ίgbwS *;WAʠ."`~¬U56@㚲}VhwQ] \tȄ%*B+?vu氻7~F,M4#'6ƣT緧q0+9:SUIcfqP PvL>"IZ :bgDو^ ðp,s+E|é<\NF#:\$e׀S[Wۆ~ Zü.ptoO-Um-0-後x=~X++n-uxLXхO6Lk|V:0ň.}2e͜V~І_Nѧ-i֩~ӺIo-(ZxCA(lS&  #NB:G{i#rKAB9ho:1)eZxI/M%# F _Hurܵp(#BjY;ZVד[t)ӰDgc)5+}b 6Do$[UӲS8{o;f\() >@7ṉn?xL3dBtɞ_ǚz BYj _\b2etU#JQN!c3*$>o簁3d(эZU4IW#KsV~H0$16a]ۢ*ti%ԯWj=Fov.lm'}W/ɳp#= (}܆ܔ\,>1agjxl2W<p7Qs5cV\Q0#_(G Qڶ7=@"h'_}1 \^] sbFܺ7(SݸNpmX]p"~f<ֲc(>eI،5HMN?JWQ_ BblNvW_8l_Ó]z fk8Mݮ ѧ[^r #:)3'J6m^% 5@!dKbxtyp  TH1kFUyI.qˍˈ$T4m`~Ȼ\қN|O&ChVHH!o}͹)Ggw>ǻ3*p4dI7&zhU'kG2mG V'B$ʊهdNIJ22qKt#˨+RvS2;KO2HDuGoœ N1<=!Ab-_:gĢ!!aݑL)l_dD W)n_`S )%YieP|ѴjL߶*Ni/aiYx!M |* p8:pQRKz5F5AN/0˥oee")i$_(*QbXIV>ݑ#b=sNM]+}EZX"QקbA1r`')SCJ-<~;zF7Ce6a,@BnRaf3F <WZp-4q==[~)i_-)Oo֎ مp!dh:c8V3֒iiccة%63 Ua9/:Rw %iLp˟$oG'QRMtegEBH.0`sw ~CyNxa0]HP"+>˪WCvQ?SDe0Z!͐~F?ƾo v%qd+!+B)nt|wXo@GkfkAt؄"8n'wz: >2 uLCGXQa+MLy֣k, _9蜲F DMIKsg_9+e;UEpO9K7{Tu󃰖"z yrzSҟ񶑸fX)'=7 5lo6l;3?Ubg^Jي˼v6[9Jm뻹AJŅߍ8e\fӈ[ef#`|fEdǕHnJ p+RKT#6ZIE tȭ+)ϻ4ATR*O StMmMWJ6͵ ڽ%d^0,Dz0 /~UaR ʒP;.1QW j]-])״?aZH Tj+ [waVڈ$,)s>},ɯ${x6㸇wk Pt{nO+Wlr]<"ᘹl_-HMThsR1AP/lxֱer"?x`SCZ\lV~0mЦwfظ˄D) ;ea,5Em\ɓCxxV\ݸ!#e8FT\LFX܁tZ6_\;2?f‰^"KHkh)f,%J/0B>eWq(3VYsnJ(c׌0F;1YdH6Gd`C+%l̞=;֤`qr2+`!Ǽ3@R Fg3yA)x!t4[F\@w-4jpBUm^B BbeаvgCnOP~Jĝ嵚LnZ]Nf0Nx=Ǹ[uY:*ͧx48x;fH7 iQF`^wUI(aXZ+N0}DeE^Q'~t* *5"M0Eb[y0uuh?uє(2`X P=$D+D^5 @l+ܯn%'16rT,/d0/8[-znXLiTK̟!Ap y}e]%Mw^jHuL7:&ȝqse)^ 7ꦿN"+B S! Ƌk j)_Iw'f_Gzz#}!QߓDr聣D𴐴:v7qHJ =$b3m/e=ɧ=`ٽQz4Mc9GA#IVO1l@yQeV r L9,C>Zi]nЄ0o#(k~)3mc u'" |ƟIi3S_ԧ|zvΌ[Qhd쵴8J w)dem AOߎҴS @O;neT2Qȳ  ;_ ׁ2Ki=&CuJۗRrǨ>F\{˥oJS+T9MiҔty1 %ٺT[ZSԍRnm4] ! _ 8&vpn-^m7Lx)70KsO2dD[Kj23-ow[JF9/.ޔ~7uo"l^_gih %gbxɣê0+ ~hx&B )L嫟jOӓ62*Jlu~=,p|WQ5R-3O060DrwӓA5Cn$%I 7q>HGVr6Vlʩg #4ֺȮ N5J3_aj46\=}D/"x;陣"^sUx0) H ɠ4Vl z:&^&b>،%Gg~-;aNke'HuO>QM[8xȠE(X({EMa:s_;ާQ-/`ZN珩#y?o=fe0U鼼9jٞеD~^S':~Lv;A,*!c>\/ 4ZcZno.r+S0zd5y; !q /nVCS/R#p\MM96mK 9) 6mp)Mk+hϐjdD)wMJnas~Ƙ+-DGo@^&}4Be`K C*'ny;@+64.:MB7t0Ghk@;S<[ĚJzFyi;Z"xX/gu}aDʶ:6SFC¬H~)X*'/4^HC n\Ka+ADr4vN[q3) emIڶf)\09 F Uט&@/6a2V@ YPܜ餖p1ΐ8/E?,B ?L8ђt{FT LC25>[}XA;7Y(ܤQĎ6 ;+Tb0Kܖ]z:Iai9,c*'VҺ+r@5綗WFRRH>sGN G҂^+l ,:zi0^=&ǍdI_/c{$x¯a4kWnYnHJ\*T^mL/:Zp*r~Q%1m'Җ-ѽDCrU-b 1 ؏:8/slN4%_ZJlz.SQMڔc!):QlHMX^kK~Bڕ[Q1\#3 in#&=T9jIǰ⑏CE}Oďٛ/Ww/J(.Ƃ?6QX~blˍR̃~^ @`DI` KLRب M]6Hl #FK c ϫI!ɘ )0_>`›;I<-={$+]phOBVwGOwa]meV&޵_"8-r'rRȽЈ8C"-(tE]Xrd+v[KߨDFU:;*O2oY5Ҕa{ԧRt>uY¹$Ser [2*$Jx,PZHh(25kǙ!&LIgs:H #4X,T*3^i/ةՈֶH@Ij@[aJvŃfEs169ݾR'vF+71m.>|ȷ2X4͠f-0K^y\{cJ o~ w8{e7w "?Ѩw}~1/VICY&Sh/L@狑Zս쇎OU""s6 QX 1E형d|C|YAvb]wB{ !q CL TuFvm,C8arV{Iٿ2_OH4e`z:+i|WLJɎG9nҤ_?T\rƌ_6uqD+[9%uܑO>`rܱ6o0\z &l)ܚy1#^84ův*J,wRH1L  quM 3f$ K.D:G *|[L5ka? ge\s6Tw34J!+~cfJd%Cëg H.yŘ&KBњMwǓDALBp&Lg*0/gϙcH"fZNu_Q>q%cS{J)mȢ1.uHe_)(uƍ+Hv. Mz kY-E^ܖ |X G]`n"\еRPp7IҚ,.3R6٬ϓt"Ig*̫7Ӗ1x41SA/u BuH%7!Zz7DGU εcO}NޥH4% EIƱC6^TAs<V}HbG՜ݾjiƏ-JqywQ*Mq!(Z. KR袶F~#/BNrPǪV\89n"*tT*D;.woo멫}Ϯ{3[NeV1~ߺ6 @V zƢݱIAh{ANEM_rYoHN'?~眚R>˕=ӿv699V[?4OLVlY[L*nb~RQ; y(piv4!۞AOr/wtix/رZY#Ӿa`5Sȩ/M66 [iwuxR\IU$%= 8? 1ހd}0sR 6/3Y'Wz4G3'HX8|!p.$bK?]My3(\XlM eM{^ HU I:}t:S'<1#qp-0ww!YIa[4ps*`=^"'eid8c¾%qK e(cRg}L{6BmR.[r ;J* z(;cI5J|$pGz8*#z/SOn[?udl#P~-z+њم:VX9ޟgHxbf+OC3KۓSn-Rb3G3b{ m S&Y^ xk7JFtjؤM34yiSϓϩ]P=6YLNbX";rOoxக-W%='Tw!ҠMSHāZΤH$|n=/!vbO2pe/#H0MiI~{1@?Z 4 `2#6/{~̵k2!ZG9c<Vw䙦A5Կd \d7<7"UAJ-|P</ !d⺵9EƖ61??9Za?Fj+ 0bnxN~̛ Y  pkpJ$U@bCBkQ"'r!- B_$/(|qFqR|DclpDYb HA9*K ]{+-::3́"H&=D71x'?-txG~7#ڄvgJ0J맯+C/HV:a^q6ز:rg~ ;Ы+-"@VS.w \׶ioUKKX46)qT~mƃng67 pY1Pw`[& Nl]XgLXm W!/2zg9^]K^1:_0P{5{h+ml뵻X0;RRVe"P"_!Hq>ߎӕ%n([Y6`WK%ZYY=q&hH+{uy_'/ʞ=P:"_ m;s`ĝ*A}(8mj6%j|}t) ')ͳ,C=֧2"4Cµ.dAJwe!FRS=B,iHW> b d 䃳2PzQf1- r`K OBzPӖA;QJt=K)c;]gY%m J=BD,%JR3B(0s`SŹM,t5ruh<@HD1!i -Mx>{-m:D!2Pis`cJNO=ѯ8Pǒ%쾳xTpJ])UϐyHJz5=AŘgN XX4km(qpR&2K :ňmGOS䏗P#5Jt wPKz5sBH#ar@)8̏a&aVLư뽝fqJwS"wgs?}Cr>AAWx嫻1jo]^{c E]lP=aH1YWI :'Lt枙#EQn|{aȨ(v x't{#x" GqsyD/1R FBMgR5(Z;*‰ORDXZX$@"ꍬشlc K=k^Ie$w|M&_t{clKY~()=%gE s#:#[P}Jj}p9FjB?VI -ohaQ+9ZK:na{Z2}L46'l]hV p&E &i@yb,PN:#+ F(uςy3_ina,Gv7،iW3m"7{1r$Xim(uXzx f"@U7 ̌| bS6DҦrwŽJZK39^^]%7d|- E*+&ӒsH)dһ A7ge.d  +2&O )},'[aDǟ;OPxZyjoAf*R-}oiE9I'wVj閿Gtb!Z"&o@Ͱ'?! pXcںUk) {2SX,vs4ͽVT $W}EcicHtx1UjrduUUk KP1[ (y6upj_Փ PysNݶY<) ׼xuf:ՖgƦ'Xօ}"0ns9N{B~yJȀP)#A4A+Wx笷H^fo$k phj>+_WOM !$"בx H-OhT~4; ʢ-Ֆs`Ґ/BJO \r)\Z\~We?-PTd!>JݟdWGd}+{ĵUzh6\d[G>Pu81ECKVз/7J^ߝJh6=[q/L+2:s}R ͂}ヲ v$FҳY J3;c@"i$v0m)#jN,77;")-I]5d=>7:/sTBce\ٽt/2D7E;頭,Xo T+:wpСd$խ#}u?%RaNz3윋3myg=͜Fy kxL Q ~]%JCIO(H9MBjH[6xmR=D/E"3='qK~dwVnRyaIab|vC[z0쳋}in1$¾O1TCǘ|_4ۺx}_ba8>kmk@IGAfg ?Тk`zeFHdCdFrEz2Pąؤ ҁayinX=!h ,Nl;%D42߱ N`gJuk3=%t@¥0WpKm+*/{x,Ʉ~|\y,-u0iJ.ӼVfa Za 6~p~!X+y5kJ7uƒ3CEbIrn / GSu|$FU=f4ju@iq7,H47lHHn<&:2Dǭg|c&lO㔣6KT>6wjՌ,,aJ!o5*Ӝ(5gHL@q~'3v6s?  6=lɇT;lM6Wq)SId浏Osq"(N|8M6IMu )!%%E،țfCe-UPB1E?~8or-&gd=g+4C5ךu]ê GDL ]t_`mϻ?wd%͈˨)hb1ό@0.LC!,(CTn!q>ҔU9 $^6|96%N -n1_!9Z.2|Äԍfn:-|`?ؒxL$gA/i*SŠ{-f Ş̵գRGjr ^_& 0(gk!c(7ACC=.3ڊƖEiZ H|w?HMPU/W!X*_&en=-gRIذ9h 4aw%@"̘gQzSt"Mr]*_da%A=(ˌVBh7-Q1~;m4z ),y%p#E{o7n̳&nzMMA[Q>}b. D1~f hr؈-ܚzfzFVVQuCJ7SzWM} ]K6`m@>kn*Gܚhڋ3*ZVOʹ5ݒ":i~ˏj tGY kMz-ĩ3;2 ^>]mzR֠~&yީnzes-@= c;0O{hF0j:G1Ҡb_aƻOew6pumr%(9\,igH*ѝ~.)P;%ѕ=yG}BC4{hykL܎.I/!>ԍߋ4uJ8+Xz<42I (Q84+&yEݚKgXu †2^O"x`.Ϧ&V.Rd0Q6u"͗}ߋ[)Y>5z~yb8O}KbuJ5C]XV@oZliUj;F|/nhRTUQPg)Oym՝Bg 8a./ [0gkZa~^ @X(|z=Ky[u),p- fUVJcGf gW- C!߾? )!R-_֚?= ^%;D9V1-Q(Y<-^y?+Ku]0 xCU얶M``/\oJ֒Z=̺u-lk.<Rw԰-Z81o4WP`O˒ +MyzYB&3?Wrh4d=)HO^A,`ĝXD;m_QAR{ q+iXS;5 : O77w9+:+t|ʆK]S3اLBhiApHws&;Ny9[0&l )llEY*I{z{(S>BDj| %^I\.qQxP6F.C |.\rY<`qXad&T);̃Zg6 FFw6(*G\hqx_@jmz@Gio2U3 ܪ#g.rK}.?yd䢉[ZƁc-O}z"T5#Sy8y#H& Mek}h{*y5h*.$1=~&}?!JMN̯ha͈=&(/z?#ngdx_ƤiuUc-R۰\,UOP #J݅=P$A"юt?E;=:q .c3F1ԩp6RN}"6x<,ȎA*، VI%W[ޠ*}THם"6#@`q1|nĢd.lUykxh?o-8 Uzn} F :c);;rrɁ*wZ > vTDm5]@)3'X^|3-ex?k^(o][aIN4g8 Yu )DhdZ,k8NJ::0.Z7j~tWo&FKL%6| . 7K4'x>VϤR5]c]D4x@Cl4053{R\X`'B\?qBSxN‚tx{g TRYwF' ``B*`Z*Wo}ȓgTYz6~|U-ˎ-dORBR4c(PBi Pr\Vw7T7GNkxv],5#qlj9gKhpgɴFb%M<7\/~/%}[{zΒ<.t6" ͩy萎dCɗp?3u('y2WGl>_`e_?V*%s-[q*݀B FaӈFZm>RyI(;f=ZPeW~5U5xROTyl.k50N(ROl9f"(']fI MXYXffR@HM|l1&ʟJUqj-) Nusy@hAlw{,F;z)>躤q4  U4/6Ĉǰ* EYa5T~l= $wvWZ)=Rýede9x~t=%RǎVm͘|?r\ )?0UuٷYniPU1&n(pHB msLXjpm_t ANҕxPH|}or,>6}Ǭ2kdZhČ{+_X%~1 )]Al|}&? WMۦ"65tEeF>EVYOz| }y(pg?y8, 5UF}0}ɩQhXj|VZiY+0^Qf~]հ::zT͆辥xͱ|xoUo?v0^>L| '0]ڂ 吒~mXqba㬫d0cE~npRUֵE<~ZRǔ]P!Ч{To(sΟNXķMӠk9u/ЍgD?KŶGeF $_, ^T]+#?B|:;0i  Uĭ*cJhϱ@:cV=lMqGelGUI$k P4)uqh#iZ-/i]MىŎYגi4C~ӿO9NDN#e$P˙D} L< 4Uֶ#,0EhbQ(,g 1)++t'{ 5Rf>C1CO?A"#C5uqhx))).p&+vrkGVW6s-60+;Lx0{c}~;!igoZ(={j[Pё9q~ƻ>_IX!й34rtnE·ѭ[koK30+M"2"̭MdZGEJEJ_#uHKɣ.oǤOYmРW1awTlNAYՋYG`<sÅulb{ZcMv]>)V6Щ1~Z=v&ov֧ڻkS9iU}Yb,BKd@yͪ8d On ~_NBN׭Xw fI|̣;Ze"[@ Np'0 )5\^neDe35_ۅmOiKY*Vr; Lv żjKn:.vk}8 JW4{G sxLr~.sTje*F9 NΑмȠ >H-:1iV~&Oyd]FnZf2552c%&B_>{2Ժ>J5TPK Bp9Y =Ƽ7~s!R=KPe;/XG[mǵ,r-Q>v€ӥ>E{#tesrP¸4nqJ_9p3;{W`dw%zmxE_ZСM =ܳ >B0/׿bpL-T`Pނ׬Wqp-HT A3VWd'1U$GJB^V|>vF\,'n2>oJSQy,#TǕZWih[ ջa~mx&ç,#`!$hK ڼ32.*7J˪btV>2 ߽RMDC)ϜqTZZ!/i&u%#, ˣAKy)۱.ofԔw}Mq®(n0ȩjsOs$ -6N r|aqԶ7/UFǖK)g;On)}$5>Yt)aő4'kSFO3==vzmFw8|0#s0٭,/*x[&8Ыi,`6e[)?𗛓e^P;0D``ҹ0<"NQ$UJ2ǂ<|d@9,ISw3ea!)v@BFL"iTM5JO1>Swvm_ x`mzX>oG1JrF:uvpH' Sˎ- .F&L~Nj؋tԞ(oAn>t!n1PN?-ЙI% yHm=!qM ݿ04ds#F0oW`4B/[Fm*QU<+i`6(%\l}!;֞&^)G~>&qb0(cV1ElNwfZjs{t5|Z-"Q]qSWQHkDcHe0qN7f3F$S1Hʓ.X`nY7x'[Y4d$s-?pie4c/(Y@YT7HUZ VSX0}%l]Vkߍ0O`B R+6ܐ"*uA';M5mع@J_C_'Xʞs|:=$6^ѿ?%t߾[Y5bxv ON[77+d"q+8?֍Fe9ϨZMu*>PC  N8P 6jj1"p{`u-F*48n70t0ˆ/LHMZVv&w0x1ΒJF !Se`g ⏅K"oPipALHb,ZO!Etc ?zXo>>,wٸK`u:Ʊ:ٖ˰sNoOcW'J]hkL%ju+wdQw=j.W*䉽*wAW֌ pCYGee^)nIewʼW@Np6NVʙacVAݫ[5!4^8ȱ@_vDm>~kwUO^yH;A蚌ȣ1vi?SWAq,WU_MߩӶ4% e>9?b1;{CLgI%&kO2 j7%" /H_t]&{IyHlC]OšuT,zQ͡|t{ 3JiY t `[%2yIІ2MJV4dBbMX#K8^,}ÜfSxb#ԣd]k9A-u:PXEl$~aInV+] e(֯}vUԡ %K88i$͋cF F׬)N4*@ 9RgEd{M}ܚg2sTLpT ,kX2fvD GܹB!U)#>/:S,HiU}CM89rZ"ZB+"Enkx A `>}QM-&g!G#1z8(ykj:qM'd*Hxs}㪅?|0`ƭ4 )'@ɋuOhܥ!YŜeq/kz_ j7 Pp]%( ]ރK7ר&~gQ7% vn 8:̣Lo@ȾFB?dلx a|ˢE?m}.NXmoMJ2. >ߣr?!ѱݬ4_ -{빮-|5 j֊2 ~T*׭^:jWKe8TA-\?Peo|}!GVԘd;~ e?xGJhy(:ӝ?<*.ʬbEX>>Aݭ;,?q(jܟM\br3iM*t#ֳbK-MbAvf$3Ԫz!D}tM}uVJzX -^h2j E@}pL]ٹL- hR㩁0E(!: j#n Io~W,6_"y}ME}K=Bk;j=8uaQl1o%/U|x|x]%t%zBud=g]O*hhJZ`z9/C=`Y]R.DB>">5R>7>.ק _k,wbj=?͘~L=ʝB r>ӿWohx`:ٺL͎C{*ӟ}\:'V1v9/0 ߛnhMLT}*ᥦɨy\S1% \ۚ˵P{SVtVkSÇ+n]HMvF9.LR *Ա<]&^`sǙ t9yA)A8^?0,zn[}BnfsXk)%7P +Y!w,vK&/NfƭQ8ǗkaZ8sk{! ES?hMC&AL 2G`J=gNpm p$']hH/]faQ!SREؘnL6憋c7uu2vߖ\z?hE_*!j{@[d@hD 8yspvuaF 3`2.O|jb`siKVRwfb08:p:pT9$% 8nyUrz-oB#a7=(~,A/t'ShRqW^z{"7i!oCytn(M jc18;\3{w5 j́y~{,5KXdor#zޓ]U`Z:/ a.̂?\0w)x2X)Jo; @Қ.ZYwodFĆ:YzCX*nsR_O9};\," fL{l }jp&)/Uw!iϘb*yR|aTd)[_T҈_kHpYT vgn-e7͹ǟ }y"Q7VhllB.](%_&3 Hj^؉BNjF?rL` DW>^)G05㊌1 :(U^P̢T<+N&s'?|2瘧'fx[uM϶ug'iRfVz:P9{2c[mWXse%uW:=G.'H-sY~zlϸ*{wᯫQ>S5,HMP*Ҋzq,W;7g<ܲ?aU+VT[UD4l:b5i\tgO*eXBu_YhnrITqN[Ls2n>cv3,W T] \ɵnfh -\\Ep|o*izrߘ[AHX?ނḓ seHmG2g!q’L.sζ"=0<+,iN9(pE#?q pSUOE_%}-U-XfJ4u)9''f̀\#pmYG2nc (*nRvd *,gT%#gZc43 #4 Lfxh#~uYEL 3 `mf3uL s#hlsZ3%z ӊZUO.D+#5fR Yՙۯ$X2g*0 &zĹ2!^oJ[ٜ鞹t|/5Nlx >DL90KBq9(F ȅ Dhsvz1 ћa Z52|41MJЛ~3\h(ɖ#@){{>=ӣr+]$0>7m,h |c5w'H29S nvÓw;UiwCcT&m[_F*$}I ejˎ Ѹ5,~6:0q$0L#zRAS)+2'cH 5`vp73|ilʐ"6wMAKZ-yxta r2A 1!Er)L,k]@?jOBPzE5 bh H VAjI̞QInr~)J^JSE& cE5 &auؘq^li+\_!FWEv"= q:t sdlU?YhΑreZ av 6q?pE"Wf9FSo^nןiѵdDWivm2צc_:?dR`d `)8_@WeSյ꾌Cقy#4zovKkdvvY0yh zvw|lkSw$D:n%T5oJi5i[CX%FIeA,0P]z}}0W) ZlCޫz $'fk+*8&jv<> lJHuP_D/zvTX6 "a尜}T(FNc(mW2x_WJ&?7׸,հAD2z󠫸Yڳ;6,K &1(Q$EKbCMPafgD=YBW$^Vo17 Ѓbm8W=T^u h;S3lb6y4j ,像Vꟿ}caٹm3}1 [!:NIK K ˙˜Dy0ku,38uLТ-4Ka7,-0Qyva@Yߖ7<%'Ҷ,,cC/\P<3 4$0f}yx,vrvpk"1YbmvE!}M*2f>#~.p49L<@HAD SuiU[W1B B1M7xO$Vgh8p[b`,d['8 Bi2ݰWqPߕ0psu$|μ #Ԗ3NS D)`[k3j0+l>BA3i#@& Іt'hȍMe/eIOJ.*dOȣi ? Ec< U T#S?&W͑ܗ#ׅpkc]p3h)ꟾ܌M&ٜ/1t8 'vmDեÕ8w*^Wx0s9-wdٱŬ[2tn5$fΊEqK2& iB펝,>Ў]M ZL*z+&fkjJ}Fv"睌TfTϐęW0Eh]Q=@giO C%djC\S֫ +ykmAkɭXǁE:6. w}۟-~ӒĔs\wȌ߶&qLB(e"ڎu%"&!$wLTԮ^oeKC L GNXt Kk 7hwg$n;&UJ:^.r :w5y! \FVM!e@4-6 {g S^[Ků@/6jz֜Ŧ=9dQ׹Akq!v6ͨ!zLPQ 7l/A jSU$YȮfpUilwNyY:Mx? F+^7XL}\9)#&|c~dB u4a&EkL[)Ey* Z?ʞ]orI"rRCX` $t\br;.89f ma9Q=ł!/yZ_hi+P ph:҉ez!qj,[-)$R3y#Ӡ?IL=(K {RbE i SЪ}H1MT꫏Q^{P;[˜UN2^Cޠ!g{¹UJ5*p,s#vR#Ә+ *e[D6]BBj%m(d I%]|yb:wN (SnDL$?L^ZoUa1CA+QqqDbR$MW)2C~7%`v|pA["T.~ lFkDko(O M o3\ׯѢݶ'̄n߰~9x#ZvKV2'RJ?יo'dNnO6DNVw}ePA"621icIF2!™Fs\F7JD|ʍCⲵXnsGv#[;g;ֹi6{mfc]aFn<Ƌr)_ ^^p(俴#!Tn)G~.O|Z3@#8pS:FZ#|zv94l5>Y|ިmⲖ4;+l%H CqGYaȟv>M lƇX/[[aCOh$QP'.Jg89mgsIguE[la4fd=/u$3G74 iA"wv_=7 bQKHujmHϹ{荿yZJ`>uv~Upz^e, unߩ]P;A}YogDy(tF*]C4C`O]RP6 62mEb2ʞ@#+; 8CGzН!Ro9}h"'/[4x/ J0s xOD$(۟Qt ,9;K:!Ϻ^N('QIc(LhH:Xa.v'jaxD+8eag</Vᄎ\ykH2(dn(M% [ Y 0jDc Yx\͸a"H޿(,捘wpn"aw6M(}X fUCHJ|]H9;򱩻*U318JX ҧ1=K##Y-ex腦kP\[/\{WCr76w[y͔4[DAb ٮ+Mbsؖ  h3}~rݖ 湭A&([}^ğ̫4 'K8* Ux=>yq[ \qA5`4-9>ZJ cX QejJ(h,uG;ǸJR`jLe߂Ciu[*;6fo{5*+ K1^D5'Q1Ֆ*CE.]H+Nvb`6j _۫!M/O\s!6L7vjawp70!B˨u.W&8X y 潖u _> _2s.(k*씊&PAh!yIB,( |Y lǜ B"$Y}l }NӺQU,~Qp HPܬG^8oH_z21FQ K"WECB6ţV> ޳i< M\^uKj'(,4؇Y*=Cf)Xe'j53A}{^`=@!]gDnLetW2LR tk Q7u Y.+^LQ?9)+c)2,WudvUC˘~0F 6 {Q&tvm=|cr F)L*[ٗMf&K%BǑ ;_@?M90i. eW<9Xn$tAGr]҉L#DXatµ{:s[/|[k~l6D}3{vR;zw1r$P@B2Śr|8eZiʹ y19]V{gazZ%qҥ g8]'2jH]A\YOZAh=< BxԿD陯4{-'\F͏2 Qu bBLYtz,Y8:j͈%6y ݈j[C)9Xx[JNQiѧkJ,u)65Q!A1%*`W땣%ŭgK)ct;$YEYrnH3G>gkdp9VC8kiLt(W?;sK+̟ai¡Y⢍`,bhy2@U;&aǹa(-LIIJ^wU,t8lph\$ "iQ{\#Q}sm,FNU,vrSEx2[P{z S}`ԫD/ pUL`_ΝjN=;HSfD$;#'LxfZSLc* @W].`ԛXu=Rdگ21 0. ɊģٲqCkA ̌Qdu2bq!e4#և"w@_"\JZv`/,nǼ!cPp18t"B(:]mpq+6n.ntMAZ\sE-,+2G7a`4A  g蕻Y}L+$"?3|N/*7mi3bjUoNuŜv->2B5E~ jț~ 5dH%Y okݵ>yM\-m0&& LG=v8*PBD:p~hOO=偞H#-!0WXw!64*BTwQ.WF-tcؗrnSxxrj[wg/">Vݹv&)+@6$G$!+,d oVLk|Uo ǿ^<# 㗦}PD2(Xܫ\| KmΟݏ-17poUh`ء1EgB?'y&|iu12 DԔ=ͰϟmLGPVFt=7S,b'?Zb0+\t&.;X B " ; I]\)6e6ʹ(^/&2lÇT|G »1^-< #ae=8f0a"kkD4,7jhYthMmȚk{ Kl[ŃF\۴sRDYޫĤ˘A&*Xrbu<7(aE(`S?L=aix_ 3qL|AإT1|f^xnDiﭤ8Ky\?@c\Pm/D>_rsù:3i䋮{30ٲZ{Z(;,̟_mMRɃ61^#j)xb=l5y1 ɚ,UCW3tXڋS7R`/Maw~8 t>;7%®#>7̸qrzYm`F+`u+b6V<ɴ"_{pz9 +6㒻6UP$X.h܆@NJn^ÄV1=\u2 |_,A=Z svUNׂlͅ^|CON dOB \ 44e\SWkٹ+ Z*y0\Oka8J&PlwAprULw ;3@>Z#r[ЏPU8cw5j[Ap6PU;UmM kAwn=W_ V)vœ B r\T=WccڍJ:&P| $$/ [PI+Ɨ B/~mO~IҢw O8VtUD`fH×؛?otIQKsgsڕ ^q{MgʹSG'DY:Kf$ e)#fI.q m8ǔzLA7D.wh+R>V"10>m?xV&V!MFuN.VĖypĕsΫB:(CrdNO>@ #tMkB\#=xV\d23x*ν1aA6@cP { ]-'7(Aj )kҶ i-pcÙ [O~{ģlae!? 6(3UV3@.x)1[-\Bq'cYGsX-Nv'*D[@ĝ`&d()6rȮW6nԓvՌY( ѳR'Pn+GG}S93=uCkuYYݗv d;#q∘ JmyJQ‚{5b+:]+~B}\>),}?0{qppE;n׵r6#kYs3 ,-#J%e1;mӠB~)0uNC7,w;t(w 'iY\9 Bصkn qsa*ω(!QӂBTp;~BH@j<ާ9 Y3VAYM%D#˵Ô00K*p eGu,%l$8VbGo2N3 fP$|>,b@IXvң2$Q/f]^W=zj(&QPؾ20 {R=k^(a+'Vq\UDTLINSgmERٯ&:<VIзg {MC)%okoRƀ6&ѾdM`e03zL9(fJaݵOQ~i'j&CѪicHQ~0è.Z7ԓTG>ro@Ym!Ũp!FDc%KutI7OTK#,VjwV0_,VuK,vl^q:8A2M^ͭj[ h98ӧM* fp03նd>:m|dfpa_u4t[TSey O1f$:8  U\CZb -xAЋR\+ OsC]&=ZB~'f;i->yړCzTf . *D3E!07bɥdng@c0!i]iƆ~.L+Tu$b^x#- Me b6'EI+JhQ̵WV JEoҏV^u&gwǎ1iAd 7)RT۲0G k;l[KvpiԺPS+LՄHe~é*WMem.+QÐ ԖEPWF݈`jٙC~\*]5Ofb^¶k['G$eBUӺmF,48RyK>9ѩD5`nZx+QKyM)^2_sf6+ &A~v{ 꾖 xssmNľ쥙q%\Lks_S35IV!&җfiG0:M9ۋ\'0`e$H3ӞuM zTu(s3 )w>W an|e7W<^/дL rY5WOfZīHģс6"b.dZ(3V1y>KKA? 1*K"'Sn!x??vaNM,V:B^ VVX[㖌5_O /a;9m^]ۥFM#b?y"G"h~L0q ̈C8 WJ;".%o *[n8fpD̈Fx ?gi<:_H a\)E#x\֨p)x'_cՋFلґuu֋"'9_6@C$x% lo͒)o Bop=*މ ~4%75#]P͉J+:Nǀk~D+pۃfu #\esòP)s\Hc%H梼 h P`One-.#f)ӂ/ԅpU'{K2)?s9j竢?Mj qr{Xyd&mFN[ݱ X-c!ht{fQߴW6QX% Tqi]$dӳ(riO0 =F9I0x@T⽚h^hP*b]+NNܗv<Η0^`gT]y[+LQ{Lg=c35ΧE. *Lf j's!XGRTH0}ݰNZ6rUX9s "1j_J9b8݌_Jv{9ߎ\ "X?|{Xbjg} @oRr&xT䣺i6 쵎%f+! Q -YBZ5L01rtrۆP p:6l@Zdwk)NZ;z4lc3qs%ёmP{\:+riC?[枞]kFH*\C |@Vؾ,acMȠɞj](~] Z_CXii=b:0~傋]%0Ӓ 5v u';AԈht#ܲဗ:g-bCgu%;6JBz//Y"!\TVx MU+w $جsOLau6XT*5cG6_ˈ4y9d2;'yݣ\=@)1YYczbcC dQs%o;Fǖ~mOͽ [Q6(Gյ(Vp9[Pꘉh()+,jo\ `X p \{|S^2H>hOCjt+j4_3EX#,zTS~UΙzV,~ը*^rF}!ѮD\V;{Sic 8:JaN7{l¾UL,}|?@gJnp[pEXgR xOf+2#S&TyRo/> Q|I!1JY(\~%fv)櫓"P^&ߊM)+ըi>pwgK4ߢn݁2֖ vQ$\ʴg .ڇ&򅄂28b+-@>_ϋ]8. N%ؚxd'}-NQT( cχ&zи9=xS@U9>D7I ͝h 72ɭ4ںuV&J5<ؤyM=\ Zy&2Ec袤gİ]M viHĞ~~rb&Bx!5 K] %x㯂oVf}`Ͳõ6-*n8(-F> ؓ8H .W&3͚EYFIݔsf$pIw^qKCt׷w5[_ejUE!cL젹/sPT d8t._(`!6ݲ^,& Q'=renҞ5`us2QJqbZm" T@I$(qޑ4$ ܢF`tu`LmɯA-%kZEe(Tٴ (:53P !dOvhXFys۳Q.Z+T:w `CCYՆNVz5ʹHv6 #}V6z $*O8ɗ>e,jnlޅd4`%tw?kwhD0=Pz1aYQlJcԺ  yd͎8-)dEqOxl8mV`ZsVׁ̄J#'XP'5a}\nMQߔ|~d!%1Ǧb̊KYښlOZ*fBg:+ّŽLDlRRO\{;@́3^|6 gUJ,r'#@GF@:U Ú o[ XI]39uO^N2A45{"-ǩ.YmA^:֘BaS<)>^Ue.3iYv2%ᇙ1>,|@Zjĩ-,TB5{&%l*0KU1 q[ۉW&#OJ{mEY +h'$ix6a#LN\ O6+̄)kX$*\@GaٞP YnJ 4EVf\UpHy^y+ip6W'Jе5Bl3M5!lT_sNfny}D<'slhOz6ŇPX*]q !bܟq ߐRaD_m#ׂ?"&7:  Ye.(}p4[S@[z3942jSj)rn&EPJF{Ynie˞e]IΚ>O؞m kyn =(X}>clhIH,rJT1R.D*WҝO@fē` ?Ш7X^Au,!rToiB{]ca`&}ϡa0SuP;ېwk__ ۭtU1u9?j"V=7%dVSAW l!)v.Qbb?U\,HENI-pJRKew6^6vz#nAM/\dowJ/݋/(c}S /|̛FQs/c)j | =B*U@e]&HH~K~dmanljSPj'N['K2sa 9Nt@ڷ\fwgKLW:;fi\Oh+"x^/,X?N;t)+jK.WĔ7[K:OŨ|;7r|0gUt9֓^#F'#4+ gݣ%׳5=) Z K7ȸ/?aA؆DO :3u@I<2sǁCҽ#Pʿ7gkԕ3IO0_SG]͝.yo7,=0EJ I+UM©ւO]03ٵ؟>Nb4n?2xx`L+eEc 2LU^2rXUuC( WAWjO'(Z='[Q/8Fҵ[jǩ3Rx_hS=2뢛յّ_(/b˜{܌k |q`p4Iaa6tiT$';RҡMa!8ĕѶ gv:i3vv^1}*mw|>5C`$H`ȿsWBb6?EhN&ԫsNҹ\Ē0=n/ft+NP/m eE Vz`#?pu鑩= uċ:*h[bVK$onћܹ_~ӏU!|KnZd+YV2^;6ÛX(ym{(+~A{*Z2n&ۤ͝ċ(2i(&.GcŲR3f/ule:LAz6x !},VbvzK=9]A;tW8֫ƟSkEhz0:v,%+wA Eh,)zN<ac@$-n)(~bgD<~k J3?7?7ZBV\0Ta|@9: m!m aO.ODn l/%8d,0 4N >w5A?dWi\ :Mpd,r?  =ӞmBxMŚO/=R~y~Fy0nO1όMn2 ,TCc,@i12kjMHw*~VQ"Z/WR4SbGA$O2qrCr geS!1­?kg`j? Ӻ7w- }'5,,Ŋg''!U,Hmҗ}wPvwHXKb' <$;ab=;jkTfhXmI$XpDesOH9}f#4@t1fAp!E[.n+ ީ5|\o,*!dL5wz5sY2ZϪ]\.MSVX2.n 9̙]?l`lV *א#p/`'R'47Ǎ|,sM.vw֡?2x1ȷ"1#aufHY;«Z5T)FPa3m:əl4HNUJa زa5[AXys&I +8uU,S~Q\rf-^f 6l"^}XD6.h (aJgbxҩobL~%=6z |Lm$f aΐrf}ODS̕MM #qeHuR!NX:Ա==4%tJPuzW*M;iY; 0 W,{}5.Wb|)c/6npV+f|&ɟUqr”bwKN -jV6&x$ĝӆmG kBX(7wf6^crqWp jX|K? a)*4 Dl6“z}{W@r(fg`G' j%:`f, y@ rZT+W儬if՜tkVnPcrDQE˙-x9VS6"󌅧霆?Ta$=)Q+t|{j"asOM 'jsJ*L cX\ XSr.Fr?)uxyW:` D$fN_ˉѲ ѽ:  ~DcI֐ 0ls)WΤf2٤%[b !V;LZ?Z OlѲ. syͯB5J"{,dnA0%1Jcd. 'dX8;V]p0U=)QNP 7^ )D.$%g\%jьJ̕&)q"[& )Mu,M5D̎߂ss=bTA6=`s)[Jr/ul},6..MTE8|$?Wݗ:93-m` D%QINKqDIĒx' $ 3n2[Se*>Xq4WUonTr)zج|UZe/~IQ(n9r٘7_,oڂO8u8gCAwVWr@:52hͿ)X`Tgz_Ss/ zW3,eu o%j 6)gX,د E.{ q"!uSg+4 ~AJtT'Yް:l&&"-'t{Irn+eί´A8[|1m8үr=d*Ԝ$)|ޔ 6>=hgA£^s%XgRe pQv"+sϝ~{. C'ڑވ{aq= T+I;Qf\=Nh8U.y~~N6Đ}=቗sy,p+9lO4nc/@1:}e/3榎T6vvMϦ@X/|r_ɟqY@]B^71U;Òh|e]s.>WJ<7*m"iI;LÓ؍z;gzreTÌy:&΀Q0Mf譼 R- X8qD2F5.*bDn?`P gd2HW_(֟Xx k=Yz'd>MkcH1mԊ bzpDFz%S"2*SX%#4) <Ϻ"+ATO2հ~*}Wٶa74O%R<k V8a-llF$shDC!I0fA^QaMLFf)1숨 CD43(L0yj;RTs[:3/J/b ޏ1F[Л@ \/F Pb*FEj3Lwji?Ŭ~)XڥfP9?q:W|?5x(ݮmNTlgi3!)FN[๚k6GOڵr03yLJf},aN¥e% C }ߋ ln^Kձ`aNP߿a`j+>ε?ØV8bкp{ nC~()pQƒ-ΘQ2+4gHi"[ٝ囷vt(Cn~D5kŨדb1rm~@RmUH"AJ0#S;Uz;}c5Űz?8h*LI:4 Z$D]Q}q"bdBXܐ<9z+_N{%-YM=GP'FBvHDlaM՘2UKr"P~; vg~ Dt=."}\uT f P,%I` Err^F5sf^E@6xZnH _a/7QCf٦(< <+#3~5N F?![K̴/T)| Ny%B;Fw)%/S3-QÝ~~+WyR,JYotgS5Yz0 b_ *-tt"FE1|{H,ePNR\SzۮpY\ھ-)T$m"8/ .# .y^Zl'"i B`8hX ̙)p{ tO9Xo67V,=e-3o1-wZ)+~V/w3( a4uc[_#=<|SG:"W c_܈uY.܊Wѝ2VLcQd)2ZuU:nB48#fe{ZTha Wz$ y버FL恎m??.3y ݿD߾BS:˺D<6WSyUoD@?nWTxFH(Du丅ܣ{srJMX'9a"TLA'G<~*@+V{ōkG61i-__6"YF>kB$*9ޖݘK'O-WrыRy~$l^=Tn%o e5tiF{v]T%JO5=8)Nς|w',>t kܔˮƏѿ B"…PN=$xE8Πz5]d\g]M&$_3ܴh-gV|AscnƴdHSm( 5)QN"'{2O`s+}ZԙJv<%{>* ggS8|Dcb*?QLӸǢs !nK1{v:u~gcV]2Ղs,OZO>lCSq\A rTD߈Uᢵj]+hb4Ez{\x=:!ζ<bMU/0/&KՒYFK {6GF9ף;BF8?aN2JՎq, Z%HjOpSz6m2c.' =Gٿ2x[-\ӳ'1T)J貟2sa7iHmQiFz!._  hVq'^*w25[{ey|8N"vlҳ <wSqa#3l]?YrCSDLipith̞2,@# {ACR](BjCHz8!.DRCC恶$f=#፿To`ZNNUl@od)f T#lH١V k;I\ʾH2fֈ)&L?YH`D O%4 Zg›Ih]9D+յ O@RV| ^|41 {K;yhjX3rBʧۑ-ע'U V_{=S?ş? 8)iD2.:XT[ HHKT׋0\B +6qS/aEc܉]*f?\ Rwځg퉉6n.UƬ=oeT2oMA/2)[S9\}$'`EaS>`'l՘i2oOKTy{Nika`6[VPzA9B*/?‘nXaˀc ~;lEJ?ԛ4#iOFMf_t @g߈tLtpTv[!<jKR.˚AI9qke;7`9RXMnb (|0|J#4*G ֽ>,x;(I\kmA$ʏN@N_.bC Gn@N='_Iimq~^g{c}U@zT ߎ67B~=%Nc ۧK B:;iBBGgPÀJ}rqvM)b/~?-~^|8(K ݥLMJ^Y}!s|yũ_-1O$<ۇ CJD%42,\+a'3.Ee@h?hu;CI%\ y{ xH/*n ^^U2~"RNQ[A-9uw'AʯDjL6.a,vBH[÷`u*f R8b/>ƈi^*i:>n4p~+W6b*K~u63 )Ȣp/#Nh^pnv[reZM_ ˿a лp{jRg !4ј\ .L)awq'$"I!&t1(ݓgmZBe'3W3p> ?%K˺c[P&(;Q^b4xe*ԷR>)Pc*A ܺ8;"3$3ıWQSFx2@ aS><#YM=k f { ]zkCnἤ)U p ?y~5PU_>k}kBtFI^!t KN!NIJiZK >4+# y $1156ܔVݭм33Ho2a#$;9o !HKLPnb\,aiG&;5cÀ"ZŀA^+ DA J)#!swvr9ʙ[ ZkB s842(ibgež W>;gPqk]k`sƒ`xvJ7,k^^p.cznAAz"<ʚHG1t;?}+Dжcp<[lXrdX庇X xD3աq}jVKV;4u {*qaHʹ".`+a`,mϵM @Y>%sY0aMb{X$ m\sqcp3[i~t]?:)^)nޑT& Q?O͘879KldY+ >]ߍz]I([/_0c0J@:3e<& }A;̫k C|cyi dt- 6v"xpͦ[v}?D/ݶ6wFH3Id@al[E$'h j)'NQj[9΍E~hP-=l)%,yYrK5Ug"˄i*-Ie? SᣌIQZdO U ?[^y5SP)I  iD%6׈nf  Q Wқ1M鍁Q;Zg; lKޒDU\äsO{ JGvD]&` l}'^wbiLGqBwZ˚:nZH5KD[0f˗;皡wvfx.7epAѸ`:բs!Q!³˱ؘkӯrI\o3Oݬdmy= .Jj[Bߙ!6@u rӷb3S"W̒UE|5L,[T#vtRUv/7e auZ,f]1YඃR0R^{=) i\.EIth P03i tժ@bq?7D0ѵܛ$v`^ݥ?.ironr7y4m)b);M 㮛t2r:ZUY%̱#s$+m5T0t^ll /NY{::vd'x ^+2>s iSvĵY;o8eEzi JVB^xf;^lʽEs|H`ڼhqMY32AY4͹oHqnTΤ 4-,bi2u&~ҞX,?nG)߳u /S6L8gߣ#<N.Q3m:1O^؝[7'aĜS<ߖΩ#X/*{m3Ct%?R}G$ǵM$m5JPtVP_d0aK !׾E0αc)VAqS8 \1keҁڿ8P0L.d5Bsp׽Wj#+Y(ͣ"c%&gwվ-"%M${78W])9"xk-TʞWdqbڊY+x 5 6Hަ茊G_ä$ګ&t(AW4xz"rp8I3 CZiz9AĐʪj0B>jMkX'kYC|tJ=a# \B8p*׃jObCkyl&~ 9ݱ e~ȫ6Fedzx쫞_HCgn@x=TAυs4m+ +8^yw9=n"O{pBbmqBy }\35L&|>ozJ3ҥݼ(=Vܤ|f뤧Վs$nDusյ6~ Jx*֑_v,Qy[ߺ[)ߐ1{hF~B~Ƌ$ K$Ӆ9-c׮ֶ+z Wְ3,.tr$сMA4^uo' }e$1wWmC?NhUѷO6='M[| qX]'iQ&.\"DxusL_f.:+ n63i & j%3^1^1j)VowP ^YG#qaaWE)1 ve]o>& )#[BU?I)@ [ac򘑉 6ia7tj(dWd ݏUYLBcWr?㥙^8>UoZ8O i~b %WpzUU~XuI(/ȓMVABmCI!IH`?&:&-EZJp/\b/dY֬7Ǹ㳦2jj{% 6&)\ayU65?n5OXvG|aAfu36/G V?5x+;3r4M/:H _idn 7s&eL^4lj?eX-|Њg^.* %hIš\qߛ l pcӚv0ʬӴ+LN}y Hd\4h2n 1 %h!⫩{>1~N~w18 ڀ'ч?o(oH`|ȷt$(s2h?1%uRAc/AeE!H| YDѐBYܦjLgK bS`~{=z~2EBds %m_n pz^£/wht8yM8<-$Me @je.@x=.\<ȅroY7>ݷR'Rcq4:YNBF>{fƆu?PyV>L+Կ{΅r*Hy臃yy8&`ғk7 * "/ O(6q|~73yEY?3+(ĩ; +ǠElw[t ژ4a^$VeˊDoBbzzqXi[ID ` {L2WSx,m(E>j+D)NN/g6ه&K洓5+GZ&R\d~%UN4@|@i?>iC; /-.NRKܠ(#izĎFrGzalYd H?V*/V?JZc?#i072nIǶ~!i_kpe]3W2 J.[UETNfՏ3;2oz`0,wtչOd/AGutkq& ~;5X Q\zԟ4<:s"^fԧ8 ld*o(?k|6ޣxrCHSDT(o@%z3گFy  f49<[/1x%D+ڳ FYfX͂ï2M$8eB-B&5!̯}-Ɗ/g۬2F,@x8Uq b#X8X}\*O8ܛp>a2cbU^,|;L)z#&)TF C% [w7 dPrpO?/LE \) | A1"vUsF#3O7Wea{z%Cqm%ˬm/AlM/)x"3f٪uI[fH1v*䍞П{UujN?W?kpgRźN]?.7oq(Lގ,el8]6`ߚ8X5[w[ո S5$//˶.O78?I=a 6V8, dZӪbym`zrVABgl:@AEa=cU/!г~وCro.a^ts>bzmbqh ^UdAQaOk0r^oIKUOZ)8G>I{=|R]p@ї>Wu+-YJ91#Xć`T^EMʝaJ [.x^U!?TV4Q)ɐRJ@P˲~o(zB1.xy")XG> {v~=+ArY,Z!:4=Rm9̚ZRYjp̜Y *X/eMYeEL9߻t#Ke 71I_'AN$/C7gOfG?zcSIft@pF.̟h>"i4%dO܎K!U-?:&48|]>uq Ԛffn/?aƋK_jUO&<-y_-P^V'wrG]"\{ 1.k ׁ>\\ P)F0C/_'5|'(}F5sVi($URT؀&V :('kH+q͑C6}[>>=QY HͿX(7>)ď>tf] #ݬP@+Sg˟M_(j/!+`Ȝ`S7z@b%!uoydv :êHAogB\s*?"IfL 1D"3~-)&4GIwI;:1Q ґ2Q7du ]GVs}!fwp$·rƕeϰCŸAՠsNʔ|_nr>adZd˹iu|?6!Zp}|bPs.qS*WI>&0˳_,Iخ m I&tLqLV%'OnI2DA{V琭,DR~0^W5w a@($"&08Ϟ[ flZ))yX_<*+*ij#+y@O<_k!1[]04Gȩs寺mX['.soM݁A(goI]O,hB""JN13xחVXJ %mxnp|{/1կ]EчVO/Kw>VV"^Y CUQ(12z.5+ALj ,ss0>awU{[C@\Z5 ?V>ܝ~ UNFE'7Hŏoɇ_('~&);{&7o kBX3_cZNS3؃[y؏l4!kmcMnA1uޔق CV\ ~CQ͇Ҡ4oGR9f椃KBjr-#N[a_at 2N=K:2|#K}_uM_>JRqN =V^v4ȑGUh.e/[ 6hzyGV/}g̵A@'L9k| a΂pIT_12!~5'5 ۞ &Zz{K'^ɨN_;oc9OuamjVii3FTE9ıT-QWk@sDM~W5>7^:gЦ%Ǘ&1"IQN n6 r,VmI~c4?whØ7 6N8bYydw(r#E`׿=un. ✑ԚW|e!6>TI@wTR0Is\%OoT3/8u۶MJ}oҲUShz-|gQL.kbLA#' 1.rI|ZJyi{sVknJLRes8&/2T^And+?.V6WA o ']*FSqu߿J2Uhs .Tz)LVD \I`K!ɲ-̐[BfM 'C*`Pc҈w?kcGox.hQ3^38+T!j,;$sQK wvJ1llǒ0 L9"Mz t7o44S±ee:_pR%}ݔD6d ,l~8UoF=ӻ$cc qOE8Q܋&>,Nrluc`KU@7M`R/3lnkwݵ^A aY R }k|{F Sy3%y3/oD.EC'j_&;d7w1^pc79g:7"!.W/#xD}K.b9@ CXuNJR8$< h. ͏g d!@#%0#5`S\ fKBUC$V:{elTǁw ࢉkb]hQW2)Frð)q1,%͈o#4>!ަI Rw_hJ;PRϻ{N3wyd)Jr  ,w8NMꆐS\2F9~܉)).?Mi ).9u~LqIOo-ڭp|* iЇ|䱅%N~w-,9?xq2[ϻ8Ћ.bތMsas#/vzW-S2A7MӅeY٩xbO  W:iq`ޙm^_ ML ;ZU8 jœ;e!zS+(:8"7/2Sp|U/(0lȕD u% ^G1en ߕ6ݫIpuV0uz/ ccy J hŇGv_Ɛ`^ɒ^Uxlg+<ڊJ6;@qK#4F ޘ le3<+Bq&ߋq)J@42 N”U`ѱQǪZLYk.}P&acl0W&J$v7\5^,:1 ȤtNDg R%NT"0sŔT]e*1%ˤ__ł{iEܷG(Eı`ȁ\䶺r1ۉ QXsV.!C/FVb];)}Shn2͢V!sr2x/U.&ȫJە'ICsď8Y=  D%*UNv \1LNs&!8Uёp\8O<NЀC"sTR_n$zT=W-C)NxV` 5aLPgg3uaU` 9.rYoC,BWL>LIF}d;ev* c7iܙ0GN]*[} sޤPZT^&f. zA%Pzv履P|~^- IMR񯗰R\4v1 q4(-|o']LHSKOwR{r"<9z!Fl22=9"]6$A 5]}`$OLQcOqjܪVl4D,aqEyAæ-ZM+Ы|ҿ_! oH y-d͟|(ا f$$34o{eGpv׷S+eZ[9g=E1gaS\AcW:`O~"P ~NJϘ #5:|2oLy$ȡQ)~Z$$wX: IKoy(!X݃aZ(#p?I?o]zqTII'>R.c|X"_Ih:H9IJ_s8;jW=M9@4>$ I8x=ݧ=W OJ^e%>^-MHޓ#!AEN7upP28h=sQBUn<}.$ WMX!&|z. Vs%`r?rW{#pĢ_#M#Rlo?0T:S`3_"یFx kR<F(͌VTux9x"s%o.=h )͒Lr'yG-?I2?%TWvBٷhdМ...f3GUW]۱fc9fޙZF!=׌z[sd;n&M[պ2u_<. 3 7G{2_^\pO\tm"L9&y##HR}űrwСf/R6Yށtx}0|x7qn4Tr59\Zi$\tY2#*cnx/W^(p7 ]<)1ʅX.Bt":h.cBF1P4Dm18ENQ.'E6:Uw `Gͤ!fgĒ ӣ12t]+˽hEla6/`l1iv%8n-J2_&X g\椅"Ɵ.sxZCtL!z-CkJ/ 6qw1Ζ][}h^J_yfx'mheƑQڝ8x@[aKbj#<{N(ثV("ˎSi_Ҷt|ɜ f`2 OUoyalnM@h~š~nk;ځ'0Oc^V0cob# ,eָ&~(" 8L=uPE} З#R!ͽw^Ѣ_߬Ϗ9uZ'T7'gڸ0jgAzcٺ6#yP82׫Y5 q1'b&]~$ҷ: YDH.YgʏQ}F ]> 5MP.z^]jہ)lꋈ25hm/Uexۤڝ22tw}&_*Ar#HYe:pMSK˭Dd~OdV_+hF5!49xKvG=CDLB <)3JZGAp.u TBܴapx~BFhe ܀+֪T{Is@ޘ*iȭ/Bsrj hͪˊnKqi#2οU11 O{%֢,#g֢HrHqVx~@u᱊! \~W{Ȍ m)/&c:}G|G 8䭃>2;yw0W2k7Ck4aJғӡ_n ׌D${^GF4`U}wUw Oа1pE|W'EAOsNH68")_$J/Mf8AAK]S R0U)n}v渡!Ȧ, v{-pNu$+krB=`bO@<{D~xu,1> eD`/|̰9f v%ӿ꽾m܄l?G!b&BJHKg(F}%3)NwdT'8A4!W<0)o[sݔ,-n}DıF',2i]~f 'B{5X+|fMh엽6lƓÈ1¿ע4֙k)ր\x`}f#&ww]}Bkw_*9a^sTgz~!P.;T.qj~z9sѢ|wTcTofSjsA?L"=Z dBΩ8Md5zfS 3.ΰ3gsa6EIM>B(7L.y AdηQCrz{[G7vm_t M i#8|<õӈD]\||\WVOr[A5KY;8*g Epp?_GoZ]*H\4^& Oc,̊|cFC"qT}1E,ƃk)-rΟq@)9xXTh:QDBjKglTSY",Ψ;Ĕ_|HF| o 8ziK:°:@@tz_3Sm`4EKMۛ*WllY;G> ޿2x\ <-ڈ}(k=vwo7;y"ŝ!%}kPNEw&MM$퇚&ͪ'QT,w`fƚ. ؖ@o@Y70 Ȯ6[" r6+_*6k`DfQ+'LN3k +X,vj $~8E[vߦAR7RryM0`OzuhF]uͷbqz(1vCTxEy1O TĔ!|/ nM5iyr&Q* GlfO2G'r@h.s:<*U\o)j>]!;i* d{o9Z] B7JEX.gLUZa;fR\b;H9S9]I&$4 `$Ȥ56`7hVkzO'a)hEQ8PVtuz$k: NX `d:RF m`cwLkvtfvu?-8fT9#6Bܣ*Sb~-=Ϊ֠xj}:/1jhKWRl$Gc&fJ[39t wbl xvz>9syne>z/͗\9my v7mǮFBSͿh0s|_P`k4t32_)`GD Rx WLW$n~x;yuADŽ@kڠT[l!NXGw0\'d %j/#|56 FnZc/T:^E" 5bhԈt/2 VYP>듣"mJ(P}T$Rt`,\c\x,Ҷ>*R0NݱY;6y]Un?23ɉ=u?b؋k:P*[T w`&"p/sa73Z,Pp/t~Xg􇲪-׀b(Om2,M+ ?9~ܞN@oWC}@W[+˜eQ\R̺H@#Zbh/L"$ϟR:ېJ5+.&FqPɂ}\Zf*(퀡̸mf#XOMe˵Dz;%~:M2R9z]O dYqSRhYG1wyˢZI=(W:t]Wpq(ȬCsPx--at2 X̟F¸9B1A=皋x0 'ee`S>wۀ/RwDt]ՋyW`TB^oWWeJ<=en턧B|9T? 531 u/eɑS$*i6jn_ a$$$.%.2Od3X/4c} 2q]}v7X&/ k֡~0&Z)X` KA!{pqu /"C5g g(x+:?kC.GF6WfssO2j_bXP=FPTnve݇D}P0le7}_h+,Fo}о ݠ x~wY0<\8PD_*"\ڦOTKQngİko5$zJtl nF2oX[L.=P@ hUiR;:ciVsH%s5˼s,vVaV%o_aI,KQ4)vpSyE_3g-%<@Xh `eS&H)+);AO%^}16[ahv ]?(/\%,.|!9rO44$C1($U)uUNfH_P_KOt !7]UsT.٪IX$&qNoJՊWu}(6Fy0IV;G[-ho޴O4kXyTɽTtͻ!t/yysnfxױOƌR]}U Tfi h1`#*Uaocy RXyZ0v5JS҃kӒ޻.|Z-*9QCj,ҳ.BmtV88 bI+-1/yj.BD7*K}HzU6x)W&@ۚU]? Di[4 o랍67VѵsK˟NSա.&G?~t{'36#Cd/H2":+m 4<V^ErdWhp\mύk߀6.0<;.=qru(D +b)R/'[v WK+,տ/(*6 o1 o 5w͋w N8-)拨]\re;cN\m=ݠp/-3 b)>i`Q)FSޗP*M~U*î9k8(ؘO`9EG7Y fa8e"4u.`]6 ol+S˗i.ދ{=,Y|4.ie 6R~1(|Zk^% jǦq\UP\Vzb!d|(+Y{^[7am_H\6UM.)d}%|oR{ݤ 2iH}\i+yD^nû+[z`LKؖ4|nV ^ͯ'A>7 Ҏ ]VϜ^+>h?,!#89tK]Ӫ+{%tԼ{dC/~-Ԡp:ܱa␟ϔ姭'ߖl"T<%vXA.W~{!d#/= =Kq~yV# @% C*wy {x3ܟzqg5s.GI6f&JTגI h!%ٱL" t<ٔO+q]@7-09OM| thW!?{QZ%'.Tf`RѦᓣ#bn:0 Bhlad7w5>YdSLjr2+_bou|爋[w.Z 2: .>erPف!TAygm5B+r3V#>Geޓ6Slj GO˞˿; yG;mD;CXϑFe2<2J(bznի SNU\nX2' ^CΕ"m?Ǣ/@MNj +}1-\B6`Tp1?^|WiE`Lɡ"Z1R?Db/9|* b_FtrN^3kU3F"1MTKԒ|% t61ի{ɩLݴ?2@3~429@Dv*)eESP-|):U 'm8[fC<9-5׼սxm?m/[5!qg[\awg3Sl # ljz{SEO,QaS`6ĥYᮼB@ G'zMèۑpy):֤meRI;x25Ub6;4-N>ѣ30w*|B׵<? g]&J8YO96>MoZq@p_C}crW+P#H}F)4kyWm|r`^zWkCqi;2a+PRcQq ̉&Z(0aC"`N,. {l_eVu64XɢwVam"!X2#GɘU雿ITlv&$'s_Fȡ6{-tszF]C8nݲy_@9 c^!DzS"0}:֗p %Ceg<8b[yWЉ>k&J R'sD TW`q{1ejRQuBF _MK 6Q2`h>6l63Wݡ,Ufc3Dʻƕ|Eif6 rJ>;fo>s7S{@c9/>AZm#T:# l5c6y/y 27k^ۦ9K!kh`)8Y*is")d~ Y_7ZauX5 {\Nj#lF U~5-`&npE ",a4i'IO?#b&k*zAU83Mc|r<3n0d*cL1]W`ӕmZw[.zZ*#Lc6uB^qt1Zzzxf[.߁;9Yn@}OSbRT2EBcH1E{1]0c ?q8^z՞&g.kp{ OgpkQj]`ÞZ< vT&(!燁TĶץ5m{t>QFMc 6oא:Jv+v:JE;n-͎n|҂.s̔X ۩c#Лx1 _$~?9/sXB:pGV&(kC`. iMǥ~|4ǣtUH7w# r |Q4>59e8n_z1L\$P kÐ:#& tP/,\\/@9zK#-x1[0xihG'Y|z?*}OD a/$)WB+ ;Lm۶zRl"xrYPǯ x.(QB5K7Xaت& eUdD:B HA:9}efS[?.:p-# " &/Dgv73 ϥ)6lQw_CAlC.߰j{rMۉRpN(Q(RwRu8 Fuz̃ʔJr߅HQI*˥<yKeЪDQ[OAٯ"<i\psUhBާEv8@tYGY~uI@\dͭ3S~D?ET}2L٪/rdbkB C2d%{a { X##)uEU~q̨ R/]J$f6$Xh'gvЕQ@wys̱M=d\KA(%1(Χ7Rh1y]R 7û zḊ"h^(b4*s*Vcv.uUsp= 7ۍ^BD[%l Ť46q`nGDQp~)H4#L+&vARyXFZbsն9ZT1CP/4g:+8ÒąGRO(,~qksNεHgiꨨ"vF$LthɌw"A vAb,LF9Z]}I)zG;4UgS7w 'PH zf}Bʦi_l~lD g:^pHEWdI}tf*Oh֡DW]|HLM8'3Hoüre/W%aJRCT-v\eI,;؝#gRP8tg4t)׃Ʉ~O̧ w bEVm{TRSp ŇeЉQ OOSNj\2?d9xn˷ ̍oh!\k! н#UQ@xՁ sڷүg~f)8ҷ~ؤsutЄ[ Zyϸ˗s%vql _H)XC?5H W]?Wb3oJ?2d9&|(Ȗu5.䁊 D"HX}oY$ۍzY%vz5L [{D0 z$NEtX ?률0VQlW&~JN[ I*a:,N6`m= O+q&[c!2`mJ~)H w \E<[l?@#^db6?c`_+B Pbmq6ѡ'5JP)OD&"e殃Bu~1 v so.&x9<+Sg5OHj3nPE+}@s:~ƭ;6O9/RK4J?.)llCsS_G aPUGiG s Dc"X-O[f{:{pG=EUFp'S9qT wJ$/: ]ɫvfҐrxat'B^xH\Pc N3Dle{1\" aj))2| T<ί5C,MEwheAҋހ90=pLEl7(X>% rgr:&Np \Ff_ (wIUOp-+JFk00u:#Jd5B46,י%\5a*:bhWx& Z-|oq\mkz;-`(~Q!5E=9idOΗxqnef6~j{꫈f48TcJg[۴\>LGag]ZdNQ ]HB>ybPEG\>sk;]I5Q4uUr -խ}Ap!?Xez[Zٽd:<j`? HTTTFQ>_Hӄ ӱ _T-bJ$bli$7J ң̿1l{[94D'PZ]#[ ˶(F6 0 Zz~Ubk$rY4B@|xnz[j½d"ɷc40Kz'Ga\ PQs6<]6xz]JIyэZx}7߂8]Q=h2ﭗ f`gͦ'wƱ>knab}%aAlIPfle`c@iӃY9B3D,Q3=J!z]󨹊3ǷHe7)<fUIFCpGq;> Tԩh=!B0((;gˣt+Ag`խrdֱ< =fcl5gRnxIfZibEUFHK__(qBB`DEM([ NnOϦP3,8 G*8*EE8?I'?X?W|2g|[G#+rY.ٽ0 G_ X.xC"-47xM.c2=Ήq Hj9\2y'oŸ)]C h հLƾoSy 2rB. Z99gp ukhY6F] DS }!>˻\;OB>yӤXuHղA͡ط^R$aN&-*,vBiɄ@F0#׆cPo O~d֮g))ꉅd]mܒǬBƅ:Q0(_YFtGN&-HԦt+߻I6x8 RXwΌAoSTkE֊Ɉsr"8AVXĀ1`ԡ{`,i'ȃ?--^ 9ȡ_T$چԒ~^7F|~_q&G2(F1qG)O|<6pcrejWHC3Ts~@R,ۙ^wGf_}vw7%$``f-@U9rn&2b>]@?[0T|l v3X'.U Ea+ {=檠=J[\ &Heqˋ1t#߈1lHR b猟 pI H($aہ z, s.ؗ|kCq!Ïǥ:[ B/{K^ރ~ ̃\`1,5n ̄x d"0!G&q^.$b!-IٰgȝcU3w =gQ3u'omӤZ15}{+ЄǍ+ "ᯩ;H^u*#7jz40.%:ۤ>ɂb~ɂa-&y!"0ͥXl5{B(> =g>JV jR׶PH:pWrMd? \cD%%";EhN{=GQyIw䊈S$\1_ :7ɫ`WC_&:v[ SxûSO@~=vETnq7"x8/{S ~RDSR!\e W@}ujbEvF?{NOӌ>4p]rAmY3 ijƀ)#Ǒ!Zk*^UFG+(Z[|8 tոũh{/*~~(f5pX9L'Nj$.- W#_ҁv!fu1pݠJw^(HEy(lT[8(YGg[ZCuÙ WN))ֈfqvӥ#qq Ӓ,{c.ab]ۉ-?X\]h V`o 7>̈́Gp[{; >+W,*Rf"mO 8P]ȷnh˞zoߢYճtR\$rQ%*N:k qg}8!_e m饜!hS@1sעsWj ^ص:om03FjrB,9oI'K+v#IOJZb (u>gW|L'uM1GK=yGR"]}S rDߍ`%sDqwe2U W7%ਲɟD%Gf@F*3#-R)uQ`#SZ0:hE .dN^ps Ѱ!*{z|64vJP T.KǿQOv ZQֽXy5r]|4 uƱɂQ:dׅ*CIVr3X;0HZ&Sv%R>7,%[Y}P QW#HȣK֥0PJ'9Zgڵj%Ta4oZZxUR!!z{K  %5}x0Yoܕ&DF=*`!bzVheMX6n%0x:41>L6jem6yJ&܋~!ȰЬ}%:sv,Ra1ӓcqsr<"w == SiiHcBe<׉2h9e9]x8̘}*m?\_Kի|  :P]?ѥ W璑n:8_(o! t,ʦU$K֠ o&6@Dh]&W{s)>̎ -7v"}2RD+퉣zF}ԟs0z o9DAG%5.|u{}{IMAK3Z\"{~ YH#~pvUt7j8Ԅ/iȭ|v}s@ xӃ\T$6پxkz7Մ 2V C*ԉS^R/ud/Hu,u_f`8}ڄ";8Pje{^g!}$ߪ3*ܵ,LXMfFVLSB޾H+%1uΎv!Tm3wR^5%/}Iom$]\`vNl? 3ِhf !言6L,8ڳjЏpqF8Z5{ `P&.%̱79nrہ3!A=(I˽@ft0RK;zb_=>̦Sj%d$W I8Xrș4}$ǟ$g}j6>U[cªoDGYqPN4i&+w`kobC:ŝհI=q hJ9 ylFkXCU,fArDVX2PڝiY+M$O"a~_Uuv5x+P/寔C v#XqK2ky!ޣ|KRO͏!zNߙ9҅X z[)\sϱYRr`T bpr$SROE `7 ~z9FdvW$$(fLNya!j!FBG?$#\: [̤%VuR:WT)~*anA>턖tӲ6yMաklN(tL};7 ̉9OPoх@n?t_۷P*.*l=#*i0f>68 Au1[s ET7Цf?/W2ȠA' 1296Ly3~d:!;0{HcP㜃tx#|e.Nu*=K" 638|-27J۶ѕcw$h\@CMЯ_Wxl?ꄿ ,bM"dn M:єd Z/`l:e8ॗn i(QB̴t"_b]ak )c7ZaG*S]\<ۜj;^& d耡z>]OO\jO0ɑǤɑlrwR$Q VO[ !Vחei/$v _IC򲭴ruşepIWWH"t]ٟv}3rpL!2u O+-p*Gqh ֍w|Rx&T -Jz橱} e('=nxb6I;P4tZ>X=I c22e3Afc >K IJ,eg=P܂mY隹ʼn|c"r(? 8k鹫zNCrmHUy0AbK}dgp$s1ȼaVusDgvj}S樊09\Qcxə0Av!MV \iuFϮWak.N$wcWI@a22 z: o8@p -e.TQ?YQki@,6>)$dq)wqYe.YU9 pGS)8%DWG M@zBubHZ&Ի>;N+WA@3Bm2mS#L`vIVc_e_0&]1-,LWqdgo mV‚YgJ&Y\n M. :ΫdUO#^WдWNT>U[)DBd-^ ~}FV#:.M ].#7=boURjsr&Q<=S?D]V%]{W^弐%!vqn,,s-{Bzp(–˞V= &1]m3&DQTtZID/I Jat`PQ/{}^WRWNvƵ٬Qq荩݂\Կl6TVr:Ɨ;6!J'4(FbբσfC#*j !U' :g/')+S^{5'yq e*RJ03P[R{  X0Pl<wc%5 \cهAӑ:/c2 dœϺ !" * K P-KM286*fd |[E~3"a  rF'B=(:_@r[9/[Ģm 31RUÇsQC }I@(d,(L$W]8MŶ-zNiuњB=%ms0g ۷1( 4:"3MqeT1 jxL40|EпMڻru߽O:i`O[dg h)Iecu->DB;nE~ʄOyt:=J_!f䩰<#aVL_Jй\ Ӗ\Nba8Ϸ_3F|=t9)s _'F$z?%ϖTLNzx!QjQ&Gz`Z~)Dj\6B_,ޘ{#)1 KֻJ|*#}Z(^+@ /! B^)lr71c[ol*TZr^K%6<Ǟ}q̵mec֠F{\[_nCp}ȦDu Fsv;Բ00aJ&nBm"͖ ݻGO~- M+lTd^'QDLQ `p]#7mVbrágy#Karo_1"y>X]km,J1qatcuǿw:Jf8IzDHp8r.Ȼi*`0QX^eҗ l(m*.M_1g1hưvl(ddT Kqr7 !chN;u9þk3 %,=)of K̸2:Cﵠ,vqO32Tmߝ0P\a"9}Z9R^_b淸d7"H-ā$qJi"`f_c,/>+-d=u#`&ȕv,dM?4nhaVZR kukk2sH]OJu'3("ahn}]a6c0+\=f+诳H11;8-FZFr *(G S kuDV6WAm =XZy]1 V1뻴+ƀ):K:9j_hܩ=EhL> QT\p9&հPH%@P.$F,xDӉ.LXB3r͞ 4C[wsqucuwb? 0LV~wɂ)ag-J=[#w %ޝp,.A C\D@=WqW$`]ϯz[Fq|>fk =xT^Cj {yYOi^pQ t#@Ύ-, ȣ3E]BAof(v.]`kgaxҽqs#Ԟ,VsI3nƂK"Tx9ZŲE iS78Zfy*(@6)VW-NP~;cO4֛nI SuAǍ=5.6ZLw_}U >6\Hf!ƎDEu#䏊b23c[٢^I,748>Ff$SǡC'n%R̤0h)Ďsj ?WԲF%6!f|{R@8?At#4TXBp(:9=2\݁#I*%|PH׶Vy{JMG/4^MT~՛$&L.|s 7j\\s*`.W^a*ð{.Ro4tgK2%PYuώKL6_>wc Qn}uPr}h^s3qj*].:3F#0^T1^dht%8=D ''++yGNQIUmL<#6y!f*L]h!^W_ۭOHz5$]R-֩^G[?l_X 0PhrV͋wX\v]Q'H̢|69}g4Ț2*j뱄8իBvLG,9NJZk_ٴ 9-UU>Z%ؖR%:}1[ zm@/` W,~*)4ֺe,L+ XWu TO/B kIDL(`  }!Jup^ dnԭV#uCe8=_|f8m$<\s^q=XSFND+Y0^E;`$sSFrZ$V]׽{WVx1+vf' P-'Q6\,]\b0{T>LĔu-]9XCvT1mr_4;UjUݣ1r1|O]ţձS59۶۠K8,+V7O7~drc+a}%yT]QKWG߽]'zظ;v W}mR\T@{P<#kW=(5SӍ*I܆QoAGYdA-i͘M`!66t~xňc͆d\sgbrHMٙ~<AԮ1;m趣id G0ɱɭZQgkbޙٗd `"~VfܭL)N##?32 *w%#"8R|Bgx(x8 #|]Zf;b<)=/S,qw6&67k"U+VTxE"䳔e"K7 @^]@G9F`odCa E/Pn;C/HÚiQ]jzӋ+D¦C;%|; 4N@#5g3^csR~5׍χGkD$L^q7 WkpZХvh3[0uHkҹʛ1v͢7yI ӛԈzCJuD4Z_vǜqp ;1dp\g{fMYutv6"z?((DKw:Sk!6 TR {nxSvNEW0&w++zf&[͹ZԛR0KֽglCU L^e)l: {; '7K:*ৌԅh0q~FpULLZMOK&|(­ V(|Y:b2ⷅ{&|6;?(DvxJ7)pX7B,gǼ-=Z{|ۨx?Ea8hJЖvx^sm>x X)Orׅ gtsE~Vg?o -?E@ϳqzRHTKVp=AM?},D]sj cKux^a6`@cX1Yϑ -$u1OU 4xV&z3%љ9faw/q2_rvڢb^dFZyp}zcrgIMj7P2\zrb7d6+|>{Pu}T! ZMfRU>hfżZ$*[]Qٗ9K (}ޢ] |CLxt:y؊$-r!VP f4Aaiٿ"/cAs5Z=p-yɥdD شьOpzw͢r&Q|*C:w$zwx ^:m3&؜9ʦxuKle8j[$o;klҒ`VY˃= ɏ\ȁ%qϮTfgw^^mZJک$- LYlu &_U9ٚb'%%_ !n.g\R nA-Kê#)mhDm?0pd]r`qn7T!t紣8j^qaX|¢,WGD7Ve\3fE&f=g=}ԓ_-Vo;;:@۷J ǽv'^ ̺ ;vȌ)bq/eRYC?\V-,T:͓zckgmU&xEo`{{yL\L,)bfTԪe m̯+䃾aHw$ 2i_ߵqe4&6.TR< zҊQZ/q\PfSxV3;EL}Qm!(uW}hw:Bp3P ;ѪVt+ `4UHDDH8~$%s-+82}2>D`Kt[tglB-Ё5[7MA@t9DX 9P~=kOAv/6gG!d(Lg-5P.z-b#GF8;VlBʟmȑ?n ~vʵ^΂Y HKOSO.`٠ r ^@n{};2آ3ƴ.A@"kS."$k.'BMT|J"u<أU5v Ayyr^?̜i+ %EBՑuP\Nm T戧Aa'-N[:b0xF700>&*X^>ltXj(!>威Q9`"ta[5#"(Èzg }~8kFb{ӨT>^'.@!kXP  r)}Y{l,7J]$}ƞʍs%o'>_(s/s]QnOLADz2P v?#8O@͔N[ɊzQ]x4h6*$U]/guSLp,4(z:ֱ+"2} HR&KgC#=\PgP4gX& ƱxЖK*=Pbq10{լ!{N\y0zB "6BDaΔ\_S,]qx9iҝL`x.ڋiGp8{~YZf 5i̒s|9<*lvYWswOnv܂lVecg\cPWwqR٩i`Rq]@=e Sq3Q& )nU"fVKKEg:!$$;G7vQnhCgz,WfmwdHN[0+Y=LnYtgY+ņԽtmGlx`vVk%?YuT%ˈalB/m8vd(2ǠI`הQazeʥރீ) nTyhGMNc %޼#tT[yXMYB|{>Ah$Ր@We"q&prku*9$OԚ6hJxo["dh,qW]nŒ&h YcP2~wO?~S v~q>c6 7i Y+ɋf2mjZ?Qrl o54ۭi1 ɏbqEEჭV,?T17I$ 9ɧXɔH- F,8aK{"@vqي9nEp4mquT 3Yϧ`;s$ 4syJxtj6ͿV|2|}3Qݻ7*w=AH] ߾BzOQ 3iɃK̢5Yx;I_r -D*Ş/-J5@'6]I"Z3[>[(PɢMΎ#!M@uv439'[捻 X:PU"VfaZkG/M8L;>ܩ-ϣ猅j,}>Jay~%اd9%Js3l9ۖp%C05_ 5U}fyPzihx) f*oD:qoqV(gU%eEqmȺC"93? ew`T@tbNUj %6]ܑCJՅGI[E-ę?kh؏Ʒ3,v0!Fx#T|*Š-p |puZ{Frpҕ F8"W Z*Ș*CC1FJQS%V t1(Q^XxX7v:qG'l-A:im1P[ !-B`~ b`coe色0#CS'ֵet&h2 R+D"ֲQHk1K3{vZ{FB.=`\Fq?42W``zИ_y-=j[]1!0~k$ !¶scJ4 _~VV&@[7;pZLuG527WO'_@>(,T_d_J{(]4M Vb2߼4Ww 9TSDF%mܼ(VSaBNO{ǜR_*'퐣d.[AuXņ p@O:&ç8߭#욣G)-fjO  i|_#?Y;I`څ:a݂?N=9 t҃+BJm%,575#]F=Lb4L|CFRkEp7RVB_=!6j^b?o+H9If7hAƴ6I>*l˩PnRF b4m5O{ B-)e{|}_9_5w*GgS#HmKᚿkh2OTS ++(K1_]ZqF *WG_qw:5`Ez0((W̾3%$zV= #oL%ڟ1*dmkijoFgmٿ@ s}@ >@JUQ&P"IOD 3 48a >y4Rfhد~$H n˨Kƚo_Cp *5C \y=<idm4sBwT^=5vk)TT<8J&.BYlĦen6Hkvvn+粠LkCVGe&$/cglLxwP3O%DdB ſ0|vihy1\9jM& HI&MŇSv@닭Vu D/qqс (6U < kpfny*:eHNb0<DIacנ"XoѿeE^I-Y Ί;+)ގ?yq˘#>)z"lANlƦfu>֤D?7av$S/ݰ>fEjFY0H~I9\l补ZLYZ 4UΓ:U:La "Aw:{c# 59]oYru_VcER\}brm[D @E?u`g33koLw6H@8高vlX'y3˴sc18Iq*(3|" D'ujã1YePqG2:\Eᠡ@,Ϥ@b5,*f׽ϣGY>pLpZJ:U"صt%NO@O20o.Vyt͔X- f$sAv,7s=~c 7Bbɏ~#!ZI|iyjȷ/Yfg}XcXETSFl"?V|p~va:g]O "-VƺZwc;M9J+FPxwwUd];$URβ?k3-'hI*b7ŗ9g R5Wz%0R5}Ȉh5ݱ@Oxgkҕ%ACj2^+wIH`&ec;4>q3Lv4|'?'O'{*7ґ[x;m5SLpk"-Dܫ? +Z%Țsi[ ӑTɀx%SH}bcR2(uO p֖:QOrNx<ĿcFF^3xuIJI#RXwBmI'Ei% sf]n W\A!}e1S] ZD{ն]n rp*Z._rwE+Wŕh$RD [4P&2 4|0R?yeմcjrP<Οbv ,Q?"t;K혜3+ pRT uZs{`R;+0d86;yd .k6O9$-G57T-pXW'$VYeCVlJzIG!*Qfq8aY3@flbMP,-o8-KF;&<4°~3R3r YD ,\Uuu/'R!d4kV$/gMGݕ`6bAJ8ԣodtY 7ȅXC"?媃s !e]"Q`F_}pV3T ,)fkM|UaxRIޜM r[i/fGU7wփGX߂WB_QďL5SyMkG!Qi0@(BԾP*{-AڨE`ȦOlYw/lj7Cj`YZZE-tƕ8L0-q@?s(NήQ]3{_AOdJ9a+vmNEL#*@vcU%Xm%gMmt7#X8qJy7G e۰+lSf!< Q_ ?vm6TR7 n"!ɘ9 Tس4`"5o욃[H:M-IZ-6ohy?J8.rt#ƚs W10\1v`b)R页 #ՄkeTF' ]bZwa;]`6^:~h_t]h.T3c7vSR$ƪ lخQS##HWp5̺M,wet\/CSi"5+Nm~QN`& 0a_}cS^|cz W/_Ntv d3#z8vɃ]8'"$Eu46(,qWл=+0%km &% >R-:tTzMLG6,G80̭,+\C7O+8E3+"4A,1#5h`NtH?n+Dt~H!X+HX6;3H\ p_éRE|fHgƨ NA:L7/QWRyE}0]g#氻Z첑:BwogfñaAGZ(wR|ȟ楶1H9֖z 6伮:ip $X8Û$ N{ j>q wc̲\l`uƦ/1rTq71gwmNlM">Ca%9Q2/Bh4FIpɁб唥ǭo'QG|9.+G"mٜy)*d,\At7IVz-ּ!jHNg t-H{[J~ewn1,k"#tSCT!w+ D XNι5 SI/xA_wvA:}pǹ|j+p63^ҿͬ iR&ig0),7FMdI4 fZ.Hy1$b2#hUktM {i(c14@-> D1(X|rVޝÔpI|sMίzp3Fx!I{$dj !ߕ {jjqe 8.:"H6~ o\!'nI|) fOVoFP55C[6՚1 1o!1&IǥW+4p D vRg`>@`MT15T+hEU'و86)5S@*NtqDAt 2qfeaspF?gSR8jNKܗgrZ&RiK(X$Җ9V>uoW*d-Da**哱3ҿt2].keҔH]e~XE{2$WA@ODQx!ov)=Ͱmq~Y7V.ZYch}cZRN\8֢# sGHzҎTܸU?bّv2ɎA^Q4a! BND:!E+ʍ8hE=u]O<ީy$VG7'mNS.Kcod>%5R+4H$\yLNe6!{EPh]"qrA+^*#:JD%nG=9{l>f״]tv" ~"Pp , %N~}5i0"[zFtH%csz普X,ia&܂07W:QhKa`ӗ9QgB sbɱj֑ [N՘dǏ;3M<>Y)Esʋ);)`38#AR#LNcRQ[uCg7њ)}I l+q%Lu}F~C*WaNzY4 >NM\a+S)&0}EDHH;=*{,  WgM ΍fw8\O<~݌ki7ton9L0R2KG@@Hg4Gkg0 *p}`3zO6oh.$s3YF|}HII!;JoJ< 44\&V՗L0b,3HY [ chnD46-wAXigCu&@**?pSr'f!mAptb!cuRՎ>B]srqh9 @Tre\CWG~KW K^g|p{C(ۆ+]F56}"+a^,潶XԪ5Ǡrv 뾢%2 Ę!1[5 /6i1hwL+@4K2EM4W6/F](t"O #pQt"$!.` f|?'L!4[eXE;U݉qh/L4F_}ygł0jR8tagw eF`XoӗX|ֶh-H[Q I)L` sQ|$~D1?'2~62wuq<: űjr|[^S DWґÞa>w.MFG 5|sa J B}hZV|@.b,ΙXUZS "U@)ޒCI;KqD,t)+R}t$PTi\\H7S4l(k̶W{]'B-ziJP OxmIMDHuGQIgUO%Գ&jjhٕ Z0ݺLt$`0[v* [{3Y=lwZAےa;jQ.'f=[sB}Q 9!oi0DYp`hv\z[wX'ʵ9U QX 33\U/PT˰b>3(_{ݽ~B[N;,*n?-v&j/W8_1dkq"b;oC*9z?*ܵ蜀Dpf[\Dl{a-p#X.,(xctrIYW"aζNQ'cњ{{{r”rL%teeXm^ 9]w8I++uݩ-Í Y*k'rds|M;om$ƶe/24wQKU)% -Ѵ;n}g14DRg4)"Ԧ|~:wM[-4^'yC~)iW?_TP4EXy Pf⢦.CgEښ i‘%f-ƶ\at.Q?WVlcP֕[ Jvn e=^ ߾'Jguj _&vK29AѲc68Kbz桶+4n -/0 Iޑ] 0KEY)֪tyRAOC$wZ\Wh8PEͅ0|7/>ڠcex@II4\ f~ %ڹ4ԾeMÍwvwIG_Ggځ/|n޹±[H)6 \Lys;Sō?Yl"mчcdVNf -+8O:=A:}/ynT)hp'-5?"Mc*vg]?|`N} y{`i K)x[SR.N,l tզP O[$t{Qd0a\Aa;o,>IUֱjm*!R=| +aI; ziH4 9PXwTX}0o/ d=Q>UCۈ+LkWɨ|p>Ojf<81.Y3D*g@G9U1ݟ@30~4veiU{zϷ!^OXR=. 8k3H Yf$9AJo)dkGĹjo/N)o`uZ*F&[ ;R0-\7rQf|׊gѷnG*j[R"bq%n퉀P0fYwd)Dx,Z857^լ=W zrt b",%ag4gUvv;qE 2A~v0'Kib 43Jd#]AA loJY ]k8ޤ]E-ڰ Z[ RpUۓTJ ,au>jam o9ʹ1PzvAY6U\k'dONY8H~\ϰJwPk qPBnVSIKWЛ1#8r@sI&|=`ZY&խd" 3䀯,,16 QbuN|~!%S,f҂Œ^ b<W"l“GFsԯ!д G""g,=ieKG8ME~H  {*I-f.WڵIT>,ǝi =/Nbз轝@@ -L ٱL*dldQAWwbfş O9NfwNʆIGxP2"lVSݺ0?Wss]"Kvft8W~j*z"MNssa`:ޱN Z TajHLpjΙ<ɈT*M'Mhl#D0uORU F:ptd~ Oͦmݴj͟9~"c·!4Le|2_) >辐˨mYoŘ!Yo a4 o%xT|fd-z&ܡf,l878#M;vnPt=j{,1} ]yp8ɏ8$qp0)hT񈣌s;̇Nssem= ]C|{L1qa_P)|X+*>~^Mc>lLuCceNM^&z2f1 Hb*/VӡM[I"$Tw]TNd gO$|J4'Ye]̔~"u+ڲƼ;f8O!-q ݒ!K!EM̎쭯F`dg / og| 4Uw"֧nS AI/uˏ+[6ڀYEPk h"9hwp5tli.|Ts]>%(sgzc ) zU`iHJ`IKE,wt@F.WID%ɞFwE#Wkf-bKX.y^ɪ=`T%h4U [rCo;=.R?W״.gPx5퇅`(h<6)'v\3mh#<6cKJ쵹^пy҅Rp.(]R:pLvyע-d#(-(81w-lGM-XɰW d'N74J| ZE] JDsWěsʠI:7; ?x^έqRvGSdV6Zh>:BRˇi8 &T_ &a_IGkf^[wEa%qm )O$!1;bcA6 c{o"!鿺wgL> 9|(I*dd?ͻyeNn#DUѾf) 7Sg?||Ï -8"n.un&˱J&dqDH~cV ktQ=YSY+ۤ!HE4!b\CdxQsyveYKUȚ:w @ow!3-Ɛ1+XA8}k$ Hi6wR?l~ 5KsQL^M4 {:εaԨZ8",wnvaW?+ ᩔZz-={R,90KjaPP8an GЮ.jbX '39 a@8*ܕfJ#2psTJv->}ZȔg5)xuUᄆvT#4b4a>t3s$Y# A1l^_Gn|Ú(D.!psY]J#oI?/\SoJGlyHD:p"^V(_޶KhX-˪s|7+_N -u HDa" 0я+*4p+e(abJFS@C\{nǙk=!7 9#&kXeeuGndp߫vlwiI#.bL jHrRͱhىH~̚?BPНFXTMQKc44+4Z泴h5?ɛRNNxvV'pA@-&4`͝;?F.f4g*$m7Z,D&8_|XGħ! Rb0v ļ%bi DͿNSg!ray]M3GolVv fAr<3;9QՂ qT.xbdq&B/!c;(O隌|br3h4 #XU2E*9 uy"4#c,ZQ3H?H_ >df }u锱 D,gb!~ *}vsUS΀]XԎQz֠pi\@]¼c9ggn'#\AA4]ewe6Ϩa3bE[bC8vL+vpwPAE]r(O:πG)X2&1ϛFIdyC QeC Q'ݢ@fa{Zw/Ֆ $븵yye1P)xfYj@Q-ܶ}DI/1bU4mW$ zG=kApQ7}V`}Kp̰V)oZE2^-D >|KASP1߱:lą5!o%uMC,c`N"5]d<)@Dusazhc$p 0&-!zV3-7 z&S倁(u[:;`m! O6UU[KL^:mw81 j\!quj^X`NIT{c_gt먕RzmYK򀙻KFGa}a57rjG\%Vfrͫ椯8ik ˎ#0䱮ґE: vQbɚ(oPW":d8da{dhr=حcsc%+twldgYeq8(;CûQ!5OǟP9h8~7dLZ3=zG;%2ș'o# kx0mĨmL,"H~=`i[X;}D(N<1\Y, U(G19HvcBv7 3*5N(*9 І67v.^ vIAәw6/<-aptf\zMꇙ.B8+A碸HRcZ+m$F@ iՋkДF=cB}~: z+WKcdyD*ڡpmgvm__T d-C_5Q-lcI_ϭ=+ ..KƲE{b{m#TrZ+؈k@ 5 SjA u7#CP nˋmHn Sgf8;1U q;$Uk!EGUd)n3mf8)28 Җ"#\Ժqؙ2W1Mwpɭ$]0'%dd 9cf4Ĭ,':֝)ͧ_-r#TL9Wu0ScuG v^@fC; K_:"6%U$ncˆ|B.Gs;(~dK *SjLvEo;rզM+ C3/yzT .| o~ \5i~QD{H1nh"},FUdVC@q^P}/Bu|&wnSʑj9!|3!‘(cY㘣e/SF^ɺc+DZ~3"ұո[&[2g(EKe Hc 'N\fwzEF2He.NȌAd(t&JE=+,Yt &(4 U6 CiIX̖(9u7}iʸy eWr s^q76 a{ n?غKRXD,BI{qVƸybg "O7)^~#a\V6M}a݋UCNpX#{+CAA/(JbaQξy);7./:5=QI |M1M(ǂ3^=a!gQ@mdFYA[F-eÙP!9uTJY&Z1.^|$]Ңw 'XBWX&/ЀKq)9?'[8c*jmo+,4' oBL7HT1߁am@Sb!?heRp*in Oª~ϗ` qcBٽ%~uOZ۴C.ߣx// ZRXÄ׏[3C=7X7M,6)!}3zSG~ƒX:x1IWA\{Svw|޲?gɾtY N*L+upIbhdP$[.K6nw d9W%[|GdWV2cbJ&p\(|RDw'^fȇw]K.p|f2F+L9#M䟸|%1;κ #]0쒠3,%cੱk>v)yD\C}9b.D?]VWOq+8>IE ޞ-}J=3hepsh\{jUe)=D|0 5 %uZkyμ0RAAArm؜;y>,3|UivօQ:H̤ ?PɿUxߩTe;wj|d$߀t^uW"C ,SD(M124c%uN]m-c-*)isF4`6"%e;էOWW]C_RpS Kj6:}-t]~(`N SdhJ6(BS^j Z%.35y*ɸ|iQ?ʇsQ$, $TOjuԘ&_dRn2Iخ N6HZzԿ4gf.f/ [!HrW\זRxtdբ:M%?s)^Y`$]^Xqx̘ly'b&WR#q\Gמ+WG))ѴҊJ9G0, qfߣ(/쾬&*l +kYzPpc;1#xIuVW[b+|nz* $WA2MG=EP_iª;;} /( ~{3?`dR F*}bHך6rH*º+bj7E" @EٔDhn ڦZ7_L`e+LԛD:SC%rtVQ⒠#nazym (€Oqs%8l8!DxbW @pUNRev٨AW?^Vj( i 2Qܤ}[kmcb\Kl' 3+ˬe3U< w#Y[vE@æoDTp{c.Lf^$6ȝ H3 Qr=BʍnVF?Π|d"R;GR"5g'v$uĖJaq:yqVC8(LdCv^S /oՓ5?-H']uгca`!.֋tSA;5BJ'.R`f"׃!isu֊%!y l7 ĀwI^%\Bl~a";ATäÜWD^m$!T*/p6p i?JPd;M @a ‡04"||So@8n0wgFxlp^yfײSM5xw ssΌJ[[NFSƽ3ITE#R54^)&EDY JѲO̾o-c v_9%~M+]`` Z{!Xd[D2isv h& G@/Q<#?K,{?è8Ü)pv'c[3)A@AsEa,m)k΢Oshq1|b'Dd"2rC32!q_ 4-Rr.H(wAְ{ vkG{crt)FQDb"(gd,`]:$h{8 KSl,> =,"zl+1^`0&hw uMUAz/A?R'W , 8_rj꽲l)g.z"L׺~"kMP4לCQ);y[K(CGT@Bm${d\^kGbͭ|ZA8 z>CH:ر´V[MEZ2,f>պ(Qլ|T?޻nasNX.ܱ48V?>ISs!:avq@z״D5tOv8AEwqKh}/6`tpgA_*qNF˼S; {HͰ߮DsghXO>)!5GK jK1;i#AYd2HamE$Jװ:Zb^[ cZY1"3D55}eY |iN;jh`ʉ7? ;iẊˢ%<JYgݞ/t]>XVeiOKJS Xq"Mgjۀa _u~bzn׏Ŷ"H7ey铺H x8 .73Y:nN/QRxG " %c- .]_ەDۈ>fA|MnTe'l5K4]v)85I=frsA[hDcůZWUjrUcC"6iq@.>\A.p.vYbm>\?[:"et;$32:I;,ֈ6D\- G1h ي/6.K,K׏n~gbJ2}Ldo54UeK &½'} KAL[[Oԛj8 o?Y5-e%9I.pe:kHM";DQ5;͓^D(xwTG .9G{cd< stJXRQL2Q'\cW zuS:9ַ &3Qї ZkF3Ө/Z{/$>{p!PyVBP1sZuU߉A; j~;1)ONzӄ+{t)~~|5#w0T!.oۊ3YWYG_:ry:= x~ {rHܒAUNlT[E-hq"X8]zɽv<΋<}QJrI@;3I'~j3\PqGT`H!e'+q{]0&4ȩ5nr? pq)^^_)?vIޟ#}=;k,ڇ^j+U|8s\]ŮR{id4罉RR>gb͝qh^dNTՎlj2|䅗$:Lݲ6pm-9MƆ45"9yLm^biCPHI]Fdo /| <"8!vsEkH@)K5^g|߱02 2#N#l rD.ĶW|)k*MY,D?)/<% Zx&trKcW|SNc* qz. (!M}OO!S7Dc[bVq&x@ &MU38;!ژ!` a?Vخ`3Geh͢I&$~3Z$"6Nhʪ+NKv̛5aZbnV7s~ѹ<nC9cj]L[&tx̾ ^T @P^XoaJa5qY\ 'Mfȩ؁8AwQY6$d30gzr].;!»]2b^mp_a5 @߲?41>{M <WĚOKMO \B~ǡ$_ecI"7jƨW>6x 3WAC2lD|! @6dx/n]oeaV@t`2YIFy.By++%D%y~ xɖPmIDgj"ou%>u=Dp+ݕUz0}Ofir1]Hn_eZ`Lj9V;^Ё®BamyxYe':T6: 3?{߁2s'2 7HT9HU#Y6%sa?2s̩"Y)ʷww&}^6wYUYk+Ψ?C4*9rE.|yS gn-)\ gY_L3>=Ԕd2h;D^(I==2 P|hQ M-~K‰̿(|W?͹Z ɘ)@!ǚ&2#:hSKuD_?%XRpNڔ|GSr6309# «;"ͼ+e5Z5f x#mҫǩe{I!qԮ T`ug'oH ̟$GJnϛ=j-lھ%D$%N@ DKvj2}@DfKg]>'fЂsߋfWYFBJi] N`G1쬤Cn/ч|vِPl]}sY_ɱB ͇Y׀i-:,F#`_z ց6* ay@hBUH ˣ}sM-$@/MV]hOImsb8(/b?䔶 a@;$f%XXhF\&plc]X4uYbCdw64ݑT#h`B8-g$~\Nʕ NF>h@0$1{eBQx1ɎfsBȂTx gngMsyk3Ub]`}y~Q5!5A/Os]6(zV4Х3MH0a8{knQ=3a!5gGI+DZ.1K9].lz= S"",i9y:y9l>Zo4a;J$宇?xDmU8M,;@z{=f.ίDp]#|(fW/؜?Q?ʭ T_ x'l]ٳD<:ٵ]msk8> Sm|BQu~Rjdq!lttyFβpePXVǒ,àZXHh5\Ζa a"Llwow(eDId%rxjO;Z8nP&Py0X!8/&8*A NocQ?`Q QU)ڡۥ?sdgTkg8%r b6Ud3*,$9V5qB13DwaM Љ6 q?wІ,p&PXަv A~,,5,u@(S:l Cq0qQ7>m^3I&Ik,ylz9JJS{r AI1> g]E2G_u<ӥn6+VN$!#tFM@ J[H*01U t|{Ɗ.-f͞O#o}]&$qipF||;3bqBɮph=1/62EGFpo4^:þ:{tA[,r.mފV9rWDw L$~^U]CU Sn 1MKaX"*% sǐL,وd XZkP vĢD t eL9J\\fA@4+U"-T>3i]5Y],򜼆OU֨l6-^v_ζ[MȰ,o7O!@]Bx d#Ew&a!I^6\l}?rѥ݌:f@4eۤs9*W:LZ +N cbiAXN)gTSt9sÿw,Vpա CrN|= tl&C-lm-- i+궶W­Ec,~h >EKtUapG0$ۼ<7va;0*! "1jkTg{`B~3׉|dʊz3y#G.hfp 'GWs![2W2yzoX!n}| xxY.0/gbc2IoЊD 1P3y ~PM^1|<|Q6iV{7}p1maFAl]'=<>NDh}cEeoə)WƨPb뫽 WĠf3+V!0FWc<^Ҷ]c=4aY4X߱p"9 3'ұLf5 6;l}J)86@dTX9ry`"ޠ*I|[C<6x1?Κʦ etbY҅><ԄW7Ͷh-;0G- HHhq+g3Z=hkXPYuK_oӳILJY"ymvPEY_Uj(%!۷̳?w 0us˛ZnPM/F@}l?Yr%F̣6>;ji~Tέ_TW.0B/jh}mAIw{c"En@<+hT7IԵ) ObU_m}mM~Ѐ5g%0wZ?t{Bw-9hokrXZ0]OO%⃴LTڿWT[8XS.'Ѣxs_׬n9F#3Ik=1WATCpŲ >ڴ#Q.ʥcPn6xzji`W ͟3mt sXAeK!;?y8 pRwHZG)szH4 ƅ{xCKܲ_!dxIݳ|xK'D`q?oʴ֦+V#1qh l0lNQ\c=p1oN[N}2%QE .bj0x{JR|*sbKtݱ?ea@c5LGTڶ7%Pf;٪A4ߓeiv|b:b?Yx5zA%O9 ` Jj7kXdl*erQW#ǧ\˚Zۧ?;D=Àғ\N~8.C𩤚N !>j_LRRr鈓f͌gVMل8Fuhqm ax>-3Xyb)"}lJ5 M ~ A,dV%Z̩5,UXg@PG{+Ty5TStnf5!)2afC=I|5 絗o=K|7. QuOkW7JFhD} :tX^ %|N;Nw$ hmm4t5l +Q6}i(Z<$A-ߨqv N"nt`C$g1?Ou\-6clnX,F7y=\y:BCLq>M^JrwչQLЄ{t>Nx-O2DŽL282R> Oڝ"B'.e5jfX"g`nz*į\zX@h42gĩq tHɦţcAp,lVjb9[o}\~ 'ϰrXRIiND=vor\r>wETb`XP3T55kbfFN}|E@ ) ebYh|/+~m=Lkup:Zb|,vjat'@dP=]F2RD{`<,lk  ~^1pvM48ԯ7&%@iD_64]wնȀ~ߝFox7.O\>F9cLn&+hX4"PV̗z2zW)kٞgXd /7enM-6 K>h܍WX^mAO.k" 7 }8H|c[0w~e^I 'K/_oAMR+{c.10mD@ȃ98TCK۞iLSm'hF@pr$l>Dđdఽ;w)!nbs׽‡t MiR'Ƨw46ҭ@RCwx$+Q؄~m=) ͺAxn*lM`-9]y;g/Lӯmh/a(/Bo8(Տ5)՘b [k۱X~3f$]"tD y7~|JV5aU^TRG9 h4?.[ s&9x݌zo͞iNnЀ6:\p9WF5EmΥXejtLqdbדaaOzU oe6&Q #%ZTR' 0em'i~Z@RKHh֚&)s]%utFg;0#N|H6]KA/$>'Ev f.n־4Dcj~/v+L`mcN0'׊핷P դ8f 6pF Y?6Ҩ ߚTS^lɂg-j\]&< yiy-&rk;[bԄHżo Ht8s( QpB+R ٸ%-J{Lpx)lj~{<PTL@zN0ԤAUT\nXmX*bA6cthyGlQVi`FhsӘ⶧*-aCye2<,̀F'8MG-}Rd䨍td9]PrXّKakݚyL*X=4ݱp6 6G w"^遂AuRhap !e%HVFxf ,`ItK['N#Bh\_:30~4)Cm~{ù&K <}I~{:zz? Rk #=e6kȖw}T+n{ 9}JkUڽ $59 [*,^&Z崈G'(C!]s x7p7~Ba\JVwӛ-o*ͳUR_Ds˳(s Ɵ )᧷*d+ŕI>8uoMT;&##>ެF!TqqDӒzz\Tq/K;Ν k?MKbNW_ɳ-z\T;Xq#ۜ#Ld{jY3Is< zhT&QdwDOU TՌeK 6{x3֡t 狏~6 A =I'M/UT R,?Ex[zA/tHLf T,]8ك'idN!OώTR{#Z0H ?0n 0ܷ|}4q0Iwo) IT CCY?X$O \nB#KE&);>;d-0mUF$8M٣]>YsGT$6( [D";NOc\V71gATVџ9[9d;N, j mg is]5!&yL`cL^:|`&D%0Y)Mh*FaڥjӦ꩔ 9npE6voX%$EEHne40.܀$EUӻQs9%\La}~nO9KZYvnO(&'-ndp>OW_z}2u D/iKxe-K?uP\Æ|-ݶ'\qGܭ8kʢuK1a%.ȬH 6͒y @~[~EVO^^2 I7Pn<1 {׊ߏWSMR <=]ֲҤ?|-Q a l9|ao:޼mfK-2^n9@M4>Vɍލڙ.3̸Di"}ץ",4leN&8n,mC E!1kIۥtb'7\9Sƨu'C%Oyj)AFTK3&K9KG/3w’N4wo|^7r?+ʍtBNuJr@Ѳ!āI@Zb~b;mD ੈ$*Vs+4xL؈^1i%nx`Da,Lo×sj] v]x CD:rA &gHguīh'on #Ii>o `^,qz*(S]ovLW.)3p`W/. -k[ٯlvUsRU3x+O S, m.Z'in3yU(,XoX+ID+ Ӕ94cKLOPIw,ȈȌ3lxcF3]1'-Ed$D7 c2a+aP_5K EMu`KG}pO&6낛1X+?<յ^``s'$=ιj"8hgLIu_ѽyLʼ_[U ZZƅe[2Ųb?GHRwFT_cPg.4'yEp0N%>pQO yM7@R3&d/ꕹߎ W?9vvV'܃C-&8P$2#J^2S/t9)[0"4Dz"Q9Q;n#B0'%(?0^A/bWhH+ 4i DleWL&32Lϗ@:Gĉ &6Mn=ӝ9g+6npsG:%дouT݌% 4(+=ka'*jDžpBK ]`}S%o{g2NKז*EpXAa#*1^i'@tg\˛{-4Nm?~2"?11+#)%֛j6vE{n$}|Nd!}jT 9(aM0𖩛{v)y^'i.6vcdF/7Ğ}/oF$HuE0\M$B -dhC7!H SZ7VACG6N8ߡwPQ *!$_taβN'.3׃8F1p#MZI{bx=$s_#,+Xj s&rK,zkq y񖜲ݣmگ%9~V[= :_!FpMl`:@㽡}S*+O= #Jmqv)0챧l%iQaru cD!U?>'۟U,b'0'UGHuW`2{M I1oB ½§BE|AnR[#B$S/^e!@lE7(O.jvX\`s$zjA q\&1VTάk -<iU-& @ X @KfrRɖ9_SaWZ Z8̐͋'ttzǭLj֙K)e?hP\24d#p]DVCK`yOY &lo߽Uݪn֭e^+ԥG8- &QM{P{Ndj7, )ASSJsG@O>sXUF6,)sv]ڳŜ ;%_*8.U !+TG[! "CfI2K/l"]=Att}=dRQ+ wJ8&e$ yefF:aw vXZ-"sN-k 8ҒXp qS/V0[wFX,''D>׆RӂHk Q;<ʗ]o#8h:V1 5FcljWcv"T6Q\V&# ,r@ }7aq togK2)u^.Na16|V}<( ᡨq-X bo';ڒ{2>]3OQɃG>b' d DqGAz %H^BGa &wnsmie2F򻽿c]Z9w%d<74g,3U)]|u[(?Znq{ h:ɵCTu %'.R3t%bG&f'JX)2@/uSCL_$&ccمqX]O '4@*۞ qLjزsJİUg?o^z8-Ju:[op_M:6-և52p`m|f[M~ X nTcG}4`S+pS1wI->^n ͭ'mLfCHYCϥ.na;+tIp|hO-{v1hdOS%#Yخ/`qLb+V .2j*PFnI=Z+9'8ti.A4KbZ yk5Q&ʣOKDenUX=C77٥tYp(ròLb5&X7"R>1BJZd֋Ѩ^3[E fSd$(Y4iZ8 *?GC"hb₃& _eB;: cը pnȲ K3[a]' v[S &VʒȦhph>B xFHҞM.qu9", $ vYDW@@m+O_ ޠZ~an^g+K]U \[,cs;w"UJByR x=aw` dZ[#r@c6d:( ]">^VImHB,(3YHts!?)Gk6S̀T~Kc<%nzz;&jzjp8G$L3heՔ4d_H`?@,7.q(-4~}}[%@hV]ڇB.&t+/BҗK:5f? yH΃2K K=C6=.9l]ay/ߪPėC?LvWh2[l`x:)k L8vݦ_ajؘL $H q+~jדoENi.|ۑbŬ>brԌT֙Hlz󒇗(@J1Q;ª }[V0:(؛\aނ_0}6!4ݫ_T%ƐC. R-v;B;7_10pԶ;]%6Tz E%]!KT[UFy*lZ=K>yzy?fKl#poYb+v ZW2,W{e_3[8cg$3m6M#_4qJv@}G< .Sҝxx狱+ Sq#L?Rm5ct H 09IWxRR:CYa$_"S/v(+rHףoWQ@sB˙HU [l4rã4jpnKu2CȡXT*a78d!T`!p:S8c1|ް.$ر+jzEtЭav^n {I^ {-#\H([粭#4%l2{̟eYt{wFzz~6N~7^aS> 3اl6jQNFmIwyur ,L8 CHR0ی;5&o䩇݈L;(+Y(w^U@7L b\U_0"԰C56-웄&_ 9 <N U0;,m]NH,1#ڨ:UJ<.Y=\u3?A_7@E̽rK#G/(Rؿ١V@OCI͞'tzAl0:[H?y|b"m~@!4sVս&ZdRUT}b?I1GAFwTQ}=Tgѕ/{|=R Ak9ւN'Rֆ-'Vju!wQxSg<0#jmbc6к"?t yl`Cqe ֵX1 DbGfZ\'̫hذELiȦAtXtfx[Yw >@LeᔲS &>w%q8uMuڞR 0{/x7e}Ƙ`'szQ@;hݤUxbd2 'e$NM)FQ6rik zC ?^¦6vDJ;5M ZP=y9甒x yTSF$ӬsXU_I'3ܭ-a2*&Ǜ]L8?*1Q`o23=n$~5-qCP:f2M0qCku"#ܿ5A f}?P=]|@H,/esa5x;P'NJ̜\9;Ȍ' K>=˄YL]B%>Ϩ8d< +9}9QeV*bh(T{GښijmMΒ HIn}m\p&ɻ9;LjY vL47Ҋ-6=q~r*cE[B<NH1͹.p+Vq Knrb\z hwH2 n8S4fbB)h ֨ƍ5[c., X ͳG )g|}\DOoU5tye4!26?-/S,r@1r`p?mbR@D'"*ةRoQ@nuS>ya&Ư\FC@rnAH#\aS2?ʚmؔu[( ˍt0|%pPw,(; IU"$t+.9I390 dF&]Ie#EeZ'acfi"s l+Emy@u)F4B0?#aŜiރĎunKk)tqa'O겶v W$FT"6y& `ZHJ1v y fDv8S'#Mfܛ~Rf"uv c|"pV΋,uxckJN@1IvѢu:x ) 'G*/]"̡2Ԅ(|y$Y!ޛ߫h?ljK-Q}M|قRLF˞ȹ ۍ P7PrQꧤD5;]5e?uXhezH"F3q6{ь&3 p,~J>+NM]r*qHr օ ʍwc$2%X4qU&{'!Xřwd(G6K YL>t}Y{0YRVZOPj[:rJkAA{TWJjSb<!dBHe*0S_\jGҠe(y"u5-:">[Lr!9G/J5)L]K99~`cQ,qf?6<1&B@- ڣ\ōb!=z ͭ4sξ2L$ GLeɊiM|P.n>]^u&'kLT lQ!:i ^*Lc/,m]Y[Jk@ K9+9Sw}(FaDp"6=R[h8FhJFْ^Sb Xjv;a %]%i @>znKZ)È! @aKfzW_R(^Xt$95|mFL;-xu=tp0U?XC'pTY݈k˳<Ȁ<OiYs_^Tgdų֫-{ t[ϤEnF9^aI~+Ɔ/mX6gw"&*%Sʲx g{aSZS3OIa[F@Xbo~QORx!sy׺l a^qUOwafrC_=,2u[I }"9pAz>P2уr ۸RcԮkŘŤi܁xPϹou Ld*\0F\FD(ci [1u{Ϝ)fVhZ_TYh yQ G5+ ]M޶)' DAL۩. vom@M[`? :X LCsȚ(]<\TPYEjϔb{"V.mCA}'75X>30#*ˬU:q*:/ؖ=нi! qYldžaih愤/HHԍt CR{]=tw`x?Y>jv^teH$%d3~m%3 BBᎆV~,%"l@gkZo ftϽc3JPCz]_,+Yqe 44Lfyd(~֓y ΐf$űՈ@1!v%cpqN 2?-/,tڦ=jai_&4vT΢-:0_ F,47Wd%3 .qW0g09ьKfrxeuvV jn1 RdVٿAiD=ºcI[i,5`U /t1L`(F9Zӑ[@lӓջy^]MGH #ו#*!Oɿ\Ktb)bkYվ@Rf{Ry'A̫=δiEt9`ڙ?C%/d>|r*7O))3$AK2{#%]8I}9G0`xu1E ]JԨ6dDp4/.CN^DRЂFLRb&>rC .|)E?m9qgfvgo*kZ\ R"mj~ԱGz,,L D"z8E uAl@'sv^=wG^}E6h]y 9iz{57-vz~V xЯ gt  OiDq/*؎em(XH6uv;p)ȮŰ^@CpAF5D'wO+z7Ezy ]ao UuGdYnvX"dS#1Odw#ͽ^R޸֝=?TE";(||uu W߃֚ߦh# (ʿBjp!>S:WˌbᆌɳSII?? gX>}cLH>_i;m3(6u%ޝbM>$@n#fb_P\k~0~ނg Fs e.խ*|5Hβ;P9a*l{aB Jƿmh~*Mab5#'N&➆LG9p TMQa'Y D\ (laaa%i< d,Οx}ZL6#;%|Pu h#}+KtE*;` 1 DK(PȎv!:~y.8oNso @įWHAC]PO(! = őDž!`C82LCKG2˅gva-xE]E|ݗpyVE/9ExstI*\}? a%o khѫ"|0JsD@>hSgRWBۺkf;VBBn'/Eտ?^RֶԑAå]l c]թ8 .qvqvRoo0mݏL1bs*z#:ݤrY2=!ف5.q}m$ +iV)w7p Z>^,$SRQon@lezM{QB:b\i1cu$v,/ ]QE2ƿm`JL/d31 C:ʇF B/bK,yß;c9C$|{ (p PM߲ DP.:%RQKݼ*xD6QWv2-T֘6!vj*8P#IHtJboIe,F?ðb O>*^tfNK9}U]'w,>i<'lRm|xUo*2Mنku!\.,wOﮚ֚w:=5~. am|6oahkMwtߺ횞Tѡvu~g72'E|`SǐδsLE7XB77f.@5*LN|RҤwH3/)<VM{~ҔxֽzaT0frـ3[n2^2Д\jƢQ0bv\RD6xzr`|1p ):qx;k?ۥ&%IV]E͈t"7mϕO+z NNA\n~sL]\(2}]1[[] 8s/ pB9;NQ9չ*速nWsfj~R%$HǍP8Ԑ3$Ԡ&z3GD@uꙵb#NK&R̒ϭ$ۓ{Dy!3qBV|_OE-WR^`ˊ!:(6clKƁ.9F]D{3nɦ(T?jzj5 M~yKEAgi`іԩ:t( $%ɏrw): 3NZMEm-Y֞7wd:gy(! PI :BaHO/?$Qj! •?BmV g@_JM Z3O{(itC4nB26}-B:>Sױ ̫T]`!X`pr&v6DR+Љor$+De !&˷EfЬ*8[>r!C,vdFrj'$'M8-3g<#*DMG ũ+ .fu*sMZFT_k?Jw?`:9Λ>G|t(;nDm!ӹ+^ieW 'CZN<а?"UNXUCU ˅9;|vϏevynv=<1G€Ǡ5ZQ™Gd,G?F vo(м Z,`[둨&UZMܾF,`m oVjPMTYݮ A/!MJèTt,  n%Yes̢%a c Bf8tWR"&ύxKӔyyG~~|Ed&<=/URS1ZTx`6qL^,}N,dEzĎ<-5]E,~_kOG8Le#i 1T 'bW Jדmzҟ}c"`NZox{, V^u(l9NX:La\T!oiK,x)a3[R{㶏_G7*Fw&J7C255||"at}k2Q%,[G?UhYNǧ[&qQbVYjoOK2`7H}Bydmݼ0.Akf IK?LOPֆmUNJ..)JH^ȕ/S@U!Csǣ.ʼV'DZ*o#\f[R aCn B`oT>C%Ԅ+Yd`%*5i~6^q}-x,\C: +;$Fvoטa8}㩜\6wU<.mk=5DL+[ E iF2Sqf`Bs +DZ;rR]} 謨mҹ^;|8̻lGֈ@F4h].8ڽ&}ͤ`0&gwQ_rz̎:p8Ѱ,:1w Yl qmSGQ{. Ek٘o@>[?M*hڜI(`-!+&|6vAG\FWs߉v E'fwd[AJOaعr)xXƌRC\@rZwJӜZNVPc׺&/)_0+7-`WD JdE;_I L+n'Gs^CgΠcW#{|/'^6׭x&1 >@TεѾY#ɆhWCJ}d9vAf.6DCR?柆dKÓ숆gwzkL9Rn+ K~t7Z:Rb}Og3tf,L"#!T~(pS![t;al`Fݍ8%YۜHR 9gОu}׈-΅ے|"d39mT{|rˀO*AW;6D4 ?X,"oTHI$i%*f>5UvTcC( ?kCё@0[Bh[c_XEgG WdʢQߴ .T#s)\}G":|vʥTV؊|r*ssGGKuMV竀`-ݑZ2СKAX*4ؔQ:#-6T`s#Ia@YMTT3[B!?k4S t=pO 0o߈rA{&pIf2dONow?Adh&b[;. [/2)lORR'oYpGRݲ-M0( V2v /W"6ۤ7E2a/[=9 ѻR#э;'jlUoS1GzפڽN~ U/r̨8fk?AJ,@kFi?@HiZ6c])5>PAREŹC7b/lYC+TۜKG0]Jb".#C)|IH`þc풠(]6: Aw[wAfCm_9Ζ\$TH6Ca ~Y֕Wr zɶ6pCڽs 1G4MX¶[\ڏ۴Zge`gtٹ^`@S3,b``y()CILOr0>KAfj.Ի|=2V5r<5M3AnNL:Iep+(pi5~e6J 謩. eD g2=',G|/hAuD(#oPݪ)h;\uAj|N٠eǟw3Nf`?,k[ǥm,s*h2q-.؝QςD3$M(? .\ê㶗,Qк(x7_'ɋH$ |8x[_%O:7ˤف mnoG7oŁlfI:(} ҃UtV.)@HThhw贩(-j>.+Z9~^WCtMzgZ(ѥ!`/G:H&2gkzcS?1?6eM2)Getԭw؉#-u% !eMUFbUǙ|olgoIjxfTHN 7XRYIp<)xf҇C*w%K`ɠ) SSr8[F#Xź%w3|rţ//mL\$+}ht3>)<o|F=U@5SH68^CRgd "rOqiTyNj?N:u@bUt+%?dZW}KT%gVYݟ%ўt I}x`~Z*{|9֩(֗ŲJyKPzӃfK'?( ey fKSMRNvD_gź%LO-ޑ9,=YSk#@hrF k{rSGY`Tn0>n_wxU[xGUFW&q#=8'T'7ƒtx luD>- c֋Bp0?K?swwI-Rʾ0 {r9@_I~V_Vb &~Vl7[9^ l`'k)q­ F}ا1`nQMɴ{ro Ŋ8є*9aPKTIo5Ч(N2LVHQT662t /C(- zu#0-4: pD%p{M` `޸XkD?gܱk/_f]w[ˆqƹXa 9}xe:'֌KX:ף*x|i6[ }͖jd׺/.~wwFr| J xt 0]n3~ǬmRK{jپRm]RKnTTL43e#S))2LA92#& |E4sYIJUn|TEz*L\5%?-[D{젅7Tc?2ukAkߑ|kCAX797;RA˪1^z 0#QԂ$瑴Xa՚ڴѲtGl:Yur,’)8b@CADS:H$hKMϨ@^ܧ"O=ˬp)<_CrNqwۘ .~bQclvOd)bQε 0}6鞩VޟɅIzT 橝AoB0)88fEQw~َlҭDl  R %@6y=H{E۠ti $=?_kj ' N+um]%$E1i4+$Z 1m M^LSebGT2\C܎ge;; 28{0-?l)6xMJz׌ wG0 [aqwz/!sV0V'5bV yH3J {07( Y&|LUyZ56Fc=gSr>q~~Gj+e9;#-T0A*zjk@ LrnGʨ#K:XG;*Rv%S" 8DQ% bM X@Nw_.\[. `tUT2fE,ZfS2sbwc 6YSυkjG4C$2x^$8&-b1gdBQeAi#bn͝ҍLߎf&Hwt1顣>ԥ[DU*&J-奠 0:Xb1 y+w=0u$:)ka;݃vB^}Ok61{3^yyϾ*۶a⽷a u8Ef'Oȥ=zTPS. mmbZ n uჿ3kfHΈ 'f |FL|hd K=.R*uYr 5 a'Ry %fFL9 jm̴R9OnmT kn^2iIf3 *r.ie`X?kJ> p:y;Q_W-+ ?R7/~ɯzB^ l. k"׾ gCÞ1:;3Aq_5蜿?5$"q&X_k歹ϖl>y_oQQ]p@6`3xU/.WjǬՙ].fQY2XBMjB I#BӚ2rrW=ݟrqjA鯜Kܨ#)}zTۈ҆OA۲< 4ki4 U]IcxظxXYd:X;ؑp"e-$c&lNa U H^)6j(1!t+UVv4H2i&Tlg"=&V+ ƔI Ƒ~#Vpsdʦףq$;+Xs )TWֆ"`4֬>l^_xS>>ƂB 3N6R[\|ݿe <81_T&CG&(R UM4u vҍi=2w[1au `j!G);ɹ260!45D]B&I>=|,ʓotxHec(' e!E-Τ׫OLՒp2(DJPBSds Q)?*.>Lo V ́&cO ?t θ=70+=ãönpہC*\|k+4)MfĆ9j#,w}7Ѷ M.Յ\,eYF#-}Tӄ%J)yV8BOyôb\6g}~EPg l.>m/96-@ K\$BtdrP]JHL-OpO~/:%xէ?[iB>._rzd}pNsƚdW/Βi'Ql'2M簹{Q~x~Q]̲!>0:w+ji:+nr[D"~6`ziԛSbûE &1]˺  gŌ1P>Zy{6(eT&U]箜g6ܟou5|#.o>86-, O, V?u)5 42oP+n|+g$QO6`,6tZ8]Ui%Way@?>"xO!ƚ7W&A*֘#GV8@ @RFnE]iPa[9ob BtvJxV쩓<ܛ߆ds JrEO6kՁwtvC%(WbS4x|2ͻ7ۺoTߖ>.A,㵞7 _OCSI`̀E7eY0Ƅ¥h>N) Ą~8hcݾIRBs[/Upi clpA $Pn-&Xx0P#()>[`b̨SxNpYz_g\lG k0X܈>g1oT;}gq  &&-*C`g84BgXXJrRh9PGhQ&D;_fvd{!6>]|$Aٻ7*?tY i0}= l$lcDb*$&K?h*)q18WkGO1١ND,]?賩2x7MogM bjfS~.s/HsѡUa2Kn l;'ފƿ,0#7w_[C>`g9Y:lIT}m6ߑ\ג~Zwk9HO"(!,|f$̲X燡kl͹V0w\tMx։Cb#3i`kszx+RrEͧ Tq~m6jH>P!5$yI0U8H}j6LqI=7C v5*ەhm@VOfEPnKVSUΠwk/QJ'xhػz٥dWM`Der=56/bK<@#Jzl !EaW@}R"ȼb7B V#Tp6[׊;/?`_^ ,DAry$A%3/^|D< kQ'hɆB"VqpJH鄾4 I+􊧂UƢ\Sy|yz \COB!q_j0Sʪ%y.6v-'O'lBDRQ|KFc? g;"j̉2%j+(9<= Q>FY=L27RsD{-XHx XOӛ_A>Uq?+|t PV6+vBCphĮ(%4kr0elZ0srX]ޏƞ^=<9̊ nZZo1ϜV4gQ%==t"c/9Ϩ!sOg[UVd<3j~% po[ZlkY]r}{+#hԡ)&E{׻jIv5J;-evָ֏){nEvҘNI`b18P4ۧ& ܾviiLDCe&l֒G6 4(W=!n& N^+.6Q#Y'Xü{`YR.|qFB`˿bv,Oa2O =M,^ E>HNg%|tIrRtU~mJE^.{5d0Y R$js(bXG҉rLCwA5FD6 j@DwUiͨ].!Ҹ/_^4Xc =[: 9?w64;%xx3(^w ¥@q:OZ ߉J=ͥ gزdI405*I0HC 6rV \Hݮ~=\a:k{>fcdڊ;`H `r%faNVoc$ YoUbr: L}|8rUV;~Eףܐ$}Pۺ#x~bq!>0斾r eaB?u& `}Ř$XCեf9Eҁ1Lܬ6,͡^Bk "9Jmih.>O6r+BieDRjX!RFg݄&:;HBf18'|?w/ =+aH+l^еR:,祏k W'u{' pwn3O2op ޚ%,9;$'2Xes$VN?dLQB"׸";Fil+iE@<¥2.Xxwjbӽดط>J9;4*0D*yr/ #ל|I}TR;~.;a#7)^jA ?6L*'.t5u g֜L'c ICn1ÀD%G.24DLr0Ƥ`i'yԭb5yH)8kv=IGy, 7Ag J-LȊI߮ߧfD/v&ܱDR%dy(zN28=KPۅ]T -|sÚ珴E3ekei 9fbl߰k^ _GBp;sĢ SUx8ABO# yNJ7sOO=UNLNϜȥEɎQf& T-kE !J_cFr@*HV[66+i)s@ni=q\r שɵ-{$4l?NwӼϯԧG_nߗׯu_!&Tc5,ۖ+Ȁ"V>$U i "6.iZP\Kx=2HW]gYKu?(FAߧCޗl%Bx4" .uͻC sx0lzT%|[$̖!9!6 RcN n BkGĢ<kkm2*;XkV{p{D,[+ ::cF -mS9 $~3YQib-\M@  Auhen,HSivWG0AchZqDٵS{Xbn/F?#PDZ{hWR+WmaLeXnMѯ|Vw#.zv^:R[T+5) ;iOuu@6||S !Öy.7yG/v,00 0ӖP;"}]_Zꠧg֊IhL*ÆŸEsn)Ґ'-?;H́@J"xi"M?xh@){4 vs=-j}_ /W1ŗzбQ[skͨ;؁RcbO1zr|~'4Ayו%la FxO]!+y29CA/Lsf/Ιw]96,.. \^0V~f9|]o`Oźx&JGIJ¶)Scw-u'AxiА&5ާ;ȿ:+cpz'ݸ9ܭvD 0< Us5v? _s+zbG)8GW=g]Bi]]{;tFh^+w (īpDZ[3H7W3/9.cp=y[5Ͼ57P ]ɭO)1ux ZݳӦ& @<^ S 0vN¼#=~X=V߼ 3 qkq 6^r g6'@VӨDܭr_:%j5J{MiQ'Bnl/i!A_:u8O d?U533. y]יX] X3l7@,yR"zKٙ \,Jmko^٬c-Qp\qndbWzJ+%fL-lq@ii{YM~W ,GD ϙ񓢴 SЖ|tm@RBJ<.N~-w(? U^C؜'s2? fUJL8l:|RÌdT]'OnaPal9 #&5m0p-rtUOA$ŏ6 DM\_6]&LԻجz$ :$ʔXSigrHVc>W^gD<0NNGlSZ'E ;L (ly\ } b=6,#ߒ@oq@d:CϚy%ݟefK߅iQw?Y**FJx.{6k?%SˮOA}KCL :톌y]X2d]pv׵~KtrЪ| ɿMGa$oy~#E9U"ȫ E53wKVI+ԃ^f[ MC1)iwT˾b𾸝%a͹b𢩟Uh>y fS W+}3Gj (PЈ;e4!JR7Ap#z@Use7e618G֒^He1-]Ai}پ iQՌSSkk>@q~er]vC %FrCnz@EqmA^'z&Ud@ "%؞9z;#hM7l0i*i|xN1bc]huFt #ŋǯ{Hu˥u8_([yiDS;"凨P8kd>)ha"'\Eyx SX2BBLi֋V\<>B]ԴyFi̖TuY_=UƦ]'_r Q+@*Cc$7qܾr(vx'LhJYAt4K>gDK^.([?~_z&LEes }dD!aX2ť]a[N{0StYZlұ)l3Y{__-GE T<n'C!gT;e/L#F?.z H׬ 2`,f=6CI,W W}S=Y ct;rںoJpjFBs_S`U&GiX]5l@~cf<UfJPܸje`Satz"p}+GKg&I]TPP$Y:~k(g z|Eʉa?-bXI`|+snRj\^a&ǧ+L / =)-)ݰGG9~IY}% .(#DPpN?6p8}PnsEJX7X2G} VȖbe;dHMCCJC`I 0~qLOMQ)q,X%=:T2#e8!f<\o ^qJ݋#z>tuN[ۼo($IojL@ 1N1{{Lp}bNd3?,Hmj鏝,4 kk:tڻa潼BmH2w$F7ߺn36щ2g+['MޗPQQoF8 KWF* vDy[dOVWk "aV4kծ,<03axj&^[˛_꧳&$=. Rْ{ǎ ,}Q> t+&W'O1GDMc^6v"6&uqI$e%],ocOB&A6:P~N]UP(ELZR_,Xo׉ߠGsc[$' ]2s1w+'L:-F/0Dim+egudj&0;YJ1sfr۹sC%e{Ϛ" MsP ^j.f=\*bjanuD|X[tZwxy~Tؼm<9 wzO!"&*-׏Im"U@>\miyh:9I][>d?${,guaQg)9gN:>LO9 PENhlI#^=l_,L͎i5&T3Qr>a_1 * _,l>N\g󞰏D[nC,k5 Ț$uG6-*tCO Di$'OO8B>aK|4@0HjO} *Sęd= L\yv\NIŞ)ȵMsX(S%Oi yZsv71ݭF]o=sPx]C#7D ?3@kųϢdpW`.BJ휉'aX :i@Dǃ 4rϜ\ V ߏ@y|VŌ<<'X*%?V9ӏOkGgIƻPy]D4XԶUǛ1p&p6Jo+>=:2Ib[8.7zziy|W")M 4e[} IvO` 0Ce?z;~i-[H|ސ_oxΕgciO-bZ!~ VSOvw"tȭ v2yNk%VDs':̱zЏEјc*H6AMNFH4,N<D0 _@ 0uizQH\ v.Db f)5VC-q3 (l4dJg\4HeIHje%ol1`^&^.a&#|¯7S;K@2pˢȫ)ZI_anKZlA=zf9Zz//toK.PD d;{f>S 7n%r|2K^c%[q ETy}9resGE;|H*3 =|f%&3\p;򉸸Wo0+Htظ_e srn TZRv8xhBȍ(rHO$ywJe5B<8]p/4z~vcQ[-}%]/@ϢބV\KPMݣ%1}Y ay-|'W~v0Л:76(d;E#oۉHV 5ީ8ۜ-d1V4 ԽsxXzaXv#Iuc%g*g'"_Y(b[ (a<@L>!g$za,͠6ɳp↣dWa 781i90э2ȷ73h ;v$V1zZu`|O,w\ =ϝ_$S"-kmQBL܎}{iD]-pqkngf/U2L.}~ [wXw8l] !,d`Os*zcRqY ,i)pYDdN85[^Ϛ(ϱGe`m/D:!8&,<nZ'ZεWE-=I-WrtY.$(rovd$"B=GmWR)őf[&ʌz`u^;[r MDbq_ŞBYlSGw4N'_I ڧq;{xgz LSu ƃ4`# QP|? BG>kuuk%]Ye6JYPa×? *>lXUe#4{F\ɣ>& L@n~ٳOK+[n2 0FMBA߽WE cdOzLJ#OFG8}@^,e.# !k+,8UYz}tNl:3k-«ȣiHOw7,ѝ>W3O~%4嵩8Sv^~" bI K,SO]ܴ <xzͯ|٢ *ՏMG DINbʿ= &&3Ͷ+h7 ? PRm 0+Ufp[lq';7뗯l;p+eFF#Z3Ox PТ~vu;){T( ʹpM+uvw  Ue^;LoA@h8*7[[4Ĝ'էE 6n wInoё.+ hi _;_?,K $v)IJ8`}FPE,kEbT!}+CJ$kW'6~tx|^bg7f"Gj:EŨXB)c,V5 )$JDDbϨc2.^Zk)97/NoH//D ـLXLO,j[}|DeQW0ىO˨D;1oܨ=[hLa ‚WԖÞ֓{*`Yݦa2[}q&b.q~0AYfNe`^LPH,S(enO=޼Ċ~D&[5 e)tw$M62 w]HN}?hHJF _%u\wTv Lt9gn$fr,x4KrOrڛBR-:}Gj\ǒ{`y&VYG7#gXDv zmƊ!؉ m;߮\T)!,ڽhB7DѴFY|8kV.XT$'d8X4o2vG+i'Mtָo6WXY)G!| [R%ZeɓeExǼ:hðnmm*Cߍ=fÂ7H6*E` aZa\_1;U{4sxYBЊQ> w`kq9RQ܋E}#*wٙ8ќ3H ڇtbPoL~0W.i#=ƘI/a%nJ?B^mVb |{JŨ G#vv'[8&7{B@hiyzMqn|Y)6ptW_eM2JS2? >/'ddFۨ`Li7*\;qF+6K 03L Mkɕ;bЪ;M1̫z>Z xE8/Բf} )ZQ̀XM#<- :*4Xe~5f)4<8[CǭcZg2xU9~$76-Y%`ӑj_kk98b5` ҆LE"q_T4"c;ЋϬǻ̀!7<]iryQP&L7);J6b"Ϋ?Xqѕ1`=:)pS6́jI7tT|B(=g|)}ٝ-9+'"%\K(&sו'Ewߎo~^OXoW3!'}씒H9y6O4gu%ӧ[M{rJR,NMWhAY'3,p &+h7Sޘ`3L%1d[Uݙ%˻N4XKApaOhF[z?ڦK#I)헨E;3lJ孞 σ ^&Nt ߷µC|"e٧_ſgw([#' QFP3Ș.{fz#&怰_v7t"!0NxcĽ 6sPztzgB ?NhK ~j\dL|F?f]ӔvM$bӧg)*Ë6d6Y0D[*5_j'hn-%<7ߢ]R 18⁸M C⧩9}VgfB#C,o"ہ%e5h Gk⎱^ wr$UwWUd<فtj‘ F>˰A3YPcD*Aa&ڮ:vێiWfH(x=9/V5U_K 8̘EFR"Սij`7ύ9}G2? M#*7kOq] *neзQd~M䩢"YKXPa$YoF<6J-䐛\X}<\w7ë@ilϩ2[-̞-Y]25wdS8c V-4-@*>$~)@70%~jW6%+3Oǽpq?/Y^]E\'UޣJM>Y|3L*&|^?Eh/> ZD" r"]vXM};,]@s[!Ԥ\i,u1r(,ÌV:$?{$'!p&u9 hKuqpA+|l\j0F_87?bWyI|JU$<9(Ԇn+A"ۯ6צܓw8ϾNkWΒn4(2a`6Jg?1+<3G7NU!(7$W$lL NhN2YÈ;x٥lXg@杮p޺Zp@)Gdc.#fMBvm`qKUs*+H/\vD[pC_fXlC$/ek%78؏O`*kʢlNyNDJQ*d3ie/Q )f{ ]qd$׆#mϢ.[XSۧ~3 ׈G!e7ݐi,OU`X;w%HUzYP!.V5dVɬ俌Z:]',3J5+MnL_}&` Չ+nokX]hDZ@Md]vQAIH9$4izܱ}jDU@f5gұao9:|ҲYkB?mLx):u 3;Kk.;s&P堢8$^כ~ߵ2]yEktT j.:U>\%܌[Y[]KX ʒV-Df۴61~-$BC)$zfKxAdDn:6Z+6xg Ԥ\HAMrpQ5ts|ô:2ܼf坟+WhA9?F5ZstTdRZ벳n{?Ⱝ~MrˆgxSZiDf/W]s ߂tɚm}mK, $VʤD(饡=cK͢'>MP њHӋI~YE5R_bw#YIo +C:v  e}{%fZPX:6\&u2JpIĹӾFLj~"FRA6g2_4=h'UQjAgMT&މTb ,֠Tº3>/IYBE0ـl7DZ$$ĕ;%xO)Z{ǏGucŲi=&Y.2@S\@yd/ؕKDr\ySG'Fw3tXfklU-㹼TC3k!pm9MeQޚ`8V^l+'lN`u%+!i$ N`4e6/+RTx`]8o,Mo%0M mltOeuG J.'|`:渰C\K2O)l8ɕ3ANP!u($8ɔ'M5E,7UwJ*!Lo`Ntl4|ۨtRȓV&rJn!A.HvF ۈe=HJ>a pPz}w`p\plGW9-_)SOEotæsSz;9e1ÌSE(3ux܂Ь9N} ZpL&a4Ic"͋2˳/r6V<'':&-X==(TUwY=xtchS2uxW&$̃"Rg+Ҏ- ۧDmtl=Ca{mn 6e^i>dÜaCFWuO*.}%(}I`r"ȿ1cc YN)X$ywU>%aA'Md]/bh7R潩ZXnKÈW=wG)*RNUY?!S~9ӕ 0M Bɸz3&]M N}en8mQdޅ#iG^Ȳh H0c8ЅOQf2? TlźJAz̖k_x(~7uRnFwpoFI:I9'Xx4oVD:c@Ѥx ":R1ǎ!kcT^ Y-$pTȒ,~W7+Mis&bY68hrPtJ3FG"lS G'[?ɨ 6kF[8:`UqN)Ls_7ޤ:j{ ҙyu2fdv>1l;})}ְWUUo$VBf8d]D\H2atJgzU~)LʆBo IK.yj BD2 iKRȻЧQCǔBO:b $] $l/4KrzJCK%S^3UEJS4POLmB<>&ἄm`4sόN%T~xr!mB (q5HALh"O˯J-uu_jݤtn1rМq#µu$wVO(;ʶ.E\' #TZ~N9GmgaX t-!rD/٢Ǒ1*5++Cnck;$<]syQIm_jj%]y a3qN5~n/h'bp&˫P*ATdDmҮ%=WxĀm<а>PP?@qGw X5a^v6,ǓOYGHNڐK()yްJ<usɀAÜO&퐩CQ$𢨒{ա;5E7?bʚٔFzզVȤV ~;)pƛj?bMB@"kİ'XD@]Ǣ&bZꨢa%:X=fi|"CW=;W HnBBIF$;, nKʝP{|M5E|UHj`fpLPR2TAIyuz N1qAnp;DA{ÿ;NFk}S}mb[\>ZiFؓCW}▎ʛ J_] VgPԪEeh#\7GǪ,UQ*7A1S>qyO.U/C*a-L&e7Q=y # H[M2hgk(1[ %!vulIG`l96mjr)J^4#:yخx'ZWMAxHBzDxJʺGY IBX…&eftm)B = }_E$<\֓KԴDcjPS├XkC%Ut4dSqc8;$LD]> 2FS !¶}k ~{rYꁱ J E8/+Y~L]HZy\4i x?{ߞ{ d?%%@H3 :!n;bɚe~B 3~F.\PbH40Cͤڄe @O5%,8W`O`V %qE%d?l0}5ɷB{[9@vz~1V^ oAvtQbvQ0u .P9#P[݁ӊ4YEUNFV+ &j1~~՜Wc'Vkm5OcA~_Q3iwFBgU=YF{bIYls~v *uȓ|e w"T|( [N3N~ϰruR^rH Vi@ob|,r #r+>֢I<(\D-B1f{RAjóC1%z8KAzɪT`'XMJZ8{bْ9hkl*LjXz]N6$8{{>2TK#w F{iN [H! `[{d2D1>y&P8M̓c(O~ϵmPWM]L,]lx}a`vș]ȫPox 1aRF{]oyotJW !Ԡz׎f/U,F!.F#IC J2I32ist/¼@9v(R %ޭ~2^Fל븬a&( fPh),>~g "=_8i=~BnY'>C-$ KOeMVt;7'kïw0<25C*ٸ9!5e['_[**[kНVv'VT֟ŋϒ#ÏL9AMtxwrCCoSfOؒnt}oȭ׬vNYˆ͉xER_mA)|l Z Qo+t;!mK"l L=TSbe9@1K+\8YB Z,~8D}gUSȌ#"f(>[bB~~v t~Hhu*O;B-Ir0`ȷ 2 FLp4%QL:9}b$򠿋C1&;SO&K9lcf10XU$+lBr:-j7-?2u7^ɜBt;z3VIjufQ[FcRWn!~֝>b/2-S@{6: _ܝ|H+f3 bIƝ0%U3$""!$x+D:owqguŽ665;o(ךA_s#p/Ԉ8鋍cf/K 5ɱm$ܢs9M=0bN&|l5 Yǰuo9}`٘.P5%v lkO xw2UK2@sJc"w4WU;L<5jp<zkbqMS<moYi-so Zq\w\1[\)@ dAhn:q[SQّ\AqySk@~idL0"̤a?ڛoEh?t !AY}iq:WBzfyZxV2  Ǟ,|E3yx?UW[dhr8;Qt?IPs C"(Q+*rD%0T+b"Ŏ@Fk=tR̛<3ʎpvd8 w,Q?fA@tNftO^=L6q)CZʆK+!; iS;E0$τQs<~+XEg8NqWI?ݰJuYL…M<2:_/|7Vhgo1`ðe"#=r 5%Jb kx*'1g=jaUeotų^Ąg"a}OOd"R)o,q+@RV08H,4ͳ ӔKO, P/#V>5m&VeBozYA"~=\q㢘orCC ĻAkˊ5yw{*c*Z@0I "gZIYUg{ZQQG ;q6РUH.eWJl5{ 4TjGP'4YpoKSh0Aɤa|( %,6  :=R_pSF-䚪ظ}r|[QĂPZd Bk+e\zXcJ{;yļIMjvnI8ko*YBV0qc-*$r,`+ tEp0NoqL]EӒ@K»qE8ԏ i)jMacE ]K:`<~g镥|4Y4UX3'v[HSŸN+ɺkb4Wl!W)V˚u)]1>/ ? T"취e~~ <=`[)r?X}w{>MmPv`1;O&JwȀ!U]V.5vt#%A#C,E1 !/k5vs_Qa[sTo-ܷ2}/^Kd\IC-@oOԯ,rBCزn3,Dlj=Yז%@M_a'eA6?I=PJ f,g'2 )%NІ9==Vr{Wt3V9F} 4٫ٝ@ss-GWh?u?{PSE+-J?(v}̫ Ƌai03 \kCdh.$}?[xSMl QnU8:At]^s)[|=â̏$G64u!‪[}pmk/l 娚c@u-1ɤiܾHh-ݢvՋ'ܐX誯N@L<{uˍJ˕W`TM=D""mZ̵֨O .uwUÈ4Wһ#O" ܤĒKyTBEEJ_W`x4)I"-L$͖$̌¿zSԐ_!k_ӎJ2✼Auh"5BmȘI)_ohiRAlsx {lGvEQ}JCyg! 4~f7}" A'@aAڃ6I&J)} yHL >bYVH-PiFR}?C#{LQ+"^Fv=Vy%xꃒKwgKt8"FgKĦScaWۜ= v8內^Њ(;V"옴~żWF!{ă}uX7{T#hv P#tab2 PZv_~6ۢ>]H6tP،}} }/夣 al=pABmo7ORQ ~:`G/n=g{1j@AJIp=\mS➪B.jJV,_Y> RfP apIlJV\SR;kϿ]㹽O.bX;kL[];hQ"Bn*6!~ymIIE5p/E:=0t<(Gsqy_VjeHRj#9H!Fˍ_~W4Nh?-4&8fTn'YLq #SAl++~+o=kn|o q^ؿϨlSQ !9oݟQu(W =qv RSnF秉;v~iH6NzG S&rqV9N*qĴV.T*B*yE',ڦgw'i\vM%Y0MBq{e'#}NC9ؽ%y"]A#;h~Bb?ٓ]'Bmĩfǘ[JԲӞ uTvW m TE`(ncc7/{un;ޜ)"qn x'r(//""A aL a,21; $:7=ۈJ}3:e`ObP wmK#-i_h(u~$R:sOu.37>X])A/Fl8$r},wӔqa?iVلta%oWK!"CP  Xw(oC S*,! <\4^F+G<)W>"m\AڀmhFPS:t+^ⓎcC4Lm& (a.nybf+OO7I ܰ^FK#B3wQ4hDw޸1~=yTV8DCa SG܊"o,H'SnU]sb+Y&BvE1 u#}S $Me"MkC4ޒS ]RwЊ3듆&r a{=8DlH%l})(ӻdÀ`wǏ} ض0r |nu/pY^\zb-J2j), N֘ԟpߟ,M5vhwb)L_ܙ]Tʆxk2ԇۑ# J/1P@̀I_AXˇjB>z)JW(&Cπ )aVؾ ɽQJ1d jpE.̎ ͼ]cgR>N{J-[3i2Ăs2T:HBC`c(`aA*s/%x.?h#@w`j䈪&w7is*5z}X=JѪLg\- p7k>;gU -ÎdѴ -{TU%-YMNAo {_V ppB-Oȁ ˃d o|iI0v0sMeEB>҉+)H?{-/>SI`h6ֳjN^_d[b tEG09 [8z*EďIh2)c}D{ٓO۬jL-'Lk-gnbUǦ'Dz㟦~[Uc:9X6z?X>d!@Kl_^.,W8MFy|z8{k h =/VϮ$q|z<ڃzjiݲ^;Z6Pɤ{4[ʊ4aA/2vE SS ꒏V=pi`$[uKcRB5%bDW˗$=")k[?.Sf8@$at+13op3&ՂQdt(2Sp5K68:CzA\Fy?@E #dby )?ZJ-B 5B9[4mne{VzV Af l>;M&V.HS v5KHnŰ[̰|>HU"GoބSΨ_Fֱhԥn@ i6Qif"ӫk{*7g~C  1aK[X 0p 35b[\\}ԳZVP/-EȀ9ݏL(onmV&͸mo^-HͲiURF/Cϴ ~R0#И[嗓jshU .`Ti9tn)&,Ֆ@ЯzA$:"ׯ0D f%b[XVd i-ª:Ko|./Ic JXTCղ :~8JnР"S|vqIL6Rf@b6{F>$Mlk]L\wgW& U]KC?lac)^01kۮ.L̻3wtҳytqxиYܩnCj_!A=z_dz`9K >cfsYqxVD.X Ozfh $eZ%eNqc+gm|ac!|AgY<-Ĉ]~"1$Wh_p$~! Ern$[fqЌ w(S d͘ VC1Y9#uLYC5覚~T"zU6AZWB?[N>WX'>Ɍ}(ku-_]y>1B--E 8 'Rϲ3Ā=6Tݟ)C12İ(#z~#8J-a17tǣFQ'Zݡ}A4^k1$ 6nztp(~Α6N} !NWQ9f>C?(Xؓ!Ò >Jj p!282I+vgr#PcJ囨M7D?&lh83zGH7)5W0cKh[N[)1!vG}n,=O.^ytTf]Tn􋩚jdK%Z¾JpN1{0w m$YĠx`|&0~c1b4ۇ !}R%akc\3[aqslvg֑hJחoI'0 xhx+\.V6ehtCULY@0UR >2y8n|9 /HKPZN<Ϩ+ag̀y2o^tio9Y].F3t^rPc|5Ϊ$leqĂ\ `Rb(pVj{-=ٗPL>-4E)GO9i>N@iQCQ>oWؗг?T)Bbr)o#h+b+>(HWM66l 4҅+5B$L'yc,KCJ>&ޛ{9BuExd.QĠRXiTDE`}&сTi㍶Ђ?Smp!Gױu9&Q*Bόn;=cDeI|h nx}J̬.[*P^)% kO1-Jc c=HW=F^3N%D fAKW vkӞ$Z瓍;Z70po61G6WA\Wed)/W=qGЌ'!lJj.iЮm6iʻbp?{l th9y6AYrm҄ş@-o,CƅU^}9W[ٱ !LLG;{`摰KU_xc1IueVB7);3~240Ȏ|[V1;_֥,rnR*sɒ5j.r ?-S1_1s7Y,6czC}KDPrwjIN;Kěک"(ei4 eVbyd,RmQ!ܕ:֪n XdVϊ ,<0%Nz"#tanP$t0m_Lk8&MVWIPr)V?CVΆ#-ÔY8qjдK8 qOX)0̰QBdcly S`c#lANLjYLd#Uwqc֮cxV7c;{irm$>uTDUޱ^'h4-0Q>;+{0Nbh^ϯ# zdM@|N@xgBk#ue9̿/1tSm48 .GxUg9B^ A/ި*OkHLBgقs8pɦ3*鐿iS~>kv 0+juhxB5Ž/SZIk2^6ꤼyUX1wKc tpeBiSа( 1:z5 q7*S>I ]ɥl/rLi8 dkߗ|ns@Ymǹ9nBa7ceXBԦ7 T .1+r rgI]e$۬W78`zUkafxY"vu1p@"Z u?5 پރ+IfG#f<>|̏K‰6O-zR](; T31Ȋc]|6$ "Tݥ}0$*Z F~0]i@ʈ⵰U.)5"dT a(onIBᖸCFf|\Ab}ίy)u7VEN={ GFZL_07z1:qV9襅G6"Dր Ǿ%qp240r!R$O:Nܩ-W0S! ?\V9ɂoɡ[bLҳ{ǘ,62"-CAQmv0T|t4PF6RbzV_PҧRU.BfA60svZi"gF UHƚpH*4*VF;[1(Ġ*Z.# f>/Ev H5пן\! `dt4*N0<Ъ1 _ '&NB+_㣟!}wjߤDa9=nqs=ݤȝ?ЂZtUnׇ.YN3<ҰПhCi_B`rcKaZᬶj@,f:3N-ۂmC$}ȼ. >(pCYU nANC-@O0*Si]+L 8ҋFM/ҀˎiF{{?PO\xL_gwh(Lޜp(wI5E7EO&U&gDqgO!@5_j!sR~ru~VW<؍45[,rƤ Q)n6~eHA3@F2'3Ij7 nu6-K*of>5Bg% [*.}Fe[2]ñ 7 JiRb-\ݖSȫwBM*Ǹ][шGDC ƺc~ؑ! s҃MwfJv\5$YEG{0j:PV)zLppjG_r-KCon&颸!"0oDZҳ.f8tՑ ̿۲'W[4J('BFLSV.yQUu[b{GfĮ,J-ȴܻdC4[?" D{tYger^̠VP ETpF{?-d^d$Dv^]1i>96ރտ9{>I ~=72u,,x(-܂E`drc)7~u8lx57,Qrue.XZR/L+NI'Y뼇9l{W [7  lP;k+06si#3j5b]۵B|WnbL] U]Mܡ5Dӓ-as26C؊v'ߗGFJ:GHR*dK=?[uJpp>>#N/;(}k"ӽ7B$Tsl?Ω9_Ѷc(\UyIk/ZfnT)`<;~ *Qvi<5x)Npm ?Okjm1x)BeL\Fup]hqg̙SBFXSeSN> sOђ[#0';LH8"G艅HtW; 3l` /4b:y Z"X5jT;а2G!$a=7YME eAcʑYV2&zϛhX7jNd XA˝5>:lIq*iG%kh[ׯ %lDngBUs 5_eTٰl) b:LԮ}5,)yxWfBGHYג7/cno+*q$!"lݞB7o{%z Rhŏ:nӠ2.Bil H9tl(($CR ‘mh^ɔaDmpLi"3iMjC1M16KY!oQW|fmgH#jOF,xq ;LNZߵ,,I-ehLkrWP! pꕟPr=eUX+ƺ"đ8\Ah7# 5 i XA{׺ }@9$Veʵ EI9Ż| D0& gnB`Ro+MmZ}GT!eYAPd[D e6O?pMH%{+ڠ)W{Cnj3HA0 Q-~)'niþ#qh  zܷ60;C93uM'PxϜN˟5bFjlmoHf3OM}ڊ9:}1`r2.\_@ ;?Vr%^zh+޳oG /Ƴ]œG\LP4,Ye`~cjrTt7L9HeS@QգucJeؙxV5HMq];U;4~442P ]qvFˮQw(W鴂4ƊKǝe e'qWUKϼȯưfbB|0%J/C_;#]=L&1-6D$,?󬸀Q>s }xm8.]Nwqxt6rBi Cщ2Knd()TbBn7xC\wh&<(z:F=9d-`7mF]*T9y~A#qfQ|wqX$:+M.6}p {b\ZS&ҦC9+8+]? 2ӉW勭GY30> tyq$BhX38xK,H@iS%VŶIbBaݻ>DWeLݠ7H7o W;PU(ic'SmjujE12PcM$?𦲥Ruu?;c"rio$(g_|qRSPBk2ǒq~B>4qst1߹n&:i0 ! $tHjW6aڈq Pdt k^%<3_mN K})E,z7z DJyF>abj+F6@e6IgU9O ']c;u?t\j8K{c6Җ&o>n.w$)jKEėA?yLt]MT61/=5{QP_p BX=&d8Lulw*ۧz 茩8v$ўS0aW!esP5/*/È >yL`xuݥ/JWdT" .A򭌎A&Xȍ -* _J\UuU+2ykNg9=/IoRAaỮ.W o Da` ڧ~s ^351=׺3+O [wbzd^Hhzr^aec4nqK)l,aD}i&HV/r ھr=A|3Y27в!$#.=WXjszL]$z̎PHN)hT]IuOU3&\ʝ9U-q7b]&2ΕH8#7AB e)=< qWc.$rIG/bAR,t"JєA$t1>4>6.4/q.+Rh"wOy=g 9fu77_b68|xe._)|ecOa>j@U*Hūc[njt|&vP+0L.{-u V GF|]@A_³CD&q' ͼ$GP0Q 65Ob. ԗn-5yBhsu8m,jw`=`j^:llUUb;d^]@3* 7bM;^%+vti1vvh<Y u8aї6 JQa9!R<}ϳ' H>ں,8b d"Or*ժP& iɞ!²N͹:ց^`7Fd 6k h 0unALWfsؕ7h z{TeVn<֎$9%[u%E?sgHQgP[ elЊ}'83kwۦv[0JJ2BN3\jKNr:%g$+ m5tό٪3zDZG vbLLyMIU ٧JuBr4aMrtDFc>BujՔBbQ׌, dFc?mSt_tߗ<4؋LYLk|\ ξU%CW^V;P^xYȂ]`XZ%Cb2V}׍ kBD'޻zTXjqp'͔1.շvo`WzO;dPCAJ< 4и pgŸI(gۄ@']E^p̉3sQHߥz %PJZpHq\9Zs o ¹ ѭmMѵ4ْ#Fz׮Yelsڟ2= iQ?EqtLNdF`WPQm Q,{gK#f (kLSNC \!we%*"N|T") b}!g|Y\R~יh,3w)Z_!nNZa;!ظ58+1S E2L:1ߜU.=~|vKYCG%NA]W &t]bʼn|zSQ2Y%j>=[-dF'e7Vb8J x6V\ЂC8NK7Ga?;|M /_-{J߃ntP]Q-kݦ*tn-Lϡ tLdUtj8ҴhÛ"r؂A8,7Nך;7_s||Ǽ߹ۓ_Ϭ+!.'u^GBybbv$c /^8&mFm|Jz%'M*.1'%pjS2ݥ7(cy8u6c~lˈ#KSC} XZtcq|wJn2 rWiN;+@շpy.6AԭM0zţQ q 2% U7TBa_N~+0Kk41u(L_.m7#aɍ5ָ%2q-Vㅀ`` ppL$VuT.?͵4/F`aDSs7dѥ@`Lو 6 (#(.X>FT"8Ž:zƉj1]C:Y\qaLHiV٥HUQ k 7nlbIy>nxBTb =Y J146fe׃$NE^5@c%MqIS' ˉw(> ]g"G.B[y_(F"bUK[&qr8ZCA9V6ڛ_$iw="5҃r&ܞpi"` [Wʗyr}7tk9[a[hw:[ o$Cnh?Qh *&SRQ}"<=87LEAhUY;8L\7ʕn!tSz0Z~ƫ>v׿]`N7-b 9a(?!IYjWªCzeGk08xlrB[gҵ"vs{ m\BYbu/J#Mvu XlS; u~Ll(ZbƢ9Ԍl4_y7h?3jlA 78jn_PtUWhKuy, "MC.mnkK̮6ezl=މ39} +_~A>;| aނkys X{dZ*~jz ˹G[ҳp TBT)tRx| j-뙵uvbp(/ NOdXﮝ!l1V͉(ɮ H Z?Ps~a qR|Xa4f\dNFOȤЋW!"@E@ -d4P ˯$V<)Պ{}gsN)EMPgu>xpHtݑ:gmRjCsK`Zu@nh<<&@G X oOvY4)t) _T6KhxޖX8dRJd77TxgF"rgj\Gؙ ; ZnpV2,bĜ φu8FA w=EPh1&Nhߏ=üFZZw y[lաWxz~d?sm9^jHq!U5e KyiKV2vaAk~Co:\օw OVÿ]h{Z^c²K.N,JJGy 6hClz:GŅjX uH O7;43d!Azl1\XuK $=]Ph~>gre]H1Y43Ȭ:nn;TxJBEPKpȻ)ځ hD.4P3o:1ay䤓$ CHZZy(Dς3Mnv=M{8kǙNHeژn4/,~$2Szwn!OЏil5@62gxA[k4=֏. K\s!oA %5s4XɐqaoDsq8;sAWAv#ABwqa0H!q)y9bI]'n_GmUļ 84Gp˄;Xv߮ה9{s͏Ph1'W:xDoUc,#y3h+.WY,Ѐp^3O jTFa82"]*X ĝ 28" gf\vGʬ#=uE~&Xm*SeP>ۮTJz8v|㠍10`9lV3.p[==+dؿGqsϺ#i f73bpVhP7p_Uk^fȋyu_?MVzFl ^CPk,/g:޺+j+9Vr"Pꁹ}W1҆!:0#d+}-oC3}^3VD{){ro4q=6/DZfܦ>QO^)Dy"=o 7 @]T3ᚙTiAPaBOg[Wmǖ *"ÃZ+W<N| גW|KݺN5 =xYB'oG*9Pi V-|=N0 UJ~gs=i \ٚ*Drk9 $=9>1|DT}~Mڨe]y/SCV\H~w#4EV9ͣ:[~.:qhiZ,ٞ&Kmq [93{jv@̲=޲Dg'rw1B ƒlNv>6V1K@=Zgiwd⳵yyg||8 ֫|\ ZVN_ۅTCPNLetEǏS3ٶ)NlTѩ{ܛ/fgOAoi${wf$*rZTSVT[ I)G T|`J0}hQ>;pkW#~2j*#PVS}5$=R'.qGF$ eGMB}/~3T+aӽB0t"wW4¡xV(EWf(X>a{#sT]V BTfgZ@)&[cSh:ߴ.1)7.S 6Z&koՓw>%p#Bj|6GQewā2 @/IR8$ zBUVe1JF l<(+t>Ћ lM>ѳ"zlsTb[沨lsM53VļM Io!92 F[KsTr^=߀7/? #y\dcA"Z Tj,L3 w½o˷m'R Ur)lcH*`1zY-qie?/ R V^r}I}Y.7*3Wե"w3wVGI|Jyɞ>'8+rk%]ĶG{+|R0qҵ($ie%ʞc$ }FԢ8GKS^}&TX|g)Wbl_H( `Hz~L(Po jNL +};Gsq:Ey!!:{kCBx{A~"ͨ0i32&n\\AI7q`ɍDځDN^gLi%P"j0iq0Hxקe'y$=V?{؝LN33 AMf["# xpI~j򷪃D $g/*AyN?8j! Ezv'ͪ܊W0wtOTF:XU͙&HMTi}ƢfyOo+!^gʒּFV7$fud `BO3i®q!&¢-afM;!*-E(D ְX۞띠rvН7$jy(l|y  qi)ixXbYsFHh9Af$EHEE"4 W!V%IEaO<4&uMtx E|!U )3 chq0\@Z+Zv{_8} w6Pg7i1Nu_$Py=Ҏw_̄R/8YK-r%]&2;sN$<+T +Yw`n5j1iȁ)J OZ)4.tGdNcxaWZY`E,-\,jwT( Ek&BV{;|L[t~Lj9$/BШ"gЁ\yV[9=st.9} :.{F>Zao[6Np$L P6'1i` ]V%'K,PY&nȁ,(UKYQ,, +4C#0 WQC-4ٸi6S8[(QWCxXq1E5+D 3v%ʛ-o6O3w(5mޏ[wfP&ILo+N*(E!(UXGeH?~XxL/OM5'ź 9ÔRNjHK>lއdų<~bTN"W_rZT?w:gwZX2/99b!uEKDQ J³Z~1Z [xBFv Qni9 ]F:^ed 9;ۧsD(yIM0\P$KEkFbvT @ Cr90DZ/ȊwEr=4J;k& Ѽu ]jv׀*;`un&̈p@/gȏx"쨦{w.9r ~-۬I=0Q7÷s ɰPZ""bOyoU ?1._Ǥ0U+:ؗfg=frgn-K0;8@^PGuC% :Rܑmf4@ 3PenKQ]9m@, ώ R~qxI0j ń~:7Ԣeږ fؓUHhAgO& qdĻ EhbW&7תGۋ&ßH=χ-Xڳַnչl3-B뜢ZO/b'}`_hKo2!{m!p] 8̱=vj,92y߯Ms]U {LfLK"w BK=C}H<=_g&$}~o>dӭs wgo/=`\^2\ƒ?(Z0%OϷfj3- hxĥ Ӡ|JH,)::gS X뭁[W+ %'vuO1bٕf{H&m,iqcOsyQ5GƼ6&ZGh*4i陴+wԻ1{AbV;PŅkC8[fE"[e\(ãi*ie2Qk [=o;'1L .c؟?Pu3ņ⺌}H;i|4͡>cWzui仏WV˪hv@sIyҴҤ<ؑxW-HJM $ ^T&8CvQhPYP=R0#u)Tk\]:N@|96k.I{>my%v䥌Sܻ1~`ilS|mfԧiz(uI:]}ol}z >\u,w(|C2[Fۻ@%Zx/Jd`wYÓ^z5]=92@6/((؋Bb&<"t?Gǣ?n<WF241!O%°xh9 ]*. S/GRNwa_/)Jp`純T/UFj U}N6 gzj,4t3kt8ɏ\2cݼL!u=p5 gCemY.]js_3;Lmqѵ߃`̯c%y i  Q'bLFОޗ{j)9WF<~h*|T΅2tW1P_l@f2a DuNW*6o^FXڨhp qvBy zB\#ɑ8 /\v')d%k@ }ߧVN7?(\f8*$Fj{ʺ'; T=q0uߚ4_F0qÌˏ$5`8x\!Az|:aL_)]E 5N#Xgċ?k@.46ЅFf<:k rP(ã-waz` %33IQFۥo&$dCB!\i}tF>!6.FϤV:C\_ȋ: PjXcwM`̕`Brx QΈO@X=#^Ŏ9‰E̓QS[h(?vrɒrW%Ĭ䴪Br`m)"9:OM{lhl?-)ak%*}#XFfpP&ERDQ;OᰰIg$$5=0lQXBC#Q)z'AJexPnٙ3itaAu( )ݴ۱` ]o%kNؐTYPd3-_;t~œ%+ԧE*0rA Z*!=|rԭgy`Bڊ[QE^gۈsTI OiENjJ@Vn:K?sBs,*ƾ0 Y576垃 4VbGp`J5wyn3󄸗ǢϒGr͸aYF5b774f0{tS`w01+eY`u@_k~$վSΕxWLa&ZfoKZY "+xf6dτ !=T%|}R!+4\)d]Ա7̑C*Sv+4?()"WgjD&^Qlr Cqo[aS>ɓa[PZLpV&>飑Y+z%RA1LZPD I|L$y 6\(,R/4zhiŧ_'ZTp𣌜/qHR05!]A9ys, OzN_٪<>نAvPW4(mt̚bΟ1\V2?P0ף>QRO ݑmb  L AM9ZBq mЖ!ZGQ Pr+KnP.L6-oibTqFZx ǵD?"X,+< JHk,6Dxcpo+%5X|kgajr@+*DWkf?ҽDs+)gQ|E-Si>Y"mʶōh` j7\6ʵ֐_~,vy>^  jώ҃Rb;λM*OTsK{r\#VDQs9iDl,J tNBetdӹ¨8AY{yK>9mdYBu]EW, @' q $wcdDD-O?$ōtg]ʅŀK9{1aeeje:_Y}+2X~MIY1yc8Y78 6ȯ{L_}>&;']@h}eX t<:W.~\jTf՘SLר5,*Zvʔ<-ꞷϊHϸN5!QXK%!$1/R7&lj^jQwXY$,0/NW ]|;[MQX`+2J )RS V͞k!Wv Fk9\DԪ}JvPC bfE~ ] ~8zh)@U<*Y!3fPBAP.=u([,5#+s "Dn5u4ND 1F-#M>q!gulisTg.e݁mӁ;Lnsُ?#!;{|/| ނT2ow&ط0|Yޝ@Qr퉤u`%hI&W8@4F%m2@ 7S@pt+0of P{7{7/3<+0Q$JoJMGJ&?ۚ^/LB>Z{d{6(/jyˢ/Qln-T8Mj}[\oذd;T2jN&9z'޵Kz,NNv -," 0 ҝ~D(w=Eݢ&$jBn9j3 *tZS4{ծC*\4䳱 >WmF|K#1-1&@.ޠĆQPbġϸ?n,WB$Ft80EvN"JtFwE24F]2%vtz\yeuyaluP_zh!۳2xh6s<9+f{o]; >g("tBU;,K2z;dEpk3۷ŽDì_22/PHf [ЦaA%%o3JS3vF-X mt8t5ϗ ƁU夳} /GSro h%n):}|:9\+:ipL/7ZExf̆9ģR l^ZQcBҖAՌ[xϏpd؜B'OgYzV[p@>F|^"*@5hı )G`"L+k N[ oqq*MIW ϼO/oX錩>H 0JLVV feZUwCheccnZikuu>(wjc, fh0ji}KUkĜW'M@l;}a5Boݍ|M/f$NiIGApl98I=PXlZÂg3IYcTKaB?2 <18WW^oAx#qQwT'Oz"$l9VDz`X"~Fdm/v5U@ b[T>Y8b](xN 2x>GÌ g=FN?:!>VG'\"W}W`:/=kUB!:S͉GFSaV k:M` a/$ UEElc 1hu`] xy3+xl;8LOG1=>q]Ӻ)P(%&cf} ԓ(hGqRK..^ ]f֚LqHrh:ʊ6gQUk;H@s%FPF/=F ]d64,ٌYM8ֲ^϶h|VRgd#BME!rᲔʶrfJÐi*lNc<7)g5u }~dH"k7O3ܖܚ#⌘h>8p Q79w&F"5 s[F<ߡ;&1 2(nO"*|<:yȉBjH&z=ܰq.l21,MՈ47 *FLP!{w\qR;0i< $BQ+P҅4!\* '7M@P%!¹DN6naǀIiDEsaMqsCNա:0jC-\>\hYrS* } TzDIڞQ @2PG`M&#^EUx|mV>Of)/. u[ScT>MKV1$2el-D$TZ9==.I䑷3jqtTUr*UmƽGk?.(äl>wUƛF.ΐ *C>'0h(@6P AFLKOgכЅ l$vυ2ӭ[3d#N1p?&3wgxጄ8Kijj6 5?r[">Zk&3?R({hJ82 #{qeO|$VM:od.xT&3rv@;:RRW洛_:ϳ>1}[|ch{4X_w2`t#gU+DB`v4Η'0)&ceq#4[if HPmmu֙J՚bPX#]&ʩ1l}I@4K6Wpw`X Mӎy{eʊFCZYjC*w.p"ۀc>݂F(|ȠC;Ϟmpɏ~.Re{ tzS{%Vqh8%|5^4ԝ;*]b$5۞X9O, k{qӇPݪsGa߬;Ro+lH9̌sFȏ6Ml=VdB\=2Qj3@1싮Q6ݞxK/~J6 4wIRM@&@yE sBfvrthVAndҿ2̅x{aq =zd/$/57(Hr`{ ]My(Iwb~h>;Yr-?ػFqq X&I^Kg:rW}Lw3 'pGÀiL[xLmVn燁dg~췓c⏍jXo&Q[)2`fR /jƸd-DG8V_gA65d!)M"%d̂{tJ.r*mŵb0U[n&{Ǯl{nF( ? ~:V}^F@_0M~e9 pwY8[{yl*Ie|W\VE0aocF)Iu>SIfFdK$#kt 7)(՗as8 ހz]ZA̅N yb#FE?u „۶'ٯhHK  Yuz/_(\Z1$%@X6"Fm՝3.Kv~Z1/FմN#` ɆQ }f?m!{a|'aO BCکL$M;V|V :D\5{ja+&b6n UX= W*d ]R(#a5\U =aIrSؽ#*g@E H̶t\'c0`f`9u| K.VÞ].S/2)fh6=DހtehSBCl{_}31Kɿ!Uh׀u#xj5= Ɉm~3LP:syڪ'4JE;"T yl[KDz9}ͤ\٣\#"coMH̤͆5_oQ+Bp;A* {jh\Yj AJ 2|4 q8V[m^T"pɝj!,Nx#}2W?Y_DdZ‘ҝ^UC o3$K%K +@ǯb2\`R3H ;1d FCC= txZl2u:IZ4Үwr]gQ_ԁC] T~evv$"Y$% 3RQ;")nEwihI1[%8Ƭ#nt3cm2|/ߏ Nz eX2mjy7(D)m)fLrO-un-ko{L;=U^' Y)r\I՚uu'wg1b/q; S]O,EƐS;%F-37NOA&frO)wh)3-7g?x{`N~w" '\ t_t98Dwc]tl&?<#9{h(噓pj9Xے]d'[аwRQ ] x ;y'b;<7u`^FPoa1y0 ӿO|' { x豣P {%@j"p/h.m.".'jt ?(tDE*)OLA.,]02Rh\<rd1Ҟݸ]>0/Ę4 ' .Ғ$Wyh,@[ApJDfvK 3XJ-㫽;Ұi8QeZ#2YR:cFpLIlC"5$MLe5?GzkObVt 5@ P~K7V2uyDdl+- 7O2h%:+~˭',JVUYtb⅛UP(BwyBO(fZl Fg%7(㯠1ؖ6BȬf ʥ<R`:|3 v2UbsvR{n-}L0h0*8%X 5T;Rd+=d=ZLtjHHKޫU?hr}yRcDR.O5(q!N{#UI ŠMJ\k9Ԭnt 68!]n6SEJA ? \eKԽI9VpT_*N SM!Eȣn#9*|὏O8C|jtCS14LBL}!p/ע<=B CCfHFNVU8|tєsW"uŤay]qz /극q\$R_ @ޛVf墎 &R H~" <;=Q:6S^śui<?Y}侮V|S0L!P@ ,$6e8( W(N;t"I-Hq2̂2ٚ\Cr!"03[q1=хCMZ1Jzx q0K7KؕH}ƀGhrhN.@po%SI I"/v*WKg{i01^D/VJѮ41):!2°m .dbq1t ej:6Y'hU9g!TS1d8eKBa8N!XGD ,#0'jv9YdEIg_7( ~%WahtքC@a8f@\%eS:*Է^8^mofO{= #O=ș+'͟b8L(1r{`Cd8RL )Sb`E)hb{G`,sGE Y!xJLrBGu!c5$gh|G5+lLt*z0-I*On?'-y})ݮ (xzQp'xcGˣR|5h_@[96[veuSG"ȪT]#N. gz`7W#as=G;SW]ه䘑CM hm{kJlHmI0Tl#>N$+;۟jB]&XD3JEӞtoY©)5^xsi@ƻul0 OyH}1+"$ T^v{?;`hcY|R߄y$WS(Տg?/Bۛ5Y+ȼ C#$,)ɿ[.횥J@(cmTO2& oxӀvMH߭(u+_ga 7 {Bk:6]>d3'7bk 2ffL6Z6m鲒ŔBbUdͣCMd vŲ =̚J`Џ^AtRwALTtȬ_X7@jP5FV)lfRkk P^մOo\ǡP{Hd&7r1)l'2>LV0*@k754R@'Xr+5ǐ' H`x]z*3.0ӌ*uҔC?ZH:0.ϋX䩙d{W <L\Ϋ +aN5z:L=YPV5tG.^UB rG@DWxLL]׏,(lQF,8wtF\E$%1F^ t Z*a|Ky-]čvrwDă "n9d* F_­jn(;PMeUD1v#-EeܧAcYz`HaXGhj>ĠuG0;-K$?Q'BaZ,g܁5Pq$ hiֈ4y*Htq@fT˔4hag[Q[#{=X^^Nծt`hSj T:3:+I 6p{0R41S){]=Äcm8"IuS(W/mUkIhFh ä)пz{"LX%ށ֍^'R21V\P@_ aeIR_suN1sj@D& JuPHBen,rpڮ׍[ח7(5)+N dc0 ( R"iymmkZi!MZdPB$I}E\}zCay44J5|@'15%rE'%,d/w#b@X2̤T[׎މ*?DzlWl4BOFvc9C[L4_.bڟE_3|yת@r'3(i/=Zl]-f_<-qQ*}cd1q -nxniC=Q9\2O%Bb#1{a^Ȁj5'.P !oK0MB>Yү^93* ,.dՎ6<@^>~#e C;= iiiQ <Lˀ,\^]pyfvi;sɑR@R5T:|E4q(2ai\O꺋/쎝)iD2-*FH"ܘ{G:Rfj- ڀzJ&@-dk1P:X6 ^F+'̱jOYtՇerL/8efvG~ :f@L&[IBƧG4ʊqci[iҒ҈O~ya*Wb+VJr#,y?cReÕ{%";;BQ#՞k(F!ɍt[nˇ QŞ[oZ5( vl="DƞJb(sd< a ùmN%7:k I|mIVzWȺbF+9y&u 7l\^΀x+ҥ1bXJWsfpi.Y7Ha斸yнOCUhw^J -Nj#BEY2Xλ\#Sn+m6f>A&W;D֎vK,@u8-bV'~p_t}Ëg/XT Q ,g Aas.tJfr񲕡ށ_8t :^Cp6ј=|}g^Q |_.h\So5t?JK#v5xDs6F_3ɯ8fC,+=*,]|-ިӢ%h08/9 ?=уKT ||olumѥC RrU`1&b0嶃8 @-|4FM&L+FL)ح8s2q04klO1rVRqc\+-(ʗӀ4?R)Q=m@ϥS1+@F GTHDˉ;3Oz4Xu$Cxөq#($Mkk#]s9+Kݣ, c"i*bZafF.vKҸ ۾]'lQL l`$ս-K:ydvCC>| x}b™nK!TpɅ9N뫘[ǭ#eM.ǝ9bls܄g(낋]tRCIKhy.9\N_TF lTF猸y z}lAR>lK|)3aSmeRL`ZrgַH_Rs-Bɢý>q2+zN ^y5Nj!:$CD} S@Swq) 1,勺v GZNXir!+mЎe(׵R$QT8E'{\R$x'|W3H>ƦӁ&ByZ3Cw&n9;S(]U A'k=0_:; :QgqY53ǖá*ƸEʷEO~GV1 hpW$y =ei00*xuiDWLFa\$;jry6z^dƎ٨آQsٯ_g:<[㘯*N]\q4A%R^mzDg7-@Pַ^Ix I.ZΡpk)7{Hu!gy'vZC 'SUi}|~%;IC?ӤOr)5\mFeזMH!2E]jp/6 զz5V|姜g*C|җᇑ˳R$rn]贷0PErKQBdj|k}V2 en0'"SnqJ #T‚O.L9^f{do<䜂M¾u()Yv7XDyNQf$k,ot;EhZ"NaⅩDY:pǖg"+ZMӾԵ`r`P.ɻd6~]j:圢q3Y<^)\}B{#x~e,:44)o ݰ-XN.6=+]WZSLx兠𝗲lL|vj6\fn`^J[(\ v1ٕ^xhP8X(A sT@H =sJ?(%#Y@طB>G7ŹDhD/QJ5H+O:[<{whhi݄ r:. cҀEa\E:)_$dca&ɚ0X ?Կ*ۧ>m)2 藳'@-FfouniD FUFp3^ssDUY=$'ui?'RGjt9LTW[D=;NpU呛QJ#]U]m DM|kErH '+Rn_*Yb(EE E> VIbT^o !0Tr`%? "(:t,flAWّn):D1ZL9X$cی[g7v%7q9dozxeMHތ±a] "w y8qp'1 Dl9ވ*\9qP턘 #:I99~DO}a)yVƌotfI$H1!Ƣco=7B~6WV=3V&7JU(wRᦈ=\pYB^z5,?*AM7~c].BE_9[ϖG:MtcH מ B9Y.hH$jsˬ?ѧ^+CN٬#A0ZA# K\'$K?ޮ<`Y!C&XCPVҍT13ej:>.Pj\̐ uyv@|A;_HEX] : BE9DuXd%[%|4b*s^gr!●Aܢ^Ný5qlZrCáܚhlaCc_yZn0FWt$/2`B0ҰD [;&,81% ˚3]FNJdK.>ͳ Oa{֩Q'Ԩa &`&@p6`s`eVwLKVCHc@̇8bKϤa'pRBM1bg,opCZ*dl@S<BF\}r+R-[8=7u\?YJ& g#{b1YDU6|=.CV˦]hH7Ύyimk9pGuN!uQse͡br۠ju/#k _8Фn7N9dL6}sB/Ծ?a&Yd)ftE{ O/WbCbyH:!} "ʈjGe)InDi^\kQnD5 O\C4x@x4ѧMKn`Y[NG@;{zg)*A@XzuECPYEK )wPP3zpoN߷6հ$/.)Cd||bcگH;QaGiK~ZTU2<OBA*}O١O o]?_Λa?lBC0ޅ Ό e6bIڜv9Pl1ďԔ~ќQ,6CaL"YswR]ccWZRFHc̴{IOGr@{Aqþf!#̩ ', %f#w_upHdw-$#a{~OCS[/u{FԶen Deh˽w9MسjRu6x2]},TYfXh,FгNKOn22sEN*)}ILwqn_dΨ{*Q:&ƙN ʀ0o`)։*BPEEiI[z}SRk H[pzg12\ Hi 㭦Σto\{\GD ]%^on2jRd!n|n&,`̩~|7!a@3F<J3@,WȻ%7Q$z\P,߿2{܁=N6Lzm0ucVP\D}kWnVA- ZD/+@R-HMG̔ YN1Jj%z&ϴ ߤEKzz?[sp,R5ٺ_S ).H^*KyA>2}V'|MvuI7?K7iZ ߌ7bmY,6Wp )`K>%GZ<*oD kLf~oTbq5;Q孇Y}Fq2Dp԰v2$Kfz=;iƉ8 Ǖz: LJ4—H )@:U<*vIZ٭eMChNx:- ]=TD#}hse 2Vm/4GdKz yE H_FzRpz)-L1D;jC0ݦi2xT/_ôDU Kfm)ت^iaoX %m>-`9 K·֒a9&VXS܊ h~$p;$uߋu3=ؽ%VR0,Wu\zTVG,G2,PG!a Ll (c{r׎;m)P_E]Ib3a7twW\YMN[DyW.}RȮa4tS駒:y+K$XFG/^ ®s|B ή63]a.35 *F^{^ ֽlUj3ca1P)Bs1\ :~_@6>ɺ ?G!qD$s3砇#,\tj44a!G@q}Y;kNEs lr$g&蠄)S2fH~qfx}|Pn8iVZN7mt~ 貮M#K5 k`IkD_?9$_ gb)/_*|GI.}ҐMx_^^C=W1?wJbeY<$#W2`>UCw^-|j[?ƾiV6aK+*>d/Qd+ F1YQ WAK<:NuM Mm!ގ߱J\+JBw+㯞|_YE$f<@zUrlؔ* ,vOmό}<д:Tu!\+Cڗq9!|uI>${X7ԓD؁I "1{>:*BYM۰!,d:䃚@m/g uOuk υf0DI=@~\w}LhP,SCp Zn[ݿ4%?::]#8(dF NǻȏjrF Q!sUQ)>ASΣFNͷ$q^d2{mZT}1蠆E3[~rݒaD41N}ᵚ&*7">gP-TgqYNzΥ\O>>qq ~8$]X},5ܹ9A2.+@f?u"> =6kdb/hJDCʘg!ŋԱbݓ=Kh{W+VC EBzJ4$d;g&*2@r;UU6vQŋ|,?/2W',?IkMj|ij@"h :{xp$WEpFÿI֭~R$ 0ܖL!ZtF2t?A>FQvХ]%d#z1Ne3S;Si"m&nTu>0h(qT$Ru\3 SjҟāEK< ΰ6Ow࠭6,H) SS*p]༠BJa!t$cXYit(y527TYYE~<ƟDP0yv9VdtqMJ7|lm&Z:{cmH{`ƤJBUIB֖avwfpFdbaII桃-gm{iR:ŀݓa6SU $iz(bknrBǞrGW0SoJd0n77z ;mĂIWWf#D%Kʍ̀ ʀ"Dmsسg~(8~nS5Dr`+P7R16>j!/mLJO -TdICz?/3N宠^[~&nnF kQ4ۢ ^^fب-<Լf55cJ}_z'6U")d­K +zU9ғq+P!~oHlR36]` U}ZX %<[ɫu4 LɊLcX&UQ"MgǞ$È~ħ߽.FCZ{P="#(ē^aHx ⟮1˛n)!q ~ҪR9V")^<.q-u}0SeߪG`m?E..#dB{ F\M>rҪrV)dSکStg~JLIcGg雪<5 FhD Q[|4%c'h40ύc_퉼*t-ȠX'~^=&ӫjՓyz24gb^j<Xe[ٔ;%kG;E{3Y1231CBbIݐQ({',gɃqwl[ Q CG( I቞dSdUJ \g9daM8 ?-는؋DQ+yIa$ 8GVЂo($ $0L@ԏENQ=ْvsZBkٙ2 # y=hY=n@O~{Rn"un%S On y MUM^yU17eXm5wz2iEЮnZlEa<+r%~ܙ3"7B.UTpåc~oᠢ #DhPq)`[Z/4(FL6ޜ^r蕿}z`cGE!'CWC+#Z[ X$b9ՅmU\=EX5J$lcz3hyUw&WakZvos27oEyp_r}BQODU͆^{)0cxof+$*zFөDNC,lU:9?ڏ+_Ju!w7CVO*ށpvTN`{6@Y]Aq#&HmL=qմ ruI%b݋Mg?al_ حKR}]-;$`eWiCZzzJG,2yBntY9hW>FDߨP;7P=}"!G5zeLXP[vǯݗ{j=!%avx:DrSoIwDE*ޫJ KPn :kEfSl0Bv~'/YpcƗbEc)`+9k;d|I)VwR=[ÆJvJ#Gzols96f> C[/jhRiI :R;]n%lp(UFvaIQ7"J}lyvPB@M- g^#F,tjP-psYfQӦdk(ݙ<(u.Ag"m3wz^=o4PуH uL4b!oV2opp;Qfq劗WQ k#?i7} 7Sh Ye#߲6}Nuj)Ijw f=k6RrC =1PN>U(*Ln,23kMfFԨgg& .2 "웓kB%LO%N$M*__bX $‰CĥQ`^btm= ~*hXjrpIPRe;aW÷84j}"flB\l`T/x C8#Zm6 g>VlU.rB,UkD+l[@qց7,"+]Kk? f ʿI؋tWlAޞ(-Ɏay{nFQyQ%آ6wh*up@[]GzK-B}q ;ut3ToԻgOAZݫZ\ٿ˟YQēKh"YbMXk*jacJZ׋O֤\_[C~S{u$0)l(LF="\EHޅ71KˈD12K7.,]}>%AQܬ0xAԾ5d5ӷmH~ĸ| vp_--t&5E?'y/ ) ToZ k @vh!%7fZ!Ґy>u.Zy5ס[_ȧ= Oߨ2cs$no?۠X?gfV'ub ]04~os-ahjමƌ %?GN _!{x޻Q7[q\SQ4xIhj6j߅|:|}5]mZGRSEmIJy+y{DN9)M\| dcHV|,dTUK nG8ڴoez2Reg]uup5l15duճ 짷fs7(d>Lz%\8}۩t47윩l*ёS _9w=I? e6M{Dg^F4"n6@TU֩iaEtI-7 ɲ8<7D_Qη#5Q\r~͎ބ vZ2j`Xv~g/}Yc=0Z!ߔz Hɭ/_Lӎ;,XMBf1,U%%a~ H*1u(C/vţ\z!h"rO:4~; azqumP}jjTS$]`]ٛ%WR 9{fN\v"x`,KO \'&VXLNEciwšVX'ȂEGlؚC!A;0kQ`^WDcerh[p {Oҁ&zF/(fV_tO[Xr[SNvC'/f}x1awʅi|:1QD)p5?m4wt=PO~0 )8=p_$k{)}kZ BGzjE oljgX#NzyjxF s$?MNHcѭy$0F$sSz&̾VoUo0lxIؾڐ{d\$'xoR>I-'шgo" ;|!|8z]S!G5ELx>jN1PWingiMpfKдP3? 4rB 1uW54r+U:WS! 2BUd3\"^>L [xq$ LwME:¢N{IAmeUDYa6B9X4\T}`equ7mC~fXѢ2@ǹ4Z8 oPoIz5Ss/>s~BnBy 1eƮ-3y`c~@ ( j7SHV8 y!j0­Q9s< bٹ+|%@c]ChKff 5ᔋnC> e7>_Jɋd}zzX_""T^/*"oMY/̅.)őGi"8D\|Lfx fLJW& r=Pa{7f<%~:0 ,pcfgDՇU? bJrjZOY  ̦vnw$-?I#Ca:rK<8W&ñ^L/uw%y`= ̦F y:YSz__ކᬱC}+<;vPp#HU~b6m1?Iz GL]侵Gu*qHg\WS9F8r vl]><[oLȥv=0d &4#[|FLK T=3ͧ G< #te%XeL+]V T`xH~};͓@I^̻01:$̰2QG[У^TJQT?tBV3+q a.z3eg, D_~+-]üvɩJnmݜqNϔ&F("(%S W{3pE\}oãC+2U $u 1x6^=O^<}4o^%T})gwYJ-yy|,蠈ݪ"gL0׶< DxR* Z7tmRL]]8#JaE7d #3d#qHd.˘ %VPΙ ͳ$j`6ݍ}csF@d9eR:J`N!GVVNEҡ[)ڜ켃[=Nh-H<-/iv.i)Rtqib=5K$b[,kf_Ӎ' iԉYHr ma&2Ev@N(gqc^xh+xhdED$Y*YA1*?U}2/Ҭ^ \y@sC;DT^>Gd<" z>\H`:p br|E@F]`KL*hTɖZ]݃zG'@1DL  7WR{G~=b/,GMf ; n8a\OvuWll'ԲY$g{@tj:pwŝ֒|4gH7@ G[f.L NT`^I@Yj3YEvo7D~ϡ)W%-Ɍm~OM~*~͐:d-(MdծoMV$M/z̙"}[;@ *.u{];*59f0[\qBnޒwPQ*ނ'AVzG+m:zbG߮CSYHNhPߖ ˾2)Nj?i3pk ._\awn`yt #{pa2|7 OU7܅a2%iJ܏b(?eE<|e nMz{Ҧh |\-GF/vN?Rtj3GgfHW┘$7'ir|}H#7 66;Y-qF;}n7-Ęu)ZއgO*pYf]A)A\n{:5w Z]O>#lVWłzwXD,GAQ>N~%fL*dJA cu˺#DJSA&~A># ȳ c AYQ KJenwM+F{*{֯5^1kR#jۭˇoNw5ZYN<:s{]'tz& @4ѺQH[Q,R<KlZq=:nna'G beB57DdC, xۂM@9]36q{sp3=NA Vf%2Dc}^\q$3X&?^:GA<01pD٘IӶRqj X!\3h(^l<wB`vݞ^0g< b8~"[yǴVasԉ;,M# 0_kIpgwjXS g~4|DP@Տ٭8p:q42ĴpZlZMR-+u<'GDߐ!;oz3ݒDrw=n jrs^Kdw`T׹,jk,|/GHt6/[󥎛'.hx' ̏ qGUo]ǟ\1ϖwj,vy/^C ɠ*Wb< 7kD0=Ɇ?򨗵CO~-3 b}_L x#yVE; %t/RUZ=9P n=:m;9(psi-hCUo괬5ezI>B=4kH|!褆Pw 8NY3u'흍JX ~#މbN\U08dv/)\-sYf aP`afMh@vD\:,˩wponk nόaK$O6G_\3 eG"KRƈF"74: * Z'f=)&Ji3X<}? Q}p)h5&v6y`-)tT\4p#Y0btߥnLk.Nl9i7jz Uf<B-sѦIɌ/=:Oefĕ3Wg)$փ]*8;^1ix*{5\˹ r^UcwZ:HL;ߤr?-'c$\~M9&e?#?*$G63Pu$wE9 )2H^L3sRrPL*2vPَм:CɆjCJlK&+Jc S @dvycnzogytO^՚?_CuUYYf4 %PNKlX :x6?ﱙ:ȋ[UQG=q ^fJKnPtz`X35FUG93FIX`p#;u5m D3޾<^>m?4 g 5a3c D3ùQ;74VZVʵ}բA{ޠڢzo^ÿ|sxWa<̀l]߄J{cЋye9\OI//m]X>Zi"XHپ48DފSR+E?HQJ[}Ȥ ,r[wf=;"[0+`*4 ;3!JBىԩԝў pߥi!ynq+&:Eo0=9P?6-[n z"l$@0~7g^Br3? 9mo -3Sᔙ%5fi݃W| 'O (9xEd֖D_>y J9[(Pa[~gGuY1wRrYs:1Vրrq7f^gZ /XٹcˀoZ BkP94n TPs6[ k{J:dь۾ʾbw}YU2MBօHJֱB3&O"}DdwJw;If2wYG)NvE\|}U5M(D=3()ݧ?\}^F487!xʛROe|Wi {ZPdpg`MelB Z`UγXգPg\:fr/\7 0#s5B9& O`m"j[^81(̙N1-j0^]m#M>TrIX {.iri v# e s JX֧\(i> n~Kb`T燅 47 @I\NuI"QZyiFZ9 7{ 0җ@cQ5oބ%!`\@mH`qI ? F b7q}RCI~mT9PQ"m-]t_E\+setU8i0lQ|uǚc,en+K<FԺEL@8Oo{5(9m&lVc!ݖs,/4Ḣ)ܔlS9qK 8YKZxj5AG!vQ'8uD˷K_V ^~T~TL $6Z9KoBG6Z_iE8~V!!HT;&`g|M ՈE/vHƟSAmedzx,U.쳄=ز}L~q~?=$+zWa)ޞ0ZX'TE[]nxLMGe, gMQCMvD$SLKF8`biW ӚGqլ^6r9󁋻q%U߅p}zJkVNlT+5zĨ?w,W_U'-Y5k"*ЬQv~]D%'~ ZQPl 4&Oy4qf\:8IɩU}v#!opڢ8O_Zn6Oa{E98s=.&5XF  tM}kZ25 V{Y~U䀷E `/C߇ø˥(\bJmi}Z_ ~H+h&ꢀw'w>T]U&7ޟ{UYfҾ=hN5AP? C}u6\UD6^P5t5G3DEQ! uhmjzs? &HMFb{썌c(U; r-OISR[JѲ )dȴ3TC|8r~\.Ar fmWIm4Ɏ|;u#_cmHɧ b-7M`׻}^P&{j+TxZ.ViR ٵmƎ"1\gHТIEPF;  `PLA%8^(lK GʢR+j"|._S_;Gu:ǩTc&mp(z9񏟛ҁo c!D"=~R 9>@!ʌ.=c7o-Ih3gh&5{_Ыgt{%xϿR@ռxQH*i+h(tInr/ڥ-Wt΍.bHl,Ģ.ɭm6}MGkFZƓ'}ͣT7y7fR,sDvhyߝ-ܐnI_JK4ko֬3WTZUӂ_^ k N~@/h{ލh GܸI`;Cq&A8wZH޼Y'we0ka;Ya@߱{. nK/wN3Nw $6ߨM莑^XifNKckB$67[i6H?2E 7tPVEQ!eb Ud~ߩHj*1HHtOGx &E˲G"H%Q*JY tl*<snS*L:hd2-AmZHm)xf``/A&~jT6S27_Lw~&/#4 -Q|;,#ӺsbfA~;n7M?d}4k|p-8Uz|Yf%iRLݳ-s+0F V۹ C@ cNÙ#RU3/k WY.jpVBaa%7R?ģ40CBV`ij8$JFNcA mLƯ AUǎȽ@dw z7 2:+q:,`45,u[6IEGJw-xb!POs:>+ P*_OEh)qBBӭB$Ft:E2 ֠ɫSX8zVaRߨ:LlFlDMjby>=Ɩsa !x5-^l"Yy_kFcKoEW,.z^E{" GފeAŻKT&ƀ|r;|ӣO j4!vQcnd. ˜e;O;R6oϤ V amFʧ*K!+m O:dkK 4Q1]p*9سfr2Hl'+<Cp];x@8\5 V.-N6>d8<veHsgW/ ǯ]sb ,s*&ێ+yaAF%v+<` Inu2N*V"=^ ܤp.;?c"XDʨ'iz-䛒Ub)$*XF6; %"[YF OBƊ a+Zd/ -Ea(kA\gYf i UvsU%D#:uwsj_CșS++Ԋ!H|X)Gb$LJ?tv&zxu-] F#69g1D[Q]K4Al?ؓ,4{3\26>` VZ @3HGd1ӡ-oJ[s ' V59J <zVE/Ƃp L(`&w>-)*{=Ϟ(n(dA2+;tgl(C,MNon')tHTM27st[=~ ~ȡdpސCb ydR:Ӄx7սΩ:~5I[$<̂}gT(ѥL (x5C6e?%BW:,)r;eՕg&uC .;j/`12hf~ VJ]]L<(րH˱ayZi8;ծ|\_e}DGQo+NBE!քJ;]7 B~ݝ)!ӏJj/TQWYkh#ϐ/Bz責ME0)M15I\Q:vkLX)\\W_":6?w# o&E#<c( cD X`]%dO skrS p `qA Eޛ{j9C~ y`r0Y61g͟[&5C#Bl2Ղ=1H,ЃlQ!A{eb3mUXC<7DZڠ%9MV\=Aqs6}!줈nǃ;.h^Nnu]s eU)Rֽ(M C2D6dYywFvsN4Y"nÏT&Z_ڀy=vvQǸkUDk^͗dAB#b;rO8 eM*iedMLL*.h\|''i ++v9ݷl7N Gz_;yu&% "=~A-W }K}mNu lk%|>5 $4+K\dZ4V#&I@gr)̂ƹIھ0o 󈳻>e^*JyWIvfs=2C!/qXh8>=ERlU"J4]IMEqFX\h#sDkyyCwrs iupʸGf@aP҂qwӮ &iD1qϣ=$D[1m5>߬A)k\݇Ď{muƦ\jqn\Qec Q^16O *l'H |66| ѐS|2hijJ-1(WvXpI,Tz:?qy$L0Qc$7x] `22@$k|q}>4քXbZ0j5"YGCrdXku`U=B4nbJ_jVY"-X<_uA&)nM[52/Ҭ3O{N PebWr*G>ۑZqk= mg)Bg8*KJ]1LܚPdA(, zl=soMʜq;ŨQ$k&qhpZN<$3C]DJVNB;K+ۓX+{7ii<ҬKPguQ!ו"HE4 J!N ཱུL;N&|'YrsJ-65@L/Z(=4螫5\/Xp YC%9t~7L(vW]rZ.LT;is"tWeQЯ"^{I'Gu=.[f0hY*w%䨚-lK*K n,GGy$ze8۩hVw+&ǴK7ӹά +.x~(r$P$86&ұN6;,9[ݠpgqeH[6=R]{Ypj7$.+x}'?^;߄Q~w2L.V5yJfzWADj2$Lg;ntc=ZvhB5&9t韯kNCwy m9E {)9]?}@ivO@Gn /kQOR:_d6eʹlڈSglPZN]BG3ײ ݓdݟ!GmI~X]v8%{[z{b$AU8ۤrPKLh{;3ݲϯ) %̨J6:'g1:7o(R|W\oo.! yod'P*gkN* 2e'X=|QF{OdIaK¦ʪsÑFԊW[dp%5qrB}~:6?fzaBdl(-J1$'H?gj<ϕM7yeIQ^61[DqsD} $^-!pyIRՉȈsu3>yYXiȰY"q[1;Ru[HA>E]\5a{K+|nPdUIJKbVA ' `4z3sa(el+@$MD#RmE.hn᰽ 2#R3aƻ`SqG%~hq8)N||bbB4H2trZߎmhd+<8`A":#;߳!3L%Z41t-[9-67&yIʌҪfUሓXѶ0R?.~Qpa[b -VǭobcORf);z_b׊Q 9uP()6SXՠHF/Zl;61)_Llv|!jr-]V v7=)~xᢪCc \ܰ-NqJ?q)dcd4Ǵ8Dǟ%T!gBE͉*TS›Q5{i.D 2~$s@')Dn/" #.nq*YWB1 .%:nlΆ_Y.Q!,~~h*~ 4 H9lmj,sz6&*oV%06u=0;:jZrj`hЪWOOh?7=G&q#E*Eb}Gur%gs\K,Fp%^ 9o8)g9EOȡz2|c52=;6Yo2v6 _Oo&A6JGA9^P#Y/E9f-\y}Ja\Τqa&(>g1m#v8$Ya"- gJg[!ua+'1@8Voܪ$SܞY]n0 a)`%<]5QL٫_9Q:p9}ft=2"=^~MHqf3n&"oH={Υ7sɕxSE~Rdb³NƽbP\I }8]b2^ׇJ7sid"X!GT@q8 +>OW Ȍ/A Q.<}h 1j?i`xLbr㬢TmZ/#8C1irbyMKh/&ks2`PWXxn'*Q?5|dq _رq|{meθ5([0U*7?Cqk`* ;έdkU0!#'So!p$z]ԍVJKF{CB^ E( UcO(N̴6a<©gٳ7kHV^K&yy^LTn]+'9uyˍ&\sDbl+a_a<>FF$#a|X,}8v⥩(I& vt9<&Vv,H 'ͱA<}a\ۚo[q_/Og1_ :4_g¸/eP|HA]qS39tCp{ō;ț{cfȫ&j;(&fCٕ$z _Hp԰i-㥜*N6٢=?CTM M/xUw<-Ӫ;۟[d!43XT+242v}cXF0#S s(;ھE_seVFӭt?W?7db &-C"ཹMQ>0*JЁ[6o C X}<2)4RV?|%G)"x9φFŕܻIb6 UΓ3trH6a cVa+o&u]^5',3ߺc'pU Z6s 7[G쿡ۼ"P~qN*%bs 8W6;PI5Ue/5rۯOCT!2>U 5s^ AKHi!vDf*ڑ|q䜅Zql*RGl1F{ȪjxNA,ͳQWUr>(h1sf^db(AxP5vtS!֓lv+J*Y)tqg Q%>n7e<Og;H޲9筒3-vkS[S]z:Uߜvv''#%d ٍ0O7H3rI+<#ws[یd ^8Nq~+94CYMFGߋާrL]+(^69Fсr OaK7Ւ%615;Vy*T MGGb[dlW6 8-uLήPҜJ9 ژ1⏒ۋ /Y̼uy<$p|[^ \eKOYZ8&1 ] I^`ǢF ?d'ȎV q/B=Z!Q9u'sڇ"`z"OtQ;Q.6]jJUQ[GB>m2wQвI+rGcTv*!fq2kK WqFs=9U:ZQmGy= M?.x ~Ryl OѾeYZG2<ݽ,[ݳgW#RehֶTi -E[.Wd8xe U\{]7yeWJ5RF9SXӒu8K8jɓ<[lK$zPTDNM3l\|hCУym{UZJ^׏^DA%eXo+ZN KІA`Ɵ R?,fgϸUd7 HАs lFx_Y &x6eVm3 gֲywUq\?;C{քVNxګRկ.2~nh)2FA+Bo5\^%.qDY3.=sAPXz`!L)1"\{"%^ 6+<} "'Ny ScLzH1 M4*PB+R|5Ez2pT'D?%.n&NѠ)Ғa . `#^y_`ݔ0)#u1  6<+b V*=g>xl2׭eOfB+p(}E4y)Cf. Ic#c0f˴ qM2 ߉KBw|`o?g&œи6/Mșr 4TsBF=1{MV~I\P !5V8}!9$FCV7g*|wG4;yQJ >Mǟ5 E Z_y+G{W5. I ƸJэ+@`6-r4 *{N E!B`.$dsvQ*ʗXЦ0*ՋS ZrvAUD};f98*'K_'`ֹߎt7d,cŭc6z7e8LH(XtNI/Apdm #@>> *Sեk#VAEGܭ5fOޜCsF"*FYg  :2屄z86ֿS|Oai>.MN/!xdT|#NV#ڄ}-6!ʴV9F+D-n<6ћ'>iiД=59Q|DoM)q*S_E|cWAm3 ?tS;~*Aќ CYcxdH{ |Dܺ<~Cqszō3'69re5l8I\q0Mjq:*h$^H@1łȪLG΄d] q3DR`@/[UU~;Z+]nL`*Q(8T{Tr?C!,ZxUĨ pl|qU!^g5>d/DYWyD W KJt.M& \o?zI\/v}'{4{y ]4϶) |55)qG" ~Wv|h dpbAF bHf }#xd.Wx@bkof.#[lp>[5U<=1 i^QՐʞ7( ['j$,WqYX8c>Oj>7*J :QLav1,g?ӁNǎ4@r:4ǮB[Psnm7+0+9O2^ yy=Ijfj82?B<d2_ J.2CTA !HX7T3T j҅5=nIY:Q\F+puJ@U(%S􃼩|}dB09Āca LZCNG tF)TP⋰FVGr1X*[P,j7F% BT]`2=6|4|vC [?A%#9Crp킇f'ף W_x VݕRڊn*mٸ>(o2| 4.èFw#/B#uDS,%;qjLNo{u ~B&: ?0- ?hC.UTue@Hkd [n^2%%dm~1Pղqu"k>% a w?+)=1Œqe ;;LCe HN2%q':]ջq\siK66ܢ#@6w$< ,o|[ (CI${2mF^킀hN@;u:~137lgu6N8nghl$">' Nb;宼9{ D 0ٰͦqy~h]iÅ-dI'⺍YN>.삉:5vPt}a-ן$bs DbO`o~,D Xm17#pE/u -DճvyrR]oA`AE•jMtmqROUƎs1d{eHa]K03@kwcaQ/]-E_mzF8fV1K6;}r@xUA!OFb%&Zi߇ q`h?4ECB?fpunx"F)3MH+%(_cŢ?:o $Ԯa.UbijR.d(W׳xŻпtT9nP%,+=,:ObQGne]@eQ!ėJ[gC{9H}KHZr41x tӰ^`>f&M/E|HcGxӾM@SZL S~ =~{iSM jU6z>FR5*ʎP>N^Y&/ ޭiL$0#D-c9X'M,ҵmi[FjoS<ِ?~ob4 h1#q {\]7mF%܂d>mTT^2%q`ud|_æ#ܤLW*☡BH|\+%BDmf7codޓ`Xٸ 롞^ia(i5GpA$i2~: ݱM\RY:{79UeQ&[6sSxRFX\\va!*M9b~U o;20=8噉&kGY1.g_nB{+گl2˺' . > d0i2^ 5&:ES2;V GL#Ltkpj$v]q$6'hO1GnGy[{84"-j/9 ZiVDVGIDph%/aQKw0J% 6`pQVNayۣ4a 9Mkn%%c:#[AX9UccQp?ڦWI. ݇1 uh*RN(Ѐ``:u4쇂K68q*B2m@.dDwB%EoW~}E;"('BX/.ϤUB(޹uO7tsn?dso;Z2^Blz 0 ហ F u=S*kll%u&qXXȞ..ź-IEȍ*"FFiʎ[X~kIi&r $B,@*@ֶ++R1tb-,6tوwBIL|"d9ybw_" aڊkNF&Û2D2RR陨Dc@B)O J:;ƱnNdnS.v$t Kc;MRC~ڟj LΘCxWl AfH;!H] ԒE8ôt9 ,h}9{Sc)].(AsS]ΖyÃyתqT6HĤ/TI"$&ٹ1qj:vTǖv^M蜽,_ 9<9s0$M-Ev:A3:]YL -7ZTGppCWI+O1uʢ>TypY\'5C^iv$Mt>g|L0jPoE=q-)!0:+jB2}vzis|:_rP6ҧK,)A_3y’糅 _8,8Bwy[ ͤ3O#Sh CLSڟ:Y1?. CGM&gT.N3N A`WB2"%ꁀ !%[@BIZf TKuH-a;0SwoM1 &"&7'PP3j(1 YىK1ֲ#d-CYkl("ibڡ*_epV) bF18UwO3ҶE˖1j{ [kK͍A:!z^iVrtoUp|b8}bGd'D L'=RYo踇F5S'82fok=iZpE%8@&}r^.Cě(ۓz[B$@閗d|FGFgF56tX',IUnɺ (?g@.rnNcq9̚]iI%_8ߖtDQ'Қ8yB[JVyD HAV[OQk-9Q#:HX#D&B*hyy';0y{'yog~nY}6+O/xkeg0q'{Ž٤v*t"[Z즈[֢ UлʑFRH67M;*:9^qјXNr?AϓbS)f.ټO|+苀 RrbJ%"t% wIT݄w-^b]NҵExFV'jW0)5GI@%ԠI]K'ӓ5[l2;0N) W<.x5y:fTI3쐛G$Vm^gb5T)ѿU?V!:8;!dqnsG TU:0U=qn Rp4AAO4Ii gJKP>^2u5;\fhcD5K>I+m^ }n| 1|re݆-kco:ELȘZ^_~4h.LV3`3O}Wzs8c*#à&E,oT5; Ǔ,\5qE Bx2A1K|l0$jWdh<쯑$4\U"؝=ǡ_|Sp~_Th|nS|S˴HJRB o{ w$rw"pDHVP lT$f\)VJ HBGuuA1p(;u);݋vbu Iߊx?X.-V;quEk 6.yCCגcB|@glg8"LjUmDqO܂@{۔W\/dtsXBx̭\=]c!6TYp} ƨޚ6|ɐY"u$weh筒еh*z ilȉ_L&}.;!:.Qgf .'Urˑ g>h q(庺zcd'ޏ-h@Ek74yl@\Ecb6׶ 0E|ڞNh4܁oʩd zaU6OV6!3 Tb|N<21:q#":1M같 yFNТw4nKt37D71'v O3>2VU^.A)ǐrzK)DHl=jٻY|-s b06s^̩H#IFIv.#2r!% Hj1gDݻpq 1n'|,Ȉ|d zHƕ U(a ׌gWoxXL5>1"<ʪ88s82Fu,0趸|qy9^?$o4rG[!}:uk2/Ɓag쫿AH vw xq)F.V6Vr8#f ԖV7'^-`si!y7e~?ԍ*wcb }v;㻞16U Ɣ'B[ woms3o޸udL)=6f:z l1eLw.^RfzcNŲΔ. {86q%: ` N0g*>lbϦ5ofMiv˲jsK+/L\ȀE޲vi%|{nSk((j T\,t3 qWZeZpX::jfQzo>qV 麏a ԿNPǷ:g^9'_JRȊ`iI⃷xrTd ?^ԯ$f7W @ nN#t,zcqѭ:oc?SK(YǗTsjBg*L$ч l6[ٸ#܄]Uᯤ't%(lhC֯&.\ #]2a[.#sҮ'ƈ[JX0qj1yMո-{话g#H:[qla{ٺ:1DQ)( O}*e4٨Є=ۋHQ3vfUdH,]o3SʡEѧu7J< C UY- |)vdB sJi(7IsPYqX-6LQۦS1CP̻4ϻK 73"s<.uA; X!+ZKIA! Q){&l-U8ѮIDCWB{>I-|<[,cENmL~CruloVCw { Eл C!×V"i+Uтld5Խ;F { WT5aP)N3ol&?퐜{7ˏؚ :Z Uq>}f7Tew@q:ej(-2hO٠VOѤ `xp}dQIcZ4'*/ui0ID7:( }Q<:  <= [Q4~e n:B,ɧj~AX|oN=08> f%htG[>4+n `hem"h+D/Zlʏ ]ԸT\?2*\AFvˁe#nՇ@"pcgsN!Vk]P֗s2V*7("P*-kݗ,ﴳ3{}zE =>DX֣J* -ao64*dܭo_ig eҵzIw+5o~^ٜڧ5@ $45捣(3Xٲك_y/I\Е PZqytOUi[&Uany7, v4-JE<Υ 3m5l't^˦a UUsGҰ_wP3x?Ri: `{85o< ^ܔ/H2JbCn:ZQe0;#p~"H{uyT}ˬhT7U2m9R x7g XΔ#^j`[7~^-2D_xafavaǀ)b燔͵'R1&~E9o7]Crݿe J4u2Lmޓj-oQy};$Lu_]Cn) [ ֘?( փ3fBu}\편0pů-35Fg*T˓5?XC);pہ]nmYk c?Vhm+3yu4rhmIm/DEe]ESCHY =WVVƙYcK25!sFRU*,#+{rhO5A>9`; mXB {U`%p}wq{q:xN9 ;\.bFю%a0ON3GLKC~_,9ҼFp~1մz ]q&`0|<6Uo]HfxyS[4#A_u4 @$K8~J&Ā[ ٳu]`*M`ͫCNetu|ew'Avham{!]ǂ9aˆ$%-NգK) &N(''9, W,\f+ ֥マ/`s$n4e5Kӻ}kbỳ˓=G夫0ٕ_>GOf&zuIF{:&l+-Zeqp<Vػ,w@v{Y-4_WKqQ$=4VT+fv[pTt>VhӍ3ZTˏ *RPV%GgHQ7G"~Q Ъ#\8M)\c| 7[ Dyn|Z" Ilj7S}c΀JY;[]+j9w6:l{Ks~je_XlvW3%jv- |t3OP)tkIGhi=MK#W >?kɵsCݒ[.EP7ZXy8>k%A!ڔQ$t5֮hNgpt>8_/עX#}$ GR&'HOKۃ%qkLo֞4ETw,coE`5TSHp!j9L$%zz\Ct^򂄖~]Zs)aTG;Ɛ<9E3?GF75TUJH5;)^`?gz<pZRɎ{K:tnY%p_)4Zx* Ǹ_)Զ!,`ug58"v9 ;z I@gW~O!Bd ł&6bqENSq$pzq]'To02O{dN{hǴ#zqr&:v.Fs4l. ex=Z"JYB]79NpYc#"Cw #`KM?h|ҕs9 x^.vntcuT&@FNևp`'%qȬxj7((ZԏH0,eGEgC)ԫOM*U 䇜M>k \IO-" {-<\ 9\3v|)rJ ejaؖc3 ]LJhVƋ_Z(* IN[ڒ b#LW2\d+2xplG`t%{k"Tk?.{߯Hm,J(g(G4YEӘA&y17 VUA]))#Cg'VK;Ktim[4bvn zZ=a nOah y`,I:HNsqoFy9u0z~2UC e{cؽ҇uXcKev0 4'Qn&ޣ$n,܉d !jp\gZ!3?b ӿ%NhJsыU -bgGCZQZ{9:@4I9dG_1Hj4cчqE%l)q`@L1re0s76,4;=;uRj>\(+bۉ8&ľbߗD %)E)Rć`95)s5@XAgU7ǟ?K7o>vw@Uݻ&I[B!S 8'[$nV@hk#m6Ž\lϜN,r *^%/>;D,;ad`fA]bsr*eַ'Rm93W NSNy|ULr4><\U ZC#6)t/{QQ, 9ӞP VkRɀşIGerőBpg$\o^ TX ,?уm[SPd6.R0 6jÇ'8'~_a t UnN;Ą)8IIYKG(EDj jɲoKqhd55e32աMAD+=H#?eԁ ۟3jgm ~! &u3iboY =.i|ɴ>;5^񋭾v|iR=_+Ԯt!2YڙamwЌ~5^I>`F+`?o2Qw#(}>27bI(sNވI|299oWYu@j!4ܑ5 )WW1Sq%|,-suRi)nxMK$Dl)f.|IbBLT2ԛũը X5Ӵ@LbLB ֚3-^Ǎ/rqT]3z|* @mP-Ck1,U,zs\;Xnݸb;)&ڋ7W&$8u6e|D4\{.$D0EY殊B\ {n*M[wctF#~A )8O8XtdzIx_U4ؿ U@J: p1= oZ®=Λyʨ} 98ё`o$X +x/sYeFQcfU+)U?u8jM k$W)b@e''B{Y!nm6㌶Gm>|G=kŪ>%dĥw"uh3<>ij[[3sWm]Vkْ>a^>Bh *>!\j,=U 0p@۰_{[)<؅vFX? 5J%O7X! H{Hf| 32;͕: 9⪂ F;ܞp]?v$"X}S䓉WIY' ccU ~mܖ#{pbhlsGpvXġiۨ }w4,㌚d2o:* cBHwҼ mf1S-vj:w\PQQC܉ؓA QvĊjM|àE5׮)[o!e7M^*ƅ.oj)AO*O;N'ȚMq&y_3(ۇApoknU4-)'( "LxA R[Y*Du]dU >e8H6x3^ WoviK"q*o^kqMz26+n{ Ah7oj42zQ0_wTh  ˫:M’K* syiDX- O$=dW5NTÙN8 )GV@~M#8^`Yi%OÍIS樽c.P*ԗ6ZUS@%ʤ3sL|ZijGDJTioMLlzcC6r;MzߌGѤ>9HYHw_~sHk,];>YOp`XHSqFC{+iob}s &V=sT.<{TK՜Q-<_Px™'t>%?ي%"L@c]neМϬ K:>0VդX+eT]Zj"c(W#U; /bXi4~g19^c_®踉p^hJКh?gtFLFB@hCE*:SB ӖPz.RX>acTF3.|uɏdūV*PK- *^F*aRj(% K4L[UA(:l )8Ú?=@h:ߣ]ξF%FlV=@Dv{c L=%# ("~:ä-}kP?gF5V<]` ̌LewW08N$U/9HOI x:/fma[Dʁ3&8$ޭ(By 5JɣqE}РZ9wafv-6/ PTm)NudtŠHL:w2ˉM|ӛkњkD)M^S(tyY}};NeâctЩR&؈J$JhcO扥p@%/UN<8AmY: $kTmfkcpzc:(6iRIv^ z5Gz:\H5 ]Meq` ,lG5XRM<2<|d] a^YXX: fB{| <;֭[Wog9*f*=ՉFVBն 9%]SAE9t>[еrz=Yimi tYHxliILkե\#~Ηа?"jM0WEO*wz/@你gJ 7^ ځk@k`6J _=޹or/#\P_kumyz&GWNPU':zBXO \+¶MϡhJi揋yB a#4Uħ)ZtG=yI|JC^4R$Va .A;4^.^mC\Db]bul׷s [g} d(Iy,h+:v/Dǣ٬Y>gU]}uEyNFޏ?d)K9<LA~4f֞ә?*`:˲6k"R7ښ$sL)4`K8bs}2RF2#%F^$ȅz abΰ~=Ak9T.&pg &mj,4~UGa7yBo{,fM-.>޳]J~adD,5& n\\/ME8%%PlxWǬf;kH9hnq@|#iky CY#0xB\sIͬ W|ʅd99_w)i_v,k Đ>ulp4+p+fUJTr@@?t >nȔ`M]0{v{?q#UF)ydDTƦ?ctSbCaFS4 ӛHEzzY6v4mcO 2>ĽDBpMm(ӳ`Jg:A`DG4w$Vwlс1hGƭYÖyewvl]d;/X op0J٥x$ =Z )EEe~W#U4\$!6TE#_wfiu̞*Fҁj$g2{*2:༅˷.{i4q 9uR ·B˼xIߴsK R$6ȅنm-BՄ o"> Ĥ:F2iLÝJQ)ʡwg6: 9vOmY}UB}&)oƏ"'`Nsݍ^ Ry0&vH.ٶz)_ $BI\Dʚi ^ʖ<:@\g2s%k+QVrYa^wO ^";׆j-xbZv$NB?𫫙o5mcrum6).13r!L@_MUWq27edI./ ϺA> {n6$*Rm*c_[Aeh> e &Mo"GPL[`c\Fؽ nwp&/ikHu)6qP6$lu\x#N#I$ QzJ^s;5 ~xI}gYT/4ιPG= $o f7 m$)9CvL/iH̔KN=jK] 'Rx)jآL.)|I*[  C+o?ċ.R~uzxҨ% ]lC#>>~WhF;R;n/כފ*u%Kݜ'Xt:SGl,i VQ1=l$"?%C^\IáSKFNoР;ާEyezjcPmk"bPdk3sYy+.*m7tsRru뗫Z1x5h}niLN2n"x@{Ծ zǍ ԕU :5;ݷ7QԒ*GlLZEwe P{9T#WmHs|(pfD:y84#^_xNGYq>+@"0ow;6BB- JmO[D1, n=89 x`3>S" 5YT}ao_zTj`YE*#oC GaEa*l: +cIvg\sP{!8,)A!814 zB!<7&4l0"3<RTcRWw|= [!oKÔ1D!|W$udsɧjgJɯ+@{j$vzL?xtbrJ"-~@XsPKQ DButq'lEEalGsX gJE$^s@!\݌yC`<2edXQ%ѱVJGEavwAgJ`5_!ljΈT;uF& FgM#&Ǒ8L7TZZg `~IR `ݴ`A*bѓk">_3&qNhj2 {.="'=\@"T59KLe2 ^^ӂ^w4#qmcuڛɆ20}p+
,8c7]ۉB,#^⮲Lj'ԦF7\O8[Ȉ,)4CUFֳCz VȇpG{$u:K 50)vwiJ: j0Ph?aծ;G/|/4Q}"JĀ.g11L;arSfTs]P\y0&DI sDؙ 'MJ^H[ Ք`"aJ@+.BLc3(FjEPo\A r4RQJJKZ?/: N(?: ]_i6HQ=#uQ#E-^U](~NV }mp9^@@fuDV%]f/HAE]mL:33~EO-ƨ5EF\`1{[k}!,yKr*V X2mZq}핶r~)M>gٗo|; W1HeUmE-*Zr'[3gjJ^8c\ʈ @4ʗwժK7Q@g+ȟĮBK/@gY/IOޟ8ԧi 42?fBqvhCHepAI>?Kl'|8x/!*16 *$4Ĕb )RƔas~iV8@.q߷UfjøHgt)r6w7b1\E~Ź`E'NjbPEw7TgIL%:)n6dThU1/.Zbb{ hg͍^G£iJw!p1ExRC|o+'#{j]n2Dd`J .M!$sB>(-Q?$1!3 %ʾyG':8G}5I1޻ H} -e Jhds/|WE)ZAYfJAGg\Ra"_nM og)FJ{=#_qerz(N-w6>vy{Y -l-ƬsTGwnrOKaI&VJK{4PC6)%JC)íc>NcCYTJBg܄)b>5(BR26^ xn,;>9!ďemV(xcҏ E?:Ć'F4S&:d#gvF{t,lVFӞT+pjDln;NɁ'qiwڪ%̆º˫UL6qRQXF66` $׽# fIԐ(OuG 9Z.S Е9ftB͙ Iʷ%Ck1H^?_7jSUX$?{qqGT~ ;%6 O}u K+O~ٖF+UDЫGtZhKpB#w9Jp!a+Ր'7,m?=Jl=_$xVDh\4OnsN=d 񪯷|[5r FF.9G+\Ўg;J'@ǠʯFdf ɚrϙ]ut4D@c9~rg`/F?u/D_p>@#. Yb*47n 6k9,mb6]!&*ap;H݋ ~j)y p`y].miM}48|S܏ ޣT{T-;~W${l$Ui7z X V|uCi |T.Qhd Ty?Hv} SG$7ZͰe'*IE0=R^1S׷p%EA+hz 0)ü[gc";[o7;(~1hs;v>%|QCqdeAЧHgVڷ@\KW0 5]PB?Yd9U}L/tMYq|>HoV}Lߨw k~=:nEfT<07tD`zMq8IHw"yhz8ioD AWq;_LrPkXUb'roHכ(]78<0X Hg0sU-EnI"Fd.Hpg>!SQ6tKZ#^wOdv_̿Ӈ#[Y$ r13\w)B{z/'O'T2 o]4ZnDvzG}St\NGà%B)+T3#U77 OSNh#lI'{}Vmχ|;|mXnm `a2v?Q0Pԛ|\~+:rTEv"pGŽV̎>.㿺siKxD=so(3*8,>|U|ެ^tTߧ@I,}1]xi2}a=Bf{9g!i8#^ asnGA׼4<;13 c 1%Xh-5]^ PhRp@]bL뉛1X$.SE0,pLR~nGЧKwB?Nw]0!5bV_80;JSl|0|s$~Ûv]i2J=OC8Z毫XycM-kPg=FMp읰ۺn ޑ@*5(ݫ<+.}Dn9 $yui>,`y5No4 KM{%Q/ H``~T=Øsi8lXͮ-S{RV:)eQuM4 O,J^]e1,( QD9yj]SB0@ڇAZފqe$XgIPug" >s6zJCO#Ua*2nR6b}Ą,( )usGڨr  Ђ l;t÷IqgNlQh#6@*m?iPn_f;^8iGpXku)n1̑;EMR')y Vaz7k\a#hh?fvtןq1jZRVsEw~&t.P2ą+f.mFa>@pHW `UĴ`KkvNՕZVzʌ0qߓsC-nKѩȳA('Q+ٜ.ezgߺԀ ={5b:VICɵP:<`/T8k))i&2Kt3LJ=Gٽ?Q`4ǼB$ 0PB \|$UP[y緱^2 T0^橮҄b kdHB%p[A[4Ni bS}S5))SÂOUP qfD\  u j2"+C_Ӊx*wJͪ| r%.yLN)i:{w0Iv3(GI}.}M %eӖϋџ JN(OyUأS2I>}4bJ}Gf< W<>ӇVit!+2eɱiHlc o,5/2%^uX4KpX}AԌ̡vTS5`/p ՛,E4x+()c#9NP"ߒ^ ɥ=!%NKLһl`>jYkI1(9YIc:ۦaVt lr DK7QUYo>d`a(YA%6qpW&#O hjϡp7Kul2Ķ&; WSP]mDU }{EaZ,M2t3Aajِ`+7p(Z qᖵm_Bk sJ]@11O OX<3NPs-=PfvFp5YRh}dw0T7! nE8z&[Ds@)@.1[k<@pK. PMh2ʕYڕ\I?>'.4~Yhd#q h l(#C,rB2QPBsRBSg b`N~7>=I?ݾmIh/!&af'9R{J t م4֛j:nti+7l>JNklexK>/'"%"K?XA >7;r̿UAS9NWk3p| kB2H@^ Ɂ(BNvnj^1‚dHvY /-&[FW3jS%-xCJ2ZOnf OJCX|rx煫j)9ڻ25[=?O7g5(DSzH#VlQ}qMFD{53RaHC7ßӱ}3)F4U&ԁ u-~>] pe ɜoY#7MDJ\.S2IbyRC2J oZdu5N2YT 9fe4.EN'7\qwbQW0Yt.IW]-EkJAْM5 >;yEjN1ƯBסaaz98䬲fZ7٢J ;2ֵ*މ;TdK݃kklD~X~-@{ pum0vل!EENZԦS\ꭕN=U=[k٘,:<"' a#9'볒O= t@"Y\ t01h5F{t]f:y]*bhQes iN\A{#ky53jtMwYEY醢s3VaP/}!si R7 %m0b >pL{| IW|b!9eUyțl%y w97*(qcc}ksK]g] "״2qfZ9Vz[Z'RXnB?0$j^܄*$+'@)῅ڵɢ1Nt\r+gjqnsYW+$\H`Nۓ5Ry&45G}Or 󯺠va0I-U*Γ?&"`yZC?js ) GZC]TܾRɴ my'uvo=lFD'K< m-"o"lQ` KC?>A>d~3S 2Z!N'?[-طy !DX(AYV9anL;yhN)VtBT(GgExW\gВZ6,fsVBǁ׹op$?r,PNR Г#T.HTc-(s39h&]9 ?&-I۩:_#jBV41vj]@}xti\^/SwSc/b@Q0]z//J@(@X9t cu0A[LAVM i SŕACwaR_ʓ3扻:FM$_ZŝV?H4 b1%C:j}xxDrh15Եklb~t.;x \ȗ ҇?+rk?a{ ea>yxCH?4!7o>[-fhG<tV#>p0> #Jlӥa mߍg`c\ủۙa{eJ,T],jҊD}W`'D:MOdF#d[[o{hj{?#QDU L)XЮ=c N 3s xo3 BOy/7˹]33&;6:]^|ۉ ΁ÝڴNf@f5ৢ:+D9 NUJ}6ς`I}reǒIO6ߐ6RM2cF>iuNw.>γLq' }5!R(2abX> mg>R‘磗 5C#aN]ju ,ܐ"64`:18$rA~{\a}#I9XQ<8BV; AFfbpg : ){4'/?Y?r{Z `EdNj|w/ߙ`Dg3rD*ň{g?AAG"O)ZÑS][-Qyaj:tixNPY#22|Io 8fI,?֏oL~l[G>CDyM m#MLYէ{ڄKOIXDQ=&Z桱ž8 >HLW8ʑ/NxAh`WJ3m5XȬs:eVp#qnO-Vf{_/BM0`Mڰ7Evw3A+V?2 %RVF^$A?+As+T͓+ɟU_:{vx_Cy9FMLyZ3|gEvl9|* Ї%;h=YZ\Г%@ _ͪw㯲o'rhX**PL*쫶90 5Z|ʊt@e?j;p &,4mO?홓[S4f -F(rjUorܡ3|#h1qD()2J.:w0h3*ҭCݙUl  :rkuˉ\fnͅTj2LEiu~䳷Ҹ"ԪTP": 鞀2YZqql:yrAC`ǀ4U$rt(5{hVVGB vna혟4_?:|'o6U075_ Xr/zR?c*?ceL<&hyY09-P*ƿ<ίWrG}{)?[[6&[4 Y$!6F.<N?Aւ9ř Z>\U 9<"c~:7Mꆐ6DpP{$ 5}}SA4v{kI&5:)R?3L](e{1j{ RPxN33̃ؤXk\g0xv@Ze Op_gxiZ_=ttU`u=Oa=pCG"bkLm}I'A5E'/ߺg!Uiimbtȕ!y8;\$?A %G*cbqN{uR o@}i&lµc:P'*$,Q@hH3v#MGr<ve(8/ն(Tv(Gj8M|vnV7p>yņ=8uB#,i1PdNs׿gt /օ^Жn^0 u2M*D9Ēоf 9kO%͐sJO씼 6҅%Y $rv=8!%V* '7a) sTeHz U}j&2qL{=<2P^?ޗa)}KP7+-0еvH@f!Tlgm6=oidԧ lĮCKSyoY|bA: $^T8aI'c|۶X2YUwJ1fv0#㗘 n/eǣ7U\%;N @.YmgjhthP.Ά._{l 6/15J]`Ƒ ɲlg5Wɦ}]jP*ul>}pbV lN}7DVJr wV3Y5䪄%B&j06NN3 @q#nbxE|zVnxa-%ڡq RLm,➂O..3+?oOB|Pp-|^eD|[wesp7+?S `Fp.1Y |glQE d~l?5!:~ZUe>*vU𖾶m42 "y^*_hE~81J/qLA/3"y |Ic'k?^&$;63`aO_ӃeͷYjH}+4~w>)SQ >ʙK]=};[I4*5jd.`uh "/2"CJҋ1M򨿼D/ r4$Lθkz$D; !3XB/OC!T32Xr[;@FV kNF1'rP7b|w_!O2Y_nGasΗbC= KU=3f<7A?.$Cv:Yު6"B^qD敳fI͌\4դ2ޙE`oJ,_ꬺ4 _4\Ȁ4\ۣpf49NCU#a#zSģ>!FZL8ڠ.@:#:`oMJ2N;e^>0/[V;YDe_EffU~4{D?-]n"92ەvGuep ''Ihbtl8._$-~b][-ih|qbiE3w8s lE7 % G͝=Z[RO*z YwO2QqYܭNzR>dc|g,/Y4@n@r$ 1EXXNw;leUjgza<ܺ ~at`] ,VV/bx=:wsBڏ3Wy8^]w:isrn)3YDrǡxPûlM}_'ӿ !}%xu>R c:H'YXmoSuR}$`Mէuyl]цev)$^"Y:҅GNT&+ƅ[Ѵ+] i\y5GG!%"$ ?ēSvW R AQddJѱ.qW݀FCXhhmjQC=ox`ܼ9UVW0R7]+2X愦%j")>u:hsde+*(^[7H~;ʣTX_u.WH;FNsn>;&2~6 =Y-{a4*r1tA{pL 8"KD\S1mBS rS*[pq@h%Z[1Z7N$E(gOnoI7JKDnTS|3*Zc[&5Q,.ؙ͌FݦL]Q]8EYG>^?ˆ0Xds-y z'gˁN%4:BS~Uбt}ȱ`@Qz TFA$f7]pǥbV"3s Z{T}Lˆ+7,GH;-.$Ds/V*9T#8Qbz֒RSq~/ w RC̝Nj'(҈o,.YlnDSd|r>fbg #MJV'eosg /j - c@,'m>wZ_Dޟ_-&Wk;I cs уu} 0Cp9Z)H%.UH,t3iHT"%l=O]Q`#^1"؁;q Hi'8Q[]q,G1nԤ1bCg@ mLE7E~)5X* lz ^fGn(KK 8tgJ:Ä8ZX7͂aֈ ir+9Ov5xy ṔTYzW0~*2B!H"`Rj :^arl |=%6BRs0O@(S aEV3iW ȈJ#Qv D_i T3D8N&=MD5BəOHƧm伉>gNם?\m0%s. %=$ Vgy& ~#bmF;~hv8*F֦EZ/5 k9, `ҧ# o]Ucs8ojڹC#7ۃ'Fn;@ ' ;d O0:-D\gJ=i*EBU}9r|[K$fV ) lqjEblo'DS9GL<}Y r 9vdk`-10 rk)l'ZbsRfqK 0?$BHOaCDa l(5]R((gBU Ln\p/.IDd43UUxPqp͜ 8BȍQ fhGSaF:ܖ g"8 :58qA4A_\Zf@"Ꞝ RmU'@I/3jiz^ϱ]HcFJ!U2K0܇n 8G@7oz|M"wj­ݯ$]>|tSpw5e5qؔl8/.z];q/V MY +5{qkfydY~*n1Ef% 9Um墋F;0S;*C!@<l».<3+{R{B1׻9UP.v,p&BA‘9Quy_R[^a `#74C⼦~/[zb#jh `JÆ26X1cZ YtKqnߟә*קj'Q! !dq_m+ӽm{~?Fl,!o QI]d$\K%G05ы;Hnt{߸Gg=PfyĚ~S= əڭ5QG~'rįς y-H&3*9w={{xZ=M2W jrޣۻᦶg&.XS2Ut<ڸ.ҪYյGD(nks{qQ!s;䡁]vucsSq^kg9u7Jލfaŗ0Ų> ԁ4䇛K?1iO 7I_'4׃ےjC5jDqBuhHt`p!Tn#h^)8f;Vq$nO@5䵜K[tO@(_+(,L=HƷ$氶…7%sǤUƩx/;h83_@q 8GǬ109g[ê~ /j9Pd ?gG]tM>&c/c,n9u A=7(U)Su c?}FyzJěay$0S+3HX"LBm-e ߊR6f:Ɍ#l"~¯p…+ӌ։YAY萢t[T8+1@H}x#8Z7}%V6D< M@/BggIi.-oI_L Ѕ@%e>z2PIl{}`no4wknc)Bz^ki1 ޡDtwh-><݈4S;P3Y$m:.#i{:}Wun31^(PjC$F>bDF@଱E[>bE dq#K>Kki(g<~Xm&{cHGDd6Kѩ{if. DIJYpdM+h3\ht5f.MV$(<}2/ԠIBW(KEfKQbsw.pd#+-6Ҋ! 1^.rxLT1) s2mlD,6++ZƣU#럝T9;kvO?VMd^F~d8~ѷ7{C2^T0%hRC+ X["ƈ[TM.{UR ,APGA~O?*.wz9 ][rT \]F1v&ԅnN`MQ*K쪺ć%!%+S|3$޴ѦPX\'MVe 1;dV EDsjO}Z_Soe=E#2%{NcXϥ =wr'hho^\2,xp޴et(3uZDm?Z@NjN*ZM;ח#ݻCkvw3[v6ʴgvdx45?m!O΁־I ـ).<#piJ0sF][!0"+UY(cKaç`5ED7G|ߖ~fHa)! FrUK}J۟2R)$x}5/D6ԏaK8D }`Nob-.7JB*׃-b,j"/,‚ۤJFn"x\MX fOu|zJ%-BHeNXߌ 3y "@Y nA+WtDn<00sO`PcüBQт㇊JŶnϩp#~g9v/RӈNES Mэ%$P 7 +k 4+ ̟I= DŽq  74^i8"*I~^eNLf#]Q.gD?ػY#P H;J(F޳~=׮=\kt UB/=7`Tcw'(U^㙸O&=5\ .IFp*J{(E(ܨ gEX?mbRlROkc$qcRɢPQVz,\Tϖ{;NxK'&3yGvm!U3c޺ɹ=\Va\}>J}F*=r v{i G%ݕ_+ڂqqto>l\k`l8WXFŽG0 _ ̙.Ov<'m/ħR3`LBp;}}8q LaEً^R"O^E`/,d殸zPPCNچO"U]jt$Fizl/+125TlȉoE( ғ7fI>zUzE~e=V{.-i5ĥH)81=~ ʃךy-!* ^RGuK\) թZ3Hsj2vpJYcՄ<@/Q; 5q&̋PkP?zj`9E * c\Kɍ"5u"DzmwZS% DC]bCe75X@VΒ4!RÑn.XHa͹`VamWn- ꁍ;E!]m"w]ѧKch#'<㿓h *uH9 ߀%ֹ\"/ܟ ̸rRqOƐLwė♜ה;V$byZ?y{&qU:;5.w[ԸbC;3vo  \2z, 8-~|Q92S58~qnFmBOHMuҗe<\gI42 ܴL0'lwA`3YИ5u~xW4^-jZx5tJn#ei^KXh &]SW+p dD^Fsо+1(Xƨ,;)i3TiC $=CSsQ)O"s,p|js3|.tb$agN6 .1ZYdЁ-fTB,>pR̭.LKGtWC( k/unB g, EO|7LfKn{-8l$ t [#{I"cxIm! c:L<LgY%#3EsCʥ-_+Z]-ﵵmItI!^biP(Fs_5̩7/CчZ,nv [%'a6of!!~Vb߮q%(bJD_P'H D' 7JZ v^\M,%!V@%7>~n М+2bL#䳻 av+5IOXa{~a>𸿍sV-C{%*$X3>|_712g|C撐{P)j|NiIH=ojU6R4^DZPJ<5E"x5a lKOU1uOQWۤA˂} qϩ5n)c"QQi{u~A&ޞ硣RyڱQ>)/SL)Jf@.]{9,Hh3d']Vxo|ٴF/ u7g3";m\F4W-Z8"ȏ'o8:zSJ,vOi \lG .zpPmeW♑f,#l޼gdE: u7=A{a.[ZI P14v6vd4ٻʖÿi5i7C0Ƨ]^La|;l@K_ܡ(ԵT7j4 94n|v%q4_Yula<$CpgZ!׋fGS_xf]T1PP(6RmDt7)HcNɲ|m҆/h=D_jls4 L=]NՐ*0:_?E2fJ~>UW]wa"xESJi9ME%?BT|ntk* '\E)bua+R>jS-ȡI\^*X+Jnz"l>H3'Zd-8ȯWb\{9"0B_Rkmo]oXAt3֊]I@@8D\> x :atk·<22%ӗz$ԞդQxt{zfؾRۛ^+/<^ \iEG,$@y((f}4H#})@e媍Ῥ .Q6b-YO5Z&X^v =y3:ɷ^&0Y@J 0h 0]C6iOۧבvYəi6IuuٶoR̤سHXYEQ:G](m҈4Љ +C9oiIiq_,Kgk9؍}v}m.8mg# $&8&fq;#r'@uY>i@׉UIMMl<ɓv6.kBW ?R8@-xW$Olòk!eG UNEn=?P LQ?.>xģ{Z9W& ]ǵX3ztN.tv#6;h̄+˹!L3.@T5x#%EI !ࣛרf[pFuwؼ2l==[A<:|0N&I, WZh?&{tr~7+ h|:3MuCupI,w:EpcR}`, Ҁ$y8"*"'ݓ-Kأ@Ë yAkkJMX[Z{$o!nx4rCS#:њտ¤eZ~=01`xNכ5"hWW[x*΀5?Ft}/CvAqW;؇龏ڋ6Nұ׳j\)2P'Zh?iR9(.Ah{t( ş`Xw4ڐV+\ar<č^< oFUPyYjGs}@0 !РAރ~3` oNo"ܚZꟕ۴8x{ox:;2 Q Ff({r ѥz}?G* |.EfOGB,x0>-j6v11^97/5.5UAc}dD-{k!8hH%ǣ(8&r!1' ,O i<ֺrN+  =]g^v.-5q?s9p%:}~äyl—M;2f]yORRc: 8F͢kWiOܩmHDv¦JieIխGq16ݲ !=}Gjx!1LY__`܇,K֖x~Z>I{پgvW :~yt`ԋG+p3|x4La7`Ј:?w/T/~NYN(ƻK5 [ ּc Jot/Ǟ&zfT!1 bJy%DQqXmbPI+w˚QBeI|}s ujL3IL gA =TM;*~J ەܿv엲`Ln(߂1l, or}M!tUb׫=SXݜ!”_&d& [s}v$a҃K-YB2➂J -wZ]|);FXwsQv )"cU;٠Q8茜Ī?iet+LZY$EOP)Z=*D.G"a=}b^čLE 0),9ũY1PT䚱 QqXGw Bw[ɣ9,y3nM?}񌧚? N(ֈ}2_tHBsw쩙fGTʞ{ C[#qMI̩`vL{< o-dG۔iZPd$ScǸAT l&+}VXP^-NkMp 16-`==o rBhL&f[%r{dq)uyA"\~O n8_+sXݡR7DyЫ lH$쁎6&[bY$$Foױ-a5:rܽM!R$~9 f{/&uJkް{܀B`^@P0inlw77H&;LKX[+=Ön]J*wWPZxvRZRS_ 㿋8dO^e2J)0G$i#ڬ97J㲥JMw _2@ګ/I@DAXZ4L:#S%eXDj*I-ԩI(Q ȚW\0΅?eEp"?ISIqzFۈ+0Ky u@540/;*Ҟ(%YRDaU{6[,;SVk8rJ5 ~Ꮠ߬edy9ͳFd6%?fs'DYZb j5@pClio &*i)BHO|;)[s:-oޣy}rSkF^rN$5|<u6B;s|2Y./Ebpgifơno3mM?9LtoIWji4}įzEx8!).<^;_{8)Tbw!*;x
9]ijGbtU ĆK.Anq_L{EQܘ +9b_6yV-$FHG6܁z^NcI Ň#3eYlH3+U 9fd Rmb߄Ѡ?qn wP Pn`yq -S˒dBIJ (Bc:`PۍQ-~(W|q`?ExA%N"f` TCS q$ pЇڅ+|etw3-IJW$nQD.8Z/w @+Q%<+ۃ[) V#F7nF/IpݺW0K 5Ma\9 `ljѮ$^u+EJFufwNXsybyEůˈ jOR ipJ>ii ]%Gy.iI \C?K-N7*v弍O6tZ1j̝Q땧jAz{ N5oEÙ<+Tu|̯+L 4M =4h(c*㷽miO%ڮa?_a?aO=v0Ed\(H q憤EB1[&Pg}(㗓zu@! nxΫ'YT slx0m[%® Y}{U =_uUI-Z)WrU240)9KQ+>4P>P%n z2LtlUwjZBstVu:b7GgCsֺ\'Vw F@D'"6WPVfVPk '3:",fÿVJLh8UPw*"uzU#`V^qR% Ϗ֏11<9ZRS]uX\1K9@LwKA4U_N"N*| uj/@Xʀ;}$6}r/DU@l 9/K3k:8ےL8aMA3yc rʞEZ;25pP"nK-znJH6][Z#Xi[NɈ  3ؕ4AA@;SbߧRL*oUZ|z JUDƒ+3!)6H]_gRv.|H`V {/ C"'xAa<]p9Aټz>3QPɘK$2L|fP:TUW?ءogoukAitZs+m = 0&&`v%Dz[eDH7h$||OprNfOmBo")r`]D]$`^UO2lV=kz>e֚->͠`k-j[L`Lw5_/h~['ߎ oCfVu$[uz@xN]]g$iMvj-%F5"̀gV8}; p' nyOEYM7T:"W=^߬<ivQiStwmu`3 @aɉrk8`[]ߗQz {SmUXGx_ m qtvo#D1*;ML6/O ik[CE+2vBU=qF5k{x2 -kz8x^eXդfH$A96޸Gpr'ĬXA *.zĈKml< Ow/!hngG 7Sh76i<Ű{gLQ}<-VzLBAs]t2i^,Ì|P*G?sy4kF&L@G/+7{W4bx^9 nσ kdFZc2+ο`3ۮX { d} S2O\.X ֔GelVCY9>\6yp% Nj,2zRTiGoϥFt#2hpxx(ü9X&m1clui?െĦ?.4p\1% B D"ߢ5nΤֱf EC]l]c~s`ǧd[6~'љ)mB$Fm%ljc|=֗kC,(>PgޢjAt%,yvB29KD)C7X:x@wqzVZL#G^4,?kPekFU 0@Xa3_ƚ4xVuȂdڳ\x}|PU#~skׂUK*e`3PY{ta7˸V'u,!cvF8 n",Wُ65"= bƄC=g~( ATlll1T]B;O!7'gD9xH[_[E[#9τV&>D2>{"^Gaw(dG@XϊJ-}j?8G 4i=p5|^etEZ^1A}1x-_Ā켕4<5sˮnM[Ң/!ijz9n]8 J]̭w[򏧗 n嬾MC@mW<wimj~(8Tq&28yY5T) +5Hd|u6"ąxQn-P_Xe.ElPLězI7p25Z ̸!k]IOnﻷ%^|?d=Hnu|YV'8jo-]#cMߗ'-ݦf>K$z'\S945އGH*!斢CES2QD˓cd!݃m،wg7GJZ,Uע/զZDEI`XkZo,3xxԴ(͖J™/%f &u eBі- ʎe0ZD8̩OtyfbJbsObW/ݛm+)Ҩԅp_'ʪ*Vcm̼#FÛ7ojdg Yl:uYjV)f:!n러jt#Kd`XYrq.i$y,cL=h#ץ/ۙܭڱ`&\:~Ԕ>&wx,牶ΠR0wEl C.QS%oSCoVV 8u%p-+ qXn?~eyXSH-NzL(b|hL4riɷѓ8 L砿 :N kӵ;. xX,'Rٴ-ۯDݑ@ x[E Ѧ^k.9'`oȲ)?YO&uUd `zIaxt&ZshR-.ntŽ8L)fXOWw;N#o ܯp޻v ЩR52nh0WX1'&8W^qm6SAE")ðk'qa$V tw^: [RDhJ}T +93mPȍqC?ktL幁I_ ga>1 8UHUsFs.D{QiArNvH#t4ubɤiw$ 7RHp2p4-Vkb{.A8ιVf 8I!tE#NՆ V&5'%= Mh:-H;ӄFP.Œ)u:Y`TSgsyf?P}~%^$\N}HM^Y܆8iӿܚS;A,?/ I&0gg4uyU(' `mT<6K;k }S!)'J[ƭ`Z%`݄/[8YVmII'+Ct Hl;rDaUdxCeɄh^kIYGB6[Kǖ?Q˧6Ht vBEvzwjEdXQ1.=G׹S@dvdZ.~MݰGPHqg1ՍkK%&+i·,Bwݑi*HehfIa% ԲƪF>\|C[j͂ɱ nD_ԁ=w9Q J]ӸPfw8lG%CRև/02@5Ad-4MڹYO7ƁҖ<2N;[ nsh6&t*ҞfG_(-F桹U @3C$%ѯ ?z OǠ<~,Qdj_ye_r]洮ʚ nF!Ind+Gr8dJhovHiN`.&\b9+&E-FʛP1?nS7Uj\˃Q\)$AqMl}Ds홐_Xy2ظ{˲I?+JNo8ֵRo21c9+`B 鸮Eܱ:ZlH,{ 8@ G礃@\NfݭW"d[pU*=sË g}8V@l|ߪ1Ub*eYpgHjժ3׿[X&ciJ@BZC~o,^#c*/q-FKћ"PuYfd;᾵x&וXL`}x* !4.PL`SɫX˕Clŵq/ Wt;w=`u ==<$#RERZQ#)s/oA E61$"]|kV [1LNݛ$d^"o8Ӓۼ[Sr?$%SӛN%MdGN\r#ߌ!-]j(9l+HbJX3=x=!-zF'_ӚM_ŵ1h b i}ϓF}YO*t9eAeArkHqǟY a ?wI{u?`bnߩ tqmx#UpmIwT'c06"q+'-˿YQ. 7W,Fvk%WWU(?&0r8Z۴N{fRAnW`n=sk<-#iS2;LG4!t_?fe)c0*P6PZ3f 8Ԉ?&NH'rR(rqq2&\;EƢi9cf &ѭ_L$,&k&Tʾ̅ Ҩx5<9 UɺH2߇9KuG8qۯ)*S{ %9%zXfG puʎ|ӯZbQό #'I?VJTMߋT..52Hpt+Cj ǕF+-|bPFvs eRP-y ]7IAME), og,m xS(BqI]+ʦ]=h$O>ʕn%T߬6d0XfgLfWLnهdhDQV\7/~9,^Xx_bdpgoÒaU 4DᤋLVR9H%O2s V3^mh] ybh>qh ͩl<srZ裝(~YtXS'J窝,vɺ'_!8"KJq-4܃egqL$4j.5!{ EUIo6vi] )ޝWm-q/y&kyEyӫ&g*W#Yq3$m܀ WV%94фP\wCPoX2 C~WR5aFK6_% x YEVpګưؒNw׊"06eV dI)A@[ jXjWl>ǽn)VpsUW83yD7sE7xpp+9prs@Y?@)J6b7#/]Z{na˨q?s8|Oq2*bKha-H7 cm;Vhn֦FffbZ,RCmӽCY![vTQ"īRoVg\3}<6wg XhjQ"V|:}dv[:-9S[`΂>= 4MTd+IFLS++oжEx B)GZY}0KI1*~S .F,`v8sS 4m 6U3qV{b6O)|g' cz}plT.T{<_jg1]F8Celܿ]eM}úŪ&>ПX-}DGA?JOnkȃ0/lI^"&%ťqx'Z4"P=הA .>g$; ,<طz3)b0קQ^@IT՜Ϟ s'Ş2ڦ RI7䙔w ~x}}_V)3!" YD8?Ӥ3uQ),7~VHjpa.к?`kِ"nX')ƙԆD{HRi,U4]1etǟmkn VV*N"iz]kps^񐕽]Ym_ItM{q)JKZeApЌ`R9ymdwUai ߹μxڙo^pk@f̾e N;B7Qʎ>zioڨӳ_2]%_&'N2f;FJb"ոz6%]q*qRlr}[K]!qb( na BpPc6&cV͡vDVk&62.px NQ*Kccwkyͳ* &'I $Si)Yͻl D5NAS@7m5|BhQlWבN_ `#pI C$qhڭ4B<C"|onid!>3/l;fBu{вFFq;_+'`G@94f8bZ"W=YcQgZu$lqN4B 10qvC9S7D;=9`e&$4ILqTuI7׺;i%;* qsnck-9)M{,v9/Z7$ vW2*H˥A`eXDxٯXdkcx Hn7n"j&ԏWA@&NlZ;KC'04wףOp杆^&@,;#)C}i7ה2\SṲIf׆b}2$N 5"5"0L ڛw7\b)oʏz'yjI+_s1/EÕzZ1axr*~z)6[D; + ~w@ Ȑ%@ȎI;?jieݶH8h.@H*„0 n ]~ۉ[\:Zڤ|Z"29pn97;(Sy7UY}m)m:@;=E,=,q{L_ٻz61Zb [0 0stLgD8*ˢT|%dOQIr4$RS4.fR 9x mfd\hÜ$GC_xJˮuz 1 ϋ8JAgՋ(bKC뎾 & F؟3 PYc s3_B&%XOjBѲeDuDڻGf+s8ϝ;e-ہkyJj_;~Z0DvP񜠠ypj5Ka>HX%ђLqkj{}aT< 9G urOA^u(e;h#> &yD~ί8a+S5:|yVQyHԉ >ڝ0+@/6E0{!v_>Gc',h9Xugb l!)KH?  -"! 2t)'ܔ(댡i4X {0Aq;TX=lJ\zKA7P $30`? mG~ yN7VD gx ά̎ҭdXtB,$?))m[+,8m)Az~x.1`3e<[]Ze/Anֱ0FŇ8hR~U,ƻ1ye9q͋DׯN-i st"԰EXsnWLD*BD> Pp6A+%i8GR:Mg'X+PXhѡ*Z猔2^v{$]*ʄVx.SܤPy_3}p 5";n +Arڈ*v8Z>aW+e#,U5lnkZ4m$++p $*~|^y<?Rzgu/ϳIH}Y+n8V'>wã$gg o2 ťtpMmtߐ1|bzҦDCdz;A# {*^FEYߺϝ ]1 >4K6|R;e`heýqKehheL+Ka00 cj9n|۽D8!_{Ȫs_tXb`2|KkNvo)Et 8ARh =ݯpG(׋w;)$<MJO,lhSyVV {P3ꖀ3.+xsjZbY6&@+{\Ɏ goZ .N x{0>?$nu5C^/E:H%o\ o+,Be+%ϏЏd-OaS/P$-Ÿ9O s\"P_ML0F. !Xp@3#OϏH1gʓJYسkJ͖7(aջ4!q@b ^)Vh4plu̪}}c;jRzf اUѐqXS;AmMlj.Zmǝ)@P3zBcW^_AxX PzK1`Lij;:])%y/ 211gtXKlDanIu9)u~}efE̖ԢUlciS`-zu,\N=R0HnI?isdAgv|4qȃ>\1/(~+PIL_v 42Kx#6V0UH 7Ky0ZSIhHWub5U6҇C{4 &:T3 *ښo\_܌vwxmxn~G{՟sV FŦWP=IVK[;:zyͿ5>Ns jicooヘ'o6U8H}~`=$ZťU/ݍD?J50R Q1NgZԑ>#a;ENf2H(8VQ+1]!./xGq|L.HiZ98fJC_BO/O[u+:gNRhLՔK0 ^`ZF"q$yKQ(,؆pW+I,d`$nlDOsv%'* u}lݹxW2M?+[E1dC1i\ef" l&-6]-Q-ʶ߻R-Kbo`}=3Sǁf@F! Ix{oǑ9هTA@Uو/ @T~ylxw،= 'ʝ&T]*>7ץܜ׊<2H1df^1)6=1x6CB\ѝG-a,gPN{v[u?=Svf%nnq3''.658y j2 nj !ʍP#4H1yA OzEA0|s V.+!ÿъYeDzh1П\@NRwGԐˢ (%(l 4q>)N887"w!B9Q *;%1+ Z]Yq ,ߧ<Ŝؗb2/]$$:ᄡQOxfBM>ԭkvH(ܑd 4p[\/*Ka35ׯ*_f8 M):\n/XjT؇ kS6T?td1@5/baOŸ 4-ph3y1*aN!/ uF+iV7z0@%HO`QIim-Kh6J (FhR5{؎RsFr wL@>W[pk@ښ*s.>6@ :z}YjNAH de֧GPi~T 1!ZZh q{ve9;k4ΆAzgHT|c_>P M2ց- BAk#\ ">NW_zy L'1$q,IV)pe7~}?a}`ՏxyFLeJ^V|H8R~*_Dc??+z`~wM#f L&,CveYS?QUCԴr$ Qc0l1͇g94UEOjpr7=g5@@@oL~;C{+˝Tkw>H'i\o%NR)|E# 䡜.+rXrbd,R!0 aM KFh r׶EIжl {gNImjJP}\uQ7ԉD 2o@tq(K xOz1xmN5 nw](MqkT 6ɿY5`=٪(1hԋ@}l'@nk4Y&0n>Rg\eX乔`߷4 DI Hby^KzPan eXJ# *Ln/ƴD11Δ#EHFHwegRpXIzRퟘIh>M"o*" yscLG+CL9S^@429NQNi|M|,Gߍ`8q&̛i*} FtLh5ˆ8,x56Mm$΍`2-4֮f!rWRc߱NeYϟ}6(5@uLO \ۑ5dL<,Ꮝx  D9mkgWbr(_.gkh*RrZ` M ,-(>##˄ v;pMwedp:XY(C wBqpRAVPMw;˟ ͸T^RTlՆOE"f9,"4r= )$9W5zK.G~}_0Xѓ ;3P~y(C@4[n\΄Y ֜H-Fd??ZiQ&-ã]rYYBpr^ww(%^&NupnR=up+lث1=)yF7^,rq1ih\A aw V"kYQ0/u;cakjWW-]TC ǻ?Ūm3:^`|3Pa_ lё^ZD2%T^XW$o%]Y.,416cO]ãH HsEO1s#'@e6r=WNV Z1aY^ȎԗFހ2k)){ًl<sޗS:ɗ]zڱ(m 0ϱk*а H?fh4qH/8yn"LRwX_)DŽu,h}aGה1$mX&y1٬;8,l~i?DB8td9Y"x#t5U)y9\28բ%6o"&ٙLr]~TS@u6[{,[Feap&eumڅ~Fؠ0wG:Lc%˃ FݪWFW׶#GboWZ9ɢmidT{_Bgz $o}>bp̼<1$.QA /;تg~Ʋ|"-Ȼ?$m=Byj;M{+$sruKsOROh^w a%یB_PEtfRIl˂Hp> lI zmv׽yR&K0C vSoݕH#]ُ{KTpr*-nzHĝ尿b]Acab^Wۚl+wA4k!pT#F>QNY:a*8<8'u; ԼSpJP2uY@uQvcFOu5;zS '*'fu-*eH*>JPJxF@ c7SuӍ;lFÚRC_ij\TgxV:* ?Qurx\Ȋ6J"EyGo¥ {07i!G \2LL]8<] yyt'`K#En~[ZblN ٷCÁ8H-Ż9XFwzm4t^BD~NoKb>Ha> 쮘f j\ؤ!oB) Oך&*kI%Y/Gd7=AGc9c|3aEm wb഍ږ߄Zڝ }KQuAidt0kx3O_$H|R`7v C y 3:|zcZ6^Qp]&G03„ctH-V@\,5dεtMX<{l2391I ǂ>(MO^b.jFz7AyBvaYa!l5pg(yS-C*边q@Yrh5-,$\XBٟRj@mdݗKB1Z*@j* Wem;DZER翞 SG䛻NCZv2hĉ\3GEzh>(v:I̩H`|G:!3_\``vY-MSԪKruq. =,D?'@fBuQXeÅ iIӤ޲ϘYo[2V+mt#5K֞ 1AA4.3hcNnv[B'+Jڲk og1[;nEQ@NS-^0: \j.oHJlmqaƽV |]:RDÅFZ$bdGS~Uj򊏖%d]| :p:ItQ05h /2H8JQAr2_zo͞.,/`~(Tb,MIWyH~(JE " u"c{Ѿ!c0T&:Cdcne\f4rqcj9=Iy ~>ӌU^X率ql44 kmSaBg;$ w ѭLKDוY䞇rEbQrF)u@6.fнjb>ͪ $ARLݹ4c֏<5&A%Z3 Wc*%9~cM_h3+ǿ:uĀÄ)}b'[)ńWT(,yN5< Z ( ?+0?2&`pS4bAZyX0ze*|n:/&qiufS0aZ6Q:~]jge$ _Fm#$)ViPθT4~ðTBc.@4 #vV}̓HV0u&v.:* |$y w<%<+nɚSQQ0pp%Lnۅ㇪W?!,F/ىL6''7P pB!Ʀ,hʵ mԖu'Lm} dӾhC5n%;?ETv*F%vz?~c7d z3_nzp`kHJ QAe@Uӡ!5q6|bj߶rRFW-f Ih:zGBrhV܁ ܏yP|\)h)yxDd.Lj>J'J1ɴ\u;S>ymoڀ9KB VarK[9\T9.1YoRmkH;^kl`YޥkŨ,wc-7 0 6TkMYw-vK!/?o)'+Oy-^ ά<Ai}{o@O#εyz^2]{OB4tg'ٽ=2=VcKNt7ea<|3F(,Su9Kdii}JW\NT'USݶ\4+xF}etMs8|1lRh` PmfGv[ -g%|%oE*1 5NJQ쓾Dن9d)F5K s9ciM]!x֟*c݌r,=?C6^$&_V>^ JTItd+}Ӯ5ieNvaaܞGћַW} ue:Οz&awk4yjy(u; qBGI_ۢ̾z~o>nmA@[tQ5 oQHG(ʔ y\=A0]s^GddpewH=g_z+^f/5^`O۰ },D3a "ă@FJיyeɒ9*1kD RI?Xp`uh͗cO7 od3 :L{ u_7MU~ xPNiκh> '-3aYRAwC4ƌ -R@\l zU)m~Bv@oHcPDA{lQ4O"*SnVVG<$l_UAQT5dDe2S b $,4y4XUqmSb:-aX0iv=Qw"avO+D#҇ş+lcѣ^TEoPOS Q={p1veMJ۩՗FRTJ,hW]O7#bÌ HڄM& m稜(b() >EuRMd<’(^REC?z/Pߤ[iex~AWa869k/Vf:|EJޒp(օ\.wEjh3M}{EhZ~6XŇ`"P/@sZLk KU`F^uMWpI܈ ک״_u(˗Q}:_E2ñ* Ԃ/lP3bKE(0=C;ڢJƔYI|Һ>RGQD=8B+K }偃&ύbq> z;1Anm<?, l]eRkLf8%~ԅEb2]]@b͘Α0]t3" b AH8NpN! ue N%Gn˵HPj;L+sLT=ٕRDMJHkJwTF!qZxU=rL!rL~ȬfA% \&}hz&nR%yTI_  .ϪP̢|fq?&|tϑM/{jos @m~#>nNK]0LX{Eْ} CIZ'i?BF ]ZX_ɋg<5F?jScx~j\ uyMء}Yi1'SL#c Cg9 ~!Zÿၲ`9%@e'ENN[ A|R;R937[#$hBd܏P8[b|?穈~w-=_ MYX4m%ŏ &:8H2% %lH&F,Gv`OˇYާ3Hr0 >z֔8ҝ똑у讀4h䣰-6ْܹaU9*NrPM,꘳A[Q_N9%8 ,uxF~ok,!Pe9lWO~:]{JPnكgxELF8csQk#ھ$QZ iy1HzѠ/@HY.}qYϠVp4y7$2FJ:P0*UG%wR5!|u)PqK='FKw$1#92~[ e| }tk?0dG_G^c5CS2uefsB'-/W|Q"&٭}^Y>2qP|dQVMrX{JI(f hH$ܶ;xF9Zv4i9XKY#M^h9'R OѬ xn;I+*âl۱PWtW,MkQd?F14];eH_K>f'l,I}6iQGMϪu+$g65rZiq,ۓ*b7MQhb+kX"- ߝҢiOxd3|sHx&WKeiPG{oWDpo H&?> <(0)D+j2/+ "h GG;dOڀ&$6H<q> >vE`gzY*tc%O)0Zifi_ }·.*}G'F2pYMʙ}EՆBZ/x()x5!*8N*pIW?Ja7"އ43)šj=}=8NB_*WGZ&.. ġKlwCUע ު?XGpİ^SNB!Xw~'hmk4ͼ'4;q_t, Ӕ&mFMZi&s^m5 yqԭthSChksdzK<_{1=K# \X{\.7;#)UjGX(Y`}5@4}%@8IB:}Mt+pct~G v/HIf să+s6ŋV;FgZqC!C[Pry6 c4~V#ߟ jЛe3v!kq${`a[<CWb5ЭA,,L9g!DWEji?eQ ϻsL$8*D'6 e3ZN7UOc9~KSܸ)"+q`}?ju̾`Df,Y^*Wg1fx*~k W*5To z9؟G޴i~Qx g֪Lս+LҮQ6JJֺ"yNP A.~Sso\ bALN-HJ/騕$ RXH΋Eevjq*N5_^ j틁6lH{ָ AUtT@ʿ-Շ20h۶AEsYEsy,iHJT'^v{[o.|ugE{-P+e L^t3mIM W}F) Ou'ɷ˗AHdCW+[{!R6=A&vʰsqZ9>ƶ9l*}!m֬76B]^M56/G&AfQHY>e#J|`պ )L3`ᆵ !I/c`BAks:R% 'DTN',}WϠ&lj 2xũ-Е2 Y~`!nViHȁ)ꃍ1(]*;PTCw{5 N ~k ECQw pް`mkZNc[j,`1Nmwj[* B{U`)ar4hAՉN5'h?0 Ù寴d ܶ vLB\UG~QO餖:Ԭ|ku;i1ޏ?̮uÊV-{5 U-⠲ Ku-{'Ú^hxn+Փ_Tnzbg+m5T,ůhS2IV;>mN+0`pTΎwtaW.<?a ɹ{2w22%Zf iq539YTw4yXO [. ݝօ-&^=YQ Qkgq, 5qqJvF=G4X/y,$M@W&U^@A B?+~}:I}"Xx(n3hb2zeZ5Yy(㉡P ʾ+jeIHB1p ԷeN2 mi^ԓ)_ϒ;޴O#x7/ WtFCzoSݣ0lB&gɶEQJvd+4md3eY%s,߄ Q,~r)( R.^VhȰ1a@l hO A,c(#]YYjy[Ϻ&jwE4b#\mzܿyxHV~<֊!SD9OtZ !* c?J/ȡJ`>wt(=yjm"Lj1MG ~9psieDggfœV-. ܕP]?s$1Hxџ+ۉK:)(^'"U4i٘XJvrmHHthH'WY8VE"iL^S,bZK I)]<~efԽZɎALz_8_5\fzE~dIoB2L{꜉T'! =&<A~-1[M2ONT%<ӾX5,݆IٹTPe._?Vt#s+E2+hY^DQ{EWb%$Q.9/KPY$HxeSBA5|H[OiFv7PXZt;ov ])gI1~/i`CMw*&MO8dٽcb}kèQP/Ŧ @ <:YIPXlJ-3&Y#CeB;MM^ \iO4Hqr#P<υ S_EmwH36iiw}W`5WL9TbӅT& qa3 A ު#/n DLA86(RM-XG~2@F{"GըIDf̆+o50GYV_hWհI0aL!uhX]P ֬">Hk:A㎨([Wf}-mG{.c[EѪ·\52&KQ'd%e;ͶD\ qYޑ`;X~񾃶~2sZVJKhavO9y. [CbUEǨ@S42^>mYoA`!b})hRB[2,`mHF ͹r-Fyowѹ\KB+Ӫg!w'֚+O(VF!( ZjKyh% 5ϠU5k ӑf.kb(NbJPX\G9 +W߹¿a7d0UZ.֘3oՕ9T t :$wDle("9[$ZӠ qI+@AT]v+h]\n'R{e{w泩ᜭk*$H22i?//N׎[]Z"LM4^Oy`5CYyI;%ʫ6 jjA]4+ϓT5~ڵr3;X;*$YɇPEo5b 4Chx 9u3y`f$s~2tD^I |D&"V FT8&AN9s԰2N-&y.Kn',cSqGE aRުQԽ${#u.=Gszkq{,XōnⶇG \2bFܼ|jkwLw&'/Cx&C\=}v6rcKAN^f0ϗ̲N6!+|;'L΍G){yFQXd҅ cl]e=pWrZA gCn1w@B'V%Q?_G4LL2O~kuyu(wv(= 9H cobygY.X; f?~O-d"W@En[e/?8IS/-у GB$ NP7J@?NihX\=HRe{aQuS[Cb?sJ'dfu|knчD75:hfhܕ1#5`s-KTQӆ^a g<%l&40w2p]>b,bdFV5&M4Ae/tPWVIb 4<4bxSV!@VMF(OQ+Q%.(~g={bj5Ǖƨde#Ĉ(a*KwRsѣC (p˜-xN}W 1*G'|0M[4{tCn qw<9ovXz\čͷů BI_L91#ѭ:qNBŊ_Z4դ7ʉ6Ra-aC/_X剛"9#_ɼ3=*²u5>L'fv3v7ZKTۄDoP]aU =Χ}unaYq PCums?HT\D;A*D._+u(A3jptrnnQq= nX*df.eŬ$[V|yċGοA.ʑ1):+]{ d]p7>8Om#IQ^@iT>ex0vrP!(7|CkqsѢwhy,V^;!J`;5fKͯt2>eQ̭Xa.=qM1Cmv7f9,3%j&1 Nmhr3R2Ri6U'pH6SKGBw|\u(NJOX81+!9U&,.ǯuE RIf0|0O;oQs+A"G"d"n /1~.;Eft4-Bn~j xbܚ^KA hPUс?2pZJ,ꢠCζz@Ddiq御MOv7!ZqK:lS-](nf]Mp@e*:^ GQzJ&qxyzUmXxeDԽ9Mdmǣ`.b;B:S+JR , =g[H}rm@i@@-v-Th7zhGTr276\&KG}2yУ.mg%;mWorSfgϑ4L/d6D-^+52j9bqؠlC&iaOP O*@֨giܻ^Z~4p3|k7ȭ 7&*%gf ̳ Jn![ïXB|@׻/1I ,,gUT/mgN~'Y)()@+'Xw3c0ad/C1ePl؆Ѐ8$<^Yy^ʑr6 2$MTOilZK^ATu& =>>`x,_9yE~q`_CS0z(fzܵU ^T;bw8psLJ ^|"QEq7c!&<ʞjz%`6`fMy8.v#4>=xh=J=46~|Q84KY](>Q1(@%AI#˓zM&N{S2iUꍖjip_Ǐw2`V?_uu  Gkˏ2DҮ1O omշ sRKHțz/-#.FルϾVvZ&DS*\\zNJaIf~c{YW2,uwW{=ﯼ|Ohq*Klm{9u409iZ4Xs^*?9rYQu窋7KwizYd\j܅ =ɾ=:M|4X|!~߂HV 4KdVJrw6oFmlϪ[#c1~̈́u2#M HϘzbW?cq7B FZN{ڹD~uWҟ/:$yHBuM͑HJ$N ƝBʧ~ߔc:ޟU;,*TD, 4A{ \m0K_grAK 87*V5C x MH!DIo6(1^VVRuZ2 O 0 5}W1%-k*\,]4R?$tQj%o˴YBrLZrղVfv.,bA,"D*=;E\tG spt. ӫ6jXEJn:BM<2BȚzj}$baz6N'TLuc BY7JRƛws9+a,\d PmJR7Wj$>g-wf>=Cpәي"R-0bQ|Q'"HζN妜݂FPGA۝o)Q36doڸ̬xBc/o0ImK !bw[`NWUOX# jo @&qG~s! p0zE Нbj.A׋r$"n/rK i_|Zˏ˟H0U5GxFN2!A:M~=8H\%ޏHXqu Qc:3_>/ӴSS,n[[b]47y d+[j3m RA5dD..y0{}E颶&&0Bg} XџY=RӓzVlL W+Sm G궃';/-QY Ni5RJm㩃O$IwB~>` v_KĠ-#[Zn1GrŘʦrG/_5)x2fCGXjr)FH%e~h0/}C`u .0q_׾EFL:H3\}<%L:9X\<۠Ҧ3/|6d8 O1+G<)cex56俇}t8o9HVWwddI ԛ "ֺcmvr`,yB.S12f\:=i72o`4Fo0:Y,_Yll.?S&Fl')&1 ԞbYv"*7x#k}9?XTPN.a諊2:oQo|fa}e?ߍ6[M!w5>;a2 MRn-xMPTɣlCR( :h;pdY,n}O'(J arڪK Ō.#J>Γr W#lej?MpȻFvTďX>9*~wRCU 굍|<%Kυ<̤+ir4f|)1a)4t[440&ǜd!3' A@VPa%,HhkU?'-~azdRM5s6z"VSd1( ~6f14YcbdGE OJ Țe.hp+S$ Pi֟>K;gͭ2AB<yza8K_pDyV:GP~32?]slS-}=I Zq?F~ӾSp@ sT_)G\+iN}?}ێP͚tKaFbua;JPxӦ+ؔ;ȡp~}敷txΥ&6?A&C8wU ~dJ,[_?P5{ Bmt.7[2IAeB}Hw=3,Ò0XJQNSߛ141eTEy^Q↓)&k1\pA,X퓳5`.q%8A,21@aSG/y,oŏ(<\w . AqH杢l7h@s {Dcl!k-ijI+ gĺ`\jBsmN0y(nja&Eӵ&5}\W Q裘n)uǭ+f{_3@՝uwY {sB:Y2SRlMZsZL\`ȅ!;R*,nx rDcPiq^ncVFGmnP[Gj2iTɺ oM(baC]t 71t{s%V$+%WŌIǧǮƔF=gW0Эv$J˾#[3(`kU 9+|/zP,X9<.L񽞈R+1Ҭ=Nցi5f]J "H[!dz94ɖ<:^>v4XI8^N* .Qb<qϴ`x L㫃ԅr_!*Fm'r`ʻJ0K:g$[f_%Qol#o A+>Z֑tǟQk!XTlVT7Z^ DBC%>'5C@&چWG\f% %-nʒ1HHsT.s򳜠0lm{cu/O(>(y)luMթb{ &ewp*;#E ;uS`ddɲ $ߕ*]/])ӧcCT'N qtvV%'58q߯7:%mnroOU}DZjۼDsk^-d[^J!K ֻS!R.% ⣄?D"`-Y܁B>6%w [T6Cҵr|b|fvDJck| M$ռ]XT7$,>foSʅ$;Cer9#) Sj-P`u-H)~@k >iʖHy@ۓSpN"rs?r?)9%~ '- :TBqd AE20Z!=+Q cRTc4` Sx><&c )W"Ȁ}.W)ō3p7E+5ڞb3_\nVd &ї z,oCÂuFivJd߇c sC%PdYb⟲dsyn[=`ZWSPaR`wU~z|d3^ qh2*[KpFJ6ފmXGm[Bc[ edE=Lo"wMN3#(сz x[ 85b@H(HV< gN4hMގ&Gw\Ҟ\ z$mv6V/w䄖8 6V}F@+\_*6L px@RKƪAUVwL Ko0'C`2!b؂B .BEz]d*su3gUŊ bRI'I !*`"@Ɇ;?kZa4gE<6d68K6bMO8VJ^ CMT.HSJ C c"-Ĩp&;-b+5UioUɦ:NwHQBsC*yrr {*$[^)öթr1ir^ձZc).";2ԉw|"csdE }~ȵN=д cԗDG7(;,j鸺FVa\JRf+z_Ug#xUi+6+ߊ溂H:vvt.V: Tש~u L̰% ۨBJ.u*:R/C4hWm !{8ZmXx^j@A9bZ-}zN}?eȳA~SV z0^A~NӜlZ(F 3RuEQZ6]5/M( e7[9/7lL~UL*|TN${c.i4Q۾kt}Ki-xlV[ZCM9֥a}cKͪ:Lť/=]7*ʒ]v!: <йB `aTU?V1YGӾoNߞ\ JOTfhSsKYYS[2 P~meQ1KCY y";لq(/, `z^@^ȏE>1ЅyMQrU*4#LYB dIGX}[BJSv%de+SFbMLi*B?i~@[([:&< C0r+ @R)qIc\5kJ >B&Ċ3\pyG7օ~yx 旜t#iC?ЏiO\]y2| *OP[^8ɴ&Hא6G51ǀs&DGggr {VTSJ-#p 6 PaTlބ*k8fsX*eqfru荎uUjKY3:k$􀭂R co#cQǍaz%g‚?KBAg'ndJ,݇(qlQϟwXtG;PĪ QkQ~gά˛(2dpbF|VYY:|l fXNiP(qݣ$Qbus~JeEa Qń²jv &HM&e5qbe.l|):T޼0_cP::y0Gbiw*xy_+n;wBJI9y eeGY,yXb7 Jͷq>k7k1vkqE1MDrnVC,qyRԜR qУ~ *3P^a3q24qm+x:ۤ aQrig'-W.I/WudmkI}mY=d9kџ iΓ[,ϿJ#L1Ug&Iو?\8 Z[.:MJ>,}NA}-Lur48ej 2W#]Ntazd=2rH!+ 1?&w^m>Y2˃3OX^U醾ֱ8W;EnʌʅZRYӬ(cueyeJ-UD gz8a#xjJb̝{.fjDF(i3l'61 ,~p&}-'ghML<|}%3<1 ?v1HPoiQ7g)Zֈ_P/lYOW?~Vt6ڙ2s^,'+th&Xاs3Lg¢\!8+,}ۀh&_q?lrVߤ( 5A=':48oTM"j_{kD፸UF@ 骡jD0BBFyI(Zߢh}3Nfe: 7*N y-B׻oBGiXv#͠܃ܰ",!k6gNY/9sX.`DnBM3Tk4 oٮ%vs(Y :UOcAm UAȐ?T}؃2Eb.!4J 'If 8_L`V/@.d"9:hhN1J]Pzlq kIg?(['ݮuZ5Fa='!![jTvU' c^Sëꄟ|pj vFPH|`Ǔ+POsPDYo *mMA름SY NB&MBXC\ul0*3$bp,BV6\*EaY\0ڗ%S!D{[qu$!7tYF `a]Z; ^zɕln۫ a#GV( & Pĭ;}]0GZZۊdΠ}ۍ΄KTYcFԂa=bf$ D&|l8NUDx5a U44vn$f kIxqdc!ܟ~ n#I0Cx0 ~Y O$T(ӬR)aRKKȜCkuG7+[IҢf2 ׍Tn)ٳVۆ%snu^Q ctShV5KE]0 cQd<+>uS[uu~_?٪TBy/SW$G86ϤSԗ!#ݛM BR.w952sjx==2Pd3BWۢn H*\f@pezc-E*s+ &osߕOZ^Rzˀ=o-Y|%F2ǥAFpQR:1lF)nyw- k+~8A@T |5HwDNQ*vS\*<|B_ZB&YJmٿ (ӗ0;xSKrs&u T)@!?K]:O.F%ŹQXŸ>>4]1?P\dr܏64~0Zbi Ty\9ъ|0r-"%ZZt&7^=C;&87?/%v{ 0v>A"X'7-HfkTETD Y!U9SlU+K6X~2V{vh,2bBkxmv5TL}F/X fqBy̍T獀 U2eoD`9&E>UxAbc3m(",W"og ,-.ʘsqd{@Zv[Vݢ7Xϩ+:&B掘@kfh;Tz;^e23lU:Mтnܝk{)׻ Lkt)CU K3‰+-F-G 1`WDK14Ӷ9E՝5mp5=#Δ;VsƞڐXmW +cNE&QJ2in_!n]gc;*ےaNIS60Ů&JP\p$#P!f\u al}s#K a_@%?ɶP6XXF$ !7_uL"l xM b*;]zP}g$ ދG!|ˍ](D>~%)TvCģly̟~pw5n5LϲSJg.HpW//ggA.56,p'1:.뽥A` ʫ7m/J! m`ہe-p і@$)ok5⴫[tFz6k\SY-^'OF+ۜPC&4eqb{~ 5uдS[ȳ$wA&OU׏{Q/}CC/ 2DCkc H[do~I#-nI%me 6kKm{8(tj}K=kv3 8Q, dGy&;7 ^涥{8K{ +ƔyBsr9GbY4f@K#6rԞ/E*]c|ėhԑF'hn]Q(T|1Ֆ-q B* p6..0aid뿇9ef堶!z#B”fH2]Xq+}rlOr"t6؟T}J Y(Gl UD]}94|Zo.O!VOzF@Dtm22%e8"VRY4~y"T{t GSmlBZ8q~sOKnC 0&:_'`.~mIyR02D;8!W !RvªJ֓7I16fd]!_~YI`CLVdZpU"*?h#_kNz2Nk^(Rn"ZWjRrY^yMG\Yyy~FjsT6 ڋ\ P4T(?TJz+z)=305ATt?B\P]Z׶`efx^q @l]l'B[rΊ6y`.}ID"!Nu̿ڿ0gp A͔s:@k I;%A4dZr'5[ɵgLսxH/P>OPʷ -81-Vv)tI[7c@6D:8DJKMWE_Ebhghݿ8@dh Ʉy" hH%8gv-J:%U0O` ˦J.E|a:$"chT,GŽSܠIU RQ智4XCEZ[Ns|kސ{',$D=C%Xa&_hz~]R w펗, 6:'ʔ!Q`7fvT2(W+)HLdMнO FiZ8_˼ K)]gI/mFW^V2Zk2f봑[| K'(Dl"ML~.)#yl%}= 1%ӦTTVz&(!'woŗk"`kd-v]ğcN~s.hFOĀsؒ_`n\:%'Afp4s0=.{U$=?*~{4B%EI/20"V_ 1ٜna(+XI~@ ?ڪeGͤqaAty~C*JXVAvGhׅ ASzz?:^_ ckJ ˶h;V44hM攁{ߔF#1jƗiuyh ; }E#%x kbu`ô͘ eL^LCUh,_It0vVM&)B~qhHV Z=_9`Re_\ĸf1iꈷcgvUhdN.;5I`"v̱8.yr<)htKy!@;9s=D3"z[۷zS8V4:ŵb8׷z8c=3BnAg49wy; 2C6)`6PfC:XsP?G͹;sKZ"zVeӪYNI,wܪ!R{{lO2DS_Q&rV/cT6A8=ۃsƆ:: l NH zB A{$WinS,]׈Z&7&"ZV,K6My!|3BlI(p5^чJK*ͭG͙ (gKm$8<?~DžG7oIyF0句]qh42XzMPnO燬l|Z`l'u|v{pÞ =6u @ *vD ;c/EP) "f-uk ҪDXC&Ģ 1$R%{=i(yQix'ro@ahaBhBHکbv▖f*aygk>Y1sWKj#֝7Tkb۳fhN0x>"qt^7inw^|>DŎ@/2€y`DB(C'ZkQЪ*]1FB {rTkB,I\)Vf_s陪ܱ11:.]1ic|9ܳGΨ7]\7:,O$]Tjz G&jg3-:LJ1܏,ΞdE~J7h*1DRg}1挪]تJt4q(,Y]#6J7RB5]40{Efσ~HDO8B:u$CBp^- *Vca.C } rng"2 [W=e[Wk?{}U|U &AVT:b $&m1>$|*DjiB/2ʢv\C89epeʨ`ƈڨ20e\l@WTDF\*[~qAOJ5*P LxkA*Kf0(:?M$.(0'2B 68bz|iXɟ2_d<|Tf]('*0K~ٻ`x%M`de|DjNڱ9@n#4O-PxkD;~j̕X[ 1.[̫ka-FM,#!Wc怍rC̔#o7S1QLP+zKl!iF%av_)Iz0y[SlSĊBA}Mɴ3Y T')>zF|#4%!1K zz&jҁUuk 'yJu3g7 ^H%#QzԔ^b1p`!B>U '#V%r Zr7-N^Ӎ_`)˩z_iا|Ui6k z4D`qo'Yhk[)4,P;v/cUoyio~tZ-I6 ,I~tDɽ N9y/i/8ոlm4$|EW/D;i)Q?Hqi J`?'7ř/XFp#+v4\[J@ԔtSbl\ qAi^_0@3Ȩg> |Yi̢vMC}>+RK,*)9kш޽1ąn_aLu36r7!'4MtD3Pv/J_Q7~Oj24Hh~XCiujw~@3\Hk= 9T: ċŷ%(chMDzr$c>#Hy]8\ߞBW(c0;z*<7m;|S%g@8rQ$xQ(w>F EHT)'Nv-?9z0y 8=aG|>ND].\L0? =߸lJ&81Pn[ 3ѮǗ5z6GƵ/CNW)°@ (zxlٚtpVyQ]Dr4uWܙ7Q*K9+篟r϶|w& ླJi4_5\?]I%-EJVFNť|خ ŊQ`ZR2V(%FLuY9ũ", tt IljQH5i Zh\_EqC'@`0bE`y> 1NyCA[6YXR?Trjsk0(_ղUTT4%-1X3~\2hA0)il qJ:VɱF5sj,Yb@io4ӱZ`03A֡k7~Fһ2?skV3\+@]OXDyd=/*S4<[BE RF| ,sil Oc/rکk5o dJEg !> ]-3wV Nf5T*Fb(!,0;W C)Wx.(@~VNy/JUj,a\%VFHFU1!$mҴq}\D4t|m^]6sY|'PӬm]B3R E=89"*q 2q#((7ܖ_i\V@&wMHvzUz!= +\g>qb[Zږ5y?8L{` j`υ]"loޑ*=≯̤V+CU5ְ./^8u0A?AXScwM]2 q;orvUufF8PɆϒlrQyyUL|;>#+ӵ"7ɝT{9bú]-\]K& e_{7`vNSv:O8͠价0&ssXsn( Dg鬫0u=_Rti e`]^83M:QuM!F^ Xe{ES+_owJu3M |0o&Wr 7;mR-h|jcȟc$Bz;չ0N m6j0?el,R ġ3ܞIb|E$.@Q} HzdMer KC"o0ȵ RslR:@{a: cG[k5ə4^~lraF>G{yوQs,%)wNwI_,iz]N^sa]* K5Aj}㽤7g<%N_:ju nRykͱ^(+X8utcFW0L |=i`~) )m\CgT;tYLNg7ݖ%)3Xq.WrZ:v5j؛ ,i"pwT&vtb u]C(%-ZR&kX&4O_3̲CN.u[FYl~b+!vjj L|XO?btBimvq৥uHbzZ%{4?!\;X=A }uǣ @u u"[$;-#zU3eV|K B$Tz~9eDjVw{Dp5 9CfIFlLu"4.6.ywY{|{y욁[; wn" ^>_^M;A%~"q$7|=q^B9/^r1KH{\1CФ[F6C׫T.x&ʻQhEQlI31^nyKW#D']Q ~?N3N" s^F_'0KTUz/kV9JR 813B86E]⍷?s@9v@IXd;0Pof'٫:) z?;%Gl )ng,grxwແbWrO(\Ck׌J=\>@(C'IHEyXPy&C۰S:E1t<(K wJHyUK)܌xĢ Z%'[PLŠ%1bu r5a7/9%)ă'# sC RUTPy9+&dE(aw#6xPD _4~9Uo]nt^X<@d:dw/TGTl&kb;-gC5ŋ:]V\s%K@k뚳kLzx Wk~5D- _ >{&FE0&BF LfD-0V׽+@QR"8s4aׅߢ5̶u&V=̿avY&Qe̙ȚH%becn=6}<+>]c߮лkS8WCcp E^vv*͡}E$_qY {ߨD]:5}LT7>\-ۻݾѺ22ZL}m_O=B5teYd?=d|/@n*H ,Fgc_0g~#RN{l ny HYԽ<#;1XWHpxS_*Zt&QYZj Bwh.ͺwqY1^O1&'*egZjgc_OmkZR7Du:|wۤҩm`³Bd~$s`(r>QESe{hMܥuNʔ,C5Aq$#f]Kn-RMD@og)_V^-743 N1kga:fd?Q "6V [Rn>-h0gqk1a!$8N?tF7qWUmjV;bP V--ZIXI/bcYW~e&lH*'o'ΚֶcWp.N\y&Gc!嫱aZnXu|ߪd.Ex$:sɖzo@ï0{` ahr>v] P^Kx>N^ J*K[mՙ" R|Z nߦx}Q2G-M](Hm^ k~-? ~zdMi+4JISƌ{"uI)72ЭTFwB.8UòВvж&Haޏ&g[^adH*B6W"Oz}ϟkăJWF-w:\'O &+YRq! d"îRydS2Q~3'~ZP˱n0*DxLRCEb`<rpDE~j('$x@URbDv#\~BHQ@h'%uI|`3k镮J|H&RlTs~؆4EF;얢x3VQYM- G%{9%l($K#!@bמcOvBppܨZ3㴗I)u a=֐28=/}85Jm=^1=ɒ:oC!«+>Rr#0*e<ށ h KR,_~sqi7q7w=7F.h~kivgUx`|Xqb3|$Z,TM\ _~ѦI߹E*$4ѓ\RpxCzuA DhB6V=yۗ^.2SAp#ܖE é_RbnKroWxGSzp6e-Q#4Qd>T tm\݄ɖ *, 1 LrO3 G#Uw'Pe_Eywg*[*^f%zx%<U}J`պg5χx?5R-Ro8Aeȃ_oeqDU1vsݤWOОaEYp#G>+|{+z/( V/?N.f~W jƣg*UŰhE6KY₢f4PYc7G6!)c-aOZ\Y(P:odzeKp&Xޢ4`Z<IU4IB(e^ H yWsTo8(QM*RTe)~U.`iu֏^E;fTXa;Ƙłǀͪ i{yFƯik.!]͹FAy`P<;HX[DOY`fS(vCf¼.wnJ56=Z`!q+Ņ42BFn"ɹ犎tz?.iw8 ̍ dMU2 (A%xI86vz:|Q{Ȃ\ &yUc=GKN$w]ϱ&IQenpwQ+NͦkqԭG&>%@cXC;ij *-=`˷RG$0B+XfMޱP:iB'Pnfj ݭ"П\ӹdFt$Sgdžhmdap(z4O<{Y\묙 2>L6@*LrCzV/p,qE;7.Da4wQs\ԛ~"ϓgt^ 8ܤaR;+* o9(e4RXQ1MoK1DzW?qZ}jv_8ҳ8Aye|;m&?3LS41 Gٶ)MRS-DÈX &Whz "^~i],ⷨ|25&V/dGWQ]fRF cba)D$GnX{nc਼>#Nc%D` TUUR]i1i)p~%_# ('U0ZYFn88/L!KҲ[i}?KL)if nG`xTh'B !MX#F&G $m-6ĝ~x0K}h],AFH)30#DwY8lXSDiKGy7EbѴH0K 圛.E>g׻BW0cZK)M.GptVRNT嗊/[ݴ8zPT@@]Rl9OiSɜ?!yXG<vz̙z; 6«S s=W;o )M@D/x Kn*z'g~s)_n#%abGPԹ8"=XZ:v*~\?:apq8]]ϊмA )NCVܪzIPo͚ĬWDഅD vu]UЂ'sC{Z= 1Z:5.qwK77r&6#yF &)cƹO[)hq@7 qkaTDkf el[{.Wg>NyMeg/Ao&;5PSNp%="n!&X]~ _02{ГuV=7}yrU׿_~5OҒ-~`@5Z$u!Ż{lLG~Z%!1'viB$`7_bN~`e4ѸdX,@z۽PmWh6Ot/GIe Н G4VpJ-q6CD/0S(k\K|k%o%o AR0R\pUxlwQFJnEJf~fee  |4ITU{lITr >*w3w&ۚ;Jgy5pun)֦ c: h>f;G`vPoFRa4*V"bmHlX:j몟`˰9"'x(Pyտs^8h s^q> 3 c@ώ#Ϊ~hm>;#D/8OpqfNٟ7 h3!tav+UWI[, dK(ѡGղx]05,V.gH2Jfj[U޷ p >ͱh  S2j.]ͻS͟iASA+s9j꽂pE>vwj{5Jܡx *~^Tc*PRX#&Ů!6VTĊԠgkp-_鬝]; 5k6+[g " ?=CO2A۬Y` K7EˌLքJýZNP3ɲ0nd3ULƿ7\_Vgt޿ z { |6]ymBO8GuE]-PE La\Ŀv6X!j6^ܮۋkTkR{ men|" gFlQCaK:wO9{! DL#2Gk? uWӀnS$AUWFG@ adcs$:N`/P5Ħ 8r;2uGRʚs7mf\Ԭxy\:HY#>q ܗГ!F24aA ~[ԙpcr X%gj:whH0$RxS֦y =9*Hc]\iKDBNPqErF}&I#ѐbxbPgelj|mz+Hl?/{y01Z*-mnڛWAr^&J-ز{|KSKJKZfAcBK#8:wmZu[=78_c0@hI $V]@X6E;[M\#hoSHM\[cUыkU'ޝF*aA>֚BgW$ n qXJ8_q-Yrv8ߞwZ/1oj[QTVwb؍6C@Nyb,ZsPi^rw`6:I{|wc!Q:덂O + ~;{HPUI Z"uINA)Un&)%6O٦sʦboPWn³,ws ?=ϙ&dOk,r8_^kg{˔I4N1'"_X| ށy*s;6V%YL]dJڄ#̘yF}tZ2U\c_]kpv^cF(Ϸ7 좧?^?_$<!iu}-0_r6`vy͎⟿zCuq+vpObהDha<5Ეy\4ojz ꧈rKBL7#th&%ThBdzs#sJIZ/XcMiPmL . )vYSp/^TZBy8[m\)@|MHTY&=y4-&mpr)4WpJ3`pD)g56|Y꟭ V٣[5I_[`;m';lG'!Q"{5Hͩ~Tn\͔L!b:`D[g1:bd3 ޓo&=6ۣm ΧR6qsZGؗ Bc%".fk~t1sH "4!r~`͘&/^X}V%C4(M(ZK00O&?.)WkבLZJtƟ䒺LF ZbRP^(B[nCZuC(v>jG38 uPi@ϻbfq˥dҼ/fU[PH,T4zβ6g??x B\U>U~,cq! C'_paث]`M zOC*du9AbxF3PXY)Xaݵ>G*f^,zsf"*E'=R/R9K[[\*GMK61 1/,EWٝO}uz,T;by_نNC0xsX]z$ }L##VpHkDY㸧iSAQ͒[93 "Αd. G#ITj_[VQKE~w 7!_JdQ[B->~O AHI@$>£Jȅ_S'ɟfO7i5g w׸P D+1V ;|fR26gMmy^ġ< !n[3EbRf 2ߗtڑ׷gCB}lCŢA;M[Y@Te=%qՏ2 9!60\$_A%a.oUUxgs7({vS XjvZ Ƴ<}O,9ӼZUr4:8y8iTIxY+e7ny*".jC$os{Y'e^ 黯_޻) X_S- ̱#WE nxz ':Ĺc "ꁃB| '#lJ^݀]8DZ2S \3XjZh-lA_sjĚaz6qhxN*A#K:0R&q\vRَq4G"&S<5 ,٭1#7AWFF{&t]T+ 4,RҔ\Koy۳[\S͚ҁ[XKY;Pͽ8g^f oF['w8M&c;#$L xlü\2@miF6,YF}0ҫ/<\A B0B\r2IsdNmY`>ަҰ0z뛳W<Mki4S4bY7&(=eʑt6-?|!M2(tW.qV0sA6uQs~OLQkS}8JQZF,l7sLK- ? %wX׻Oq8r2Ť-JHǾ?J3Oޏ$m| &% J I}lgbAO `]8hc-qS1EQ۔呂Ƈ$iYZUzihg(W^qJ גއG9Uw2UQNo*k[~\[fT_Sc0w,L0{!zYj>n7wЦ~[},^lsIz_$Ld_Wَl't`TŶe }h`5F6٘Hkt>:%|bH)֟RK 5~6R\>MmY0AIej+\@@AڻzdtIHӚUT0"*~c?*8(H: QQ p)s^*rq{;aI+H;NVZ7e+7b_xM6/}#h'94 DSӖ8S-JpU,n~ ('x/_H?B%_էӼêW7z6XVZDEU]-b !_Ht?5 XPD,0/&P-3TѿrN#> ֈ pYY%e@|{e Buc`W*>gĜf+/, ֶi @Qn~{1/VOiq!}2hG2S=he6WӑtwY)voO*GZ3} w5xtBuO&Gvݲ` k%6Ej(~cS ixt7҆Xy`NR]mo-;I[eH蹎/a<1WpU55Q0Ȗ$Pga=DNh3Ox^3!#hQ%@8ˋ?𓩙sJԌonF+Z@YYPg8C{P3yR7jm-}[Ⱥ)\뵴b0 sncȺ, zn9ǥKCYH}xm ;@ۉ; le< pgm) %닩x ꃚuU+@N[+hUH __c&0.Lg5bl`Eޗ(4WѩI6AֻۖAB4u3vGX*<{q`FSknɠ`IVsYrKB3VzH(:͐)8/05{SZ%Dseㄻ|MEuR'`׆I7KLfr2" L@8 /'Ibf8Dٟ7"Rg,SGl)#O/$ nKq{V?=8H\5lwbyΪL^wbP်HxA>A;|1!cmgIn(G3h,@Z!w P OnJLW̔ u@M?]M\\.js%\q{^e :3Nr}b4C"$yk\xH zpAg)L:o@AAHEwO?.~Yʺf ^jP]?[/*$!m6*a ܦH>}.`vHL<ܭ Gжհ% 7# I]>[4-NS3!Ӊ rj1}cPcK sFd~*ilXA{rZ٘e .K]=ctѓrtt0{q3g Y~X,YceCSd> '03h,3.o 5m,yDIgl•ҽ[Y]U|,ΨE.?B%e7:;V3ɡ;[^i3%2&EpOxT[9:A62-gG|Û?<#ۙFdܳ,7VhRgr G!(a泌˫^a8}|ykqLhH@ڞPARzh}IurM4Kt6fgPk&HF\%>ZMk} ^OlqXڦdv&[% hϙ kk/#1şJ(6֯U0 4ȌȊ8D#Ӡsm JmP+J$Ћ(ذry8rAXQVr V@,SZG|("{kr$hvYTY۷Hqy]7.L,T`b1݅oߙߥJ|ypȠNHNd}HF#as@7L]<H3钵t$BsQzG>ܙA@|𧻓c Th S'9΁jh>:xZ1(;[8MAVyb<$Y+ 33pzP`U SiւvC4iFJ#Bo pGqOh/<>3{o!cJ1 ~M*!2a\ RGL΢9^{EMd~Z`<wM*&tG^|a&'!d/뛂XL:O!-SX~g9 $9JSLW:3J>1O}~JFE_~$[[=A1|d{mƜ_y1Ѹ.C!aΖz势"ҽO>c^ uw?V9Ʊ:?6@bQ݁;d|ƪ lrQ^^`ksl'__N:bg?nG5Tv?b+{5 <`#Ni-H: w]W?甅A8"!V]LCmK-wn6h,6<1=vu ʊO *-[A>ύW`IFF8qqLzO C)64¹n$FLT:Y…dtYWDdՋ\]{|D3ӟh jc 1'Iwa8 Knү%DߞÕazZz[qQT-梼dpbw>VId@OڤG<%38:}ӓ±?m D.N8F' 4M PJN#Z}oI-R}irU9iE sk /-28~qo|Ue锐3MYZ&8 c;2yZQ]~6 1ͥ ˆ N*`ɺk}'KT}6/`$4"|?F$Х^eR+p՝/Ki" p<ɼ kt^At@ƨkAf->̲A״kJJ "-z*.*X%4bħf S&clytb#HQӢ%2m mMۉZn&,0P*tZl Srt@JͱG+ })2-WdȪ1{%hbLkex`q'J[ѥ>ꙸs8]כXC*>57HoƊ$4 [ܢNR@]7=o{yfSPDhC$0y87Q^uOT\pwvƂeSWWDH@-!+ص@g9dRh.cTg03lΕ=ȯ6 6ͩRAs#cFMT[AC_{C,&#t~Rǎ,wk:R{| !ذ-s^c)Q\ kLp%R0d@81wwR=,9)*eJ%svmXL*Ց˺[J]ņ Vo̗fۺ9شcQ]D )G9 %RDֹBJ>(EA"CË]kkc'-5DaLXsNAsս8Fr"EI\^,؁Q_Uӱ:ELJ#=Dp]jSJ?i-}&tߢw _um818 QOK|Ś$i_,(V5Hh0"oa juDyLo>|A{ !]~9Ի&W[4Rv{ׄF0 Lg\^|5 9?JV3'~߱|+B´k#OvᜆMwtu\ '6v5pG,P@inUD(+?^^cp_Fē빳;lG'(BxV hԅi _ӬGd<ޭٙc6 Ư݃Rn+[VȤ% `@e$ /l}#已ݏ?+k ڎrmtvӕècA*?_qrap/ׇhwE^ݦɬ뛓&^Fhտ zֻvKgz.oӺ '(52b$)Ƒ+#֗ŀ$?'=4^{lU<)c dyD.sʪذY)АnS0nC%\PSw&('S=1qF\: 1TW=F|'\ Kť/7]:.ެӍ",\IFjRh'.b `M4A<tjX1<F0; tUK>!/J(ô IJZpef:#ph_qk/cO׷ǔ0gr'lyR9(u8p7-j&A-Xaw;>ç>eWfn !HhZ|GϏLv~b5|`D|=ݸ% =TCgade6EKI}*5_5<&yoϱDfK?dI>sMxElĸ=v^?EK =#nud;/+;vAЩ  w4~۰1J=6TNl`P3%rQΆC\co)w&} DUD$$sThHÄj^N '>>vv>:AWC{ukLt 02R4] z/p!@j|Q7p{Q)P!t95/OաFWX܇!WI/8r|ڷU̴jNt'Dxz~ƆV=?3 |^Wmj/rygN% &|kq%/ jmoy ۩PǃLܸT%@Df澮M8f9|ťdI~4OնCm<+`͟Xw`YZRx 2> 7T < Q>,;|)6w~k:׼y ;pud!vpYFb }&Ljv(#s87V1 zM1 9-Kqc u+3 bP$y1m6$ݤ3ے@+\m߈܉x`ޜ,9kZ9.CS˥< ;'E+tV9TĨ3k $F nӀSuQkzCfJ/<a^4[nEPry }plل$k~V A9pyia}`Fcܩ>ҠIIt*lLgۉA )Ջe' .?2Qm|0sPT["1QnM|93CI0Vkp$%ĝ(ExX(1^_DJR;xrL@>4T!+kRo\ldmNf Uk\v MX:q% C{#]ͮ衐jA͒>=1 yݒE_j>:3s0Twwi1 u_aDe^/9Jj-95aTXcʡVE*&F?# _42z8lsРB/*+L7~妴2R]>pbb5m>Fhf!7<AK~i>K6 L4bbТ}˜B@TUa"%5Ylxz8a 9Le+ӗ8x)2:m7q¤恥@bTƧ%o)0t.oH P㴬B4.lMJ1GCHJڰ v?cx>!T\m%POxo$g_-ñ#DǟNJ.}^ g zh]Z0Ɨ : x^G= 1 g4dEvzGlNx-$"LP8&L>uUߔ3 eNϺž |yt'J_umRL=mX0vPWja}IhmfqC ilk6GKď ''9!*#RO(~v1tWO'eMLy]&Ljc[?%N.N)\.rPnQ=?h1j\־26 ET oN;mڴ*Q LS Lx~DyOÑVL ^])&L\δ$$P}uNR~kqM>~_I't?3zJ7ݓT]8DaDxKH"&+?1s 5ē%aUV$j]y KoeL9aE8PdM4 lM: ݰ9 Jbw] z|ُT_d6/ ܽAm&iWBuo;{k3!s?jTwM–7K6J -~y eJTE4fjIõӄ'd Pe2n-T<$G6Zӆ۽@RZkTx115oښuU99'r \ohg.~U` YB{DĦ |fծA{+.z2(*+oı* yvЀzN9CbВCꋦ;PR!.$bF?Fp wFbxy&(Ž81OGx.9HrŤnbºnS(;ZqaԚEQpڠ͂ILCWaip|pbY]b= ׾E9\"!Q$Oz֙X+*'9V=V,F!"3dM@oQ{^Md2yD}'$+ /a&c7C 3dmӌB)=sziRn 5uEF~/F?㟬 _̈́Q-qzo9`LO~J*Eլni6R-sURvXPv*yC9^קw+KF#(\z74xj֐=?JVaIٹA=A [ x6to3vƯԜ- q*Mr|?1Y\0?1/z% PRlWGr`>0dwT%Hd:Μs5F]Bf]zt^9}}Zy앪9'W2s[Sٗ*7Hr=!1;!sA-g;@!oM03}21}BM&P@6 D?`;R2PQÄHy W9Wu1s lVnb& oO";Bs<>4oͺ<}=,^e:VSiv^OlDd A[Oq-O'ӡ_?o;[7`Ýh䅖M;rORԕcr@X׀]9ٚgxJF˟׾ |Ec7rDbT$ZAEB= yOڳ[5<]l~v^跽 D^%Q?  raaw׵d| (vp-3c]s#3ʚn`= qtszcƀ^"UWEτ܊},3] .]&Gk=Z<  2Ɇ1dg,ݔ3/ C#"{Fd\RπP H02a oo?һ~̛ 5V}rO{G8Ӱ]%>z]h$/+BA &jsŤ1q{bC^D-@]tdIln6 0~PBP0x` @.;$F~ S[gm ʉDtxCr`?NM>SOthOImGbAjɞLxzhjpNZ.p؏_:0EOKPF}:>f}DM~?@Aopk6{ otj(Uģ~;>%`gV/#=T?8!plƚRQf_kѝf5ud,;7%~g̯E$E5AngݠUdE {i>1RyzFhz@pr`'=YEB 7ǿh"0vk|?C_Qn)3Wٟp>eTExX"n_uFVh&C,Ahl@0g=4U~@.z.jA 8/ _iNz qM1A)dfm,ǾZ=)da9i-ϙ!DNoA3{ZVW"#&ZW<,cմ5O;i*PAtkՋŌ猝pLl2"Պ^. ׀5Iz )x.$RؘͺO=[D5Kٻ01it0P&*Q3?} ȕ=-rYs{R}_;f.لZ17[ei8qZh(/$j(.R<jLt= A ⛰ N҅oL\_Y. 55W ji ЖRFwn]6| RRstjO5|KB036ԂVo$\$`(p΅jĭçz_]T+z3nvӴE˺ci'$#enG4ve_ YGIawW$fajtwS1i?]ͳr6jkvu\F֨8P-}|6̱9\ p~WvOd*h+mClA}8q+׀7mzW%;CkAYO\; T3v| :L x׊:Slت?CaĿ}h eV$'G?md>b!Nu.]qǂOF%O_/b>P}W#i͍ Vg`]%j>Ab(64KxkQ؊$5MK1?ݪ-4+똖LZ/48ak)lfwaPE1F.P[C4SYҞr+lj` 3OZXƱKQ!ؿw.fcKyW͘; c_>E!8~tHޖ20ko3 M!րftژK[ab ģP'NNDYˤ2Y%Sk2<R*"Ё e=,Q޽'(ĝ-ǝ~X/81gǏ5M Lu3u4<0l* _Q˫b v6-x|;G}*vniH3N.r>R9mx:}$@j!G svkd [eFgT8`,uG)"%>xxJPkUm D \qNtpBbj*%>4.<_&61ƈнw 8{Ҏ%ή6 :7JՄAvx oK:8!cAdm7ַ(\-j Y!8'|, r RH.쎇2dK,Q@1{ߖ ~H@zOTN]1"UJl4t5J@> !5߷ǢN ) _,dg# g3<rn|Si:l( sd/偒٩Bu =T%KՁs}9OZUa6?Ɖ9DvwI(w Az=XD R.]'X8Wa,͸@[ u}z&g`'VM7!!lP]|n6N %AQG{pEav@Gm5y2ή~8vO@>AQ{`P͐ ҭ϶U4O!;!Aخ-4o:/ϧ3S kz˒nX:BkH|S:Ҟ')zR#dEM!Ղi@?7J,C* afSs%rGU&S ?T\h8Fh8z6 ,roDإ3 ̱poY:7WCY]8;MSWu5H'hD#'wI+(@Ky]\K2S*X.eze`psAēC>aTѼPj{1ΧqBlfi8"]PP@ՄcVP 0-+맗ەѕ솣x}rY&P&T俰x;N[%pȪSFSՉ oa"/SCkO3nv{9-@=_0;Vv7iMɯ2htûl,sng+ a.H-sfS %7Z =Nd=.I^ blIJ_ڗ(jԕ] ,4OVV a΂0 k/*FKzx=Xxc{N 6tDwګn50-igړ0iv>p).qs/Vp>X 0V*`q(& )U~qrpCsPA÷_Ȯ&L7mptX@/n!ѵyQ "]b%TEC}Lpsp\ N DڂOĎ1I!6IWIXȯL5܀^s+:K݃7Ds8Hs%uB5%&lnQNݘ_\TI'2阗_ ;1ϸp"6Ē:no5@x43ӉhxV,՜ E /fZN2o0Ig Y߿[_5H]rKcΪy҆RW6% c̾a4]5ɣ?-~e"ld:h>nSS"gH`K`շ"gCGbSv)ҥf;TҚ0Mhm<-L@ PVEXJW8϶JW,@)Is`<}s߁9fxD2(O{Jx 5RmArőgOD|\-UK'SvI4g)F?"Ǝrljz&) .hϭo\lR;ɵܱr-l7\瀒FԉE1ݹh!N@t!7<swMGɃ`Ctj̴"}ct4% %#t;aCߋ=\YriǸ=i+gOPsZ3sw &ctUWdriY̚䜴YKOYwuydXe*TWTfzJB7 skFi:$pӕ͂5FieD<acnBX \y:!9gJݛ2O189$Au衽#*ux n" 7=P{~i~'jȆbwt+j[y+V*^Cx qRAf|;FBVs])(e%w;'K~S&HSqťN+U1p3.C6 J'bC%c)*Oŗ T 2z2 \m ({+=]SgS (&"u6,TÎ?q-~ m>֛{F8dHZCq?)8GqT""Ž_r`|&?h%sj=$mRKpgqY^zZo$| C4T{mO \Ieа+,4 bwd;> O~~sKPԳb@Lu82xM#;2xoKOZ=ZYH+ PX97mVG6Njl B#X1uϕ$:'Y@!Byo #ˮZ0_xE_[ [QϮ;vֿ@ޖLy6:A(,zk@xvָ̐939aoQ,C J%Z6 W(S6xŬuPF \S0ׇ,] t',%buB#z*3zg7_*A#F?4H'|J5|D~ZQӧY9D.fY?ܑ{o9֑ePu&7&@/P#;0QTLukX72. *g=mgAPM6fld Vkȡ=yI}2SCqqpH\qWra ̈ZIwNCrf=UQ0j',/uzHg JUQwy6}ƌ_,"]Ey]v u*n MJ ,+ %zczGa6 (qo38,4Q Ț(Jwb}6M!iӾ^bg/i{b<6ܭ^w;5c\ #a㣪K*5\L=0ts pndՂ#n2?T`sjVtv4v$OSJ;_r4gG@-G\z" T8Ȗ|wNN@!u`Vr]u Xy7W}=I.]3pADs4a%až2Lpd c#Ksi1 Vapnf{? HkZq򅱤$SH_nB靊.2LZ홃Ћmu9:a"U<՞\g}U?xQx A^;йBe'U7|Jxw?0th ߅4^|և)HFȳ >ZD }~ߪ3YZˆaJ 5uFhhy,PNuct~-!n(*bqC^b¥!G>`ׂ ;CNXMBàzF;Xyԭ~\'+āf%aH214H^K }z:^@fK(^zPĵrxS2ꡜZ||\UyQ{__tΞuel#"B O1UEIoTJt/-6u0XIz|GqdHjpuoŻ< [jɘm0\D9rxPռrZ`oX;#X=t_G]Q`2HpOɺa QޟD[6x2;r"Ui9\ɂ9ً%—ѡ8U񏖱np iJ<-?9u"]PoׁƦAvr.fF<.\w |\0 AS)/3/^ę0,8Hj.Dm w90P팚Oqrfɸe~c) vll#w[Xp _G4-~5\8Sϛ̂iRKg@Aw=9bާ{'3Ҡ쎧Zrm 7 O]"vZN+guZzڡt%3Y+;9}뻪 vOˀ`:oSRfJ j]B)~2?\M>+@#k,:u'XH%i Gi$3-7,7QCJ&ߏg8dJN뗦~ZELA?`kzR<ܭ3r;nzOw DA$ω 䬥o,|5 2Kr?agϬG4v!nT_>\*y{eٵ9->7Yd8/Y(\sfp"Chh֒p:T4«uÁPU{6O=vr8Wb ϔkC|/ފ7RZw feVB܆ߑu@;k+䚂K+"j3J(fT/HnSFzYN ~ uѠ2H+^ٚ[G_l:XN` R[RoG i=78g^d'##\M/0‾3XHӁ]ߑߋy^#Z=FE9kF LJW.q(~dm$!9 6?<n&Xtl]~^B iaDzd#!.qSotӯΫ"RG YuQavƶ /WPA<}JuS9L @Ӥ<1P9e^uPc/z.cuWl#&go͞I34rUȽ |~hF_&[%<5RoN~Xt/ˬS #w-MGeeWlVە1i2s|JhՑkv|fV5 ^6Oq`L}?T6˴i]Zytφf[ NbBROMby U`pR&6x+ d$;S=JEk4O Z}Y5\~+!DLלٽS*8 m1kI_MyU'h2/%O?1\jR]fc8ȑ94OsM&(F1y~C>XnvOB v蛆̼*TUra#ctq٫l3t~SʣFg—<>I?y Qf~y@IaE$2*w 1Һg?({H i'.tP0=;Go dJH"n,p\mfEoяXN˦qSzC iCጉ?)qXt ͆6=Biqoi@vZg94eN+U\k[`'(0Nʐ'S7lBb ck.$SZ8Ձ+>C| UIpYr&N 2!SOy$吴m"P *}1>20~;~h:"lPʓKlHXg[;ǸQ2R4 ..ɞPӁ닭t Fv<ͬ!07K $mJG0obqν Qo h[JpTLBΡ#daT_7rA*sRBaX{ͫ-H~a],dIިg1cq !g[k+g}0WL3ʝHEPRAx xGz7G*YK\楉Z] >9=ӶX> O{>2R'h.h$>NUxT&, ¦ۘ@eYEFI92ye@(3ތgpe67gX_5s@IaȆ2Gger|BwqC/Fq7'>,*b J.)Q- !xBP_p8G9!ԥh-~G~C%6Ƴ @^d@S7H~@5%"UIUMwd*UQ.?ㆈ>,y^>v6U~aN*(ߞ`~ 8K16msxՠx<wd=CT JMv]eiK3]lQH}L5?무zPGeP^eTlâ կsI2G&4R};$hӁ$C r0-,9i:Dj:iuݽiu:ov6ӉPZKSҮi`YWdi\j-Wzm4)`d} ҌZ7uFBL ҉Eem+vF_} '%X-SFڷ1zhlwme_pA hÐr?\rx P[==i>U]%YmZ}E24)~+o|LKJ@RL/cUV,ʁj1AN b5-b <8-u2esaC?) ⫟y'@:92F= |5dOcwMA~S̔4W gTCl5 !.(vG+$PL"Uo@kى)BCc\%O_PNwCau?`H3&u|?WCuK8y߰z?P;[Z}u$ "'!?b03z'y9NR?$X"Kfb+ꁳy,=`W"ʅЧǶ_r*eBg5U`t{ݵP0wJCGKk<7=sC.saOUmpnHW5wrvky{|2ŽKX\[ť!\q?,fBPFb-m;.`A :~[b 03ju`#D(LNBy\)Õi7/uFCgP\uXc/r(3v2~wSXdq^DWQޑBDUȶRW=z4q!2Nb$saVZ_r ߧ[  ]Xs5Cwcƹz+H.Ov+zHK*ߞpX[FHkwǹQ WQ-.fv|ǀc|L }=ip)Θ@\f+{Ժ;Z[Ο>8:=/~Q/UJ۷]L_D* ;\X δAwW *@@ˇyF-%y09Cm.aTzQudXõt%H SErd+ ˇnLhV Aư*v;Al8'z~% n pƪEfEk{1Q&cO` zL#PJЧCRo'flj"wG(UH d~ˤʘ?~; A MjW8ܫmCS-}~uE! B߽[pы. hbHKyB+V6_u &A^dgtӸ&cGV,bd92|睸y_7%+$,*ێl,(Ͷ(rq'^NRI6z0I):nrw$ZBƊBlhfO G&eXwOtO p)]u/"3QsK2y<`otF˚EbI54'VMscecg41GsDvu'?8}!#`yW*Il")صズE2ÄY5>aCbDQMmTk]ݕNn̊[TI [{ڂ:!d-h}3rz*2~bGN98"97awl$鸩3"P-nZ]Zu&xR8Mnکidcj 烖rd *}tzQ3-UaBm0q9sDVo,RtZ.NA)Nv?1 5{ʴUkg,fAq"Ѫ"1L"ۆu.'=aH~e^48Voƞ oH[Iŋwd_gF =]<~2۟ijiw߮-}ٛg(oJ(V %kMϝjbt ӉhoҚugn$A{hs\٬kBY _h.ʇatOCsX&m8$7ӥS-fd2f.˽yj(ox-sDs `>YoJ-iEU)euƝk /\`}LDGt]?$<6)V7|%">|:jq|ܢQf/h9̲?y`7oNv8Ύ3T 5L-=n0Z  -MBlįݫ/=V,C-Ŵ4bdK`V|sl<u[}"y(j n|X|9܃ -1Z_ %$"WZi x`; ~x( UUT-2J;47!i󗧲&98^/!tb'.ejtrn{%pNGf_[/Hiܻ 5Zl7y_߼3)ǰ5֒>dkQäAaiFUj^OjJM|44%fH@BAlGoFI=Ƹ ؛A)U協3k-~2==&5ӫ .qW6ה(*a}k﹀åyKg|G$oؙr^6jPȷ?e5NYZf1"g.DTPBc.*xo6yiAZ9Uϊnfv7F9ƀη>p7~4~짷9!hw%^i)g?YAQv8ī-.a׳usc=߹[DЋf媽ZG='H॑b[O<';h6gW+WK"j|~/iQ~}+'@n53/U%ЄotV}ҷG&Ru( ٶ?2 Q m?d = <afaD ^%$^;`c7bQC `;_(*F܂Ǟ=˃Xx`nsѢ "D9Ik ?zi08AU@ Y4Fvl|BǠxnV~5cΩ~hļն7`p1xvKt^C`h kN#DpPUpi-y!q20!@.])]b+aˤBD]q=>ŝnuEq Fc6GvS3t}\XlqUqyE7XՋJf_[_׼vp`͐Cr$KG:\>zDjF ?~M&08Si=GJvOF*!bO .’_WV[R$(meʒFm {>r)xCWɍe[5^ak'EKNʻi)A^pLFMӝ*yTo?#7ЦQ3G84<12 S-tL6l 8mԴ.]io̐ ZzEd&`K^zP*TTx<@?ȾҾ ,xrch uOdkWH9jιڝBН0+UOV*4(M89Q~|8,)+ S*ݸ!? 攇PR(47sBcb͚b٘n5TU?>brH[vO=5.W8snW/ :܅.q c܏PIVY `tKN$\KY CP'vNV*B3ƧRQ l03h-'vM9~MFكKu-8]V"!W?$6H 1׌"A)w!d#5MD[-8k=4ۛo5\Î=Z F[ ,ǦS l¢ou5TbgV!Ʋb桪BEmJTMȃ5ϻ!7i8vX BJx|YMs*RZ<ˆteӻA|_u4¥A's <5xn.qri B-tYiH)ILܮп)I8`(Pk{7m?BTk*)BJTႲ\,S<NO%zt̺%=*T~kxluJҋefE{lS:$Yc=KGd:f/=W~}ec4R;:/'k8*m7WJZ]DF~ 7ՋxىF%;-)X+_HW{"2TK7>Ţ n"0O䮉qgiy B/ٞXsEQ%X8%;Τԋ)+U7JR?(^/eI{2KEBu30LSɎ]5z_Y8Lȸek!xN @FC9 Q ؁ p,VGO0Љ=6 MrLS3GJ9cZ8Fv܁h̘نR֞ KfrDS=4GM[;p)->?c?$Qhj>$k HPj303zʛ&~6PpZr։|qXwR5d# Fu]#>;~feU 'Z=rb:m\M4Mt+K9 (HDIܵqӅMyAʸ?NFe1_٢ǂ^<4e|Dre~6to̔d7'S ԫrڊ[L6F/In#Ԝ2ɅdRNzɢNG,]whdQ+bX:6$I&C㯸q-a>("l@ET|Ŝ :x`)G43KH~vmg,Bgt=J*lktqTةV8`3p{~ʔ;^y45|g{vf?7m'jDH&J? W2qD3-Cź@ 49J6؍Y|^/؂cRVC4ujicK;w1u : zIL݆Ŗ,YPLx =cD?A6_GRgyQdEYH׽ KbMD\b;C!,Lʫ9Ȃ~(ߒiA)"Q@i3e+m|jO0TӍi}yocU!9U4 r=>Rs|Ҍ2# ʡg_@В>HP}V`.|5 =:+*-EqEP l+⩖W||S83RuA97č]5A+8N;c p/}c88bRЀNu d7ZC#w?yґǠ&\yYJaO{7X{ruX7pj(Y,1yˬTx|򉻰p,u"B$R$ ;\ Qt#Ei8)o( уgE+ dkB*%] ~ Ʒق 4u΍(?kGƼ)g':ʷ&G+XL  OBFmA?}LZʹY<\?Cϭ_=:Ѕlt^#f0RA_АM _ͧ9E7#9i[wrTF5d"uaRHK$ QmPkt` 12m ::NұCCBJ,OAf,ġ[Eׂ}Z $f̮:7eз)L^IHbb镸+Y;vo^X:`vi֓ Dc+;{.7G'fnh iR! !$O\UՕoYf }gF(2,LfKD=녹DcuʩE)eKC0,G|Р"Ax\d2*kw'玚S_B0M-KAL6}kɭneC\ IVYcz`tQc!ԭb,N~jP#AuY2"s М^'‹ `DFXb DQg>+, pZFu~>+)ږ9꥕ 搪װ[Ez–{MWc&%f7XwJOxE`J8_hN{Nfw},_Bb!NG 2AAٺ0Bt&Z Jg_hy,hDuNz2HS_}մi0?)᫺|ᣇ/L YxZ拣"ةAQcNm>칈ZK yL?"͙{bҤ]Wr>}¤VW2*+1TL #B̻lY"/ #D\:6+"!dJmT~h5D i(&+{(: H8=2Br 62e䎎;MH`5ҼWL ސkX :+U [^}OL!a |j&ܑT!ϐa{Q5S*OyvAU`Vխm$_It:m"{%}oOpװ);ǟ=ڨ1J X%N}JnZI ʵ,H($ִdt[(ܡZ^qlWbp[ȎUs8(=ZN\Jm.xu`!fWĉ7p|l2ң*=c%d%Ͽ౦ |a'vyoJeIC@ZnZDYVX'F 'J'A=y2CY/h %m\AbN5WBDkIAT_똯Uiu4>Z &mQW0 W2s2i,K<( ToD-^eʎlEm]Is~[[t8Ĭ4=\ Ÿ޺p<[Dj 0]սvсV9ޟ.}bpڪO]IUYI/hg˪=(yY%"xA௸|a3}F3(c)g8Xѣ 1YEyg6Wc.C1ݥ'\8Q{+K*9oRۦJPxwxuB~,}Qډmi᱾Z ĭf_)ITs:>K=)3d"ԕgΛоڔOoY"0BspʫTF[QO=g#G+#it*WItFzyhW&sMA 1̃{i_Lw:;"\_Jgn6QM1h(ܯL(pCyz,E*qYw&Zh'$T'pq {sժA2wE %İT&_~mM+%Ӌ;DgϵB~4Q!ubhByEw!8,?~PglԪZ>! ! Ǹmi ̠Ì?ԍt0;*ZY~٢/ @eۇRB&c~ j.n t$JϺUЫjbykM|f {:~:C`@J&\Y  Kw BC j'ó〭K xMD%oRxp,+eDsN:S|aV|sOM)P7Lܸۓ>WgFH64u wqɁJ"a%V{pULַ2QN ޱ%Q@bgq-~@B&v-#H8d%`8Q9cqN3m!OD[VFuwacrl^k  &b8Tŗӊx. BW1+m`T.]vghQɺSӿj30&C[*1iYӽpY(VܥHVw![Z8=-f0GT"kZXɅ1 go ~|0Kj UB'.gZޥ.8X6vɢVcM#}KA[hQIC`[+'^P Z ?@fN3 pFa|yŚ{1a }Ͽ< תGgM˿lsFaG=R9]1'qoa~"X(\HwIquW}p78} A|Hd6D̈́>` rH#: ݷ< ɔQDٲCj"4}$Jꇄ5 FvIc8&( D=+&(g`3E1Lgǿ$؟qak^<@*?,b{Lx‘nG*GI\^XL8,=lHRb>QS0_Ҽ7LT 6!A٧M@&GG'.h W1Ghuӥ߉,COsaErlf_#]kdݿx%( =cPq<&'v]ҁ:29zKm8pNc0ϊ(&DmL$[BZؐ/m_z7lzT(8EI)|+߰8d!$0AcO.)i~m /yj+}_:ClomSON:ȧFkj2GNA3@$D:ы;=/0a㑯X}Çe¼Tڞ1)5*+ v Qq3υZUV.;|i"&߉.7c؃OYM'ӧhR+0הE)ڱA*՚j?^p&VνYf\P3sIMƹeP$@Bj)x-n8Z޵BEU[qvD\BZ7,CYI#Ef!7̨U-bxa&ΰ\S:$÷@"0NY >ǒƾc ek*0$V'@~OziE;ީO u䎟ntxzLt1[yQ@r&fGNf^#Kk,V:C8 #xeN3Tg4l??wZf*˾obQv! >[-%WgXN°Sm\?1}ieg_A;`x呥#85lA9 [$W~ .S("Ԋ P+alܧ6 A,Cn9^o+{{? E@.^).w8H {4Z`6L<&_ `Y]s_]\m+ThE!5 9ĵiHz D#LtRHGP$l0.Rդk+V:\|Pg I vL<:"v0PCx:kVG|6ӛ~pYAP^kSDTwh_k6G)dkb>y$UY=yf(jF8gF/mxj?8 @<}yd#1)aD+ kJ϶W{kޑ9p~atAw31S\>iѕ@H4&YSmNoCGO3=p`qz1owVJ~XTt,9&9.F]0:B{4ZM {ڕ`koVCsVz:*Tٯm{u'QMlsL%HEh5=!Z o4*7`åIvIb.p2 2'vFMWn$)B@X82]D2"iE]8۵LiPWR7j7x!G}a,p R'o6QyF_$unF²ߣz#% f]m8!">U&gR*Ұ] q2c-u:f /.U}$|%JJ!لuoSfd5?yp}VagVScd.sk{ٻ 0J0[ q[<({-lX (D ʫ):璾spAL< a"XZP۲ ,-&`%ANEWTn 0qJ|X\j%s05RJʹ/+4eqVYtn}9';^H]j5rƛ/n{Պ(WWѝ9c:I"  |P=_yL LDހ۶[D<29ot{VJy)'$$2bƤ\˜UlF)ѷkS?fVšVbF\j%eqˍw=d7LMb+NX64 0s|qEpc $zF7!t%#|Ye"TkIʩG L\$T(p @)cl7ޟ6C.:8K`%EfwJc;G2u]=[Çf+"D)uʪ$j>,0*Obn G6Hri!i1Řjg1;~ =&kК\M*!'_-B*XW7[ Fn >VepD StO8Xl3?)BOc](DN ^:{U疋BWyPz*FD@4r=MrɅ o?w-+-|kao1A~} {ȃfЕŞ`Qzm9pVsY}V$'qw.\W 0< h~aUv/_ճ%4UbʂɶU,kR&EWӘGpz-8CE?*sF|)ݼ zWPm.<~49ՕCeGY8kLp@i/Sc{SΰҢyzպ5P:2D 74?OP~J>a%:#v:!t=5`y,kƻ|"U@,ծjּn ŋX(Ͱ`oi@+Ul#!UMTI~!|=0 cwi5o˫?-%Bv`m*DFiOwi-==O}mABRkU͕ L8h[E ,!-,}i1E)H |ABxʴ32.)_2꫒iFjң%dk #ޗ`ά. k~}-M,hȺ#wڐޏj6HrxXJBNXnWl uU'7PMM*;idQ] e^Y ɱMӼS@fQW!%iR`㉗if8a85Q9K=ʶEH$jmґur?O z<xSX ɘQB=9 .60YBrZ\D dywI:ހ"U't(oz0Yr6f}ht_6jdƙN\Ui?iN(&Pfc!OKퟚE*co>}Ter@#e*Jaœ|Άf[2?lNJ֞Փ"LrkۣZ@!2aM hS|kq# EYl6U8XDUݵE$2wo&::6QI155BY]OZcDTh|n5/w(kJ __57B, &>F:w#L,.yDXvB6{Jb{sx&YbI3Nl\J7[yXaULζVT@ d{M`wST!NX$*/y6k{DqWwS3-fQ1?Ql kL] (}ܩrzRQK]>)Uz/:Ih 4jJ\wR6-7\(ߤ ԯW̻:VQ~J'a^VIdf)(^Dki0sm$I lƶ@yQWl%8CO6X( ; ڹ6 ʫŮjr0vѦ{SƂĺ$;}`a?٭v/TQ &s-@dza7x1޽JM'ۓ,5]Bbb}"1!~ֶF Ï-8 ?-L{f$8BIQB 76sW0XFLtl_ϣP͕PWT`E6$gj jlDPY9W?$f!;jA) , HMx_"sR϶=p0J-]W󷰷1NDҚ8zz nEtyJZ:gH1>{L ^Om8:uX?$ =oXpefiC|xGtWLs}ɱ.v$SO5v {^ FUl-ӰL3&P-EvQ0jKhɜU)?_Ƥ}IzdP_I{Ϯ:H\ůqkD /|49: gcje HRtf2 a|PเBPO(+DD4r6T-k$Dϩހ|H9'-`n,} ]qW/(F ))|8eRHvj!FL2c(nqZKcr/d3_韫L"KA'SZK=RUjji$7:em {*"Qη5RҤ\8mmjw @[H۲) 1Ll:ci{ij|/׎'9K&Ǣ4㘤* /.o0qZ:- KN,/At \83hOO,s;üiZ1@]{ZhAQe!W"Mڄ\z@ǂxǠ;iڥ۠ V[XQ+0L*1ja (11ylI!Tf>He)Q*+Xc|Ly]Q/h1'j Y2Uc]Fp:jKD=.t ȟ82yaҘ/Lta"1QUi:G%Y jhUg#_+1ҭix.o o^-zyUK,de,mF]Xmہݗi$io'[u}I#/d.q K67Vyʬvă5_HBwye0te+ "hSNMtP7Ŋ;`h#)0IXэ\[OrCׯGxOa!X޲ɂq\ LV\SBt^^P1+CZȔ,A =q]oS]T6hMz$x%A=gQ#2 xu6Hr3a!dmՏ4"!HYAS>O6xi (gæ{@ lLV]-KXꝓ3>ZYW1vp))~dOhĴX:SPf\҉Z8WޚI.bj|dّVޝZq3єB!}[ڴ.;Td>&d@3^xI~ϔ sJ7Ijk z4+7y1f>b2&.E[ȨJ7Dn&8m\:^Tܰ!*gX=>Iy *rDBB7bYa4&23_CE5Nm=dRM*`,L<@^2eƷ++/ovQb^ވ"ngRp\`hTKp$N>t̹O.\PʕZ85/4҃SHb`HTd&~Gv]KwhctbPPI3w A-:ig`7`-iٗgeIFͨNÛ-G09{fHfMDǦ?wU/' MƌŪޖ;`1Vv]]!7f$b5+93~ 1 ^ E#p . 7G{apBzEl*/ ǭ~ 2u"kq2wFxN`FZe(""yƣ mB`>?,8~wKscxMZGb: 쏪!,^clf'W(6EͰ2[p} aP"vd7݅ f6I?ݐk|;q Ґ{ 퓷Gtd@"دjY0(#?1ƉYgز05~ɳuΩYL(τ7!g6z 13aK1Ixnmpo[auP #P~`$%Si@ihZrjS\͚DQ՜[3E_0/Dgzx7] _3h+6T$YLVy𱕼H.iCA>+gaІd_~}hCqZn6W%c5`FU6l,#=qˆGPn%£G,14Os ӃuQ]dZ)?~_);=K䎁 `9byYH͑&:*_8 `hhv5JpC 23sxez(qH앰 ƺAMQ=9t+hPL$fL2,iU bN^PVwyu9TsV %W BgVj":59Bw)]:`ίZ;:H56 HQRsoNH'"Ag~L|^%q ϼUny%%5%=M( >{+^|m;}.ATA`9<1)7j1g?)MJm>S {W@rVnIg-2-Z{WV5L<IƏ\&-]x.n =dy2D]8AÂ5KV& ilcF Lju 5iKuS>%jDj&DF$ .~C{ ~Em,!wz6_j}hÃ죝+^¾G'oݛͻBUE~|-xrŲ@(t#dJH!N?Ü<ϱ `곜_o+.VpSL7Θ 1&n4y]F"G1{OA::. ^ 2WvYNR+ 7n\˿!TBhı$cN[HcUvKp^T W!F9ZCFTO {Bib2] [O\Ȋ IN6%n9wst"? }^T-܀k6Ňg̡9r1rnAV-qAJ3'Zb5t _5fqEdS1eK>٭98QeZsߛ;Xl!OJ<\Yy24I}Zv.Ex>A89(yoCxrW!'xͮ' HF؜pU)W7DEe'֯f@VazJ栙G'=exLF7 Q @]mNݞIX 3AQ4jCLC+mS4ӠB,pXQMno˺e^/e rS)o5d]~;Hu mBD 4\A391-eʽBP;v;+-,y@M!X+_&"oܾ,\/"ޗNy1ɦtዙGU#d OFrĘ>1BFe"js4v/Jqن9$k7elI)qEolIaz>F GCq~?YRCCrQ3K4v@¡rG0պ_s=sUNMJnF_{Lyaqm!l?JP( mbmd|U_d)] G"[c‘ K4 g\ ԧIe}؇OuN()mGO d9hjS3Ker qT%NJBFȸXPY7;H&~3IJ:F94Y,4 S\xBZud-"z;N AYdշ^~13L+SUxy-_:c%rom@Ie䯈|"Z!<ʦwrTOr0M^min0zEz8UTTz(QLu`$?ND>4 ,w,PaTr8Gm+PŐjyN$zy!nӷ#9NVDs+<2]( /K5&uݩ=`$ݺW#/ q[c##$XC}߂'CzC5P렧\=Fա|6Ȉz ; ln9ǚ'$3pѵI o8*o(,nI}!'%-V}Qfr( EYh4dB4-- w LoZWp3\/[3Ƒ}TXE#4(zkq"G4uhԐx* >+ҡV\Dlʃehžϖ`tGTe4Ȁ#ԓJjQtNIB̟>v^NɯplN.R|"326o32Eda3Jft!^LT$sif5͗=OW 0;Ow7ot깺}+cPaIdlvWnي{lUyU=t8JDB30MsM,nAayWQ`gPVO~pNA1 3DwkAr'|a8-Fl{^:t2P;҆c#g;|F U&e+IA7H&s |f!.O!k1_?.H:R(Ӡf9If,&:0gp&`o܁ ÌSuv8.¸|{<ɏ0.;/V[ (nZQq߫`1ׅ4KP~Ji8 e%ErF nrN MW4@ k[wH/]ŷR%ޑV;l7 iG)O/9#'Z^xN@>IsCql5Hh8!81tYl{`Nk}é$EϱW!Ǫ7S\# xlX8cȩsU%[҇hk.IZ[̿U {Y@6p^g`&In=Ɠn .ĵ#ŧ(0JƒtltFT^UְdT5¿:ݰ4Fj׊K]Tvv?H vx%Tyq abET]sx-rbY55i7?=[T\^ߗmqD~% Ln "'p̃.퀰(8Rt=i%W$ 05,w09lo3<2+j!> w۔Wv!ל YZF<[V%o44pv4 u9z4\{~y2=-V qxWѳ.%w1߳0 j/3uOW~؀UJ%~BI$0e%CdT{W̝hfiWY]1_WpNdl+81GaneEj;0DSN4F* ^} ?]%)2>YNO5cA <Wtȧ^.`!2J@Y`=}"WС$&G9 p(guT?y֧(6G)w  s٩Z1XXvǨ)~ B3MJ~Q a&-IWiImbPRY,4 שgB[BYogLݞ!Sw]S„ xԱp9]{G(Y8As٥&gi+KSEJknjوyZC1"D,cht W{?7-[|I ǦkO[vǕ'Xrƨ%X_%8vg=,fUAq'Hj|%ḿBl@NJ\5&T&;GT9x;'&:55[M03VjԚzHKˀ- /!J͍P~Ƴ3>']-t=Edz#Cu `&̟uHˆD{Ԁ$>v4Whyy9Q_Ӆ 6<0Z~A(V7oޛw $?%a w&9}DHHGIA}ydڬ`pxo2|ִ_ϩCxc!_lm#$%J6K$WS$A)sa#k θF49q"kfe֥dNE'c児$>3e ̣d$K{0X,wI%qr, @ZV%bE&dIJ)TAD_f{R4>+&UzA ! 0l9$^稸?6W^“/ǰa*M/\!R0@J!MH{aΰ7o ]h1_G$"Z2%FѠO5Ͻj1 4Q P',0Ѱ*.V96S5ʷ _`Ŀ7ԑUS#kX~VE}.c]Pdi3fZ#{.b*t1nKO|xJh|,vp4O}a!PYy^9 ǣ;e\7ϟ@=$_u>Uzr4 G_@mv HQ1]eǾ!JݜȧƗF7<ٍ$2LlC*;wIkeAr?(g  M!HS&o6M?'lЇjKg lEb( E8é=HՏ̃ɒ\ɻKV;Lf<7P)XgUn{]`DWQDًm瘯w*t&5@ײNMb! f`˫͢ᅧ,T*'ۍA1iv㷘񀙢x/K;;:yH!9exhɳHygE7-B ,zr 0P- P yLd]qyqςx`~ٓfܮ>]_Uj()8>UE~k AD*U#SZp!&Iފ֛I=)QQ,BtCw]vt,دj;AsIOzs/fAi#Q$Α҉R*JR>SX֏@?xuI.8<ղm O$`]fx~JXlӴW(._㖿ar|4%K݇]<yPnࡃAN[Z>Q!a@<! GŽ]׭][-[,6녑,v_z w[uP΍ 7$yVnI@1dcnvѭ>md cH 1Iw-)cGmt]l=қx! _MIDnñTB}c <>|  kxٝ՜$;!t@EGLGWwł^k^U7"-{{=nTBJ"БtᡶnD"\at)oyj-Wg&ɊBaBL(v4sݱ88ziZ/o4 W #AF}§|׫,۳}SRrJ6/伫6gwE x!71CŢ31ߚ3E;ej\de=qN"ÿ423*uLaaYmwW8q{vﺲ}y-sc"PIAߺbEO}=K*Y/ pxjQYJtFu8Děκ}}DVeJ)?}PJ2K)H^EǞ)RdޥZp8X#=|3htS2W˦}Lֶ7W?EN/Y_0?ɪ PZ&і#l9*lveiL5eLYtTQӈFhL2{6ݘ^w0" jxMW#z }C5:,*.h?ձ=̟~ݱ9,ؘtg dD7r"d'kxyz9<-CINRdk6ؒ6,DgEQGT@tsPf vjhy5m5Lngw;t,J,X쀙6 .*|wQ`S!c⳧mO!i컯bzd+}`+h )+:L9i ǚiwRGLN#}4BdXZ5?]%vEc$cH@;EXѓ-&ݾ J9 ;=^R=\'*<qE8+Nڃyf0(*yߖr;9j.E{{]T8fm-ۃq7<04J"!Lm~l8_C_ L_fҟ*ܢ+X?p--/&5xB&=qzTw!Yl<~#!n|}4p3Uh˚(G ա1[&|z"`?#L䀳:IM릁*ȍBׯǏMmMu2&sj0&7NgG;ع+p~i ^JK!+]fO-j]fqcvRԉ P \߅繘]Tn.Cad!|ZuAH,>wϽO.1/bb|Q8~i(^F_#x1CrhJmnahdWk5()qdQ;w+:y,Mi]"/Jךv:T\i gi-5Q}H{H :U\uxϭϹq<@6p_0fFhxol5 pOR|95KY=W9S%[KC-O t$\y]Yk~bGA^ {Sk,2,OJq͖gƹWŶjNؗTAG6od&Ƨ MQ qspxzj5AߙwS6/up/_oZcw,ao+2IRiu.Qԧ(&2"ǁ_nTm{ F4&y2Jd.ۉwPëtdNfB! 'X|t"usy+h=K7y՟hb -oTLlr2ii);OF_Ī"Oݴg2%~(!$őJZy| ]"x<먱Ybg?ڙcM?jph ll(x zTs>s8bZs8/eB}xb(/ÏTi?~sΈyAS 60sRacڎ]bqhHw aWF^STf Z W@oR|'%Q#m2EK啎%Q~sarEԾw֙EJD%ùq,a}XtTD?d{r /S CP`gSnHg-y{ccA0(Tt觩^/kܐB+jv3_m}kfkы?;Njh|A;<Κ)FMYT |l̰3TU3g[2R!,}ZEOeu {:kM&He$PJf ~-p%Opc, C=`y?Ozڶj'QS9 A]"t IFFȔiwV^UlOEte*\B?݌~䨁Y欮e^g{na3'g+NIOݔGg,3}[Y".;_, O4 <y {lqC@5K`?9xNf=1x,1DjozM{,$B'7RQ@.n%tK@wjՖ! }L(toiqqR>5cִ}HJpid8ӗ\6HkC^PsN`F]Tp ua,v8kc>{VϥM⊟aH DtpY2ơt`wdEnotǃMzqW; s 5=ITpLXpԬ,|(Iv  F38@-qQR?71p ڭV=>4߆9wRSeM7(b[l[1yxr7T%;{޷`[[+Λ !TS|w{Pɝ-L"k_q`rmq҉ԑ"9o}hQ*XT$ՑgwEMiv냬! XJ,>{m g:++s`v~R>;q+gtaCK{bd%s >7Ү)mZdٗi D!BOq.M=+)@伆Izˊ4X.Ro};2%t>^oo]pi vL+~9H'y g;XRz'18f8|z:HOE$D~ӱ~ߠIaAϤ3!f nݯOT[B@xp[AX+6K%:C%j N}NZ|E0e3_' I8o8va0 |$P:bf@iiPU Z!ݴh9k{{Lkg%B.W[腈[KEZhqYp!3ϻ3D<eUx_39ZrP|?ޥ-Wy?W8@T3u<T#c[mB[$v_+`Zp[9[*\dn9+D?cgϺB!vZDC<2=1f7l6'WA J_(Q^$=RŭF[|C84{ .BS)M>.%Ed*2LJ*lSgj_jU0+AOB E+B}a/-+p=ySK#v9 A2JMb@6~\`9^: EX}6RB9fB~9=&Nܕg( zP"_l!M n%0w@ydNp |U$ -4t֌5gywO *^gn%bfGX;X{\-TƩ@Zg-ң@ 7* f~%l:)D,j& I^L|6̆w?Gz!5SX\E/sa",'`TbCvA#a2ZfŸEo4Ì9O5mLRzCE!/YXHXrkV痷+LRj#NM[ |9sȐ|_5 2] >fj2zV)Ro1{m{G1k/LF`>ICZsmq;,۠[B<~ 8I MU厗bM[?=3a_Tb֚'qDqm饉Pաy;R*ƛ7؁9ў`3-aMˠ$eEyeۀ] R(vđwc⅑L44vyΊ5TMK{tbm!πo' #0oIfzݔJ tn{^+֛W/%sXTj>y2rY}UMjN ^"յ)ܭmцH4N-'(E!Q53)`4; 8j9Y51UOl5&` {þ6h'UٯV'KEL9'ow\ vi4b-Ohz0k1u #jvFshb] KJ+vAfbk ?3ހ=e5DR{\8O%'Ѡ>C ow#*&gU ɰL9ߑ"}D_bo /y=)]%l{|ۅyTg UVd<87^϶{ƀwt{(wݣ׆4&$7>f#GXm| {cMu~?CC2IK6ewgC™Jd<2Y':ަՑݐry,a@Csߕ)Tm<$^{ԛل=qΔdX3ٸ4,0̔28\}LL;%AbcEr3Z`8'W<^+2Dem)H:gqJ7[kK3E5S|xÏpD(V ҮAշ$*pozQuT#z:\8dlЦ;PMDגp>Z>:LeWL=ې0W7GXr8  e)1s_IAjF2X&ND3:p i(Ek⦗jk{BaGW҃l:eN-Ӣuҡ!ŷ,~-Xjꮝث}(q"쒯q}wճjȰx%{yERxfp1# L|;O_Sͼݜ\&)9-+4\XpyiBTj~b=Pu'6ce$dp}~)#mUʚocv<[aWQVK䰩OH;0 hI{s3:CAȏ[1- E#T#)MgAMt8|N6z܅7 #Vzpߚꅌ?.br$KQ6x[> gcד4`\ Ϣ]vd1:<ݮNmJl*:^xb]*sOjD%Mww`D[!T0Ft 5XtLeQk̖^֑ykz̖ 92|X*> c1Hhw^O_Wjb$Rs]GAEKAH+SR1>tDV 4hMWt;oYdrjN O:akWQk\3fe0mgjwӣ:L.MfSv,&R7}d,| k*P!a4q~\!BKk4O/S&U ɕt0?-}(NAƐ=Lxg" (D-eVŞYQaRD&QL.iC0`]qYkkwgR#vo y5*؎h򙻋n^N5$U91C)V/V/)T#B1WޚU > fļkxfT.V0swP9IzfF4+{YxbE攑 !q @aօ@=*SASyE@x'w^f%U} =m_IԬK;g/hق:f!e5]*{ۑS7~ )%SDM?o;:uH<@ھ1S = hO5(rEGb86&.^-Gd{Nf 1>f, PHJ1j 6wzӁ+c|XҘKv:KDl6'@g}Al?ǧ {Xȁ9fS2Y 4XS;vo` vۃnVAWc"|pi*Ѫóo&uڼڤ*Q/"Lܗ=-""/GVzߓU֩ýYm#1g*`- `_mi)NN"œvbr#xi90x>˩9Y1 nƍU^.is{-%Q!.,xdvdiR?=Z\=R}øl c,E_zSx%Zufۻbo29̘)UE2=иH}X@$&h8d4pgB{;^hŒ^կ;1ľ?cc%<9e"01uz >9dcz} T@ur̖ud_ŌAyd} bmj>6Q{q-̍;0]:M#@Nݵ*ϛIШiߚڵ=ALܭ^MmڃDwWi1Rd #*{o Kԗa^iΙ(=R+os2)ne'ykq\\/0F"Jit*@w'Nc>pk-TX=Ϻ8='7g@U7V$1W:.zz1 lg +Dk)ќQhU, ɿm2X\VٖY+U;C UrEWŎ6C1B_8_4wP [M #E.4 qd?bNY2Y7v/+5IJ.g`5/B/}h T۫7PRR5|:zwZ8I8aOo;P!+ w_ "?SVu'YiYs"QB#u=v>"/F~41lF03RH4B<1ԖD?DZQH`?>C66&09~"kֺVdh`F sz},>D6Lj _,"dԇkzeF# c3<xg-Z;Z\]2tDؗ j-.>d뇳HYDNwH%O!vJGsRg<5ԇő ~(aFT.=[D./-OYx@4 t"4֝~$cUN"ug!ud!|9T  \~Cɻ=K 0ۂ?]H%Q\@3_ 6f}/_fو}Wwd|-LgxzRZRTVw9]F7H`(^gvP5F_ Д#f+{W8{eӛ!{jL);7 K+>^ h,CÇJEU 5ym@au8xfdWUq+t!iQ3lE)JkPúVl0h?~?^m5:#R%;lafwoiõ3Ў|obQ::FnQz.{+Z&163>>#lh{L$(nLNHIfaOkѕ2'H o_ym?hX"`WMw$d3a^v^I S YrmfV|"moSКD~O[FygIpW;>E}㗉{3a'c5{e \|iBN|'0Zs v"k\lPjSQZ1N[ {љHYU@R&ON!u8>7ՎuǫbJoY7|oAAe!vӶ?˗X4VRu;7BO|$\X"3SEk+tzY|Cѥ00!e ]NJ0!Ny>Ldc'SnB=pN1dpUG539M?@͑pgĭb Da@֮.ysXSoһDM:7^Sо8CNAR)Lw1Q7r }l0xHbyG|V;J;N2[4TbTN)̒IĬHdLrj8Vϼx`P"\rѣZzD4Hf;'QRdNԖ򙼷Cc|"aH'xA%ْE %9%*{M "/peC`ٲDŽf0A_Lfu$!jt(t'#|e1p}ra ̑D~)|/`sIƒgAty"c}5RԑprPЅf* 5ZX[T:GLX&#j7<mh'ݭ>cLJW_Fy[~0uLȗ<[A ZNd*&1}5˫hJ(\"cê 6PcLmt)pmLyHWLYˮ%K;:&n<"@f6V4l3r|$(olS YEWU eP*6A@ƀzyŶn,n~j5a(#1(-9G#RWGUO;OS/!wA$@ԅl1'N1>8ʐZQG+xotWHC qqlU & ?egn9EbDdNC)]75ߠ(l(\(jv24n!Չ@jYd-kA\Xv{ҼY@温ZUN' No/lsuukCF<󝮘&y_'@SF//|7^[(gƣ~\.z=kIO"TZ SOzke]3oE6jd>5䖋`u noA1P$&1|yQh7'( $ȠśJyy,"XuVʾAv`+*avA*=bw,_n}h 4TUPwg&^Tl, 5{45QA/G)^̯+ Uw&=:Zma°YCmBkccL.45ԃV56}%ƣ^>[vƘIfBT=[,ZNعaxzo*Y|jb3Ih,7v34:/tMMcC w;l*Nd0~U"Gm q aRPw%:+8S1hcpiugV#]ӷ; (DS5cri aִr$<.`G{ŪМ6Y<\4p$47jLz[Uo~! ]wC$U ~*~r(~UU>?G@攡'?Iޑ '1%5 7| |o 엏 !;QUL_6pjR[;13pʩ- 0F!,w~6 I%XbH,?܁nmS<ҖJc&m b9 ~A ͟.@OļQFŋ@LGcq1L bDTS$'tIj!0ӏ*(=X['mp_AtwEceRZEWpaNK~{LץX&SKS`n~Tå{r@m+c\J}nAccZs MFݚlS.^,ܬwM]w>48,١*ěCw yc$[s!M6EN̾N~o 98- utF͍xA1?% &Fk@/3N@ |֥N뺒[Tlj~RPP Dlf[2IS&jN(9Ftz)A3Ϣ-,TxE{Z+U85+z e >h`QQs'ա4PnЈ웭,)>/ĀFt]~ϮhR`ņ) rvSqIR)ҐIqvzHހ8Fϋz,*F۝3n RDXOkۑ> ' 0Zd#}bݝw\4BMZE[/*0E_dIz?F[w|2e0)GZ?KRP9jvHP@y(qU1L=}.BJŷ||LFǗ؍g؜3 /,x@ ;Nݿ3BbIH$"Lvo+Sx*d_/sƟ$~gۛMԴVX@Smj!&L]xSs,kPF0W.(}vq?z./U7b:?)4wUح HîJ@bhxwo700{vyc߮Bd72|}؅gd47<iquZ(u?SvҊw%K”*}.I.#CPJ4LfZZ^fVbQc{dY#d>'7%pQO˹GƹH7^ Y͈U^^mBO W0p*k2Yނbwo:u檧*h.I9n:rʘ.AHVܬb,ީWS/?}0SzS5|ݚ Qzwt EvfR 0AEGԿe?٫W&ɘ[/8 ZOJލU]-21I!L̍@O ]hPxl@|Ҫߌy._zV0!.:)5bUˁU1 e ?jUI$H,OZ4 Z"%2xfKW^鉋pL2fteXވ| ^㶊Qsg cw2Pro`ފ[2iHrZWJ`žCg:JX&u 589{L8:rfJ,}_TEQV#hTq~Gr{0 BH<FtQѭ ^MhLaKJx%Z;GiLcE[40ԠX?Hp|!j>5gXo~Tt²&C'w):{1vX1Έ(hs0$8:o)BL5g:)r(2TuXrAQ ~Ck V!Z\uY1ꦰK5Z&5o~hDIwM}<5v0ø;Qf>@^iGpjY,q 0eG5Iv9U/$az /v~ѾpCmY*Q1M,6/[R πB~ѽ|')SMu0;=67Vk`HUzbr'2vѫG@ϥsTCb0w0`4#;~ޠHX(*qU=׊6&I۩wUƘ=ٌj`2ؼN;(f7@_ӿ_ixx] d64֟f<=ma =]ug;z?ZV~!mZ(Rajb2~|4.KꮷSn#k-=$KaT73}xjEjky眺GLc?\7&̯ -Ķm`; zSQ2* Ln^09m#""Kduc?Bipqju8mW|\PR 3ʻ%Ҿ5rS"=J% Y0YAb8mA CEz_B {hQ39d^!K+8Ң;+ T({u JHbb.y)?̗"a)mrQ9&,-}ϧlK"̙v {G+a"O,P>?I~ 9 bCZk_S/ iٱ1]_Ey+$] 񱅟~ݺp;6 3t/ &D2M=\*o-Ͻ(pi5FdfMqgV ]؈O4Q|5@SOѪ1.Q8 EZIʾ9Y4a;ut%ؼ8t[@\߄MZ#, ?UڷpzJ5@u\Ant_\jK~;$g / J)5KUvRa,Gy7|Jޏy|dEiEhn3fC1nOk6])*0n/J #:;qؐ,8U@Ln{_z1=&@$atR0\iȈ @OGYl/q+ofh' gE| I$?y5 :PȁT'[bf2j2᮱O}zAdXmD~6 mv N_s[mpN;sJ2̜^7:)d7ZRlE129*av#re=Le5yVB(ZI)}Z.='B-nA%u(x<Eh?#miyG}ik=%fU 7Բu 3A7# ]N xٟCAT!mfQpY(]aVtG 3. i_Iwb26T~YYh"|[4rZ l$V٘UinBk+PQ bx?7+!C㗷Ca$%~ ֌yvX| S9fX>6 O^5%E79o" jqō6ce)ɴ"dXóyG`pGU.m#B<3'ժxN=ɋ؎ngV;fL84ֿiO!xL}֓^-OCMtoVϠ;|3;읝HBc0x{8/ԑLc)|py?XF0`ڰ#P0|~a1y寇#q|_xU]MZµG$0D6wÏڲg™i0uj*!֋ iDq|Ȓ dC/Ǖg}m h?`ҟ3\mJj3#1o@QKuQ+?dM.; ,:W c|3lFQ>\Iqe/PTRcؤYaGV Y Dnĉ鋎Uܵ)K ![C_->{-#˲2 `+oNvbNǞaӌKݑ -,+swBs~6A>c{8EY#YHo wg;(<$K, y>`oO,S./3/*\sXOv_ ,4$喌k\4N*ڞљm=YL$}3yv L:vH6f]#z-JL\G/%C2-CuڴMYQ"I+dxZ]<McIc_ؑ6馎zzIJa(9klHCQ_ybti#`.ʼ>VeJ?_鋼cYn(Uj@%˃f1e䓟k,n$vz3x$ir)c{(@Xъ45P.e']`" k!vMol{E"k/`7D;UڤdO|.3 P7! Ncx}Ӷ4GOLmeTuqe)w,cThxPy9,Kn1µ'}r^a 2/_$2gDLlߩ>rT1MD^Ν,Mb@ՠF՞~F[ob#B$B_ (_1/s*˺5ӎTM۫JY9#S i,#6xC w&FI' ϟ3>SqIi+.KTs0 DTwA녀}]YrCxyJb Fnr`KۛQw?ST FaS7[2?tfZ V|Nmӱ49*I3 )# $.;>bECg0*EjLF*KbZt_a3}5 %)d+!n?xDmD''g@a9&9s-΂DS:5D4IY*U`beAZx1n\=>wh2U_*omk0 &xd.(QB@3Lz`კydjZ\.X5 rD\'BGTEy-ݦc`|B"B mLheakh$,=67f[-Z"Fo]<=f <ܿQ8kyPFM!M<>gDri\edK"Q=h2dz5Bΐ?>O)\:?˧MO {LM )碊'eBj-ߦW%TܲkGe)hJljn_&fnNH}>En(d "Os'YhD90j:[tǍw i=o59$uDF#szRMxWhP;J^JXy$wj,p.C.x "^Nil1>D( pVBUXܖ^G7|0$)4??YŨ=Gy *qϧ!gy\5pL6V"<%F5cfCOLJ8R@/kZRO'c-[`~rZmk%s׏m47m|1<П{c0:H2/ܡ'ষ H6<3 'řs\?Fx;' ve= C,'Az (uQ $e2N` g ZV%픨}sUAcGC.iD3 Ȭn?vw)ە+}vT::ɣozls B2/)}_Οf z~?@Z{G~ |+ש-isxD ڞEsh:򠣽bO* gss;poL :rB:$ =KLq,=TmkBmJ|&#6M6# kb}>ݰy`;poO:>>6+}p#D@ E#Ɩ֟X}b/) ]Cj[`Ml6|:B3)rFq\\e5/JP2fvNxZVtҽGue@ FxY,<"!I^`2-l8'Sh/1 98kۿ~*/jrTA/ qlT{R0j۪jT|LEG_$u $ȸR#D}|meT}7ةno$\Պ~QXyq3 Q}Jb@XNP洅;D!S cOp3%|Ί7@P "`ՍG +Sx{-8۳!btEÚ9딻X$*6i,ہ\R a|Iw<4.mwe$w%,e7Q#'^vժ@,4zVw>C|h5dZ8(9`']aZ~{8B;+/Eo(_ۉ 8&=N[C. '8MйOc6}kx /˄픏TJ끀t۶L&j>ll"0&THQ[Z} 5׌)ET*$m Pm>~{D.s%&Z,ޮtfԝߊ;7h|ӗ8V = OF!3+o6P5>Fi5BAHK&m bGؑ@$eo*jm+(r}EmQ"@xO| e3bUTZ˫Y m8m?q}wa'Ld ~D =`G/vc>GlIԗJ9s`>8cin'& }Vt%iG`Yݩ"?qZwq e"\/}M:rkL8{0/9 >}bTFݟ o|o+%A>(7I;HnwXB%3p:5B< ۴C8Lhb.,bq{Rp0 I~ϼ)jp0^ 7yyߕj=t4$XcCQx߲o6٬ޏH@m1{ϓOt=`ϕٵWXT0Ja%t6dN-$h!=hK;o c J/3zJ8N@hf'z i68j]| ,"lE5+M5ڒԡ(fOMS -ۏynq Ҵ2ku}#宥H֜+([6L&fb4KZ5$"j5ZuG3gV&@}ӋU:Mi75e\`\F *:;JۢRM t^E*[cy`xψ9$d{ˣ8UA,eށfYȒ،3hrWmr+ϋ9 1&(} |kw4)y3 M?ޡFLA"hfޭVR8@ߍccDrGuᆈ8[GLI=875 !/|&O6ҕAHJK/S'99` #{kof?WTq~l9RavA^&}ozCF@Q6pT92v"%<)VbxHit} MEtEd u¶#/N .ղF!r왡;{!N_?.`5:BEݜ0Q,7)fuv " u?ϴ-ܴl(c""lqyoCAPnص58C߯5 Lng.ԫID%c3Y)qM]R({`xLا,̺Cah>+|B] p4iXIiF )El]Ƌ[f넣Gj+RY^vt@2ȧwXrש@֫#l 5")cwC :Ь`&YryYFI,F#-ͤA̰粿1=ȬСxBjuEG =-bÔ#r4:,}X.8mN%6 7~ވ]\ޛtAWb^f,];cOLD.*1" O"yrK9P3#k) g^;/xqhǴ O|=xE8䨶l[e$Wx2NT<`"eضʷ+9'vI(v?kf4'6✅V yMaJ2 *9Lchn|`;hÚ @xӘ喞W'UqQ5P[9o­MRla 90='0︩xq]!Ϟ-?wשȱ1"Cg{>&]K>a;x'o,GR~*}PK- ;LТpͳ!-#[7%\c2ŧ[.s%Ew ;[wӥR##t]DɁЎ]nӥݗfBdS kPṵK(ʙ,Laauzx>cIn3,-ԌDx O j/PO&//eBhp,*_HA8HbN┉\OնՑU:( J^P|Gs0Uc~\{U,=ϒq{|>G/6Nhv3)xedu* pA>iP4^gwD>Ch+})sQ 1Ƒ` :"9|*X"־@ž:O$(!W>']e_,$5Gr{\5[9}7_6 \J ִd"D aɢ8lR.&T#H8ƺc OKk-~5h9 9D _sۣnv|r .#bE@5;=M V* &!#1?[U02'U+^+ƂrE0ܗkw1&EAz FUa*/bqGjK8l~Ф},Voٜ_IۅaW]rih)nJ  [=k1n#넞5GxbE7UM~oS-07K3XoGX.k/ 7 ӽt\xI)q(%R9W#˜|*L_vfod~RRPv@T}O`<4ȥߟ=㡕>*ky6>q zjD8"4e}ENo(ǖ4yh[7_AӋpFj>a҆lH \mZ# ᕸX DhՓ P;t wV6'eWtP|웙_G d% r:G6,s eȘyU%%pf2NVp^n0 fK Tk M[ -]8Lt`!h(U># Vh0RQ7.9TC-^«lQ֨CsJEmN݋o)"tHAithPa+O Dlğ7K{IXh K  OqcBD E%Iz qmM( G)wԤ8t r7ZmCXӌ(aO2\m iA1}iu(.xmIBrYAaޓc+?eG4x$Mhшm&jH\ƽ=;25ޣ9e&2 PPXe oFYjV%ٕ矗-GfEcBv6jTMhd}l kbcgTj_:FLQ:R(V)U 6Fwb/wjL9T9eKnY?k>v`hh1oDDT5e,<>bG rc@eݯkaIQ~sw1,1#( t9XyJKNC༆M '!oF0ƅ;Yn:T#(3_<=> eBB-1_Sʃ6 y~MD+Q̏+uP0f45=MS>*qRl;PlM(0f0rHά qt=k`6x6꺇n-R"#y,4c{O hD"mj+&&v UM5 )^VޏF1KÒ>&J?OSw.'ħ;27r>Py{ jӤfQF<dgYݨAH,Uða(Eil'd9ęL #?ncW_.}Wbx>9̏$qrKk'H,, t*iLCB4#TsXi'̕2dHlX`S(jtPaP' nYD >Gٔ@S4nF b`Xh<_ xg_8,:6vt0H4хFC̯tfX[ミM .>l{Z`XSK EHCIBwG]>WTq[dF(,Q1up7 6mr5ʿ3LazP<.Ћ/,,d_`#A<8=6b.-0,Mz'p %n.Ktkr 1 7- c1ut-#_L['%rWf"!r.Z߆M[r$Ui,RPZqb= 19="EEKh>Öz?P}ZZMURx#{Vf`0{̸d ہwjcFR% SЪhmB2ӏrb}uGSjcW;r^)D%xLrLO/-  5TۆHliP$aZM7iLuonD1nmg.9КJbA6Zm萘< xdotLyӌ4E hīgQkyZ_6Ƽ˕ET/*Am= 7~=`F=%.=MHx+YFg8 )}L) `*lwSI a A*uyϵlډv9dnGe]#CPk3qNFZ\wS^1soLʯ.')2t ldrv=2]dώ.Nnaɴ8·`GR8 l0pd@MFXWb7fP,&GޖK46䮣/L("[/vE[|J‡, =؝]=(Ct.)M ]x _|B5#9s$Ew$ksltQuv8y,B8bk`fS@BH1Jߔu딟(MXgRBck]EX0kyGf!ljX_9 D\!Xhp̓[)2לu*|ծr%~>_vhN"`%y۶]Qb0_ԍM'"@BXnEJ!j XJ$ste}.v-|̶Hm- '!:H#,X #/k+5ѱPgNRj zƹ5鱯ĠǢtN1b:eV&>qᇇ!^_72G|ʨuC{޼vf[{Nf7"J{\){UotD64. OP˒wZ}]bŜԋ2GMrf ˖l}0bl&c,]жPC]1/1:vqSbˇQˮ z&Kreaʜ~9qdG\ %^K;j=~NTО,0}U>2NvXJh׷kOhn n\?3_DpM֕ 5zH[|5OӀ Q0'#+Yyr(hv>jFVg#P:[zdLgy2 nfM!\wv'eer`| lt q̰o1j1(hجEknr!5 D"Lu>GY1/X/D8g;[8uKu·X0G˵dDn u:G>&JD|g5пډ| R] ~5bhLL45pl "=Gex\w et%ԴkB{o(=I\p d]Y: dscK]W3Bܤ2 . z\L vm kE_>8l]oJ'g@GϚ} U^g@HϮ£_PP 1[~"iv1L͘,a6fW`5]6+菂SBIFڂG .o~y=WO c,8BۢSۙC+? ,+//`CyĥBX1BO@YHaC zހ5-nŭ}kůfPe eDK42%c‚'i=L3 S!#E\?ԣW 'ۆY[* (5xlr H8䁺Nڮ ΋ӗ ` ay*wސS&YPծٚsGްT_FNvk7A܁?7и_ <6ث%SoQ8SEfoTw:/rQd]:+*9~$Qm%S37D @j/?>9L,3q]';ݯ;=iIl2eiۗP+؎esK' ThSwgd'J\J&J?A-Fx5yZ?t7jW/ڜ 1N:ݩ o\F507N_҆r,kG-~E)rw A=q`?M%$5L~̆al?tbg6eDʽs\ZZ %lL9*ۤ U ?xJL;S2D&j\ 8wuBx%k5v+"xIH0Yq1!v~8 <`-t/!3zcM2~MUﺇO2# w`afe;% 48'] ;[v\FEh~WNn&%b1Ͼ^ڞ=Q CY&#}9t5W>=amRy 篟ԇ.X0L1f^DNKn+( &m8wr%m 噪94r- 7vqKA.O`*'ΑzD a}v` ^ \MI0fx/a5]Vq44]>vFW ?{i7~t TqKG 1!ߝ@SwK0P§=7;83/%wcrXK VOY+oy`}l m LF6|N[)$?KTz1(7m`_|G_%\_uadw?s6k§h8g甤ѡyCеW HlshnD=v~aizv=(Q@wg=0Iɪ4Si))i)rU`KK69ݤ sfNT:g&`8vb_Q׫VX14b Ho R8 xtb*E=LVFER ږ_WF?d\T[tX.,Ս(|Ż{›71 ̥f/X7n0|[kqץlzN`IcƜKoW&8ug^#C:/#2WJq4Z`醒Uuh8]䪥ʷ~Kc@V` 旸hs;f֏I54`>~C׽FCGNm$)R],>NaO!Я '*|[Q5NS2qh؃*waZ#u˄X)qҕ+Vha1?#%킑ʭ;`%pd;b^ĺGr"O7, 7iqݸ@㷴wuYp$.1PEUCR+;F K;qqSެngjYIjin"0,R'۝]l[` 55>B* {>tX; L#A.;lƘ.¢&e VHhC-:T RPb0Ql܉TADU2BH7}kR5?d`{5}'<@s٠-r;W󪟅"}̪vQ%^c0. uC?rxdU,+tY}|{?F \^#1 eTHcN2KC||ew.r C/-L!ڲ[c uE%/)& %?1>Ś=ޮ9M4Wtö#yQw>M|`K* DtNdvz*O= 4+I/$EID'`(uT-UEqyt4몮'|.nbO#HojlL(Ry"#EѸKpO W 7o蔨d`r0?hƟ:yZe)pMiL[v77 >+}{ƞOS{Y(G6SwL2o<>ǖ*n՞H`{IE§;=?rK36| &63CMȈ.|gbǧ0nXyt`a]» u⇐3Oي![Sf@q6ľ|mlC*ML%1H{\fI~B N#I5Ģ6Hf, YÝ})-$Zg'Vw#՚ U5R$OrV^Wcv~d:lr{#5g_bJs}]-<9AE =I 3(I Xz4xy_ ۤRу%P-.JA LQSCH8"mKy(}%f9O%=N!YH52 @²/EV0ǘ2ʑ_HZm7~-?p>I2WR?d/ļ(`a]\.}# rTCmAh"s-e ._ݳ;7 ]%XJY֛CM%ǻvLq!&L\R/CXoJh =s.U3 C֑#y(ӂhzÁpѽppNs 6J.bIR 5g"ظ_?V*~sb%|Ds2[C3٩E`҃˘ )UA7q>-P+$6sV jɬ?ai Sh=8@#| ΰ`b-84iq"6_!1qp^:3JIm"v0ybF|߽2mlyt-Ӈ(qםPQuTyL/ ֠S&S;E;㿣99tvtFTu8/2TM'^Ajɴ) mr̪& ͫbx[N3Fѳ]ZڔBkh rįk#QdߴTnI RvzDc '/w0gTzV1NIl欬HfyU}#{l;bd N$Spе;xY UkDr6d U4Faį,S>V8_7{גiUH1{\c瓸9 \AG/%cB(ՄEK<;iKӠnIaZ~96tS`ryB f`V^.YQ$/8 h􋈁{~F+VO_H v>&y =9|fJhn|(a4P ŸK@*!H[<l*軨#0r><*!%:7: 4olNnGP@߽%'{ ۥkzWH7$1VU_(VX8RޛmF=+yq:r0։htD0r<̂r'iI `]hA?j7D WqTVS>sHJއU6Px{jl[ZrPEbU#\pۃ=*b ,Că@;$8qpa(p$bN6< -'H9w ǰ* Ƨ"LA!x֟ @cyKG~wtYT(3Lr١x]a#Rr2 ~2г$tI{A`\\lM 0jԘie*?Ŵa Al(0Vf.xz}t`Y 5N=Z>RaI)`ZG%9 㧶D{`֐kHXVZ c8z_(=~7pՂsq}a sԽZWEr*Ce0fI44Vznrgf5Z`)>aYQpwƥN<]6< \p?luucҘdhOw ojř6"ڀSH;uU!72{J =j'bKD>)buߣ@. T$ VCʇρ|HoK(awY>MsA 8¶@V$"kTrsrd  nor6(A׊;u0/ bY!3hrU3SXeT~T.s0H6Iw<~J#L]zvۘKg,OF`Q =PlF QA)l vcW8\8u2Cկ$)p2V >M3o/m7hwO0pf4!P'{JRi @9|=ȵY{"l&I8#N~ XJ%ǎgyջ15Ӟ??GB@Æo٬=Tղ^12OEԑp=TkqNyeqyk4`1iǀ$>1mfU"i,idsBlCP.⨍ہXM[P B\o>PFdZ3a@vBRHKy /FP/cXOq{0`w΋2ȐߞYP^R9ݜN[xyC֣.>SFA*sx[EE>!Ѐ<y p_WGoL:J>مTK fGWEw3k6ABLoڈ۞;D>w //>O ޔګBiYi`X_GS23.)nO+pnk twRޅ[֟A6&2l a.X??o؟XU',gH)\8< .ERwV A]vݙPVu5< dӑťw^[mdQmn&U3LͽwΕ}FNMn sF(o4ý2rh dVl~ >;6Čx10봙m2Uh )rRw^N`s 0)n-͎nm?l5#!j6&dQM:;Foe:|k")@< `^jŃy1x4xE Z3/5'ɹ~ãU;XޝfP<'O0)iت߮iFNUpϠy,uI!ϮE{nrL[C=rĎ 32};_ 6sl׷a|QZdF?P? )BTck#DtpU'!Oh1'kFFjwH% 4.taj-N9hBaC |n#8槸ovFz3^xlb훩vK啞( z]a wi&Û9XF z~pFBM Bk 3n ËU7FP")Ф4޺&~ll Fb>#k7G.p [Ow:W.=rwHϷ?P<]^ Oͦ5:WbqkvC;ϧeQɩ"̱q%6L u}is0ۉaA+gs3>E[C8!oƨ9uZko3 iBhA^VTa5톌 (UgZK#Uq~T)'#hR`zB!]6"ػ)]J/}WƘJ#Չ$  K{sjZ>BØ%ٮ\$ Մ,1 9gʋcG 4'2SS֝AX[r%mk)~ThHO } 1k><Or)QtÅwFF pH}d"TTw! &XE[LŽ1" Ifn"iqÊiyTP;Hx&?~,6.p ( 5:@V8-[+D.j=F݅, wba+5S. ydO ly?@ɶ,^ԆG0\Ynfk/^:(#+5??$7햚WaX) f@%j%&}@-49 .VdWu}70p9yj/Q͎|xwt4ڨ٤)roXVgX_Ti0hٗV<ò 9:;nK"A@MΠ nQF7,5D5s&ע)')T?M1d/'?F'z*3iyi3  "gRnK=ktoǦT4&NrVbLKWV U]I'wg9s.oJ⭂ڔÌ /M3^N3Ra/M=\ xXOθ/OҺz֧*xJ fFaUc0n8cJuU $46is}0P,m0;; ЌL@RZxXA.M$`#CnO&2s@Zd#3%>fl4bgb˽(ӡ0\2|^ %W{1[c$gIfsd_o9UbNIC5Nm=qQ G^|>l !NNřOH M)dݨ^tӵAD<gk\Oɢ`,4j#xůuoxLK]Q:?]"49!8]F_~6@tnj4h8(CW[Z$ UhAw^jYI0&'q|r]P@aFoQP)H#ST7K׹P{Ň!ۘ& cyKTjH3c50 2c͒ C3ԫ'fmHSv|M?m* !r:I  zJ3^,M^Sk{Fk/C{rbF!y /ke8+9:`jz?b]D5G ܆-(I^?bԽޛ6Âz}j~)@Ӱ@*}Sk՚>DD28ĔrՔ bqD`֭ Υ$|KK\Q|SeYoSr#?J+j{NUD}4w%ii\bay30K_8a@XgP~ BqcaUNvO ]A}֘f/s;\e˥>P_qH "߁aOhQVT_#)tai4Y|]:ƀRVCT#,+(lk/bgI&y\|!V5D1 ѥ,whL_+2)GW߰:fp\?"7w{Prm(:=M;GEt⃛V.nx/XAh_ \^oex P-zɏjCϕ1%cB`&Q'H#}FXWh*֗K<2Qbr0 %:~a!g'R g9\{~jXxy]vt @x4E0vn> (<];y!|HG4'VbXJ86ge Y\fzZ>?H3``3}Ov0RՖew Ydgl"Z-%\WM]G=fvjulF,oHZ_U;\'a^vPQVN!({ ^^t+_\,Ѯt߁ iюZC7#=5'3b~qz翓JIqiJ+s-+kzנ? \3-_dta#g}lAOq$Zg33#e|l#rf-9g-x@kiϧdL&ifOFbٗx_ʌF+W9"%*,ߕKCpAU2C7'joemϸ&-dެ E*s, x!O\ OWBgyTIQ) *}UZ}NK虏L4}E244z0;Kجd||q? G٧CQZژ=<1|uí 1?Bۯ%?_.kبrD9zt,a[1#^!?dFlPK|L:L4:[/q#LpȦԄg?e[HaKɣWrz739!Z@ph4|cߤyEڮ;g!(5`[RHX$=s Nagr@c!0-֮4*\.4Fl]u-V{UC˚)cw%]9v4"KeGX%HN}<v3}ґ]q@0>|SsU{ia=` ȏ+JA)VQU/"<\{Gb6j$h xB[cKx9+$?ȵ3"_\tJ w?)Pģ꒰rjisҁbX-euBG0:l^f_s^˩j98_٬U5fD!N|ViyMv(d qi2k+)o`=8h36QmNѬ1;8<InR΍f=X;+daBܛPMkepP%~|nV>ehZ=KHR#Tpdw"K7юYh#ڠ1ztt![]Sgc5TGxЗi|LpPJ5<:\0nSAŮfs~vmo:}&rj(oϢ 'GAt={9rE`EYWԹuRfȴ7X7%iJxZ:܊exk&Ɏ"Éc9QZ 6*^k6;10< "@"{L+ ׾O0…{{O Ϝ~~nF𓒩>a)ȧ*$pAITֻN M‹6~[c2 :X+!0t!S(3p}wL0kߚ AA!:ndEy27rkܤymovU#b!r/ЬG6iеeA,hݔ l\<;2 /V%ma6 }58[=?8#\2>e5smWRE04=+ۢ#To]tݟš[ܝ|}_/P;i;5*wQ<|$%5k[x޵h(NQ/@ rI:yi4=!DV Qa'Do6uR0scͣҎ m]@'e}ǝz [/UlAQRbָy}(IIQ/z+_7|ҌanI$eFz3eXmH*h (Pl|FT xg'gY :!P][ yjur?xz02yP*P57))9yAxf~yo:*u #,@*BDi-lVbXTR,{&iJ{A1Yl Cew@X~++`~#sky99dnf !zzqD7CK\|[yKhvds n^(7"}5en׿&Z1N.MI3I/⍄9uw`*mQ ߁AM upy5,QX9pĉnx;OYia] x ;ewUFgYeGq%:;nM!ZP\։ϦΆmQt>vo(QLJȁRB؋ bmoQ?FjӚzfk ŕ4b85EN m*#+gmyyXtj-HF>MOVbd_eAe0)׬ .S]/ 94Tpˆz0 nL/;BSPOO ,2o)8Ho $H,X>ُ#Uoy]k5Y<d|BDeO +smyNIHI^p RIGWd[ Ho G) ur&J je{9"a>i^rA}-O800cA9u*hKr\F7={, Dq>!zXyX=a{ -֜JdtH8 TQqSW/cMČqUF_4yc̪ DiqAԶЗl>$l>3uHUHFbl5n@/Mu9ܰ/tS;Avr)&3cdstbh4L8 BJ4 <&'OJ7;c1-' wLZgQ JN+ rX C|NƖļg.O"j"ABttj\hKk* ݚNSs<k 'iL7s<[p iK) 8I=)K~;4h+/aaVj1ykG[v剴G4A7e T 1/ErV[uլm>0S=-zp^p2i!/ז x ,h29 @b7MO/  bM5UU N& vB))asjW}'h{ۀ2놑6h-h>^]9Xf7@\\y_79% xnjJuN9_:'GLm3I!DO )Vb׈}=I-2hjds֙:UG&wR{t Cp?t,H}4JfS`9kTUW+v&؎Y >dCxE/tkOsMn7Nb7΍C,v%ڞ,dN3\h+T3W0 $V>\!ukK9Yڈ\>*Ga(D$]Gx2<m$Kl_U^Kh5yxՆqeለTcLE kiQBOm-5I惼UWe|)D^$XW1i-loggEMǖٟA9FlGNLěc @gRmMd̤|=|&qop{Oֈ(,:ve[eC ~! _lK|Nǖos&V>a=5nu#4*W"o e~o#RF}9q2Q7 J,cVazAKA2 rXukՔսa^̳dc~^( f_(j HN;xBl-◇ F*;";IijLQ*eyU'4t?TF YWZT37:ejY<6&U}/BoX)ɼӈ7PvAPT[q:7RFu'>on-(5ZK/p9XB3)ګu#| *_O!z>Щ!{NF|~Y7wIr!zWiY0Ta !F[zL¾cЄ9k. UCC{&M,¶]WU]CQژZtnp+-L?,@rm]󤟉!\bszv7~$?GvmDn7-iWr@C4Y$(d @ߧ`G4 Ԍ9MX(ll$^fs.XAp|f(WZx)@)oydVYNk.;5$t42|.NzP⬊OoFMNoYA"L&7]-۸|)Qc) n _j] 1z-AΡW2"R5([FT,]2ӭD :TBvEs $wg!;ZIbf'E>Q-g [Nz-k'GwK*T|`ƚ BuN M(cu>Û ?cB Eֱ埦w=Tc'~#b9]9>b'Ob]ǖ}e씃"E)t=T9jwH1{x>cݻ.R,HT5*;YR4:Ga1H$)UGr!j9 2K*?L7FCw[RLwJҾf=扠p}`O$ `woR& c̻O['s|nEza]Ɠy)0*noly|K f"aKvN>ᓄqj)1ٍ.Xl+%yPQBëis-K, LT(Ţ[G!khSr$uޓAf$&90+oN˜{DŒ{ {ˆiTޠ%mu, k0egtX(O/ Q5oTDv! E R`Qe"p@a) E(7`wdr&NK,aUA:H8OBǴHˎnEA1_AIG[].C W$o&Iz/xĊ~v㢃ͦ F{uX Y uSRt;TUa,q؀9G3+p:Pg1SvK{ʮK{ƢW:;, :}Q+%?oaP s ֖ؖ9$3y )89C֞[2jy{3 艹8Q μgx~?0OyyF:Woxy'*5Iسu6'Ő6ArGBo:r7BdRX:]G| I6믃"gi 6~Y(E EI1E_׋E4hhEf?EUNJEeVB۞0F_S6D ,ЪN 5A0VKOIkHpzCqC0MdG~e 8|7W)]ϰ"!BO^LGl1 jrg-CT)Wy۵FZ$XqҤy>I{L& %A/ w#s& +)'kQ|h/</vWcE-|"?jNϫ+ط5 k.QVw}?0굅EXޭeüiBײ ;uHR Ꜥ"IoX9(Ip-(p<*ķR2rq5S`O`3=CZɴ2VSF:&QZp~`rjdOvgsz {b;ESMUPEd&ZLƏ0.bBb.EM5̮ ZRGAvU:8t]{0#dk̅HXe(._\ֆkS8E;$?\>o 9o^hJx?7֟ D8RA w@N"Jq-9mY|W"^sam6+A|٤t5W75Φ'9{ zMįC XԂ>13BӕkGf pfan<4E eq{=,D\}{JnfW( bC, b ]Yd]=D`go3>Q @9?M 1V[یKᑶq ;0drX_4޿a$nKM|M2wS]9N?g]wJ%!B> /8hE#xùؒq~W]K 0%Ԍ 4^/ A6̉WN|uP6|RE~VwtG~=APh-BydfdN>AaΠEUh7^O zdv? ;v5ha2AR&H0ut/;Jm饻1b$W}jй(hϝG$<{!5@Sj2M8_ڊ4"V4g4amA&T r=G׽Z@d,C!R&?/KzdͷA1voP[ Td?̥ؕe(!XTܾ]l4/lѳg Jedw<֫iCcߙ^oX,dz\b{^Y+_wQBU/?&g'hFq8 `}>TBI 5 KY L^䂝fmӒ}6Md &ABDơ!+ΕD *g xJ?|}d@3mgpzT~`s]e%ErQvѮL3⸴ÈE7]):}⸟θ#tPn)K}gNE~ZS2#wMA.~2I!S=Wg,t<8)0ؚl8 3>\MA/qX^3~3b B3{ ;|: T(D3\ȺYKTIkeArze_}DϏd/EG }ߋ,ęt׮g6qhHy 2_LRxɒ3Ui"juCb`x@3/ađ[YVż3wv{!{aFlaIc*QT[#F5۵S@XT3{ @nSР4>HF#U϶ sѭj_eԨ~$ݤE 8khEW+"Xx$\ *fvD|D귀(U{ Jlf BMāq9$Mvb4ӽ+Pv w31;gExZ]lMFfPR k5l =|P&5625t d\Ppd}ZȌ>+c%&yq}ԅv~rB`V@NMTn(\VY̿5Lό'X2wAh]oM &cr@Nnv]'~H+S$[ ̙m1*S-A+ކ8a劅=]V M <,SBC%L:wO{>2J=I 'QCq1m) {*nYHN"6{쇛i]q҉,Ǚ\X.*m1ĻG%.A bDstϢv2JMvHV&W>S~ x.[ru83ٹ{\ܴ]SڍzƈfD{OY#C>2yuJs{q\9t.vnKw_)B9Xb/4{:@j;=gVCDiطVv8냷P Jis3wS/K.~i)PNK*&K0.tQ[KZީhSJU. Y)I(_r-0/)XW6C8v71avٷلpoG!m[-_:B!ag S.5 Tz4sq\DTLM,H׶}<[(BKTïC~Ԅ$(0!oH|<+֋1Rw]'ME}!"J$]:P|LPڳ1_i73w;5=o@$:j sOaV4CJr>gZ,z> %pи[}9gSgk*#y8ȟD_Bk솃`%KMV̨a%m6I#ewhAo >qA&y&ʽ)ةZÆF"yR*7=wȑ|h0|L6`(.D-(BI#]ETx +Eab\j@fhcS Ę H iGO8Ě@NvP"B^u4S?@sGe@_GlJ4A7퇝jcu$6d]#x@@O :P KJ70yځH+tۼ(Jq>ԉ'DFd ajpˑ_Cw/q@H3H8oR|Gh6/ousyTKia+44860Z7C ~={zwM8m}_XB7RةGwSH{J O `2E5&z .ޕe+_H  S]ZK %$I m #v|h /5L1Xq~໷,®':#B"MxfYyXzM+{PPԒWty`u$6nh" Fx)]K2|LrrD;ﮦ;}'YWsxrҚ7 Ҷc{W&ֈMoIl3݌KfcZ|."QC\5lXkWEY'J!M3}H-~ ނ|;i&ɒp].;JRGs5}yDwTJدl|gZe(<9IrGx:1pOJպӵlJ33'bO2}<`N5n4n(jT0Z YgP'JIϬUn2ÿl4Zɧjl>yGR{M|F3wybR(1( Qk-:[F!#QjLQ"@. Ȫ\W>G?D?Pz-+59`kCG,~'?嫥)b $չS~ -u{ V}3gnȅq riS}ؘ[fPS6ݴێ><YH{]ʛ~cgy|f̆9p>KS'hL%3_<pnzϻ0⚕ޏI q$ (enX`a`[nhϼ7VYmvdz: U3Μ"PZ|bvZSS!dx)Cw:ވ_ <$׊hJr8V{dgSD'J87N­{I)|?g&1T8ϻz=n"N%aw.-0SPy`Ab_>r* 1I eIf=peyk]b]_`L,zlX@vf hIiDBoBg)V/udLt[4{YKkōn`>:<x4VU K.*5@ءuA՟:nUK}%e"-e"4=ɉDide?PۓKU=5'j/M:Sߞ {)ͰȇVԟq ެxrNQu*_e _Ϲ՜!;W},&*$"o㗯"Sцg=FL*hb PCxŞi~?[I{H(\eq7TxjW 0^)UaXIv U.\:V,?- f-TF>EB*p~8e@{OnUm%{+:L%`DqB 8 X jIxV[`~LPM&k[.f啭Bf$J-Zx6 ?0IЕ[*VYŇtُօTT] V/.fM3$<#m٢hk ߷D^bt8|db]r66êTMBtf3\P;8-deƖW}ہжQI65}vgIԳ_& \*7xd HJA%d.݈Z\vaV4 r~z,{>U3K6ulmfKRK;bϬ{gezRiJ! ]}J^'h^lHޒrDGx ee?>r eHpy9ɿel =2aF7J^@DuI'NL7ƻ[܅ަJwvu޸w7x3EeX9t ߹,[rik[+:U!`#./9"o-,$x j x6? OF]L U+n(DퟳȘ&z]{C"1@!cDJ*o 75I-z',ˎ&սu=abPtϦTYLJ̀13 xi$"F kI waa)!:HL:asP=0r]N ?ucˍ}㹝]&B å[dF|C R/A$O zB#3G0pnqVQ]C&yv:h>24:9WAW0켊I,J5~~r&TfPOOpke %y[q8O̾`2q`&8=bFy4=v-"N<5^ENXRjߵuf SE$_fU\iQhT6Q/E16M@e{uL{ $hE|_,xFxe$A6`./r–\Qt(7O%Mj&b@v{bStXQqu) VxN|2uf8bZ\2vzNʹ2ɈidgJ5=#i}$Okx@1(N7 nT*&Fn&Ho@f]zJX ޛ* zH6/35>>zpdW®\[YMN$igm=\|3DLP5k4-q&ǎ[CAD H-sW'Il Fx`jfT7|kYǤKxΣ([jUdA.EW٦ %x35soOOȒ%ǯ%Fw ~Vh.[}HF=/L @~]블0\c(~cN6>tJJֳHЛ9|/R0eENX {C|[6@`ODtUJUehJBoڏXVkBWKԲn<4v4ޘur+h)4X`=|Ü&8EArojE?Cm*Hc9OL* !pr4uvimEĬ[->^PZwD5y%cP2-X(%)oမP4+K-isWH<Ѐ6C  [M2[[k&`Gkж3Z zTعoo|ALx|2X&?؋()i3~ 1ųR.X %?5\PL8Bqp6P1V P z Yt[c+o6W&)F^UE1~~m"v8@+t2]NPE}RQNM2.{b ڞ7ɋ4ZE@efz[V6Dʼnb֌ui)' @۠}\[aXԏ{613Tsi_Nfγ" y SPiâ{$ƍEҹ[yT1rimfp; 19pDnܬA\!Xt2GfwucO7`xGK9F(6EL boU7=Zۦ)7n*ČyO3Zir/~<)GlH@5i &oʞqQx_[w1*#Q Lƅ/aU~+0m#p=_ɳbl?p'Tv9ZUu 75{tC3e#~2*ewd<5 B:4eC!vxU#6jZ`Zdsͩ47ɤ QW`22ALr]Gɀ]naBLwxyD*P { a);(>PW rK%5Q'=:ƿ;)KলW$ L?әwȅ}0J(B'F ϐ~ueÿA6n $hמM"cFKbHlAd,$wng(/ %~1WA%3.oETb)<@=0W(FL–V:GJW /u" >8'B 8hb^5hTl-P.yq]1,.@@,Y`EQNN/=~7X["U{@7& ֥g'7]E8A'1(?\9K:k2V拲ʵ:yIFc;:;NYMD0j{Vd<ӸqE1#IbU s%DQEWj4|nK%b(rNCzm485a}4 o7oX{?u tR} $?.&J2"f1=n忄9[xfyAo1;'?ޙB5W(Kg ƔAFr6[_ :,&ԭw[vASG) 1x3Y[Zesexoc kQݪ-8wi܅aW*+k^#^ pcEl*YSF -d}C! ILPe179!D=BnFЦ$LnkDϜ`b÷#IB7_ަրtTcBDT Y[ moHӵ%6ÉkH˃vrD.'x>يWb0Wbo8PqPsyKW19}xL;u39b#$$5F' Gt0 ٞԊpPɂaO [f#XR"S`~ ԂLIX]1,j=+4\LDa!]ڿ2İ]cA4 Hw E#Dk#ʑߕ`U5m.P֨xd)Z1CQ{ZVu7crMt?©Il35B 08 t@zj6 i =7{t]U%"#^ <-5 ުmuTzw;ޥj!tm@jk+D$Xڷ}eU;daLޒ+C O3v 2w '>(uY! N L:+SI ͸>'ؙPG!q~@cH?a' }w}qD*D:z-HFBlRæoݒ~WlZ~K>Pa:#zٱJ顮tisʱHYMa&@}=Oc$Yb&oB8f1u#1{@~6vK1}#GR;&Mi:(0dpc0IJ+]tL~jҫ״^t/~SmA/hqxuzD }Xf %0rujrAH}xBX?$SEWDAzūao'IZb[3OZ0 da"^ C(Q:]́2e>)I]bIhs+U[UI{SZ61| UUgyg4-U7-EisۺK m $ϐ  )0*ؒSYΛ.`ZnP/-ӄ#*\p#F>2>. 92aGtEa#h8h5 ʏl>J4I;f$fw]ҁb|GIɩgRQHGZ;<yЈ! ^+/Rtb*WUY@&5̬eMQq, ZtFu z6Aঊz )Auv+)'šg~o7|$hsaRwJs?Sdϭ#E[(u渃,pO߻$4#.G[. Ǐ>u},HzK3ߟ+-Wtwx++ !?^\%fFoy>4v+i@Xx"SE@*_P#Ș:ʦ3i6k^c2APJnHWxY/ltmܬ.*&sXYҦ~C[9/Á0\LKh*ǷfIkI*PXҐM·-D(;%KjW Vz,QpB0{Z;fp"Q"./A\@l^mi՜Nvm̝N@@ -'adΛÕjl&3$D5 *-Gy^'^ Ee>txǬ.;1g=K0sO]u (RC]=H }a8b1 ސ.峊n)@۫_+[N=CjV9:t)o޽FEWfV,v( (I-w\"mj5VZrC(aW䀬xYtaKd 8iDt@@xO_n壓BQz +7#< _, wAPִwʆ BDc+m]_aac3Bub}Q !V?dkM0j~55;͘Vޱ:Mri Q .d@a%! s 7o\o J}q͹0k~O;FkF]?p@=֙eDN '?X|۵PWǍ_͈L"-'Q9#T]_;7 _GshWu,_bkvAJ5 5 >AMV*]tC yg*HtOfs?ҏ%6,Ge;'pJR&7!0BԓҴn4vi%ãi\Y]Gd` i9g:[P9 /QOjILJBi ,%4T?an ]"uuxgY*D`Ik^=saU`JQQQqk۞+:UZC(`Z.td܁!QF<1%냿~N7 MB *3JMXL8$%y gl,#7&!NT =!gi}7ul:wh!=xjl@Nr`]h<,4R?HŪ1;t&#Ux:5gI8kC`*49¹.="܈(j*JlA_G:)-߂]&LAsrPߣU*ٱ9@ xiMvbz~aK~RoM cJidN~ m|LyVTf vQ>ty瑰`v|7}O O|gp5R`Y.4z(!Ca<ɚ_ו! SiŖ1* aA)"jz]K,XgԶH?T3M>=n#%cG|*KAkZDž%6`tB2 94_ =a& n=Kko#=̩G'⢶j76.nWgtވiu=MjLLiW*W8', _?w~i0ĸF0`"wלp)=z3Z ڝva4b 'PkNU[[zZMM8?w\GUE3l3ڒ\l| zR;.㙂k`_o?NJVSc%We%s8komv†f"m=ZạqMeJdzx$"OSRz޿E;\dkU+)U#*(\.9KhPWHJ̼.{G'rl1~,S; $'%MiEG4+QV{O*`6[dݭal>'P5;O95.d;eB:c*y7YHDW-*j˓bِWp>#o,\`UGط,B3l3e[ GAJ2Bi} wS+Ͷ/x ^q5ͯLg8*q&`lWWN)7x}d HHJK1׆%Ӕ #;%ԼME[ʲ@xe$B6UY'Uɾmm@iI G6sq1h呃Hg/ۄl`0A0_024M6N$"s~Ӭf|wTԨk 8Ecgzvkb ˂Z^ W HG!p<7Ԯ;p mt',k1[xOYlK%ni4>+wQz vee]YCWn<h9&L;$5I' YMkGnn7 ֧U3P~ f#ƨopMO:(Qs6$QlRVݑjD5WY"y0{/hB[N26.okWќ(玠0$mo4|tfUS }q",z?|Mh3 $Ս2 /$vr@[k~,(O[@L ܘO)m6tN^!HHzQʤMHp˧|tuߥP晰iG,u™6Yx 0y֦Mhwn;  P o]+7}1A>]u" B^hDK.9,#tmif<45"˖}iy H_kf_ҩxp̧tY_:Sw*l|? \]uOƒF2'pɉ M1QW/BRhwƈ~wnDTko${&J,n#<9Pt,,8y{42o,X6|ٸHwF`}[ \ml69(׺)ZXx7bGDz2@u6OףD7(bCf*ޔuJg }8\yrL a0H`lJ,xoCpR8c5Ah)Ri لz(g7l_4WgB?҉=e2-R()IQO@&ޫl"m4 ``\-LXG6l/b}*)`7շ5Z`RQl6swNXP4kLWRߍkoʔ1b@f'}E)z먶-P bY]%Gl]v#KeҧFxԇgy@ 1Oj.e lF8>)r&S˹o Tccw $$oG;Z{w (r4F(&'22TOjeSpMOe! k=@DiNF0lex&:C0$.9OTh&R< Dд<ށ}Hɯ:#g{lÚyʫjWtB?cӲ8d y+.0Lr.8fy[VN}U(c:[ f8$ ԖL|"00<<9'ٲHG?L`)(/~xEi\̆(k"*~OF]DAAϘʝa! lӷv|n"ı{~y0+z"konى3GK. @Z'_;{\ڽ+}L)Wr{1ZZ}%Pm>id^$@bw꽖J .& #~GO{ ks0 ^/ԓ#6ݩaq;B~Ǚ"nW.} /in҆TlSjňW6q-~Z+ēpK!**&ӶPEdžN-r'">doa;Bi5z_quy.&p֠w 3Ô5-&6~ϖC=ٞHҼZTڎ gb{K U!7gmuO*U`O ٩zJ5#-+{n;2 Yyf rۨQ"(()T?DLbUґbIїf¼Tګ02:k怠e}2~! pLd9ޛVcbOOnowI( jg ֠DĹdyާb|Zq($՝YAн=J;4ooI_d_[=wa8Vv4&)-왍4X˜˸r2cFvpөU {;e-2bl܋7`uuFToXh[#E+ Uekv umeWγwΘ9CS.?Mtb RTU Ys= |N6<ƪԦ2ܛOX`d]ܷO׃0; 84ZO^X4,{\LtC:N$= ~ /Y*Xdטrmdݒ 2__dLZ&ćeU0i:!L# 8K!qڝEKg&e .b-tm`nrBBB#{Y j؈tE)nv.1 aw`UCUjNK@麙,o$DuO:_Y?N1o'BdZam M5 F,٘#l>e{av̈VIwB}wP][=ߐÈE ۀUKspP#^'pP#߀L٭MӼ"(jfpwNn8^xuTфEi2!L;/TѢQ`>ʙBDNuq0!Ӓ"@^jd6m=fT#!傞g%nU?WiJ9I(iC|4&P;_wOY$qI,/x-MA|1oña¤t!W3 m[{7w+_no~r*WvҧL2qy$?Anٵ:/jqtI2ݢyHԿPkY\~uOse^n^q >-ub(yDtmk_ŐYdߢ<tL,gF|td,{,56( w嘦YA@X1Gfo>a~DAArJ/58!!W[u Z3⺉;{"lY8]´ߟ. }Xp_w~?R);'~<ʃȻrO¼@rCj3toSIB" edLlS#qOPHQb.6܉5$)=S8Fׄ2&= .5 p ID Jݡbf-ZnFMVZQ{:S7i-v¢-qҥ96zA ^{Gmjt{Ea[7f`&!R@\xw^8P{ %Җؼ9a2>DsѕaiKx1rOQ}2jl/ 5 z*[6ot: Jb]V'Udʏp(S{[AqIh|U3MPѰ!cg^hwX6/Fݐa74`?iG:`ZH60h[ʷ7P K , M"9IGٶ<6Kƒ} 7lV}l#xB+syo㢒Q!, A̛ũc#uKvQ.W^h7b$M[iݴvy%ך>z+Q S VFʃh#INlhX\JT)9Ag y140ʘNCa;duIw뚺ڗz@$}lit`#*Bt7^ }gę%]\pXY80XP.-g"^~5MiK_zSڀԎ}+ ^M=̈́g8AKDhAނO hׂhRzU<%-J]jr1ADm-njZVi)۶]hw;[Ur^!p:Kc7Zm.$U< "6 ~&ǡbM0Gf4 iTx >{d F r3X!Lm"d|H-2|Wg,St 7اΟ[#$??VKWi6l-8Gl25,L4| ?cnz͓TTQVޫ8!=MWU. ߨ>(9ۡIM M[]M O;>tY A#Gҗ4hwJ/O' QibAYh,#1Y K* d/oX©ϱߎсaN%S.T)# 8O&}IF 2Ʊ'v{j(if8U"#vEO.AU6[*u^V2LS 7R&y k]A =?H4P3c9Gӳ+3Yd8oL>,9hZ {*Gد~tLTߴU avbO?hf҃ڜ4Քm=/Ys`'{*LʘE'J QlkMm95 +bfsч[5r6h9#d ތ{'xGܞS٥rvgeQ$D⭓jG |>c'g V_mَ]hfpDɿ┧6,3j.Jh5<ޔ $t2kd۽MCO}A=de`&g݆? #P g?QɟOŲ4XkE3HoEX6FqVyH@+G񀦋ݪCbo`CahqŞ[ .MERT@}V3X5m?lh>陈%Xop#!k 65-*n}% ѹؼ4eۂ_{[y[\É#Wąz^DCi\RE[?SoXO`q&>yD o`ꁭJ" tu4pHMpŁ.@]UDycAޜdt=Y8@icM8gLd|U-r2b ef8_۴J<&W|ź_'nID3㬙 79ԇ%/%Y_J0gBZtM2e]&I7FY(6!͉PYYpH *p&x@c!wd@߈Ob4Khnɭ,wU9jeOҢs/pTmjK_шf%'),<Сu lPJ82UFlnױ`~s%Ks՞Egr]RZ-֒ U^;/3!q#ߏ 39oGSDT1C!í:,SW SNVmwmOvv?PjYu/`rÁ~_$$ %ݯ +%9 rJ`4*A }T9$UM"||;@_ń2Gqt)m`KqL@2f%i_ϐʠķUˍx I1wWdRbA:vה#Li7%L=XϞ1ϡJ;8:>[Cx5vU ٱ*L7u1_Ƭ^S5j@ꉋ4ӳel}3oф CSP2ʄʓ\(0; ךoDI>Kau\1p[`yᛯ|R { դU- iO~kLl4E(L)9Uh@`,<($U^r 'f,j-*H$wY;WMw)?Џ@-U~G2bYJn5`|.rHVU7U, ta4HS)!J/,f^ƒp\8YF'#dgNE/dЉhAU4 kFTƯV?݆WS|3Ou5@DIz0anugѸXLkTGyPuXÕ[@"CL"v4p諺Hd!gzX6חcեeXw(Q`|P$7A_XlAB5˰БjGC ڬ%z?o!  C/KIE/ՑߐuO$fQǐ}%Ag% (4o%u`8LØ؉!/۟˒f| 1xK@þ?^([F|T getq5r`tEgMRkx NR)C[lAw˙v\+vQ1/Ȕ*N&E46>(UkU0jsGNK~&W kbxNk+M)eV<4;[ߢDCL&ti(,d!/ W5WͣX_5mf$aL'^%7AHw,Q=fdN=blThO0r[btԳ= Q1ÑϷ ;15{$q@[dE0AxkDlLpg{\vRݾ] k-َ{f[B]W>g%GaRB=0I W5PDO:tFTzmH")=rޞNvZ/YAAp!E` w}|6 (>rZOWࣃ k7-M+ԃ&fPv)v![KQ[J!ݓO*ۍO֑ ozThKkX\ $)CC +,|hx : aOGibpۀ); EFt5>+"N"fCm&C$q APOyHchyRsb>bbV#"R7OY3yVRva6B0x+9q$MLIN3<_Vm9cXK,D-cژ̤պ[uQ=\SL?~P1(MM=a.%ROD*GG1)$mF)q~ C0kID9Xh9͆%ݎ{=`ei.g\/ņmQpF.(ti~U g".{hȱ3:&;uanv*Lv:B@Cqq$Ng^i 0| =.=u}5Zzq&۽#?XN4&X;yogàǯc+ʑ]1lB XŵTF+'RHܦ,CʡK6mq޸>4'$(Q6ZqrzS 52`e >):w杘d(MĻ՘=֌R?ȁ&%9ZgTB$26C"$6P?@ٹ)ŷCBNy7gSϝ33>)(\ALo8K͇65,ľk$.y^gase&WA97 I&>uYYb12mҳN$"rvCf P \GL Jm!H^B/{ XUZ,ʣеD HЅA >_{VWV!Lf<-iw5ߒm*W/|[+3&Pt!rm0[,Ԝo} [+'έ7/oraTOvaZF2R{zshehCs=M[-ꔔhFrljm-%Rr"qT4=TTm#AS5ʰhQv(̻b ާ ؙxlr(٘6 \P̸elaf7~ɽ=tF"XSIA~az XrvIqm;; TIpƗi830z'PHaT"fhҖ jk%+|9bd9wX7Dn:szQOc UoW G:LsIQQY1!fKғ]:=ag㳢89Jø4MN'x9L!9ĢfxZVpi t]?~ĵ^O%tJ>Hh>ZR#31mU ~"zhVӵz9.[ ~c6\lM-}ڡ=̾ ϙ~=2Lj}%5uz(-;ba8C4v}N{D&cƒigq4 a{Aь[Pޭ)L'?d SW&J̵+< ?9@IR9 7ڎR i0"^9]k}Mz}1uOtFV7ڀ_AiY^@K=$`{G5wpPө&9MoheIQaA('q6!8`T^: ٞ=BY'?so!TT(֧7MB6BY]H쇿$}yLP7$)e}Vs7䖠ڑ euD'OnFq8☶kSOLbV,@H -lѤg;tYӳ6hnYw8mY -%Wsg fqi)hQTNkXLG*byNN8I-M9DBJԵn t e(uQy-ѦM y_xVuR=ڟ(*Gu`썡E=;w\ሰ@Ig;YmgO=XwH9TPSЃ8/||lwYl%Re!K {걿e1=3AWpcxu^cFG甏];Μㆫ h̼G(kMNؾD埳oZl$-tN+ szx:̂YR&ۨ/a٘獖w˳,-:d{\٩ 5tMG!1)H=*sUɎ;ZCu)D ?+x1ER^`NWVs&JШ9.V_V=`+s%2EԜU?0 eN[l}4vCfj1I 1qeo3^pb};Jq%$fY=$wf/R I:)/oRlID)T4 18-$֭XAB}\A/Km_Adz$[T>Vg'OqG@/t8f3˘kMMn,˃s{Dc1Exvfqcar2Qc.WTU#Cn@%AL|=]Ct1%|cAD̃7iǘ*:њr<KP{؉kanY y9v tėw3ͩ랶Ï 8;?W*ݳb;NsMZ=$3~u3Y֤kħc}{H'։> $ i=1l͘Jǽ|8xc(P8AǞq?_cd?ɭR2?<3W#>?93 +5w',CxQ 8%9 3UNt V&RGt ]@`P݁U2Wa̱BVC09뤍erK'T,c):n9_E%A?wlFIҲ]KA] cb!K;t"tF#Y3ZU]S6<^ՐiYl(8Y1*K`& Ua5nj)R7$1_fڶ?YʦАsSfyl]ϻa❧}RW}= ҊHLg/f+{W7ep->v {lFLNQʔdWTv?O$C'4 JQ08{V[ LP-eAY};:nY„Rk+7(꩘j |y/aR1qlut4Fڱ\E=n(,roQRLw@Av~&^ⳝ~F̓XkvDAXjheKAboݪHp *) $5rshճ_ ZzZf.N9Jf0^@]-1Jj1eN(hyqjQ;u{/7`~Qq1i!TEٰNEA{J;3no/])*eZ_ AWvέGEbu_cb….qD HzJWb:-)Mӿ|aI`wդ2~h*L~dR:3$b+D끭Cw̪[q,P~Upb9B',7 AeߗL_fa9,l`[-!fFJ CD+;N<84C/ Qv6Ϝj6^ݔ !,Dn:R;{ټ|{MǛW P%W1=8K)O' 6{:dF޸:$ ű?s&gLShĴZ{p#+4#沫 ?{b@Зu;6_L#)ۘ.<>o#!=DyiGiٟt,P`{ e V姥;pkgENȋ5ȊYo;Z&UP5Z dJoc"Tpq:m @# LҘ%Oe<:_W (A:f[kX˜q/v>l---Bs[~954w:kUIay5֬@Ξ|M-ҍ»f=#᠐{p{{EQ)lu ґqH'J/X$'RgsYFlF25#n3Pm oc3DBm9ܰ5$ vɆh#*'I4-a[A.qxޥoFr/aOlj` nb>G!{eb,7NU~ H@c;s;Uu}5Ds+Pg4$kQ@#_kl]5 Q05m[%9 %t?b{_̶W<3NcH` CBz&=*/=?lݭvKy|10#: E\>@q"ڂDMs=?H61:[*(X_ r `mԟm"`('XWK̺x0Mjwl/#BSD[`;ad0b#; 7 0d 5vš T4sm-$s}YtaN b| )*Z0rϣh<ؑ-~Oi#eBw$_7 i.4$a=j4\`P3Y~ rz" i#\ߥac>yѕ!`b/QGiGeJǽ Bt7@l>0Jw}:Y4 ĉ؈ 㦃=;P2+zc)G)|of0ZsC q.Է<,Gh ! nl_'nqh&hn53[p: PHpOr]O07:i=7.\E֫.7Έ4lREJ]vȬs#HO܊Q}iuyrXq<>QG4Vb-Y4mzKYHq, X!_,7hg+Y:?䎮ۀDRFTÖA4:ӂZejj_OuiN谴]6h"Ôo~}2lC$ChZ)~[zr*8hdg)*HN 2e]y&ލa<[*>97>b=K$zg@m{j6nGthvk-F㹽|QGB'eaun0s 9Jj,(d H6;1豗7в%>ZzL-T0n\bLuir݅ڞ TC[* [?y>ݙ5fp!2_js/~W$*rD`[= ;:Ү㟾 E]<9~tu5INŝmưJe~+8&@ot+d+b;k揄o%9-8hf -Y}\[Y.NWX:`ϰ"W7Oٳ v8y#* OlV:fcK8ǖ71z%.A曑^KcwbϻwFo2C^-U, ̲ 09X{6H^\ ǚtP&bc A(~?r^HQwV 8ʥVytlE:{:>=B47b,{ju1/cǙyX3^f 8Rd*ԂYD} 7|'yc^FC= M`hqlP6TwxM-˚wkE8%H0R.AnNrXγSXRk|446z(| 7Bxr8[W=͍\'( q`pYEwf]V~2fێJ HT'S-ZɿR}f*X}aEa7ݤy«ͮGҞ[OƎH(m cL }y&>AC,Pr qUqiF,^:N4.rOB 'K^T`Xp_U~W̿\n9JbPba<?w̸ shg*v{g;>Ru7-gN.OGTʈœlGI| o㮀H*ofåZ)W#,)%ra^GTXs<I u }#$ =j/d,/:YNj!AA #м!ʚQv6]A7ٗeF3.4o1yh\~f%ĥ)Y<GY "n.2ϒAywC9ɚ?V+:U0+~NRU{O`YvȪ*sQ5o.oqP'*alg.z/pn ;,6|^c߭1MխN F2  sݶǠWAлj@]lSL_.NUԷypYGNޒaV-,A4#5-d2k>gN+W "{-:%LS݂QWE@_QX) 8j=:g4o=mE8|4->*b>0MXy^@HuJ/;qIwB}1>;uE߄mGP׉ia'R b467U2P3ު:Í7IV$2!@)\>9Jn}Z;"gY(qDȿؘ2v gO{ʹ?q0.\W_&z(>huW7 dSDٚ>$#T=ůj }t *i @ii:}S[3NSYnTI1nLC#w*thxޜEhWgD,=Ahb(S\꤀Mٝ}%MHОGb*j1Ax6Miw`Pb" 7eCdu❽(qEdu9+)+ @D<&ȏ܈AIی_ȃM&^2iV bp0hܮq!?As&RI1hVpѢ#yn6S0&k㛢4rDU+1-:h1cP^y=[ Uii vCA`Kz }=Llawrf{[\#bY^Q` ݳ\ߢ|,W#ĒI`jy }[X)*h; d힯YZԅofSNt6%SMba1o@ݮ9u]@ֱ4u,c~o-7Fu쒐8StiH lxź o0hX%(>؝<> :Ynb9板m~N( GC]v܂elé# o)/XS#>,y6 3h@rxfk<$(=!0žYqu$h3z]MGC+5 U@B7SS6yȮ0'ťKGݹH鹳Į&p #t6"PhNɄbIW)̑\am~J3 %OR@x}x~ø^hBTIJt^D9c)e͆.8qt RgLI d5rJV:wR8 │C.Bf/CŒI#=Z5ɟ[˾Y: <; C{Tf)ώ\ S @ :yo/2|Gd OΨrsdo H%IiOd<;_̢]$ Fz*%?CKuL?Ua*ftt|8O5~]nBHfHtKC!#v%RѹC *䰲J4,wۨba5YgShr|HѶ*%x>Lu%'{KlfVkp뒺] nlrSOXrV[^sE4]>axM0^A8<0Izx",Z ܻd̏, wlLmfkOبR X-kIzjVm7#fwFbe4O(PWʣ!>o =rtmst}!]W*A>rSض)q"%.S!쮎f2XJ^< W]!b`iVx@]1@B A48\>1esO17nӐ&?Wd]ӭAyw?AĀ _w64ucw*ݛҝ=gšn!Z 5^sỒ1vdvnIA kMүEm Pb?M6`~q! 1 YlJH`}h>WEi te_6@|R\b+In"4)OP3SY!2W>LPd/ML/ $e&Ƿ`>9,du@[%$>%j|C&קq=QH$9$R HRfaFA.-N*}H/ 7fU#*h v925C=k!"XB/PܵH^qԋ!@*Efh+ѥ_VHs@ﭶL&$f)UFD^CءVt''Oou0xfO1>R[f\WCOie7ۥYyQgf@ p2r>wKW &u8׭wDw۳w$WvlIC'| zTuT#.G7[0T'+82ݍDW;{m/ hZ%Y:_*ə` "[kY*BM'6Oސ0ݬԯ<5@,{PBMX| ؛,9D`/K/!̾ѵq}h12#+ѥCvyfA(BHF:Gԯ=_]˦E\ҎF#,俓R.>0fvn5IY)ޒ x92 ril":F;pJ^i/2/Tr`tϖExnORū-aؑKEn%:0ſ`3}y[Ӱ7 /Mzaםj电{ kbQi^,v/ds=7Q'{_Gۚ u(LP*\1蜦C.rUA/.] '_Y:laihm*K-5_mEI6MvջXӲ̩Z;0$r0ad2)i툁VAtK{PǬ> Cؕe2-q'lv<1S-릗/ jWZyRw$4ɲ ЛDžШq1Vqmo/:gi <%N,9QkPꇴL.oQQHQBɤrhr;.GJCì]_g4ܲ{2A6mK<׸elkU_GW unQlV~;4O/1 |T{|'pYY 9A̒Y̭!lӫoPXҪ&[t3[F)Fmd7mAPu6tWwXx{LԲSuۛ5Hmszd,Cb%䏠y|=,Iu:3|!)v퇻ˢK<PNiQ(|$qnJDr/dWM98ak) j$*?2tUR^ˈJnuNv7 Q[HwRoi(:y<ĂޟdPYnAjνFT VRᛅXx&)=ޏt޲[Hzvw&ՕS +H֧0B-&p}X?u~xs^f7\Uxqe;6 vq(Α3V[~yj&]&*"wsH~fv(?$fn n;$+叙{i:$T_lZV#*Q+|/Co [[T첵C"ŸSGda*ό䶊xi½#vם`X aFeKԷD=2^^j.2^^3Hz7\\aNW yļdY,"AQl'"[y(g7GZAndy= k |1 yh-߶asM$TBZ)3N ĢWX^zPV8\,ORDM@7&S}nq "U0m/CW۸#IR"H#;ZT&u!NO":7L!jm%"@PtYEefE|rbjՕ~նqG.Y$9a8*AfKr|lWf7ݏFRF>>_ezs~8ypbb pHs4Q=8c8+L A7 i:aSR7p,X`:8H]"XaXu|J*V_, JN5[LEWm *w!Դ5X힚Dj!N9$")O/vp>p}ăcx-IKkṢnq9>u2A!MDO.XԲ1uZ5Ďhm磊;<DUE: DLvӔre\GPL%6Tzc}~5 #;pR6()cУOY6ƒL¿ՂyeA;(ZF$bW^ htad_$nc4ICxc8Yi~f~v-QŔ#nC5$3|X͞#ú]bmJ~O:h>g'zM*,"4kf!t+Cs)s8u"rtT{yh.s5<9~[PQΡ@kl4rC G&o GP$gI?[_ga ꅅ ♀ DeXQB1i GH6q+m&?=[!!ԙ|vT>+ж@_79eh%|L{z?C/3Fy{+b[5{sX p kiTCtlGs QmJ`%/ECK+erĒY34Q*aHR~զe/ԗnqɥZ٠)-ߊƽ ܹҤ{̭4kB=$Z\R&)ΝpB5>>c&jGIB7gScD[I@<{*YvK޷r{דFC59;Womg:UshTךL'etS!HkǚXenCO"ȡA4Kih#yg%?Sv?l8dzn(r)XR!FI4/sbnD-Z&A3zg&}q\~MLǣ_;wV8J~IF\׎pYX+<ºP K(럦#S\ ʕ)5$Vx5&GK&sjB4rŦ5 ~ R,`8DC:'}\:Z8{ ۼ)&␇q/7wR*^ˡŒcuUmŎh}^h ŋuĉCQ +"tD u;ero|TTT|-|Trl.y3#Wʼ!՗ &>*rgbe7J0M"bץB|]IqU!x?W\SkV:fʨKH4xD(X,5M{RC~)%5SGLtK"m+D*[얇mwlR55($hmJcsy}~R=/d8Hk# ą[c/JW Z%g^cJa$eXOΖmIaUSBDﷴ3l| EwEלC WHDbbٺeʌQZx: w֘Gj'1 uݽgnT#ȶߏ"vU7yTF}tCaS "V ͸P#.N22z,Z!@vтח\E 3e) %Xk],|섟~ƥI+rG0 "Ɔ73ާgN|bbrWU7Qo$v?*Aꎸ9cK>CF0f:8a5c<6ifk<4'G d~@X!5SLd%wm\;IM)Ҿy Yex#^.cv$BR,FBc: IiЇVY]Ng+1KP'6I0Qw#6DY}kcV4A!2X P M`f{sQ "#sLGKO{ vN-Ƣ_zaky ^us'TޘH[=$kT儝q[p[19}j-xUv}/j *ŁjK+l!D7j,Å&"M+'33>?5'ցDOSFS/^UP<QZՔzz6v)jyބϷtHcT4Q\ dҾ:]燴#BGbwtOaVPA Uf(L s__c:3GfkQyعy T^ccb5: +l@^U7 W !J;9@FW`eDQY ?pCbעd9Tx:æ1rRc_6NT.UEy%Я[9,&:e J|<<[CAQK7yc=N ^+h=8_m&AOEoIly yA*VVF}^x|>o@; ߱ !,o3ODXo,Wv!ѹ] ض9۷7'K1ka=1]yIel^T/ F/b~9/}h=P,ֶbRdFK Zƣ褢?1؈pOK,: sgZZt>;gZ1F|³QQOgп(>9 23zGCeOE pyINHBX8qq_{cтC:'H}~!Xq{6gu ͛rJ79ZjTE#'X+ 6͘™.Qձ.&\P$&L^) 9Vt}%|7_ Fsr?5PH1CWk;*A>Bu.N3H ]d>Pѹ Utyp(v}ZE޲F|v˔BwtLP:p$W?RsO2@2)ǻ%T';e`Lޅ3 "EXT##2w;;<6Uد0ƅhʃDWdݾ5t79όB6{(hf mUc3i1ÚHw]Zf,}W^qלiYl`,Dn!J (:,z}4G3K䴁ğBpfǴuLe4% )ݙSdLanG 5JlOv$ pB@|v3SqÜhn](s\sxfWBvByywJ=:`qYlJse֭uҙ(tw+>>XKx4؎nF'pT]~$$Pe.YW \tP!E~6 rn[EY>-30mQvdM:0 o |mZ*g!$fb 1* T*,eG#%|$M4n#et"El}z =,zlԄ M--Tm˃jow$yg,k n?n-0т!HRr&M1XCƠa5b9,"UNS|c CaO`~!%ӻL!m8;JT?S;XzX Q~(iؙxצH-8 \ZJ}RrRﭽS^B^ #S *k0vB*kq$T"U%X~{ X/al9G+_ziRW^KFgUw], 68w_J7sq:l+bƅ2,]JNkcoYR,b/A!瑛AOD'*.KԀHٿ-'[Q\xfDGr) eToIU >,4cП@kԼibk F9(Kg{>]n*y Jki~R=E'L?d'b PܦZ܉$?›J8LMW[/%\ :6 K|aja5+7昽w&ŮiO6-?lC0U.ԺZ :EG]j>ט|x;BW{c⧉6AYXiEE|UH#2+Ãk36 ѸD݆8{?y™&OԃÅ]u6,9flG^RH8-^ԦK(<;Q!!>J!>9jP>yașMx/"{i3 x; Ai5)`'쪟 R;bDeq)ZW(y3߽l>Cq EχoB܆_ x30jbTȳyF H/D{Vrv>eBbA~y&C2mսr?Th :Ty}Ԓ#|J{W[Qρa*vYx/^>(S=n8(w&yU>3k 1V,}!bS8Hc3]} Py-S).ٿˬY FgFfGJ8k^9߁3~Er2Y2,UFD -U2b|d'K}ceu40,fş!dN9;KV V>٪7TrMKg^]4F>ۏ6+Gu|?wb>jFN^Bu{9nRAOdT3S /F8@`3PAeg`{z\{NJ0IFk>7ɍ|N29C!0"T,wt }NuP[ǦOStWuT Ŝ< rDŽ8Rp4zI%.1ޣbKj7s1TkyA2ٻ@DS<($Yg$&BAIg%:P>E&PΙH2D/%dUdf/`4^DĹ$.)x }ԓfR[yEC2˰⽇طC=D| )*5<񵓶d"iAZxP*@4\69n# Ӥ8ijyJ[  +xo;ϟdo'x7)TvH @V:+鈄P4R,N dCSZ>D0WHkz)4 Z~yߪMMuZU7&'sR]݊q*ai~%LwCrBrRBn[ 0͙+/lMRU1 a>9Q!4U:@C՜>K,=c0)ÎNg)PIGXMb6u("Kѡ)xͪtuîJd%us$UhyFTv~sl=Ts9n 3 c\&Tڧ6__b &-BvxHFԉ|&: -fMZ.vs J(՚ %ܔĵ 7ea \%4/2jGz.Fr:ܨ;KP97v,=W0} 垜ǭYe a իwti6%!i Zi^7^LTZL !CFbZHnY$!RxXTܼqi9dF2"praT }sa߸ڰ2 ӊtП@AtcHKarV?b g]) a#[e(!d}1\UKS Iq[vқ6DRlx4$+)D(M ۚ]ek?ZL2\`kLV3t?7: ].?{LT{5M* j  ^?}+Fq,#  Ǹs3gut2ĝ wh_#ͿQ%})P'1T?bAۭ! IXz"N0]']o0Yك4c{Bccښ '8 D8KF{JR@x7-lOs{ja+)S7kt3!+OFYlSՒ{NX_)wf({]-e^iVπEbHJ&aZg$e#SƎKvWDZ-I,oƨ^;HϮ b<*NRy2!mأ/΄f72j%*/BX'B"7IOY5xno9>Lt ybV ͤoGst(? 5  ٻYҵyt{/Ky G Y?(Y@^u`xbk?^sp N@eH4m dހv|240祓A/Q((k]ֵ0O3. V}CNwdM{R`+eV \?HJ)UxCUEu:"Y}8p9?d!=N06 w r 9&`׼RGxtl "-L Ì3Q.+J/Fve?+kmzzU"μ3iY3F+1VϧdvϬuwC6=LowS~yNmOzR -VXS14db{p.V 8]#Wg+| eE%?Fa<8Mp dJ6Vs4.X/vPm CgyTQ 1W(EExkiEl=H,nf~ rզ1_'0yc1h.Zx:<hշוĸyva@el>^HUIXzZ/*eB`}9Pa+dN9+I4|\PXKy-t(.]&wW0mjO0#Á{:#ѠhJ[Toi2`BES60Fo,z>%QW*u֩l ZSZAeX|9Yя(\ӀRD!31.ِW#>qz4RոD 4edè=Kq 8&zGZY 'uƥVZ2ܮT3˗1YNj&$v(k`xM#@} ؑVjq3Uj6 )PHZ 1NDIOg\u}Z!9[仅 ko#'UaFcc>mMN#Mr)Hx{މ ХaQ^Ys `gl` ٧TӷmΡ ~P*x樓m7l}TF'! I"A;f1˚fm٧_|H ;%-%C&uqHY3:NG)/?SwxaL(4iEزi`@Ca {GW~!!d~S?y pؐ$>]5NFT[,Pɳ8?ߞ~V1FnlP@e eQƴ`UN 8"<,!-5Wd,A nu(\[%q.kzGgV2Jl0WtlSٙOWwcP?h?ЕZG^ .JS)LXgHu G'P>Y"ĞY;JVCĬO|E*΅6֌J {Z-vw)J2ngnQ%„&N~ㄏ$ R s_M ,tf{K/i.\E=Fv/mᜮf(R*dƌP1lFy,V(7Y=Q2eӂym=*#JNWBJ:\ut`!W!Dy:?ډ?CVSmu"BWAbƛ0b 1BYCiz5cǨqO( >H'~ -9>[7 jr9" OtDU2@" $vk"!7ϟBZly_+&VL,Xvtv\Y9Y`)UxYZ%I.cGGo}GA8 j#*H4Y]1Ê__K嬵# VbvŃ<WSKYW`aTЀ~073СbNTnt,/* P֜ >4JÇaۄhix] 0͊4~/[ֲznPgOaj$\ϝN)6S dtu}O ,/&`%H*sT8!R\xMדq0tirarSؽmE"[a#e֖[sOQ;IcLzl?{uj@0ړbVvg{bROCa1ᷱLaXЬKr: z}ruz͖|7˂&|*iD :T(V "5=vOV`:MTm 1%1Bz'zg,.ղG|y 8&}Zr}}8O3O!6\~}}v"[:QWP.>$StWO㏕1` ۢtf[wX\`)m"y^|˞^u{jHw4& ܿ.XQgpFZt\ݪjuзF" Jok0&Ui}ҫ}Uxڈ E_qj'JGuWw-8Y;7;*HPrFLI#`5;+p=/ jG #3i$>`u5tVʘQJtY-RM/Lazd!XDӹnjlUNp!?rsMyOY;X񞖺}sn\{!ȗ# y=7x%KEdu3?[V5º ,QdeWe䛐6]* n_ )~E͛u֗6݂3:::h#W! eK bgByͭ73Sm"TWS'NDY7C{sحc憟/, f-@#%3g،c԰c5Z,7gtsёb==ZAu>M8]нSd4@c. ,m+|svǤ~&{UG@ paucsTStnb%5)Iȕ$kTIrYGH 1_1?Kv%cEo & bHu M ڴvXڳBh ]&%3 I?2M _λO;#"TIhO}c+5gWq9+YajS5Џ|AVtAef ]Jbkh\?8\YheRҤ{Q~ Ǎ Y cx8~jW[~D,ɢ}\0\[Q'=O>WC|%"ϯVxzx>7 4: qOb=XŠU(AZfKJw!% "{γ,M+Haή]7&}Nߺi~f{9 M6^o(Xm*֟t)1!u9,R*y+Ժ pɆʼI #0w0y ۡ<:3ѱ%G e+I!|j}uK64X`50hh]9>ȞayxJ꾪 69m5+`kf;kr-'ġV(iP ̡&*zV/uY'(oհN6mbr]E{Ũ7|.ԇ*V'6>]T\Iɍfԇu rzm6-GHoɘ$k).F0/$ 12i eByi.s/͈RKs;0FR;KК QhLdhyR M! VtsZ@ܞG)i6JWi\oM+ §jH_$5"2b2'ȿ/ZYJE騚mM˂B:գCԍoa)* Qƕ6z l dRk{|lIB E` Z+ (a^A >0%-Vs)K}X]R4Bm=BlnQP5/6x.<@1QKږ! 8@7v;$(_7%`\Z68=nt[nEjbc8 b,*WZ< y2/ DPro_1oArb*~Aqxln+0m:舦jUaQU tGy Q&o#fwN=Ё›;06 0i4NN_Z~\dLj"N$&eOF⭞8{4;̾O = (W̊}xN4ia5GgR#¢K˛pe#܉ CGZѿ_.R͜ +&V9sx4Et"3?z4KPOXC7Q-.Bߓ*xwEEm%_@`x2ԸWkS$SnmDNI,gCyI7e b#iG4&GLoXTCԌ:J|YӢuv*װnY@;}TS]e;==ʭe${ {T|el|7jٷ[ _SvFH%qYpAN)?P`B_PBv~llfd{{Xr&ORC _D3qZnMqT ! ŝQM%dFٛjZ%)ލE€|dX b[]o~|R9"=yX8&au^XU.1] ߿Dy9߈Y5*x8ud6"!|f }e<ź֝5^ΐyMOb0kG4='ᱭ#9op}P6ldu>?ZX >~|_y]`޴.)SgCXbTh< h.Zae~o ȥXfEmhk*F KlAg ȄKF:?Z}f`a D ejtզ@ݓ_WR[iy*oLw]#zNCԅ[ߔyIu]жCt ~B#nn}05EVzVHՕ:4 T{Y!K/=ag0pWa-IH!sSN6`fn]ݩ6 hOlΊ< $c}$SQu iA&<~JC?߻nJkY'=K|,sh'UGL/R ?S_>?ʞХ0H6tPx`%nPċlG5q(ݝe#w LDM`0ėes@jYU&>bM;O[`階VOВN#]z )ZAH9؜9{bNHaAY@A Op:A (+(3t99+?|3 Fu'a`zGNiƇ4>mYo3b/d?ac5G#MUw@ _V3mX."U+$C T .Af~RSDZqD5V8RS(Ǔ[/!uC!2;$۹w= {rƚWH'%*i3d ga{/W,Km R})T#9^nX{VSpXRXscub,Pt3"9 jM sd0;D5I6:{O=fMphN۴pGȀO/~'f2M>AlNQ ^ZTb4L+*2M>U 6"lYcV=8ܭ$HO#ڍ e ϭX} 6]N!18_{GTV!@S6,Z^E'z4(&i K/98s;O`s:Ȳjgbr]xOKj0ɼv=sqZ@STȁDe'@"aPK;F΂JP:ȿsuⰿlG*Io_ \/8>EsTꥣh@"Nt#ڈ&r^%Bj'nṽ8OEO.\*Cr3B\f~]bIQ[ѦVʍ Zַ&Ht >D^lǰ'r0U|,\DYuLl"LbKݮ@JvXP (]2d,A3<=s.F^GVށ|]`/($Dᢪf]Pdڼf1=Nmԉ`Q޾ `!A7]t,ow3in+"9jя4f :|[,>4UOnsty'sV LɐKKi']|{\\Ӝ{aIӨ\x|}mlZU2Iy"Iʸe\k |N᥷oELwK^^awxN6Wf `2{cMO` kyоIβ?AdKB3"m">wDg~a < DžZG>6UrXyq; `LZ`ÂM| "l7@ޚ9ʲe2$I?BH!#!,7GCX,Y.\xj:?!Jv^`.hQ7"$Ҍ;YD CrUCSuu=8wy,,A^UۗA]7@b$:J^^W\e%{ʆSL2'a ه3^-)YţȤi2Q'`Za>k޿Cg9-$;tƿ`Fݝ2g<|[Wet9]%Ȉ:ɻW^97v}yf7lawZ*##L7ܔeˆ?h d孹T kHƁH eRryϰÒ2wj8EbЕIm)?aNݿC,'3B3Zm,fs`1Uʦ$HXw\0!,ce%J+aj@k`tΨEh߰E!b&G]zdF0BÆ% ^1dޥ^<+|AqSYAXHVZ$XXD`/ \2 dٵ{fOK-?aBsJNRk5>y֫։wS:%WCav.~.61,͏*om #ĪcIB]nvaԂ_$ds,9'uitE0E<jKӛw͇:zp=Jou6?J-u\ */2jރ9 ĨcXYT IQ+BW&}YG~KT컆ACV)́e#;Fй2ߦ\!=V%bŭk|q`JѸY]TgE4Th LƉL/qAT &A>À <ȶׯJyF̆WSc/^S."rPB+ϼC'!}rpc.");OFFyL脥`uaU݂e:D|1ӢdgZ>VF9[#v%B&?x|P 0z:|F=ByYgqyQp# y0-WJ\,X[߬oR栆G+tz#)H9qIRQmwA=z[ps% Z$.S130TQ˰]PR%<۬uS TW \Q%C^=2;ᏼ'wa_X^ ڗ)Gab>_U)VlA7&][VZmwE ZƉ,ZUNFZ+2>W~:M`(1CjV>0vB0AafI ..Rϯe&6eB"h/ g0Y2:Vl$llg6;|2J<08y)>ے!g vOm!}-+ ,>B;ËaȔ Q4 Bs`Z~23U;-g"y'-H=HExu@PfiAqK{\[U0-YJ[hBƶ9".?W!bwѡ|{o1ԘZiYJwóJ@C>h]i3֫0X[!7`TՏZVVԶxqxV9O! ZTU XCW}dMm=&Y Tk! :DFΐHtKF$C:D%t K*pVyߋsRc Yj CERJZȵ仨mVW ^hAky`3]>dz~zDc>I0&Hx&#ns 9nKǹGBGelgUSuꗙvz [I`esΐ`* YeG8gZd|p*[;F{-<=h:ݺ *-8Yt}̛YiZ q ?@]}9Hr1 ?0K1 LuOY;ZLŝNUJYYK YcN._sp3ҲkQd9ȻM'2PcnۇZn9ZX'& ?8q!C\zS٦?DxJ 7β!GYgղuaGx<K%Xb*P ;zl;<*. ?PC$62 ڼ6գ37|| WAmc`wJ'Ԕ:qwf1! F6NsмDQ8t4)ȭ7.\\Ʒ?M-ÊnG-a㑇PUZ ʐP`-E09&Pk`~.[WPv]-jGiSP#0)/uٰ9Kع}/䫤ҕX.aJ*hdOD Z^2'HڵKչF1DΣK˾辇a=0FιsPqû/0`XR^|!C,RۘGʘVHI+QpcS?v8/^f?1 Vq~/wP(.IdL綟=SR΁7rWv ,K Q:ּ¨U![2ߪaӌʋi{ TP;SV#Ἆ0g<əmG_TNl wX%dV%[[i\47"{NLwqS=ܨ74}hR=ɍsѲU.ė@.ߤGhmpj8 vR į {Qc :R:S rR\e n\7 cƮ/StmI[FO_>q!Ij5j(@ *=a !b5d&,/߉r8zf޾ ]]jO\Wo yȿL<KG񤒀/dHΰ|w%ySFm.@lrG?է"WAcX|iJ$F_V`gStχ5@έ+MF莕U/?(fYRpP"ZWw'][+5J1z9P-?4gx>:>1B!2S1n` i. UgAG4X/~ZY˓ U䉛Q i_W1 0@Q;O^ܭ$ԏg?k~%.\L-D]mq>b}ڐ*Ȩmw<ci:l(8B܆(.bT>Ya/Dqn3_%oNČTUX>GO1ELho+D,W i7?SsPWna zdC{qM`$\qPUtM K"! ]ofߝ3PA[t&VqE4]ob?pPcXy5EeRjTBo)">LD";OθFC,2.'DVx\jJ|zB4% wo ?傻WJo_P&U;N亮-"rn7eo@< ?n`Ƃ,g}zo'#^E v]+;XK񦖨6]TQ&ׂ[J Al0nrr6{s(넎bPln";aIR^rvغ1b:O!n %B1ɛR*ӽH8aNU8e(M{gwJⅢfp5y.ii\l,= jZT[!?a+ pf]Uj`"3 +f~tCRhPP՜QXTPru4B #袣Yj!B ࣙ?n1]}A. 8{UGa9/EȘ #+?ɤ Iqmɐ42#Ͱ-k̻$_@ft0&Jl5;2Tr| nn*1?V1٤*CnͶ@hMl%2QVlG`IfŦ=Vǜe! zSQZ^xFnI9-FmqǑ jcBWi=CkK[pfoE5 U ֏F6wT/k{V'䢣!brΕ+v/ V Y `bޭV@ w;{urFNJX3Lt:," \j4s=ݱ:^^K#IpPX˷WSQM df@)&8\uWXD w1{cŀj(xD$5)p&QgyAdR\6Q@DJ#_lC֐픰esQ=yr4.OVKyC\ gKI[1s^~&> !srLLd|'Nm/mժI-0̋J\dv?+u>]BFOTGYnZYeB8 k7X<3[k.O?Rsv#JkK1"v̊Ŗz #-aj={4$<3'ŝ!ؘUp=܇*𡦃*Z1a33(I R+/Z)vκH9AF^ ojI( OgL<.I fo()QK;QIׄ1bhF$*xNw2)`WرsOMc7:)a}&.@:傭fb/Q:Aw@U9Yx7rE"&4Y1KNVնDB9 .7x= Ư).aIM$v (= AE, +YBƐ^kHFQڮp݄.'3j2<7QL畒̻9E[@@v85l\%tk#frsLAHfnċŅ/piq3NzJGT;!iX~r xx ]jEbύzTU`'iy~ .W2\|`M*6g\ Q,&}Ūh!"k-kl{8OG;#϶Tf5(=~5(n?-؊96JOPsiH)v2ի| mƅ*wF-16EtqNFA=hv_i)Zb̻Qml.-GBjͬ~sa ud%LAD$g 3XQHZ2"> DndCo P_' wpdBE])e\_-rDBn۩[d Zp)ҫT>ޘILs{|/D =UM8p> ׼m58pEEdDu|@2䡏,׹r"qKxMytfU xVg,1m"Qd\LO7?ɶ_ ^D%?JN1R SEf r~>e\ D\K[@"y'8#ij8sbrA)X@ݖu "6N]#IÈud"b 8"Q륰C;8hHh)UuReC3gi߭f87 Ld:q ;nD:B-Kؘşܑx*k?{?@!ܽRm.Deq#6g߯wLh 0sqwrЂe3v$pV,]Ljq^zƋhY1C ֯~vt!MԮ*`v𢾟`qk$7oqȊtW0X(Z0ɇ7`Ewہ/ .axPn'֓o]ߩ쑂)ؠ)i~3\tv8%$UKdufp}!MC128@Sڌ)uMh(Y_ڹĽ[FCg)↮@HW<RsSyV5c`5~U ٹ{`1K#(:;ɳ(u(']FDxTQUK%SlvpmN _vqVQ룤Ϩ7.N> zl#k$V$hRx2H\T%j2 :市"ɀZg-D ͯEWVˊJF')m0pdkUV\aNzXoD@}P5" ˮQwuIgǷ7(mQ8Tڿ@y YK'sks[c FlE5%װ MAT%ﴃMm v,ZQV8k9nn,Mb\9{鮇,yuZ|PTkjxJ@-5U%r''4YѽdOA% xur<$*kJ[mΣ [!65RV9b++5 [[Xs[MA)Dh37~ŬLA'r&UG}6@,[1.R[wq̦Vfj1[S;g#iOտ( P(hJǐk9I "b46xuM\$LsC{뒍Px1Ae楮T_s4D?@xFi %#O:Q?TW?HٳM l듃 YqX:\~rh }^ҡ F`."&H ^A>lR}qn( An$&vg.e^@^`e #pOУ@qQsM99غx Kfݺ(v,b$$wQ^#h]/Ō=ᶼFf'44ֲ:Q Ўz|W $ ?>WfM̵xېǜ=MD|as Y"WQve/v-77j8ǜ d0(猆@Qs{Qkز06Z-O@[ nϱ-Ԟ}s!::ZCQB#Gc]Y:pƜ7Me[]gS?Ɲ5m(n4M破Q&V%V?ַD9*_w#If ;RjqxI_5xӳSܽv[7д!!]5pàU3tZhx*˶vL a-0PC5 gK*zC]Hq ymiToVSRw }$QM('#kHr^]]i@ǀ6 t<ڝk@Q7UU7Hr ?AZ"u-Lb3u{RTρ>0Ly۞}ƛu}!`+ b8j5vvuFZEW0rBQꋉ9+ȷT#w_JlI$\xeS|ynd7'BkU1~ޕ>I`OA|ZоOϛoNF>esnfsw=UoE fίl֒FpDFK#4_M.ҨJ7 ܩpcp1:8.EV|`Ya/*a:9VӢu[xab%(}vzeqfAd nuŤ1Qs!6,⫔i's,yqHYN 1TgC<Ұ]":<>CmQ"}gcs^K 4X$LBh,˺_k#h wgxIݒ0~2ljl.KTj4zz;'>wað4,#1 Q_ cooN"T=N|[4 Ց"6s k-/# 98S NDqKǰFhf&$k7UvK ${gSUJ?ыu}{#~lqT6?ؖ/t'&to; u>y>hZ'q y=hx#W\N, #y- :Tփx=13Dd$<1}̩/kbWt@Uz_ؕ+ SmKU&Zm|3p6foc aJygzOf+6Pԝn $g?8u%ˤ$͟s?ќ܈)(f,]0sdb,!a2L>e4O܃vU:cb\2zyLO*ѰJV q'NsDEsJ.7 醜 kyV@d'02{Fs&,7Om-JioBw#~]wl`u"X8JL $=d*W:CRukg #qE{y0#YfoYt: @& YvĴۅd_Kå<)XE љt,j9 )XǥWv;CƟ5o>/M`[b-xL mGetGA {d''l]1SNCUN^;gI([ E}]; wQpDyZ)rO-! KWGa3lw~>ϾO) خ/P@|QQ>V)~5Ύ˰i,/UW<x-m9\~ =8@NÀcߵJ?~/ӛm}LA!脃z&_. .Iz bW. 9X*=wOߏYT96܆LE_`S VM 3p]Gհ$^c hMEF<Ǵ4H>r@bqS# p,_ߘyF|F"Zbc}'1˓RgX9 k3 ۥ ?V,c9;%&UwPNeN%׷.<+XaQE :nQ?h$>la et:6h•Ŵؠx0)}e$/ =J!)OiwIaۭ uO)?umq%ɲtnEeJn|XbMt6UAT=Fi6 /cD bDak_ ~.\g3p*{mE;n j$3)OҪjm\m)xi•ZY?%L~S -g!pi>YK祖`NYA3 ?Ik%G@r}EGH\&i !NNݙ^vP{T,s<3y>/0 i S#0RP=')pX6nCQȧ:)OIr5{s_cCA1.uƗykt_Tp 3K{|uWiU8cvs{3׋bYHKg-&5KQ%+\WXj =v .@5Iv *#Ɉr K7JŬHX`QDvl%3QC0_b&jS uZL[/dzr#kDu`=x=l c x: .tE&(!,p"|֨sz–:u;[ܺK*Xf~:ںt_0zUq8G59RUc#!?˰_UppC{OB,SK9 u?U?bi /sxb KU7M~[=?Iפ)CaM z mĬnj#twmkKR;g0OA!!a!&~l6uDg;V"o &ޕ`~Sb.9Du*`qP`֗C>=: y͝_o^Ŋ/Xqױ`uE(pզ}I5rlш"[IL\Lhְ!u% 2-nXsM HW7'm~nVh]7)+LVYmxH] _1E;&w#ZF譩qs$+n"^9[ŕ(sԳħ7(b2". j?[gǛቢQT-!~g)AKq*)_ ?ձQ]'GeGD1ǵ8"g˂LxhwȑRvtgxA}Dp8}9&tB<X3F @Y37- gKyZ=obiHc w .R]>7hpZ޺YO >LRLh&1&{aghʬIR +`Bb >8y|6(kg\/ə;gIt&/4g?4b= `J6d|w{7YRE@G"mp[P$Il8RRxj->8+ՖGaS>aW-X[bK&3"~\*L,(\xھ8Fк6.5X)Ve+ɾ$Hl&t0u:nO' 6Bq_tV*=do=K=[uM<gOɐfn=a/*έywt'8 Ij3`+Xu "O&kWg9=k*r0FN?D5@Em#ټDc ޔaeY6uZYS1\,#xJR{͠Oz䉠!,hcwh5\ )s5:2{ge76-eBQ?E_:(\R  eMv =@ТF?95Іe\.FaQp*S:[oخ!K020,g}=Nqh4$ӗ]tj;\NMM+M+Yl+0^'FMm>Ib8▆͎j_]2L3]&;l }`EFl/F 4V"Q#|-dUMY'VX F8Qd%t)tH i %[ZZLO܄SInEÓʏuX ĹKh7cX]?z[4Hbdy6IDX=Pc`R=$HvcAeijN`vUM?Tq$xE$/( Ȃ껂 .Ksk8#UGDLslڥ-~>L×/d}gAZԗ|VJ~a*m=} >*Ky#XSmF+*=xqQ,L<͖ۧTH-K`TVܙP~أ1fZw!cگα@h1,=GoG4q-W %]i09"Jqڨ{ʍ*t)iM92HuT U֓ w!gGYs% HҝK+;nτ+0>77ֵ7hP)j׬?`/?Tnp$qOhȆөfod_-"fMEM*qXtފ𖠲O㎓Ko  MIJs IzdP( goo*3E[FƜ[q"AHx6ޞ_ϱ S4?lf\`fY8"zma=l )l^?ORp3es^4{w):_" dg3pȔ LYOqyvJ9Č6s6a. &;H`u.Ϩh~Dy©VڈsW7e(2 na(0s;gl= Yuoӷebjn ;4'ZgW(K67מAiG%hϡ&R>%UKH"r|$4;/@{N?;> -ns %7G7//KmI3M4: MȬb̒E>:2EMaڊaF] K!ڳB%zƕcӏ'[} J–y_S,j)Mܩl1yr{8&hPp/pPbqMc`3 !YE_^r_愬fKL_* z|zV+xGp~z4XɮĔ ~ TEN/qk?RdIy ZQ~iÅ7vz{xZ # /}{"2],FZF3G愼I`6;E^zFc4#[ P2m›P8hzqJ#Xe $D4L"Ceija3DzEs\`҃ ;%Qǒ/Uo1Ѹdk:XB)M 9FKǹdM'g97B[6GT#>9#yW(V:Y5fPoCa(qȜ*$)2$x"n(3S\/8>u1Fy#|纭,(ẈotL Οc4R>ˠ/VލüzĦ>Ooݻ "޻.u;=^u@J30U.6Z?$E!lϣEyAE-gM'ߑN_ L;1c/L^|4lSȸTs[fv(eT&/ΎIE;*dX"<^i*Z^ bt+~}6NlwLPbcMԖE;t9Lb ,d\ʴ.9a7uLv$%.na* =__I/\1 p4tO4Df N ?{W=vo`&@X4zsv*3&Uy.#g|~xΦCxF1nek iOqvw|PeV,bq |Vckբ^jH)E?(XZ8h0$ C_k\r>yŃexZ2eи[}> +Z" Că^`L9ik?87ml. dHx#f -ncJ~4`D-3#;v4vo D&歷7 톥YkyN):VD/D]pD`yg&$\41f"(h s1>vBwɬ|s,@(H_Lv%| ,!.NчÔD{HPÝqI ؃tB$^A;jW 5[Q3n2|BEehJ}ӧGg} VZ 28P ZH(Ϝ_o#%QЋ([|q\&8˩žY]8+g2%e-qFvz6шx*冝YA)Ƭ\ 5Dx5WSPN5kA"py9̫9 <# C5vO6˵?;gN+iPͼb7`YGQA鵢H1Tӌ V4xTh$|X8)I ⶴ׎O{OѸt9/a䂃Ycno:aL$la?p݂W؉a3|DnOD*̓#֯6pUh ) ޞ:$h$`HEƛnt-Ɛ>c|hUbϝ5kN#__Q!R%SD~E!CB;d|t&Ucb S "zIh-uvTzrSOHYW,> ó& sZ`?nl~~{塠ȤDG}&\ :&+G&;Cu2=9 @ 4Rw^h*-~3`qN9X%Aeq !ɔQ[;42qN¹tV 3uKBIl@Wﭽfaospj:H[ZI[Nw 7M'Fq- m2- INt6yĸtYz'l7k`n+\aӋ)wn!}5daH wEm4ir`d|jҴ {|T pA='B[2S f.?nVjʓR LTͭ0&:*tC4@mZ>ч~BJse&='vENYKfm{]׵I8h֬}+c^5niҡnUpyh {U겋qxTD]3ΤM)h'(QΩHoK"O!:LD>Yك%9:#'5ٺAQJDO!=(x.2Gac"ORmcA>n̓G1wAP' B׆ @G$4ۀv}&۱;Fi20tՌM>aMM yYDʩiVݜ,u9fBy':|S_y@y,P`ְ ߞY=ܹ3gm[nL7,:O$|)5y~Z3p|=߈M%ƇqEv^.}B,.VSl//6w0yQf^23bD{aDvl_OPwQYO:Y[A2DWme 49;= JPN\_j PKg@{y٠"xi|ƪޔKuԊ2(`=WZ9f<&yGD626 HeY̺䜯$י݌*Qw/d_]|Jcim?_M~s4v*L=YKHh@Ttu5oi-T@nS2+Jm:%d5?3Pk&2\Sr-1*Z E|J|u7zd}ݓBT3^qTg E 茍-%:|7$12W-t? A2sr3g3N0UlY3/yC|ǽ%dlٽP-F掶j@n:ukx&:;P+G0Yp$]LT k 7ДKM YBcҥpa'9-B2.gӀ 䤯8"3cO(˧9$dG#[RBE(+4S/+'W?86l߉e-KBX2F좵hGͭ|oҭ*xXLyQ؀N,=_?IӱcPQ'9"Hw&+xtR"N !džD皸r#fsw)wZ18 k#.U|7|n"S]ݵX!?T|y+zc\}Pu(rpbN@.yaeLDvkeݨ21QI5lNcHJDQ xʾ!+8 c)v%WiVqzV_tpcMÖXRzƮWl$Hr`  ZzH SSa>eg=Y$sh_R ȃkpǵcY]{^jibc| [j3^,yXuA.[hP`0rt1ll3?7c]򰓝}b_tH'"@rR!Zk+L"9?ZkP.hTGe%$YBwaV6WJMa/I՛Nn /+: tZBj7{Y O#М .xpjz j]LVj$'}ɆI~F$g.Xkmcn|T. G^'>JZn1-*QFyIXa۫%*૜rhWM,8@zV.ͨ > ȹ4tOS۴ y\,%fd%-Em>kS ɴ&Had $5t4l^-0k'gC_iG:۠yvG6&mA9xO%Lw^xD-x .ZK1FVZ |D^i=M8`o]L}ʦ67A*Do\1X$tRD@3jT$ 0W䱐NOy[zJ`tP=Ie;ala>ڻ#HknXGof_,~ $Z#y13hx>EoI+G#!ML(^oF٩ h\HP((;i"5#=ZðZ|/xKC,:fJJ $r^{8GK%';S'Ikdzz;u^"COio掮ຖ9rݟ'^ ^/rAb;YeW>WRd簢_tzz1Eóir-j K{ XLFFS>YrZs % 8 & 3]t96)WQc^-g *N1JOX8^'A"L#z+o,4X! wb:Ffzp@ V (B*lU6meFM,tGW= Z? N'o e@y՞YvbV왋0I z cOEF,|jzB^K~,*ksDGg3bŞ'`ճ[UD{@8\dǥ숕8#wN9cWSaw[sՁ *y$f^ڶi1TP FRs|Hk6FЯAJ1%SDPbNؚ2S94MbC27B`( Od!D h'ւ O6VN! Wn24$_ GH- ;0n12Ob!S4I{+j]oH#{qПܰ5 y4ړͩmׂ uiCozϻp2KN摝"&Tco~břlF QWm׽ZL ~3"ֈ *i,VQïD}Zo J9xʜ@>]l%Z 4%ZMMr0pq VwZ TͱzQXq#^/Y>@W$<&Ww'L:vr#a>-¢aҶOi9&4fPEg59 Qp{ΨǒBd'O @@L`v?'S6;tp-ԛ"d1cS7U7ckEb )X;K*P!D1^ƞRf@>ں9џsIv+4r Ư3"w,qJY )A`Y8X%u wsGW YrQѹ}āR~;^gD'S<=#,$y47X\XC)cY%@ RMm"euT'3OMߘ-W~I&\>o|hECU1g_dgK!!azݾ8GM( }DI *E&X͸C,syKo(kpB:)U1c +rځOrʇbf8|2ʯh](-jJZ:EJ #"i#a{2PKa)ruM1:s{ݜ|*rx<6cfܤþAo,Pɢzz/65bhOE}6Mfεf_i 2Jm4Y3{@Š7ߓ[Ր4i)vHu 8SeQ]rJEm-ݯ$e]TKߏFOjY8[)2(b٢"L;wٺr32vխCS|1jNIjW(h )Tr^b$kt3`ɦ_.%.} |$HǠ4JB.zW#Q?G{+z]<澬+4u>rQ͎!тaJ!?~nDuDWH{PʗJ~.V^6V6Ka5 >@MC /L@R=0x6Zq UΖM.mN}[LXm-<Ujh =BM4ϔӹ@"$ӮnpWy };vvݑ$^utQt7 ,'OFa۫fZ{TPi?wڔyo@ƿH\%ѼD{UT$ ZE9Zdchw#H9ٟJRZnwmt]?䲤G 2 ji|M9oܘcBye!Bly %#y|s`:ML$Z(U ?z) ]o,ouklq#h2P'lmzS-y.L>%:bai;wNc E9tU0x 7Ȕ`mi jGrK9 2똒3;"&H+53T&8EjPKO h3)[{Kpѷijy)~8^d 쎫< Vi{AH'bT(.ֱَɯ|=#مm-H!.0NTdžpGŠ[^$N@ vO(dÜ9EQ'^ƇY1ѐ4百DNnzvȟQtd [ʂG%:H1R@y FA-ɸAiP}ar26CB썰 $TNь)eʹH7JICփYoЍ^:ϒWssLm)!O)<DOf+m.׳g[ԶMDP9ZjE S _@#Pf}Upc,6V9Լ8%ϱas@cn^ŕF5NJg] -~=$YL%>DاO@aa+O}aƇsszfULr鷼PFjxP1?UYʯ:yRl㪏C=B+ ut91!j.kQ)O&&bnjbnpƝ>^S\ >,bQl]&+;a6N$ O.5w֋>+af)0_iHA,})osj^< X0v%.6r6Z`W)I&&O姜ۂ?LQzIokES8R9|tcUuB,j?-9ҐJ5Duž&- N Se3_H jo$@r\^LsmIbzI~ͥ,\K5u.b).0QK;xAr_ PQW]IdG3[\9I俟wH1Cު3E2)  )pd56;sJj"|69y ]D7)Nު˓EԌ[my>Zb{~H:VPД(P)>׎[Y{L4V,oCσ񪌂Id|/ʊAo5d9\,sH㺐ۘ3vp3AR- ' 2 ٢r)<6Qg׶&XoJNs+[ *7$;Rv-@y{*&($}=OBcQQSaX*Uu0 ,|?NMGp`"SdJL7p&dU$|囟Nk4,DT}9`@L$"x [iWMM"1qiG^yI8Lbh><~F}GPhvFle\gr W8U~Z*ͧ>SJAH!Bc<{NcӍΏIQK!ur;U]m1=um f_X/5(ɗ${H}QFuoqo*mgg~͐hKK{r(`fS+ۀmp=l(%Vp`pu/7tcZ:Sg=IBr9 ϫfJ!f$_|։@y)ͱqU+s}$<BKڶYϾqdǨUzGR, MVdi՚v^? =[ΚUIU[{Y:*+vNCÓu7\k, QǗEOX-y5g2iۑHhi쮰P2_#M\GlB4xZQ&!”^8}+<戱$M[P֟ i5?:bp?7FՉ郠E8tKÔB9nͶI§gW/3SB@"sh%D#qBH|R (q Cl%H6Jy5)}d`nٱH 5I믜yl**꧂RZ5 Cae/l yKt/.v.c Tcqx]M†t"'w2OR\ؼ2_Vug;hsL-9+q,ͫXPepdd۱zrG#SK#XczB2may; ,eG 8aJVQf Bޡ{t62tT!Q}aHr "z:Ϊ2q{xbO_P-^!q=cr*k=%C/#G/ko)Ъe8#=cbq7gu_Uv׉6Z{1De|~1kB*]fc-=U^dN qN ̢оя[M/ħgx#@^mD#GBUQ`>e˽F&ꑔ ,sGs+\#`EՃO(vPFK)GkD*DX+SΒi|-zMr'kyg 7|gw/N^'.o=A6N09ܦ|qT<UͽUT^@)QA' )qOsKov}' 7']g:S`cΛãʯ+h/}7,4퐜:y%Oh[rz6ƫH6472uMkP.E/R r >P.Iń.oQD\A! I'g\ 3a0N#f7¼z Og;#?A &Wq%OtUY^.m.HRsa?QRRJq(&̒_OԑFR5vu:&mph@xm3W >(XcJƼv1B0ߏtDxG/L%U[wLGVqcx/$N*!S=1rCl\p@{V dWgCM(e6'Qr }V; 2CAq-:Ȧǫ¨܂t\&!7D5]z%gVIO;iml c /fj8y<]V:A3I,WB6"X´.H[r2!Sܓ h0'_r.H|a&zsF6ki2 .H7q~ !Ho18|1oG,xi>A{\[ρY\]+;VwCe#x@,E9hbcbL;S(l6K3st kUzķK65L92P[VX4(+de/sJزs4 ]Aט iA mkpmv77Vv<{ۨri^)$,<5plU Xz3uH!*+c~'4&WqB^swhVpɍ}=/@b#F{vΔ.37_UDJ_iӲ 6nЌ Gn7*dN8D 2hh9 !N={PGޢd^"ZP29[ ~P]U V+ӕoYd?HΤ^^ؖdFר~rB{V_5BFKRj񛜸VHA7fvt\S"xl!gpջ``uu3g'jRH|s>aطl)pm~L-|0OD^a:"lxWs'! be}.;KPt &Fՙf}|aC@ 5O/+ݒ <.YK0vһ},74{$xlPS%jF6 ʗW0N 8~AtW31B^ d1%SLsMAe<7:ĩ̀%y#XG7I\gGš( Mz*{ګxl)4,zL.ZN$БĄ4 )V4Z* A1=KO9kTdXs^WtMYvb7vrLɜuS;ƿi= ׌_1ϰ(A/Y‚1n e&2Uo(ǥ%X;~toN'&Qi@ױ*؎^ngԂ\R-[#4=Hbo櫧ľM̓$wiMS'MK SFhrzP?L=Vo8 l ~#OkQkΤ^{¸F!.sՠ7|b1U~vS3_f^1_|Ź8ҐLki-c7[&gFb\&EA-۷:T0hem%y, =}ײk,d@[ ={SrhM7B9#؂'Cn$lT^r9A,IYqs9DoG9! o0)|k^|zI[$ ٛW赥 8HJJ ~5z.ŤYBb' [.G+@bw}WZݑ|PEJSiQ p]E,ZY4B Cpo(\1Dq5S6~n5cGavSLi0@,?|K<ݫkKEǶ=LgV]/z:H+7KyI0~5-6$V7=Y?vjJxO衄<=J1r[ZəurOY oAVl10!}!yڗ"6kѶ=& !Ht|ҦSY vhd@rTZ*9}-܃fJvadjaa%`yǽIhy܆*fKXXlN*7{yܼI-ם9Lw1C~Wh*~` ^Am2V}b4#¹H2>]nPmc˹NJy}F{ZfpqkV3Ѩ+(Js(ǶrA$Pa\8}sOD #1R]zV+s5DŽM@n>g4LMTwܺ NB:s\QpT^g~QKkuiBݢr{K]V1Yy٠D}pkN~^$*Ϲ*.fB2x$vHEzwG$mK>FYt !-oZuPne]㸅|8E>%a] пք`]mܚXxYe9'[aeAOOv" :KJ/c&wLJ%iA,omadhjܛIjPwLޫk 7*~'O! Hoo 3'^<篧{U6+dm.CpR"D`TѻьɃzߺ̋9ǖ<AokV&j8CV&JY햍[yxz!HdQb2adW|A?ۋ(-LEl<^ pxdR\GD Ɂt:>)԰" {*_Q4и1*ѿY:/,P#_"rsH7|z`Rye|&|&Wܼ jxex ӲL6!Ɗ ӾO%5g̸c)ꘌ9yKI #?:t蚒 lP %8JC=nN2;Tb[ӻt]hL DYMff: hm+s/pPrqەYXjk"4.D BS$}ӣM"UJM,n_/ĦA"J6VžhtЬߊq\uoh5rٯՙ }H$[d㟷2ejd<]\Ja+{gNM ei눶+ tmD.?Ĥnme\Zaȼ{EU6Hw{74}O:܋@uSpmCA(5bf 6NLM7ȱCЄK>;Ɔ~!Lm_9Wqmi Z1\K\ylN+AY‘1D儒5z ]3;|s9Sjxbp`bS; O[ȴ0QEHG?D/K=x^ǯrH0b&?dzMC(7eF O8YMpJԹ\] `U;ʶlN|Yj%Է1Z=e ] &݋'6&]-gv8,4{w1 #`>Oߐ=#ĭ ċS6+ھj:nv=JI\fK67"$>wIt@JS'z_#oNsΒFJGd!9T l4'݈hF&,p$'qV# 4OuY?A" 3*Ck9G6Cb2 9l=F@c1&v \?sQxϹ/r _np+rf` pnQBC4?+#Y9HҰ&Q\t*-V*{[Բݦtd\V'A;4Q)̂Bcr /g{RS( owbtSM_EuxxKq헗Rԛ05)0V$a(N [Ah0ĩYq%.Q$uh u^F0SBPO5׉u!T$+ ~#\WFoK~]ޡ]\i8,1j#O̓x_XT8=;v.nk?W8-0x`̖ XB{5.:j+E<홻奧 ]*KlRթ #jzoD}PFG,ySWs<0*Î≆h1D*$0->A%p9aLץZYwv ^9C.!vww̕:6*XOkp*kglZ ;V|*IVXSs./_)^ jdL|*(9.}kN$0 d3rT#ܩmY Zoۈ9z,>}\oyuaGUU?5^q9hdC(^nauFxF N0.Z^GPfGfU7q3F~d?N%˪/]҆QWdCn;e|*~Y %{o+,mvU(x7YkVk-bӗGL_a PKi׫^ gCէ˚r}U*m.+K=xN&o@v^nUߢ)R'5Vf(˞o%Fl E>oNkV8قxy2D8G%t RD֜ J*J:dleaO? N֔cjLgk1ɔxK7kg(h֮F|.C#}bfbGw6aWD)eXQɗ06I+mwqv[O~3lJ^.ud1CD@O}N0ay(I6ȏQs?{š=VZ);Bvڊ} OpnAsN.G$VaجMtfOF%[h_ un%sjqR̬2.$=q[2 ]>ݼK4!.TQՙw["je//ɑFg qvl6AKz&5Dk-0Px7 Rˠk~U9?_1l8|Ȟ!kշKmx# _738)x=j n7_=Z m־(P }%6Y&s_ gD_{i)7 x9`!( oeI]p1`a In{l1ɫJ1So"AOlkN_P$}daf JAt$@9MSez`a0m`j/ $[s^F(^5X 2d(߰Zz'â);"Q]eٿFy_D/#LOW6kڙE( `9 Z|;ډ.07e569Qg&jXaaGODk!bQT$ޮ{ѽT`G+5\cm0YZyU÷$845+n7ře|%< L>H&گL9byJ_ `S>Va#Я}ȣ\ё t(V=5y̋J\gEf3] |=osuam f5۞;å ޛCX }\kb\, eZon`PPścKOQT"9a Gs?n*/l9/)Wy$%1ڣ7eTU[؈c t ʹCa3Ny6aP(ij&[Ci#cHfZujWB+@(>j%D_.+? \dcY$G$OQdCob1LrC #YÅBU+ci/^ е+*QSN'u26$hFg rJJK0 ŧnU 4ro2q$r$],7wkVܲ60HdaLV.ѳ"gv:'f{+86~O5Ʊ q}h΂- 5^+'퀺~hQlLRVj"[.worhUȲ9uu.PtϪЖDeEӋ^5(qL8x[b{Lج廌fS':ejPew+jN6dv s~n79<*1v;P}gMB^QǡTa1A EO-m3u?Z.=Wz1YNڟRKNfGvŷQAS|i# pn^ KC_"ⲕ.6bS^)>,YHz2?`/I6|љ$L=ڑ NP[9M2&9/ɡt%ɜhUGHq:_dixmu% 8*qKcqg.Gv'1 <`};Jmy~S_R% GO`*?=|?I޷HGX14EhbyUa:ƽXw8ňm5ϕKIՔ- ښ}mv8]>g[Q_ӅTv)Th-=9 I/W76k(;Jk0;p=$6Ì7ߩҤ`*w;uY6KJxc*Dj (]雷 Z63˾ɷeD=ܶITHs]?nj?Apui 𛡕ޜ#WQ_-wS\NIvѕz·Z-ofE_L?Tl.SR\U $nրR2dYjA/4^|?̊uR]T$H=ZP)qZ$\vh0Cvjn5A -Fi)8 E[) f:-*+ kKX2H(E"iU(f>8NMOS//㭝qJSPWmƜ !f#褧@$M +?skO=|i /Ȗ%AM8aUtyDg\dfUȻ]l̍YuHC%#V~rm8.-a[$Z.uwTA<2. eLq:At\@;AHst4N]DPNX3.k#nw#d-ЋIjV)s(!Uj#P3&G)$G{"¾'R/ta}b!ߵJFD}ewZE׌,P({4"o`2b؏8ʪ;kj;/Ӆ Q(i9Ơ9BD;W?q$(C^  Ǯ G"OҐuj ,u̬Ʒ^]v3itBaWhِ}gNEh|q4y\A QK[ݢb%NiҁI0\DH$<޽w"iJ9\9`?v5;g2=eD۔ NTsvOꁊWsfB7Ƚs/ eAwtݙ欪-;Z1E&,R7X?'ޏ#r>.d +"x 4ӯ sQ3ȅ+A_P r?x n74G()S$Xe=>N\QK5jp|Đ6k2C<\a7 @&/t@׬wHϪX\qz pȤ޺R+5~ۿդM o!?0rKCLq5aS› Ruݤ2Xp2W'~e>p]Wke6jFǥ'b`2K &4,n /϶yNuT'}eׄs(^o[ӈiJLmiL=I"*0PC]1ԗLQ4\UH/dKIǙǟ@2;&aՐ5:i]#ջe/`vb3o%. -ݙz#1x]tIk;E+luD\[չM L7Xn\`iSH0ɊdpT[R @3OKr5K2fRԽ&:}vAZ{.n`slg/^ +_NZ1(*e䛳V̠P%eW>4ũ*|ղnͫgR-xkI] .뙫Фr#D^ %4)3k}B%\,YS=%pB x*!;f=F.Gsg͇|nGmƚ0?RKS|7ׇc$)"=:I99JpMEܡы% ok^fĆ/z]r9gjEGďSJGӁtB׉PvӍ|cU7_b!";KCe)s& Dξ hkREIr[0Bcu2qr +VV'*ji=XBl=73d,+pG.i;4C+RW_@YU@2 =ix! !؇nj+A7fV*5N2555azA9Wa;9p]U׻"eälX([A2mN? -1ݵ>f,zmhr\zѦ+&yZ&+(&̪iޫ[OSeͳlzⲨf2RŨG^ïr7:P%YkiN ,+H.62=T[zD_`,=dZǷXXbùXy>6ǖƇ{?2lϰ#Z8\@Y g3<nQ-% P7K[ ?POf;1nΘ?`WS lĒ*9z3??S/jtK$ R0!f+~C}Z\k D Z1rLn-OW}|+r=il~펙}ߏ\yfڈ=ۓţiٔU1tqFǩ[Ym)]fD5uH'4٠7 N u-[4]07?n3 KF3iIh@J~ *vU4h"t+cϱɏ15Yp"bBg06je*k5[g%}57EKDW40nqN !Y\B{o~J‰8Ep[܆ CPpSK.>wodVӫ ˏ!`)]7K) '*<6et֥'>ӏˌyx$%y\O0@Ev`"5KlŒI M!-BάЎLԗt{_GK--lP%]?~#ѣ~ 0,J+c`<~q뎺T8yFr5ox :04t:.ӧq4 ywReA~ (dn3~_ꙧ0w~錈WYm[#KGRfx.2=&)q{*0Cmgj̛ /8;B|Ԏ|Mিg{ ]EVJ)N h94YF= `Zb F}?2}Cʃy`U) ҢDI[bw 3csE =WdXU'X܆nk~J]ixR-(3Jfxȍ'к#eP&"n8A[u80gg o<%# x餑ƝrX}h&` QPØvzһf_n. 6Xfa*]C͝p=ߚڡx,n֎efƀrDާf=ROGܷה+c( E~AIϦc+ SyyW_g!y%m,t}WO78 i";+]1~X6 jF8(կa/Vq] G% [##RzJ72\Mey=x7hfm]z*Q_`8ܱcR`s@q7SĨ/3,@0c>"fF^XϒfU^rl.̶3iLE5?׍B0jHt%r#ftd52P(?IX6ufX𧥭H 6rKXڶ5h壼#Tx^ǯzRgQoݨògs:KrJLeX-[媒Ojhp^Te_s|N1>Kr5lrԽ+%@ޅW%O/yiW|TY|jC݇sL kf0 7_j[I- +_y_cwQ ̓jHw- h`x ׿-y7Mi$"]?FVˁcաanǭu(TmWr8QhN:#n 3A!41<\-Z`L.a?P9rǗߌ,]< l~QnG7skH1!.phב~7m3^p bE w9H!zpqc9` G* f`\JLaƦ/&OXz`XA)bjŵ?y 2q+@9R!P p_R I3V |wjepo$kN=t GmUG˚4LJ I) إҤEL[2}v2pnH|Ј.QQ[YgOGC#1X-uUvt9V?O:[β r E,:b2:9Dx3  0NQ0>k9`zC$b=3"l_/9 tabޏ/n{g:L:Xn4z _ffm_AVP슨M6n}n߽IckwIDk.r}Ry|[h:'ē{0'}@d`= (L͝O8ח02RH&$p FZI@d3^M<=S߻ÉG@S$,^U1&" :1sճ5pk&kyoMk{7JɠۊqUPfmBkPo$dz+&H mtM%"!vǘOěɝR};0L(rly$fnMdzT{ӆ:(lyԃJIF0|ZfI?djy i/vMPW4ظS @eЂ=bijt?董F]-u?W'B ӒM-"+ Hp8 Z.^\&a8#6;*QW'Dȶ,^Q[\'N:j.G8-W-s!B]$p |AxQTﵥwyQ kxh/mAO;V4jxK?Sdu\ƻDsW�)g N`ڦ nA${&YDf"=osQDc>He}?O^/mPL8*:\* '+Ō=9* ӛZ3'{K񫞶mҞ ila W"MK2ܼfɾ`N*12Iuns}]褀$_hB 1m~C*+94婃̱^?Xk吱C!\Ɛ)wC8Y "YK֒6B=>Ef1/>0ɻAv92G sJ4*d" -X 09MlKA.ycb<9QɃ2"R[aOB1O!2y$>em#&+D0yc"F?V9$~wIE!ҿ簤L*T7}LX"9m2n7DaLl̗3Nq TG_+C<$Xg{Y=@"k^'JrybxQDj$a,-m'>Y r{7)QH@W`CYLH$:Rӥ=&_e1G^6D@ nQ؋h ҂iq& \>YHg:N>j+*TcTmgG ƅKe'y%!;wAw_+q5sZ(>%/ .1"־*T%"q` &V1c'iJ "|Xm1JMb9IƝVWIR i B-^]:E&Z̹ $Ff/G9Jh!g|#Ivi%1 RLԵ!pœ6%mlw\x=M:Y)7X\9G!TɓVq~0i EOmkcv4SmϪ ѷëm'=zbLvHQc Քb T-m,ϼDqX} ST=KX&.zGPiP E:.hӪsVo:Rf!KCoOpbP<B"'ѹֵ!V#3)ȘHPM8 ="gt֪A.=$@%~MJ*.X!AK%(I2W6KS'ZYsبҞvUW|!oFEH*,7 0)ZLG: (wi/s|X[[Ed!-5L&4:ҕAy &(97=ieEL [K@ʅxy8+.(Q\m{)O&M 5+Q2]U5A{!u?\G^yA%ͳf$V r>+#h;'Zu7 e.BY/t&[6gbivXìa F`GLfdPduh7ʆ 溷74{x+{| q=nz4z~ogj;?wђViTGպuAjr|ٶߏ>cv] skݢ,r m6~LY?v4 aZ/;Rm+X[87`_p8).r֕\ EZTģ$; c/]NY u}d [ݖDUȿ= kIb[lJv2ɞ ׉,~a+7"59>._UЇ1X ux끩s ?W<#tA*!DQ۔xa}Sb~{?%3 Z1X<|)LC&N˻Z]יi.\%^*'^m@'zn7ŬKq iz!?aZ?vb$x& Wy6cJS^+k>N ݃=Fu¦yvҖVFYp 4~>y8 )&A_ PR~EPS _F#N\1tl )⦅ea pqŭkxHj('zRM߂G2Qxn6j$OL Y"ƒ]UtTWb7>_{aj%;#;cf-JgwvNj%? i.J<Չ[~fȳ7sBswdN/9`JCKnc ePNQ+r̐´!+0pM"ݻsee"޶5&c);sDI!w`膈=(YlN*[4UַGih22u@s+,$L)7kI8ʸlYQ ?z" ~%k'&H}T:O2\d 3ND#V{BibP;_ W`ohc2<as9fd :`,\T3r*="g"/,smjsgWGhAyw_1=t-JWkvA\qv2Q)mΟvDoECfmI{n&@( ^ЌڑZ5NvF<YF&pJT=[1b!х>K}-GSfU35ao =YE}Ȟ؇<#z{6%Fג)(%cK!kb9I|2&\]Λq;`Y@r+XUm7#bWU ͔:9~IZ A%s$?h@)N`ydk8l[ߛ!$ʹ&~-o {LoN 5gpԉ%V)fgjY5|Xɑ:t4XSͤ).s/9k}^=yߒpa~fFx586s//jjkT>̵P*xrHn!OZi Q(1wYR{+W^![%Wq8vE/ ߽Ӈx@(е(Ksc^pDM_'k=$Gի;]2B9|\D*EUU}G3FGҳZ)wgo8fdBנ ʩZ 2⺿'^{?[%7n ·|:-yjqճ7Ӝ GsT)R57zf$N`Ƥx7/RG[pXJ5~8s(cb('Chcu 9BW3(cP;"e"Gis1nQ#G#{eɟ@* hJUM^隥vEEF8sGdEE_?5v`粃 OE%34c%mcXcaY/vg+6CJ>8f!}u΁=N1uOW~6>`d!062Rylԫw;GnB@mLiS.&N]*`c%3jlrBc^ fmI9;bʎRYK",fi)* ivXq%=;P`GUld0//uZ o~C:Ъ?T^/Yb3z dP6H|}n4m{91FZ 4V<䗣av&r^2` pP)Sٱ("&asY l,x@0o&7UۿO6 K9DPHc%36J$tG.2hMъ-RZ$ˬ;xIlfe\ .Z1LWRcsnT/W큍Z$H@I4ءbaY_:G?s uo8TD᡹n|޶8$7t|xM4DCdm4,ؓpm\$r*aC|qݘx҈(Od6FNaz0ucz8~#,v$~,glȈa']gHx#Ox~פxY%M+µބ;5W1&fP=.%<\I*ơ IAnwʓZ3=N_h:A<\omLaeaBaRx>~AIĞ 'I¨2tӛ%/M.*&ʴ|h;UlbjθJm*r;yYba>gV 6y1CbN@RI~1'e.CjOhݝpT|΍=U \VpA˿rh ;20NyxRBLmԫsMLc1pЧ>Yu RrkmDSW'23[7R)7c8Iz߂~e_]P*s\jQq<14c<p{Zt~Tc'1F8t LMFuhKn)iJjcb3^G$ #ԒSNN6oN& \t?h8v6Hph: M1鈗]o HXo _] s-L5ҭw]$G!}/ 9PhmJit?q ]mCz8aݦB&^󿾮aR " '{۲D-\=ta#˂Sn0)i袯\የ鬘ɱ,'$~cmSnNkfT^ QP߻kLdiP <5" |-kQ`Gt-=,4 J:5N)f/2Hš_*~bK_gUtDWǚA1}h\v+W,qdߍt!ҿ%\xoo=> jA7HŷxXH!:ZPzZ߉àM6󎜎hR-=z{.׹t\: N IMs13QΎ8~$2qt~}bў Fi:k,HUZ 6, L \UxQc2rgT* cߤdCSzz4gzrGo!>}mMfU;ͻ&p{̌ӰiDG,RHaD^| `Yh膓-EWlᓮQt:Z&u|,TE5*# 7z9RZ_@]G3$-_c jCn?РB2}to3S2<}Ya  5a?A*Ev/Z~J/&WѺ)FN -D0 bGfpסFCnkq7'\,oyLD< 4郷|v^բp#ť]>tft7,GjOKr!}f Ql&PԪgrˡ{O#N6Vo 2/ė 1S~罠hWq8BA>Do+F_kVO"6^;e^'0c4Ֆ*["v~fYc T%e"҃a]pmo:8Xu%9$@MCN[h27Vqw\wBip?b~/l^JXrUNoD% 0)B<|C̗ *0n=.-oyp<_HƟ|yV+z(OѠH HbI؄[?$Z]H6W\Daȴsv 7eqj|G)ՌYGnOmwŷ"0ڛN n]g^zaahT0-f0Dewe̓XުS5-Ϻ4Lc`fH]ڱwZd amZn%R{g@KysVIpSC]9mƠ6#vQ"N>eEK&s=k4`S磫 6V{ж-ໂ Ӈm[-U,}M)`M#XLCZz䞷Y ^}cıRRŘ \mUu*lH}n2Jq,yz 4^ӖOoAY i Q ˉȨUz'OjC6tpq2"1]`$濿ټKbŌv/#h1#}LjXa AN}MY>s I$ؐG^*4>1ٞY*g k)nJ- G[Vuy]&倨ؘ@L)E͔ѽ)EQ$rQJw)z F ׅ9i $%OqE  n7oΥ8~ΐ3G|Uخu«>mY`#Zc5pZoCs[Yz*CV 9*)u|!Mue uEU&-7fK o=%1Y3 oD~wZOnQ} p!/A=ǮFhbzB`h?= +<+f7An9:P`Hh4Qp zK@D#*ErcK/n9&B=؞%5XYB{GY$,՜G,HA&^ x^n6џ^,}o#KU3(jrH#'B]!sюU Q$jZwޘ|`0{Us%N?H(_79/}c 9Ɇ 3>|! O6_v|~㊳Lކ$c, b`mc%e֙1s[8lTKm @;[(@ Y`b֐c%*EbMcƈeI/zLS{4<)0ж%W7X>nz9T"ٟ| ې[QehD*n*j "Ļ%ջc+1r*sPIJ\gaC!mx.<]/ydY/ u 1unr 4ZR6q%9lQ%TMhj-$?x^s8 |8ӭ\,:> ȇsA%V؏Vi_Rm۫4aX L=މtFɬ00 ^DB0\%7F LUΓdUWqe9VB#JER#j$"LtvzN]"@4UBG6^,ff 8BՆG0uI4\@TBvR,m 9Sl$KQQ48 )T<K}SQSu:5A-q Zxr)9JoZ{USTșB3!fO#d>Ez9w8ZZc f>YIr:m=^0Uw:$7Xy1} ʀFmuO߽LS6% UΠf֙,mId5Z/@28m*lXZlw}x-J{˦ 65h˱Z~T)3w/U 8ÓOr_ҕ? YQJz*oKQA=Z.^MwcqVA)}ׯmG)2+pˤcKr7DkDRB%ThJ5BD ?_& E[L@:Zy:lUI X dH=g~pz1d.jʵfA79XMEn U!ޞ(Rgʺ^>US:]Do ggڑ x7ٻ(."Pnk5p7tAN0Z^s%-rٙ`E.}g0NhE~%`O4yƖA|Kv~ۺSlE]+ {uF0y#BLas/BM4Ιw17g'Poˌ"Qrurk$0=O=]F]K.3&FH >3#m%'/ž2S1q;SW; ,"Z|ڔܘNR(ZRj]x56 cEB}IxRT,2HPXtr/]k`'µ}w92 '0J-IB'8 $`6ϊ+eo̯Z\v r#Pѡz5N#Ms6CeGF )N1~6 jbO!WhdχIW￧|ܵa0c߆*+BѡpG7)]-S z@Ƶ']YYz檧vV1dmuXCS4Vk)&7gP`[ BU&nh5hn47 XM0%t?yUL&Q*_YKYWjk*Y0%-C/q']''I`FS "iw5?|_lf4g˷8_cֽ@8EV[h-:^ާrnDt߸!Gp~"QȦ4D M6,YG'[@PCOs!8[1Ÿ(W*]k@ mg> 2[|ED Jkz1p:LrQHC/2(\'ͱKLh}:ޯItt\KmT;'=X͍D?L@oH~֟jH~qSG =SZ$iFnxkL^;#P$\47ߓIM܆ʛ1qab &?=rnw:A}w;T|gS4G}!9xa# , Ţhݽy!;gks`KKb!#AEUDpW ȑUЁ2J50I)6c~FBSi7r|Z b3+; Ttt0# _&SN25Xa\BtWW\:Q"?]m{G6MLLyuı:tR03Hޱ9.ĽC .y&r:<{ Y`xJ )dCdN McirkO*ysfZEmwj&2a@c}9N1ZKTol6ع0N `9F ~ RjYQ .Uձ^-R\21+CLO};/v!U`5'{?by(}9;M W؎_.;]WSບɽq'`%L˨2x0"F 6K ޷ gKZ:ʆP:7[)cm- fN4NٜиDYHCVX/ȃ[⤪Kn6:JhN]lZʰ._]9<ʭUaM pIt%S#='Nxda,"ƫ텿jlK;o-Sݩޒ4/tQ:IgPY301#?jS[,w}c&1b)\\WfAiJb:ͦ1hP"JDɲNۜ< ߮]=\VѰ%Q}mmr#U(#H<䅧SG+k$xF9XOAcDm|CqU~N 5efNft"{Ƃ̛._PV w/CJcǼ,P{| ]z7[U6NguYr^Κ2B,#x! \S90+DtZcNCs;]5ACkV/=18G:KHdpSQA D?تZ9rŽ!MAĞ$;hN>HGF$,{ :ZirL"9UZ4> RS;8F${{_ֈ#<hd;W[\ȖbLX"4%Qq 3EcE(Ub}4=bN͞2Aj޽((ȓ̽zPܴnR!{i4y6;#d6uM2kAl:BpZ ߮ZpG;ParG:^kC_AMG"q€<6E'B@& ]|B?4UB ;|9Hmedqa*X# +^]QR?L3Ae{]9o:ZK I;GyxEy4WIj{rEon̞seۊ O+{)zJoCr[ 5Lov7"Wߘk0It|E pG _ q;ש;Pm m Vӳ3~K5\O?p)50<'H[8t>BC)ar Y"Vbave|(6lzViv+D| mA)x}yބy?SAeL%W>Ͷ3>B J)z3x&;W벯3y7*mV*G5<FwhOְ,Id hIv@{<9Шr }l%0pPZv`Xc75jt0zy509+O`#mUO-tRR[uѽۄgmW":/ߊ =ߺBmZv۷}nҙzu1 nDq/n={Ig}k@{^NZEݴ1nQ!Bl«X/JI,7(`^6xgu A_ Д<7Suu56t+W*gHcWN(;uDߙ;D,O!ph`nu8يCʡ 3kdv)>^3fwO_rXzi-*Pͦb;/b,B!$ hpDRཌྷh0{\.잟4(8N;=kp&:B#4fLv5fLy"ፎGȞJ.*Gni]3aӀ"K, EZ-%n}oE+_rF nb_>7|jX1+ka?!̝C;L`mA(!pYArOgɟM}j:"]*aӮ fp‰neYOb #q NSX$3 3Hu jKiaC0_›͡M!>1pz9(G*5π@&+5}2Mh#aE3Uv $M/Xd-xwib6Rl͗Va"Lj-7P(~T⥉dlܧ 3& l*7tZI ^3yk5&F{A$_FE$2-L(7jߟ<9m4xА`IJ I{ rxj[-{7=/8u. "Ȓw^xWNb|=[ ⣥bl0;<KՕLq" q~}HĂN65˯xb!ɚڠ}5I+-zdE1֯42#ЀɴUxrQm[ܕh9,8_WBm™,Tb$}\RىK߶v'QO W(QO4MvynTDť,[9&ac8  Pz%w6(mڹA590jD2soy]6ݯ2x9~dODAZx vrZ+J!N2J5/QS ,1`bN- Cl.^æ"f"nZŬ)WGjμ26q%z(WY8GSu=$]#@$^bbpN۰_g3ERݩTC[PB$٦*Bǣgku+BAZ=P6H`|[҂17^>MDi^@ )V#*c#J#9\gB׈:hv+_c#Y ߩU]Vb?*ρr̄Szi$F7 )CTgLQ ݄IY\wjXo'`؎]!o)JI3/0#l蹘&{Z/'Mc4HJϫBN'0ew؅} ʼl>4"oosgH)< n3lU']>.5Ga` Qcԯl$CM/tJ r\ A9]Rtzb<~'tTU΋nTp^^bd-2`c5>oa ԃeV@@hS1#>qES8.Mֈj_#SF p nz+zy?3*Itvu@hid+ϤQ2لs%E0ц .=n:"EpZ-QfA2jXayvƥE[|AX29vlbKh㩓U&nN ̄Ƚ.;c`ʳ/oq1 %KlYgs=11A#)b3&9{ ф(jX^qΦx$eak.4#fAw6XOw hb g{w\d{_l t*B 6@;G }oS٧{ Y_msF>o_W´Hn Dxlwnwdq["P&q)=9.L@ȆAp'% e*)L&ջ@si&pr+j<,Ai%B!:(C_9¦vu34i as3*[=մB @$kJnPGOqAx)T8D|_\8i:}rngbD 50 #+ci2{8l7b@F/'~ݚHy//3X a U}jJF 2a ,1tPKMNsGsf)Rj*MND.NhJu {'5=7cI%&JދۡP:kL[#ـ7*x|Lfg$Y:/ɴ Qͫ־"gSfzsfWp'/ DOw) _忸ط/ʀsUX=o(ɥũpߌF3-}P{ylc߷^˕fnN#E8Blp< ƍCEzp}cNVpܙؐ*g]$‰4󉀠"Zk_s\a2D$KaVT&ֈxmnOI+C{5f9\Jƽ9ds]n`eo0.?gDeFr+Hw9XRP(7@M:ƓFuYfo3O\I-60|͛iV$%?4LFYj#f"fan ګqls'P~+~l/aBd}pܛždW+Tp э$]ɩDkqE/:`ȰuOXOGӿ`97d_#x+2U5?x%zӳ.H:}0ыeKwb#B-{5[?KTm lo0EG(r!LkjÎ~n(!Fwi'7şLqΠ6䭥l(?WU,;N4B&/uXҙҎ@qb-p&~'/)Pլ6nB.K#aBX&)ur;Mj:r':?('ҁi1y MFkMHfK(;UO:6թ+]ʶ$wfHdž1:T>{ lICf}h>ܿ< [C몝C7GF(2r\B8WFInKK]oQԤ\M* Sn/0\Y {|h46UcR$>%"Ng!`ɯbkE!G{na|vațijUBAH&ɉ! ۢ}kN7͋g0ڵlB@H""ӳۯ;3SNLK“)DK"-5&;$̉E1֢C*<qjƧ! ~yoO/!g_u^S1z%ر׻9}j|D-VľJcD !Ja"lqiJѲ/hވ7\]^E)~^ `T|9W\RP XiHuhA*¢\YB .d}֔2FC]t߰,2bK8dCg*˦4zG*y v=LisAX9ёu铏Y7Q-NbdpkR1 V`3\\Ec^5\^W=|CS>ԙF =ZPt.6aA,⠃kDt BWMdi7vz^]iִ7 ,Ʃ1u<@'6.qdB,Ffqj'bGYP,>BNG&)AkbTq7lv&0}8_mhNrLr{A=D3ˆY^hs~U/qJaPCPhL8c* ʫQ,V%Kã9LRm}/ ]o@Fxh::! [UE<[.Ў}h&^jU񧿹G:Ykc<+v͗hJ,ktyA0؟wz/$@5Ϋy90d~\|(H %(ulb4&\(u"pF{0ڱ1hch;ir,X}PbjLl~lBlOYJ4{?`5])4:uzԍ]jgT:-L?ҿ\L0wS |nγK?@fM1-~ -˾S[gJdfnN yro)`Djn=VۙRҭz$A^?Ț D71ψ nCeasTNg]~ خEd&%^)Dci|s:3ڄ dz>T2%had+hW/5DH^˩PަA:qԧd-xԯ&NL̡#n@h~+ ] W7q9Zjj6%]Nɾ3Ʊ|2|w)Ifcdy5ݎF_GhPыިAgEUz"Z ȦBH @0,1eZ;P@/e1X]գef aaHGJcMMWoxr~=Z(40Av{Pow#1!myȬBdj6Rͦp&CGIO="Y.Ualc̀ ҴhL:W.YjmnD:j_!v .?5 LLb=to(o0t+%`,Liv'_HT杒hqF:͜o9R>o@+Y9ʄHݳ|#[gUЄ3̊H}2 :RLjBr(^.b1P4Ni'IbDuW},w;E%gTJIW'p߭悰%|겝II8J:lzofCnAΑc kv%gpMfBVŦ=Tk4*dt4οr1UG/-|Gc')\QZa7,[}WQdy998%s*2>n >e 5$P F^p"@XDQ`>Fm:/!fA,ްX I慓@a$?RڑٟvxIZRUִqWNJ$w$ #vVҌKFhԯ|VMcԹ,jtnOlOdU;>xQ XTX"B^#:3Z&Pm7▕KF“WX}\R%w ,]Һ+̉=V1-վlC`_^͕ou֣n򃳘^#煯ZFo>ZQehBWU_]=?8di-j _ګ{j /nU,b o'liPo_:iHm2(*jVY*:'H2e|VHU|C>rMjL++ t,|@1T|nAKUp%Ǻbv!wnbTԄI  26/LaMQG8(Ä6RV[]%C㵞T>֎`I^O_,Hz!p<4Q]dy dǢŪsPV72O ;fQǾiQ08fC¼@xRyYOv^>س-ٰ~I5 w%ڲ밁"gK^ΐ}%gXb}ӵ߽4oK΂"CY-ʪ.. iWgfkLŅֶ )zC2cN .28kåW֯OzՕc[.>:vYS<>B#΂\*?Ag LjY騻fi=\'0:a_:u# *h''i[eP}([̣.bMEGbNγT`+N6UEd W8« oYV7*ɉ<"(RVCcw$NͺPH"l sLu]P⁦trAeVr3TNEm=R< ,JbnT̘wKkݜTkhjN/Ջ{tePL/~OUD[LeNԤ@OS9zĥ)Ms 7k`P;( 0-Sk{C"1<#laNLMPբjHC&}ywxp_:M%T(xpcA=\m},T5|&5K*oGCp3j94yy7E!<5p6:BgLdaXZ_{7X6[ZRtcЪr:^P\qKw̅()ma;/MB(7^=R FHM[s2rZ o*B oJ>,i{L(|`lCm?o*/k2vIcѝ<[T'm"Ⱦ05cȮ'So6L %6hu4tRyZ@:D79 4LaGp qVlOIV7IxM[qeNW+|zв uc5MX2{=*ЎfcO!ta`[mr+b _5E_H}GеPK*^]t@n) #ޣ{Pqa|e$z,?d@%Eʳjc&JOBIϺ0?Ȥ09ZcXw!8DqpZ8@'4zz-TX܃:Z)\^(^uOجt Bo {"K1ōE)!]A'3.<v>nX3ߒ?FFnOxgP65Uzrlܧ($sD7a&R֭ř!l xT-~K?}ՈQ@ިYވ^&hUƔ-d:W]U3\9_? d^ c41.P3 wQheQ]cS_Y"s; ƏЌ|/uw<@mJ,fvE$-T`܋-[ٽ~_m݌:?MWIR|c'BbBgG3~[#0eZ;Y)qt>x7zӶ;>0Bۛ hK'>b)tkZiV_,guR$y \a( h؜-=~JqgĚѬ(:'Zo)S^YUzSgK,4쌒,Q'#[<6$@[[E-zr 1FͷL3Ď A,|Z7[,̰8W843ڱY PjZ-̌ 6liE @b6Ȃi)^%f`{>O 8+PRUhhy,*]C2<9Qo}иb~OчǞ_u!A ăU4j_9ɪt\ B+1:Vld{܎ؘH)r"nOLixɑߣofvJ @@yg&`{}yNc=!pu\Tr !vs}c\b#nq9euhrWϺx݅b$tqG%x4: M6BG5C6*!r"nƵˌ!q4R0CnڟV \581$i&|ZQ;d%F aP0 rm=RzS≠^-HM0.* 9 0QB;#f:wjf']z6C)˜ @*Au't7^[I)Irtn̴+_9a),]&8TTb\]ˋіj?0ڽ֧?P4?K@'Yn, ]3'.|5s21\퍆fƺhۥd_y/˅=|DT`f)Z#EfI5:cSBi'KD=ce찎hKOywe9G稜<{m $傯wԐG懣>> UM{i~!+]ǘJF,xܛQEt\6FOr eN8v]j=W 7~=4vSy=!Pw 'lH!}QĽUЪşD#!:+E9'\F~6"uJ3$^)cC҃OWe4/w@|2|r;%Ɛ}f Ȕ?䯄-D Yc(BFwұΏץ+BkF2 1m5*r VY'63-go0o#Q1.'Z*JҶdSP݆ZXt1L2l~cBa1c6z"ސ܀-y f:5+c-0ND0L릐-}|Ӑ]U$݄e*" ?bj:¬feYVh$cBS'^drC~: 0G]sW,a4JYK3|,oBŇ_Oz9@9iax\|Lr1X-o為鿏8<b}ÏQ,k}-\`Y:ZM},xdvwIPfu*ߺbNEYOK6sj* & %0.8 ]vb|_f Bo\ϿdlLڐI)Ddh{t q%0T_n!_P[.&X%)꼋RϻG飶/8q )|ȏ99YEc.Tx-Uj|Dž%e\_|(ݖIn3`'Gn<&I.:b d#ͫMr#%%piV"/˗SE-0|_էbvYQekh0Xў3[Nj_@,I@lŃ죂+c:H 6AJC:yu0AB*q h]m{{٥^ rw#/j9ޙ:Xmrow۝_[ Pi;|jfM2g!w?%psdό!ˆF4/`L)ֿnLΑ_mҕ{|> ;鿛҂z5H+qW/Zhxo.=;Ki WڽG+,U%ɢ싆j :vs1<|ů@5GC/Oj HuV3#iZ!m/qM_S/{<7F"k/3 i>QxJC!}V@ǻL{ziꀃ`S Vȣ.@?ņXeSWJ3{ܰ94@u­{V 5P w˶zGbSFNa=+̫ H|\(ݍe(9TbEz! 'CAuYlhrh*2,8)ݨ nBIXHDIoYv-=OLԇx)Bv sq'$'>Ĝ`4^ pJ vv'QpТ;j8e!P"^ެL/@tK̝`-2k~?bW .W]'k"]ZFÞz/¹ҫa! l(Bo@L"++ButPAIBB B6p=ZYw[wRCgfn( \DjpOf1?<c]]An.*#"QBfXJIhC.'$IO8Nئa=9ڄyarUʹapnzgV)<1*i2Zxery_ (@Ǖ aG†*ᰌG*>~S$n hgAH׹6y,a|iJDAnF\fOp l|/l z-?gTrqvQg pxj]+ ؅K.Ի9w/x˪a&aF'@vG'#,-mgK:Ng00J)FHRk&z'ِ@YK1Te;NR= ZD0U9A0h -&NA83%>&K%o*gy̺H^^r3˚$[ LP)Nk 6L륊7Vؑn$^_?6BcQJH_Rp2KTPóZj}_x^ HES:fIkͨSɆ\96%lJynDV*R X Ҝ_ Kv %whM/Y?sz3w ^bop%U,ͦPĮ\{`H,jx)֟_޹ D=r6igѰ8PHUT3" QnL<m/if+dzsW{DJ~ ~][ mˋ CzC#oYB"迗^HKWdOߌK*򙪖g|6l:'IhqzP_LVYo ?Fn1=e_A(]"0o3@jZ3<N-fd~VgE?Vwno,H-U)☩AX%x}(:MEbg}-:* j!+IiNd^ɚAj HY1TOU64{[䱝|mG}!\ǧt"Vwcd߳>&Y\HGbU0iYU>٤=߱a(>:m.du1?11 'O5"!W ec#T[Bek ۩^WrR6E8 ĸ}WW:<.ؕ +PG2/5z4R|~SCs1²A1662]arfJ"&" qlӬ4=P}oP+YTjj{ -2`OcH\ӏ/il}mi/5_:SVcu#IcŹk|*Yf(6NMq:H1j ,EJP!KsjC#v&;ډ'frc.]VD(Ta]! " gqOk1/DKyOicl/XicxUS;ë6Le .@J˟GVh{?l=^3R XaǢg]O6d_%zj_B|siB{ u.`HbAc)-R $Vy{ap-$x>qszk1n_أʱt> ٖ@MSG{ nʥՐME1' <}W`"N Ul5֦%,pR|-V<۬ah9=UV4;ؽEl`+P䯦 el*6~M7A {tiG zS/W-W'3*i@XZԷ )Z1iDؒe$K:l&s^CD*AD*䧤I\<--7FrJD:NVK3|mw^ߗ*io9i꿞P,rP`QeUD.? ?sAa!QӨu#6'F [|3R%ΑZM#4y%31˙~\-sqRNhVR$>SQP;žG%etr'f)6^9 x@pB'H0TZƭ%$LIA%0ϓ;-\r[pgKnA ps hO?'||4 oU>rlqždMCiNIZ`1}ΎVB(z 0҈^VF%tZVfo̖G-YHx)n~ Slc2+6T{~b9 (``bFsЃ pD;o() Afhl9ʝ=qO})͢4lAYI#Ӯ/SZ8@W;&b^:.}rjXmȏQPlj.bl"bԏ[|QFX f>O]۸}5!Ǣ{uM{mVozD (j5+bVԋ+ |a$\r3 nM(1QM0%3yŜ@ bL";]:ZޏUǷ#c]0CO<],AI*N[πTßO)Ao`ΙD5v% L-%^6H-FO* 1Y *h&mkOgDE"Gޕ<ٛ`}cR^ЧK*nLs) M6pDC^HrWlr.DGUVP^/0zP=؝LbzکyJ:A'y=/\=ɕ52G*&Zja5!.Qjʹ/یEXcޤ+>K+c~wemz/#|1bc(M;XR6CUxF~dͽP~.UW ѣSPj{Q'aEt8Z΂4^=_le2n}c@s0#}"t|1 \ߞ"zfGiy%R\* Ce ;8+DJŪv…a?κe3v~ `}Ԃ6eC0v1jb`sYؾzQĀgW1_|Z,I Ic@dfs^9Qm{ pK@.-[/ߕ^گA)JaCy3O}O󣮖O$xk8 yqmK lӪ0ORNd~93L^k)D҄?PȤ vD=f_\ G x;)U4x=k:) :Lq9H#_\bdlZ1_2-Q(j/Lr5s=.Utk#5a<4o=Ş UPx#(r̥q}΢yL Π\U: 'MwT1{?OU?ӇÙ>IB, ]yJ38oܞt%UESp*'jj! 9G?tTƆ즸i:=:T ZyDC|Jn_6݌ |g<~njl8֟0[UpԆ8Z!e9t#?O"1#@؅8pS hO?j^DQeV}Ry-1?Y[wi} P; TH)p_Dq1/iI=Zʗ8V w LA29?qƴ<;]58k,4*0z^i<1f=8J̾*55".9*T^2д$+jyM#e@ϫ}n⪆whO K"([ %#)PY=p/pOXBz@%bY146(CHʓ=k%ϕJNaIv}v?*f/G]e3<)f5z~}&5Mh<̇W7E¾TğgfyZLlzŁ{ÿj:CT76"޹b\dܪdzUj\M)"^TU{ݦrNb7y0Ho6' ̡-2G"R"Q>< v9K2w6)^֫`r3Ed%(&MY%D x,1l.5p)INm7ŋգhsb3O<ȥč+S\&*ܶ$k@(yMFa60RcYnf=((p ۢ%mV AVdz>" `v[ڧ,U#J6⏃ UafEK_'‹Au.>$$Ƹx·zn85mo~,' F#<"9EOo?hbW`:%"8V٘Y/S $CG輒%:wU 7T$xd(P8($VG;M!#嬥(ZtM~y^`&w0 *r 5kATA6N7IέŇܷ/Ǹ(Ŏwd0="cuI3$!qL3?jaY eno* %PMbPI1uTAKWʘťe0-si0_˙P}'%=9ڡ$n\Gˉ_OUr_掔vIpՃ6w7>]X?aTC .|j& ԥ؂ +fwUE߱ztJP\T!5m tIocgGD)#3S5u䤠QFȶW_M /> iqQPگK`@\ pj ʅ.٥ɘwk#;~F*JmRH;0տRZU*)уaby(>+nKzZnF{|!'M~V\`ipoNVxr3`AY uMjVI#TG!–up3uX3S P@Q*(Wmg{gsW~y.•D_Fΐ/?_w";lto#L iD[R?|!,y{W& 2'[>3Z^Zn-7G27_sɃMɫ¤MEٮDBH">iG F'~u- ;LY,Q@\!gQYatHI"5I"{v2&BאJ.V#BnC˴`72ru,X?d!Iܤ\9@pG]m_ԃhwaši >0rP.Wg2WfC:_57Ľ.U#dM9oT:vFt'?L(ΕvT"?ʴVp ! )KՍ8A7xi;HYgjZtZU&q?鹊K#/O/=A"FnS@jLV0Ͼ)nzOɡfQsc昺>=yP90Q܎5^X]G,]D 5)+JyW Y7.yQ,ӝ[fr~F{ KGi '.s%  B͉E/OU`N.ǟ8F tzMOGQklBBm_p!h!zn) aBk@kc/|,O9{S5;Lk]]MH.Z},jp]ӷ/<}ٱSdsG=Gu(Mꩌ8cv4ipSX)L(b97~ iɇsLR)cGՆ{LL~eu6͇N2f_9@Xgs`D9k2tsѾY: sq>6$TUt ǵ/rQ j|' \w^ܧr ;msqCx(|ao+D?f4*"Dv^٧P`cq<)7]^$mϠֈ `ʋJ>7JWcLa7Mq շ髫4"'/ @_ӱ`iњSrEPڎ]j>mAX* WgǶ6̍O '|q&Bˋi.DŽޚ 0+ G2  N+ `@? AhxE-*V~\h|J.c7;6Gh8~o]%N:Gq;ԁXqxEѢr'\ q5i90 y(Zۂos^@ʸ-!Mҥ"m"#o `C9dle~;pS޿iO!mO8 p߅@0QWnztwZ'!zuyf?=PY~ixK3ˁ Df\Z (.T޾Xa`nD+0H=cq5[=CieP^ל2XPiT$"fՎ <3wg ^B|gS\t B5}gi/84OGt~pպH+YAy4kYu9t|18lpV=r"[@QKR (ʿRcM`秐&Uy;W1ф^vgIsCS+9.k!gCN0osU YnOghrY };sbˇZ֟"?;f <\#e)v8X; I,bi[sb_sLuDg_5}#n6R]QvcyinmctTkgbMQ%#5_*fXv͏xGi *aJru}P@T٠xu67A$l[Lt{Vt3Y,G0_LVj>O 9*TtF?Ot_W`9\I~["ãn78%D`\͸cN!_F{KǻDOs}Agϕ1fC{=BT̬y\,YBQO=3NU~n^87KpVncgjsK1>НJf#LE x8Qk)!헤D j/ \"'KUeXr`0O sfg Z{Vr'QF X\lU o >O2uSX%/#Hjvoϴ1kH)tk=M6CʀÙ˥gHAb䒃DK<@R%Y)!n^ؖ#C'i>tHG4C2^xR[Yh ;q#Gdw>d>~bOΊ4K\QJ3>bw}Bn/b q(ٷk 0>qXnFB(d+!_-^NO=P7"2De-ZU{dw,VT!6kVR'{8[*G_|CR>7Y$l&#P#Y xlgLMP:Zz6ʃʴٽ,ziW͇:t'iZkޏKZȚTnR$C̋0&8M~h-GǧuciWi 1$*V#3ԋ- eoM꿺tĕH. `hS-K {g&>JgP!65͈[ #|r:Qgsqi0vp[\fiʟՑ|fYX4wIƤNN "62,-z'PzSIlMj6edzWbSvŌoPT ~@,u j*?Jg+Cumr)$'K.xnP67-R\ M َ/,i2CqZh91=~jp&)ߜ~F XuI;6E?/튻!$9W+a$]hRdHb|NZBμILJ@ 4YA(LkۣeW:QJ' E.8>u+y!'$J$ VN+{k2Hdwv%Q#o(|TӦ$nuw|FXRi0~FEJ;nJE=1T>)8oǰ8/ FAaᯑaE#$#2"RǨ,Nß6O~gk!B&أ yDfͨiH!T)U'`s @ݠ/f-zr56^GgnV`&|elKlҀ ݐrdOq&\&c'}TL@`~5'_l=qqa0Sc2GB\^mS|/%bψW^E[ ۛ; ?F a˺CųNtP3í Y7WUlNQF/\d8*2utA73 =ew_% ՒK' f䑚,HX4>H\# :wgC9]0)AK MIa>O' ߰WmVϵ}*rT]˜0A.YCL^:dOjfqxwUO8SWy} .? \ `P9X[} ibtQ$y(΁ mlDg+,9tQ.)5p%}ZKsP~ V]`8Nk|`jJ@+K|v[#$z/[gFj?1s옔섷۩>2j{tlmXeeH#Ʒ0ׯ*ŽNV8`:`y@3h (f$:ϩR}ZVȱax,C&fǩ; odU!0XL`q6΢r(1 ji0B!~K|Gu4&?W3)? ܵcev# t$ʦ|;5SR`yZ_R.زjq[WC6@og wTͨjLI!,Qlt>]&G=zj  w:́vʼn"[]V$OASXg1FW&-aˀzGs=W1OZ+O;UwiIȍoJ7˛[_HewU 67]$(gٽ]3j0Bj'A3aPnG[-g# S¡_Hlo5rO-ACyjgvҺfnn(Gk@evaEH`:BCa׫EIۙ=miW|'TEV!&°-; Ew oYCFo1P#v†qw].I!M_8wKHp{1¢ Q #!Kx*H8ZJ؇^ |RCtK,ҳwqo$Z Rcd9xٙa:֭nrQwGwY#q҃VWA_.:o%]xL*TL /U"@F2M5pJʗJ7ޤ l4 ($;P,1dw_ Ɏm=dfL{SI|BWIW>d["2g+ +twǞt.S}eHRB_CY^Wô5eKyzN^Eۢ9)O[ n#nKy]܈/_m%eb&g~p+NSz 7WF!kitg=5#92`,&= , $w÷1vheSKQ!Cx?S[{j:^1SF|B':mYYQ7ɿݜ^|#Q1ow36 eI:y1f }ݓjyG.h߶W> L6n2{:&„IJMܸXѦdF Ƭ 0ZCcU,E=|Sim WQ:)JQj`ɶ|sWЊgAoD)Q ~Xq$VW9 ᱶ;uiy#g@L{ TMCPlSJiKkhH- ?QFeI8߉wctS8ZÐF` 9ڵ>g MHnpGͼԕ]QK_50DM ʴ 4].+Ri/- baf*4_UGR:J:FgzX#{XA}R4R#FFc3xwI>lߥy(Wm7̀ϳ<ߚe0\&2;wE* ɲGui#Zr,|_yoGwiIyQqzPCLhHh5_ETM֧7'B+ ;^GzޮU39ڇ :l4d>3І(Ь0/_/1¸na1Wk~` !{b^ɕSrJ:b8_9ihs?ٝ}#u@2z|HzMp'НGL|Xy$ 5!yx: 7ZhkT[ET㉴Ow؝ZO%9/s3 Co_yiQ'ÍmVDYWf#cn;ZyX R}@= ꞏs$"S zu^~1 s^(YO@wV`ݑ>Lli[vՂ,̭>N@KgG~kC5yl|uQ}?0 eC?SNv Kf۸$ TVG*J娺 `8X{rh,OB07 tLr&*s!=;Nx{u-*p/?he\UtC$IސhcO!_2 D7ea~M Ζv=t::cW+S@jI:4Ch]*>A*:_G1`EX; :&DJxPr4OR -:^% c1$R:6iɥ8BBD %d$ST?5`CQ]%^͍2mr"sN+#l裍_xl~yn&]3> 6h{L8kDv!&J U ђF.oaaϭ [\(UiIvl/Po;QSP× /&"8+|$jI?)]wQfZqQ!O|@,ݔ>4[zBz^ꘞ')VCPlzzM˙!5WθN e171Ħ@i _ߒ(1 WJqgSy_60M+_IFͣfo|v}ɣDƼ\먜Bُ4q51')IM{eAPD(@k5Ʒl&TșVW(,V 1ǑHo| jAȵL Z(X$O]Ed9R6f$E-r}B:s[H8~;wsPeu?iR[m;޶q Bi$u>ʦR[+4_tBkl*Z@<5C3Ajk贻1;|\ic"{/1 "f4c0tpE9(䑇:} Gu4w7 Ao[@ иaR5ӟ:#oN4!DUq_HC"z-qK0HPr:#by.Q|k'A~M>7( 8G+zDR/egKBۺ94ʫ)ԑ=(+#_+_qḆ++jƣ{ u.cIRY0 1/ؓJe ~IgR ŀh㘒\\ Thchr9)j'XσL7Wi~f4(mylMs[[Xfw?5ЁIVAT ^ ⱖVZAɵܪxx!e52}fk?a:dE TԶ1M_#d[>\lU7V48.1+;iED0Sc|#FlE|+yw5e&,T,n޷ e\!0O}+\K%v<lLWR{B_{x)b\F:M צ^{A*s=kR+[$m#!ilz0tz&9ܽYT4*bksU5`jԐX)q?/xO`]6N5 yBJOYES0[6{{bΎPvO<, 4&o,A~$hU'k'ݱpSL`;B#7]y|yĎ!H῰#9L7ѧ9"˥ v$+ 0Kh) 3BG8zLC=u!lb>?U*Q!P"tB>-=+axDX%y2+OM3QdP /t `fϐGHIL*hΡXvϻt=g IƱ`%44uAmRtr/Y@b9jt. L(%?xTSIpMT(syAtɭ> %ysd0 y]JCN`C*F#K첅6-"w[;~by2"1R}—n;eKr(l)c3YndybbL/Ő˵]Tns2&߉.G̛kavl$G=s`'P.)a$1L TP͠c ,c߂`*lFh,O^rVQF}z{g8 Q=K2~# ]~Bw =~WW>zQcG\X&w]v@w;ҿcn YǷ-6T_UAR1rb^/.(Sa3A9{RȺ`p,(*uCbݧ̙,!3@گ0$]O+PcD3Q86gN!P_螟_k2&-h]Rh%MY@u2źSv9XA!2 G9bBPrnYߍJ%_tjUN@D > 9hZ-e93[>3O 0 ; #G*@v˵[٣rN{z 784 B OxȍCU| 7x&FFF|0;X =&1u\E)avې)Z?Zx:&j}^O§mrkQ a7@G,L14QIh׽3LbjINYkJJp{Oo+oDS8Ax#{gIq>41~JW|AP u}TCteb*U{Y%Dz.!e v[`F9.{uW94ILƂ,%*4Pf *~)2Rtm(_ɑ=ۊ۷}^WxKL4|7YTHR5N\yaBJ\>o\!e5A|A9[J?=~i21p&} 璔#83:Kw|6ޮ$k.w<ׄ_orNV ]\P%KN_Pa&jzyȱ=Wg"zp9~;5߈ HVo5Q&q +~+, e ZKGF[!sMk,y&ШfTU)f0$U0'%QU߬GbŮM/]ta&ȮM*zz=6R%H@"֥Q>UjHXuWگF^G{sD!YT};𢌜p5N&df a>T xvrn zh N&9}C.hTtmb±$vƪJylmJKOj`,jd:Aą`F8ZŘv8cgF$W1FPqk m|L郬va,sAOG&܍kec>Fx_?Oc:߂\BP/l^5Vw["*7W"Sn63r"޻ `ּSį>J%Ԭm_0 \5J NE)ɫ_Im(OK-HwQjbjQoDE_CvG9 bo񊬈? {(L?GcJz*]WNjhbHC %x.Q^,- sʰO_Qtf}&Le/v(ygӢ)JA7#xK1bG9;5_4J3fBwr^{yiTCU'޶ۢJ'g8>)Ř*I$fsژRr M'B@l\6#|z: kD)IS]'dC#e@D BRJVxKt)^;I!LyǚOF?-^V67Ŗ<8c#bSURc~1{s fcp y[.$(RY*Vz\lnO-[~ݫ}_|ܬPw>G3% KyJAMt{׵G ׀chj+DGM@U8Q՝~@nl]c S1>tЭ)@+mچ|5"ݤ9Hw䏪z+ ǘf8@NNz'+# #P)E#n uLT){V{eS;Ыcԓ#X۳<دZ>H0oiZ F˽w9ͅym _|b"lqt'g[jJ/\rK+c#rJ*aXI@H0/b)2˚q{PQNo>rL_yJ0dy vfd~)VMk3w{SՈR@S=zgDE?́GBD}*"r..M8gpĔ2&3^{ wdﴭ\b.̃ `cGXC`}Rx1}xt^uɦܧYosOU8"62F* ! 0VO4Uz5)XXXvt"n3"iO~kHHCI/㱓vB' 4>$_uʦ w+_Yd)42@:JثhHc_7/^V2yah=!P_R1N'0zL2{g';|!BC.耑LjMh2z !Ūs 1^n5i(gEHUv>JVm_7Un2Rxr䯓cGX #Ku%+&m]S=lÚۻ9W1|ՉV 3LJ5PM"mU6F _"ufU "KWd sAirP͛mR'ظݳVYxd }Oa#hN#!ڞ?Aҩ"l[@PE[\W*cKTB|j[&bu lj#+ި9%2fm޶~?EOďf\9lYY=YǂJWk]qJ=0$*0ۿBdRorb3RcoEsz^aژr{ \5ˎc"e|=|7{BZtG>b<ͺQT uw5Y{CΗ,=8Gp~jdaOu}GL ::aEbyU&~#sNSogW%Q( TIHZ.C\UZYP4ZMԙJs#| w kIl8deE`5}s9H%/[&_s&Ĥ8Uܟ},Sh {}\Taf_R6H>T7٠E29V -O0-C(x$ ﯍v9&@DUy;C)(ع~VL~bPE5(l,gm n*/c,t)Ӫ*NC"UE\/ol G|c!g֕#)W^{\\^75Hv -A@.pߧ;b/p4>( P#Ί8&ۿ_Á "r.v,vTII8gAm#Ws‘ǡF<׽<3A jHcwe{U;e/cHҏRIǀst]nD [MǘvJPcbb!i(6 TN' ƫ&dfLCdhp0vMd[ҙk}`4(V kѣYklzU98^h', 9`g98\dmf#ݏ3h#RǴX'P tsl!JJ46㧢؂zBpĐ!=zܱ) C=hjˉ(lўmUWZqm $-eSQN /i|я4\o5|yUo[ pz d pjNn"!ftA/9/x~yᗪd<}  zhCRFG:l zhcFjs qi{KZ8‹%|DDA[UD W\ ;\{ps٪Qg\Ƨ\W>GI;X/J xZNå>G>&ԯ`]7pl=sjǛD<迒y(5oY#5D8o|DL784 yD 3c3~AC8űz&#&WƾBhc,Y} DoYҵcSio?s A%7oMQ7jOIY&L(TVI!Ca_G h3iEb}# If 9FIaK P|,רs35`Q@,j4¹1yy?I^¸ ʔ2M- 3L0y ͩy䉨X@-D$VdW~qxSV%-NIfB.8/]#U"ϔ\,C~lm>…(xf8 9!8\mKMɧ|ڥ]s-&g<0̻Ή'M7sSpF+\!2'M\!;8L͓USٶ iFSM%TƋ:/K\La>yb x*B= (#%ƛh&7 |>Uc*}ĨHsnh0DȍxR0կ*_=by9[Gqp݃Om/mܮ}_Pa0Ȳ*Yx^$yuBFv"JJ|*MVsTKSvT<)mW [ot:]M餖 LlU2;y~vw/2@pg͒|d&hDn$1u".&>?:@!VR,|H(D[ vp7"˄kͥNpPOd{Y)Nn*1kų\Kz{"xxL> Q9c&\3YaOMJ~f3q#z=avJMg 51Tcks_PR$V&M]](5&jy,MP~[N`Mڣ?7r~N$mz j3V6F߄EJ+$q?teWǧ]/!6#}{'c@J[! !ٚ; :6^o}C¬ϯ!6˅JLe{ӯl 2aEޑ%hfҘsz<YIs5˓2HصMNY8c^7Y/#ש9Us9hdKThJ4O1yNM〯K>2P/{A]c8>~.LatVkMuӱ/,}O"; l_#` FdҴP@q"!Ů9 +h{aJ 'hM$YmS9 G4M0Ὓhk>7ؽkBA} eoe ;IAhX9i'G\> eҶ=CM'f6],g" )bqH(N-M PU `H+kehZ3uHi ҫѣDͪbQY둖akes1@&@Raxsd1 $Y ǡol{X&Zlb TzBj<\|p x

"/yg씼$FکX-I`:{7s^ S @,wvVʺ^]d|SgvEM6 '}ŴMlv2JN6VԠ`KDwaa˦(yR^2pgo{)Hh/xܶ [+=DR :]ef_OAz}t k* }z~%X7u HVg:d+˽јF=Jϣ/d b@^UA{̶XYxЬ DibOj}ԏWȦ? 2r s_VQS[9R‚7z#dnfrwHO}j,>n`GCE_7ݺ8%u: K"?ճ_KD9I"=jx8OnK 98KpSaof pojPřgUk 3K'  oݘ~ QEQ d {# =S5ۄ$L5G(\N"!b%Zqh]V ۦxӻW,M7M(hw%m#;5*\ђ@7. >7}Gnfcf#.Ue:lDR`S0\uo Kly["zT-V[)$W^gfRdC<E=d{DR=k |,b%]~5L R~NP8h8i;UM*VˈirK"(O(O:RS0FX3R_P!͏y$Z欑eEa0p'S[sCf?lrk #~ kҩEaj?e-ܴJ9kbt`k=&j+3ȍgY$B6Q=k.5XE̜}"JZ54rȪ@ٟFti(s,Zw}zƫdt̵`uն-eYQj⩖)Z=uڕ+y҈mO(NM,4? B2 "7tBR{ jNbM_kWG֎RflxY\PSlPJZpɨA,vFF U57a2Yןټ it0[{m>U֑ obBT߲]%!3ƅ>DD4p+ar (ҏr:W F*NjCI!s"Ĭ5!ߩ|=2Ytp 9Ep޴#ɀmz("_qX}aSe˭IZJ1nX:k {a!mZI"dJq ~6l2ymSa̡݉ʾLV.`sנjL,Ctn_Yt?Ʊ8Bvg}w&RI t=#^d9O7N{Sh.-O29r׹d\Ee6}P3-'7fk3E0DH[!\)UӼJ7[E}wK1W{qy4okr{4R@XUSpibZ "]>2 DSKG-"–LOJsw*#^J $l=~WO<}*ͣHwg][*X`"EK9s;e抛$s^oWueB!sK&4\4 ?Wp<%62ˆ*D"IZBp##l^-h I_l q,UZ\\;~ÞRq}Kt}pE̾E%VJu Bbbr8̧Txa|WɟN٦Au.H[XW;M(f N(3VRB(DEWu3T5|MCQf=:{uβpW0\ՠrNgz7dN7C#Nۦl;VVŲ /)1gCCƞGOy$0 TMP\:"W*quHؕ DžK?zRЗ[QVu~€2:iu 7әpޱ#Ljz;w#x)(c+pP֨-. zzKBeT3F4nk6J͙XHCEwȇZrƣP.=ɈV4lXwm,8&l1Og~GY UR?9<u8g' p?>Ӡ=#_d́FG[UL;A!x)ۻhu֋宁Iq/ݲq8&ͭtD!ŕcp,G/K:9zl4v??N'QLy(WF,O Rx'IYRzj@L߳^n:"4"G?zluĕ,kIU@U6$^o\)ŒG]֍&+ßX~JߧtA_:RkrISxM89&?7, uy1SWn~Iԧb̲iqeJrpl^luq@n3%K1&#qeJbv&@qe+G7Kp1Xl=Iഡm?>RGiϩ\HEn[ܻA}+hZQ޲n/Ҩ렄V]QsSʨ)~'1`n|Y* hPVaw/PnJ!=x%ixBHqICө$|W,d7P~ 'Ёpc j:+v (3S֥ B,mG\Φ†^z6Ͷlϴ_C''6IuZl"$/pBg^"zV^xM/w 4w^phLgE_ޗX3pj~P;*:Hd:b-dF:36!ʃQBEatg/6S@/ .Ƒׯ}bf/~*YRa%p}LM,:; m$.VlV&{`Ĺ=7~es=bhYb6w-R K G[1gB|)Kr{M=쭥ŝC!pG$9;Sδ0CiKR d[o ӊ}}[#Z#b g 1Ƈ9)IQL巽,1!xqi=9Nz`V%mO5%oCbRytSV u\p?qb׋WUFja]iUI9Z-NS>[GAA {=c[] 4NLSSH 핳֢UBpr| ↾(&"ڱwk7LOyʶf Iw62Dze8Nq"XGv B30wW* Sϯ Nq+4FPYrEx;lœޢ"ÆD^Ev?(f }eNxnPC$3޵Y^j/) Jv}E #/z&OE ôWk@ʋ3Z<*.X۠V uٳiQ8=~ޜ~B S;4/YܹHmFg@%rn8*P8M9A]&9N чIw4DgTfSkm`*¯M͸, A&Xn?9z΅a^a%W-P܃&3CYچ nV~#3oa"fz*{h@{[t施?M;Y26iqX^$ Z )/+G80L@aE45C-[f_^?z4 B'J3*?JpzM3G vۮYB >g.9e@19'_v=ߖEvq!imPK2ӜnL4[|IAS-`NY2tJDYɤ5(~4Ί|tYlO2 AȡVuGOn6 E]48WI@.E4%3 RNyr29B~v;3."()߭o.ؽ8t*lTB{%s±G#5~s-'GPBC@Dfhvxx\ṪG'@/?(wjL=5V2QZ6PPՁ!q/`'~.m/9KZMgTbtm{*SC@ TvK3 :`w0)5&~XE!ňLJ#m B\_0ppc*U% gʃT4)R6Lt{q#\Jn PԿ;E:j`)>Vqɴْt+sݖ<~npP^hCFLrKm2} hE?3uw9:wsQج- b75 VQ:r 7@Ape쾤ZD<Ŏ`ZcLjڲ3 e oe[E4-/& CX$*:3+6  q"4Dn g#ᅫYU $ X_̮#?ZE-րPDy >ۋ~j%G}|T)x:Izӵ8p`pXVxaf}Y`IzB_ގkNUgQ|=_p!j~CtIraQ1 3ey3Jr; ;+xyNyܩZp=̤*b(n)aCDh& ZT#2drb[qg b sI%NwcD["ph$ f"ͻZXJYlj :X6#Q> r/S$LYe`Ȭ1*3*` UԮIG@q #nة.ԏ~,k%op(߬qWrl7bB\5/ܡu𛔭mSrdZk4VpѢzZjPk'hOFǔ_)}(nfNUbN焂$Nװԡ3Eŷ=롰f> K 0>$եkCrf /)Ffgۏ̟ ;t>-m-;{dă3TsryIqIifwp{S%H,rm K ב@{m߄FE*Ns8W*J$խ%q`Шvo0Ik/rAwq,Ş>m"CrK&uv͓ ؟d琨_ՉBVID'c64ιTʭpsQl D4Y`Mh#2FO9 ]?|wR_9V (#LWZLυz1yӬ/>e hcU $ RTod/''owYҴJߡY!]jsCֵr~΁cJutlDCe3CԾ@Ic.h&?|& fPE ᝻WBAX vO5PfX6ފxs7+ 7jQR}ǩ'!8ɦ'ʆ<3m)σ.MozB4Rka~HLɮߔu-p}4 #\.87bJZC: 2gȏ&t:syQٽ3)$Qlou++PvKڨyw[. -[B?)8Dމx̛ID*ddFkfT</ O?dXn#գk>< "ҐM8cYdA Ʌ m)%)$B);a5_شpd2qon&HĜ4{5 6}eSr+htp(,DLj1+++|IG+ *+bR17(l;#wjELJFzW.OME8QH)~d-δO+^N+J/ú81: S³h %Y p}Pk[ Q&.FSNJ5ŃCH\znM8L)}R/͉(8 >4u6I&' VBX0&iMEE% {^q,b87˫Z%VM9{psGb,6YKJn(OgI1 X!276Ɩ8} yw$I/[B4QҦYTI&tmJ}sHxeW`$"x 5)=m *@O*8E{0e8[;~%;LbfY~J^){†Btz2dwyM// r}c1g>NgP+JUj"P65g:& r$ ՛f IuOd:vIͪizkI'WC p8|d?lP5QPewO'/P2RPp>$=p.U%JI"#v("~J:&R6ҙ?:Q ZH_3 5=`nVZM^;H ,XQOZQ`|8 ^vM#.|s"Z9r~ٍˋ<;olteI0kTwi)t-􍙘 E!䧥w6񎭗UvWkL덹h> Ϳ#\"~f'xSŒ n:tdhQI )./83HEp!$Y9&/;*)fk9|5kM1ە-!]WL)Z:OM_c$ƅGū/6PzKŵfXI;#}]7Ga^P3+tnuds=b[a?sD\^i5TPIVY?\##o .D~,hw{K›,6!@MfśvbI8B*J]&\ 6BW35 ;Xb3w FT/zlzzE.nq%&}3ۮwupOX+jd}Tt-Rѯ,hܷ V/TSj4DRJ:'Qў YDp:43i62($܉CTf

!lkV-h =tygaHi'{XgEg]Reݳ(*Sg Uk+g7oŏAV; 6&+kjt &x_'uib]žd .@Kzk4N)ng-y Rdp,`by6Lu>~ܻ'N<<[a;x|zm.4iSu_:l2n]E9]^CR"FL[GCQV߅+lJRELA#C+Ǔ&yE|ۛ{wӧW,S3KcߖtQx645CJ|N`>T#e7R`O. t7P S  4~Ԃ(s|'Auzi7l @$F<*xtE9T'h`Mg761|v':[.V۾ 3'9MTl"ްHx@5\OɷVՕv{G2͡56? h߸ǀ7`_RoqXW˱mdi'*89㘂 A[>V+xm10q,*]y&I$ ] 9a7́BL>a56BposLniW/_j%_Ghܝ(WBl-uanZ)ˈ<-n֯ ,"n+OAvH+ 85<ղzGpw>=Ga oڬӍguӧ~+]n_*3kDL޹cjkLesenc:B* !Igc]|V2%?/b4>·_F_R*q;cd 3QNj?ylv\9 eWFq}^7gaNJpG[iuEs7_4ALP~ mt Й*R:lC⦭cm!m!_RHDk4tfpeoɆ8"B\5v{2B=P` cXe (u;1"kC*GP3Dc0B.!/A˙pe7 9$U dl4N͌HWɮ)YHЁ=A63`f~Uu' E]5SLQzU*ue"x#[R/6*2Se9khڸ(; 0WL-v YYښƥ솓l|N/~vģyJ4_vkbۘ:-r~q9˂jsNL9۶hv7߄Go _3#Z. p2ˎA2ΥPK DP4V#/.'g<ÿ4?dS@ L9Z!Qt!G?֩b 1)@tC E4(՞@guMsb| kp-0AfIGlêϱ~S=>E sPV{ͲcU~@Ef.w+cc{Xh׽⨸9FT\D4jc9X`I8³n B:Utq f~ҀLaCZjBԚr=eF?,:22*uȿƈ3ID]CĂmdŘ(ˣd*LnD knwa*J>UPשOw<fA)V`2=D$e^+k2@ӴI?wxF``/ͱx$j,~2ZM"*)wkZvqi߂8 qcR'% VPM9K(/fx6!i$ aBCFgc;U|Uz~JjW?U/y 9i |HN*RCud+|q ~vjёjUZfSj:/T+37IqbG8Z>;8`\K]t}2Y"~ BEe+vyVgGCU%wui1K^ɖk|=i+u3NYz[833'oYP+!}aˊheI5 ЅErd]puc&_n xqޔ1F*0,淂LʴmB_KGr7犐5t,Liu%O$)~La?sj!~I 4/}=yW~UdUdg;dO~QI24חrՈt %6aj]Xڊ%#30ޝDžxqtx,0r4V֪XNp2 י\|c8ڶűdO >% Gu&,D"#߱ď!1v0]Oc`1 ֌㄃<&1Yr? `F:~W9ZIPm! x]F١]s ݂98l>InhK QN?M_]\cf+&O=xm,L#OCm\^,iZ0ٳ\ԱWADf~2 ysp?=?];kN ( M_ Y}Lyr)I#U?מ",m.1 rAF`{p@iAo]4p~Zdnaz[G;'iԸ=Ҟ ƚß m“J i̖Q`ehL<(8*0I[TK\0#!-Jd]+5pwdN2IJ;)5&9h$Y5tiN5/k_JT0ÕϪI ڶř3 rf/nݜ2nq83لVD9ieHB^S,ϰDb-T.|NIM,Zo]o"=a쓭|D<J2#c cQhquUg4 *u_keĴDe2YF imW*;a̧@fz]mUdV"g8S&FP;>ǕDס)hB 8yFt@TpsV? :j;|:I6`Qoóqyx_Kt5  z0}2d9&E"Vv g|lf[HP̊.6PL &*k"%7Mn*cCrt؁TD$M% x#e}hD@ 3TSk^Gj[Wn9rrfڈT#y]9y *6 z E"/I EmMt>ѨuTm! 1y l,jfE0/1=y_0MuZ~yWah|e1q>NT[IsE%ɉR +4C0[b'm!5CsÅ!aT_0;G N`&Dr|gP ExIrk+Gf,q J{%l%-}3y ~^W@zZ+Cr#Pk~ܼ?4$ڹr(!~ /MͥQ i4D +xL>| 5SziwPMovu߅|I(tj{j8![f%f>Ee3@2}ˣIN"ɓP/7OӮY[QKoS@`աkz~iO_.B"L96rpgɑ~+b>dxSٖ v4ul{9<}tS ĘI},hB3bwR1,4W>Ě~SΥIs>[ ;Oź/ ١O p\ƻC\-[g"Ϲz8~$cbwUk0({[le(eL'Hx=ʧ# Z} XaZ['BXa,ZK^ֆ\q|g6QQ6-U A`!AˀK,o` pZ^:jB e>zx~K?ci>2!BcfMO`~?v~&4)"EI,Y,5Fl[H Q1C-:CU!]< D#:HdgјEg.OS4z;gh9Ұ!"._m~*VW"Y 0YW -QM%p_#(BBl$ mLm{,pp | ;Ț IoYlE'ԞV|R㰔/fr@ =GM|6 '$D:5;N $Qf`W RሥT0Z$J7"^G= \Y:*z|]{@t# \@Ujן ㋎׽Q|iXlxdaGQ {a+EF1 heUH O.UsQJ}5-m̄إb엦kJi~x^(#Adv4͆3Ȍ\w2A{^Tz, k/_'Z. '[*p5b"d%Ⱥ<;AUSesqJm 8 p]n!7RX2['sz1r{]hGCecHna4;xSP'ۦBoߏr RJ5A#^CLbBί3^u'G|-JSWh[5ö01;C5.}iл19uݑ1D ,┱Qz)@f!V/wkxR4oű<&Ey^jpo͎FV%ZAwUPB _3^/g!yxG4)~jӮ"9<{=c/^|nո,vQ.&(m}][Xk ;Vf-: !$HqjSP)$J@v >t]ns G) Jq^^c!EVTq5 eiJ-$9%W#Ɛ㲏Q%J徖̫֓K6rs{"S㈴n$4%gg9<x#Lc8楐WDEgތz (l`!Oiz;L<0~2]KgU-UzJ9LVNb JrJlJIC/nr0LqP8T> r3QmCۆgDsWMF!lAZ ;Y<~gKF΁F?Qg_8͵\[_JI3ۺm&!A2XҗdWD{c"·2m$#_"Zso0l.a $ʴ ~ގN=ڼh`ᶼC{o۩I\ARV{s'5x8+opN2RaSwҌEEfj bu2C3F ܒvߒ\VltbmV*xDO{".ZW rnhHKGWП1A]Fh˗2U))ݙNR3QpxKЌu2V@Nt϶N^cX?˄J9)Y^o'dcbB9*Zb1HkEʷ/f42 @_ cx"Ψk{mi-AU [a(G5>{v—{ }|"5V8hR s,ݝ4.y<=9JzB8f9n:'߼nP!YA ( tNN'âzgsCe LJ}%"p+7o3ELfEss21QǴ\%x2H;'ieO;(,m.w!戓$jPZ5xAS~< XaL;W\]|q팤jT'Ymw_)<}lJe-i(TTfv449ƶԼM3`Hm%C)A=g\ϽA*%L<on_TLo_1`X#rEe ;2~G @,GA cE(y)8wQbba/@#M 6kΓH5y Z?>T*y{"*|.䕋));I5+ᾕd VEK>:m?x4/#:JeRbY,/ɖCcs@;b^?Sy=/;d @OlMAˁ4,&= NsuxȪI)FOe?\$:?KA[ZnH t5Hb4ϤwfKM]S왔0aI;H"?xm?641hw4&=O'ʹ ɱv0qH*{kmg% 10~ȹ)49X y_t9Ba)A{3!-c˭ŕbX}Ev~[Eۣ3JJ"B[[rUy:XFk7R5%bX*.YK{F 'A=xɼhAq̋S;ˋ( b-aC{Y8Y1U)dK3cr${ i '~Wm^kzpuwo5&FGA+Tx'FK;/M#?<˚Z2V+iw[Gր! DDaׅ-zbY0iC%s3zQNϺZ|-Ti 讟`U7mL0&5ޢaI)-{q_2XU&}IbL sdZҽ ,6'6=^8$T8vVd-L,$YCՖ(xDczZ(:xVB:Y}[GV:ʄ?Yenp Px&oȤp)nn*G}R-1b~ߠiz~Me4&BFPF4'RScuJ @<9KvB-щ9Jo~o҉#즯K OFsvbaii Ѝb/c6`]L{P9S Ma7,FHȁe:O))d tr!Xf<*ū 3[ݻa+C ^(l~F |oO+#d^+uB> X|Wo/P[$e0Нe!j E~U˄Ӿ(& CTv)6C^y˹@ ?nq av5DYsS&Zs)4m$}_py!ݪp' P[WSӹltQVKaQZYoqk0FIS+&.)P3YRD-!#cgGaxuUT*)".Yɛ6\+BTXQ/quE4%&#kLxfˌޠ/$_4/Lq5_LkȧPhWrMa#gնdUefUź{ ,0iFf>Uv,WAhmC6fGF9펟1}g G\泔 TRpjd.cz`JC=xԻc,Z6$k[hEʄ.уz(a{R*M"Q:{y ۲2 ^_øИw>ߜ H0~uIX|H[SFE x_&ŧ:T 9Ci5ziv o[ҿLt|䶓w`6-$g m  ܋-;@w*Ǵ0_H(靰ZA?1&MK:(2`cMgG/"E9:.E=uxc#}2L0( A94l ty^늗GN b^R븄JԈJZzW9Xc)c"Hh9=- x ] 7d]".mƚ` J&71r߬0JnW64,@NORv8J#69?a^Y T)]qQp?=Өփ4M}TmMIjH>-9 tlh|FvOqC_NQk91Y Z n.""&\a~/AZfj VibN[Sh0%vٓɳ(ro9DǼz{"f++ ƍI]*@bmlVxkRnzAr{ fY%ItCx{gETzAGP>Ep<Փpb%b5 heT?/Ҵjt\ÀF%X2vtU.L:όzc74sn'KH NE4/51r+R?ZylD& (NϩdUr#GѸ{9͂!JAj{% 2OB,?=A E ~Ǫ`],>@fpdX Kd)u [u^-&QzMѺ|&аw: g)%S«~6J*y\/ ?XRR0x~Ac+acʬVZp}V,_5#𭈱,!rkߞ:OYD랕̨(.F,Jn ߧ*MˠۇXC֭ ;_Ö;yܨk}zte6Me8!h1t0ɰ1KId/wI::.u$5DM2^XY֬O`xy;#6r0F20ulb&9nʔ=vִ FGlW9瘒j̷DŽ&3 ꑰσ*"r(!xuM<4^:-"H > ެ yvmyFj6{/&nnU//}uwuc].fWCwޱ?NzΖ{MEcZ9a"'?Esjm TlcUtMm&\2cMYD%mC7#=G@"a&JCMrI7wpQӊ'A%u1]t?N 48]8߆Ɨ2P~<)3I$~ )*c,\: \Tm BLp=)bpˏ\UvFBDXHŘU .!V-=U[pFj!䏧dֺ[שC- n0$Ҁ:Ö^]jmzFSzuϣBg,V:Xhgv$]I4ܢMǸjr+8H\Ԕ(E'XԌ_2eϴ ZI޶8="Ju,d|ضrHG#_t(rC,tnos/ Y1PSD97>.|'SOI–*@?x9&;  K2J[sL" /|T}χ'Mb[;>x?w j~p#^\p[Bm^VM WCO4u7svmg"GS_D>6L&m+<(jgԻQ@]U$`j8IOoa˜?;V _Ykyt91A_j\ 73RJQ4 _I>3 /+$"Jƨ$0wFvqGĴ&9u3  2:=/ْY6GUPi|,/L; M&hIpY3cCu_Z ^:qm9hrdX9lhUUm~+"kðT66eC?bY9*UJ# >b X}z~BBmd3t)PBq)*5#0❭ jK _fg(~U_L|QK_w!4/mc|MeM*Ɗ KƗ/F2%ywTFf NPGtkJvMBӶ9WZXԷˢIHZ"\Wl#'seki7UĢ=+R)X ݎ!|`R\g \jY^75aˆθԑx#1b0 !jgˇ%HH$'Z\=F<seꤴ\o_ d$_ǀ 4JC-ź´Mbr !چek: !,Gj॒> }eoV%XᑜQRƿF<znLIVX8\y5 ^- *Kt]Wjmj{\+T@' I&-a^ w8] `O.:uOQ >\2ȭRT? H/!>늬nӹ6Ч(MGyUd!mtYOrz#BmZ<~!fRN_RHs ==0 i%"$YY:v},!<2 `{%m{Si>k).[PCt(U)GLOY =xA*lw\oS>"$a*5y&"* rus!uQt{%@aBUW Ͻu k>$FՙBZu bDןggd-{D.8Ʈ], T-rR/vOw#$FSƝA1_6PCa8?z{'y>b_kۉ|E_i$f,.X֘>O= 8l&y&Aص<˼yGMt (S}v?)x-G)$Iˎ:3߶{xSޜw(%eNK ˪teW BTjiE'H@!IvjdxwmA?,8ii9D*IdX-1}LLݗl1T՘17)?0tYfp%&:D"v;0&MyP6iNk2Ԧ!i6R[Չ=5Bz* Q15o0R !Du[!.هE=WKr!/'&7nruX.3L/ <8p x +y+Wd= z?RjqIsT"old4Kx,h0m  x M6h5UI^Yx:v)4K{mYL#Hk)J8lUq ݕmQ&' X0qMc$פ4b6L0S]|  y"QK縙 I2f Pۿ'j?}_kn]E o2*/ٹvwi9,NS7%_O)u/Y5FBlVڳ:<77MǺNjo,9eC^*άHÁ{x~8kLԶH 8iy.w$>J3)>#-?=ZD<7 ;\ҳ|??HaπN~z2IƉ(/W%+f{Uٕ>.c\_'c+9sX]ҟh$L&ן$IB^\Q_%O['}t~J)8:lEdXc p*xrsE}2e\iVHGV^!HlplIؤPԱBir4^l{Ӎ2lZUfi*J^-$G}H8{fOKO%kTH+ Y9;VQY5'Q'=~[*;{M*K]rhq7Oդ71ŵ!xqN|кS9<)O!nPSy=y3Rv0Wr0,H& 򶰦_0_\L9@]BX6_M xonQdls^ IddicyF+•0&KT AyBv۰1ثZ%zgLKcJ3٢xCvq- ߻n^@ Iz43Ƽo̶ot۸7SYo#$lHYV\3 tiCܫZz~R◌ez,[n>h2P,c,ƊDcĂQV$Tf:g{\Xt2jՏ\!P{@6c7Lw`Ay}͓qGx.]X,$3^ l:mSRIWrC=z^A?Qr-){_pkSo5B̍f('X}KWlqLkg3P& n b?Tp\kj>럡-Yґl)k[QdB9:`h N榡ku Y=/%m剒ksmjb!η gB&0(_\&ݗ0"JӜwR֦{+ͅz?Z,+<Ռu0_(6ypU*Vp2Art!6X ,7>'Ͷ&u=JP_=_P6(.+Zp=hovt Wpas駎eG 6t\)<Q `ܺ0SfE,}zj,4-ęSlLę 6=#߾AsGhYŵ*G;4[䮮S@wZ*z2Y3ԋ{*$M/#WŜFwl!Rw36~_CPFn TYlӺ!xғ@n|6Ԧ+K \BV[j9NIȧUa3T1#gq9>r˜& JBY˯ժg:FN*lÈ.&cji߱|I;bǜ9kĥM~ I_w|JeVtN΍G%;=B-_x7޴Cn1 rDVYG5I;뉹 3Lh8lДeF91e<-Bt{)h.z $PwX,C>މS{&;7eR8ΡtRIh*ȏ7>!sxʲf^rTGH49%!d#7ܩ|RqwTIenfeMbfplMsA Ґ?M3AL SSQ`⥠9N 8+MB9am ex$⍉Xi\$ݟ]'^[hzDO&玲+xYM> D7PƺqmL~weSd/r2:{Nez,7GOU)(ej*-:e#avaS:$ 1=>Wjl?^@?Udt:7۽:fdkEV12Qk= AQ4]Uo aio5?ůRjUEz|[GSoBxB2bMgҴY/%ٚÈn @i@>T?.QY*8܁ʇ-|tAVKԇ$wIōR-}GA!A$Bb_fb LXr녎2ą`m(|*/B?=[]$Mʌʸ,(eKxNO}nVi 4ez ,}/ߟ`o펳M? gMa&KGGHcRvP(Y~;p0}opw!ӆV:ަ#Y`bz} 2ic{zc%7hpZ1 @]ϛ{w0<#_py廴<(8HeNv,|(νI42׸6n܂Lz(HTg5$bhq&$Fr.1;nP\t%GpHӚѡ{9 pB}1~//+WA-Ƴ/ufQ&Up̥#JGnqurK~ghGֹ C@ҿ|vS"無PE]uM 0p~Jl¬t~?o*c#V< G6oP!?&leym*طDЯ0aۀxqcPxCb+ɂi/ZAp6 oMT%19|Dҩ|^| {sՓ͌O{Z\VrT<4ǎYЀ*~;] n:`3Qe iPm%B^Vf!@RI Y;[^ԈO `bC| )=~H`ۣ%{dkG'wUc`7{SO ,X'Np]nLO8x[djSښP9ch /S`Bϕ`0?/i k%8)VSuSsk^7da%-硲}OMsRzl5[UKw4-[~+x dq*5Rd;es vƊ[\v5m.eL2nU烏hT!p௪aTc9,hh2z@XO7KINdcz3unѡVڶ#V>gMb[ J ZϹ웺.4=O5XcYg^h >t(QcN:CeCRgzM&zS?VӇ_kӵ:M#M[bf]`LKTэ't@0 TFߪ5oi\&\=O.г7Wƶ bCRPiF2ԠHA0=y`< x(KX8"9dp]s4qLc-g5A2%~{HPr`}@B#JiXr鸢)ig,W*{ !Y+=;g; @eۯ!yW?ulL\eLq2/cf\aS>AҮ!=A3k-q~p@# [nkc e\ 9{ݑbscW3OpB2`J%zU#egUi^>>&n77~Ť )`%=\ 8kzS[p?cH0JI' hݼHzm`DrWaƳ&!^K<dn Izh+sLUxMxuB<$rxÑsݥ\8|k2 Y 6R>xԊC;=R|{f>lWYq̙ű@@A\TT7 A=Mc)99{&ʏ? O|qߊUw/Bؘ~Fst,te9o ۡY{qA>ڶW& 9+V)~UNeoִ]Α%9]Qp?3E^r76yYs"Mتrw)M/iUSj|QQU8s|x|hVaIlp{%'BX"l݌8h7J\Gqۼ$s)=|k Mñy2ygb>&͑b(gP u!.t"yE\&o'$+H~#)H1sj|5/Ȟ,LOXz6U#Znl1w##p?뿡4}YMCh+xm ՈrJ,&&ٰE(S*>̆nϑ5g[&=0biϤdS= 7Զ@y>)52i rfյϗ/c^)bCҬFyB!#Z!];̇] wS̈2WT'}åYΠ6{n2NBj@6t`M*CVt@ϵT&He sƴk,X#T5rGIn-=3M$JVqPZ/ 0.VD s/.ɍnpʛCxѴH+z40Wn4&f//S߰ǩ Zz DIl>J Fuߖc]̝lRu;Rч-]$D&>sK8O7]Up@Flٮ{u &,IPK6(,hϩ=ݣƩ [FIv\EdXG?= 9ˠUB0+vpAUZ*?D&5/cL{G' #","X5Yy[qf!I /osbzR?MɬpkfLPb /W!pqG҃ߜ\I`B7sOOAX fqǎ$uW4;O4/Eo:-jj:*}_ᨭfIC}f,'.nVY-(YK5QzPʶ;}Q.ds>dGy=BZ J@w6rۣXjp?x&"g@&EDf|Д_ۈě,% w"3l8QR%@5׭J12|`pd–NSg"-'W%9 5NJ[8~| 'h*o8OE/#G+K}&-"dJ bm>nl_47JX zn4ͦW9's$鼣Gk#_4D%6g[q7M#\!:b%n ݈XN;Pڪ٥ b10LVcL^QmH&ҡ2, Xl|9UHt;Qyuc83rF-_ ;`> 옊cmFAuG6&'&3,L̅s-"uXf#[3oYQ`L'eAgV@]SA…JC {Lۊ:>t+xEzWpTRd}`K}j wjl3a,s~|\e~ZEQL`P_E}xO9ůAɽ\W54lbN*zp 3Kz*Xكb:a](E~!EM0#Q-.Uoz˝ӧ>z-פg]IN;Ȳ kq TEF R7gr/O=R5~"Jf\+yx 1R7M ~Ԓmj,@_S;+mH @'d1"xax:aT sTJ!0VW .r2O0rE18aULHloE,bV>{]cG[JbF4PqCnβF'Ūp~T*e6 !{\^^Ϯ$༵wO J<:Ӣ}\uT&?I I ٬<+0n9t> Ma蒳O*=ҝuhP(ZT_Ф@F!Fl!VN_V^wZ@?VH(TFd\?~(\Rj( Wa f)F [BZ.ˆ7.yoe$d\_}?W36Rn;/7&vIgn$` ͑} 8xTِ sfp[͓v=ICm2 Rf)O8Vhϐ.*;4kX:)þ cAKN R&0SJaK;= 6Bݥ>-LU@oԋ2Ի80}Y߱A M)h|G6ΨqX leѠhPR9s7YGmBm|g;@d/KX'f?'s[gG2Aێ\A@>ٮ"[Ţii `w)&zr. #;O$|ʃ')o c{ !BtEbT,%":m5WY okۋ{JU㻯Qx\2k޳dU0pحh__֭t} @TҰI. AqY~ ٣౒%l/,&D>t`Hw S0Rƒ%> dS|Uַ.#l:(@{S@3vݬ{}EB*f<' jRG.>jh&Ssb]$t!-@˓ĈHg =yhzwZKSh0#VnlRE5ۮ/=xTױ"ny=iJR"67WX[-!fm^GsA[|NlA`"D)לEZ,D&E1ODMI>Հ:]-w(v,'Mz8Ԫ"5T5O0!pʄU{qR%>SaXUrב7D8U3^ܠ*$dRPYAɍ7ЌEdΙҁqKFOP/@..>gRw+s9K|X >IRmCȰ2SeM(z+ '_&؅VcL/x\HG\uH a7xN2=h &2@; =(0(%#RSA0DX+m_-\#be g%‹ϦEY5zi~1xfTQ^x,:{mL(z])!4{WAIȫ/efBzBշ̭L0cS}iHqZ\9߬F8^E3eIb49YZ??g]#`g__̜ʷTC/"r۰rxv?߷Kȟ'#pe4|8@R[*&B$;0ک̏8t$=g+zJOh"{V2RC5NL Le@vcIB\C}h)zgLe'vҔCZT t9]uoutCp/쾄bfǧb:M9KY w7@Yug! 쀒N^v\q֫NvjeׄQڄv7^$e??"`‘LY2.Rw6%$c /ĺQ| ylۊkPۯ(BD($I$47],IDBW.!?Z5M,{"CG{Uً*X ̤?x@L~W,<-qcOO{nl0iǛ4v19S7BG}B=187O zGBvTnlJ: ON1@Kkjon~xFE{kwlc 3!],S +*cVbB7Z&Rs~eQrUƿu50wW3W]D" "S BXx"1CZc=NuDqsDEba:4)Had? GaJ 'pDN3pUgsAX{{7\TSL"P.6/")&-ʜߞo2*3S~wFxJ7-n.u Rs;o,Um 5MO_+D#1 b;5Քٿ/[ og^i )&BVv,+&yh$'|#[LkIZ9Jw nKj^=$?5brim4\dܒǹ=?Ρ&SG< MB ]t↳=,k$k4H\ͬl!w^)u%ij -32kN8 wz^iA]}:3S,́|+W@WŴps noȁE/5޴*e e`j3߀VԦ`[Eg 26.M)FUX\A=AzDݰU´Fde'"hھﭣ(cc IXQ,yD^r_3?RSۓ14X 6 H5TsȶY:ZRm~wN_J9ޱ P2IBE^cU6X;:"$IYKdn+} >a^&Ekl+'_:qu(Fȋ;V'Ԍ-dදe`tkeoܳM.DyzK<:jnr.qJ>M*Ӻs|)"3!ʝj0ƙZNyk:'#SaV+Ra L S+ثW -vͪZ,z+uE.6\EZp>6=#" ncI[tG:-[|"C H/f[b杰 4Z)-!>:Wax.od|9AKgpjMn">WSשgG̙ql4bEHIzU)#촋%iZ)*exJmLWXD֋fI@64') b W$1lQAL),dz1̟l.Hq ?Aښ(abd6,6?2O#wٛDZQePĐ^}`MK $Wy)Qƅ?d"c:ޤ! "؉;d~IcFiu/q,FY {k]~dyMLr;_7lbKGKrmx4 SVab\:]:)|('4ڨU^(tgh(ҔpKQfOc\YT[P r!s. uJ9I:0LȄ|vYdSuOe?/N 8o7Gܤk+e OqEM!&5]B|Kb4ųbɇ Qbwu2)Ԯ6wxvWpة#{?E*e_+MV(,uюTԡ֓ڸt\K"v?mAK -(b,,bPL[xb) z˦qX`:7hzWP]R3dܯ :t}4e6'uS _W2؟BYsNՏE!~}" znq '~5]EƄm_Q&"DYB S9sx/OL[$ɼ>$4֗1 +J%s2JchGsrqu"dTHe 5Rc{N0>?_.nO/sm$>tlMkr4rSXd+<}OYiS d-ļSȩai*`[I&Z<1Yg`deCPݩLB0A 7Tت\ Ձi#AW¸.ISXXX#ֻSiC=l."_h;=dbuk;\OJ@a>&,NvpAw:p&E9m)?D',Č1Yr8g:}%pyN bյCͶo6t,ZCƄ}62<\O5aa&oUd)xtQ| h'x2;=ˊsQA襓M%_@kFqo؛ x)WJׄ%i_]߄KZS~ xNAņ._Co![z6`0;#,km L80^C`Lx:!홫sx++ {QE.P.8?,< %s3t:h}][lo]| Vig*]\k{ߥҏ,̑;u5Znl_D @'Ngڣf9U)#Tutڷ'V)K U$"m xvV7tsI`Oo7]:~wX-X qA#_f O`/xMݮfgKSuuҚ'>a7<Y@_p7ɒM*;tdͷӭUphX%`^>Ȭ_LV_<0K2+(Й&#ы UgR "Nc7#a@cAJ7rqIKCT{u^8W|u*IWtߣ-GB<fϙ'ڷE.nfT)[C^ %%b!{eT#HR=83!AAp?ٻi(+<$q$獄8z)T?++Pa(rR*71 WiPw5i308Ҵ3qGm=dx!_rw4=@l{`qa 9'_*LS %8n0qмf0EzRb ⚷cm #/ڜ Gao&{e0'V`R1Q?τ(z39BR<;|{e۳H"bU-y}QCTD4^o-sf: ! &b7%|ɖ/^ -F1LL| Wn+ *=lU nz,Qp%a,1 aX{?|bT=5kT{ЁPCqIM5(e \P$,Kt(S'DTA70`l)k%7aLј*\_1|T/y7nOE9)@! vI|JQFA=g[5 }/ ͆` OcmKQ ,x{OC9:%߇,: R/YcC$V؇s}.JTE&0cyWPI\M1/|n_n O>,lkP"gX'$W[f,2ϣVcPڍP K>K8{Pܝ8*WD+fDqUCl=]Czݦ$ q~g1 ;-jB;_w0)}-\D\ÞrXX=4d_ 읊&Em Sk#5;4K ET]ꗩrV)-ׂQ,am_(C1%&uB!nhS'XJp6 x3YqE"I\yċwG.<+UMAbQHe$$P6;;&edYolRԕo`+e%y;%W9ߠo*2CT(sV݋Q7)X2pA4ɋ=LvRvIU0/C67p-B1xwܵԷ,SJ<]L~"ZAߝpuP!e>%}tL'$EVьQI89+GL>Xk$7, U(`t}N!6D7&I@bPsg aC)6B7 =m-"]dN -,Gbɲ;F'r-^W,Ay+< t1Ϭq:H^MusvVn; ,DfBa?6=NߐVRbO=dO;#/ҭ`tԍFkW4Ids%r%G|rcB0 GnKZ?2b5_ .Z/EH"h)-,34hgB44؋7˾0naVJψ 3^%Tq5E&lsj  (,o;3qIzǶruta!/ǜ|[C;+F(3!:p䖏-i8|kMc*˞eB7xdi手ƥ &CQ.kQGMδ8- ahW ;@Bl̼ߓώJqƷ&?eP?CTkQa$k+ݺm"$t>pއCIt/'Dgb^ =NMa|%;x%tdƅ^-l47v [w8,:B],xB:CvVD@-cSO[W9کޢU87܉{@fFڵV=F-^'i,X{3+0Si{'pZe$sk7kp赻]7)D39`u*<}o lLOuUvVy|| rmW$6O+1<@ݗvpf8W\/i哉¹Gce|AgA]&Cyl&F@DdxIˤ@'-2,f@99=VӳCЛ`d.(-"@oL~x͂6m{tc` Nvt 𑓊VX+x=ij~p+x0[aE%XM\^0&IW-&]ϐbwteN:7+bn@:vj[1E<@?a-TOv3ȟ }ڽ!UJm^uj\*1v]mXa:)gBp<[5 ~*7s{).WAen{FB McmRwrT}jYʿ\b3wϗ*M֢aM*-'b[>uQ־BKgtFm+D]ٿē숮@C@L @w\Z##Th@S%mJsv+*%:]YYwDM$M0/ Y֙C7tld~/A6Z>Ǘls"t$Nwi AFt8Rpȴ]TE.C ˋM `8.Qx Atqл8P6~Rnɕ[<B!4ARFB)r]E(miX?(cCxFf / .$fڹ4 a Bz;dϗt0Tü:@K7flt3lZ"7{<6p[ez9um߻$\1d$ڠauп`~Gdt,\R9^-Lb=N6V} Y+j$kW= GK(%C\0y%KHJC*O_Hv2B`0xM7P 0Iq?>H_i^HZL#wKV Gwi-gN{V C. 8lXΧs<;K;E2TQPB,ێ(YXڰmZE _' #q 7Sg=)B-b|P`mYN!3'X*;P*bS$Xvms<ѧ%1,9HJޚP'>F&ԧdQ'y9sg:yΣ oi-^HwzC^/1"H3`Eu QN[dSM]8[uR&8%i57m#L~Ztڂc\nG85ctaǺgT\g[tɜO0ׂ7ЇG(K ? 6 yN!pjI͚jԽ0(9FmB׷8ZLiΛo}3 ݹ@?PO`Mcq4їKz !z] 4GcD_Ub. .9|7j6 "=v@wN z_0Z挑 ^3M?yNS~&T5.B7!,q͌ sA+O+ dCt$I _0,pGfr]7? Bѯ&w]wPcOx'f 3 u+"jj^h|{o o?)WaOD${ҌDǏ8&qӀF=Sa3uH B'ʼnQcC _*Gs1ѣߍd$lv@ *su &ѓ8\B ,EN|I&6Æ[vIFKj͆Q QVHςj̑{"DԴ-^ LBfa&2, |w%w%F2pFlNChcH!C-Y| VvzY:cÉQRfu%$Q4n@EVaoҠ[;ij#Nr# ~斚KWUL`=_q~al1,KKljI}/ ujٖZ<%J5M:$L"n#ͧ#ᾶO ;w6$m03wce/^=j[j{輪JV 6? ,e\48.O5#Q2@YUJW8R1ЂJ9^{!R*#(3~|'xr5)~͸ãto!_@m Pp;V=zbF,X_GAƒmBǷi {oЀBzlb#1/*J5_z fw6,Dx)kNrڨoq*0T?qoc|v&+`nUR5i}gSc82HaS:z;ᙪBOMWH$B ,O+FKf^y"~kɛ 6`'d =cχ#'N G8;G@Ac@8փDC5Uȵ5p{ڀ/|XUe0|Nîqc\Kn:ʨj(t>SX,hX3y 62򺧿elWǶ0`bO評Z|ׁ5od٥\򘤻vpYug`x@H UBe GvL2n7"wuC'}iUenM1xcګ_&B+7\$Z tWB W ĩeiUt`E!|J/ 7=hXc949tӲJw`n'sՋy?a(uKQfڌeBg* կ;Mv7;z_Z3gݍgl'V(Q!ٷ ܅/OB?s rBqtRI~^qQ_e암kdz|* ?PUZOCR<Sv[K0 *^Twij:`̣54N*ƳΗ!߈'ϕB)eYƍ+}dEz{{AІ,4Nl߰Ţ)qRRfAC2>r7L+ ѲE]!Fn#_SlDZno ɇC{f_3'Lb4R,J7^5 "N38cqxzdM]F`RaӪD3k4GSKFnH̱<թj)YⓜS; ]RHڟ!i=DBb߫΅8!W1T'`>kfS(^p:įx^T^l<6 YkWtFX(2rJu&{r!yVTZSc^T C|:mK1A2IYJ<~&o zf(Y[3/Z-?n/:ə LQ5bۋ0?l9Nq+Gr0)jq@Spaf#?BL-$1C;W@մm|{F@5Zok;!"/>,7T?ò=! B &7-Jyb9 g)|݄j%;oW%-4x}N>-~e(e>WQk񉈠:<2֕9N6Hzx'IX4z6X/{k%zv&ytcbd,7yw)^SGTWO!C[N=^ȥ/i_p.5#gO2'oЕyI'~bvmT P_i6P8Ǔ_d&2P^ad[8H1N*G-w䍰wL1иt!S 8idLB5s0z\*7oq(ǃn; 7ZڭkM]H*i[GOBî;|]>۵PrQ_ Y4aZMaLKFQ ?{!H[jKUڴĮ!.Dnb.(y4olwn9S3 3_yj$QZ;,8JGRZ^ϐEP!;Kuօ>Z .wen^3db$%\l[iȗ2QbFo՛dɱpkY)E&ۑz*xCuIܸrHm "zhwJ= gΥ3z>ꡓ˪Yu1G'5mZQbJ9}g4eY>`.yJi"f&ߵ:4A~^vCJugƄpێ.GP]ECK T 2LaÙ<8 i&>)  9b&n>/^B͈ a=KcD&f9U;okZtpͧ2@UE b@y5ιyN/6fflJ23!=$C6~DoLqpǿO̕8o>; 7ɠL5y$z ZǷ[}ʍNOt8 Id4q`):(JWW> 6}FAj05N<-ny,9eeѳqAyy&i`DbQl BFNP,p_ '굗?|T8ZxmIP͞2| =t#֖wSi~/D_g5Vc!]dXX [.~'X&< <@NtH2 ޴߷U{Nր1Iܑe .J?e?, Gy8}2EBE)~>NI#{)"痵(>=D|Х{zC5Dߕ }tJ1q5"\o=_E `לJwbs fLwԈa Dl{z| >ȨMi3'IfZggqI>=ܳDf2bDT_/e Cl3k-ZaW1M4PA"'ޡ&[ˌ~%Ju(@Y #[᭹, \_iәZ0]ԜD5C"e7/G>݀Feo4H .I8R*=W8/2H@ueJơKVb%TT4mw!ᒩH[ S$P>IKZޞԝMA!d䓊\#]hB|ݩ>ӳݺR^ėx$pDЏWUj'J#M41iS+xsA Gqf4a8lrPG Co(wv.ݸA[j.Yit|TObm~!v&kѣZG]y%UKӉuDXxoN=*kƦNd>Z۫$C ~ٚG~!(ޮI&LeMT, _ȯP3{evxLA?ZZu(h2{z]6Z`$ k4蠀*ӏۙ6כdgAzg(ͮ6V4݆<\"Rf_ӎE0*רsc4Q~V0dGc &#:BE9_ IտқOE5:/bc狴xkXv7yk' rNjv>k &Mq=LPؿu\I*??k\[cu3`]C[1Ur^uF%JYָQ:"%k8T3 j;/y")%X(9ٙ eVG2I[@K Or[omg4( 7 mI4/ b#A@ECf5$Ue=Cl q(AbOB/w5B@͊(vEH[Re~I"W1;rs/p}xMn\= .T0~.&37HsbF"-U>BZ8kQe站`qFb"n17mK}w`<~UGE0#N\1G'Fm]];Bϥ3ќKo%ͺj"0J\cioz%¼>ɫܱߎn(m @ۭ ]r*F&"7$] #~q? ۙ#0^^]k=#,y&uWjj*[{,l2RSLxV?l$bn ~#2V.V co$4p}Jn9-a%+ˀ Cvv.N^-jExo] 3WKc\c6g~DSjG7nX `ɼ(S@H[?/JF)9TDV;Q7xW` , _P$]n7>T&oRQ$A 6!ܧ_n޹詆ooQ&ڥS}=qAQ>Ħ2r0oeoɋa88%?=V1̊ mBrsFRSImNmn! ?_ASGRzr(nX!`)_}}PIm2N甆4hhoĊR3džG~mEzA8] ULDM`璠>T# 6IHܫ@~GMόި>ܮ]'5]O\+(0!8%\" x_/@`hAf[]^ WB\ʌP_g5 3u6  = Qic$(JJD4dc|{0@oyx9ojZ('pgOClSH `k#b [I%KDPzGB/rkrU!j69K<rQne휞 |2jI :@U& (hsJ1 Wi[b]rΡ0>{)dN\]Kթ77>N 8WkU Vxs;E#o2 6m֋QD-g4xu ^,[.iƢi^i5h;8"6@|?HmK* M}!iV (\K2HKSz61Nan|jyE $Z[l1)HL0^ edӇB81Pd*m;R.}s1֡@ܖ(v,!AKg"[ a; a+n$O42P/ȳjYgѕYf hK5| MvSyN9ڌ:TY&4-X.~ 9;ljmHŸN@f?vh5Qf&|OqN~ɫIyRm%Th͊;[`й|zSKF1(g @~naO`sNjrAx#KR[^n"x=3DL{$L){1vc&Wn叀 U;YFbTBEE;GϔגD:??$z >k-c\t ;Ԇqfټc=: #lʑ9$6 \><'_m0gu|H#)n-Su0[y%#<()^z:%!~iFo~ 4\3Jyq82֛ }rK(}@4#?vp6p 9uI}^طWAF{S'"竈ThcB;*O-$p3Κ82;#Uqu]z:| ZҔNygmηztTxܡn?*ޛaH9[=ibPDXYA/Ow%d:Y4|)Pi^8 '.k#be!_!P}_CwZoQ44)#q=3:%R4r[#TJ*ӄ5))KSW{Ee>ŕPXII`苺D&vBLlQ̟>\k\jh@ -(O ]l쇕ۓYVc)8{+Df. MQ#Uj  \k}NYUHvHIb5>`Rҁ,jZ%8SRbW$aCoEHE4Nfi*z|HI;q딸bOzcL4ݴ3h4MgP;X?5MZ"{66z݇9KҾJɱkzq]w#(8ZR΀m]JFvri-|G0NPF~c& ejŕ}R&:դD}.kii)Pl༗Η:$;]]Ey83mBiA3\7YnBUc4tU)n>l?AWj3:|:@j>G'iYΆŘgXFϮ/-mog/{k-B!Fz5Q /'NM ['!pq=_uM:L}֡RH~-k0nͯt u Ti7LZ,I uk<{/#MAS n;L`ioozAB\1t,xC^gٔZ'ͣsNԛKCPqL=~j<0HmE)M%/r#7@Mc~c͂t f5OOx _+;+l N/%F0 z&'2*2_f&S_;e-h>5xks fMl&w⡩׆N.19!/ɠl]=$ p$V|7ق+!*K|*4pQ1ߛKIwt' m`3BO~GN w)GhD{E++T=7sKg.ңڧ@e isV-#O!(n=?ph=)'EG.L? d3;uw`O򋡶Dِq}F/][Gk^-*6$6l35aopzUEFonOZ`z+耚c/-3FU24p@ FGlzK.ReNbM/4,^ξ'(N{!$i!qpw$T LiAI LL~]:*PisUd~d3fV$8Q1hlkCCuӖ1WXoU I{wW˘y-R0fUata@i+3XuQ>I!T矫発apZ,\ODI3yVv&IMHhHB[9_++a4j3V MXT֤ {(eWk.4l 01Dl@=F?/tCDz`[j״aV|#SB*ub{vK֦=S q炎藎;!lޭ1eT1; p.օZV_@ {EvgblUrB>* .@׼=ՒTKX=y&I*|D1_czSvaLŞi?. N*|cҊJ4̄AoӰi_~ Z|l}NW]OPz9".POK5?2Ҙ%aC5`|kNmn\A8">ه$k ]PҨ,]"h=ͅ>0eXoόTL0MKw5/^~DB_ s2+T)zpp_C+@]aܜDQ-Z.J[.tAһ#Ry`@cz˺,bU+uN" vn /GU?а5f=A5(nHby(`i]uW?$KV6k}8؞p?"rI{%XaA.G>U4npW EFP<9X1:[y4) XI! TրeI+PE)#s̽}i0O;4+ټ/3p쁦K;i>jEs|7-Uq%b~擎Ef,9?(%cٚdC_C9d!B[ch M߈]~I;R+nt0"/Gq=Z) "` `d, ߱h4]߲u.m*1Y/w~5t1K#Τ!F |ڳC +`Vskjۿk;d<pQ]Mqyu S ]҃_Ιf"u+H=m\xAh{&N 1k_Xײ@E\o )wڊ ۱VƇXڂ)1ovQAQx;/ók_F-DE,CI0|2؄Nlg!dɊB C9C)w⏌U;W׋Z 5I^ň,OȣmNk΄/;4[ĻCWg8lc].4ENB䞵۾{ƣx$<_h+ 7u߿L WGg$/wAí_($x`h͒{BSˡ3͓{CR8qk">0h;[eW8:fz=vObxV$EAdxVC (pj,,<;NK#up 45#&Qv&H-ߑ -g{ΡzO{@/,n1Vғ+A2SFeF8+!n5Dm+ݐ{H&qYPE''fB*lS GYm<̷-D8#hr/ǫDv]u%E} r_\&="5θ:̏_]98l|>ݱޭc)hrhbS#Nv_g@ &GK5%ڟx䀼>ګ[w _RN̥q"5U)iǴW_8b&} I˲ڔo|UsY:ryP*#KEH/ %T[˚㒴3cE͠dv~wQcRtM?15CD|lgQX\岗jEH%e*P3D}:oVif@8ܙփ*_CZz_sҰ.j Ic`Eԃ{0OɪUu˳o) çڎw5l!=3H37}~/M^e=#7͜_UĬ\P&elܭ#[A~ڽ#T3l1:O,.sl8$iXm DImNnrHڡzЫ K#Nf?0c5v&MC6lWlL,u<}_$/hh_y'5U27! 8Z).vOhk @KQ-&BJifIu>=fm\́Ϻy,S6{=gN+)zjX!yd5A~{{"J%Un0FAyGIF yt'u@ ŔyհuqzdkYSED&TTрL@`ODbtFLy 5zЈ[!QC'AㇷfZDqźU; /C!`F<kNp ío]Ox!apoPJ# u&)9]C ug,4~+O"0.eu_ <>q.dG{қct,!'#6ZOj-Cdjh47J}D߯ztD0(K_7ٯVn E<77 Y<_*;TLu2}@I<ǽ9T*hU|2%KTPx4鯣 v\ G[+jh۩O: E16[K4Z\w͛KqSOv~L\SRKGxײQwC􍍁-@|$1;b=ז-Փ%]ń΀:3 #+A-7'<8F{ l*h{LRkpqKA~nɤ;nR̚M&g cǬ>sG q)5z:уZ K@Ia>D+ c>~/IoVP%$ b D/ҫ={(fF,^: עGȔ#RxZB_4RIRT_֋Jx,cqz, pELq`e ?="(΋rpTĨj'uc(?@EPnW`jKW|{W@KLjF fq(|GJ0zMuYH@3}7%ɂ6$lUG 摜D8ʚ*!26*n6w?<'Ѯ.^skKT0d$Aa >7ޏ}fS( R#_:|,Q.iR^(oGd)WB.s [1H.ISq+޳3L^fRϟRgYRfٚ۷SEjwOmv|]Xo_!t:$c^O=[;q&G \ޡ.Y*R> ; *9m@>g>*d[OeҭoSQ},ʾ8vDꍍ 6!!UeeUqnk C^=5M75ʑUnfJq;$t ,X:Z D':|!R0x~"(Zp {նYቴ0AXSJ">OvXCL+\kR-TQ'-bV쓀w֋ ?L j :Wqx0ׅ[ta-aW\Gc^&Mhq%vq\ϢN`x vj*t/J.G *uU^vub 2R/==_fĮa{͒A`L 0܏ȡ'ccA[(RS?N֌oK'o>{PHĴmpᵯpO8,g7_ ]V}ʐ^` ,ɚk'pFTm8*særiH1#p{{p2/1H7j T[,XI.hl`-}9wÒ>)#9uI '+a̧8vGshl8'Wd *}pq~`[D*p4=YA$ :"¾ fFefZٮS*t"8\heIm/Rؐ_ c#U(zV"D4drӪ(+"[ gddYWx?B6Lv͜*aW4C2CɠR0w0T)־Bvc|j;)ɉqNjxbm^ [o;'].[&7neM 2o8a Y8~v=sSYtT|mPyqSjh86/C_H!BI2lPF7Zm5c7_LvI)vweIɘ5ӸѮ!4Dhg&k$ E2 ak݂pxdhހѷčy-fבc2usXkB=?GVnG]vV$(Mߔ>+(=Ǵ;;xd• 8|>Oрռ-1P&iβEt|Q?UtP*b>nUM;^qPv  7K'lWLKuZQ3x>uP!|<;̟%cʹ#"dwa[<n)vRgdI{R:]?t*c0Rggm_ -WE4 g Z]\;]`wwVS,L^ rlT^L0*#6Sle`8L,AqM]QJ焯yxPQ^M)ɟe(x/%]na#Ëod.' ]"4B21EU+3^'ٔ:ZH(}0 {~U:vD+2MnL<9LEn;/}w0}Ty+.l:X0DD_[?/I)N@yu kGX'ӈ }\0 ۟ӎ~(#/ si Sa!Kn"kr37vdXb=.AEܺ:Rڌe< )_ӝ@j8uH3 ߺ LH :cMIڪ$Oݓd}Ka^%.CarS֡("k3[;K!UqLϱQ 6x E3Ԯ/<fnYb!iVA~/W90"I+>kcbD^8Xqhd"8@ Vn ñ뮿2qb/7X]m>ʱO~pR*zx!`1O,cqZb/ :J#1Mȶ)l'j5p`_ dv yjIހItП?Fj!rC8Y֫ysb,@@`F5LX.-e=CCN[d#0H~/.⢣X)/σ|lh.?k3dkPZ"^(pMd],4pTD3%<%!Y8v9OJ5" w/,k*&_؎l/ ة柩ePaEE{7ߺm~G^ْ_I,p-wn ja@۩^Cƴ +l!kMs{ư;xkNqUŎ82[{X8rҌOƼFV1AʇU9 "}&As $H_-WQ\9CT_pYZHN~Tו^Zf\o<Y<{ߌF=1ɞ1-(N:!d@m :$;V3iǖΕW$*94΍&!BO)&l/:z"Q"b*Tڮb0MhDrq-7:mYs f2[A%j5:zPRxnOR.<,T(HAA[aivyw*U;~H)yvn*'iK *v{V\c~դGL3.hϖhz?#ftP4ZGqB8 o6n4/YJhOI7SUs1FJt $јmN's<@RdeC*@_r~qrU]G#LV? 8Þlǵ/MȤˤr=aN1BY=fV.Χ{FL$Lxh)yIE3|YNj'ރm66*8ԄVŮc׾z|ƽWN FwܭM|G}+'IE=uԚ^pcKLn%) q,|Hj".৵bVLZƯH+'hLc4UͲ<_ [M# $4 Jk%ҫcIEA0,M[cъT(w%"f1I h$L c&)*S>߇XQ '^v5q[נs uLTA[w(]hb`zT?gyUUqt)i5ZnE^0U\k&[T|jK\3.]0/󐀑L?=SCxRcpzάDfHs CũR# z`@(q Kqizl`M4?QV U/"x < ^@8|4X Z`[:xYnKU|sƦ-'s[>;?vfs0Pe=GyB* ~vjc3dE>zKa^xՅ8 9'{x|#~""ܛզqHWP"q)73ԙE(d\@44uN6j|i))sC%&#=Fp([R-dH,x |K? uTM5@'^sDy#`^ IJH@ E@N2 ix.MDs;)#M7VFuS6sTb=Nq8:u[gȷz;[r3Ni2@ R8ҏr"QɃʘܓыÚZ*Zm#D<ض3eC,}Fpk3d-%ߢGs,V|[?a+>W:]^Xu۬[7־t8')T7 YP8dmm{4%*(+H A8H''`A{D7U:$7aNwVQR UC| }I{ h;38 %"hID!X'˧B$)BkbQH.D[9ыF9-QF|p"!Jn,W愚4Em,%^իo{-E1Ma˂b+×xfٌhwlFBlW&WaH9D63[6)C [&yDFAdV}|iCASw'=T TEb ̼$ِK9ҋ& ᇅ!gP[*sЮx3q]~[Z4H mU)9uF=u;E)#Z֚멺ҴnӢԈ^ҁ%Zv{cZ^;1;,btGtFW!#0]ʐ=#/D%0]?jҐ(`Jʫ/55 E=IPa rj6=c lah<yQ_eWŃ%!zb"%fðBHxxo̜!gT<@aSPS?gd-mXJzb}xY'Sh0"QٰPG=] &\qJ ;30'4t cMC/*i&lWPfj>=R#J֚Aq`m;V~zWQE.SiWǵo$>bon">[4⦕+@K@FN )+q$A]H3'T|.Ƙ['zL4.,ODl{xlzxE&ylִn{:v=)͉HOJ%61sjNjfʱpU3m\S~nCRlbL&VIS4ٳN|s`9+7h6vYkW_   zॠL$*a؅4\+(A[>Zlu"_0NJZOn 6Rr\ 4PgMt"kaF8wMc0Fب:sݽi7Ś^]8g`?Z\W7W݄a}.URIk{]L VU>=N69wXxYdt?_pz!&LyůvgjAbΗ h MٳKhB=wGt o{w$Ӟm1Z:Y8[M{ƱBTnV']HgG\T=.AI49&僞:(`iPu6WȄVޛ5TwZcFNr\HmmZ>mr}5 '=Dl/+Q3CsM!䪜WF`)H`–Ss0 $,OP)]|l.&lޠr MőNЛ.un>UL&$sThq&KH's}pXY l umb+#]À.KiOe_ 9RIC}Fds׿r(I^>P|݉8ѺդƆ\lJ<ؠTsbJcpeKhؒ $XĀ # jz\ʝiej\/8&=ht! R47b 5  Sw$x"MI gUU9,BLXR9yōu>fڮ6A# 3)Щ^d&ϒȧ8A˯<ГW3Vm]@4FFjbP@BneZ Wz%QEr66 ?FWo&"dC`ȐgR^ 1lOv.{K/,c^x)Z[qtHxYmډ#OQ_s/iKsϘfi hFl0q1xsኙWSצO(=եQ1-  =jGn ?e*\šenG@1 0 (j.v xyl_P}Q)2PNʭxP4L$A-$iGM{"{ߢw( =\"c.8HpBT=8{[7K}pVP vF{8#iJx ER8 vK֧ǫ9'Yk#'o9z#cO B+ε\IYիǸ;n;|L\,B@*,1!g9~rjzC- pW='Emlr*T C3\|xm@YLĽj 1q, y= >m-/|l 1Ӽ5x=T`0U9 #e]nsv@@`n:zU/O":gA"ӜE!q1<Ou"LkwyyM1*N.geO, W 9 E:ܰb/݇=*aS켁8+y NI{E1f47G@44 B;[ŤNϑtL_s4#vfi26y.yw 򢡗oIXtaPe>5F쒝Ujqa"FVwbx07T7YĻV:,0Ō@x#>9̃PSBA:=0M0[\DMEJ wK@/,BƅXoWZq #fŰ̧(lw4O4U4a˯8zv yk"!THbSfh͇Yjpplp5k}t'O^/WSz@ 0d_'So7E,'Ƞ To4[+X,Fý(g*6A![n90%VNXï" 4Ypѝ̲-ՙo?j^IūKli$Ϲ_`p5V.VTcwA}^>%!ɚ|qB #HľY1SHV Ew)]qi\d]yw[ M282 }>o5%|WyLz+{V5/ ̠1&mP%Gr~!?$/B3L00)*%#H(xP2ӭDgmӳIyUd8ݺ~21\ cҁʤm6@ex0 mF@}cϣA {#χJ=Xc| /kKj ܳbNv=l xĀm2d:Cm+beFk#<.Sm+_JT^g VeV݉fGuPDe-+rI82_ٝ"= ",}ĦTvC9v+Ʋx>1O eLź;͗}3^&Pahp.# E9aF vr1dYf[qkk28&Z4(H5| ufݩ>ͣa tC]# R r sbrk>tSX7X+Ϊi\WA  _zXRO[ne]W$fxw }/&h \ i>a#381`]5ƍd޸q;i-19h4z!KL$4a(oQ5i`ƞ+MءfߐxPl׬s~7rjx4+A]gPi@n;]k=MQU'&&B3$T^- D4w=[!Cن {*虉 ~Kx $$߽'ʡ?⚠PyOݶA#27: ]\\y%mT[y.MQǐ:9i#MCKmwxVq:Z> m5Z1-fqsROcI_G!X,SWkR$O!PO8 #\dx#/`sE;a$tSqƆauFi(u+Vg$8R-?O=zNn9/w?ĝ{f쏛I@X(\nYߍ]$;EIyZ 59O" X@V;b: @q!^"2>dؔw0Zfb Ѻ}fv׵FOs r"}sȶ^b6l#.Ŀ PON>1>LBZb=7HH{,kP1T yG7x(X\ @iU| &{ X$(Lh[EՀj@t6-j+d_cky ޟ ihBÝ0fV6Q7XR~ׄOC i \p iY r,tlŷ?} "΋OLnZV7`Y}a=ΰewA"0Ee^$L;LU3{i:l漈L.{BwyM~g(YHc%ut:375f @g(GvvabQ xr2JT]3\70؇<%)suv.g_yi͇cCoTY (l&~ #gBgVH鈍+rzkCDhGd,[PxJGBVSf]R4)&;+mrek5w*0u -ayw6៤hCB*5y[/_AD"# hH-qmKsp#\uuɡ 5q%A+ _nQiw6*A4KC|;w5VNHFU6 ^XLMwv%{H>#+*W5X AX>JOO3;j4-x W+ZhA %_9TgX@p? / ҽEJzD(Ivmgעo9 $!$!8.f=M3gW\ڬI"'v_"\&φfxFr&Hwr!>.!a}j?so")]Q-`qgws&A|h^LѸ[&GD ˦6_V7hӵ~9 TaΜ:iiIiR.g =W\CKP 0tk= U+󯲖TdbuA oVE7PL}=ax _'eR<2Jqu!-@!QD||"QQ.H$aG:jwZTǡxy nsO7wl Qm6eMD(|P@OH\=CW۵:棭i -3bqR6x۾c4n*kkh s,lYR`a? (mUS ;&(B׀όSLb &2![de(mc}fT?8N;4%. Jp7qÖ^q.֓F@ ;!j8NA'ɘ`۔WxܱG+G>KH(V9k`<'GYM(3- {IwJ?ow+n%3YA\A|~~\{$R?{ Np_o>_փF ŽlmEjE c0~4DB\PwϫW*hbPjvT 5H3pIotj 26z0ɔ(3|7MJT:Mh@]!?Y/2av֢ɨlА)qZ8sdL+\NGvKւD<&de`cBU/Pn\U[Q} m 0fZlu%oZ9l8[K"akرAB^NMr5xdPhv/C/ <2>DOlezx#!X3rO\Y>pm`c/ €01WJUU7 [*R]qøx0-D3qD)&ӛ0ϺbvҪYE=^~*]xHҨGU>?hR󇀦:{22}fA22]θaj"r}c(砼r3OLZ^ 2)[cQ+>eW.B.hLG jN"GSf5|@&"h4ɵƕ~@.)x[UDbo[Iz_#lO8A i'ockW*w8dz{^*#@QU.LIlݕD:ʱ:[K+|sU|DaK8K~0Dw7 Yq 2H@jy-~di' HVFDz Xg`V(ְHT[73J4r,nX \wT->ĭGM|K^W3ܬޚiw[% ./q-h_k{ll@豟灭I.' z+fm0yg_z%*iwe7~ /P|u7~왐 ^XHP6P7.ѓ>P*:O'8FXi>CǦTkȺ0rd|bߍcNNmB|@/tc;E~@M,sBy џm(d0B)Df^pcam/8+Rq Jn))+Csxi^ P#,A2B!.۟ZFFdÜypMIORjC+?/cb5[?78 J߃s_HndMh`Bm6 x`&I"W8x%dl1y<#0T.q"/7ǗٺF KPSC fU~T#nCߊjl'6v 'MYf ^.1(JYC#_[]MMs8C~qCn+NHybA1"d e;x" ~gF#дb$#I|AzG^cNy*xNH<|+5@qG4RuPB9u~B8ϣLCdQ 7gas(A9@g]vf&˭|㺆\GH&#pDFX+Bv-2Ȟ=vrO={+$qUUbex[UꭲCh0;7!oάĕ|ʕ.MIă-h_&vx4bx{!G2U =ٛC3MZ_I.rQ󔊘5W-W{3iM_OJ8!*^rnY "lKmf0fG 0kMnWE4!'3wwJ2H [Lbtǫ4yZpشg1KiA Tq>QϪ!vaBaI >\2 | }g9OQG'1a*%ރ:ʒ j[:YzW >#և_'Qz<"5vFhni? nWƩ{--*qkupaRR.dy-]b]#K9lBGU!6ٗ k@b`#j;RDEdqvTPNiƋ~2tmZ\ չcwԗdZf!9nl5ˢ4Bo0-9 (|r 隥 YI22'No0GWm5!8+#&8]>R9NNLeӢ%d(Njʢ&|BPxL4wXe$P{3bA8Æ(}A,G&Ƅ6BrXa_fKId$'lF8lSŐYI'v3ݱ7gyS"!5x-"almb* ha<B dP76>{.jUx:^¨QYH` ۼo:͛LfBvFW6,m0_=3'`ēWTt؃"Kمns- azi' ZV<;Z 5'l=193Ehmbn aӆд5 Ͽo(fdi9Je;nCt{.>`]=E7'w5R+ipZ+Zy,Yr=i A0=Dj&hDp=Klc<M#zǝԘj;g ^h6rCͣmlqJwK4E8/"{ Lܯ}{' Kʦ 2wT{))=ns[դ׋B:|o_1Mle||&)sY[W|bMf55PyLX-@QD_YBP*N^;o/Ǿ|ZFtCi_c "w;J>smڶqd)-VoL]eT/E9'\-9Xȕb3%(E p8>_zFfi)Վ>V[#?2O*Й+Y@73B#-pqp)j ; >1٢7O] щz|D|}W ېÁLNxb#UA AF:7l7g`M-mLMOfӲ 1lҙXt֕Zж`%Ůt0r~Fw ,= ֢3C]";(ϭ'qD/$cw8T18sH5ᓯ'*%"ţ+]eS!#8 _id/lĒ -2$te軂 qӬq }wno+9j%ΡRuG'`$"'Ljm7{)\RMk<䗶ͬeu&Mwi]dmEKu/y{+zrl6+]ՈʟD!(} _5wK%tO3X\ y>߈AIL%ܚ#q968eZHmpX .ʪVZ[)*R5Lɻ0[T(eQK>h>͂Z~L?: TlQ0_[P"t"BuflRA絫-]#0+[tgJHmDؖbD_|hN*H(*Kx*sW^ՍLLdIS*y8,aK qFx@U!W炔tK,ʨ ]vFBOpzC9q[E%|L+XJYI~"3wmh+Z ]Jr0 b䜬0Ck֐v@/迮nmSnabdCZ*|p>E`o'P8*ʸietA}~Xr.xG>rg!6/X nnd0?MY2TeڳJ:Z*aX}^ubTIe @"/OⲊѭIֈ+% C|WP@g0l_~vl(ZWjxE)h0߾hGŲZ<[L{ BtolbRީ%Pd_3W5HŧqXa:XMGVWrfO;޿1K,nPEsobw*i4gH{ZMUd_WM/ѹ(;b FW䜿y ,cŻao̟{.˨d=Ry )҉ zhtz@[MUQeA )-JB)贤}`@*n#ej 5R?f{GT/x4"Yoy^WؒCoTӤvo[Ϳg_xIJX$~7apuEk63'xd wʝjgo[3y_(eOpkx{GNjirEjQ.+NA`UVU %t< M\{}3U&5R([I4w˺xBN+000)~E2/0g֥`l0Cn;t9 ҏNq24_ٔkb),r*I4̋|m>ApSt ]ͤ4aִ%dMoH˒^eoP=Iao+ f$qsO+}O',ΞrG]V¥IL F##жG:=|̪~MX3#zm7P1s IEy-!xǃ2ISTG ~”@v]BdvvsVs\QeM֤G0H%\ R.\g$J˄B7s܇o6S-ٛS!Xʳ5 X)mKm&>!yh_^lAN]^\4ȇlJDZ/=U>06/։+ 6i/Y҉?끩MF(o=>z.\@^f0g\fD;<$.zggHE&-Q+HE? Z\P5nkË(\cVT皙 U/i_}أqE` ͽ`UƲ W-'0\kUմl{TCZ69rr}Dv؂SJ%6*<"gj-b+a7na=ׂvoXT $vv.)<ݧqQ4xHFjPGĴ qqrÊcD, 1IL=Q\(˥IbB=+`@_mC=&>Y&}n+J-W+ҷ!@DX{ l^3gE9%އJCL0*D?j"hxz%V:ͼ`qr xҬLu21BVMy;M\z:J*&jes*%c@UY ` ݫ]*!i֎KRv9*9ѽ?RCl1ؽ-bbM.VjI'K|b&;|?WvWdƇë+zgw?@I60 HQk)Iٓ7 :ĤMkGo<0Xd !<^A3z57۬A>p?W{ف)*O^|@+2B dw! nHC]$M/}1aD#;2\IlA }U]n1䵕b{#<#i"7E{QK.h` 4]NR\C~2Y7rTֽTt a 9,@8ˡ1cKn}Q! +'Q3 Y}uй3,I[&3NRўXOt6RMB[gPd}KgLReA9l)\kOm:l=9X[Gd$4 \Z&a% DIQ=lMuIكSHB]5OCx/4Y9D>#Z}`|?o@=fZFݭm4e*p0* MųL a ?g8TE}T vC r( NyYz;s i`Gyؕ$ݬ+^` TtN%eAB&B~#iא?CM<2g5G!=nv?J\~V30q3KUuף`)6rWwJB&ht; D=<|q./3z̍N hbI4P;7SW}j35xGo(+t NC* ЍkQE>+  7wʌ·kk][p L ..D?B*4MCQxf[sc=1$1!` 3اG|XLjx$L(!a*pO*{Oll|/W4QKVpmz=Njüv(\e-Rf `Fݔ 2{$p ͮ{PX#=%/f/w|x*:8c51$zFvk< |vXt@k":_ZE~\u A#SIȡϞ6nffdafsM>#1ޚ  rÛOs$-U 6s)@o&0Yh&UUZoꕭ?kι9ilpWauK6#  %ppզRdz}Ig xVT@Oˏ 7ރ$q~8S.1ovRhp4K;2МY&:+zך0xh7ƻ݈NF-o5W˓5 +xsT! kZOhukG7 ";8Nd $GOogg>ҫ(!Lٶ5d-oI:`L㓺g/pM%2G3~D "9zDUSkM<4%a 3ekKj_v/ĘsЙ&(s皀5T_1A[|I4pG]LuLnrی5I~sG8D)ćw'd݊=[ CAF34:T u^A-l2GIːcoS:ؘSj/Ԉ*v]bjtaM C@ x:{ߠb/~䅳*7Ya%)VIԭ0.5)њ&?HH(L(A_jGswLE[S ֚3Ϲ&Ifnm.a:CNTz>zY8 ȴͱ}AN%k[HoheFٕYT!-l0dQ{Q o;i@<1{RpJt׌BUm}V)z"r=D[^2Eo%˾OzKmB'yD0 28!/JE0~,跁r)E퍂WE|5IK*z bSӹQ#M76! 97H(כKx͜v? T2'kHiwAqF4sy8V˽2dա}"~vZ7ٟA.6ǰhfF1XY:78V#Ѽ[^a4}m)ZY8-|tP5CXTg&Ik^$&ROBoQ蔑YڛX*]">jP6vCdu\L~=rϤڰh$'[TH\z!V\ 8Dz"O̲qJފc4W;̿;*cD'8uT` mþ8_aVoGcdY:`)-=xpJPUBV85my.Dcɳ9#ϭ*36bbۖN䞜G^;HR>- KNڟt'EXݼ!Tm@o>㎴aɐEN)KM Oòs3d؉_[bfu^Jr\`ҁE{%poar_@&bB>C,:!q' ;>⃇X ˙u2m*:L:Ur1x&>qRuT\qTjx!]{`PJD ksF=e4~mZLɚ>`; "z5(+8όݮ\>@i r& vii4e&$| ,7 @~(tiS@ǜZ? N[f)e_+K;& ; FYw`I(Qٕߐz<${MSCJ?SRk>*IU[ϬC,nX{yYc6!NGم5 CMKf?Ѩ8$? IB*ViT Q@va2ͷ J1muާ:H|3N>ubΠɻ6*U)v[BOr۵ҵ{̭| p{ yAwzI֔aaB+'s)0IV7:eWYݼX?CzEVN, V gg#\]n^ H4ӪE k;U?Z%qsl i tO(yX֬iǵǧkEZ#VQ,XpthItE6m>ވN[RUeXezQTۗ$ѯ7>&2{RdC/x9V,{Jߊ[Lp(Zn "ns:oWKδn_QIPhHD0EӜ:Kޝ-v߯O( r2Դ߰ݞeHo%PhD?!\e{?ȁ/&KM=Ppo_7VU3Gn{W$VƸ͐OԗbV;' ԭVYpqrGIbz0-Aŝ}XH{B2bl`0߅ nfIGy𓤝ig59s kz gC5M1\FWf.*>P{wQQTNQvSta?3N M࣊z>9C gl;{,A}5ޭl'Pf]-Oք;~XYk;yШA t]Z,b!=\@Tuh*@./O菠'\C]ӹqF╙k5UhJfS]SyAs'"FjHNn=kN#/PjoXjxk0G<0 U0B,LǦǬ0 :_J,.0BI$VLؠo삻GNBWs?r:~]$<‹G#; uoO=cOF6+隓ԕ:h*=dY'&reM:.;±t0s= =1܇Bn$J#{Miy>'N{8FTqv%m-'05d^ᩈ98B?{fB D_o}?7pBd،iĕY9 VmirJo${52/Ԥ1`ɶb["PtV_`?l<bg<ٚO]|9)o|6_@BSqyu6^ MO/GKD~Ml U$g6e45bߺAPo hGf@aМ'f_].BDU3M@Xi-E$3usxf* ܜIIBC2٠3bQMU Ϊ"QU3Ĵ1B@s6JY4~6dǗ֩Rdoiur?kfw2Q9tTYg= ƜW Rb 0al~?0Q3JI]wG\ZGnl d (//Ev1i!:3m%­0kA'&ݕHJt͐ϩCcj HtKOo}`8YSڷ7߽Nl(I ^ '!X!&I13_|F/:/ݴ0Y0#Vo*NĻ1gA%ݍƃ&<ACfRx^Zr_y9*@;|0|hj#}if[7^6wDʹ<:[k扦uF;Uzz% s'( ,tXxVEgڕWZRwTiIFPWRC.࿃#71x8 7ɘQy^tdԕDh֟kKSdXc/wIMR2Z5M/Uڮ߷@ ^SiD2Y @58*H v2O-c9k7D/htX&-uV\zdols縓cDRCv@SZAB}Ң9l.QY~="71=S^*xqqt>p="SWNE|s'cKR|pJ=1 ?*zݼJ6Rf7F>m[C%S|$7UktSSUI _Em*AI97 P}LO,0ܘTӾףqFg۾`Rfp.3GnR'v.^?HzJ#] oL@2Bzi@39y ؚe$fDZe/hiTi,w4tŽj1YY -;i4I&nѦf ݹe7" JY> y'_6B;yl⊍("q{ɗ yiL(0i{M)fNr rҽ?_?zŵ  ZʋDoW֗OS {"9ygϾYTkLR+(jtd`)EKָ-vR0kZ?ɮ2vȖH ,X;hD5#u=qkJHَ7V >W̓;?O$6s4BCM@VG{gv^گqZonY~oqSu]8MpuHx[GB؀>!#N(|D9%./jƸ2|X&P\+DntqB:;Scaѡ(kJzs\X%i2+5hy$nIYJP[4dsk8\Zh3U,]*)B}R/j x_:7H!E-]lC%OxD" iϛu>a,~EXSPJ X,$ G@ʙ(j놘ۇڻd 8#9y8> !4!w\l"}+ExFdRc]8}_3eSıMN)t' {S{k)b~OÆ-EXC&E E(͡MO[YcdU zRRd+qSSRN%89RME?WPFŵe]d=͒b5tf $n֡[Ãl{Ri @~^93"Y40.A?^2VcSDg3-~Sh  s%fiD[3BY5%aE~-ޠ6{혶}4PrLO}h~؛.cMNߴFK pѽ4A[SbXιpy"֊O,Y&{4uݎeQ`U @\gcYQ92ֳܰY[r29Øh?X>(T$a&)ϒEDzEmJK#L |Z\}l#@ލ0iPjOh,p.a!W/Ly|3 2J;r@\IH/#P eD<3[#=@_e*gqEtΡ;EI7#˨ Gk5)o| meBDs%x57$JajX8͕t̳_ >A,WN +Q>֐bDpNB%nR.IH3$PuwV؉iǩm27hn՛U3)Ƒn;0oZE7=F_M̽iN߁Vj#U+zF=L㥕"3!r9|60!SJ.O2}Cf[Y78ӼL&BDN ]Ը .!|?ye=/SR鞡_AY:8Di+'_%P epV>Ugztf'0`ퟠ[3@ zxAQL #Ʀ/jeV8l~-42Q;$˶cA^ ž:< \ k]oM$ۅhHde켳.l,]\ 3|4D([@JE?/.kk36}fL/"VP(ĕ[/ݓDٱ{SvvAM2Z[3;Ln{__58IWӵV;!±C:y3" )5gy()tBtϵ 6`K%Ef;r.U)j9.?:XU6wkwL`Z@_<\9n'W k1^=f8_@i% n\<#JZ6 FUf_ C"/&&A~:ޖt%-Y4n)뎡{)" qڨ#ډ~r"ҍ\ Үwʘ^1{jGLv"bn Tlh&PLD.#2U~q<.a3ɞeVK_%_F9AeyTXm;P5Jv9=Yn;Rz(]/*U|_޼Y *$[ݸ^o*w,{]ց q^{ϛԺE-Xs#Z#g/NΖ%u1EEhUp3_ob6*/C2j;Ӹ#f  _B,楸* C t5Ԓ'DŽ %8{kSp<[8$?!0 .Afj2U7 7qxOe%jhK5 *e& J13v.\T)/j1z/S![S9Uf JK%GdlUsFO{i?gbk[n-i~wj@5'<~vi`%0>~AT[ &d#+pk.QZoUY`Pq6xy-XWel9oD"2'%^aO;]M`0O0U@c&$tTt՞lE$l @8BbJqx[*7Iȧ1^(2dž>*'\S'vh=;L(;_GoƗzZM}&9vb4LCͩ(qg|Op.IJtIThuzk>7r8;ъb²=g EbzEMNUpu{Lj=4J=^N"ZKv5FȼX][5j|Yrl DÄ0$+vq{cr%Ė\Gpcyl$d!l믓Ӷ1F<8j=W0 b_Tk0YUሩO?Kgb+kYj(mv3.""?m%Ո*}jQgƖZ)dAhN2&ϸU*p|hD -ouCaEOOJ^sWniL;ڀ3x/d ~ c(*v3d* tKxTq\IiH2M xw^(0,3(dwǹFޚe,o'tRsb+Sim)Aɍjn O&Ɍ&Ue%ﵨnUȦm).[gIf;{fIQn/4ܯǻ AG9Qu4:6Nk6D4bG&ICfc`ᖃ|!C^;&D21d"A0IC}y-USqq]| 7)d(;zq^fK㧃_n:3z}h3c&~hT.o F^*c/:0fBy9 %Ρ{?riѣ?j:;ygw}7KlAdh=CQyyEmN/KBMɫ?Y+\|lRgi0#GR3C<` rOD̬ϼ: \'Â̈zNWSWui=R2)؛y^E J$HtS#Ft<~&k}]>4"|+ VAZyl3}E.l:^Yl Ҵ{#'P3Al-LqDz~/nᑈpDJ<^B]`8Q!!e֌4ʶ? oF@ڜU҅$+>l#/CHGEv)B8G & >֮ m<2QUvv #qTWeeYHt PV6X4Ax=0ZB,c1BգfQaqiW|ap`5Tw윰lbJ+km6L9nk=A.zE%ƾVs^ڏݭ{Tڍ,hnʭ=o"Zu168:ib^]? }R"0+hBš3*]XZK:k,^|6\n0A,mw܅4pO:`9u>y(Z,0_D$W ɠhҌyvoCʚLZhdZ)ϺO3ϋ%XE]zTȩ H(-N;-f Qv%΋B0d}ujð`Kܘy 䍯 fL)ҜP!M+Gќ(t9JT̅J3_b/ ~gT͇}qwW$1_\qmA_`&qgqх.ĦG߭N¸[홱:Kk?`F*R|PrUO@ d q'J*-7BΈ|0һLhHµQ:)p %EdNks4DQY:M9M'*0 YA.tJ2cFBzhAO6U a*T[L^*Ҁ{Nl &ÝbkY&I k8V}%e/D)wUm牓?kM,Y;jvdp` lq=yc;G_TCFSfcwvKA#Z;W_R*`M^ֺʅZx9ڔ]Iͩyhh~Ӥ׽|޽8$Zn1=8*M3ҏ kSn}Ӎs:m\^EHcZ*W>YSd9 iI;f~2:/oO Cl,k_SƓnMh\U ک652 laȜE<',8HKOܶ ,[ܓ-~چpQ;4Ӑ*5[-" J{3aՅb4cr``nMRg dX[Z:΀VS$ƒ%&}/<CO2! !6͗aǑܑ3sW#,|$>ܐЖ<g͉% ^~#Å)y4Г0~ELRàOqRyum3|uHEbKFt;ԊTW+np58:+rкŔ١Kʦe}xU)J5vƬ*-psaĥȈ(ց)wV2-69YţG xY|z"܍un]Ҝ.Rs9Ğ iuСz٠ :xVP`ZL~MGT' [tW-`ڡ %-3&^n|&H ΰާB}1ѺL=4@n> g$w &zrq%~}hGMa 2sb!Z.o`:gѰۡ3`~$骣VNF2r[VBǻ7X~:_,6htxn@#>Qk]NPQ"3['q;Y*'Y 4)&gdP%RivW#z^BLMu+hd X6 Oxq*8c{b;clxXZZH5te/zv aՔm0F;eJi񚽹66'|>5[vR*Jw("l['?*  fq_8e֬qă٧%K-yِ.o58\Lx^b"(ԻZS{voyHfSD*J95yoP`;޼c--lCu.IyAa  X+2k~).lA`ܚS|dG8c!(FDuރ+W4dTQxjQ]a]:J_tqY! ,.%}=Q_ʿ d6ҕo^&~(I%nab83^Coۯrܷiz{>ZTi _\.QJWcʝ*[3:Qd8CaӛҜAo?M7z)ͻʹGx[UpjpFv(,>4=L0 /BPVEuϝ;"e O*r0X -k 4$89š/mr bbFf;|F'?$bqΡVI 4*1@Z zQ.wѯC!Tq j [}FŇPYtialް4&H׵?0"1$Ө@2egl okrH%k8*Xg>},h*ڂPYDwܷŠNس)XcƳK ::9:\6q6rQ{oSAdW3ljIsMH3D oֹEX _6%$\clPVgZ4r z(k+b gun-נt@?ws@5_s,l=:޲`B pLq=jRjaT'FUA/?1:Vg.Xڊ>6z@fikĹ 22~y[^xo:]8z7mKYcފ{4Zbs>Ws,xɛk+*CmwD=SVv=?*(ǰ_Z_Xo s긲)Yr iإNբcƸd wYXFٌ9Zo>zH n]{Hc`Yuz7cJ#=ݭ(3dįqŢt͹7#ݢ,>UiXRRw1FK* +1FUq:PZTۿWh{1e@V" NԄef 60žUe+C @4X9C,vл}#S¸ \07"W OYKNkeK7) B!sM xr3~5~IΎ( mV`8rDK`N*T_*JHxGG4խZA\ <=ݠ'8 CS{6Of޼Gav !}nPȞ0<Tb#r RH;"z4A$JIL2!؅G}z -yIϯn?K|P@%>5FEGz-NHDm[yFB:U*s,M@wş:+C `_>vP X6"T'Rdc8MFG@/md*e6q$)ĨA0I"UҶ$.2Vge髶ޟ<|7FK̥</&*iF7n%Xhŗx! +௙>]03Kňe|з O+'ߩmitF댷ugoW<5j}YFj{ [p+@CꓶV^5:?2e9߁/̶k{eS93x;@Cod-dz1Y6.t'!"}dcQh۱&=g3ƹQ8G}32gص& BYaTh#fK$p0S&Rݪu٥*{}H6/gN)[oUQ ҏ&Lwům>`cgЇb)ʁ,UCЀ0#4XrOy8 Bz?Q L70˕U9zgu Ϗ=yy EF b52 ^~KAXC-ńNߛᕦsJ ϙ<T!4-EҦ!ot9 گ}YY3. \h;䃐in|rP Y/2ӧh"{̠i[;9A S'p FAՠ0њ.l6Ɏɱ aO,GIJɉaQ0KtW㧇VĈs-˼̙vE;Z/YnlxhnŻQQFRo cu6\~ֆKin}'jZF-'Gt(mq37>e{ǂCIgjs{Q`yUNV\?KSK:9{A"ˀ {L+Xԅ:KQd \r2뼁9EMxZ@[> }~v-vP`oiiZSHꄜd{m|ɣgzSKv7[^փC EMd^4.d1ּl"SFϗ_&·:d͐w]4{5_Fʝkb\ %,YSPѱ9dJG|4腟./1 4vֹN8OtyW3[5~{Mmq"7]^z0l˷cYQ%<{7?"~TUVPx. sIܵZC([_خW.ݻ6&^B6bA>tDjedX ̡pTpT̾J:nH6αҤo iuhiBp&%KlJ@Σ%%vY+z$]'Y57wDլ$&5Lh\KvQu}c+_Bk )v!<\{fN'u1Z~,2E6hƕ]\me:t8`xxyG6-@'`OJb"ٻ#[ ّRD;(;<ˋMBU#^3W\5jC:ii{&QCo9Fɚ9Ql"ǩ79by Lq( V:ekz7ORy # d :),\*iO)Y?yNW" eɹ*{ `dw7bs*+KFb:MH0sk/zx[4cU#2z6FWG茰"{c,3ڿs$agKw0(q!sC҉?[ĩNFp) @fj*ȲĉǁLJcYʳ(/&;Ccy3^;_m+rZ[uέ'JqgзѺ̈́ dFeI,4I`(݌ *q|bD9e&,1bF _&rMrKJ@AF[R@`?p.2H&ewD|A)NiJm<۝ğS[;>XME X]Cx o~SӬ'P=r m*Wf̼h(sAD#7= *}F,c>ӗ k@\n&0^a]%i#B=HEK I1R*!UIYyA^6-LSuW~[N|L"-qh1sOB[ŗjgɸ*PZD;C3~4D.S~(M"nKL Bj죊pAwJʥ?;]lZ|KŎ뾗Ұrp2èk&bKEfsklN⍌q#r߫ʞb#;qa'X'-XJouB5FouQr,-w0z6v3 [Rr,K~ꠚh_xҞ̈́:z.ex0I\ь $/c$q᫔lxZ`3ޥsӏ9Fˈz[}%wkd6 <+Oa0]'$7G( oi)UO#T6fOGRuTlaq"Jን^ۍwQڍJʞL0k7z홙(>=%kw<|v˄߽-)dPZ4Efw_p6 Pٻ]E>ι?O5Rʮu;X|̒rPT:-lNaG [7ш!38n[12ǧHMymg.Ŝ_8nvF'/X0Ⱦc{ߌ/q>! u:a帗F-nsp!A@}0XD]厉rOSy2Mn   HUj[EO`Zqh&]|zY.ݗ@w{Gw8i?V*Eԅ5[ȋFZF۹ۏ@OpDgU,@1:.~ IBf" hRWyH;݇m QV_\6l/ 3gzSyѬ4aĸ+r(2!u,deDD_{/:nNץ$n~.{ՑEPx{Z|8A[uո)Of3l²=#@ !ثdK4Vs_A(@y ˎU'OI!{;Jr%m稅際Z+h\457@c(-8 &hjޱ0I0.5W-&5-Iqeok$s)0jT|9+r%R(>G lZTQDonr%7a> AOZĨAu '*[!e<`WϿUӛ!&:[Eh f}/G/y ںt[Aw9[cZE>czػ3[lKjԥ%F<>a{a+6z%93L=Iq<ɔud&d+,QVWxMHBMfSdLIbrbzVEtkEߣ۱i8$c"Jd{1T55 5At+]I-aox8qELc]tj}?O^y&.R%~#Ejb iS 芙6%:/84;Psg%Xm'+z92B9˓yS(57(RQR@s-B>PLz}^K8kJnF->1 +V˯ɴd 5nhm 1Cm=a/Ľ A |_gtF}q*Q_C[h^~<6Npb4kI-"c c1 -\Fld;)]VQ ohk~WMOy1H l- <['cN w+P`ȠC ?40JU>U,I-A1`'Nb/[ xp9VbbŞ=oJ`W 9DžvBK6cb7:;(rq`[`oOʅ|`hru;ap; i']Cw*뱍6"PsX-UDuE4N`7G0 ݙܤ7ߌTl~]jOҏcʥI :tRPUGГd-q~̼?Y%]T4nY4,!ȱr~j2)w7t5vloiqk``' IXۏZ_c'lb"MyޅefWܢVFb;ig ih1kWl?ElgWS0 쨭I?]vbcCLlo`Ļ۟$QlEq! (Ж4 ;Ͱ+UEqQy֜C .]*Bӄ%ࠖLL(\%19X; W0aE곺1- {磆> ծwъ$%+_ŕIakFzhû(mDd^ݯV?wA|\Vl*%Z)nVei *fnSy%iɫE0&ݓ:M&Xsן ٲRfɘ".s^}>AL|?R))ܷ]pcdUoi*i>$-p^ e(Aw 2khnh݅ctwoV>\iD(AH:0:O"ZX)u'LIS"(XOF]gIvڬ`֫cʒ29!W6\-u\{/V/I{>$ i0>.x|6Xk-wVcXdC1XQ޳թT-bN1wpuS^FJ3Z  r{D@3[jTg+˥NkȯD„x{{@O+'eR f.G6jT_ qU fZˊ4/nIYԌ`ַf<\A`iWZ7MLm>*h7 2CSQS)˰g=0t}CNо85Щ,>Ry^V˳nW+{aߐ9k-DaNbR+'?l 4"1M koBשN[б_#+hhGhԯa&\UDK̑2=gr[01uA6r:xu˾:(F1j^uޣSbBv sqPm{K0\:u}߬׸7.?}wʻb:H L݈%%TV"Fת3S 59tJѭ$ܖ#8rldʸBBԌq%)װA˷Nhqs|e5>+'P*t8o;5 O'd$R5 X~¡`@/n44@5jόטŽxXraUإwlȢi GT=F\Z ?5!J24~uSyLfn2*tecVѼW3+~QiPIh'mne CwFɂ5( ҹٔtpX0|Xr!mEPB˄|^#zW? k#9Z||-pqJitkҝ2R$^ww<*_͞##DيNFbE3CQ.a/ e.Z9U:uֈ'& [ټTg/Eu)q+UͷصR7!FmgM;4>l+*>rEI7wiPx[ 韹x& ~% Ii-rָK9$Y)0SsSP86u݄ AY1@y]'?M:H-6Pj&,bHU`cf sV XnA.=|]s?1뜂 ڈ[:ޝ Ĥ[xVV1 T?P3q+I 4u0iiQxxJl!2 Di:FQ.hlIؿ7bL[Cb=E)1H7 xz m5)Ʉ -@GzQ: .@bطKZ7*YMr WXk Y$) e>i߲ mU\Jҷ6zÑ㋗pELƀk.-:YODEӰ>3 yjf$0DRBeX+9;x<\2Pi A@y߈iYxV:5@nk:ZX#h"km~wjv8Nhm.}B3[$[k01LĤ)vs0t@n[+n?W # @pwߓRIOF.yw_BXrz/J __C nq k2(s-TQ(4\Co3]ױzfl9DaU[]6ٌMbйWvi8,8 :qݞ|gUDhP˘ޠ H6n?]vk>?œ (!9V9"u-:k h nQC ӹgiqi.wEӀp<P"8| JI̋*k}kՔ@>҆2Q4ƄDd$ k$R@}T_za$וU.5Iݏ*[JXSM+q@H65b۩=XȈv2~43|JgdejFMVXy3Vm25J^:< bNmq]a%Z&4ѝc2o*c>)-'!_pd1S\7R,ɡTjj;js,!I2u^ kl7YAztҙo@{ރcU|K2\g@ҚJ*QlXW1&PR `!-ƚP,"j"~IjD:hIm^%RM`\L{g~W̮2 U$owq 3Jria~yC34+$#"\އ)' 9=&;^h *S`[A2l ϭpL X$Qw+CN쑸p 1+m}XPH8(mȐt.94w4Y/|_Ʊ`dǹ"c>f[=`{-K!%/X1a뵰Z(v.xj7e 3P/\ K)z̍HK:U4JNN kN1d' TvRP b+;Ci'3ыJ3$.41K@4pib"2E׷ { 5v? 7:[O qZ[`a&gd,ۏZaDXmӷud:$qy]ci2-sEOھմ)E^Z~ɿ$V[esqf'Ytr!>FsJ)»i86e D8{ ,s)U4^~9t_X~uGS,gԘEmۧy_Rhb ?hQ`~1Dr/#Q[u#3QL|=n_oU c?X0J!|f k22ʼn֭?ˁ6('l u>tn%JKN(3=3I/zF\,pcHrZy =m{v j`ݭ'@5#jSlY}8GpSH>2z- 1LGQ4< ZvA&9qIcKi6yQV>O]Dx4,qw4:/a2HxH"4jw]6JZPaޞ^K~PmښԟCxSú0 gjuy Z}*]:G\:&YO!ckå6;aƞ#㩡p^'X`.:zV(ti:ΌDj05'V4Yڇr7dsJM|S^EbVq ۷W(a߬g\ѻ"FY1.i21  "vJ@l(nM(-9zubmK3PZҡ sлLbwK $;^{v,9 _t)850TgJ4!Jpb>!ῗ&աp4fWy4W \NвMiKE]%>󴲢q|#@݊~?k1G{z7%Z"{+wJ/oΰ 2gTJv??7ůZ<Ҫ]wXkYsO$ˎzpb8_fsS/I"г Xaf`BJ"@,d^S.fbƧ'cGG\Z-\, ^iaV #5PI3 IAߗnB"f朹BH%Z̝Z꣬{&>JƟ5E9D~$]dǭXF}4J7e,V@ $ N^ȂeѴX_*$6 Q$BZ^k@tbSQOK'^(s$8c/<`"|JZbQ2d Nj,:lF509h@h6`_0,h?wA8av|G5vԔe!dh OSDzz<&[#< A.h4/!qqf ^.CNQ 4Wb^UW|#pVUjbyldr N=m 7,1|eS|?rPǘuDi a YqWY) cei^jƘƵ NSj )H]nʧ23b:~I}xJXwᵥAw=!F?[o^'2w '}Mݥף\Uqb)=rZ)Ъ4Sr^eiv-֑ Ѷ7S 1g^IRW!_dvg벳 msxn!-|N+jK3^4qQS$5#<[o.\F>+i5Ahȝgu{*MDAiUxEBp7 *򁠊@ߝzɡ/I(}A8u3^&П߉T߽ReɳNqlKHC_ye?v7hQߕ%vhkGC;ڃjmTyOɓ,3tS.&],_K8Qہ;$N!COA>]$ zw`ģn8?SL5_okbD_ŗ|no^4B]-Y[GjptiQj1OYMx4fVdpS`#M=Lyh".3|mD"кce2dCB$'%5# G|/:g7\"0!`!; de396*b獷twr[BS=l+ =N图HcuEаTEa]/*UN7X)CMRa?K>_հc>{2TuUoTj Yx!,R1cG࣓á)Y-0t̥n~UXl9`{n7OI=j2rVv}pepI33@ogFbMF {A+F1(њ<ef<Z u ˌ0ڸ8iEu GԡwΓV VDa=y 7WxqÄ-momV}NcAbXv ;'6@<BIH*AEv{4^0{P!LT𮖌۩- -GZKv[TPK|L7O;>(IDՅoOި& $OkZNl1|X Y8F̵\>&!#*Dycru۟ncm㥒Q'Mixt+#z9vWgrŁnc5“j@]w+QAR ̎v] v׾z#NxP(/tUOyd}Y%fh &igtn&I<Ͻ5o|]"b( j}&ac ׃ [n| \Xɰ1H;9\|ʿig7xD!Omdk jh_I.]4% l*Rk2E hǟxm~,!*0w/=" VQ廍ﰦn |57m µH7w1}Fj}yNV2%cui7 ?<w4pxww@s^5Z&R U[vyPrXz6\GC>b&X I}bxĺ'W+ l..ZM|ٍZ~^G T+ڸV@#)F'˃=gKBXp =6h q0zxcSμ-kal̀<͋^1Qmz.IE5MBX4uuE!%ޅ "mb3 v"7kW=~d\PoLjI^,  AWcXvRꪴ.a!47xL+.~ƕ…D2l*`Q_ܭ5X,B ٛay(Bj =A.3J}Œx(!#o)3c)wb=Uf:Sڊ"G m4g! Y'Zm8iyu_iƁ7h9y7A[S/RK\M>Z~)dfRLecpEX7%GnTUxؒ$YʷtvfCq`o>0ѲjMEX"".;f/A,Z\JS Җ9{dJ5N\}(t%%)*d6$;E+]N@H ;4mwrcډg%գgBU4\:D=ڰ(g0WwNL6{YDw z:CH* ;U[;il!_wB. 賘 BLN)j ǸWN\٪oK&]n J~DЕsG wAz<#kѡjL+tZE-\+:$ GPmƈE H@>s! ߫9AL?'RrL䇲X2M쉀pҟϸ+]\_IQ܌uZeYX+9P@irMn'_dqc'گF2\Ŗ/%>{'bfhUip$Ela/hp#^dQgkrD2Xs~bgc,dd ׀8]knYxސϟJEr䎈\@W8CTxMD3@@JÖE?kz9k aYc\Ѕ[*Tȑ&G;@L–$}g#k9 L\))V=;0[ayS.AT P.LgG',K"0v"C0T Ѝ4ZΈrs ~!H`_CjvfNQ?ivW#ܜ 'vjh0&Dݗ ϛK<5澸~m蛛iZ6ƯBɀ#MT1y$7 734N~;mku]bSψ^+v!-q,ȅ6,QAdIЎSPFJ56lxFSu ׁsB!kF烇|[h#COvcI5{xO?~!Z0:(m~m*Hߋ~ \Qz+{DPyFuZquFY^Hteά8 _;ȻDs׃;}wZ(DdtWjnB v o~Ά3HfHkUr=FK,wHgtLɕZو"z*G#j"ʓw%*Kh$Hr?1ԾsejPWݓ0Tt/*]R Ûo7kyԦ. 5H#/zm6'gew<@J'*@!-c#,B\}46|*Xsd݇8*腎e@ʥvOˀڏ2Cn ԹQ&tKU o1S6< !cBDIizg_sf€eHD0rh1ܨdIw:tR]c/y'5+7Jttl+V's#.0z,ZG #u?X_L95<7K+ |,_\c.>J ouڋL$-j׭/Hn˜M,N?) k8z ;x:D&m*n"VFxo& ?Bb)>8&zMa\+3Rтui5\תAYXo2gsXxSt1)Cm#9@bAOCQDɫ@SP8Wo- 3 W$}iR,B0zkgYQNHn^/ tfy"*8W0{FNV&ÚěF,ja3|r=C:dZLj)Oh_I e>'<[ 9WL _>G܁->%_W(4wmGz8HzNn9W '.%D@v2&B)z6e k M "ޕ>f^|e/]y52ޠC]}䉟"3hێm%d gA Q=I̱NW 5]{ -@#كJgW+ɞf]' {eV!wPMӰ|Ta1G+¯˙yP3?48EHEq#;l-U5lik RM\uRD2(љ'nd.po;,|TEK=̣b[%u.](/G;YQyL#5K4ig[&Ko%I;Yt3yTJ50b)/#E2\ܫ5>j - <<ؐ#&V ,k7nZMW[Fl2~O5lLʼRŭEz55z& 䮼F+at[P=YBi^E߻T$E|7֐'qj~s \vOrquiZzW!o b$_Ÿv G'JHT)) ;c P[^5K4{"ayLJSp(պQC dk˫5>ݣqkq*DAq{,J1Xo]ơ(ռQ mK<G0aP8֟ Sl#lPp'"\gl-h8Ƽ\aP1^c'ѽMɹM0GOnzRDF+\L?0F ojEWUGqSOM[$.By&,eLsF/n'CK,`A@cxpp-/m6x%5*C %RϜbݣC񬅮Y+XDz $}`u{rn%ܷwɹB lݛ;.*YEQe,c킑ݥBRctjYo>DR4ѧ\DÎyq?!툦Lk{HkŜ`%J/,}4litӤlᏭn7dQS tGr=PG #y]7Da}kO`m8OޟJ˜JQ(;;m[%[e"XX ,لTvvA?#zV~ eֺcD$t~+`3 tMcC~>K?~zUr>P,qʴR3bHQV;;LR*+$D{eH8~2b訩WS[7WbX3@OJfm~lELEB8ZD{~$ۘE0 y.y{6U> .W2 ZE8M[;r0~EڰGe_k)IbS:kD^ sr[8kXj05za`!ĽVn3 [Cp9CST:P*:*-rò N{bSK&'?pRd (]lwtp(e$/`Gn R-L#P_T;xQwj]Yw37{'N?R.tɘz]y/0[%UL[4*=&|;ARގE݌ 6^VRQ0Qs?h8lk4:#ZAN6mC=GO),P+8Z ٧.iB&|3#@Lh.7o7 (V_(SF(G.Ym# RiUcGFUE34EoV R,?\ FUAeYYp-7J&ZZ+]( hnS4fY5~w(8dp_تc"56/o&eaK1s T2мKJ<\6 aP!`Jrn [n𺩽Pn' Gn[Q}չh Rvtq sJH{^NP?.vLe񛏨jO*S[RKaǀ9XXoZðv>V1T#b9CQxQTEI]X/A;nW_p-+Ra3K#t5(M: .p6 jc`q~T G ɱnaW NWQK8;AZ^%tF+;pE05)v 4ڼr=bǏJ':ax GG7b^G=}n92eT捃iJBWMǡ>wUGqZ s y4*MuG5 cmq;>f+P{$t/ffӮGH`fTTu%=۫Ʊl(.UhOɚLwC]p؀Գ@;p*E<jIA9dX?)(*+3VI<"6rxP QMv~NFw鎠Xۧ6΅Ső`P"6ݶ6]iQ8WĖ;UM+H(Ho][ Nr6i 7&S dm?;5͊mld{QvO?p[B CNK;@QK?YmGFS40 {ROFC`_Hy«;fms{V[ͩ:bȲ-զvF֣}KB/U)Kc? -di.ѭ#k{]*P,~ dNmӶ'|@[6\5Cg~&K+ bF_@ݾ;H(IZȈFOEGj\MX|*o.إ⿏蛌]~fdK|^SʯJ0ℴ1ThDeGW0O}jevs/=`Xʗ }+PnkĩX=()K2Z[E&/`h: fL4ŋ+!M{c=/!̴I !4W "J)r=]l)9ɤӤ -*gs,`D0̎&tW6e(Njc8}__sP_iywkdE{Fy8{EV!TGeɊ(,zL8~&Ǯ a1 $ɩ 0) Z]ɅBՆOsdKƔ?͊6t}8kO}5VW\7yك׈,DeϞe^1kѫ?urF&`&su7^ҲJc5&Y=%-Xd%}j`K. ^T!}WU>_s##BfRb_`'\`:]}NtcW=։ZOW^ɥDD[b$r7Pݠ՘><ījȉHuqDЉ6){Xƫ>}˖&6ѱ{琨{EƬmu|H)7PchvÒC*Ճ* eyGZ.×^1P41lw3{Q/м݆f\]j,(M^cw! b+GТ3 AٗI#qj&1cMwPj= BDdSAv{蹴sbW6 ,[>rEP{H06/(} F}Arh K^ x1gk;D5jV wαA"% =%!+84'-K 6O&tErh|y o(ض1>=XX)um?T͔пuNY.9_!kYEx7o>=l?{w~^` ?FWhk6ݶ[C9'ָjn'VX°? !Oe?o-}rvvmgD/}gJ]$'ӸSdW>lχ "D[EެOK.~-ە)HQ !ܵd *c8Ǐu5\Ȃֻn:(e#\e- XL(d M"9^[WǩFD ֶuv/ft}}")sȘ49Qd RMaV7.7%vqj8_na]V7>@:ObK' B>ݸD$?_1278 U#Ļaɵ NsQy{Rᜁ$ap7<YM,U&bX oZ-t bk6.D rW@s|i_\t[ ~Ӗ )4읪O ,pqV;U\0쩄WEZvrI0\9ujSEU{lO " ōw= /i $kɠ/BxdցՒ8יLJiK|0C$vH|W b($&YN1hRc( ,Dhx w?K1^ k@#$jI,,5YGA->yrwrlծ {e, YHOObx9K?&Zdϖ_$(WǴZ Er˘ֻZ٫3qUJ\J.=#}c WdrKq`_|ꡀ|fd@>I~hیD/Tm#_\?;5k9 yO!1*,sY_ dVV ;ύ?}r>v́jV-*sP;m;~Q|ЗҺ a"?aQ;w.]|+:Ob!<Uqb +?^P˭%>Ͳ¹/l ɵ`q+Cdlʥ`tMa B^$#{):2f`_$Is&/s e?-]q:N A9ms_`tB^f枻VH9Y5;PܣnVvMn\c<*}' T6悷ei[ph^Q?e!3'aJNI]A>,UƤ>dlk"հ 0U<>[vЀM^)Rp8T׷&4`qX&{e|غ ,u(+1€U$ේA&^}W nTd^waX`]QEΫL`._BmD3BN.hxZMT^[d#&vU`O.77)(/$(q"՟7%P;n|Ru*Egsg~\3c3d۸)Ǝ.ȅMh# S[.}H3A"١Ҫxgf򖻩lR%6{>ķgஔ!"ܟ3RNG7Q"EK"@it,hRz2rpҙ9ۆV  8 :O@.w:\ J7sGP.c?$+u7N =&BuE+Cubqr;n g,jRuWkoLf0MΈBm6E=0N* %8?YI{uN>((J#n}׺>810'aE o4qk\]饜F iuQl\75X?2ƋD`x/N_bFb# |PVHwRRwu|I呹2ڡ9vow n2;UQ\t gLL%4Y(wAE | >\oIoB*'y"9vŔt# cjmxM(؈b\])ڴ ,>vo`%w[qE6ӘȢqc۔ꯞ &=D>̱Y-r@Hy`*pOǚrbw28ELv%ɊۯP!`w݌ ]SI)Ayh0qcVM̀'a\ߠ,=iYL/u~50($Pay 3_shK3԰E. !V<_%* b{iOFo`ԘܵO|g B^~=Kf^ 'jufyxrIMB3k޾ 1GeG*LpN\.RB2,X&BN&繍{@{z^2Ei8O2VS;w.xO) ֩wDOUh MVE5sF@3 daU R+J]haǠD|e7-`>'QLH dbp@1(w#}ok2_ N4cRb++go΢ NO1u\:oL[?#@GbOWX~^m]3+ x)3oCc [l NsΌA.ţ) <9ojüAEđ ?Yg^C_L_X :p [^jW_c;=IFE\؏,0F< e-#nTDXLYZV8H2 BEB]^e#LGc3~1RZc:JqA8$xpfucA1n) mGxPR]) @'(wJv%57T7RNi+m1WzT_ 2g@BhE`9աm S94" ə%`2>eIF h^.owv o)?ætDcWǔUꪯmékVC{G)\Kf&HԌOU,(pb ?zy^OI|5#6'@ 3F^^#Lnfhm\*HxKƾB{H]T[Z{:W$6Vn:<87 tu")C4+2l-yN-n_ABt!nc2! DLTe9=Dh'WԌr !.+ %8> [L3mFz3T>0)l?JCaP]k.YQw5YT)C.a;5rDl0/91r ?*vo="MlFFH=5dF"UE=iЉYءB *O@!K,`R=O+6E"4V0{"9+)Uu,jզykٜnTCTVE R&!`i7 oiJbul{Qq0Ykʾnφ=*}t镍x&JN"-5 `tK@7;pg?AswV-t{9[{[RiIBP 3݂~{XM '+@.%:BRC @/jvfacli[1OkT#%\X\-f§]Jiyz >PQyP9.`ξO2L1|mO 76kGx9I%+Ԟ,ҼMQrBТ}@U]PD'|.&P!C12'`"Um=U2CLxZ/2o%'Η;>Z8l+<=/C\2'/O+@qŽ dZ 0Woj&hr-`'0 6W4VGߠc%y|. sAeL-5u04ƥ5S&.8 wd5"8"[ Ãy;FWh,l_A3{)G>wQ1\ݥk@4ּ&j3k1mE6asW1[^hK?hN7=qv&;-m=Fړ Dެ~E c4Adʥ+x 6@ratyv:B9ԛٸ5#ʢAAH@ݡx5ȋ{Af`8.>ԣP'p%њ2-<#&? բR&r'īy^ C3ŁeM? b!\Vqf؏ "[R6 8<)pŰHeec-zIo]ۭ-}n0_V*DX&oP6ZEגao!^ 9- [d]i`VT~j"huu:CDzibsX52;%apc!R)/u^.CYXlEzSҕC%FSm֭60,.8fBTO-l0]%hU& \݌;e$ *òa(HU-H{aA}-V.D f3~͙j$e(~ETv\9+V:кe4!xH!zI&a@|{8Ηr{Te&&Ab1@`B{3bL<1[&<]*5P;6iԥN%5(u@> X|qF s #t~n8-jea:9T =!+r JhF{8M~}~اM)̢TH)MH[k,rbаJSYɠh&}N^޴3V:[0jG "~e4vB$l.]PjH#+7,bIvW<9Rۂ+C,b ⎞Cش Nc;][y`Jp\z$ij \s͋|K*ˆHaf[7@GQ6tCZx[_|L7֯)h*;[MYX%؈_CUa/r^Z+y֔{^0-ؑdYEHԔzkc uc{R wYQef+M*+Dlm" Mf8ZD RSHZe·c;+Ħ$fM R,n(2x Pְ!f;5N$*ZmvSF_ښT뉵H=U~ Q> Lފqx|umQ-dA@{&l =H1޺Fpa6ѭ\<:/l8ey J` וQsnpbo/ms=6V A6#B() b{g)b Ř9&aX%tY08:ȫqqvOM2~z*l#X%CjLQGSԇ-{PƛW'sk&hZ ɬys)"Vzj.$K3Y<4NlE8xx+u 5?ɚd ݾXY=Յ2HZEDi0$At"P?Nh)ǶQjˡn#̿7uSX(]*NQXSs,+&k"}u %Mʦho\4{_fĻ=f98kCH<e拄#Y.ٛ]ٽSӺeކ5& a 3x Aوj`~kIpٶ>7Aۚ0 vQ>rg]}*lFym$v(Sc☳V&O!#;PTa} 'Y0)&M}7ۅv !{f%qJK8}2ר12 hsqnCzB'18+oJw7 \YC(]֬À*dE k:8FZOۑߐa%p ~8&/foau  fUUvJ*?^*_%=?tE]F)F~ SBBFӮ,0\ݧ@Zti7u+M쉥 xCQO5M5ˍѺ]=ZW{-2#! ^Zs0L1_~le<0h+c]Ep]!A?No}4 ^,Vu|D'R 2B9Z$j誕NY+S B&[^6ύpE":?LuonڗHIJ3}m&L*-=yಘʺ|ILɚuzdŽ4rSC}T-\|&ad~I't̃ *)1eJZ&4 f~&ʯ )p<Bzc0;WJ OƱc\N1%Osv!|{uY ԎB^#Ea+HƱᵪ) LgL ]B Y@+`0)1ړMm0 9Z FIwDt=gͳA ģ~?*^4I2+uSnt^&euJƖP/+|.|강 D@3̐lx-s8cZ1E87Kbp,[B%s#t W3(=JbH L}jyZ.[0>h%ga&T!aNZՎ媱~,êyFPn`c)K* W6i>zI_(x+}ڵp_EFl7pFiGYv04.ag/®\ˆQ30ހ.򊟆osضL K ({0[%{|Ā7T-AwF&In"fM#Ч"Qf뽼Kj3,k.#|$3 u 2Rk(_W4dޖ~C+uvӤDI J*߲q~< (쐺YKԀ`C 0RdfĶ) &%[Pk=f!z' KdMFW&&>K4t̶k*TZTPx ~^,M`73}RLFSɝ! 1LǘgJa_jP?6ޅ#€9vA 1}S.e,pPws쫝vv)V7aܺ$D5w?g h ђA)H$\&T͸#ᷭoX~>H9*/@ڵm%6po.fdwv96wW+ǂpO5V.5H)H܉Qݹ.t`. QkRC 4Z: *=u/.I33$NZg 캮ij^Ux]fOp \*U^/T_i8,gW}VvZ:?5-eI$d*w[0e]6◩J{_qrᆭOE%aMi̱9s3UF)GHU,1!7D+3lpV%^- W_?Ir0GrY)Cm2r6UirO<\[|n@p'<;} >JS' 2 Dh/Ju~J$e,84㤈Ą7!ϒNh&l۪a=oާWZ:w*ƱάfVtd~zEU}t l|sWۡ:OXנ <fH,YKwWM9#| cCM`]|]6v+^*&ְx9vce%!>M6y&{(4ᅲTtV>z^F!zn[єTm+fm_Sk%8<ǑEAF:hFiq%CE?Ț%oʚ<Ĕ,N"+߄TZ\|'ILlY3i* !Z{_%vEB#֞44elG"i 9H["qEB@1Ѱoʽ ' wW`aiF*x7Y >vnjMOԣ=a}۾X,v-=Pؕag D.[fe$zFLy݂SNQ!Cr/ۀ/챾Oyقlƭ찖UDtXa  ŃrZ%2q-sDb;FN^)RfS LR(ʡkvjaDƽpfaE@i(  yC.slK,\“ev„ʤYlB/IZ(Ԋ|IZAY9x+Rb,ɠSHV5 q1'<| `R/,$yJSI{֦C@r b砯M*ҍ U|og$ց1Wk{unt7Ru8WYfWǸ/D{߅ s,-/>I(]q({Ⴕ" ;T Yt|1<&DZ$aMqZlCD-u㳄I+`zoC C,2JhܠSQ{I0k2Z0RUA9Z*]=DiU޳6'7zfSJ"ϑz?T%Yi-_'g%i Hłaaͽm H:ߔPQZ`OjI;42we5Oޢ H1}]1ܰ&;_ҭ7 k-z{~AelJlGw?9w2= چSAvPԄ.0[v2+ŻˬxI/{ 7,e3(p7M48P][ 𾼣=j3&LKͦ, ; $i=h' \fS}3F2*ɚ%v(ȵ/ȡC"n;#X @'fn湵Q.|j/%E- ǣ^\ۯ,xs zã xDۙ3׏l4 ­dDWs1Q; k6 6q4{G?nhBj$'HB@_NAT5jY-&]wE3c5 ; 㡍ћZ)2 }B=2"Avb ɗզ fOD\ ,%̭K򿌤m89JX&.V)l:,1g^^(q-!=c!h$?ҿQ4,G ɐ5EZKZ_ӅQ̀zm7㏤pJ]e6~*W.El,}w7nH/1KfuwjN^ DpR~m#=MEJ#zRI|8%7"vNp, ;u9%M/z*U >ڕ?:/Ң,vCl,J= |1\BFhpp"έbc 5M%VQ.جAɭyJV9ڄG"U|V|@7zJ)bށWiGM&;Di4twjFyPW7W^/g4+R=0ZicF2#iF =v}2:頬Lɕ,}t8TtXRxNyҏ^4(~rV!}iM]45ptvYLmb3n݉8qd^W?T9"nvX6ẢJ.*|zcdb1 l|WZ5{s|+Nȵi^<1MU9JRs^qcVEK.D85Dk(sԍ!Uz&"Z`cOoBW vA7H1y3;"S+zV^j jyC6~$ɯ=- W vJf7Id{oǣG0-z$ac jb5PS_j9S Πn]'Zd8iO/Gw?gLk|O6`w &_Q%2[fؓ )\;Bc)~ Ogav&e@̧V ~Pcy.?H/}[օE@xE}\R@  H6YgmgBTOCCUweF6o54&}~9Qx$?҄@r KB=CѦ̈yS佯c@zy~P.'$1Ců)owuoHүXeG.V9FZ =I%ف#PL7,q|~y]cH]C;$s06V14 *ms}aX~n $ho(opk *zS^eVFޢjD2G). U;])`qx9 ,: mlu@9}{AYE  (s;hDD yH\%8 4i%%FoهDFfJ<3x2CB?A(ѵS w%)?6m5Cj21DI ph&K;cBX3>;+fT7 ^=x oZD~v*g6"rr&)ED ]GYU4uF%Qnɴ{MZoh(2KwJ%T2QtedqJ0l @Zy[© tdCҌL蛴(lV՜ݼ!-&pC0)B.i lZ8oGf!e,+0\a)Fl }QiQI=:sip`f YH.L)?{U/K_cѕ-U5M*Yhe`t[,LRº.թS@çUY j9iĄ@K%j)U+ u fϗ9طCH ~c خNi^K_pAG[fi/Duyh͛OvrcS? #rRy|ANƪ3 3ʰֻeXCm{%>dR`̮"'"bz8"2^xk ryhBdԸ_b7Jl] g3V )#y%&j{;pjG?ZW׸_v^ZLf3ap̳$#߬@?nypGD:hl87˸9& dqP#4b,㍈dţAdMs]^fҎDXq(+60\}S|gGlќ( {L3Ce6mjxW yS AZSFE>'^Ld^`~8Ji/T"F]Ó!VVopRXmy0+qΩ )4w^/`:8ǓA~Ju4]Y\+8k[0HR [qu/ӳRsq L(r4hWl9jiGr,~,^2C ƽe}?X#Ɍra$>C', `> K5@O'-ҐJ&r+{MU|e^rSH|H,duosnx*5'UԄM#qeVzJՋQ DZr@NH73ijívݳ^)HxYmWb ]@kSnx-Kʿʁl.uVa00oJP<\`3mk=Z/='~H!YFsvܢ!6(Ht:2ϫ.7%\`SMQtˆ2HJLC30S.L"āU1y5bB.->s^XM@ZV<bd)a G`&{,9SJJ#ǨeUl0YogD#<;w<řPϢ[+x2 xSLIt?'dm]Z+vTWq4,#id̩wۥ#TcFZy'U_Rrw+` 䊶gXڧ%9u:ݘlP0ӺAyˢ_{UBt5kx{z&}#^z "7q6=܋*/vƇB5*xhyZ]ލ4"!͜-K6i%(y`>Z s[Zf[.$7W#+28Y#/>Roڃs(0Ƿ 4%Cc\IuIh#sZRܽ-|r1¿X-T]J7;"[ի~Fٲlz{_R^s8WOKW K_@ժb4$l:I˾ J1R"`BK@]?+"ޠ܋C DdT%hQ6t+C쐥=pЗtC_nKrlޤi`u[ηVP e>\ |}`:dLfekJ c5BfϜG?_{|d[NkO~K'mq&Yk7mq8>b\ORZR$>CIبL5\ ?t+d.yVr,PsLoWng ]l$~ cف:bMfv-?0u_.S@  !Hͣo4:~y9P0#nF:"T2f iz|\YqHIb܉GAojSl\âbT͞ "dz})2qg*6]?g4{[S=Q;L?Y[ SRofXʄevvjN3K`3Lp:@=7P e0y|r&~ZB]sتaU*=ۢ8wٟ= ڈfr99f# Xć-/a)2yw-ac}7s"U;WViӢK$~KH?II*߲d}pTPf3X=6bH +rUwMȏXhA씲!-&B5 HpttW׊ce](YQiycE'WqD9k{ ROu,?ἳwe2]XqBopVݒi&^ %ۻ ϴIt:ZGrٸx2bv-Ǽ(|+P)+!d33䅛zx^(& )~S_) BlJ@xSʼ[DηM]{P%q!aQUFp^J!FOX@/%rdE;%zib{R[9Ƥ1O]w0% )Gf'uYp:-3F :i]9E[jv`ojxnn$d֬bNiFƅ0QbT'y[:Ù1 qQר?ͧiGLDnk^wo>LjIMVsW#NRI|='TAuNR2uvڋm9VճJ˖;bmgъ M|1kle4Z{"hrQn^bQ}p0Zk׽G~~ónMJ#I_//1C_"!pr3 X*^"(j@'9,ډ=T=i[ &s C0*E!"wq\i#K'g7+%+r}]1hRRsX#Dž/n<'IBEvY֌N[*z[]ݣX{jbM'3ܭ-SC#n4ZN:ENs#hCឪinyd<5:>a%c!}b=KhpKG[<\]SǙx ds萂-jmRDV'T|Q&{vKorqb5-t d uBn_5{ٳ5_v)*D*s]To{XJ=V:WfQkYDzt@_O3]QRuLieO1jM-?@ (;f~nxڟ&_ɼUdBOgx(p5PzrF&gO Ou^uZ )ovzHֱu.dxO[۔7P,PX ) *HZ.pZ`*FFM_/U٩ >eۯj)g:ƣmkFuSFhŅA؍hj/:RiyJȦu,*zUd{&?5-N!Nsƥ_."GﲁF%L29 hZë:jCAoH3Q2`RGMbYO Q:ٮ P/qؕώxKWҰ]r//Q"{ߛ;jwn5lRv}: " iCo92-7TXSοޜ/͔ZNJxHiu܈ȂvҘBV 0NŻ]1t }G e1}X,_j_pe\bSͤi rA R Yx}uX.q,pV >蕫k<h}2N9rJt/˭ 4xvhO.B?s ]yߜ$ ]? g(:|fPA2J# BJ̢6nm/E o?MF~BfITN_O5$5Q/>g]:?Yka1? S* tcݱbxF*\IZcDƵtw0%6"}BR\02c͋H>BEM0d8e[bi"Sԥǥڵ aQJ.gbqN9[KX4IoM̥_x*4B4J6WT e9|?H:޶/~B&mUNT+ycVmh1NVg9hdLM E 4CBL!y ͧ88sal9,w[#xoUmsG%n(@YXzY-N~8 # i.Gi 3jTiLJX1(ZY&jKOқ*!U8;I?cRfLDw{Zy( c5&^&w aEUF96L}![?)q-b%h3_A#z_~"ؼ`K2Țp}.)C'u O* "t/(#cܓ ? s@o@ߎpIɪT<Se/kO;>p<ͫF s<x1K-pT=۰51Hg|oKW`u'x¢{'XN:I%m9ꥐ23K}d#,1ZΤʧ0\+SFd-h`7TNj^q딳/xN h QNЗW/sת] y.WQX3i}~Ϸ;FƦ)^,\΄IJܞ/%~v0cKIͧV/^jeZNK#`[! O;f~q"nQNO)x`ӎDzuVӹH`G hڧ--1g~6ȃhnJ[p.u4:<]: f'e3RJ+2 ~hfW-f/V=gZVsҀ^r•>QB3kq2Kidr*uǍB($ۻP)`/Yt>}jSӧ?_V\#9SU+\luN}`T(jYPV}2E,iXwzb==fcwȐ/8lfWfI^W@W*|b8Oe} 85b M/VC'oZABTw=Wh4O䪞Pjq#󿛵%YӋge4{JڒYg xY Q,vu48S 0IB BHuTK K;VF8 Xz^:t9D#`I%mH et6g?ܳY}IBܺ;f8Z, MZ{"sì%RڗR_n !a !"u{_OeޥdėDE CdƯ^E8eԂώDzDA>Y&cgli}6. ǭT`:6 6X!?nG?ipባX%Eˎy]R[ɍ{ X#cxsM#$'3>wrV1>85a>їN' LVo_C4%pQaL"<,)<&bnIϴ8= <3Ab HX8>}m+&@ll-y~UQ)iFY50.4,eȾu[6MG%'oR+b͝sk.W DtHt/4q2'K8O5ߚaL^.8hoVb>䈰Hx^#vu- Xd%Ef{Df1"b EI^:x?D}Y@pc"ef9>GZF\\xR dSkqgsk% i^O+ -0DKO<8shM` K!Ӻ2j)\T'g)i{vxA&zbLyRli+@ k:mOG[fKGdtc98(x4N]%,Q\wyDk/y߫Czsd(&T"2$ x7FEe?3_ Y0iN7-~*72ºڀ{9ebS~;j!K*S%0:"P CBsyڦ_.ǘH 5oUruiE$]yw 7kc>w XhZ736.3犯T j-s,Bw 1B+5[`H|)2PjY[5$#:7#A8wTN-NU6H0Ačf/q'!ʧRl4SlAnf:$UOרGh#ԋC0wDCr 40(gEJ)w`D{u(p`B5妉q7AC 139H<){M;"L7t0r|A"?S U(;mbn41Ɣ&ee E$~c&G[D^ n.MqOExoGHmws|o86$S =-@y#^&vd5r]V&5E?ǤV]UjY>Jb3܍!׀w 改oZUUK-$iykQj㾖I  U?PFIԩ>lRG& GEIQ'k5֠UguE$_c8KLZ3MS$(;S2Hii86= vrʋNv}ItxXYqDδW$M>Îc:Xi8gQ^$Qwg,\.";ˋJ/G.; r*%7q!s70wߙ MC:sڈ iSɱ:\A 92 |{{`WZ0+>Q}$C`p+DFY8`}η4fUvOW~O" L:u.lž.䦮n"Y/nRr7Vρ$rxhIE_Q7ݙhkH]Q=(L"v;C , 7lVۘ(a[FS|>Txe:JӸљ`)y2OM+W3Ti)YggB%?nU{ בtJ?VnRdLLza?(%08BbƬ+\BE&+ `]Xऔ9WN Ū Vg]є|"lBӈ+oڊ~%+bTi%d"w$jfX> %#igG! |Gr0WK3˽ov(נd&~ =dv,~ 15Ow«T@ b\8E% b/V̉wAdi <2{kw%rvAC4693!O5gRn?yJq]#kYߛ"x83␊ǐ5cvyQK0y`>KH[ELQ8Φzt|]$}X{Q}SL шR2*8?iD{ȺM']R.!5CSI 1pЉL7`5ukcSFpw7Ł01\墮KG{7իNP8ό'JJ+5;a9TK&Y%hF I1=q], wmcU+T/>f;2i[Bu׈Ua&j|ndîu\'s{@ai,aXl@axh3{ؐV oYY:(e֤sNyVaT"CHZc؂|ԿeeKI87%tP^μ~ 36KpE% zb⃏u/< ȈܠI K UNXhH+zo ƈ 1fZb ɎRrM 6EP63e( ڱ j! 0M" YΤ] BrnOCZXHu4&12C臠Ue!hE-vs~֕alfK%)1h^!aKQ4n]8(jZM5Qh̥hbJ1C* &p%1n" zI,؆N9JJ\DX74&3CX3E?t߲_֧NCNT9jERv;9ߘ gLBS9 V5br=h:7>46z}t+, {UE;#P~}'`\7d j "3r53[x29^`g94Ml-Qŵ #6_j:tU2o$oUWvGU#B2Fߧ2fg 葒+[CuzC鋟s܅(XF˫b$P`RQ*[uWUwe& @bE81ㆧ=>αvXeL~L3$#aKi̢rȌ(vM:'"1m4_؅P:RM- fpG,?]׶5?TL1tƴY'Y3nǜ's¬BijM+!eo܋XTQIP-gF0QO߱DG[g<4UdX3DۨE/w'%lvRim4{7epA ż3Xw1mUG?,te O:a+՛D]#2E@ri@8G[ϔ׺Jt߭X ט])vo?:R"&T7ZSB{nʀ9Q9l3Ӹŗ8bZEJMuG(?؜#UIYX@n;%cԬ`swӋKHh)CY uM $V đ0쬫N_튫͚qq{>ʄ`h$]+VxG8]}*we-rd]>^llIǼ?oĮ||- }BA<:/LQyx.rIUʹ9{rfa]:'+G^k8PK?>њC1{TGl`i =9T$`v&+?~j]CtHl,;dFeT&1˙AuH l<#^Wl)sAVN"',I-G OyPP߽[%XOqZE+[ <%BB8zP@ضluJStyGmzb/4WD1䐍W \ g2-~AA2(i]P~Uqr2)0@)6b:7` &D~˂& @DN{eEv #- =D>m:Up? .əSL,11Mcc77XrIӢK-jM{kTQәzn]UhE.d?$2ڄUOPM~ƹ ; <v\KV KCuOwkPڪ/YM)*@,y$zIόTK bc}fnQJwkxEDfk{4ѤNpgs~RJ neY!@V! :hy{jT8b %ZZl`u5˥^;2!XoǽnQjfLJCZuFv?,hzV+vcL(#./?iI.tlp+Pf\i o7*@bYptZaGWw? Q8fYNurzpL弶p?oͪ,[@, cw;g NS-B (STn(z (FXF^'v%։8 .&sJMtIgռ.r@o4lO_LNvlfCK-;")˧oCo-_AyL3v#lH\PbuɎ4}ZCj-u| մxa%W©g4@9wO}ݔlcevвd^<$˙?nn6,X1V+ n_Ӳ &gvhAͿhaBj|.n79 yX3T9% ZU@ìW?f37qd`# }o{s\ D (^z%{_TW-^Vِw+eVEaV;ew#y}E‡l|b3¯L4<&̳> {oŪ"\5_pgec6ȥ# NtpqMQo^JbsgeSC3U;Pd2fwި4= 쬉PW):.C!y4V2TaY6T>-%V+1pwJ K6N}T?s_Q.7verr+6f>#Jdg Vت iD g 6 -m.q;Bb[L=hO}-K0MIAnt4ybuރK\S]m0 ;)# &әi,9SF%7S=Z1ZbTLBnѠZfж@3ha1wF%A5̭FA9q$@wsfI(1Y4ٛV %C|g^o/g{BETƵCu'Nj[ jX hbT+R& a6PBAiYdZw . 9DJOW.IB?[fȃ_Okci^cҪ1T2~hmY7r`eߗi&*mN V]iTNUB?O_+ fu.PxY/{$Wj3Kd V'I%#87@; ȕR f Őw$c stK1VЧ730v$h0 &[FЃy"I <$YTqB[-CQ+(XZ8GQiP@\a\J[\J ~wF71o,Dh%!Y۠* ̛p~C:H Ry\ntp_dA4Vbj1?`6Jn85U{! )&2 eT'p;Za ^7LGN;D؉F;:B͚/~kXLxd?_*rf:9"R 5);lIYGD6c.0nݖB Sugu)txBrK`& 8jPt<^YGb֠Sbtw|h<07%G nfѺ6I"sbLmN. W^9<(,ZL_](j%)o7+&[{ %1Xc #{knwIGJ7pQ#WƲ95?CƘ{rMj2kWCb N…c#Ӆ3R#^划~9niKA"wLQ+ z <'f*cd>C;Z$4Q{lɽWx߹0*;RPN0}RAj*4}JM9 @$&r~]-mȵdrSwG]{e[J@IP7֒!Oy$;}R17X̪4\ԇտ~bT Is{) KCի)CO8hyK6־n*d+"+j t%lz8 uKs7ND 7 LYuQqŢ Rb-nx`CdsoE9kӗ0[4_bη 9vqz#bM4˥\'%G.l9Iw}آT&!BRY%^ռ'vE{ZCm|\7,ȁ6Է:fO%iN5 a> g., iMop򼪸p= [m\nD֝\Š%YL*hIƋ)WKR%\Th )2%M'悊vm5NZ5W⵩OrVb: 1U@zs8%'0I}(W +׍@oʠ 417^ʻq܍kIs_=0!pq6ACOF )8h x?9}015x_E SCA0 /E&EXm;^y(8WuLY> 7 wE|U~i,lH J[v9gdɉ~!{lGng'GGi=4@IO2f"?\^ C3ق[8l)ߒDrFHaFԨR񴗆e($\ NL{$^>ȧfԴzāZ@B=\CMU*Mr ]ơի,8̅lܚ28K'i{OP~!Smw!A%EewM}uDnX +gPN+X}biX a0랖<ҊjdwIAWjSaXIKcT5 wwӀ]%((&!߭ćENKڨ6cs~ k ~ 44u)u2Ǿw`˼[-__}C: `"5rJc_pc"EMuZ!`:l_Q%龜 XMG QYLϭڛNAj\&a?@މa&\G?K*c/̻ݿSʒ֏O `VG\, . elDqteYz>{A]-4IVJ$;xg_@俵a_HA~J!$c2:"wN؄8[Bg.pշ֣b"]lq4j &|M핔r7X$%jA?9M{-F<`r yi#.wfgUD,Qó ( Z~1~l?,ngM0,6DWelUsB)q! xpgh &_;H!dOQلDh,jTm<%U9_T^1f9vgô<#||׽q~~C!R#a2wGI կ4ǜ\ܑ&ЧdXbw )\>tAQ̏^^ۛAUϹd& OVvCEw#fvfn ;V q=gh\Ht~aB Uv]zQuyj'I͉g-&ŀPvA#k0iTvݮ/rѿ=1Eӊ?@ |Fz'#Z߱B]fw|v6|T &lrҤtu#:zttv3}-ܓZZrڥf./oi7hcWtYb ԩ'Ԥ6fmw9'҆9A]Q=50vRevc1\4GT^ Ch!;mB#.| 1Ț/b0S P_aCosl"+c=Kĉ0A#s.pV{{z$=T.kX:eV(5:`Y4aL7|{RГ8HTkP<ʂCmÇ{xF kq)_3S; G~oZ*Eik֬VM!T/#үG30Rmqww证Rň.9+WkCP Z[ߗ>0wx"UJVPzҰZu{M )o rDoM> p cWκn m-FskmjUOK6<^፫) α [BX`j s7&(&%}OЋ(tܐh'DQq4Z!kI@?; wVWXqZS|b`xmDcVt(b. wӐPg/7 46D===G)MDtgOUAHAܒ?0KnfU}ḗsjc5#8&F&=Η%Pzv\ai+䤑H&3;Oed{lIYy 9~FܭPosù]YnF߮)5>1 +eؚ/fWT2+B"gl,Ӹ&Wd8NXr$0fC&(fֳ%wўdžf.a.꾸e]0G*iTrVT*ecM^Ϲ=.l‚˯h,EQ}݂9@x mpc(﮲ڥ NS.k"JQƚ|h,)yģLgZ\ßָl+x N+6'HoIV4N8L91كbtF@š'fLw{So5Hi5[[B< vǹ *)>lRVf(ם7y08h]ܪ{MP&G2gҹZWU1k Eh0Rs LQ]8G{ 4LmG++ m"~6Usć㐯Z-gFO!l((!*Co@fMe>n~z 'bk!YX^-HWFOڔFI,*:qQ%жk--kkH6֋yzSX^0Av1y;}}|,jX"z]0!k.)xĘx(2_R u eև9FGH U9.:䡛H3(;ʢ٧nҕխna?FiiɆ05Z;Z T]Ӕ4[!!BGvq@CkQ|Bt\$URD C3([`am:yӴC@L o egm* Vhmn"A:ğd%dч(\0q^)fʋ<9񟧐?<,ڡiXч/1C=qkziF`xyrmnRE9&\ *D*Za+t-txIy IqM5:eh\ ? b$VڋzT(K0~&w,|~(IbVn* 8눤=iLf5[)08T9[*`;G;?ek#~0hNjaR,rGaʫ⎥Ѹ7"v1oN'y14M%_>݄B*_Guemwu=BOa4gz FKڶߊgBnڡIpD{)Go - zp= sG+y erqk>r|NNko4%Ic(~0:%+$sF)eUK\hV;y75Y=v v{€y3?lӒ(j#LdwQP3'7@3 $_ebqxjgX{\EIߞtV~ !:%V35iÅ`[&+&v(#'zhZL52d0p0&W:xH7y8WI|7~aiD+$*]p-E¸O .R^0uYmӠ<:xJg|[jNăIY@l?,ZF8b,i4eNp.|1 jDQUTxRTӈKI]}:&xz Ndmݪ ^i\ˣN4HLV3&҇cƐϢm*gku&ݭ?C(pid5ӗCѤJc2yŒPڥB׋]+:SaiG+;E ?'`B3pu>ôSkb`ℓDBg&!)(pFCvt/YٓlYM^j8*j-]glJ8yHp ՈMI 20Źi2yo\G&O߱Nxؽ:ZͽjZ@u>|qF}%0O2"5 ;TkV!0KVt[Gq;4Sg*q~ҾpkZvDҞlY1 h0\}'!GM,9G-t\`V?ʉW]?;ov" K^lTayh H rzH $Z㚦o(MWi^wqB\2"۲ p^zcDP; HksnNJJK!<+ZN]YqHP` K7tkϽGcgn4^-ӗN7?.f,&;݈$V*mi* *+)b#zL ?-kx^:_J lw*oF+\;5` (%rvDsD~uI*C (g̿F1^hV+yhQMU $ LZg(^H=OQ|}5I2op I)ʀtl*! :9t= lD9NxG?aț{,~@o(L)=E9e Yn̚BdN8q4ݻl-v@yj6+:O6f(5T&-yV`_$NX%tLXkZhw㒕Lť#=-zY? W՟ ]`9;5W~qͶ ݤV5x'C̷7GU.ayk1A TҼU{ܕ,v")2 WL\PB?iSJ@Hu'k;Y.z;K3s%tpӔ"|xs[zHJ<3z#7%;m@;ݖ)_ i)C#GtX.W&B'Nm=- q[)=?܍& SB ߗ@=1ߝwR):UP6lV2·K)tq iªz%{óTԔi'u$ Waڐnb%#uY/$,@x/EX=JM[5F(tl =ث) *9{^1BL!g^pG0؃%9 ,Sz Y2o?_Eѣx}2l\զX`cɤzÈz!:YMvܔ;^! 묀"wO'+im-iY*g?-.-:>kÊCqD,46DB_-u.Io [|[ -/baZ$(媢ի[[LY5-A'{EO5ƤS1g0*e spagߘ|U!@>t y/)MMtHeb\iZ|h(H*"^˹ SjȮXrΨ [)MZWY)gy\Ӄh]Mra\tUz2񾲅jAR&Ⱥ!NY(gŢ@A4b^ucbv֯OHZrt[0h=;p<`Jx'L\0iZ*ln*+Ү@va陶}cŒ5i*+6{ V|$:zW3x1ނ4) MW2tq;EnH+dvYQ)}JUVzT>zK0|ǒe^U+ zOMBWcRGZjD o$IS p8~LlS͉1MLd$۝]0 _hm Ɯ`T;Q8En ^@_:ryȍgG ?k1>ZF>s*,k$&.#䡏sVvw+ .exc F;u|)I O Xl&ۙZZZ#𲃫T-E[<ظ/ѵ""iW(5 U0Ԥ:<{P塷}4+ܤObg~gS[۝h E"-6ϙ ٮH\qYTf3+Sڡ*(f~^:dXoT`ɧToQw)C2#[իaTx\:gQ׻^ y#XW8eN}^91:pae[w oɭ0uMaʷKNq{P/0nYuؒI_孫wc`(qIt#Xؾe{}$G(yW &L%4bOi m2@6oUVΟ`ŷ lObY/5*;D.98_RB78CEOKϫr8;'F/J5PÈCLm@<T#JkTP @x&0nRd2#)XX+"K <Ȉݍė_:]uvv;$wzN-B2̏f00z-t^6}ׯ/1]ZA!Հk;)wHEIǚ>>]R.6zǨ7ẤϖT>"8F~2" [k(]3md'g/j©R7&W/ SYԈM[#}):6H`ڝ|S!M&7ȰX'0N)|0ǃM(ftkx|qb 4H1$?l7yh.~FnFC$^h4cg~SF>XsμpbZBTlڧK-~dLg-Ac[X6BCiһ=.Y[DE]%>,#}KyT%*r,gUjSnd?y^osfUrߟ2`M |NB*s-ң .1t,yONѮDW=C9$&Q<*m2cAi~ad2Zt(ř&W( ^CPad_-BtB:'?44Tnp F”nCE ᕜA*/gڇg>1_6,TN haLBuO:qy \92~rſmY]G7.r_U.M`yVRǧyfXcA>vη&b_~F "1Cp[`eD~*f%DkGrH3R]G &AFe0fQ3 )DqG!s/JK8ҋlH^_$hu󳨑e)H+YG-jJYИg~6xN2lngD"I<>]ƭ-E^D ]-DGasÑS<|{L]徱) T%fO'L8ޛtS)02x8fЏ1CPR%XfLj~Ȁ.̏Jk E!:mcE0 p2Fx`/ǍLPJAzb) -Bh6F{\}8i/ a|Jp+mo(X8+B>vDvöe|IE!lz!~v[jOGG)c($bVK+:X ~t]Xѿ?y)JjmIHrh|]Gz5p7LoV'O>SAdIL3b4=¾Fw)Ů֙6}a{!$sj> R 8jh vG[g#sptw3HrI/Nie?k1TY@&a^]ƳEAvObA?fL(hY<":+o5̺a}ru((ƞhe{uA 2d5|}OMA7 8c_$eI4m'%*ln v0řђl yn3'j48cV «Nz B[_ęE&9m_e-4PFIM96d{GFS8,MKt !+ɕLP4CN"ާ_@fjkdh!L,c<;}x Jӄ$Q)g'x'UwprYՇK<7axH-H9VeixR+替z_|p{CضD="3#\xu5z1a贀F6땶L2UU'%pHM4z'!!3t[d!YWĵ |<Z*VtZl}[B۞K]Tgo˕ajJ|:w> >/X؋iųRg~`f{}܁V+VwHjqܒcf8` MSnEkq@"&2 p*׌QlX*dۢmKhWѺ(;ɲ`2*`, e3fC[gjVp=cit)Rd"#D])Mwܞ?(ؓҨrV%5fÜsj=<0oqrR' )נ|9t giYs"GtZPh:DH[#mӸ_LjQxY; GCg<>r]*9Gx84H*|37,y콕kq2g񿠓ߊ_}ً mգFp HS5rSӒg!ٌ~vY!fʴR#\Rܛ[|Vi_Q]qT1:VZ{tN?qc!= *<uڎ>\gӺBl9򇝩.zuep::guJݎݔx]Ȍ06DMT#g)J|vg|aA]O jS.SYE,CL(V|Ͽ`X^<.Xho޷?~cwIn=6E:3X=`uY̕A1Xmw?vҺj/Kfb+.Z7O,`Lj,C J4)hKMsMKZYzb0 Wu dEXX"^խ@lwf8hD$Y6B$OcXW;!HOHghg P\Q[ h#Net19'8nRKeQ2I΁(|EE'kjU~+Q;F8 RB̖ڬo͇-U BA;3/v9kY .ϰ*1@Ԯ8㖸1Jż /4"(g\%T*+ƈ$qRW8̂ya\_k\9@nJ>H/E!bYׁ1{?>h@"Vq. 9@dlQ׉2r8Avַ 4L,=z,Zܢ3d/P!J.JGvf7T"QR9.‘1j[rkN3@nr۳6BBĚoU/j8\xַ5C\Աf7c2sh5N–^-zzј^ 뭳>ӿO[F-VBAϷg\EWI0\8U.1ȝ[a-1xUP/qBtmB>Fx~| fan!/x7Kac'X⅌6FGTl.L74} LʚKQJbCy$Փ} Hb%}-g>exby"?G/Te$ةC%GY5|1H;DETѪQVl>լjkJsوͫבHXw^hL݉Os2J HkHkla/ 9EGaο2P.{yO싸@,s⹢BW x:rtV 1sڙBեdf AZqB N_J JإCUVp]RPY,^޴3pFݓLQ+Zo͑rT<7ύj `7/lϢAHB& [7?ޠ6$-k={WƖ;HjDSl5 [|ZԖ9l :@6f+89!}4YÂ:Z/JdsCkC\AkLC`8ui~ Pje7wdB?ڑ煔(;6Oh'"0j Ў48::ڎN[k[SƈcOaJAx|-*6HkNJPȭR!JS.\4Q._ݷKF4>m=`Dw;`+۪x,]@dl8#Ļ P@@s: #5HnJbX+xMQ&74<e)r~L@ӂloz9{_)w*&MW g{60Gj}aʞ=%85S'VPΧ}Ђ3sbFsH%'ZG6^vi<߁|޽uB8ї t{I< NL?&I;΢4W.+Ц%%x˰{/lkvW ^S0̓b`ܢAk*0|_EM<F+V6m3}{=>Foi}듕AK@N|;Txjr~*y|aTA@w>4H֖^M+QaKpDbEթ^#"l#L,"ʾD6G3s \m*1 q4qQKꨨU۬PoWF~A1f}3"HmNQ%;'2X# aJ #c `X1^]/" $.3z_8r܌Ql s*K{bᵙN ,dsqLhtHL%LFHhf@Kҩ VREҎ:{8Xa}c& q[HsXqt%9ݟ`Iꋦ'sErO/6STd83OTHRE2ܡ"@2*uYaC2thL!Z\V +/oJ-j|#> {ٜj'6]~wo2|:}¢.ܱd+v<>#*! X#+7 *O7WF6~o3.`ʅu?̬ZZڱŤ5rdn ;b(G  f"ܵ=Er3|rK ;n*@S ]@")?K9:`1TT+.G/PŚvmKfg-whC%#MdjwLX; g:=S#+%$ ~ U)8H!#)-5w% VD}I)z\)@*tKW*'Ej8G뉚BzA"h|ڑ1I)q/KhȎ8fڷzd5dqsRpe &ŤD#utRDz^XLZM#9b6:8oz)Clm}w@9KֺÍL1 =)}HUK9Y˷\&=WnV-gCh$˖kޏx[TiѴ_y1tt+Õ Є%kÖr{uV*:+ S&Y w2TfmڲG5vVΨg2 [[tQٚ!Uq(52yB6+@$'][>| |-0ReXX\-‚CEۧ >2Ғ-̀))7#CX ߲Hx6̫CAԱcsl쟳Hr\ AI@5^ABN,-( R̺7W9۸=73Y1١8<e:bTd)=P./2-7 k_rĢizTb<\4l%VuF -uaRVg q;i3u.#q⠂S6dj"ƿL|ݣe)go$~鰀+F)gf؟Nu jn1{"a뎢434!ȏ`hI/Lego__AaQ|+r$mN,J |ig;`49#j ok2b2&Y2>Z R[1:LE\ 9Aczc;M01#ddR8nPS#@ :%rz=۝"2XK#LحSr?EC.[|0 UljQí48rTJQ].w5ڿ["Nbβ3xӟy""TƏCk(2fiEk4]ZÄ8>&?[I5~ pa‰R/kC _~@?À|<_[c:]Ki#,Ze3n^~:r3ܣtU޺ 'xH';"l2M8"<3n-O߸p)a흾KϕE= ཛྷ]63HڦF?g#S*t5!'?󏻡jnD(\[D!ۃy e 1uGp_i>qZ\m_ҫ6' n X7|?#V25܊7 -?V[ZOT ~J\1p1۩ǰHBR1q , eCjػH*M1Jp+ \CWpP//N?.EXQu~A_L.MKU}zo_f KD(b1=>8K25ehdDTg$.$[&yjoxy{[Էpa=2TX1_YZgtX\(/`У4H3e>徟a4ǑSަ6D`ƸpM1׿K!UsjjKH#I?qi.Ϲ{QK/z^TvS `;%7JO-C0,3$ -ΆUh,j+4̂OH ިE1QYS(Tv7sq@ ljS >-z~ #Vg"C$TR` ʡQyia?J eTΪ5Y}Oep#Ѥᏼ&/5kvVe#X;8b;ܻJLvdlp -3Ja6drg 1pec>T\JzD~_nrVBLY`S` -jdt[noQVJ/y6jKÓ i;̧\A@ߑXKEqp/'^>׷v*W{ p*aiPv@#Ze_bd*+4'׈JdCUm)L F>7٠QY:'VŸR;퀸ⶠƷ |Я[U2dķ7}Y3}cY =m5I|F|<8xFl{9ѧ5ym %HF!*TV;qhB|i8lR(rB?s'z9o_a+&)cs?-)5,qԗdBw%eHP1yzY> 4qj>-I/ (Z>ouDZ NԲpy[(~:NlZnRⒾ"\KE?z9A >}>E7}hgG1"Wp|XrSMi&2_~xWeWef MZFp}w+#tO6+k;AkKJ2\wl'ªmX`\Kr !SMF?8'W0:^i+xy|~54VZjr,heڟJPZ vZ--}ّXVhv6W1.F!S;1Zw չC0튁+|)oo a/ɯWZ!'b`$#UN(l~#'Pċ "ǩ+Y%p=T6ǐ28QGA"ϣA#yW'>V^-?fnr5_q:t-zjrSCDtBx' #nK`a ;"SZu&"J X;D7B<}s19zTxZő`9 | H /[9B%< 7^&kiq £쨾Tc0p|I6?9f~#]01dW!ԏtjSXªn%Zy4j;п9rR^ PORLy"hKxHʹZ «Db'hŅ$wBB* s=tu;Vu5W]:ɞJ {X F2Ǖv+KNe #>A^9z2@g̵UV ;Цb?ۓi^tQڥ nq*p Wl`wgIpIqGv^"b6*ٸX~;v7uT8_8"2¤+#֋ ;d#ykX08951_؏ϐN_B3v ]f06]rɂPΌ`S\5GÍn%8v=%z`|BI׃ǖ!bw\i6sݛSuGl*~c]Q-7 9E }<9ׁ ͦ{#Jܣ>֢gOHh䎰I͏ޏ̂!*̮+>'3_䬡.uP\ȯ._0I]ڜ(R1{{#6q!- !.} p e];ԾzF/E޿:3ۃ71sv??}k^e4vBZ.+!H oI@`[;F q*ӆT88*XqFH(fr[KԆ: A OHar_|? D~ӆ켻kN&??B 4Z.4>HbPm2Ҙ)!V.ҕ )0̘JCzWiezY| xkO&8wkqFBu_ї aU)Yx5alSog .4 S/WT<+kw2M?Jd7Ʃ0G9X˙e`7m\ 2U[|&zHO!# JW݉{fżC`:)<ՐΰK|v/ C10 6aíj32KH(Zbٺo1IF$˂ "Y,neY?:a^TIzt%4(q*[h2_`XyL{gs6E!mKF؏ /RVQA? c=ncܔO|޻YphMKa7axO!Zח1 !=:5cJV቎ެB4Adpc(I/?[0ʫqNAZU\֫solmj~ 4DdfqCbb_;5 ] p6#꡼xDjT*rfk뽍1> v}u%)qck1jV}~@[n{;drR\ dEzitciz@(A.\xK{r]hTwA^ 1&9K`~HTD1a4gu[tmZZdÆ?bdgOC GLW=ar@pɥ" \Doi3n;=h0?43%;n89Uit[)Hژp*c_6O*#$˥JG?=>;q1-m(A=r~'KvaMl:AP;oF*NxJQpT٬xY퍕H$xaG-drQдyu̱z哽z% laIݹsL0gIX6 ɹ c2Rl\ jÉ&Fmfy_ Y˙p?1Tkc gcv?p܌8j:hXC۾]A=6B>cy_&1h:^>8iڒTȳ|}ʹ e HT@9ᔲdiNl&>D Zoqk$ ĞW'Y S #AUQ^p- v K?L_X@Qǜ;-SG 1m%CډĕY5=*Iv%zQ-6!^9R2U8ΈK !AH#z+9QP&+w9?2xAEJYW/W,]@k6oA/)8AJ+>l}FXK\E/7O]6}S|;ՊgNHgp/" zFЯ-F5[RS!bNdfŏ< wo&Wc`4%@S^Ix+qɦsj(Ө;R*}'Q4eQӰ '[nG~);oQUe: 7HŷU8).Or"εZCݬΖb(<~_%FF8ya7) 0eo7hĪaHwIu)iNz˝f Xi:PL:DkGZNg(wc$Z[(\Ssyx|2  qYMS#lդ]'~5%-#ʶ~[p@!R,zŮ^؃@oAj p=dZdD@e'ZmcbزFڥ`Mxx*vu฼敺j̈ps娂[~qo_=UGNzܱUgMI*%JOp v-:we뎩#S@Cee{&&~^ U8QΧmg ǩ^Xm>+".Zw# ˰`fEQgoCZ*vkީӾϓ3KSAc9pEAFB*, 2Tl A A!=e*?1>oyDxҜ, ]>?$gj=d=(#6QB<Ә/_-} ݿ;h0M2R2e?Q ?a_gUϽi)!11*%ypfTK?ZC #ǩ*q̡g3%ĤK^֊., `-ۿ~f_ >`ҀZb]ʩk8!aq҄v3;Lyƿ3|K6Ƶl61^W#__bUbwQp`r~G=\.zU7KvIH-Lz`M>,{D&~fMQ3\,69QERSΚ~pmA=fxcnSd~8Z΍X6nFD8'H@sϺG[гpFdQQ!f81ԍP走Z$Yx\w5K_R仵߄,'Nk2-ZMǂ CSJS7t<q[n&#$]U|LQo<_mN͎Jaʌ=JN7|5fv^鲭^>mg9cbX۞3:`}ϒ}dg/dO =d/~t,M׭7&].E PoFlDȻƪB|fS >%1MGgfQQ;ں8&?_>9qFAkq^J >uXkP7#mL'?NHII]J`EXJ_If֤%B "ѵ܇Q$8z!abc aA5D8MpSQ6o[JTe) !9>]~͉afi,qͶ14ɯ]2'ZF{WN+?4adH WRUYeo"i$j%Zk /TJUCRf=DXy?}'I ¤ғ2CB,(y(gy %efD/YPT:iL }~. 伫oH8,-qdR' o&: T=2~~+U:rPއDڢqՇ=c]L޹?:/\[*Dz z6x\ v%?%[Vi𶋏s4;vC…. #"Ɖ F{hEdv`u-fxJ4g"$qU 54M`<%o>zAxձʖcv-=,F&2j!͙[G)LOO(S+d8C KMZe6F|Rs{Faia,㠪Z.vg% *GIx@s¯ʎ>c̩EZzhJ+mEm/YR k .%Ԝ`azoӠ9N⟬1ʏ!8sN $6j-9vTw1h>>&V6.p]@ u)oXg30/IiFJ1Vs&KyG2YNZY%~ Xq)lch>هpKbdy5Sɶin/3)^ӬFn$pä XNuPE܂D^޺ol0+6E& rdKiߓ.6Ir_Li|Ctċs| SxVG=Ae7lɵdi徛F6SS`Fv %!*J@MmV?=Ācwz |8`.&#rXܩlpx%u,]tw$}0t(~i!6㝆ef*3kFr v*_A=q:61rOt@KZLMqC̐̽tp7I_J*A ɐMZE^O( vb&3vU3r0 &rUV T6iɞCم'}֫$.ujxvH; W3bd WU(aD3-l<坄c:7ĉazHbi٫cSOx~GxFt {k%-JRSvksAV/W.X $NfSo!'TBhC[$thک3_b4FϟҖ&?i~|O%\ $OKT"n3PvjWImO\*џlM 5kKvDz᢮#ؓx<>4P G|Α@FRDTYSaib{f}.3B㢜!隅Lu V&|uO#=*Ƣr -sr@DObM^yYQvzJȾOMj)@klﭷk6 >E`'6a9ˁWg-LE.|nۛ˄IߞlGey7W3K9t"3lgkqK@>GSI{Ù7hY|F-uD{*Cq&6CƏK'MXBb`Dv/Z N6xͶ`o L m.V*fLaD1EŁ;(| 48"qm 5(v]fC!z+PivB:l6Q^ z{)\}k2{m䘦k=pU8['!I?_!&{Z0CH:g_x>}2,ۅR 1+vx#\[=a 9]Ζ'R8mANX{cH3eH$X-Y@~.( " PݢK1=}6؞wQB+Qg29,@fL95]x yJ7[4쟽ut.4F!ܓځ-iHap.ç3EbN~䇦O"竡^y2~r#?Ei?~8v%H[hVŃ+j[:jA&}Pn7{Ns7˝{D/j_@KHV*j1+ ߻#LbdM~%mMt\_JQ#CknE܅aF <' 3` 9W[*l#E_ۓC|5!^?Y݄#ZhUvSx]I@0䟵P_ CwqFp]_g[(1ɑ1Mf`B'ڍ~ -ÉFx\DnW|ؕtMH.w9nzamrՅtjh<\iFk$E /m7j۔U}BZt:/Ig&G-o.E ؘ=tN*i~`*SuW~X sL#nqd0l;DJE#m]-(Ee_$J6D}I4xj)TrRbFU6EvB]PRMEڼڢ[$a~^xryURN(IM/RэGRj&hW,U '"zh#II [40,(My1s{<+sĽ/<DžrӬiT*@@ƒؼ*^4ɍhz}'z%{q$LVoFXz%HP-ȹXd{j]%GLgV n"\Gs{M[*Su67GU!#iob`n `"(*WO uu1; v~S؞_v"9ԾKHF~||ҹR ݻ]u5xfk8"EW ^·' ?i_:;JEEQ'ύDCp;͔Jެ̐M]mdE3⎨d=Bx^ړ=K4Q\Am=[cN':v41|1Y[bvqjsFJUy~lE_xv!qo 3@㑐pl‡N!mAI [EGm{m}`#^|y~6/hhup| 혙'`$obK@mڔyKgd,`}[3nL _?!UPX# f}4ʸxjfJoRO6A1;~-㶌!9N` ]*'vN~HJʹ \$axBR#]T+J ӛ8{ghWASOpo]IbÓ_h 9l3ME3'Y!.DP_]PΗ &q>}l^/\Fz*.V)kzJ>$J? yT$&(ۛ.P"vYtt|i,q*)rO ,*!-HoBʨVvu.$'vx=" gORmoyVru ܣV"ƽr IYZ:XWi4Q)3L46:kd' a* k:wŸ hP} GP, O#He|rI}|.4Ϸޑ4gɴeDJ2C3`ު {6v9|~ki| l4|7OOQ0;kAh#9$B,mS)p-Ly}|lyRPsi|:JͦK$LB-EF,䒿9St{ $JV,3*C v |{yZ5QftHg~%q)򌉪 N9ֲL^JCkD2kX½NeBljeǃ019R YWTLq=N8m?V`/]|erARtO0wOpA&7W{eC ;t|ph{90F0~4>iUVt2H|ے=JSr+ .%eQҿ:"VZ;'F2,;0pWuWI &pX;N#Nhe1TQgu<zlZ+mLh4ܒI㞶mk@fC1 fWWcG9:ԅ23 o8f]aEcsMjA1xZ*9./yE8u0*#Jgx q4gj[ڤ ]/ţ(tAi%.[Cb#]f:yDБzlfܿSuu٣tJjtchYFoZ x̄XSU^aM,bdz`ΕT;ad |fXcrҿʐE q~όs*9dl_A'ڒHd[&EC^)wmn LѬN2mrJG@m%¸ 1o4.Ĕ* >w)nzb՜O5}j{Qurڼ>GTK0hGgo a.4':0xEG0@C;/Ɔ}^8|lw4xfZ I9ZcL$)Y68)nqmM[Р5q@^EiVzy8-fӚƟ+ƈ_m{de'ߌ>k'xNmNCdgoDG$ I>:dK~@…':%jf b_ [GldA!#f+2{ߙ8/9 QHE$ٕxа]lÊ2VGw;f,/J"Xl V708 kR̡*8mD~%2ӣ z|n z3S} ՅlHMyq%ԧ&>M踄bȩ,e_$չg˦K(;KJݵHzf]r!pi!,+5TGJP.) \btg=NNrģQGt@jj{Щ5bmQױU\iw:8AsF8'=z,ue3݈˅&}hskOdA|Υ(@ y&6x­8#ڔ{=fW.ky6h7^G֝sS887Uiº{^[.ЗgEpkO#=DXm/O$GѴj;΀-ƒMK~Tާ>GБҒF/ _Xncaj:e5C(s+ELi@:zQ5cihȱ\Fy6iy?}"u"^wNr[M{kF!bQR3l" YךVeb4"6K>O.1-ns-%PB}ss6\򡐾qi]@x?h+IGfRa҈ N=hmvES ]ߟrmܕ=G$5qGG#קͺ%wսXXaTuir,gCF]䰫(x'$[hl>>ߡ=`v@80İQό*{;w6m?z~:UJX˯ QMq⌝ E˛ `Q&dt%A\<U $׶/aӷRQz;X{XTN>nQ+y.Kܘ[|N2I!FOCgu`@s.nsԐatH7V9$ĿCqfϋqLz :l˃׻$,⿗}iK/"[gRRg %OS[!GxϧjZ &LdeQ]NS'FsJQkg`y`HZK;HQm =Ehs(Lw]rFA6ooNoO ߦ 󉷌2?ұ ,ũ&}S5|tAp-S#:Ӈ!PY")Ƒ E ihp1($4mY4[~:RD9{>EUEN `l6Ek~ < ͑Pw1kb ]\\Ίx>R\4_P>ڊm R'CISiN nt%ah@2wDsc3Je&zcq)mS!c *}#CGfE B{!ш+V~V[N1[oTxjsOP2`3:݀Sc}GFt"o:Lm/ݦd|A7"M mRCSª>k8<Hs=jϋB$nkKIj&sOh10 ?' 6scSB"@#w?I kKb=H ]'Pz 33˧ 0i_foͫoUC T _w \?Stu|=bnV-J i9iָ4i1րN#kR?^]cn/p?Z~Gčrdq=*WH0a"Dԫ'.x0/Cח`1}-ZX kaѡf6'MU@ "DG-!; ZQΐ}Fu 0 W ~w5f 5ړbӈA?DֹYfV8l9m%>!"X|XKf7Ϧ;"yj-fp{L+Xq.Q E0+K̠o eP &\St̚ N}NE8o 5LJ\:'i̕F_M0˹\1e+9R+ő`s>e@{E]pC&7@@|RƼC"d5aY+%i9(͎:fɋcZ<;bFA5*//ΙA+R3â kRgL +ƞnSibai'g={Q\ -ܥWgjKVj%jN/OU^P{*tlH$=pKc%'[|ca Z=O&{g|fewk4 Uڵe,E[$)yy8t,Ғ&S*ߴԼtC`:֫' IG\~3kLIW&8}0XHmI< Wnӆ~=T!;vCN5NmPv$kh\=,U_֖ާe b͜3qz_pa¶&J,A̺iT&z܀ 0~ayo+8H[܁P^rX~;.rKs!ۘmŇPA˄ȰrYmqdN^3'8A?jQ,䖷ZkXfSƄP{v9S4Oƥ_yUWVNjȠ<=PMDV;kL&dM8g`9اb"{Jf&1~w~˒cI2Tu%( ~1=Du&0~b@E,R}[L'I+Jcr6x?B0YԢb٨c`9yX>.a<^b_Ov-&F?0w`x}Q33]! ؈v}IT^%W#Qf Ǭ:N*JM1.O!Aĉc )֓ E6s#ҏ|0i\ $*r{h'0锣"<i{#ȅQ,^veĀP[=v |χ:4$~[\8aMD0.zfGк;qҿ4 49%:tGkI#zN&:M!<`FLILȩ$wi$g<ر郳@E#Y^0HJ".1(w-- 'F]:Af v[oʓݤ/3/Xcx bjdԦ&KYG$9+ ?t(dnS0' zs8aO>zW,U}Y8QB=JP cI<,rt7X9o;aHi5V6WSπv®UFI4% F9_Fݕb}1FI[kb'#KZPn£ nd $&ðY(*.ҍYS;$\~{SqǮ*)>t,JTU7|V|~QQ\nαGmaV+Ȅ@zIo[z!,.?ÿZy ԌDܥ~Ǝm[Ch7uqx`2E4_MSs3J`&r{<%* 7'g?ĩ^XR҆簏S+[EӸWx|=W ų UǮSzcca#o@v"o ovXA e*u:G(.HMxbv"mg9}"S[ZUOt/i\rfq]{_-_X,Ou5dQ},Vec| hsfvWޱ/+0߳,\Rb֐[ 70c6phi; 9vvNeFHu+܉X5r`|zDoFsy)&8DumݭUTJbHu j7K1LeJU&)HXhA$VkR?OHK.ru U N1L&I-l4-dDay ۉZ誴Ci3t2aIFBXbĖU}N"7@llknv4CpHjwNd<̈́r}4EH0$JNJX&kiQ#;c!*_ڊY7nZL> E HF׀N o"= ^$L3[##"\㒕e|q3`ZAN8=rvJ2iJFE% -Cţ(>3l cǬ M9rl| _7;8UYէiy$ͣbF1DE.?(IyzST0m9b@sUb.ֶ\>NeAau.GNsLZ<{J5I ; J@+PLUܬ(Q"(W 䥌F ej*rIHF?1Ɇ;]Ũ9hgSApӠHEI1w7j y[teՊcv]d]-ldegU2 ƇYص%#ć"Ԋ[Uz{NIDžFW,c 4Zf~qHbȪT2y{ϺɛObGgk[̘UK@c]2-(_]N% -Z4x]ݍ0ׇĽXHiRtKNk)M*!.Džv,_Ħla!"ӊeɷu pօ,NeM::'nJk uџf#gxT7N"0}0ݎICV$EW{ϹD`VY@uHV "c0x^m^11J*2-?#ɐ W9π9ȭ1&۾& \;B/8-?_Ķp 9%Xk;Eqd:!5ZD7P3ga[[fdսo_Px.{v6;ۨZ|141~xE:w0vue);.74 g/_?Hf˚IX0r+ş0Gtj `,N[:E%G5ݦH;b0O s@',L2X9]g7d|juc|mҠXID̂s=OxMт `7$ê (\7&x۩#҆Xs.)lBKxSMJqxt7oϰf y0MoAng:Ƒ6&F4|D=, (9ۤǨ_ld&)kbMjc'(NPj|}#BSLr.mNiC%21P]=(UZbl$]9UZ=6255oNYuż_×?x;L _i8,9acw7mr߯fZQ'wmǫn.m3ՠ>i#}\oy~=*5MبjSKOߧ &76!~ғJ4aN_*]a_R!תd#a–'7ը4~&V1l==a ب>X)kҿ?Z\լEC@aNR1ߠgE) MIGfyO; pnaԜ?54\lMyu$i)VQP;Z\"AvP`n1BaPcצn7u;,,DW=>{]\uq~>:XtSgsah(uf3r&ͫl.Ss-2:v/殥u7}~n?lL\J$}Y>cZs('Wm%ʠx:m+ u3ua~$:g9Md~x :5dѳx% =wM#@"r :)N:@RuADN8&K跈?f'f$yN5ϞWmuFO-t+~)^⁀X2>! +t BPuTiV=Ԟ!EP!a:rXK\Y|Gؘ X#2m &[Y \:c԰c'=4|ۘ?3>D7sqד]vJmkq`x"໳5IrPV)aS l `VNi1|lVs!8/r):%eRr>quk\n1#AgJ'Jb ϴya44:9J6:AyU"Ɖ6wxO]H T~TɆM{[3@:x4_çs?Ƣmɜ#c⢑LDmX<|%ó {gмjnd8y|^ 7\{) QVqN1*OϕsLZ%pDa4<A7=Na&p1' ] 7tė) A4z󮜲s iƑb@m͹֜kyz LE6^B8LZ%l[w>s^ A["`a["gC/:ւ Z kpxԄzٌNOHe@5J!JS5CrH#xGDh֥xoB1o ϒUVݣj!'BԞK֋]BΗSuKUC^ W<@zJTR]@x3W?C]-Bo:J9cjie2v| 㩡!6fP?,$FKpU  }uE?280wu["@yMB\}N2OsYHa@^ ŮS6>-=-zVѓtMog:q [;jg57wu5АW^T΃9~}̃= {21}g\kjSĬlOb# L \^Rҍ\*f1nyKx&#$Fm.Dun 毋py7VvvKWW㗢.a7H yf m<6.e es`%ΏZ:ꥏt@+Cm`(0tԿQ WkϞ"%["WEQ^,X#H)f ' }C$˪B P4%Ӯ}~ ^˚(H֜" ҢlJ8cWv/ FY>&թ'S_"5CsŐr}-6 6[Y]:WNi,,>4*㱝b"/O5H/.MȩO/g&RV9/UOnĞ%LNu76Ocv'Tfr/\G yE!2MtQRقډgr@ ,Nqaޱt((U㳥I pTk~5|-h)+!R[B)[wk*F.ȹk4_djtc/5kPMSY #<#,Qmk,wo1Un]γTkLu36`]dP #=7 $X79Ng#: Τ4<_ZW5kƻғwz+ƫ ,'gw'UfA'FCrTgexg4bWFrӅm깐^K/\$odE*Bv4ΰd6']dRLyB`m:pUֈLA2 "ǨkoX~ (oulc>ajrޱPAwf/X_'@iY(?bOQG7ӄ~&`T+$۵g8jWK)yeG{8V QB\rSfȧ-A@'epzw] L:2/z]~2LnnXp~_LƆg% 9aCRPL**~M^+K^h 4;44y*ǾWˇ)SPc^,7ZIt#L`|B uAa{@U)fh$4V0Lc7-$sVy/]oX]B{>Oͮuy@ e+Ӱ{.ww([ϔ|jbeIQԌ`M7dIt #+>$/8 gF<-&%]ȷa?3o୿XB** _r3xNqXïrpWT(ƌlzn \i@n\jo4fyEeCDv}u4To}/h`א^[;_UW_ lXY ^G$WapN˴tl%G ,Ը8@ŕrGMY㧜&s'VɏA_Z( Q Zk,@M;NS"\}Y@BA廈>@cĪ>8ྲu\ZpG1nq.To޻?]"@C'X<<92)kCpxlxUEնɗƷKUg,7K~[s(@8xBA7Ar΢=-W=$QyAI@BJ"f1|rmuXlΝvGnǧTp ~H"=->ro}܂N:)x'm٨OT֖ a:KHhgLg5349)* 7< kt.>=6봄&;V8k4v95Jrهp;A.%}(8L 1l NP*l|%+\D_EZN_D5ZP^)=$]iʤf$^99g eޙ+gD7/DӶ0x' ~>6t#xe* (o<=3Xx3hjc.ol ~1d+RP|ЛLGk;5ĸ5LMLP좓)z+$sx[[3W.-_ã U+_)}.$.(?L/Oc1W@Tvxgl|zٺ? V3L۩Ip6'b?ô@"/ۏ֠hEq5,,5/ W2GRpD{l[ÚRZFeWd?~} [IEV)uĂ|a4jKzz6`rV>-&x{f% T9ymq((JPJpU+M9K-GNA67Rd$YhV` D9=yg&lAx0!Qh5F >),{]3il_> DvTfWT*ѥ!7DOi}B{8 kzk=+~w#[PIGkt&:Tӊt[K  Qre{ YMQP A}N,wB[|Y M4YR\ڷV_I9cnPO $Fx[ëZ (t%0eVOV )T%1< {(f.0- 4Cp\eQjڭC*?bbP˸=J{?8t0MaRI,ހ5u.DוN}PTPDwS<0'G@?P8!D7vz(Yz TaF[R(~eq!MT {a_4Zyh$ꌆdYKya 7prF>(YǕ`wUy_()V7==bvy:bǨQc/^nKh5(-ܿpį(Oc{02W҄U \ceQso޻~aARLf9-5!֫DfcRt1%y,%>L3iJ*r⋩CYqOavt4S5ФsRkK\@o6?St*GJN-91(LOo-t}T r@xLi fO\½&EP1ڔN(f_Xkss_"cF=(La?B'gEq ) gWlC~(w{H9V]#Mg[Ѝ^7ȥ FnJ*%[4o@=r:XCMHl6 fxS{I H|J7bJ Jtɳ-ە0B7V#\l==sGqգ`cZnD;3:MX_:Y!}\D=8+%̢v\kO1tBxNPhFht/FpGK"`w2{oK+#ζWq(FJv  c|=o [T'hsw<\ TkN5jCknOO(N!LJ6Ds Ww\ w;僲oFMD_&r(G2 '9,M";{ DhO @/ds Xynu?< Q`W{d/|^|?ӟ6\I$Ɋ%[Ƙ"oP!.TxF]л;(F'11X0"_tg]aڒq-k1G9^%^S"J;ZK.}tk?r+k)@ MLՙބQ_fP1 +a`-IG^ Ug>dD[W3VI%S1r}jq=C˝%Š2C 4&&U+] L騁:D`P^BGffeJ2Yf4O/jk͊_Xw#/8.E G=tqƻYCI.YCmp:. (t퉮(zmYSIwѭϕg;f>WͣG{O4b늳_Z\YCibځ2c9\:9uĦVfzŷ,\~xu gÂV ᥩIjZ.>V >f󘋪?M| յ%9H oՌLXb98쑨Vu[zY2i&J]pN.ηocH;GJl 9Ldf" y;L VqJ`oM3%Bm=붏DSxU bFr:eD*@\S9zP %`5֊^g3e`2GB 5?{1RsG+,UzS|LE(#J,Nr8i\z[37鯺g6y'.pIYlc?qPM䢭ua7Q}~OECJ,AxSS<@k%K,{MO0L%ޑcÿ{%\"Yn\^\V%zK;]^}S,욚 jBxf&Vu5,sV*4Gص[G= B/3BCp$ # mAWlFQ2iXR :m<*TV)!_N_2V!~mhSy,Qd!Nn`F~ԑΪd|@t\v5&Grц@x^=.z_=oaM19`nBl>ccgnۻ\B] VT՗Xv`8ڗ*lqh'a͹Pa"ַe GEab{eDd* @3K:6z8iS߅Hb#+}:Y=?JQ&lgdrpobvO !s =i WV6W4G0m! ˬ*e?.`X CB1J_:wY70^SIdφ9mj$BHtd0وw'J<^bz;dh\{xzH:: 3DXp^sbpt%㲍~z ԕ=eb߹o1Ԫ)8 Ga\g55f>d5YLh4rq4I`{-N 4a8Hk{OMVPvL N\2x0F(tu3QOD,)P=4njwݭP k[VUÎͫ؄M>7|#_z]9ﳚ7SwV UxIw :W҆sO|,*ZqMB:@' p@փ_Z| O·%u9p-s;G,erF7 &I`DGAHVM&0OL"5("(5%)^ '*rZ(6[SaO|eʶnH^1iW43'C<-2sD6sl%ʮ#z/ DgWHpyZmu<(iLku\\70->a12C@"[ߨ/XqH4FUqrjOt؆^Q992edSpS,&1НIT4 I.Wk#*B.1Ntյ@]H/8E ^LsB+o)ctT+O%a Čcp7eյ4Օ'xUqHfr=_=Bi#~N^lйJj4Gr83!/Qnu഼ !>| E>Kx 1d;ou$1ku =T-#kYC]un 5OG+{栳٪حgb:3 E\ړ߳=stנ dT*8G SF2S}p*I>N~a0)lſwa %FMt#C̞)ex߀iW?~*trė&+)c<9jkvzND}x3:]ОPrkIjGCRy#I` Ib NTBOL +NG$T("x\:dt 9Q̢s]HaoٝON^=D_/ ZQdmtuoQ~mm;6Ef} 77Y Ҿe2pKlܡAHL,I ;ݏ$fRs[r@{PUc2%^"g"^w R" 3͗[9jWJS4X/~HmFS[xZq(꧛eL͒/rkrpAj$٠{=s' ۧnrW P;*05FQj?3:#𸞨&f 7g[MJCY"?#gq P/z>s2Zd.~F\a0k&vʖ Dw(ZMM֜2n=CG{,lcf>/U/XLOxzw _v Ƭ|+D?,VeZj-뚪M[$X<WקgT6:wk(( ,ΦnƝץ2N?wP?#uJR"OcNetl>C8T8hoHn5Ef ]cD]J WayNAuJ:cfs$LG̙qba%eIzͭضYfp؞/ty7i8)KB*xBRga*Z`<Պ?7D{VT3<%IQ#u@un&ЁWt"߻tm_@TI^qAlnu̸p5oJfU?p5JߔqIM#~Z1[e]po|sug:sl&]& P&V ^=Lx %{rڣEx,Xdc{ɞxg9-'Yxp)m/,X[ ⁧z} 6#sm":d 3&GfYNM^ΒNkfdݭ؈`&mٶp $"ˋc70T׻3Lvm& \buZTe\(ke9.;z%W'XZ \M|fTQ/eo @B(^qf}Ns@r'VLUɸ0a=]-SvW"Ov9N/sz+DmJPսWK:A-Fˈ.שZS+;#M .0(ڍbWv`8!VɮSQYO8 HHZ>󞺼&IW:mWaftU~0w\XwG4rJHM'pyBr+Thىh8 Q7:%}4t0 }溾͒m/|z5 Ƴ(fW久7[N9@RƖvY@ >)q?2!+YW.+aiMIdk"ླiwrvhxH Fp#t #Wb>S?Z%|fe+<4_oYP@|S?#^؟Ta@D' E&#U46@kiTF ą#=jD$}H;/oO^h^ƷqDDS,4:bv^D&Z6*!oxTe[̽=}H䘾q.oꝨpAebD|SQdx8pC,=9? l= ; GAxZ@Tj$ M:î=Aл-Z/[f16k{ fR~[[Ǡ=hxW^X'N=ϣ26Oo~^̱Kڑk4J*[lGS3IDFn` O!!j9z #4Ww^P PTdZM"lv mtvLw:C_6wyheh]*ﱓMI$3=$Jj,?s0IJtJ/ۃNJ@QTW7) ƛ;1fRIaQ&+m{ .xqRտB鳁%>XQy SfN :ON#G7, t,;TTg+(4oZJu6 _te\]vMDOk\iH+$d1| +eb}er}s_t$hgʣpK3pC(,JA+:ݳȁ!yEl-63$XSWoM9^N^6v DesaTfZjJp(ܰ\Ezw՗N=HɭV &,91E)a [%&_}zp)pŎ$?7`U7F%1\w;B->2),&8Bhe~gL~V^,Ϣn&pakvĎ:[0a-p&MT '^Me(Ww ]yl݇?H804akᶧcjpe1_Yu·9^ٵ B[/lG- 0  )㡉i?PQJwFsO'`$rK.p͎qݟbT1H)/@Ϋ禠9dBZW ΎldOhqeo4ʇRN EaVPHpfrhnSfUu곔޶GW6ye[p;BHbQcDHLw6D# Qslwie-YɨGzKLJewz%[pCUtcWxO5}wP`7m6`]-O1vZ0cY G332إ$_cXTwwv0ը}&caG>m@5~54ǮJ_&n2ױ9=Qś)?gKګ'T "^d 1;(&cc!ɘQq{g=K3UAHǘ98*^/?V :hX4 D rٛoqe${If) Դ Ι\M}vh8=#''F$]dj eVJнj H ^Km,i{( r +:DSLBZ LENӪ(E!z}@q ^*]= pJ^yC<TQtx'K5I5A ʦg_T\'u_;aS)s`+JElO)@hb;&~Zoim*a ăҾapA$^y͘pE2LH+ti6ڟ?:@Aѵ`{}s,>  4dw.)+N~q9X~^Z4$emJjH=H( `9Hj[wFb5g)8\Q-t?9\žpg..$}ZH\kM ;B5ܖ߄OWq*4DFRbř!\e@({;oާ;D*juFUX(<`JI_1ˣ4Or,} r_XO7u[UZ:W\;k&bjU%硭&EjL9)=c5fqe<Ҥ,rc[=AZj+ 5;yE!!BA4`pҬIU(Qy*,UpГiŨ 6y{x@06&1kdM<+X{m!'5[H L*iA\?ߙsAܓqeѩ_yS<ubkVjbT:;6899ZY/h eS7ybw > ;&T@<(9O8<-:U`C!##rIǑ foТj '5uo)c]wYϢ&i`Q;x -h-HPx$ kՆmA6+9Z˱D$%phzQORf'L;$j \IuG4l| l K?m0D)VqS-$v2<# ^n:K;,:o>2 '2HgB1a6<|śTGs_CMUΜ8~kċM4֯9fm ƌ<>k2>FU45lp*.HHw j3XRQ߄uI+`Y޵uDƥljDpBzU{ CxoEpwtofH _gi\pJSMSUw8"Q}#g1kwGD+E=[@kK9Pc|})0ĉ9,`{/8Azd6=hUZ!g]b !OM&7—-F&钧#e*8R!r8;u@\ULu/ElXFhIBk֕t u^bL*X%"s>7zQ܂>0Q]ԉNR 8:M*j\(CB" V)ȣM|g U rH{].Z_@vCAVr:S=:wcd%tM  }FW2X S34[#TsCJI (aW̖j%tO 8H_J+~:$$Hl.~oܔ?tSY{yFFEiEY1/P? c 5Zo!XGl%F/oPxiyzwr"zW{)祤h3nܒupC3֗G/ιM9 qWŰ.!渆$H PL1"`k ywYU 6heI.e1F_JYe9T?UBR~~3~ F mQ\BF)4䳴[%F3'S<+W'*=-&w kORMх'5 ׷W˓Ad s@mv2A?"v:tysNB';Cw$ 1[M()>r_! l5&rOIbe턱[PPB_㻩F\6Ygy>]P-U)ʒϙR+I{`ӗFШpP~O>4{ '_Wuˢ9J?uRt"¦8?#$Nh|AIJTwݕрbH*y5a q%7XuvXɧ;I+- o)f X12Ý<p{5s.>y}y1Oe4Ƌ)o#C(lT2uts[ҋ$ty+=c~"Cщx7/* oua'ܴ̆: M;6B &R[f/ۡRFW0vf-pm e& aKA-aLs0 f5!%Z)rQHFjԅVAbHyϹvȹ?RtqظZ k,D}VI-ܹCa|prVm :F=s#SPOXhL<>0VJWeriVIk3"!KOiھ%aƄ8Lr Cq}RE!Ĕb@K ?#Y93cQH<3~~TC P3&Y n~D ٱϵ|`fY&Kk^ŏmJ4*?Z8@PD{*hapGAs'=5nH C0 vkN1y_{X'M*Iqۙ4dסvLL,&{XhÆ|GٴκtOj]G:c2^g  &qОa' Ы*kBK濱u\Żò,NC,vq|;j.(7ѸCZox?Vj{@Yf8wbH6Ag#ؾK9|6F2 SzZ<).ٯȷQf SDE[ow3ƥ%t lˇ4\"EqmyDܨϐvfKHBd^ͣ4nvmTR\p`uh@0e}w<0 b.X])q!l94$_lQ22/a_~x6/e\z#賠Z1 Q8)QGqt])1Hwغ>M!P 6a.zp.d;;MK#>*k^RDOx\ -̣HT ^ N}zA.jZ|fEhAM @0WuݍZy\R#\$x5Mn4G;JwCJdf kY\ cw^6k 9z̘+M'Mttq| --@&+j5ՈYoUoNsj *H5ARAF |&Mٝ~̇7aLB >eӈUDf`J] n=&$n+'鹅O H364z =t8A 2'U*l Q}l; .~?8ӼSy~o<@)Q VS8~O47$9Jҗy,ʓ&>?ˠejFޯ K2n _"kUA$V'>eQ)M7lS~/62x{b `3TYQ!S};qkߨ&ho5ۑSĒy=gOLJ͵QXeMa-6ֿ*&8+7-Z4|=#J` Զ,rmN޳T}7#ͣ-܁hS6nz-^( kO p9Rǒ& )Ƃ8j$>86w@J%y;=Q ıQͺt}"̧A3 .9E~-t.tf7Ǻ1 idLm%kTLj7f$C+45=I@70,d?tv[ zV*^uB( ƇVa臚v$aE+א3&ƻWhd"3d'nv00tc?zkƘ 6Nu] W23O5-k^%U>h._%׵9!5|ԯjMY{}^X;1rw+b8/ ^uN3qWAKN&` ԲлԬ|t\*AJS=S4*%C 냠G˻3^ðd*hbv:ֹ'8lʇ:]|+>>MbCr71C*g-U>tVaHyl3KnI}V;J6j&`CY,B։&kKs̥%/<,1F !'oD =~ V x=^S]I}gwXOsM"#n7!P_AE&ٝߵP(17գ)e&ˀ"AxNR:bU~%oq@"IZ7ؘ]P%*IیB *j&}YQӮ9+|'040FnbA0?>vP,,T>E߻̾y}8$$Vi88 ^60>'PCW'o}#\3TVЁaMck mW 3dk"c̕hWh~]l>NUgR#` 4ev)Qc2 =QHCAlB%"W.D4v~!‹w5cA{[kTPR־4 VQ^.հԪq[ʌڈᝂ~ *Z])=? 04dbX:.h6K?\S#PtTlIÅ\_2t RYo9eo  )&$7OT92w%,\D$ ۯUyȾ 4$;qJgR-Aw]//36K;]˒h_V>@s= iQ4^ǝ V-/W6z=zYֵ0|r(8^z<0)%ݛ0F>6 rru}E]g=pT%s4CufЀ> g')mZӶ R ."rИ7fZ=DZ=\yyUݘt`@X>&,f+G<V+5gWtNn*Y'it }:ؾo+ ffAVby'CmCk{ K9+,vq1$W?7|$ߪza@XȖf 㞈,v*dQ5dCB4eK X+"ᱴ82};S$@L\.TR=l4wwtqAݙ$# pJ@I85#rLY4FM*^fMF/H늪KlT^t)ixb9 u|} xV{ZpV6nsC2HZˊ8ޓ>;Xhaܐ4|Pz=;G?_RW,͇O `p 4.kR Ii`G-[+va*nn+;=BF5p+,{xb$ G ?/:>y%)}hFr ǖ?uih mB;;MzmS䷮S=@v1I@|xM n_5 X^ yaj!pZyOx!L;1 J;&m@Wdf}~M9.ke@;SPmH/4w <n |B` (}c": lߑ`4)uF}jMVt:ȅ7>!!( M^\eN]CFxUW)rs8azWڀޡC LC'?'nCѲJ7}䋪-_540QNSAG]>2aI HWqQ\H$WdZXC:>“LHM_FoGP)^c *+oⳳB=.ɐne6 b#ra7s(ԧXu#l<=ٗmf~@  ,=eaVtӟT7<j\VrAo>y`R9,lePҧ@BcP'm#(r&ޑrWOߍu1qzԱXuF]=97|5EA=ĪFaoħ{d0tg) VjZ0r] PQȱ5ls[;{ƍn@V^(R@-q]KM4? L\lWVs`W__rK_.#OBn*2^+' MlQL:oc![cQ%B\X\@ḫ`CtGęf7EuF!s0sG9,;Ӊ-·۽#M0K*NhoiXCcp5[,?ޞ,\Ї(0-CB% 㜲$r<liMP.4N\swG6Aj"Q0NrȊk[ީϢ' BO21-BP2w b PQ0KMY|/|83X=êK,9r<8cw7%'60.90PCqɥoS{ΪKT;dR\I59y|/vSe[i3ѾCcIÝcV[II;T U0; G༆C^%yM;e}m. PJWOO:[`hjF-juMTB쁞pK 52rwE |ÉQ *8F= nC(4Ϸ_mVb",,t47WTԇ&- VrDH'&J)ݮ!{;ouN"ʙ+]5-:=pU7yJWQ\ Ll]//MpXͶu3wƮU0h |L¥]m8*O`3j2Ig@ҍ=A w6zog.&I6V<DOͰcb]h갱dr@#0a_e3!)[)'|O[lZD!%e^S%NR*Lu&2A!f*]۝dผhCM!_Պ9?W1r|#7O}?D,J?̲mewsH( ?R*V/,C0{(44KSDᦞZ3x͕  mX p[7jގpMt7:=4OmyXh5nCdxBƣ+#9FƮu[Fqf!:'3W׾mb,?>90b01F[R~RQodw≌8GB(Ղ{q Zht*_ bx1&-}S_?PY!&mN,EЯdu%,k0I5G\&1~R+nC~5)P4qޘѪZ?`{]䂾xp[o)=4[)^orIeܡ",=3` NJuF2p#IǞel•Ϩ'dc8CjZmp#JguYo:T% "1Kl/!? |CԝHxl5ZT9U{lPeEKͭ9wD _BDu<`%l˧+7wH̳utr;R m2-\8Y"Pa@" ~2Q! ghmOkpJvTupbCh}!֫cTB({w\QɢQ32ׯ+16?XZ!=[T %lT2/w8XaLR%qNhFK 1 ٢A.T;w,[Ny#СwSͲ^'՘m,,{]q=B,03f49FkQa|<vyoݬM}U/q~M6M'W2ױ@k&ؕwԯ8ZI4FoKPʄa2fTn,T}d~ږI]1 )[$OLnx3OHӭ/h5"JGty·㟂H:ls3V]ZOWnd7w W\;p$;owfyPLq,s˳a7>דm9EH{i!?B-b+u,)l{;K̈́S>d?Dy9)7lR.BĊIV܉Q̸x}&qoQ pc'uU lkOFcmJoTwO%WOg-v†Zy }}ZhZwXIОwJ gUqz3ɲ6h#3LӰU͋B5cqJ(:R9Ml=1ful ,Wsh$\A(,h$^!Z7v%I]f[l\&>a yPW]<0VX`QU9>MQ~Ogni+/_w,OfahĎc|ݘDlGg/d&F9/G*;x+/m[Gh&mtϷ$nB f iޥ,۬7,=-|'Exe =2|sLƴɻadԥpN ?8CyfȐ6z"K)(g1 'jᙽ`.oW{'j=-kc~<0tfz~#*0$*-I!F12ъh J +#2M#_ *nu)aJ3F@=Ѿw+E9Dd/XIjxذFEcM@.([KnA9AGJΙ?0_L!r(9{OPZ`bhS'*D4Yxoy f%*-M"mG = ,XݥX15U3J a1{ʆ[CYĥ ի,bhS =J{1@=p|]}{gvF Lz-,ZWn£)`L!j7Є_JA`%͠Y%w¶UzphQnݶjcKy @SN1O Ͽ80u쬿;n#u8pv a~Yp ;6 hRPPyhSGx%bB jP~u u{4_MszxBX_8L6䓁yO*_ y% ,L}R~b~T4 k޴#QQ?w&R/"a#Qʖ?_~S 'N1`J2:1*6FM<ˣ,.e֬K]W2/x506aa_3e5D6E-< "h<|ūV$мƈȡT|? ^i$_47MG5uF?h &cWB"־~|rLGiϫ 67sq^zЖv6ɓfl?>3+=` pUfFpf%ttl-8USiRC.-RsVA]3.!߉T)*|kJ5ܜ)[w;BFZƢ8&9SI:%W:kc(ctxc6kK*DgqjK9`Y>cea J%)=a' ʦs*gev̶m³L3?v`lkv7ZKz%KóCILySATOEi.#BsڮK&ݦƹ[aJ.b"8Oyma%5hȋSQvU<#\y/wU!3bfT&7 FܑV#$`{A@pHJ/ ƟwJ,^ch QF̉WOR0c$9t$=D)U3DoQ[OFN7zӨg].LᕩK&XӭpC >rl8d0V s{LP#s"*ѐ\%h:Ss; 'w7$E[yk|^ܸFs>Fԭ6R c!R8s4e35fe[oϐ;TOڢcXڟ I|zkب;J-. u\iHm{1l.vM]O _(9ٺ ox6G<{gW*(?EQRk *̬/^qkv U>Y;uT},E'h3Y~|~2%REBRSlVe]З"l!R{;'F̊7(peL 4J:}FR}VX A5N bsu҃ hmBh8[rxcQÏhIWuRhiNh^.~@XAՏv2,'Mb>ZSMs%)?G&#edg*Q`qFFdL$}c2 MIWӉe q|T ,*D瞔 kn\m9M7)i$9Ohi=]w E[GlHj7w*Xw^Co-mUai&}ċl^OoR+R,es“1 fO//+I <=ɲƿp\I*7ۚ㔿e&sԂs8R{~o3,ckpzba8K '޴@j3pX+1UεCd 3)͗!u-tC3)m&@5Eګ@o&2\RQq)vU7˶Fno7y~aA#~?Ţh @'N;4AD>4nD]!'0=㊐~YتKٶecH|PUT@ν) B%m t!“qsphЯA Vg{O`GI"ޣ1GJ74'[ӣ!~}氂n;"}q/GNy6 \Vr OQƙ.XcQR%KA^zE|Z9(RT׮!~oC6z\:ɂ4 n vbCfNb'lIvM8-؎/xy$e;-9kGTA¬8^@}ڬy5zT~% }UP]d_>tMjKCNosPΠV^j~'5̸3ycvD?SYTBJ%i;@}&#GNJ`&`r ƥKt'qج 6h}i7r:{1n*} Խk N@F1ӽv ﯭiN*&(Z7:)t <__iFf{ b5 1Ph֭?1WRZ&ߏXRu3/.:ڟg7~*>K_(F-HKtu-R8' }>#K-ӼPȱx=!R0 qIfbׅ-H޾9 50Ў\gg'x,K"@Ƕ v-F)f0c=nVLj#2߹Urup=51Jb9\IfPK/@fR-x.o^&7ͬ2oixˏ,Fթ6 NFWYӱ >hilcLWOGc6}e{e1^ hڌ'zxP<9 Aţg;99X+)smODD%Q,yd.o[ʶ3=lp"\.?5HaF~JqBx9r|p= }A z M'§^x}b 5 پJ6=>z {O'D4$!!+2ڣ[U1TOgHػX1 +oHbT)u=6Qjx;0r=w䄁t t?~z Oy[(*P/9+>䷩8 b mkU3~SNck腿 ڕh:NasVڍncNu? o>i1yNa@m'?OG}9n]rߣ pg|W_DU 2qaLj^O/WXאu07Ⱦ6a"vn6I/CS]Ə@UnӂㅙO~'0"6)9UCN470&u_ 5y䞧FC,e,-fmtRdAX"E~`=Yeˠ6s]3h^V}cw3N8J5 ghrPܨghVAzb2z sKm`Y{w\ŋ DY&R@%`nwѢX-V" -Ϛ.sx cl$Oor:M֙[]6"0T‚rI1/ڨ}/k~3ְEyM0ȗ| W@lʦ@"_H=lh4_^S(QLu5GzNʂ{v3/€=kh?A 2Aox  yjkP&o??DpH*ZQ8Rc:1^ X,:RlĄ! okÃKU߰åXwil*UvR@13;0,bHH]xטm#_6NƼUhbvcYV.Pv9*0K2-oKJ;Yj1I&v}Vs!^'ܯ_&Sқh lZјqKkzŐ[quWL(Q]ᤳzFnyDXG&S/ /O(K<ـ3`c"?=ވm1v7~~F@ߧ{?A.`TnFNCHbQV%8ʌ[N l?mb_\!CZs:C: Uj9IHebP@'p@\ k?LDmm H# "ƥy$LEŰ+hƈAGh.5s侴fs,r9k+ mr6ܢOtylncöCzMC6S[q@ON#4 ]Z<`ǬP[ohH2\`E=7-0Љ튕?k;^;ѕPHAI= bgm>¤hc#Ab:=6nmmV9}-܌&=sb}G&P#"=@uN*"_|vx߇W*eֹ>NK;8[b"HTotSvtZ:ߤ@0`u|3 1{v}0VVNܰx SCE{@\qh(Ns^.^Uռ(N1#n*]+t#w/hVd-6u?V=W t)kU1^0e^qd}YAnD¤-7&G; T!1OlK~wтgg)dʫȉzT4R37Yr@w>x/iP"\gK#:miۼ*sH(FMi9Yir,Om\I Ph2n6Fu!:NH܁.f!4<V>^~B/ɍc/23kN#q>8vJY '}ؔ'g5ҽeYc}{Z9ix٢ `]m8}8`/~-12z(z9ݨBKJu>u%6~p)U7{ӒQ|\7zl.n]tr3ݤgC7)%PF 3=PEWc,c9@rLz !)U!^`@ңssdHޥ[}w RX r*dI؈'6EY9BFz*V&~$bI#!+r`Q\0~b~aqBGbu6D[~G^9de9.;<;ڰ*RH9e=6z] >[-de"VOL}HcZS2RpXSz;8W\2YF<pv0˲0CK(|'?r6k$XXC*ǿwvAQAh5Gp=j `' ?g)1ʋV5~$J6:̚Hd%ȇ`"A6[D푈$(̻͵w6-~o(n62U\F[V/yYV&j̫b9J C1%vt 1r_r6 ,A@⌍=J-yDlRoy`gUٓX}+7Q\`u== z! UD{}eܪzYPb&rm%J-[.CqQ[0DolòǒDW@t>Eӈukqx:"|ADXSfnT9 &|[=}U}-uH3ƙq`nS;YޢcZ"<ā +Up!c Мu(5Ԕ%J0Vw 46p.}ήCgmIM]0?MTz+;h90lKQ3v}3GsI~8Ӟ%wR6OkTajڧxhB5lx A5އa vre~DkDf>efK=>Cz%zGT#!Q*@%eͦFl(Ky8ckAk1xhʫwqrp g?XحV.^`x`Y߲ t3_~ưERhd5iCh&7W{/o30'WRM3:ɯT F'EpqUOx bA/йy[ ׏?g ?}' uk\YH m(̢{anRPɌMVw2N#oEB[G3X6Gv=K7`W3fyW΋ k{ܾ8, ( KbEwDqR< X//l^حj_?PX f\}F{a ?yCqQq2i!7%Y%1ʖb|Px"sDZ%02ngJwVBԓq;}uUW Smװ*y>E><82GHmOg!OM' xd"et#2xmL: y2uR_cFگ*ߢl]_c7=>J K^.Eom%E}Q5>Npz_1F#ps8'QTzs+TLmY0;V5b tê? p %oQiZ J̴؅:x'wB$WeS-7,eZ3=u S:ʪ3I~Mh'ҁ]O2 JR3z3\0!Y}uiJzYEڗ3cR4A`D\]wV4¤/r(^BEfOuV杣>  I j18y,av=o!,8[F[%Г l~Br!Ea?<ܔLIkx.{ݱJYeUZ_1{m`%I4$zlκ?gƟXxي@u?5܇ Kꄯ٣] 5 1gKTTMR! Smoj/ 8YBx|߉huf'C_mҐvxU|(iK2J CS\dv([踑&9).?};P ŢM 7R/J-GIҬ)W5[ HH4hUlԎ$Eˉp]lRst7)^A rĉ5 ttǃJ|Etڪxf|Z66t[$x@m< &9 "9 f!@x_`[P,́!k|44հ.'+pC-]H&aipeeY,W/?ߔfN].tW&RL9&@0fZu zbڽݯ^!GꞺLsCϓP u "~R*8}} >dr=a{_?~=Xg4L 6;*_ 1oy͙= 큺I@\dd RuWeqk ǃ[Z&fetM}[Xwg;ewӟhuJH_j['SLϏ-)1ڿJSMS(4ߒQ9mw|vQC5GS GQ J'(K Yv9:[pD&Hr|  G{q0)p6}~ptʂ'\+U/?'jlzOQ `б>1&icYQmHW ĸw/xZw0XL(u N"pFw۠vv:z!2CƓ,Tr᳹Gra"tL=AŎ,T\vu&˪}^rc$YjF+؅IƩM6)vQCC,ip7E5^G:63K'ȖO]-PE^(?+7ZʋfOBzn]߰ 2a‰[D%]((zn1!żzO)Vx> ϼ ȎLgddok"eJpވ\VdYaio8'1}Ѭ/p5e"fr T_8@8iI +TR~8Qo}>RƼf~bp Ƹ:g-MQep63/"{9nYi)BE͍A)sd.W>$hN,0(z&ާU켐UWf{#1]@~v~v0ļ}lk*4?T\Ŷd:: *&R$8!M1{LwRi PnYU]X mӆ{a:ofT(I79}X( Ad ?L: x}9VH_ZTy|m[SUӋGKqYlr#dHY&QL-& 2 $53;*QʶK4*EG9yY]=s 20+'9ʎ)ՄJ\6# >/QP҆c[-i[)9r18yzA 2߇d'M ŘҐ*[N3jZkw-3-z3щE^7!dzy$%whnjo3,zJrsҳLvRlHJ;}29:o΄JߺK8*=J$SڏzE׾È!cBy7 "Nd(8@+{m:ʏ-,qHGų{% !=0 GfV.~Uz~B9?x٩B[Y\׊A!˧xXR]O{cnaXEB傜O͖: 喤F>^Ǘ 5Z+uaB~IgֶУ> y\7JXU|"Wb 3# RaG> K֋gupީPxB j-!p|tp*!gSkl %-ډ^ީI;=>rgtY̦c5'5- G&obwdwӀ@{tB[J׃5ݒk)pɷԛŏz&=AC43`wUL$.NUdn9N!-t%T%;J Mh!#o5rY PaNqoֱlu ~cZ{3<|o61J{Yy .0$tw ӝg} h&k( " 1@d9^w%;*Eb9Tvru4@@ V4i2<6lφ 95J|)Jmy(iL很 :Rսϕ-u.SuwNKvո;AJX3Nѝ\<π5-Z6X%FBH9cLdo% kd|gw^R y %PHNr;;YPz'zCY"cI}~&iiqҠ֫)82C1>@;AT)i6RY Q8-. CS{ ~tdKo0˟-됻vG+ )sIx4{'UʌP|kU9&okm /ɵb%˙o1@X^VWc[Hyql`oiu[_;ߛ4J 8 ɘ7&UT$a 弚$uÎxE7iFRY}awf)4VԶ#ݩ9vN?87pCNҁr"V3^gsSNsCbg~`WjXڷa odV&${ [lK+0"ѴƙkPDa΄*zT?XSJ8JsmΛE݃sea;$> P| Mz k;>s;x.ȱt惘:sd? ifj4V 哩 0 AQo]eJj Y<'a8@+ *$C-W$Xhid,;wtqۗz!Ʋ܅.o<pԮh⃭o5YRI~]^gs~-bwnI6z]#} #G΄J^g1/-Z㯧={rG>CjiC[cv̳g]TUl(?rԱ?7!]/vN3bGWոoܰv\O-BPEH'm^D$Ѥjjq,i4MԒ\\w'{U86V nߨ#M}@TiȀ80U+2#3.|7(I䲨> fw~wt{bދ&WW̚A!Yq=M4N!xb—: K<(ܳIznKp1iBÍ%^1dLφn[d,A`t%D@OGVToմ]dHk ҴѠ0 QKKѽ_tb'%E4~ʍIRR. } 㑦$k@Hvڊ/`|ǟTpSOK扛&u~MM2}ssΖ ru9j@5,28d AkU#5;(X8pԨ?*w?bkK4QغlI&e7dq3mqI=X\_>E=ޑײeฉhyea>Dcq5/-nDR(`Rm9Ȫl16f ~;Xf"\U0j@>߯eS١!HkE "heðE ~Jiq *dС^Pn}ɩ;<)cV)(:sZ[6<)5,ScQ3$i*@uYpN/2-E6}Qv̈́& hI L \H ʷ9U,U 2ML E6k:זF_g_,z/5t*R ѠSc7h :7N_<8AO(Bpf8O#̷dj{< \B+>ȧ-x#Xh8Tgq71rY@"?l9J(Vh]e>Z1\@.DO_/ 8Z» U.LvA2`=qv&!8rf_.>x-`M/='ABBʥ!(b]eHKwz0jk?ƃ|/(0l7-GJ}d+0cZ^Rԩ 7q c]P7](bovjפ (+cފ`?ǁ1$7Qm?6B;¼T3)|eHͺX{w3admkzcV} .qA6 }A@}Q1 T_(GX&C:X KV8C}~7hՕu~sKٔ-I*>8F iUÓA-x,z݇OH_Po 0V'!V/JPpm>.ϕUyc>v(G0̢mGLD`փ~Vȷ['ȀlNfFH %D:;׺=fgsRKU|Ge=b ) )Kd$< a\rl3l\QvVluK9MET vL @ m4ZAB (BgnS4@ځ>EkNӹlrۇ=k&5 5!̺[4(qqʊfOƀkic}&Bۜ웗"q2q sχi')RN ZdW!19z"]+*ߓuʫUij kJhkPBB,Zm⢠T^B$V̀7H#Vxn=;hVYzӊ H!ھ!XCh 5H8);zhC3)vb'o|恈X EIar n>;MWc$>Lەe c1(iZDȝgUM`w;%:]4 1? GS wAAɖrn8f 3) `ZQ%#Qw_t 9gP1R~Kļ؄ Rß z*xOq6lUk&'9- '`ǔ.:Ox,`eoDgL#b7Af}rͻٷp`ώSAbŏQ 4cs'$W5셿 AXܲ$k GF)Cg:nUO'~"˛FnHX#}.2Iwh?_l-*H[i2ޔl uQmx AJuHyYT铑Ԯ]j|] =FZيmЈ¾`0<}_I"؋t &LǏRq0 SOy\ C}B ryT(W ِ I"Fe%f1yXi k LX8Mbo^$@; Lxh֧r?ހ"x(fxۼS b`b<Ŕh}FC 1L[w}x芤now{%[cTyj5e_X=!;Vc{_vl I1NEr.d"3kl .RQQbm?cg /*72#Nj@rRFI&n&xfջDHz뫿) U]0}US }v.mN@l'V{|7)*E[NGXJ:'`LPsBi<`9SJ|;= ;ۿ>Pg"!}ӎCΨ'%Kc^/hyX1zڮR$}~8~/9NmV"kLKaKƸ]9'7å !k4娂} Eshv>'6E|)Լ\T\. #vϋS!pރ n y-ؘ3X٧ 8kM- pCe#(2"?|P6=#+]N4 [qۄܟӊ9dr],XY!q C.G*_6?{^ Dh5-]w$ǿ=Q0EC%V6E͵-r{g BRt،;I]U=4 cFGanQP=V uh7JoݹGⰃ C>R#}<0Wq67a9: սXFsJ'ڼD W!, YE-Ψf:F͙G}nJzgm(k MASzo%9o27L|`'Q8}ϻY퐇{=G heuh73.w]͝uA&>?R6qûEa'e ʤVzf'Z _D6nw T.GsɹkҤ9G,B @LȀ7_`84gsKAXJdr,/ UIE ͠`~S`*1X٭QcۂJVU^ǟrU`oP5l Q PUډ <,aO׭ (d'T/|5QzkY*233UWb O,[RsHx^pWB!à\ʭUoqmQMyFJpU\dW_(<^\%J'7b8NےXmYB['ec_{9aWFcK3#?R dZu;׈ iO^1)!χ+PhCDo>zLɈ-Yblpȉz$/ ; IꝎ4ZD魯wXĄQ$*Nfצeo/| jnţ/d'[bj yA'} GDd3~[vEݧ E%:]4PZ1o!`˰|EƇU~7ȱ&T mszr"ՋSqP?עٛcO疓M>K,9L3QpZhI>Kwn|՗^}Abi` aG6'SJD[LcݐP厛 ;i_{(Di\\ Fc8[b@a#YVorYT&{6&|I{uffI3A}bT6: mFXt?{Ee*ޓLn{yr>ԶB3 ] ;bp)C_<)iL-<ö'V^J BFP$!1]"❬csUZ_[=.P}]ZXŊ; =5U3,ҿ˷e,* n8|Z#c twR#Bqց03s2qZZ 2ne"glWS lcx98뺿%LAOj G&*Jx4 P7keeaZ*[Ϸ/? #h'oϘa']k—#QFhH hwFrU#B%=n6T\2 XF2@DXA}C|yZո-uwn1!Y\3a؀<=EO5oPWG_)l2^YYAȯw< J /T:3k M̍LN:6E ̙@1ݾ9q>GHZ3LEyP4N 5=&O8ʷ!WxvͶPs/9T)E^z[ m}ҥa$}lf A]3B7D/Tvg`.ó*0Ry+Af@3\@o8iΈbys(ssLJ -0Ψ"FHL.)+f7[F%gѭ[ k4Gɇk^ ؔz}jbď\GHX LyŊqWNo)oN#bnNjyjV&Ms-e1 7\l9-Vq&ׂ-]? U-IԌ(CS$c2ʪeʢ"M9Ht dΪRgKł)3]FF)y[. >7C--8@<ˡF%E{H$,vKYehBz0=Zp9[6T:,X^Ű10ͼ25Yt7o6W, ,c$1X&߭SMgth\A3Us 6wP̘`R%cN98#yn !,[lHr3rBݘŁxbs HOmGéwK4B욺Z5c +PV*ޮ7ǥ8K@$(k9 = y[V% "?>t?oޛٔa7Ҋ ?>14tVx9^[gӝ4#L"}}b߮cL %6{H޺ 0˓{//q SO: KfJ2=p$gpuMnp~# NC;k8g<ʇ3JM<3ygDĒ!S,a|ΩnYЭ2jo #n"lMv|v,3R0լ]菅!=LKWo}ȝ}qp+h] w =@X_52*;<=FRy/i^ ^K`P)Ҽf)eaf-;w8T=p*V-kmL0ƒb=N|x;YdG[Vl$%ãPr/ov jbBn|^.6l5$[oh//w1V$dog.~{箛u,lX?oS;:O&]З]ƸGA~g"-H[k3 !MGn`{ԙKݢA"247in Lhnz8M m)>Ŋ,sUT_r=i͜Wf/]0B1Fߊu:LoV+RAGb+ͻޯ8C2/;ivM@ůėapiuHi9.VG~̸##PW]lZ_o!G;J/mX r=KҌ0J7eԴ_o*{؇@D﷎awH F8m% v0Cyۭ4NUyq iD=zJ=*=DΧvGy4|I#ɩ֤Ʊ ~^Q~uh,/8(&]lV&!a'A:]"hv1Xl0qYO፾gj onI$T i_镏nK!3mf.1\,E*ax.Eɩ}৸h}Lրp2|^}!_E+ pk *kA=,bb!FK@}yc>'ȪV,N?lBf'f敉؜-=S%İ=H^n)˜6PeTޞ2:cMM^.%Fyŷwww ޔonA=|S ݜBF $tA9jY9٦{>UW)֗/bgO{YUT|eA+GTx<.UC*99J19g͔@.0 3uU$xr;u :v1^!KG*x܄ ( /8ej(fpibU|[ԹS:SaKR"\_@ v gU T5k@^֎ _*s> SR`[_|m}cHxܛWKyRy/׍,5gBZۢr~:#&n.c72QOatt`η:cUrriZA'}6 A`xo'?IYVJ.\ɯjG\B (I5OxԴHm1U mMV wt& V'2haxe+ DAϰP(́I)hj 0WiJN=CA3 Q;͈z9gQXXiFAT볡)2u (RhI>zVD5qoLV묮[5gc eEr1Wo:튄 ڜuP1JO\OpJuGFHGl+kr@ 8VT$?fPoA-8Y5u'MAU0%*51!(yjYdfi)CB>|دgId '!HBp,iO_/@ӭbYL`, &qT Hպ<¡őö:s( Z{E'k! cwg:($ * )bo)9au>"yUEԔĈ F3+-֢RYi>bpe{{NF1m81h-+XZ0oړ-]]bC^Ɯ<$A@:q)X3tj/G r>&6M GPQ7E1?Q&ewqNAʪ <$r_6z}:&uϭi>D4ʦJe R I= έ;5 h#+|de< X'44}TQ ~L_5O-fmB! _|^VZcx6&%=]c 4Yñ蔮euriiu_l*rݛK5*-?:J+EdyTV|\\OO VRt䂃R'=Yż =,O8䂗Mt5U%}IQpBM)"+vVɞݡ@Jp;4ۡ L4Ȳ yg5 Apz`W^:պT7\Q`C( S(gK=RfUfedW00KL0F1s94Rq\X``߭+!%dЇʬW j.$P+b#?)Rlm*'^_IrBJBITIuWd 5IUfG&´5:oeO e78źАކja ޅL9v?̜{l8 9Sx9tuh;%yyޖߗ@&JEak[e$r\OW'5Bu{~Rֻ%Ӈ^4-pJ:C8z5}FR.rRY !qhu"/#}L GA'pS =9FD,5ԚYnИ3鄈.tLhX5ׄ:A=IWseHą<vDD~<*]ea]< 4͢:[=-q酏%a(,؄X +>茡`͋`k񆷙 "#/xQNq A7!CL"]p3L2pЩe^ еEak}(Qλ,ZG$:K% U,Zs)O 4[>4tpa&xW3lWm;lqdy@pWU [ }Wd*;\rDԌK\kИ [.hJ٢f(Ca&wx9J2]ivq)C L!Kqhb"O4mw3R/)UdfuSQUi/ܭUzLI iQzpmpWYX&j>]De-ey0Y}&0gydSpc/;ս,CnEⱟ,sFT\Z0Jȣ)W+kx_BCB&K Ջ u|#Gn0фrt1ɿ[BLtE[գ1|n^BSfI03/6vىYƒ6y2"TAnz!{+'&Й pp} fūss>=-Fa*K0hRlhxXQ(2/a y8O5ԣ7wl }kچ18;Ua6/Y)'@FN q Zi|^_ #{ʘMI=7fiR4) %ǹ]6Trhh7)> ;8[^Zw¬ߵd(n]l6r{CޯGk@y|]KDyNc M1DI>IJaǠt\!ӏ-//S4'zg6{ ufR=?6fB'g/8Xl0L}8M`dFSO0sH:jDh[vϾ2A> [;%χȺq N[Nj<G6Vc$a}~Bo\f5/xoʅEo%K:/x{kjMos\Pugo+\F&иLJ` K9ڬ Nd@W7x0UhȮ]_0ۘTf%<ַvh`[^l|,O %fFR8%[PRLڎϠ#CZjUzQ[{*j|E}T%z c0eG% \1LXŲ/3D-A=)?P/x椄^Ш|8;%H+tPJ7=ͮO%/o `[3,Sى-[hNW 0OK*tlE6ڦHdQX;YF5 PRpJNtWٱٗ,X5/dMyّI` 3k"&h!ʂM칽Ҕ#Er|@ N&`F kk+rda$*F;!%~ 0-lZRD CQ^ h#ف`_YyL([:}Y DT Z ̧sW =~< Gzijo8u '{Ђ5I'=4a7I򞳛SxC˵>8w՝7!|֫ R:-rA_ruQFLh!u5ID3[4SR`b!uK1f Zh5:DޚXbcךQ*N8. :,C*+hi`?80RgFZ@/9 ,XHO]]ȋk{ns6S'8l8LցainÓ0i3zտL0^e&%Ny8Q$= T9Z[aQWE=/zQ &ބkwEhd: K\pC{]!xMlq7y<ɔ `gB˜vrgtZi sH YGZ-O5GKu[ J1|Y57FEpi$M UPnɹ \羋rܪK¤n*I2"r%wᢿ[-J&#JTРYݼuF«\Tk˷*"-:EMJ".7Ȯ(=}ۅJ%)ϭ N%Í]7O=129㕭/KcCG)[x9`_zװpc N_8o] 菌i8#6k&Y80jaGZ`w2d`0F}My;hفl|;-rcC &͕=0}K2US?""}7g}y2#;V\r~u%྿fza3zx*ZY-(rf9vJ [N`hSOfOUeM!:'WrMB᛻WckYwMNmp.("\s6"=T([Ti%8}V+_ @7 dXy_8y*toXB"BsCg"I$dM/}>7o#T FsW;@hsDDlFj30u KnT&!D!+^_}zQ(,|>T}WJ*s. |laAHR> SHW\J)I'n@ڴ R۔*V/W'x%0rN>`| +IHP u-I~nEIL,!ّ5{E+J)L80H~0SO86׵rd2qB!PN`8F#OiH:i5la7Ny+#Tm!'ċ f^GGJ+i1]H".X4}OƧ6uPyܢvtڋ;Y3}*4nP0)N/dDaF}P_r Q$1S:9a|7dmH \;/nk(i|SFEt*z7`YފpIw?}HѨ$x'Z&Gŷ͈᠁$z(9${D j3#|Y[(tWu%;O!HIK=QȻjsZ˜O&j#@CXusNⷐl3]֛'D3-:C]' UͥRO58ZulkY i%6_b%z/̨MB࿏ţo($6EӒ5:rr\}_C3S8/ BN?YI˂nR?}y$㍩1>?"kpKk'IjTÏGV3UL(Yf=]ǚ.r^>p9 c#ά߹mO屻cC\j٬`{AG>ĵn&YgSnrP~aHLk( WvK̭Ή]*{e`vμ 00L숄sԅWvVX[9QMj;E+-,=A(\-m j%{Uou-<cz;`JO &\@_"4g?udvh7) ?tƲBC2SƝ{b$_fP_z/A*J£H ]4Oėȋu;]!?TV6΢Gi9E|҈ եqC8鏽sҞ5iuH%v&۹׉|ѹ]4:n] ^+d% sҮ kd]\8X&Lݐj^326KLNP?#R^5ԟw^WH^ Nv%àn~DEKANSK!yng ,<Ժs~1!=Gc|Hn:nQ$a3VFȯmYc6!e: I_Xr#,4nt2z"3lolX 0Xi1kCRqәTjPRɄ \mtf Uqp&-$ɋy=ͱl<ȃ=Bcϓ~F;>BW3zK[l 3e4`;#2iha&Ht3w(Pf,y#hB\sH{0rQ|i^ }t'X"˗S5>jt.byR,s4dHqZ+C&ki\`3lͅ$[utUټ6ZIVC4;l=ttTzΛ۽+y6]G]yKzl!ڛE?q[P¡jgA:=ARPyh5/ 7ٕߋVOjl{YgB23z,Ȕ@T}OhP隿i/)8akʟє$b%yPy$l{xgUD.i$ha "忘4(WD7~?R/v^g"ڿzy{Ш\t|Ȟ8xYZgʟp<%/ 4 }0 .{v.$0!jY3ipdUnýȜ&-FDWn+=O989PVqlIRS 0)Qvh1_SjǕd׳NGAޡ)[^k Մ+tPcd֯/ _'ϕUe]lY8{t WŨH 'Icޜpv'QW4 ez:0ÈCI7&! 6Eo‚#IkDGĹ"(~JO$N%؈g.; -Q!֨"յ<ooJNAw6Ù\Ʋ'+U۟٘=={fQdVOFu>ExD66M*V- QTQ}c:?)#A3wεkiO%`}2fsK3&f*13/?l!rjU<f4iT" c뤑 a=/m-덅L g}\zg2bwGZ_IJgٱbdi},&')rG6zN+wll9cLAfpx\\Xh/[Wi:0"HkcBN&ךr~@󬥝qlj@Ju'ee@/18G |o5ͲDW72]gMo<V.L\AEMx-H[õ}|{bjnlUE?]ӊk;oj!$W({v~5:w[gx{8$y3^i̦c@q$̙ rF.:6+n >r.1~ѕ3D/_3[ ]=#ۦfL^$7Bk֛{ ՖI.gp^Ie|'Rs_nA\- hݵպ @4œO|$W91t{=0*5FRj%oG~Q8O9} eTֶ7+Oö,h̽;<ӹ!wH5OZ*i,(ۂ 2xskKi%,`PVnJk@D{[)]9t-4a'~ s|#*7HB ĭIυ_Dd+%¨<uq LLBLoOҖ^J3jĖAgo<}2HT:J7C!ikk`f,bqسBчye{GTUb&rÂ:_-INmfO2)'׉WhV5i,!d_A$ް$t ٌJ6 L18 NО? Lm 1/C2OUh^6pxA{+@>3eW@WN壊Rۜ;3QW)h}'^bz͒lX cM|.OR=C߾xfvT;čqlOmS9qԶ꤮XDF>Aެzg<xQ=4%mg`ȓ#e^XĽmB|2Z8Ѫ>o; \=md뮩OȜSE9% 3<̹Hq:A$ !p½U9_FO4Rp|H]< ȡ\om% w=2-Y{Ov'oeEe, 4@+#(+H5wRM|ƃ10%KJiD)\=ۨ:kq,ҝNa#p bw)F,N smnjTm-1( `Stq\@c*A rg.,+^ zb4x 0:qq r$32n1޼V9lVHMF#_ɵ9tXSCkٷA%nҕA7{~l \JBǞ%$I錉ſ"2]m@frA~1 ltjѓ],-0̏"9e)p5?E2ܶE՞CzC]oy~SAݭ"F)WY C(怑Xp|Jު1GUNyM ~dbO3^]v! g~ 9L"t%t*`p e e Zv![XbrI떆*J' (. sL;aaQWAX\krJk=fxe7_P ,ǿ-!p.mXGH(3ZDρ *Rж*}2ZkT)D0^q!]nchT$p8fS:>@ԨsԤt;QQp;z%|#52zHʞK t2)~A6QU) ^[ HS8FIo8yy#Ҫx44BH1WVMh|rAǰՒf^},ST'i6`oa2XnA/[ThY:9T.2VשsUEgg'vYЙܯD.]ҔMK;qs>f G 4J0G-3 ۪X]E -T_G|g1ؓGv],#^²m jJdQ)fRqߚ&(0@9Dou@RBFJ3ꝝCrF|O /=>ƉRdRQc })֣cCXt6^+ld Ap,mX1 ƱS7{< Ci7}0׹V1>')tOѦ=VA@%f=%Fv"3Co[D5| \6Q\I(^oɝZ% ը-dy~2N5R 0GDcDOp$~iL]=|Sgy.&5k(K>N#PUNWw{p9M[yKӑqWT s}@d};^ۗpXY&{? )EtلkZTqah|c$BK29"qll4 ͂?;ڈ?|DL٤9sv戼5})*Bg(1""P:^x޴]d`NhBɾ\nS?PepI1l 178!;),ˋ2C%_Q*H&KN+ibKaBVܿ VO(8a#g/X6,i.h3_ȯya U`}GwVڀ7 F^I)9)ˠ{sR "Uj}\cxujs_5[}z9 sRA%ٵ2QW94Je 2] HSx<EE 7Dg #Ndx4zRNǙU -J@ 8V;u pt̒XsTGe{ؘw[(lrбWЍ̞,6O`߶֩Pq9)zى,`b`Nk\- ֞PGS{,~S 켯KmB[.C v:@[gsұMJܣg1 Bei:+,yXSx7*&+'wXz;-{uI!@1wN Yar/|zpVG-bQALxz#+s &CzƮC;AW`SkCvR0ܶ`93ܤ U9|}.]8n.a{K71STw36[V"jc7 l4Zn$JH祠H52}/R\FR.2M9($B]n]"9(C4xo௙Y@KT xJe翲1@ ʈzF ;F+qXt4hq?؊,ZPCA?L3!]]Jeŷ^ 0#ߨ%L"=q\ՏƱFftnDL]/޵òꀑ9ejٸgwdbß x":?0?=/g@a/nfx)֎G%W[Ƕ3+Ddm:o/Z| N'8/{2;MjyЃ|էhUH\=D-fSvRheх0ONC4yJ&lBߊ"/;БVib~U ;Q Kb92@aWJKa mCq±FEͰYI=?tW! E0;P!z3ES8l՝=Uy.M-i"rcm +`~b7Xd( ˉ0!8wD alxVjƱU EWoNsr2hCS8Ӎ>kk@ d{WٰW6a.3pƝ#+}4RlKb&OD7Ь̵Ѳan!V僴qXd@J:]1} 5A%R\9q)]1ivxDh4"3Y1S̕aZ=;\9/* v.գѭ0jqPia0U7^i)A.TYZ`enx|+M4ϕȦ69:uO(ޘ8JOuII^ B KdV3_S__ c:780*ގf*Ԣp3&'"$)G_z!>rbcSd$pw\v&kh.IPo&Xpk~u\(1!s :5.? OJɚ%>t'ؿ2I(7̸p Kt8UUuH%z{շlngW 432N #(;$~&L .W M)v'~=YRm`4NrXHr]-8wTǝO&:fJW2LPS_[K@+;Q{{6rдP?n F%qx3d"LGb42Nƣ6DH(\bbku/57k'SMg2F:c. /5_I9]d{JU1>969\DuVG4S@w?xsI%9DɟPpYO&07@E ~Q#Yנ+6xM(`_]uPg|wo] ;Y99]%Q$䯚Lt+Nz*r1Rq F89sM4P9;+s$d4@$˗ȓ~#&S];m8#Pbk>|D_W ڔ.|}(5A1YH_,@f̣fj߰5qHKhif&*(cX#=ߜJ9 =A)yx*/`%Ue/9ja\iqw*RJGcb4kAs?G*Aݲ]<5=.Yby0n:hQLS&PcXA^ c^_K~OxjI9N?H5R}X[Yԇ=Q)vt(U/B> t#kV8CUꆅ.h"j.tC0a±!(Qrqc ⍎2yot[d㽳,׬ |uS @ D([`SU' !X1D q"2-nԞM3XP粼hLF< m;5c~jͲ0?KQoSDLp ]DJ<7F6ysnWr@9OK ~(/ ѽwngTȿc X|#o"kI)gOv[֚ ѷQ'ˈ=\@iC.'=YYH˜O?-8cϓ`DŽ~45|~_^6DiVD5!{|x,v^D7сjqU@W2z[]'nCCaSl7+qVe'FzCSdgaw;L~aIV$I7oXlv!e:إYt4PIWDSt4ϯI_P/7TpUŐ:kbC8P@@/ۉD5eβzofY.f %,}vԵJQKWh kaw#+ǏS>XYԽf/FCP{YdINɠ.':ulejׄ۟%GG[0HwNnQYMȔJ0Fe!zͣbjFE^8 3wӛ.MBpL4e<-NuN5 ),<'5,_w-49dHkn\A!e Cтyk1P ΙlEm\V~ %6wN]4XtcvwI+F@^ 5[xE_$:OZF,AԊŐ L4>~Y"QPF_V;A o\HS5X_k3Ƃ^է=tia^ΦTU]B ڭ>$ Ow2%բǏ,[8A_<2G뮷); d}YFS ݕn&U8.c-sC`H;}5O%"۴6(g4ُj O.zH%ΡʭSФ:2$%4}k`#Bh0+:^>e媬;POh}xVpIݢf6QL- W535VMxQ٫t[ RZxF+3 O M5+ح>}C oԄ3U!® 9\4ݮi-;A>VjQ~j"V6t,KR݅? N`McoX3}Go Xm8ӊ`uƕm_cQW_eDx\5#vV"KQ[ϲnV0,";Hv ( 8Rk/B/c~@Y}bʹ{xiˮRsm6q)i)C8x@$h#^H?4Y\ʼn9 S>w}wSFh|D6z&˺n涻aB!6zw9>Y=HHO- Nޏq-A`z0Ty<`Ԏq#%onl\eUp4#i ۹tƅXG.2̃C,f՟iu=3B3aǔM0Хg4t_ƒ@ =Ȣ GLE!XRjS (|@\Idgf~jxջf#14ƽmmۦ![M_ nKL: QBW-8ㆀI@e5~K5c-pVUZ Tb?Af_# ҥۄăVH&t8x^vJ9 ^1k6] i>G})e$R/ "K4d7 3C ayX?پ.ILY[:Nkz+(s Q $$Ygp.$P6?^]#x˷YX@ȷWLQ=~T @`.9㫎YVbJyLH{~ɋ#2G&65) 3ȈrBDk@j,{~|i]*ث4^2 ѕ'/n^Q7Yx YwD7WeGgÝJ~KIWmu~m~fĥ3HTD !CΓ2LWOo51PR{"fj32h8L/=/MA t- p0e։eJd{L]8HFJ'uRVoоQ5SC2vy;ۛ<ӈ5t0K% i:,Ԕe.1`Hx#y(DkqX$lاwxz(.2'2.WF#ܬյkMâTG,˛ [ ?b3dڃ>[ʋ_br}Q5Vg^.To`>+"{:N}<9VDA>6Wk-byzw di |/X In2UDt#[4 *l̬p6fZ⿵&EDB 0fHO%pzx!Vn}@.#xc" ĘzRTЀR~8P4T3D,Q@"E둊D汴ʏ+#P{Q_ / _*D-ezWÒ1B}8XY'cwh+ӘNtOvؒ$f.6VwMQ t|N0OF~p{ɦ __u Zò7YtNÍKC~ R/ivޝ)ҠSV/. pH|ʥLOC#ԙ \caKvJB2ky̵֗ _wt7<6% FOˆo&G R^dd;uSZBQX!(Df3P_5h(6cU@&}9>PH$M^HWmۙi #p'_[v ci hxf>`*KY+M jz@Ⱥh{7B?KN1d*i=a?k]*x$5 ei ۃ-tUsh@\+ݰS"6>Њ!xUBq!O}<UH&aUoE`X1MH1b|%xI=W" R4wPr$DeҸߖw[@;rҕqCx+yo&L,*YMd`;;49Ა|5ٚT_SAezjQɆ|?T@_$6)N28kId2}OLiN~!DtjZ|k r,!zI~g=%(b؇7Խ>@,gtS%#0,9:U$5 0b3"7ڊ,SXݕpkYn|6^Ni3j"EMX"j& m#q^6TPctܝZXY<[bJݬ#}SI!4I%a;' U 樉D:ibݵ&A"(6B/'?2jU%>3D(J͇!Gc~]胂LStMRJ7L3U.$#3خ71@**< <6o"y. ":nc_ꞝIxt#TU(@ar[_O'wϜUmoKX /~Wx#v38~=~^^ʬ;6-;Z1;y~Q㰿AXXFk\B*;w Y~>K+opnkWI3+tm*IePR0kXϴ)f&Q! A׊PfyXiAflТ6h)$r:Ve˰kjdf$Xg^㳭cȷ=G 'Dt=^vXZv 9ZJG|/N=wGǗ']G"ǩ/?OrqAqo Ig1t%[ڥn0qvypG:8d.(@|'F@ Mp8mejwU*gڽMH HyS>!܅4@LNyw\Zv{O%LY<8UQ`YI犚Q.Z9> z3a[0ADTKmHMB2_1Pr>nM΋Ġ!#piQ Wfjz(#_FURnꥥp=Z٣ѷ-oazctA]d~\!h yfTEC##~O>NBy =ѸnA/,8E1m4Z9kdI3+>Z6BFB ʡ֒1˴E{S.aćw>@E޲glNNr(Co+~ #E5܋AI}PuQ*lL,p/DiC%ƙ9 *_XZAbT>߯Ѣ:faSi ,k_OY%~CR1հ#|!|ս>*}K,Yïku4~9rPP8yY/4ٰQ yȕmlaճ80(&)&#|m3 7D;E>K&zAFJ C$΂~^N<ե%G=3 _G?[by ro}\c,uczٜv2&V_tB!,m)W(%?!RE"ZClI Q;4WƲ갮ӣI)bS]\mU ܠ3Q4lk.#+QP[+; RdIZ~f!tj5ـH&Mga>x%ҪhHyGH&ӂ@Gd[Fa&I`u{FD)^Dv yso4vJbQ]=`Sw Ԉ⥫"f0C@RW Š {*p@'Q$ R F-G RuiE7t޻HڼڶL<F|s(?9{]SM"QQ45XΟȋ`er+ˀbfb'pgz~YώJ[9wcV,ƶ#HClgHs4&zq9@<DyU--D w e~]CgdI5[RBþu;+"`oKt)R% 2;O`VV93i@8'Nq +Qu)5ʲS>KWN񀃉>) cOcipͅ.J .|} 2~HvQPbE0wc?:Nf`mABz"1M53f]Ӣ=nPDbtfVI&C[aG UK /Rڌ!G?Áq!L7@hVx?Ɣ#8ʝӪ^\[7e;ވ+P~?PI/Ѝ$b\(b\j4RW[*6+ȑG(M qA!5}g?/Nd͊hm|HV؆Y~ HEgZL˅Ϟ3R=]BCB[_'(@;] e 5͠Hb9KXL)yiƒ¨opU'?d `1'?pAn^f!xwX673ihW.zX+ raN8 PB r|C,_q椻h+wB[M>GFHHWW!֢ǽ`A Efn G F>KLa* jzޠ:Iuibh'O: {Pr ԟX=Dh8I_!MLR!2IOa} Z*ߛ~qޡW ,-uZ3E _e,x/q۫+ÌqRW,/1l>[v=6tI'u%49A厁~+RyÙE ko`M D$o(0-$:9HGrG?Lvk^s>#I<W֓9Ci$\<*7I #jD8),3(GreL," &@ kV~Y&ؤM[@DQse|Sca]([l,zXN+ ѱIEτmTuA&ӓ{g)ux_Y;1jŚXy/|;[Xsvrw]n&뉫q''p^r0'Uew@~ Ɠ"g?Qs`Gj%e|@g2<񬘡sV*^(s7sV}F|gUyMXilC)YlG 1F3Ы!VeIʿc+ӧ̍A| #qЗם#lӣ*zrlGXVe*|Dxh:"}7ST*0=4KΝ/Q!BK!2dZ_exⶦ>|a97DDDQ;*'5pLH=68׼Ek%'){ks9C ,'3Lwe3h/<%+ ?}t4lQ-&; !Kzb37^Roo9VW fTSF#Č&9q)&Z,T=,˞_6Ѽd ^煂S;ɑF 6HZ'H<=Pns@oL.Rw ]Y%!{\8[i~h 9&=63Q28ϷR {q-4,@AAVjnj@ Xݿ+:vbBx7A&>yJ_P>t+lj&FFcw]ٰ onk;F28NӕuW>#\tn~~ w ӳ'_rԙQ@B|LtE2`~Ji+r|84bQ1Tk*3dM^2gv ^Taׇz(u[PR߮);}DZi$S;yF:MœmyOu*R!}邋TS:Ut5{8ކmCp6腻ƛ;@{ys/<9]V#Y*58HuIӈ< Pmk"Ul3ُ\#dODBxNr12"UD<R.a18Ϥbm5@3QhWgujiX @‚8sm&;t՛n vA$y̓ u%[Nt>r9Ut("e(gӧ[z~߃'SӑMv!<ߗHS%4!V--ܸfro`D>^^&6PE`8z+E¯i̹Rfn`%3%i/ irp? *5;—vO;׼s bW H۱A`vyH2)ůXReN~ R>CJ>l(WFΰ$eE%4a #yؒO85Ru #;mxB q@PL `>ژhtW>a{+mky:21DDis}(NQvm]/B)M}DWFAſ'[; ,A^:2XyusYhAs x|W-ٿ w> ]]y+Nі[ӄTO<'f#8&nco)IUdW8C{ +"YaTw <^ZFU*@5:HtCM2 p 5zpa/z8^T$wa q;OֲDү뮨 ƔL̯ aIتzsΝVt'hm" P Q~^U{ߙ^!˙m=VY񜟑ULu/c-hU"/7|n4֛w!'ZX ̃>~b^snNSP@|'ai@V]2/A]%2-iKsӿBvI&SܗrmXP+F$b8[[c`jS[:,}Gڻe~1޴)+[c|KzocYEל\b9-o~4|y 2"0:<D$8ɚ\53 nG^\mV9_0QGE^sSëV|% >D3ޛ/x{#; Y={JEKH \P.TuծZ}lOmnfB2i-Yl&y֣5uK]? ÏeK# ڠϥ PĀh.3e B2-ݷH_Rhĸq׻7Hy9~Ɋ(}Zȣ,ᷡ=H>9)kAVU?J0GFYNBDfƱ9WܔT*^MYˢ̇Wq]X:[,:[S6-]˴-TUv`㰞 k_# ms) c}# 'χNGa~a[biUṄ/zrkoD>ߍ:Ԯg[z5iOzTC>$7!mdg>US'rHIBM@t4-E|";U_Yg6j 7i8MK-1.5 ]5pf|O2 ZW/)ȫkLJBBP>1kT?ǠFL9Gc4C XO^ìGmMCy/gȚf=tYm)ePTޚqrYf q:6H/S\\ξc(qsC7т||anº6~f[ZWzhQ^ _ z()A[pnyV!ޕ!)3rZ: ?*˹%w}1Q4B9:ZiDhQ/NHpR eL3a]ّT;g>yteZo0]I ,;IL%?Q,;UFeIdާ)~Ѯl50{YS%WǡQNP*ª0BGOEi:l^%`Gh?5Q@أ!y5k׸ ;h֐DS5|jI;^@vëDpی`x^2<x#s9PCU++]pTS=PMubj'-2ʏ>_t7pST\zt 0Z,;4N1MɷܾLQͱ-ޤh rC8-SH>o$6(}[!N'Wacu]exPoRlDMQ "ss0{yQ`F Q_#ȼg# r8khC@\|r.IKއ !& `GUVҚ{5R{P_ڪD,zEESP@o:y5lS|\P-bup7,zǐ'u*,CCD$B]vK+N6Y&T$+)'~܃RIFcdHghӈ ]izw{ .ԂX {x5|4!T^@E4trk"&"D盍raeFgnT0z)^o67+EsTLᱞO'-U[cZeo(19{8f)/*Ss |F`IAIFpH#=Щ5$R1 '/ ylVkل2N=VUAD'V^'0;nwYn\¸G!\7W-p7TbD[0'K ~-|ۄaEc/.NћWpvۑXYT*>Xmԩ`R? P p7jf/*L/PEu2癪 51~dfFLrM** _^4\[P(&.5)J9[Y:R(ᯘ9;W?y+ƞx^;_g%U{- |dߴƃ% i$`*Rq2PjĤJס }i]L7Aܭ]KsUgL7ۦS@*%N ew"1̏lǷGLa(D=c0[S)me0Pnb\1ivy%_]=$*UʃqbxAGɂn.ei geZ͏M޶6\]7K`+v2*pĒixCqjoDϸj&OƟl՘Ž@G On V5DPwQZRF,8]w'>i?=x2DS(uj>{2n8`}ie1#rf]~` M7ʑI+EZF>墂,sW.Drx]#FXkJ[٘u6gM]`2:+ b j-}ezf;'2^P K#5RjVxݕ .6}Ԝsd(R{Sr/j"Zo$t?`lZ4`3:&j,X-? ԴR`B._0nPuk-`" &ЖU#t<oP$BK'݃J{c%̋z=ew hBiL1F3IgF hE QƖtmBhx7:tDzy IN뎼Et,t//QDb6L[6#oT nbwjsZP"8 à1OY%6/Q #!Ȉ~B- 9< c!Z< `@=k;3aQ5Y8 j=\`wOIt!Qd`sBc]S6Jeb$M &U ^\I/hvv'A }dN ?,0_]hI^{*`Rx>d(;o%ǃ7,,p O <kZ qmWWbLaS[K ໍ3P;kEt *ڙ Hݕ G+ iNMOƹ Kdd[sV*Lv枍nA\%Z]YτѦM'8)ct琭J xr=r= nZ8︈.!E$'GPR:Mό[NLeQWt|nvYQx- DRa/5;>ZAYusk^Cǐw4N>~>zvqn%<惒FT'.n]ȳW5.G7\_VF' BH׌z0֫V$A>s 62Tip fy'wbOW>\L#YWw+eD;vaBYgri /Az1AH%Os oᡀSYy<~xg8M69Y1FF4ͽ!)$jG]d`}*ld1~>,?󪹽K"=H<Z8b":2qkaLmݣUq+BT]ZB)RksBf(("9uIU+:Xپdvͧ98 hG Cr7 [-j`U5G~3\arn`L`M|JmY-zLiiGc,s6Q u; V!npRaS@ܵV #ӲMW#Zz4r JwjȎOi`1|x n{nW  Ĺ7Dj0\8&|TDlEa DszpIUY5k_qǭcSB"Q&L>d?p]H=Y2`I[qNTNmt8n2#]p+N#tU f瞎l?si:IX25xYmWe%f2'&1KKkWVrZd1d{ءA"ް}`r+^[#uC *2:H@  Sy6xQv\c|cAMs6跧<1.; _x g&ljiɴz (͸bY)FkO[p':mO6NDJwƥ?cޞ2H8jFFǷ` ֹ~Mw8‸eq9>A@OVA]^F9a6b@Ch3XvN&3 JCwe4-0QK]%W:̌0vD(=ps$*\5w5ٴ\eD̠dn@V+5β6}9YF=݂0T.h3f i`}APjvoVR845YU;BŽw0!kPJ kYTtd@ѤZfpCޟ)w7~ϭX] 38!sy7l~ (ZekYᵕ_pxGv}jqII &  =>3~YKz cjqƛ+OtS0,'kn7F1! _B [އ5nolcbRĖE|!7iiH4{5|y8,?LN aǤ "噁x$kBGy w;OX> *^(dD‹D`zx/ Y58H2Ĺ~88:I=:;, {_i]Ol 7}Ȁቃ g=R 80d$#>r؅=~nqi'PI[w(C}^R'W\trYS"0E 3ȷ)`P4KPu3KfAe_qݷy٘}^o%1mkNc#|~26m#zk(?99.!ϐQ5M 9_L7wWLoM YB@nscB%Hdy.쭘!/&ǓJ1^j`FВ5A_|9.|wvI+^*1'rlGPDv7Q(/acL+:"0o"0n qq\j]i:nK9K?/l[ͷi9ˁ/ }]:<мmV|VJK5,FGdOviXpnlRcbo_S!Xx-1HG{ /6ې!P- CwLKnM3ilm[HV1')S&&3%ÚQCiN5@֪6NVs0e@g~3]r8ADO1Ϳtk@ˍfNJH>_~hoEyBiHxN_-;2E%MU )- oUg) D7&q( ҨE6BXb66v@ցL>onaRaGtHcVW8vjYF8| FY #7 ’ IDۧY@y+ Ě Hn-v`Ku=F_^Z#|MDp=iOaz4)T"XzdY+8pgVegg+wB8#2z1J.YU+yhH ל/eF L]F4deuFںEu#qr.˺SUPU )QR%Ovun8,8/ OVǫ$+ >;8Of,LvIAi~&">p@+o { L^8tW(Q Yw4F6uחjfcEI𡱁QTH7]R \rCUlfJnģ{VJ2]" ^՟(8^t >FZu^;Y4sr/p1XVGIH{;vbِ%-BЋ\l +@0(>NW~VTj2xX}_ٵX?ylValrNwp6 8&ƒ.1ط8gveL*m}1ض>,g,91vH߮_yP[u;d0 MBdLRȬ9q>18)( lbv) Ry Y|XT%|1H^bUABSOTa dOΠeW#mZ &{L #KW %z޾DBZ#27!8Ͽ维 ΂y.[֭jڛs ,1͆G"&eXx0\C~`_q}d?/6uIܧνĒdd6ldaÁ4) 4^a%CE7Vc{3PmM)_W]/S<ǯyBQWצd0ӉSvEK񣥾1TwH\`OA[3s F`C`rCPbl,80};<"oU2NhxĨZ^aGo!y 3]X5D{((D\]TkwNBvDd G&/;yg(j[̊P%=- wB̜27_G)zڱ*HD!뤋~N|8aBd|QI %kDD|s M(Eod?NQ-l3SSLrb~G O/`O_濕J.mS>u܆rTa/C1vRWM |Wo2H.VXnz:5Q{O2Qk4{y WIT v|cpS}D0 ܺL= %߬\%}6~Y`q2&[FTatly!7]B $C-|!RBUѷw JV@<sƊڰmlӰ4ZKU0D~,sC.01^# 6Gi-sC^;xͺ0Zmס;MIOeiz,JCՐ4ܪP[uPݪȋ 3ZQtu5LB k$i_U4YW*[$aW_BC`CV?4b.u0>=@{i95G>glk:h1|r@lwrcߒD,  I$Z$G3&Lm:U PPW`25w6I"㥛0Ü Ҫ[VVZerDSk҇a!GYqXwĵRJA>P+1;Ɵs({yi32SF BC ,wP) 1Z9(yj[ovP.>,"6<:àsTtY`c86 OS6?> 2q@:Qw m1nEY ц]R,4:kOə_tm 0"ғ C4 t)Ɨ.&VpRƼCݯ|@kn̔~'@aJW^RPWiN2"%膗Mˉj;ޑH^&ێUNn鼭f=ћԔޫHKq2kb"v #{Ar(^VkbiH*—`qZjUe({3rv!d )SI!HӏQ`TF$%9WpոUC&SY7᳢[c Y>iEЈH"@)0et;8||~Om:q| %ym/ Hj_⪊ɻOYLVhێ!;e3*M>yP_^.Sqvv+[@j~f& onl_JNN(p0JDz"I%d\3}Kjbu% ?Ä"]fXP>0i8?I˳*WM` \_`UCp 5j0eMv{D:m6DziqS/d)0Zqb,X^Y @2k=[ R댢d?` {s*>0/iYd_lr'uvRvҴޜl9S 署X =L#Q3k-KfGµaLLoFX?-Al8l)0mm)/LQ)q!.kW!gNͅÆxPw5= @XB8[yř$'W+D>Oi`WHWmr,N )gItYsvʈMdj8ru lrmD6 (z_%ON GCi P@dxڥUbMCyjAGxhzg.Nz1 k^Q^G"V!nR #Yqg DW2䏿5NX ¿4loR|};`BtTH;0NlE1C51ԉFHPߚH(O2Xy%[` G߸zt0PP}j,PJ {~PzCad(Ő窛p 묋ЇL =Lh؄8ΤWy.A.>~7Bdc2ѡ.?˼w1_7=s:z.ʠ9ڒ)QHJ#6}]Q Xq M%Cj5a;ЀgAsbr&Ab_FUЮR  $q]iy_C51 HraP4N>8 `auDW/f!_)q6s?â {Z~=91!<X#Nim-?v>v("a]=;Bc>ʉ(-*-SI񥌦,G7r.9O>+)e=8.$!vkHtD-Mh:9F@4-dY^wI Bwl /%i#_Q»dk<مb% #0tCtt! vuN:NBX ?@jgP.tU1袜_iga=}("}nze=zh "Ni'ư|(,bh =0qȦ_f~2՗9I],~Q\k1!\ogh>.ViT_QohKf ͒8vBx0cz#0=#&Ι%|%*U{k:hiXׅqLn3 ]%I.m%3csTMnh>oЩ & +a#@V=K1NTfzRmm;I>M'Ԝ΀5#.O+k NJws2!?5Yg>&n1spF8&u4cB+»D{G);艁*_,dXtE #pií201;iU;0dWgEA[~" n5x5s)X;HzDV,'"朮|L LfT e˥K#6,3(J/aV٢ @v;-1n/8&Hyuvl ~*ښ|~4U8* :-cd;N)kI..VWGM5Iih'\Yb721PoF aH;9Pa1/[H1~V'ƁtQb#֎ɤ>4_GXk\OЖd_vpr;+* #Umxk*CrVAt{<6#"%Ff yģJݶ4#(!_2 kweIIm=CM[K#ym|:M@aMlNQHTQBB/myRBɻ؊bGQ'Wnmf)6]k +g >yPXO M酼35a,JPByRTo9>#Sۅr>x^Ad[uMz6]滣"!RbћЌ[B\ڍ. V?9\gW03ZUu~ aG/!)&y;4lVh.`2bQֻgL_W7Hx˗neuWR]gr8(+ٺRd(d+ Nפ5E4qfcʴK}!@}9jeĢJlyTL# K #g"pKoy^>oU5T)3h( ,joԢJ[ѣ3p'龜a"~U\0cJ5qy<ʲ5_M;lNyCdTg AXPڱ%nfXQ.F܈6ymE6H4rf!py$>|جۀQoKh$p#CR@Jn1"`g۔0qCkSё~׻D@_X{FpuA:c#^(Hb>8H P 8B+&-,,`=MX3@wR?_z_|vܟ\lmBB 6c]rغӸ]Y#;j7$+O1蛷'SZ1UW D!' =,U*xgͫ)f /wQOykaǖt9MNdrэrHFzs߇_RF 7&NMR0[Fg!Z*#㫌t0bu#mT '\8Qƕ-?Wh)0kH:K)[`c`JsO([D3XܵOZ\ Wsn+KQ"30fUe+kMF6E{1ы&*WJLj 5NSYzT󽥮0Stc،#y1NZ -ٸu ,bR H@!V.%vBƷyҜΐzV~.l3_= ;K=ځUdZel2j/f2ixyУ,W/ب*OE3BN9rb=At+b4OX+&J hi>JI$%iCM%6燲Np-WW#_8Yj7h=IgC=D)$?!"Ee!յ<%0nxIgQzQ6b9)ە|6DeP ȢK3KzM@f9g'ty  e!rddUeKJ/읲'ȓzk Dk ; e!?eQsPraݨ8=wc1nG+.J1 kȰ㶂 Ĥv6"(n_]=OųH HN fKk_q0xΝr Iu1Dq8y ˁ7k8m=4 pxL_[_Ϋ,e2Sz:%T ^YKEnPmf{V9iѵJ fe>v}ywndLtcS4tzlS*MUC2hQw5[qII~ ^4zZ9AD^3z5O-X(& 霊_G{x!;$V?eҔjK_S \CƘB1A>/dI[KqFd5 .7L mI gg`V~^4*HcJp`lSO3,I}dsExjK7Tiͮ{hb =/HnG /B@X0{^2RAa/uhf ,vCpxCMɒï#u:>q1C|gD)X*8A#,hwGRᬱM*!bɭEelxmQO5 dxZs⯈ѥH˜C^9M2e28URVF6;^;-,QۻR+K؟)xl|͔!*;/sB/^e1ʻ.[(G jq@)!4i|yq8s*ҝ8WL3Ra[9VՋ<c}BVIo̐y5Dh~ _Y!=sc~MSxWʵ.06v5wH$WRUOqBi!S\7 a]ѽb1 f&w 6n1K*.VL,$=j C-x?ۋUeՏy+V£ǸbGv[s) T&rS!3p0֣J !ck{7qa[aȱMT!՝/8VG*rim-]*'90c< "cϮw(.VX' Hk*=b5y&s2:38{w>:{WXC;uJQ8*|,ӻ#Ll2݄̔}e|>vtFfbO:q:c|UԹ=y5WОlF8zMZf>tp0$ْ/>@ ,EE {:g&@i}Ԛk{/g3s^B=%SʑպܭD=.CAǎcE޷6D3gںaɃ9oe_Q!dD,K?T] HV%Oj(dzhJYDH?^QWgqeI)KNnF".!&!LIE""c.[;$"ŧﶚa;3+ɣ,1VGaHzDq_:f??2\1jșjax [@ u$lච]zMUb]m>x@!^/"O1r[xP ^:1٪^ʼ29\DUl6h&̓N1ី!yQ}VO\Kk$hz22פ$d)g4Ծy7qjMN˵֣slN'+,(&?(N%:fW6Q;NG?7.58F *c`m͹$D "][-@ՒwH?oJ&w%n&{YCgU5-^'O@zhaַX'd 5/ZK aφ+ŎqH|IWO皉SCr=Htʛ.Ro)!'# Y!=DjlRz]$b/{sQ^jLؿ;,Dn>S9! nBubT>jTAԀ}L5EugLyp W+}ԍY`_| bEpE;QhY`Λ껋LD*_'C S\i;W`=E+d 6魃6vk f[%W,Vu?$[pI@t.؅: yIwt Ckp4 6P X)mX cP0< %aѼ &_lL&o|T챒vAO TZ.[ x\$6B3u1ajhTw=qc~BSU 8fѮB0vN߮*Y3Lz\L$ScAhs`x)c3}DGL"(V:bGDB4z)5]e@d7F 8bـĠdMFkbPigTJ=gSnɇW&Ӽ>{ PC`V k}?-]_;T%Ʊ ͱ~sgo>a5'>T` wz>!j`/n`zֻ}VAy3/^4 X8nEcm?^谤:A+ 1EZ6DF (\4CN> #\`C/LʓQvvX }}yH /edCT׿p ס(ќ [27x?8ǁxӖEtԅ V E}·^N\:V\]݁BkEZ vA-.>X V2;1 *gV1(nw{`QB 7yw<,}ZM$*\'߲00.oe}<~1[okE{XH r]x_C }3B(MʙjGʝ88ʨ>!|ʦ&F40N4r | r8SSK)}Mb_<:֣t\> d]U,!dbCn2B{ :+0Sl<>Ÿw%|W?%<ǩ~ cD e(61v \xdyE'[ PKOL 3E(- $uҹCDA%U-th)ίuT=/(L$q?Y`-We,^|Վ0 OtCp47#!V =Cy02t0)BEV?`7h>E<22` 9uJ=I] Є #vd~IBA! >?M (@ٹ"iKTQ C?97G  V+.I$2WL4+\*0 G\vϊwHWBqj"~O'#8ݒ͞Pn22z=&cR5T"טKV[nqbĸ^[DyH|H]~[dwYykb/IX`2VJ̥lh12\_kD 1@5*p;PbC-6 !+5pv0sfbQCFPÛ#_j3 L+"sD޷">Y3,+;<xM>iBF(ekfDapIE@͏u! jnx2x'F cQipe˛t#-K+N0 0V b;mg[LgJ 4GiN1N}J-Ci D) {Yݟը8A>brj@!.n3`x6}x^/hЇk??^pͦ!RM9 SQ(>Hߌ"mQL`逻WM1[`%fr6b2! O+(GSڷ X{ ëF]cidǤ]<./|I^CL#1k2&b3<0QD=;:@1q ^_kJo@x̼zV}OssQp'b֢XbN6fڂAjp>@94P{AY:%ev o5[1`懗(& *gࠈџ'2jj]nQ1TJswNM9UD {d$vZoE-P}Xh^}qzRENd41:|!wL,Kօ%G^&KehFf.o#b4U .R j3+D*E}(I&hgv=O0}fYnW"7|  9ܭ2:'O ™KQ -It Ͻ'OSDgoXNf;)-NJBhӁC#noy$>9Y Ir!A$kj$,{Ntsa<S'/L{\[O4n- kVnhح8B0k4J˔Tf2D t5PvAZUssoB:\>cy6@Hq >u>+zLz{9lڥYՑZ"_@4xu﹓mtSQ$\%&q y 0U[Pz2=Xbp {|-|?>e9KjuQpkTBA`d@d9kLxOF?b2 XJ{0y"3^,4ÎYfą.֭?6\"BTU/z N9ډzsMqGgW/>mX"%E$tGCvtb]m2% )yNs>~E Lcz].G:ă2Y4Aw:Y C8wK/zE3?fJVBTF VZb, 4 BeV-N3"IfCxhӲ8g1eP#'itvx4d#oL;(n\eP̀ϏShI(e֜yERM`;p^:((Uw=%Ru)v}wx|G_$ۅyT3U8(3݊A^Xnz_mbH=b7(KӣE¤|ZWTVc.. 1z3'@R}e$A,-|$z/(f`؃@o߀$PN0ʡ,c*Do@E%w7ղSSͳn" 5uZ>$B6:Lo1knYsVVEdTӝh-&Э t\O&MXڕ ߧO$!,#>Fى?OjN,a%%>:뷰oɲ}=f,:HtrO͐HdvJ3%ĦZ`I5A~?VnŜ.! g_.T^56MO| 7]G+[\)B+T3yK[O2GED9!e _2d+` @g:m[@],רg_Tvb#}{0w^Aɶ-PB45[-@h!s Y!ճ=py"V!QgA 8MSގ `ydޥ ^L~f7H>tIRˋ@nWt9p-Db}7K@@c6& 0NСȼ9Jw O(PE , v?ܖ> sm5}e7eڕżqI&Uo.p_3%Cs ^G@Gډp gus_4WυHbk2_´UR/Q#?^*w piqY7x7W=h=#)KP3OY[KsA20hJBW[ @S,|Yi&4dJ la4AE_3fIy7RD"^"ߕAH%z&PԴ:?Es`̔neY Qrٍ?SOsߦ[&?LҶ>#nU&6_Jtnֳ;6{ElCn35!Qy/YMwd6@:8Gb"n&r-B?}sf~p?4~HZiOhį'rU )wa)Ax e?hNu4Z^Q w4LΦxQU`V;!IrDR_J-)crpd50XL$\_.+,H.+GXh_cG Xj-91' ۃx@V`5?c'з"eWjsQrN>bXމ]|Da3_jP4_W=BQɜL -o'CPvyǜ0G| pNa~3e\5+R .wYǾ16>܄hT՚DԄ/Q.]9&: ]'(3q5Rpd}{=v`W>cAs(;{O_Q0fW v5~z-/qjk"m: &E u0ź82|gCd] SF&&82pqU)K{BECҾC! "!l5ѧw~ Z$I=\wq(r#"~J?0d0Ϗ"xZn9wi55J6 (@B9$d0whthJs@ݪ6OWk[]{OD/-{)= N?EDHf@II!zUxA F5y;ZqeXi`F7ʴ񍡮N'TDL~Vd[ʸ_*}2u\Pyze+ڧ0} ezU)IֹWԼß-gO]LSOsXdjxʢ?|.:)*D~BӺlz$=T cĨ>MWi4S.~~%A( QA l:ґם]nq2< 19PU6 E0 dj }:dGb?Pב̋TFr~͌1W\BW @=n ;B:'J^^>aFrՑHy3aJdtd"\"X=$87gKҧW0Kl\! |lth4W {o-'ŷǤA_M:H ?Y[T̀qFfbri`pG!i;(4̫@7YflcQsfg@gR: R8M=Tٵְ;ޑzm LL:R^t3'&۫ZH{Pp7g,&{w3Wp \Z %(N(CV7L;S[q%'"ΈY׳ ZX'Qzܜ(&o%+ ?<94LxPjxZܛ7yYqɨNs yZ? `D<Vd—1xaV'WA#1F D 2[֫u=ou(̪ g 3=@iud!_@iODXlimׂ`s⦶N>Zvl8Ʃ:bB;wfiY+\*(tq/~rz4}Dw`K&/AyN" !TSc),1i}z Kj-I?> \MT)CTR->ۤ0,]#MƄuU35IA.5-sף66]#`NԻ}ߓP &s`APxtC ue a%_ν\sh%P픾w8lɱa_xݹt|ocSMf6Q|]/NY;Ti;>s-jn): 6iu%"ބwPyl_)%eD+@.rɂ{yATpĞ#ߵg">>mu(qNOlTdTR6 Jvc[_`81Ӳt; ʹX?U ozJf+0h ڬJL(lt_>qV_PbEPЦ;"ungMGw8 .䂛@fuM>J" Vg Qg%$8dXeQQq`;N\RBnR0r ġG}]0D*W=]Ū7џnE9c!&x)T}vjA v ^{`Wa"7QmSGl"_ l%ut*!ui&G ߿id,kd$;1x68d2~蘥Օ: r#'YݘʲZQTĸ@:a&GkAy냈?u?YwJP*>z۞1$YcZAҿ$Zm]2AZ`nU̙&ӭ0$Wdp4ZvKZD r'KJ4̣8~q*?7CzѠoJKݰZzΜ,r<ΩخS.3ZR=o5gq2KT:,MN׵3եeh}F n䈃vkkd-Q@-z<-6jbkW#8WC l14"t4Bn)_4"rxBDKm{!Fa񾕇xSv%%:N;ZUM[QPX4VR*E#IQߢHjp5+r>.fۏ#rH5=f8<6 Vu tpJ9(\z弦߳`Y¾Mg&jn\f5ܑUe@pn5[7AMurfgXUoAVՉ1޻ c|N$%uҶ 6ƈ1l:pKmj0w-b0 *Gۆ3$*3<] (M R T<.}w&hyYq0J9 Pn,CK? F?`v\A] !9sZ?(mVM*ڔ.!d³2դr<Phϲ{Sxn襭w S, ;9V>u@/}XLU$U@ i=ɩ>)U ׇcVh.nu;1B59N2!n{Y^; +~y=2<3M[[ پL?%m^%ݒsPS9IuTpV5n3~f5g|[~b+v#-*Rrω&> ` T$A>?I>З!z.d@"]Wfby9#n 3$|y^9eTnh5T+ s+CXBypYEKc4 /8W`$;V3Oohed)h"<ޭ[Xv.Ǿ2'DʮIywh1͵3 G3PNDNT WÛI/[ )0HE[Їz EǦ;Ctc;"Ji"w9r(h+p"x2dY59@ ߉_J׶(' eQ,55?BXä?0 D;NLܲieȁ .;x f&|F0>r· k]M.1WVf2%Դ[P '\u$_?|Yȇ7 ١&ZN|~KvhݔV%2.ؓ굷 c*tnEA_gV+ʈx01;-| k]`y|XԞᬮW|FgV61 q Tn4?O'+(x8aL&MbשPBrӬ2H}GA.:KXҧ>I:1@gto p!F:n.=]V]kOA6LFʊj8u(`I ZkĜt1]T׌PP^Q XFQh"G` mzW z9E2hņ䧫&rZl 3z/)U U7 ({*,VNW9(3}꾃2y|ߠ2mzsf#V8 G'*g i|:o_J1w^FY^KUS V>o?8=KtN4Ks50kN)"jfV? zG+U``zacV1cXԍ'_A>h֏,4#7J##¶/= tr ;OҬS*4'T+[/h;>`YZ~Y cձ ID䰚YۋVtRsH qQWߐzyOP"@0-`%Q>O4eXQǨ.tY-Zr1)gDNbMII׎4Ư &ǂlwΫRB,dCyA. $$£K< %pwnn%b(>8•p\:l 1(2?*ȫ{MVhkeqyK*T 9>)rZş|F>2U <V͓.1u1N( - nPiI µ KOM Z7i =}SbC?p1KYtEp.61VbC…TPQp;%s-y焫XB]YK$hJre>-0 i ]f4#ƌ֔'̥hX/HhźǏIWQ*iD~g< > xI5* $lpGs/>t,Znd.xQg\b-)#:)=agTmu2*6݅C3LMcFwUA[4z,J rw&ٖzl*X#IYÖg6ԥA.2*$=)0KA@Lbx?`,dPfÿSVmm3bcפҗ`8(񻐂R͇g= RiV!\0"b;oRQUCd*yFo\VǝE1 a;X>†\Ϛj4 -r#vG€ @끐~DgufS䛬8v\H0x1A ›O̐Yq sBxx}D xÝȓnN@n89@]bU\)Bd (z#r8gTUNs`# >b[C1Vгtmga/sy7ZȺ5CY^JFNJd(; )4P J'hϭVMdʙGpzwME9@(cY˗4I20?U.TN X"O41R~P !Ap^9S%/W$pVNEXd$Q^%(*r:V13+}}kQMivEE鰳'nq|_;0(g0an ZYWF~)7`nD9Omz+s[*Pj-QN?wWӳF47L!KQu#i.>ZhL2uדJ3_A8 % 4ϗlP7Oj"\ R`T,PomSE2\ZLW0a3E:F -ީ"RCr )4҈'C?/}PY 4oXez#8]}`.bMa=Xhj"Qze?%yja8yuD}gtvg*Rm`~iSGݾ'Fk $n? Y;HWPܞKTs[R>yX;f 8` ث6WY`YnWMmbhQ`.ԍcqRzŸM~oK' lORqz24Jn'tJ~"u K02İt3Ȓ۸g w$"r9QP@J=Kn{شzIy#Lک[no*rN-dVj^^+U:WTI!zU5.yL-ꭠyH( 9&#Fw5$N=i.akl詣 ^B׬NEX!zA_!(qP@O?t 1w_\gd@$ ?-G"}dy!os |ᆩx zcle7{8O!$L 'Zv&Rdo7.-8;t 4%-SŒ*Mp)ȫx }@9ɑ@4]N usd&5>Ĵ0Q-g3Foj&yx҈lS>._nu̒yr.Kj=q{yfGߖ0hM&¥o 8bRǫU#t7~MZNBKAeemt]F[<! D,7(Dkd/*8#(2x4mKs:fOV4;Bq/ 9om%/r"ik qP@gIV'O',*}r~1F0 $־YnŸ>߾59ޞyH nv0ju b 9mC&rggt/|-WR/+.R)[A-a}\SWhr~i{=u o~j(rR(_z铂Wni$ ]MV~В'=W|׃q}bwN~<@vFК=M1R{~B$ne{v0UK1{LG0+9Ę%uE: na Xd:#0zς7 m/*7z8ϸї9ku9$Ľ6ME,Nʑދ,Q;>!;|>܎e 20(`;m2OIuXePH0ٺL#~jFJOCzUT֛t'646HgS.5eAf5"=K:=^͓bp$BDq,q1( ^3y!rX/[,x<#xû+d5)! pZxXvݢ_tR{e&If)v#J7.P6F]h~!-S翭pṍy}.^ESF'{Yj\W:܅h95 qѱ!N~pܓk:ғ 1t᲋Jb*,4HڽӖzƴu;h\1!cK 9 i֔t}Z:Y~HFv5e0<qcN۝PjϚJQ ̽W? +'ZX/b`5;+ns'1~83KR+74Fw 7Gv-fԨႨ,J%U?^?'aLp\oc T""pdZ>#=7`i޾a6G]wnV39nwomʝbXY|m RXٿCB(G2_xxڛs42}?9nw.WN^~Ew^A;rz4u=8h;tS?*4ٕD=;o =Rht4/ SfanxL4gIx@W[!|2RFb$C-bp{.Qs_ SIVY^F[>gLN_es3E*o#vwJ` |9=5"tgyM:PrmD@4 ZsgٷFŸZ+ twTpFW]c=cS\fM%}]z1y0YH4dOI nY4^͇[y]ȯGz 8# Kz)CFӯ!HG})xN M s ~Zj7.gBn٫s - oC0 Z JE1(7?DD u>m"R-Pj (R l#ಡT}l6}ZtP?Ul6A vCn%_$ eB,8'uz9 t{;t^:u|?? F#K ZUߨ!uk_69?8;f&ۄ:ʩ(8 {.>ڿFX[DǮ>p8cR ?2uӁ*l<29kدU@SOHyH{H-]8Gg@J X{[@7?}O->i&kuw =v\,Y%: YWFQv;}-& o8)ܴ;RM6x~Hx\=3+uyqKyDmʹmM+j4\EFy[- "*ojlTXmc[ʯKx0\謱w`+0Z(FkŅA ʁ܏{׻J'DGLX'H l* la;рj}*y:=U/{DJyQ>:ӝap@#A}g@<zND9u4|@-CO* ǽ`X/UMEzÙI$+s.Gy.q3/BzGB)6ی&6 G Ь'>J3(kUxvHSύl5) N;WRG"rgw>lفnP@B$KOgJĆkWԊK!,.q2t.iq-0|1Cͼ8} =UmdyAĖv1ܕQOJ}c^\xfxHn7Tq 1OOUC ϶|FaWDyۼsn^;bU^h"->?{+]\5p yj0: κ?AW6*bNWSќ/gDZ[Gdla1msJ*D @%w<.ۥEu{e2?U|yz c %c!|\AOv7׶=-I#[(&!!YTkҳ!̛k'O Y-ųW}๮qt";ؼtL^JAھN-MO3A FLdE" !/x*N@=E퉩pY׶Ee `"!&\AB 1Vy*۾)ù4..b?lq*#l`wv̭1[@QAmQ4 \$T^\Fg\Z7װM٭|Y Eղ\pE sK SERۉ4TS36!. XR ֘l)xks|kf_̫U8("/ ^B#R$I}H \R |cgR8XB3N*`_zપmMZzIix܌; CgGFӴ"D գsxt=ei$$c/_gbd]oeE@/L\^)A;7[0#HAn]]u:ݜU^&";jc,e7kh%ͪMN~&cS ИAbo (-.&+*_}#?0o/mKs7|l$i~5+}0%-2&03&N$6qDE;:BE[ȑJ LjII(ظr;= 31MJjg\|tn{= fxIP:8/j1.^o$-P@>pͦ{_*QYU Q/Z9 9%\!I~C'Ʈ#jE’2ޥ>jL~Ƚ3F[%'v/dF>150DZ#Nh)g{GvD*#Tַ| -oij5n <{b(M%8)H&Q;ۚ^DvDv{C*,:yWlNM<2KPi1`-lwyr4ZW+b!GQ'Vz7lBY [,v?4Ȟ"TG*GeP,G(#?R51UcVRaNw Qdˋ] C-n:" (\I)G 0&Oglh\YnmļNP˗>qvhtv %8,"S޽k4QV Ügĩf1r 8g]g, FsE1^l)e0Y<ѕNj6WѺ65GD 782-mv Oa ̎񩰢_;֪XQtXeER7ٮXc?TFRM.3̯W.aVWѯ*sӜoTA*NN賀<#7]DJ8,P^ t$MUo"u蕮4`DΩ2aP21XP n_b^3J1\JE?Eit*aQS}@ \EB`~wbpTeB;-yD:S2`T> [Td5hBkIo[Wwf9PX - 赌)T{ԋ(l?!Ä~b..2L"'F ~C&|:YV]eZh_wXa=$` 9ާp9u`_9΋נ9ޜ}C5*"Y _2;.@SjՔP3ǼUbR'y"sF?5 j ݣsl-]jl/WZ6%8 1F{wM|*f&P>diveE~5G|UP3T]̔EӜ{O}_խkD 1}Xb굢<M<ʹ%~.UYHQ@,v }\a{SSvmo1# )1v ꐴ-ْa"SHV7N=.[h)M*#;>'g[l`!QV1d " )_F3%ѹ|6{D)c^RI& ywũڕNx9IƲq|>1{5Hlo7go1L)B 51β%ZXT1g³2 z6! H[3oQ &KG:F2aDQ=/L[}g  C^ h_!^9 ]fAk+Y,0 +Ό3;M̌6ir/ٽsҩ6x-n8Ht>wzy!i:vQcCtr Ϛ^{F}P9bOMeI] K,MB6Jbهr}f#7b,}]q/q;NT BӭTH$ާ̞ct뜕+ž;C64a?W imHhd?2{E9Zd;IpK>uv*ZC//?X13cq%ϵl% IqFVl=Ev=ƆܪcwI%Cb:ɭJHW @zxYi;tmǨE\n~[N }gN՛{SdLOiW#QΙk"ma4ͱNFg~h4PwcWgCeO䂜hgZNA3Ŏ%Z19O-t%436pW@`$&Y-w9A?#@+ ~1hqjX~(b>M2b7aa n_pLK=5ɖ>фN*\iLI\u]#Q9Q8%Fnƻ`aUaX@r:Bzqj> D<5<GޣHJ?kJVlG`W-WtyICV.;pWg]B\xoԲZ_7)iѮDw;HVrbeq)ys`GR(c qȻ 6pI_ N&ΜՓ̾c%ׯg&*5 {(O68w m@NSm0 \'"z)s;gw c + E*JߡBі>ra赏~,kty8:p5=mӚt"e鵓wGL^4~1jĸ *}t%$+g$@ Nr׋lKQ~`OnF9`^V(XffЙdc'6kȾFU'BW U;COٰ_ Cjݜt]5 8aZ`*9Rr(&HoA಻@ 4(W):=Ff',r6a;@ù0'qp&QU{|?n΄Kb% ;d6*{{ڬ9_mkMqȬGb;{>"l26$lgAƓ} DHmnX ;OQiN3uaRYrv*[k*tgS.!Z60=_;U5MBM0w>Wôf{pAӣ+*ܶZ30J[zǵGL-qgr yl {.5~4"͒KMdu \F*hN^U1'~p[N/`ÓDe-jGijl\_qm V&ǧ*cjK'(q?yldzHO/)wj*7 1@ȴ{<7 #MYnތ0v1\`9AִKgu4JfݏtuSsi%NDWIά4lo u I kg"#]w{6m^-Nx7pd71 :{AmAע׫^qfT#sU焋ɔ >x侀Wv& U iW~W'BW @ hICצm9kDovregJTy59d;l_&@¾1g9Mx>/Qhh킘u/F`n,FiܣQ2IO@ sn`*X}D~5m ]P:;O_-vV풇rnیo?r[,QF}!)<х -ݪ1{@HyFbrv#~J#6>\T~RaH*>n6e`dU|.g \m`M(kx_)`Ns21`gݔI+2iPK$& +hoԃK+[cј{hlw( ˙Ò3?oFzcuM%hR9r5tA1`Zr4wLCs#.:-*x RbqɟΖ-_3ivWt@ z+ռH~ߏ \irBVP#0N>CbG |/m(!^5PL7X]**?j O#HփsPd>X尧*,y\"S&[`Œ֎)3SeEjI='^:ƛ}~=l mJJLSe iL+~``0m%|^?$7>Kw^w_ڙD~}y-Y"AGbU3Gg5yV.fJ5oЫdЭzP YNlVetoB`N {L8n7[kEvM{+2J+{H̗F z(=FԪU{"m悙!was] XVg՞д "0vH^W: K1P.֟~ޚm 0U+r ObؘyDG[-y( MA!G*.,9 iISTzsuM4uX|&!i{"g|W_X{wM&ޖ~6j4^a-e$QtAE͌TqRĘіDey+f?oaTOl,ͷ&PSFl˺KWX\n!'bVhԿo u MT_ Sj]~'tB>KZ_^bY"$zBo6-zjC|kv\Wgb.G8m;zU}befgI˸Pf|26>_BQpƇB\D$CsyݧI62*H8u^׆%@\ r\mEgSZlN%0lEFb|\Rh=9:)迦5gsxO ,q EVRd8DVf#bH~`9ˁyWn_qi08m "}$Dk_o+k$熬 wOy6E|[!;QenF1V6A{}M %.e fZS>)Iü qcb4i\mkM?PvL -[|#'}L5 bJ%GbI(8IA7'3{>lXv*6"<ɒ60 .OL}:| =_2쮗rmQ2Z~HSzфLg}W-GQHloUG[v2ϯ񰄕f1nA*ђ·筤=f![+_do®]r86!w3վXG)]GؚǸΤhjP BK^9L9k Jv Rŷr"hVҧ5؊p\cX8Cb%S/P:l>{$~( YE(ymם% ~`.lx hqH8q!,zןo9PQZb/Uʸce5;1VE涆P6J; 䟵Y`J6zm^޵6 #<>AϸImY"M:ʩ)rd\8,;1OOe3È}XˑO*g> CFӟqEBE)1c=Գ`mVp\en $ Y (!LF6]W+*8+G깖Z>3jv8@":oJf0bK.p6\l{#1W@Sgof!d0+CI],/9CO4jUH0sBi(<]%B# moꪒ}э&YT0X.-)iwMdZyCWP84w 0zHd)dȵZoT^w.e620 V#/ f}b? %k)IZ[.Z8cfkS r<%.-MrEéxsѲR#gMxԐ>Vz+ìrt}̰cՉL?(MC5g3b@cBdɞfe+e05vki=V֋!2)Kj##B[=qܥM5ZJ[m+\WF8rDLԏ#z l"h!ډn)Y3<ҳJ~o@%!^ 4Kjh`r,..TZpH0븲2 +3%MT=Gi+7yPGE2qD L#z:Xt}Ag ;!Ρޕ|(ʜ9`gsorP!;1Kbӟ4}vSga Wc}m_qbbdR3\{rjV.PDkrlCٵ댣ul/l&i~LEIOw:zڎ}đNV 1#xNժB'GC@i$J%yE R?ӓ* PbxJ:W߄bJ~Ӻae A5Cx]ΞR]ih*h\uY=DGpwZR ]%53StC  =+S*:=mo9G<ʨO_5+7-nu\V+,89X!X'yB_ģ8ƎY}P;cgg6a_g1[݂ e Yy涞ZcϿmAU_;AHҀ2q%:DWŶ){qcÉK{pAFK1j~q66mAӻՄ,Cڂ9(]h7Rːco.6MeaM{*zUWw7#ێz^R=NuyDhX*Yُ'?k1Rj#l(Տx˅mHnrV]htȧ( SDJjh8TVwT¢[NJR-iovjWi$OPde;"F7[ 2ZN/ޜq@Uc˔TϽT0ƼľzقlV}>$@p7TeymFbZڒ zً,,vT-Ϫ M$mD.KnpKnJ&)$X6FMt{RgUﳫRO]H M5A_j r~iޮ0,o$pms$PY".u.| QX^Z]D=7K"n5F۝Tr(珣zp?"-|U΢N.ڂ%@[t9Bk6٢֜h TT>JyTʹg2WjQ{T2ZšM'OS9)TW$nmkyl GC϶j,8dZfQ gN MPPT7K>H@,|N"CqBEnCodn ٿ`4=cim|o[J[cvX!puna?R &!gl&DMx0GJO^b,xs7URc†$-W^ )Ȳ[howEP2龑Y\}W-rb$\dĨG_i]siYNaC H_ @fwoWy$ z#zU SSLz6u\7StqTo'ح|*%ol`tf%(C?_G1v*8z\u?Az:䭝6o-5oN=SƄuCHBlܝTUdvO-J'4co YL /(NYvq(f wA9=LÒ &vaSnuH;?{aOԨ8L'Rmws\c8\4wdt/?Zjiz}o=F=IG5 ?`9Bq"'LrEz9cO)mJH$~ru` aI #"4ƛbő-џ]1bmI$F݈|[:/;"4ӧ`dP0BgEs3?qrycT=şJjdѓf -+_zZ3$Uq1Z0ƼڣA1y^>mzPBJ/QWb%}V- ub_?o o~9j;PUjGK&n[AQպahpdgw PjU?>nAFގ4S뢽/IZ;ww#tpxIFAlM*A=œI:Y,2dIӺSXN"u #ݲqf^NlCh1:.6@ x!U"VjS6M~; Ⱥ7Ԙ6R4P 2%Ltr}-(za^Ƃ^σ'%3ʱH>}@ҐQJdP-bL-> `jG`5i"( Ei`+ BI#O @VT~>%sdAfEsQD[Τp[+ocy\RV[lvS/g⪒d=ݣH+5ޓT?.7#dl/*S7`?Y1TH(CeM W$x.,Ê-ZI1{՛VhdxL3hNxR؏?6 JEhy4HYX:֪s(jiv7='WTx^(Ľ~RgWhߎh?J_QB2GQlȁ[.맘]5 ,޵5mxrczڐd64 v[=%Q_[8b^BqrPHlUcc%Y6_^%Ol@;|H٭oF1zlTﺜ#Ou28o1,"V/K-/GhDӅ}iSno"(e殕u32RB^ JDFQ:9%藙Xa~âmO餵6v¡Ff, <R#' (=DzMա__Q~{0;a9Zg}'`d+0u|Ӭ*@?CP +9XF9[ S˜ 1!;E pƱ&-֨j8\T{#}-8n_AVXpᐥĽõÚg^)Z 3_aKp<"݀bwzӋZģkdTJ; ?h#8 ?IҾh3zZ][DU+8]ȲTJX! H/`i+ho5 u[>~Xn>,N |-3fZ&Qq_etȂW5[џJ J}DZ^zMޑ3>T48!HtKģf 8RT#G̸ .hfy ?˟+n#B𼄗04tYL|qW\)xQcP:Y~WK ij8Yx.<|d}i]%W^%rfs돰I4I . KUSGy5XxF~Mj l1D0mE3Xj> g9Gw>*G:=ali@Mk^.C@3 lŰ/=Ʀ9j#Ǐ1o 7p"[8NޛU\-K࿯|{ʞ(j=@K?NQ{Ͽ8Ia8U+xmMzPe^sTvuZux6۪rͭrRk](0l3wT@ 2j؞ 9B_Xʬ>ْ>] _k5U3ْakBȽ*Lpq>[@4 2d{WFI]6sl쭇|mp5H҂nQKlhbiѪ3LJ0+B[4e#|@\  ~1!Xo 162nL98(? ZV{"p@Trߡ^1Rs]Yc˸N ȁgq,r_IHD#窸GkP ~o/7u/5quu&Tq%PqiʧRFec ?0 |g-{csе"Ғ,w\6lU]ɫ:(Q\rphXoSPi3EeoϖfH3XE;Z[,l_CEur LFmx3NJ@byPޱ 7Ɍ"R4`-y3W]Yw"hJLHk?nU:TFU!FVWM7”fx!K9;yᥜWP֭LE{͸fJ:a4<~ȃ`  ./(ʑt`9w.,D>͟^`Vta %+EBYW_\?8H,DgZ4 c.WzPwS1s{!_1> ( ^G:@xL=75b"iyL7V ¬)u);9ͥ9 =.XEnzB4sh Ltzj#,-ɓ-8 HU-\߲:8~pMjEbE"R%@BLa-f:#!`XutA7_%9eP #q}@p{>h"h2@c6Q*5]zܣU㔎 F-'Ю;r^AX3+|_/K›Y&]v.;RF<Ǻ/ Aƒтm^IýB%l %!)aC0 aĺyry J/yLU:PF ceIՊM{9_9'3f%n?eeE uѭd f_%C{~S f$L1"0a`Y㓫 nQ]z6ސp'OJUـwXX I-9*矏C" nyʶM [J4*^YY\0يC ĕL%eNYv=NJdDp8M(z@0׺n;X;meMm`9?{@anm͓q iXX_QJze/޸1MAPS,*aEz{ljg*T$R=#| ²!7Cm*8 mέi^2t u 6E$t9h#y *M7vmBepE۞RY̳/YX28:tӟ=Zhv]MsB;F›,'*qh рS![:Ǘ,է5$:#2!R ',O$ԯHB{ {kbl{WP,L.'J͔/=A8 nRq_~6OAu#,3x~MDSezSgJPXg^ک;\:E=V6 l [Y;? uYUEn+@xsoe9gHiabTھ}dͤ .~_?m&1{mqπn9;u@[XܙT ,Z&<n55sJg/m_hѴ8T!W7*iBaOq~w'صc&Ⱒ j‚t랈lz䣑sW~8ĄAJ=A_-I wXNE֜ڻieX'z2V #PZ>oZcz[3ߞQF~Tc0[[ ,vتJI|lShZp:ŘMNÞ.Py&=J JyEF3vY7c=#3z͈Nqnau6w:Zh_ IU$%{ F)!6PuS /;e:8HJDSlkdAT|(ʺARV#ƋC}@t:zf;,%cpVx"H'gj4/*{~}"Rn*Ok?{543&򇵟l9˵wL$ ׂI"=P})|=[V"isZs*NR+Jh\m~C B3@W&YY8rbC8 "ZwTɱ®r{Ԏ}V%4W.>U2H 11 EPpP~1 ]'l4"-xͮ5ZӾIw:9c&&q%USK%ebv@KBRck!x fNYJzo[ %Sd1aT5@HܦJ4qa} ^jnC.BWjrmntߏVO~ ,42NCMTmMؤ,&ѣ3S٢. Y% * *L![ߦjfټ6Nzho:ֵt)=s.$x(8v^HWOL 5\wsu۪rbCG>.깝>pK>[ $NX02ūWd}i:"^/og35uA KM&EiT䁪z('~3?hR꫗RnS1bX(]תD ' aIBxG"u).d{ʹTPKbhAqO>Vz?đRiy,n9p Ww9P8E|0h揔q[;EhcXLZMfbgW|+ ~yq %ZHTE8w<ͫHͫDcd¿*6>37BZ Է%K 判QHTN;7>1p))w3Μ%Wc68scΰyU+LFiԤ׋D~-^!#jw[|,ٕOkaʆpD+bY<7Bd-ó7SZr?Xh ԓbnoj&X:`7E/˾FZ0A.@A_wɹFXZ}Ӝⱎ5Ґ?T2p)ab**O/DvG 74H)urrt9nw. !^g׮*"TSɃ֛kTPˊ =&VI@ GYjF'5͜ӬZC{ Ҥު! OI5wҹ`P;A{m %۰&Ku2ެ_1Jk$ڍgaz ,Ub6"o:h# +xut,: TU,hjV[*~^cEJxP]ݟ1_@IKU?IoDa1 IUJ+_ܛeN?QNZ̈́-l,t4x:P߬v2o_8~~a5(ܶ,Raxi|'pML B6 ;&yf[;҆S^FW!LAh/,gn8 !CsӪ!;dD` 9y U*it,6;K8 yYB*! W'tWu R&I:X"C@N7ЉSSFTE:*ZZ5#p R@"Fn߳St\D@OSOY:_/|jtXOgѐۜӿjw H't7`pH<.$gzPɫ}4 U7|O?XE@L45|Ճ;Yk~L~"϶ .IGN_Pÿ' Ex"gu8 Ykj?O-rschإyv9 $p;8{2H)x֤M)1tԕof658 to4'g -IqUĪW3V37#L괛C)#YjC BpR9MWCEu\=Q*̺`yAu)hV> ZCjj 9F(]%0" v;vXcYٰ%?)X)+:ed^7)!껖[Teϝ l2cK#2!EH8k2A~(?hM|s71uy=E9%pƺ.K%[ O׮[ W+}}tAQ<@dRhx쇮%LhtDU1PېYo3 4GUBҪ#V-Dj~C貺xy!q8I:A^,Н= 'FBJ`*w\ eMqJc΋In}bx%-E&`"dxې`%x.?_@\<@a dd38LF8l(NJ}u;I/)WmaEAS u 4M!"!hL9"*8=wT'/]r2¾ezWzc#"R#gъM9_SǛ7Y{ Ӈ.oI7>rs$X' $tӅv6H焛o })3?뙴oi)Ae>}>%\|o-XMUM@'O"2ax'YX"BmCKnB$5w ,6F3HuCM(hפ!SIp;<? `]u{ S&=5E/_$aR6, =W&DBS6Gq[$%J 7%sΙp䔡]Œmy]߰9E;D, rcLzL.eeYo|6ZxG(eL܌ _j>-*J(ѷf@'Y R=CٴƯ{q u[@n9J beXʿ# +j9;Tda11psv€A$E}^0rVk\K{@ =7PJ}dݏ[ ɬw MqmE,⟑h(Vmtc 7,b_pp2Vy>lq[5ì`i=Vb{" sDO%A}˸#M+̆$(yod닔]7Nnr6H76Ҕe;67.b#ud2H%mH,ɼY]FBn)PwJ4Osǔb︃2ݯe*7/M|zxZBxNlF~}xAcE;~=څE&[wcrϢ]ɝ-1}hStC>}s!܏&0"4Ԟ3(cmu§g (َKmf}f4$I#L ߫6G*/Jb7VWUHg7R< RLPƛ~H b~YV:K a JR_sJuTwIСJpqˮAt'?%ǀ*aϠܼ˩XCtXÑk.j&Mޤg\rK5W@ţ*ShZ5pɃ*o; ߷+B{y(sd~L',&Aŧ{׽nqE8dNKk{S2y~MgPrƺ|)i`n Ҡ=cxM2)*_נxHKv&pT(D e$IVS%+mt,SjN1SCz9L8fOT1yGՄ䪁${{+ⓍؽZllbf6cT8y O)v!E[J4J}:=` 3Ĺ8WV8ӖIc plInT^!mvIHe=;~mCTSw{Cq:'nli?&?<)ʳY{S"g2yi{+Ibmb4d Ӆ-iD)b 1.2пz(D;/"ǂ*j1ahX8VI rLCD96 #&x+zL&Z$œwQ8=!dv~$2S'2x E &mWuÝߍ'.LGH B f>W C2 n/0Fo+Gڢr=xzϲrտ6ۘ[Qx<_tH L,Ry.y*لyLnFm9j൒OwaC[`GШv=2҄<`_P]ܻ d̋ u4PҪxQW اd_=-=:A_p=_KCzJbg hvaGvsYzk 3 nvҳ@yf2)pnLy/,x@FiEh3 ׁet"uU)l׵LA~?ed# qa:P7='S(WU[`7aE=hQ=ܵ]('HnQTUk HL'vQldjZ:`w|ʺ֔vq~3 ʒi G-yLnۍly ҐZsc{nL`asgP+0Pf=ϲH"QѳޤU+CLb/ $kf_ O@4\3,!iU/Lwτ<gGS7#?;Az HjȢJbmtVx13w˵X.UHٱ]Z3R@\d k^,Cuv4nbnٸ QrORgqכ$6w7U뽑5MՌקI'R``UYbq']D )-Ma123/(yIʓѲC;x[fZo+fǔJ{8{mD <8[ىfEYL%g0-]kїUtzn$s؟|' 8+{ZTBOXH?rpz{?R,1?-i"]@ku{ZgFE,F 5οp(VbIӓĐ+;^>៨TFBID?}؛@ 9>\:9!pYs8 C,c}Vk #:89j ?X6@dĕeS LLXϑZYcD55ުD@eZ~:I[I>bwu7f\w^84׽qqo r*wY+ 9*,r'aYgtcܶJ0u,MD=SYS|IoҶu|zp-3o2NNLXZww;G;k-EƞdK`چ{/)J}aVovZ V~;!.[*lrxZ<[hA5'z'|/'7U3+3+ &o ܀sVLB.PP ^)iUqV1"&'iiL'16c% tl݁naar`}sȷ1*KDJ?\@Tr9(9(YBM(v0۔M L8 `bDOГ%xhXqmXwV%#(&(8hWp諾MLoeql^ED֢ +Ȫ̡vsXhʪQT>JH*3mIG{Ի9y4YC/ bDv5 -tSjɐDλ o; |ʇkx-G~_\C}P&,$6>xH+gO.RkHcG<}W pL%rY 9("SM;ǫX=$ ]3 4d΃lehE賗#?\4Oe;K8옑aFpvz1=ah֢ ^z)g8=t7/9v=dˇjAL L4)<#w[w[VHDĬ$D-(v@5\[vDZCΟ ޳` lK7+ i` (9Ywׂworq1LC2jX`Oa׋LzVa pQǰ)CDX!,;cr D!r5D Fݖ;Y~!;nF^O_؍6YՓs$:]i(Pio LdLT@=sRBAK*|C(^Eh|yEuk6Q4./SRb/a쒈X*rM>> 8le樰v.${ℋ{6thVD{N9̸Bd9ewN==u!\W=nRۼfE.^b`$f똇{GQg(d.Uo;v̞zAL@R 28$c]1MYӿOhaS4)ׄywJUr,{r63Ϳpj\gk?gF^"8!r/jԕ1K*Ԓ@"9S4Dž SL'l'K&{xÃ<+t4pd5QKljh*ŽEEפ@n=%:#!V[UhH׷a41 9 8hpsrMU |Q%7J.ʓ ܛ6æ^[lbesJK,X[25IͽQH K[J).hm u-kFEc[Dp~i+ |h|3ڶ69Hsy vVi,:*_9{>wo {l%P@9.~ u9cYZ;鰬F7VCX`-Ae7^0UT;GT&ki!a굾C7'}nHLv5icԵYqX rn *"fmmSOW/ ^(#nQUU uV8vj75V #_둃LJ鐪]B>=xl;_\B $C~>N:'ib*x:^U@]GM0rp#j1U㏛4]]b=1#- u _YT1T+6A2o)uɰ̧@ܪ;רXGnLsf^~Cn;8@~/_p4Rn fSj3,hP +[)?Q 9G Iޣn^`̚bgX4:?5IWo3d-IWF̅3H^t?%ۜ]72Es,uWWBJ Vຆ1/(M_]D/4ڕ/^"du^^0F?+8譞0,@+_2W"-[p^Ʀ-]?CkAFejϏ_3ldj:!yVM_IKNy)2 mƏB$kKO@H7l:{`!Fݷv/61c`Qܕ GhH*C*ǚ6N5ws5xаB A(fUdgB9Y vb{pN#),{0vY/-%̄ujS 6r\b!Ā1 Er(XVYSQIY(fk GE/LV3y@=!#ٚ,m(;Y 硪Nw Oطh69:PaxdNQlTd8UϾF4ڈF7# :fhP7d-o EU(8VYVl@n8c%T@jUzCϝ1"XGD m& (1ާwD51TAa_VjyZCézp=xm|}01g'Ҁ$xǭ\(TIڂ"C\u" xۍk dר' M _׫"/LJU_* cI :K} 4:XLj7?TY8kHWPGi[Mm v"G_IswAy1n\1#;hs\>g96f:IM*?e8tmZBv݃-;<\G4߾7a@MjgCәwif:\![ ya;@߰]R%W8-DQw9I-ܧm,;=aBY()YڍX>F;#i,)u hE/ b%`%}#uCy  e#C t~)g~ʑ&|Eidl>5޷7voL|}"cI2B/]FH#.EYˇVW䅴j_V|Z:Cš2! UVBjDd{\p䧋dPOR,7]bR+00MŤQz ՞#Aĺ3>= Mj{MЧ5J IARFr{&9N~ 1s bG>SCt۷efz.qOY+%H$rpS7+e'pSAUh \j)S*kg  3&Hbɽo9LD5^x=u+Iz#[z!U,@ {IŐ1{;FwO;Nx&HB˻( -ǧNv=qxxbtZcrZW+Ǟ 3k`gV%e3"4T-[mI c6ݎUFԶ;j7&]x|jP6#Rď =-0 W3[VB@[Y(ӓ CsK}߂yeo K9?k\Оi2;Mu7v佽R#Ѐ :sF#mEvUa9ڐQFbk4O;4 Me+tbI.cl5;o-@9ǂ{M lP-I-,g}v.sSRiƘ"r F݌'Mcpg3o,LZTb[+L7!.CR;k ap@#M,N4BlJo|(K+=kP%.ipu mK/s0К]gdpFnAIO-B>7n9Lڮ8]yQ_t܌9 Vk&#TpJU))=j#^T}Y7?lū J%\xH~BLVDx8vjP~z.՗+YҜ`d2L*VRθ2+'.WhU/h§3vo8fW7>GTszjO7m>|NNʛU G6%b>rFrwPFN^FGe5Γ 4ů~ -I>N2L)u E\(:ՒR}Hgx%Y@'n1J 2]{ %`z-x]?VڢHX#l#\ni]nq=&;hJ_ӥGYln<Ǹj5508H gkD{5tca 5%+ULX٫v~OFkˤAK y(ðeaSpT܂K?}vHekn 1>s! '˔ނҩѠb Y3IK;,ȗ!ZGQMNG@D3Y^7/! x%B<0EYeּis( k\z=.~? M=YCLfvNNtY 6[ OyE[G^m:>T-p+(S}OMLZE+Y^vt"xg?E%ΜLM5`ݏg>羭~ dxA^rq͐q/Q~ydةj̇(2.gEr }|)@Ol\R|}..=BeKiuQ%?98Q_^$3s[i=,v5vwCZ <0,-$ D 3 Le< "uoo;Y,*¾Pv=i)} B ]֭A gړkp(3oRĈ+,thKEoT_Jt$> _-߽:,!@өkd0#@ܾ7|H1\^Bv 8|bGp[K0hEk d9!-eYBA ㌴^_/uSy@:_swbs>8^B!K(p^>/-k¡շU0r\:#)Q!o4 }Izx.~[k?I vd]aI~gz$j8IJѴ@.Ȫ|" "B0WLɓ>RtdbArpӌyRAއ>I6NAR2k/03\+%h`R9P-$3*پ匱W6NwIʂ<\“XÒ-7:Eoo'ga؆N~xk̥L{s B+8K_NL_waϬA_S g|+=tTc|s iF̠TOPMn~+>amc?pא$c.(PZ>T;1l7Eӳ\ql9.wPaxߤ^](iB0$yf }C0yo/ʩxY,LU,&\cgn;C.8웡+4zQ(-+,DMܧAaZTC38rI9d3D>^'6 3>pۘW{E^-3 J>m =p|Z2ܪ_x:_2 c^^(,$r\g 5 8&rWQ%a56"=gې Vq':Adi& H0+cUAڟ68vu/䉈UmQЄú|HҡEue?'d înW5w=rYܙ2O4 i*j?7xywp ^Z7`^ک0l=Ljܯg.IG_NWb_~/Wz 04x@iJ~ρUݻ$@wO=ˈ3NucUJz4yq:3(Lݶ+8v'OOMfS&Mgշ%x7ʝ?No!YGo۬qN;z"e{$q꛺_ٞ?ڷ3)/,(ƇhS=*HBzv߮] UtZEKm'[Gis(& x֝mtf\':ZSYp8|cW ٷv 9Z )a#?E^xf€y+5z5a("#i=eGU]4Lhj[mdݙig/gV-Q4U\Q> }w#qgՄȌ*D!j*$n'vp(xz8ӨpfM?(Fo4< T@~u U:3%JG 01:jb'ڄt_q 4),5~:U;'_o.ׯ?˶\O;bB_贞9 l֣WF ~u0/صjcKbۺ:?kgF/Nb i\Ewڐ&OG&0 NQ9+u8)H9ߒ$?E+Ӡnw ?qeh!0>̣\cRX,ߣ|D] ] Q#=i;&.q1 &R(cjބ\WS M wĵkHodNNi9{/H"yҾTa!^5.Vu_ ǝ*&S>+H֓M2㒌7Zd[HOlchWN L w4b'vKH~$ t j6?n2r+c+62mq~\g HhݚӬ+_{j&m>G@;B~q|{pkV:ܠ ~y{IJp˪:JtI/\|nǽƟ p tlR0.f)sh[O\Cx4@ >{4-;1oyđ]@n˸Bew8Տ|(y'r1ғ'9dcln7%F;=`Dpĝ{I IvRm@? zʉ\dW9d{Q5C87rom~6.y fPL)@QhT:C?c}eBJ@aghKMd|d:XTsW3 s`VS|Su6CV8æDy(_ Q\V;yAZSW? 3ԧkKw8T@,D*pO%uF t-t2٬5ܒ_^CR) ._-6WĈbn%rcQ2\_ZU`?=EK?EZY+w2GkiTIBub VS'1U6dyڙ҇}8؅<1n'- DSS*z5KȧwTwGH%Jd7+٧N49_k gK >W̗B5Bc2=g?Dq\tXq'754Nc-w}tu$?؏ÌHCv!4uW .SOǻN*fK `IYm;JJa'y:jRW8ŗ !ysš=^/0-&Ԗc_a9@htXD]{[ .,tN5~h@f5W#'ջHxO60ഭ JdZ"E7M~>LiQFuX>I>4W"vgz>ո5"X0tDZӐzUt?ӝ?O%^7N `D5,6]y顐5,aR`٥kW̮`PF]<#)Kx\23MSs~CE;x7PK_Y6n ye롟*% -9ٲjg̓trusy9A7%*,6f˲'b碘Ń2t`@QD8v֊Fj*ɂn?WԖpaW!abXЈn&J(ig[9wijF.a:(r۝E_Ģ}"ħ}įo}c=J~f&!"Pdw^Jd S`Gb@cIGA$S1%,*+ tA 5=R&R?%bjU$+#߰8B]jǃNe[LX:ݒi $]:@OB!BE(v?c3Y>l+ɧS%PzԊ8i;4%T -ȭ7L ۱3XZ,1L\^K_)by|q=KRTfW-jb~ SLCD6K*h٪ kvCӜz eyMkT@ ʎ8CkS~Ϸg@afF}@DlOXpު,Th9HRk ą76՝kf戧"V͖Qq%z~,\bB^[G9%"`"%wقQ̢׺vIQҤ3x?vJ9 6KC|W*tqNJf0ܺT1T|kMX> Sʌ A}M ije#-f%U=##!M_ÜRr KsCg(PGDXUkr\6tOd8{n iFTm ]V8 Our-(|o90kNDdz7VbK[RVf%YFɳr*Q@#^ eBkmL2HУƟ[-$)w^;gtskf3r. gǪb:dʆ`a;pɵH%ѓeHy;}Aі37CFgyѓ3cEG|vb6mw1)A )%>>dפStu~~x&%bH05mʒ7$o'k^ՄL<Ah~BӿxrCV |HKY=JTNYWOx@(McH$XÂ}(6`"ܛ5 {fu0>܌Д?܄s C߬>IGay<ES~ RW^g%'*뢜KD'e I&^/_`aW)jC5`F_zLj@@<܄yuZ0~~CJZ84*YU0j7 ~Y#'hTZ!Q7~R$F+Yݛ5!s9E^|fWd+w4ZUŒX_N.qC=@K,29ֻ蕇?2BK<Ðn苓[%!Hv%d![Uzd͛ʈxICz(OQs3X4JRxM JcyY`o5_kdv*r:-jn&怷l}3>jߠt- V+Xx! qNK9ȶc H0ܘlP$,rNUGt@fg9l&o|_X(OmgtLp߹Lw/8g=qmG"a |Ԗ%_Rj;d*SnQ J׭PD^,(JZ9 nJ:}uԃ}"?.;={׭|Q7|ږ:f_l[=hwTOg҉"$Pcc%V41ָi74K֞[7q PŠpsdS1aOP"`<t a^,aH# vqMξeNsܻUX:*A/)ץ * "vw`o]6Kм'Vm GZ2DF4xF%8ܕ-;FĜ ' pw. ߢX[aS(m' o4s ġ'Kqkx-?SmwCU0Ab!  c_,!{Yo(M>4=Cd @LZ}j]a>y[j! zԁ4FrPCX\E]#TdZ-4hr< Ԩa|w8/-f0+3N=6M(C?B` VNs~K[t]ֲuЂeOaWjo$ӠOpb:kVSM!E<_M?3ANꕑȰFR+@H9:ϦbO½h ' ϻnrIv'nے: MwPd¯SݶBA+M꾬}xAS]q=5iR<ꪡE՞;OKQyb h!!"M\}udJ}Ԗ3tU{E]\K`E4k8gϛA͉5g,RJS6| (6>3])2o6bl܌ \EAq}d:1E3xegM-0l0Y;A>lW %KzeZ0LK'U_Q҆5xJi{8k\ ~Xɛ%;\&Kp+r~f׾J[[ߗd e;KZ8 ((߃V1Ej.^ ! C+F߻'5{W;KԴ(1'ҴA:reucN1 !hM:Yn 2{Bxҭ9P,blg`F#&p )QMaT\gd2TO Xê-a&i&Z}j N0G= hޔz" ( =@>3$3Na81]AxA2vTDr"@^Q `T1xxF\dmg RqZ D3T.vb2kp߷R!,J%bgeE=Hr y&rtp8pGc hIlWQYN_N{lbSvcg1<ݿ}^)cJ!AGWaZ~jB]5xA6}? )Rkm%Qq F1T(B?2qOVEY6[#v8j]/#q%9D;.]?}m}C)eW;JuC!j^^CW/%ʻK-]euլb;H޼-<7ⰲ&Z ȫUЄ팶I\Q-ZiukʂQuøly0F[ڎYsҖX/&C0ՍRuedz&{, nԝ4 L]!iAR힗&Wc 8, P;x8W TI/d:gWԗ+ In@a:憇ְ/wI8vs+@{&hi^cLԒ!Vc+L?=訰"k+1VM@_G^G8 JVKF@ɺ0Y^SČuuSPXC&HFZ0Djp)YgocZTC-#W]@f>q6JW];Kz _b~vIBMkg(U#7?q)yڅlݖa+SU+C8ew[RPJؔxo3HZ]dl_2Pp񐰓VxcP=Tn r ma0{Nמi 朗TWR|% V0*w*/\y{Q#zZJ1{XijkBb!s~Duf גOD6J90?E̬2$[)m#858-@B.Fe*>"L ]3r^R[WZ40b}&4# &JZ Dt: , R C@Q=ZWt.Q]&K"TQI-p3>w'FaYqKp˘Z.{۳&f4<./ )8f* (V';&kHAe"8PU33kg3CxsvcdWı̉M/csKY*ڴg7Bͤ )9)nW1mc=`~3O&ٚ ䷉Id^,^]b)NcRu"4";1!ZH[/0mD}'h~Nٴa?VpwtxmCrO%+^F6"bT%/*1CrL,4q)Z}.U!/^_z8zcȉ ϖ'Lb-,^IH8z6 Llo /iF{"/!#D.>WykFMf̯l7] k3b|^ˈuWw g[*>cDvDj0* rlǎ߲.7cljxV^je]a% X~+\cJeKγդǏSua?dTc>XgōCSD&Z{..S+e5ΐ6N#'d+E!`PP>ݿ>-g샶I鏓~s/`ΐN(9Q+s# W|ӳ^Xawb[0[*Rn3s9rt=?l_$ށ:9I@Y3E+'[[D`1){cgU#3rϹ7 y*6$_FPi!<,ߟÒqY>G^YNǔ3whWIӿrƓ5 Lf@$P):HIX wDH{?X-NYyy^Sܔ:KYs^Fv𭏨u$,9C31uA y= . /Dh2(a ·/(4s/anÝaPׄ0{PEDȤLC9'u#T֋?؄c $)]WNG{gs168Ѷ%/:,csFjoS= b?yV{³T;UI؊'uX}P|ISz`ņQgXi8ORlcY/Աbg$0"{jx B¢y-dY[d9:%AS%̥;se[Oa:C 7_3nV aUZ<&sՍ 'Hy1L8Tj no:ȷel(]vfJĽlgESE*po ֟&MmNLi%'j_MT-w&cJPi|kp7/ӆh7PMfh N/ P$v_$Nq p&3[B@2i';LK6yL:_d1h|2-{z U0:1+Fk|3' ʑ5Gq1ŲFsn&d#OѦȡ 35'3Ny~/HwHV?Kr!=舨Zc&ĝE5Z—Q~ۏ]TǽdA~KKy5eb/>_D7,-_b.]t_$x): d:pzG}F +IT|yhNW!_o1K }| #jn)x >-"O޴z Su{r-m'Ʈ#NO3Y}ʢPs>! jz9 VC &B V13w̮Ubb\_w`mƍĒ ML(/7t{A8gL=u):j8ndsXM3;@m!ҡ fTu(_7,½Dq}i{l`2(",زt4P'hs%X;ƆfM !M=WWsW&P'k>^%jۏBg|y6Ɍˉ/)R6c\c=Wmbp([&J)rT\X#1`K:% P12Iuv~P<^ecJ\R-G m,jH<TխNzS==aҔPl[Jx(S((:d3 tRt_˪t b$gSd$ޫw$>VGzW-c:eʝP֛З|;g. ˷РnCZH~!K8/ V~8#ɍ\CQct*·m=8~6ٕ-AӄJ2l갧BZ8GA%m|N=Ї/p ߬IƂRФQ >wu֠O@TG7bgS 3d^|[HJDD#iI$DLbZoE=>xsYfd2&D5Coj4)y_>e,G爦¿c2[)uzS5KӲ–sv ގ{Ӧ(n tQů.sh>KW&Yԫk5LTj@*4d%JlH)y z `A2wUNrOT[\YR)x0~A8zh9KzQ VeCzhf 0r %^ TJk):Jwrtát1bJ+0c0 -*TMٝNeIS.'!ljg! p8i}hVj4q;)/npm? $uZU 1ׇ[QtܴI Բ4s n5 ;#wXU<0̺֡be71OH`"3ea̢'K-DRB"Q`-q*ߘ, fJBO~|a)3uGv ^OBRY9]%˛(/(z8@]ݫ8 3dOGOnn?]pjwYxiSzT4q B >ڧKˤ;6()S1-ɎxJ#L|Au!2N|D?32z\%HXQ`n/$uBEzh}EhT }V8 ]@JKPv2 \/ 6~yՇ&]3Qj'#;ьRu2띬AP +7B<⧔ NNؤDO_Mj~W!ODLO||$Y^DN܁6Y{ -T,#*m-!m+_+t[m ~igG\NjWpg]?/_[mze+"EЧ3#A8Q3!NɐFz$uxf#%Ĵ"=<;T;x>5l8=K_:Jնp.;jA/#b'+QQK[A_$@ }͹M$~ԸP=C0im*aKRT ,;gE|6X=S䐖`XDZ/WҪ.7H霛rA^i "Ǟ4q|ABf4K備BM]*|%_CިE顮|ew] 5ktcV礊d-S e]91{}NgTlp PWzǤaZe1d)K[^pa)zg9 r@aXs*/@Q>jfz5B<2qL*+G[ _ +E7238H2]i ilЙJC'I&.:!WggI,io9]|RxhP7UլOIFG @T]$ȼ&>;h#Y~1IyQ#cO@ 8z/ %x^{#If_DC`n+FŤxj]y瑵}W:ݰ4@&4s;T!5jwo 1&'587S(lJWowfV陁/aM{N"2dK>.XKG}6| 2eAcj 4SdŬh:h2.wmSK`gR-/0+eGBawZ܄xu=52ݮE!`8կOY:1 0#~;5,u0oۣ ܄2X[)Y/PZ̅!wf9 @dΌy:Uh{y?RD8!*k0Y4yev / "{H6t`|ct;L4 +ن.o, ]|SƗ;?* XU6#],R^66l'tRH]\-ܢ`crҤDsFQwIe:IK'RoQH烂hpra |l׍uk"IāC,Xg4=C {^`+[u^JKj O2fjFre*fD"As15z nWy5u>̎kbNV]7E7!h($dX) G$SSr퐬qe1y:$.b h*g2)@bgap:Ň8aG`%K1*PkBbTҢvX kt1i8+C@"&A@ ';l?db̵=-'K֍ZW\ (ȐYOVp}w'rc-b8)L˔?o-^u aȴqgH;kO٢30(eɐP:lem[=Umj] p+dz\Z qa%Lv8ߝ[l8%Fdf$jɯymzN*a;%^r%)-K܈p3V8M=/>1X, 4y͝Tg[4݇q ZBM,XFtP͡WSi­y\ro}9g t]Z;DRDJ0O m s^V-(GTf_w&3m<[UƵ%FףPeմV1"og\6d E7C+T۲Q-4>hsA`%rԗz5l?lTx25唶WtFV_0p+ZvNo SjcGXK1bqh;>0𖀱q`q+1#ӭ k&]ASˡoxqB<}˞gacs^W<>$역?b|[|@d%RGo#73ЭoR Dj:ԩEGR6wwv)fωlK퇦=S4-LbJ}kQ .{f ~أDgmDYZJ\T PVj{h?q >8tLcG/S#8gM{OaC8ߤԟXׯXu0-\R9_.gU! Mh6*Baf\3jƃo* "ǣ6F_Id{Kp:d؍1xߺM`p}]g7y|E3"gmp!pzI5qu*XG32kw[;H ]=aႭﶇT^|TX&@iEr융ZQ?J3ίx^>G\?{!yoYrnN'Sl/x(0y'ǜmomw6|b> 26G&ړrT @t,D%|D H"ҼvޯeÉa#&H2$y!93?)F <'g.vr#"xt(y=K1='iQ?*tp%&'T~htql-iPŢ\THz/b(C,*n|LR.A.9-c{!E>}8 xtDYgnɉ՗"Mh(%FIإz_hb>^Ҥ-[>1ָuJr-iesEScsyWЌN2&rJUneXvK;/n^%m UX.ٖ4h{GZP4j(n 5Nο…e#'ϟsdg$EX`1[M T*tjC C/o9{BALxsr213}z6nKKZöSK([xYnsa <ş}U |)xۙ1v~ЂYs{tnLŎW&-8 ˝5oSrDe$VBg( jnL!៰'wH7AlE!# '?[@G~l"w+*3"osg Y5,b4~Nv$ 4vq[/#6^n#ߵ;mM!0HGj gioش P]kl jW!ׁp$QZwhc6ZQ\0yܹfqu / D ';u}]( Q-DfZJ͢\rSaCЋˁ݀_ߕMd8nqlsc.^(vvzځNp/ǿr|+.!}RIŇG255ۋKo,{Mco^񝣿R"W VUAJH)F@@r~b1&f4۝Q RxeE@T:țApF&83A/^f+عҟrO*V]$fr1w?͌`nYw0R![T?la[6č='دv,u,PnWls+ni^@|[ J}ǵLmJEfza73*1=?c.1אC872کPx)VGL)s̗4J8ec<^)\kY-/DJ “Z&x7wYdj2UDx󦷉@ K`l~ Mod$_nnxd447J%%,"şif_Z,sh~b3~pxe| y@BD՜Bcҡ԰)[RCzgξWt{-F0FerǕI(ITwR5nIe$}3jp*/:W{`F+8Yn>X4(#5Ѭ41o&r:U}"w\뎵fXG!`$^ g [F)/N:hZ GĈZށ _B Bg,%`@ҧ?iUȥ8e}ӐeHj}aIń0WȐ0_'@{ kn')2<%rU9Rz fD#X)^3J.{xxl:8n`U'F|5e}\Q^WeHF:Ŀjj!nnwh8ER~v, R?fT$1p=ٖ瞄JNnPA%3ױ󓢪]'3V TgS54zEZ`y>WqeG?]ԈzDjKW LhI$]}@Ԇ;"dMzR*RD?G]do&;/Um" 1~e=jI9Cdп[~%UwwgMOؑLkΑ9>cnlaʫltJz! 7hgO'4g\]X[Fb[un8;~4ֶSJ#nl^r|E4?!E{؅'"x53Y`S+BBr7By( Ӝ`Ïyo ժTH}IvU( "@υ5I@3x@*X3͖z4F<$'݋TYCڇ"bOp6\b{LyȠ$]HX[L\q\q$sܭM1s evS*ذ&0ӿ MXh k6 " IwAMn}S@tRͭ]GZ7ؚ{Cox)e1GN"J΅N}`̝pi4uF.K64tY lS=2hKJB|uX^Ah9+fX% _I&>-ٖ5r9OTT5<&@AIh?JeC~ߢl!l{Hvu?7-ޠdXh'^@&U|)"#ZTp}hidG x?T '|@ 2YR Hy/FF=Id {6V<>Io3!vC}ϔCD`5^s/8 $Vc~Dp6DO NaU"l&#Y9KмTykì[wA z 7i.vfGYLY*@Ct8 }0|H1&l ֘#ռOðQd- 9>>\ASL?ls!Kbx!,?sZ_ Е oV;:"gi@o[-HT w%;IhFeH;AԵ{tUB0ڎ.ruѿs}yD4 i)82Z'ePT^MB##Gp B՗0m#7Sx1A6T49Hs [ 46Mkۜ9U9A9yb ƃ-$: o[iwOxz0 ɷxM\0X,uA ?}ļzǏsco) &&1G'"w΍kbxy_}_r ɀq@^Hrd W mnY}oNRDcDnXo.ȁ5gd>oԛ6[E3"#E =!3?h#Q`e_P` yisX3 $n?sQ%L99/ɬ{!n6_Pk@4O󙙼3sqA4㽌 \Dg̅ZX!GA֔7ͭĐ$m+@lD C˹{!eqnCR=%?.vtF$*[VdzKC*9!醟&f=C+Z\G6:i'r}«ޝr,',k:UIM/4lؗmA_SOʖ4!qs2}'ۅXvU0JGhx&]إ_aKS~$B>K+:! hq7}-`3 I!]^=b8E죏! %DA0̅@*=Jaagw!m SKQ >R++Td ?Єo'`Ι87%90HbxO6s &MDž9D^v;Z,͘ԙ#RU_俺D Rj5񁹬։w J6qO,WӒF=2_(ιE z T$&!:{QBoWS+ڄ']VPBekYx+5ɠG-WN$bYT3t{;W/x_qӼڕX ]: 7UDUGKdG9n %"czOyi7%pq拚qWXjrbXY.Q+"Vpt)O /}i@L@iWEJHTFUy5&nk%b=X i8염ʷ}}\Pb% GRTx/@H8ssT&2?(D6_gv >JKIIڃ4[ 3Nd!z$ {_UqGÄIP޸v<#n]:+jtӿ,:ӱDݰ5T\_Sc&7 ÃK"?lZL8 Lo'qߥ/Ro EäHSMc).>p>;JjvU/,A>/.n @7/O 5އz|n|/W--CqjQ3h"4ꪆ\2SGn˸ |z1^:/dXg֯e-%i/~%L)!|㑫R^޶[b.zjH5=I.wX!ZRץ \4oSm3>R9;\qH}tKHWO43k<]*]կH{Tg%igs]Mڙ)ec0)}QY, 2uv=_{R} _6"lw3ݺv2'H$5ӠËOC\Y 'g;hL82ߊENAJ̅pV'zEm*PCO ΔedyW-&a_\+< >1^ԣ8Vp nrLî9qE[ 7ӧ//s:pB_/wOZnZ{wCjw8]X-ImDo&M=loh)k yW9t_cbtί ^tU (R8`(X\t(7R_7tuKLZwN֐c- ƫnU5>~rsŶwݗ[9<}J7`fGwz my3L-Y(2zBwb`;ٙɭ,@M|ֹy{dE7Mf#_p/zO,uR4ufA+=.A"b6Î68Cvλnu&&Y$xH4uۚE5zjɘ&5[w:#LdP9x,Ku0Wk? 7\~'0T_ >2s4k3-լqYG"̆.&գ<(`<9Z24Tl|yVǶw? ~97eP?}c&9)ҊbU P4i\Aiq]f8OId)\)}ro%NuWSlӥyM7%&ġk^dS_px`NL'D~ι3Fu"?܌ <7 ɮTV?4 2\1p!enVvDŽ/TT&=cy+ O6=' ?wyUV (EgQ[<+4S@i0byi$hxm c_QRSٯߎvCnNYl\rD+߾}~/Ll^Hܚŏ$B)x!9 DΝ}J"u};&^ ROeMhڏЅId1D2.l6VCqU{'y2j| cbMq`S@8s⡻Ȭ$@rԼ`&Vu(ѻF1f7t w ~Kb 0{:vƏ]3/F`O8m@o.XNފ6kKmk :"dADI9#8=Ng)+l4~'LEoa z O#(jaXJ2-Y}@kR5ŰK4,G;OV5{M\ӟ -odY|?X$m[ϛwy˰djB;hNk-mƹcW6v〓A{5hEJ e1=hl>|9JM ,W\G+o <Fȡ@_ #$慦IB(YܐdU0.9AhceYw^{`Xjw<@|Wܰ<_csG̺; f/?IӢ#w$+]K##& =DYt2(j1ȈR+cmU3.۴ .SYt{lj1ceX_&\JoT#-K^w2.[8rĿsJZc/v?Vw(S<^e ^e#fqa}u\#;>7,6c^.U ) ~A39;8ۀ,yTC ZF'0Ǧ;6&7[fhyX]̸{hW!BK&0.WB?p*O38eX|U2%io}wP!_q ReIRhz:v jBGSr {-nYkW'1"H@"[k7Dm(.rW6yʯKE u[`~tDU1APT$sZ@%/HRU{K h_xgwZ!@US|e];t-4P} Y2Unj) D{t+mk  1%%u3TsnQ)N1ӌ}[\e𞠁 .t$Dy`ђ\88k[eScٗIAVmƞda|^R>Ϫs< ]kHF*bC7&А[ƇX;&4m5d!%Y 1*h-͍>٘\w? I1_֓*&[ g@ʍN~/|ULL8ľ1 x2}jQQ$śI%ȃb|צ]me7A8,]\b{yk?(,;S9?8P/3YHt3~_y:Qjx _oj.O#H3 ozts:7ga*OF@n$٩~Mg0%;4%vP #~7|F>WtK! t跫͛e-̇SDj9o2ւ9cA:H<Ou6LTSVb=Y/ZVk| 4Egrʐ^sa{n F˅]UsJO MZ[}184Wcf~cYIsUQ5  wҟY9F@Ck<x@q q~ZI3=`l5㌉lQMUm]^\C~#ٝBAGߠxݗA_'7ͽ?BZ\b#wz o/7':L>'O )7;yG>imbZ~ye+SDK4S TaϱY!M6_}|$Ll`}AFS1).)@T:4iT6cG.d Xg2E`X\wcIOBfXdR~#1-U4Irwd9!þԸdTJpLXVTṆF x #] =A Wdj ܘO̾*&2j!\0s&rZ/O<?ޢނedD :Nuor`3+j) ݋${d66[v<5gm܋2G^ ^]>c6B`!f[1Z ՛ juW$  k7W$,qryP\zbսaS [,{`Mtf1xHxXh%vneә*}hS/LacrB X4Uq.,Gyv bvgmm>mlX8(x3)\+~ƫ twI3|$%H u5 Z7~\B]/Ĉ#Tِ'^w $QUIP/y+7X37 %>.B"+`)#KXkܭ5\Y~N-ݥ e\Y>,@36PN >H!8 y-B<_'a(Օ)$H })T􆂞nid963JĀX@2C`u}nq0BwIVSE*q3rJ;«Gk|.KT^N6!̽0'n tFH_Pl eh2VWo%}و:攎7mbpcdd,8 e ,W$m};l:*[9YV֠s:`+1CՓ&UGA9j_ҥ[; +d4zZ`S?ɤ\^6yЖb|S*x#;at/槪vn/f- a\o ^ McJeC繥I{<7QlԔ$9)QGfwdUk[Ήr_I!Bп{X }r{9NBp*M2M5juS+y #* md>,8@(AZHjsqݽy瀟L(FdrvWv$gAƒ@p&֦W u>1=Φ qpŁq* ̻!ҳ/-)BRUvD>J5=B0Xc\Vj"M:xgV) l]#y'ԮxT*2$)$%$8SW!#5?xk½7jj 2n5!}}M[B1ZvqLʚF~mvD^&`BD -Oj{0 U/4,ΧoL{(;W!IcMDߓ6Uo@PF3-.l |LBU8{3)]hSƤSd,:pA8dwsmqIyaA)A9 5€]+aBi+S_IdVZiՆ%|c|zNЬgD~z٭>D|lطpixze<њG,V=LYzM窉H}xtUgl %|C=b44s*76[ÇI,%#QC܁sU%$uiIgs霘`'&M_;joY= >2?T166&@fy'{EM։Hiawς)oNyPmG: %%Y3sJm(t+?^!P^l4b@l^m*&j|" lKlt۪E#_ sUc>+[4IKs x.s{^* Cx3i";#&" 0=RV%>}4 3nloıg4$juz-+1h ΐ>h\qRy| ii!D䛌lv! r>c HlyFEHWqv$Nm2#o{\޶LR$DIQjo{tFX;y9)5 \lO YsC~9jVDe6CT+ulKrۡ?=Cd0א T3PQ./)60L}ByfoN!~3AsBucߏ) `$ hdތ1,V /Scd|jN%4 }ȃ;BHɔYX4Os!amc?D(V[!+D &tv? fw1r ~r|i5{ھ,YLj!h5etjiQ'U!iG1FQj7VMEO{aYH@S 'K͜~Lus_b 7vnC {;?ʀY2f^.^7@/%@ o]+Au%xIߗc; 'eg^ĦBGr@e 8~f,9DTdF%1Jsi-&=tOGn+E4Snc ~){sǃcā$w[IlITD BHG 2F5P'8+nJHv6w+[Hpfl)3tlo醶(.^E+ -We"scjbi%:zY*BJ}IN| EVP|N5)Xw AfWB'͗ݖ·pW"t`82\P\G,߂V7)W^'`~ge v%_f7M#6~3T +;8 Fc`[ (*dJґ# FluXjw c\挒;6۝Ju 9KzT>% +@( N? Ft)l.hHV҄EpI]̌o$™f.SrT`ǣ0W!3yqVG)skkSsY% ty'+ -VYuoHYզ?OIw7QwseUT]!\NmA`Jq0~r/LR%5,5Ckfp4y9[FY% Eތ 8JxWǓ\<;e+ B~D#=F:m< %Nz>QJUh7TtVy g!`*SPz=+iҟD4Ic'fJnUg_ZoՁW}3+~l=8w ~iHRpq8p X3`GCwS-E6ʐ{Aup!bd1l ͘w# :p 5εp Vꥸ@Y 2 d otx" @!{m*(;Z[5_|L/ V`;x<|yaht񐵃*krN۶$=Ẕ h^Bmn)  մev[G+ܦhV2a#6˶Wz"cr:zNV#`o,@u0 JNAψHV~ikiVbeS#&i%nNmUp>O;{1iW  {Wаg&j ÂȡEzpW3zP(-%$Bo*t;pY ܹ64cId_jū<7j B Ɯֹncus_77xԈ]}_Ճ1Z`EctI5KǑ'&eݕLE.`֌FmHVV GѪ^Y=E6J_K?I$Ksfǁ\QVWʻ/8̪sLeӌU7(sυabPMK܆G%ơKq l~|g_}>P6,fb;bj+؆:ٜckrڙo BA1I=nj+NZ+4; zRi8$5"8@أॠNC<Y/eZC^e`c<5*dH [u {MbE G&ڋ$I'^! Àw請46j}-B7HV |VQOP$^QbxmA"NM )_e]:ZQcVG.(krT&*%Ai>i7%(2=lh=^&FxcbT:襔|"{"ִTCn"32%*Fǖ^#J7JjсE5^Q|Z̺mfeQKL(RXH(TbyJh|@+dΘ&\ѩ`T9*Br Ch58#\D+l2%\'8ڤ+ iyK_" ֽwh2]86ǠP̮o," =Vd$i|΢HIKb9u?{5%Hl05Hq'Oz=UJXt:eo\wBOG!N+{vVdoķm }dQ[]<~s=ԎؕI %wк`񇇰Q HZ8hYƜq3ES3ꓸWUT?0mAe A|1HBAȬi KX>f`6|溄xb3+YH3߈aO)bmjWGݏnLiBU Z~2@zoxUJ7͕_H68ARl> ~#U1g0/>q]TyT4B~I̚պʊY3_wk'bo,51bs9!gv//\n;?HMFF_qIy2!cP]_*Ԉb. YDŽڅ.S >Ƀ/{cQYU9T#Lg~޼@- WN.`,A;͏zbB4T0Bn怼WGb>F<Ƶ&9@nq؟[dyֱާ8m|RT0T8UdxuniV3D˓CcAQXJO ٺ%̞vQm7o7W8) R%̝12~ml;h5|8 P}$2Zz+;m~F~qm'2v_S '#qcgCO%$=Ԙ~ӎl?Wl1 .YGϮ|+ 5^xR%+:2:> *M/3ZS߿z?o.*qo`:5:N w#fO 3Jæ'P.0e{VUI!A `ώ## 5}U?[>FHmEElMPR+,0Lj)|8 SN@yؿƤGDW,k4X +~FFC=o ۄ{g_LǸ`#Ϲcf)q>!ZJFjh?{@űXm)E g )(j/*NkR"FxiXEbCCCncEM/+0W^5V AD`^JiIILj5wABX+@~MR] cUـҽS&㬦e7sՍCa((K-^2NoHyb%~ʰyYhuNF!7&1xVniJ޽ .NX5 6{xjW\w+`o;VTMR̚WGQCń W<)=kn+ W@I?kz.@=X=;vEigN裘]W)^cT:Jll4F^w*^roJh= s*5rکoL4fedgPiʛ G{*| :L0zK5 \#1'A Ese' n@,?/[Ld (9 Vڨ~8EEmvjZ Ҩ#tTӼq.B] P?](43;F3ǟ4Y" 7$8wB3{BLucy7xas +1nj5D]2P_388qeE ԲP%vyJ ]DRD%gQܐONoO_r]'te(KrEA%@[N4݄lq!rC!d{gC^ZLsrYU8TQʥSVyU dt߿EsBt%gk y}@zi-7z'ǧ=U?:w.\; /T)j'%Cc; . 4 ێpݑkmPy~ eei a²a;.kHw~,g.ClZ!ΰwh/qO]sGw$JdtP$Ά\OncoM)} H,|!,d ں8{ EkdU ' )q˒Y\#}VQ)w.E DŽ `* .Į-LP84+GPܟ=1͢ Ҥ:žhݘ)Qd| ~V/O Št]=b7ÑҐsYuޯ=nOMFA9vfk4MۃӋP%MJԨB #ԗ@vN&96/MLIv] D0߂QjSR[5c.;T]wwTUU:q,[=1,O쪶\vN/A=9e bY p{ (np2t{|rd:ZI^ Ɉ5uI-WHs95Z1̈β<5{>|NPQo5ʠ^)[^agXF 2P<pJ(Yi f/=$_B^8Ё<@y=`i U3hƘ̺[iG0ټxb61b:KƁ`!U5dgp]-i|֣>2YOr/ic'dRJ#씃WiAأ $O?Q$q&/((E~g^ AiѬIoѽ;?qX,i% &n>{sك?0t:)͈.` "9ќ(K|ɲ6c6gױD_kQI!#[%yI]'f/Ow<f)gTD福4@}~Ҫ~>2ܡ^f$mJkW#$B3%2GPUo Y!h.GPʺ$ǽ ,t!K>>Lye4+Y۲˜֋ _DL*;YrΕq7-4#%'i#dmtSܘ>`1K=@y _ h!v#D-m;ANE8M7Bӫ3ۿqU *8=}+[I""8PLw.[ WK_\o/s*1 f !@G90vQ <0 |i\C\ЦEzlㇶa8yNwgzo=epCM2 S ƕ/ ̡&.pջA/^ v}dgͿ|e*Ođe^a u\:/}Oqɯijs\5dudI~NWޯl,捘+h7_h,D:u-FJؘx#>lU;ۓ  bdtFȷ^R9!E~S9,T8t$yMBNgCZd0ظx~O؃Ӧ !@>EeѶYjتӷEQ0w.[k)d]u `62?'r2e)Gmf^]>S#v,IT{M0 Мﱚ UqN/V]/cTNqXx% pEtY(aDr"27dn%IbVM#RYHIkknԁȜY/F|*C_P% 8}ֆP׆ial`̷5A7JF#i BOr|<Q 3>ǻxQ7"fP6Ht vj$A*h<=D<,& ׷RoVp3dHsDAD~?V uD<9 X$}DÙTȖnq+GՋDuT 9yFy"*!NS} z>4y7K0L~CVև\P|I '[|=`l,ͥ"zU[ٵ\msΉZJh3@Tp:(`[*'ދѨҞ$7;˨S.'^_nt;-jn7o0hLZ8% o9#35\_Ͻ Y܅u9!vhAچ#d:݉)5ea<)D-s, p_ a}h ? ,>okڡgGȺVRH3S^~o =qw_Z1m:Z1WE}2Rt-.q§Ozª^=vVF޽mxI^}i,xp:üuXdpcN.׻y{+X3F:& 1AѽDJeu@&|Ba>ۓEvK֘=ܤH2l{wrL`LE92 y'\&Kf7ď;!xv/K>߆C1!yTb?-ܬl3CpJ5g rp[AMܶQC\?|U dHܛ==:REI/*K֭4?<d z `r^j 5X.PD($2=k>pV>BҎ7:axcMk"`K}]oqA.? GÜI"^+<ĝrQQJ%v\ \sϫ kY.TT8H7_B JJ,ZoUL''܋<u4?~ancRQO ^̌ü@ ̉Ug EYfbpQ!>܋/x@U~B9* fGg"ʦ}-ڸr Z$)JUd~(!ǓksFռA [OH >)Nj`-A61<0c3q[+mSCWV2إ|GmO_n RNlkZ%W/ސAy ݷ_JYZ|-d a@7|Θp`1~}JGp&mſ uG7}Jsu  ' MP.-+,y 1lGFKZŹM9,E횖9 P`c.+1 l MsY KM^ U!=" too#ZS`yX*>ġcAez F;d>>$XY렺XpD>fOlVP\pTtL|m (q_vZBM"h8E9煏A>6MjɈacx`1HaW'9aR˨l٥X%r%켝թ+.̰sΖdlxaNf=Aް$⻖s~s(0na[*cj_tg:{4?qLsUfrkrHIrߣډxV/#\rn:.fSG1Q(7a.Q?yYf%AveIo&u<I]v4ЇV.@N[?μ_JH]Le^& /;h;4`$x:;|lgL|Ձ u>ӟ~~c'LW-uv Q`m!Zqa;\0?ֳP*?H=$/mlHص,PdUF69}H yu1gg˶yV_BlE k􂣞T$}5E+Qa)*679qwյ@;}C=-{ʪ&ٛ$cpg1 v䦎F:Hv߆7t5ednsG\*Vc&G4&}%[ gK|G"FϐM;?UQ՜)j<k.,nB˃ev~;IEX3,--d! p%e_6 r!Ѱ~t߯X'osly<_}$ܟܪzVV=2Mp|ɫصѠ, 6Z}&g1dZ$|X[Hu%C`p0fK}$z.3TY zc@O^guSs.aO0OH0~k}סϦ} ;Xi)R|(bAbڻ/}vq@?an-vrG% CO*gnTePSA󶐾+.Qpb`mHj$zE*'#S1);zy`bCm}B ??~濂q?xQaHEyUxr.IVc=@PnI`v}%YqL.PkXcx/Ky%I1V7{"ޗ#Cs;s h}"ʺ8@6=3[ՔkwwNʴ`b5FXmYi3\fA# "b`C?}=PjZ (Zԏyi~$mL*G4PI=CTM<|R q0Oz>caݝ}>#5 %ia#}U@èwabwq!Ureg9k,O qj76nZL4n=q{ov4X\l7 x%OY`$gC7ÜavJ7V0(.;y(u,O1mE$oR ; ,ʺc?H6-b<_qZ$яCwׅC'#AΛug؉BqP5$ϒ n/3^_+!5lZ. d% J xգ(g[mwSrvӸo5x 4zb 2Uhu}z|h5붃[ٗoj*N~5FZFM%buQsK1S ƘMq&FgKS*u@![̈DdI8ͥ?vyEy*}F:#5c2Gd8 3nBJ]Թ9Y hw%L3c\N{atmѥb"` p*7;@н iniz^H}4J^<᫛V9B*R~L. Z݁*.a=U#IBSn5ԽNB!*0^]jզ>~G@STy6IG,>CMAz&z0%v"rNYz"c#Acc>qlfP4C ttYMFC!fupeD(qSY0"BnMɀ;;D!$"=xs0g)`FUQP 2҇c"nȏٱ_=m烌JtuB8ЮDudL~gr┿1jTL@wC|%BihVG-%xT^L>W(a9 E,㌤\]΂W($L0 +ӄ}L P@݉ `θ\fk" ) +3%ok2Q,q1SM7_c-n"xs  U!zLR)\n,c6A+Qtvm@ZCEvd<1\߇ 1Yھ?7jx$.Y;ƤwxN/!.`tv[x2u[}@F}a\A2#EK4y:X/={40lTQ`$Q9h\͏"oэ!0O *X 6l9!ſG`2';ij~߉tV~lgz@tإI#+̌|N.a6*U:t ^e`i=G\IgSic1m<>tU2v0@.yV4%5#[ o,Krv3",u.?(?pˮZCV͆~4ʵ 3Fɩw胋9ԨJdČ0$t"[n0{E(9@lpfAYs&¿Ȁ\vĶja?KJ0ncMN NLh, G9IiF2l;{=C̲^UA14>$?R$5PA{ BoJ)0OYWXBK% *%iW h++m|xټ=#)۾- zʔj Lg;+q,nۥWi")*Bl )u)ҫv 2gdc浍FZE= [yx@dsâT^-h2WG+~:0j)<7Xpgg@LJ5L''NMeBD k!.q[!A+1! a6^aEhFQ'f n3)rRbtc\Mw@: rxeڲϦfcH,/<5ٿ0L)@=O9y=`)r Wf4ϭn*Xڔ%o<DcN9Ԗ̶tOAEO62d'g`gDa^ Z%w K#|t_Vȸg8rV=HFR࣪3uȂ2V6/%cL2qI-cNPp&Tj &f`]"llp"x.^W04x <4.8Hپ!l~UqG&Rv!E\N=|'!$-VrJhG?y@c`Pj_wԋ^\ⅦS:׺`yx󷔯_Vqڞ2H߳ Fg,:U@3b8\;F;pYDh̃G̦e3I)'e *`|{BF :l_.Bަlq\F/|FQjر1ϖpËV-sgf/w*iLIɓmĊby;d jOz L7tB݇GJHirN]XkG%WpG9.{z)67> oA:(Ah)o=ٮٚ[,X549K4>l停/G}ʽkX?R;rnihԑB.qLϛs$U]JVi!>ݞa(3(}:û#5Sa`$B8G:E3aR?m1#l&nHM2~yTҮHLk)ݿtryviXr~hz6@DNdݰMG񢙟.EH= K?Lcm?=^p t3ؙE@/V@74Sc֘s%HOAer&ei (pϖ/(QACe?)?=\XUq3*:ل-FB(_t)}$1hWwfLh@ [{w|lǎtq}تdjBx{Ny.\SKƲ*ķ0qm>RxLE.j]40\S}0^e9rZ4 φyq*|\D}(0g>%6=B3An bƌ 76Q" LIļ' /FrEK9!V`w,jjzIZ~Bon+43F(5r#$w^))IA"^EP|NDf)`^~5hh:R{qG Gj&Kg*z.Yo>#?Ql&dzu?(qY8cW7䛳KҤ,h@*KWQ@H'G~7EO{:ӎZxרWї:"Z:X|bȁiRLiUCF޶4r7WP6&1zG^*Rȳy[/p&b8^YjsY \~ 36J}0Hc_ȭ]̩Iy%I x-1έUX׮><}PUw]< isSū/r9A@s{@i@~ _Ͼq THNvEnsR/)rӐYK!mI@xxuw<\ !fPZ}pDXiXi@iH._҂bYc򊐇4I`R^g\vw[~GbV]~e*&'D1Izɭ{N &u;p"M"4?m{H#gbkRd㣘U޼ .^oPKnA.FV_-o *zI\50=aiw$U .ɠ3މ _reT+ ʶA n}AԸ_™2s^QjYce࡮}o8F<PTPAp)A\8h42GI2)BoSË1e_q{H/bAE;bY-wC捃.UqjܞPdwpAt qdbGL7x aUbI4NiN&/>aUPUP!MIqSK ;dMc @@_T.ř7NF=/7' a^9OU8 BatUx-PK%4e\;zGLP`~.2f9?I6VbHgnzV}&JgN _eK:| kB֕~5u aР\Ϩi"ŭyb |ߙf~3>3rte>$wX,aDWLW+Eb#8L?q"k9/vv"h*Oiԇs2Pv罗L!(tKoq5"#u?k6>Brtb/ݡD6BEI`u=㺅j -_ɩyB4@iE_ɛEM2uiGAdnJBK#we=)Qsڋ߉ sLUZHy5l~%R{au}STIY!26Zz&m'yȾe;NjWXB.\a-ynqOL=- U _.sVmۆ4pv4>;+Vy^p= 7ѽ4z0CCd?BLVcd%]k au'_yl¥jPA-L%.Lm!V*c ކÌ*9 |kE؁yZLow"=)\-3*uyҚHPDl󐑄[fU)%C?'#<&Lz%^hcjoxxQ^.tgqxZz,L䖔h'F*-<)zMp[==ѝ'1O@Z[.H0.x^c3)a\0 dr0z"gO@eedFzV<[gV5nfg{(4 =٬O(B}Μ+Ak! WP}՞mW͔UJ.]bX#H,6g[Zwhu- 2t{>]"&*Ol'@3x)w̜̺wK<#!AMgMO/AVKF${#LhPh7`xp$A L2s1y;H>bЈr"州*,EyMv;BXr<)6z*iTq\&_Ӽ(+[ϽU$ͳI;1]78 :4ņC&vMg]TޯQ&g,+ǔhp5>z{bIiM,s?s`; AC=vҴLqb߭] S}h6E18GG)1ā#dBd<,lD'80 %t[r*AsBJt͍bQ4[yI-q"2zFD\=s&^%GœA{4 05rv=ƅԑq@>d@rm)"HY{<"+2Eev&{NTmH{b$̬wƀ#{R1[\a*wX -dNs 1TΪG=\iC:=F5G)-/B*0`Yjűf.~d|UmpQ埓OI)k)o ?4I79b3JxxG<]r~Sf#80{5f =},`yGhn @xFF=/lH3RwNCD'~[QKBƶc)+6oZo2>֦̳Ճ@:iуUV z)_6XJ.EnhCnQstGiINhuHIȳvw#72wV2Ig<2}⍫Sc¦7}jOzt<s'c@yN8*8 4(\L31M3!G&~KT}ECm/7.~Z!K]}Z,Xw_.gc~bwT-0IO;žhh7;[P NK+Pvm/FhCM/9sfB* $fRg&wFPgFįsXH1g]Q dU ob=MFf ߏa ϐ|jDOo}Нh,1vIֺաpuFV.ّ)޹.g M'%ہM ;uHo;Z.tWglb{LSHը%vh߻Elce߄S?]жP҃58Hpu?f uo';EE l쟒a8![z=Bb:RT8BCrңvF" )ƪsl 8ǥ!ev%F 3} oP8LyRD]}n^`VwW:4glM1~\rMd/)ZB엖~&梏UQbS;vgS eyc10:tC d$` ^J@FWȐG˰ރxƞ[+,w<'RU oI"񊀛hǢ2;Nt~G;G(ؒ> ;ϝoGg 1@FC/7lX-Q+Y:aZfݠ-:..-¼3S"p=:˘^Pw!^sv9)YJ\t@>}=~ W鷂1k.LcAXIhI';'يNԀsM!N_r ^/dhmc~yO58x>#X4r+#WӦ9FV+dGD娆8/ѹ,ģť%& гܿд2! QMmsh=#12jA,}sg7J׆ykpXM?;7`5'1PPbZ@r o7+|=#m#=jȾw^Ft,UneK|Z g iߕ#$N@YAwN bcՀ{C )>XK-cvFq?k8{#T˂̀si/& {\05DvUЗW52ѥ.{.78`(@=S37` ˨ih mô2i@V5xgcķNNJ3/Pg xooq!aˁXk [npLv3CȒB'ios<\T!qJGR~NucɛZA~֭ Lσ#?(SL %sR 윳K6;R"nMZVۺ9 ,cG hk_{Z(} H3 2p>ǛsO*3[:yZv$ .JAjo&;^fQh KhM,0*%#"H)ASD^u >qBd?jLv"-u I`L[FbX8v䥸?fD?5oLֶU=oёo,mJq{ƵxtMmgtd(¼4'`5vg t \iol ˺"ӄ0U^cHMߺyiG_MCD0$jPxVnY#kPNBv,2g4 q/)Z~  NU]rL$ 9Qmvv?3Ov =?LP7aU/dOW-И4}igpa DU\5պuLr ۃ[Rky*\?Wֿ!j[w-sZrfDŇgۑoLwfRƁ 0Է=E838$K/cQ̋OLijT2Q<+L;[0aVD*SDz˭]6,,M(%I̒חu9'E'mc2!<:Q ~0lf:gY1"ePIXKCjQ4c"!f-X"9mJϮ U,9!"qRמ__ h&${UL<1^yFE1A T{Onٔ3Q :PW2p(r{n. dPx״p,~Y*ijidtr{+1{#FЗ3h]7/TNA*k0DEBY-/(;㸲c35u8)YW)g.w /~J2HI1V;!$Z0~9# .yJm4A|٦'e *Z+? ʰQ\LΨRW[: hoq 2Y-~_d߬zw>2I 켴|6z\cd&P@C$ԧ15dZ7w앚_#f{#"QHɔ2oz[|Yw?ҮVYbᛷxcyŽ%mDj+M) XhOO[mUߪ 1ޕ-7: CƨDч݆4*/Oq ~ΐgm-o YM}z.*nݒѼ͐^N ?auZ"'sKmDG{nd>2Zq$QH'aLbU*?9G5@-m>DF߳F1 UcM;?YY?i _ <,$[-) 뤸HZ =h@~:cCk{pJma]GÂmbjJ-=>ֵ)le veKQiG_4%T_CR46n3bGe4RARnUai$Y[f^3&S v,LsyfD-,~=<ˬ<}pyX[TXtq;L7 ~V_!e簨\=-J (?lwz+ex0{[ Hn#y.Yֹc!8v?dR8-Dga'dz@9[i okݲZDhrC n (.;|a:=؉|$CUMOp陀!I$Ye!Vj~NC! L/X.qW<_)!B5mn[uxXrE] ԭz梼smɼpn:WN:=hqR?cKQ<7ل&Sk5yv}@EhsڑIN5n!f? v8@D7q #+|_26yQ#;w1@Cr(xW@lxZ( ħ.&T<>@:6c\Dc xx1+NVU3)9?TCYGb.yǷaC]R`M@ 퉆ts'=c;.wd4N'D808 -"f(=-*%6=JnJ8Aw@Xb~AQ#>"_ܿpȅQK%)`0b9֥_} wӮEBXOr0&o=??)B CdY0CL>Իji d .wnS<:ISN7 7k3]*"}*iͭl1@0m9ebbw.#ҕJjuy5{jH7zl-wj'ezZ"HSgo#8w|Lu02Nͣ_8XtJ֫ݦEN`T?'0\R4e>|#Z5ҤR3-慸iTWwHd`3{+&r< ),܀`)<&==o;X3W{f.-ŗj#TC2{ BW [3aW1"3% ]لYQ޼4 ̆rJjZl<sOE\bSW~3a!fLf/#Kxs%"+gj )#hٮHJJ/).}ŕ:?ڹgL?4: zjsCom%ceO+*xlBrSWU UAߓ-Xr7$x&OjE;RN.0)=†)gѲp d9h4@-+IIEuI PY7l?W/u-YY6oBFqvm]w3Ʉɹ*vٔu壥y*w"rT>0K4 +9X?ŴBcIbǽ@rSfEK6SOMciX UCpjlQSwPU< y802(/RXΟ"RȨ:b+2ąE I.4_>y(c;m?R.<3;A/~?jmaBJBx?">րȂ*p0~=(29#+@{*r,ĥ3nߗhw/ !B KyY /?ipcvuOmV+Skb~ҷ|{J?i+=.CzkԨ|Ð<3-6k} oq7 `1NWpM5$osi({:"!*ޟNoP7C~)ho;8 Ɩ0OSOzl_=.+L;M 0Mͥk et*M{Fn:#D <䂬`nցGd瑃Z m)!vRh6!߰{CRr.m>ͺ{~e2Lnàg4V&[^U}ڥ. ! m'_IqCl!a.Խr(EmHY@^o  zy e73?IYLA_hE着$FRej(+[y M\:<87kDr P8w{ G6fVqWFT(ҍλK?:`O ~nĖ D~R2OE%i%W2a{y D9Ty̰ԓwE 0ZKW^Jֿ0ؤh,c~ڵ{aS#3w Ȟ,T>aѲ;nٞ$HfU,L6qjWJ6turepHǁx^TyK4Z](2u`67'/O xqr+UgȵqY2e? /L rktZ? j$L6/T:;ZG^]o4]қ3. Kz\*k,TI\ݬTH>[cl{ݳ NPg@C5m28"vxwvi4_˟*pdR5+J6̉sᄋ=ޅi j8P 'Ay E!$\#P ܎x qAprK;bں(Cm:ITQ }DF,O԰ʳ1.%? 7hp.5 eM_jޮ <)>qqF\CNOK@Ke7I;?BǶ'iG`X&s& 6dx]`'i3s63jYx52W3jW4HI˻EH<<쭌o/^;Îq`M6 ݏ IzJ;[f\\cTx>#%4V?uFÝȝT?TA}\{(g*FGgp"$s=cTe> M2#K="o0ezt;"߼fl`2zMcYM0u?40ʖ+ I0GZ/Z.<^I&r̃Fd_'VxM#4ȭ9LEdHߒ~C! z8̙/{ՈK3ֆ-)S܅7>a]:iv3>" nt9' TK1k%VYuE_JҔvf(=o L}5xr>Mţ"B{f7v:xQOC#S|~_RkX afܪql'P FD`s= |7TeF,qŊ)<} )SF q]߅Y[vUЍ`ι.=YrgvyH!62:k쭶Oρ4GZ@S 0ٯac${m6uiE;Q K^B]/J%!iqPD6%6I$ ݭ&^RhS59kmi;Yj),r;/!PmZ<HNE"-6@PK (j;\OgmA d_Q0P툯Q."{_k/j4: 0A#KVDdHjI慠 )y E83:7ukx;Cߔ,IV<"*KA&Y+?CN^gkճKQILI_a^6lߑg C"vt/$|g휌?jƿi60[WBPhRQ`1'1³5]bR=7.M/-̳~=l>,3sPǣ6kev*<3 8EDG g_]/橛ov}3 e.--NgY~-DȺ@\]0|MynDSZ/mwovT۴=Hfð:mіfAYFtDXuR}Be?~1 ܰԀcTz^d`UΒWsӚF8v%ª*\0d/8ve`S,GVEQ" TJ;`~EEByv~٢+4v h;K]ǯc)'|}w%%%ꛐӭ"fW+:[@ 1ݹYkظtHsprwo6z$YBb{BCCKzꅊUIY>&Ocd@9CfAÜܿFmbo'o*ɍLc,ӶLϛʡue1odK-ӊH*S/gs{ `~2Z 8-Lw K#nA݌RV  @k$A`SHLntzX "Z8Xc9L5MxkMkJQ [;%pN|1GNTZ^]wwe!Jb[+|( uT0 :Rg-isګHu= Dג<<}!ĩɹkS*q5CHHVdJDf0b_z'g{kC6)F+>4? M U;.Ǥ_Rov_,݆ Cy|+Ë 5K7{0>/hu6"$CH1sPObG[}$EDԛa;>1! k9>P7G?41{y )ǽ[ke a-ݷF{"iV<<^1tyodm'ӑKfldFXtunrHT97i Ph ?abGTp}%r;N?&ZAE{lVIz\Ӏr].:Z=*$ B|o4b,h.WT`䐭2c` ρd2]ӸfFe *f凤 WvY9R0||gKG~Ë\07 M6윗W0#4;6928p!]qpWˊdiI p!^4\ARʰgԛ0vWy@3kšqt.E'/ɵO{C>  ` bf*ٛx)Ny"ʺT^CQ[8.n%Bu708F@IxxĪO&3I\P3H?G?k%lm =⽉<)i "9@B[$ʚraZx7W;nywZ.ѴGGY&FEz&U,^ؗ,eت>no^|*[f1UΚӊqn@Nx@UvD$UO&a30aH-~B'o_Vq4Ẁ*^' ~\DnVQރY #>bM@d3^4y떚PߍM8uR-ѻ8)A[rEՈ`1`* )/̑q%WP#RrUS\zSY~P ufO5x~l:{ZeeS}!,oðVXSfк8g["#Ѭ>fbP%Z?¸(g PvpHq 8 2vSK8#کVp$nLM`Z;.KuWs+%')τKjeIc:3\]9%$P,L; 4=蜤dO*sJYM8 u% vzYר.1ᚢIkn=f| %%Ƅr Bz!uG$g -WT0}t0`$EnV RwW`vV #Wk>J?$g,G N_D8h5i8)>7D)%'Dϑ$ܻә(v%A$aNnQ@5e=U?x+…4&%yriNjН["ξck\yvm"Lm-m^K9]@bv6]R\< o>ȹb |5 i\w4wd#;uL3b RvL9FePk2׽]{; 69lΞ{ Y!@r_D8}ˋZ yS(J|p2Į1fj+g(֚,{eqzV:cgBȥzyS ce@ 8d_jO4t v}gd,0)#ޥs%igkF6I-a4o%1:%$'7GLY:."e1+cSт: 0y`t'H#԰:NtbY_ë'9^DnV{52 ֒sL.-ˮBvw4+ELS;|>F˩kKa.7HT Bή]+YH^n#BMc"5MӇ:,F`n$T,5yߠZL9B{mL!y" p]7I%|e#\@坊=Sl'eHPNWP,n0o.Ϥwւ9X1ʆ>sxaT :\s+ V5vD%z_K1@v51c+yqQArE"uK"80¨]2ݬ;Pi+T7~_` Ah>%B?ntc] Ω~ pirhFgIkq'Dr,2ҫm!6gG %;,`I \VR],;P.O `az\"I^?~4k*2d+>b:P_@Bx  -ctSX?,Nb g'zMS{pƦ(Yz*_X>V0!F{x Ĉ"M8 -=NւSgDyڑc cU}x5ID5-Ly}ݶlGn))Ҳh$ꐺ.AAwbcO깒XmܢʕG,%1pmj2>ue5j LxX|+=m6)קZo:L2!ߠ WZ@5~k$gD>(DUJ.nڍjFnӉa.{1uX_l O88iyt@Ο#;a!ӂu%3NY\ V@z|?,"^JƸg GM! oRu}ݭƹH+\F]SC̕sYGŀ^,pgB5z Ra+ x7H ˡ~7̃NÖSTj'2]YL,ard%7ӦsFβ׋`zs߲fJŭۢQY!YSVP6,ኸGpVAc*6 C%R| i"}OTDž5XUlJe5=P(&suDWj1:3b^  ~8'Nh%%d%n{KAtIMyXpBHYKU31$fM -/NG ~GGm h/chu+E pĤ"vY)5c`_)H/o3#lˡHF_ܧ =KHzVR-'J0^lˋ0Y@(QMi DD+{![[UcfiN1֤87Jr_o-I _O|1=Qvs3գ|gWaġNB$/ցk'jbJ(&m@q=d<5M_j,w0y,>WEnL֎U^Yg { Z2lM2.g5$ LD$?9YZPt urȮ ,N S)"l:Hp`cKksl> v1j=(wrn\eحF sv9=1CK"55rːj]odw ynih4sH fR۳G #@R']Qfr_$.>kg\ wvaV7/H1' ,9`uGX$c+Co\IP jD~ 퓜}8*aJr{ɏCc6<\3/\ U$ـpV0)"݅L:^>C-}`Cr0*v4IH $A:Տnf#li|jckmToSK#"rNaDE61gƬL@lCv))YC3m>Jͻf@U @~p/'O7KLteω"쑮HuL 7[Dn b{(={E QI-*H0,}wi e9{_YO$j(vY^kz8gWqzFqI$>aԩXؽgOa"j]F[}!$B\55o1Ǟю(}3t$7by^bhB2  !Q R7=bʿ.戟Ô+Ղ YMy!F,4P= HhK^O]C;m gzi/;W\_p9;dҾ)lPC{Kw"S.km}2@@ m: SGRxa9#S?nh̏9K24V`e6$}PDY9=[ϲE,;DD!_l kHF9DV{cp{2t%TLMSR@y._E5eDJ+m1!Y:iD\Rw-Ϙ|'4$YD= ,3X Oı#C Z: # fa}OmI>jD['4rHʚ5OA~;l Y_\lĞ|U)|]KťS48a"[vԤ"(fTjhw`)M}H(C|"vvc䮀1S᠉y (Eo;kLT\,,="S3_\sh+ uԵA+Z!=[h5͙4ރs!4SyV3R--DD_վųr48񣄒+ѫ @G1rzg.LGPXϗa"LG~ %Y{n8; BIT{r rAkf9=כ$$ SU1[};i5:@l\ л 6gKe<ʢ4A\Dl p{Nn=*$q2+yOx&־iBdhd+O^'989 @UmDGѽ䲡қXV,p!\ve4-Owj/mc5 ը0aX"XW M%) <0#s,Վ 7<f [Fo;x4֊u$gA̹$ν Vws,"<`sVaƪlՉҹCcܺ;4P:VÜGs I#D*: Kg.h08hΎ}qsӇ 2bԹcNy?A8 r0re[#RF\Jи?"7h!qLQJ'8SVƆB:ck ĆpyBٶ?HTmL&)gҨP&:*3|z8ȩ?1YZ&}bh w̬,vi ,ͨ8^s$5$MDĪy;g.%I;BP阖/d$?ʎuh/l|0ƿ $DE5.D|\gfk(G?#mhULJ%Wܢ`mB8٤ -0MJ~_YB>BYz╲Hꍔyx*b3(,K) FtY+㽧1✸8kߕ B<,Aؗxh%;"d&Dz`S}O8$sDіsNٞê\Kj̪Ae=VAD!'#V2Gk4/?pޣ$)GP*l&3N2QGqTI߲֒*%Sr\"}b@j9 ?].'6(̓p#/mE/bL-|qA&[6 tC(&ŅtPhEo%M%z;Umd?0E+fxzџ|ziˉkPGzQ>bƝ*;y=qiWlPMS8[zk.LɸvG+]h}Fl&CvZi'IgA)9_/" LOEQ#u2`: H={?a{LuQs'g .^.!jP2 \R:akFB̹Cmع^ ,2@g2xP$ۡfKSK)%yUUKcy^@]tGɊՂ[fgGp#;γ4ܽ}I SM+).ۄ-?)?b)iD",BxIBȿvdt)58E]aa85\ue2i@lSP?r/)(|6JF8/z:><,'! gc%i3}ุK8x5G|?p`|IH)%/UDqWC%O}ϻy\4cq { ׽ lά{UiC'oTKJ"h SeP MJ_/% \2c# &$\@j88µ7`ˑ@T|XgGp<@hx))%2Sf1x ⲰG\㇂"KjLe[OS^N%| trį$ e]+՗4=gb]w3,jIY4EyQF9ʇ/&jfI9<d5c}ŵ9zQ>i2 twGGN=LO{\)\v7C [e=leB3 PL,Ӏ/rghQMHӛJI!$OW|O0q-d_xޗRg}K0$XoP/->^\Xv^;cxQ 9-~)K9 5C|eTC v/fhұ%ٌ<%x8]338{A 3Q }*gs6<9@{rabѩV;L913iژz&!2|^m|TI/IM|#ksm +$/Jq-]ߝ& A}n׿|Jtg獧Ɛ3&xm*1֩"ǡ B8SiuoD-ɠrԥ"x X(Yf0P"6#%[W/ѡ}65w!x2e5+fȽ\6P׹+ 0K 0&PѝQGIwȤ$b Dk`N F3Cc_`. ele`:e<c >Rᾡ c/l#r(.WB>#:z!j=@͵"|- \H_L';<[ge䞂H2@l}mQkF)cIItV7D]poL!dNHʿz.JEOY[oM_dB?u͂s \F^ 2`|r0jmgIDհZ ߦWv3ĶQ%fuXq_xW#.v! aV8h:zQ~Pz’miF4O0 iZvj]wn2vS}jZB Hy}y!oxjƟn7.h`u°٫L_"'ڀ#nJG?V;J;Zj8.fOzƓ?-+T9چg.Y]؏ k׺M+FZBJctIP6xY90jF m=- f=e}>@ۗ~u<`U VTN*޴j^lmzC+;(hu0,"Rf^\Z+E,zQ5`'pٶ0L?AO^j?ռ\j,<1?.8 yPP:=%-5qwSaO/X?#*_>w`>D  IHM{?(F |H2*Anpɵeh *~?3}̑sS -݇0/ |쳔-a".%ܘCtΚ8Z;D dl>p,+#fZqDjNh&u\%M:L)S7.jj ik DɎp"8-V@aL?7Ad[ـPyJ )H{8n? :o<WEZΟlYsh$>ZxRT댹*LwgRngcnT^ هKQN ۛG6w{ɞfR:I8jbȠ7ZB؉NX##L N?#~686Xoӳ4ΌI_tR{CGl˿0&3 +~`x1PdӟM~O9;#{g]hnz_)Ρ{wwdٕ!UԆ$o<8I@tc*Yj>uV1 vFȉa~0gB|&Ta8_m8#"uWgŒ_d 55YDQ 8C3撙Vi, 8L$Zus_ \|D.i.nZ#_/U9ra-ɟ\2݃d]0GW4 nPyv?Zc!FԹUnŽ´.=z/qXbfQ`U2Rgbr2".vSs/$i̻(TڋҨ|āhB41XNu팵~KwfrqjY" H+J>8'%YEVL{Pg%>6qh)۰@:iQ xAJW]JYͫѲ=̘F6e/v`6Hk|ā,}ZSw% e*I$;+ͥik¤e#~q](LvϾ4ɿk&Ÿ́e& F،5x-,*/TNn0(wdX_$;˧>(.d*?3Z΢bK{?0<x08ަ^9Gice-Gi-H-岇:ؙLĖ=XiOV-J˯TUHqiY .D֎)`ow>:@.Q#_pGi㹔GGG^P4fCfLlkށttx5wVT* i!qW WO q!Sh3ZkxE (|R⫾$0 |ނ :{/Ɓь.Ss,Oob|QylqWݖ~jϐ]G>H7S@aˤ0w':FEsgܒmÑ,G܄Qm#E ĕ<^GK^F.$Gvšz=6bV;,c<*}&0߼M54sª[R-U_?Qe{<~v:z&RoV퀯FqZ"YB8 eào|A h`U :ϋ%ɦ`I%;l!q0Տ05/}h(fnHً&Gl5=49`Wo{-'%Y_6Js&INХ`Ԑy 18/5Ugi#LTAzݍ(7k ϼ&h?IR ?/NeƐ\n}xa3j ǘ{/[$B0%8-!CPj& e O!HFXO~Y:[+7a$} Es32N3/W[mկ-Mݪa[+JײE]_Xm7rrԦZ&oDq@u WJ{=m!6w~, W?Zzsf ˒ۛ7V?X:*=u$H-.y,eYHKsmA85㌻\tE V`/U@aɏ-R]bLj+)Aty}|cpyPi7QXMKB۾ɑ-]!78$ z4lPS.6D G&ťs]-ƛk.6%x OmVL)MaiXnApB=A'%e›#O-JZ:Xr Ko,fHjk3]U+3}&)PV4: ؘmlJ";q&ݏ @EDΊ&L͓+;AfAO:Rpg8Du \;?;r2u+HFqmu=Ӡo{-?/+_ !t{%M̰ ZR&dTqr ht!9LqeYE] ̂;;`v tܧZd8VQ,b%~`0!NݽW(m q(!3U Fn9sYyl?2Xk$ T3U¹>#]t[R_e6n -wN,8ܥ,h/ԣuwҹ095$ 5_ NtcJ`z())μu]%j ~B!DjWbɈV[L"pt@<7|u]g #|ՆRBWܱs);'y廁X;t^M)8U}*^: PnT=M/VRꀥ<ĝۗӫJX^sp} T({CqbH[_͢`@21\1,ksA^v&R)s{H;JfV\?W4wKjH9t6;U} 5f톻h};^b(x<Y WJQqr@NGrGU{G`NZ%MQ4B/%H AI= 8v/N6?LzN#V>ORtl$ 2u_wk1Hw\Pt=ےcKq݋0+i#{Oq W$8>ջvoWNYxj C(t5'Tn*zqE bKDN/-w7ˈͻ6- :ꐕ9T`3l6oOI:y"y7<-]Hv@KwDD!AJGKS&Lx)k1n_ij_$ i  v:3& bDrE*(^J&E8Ƙ΂9UlUt 4n驓~m'DAѸE ݫ"O9 w0ož.nn%a*8[b9L.tL8eͩ|1S0:屏N mըaQ}yK,7PdtjE_HOHqEdײww:)}ާԒFwRQUGeVMC# h MzRf wA%5JUW'~Y f^՟B?2Va,a`%'ۧ:ɒϊ'`&%{^U y+AoMN5փ-cJf蹮7bY#5@uy(%i8T7oڈ%L \Guً?Ηbs@lnjZK¸ڼ|;*hJ@>kUdA$! %pcj؅jyKr덤V N`wWXo: vG{0?bPs"1H=KD~3]dBDpw恋+uk#b= /ZxPOhjرI+ûh 6e#ջ@KxCùM+|R {OR_)32!2rtJ/rW(J$XOW%/CP8 wFiTFT6Oso/Ϋnj57Zj/F.uXCm#e7&C ` ض]aw/˅iL^F^p!'?퍆Gu^E)U}|qtTmYJ<ҏiimĜ,wXOR]UmZAPCrJv:gӿxёthNV:*ܴ-#>WgTӂ|S]6''W;*)ٹSoD7GkډE}W q5 :z nMdUJ oP@^mgNaX o y 8hʎ,_b+% 7)eۤ L< )&gOGp&Q*PCnf닢:Es=O^”0]jw0= %>i~iߪ6AjpBr:^G@i4!j#:dU71O}VR4se77AK +B15C Ϥ? j|}ΟpL,@׏]~& IN`{ dXa).naZ.( qU;|Ӈ1yEgW| fX{&b@xyk;{7[w3W_I%VsTv _ u-% 7'#:\Md:,P)q!'Q`'cQ¢hRkQU2ݪvUM_/\Ul,v6Σ1OBOy{{`:ݱ]ZmD?T4iLIЅ@) `Ȫ6aRy 2&}ѢYTR"`Ծ9.}TAW,`H<1_?}B.4Ke#Ɇg**a!xXm\=EZ z)ZZ週ns~<儑2 9B {}0GE"+[-<['h)FT ~jRwD <uIP(BP }a}-l4פ+ouU7xGR.9;b[[/P>De\c}ޱhfQPK?އ<ְiOPxwnzclG3WlU?/-N ?3|MaYVB݀l%ܘΨO* ܿh|+M{$lǧecry1qO ۑH(* hJqt@_*Vb0Z.Bu5"ǩEk.} #(iXUb-l@`02pp xb"*V!R'Y_dVIȆl`6f=6[Tw8閵z | $Q貘h`= y s$$`- *owWcy "OS(@vf:3_jD~2*A۱bTV6gr/P:)gx~<~ UAh_aPnTS|L %xc-fv+9IlnQv_DV75E 8nz?>, eNG`Q^Cc .lL3d٩I/ք vgyzkPT5F$R-4ֻYK>9_u ]4e t  K#5If# L_ x7p"EVYVWn}oG-l 68 @aZ~T4-O̩de<0,w $!]Ek1W>;S#DḞ7Z" oR$#sacJ,>z"ͥ; j eBݖG]Uo;?V8ɋQV)h/RX$abI Jx\uiY |AGG"^x6̬oxS(ŀnto`z0̼;h{4OhH#ϛ\}H X. FGnz( RB|⠃ߠ-]< suz R)[o[ߎiytR #tی25z?GJ>r<%xBZ.JAU*e}gR WjḊ}` Nܪ">H9#ZVր*yrTcg\21fep{yP<0QB> !aɲ){L@S?gr<,I=YwVv0 S%Ǚg~dgEԅֆ8l1h)I[ mm&n W~wKI˭}c6R0l;X9gbI釒SL 7M nZܡ6;ֳ;Xϱ-yNns$.E 7gfAHە˻ d*"{xURmya{g.{\*/^U͉{,U&O7H+o ^+f^`.6!/o:SwOo. Mxvțhta<=޶#>vvשra 1D]$LϙxI3S146DJKL1@ 4UJy;uKMVk%Ϻ!JjYj)F!dBr3?n6ːE;s7ٸnwGęn;ZZ6,_~fx3WxsN=Gj$&Fvj^U8d9.GC`[4{- ![dPD+dE{ܻ~9ؠe*Wvz6Q҇Nn7oz% =fS57X0zLV˫0#LjI]})?e@mwlo +"gKEc"/9<@ CߠCQu>J8hY qat~RȴBU9OP"/V$tJ24׽4"Թ%ov r{\~EV bJrm5 &OЙ[7fɖ[]_c& dPj~"0kN뾸1d)>S>'=6@+vilE=>I$)c/hG*O25‡e__Lf>HWsS 2L:kL}`ꌭ Cr}и)̑ K鵭i-J,"~\a~}嘊X{sO8f_1:( u1bT9Plʯ||=ԕIMwj!Sf戇Yl $&}S~j źc!4ro-$](bBa!@7I4p{U>˅ HSINJkdPh%%PNkD pMkL18<([ƯMp3ӮeW|C֜*-M{) G^2NȈ/G&1tճFhҼ4 >EL/m" Y$|R-nM+ *UgN .Dk BrBT@'cGog4;=Boe,c eH8tűnVT\_s}':Q>zW(;Xg-iK͹4w?8=5|,*,>gD}_`CyVM|JX!. uhNdzL 60$vs."B2 ň7\#{)9^U'XBy%dX @"zF5.~]/<k.U$)h# jA8Gu~x<Nm0E8 #{8?|rzg$Y3;ظBC73+ {O5ɕшK:J9|)Lk0XMϵy!Kxwb % HS O+x) WK-տ` ŽZ;7bLd c))1rh?7Ϯ[(`.@񂨘ZU̇ /&;xđH< L"fJk47؇IVo= +}m=a(bjn:3'X%Z Cu%B]iDVvښ߯fiCP O칰RrQնwSU> ۢI+%GzpZ'@3i#B,!|b aa*̐NJN 5_0ZۡlG!#Bʆ2ܼg8׆. t(fR"%ٱg0;JyW|ӗҡRkm7 EǴjXÏ\Xƶ] >-ջfz_sYs"2*X:&H]}iߟc}bUFdh [?#{=? 3g2g0*s56a+5G{.MF5Sq;cЁ䀄ٸk/DN;hEfK9 k*) wIU|s`&;au3s)h:m@uHI$;Hm('^m~3p֊۲W3$/sD kV6gh")eЌ@\HQ1"Z fэXIt4t7yv12xᛯ*J'q@=T-{a@vsLȾBFKGiBU80K؎ T^UѓL21;#*zp,vi32}] ˮS8q(TZR qIVLwPO0_ŷEV~=T,3:V樍,}< eT(3zxs:r_WZfQ+K:v1r y8K\V; G>O5\5}RTqo/t/zk8.XW@A$Z]8N jKZ'?AQP[(,$4FfCKy}.p if<fIƠMN"Zr9F-`:eMnHde5}z=MW4^ Q|5YU d; d_ e)h@-3QHP$Krvd'%Zx2xQe qVo8/ 8! 榔q]B{Jd+u~\s}8&c֬K{3^<ֽRX+v[\MPZ]85nUHcZMZ+hHFR$΅[qShGkkt ᳧A f(> w' "çXF|ESF!`FR\xCN &.6fɰ0)`\G-Xa  6iS1F~wR,[kzyh)M#|xzHf477"Uc{/&1(hA}9v`NU5oy9YZkO^](E*&g@W@_I|<%9Вmϕզ8CN{~K@ "nW+{'#F::.ipîɭEhu eW蛭NWG.yOI>M$R'pj}GnyP=2@;y1@M/BQw~M6.no]oWARs?6sԥx Dz6s[;f3!vsb\V_s*ٛ]ujU ܒ4}m*-Tx5飪}20c߶CzYC;Bw([S@5M̼Ff!䱻~<$NKobD2ޮ(#U!>jQ3u=> NH"٨ if+(*cNt-Ո_gI>oiʌ5@r0Z]be"S'!Xr@jW#^[LDB.WLǑOfa%xA#aLu'U1ũߧqNQFªXUӃwXo`27((k&eBA#l鋛o}(4<-ڲק˲P-.,a&ϻ.D5W_p)H~JGHbA';Rղ?KaY?`>Sm?9 .saXYHTB?QsEF#ȶ]JJ0AAPW ) yPϔ6霗XwkntQdPdǃҁxwY%S j/zf^?V|!ܢHMـxdNX:"_R_ G%XJ i_~k3Yx̐1f}<[(/ЛoTy Nv.6o@ŏ \&49N$6& 慠Y=X;1x.gMhx:_~'T8܇f0^x`@㪙ndF@"בOwX`PڼrQ)2EhC29md7ћȂitHz .9WcP͚!Cl 諈ZʱlxA~V M4iFlF}>ݓF,5/E=rb6c[ $I %)x ]ܢԟʿBm@pFE3шWŖ1/?M]`E$e-eqs2_&݌2Xt:5/MyztTUdǹo+$g/# dfMgk!&~Wo-чE+nH taGʴ 5}ѷU >;XU4؏^"?$V(Kzۧ<qC.Q ڂ򏬷fBg5?G#- +Nʿ]GXS08Rq"yyWhUuz]ZH.Kl&Ky+F ]J@֍Јհ O#nuYT&FAN3&]A<85J(~Q~Òf5܉ЂSyAFj64pWvo  6O}x&b;}4,)IdSK<>rl=$R<#B['ʪl PT8NєfM2=5g4ʽxy: ;(CN[. Σk\F˽K824^rSO0=WD1X[1Pgl.ZX<=o$%R'T1hAu`z 򸠈 ͤ .+UXN Ku=~h-仞 \=0bϯ^ q{$mA'4ƣϝz{C(B)êړGy'É~5*|3?T  %w˖7:6 RV(8##`ѪY&\ H4FMZhb8MH!nBptVݽR#ڋ 7Ed̛Mש6 bS$ҟ3(i|SG] ;z A9ox]C 0?PK#b @6J[PƶF7smAT`o-@U޽塍.OHwQҼ9T ˧i/s)3Ҳpy8vິS߇x :\ \*v0v WDlǦ[NxVkeH+EXn r =M =[į;Ze*mny:Mꖭb֩*Vo.N|ĵkd(T>0|asI+s)_{ P}69PI ]k{[vBL=#iL]0ou$"+'(6NV䟁3+.X *pyKmjnK1sX| GRM<=CUS\fԻ|zY|mdYYb 풽W'Kt m 6Yj"31ӋքN_õA߸=̏V$m |}ӅrkLȲXtbV|*{BعS.ssJYkQ}Yr/b5#ki^^G>zRrbQsm/`Ou@J5}T ɗO5B_ >|5 `@+r7s$5|%(F6?v8pOv(QFMςPf_RHIo"YcWPng\KMNDq(ibb-?ujÌ(3M ؂6CF&V*8OC3yabB@[9:?zjdX؏ θ{/9%⾤bl?4 pZ{Ж^fSa4z(+ԺFAlpײ|cd&ŵf!J>[ K nrRH 猖S|fu\<< bK' yC6,̒.CO& *U_Ȧw3O zXnH, }V)s.uY7h;IQPr>Ad/t2 j$A]bE&D8E>u.t0@rq!5^P)\TC5h^[JUgtLdi1-da}9L+53'd#I. j*t& k{|meZW2F1M?OV`jwڸ5!xYvdEQ^LZb?k@7V:UL&3 {mr)W9>^,Q;ayTE޸T㡭bn {ÚC*wPMd:nk Lj4=I<ͯ6 0KP*obKfg%᧌HFu~~[C0Pky mjM(^(v2+F ^<tR!2$}hnYXဖ:FyF4+Ey9̩-"47V-Ycx+Z#Ɏ {x/a-9(R}@ XD *gaxb8+!o[ I%Z }LCGmE{VAQyyEW/-q0Ӗ`i 34{P>v:i2'viX .jWq;&FC՚ca[!:=F:34a,I9X/">Yu,XC'N4qB %P@m[*nG+GC3ݭ0%q+,ц "Ql0e9$0;1r]|]5c8 IǕJQ6{%95^zH`l/ZD9/gT3Խfee/r:jd=s'pu+fH,@+cP*. @$[ '.y4 J/v]s1C!ZnA R`46ƫ#.]O""'y1M0S4[& aUc(kS˟#yjlh  9W-M7SO9!(n,cx]:7]Shgcќ̀+EK"<7&QmJiY8VR8O/]7T (%!#>MP x9 μorzgZV*FG]M $v߁k3w>CUZ _iq?xe}0B#@}g]5 o/\ !?҇Du֞o _j32WD1ND}W6z^sG#: NξQEgBL;d}NBm;s2QKϪs5 Bތz aa$>O^?.8.,_M wx`zK6'bN8׳adm ~AnSN {c3շ!ACXl}N߳:#FY9@%_i"AC5 '`q +Äq4=\5vJڷ!ir5I7@Nfo-}Awvs^e+/xEP22Rڋ};pT4B"|w6_oT|(gi7\Ek:޾ȟ-PbQ8C/EoOd=f(& \C"R|!7-Mqn*Xƕ~JoS 5@2(,M^VySK'%*uP1bϾqWi`/auq'<s`SZD&.#jɢ>y`ZPy1n]u"9(NKCIEo͋ n9d0VFoc:s#'3 &q;76/.nNU6T {$!1Pk`t`2*=ǘ f蚒Cn i1 ^wzeۡmQw_Ûl6y2`[f t |[Zy77W(W|:wXfg~C_r0+3{'X@ |2* 2XyNtͤ%<%,ݩ fY*P{WLDQ*(.;l$+i]^Ɛ6#dAZ<ټ7F%̀z5X@cY{Dnywhd~  @g{xH!BxKMT6XL\Lx#AOG|)/sZF47wV-fA/AbpD?g6fo"*fr=i{dג "[SDRRw\svެy>?QCͭ֒lb!$qE%so,b*ڕhO23N(K>MOwz\JjN;sϧ˛P[G"~b5Bp|i㍞e) {7ۀsGqE]H7ҨT~N,oҪflhNe {LBi_oW>)5 oH7^EDHΎ$ƣf\ 4ݖ_ P1 %-#tW5w+qXpd@/2Q8=D/; DbK> KX9Χ-ф rp"_I@رڹl6 ոB8YCdT, {ʐ"cXE;.qҡI4zJ lzEwOzy5lcsz,o7P ms߲?Q^ 'Xd[v.NUqC!^Ԝc;įZq>lxr*J Td3E"<ͪ)(#W/4fY8v|cA.{X-ˏKtوx%d`W^3tiƲ-e硆XP\OE<:Kmz]N>}7#e3154P^Rcx6IJwWkcmvFn0$]^-㩍{R`I@[m':p8NCwSbaUx_[0eLJZ"S/,vHR*6ਝzUTnJݥ2wOb>gYߧ`ԩTөoyvK}¶xj.SǾ\{(#t@UcbbաFH"DlZQˈh~ITdTyF& 솃m7#eyp(y sߌs5Oa ,aQ DGRoPE[U>܆ @rtPߙ'G!+k30ծ\- k`L ?`|=_Wѩ$ũ2 )!x3xk b #͘;SÝ]%Mgh ERD ZcdЭjdK 4ah\ۈ1`uH y9U1==ъW|tGPr| Mda|gh.뿂'"M% עmJH:q5=QJX[{egtPQDEPg4>dv0ʀ| TߘBFt,6NTE,aGU8nR\>۬mv}T`XG>OO ENOc'`Azן؊`FD \c)j DXXF0G  :iZ[7k7M*#; U`(ɞcrYKH_!.WPf*Pp3Sm?p#,Qlq(=o:KF}?ybx e#B.v ǫ{w&(V&^1᜼xh{A+NXT`W[e͈gt}De[]d\ս_;8lZn6HT8:V W:2USu*:5u8U>Eei]i~[Zv JCضM5G1$18[ټ}auyoP]5%1ku`Si҄F% &ەK)kи_jG`x%Ke?BD-ܦltS3U -!D[ךx8Pț/'Զ^{hgyQEDT?Bqd;SdZ3,p!RH%?+W aHؓ`ycԹp2RU =tz7vIJ ;OCծIݭzjq"SV@LLyUB0"0R&,3N"j*ݶ$p zjQldI{zx OY%AV_Zcų9I.066o;TU 64w6:û2I:WuR1Iye°!'6ϲ[Cg֋\x"K0B{Y)<'tVtI戝B̄Y#wW^ឥ(EEpīf6=(qP3?KLm"݇@?7!o <7sI?[RUz$Ɗ4^XO)ڹ!"J;RjsJ2QKQ5װoN˒>_,~:0cԺ'Z +鹿һL^-ޯ~wk~e?gz8z6gB*@Uz`t$w}xӃYS M Ζߡ]< Z)CpF߹MbCW|$VNfbDA}w\U+?ҖX5O:C٩NE/ bw^ Tl rQ 1 gYhjNW%"! ׅ1_p\8V6a&abL.P~[ȻQg / @NI\OA/{i Vڃ_4S -}dSbEO~$ B 쐰x h{UAXNV'8Kb\ 465ϐQB7wʯĻD H+@,%WԴGcx2vP2>l!'?+i ꦬᇱ2tPI&g}JK:\V`@lJ%W^Mwxcl zF3YH-ryJLujb22ArOIȆ9+K-Ii)݊2Kiu'sxƭ2"ۘp"@Va7dډȇ ߢ[z>4tiuȠxM7 =(&pIs4vnfZvb.Iw&v6$.6 '>z< :ni~iܜ+7No^ IX| ‡Geq,eIt+we|x9cXiA>9[YEN0wR9.?e$,;ZhU_Ȩ8K8_3!R,NŒ欳DƤu>] l&0OmYS{ҫwHs~s),sjm}r^A+.83+ͦD %qkkjV[zّ^W"{iv^@ orkY\Ld@^GlEk'99[EMa(128=ܞm< Mis =[/E8C;ҫDM.yv۟_~~,VKJn{Y‚V?q[vNQ:3ŴE]E[k6s?hhߕ7lt}m3av :{;!1vޓT;.\aZ{A!?ӥ3ai; Y(y4=XaқD#?8 FI0qZ! Ms]YŷIlU`(:%xoG%sU<8MO:4a&bQCrhRKIΟVX慘* kz^J/@5$vc2&st 3((Y=(M$4s|RJ6) e9w%*|Y^M&@9o`PLӨvЁ}k:#] N(rsd*_Z-0SDVڇnY7>w?BLDLFbڡ'xmvcy)!q[@Ndw$1|FO H:x5~KlpBɃٙ~`1ZЅu'샴yL=VȿeU .jX/#vL*(cW=̉lsE,pzcRq2f처\U6!* vJmɿ.壁lMn'e* ֶŋ02R6/V6ά $l1iPV>0M8j=z(98DCL4R*%饕PU#~ ˕/" yby37RW6y[)gJ4'GK]KyOρl@5jQKO͡rxQ) IQ5ٺ3#KAϜ4U6.47xεlTȸkjϑ8gWbVGL5Wc(X.hvP*/D%uHf C®GfяV}Np[njGQ8XkMi^q0(P?,DS'V[4[i X&e7nB%Q'|'(m4G4"$Y4ҀAӄ7$MO!|ԽHnNU6 :<%4ԝS OӺ0&Yn~d 5$s|؆X{A90i~ʣ%ԒEH$is} v@4%9vr*?V*X7-2  q+(Ϸ]Rej>hM^8D!Q.DB5b)fgrp+GuՊ^[N;-7!_;M̏7c՟z6z˶u|:2&&V6A* `П obwp@juznn :ZRU{+-fT(& oWqkj-KKl~Z$ H!I eԾLj` ~]1HN:H@b72U9fL7mwMyӹMpbQ_/vKpډ}-V1]$瞑*H+NG26@0k9='{c'}coZ$R _iP)Z f_.ƹ4YݏW<ŔjLjw_L?w'L.0pU!6˼G㛿69Ƴ{|C><Rg,FVoNvSVrEݘ<'P,eI wbzVq bBUU&-?ZO-p^Z ĸX㍽t2BͺNfZ__yo0o/Wn>oQF|s[oЌw3HJ}2ы7VGbw&-WP&PY]0Hm=&_-Qdᇩmf)hnT]_86#yGց'~F*3Y\)EBg5JFA6caG`meL=#yoV#K8iusSRs% g>w2jbbL;d>DN)w7\ț9'/<nRl\Yg\t$#,V6ѧ4XYc!:k?,6({g菑# ɠ+{ fB#@D%+oX( ݧ :츣<M+'BRkPBZRKiVהDT{>QWmGcz;hc"5~'ʛ*mbjf*Lx]{vd\2%;#R ѺDu!3IsysTօ4뽫[BQ`e7ZD-[5( 604<`M9T[=vKJwdz P.٬ }L8?ؘ1 k%񃯮(l^;3?WXLPw =RV(Axcѹ^tQ'zn:oҸ = Ш6)|6<6jDNCsU6vcU^_4Qٳv+M׀ >BֆhALB*%wC6Lr"KK[8쑠OL5|P35,2?_c,s{нzcSgƟ`I_lJYBЉ1ƦsuR }sЌVc4V)+5-[]m-ROF32bE;L1=ڕa|ҳXjxI{54˂{ڍ+pȯ @&[[ὸ.m9X63֧a7ʙjZh40drbqjDdhu4iX^MbEmo&Do?$Š2&3eQw_pD1 ` e1q5ԯO t!Cz:aũ1n%P;U-9ޞ;Uԓm2}uKs͸:u20%x tBc dwRťwbF@Jy;Dtd\Lv@hg^ Sf<1&8!2s`3PHzV~9b~CԈՍ{ntEe`YPlA~Sxp8M_àn~"s~pE iKP6.}3QѺ[yzb>#]߄J_]>S'HAJ.g!r&p a{ㆫmpxfzEW˨`01x`VXfzB"N6!tj%YߑPY$݂ 2?z?Q$,B^xup KE,^*UXDI㗙q&NLi4Gn(#Unh(ZFih\;m7+m8zO:T3퐊Ud,58sWuXLA*{|: YqO_ 8!E<@,+.J+-Va%6f_ObH|@374>{|+HCHvT$8n40W503q}&۟RKvCS2 <.~cZL>xO.+u6  kG> {OZvaܽN!bKLoɦgJͷ)%~@2ļ}]rrX:%L8zR2X/ϭL^'ONWa|'Ԡm/>:\&$`P~i5Qa035Z)Y }Tݝэ#xKsޝ_fm$=$+VwQC5s XrsjRNF%Ok)7њ} h`K 4v&GE>/J!/,3*!WqdyrgUH7=Ԕojr\c8<`K 1n / v0"}Ruд!$y;sR^)T7?)DԱX,$|U?Cӱ⍿u,z{{hI<i$$`Rl0B^J~/OCn ,8lbWDt@g(v5Yə LG-Thufx"4(<^\Zt3r)pA)'PCiL7)914~"?lczJ:)j PqQJJ!Če#>TTdwB Iv$% dÒY障[(NJԦA gQ$d2]2wAњjdZHVvpM.T.$SM |@Car\d M=l-j0$i3ݰr;R.!xI3{j]u6?s䪢,14b jQbb͖JH~Ct &fЍH\T̴dhE0m‚8\&u1,y6svG GZY#ܙ]OZJMJQGGt*|\cW =:}_L nca)-#?G[}3 YPO,ҙJh ؈ 'Gfs,8GyY vʷ5!~8DJae eroCh~ɡ /B˜doIFc_An'!! ^!/6žq2?AڲݰrHϙB>-4ŷl~5$Iql06|%b; dyDVp=BdG2zb{;2XU4/ڗ[or!4b6ijzJ~՜}5Rhz/Toi4Ѳf.뗝0Tᜎj/7S`IG%ec!yZz>2 F" XFwo_rMAH)zD08++';G {"!$vMmxM‰e+f[xuqi$,lzrp`<0pQ \߽6E328AwqR[3]GF?;٩ЈCɟɾlm^d>O2uʨ\_ u̝r1BY" xy50Gd_ȹ7f_5wcE"tOS Wʚ_,9CF}3!_gcetE@-m.&"q?j_`J `&fCw0>SDtlΟW!Ka0LQ]Sژ _I̛M~hv(@1vjXXr1|l/?}/oT8!X [C54w%^s=y% Iw߆:'x?9mXZ]FZvIʊy7Qܘh-m}Ve/jz"miMl/-θ`.hl|CۊP£TN)Q= 5zL5|Dws@rcUzz6Ex.F,tR} }-pg#Φ y90o\!`W;/1ackLuW7 7.$$P\@˺%)NlQq3[z X9_muWuN^SgWiI u{ZI_7CZx/:XgpePPX1dG<|s$Z:HaېJ$ rÂ@s?"> ?OdmzLĬRAVL{۱IMj .vaF ICX·\? f/݄L` uP2@vG;-V{y#4wR쉄۞5#_Pɽ /ܷS/qrx'!<~^X.uV|r,hM}ݴ8iyKL(NO\]yR^Y1+#&vٿNX0 IdðE8^T%d"\lRHV}aЉffN|3I$k-7]Cya]Xȃji )J+tL%f7@` Ṇg8Y1z ڋ1@BKl*>6uF5iƷ|L/cLZ/E+4SCILcyVJ>^ јD ~ _j@1jky ˴RhU2 mBJ ]!9a!uː"XFZ_@OkKF=bҎ g82A%BrU&*F<3r戽ûq!7m xzbI^L:F+I]f4M~,tuzja [{gB*)WF|þ1`0L3ozS{\41$ɕBʚ2'Tb+y됅{O3 gaoX`;d) u\1Q.4vGT/l3g!ku"iy>?e8 NŋH7έ8wQaeT19z&a෸kgSR(;ӡ|'*q7q|H:Չ,:{ؠ|#.J/cE!G/ ;e'e ]Yӣ{"8VPC(ι ~d@ DVQOv2}eY69+'Ӌ #15 tGMU4(CB ۫|<0abhwLIlmRs+ZΆ%j*4<@Plou H/òMZjr;*w" %{ldNP?8 +놺ɋde hH}t~ԟJ-$< #M-x @?ՁT'@"v9S4 I^'rA7RnGnQE Hk݅4@8i@mۭ݋x-[»K`wtZjǝ]%-BQu!c9IWb[He⭀)Q{cA =X1cT[ځ~1߹'|S+VH"FE-LWvg'nK\ީ؞~28Z0)Wk˲  4<-16ƍ;aSͱZO%/y|+]6D5xV̉G:9XV KP$b&d 7hMWwK- DA5f.a*gJxTHøž((9rx<NT%3Ф"w|D|+PL=hV5FQЭ ~\P >֬K1RRQXXwaZE Ao&48xa@X߄ߔ>KIrB14 XwQGFsp_8[e~8o%([5a?/rnj{ 10gXL Daۿu>(:1<b(|>#Loh<#0V֗4rkeyFtGlT H|dkJ lmL&`3QB_k#RLNJk%,"6D p^k>]^ #rܵIγWdP\*IT˛}gXRC$EAbRE5sW7|2쨛mخHTE0;>QE]PY&΍EmnG%fst0J hD!M+**0Hx@) g, ViQh6 WO-zt}k,f<_--ܝ{.`T ,7R)`ɒ -!tq/%3msY+cy66Qg h4=rnl~*Ϭ]DC۞%t+b?h2}/l}Gs}ЗpaqAN/7tvz\JkSL2~*f.kmG6DǒiB! V:pUtpI Ws#b|~iM^祋Xw¥F}>BH= 6fIno3g\YQ0 P!i"zL2vE&Cs/yF5xZh$Y4go<(HüJ;;q Zχc7_66|HVãՆJ}Rߒgģ1`; {8\,\UR=0: Z RoG4/ MW\Gp{B0mejJ~J_&˲܅3/B!wJa:٠{)T!ȑljCNЫdR Tӻ3T Y]^YG&5gDžyqV쏌)<,zz;)4DDTmMƢlFcj/{^ ];0m:S!™]0jveor>T={)E1C88&(PƆX3\Fs՗f< >t*lHĆJ<Ӄt&iĠqE+Vzkh? uU%֡!~|[e8bbR*5('l mZgVls[f}Ux䬭VIxvJRIۭ[X5sM;' O_Zf0]χ&Q" |͞U^4$*֔HWL.^ );;}r.w+:tbp㍓MW!:e=~ : Clezl=gyf,^hY OZ;"|R R|}[3gB-'(Sil.×c$@V,ϨM yˇdp.ykciK#VSč-Tu8fV/]wɯݰ)!hgKY'iyxv)ɑ"{ #Tg@3)!)N3'̾'`pO^?=Bcx`2\U.9=+ |6v.f9nC*밳,\DvJBt:T)Tܸx ӏŹxLRTm4O:' bsMzQDO]V$[QFg< gZPWL ܩhQ(B9 iN%>aviG{1OUn1CM_^8H[R$zVL]:nEfX'T $<'ݡyE6#8^*^oMΖʀh7A 9{:t\(B.]ګS[O=_FˠqBOp 7ԓ!r;2R^oda/YwU0!%m`*KrjjtJ:ۈI@KKƁv0㠌d>+8*7~q q.ܲ䙂n88oϵeZ,'M%SPx/JčڤѯaS5vzlD'EV0KbH0Pm@Mɭ\[Tz-V̳V[LEʃ+wh%b.Q%R]y~g&|cIxo4tcM傞"!TU樕B.oJTk% RP݌ڠWo /'+bԁ;GvG͡:mAqS.*}9އ8uω""t܆|IجMQ%;\&Φ4wO?~>N|zjp6tj.˞ ,:zb'#yyzb$W ާ>a}eA`/Ez# 2k'{j=c0j]JѪy-EDG&w0NOSܲ)QF.o1Ӗ /걶#/_ h:Ct֎A1e  ~%ES̆ ? $:S8܉\SJdQ"h YF!|;^̷rsC`%>=XSLz(GP;!1Ly2d0̚g>I9A3EʒU\ S>Kl;s*Kbi靾ZϺvI*Y% u:/ƏլR2Loiΐ^V78?h,(\.xKUQPDff F7wrʛ~bkkl,"^g.KKl6u.S%)= nN ke v@4J2=iϭGWh uޒ!aH?Ev6Iw,g?d, ֜9dz rc ;G]R%tcnDt5,A{ Ȟlh^{KŃ}#=, V1/%aWγNO70/s5u`@*?1/.& d=D;_%tW0@F,_V'L-ve!x́mk/>Ԡf?PuF|{6an;VJ=@=c%"]?|m2$ BtvE CcZDH܊h^\#pReJ.YikQؘ*66КY$|VfN7h$D6-TNOˠظӬp]X/@ёKk XYܢ>fєo6 sN\g0@\\U!N@p&؜W,:mLƠ(RiË2.U9Ttb|-{(xpFS w2Лy mX愥(¸OP`p$I €.h;BMcc%%rK[FZ-1bNOȚCu鵿5ٻV&e(g$C1;C"`,,4',r 7t&+~ke0oW=z8I٬}RB:86I/̥?Q\jo5/W(K_.eMXGcƒ5.ӷۜɚ+D*[Z3 S{ ޏ\;a‹D<(r_idJea~g3;}ҐrdBfM0Z2ၰ`(F]Y\?-S/Bfu"OW'_@!-dJ]As?1CcH=wBۆ"}ɧ%grbȴxfZf73(> w`]k?z+^6F0hyrg ֹ:n鍯m5hUM _g@n/?Q9"vk)ڲKˀyQ2ݟ1po$>Z: "_H[QR1;Ey)helPuʄR9;;2zY)O7_1_hzTo@Wǔ;м`~˴w*S%cl3D M+9xzc >}i0wCPd0M([3v}bN u=LQ{W%҆[ıO eԥx&QxxE}`dhN&gI~P.d\y/[ Kg$Pgu蛹@ÿ07-M{e@R9hC78Jܕpؕ%{%GZ$v:Ybʿ=\#}9yخ,p˖qjx6XǸ뗩ڠ!z9UX6o]2x{w88!N! p;X# Y[L | i}'bi0sfɱn'rs-t]OTXJ(X;%]Nb 8[zyW1/#!(#`q(f9LbiZtSz{,GVP\@_j,P[flDZWҋYuF}Rhl |oPIpm{cЙSccw#cg"d?UѓUXŒ/Bڪ l+*^Oynav#3p}ƌ뀅RzܭDQTqn w[JЎeDTCAAk`9^nUxmb=58JPt$P yD@OOPXEa)g}:r Ⱦ[ dDcONE-c*/99ؙ;pLA$6BYT(X }%|&4 ~U@zR GZĵj5_ͭ(ROŬ;kd  @%F 2ߧ` >.qz0׌%!L3#¥Xyx`] -0U!׷N"rav~dTC :F>7d2[{gvvV l(}k&.&ujyt*hM~2ֻ94;͟y!EU#%aasd ޳k|ԐthFPE481 ؠZsB1g!x6ۉ*~0/6@7L`~圻ccx֜)>g7Ū-;Oy9 r`XY}8&Sܦ+씱8N=Cur%FÖb:Qۄ]JwI{/]$ 뚿?!m @ C׻j ʲN{ؠ,QP8]JUR=Cwvaɣ"Pxj'/"C\oŇ~\˼Ud]ځ4[n M)HWܣo$io](N$ӣj 9bSXmwCW[:?L[}Kp5d3^#<su'X NEdaory--PaD@⦱ƤD0(Kv9!'  6y%Yw?FPt?}Ō yK ;_W0 v@'ވM *Vo9 +Yˠ9.9@R4[:{SP6d;~\\9`/vIe_6X6ݬkDEއAQRNMcZWW耿>)ufD8c© ³6!XDiouWs _bv]U1a8s'%k1gF휌BK|J?'i~o21 ^TLpp H=8(0u>] Ljru*.S-?ls9nar}u1Oya! N/DMCAWq_ 0͟"arɤ(xjK?}hGfy#NIa{0p,@DK9҇S\RMtj*# \ S 7RpѝPP А\tS{A׃U -x$؊͖bC>tM9#NQV46-B1#%ɖTnjeS T٘1# U7bn396VLmd0C{Gb8ސrr`P ^ASw4H6h'Esxo>}}r4.Z>7iю1m0gUZDK#R;>A{ND4:C(YRCf-`R+t'6ۏVi};$o*;!يҷ5~#oq`gRճVi>nB^ٟ;b›?#&D辶bOW:4G[8Ϊjs{}dBps9ٮ*jEc+x@'a6TIeOUn ɘ2]BXtgi&(}Bk-P[@>!1\IoV9{Ţ4DVj*+ ]z\/z\MmقZ!$̼;ZaQ 4jo5j<^Ҁ{Tͣ&$N"qu,x;dem)cJ,^b(ͭѽfŒe iu9f0,O/C_?g/T]X9C7)p'AkFY I3GX<X|c= ڷg1C}E mc2ω+z098L[m#^HdQNzw}fW4GA4V&v_;Hs#PڄQ>)YhFYC3yL"D p@K4u'iI;3 0#4 ,rXW/KF3w O0vu[breL}EbJ!xVva<3:n#ɀo)9wWIs}f`nfRx)%X@R'.cPQ~-w4*9S{OhO’`+`H*2 yKn! @~"v- a:+zgmK,C/M_FT1^BCQʏ nodYV?Kp.G$Y/%O&z}Q&ޜbf~3KNO<2_=0:o$,<%ArW#%qZ8 ā๊( Ye+@^T^ F#rƹB=8YZm9#z.Rۼ?#iRFT8n ցҏqYDINS˦Jm2` jppd\Yʑ~ xVX7㞶ʇ4+^p@A2E=,Rk ]<%&ɿN045`B[q(B8 0dcMCˍ[[po!=!ێlP~3Fv;n*xDYN MhPe7G2c=<ŋ`$`_Oz1A#FS|j/ S}ĴSzL^W.:3&ԦD膈j@w[tDk 8itп!]ksHMX{+WX}94Kv2 RO~+%'ǓҾ]N6p@D tX?}>g}}G!]]3|\*T@؀"JE%&Н6=}ĿǢ[\FUv+؀Ll:B᥯arB&Df ):p*c4C:}Ӏ'AAFhn =n8*}ҁ6X Ut}~JuEHH>{ GHy;YИ> qPl$ t' цq54Z wY"4y.覣-0$Mk`^J,߳S BOMtRH-Zte'K,NHCH/egrs9j ?_Ft&0uo} Zͭ7a(Lm!Eʚ[z7tlذ,:dDe·0soE}-dƛPQ3&\*)6MЈr  GΔNvئ: 򎂖kh}>î Lu܏bAF6V];%xűPj<<7Xj}V<ӄ$Yc NL" {Op:f&d]\/9CѡtwkKuLYk+e%5~7˸\ }}**겼EK9;<Aޅ}ɤ\0_@d**lG60늈K 8v!>5cAKГK [moQ k6Eg˻T6.L: Xw2n|l/a%/ד !0{Vw=4D_".~&@n.a"3q!B4VE_Q}:>TY7){ܔUV![!jPTؽTu"}ȷ`41-8e/GG. ւNX\AqF*aHOD2QC+wY4w䪗ZNW!{㛪#W:8"/Vt]@մ.6SegKȟ:ꚏ+L4x'M(ͽփ΁~r  ,e4(L>Ո4߽}wd^9OMBxC s@|]S`">N}*ΊbL; \Mu/y{tn2 Euy9sr\>5xOM-8j-lWf}p#0+-41-8OYuvUA`,גꇯM5N S_JVjYM`$1 l}uauN ]"a~$P;rEbFOr (;I\aS,ه$DV kkND@ JO hĦEj*5 vW#:qGi}f!sw&#Y屁‹ߌ%S)^ "(⩐qEka=(]p(~Ig̭Or>FՒ\wL /xJ=qROa0,'IY1۱P1޵1"a% Rp 5gn(J+RJӵfO Yb\1vleQܻC ̃np+՝ >Y8սi+d;hl#2"{Á1Ү`Y C$\U oc(㽓sc4AhU&A>x\M晟 F$PA 0M"x=ͻ|ոDO\ К ?gFdyȤ[ s3U)Zh~m3rx)q\mM>1s &UQV#{ oa&!ЄT y|dՏx`WL\RV y/>>zr3>;]ن>̿R/6c؋Rd^IΌ/Syŕu׾UVGC(bSu'ck= H:pyHnKH M'%ZrvOJؽܗK3DO{+pBf7JM#Ni~#2#US"g^0Rý_5 L_ΰ>ޓggQ c\fRG 2L6w.@>CjC:hvӠO zOt[ciH R\ + ACL-RN"*`RBc]D{*&Zyb| g+||[- /QN )\Fܐ@y_- zXʼ3363]#dܒ^Pc{o<\r޺R`/Y wƑ|mȃ{STEx6"컍*S4Z/N`q2bE,.!p#ŗn-5rmPrND:w"۰byKve&# "6eNj opar EmkRP*a]?#ڥEuy_#Q_:)@fkYr ˷_]]䬕YZ3\tms,rx*6@Pa .rȺ;޸wj/yGx/I6{P>sS,t%hmc\R8+wlKv-+]x?|$`;UmRBתD>19bcaJ֡]sQ1`j@e椋_`ɸ/9I1uhnn2xƭϸB)}7<'_B QÛpz0>(osJ"Hi*3^nIf:{5q =196%\ACc*"9TƵn="fj@uu0-&39[-jE<rxjD pcK֬o^0;P[}&Yy* 4n7!_s7~=s۩;UinawAl 7t[;1Mw qUrEno+zmuyH獼 c4;ӥ맨1DzW lwש.muѥ; @B罇lAoeI@բ?CUAرo Wgm: Ic8@ː$ s,"hTyu269deׁkT@$x]h9&el fz2 h$܆ݴ>f$ aR(;hRk~ބN(es=^HC2g!0M'}眏 4w|]Tw)㬳9ȖNh_Z۩ $Oq,^0P@Fr FvuHnwC8hM]bvuϏɱC κ8\r] e=g@9 8a{w<34K{ x!Ez;iV'u&Mu^fP+O2El{_8kH_[?Kq8SfKד fKӔqsh}+m? Q@׿@{: f[98zjC-U44NYN&|P]o9rUuAI O)D|g[&11[Vtbu~Mx/cVN]>09|YcVlϛK|?-֪+ Jeا.pZ(j4^h f!gQBm6`نO#͹Nүo ~xdnRx}0;dzW']HV`$5w`HՈY'{F>e|{`u 2cJM*3o>QRҥX7Oߦ#px-aۨ(,x(B-x,` HN'|vҨOi\;i/c4KKdm-'KN.jiq&eѵC|gԑMO"$#ڌJFr ?F3}A+:}pI%"eD*RѣAg},pqj1({9J^]ض㕕5NԶ\`Di놳7;I{c[J=Υ.Q\kR杗߃ ".g,<*ziǍMFheUq~ހq]t@7U_r TkJ -*{Ȱ4NpᎿ?v9Cl:(& Wòw XaM{mcԢy&'oso.tO"Բ[1CdG%sDi!:uLOcN $7Obr- Y9~j֏'49]Mj(>QU:k_"_{- ҡJ,|~x dl/D夃. ˊ0ՐR6 !_NL(-KΌ*3Ț5,A43t4=jglǞ0^'kSt=uK}&ޯMYz]%jkd5^LfU3OVh Fju|!f"N eYRm.?}+2EKm#LGɴ~͓ {0`w֣7Fj5k.`l0"(H'icG^݋pEА;U]zrn|ڀUh&P/3[mme(ynF%5v huDyj#ãއ}|@ț~V}wHD" KyvEhוlQ=DqF 9WHؚt&RK8uO_W=n~Ov1OLXoBg$=v9& eRnzB+WsT16{ۑZYYbyfN}Hw)t?V>xхS쯋$(vdj(=%MDbZOǐB…Mtn1eqB]"IU8 &%>*@W8Z0O* RWD!n XKz#tL~EIP;vUфt6&YGΦ-}@#"_Ju v7i%ę=΃Z 9v4I7cXm@&{?ev>0+x,!_Q#緗ʹtƷwɠ?Z\Rmf5p'B,7M+WrRx6Ds lrIeq J6LU^:\PPL\X4Iܢ4{f2 с@dG|Vt@X_ cQ~L|=+1[",2 ؀Lߠ PYjKJotѝ ]8v{4xHL,+W.z5g0?{T_}ؙʦP'&D̛NN'mBITJ=̷dFE>k"oנ|-*i4) O WQVBuH"b<|LϑP?Vl>_OS,%Wu"f=P՞x80M_3P:D'|%X dW'ˆU#[~5//4&Yp"vL Uf=j+ CtɆ_Q~|!!`JΑ4uke'SbSJJ?&;wi dAxY4%>:@L Y92#KGW6wm1!SQ2v98-۰)4j:ďS !=Vִ1Βٖ,9g:]aF$$CW[N=.Z.D|Ħޫ aZ:`ʺ>Q2L ns1po]y{`jm{ݜy; ܾb2x$Y:3WHm9{r/jKz(!!5 ȡB 2A8TgF/+Aid!dr魞oWJ/Nw:ã-p^.Y8udi-7Fhݞ6Bs&?~@SKĥGhPr!nD|P準!cUdRib˲v %Q3QL]EWTiC~1vHRzv w Rk>ˆ JÊܴ?8]3 ɑjɝ"ȵP5F3Zd#HObXt&<8ݽ G׼CѭCNв z8솯hrXb,/<6޶8V1J X8A]ky|Bi NP@C|+49AD9/F0 #a >ֻes\+#R!A(-ͶC.Uzt `wwSڌuC18)OL8ߣ<@ OÊ: ?dI3+<1jSx=K/›"=;Jf40[SxIDŇB}mY=Vu\hZU$cWXEQSC!~5JEpxC⌀F4O9ە~?}2y2_T{ Pjk'2N;-Qob2Td\] ^X#L>{K$0C g#cUKR1rhy5 ƟyM5dظx3VqY3U3L'@>j߇H ݬnB^!bF2Du⒎fΆ2nQK<̭(B;*]ջ'm@y\ߦ!8 M>B]:pE蓾+ ?‚YʈX{#巶v6/PnTZOVw5:Z%lCSU, #rHxs (:4}|wWmt{& ̎>Q,l֋L ʣ멝^O0II9(6t궸<+,O2zDBL^ lJ![gy4qmWa _@GU_,tb7w_|fFz~/l(J E.A\w%3^cི3s~,^XaIcZ^c||ƮeIio(k;qxtdc8< !--ɵpdĔ͜J]nx3qYB&G|EhrZdK/";_;KWlkIKDy4ǐ1~r?&dBkY?oh㎡yLH*6|~w*1:u1_?J765w)l {YڌA qp1w_L؞cW^+`9| KZu~T.Mϰ jQx*ꜝHxMڿH}RnIlI ed"Ia]\4m;gTLIF[JVMF2={yOl&Ɇ%?@`N]UYLpQW*.ѱЎϘ#Cm0{.+)['$F#0 ZX${f5H}?Gl鵑¦ؼe2`Gc{)ؤOH3e ~Md q0aύ1AZPV@!ͩ"qAs>O#]ĺOvQYC/Mj}]n4L C65>%gy0-(Wy@mNH :s `bo@]'\ZnEd, O=[S,2%$3 M G~\(/QwAZx'p=OߑlB|尌hN r_PU11L\~^P_-m5-πBڗܥa;M 6ip) ^qͻƒ/?.:Q("[*v=1! IsmQ*WYx떮[XTLG-u[^e.-sQ{ߊJf[]l#cHcr䓓[()B;3PҫF TsUA.%u ڈ[q61:Ԣ݈wru!/[ph;OLhE9/ɧf|͇;}"`\XOJARU}*vHlCXb>)M XGPNg/VM):d>)Lm o%60Lڣ.Rogӈ{/_aDΧgJuϝeYJYK$I?dI*V [6 k,;c]+ӍQֲS!P=RtP4%xt9mHxģN m7,X'^=l~ Q[O.Kg3genoP/Z^BB+cJqQ9xjl.a^Z7e M7R}xLYf_N|x\6;?SZǭTN]Y?Fs^_ ƩP7; so"54pv>{Re ĕBz0g˕B= JrI.0R*~I?>EW &獈z u127Vg[1SDc:0$x'N_EؔvRpT҇9}t4&^yD8K֒ u(Z< T/"W[ܢ…j5I΋O`0]D~/dRʘ$tg$Zzlp/+WUn(_ÖqI˥8> 5ljfa*"[XhejB 1McS :gN bH&xP@Ս};Xߓp 32% ڽEy_Nn/xe D6b% g\9 ^)–%wR ؙfܔl+ڵxs:Ԃx -M}zt:Rggxa7zp+P]i W՝5_&to&djP l lD ޴tR8T=B:uJdThb/cUXSOK)]H 0rZ.Jʩi<ianEi yq3 P݅npHT}hE"tڦ38ͩ(@e̼w ,)LG'BhG v:~ h)]bU[FAapN= k&hFr==X|GU-lY6Zr>Uc0DeCdUW&Ю!}DC=5CORK)2l!]1%C JT"Ŝ ̴/?`Z -Wd{v/Pb`3`<;/:/Y<ܹ\|ٖqۋاO Q}Rx. >'Vjy4E@ʞ{'Y9%o%:bocStz]D=,'_bfMj `ݪ$gT".)-=j<6>}'&!:? EP6E[ ~#O2Y<}^0w2 @X ("1f:BR,ܼ+ig`~߼\.!i뽘n_(\p4[cyT3|#8ViBƣ:veݛsX s0ۭa4ퟕxm'ox\|0X"u%e?rQظѥ|BcB: 1m' jn0hk>kKUޑ+4PUfPifGk |px83%S NQZ Iv0;Y׊B[Z%LC8S4>ЭCbY%Rcgv]א.jԟ;\c?T%l+>gPDiq6}#jo}۩tX2uV"U[luhW·ƅ_22 Zsun)J?fF3.w9ALI6>WYp <-zP3ًDw3e|Pm q7nT`'P㤅'홐e쌺)k&2!dxR[ċm(,92r1y˚إeU~Vp2RRi٩< +YvlQrnQ9VA3uϬ-j~BXy%U`f9!MZ"OS2+[y ?$`< aOL5fauyT8gw7菅x-5[aF3g~+oS9b))BîIs̀#322Ŵ J='ˉb}H{ :n97NO5+*'?b Ya%Gmk(q*T^MQ|7矤m~Ob 4:G"YM<6ϔbF,+%1秹(s.՜ۼc ,=&h vkvk:3 !YdKV=kY/4fRMI.O`g=XPA(2#VʘǰRD# :R[ï .^ AhXdѱvfcZ#(vWPpWVbUq>Cs/4.X^N1LeTm ֢ku\sJ=w–8 4o4?]ybG<@~ 55sĵ(h1}+'bsi4 PiI5mFEC #h >=OQSְ'!$ld5ŽDŽP$2W9WoЙ]** COepޞ:O2ժ!C"7/wWpoCѵZEŚzZϴ" 1hzsƜ[B%:z9g(RЃbPwsEj6@==ѻKȼ,v$TrJYdk%]A!'f#e3P.p]\8 e{&ؠ[ ~mКgd̗Sه^"CQ{])y'{XRs%m`D][ᲚTĊOCˌ&֥ ybNI 2004o<{5tkt|b[q=\3a0dt)c ]p[ k{ۣmd6!ɾ# t>9Tf/> A,0N(chaWR;N9a?0'N!p݁4ۘM c WD^ *'!qxƊ>uT=qD~Ŝ3o%! qj옸z?l+޴_WԱIEg$:EhUOuU=خ!98Ә9XΖYL- Wk# ldЊyw ecg%}N]#56qTѲ~Bo\_*VW9Ds@0P삌&0[_&/(=4hSJkzd̫a S.MkeG n ptu "+sѹ Z^̑,( 3$ VbNs]̀H89VQ`/CpjVDi.ٚ(z'~έ2ʫ`FDÉYz}]=۴v朖R Ѩ1)PlPDJ&>ڟ>*FdSءYӓTE.-c)":ʣ: HUy yΏaMRX.ȺJsKguvksS<\I"D򦣾%m܊%|mș#cVdKc'ޗTbLFb_]v]r&\"sE+ӳ`'}F? hD3u 9]UJK˪RVğ4lҮnj ,ŝK[QDI  ltG.j(A=4RVG3myZ. ::i322pEw 1Gx%) BAY@ TEs ˰`=3(DY:0 HT]Brjb*\N_nDc{^؆Is[XlF ē#g!5B0:pGy!Px`9-Z6aR/r+SҌ\aI^0@HDA_,hcr|$Vr<.n3۱]k3aDRz#zO r"ܢɨĸKx~!e"H#)-ٞȺT=WszTkH$1 H7U ck!f&A;')*) WP BV{;*,S~Ɇ6!5R)!?ޝi=#[z3NTۓ9[r*RkWkӃnX4 gɨ֫i|Xa8+7%U6oWҀ"58vYp5LV#dc |609SE˥ޯX8{0SƑ8:#Wxq$JV$bDT'-q賂w#Z6qF3\,,nbe",a:@D/TxQt6xlWvπyɺI5k0E;區WR Dω)#sxROЦșR]Wq;ڢ*-~`D5}U /z1t] RW^:D$Bq(AZ)aqFխ,+ zӇS2`Gb(,ecRȨ$g#26+IRQ_|(8Ӽ_?$2IR3G6JjIϦ0h˜`.rרM[ EW8µ$&cX ?voP`TiMm0(ihc'?Z񚶁l8{W.3{Ggy*jk*VAV ,5h/~U{Y4@W~kGOnhtxnؿEzcQzAp#gz91=ȟ,"?/iIs]O6$8>$n[{eV8bIB?m .5*+Ǭ SݮCX hU-gHBKux&0R宧u03KmhojD|Ԛ?"viޜiIة4crmnSu+ReoW{bxn@ VGG0VюtmϲZuAj!9Zwd 76\bjXU$% $O쎝(ssw҄GC#"#:M[SDپaF}}vߡ`&׾J)ꆌ`v !cQҔߕQTF _VWֵ_TF֥É"Sz֢ V5ʀ!w& p &e0l籋,Z@Es]~&%H Q~2P4FM+[#Wt鏊@g&H^Vp [fmw9\[Z'P7D ; l>ĉZ,7?"Ok0i7={oJ9sV"qZLo<\ohn}zȖ3mR^E$$Dzu~+'Xɯo) OǾv5V2B.-UDu߄g!uY+9gk"!2U Bse=,uVg@MLCS!Iwown TE@΂ۨ@[(ZWѪgO]Fp 5e/rJV27y$r]5jDPqx0}ckFݫ2+U|=Il&RzZiE.r1 [T9WApDS煺R ")5b\NͯԾhFEslD0뙋)@ H,& FNGM`Fg"؝lxݏ'捼EX<.-ٲ1DjaY?glӛL* fݾ( !_cB7 ,R^ tkxЖ0AkzVq [RVw%0C.w7/d==Bs/ NB6x|vr``Xoߔxhu/[-j*}.]zT^w OFJ#= ]1V {u ,VꠀdS0AM Z(: =)5A(7a-No999*I]L@'HXc3AE4x\]kK*fK4ˬfٻuDB fڳ17פѵ' gc3,ZѕC}z%jDˎ5?0I?M`~taW#sK_kΥ?ƅ7+ڀc{۪ i:hS +G +/E"_'ٵI\LkYK}c_k Ws5+a1Vz~فFB`b9qOk.hYAOkfkslrJ/T3XzGM.Hɠ:;^=|VvI&8M!p&o/+UA2*G Bqg=ԏejݩ#8yo2;D) X"W)H[e yLU,#e3dp*]~h!Z戀B~ip:B#sxhb5߻z^CitRdI&+p8}_dܚ9E+d,A^1bcj2e(XKtݓ#쑟ʪp+ꡖ"a?B7Pj̋T\!?p)(ƈVs :ܨN,D|m5h 0:/Ay{D`ʹ%hH;k4EjjQDT=O׌ga֩ت7ӽ+_yX, ((r Z D?}$R[N}/qn]92`Q4QbGs"D%hWݦO]^B';Qjj"5UDT&]6 d³v>-38 c(<&ݠ7<ϟ4sUC%Ukv0G0_q&pY\i $CLF&F N-ziQ;$&.3^ƌj{ֶ/0jrvr?$EYˇӠu|j$ &%F3u"/OBt/`4d4J=F'iC[L i]4_i)%VlkRǨ}A`Gj>SHvF9M!n7dBWeU1&(9*Ro˲|`BзY~>.^!R 0@;'Ò sG?C ; } CE*A_9acwfXd/V0ҫj xBg j=(KԟTl*cu7Ep%N^_)Eg SKx__Fۑ4@Ǎ%v G"^pk0<Ǐ7t{_P;ڵ:R27;4tMԽNkvX}m@/ @~Gp 2T%i]f#NuK5`29u|(&Ө1"+BPqˌZ =cv&?o4G8$6q;|~-P 4IjTo#&%JgEbr>N97!Z1pmf]!*80> p:2IkݽredRpg1Gf᪫`$?eFQ_ٺA+? M.?}@,r %$8Q*ޭ{һ! |R|gv S ֗/10V,P qKCИpQ.]2NS8jȢm'x.lˬ-J~4yb׾'=&@3D< bSUzsP)_@NInSMa/.b8:LēӘɖ_N ["D# _rT33mQ7CBKdA%щhd ̂lg9$Ds,HS؋E+ ~\nJ57VmG^WT4w+$Dzs{h5QCsmyCl$(EU?B©vvPQ,ڄȾT_ɱMdߌlMduِRP҅f.d0ط0 Dm#UrXGM \1_Y䱥t(/C+SCJq8ܺ SM)l g h1 }|83iTH!Ј]k\/eX{f"k3g(wd$}^  ȴ˰:iԡeuz4S9VybPMõ;~>]2h.Z<2h;I(קZF3IEjFBhD+#>$@-[)˥hb_z`;5ߑ;7]jDx bAܶA?G(ΆLʽRdА*wec%|ÅF\3pW"jԿ /1}PP 1_T؆3^\'ʼnU6blj <֦ Y?3]P=`khU> .bpb攐dn)u]iͱeAmU(=.d'ݢnhmg8SMqNYe<%R;ْGj>4Mgmvwnh8>hGyTq.g696 #dx 7)rtScd3q-@ vbV UtPaԍg7*.9Ί81[.5 NW4ܫș9ȓwlRt]2$@=]C;v俢83d"PJnRXz8ێ*]0\BƦQ޻$Olo5:B] #lD>)KWu+ƃdRrY˻|Bè_֪Va*dhgf2uWNAMBBohv2%8zN 5AgCnVDq^+1v\~%78KU)'aF3*6Fy.b@%l<49BKF4O;0wI+$K^$'¿_. F(`:o:Im΄#ؠ6?Χ?2$ /+&f ے agkD/C h,{ڷ3Z?H`*WJag J.߲/CDMmϾ_A}{̓nt>@`pqvӄ*0('kɌ)F}tkT/cyF$]UyE٭Ҵ">JD{Aݺ>+h@5RʗVݨavDA1=aKa3Б}3eA_A&CHzBɠ 92Ƭu}{^KhM|]:4Bsa9r6Ο5b CMwe.Y\9<2`*DVHC dž 6&]y(Уi#ŀ/B< #*zsYfLfqqNC otgl|5 &Iʴ^_V(nOYRGZiWr=IQ0W^mxL!(I>"-_*re:q _{B'G_Y^מE;r pGl @77<18(XQ'UNd/77Sq0O}KVVoY0MQf>w7]u%z191|%8 F'gv1c/Dso-|>1 |m+)R"`gѭPW V<^wy{Y0ܑX' z^|8S/qk{Gg:ʓrK>˂֡L;q5Dkpj9 ho&D ]kmk v/pLpq8]>ys&JuRhHqf^Ъ` 8+Ct#>a, W&ϪRnaffY*w *MEP Kuߚq.EBQXMdʇWB^֣;|Int' V'>Ybt{:ΊV}uŸ̼ HѤ!jI5ZProJݠN.=w_[F829uk['dڠb\LiΐevR$̌m +uUR? 73= GɑahA[ h ѫCfgu!N\t> Vs|zt8y"Cxwh?Wœ:^`lԫP=,N:[ro *7֠YViȒktNch 8("g'31/_cˆЀOn=<5qKLS1L]Wd{ T+,Vg۶dj0iIwN8 Ͻ8.4gDY+a)ΘP+cr!Np&=YK3/H?2jY蒿BT^!qw4>I\[)f*gAց 靸~ NŻ ? +W/k,mf<־Űdб;Af|dJq+3Zl&p pRNSzէIӖ-WtV3㖙E0K@+Inbe.s g|Ys>Zt<&W~5$1cv@c)1uCފ>r.r3ke8 kZ<5{/> ~$q,2ilTg0{;̈v ft.m:m2x"̂ Y{2_GڸFCh}=w$wFg~!GHa3z7Es~ES):43 _:ʘVV+h2" I5EѤ"u3pEHۄ}ʞʄjКn/\VH^?4Mԓ$$&jLV"`)k09}bǫ;R44׆Ztnɽ2h{m~P Y2-6c*~=0-MX׻`xDL?#~ܥfndAl$_{;(<@.`hUեk4<,m_7 HD绦bUz n.=z \;(Q ]ߑpB-<.7#5NĪe9x)>x=EhiQ!xRs~2ڐ-DGp=C\94瓝JE)]0ҡ^,&fus!6ʗ0a78)B~75\썥gg}<كnN\>y5k$@K 7go5AjTDԾrR_!5ĻE2 T}uZ& /@F9-8I ˀ5'o$cx7à 8 UGk|WazuV_m5!FRFJ6 qȡb5@=3ykr6wP!ߖz{E,#)ln %.3oIrRꭳs8!/.M,g4HZJvD<#5aXvhqxZ/繽>(nh,^?(m=*xnbi!R Ƭg(3WaMTG DT5oD{+$ۯ@[ =CH" b1҄ [-e U&m5Jhg9 r"'0@<06SJ'e"}=rXMH_"v;Dy9U*kp%arPSRBü%Y(w wa:Is;?ɑQE1̳[Iw];V"$Y04߿à֒[-ޔz<4ү~t=hCA\~x0 &yifo kf~f=*sKЛBfC'W,^ R~EΑSK(AϬ` l @,!Yf1:=e2^xV031O&476XOzǦ*US.RD6 }"J,Z9Pi5b0J*fƔ@]59qB(^n䛠vh=8֔ϑHJs>^?:#DtqieB*Fi#UW?Wk>R'!M2YlesNd=-O4pY\|#Ψ>0sW%9Ge4QEr#mA_ T PT0-D[7TgHS=zfx8HHx8,p8e3": K>I(OO߳o1k3ŭ>6P1'-S?a7NKGX#K[6*H /MLȢ23bR{b^bGXuE:Z`Ij7tW0u2Q!ZQp}@yFxLB_ns_FLz!,>95[}t-G"B\q-qgr?־UhfѨ4E7Ix A&,Et&7ܥ叴8B$S"~-d:G4ߖʴ`B@oyz; f&/Od6'7, o {D/ xS}'%~ fe;LG;Fp.p@kCWؔK{|oy5& O/鯁?L.4A#揝xiE ya1NcD D? *xB+Ӈ*p]EydO{ᝮy7yi܅X=ez( jҶP]BUph5yS٦DZB|Scps}"fJ+FWdJ4> W8Ajޑjhl"jxN |#k.nP?2C5n:JJ!дLS-| 0 KXkcP^Clokf /8'$xW4&T`2]c{ǦB+y:FS{yA*)0'uQNO¾CQlbVwiE@8m$.U '#t}VRAu,4Dh׉+p %8 *PfF:ᶔ12%uTV+BUWOB-D+rfn:O]1rD蜌 c8 CU.[`28p?pn@#WW'h QLIqlS>x|t_J\"Z72>j~kr;T-U7j6⍐4Dy&ϔ%Mߦ+RP]-G|;;,HD@{w! ꛳_ rLC7F Ų%6nU:.hBγPۥ@1^p 4GNh>;ё/.T'@$;.GNzpt[[E;w09\U?Bk-GɮmL <7.my&mSu+0sE>899Zgc*ڈI%9s'o%!џ&EO1a AYPaFcK>ў5Bd{<<b΄PNTHiQUbGO.b^p Ch3T*7ytr jJF+8NIB¸5G}ֳ yH&Qпb+f_}5/)闸lJi3_n 3@Q| -9;cj-<2ED=K]}4+nIL"OF^ݸ;غiJ%ShMIADƯ=W" 7hl]Z}p;,8EJՎKq3vc@0^HO)I!]"isBǔdʈ-ON@Ȍ-O~/`1Ou]a\l:2 (lԳDq޾ H7C( U<$Ձ*LxxRg҉O?S'򁲢" V:/(K筍hF xɧ rKsVC:@L éjUQӍ݈t;,X^wvMJUPdw saij\VyLp&:vމٻ  E%{1_\Gm- k'2T*g,$g9\.Ԇ^R1#0s)7?A_؉; l- toѐzل4R;#ŕRQ!y4I_@D Guf&kg]ήmeyafSU)PXw2&F[1XUZ5m$A8ou֍{ -bGV)-72Oe(9۳r%޾pM"t-LG䗴XjX.&> ˡ[ t_]A.!fvTa4aHitFҽc0 !}ٶ(1"&ΩZ,2]͋AbB>$I8L -hFIItH;d.n .KQ tvZA\!. <4a|5>['1MFe 5]޻-8oѹXvz? / T\`fjdC R۟焮K73hC%_*k]օ+%]i6{i*U^ y*wj!!1"}?>76uJiz7|*h8;|)mﻯethzcq 0@o1 N`oDj`rԿh9^5:ˊCm`|[oU;db'>k0rlA#SJ_v GeҏF̠&J4!Aj^G0hZG:9=E Ǯ}in}V:9nC7 ؜KuUO.BeơA#jw:Sޘ٧YF}knRoG4 Ҏ)I7FZ3K3LK{꒻Yt>9׾[ V.o; ja*_¦ ǸACp eXa)nĪ>W,z)5v'w#hWSsܘL =4nUisl[oUn )JtI:8}LpIZK*vFY {ˈb.v(0s4NtRx=툤~Bu,7 ̀٣}!EgΕU03bOnsK#K*/ʗ7ҿ=ZQc vZvH1~%]rNb |o*j~bcmLBr~U 1!> ?vuqDTt yЬG5X}0AdQaA?vf(}Լu61HrםJ3Ubyt4y@=!Kf#zFFt098}jBĚ 9L YQ: SVDWo{_⋕a*j'aJLIz@F%",# ޣ.鲌!+'͉Tun${|iD~j]؀=f$Ei9ٸi Rѕ4CV~jrG]u**?ƿ 'M#+K'.%Ņ s%uLq(s)zzHYJPw:jCQ;VGM7`M0r@+Y\PNm<>n_ .@X4 J _yYvjCSGQ<6砟(D*F4]5KG#w>i ˩K_xL0BrIy2&ϝm; ̸uL,hq+e!KqN|`Y9e*l'i5ܔW5*cKd 6eoYiwcX{}Ʊ,t͘-6g>+ 2HFBܙq'q=*Anϣ<W3%5_͔~A@`"߮`^qȻ"o_24[`WJ|b pvo{:YAa!;3\&D 4g\iL/AjǷ]ۃwȌ~ \I#=+%$μR:[b[2`d&UbnE*o;AjjW m?c1G={nu߶Z^8KVzz.$əJ4*1}_EY "RXΥD8U4sp 2qΗ6 abݱ0&ɧ\JdFnwt <bzV]u 1 xZ UR&;_Dž=0{JXݔ=PvnݔȰQDWƓE1:,ٞ9t<,D~H"O҃dי!+SRض4ȉws_w"8-u듛*+Kk$7EC p3{(ri2M> Pa~v7Dq AHJ?Z9\s}%\D;p8#@PNpj@:EQ?S*7x|YTXDKLɼ@P&B`JEHxnN(  )I_'!Mj9i@{hjRۻ:,Bjcιb6g$2(^H!Ij _~ɻMj>zVL$`䵩֚=j`rޗ|Iz/Xs藘#mdQ 6Q$f,rF][h62->Ǒo "K۱VQ_w/..[P=sBv?7坶jg_H/^p:Ec89 Ka/p0X )~ .7P~90i=f06IQLOYʹe|]Gt7S25UwLFkd{t{g^jZŊD.sU୓*8&NE8R/C%νg,*^!Xgu'c2E@1CǭvGA-4 BQacq?U!nwEߪllYdBj[UK۞IgU'qػP]4B #zaJJy豤)oeP//OG{̐U>IC:Z[s:@s-CԷ:%8V!#mx\m!rfb(VAzIܲ/o5Vj^K(6ԔiےyZrBP+O#> a*zq]!W)!j\):+v0R* ~=J+^XO7"e> Uyw@B˭1IV|r2P Tձ"Iؙ\38Lu@7peLR]YlqeX ڦv =qû}̭czPѕ0_ aZ!oyJ/^ hemSJP[i\t >jOk]"["[ Y [ jă=mTE`~\V&ӆ6anۻK~^_0ou~[sz˶a"$Cr󏤁I,IrFld#9>Xqj0ؒ:e p(:[⫢_6]gL33>n¾Q"HoƐ }O۟ 0#H(t>gZGK #Gct[NZ>'1[Ǔ#~ݗ:.lK:fH &o!oDБßki_8.Z?RCNXmras@3\Ǥm V=ɪ Q7Ѩ\lWΫǙ ,*k 9|surys?[^Z@eM2:?ӎK;r2S5*p2oR)\ƜvEVÖVK =5uzlk/ZOPMN+/ޱa4e?I'{*X2Yv,Yg@؛;r8cNe~g/_bBIשšp}sOdS]]H_*jܻb {(_ O^sJupP%"8>˫l6fvlJ1mᅮ$50y树:;;Y_c}ٮhkX.5]~Ru߄xjNm9g-!n*[h3/}Z? 6RIбQ(]6M"uX @fSJ/{^_bne:tieG{gRžTl{~aǚj~zZz(ա$&_e@&p}$4\؋7< C"s97$]|<',=]@ - U͹N<~5, 70U'ߣIv|v0q*1OUƐkiWw@kqܑhakdbd(<- 3G7brM|"&uW Y%%֙@, w(ű`Ŭo"9!ȟYoDt"r#aST49/9q K~HbL!ݢ'žT!.ԟs'Z0aZ[u]Q2 Jh*%RTC>)]ԍ\7J1T 6u//(N8:d׮#D>;yµ);*Y?\)C:<0a_d6'*V2kT ;ΉLp+d'te[X(\lT kڐAtВ(6)H&UF_|n-U&x+S]q{t_ #a, 8>OQXDt=`G&F~-xK|-9 ueA5Z-=~`KJ>"CDMBda® :]l/S ?׳i, ݗBz E-d)[m/mZ (oXxSS$`~FdC!Fܓ;-TKbS3}A +$չ]I0%?ACB1AGSqlw [@2{trMmL=48;.l I׬O`,S1@?{ %yۣyi9m.xq)IG0cJ*( Sai?Tͭ69eg9fP;97IJ65ܷ]p[C#۷LaLCCl>?D]ϩH eOαBيWQT9\l:`_O)\D".Iͬ3§`G{.</9)UqRMBH:{tS~H㾓3(.9p'2|$Մub1U4(֬v-y:}nsTdRQ8vWe'g,u"?m3jFEһ# q"7:z$]bt& ~c/ĘEk[Cv;.Ký;oM꘻30aEoeVZ.OL5KnY2D1B mN?{DrI."L0|Uf;-%FBQİzUWa5}jx}HHT^5x)r)"3rP2d@-yy*tkcm $Tny0:-u6{Oz b9ԱF׈Lfx`I+oA EKDY* jyvYAc%A }5o#3a]h_ta E)cS  Ƒ_itZC`+boydcJ?9Ǟ8k4!?4fF{B"}g&夡E6='MK3e&js9S5 hhXImR{/}0N'f1.;=d C-CVt{s&vW6tDg2rOu-?Ph@aa7\tHF6?fm#1a87ථApv`ET3ѻ]J_$PL9/evLSJlLk/D_8vag-#s?7{e)85Kpv WhE+[:DInRbT:@LbQ=_Njl"ȑ YK9rÞM H]?6::EKs)hY-xbl(!D Vjd$0TCUfdEFhvTzFsK/w4]\\7"rػ>ws |eTSM kA齲j ”\t#/lIĀlBO=rK'aV\`8aNMh8W-+, ; UaMl(%57Ke@O݉wbr2ƓŨ"^~Awd: s 疣'ljX'+=긳Dɶ%Xl҃] D-LE\tOYRgFMBFq%JviͧI>N!2+P9~!n MtH?تsl FCfLAٳ4Wߧ(@i8u星4!#D7)o9'0[ePJQamȠzQSAu_z|h؈΀&-3˛.A.ǂLungtBQzThȥyWu-矤"ZQeV85δîr+RRoY!'Y# sz̵5K풺N)ؐ%ꞐBrEŮִ;\2"hlLNWvlvvDt6ݦ՗Ӄy[[<r[6sGڰu2=j(<6#~` _mpxc7پ[[u~4DzuUЯ=f>( B !~_C0Ί lyuK.9a%Ψ0E*. qŢ2d@C[GVpe=&|Uĕ\,wTB, OKsɳ4[3ɰP?l#7Fyf)|_[IpGq?w3*vwaz]i?<^l v۠ G4m{,3vY9 _YPn6.AUv3 !F7fbFPY ;v%|(MGr_N0:mEd>e O 4HN}lCQ{KYgw{[t+Քhvw|K+¦c q9 #=Y'e_!1h<(`p'8:s޼07myF3E֬Ԡ@)d^u2L[93)x $:=z`hh*<9*_7LsCk = `țvx-V AFCWv; eYcj'6ͨ<H|2r[`m&ДK5a{KATKAp&Q ^p? c"Ds65B!MH)hfZS#]m0d]M$RN:7rAl8Ԋ) 2VMoJi.9'k ʼn.Ox9w@'gHj-n0ʃ&tQ vJK%r蝾4D>t%3>PΗ"O Kd@! \$nK ` p'GyD)JT`ZkanűX^d,W $_=<7>ǵ?L%apmœg%7ےSVd;6X[$D8"ಶwE$5^4]&<9ŋ+EařP`S*6vq Ѥ'V;$Am씬HjM w=[]7KLqabcqG/BNRp,kg|WDeRqd +{flX6G'pqpӇ 7_J~hmZjj"95YDx@إ &W\iEnT%̭Oծ4f44 Vr ~˦>qوQ(* N'r -7)\{ U 'y=`fW(\T'S /iWd`Xi 6,RƤ0ᙃ + (0avy;jog07:\˽KA 9654BL AסxްJ#|i ,R%"464GwY*%*e |[̤.@} gON`B:* ς."Yp|&da5qS?9|"J1Ne1vfޱ7࿚rFh_Q䞿.>y5pSZ @Go^ۜl56m< hdDON) P! 1q`WAKӠW$`hEL ,|Ax5*D`޾[Wk})n1P ƀ}J5.:.Yyջ>VZܙRG\w3(}h0<:2a'2X=8iVel5@įrB[ o _/Hk]2w^`>r (nDw(J; ` Yz(h/иgc TO&)dJI EBk^Yd$t+ 2Ursy,EK-j Q|XL b sjHZ7PߐFvmH=?'xH;ݘr}k󔊌>}U#KէYz`θeu *D~ AbfM$  M`cU,~uI?T&\P%ǕZ)Vo*sWY*|]/-:Pys}v@km+ʦ{r嶗c5SπC" `)ll'# ޖˉǢJ:3P!#_5)H^GR'-U}E&%mƞh A:OՇCE,EqƤ5zT?P EP%X dZ7ݲL%-ٗ JDc5+! ]Ly4d[s= ݈~3mӬ&ڪ ـ<ߏK՝7Rgu?\4D9٧F2Am6ըc =boo\; m7dC8HE7Np8&P|O~o+1gɲv+<{zibPK,:F UⒿ݋ZLA2M7'V~QEǪL#:A!]ymXM 2̋>D4њnS|H>lHugowV4aB٧lWz8╼ȩwJ cل?i1>Q6$A7C .DnP3ҡNH7t=aӼ=&8Hb98(!LX͕,pn<yv8<_nCa6/x;.?As!ZF-xYj)1r1UF,{}ucf ^\P&>\ً Բ' 819@iV&f]ƻPK̈́dvaR87-(q+KTt[^>ġrhŵ,[u/@->E0Vuh)n46@}yQ}G^ IO:P(9FhopDD=M()>?۞($ 8^%Ie~pH {"Uve^"ԃ-l x2aM~iFXUEL8] MX(wU-Y膡BnkmTv[N:tQ@\8)jX>Vc!)x\ =UGxH$ ߧ1_N%npwgž/dL1ܒsOapωy;z<&V\e׆1Y 璘|3_wHixF,t^Juӧ5x݊ saZ()N{#x@OeSDrbЉͣU,]IݺV9~@X뽹 *ڷN.JOw#>qo" g>(S5)Ȫ'1^*@$`} [?ULꤋ#0y Cw7φ].S#X%*xndI#{*<*HT9/x¸w,kg댥%O ID0%{tn/$ܺc$7P*8 >d>L®wC"d}o?B?) LfT ]_I)4M̘YMAK4#r'=TԽ SI;\scv;N+p/f#vIa 0;/,2Oگd7OZY29ڒ5̛hQ嬢]96ȁDbĆx@褸!v LD)j>(-A0ܼ60Šq A͞=(C!GDHr|ijZcf).JfǑ°NT8t Nge 7;=ޤ_*=R&T\~/*Ӌ 9eڡ+JSU}w' 6~\/K姣@-eg0J*=:{9uPBb眞rʭ SpuLg =L[" M,VYX{0:KpZr?Om%Cy^ _?(!Bes>ˉ_7ɀyM.s\fHe%NqJσNҲySxULsOR8j0Gd06 av;k$K=WYz*4`<D8ʇNnYͬeފ*o=pcx).~ܢFvB9nk&.*": wkc0;*AxT#5sPԅQfh+Q3Ie_s㯜Jw%>:i^KbS zTTX!:4CpV%1ODkBougI5yAvUy&ɓ: %خx_FI pF+)&.4GydV, 8044u%ObLy/SF4K|X[jNcvl_ u賜k\`JYE=K_,½:\ץydIA_a0͈٬m{Z0EoKacx1-0F .Tm刿}<:Y2STl"<ػSЈCEZθB0BuCb3i߂1j.Q[9cɕn;Eۦ/(ݢw!]}CaO֛`|'l?5 n$㮸 Eɜ(YHj\D/Р=HclhWyZ3$T!JGbxy1*曤/)XXG,&Kڱ" \bPӰaKW9ހKEIF%㔄edywr"^F5 QKo@1!N}s.ڼp ̣}eutrGe/WGZպhu=O. ~E؄Z.=F~kS9u@JFQ-hWO\{SˏZBCeWzogA0=O0kIr{Lѯ-+O;՘rΡq_8jUWydJE >GXJzafJů/a,EBIcTɁ2 ᳏#UxnkкT6mC! KD?\"YxHz_52o})g [TW⥹zYA+# DJ~jq+&JCv.g.wkeE|u*v\/]CĩxG96[ #te:Ι:Z_hK@y)) 7+k:HAx1#&/GR2bϕ2lfۇb&0+%NRtFMC'۲ZxC4WL'Jt0d ]@M.S0 Q'?}++T4bAM-^uZ z * L+M{˄9{n{Asֹ3}g}l3,jd>=Mc#Ed .T e#xj<7zr3A3#1*QǬN|hcopΒcJHruf;aT, ›:AqARr՚_p@iC,'.DvnMz6n&?>7O0xui߻jbGuO6sjtλ+C2~!0 `}T &wpkJ;1aJ `۲$"J%#WcJr^P(@I2bVpj/9C̜-ϰ[5_ d"RPiopITWZߣUš (u:2 "]v,i!dЁyðyst1<'yh]񣞤q`H183hb^D֩wOud>g|T;Y#*lyn z+rJG5*iXd  {ܶD#AC%@_6 -f"ΪW2ϭ =L#I!? ٤8ldiA^SfY nps&),%gPŭ&&`en~m<Œ69mֳ5A @:Zoms\oje+KcѓwV \t>`q/_%)mqYu%Qe-KǗq*/K.+*#ɼp(kN3XGO/Hp/'j\mdD!|J͑=hhG |rq~LlδiEdMY= SMn!y~ F#ii:ʫ_S "M@-2 ' lx(ΥD/k3udMIwN;_nCT >/y\;.ԋu,/vrG1] *uQgU |/UO@/(GBVD^ Ur.|DSBVYS?mo|`bL_l?l%}ٍ}l-.峗7 wri(OmqNV'Wp gCGe vA2DpqFP4~Ɛ"|w17.)(LjMvoL%ȇmTwc,BwKc=NSl=2h m0c\tGSܣlgV*1ϰ:<ĝEA⾃xPV.uO-~\ ei6[JD&vtKMQ3 g7w/=xi'fJaHx>kNSWA+Ё)D>$nG)SkfO.S-}Oȩ3T@ܡfۖ`dÞ,&&`2k_2k=ׅEI!fc9P߆#?] ( _F,.B^ؗBHݩY:1%IQqGPVqDS^ /䭯$|WmS(G[bLQ`>,ݸίW-l1g:3RކB(UjSl +l'WVQ egvpP:u. rܗ5Vi-Y >Y.y(Qke_M;+*FT*)N^ʔ:9ByHV ɘ0[]ƒ;*aV p+Ӱ̠o0PQNqt\x]tU^LfqdLa`m|T{ЇUmW- 2`X!Q>T1O']_qN{?UT-SEMwR33l2P}rE<<>(Z֮Eѓ£Y `>)R C/igbqKe׫ +Q,kkWiaU?^emO)MGj#G&}oܼcw1өtN@C/dyeG@kE#0DfUw*r( XSvOzp}qbe42^WJϿXIQrBQBX8Ǿl|:c|յ;o0u=Jv])Sfz )은sH(N%#ᶝS$%Iҙy2Uհ!חjh_HFэ#= Eh޲wd_O`{bE$~ojtyEZh>H爮-Lᓝ n-NfxM>Q$ 1IΏu@2 b_EY3 |CPsYԄȝ-"&3YnF6T9i-$ؒB#X4 plvTi8eQEؠ 3v7 MV$@3}PS} n @H(Ia}eT Bb,W. Up,ct<(=GpZDi˻*޹p@@ͿETCekmUp53"3P4MmO谖fc+*66Z36yf3Y0K|tDh@T)Ǫė3t* 8=dː+߻ (xz6ol3{x( ,Ĥ3[[&)u$@ ɻ]txvWT7n ~_!CA6b^J$5_4Ma:j24)ce%ɝ\y| ~ &2O鉙_OkI@nȂ]qEO9t\ "9nޥ/uԁ6w 52!B]-ތj!5%wt@Ukeh (7#`ɽW(&(X@pC [Kl+4u Pŧ!%q9OJ{Ёׁm1.|'7ts}&l.NO9p\"~4O(&ʨT\LѴEpW!u!pP" v ^--#z X5FQQN6rKqXP,;Ts΍SP `O.m d( ~;w^7i6}qBQIjP.P+&>CGB ?5s[g }Ј3T/A5/6m8w^{qE3y` ZLhŃ_hf0r!&C5JÔ-s]Ckl< M |d#}};t|7b̰ٸe)Y'#Z{2vr+|堟S㬄Y U4#nBf56&zD^GZbלxpqshV%g]&we"-2BL!2u,u#ar'_͝u^.UoT_*nj00%ce|DhVh(Ḅ/Y }Fl%0cI W5-l 0TH%oCUt~M\35d{ٱ:[QC GI;l.ŊE(+Fe]܈s T]%SS!MEf')N[f(s"{OUNduZC@7G?ZI%=ݱq6ŋ" mI?Xh`/uJev| )iMf7Tr26)<ӝ^#HZuR9.ǩs%Vz㥼R}a5Dޮdߛ{Yb_@97n(9i*/ƒvC^-2l(5p.dp(v1q52 !J"{x%m} /& 74b>f&LI Q`uDxip- pQKL*6P2On(LqvCH{Vx8ϛ%L#&P=Qn9CVyi? C0lx1 a'i3sPnva 꺍f`^+Nri } rz"Ғ?Q4ps@oC|(B7n#MLɖה,W`oAm7!6 26dGZ2zlԌ&!dg4a0L%#:Z;Dҕ Ȟvs h=MA(PF;b\ؒN o"v"`Ͷx8{< jlQpg4g< r%g)Z lR6KBKZ-ttEp1?XrW0.gu\1~>Fq đm4(0_f7mgAq[׻,dQ;de}a2o ͜b(DVBKA(g$LUu9gǃ)Lί] *R0O8vt*v&s.|9.:. ~/LjUi 7udZ&dW|b#h-"0跞Vn!4[^Ї< dmop1he=IN;-v[hIjjR,c=̂,:hq(sG֨g/;Hdcwr3Zi8)vYCs܈,@¦!}nL?znl=rJJި-}QVHEPiw @|(3;#n WSi8apik;X4Ɣjzhz"}}~buJb&Qb9/q(!L^-,d;{Io惟9(RP.樷UT+w*mz t)JX=7R ]zHP)}<9od6+xV%niR|} m#Ty/yd9a{O[ ж%=9|ڷ>d6wzF=L}\(ĕw.Fjj=O-QS.ɢi܆ꓑwXv>fqs镇ByL9lw 5\D Q28P _g*rLPR^ 3ӳtJ`pr᢬M!w/XM;w+Ӎ>In;l uѬO]m9wMlp#-0Qc 07c]w>\tyq0/.8Ӟ&I=~^g&o) m[xVorcGfV(x`& U6j.ɶE2ԃd="ϣ<ؾ%VщѤ͍. d@,ieO2H.-$MƖDZfipM+4a,2Px!ܯlND kKD}p+ r&: ~̿XDZ~ 1( O[GUu+>םչmBz)P+Tδa{c3'z* oF1䍿0v!HZ 0pԐ1[U5)jO1ia1zDl|ywͰv/B<:y4;\1}6H,6rgs(^۝,^pٗw8YZ5rTjTkWd}xt)H7-7UUa?YJ)B1ۭ28 / ` }40k#nO'fШNɪ804XuZM%mwm|O/+/[ni@mB\H)(Ķ#1lUڔcַǑޘ#Wk(75y ^\"gDB2GVM8pg_zG܎IWLC<%,|j|qVLH ;+&?D;!!kK`:C[~AmQ|e-rN,snTt~c kRƁ#I357aZ7FcZ#IJ\.KA*)tht՟ީ?lcɫ˔%<>%x0; "zw;)^>Dnrz+1?XAzh)j DosE6%> Ĺp2,Li}ֺ]RkvYq}FB,BwDpcpg3(\a 肨BQԕT6:U()F*߱Wx_S6^c ۇS4lm:&[A> LqWgrDZGq\sAE &%.о0lD!';/.% '̔cK%LrЏTbP"}w=8rDwRGQ7?-jfTs!ƬY(նw%JRGe mߔmO= #[F='"L7kE)*[~/mme\$&Q3:L؈\KM`X1'=DN*?b(AKDQpkxZve0ϸ0Ȩ%p7:k#f%`TOmtjFNg{`v2ۈ#Kϊ95U<t{s?. I%Y}>LuXH1 i)^4:4_&8Z:콀MsZM;M4nvRVAl=d=|s?]GHyOmbX=& ñ[ya׶!曰'Hê^Ĵdoli9Z-3-pQ:&@L/[) *0⟅o,Wuj3n_~L?Ű/kR *2zmoM6O3.l/qp֣@ՐXjreujC{N24ՇLf{u*|b3 J6x:ɈyVl֌X$e$QatN'm(ՙ4lU-`fIsg:A [1Ju(ѭpr݂[t|q(Lv'aS.-)c\)a ƨ*^]i /}6eY!lJ}YґZ>@EYs#/ޑ"_?i/2gKY6.eIKX]aGMd.d1}#Uyđp!=_:R x2"{ם^Ǜ[#MW~}xjðg9f(A\D+SH16v@)@0,y ~/F֊{ˎM$a``&omQ^&8d^A o佈u$#y]GߞZkM0gJŗ' SM).&i`=`rE2Xu/T¢Hrxyl(H#WA?Iڜ2FexlU=mrGE(bգqMVjhJʮxFZv <~ƛulGD&szBt!󄯇Wf.Nyȼ s Od=^1d|*<{Uo^K_ՙ4ot9$Ęyw^s븦_'bqWou]Nicqa瑾)k]-]oo-OaԉJB2D ,QjBGBVނ&k%xøe€A2s#jӋ«`F%xlm [0I,tGjcUc$8^3mO;Ԣ 2 b, H3eW%.\=+1>~ݠ,7Ne:mhFi)6 RQ$ kj6crcp;#A[O1/Ӹu۩оDcoR7K~Ȟʹk-,գ .S +[Xz"&-%|fVkQ|BA!PNmj8pJV-5sdnS2F&aUkٺg[8vƥ*gԇ}F0f0;cK)l5 8ΐ>eJ,[1{܊䅟BBy M Uփ\{&^ bQkЈ~cq _##{?`nu\E]q4qjhYOw o?47x6[JTB͝'G^NQXϥ\$?\ȶWaC57nrY*c }LE@sNdRc0G=s2En-QXaOX*df.wI 2Tұ-5Aۍuyy틳FS_٘aA z({R%) ߓR*9ԨuyndI kw02쌃kn+E-?ro&w-Ol%d4R I\D.O 3Lm|.rQPf=Ouû;shZM4VMr1Nã'oae-ҙeCǿRDR%En8tcRP>"Yh+\ Mf)%e):7<f|6<'SF"]߂&q?Ă5דּ0z~Icx#AxƜʖh|)RLf߅A0.iC.-;WbQI8sV}DV/F!%msY|)uu- 1$oʅXL?&hy7P c3>Wј k,X/S~@ ' * }ؽ\,ۈҠ9(GY?.O5rJ_S[Gg|\+:1q1'!@|\ǀ3 b{hnr#k:j(ʷ_x׏ 2E,j :]C@Ӟs5ӋJ]`ˑR2w\EG'Kѽ:/@ζ3.v!Gߴ<zMBk!)2 &U.Όˆ m.-"%FC2RȨ' ֝̌UϯyXAjP:Ռ -Ŵ%#"(d#>VLlXL*/zQo~g|EKp5:.kRc6bCBr\+]qO`/xYTW(Fr+1B۽ͣ3'IQk'N7%*?I "-)!9u7icJ߲ׅ!R ~9/Vt]X ؘQX)`^Z9|⪞6lq?}8HG^OG etOA;R-(|MfKnȞ 03G<Os|cY=2"9\*cPCu%/e1T-!!MqP [LLab !`g 2! +$9~  ݎN,=F8nT0Yt襽N6*_ a UKD?͒[W5..ĩuzԐzfsYQIۡmCR "ꏻ}W ̈́k*Set_8Vb=&p<$naDepx&RZaN5LC8)Ex#8=8B5 ~IЯo&  nTPƦ766 -E?145n5T^S|#GFe:4{v lLi{|,ۮں?#hN 9/o|a'rk"j-u]μqG`m 3 !j'6ͮykC/ gI/gzYm`'rh}ScJucf%ecqHEy|QE\>kǵQDl7'hXƻd~q;%hVY4q[i(cଥm@k !쎶H[ '-uE uRZߐAaDA?uB|M"m@$匋 N3K{Ew4YGahMY~{7%eS-$Y]i[K0C<{9EZ?7D[P|)5;*,=~S a0_YI? xMkJS Z.~٤'Bu#y>g)3^p$LC~]3ujXQdAlC.=gH *пiX]}Wc<9z1BBW?i`!_2uD@6=ݭ& W:-Dz&q6oO?nZ_S=|b?,_!C  (ހ^sˋ'AQ{sfZ#/H)اqYg!xnڱ=EU=r'-k@iɾt }@}Sӏ "&Cdeڟ2p,LjZ8r_W1FV,"9.g͙0G9LmPXQ"tU\w Ǐ@X*Ýj&AhEWGB-jxѴnm.;M<>-j*A'garsGgzƹߪ$%5  [> l ĸhgϔj6{LSٗ9Q7lwђ)o-{{Å؃N_-@Ȼ*Ryk Bx{#x⑓qz/ނV +1ˤ; kc)Is ”r+JWC.K9 s:QUHƆzğ\}U$ŋBUɉᙦ <3R(۶E7]/JG4R|՜g/cig cQRl>D] 5FD ]$(L}.&M~$, αx_;׌y,*e澽1$s?9aTbm^r1j%7.(˺ɹE0B@˧F8D3@y{#{[Ƿ[D5j$Dv A^ņ\),o += MK ;3Jepg3i/ 2+^ %mHr"c|4&: UKpoܳ|sD.SpTF]xr"WhQV_C6ĎvVReQmni7 c2帬剦"#5sLp97փ>xBH/a 0UM71F7(NI8PZt,C7hДk`a`?P"C&!m)*3"[r{YaiXH7J+o<^wNDqF_LQ bTxK@Fg"U)YZllK%bt{QlԤ,zzzmYza@N!.>yAkyhXkLHxoyjg=#;nUjҠ AZ 4_i;,60_sE  xV\,5m/ᥟjTܼ,Es00ſ{SWiC#Ȱqk:K\Wh%Wr4@Zv)7 ]:&beN;ն9gDX71}?7fFu`wUH/R2ީ&DSmfaI$s"\Y0Iʤ$~7 pӚB\2Ry)j!='·dۆ3a|;N|͒~m޴ g\}8aS,/E;"_s}8.Wvf ?)ZFm9!X*.Eaˊ\(,KZBVmr͈b> hk%g/d~f]^D3rgnl%j lx]sP2bH:0 p.z=;KEl_ LҌ de&sh1)B;bᏂ,CAr.2 )pi>Xz  4"[p0k+%k)7?k{hrKFت5XNa1KaɝS9cbx@E>E7'y;v YB;꒼~^Tzt /}V3"+̎r-VCz){l\ P[`7% ]!)K GH={JSpYcur($czf’(4+.egli!z{*Wh#N_XS)ᳵ5Iv]fv% 6ry:x%ؕ~ٸ>-\3/tzd>3,' skZ\rXr*^ߩ24b2>u`fS֠4W3J.^G'#hdKu{sn멗޿Q Gȍv%aK ?~JBj"+aT=XwߖqR@n>si.:\ &0{pJa~6e \*sC5KVDw;ϖ=?cQdP95T7B-J7c!\@%2@Iht(KIޥ)Vߵ }.+By??Ȋ2huճ)E϶*8gu,_EozZ2s,&Je]%ӹwor\i%c}[ DPx(yqjEߤ;bAL~Y>?׿܁iqBӡM8: }vVlAS<"ɯp#2*!1jH VBv*Uµٙ;OZ$'L):Y=*;!lM#iA?LfP{bdُ_sHn=^OZܶ/j\glqGѩ\KV -v WdIYze".;! Qd+U]YǶ% -%ϓދ:Zb3PpCl:P1C_da ./x}C(p,w՗~k>&%]qugyH6%"DoSlG]w艛|Ѳ ĺ7=4x!n?Y-J*p҃"tt^Y>p\E/Ń>p-n@u%6]j'V&eR {p*, R݋ՇYV DvM(-H%tmJ?Nl식UZY|k b\t&RrP_DuFOD?yuo^$]aV!P@eBxvrq3YAVcT YR8A>(ZwQ JRm`xM$AL/ iZʸ V8b*D:;0(HÒ)UJ@+[w?u^Q%WRGIKJ)e'<㲁Z3f܄ANucl<SloU{"B 3%,+] _ibz'mV9.PZQ4#ǂR)*AG^Hw б)րiGDіq ٯ,0;!CskHѧBo ALĈ$9ױp Hp)v1]"@sKd-KfOD/3FxZI)8i ޜ{?Q+9jn[>"疊r=3<' ?b S&G$h*M˾po|W134 cqw7B)fru}z@蕾ÅyYC' 'gjiQubDd;VXurZxZ~W\KFV!PruǶ\-km.c^P4b‚i0ƶwwIOBW g׏2Qs`m@Ġa%o\@6 <#$|;ׇNan8,u6 SF(ٱgxP~+S?v!xBE-2ow]jb}N(!%}_;p.h. &y0h˦[ardGY]`WcDUWԕEcۈ5OnDݴE#n4D: :V!3J=N&A$/= } 0<%T!rL* *# 78-;R7_F(su#]::>uғmG,{OUM$2PtGrUccw$=+kQ| Q a kYi Tm$+}'mY QtM›jȀ?[٦ 0WV7W| Jnevy˻9-|e*猝XC 0 h#ݟ-I=x됴P(} 6)%}GJthyXb;6} ~cqUHcUR>yWltV~ٱa Jv<&_Ɇκyyoh|N XC!#& x+W/f]f keΪaY/6 ENbe |< ތ\!+P噢'ʢ\G#uWqC=PXh2d:7GzT3ȉ?fVTc!Xil蛦HIZguxPhZ%;,opg{1hC@w&GK\|@m*$Mp<;YE@2&FI4bOtvk-@<ɼv^ml! !q_dg x!=z]Dg4tjJ4 \sU; Тq6=ƜU%neݶ!bGv(1Az%WTaKǷt @ddXð35] _S=~D7RNMR18\T7,߽,~\Wې:: ~AezP[v^8=f}d4M'x.{*ro !#yBS=>mitcP@|hw.r!&_ 1 㛮|f`~hmTc S`~r((>R[T:=f^/K/ȱ<68)8w}sjYH t~r/I#̳Nz" Hh:P9 j0%@]_0[q|5X0*w*jZ( /-HW"s>O'ebYɻۄA49`MB-Z璅@^ OGVŽ:*E)y=2.o5.D&_Ѣ2 z(Ntjk쮱Ҍw)Σ3DEW]&sM0?9^X`+yKݞ(FdOh# @4,vvlX& HmbM,xpcRyK\41} KCm0u_wkev(G4 7iVxk~/ta]\:v}M[Tω"cFrXae|Zyt[M'krEOpfZJUf e,*I((3°ofP-R.>tlWB-'rAJm H%='6h h[N#8:mkZ.qRU"6ӹbfš-B⮑m<1+6mktyZ ּwĭeS6.4lLsbrßZ֞%VW< Jj\6gO4!kFՋhWM^*ZZ]*DnbNRJ zyTXlCO.܇L,8FGds"pt#u]]R YšE(\oј*{]a" Gd"L=IfNFfkꫧb Z AJե\s*[O. $cnLwiḷt1݁W~PmQer=HT O-/srPН\BYCa)L2?՚l e&z";^& ,{ʽzvl" )R(}VE}J硱z'9bܕ'Ai5%n2/慣؇[hf3Ɋj]1O:tdL{r3ch,rC2Sqc*?u2:?Ȍvj9%zG'|RqT3O@(b~I F*3HwTK@iJgMD~ۢ*AwbnM-k(5ӇcD6˜KĹzHך&Z_BN3HWx)t ?RbɅHWz|M'I'E{]V}1ůX,JE ^-xN#KUGaY )kWKVj>CirT$]|_hDq>xޑ}=6C cjurא0͝V:\ rS@JK}AJ(k۲#}7丹[$f[JW^Ț5O(SKWJ# ${ȊaLtMmg`i1KsylkhH\oz9"|!sc]gg>t&"f1r;9E,iUpUAƙ8ŕlJ75;0gP粢2x8hdAd`pa}kmy}1{i'e PZap~_puJVX|e_.\Xu3!&"I=:_rP] }ɬ*G)X-fB* 鰤[?M;O?)UŒfQr\LR:z /&fF\ZHQ40nmH;GxJ붷'Slp>U?Kcbʱ&VZ@aQKv)l +*{aeef3cέ@"dLrRWPbL"=H5H4 =(Яu4G1Adxَ3jq<׎)vbJwpjIEɤcFz#8[6N M 1ef!21#WhDk}n("O[06ъ_W>:[ MmCIu G&+Au547|cfN{@*&=1&s}i0`ei3d^{q)h?U'1yC(Də6NA(8GbRHl#E ?Rz+cv"rKktm혭@b_qM( 1wj5(p7%%|P]]xT  ?fI{>58p6!7L'fo- <1i%ZZ?~5҃w#,N¥T䧳s6'x- Z D}4?ʯwKxrՂ%l޲S*iD{hb"Y3I ?~gl|fSh`>A]^a,C5V^*!pm4 %/9P =0u|7L8ߘN6.scsG#s<=> 1dS:<4tKM mԪFػT.6dzBN@^)1W4lN)VHjjs߭hO:OjN?*lI =kJ v!< |koPgPN "~;Ј5!}w|ߛ!mHi[UUg/ Uz",!mK]hl)}N؝Dm|IS\qߘL4& eQ*wkdo@`~o&d $MZrt^>1?eJN*f%'%P*qءKOw=WD'k$%j, VK,M vn[+i?ht!\7^UI3 3!xH^URnV@z ״tUw_[ ʹQH$eaM,Mv-xes.B2 <ͿJjۋ|ծO&Vfv[z{i<+( I0CU>,6 Y ls"x?* } 0B>dL7; 0c`OJ,-i U#ќF-T^&y_&x /fVa2gOW0gֿ>pN83T^XL })ܧDQ+م6mwz7vA4|IEɓi* :'=>AVD cc6ʛ5-vψQI& |3OS]0a a.G#%.:D=Kt傣u޽T?>QQ;"{@s7?3QaY!?W$Jtp~kt b7M`>ܧG34\F%Ŵi$JoTCeyD4\YލdX'#CA>L|lt}E4*[hW/;$x:]T<9z[PZ/f.R \$"cHpk (ƖCgk%5P_56XfK\%gti!̰HAr;yg[E}*>_`݈Bo_!|!,,"T 94nCjYVI-%af.s@IUc_ `ђV3#/;!" #g2fݟm;l_IC`I ): ABևщ?ƌ4I=v]'L⳯;]NN7&Y iGppFq`U\Vs~cuÅGc6zOmӻ>|)n6 sT|L5f60sj۷%nEqɠ{\z+joXax:n'Y@Q#Gm͒2k$X]\*"1?s$@JoW\/5$ 1t5N=p;yUVA6)3F>ԕF vqJ%0T_Đp[a2%>\ӈi &u?җCzg2\OߏlQK]#])E3ⓉlN,1QuН+Wk(]<"SMU)F^"Gz<)Í|re#L*Loٷ\MJZklL>|2u+-$ GQw7 giX,8hL0m[G{iob۬;/*C~ ;E(GleCv>b#ns;SG?( v bR&Fcr}":JPo,LZT^{wլQrs\@'4YScBΞjFgZ4ȔVy[8F[&DIGTaeTkUYwBܒch9F%P+Bd+&T{>,ˏ;ҡ0_3Q+4&' #^ @WrfQy~ !vv*Uwǝٍ/z :e#7Df|F04WDtd݋ jJgg  a.Wsi6[e\v\xܓgG@hGJҶ`pS{UHjș 84m"˱bOJBRN 5RU?ey1Qc{5|ͅpIRC:^IWª% f}GAԊx^l4j6 ) ȐQБtl{Scu5q0HK]Ǿm*ǨV_~FdD#AH\҉A~JKփSo3Y˅ _0;QD`0Ifz=p4_yTrթvX-fT(l|8gSc3 (\N q?EĦPiWsid7щd dN'!FY^pؓ@=6{]fU[4`:ɫQk\#oxo #B۩5j^Y?l騵z:MȅD*av>G&CA8;NO-|Ldu{q>8ݲaZMO(KOlu,+ SOظ8@!dV5 )=vB[k<[5 >G7Р+#BrƢ[u6F?3ښA0UG,ZhZZv]c.1' ' ECi,L(p1@ub-g,t)ey5XY>vԙڃ'^$5Uع2sM &O٪MlL1)듺+N;[ƨ'E`1zoS ,Ҳb!v~fLv :CQ2a`j#i!vgpK7x.<)> >}QFAǦ]yXps n~@@d)(GA%Ǝ N=<O*U$csKܐ p~QLñ'A.3v++v6{v6cuMV\/gZUӦS4T4PRo t͚ɉ[NW>J}0c(XOy[]W!<;h~/6A^q 0c9C: /W\66y]tyr{["5u+ e>,TS2)JAh]df2}UfUIy:p+_O}Zm6ԇ.V^s?ǍRmC x)7RO; Fup˒3b =G> kgtר04%!5Vvaj f h/G)b7o~~6=\Dk/]>ԈY^T}ɍv- El' Njb?هms8dLRO(Dzd>[O:L9;P$,vc˕񤻳e(z/(Ejٍw;FK77er`,fp}3 ? { sܽ׽/QU^1.)-d XQ ^[N]"O s1eX3AY$s =q*w/SQr,Aq7R͌O!3UZcu{Č۹6 p"u$[[:`CA;׋?D'.hr{hm5O~$a蟑+X@h5nw#1a;"636j+@d͎^b>^7. ǖBj3.iR衄diE͉NSE)@WeWd JȒ 8b~Db|oJ$ÌDC̿Mk*a颯Btƌy'1}7v]~\&JnMw #ct5+` XR,<~DQ n0|f-zDnq/_nb/[A=R-VbI/Ya41uI[ Q"hu:K|C햂y8Ē9 +Kdra`3W0d?a9}_+"Ml:|2ԫ(Z'zi?.*L NWuئǕq$fJ"FPk]dv ~*o=! U;%QCcT(LD9'엾G,O/j,?' !J=';N!@Rw~ 7:V+{{`&ϊOiCL6"`uS6+@ھRFHIMq"I6\&@"Yca.D6*'UjG&[(m&=K:89]Hbig$'3MthPg`V'7 AL{翞)}#̅LP}IwTԦ 8kΎ5&qJ }׶W[Uh!4Eqeϛ cyѧ)<*v 8hĺeLbn [Y_C(_ҳ Mvwt{КCM<ϑV60}q͂!dv)8p3!J`-߳#2pVChv&}f2DӹsvBeusN$~+<Ͽ0`G}][n24C)%-ަVc?dB[Q1S=TR%37UТH^ݓ]WvC2zMCOE": #Ǽ\,q%wxU6ܸ{܉zT6):pn942, 'O+|3zK5WAfTtSl)+u}G6^OVUFU 'K*rn p#L9D*W&-'mD-6{WM_fBDD(,Dݘﷆat"ٷəɔ?l!K?=y_eT~8-Z%*p;06-YeSBR%WN[SPTY @.Bo:xu2Cꆽ(I''Ǩ}VIc6K hS8C ;.VFlLooп0*J9"4ܲ'8[p2H`Kj ?]ex^8v,3@!Dz9!dǏVB:b6z%w7Ick}Xt5ik&dROZ 1]]5\a~NJ[պ:ƃgn٨ 4G z=M`ˇK'!w'+tͫB3up}.S-iF!aZ/yŧg_ȓzU%*ͫacXS`G\ɩ֦o1 hrP>{IR Ilz%)dBÒ3i9ވdXTTW=aK~O]Qr XgO{84{3\u iƏNjq,y'`+sx܀`7lD7$?#2n/LM6|IoNY j&U^eJ>dD9C9qŋ(druec:Dxx]j-sȲ-0FP7nI@km&v K̉w@+h,: @0;+vYd!V4~}=˚wvfS5Lɛex0Ƒ9B<5qJc~ʣfoGf/|ҙB.fACNe_lL6Gq5BGFQj'v9ocY2sck+vmds$|I77 U3qz!PWw3 d׬ܠ/;oڸ e栋XP]U,Đ*?IhWL'Y<7/"4NqvpaaWGԗzZJYt3 4OW !9Cj-!6rm@\89_d!qxd /3*Gq O̹vܑ3U+ˏŇh ;p>{ġ@UWXKΠ+>cHmY9ZI <Ru)O|_ {TRRSP!gXޡrv4:S;抌AZՋ'݊ .X ܷ\zmGeƹ;0bc2wvmW !B@@\cJmhįr;O`]蘄[?_/LFS ym8 x^YGws36~7?(O?U+!%-uA{*W$ : [AKe1P=u8bNMN*+ yRFDlk("@PRQWA8RuAr=WRKyH,Oإ*nJS!hRJAxjNi&#:dưưxp0n=Po;0zj1`k u'xAQaw\7m~@}1PluQ$*؇"ҹ~JW}}Jf'9Rg#=E]dTO֎\a6'5Y*]GH{Y9Iϒ/ݱDsN (lcS*o2\\VdkұQwuΥ3ҏ"fk`\fax d!1qjǫA?}pWm 3m)[TҤIegK@m0Wzp:bv~/{x0]ޅ|";xjzT@ֽ8#SӼdɀn4LR\&7Ķe=s{'4(ൾg.cEَ!c7nsnJ1މgΒȯt@hA RIA9=cd܎.\Srs2 qGv>$1"eY;Yi|nFJo[~dF2 #j}6C Fu?GB(q*|]w~w}0|=>dά3Wѕ57Hj8${)|0"]\ Dl*HhPE޶gЄI }GGS]g@":O@hŠDKk5~Q,E}&C[mc0ꨌ<ᱸ /1jJ=*I"qfi/J5)0VRq,0dMC&\swL@y"Wޔz NJ* )Y ي$G!3*^ {@< > I@s3v-* vrN)n@dRTFr3+rsa/yh:E,JD[5~UNO׋qfl"(I`D6}$0y[lr,y=A#oܕK(%W j/)X 6,TvGBJ?(i"ؔeAUrpT-:<4Lhݤqٝ;iG׋Be=0el縂C|)J=@Q,[@!3ėΛ  {S<:A]G)$][M]3-J#Bx'̡qxӞ E4='pB/b{&Q=%>]ae`C"iU7.t}<ȏG['HI.8^$ꖽ]Qd/!e=MG!QFG*u1MhWHb|S}]FЂ1/)mulوk04\W3L <&6(.I9,FLjh$B>-2J.}.b~±ܫEМ LYlP6bBҢ2oĩǵȸ([9#KmpW۽ϰD&vAu})ꊛ?%-\i'hNI)Ena}h a;LwC#HWH,{5g\ܱ^>A=HUsT~ !GI:TH8cr)dȆSrSr%[s=Lt HgH-=3nF gp{q[# m3Y-9^2a+}_TW;aV G@>ꍸ[T͙4mbOsröbY7SK{t[K+F\ђ&IMA %ŭ/9 ߃i,:qJlC:3lNbuTG˷mc wmUq`Mv*xq.-J ~p##8:adl S#>NRMHZE]x,t4Xr!5XI&MHA|r{0F3ܦwȅ.bRSsܐ”9uLy4-rtװ|(#n]CzWU oe en_.-\X0DHy>O ]'S= sxS<)ɏztFb 32#km#pMo; )!䄪q*Qk^7 3h¼ l}C ;_nX8)\//Ql#5inBrOd|Y/Go[!Pbu4o2QŐox1,s+ҝz0'O7I|{"'桅B<$N;f:g|^7wlFyvSVZ!3Y7odt-ŵ~[L-C+LpZ#vU{g[DC[q|զ} * _M&0<, rVd drL8;9|w-D^igfƆagh@^SCv N%Ə3#Fs]^ܤ/uc> |faaQsm"&cWÿ T0/>uC.$kc 9%( ߴtdxsf:x'uRdΗw'XVF~F@^Ly%~ ~|"cV8S0j\88.z[0[}^uw ܪ,j"}Z5x'oDF(-q (C<3}}Vsoa)$sFOIE?6n鰰Ģ>Gs9VO}^;l,ֻ. d/O(\vhUVu 4Yc2mIa#WX%:$hC-3?'Dd?$$v1̼yhf ,5!'T\mkZeiicˬ7YohLʃp&o}1ǒJ zoU\' hd*Ct$,y peդQ[e[z fb]b%#uM{)n.ʦ3^QhYHFd4|Km)* jJ܂ǟ 7b-rrh.5yoZy ?X>:Be 2ՌQlژe]%ӜXƑN'd6M1;&njŋWp 5wKoQ9j@&W~w|TMi-}[m䪕m*[Ը` B .eTLCab>uJ1tyOD;I7VY:Y*[>J:hfx`|R7v<;NePo /G-\;p1ԛMCSK 7W6k8y̠c5yƮ?=Dn$4INѷy`J'rkz~:^.gyZR$`*밞nr >Sa+LJ)]\&] %  ʕ9Aѫ+[(bA@6;J!AR?n4H8 G?kz]y'#qh)XF3lU}*&`xA3K ~Q뵚F®i 7IfI%#ԓ q 7uT룰WE-EѼw"zYS ~U, pC ~ /=&BJ뻷S)ԯHC\9S _zs ,壛fFDOcѝA*iKV<X@p"e&:=?laN`H칯PxVmy<0c*3oGw;7v)\hXQ,0w$|j"Y˷a`y8|17U|ĸT[8㐚/%ٴ?O7 0$w'uj'iM*$*-ngv6wh1ՏX j@A 0D(5H.ɤ_GKFGļQK󾞻H<3c GOzWYFîm .˒n: `4t 7r'h ntPÈ3>À%mْ%hb.*ErP&^ʬH09b +ǐ`H ~8A$+j+VV 6O^2mt^6A#b,zLc^[R[Cc5Q:ȭ(r>,&%rxCMiڣz[ʻJh7X]_n r]<ܭok:;tY$?D]>I^@' E%1u̕8cy:I1:M|sm&O@caFb+φG|l6,/M d5mf=dzq ±&@N;jKMB3m,`X2B>z)߅k /ńdK|Ȧ)/n>tt^c/B |%ٵӇ!QZ2 M'#2|n3㲃(϶lhǣ1!G6@r& 9لgq[1@=&S8p0eΚwn3%Tt;@s5 I /qų =&8Ϡ7!BB :b P!7ϫ!u^O~z]6%p670!ደBXA!וL:s*JHɆJʨ#]V<(cPUނ"]ЇwX ϹeqXq{~E&|2Q#A )YE+LBoRg 3;*Gz:C y?̳M5yQQFc;0tCIMJ76y$3|9-K1T)Bŋt:|u;B|֓<wo_ߘ }|zF438޻p59/Uә|%h 0#JC#]A#9B}܀ERƞWby4+?%s#H)ԒWR~ݦ..dgU{tڄmBZB]@mkdfsvm~(G$䑌o%B9Qsda +E(^ޅ$* w'$u^YoQ:q :i1wXc!b7)km.cm.oPj nSվ9(y=Ƀ>`W 䮲Z[*>7i;n;d0}g0tfu~Xl! 3E-tiIo@  !F즠— h=xOE+ȱyKk=gpH1ZXGb N`%CE7Y^4g{Ўyگ>9Zvl,65ƦoѼ} )1sXPS%ͥl⦺.qP=d\ImH'ہvzͦ;ٍeSmv2rN* E^YJz.ovlH+-`?0i"2M" x6G/>T/.PFUŒLcWM-f_ᗡTD-e%ơTY>d7' Xňz#8_)e2NjHQTR+6B<`"ᣔٸu 25QM}ADͨZMJ o(e(%/lKCyŠ"a󥒸0 P& hl Z!@ΗS4fA5 zw2{(P@sR# t#1خ ܭkޗh̦3YN7==*w QbpY{_:qd5cY˵`m VIՇgHcg]kX0;iK6f!9PDJ5Y6S,~ϹU^7n^Ǟ$ES4mG|.]JgKGrWXṟyh6e*% ;ykAfq|4E=2dOQ[*rbz)IR0_Ee)ϯams]8XPaBA* ۧ_q G?2ay@AlOM"^1G8sGxoo݌N%~h$Q$etw S31g943ҼS9vÂ=q+^W[bkxljy„T|~8=|QnFtQNS9s ݓ m|BgD-v`&Wl/;y_7wCI# }5jigK)"hq^$\Q "cuj]"qpIC9XD.y?$EߔNx4? <)٨_aL5O%(B~ `yzc& Gau*Uq*X5TqWgJ SA-6{f,[b'F -jTƻ#kwy1V BH5L/f@o6*YYv+@߼2 K D=P G7DL+tgLgl|7NBߪx$! `+4#`iN\I- i%[0` k}0!g{ nG۲4`.鶗GТѵZk$kRL bLpA<:-Fan ^,"S`h Vv.+Ms9`^(fGF k/ܕ:5FLK{f;o9-@y|IvnιZYWFi2?L|y{yR|-L3M1I $ ŮՒ9!8K %ޟqnؗ9M|c&FF ma]tt~cJk`1:",Zh@(!Mp%i5}@-C9/y:vvb6J@/-S?_6Uyˇ AVcձ:+QO]{:cnc\o .pF3uXTnκ\`B;I=2:(cVQ!jC|,66+d8!PPY4k @}3x~^Nx\}֬>|U-/88Q&h2p@)TJW\p!.bȓFFa7șkp2=hJǽ^8r!p=SP@T?mb:*|WRvZFu@R*ɮ7WgdIdFm*[-4}PNxjO?/ ^>K/U yhpۚα=THwԘ366eT˔+Rd4 hStWa%|έXʘʤ O{aRU ox{|t ULPTZ0lߪ!P<쎃F et8SBJ3rQJCw"*~2ͼ~2b&D#R;L󍕥1&A B 47Og cV,VSy۲}!2,Fh oG))4b۹.7_ &,$-ZY膰|1R|EL\i`;$ߔxS-=sK/+ÿAW1xb^@s_'kvKMzEP=J8 E1 hFO#$5SƉ'ז|;v*%!2`k}Bag1ɗ0zG;eq8>F%wOx%sJ,^SH(rij[c vN(LM\9Lk1{>G=pWb[<#PN{u"j+r!h:G>Yul|uV"33{l3Fv\)氂Yȋ, ˆ2^/aUx cB7h]3˼/\kk[Gm#O2}LџnH8[~+ nӼcImXVCVxAQ[f؛FXN6#_M 5ŲKU 2}S}@Cֱ ͇ bU] Qgrk]Kf?J{EV-6p@?rO;AJ <2]GWݙ{+0dׄLWulk"ޝI i;"g^_)L /Z"}1G KR`L+|PU`E}k GսJV4M)g%:Մ84șI3wx"\7@um-* OHG̑K j]P_s2 6zې{{YgE6Cvݮ:\Ѵ1ADhoT"iۥmdtn|P*4K='ZR}UAZ}ٶG4\Fu#uVԌ(H\Ў_xLDT5"Rxx(Emyk;O ]RH/j-qTb<5x͕|.Ef:\܄6ni1r 5Z&xO{u-1?\) :ᄈ TLikWJ$k_rdOHh_"raqݿ#7}д OhA,FtԐjiǝ iQ ے+h[#dd3X-kg)6$0,iI1ӗs5 `G{Ve3;xH#Q(At3EAvPG9G"d-V#78? 6Ϗ這GrԺnQӫJF N`_^ >^S"`OL&|Eh~6t>K#GHtI0ÏdX05y'd$Nz/Nmݚ`[F R3^m5+wcW%҅;CƅHlh%MRSK?YNlطg6W鲌Uh )62A5q˓4录8 )Ʋ̫/ylԕWK~e0\cy_.w 5|a#xrO2\x8LP[¦j?2{T3J "/߈[H, e؞3TL(wP]=tYTGjQ)>R) WP +tO \wwg(@BW1:P᭢OMG y2,&^>47` DWLÖqbGy `p*6KY-V! E1xiL7!w* hHWR"|[&cY}ă*fk:V}Rmx{w֔"@2{8spM4d+ H0ͭ$cCڴIy3km`-kWڮuQĔz+Nc,92 [ĝx nI5s[ّ=:&.]( HE}_IY$HZ/u)}~_`jl!D8 ]RB`+t).;6)'\:'mgI-xF0ju KP?9'(v\H*lQH^_# F9ʪ=F8V Xh(ǭ~?^/\7X:"CL95 ,LŸgdh|27;OH`Jby竻ڱ9,ƯN+a'8<7iu_VDЍэQjH1Mu| <{*| =^hiD*͍$;,S (G4Ik!EDni*D˔HIH2$kWR:8w+ɖB\- ^U{ @A}uOP+:rDAaC^at-X*9\:«2 }IݒnܜvB-nI}AK 0!4;Nf$vxY[JyIԛA;=ҙ)` dS=6VU9m07N]kanDn8˅u! !q`m[iPS ?գ5$Ɩ1ÀuU`.1Ș1Jv44Q*@/)Eo4VEmA)-Lۜ6]6C@kz6vh-c̤vS. e/8JG@Fe7VF{Z̵"EO5˒=%Co ؽW󺵟hU8UO=#>Hy ܍cX n2H,l,‰^@w TsKU)0:UV#VBF4L^px^N3誰ƣh<:kWlkpC?]X\%Lܾcl^࿛Nd_ v:rFQt h4D;3|W9oK6kf"¸Gc~<dH+wPM~PHYc%5?QZhg/]egjm/l\sixӬ κi<3ʆ[dLi&hNF7[oiӡWQRWĊA]d{Nz oURb\mPJfYCO<l6m+$LqyV8DLwĖE.Nv:gFA38 [aKgd%4OPNֽSRY#n/!ëAr_ OȅIiV6)<1VCS䟫[:n[3$leI$CWgi( :0{lO'{*sh!LzfʞezS-Q4 4[ȔWz[I.kn#a `Ěr!d $v 5n"YH}I8M:67.mC;DEDž;҄]G[Ę ӀpxppVd\|\SF= _f٭a>J!E&jIw ANy^O 'u]wt1:D~m23Ek%ߐ" e6PfpR;rv`f*-O-XjN9q٩u9;Z:9P:ŹIR@0?)ٖxyCa(|*P3 8(> smHҘI>]ky ǑM>du1RdC%vDp 5Ԛw`UQv.T dŬ";? ;XbBZ&< xO/nNpBh5=0w ^O8+ t[rV`p?/-՘pKwdX$KГYxoHlM4Ԓ(;x2Ү%+H 9ǭyW344w dY ] ~b/Fcfwl?riT?ˑu7ZBX՚#RNHj((6'HH?Dh *z~U7r GHflv߄Nmg}hX#:i)R*N ŕԕB]{v nNR{V?7t4¾!bXT\[3s1a 5o2tBA 3oP *ym]@p`_DhT ZM >d A%NؾףK[&Q]ZOھgl~Nz_!>Noc6&F @W# c6E!8c a$ Sɦubȿqmxcndx 仜y˼#GWQdpFX0 S@5ʗ |~Nzzg\-33M!H Ȇ=`MZ{^zM9p^9|L*$9:X\[$'`'B%CG:;w[EJQ]$NOA2*n f0'҆®s~jCB)@-.Ʉʋ BZ,K{ |E_a^d뱊< kD O282 Xim%Q2#HNY:c_Pil.3D3#aVmGhAz!sf9>C ςs>3o.%$چ?1b$-_ 83};$~@E`?NDL7̖-]C=x}>}7$~|)*ȱ x!wElW ̝8 `cp\d Qelǟxj8E]N茑N[~m!Xr!`)t?ަP ֤r&sĉ9-]I@SO1=Ϧo\ !y(bpD'{[ p[6x&Ʒihsw^)fbY‰KsiVk`; u`)K}%o/jkF^]qޙ l}XV }{Wl*v nzǟ6[ds1-rlzPmvU?9j۬JrO6~ ?~Bty5.Xh'otigI$/=p(iٌݚ }ټzpY|8]cDV4srҭ^$J>0QiIcryoIjZ1hr 6 iY`x]?]7_g! ߧD,}KhuE%0A{[YF>DJ~8V'hZGL֯g] gru]Hw4.d7c>.']kh8P5 Ȳ q}b=y| @ <4b{1zwRДX`ʶ_ĂtUH~xȥt\ņ)iқjwLx-OWcmD'y3o*nryM)G\KvnJupׅ>{76-nXAO x y "nfr LS;G&djU¹ nM!:Yt;Ε)+a|5q` 8w!\z|B]8gaL|A:Fn0dL|!mPPǗ` &m1gY@-^jd /swSno֫1 {$z~0w&goXPcɭ9^^tZhe[| *cddjX7\ADixx%„OrR1}%%sV? w.a[jxdl|FfUڈg4͔`߁`zoerJOAJ]ER·L+FY)=  <80jwZhR 34f}叉dB}ȫJE-K6_Kd+)AX d&(TS7:HXNUYv`l-|~1grr|sj2P_7EU6 A~4"79ky1͙)N^VpҢמTu=\Gp&3H6hDŐqʒPd@*P1]e VMZę}+-Wcib1@ N~?1,PC̸k/lᕙwMNKW"* Q(2h͢L_h ~gAR5(=P1-6H a}BB?P(r.`Kvx/tXq: @~rgc N ~Vc^S?7p;O%5WOo) 4صavv&i+%` #m$4VS-aɼ @h: 2DN(=\h]U=~v b6E"4g1驐bu҉!wTیԔ!ZHXrSfi4ϕ#r%#yHhf&ő%ȩs: nd[w̤+8HC2Spu i%4wݒ-wԔ<)ULm !R㜑_7;Ş-JDb]Xc_>/]LFɛl42!s!^I3Dn0crh#Wg|&ץ%`6it5912zg:偼A6{gز 'zt8+()^Tq|Y dES6p&ޏ*^22g2(U<D/] +i jH< "[׭POm~emMdԎZvOLQ_2dH(.^蓜4؂|NvnW'+wGbYTF{~eOS蹂xSHG"l BYٹA{HaGaQؿR{OiC˚{W{ ={_@!0ja~Ȇ$^ͰDxؙz]g,Z~r,/P擹RqA;tCb[/l%Y# 6(W)ˠ~:qHX ) -y'1Ա؈Ңp^8`%nn@2$"'!F=v/.!|n| d 237)6-a2RBg_'Wӷ?xximM]/ Y\f!?8$'qb\BRHC >i'. KUӆ‘bu&F@%t]7IvNZy9嵧c;gcYygh1Cn7w]iu Ut:I8辒؏:Ł[5"gEP v8F4gMSCo`] ʞ/$m69ό)d>mmI͐r@;! q YȌ7շ."֥N9,Q5f{]}D ^r+Uɯt@]uC7w i>%L%3{3kĜ]]L7 E[YPQDeئ/IГV[t#"j >(ă0|o u<\W)g }O/Z04ƠSO'$fWFO@ha&a \Iݩ-E?0u&3f>-z?}/"fAV3[QJd6ؠMT5t#X$}?> \h !XZ\{.E u;YȜ74- ?4f=yLoI), Ȏb㠺]L bH n{.vGf"U%M3fA5ٻp(zA$,7l#l^\ 9ߌۤC% ).39+YM ź頼'v/ÊIS ܅x˾{/ U+0;2XJk[&;+œZ#NQaabS"/No)`FCnd/a@?'ƘL!lHݘ_S $ < 0kKFfnӸNC%P&t\2YοH#?pǩ|5M+/$mD~&sN_@z~S# >ͽ\!ٛ) ,uq!BܾPY~<\FBsc6d|:uN|Mz"t.pb("Ε'{ޘvr.Ow 0!wUk%e?$DjX<~yRÈ.3m0ݺIHa` *#IsjÖ.EEbv+|o{Va]Qyga#Z$U2m )9NWsRâ%[q oYCm49Cpޅ_;;8C5KM~O_V& pˬEGV7/;Mo\t(؋q8#;9XSzRcePavW4@EnK(Jc$u혡/]Y|b24WSUU ֢U:A^U C)ul9i_0V)b?(\QUecD-jj `Vp*^oCy =DeZ}^ݳΜaa8E^ɍ!|jzmnu Gp,Ť3javcU\mMpxzf=)z?ӗԚ}9 {"4żIwHAF}i:iaskm@oX+kHV`ݏy6`6('>%f^lz +YliYv[epzZ|S'R[5 fu{gNSX4|` )-E+[8n--8x@P:W\l꜐ tD].;1)DF|wp%YyFf%0 ^9O~,Bu( EbC+=T¦a%Y :PhO t^VJJ>NDI%O9ҌJo#ںԠQ\nhZj䷢^Bc3v1w_U6X0O}/xV}*Q4NM1\2FHiSC#~˺xǍ4˥,I |eo|#c_wĖl`VT3ъ L=u9W`Z&*x_ _a[",w!aR-6po^s"x0_ =x6Tɂy7C8}O 3&J )b>xs =l6<luJW- -ޙ\rBDzab„C[r 6ҏ[g=8؉v~;wVoy/cHpŪ'rpSH .T+wK HE wMk ev-Ea~3Mp%dʷ֤{@|?ví ,"P!{3RMRhh-1`?FoH]yki^]EcܾT L?ct]]SSR=*Q&vɐAJR$3m26=h>:f16v0ԗ\8+dz{d&b"g&zIO.ffڙtJk8jW'WQib~<`)_\ Sxg0yj-:`Z݀v+ eyK4SMy0$phRpIh~E5X;X2C]q$ J0 ҍPo"R{79hXP{ʅm8Fݜ"gsy87"_0_4CҺ/{ HvO Ma&+Y]m:P~܁7n C<_ 11z&(?sꐯ+^齆4<I$ %>LҗΕK78'}8M j z 4_EgL)@w PmFKs)>=,gVSW(ߙ~4s++#jhަ`$/ k"T.$xF;4̻udm}0q:2VparQ"rrHG[C[FNLc[Y7)[5դ qVG;BA) (S}9Ɋ11%kHφ{ !ZOi=XC:ρ1uоYy*_k }!偕\yVXa6tRD?u {gWҿB5>;vnʍޟ3md@2eou+CeGR.eNJMt!sCF%y3Kd͂gڗ9$Mj]cr&Ɏeyh!P9x>듢Zv HJfٍ7?V\qS3* l &~GeՄ]4 MkM{Jc U~x(wB/*+R~nQfd{'h$,K0MEE@*KsNdDce҄_<]rL B(1hDe61f ㅚFۑ(J2 EޏU[ֳ`=IkkP7u,baJNC;7>NNm4lEk"+SMӫRmtA) 쒽HCM:W?Lk.hg=$esѹpi0QA?>3I$7fY@!ByLi̝ȵba~y:s7gذih˴w63*@ǔcқFNND[#Q'@P^=zcd0IkWPr걊?/bo83D6ӳg*I 3CH:sitq6cl606ضUYZpe25(TRpC}Ԗ`5$NF[ONbF' E-aP4翾3M=nt1cD.k+S9 OOa򁛣&s-`j:AKkέB2ahmVN.%a k/P(3/&*M4r4NءXD6(rÏߎOkϑʝ7MFw'AdRF]uB&O9HF& OؿßFN/y;)D_ an\03љxhyב˶7 Ǫs9 L!UqPzUh+s$;} y|1#53ۖc:}fwE({Pl,9ǫBBVZ:ix3#Vc}"tD\9l/Q"Ҁr#)utRm4s6m 3j?˖Rf}]@#iqQџmxc;M nbƭ7Ei4WcS!h)sF*pZiu'p%!h-hZG;ueuYNwX͆aCS$F߆ǯLTLO)aQ{֨h^[Z% c3rn`NŸLn~ZuA$*R_B[6(/iXh{eyZt>I1#fO;c!xךU9/n+*{?gNx8phŢ93їH&ZRajUxHs_QLI!QzmJ~(JBȞbЉObtMEQBOZT~ۍn {jϑ$u3 *z<KW[A/Fs E*ѪEgڧj~I6f˺OSln{4 ){(gH_IдѸõ~IFx%B$jKqbe<6hG]&K iu-6M<XڎNk'ؘLhF/Tۉa־Ww5b/XC\ls'AEOo = ESKOec RnӇgC~zTup̟aWC"OqUT$hrѻ^JT9^iPQZbI)g;.jmĩWqv&2mbә㏗ EtD(;pQMERS6P2nTJ lz7Z.>% Ϲ{9/A&ӟ W"ڦ7fDBkGx LQ?] ME_@99#Ogu!L1Ry_gH3LT~P<inH&$H ht!yE Zy ov~Ze{* m$d =(+[GDYNh&7ǐ_QJh|@]wۣ0Zj Un{zrzJ[7C4ܥ@qf>n$5ٕcMS1h^*`J 4Dl{)O qjW D(/gk ,:?7[g(RjkFG{v f񲞛11y<9,ڔ!GTx1o]&:VCɣOTQ s} '_ſAn 6HBQ#!+n χߒCy-!y{s7Z뻣lp1 jI}As 5H)$c.NakBAbqUcBT+>DRB !o 3( '[XXM`ښorApa<@;)f?L+A`坾ݬ= wѸ}l+\$eADyrt}i2z;n~`Q? W|ǁl+=kѡ+ha,kqVTЊ":MPRcwբ $}!B|V s?g'qf<=|Mq)+,6~0 sq_戛𷤬w0lk a@aeJ`g9w~tgm?&aup'_m9}B_IH'ѝ?+!>P'S*, |۠ܫH8">9opץWy~eYW79?䜝Ĉ:+m?8Zǔ#)54$Rue~.wE} Q1q+$O#  I7DTc}Ek p`Do'+&Kng>&nylYUQ[I LȬU~$/ /!_GQ(E1;4 r:4?ћ W'6[ۅS@Ixg"ADwa0!& AoHLRНL! dn]$8=jB옃BRO?{lCm Ӯ`\ǫyHZ<Տ׹,ˡi`6CiڼQoM*n%h+9 M  MX%{ mEO+GȷO{rfYuvy%W&Jfznlr-Y&-j/1{һ*<V.%~9P1Khʼn%Jm5(e;>$)-VMlb|Kh*9b!XU}iƶi`E{2_Da_ )lA9JB=#lg&Wp*?U7غA_Hun?'H) ^.ddanJSLOSSxx^xݾQgCޫ ~YDO1 ln 1L Ρԍ(U& AFsYoy,lU3Jg>1:J!Fcorx|;/" }B[\b>1o8uYFh".?$f7}qZhyQ> Y: %:_[6v^EןO ` J,)dftHspIGQ78g07_!Eu/Hp8'dן -ǥO_B^d[t=|5< F ~8\r즷H|uCz p 37OAD1z-{2pWm>/ܙ=֡V a:2@|Z)^B@#bY\z#nI.S d[uёl  %qwv*❱r7 u~+`w^FLx"1lt*b51vAiԨz6k=J W~m>HT r S8Nrփ'FER ʘO]TjBf}D+mhT@8s wyx{x4-sS*^Gpw&D aa{FG29L7 fDb ~ fu:NDcDwݭA P`^"]Clj[:0ƨGV)x nʉ! 'Q`f6w.$QpXu'U 8:=h2-=*fօc.UϫCgt-GEFG5Pѵ  N.P."Oa>*HH$r]vڒCEw3͸\4_Q>`@,V<"*;0t$9<G,97U) 6qI`K|F|5B_IL[lTYO|YVAw8#nlB7găzڋ{2@O_Sn>f$j!n!]XQ/Ir]\ٞɂj*.3٤7!e- ۰ Q1 [NYn[MMksypg!EpZf fXCQ'-{ ][UKsAz=Z j%Ô1(]f(uCM?uApTD~dGu(|Ĝc_#v 1t"BYOZթ:XLp&2~W-z.}nq)l c=om˪)czd6get$N.*8*6u?LԻ0.:pY7A@#{мEg3=&O@xE~S@^#tdԚ1㏤VgT {D07L,ƿHܗveuFY>p\AZ,vPEMcBiε( y4PQ ])%5UY ٙW`DAk_(:!u:ʦ%Yub?ǚv)WE_ݾNDXn>8 аSC-h+ZۻK}-4a%7\L~ Pb~iAC$6}G&z7H" sMjyXlͦw3-Eso0ףZ&*#ŅB 4mHyQ6T%L?eP a.? meNQD_V^n:9{j~ =K9Qv9lSCŊJ`l;IHH^f>^K <]0;oˎŔNeHWɓA두fѸC cP0/y;cO(h7vy<]](L<|+?46vg3o:1?Ʉ1R+ ]>b3} j/dJ` Ɉh`5Z2۞&h9BʎW$ V!y͋^OQXǀ7Ъ(6/zGx%n& `kO*WE#u4>XOJY)ʺՋhu9 08o0L Ȭ\q6<ʯxN}@z‡Y2nԛeEǿJ!~L:^lllqͦv~CDϐY$M/(mJcs"$(G G gmWRa,@Ο U8 '"NuȠyUi?gy,E ;S熙pf W.tAcL&5JEu_ڂFFXWt~ⱏd|?VÓKYC 7ݮQ.Î|VEt ׆W<ڳ&阀"(0C|[I.|Vh I>1MM~hp Zû2l't|ߙ ": '`^Er/81"X:G0q _xC vg(>0 K,?EL&J`桠7J'Z #,/'zat|a8" .kJD){YR8fl+]{ $5)USB&?vg ǫk%#fNeR,Zgmx>ԸHQT5q]ZT_հ Un_ㄌ ar-vb0Iɀy>B1w>ooeb^aq%48 ߵq\VPkh5Aon^x`nZj[r!"0EvVӠt(0 :ZeB;j`"&r\JM.V6Q>'#xd`.4#I$#Ji_nrVN-G*CJڐ,FJ1 ~ whwF7|Ksqnym?$}KDFh#siNd\e)B"j%i0n"$6Oq(MbP/^#u[ʲQGtodяg 2iNN$91aQ$2^~Tk̻/ˬ&=-=5'&وLy\&AJfӱqb5*+P uu>aFH<'KenյT՚=v8+^|_ igyO#zgܑaa¤d?.Z ZNmW6P/Yƒ{n\/J8ʒυ3~+gt, ՕP7m0Q?dvos|0ŪM~ % RpA0־{FH2`LvK‹@SDyBϐ TKoU%5e -Ŏ@}*ݗ9MT~Cҩ%3)˷_8xevgPr~s%ӽtEhKfPl2ʃ.נ^lCQ'OAMFvT毻D r)%h<x V -qzsY]`\nuFͧ |1ɢ@]V'+M;j3ĻD#2P(EżRTh 3pec!gVcIثgQ~ *ש F7any$h^/N2X 6/Ŋ /0 XxZgDӋĺ|mÜ@[ذvuaXY0UfZDzJ@L^6L\_LV <4j鿓glsgAĀSM F;cpf 7|lw֦#ˊ2CJi]B霙8Җ P&騬ucb{^hD`p x7s.&<MԙDŽdP}Sj;*Ad}sfR"|ۇv5t.y;2.6${{7WFD;3hrQ>|Eoc:^omX`UWa 1|ؐ\qVY=%̰5Bh.֮Zlꅹ⌍M؅%(*GD_lp$|%̢(y>HI%%b \YkF4<;DZj`JקOQ82Gp~Em.Wx*ͻ]-9nzz=L-eXtޔTJZ2? ݭVEObјb@R;dw^tW ZO?#pj mSW>2-MSPkЬv/-itԨVQ*lR HyxsGcjat/ee_0 UZG^f{r2VݶR̪t%7i=ߟs.LᕚjNq |Pk^L&+n.Nֈk3/Po2v=MX; ^;eA`:~L{iH};OT- lFo62^^Oǻ$&8:K\>5V~6)"KC{ cy;O]H *HpcngjDkbC_Y_%'8,Xo"^=&Q+sLF_ZHNzl}["0TM|,fQ3bM?_^z54anx&lɈ(ف;)I$%ev/A_aIhh#*_H'XJBox\AN4Q'<@o?k$)j\p;4Jf,niD96&nOϲZ;2m}=aG-{͈OsG"+\WLs9#?QmYVujӖqN;fUrfN.wN AZ/*v8cNT }z xI'E$kCՂק2E1̯,ar vrJXBb ֌tS>URE(Gz ؅^|7:WO \6OCԘW; NrNd6VqpIJ4a01,$%|L*cc@gt' )1Ḓ>6K.BP'h FrMnH*9$hSpؓj/>W'HپZMdhk4F'{*°r5RκE1뛨4.I V) J±RG|(..#m ܀Q/S&wܞ+o J(*Éޔ'vwA"[r ;_S~S쵀E%"\A"Iή|hQ~B|JzYSxU$81:έk$_j,f&FW\uY7>rnka+6KlۭK.l+mhAo}K]0m-b€i@ ͍gg~m0"hfǁ'Ul`&b0('$&:*C@;S;Ir'Ei.qk ӈSkyUPaLE= j>8rs8gȆ4kѩPH3[[mlܑ\LVsy0c{#/VȑX_1<E{ZCr%X&TrY'(,V6x:ױgm s͓)}+ͻfNUb_4\#(J&D@pga#P+3xӂB)xϤȟ.>p,nD=Hu:2m|W$C D) M-12FbGxD=k "J2܉g!$~*{9F=VȁneLyf41}[d pœl@b!υih3ŻI^E7!PTE_X\\We/k6LCxl d~J- 0h$Z+N1L+k9+ Ε{/$Nّ[FH~W~W{6xK~t.rvA3v 0ѥCOdeFja}7ccBcI eK8 Ŏ`jH鋕`-Nvda֧7B44kl8GbTEۭ%+-n3,\;'\!CY"W1k]!dW]~SR)'Y5giz~w`$lRYŶ|揪~J3 AҖ~Md1lޯxeȷx2.D^=c#d,1CYl|yguu^M֟ *4)238ŝyduRH2 Z,u :BEg lSPԒ=ԡGP̪\if!+;"F Wy՘QlNO\Ngrf_׃jq Yq|eSDmزۂTujs .C}!dRz Ify)td [znUM 'aK &X7*:5fa>dTEiY:-0</w'"\Ϧ%n;л{ƨQ={g>5̼`j|HsVHF3ro0 `-تoj9,I_CЗ( mdB(Ji]kYE~jr#dDw.nEKC5|wdH\i:cAǛ\=%: @B9K ~3ksuwf$}j1ܦX@&evTꦭ,*$uw})U]+-#DlH'%=qq#_Wx\ dH K8J4Nr۴8$P$IaV~tKB:0 Y%a͈Rzb(@32&t Z]ߏ/%ƨ ^rv:]\x=B~¶I_+b0^F>sfTм@>d`f1|LpV.`.wL \(ŋQ/3 ݂79IDJ3݈$8l<>S035mb-55#m"yZҘif3J0otGigSZw%uDFiP\AB$ٛ #t!4g ɢj h;( )E $F|bstÝ~6%R{If{{wZ##X~<{6i=n7-ST> ;èW\^*}V6 ^BQT*o {ĵ8oF$qL؆0)"a2J$'|ww֨0^2U/m"<4ဆWjN#H~xUV+6j΁j~+V5PkG^a@SNm6}QʿVp%4o8bw#߲eٓ-8\6NM}y̜ޤWέ3d-pӈØBDi+{6_^~0x0o:`Yt+#mZAsEB~ ];qM- } y I/5!7qz$͚覣^ihUm$=n6ږr^+pLTܷ#C&V-PVkk 6/qR^$XE\pdaʍSvoέsR`()dpu3ysTFbm^&!-Srh4<='@!}CKҳ6S\i'K$էA)sq-T|f8kӏDGCfVNuǗXl٨K +ݮp.Hn 54' YLˉQqjtFpWN;俯즓$B%Yi^C]{a@띴|4c0T =[{$c %O:'vN9?,J$úN̊]bL%{o\ o1 `4I-Hr8# QG|э20%WRGCNA|d/ARhF#?[ j 㤔i-xs rM/\Յ'vMttn&q3a u"a+IcMjcum پͳ?.|5p՘ C ckW 5&\:.:vc*@z9+@ /*G "j8T.sU[!],~H Pv /再 dPxY/t 1~\͌Ej%$TnDAkG? =a2;a>XAovsQR߼F-:2KEs^vG} g(nˁ3!4Z\4$@M}AzZ%!fi#Kh;+R?kR3RELt7_ #fY,|Bf NycQIZ"W;t8TV:<5֪E?bL2a{daR츷frȐ゗dal|b*Ͳ ZC6?]e4b"b5x˨ƾ A>X̩Bl]T4٧ &m$ <9l5tڵ7 PLyh3WgɡG?;7gX+'NF?LgѻRyÕKUo8=4:'8b݉maa?JO̮K݊ymi҄S`ϳp\T&jվ.nS_;G@]u銈k9FdiOT-ѻ18DrLIU.AVw[њ5΋I%q8p0VӖ!v O}1cޣv+T=y9P'߾Əo&gP*1qD. p_Q#giRd |T~0}B3ByQΤyޑrGG冁0/q45073zk7׸Q-5@6Y~>_-1F d_<&];IXh\Hcu&}9q͹/hJZY/E^-{Դnu;Sa;)Pq㪲pQo.D XZU ?szPHk RK/-lBŠ \6JBl>Qˊo? {:X㹈׋`uՆ;]hx,11`xrF [ 8E;!PW"i ,+g#DVGӸAMX[ σVSҸbBpW-@Ȏ -4FGsY!DWd!mG\;# SRy$ir0®w}˪0ySлG&(̙RG10ЋeIzw)e:a mׁ\VE ETpJDY8?4 N٠xPBif"RKv LJCVz8f9Q*^y)K8K\n<'a h ҝxJw癄l 6}}h0A>n$ J0aF/2oceRaɚ'33ikKH029Mim"AB~tU PQ^kxkN݈+D];\{E0^}z'o3C!))hQ@L0:Z% T"Yt+A2i->F/@,r&kQB.c+P2<^PY{&߉u}9,-hlDB=3>zǖO )'ITgŇd\O`-TRXCN͛_ 츂20칲L>*Dhi=pK?eSӠdzG98?et2C8%~AH?+P^”Y-sKkݐj0H܉VzTΦ4 `y!.x3Gl~2iFZ[&$,G7׵Q'g:syb=0'E|}ʻ0FRB"CYh}q)b')kN r_mZW;~-]Un %$/y[i|a_gӈKk[Mh,UWsQz`.)dFpxGw˵$++rJZFPSO\*?V_<n4uwPx0VeÏ hk(- \Arč-]љ'- y楇|1;6v,$KS 5ҰR1)"_) zNp?Xؿnqɔbl nV;Í+se!L倫YaȐEw{[S(3 Us Kޭ/5洛tRu.p/Zh"?Y!%ch܂±?Ԧ=Ṩm 1mvXۻZb΋ڬWl ڧKL9>|ξi*-d={=# dd}9ծa,L F &'",S{&>Si:&۔? "jU#-A6g/ )y֖^ IkyB~аimxh})Ld^J>5G?FLʏ1U/vUX('~ MLgDOZH^+f qd.5<>n"-HlzyjjcWkhb.';24sgN8hm=pq6$JI< ,+D2=h5*֫V09+`އ}ȔˠguW%cfVFMb7%ـ}΍.}) `]w;Wea$˾3n~1DFIv5k0B׀t7li:W7o.7gH;[iTo0!1ѶA\`;8\ vgAuG6~{ x"R%>`4zqe\G!˴NEb)9i5mޏyJĻY)Yr %q';DҸ\yw&d _8[L#pK'8mǝ[){A=7[vk7u.WO};#*^ҥҼ U>?ɚ[b]$l9a a_7W^ N3$+czA{/HZI"wMe(2Me⒎St](:nM3iKU/[yez" }z&ΩoJB@DZB*1+&xvzo>@E,D; Z<[;-c12pz-#v$\&^C`R-/F8یE9Gnc.AYrry`7^#)hVofso4XrvjcêЌk% 'k{-فb)Ă&nB..CT.-r2]$p)EK 7\>/+C&wX-X@:o`9'GK{ޫ@Eӥ B}X Mci*E 2UaicS)u \yxlvu[ BƖǶRށKLv]N\gsq^UgZNgzL\{ySS3,yknߞ0ђ:@%*?d> ߊѮaZ ! ;,>gnS\?=.\GJ"=j Y@y_A oKxPܲgc{¿VBя߫wGJĖn#|I#r?ao-ceDM `0a}+z.oba skug.;19@(vǎbW"K 8ԃ@xqGkZ ^#k*U4-,S-6ǭXwX*0DTƠ']*Wx:3.l 㥶vFEzj!YrbZ)8@w,G[mO,X0yXƗ}]U=clxKU d6N-Nj,M dtsBZUy$101f r!ϱj H䆚. oƒ 'ǖK!4&GEƻJ3UpvЭܙI_"[y)s4ׄU3It^љl_C9B9PE"H$U&,&nz#~g^coڳU-{L ={ܳ婹 XO\#Y y>R,&rv)v $1Ubpսf |AWNm_8$ʢ=Q~^scq:0 #)6Cnc߿}>5):է7QPoFS4X!ζLK$CMmlACf<MFhİɍ.Hj]!$]QK Gω(dEsEFӾ`t@@qĹV,i͍70#v'4,upjtG^y {ZXFk$69䅩hJ9JMߌq=Cρa,UE 6 ƳUG4.ROݦUК2YNYbxx(zy(OD9SEmKD~GhRCqj~}Jڲ-yZLE+l(}& =Ek"!V;i)"$E,DW]D:-N0[C4@w/S\$\VMxypy-2("\:ҚL]p9>ڷ8nE{}!ZxۀsG.-Wp(3^s<S4?[L-y fQaXGko"Y'_lGŞ :D-ճUy9=ľ5` \NSطUOͷ-rlNXXCnӋ\*|!-\>ŕ Z;OYߙS畫rJX@lib>^'B{}$/~V j (J 1#AM8K߆xȸj}$:A0Z',i-U+UyIR0DK#lje#^ʓ|I4oi<,mU4x~sDӏbLcolD-OE(jOF5@$}Z0;QF9{0\.?G񺮘!FLb*%N[{&uT#Y/0~5RT vM=#W@m4r㣥ĺ?rg߱DI=ub~/}2cC̰vP5|RbҐyZfemUz Ukl_r̢ `e|v)^_Ϊ ώ>rP/73fu5n ʊ)Gi"=oοkuyՅ^@u_&`SufOΓtGΡl:(T7s,<)—bG7 mO^ o1չ"04nHDcVNJ:*nx|J,0> R4قڣ@Zqs#˝C_J"rn`x)(]߹vʩ+eR60O~VcI>%A.Q#3˫,h7ģy/ iiQv@ K; gJBIL_5e3 Fx+^MUj@gd:2^,yYƃ.zCeHY]6.M#vfvj4lc&}~e)?]'*ЀOGkkPpKP"s-{&e yQms*`6#+ʼn7-'rD>+_xr/d?cqQ{ԪŊKT04NN~ c5qGmŽm}br}MKVQFKM_ƅ1c6ʕO~9 5˲[Lɒ 7x=H.FEnn|rDku͠ vdIOYl"I#F1G]/yUS|y&b0DCuY'`!WYN`-n&^^`?Ú ȝ`8чras#{yQ6pmX_e+ ׂ67ŝ1іǘ#Wۍn/4W+ES撉fI)oqIx?Yr4x%?_3^K?(J*k+TWeAjXAB>=:Nl1 G\&<܇+oE%>ieC6$ǚĨc9TqN 䃲r!t -)6r g4J!Ո|pq7}Cy9KD o^Fn2B #9=H)S=nv*b'@_ag^*5a쨘KQf #Ue Q(F'Q6Sݠ5\АZS(z7B)Sf WCGA.M:w1qr@;5]uj Qq%G Ӟ9c@AC>׈q$%$ @ _q+n"rZeyZx-K}K"n;lmⷧ1qT{PJRxP& 'R&e\Ot..ę8D~B! B> ~wEnk^Vֈ!*49@?4i#`!~.o2ma|whjhzSyBtv{ &MzMR  ƓXڨ#%w| 75tН2mP&Dhvn4,jK }(pP rB~76AO3b&WG5 A5 92C CHbm97e2WAûL ?wDRHM( $,XM.p&R^gVO[izǭh mt %^-լ|(a"=7nY3 DY D0@EPDF X|-3aV Zk6z(PYHe?}O^Gt1 1{-@nN1o?Vw+B ]cc@Q,@~F߿F$zCaS:-K Y:?Tl;P\ﶽBUs JDBb-䞹Z B7~n`xEAyҤ̱~?K7Gn* ҟ$gVc1l!s lU8o[>{>W C ̇s a(X:`3l^>_4$jxmkriCFm#`271~ppv {]Hk4va񁬇~ݙQ*bG]ܭ/wme`h\CnJ}4F:&Q~d'YE(=Zy/QV%?=6B)Du%,<5"}Gr惡ϬK foAQA'@N=8w&,lqdk.=jfr?D-ُzUw˺ܲ.24&հcOi)åuu|u=J%F ztS|RKg-ofD] v1sŎ?U4H\MMiiࠬ9jN/z3w]iTY 3H fr0vRXEs}x؏4n;l !)ߠ+v:v,w8F-=Y{v3YJi.my5 ^Hz^DbVSe^|p7(NHf&;[};=Z#*su 9 {,u]&<\$YV7|냐[s'.w7F&wsdex%Mf:~Kw'鎤Bϕ*Bح-1-|Fdp[ =eY}?$h{ɀMP!:] ~/#I+\ONf9o i cథ4D ?ÔCQ>4!zY7'7y*?,D&+XOqTT6D˥v<\,^/f˹*q `%p`OM |&L2> >6p&[2 &ĔGdulŕaY~ G5a4&Tsc{#mha&9|=$Iyt9[jZdsHh8ګT0-E?M) /„QcC+zʱtԼN/',,)e@sdYT*lxjrH׋l!/eykt)`I9"4p$n̜ 8ŷyy]}֍o`zztF0͘+IbỎ9GIFXj kop]<ϝqkLeIѷ]n8 ŰP̤E⣕w1\"6'!L)x9i 1| Ub>UuBn+?SE؛W~NL/ ݵ ʼn2~"oVp0mLk}zfQP|~n V=dPӀcJ*%uki8RW3MbvTc˪&+K@d2M`gVZ,w>&GYyjP0l/7wV!; n=aǥ*l|s+# A֚,s!2sbz=x#'6=dU#Zo\) )FëY=JMI4f/[_G F"i d`F8Pmyl;Bb/\.&|ꋚHl”Nأ|(;3Hgy4phY\HRB倆RT)1d=`$:5 g{Ց)c"  ~y+ 1lTO&%0;Æs\gԏ[I~/Z-2#6:)$(Y+iDEС_Ď0d''حX W\`0j7@J6FLCS+07@D;<:3O:"`<5/_ʛ\TI8KdpEMˆBI9kAܭ[ymcֱ ?Os9g2i`LfgucweH!HYĪg7RјRi'닧 R a%-PtBRM +\qi|B˂u0\Ի)R/8ZMǴK]"cD0񔩡%dpa= "V,''t<d(ס. I$ sdokrWN=zDQ>|HgDP:GsYJᾰggi"??ʣ߮`o]FU+xrR]HAvQZI&Jp9ۆarȚ=Fդ˺jay )]{\[TQs'BRQgM-B=HV-1Ǽ-\9@0um gث<9gW<%ѡzAQ w!_q5X$F iAF(|'W8qW/CE 6&܊*}ePDh9tX }!烶*==]VD4{A^ͳ=ҌQfw9 YYm}P[Es:?@#ؤ$.v`(C8Q Ea1Gd]F&aw@%g`] 9㥨\;} k AC\j at ֙{B8Qre=MJ3{_$ E:$ 1$.;5~(N*㑡xq$fF:qU찠])m@w lߠKێ0f %VjKd=, M{,cxAJwʻ 8-& ߹I-#F|"ώ Cu~(<'A:>W`" D?o]R:.`cGG]߫>q4-.3a ZeöXBBӼpnsҥ(NKp'ƀTW?gs^50%h 67+,l 02`17-g{,=UڙOZ|P%: cPDMk/mҕmT,ӅBHF20Ϣߩ?E~ƸwYe zn\W$Y_ 6ʾvDז[GFb}UݮbȪ>Xwkqf E[=K©>O0RIOwBq-$!gUl%D7e LzM%4|#PB#TcώݾqRXF(Ѕg6U7?F6{7̸FӔ&Ȳ^U|5(Ј8XTN5H6[~\ۖZ^$RGjq΄ qKɫ)  qjB LFC7C=xH5N>5PgYc|s5״y@ņ x_E xWp#m#X /KM7wFDzeߟ,񍠚I8:CO/\*~4g ɍ|RN%qO]8h2w\<~1'΋ _pj~O*yz;Xy'I԰mr[O-t_lō(VC9V (>BhCAA~(7'>Ae{<}5<ݱ~46pfh{/؅P3)>H9踽>1h3A#uWAA]DfZ3C /͛1J ͨgPH`4R'rл&LFAKlr6SrEcS1y@*p(r-<䕓[6A!ZkRϮ>:(C^ܟcfCtǡE;*NR!N>rŷ$zARS<֣LW+:#cIr[b} zcX{?\[ͬ?Ass i@ PUDl(C855s+ A)Yء?&Ԏt@k(HJNDZs@/(R=NU7ڜ~bo~Nn S;""C fiUbR}}&J]2bq[yˈh]+U f.(!*TLrXr`<0S%vm?!*fn>*%50 Xilk"@_1{yaТb8AHp)3ݓji>8d\ʰgsAвfƣ;`*4ut_ rm1>/W,:S09jyL^ƤCb){4oGf^zQvg- snζ*~bmN>\W^OשZ d:?2캗[Zm]P3 L5z'•!S ^cJ43eӽly&H*2PJ K6(*LD(sE鮈-i0%Kt{ )%)e6i>1oxۍf@hm;2 \\Xͱ r:s4LmkPP[+cO#0_??>J rWo\[,#.&S'|psʑ+a+-|Qs\6JCR!ޟ$=2q؏_$$ļvѷK{E "P6&ٽ f FÍ:"&dJf-_[yi5\;ytIKv=z?Jpm fL7a)giQ07iYG.d]trq/pa+=$LEt֬X٫\G'{jҲ,ԥzX~@7qdLw-KufU6Q 41,m)\ )a:vX< OA%6ƿOX$e|C[4} ~R2ie:D{)Nwe`PNtv#x+56j]<92| wyO] Nw,@ Δs^sAlRȟ:Q.7Hڳ'J3܇Ґ /]lo0BMiD0?8.[ uQ&p3U>$CC%WO!jXJ5иlۣ0oVί*|slU8n#$s9KPqb293dĪ}S^H϶UZk+R{SZA`OM)K$y7ov=ѿ\ P Sf[ S1qHvel{{__h=ƫ.>t2eoQl ,y8m$~N3zMw\тku< '"Q'(@x?.L m.VMud:R{^E3$%wE8୏ڤǐ#oD7gY.3XTG,$\QWxL/qS pSAv]u ;B>`KKiI.O$h8%Qe|8i9G}56"touEM΍W܂;roWPam&fٸv@k?{bD=i )&e%ﺧg<#:wu#&uNC50Q W6uFQ >=Ψq x@J¡{@Mp "u̞}P_N D~ N2{fX*L#aߠj.s ~?0^m쎫tZ|NS h,Ħ}nBIbXO\lc5SZu48j1IIWuРw fK# ;K +>jBj߷$poR)Cq:lPBҴg"7֍$JidxdKS%%X|JĹ9y qqQxPմ_UyKq!6!K*D[~-@i-8D ՞}xX~.0f}Ix|.by's_ګ D $D4WUMLtRdRv=nGKizmQ٢.D#u!ك1pi]VJߗQ1&I~ rQw/`$qm2?5סs-:hg*8ތr4&ʴIgMoqp0 DKM:$h0ȓMGy2FqRϰp{k2fhrF[ѿ \ʫ5<=3Rʕli]r ۼ:^X(La'V{D78');PMc34+͋Z]m?E1& /cԠ7sjC☥1"o-OB?Y?ۦَj \?4sGxY+*u19"I[faћ~ʀ}m^#!j)@|x)M@&( E $fVnT{cGKOe|!G3ї-bԙ~*L2H- ZzJ+󕍅ɮjUzA{ } !dpiPbtUXnm'#}D4scWwj(b}=SXQ@9[ %GV!8h/*bP:{?qtļSrB!Dd#Ĭ f\t *zFw(6=ʈZ$&Nչ*OʇOgtd/AQlK1D=jKVV:5zɹAXa!ES7Bx4Ì넦p4~8 /sUū=#Ad(_ޜNǬmqtAzoyR$଼~{Y|8*8 ǵt6] b_&?BEh7=ZSK<]ɻHr%ݯJc읷͟|U܉rASUM@f}rh+k᎔ 0j)rLF-\vk1yF.6!9j~WK?,/&X]q勇X"bn2cpWE9? a',uJ/[Up'`䰴/!TZ] &'2_`Pi"w((y;g❿*~KgģYXMxɇ Z4>1'wo!A |h؀"wUv-|3f#p28"5olLS X߱^%Gdm/VY->D EcK uN!%'*Nވތ`JmU!ЏPEVDz7qp".yZxjމNps奙o'G/L\A-֬*2b,FK]TfZu'+: .xk﫜&] e &aD4InD|`Ubz|d8h-c.SpdeJS7jnܩ|İ_jbNP˳HXcqv8,hS~ ٨/69Vvjnnlv8Nik\6~DRtdwrqzdMYf~rxPf?MY ,#NZ1+T?! Nn09fcw\=|p1_'sLN^mh.?.KUanOiP}KbHX$=W܉V-{߾dn: ) <5SNq? r<:r բMË@U2ՈcG{|ɏz-NJ3%/;3:sT7X֌ΥWMcW( 6S\.♯8%A`gY.UnyKTh\3?Wp1DesڌLtAQczӔ皭piHL_* srK٠S\|XJY@_2&8~*2?wLMz X wCepXyEfp3jd`6Ι!>EZ//HCtךQq}!b|V|cZ w bi5sѕh2 `QjqUy99yZ,tuJd_SPPkIࡦ3r gY[$OF>3?,l4D@͟AD-OR9tD%\~%4d7#<+eR n?_c C!j$ګmf&2&J,nuF[cNvzAv6g%OSA1ʱ'AAv'p!DsRO4E-.ՍP~_)5e#M+Yo\K%j)\o r,HFHto/ZNʈh#,H&z}DUw'No-~DOHp]b6)%bZwS8U = Z:gA7!"D>b`@ ?CL/lXm|syΖ0!/[ܾW|#"ITB 'jPnh"eKk/(ZL%X6=MbȪ, )(r|D5aLr PAv spw_&&ri\<93 t~&c-^b. 0rbiJj}I|עORRU{;3|58jՓxE{KpS*&0lTWjVVu0ƾS+oUȆ AdFn`j[Ck!&"wM5bqǖ`Ia5fvvv-i{E1V_*tҐ;QVٕbk _I!JŶ&9 "JWu!*.>DPe~ѳE*8`l{ $YD("t h.K`mqWΡoFp3q85/.TT<($!AOg .t״t-}LNL4p6f Ã#/ s"p '2^bH"|T__TiiLM$t M RM2(5{{brGN+ h(+)ǒ-ƶU|jõHסGvu:T wP=7 FKGD0R履䲘ީ*&dwv}|qG|X&ڋ n">rbg[r%x bUK6܂$a ͢$6,c:WD7 0[{(|v Б!)WUq LѴMIƾ@ȅg dW8{:"fg&;%t@ͥ% 7BTH  OwoW(XTuc%nd$E`{ɵ|1T .jY+Ry?lr%8I;Y_*;7f&YոIx p7ѿGy =B#mK]y0T(n,j}@!]E1t]R5mNC=剨pTf:  [w)bm6հ X!*N6l~y"J*A4GX9 2kƸ׎]ߴh嶄>F؂Xbx^=NiLݶ; !5O}L݈E-b.FhJb;$̧ڣ64peQ*u4R g`3p P!@Y3Ϛ LUN'A0_e{L']ӵ @f*EeS_Ҧ_>юS lQlb9! =`ep? b ˖moR[gDgo3r?҈vѮۥRǡ6}~AIc慠b2YC6`[ ?L uגZHY=iZ\/)0GvU!#N:,55K0:X>SE]$:ې6%qDX?JܭQE9{U{%-e}O!˾uV(=<ټ[D6Ej;a ) OL)r)nkk)3kEL"7 ɭ`FchI_ib:'2%פCϏ ɒe"%Zf- CQ&k$].s$ɲoaz_eفuUd_Ug0==}T)YWTYyyJGB]N* d{i-Qmױ@hHHūre61K^ğtxLȣ:Ǐ}38Բr{镭*qLiTWԪoA n,ICd''1VL䷽Ns\=c`Ň/ d\  ەۈzyI#NI[:Mq ФFlĤ~ (Է7G&&kQjw{'?ըKDz>+t5`:[Bvc~,"vxeNp,VhGTԫ*nV) ̌nT^;rrq:0ߵ~w&`J5mnBfr9ld÷.HIkb&l~԰b^Qy_4lwz mжDRt)oG9d7vlћ@֩/v|ңqMn"-;ǚ@Ȑ*Jb`BCIZ" \&+釼}%0&]ϼpCX>Ew7L`e"glhW_ T!qO3^M&E}c(8(*' ϔ>"~\n;Ͼ GPu|\P?11mES45zJ+1!> P}X×Yl?|zK(E,1_?5ɿiw*b s4ˈXS~{" ԑg?viP3xrm̎ޔff:%cM/4߅Y`1NYNaFf\-meD6A`C/q~k<.yBhҵY^[ AWKcOZQlN0Iq0p茜*7cBW2*ݝӲF o!PC:,1=` b@֌Pk$D~SÚ]r :/vfh# rқIH{G= a9`;tshb9#6W@d;>S4q٘H-zicA9')oSr#1BjʪjsV*M`Jb w5Ӣn*ѐ^p0LѯWePk&ؔqng`%Osɛ0k(2%WG#xg_YadX>;nHXZ#lשFA~mkJ׳Prm6E¼j-rG;O8Ji759wR'#K!pZ_(j81Y.6Bf#9+YtT{jP:qnzY(uXI )\zX*n-{We"sȺtC{Z#%?5L$4ht-0p bZdN?P>u2e3o{ZX{ o%9)Fy1t '?R)E|%Ӳ/9` %wYhIjՔPS/=3Nl1t6k:=,d3/Y5MހZy2=u`o31 ,¹aU3;myfO+vbt"R£n{уPlC{nxA^ `VMLq(gs5WrI+m}rÁЌ5fB]yAGyzީ`pÞnr0 w7r$"Rf͢L±ax6&SI츳>+jK+:$Ü!M5s gw[Xn}.`E[rpp8Ue^EQɒ#Ϗ=)󐦨r {1YLhUE 5N<:Xg։0nxY "$O=ORT+A [awꌙ F i;#_HE3/* / #8jqLK.gÜI1v^%46jOZ6ª^`ZnD+;ð!vPPQG7ٗ@9u%inBP-#ш&QfZd*~w?La^V$k?kؑi"dg@{ C|:`\튬 RFoIBx߭V PP@Dq{D[$UZ2 tTZWdzB+՛L?f&~3vnLAv/%(,ilQ@E#. bmqW y]dX `o9KKn׈zzЅhg1rXRM17taW*$#?O~}4):SXm+*%. )\>38Ӝ5mim 0Ք JX^%& {o q)ʡ52#"/>UmI!>)>A좈!;ٴ$WSYxUe砊zo=s9[4"T !ܓru ,Dc hs=>5OР6*!L)O~r+@kip>d<rk`#E(MUi:_w 0S͋ї=x;4C7p[(QG9i32 n1,E$ rz{ GQwl@HF Ϲ`/y RI:qZ%N["rc@eaA4}oHAZ&\` uS*/=lT*t@87K~YIYImhdI !Po&]JYf~5͎j͸ZzsI` s`F}y[QL%}^1[ltćcbPJu#rc_r'3).?bt[Xߌ5w{P|u%q=m>ڡNњbt+N.KNSIxl4N]M7XZq&OYZ"쟦H퉉}kR-ΑxD r Č6? BE+ljW7Wй>Y'stc7 reMWΪ/!OlY6#{ Q:,*kC^\IQ`+ԷTX4Zڞ_|'_B*{(Ӫ# :ȞVyvG&nZOɵ~ep;=:}0E90J|aP~j͆5!K۝7 : PˬFbD ?&e<Q다d7h<~8rKď0~7GAsźT{3[$#gƇB+Ho-{ڮd>sⓝfnRΪQJ'טMtH>K<8ge 70^< 6-*b$xVqNo >@kt _Ag,i>ɷ=L${ UuPj %F0kK%RaHc?QݤQ֚܍*:.Cf*eS,C2b@@zfb_h,yϥ1DCfcˊ(9`<}<؛_! F.M9Y_7&+] :I6m٣Q5WVxKw|0i9h%h6w}wtlCo zmNwv&c~2 ?Tʐ]dĻӭj}SAI_^!"c*9`F,cp 𱀭H5MW´^eM0%)Y#$YC_.Ț %.S讘7]z'4aj5PxZ[mmV`D\\QtzF"tDeJ%% U>wթh8DžC5GHC#w`fӐSgnpBN՜rC/L~XDqkj<7&iW M,m{- Y:jRϨ0GCE!nL I$!<ve#q ;}tta qH+J/"Ȁl-kMvbM~ۚ8o0@J\$LβHy#%|mH3S8[φb#A3s,Wb 2ح$.)g . ׈zTo& sWKQ57} }l8V];˥kobDӔo?503VsXq.tO57$,7axEܩ2;}'r9yzz+TlN6<: D+3Նh5+'gtc^%^%WZ1x{pGS k W#Sܔ%EG5AzDNVftz9۪Q4r?? [G`rZL ɺ@ 8@znp:Q0L]=؀fXMJLtjtŤ0meX6ӫ8o.zSA/lRHI9X LP.)?zd.бU 9GDdҬ;%Hen-nWS&d@(ctYOnդL:&oDW8ůF%0.LW@t9mbG#V_) ъbҧNXI ӑ߾ִ.7-B(ẙ>Yk52NӪJED HhP"L[5oX*mܧfmicG}GԅCi^`02:ؙB-9q<\}8BiRNA Pw2߄ӺIj:UHP&m}rF0ΨU9mf2|W}*auyeRO'r I,º[h/Tf\z}zIxy;9F&t*p`B| G3oӑ7! lv,Y9X|z}0>Q{3 -D]sVrR%8LXc0k ?%.j/H. ;DQtw|&V|AȬpU(\McY@zDʷ ~,WvYoi~*K[c z^~~ {Y^ Z80k6cͳ6$EJ1&6I{T]* 1#~ghz`vy;AbJL8;<רɮ}\k,Q~ _d(t?k'v2'fBCea crFy/0k:4/v.PAY^l7DI47||a1%G23߽|hJp"7u匇Ki; OO (]ebމA#yE+9,`o7rŝFIjBB+>#UT>׾=ѫi$r\ {^&&urf?0|QUvA=( 䋆p^nzk].}n]ZICq۲k) i<+{lXd{Anzo%ShRc4 ߨ)LXBUEsgRO >'(]B5?"k|5`k, ]l*"PGB.5Gм )竎òh,e .^tS3[CUlj-#tw^^y\' 9WW%noXnlCtYx[@].ݳwobm]+Dqh KP2?k4'C`_yƍqљ6\FVQ_֞9~ ҁb g cy?C\/Bwy>Q)2nؽs\-oa܆Q#͠ dRsSA@ntlU ʔT⍱qo|DiB;S{cYp mJF7/ 3S{j q9?IS/w)ah/.q%&-K hvl!=葕䊈X7D-Aa1Zid jϤ*kC2,t GNZo5yM̉؟w3ܻ#IxHp&!CE_Pb76(-` d;2G9DSÌkR=ݓ_. mH8X" ׾ڌڇ~4TȺ<1k^2]ǫ͉>O W`<6ޑszO9bހT1s_n.tX\(➭#j`?bş~ɱzvl; VNe~{DYWڞv?A)41$2~|t޵-aX]uQ,Xt} 0RD$ VOM3~Bŕ0I 8t}nL~ x#j0$SZč |i1ZZrʒSOhř͞z1j@ {0Hb*, cgxv,8EchuZmRh[CpA>+jXR, 6dwoq2A2s l7F2&5fe@D&t="YSUSjf "tHVj@lΎ6[gG} fc!qHw=u}w*2wO)p8{fx .tS3x1onFrz@e~`Tb`cie7ET3 ֧j줤gTA;JlRF.+3[3 LTȡ }NS# %5;ָ'?*T,AZ*>cqV#',bX1$>fm\ȹMA.{5C?:Mtn .c+豓Կ2t1eqƯ<eTwcFׁ5#s m$(5h8ѩ(vR ]Rg3 \0w\L1 ICcXFdw:hpޣ>/OAd#bp:5U>6PͶ ! e\O>r!,Njs bnEG]? ֮QIngڜF/&O(!G  I wܤsar13GK3=Mf"1%~$8F-~Ռ ;H QRZ{Q!j"g/y$~0 Y]xbHVH_xߵdXu_pEң&XI{vdA^pU![åVƛl( .9?} )d6PzMrƖN}S+MR` 6C/Yrg"oung[/ךt V&NTe29R^r:wpMkBbYrG:Ų2^v}h_IQcy߬3h̏B~;)&W vKjlmM8+a@؟O-ntmZs;)HKn>%, |&HRÒH RZx Tev zOс10e:kDLrئ{ՅOΧT~ډ(+@Ӷs'rڗY Xzg]0 T%;4\($5V bOP<-"R˞ˉ]9R"E؇N S:@jk2x@Pd$_4 <>XZlCLF3QOz>zh ewM ς}ΔJ8 x1VvaX_n$6)$׃쀠}6)K< -!`M̙O3-v4$S%/EIlpk-lQ@R+keJn=J=H#'.~7[ [%73@s NIUroISS/={UZrxy͙T9r^&&QGtMَ]DVlX2Hsklv*@~o8؁4 ɢU4!?.?ytq cK-NeQ=M}d-+/ԜOSE}/KX[.s]dsnlo(3ɥri׹rC`\kcC".Ҏ ,vN©H u*!2SR~3$H%`P7~d!̣?^6o;YW * U\)IlLz:ôc@mb]$~%0MI jYdV?Ly/9*Pf=i^V6Ѓn6]CT9h*)_dԊXb"K0T*TCo>i~540=f b%  Ow9zZq$HSg>IEn'=$7&JK <)`n^ٸҤjH9r@MfE/§Yw,d[35(U((D(f#DoN=!81a2+Ǡp}N(p\ӚnvFX>=~D&Kq, æ 4YQU=aUecXSݥV\Ż8;4|~OwT_j/?.*֟ 0rRFy@E0:tb$ڄyJ}nqݿm ߳6xmҤưh1DMw=- pdb К!ߕ\pk]St|Xk1mхb^,\}4$ă :fM9>[yVy_=}n{qoM- Α#~mvRWyT%lYRt 5ȫ;UnQJy1atBOhPESJD X ?n0cJruW_I1[sL V߲k6!Jܒc>&ɃH>P&Q%ccIEFD(УQEA?\u?b̙Pl!Oܕ'4l{ qقaXoZ IeD DSy7 t2 ~=}o!z_'}' Q@H5>fho* f'OY{ipPm1Qnx_RL\}s?v!;JE"$zGnQ6}:9i+ *|҃_CKM$ 3ŰAn,Bm[,gkuB.1 &^bc};b^Ӎ;խyba?^Mj|4+@ :n_J  ^ uw!XJ7) oVfieM'70P݄pȊ3p+摑ý^>:^DgH /!dځSQ}2åѩ7>[?Cbm?7dPLt' ֪;CGm_TɆaȓzjC@|D#L&O^"GqҚ".F0V抓fXJ6jty|b=,fv载4z|IweIv9Me}ƚsr׮^hJ!'(6 PPkCw,fK#֟>Ê((Odi`=*y|aP-w K~ڋ/:873nuUV@։%i84}cDJrZJ(1J~Y!VƔs| ?nbb"rl`sQ\"_2w;YeA\mER_ J"6aOQ]$ / bS᧥ %ɵZ֊r78_Z|x)|>L! S~I2Mi!q_5B;PQIC'sm։QxҲل+fY =QkW'tX Z5&Bjww"x ;4q| k\~r3<*Y\sRБ撡PyM@axKG?/)V#1&jv7\;2YuuP3eE2bAN~_?4;;.!.qMzylóIWi]Ry!jo_,:}LѨAlr\&f3iGy&|uAl=W[GtM=m~ǏX /s`TfxIoޞ` 29@NПOo@`%[%Q2|rp= pQڀSH0P$EEljJ? =g`<; =}:l |͘09ǁ䪾/2xnȮ8cq7LmYwHwiH~=Zj+_| `Ă@.rFo4gh $O= ca9۝a~1o}IJr0@$])T, BJ1.N3Ȑ8q.`%)p d/k ^ l|Κ_`.wVS*U##ʼn? rjێ}]3 \^㈼o7pM$viʹ[D+'# =Ei#FZ׀[9ƻcS˕`.Ou+vYeLgcSƲLL A2~fve"L`Pȱ#gg%e]И4qu++/gD/,Qe9&MZgz&Ŝjt>\LO9ghuf{w#q 5z4\$;u)@*eR4Z8p sI64dSg1@0u;o( @oUcPIe.Nk53  s_6x239򴱽FOA17cI"EZ42H,:.a٩G `+Hz6_ ,\F$Zu p8yNUs1nbnjd:-uNm[x)z]IIڿ:G PW[8.!maཌ(c14T':W=|Ff G gDh{j(8=UO2Nn8g+yaI0F8[ЪjpӢIn^a(A`e ?6<6ԗq+ϦN;h3[L!D2h_HxY mQpdfPg{A $^YC@׭UT]GImͣEWy&|~arQ\rڠXh"Œ4d%/Gt ؒeFgOrQ9J=΀LMK:pWYLݱ /-ֈoמI9 #1~gM)cZQC41;n2. GOQJsx#; Jꈐd@5qe^ct zxăݩ!!jrs |7Ǭ [SlA׵C̐|pAqB~ٖEp%~_"y<*0eS^e}KDe@W/O!=pVFuDFmk##OaYUl5_&,lJZfmCX7/^4Pt\|JlSܗuqh5d)p# >-;vD##<(`kvN@@vkRgLD?~x8-zFEƾũw 6eC\}e+HZ{`վ;ib=v <UC0zM۵3|n .genqM?[1$9iY2J:q~o D&SPt?]O7B"PD'ފKDmRXs8y¾7l9ziX/4RsQݓ;_.5h4A;dx4$NsPz<^)IV@IG:)K) Ϛ95B&1Y탲H_Mq0}P5ف5 i)oZ%2mytR]lh3F`L{qs >c??dszH! D-K]*~+cӌ\*ͭ[١٣ע'9y3srXm}5 .QP ]cmd"|*nK#&àoHVYi؁Fy+&6!or4) ߃*N9CElt8 )At}Њ~xBNQ݈]㏪+$,Hk ի$wWPY?#̜n[3 d:<-@KE}h˧yFd$i_:sKJiz+vQ9Cڂ1Q26vBG(6?8@ٳp8/BJf֩ 8 =AʓX:GNj})TUP๭Y0c3z齊SiQ/-2)CX5u2ORCukןτ{vL&}qM3]hRJU uhSX$Z!=6bNsB E )eixd#V޻&sCŔֈH N0*Lk.Rg{:'VPnFCJW2jJ90a$M\_aa3=@@!IC BwJjmSP'netw` )]ӝpLz6d\.Vb2s ?;5:Me.\HbaVݩU󲜅=K@`(h_~է%)"ޮF诏YihpN,Vjɷ1q'/062ad5Y9/-n؀!Dcņ*^ il;@OKk%P!XEDVNEz̻&WTjJ!-?.4 gb7 mgc9 שEZH~bIYhW FiYbFN?$j+%X9Y/ChX'k!y34N( -MQt_˺G~0\/Β 5pNO5vU3 hTP@[%9 e4:%Hk:EZ.D_c+N`J a!զA~@n*`feP0^J}hFGZvKϦUu3=F-|tPܖڹ'[=t]4/dKyx p&X3/WT"]RTI] 9G[<bo&R,d{SӀ!Qj,L䑮{WI9XeR9XnA_B8A/O 7SzADa;1v;q 7Hi3D}Ħ\- asK|첿68?3#؁ qpb9>[<0=ӍoևEW( Y,-<BDRS}LG:1N LS_c(1gzӭLlH-rό %uֈfLyʷ6P3e(OCtd֬<87YD4 "ԽBs;\~Fr<&A%l썳>tV`@)Ϭ {wٶFP,G27iZ)FxnU)*Hoy!o\нRKuԂaga!)5{xP%@}cG 2Oq;iLix_|ûI+I!q4um]_i&N+/ztKy CmA%xj%n I`sDJ !˛*U=; Qϥ\f{SE^y\`tYj8mX!clp@.l :qMTj-4UnRٛ8䑔;6&O8Lo *e)JFU/hי%, ZDU ;nOi5c#cQ^jTHTHum[aJ>/5pܺ“9em?J|/(L1g=z;LJ$)E9rs' `褋}$9E| ju+|Իū2)wҘhЅ4NU?*ʒ`,(˦eT3Z==ﷅ~@3X#"ye7ؚw{,| W?[:@7 eo0Mgp ߷J/MSF2`}f2~ٞh4}35s)+.C\az ,̻lt *<3tbwu tu]<8:M> ƁT>. ŋ7"Ne?S-݂ q|c+A%|`6 :KHi9.} k@{3aEnh\PNU{V:FRŕD[t)P;IwSYgV|_A:emOü)3lV[4#H#S"=!o$5 Z ":S8):|Ȥ{k3Q㲆gh4\*>uk^Ntv *6\b]L5 [Wpdz'\x5VQbAE;yJTZ`e)M}KQ} ,a{N_\$lX_9$I2et@oeht]eBxzLWEeߡx >ge |t6| @t9މڟ~eVLqFK8H٢uz*F|‘7,Mud7E+l70(kCS|66{&и80rx\nԢGRHVu>a(fWgтĮ\B"cTwqaivÙDG/rgiϼ~ O]HadGLY -$Kgf,)|$y#N+:G$.އ,{g#ml:Pw/u!Ĉ>[r=- z/lb1(5uyӄ'gTVIxѐ˚.FAY*pN~Umcqy&G *m(ŒϛH0jSDDߦĊ=}0ۙ8+ҰmOy'0r5196% f:P9 SCAOL.It墿IX]wԖ SXaN%%Fs 6"ܗܩڶ+woWbIh.ΛH.F(ܔ! UÞYs0+9|6lL&lg{ N9=8p0ף㠨6\ORf>Ki)ٟxw m櫾4 )8#B5SpYTt&d1; =@/k;ϖoR[D 9 O7Fj+:L6KE. @xF\nPq2yaD'*  &(ϱ_.  7}- AxKi~}Hh:V6`VVe;a!YF`L(MW 2&a8 %b+IR>ZfͰV UIPҖ^S:H܅5';.u]{x2uMB4jLĂL݆uȤefCGOWp_3 Wl7?JR*ԔTݭo$b` `8=doԻ1*}քU(_SxYz q37Nfg~tH:;%:fmaR\C]v{82u,cHY:d7cG7`]PK;$>qFw_ăg'HKKAٗ>Wl7{`\Q7}5jg3NY0Pq谞I=?HF qKʘ!O_Ifc 7/ּLX"޲nfjK֓cL':wJR5^WŎCXs1-@<LvX`-.E@QQԞ/79rXN#/5GG1gt (1/a|79}!AuqhsМ갚HG>V.I>b8l1Q2Z.?hzZ&v$B7p5=M q6G<<&`kg$C$MwrI(>}]X'.7Jgfþ_:P;Իk7N'=tJx9gKA^FEV{SzA _%qS/VXf!6f{G*E^3k5u?zDm<+fIWNv̥F>(5ΣeS,-BYhog$`oyWzs"HYx-Uv$l4^Q`ҢѕձNt;t0U0rL.&=?v 'hI(9j2x.N{fyʵL(^T^u*Ъ(qv`ա@w69l (^\} v@@"" k$چt@YeW?OXaP|&=xZ:ـv=`>{3^TO# #6 !|&sGD~TX7-ao?6B|7 ,!'[0VlMYDe{*+X$ijTШBRZc+)FvF9K:ԝO&3gQ $U=Mi:>?|x_pFVnud`u?+uyIWe2UԧQexIp'abƝ7 R 1^hfڧQiܿ |pƊR%YGw6Bi!I( [Ŷg"HV-+ #-$]~.}Yj8) I+8yK&p kg1MaGZ_UX]-!8 / >0WCo$on4/(#i m&5-FR-fULa};[_s*Q'TLp)v7٘Q8Y6(y"mnb\7/2mT_EܼϦ3%`kǾo0kO<|54<`K ɓs#s1ĬAhJei+3cn84@N{ZbCcNF}ۓ;GcC=ӱdy$Y{Xrs`*!#AS'2ڝuʐ{ijc֯P_nTƟ*5mcH-!q ץڀE ^A OND1g'I.cntK!*$).g!_N<P MĬu?;{ߒA~oWVa%ُ#6y͖EBŠyJK1aqïvx 2T^ >Ҋ )А=esk(l9=MYޜӨ8(~u39f;JQG@KkxI\U7^fN9w"m]J"VyGiB4, % uf\5qqR-VuـF܅Ҳ6o N 4 !Tc3 ¡Z$#=s YC%W\)W*ٔ^*}d뮪# Z B&١+@okW|p:UB&l-KS$<(CD8AsiO[l4.01.}.oUJZ{5ݩgUz\EoFRAA)68n3c̾\ʼn45V*phޕOK۷Xd/tF֭Df# r. gF,i^2bLNpPF*IH꾢qm9 \}N}_]'1W6TRI7jIQӖj`Pvu÷D ;iA](~[e^p8OEڷSG6]w )]P,K-i4Zg=b; !!L_*sǷÅT[ ? !Π6|jDnw[t/qN Hn_iEKjI'? Dv]e۷0ox^a!ێuXߦF`ަfrJψ"/ve,BY!'ȪgjDק 0:񊍢z5k8g <ܑv~rEFy 066u1A+of)sBDLǣ,bIk%=cw9_8-^. 9p|B:4v@hL0iгf}lsSC.;1)fL.,_OpCS6y^X+QX40,RHQ QƓvi߂V"2Asө&(Fv~E/h - 0fn5 Ѿj:X,{\[:Xojǒ۸ѺDCJ$0/V%Z_TMyyN.oRN(7_ e8 S:9*G8oVMn&KL|C8ތ7B}FyAd+x$eRxz^Ee$na}42>~q2BnSUab$ԡ7ehE,IxZQ% T.KM/*;A$x򼄺'W{e9==V{S󙯪@1U,$wUhƳ᳖%5y8IDx%yw, )xq )$rߟ%T;Hs9mJ 4ZimSyTߵO{n/eW;8Ӆ$2fWuX=i)S)X-b ru`Ѐ+jp+cl/;#/Ey ٮ>2F19~ۈZ\{\3US5fWH-Jۋ <ϟ"sF\$XX XZk 5(` A򕘪X4:l^Sj5WGU-+[ n "w}[\jjnfm5ҙos92 pIBdNvl]P9_N7&j'c2^_XO#BBY}ntW; 4cum0 o/͒T{1Ac)X H#Dgz7[ '2r+ 3{F @VdgHY--6*;VoԪS"-tRxk7%r^84$¾h"%wA8"lPZ'6%hK #Q^9ұ{)*]0+t~LQ"1sV)ݧs?YKH)yg4*P"oQ BDjI=Pҵp3ڑ;:ρu/8ʫ+D藐EMTAg'ҽ"$F24YGaUF7IALzRvW҆Y쮍j_ mr@U˂ToY])`<3\w]~q65hvWV:V'@pc'Cpqp-HU.v37<yUUB2½H9@(wWI[@ˋݿe9Ɇƿ/b@U[>|>U!TbWǩK+/g?f|VC}A_D#r-"gGHĭDAz8#9l\4߭1hlp%߸^Uʼ0v1DV:߲wo~ OHM>CHdM&[%)L|lv(ֿqWb={g 0 o4ɍ383fXNn4!'Gʯ"'B % WvZB_qd !IJzl_sJtj<\֗(14%X-BK賚 ZOzX `p귬-_ ss֔01Tsh?mƥoTb.4kGb+#_{ѸBWOdW@LW`}z8 4B"KHmfu\54(zYC ! W?`/݋$t\epmOfl=aBjZ=^-®w1JvW${zK=Kz^ g)ڝ%`Lf[)N 8u[2qMCha*`qC+ z NW=#qOFWT6qۉq?L B2u ,Nu^n,&'͋|NƇFe&wtj FEa#SnLVoM%܅ATJh,L-A~A̪u0E0uʄk?T5?P03b)˅qۊz(Ck`z2GiW6<>Ii#f%`JD¹<#>FY \VЉۍF"[>laj,D;Żv9 I;cKy %\M]+)Bƺ qifK ;?,Ǧq"8p Sg`Nip,m/d+&rw Ba3WrIY \?4%%H80]*0hҲJ`WޣDA{ި0KPU.֢(MC̫?5Sk6 NPä~o=ӆG'≽Z s-H7[Y]B\ VW.%9j7q6N0L"5:p\u+笺"b4`7[A̋4 mm}=ѩX\ _4!w2cܶtQ? V#VZp,#\ Ѫ>"R>{}Z֧a <4HWOGȃ_ET+E䫞~YfFAYD}h4o^ʱ笀N} n)@BBn 0GCLVE.&}HYj2K_oM@86+~sx?֡4F9$;\z(N}?㿷?Y uGb1c{0?䘥 |-;b~]eIS$t2iȦ|SH5km}@9,򙳔'ӭGpe5+yH&|j] `hD"q8?љLKwy!z ]*!* ٰqqBu/:q 8/:ϓ84r䏮*sqc$HܷW!Es%'jZO򸦾V}͟n"%)zMidQP;س[Ud}K S f>ayz#B`Iqj])= c1 A'(~Mno]o|$e,`k}g-֭s,[U>%]J.,7VJଠOgC?VBGHՎDj&W$o ,bV (ee Y_#HRlOol Z "ݝ2ۿ2>ocE.)eu"/C9#0'B3Dp{\>;%sT+9|kv½*3􈿞"IfM[ giJ̔uRi "eɺ'}vo|3q;ImHTLk;L/7+S&N|Ş QUAq2"*1{kݠtF2=IH/X|Wx*&;a'n* !P‡uK$:|~SQيbƲ׫ |;rĝf6ӂ*Yu;u*U) 1^jf4D~5ڄq?i7x])j,7j?F2LΩ mIX};s&o l&\qߣRo.Hp0yo2d Y18P뗡 \+ ʡBV&U7ժDg9D>#J^[et#մh^}4yBgbK[Qz#5j/LDf# #qKz߱Yn9pqS7'Fz5":(@Xgw4"ddtļ)ec#"5q/xEׁ ,3bX'F[Bml=o@$Sj&Sx]qX\Tț[WzFGwzi_*vBU8/vA|ڲ?w{_wŚ Лî7%@ɚJc~@;CKS(u ~y|}}삟|m& d"Ŗ jsTB]Dd.;*1:{$Lɭ\#dXy1e1W!Vxw,r"k P)ճg==W^ /TLuV$y~n=LxAȪ_G&K Tz+SS{^|-q[#` yaQ5XeDZ7 wG.!eCdT=AÎTFت8< -DtL#NQ%53J* Z+K0)#5ѰMnCCѣb^A_JY&^ :*a]M  8E܆'{LNXSP؛Y ]zݗ\t]dk@ *`y,Xb8Ḡ0SGB I¾Hry?EVk+a]טtîox:"ɳ?O 쉊IgeT\*rA}]H{H7uU@so4(\bЭ sUKԲM~fLrj`EE{'ƨ|F[Cqv'xU[xt*mH}R;ڹJv>a?RC \b&wK ^v?2y\))^G}v 0s m#ŒprDY0^M^M,m2D.ino,. &ם&BBM\h+ DLơKDKEvd Kk )|rfx&1SDъi& |='&V$` 1hVl މ3@}h$X!,j}qToBUq!aApqXJɷy*5ϵvH`Ro.)%9G-uu‘9faOexAa_8g[eJw j޾sˌ b<\oĦ#y'ކW|t% (n{延FRR^AЌoo̲Zb=4E+ nnoPd8^L>,2B>SPi5kG򚏭T`x-]d;5's(ߍCm9S[,)jr8];:nz9;r0Hӻ+rRD;[W Yo$xO/1gTjKv:K q\k4=K)EȂhپQ0ϲAv}Bͤ22wMԬLKHy#\.3CƆͰ P#+t}2R)Zz E/GUTj]f#-dZ/{7<:S ԺViFgqڠ^KK? #/P_:2Mڷ.ِX]y)O366W\~rJalj0$*a̾ZLh!t=:t  <רUr ܁EX[؊[sng,& ?ƙ*!Y<#TID(z?Ajz )nϛbI@e| tUvUl03'r5#k ߕ*\L.hykSu 7問U{Z84ENP 'qaGᷡo$#Y=HiNxE`7~mPJ w3toMQZ\eQ(6謆SO8'ƒmB7sקQ+}\V"SeN.Hq ?Py,-xm"E/(A,3=!^j} JN_=tH2|+( agdꛏ8*@ Flp=ʦcBl*)1u0 v1&JgtKya/!$d@-h ? 4@gA`#WV1Et-1 Iy G2+l'0<ˊF}/?.GL'V.ˏuL ~JX|DWM~l:ŕ g7등W.Bl Gf0Q 2T9bޜF((|rM^Y0n;8諑C=\UCs8ߚ>촬W)|GmXAFcC1Yxt6'?!/oPQ;ܓ sx.E7h1{9  nR˙+?ߒ}uH7s .)xL-=Ih3qQ[FSqg]Ȭ]ԕ ^_Ȏai>`.ǓMsm%yY _NqEvقk#w l4zD/wQS4}`3^MHEoe kJP/\^:xAz'?gCr.j߻MXS "NpcM8׻ ;P:yO%L#rIX7q>z300xG7#Wt5NxT`Baq\^~Kjus[1ftMl"XQ\ y#Ijh#'Y>a|AkηO '-:q[wm aR2xy 7URXI? b#F\a9ˏ_Qc!#+*3k?<V~l%jKN("O+eD鵷dbHӁ)YGPy4~wBid9rP6/i򈤰Y)M+ݠ_ uY1PUQ߰[`bZ#ӗƐ9I&沇I ئ>CS0S7gpޠ|_/ive85Tr olESkI'}rm)Z &_H Du0:3rLemkӄȤ4-׼a'PqEm5$9IvMvxX-N=3)!ɻ#&eY alFNpU  *@8J @>6N].\F0/)|E6 ?765K( е1_.~,a$!½+K`S'Ծtm'fWh+ 6IP:QR %ئM3Sf;Y 6PpzS3WGOZ_Z9ry-Xo(X8u0+#:=)JiR0&$%`i~FSV4uvU%,VLk+ ikyA$˥EVnWh9H}̩KT uiD҉RI `~ R%Gyo:H߱ΘٞxUs p(mm#*_q^YL5V4wG3xydFq[G9I!-2u (h'pc"(PV97?W]H|7SۘsH+ǰ+/.3FeKmaeERWCk*1^aQ\JOl1^)CPںH:#btxz$H?Jxoq}*w-P\GExu`YKbnEܝ0ȬBކl_Uhidbؚ-@.@\ q&ET vv_SLx '[%c/ ݵ7ҚfIjL';yI+U mC#vl)7a}b|^4yڹWxZ-yP_(B[&_::bc,ETYKDBjy' ]: K,8s',$V~rRW4ǒh>hv DwISMc^y Y?XM ;jእ(F]~)v)/*p(/ډp[|ouW[kF\ >S_; b*uϗ˼L,- Kxa'3:LUEm9m;Ek ftᇬ yu -:eI)B+zx8ũ=PbWk'n߼}]#J^"uR=;3"w;(F-X8LkX6H6OIHĢY&c0E(@ie~i_ކJ$WkT(DiՓ*zG206i5CߪFEz![Ժ%w|CʴGiLِ&`^˔*`?1̭:ĄO7@5J\ ffDɵ3/:ef @=liӕ KE`0)Uwf"!hR!:aNJqj(ʐ\'jlʭ@!zY_/ h}Ys^Q!g*>+,I eOz =2aFZۚᅼDgKO6Y<^Sf~'/WEA+Iā)߸_/A5~muU\ btm2#C||^7놖R3/ @Unr߸Ěs<{pe;U.:YmXiWC; XEe9.izJ0̻mTX"aKq7sh"z)*UUFu$4| q{kpaO0W} NbnFayYecm 숙RtoYV vQH.nErY\ qeL>$Tv_B㴰^\˵x7ksVaDzEB?qBP4.).Rzܞ*W:AgMyٱv7Rv&3ʻ+HQԞ_r t F͈φ#p:5ah !c LTqZs3h3m|&NBPZ^zV~Å##J˽Sf**K^ƣw{?k (Jo_̽ig<6N170l=읣hYqZ^ql 0Bhu$"QtLz%0 ؕĬ mPMNO}jpEY9잲2S v0'|5ɪW덒~ v- M\8ǂ[ n!En;KgJmzA1dA|z̒SJTM f2{?DP:7KhGTui#͝?6Jx:"˷X'x2#ܤ*L74Nɗx†>nO,!XQ*4~9w#м'C,tAvXj~`H? ]opV0T'z) T*H[KHa2.Iuy u|atUPeh|}hJ',8N1o{2*j 8\q;Uid9 mA+\^|1΅`^2kXȬ~aPo,>jի@\S2e0S2՛nVto]p[=I `=ɖ )׋`mA)%("~7u;+mpyWQXj|7uR_guPA̿Ŗ,e|~dƭ[SbtPN/Ύ:ˑhIŮ4ژBL񒰊Xjmn<+m,2ʟzS2N1 B0{:8734Qr[<;"=~>FMOb̤{їD5<КR8W1ѭrJFϤ:=18*K#Ƅ=of~}<>Q}:M#29GL')U RjmQ 5tsw'q*5ܓ-M,kH$Rz=vVNIs+ЉTA48P)`m>yUƧn[pE#`x `NYnmDL-XiS>{Sw*A ƷH{\="wE3:ԚRacU`ϐ[]h; UmuڎnJ$h\I$´;òl.=fUSUBpR}#; ʕL0Qv6͉ޡ %ܪ@6)P0H-O˘v7#{g?a{*M'ħKgU~*ދ1n/a+!x\4yύVu Gpd요UTJz+e:[CC{oOG0346s$k}M5bnrב:!Q0ޠ9uMN[7~-el.\nP!BR.om6Lw|&7+Lv0L>"2-ߋ%Wr.ݹ+H'S#GZ3+4oc.[rsPB@ n}9lrY/3 :ߦM푫g( f.ˁ%߻?90M2J<#nd+sgc KXQUsSBI1eBmHeBx,nv_RGrQtQ-C؝s^omʉS|Zb}(AmD4BN?qHR .B5nS҇0GG(FPޕテ,d}c1-,Ω2Br3eb>=tN2JyDu}aHv$\vuhʺ4,[ưMс=/* ;Z] ZF5KS:e7W{ٝg&_2Q}aaPTUb#@|*~+[;{]ZTĪP^1u6}n5͐NEbX p{$G Tg TmXW6ⴟBVɬ ͈!f y3-LCDu^KV\L%qTj88sYhne3mBH*-lT~2Otbj^9͒W Pkػ7o& Āp"!Q"LA k4m^.oA~Rӽ+do]9K)Ds z V>e %_@bezddxlPsϕd4+2CWH:4npe-D^4F]uFuD ht>JՖf }o uƼLk H .ZʴnS0S>O_φJ98n,9̱QqZ,EQ dߔ oZ-B m;8_;@0 7A1Zߓʂ&LzBp9x(qL˜Øljs}DŽbаwwbڽg7*LΚWJ& =2 {b(x Yc8'a˶빻8>4#"ȌgP|QN׋˙;j|liYIjP..%6F)?<p(gkяXDKhR+Kk+Q|Ƽ6(2l071NqZ5@Nti'|:ҡ=`N_xqo?5G zę= Gcs ўUp$`vX>@房VNZ !-Md5./$}"]YO):ʷGrqm9TPS0kz ~̅ t픽zuT|  4 a$\mT*&yqGYeQewvG ِ/N$@a.z<>+*d޽%^ZikN7l9VkBҪV5aI6$e0` ewv4I@ 'U:tw_ ^":9h/үrSJ,F M3Ki!VGanlB( W/3)NM}uGQYqSSI՚*69a/7H lP*f#UCuuLqg7‚i= F`Ǚ⛮G6?i>+WltI&gj]*!ǿTS1C$\'8(3’ B-'3g3VV?= h=˵%OIu'm[ 0&))0PShavPaл])x<{F_D\ -*+ny.0#eNŒxo(~#R虸L|)rRTmnX%|e"՛Wi)ŐGV:vhZ Rlh$p$,7܌0]gkOEy2nAznzĝ'%y"0h-sLGb{3!‚Q)ź.OUbo݅#GC;x2iz*.U(25s8 =9PTUs]>zaM<3 6,QG}PSŻϔ- {93 gT)vvO^YB8$|aJTYX!L UJȎi:34Wx T=̒ AҀٟp$S&e2[Ln 3i1r ~ qC!aH[TFMNxl?aЛgnRehڣ|$UrW|> Q{sZMpJrJ*\{1)b_ϤW=Nxv = N+ ZD3b WJ, XbCZhgC/eq}ٕ12TE l,C{l.g][ߗi-%9բgYY67OʳWH mvfNbx=".iREIK^iv>8yM~?AgRp)tz8xR.2?3/{M}vkʞB Tycb4? ^poLnt=݊pk?z@c5B#k,q*sqī3fRr`|dB{U%2jTofx.ț&Y`55L&"BdYBiޥ@QGCF'e+LT?pkDD'bd?V;޳(E*URB8ב/%OCަҀ_"ob~uفtNhWS{J&Oߺt$g g;[ /`&13b6]ԃ%5 kĐTޫ Pm@ )boRW([w3Q@ߚouJ{fImi!ba 1qc^m\cfֳڑ]ñLl)ld v@#.$[.eڼ7֔<.W.ԵG^6XGO AF6K tw.jlpAh(ԣz -[0< zJO SEAy1 ݇_oDى: '9p%1B,n%""ӐkI XN2V%#<'-O. *06~Oj]t.{3MgM*c($n(Xo0,vEx 2QLDC\p)/ +vŤ!Sl{X_Fb}K뽿e"ЫZhJ_ިv O/%6r r1=+ f:(?QnzwZlYs ?~)\$I;cRUY/b̆:rfȶH́$wh 3$;·;&cK(kY#FDџ]5tHYmzR7Qf Ss~b= ;&i٠[?5t$'[& Wc'ԫja>q޶kSB񕸃&IDfz' }BؐА=JHF ՋٰXŦқu9g a*G!dɃ̀H{,@o|\2AUB{@L %_ {sPgZ:͹QtM0`#\+Qb&Į?wlNsCs"S̘:)~3(4,ņ-,aᮛ}޹ Vf"o ЬJ16`A7hQ"-'3uf?&R)JK Mwhk;N{.! Ko/7ТFfE](R>Oo}`c9YPQ-\(x~o e'UzuK3vrjVRYJ qJoSC_7 GX#=SCs Ɉ>ƘG1ț G'N'b6h?DHKⲆYVW=Fr+kKHk^V(c ~ auu^!djFjX6k MYF,>&Ө?n;~w:ȮF]ܴƁ&yU1TdSje5沚M^(͉l5_Nʱ$^daT< Iɝuf+Z+<;Z!.Zt'{2IV\].i = Q U}6h .&W+2E a+WQLd! }}JV q{-*:G׈g;*Cxcxv/>ze;ͩf821Usxz*:&b́mHc,j@k:˖ #REL~afzYعlwL9CʤԺS׾c!yZ ɩCb'wWF BrMό{2*vOv *? GT0փ}HiIuSYe͞U4WwMN48n"۟G{z&_h66UKwի^"rg<4b[n :_^&C?L?an'щ E;D0hiS}7s[VihSA~Yn5X<3u{d 8.؎G Ap<}:NE`huc&/) UeT+^GV"J4WGG#Rq+'*)>Pb<1@pϸT@}g_zSigo2^^)U/?p: M71DGD}lɒ(^nWE0_yjٚ%wS`We`pΡVVasP.E7 v|%ZcS 1Pxb ~= F?ݬNsPq\@xG~"@G#V*[2^O=TxZvIdxo%4s}a٠¾N|RlGmFɳDKxGuәޕ8<\Ò-ԼG_3_܏kO/WJ<m%>u8dP_1L+ :9wlNv:WvÞ?g"6; Y֓3vH x̓=Z1R$qxoόYcg7/)2!#RJjڢ7v.z$Nj᳅'>8;iw\oT!"􅏁U%:3:Y֩k8TZ!&_GJ̭%ރZ:ຘZ9F"]=F2K)T!<qF.3.㋔vŲ}ĿV+u扼 ؏Kږ**/ Rc LVک4,g7x[]_0rN?N1 ~Hr_.s͑0+~t}5 oC9(akFNo H/A gF56gi02.s/hE5l TH$ԗ◜Ns88rdTb uV\[Jǧ#@2rᐺM32~~Zuů8%jɘƮ݀~ѥBB~:B"wh{nWx0@$ 5)x{O-,(ZEԻ3n%%ebq'WҬM"_Z4:D0 TW&N.b$؇%Ww3 HpUe$){W p`E3 ggIE2qK s }c"Mªw0D/a,!Y"`QUs3$$Y{dy[b\< xyiGJ{WE98$xXtsƾ)ςhbCL:i{+H{o?R|/]Ro%𣇥)f߁,\7q9f(@aA2X$|}dYj!(:":LE#jj =ʉJ,4?: QPG?G`C.KTͅʅ/kG (ɴ( !/H?"UQȴ9iί sK\kKu~,e9+ τ MT1jxSU.'#wҹw`jhjYE 8QWHD.OdQhK1ub9#.gce_O|oJvTۮ|vhxWzM#>X Egyj#$5dw#lXBFt--Y ;&o"XJLO^g {HӤ"[Aum{݉ӊ#7RYbAT:@Lp]Yx;1"?eH.E.p%,QD;mɛ[hs9"\ZXa6SFY؞ɷ4bajL {;3/A=AYw٪֤u#`Du%2`K>vzHkK_% Aorn$Zts5myidk Ԣ8K}Du@G]}]Na !f?c*P&,?=29EH^t+| gZdQ2e{%McBUq݈y‘L\onJ!fQ dׄ.b 4H->Qh^L΍e'}cS|x4©4xv^kH&:CVq`-ũEwO'cV?%2$'dIjܢX*Au.sBκc|f]#r ہ{1"MTޒ1ʔjjM!C:iEΛBf̥ϗԳ_p3%la.5XR2G_]I N鮈,>E7tD8-bJ@LWZDα]OIa9Ky=AQkj >``foɥ]*1ǘF,d6ox(,(7琅g]^?;O;:Kj71Y脾BiE$jApR#Q# lą_JT1DeVwb?gbaply)Ɗu/u«[e Srb&'sMWe\ZI`(K #{7G(k$?"dMC.T*!_+]t/Ežzcok1&TR\,+RiME'f&R~T~Powd;.7 "H'qЇBp QX`H<)7$I JBnu~IӳUB^eO#TFW9[& (f(Q Sivdc.7T{L(D;B*Y)iaFFp6eCt2JM}3`ltRҋ֤ !WiMnsސڲ?1zsDjΡ ʝlWX=HZmYկw+F$"ÇDHe?_niIe~vXe3Z[rwPʓ0@vw\"oؽHmQRA1a_<ǬкGCjewWpɛw_`͵Ȁ\=eae@[嚪-q<* ꖋV)bE_yCNo0p~ipduPa߄nqXm0^)G0{t=ĶHCYUZx,؍sѦ#-> S؄$7z CDAGv[ K3{Pi#FpLolNnIS sUi& *UMRÇp#tHP6R2+X 6C`ㇾqB)&֠ھZP\#.q*WPoc Q2g#d@} jntUzFlpϔ@Le,;[ Q6C*ž>؍rr2$eF#c@bMg* @wQF5yyd! i / M-S(=J#X~qB L(!S"v 6psn>C5Y%u#Gep[J'c>p&v%&$s ᤻=t|{"o~f`}nC[S‘x"_Lbmd] (0=ɂ8[sUlχ6)%вHht{jm4 4i°sKM {W_YHF D/lFBɳMuXd78,gp50@Q67qX<0;=:)pro?%/SJ͉!!7޴R!vEbvg 9 ~ƕ$qjp2O=5+ ˛0m۷A j⣚ B@D+ r<+GT{TA9?w8E'7dr8נ3dh>8p)CP/rc[a맛x*!!p؂QUNDGI{Ƃd6Ix!+M{i]GJO鲓rn3|i$If$ihC>%v275J1%GرU+jC30 2 @*ꁣpKvgcMyB2cɴƼvʜQ>uasYD5By9\9vBr GV~: 䫧8\E͏m@, n LWAR?!ȼ;~,7D+ ta|!S\tt㤘B% 1CBDve&)T#0IJ)i8U}m׊Ct B(m VRu9AF2mw+ 2A(\蕯 BDg,; ' {~90Xz&v̈́<n ~,.2>X_)]Xv\Ls r`^`DlPsᘦ&X]27c8`Bc7In'\O:8{-MP7|3j~uc\ڜk1'O`L&Ggᨋֺ \$&gmMIq /27OKmAz𦢉OGmKM \0_y18KL\HQ~x.kܝ33l{תG (SA|<}_)B~qVYtyY@R&@Uq¨?͇8-@leG $ז?{tR'(NG2Z2wZUB{ &g ~o?=Ϯ8^ OE6 #sM!t,=_ءd"H@i;a]j;u><,` "~oZQp(eZ c S,>5LQeB 27nD"tU% g,) tרO\(i KY((DIj4Q#P@$1o_=?$kL|vtqjZ M{2Wa>!TdHOϮϥZҒs.|^`<]Z i2R XSv3nk$,#M@ rOOئvmf\%D,2젧CM7zC 49DK"pɘtޟK_Ot\ );_khfoEzvqorL◒ e!S`c&p .SHuGg Nt eIA;#ռ*5'A_5h)9v蔇z%=eT Vss8ʔ@@'Sܢmۦ&3*ϯ?HFgb)?!95ܤ~yHƀ5 ǣ=|1b`"gx kJkPSQ2˞NJwww[lq- X,1nV#$0ow4AmRa c$ȁq\$>ސ}wũnk7@Ȑ Kspi|k pD [!S!Tc['.Depow^Lu>?L"౱Q䤶kP' Ah8H΍d@/ `Mëﰀ$)"2 rm"BAؒǮnM\5]b8^`ڑ~NPH_*Lgm#Z"^!7R!`5g *٠jJ1DC Sɵh`LL>=vGg6n Aǔ]Y(&ݬ'Y1o^oOq4Vjj7s%ԫq%q)Ak%$ )1[6X;,Vbg _ =,^T<Uφ)a.\Kͽʷ^6s#x$VO:SdN, Qv&&]>vPZݞȞRԫ@x}Җu9;f}eԷJ=v(ڎ50>!W0ǨkT=o (*qD}bsT^ha7d+Ѱ˵"n.l8\4OKLүDH}LM[QpnjLu~ڰ?tqOLhNPqS~ৣ<Ƌ*)8PT?ՏWrd0UvpQ|_R?{pQu@xp r\f3cSU uh _"iaZU=J<'O[6@& L8lCb5M ͗AU8Fe w$P,?!P$pO26OAK͡7զ>sA9+1WyD !Ŏވ=ryab`dn6kD)0qQʜ2.I'x($gM((IOtf"E/QX5ɋ\kH aM T,[}x9*32D^俊oB+E f*a38p,Y>l/0BJ&1=̤Zz ifZc~KƷTNp%GB4kVt\ Er (hM+̶Aa. _$@C?^.+Hel?˿byBC^ qU *ц*5=nfu[.;v'n:D?UDeS+Th<vm1i e/zC7X/B+1'̹BYQ{D$[ӎM`~(G`h`7y [ No {LQ7mUՈ8cD͗ 5$G`2(O'ԃ-F$oU6weC/+<6Xwq'>/8a9O *!r;a.Řm죥ǥٷӌ[KX DN:'G+EkF~n~#ŧ-wF]M1>ۈNd#Y+ ?hiu{ݾqڈOy') gna#Ruu >% g8ם-h $`zJھK H9kL^-GQj49(*BU"m `]cӽf[ |N24TyX&y5s<<5 {%ܽ "QW &( _ u&7nzW ьɆ5Io<`y9u=?lk#OlI|_Xbݳ&&Qq &l+fQR ѽAQfbn:^q2&!:\5+%+I-JA+];3HP_P y?,1c:;;g>?InxZ>3' KLpO hpkYv4ˡH,kaS=HX39i8\R0)C"ݼ)H*}RQn%;5B#"x yKA6腘&&ͪJ2mg(GF&5f 55h33L:PqbT\G ]$:J r Af2my$_$%ix7 ,#^ױ]cH`#Į \{K&CpJSIj&rڷqX]XcK蕗ǭ$P8cy]po{Vk1t!M?i;9:4 z3Zb#”[5aŊfB lb(09AO e{g B E)D}).vr?aF՝k /}vD ?9Gh1QILwWMY}TZJmJQ wv"N0kw7hrW[Z 4BРǷKR?W͉֞+{R}DɪQj"ʆ(nvW*fߤ&yѬǏlKh~k[*wʃ&"d xh yOQҖ"6R1c[)+aj&٤-y yv N?M[yiAŤ!eq6,,|]dFL__+<޷Ey 6V'ld /&@2nx9n Iy'?m(D P ŵ! S|l MYf6r{nNۄ|Wdun:a^icA_p5m.MapA T'@.ը^-ͩkݬ앗PŰAWFU%ƣ:k=T5w`CLyոLd}ҒSt DC"D@`Tw t sRSz 꼁%BoF@f-dS]cCcCS? c8j}u܏E@x&lTW@RSEPd,W7־v;NťERxvZ%pWu9$ X65K ~'+kI5 ''țn-MjE%cj',s0g/ɮHN q|lp:jNQaȨf_*a&S3ap]䭖#(J+^Б_=$ag١4c+qjX#~:= k#{bG[5#N" pdsEV/OI[.3MTֻ-g%sؙN;#%ˤfoa 5mLԗ?SuF-xy5&r\BLRǟR-џbuCݳzS}òM0Tx-CYQ^ o„dw~,ɕtj#ze78xw OtZAWaQ(  xr2Z3{{8!5)vI*r*Ns"%HL'f`]ã.Kz ED]rG37*sVXH+cmNXI28կBT,W^Ӌ =k&ĩt^3Kk,&aD]DSKx1`\$kE;@dz ^#a D/WCH"02RwAg@G{fIUhX6"d#~段3tE-u++j K Je9w 4c6R(K묌2:y r-4*Go|ڡ:sJHv9sr1a1g?zVTjyްi{ڵ8.ͥ>sNЙh_m8`#gaaIld![Zt5XJ}aucv46$ɉCZLo>]Z (R鬬&њg([]q|9mD8Gi!FO){dY~.g%IGY\7lw0 _iRW[/2=pG @jhh$<9oKhk&w'Rry6bz`^2lrH7dMU@}WYЋWE?²۔nĪ gF~ 1gzҠlh[RRTGT'+i*,uڊχd|v./:~rgyqv?jJe!? ZpXi=Xy.&F_j59{>uBV\UMWMUxQ;۩1.F4#gy QW2JQ,xk -1 \FDЃ"f3ޢ)<A2aQ dI`U1TiER-ZMͻlzI;zgOoZpd7\}ޟ<[NnR1LIKWprΘTk D*8+C5oBmLC7#~/b%a+ЮWJ!b؊00qZllЃ&$yk9fe]Nh%?U7"9x=|6qh!ZR:sx9zƖ%D ̺1l@:a,>dq>Wٹ${=(/jBKw#Xd궞T́_fE_ߎ<+oN~T>(»$GJ_‡@RʞDF:[ILE{Jo}z'҈jw8ܞmL;BxōXkl;:@:#^le{˫)g!Uk())#Y/{P D!U#"`%j} #W-|6qSϓY7{{ nW6E͉. VdU";+錙 6={aO7|RF&*>BJ2)7&rWxVK=(0C)y(P2*3EE)Cפ߅lgG;U161u|zQ z1Fm[;pDNp7O L =᰼azE۞H/d ӖZn@\P2z0\eڲ4WMbU#^6ޗak2ܙh,JnDBT>th?7hS u6[ =|}/ %ӐIg;Bjy{OzUXsd#WTS9e.?@s]|A* nTOBt/QYIg.vmР=8#ݍ{#/a@01pe!92!P[h&5+Ƕ^k[6 Pvi%@[(;Iڄ`c xxO{/)=6^[= G/cEO o`9=$d[1ٻ1"Kzl9E =hG#٦#&D90/S^ `ϽSSIr f[cb3Vjp%X4VnEIO31Z֤i.eW˛3RU_fSWCݒUe ' ^0LhWT5G鴄Zv8"#0.f{(IJ^zۂR56H;C2L^.Yx!Lr:aLEʪNdJ-%\Rw: Pǀ[ II%<.Ŭq62mZU3޸k:_Ij<ÁRJ*6ti ۷1xAJQ493${:=ЩP~y2 d'1>5zV@j.ٽxwɃ?zy,24Pp]":>3k PaKh icWHCW/[P}aXyNs)"zg:KI | u[y^MV{93Œ6-ɈSQ# ̗eJwtLvOX2QOb 1r߭xF*7V4r.9(0n gp҈&/}d<`SHU$tT=Rӷjٱ|Tm^aa=k=@fR(#1Wo<@wCdפ4QCOiq3 }(4U6%T >sԁi"nHm4R* 9Y.YY ZF/WBƈs%:{8G9[H)h`zK,Ӥ&D-hrod+uJi&0άgwD{ 525\V]fPyusl{)~҅y<^nF&'eNS'/r.feNmlQ%^;:``BOϷnA]b./*έ\2:lVepjxrk屴+]|ޑ*/}E?Һr%ƄjK4"Y8g4!p@cyEVˤ}-0}פKꢁ74d\ܗB@~ͨz}'c12\<6օ>m.;'9+]|-_Ic+:+1_EKMݦXf Q#2$^EEqGl k[6`Lύᅪ'C id5_YW#k(^9qN1EI*gXd͈o%7IqPjP}nuVH>l;kugEAYNMGﶤ,Ha+\H窾ōx˘rxQ Jq!6-DK{vIP|-|\@-u~DVkVa{pl&RɕngMzO*2^U A?=rQ͐^tHPEX%ic@"cdʆVe xhXǨ_pRA_)7W] I:,+#߃ZGqZlcfV,dg9 N(LR(} YZvd8u'w$"I r ep]#LIhͭU3U%㷦{ |H`) g]E4ؗJ$ #n1JqzDuc ?1QB?ŋW+7Ҋ|Sζ[3 ]DQʾe<e\~v$]his3?)=8 nG&Ʈc %9\63^׹sy>*QDw4YMF2'񷵳Uyh T:FbC+U/BىG|B$:@)L(,. =_WXݵvU`D"e ߕ0H|Ot#\I3n '!(1 NmYun6(Z$}eEo=dj|}-ݾlmO9|uDCFshkaC POZ% }K Ftz ڕSN4C:uIPrEIü%?y5^Y~2z0"&G~mù(-n\ɖ"EP[gȥRr1%S3 `a`}YW ]&7~(/gDV3[)N=c^]J<,tgt}O؂g ;#x GT]%qX{JI2Ƞ}C)__psq|tb_ڰm劖{wFF`d9PxL%wy81x#pS  u,ɪIxAe>T2ںrZcSHo߮aL9ލBc!,:^"2t W2yi%Cʜ3} 9,Bh4Qi15`!M~ 7ϋ|ӇSUr3>w]>3P~%Jʿcw՚.scV jJ´|,XHNrySΧ6"} l.gb2qr =%?fOW-ٺٷrU)z6KGqd< * J*lrLL pUyFp(qQ8kR\E[yL*pF l} 8ԮDM !7|Fh OL/Ar Ds W՛Ɓ)N<QItUPUouox o.ƪqx[Le5kHy`7xgc֡7-鄪2촍T5%`## b(@ -&]Āqg,IFo.!JVc<A"]MB+x^ŧv*PD9eAqcDl'`.ߊX|<Ι 9?؉]Iprc+"Ae t}}t~iB ~?vŹgTsi K7.9gCI 3oBڴV3LнNCځ;eJ4ØGj ̊A<: X#2'+^\%x4yO,'yqF*1Q1g|c#\saűjC𔕡Q{Ar-aT+QlR ܱ9 ZV.ʯSG],,J'Ss?$F)GKdqr[5*̸Wki1BjE_vz gE`)нm`EI bT'ʨe 7vn.1a(= aM/% S9'pR<<|O.T/uO-+t$0Kt_q Au'ĞRP(M8(w h [RaGp|3!ʈsv%2 ʆbN^`/ e09/\\T~%H^~J:a.ZFV Rq[Hr.4 [飬 $u]u@@yOƦfh95vxTl{f('|݈RHױ^3aYnCIuW[ш7Ҭ򋆶?`, Gӻk6qxSnˢ&Vju0KZ5sd3< M̒45~['>M&.s/Fm,6gY/_l.XMހ $ dj1Kt)I >2Zٚ*_,L,P=DKl{$yC4OMZf(A Fq!柕mw3iH۲9ڴx8r 8=qiYŐ=ES"sˁC_nz듺FF6k *w)]}g ^t+|׏*&s϶OZ0GGV,wF6~Z_y#g|PpUdq)`C8 Eýu*ˍFvnS ܛ}Vݖ6䎒s+A4୫N\P!R(=~R% B8oxeR◦&AF2Vo fe kC`? Aҁ1s/E#hAN<-AOwQ+a"nh793vW[oV-CjD^(A PJ7I}A'Hjמ}?\18ΉpB2{ ;AF|}rl&P\^jCVRD"[`#QsEpkLŠ .V@mK(U%!f`[$xfaU;/RhD8mzӧOQ@Efܪ<$ ȶ2wBbHui*QrBBQ6p`!%sc.ЯrՃ7et@o<s{7j{FTx`O-|Ljv].%UAɹWPǿΫ4ϿDg(];hsR. ş˫6hYIk vzs*m+O֒'', 澞w_(4gG¾&Ԃݺ0`gy}Քށԑ%A`m4قRJs}G\A^s;b)5QWz4Eb#g<':hw΄׻Xq${D}e/@dtlWb˒ *s̒m4^ZcJ6B3&.ۧ_Q n,% )pdXJnԪn,Z| v|fl:;i PjiyOl{-:m9K]y~ `*-ECy)0i ,$K#B΃= \XՋkRF!KF.-3$'QY|h0K-٣MC6=bet|i6r5R{x_NR:Dcɗz8'Zfȱ u&ft~gFw <9RS˅t]8xy9|Oeidajb`-2oY_Y; W}#ZB\"H<. Xc Y& ?'?uﰢGϲ?T^t$-NbM}$Bjbwܷ"v` IC< =m4\6DsoƂmஉXn˦vb8E3vjdR~%b8. [Y`#bT#Fq=TKcUWBw 3ԗXվT24NNA~I+By=D:F2<Œ!Z!Ǐݙ{](tE PcvP?ź-e*u< (Dl``~uܡkZD)Jǩ@Nb5p>kmƛJ$p9B3YB&W,FV?@r<CFƻHȩ#>;d5 HNћ56cݴ3 g[-xAc?`G~p(#gn|tIRa췯j]5\tV}Gɞi*{N֝IxT4\ܱx:N>Ԅ'l֊ `o0:7zb傰e (f0w+E0T{} " cb vGW?XFO%|_[GcI$hzCAXNs!~> =0vЅK>SJT>Հ8=6|]1t?CvlPvT{DŽ::XijW'߃('>52}*+6?)3$F/4bSm`KCfjQs}9ܕ[դk5- h cȢXMNW vގt1 xcLT6u> ܵж>D s[t7Tܘ֕@P I#{ ?&zƇ.qa6!M#b{-6V>xqye8,iQ'B; n>@ e^7#ij/䚢 `]&ka |x{pwjH>x'5;i ܻ8U}n͚?£ ._`5xQhƴA-HK[A|Nê '{LlOG%TIkG2ǿKƝ'~龂ǬHd ؤ˔]Rrו V`}*WK}%tgg"C`9G\\5ss9R6ƋlY9=Cy Y4e;aNK8u͠xΚիa$,8O\F{G@gNDi[$Eиe@!;% \LίPC./,*JhE%pBb,O EFf])$O;^$!#|SuRA1Gqt"a5X]`uYÄ} `{q32q5j-O4|{iĸDWo{`dj9wjӫ `6Tj:)飯&~M lV=Jj40p'=Գ4{kFMZ57O9|φp!'/91%p ;HB:X=D:wV*`8m9mZW:`tq~ާo#w8A/Y3`T׮`ȶP*T%DȸY$l%l.i!7:kPp} fn-05(,)yǸi ;4:|SUo;~a$4͇yaQ1T -{,) C/!  86rM;"i;l[aRQwl(tfFQmwflb.1,U78!r׆ݙ+krhJC9+liq. Pmt|Xn=㤟 Լ<0p s⸨hh$ުx6Sԯ>>(̖Ft)}U%VHG7B|P~`J:OfW9  R(DQkϑ) iC'E=AԨfhAgD5 ;3wPK=+\pߡ#`a,d?'[с"P&5DA7QR޴<]SO.5c`nT?0{QB-jѵ8]e/d<ҹG 8DmGdq. <êu&(zi@:YfoM?t DmtY]P%3PviBVd=j{{<'b~ŊӄČ#ב}P*!}'}烓ȚiG}*Dfay{Sm e$5 /pX.4Q)Op/}ˠl%ݠ2hlxxAxП;ks+ /:p\>>Yv:УdܖDx[@wuJ;VZf 5x+hIBmqh!muXV+%K)drfa5Ryc<֘3}xbuLr .k.c713ȎS -ˏ D!tĞʦnO60Y\HiR8Ww$Ԉ d)!xw獐EM܉2H`yXKXb\bPuPȣ<;~T卆3죇Qy܃W>%!0{2܎pHmz/j&n72?ɐmD4Xym|KC>UM >,ç]W-T9r{gO*|T!c7C60zՃǡ]_0j`iPJ l~\F0^ImG5Bp=g0I[d\rzCY"IW}w͚įM$_ َ|6k׮ rPT;'hkWAe/ۡv'+$+]i}6[kIӱVYP>2FX׈#7((@q.o14v)j9+8&|#qve%S{R VuDͦB-&a k~;%4d靸xhu>ǣ,G{Ed^cG66-n-%%ih#O6VQ]s]LhɫemCؚ}|h 72趜#}+aumS|C(\w-ۧrST~2B" r \y1_Og|*! OV "isr4ÕɲbJi4A%ŮS#MQ21OxNsH㘂]je.g{ =>L}Ю$JIld<[2L 9@,0~a\@7./8 T<@At=uMrև-N['qju5vXZ Ҍ&Co:F"b(h領w!Q]=`ЅwWP(ug%JF ;yO)XoBIh?~!j_,`9fz rhݹ3`oc h@Icx\?(Y[OA׷av␌BYM 4P" n'RW3uY#Zٙc5D&VTmVF;BC%C᪀kx? )<J[Mϳo ΩdSQg5iKv(\klZ 1CiÔ+'k@tK±%ڐTL^DwgƘW5WRh$`YvZqjhso[靬lO+r#=^kcĵ-@ rB/M9ɚ]#y}8%/%5lw &-fd. Pr0>͏"L[. +{a% gkën_ܟ|q!x \ ѧ8 #n1]~Sfg:/V`$+UW c_0i4YA^`jL6|md+b LG7uA8dw{, ,hƱxm B,GLkq "(ٸCF:9 '=uYN> 5M`%hq.,pSW 9? *mhhhQ)Ini/Pabzz>~4J|^4J&2ҪJ(K考UmPMwfݚueK@fw?V!9[b$o݂HjC, YdCk!PFL{0,C QܼgJB]w\@U:fZX1mԢC]b횽9`؇#i5![8+ҎkMBʒmt ?E).@My"l[eey#"\5@wHXГP.M/)iAE2PLJS5GJ\֮> ܢxgns/KjF4 méN 5UW{ˡGN:-A:gx%C9OA v<\vp-b _oKbBPu@0_-g)$`Ʋ_QTSqgwg NB@AN~`mZ""NV4XS)1 +$$ItK3K.%(/'[紒8+]AUaІ-4z#{ "F~6>ǙNLY‘Yܜd;n, FHb[,腌UL "y7Z'9 H[†Cm75Kޘx6ˎ## /gy܊%Y_6Y-{||puZ41L;vdve,PʋS+f.pAWy;y<$h\E\o՟}RNqNx 漚5C~Y.5w 8F&oϐ) 20ov`gK,PJV#,RON:&\n;V]IF ɊP>b:fn˂J!䕪/ TpT.$v2iM FLݸWK4;T%:}$X%;enxG$Nv+P4=`s,uP Snѕ6Hn8m;+Hү΃11@tcsV/L3_~TG?8Y٤!Ujst,@pN7gdX۟wO+ƄdxhI9+Ѻ.N g*f} t^v8ܛ-rOFĻd ( _VCvgb  W 3['n]U8 =~].N %3X Q i=2 v$,ι(njIIcʼU͕G 4} Lj˅z)Wy7~uOt`dse70*Uu"~Z$CR-҇z%Lgp¸,;Q_xLgg L@R+;'G%ʲp_NxGiӣ1gW( lm|! }UQ ^[e@)77>'^}@-喆繑c`*%R;;GHԉ?,PWmr`\Щoμ&;5%,C+ m6(.[LӬ=Y`US0( `׸21 $cH(PsTdA^O m[bj"+f3%lπ㺍NQb [j'Ie ZJ LKQT L+ϯYUs=+kBP0eh"?ܥPKbDQe2QsP;?U\ z cͨ$,nln CFO7A~tl pbD(mh+*T5qer7TX2dejJ+#F&&wݜ ٔb{Ji}*bRwmjtD$|4c/IILfF[|zvFWT`I?FnZ)ي'~ES @7uwV p7{U;'4i2y=0eK'0eSySaVt\ҫ~a]o$}A!5t!1t^* |Kn< li/n'wx듮X*J҉ =PHo͌<9˥E"5{)(ݫPOcM{"\ܚz3=CPRڅsQqAʪ`=wj;IC.pR #CmTײ%-S#@ngsPc0⸉#OeIvŋ)Xʣ*9[BwꮘVroʜ~acpd3hD|00Jxy 6TX9J M~ݞqԙɉ(װWgB59򲠷z2Ľ:|c|CMObUӗ1@M@hTaé]0N}<\rxQ~<Ր CT`~5(oFZQ]c.igcss&H 0m`gY?hWP=qrثry#=ࢩ{nHcQbO]7F|Zy>|D0LB̾d| *0?I_41%Fd6DǼrʛI Ċ*-ބ ք#V; pK\)N׌dl Y 66I`{05VtKn8Xi3<1\ -40jenM T4Xrٜud7ȗԫs~!BAHk'p 8 rSӝ)NVM]k;(]}KF3KŤMJj̵)O4 TK3!fA?ĺ_Gtb5UsϪm.:L+Ms]`kWNsN[gU u(FFu7w;ŸH;&iG/.2C}GPcOJs 1R,7sdلd0:%2 uT%(&|:x{X.>k@tFΆN@,6+w3P{:IPQvtXw /NI2l>AsqY)3}F?։i/0ʪ%._[5DYDm& CF1*Y(>ܵq}YoClmo6oKJi]WBTa~P ~b$c ݹٜ9'v>t U 6yϋ(o3(c>f-rֳP|뉖$ҍb@/6}Z^`~CQpڽ>1ڿEg{D8VVU`Ά=W;tŝ1>TQ?Кo6<-M`)51(P8ƦQOc琈wSO02GĸZծJdh;ENr}m@FP'3J|f#U/uG,NB] Sa`7 m}$VCLlwNBH\tޅ9f(N'Xֽg.)ϝ VKTa[w|7Df ">ip2TaϚ[ 6w;RzENH.hڪ0)trE f#}a`6;0P[-Xh%f\"d'y]nw oy*kW}s̝[,nL`3X8AmO O_2@{zz]'S"[q]+Gj"BR0 ta8%E{LEtygpm' L5_"T691doO09E{% ۣ*@exNvaس}TKp^xΐ(~c. ѧ̲o)S!ϊϣK~9^84êLJFzAHlDX+Ȁ ZEW)ލ u64 W.6]ythp̬cPuAVZ -m~4L6;Zy@-y 4L'p}|{B6gItot,!͝E{ 0`q(2 ܻsc,ǺcM7K|L^𖦬>+WGT1_ RCs}ިiPЁޠm1Q# lNZycQ\c%* Q}gjԟ{yFboxPulp;+Pnq݈8l~h_|(h4o6:;L#W2w:Y~@ku\,jM*nIVL@ծq2e=b>w47s}JB4[5WSnjW2=N=z4-y[":7qOY:Ov EPѧ:Ga&z%'xZ-g݀z҆AQh:#?ƍ+F!zP@V"tj*"H6oQZCCW$} :fXE RWQf2?d%>NJd= mo&k ;bFz[/0K~tܢG0MNYN'Zv5Lk"]tɤTWS ?bVXT Sr[? Ɏ>I2S J\r7bØjU%‹ϖ]8&!-=L0q1>m] Z:=ÞZuqWݗ?peFgҚv2(~z'c=fː'\ &<1Ogٔ١,ē#v.ys+#YQn_HDXcҍ8U9u Gˍe<Azda@g!+#384a,+Ի}E?XosBC{K UT8UU,:Q? յq]>v9A5*Sl?zOtq!buɫ3pܫ4:ސl:^i! "^P`-lMxCSSf<"3'GI6D7m⠅nː)Nv YF%@̏vETmϢ.Bύ)ȏ0O}fs;LᎥd>Uoju\n+I#AYGHY9wŵ("[p(^!>hg=3pDx˚9jZ2P@H= hU\Ev<T wC~?qb P9st' V xu@_!ؙ\]= [>aKRnqP॓>r2SKSB'DwYa%v؆EЃ:dK͐ӶDzp_/XK^~2zo_{ &I26o-ªٺ(&'E k$c~325̛,TT:s:(-("~Gmym*/?088~4OyIIk1/QflmBW P*b]"72x:1.#|zjeQZ|VVc~S˧,Ƈ%m _ ܜ.Jz==0o*lU FQ'X.;s12(!Wo)р*Ap6cM<Đ/U7{_V^aNwME o\dZQRsQ $yD\}#vӆ ~0Θ:zO/|t?d'lp%6)@vkҎP.] 9~qd6 j3ݬS82 :y Ojy-\u_g:2d!'K-Wg~C9ܭ]yq{E}t鄲I&rӖ6&M[hHq+,mHGb'{ڡLB.2hݲn/*yOؘk}A8 ɶw`yItZ 4p!/OAs%Y#.Bd5h`H_P=5n"k!QXKW/b}"5%pYرZf 5@s([>ZMːG;xbN*M1rHvE1ye4'SH\ѼZ*> #nlT@ȲC5@hX1zd3J+E"&hXɄ F[F'3xU=tvߝRU?W之?2.M+c3gzPe}8bƜ_Tn5t_nּS ;u}:.MeTw~ 4QAG;+ Ւj,B'p焕 V8L{bUr:Vvv"eBj7p282_ ],||\ d~>[zyj4^jrnfLH+u ۨűW ֜CY(HP蓵HjVh$R1Ө.+͉&nخ0Y%>8*Mu 'lM cuU>\N{b[g ӋD*M1Tʫy(:FVy Uw` s1gvn5F_#Lȿ.9Xto FHf HJe065Yr@=h&CT[ξ,0=L_ LVB`3_8OhB7LEJ}3O(TooKFnGP̜#,G2ЫMĐdᦨWI\i T]8.q)Mq'|b:+O4~5ymPw]Ua-qa3Ar#r 7jYCH >:أl#PsEۅ8_D<>P3v0®@#޳sʫ6e71P,z=$ܾQ+2VCCt'QJ(0l luKͳ(y'BVX<._v}e=f(C_XPAB%?."WsșƯ0 99)"΃~^j.Y'HR[$En$r~0bR_ <^53:X_~Cl+Ҟk+y Lo% 92s~dy_=q:fⰜ#fd#M sҏ9m4zlvqTS7d#svdɗ*'ħ"Z橑zc\3jKbr%Mo~ibk,=CMbx?bm6(AAeW`]7CI喇I{m~ HOm #S"c H@/<;xtb_ 2*DapvN0|&M kؘPnbTIE2=+2sҚr{<TYO<ʔkdD@ *DZz`=z"ⰸt<މQs;D`mDW^?<:\gdxFGQGJ~lGwx^+b!V*1WD=zu祬VݠƕOJVwؽ 1#iE'xтO =4X=8mgoڷp8")5D\%CydJWs&H\70{<]V9'>IQS;Zj~/J}F~biȥ1t[dSATڝV&тhB9l:2nu*hh[ؼ5WkSђzc6Q,EӊF7V5Oqņ"+::o^98;"(3 G0v?XpyygX7Gݰ1^QWAҩj('h@%C6-T9h߄X_;M14ʇTyͭf7{B"f.RsS@DžǴIqazu0 ""}}7~~dRV0C9N3.@igvwI9e d=Ƚz5F[@-7*瞊'4}PK˽6 a h9i4ZUc[K+1n%m-Ϲ`o`(V^BhHvU_IXX5|rb , P^YNLq=ZHS5N)@"P+ة"0rqŃ<ʨݷit,#%HGx@RZN2c~~&n:؉b9&G'DԎ!ؗTb 8U7-ۑS1G&CDO6VS᯦OipHԙC]`>~\U{,< K.sp/"D92/%ׯa`̈w~GHk.t;|q0D<̓Νi;l](`r* /p+fM`PФ^uhp*[e3̎)ըl$qD%Vno{xšÎ(aiFY( èa*# dB;,-.\8~{mL~֪b5\-%jDah?s߼BQ|YZΛk:2zc-A?I,!S93u٣=T Y3ZnD'4 =R)+< ..nC"V#/pgsҠu9Tگۡ:a3/omRF$By CiNW%E|BY9Hqvi\"=7fF-^HSϬh|QK.tNjNZA]{Ӷ*;^09oέ}1}iȞnye}=bcIJO^[ pO&V61 5$X{4Qz8[PA; d+p*MIaݐ{ü3!a3R՞L|,J@!Տ9RZ! pg&yJo{(:ڠ*򃙀US)׈pA/qA%BGx ciggUP ~'au;È 7^_$٫׮QlN4o{ɽWL\(^OȐU-ӓ`H#"TI0ݎ=J#JNhdWx?r 8yԷEHA::-'t-6/po2tupc,x-ϝe |# @)bT x0tDsBa|7vmss:sM bx 1 _0g5{:Ѝ2Z$ vfX'L B&/ĬEMVR$&] Q1pu1|@D"HbEZ$F$(: : cyql>b%ƝE.p[?]2 x;*wB5Wzs쎠`7DkҚQc!x"co=mh4ˋ0Xo'<߸%6W;o(/u hfEi~\}~gnv߳]O_ǀR.!-Ŀxo"r)=9hy;8YgSWj;ю!@[OSEK\e޲˲낤~21'M/QG#˭$wP FC ]+R3?~Tq Xk2+)6G:{q;]DF8Tgg+ԥP5JfDh-{ku äPkҰ4o_!|ߐ /]Ңi'{g tr;e= ܕD5ȖX-AwL;T NDr xQ\>(]]]YԳe =уo615IeBψ`s/v}R0+U&^Y1NY#$tF6?&Q_g)X\mTzBHZYsʖȑj`;&W4ە@r롺]lS) 0|VgO'0a{ֵZņ]EsJb+/M-ʓFgk+?tR֬H`Rl,TM]q.fYtxU(xߏ~'-_NzDzwcK#c-s(,E$0*BO]7Р"-:;{18GGnR6~ӹN5V2^t1ؙy$ ( rG5%'Ikޔ'WJˎܑ3 mi1kK{[< hA:x)8^R⦍)~2rP]\QdXXOg}%q(_jP'{4 ^~Qo'}ޣ!q8tzdmK  D Y6Mw.5Rk9D%ӷs(D*0E7r].)`Dh.J(DGVy!K~i]e@/w+?Xq2 2lW#*K|䗆lDDVVԤ\c.c8a6ewi]Ӈhf1?. G`?ݷZl)2H2]m;+c),eIw-< ;EzdPȘ@x~%)Rby[4l>E8"'̯EiԳ )>1iy5fhftB0S91EID7&3bt#[? `OsEM}ae^J|>eDDqT- )d3`RL./ƁhB_߅j\RC.tPǷmus}VV|y8#в4ib#9W+aiV1loLL1#^Fexsտ**ó4Pme ˏ#QCv*!$qwBײ&50kjJkjWϊ|JZqR.*JWhg@BѦ~I2jh/ jiT9{釟>1x2Z]3L^)YŢ}gOQOLAksE,&Fh@UYׄ%(ɜ׌|&9 *}0 LH5}8f02pSpJh63)IVYܙ~q|XUfd/|yr(Sz%/ej H < `(YD_?f`z7:k~V[pL<65:2o8b?(+v{mh˧fHO}WZn;\-ԋ?VTA*(;<BSZ5a*e Ag ss N<3ܢLlH}@ ?lMi'jw#kͮTmbG0Ի@5i2;-@QVZeyjeS+R"q[5;!cۂȑtS CGÔjfIB0$u,xn I7Kt uĘ> T \Q9N1[rlie`$8$l9C|_<)CHܻؓb\.9gG5ua>w,PXxʸ7|q`DYDrc~F:%Cqcz'jSi_BC3fKKu.5~n־ǑU-e5-/ 89:1߰Fڐp6s&R5a'$P'RzsnZ7Eo\i,MKlV 'Z.@Ǥ**78=mSY7Vq[] qJ;~Ts$\!}'* -^֓:o\*ӍD2X^#T[+WʣwkW;ziQ0^{}c6LoCB(|!x|aCV1h^E6o`K`&iUj6-r2OJ^&h1cJ<VqA%T?VQUV-F 4'\ HD}3nP0yQm4K((K.QP*F^T(E`ɿM1wj77R^+,Zf/P ^uh޿ieb(~pGkW6tq/UԌ T.LJ.P*zm7[+q^-2FzNwH|?G^IID%t ~ЫdBؚG|v;,x}뱢?A].7m%3+Zq%3|[Yu^yzM)>.6 $, !|1F0R㍃;YsFg|%Sȁ[ pLgT I o$Ev,4oN̍ElHTQ|cm1qhOńg *UE7b9Bhlf9r^:5;~z?/ѿLAnJ= \b\᎜-x2Pڃj+%1rmbۯeoKZ8cƩmnZo!4S: ?&2'mǖdB5? gl@p/Y)Z|# [,tYyPtkRDSzr]qBiKIBSnCMJDY> ۮHR[  .mоQ6@Ap)T]jWeNW !&RÁ2"^#Q.G:1) >H14{^0ׯ |xҘސo35t!ؒw"y;O쐵Hn=U/A i:ltfSA".,+!ʫ-_y`n:K%,d HPI 0G͜g"ZР"R8& ]Lc2-'2/p6<`TAb^qa=~+.~:4;p B3zf= Y[#i["d[{xhC<'1껃w7 >YoP"k4u OX"|R`yF;b~d_SNVh@"4b4oYmpf!?&4\9:^8ڝ/`Rls/ ]/%H3]O-!8JrHL޲l$rn1V }y@io=QmmAms4 7(!(p l8-g+}VNBfǻjÓD#|P&⟺#Ĥّ奬&(V wiIXЗ!\"gQNФhׁ]85N~*|=š|6 oT?E>fܵxÁ:q%/bA|g{i"8`h[ҐNuU)oC>]m&X&9J5Cuwk e&57)sQz7#H5ع]y( S 'NˢX,1KSX|]E`EKOM&x k)A.(NQ:69N`Ki3b|.,SA վrhK X{dS;oG϶Bc[gM/8uvfZB48+$ էT5԰q ̧yڞ!D:xjO@qgk9va#Ǖ8n _Co[8U'eoe#z"m:+T&CZl\ϿxWH#b"];zyob(^ K^2TL?$# A!ؤpX'$Mڋm}5 `[p֯3g^D&> *7 Mvej(E HH$mZ0iXu;r݉;Lo>N vJ}߷\x#lF莤-4š! n^ 8JJ1Iy[tUd.S"Xzca"c<14Rd ^Y.p,~Q<⺒I\&*j,5+.:5R}VON[\ih wJ_exrC C))<X㲍.-K!f =^.|Vshӆ'iy3-UCݿ֌7iYg J̌::x]2QI7i{0KL"ox תѻyhʵXGӈ-Ѹ $& x YR[e!9hΡϙ#oSo}o_&q;,ʜPqu6wx7S554#ɟ:Q.\h F x 5 NSąO?!Ő˱AGXN4D7W5Nmb7L%Vħ<@U̙ NCSYX8}Ę uy%ʁ].VomM]ĕg߾B֥ 2gS]W ['l!aE䧀,@E/&A`jJ$T\QYF#m&9j9+Ùͻ$N6, cNg B-u PS@L=-FKڸ_QcR!¡&|r8/IoύVlEQJ}@xBD͆T:7/̨9a:mƾz"f;}d$ujDC@+@^C?YDǺZ. "@/©. O~ڹ"*v7oϺE^f|aY_D|K|TH_ldC~ܩhf4u+E."W`@]v,aŝMw1I-W+5"Ffl JpԿGkJ)."xjBR'v YxO.KXQ9G!R33D$Ǽ Ŋk_o8 _k`C7@֢T[/֐Oe0SIy# x0Y\>m{an|L$\ˆ]6|ׇf U *tk_ZrR]"$vPRCQ]8 ^{GC1dRruQeX/3ՇzQ{o1E+BIۓ/Gq4X/8N}0,zESe"}澫%);X=n]V?29IM+,;fKZy&Cc;耬/[dҏޤ0m\v؛u>ϵ8(ᘙ{ɝKbrM?„@Sqq(Z銂^}(u"x&D'&'<8BMh<(Sj=vwUM%)몹_.I9,ro.0>΄3G[&4vJI+q!P=qkl_"YM-m65;\Q|Wm\ǟԲ=H]eTݝh *h?iƬ~?A9IV|Fvb4lL͉'v"{ʞcOjSHI%RdYC V㊖@(pqwE@QRZJsn9:Z6J*w:]*})δP1GW ByU#!`+Y760< b;'%kx*rmr+dhi we"ٖIi!$E ^`Pu@Ԉ}iBCb쓲(*nGMj\ U^]Zb *X#b{"+8 H&|4{M(4GcwyDȁl3|dDGbHjk*wM& ?]#mH ƥ ۄeѲGYѪ Y-dJlXs[Hcn1/R$ˉUU\ \,;qR%Z0ߋ6YX1"h16Fv#yxTv_ċg\1'WG K=0 ,U2a$CwǦӚJu%Lb)T4k×}^}U^e ήj|zʁ~;\huJSؘhzoO.[MY+]F39r Dt}pّ W?bS 6!}u 24{:;ѳp f,ȁy <;2|ve&G oO59FNYDGen0 m$4V%s=jrD^8F? LvZsLu) 1I T{Gk?ri1zʔr*op,:d1_QμDAS_dd?0dacLO5LPVȚ@ X[5?Ď-1 i&V? ("+"7*Yy@ےIiEA؁[谞 f[1dZ~|S 4*NUB\MEeE*hFJC%--:[H64~!J+R̫w}7D:q!Iu^^lrU{7vq=/to0,=/+3]۷Ay%A:̤t)RECg~: = hnĜ! P0`zy]FqQ-w\z^?D-[vs#䀛%~0GHuc![$ xyܷ![e~$&zbjJATAotq/CH~Wm߹?-]em:S ͪL)׽Rz A`~oNFқqJQqb"͹.m ..L{Ӧ#Y)T?O\v(ŏr4nDf[~/FDk.NDWVZI(ۨkM4?P%Fb~xs2hL;KjT~M"|ՕKֱ!5IK G9&*ɸևLR0.\8ɐ3LwUMA˗Bb\΄JUyv˳B$ٸg(lRCAD@,aR5H8)ٗ¤ذ׼^cEsygfo7ڽcQt+]9COB7ocHyL,,px;W3LfxZ<uKgrkS 3P*h ܂g(fz6pm**Wo0QK\f\(ޠ7O7;Ϛ6(hkǮ%kf}qו g68y2m|љN2wg85 G&SaQ)ǟyd+4kit7Ga(HA ;$w%tsqS)z, %c%Wѯq\t]e2ٍ6girT]:̂KCQ99Pܴ\Ey`G,s6Q3EࣗnmG{|"Eqh҃f߻q,_ڃ)Xiy;;DNiI 6&o@)O% 1Ib tI<_\L#B61 OG/nػ\ScA~Μ/f[skt2XrKkg @3染X~sq38R?WVb(K8ZJ.s&eO$eZB_4L32*/m$UH?#ku~*`:LR55A9B:a`M* "ݷfw4@֢&O'pMiҔ'VPWabs9Htd݁N1>2$]k'k[_){CڻO~Tlfc|TnknQ'$&* $ Hޅ |_(urEV VjI&Pz -O]= R/J}`ԶӜ nr_zʰ|ms vYNԚ=GL TyU=8lQ ZZPL.Y-C4igFgޱl3?|Zg}E[(kr׮P-Mzd"o}Sj{(&:)Ns#~>)vn|*(b6rrQH4X] }F[xd!h*W"N'1h@16lѶ4M5a$:9L!F@K=^o9ൕxoK4sn\%b]UP[bbfd{c'vOyXN0A~ e"5eD@Óh?킻ɎWwY9)py@#<-qv12e";=5 ժ .rmֆqyG,W1XʛDZ nvɴN7HbI,'+Iz)D:/j c5q#,ʶ_Ͽrrvr)j%M07h{yߏծfAz4ՌZn;FrpHK6piy.cC̀Ң-sv҅ԱeajdBHYN|$XOFGel7i1cDkb*CK8v-1$@ArNg_UTFQ 9I{Gt_ť@X7+G`16i Z@5c՚_GAǦ (1SBav84VвEJ#Ke\ښ9iQlc[|X+`E蝌yC$ %h!+eaIldhDUljv? tO_|ϱWLa2=4 g64n3>&.>LWR_}zWnneqO#vcK zJԼBYֺ=*6r$D־_Z5VѺTOJPi!GV3)d4Pxw)5!4ʏCQYz .@3ƌˎ'4PmO @a@)+0F$s)R#=fe!]Е ;Z(p)5/_*s.btQ],tETDyܼ;𔋎]ʹ`]CdxH+jrH.hI:N]ޓ:=+ ܀qu#3r7A;BQ-rY Mdc=B貸$lA^3 uQ@YiNy0MJ\uwɺ"lT |.?| b@ f?Ρ[Y Y"+)<>adv^j@h驲[V s} mT{>+-5o`> VHgA ؒUNB3 VA6PTmR a}! t )xDod]>Rp4[IvG,~k5q`۟F{aF x1br2(5 ɬu<(F8Jv8>1?`_>A1f,;C=I-{HzfTyC8`ܟ?k'gZ> !C tL:}'P:neLIJ嵅#o[.I2nw`2 b2[}oUɈpspͫWv>CסOI˖vfSD'rqy=U_R]S]C$;U=+'= [flgTB~ ![{Q*]18R0B ˝~d03m+L '"BJ6 M(=.rю 27D"sE:KAQb<_Qt6LYLKHX1c2|[0U7n':tJ F#Mw^wdZE\ws!_U:kILOž/>m!aXg c 6a /0:]59U<^X,_F1w:QwO7h4X6Ӳ2#߲'i.Y/T"˲{XT$""XIG肕1[>l Y1R7ުs3j7A[1Ub#Ō3+@_b4S+-9؏>#DbEHz"ϙ|l}I\Ԍΰx07ڍ=S§ MŤ3 4 dR-BW-B ݲGrr9ռl-5ۗ&QWȖݲ1~%ؾpd~[FZ @  pBR<\m~{Zz mlt2.eq"ewr5l%lTq' ݉nαcxr?doOm3ckԛ۵0Wo)afy㍎@}cav-u2<"x[hM|VbH"cr0my4W:Q-Q`*/&9EsuJ:I8)b~@M̨  3} S> 1ɓ'eI1nOkdZ~@!BZTTM8o >cỉI1+qKN2 M6xW!K^?X~[QUC@?қ86t)ٳ,BGr#PJ1/lgIurbOŘFV(Bcc('ʄ&xbF&x{n)j =ƴ{;@ćc 2_Xkʈk>$nS aCi/+[ Yވ"|1hD fBD̆Ǩ"uxh0q "aTh>|4 gat;yKd\fCRs2};)x9H;  39v1sb'e{ŚfZLN:͘h׆eOdl1-iK`R-A'뱞N *W/9{1 e˵45Oս)ݗ3%^]CF~IkR K[O'CBܥry +s_}{Xno㶽Ïy@:y-:9h:3[ub83 ce;la{p?dH(2 S*qC 07AߌY$ԷlpRw{.XaOLQn"9-^L#ӭ5!0gSnTٱX=R?wC"Ip4ęup~V[h}-REYӭ +Amx&˜^UvB8/7莵_'o(Deg*#S}͗A{Wp%&Vx*z)H泋B)| F{SPebY{'WQTyeJ^[{<)}A!^KŝĮXLXTB(-ayWz rbFS-S\;g_V%R{ÝXG@ab;`:>tUP+ Aa :M&7滦E7Lmtf&0MMӏ?Bi3'%W*[I ZڄQ㻊_e⨮@x4p3#A1EAWJRx0^U @v<Cz'SH `t(~ 'χ7pCW0vўJ`rbֶ(N*CQ,C4k-GMFmG jI1 ۮFH>f1Y}\ϗ?džwl{3@u̷j]G'+S9y5 N(5*\ȗ]Tg$Ы$+y kmkߐIui/[8qs3XRGe?D} ^%6t(mu.ZQ $I|=: A9+u<Ʉg޿r F;Lh w9{Ă:r#uJ̹Lw9mq|hs[w7ÎZnӂb#~%v-q<Ÿ* 79JCut}e3eRW6U`{:@PX-:.KH{D_;hk*cJvK u"Um[XSx}IJko/q)@;q~6Z&Q=l zNödT]{!ԍQ,%E*9F ITt~6GLd D$샷:qw>+"UK#; )O[tbe2ZpUDF`RIіriDžlS$u倐-XlbJ{6Ca]B1+h~cɓT9FE3h8KQ)?l@p dXTWE.)߬$,Fb,EQ!v|^X |"I",2KH{[wͭYD+E{#-4HhP Nu3.\S*8Gh)=;ƕ+<偐(ʾ_2-8h!sx4|끋&҃)ˇioxPml`˚vQ] U({K#7ݶS̨$kPx 8”uE7&4H`ϮM9QƇ)O۫zƾQR Au-zˇlyaoS&5$1'$׆=ZG:*D:E ae5m#mlww9W%4ek"+(Žwj1۾bAxm(-X rg+默ЌBB{Wv9%*Qx/$ MZv tQ@pZ)\YK{6*K\)'lƶ#5+4_ f}fQA7hBE/_${B-=xʮf7uJj4~ #(nBf1QT w!`ۄQ~4EJY/]TJLS^TݿpQ}x3gیKlX|%*_^Z!хEeC. ExYŮqV]hIȸ֪U>yѷYZoQBurJkGs"g%ǖ.y Bx7 F,tЫۗ9vEu6fx qNP/q&_9_,}TނiVPHײ{\ ?Q=,{zk5GCt2ngmBQmh9s kϱSB .NJ.e|_X@{nwN6FTf.I$^mtZU`T>kh)4p_`{Q!]`-xi_b-[Ȉ0S\|'ţ߿(=>{{R u6c幕Q*ae~b+ˍJpXE7D56bT^z-_AA+t&M4mO5t1NDXU杍UR]/dmJQkUU}caxF $LH[t>5I39R-E2'j& @S`jA7A L}ŃblbSU\_?$\_U 9N Z[}0a]mBTc@&;O;J*^Z}^w_=bKɱ QeG fʓV_z3}-羠A7_ů"3a/U${T2n涔tWDb!FmV:4:+vxŤk^C8oa/lrC/l3sW2^٭W6KHGfVqZqiRy{L BmlaUVC3_%4뱎}YFP,Vopx}W o>KŲ W:ѭF8y-0%"^0BjPrnn xA FLda䯅vrkm>%CPmJOo}P ^a9#c?! )Y ~JJiV.skv,R蛣 Țҧi!b sH4yȿ53L~X5dJLZm:9pG%[MM!~'&5:ҠJ=_N `XAۂ^pf9XxW]3m$ej'aȎ@~3[?j uR3u3gMv:Uj:Eq49I/O(NO Wkb;1Ŕq,hߣd%]>qK{@|L|>/TaE[ElR8ZN骂)9qbZrNk:c>րߵ9qYMj㫪نڳx9 ;aV-nVбao7ݤ_<&WDϗ"\2]HJ@ q7 OIt޾-x?Y JeR1N#F7/҇gq^rԭF䅊 #]4m&c.<$i?^/ú-Qh$!79y>5?H9VNy+.N5r=|cܓ I+fq_MϮAM;tOW9'ڐK;M2X닼|`#-(k3)+b3\@|x%A-%c0A|a?J& /E8mN',&\G=WU*ϐԫ:JE{9ī#my~:}GMi,tJ*ljW*Q+. (Lw^ fN<ꇓz]**4Iʂg(D=tYT2xF@O!,L0g堎>4Ϸč/"G چJ1 !& ry0*g0^=Qm8B~O`Nw<ѺTaP.lBepB%뗶ȶ1Hw/, ᲇF=߁ϱet$fOJr&ig մO?>MJ$$8}퓱C2aoNqI0Aq/8Ez<;8XX _wXzKBRn=,z(e݉HQٲyU'-NSKIeVXTH_ |nB@߈vP:GE x LW9HX#l{Uq^O oMH@";## Rj͐/ү扽e/XH8=.3óTPYOrw3an}+ҵ8y/VGRJIw2Jf/c`JE}R>ֈ_^1-.d9_hq PDu W2fz ~CnIG 2F )+^tDe:Y=:׮#c NeЍ5v(ozȿwDNoj;(فl=…#2[/KwlL[^R-{h" SXUH-Tu5_:pSiSt_$"zŵs ct%˱8tSV gRyoNs;eeAqEV8[K.zvK.Լ(<ݵ"IT( |' s^!9L~X &5 nkw 4сml>#`Y}MnNWcG*t[nmx^`"n7.g}HX v]Q} {>A#9vcgz~-j&88Cf>)A ҳ!O0-rIkI$NlX"}2r,܍D"hS^A/Zcd?`NMqCϣȷ&H:b@I&E3Lse2YCixWdP}8︢uPJ1Hm)SRN ,{M/^Ix4ƌbi;Mj SF@ *o~B3bzY PBnDyPKy2d[Sj1Dd7a{ƏRt`PWs/.ҥA׏l꧁ueq̐ {3$w9&=CoM<>H,kulT<„QvbA3oE蘣tdUˮv 2xP,jE.r]Ve߅hH*I e3־k*v#j<|:}QnAƻ(LDBQ"CfQTo,~ʣiQmǙ&$֤kCźqm l^90f*Du Ӌd:>2ofS@*(埴h?ђM*RdQ.fJp`u|Vs먁+j~/H,wKrظ2`GbDl c9N2oGûsuO 8lVArv5*_8Z$%2w󅇎)bͮMO3`f4m;Ƈ.ᗖO|7fm8ʶه<8IPA-{݄fV& ~M~}MQp W"և}I͟rH"PaYVi^ڛ[jGrEL2vqA(pf^%g-pSc9ϛwWWjdg%2xGTA?x$Tl-+M,P"%!^*PI{85IO0" a AD,MΒDha;t'))r=n2B6_00qQP_v+) 7) @ox>;GZ&=WZ|sw z5j V)Ltt{:b1G0%&%x,EW=詮˰hўc'9 HɗyYAHŃFVĻ*tG+et9KE(ui3kWig%:]ycF>!9FOorZks #?ҹ 'z<ā#^g$x !Z5ܙ#c䃬peUww%u *|Ac4.ǔăb#.NG{^b0s( >"mB2^4]Qؙ6P:My'Q,^ڂ'ǎ|[s"y HtG`a )-yf[Mm'\@Po -pO4<{sF\[W$g1݅_ٚeA{x5*)VUQW܋o|:BP6jj ʂNmȈd0Ƽ\( *~T7M/j $~b'Ţjˡu,ӧ#FّV=T $Sߌ"^6w7& qe᫭D8ݬW 򂬧Tnޢ%_3jB4oV6xU'CP& U1vչ:$^Me#DQ)4|7;|@ZwpZ~Y΃!MR!|i 7t8ZFfBJ8K!aթ-O4vG ,ƴ=ToaejTC݁"أtkpzjϠ6:]7܏q|-. '@y_Cg Ÿ𿩙Y}tH$ơH<ˑuui ST(0,ȟά}.!heAn}Vsh!IG\O U$!yf12?O30^x̾!*WF;/#š&k8CH񜙼W\= UY4P4?yDkG~m1xCF . u*.QFjQs.Cy)jiXoNxm&|MS}fvIJ;]T1#~3|_'# 1T{Yrꗡw;"nq荳4klz|i u^ѧ9pny\X᷌n% \jg:'_8g҈kx4a\ o?^?'ԣt * 8"`qfAiʀ~v 53ɂ3;PZ: %= 9m )$g`YgH3$bҌe:y]J -Yת#? j+J_Uy4R7Xo[ oA" #,Dva4S~˶/:1tuDz鎫'L\HWj6j :ϐT[=v//C 7Z+̅Oo2-' zAH $2Lv י|3, tf~[Xmj~w/PD`hO ^i 諭kqf0r6|kӨWƾQF-i$v=a&EnDXv+u, leر5CDy%j+E)-6$Zt{WvNg0CV`6`רܤ DPHUAC٣cg"n[V]#ڷR{I7HyӢ )GZjRF P:G<ܡ!8ƫ \ˌb@J`?L6ʸUS\7CDwZvAdGMO d}υޅ B ;d9/J^NJY&Ks}W=KJYU\.Z` t4P|t*Z,77ڈ?2B 3^$ ͆N&+:n?4( *{=^;vܮ1\. Ze'F fqC%<*YK.r}AF֏T;R`:IὩ!RaXUkΧOazUD%\s4Aݶ~9)jҷfˤ¿8 RMS&GBE&s~ٽ^1@1CW'.x!42PV$BWM}^K[-ZoPꄱIGtցI鎣W_p~&K|Cq%8":ZaGCfHER O@W*/xu ׉b]PxDBq6MDc\ p#ґ᳅<d\,?_ճLFzC A&5Y4'Dm~aFB+Scӟ)e}쐷%&#Z~Rdp>!شkwi3Ao=>/ɇI*/ ߪJ t ‡5!/Q\gE놀wzT:2`goqʵd9UT0$Ah%3΄^sٗd0<'|3_+EuYcqfa7Jw_C y(AtMХiψş*8Ȭ:Dۛ6sB$n|~Hf0qoA56cܲg5i[̞Ȑ̷.ٟ7d !+Nd@ӊBMn:h5Pe@;ͯd9GWS.?Ko"Nz&>kysJgk3Yq4~s`R43Q4ĚvӝvrfEha$ == jؘ{58Zvg\>%ޞÄԷ }P7%Cz@MF4ȱƤFeYff ™ zq-N_ՠo3emFVLJ onU 48Kϰ_9dFc99б~ c7ff$v>@zU!~-R&` j@%XTg[[]o !T$F8Lw4[fC > Y>`@vjm`@ߜYk"o Gf8;,NF?k0 x[MӜ)gU8ѵťxI ^so餅4눻^-U#"]4tq!<x64yl h3Jvߔvq)^:׉́n^Ĝ|\u&8 Q *iMF|:ӻ!Ur]t2_c#Dy){c#vq:Me8yPP5| z %fU%c-$3{R!.GSzjSL8:OdC+&"r!43[n)q,F.M]O9v/CIXXfBR)qfZE\7s cyKdX՗64(R~gLQ l58Iϊ0dG8!G"od}4,V &i )fT`T+7_poA g`vwM2HIŌ0HT! We-N: 9G5pS\#⤐w@K$fD9x.iڛ_NB&O4_1v$KрtT?3$ ⇂_~ __."mmK݆k .(8uCSkrzvw0Wiq.Y!6>-XNU.?aHXu qZK:5P`t#@+"FplmCI 3E| nw8X!j^<@G[_E Ҧz|vd~EZdشsBTBb]Sg @۽&=e EýyzJioU;._14eTq7>N'۴f.OT s#@W`/j>*~[{өAiB ꟮/SjykɆN9Q #ƵbGcMRsџA֟*N $_:e+xُk?FSs߅qLL)U֣&Z\wo+wҕNu\i[HCa}OixVMu> =#q4fhmRW{cKe_gv2? '$/WP`xO5[U1}Gv2rJLj^+F.mȶ$di"($YntHEʧ~}ҘA5K|v6 ~$0ɯObr[LIiu;tD\zfb-A@xBnM0ࢻrKpihsZ4%?9,K~x~BDgCO527~76kN~HlWNw5ʙi0UXMD# dQj6de(gm 98KoiۏU!s/TЎ0Q$~?FAom{'!2æ TzyuD{AqW}<i5~-vhAiU`d_AJq+>T+LVz.^ѻ#e_W b퓔ȋ:Iy[):ӾN-̴x'XHs:ZlQ7Ԃ%:Pc??k5J^Sj%+'(H7ʚ?fr};6T~R< YDHҌ}Av{~ZlFa}ŧ eL%~*J|:%ȯ'x3mK̢wňA#EHOoYu6QxA6 GySJQ@tߙD*J(>>P0Ve0௡flI1Ũ\u ;%Ě.l|Lly2`TJ:w S^cgzYBv#IIY]aH?ޔ xG6LYnp9x,E3mq%{7l[u)Y7=sV Jk C/%EE4IPOLfW9/W4D*LIƣY5(`ƸmUi ",\fWwzZӫ!eӾ 7V>#LAJ aO xIP9'Bf\1J<Btϫ aq0Kl#ӏ{1Y%L "wWd(n4˵⟀d+%LM]}ɐsZvOLh5a474(P~᭒-D|3Y(ʘw閐98@R)[ -q!  B0#K%K>Gyӽm8̛.KʊFf΅{^BQl5SSM)r࡫,mB Au?޶K'|(dR(i*L5>:o0?~sm:׻gT .8̊3dp/"ȝ69X'ܘruvy$\7 A)v!Tx=("TDXh}A|¿JJ)hzh`s8JZA(@óQ$].e.mMTQ) c̙Žw~_i< ܪ|k脎fnjW81=24V|`e_z>1*)b=n=a-MD2T%v. ?qsT#(I1|/ 3_/Щ(=ڕ"0Š*JxCe;8^hp?Xr"(JõMBOt&ˉvRX:&Dy]|.7LFW[ T ų 9*$",xWzBбPr"d) ISAAW,ܲvKf7w#x}Df5>ڏsUAXm)f%'e`T XuPJe)4cj"R@eJg!8NMjf&ϖOO>߿g8H'_OE fo. ;nG=z +2o+K?vEl\;5X-m/V`&ۢdxJu8tanԞu t_{-[B >"ZihqeϬ>hU# tOͤB1(2p'Hyei+9+'9ez$;;űbRreYUAW)]_FI>xC x}\)6x))oZK'P^pdHQo8B?7@o&c} 6+2mž]iL '-i+9N# !Y,Slo\gCssrdlz;>otߖj~kkՎ 9Qdg+X[*Ѿ28`x`I8& zj'ŚV<c[̸ m+}+tF8WG+!Tc-9] t'"?) wx˿yUf:L .v\*D; UIiV'ўA4|ыAcR EVâM)B>wh7l]DZty4ϔg<N.XՉU  r}eOCaep3nfn0ZK~#- f(nlBsI30Rk!D#euܣS@hp:7->H\y~h{`fqȑH6Ic#W]*w+=CUy * tHWDdZ;ѣz}圜1Z "F܄ߥ5na F#AT1$OFg",K%d;uMx2$rrF8/B󦀡ِ.H}>Ov`%*:cb`{ ODi*}Y5eB XoAl/hI d5qz@ގbկyc"7QMu&](m~ȎxW'//o[ﱜYWv})=)pu?ش"  I];2(Qf*w1R;.|oV>z|3[QD_߃X yMI$4~NE2  k"T卑zUz ڪ5_@k*x$░9/aRO3'c'oI ]nc4 L8ȘpW32HQN;s`'kcpq_„VJAco55ԵdKLC Sihn ^Npz2b+x'< G'Y\0cֹ@jz_֤vN]uuڦ{ir$z[3?1dCғ)ޡn['{>D^t-<=8{囀-^ap*b.Fۑ,NH} iދ(,'t<y 2%"l\3̔9d6eDbfsSYc—L(%ܷEgmUJ}!V7dS^-ezH oQw~zDrh\ x Ps`B7>rз痏*ٴxIj7sĺi5|93", 6agґ535x~Ԗ+?J)5Z.I,0P!A<; ¦Bm:Vt=5 @ ^0u bt)AGc]Yvt BHP%2+oyku%(`s[Zo<:WD^7T&vKqwc濛A/pzDTbV764bژq˧;I?HfU0ȍ6fk;p>ʕ&5$Ѭ Δz-ZZL"@< A16B̫"nbVס_Akb^L83{U&[rQpL霝KY4$֪ -"uAF=UQp \1$NzOOo'he|j0?wHeԭkHi 0^^5ĂZA_Q'.+Ґu,ب͑G .#L*ȠŮspmvydCKrWaNZOYxC|,±ɰ4%܁fl}FS!Ae)j4ǮoAf,#{c'泌gt!%yv1j'ik W$ FU]צ֞Bk˲HC?)S4*]Ib2anw3 -̯-ꌏp0¾٨T#@gqgȮ*ҋ#y'g&9ݥW <'& '/Fw\6 !ł^#?[F_~I^eM;Hɮv4esjk]t=ʧp"e-&h?#eF#ϳ3خPI:~8_"x2H8`Z ScMGj,[ug]tE#SB9wc] )]A'EvnRoc&W`CizsAtFj۟9aˊC%vB l`k\n+{09@尨<.Kf0k( Rڟ]'Ѣ;ñF Ӌ0Q 4w[z SزK^O]dbXxI#QN(k֑oK@YuFwH@9p_^e_GGo7u,hff/+x35N[A}ROC lKm@϶80U;j>sհ ^SIɋ.whAqU^ܨdIaD rA^&@X_ET^ؤ_?ڐnod̦,1e3C z*s*NMkD˳ɼ> Hy=[[Y4vpRm8b;Xf`0 EcG\d𛧿u7y{7ZKq^zGK{/2 ~5zv^in@[)kxgܛR: B6f%vpB>}\V^΂LTpaebH=)mt*ZR.챂0_ 6G4JC> Oz/sGTxu~>6XIOWs;M+5eB Q*B#Po4Ob_-'@y"ɲM-e i.YBߴrJ[/UlTy+"oNkrT[7?Z⺸KF*eW򞯟UTNKCB@vMڵu`_-Ï/?cu1yC/RJu !VY$"SUw?Q< )izkPIQ=IoD; ~Hzƅ9O^Kb4]Cxb׉08hoWc䰫wsTE KclL?R#s.4~ox[݋9 5:Eig37 E8-UZLdOv#)r)ƴ8ʞ֩$d<|,c1b$wk1Ay|K_P VbA^#tu~lT\^EѵD/#wx p:o/ :}1z8l73n7 J.2^%6PXԋ%>%WD^[Hb|`8|l8[w;dsEʹK)"u [qUk3,Ăb o/N5q^v1חNφܖ[uhY+$7m\ʒTƔ=A(p97EÏ[!Ew#Ui}_a)?C#R’V05Ei%$#Μ L= l,5\-քR,i@a\~!X#]b2\v0&Hk\w;5o}ˊj#(jo VrHpk/ VNǹڢZ^U#VRq:9{`0FIjjw]`t0AVKrumd9Nrݾ/K|}}} pЯ2g-FyCkt|J`RyÑ45KcEPYC\~Q-AYa+w J3S-T/.uLVAuzF^[S &lQ͘Pj& #lAeGU ,X)>(8sEB4䜖>09s Ad~+ޠaP u0A캉;t],.=(-Y2(4oWpZzFVsoZxio~g3Bɓ)NiCl}N;DLsWsMuD3=U=}%C_~s峠%HȌu1>| >v H!sc(?f*L'^Y(&*Qk=#6^oj{{)(p:186i)ON?kz:rb J@N2vPʼnj5ء)9JPǴ|鄸/0l\3Xz!ʸǖcH3a@Zl;#q~XJd>ow|Wnn=u?,uњC#µ|[X 1 ~[0ӮSrY עAC}粬W9{ :LlMҍߴ`Q@J  RAh>1)/hiR DW6>J8Jx9Δ]'}W˙Z~;o* 7E$krhXƅ{)A=$4s l%]nm쳙!kQb\ZbMai~[#M2/G;\ny7Yc)|u 5+wv!Z'Rrl{˶e8W,2,#ccreDdÙSn'k,Mϙ''@E;QyLuċhߴO-9KO5ֳJeZQ󪸲uZb86Lg 'YM€͜KtD#%V[3$*.$nf+lʍ ǪK~\ҺL\ڴy]ĤԔG*DhQ+Ʀ N"}IeX=c*2߻[H{+ų\wM=ޏCd;yf+MVvS2z$GưT}ƙ7,Ȉ+d'NG&(6aASC,P)UFeOcYsr҆ZԎjb&YRX޹R@dVnt %Cns õn+{z5Ǫ$Pux "΂7 L; P>5}H.;T/rq~5yW৅3^㎧Nti7wqb6UHdmc{P)S!g$G\T$B^'A;6 ]׫JSadpC}`jԿkg0| q37?zd1C!s3\@Dög ~KӋV%֥G 3y=RnĬ%k݉EBp5U0Or׳u#bYѷK+@~$}Pʲ 7SL2B(!A}%:HGZo[(ٗ33hu'wo *3l|ez/I3o;Cs.H9)\X5XZdF&a+-F*$Rj9v d=YF)kRV0ɧ+$IDpcˆ4'y\*"G0M="hVjҡ5SDZ7pE7coҷx>w[[Z0s0M3s'Ʈb\䲗kuh!{P.5)HSXS jYӅ_O7+JBۆ]F]3i^) D&ëbR3a " mTVC.o1?^iZ)oہA7 #:!oK1d¶;Hy!!t7e#=7Tm 9Sʾa(B-O[}-vqR62עV `HT]Hxx{'@Bb\y6u%S]?"4f`N8P@9(}3Mq>j7CdDEL GVXRI`U2w2Mf(6/ݫP8c*m?1YBSw68*C) ;kF;"=D kwŴ~+xIk#I{r ~*n[iCW|!iw8B]{灳9hPCRooau l݌F V% \L 8.+t2C70B+5f߹6?CrE<ˆ %2YopW֣f#wPUKX"VCVa4$ӬvR}?Gi SjKѭEt .+kԘŎ߾a5Dx+ =Ȅ/DolU'>wgDZ{NNͷr8!Čwֶf٥?P5VL_8!i1H g\Z2l7m]y~:Ov$b?ः\hFBD*o w 36.;qM|qOo#{J Xl/'+||5 ϧdo 珻dAcA)R(GNBuŲ ۥ!|˘b+*v!u,\5Od~٤ès.{zڑ0 2Фva8qmlc=0Yj%r]U3Yr rMTNR!\)I;Kw7يhЈ%ޥo|  '.9[ým/nT_l^%`@I!'!㧡:U8.70Ib24Z&w^_p0Xz|d뽰P6őqrVוgT~ɲ`s(0ظ0ˤCJiL]FA#LҬX$Qv\9FF# dآV ^6Br6'&|: 3d@ܳ\>y}) ™ٱ'mlK&J}V{vOsX;x^UԹ։zNXԢl:#H9o_`H Z~39rEJOoTix=5-7 RZI&Y!ѯr{3YXѪa YO4?U6~s]$#LO VUaAlrF)`_is[ }dZOluvG;Rq^~ϥX]X=(ζ-BteA|qJ l]S~fۺڅ|{E&O:km"Srm¼RЯ^\H3Y Z<{!VzMJjB#KF-e !;H7RdOmu֝G#uz}$jQ1T}f5BD4z. c;O-arW'$#?9'{'ez']‘[L՘MXdQbl*i9z3l:&ƴdmeyk [=]cL܎z>Nr0 ۶8]5zrҹ2ڡHܥDǺs5.`%`V,;phtm&kjh~r=(5D^Hv p,x"{eue(n l0pΤ8"mj9ʴtIΏd#T/Z0^=OXcDP.[){`akK~į1e'?:X(}m㼐W})00 <+xnܨ.St@C!$uF"Z-Ü4,Οt9)FIf җQ/\{uG1ܐaĝϩ`<$2~:30iD%B﬘^vF|I4a.[Xh6$#t7oN8'ajv7¯Q|-oS8\u/`:eG' 4*XRd8+apF~'ax K `{jڌT%fpj'jR ?W>"bHG1D Z#^BDû2TA4= Vi[(Meg5t@ޣR}}Lu\K4,˳\rV¤rOQ裂8-ԡY7Gzj6q!"w6ވDX4AAj,: QJZky ~ۈ'k۩`/@W[t]xu(G<~ST7O6V8g}ؽLb6Dzc@QggZlO'a 2 Wg-Y#eDQi8 ًkr1qXttGJȳZ'g/#au"MظNocgfǝhaB7O6lՠGdzc]'7q筳I9^z?S u[4w=W=hXT'72Mfo̦@we0(hW.^1]X0F7s`Z8h1*ZÁI*d: J#GpQoO?].ڒ_k؞ɍ 5l*_%#rf WIMV_'/;ٙ$v?Q{~bN}e4#ʦY<߂ֿ|4 Jy"\: D!hc>\ 1זh %au5L n/}P{WV ;Z+%/fsqʣdT\\5Z|:H |Or[SobrK\f)nF| m ޒs$[aČ!A Ka=hЅ(1*,z%B~l]WMhA*aL- z]e Yg 9oN=PU\]opJO|nY4sG Jr%9 Us4%F%9=p gVI.5wK.MJ ZrxFD(hxl;D`p{]p@*Q'霣x3a8:BlnT|K{@V=ɃygԐUB Lx9^Xց/o>}]H?ҍ?ߙToG_yR7Un$y"(yK.xmj}%<֐p8ʔ>;u**gxakَZ3trc&sM_q=?v=Z8}4"]!knDy,ɍkt[è VЎW8낗:A67ΕZ޼uw}]-`u8:zma5K 4@aL>pJPIfB)}Ŗt[9Ԋ*. &<˸3#YO'x2<.t'tE Svʴ@QӯR!EV|"`OJ ws˟> ZhX]}]Ԍ ?aSl~3Weۦ pV/T`v~nD g^AٞA7LOYVgM)#B@o?i>a^9QS-J1 E]pΕqR3ٹhHAFS[ۦ-j$#mLEӴ ˻^bzK+W \2ٺ:V͈MX?l=@+8 Jh3\>BBZhE Ea> $Dŷ:4]mtU)C?[ AAKoj©zoFI2U>/ l1VTL]Q vB>ŪUnPJSx[xӉU Q>2NƗ b%UT#׉s?  M8,/bayEo#?A ,,AV+kE$VP4|X<~243%[пuQX+Hg'YW9Wc3Av~@C™LW>R->0]jEw}kF2`[Q'c,!VsŊy߄t5iPe-,w A 4Jg"v3! $}u3{W'55^}~!#J``a׀@ ۪Y-b(Nj[G m qEjd @"e4( Ҿimщ˖9B8JDQ<3EA8dm -F8P)y},H1`AK$(Tz6zEAY")9lpsYaN$S bZU&ASzKN +97571YF+_g)ƬDJ }M+TpPYx9< n DU,Uֹ:v| 7R=C3\'h虈y7agOP_pwabb/:iC÷y;mTnwi\BnҶd?kϧIgV$P:BtX(-{i"T=|O>L}Ӎhzu+2T/v}P/Fnܟ{g͊u oft]Q&jy5Bheq@h>Q2ǥ @ ƾla^{Ȥ(lYuezT#8H7]+{`*2Gxξ > ;QG0F!o-^+{`rl|BC[|s؁6i?N$u+=dd4nm:Pw= GW,8 "j߭xrx|5~ Qy*tD ۱ֆ]4$%v_U㝍4-e*!3`ٝ$hZfZg<,K`;`3|5g"L-K8}0 eUrO /,GUԛuxGZ/ӤgFc7y_bHD~]!#)ƐbUy9 ꀬ)R5S óJ 3."uٶcCC;M|☼Vְ0=iAAaѐq^-⪌"4 r[a˻%QF*)͌眰~qDgZ@6>V.MZ"mQ~K2_M_B@qw~E{(3w^^Xwq `JwP67#rBQ]KbYܯRYydHvR!3ŝzԄto<0%pմN&O=+FuuTu yP`J8.@/Mp<Ȫ^=܃T7ʼ;gnM&*oQ[GRwV21VaXBe>+#. 3C!֖ȃMl!]"0݌@$[Adc'^Bwgw乚ϭ&]$GfV4D? ]ؾs462g|LbH J_нCѭ˺&`.G0kZ65E{c '3۹zdAJ8i?!%^QTFXuo*B"m*u.sH؅& f-Ё/860v&Fڿ k@̘Ė>/;`FOQ] isǻOs- I-Z N]{G"j7{ϵHE|&P^U)6Ix:\rnf2I~gW!i}`Ǽw; zRuz(Zx3󞆱wPZdrjd}lQ~ZoȪhKvdUvY8 y@s䖡u!@>}_2 B}O~A8D%@"`#M?r "3,CؖF2rC*OJװP%V ܂ηsYjDԷg x1 `Ww]G*?u0vgݎ:6e3?,TE8gTl W7]6]P_jjfYrI8š`Oi?=;p/00[΅WFRnW"#+a;zW'5mx3 1Qo5cۜ=3&\5³ s'(wTsI <>ڎDld:"N]\/w~Į#x:*aҁ\e3}ԼOj{[J*d(i)DNc s-ui LFW( 12\o~f31zÞC#pk(5{ϏBu\AV:tP [A˅ZWN\k LYQώ3utE?耕W_>¹'PSHhE3}{##9H2l00V`@bBǕ˦)P~[{fz1s9wZe, 嶔v7nn\}C.Os4֕ 3-dIL!|4+X%DG$ҾjۣC TBR RՂobD-FMn 7iB[<BwZm GAhx?L,k M*DE3Va}P6uLE*#jOӕ}ݬO HeI+dkW/0?kц C>̗>6Clg>e~xK!3DgG>G8Ӯ~sYgA"bl$!ah-:eJ H`aD^4"2 fcIr 8w@;2][x/<=(\W9\${4XtrQj(0a"\wNĚGͱzPM_^ ;yF/Q#. %.Ze13{|C6IHz-$X]uh:㮝FXxcKkXbwQI}.T ypkүÔfP.Aaˊ@^!!E38(!y3U_RXů O/fhÁH>BM-լnB$m(/ECvIu1 S ENtd\ *ڸW).fi+duL =Kr3gTg"D7ZCL|+.'\}Dd hACF5SL55o2TE{́2̒ש^HRsU'xXB vЩPlEG6>ɉ1 th{$ s]JZ( 0O[USX_z2HugǨWp?=r  ˢ>_/T/ tuxק F+Նb&9\ȝheAG7Ni9|cچ4P*gg6dD`"{C~3_wvgZ3╜țʼnmqwH`͌716!lQ(DQ$MNԍe .i4xBk=zؚԯ3 3V-#3j:=U۸T%dDk wp[)Ɛ BX"4H#a~һݬR5K| Xf~қC YJ^w %-A$"}s/]6w>](azI=M9qFy@L Aƻ|ʢY>zܳ槈ԑatĠDp|zjPQf+xɖRd_C#:,2ypBu'rQUU?/93/UK~jR*a_SnjADywuTu ͝#'atp"mԁ]٠iOHe䀣IYdl@wAFi,*A*/߶b~A/^EL}!9:oq Da>h1@Ac] Ԙp@i װI#(dL {@B ,_!O vq[4] }pRp;c2ɚ1,4BʌB* mRڃ3,Ƒ3UX,"_͢,Dܾpheժ l!7nF" k9PLx*DSm@KS*s'D]CN9;䙠mzۿ;.S¯f"Oy5v!5M.Y,\JQ\|.Q+Ǽ6 3YJQk37llBN4؜jd&K oOӇך5)c#|@-izfJ z!ޫܽH_$TL1;($piS܏ b8n {yo bs O fWJt⬻ZRo><ƒL 0=8&%fpFKn(,`ٺ]?8Z-tɢe2%voJ1(dZtsT4j`[N>}a+&ϸ7?Yf_@&@M7qvθ P5Ȩ5)Fi^fBn_j >*^']ؓi} 듀]2%4Xf,X=)X͚9 ׿4 ,fMc(q+|%/_ƀ! 쌥e U]|f̃kf9_\w-ۚY+BqA IuJ立WuK/?*g0gֻVTr0;,Z)1f}WrWl\35xKh '}*i!eݱ5)+mgGq`MD2Y~TA8T;?CC@qf:?Mhr16@63;}bN_ZiE{a*$#*ew -$BS=@Ϙσ/ yrv\D4 Ih3}ZJPM SJiuG}2pUP ՑW"8u|nIu4}9{HR y]&0ߴ9xb S0a[+֔Xk82]]uqYTv " fWNUI(OH{h Y&j^x{|*ISVIur/ج4 ŗbj8b)%\DO=vau_>Y[*$$jGaY GCr$ ''MPM~,Fc+7*hRُL7_M1÷R PM0}50YF,ښ^F-kkfA=z)W>Z67˖CTC jVNevԨJ*.:,& ozJ p⧃|}%# _^+R˱MNǓ'dOߺeԩ!5/ &x^m~-! oO4%;t8[P(;ʁy8"[zßeuGgo#3E&!u" ".9j5k&V jf|?Kww ]H4u#Wr7A3GWƻ0u]sVt7@zF'fo(-DQ=/ *;zׂAj;iVaii } hG5e&Χ֋F$GеDe 9"qZ"C:+?sS]ͩXO=>o4CZmDX·_UF+t-=S\a1#"s F]ދhZ/VpeQ=nTr:󜤊#i[T;1oz : W6nx,h ܆\m^Eo0ݻg ۑ,]/|A)/d?qt=r*zôY,Vg\/sn'4%YOv&7, LfvߗydzWիL^, .XJ`~e2qC_yBU5# `Fy!݂V(>-#s7q!pڽpyE2c~]/~{U SY ?@_Ʃ8>%H[;Ibn0#r]RP"c1%#O+ӯcVbӓqn&ǰұr׏qDi#\4o6iN)؊7]J<3JH^i}h-ݰ \ƊlU i(c%d`Gkų AbIBC+'#)0[ &Q *m` R]EI;"͈aNQdZa Y/ e,|J\۪H J![ts4F̃<Ͼ͂"!D,"1.gn;8_Qwpg0 ꕡngk'ZnkIgݛ輗o?2҅I0n6)e}UkGN|8sw@uDYuKA?7ay-n6pB(E?8#3sg'3ljx2VFN 9׊ oJ2=rVMy(Ef[LGb uȟb49(Qsbt''!B2l-D|w$7 CuH,x3վ*vѩ-Ms-^NwK<}<&4*px ˅xu57  ~\yN} XmPu=Н]HvVٝ0,Y V@$/Ji'B<ᔏH<(n^ԡQHZм-HhW@uT~V)g+M$C G\ NzQ( a^!0{Z ԛrAfjw"#Չ(KǓk)rozFǹxs9! Fz{}BH )Gj7^H=RnD'(ٍQL 3ubh JֲYa1 :$Ik55}Ŋ:0z}Kl< j!g'l3I#tF;{:gΧP獂[X5\p%Aᴂ)!޵Ҡ }CQ7WXL팰e'<a(,OE"#^}>p5H>m !cA,ywsDv&/Lsgـg~ʢh.&z9w30]i? TW)X\|]vM+FY3)cYܮ ߒ>$IZS $dS(gFZOSz-#AeG89zNt7 %&5bL40JmaQ4flqwoo .&&-H}^!dڤ-?o/;UUMq¾I`ttSԀ\3P"(0#J="5s;pEq ۲!=5H)UyBEb,xPϝ= ^]h玆~WIڣ"m^VǍGHƌaT4)WP CXQ%t{:IE17+8Ek}Ttǖ.?۲eGn p/L2[S svFN:W'6T6I2@h  R QH_I>FNj~&JBHW dꯖ-)O7+Ŏ~$o㐓 ECsS .yV.Vv͈;a:"~Vm{V!.n>K.8M,1#S#/mX2/"G©fy)9ffz}T@#ݻOZ`} 9#'c Jr&m^ô%/leJ3fٌ/t+zZp$>ϩ}?ć]+{ ɯ^XQ"@Ax' MNl%jEk oAh#3)N+O`6a֡|0yu3!i>oڅYJ,)Tgi P3p*f܄X~j\K.-{U,>&FgFH$6ȷ,` kDƥA*ZGR}҂?J5S~;P >Ogh4&Sك05UeKkÝgOqo=@9:^ZDpL2 C+dn(FSIC)|gHh v3|t l n rz寬$[5d&`ob8X(ٿ/Q[hb;j9K5qnՅ^(?U13 6.@ #"eaDڽk%sJ\ S,?Aʝj  ]e]\n-=*j=<*S<~T Xpݒkav63} E6paVhXL'' -Q{ز^)Bz&-I?nj&\W n%,p-^NPz/e>;{ijY-oRJSu ֞R< D{7xJOQΞ Og?Y7AYNS$|$Asf peחP4aR ?ѵˌ?bЪxPzX`#4-h#:~=֪eq5N\,"\UR4)| i+zjq?ަ;НUDͰ5%ڶsA ^3g/yEU0pCU1&O8yS:lj|AuVqjvvKX&h y՛k.6l0>V] Un} yᴓDbNܢG/7Oɖol E/g3Թ7 (xc{))֘MR'v:>p&]2 =~M@c mz~j(7_vkȭJqNpEWv0[F٘mP~U&(߃ ~Ɇ<r]Jdn4ڮ<7~D=1PGaYW sM\\rc_Ih}O{<_o-wp9ѡ=Ê6w'iNv!.-z\xV޹d?llV@)(y9YR#Zi`қX| BgF&v7)ۀtU kB( {iόB0jQE/LT4(-WU0oX1z.9 ۛf+I^fhG=2tZs=I'Ŗb˜A9+(g&zo#mp/Ww7{|6MI x(ft7E!?ٹ}^i7 v$K-$.r,%KF~ 3ᘖ?Yx.},Зg=a2_?j}*cu @#VmFh2px~+Tf''3A%e iR!щtOLc@ۉ4e0fБlǒ {<5kL=Tx0%8DuCc/pZvZwSC()_ W-k9͸`1\1 Bɨ}o)`_phvːst'Hj7mGLxuşfD/0ݱQxY֜z~`j+-vFp!cX R,ZSe""z|MLق> H3+ /H9*nuVaj=TBq#PJfv!Y{/s@_#KM+9>B?s@ ?@g-Fƴ]'-٠ ؼ N͸Mm`Kk?Ml^mۥ˝%~3K/[B _/~( ۾O&+~eIJcsFZ58;@Gc/կ{4|p `2!0o}X{=o"(]F 7}MYݙb]].̫YKv!&.X¤*B-6_u7ʃ"BqLgpQ= DVJ;9|-TrRmn̶N!%Ƥt`jme1&' Anx3 ތL*rwyLKȵ\İnҍ.B|<[Oog̸llmERM(vhFǹmX@f!e݉s3wv~aY{9U;pьoLP&eR#C#3{t>c}ɯ*ٔt[`2k$;eCDYV,z(u4C0 7qTOPr^#dlEx0ުmz1C91V4ባhZHF(KZݠXPռB6U7+ߓcxʋ)B/۽V:ƆʾN tݑ&Ct#ZRsJbL4p uՃMϞױJ,( Я*LFK:4h 5LǞn؜ B%Ο>d|pVU0;8W wcoj½ve?QMy@DԺ{.+-&-𛁻JC"w"~.&G[42vȮwI P2vxkqC_ZajJ;F7x&` ˸1JI1QaCw֍ .Rɒ g kkЊH^Lw(f 5.İƔYe<+c ˳}l%OT%xT=dhO(OXwRyX!͒6Y|>38*ſՅX ?%fT<܄)d;(uvC[O:_[VGI=+~/h :QcլX'c1PI}EGh䉿>QO )+D'K2g yLO;΁Cktot:a'&2a .#Lƾbe[$gcW*ܵ#hZ{ 훤EH9V M.R%-}m_/tݫ=u-nײ2!1X w)D?S&eNW>XKr;7^ܒgʈ02+3R|D輘nWW %q%/RȝKĀ"Yש5*4H#aưQO70^^:^۷%W`ʵǥfmg@G-g͕=6ǸQ-D Fym5Z$_ZB"랼8L=o5ObV4ɊO5arhJFm D iU`.&#[C+,}!§-LVM9"?cT X>Flƚ<@ Tk,pE) \𑗟3 qr>яGѴkc.pWlsӛ!G=:Icp^V#d,&ɿtO}vLQa2-Ɍ|"e E&,5`!Y {kr5Vw&)dqTY\};P8.7j~y ?8v:WSaOAKĮ3|P!5l³Va [Qz\$,9J ֋`[IU})" i{ !VZBuO X`^;33zoIC[`&T,$]U1.^` ɵ Z벞N]Nf{0΢N*af75Y-2=BIff(*;'GLG0돫K؞WD?9\7F &&z^YANm2CL9%GECclsU:!/f{;:/]Q8ؚtF;V|~#TPao].m͹W-3/rFsy|=D>ZMJgп@HSXbU v@[="m𢻐rP^ (ֻdm'@Um#ji_:RiZHh\ñ@S [cGy  _KC4 9Sioسb+li?u*aOb(qq5Mk-JЊgICa .)TK8@r@2 Ѐ!DSMQջf'Ea<ƀ֣<M*W|I JUvv-grl x-a#* ,4}d7O~pnGEƑKW'iCIj*1`@JbK9N\Tm?CjdV6!.$-zڷ6sFHU%85LIxD p;'?%aVёv-+ì[ aBw퐾7Tʂ_Wxw;&v[OC$ĕF6Qxm9>%ОUdÆ7 *Cmd T;IbTCQ+''oC@kQ5h6:J͔#nȈn!Ç?Ӻ4&U9}s[B{၏.eXA+ 4aX$((IP%*nm8-Ú3ۻ9ӌ n"'kXʼnۤ9"K F{}b}H8~,*DZ,]^v;m'ԕj R򚻖ݍ5͞?v.J}DfWܕ6z~0>o3E L,>:xU`$}{ș/I/uQC|bZ?b6OC b\~)ʻj?Yf71LyQ8#J^ ί^sm@ebvE;``ZlBT,vD&!^U%y=IYLfJ /m4B/\sNәyUX (*^IñnT9o@3r/ L+gnԳ18ZI rb}xGt0dHnT+-7־a\>bF`R"!s*,~>0H5!P_Ud~ ÌH(gW3^g!- 0htqx@vJM#k -7#EJ@t/ x$qq6*B5c3A/[[ӯPV:yllhˡL6?fk+ssN.x1usrRlڕj$M*,5O:eM"kya*oR\-LhO3Ԋ{ e`t.)OOK&(6Unw Q(0d)gW,bp?z=EOAO ?# qszVN>>޵YL/Oe~a"~>sK)# 7zGp-Wo~C@ |#d: ZΞA)Mw͵OZSLNmJg59zP+z^خ8BFy)7[:Qƹ}2/ \}LY8sa/r(= RвpEg)#d"یZ#*CM4>9SAg S 2#eKԎȇ.zҶDжf8`ѓ;.ɤX x90{29Օw>;ED|&LʝZݼ;N 2هL䑲h_&\/]T7454hs|*:-`$i 53{a$_rMLj c\|!t>[&z~3Q+{ `BBq,$Vd"N7oE7Gs1x N0oF g#[6٦vXu6L.{{I#^cRy9&z|S]X_CBdw~W)`ģAcyjH=oi 均B[~iz3OV[ԧl.ʚVNh+RmnRAg5<릂*9Q8q*8r/ &q"[X DG`wH.Rި"GAbAtW4;fnc5RE;g$tg:Z6H{f%_!68T6JatWlXg*TWs5j}[WԢz.;ziA>䮦oFA-^[#"a".O/q Ҧ>X1]įXG4?jQ 9D]}awBZ4`*dY逗AZtr$5ݧnQw}[_qg4);e4<{T ʹ*}.VIyW 7 RΰҽhW+G晳&_{4`_M:'*PAy \=]-Kb}9xSvj bHfcOXhwd)X$d^;n¦tCScS&K e aE&azZTT{=s*YIErvC\} 'Y _2]}A)F'`de8BzH/k`/m`M젇ր[|sB$L?TyD !"{|8 !lU5\zqqh[v ؑ*~w@]Yvz[{-#cٞۺF~Al[1-q\~_ ߣw:6lv}v=7phxzGiR(80@>|X*3rܫ[.ӧ(.P:䓴j=ռk5҇WHgE&/fF ]~f9^ />@.8}[wی&=˪۶0Fݴf<;J,#Dl>;zQF}^OU:Z:>J@~_Y6[1E?ThHjW)-#3|s:IXsbobhN@Lug&%l]OoV1cTu &n% 0m"◜s({9jj4l] hiIb繸~N"_,(P5D&&U;}!<5]=$Tbǽ*8 "B4+dV3EY$j$ۡ> $?WXqM?d:X{6knJJhíG&GKnŹa#u<]U8>d}WvZHb!G p&%&T:9cxKY`Ʃ"3EKc7^L] Fҩʳ/E*avbn)s袙gQE%!3S1!yL|C䞧9 >&݉E46:`rP9C\BN2|k+ke#6 >nAYQF.`_4e=U[Jv5,s>-~a &Y_%r&~U^e{2]Z5dG]f,{ A6Jaac]̠'-2)Dz@@p;UǨ*§ R.fFvӒތF4L!i|.><b Ҍ9.UIՀBn+hN⍕ Xj^n\ɻTb`Vɷ}{\:l0IeQ {*@5o^`~ȰJ5Y>UAa(o1h<)j͖G^P4K4BJҪ P8eՃ)GGEW5̏`kڿb J"?\9@ iV1yMkFBA"[a:?UCoF8HH 0g $/Wr7낲\ExAmp!ȴ)>nE "GW*m5tr(VTHJ,_ zc%> \vDyHD3~IZqJK"&lE%K;T'႘+8Th#:09)4jW.fxNpe?&G8~ꄜee :̘ ]^GÍu/)Q)q8a/I,G'ܨ%u(;sZ49֯72mz_uk-Bwې*0@HD(M0Y4n0L` ƣ\NOrOy@yV&#^êۂS~xO@#@5^ 芬gSt`wZL b%7tkG]U489Ú3E3y-fSwo$qM@5"5a d!9v|VK(DhR+˚}gxT$>D>#o/ѩl/>E"43+r.m_Lh_LGө o|6vC8rYJףz. q%op4,"=ݿs(Ş*lgrK`Q]SY7_a2C(cK+Sm=ܡvFXoi%I nPT؟Ǯ`)ɻ>Bw:*1]#׈!|M1i!-n}qKh0VJ33vziwTG;Yx9me6 i/h@'|5+g_Ka_O)?HҢoR"wud׃?ͽaਇ~iuO 9v5b9%m`UlWz(~:I>oWB%^#J~ה39fİV9'x,ua,~횱 Wlr,t`Uv'z ^"uıb] H_~oPIŗTBT4MQ2z޹|~!ACo7~v0׭1!#Z%ngE3"bc^Ϝ̂Gͺ2--[ jH8P2i˄&uѹj<#GJ~B4)?& w{Y ! sاڭDDST8"&(C1ը)8LIl`DGu$" ~v(8-xIh̞ mKryO~Y3 W+ynMY95̳n?~ xP4E(vP#ЌwS[,00e_G}u{N%r%{6PQM֋H@@m_SjE@Ͻ`PM3ҍSv8XUvlQJ߹ AX"T2[.,6_RT!\]]UiK3S ^"G tjLS"J/.gOdyx5VZI<%szL >qC6r9T:Vl [[ f*Y~ͨ-@u_bI|P/ł>;8ӜK%"d>tpa>MJi̫A(L2_pSXyGܞ%9J𬉹[H'˶2~uT2۾|Zqj'#]c@XR,\}\Ae]X|VkkX w{o9~KP@˂=dҠJ OJtTv\㭡 =%j=ugi3ףٌIG=xe l7KKgQrIT<~,{j*P"Fpvt*YBB G\سR{lH)1WoZ LcNwR XBIݗ'gm׸IL7Ƴb߱~! Yw^m>ذMYrBW-A .4SW9uZh.YR"%%rҥDk`~{{ꔙT8hP`N0?8sܭ+U$Τ|w $H/6—LP"Y\M~EKJdK9^tE8 y=: S=xmKhNP$MbOR/`ƒ?DOS"˜J,[@G*/_N$QqkV= JڎϭIk{|QJa[~2cui_nIUB95r˲/OF#!4xl|f4%1WNJ R+BLDžGm|bfBn/  k@$ e#/PDũ ]*lrK7CcuX'iI;NBc}`f@_4- 54W1mQYZc G{LLgBr1i-Zp@Kmޭ)RZw@QY2`:g[cbubX>4U憍ld[֒/RIZЊ5<Al%^u":yaG[C"%9]Otw(֎©&=4q1Lp;*5Zݮ<?釥>mn,aV4,?)5WOZjĴ=ELO52ɴ{/(-Gc2`Tv Iʩ`іpcOEWm=~;ӔgO_O\ՐoL&KhzF?gXnG`(ubN9`\rIZwvD;ѣr}>ѕEس'Q +lz)jCjjˑ).Z=l  U*.8N{  fRe\A.kx4G=S'O-=be9cR7x;ęA*cmK& Gd$ -&,3isH˝ .o.FsW!6a dh$<|?Qղ:i:vWEy'e 35\bk ;լ4RF6*@cϹ`hvnN>{[`ɜUUh~3 &}jԽ6z޵jY*n1j0ネzl}-2be: Vs2ِ{5)7ğ4bš|gx fijzxɊ]599>$iR|@v*ΙWH'JBq|+֎A *|Ea Ŀ:ukN'4f ?NޟxQOk_XMҹ#|[;e:@N:1e}s>7N ќ?Xμhpϲ~NBf Ry7b6Pqe-28;'308(3KA϶ ɖA@&f5~R<.2ZFܔ8-1~4oFE\M(VоEGa&,M}R MW-FY뤈Fņ2]_g1pIA_]E;$l cq}Gad+1|#}|y S.ܭ u<0UvP*T)r1 bE#a't^s0TXQ;%n{DG{Eʮ6,e+zMt**W D\^즎h8jʽ-qTf=XeF>'4~u .JXOT<!ȤI>˧ēZw&z~<KDS׌CE81@K;>*OcGYt@"~`c5Tד ۭ/<.K=f0ʃII ]݁aW9Z[22FG>˸C,,hz%C/LY+BQс}+??.< `xp¯%4Y8+d nuuxGD6Tn&bƎgX0t؛^+޸:熧t$*εfL&=<Yh< xy>?zbD<l;; y&2P-nsЂgS4|Fgc7 z'wIG\e@⩽wL}^xm{xa,XG|u?]t6zaBKylXD+ƌD${rE±ȏI.inJjU.٤0#PKe]E~"J09m‹jfP1 {MЀR.r@Y;l$7wiMl6mfý|Νv\@fZ \aO^}<4viR"gCxڽ?N oORcJbll)]Bn&}K\ff;"MeyI6nğ%vJyM)Y5C)ݖrAWuI؋eO/>g?yMaMQܑ2U׺&Wt<80 kCI- \#VAAxE-k ^Y~Tf*xHlWra!KEƆm \5pZ0dN,EҴI =I<ӄ%>YkR7RYnisnVܼI'BP"3(O JWqVFl 畜t=cmzDD>?h~vm<.ٟQg Bҙms'n82]j 6aUF/^:`'BY8ѕ>8.^V6/6* f-ѽ5v^@Wp'QozgLl^_/ fJR\V:WR!뻳'sr."%5sOl## o 0lfP!P Qks`n5nmAR7f6BG/ՓRL4LA}ai00ƭ9iƭ KZg]sR(c f_|LM9R˳KChf}tyoCS^~RiѠi0aE!vg u2^vrgQߡwv~{7+yl]%t ϲ/8etH:}x ;KlV5d N/@%;r՝0yts(?u66\ʆsnT 8bPhl3Ƣk%Z{e7q&CD4ڤITc3XfvV*r|"pzn䙆Õ *.tzҊRR 2z$>z9]9=1@wA TXNQ㡡~%\dFb HJu6Y= :(刹C azÃ#Srp^>lyOfncp:[y= ( gun?׸mL4%ۺGp"f#<||7?+{Gʲ?˞#R*o5||W^AlPyØu-Pp1J3'VOX@SK=MWjnkӮuw0Ŗ'\Og4Sn3a9N/)A(1˖+sˑ?4Jb9%F y`(4v);,^k6n1_Cx<*_q.SxYnh]d7+7qש"Ly * zP9 .ߑ|6f{$_R :{CVkP:X|dB,owwvShWAz -X/ƾ,cGJm;^{!ckO]&%&`] 5@ZW]ИzZӝ]39qDBt1'h ٲ]m.8'È>3˗7e WEU>&܇Q"iP.5~48yC;>\ /&P|f>NE,/ZkO*?N>Atk7G:7ItzsKg L޿"8[ϖؽd|" 7Rs"ܗ"[`3_ʩ5T qԛƋj:VAs: qo^C`:8؍>CYl:9C B1A\ U9CTUd]%I:wz$RUgk&w^0Revs[N/aRi6׫{.t'ǁx 2F,fIЇmV3N6`&&>W6 +q@|u}~,sdtfUN*(/_F5qlqt {SL:RmIpX_y'|l}=S&jc{9𫁵 ?K}7=O0d}|R +<[F>O+sl޼Y'RipXֽE=[3^Z=/MueGU!@ƢDU)I4uZ7j2ϖ%x@2sZ3O:IUN#ۜ {4Wȫk)~}FܽjG^ P7 4 {fdc"+N\Kw{n7PUVZW QPRܾٓ%6ʧ(O5Wn#Jp8b4MCQ"g*K"IZx^M=nHHXD6Rfoq.1XJډPkE"4;ޜ{ KXkB3ƩKHwϽڥۊO )f>FwnIQ@R Dn7Y0hjl5>鹍+Y} ] fjnӴތ9YRFvaݞ]ȉaP-޾0S&߬񆣮ǵYNx .TW5 R#qSܹ$IZΚ@e2 vطB _C8Ot$ݛ E7Xpl^ ~nP؟I"ݢdf6tk\hMDj7k q>CZV x2#B _3ty6Agi9<(,=٦A<32OIPVڶ.&20cӓ/ɍڴ\)AqE(xTSl3E$E-SbM\n9@yXq`rkgfR6be#gF!ِ'tmM㲜z/_n.E:Igo@DB@n `Q  n1APsX7Y:2߻4&DD!&UnF::pM'8$Ăx׉(X3}عOe1.  զ"=d]ʸÃ(o%lE@OfxuHE4!fNSFW=}A)W|-LV [nbi |e4ho Wǡ~V h.TI5b.Ak@rO / @o֒l- "i{^dT@˅_()xPkDʕ4EH6kWʺG՚ì㞼 d$bq|ìm:m6SE9״k'Y*30 gwLmC3{u'bVI8g|4>J_VΜQR\,Rw.@! 'Ħ( V#}EB[fk:]JkQcCA%=@bRHni8epPr6 x*zB+tLkb6h.+J7q:E 0 ;S:?ڒ]`ۜw+K5Κ[+0p>F'b2s8yU)W];)}"ڡTI0-/a? Cb%o,y@`{0 ^jɦLȋ4sL. dHj gI^g͒zFyCS$yv1[Z0w3~ 28⪜񲱍U'n[$ uy;:¢,^Y%p&k}xuX DZ3ѯ}&AuGsy1''i4 u|Űoq] EU檋_Ԩ n@ Z =qШ|04+]SJu]yPA*:N5wj4\f@C91kYJ0 Fߘv/[9 - ^6c0Y5X/c acS'y HL X~*qi/aGlBA4VuoVintub彰3nvhCҏl[ڨc><) @8.q:QGQJŤUIw8ez(RhTXbyHd'AJԱx=PzH.pt@`Z=7r)ybOl+FDzs­?LOd̕MXjٳHh!q*-NQшm9!w 8ES+s[̕}$M>Go!c8#mҞe g42U~yڞV%$i)fBҵbI㘳Pxݼn.Bی6_.d=W;+a+%YSi _q>r\A!9j1aL*c y1^܈; a3ߘ:)1,j VB~1V6D;R6kqedk/Y ZA m-:oWg.^7I-p?:7} ,?ddEa>VTF2L!ucq  t[", h\< `XQ1(* 𾛥vr}><r9_ [Wb:C׾X3z5Eq}8;|s@ @ux ybIFȷ`ka"O!AGUXawI1f6Jx#hW) Gu;w7< .n(TX 'E@ʨþrZ'OĪ4dGwG;BgB,Uk,* Ul`@1jӭCX7F2P^5! QR=ْJ;#x xfhkAkXBG*BheWg!Fʍnk#hsLbS-/nӯZĽy >B7B`drQ^֞]I:궑+ J(ZQP(tLkԟԑ{,L ~<4Ɩ.CpֱnF!dcN+98Jon%&Zb~n ,b AWykq3Զ_ C/L6Rk B j,$0e Am>պpxJ]E *IsVA!0mc4 r2{*-&U)+ ^,"( /9j9'7O,<ӑ+.[㻄WB~fׄ^ i>Äz|j^}w3B7< :(WᎴذ^HsV=+RF֭ͤ -ɋo-bԔ3ggsIɴsSe V^ֻ&A|n#v8M~9 oi*}2!-AT\0PW=FTBr3g"PLI LLQ6unn` uƦ'׏A=XˍȜTH \/ݔ'3&jfYh$Z,~_էRE @},$0RPdw=Q_۩BUeJS#fZ#U\L!b`uZ:e?mtEP@vlsjZIόX."oa 蛑^2 DzdQz#V9|EGaɲR)`~Lp5Jֽ&k= X1; LCC]SyS4W UfIݎ-'k*,NVbwm?Ee2G@`A+;[{Q*G0 )ZveP-ii$_2+g\jҩgE$NOƒH>˹pV"yR5>ښ/ %OCPW51EjSk_VQD'7fN* @FmFMMfndCo^43P B W+uޕs}_>~GDZ_R#t:љK)Zzn Z!c槅9Y0N6 N>OfBiBW;ӐMw &=ekG̨m|cu͜@ْQuüQ5vU郰l`IZ:"cGU?k?cD2xDƥ'Y۔vS+GT(jlC5^pls0C B9`p8lScnǡR]/X]< Gx)&L?FL\}sJd?T ½*3Bs3~f0"wpNs!J)5%FX*R:)Ol^|Mܴ1 D Q%s"M!Κ|(%%oQ1M G;Ly$TH+8 eS:@B!6x/U,_ss-a#xݵx~⯨\i ܴ (n8;غ` +=‘b-I]°[JEn:sUDgv}NՎ?5M2PIЬ*6($14oXIh r5F F ozChBBg(f:>&W0<}|z߽VqA Tt+\>@By\1  SM=;v^8%쏃Jc-yu? +=fm oqaqrL3?p{ )䩌(Gtԝޝ11Pj!,f%K Y;Ǿ>}V? $/"U¿5zDB.~5#h&*b`EGS7v㈗]LmY+NsXG&<#ezKyeM hcQz`ĹTܲl?,KiLGU TX8, UXk $,5VB9[("SOШE#V#(ynP}~e7g~Ʒ4b :}RZAҦNgUu !_ tjџSAS͂*{Ya6##fX~X2 ;5}Zm>oG(̪y5l]g*G•W =($ff$M.4ޭA/W))B%տ{=(7}h/pVhf.a+cDk-͍.˸Ѱ9c {(8|Ր[d}ޟZIԛkSLoSezHQu1E8|dD?2ڽIB&[$ ;@sz7X'YT U'v>Y},.sn hCUAPք-z8ي #cY*n7Q0ğwl-:G ƥ]A@vJvRFdEL zp%6ֆ(`˹oi8:ye_~bD4AO@R^==:t7A1@-vtT段-] :A(֞aL1AK:㨍2a,9|, pFu_?l_"]=jUVShq a.>?pFK>g@0ÑjBFpY985ASQpjGÄ3:AMe9doG/ĀV) kᑷ"/л v߬J옛/&Uݯ@r,Ea=k RG;E(`>L}Ψqh%XHW0DAPP1⾍&|wۙi茟6*!H8TP Q+gtG|T4q?Zc q;鲻o)kT W F ,mCLJ|ˆ,'<eYZB 1PDGSwLKsk++\JzQD =_v@(,ziԧ|LMɴi HeV4!oVUrh}e$|$+p;((Smdi>~LcGHGѕ{WJ|2LO\\Nh"0": ƒYujwjf\čᖳ= DWl$?*`iȵ{`n37FRiٺ4 Y AӀTf*8W\2W*y؇#G}LH%)ɷ Atm,{zFblh )fң=A`9>/]n'M+Nk+i4JcB#XzI#CR2zC1ߎ Q&bhR ˙g M+gڪ$ݒܸVw&x-5mx58kp>ճWIb$;٠EB 9Ѐ <?p4 V)r\ 0 bЋG$Ll7e*VjVb.j%8XkɃJsr"Jt@ƯܕSԽQϱ#CP,B\Cg7fӻZ?">}cPmݖI^n@x0*a??N3rɀԚgfڸI̖M2T,r',aOL80 6db꧕휢ahڇӽXAiRJ."ƙJ"-23^r'ydl5~ۉ ^h, pE wk lrvJ#^I/).{A?HRyzuSWqZ1U[h0U6gsDk5tL:<)uaS fx2Y3u릴].nDmAexo/N@]#_8(I0E8'Y~m.{~e\M@CR |~(QR1CŨ%2gDApAq? Ո?'Wse63fRq+DNoE(ТQd97Bߴa5k׽2h"|^gp$혝x]58bܳC9h#Qch4ŠY.$An1=z"hf0j|~ݱ=9eQkAk C ڕ`)CvPp6-@Crv̵u4#T=b9U1vk.j8qJu_ ަbaExAz@AzSRŎMl %Il>ם}5PKR)QC!?ڹSz뼗O#+cXc2LD\n _@똝2SI0&VHзB+KGu`}8Ih@|.WBf/h/,:KDzՏm *4KS{@#ۛW¤t`^*JfDu/$o=A`j1+aVesJgA+ꘓYV@ګXA˹~%XvsSXN#PPN ܉;wכpyK19Z!ڍ>MG{xӦH#\1z 1],Wk.oN>h`ѴPzɔ ȁqMq*&ZTR| Q <` KU,Ϙ<]D}R p/_g{(.Ec"XD-.hGق5oPuڜVZᐼ[K!ac t (Xy5N`DʷYp Q^E҆y9Ki=CK 6?SXqxP@TX$~2 b{RL@Jgo_nlƹ[zd\K>$36&Wn=6O瘄[d%u.׋A8rTy՗Nwl*REWV`$?Iy mF翹!i~D _Uc{DQmAkYy%{D%ҧR~#^_~Jw3QSuTs=.CkhBgF{SX; H}xJyA>t5t?&(1S+hMa-ޜth%k<+Ә-2pYyxŖIK!Iw<8Q@^ z]AWڶ_={}7NmXʢ卌:~7]04UDԴ aOvWC#ׇPƷ$X荜(SK Rj w lD{,ٳz<ޜ$9`Y  Q2⺤!̾c\e.k ymH2Yw~Bݯ|(>g o Z|'"b٫lUd~L|n# dzWZR!]d'5D&gФa<>!_}~> Y]V:b#qyZ+swH&aA(h1sl ]En>B/8zua7W|3I^vfNߤ[qAk<1Ah>6)?4Yז7{:asgvTŽ#&7R0WxꠠY˚UUO8d{5Jy:Wd: d`#\ܛO'u > dt!鉯dpryVD3_{E]}~!98E$G`ǡԹ8H÷|Q}ӨS ъ^VI9 ýXvg{~K0e2G' yUfqmI<,DPI7AM?=8 +;$Ҝh86"6bd:">1jN*> j8zI415QkoifhG@P }!XgDŽU67x#..C gS%R+7K)?8|!Q*h{~X${g6K5ɂ\Eq^|>ރ@rő5, S.f#4ܾ7w>Q{]!t3lt0.B9JNlksUQ^F>s=j 3<;짬k^Ob1sw Bh\<DI*OCxʋ,W0ks7q54>zgiJiP( ֚N9IuRݫx̔q ^/oO Ҧzû򓌘Fe/6:]{%GKIìZ'WܦIv5ڀs'#nvY$r'E$w^DjG{/ (FS'?E*DSp| yI.#D QDtd\+]tН0ͻȇb'$#&Q[`ӽ+v6zY]cr*"$rv_EV"$Y,,hs4蛿F򸳹2n1 > a ' -m_ĉka ͶiE%YKF0?^A]t5_@!HdB# O޸%Ekgjfh2銮JTɰ A9#3&B B{gЕ^@#1rTZ;YtsfqFW[BVF<Ƽ8S41F{|M.~\,P Wf+;O ]ZWۻz-E=M=з%}#C 7d'ڹwfO|N6 i"~a(kz>Ac `#Oź T_<ZvI٧5'K<[-A\#n$:'SO`:*~^RHwu'Bu1oU>̋lLr3$Z!$`_:Ʀ1S†T!5};"-9"ғ7FLfgYM_z/dnNwkpM ! fSa`>B5z84Nkߪdu/ Dq* YZ0+kRޔ[Q$ ӓTviH }) Jtܪݘnƞ. e^q t·i,u2o !W3'$y\?[ .꿒8]fq +M>t#/xUom /{f>2(,>[ğcw5re[j'p(0>m-=_ٻ[y*m tg!Kr[32s܊cԳZ*@K:^u! ` vVKM0Β.v+Up7ѫ/v(Ĩ2u+BU dqdx|!3"ò,{hE3KETL= _ڤAno Ch^J=GZrfHy Pq+`)ɴq$cѭn6BtvF8ǸGd&Rpk-ur5ɛ=b MtOz,1 K,KؤI O~]v+7S)>*gpoSӥo&R[K@M*bi~f[""T'yaCb}e+*wrX;"ES%QϬl`{%AH7iQC"OXѭo_ͫa̧ Sf;Hi=h|&\9d0_̈Ca2/-*@/t)lq7kp ;E:Z4Bi؊ )PST]t'* Uʈ~8G`;a@/6؟vdct ̾ܟ\s~TԫMP_;b?Z 1t!"P]Y]Zx߁O1(Rя`͊ >g,ZdmBFp 2G#>(m;D !iMǷ7Chicl-hc6 'ki><[452EnA/ۛpr7u<ǚL Y]M|.MF-lPaTI#MpeQ&2ӏ;v;>]uM3) - tu27 ,HRVeRMHY|XPK2D㡠2My߰q&zV`c4o(}>V9э]@%`w0>OD*{mtY[f\\Pwj=DvĠa= $rϸ[;%Pm𱳜^XM_m([Unƨk 1Tf$%vv,DKimE±P9 = &,HBFt+ūNQQCucU}4l鿪H}x:4Zwfĕ NTz6=޽SJ741DNR^C9pR`[Gv#_SŘrTTN2t|]Qx6\"|H`O5!)'yn9{z+Nu^̈!nS,"3Æ #56Y<}3<ۇi-:L)EIn)N_YE#y6Z}?X yd$$B'Z9F zdØ83yQvMGio%[jOX$+lz Z+ U5n{4IC]qocdW}Tuc.sbN*SY4NUb[bhտ5&ȩ k01nu,)>뭄ͺVw 2;*4@0.m( Opkb<8&EO"VsCp뷚 DAqcS`O[2t3r|걵e.09r)f<>??3Cq`%0$4dd?=%VN(v]Gf7vglLBdZ.nQ[H 6D/m_tZun}}O)Ʌ]S{q]Ra荑v%Tug<7 prϻؼj!Az !㽻AM2NO]1Q9#OǦrEAn!g/[{viSI ̍>3jxUC<9vr" [^pZy~-t sx"p]f'̿澾FZSLV%sH5"lD> 3t=ףfQdyb >JzfmLm5y9(M~*z $F :io=/ykhP|Oh-ltgrKwj/N܆ҟI5x;;)7h;Ia4ˉĈ>%~ l=U 98qFȴ-0ך :}LX #{, g~[YDcPTo Qb/Uj pj',9aA:%"ۭe^SU$@H,H`q 乂oOG:ɬ uW&M⚣JG)myk,b1 MbeRn#O_.ٽ\ͼ!}^ Aϻ2 3f˘7Њ~0]@)H:6!tJ[11Ig)%pQŖ5sOGZZN `SVp(CR鶒ۓ}||؀~N7KSk?t==*eQ'c9U#aFFbW;V$0L\ O%^]Έ4,S=->PƌMec~4t2 _A!С[\aK~%@6^qbać.Z&sfS/6 _YpHi 75]}wث+P3Lɔǟ襚Uok=)xEU8kF(^y1"W:;D,k$qk76! &.t΢It5įD]]_z[1Cۉ;a}(aTQ>ɔ$S2$wdE+yr a0HБ,ܕ`[Z:VRb)݆Vڭ4 ϒw?j C-yT,✟"O/5 hl*EA2A4yqYĨ/v<틻WdUFvePi %-AM̀j]`aVUa] Sj'uj˺q8w߭x E33KD|X<hM `q/M ?DDPK/]-{w; ˘R$MȰ`:{4!9k'b v%ZyNwu]f4n UCoC^S\c7^|ϸgk"Xwjl{-ύY6.d著R6yNd# Ա>9IYRTmï.L<ݛ*F]#wF3!A!pgjjވqgb񰿮DSyR19QI|C b>qg. M#JhV aOZ Oj/ԹW]==<۶ًC҅sẹWVexJ+p, ^L:'$F3ze2[].z(i:~(l975%QjbD:pX{n!Wlt2*k$ױ]OKA)X9͘Xc͍1p?i `DHx-t51G8da~lL[05rŤP Ki/SQƬLi>t=-m=-O?gk [>{N8׌}J6)/4|I e}֩ES(4?=@KS`X^ +RXڠiSk#8=ȥ7>pQ:(@PA.P.X0*.H@xoLbYvf=}f$པ:9kFۓtf94P2tu/ -QvWKu=wlitzR"(ji4J}hӲeg2T2RJgՑ^ a̕p8/GHAxBoK.QRrfUxX f&@2Hi>}l0ҫkC'X3b.AEu{96V!͆}=ޒ܇DTQmޔ7\wcUm킝}VG3u.WP,AM $GqFGd C|ĶRw}x?LP9>t:Y ,-GnJb.3Q`p2=PvAܑ>f{\ɀybp:歞%VlJܭf,9 ~RퟬwAi;-%a ۖO c|ZOfppMo8 QL.X}wXiiς?$uKHlZi*Pt̎%snx-x[Ӣg^ H2/"6tdZABofW &3jl.²_GLBJ>+ړ<@ls?'SǷ `lx&e|=-m~>%f#A=3δ@I=;7TAh[EGQY*]MҮKsSNc2}:>d&&g0V 56r93$/MYe%o&LȲoUw PÏCdg(9}IwVLSt ?ɸ)-ZVL3|v*>']O!/׸ F R$tKGlJ]1w.lᄐ5EXLXt0|Q\,`'44*D`|L+ĿiPz3r}ht1 ht JV3s$F- Pu9aEma4;_pޱS^NE#!=m꒏GGr{[Dle.ypKa*.}{B%B9T&!5q =A*# ,`7Tsa͝So1:"|~6?': W[2<ӡt\l-lEgg[*! 㛚S-B{+_~*L}iC"5wyi*e64 ۝ttXbȧs ޽H`msk]#ZG8< r"E &uG.J<BPy[+ \5q8gG8ףWK$zcjx62Agxe94Qg!s6 qU2)zº8NtRzW? B>WmwX:ܥ2,eG94#"]C|0]X?SvbiρqR >ЦS˓fm҆]c,p:\JgMj?̖G n CW_OrZQGsoM̦svM 1Fi V,jmwܚnLJgËVwԴPS(IWRZJKp0yE%>ՌBQ.cBvazSo/-㶺* ܠnW6۟$S>yD[)h9iCtQ (KHZ֊LH?1`Iq^Fq}ne>O{ W4kQxL>Wv<@4N2-?KKC>?wboĞcA\صkWJ"Ǭļ4kez)!7f_bGQBdJyMVm@oWV:+h'uR{ f$3)o4;"gOJ3ϾNGww8۱UNdSހ0=zKoYoowj윥yhߩ͏{qtMI.5F@&Ngu ـu  P[5?۝+6-cH4ϊ*u}ee/Mr/W<&\QNP։:4'f ̊6ȥůI)ġ[}*92eMqI;cX "ޛ?N3r61VO m#ymo`XO ു_ s,4>F>O1DZW$}8nJHjX Ɯ{)3VݝӉ*frUT_g9c9*K |<&Q& Gw&=Ƨ0Dz槌?h}rudIEߵZyn%N?RoDT҈e5z1~[>jLˤyjVg$ qLaUTCCҭ5fBiq$X ҝl|:~3}+#-u svB۬JB9&Irq|R1T!L6`E8p)Q"#CEN-n&mXusז- i8Yԍ+-_oϩ93}c<:I "[R4{ZtC͝^?tKZc6t9F_(l36ԯzLGf ÙDK۲EaHJJ}AS+=Jnf s1 ?t/Խ)|,Le2^5ږ7ٜiGH, ͂)o_8sf5]dBlK`ÂUt A{ A#~w̋RDFCj"|kVBTRq7M!wѫdj6]JdT#ohڴܶIGo1JjgȮ}F46 l0| c efʰ@նfʦw˪/ E8Ghoi;J娫yBEۭgFK;"h*ĸ[>0 +Hj5CARZ_282oT˦< OPM2%d] qLJ>Zts;9xIwBkٍ̠Dy+bt=Hm1Ӊ2L>󍰦r(r'^OoaW6W. pR %J5#A"fE0!YëN b|[sŷ=vɔ:sa}з 72Z[6ZLy FaG.Ck9A,NtoFo*ZDB- #5C:1LP= K$K3𧻓B(]IıkJtLݔJō/yT doOmUgW=IZԚvslɲWV;m4~s?rI_؇a+A/$ۭ/,{LCOII\|"4FHQYN;@SxO=A\ZQYy,7юh#a!Q#LI'rK^5P !G t$P8ն (ASESwMm-/;5y~E;2DCNHBJvE|^^Nf4>YN <^H9 ΣdW9d/2h"N`3;k9 >[k%ӂUC%B>lE4q/p]䫏>y [ٻ^PQ^7Pah:"S>, Q|/ Y@;o( ]]j}B_};$;9TCZÇ[.x0A1$'Zqe!_5aLprEktC$82J>K@%{gz(xE×DeұOmvჴVR_:p#董(B-!-~lԅ1M)lA3$·ҩ N'-YS9iYa@"Ɯ_̱d+FTDfxbt~*]\QCp^cf%J8$"fe54)QE if1=~XJG*$8?;Q1 { ,L"`Yw0zSUd{i s*8b(gHVIͷ7QXx;S|Or1t&_H!{ϗkx ay;D 3l*JlP Wݼ#U ɷ j#` g nP'0% #VAuidvǔ@lzJ+9(j@cR\j> yZ#KQs֮JoLx)?~lAPiARcaN^5i9ӟɵxtÛD_v 66Lv-Eݻ0@7h3oZЅ.n{oxsj}Pءn^%Йf5~2 FH:MՏ!fvհR&k&\zzjȿ"vӝ5e+Rv&0"D㞥8 L!7; [󹆏Ja璛o/oVlI~s\<lNɲN&=)A|NqHl;DY J 2YLڨf<4 u0KHBTYrSEf`02(R(kdc\/_Y>KwN \ӯ,˗8Ty vdS!H_0!#9rčs[pgqLbg6.z$T0/\H[Ap.T50u~:` ptow:f魘ц9!ghN/j5G}M3= 9a@F!Ly3""UOc*1L\Tw@JgR_JH MÝfѬQ9ܿF1(uP%dXb2\H5K^ ;ƷEqB#ok,d(qm3{x v`J\ʋ6΋I{i%$vPVB p瞈XÈd7ruiS0DjLk7AA> vk\p i(/gWlީ0bGX?F8X4o5?Y?Ű'84CL=4A[D{ g3^ }ˬ/w93+'ܿ%jT0> ylW2`89+\{lWUO6Rj© +}c(CKE&Ě SU4JFbM`ޝHX]O6kֵЖ`pyS0 ׿$ԆLa?.=" XzyÞ4oL41: ]GOQVn{e0eSЉv#]+m7qa)LŒĺ*:&y|ɫ)ޫM >P6|ő] v;l4VHe/o!Λw#p?=R"MJ,|'\^M+Ŷ3b(v ˥u`O1ךⷣ܎&q?oԈ%yCz/福I=3073~Kgs.k}I=:*ށ{,s҆'N4z抷^`[T2?;eVCi6z 'toxJ_Y~7΢CXpHo։|*iluYfKW6KΆA2u(P0-:QEP!9J^5lʆ|l.af fٍjU!7nс*{F!!|7#Ś#F DrH_4%Za;ܺ r⓴1u!7Ke#XQ#)s6̙pJAj)2D ]z"\p #mメ\I4@_l߲8]6,,W sxA~BooqP·U>/-V~hf&7兟dQxbz?F]-Bl#y1Fo@}{)Y5Қ|P]LFL‹1&!5(~]tGDP/ō9b4'asj4\*saFzʗ|Dq:#c9cDhA^-R8`|[&nnDi{i3}1TQ/{B*ɽ(e$ӘT7Rk%0տŚg=f&wa]7){8@3%8$| .ʾ4"P׆}0E|`Ƹ=ֱKv fam|5AA4c[%.8,Λ_j\}0V\7~lw }ꜫb{d΁wlkQ,^X˻ݡ['/bFyCh6KǺ8 z{07Yv~(T0DFiü>x\ YKʐ3<{3w޴ DgmN(\64sk[x<jj q(8;ljt[ ߍ1B-Taі#!$˛Ƀ7sazhN~sDHc &kN0}l;ŗ>f}UOx#ǛUtDۘ+?Ljetw s P=GPdd:DǔQ/9Lxw˷dh'˔0yuS51jmwiY?j53㴑7#/s lw.L">a>#P8ц{pJb_ωvpb|ڂR{h3\ I jEϙlAc+\2+%BMʜ˲ݬKLlM \HE~=M`~ E%TӫQW2شw &Bds:=GPgm t4I<:{FZypdBzԂ?}TgŊ o4~j韰*j{hc [ؓk I*v;7}.]:Tue$–JӛSV;Y hK6Z\gV }ٖzҢz|ysF#HUBN":%[=~}r[FOad43H%*l(xu 3(@g19SL"7z}K  > _ำW(.`KU~-c7dأ)>dJ{6 f`97 y.ųѯ`R- L'Fјsbr@Z#42( i"!A)k=Ϛkd#! ί.tdH1ݛ.dn'_b% [Ie^5ֵ;o(r1/ϭ^PLZ>BYnkm^fnG_9>4*럀DҰWvĞlF$,7= ʷYŸ|7WfcTbyf) V,oF!FV(ݽqp*7j.U_FBub[jָ 5%9ozguX.;rv5&UƫFO{nx,;`T/<(neuNaliž YnCr0:3:KM 61sBKȌgfpdZʫڼ@US."`2|B0>(۞Ɍb:h|F|rC̠-֬}Y?qJc lpķgsZ"46FOM EKчl ?{F+r%_q^'x\x&ࠖvTgsGnzyKc$ZceL(~_.aqQZ 9pmd?kh$eXJUM9fx}Ϣ>a7?"ͩʸk-t wHoٽt63|VmR$z,#Od'7TޜQO7[)R`vbpE#NaPFs.cD׃]u*GV_DOY,FG6ON6|ť'OR 25oVd[-Vբ_!U HS'RKeӴ*-g$zAhvJ yc#(:P<6z26?,y5'C6{hњ‘hqEHl2b@6wh­|H|[7x!Y]+u,EL:B:9^i<"di41bj{}P0O\S`oivE1H}j Pxu-䭾Gis)@4a#f̹RvL 51|r8v0.Nn|7G,24@f˧xMvMWP,W.%xHL(b_W0CѢ~.#d:ֺjXu È&+ &ZMH j8ە 9`MJu6Y@8 M2MGE] jYlGSw3 Ɨp/9h{Sj(47\2C#?Pw!XNE緑e;$GZg^ ,%Zt}uINϸR)PKfROD}yN[=nG ֗n|!Fȱiwp:,|j[X뻰tO%tAKt6#!_K'fUM#ͷIBySWflb:#56՘'xJN|qc {˺-MN~(˂v\mj4}zA}| ͦ#WaW*r['&:7BT c| p ŧuM4EID|QG:{lB=]>cq ,U(XFn 97.tqlRO؄e[ Jc<nTR I5)- BDvzut$ܨWYTs#۸͏H\'Vɝ sLc׃=@D3" #tχ\agҷ&&͸ n=4mJ_ utoLQkk?]}uz^osP\) 㪙ύ: VN:n!9."v^%ujNa] /dGS|oVlfՑi_"gi'sC@mS|b[U;^5y!Ml@c\ E&R'%chx/@Hpu(AYdEU@Un*"Kl;ҙol2]b@k_SkHWh( mQNtW q*1OYmݣ^rH/̐4[۾< ߢVL;$S7kĞYOY@w< g oQ\6 K_gZ}uanⳠv+5CL BXaw80@`q*0j; gP\[Ѫ=b`Ǝ2ku>Nv,'hM2-t06esg|` 9nULrPyiylɌ Ǯ,/AtxX_뻣fï05)FŸ3( 6Óa=Ck@aX{ >AB YAMP뉣A 1兑Z7 lR[zt}ВE-JݪR1f {}sMVg? 34BYqAƸ`2~, ]O.gZ4)m+(]X$Ɂly&릃ԽϥMt]VeSKӏ5(Gиa'Xy)ZT?ʨB+=J0!e:/lȡ[g9pzsP,en‡d}N /Z@SX$)YIo/F=%[ Ic;åV+27as8UQx2tYsh~՛Nރ5n{Qp>.ـⲅvdBVJ!NQ0\}Ur3aP<}FT:G#g=r'b0y)Mӟ?Fq]jBowWdjG^@H3N e+LV#2y*^(ۍն(R?֡_o_E]~‘PQU qw;sxcT&/$ˏX4Y_b nz:'[}_<1cz/M;0ԗ:F+y(2efC~s, k4t%ƹ?RAN\`qz} դH NR| ܕNtuDkjRU h4KPI޸]D>$Fʳ!r!:et ƅk-|0zev)Wj`3H}q>%`3PGG#z'TorY8z}A$!bxt@R"!͙n=J X?K1m#6gc}f\=sVªYenR2:DHZf,B: \b. VHx.@23# bTշ@g7{KlV_cL/zɉQ;1^!Y;0_#aj8s%q9Q> GbipjsK#ud$0(SS﵇sm.Kço}P mmTSp0$su{I݋LNml.u1zem$ U6pW+{z-eR㪄dPGvU6نPGYR#,zV,/&\x@5H|hh< Ofe)o+'Ue]7ijT )70RL}μvFkґ*V{NBg̃r}I7Ou>?D<.!qC=b238*|jɋI+aqPcY+A7ZwGqWJ{d6 8 G2CI Zi/˝4<0Og]^]1c}UՁM_)E 4P=і[H)Cvs7gX*Ecpn;EރF@eWHLxT8P)O-*YGRp&)vFԱ<81wN35h?uzwFVH3l)lt, ]'f];+xmﺴ˻1O#S5ʇ]Wn^NFX>`9M oG"Έ5[ \8V |LןM&6>\aL&FYX)h "oodz0d{]CSuOP9#qXRjQi6+ ʞ]@M\PkT呮f>XjFr-#yyxrǁ v/72&ci7f* %$ow}Eā! rɦ=|̴Wmw#jARaw%];/n#m{ܱzG/9`>4V)Qt3CQ)I`3{CEÿGʜ]-cKXi9]_3k@1~M9ȪCG~*;F,yTq`LSFt&,}&*~u2k' pA<Я]'ƺ! ~Ymxߒurha%u$f{/`5.2һAq|&pĜ(GPZg\=$ڿH Pr69*Bz;F2"r@%ZOj?'0K|s*җ*pˁƲ8! ́@A>nJ>g#t4. 1oۡ-8]y샹܆! ;3%; uXc J;@Md۷A@"Ѵȶ~5No(&.}+/&8%Fp4gRSQ'QZuj̛p-$|F .*1EPeޟ0^:\R u6Us:-!]}eA~@ .֍nlKv+Kיi2Ů, 7|25A^v`Oѣ*FΔ/xDqn+[sPg”n^y·@'ې"⍱%0&&+ ZQFvv/%?2Z ]n!1gC_HKH{w-Gh65lהTw/-e 0?BKP{QKY튬pv^ͽX ߤ^y#L pO{ 3ӞNmqeL}k"*?#ߕoNPrfb{=܆RtcѧW њ:y[WcRNE`vlPX2 Z{k  w\Rj]2q.[g$ JY vDQ"abMj @h[ -5[ӹM̖Az{9ő; kP>Xqu(N9R!̚"06uGWNDi8_,k`wZhhN?(j;37ëknߝ8xS7Ln*iT"dwߘy>2F$y|i); = 9l$U8ADGfU% Mޜ÷@vX` xusZm[ Y{Qt#Bek.ˠS-ZϮ_oAD_@=d+g vus*D/a#-ZǏXU.]Zx&3Za,ۤq!d%V^7l{Z1Es3_ [x7ﰈk3y/icw -ڲ䲏ҎE2POYDveoT-:N__P, ضN"RmUEK5P D;0|.u,/c% FE*084/pԔUgKX},kk8mSXMjO2qŠx:<ܱ"':ϓZC>LY,g+9g' :tLm“,M|w~B ݭxMxZq70[*KtQF[uVByD IDdaՓe$>?C֩UJp1f'(f|1ɘ Ul khE/M奾8l)hJ,3P.0." b-8Yzf駾i-E7Z۴>r?DԇoKX<90WdGg^i;zxd~`;k̞om1F2H"+4?Ky)yf`ڑ'z&/3yMKҋI VNW{ŸW:b'ر s"'ŔFbBxϜW@|us7FEƧ4W݂b޼P?Yȝ%Vhf=xeJ/\:He[@`^nwU$}.BpPYNwPvňȊOR_Q [+nF/߮tHo4eXL0If`@H[h@)HJg$m7xMS=ZX*9@3&GEZ{NO`2SpN }~i5\0JD.&0}:+Xq9fڇӻ qgS鐡m0EW*oo#GPb1;=$X_A%Www"1S.3񑻣k+=_TChfnF):W좲< To;->&Vq[ME}^t\L}dƾXDUk&Y8@@)7)( hVܵx{).J;twq.܈`ȣ${|^eøϘ4ؽtu\=0?V%T#jh RKs!L&RzUaE^,f}G`f Lz=AWi@7ꘇ#yaa$\?攆n ֓6a ` c M jUM6RY:of!}ؤȆ4Q{or@k5kP V*G&-۩A_z-?hG#. ύ&c+#Ys:T6vOc8ah,e lX^@k/%3!eS^8(k_SGT4k :hFQrҵ#-תe٪0؜G2nJ\mQ" jHwO)) R׎iݸ:iIȃ$O( rjw;µuzkY; BI=_-9F|#hMTRձ E@ pǼ5эM&g|۾3 %2$lWlM@NHӀϾNwVT)#z\L#ZՁ^ʣ(*֤?uKMcqSj9w|m;ރ]ެ”4xki_H핾8_>II :>ӼW u4JlWVnGh5r,[$e$/ M~ٻ#|R2N`=h/-mSڵd1Gb8֋L0lsۋD=Ʉ"8Q|I`J1m c7\hv. B4<)a&5״!t!uUdP|vI4MOUȜAY@CZhf!)-̳V*˦q(Q4caׂc6Z[B۳'{M!~H:-+.X`|.8&zƗFXϓ*8QRH4=s{%!ݦyƹD$qCFI.w;I滑tLQʫg ܀s\ n"/arsp 24-bPn~ I隿 F[G2>â2`b5n#ozf,|i)5,VrǨ12b̛pY+ }֝xT<1 $yAojBwx}C^jUDguڹ,@%.!Q>ڰm]W> Jri-6/ky)u/qVr2P8X~T*[KkEfE7p_N&xLG`~ވ;@]7ydG%9I4nՍ}_ <2rSɐ<rNDF aD5G<I$$+\6Y5E#^OUq?=`4(.}gUg3颵u  ^؞L.`5VQPX/l~3y2 LT9A'@Eۗ) ɰLEV}-st.]y?旛5? E@50f5w2XۉE4ձ;ssVȾZdإzß`p 5g0Loڿ)SE=6и Xt|Q1߲}Uæ9,%kG`j3M̛x`` 0v   (^'ݥ^mQzai@bmqOć D1-)%ت\j@ŒH1p$9v 4U,-')ݧ^ ⟋*<] Ƈd: bZuGV9LyH^ޫ :e\2gLgmA@Q/E¢UY햍A5[وȕ pEl }@kHUGsE=v2J¹LzrWp9d[Vs•'*4qq;6)1x$@.h ڶ<[55ƬI)j `{s^P9P̡31+$BmYq*WX]XIniP}&`t/*4-$&SXSa(tPрZ!NF3ʇ[#NoRٔhQQn*! Be*B9D%57f-PA+ViYzfp#3߅=_PeޅCݞ/%g27gЃP6$YͯΒlðM0< A8q܌?w˯9SMRғ.pѿ$KJKziA2 v;Rh3 52 nvnMq6biz_ڪ8dЎCa{e /!>,h}pGT&%:om0`"#B*r2cS9]2W lިU V2*_p΃ rՔB tj*;\0Tw=:xh'8~mڈ'k= Md5QGi_&<{}{8tη7?ta[1] Ҕ KS*ǜ)8E2ٴӓymwǗM).rf^PURcgJ1#Nk럎\eSXJ&ТA-BFx*?NJ M#K_V\'ͅcupYZ@ 3iQudт_(U!v:٪=,;ߗlokvi ]\]L l3zR#.Nǀ]Kd!xvN=y5i1t|q7 7u %E0q:s'(#_o0}vOj T1k2^Sbjp#s%#E,|jc/cfxs1ۯQeLôBn^!/Kq_n&O#pӻrFKFh&}~ -ɡ?gꙝLgSZT.aoqw(t}/MQ!d+C%sf; (. L_BvB'5'i#+? ЅύIvSaYeTpk2[^KϨCu+ŦTJ}3AVOdĖwőFwBUC'BnpDְN%z2}ٵh`15>N!RnBDGͧ t[TV ]e$<20ősur'<ϙOˎ`ӷGNN K )LAS ~\_ed4ZT.'XoB1%' e(%C}YA ZĔYu]"_}BmhQy&FڵS!%'1[&^,?$h@U_-TYnkukLz;ŬCuS)bw%pXY0beEYέ*rq䎌aȮxZ%Po[еMa(S n>*1_w3m+8Mt*g6ԘbaP^$xn::z,s>ǡ,>m۔R Ar?ROM+cN1 ,H35JZ6 9&#"dT y^ӠS.WVbP4tC0# CF#"}J^lٯʆ6Ȅ`Xf'6@ 2a )7Cq?9-K-t!'3b|L!2ZI<{rYܸ%w^9yKLXoc4`N?jmR(~ʓᆁ OBXatbyEՂ5IxCřm>Y y5K09`$7éΏUqcYgQ\8*1!N3$UL;>p\/= š9*FXRsAAmce+#@Ka}h,=Î+o0i'ܠ68uhXwO`r)׫<sljpWXnGZZ/ql ެ?O3 n-HSm~ 7zZvzXӎ;BG, G"GYP*pZy^ޚ~Pn)08zG\)cn8p#ڠp2~mRw ˈUF8H!U]%I]ǟDX5(Sa1jxzb\p]kg#hY`XTŎ_)`Js ZI0^GWaхHqTk>oWc(` 9#g,(7=N R81c%-?Q>Xߥ8b20m @\71D |NmTBKs&Az8Xڐ4t_dxMc#ʟ6bZb .dd~Z )qOHDjh` THoki|m#B=,#qV5.Ȥnr]KosBnG,.?!FM(<'CO;5!_@YCmn-aDU;kƁ5J_v*Eʂ{"YN#iPԍ+x)GQTԣv|zU+%klƩ/kN42V ̒~fH6Gxq" <Ћ)wjc,3W^\i,Wb,Jj?7Yᩘy0lxW-7ЩOK =S+&ӪgGf⃹;~}vNmа(Uϕ@i%<~oz506VOi*+741^}ȨYs qq@sRM+'W[>Ӿ+lu<=0F:l|,؃h!Ms71 ܱDR8-*$g1AaEO{ gZPxZ%R;㯌5Vi0/2୏biƥO;-sñ"}! Ά. \EL_J"J-~bK4ғ]ɎDU;Sg)3h({9,V㝶jCRz3^HJ˒Ŧlm+ VDqpu-~n |5{٣skREJlAَtd~=BrTK[ %Rt>ib;zBvNR] +-5VD挟Bf.rDUngN<wJU7$;@;}X]F~ZI&>4L ]qVAˏIV9K`lWݎjf'tj: F GUJI)>3!aH|8c%>}tvJUw#l1]M4N-ZRdw+tWj4-܂5>|#PS`+}s<"^PM~CQ5D7ڏF=cp@_uXi6Tu2rzYR5>8t>FM ٚ({ڴfvGPw[Q0\G.J j dډ]Tr}WW®|EfJqgG+LQ(٥՝,Ggiyz6hEg6100_R0-"# mRn2]m5IQ|h|K5zؒ/ohT!bٮ"_t-jHLHW@DMm?ΛC upPuVSyIV| X 1*l-&WXlUXβ d<ʌ&6Q+ h zdz$DLZ`sJ)/F,EoԐ(J_{=ɘ}LG W6ZL+z 'cnl9s=tl;]KR~[pcZ^s{&j [ =? ?0>TΝi4NaYN9WzüQU q#51`&&ھ`yg};tP/5` Sµ$>CAlWr:e }BA܄Sn jWYLts*4h7(x.9}gHEk7x43|';Zyᣠ$UQbH-zZE̜5FEk\qgVkI yS+ڀ5iȚ[61gVVP'Q/^ €#O{-ǭ_21Sj-Z21 U#L_.+ܐKG3l"$и`TKaZVAo{& >3`i)^%g/5nPRtjD@tOx,x=u)4.Ӈ C$vܚI8PGAjŰM #IQf0Q K.-W[_3O㟑w r\fœKRO7QI9k`/ܾBMeD0j}͸~4[T2W@J"sH^_vwn!m!u=VWsGPC(+BȈeC&|A| 4THy=p ܶxZ\$;]B8!yp/ $~Όʫ GV@jC*xyeƯ\ޢWuR()جؖ">KKRwh@0ț۩Iߜ9ZS4Бdr7lTqAc[ sxGMgk8Č$YZi=6'~"X"q ?rW 9]"$4i)2K2c4썞u#gN3c>MJuƹ=IfOoTHY8`+Mt蘂mMRW|MW5^ kZ.N4J=̓@CT2V"Ew|(%| ~EV}XT}=qVB,=6̩WֺE^w_4bG:7eə uBl=q!xhc 8%6֝Φ97Tz8S x#i" %l8IciV8Ce^o\2Yms J\76 v7R?fs;z)kb Ȗ"Lo=$c xjњ v8IdhH?>P Z ~=>ZΠ'%oO&4.:u ų[y) F݌􍰝[o/KivZ JB$u%5(XbUslpT!+ƥ$ @gT\7J^ZڍK0xfςK9mV/o:6DeI0V(acM{HSbN"P=1 $1[.]~΍yء}L l+B˜ PVm^ϸJAoUsNTkom4GZ^vy%X˫8>&[~fcSc$= n7I%;&J]XyCB"CϽL|H:ߙU)` Y^q($nO.&pjGI?L`p0"7#f49]U~kcq+Ec~ BxP?iR$`(>{((2u. tYu/&ZcG[WVi2m #͘BYg 7d1󈢯$оNY57i٪ ХЁwv$Ḩi:׉J].UlOzaf)xP=&PzΖ`:-brάݏT#%S3;kcf4"r걣b&9:Ӑhan!9H'8ؿ_(v`Du6D4yT2]gL$L'-t{IF5a9x#OR*^i>3<%zҼ<./ KG5 [/sEQV*XQvIL7>ѻo0`'9~ 伄Z\րfvJ]D+tj`P{+I"N120!H?AuSXզ.'>VL8؂9'HHL?&kp^t91Z 6o1xa?dr#;0䣎9+3O CE̅,g}˺e)%=RalVIGA/j[.HOXrl54E %!"kG]}zjK6w`(Ϋ,;{ra/.cm]\GSU/#URkT=/(L9 ' ߍ |'p3ik䊄Co#D-j1d Hf)n 1AA\)+τo1q2>U7HP/>+ jBN9 >*^G_ W2rX޴16/K K'xFlzHI4-M^k\.YZqap{D*(qI(@{2g*!I@>|h߫<8f$9׫"$]!fy4EMBSF#eׅ7uYp-Mvq灲xݪBv{]Z'h <.іLnϕᱹ l>P+\\Y LAƩ|dsHqgÁVmߛu5V*"ju"`V}7V^s0)#ȥ'-JZo,>eD>05Մ'tŒ{5 .-3rIyQlOze\UMiQEBKz4 P/DOm6yKvm7]O9eO^yBWC5$cwN^hŌcg-d`)8&{R O%CdRoĬ ZmfX1 Zco;m5NWaW0_^&;o h|6J o6!b'UfCø{r 11k؅86(=8cQ Y0Nv GxAdٍ^QgkM =^hZuDZ(o= ]? V4tKgU\ e:d8dYkC=g?{~/coPoU݄RĢdBպC_H j֍SC$ᘙ2O>%aGT. |It]_@VNB…OՔz4L֚8mI4X< Bp |Mϗ 0˰.SBJ@ XjߓF tAuFHoqaTRe"lJs/P(CpOfBuT V@疓#Nn~2{!yzcǨh-_˵ʜkP0Tgɗpb([m^MHS80?!*lG,9b?A{X yhrQ`Q5|u'OJ.!Cx2m[Bԯ Sv?䜅މTğ0[q1K0H_N.Y``]tCkg3o">ag!8\(]/ag67Kr\?CFȏ'x`Lٱ.8;oqd1yzG8 hzƯTla0?kt=/,#KG7yk9ʹ5=xtqkR&JS}]O}Q=pC1\k~XEAa(ج٨cJq-e##fD1*9f#8gcPΔ+c>՜/ KVf݇D (V6.hT&C^[NsX Ee폅n=dU-C~hOX8xAk qڈ\ ;w,c_+39چu48~I8ѹ.Ԭ l5AZD=I*sZ/ЏCmetSNs<|/6K)y8'B/prAV\hw2 /tZ,rgG +f8}xYrGLaEX po>ܯS9)p)C<0TrYJ|Kf[.W3Sy;͠BԷ=٧)no!j~QޜOwmU.";N8tt`u@_A 4:.&q(R(k3BVSbN\B&9Y).oYFh;tעdWb g7bK{[R4|GM}1 |=dHzT{_PDM~V? D.R^M4Jw_K {`STcYoN/0feq=ܞ`ۅ}VG1IK- 2*d1QFO ( X='^KaKvgpheB^ul} 1VTQ.h ]V./_LP4뿅#BҮ(Rl2\}cT=]ص=`3 ZoD[D9Y%aݿClPTIϰ|6fY(Gz &|H.7)."a~{r0Ğc_E*%.^ x$p% {sf%zYFj&uOd8h )7mMX*KDTHX~`qL/.If7 kB#_P|8 Y6Qj> yhX0WMmMf ޮ9^r^n)eh_\ Z_\/~AY}/eV慌X\hHO:ۆU> cQh;Z јh8h o0] ]q&rꠀQ%TV>ւwrվ6(.+߲zD#i}wq:(P b>6թKcd˧ !>SI nla\ RhB%w^C*q`t\.wu!ܼ4Y:}Upk'm‚T;ht2BMマd@@"}2b Ї(DÒeܛIkK=1rXT1c2yJiCc~2#TaeU(b-aIE2c=3V&i1Q7VXMK򀶙lw ZE){./n`RDYO}Fu_?NsC $\y1:%u=eڛR`TGrDn:M..c@ODݽx uac7E񴢬2QVFJA@J:iD8#!_pfh 9ad2,N=v 9.Z+|C %&j7^eǃ\3Y_k}x0PTp iwm“ytN*ؼn X^=y# FnvHldF~lq,_dnКg0١\r0,&*J4ЄBrɇ|SdS-uiآEȂ|Ztfou:9pVh.{(TSr0Ed_ 4uQ!baQH/>9r45JO"|Zv?&ptj x'(d^ˍEZOe u|k>l/ڴ.s>v'Ѫv3*w8 \QǤ~ˆo$YD@f#e*B?.F(qWVm^ ;>Ԩ&{x'ph9}-[a% u|"Y^ ^DEFπI|!p2C)Go1 /'*47ı fGV5 p+[=]rVCHpoιE6\F|VPڪi%mAmݲ,?[`WQ`:9pճA4OR]84$~ xM=\3{f./F 5JUk[(Z\sdSs*s!o;Hmct) u48|;2.Cb0X4:OsG ߩζ'c>6g8mf ?F+?-,ж[wq٧L%t8&ϮT7 Yp?3bh &mBSnPzMv؀ "mUie8ܩ8YI("!ì{yEWPBr׽*ı Kc =?V;}nh8YdW%s y,;BV{T98Kcp R* SgN.ϙ/piĂ7\D&3 Yy0"b.K%-́JTJȇ--*)qIDP ?͈Rkp]'ٽ.*Xy/R .8j,rIHZl8:BkN  ) ~嘇w&aVFq,+:Щnl"@.5<#lZv}6Fzưa鱭0-ܐkEE~Acf"4hտ? ` ylUYdN鰎/6SkhVPFar1房:ldp*aa,EXywT&4WFM,PP:S۳zkN[smιc14\gS_&}ȂMȓڅwT-Z^-5^]Uˏ2cnQp1#sLXGY68zo_ltM?uڐ1LT(WdLLVlWF8w*&X@|F 7؟30rS4COS嵋+tU2`T02 NZA ".nyn{cT?6II QP5dpJpͷ<-g-O}cE^û龀w&=)# zT. vkߠ *o̶Z7u"4ED2dx0IP׭hY<%,_ZHr]4b?:oAliӄޡG!G'yܢf?5dg -_*/<F#̿.I~%8;!Q%VwOt hl֡Nh{eytٖzq ''K/f.X_{d2Уy2{: q6)beZO?q362b,>|9ĵ]g'ϭUR7*Eg@,$?scϺ=P ;D kEfdܨA`GN;8uDA*3$ÚDĔ( JM :0 r(('J@Lg終v*k0 Ic0n9њ0/@[;EHfoE\~rBr &s{p4[N'>$<bS0=V ډSVOqFG4-Ux n3L82Jbw!Ԙ0NtK6Jf{]gs#T;UͲCi xpӡ=&SX9TG(%#B(n^lxa#!gZw5"x+^Zۃ s6^N&^g d7z:e4tX9:}8o= cK̺_G֠5חrK ƶGfr0P3  43<fj"(rp4P(C}}LuR5wǗ ^Ӥ|z=d *:~w%(#L.M w#ԇ7R~C1蹤+'ڀiVٰ_5Q} iy0aapG ,TQC1 j0qok Hbz^MӔ&bXT(6QqRL4!SPwnAi_=x.xnN%Ѫ>Sۀp`@Zq>s/[IkӉ_gizF("=㟈v ` s? Xj1svvz K\rI'(K*H7}@R[FT`ZA0)Ime63ކG.mj%'Ilp%}-C9߃X C KwÐQ~ ܷ |I6=-~$XqޢBvPDZCw_SnTFrdzY[3a8;BARwF%FKFRY2e񑑅wr;_z ] iL N%YWwy%l+j]‘R'/geEZ?}to91SE`8 riNen @͔8/n'SQ_.Y(>{cfͱ;Pm~Bf֋Y57V_`_X2@amv6]LHX>%oĎ)V^r7wyAjɹ7\䶞3 [N6[-ZbZH \Si$z@mlmZVE35 ;\^^(6R3Z3}5ϮHkr=V e U@ʥnTc'מ!ܥնL rt/zY9`:Vzɼв`"l9w*+hK A?ƀdrl1}F% e"3X#٬6ޏeJ%"\~3 cr(3~e7"-<(\ bx\8ԫ }Ν8&-|A |eLiF<xrK3@*E#*Cy;$;J4l;Vgz E= b9 ʃ MQykdR/@c 4WdH&TdN7c:@KuזSx5"@l W%SHtUhe0]BQ.m/-?:]N+EW5Z*v))ۻBM ~P r>WϹ)ശ+?KI4ᜊfwWABG.ዤH} /7qRk6\\X)Ɵ ']mBMkp=$t7zh/-ݍ'Ʀ\W`<P{ww`6؝owRnIf&9YCi~aأ5x*dd)ys5jIP+V%g#az'uWͣba@u' lɖYddeӯ͈?#;0j%y9,x@8_xgVAg@-KM4##d'O+sl1]UjeVNhII:ou}IHIpҌїh;P˧S|~oY>Uɞ qi+{X_0AeOJ?=-CG ɶݾAq2Md'u@+Dt# *;ׂHt.XgQ%VZp|Ǚ-!  /akw;_ES"炃}N+Ia AZ` ,;h2)<&N:<ϡ}5omNSb31D8:'7tPsĽ ލHn \?Đlg՚I*̍ v9A*DƤg"tTYP4<ǻUVwױ6.3]ea$r%FQ! #Lc:S ~@g0b7cܙŽQ(Z<^,Xٝu3Z 9 >!_._vQ D@,y5A6v!&FN!!>#u szL\4f"AHgb|KAX3뇣`ވK>$<*M/8DSf`r(aŰd|j :\o$FͬCw7 !<"Ӧ=rv5I[S !0@ۏNzI@SAPΝMj} ӉTQRrbJ3La`?FF^&}#UiD37 5qd*a:^ $*m-]oP-!0 DR*Cʰ.mUR(nq!TޯIE;'eG0sJ:f`pBZzpMg +X-08r%,/3A ~},ޅ/muQ暉Ez&^L#cLa7ɁwZeVY(!6. Lq4zIȑWQ35AsQVԗ/`B~,CnRKEEH1-PZ,Ԩnv(ud- Y_W34o-^eħĪ9Qdf,7K%\?z;8TqՎh K\% VEAcӜ)5 y̔;dC k:a*sktbXqY.RX#T~"f,ɐ(R~EB5%I߻w"{#r:x[ION%.&P_ޜtiAӸ(8J ̂-ѢIcyR{;Z ,SSfea{6FAʪ 69FEӁR1(38'We!!Em", ZS۟-] khk{ 4}v,~ Q^2u9S9mU= sP5x:.$ws!?-w \M[Ls)"/cn,I>~%nkr_FAnl#J#-hN+$CRZ&`YPQ~e֡땨f_aUηcdZ%eHo;dk)oZ0ߦ)ZQg=xIb: VcW (}1$&Ӂf}~UꆶXKHu( nLώVtlhg;"ȕS HXV5osFjo.GLplwbY$Nւcp^|r -[] 6 eCO % O.'dhFSd3w&c$!?@F._`Nb~Guн,\jUmj_e//i`Nz@ F" F6Jy``?iu-@V=EJ7ϓO} 9B<ɢDYa׸-/(?8v<-1f,+&dqRXe29:!aZaޮ<9mZL{ZG"}j*BIl8yt6+@kŐ--s_OȰg/> gI/[ LqwGOG0MF=ݡE+IS&ʷd@%dªs%=4 $רGDCi7mr3S|>k* aiT=?0|o#|[7‡'OG}1 S^g;qSd͠;0:oQ@i&{S幜+FWk_B-3*'(2Bayl0a&ķ(e)è.xRY2QILwK="'}tьnD}]g¶߷tأ_ l2'L Ц g`2kwh`Y8Q'"ej]øj1SH3צz}M12P?D?v9 Q| >%ZvB2nD/)$ك_1&_;#([qE)JJ8q8 kL OkS!Uzh!]-,-VS(QkfG2T/x!ATt,,zYH.N^1ipJ=#U崖*; ඁJ" eB=<W] /LfJ+.|)ڻ֢P|)9?N4}G@Vֻ_AMucgLͨT{+~E=nm#lF"["4'^@ ؎Г$Q6GsdDi+c%W,G*'S1NiЭ @T`Sx_L< Z9ePz2ߜ v!m͸թcTeRSa!,Jr ӥg$;PAxhK+گ'׮E5F+hwB xX:q$lBzӉOKhq)ZS@'/)Xz0NPy]iĢhRl\kdWqIm9 F%c$K򘑴>ː]b0iUH~N@eyEBS wm֨{C-T35#("ZBAbh)IM7 DԾ μ88 #_#dNA"4#,UۤNGR(K S"`C/3.#V^ 8)TV !BBg";Anf'_CXie2 9q1C&Ch*@^IZKp)FL*uJ|`çdjIyXAFOmrix͔F(b|Sm,}`pKO.pcN3Lt 6&(X (ȋA_I_#*[y+~. [Җj=NyZԊCB7;p)N㎤jWCHx1QXPkcmv6#蚊lKdתL퇒[e<(/(FlP S5.i܊x)$xۣ6(OJm†Gv3Vg}W ?Zf,l8ʉS VLyoWX#v͂+Y_XN STFv*k~YqŐ1g CJI9rT, G=/t#-]ŻwoT<>|U%ńt:*㶘IXR\u! 1oZ^ۆyA,$ drE>Kt RU_@Z<TW,\&/N.šv/q%MnXsJ)tfKr}y&7~n*Zs;c6j8Kʽb sșjbIY3Gyzu fcB9g`C t3Ѡ C| ⬬.\KPCA^ZTjuKz,z dc/X R5ku<_ _eG̫>8qV"r@ք1G*ZwxYhtē %&]IԴݦZ9bLyH*DM!C(hs/_qh0]3ڢwZ˒tǥ@qi, sA@ě:.,ɓ!(ai ƕt5~FDZBRX]%ܓXRa% ?B|R&-?[ VJ dh-lyCۭ>LMOF!ʞ++Σ%ZCG^+-(ԘiOXUFA2V0K؊HO<0{*?8͗6ƚT$^v!b08˿xeyBp煜IM}'FWuz1 k] n8ZE<-. y;K>a@fWGe;QxsD(9Zu|Rz] MdiP ju BbuoIK_} e~I9ΣS\'Erגol|""cQfORO'@D6҆*Ԅf4#*Ej㡊~ a V5>ιeis=D`x.yJ_^k*.z(L95 ja NA ܑaגt"PK  eMu{oJUϺQ'֟kP'(5XbWɟc*(Rrdӂ9ergv!zi}; XAS"nT4їӞHf9/ SĦ ޓ%;@KPpɠozDԧ,z&RŴͥh^YIQC~j7$Pb-'}J(TP,:$[P6CGGe̒>GQ{ʚ!9 .m𛽥Cp7ܕiNj=7v|5.jEPiGpPLkw$Xz߬ƒF%z$'~ (7әb(K6>$ ?w%&8HsR;a">Jzmo[enYWjO;ۍ?dZC}E"D N ^Pr? 6*8,(TUλp6}(Jh-&xTSW3Fqd;_TR= Ofͧ8SOPt_ W Е/XWO˖[`x)K~\ %SZО f^e&:9kt/V\Y*4¡6P2LHSD,2XCEMFĪX!'QVIj'Q dT) bsCk)nY= p4W~<[M92z\/ |[. ONGpV!boʶn+ݙT*?ݚb`U k>hJo?@ DQx%?h(DByE!]Q $Ft~,leX&z]y{d,aê|rWIWCg%)^P0kaَǧk0ҊC8)c'jf.azRw4?eMeu,B[9@Yl VM 2A:!x焕J<sdV@^ϱzu !@NDZ[oRGmM}wK1٭&{A*P>8J 8wmi \k`5 gy|[]j]g{ 4aH_2mZ>=R0w#ͩDp@C]Iq岴)c}AVpE/|Qӌ/X^'” )$`,# .ntWL\sfFtZ0d3, |7I!$Q GUӘ7:YN }dGk%Q aUYLRS xeDi;[Ag9:qtZX͡㼙0;sxݳދƫ<+N31:4!utp$D7B@1dd ֧`ֱTYx^hnFC ̰i!(;ciï~.HV+ \5:=h!͕} 7|U3躑Ao+ݾgI B*7OC4 ͋K ^nc]P^OQ9E5SMrٿ+]vPUǬ$/893QwpzF{FFv8 (ZWϰ7V˨iN4_ilHBhdw %Lr@0 z-'턖k !ר0I(t"R~ZR##I_;8y^uKPCȕ#2(:d B1LTyq$p euzHzj"V\ a׹?bb q,*#,Q^yl.6/hoeq_&tV2sGs ^w^yƴ[)Zd6H@EsȮ)#N*w Ywon,P/>= {H[b F5,f`?O{ Mw؝FGvvWGkvHN/ⰹYFAϨ抔{C}ye6 +4VnܯzM % HEH9D&Ng/;ZA(N٠&Elv~J%6OM=%% G'7l%vuShxPFЬtRZi!fQ2}Fk5-4Au@.mcR /ש!6o ',3_^^hhVFIހԫzsF a$^_M۶I;\ p,I!͡]{!>$KQy}mI fF$Db,ָCY ߴ FX_6?O'17Q22WjncK"KI\ }(xYBB$QXڔM"MX_63WH=0@׾+G/MXdݭtl)LD=L:-F>,2MZS;ߪcgהk-§Tkӳï ;Z')ىaD!A2\ϹxhW!ɁV9P0la.`pGAp C&֨t.8Xw mr:ƺBCm"q*D.ЂCWTu Hz|- ˃ڼhAH_]CVWbȣ(q.*UK@@Rrt6 éw=YCtd! U/sa^Aɵ& E/>ZpylUrbOˠ`\lW׼*F6ʭgMpB6"ay$* m97%vtX ҖbSjIMZC&mhZ3x#x@sy(~ݦA^u@ctVw;'P/|A;g1A 4| JC:G5pEl{zsÉ}9Wb6'9q̤TS|g]f&2(=Fl$xeZ.y`s]{wJ `ѱ10qGpÞ6I<&<0UG#s(dRS#L)gN "tf l6XY!(/D?^F_Uvm:`%%8\1|Om_CG~~ƚ!LӏL)}U` r_Jv52m {-{]*=Y KhNn@VMh򹗑ٸ7w}Gud0fx76hi,jO5Axd@=M&6(D:˸`}MI,Q*/n0o,e]ꨭ34;j 3^>W9SͲsV . Q:mTڊӑ%ɸ*Nɪum&Sʱ?ȃvro<_+]GaP.ߺGN:@kYX8Py6"NQ%aXpN\$.5.{xqEt^@sπ7=hjFIդwCP#f͇ yJF{sk I? :k'Џ7C9@p{Fax!h(0YV<˳1-i鹂M,Ƭoq.5A2e% wC ET{_9w5Pu8kv%-+yejtCme"?S)%Pj 1hᐏF mT%w`|ɇOGם ^;e1Uy@a)IFE\҉+;Ϟ\xAbH&lJv05ݜ8.`74Zm ÿyd aI肱:(LahU FJ+,sb62l}uIIꜳ8qO%E@+&/p^#cmqS"%l/a9rk|[~YWp+PQ~GWYYfX 3ȍjU;ے)ȝ@^ഫ{-R^F-'5Djuq&>AAf<, m GPn );2l̉./ȩPQ,(N]U9.M#tĚ֙_⦲/.{V C;O-VU=yl><^v2 Σ~ف4BU9+2HCi:X xQyLd[fuMEj]mzuy7 g6XថA9рD&4Iuqqt\'69tg:~&r35F$.DGJ4-^5nD4`~LLrOUD@Ky};3jL$9F;Hu &VhI¡4tvȥuWf\f m֭I: '/~{ʺ?*}x}3)$>:^_HW_|xsN`C$:ـ~mX<̦dT݂FW6oWg ]ϋsAj*qs,Ti,}~Ra=n*JDh{0yonbEE~H0Ӽ̻%10Ĉ5T.rAtS]FߘV}o> ?7)% D,~y~V$ 0JUiOFP*P{]7KD@k5fV$TπAhoxv/## bK{mW ka>upZcIodboÄ_sO|[zDS؜e/68"ՙˣ[ hYZ33O'E7jaT9Pk1Z.l~!AXAuAFa׶HXgY&Σ/CI9sz5ʢc]N9:pf Oc(;W3i ~N2Iao^ HiATOa/T5rGI1!<^Ig~Uv;VͿ L޽~⡡p*m v/ D?78rDk8 M-jhfbV\] B{z=U3m~EC[!B=wK$/;|>NؔAjd};}j0}JYWoWb':/(RCW~ @W-lCy˜iItRqN`悲F,TZgg㗱7Eg#pIͿ6›I lYo8K#}Й$޷lM00KXZT|BC' n.DI|-+l~yjzCrZ4`7k2LJ^:oAJ-ij񧏌r)sk[Kė$9\,ڐ=>pw9ùpA#Tk[{Ӯc OC`!\8!_o8p0z'}8?+2TYfTЅDo|; X^6֧ ʧDϘ^*cnˑp "'xD{ 4mPAX ~(L:nHPd# _Y76>fȤ\ܼG Q+<% Omd4q+ks"җs|oqZC,Aʖ]ANn#.ľ߬ N.KPcF<s1w/ @l>gOSoqQ¯$=$ }/~IWpz=(z Yb$t65mY+֐DO(2]4 =FXQfs~.T+7Mbmb-n@jpmYl!̾f"n®3Z8iE=Զ:=Q!3"&ZWikk!c:-aAA 1[H{([~mlER%KB\hTyMzTib_E ܵˊ.OLxt?tpGS0ٷ Ćn?p_P7Zn3/]1C}3OaB;݅w7 @tH}6QTkEFci]|)c.KTṆjdn;/` PZRQ{bTWJJXޣl닱/cVO\,׀oz`zњAc>-XR7ӗwkʋ#HsٙƧy۩RȔ<?L`cx.cvbd@}Ƌ;X !KǦ&-j ? e֊ȅe?홺٤# 4t"(0Q&ȏ\˞`(,>{>>3K)5R.J ȔEiH맍B& Hjֿ@AŖ5a{(Yр(}ʬ9;t?ba%k6W6y]ҝءA\ﲘ0%_. ]6;Iu~Z 67箌_Y1펌-45F,ʷ.{nSSD1HCj̕ۥO=1 :o7y.U /{J$sO-daGUnm<5Z[)kiCzjv8iiW}ۙ+6Y%7Ɋ&ydA#$moH}tႚbdAܴ_m%*9;T6t@2H5Ik,=ώibA:yh<'QX}eU?r-v5,w\N2In[TRbXweLR~MUĜ7 *>yc44>Rpق[iw}+PdH Юb-g<ڻR^H+Ŕ'.pVW<248;9\i}yqP>VX+)WmnX35'cwzxѲG1H:($oq긊}ݧZ\7?}^߻܋..M[Wf< \`.hrVsw|71M]LƀB2f`p潟4ipfs~X:_p3n5gaHգ>bۍ4dn͙,QB XY ge~{ILx a)Jסʙc(%!gP):dS^_w9~ev4\q^ j ,N*\ _9V=efk55MCnAPjVWZ^(r.Ϊ7G4'@$ioݩQ&V"ꢥ! LǥhܾjYJss]wb¾6Byȵr&jtzXe!}g\rB(3yM$RBES^ EeofԭF|bu3f4|04(:F/zvH{ѡ?VDh(܎X yYp ><6QT nsMvKU{pu[7"H}'gKܢ&T$bAֈa9D>[d~TC>"^/# KRacos9^4ުyc ءN-YTH7 =H +њUD*ֺݍUQL CB\)w}UEÅ48k v {gMzdm#q,N{Td]EB/g7 f›⏩:4OYGLZHCԽ=vr|hlr(we &Mdm\[TM$9;oV+i.~s3Lf@+gNMAf~ix^n8v_ٖޗ <ݕiVHw ȃϭu a3X "j~.UX@X'A\C钙 '\\7b15m@ž_ QPiBd]t٤[d/ibuS&í"jRq7Fv#I꯸=S8t,#3 IYaR@j1[u,#)7F1QQ{F}S v5ٞ;@>Y(Xq\kO6SNX}e]{LF,3]EԠtK,>G??D@!Q1z+%6SfBm_Q O%2%M"Kk2j?slK2V$zĹ'Q9e,+P2t:^w%L\.=}w`RZIER9 Eo>$6PrȂDʨxoe_2`$\$|6\C^X c { 12c! M@oJ;yLEfn1,n4k""LL֞4*4GL`AbjȬ1OtV7 %:͕uaX߀b @4DhZɪa*pBA̯fNEbc8۩ϔ\v@ N|"!>T"yW9K ={χGzܚ?*ΦQv̯=kp%rY\}T/Ɯ# (%ۤyÎi FS߸ԙ'.)_iTD* : A 9C(Ngzl23!$1yg`ℋ%R }v5:FN^aꦿn- R^nNqV4BZ+TWQ2.YIew<_B3ɒKFT}a'!s 7+@BֺZ8(@<ސK3 Q f٤/rPu(KcORchYY+i2׶Jc#)5kˢ&{B0 &dwFUm`FI,_ysArPC3]^1TyL\y8Xo`4}9""tB@)3w {Td= hX(b/j]:ŷM?L'1dw !MI9LBl%/Fzz!v}2C _zع 9C_s Zg&`G[(r*b9EǝfHN2N-3.+4c)Tr r"iK}-kCSK}MpF'b0:YzxKR9?"r{Xeq6’)x"%6+]^##뼢m)Lvue'tcnz\q4)5M!>PJi!0uK/܅ʃ~G,[=c!,,|HIn.Tj#=f2e2Mns| &oZߔW%}k(.DcEw~ uo~agj>t.ы=Awcu#\֏[K+U( 24ѰBS5e̝:ʽH{( >껈?R]{:eaS4w Ӝ/fm}2 vz MttU7`ݜLWд j-sn%rɃI|E8.2IiH1Jc=JF =(e@,,jƌedȧo“&ȯxAd M֣} ;/tkв ]=׎]MƨLf)uϚX}O#I4$A1@Px*| `/}gƱ ŢvM=Ts@[o=/>zk'0bŲ% ݟ._؎ތY25\kCwxF uf8iㅌ9P9I0!)le/N9>'wVOkJ]esx^QåLUnQbʗ0\EJƷ_Z(D]Jմ'|43ثY-x ;]NIƨ[A"uJy".8΋xY蟚]{gee.Mn~o^7$lhnix֌9tYtr$d|֮<_Z_7*eū ~.CD͉!MF-+McpfI916en0c0#ӌB  -p7jiF0K{O-tVY[aZ@oM7}4NSB.dE"zx+s^WeVDBLڦ^rs}WҞR^L}OWqϪhѱ0à[q ٲ~n'VՅAM}>,otoO"M&#x0-EX۠ЁLNV<2o?UYr&b5QG3 q]AZ{~cp;  :3T,í Sa}WB)ܩ/th닔}#`ɪawۛ[WM۵EzL$R]<]^r[hG^h˯b'hg{%j4Aij^ml8'ǂFA4e9W!gOw2U6~)bec ]gG8/)`XMՌd+zc)MĢ3I w;C4v<;م- ;Wn2 ס [3\R@Gt&hh: O'5|]㟨ز_˷xqY `,|--9gpr+䤦~>_7F9ZIrῲ柅F?'b6dL&|w ꫴĆz9ɑw0bs=4ⴗMo/>PN" ABIF<~S 2PݟEdbT^HvY"M@ĵ` m~p|1i);I"Wɧž}PČ*/Lhޠ\=n x5SQ8-a™+&N%T01 UGzq2a]J^p 4ͧ5m`(74$]y2zsNks=wz E\Jw kZܧ @OGˇT0B 6J0̓\KXޜ0չ^`h>LZ%|ԺQ1(Y94m7Xyo%aN X\ Q}Ŀ. ^5.mQ)[lMAC9 fRf` ղ.$ 1N(#>JݩECq{ |DȄ؜pYI]-<g@>#GnD&8M׼J-z_xp 0CrMB@D_x2CkrZ#{LE/q Ye8MwVIѫ=$].rd:9Ajf~b6Tqv#XO) d60"MPt`G"Klkl;1~?\J$9"v^ioS#ib5 xqA1˖vQ9 60AKU6_x2&+~Oy"tMt_G LLVk$.@ Q9I_?e&@|[ |I .ךW?71 EO&, /̞b Ui*%0v[M-~b_Z02ckv1B"tͦX!Pz瞝uUbv|KڇӠ"G&h~CtH.lLII0tģ}?ިDm)_yxdgr Vi |{ SxTu@>P|C|؛E}D-Q(n&}JEvS7׆ݕm]32`,HD]'F=5{_!Kiرe> _|I*DDBrD7dCޘPڨć-23*TBQb_]0J ҧX."kc&x#gBC@YFĮki6Ieј(qAHjQJ LYG.VIY<  Ԧ Hޏ/}z G7u,vB=_$Z2+s/ ;l g*jCݮ3ϙ:E>Rd]jޞ6n*#Sr2uS|dRRP.]Wg_f2ݡ)y ƯwŢche[uv/2DNDJ*(/]X:ڿBtp<-kdѸ-0Mu2ZN6;6Z]<ԏTS{( ]') njo Y_M1j:daf.Mejeۆ0;$6Mɬ v{/9bE1/vvAM}z']55j*Xq F"RSD 0D6>+b>zdCfo8qgKDB  t[s@{ӽgj7%PF㢵Brx4dɍ8Jtww$9QYCNnFf||)Fs7P"Gt1ʭ>zHPo R'k tv1Aĕ4&$e}ZDxvW\/AQq}#r"їBk-tΎ.p}gMB)R ё<ơHՔ};~;# {5&<9KCTwn]{.Qک8#LZ2-q} TMc}"+HZ4@m E~@XlaM/NLvDc(#Kֱ&6bYˑS R+&QtThIPØAN\i}w}\层 Ք* ``ThDHaԵ,OTWm0~#(C-3f7n'i͵X{&%t@p~LJ~8iqϼ1 rM(])q=k8YPa8 bhJΡ2<շj}PZ[RzM_#{Ci<^KxtP a7^-ZtP+MKiI0 <\@$\8S!l|V2%Ck?TG9Z%dR|F2 $ff8!1|ճ,(9 %stfU=Tc?F4^zV]ܸ_j#Crl"?7^p!WRw-ފ`hW_N- .ϙi:sJV{bTca?}J49ߠ`"?y zx~ܖG(&J_'1(s-~ޥ4YH =flYX *&7߷CۘEwbAeA.z/zG,N7i*v@^>k :cA?P|@?ҁA9c/jeN0+;Ij;9'+`#) I$!ea)EXsXU1fkAFşR!RX_qwTc̄ǻD&N鄦 `ݦ8F>℗r$L7nP+[9>SwPz}mD>M  ^`&Som4JY)WA*f sY GpwH >7[ [)S26 {}P_%rߊvB5ST]P~hCǶq\izYJ EN1Ɠ yeh~)d5Eb~taPbsZJ_墑R˸9ł5E$\##:qo:dT셪+{aV3(+#/Zq'|!SM˪8R+B[+b൙,t%ќeYG+3tTM"A>/%#%p5$|RẐ*F֒z1 xn?U=ԉEʀi'd>jy87Gr_0KhNbv&ێm^IV"lIw_^Jw A-qvU]0[ztV%= <=$1(ÐzO!9%dm,.g4բ F][#YH)9taƁ=6;j-tg((&(r3ìNk,\q_b2YuF.S%m#Xh[{{ z:]c/y vB+=vɬ{gz~*tQġx۽>=bFD S~7bB&@IJF&޵[DG; BN'K/cCF 3.n5f o[i?%RA0#M A=7ȄYnu՜w?HWQp;2ա_2 OjjèRo_}G܄)zBeyzw#/D-NvjV2@ƹFעwm5Bf~UF8& *ٵb_lj%h_6RUv + ~G )]x S"\Ik¼X*QUwP=0VUcriD3LzRD1n(?o*uu-ly]VyfsNo _`λ M%3dVh'$u%LLɖ;PLWl54V;T,Vqp,o9[_Q1ӏq^X1±e ٌEzK(6nOF_,]icc:u AEQ^ɭb|QnR8{g%+p'7'ue}`HTٔDNsKMA>voyfE6s~P)anՀB>5ߊqeP`S6>s'[D+eJ$Gʹj KN#ZC=ބDR(?*׏fTB϶BiĶ%PW, ۈD!{nRugo mzp,T-9v3l@i+y &1&N^H.¶cQlz_x*yՑל4xHcX3VPɪry*z؆bXR;hcp#$ci8Wb\QIܑs& ktex^diKmoL&'wMpprVN`6_5&Dǣ -;^$zZVItӎG3yCKOE?&YʯQq8縬"Jbb$/Ӂ?Y x .o23 ;Tt_:ENBpt?{dxp,] 5  "-"g-ta|ښV2-M8%r71pmxE`+6^h6&: #k=rZt%|qW0)C]FuYVHC#E|!NXmD?k*\8YN鬒72ʤl=u6P f/NYmՙ|zMT N{j$P;-u*<8vʑrcd"dPb{ [0m'9YښD~wTKi 8` eRnc(9h]LJBe,űqd/{,T4Fo2Dӟή1C*u80TQa,أT!}#F2f2eTz#f+E7=ڿ#vuO{+Vb\İN5,G }:^wcXLYO sZTld<cHv0dԕdsV/,s=PZ2L7tDxYAJ&5r^knK' OCq9C+wLNĦ^ZoKM/_.MJv>UZ/ջRv>uc">S0XM.Ȑ-j 6\%0^Ag.HA5l=J^@Yhr٠^viO&ʖ0ϩƀs!F#CZm0W\|4;tb牑+ 8}I9M.ogsh9-5C sB29^}9/vQ9B3ߊ7ӹs/!I8+OZcA!ERWsn,$x,lVUK1/; mʀPX셫wQ]\<9 ZQz\u!o]_vZ ~HiӜr~ jwM 6,[DfaԷ ET ZEAïoyIr >V^3b!N#r Vy/m73 C#nE&cDcWʔlP޺PXE{[9)Մ~k4.ϛ!s}L1JVvܦmOM[xA-йUH=^-YK@`ת Jw’S|G<:-ΨfFIqq\RT^dJj$$5gd^F9yc墑F#k?*Jm"xݑmke-:aZAP ? ɸ%ht1G|[/88"o="Gh;9cF+_N>uTGv\jH+=mp-6nǭ)h4˭~gOE!_-q9eުvQ8oCS_ˣT)V/ vsLh{v>l" m8UB|!q6!Фམ>mC""gq"ۙ]@Yϊp!3#ܭPSGmas?Ϣ^g))5s/ήA{^_XI}|}C(o ب ,ėm6v/yivd:hz( Q:4ExIP6s3kLܯ{XЈ>NU _V "\ L߈zG3 ԣ$3;QzK _~A*'E)6=dՙbN&4.;ݹB=-.+Ȏ)7-*ObKb+8LUh27FUqn 4"rrbǠ"ln$i=-l#5)X>*p 81x`6S<Ղ<7&y&|d8^lZJӼNsqh`RtJN9.Uٹ}Vi!.[WL/ ޭtdJ΅t]K=^тoSଫk9[/gboHPƱl*uT;'U?UrAP iT&dz{xqT\")9f"gʆ~ueYҽs9+ra j+-̊*{4愼MNJXDx* fT"*^B9G<~l=SpmeFIhӗIop!VBQ{_^SBJO |R'w"qdzdAe fK+=d[İry"vi_z7h(HwY!T T$$+VTiDD\^_}m|;Qc+"ccODh7D`0U_@s\Vڐ3>m:˥/*N:;WFUb2捶UԇE[ĕ=_Kiň? 0FyMWh]}mݹf-&*]աnK͘򚓪$~U0'!S}zHZ.le[)`QԆsInC2 ع&' UDmRANYO"D4 ϊ{ꘟ G'չ%tZ"xhl-'^GD]<opCDS}JW8<8UxmweZ*ZhƕH&1gr@ujyZkbΝpq@x4@yWнcF1/Rc}]ʥ$v=kSeNvÅeRcWV' HiۇK:y\_]We`Xk :YPC§H|f38~@PC Xa˧ѓ`K*tU.u exKu8d~Si>/^izdE=P1NԆA/%Z``u[!$RZ^)o 84]cx׵R3S>E+i,V2G,EJ(~Ϭm<9(Ƿ>wU[\J7oEg7K=\V~:\}Ɛ'وJrs7$=ؒU=BgHlh/մY50)Mqv*۴ϐ2x l^u+ :PN W{!oDP/ NHsB.~+;&j8p n``/k&f1\ч3o G[bUhBlLgn?E吚uY3 #D|H௣ @-6ڬUƤ;2q;je:`g >!l!$i!@ V>|&>DxBjl!7J[dɱ5#Վe:=Z>P FJp]C *78 |z{raNRXciM6ZT] ]$ xM 4q+.e(GD,sFO清"m)S UMZF5EHY$N!0EKfMN|vL31ZFh$<}Hzxm#F_\rplPɲ%=]zc-:wapv0taD9^n*~\#Q":T\+ܸ0/` ##i43gR+x{ V{=tk 7vXT8Щ bu$jVJ^3!M_T+\ذIT2O ׮=Y&\v5rk9EmZOPEPtG_. ѭUkQ99Vt%xlG2M;j$XOQt1dBM Xt72*;y FݚMT&V[K\~ܷ,t] F܎'ʹ4SpT Uwϵ+|K)?tpwС;h9{ EQ4p6箖T|5V3pV 4%"\ߪ7Ѕαn®r̢Q=V|-<;g`ZA\lF&[m 325 GuXkR۰‡=Ȟpn%?lI ; q8阠{BQEIu@1hGV@YvԡVyp o苗w.)N"?M 61sop@9Λ!bJ 2ͻ d>ܭ7CB؍Iaz'ItD}BޟFfzq5?AWc9t}#NxlےJe𰙿%cCêf⣦3bϰy:4=wnZBt):n?cc_.o9;a*vf hr\Şv !aU"Xk]ߐdpsZ yT|jrH׹莼n/y3;Ee? f1DYh5FL10h"C Sm\M\`-3gmIJx.Jj }o.B3?ZjrB'S=[4K8p!尭ef*R9Ci2n#8ӱСō4u%Dzjԣd\w u_7ixūAg5L Dxj_G}{n6JLEo#O$Xus+DHJhqlJwBBʙ_Zm 2e0p7pZa_S."[AB h]2z5w@zwݻ#z㉩w1eJř }9)I/ZYX# W~ԗ"j8e\!WcR/y qI[IB H!ijqit#C ʦDյ>w< wp2'q^&/*th4B1kGӘjʿ¼C~!HfhöDD_<nHeEEbW bꩊ͕:n9Ʒ7R76L 4W/49Rp Q8H_f/QVx8oAD\6B0g2A+htܣBI}YENmaR8O #\~Id֪ RtW$O?>L.׭ ]BJ<NT)_Tg٤׿-J }jA[A'hZSC^F2q{3X yCk(U\VGѵ;ɛ.'3Q/&bYB>m}ZӘZ[Oz+7z8%gmѕ]DD B&G>I.yo3#%z0uϾUm>jں+r8!ȣ&N)4#$TX kϯ?ĖKG5n_ZW'(" 1y$ʖVѰ'`ҫSg+|*쭡.'PX..η2Kat 2pghe7C"oHdNF*EFu@ן0pHw;<8 o>O.Ў/'Dp%RO>yoޞ㕓+83C3EVhܵJ02ekr@bDT*4XeA_%(v0UL>Ewy7QttTe@hXhϿCMDʯG:aWJKXy+zXx()a"*dn9| +3{`:Z!bc{93 9juO#mJv]0YCw]| T9<;ٳEW; =BáNH^+|غI(@شSAQ l@hYPt/(lAN,}&,dK. V{ߑ!x-husѠ/؛%?[I}%D'/K4y;z :+'`=Rж=Җݲ`O+w2|bf$÷G4W8Xz֣ =!S v=)م,R>{bqsOgjZl_ä?YG28kb?w=U;UctطXg2L@YJH tі$@G I}5`nځז9͎%+.|r,Bߔsjΐ+ 8/G[1bC 4i-jnNwB&.>JXhB)Rr4}ftN[ U=${7(=_>18A%&4"kB~!ljF,iIٙ8F+R͆WjL&]>޸݉J7p_K6q;)r!S5,^37F ֓i hG+ñsasI׌Ɗof*Nfɭ.ZMY="9qF;궐z)k!ȲvG"8lʱۿlodu .N7I -$I׶Wנ8 +^ԅkP#kq$6dXn>Bo VI ›ssƸ+8QQ刻Z,ӟx"T7<< SVR 1\:-Hݝf.||Y-Fg@.g'PQVW+r۞ CDfZ[;d|Xx; mzSWhQK̖Ҷ>ri z2{[XEׄbe=4BqfPُwɎ׶(ߧ/QVd!U?,3ԣؼ_u8:eo:֢;P6߮^#d,НpLRe(MZNc\o*~1S9Ԁ&kX=hn*S94h!-<6]f[$mF-֍Tlpi[cҘj/pvJOS<a;ֳbP;*nV17xnY0|xRI`$öwws&vɡW dhNu#HX2PCW/ҥ2\ª{6%kAxPl dpɎF)|Ǜb {ף"NϨG-98g<0B,VUtupFL)[0+8&@C)g>&k)xKM[(w4"X$,^瀀*7ZVjǽq im0w{$ߜq"Ɂ ,~]Ǟv)|Q(:SL" &5͹ArF2<םޕ|*UU+򋑔+,,XrsB,RҼe 5uXǂ2Z~- |7JSy`\ɀQ> ׈GQX 8j.S *T^~ l'OsVȨIB; jWH P`xQBr6s3shOpV!B+JzA0pdtփ/rȠAfw{^ltq8e֪o}.`!9llx[2'QT]Y }Eds 뫋Q1hC:cU\F`[r^MvEbt (hyL|wukI!h+_`5؍݊8s ,$f#{F.cd:ݿGUS(93As}S))a_zLo$ޣM`js%K막Z`gfJ(v/c ypn-nMԒ{FLNpQYGt&m1[eD-d>Gp_V Ӧ A f4uY砉 txʩmDFYAҵ{s?ѯ1m呤>*F,=$YGTN.W!7l6k08)cM#7&Q9a!yNkh˰'l7ēxdNoxB5ªXx# |Xtc"g-RApf[1}ώu (L5 b[twUr? 41 [vE;*+I]ɘ[feseT)cT/~;4R}ux?Ś39_T01>}dlJNHVdu\,q,B'jZUIy}/_ Sڥ)CVI9$cX`yvˡ:m h "h?  ގ鄏Zө0Oy ddyOg-b 3` V:UOY6b]S?DK-ty>_+ɲ*~F8F5ݾq}WꗳPYVT[KH;h龍T "񗭛II6^?.}50/qA&y5$G`1 80u,5Sٹ}Y*fj)U==f]p@#kAQ]xQcd#ރ7M{EbnEFC[-( uw!"eI,yLô6xr#O$xUt}2XS5:7Y!r`(E~+>NdknztՒnd2doz铬J"A`=U$\!{>940H-:=y'q: 5㽀ec/p)z2_~*}w*-Hfn=¾I Cd ^p$ \]s;n C)F&* Mi`c>d&u!\jOTs'/8+(&.V*fB31Y9sz>GP+18Ne^p&6ނꉼgG 5aCߞ3=2M.p>D3`?!# j+]əD zj躿ĝ뼝Ih@B>Cg`9N6:;E:>f`.(G \=QJKݴN4w񗋥)mA;}Ekf%aBwh_UY<\.kkۘ8!zF@ Qsɕ}I;Sf3R;.?#ֲ39fo"=Jh%{u?Ū%BTܜbT}_eYS7Ǵ GDmvjkȋI)  b5H{ ZX!jd|.0TCM*8#!i6R˿J %kiv9AGZ*c1yi0hεW];1 t2Q $,rI[p1 ɊcҴTN*Ytz=\vqAe۷M%b-#Ob)l8BɱPh@UߤQfQjÖK"g>WPMν4N9 oɢ6O1y33zBP,t/rD4{y, vJ wLf3Z Ӣ Fg8>r4m+*um%w4覙1U(A_M(zfDUl4(lO"a,VWQ^QbQ2D[ wd,^UTsM\{  Or\UjF!1!:XRED z'eP:+'4) o@ D]'#TU;]8vgw"`AMTL6ݡ3ФϙX0)>R Hgb\p~x9T3Ly!Г^"N]!zlj 9yhp-\y"4 ͬ fg/μ}M@Ɛ-tZQA^;q&p:oi rLpR={Hߦ jW1tWɲ{k/UvzD?e'& ݸ:zUb]NjL@r&3Wd{WSTly>G =wz*5ݿ@?my؝/թ\ȳ|f Q&c ÿ~<.EɄYȏB].:{`7[qDMwkN]ݿՈ:Dq4nژ+cӭ?c6t)":v=U_2Ja.E&l&~'B+zSsPbr'<@o6bFdWҊ9w_ ECFZs]\mr#Sİa.˻_w, U&=޵]EܨH7"X'JV}ۊ ߙr JJ}UK%p-%: % *EB|HИ& n.%ёM5]E8QYJ/N>`Ϧ$(z}\! 3RU(OeeQ{≵ptvH0xvcicQrB_(jo}נM$B6YNf;܊/]?H%D91rw%"9Y5 Oy_Mqe<2tP(}:% f ~H.9ąED~rdS^غjpCj jێ~h_ ]ܓ}w&P71+Q#YHY%ZP@dTz&b`/SQQkbD?Jy) G]@zG60hDR2y` 9'y ߟ1S̆ɦ WDoC? 6fр {js<3ɯ1e_GMEb7Ky]A1Pߒ̑x$v)f^&ED$1aY3^3n}J~4^=r(⿇wsv\9l;'%`#<| nboDO bD~iTK;{ŞH @2qB Π[|?2.X膌qJ3?"5Vgw:PNe YK5pSQ4  $OojRl«(|zhݎI=Z +J_eLFMX1|,ꒁ< \!lZfA$ @%Hu2#v s:C&enb)g Jl9<mD>zGSKJ9N[igF%(7s XUI" ߔ# Q=GյA6z]go'yI˷K Փp+RMQJŮ"tb G"V%<7Ipt$ fM0Q%NvEd/fpΜϻ]B)&lB"{ͪo~9xLUIAQEއټwP\kb,XzSg\mv2دPܴ>{jT2!Of>_V}6omW! 0/dB;/(!U#08NmZ0R8-?.%C7U#|^ B@Nu[{ Լ,Τ M~Ο}+6y㰶ٲTph2kͬKxM E5"\*E%O "s$Ǫ;3H4uQH`73.+8KlZ>wW{.]` (OΚqǪ:Ʈ689yL+|wͧ|bSJCߔR^]/P-bTO=OSOC˗ET hE: ~Ho.%QX=ܗv*; ;곸)klmLz>~u!|{g5_xjA-/jQ|v)P=QE>Gr+k k0ΪU-gHLY@_`kxדlJ ,y鳔U9ö,+#v9Dwlֿ0lֲ7Նv\;F*^5l#{J>?47Ryԑ]Z[a;CfctdߘV`B:HE@ J4Hɚ+LB^d9f91z{+U倴܌Q1FHP%*\ 5U1a33Prحɜ0-Y2\ 9˛cU=R|.2?}ZЄ9;g/q&fIjT=xI 6Uc" 'G۝,xHA߆k#񫁹²bqiq1W0Nr,e5ryv6+k8i1.!̉/XH_Ӹ"aGl8b휫'~&KB@J@#]~BBeE%of7~J0H`**9}IpjFJrI|s.!xIVܶXPcwr;SAJVnL`%+K+HگONQJ81{Lk0,rq<-*j6$+.xQ>zE0&&^ܟ:<~[g9+Yv&vuEuֱh~DlY\_g~p fP,)oK%9NS k2;M$Ư79%d')Hof#`o{D%֜j=~5 y,W\y}~cS$]cl?Pgβ atp7/TC]Z,5`>#U!w!d})(w `VNlL͛ սW#,wfkyӊHxx9'Eb=S "V#$Ǖ}yA4gy8i f?6q,S6UZĩ˛YB6D{b?Ex3V@xtyTF$7K4<XS2VC=r9bq5r@p<683*־ 66LRPKzl- }DGCěnoV5{oW)^Gf`$܃;w+>(8je(]x955J?M_ةb@#]h"DONV4L&X5B^odb>rW\Y!D} 1S2ט`N$7i8"6L2%<W=ثZUp$'K6nԹ:P SD 9R*sl,p`[}x},bנhY9O;Stn!<@nEWߪ֍wGIrVKc7\-k`A@Uةg>s\,W Is=xRbW͢GV[TPYoފ䆮ebybqN#Tgc=CYqi|mN~diJFP.*7y.Agᶻ+ɵE[?|+1F;z{a YYu|I;t]w`E4py枰mo2Tri]kxri+ C̈́ht#_kssֆ<gQ@׃27F]7&ǹaa1/VԺ9mIȼ{;u"B{IUGKҌ@L@c4޺arQD" `T8e'>~ EiZ-dS#0b sur=42\^R%)7_|FhS> J{_KP,]f*(?]7!c 珕QXԢ)tDgh+cSԥf3FKUw C?+wVؗVqp6Nwkf0ĥHDLY27?~imzZո$[k!G+34ЂՉGz#6f"Ae#c'Nwv%f.V.zY3RoIEENO k]`شBVGCJK,>9-aQN}`=ޣR#Fk2^WEb[8P+b\gc{68s+ld<5&eF*t^}'X-h6 :y%z"FⶋєW \(=YؼQMEI$a5:\+:Ru#4ɑþ$Ǫ#+ccN"ʈrTD44\zzy e;ߢ"KPZIN'(_ThLgHT@ YFXKjȐ]`Ըdzc/r'Jzm%FPWFEeb+h%2@eadiv8a$% ۍבcsgXK(f)Yb록[k)U<(+hܮ`?.:6D{#y7=]Tgjn]twU7L|eSn2nőuĞSsFLz9v;-Xvi~l~4xUL oۡXranf c g'n zDBzUlNV5IU1 e""֝]^]ZNjACW/6+kͬ?\ǹ\sA1 ,g~;3Y?9(Rjw}.2'yRFO9*ІiYbQ##+/p2NJ3[=N2Hԛ> .le#.xqRLAVj'TG, yZH8 ME'凮xc8QY9Tdq?գ]yz[#Hjh^%QKؐ4xD~q̪x͞Sۑf>f٩pn| l%YdCo-X9X_Uik"'4G lنpMEh"IW R"|*J2lXVx &kW6qf%]2 dƹ蕇Te7j4}tsN͟-m8Kjx[b]= =W}ٝ西xzYyZ.N/%qez74¢MY嵶J#Kp8+ÕnwG!13zɠ wF9oZb ¯{xp$줩Cٻa"zpf,͂N6T. m$1t ܶ#«<@R;$x8r!Cm⡡0H5ѷa@߿^Bi -'ס,sBQGqW=ғ#Kzq,˹a$Tv̌]=nj^}9-5tH!Wq*&Ԯ2i1uW? qs/yGR= 46Stc.VԤZVVhEͰiJr=D[Xb O4/i _~ˬ Y7lWb7oIv FZ{bFK0g>(yKZģɿiP&I{E{,=X9{W ؞\a/93*ޖ6wэ:]1Q/,FGH>L cg֔xg1TѰHǝw /0Sm$a<" V h7Pvn|Dfw<@I9`xm6s8·MnXgN0ňC0>v ƭFX t7ۖבĻ~UfO?G8u DkN@wM5k]+\#`9Zpךp/wvϤb~{."eG::/pn?d1?Ǜ!g9')#nкNB+CREkwQ'WzOv[?6~`AE"&@7j,HouEo JM _5ͪ3 /x|1K݂z\ORhZhQzxoDa{F06H|2ԱwkֿNϟ-7k{.̭s,Tr9>S3{(0pXqyq'ʿ#cbq;96YTݲ´ :7Td"SJYn ߴ*(+2y߹ڎ1*ҕ϶(uY$$VK4.ɨ8I5+mZwa8zJ4&{~.?[EtyjKAQw Ff{X}%/H 22.4@; ̉LkluJ<{?+c(6gKOuk N[#}Vh;AՓ3_ˇ)v^؏\8Bw#͹.:|Wdwt}7R1Uv496ٞ$5YďwlHC 4r݄M έkN+o[-oQ]P>Q[OSU ɶ-LL9ٶtDNIfj$h?syQl>_O>1 >i]`!jpAT+jl H&z U3?21B`Jx,Tǚ٠|"Qdsa?;!Mv+# Kx+̻wb<NBL18eKj5?U٢q@4 g䉡]Tyݶ^RJIʊv9|n3馶 z1׆̻^tv.mdxwEA{FCivv<7wf|xoPU,Dsp;^7$%S{qךhUzd-r37Z`p~f*.h㷒Thas+òľi4VpBfSli$?_!=|o+($*ppΏ .Ih7V9KAgcUf:BID)a } C:J>{R/,ߡjWQW SmmhɈF{YΪtAuf?k-o4m5l7oAF&~AȐ(Si+ ň ftwERk骈+ $-4ޛ4`j ;`Z>8TLh{1#K^@pXKbjV~=566w;]&'ڝdx@=,As `N:<ߐ:Q*$AZ;~t gpP*2ϞKW([5 >=VՊ~ eE-D}̽#oedx&Xil_S ?U{- 9{١7`*ԯOJsǬf;shI|WOI;lL$,P m|).wY~@2JhYm?(6fɣ Yϝ[ sߓ=\X݂k>V!]&n%'= q[Y iobXD6#y9s| BNYfҊzCG!d;9_Q@68&='}ҩsKb%$װ$,O]M%ԩhoݨ4(99 @x *"˷`*jL0Oo%*/%X '@JQFEG`VӘ}@UH&Pe}yHʨ^vAM Q$TfW؞*T(jkuH4w>SUl:T[j\p>ZI; Nx0 e N'K"|Iy8Tt(zD; [`P3.{09T}+vV8K@[pAjB {tN5Opd-'R?eyQDt pH[SrmjMt0_ʲuAE7(3~1?Wn]K 1aJUGfq*a,^d.CNh\nc1T=KmdiܥO׏GfN04N Ӄ :c+Gdjb$Ǯr˜Zs.f[(jr<oa  >&Xd",TdxvMNE~E m3Aa"3!ipa>-S xN7}` 8-£s7=^+]& 2^$ݫNHKntrӎ2VObζ:.HJ|rF7(*Ze:F;:*3 m zAdCzC*tF,fKLBfݭr1-{ _4g~dF֔|Gxf{'4;[$[N峚}$u՞z+~%fþE0 ~*M.SaW~IIșM@:iGG'Rk0z()h_5 JB0V7Jv8mgdX*35Dz>az=‘}GB[ U|ֽ>r HHn%V3j$ْ^9SMۊΞs“,Dʌ>Fl;qeΔ"xpWv>.&"7vo|'f]GS|&1qӵtdT6yzLgZG٩.W #4^:{+{63j4 Ę 2*` &LNwIQCN'x_'~ .7~"s@+$O⮳`DZۊ0?~ z5CPH{8NTEAKV]*o-H-6 S5CW8WQBOK!x&bKc?i)UGL/:PGxؗ^dAN}O C/D sz5]\>"`ݺn,='Kk­.m&z*hj/x"hkzVD*DU!ΉY#-˒36?6^0X$rU!^*(cQyekpGyi6k'>9\k2!5'ψn)wΦLOZ䈑O0$*XH2ng䇜՚Qc_-2<;f-ipQf°;b+?Su zH }ō0:#[3.Wb/釰f/W/h;'RQHy!B3bz)Z:tOAbL]Qmճ6{=st$SF]Cȑ_&kcoQIbɠFb M0뙫ɪjc_0 C?B`5EI TsWΙZ0EC_ë"sxMR,w1`] E+k9*çh2h7#?!)b/k6&jf]=0&FaW.aׯԷIl-SXW_#,@PϴJ݇[HgGU-u+K\ʟc:rmԵ8w,}hb/5¸8)E[ RQp5WJ kZF7|I2lܮ6uFE>2f[ ժc7AnQf,,}]G@fsYw{<^b-4sb6*G鍎d랝ycڢ)cix4=KWfKd]伡)ZNUZnp{|K*}X$bam@o5;j`ga9ӑm"ۂD 91yBW'Ҭ8CQa.|7D-jU;%w_K] δOfS%4 t}xmBYaptMɳК 0؛sm1F52F:/P&% {=P_hl"B|w-s Yl--( QttaZ|[)^kB4k1"`,U*QdL*ϙ0ErcLK~_hA mg^ZfA[2^0H#碼>3Cf][/<M,)% ~RiC'؍Vq `k w?թoBnjJ+/;Z~bH`j4)`gDޙ'&}@\`CC S^Qn2-:b^4}hr6<2 LZ&!ɥ&Ɏ]t7e[2C$Q ìqC@>V?o.ّ,T"9P0b#iƶItbCOVjͮn,pÿs ӍF-Wӯ,{ u^IklfZ>y!}3_㢵Fw 8ۖJvʂLMg+à@2cDߵm?. ̓[|X. w 4I`XIM1̒"kaMuV+iȳij,23 с|/z{k ̻µfkXDhջ*lH}1.i)\2ncL2B-cI ~R 0ȖYL v1A<񉨄RuiLJUHhܵ*Lt>gNȫ(';z E\_/W-%c@M0e>] ſGL2mi!yeG;>G}#W6\HJ udzG-ݽ),h;-^r)#qv-6*/fE?Dod܉@9~YNnl=VlNSvI >0mm0{8n:`>W>XuƲs*]3ċ(]b^]jePgpN'Cct6f .Nrk}O-ȳAZ:#ay1N=//im1㥳fZ=Bvټ fcVP9ۏx4d$7ړ_VY#GWy{/QE8:e+rW%ڊU ln%&ǺLG I{8 y-9 CW?߼t/V9)HI'U̾rJCރ 7BhwKΒ-l)L}` }P?P"EpJ`2>xF- = ʇ+A ,$`<1̍4<+ KI>gtr[ @e1gD@q$M0t&')ҧv"GJ cw2W$C"4)tȐxM׸9]x|BƔJ|RUN3 ezJҬB $Wa0HI)FcV!ԯ]G? PA1 NQ%gX-+5:81 ^O<wd( ~W杈uQMcF&!z\7j]9wʳ(alۭgs>fx)mmNGǬ90|0hd mրڴžMM5o{.t/Ӌ,F 6sij\,ϲB`VĘ9h-+0ƈP* 7:(D5%i8GQS kMQ"%;B_%ƝBѯ6ЭYSTcCv}C 1j|slQEp EFˋh!> O`J9}Tj#Z]!n11`6v:718( X '4%L!P ^1y$hf dkxyT-ZfIM#ZO㏂O&Eipm8GeFe3ܺ H`G dI'~>^tğ' IN4Y: ;O6koɣZT.w9c;?3ǽtD\ c.,[p 7?A/Y9 ,rS~MbtVg K4/bg>3Ȩ*C+`mU_,.|aRD].5Q1Xӡ(R_r8918 ׶/;xT\جXd '2WoRX궜0pI HLvн䟽IO6oSsFDfq-e94ӣkql&>+$^W]Fq:g-׿to;TFqIjB 1){ұ JI/6 *93aA#zunJ\*YИ}L^TB)dKՔί9}U"CGs/≗)o..r S<=l16T ] uK.>#Suq[_vt֒m{~J' ˿uz#T83O9J]_{ڝKҜ/l=lj75̢3 Qlfh\*Voϡ-Q 6r!R1^Syb%uh^\WU&]$zsZ]`<~ '79yǽ juG\Եڜ"/!y3#>Nc,w8j/=N@AT2XIq!CG+[:"&4'5c`)=Q$g[ lxʬ%W*<φ.sf7[ǰ\Oc(&-Ső$NXR{k{clg@y燍s$2C8;dbKeRo3T,um7!dxtcmAܲ%|Z-C3nj&׼/F&va.#/ $i8\8iyB&vc8eu B[B#G;S󾱵#q J#H+4=@ŌYwf"¸C8D[{RE}AYd s3뤆qGk je2ͳʔ ŷ8X)K2 *PB$N}VmIJg_fm*pJ G-P74L%*p[`*rlZ6HխZg@zhD624Aw.nla=D7:a8ă%d>UrJ@N,Jh734tϧ &8(9#s:3jgxD7s'o<6ڞO75呁Qj{Pj, ?4;\83Y x6CJBBڴ?+S L9h`4$nR@y~ƴL^6}@Ɵ%[ݦ42؛<7]Z[sr8Ȓv?i cAsJ{2aTZA1B*9G6ॢP%*Y(rP /ҁf4/?wOF#W A "7GkO@뚰N)7IS{ulXנ+xnx Fڪvc;B-DZ&Es! ><1! o5u ),'ADp g HbStcIlu1ocq g1*ʔs$UiDW0]l+K<8C; 6'k~Q|csyZbĎDbYS-Fݏ[4ȺvM";b NgY`k;+}[LtMgqiN%~7cfcGV$:ͦkg]\Tm6NrrjcOw!Eځ別 -_qƅfqfG. .K[˰(agݵPN#mssW^.9]R,poH^!*`7U$٬`2| hS.mĖ781hHUozʷxN1B窣F4t/3{NSpE N\THy;o{|Q#ʯ-z^RgѼ܄:s+}hR;(z^덥E~OS+`c(`?) (hH!Y.1AqӐkjg^#Ji j"o+JȠk].޸viA>;6BCMZMc㕅D A\P2lz$n\qTvk\QyS7OvY2?FӆL-N7 o2d]6%LE~\Ho/ sj>E/S7)Oۉ,AAvU _3 0RwonoW&U? s [!y]j+o 줠4&t:DJ[)˫L)P0D$OѩSY2?^g: v_tU-1 +օI~P: i Q@OQ8.&𐺂hx┹8w2savwgfDJ1ae5E MIUє 8Ʀ@CR"] 38nEˤlOXC |'F0\Y%.udlX$5\کO T[QiY,)d#$m4jgŽJC>xt3]=T>7*`%p4L:akb5ε^YzX6yChY:kjΤQyc!40l9uw!YJ! 96* Lc9:D8.տAû'c'eq3̗͢CIP@V9(|URr 4Õ!wW)cM"P7qSy"ty͡R]-F~1Dĉrtz=o$&*5NV5;0./̽dp(ý;E49}`.HskA(Ա &@*Uc;=Ԉ4Lo b߀;"x M+.(}UgH"M@s/rmh^"[k(k ǡh9BZV~90 =fM+?U*#\St`M)*edeVU3O떰aX($a @%|tuo}BL.eN!y}e=/SbiM{, c'P'A~ά.YY xoFvm;wq/Eq;[$124(pp5zۥKԟBI:4KP" ufUn[33]&~HgYX ! }LzҮo079\d̕R8u[|#2Ɣ:kQ0+՟)jdබ_d19H}-z. F)VJDBT}`L[2mWK^#-򂍈#¦E7{gt Nvӭ GH ^ZV)ы`Rsh½̍֙xQaNf~ĥ|j$Y͖&g8sC9 U-2aR?$~G ōYgL} kAGkf<[8 "7]2lݹy3e.b'G p΅܏',.3MOy& IuW6SrR1ІCְZB4bDF؃bWЉNOO._jYBS ~7sQˮG@cy˄jQg3x0vvC 2ح/98GXCQ0u񏥸_#Eʹ}a }هjrm3 >tIsŪ-1[FȒΏH9Tf'L#}6],> ઌId&iBh "44N+/򼤰 o4R(;nWkl-hQ2?^u</RE`]~$O|# S\ս.!uN*'x?G!&PԾ'dy>5P@zl*@0<+&T)PF嬦97𳅸&_[ˋ&b^蔍rrJJ!% M}SK4 6 @v`= 5nn vEFw^%jZC[ƫecZ`_xfc=cY+"Ȕ]}[Ddsw P_mEqt^2$*ͻj@1&vbؘfPr zYC*Hph7r@C ύK^ܕe*xdxAzdޓ@  8+ *v+8ӷ梆}{wCB3}\,@_1Ћ: ę[܈,TRBX!'p./WEl,hPAR!9Z>>g$LNrQPDAss(u6aT>W݉AVl W|ү%k)տyqc=e\H1we1=`8ˬY5>OP^~ut%/m^yh-giX/?)력_ ĥJXזW1֮R%7kj hy;S<yP yƹv{b=!ȝiQO'g0;j$[ԓ&߼E@Wj *Xu F-BL"șMd넯4]FU&y\N$p\J8 سǪy9?PS$ *D/|EHB_``J{iΫ;8Z_OZl[|yCH7no ޅ|՗@CϖV @>?gtyULF/O9CR),LjWg'P$soH"x.|!z (M˜8TzY"U+ 6U>;?}|J$u/c]AhwmX1a zy!؏n11W}*Rp4ͱ/2[V"քFg~4dB^B%,V@LUnFe}"YI@}>!f $6㽛o,uԔFmi#) F;ͿH/>=R-սh^7)P0?&M郊'C5z%&4o'лQ8x1z69G$3s!?,pnTrGaR9k4gb{s?΄n$ѐ9m' TdS%]Hnsptl@Ys{L|SәKЊ=8kdoWU62-l 6: =xꆴ^oKV)i<~d`j^jړ1bhi]qj}4LIWL~c z‚u%½EgKj ./U-۴p^WK:L?qBY#Z- 8+\qf+)Nu{p(z G!=WG BKu Qם?!^åq0{jVK,%i˸άӜ:ymm)S9!.LiT{ՁQ <uGƇp$5(>=c;SSU1잣yji<$*#i-lPO}m^9CJRǩku6c{{P}X_AӒ{)mY|i"!{ T^rG-.BhV+\:ieGx 񞊃I?E~T ,诣zyMslܸXnq&KA6.g`\9)[I@#e?nӺ֫}xtYad6-6ܾe`&Bu5d|ȃ91eoWZ3~tdA_IH봛δ#p}J@rPFF)8~ɭW(; ~*%D/ܣb)h̖C19AGt7ahmL ԟ%;'KN/M]jD#1ӂ)4?H8q,!ROCE֡%Z*}_ JO.tQ1p;΅=l-Y.sguA9?܊{Ox${~Iqh}pI.T~>>4×1I%AԸpSOGl[fֵ`ЭMq~)wW6xTW0(&O0nBh-%Fn$C\(&;Wu<) ۂC83/2dLn|dz 4{$tS-? tqWr/rDzoB*RӠy`Z|~AI؍!ȹ|CB< 񝓔?;\6;nw\8gh=lѧnr k.}ז\})?Tvd1yb3~Tb2Њpռl򪈐CM | b Ѣ\#iYGp?D̼*jw|zw#}"3V%0Emg_[7.m}\xw1D'+\њ'@;ߩ]ΟM'D0-eb}hlL' 7wu@NGcV釚@I+=agaЬǦyײXq0YZG^y2 wQj吅VdFw;4M5~uZ Y/kޯe -GK8" ջi xWO=3/'F8M>uG.j OatOK;xvm4[1lŜ() ж%~m7-2\(L:֥m7!qsRv1Jƃ5zC2>"g.~̊[ zif8!MdpWи@#N_Q>[!ΣG*FjtvggD B![>$f/4&j9uT [Λ5`)S%ܛf+#q=sy/S߱>_x {^D?j;Eؑp<z1\$x0EB2Xb-j&QE*`ʗ®_h"񎖜2|GJw9۴-\ԨA*2;]?/~(2o5v-Q40!UQ~]'W`"QU,LMU, `yiLwP6%q?@tZ+*J@B^MY=/f XDtb:ћ*XOiLa @z&y]^w^Z\_ѽ#dV˃S2qc3[ bzS[~k; p=m2Ef%%g>tLv:110g*k^cT!1櫛ge^da?뮎(k)µ|ΞA☝W b*ZVOՒQ>:\epdns֡;̞Ш5ysW!$X;g!\傔A&ቝnm2r =Nk[OCC#yWV&WiX=ڐ[>[N-{]h_@Ch5kE7gSt}8aypi&Zn7Vs)N-;OG)MpKY4 )0!csP1\F'&(^愋j$PpmF^Wz%n7ixRP)3ƒua!*r2E|PbYsNӉ'.-i3 dcoN "5Vϼ`:vUo0)p\Jy+WYej gSo/As_LGEFߦ@iҔWg"4 dEvқ,4pҹr߇2Zr:8HJ=+i$?ҏu]/EQ3W \|K1us[H ,̦ U#Wk-2,\ N6RKMd-e[UĄvD B-@7I=2Q_1䖱?\=s;.3Ddz[ ,.6Bor2$ VkٿcT-!5QUnRՖZEZM \gDjG.S:(39HyT5׏vs TvF qq 2(KgE >m:%srz cЉNEz`,/XX?=fƋϖr"Veyx'yVZpNXkHwDEMulΕ &Ӟ3r-@#zY>׎*ƗRW/j7Njvj#?.3Qnʝ3? UPgڎ$Hᯈ`׃dc|$~, IXS+hlElD?S5tO k 5I= f&b̀iŅ:e^ĨPݸ~es5QCJх݃]ow-X㙹sZT1AюZdlWA "xyO󾡕PT)ʼn 4r6.GG)܆~o;s6P`e*Msfk}߻`7с8Arh`ծ^Dk)ULR 3xtދ*f gS@ݐNMf4 4>J0 VB A.kc5 A:%P૑Zn {G4oT2u>~q\H[O1 hwF,Zi*PwL8}½yC ![m;JE@7~zɟbؑrU%sIO9H3% ,7.}!ek # u'jSV]:eJ ,I)~p8%*:Z dL`)., 2[= 3LT~ oAe 3|ENlۑX%Lӂ0"*w/>XhCqW7g~o!v{]qc `C]m:XPU_Cֺ,Q7XF7gpU_E'qA9yHs3ܙ*|Ip lvrA[=90YNW+`*T8ҥ#f#ٰB=k!z|aơ v={azEf`R:]{k) :NRس+ +| 'OKs^Ȏ'f~wJ؋:`4g|@^Һ==1xWSu|8FS%}d|0M էVrVfӕnR38mEƳNt@ͫq_[M\l TC瑲RA)C&rmϧ0<7}n*tA1<=f5n81Bvx IsXN 7M[H'Ф`.mj36Ӂ2|] #wπA1N?HR֢[AG]%26lq V=d.T'V>d)[hw  ܐ}#s*^\T(/܄?޴FY/v]XHeD˞D/v3 4:U2z2CR,Gf_@w SbM0eΈ7oh 4[G rڊ[6XK_Gy^.L_yMC6[tjC#e⡟F*ṕ9El_-ѩ摇q$/8^ A&th %*]^Mܬ~l5 PL3ңX]]plcNj&D8v< V-7MޘRDa|\T>vJ 94qٸ_3wOzr^~ }?9y,_}~Ɯի`n#G`.23e:uثݐف66hm#F:#\mRsʓ{D$$6B?z)_-zGP[,W#vD![ɔ/oh(ٙqr*A a{~?fpQT՗)}e hyk=CvQWGP { P0sگyeވC(iyy`͟ZhI;͎&p̧=;Liޒ N˹'{FOjO3-`itWT!ʠ>I(=ID􀮵}ڢdKBAAgK%nڜfV B_a\GÞ9?%"ЦIkz::;(]IS 3*'W>@n{794Stǁh(Rq|hw9u""<mƿJSԧߙU$B~J SƯ,ii(nF;XW "]z+Rs!* 簲x{=qS9{-n%ed9IPzz=c}2{:A0mF וN.]Hr_tlm#!x#2CL8Ck2к)XiU ǂJiH*c (>:75\MqSO踨T8) <ݓ;%MnkLQiC7x5pͺfnRceޟ@9؉ pRge:*1~;rX|?lUcDvrH[ϧ2Uą/hoB].HjE=ߝ/-w%JOMu,p 7Er+E+#]#؆Z {?lCHCC\6fjmqKFB}hw`(H7/gP쯷M)CC3D7VrPw0-6g+1ֱVd xEt"_SU1Ť8[Ha--pbH'|TGuOJ/][w Wdc&NoӚ ߶Sc YLC ۧ'!1PEtlg-{FX\]ƒE>P`+m4pNo`v&# ȕphW̞1 89??ѩb/PyQ f"3[\Iΰ"XᘻA-H :f&H,vmxu8n)y7B {v9fAޖڄot>p כrOc"ME\ÆlxA9jEBѺؖ(HV*'mI26[VӎT|-MΞ^ (]x3D P%VA!S!J?D<[^Zm4Whh@AVxBU\ &TK^YLI=[ϽЦBEZYowIu@5B6YU_;JTODUt<ﷳWBD=4bۮƷ@Nt#<[F>rZYnE\F3Z a2+Nv4фux#\w`05Ġߟ, GE hN S$q ![ˊ?e}(ݜ0d݊ P"_YʀIT"H_.D XZ+r=)0KO"w7Lzci5$ ~=¨=D%2gxA.ѐ'R7As‰ CX]Ҕ$z> ru3n'T%k ȴC*5K ((0b/LkPBB齂Q$ C0l l#X@ SAW &*q >.庚LkN4a2u]tf( ^FxjK%TU52%rV@pt&)ίtq[TL,~ΦkjBVΰՎ0aS E3Ru `Qח sKѫ)cFEɏj?ԟ[HAJnY nBKVe٢ 'ƔpmMҽd)59SYUո=c ٚ;DJ9nɣzEGLrVE~-MZ/G-Ț'n>GB Ha+$7B>^ x18g#Po.$\/*6WԂoDE+2n&Gj*AVwcv%Ƽuo۸{+&vk,+A`w*@Hr]Q #LGN$ƩV!pA@n'}ǟ/9]>vR^RDnd >w˙L<rg!&0& P+'>L K,fB=5]|sqP 7`۷kF]iZ2Tfrc˟)=+]er2i06z^Bx-oIrLB+wLjވ@ &R.{1G,RoeVD/BO7LWn.qCe֞k̀^3 ۃo*ܟԙ d)tץTկwUJlHr qA!Vwj tMGw7qD?1=E<nfV8Ptחl "wyNp$)1e(N,5kApP%'jR۠n 0h trq=f[s(tg PuZְA<~=L>>>[l)wͧ#a4 Vޏ_!P(QRkV<48-ԮXB0cp4>Ies kpn;* g+پ wu tb +TbBbhg)({z#) a/jRi3?x͡xVnT67Lb_µ7+'Q×QƿPM>)x56(?G$ܧ9G*gdG}Kٍ3#_Jk&  aFE6a % ^]X82e8jF:|/uUPO:Oj_4&bnwxϸfJ jdE$Dŷ /`4O o<~L8 @؛^ͣ+ÿUOj G}zG>*D8"yxV5O~2Y~Lv[l<@c1O`_i9=:ߧ_; $#2e% 'KUv@HJɈTuD:`0uxG@xLu|F܃}g _/bu1 t]KԊ1Fesiʷ`R ͢agn$FLp=o U^}!c;'[;ҩcG1}גRJY]O30d(:c;)CC(S>0G ɟubl&+|<WEyz%@}>%+ƶThpgK}U9!MR}o[%4$pCDވ9z]N[Q{e'vIm'%?@&ށe}hSӛS٫§ӍZT^8-k^.-9;D|hEj)g$n3aU{ }Ta-e#Cn(1SF6 IYG˜`= Awi=X8TRhC(}OU66l-s}'ATޏtRƝfEQ8IOqk((KA)a1(IEz4'ea󳀌CPZ?HwqvHD9qˬvK+@r @ 3\}aI70e6z N/>F":k%Р6^c$ɈbVn˲ P7~2 %nNԸH[ŏE w=VF0.;*3WI@ d/NA|.HtF\/S};=Gz*G<;vI3͵^Tdֳܞ^[A&ĚΞc}Y*Hn;Vُ<]O'&uHvr2%̼$2ٕsnU&N&݂`#^>Cؔy+~NX_NJA/&, GbOV_z0!;J*/ 0mGHGC%6\OX?[.:`skJF(>0!މVtWFP lrpv~=#nj-x8e'0t^:rVQ; N]oվ> Ѫ\ZD~i*Ki$-!n zMToJñ3^{K]&O\ kZz>(*Q54rK;~+a93FƚZngG1dwwyfyP(Li';"쀫Dndk &ߖ㢯P.TݯI7")u CzGb)#qz s괶knyW0>'ۯB|4ݤQ8o30ћ}/?ַdG8FnÔȜQNV@Ȃ4zCv; 9+^,V%h>YNijiy=RIFq$,ß/}^;^32' E2#O9hG Y"S!;5*nW\y$x~g@!y6*^1Nr!moje5̕ȆΧD&Nddwʤh)W[hC]4𖻆}8$;D@`L*ͩő)% 2恗Q!oIҁ&֓%Ta#BYJ* y[v^E0dIB[D/fcQz,9ǥ mK"J$5ZNc"Μ R<ԆAeɑɣ}I~Fw{4/F|P/eۙT͝_Rݺ*4uc K0iDd|~$+l{nڥ?4&W Hm\Wy '6w.^ُLR+]8\ aΰ]We" sKlX*_czZNOOаo&`ŎⒷ6s%OƦIu?X4F;xѳokaMݩbU[kO`ʸAu͇YMbjZܨfn .tuz%Fh~=(g+F{+es* msi?(<<wL_˶Q&bY:LRFpI 9 ۈx`j(AM,0yfXu%fggMcFTR9NģH+)]_'ҕ9~h('ñ yQLmɕDE;9] xIG6-WԢu@ R qތJ1@Դ T!|`h 'V_r . Ll/(ɐOc~RL,J: wm n9枘x r! MRw!^[J+!@'$tq,ȴ-#wS&\؉H|$r`@.ӗR\i&}X5O "(dM$\3f֏!vS4/Y4B|G6:sۋ>/̧B0 Um Q-Dxu3WV͉})"S\D&Fˇ++z3_, ZCs%2p5tN"Kon $V+;fΎaTpϾW'ۙͮa t!QCex<2;Țy3}w#ޤzߏ܅6$S{[}1#F{WxJm~s=PSJl{0Ni17tKѼ~htj DTxN(eO6u+p\1C^"~.?Sb)r9OrB?8H΀ OfFߎ^Aq Cam^f/hg݌jY3.ͨ"Wk! sQȌOvnIL?:L + n:'>0LT "TV52yӧO"OB5VZVO|&!~E?h F1 huySu [к%Qي<9ߪf̎ij`~r EKuC@٦~fj0dAR\l]4ʹd'E%eA\aS`>ezzWD^]`X`T쑬>bz H4N`c@6{U?1[h )_S˻$Grīf_d]N$IXoAk ~Z xPq=M rQh;ųtiazd9Il֚7@%{#֥Ss#An9Ke{_wq*jg.Kߔ)8*s:y`t5߳".ژTBxD% mvE^\0xR!zGx \A=8&;>Ɗm]ss>zؙ|w=e|ԝ04 Df'ӆ|n:9Qu=L ޛllamҷVg'wL`PBƺpSZ}0A7^΍+x\1*8q y۹ɡ=>>(%DʣAYꞩcx$@~J[}Tum ?4^tĥQjkDB0)j5hȰ^RSf%l!-}KЦxF8`˳w"O~[ x87*ܛeC`闝{K; BU]~p<%ܣp-;iP,9 `>zR떫P<{G329*  >]!'ɓ*7ʦq:XK'^y?Qs\v' %r 3WP.g?hxښyz:׮HQ}?j-oX E'2V@ Bhp,#M˓ӊ\ڑj  QiJ[W?C4٦AӴ+l.}Zm0|"VGiB} 5.M =VNIW /=a4,aT@Qxj^ (%0=!gH"#(fWцPn

{yd(eOCKPa-)?R9j 7{Q+JqF9'Y?G3>ReYlh,D؆v=%@ 5?F?>1h7Uσh`I%pHBVcN!wXO$K K?ϩN:pFU\SittkPm*焂`*_v6vnm/$IM+RTxbS2&GF1'Nޗ,B뱅U @2ԫRjRBlҺʤBg_ˆJj-QQĽJ#c<)7 q\uEV.Snl&f"s<0z\;)9W-;`lOv4jކ 4û|po^i&lHCm")t!&+@S-R|+di )K'9׫%8R ;Fْy EE+1- qѡEɝUI'(Ņ$0*xH@ɟ\V[UK})$݊q{9#1NXGuE»%qL EZbt1P;R׺ְN!to_Ё#chfpܕKy`sNA,^1g>V!oˑjEK`y/CpTf{d,5p?ȣ̫ve}"K6{~:_!({e!Ppa%\]Zlg1:íq5 פMNB7hY[.$hږB0r{nym$bZepOJEBo#K+@ ݽ3a\.ͺ +Rcp&:~[ Vy$ @{F}Qr9}R?M_8nd]vXеjN`#SS?acc lKTs{K# ^G .hSL$Ӗf ծ ߦq0y8PаBPn+ظ%WVyY׸R4jt:-#R=ХC(9ҵu 8V7^Y9Ώ$)Nr%Sr>co)eiӲdЖ oNQ;H$bUjT.|o/'/ϴT Q'O% J-6KL7b-G/|lm7ERŞL<bK.%K6hqG?vَw<Aةg>bĖ-ڻ̵5; 1bk)+ga!˨-) C̣R0޿I$(>"2 zHsNjXM]5 n+'U\NG6 [-ǖ(I( )ӎh~(J7JYQ, R z"/Ō{&n4aSDl ?#YQ7&̰`]8qѝ /XN l JeIM9ǃ/8dlJ{̚=/WFU N`,dzϓI h 5Ѝ|6Aң!W}x#Oy)C4Z0v#ND#2])9|TU۸*m0eAM(OgADU*p Mn^Ht`jX= G>ou0/#5̖š-0rD9og@RgrDv ?$VvU~ӧRmƥ[Tg_mËlIz3d⟿oK4fR u1YN>ʩ' |G( U$=_>7Ƒ x'D?5tg].D\3H"G0n3qfOJS灶B T1HfK]hi>~Smv$f"ōy|3?O2 7%#g^J9%x;~ ԇn\k&1H?{=ԛhaQ7h]7|WۗmC#6uIXI̳xplkEob%Aer;Sbj6]سg U.uMBAk)krL$SPzp}x|eTgbb|'.}7Nj ͂3H53u)zq$ƔLՉ c "rXF$TJiŏLQOrξo,#Pkq{5q8QFW^A4?%3RY79BQ=:5 r"^E㎓U'jxHFznJejz1 އXR}x?%*7Q;FDC{]z7Z+NE#CӓQb|zA||x ڧ Yz4Nm7M[ۄ)6yC nRiyTl'ⳇu p]p<^[u29aUήYW?"K1Y!gl!_oY"_iLQ N6”JMaro`eruz+p߃`KMaWt$Ofæsj 0Dr.#1i, 2]S:г 3ۡƧϜ\kYXaF/8u=CJp5)}KlzګCcxx\!U#CVC ~@ߚ_Ս/uT=4Lat>IxU/"2=䬪,ߢCn:*F\=rs䎃 Y1wx]kIWj?/ ӛTr)46KCvw7tRz֣e!#^ewtvJ\W7W;0 a7Vw,Eg\h?<k;w罱'd?x _BV]Xiǡ YcoCX1'~}eP{D4MQ2 ]kԸ{假c hZ1gj"MxӖ2@5Z&{[W#P97P0]n$tY2iwݔdrk 84RE6Yh,P?DtQDYOtڮ_98a3^ɰ1 ;k2VTϗD%HNvT,i5B yFvAw@]T@fTj3.JU.=fȾ0Ө+{]P]󔅒m8Kn^3OOEX^[' k}7ת3F\s,|dȣiU%yKP6vΕÐ'}l]PF#_Ho# N5Iܯ Ve!k复Hgb<%h FU%Kbj|ưqEB@Ģz[^~IV5^ r!lt~v3M\Z,P/[NJ sEamL`cj Me_wX??S4~շ R%TuW>T"J5Ia|iVJUv:#[ E;(#:H\Xalq ,fOV@$mO}3Gzwdrfi*Sൗ{53`[+^υ](*ܗ'RW ;4$,EQd +Qpn߆^  A yrrR@3vJO{QA=RGzZt D7]ghr"E#4jL<4qd.{#5N- =uv~!$aS?$yeR̩+k!Чk pj/sޅ9<65]sf60BC5Z0: /reBZT8ZV+n@LǙ|lejfKx`#n Ǝ:S;>5p(d\s+a{{:o)2Wag;S$t)e{ } 4$&OC{S Q1I5O8XE SYI~eH0:"_s@-F$kW@_a!`XA."砂f繻J 2ܱZv>VR9(Y\^cϱ6"[ l_25sY_]8 ZcU//<qz`Ϲ &Kq4;}v g} )D JV H]{9Oi[R‚l=#C첣&,hbI(iF~9v("^Qܓ4.0fx*>q_<5iSu>16y\S*QHտٚp#E^PneJ+S CXD/sLN^<03oLFFSL1ؑnJģ9`#5Q@c1tRV@[f>y.5-sؑ׃Ua 7O ѹ$EaDMW,#L_sײCJ֒c[=1 TByB"8:L#(>;MvJÎh[*}V)3 , l0vw^`Cƻx"bY?WeRzlš҃1`x6dS"k'URιVdP952/,6Lv% [e19NO,{/K7dM<*3l)i/m_p=0lur.0q0ɫqH?k81ApvFp䘴x@jz/)?.1`׋R֎ց*:!0ӜJ_37᳨KZM0)M[!o*,sumrGB:b$aNL wW~)HYcT>ϯFaYÈC:'E`~lϾ u}W̊vVO&4g鏵 5Hz٪xls==XzeEb|`q !,z[R=/rf&ڙ67=*bV;*.הN<69(*K-k[RJ_Bނ;<˶vޢ[ǖOI3LBbt3zEFΡGdkA/Xb%-5@M_hj7Zty_*G ^A8`QUwϻ %3ͷEzɬtK2Ms 4VSh.(J JT#e<׉7uޠvv0_=2k BAӍIWXao`d1ژ Bcn+ٱ&FLWP?``0#as `C&;(Ąk b1ޙ3ogHF`o#(+y ZaKF:qGQy%ͮPv=p w5 J 'x4fl?} ]C]-T>%(xc`^b/|ڥ1WؒǶKR0=Y%߷j,,IN\%fB{T+qdՐW3~\'=mNtd q_}C qsmhGMF n<[ pwˍe=&i6FCRJON)>87يep> k49C}Qwt|=EWE]2@PsN0'Jv΄ $p]Ļ#ҫӷ%E(Ξ &%ת#e[aᲱ5xbԩN_ܻbEʤ1ax5_"v=NX 2+C/WRxM xȕ90ٕ7kjV w:.)^D[b9WlkA^TDJYb0A8 [.z@\ $}xh?|b~95"5;ei'Lbn%TWJ¸O匛AQ[oz`PkvuOK+p7۶)DۀXl;~fJ0ˠpt-&o}Nfy|Wy[#%x0x+jѳS04iC,G8*F"ىYF"1LL 9hjƿ"n.{jjFL-+-zSk *9 &XѰFZSmGw`>uCVCQTz"g%Т1Pt믡UFkG_{-ĕ<-.=߲pt/N4BvAo ,~7{7j8llⶩh\Tԁ)qAӜXES#vāح{lMۜ u&s +$x}s;^.?<=k3!_HHXzZO (?+*Kp;G$6]W亘\ {%o2+c\ы]p).kP[2$TCxiN5% 7 Zź /Jhu31_Ks{dk ܕsI bBO$6zf]扇(J;QDO2jVgWN忯ePA:$;K/N$$-՜ Fd8-٢'k4)U&'˗:.+sZÕ/[y^~GjՆm{3`(_Agxp%G'2y s1i\`2Y7#q ,_1CL ) ;gfnARȪ'( %H<5&81Ăwf؉slahJ#`:qdkQ&@#:<ةrQW s%Hs,qd7E>H"ql Nu4)#oޞ@,ݷA*[ekoE׶ϗ w 㶣exMCC^e#PpŔ\9pBah po.Ho)od)Z&' ;TMv%رG@3$tX@!^yŠeF8MUXK q4+xc'Fimv_qQexvImXۄg:Cr18&Gd}T8r'2ZKG$<:.MufgY+ϚOf ~ >FLs`*9N"+JEC8ާ7cP~N}B| " lqVarvb ړ1Qq$ĪtD#>ݨLzdBT sr>=khv݊r5)'uRΟo9-3 ̀:QqOВAGszˡ,)na$V|.#p6YbU4h6FT 6떛w:'LF Q.P5yN_:rNbK-ğ:0+9eY",[.,(jgn BINյp ?*"G_H0mT.e` <>ڡc;POE*ex /֭Ӟ[PޔCebɇ]1uRtXO-14q2V!^ZC6V0-Ar~szn-o㒎P1kk/ŨE[ L)Q4ݴL [)( vsM\jÖnV ^ r;`3MqN$/Iʇ[tRK=LV" WUEsoj/dcy/6WJzx\R)m?r x ll3̟0"_J:U)[yPRr_*(dc35t9Ih }xRm7 !Bz9?¥LaqS:g^@PM`6)vQ _ij !ww[,)K˥5|NFfڧMHMD~#D2ݲy KFeX'l ʞ8f.?7:(7)0PU%dnJӑzCCMfu[ V3"I6WCLn* "o}*yW?;ī6!l[qXoFԻj  m\{R.QF}x9[GҤI+8O KwdJ<$^SY)U`>IJ}Lr19 So  jB 95^F`C+OҐ[?&KD$W:G<J&|Q5ռCɢ-cg9؎#Mzҍ2XO 2Xȿ oROʄn8ްoܤ'l [-[Xq@|y.ݲݜ^ wzqFRFC8^oTtsU |#xI_*Wm;Q.cCt?BL! %} a"Gs4kSNjy%n4ܦ8$6ĸ;z,$Xfrڌ"-]˳=v qS%E Mkd]ectУ.n1G?}XN /"&Z%+P=UrR%IL2QD ȉz3T(@F7̠mkúu݅emb ƒ.P<.?'bx:BQ lGM֒kݴ] E`(nnK S+N8?wY>)5/W0U;э"`-]5mFa ?!k;(; Dh[/Ej)p0~tb/-9]HwhBmw'7NX7ڑóhjsXPJznZWr?ALāNz{J݄Y"bjSCh tH6B<~s_, `1 ҃ѯF=׆kqթnDb$F9&OƧR= )̺5z5fFL֏H;&sr6r:`Pl#Hv.Q̪a5&,Lk ʉ ﰃuoGo,x?iHG)AoNƭke!)[y.7EUwU@4WCYs753UJD<{d1Rʛ 5|4 w1 4]%<˩#Cj8)XwY^kH1Y1َwL43wy-VXT r&A3 AHaۢ? kҁf5dD.61Jc|W VE'W3 S;x40'k5A&Pjin[!MdZ=iN2Uy,kJov0GCGڮ*}36 MՏn=#I`+uf4ˀΚc9[ilN A}7X=+󕤑!Y>q >*7l_Td=XN‘+A WtpYfj ]ii⻩WK5N̛ڑT,90A]䵎SSPNl͋Z4ug|Cv%-b=-r$Kk! OI˿Zoڰ*J1 1Z32ѩla|O0|1r/wi9p X ͈i1KR^QPAZ'" o>T΅0 Woή b2C= i sp=/oyiwU;XknHߤm2=RV.w)>sh+C=\TP3kѶu䠙[|+:@UpEIGWm{K|}_LC+4ߧ L.XI0vZŐ'+ޗ>{?C(-)UIU zmW*ŵ޳ϔ8}fҾ0=-|Y)?.}bzq*(Ps!,0vVlw8MxB~G+p#0_M)L#mґ[0ZO c,'rRc'{,2/=bxvlh?\&ZNabru)(E̢>%# mJK"ޑs+wc|2Ym׿S˰UXd$'njĬ[()Җ? bZ+5' t7]*V<}yԩIFd&(vȴFfFrC>'l@N&d7ME}ݥB|*^"좛IRRg%o(@Ȼ:Hx+/i: @ccmUbU_KH~|>(o VSG>ǭSrUiO Mf,r/Kgq]&9yFK`w[֐RNL -)BXoߧA,%dI(_#KK[ D)bodcP]߹0tW3V!@wLAaRCe9f~,R bucx߀r-{!k=`%$|T1<O*U`wOl`17%N. -@BlPKkAڈ+O/2s pm.^'yw._<B|kpiYG.y.DMbzFny H8C/b b'aީMuxjK|*WowR$|-;qӰ %}=kC`tݖިCLm.Hl hzo:8^/*ko]:Gd:h*X>iDvq`&7vvXb?ԑoxZÿ;^҇yk:|pPhT!7BB NI>WVsŒLP\ahu6ZH`b0fތgHݧ;yz$>b}}nrP4WA;?l%4PFiJO^c hZXLB SFjMű)?{2\B'TY!fX.H-wt5tA;nH}h=TcD8>$YBEJA]C2"XMAe;9 518ya0%m[VP[ǥavC+Oy,XѱW4V/IN.ąs$n(h=4W9z/F%d!Ny=22ØOϠ[`S!iS+v|)Ro8`y#(ie-P~H\5B6&R.u9x*n>P 2Yjڹ߉]705џN^lyY@hTy7x'  /bX=K䏎31[vWE*)e-\ KLlI➂YaWpsq6A.CvQn :f MPQ AZBI t@& ݝԮFeb,LxF|]{9XUYvo2]a(0f3wH1B"_pYq)NP^`ԺR_Tgwd #M5o?iOR66Eцle~7'?M~ :&RU.ڗjhYH1b=婃>ǬR|}}o֞[VuܦOPxv4ET`bfP'GhOʛ sJ4&re jbmHM$%E5=0[sS\,bo,T6YYǴk)jȊAۄ "/fCu._ S~nȂH'Bԩj-$T'nxlX UŝŎ~q߻*a9c7' ^J6G1/U1 30\ u_ewrGoDxVg00qnC\#R7&l!j Lb4M˸pM"CrY0׀ٟ[5@i괳m;߁0fe]gʄv֞xvЂ7S+a\.չ_\WEr$TGobB((fbfG@K Qv 3$n"[jŭZGR%rk7Y az;ٗm"vkLkT&&+jn{(QfW |e T7 ['}۩ h&2k +ahtlI&` myȘn8?YHG2oTV3h| FY |FjRBw%PE7c!+~'aK $)hf8?Fwj93+ߜ8Eü5C(=&$0r[_F38QᎡNܺڜ;)Vj .?_Zڇ@@M~Bo,wثFy1>5}Fbߧ+n]&ᯂޱˏT)>v8MaLj >kIfӼ/8 !G~RQ,߉.x !nR~ `2h؍+ճ*]Id}Vkyv0g_kRG2'%^$v/>yvӧzga }xJrjjfw=uCV$DþQ"+@dvlu8/ Y6~&2yjPYf+(HRjlsR?Ub$$ّ5)D-Qel|Ōmoig+Iai5r"J.7 Õ9 Y=,zT36d=Ou=AM 2L Cy@\+Vu(f[_&m޻i ?uת a z3ob,h_YcĘЭJn,N+KKKvEYBK}Kf$1ݻۈM!x\= zOA=`"t`sr-ÿޔS@$UZĆF0(w=6tWaPVVN?Cܳ)zFlC! 0 ʍU̿RN>I2xi>ͬ^)Ma,wc/Mҭ9u~۠iqSf;6JLXȋc'^pd)r^C!F]~,6X96j5H8'#CEJu 2]J^6txQ-\.dgbߦ@lBhϙw ZTC")PYrNgTҹQ13f!:ݧ(/e@w]/t ٫4י1i;ZBT"ȚIs\kiǚ!4dr6h# FXH(["5HZ3-[:j\(7tnJBP@s6-C3rn.NrΪ6Ԅpaż(UB)f<6gGןP:p-x+<ΓK&*77)(Vٙ% `"۵_:3G 1xK8u R~@]t3,-Skom~SI6 fO' yӽӋt w203dE-g֦VutxR=osc*r9:8w>,v젫^OTYP:}LhB}0Jʹ%%D%.аNG+⌈?IVT3@+|6j-52"bF X$=_bg)0OƷ:E[ժW*՚W-wglz6ܥ+ѝ .@]%#A&, 1xm3b7Lb 'O(Gd͓SWQ5ݬxalP,LsaL4`(ɑbR gOp "G룈\<_{B{l~]Uu:BI=QYBH‡֘phbJ  kve_\ B9_ۻ5xb aDO!(}tT !Iy'Ή89>wIȌOѷ!FY9M5] fOMЌq:W _AMǥ-S$%P ~_f LJܾfo&c ?uI?ރ Rw˻q)֞\izuoӱeưrdDk?AGbXX^USXXgXj킊 NHXzo3PAR24SsEJOq_c1[ɺq}"0#uQ&@pjGJ jV@Hmk]̚2!Uj4pp4Qt,A ^8MMR5€-ie&dLP[HA hA/Dd~~@Ue_~依T!7#ڭ#8;C66J-Ej W79Y ~L #usT7K}\4hJ_",1?o~SDZr’@Y'ňѐX/(:Lǎmp,gf02&&iifz*=p 1 I+X]muRr^o+^Դ{Y)7ŏU2 r.Z6be,XС!jaq T\gZs>#'MI-}B r E8@S> Ɲ6c!L?Co~G@ 5̲͠39 g>JX =\8.~#'P\/p)UElB6:s+ȔI@vEԪ H5̂[s;<_Jx^zm16`6[U:a#4j Β8F WK=yFMWȟnqugkℳ3urDqw-u%b̙}BK TzdWoy̖pXXkpDW<EV b{%) [6/ijgs\pj%Cm㝑^ZaFp%J~ŕNIU+,ESZ| _[:M>I*U[Z]݃Kv94w\.G細.50vsnbx ,"ch, ΂޴+=+ ]J%d@a?`87g*j 1CMdBX .9%_ A_M $SY9̮A;xL&9FQt4}.VرvEt햗5QLz t?.Li̅4sSbZ%.T~016 Sb}5 VrfT+ OB?Ը1F8 "[}[ WGs=fqMֿ؅5VAO 7|. 豈_DK]QKi~'S$:3[`sp|M]Y<{Xa fxbD6ީQMn6jlá*MEF~qwJiQh_:['fQzÕ0jZZ9'gȳ ?2O%nӺCk=}|gw ÏCC:bAx|3Ybmv$1Xeߦ^Dhwij? 2^?ͭkl4 )O{|RA퓭=aa2 xIC4Go8٘^㽃 VѲeĿ9IdܙJ:Uz"w Ad*;x70?0Џjk`&/[;X'txpx2 =;+mbT޸4uXWQDM*Ğ!8C\_k3]+ }crD.(U\$ڃͷ9cs` hǷ^E]+T-pTڤF{*(\?2ӎ@>Qm}45]6j;&ʇٞf"ZHMRJQˮLdI3}ad2+\. y2y٫o:LXoQV)]V.m<9^!ɞTu0%l.ZʃhU=¨K=82sJW89JE~Q~9obpgKdGRM_{3ͷ!{XO贑?sѯWClwp>lJ9k :~qr]la R"{'OG~&io2[h+^$>ϙ)^~PG Q=| [$6I)@ Znoz?u )jm_Z80P"gm8Y0gi)rlx萜\ʑ#hLXVΕ`I&r xP&8%NDuӴ=.[S%S}'9 T~,Z/)/G74|Q O87{?N{b1eDַ8y~V輍֤\WM+v5!;:PAeJ}6΢YՂ~"*xd({d#^WUmⶥd"A"^1fk3y]:<6v*?fC&<~ң3\CKzI'2|(a)m̝˞{5d@9yi?-+(_q[I,y}l_?v}g?ٰ*fzjR %\ V!%YQ= sZX6 }iJb C;ؖNr׀Jq}I6L>أoҁ--]ݷh%hrCPQd>-Q堥={rRZ҅@؛U[1C "&TR(up Bq+=<{C&{(愱iS(-9[yt0E3quY#~mۃ ,e%푍 3NznݯHGR"!rH`5*٠r.hys; )i2+7(Vctb/%GD+ |Zlr61'}ݐ-%k{2;ba;lr=p loz΁[ڗ ]{Śc^+F'ݖX,.˪Ɣ6dJ&dbKnBljHo1S_V\A/@>I3Vwf0B=^bOoł O @̐WɶT}_8@^DNyd.08؅裈_@7M(kz[gOZ)(^1XKo 12z{t2@% yjʞS鹯.زMXv@;2ʆpwdDϜm)(`5ܤ޽/tLauK gWx'@&z@ `.)vX?裴&afxY$+88(6JJ\a3ٯ@3;wU# Ȼ}-6`Bt@:~z+$ƣKo<uGG֪bJ:<,`G13(5'?d U%泺ij=Փ1|4/aܸƨq]zSWMȄE?6HC^aATcݫl些,+G9[@TNr7Œ]2EԸH_W=R*fP=~ v9y ^Gd/l4T&L55[2bhdЀ[IVG+GBR6D.c .&5*ҊQDG>zѢ~7zճ5Tk2М:#FW0LjO`и<@nP!-IߤvIkSJqQ @< RղQ貰h\6א qglȎ&6+ ]Efa>UqxFA/^OtEfD1tH%(jr@[Z}2*GF$ۃWp0R_:SYx|Ai*sxYi>8}|o/"H"sзUg O/<܊|_P& l.C)7ehޠՆʪJ )3P&(upb4ڤ擐i:BWvWq@}6-HaiZg4d -_q`PqHo2>nbtt>zcyP|go`Dm GTzAgm2nz.Mp\ُ";քbB@B@L>|1:ߨ]f}%AB"HRꮽYy15եmS^Ypi &qT~Lw|FHHM0שIB@; KF,6>rݎ1e  g,9!ѳմwRP׵Rcptܜ~VoڎX~\@r=vń;w"fxCte홲IB[d-4Vi6ZRmK38NCOC/,:=J>7f`JX&&=6 Ka>k9m-덿xs)GMVco(ĕnCEϠ=Js/rյہ;iPqu1EoTNwzu@j^ȚB% bAOdJnP %e&}:МgW[˫G]#LIcA/a]EmV󲐨<:jod僗7R=6I =ߐF-\ BDS\Cߧ Cg}րJPm=zR,nwG{&~H8)y`-8.0#÷:W 麡S|ZZwtCϯsb;j_fѪG_$1'4ހa|7'&=`69Oh'Av:F$^oUF&(Rwpx:,y_q}?P=fsaft0E^flha'Ёٯ9Yd%S0^u\ Р#y `wczׯqy\/#K# @gW+skL+kQ8׈۬ Itl8܏Y%_*,AT?h@K*BYDxR^ .ͯ;F%pȏEs`j/Q_vz>?=m J5X%rBmkDypĒ1Wͯ\Nc"9J,c@&1 }è s ĝd|s< ݛI;UKZ_w,cK-;4% [xH#"j0Ԭe.g'k6Fq6C 7suT;h>Dvl$k_yx:-4Z,},(ׯEKKzpv=ظnWM'CC#sFv41_maAR {@s,HgPB83!@pnHs(`i`8=_lr|:F'&, * Nl]m縱K.g,F'rJT2Nݢ>5:*/oޫ5*h3]<4uXu /6sKvLRvǩeZ,&GǪSW )$GX.ylMu繘^jj |#qDE(~nMˎLc"܍Ҕ >VKI؍Va^gJub|ЦiQE!(I*:_6=nzO/ZL:%zpJ,tR,so 2Vwqh(L qGbt/K]m6Gd?y 3$s6[]Oh?\ZE߁)<\VK8Ow[xn׊.o|AƓei 4+#  W^ܟh `H#Ac!e^ Pph'J])%p}DR c+ Kl*`Ӌ{J:0,?,QGO>%4Gj5qW,YަZĪf~SA}k‹8t<$!*tڥ!RbE'<~U'iYgŗ)*!Ոãc^5]+aKM\CC**IA%VN~}tdqV1p,ܶyܧnoV\i?'{B/DЕ%F>*&m6raP8TaC WI?96(ܱYIg.XiYskm#>#3U?1({cte`潒c>3AӗZ4=j!;յέPaR)#o(9 Z֦dj>Cŏ(Ɗ|CItgRM˵E%217?V.Vfйg1ɓ ~},[& dUPzGgbWW{kYVf,v4o}E˖ŸRR0}Wa[@B?*.~\Zp՝GAߋw&06ny+6/Tz_]Ll9w˂se@m^TfR1f\jSJ%ZceI:k ;n P,Z$YQ[xϜկ?nak ˚~[ `M2gq:0^;8_z!W?!o˙??$>,vz/!LUp͒ k Zy7y) `Bt-RT Dr,]8lAd56bzޞk81>Qߓ;` de\Ǔ&`dU ;xDX!RI7yPNQ*v{sfG| ,UG q\uw3*rvG>py.l$5f%C4xlSi9`I"_5 oM>J3`X2n9Ucܗ21ȋ]6"H/w'Tyk4,SGσq$t  5;+j0B,Ax.=^#Mխ2NRYEm5ٽRY҃sðI[w(;@oMV{ct9z7䳗cY+(qx0a*1jvaf6r1z4/r( @nOZS4 j~ p@JUHv<*d{=0/AL"&+^ӡ1;sšAetRV\?3b̝ό:7a_OtZb%K1ofpa̤QK4ƭ5dɵT_`WFYc->_5!BWUA֓Ll61& 4D܋  F-%""^E0xsj!GafǓDc3eӸr"|sb$}}mD#?J$,0YCo1žn*_JH]G Hs{K=2$C6<8݋ M|"p|[,C`V?Z&6{ߘ P4MYvf׃ 4'q 3{d.}!G5B[ol'QmS^ D\q?IVVfL=eյWֺߏ&\әP׷λMED-i /yA# ۞6q ] ZAd <謠2NS>LNJLH_юHۨ*4溫Y[^Y@T5TwCaQXN7.Yb CH( Վly" 2X_J6jOe%Cx1tbw=]Y)C_U-@0HOjS*?SL|pmc! wpOޱ)CD)`e\%a+BYQx' 1}S+Q^蚩fe,[:b,5bd{zrO؃?7)'C!a5gO_;)? 2'E&djC߬3m_t^B('[ס)1A]til?bVcm\ԛ^=X5)d TJuE%43ߦ?W5&Q"ƪc؊͋eZQe`N83*;VW;ٕjPS/};u(BEEkNօݴ?5&į(levWɗI:JPzv?R'1k~~(xmRjq!kG@Gt~L 6qxߦ;s8}C|uګ{ۇV&nghz75uT1cfCz?j=7E`+|oZ1wqVx)S~B,/r& c=O*u( A%9a*ܛL !JA3{[#_ 3skʠz׏C)B c{%wˮR(>ѡJ:Zur/Bu(^.ݓXB0BG[A<"$goR+Uv:f%*}#dv&Bҩz! #56< iB%dN`GȻ'ʕ]9J;W3+T׶Fޠ#ʁ} GW{:isCexaඉO:> ̐6ī/LJo=AܧwBe4wu$({:`+m뚃-xytp k+{>)I,Bܥݸ0+}]+~&\XOVC$⤓"dۼN謅p bcKK} I=|*UH#/8;}͹JJmH!8 |>pڬ@Z{>u2!trGA\fh]e51?RـAb2F3 2{sX0SKAduJ8EH! 7TQ8;`MG&]_ek7 ZLRn~.asɳ0I 2{ӷ渃[3:>γ5jpO6 GʧjYRp }\ ~4ԇkST1)ԭфA|gvQZ;)Y}?Hk8wz6Iv˻LSyxP }0w(gjO͓˲Y LM I;. 78 K}A]U@qdf珖:vDL6r"n gֹ7W)s3ɺ`~E&*$]0>kd$itf!Vkp2FA΁&Q r֙Bu95\Oȶ/6eJL ѭg[fce ctȷ>p Hnޢ4*Mb+) (\r_ͪÜM=Iٮo ?AfކvYkt\4+iSg+)M}Eɳo.s,1 Rr˸aͩJȡ=;֦3FFT$Fp,OVxz XTT L\0ޢRPMLZ]UC9'\92tF yߋrpYy^!PxT=y$x"O\YV+[6Xl0"pOO>¬c0K={̏.LF\jQAbgJxLp9pi mGsbնpct-xfX4m=w<3&BgeV'ȫ=o{(pRM7rFUuM295IݥCY6E*A/3*ŀ.SWgO7☢`deKV*X ~IL-`\niD IsL} 6.n6gpРUGl&=,,7E'H$lMp@-XUk 'Iﳚ$4# !;U7"p1g2igVYȣJȍSHίU(ӴD9wQ \x${@f}˙R b9D } {5~X8M:E3mǢ[6 Cx3Ɋ*'ګ-n\S/M"UiHBK ;C1}a=pr[ɐFBUmwhAAip}dm4}iCVfG_F>,5<B/u' R!̢%˅-Zɻ _FX`X7 ;nKE0bLx2sC,z Z#WN8O}hwWGөk*-( +]w0SZr$)ߦ=t]gϤw+ĊDj waffgiu<ȊR(.C_%-k0(+ΥQ&mc8l{>A4gI_ƼNŠEiɗl8[o{ : _-sy<YF*dM UY2^E?&_\:b $T\CxOJڅYOٻP*Lu]\^޸\"sunߡ{ۚ=q]nXPcB!ΘQCsV5av(U|ZH^suO'CxeU/#KdgC[XKKNO7 K8]7M.::m׏N |nwgnQM,KcT$q~ũ*(~^̡^n85Ѓ_cRHcr`RyOFl$;f­*U5`x":s3mNFt2p2cI߭ ̘Wuvx>a o 8CF$l$2Btp]t͍r %OL^r1q[I[ B&%XRN}֋yY4&RTڒ?Ķ^+픸^ J^aOKטdboBp&r9 ,8>C݊sm;sȬo(ʱxǺ͂лC>7g"HYxQs=·¤m3ӆT:%:pJfLIO~P@TD}Fb!VVz\Ȥ.T0c9g;uhmя.L[K܇(*A1E2o~'=-}3O l}:0iJ}zI tߑ˲ 4[jLYO׸#f_BMA6s΂%9^,t8Ȉp>DDyJn(w)wm/Ba*Ub.ҳN(t-R&.n@[F(q#zd7rH[zX' Ķ~Km;Tܗ˼S T:\YskL;RAuYRX':SXRԂ*i[N18fe?䨒þD]oc%+<G$1$Z3/z J `uTJ4R@/I4b蛁Pxjv [Ԟk%}g ^j  N}Y=9l«GyiH҂_C/ݼ♏˖`tc̰$ќCfߕa_%ho=ځF>fdY2LSr~O|nUlQX[yl^5rͷ~_8aN{;7KBo"Ԙ+h6XZCkCv̨ĵy4(Gf6a\՜hޝ$z3! ID^哧*٨Mu <ԱA7'6(- S6hJjjewjۙ_,y0OBavyJkB1l)g4IC!,Tf|R*e+"Gg @RMt 12vso6E2*}>}n˥|In1g|d^yo UcDxHQp\>j-k(NakEp$ PR!Ÿ)j "#ym!kѱŏL)&|_^Y0PؓXr` +y *'O3z3%VI}Q_FBi^R - ,sN9PO*/s^sP`lg&Tʞ@X#X?^Fexy8gXaK3N.[X7nB-xLJ).J;:։6+w"BY/~D bd_Sخb- s >o㒬ʚo 〉L&B~6mZP{;nY;ް9F |W{ͪR/Q"+R4CȫdrpOoTGuS߶OO[<"kmQ R; MÓf HOӐ. 2 kw;m‘C([j@\0@m@@HLgz? jK0Y!l-(3uVf{=Gs4TZ_hkwXdt᱾?{Z J9m$1V'9z&G#cze&T 7Y9Uh]W }QK3N{F)R GR#:_LV ;uW$h1lrv)/%۱6SY5sD#.*.RaцqY=ϭ:F(A0@V6TFP /iU!,ZJ%562d7fѴBNa,vjJi%#岈0thYI"vaƠ=$uJ遮k? Ǟ4 5;%-; u+q͞MʆXH4S|mA'CM$ ۀkSd@Kd3mn(&߄z$EdaOXHc~)|@QlYŘo| U؏QG6w[,P{&[ËQ$3}JosEz寲 P` LcQus L^[inX6,r ߿f7We"0BTj?1<ܧ;'Q`V5 ( o<)ןjV7i;jgx􎂦Zͣ 5K|=QsԨτ9`e^!@h[ fTBDC=O|;HEQUsCf#+jĽ oRE p\aYӄ◔tHй|rK3J 1)o܁ݵ{MnY6R] ނ󇰨1 A)˲.W%ŋ{1_?$ݺV0ߒ^e[U4Jg]Jӟ!G%,xČ1D2 &<=oqɵƣzo &`,WQ *hAg+ͶDʩ,Kzp "NVL7Wu}=o36γfY)vb?bLbI-jݘ7BWv"å]׿m^TYMj8p޽NCe/34Vv?NZRC,94vm`;,RՕ^t<29"i, M欻j%%#71A-epoe w zmJpCdDސ/jeg t I~"ֱr(tXC@ͯ2HY ,/HsEU:MAfEe5@])I[? FHd?rjozhFdn|j,Ӭ[s0͊v.07C:gY صGF/,NW0Zs'b'kC㷉b#TVuLQk뼦 XXt$']HejSN=,[ŞF} k胹*qS*c㰄x} KMhFmUX^q~ :ky2 \1`O¿$25;҄A13<$ӂ1Bx͞<9Eq%eH6 {coiЅQ'1 zK·ZiI!`wT@L@($Yv!דikx,U`kj> j\m1]#Ӡ^^b~n78tQ|!d"ZVR0z_µ(nJ9* ߟs_*5yK )=&I uhg#Euٛfxs2ϭ;)k+' &k:J=F:lq0=Ţh*wջzsco@]sd\ &d8nSQ츁hJ4D^J5D8Mӆ4Y窫0û7ChxnQޜ-C6r#{MGڹOXm0^Č'Bk nB +xIܿ= 1Ri^[ MPp2ѻlBqťƎmRY]pR[p%ix ,LptG L$F:#`㏲ 71N-o|3jH0_zF~(}SI T' a%` #hIiw'{L8&b{EV_Ղ)jI^c"`CN,#sw9op;lbtxt"TOǼ`}dR3,% i:0*w t1OMԯV?9+i r#NgO7:עO ީ^y8)9+p#nB&4X8==4$CඕC}kJrzz]a$r uȞYaL84? (9v@y_;!Gբܞ&v~7nc&? $/ԖٞK @>Ej%^ܘso$VMje"޲)SHK+XT,rIDtopFm1BpC*?5b~GArLɓ-{y$D4\k: !q aڀh܂u~v'!Ԣ#~~wE~3PKĿE?ΐ{$mI5l zpzq- ㄜw& mG݅ki)8Ҍg-B|՝a*ubpK \.fT؊#xexSnzwQdm@JK5A,XL]xr$q1-sQєѳ/.jr蝖F+JձPwVi[Lg5!eԞ^mt[ܜ"UIo7M5VE &Mjg~Y,zi ̲Y=O4G:iyC A>Jir&΍Ծ^~$,q'{ W504{٠-ݛ3 ;PڍpG`P;UT8Q͖pI䶆D1l#|a:)ڙeby)"8X, !9+f[کt`$M{puL/eoX8pv S3z4 Y/^IjD \'-Yc=õb'`DXM65=YYհmlV݄aA4K\B]/9=Hx s*`ɇ3+K_y;W8+d ݝZp(Zs9o/{vo`#Ue?5/1$N( l=#} %G _ؤ/ۑBM _Cʌ'7!0s6Wi&֭ KPixP#̷)L:qplHD~^To@WH8yDn,̙cZhF6ˆ)yqM0sH=mDYRx%ZP k>S1&ľC"nhc!΢X"u0bYb†or)<&Hrč&(\eQߓ*_[ >ݰY;Uӣ#VJ5V ;$;E;p(RQc1#F`'cDon`xC[I `SN~ӄrjStIN+ @  mFR=K]#$jU. {z  GNQpYjc]nCqG^(ցۇlfb2]g.P7sM9WRqނm'PF z:g-!{ w1!\R 3%[l%Ӣ6Mr1%<$I~mD[{hα0%XjyeK&MF(6Ayu}PР!!ٹcgg wC _+];Cudq-ۛϫG]COaf@rd"6(R@=VcҫozLq̠k8 =w9Bsm11jZ`;C\t^c&W_y:"@ӁmbkL#@ B jMQ/;RGGڢKDMc<r~DΑ Klܽ' [-З D4ϖ'tOɩ;0*Cuhk_N)EklZVG[&;;TgR޾sv"ia#m&f͓j;>6lӝғ ۪s98*c WV! zHۥy[؈"GݬGHŬF3c/{|d2˓lؔj\7^_@ga ڛorvVCw0a$ᑷoY20rh=3gw;3یH0TgP Veܞkrix%gE^ŒB4ծm TirbpϏ(=->*W~uﹸ>/Vj`\x [g1H}KR;?a/6CXLNcɐvQ!'|Tmj=:C_) p!xW"xGICnx[X"{ZOD⭭.ŅL@,:#"TQ'@߶^l6cZJ[]R;)R(̡ %x,[{F ~B*IyF-/__UE38= KA2mP%ٟ Z.g0\Y=h%R=KFOnr'tQ:ĸ֡}l>cbMx=dMݢMf*z.[ɩjn)<܆ߐX2HH vO;/!X^2T㍍Fۢ E> Æ[MFь&X!Kq[Ozvs&SR?:ng .5ډ$(s *rM'7pdw,U6fv?(A#jw2Ω 7fR׍II`O}؎+d%KN.t LeEQdK&JJz?LBOhD\g4Y7q{ϾG?E{:d.3yB`#Ch'宍ϳnH~7Z%Ws_&ܡpkƊxTb;Fh)m6xږ;;9&>4C(D.u!J#l豊@jm՝oPMPG@C¶7xLf<z [z24h4 11dc*kf*B>Ő%FplXRfYA*lbG9i g=5b{ab"bD6MeL^3U? {F3V>ݿZدaC hw2!Ss/wS9QbcGdxb)j6|bƹF9,‹/A{F/ ]-,0J}]JPВPEćٻx[NHE<-s<~86uiϵ8Tptί.csb\VJ}&VO`[|ߘ'&R7o^UiϨ.@;dQDD*u}" JŖ -}! e۵a$%V#8)JSɲI8,iA+T7D! ^M0tJ~ ͳR%^v .=urfJaO21P ,KKUjȫEsYaho^%gd xNoiwU:=TJkt˔KtlQ ͕L~q *V,ᩜ* 38dbn="1wc5*੟'5er~-0w= ˹̑9h[ D y+_iisƸ3JUo&f0Ñ؞:YF'[ VPeⱂ-iR(2qʻ H9OBNx/Z/YI&4oA41ؤ5πr;sARY Z m|9uz>*ȡWOsh8QG.7E̥@4!KNwk',ԼCsIKh%jn\V|f7x2A>f 鋀z%2 } 򜅨i j;o5k/y|!QQs+ezi-PZw{p&r<[ y˱Pe1gt3$P¤N&5pUm1 s4][.r 4jǺ&N: LR&km@¬~{m3++}ż|2kbR* ,w0J0EB13jg+Lie5vES:Mt@v~BnMlR&(fNb}@s[4~ɘS߃}/SJ[w7޺Z:}) . ?Rn/Uln˩e4Ew8Lx:^ubiҠ|~rsstX"YmI5Q QEĥ0!~.DӵxO<'l:* ~ DRYgiZ|٫tF>3|Es(H8IjF"[K< U3,k8 _oTſ/x}#<LJV!*d$%$73+G`΋NBΏ5|eᚽu^m4R& Ӵ` l7{ q{.1Yye R#Ĺp)G14F: W)eF'Wb_"~29W1U~vOtX%ci|D1v`,F@C$Bhd8w=w@Ms9wJ|NU: hj#K}(At?k̘Y,.4}hq 鐖Yd~6x*'fE5Ω,=ٺX6Iw8AGN"M=)'XIC2GZ lW{ԡ@VM T8L"vzӟI$6EMu#mA*ѐRw'yr[2ǵ% Ac}a+hqI8o#@VA{M̏:&ĖZdR2S$3@{ E+Z cך.` @݇}de -Fvi *I bMޥT<;h~}03*ΞPeut/j%:WsT4v mr'<lHeS}Ep>]ۧ@σQyH>8bV)`!AVYXhPfed*>7HqQK+<ڟءͿ',*qw;^smOg B'65#^,5TM_u@GEfz΅jx H[qt~d $ZIXշOC׿i?T`U7Q"լJ{`e4 RSeh/Sc"׏tᒭ+ƈ~-)ߖ⋆b@v[S5tĂT..ǃ2oū& kQ\e/5CVZ8?('Uơ W0F l'Hhcp֚7 N.a.zC~1I: sjc;ӺQ1-,+amh֌wmC_A%Y G,#K"eMk4+/sDT{윜?1$2WϏ*WOl`hJسzT&sh}ؓgs7 yS,ϒJ{0(A;^8@ܴ&wIdcc8_ҁ*q +M (6 "õ0A Gp&75!)62Ωoe:kB˭ rMJh3n܏ih]qѬ.՛'<3P> fftmL 8pNI.Tjl "i%譽O(>?}) }M[ha0kc UI>V(׻ +J L@nJP\0<vp6Y ,!6=eALe(뷦֭9=BGCh3 Z6uir "TY,C E1 2%+^;+)Rs00'Qyŷ4<媀C8aݫ4ATa6Ռ?l4ہ#xT9Ju Ws'Qqo,ayƌ}b_V5K"fb1tU+&lk80O`1 sYƔ٘Cɥ`Ą~}:|0f1*|԰]  q< CkQQ~5? e+ij3aq|ڌW4:B@)~0w- BMPYx9(I Z oL' ]|WO32Hzsɗ(a-F@NVk|GpS)j-^ ]Yw-V\ҪRܗPp<1[܃i?q(2G`y~E*"SOH}Gj i 6Qh>"&Km_2},nʄPdm7aQْbFK~z%*Aec<: bPKMi_#;4tm2y$!9T+ti>[y_>ʓ:S5޳ӡ_]z:>Gf#8m(Xɐ+s%=q$=kos>G11)ܿQm['HPW:,26vMIlEsfHZ EV>gۘEX.[c_㲉x|f{`~5 [N4{V,dBCz-~nJ~ϞO~؅#kKѭ}" Ν*C.0/%̇9¸,ZZ$4_<[awy@M \cOˑh]Mo@;`N ]ⴕZUʐ+On3%vf1@R{FjR֋=}q,@ 8u1 Ad' tͮa7o#*n8#rZy 6s!18U`u#1&wIb&kbD{eq$γ'96%,E6o!$xQ 7cʧqċ<0IsTO9-w-}pAwF=Γ4f-$5$,DTkȄ\>_d,$|S{l㲚ݕ][9ncr,'mKd'7%t ֳ% ]02GzDllD0PQDtOO(XBOBOv+d&L eL>`Se'ͮwi]f2 Uy+(ٶ< %UzOVMytYMaL4&A΀K2Uؽb3R-0 !\ΤG9 -m 0E)O~cWbm+>Ϝ>+DLMI| RYZ(=r@RQ?p|޾yeP0aΙ`,fɢ-8d+홠%)aaZBSڽI0yIRhuNQ"v.<7ޟK9j9 4wWE^7{HO>ڌΜK2ijMYQ#fg`" AkCx0HZYz[0!3.o d4 ⚣'*T" XmP:G ='ڹ dW4lG XLqn0֤'ߕ$14RnEVc#m8FLvvYw~5UJQE63/6)/Ars{I5dp xA*jx}.B!vXKgIhA'\ݾM.6ᒝԽ8ZMR#zpQ߿樽T{dmN·ꮡFԱnphT#Gyw@΀/10xђ447. ?ø4?I>nw Z$&Wcs;=1AKH69*@Vk1@2Neu,Qg c$b3C_{Pn>5fC.ZN<@zkFv+tv5[w1ْhi.Ќ@1#zW;?߼Cq*XWh}>֨ӦSDԮ"{Z_zBJ4MF$c.E ;h˃SZs^7 5p'{BE) eg,|G¦K KS]6ce"g`Km[ݗjK)򱿍ddn*\:GiV3'N1 S?(75w9<eLYMRʟK;16s4yB%~\R4wLkߡR'/s?)p@E *68c/$K-ZjZD3J(Bqz c0gXBlS# f :b؂ Pk&MO5oVaoDI 2L332tGc$H˖:ef섽[5jKD׿1_=Ad!!`,S4$&mĹϔ<]U#n,TsT,G2+å@1Y|_$!-CᐛM/N"̪ }`! ާTfƲlݑGg,H5 DלI& nes. RK^~@* 8DM&V=:EDIt܍9R:w[V` v%+ty8^ q y\ QH 7@V5ٮ'/2бn0^ᵏapl6pϓɢ7qn>S' {KK4o}pk1A^˱_K*q{̱n emR8hE$im=nďVcҚp a}Orolhy"@k mޚJĪG_L$6!(И4ư#C;^La9ɯoLxStQyLJ7|`vS,)-X+}@b-Jin)Kbt\PwJd8M'wZ/KDݙd,Jk+3ÀD3-}RW:X0c!u23`L!V̱w64m:Zo爲*ݶ ADwx d-ij o$.y{c[g_͒"Ă4t"ى&ɪp&#E[m"q(oR8h;YX>ۼ'lj_C92*Q ʉz7f(+3"?I/Y0(xwGȤ{S}Gbe;^nŸJVZW5O )(ONGvzcZSm5yo`B2%A1ׁהMI)Cy6.p`›zHH(9_aLl.,2.SC|Bj Q‰Dwo_G)ـBq |S? +_C-\ SȽC+.~=w,ᐱ!gyDrSpP_!v}-fV>ic5rQMq qCpD^܂]&tE ZS>ܬRq+.?\`LTFT3>}7hH8k |=a1}apNrp;C 0!8↊6$arC 7g ˆ?m2'C)V.^FSւ-M #$zm#F5\tUO~1ߘ͹tp66VJȋP\頻fZIGd e#1IV۔‰k1aNN(S{g2C^5tw{-߂[k ;ԅњ95~ZIdsGb@kʯtO%J>=e6%cC%XTk Nj8,}4mISߍB5za3bE{m6gJ?;H؞Y%WzEJ&R#5(u@JXNj8Ps-H8}]dS6T 𵗀V@F,ǫHO;l_3@+&\lYjUjtp#>Z~T0//Cun[y >d{"xq""cI,,& (4~}iS'fT'PeuN|dMxgyI1~zJyg ?"HatADaS >q"z]D-49~>Kfv%?3k=oڸ{0›THw̘zb:+]Rt{yZTF=Ֆ'g);Y17+W9풦=!j1~c4c.o#In "ي!`Q}V1Y6Q626ao#Zߛ3m +x>C4uuN?Wɺ\>9"~iOfS>i2MG2鰣;4#(ϔIh髴+R=n _N8LEH~4@Ph$W"$T63@&3-r"hhQm15MYߙ2[{M2@ :z@B2315;8;}۳|.[,䚾b.4{ca/A1r;rBoyӓXGo铖@ 1aHR<8H(ؠHCUZ\ojw-j z0j/[ͨ]L|y)0[Oa$ycIT{M$[}ɧx&0 j&İ$Oy>i[Bw2A쓠 ?#6q|g\@فaZi L'HaHCBXP;RdcƱՌ!m)<4АaEl +CKcb7FX&K7VuQ ͪN5l4v&g>*EPyX d֨Aw D5%).ZɳC||8{IR验Pt+mɇN{D4` +2ֺ0Sɣu*HC8"$y]xd.F6]zJg(tm΁K5=3/ K֥Ϭ"0n FQz1 ̚.-@]thjzI\Q% ÏlC<# & M;kvk ̈-)=yj]$nTq@r0ZBp u-G"Įb%N־5ڍR~EI#~Rf0y/#{J򦪥ps-`KAfK<-ձ7=kɂnw&!wtb$!'Qۧi43Fܛ]ڈa)}(t/`gԨ`"h N*6NZDVS3:3v3^WMt:l}:ESSe}ku"HU`|[cR9CKs)R>fF)b1)>rMJ+e h[*ť3 &ҕVq(%o31EIu?fTQ v<dcݧaA(6V|zjl[g'֓jYl5|^ﭝ&vƊH_ΜVcxA@ˠFj(Pvsuggg?NdP6pW2ɿsY4T8pי: :N~}2XZNKK4:ض(w]mCOt0)ڑd%/B8˧搲?x⳰=VVԾH~-=ޤ-wtHc?vocN^ɲID:2sDCn)njw0#o3Hvу`$bԵ:&^tO uUGcɶsN~vb{eTY{lE 2}Ǣi/ŒǮM1V[tdAٻo[t˟+wO?x-0va0yTwpSWQΙ6gHs0VuQms{)iu%l`k QL;lc;4cT_0 t}_e_laU̒h:ՂhcΫSfg,^Ai&8Jwɻ\4!TU]~[0keZ'#ra^7̀hV֧&R߀7'!89i;DgZ6p pؑDLzɲt=ꛠuoO~ᮢ,##z$ztiI2f3F|ط#O^3#A@GVgN0 />cJzI$6l̓e,H\ c%N8%V۳7V݋\"3< D$`>dY!&)tRpi \vmNM٬2~rtZmծ R [vm?ܛƷڷIYܺbp}IKT ORy,g)?%'wѡ$M1GaF%zHLV(X8pMס"po]M:}\[Q,3Rq,/%Vq=4W"k^Epհ]q#Zˑ/\d!CE4g)jyVsw7Y6-S"6*4kd4z~ sI37`~m-``eId wWogv[<4V?"RtUGe-K-g+BSH[w=< |J ڧf]G hIYQe:ghΎϖuaU`{u2Isv]a;Ί".T0e3QtZ S*jh)^0 Aj4T?*TZ3'CF?iAhKۅ}R3apܯ?&OYIl[^fVctNk]PϠ l߲fǨPmGQW,fQ[ÿ ɱZ ԜN '>Le]5r&U845lG-`Gtwybc2 $PņIl9/e\D2c{r|nD9#Znc'2jM0XpυƶN+ WV~|ۢOԻ]F a-a i7\ /SћbUsʀ8|i)6f=yeF}; M wv_ XV!hLTA ~r=SyVe9zf!!b"#埮٠ʛeHq2_ѹFzȅkIxF%Ʌ{ k$9V R aV*Pmдr{Y01V׌} AwyBf] 8TU}X Z't*fճG6s`{9| RzOb$i!:,C_C|}}ޅ2Fr>6": kg# J> z$ P1fh4#,yFBDӈ`A/!Iy9fLAo4^['x^a⏗Jق^{(P0>#{Z o[z=IA\ۂVJ 2~$/lǁaLd 2&Rg3fV|J\01]@1X>IjcH)x9*=>K$P@U٨^6y-W2 AP@!x_&Z0aF-tL^|V*g> @ʨrGj%^j^iN{D =?y(Z̤WzcJlr;+T]&RH4լ>|(E_&W,BiF JJW+䗍~e !@WL(hHK29JP.(/-X_م2D|do5*GZ,JTET`X7gY - D@>+*r=yntŦ*OJG#C henZO wd8Kt5'2? )'9%4/T@JsH)Ft th%5p((3&FPMt邕M+2|0ұu0kc1}: R d9uKsB{\F:>S+iUd;s#JZYQU>?LKhIeYËP.n6vI>Rlw?bLpuR+s bz:E+B~`ONH 6_y|f1K!g T)oI Ym S5/NqdaO=Ĭ>qA sVA T໏%\6?Gw̆t mH+$v\kӈYs<)؈6< !G6\@wq.gFx=0񥐝 bx*>f4.5B|KC7bDVˎZޏڍ ﱊb4QQ04^}r_q1cWLF(X2p5^ _ȉuBcT-WG@^+(IDOOX.i)/]DGHMB 'Hb@K#1<F3 J zz%3jj.<ؘ}6MQw4NRf3 <7}bt 檣Ks\ APoćpe ZR1cC65pz pu 3iu&)axzSE'@/Y:"iq@ڷVٗI!ֈF|dJN2ҩjUwnW, /KgHH>Ӗ.g~mܪcOb"݂mc/kc+BZۨЫ)n9ڐ3I -pC:P D#rLI;z,o"n84jNmjz4E%ê9 ?atabݻ}Shw]EWgU?NeƊᖧ'ص3_5p,W&i@bWJydV~:C ةHkBn{;\W"V3*m o02W$ >x Bg h`P$E4PoV MqHBpÕ)7՘d46xz1lwjO޳fV$:(j0^¨V/Ú-Վ'fyKBtOAAEBa;u#R?rj,ajU\9Xpxfo(G' 5\kq$7!c >lTG?2/=hvβX]^Ɣ((د@H8CM%d\jb8P Y[7>T1RđILJ[#B|_B-+Q*<91ӔZ`x xY[[1ERqhhYG"?syp(ù&H[#?7&Y̴Mv{yJGָ=w`Z}HOkEDDoC+ 0 2մl:ԣ2]MTc Nyan2; 6/zBV SDP5fꤶyt {ꚞkꀻ4E-T7hI)GwE dU.$v#-4VBD}1{78豺u}N9-S51<~.Μ5O+&ҙYHPM@ ^dI#RAX& σ[&屡s[?L0ݣ-x >"{+m\cn';n{*}|?.%Wެ "yIl7+|8PǸd3v/eְXZiAH7!wgSqQցcHr), EmWjxkpȀa (7cMWm+mK+o{ wgFatH=C>&ѩI.9etAT NdxeNL`*? L[{a SzӅ|D#fI:¥JHއ>`=nHj:֪ʂ=C=+rO _+/y }ŪMU eotȡc8l43#Ip!~}gA#>aGb\ +&idu+4:?VBԕյ qMH,:T;r3H``%C!S:"PjD=,:/V^]`^=5@mAomg>$C0Eg:SfYKG 甮M[ô9TzuW @R>9S@Nt.Д}8s CehK^[$i)q̮PEu4uC&? 2&&<=%`] HIܮT\:Z+y3YVPAI ^uyL"(28">TtG>jtAhu= ODxO&j|?Yq0/$y@-A~)dT 4`<v,;H^֛LJpfOIAGiS=i-w^Pi(hϒxMb {i -p\iz9#aG)x쏬wv"ksQ=tg" ~Tax{b $ yooȧ<Xu<\[.|"ckL˽72~,,Z*\R&1Rx@'a!\ e|* W J$Mw vڸ t6N=k@pݍzq˪Y1/;ٞYвM}#Tl\'͉*7$xlgf-Ayl6sp!K%,q<:lDc]Y P A>a :fV]NB 2Vo`ZwX/ȵx rݔw<gM.4}䎾0/?%egPSsV9lBC4DƸ%ט9UՏ$9)F<* 㒥|giGZw{H[Pe;JM怊cY~*-Bͦo(@l.rEGmtt< vm~|BpV۾WAA#YDl{S;K,UE;*}NqmNi+|H#^6.ضP)T9t`Q >7H.$(F{SȎ/J Puj dE8&cż>)#ba=V-8}W`IC[8.G;Nc# ٖޯJ5!,(NɀF}:MH!7WUe'Jy cḶ2rN'lA@<"<k!ݿ3H^ejs_Y u|@%"o-70wj61e,Б*h>~zjYJ,P{}hBgHLʻULLM;.WpIOPc/ohC_)&сB(őDkp `4Ui.8 mr:Il+mxSfJb0pT~FqU(d.RG04W|YV -HQ2z972w +ɾcN|G-%ͼ]t H6AQ{wF~ePQ"mWSʳsV)M1N}<S Eb42hNkmH. 57 Q< f5P|wݏ(BE,6&(AcIw mnZA!Lt $MpH:u47sz%ai=JKsXu` Oiu&T@n+<%/D:AJR•*i/hmG;^ 2zgJ0sPHU]!vpɗ}1lS lgSRNw 'Ca_g+<#lU\@`lZ"|nԉl%NmS?7,oD]'-B\ӹ"}FIy& BE5mF@\*+잇F5ﻰQoAV:p åY=wF&/Y]Qkqxw)b;! 5{'ɝzU7&,@Z>ܱ 5^& HD^ 7Qiȡyʲ׵QPx0,h|K&tmTR=m;l#ZID9d;<艗5F> fk4_1Ov5S#DSI͘"qb9m+n3ab)kHO} wBVȿDx9 0xDPD>YpkH iLupSw6>H~CRJuP"gY;"pJF\7)ΝB#Ef\P'Ot@kz \?毭EW Gic8+ƞ_Ϫk0;_%1Icp OWe +o7"2H!3Ay<֪i'[_dD'k872 ̇Hǣ+L=:'>_"ns$?o`[̠}{"!R~JU?3[q~?73$_b& ϻD>ҁcA2XqOWPC^{prx8^0iѩj|n֟zZ$ϑ{^AddiԂo\{J}\z2DUD,]t^r۷hgzSd5>wBj&6_ /| 'xI}Eqъ:JYF:u0`gp⹗^3d#pdn~6͙%Ԙ6:OۗOdiӾhEр)-cCfZH꺋ܹ7u\P!%FH ?VدGQ#Eu#'%f@ΞS,6Cی6wC|̰{ҏ;RS~2RN}:"3mα? ~x+,:g#rihD z+p{g Ɓө핀cꧧxD(8VVcZS(A-M]Pw~'b(zFDAkHI$wM 9j`w,fz&{xMeӴi^8n_9p8UZo=t|W(1\6ݟxQ>fk1h(3X5f=>g@k)P>!"hHCgm)Ɋ)|f K:4^ :X3Zܛ?ӺYM[ |)_] !19M "@ )M̸+skfg#+FZm!Cj4H͔t*G gT^Z uOX4uvٛ(>0!co>!rn9jrhޢu?# MKgW=`;x;|N;L/-3b/^5,Cg Fh+_o'5Y+n!aӌ#apW#==lYj]auSŭJ1R$? ?f@Ծk _&mI^ԪQ1*"|qζi-@NWO+dJ:[\cyW9c$K4cXoE$|7d ii{ > }xHlb@gńdLq~-}E譿7<~.H)erPɣ(Ղ&HzTWw{}Nг*hƜD< A;DظUAO˸->XH1h"QvrvdT2/ј r O}~8J{Ih*B[D!YֱpR'-}x{k};}@nZ-<y/Ta(6t&w&,L]⣔u L_ohC7 ١fN /sƕ8k(+J2([`U:ph6AM;dQ~̲T}|֠Xh7v=Y6/'Jj719,SrݪJ2bst:RJ=DMFPGJX[):zfwΨV%-ÜN;VMgPyF1` 1MK&nĕ,m-hGBe")/|lm:ր"~FAlYS֛j-r 7!^I~45dNOWn/B׵yWZaSW4=QݣƢoROP%)nio䕕igaĦƷV0.:9yScta<SOltO7UOpEM ŀGqaڃOu #W3 .̓ ~f9s )0b4PcW΃(Veb"8aSS^M_mCBub/[Gc[bSMɵnpHyV(?b)ܑ^X<9 R܌rg΃1v-XA|!yY$ 1h E%\+}j!4Kub0nGS˯L19e^ba+eXj1 -yp`>\X; jcz+KJv+d߸r*()-^5{SEHH X+Rj7ofJ,c%5hcFJ>C)!oN?u7IwT@}@4qFj? 0=BWȄ_+5!l2-4-aBOO;$mm[~]tFC*=R^~'X mi9_ l+(Xe!P0 7CA^VS׿zgXtMAY,M^aBf׎ܯwe $Ҥ.EP'$*i exOS[pyB:OC?AnN5㳫J6iFDfs mPT 'rZTRxfwdDj5fhZ_]0GOyDdqhPF Y:噀Gc Њ љ.Y\Ct1 bP9 Dzw[ɋhmKE5HO9*14 Eq/Ve bf8܊ilPVu Cc?4D8 ޹ k s;~d/ړ .u(@ QX,9eC&( bIS;*%TO3Y {[FvCKG2d@|^Z_3jDMdXԨn&Z(2H$Z>S 45kʾf߳i۟β^/VMT;vm ZZ(c"OhlG-MN5-^kY&М@v0t,Ad-R$=ܣlϢc3tH 1/@B qTa"i4¹+fgK4#SW*_d (`IWs;c[WpF(+[hф{p+937p*́ [H&+&&H"L M?uH(HFDǓk&Yel{vYQaHre4=M!YtPRYP$mSl-SmnMKFڙ|٫yEs](8mdxRn"\"&ђ=9^ wLN,,D *Snؿ//tF+Wu ˸JO8k˶;~yu@.$hUbB}H{rY9u jOh)p%9,E\ǬhY-\~aQݰ+VYAM|) .z bD +\nI5ׂxCBNASe( 4BHcZ=qLGM f]+h=} G=L u5dQ7ELxiiV9E?S{Dڮf:O']|rY "Nxl;Vi5t. xPNukSqllB`+y\ҁZK廕cN^|ׇ* "wF)|8:Fݮ%VE[w Z\y&@Eُ:1Ʈ@. SٲS/o;\0z}PKv]6-A=G^*jhv/nSƃ%6j1a"ə VV0 FPtZ M0,K0^3!WҷLp`ML93Vsq0츭Cɺw ]C9F݉v[BE0jmb蚂I?[y-w}S3}s+.v;1J>USӗIP((˟Cy.؍yqa̤{f[]!Y:Odi, ,_H ϣ3AACX:}_'w첢}R pp=`b8FqZzMLdIorji za]kr_0*sAz[w2oM7=n[ߜM?ROH&\4>p l_dL]XyV#(a(ocn65, 9|`Bg/e`T[ D;% D%~vf8EƩ Lz)K` #"inxB)y44{i\v$<̀ €^VZqHeK/ѭR%{-S"U+-(įәS1!NZ5Y%DqUst5z0IHv'憼p*.+3qNJ\(Cd]|]^8RYVaoA+v\9ʹ#ʽ ~{2𝴢dd]*x>Z9X%bʤeji喺T\ m%lUE&0h(bz~-ßҒ_]Lben"5K\Ha@>9o$3["Q 6fOzOlU@'[Mpd~.*c͠Gn0g&մs.Hu==: |.щ%:7}\@)uALLj A8:Z^z?dǼ8o: nBDBH4(QJ-tHqQJUJnhr GQͳAh^zfU9kvgR4XCCӊ?ZΚڟ=,8vM@q{1֘k"L8&w[Rdӌ5jU6}2׹6!֗9TGE #J+Ce;Lq燪zT"|QR'øJ6+}5e6}: VŽO 518jLYdvZ/b`ܫa-w0G`]7K3Y~r|{,\ZԊUNt|/q?qGD!h';lʼnsV'./7u#os?f(6@xLe|R ino0Ff*WRZ _`8zN~6z~|Q#2%%N=:, +(2@R\PYKK…ȿFx>V6b̽Vp͍b=B%]Y+CNn6&8b9v޾$R `QF1{>oXFNN!+:W NooМ W`#(>s29'05t [# K.~i`{1ĊxB;<>\ÿhJQ&D=_hAkƊnjmD|[k"*m0 A o ROъh*_%PF`(uMkˏJɐAN诓5vb`[6y[ق"kTRSi̞q{ /7f}j@_K%E1GG6Rm#hg<"!N`d{V)W ȡ`xXJDZ+ЯuqD AI?7+0AK/hGjՊ &27fVHxX%!TI3Ѭ'qMu$bYI.0$<JMlHSa\>_9ՁY 񶏷 AK%Vxd^{Dd(A[kPOJO5R$G;OhV@"{;1^),k"z}uL=mA( fFi[T9/3I{oLɓ);YyNHϚ# M$4 SBuj{6;&ttEf9SƩw8U#9tJ)GJ{T6@ M1lm9 N.}:AP8jv0%Oeyz$N,+I3vǘc\O /qSYHsKqP); ٪hpeh@=vwo)_ DlΉT1jN9/"Il\>=M^ 1JwIٌ ɬw@ -\൲{|.&s) Q3,v7EUҡ4܃5s%8E}!ш97 r:VAV% Ҙ~ws6aN%/~^ y*a>TRgB;_e3SҜB7kԵǧDz>aSZJ'C)qETK28COƳuM!c |[AP:si(MiqBmv158ͬe%\XaC{~Dw}/`&y xT,IqwqP_@~rhbRR#(w#]^8CI G|\ooZO$#PMu^dȫrI ,dq %vw* l*8uT]qW#RiIKUfܦ s>^@r8bvV#W_͊QZvBbBz5CJj\'FHp : ͪm96%r.mO2{>}i=5W[Eppf/Dj2''6vo`"x̨L>ͥ $W 꾬 eί4B״w[k.FGUŇթڀ*oߝ)W݆.2>n {$_pJ.q3RGp5NNvӁ$:A7 R %hm718|p5Dc&g_A".p|.FJ H/# J?ݭ|ǎ#mΑΙi}qVR&]z1~<#\-e|b!&73-f{1Ûrhd HC\[M Г OX]fCbZ)4HwJoi?8ZgWIZv} XP ]avӏhQ@j$^Qd:κD4ñذaZa .Zԩ첹]*=Thyl6 h4XnC܂2+KM-\-?z}Lݵoιn  Q9(d~05\$:Eqg]Lӻiiϝ}Z:MK!nvyY!J|"N"Pg et䞗IHy6jrT!9|:kҨr_dӦֵylĚhYjV?#!l?Y-ͮ@8mjcD*'m"аL@/5Y;X~[XZ(*X}GcúYبpkD5g?V]MMxݵaLX! .="lhB @ba\G ?%9Y sG~A00a-gw/Zim,Y樘F 8 \ژX]=~I1Qp5>6^ؙ ?t 'o\FݱTdhT-fKujLy  Q)r/ͪgԒC*qq:گJƱRaI󖓋 G.44@ ݨy=AyLm=䋥XGTX ͮAtѻv [-D@5mM!ka7v(-}=gn;d`輰nP?L*q6٠yʙuG9 _0C #|iQ̇tJ0oN -XMJn;,Z H㉇\"T~-(fj,wGo?O|PhNSwd"gaGc3%۳e!ܱE IrjA:kZ cSeޯhp79m<$IFL*+-weG.VXڑy"K[ e!bi'fPD 줭J'}ЕGu,bY6`x@f" 'LfqS?Rl M~%H3n{U]NWIB2DBIp=>xn->~nSaJIn<kQ}It73*vEv@ylmq}\yU-M8 FmzLRZ_O_u7 o/Yo&{mO:2Z,!t-qjG0v"f<|Rʎ- 2#ϙZ_0`"uo }?5~K,aj`c) aŎh*Z5Б.9\wGx% /m|TJ}F]6yݕjQoz:$ H:aBjvop&3T6jibxQTc *fm%fՂHAO:D2_D"%0t'"fB20?n;j$]80_zC`m+`ZEdž]dO 'CeDZ5{w ;p"Z+5a^Į@ٟQ%.qfWsaV<ɼV D8OՎJx:vҠ  ;@GDR̦-AH+MJh]m8 Uh4̰GMD!IPןuҷg%5UIusT~'P飥W&J/ `ɻP p"̓B9H7r}LͩW=?L}  |Ӿv$fS~r $\HfIOZ 3PN|U,h|i'72Viva,\1{'e+!SŒٿ 1X X>ɃUG׷'b4hu+wkw$pesE2H◄LpFlD%) n'tR& \lݐp6  ga:p][̊xCi8<0f{_)IݬكgoU+;#I2ԂlYeYiMݞݣ#^SQ1K֢ಀlb/?MK&Qc@i~8 4O̠J!1qX }HK57Na9M2Jmv; oɑLFUR5-h- qe:I$"zHbKlh_ѻTZ֪i&43ñ 8%K2c{]͹q]^#5.BGV.5.]6$빥tE3$zd"{{CjEnfJvGXex^̕`+N@UgJ I$M >!MeG2V8ʭt4 %Q>%NyrǢiC u~!uɋ)'NE 0˯|v55p1 U6Wfv~JǢA=ju ~5>\!6h!B~H3q}B2Y3Nzu&@ X|_H0.ġn*$?i_︞(cj& {s!@6%Z`g%<&\ ^ӳdw<wi~ W#2.vH-ɼT޼X4 65rQ.۔GLyJ;, ]j}aB}lF>ȝ.EMI璏c A1y:,$(LqL.9$h6 )ѓW Y $Eُ;yR g:2)n.x6H:WRdH,h;p" D]9߉SO9tzP c:W\c,ݼRYa?Q7 e+|%Me_Ԏ_?E 2O%Xtr܆Yr|#Lt-0AH5Jr/`3Q!N1|mA|rJwl~el7r %T /փ4ێB9߰Rg8Ek/>t0=]:͈AHݐ\R$j(\l)ǹKwhLEB{4IM 7!*(Vznl2gUfth`4QڤVk>$Gd_/3F/E8<\p#f\# #XP)FY5u'AsT,2>X 2p+"ݯ;kGfMlCwߡeaIwł #S gd.D{P9=S&o`5)ʋb4fiGL0n%9?;?oJ=DT6jPlRsiZ5TgSXE=כ.iVGĸ(&W_I3lC;D ?X'6=Ed-N?8<]S[0aLnc4D ΕkƏաQI! *UP:ӒNjz5㥲#Of:ȕƙJ?8HT3|p;:F" u87;XV8duW>~zF(#0WGi4PB+Q;zD6X^ɱJ&w{eeeY Z9w@z)]yn``pxMp?3[]YCv,h,>*Rl4e~6y(WCc+$mx-9X3N ſG\&cKj5 ›f f=9gc:j3Eԋ.KZZ=ƋSlc J^(TU$= ؟&;?tJ& E&W5y TƗi<[t`#keS-ꈂ)/JQJy2`gf?NR̀,B~ԓ?km#ͮ#trv-ܮُ9fm #w'* I51 ZCV\wͳ ~~TKS)y94{igXUm*^3 p;r79n srIוI46lP]|pC0z50?EuK e^Y?: uLQ`JA7)e"ɰd +䁾 ,B>نȌ giW* v0xv,?ftɚSam4cߡ u9?跁C\0  DHW`Wu <4PUMCƌ"\`|߱Q#l9BEJ(ېhV:fC}cqbrŶhtj)ɍ%UѲ!.>کĿst'P罗!q|0`Lg[G2\9 Z]bq(O5+o:GS|CY,&_Έ4HOw`P? WMښ$T/79"#+KՆ sBf@ cMo]eFF#moM5qܙO@4xGDZzό|]O^R cpD[@mw_7X3 tIt3ȷXsؿn^8vigdmM8 1Ncp7NnYAʔQoH1+XփTRgS0ZsZ r9"Qk,ZɻtNW^v r# T2VݘhF: u^|LJ&zǽ- (o|uʼ5Sz=h%0&lLÚwH6;*\rgIn4p>YY^a|\g2Hdߔ_`%Z.xRSIig~t7=; )Lq -v7 s8bCJ.I\ JDmIE%$4itNURrhy/%0Y[Qגts| ~^,'m+>|!ВއPa}Ľ~L$/:zȞ5J&΂Q_k {b$a|ct(+"e#%p[k$JY+Osd~n3;Ԉ1epB;,*a!ibooWL0dEB ZV`x O\u[Y52WW3Ig{)PbpQSܧ[zL?0J)$ϹaPQ݋_\9gϴꔯќima)a!Ds₭nlt5XY0- φECZ{TJ-|^+RIdQD9łC84O[:ΤP/kww#暂>xȁ#ʧ) ^گZ.͟%Wf4HD^srCT稺x@ {e]9CPYrTɍw . ϸPI7>^gMK\ж'Ew?>-˒H OV}{J:ok9,-~M +} yeXms2;`1J辽CtMXtA?XQʑ]d 32B ԔW%[9=|wL@U%ʷA`s@KVJk tVٞ+ok3 @m9)= E ^@9C kh;m'WLʁVÂ&}=kzE:gz 'Aa D/! fXy:LO kl=Ϭsx6eq ,t>( $X{%x5';Q>fH|iЋ/:5؋W~ 1]Nir'?-g)j|0C1#0:4Gob5N^Gq{ ?L}L,w9a{N\E RX`BW\i?4w=>x}-Hm6sDfQMl۠FVN^Jv <\"k&Ġg5>ܜ``IzVu /7_'OBո-Nːhk`0)f΄X&_wYM3%@hGz].A9!7]Lfg^uBc?/3"\S`5m{@T.b^JT3 B)>u- n壼mWċ^V|έpɵ#0}bXwpp:4PӀ NU4e.XΑv", SSvOsec|Z۔Qoq kxZ5)3Dm87Yÿs%+^4$[Kdhw/ K56fc+ject YgϩmWyvmĤu lI4Rh]g0{͸uiҝ@_Y+~wDfI<̆0߲h:wM߁S+2a0IA8t^k% |Z|:dƈRPLTŐp%[UbMج WQ/y򪐦%ڽRPР5`\:|x?@uN;dMKgӵx[yt,Х1wW!M4CdEh؈OdWpG5ѽN&Ŵf4}f- j<*-~W4c;C$cl1 Ar% #)`J{ 5&',c{(TMT/*32Zwov;FS6[j9:[ot<F `ۆ;b_A' +ujD@A`C޸F ᙧS&wbUP!v#maVd}+dE;V7 ߊu&`7Fq[滑kSY0#:< "Ht)Yf^+D$t{ḁ5~PD'OPIX[7e + kHɰPMh]/ΫH`]RI.Do1\ҢkV. ,5D bqpW BL8tBt.<"sUB(vXy^ \Ȍ(@y p"S=~_:8ٱYy 'hM5SUS|bdZ[?AA<4Nse7 kXor3 FQ_( x;PZv܋#xWvpYX֠tZ*%0ff_TvY87nM\{3߳4ec@Oim=NE u+>fa+ !T6f|;/\AaL>#`1{gosȔ,*[oexz2tH(E`4?.pB+'ݬ꿸2LkC٣i.uڛ(`"76Jb(uPS1=mj !n,|ɶEFńG0|48VoxK|i&mXkt=~N[^~ Y/S`/f#"Oncj\R4U$3}`ގTaH̟$8'P~qC[O!`ˮs]n&ݞ RvltϪ{S'Fa6ś50Ge*qݲny=vclAU{=u_zJB~bo)ũ䫎YW%,sH>g@!Q2j*6ۤ8qyJ7rNN .Q4j-G%汙0M3ː85K%`:hW*CIc$@ Bw6ɐ#FZns;Cc;u08Ӊ}a8 rm!qoW`UFr C +"uTG\Vu䠎O=."hJJu @:>7A ouay}]o<﷫yN$AZT %u bJcsEH0uXhHEVBU_[.o+j?^y>b=lP;!DdoUO'7iEv|BԄ:x Z yr\8W¶Fi/  E9?P$21> u}uu`"ʤ crcbqoM;#}/03F>34&5V2a :6T^KŹG=ӣA"Ċr$ZZfN`P Ja#X~U77d(e*m=,.&Gĩ'('D)CE?)qġG +/ ;l T tD [AE%ՋERE$cӫ\l >^V_jė'҇ 6t(IM[%=iuĶ!繜Sw5;|,XPG_d4V+1lj1iC NEy[Vҏj_0z%^ӧ↥Y D*BPB~c'~T6HG4;AS`I7JG5M94`8pFyfqt8j䔚;N b~_N+ m`Y {0 lbR7~IŸFkSwƱD^+Gp3uԸQ[l)9[ŞKoKn#5$?cQZuҎHY@{uLCÄ 30p ΀TTQpYXpwZ:&a16 Gl} 1P GC!"d|i Qٗ~GKaJc n,ۼƥHFlƁi}9ZFN0 }m JIKUXP[`Hȁ[@HW` 7$A˜^61(} Pe :ƙBF 1 kC{{;DmlB9WMD2߱W¨ȻZAShKf|x MLOngk\(AV+Fr PgWY>"3ȅY*1h敐LJ ϹOq0],kb]G߈4P6gJ%<ϣ(}ۚ p؀q%򝈾{C c\MWvܻe]P`z)*`J Lc@*m2ⲱ,p~bڦy(2p|.ˀ^mr,`k%swyRzI{Ԧ߀wÇ;=D/vIU‘f4}9W} ?t{aՙ܏x j~^Sqje@D^n=;Dq&6U`7llg|!xKs=÷IɂyL8nŝ݁Vnt5Әp˘,p)[u>D(Ut\\YJ۽NԽ~%&2&I4gKSLvNsi V&tH(|=hL̔f#$-7u[_aكs@F)k8xBtp6LE"ji,nyrzYCHTʢ!B:+ՊPcN١Nz(jW `Ŀ8kM24Csd )Q`8#&}g/q >.9 ]j8hȶ9wí'H!wNZ:OVc3;jj{}yvw0W8W_xהY'5t8'Zi( %NCaa/9*LtEBsȯ5rL[kbyn|/n-E Yv.qoYdT*6ÈnQ6/M6K0g/uX?Z0ܠȝn &\u+svD#7O5{TȆD,`I8S=5 @nDFzbf˥ ɎΓDQPd7?fܿ o,XuvظJOF *b؁Pǜ\('9_SO%]vj5|D1tL;|nTualI儻PFIƼ n7.e/0RLEW$7ڲUV~\F&sv-ʹ^Ӆ&VL6&Ԯ(py]GLEuΆn YN7dۼuk3s@I8K&!0ˎβպxG-EAZM(sK2V]`~ : li^z},6:x% e~q۪1bteZ .g6vSrQ z)BڞGǮ̨gD1*Κ9vuW?os\"ں&;Y̞E@F 6p}B[ciQύz2'.]ȅďX5DKgWO@DbPbK;2SV_zN HЋ,t8iJgUfKzc_(rwK ߃3[bV\dxd*f>ݛwte*x8UG? H o~SWk|#=<3TSg2%oo5N\xr(JFf !49+21J,5y$P'~VJ) @;(1VhMB Kjl$U2#B[p*WPh/bS@%2OYglmNGgq6xeƚ2ev-G݆݉,朌LT]^=(po)MK \r\6}roTaߏuOz=@wNҫ s>Gos A` iͽk RrדJ++W"qLZ/hO^eRHF^d;uudi[iFf:en1Hn 3_4>Mz)̥G!S\&YW4&b2qzi=/js)JmJ6tp+r:æT(HoI6E0.LQ.<.#sklh * gy[1榁;ݷ9@<6ipǂ)cRUp`^}ȏ$b(@af"K.v5˃@[fwYRzLcK޼@ZaZ~4׍BYۣ~VP@$Kbo1DĆ&qc)UIVPS׉.=2K^RCc=2v? =wl# 1:)L_©n-Fu-aSxmࣩY9IW0w:ث4^V˭"t)VHoD1Vy i:MwZ_zD9R1qnM<0fiS'֙/5랑&K\!3!Dv '\[akU d A g'Ůt㠒u;hөTk}gvǯP;)j[93dȐۙ%y1iB%J8* N zӫz+1KL2" oB5TGeVH|:(wy13죬Jbϳv;Vu iG6PwVV @B7;k)g q۹y)7լV Ղ2=GáVZ@$a[ϼCdZ~xJ-D*(le4A-޼^RK"vS͇HbNOʃeA"rgzP\toR"6;j#y~+#-RhYہL'VS JiJC6R:m:ڤa =p=0\&Aއ:b6O,̯#& Ӕ-[O(w槚WkyzrMxՊ*j} 6B;էmT|w&m=ˆ mhn(: ~&%@ '%NbQ=5}pk&rtm'wne+x B_<"O@ % Wu#V?K6 @^m&+!hHբNB!l,q0OtȻ:e0 I!REJ)f~?MN'۔F2\dD.x)>vY'S Է͇v@'ʵ/#5Ndk½nv/R~ە4NfH}e+>5M0XѾ&C,>oTjWXxYe8M_8 mJ@:Xc V[;#R2mT"\Ȁ:+:P ) u4 N*+`IA|;k*qÏſ&bS>k(GHsP`mNnC664cةDw`w`v _7e>ҧ9d FO,g/ /X@wom 4#һD AF+$?Z TZ`7Q}dfϺa$rN4o*£]hE=} //e=A-ZG’iMtBD@3}ʊ E'̙en+C~բ­(gY]$%~Ơ!@D$ 7|BLo^CK} i`g+dU9e:K@ﶥb.qx!wyPKJ|LٲqV WּkGU)rHݪMs@Z8Ax%h1V~,XW\©o_^/y?i5i5]x(ύќ`׻wAp"FGYRk.2lԺ5O޴8\G ~IHCiw]9E!ᇆˎ`O oQfn{ÂAӊ5%(&}:np m#~``qg9,V6"󨼻H17xsH;oTXq7=})gZ_5HKľ9VθHD_ޟm<,jQ 5x?T/n#~Xu^BW?͎&ʴ#F]D{F⋔.,;=ȲLδW1K$S'guj~jvR?[NŰ[oƖ?Fc͎4>zb@dJUR0 |qȁ>9st(k:?{B\e``Pg$PKzKDRً>аDsg g(,)Y-2NA#-SBbu$j^$9YW[ 3SСhك/w[HK{ T9{T`'tv0dؚיϺI 9;P 9AXT9j'CAءwB2KhP.`f]ro\$y4ΜE=Q5njKs|u5.]x~,N/8UrfϿU#F)SYn@.rt-V2Nt+qFYOp p4+g!c5UuRcWCD0;jw,hČ.%9:vuzdAͭ+s쬲-4Qk.96QvSc|~/e]mtqah.V}9;:n:ȣSLv~⢓>zR@Gq]_PnO]76˖as SP5V {$&wi=yDQlax|IX;:?N. "up'1 9?]733U Zvdf TCaRfy3֐}=TGu$@R8?z,67]JcAķ@gAgț8y< #KzܦuT)حl/軵_(|68C|d32jRF/ksRJ?0mS:W  Yy'-Uhbʽtq*wוr ML1˪ !%U[lGk) PGTm(K6<֪k.38T75"DWZ`T)1Kpu+ƀeG"G`8%عW6D-};jϲWiXKOH̟\Ee#VHQkF[b2=XM ,b'˗B v!hs< gƯµiqN`d#.ؑmwiM]iK%  m|ȼ(6o^WX-r9':Ayh67ʚJj(#v/]-QM-3.sM}z0GƮ-s-fן#AhZ:gStx}?1c̏ņ@.B˾;"-r I %+>-1 k^z O5[~g)=JH)h<@$9E;eb_Zb2łAmeBXx?$޳*I|5]4qlQswޞ-SJ8qr d~20} S A@ÓʗJ0APQFU7 U3^fƟYS;%>"LKbVc s!;`fink(R.Ö YG .,(d&$3*MIiG.]rOȇHowlVuf6!k/C{RY\Å>ڎ(>;q|dFΡ>f lOظN=2yfO= 8Ŗ2[tt!_6DWزrm#=݇ɉa16랦8 !,0Vߦ QI~LTYNkG6Rb,DP K\Г,nZ*(Ϝ[ /[s\:~OGE$\N[ k45cY,$#x^Z/Yegӗ lČikcn} >j/Q59ҠCe =-1l_l]ReKJj~F05{'s/>3&8vfPd@Wmp]0 ^["ހAqIupBLUOM7.]*E}x ԣ 9R UA KQS;)`'D;m7qx$v_2á;z6lK N)%*N~ĪgώOJ:k.ןZ|f8 h+,-5pj0 _eZv%gj"J]b$ uYs`B$Oޚ:.m2F;)f(7g'VOɁ_hΐk1q7U+#!Vxd_.HUfA0(jT7<3dv5Hۦeu:TC'һ)m]hkbH kX5+*7//Ż:|oVN++{oK[ OM]ִuYmo뻂Mcr4H<#@ QU.խv"U%9NOG8siApXaHO|%׊`_>8Jh\A`DzMQ+*џ^~ջh a fTI'Sd?1g^pTUMM_lUUAt׬o\uשINСFj2 \]o&-Qx]{ i37ř&v&ؠO98ijui{3ˏ%h /85t疗1w?!p~@kJ/Vt$<v8QT9;oN.z6ji]/#{壘zOk^H#[^c1KeUx`T0xyYLVE/EbnCj{:[|g7X%>,-4vdF :()0$ނֿ %OU? m9>̙D٥<6g\ŻO9 v9I9@ͩV>9'vOq{i4͡Jaftfc`BFΛWz2Ll/4`R "SMu1+yR0{HS6a?8A>(}Wg]$xg&vA>贊{G%2A=Mՙb^qsZT]!ˍ/6}cCRDYpϗ隐bd,csC((C=P{9GôDNtf^BE^xo!Tl_ f͒68Jtap3[MqYPnR}'`Be `4ꪦe:CZVLA%9y vqs,Åw,]=\!5Hó`G{ek3 emm64yPYڍ(YT cѲa YSA(Ŵe@`ƏNnNSBQ<RFп&Z jp٩7^C.E)X\5C<{|7mܤ#t".ÓoŐAO]/廼BZ#S"Kk07HώmΉw #fL9*g܏{-&t8 P{⇱c߬"?R/P V;U{!i4q k\K_P}s`.& >\F aE6ˋ}D2Yl9fQumB22?CV݁tOLK-YR?0mwMSpۇecU:yk+ut|SdSc'`XZH}2+YEo.זж{Ų-#\O}Q=B "neupfDhuf?@Ecɲ QC=XK2fmȨ!̖͂\4˹u{O\UJ)`}/qaU]:@DoNq%(۬ި0Sb#j89lnqsc6gޓG zh.xeI0;Xv鑏)PrS+@C|ԓ)>+]de>]͵G,x[}T8PڔJnynl]$K%vO*Iǖ1:22 io떗%|8vs$\}J.=J%q'1)t7M gSy>Z[r?(dß>Kh(/>PTa'S*6z1yM݂e|GHє"|3m+zWGЬۋ>;!op^Lrd6[%=&! .3;lkal0o֟Fz_a4VN="h)>{%cw棗[uyT ~d]J| ܵ׍YjwzKBTTcFz| fvq1QU-9R0E L |lU>nURj*-\RBۤjoOMo̰]kG[ @(K/FsD7:=[h_{} XVU Ɗg{}Vg{Z˹ҌQ"˲y9Zx6 ZDXf !%kʬf*aaSݮZ'?hd=B6w,(Wzf/cc߷AXy;.yhH?v/ZK0Su?)}g="khyt@׾ʗf Qn%ޑZ@>3%wTc}BP餪77/Ŏ0o?6 eet_ْ-X<kT\^T 3ympRޥ[x\NH_*?;Z{Cٮ{TE9P~F|LzCoѵ%Z sDc~.[_\:=/ ,LYl~Z: H luL۸# =4u$!Z;SAU ( M0[Lᘺ^&yHOߘsU0ţtUXsK(Cb>FE7g0Ͼ%EU"L:Ф#k-.UGc0t '$iބry_*"mz㌰'E/qi՛>,9R6ak.Vy} C'.G6@-.cr=k&6 U7BY(Bb( .m{V>MHv6xX\a7SE=gOZ` A}ҶV&ZmU0Š]@˝<0[P#ޏ#LW Bk> Rr LwVeJ?e;Z4#?}jR8^Y*UdSm?Nh3ŊP BjcvZ8ZE%?s/kdsulF|1"J|Fo^4JN{Uwe}D(Wk"~:t vps!CPW}D]6NU&v{O~NNMz2KP@l`r(F e$:Zcv^Xnj5hf(R.(`C=Iƭ` L#B@Fb>UαPϽk.<+4vcVym"GÙWQBDښ;u @wܨ"@}:\}m 5#H?>m{asa15{CJy!([[$sdA IMA|L. )H9xo+t]qձ P\v=Dpէ1|)az'Xg WG,~<4Xb9۶t|2.gl~ JE8'aNrYXtD,8 [`&l3~{sNUsSvyO*Ӏl:"ɽA%I9CгuPyhpߙh[OMl ;nX+Z"kZL+|u7T{zzV,j>`V\2q+|Vhpߋ62@~\({HA ꮅڏ&u5Ò2T$LQ H!x)魪f I˰ NaR}S˰ݧhL&VVk4~ʳ#i Ж_' T47]xT<үMnt W!NAm/lS%PSuUa>(7-NѢm)v)<( `2 YFD^DKgu=8 ""F@/х$JGb'9̐ Foz\9VR{\"QО]pq?VBEF'#Y Pc}7""dΛz*l@.A1J1KD>"͚>QIycqY-!09qЋpp䡑HD7YD..`#\r3"^ Qٰz 6Tu #9xyx-Ȳ ?D]4)=8CCj'J_oH|qg٠X\19gDѩ|QGzN|⟮hk*_|ݜ>f0Əe,!& ij/\kHDdTqѡv[>,\7hSdk9i[j0yC !0Wv@ŰR.:@3_Ũ12;1.ۑ^$JbhG)  ۢdF^<fbѕL":Pz୥9ŰxGl-A3LU>`:LJ73xZ=4 ĶrT+gPf ƵEm.q#- (^87͸Χu >ԙ*L!L*B@wX74mįIh%kŃ^ M Ӱ+LeHRA>t砺^OTvޟY}QT2w,=Z7J}\u$vuJW?E2[ 6mdN9ttN%EBit=*fg_D2 /%ڦbxˈM'^eobvP# bK$u3RhGY]e!r 0։Dխ͎afSov*Ea(Z$e}%WnZ T̺!/*JgU`gt[#(ݝ`F۲E̅+jzBп9 ܲyozL{Gh=X[dl5E +nj8J>f O>ށoȯDvMAL(723q%>dqc) êRk[{E~$obϠ7o.@bO[GEb0p V}5:1.qi?vEHkRJ90" %γ}h?4C舻1VdocϜ64EnIlV]E9};DGQݯ3K9Ђ,,eO,lMJ@ӈ``]Q=i+kW{a |/VBߩoHM". SN 4<,UѷA % ᰔPRS'7M#,% >Zf@c pT#sǁ( zsP\/u13.fGecI[}n lD͑fExro Jr2NMU)vZC{woJJ5ôsvxM&oCl6vӥO3ª ,u(0(^SzѣFײ'8mEiZ ">q HʠAT@ ih89}3 dY; Ij<Sco/"dP$fV:^\sԗk=\w۽bvfs|2MFH -l }Nb^gj'^FU!U(5%ET']z߫_qQ3:w[F|35pO] Khf<,`^=)"0=>$LY?|) DLer(FF+Nqd螧<(cvZuf7Gg:(^9:]o-3u1 }aZ0ӂ%x3q0v11M?L9v(=rV}Ldsv;\0֟9LuQ;@u$8A["W i͇X$@Lub"m; 񥜫)mQZ+S=48k>Rd*" b]tN̨eg&W$,fRep:YTDbAD[#z҃8ML(C?q 5|+4p$^3HOKaiSf}2;箱StP̸q[vna?^0pm|wyAP0(rrzr1Db5,m_ކw72RSB.l'`,_2hfryG~cxZ!W\z-fS Nvc_ s u>JS6usjdT?vRGM?]ꋯ%x1c?&{kʌkw6ZlJi2 ؜^]moUhH9n">%9[zk$‹jC {)etd~yՍ1cޅn_vǑN["(jJ9=w, Zn,ĉl_K_i4`&'"S0Er͛m7<ࠃ+!0P?s8)ݪ+  4QNýsyopFox:%r◘>o n>m1wo Rr(3=%(MBUV{[XиIg1Lj4nL*JmFQM5R;x0FC ?* ڕRPl_)k*IrIC'WNZ)"nڃP>蘦ǖQ0N6nD}MoVl4*6XsDbQ+hU܆ʣ9>C)q ʘ8 8& o+T 7S~Q`DzA<2.cЃOҸWmv[%nXp`(u-wMkQMSgQ5\%P#~0cvpq W]ؑ~lnCÉzs=b1Ќ{ <ܮT[ Cڗ\2 .тu8fߋ0ĩw}f-/86Qh`PLa)I;a\M޸=ǁZÖZ0+| r'!Jd};H:̌er&Ry[JYs\`w~ES[Y֤o8Z- B@VkYU7YJ_{JP/>"D}uGQm?M$etk)Q2jm#١\79T`ӦJ|g-J1Q`E=m,HJ=V7\i]Cփ?u9o.bFI|'9Rt Fz[-,'O%#"H[y.nATAm;ʊ: 3]?Gq.q<{Ӌ/Ü1!iFNKB􋻤\ڇV7ǘྍt 絽>;g"STXIiа0CCp2SGő?/7OXqFZX % l aCd κ߼u c4uw4?6`kwUٚ"HLx"5RUߗ;܎k[SV=N$ˡ΀e# Ld ݁քIz(x Y?_T k*t> =z4=rаbkFDߧ"sDVz ʤI4>> qf7bVz~KRLΖkAQ<ӭB,䤉ddžg>>̅R}9zxE=AX@|zʛ{x9'qn/*^av׍OksɘoćR`ǭ^1H9MNeCNuS0zZי̵~Y[K^`8/NWBT mrOC8 V,b_4Ɏ/4~/wz{´oQSdʇf6"*Ku("R51h5tp\at|u.znF =Xe€t7>v!ԅX'㰼SA 3NBv JmSO$ ᆅrx`大tc9ˮ.GʢfR\Nl/ݒ ΑӞ_E xh@Cʹy!Ň:?v30.@`B7۞cVDC3ZuRrɐ,"_޵X?5\D)$]%Y%RW-W:]3=71I\/+h\>6`LW_-Jh}^ߘjV'2߀!7$nxDu{ϊDi9i귦֮҄`Ч0[? ?@㝖,ZWuq.vvUWI" gsrP{0'WZspKSnasX]l?YJp_|C;0 35Z]}V* oY/bgPe=_z8'A*٨>BRzI'x.vl C_Ft#жuk>ug<|p4Rq:DV_M,<{k1hR[b%'d"zu'MqV1YIdcRd.FeA¸1BS&#QK'ѲG0m>h_ L`ĠB+$AJ!J&hk0wQV炢0u8(s&XٸP(L#%Jد!:2n>E3p*axL$~ޟ DIzXMx=GU~^m̋|-u2+E>@%4v쾪+qDsmcP=DeuRk+jh:hιtrVfu+Nr)cmVt]G;JfE*-3:y)h|#'= NV_w;oOl9~Žw'!| Ì uh,8~h3˒6: ~@4| 0bZiF%`ZH,FiZ@[b9]Y5%U1hj}B%bgr یN#?O0(-<LHNf{]JXNLI/ y\r5qI؝U<᜚4W,p&L ۖڤS)Ѐs3P6ӤtܑoZ Qq6Wnr=ҳ~?]΃Z%7ri53ON̲G"rPfH@N{?E72eDy _fE\;QXWۥ]! /WF t!& 7CuF3bJ抰ə ͨFѽ\nUB 162?p6gJǩa.wP|?ck*%¡2,J;:5Z?[<řwfm Ǧ{_+ޚ1ClpXŠVqtbPIh,KcwU~v˺4P{3JF#O \#h"Ӛ;btÅP&B.ev6Q8[Ta(:VV&BRVntMM-yT_=7GQ#|&1Ar.pمH7)BYئBŝ&MxO dsgitA ܍1!" Qּ4d!18قߘ:ΟvFݶeZez8$ TSjϕji\Bi_\dDWe6scy9?|[ړڡU&ϻFOɅB%Wqbb5EryN/:r+&/7cT3[7OBh:h(dR3)CLv`eMA1  1+|fЯ&ui>9)olnJȺwR. sr3HlIPZ֪Bd6Xq@ &ϩos eZUF$X[خ(rU "?tv2aj.FfK=2B7Ϻ7!* &QIRN{TƘZ MqHgs=/}-BaHyh?ٚ]gJӼ?x67!Ȉ@ j_Q'VJ e\ #$rJazBJ3}Q Gy;3gntɖ9y+$Z|5C&S//@L)gJeh4c n^@أLêYbۘlH ?DfG1#Ù[Z6Ol ck}z0)5)DU*_|ڹ0nJ?A76,d[ApW,q,LN\IH?EYCa^aݸd.a˶A +.|-p:(m&X6YR&Wx!kCL{cG+5*,3.]RZ)/h?O;c5Dd8@(ܵEkdsf.4ӜJ#b _D2yr/:iS7#.7]((',}U#\ 9K 1eC#-l2I@1s滽tl`ɗO] "IShGlTE5?o=PːGTOjya矐#ޱO-L&V#+Yj >V0R A =#bR'p@"*n!HNfsUy [lnH j/ncj,ޭ*uj1-Iۉn- 0Iޕ@CٱSl9esq'έz\9\k5 %`T5(x+$6GX*f #U@06r5c~ʫډ=wsSՀex_b-7uxƐ4O._~3޺~σɲ&=uP 3[%(0 -raoh.[:.~dѿ &rh6*5"FdnCpL۰뭻tFT&ij;/eԗOrz*m/#S+l; Fodxmq= .nyvi|iRrȷLu#DO2ޗ=n+,c_k*K2>MKF%3P*&C`Hz+;ԴV1'K6ɑMS4QzF qe&| z͇Lx$ZZ{g|`s3Q ?ug,j'v*$,:bH0]y‡Y1gJa\@=(>i?P0oJ5ͰQ]&S1aDjFU=7(e:.?>L!Ftո huG\ r |RYGN!ާ-7櫬 |p?twM%IAxV`: p|( \KoH*mJJ䉝yB]ɤBqVs2 cÍ6:v#2I4(t~C[6 8MjL7@,` ІݩDh,* =0ϭg g8īǾ|p85sM4CN_ޏ)Nsu\5A"i%>D 1HH[}HnNnS C`-cc~Ɇ_Ӊ`c;A_8"W6g\jߖ]m__`y{F#籩9l`nS'Esr?#Y fHrEF/<yʹ2 789h-s?^L_ 0 OA5S_c+Oט+bvnPzB2ao/{(JyU2CsrTf?2`Rȶ&Ddlە]5# f͉c\tIJm+k}w(sұl(n"6Ώs"ܦx#W+=d1Z,tl.X߉##o$)4ঀD(Z>QWܩ; ~e.-`xh&Y0}/m32]n?7;g^L<=b?$L?Ep 7|# hW.xʁHэ_ٲS|?z8 G…|G_ 5> WNY4\j!5,^Rk4`ġQNDx 3K&. YzPE<,MqwXD;Ejvp)M٥q1I_1ٽ9]K\YU˴D_c_pм! KΔhhGĪq\BH|nN+mBd/ Bf3 2UlȵexIcu`R#JZ*pk$J+HQGWA8.xj,u-Y'3[h2$3$rUxh<uW 4slN[J?Hҝ/]ЦuSIK Ȼ:',e}]zFR,v1 $3ѱ]cF{C?u΅/|9"Cg8Ã; ${Lv@+2.26 \Wvίe?,jzV $ GfHyg ݐ. Ko/=rɩcbϯ3k9:={vP?xwUh>G2xMfO8g gNuz'Oo.l0(vm E;-n}:˦@=y[8]謙JҜ_3`\JFLK-皛'yZ/1*mRIsqOz N.Bzv8ծQᖒ~iTǞ2~eۭ3`X_@/y49-d}uѼ΅~ʴTxZmley/[$ K}[hݎ#D'pxU]w xV(Åyv9H:5 fL@&UuoL6Tu nXZ9.uVܤ kr 톹:4&~Nf, i(R$ee9U ̜lv[12h"rSp-G{_̜<ܰPk<5>Λ:VOnle?4 F%"=ĵ6ӓ;7k z?@ɃlEc^Zb ;轘JF'DHo\TþU聎c87SYWRyC\©Fܥ2`z Ǿ蘨fa jtٔb.uh՟z> `iz\邤>1n#IO |H؞Yxwwhux=/LY7dKI&/k6i.>.6gt->;pr"#_O yE^Wqn_M\ 8^)xF\2 7L; d5$IpLPsxwɵq$egK8CZuXK!1mVy22f0s5> %-yĶa CB$7AF@?'^`.^'F3*Q,*$yn]k)Ʌ\^H,2cD4mn\"‚,jrO3#ri*RjktתdZ,*ٳ|^?%EI% _ғe;a{XXE;$H#*5}Q+܏:\Yk2L̝}Ls!9#u$m@.2@7>f}ȦѺa[W'y]h{m$6fhn6ZW/nR;=) ~R)VF;7?({KĿ`ey 'bƒ}Ȱlq, 3TU5։ȯ?N:-ߤ bU%s˩:<-dnbyAsyVMfm vHT$cz2b kIh%j]@r_ʕ!X WG;n&Xqg|r)]it`Oi0<ٙ#}U ǛdAkIR {zm%9ЅLlW7,ӗ7QĚ^68ZecF<^Rh>UKְ8a%q .Ԍ.lJmg yb z|=N@EA)%ݹhl]x 4^$z( 14d3!E'-E&$a<,6YkP]ˈLm3l@<DsAs$8\ʾH_#W'\qQo-t'hW5O|VhPkk^\TҌ6oo ´+]Xb+O!'a6fA IYr{?P6_=Lzf~ZT}kq%UWV, "9([!+ 89B*Fl~YyԅIYtʰ]ݺ[FlS@'JCktJcDG/z;I悳Pa~܎]FW Gu=g++Bp+i'梕3&PLF\/:/ cJy_@l]|in(I}yc(Lpm!qB>28O,ʦ2&WU[uCQG}/ ųZ䇡ƱA9DvOxV‘cFv7׍|ª$3o7 E? 9WFbκj(şYW"۪?FX*N}Q5Zy77 r-{*OE@O_:!Ǐ) hXCpyng [!"vw[;=uiij^[ pa86,z@PƱ&XhrCt1AJ&%~])})*tؚp~6D`$pEoA2Kg9{oDݺن@/t\L.hi^>,**u Gα( x^it*hgo/z8&]#ײ$6 ڶ"OaZ TgMm}&TUޛנ@5e\4FȚlm0ژ¸wd@s}?mZOF,.v5E3PqC'.uyNS*3r<A먭MV; '"W6nBEDN$=Y *_Y`4BTt'zl"mbU=ZQ7d.vRm -`p @ HDžR99$,$+~-H?G0 iB?m]X&a_QKa-j ! rz |`=T2{ TH6E6s@)/#w*p{ 5TڝcTܞz4bU#ϼ&cj;9gfNlǐ턂,^GVr+bM+k){*S8~g̺x_pPps8q1Bg1e\ρޢg㴋I i'y+ U(=_SjV%2!'9p@|6PTIڃY],l}Oc)j0xޕ܋/_Yedݰ]]3ʞg҃SA 44]g 1jJoDIDߙ~`v*CA29:%* ̼O Hبvap󏑩ըjo (B[_%ƢxqS?ѼXH=r'p,7 U%=OF8W!J 똟^ِXmLϴRO $E %e پ,iǠ¶~bϽ #ոo2M'ie姓K/n cn[\D{90.l\Tk/_ bbCA|7y ?of%$e'˱a=J5e.o1MD@a`&b ;(:kE͟X۩VK%_S$~f@qI.DXc;L2É-tҟ8Pϼ\C4'#:[q~LYeuzm^$}~xy^ ^%Ѐ.voN{!9ڷEoJ9IP^N\W<i?Cguߌ$L &d'DzVNl "8&^|`e&֥֟Sz!եkݳZiܳ# H`R 0X V@Kq *11bETJ0o(P~} D+Q?P #B Ro.U|a_~t3t~'}%b@wq@KIPՁ"/~ĮLRgھ'>|7˫>ƇUwWyl$j2`[ `J+Fs7twg_ qrБZ2m?Il*9L.Sk6p$ȿ݄5?!~dKxF-OwCtπ;u{%%Jbʓq%s.[Cߔy! e BEyr7Jpss?xӇ )~U-w녧֯\`6Zʞ[5߭ r5a:74>0Өˤe(| P%vUQ"q `A]y0ZB]220ob5M[eCN幬-P|@gږ5MgG=ha3qKXl҃|K5`Si }*v'KGfZigVC!AiQs(oJ 2hr}|[Tqo4 k{0~I ٶJnOw)/6TZϝv=6U}yx*!cYg*Q?P2lQˤjRZXHs$) S£Þ!pe |doe=%)f*?2*yC/ ýptW ,*&sXsLmDK/5{w~g?'6y1cKzSLSWC1} oӂ|na_Mߴ% gXPz S2uD_Wyr1e:FYiv܃+ո+B-4пXyf3j4%ԆO as .?b=%JdsbiiC⵫k a3Gc;|_O4ezPM\B`#vz^AƸ>ܽ*%uaVP#R5;W9̿'69ӥ8^g#d?Ń[Ɨk!6p룲Ʉ[+5 `O8 *Ȋ8fSz#4H\'=qC~Ѧ= o)D~V?i4P:Nbx/Kol/tK-ZU {q~ |d'M.HeJl#aɢ^+P 'ޔj=L(=Ory^x7IQ~cNN.c8S 3{%^!0Q2BR\ˁs5Aˆv |$$U\م'%{\] l|q Lt7WOg1B's4L.N8nzՏ~N,&!<` >u'b"@ ^f6o9iQgGcQGb^_)6jUX3 k ɷPk -pN0X}/zȄyHȑ%q> B6S6ʣ*)^Ι&_K.fhGI֥ /srs+6@3؂ ۵*mH_OT `nYk,6~sNڄD`Q0G'.dz|"nhdܻ % MVxblTNXJ?HC9.US>P0h;Ia칑)'\iD{YYNF.4^Ɠ 7$gqۣjiF+r^/@IX}D.%(Y,H5jkd |͝}"hRsNDX^j:O|l>8=m& 3k|nW&^" F$ړuDXheU?I}9E;F6(;k\.0pv3캋t#,>b 'hPz(})X1>0MdگM\ZnxLivT#܏J:9|D%F 3r:40qmc? 13f0S뉬/T<"}90c?\g\q 95 1ha?:<3_9@ BG$Ru{`HBi:֢462t7Ʀ 02Nv.+;iNl ?{XvvYԸ=Ѡ`Er mKt82KA&e@D߾86rLHoSS6JM/ty"^pS*g7E ؍yayps nؽ0~QԚPj%̠Tjlpwr%-~ep FhS%hњ-X8fK7֧wxwXְGR4b aT}?Lü_,0AP[&#pݝW\n(Jy;ꖆkhZkOX&\OׅL&ީS4ᡟ-.2u|m=.o8`gtqBM"_ B,P!$p~8CvY)Xha˔R@,nTRG"sFrr ,iS$p9fJI uBe9Y7Yq$\mhXidP?;BP2܇D$1HĚ_\Krql~*p"A(E&S/=q8 [kY@ا[Ff+iF)uK=勔Z㭽u`T\XVj ~ gm"1/k{Pp8^_ דlqڣm]| H4=c]\샷$e@$Lye}|vLXZʭ>ZFVv9@F)Uf4|vHJBp_JAV0C&C4WcA`3ڈ'?G|xd0/Cp(>].W05Z&[R;Z0RE`Ͱ+]q43wц5J#w6w,s߉5:ά=&]#E M}zlņ 鑑ipg#mj8M.M ~ρ&5)ܬ"*{l 2UJZ nIyƜP<tAU[9ix9@2cj(ZPd_^֜ _-6z⹧ y 8h9+D "~`|X[㷷&b8!amkcIHHLZ{Rg|?cn0;꯬4tV> h<í#,mk\؆pVu@U*8lxvݍ ӕpIC/qR;Zq+]觶UM8u:o.)bK5N.d6׈ I~+4J\a1~ꢒn?htCg_||^{H`P3e!$)9#Y(EoJ;B"U.^ r&׾:"ƶL&f$>y`l\ ~\3KA|ؤX_ ^1sSS!fR,t%KxD˄b[ ݪCE1CSB `~j~\%qѵ"Vӡ_"_vk<8}GJP*)~!XWڔx17N[GQ 8kL#[h:t&G+n[qDS <a:xu5K.U24NtͽqkS0~JPl`ڲЖAPӧQH#\Tjv ;"54.Y(vjܵƘh;.=h_X=։3ivXF_濍ڝG}!hw,Df8CH#yarx=- *5Ċd[e[PZ-*^łSOlYpނuPsw!}Qe\AQ9ռz1l}WT>! 3E!R}_Lk(ռm) RpNytoTg'/FB$=PϗZ:dfQݮ},(kYS0[aa$+Zݧi2Q>0 M;x*vcC2 ?ۦY|0͜*V}hQyD 9W_f4D p>p7 ƱFNh'Iu !V%ߕz( $קVҕǗ9GF8GE`-_f$|> ̶)?٭?&?6YAA*92:=]}ȡNt,D̃&(Rf+`Wwun_!r(͚wĆ&lqUߧ:{Qg} pXpzSsQ[[QoL%i-J0f)M@02X"q,Ov R1H-٘JbtP^_G޻V)-7 % Nηg9u| P4x$R<#2V yORh g dsO]pDؒnb@,RXrH2uo7,ûFcO{j.OiХGSg${wp?OJȵV/@50@w Ozp59Ps-OFQd_J1\fik/ {}X=لוrEj ƃt9@\jXڄ6=㶗xv,dF=?1|^D=S~5q/t# q`JY'uE(9]iۅ1y xSRgx ~QFz&7ur>!RKֱkPk:=AXVy xRd?ły K\k[OVc}Cp+Wg וH,(~3`&ߞ X2 ezMu;\b=%6ZLg2/’@F8d^Y7w}нp>\bѝc/䙻/6i{M5;(9= MD S&y/rO4JS9[5'Ҝ"]~i .]hʈT{죭jCt]Fq9q=Az!iZe|&hq{ˎ` +HؤO%}$T]{0:$fnk=}cB6ђ{2åXJvc$2a/Tރ@&mPJO+I787̮htIYsu~XlYc=YF[w%`5y7<_vPF4"q[g\ϫ#cC4=ۑSiwy; ,$9ڙ>qZU^> Y 'P!;ӌ4o3G#ƋZC)9ędUXXNUj:3#2}1&>osA4a?ZbD +Ĝ&ZrMhks!6x87s2:Hlo)P 9c1\PT QB0B'8 SwX8S .^BV[7-2 *8fؑA4caL} Qpq6g" wnd |Tt;x_<$)"iYs^ ߿ JdDěS^~1?}_c;:mhAnlIoũUʐ)SwfD/ռM^E_Z&Y?%\pc7&cmʝuư n%5'66,eQ^9:HүĤoQ/cP+[nz3wªk׹PH8pC v(j0;^G+ v:ƆuIiVLQ=1 T<Ẁ/Q  ar4bdTc y kwO{`u `jzeMis.Sd?*Dy =]Sg|$`~%fYx1JNaF.@"> 1#?xd]=FZmYl1AV2ʕ2V#N.j;@ ;j) Guyȣ D1rL {g]cwgf ԣk:l UӶ3NF\[P?Pk'<01/(+[Goloj d ̈..E69?! lC8K#Pak=ӗ؆4mŗ ]P{kA"#5^W/dڋiޜ¥NyGJ7b ŮmܴRa6Ƭm@ŬءN$;%Q^6|EN LE.c|f|NZekyb#Hբ)]ª`bZ)xH+R"n'zPFB)_22>ݛ u7 魀^HӌX3!pw•EĽGA ȝHd$m5J:^[NT+uTtӼ1ɒt?3YG&]1<@^MZ8IkrbZ-Ƀf#ƮaHMpma6Tz#PM>Kژ)L52?9_~*Yӈ3;t,@15sWIOhxdJ2f|^a\Ƌ3Z`59CDU4V/fg< .Xi. _}rU!Y++DY;LFy. Y{>ාwV玽!] G}*Hd{1 833 ӔTXE:!V[~*^=F=(;N mM1ě?1FkZ1@(BSꢣ))͍ۉ1q@ͅ ~B%NJ:x/A!Y͓hp9,,}fFC"CLbj!(4MwXzM#a/8tAcpDY>v>@:VJrҳ5WΙyD绨8?J9S,`Q$9yӍJg-KtP'  =K0%wx9DΒssS}nb}z=MUƢ@FMhz гwݰ@k=P~npG-:37zI\ooUSdUS?4%MkXH^̇˺gy68wlD?F…RFeJ"q܎7쟰B®}`ĪzW$an39ʑ78ӎzgGtVO~͍)';t ]#O"Febjc_ύz,dƮ5_?Z'暬bz|&!?CL'7(9\rh#5"j2EyQ TpA3΂qMiG.w )g\b(iνyz; n )lmv 2\"hO"U9Nx]8 !<Ȳbߠk5VnT# _6zƕoOeůf?㈞1;H&yAV\Į%b["P17qMei 6-s_v6ifx䙵;̯8-1(Is5@RpӉ&؈=-Ez?.=UJ(D?iS{(^^vBln`Z0#h`_na^bر]5/Lm5(4'}"U QNwSwoLQSؘ65чĿG57VgaHj=|߿2F[ESײy i~*iNw5_rA[ ~I}~߮5vSE an88ص/YWeК4%:"dzز?#ɲs),gxv|tB6q@a*n2i؉;QtAa;~\6X]5j;#~5.{-|M7gx!zJCzD׋EK8=nSLL bC*G8AVٰTO)@.ڟy5Z=x 7Эؙ?+"発zN2*oIveը,P)*"5LĽ#Xd0Sjя嗾"qث.s7L"/znIhVB(A|&Foa}7ZP:-iPyUM /VPH2wjqEGG[صy^>*] 4(Jvf&m]E4,u(g FޏloQ k)NAn[Ng1V셙$,xm+[E+4R(HWr [2heꟐ$N8]r>B ,eO^gze=:pɨ}xUrHIuVK%ۙ, G\LOcGh"WN] 7-Y=3*a-_~ɀB򝞄t^r>7,O%NcӜ|Daİ) HB84w3 ͔t&wevPV h?#HlT9*U.Ku W'㤕lx(`LT|+ {i3-f BNCARb\%QTcc*ri$qG>?$!W#}1/kcE {$qaߤYB3{M[*x+p|рA&嵴Mz.Bbwn LѲA-'!9GG2"Vf';ҭgӟ:Zi½L#ZYWl x]&K敌4D%bb mDdYf .AT3VEVlb,1~K8s b/,kKV ylz󅽏H_l$u2Zk۹ D5A!BЀu'^ڶqвYu֬O L-s]=7ac ѻ N?|w]2#MK>*fnB2^')7ueվ+ZUb9ýdqMM>Bد> <Dr,?pp\ H[N{ON: w=3h^ߊ&  WZɐ%[ͺt,1uvk'&,GtuMW]u$'=H59lI,"2*&R A5j:UZL{Ylbr3s*,筁bI4UaXS:=J=* |nVQ ?eW-ČCn Pj$GF]'^=DW V= _t ȷ̠~!nKջIgu@hWWMH[xJ H Vq7_2Y/th:nVT9*!!Tv MB 1k* ]Qy8zI4F*9PzF51=gi5A|Tp`plP_jJ}d OY*XaR4;[K9 Ujh>z6SHQ"8']"24Ao}B ۅ5]%<<ٺ[!FxQX#dO΁ dê r|Z @cfP"WM~JtfZ;_ u,_v Ĵj5Ut4;2S/4lЈТZm;J&dZ DOaYW>*"P3g"xg,>gm6qN+R)T7aƞQLv|u^uIt;o*VѦ罤77{anݪ]*4ȾrC[!<0V0JU)mhxa90>j1l[GtFSr}7DUvK/#V[yW\0:!n~Pm^ őgh =>e/D_ϟY #NLL[i g5=-U |2 aIj?1>RKrz,U51.TY!MKxHM!@ew>Uh\@CUL/|s;$\z[;IB s.YF$' ~?aٙ  R &{ ҘTH4#.7 pd{6s:/<5:؆oަqm)VSƍ;!;KCqdiҮCgX4p,Ro=&˜/)q0eGEF"4'ec HM iafJUJXagv)o=;"j Qj|ӪA?Zr DEZGE Sj}"]g1,=L)R~Hp揳}m; g%3jj~y} FX01s%ms"Tµ= XՙS Q3M:0e f YҜwI:+q P@# $ yR*RSsI}NA454{(_9HA(C

BڿNɈݴ j 3F AAHbJ`.;0O K|DղT'`*$o?vq^4T|Ź.oСZD洶  wRi#oZgUY/8E9ΒPQ]ۻU/#6ʁ,,$pNP*?< E>~V/is-p:(>q;XsD p y׈yt`\~; ?9 xg!!:(9zZKsrȡNz@)sW :RCrsX{=E& ;L< QQvQx92A^nUo]^O$!mmw3gF) ) v@hhhTt~ Ѵ:\1ףPBHbQIŨ ]"/h hTtF׉vz `w6w8zj\RN6 &r#kxˁ(^xRo^2i7OA;G{5F 8C?՛ 4@67eH" +GIrȯ:@H Cⲉ|Ivvvh9]fj9!2Ga%f8gITܙ2= [`€ޏM&x/uXEEi̥9jl[Z]+",DSP[ e7tlϮHv ˭&y`&gT2W?pˤBVY]˖?Zny oTFgHY)F"~xrn3Fyг_JLajѶ3{ٮMg^**mcMkss 0& bΠǮ ڀwBSlz 7Q215xFn3yM585t IlqN/V%#63NF-+H]2 <0ueտ RV/^! qKFSɕ&Z1>ofAh%&s4)Cڃ<$0A 3;.W=zBeUX;0_ЙO_4C Mn`>EQjfJb dh}_8&R)|O*ӣٕʽŦ3G6F~,de; .r2tj-,$XRj㰥h"Tpz)-{;-{b-"ʴI/RB~TY'N!Mt 2OGeݺm_w9φCR}'wNRK ֪ٚ̿Vti䏚4t{56@&yϞS{Ό5녋;R0(zԦ }&K $j U  W LN*p" P37K:fv:ޠ}됏YH-4NlT(a2LZL:?9Qq׀{S9M\DGJZ=#W[=mMxRb>waz>Halv  $_Ɛ)&z3zNTߏ0*VGJ1o= t;'>uC6ժF;SZhb!6"s͉"aRL]YR=SPSaG G3.ukRO]}LN&,(ڧ/x騡A[+vpNllYCс P97U_Jj)%UEyS,#љHR[ƒH;e1v0}!Ib;T[v^(̈́aBVgUU-Kc^v+/"Xh@_ԕ˜Sp\"RhQI% ``hSKztcn: (*!Xwϔ֊Irx0.xGP/g:Mh׃~$Fਫ*0x[;#wg/҈17RzJ 5tt?83JAla"1T3sޖ Ix.?bBMiL~|(1 Ts>WDq( ,=)um_ʘWtQ=X>5(CU_iv(Ơ.OGx[ ؜?-UrJ因 [=hޣ)Gsj: @8ԬM?K܆JT! S !?nvw&rа`C%"UW`iׁ PN\n\sb :}FK4 U l9٦a(XDi%a! 1x;+x]ZaIŰ[2=D!޿uIYqR#h:;kKIH!X}JG.y/kS҇ ̳Z: plu>M5px4a7J#CZ}&jˀAkչF$.] n|[rB/{e+ Mxv/~gli-'(j梅T?sy#6ؖ ֡"_飗4sOvU;YJKW`h-N9^WS-WYP,J+9;[@a}DK6le358oտe-0V4@ԋVr|#^x'r~w1ׇ?0@SZwAr}ELU W$jӧ &6.ADM}y"Kr0?ssc O3ੰ0`7$M{pa.{Tk K7-)Ifc̆ߧ&}~җ߾,em?B4jskR*"o"Q &ls=ڎF:x:t(m( Ff nIpqm]nv&:u|̴foXhJb*dt9!ВM%hQi sXͼ{Z.f"Eq޻K1V3UU;}HYҊ$_X*zĪsJ4JкMJ=M>9ϛp@=N$ޡE6 JXTޞ<+zɴ_܅88(8 da%~'UJ #kIXZx:`C#ZAْ.{Px8xmZ[yUGƑ+c#9J}/&]!? ~PW_a>v^o|çe3"ۘRHwyAXg);qjڜlIQ.[y1ԺDR#W( {xqV`# _Jaӹ~|Yc8g oAOVGH8u R֤9^C2 3SK /bC^+M'`]ڕ_Cu^#fk',TZW_6ac"I.'IjdE2A 'p$1e8KWJ>5F50 c\}`k\ e 'd !_{"ڥ>Y̊a_k@ ;Qkb0^&;2486&cV^ScyHr;> *f$wN>nbW6RsSy0`ܺ vw?djzSVuH؀ݯZbسe(pGT.N3ѵ;Ǖ;|g)ncJJ#E$u6kⱈMŽ&8~>8 VOu)"KY#3[wou,[.66(7,뺿y y>ehuzݲ;=%}o?WϦ^)#jlgE1s! xyQ\V F1Ծ] ٞnhZ\I5gk\ cx|U"1Gh 8̈l囘|BxnN) eNP#`ݫ^BR߱xs;`BA<Ã۶6)<%u"~"ΈL2zy۪"3&t*!] u_&FXKOUQP -UlTՓ#vo"h[XЦb~qt=`rj"T.\17s'}pb6Tș֜۾KyXRIhǥ.SΚ([Udh8SP iɄ ADrIOIf칊nxrPtU-W)&; A@U %lVʹ@>w T؀ ym[Uz1Jx t?Amp٫-i_O{hœmh)24=֎۔ d]ڲՂ;*D9Gdq8Us\Rjq3E 'm"\K`ޅ Y8nK}[dQ:o܈|'vܛ?2+;)%eNBUޑ{dF˳$dt|w:[6@<~$|sUŠ5w`Fq#3O[t%|gW EAwrG O/ީ1㯝wDj+Q/]R$I++ku=6{s5CЬF\eFJ1zzPZD#z4c'AdƵ9ucpP#JRڑky@7ol5BsW~[T)\n~np1r+"։u(%co`~ -2"-z lIiU}N1DB h=,Z2޻x+)#2'(8!a,~)w)~|LR,xBL嗇DX1Eyj'%%m*3ZhR)1^NA3R*{˒je3p-H_#: ?Δ#`1A7$_bӥ۸<1x1fuF88|I'qBF~-Wϯh -]{A =ns~C](l@voNJFVT{Qn`F)H5@ 2{i x*(B\yh,D5: 3Kt aX3m"𛕗E'Ѱ*(W=]0 x~af]TJ!;z4,&{p`5H.**E|$F{qPl q|  HB BWCp*V'Yל(?Hi!mE8V38ʈY1P%bs1`~@i^y@ĴFX*i[S+8pd+e8^%ą?;,AQ6J ́h*rf\.ݼV`6M!OwmXu9x79S : f׿VƼC͸Zg㌝dc,F|#A[ڄ1zҪҁc \ESZ^M`4{!@9Ci@yl^\sK7 :0Ґ [/YמX`A2IUoF3%B1D +jS[m3Q 8FfA dCB3Q]*ǝ`DB9N~oQ6Ϣ}PfgbbQĔLTGU%"Kr}g$"2 HqUOJ| wUb\Љp w܋lj5@B."xQąrrO$twSqIӸ dj am-Ilr'QݟҙR|YgۢPOL؜״jbɦCm1mK!ՐBĖ! *S!qF6B fB@g'`hЫ ]KIxw~b@z1yX%E])/ymO5C,o7*iIw.Lz1k 9P~rTHo]1Q1LF%e 60Hl/ ~i1VO Stug%?ִZ! %,IHlqqqj,3iSNTl|򉂨@"7Nو}d_|:WafXrrjZR_G򤕂I CtƎLR18^h )ENU,& >S 6 =[ƹǴd+ 2z8FHmbش0T#\6c`׹ weOW?zPL\|ICd^4v6AٕyK(BUaAABz%?ǺѼ(K\a\lI@Lh6^&=&I\5 9R-ݽc{Bcs!`VN2-eWQ#-ϴqӠ?I S&z/S=AƂZKQjHF'!Xw27}_ѧF<# I̮=&CHY)OnnOsN\-?sa9y2 ϙ~- x-!a$#Rg[t 8C/R7g7uStu`wL(Y WqӰEV{P^vЪ2b:n:J5~F<"} ݖO7$;uNru>tP2+]6Yg$Z9ufD&\e<L0*& ˋ)o"YrzͯZ\]Y?At|>bA` \xcxgA8M{GDvAhI~BM=u3[8dn:|tzZ.7|[A{΢0?q渜b΁t;#q6J=2:H&ysi>+Qdl5Lۏb2*L;|{ekĹ\mu<1rb.,~lm(*ٰ}Jfv+TD06EǷ3wߨ`t9KKJBʧ퉝v}ygTUf$&v>b<_\d 5w=fQ s%Dkg!`j60^&]m0 N Yt:ip1$ET|vՑ6xz T؋9d9"vuQ²WB7l[M\TV)ܳZĐM0TBzU.i~\{U/鵠_{ =*x>PO百?~P2Ɔ3YM}񜻦`ӯrM^}HVwz\,@ޫsy,[!ub'Gq6{sYfq$5Mv'b|:|Y+]`S+F*bxKX,_q;zއ;_<ג/D)&S$"c۝w_Km\ !Mg?I#FUA}3I*K|e$90] v#49%C[Qw + 5(C>דtSޡaڌl {nZ^EŽkV~5 .tTUf]_e=+zsľ 4DTq\dUL rGsclhc! - V9֦o \=?iqϥjP!G3BLǑp."dٿ·<نi_%>'ӟ:b<*gV!|bDD`Y6aЈH7ӠutU :q>e(&ºiy$XyҽkpGV &yU +v\R)^A  +ME1,f,~@dI? nP`5Vp^k6\Y=`idM !*zi_g__o?X{ u?>XIǘ\ Jp#u-M2,>C$q,zr&<-KӖPr9JF'+vĥ1VK9!"TXB.d%gRP9;?yȰa5fh@=iʉ4 iXE#oQJ~Y0zX⮇_kVܷGc4 ET+aHYI?h9ƕ0u}}%FyU f?*J9<"iVQf&dPk^7\@XsMF3z0?L%VP=~ 2U 44j%nfnF/*>6] q[k`VX^Wʡ7L(}K>l6N< kk|9,d܋^{V̠ 9IԪ&\Z5^_؍e8mx6I`+".bcJG-85X0q?#~i @j\;b%dU2dfcua(" Nj8ZjįSOw֔ aDz9ɯ]qy icr1QHid?B)I}rS$Y/WP[R0K0Q2ВI-B[pEZflRG6:%)BPk ;-kS-e[V1>ǐP϶t Xɚ<,XIQRE_cPڼC73W3wA6SqƱ~B@lڶ_\;J+YJRu<#wGrן/~<ƃҎehaf3NơPioN0gڄ"ҘT&L|r"KҮ.6Aztou(#3ES޳S̭!,5 ĺI9;֓]!zͳ(3+_A:*=d$I@8]sV,[p3@|n"N"{^1\ v/uE![Id3+ϖarP]XE%t!v%&mT8uRʞ !}ώ(6ۣg2o7H1g<|%Cѻ=-i߭vS"%g^#T7\MC37jv2 u$]j*^_h_u<(C4h/?QǥJ{Y:%vd{.,eX =O9 xRmkn+.u0aY7tENB+<)h(@7>ぜ@`̋חUnA\oUZێG&1SJL1xy gCӼ:3l߰WCYͨ,- )IɌ7PV'0;lS,8b3L7uN័\N~Z8@> BeaEc@et_ӢMICOSJ#ϡ~!Z!?0g #'=W̧lP--$oK%,_wczׇ@.@"|{oe5?I]J8 7]O22DuU=勴K> ?O=8.^:qJ;tגgy>Hmdi=/>ZGp~7tJ-:rj B!3VNqAJi" bz_']o pKoL*P΀f "*dfa+G&Ą=" eZef06M.-4hZ?<=={$"G5w %+fv,V)"?4VSO% :;l" >E29Nirsf[PL\>i컓#/MXȋ&z xF*y@+jD0j-=3:;i"Euqx#OӠLd' lہt ".tP G٩5)J({Z O:>n~h6׻`om$̗p^EBլn49.f6S%Nn=eXF+ы[es1~.r?80*V3T`U<_I=G&fڠ~`"n8p$<6zO?c2UO_P[ oߐ[^\7Wxz9M'R<xE[ gMLqK:\-o*,ĕ,`TFw^mWn"&˾!,#j(/yVCmdʟP2̛my1Q鏀٬VϥLYlZ{d(˸ Ruvͽ|uWƀJ4I,#. #ȗ_6sdX2CC>- /|7@UBDn< bh|'_|TQ˙{W'J8K_lҜqk`G: 1mKhǞx:2mνGLF_ꯩ&"2VN-S4г[mؕ IwZeϻBԚc.=LMQ|nMYNZ(4\\t7 "`P'%c,໻;7Eծ70'[1EX1CU`;c?D4Ll<n&ȴe2i FlOtP\SiOD GȎ}bKqmܥDZg VD'D8f_kM-5_d̓'yeFQJL;Nߧ/Dg,L"V2,P&6DVbN)+Ohx5w: ij8,LF`SʈUrHS.zm0!qj݉ Opicȝ)PSx^.M0+X\v/p*DQ 瘇( ڴiN@~<'n5sZ P"oĶjSѩ;]i>۠"J؎_N:G}ZHz.lK'9f~J wfJ'^(Z8Rzf".xcF0Z5nxy@ya`c:.fq9xXH8ЇH{ܛ@]TFI؈Tƾߦ%B~GCa=i`t^3ÑAe.OcxήΛne"H*z NY]L4-+Tk 0qEVY0H4*imBlNvZEv))g9j(]uiaH}Ka&ӷ姱LB%Q8ɜSӆvdG|o9,8enaen^۶&܏ƳQ7nY{+JicU[5_!Y) u fc}0_LUF!rҡC|n铃ZE#J+#wn]-PTZA0Zp+T S1UTe4l@7zùI0C% xkh͵G ,eH*x_@alTDN~\Iew/>܁i?d\3vB_Ow 5rm-i8(TXHצj;PbfJjz= :\KN-8nt[֏7fbPji-RR-F~ߡ+?ň;oW2gޅ+fs*yeehK'>φkT϶ :+PX'e5>j7 ';S]յ@vlwՖe=q@T2 Z.(w9:鞦\(Us3͌E CEdiJùeͱmmsMD*[nkk?OLoMˠg?)fG -"jE0;@?9Kc *L=Ak(w0h٣sb,{aЀ3m}d!Ayf2ԣux`f|0MZh_+Rmry!`s@|ޯuM(*1 lŚ{j0|}O9|#=s0))≸(l@AԦ[^1Ý^ܝXw.VO9CfoKq׉ꋽ2Ռo ypMTHi5͏GtIb1zx%QJlNk9$YYmdHi(1p.!ck0q[2ȵ)^|+sӲ㳨/)XvHV+FH`|  +c'TB8nG*x:.[Evߪܴ2.x91HүNwi}FcHv_İpf\ߤKQ:N8Ca`zT? \!٭akp~N}AЋwSOxP(NZyE4ӏIoF+δ!ST% Īe\⃄(,3PgRkes2vЇ,WgUFAwu6_k%U,n<8ѭwiCU& SaN ztA $yV&7\JsС6/~H:`樿CO~`q,V4ӛSk<;Z_HUq[Ga,AP~Jt'K&ƹrj;(jYK ~m- Lߎ/*a$,@v>a4Q P |Ң"bFrmqA X%p xp~g*k獪-aPR9s~l_@L9(%fZ#-g?FFt?UaAIwOhhQ YR(R*O,|bz¦xz!EѰQz`ZycS{?H6}6:Á,pև]u<)b( /<\T“*+]l]i%Usڷ j }]ޅ+U&}Ltχ-o k[sgE*zJ]"Y™{:-F_ʆC>g4 )s/F\N"(/o*Wabi} GrYnc+=sjb$S9KcO oMy#b| ѩ=̤HnSxTgm@f9uC =فqX1 ٶ䥱gGH=@u>N? _\[mש*$X~[9JmM_ p=׷ оޝĘK @Ds*:P|*wy,ڍB[Y[ 1B`hOTdG G&^GrvcEhS(녗ȌhOdCPuZuT-m3Zc QJGb;Fy} K>~ u8cE5x(J?o׀hH69Ƕ])_*3v],9)ѓ0?POЉcǯ&.d*9I\E 'fk߄q%qPN+eT Mا⃋d7a~<GбGd6: 9Xs{DeدKQuNkSҞ8pA4p:)C+':7@kWLL ۟$PxɸI<?vDNb8}  e _"SE8" i_Vx<ŝ2kx@8N\ =wM*VU:Ў%Y"dM*USX_*Ss:U6[2XLr}='K&g !)a2d9 sjꇘ]7WgFm}/;2}64!u~8_;:EP5rf^ޡhثVYUjQ v \{H>% mUsB? ϱT:jOU}y=ހq_6–7kn=[:?+<;(Yݚ|S$rMʞJz FOei(Vh`6!sq&p&R=Pl{-^zOHư =\i`- 3^i`+nRzC]=4AEz$<5≛6~Cy& n׸8o2ec-Yahwˮݙ|!r1Vu-`SF"VzNzI g 5O'Hm;?8Ό Bh^ ҥ:omW\NC?u#𺐕PRvZIȿExN4+QpY}tLMiHo" wBjC"F,*H@6&p}^ZQᖓ |ǧvt=؃N%)$dvmǚ2`!mOR7-V??mDilKݦ!ןLZ!ag0)4ka+xu2qH|sH[>d,\ڭ;9⼌c#3mI(+*ϔ| Cֵ0Vd*Ү3*{Iʯ,}~&U)c0TQZ(n淖~;5%+7>}:镊;£Ѣ,V "$o:UFT]_*K7:,0I̳8+bPq\a bc3PxNWÞu=_BOytQ9z[*۠)ndP_R4_/öߐE3W*M@@W # }0BRE۷P>,=ǖ=O s;?d#u@a<ʆؤ!?S2 tQXfUh#-T.ZG7Ǎ^ :އV_WǕ>J(CD؂dmBl̡Pmk g65=pG]#qu]:~J4s6s[Ƞ%Ѷ9 v@tږ: tksؾ La{f/cmw)N}wNnU@m˙~o b-#x%Zk #eN *;hq6LTOƒ/,U8W\X[VGs'Ece $=I/FPNĹMM`WL,Z\5ZAK;I^kk$''tE#(hcTn透G9vu\̉>O)!aHIrC]NeX\2%: YJq zv1<3Y~r;ÃIΕ#yb':oܿVl"'eDq/w40@M`pVHYr ftqwڱRˁ&oY !iLc BqL0|vuN]ݞxcIf3bW-GoѳҊD3-NJTU\lhƗ 18_ NEwõtcA[>Je۹a"` e g2 RƢ7w*3݈_~ \(ϦjeԱ ,d.=T3'pS%j*U ?eG2_yl-u`Wm,I3[eb B#3rh͉P,97-* G wOY&wn]hA ٧N`k8VJ'"~쾚O|rٰխRҊ x2ig.ѹXU{Q$ST2ʊy! sjX. ʄxF$+>trByk#X-0@>PZgt.y;ȲA[tu ' I?=tÐ]D[b CcnL}.o n]ɾ$cVKe`q- XXE0<"U$ 5j kqYtQ$^coWڢy}w ͚D(7w־͎6>O&^sf'LK#&[Ipڎ9YA4~:^"J]j$n-=6ݾn¥T`r.$ qn drWiV 03Jf0Q\70U~yڬp˰k42;~K+ mǞ8B?[,IZ۱oZp PB\`nl 869Zf(R^ &CY!ث=y29_@&@ufw+D#OהI- ~½p9:LDBRjR(5Jh\[q=x)̄vlb*i?iyb KsdjfmB8*?J ՌQD[WǨ"Po]A;^2S,BwA;zKe\ vHC. |';ų%VWO?NM+| n~-A{΍Yrbs<%/,.W]v32~ٰ-;RHf8:v6dkE$Kdx;-0.kՀıFvOA*,s+4;}(qTߌwςHNKC I,BֵB}zȦQΔ{e3-S{q)Oإt^' y>A iHWҢ4E;]-jHt47z.CRdi(o __c~i*Dp&{|kS'ftxc4cԶaj"|OY,`YQآ*]ze:Y$+#)VqBݜГ3r!6i vn'޹K;0dx/'o1%&0EX*8aK >*4tr۬SgCcf߉gĤ{;`(V5B.T%DWq &wۊ⪼+%k3K_ )X(dC]*7  \V4"弛1/tq0TUwGW AbI\?TRK*=ytԶ <_kwJl:%ëp dbח;is} D)GQCAs]rҵC~R^y,~`Yg;TV#u8RK )NO5͟a'%D)-Jv84+2.KrG%C~8Za=%d 5P7$T3>8}A.Hh\1ዥGS]# ~}%tL՗ 掱` v@W01(7${}? r,/4jeDG i:rh%,iW>(to ۯu+=rZ +Ѥę3LpkۋM>@S E|፬jk{RYltRik-_x4)*/Ԃy7tVI5&4k6Sd R.BO-Q&l_Wk9[#WC:sNn[Z]gb )cYu>Ӈ*E-RDPh{3}A<(S3Pa; vPXwN+ ?^5C$Ax:?zsMXT0q2c:ڑ|^]x RA9=̽%V&"ի~Kt :jk4KrLR4 鑒:5B8~mM|hASMI}ig9j4/GHoM;\Q&uJ9S f[M%1u!~DSdER` KALWC`+bޜcμ\BL?(@/F100):^S s<!5M#r;+@:+!I5=T$_vD(4_~365/H7"J}潋`I/< hЦL+"\);xJQ !WM}FtM:ieOb et2Ȅm4oNC$KS&@=}?oi*gAD#wI8VappB{̣fO\bkdA>&]$Jl1K*fE851(b9Xfm=#^"7zsMhcMGhődPr|" sMtIt\>A}lm aH5W[|{i0Lbf'b&DGʄzB,O z~푎8t#{^ (Jkkl@meȷhv)=+/,mY%\ź"SּHn;o#eۄYp0R1Q.XOcb؈-%?bLnRs8Joǭ5v(mKCׂ5stPdP@W> qKRWXQXM Ё׎z*Y6[.̠`W tdZ oPznkXE?OG o 6Ҵo)_V(a1/WLl7ዔ L9 j%i V-v:;PNIM6'}1gsRnAq]QtVxǗN 2Uʶ+X3߼㻪,O7ʺT"ȶw<9H4$cYS,DˋAR{-λn*]PqbT,E~TpBּ A{ENPHn9uD*qS}pl_7]⸦,Ù"(u-Ye"vb`FTm'P K/ /F܆YsVv3_ǾEV~Âx03gWu~?m㯑}|g&/κ>:O8^̂F1MDGpXgxOdJsn,^>i6{2A3xCzE>@ 0Ք:\OUS_SZ8Dm#xemWgj!5-DNʧXY}ّE*w/z̸ſYx1_tSIk`:c$ Ajb 5MW֔"&+ ]nx-@*}\SzX#4471<`wa:EEHKd8aHRƄ1xk֯EelɸNb=-řF@Zt&xIxAܬ^aU?8/qD8,5³ L-v:RIh$&"gOH]sZk?#'lBrW=?>GiQ"'Jf0ǀ7yqXOHLK[ Q CS$$FzLzWQV#jpނ TD&#w?{lj4P%c-YL`u(cځ`Ssng |,;Jc@J󷌄RYB[[:@۾(Fvę;0QRd6mk3S>;AF,ZE9ōc+_n䁠'ktuJVH˂h ZIe\]H79\} O(j淛Yf1d{3n r:0)?R;o4ޱFVҗS%/˗YRA=@ ܃,;5EfY裪"I5EJv徠7'pcWp 8X34RHpΛm9@ UwF6dAK&!R|5c*+$ -t؍W籯QjM0)t@y,.b(*+^5 h[n9icIf毊Ŭa5\_}Jl}60eG?k%k82gOH"9X0͹nNC{\ɫR%/F?HD M71X I/Ϣct7-'LG#WB6ݫbLRcqBybJis]T xvq=+pOw]CY涙To)*fQzX#m~rIK!i(\ aƑM1H;΁ܬe4]k6O1/1y+Rd:IR*Dy5L@d; @e3F~U:VALڊvNp:R@?39CEvAX+6@<>m `&2h{HIpt}`~Mt"LC"FqcuOihSu_%A?ATJx(ҕ]RH7 1I Cx\?k@n( OD8Gt8#mum1u!hY{hEjcdLŴGyx3}3 S:!cϕ f9ӗ?#nԭpa˶*p$*(Ȟ7~Qb4'0SnX(mN /ƨ睽!wZ@KԮVPuXy.,q EQ ungx41DE  pzq$b{~)[%>H6tFz{ `Lͱ㿼wӞYD/jH8zJN(@A޻MDǤ4IMwcâ^j\(Vu)КƬ1,g]+bgG-'eӬ}ΓvM~54["u=vXy.qL:dwv$:Pۨ:ZqgYp=6:b4tM~ZN,koF8ImVNGО2*0Q`V q/CN9"PH&;180qU`^hDY9k M97CjwYkZ:!zq 5|-6: ֡HR2xF0 I2lx@6K1d uJ.neR z_t(d'~tok)  B!\3BZتh>uC5GΛ=N] oh/J,i_1[LwBsq2hoT CElgZs(&WuS,  CL\w(?XcbV Q9jCp"hc9EB#MwM{,J.҉_nB}&- Gtp>6A|u|yQ|o_uEw [nQR*{j!\ɭwq0m æe.Fԓn׫gpB ֐2<ʿ$,5cC5YY Qf/t+UoQ9N.:,%OHbZU3 jczUIL]f*M7pBbS}<[]e_>W}kRqu\0 \l_vjH`QlCV!0x>u^/fzuP#_} {2ÏdҎ^jT)O\D I!:ĠXLJE9$^h+)8t/<_eq󮨾?lփČr;Ɠפވ[gO{@Noٳn'չ.B0 AסJfsC3*1<恡@0=;I'8g|ޱW} 99c6c㡟h½TB!]B~ ,NwP(=7V:תJ\,  "qծ>nQ8 jb:]{Hf "Ͼ R'!M '0: pi?s0+l,咍͈^*Vjuv&;Ҋ+bFܻ~_\(l54=qHgiLߗ(Ğ P˚Jbf T$tϖ8oFjhAbU{O?Ku)?jʧ-j3 ?@r&w(SkR=+Izv' pr55vUm/_U~ȚAbHh$05eiH+G;Z䧾F!c$w5gرQ4vqUy4 X*"F&M?cA >/%OymQC1Txek)9kPjVX~vww̚E j ''2Y p,x\U?rWl]'`WᩱKj7gӒ4& hWng f{gK%O'ro&|aC iޭg.'/ لi p2P̝\-~s@lJN\QWM~='Ӛ_5-1ь3q(J򡅪LhaG/+W0!/Bjd}\F7`)#qdpt&IoǾ.i Y}գ^8F>a2.,|"N8FH#fjSޫ:nܞG8[v6HiD?q iVtC'ڍv^^1uZ0v sݻ"eл0,_?,⪭ʎ3;ߟ?<̮X#2!|hKz!ISvC4%!̷}%ױcɝñ%53_&0ԣN?[/Zd <.aE~ʂyZ 2F#Sq|zkΛʹ:HXL%g(Xp @х-Gk-*&̣pʦ$}i>]KUPދH+L8[F%!Ѥ}Fxk0 l=$UѡEOiAB ֘0 սaQNӃ7nSIեB o,.+&4m[Jkݽjf2GCaථ~,&5{6V(ѼnşbOKW}Faoμ݆B^:G^ϒ+'(+[lEUB>%oZDHMcC7Av2#A,Y:~8$ʉ1C5fB \h+]c{ h?B7'2+`ޫ/=p6^$UA15bʍESN`3([Ѭ_bZdah5b.iRjZy4LIޢEe.֓88]2i-xL Iv uuw:] 0J_:ԕ(fWڇζ|>?Ug -!f#- _ o7Q~7IAV I"+±2|~RF16Sųk>^lOT#? eٱ| }HnJ#9o+k`t.j3]?{cĄBYT_XW USn vTq-jX e{ ypx%HQhY:MLfxb݂Ee'$HyVr^V]S($Nܸ`R H=ORム_m~pte !?0'm9]h[ DggD-XUړ% ܣSB Mwǣ%QD|HE2~%Ig%" 6"T􅸃pS$>.k\,2qK9 XT2l%G0÷wC߾jb1^\KEK+^6apm6ĸ RrPk`|}?"Pel( %~|H.L?:b[NxϛH]_#'z7os'@=s#Ksy.!s[|*=>^9qo7ceSx(bheέ% 4:ʵ*[t%t0h#킪Gaar0 gȍCC 7+!Gg  =RmfF !址sxdmlGť TiLf7N;-l:zyXRߟ,O+ :sCਘ1O+<]#L@T +ˡ4Jlt*< 3l|BUB#R;tXUL&ӕF1h睎57t. r<,9x˫zfiOeiŲ ;oB(PHe8jI5!6ԉ)vxȰ l]P\Baq6|/FPNBH?oYrOmN nt+tU>wC"TBd^AVW!>z= jEE**巒BZ.;#hZlD WZH*Y>6; ŸP/6`>b xx^ MxWa+PVK<<:.,["d:E_)y;@-Pb O֚k\s#v灎6$UX§0ќn \Aٕn:vy\C ,sx4p_1LYKL}9 $B(&s!,aLj&&˱ODyz_6YCfUz ASA yO#T˄Iy?lAW[brwczwx5ԋŵ/Z|"|mؠ/Nҹܜ[Z>x)nouȆ<53zmU߫ p"+a$^ 6z4r7A;B|{|) }XƄ|BM Klʲ$BMbͿ}#E5#V[0\ %Аv $hĜ>/o ˓evkRɟQdj{>+q >T~L}V]>3SdyK4nD>o&ϕƎ&RPejm$bꮤ#ssd 9 bhd,CK8:Z/OEB^EΠ *WYYW~3ш p*\;|l_iyؿXٸНjmo DR˲|Q%.{4 4AIඦ{Yzyr BT]d ɫ_n>@.X }6f (o"lNZD<^sI;n{\^'+ gPWԊ  NϻXk Jk.\ Exq^q杷&H{0Lj\rD@ nqrRzp(3L=fcIŖ̏3 6sz6 Wk!j|In9:Fr66GvaXr~?=vQ{qHȈTVΚ7Kλ] l@'k\ʼn@c$EwѥٳJp\>Cl:abآAnE,jeV;2g}QL )M2ݕ.Z 43"`ឿi%w#"Ox{]iVK7ݓL˛ϔȈtɚv͙ю*cFqYny|W|QJh9U,t:L|xEÚf8ʾsuHiq~U-LP cgݕK4(9bb<ꑷXSϥegdvv9!@i Jm"U3dd~Hh]EFBVؗ }9?k&s{괣7[z'ȹ`:qo%3[ OB1flHEZ|IVbӴm!m&z܏HK/V> 1_PKvдQ^.y{nɯx\gD/NT_ MZ5߱o9Qf_vTӖ౤51v)΍Xyc0_dd5S>Z]}!M8t6W^;&-%)^ 1.He e ]_2Gzt&g m,>z!lE1;+CosoDbL<9/pBF}[P@|FvS'"l@`ko.Ғz,օ82 Z&c("KymIphb/o;d'NiJu)Ni4NkKf"Ou(Y%˝O,Fqᒷ~UeB1- 7Çz5'vZmYU-6AUgaFth<4-kt 0q0ˀlOhrEkn'd Hm.7ǝ'-'-.Q7 ] $]>/K#|F D(%wH hl"ЪW@nDIvL*tcѾl}<ɀ+ڞ D_W7441n }cuĬ)_ߜ~SHZ*.W!<3b_:oNAj=#_A#[¾#7d]L gs>e،)Dt2Pj|)= mMq_j~w*/4<=&9PnR)[3<1"sl"7 VUR<p=c< ӧDgZ9&1s!e5[=O+ : (/{ūR/" yO=8y$: BϰLOd{vLI ] _Zr=6?~.ov##'bقM7Z% egATgth]2_.͔ʵȆӮ53,ewUw9Zc$Wwa~7ńf;j8dz|*<է:C[ X8`A_6"LT*h:jvj}ɒFYz"DOt@i~c〤'Ճbr3/TbPht8,Dzaע @~:Gp&b:=ـ+N%8`z;Ʊ B#pKk [ $TiR \67ƑP*BxY`^295+|#0Fav߿d"݄:'PZJK[f5O/PJ$kW  Zht.(A$ z'_7_^n I~d'Oe*]NCz<ج:J:#C6N]­p.t5C0ⱻz_)g .wA)42(E]^-vᙸ~{;QLo1$s]I>ZF^dy"<>?ܧ΀gdFrܲufRy{R:ɚ+l؎KQUzdsJwPI MSaĐ2Z`^l3|4 ?EhZBn(u fN~(G|OuW!bhI}S!T 0&?S wEqCK QC*߉w(axlD7P+BNu#v1ysgyx?>rKEߛ]M%LiLV*#dm ZFM@0{hi̲Ձdv8_]\5 a;qGKW ;O/EZC>&WT%v4qzȔ)_&-t[xDŽV74, e;֙}z |"bTRiLM(gA ؝t:+̬%p=k]xo}={6) # q@}\":cK?Y)^b7a? ==UJcxhRy Ow^͸9ʦ7S x@/|\~=mۗQv\!(ot hXgR= >7gN( O耏bİ>M'+޾B[2WYv $&ᨘM3c@'ͲSKu7-em}'g{yߥ%.cLyzC ,YbDڂ1knKڍƟ.r~:4&ŃCMsHX$ݠoL#?~&kHl!J̚.񠙚hVTa&#_<24u#d43t(vpO}?/ `lF(@FC)Ӓ? Pv."U*5&ʫ7c*#vHahTΛ*N`{ &/a )m7M!k6#h1Г<.&fϤ/&9:w2޳mhi>3F/5qjWs6:Cr%&x{=5rG]|,7xGH }[Ӗ~PYwm>LaLD91? u(Ї{T 5-4]|cd`NQ\4|kcqY'pAbM`R9s뷽MdqUr\U"c%=O" 6s3 kcW/Х41weYPCg x@7>,vfVQDueUt`K;|7^Pk:PP dt6ߡ.1IkBxU"83>38ˢ49y sq}ہgK+Uf͹e bBd.Usy[cӽ҆Am_~*a|XDFƋLcKI wvL!n)l}w~(0R:UHN?]Y{nx+J۲0E8"db%l:)Dz T{̢LDc%7bUTOn- ^G<Qc |R}yk+R:b<#F7e]IκJ^ 5ƸJ_Qg ]#%GN#pMl˩ ozfX)D[0t^Gpm1 dxKr|4>G^{pBS- d!ZȨAE֣'{.E3ڰcuncɨQ/l'Ɓ+]K.\Q3;P] ٦"+h,BA2"qeW茭[BE"}pL>ի%X:g/ an/p`fKCO[xCu % φ T6>k?:zU* 厶߅|Qܛk!c%HzA^H5Q3)x?<c.NPTdrmmN;L,x81^! K(~-sӁG,t&,.4fZ0RbĴWR[`j%'uzbE$4Yjv+&XBeXKh8Ƥ^^wO+;VKjZĘ d`U8擂&:GtG+;IVk@(Xfʋه(Ş#olQζ> (ڱ* t-L_8D?bO_kr:ő$.:(9a0wXk%];AC~U1ށh0:i笰scj/#+ܒ5SnfXN1-nL5U)(csC*FsL0]wz<# @, ҎiA{6^ UI-P>o*QuK ׉9 5&aL]&e..b;SW'LoJmb|Cԓm_PbWom3?N^Zzvwҕ]8M=M}NZWaU@"iJA(cbZ'@qKj-74MYA _Ss"P=hUPkND! z]t#hYu`д<36v c!oӞ2'{?ȱ"v; lk7̌ɔ@MB&l}7+$N3uF^`3+#0J^\E[VtI(8W죱$?2"ZKѠK`4rߒ)ޮTR"_/=7$h Vy%Mbmᾅ!&$ r3_FEjyF[m1&s9n^8>Ls5L9DHJ(]%n}@vm"mf5`tQ[Q5'0{޽HDM짨!~FUC+G=QᶘwNhZ IHJ`|;q12w]jvgoyLV\ ʦl 2bz,{>ZKz&5 X`ȓzmL^a~SĐԼuj9~ bNh_ ?uCѱ8fk6XPV3y)Ė9Z'3fԍ$(jA %Xew"A9EoFFP0VJ%d_~=mLo'xl̝l-yao@ŀnZz $_~1F_DqMw"NjFbt!854Ispl˞\g`6щg FMMS(gOjHS%2+>9F6.KV#B#}6<0Vß dqZG ѡ5zن~ }>W<rm\w 蹃:ww!$胸= IL2N-:{R88=R!N#o! &穘@7]^{7΂!źv2P_D9xӯov@U{.-:˲ Pu`qCDt[ 妳+etHO*k}k4m_W5/5M)ؿ4Q­`Sn ó0  +R-F'Gޚ1-w>C\g3۲I&O}H(6;@zӜpvܵɌU^2Mp!W#OvsbH)n*S'wX jB';3Y $~*Kۦ+e v6(K^݅N |v/ h"zv&43<vo,83MqqB8z-`' VHZg&lQZdk~lH|4#joXTʪy Lj~-230F Oy'yy'8+upfIb-!v\!Sp_Оz3cjcDt_{f\DtVnآwxC?ȼ; n흵%(tPiJVv쇴J~z`;F&} Hÿ8lj&ψ'|n \4Lx3" d>f)t*t:-ͻ'e;2ګ5WʧY-}Ba~Vև{y NBРebFgTT6_&? ki [P4Vh[r 6k?)T0%M`?֒m!]YB75, $;@ՋIhbX YxNméFH/hsyhQ ?kxVIW}d,Tv VġeU72jtkϪtH*k6=TIhn# 4g#q" h'n>Ю{LJ̯R|6LF<9𩛫_UϻfQRtwy'1D #ط. ڛ|jU挴z5QT{e.! R8[z7Wu=3[ԃ#2_:on.1FձTb`+~|:;UV!PIm.,>TD]1~6.kdw,Ibdt+ZP↮r`?!/5l ژ^j]A"nmx-{@г_/Qw5JD%t+>L}aΉ}qE1Vubr| 0'1;ܿysx,hfu&w3W-8.[͘ wV)2?kUk6}ƹcz#ΪD(g-+& $bS)CiB8|GQNxR '9ZK0ϝ#o6~9OygKc}0/1:,ʱHXz)sУ^ Ÿt̏Q+Sfb]嫡 #.~v|fߛb 7T>WtH dJYxT}¦w5x@F]VP6)}Yrp_'#*唤<"oyI d:a(3xs4\5ܫj>aӅ[3w\=_A,}#)1VS-sXކ;p^%Is =Th,#T=ߩ"kspג&i"\_K!+Ԯ*n~fNlZhw<.W9iᐒ8Jn|l32V;c1INjI6qxƎV;?΁aR$Q- #M]n3كw&)wxtJ6c:92!<YrY(J)9̯vΗ8蘬 _=f`@ٖﻠ.񽻂:F [7t&BxER~һD^eػj~UˢTogLJ{Yǽk.w670l?f)>\sŚKL˺̼]R )j}:8]kh,Pe$\晟?7Z؉9LQ qXدBzM[TKsQGP~>QkXeQw%xpOgUBcwD՛0ԛQ sxrfjWk5X\d^P 'n}h B1)XGQh}n{67*B&Vs!`c}"ȮZ>"ȞVnhd6FuuұR: dq`xfѴU9x\҄蟲aHH/C{g;HqR̫_9Qqmգ?͗+D[ arNTP_me_T!'κ f9'oؘ= v7>"fwǮ$/KIR$YteO3ئ a~yc)|pZ|F3^pQuq. H!E=}+/3#"wg"/TS>(v?(%mTקnB_?cԮtin'E#@kbDsӔ:ٞ[pF}@` zT+`8T}ԅ6)+?2iW'шtwLQ&D%RA|6gqug|~~exe/Vx㜄[hC~Ge性5a}zf[H|iFNr5!g!;q)|ZY |ث{1r90c?*:p|1Ԕzi}M9ZqAoekpf76J Am5IW _y"Ϥ xcNqsꚖLgh2rD>,8 T\꽛@ȴZ wYd9V8XWVεzP HޒkMѭ`Dm0=}[`Fv1tG ĊBi$9kWKI |n\@"> H4JnTGS+tg3DO@3}}<o!K۰,Gw `6i&"ϋ !'kjYʁz?FjK֞&'Xbb&]'9~H̩$`!doџ*WZgi &aD8r͹b@7i“ܪ3wᇜM;Go_I\j*.@Cr<[:Z)z'03Bo!x Dtabc3pvtn6)ldӴdA,}{$Σg_ɵb`WKܙ&"ٸNރp~nH=Vfj J%]i2F̣ײC)>S:#CH` B?(kW[8799hID8g䌿K?{e$rǒq5RM*TyIy-ǰLa!'%N78!+MWT?Nscg!{?I#e2Ph&T1c:bwB1 _wH^8v'wبWJ;Tl+`Rܣ@hw"lOb݌lR% rEy &@<9fA,jI~Rd5]' ꦅ|mP뢭q skǞ|Зea(4}ʸґ?Lp- ?ŀkW-+C^;I`MޱtaYC4(iʖ#UwS R=J B)0aw7C>$^ULcUa,vpIv̺l0uP:/_,>c{'w{VoZԀhcyF)C 3)Pr/2feQ_bh'W kǐdb'T]p|!!I"!=+(%=)?&4 '֋BURp!/#?J~umnܧna S_Zs?7l a'5 M\3V c^c ORԮא:q:h{EhNU\C:>ai>LG*L.IBZ>߻Kگ4GEWވmT'pxn |J%i[ Dadtb`R\0c<3h)c޽u+;d4m7S=EIZ@] 9ܖ?5٥+}Ķ7<1[ `Rh9;U7GwHF:S_blw[3()@=KkP?֔K4FUpgDj`.ɡ6ECshv^66_jBs Υ57F*Xf r؟~: GҘE|瞀]`eĝO$'\ćXV4 Ms|i8-3#q;2 "j3,Do"<P3|US"?S2 m:q70xIpEn9X!+<՚E۬X4_ _LI)Xh:^4: ~Q֮ZNӕ B&(jRv}SJ6#Cznا|& ~ X2zlCG~:bG݃&\.;]H7l\N`zr-#gV$g8Je_(OXE=RfT:L no7$ɧVP9e//Y ι-=j4\ 0:@E&M@Bv=D h7z+}ίzXs@?%SR38Raȶ 5s™4;HtH Ɏڅ &YzQ褧6W)aT̪uFGc|y ,l.4u)ȢEZBFm|1M:ڒ.}u[5UAxXF)hc&.lfbkcWs8YvC${*Q6sWƜﲯr5GAms TNKxƜ,ܘ#NX_OX6Ѱɏ C:ִRTUzp^4/~f xv8R Nj\ɲZxC* -Yt=e _ˡ A"OQw+E?dm%DTcFn^3Z7|0m&q DU?L~dB 勣Jl7`+_ 0Kr׈dL{Nfz}1#>ANxόZϷ4.YλmUlORINyX"C1~oQҝ`*Ȭn[mFľZneQt-+~N$|wqs9Fq}+dآFƻ`zHޫttbPgi sw'G=27h*W5AyG9Y,5t-]M]>?OL ^bΎX5! T cghoT&T侤}eu@84tĖߨY #L0i^bQAnaRuL/ ঀ(XFg'駉k21+'XW-TbX؁d VHM#Brq.OV2w16myX EEg=${F@^Ny:IO[d9g_w'C7\czGƑzȬ9sIɶ*+> R7faKY7j0TUYc̃uq>^".Ė߲AB۔ʍJZ6~7[ a 噭ۼ%zTp[a㓚N[{XL@ +7ܑd%mk$MWE{Å=əL$Q8m-:r#m1XMEݼ4fdBvej`,ޗLO }6O[: =ioARp,_oz$~Y*x„ 6{l3_ZqB^8nĘ>n8}s*c`yVMQP\Sz(O ^H;{=8B}s}wZc˽劂nAɏi 'JS+gLk]zWn-s` ~PȨ.Boګ,&O'gst; F&tpJvjʼJ2kDz b yOaB]VfOcD6P;s0r@#)>YRΐ@ް'~:ޠWMB:H;Fmk,F< cƧ{2ہjh.8qrY_w~zfbEwc_Y68Q/&l.֚YˇT%;㉇ix#`Iw Z9휓ǂ T};r2`Dt/|.Q $طdvT1x]FEeDD!tbZ}aK]f(Cp605$:~FMHTe9^fgf}"= uIR?bLS`mXfXڛq-Q*b0zlNI!Gݹϰse(̻)iț ^Qp*`R\1*unÊG .uLwv750r2.јWSF˜zI EQ8v+mrDHX7[:uAlܗr|>?}×tS/lgZ`A38逼AvyMۮ-\n}H⒤[+]qfDe(;5[j$㪀 W7 MKP"AU~XW0KVڛaZ7dg B;2HJ ~ϞՂ;BO'kNе>N$hrw5SF֢[C[\\#r[7Hņ,0%ucMt{~@kvEL?,8n;̏Kڬ)%Ky҂'Rk^Sw΅PI l~~V;,Е[C;f',ᗣS/SkڂB%0/ wɰR3kK+ُ=4îhdsҍaV`vGSl2PCQ?1QT7]&$N섮)l~r܁6CUNS9ԃ6kO+$ki`[\/$t P'4`,y1m)5B#\i ƣq0|q2Se^GYrJ`[.dqоs]3=eLfz% 4\q{X6]^wt $EPΌp]=憛YgYͦIޞjzduj( 3h4 a$-79>>[׫_ hS@a!y/wi ]]^XZΜWcIXɁ؜woA'FV{MqHq'̏mE_$(0DHA.cN*\K'L%uϺi\bX-5nvl9/)]ݡt(⬵u^c~~"\ug-t9'\nu3 NPA$ONYЯ?NkFv{ Y fntl( AsCRt+ip̖UTGbœX')fsre<R-Ss/uē,'A[ >lElBJsEl/sMIB  pYik@AjXN2s @wɱ &d%^)܃)vp*ІaL -7,̤1Beh˂vKhXKP:SÁ-vl!SѕZqT1sijC vB+]ޅ)а4H Ơ˅+IhSHk1Tf~٢~ Eb* k>7c21;@|-W׵5$}/7> @lEut-'}pH$֚OD RDlst\>߇{"[Up܈ӜSIx=00OƷiNhd%dW;CW ȇȫ#I)-8 qg$9%bkC5mfNʄ)Z[R ;Mw'89 *ŚhCRlY|N{]CNţ_ež,Xa}}eYX]1Wcq]A:WobSqZ0ЦU-=]|K-k Kk=Ҋy sxG>"hGc}䵟.j^ 0o@G ^?lb00gt^"1NS}L_=YxײdgֺO1$sƶ"s%vΡ4e<΢$%ʰӰҨXl)ZФķQ|؉JJBA5HJaFWp jo4L-3n9Sln/C1`oQ/[}`J́ wlg `490 zYgAƾ =䁷4||T֙BܽZ. J;n!(u6I˅쩊([ɞAj Ūi^eOل;c/EdYu啩҄D? b#|bɩZTW $<8aʨx8^p速ͱ1eR+#(۝l}Gl 64~6$[iW0mkv.5mݪRCVi[mT-AE;{YSUCjV_xgw tv2v *_ƶA)XUl#t!0~/ eaSѶmh2Rӿ/Mou$s梛\hԸ"87}/oc cHSUܝp<X oGHI~ofj Gې#+ 1z8CH訂Bƌw+ 횊_"R^4$f1BD҅)c._2I: uĶ7 ;?$ 4%Z5x3UNkoPI#Ŏ=ŷЖq@`"G7(;sq)V|N!}ġX?'XˏtHLF"<+0%Eo}McZfT~GҸּO A8D~Y|f$\`ZVRqb9c&͢BPb?pUևl%[d#:x@;7-A;)0+<{$f2~GE+}$K"dd٘`bq@H媭hh+jOwqyh,>龀H@O3< |.z~FD3즲i we&E/X޾IZpt"oMH)|{qy9J ,~|A"Os E(R'ҳI֘b UcaLp,ք\'.ND^Ϧr-P軌ĵQ2GLčS{Ys"qǑ2{-xMVkp)l#4>•/al:+yI .}YSpE8&g(bP>_-f"s,iC[f2tӵ| 䗲^zrY_*0,m&u!MQKfѰpcK.}>a”5~qTCP5Sn؟QlDVgޚEA^ Օ 0h69F 8DUЙt L @=Y r5]\y麂NTޮCffe݉|4d7l3k7/[w6U`s2h)"4P_>%F*yZ^S="c"6:4sT.(KѐTWCs}f3bSe +@Ŭ3 -sR4۞+iS8wSF E  ۅ90E4ALq9Ny!\ XQoH')PK=Y ⪵/:cF/]/.y$AN7AXPmjd86ۖVye.&.C>f%Q!3'F()Wst߷Gmֱ_zL.p-VtWVwNKiY_c%rn1]4߼_2 ȇEdhE *0L?M;*Ctl(%/@-{ںT=ow[>\7D@ǐ 2ʟH=zOQŮfgЎ`;Mvuέdb9M_F ΁àudycЫHEkJ"8Ea@zTmc]'m4AcvsjG @{C뀖mN-[R1 +9a$9N,ޚ9#(rY<(کKVw"iשX 3h1h&95h:+,G}W6\Rf@&ڗ|FƦ襱&jU6́O9EJao4߳K~_\N zw=D VASƮ_/mRr}h1!.Wx dgS[Q/9PP o?a!79Zqaњr]2 ^>_W&2m@ϓ_w2wZ~ JsT)'+Ќ񊾽QQDJ[d.! ۢCoHsJFO;Nwl ?fk9TmܿiE\W;ST0VG%H%{ e6ŏy ]#:H$T|uT\>bw ֙Ckxӑ$W{:R\& TX˿-GΔpJL2Q'q&xD|F@Llq ͽ8J?,1ye@h=Po~7hR}rL$"eՀvy)u8G]:O2Q_ FlG~&ŨNfBf^B{ )ocV%eLhrF1ع`< EV2J,A4 /xAA+Κu V{@=Kj [ӆҘicA #nqzZ.%%B8 ƒ+Ok~r;8yp42xP!b&фmvEކ'⪰d}iAxJm,=K -dhbfJ$-]߮q2WG ^ \$~Fn G3ŐVNOy73wDZ@=JZ`pJmrѽ7:*m)iS\~,c,22%oq|ǐGYJP /&̩֯L\{ViOV45ʴ$[CS]dZb;7iA1zxÝbj?dm@G-+Kb,MP.8MSVIOsw3P|m~3#nojqǟ+} hpFМ.F/PKy&ovwLch ",)G07'-WCLƍ)LE0x@DWTx ȉj9;^'S>R)3Gt0BNk&N P0 "HT[&gh B O`f`]nieNV.?\h֪7?rQWqPAf:鞜d/vDPѻrjGAZz%qtTQksF!Cj\HlwU5T WBQJ" h7j0|=:>blI)(nL&\\`'S& Z:m;zcg7dOx|7bUBCmԡM7`x [6SmOWLO3ULԻ~GfN"(eM| ¶vΕ*[m5HTenr90di]7uqN83(k?lR|fPFIWu YE|e'{LtǣCh: EiIG2ёWJU1 ֦pۃVQ Uu%-ÇfxK{',n%b J=b|ܕ1ʩ"W:OjTܼvݎIiXc2K|'nS^rDa_Em/7xX f$'BfuKٹ,nE! m.cNKz=2]dLiں>.w ]_W7,9_3p&A#]ϙb X H`NvZW<Ϊi!wS٥vb+i;y٣wD­B=7l:O61_{*ϼnŠ~{݆eqA^9kF1SF{ 9h Xf<$ݒ\XK\2UJDtْlc+ D͝BxVJ8,Ԁ޺&4` BZV.jq_w ORC~;^__)H$irKךG?6uFW[{m/w>O0;i|j,Jh&H|WU]h( NF¨PV>HZ=,hs ʯb!1v"KeןA{ׁ#D4zmfb^D{A^JȑܳgRv7wΰRCXFW0woc y0 $JS=h ZOKZӀn\&yr0>Fw(`673kCkZыcͼ4vŲ߫U.B> iV*$!QZ ZtɄ#9V7.YdI# 2:3t}u5[TTMvm%Y.2\Q'3.|[ JCT7chw?AɾQdmq5'Au6èWZ{NYqEf_Af7şxyvsPӉ{EJEM/dqNJ/F ~djXuq=Tq$qAK@ny ~DKMqf *ӼKOY \Q|6m[N6uv=. ͪ 16xV YZ|ӱ͉j^6|4~_*vF0jy8 z=GAa7ۮ^a'3y8'֩2#nqpݼX&YQ@wzY[ 29bik~ boJhW2l@[184I-f BS*Mi0ڋEt*;OY^\l'K8JӠ5|@Z]PϿ<5 J,"Y#4xX$ r6Բޞ r'jCgD`<.{p8)DQN(~BUG FK$,)zl]doKa/+5@]ITYgtZY8 diBm*ZFL&[q9$<15֯y* >M=ۂVvA冮dR.B[ Fr]xl6%uC^̠Pm+E   }]7m9`{A͇c%{ER\AK]-$Hfi};lNAPbKlO ^Za'،κZ7u)̦+=0[mp(eyS,>9]!)-+\:pa-? c8 K:Ƀ1rBՁx:C;I sdO?5$]ኊe)gMxrϸu =˷ԓFuL*4yN^0ϕwN;%Q}_ZF_=wS Ik \V,GOp%(">^n's[=vm$-^lőulfucަU%mT= E'|O \Mi0}a"qlBrkkw p2dcddRZlu 5fQ/a8&aqfLJLUͨNűfQ`T+vG?-saiKƂ99k!l>3 N@ R$q۫#|Xt|]Lc >1$>Kz1:z^\l/uwtMFOͥ\k{U*Fq<4bq9ke%}&#٫å`CzPlvqLߣݪm5;̀~k~q>@K(xHN=Ǫ>-Ɂ ŕ  #N Ku28|NFs3*yV ИCOXAd|b0ޤ{ 樝<`Gޭ'9୒7e~3E{-D&DGp}nGG &j%\w.KVUgNy??-dfQ.쁨w){Ad+[`Aϫ=R+ӂ3Q!QWAKѹ)xd~<(#;fG6Zm-? >NLѭ}K6bMȸ}HImz 1_T,ވZ:rgGt3"֥31WB@IHt8pUKO˜m_CZYAC'4:BqX_"Šda&pWaT! E"1b%Ӷ@M PpS9U330KC!X)| Re?;̨'tĂ~$$PS~?% azK6..z@Bq~#oݯ;.+(jiH-FzB{WzPHAY索~Sdn"~S#fy^ڨ5r7qDwnvQFh *zMźV>Xy<|c}}=PKDu|e`1bR(~яZ?耝 }-Q-Qr+jhiKoh8 Js"e 0irp\>UgзYa`8V4S: m{cz {YKsh`^6g}]ғ>'p /pd'`}J48儗vƔ_%".M1}&xQ1f e[Gj0A諄<`h)Nt]-{).#暕Zz$UN,&68eNPC컿ҭyka&UaImb5l}uqdjrRj%~)˕گ5uN z@%mn¬XD麧nY(6rP 5RK5m,/̂ G_q'<D?Ĩ] יw@]v!yCwC@\y_3w}abo#(>Cb"5|a #WrzRKWߎ=n{Rب{!yJMLҷ-J (jr2vb֓ms;`W2TӾe-OqԂ$S><,>bY=y3&i9y1z\R\_a圬f4<5.Yrq&NbԢ/i6@ق;%awT!B鵳3mX Rw\#=Q Īְ:@&u+2Tͫ)N=ͩD岜h[S%!f.$$/aʖzm>~#(7|V¤*x+ X %\G>V"OH K+XٟzP}t}YEia[bVfI赩eOJ׵pVxo#yUm_A֜/6M k/ GА$idf}~$BqRqRx7"a ;$МwQAuZu-UojT%'{O:N\e9=@"˱53thA$bdr7L04{;waJG gZdsk2J:/aѸQSxHe3AI4ѣt8DWNܵl@c'WYopA)Nu 'rĚFi` S M)[@t{I==Lnס]]Piici`p YEvF_ȭѹ#.eqt}`̃8}3'IQƯS6Plk<-HR.KNYR܂.f/P֧b $721B{yW %$PhلmW9e ` _[,a͇cpC'bomqؾq<-@ph!p/'bԆ :AVbF heioda: g%P_c6>pڟ͏S%+1Z yڻ/ZOpܱjP&}=k6Vg)7I̴IDE(x#c񹡷QE*Ԋ !oY!=ۊPv:.W.EI{|> hnaps1a0 0G,P}veKxA ҆bBV vS*|D&4VF%%&:]km=u;J  ԥfT+yЬ)ZvS2z.H1W+p&.ObBNo}]{kE!yo؄Cl.rHoe淚 r„eM0>HaXy9r jʸЋb9I?lP 2Qh + 1,9눾0UIM;GBZZvm$̀mtw$a;Ж'1tn;Uʼnbڷ`<̗nK g4-UkE)7!"2jSHxo1W2BI; h>^/7*+a|Kk㧴)-!2~Ggcʹ%{sw^!7bf@ @^s͈=9\~g UJ2Js2 ,y EQ9]F~2rf={F^p2 $=R|O ##?/UL@`XUz4 t:D 1GC}F+6G(Tw>o:H2GE.wβ;m^XZh_*NTEnU s:so=`."*Fut޽7#DAjZjzNz]K\^wFz $ 1p)2b܈۫Kr,[IhmZE٤~ F }&\}sϢ x'WFm?Ocn%@2ޑ 5 t҅}Mb=)sXv`AZAYa6fž.}g Ao&ęfp@{ a:1֚OKzsPࢂI+kż@f=ˎ*9>RSWKK׎R|W{&S\*Pw( AJ}Xz)ǺkH}-pS:,i3QmMm_uOKJdwH]$KdM4xðjLkOqвw֪} W V4*°c_Ž]tw9?Y`}o_QQ<هa$UҌ㏙:i'yS {9Acק -9K5~v KYφ8wq^*&EO(Ňj9˹0ST:3b3Gow:ξї~^ſe`LAo+ .*QY9 OMJa 2*^°F{a6RTlXw('Yo!q^/ 9FW; %ήkKAas'5a8Tld?S''&m VH:JTh>M!!g T(~ i:d_Z,;r4xgH|SQ Ghy gP't͜ٷ3YGx !fr3A gk]>Ez'u[W[)~Ν~ל&QKG#zJje!^!9$lD&tŦ};ZVr(BCڜ1wSlNCQ~{H6%.b0?"1U')%_p9G@!T>t^)<8?lx9ʮmx8ih02m򞄔,sd#tBdNRClVdx 팈οohϔ S/.aa y"Ig%Gv7b! l/I囂r:&\rͽK(T>ca䱁_{ac4 AgKe7()"2}A&;#JBʤQ3CL"v Y @+^ LNsUMO$& dكjފhiʜFQ/k NtZzT>B]y]Wc"lfJсЮ9=s4uMSFR<n~^KBVQ| Ȋ;z$0q@=?VG3.eGLS1y1iypιd{i&Z; 4OTo%lA=_ d6&:fOq=-{q5G`w?@amflHvkp,ÿi=\:8k;:m/+ٲF-$ {򩩔$\6Y&"n"yؗD:GB`s}";agz*vu]K3D\r4f9ש hVuaQu.D%s}A>]$2W[?FܯtDh4 om%B'h2gbCw Pv a 7T`\>D]9W$j捆y6 US"X ڪnQN3B]-Zo= 2V @v856噥7}]e>[v8aK$D8rΏq /臏HGV*OuNRhAMUy*Cp*ZW`FϵOY]]>Nz38罎9 EkH{E[5ta@{OZMSvyK[tCM{k?p|I::"p` O(wk?#(FQOԙ(4|~fSyx|+5 Z~w131a=ŎeVO}>+ƭT?JDmSR FaXOҌ)]V̕yavV#Z;BaQWWBg3,"NҨ j%/^ڙRgJz>,  }JLJ-S^ c)\: Ĉe;TW-2>ջX2-BP 8C)a?43iXJ[ZPjRfOt\5m`~Jv:' a+3K߅4L:}z b<9C"]nnœc Q_֌f:ƑuNuɮ5s9y3?K\{Q!x7<+pu*e @DDZ8,9>W%ץxQfSJ` &Q LBW F-wkiD)ƴ>⣱q> bk]HXH%# vUc3\OAߺm5 j'<_(){{w5vplX}/T}ϮX' ꖖTiQ sFKST61p+&%Ŀ7S*}cyF&v `gH\yO|:"]5i{ ^6]ap@W>as ДĸbHӳ?!]mfsl 2ijկxOGa%5 18&b͜EGJhp!zv_gpu&YE},/9{'kFv꽂5ۿT1?K=8+<e=ҹL򓶬S\0\ۼ} 4=>1. [b6hs]0"w?gIHbfF]إυ1 ud5*'kaz-PmxIEO} ݖWͲGmVwЊHh `&r9%:#?#LwuUoѵR4\2 "r"Y\^6v{Y%WtNE Oe')),mU]n%̮#-ɂ6 z\RVD0Rqp䶁/׿JlD4D].<}3 ,NE5NP,N~=n"5l$\ YJl}bˋO!۳"Rc]PM-EhFR`Owhf5SyMX WLI8lZŖzg+D'=ˎ)`z7:1cʁxE5=q0Nb52g&/:v!:.C|Buo#˲umI4cR EȰa99v 7$5*C9hdrESpRw14H$L7|4-EG.%ZgM =I^i%ym_i./~έ,e[ pFBrXs(pfqp>)۵v|KAh7g>z3U;?Zu~(;JsH:UҜ *}'oךO 1=zuH@@=\ Vz?ےy2XbW2W՝Ux5/~.L~g]kxB6}]_hkR Jt{?[d_BCŤY# @>m®q$ㄎJAU3:A5CzCw9"΍ohisX|vGe^Tߚd"7צ3@NjS[g)Ѥ_Oj1x>˨Hq@(uN|df!VО+{úaKlȉZϾ 5^گe>ј;y\H,=tR,K*Qn%7b\AmJXӀID/к cz7fn]LIx/o-Nx {smRA'+IW~=K:BoZlDe{0 u" yH߁ 88rL& ^5;/8mV4tkL\eٝZp} ^T=V.Ÿ^ȏ Έ3G4OD8i%We|w! q^+)mn*E2st'Oۋe@K[8w0UJ$fcDa3 LPZ“\F`iY@2ӌՇ)驄}gjb͔Y@F.9 `7JeOPk@-V ;z+R@DϋZ^|ʻ7~ %ѹ{AiA3e³('jaJo9"Z_]Z֕};G>l0Q?`L03uIuM9Ri kgɿzٖ4VClio $ (1F6[-Эutjl}#ShsRXPѶvCLaj͊yM` bX02o/{e6ct wQGEgB%L-iɱJ1=8u #wD;ǘPI}f% TՁ֧]ѡaE4VyY_-,}#3wR6J/򎟏{5Ybqt x;@}NpfbW3g6]lScmvbw/=Sm \a4PUU{ڽ'M7/ _P:QW,Bq@>}Qمְ0#ZW \N 5 {3ܻ4izs?d npXc6 c1ۗjb^ѥ}|yзFŲs@ -PrC\lrs߫85 W(kD0ި[k:̾|00Ć$i}jRp ҁ 0Z@$k+S)9I#ipŀNaR9>$r+G>}?pHQ#_OgQSø{^bKj W$, C6p:z$(#tZG..2DAOض7鋅xg2W wAGUЏ2@7#[;',|aC2 ``4vS=ho(CwPr[_=ձcX\>cU?'bkS34X %TX_/EB䶶vBoEcz$cT4R7Q y!A NS1Dw'v2fN|A) saFㄶlfެrv#n)2ںgX9q+Ƕ|.[kfALYd'ũ=Xf[X;ZCA_&0&UYI?pW^#xՁ*o tZd AAm KjfJYD69x W_B: RFb p Kp9vp.`lh#`?׋,?:o\Z)c:vBMޖ-~G?ГRGl{r8n'./wz4w߳JWz&lv]B.94,Z)}}lI_7}'M@*ԆI.Mb*s)+hy+e#=h`a!aITue6ބ{ GSkEzI/thANz }$twk,?[ײ-k'2^E\@, th?΂Lq.? 俗\a8lm#Q6Kr+!#H6(tCN;lI9Ȉ7H Pa]&3y1#ƉLJC/撵P9֟\#'kĺbyBe$Mi o+׌1k/ zn/i [bgŻ֯9/i*$P/}`DgLH Hށd~yl%~4&YgEݭV-WMp/]-M[/هOCMr?ݯbkhIҁ^'qcWEX@qf5F5v "Olsz 2"hUY7Ck8YիA&j~ KjJX=qj7npq(PK6 򒂠,[㖏89?Gv:}zRJnGtQY:k^#Mr1^,iWXعb߼؞z2t o@o9KlY>'BA(w{#F/M/ٵbw9V-?$!(c+O-*7fivG :Tb{SvF7V8Ʒt-Al;ݾoͮEj{XdAŧeP[Chw(Ö*ѓ iKK2?$%lMكǢ)I4 :Ut ڝ΃vBXf/v9#,KTdi:IJN{IPMosF'Dx@yP*~ӆ,ܨ4'\ pmp3xY(Hl]ŝ\?Xg?$[=YWc y]W9bzkaQߌq-ٚ`"cn8_X3n`Ť%6կ {7M!7IƈI 20|#6͸+? FPWV!s+7:%/hAy*J>6/ߐńOzۮ&y29h[aO1]dw9SyCqF Hwwk6~FV-R/yי*c&}FO&-kLVT %'h9 S2{$E;Q&e9ؐaxh\R1VR&0_0^Ze=fb%.R 7b}B@Tqgɘ` l5E=v[21|ko`e2$93-Mr ƭb&9 ^ wuu5210oQI/bKb7(\\`L 4jާ ;KKin_x}Oo|'11n˂K>$+:$wXEW d 2_Yߜ4#Oj\kUI[4 \+B[>/01*/3Jo(hT ufomP9## D_m1rqx Z|}oڊ{sj*h/X1z^cjؑ6oUBMHCztS:#EiJ^YX8T ?kg96{ QPm:&!O<~ W/x UZ҂i9*-Cs N+UmIxjxJZP!hkX,Q;A~VHiV:f?4 (yl ^z; ¨Y#sa&XhP~9K?l޲6c젷Yr@$b ^\BBZ)LRPdxӵ<0Tk{f5Aq3jY::?^9#|wϡ(@:(A.,a`%vNֽYmធǁ'}U*Ȅ#+J FvHxxadб֞=w`Xp']\-R j׬Զfp$4G@$G:'5iP-2mu-Y/ˎ^^gEU fc9?4aqT{.Ao%RM5ނ3MAbOL\TA͆ Z1Mmni&E '♤}b/@Z$ʏ<2W7Uп+~‹ aץUOgG``1.[{Va`ļqPRPv +:XO"я7Tnma/X)BDNjT] ,}cM]Άͧ- 1:,:)> v{¿Pi޼U,=V~h&Ȩ.0}32rnOn6`k 2bZbsސVq6@^Xkӫ~<4*pC5nz 7* e?mudn߷Dw_@v^ lCK|E@)-XykidZ˹p{ ,@΢[^l<(,GK0ɒC޳4NJ^NV͟(N}7L;gzc<$ 9yaJG,{S##ޥ F`?mXq~1RN;-&[.g8^D޹C` SѬy1,DO$"/9$ :$w(dXwd7j: e!@?j+ek@lyTM~)`9 P$iBY9%/z.v .4Õ.)$~M n¤]Im0ƛ.  Ouw ;ޕ(CFAml=rK% YKLv0t6`ίEU|h}Rɉc GLPBN&%nm<>U`ze:|p1{?lPs ex0mCë^Bp qV]R`sg 6rd˦5}ԡ#-׻ jXc,5Q$~PBS-vƉZ%JFV -r REЛ ԁ*jck+}Ǐtס!gcY7wn—/TiܐM(Q"@Vx 8?qZ=8.! KGmĘ?W@s/П*6T=e^oə):0wv]vKw$2G)6`!z3JyXQh%~ʽB9P:2 ]G>BzBQ&xvAVҐZ`<ƾ{U_bJV7C*PkѕoFBbJŚ~MS Rj5 Y;ab;4em'y~Y?YQHTmFߐk6r9owyj(_M3^[2%.k4mi 3_\l7͡/WڻJUhlMF{C g҃ja0 aبLk%'לsx[;-]9F3#f⤞"(s֥M_a8/VJL^|N1P_F.>+ pU@Mx1\·wv7{]:K4q ooO'ћmֳWHQQlɞ]l~h9ӂ1E֊,5P êeSh.Yu+ޤ);T1Ap=&7̀KEgB}l 9L7ZȪVKHz+-|H*+Ꮣ ^jO(莠sv`54%bA Ě2ӺbADx{9|gC-Wٝb(,]odzWAq ,Xħpcqbn2410V&m@kV1|#CvJiե^geNmm^]!~U2$ҡF';FEfT 3Mj@KS̗և.\ݷz f5b ka(4l!QO/[1|Cgd8 *--8¨3XUK[7ҏtv]#|V=֙ڼ-Aڷ{ 6=j0v}R5?z!m >Y hWot{Uh yI[c:Asb9mJjஆz4|^P"گD]Zjhq\VŁWj49 A6:ԶG*,]Go7nbBTzt`ӺR9Q yYg"ɴ:ghk1&~h͸G=Tڮ!X^An1罹'FRQA_w} <_UZ/R`h5waF/ҁ)ݥ8.٩veVZضv@~t85 CUf]|`lr GA1WMjP4@ƸI#E7Ԡ(dum0Uq77QnZ๻*CR8pec"'pse+ݍD >@b9/"hsUZOtrkJ<{! ، `&?خ˜xjafF M Ͻlـ֙62;[[B]'9)RGI?ba_%`mw y@#՟,hebx#`qBrL CP<0rE;&H3u _D8;t\w i؈Eg zZ3<)˰~tX no5CR^|z0ŚYlIVyyP[%̂baeε#sRp ]Z ;X9.aXy:ۺXm'%L ņ pӶ{|k.xnS~zө"|%%< d_F*} Rkxr Xt`xN@i=dN<وch_xWSZq/_15R=5uJz%]hbɘnI͢/FI5$T|Þ1#(,L_R3O 'nz[V8B_T|HNꝢ{$0;AKoeh:B!&LQH4D䕩1zto䒽HYBw܃?orKȿAo#2cۑ%~gxJͳxtD>LBOI%؝ospfF(oBn3}+7"FRHzg48LX]m-e(#]InNm<'ϋAnzauE*X[qE0b4q+_Uo !)7f[mGl|đgO H>B00F5g%BϘ&[+ye"+ev2;ꧨXw{r)m"n},.],w[!ΈsK76JFaHJx:%wsٙc̓iXQʈ\{"~)w9~s(?VB9)_躴1yށɳ |uvnCCj31܋\NcUs-o𸲆#Y; g7Vc4P^F6l^v7(v\N6C賬rބߗKxч񶄄a/zGuB};GyVW˩gg=E\rrHFaӱGs7UK xȿRs},BFЫ'XѼ]HU L:̮B& ,`j܉c2~Hݦ']W=@p/:;ys b"_*z ?CSsBo7.ҡ1vŷh'0=AhfK%uHj}OmN.8Js FvD6.MaܣAe`_aPV0{~Sh% z(go5H>X󏶮p`RC-4b$hb3$t /5(Nli#Gy"riGD¤=#+If,@Qu"gBP3cnG%u:hg+H @I4&O`}s8LĄaJ)d6bSD -½6LE6u\r M)R̈vV(S|E8_:ABO.q=4է#A:DuDa.X+ H7[_5X#7.^~τ+(yՊT'{q0EXUG #?6*e 4"9NBM}Rowe $XkЮ잖3$WXn"C]Լv4*M݁ q|z@1q5+мh00Ct@of]0]!a|Ŕtk['~ϊ?z- hP 쀄T6X71@O_HkCVXsĤxN}k1$C(g:*d5Dٽ@WxNӋm"|+Wj)[`A$28Lr[iX!O¤ zwHn+̓[zkᅺOiI]>g Ƶ$kL+@r9u!o ?ժ-!#&$Y(8HDMvV])t&GYS4$ X/"Hydn>.rM<U.~'KF~S=krǔSGPla/tY4 |'[ BX̾lrU ȝN\R_ڌ|n|<%^Sm]1=@ĉ£Wr៯-Δ;PҰcw]*t˥9/S,a"lβc,ָ3Ȉe>ejXD= 9Y)vkPe)"X7CW(9Y]N`{ KKUkGt\g-6*Xr"8FW)yq8vlzYXfFZ|r%HDO~"ПEd3`B#}0?[/_5/5ΠJg| @r QS/xYAZkx{y_SK&oU:M֘P;K>V3 i?N\1/pܑ>s6=)Ǻ+f5AV{[w8[H-SS ~hjnU$ŠG?q< "o `+977b,Q =qhd;(:GiH3z Lo=t$[$M2P?BX33k=O^\2iK#37gn7U(AGySb;z.mp<Wl+ ҴDVMgrl`X#&zvxW\)X$oh6}Lf sBLorMIjܢ|Ta8GcaR&eE̲u$ǁx#9;"@؈c[e-K AswEE7KcAԳv޽XԭO<4=4UE5ԈVDB@ #aeڤ]mw^Tsk{fkˮ-@5g+͆f7Pwx拙ש7ZPb\P!K/$]%~ 3xkI&ITJHm~9-z2XZ~+}I=X^4sKY*q8Ӓ`:G9 &xJ_2&K2~hc8RmNɓPi#p4/#W`d;wD!Nt[>v9S+ٻuW>O$6 [7%`)^Q狃WS !!GA(JhPT YJ ;:XbӂZY K(s9x*W1US3Q)^W#7`UybZtK$¨bx|4)-EPDKgcHBerv.Z;\v]Y+J:-7h4'5@r)` uT T\<+U(US^.mf@ lSniibnapى7@T*F]N]1!eId1))R }NőOauRb.fݠEng3A `NMhՂB`6nP&KKiD6!%͂X~# ۿ@EuOrFTBb:Zlssm˭5qA H\\s.C6˄sn&aoUuZVղy}x#x}) הwCn.A1ꭷ"viYP" G])m55n>׿0 =6Ok"eF*7k@sF[: `<EtL,_OIw3)̮&HjHjS{+e z ɘKLQ*mV ">+Hu u} c &0l Nk>,qE#Qz3 +d(wg1]0Ĥ"p XŢH? vKNcP Jd- +@pm;Lƽ̅4zc@bS҈6-&E7Al2g#McddhV+FP#ܖoݚ(5.G)N~qܴ 6P]o</B*W`2<ҳ3ŰGidgňo SS[UsC 6rNQu)d, {:>v ?xݛl|Μ! jV:!wh-i,D3 3fIʿuѽ8r1gڭX! n5#f'D5u2ʹ{{ klyxv*cfvhr5 i±${#ԏ4nw?cӱYjpҬ6Q[qfo\`߉{+N僔Y/Q EWV`e+wu8VQ~fx|dYhɓdVW!,Eq%I; y:ę':"ֽ`-4j>#|-9T&էvB&r. W3W6텔2v'\ގuC} @K߷DMç,yAE9p]+Z}cqjfe(`R|;"7YY s.d+ N/uAN}5V@MP%u2ԭtZo@WXf0GRZKdL&X{O1^g߆;a^u&Ɨ5md,mj$?!xt f"5{KO"2 w2qt=UW 0g1(M2+#l"܉Aַ3@@IB.K 2 LZpくko}od=ܪDcW+vCOWМ9R_w=ұx9I%\H寓<o _(Gplp9Lq1q"G|-4b5^I,UoFD^/J?$f0q[j꬈Xf,AFpB!T/\VVxfA/x&-W;V*6),@z 7BFؙ"=8 /,3D,AF DŽ+rJV4dNU4e Ee_ɯ.PAX}.II+NT+,UԠ%*y+n|cnP/b_˩r$Tp{]QqX.4TI1/vȂ[Jq#LrW`pYQ٦y'}ɍ\r%M$\ZH7j#@ؐ̏GHdwJtB;#[|-ƛ})1>b~q'g#]ʮ2TW $ñ;F n.b w54t&dzTB(x}C]3+ ruF -ϖ\k;M)A ?x_mv$LߍTj:SW _+\UvmiOڑ+_OQ9EcVW nۂ2d7ܮt$p.%8B+}D]pl (Y\qM6s %6%fA&<]spP<u#V\ ?FB`GN sj@NĞx)?, 6LTYO3@3̒eB,}9)Lb#1.!z5Ișhz3Ţ{&e-%lzPt17nWHC:Z(?Κ1R8Jс 0]g|$[eƦVB0Qm1*$SpXdU\^>?MjVGMkw/ P_XFoҦ4#,CX3AS=HhpbhJMwY=h}c3!QepM)b-"#hAgod6!cƷ= ۍ?&BvyM|&{6]'Z{8g.-NEΌH#QviȽȕyv?4Q(a;,MKGi傁 qP73q;w5,ω/P3:J鴝:f؋0'O%׮llÅĔ`0̕@u¬zAk-pzɖ=[4 s0n޾n=WǸ/]:BbrA6-({M Mo|1|zk9e?YG1էv@NA*x4 m&v…zs`pwĴRGFlj!BPGkɴ0or:C_$fmH2236VyQ%$MҀ}\ˎ$~呬? TO ,؏UmZ83{};rlw^> C-:<>'sCf'L2K먁̞}}*G~Yrs@C+{hY9_;*O(^|hQw6y Uv<|ꂿu'=;)K>3*(׭IŬ׷0qũ?B}VpC+:¼%օyvLri$kN& "RQzJΝ94O\i8Ffu2:}}og-{ 5? clVQJLrlQu,HۣACIU x5MiUE:Th(rRnhW,0PڙJx E@(Γ0W 2:ug/| @"(] H5\}I$W!z\*o#G$4a0W.Pd- "OB[Z~ P=5"TVcF1:r-},ODVwj!7 AчTVNqT"4U\?z4$MyFzfwqUS~>vrkkT>q(vD`?&cop连)UWfkGx~/`Iu Y.-]b"d*bjiz` ѐˢxa uM~QZ.lDY,nL> LţG2 jxvc\TdUu&'Bι SW5δ= e&4n>5wے̡?[eS/au*k gA|՘2F9꽥1nLsp+tJ,s]6$/;qS5Mu= O$@0` %b&xRO>L O$0"7$bbrFo EccwCojO ~R 04]4n 3 o & j]>yl=O%]6\-UuW8QɟT zˉ'HHf üA1A.~ZCOh 6"(VK7P4Uw~~<06 ljP'uQv", LGmO5ܣgێzT>qtwȰ}涟&T- *FzƃvXס-]t u\Q'P pXNL7^MФctX4+SP7%i9ح1+#gCp%Nzp^ h.j*\&7㍹?|b^uSn: wd-Ue^gQ7;v] 񒗢'߇9v-m hF~GH)|R p52򏩶.̎CPwM,_LKښOfTteh/u Wzwv3 ƳǗdͺir8J=_PtG(S%gvL&p( Fa5K]gm2W'J?…iv8@ײrx2l3})X\Ije޴3+vZ5s8bԧ l9g>S=.4;#0n?Ec d8# )-R;{yQ YEGS2LkM ?g/X%6u߯wo+!D}qKHQ@ q۱]>cK((23|3!3tW&PBb xi傦D0 :B8ec&ah8VԖJs,n>R酎m%A=gp.f/ZK\BBž *jW/0$4BFE5{  #ujo! ب%DnZB/Jij=woJVfZ+%w!T- mBa{xo.{S`Q@ v& SDџlv 4k5R03N/̜ 쪉A i>^cSPiZ%T߶j dzT혢FiL[9ܸ}nv /U@p%_ p}\~ld<]IZTQ4Hz-rc?s4A[kR7MӳR&-}7e$,9 ])SdzSk%E4}9'^Fn?)^`- I0P_ s% l>&M(#$!.F!%"=<ȝ)_٠@騏#9/.@:J>4r8aa]dLY3ֺ7lhU4{`KW\Tw)vA<}L5ut;`nݚϞ=L#!&\'h`Ozr' Pf WbϜt~"\1+8tAWIxuSqk`fVY$]hbY92 uS>_յHM'W7u,9oZ>D̞7&_%ybQ_]"3 E!PwyDӻ]?.'-'<,xtU)9V*# ~}b?Vl|am9$zY,-4c ]5ǣ8Te}S`UM@g{z:Uw /N+/GӐKTk%X[VA8an4- mkO.M.%4;d9W'0~h #$#rQZ4Gϋ.!0xi?[PZ`)xQ$6)KaPI )qst ۓ$TJ %YlX=]9W5=k4ݷ ?u(c'귃2QW^aA ꕑEm]z-Q1Y>g4e4 38IuId׼9/f1yWX1Kky-&W 95z8mo;+u5QEsC._8Vo畄^nwtJP}?J[9iFeAUة޺2#?CE&8@|-5Haӥ+iD'QDS1ř)Y^l2KEtUiOPḻ0Y[9D]5a2)CL(kUTV`(dnD*rcvuvD!W65Mt5g`XWA(&?VMFڥ@wI&I&pB ltϜ=/l). w 훾7*Wvz(/]$#|h%eƕ oz٧jL7Qf9ED*oJbr:J}W {,A/i[ fG ]vzTGq%N(A —ב`'NgxkQW70C1r!-=$/h#Bu8E[_ {*4 Hpi#ڽq,*SѾ;AeA.۽N8%NJ`lvN%ɒgw5 Ooz+k^W^6LXcIg7) 8-eyn&Lܖu\ȅA]n{A}֭~VwqǪ}jp}ދ mp=Dlu&8Wx^v5!3ΰK+א՚^=G67Q~du Q`%&̓Dו\#ݡO7Hi v,J>.Ur 9eNqhׄh~V#K < wmxjP$L6qA}Q XkI< GO+1>Hw᲼"~INAs,ݩG Pqgp`CB+nY-qRi=a򍴡&zhZ)+#هBĆ bT` hs%٥&fI(RJEBcRp##`4v nGd_h,VNN$e(t5k6n_Ԕ-ͣ&3V.9J,"s忒Wz dr&+FͅAOe:vOWF7Ba ?<,6/S41U / j5k>%u#<$|)3O]8&2 mݍTm%ƵjI{ɌgKwr_3~.+(dUq)@2d ?(F ;)ݳf-V))F8"rm/s j ^~r8x2.[]өj(`[䥙hˁ<|$n;W5ț-9¾etވW]v~*yn@х{v'u$ߺm5z/2vb@^M #Պx2Ӣ9.WMoY!VZ>ɏ (0me;=_ݑ^C s v2+dY39>K,Jfre}͒o1!Rb2P), b4/ ^撏/u_ԎLm)Q($r֘xIdae6)nNc_Ae3 מZ{Q't96z3Ea%Ys*Qb 46SGq~s9j(~/42¹ZGِ`CKz8aEbw%q Z[К^{ql`a @ C)PQϾ\TL {d _Vy"]*{j_1j ͧpVJ+M G}=:+=1VCw1T nedbvQ~=Psċ7!g[r,7O1RqI S];P[ ZŔ*ɟUAڴ>ǣ.&E{FxsV!G$ l6xN#g;P1} }ޭ 應ONdDN!ԫ9 4{H&:0Nsy I y|lcx Kel.x|bn98W_N$ӅBg|s&ΉAy&4CNs|aRuh#5u8-WJ`X=!3v<)ubÊ8͢e4R4!f v^;: NLq/NIpJxUr1:>n4F~/~*#hwfgN 3y^ŖDaJ]~mHVm<_-r|G<x}z>f$NT*m =;1vR9 0o$Q ؇툰3 }S␨A*J;Urr_C^vWe錾[rO3OܔY,b͠E3rR0KBUs8( ӒڇlHRO !+{F*^C?Ժ1gZ5PL^[ 3\-ӏ7&-?($:X/DlXƘ^#v]lXg f9RATJg~7?;ZÔ E-RT0Ge7mO4Rx"f.G+]$%fٯ%se|$ YEiyɝ1 "o4T牿uI *߻cH+\Tu~8H8@{[(Db,5|G䮨u ::x 9_cV-r')#G? /!Y&6(WFF'_'4/R_&߿ 08Gpsl?Nqs<"wiZ9^,}r(iu umk%78i ߝ;C,[O&/Zn=+ܬټoNzB\OԊm-%Ԏ`ɷ_%s#ΔHU ^uMX4&}|,Y.̮yL-#Cԓdh>8«>=#вM3sr!"%Z=8itoCP`i*HCZS2<"Iݚ:"U٩~]$'Cd>ץD<9 |g6MβW}LZ j)/w=dF 8[\?Ɂrdeol 2W DM(* |ώ0[)c 42}=qSkSy0MOX XRpT-m $Vك4Qh%x.PaBB!I p "X];0M?`WʅN~'p"`ӑ4o!/= Փ% 3^FQ~ՙ@+E|)Z>=bP쨛RJYjLTEFzf_srQ)Nٖ Ds/>U:¶5IOu_TG9FόGt+ádv+qF^Xb].E}#5Jـ? -&PE o򦡿#oy&_@|+-1E&{=u78ՠס+uX^!7qO˪cHD) Zp PgX-PAyZ@˿j zۢm< 0›`ɦܞPP#BrL.;qYL'j1 KB˒#>9lr"be+@w=w m9,)q]ݑ9+O}z̸}v2j&|eS>i.=Bt"ĈzS>{gC5 1n^os"C_wX^Zb|)&Ɣ"qڴQtO6x|TyYB,U.ѕIf'Y 2ѽȉYMnn$hE9yws]^}͇DfR;j"V0el1FDD5"FZ vE<BRоjs^,4^@F)NH_SN$O5:\9s[PçoZh wys/ #Ȋ"^rHe-on|W Q'ZP"o,e<|:Hc@P1+0Ks cؒ1n!DB5*HI k2$l\Y֌oDA;11ob,mٝ*#U""ϻPШBΓ28B/!C@\Y^GqkYOjy>7ˡ7&:UI Dy\o8 |L.-7ExP1\tif:G9L&k$[xQh^'$+Aj&$e[)x >b'8B᭤( q+&\U$ab[jT NSoJ! U{(Uԡdw |+5PXu/ÒJK$ǙDj ނqTQvN/uhjuv`66O͡~t,Tv=gFϽ9JF5(SZ7[Hv*Q% 8 VxGsg"?q*-@3 ~)qHuQ (:EB/[f]OH+Hl#% ZTқ~ Ej'3"17ڬk |ޚM x$-{P6 'w;y,CR`fJ]2㨢VEsAJ}UJ q͊/D^Eȩ9k%IkDKtkI'y0IHHUJEh_.IV @8=鎓ʌVð߹ユ 9qa7[J3R~V?rOJ9L?)_w6~=pw6ϘG#icgE' 9;RS+DV$t%m|AC`%],ٵNb>;%. E x2>y$>E䲁zW%#VEsU= ,!]ᘈyw\y_a_ $q@b{pTz<;A 3!7NgH~k' &{W45A|R Chu ӆ146EF繬uK\6 [0.*'RkW2H^?xp!)BGҁ5)9sotntQZbi &md'|IRO>N"!lFW2*7"!ˠA B^y:"Ew.,LYaX;[qQ:D#KoI[~(w&z)* w"\|>-M j6a7P`*_d"j[DW/Y-1k]u؄ )ybEzt!S?vpb'Z3h}W^\%l.97j-IԤx Xc'v-,J8KJ=B*O_IW3Tǜ1!77~co-U щUYt\KO4]rqC:_|u=Mˈ@H3q@, 94؛jmGȗs%FYm $i=GX|=m79vגe"gz@Nܔe_y~)>2x"[>1G:J5"mK͂P‹sF>LV&!zK*u*!Ź8K kt}"!ŃVԊXzUrɭxREvYspvPT+!zi(䯕Dft Iiytd513(ނ>{CgNzaC9 +ʺxG`s _>YmKJg[y31i?.?giXZ%*'YnW|rjh+.r@Q*F]`ªn*_UgFja ,U*la^ Wl&;j<]­j#tbƶhKlL[%pܼ&vDqgYWcG6= B#! ʧA1VRH:̀=_{yՂZvGeL%`2?3zwB.0dNs$ 1(+ˣ6x#ZLW]w'6v'8.T2:ވ䃛h&lBw w/? ̃;QpSns놽Z0KY{ rڌl:~iC{bŬ.U8pÍmqxՑ{<<,so}Sbˍʁ>?nx9%A‰e͖X] 08zNQ$U!G0W;xM|gO(""%-{^:!Lcu"nP̶c=8}/gsX 8e+sN]m4EU쭺zan>\(u!(oԛC7D.YnHR]+;oQ3 ]ƏΙxވG=Bu S^20:\%Q+!E8v#:XE[#j ´qO1AX&rO)L>zECsZZ*&x:mZ}S@)ʯMdX^Q/NZO\a5O)V5w הPJesR˶oQށd0뛎rr\ Ƴe1' J)ukXPOr?`3>w;LQurK]2J.".|OA"/[dvBmS1~X%JT{#'o zYn  }B(04H-cOgYRX<.zUŘ9nqX>Q-~t bs^ރOسMBwITnq;1)Ɋ㾗E+HabDUepv1uVˠ~Oܚv:pd(h,-{.G׏F88l|#~_/PeΦp?ej`~n8EU+=9Yiʰ];*%a38Z!h~>.Us2jM|M u[TsL`/L:ySΤ Y/l]NHe(.'"4 ] y;G_)EXjd:#E}.c'$44ffZvR 岮UCѸj,ʨoĩLTls!-rO?'N»Ujڠ](YSsBjD̙qVf.MSםd/|"bw\:-~UMjCӳMUF^,q>fIy ]ۆQewO&SY3 Z ig auޜ1@%e|HPJh9(.eHeZ7L5!/Fm!X^SQs!3_S%b&+,QqNIq@,&x cr |yEzUݪ`i3! `IQkJnkzfG֋2 [~ 颾JN-)c1+ 00hzgCꈂAPܷX6<諲|2%Wm`v$LH[9ECeRՋq^(!fC"PKJlcuE}:>[6_eki!.v+R.پTΗ5a pH-^P]:Jr-^WH2 B|qy~Rt';%ZV|//ڔqgu EMib]A}R ZFY(|=C/xM:ӟ&~ⶴ-P ys$, K8ܔ*CNy [$Yզ"j3a">y[]'t+p9<0 W \kyN=FW#j+l 932Rsj+6q_GwJw5TVfNr7K<5$+;XͿ̑}kU$V1P "g(,.Dya qՑ;2c)zD(VdvٰD*תP=TU`*h/1Hv jZ+\+WY*^սĬ ,QHe K/b.3m8kӽĦ,^,E6P|:7dtk!v):;(n(- `5:#03z^έ!I,.,~,F gU,}zϠ#')]r2 AuJJ|OЃ*Gzε:k87AmH}H/٪Mǜ7 "*񷇾LQWYx.L,hc>ލON:ZUB~Of :U^+U=竺QI;qqC|W_TQdTnFP/]zEC 3˂SZCKY<%Mu2RP瀓R8nبKNR{/IvZLg,+l.{}JzOVi!KcO_SuXO_EъS\ճRE1.p9/_I=",YfXP1ɞ2~5 w4ىCm=a:A`o 3Bc%3aCSfn9ߢއÙ;IT͓`aۯˁS DFq;9,ڀ.[g%pmw!7tۻPCh K{s;Lun S k~øOŠnqZb X]FT(W㗭Z;6?+<3F`8B|2gR& H'dbGI.A~]"Ɓg{"B|b>@{j@ښ]s`Sk)jm WUT>`@H>W]&ɬ"8ޘբVe`&*W/>;$IW2zx4I^Dc("zHXg#`xLOq,v 6)[vȼyfNP&] NoB<y.Gእ=MڸA^[:wBA;xqILM LB_-w/>lUm2KLs Vo kG_91):,%_YB+.A_5qNVؓrxa3|g2ulcH'ѕKͪ?CwEKZK*.Kṽ!6g}NˬmuOcc G\U28ęN=h P5풩Bd4^I ,0|E-TZN\r bL)|+4I76GFfRp\hIuS__l koíyt̛׬hTc\h`/Gofe* rQ*؁@JsUU&V ܂[A%E>"]gIѨ$`!.Jpc|PC;KBqq.fbc'tU0nTjl/묳#:C#HݜSi5;0 d C=Ϧ9xibea)V;J=KZ>Ɨql]IE2Xɧ̤J^p"]X؅v>+Ze6c}Ș/M= c1Pp3qv}< K<.N\)-@l:R OޥnC gPJw>P @vI+뤑e݄ cPabPg_%aI vmI V{54J1( KOtWfW,x|>4*3nrLص#Շ cAd}:.4;S Ms⟱;Tn=&ժbNf3|eg`HHLN[n:@1"Rj;NW P cB+c,zg2($2Zv:YA=l@AږB>8fZbkЯkFh@Zq|젤o}pڣ#*-[~Tb5jkz/(jFC)˾aox Mt\-xꄁyj_, .Ier,4p.V+-YAQo,f,ǐ/`7ۻJqQ1Yd [BY+ӌq TR']c CI<DSY<b!mS80>ѴwsSgGuCtKTvI´4F[Žp RZ{`=qc$hWp݀jo:ˆ(,(X/3-z4R>)B]Yn6{֙ՀYSaЃ:(._<&6U)Io+,ך ,vh+tiJ'N`SaCy(ln^sֲXol`JÈ?Qcdy)q%JEzF-.8n= ‘-+4mbu/s. 7ugM`8uKseʅ[h4aA?3:ct[=8iq1%T=XBmG2`Nrwy, >}xTڮz" lC3D4GX*Ulm~p}OlFI\f .b1X~B49-:L_f;ёRas%}Ë6T^/"/ "Fݼe$h<6n:_T U Rx0zؙ{zr%5v Ӧ Lt`Yo4Rkݸ`IMs1B1>7{5LHkkd]31,yTs T|LDb~4LٮV+ L!3"hSr/4h J fy[ Ie3k.N> /L-VGدHd0,/#. L?{n&z9tr%јɢ0v<|*AZҙbw]3SYi#Ͼcl(<2M:Vj^1 )0 \ܱ-;eMӂm͖>F~J?50b g6'?R, Zhl-BcOi'Q}"weaO(N|يvbg}v!&q Nݻ1qlsk{Y7Qle\29>]R"rVqW촞4$'"hLNTqQ v_gN{fMߛH9Es Y==by,z˫T`wRGh 8t'v¢P*.h91$BS S($BgYVQsc`v| n0(m|z l: 9YQ!_@4N`ZU\6o&j/\&ǪytF F>W SJ(`|tH{*ogR+_R5Et4ߒѲ[Iy?ԅD[cDfڬp*xV#V+=k!E& :>j1r|C;[}p03$jfqhʎn E$ƞlJw6A1NB(Y.{wJa91.ޅ 3|gOWP9\I9P}0lTD/l0,RY&cBX<ȋ7/2dOڴB`&U孥¸RE/ )%̃uZ*AҢYRf"䲇ϊ$Edtvp` X@E,TrLp&3<i!s+||f KՑǖ .榤 NAyJ?j}$q5hӕ;4EWt7bZAh=v yJfyuAm[88F/ODC0&|GSIۡno eq$-zrT2trR |xD/.h:u M}A̽3@upݬ_Kg\srɦ$kA͢y!Fs|r^hR8u M:3Je`jӔQ&"(HaI(pVCMg(>s GAw ;~-Sh7[W[]<(ԧO5H)4 J:lsGZPy1jFM@z|4˨v6De}/ڄR r*yg JXOU,(wQW[Vo{SZ>{tukt|C\F:k2.ڇ&V5lx+bH)FsRGVNc@YtFg6%͖Uv\!W,}YB:V] 0RQ@l$Tz%-s0TքܤcjXDin5vϘS: ?$O/,QpOKCof&VH.uT^/<bQm<:/E,Џ<˄}:a;?Q4 Wͪ3^}|tz|l13Gn:_gHb|t'lGF&a4_Rn4Y6aR;Q0GEٞz9J)⨌˖\;g 5>>۵k5,.=D|j3lDfhxpײiw(:0jW>K`]U&Bg#[mv;g0@!1E#9e8Ao@-9)# IxD)7e ZLlG'"(@ 0ٷDI.4b&I z]a̅$nOpj\,8\:)uٱ\;4Rp>Rg1q"Cj i0r̆WA`BJ BxE:o=)X5[T afqP.g:ժ\;rT5D7<4ۅϰuS+Ox0N7Eɝʿh]K}\ymo* F)Yѱ^qZէ;E}ByDJH>>M.T߭wU|_)>߇&Qc6ư?6Yv0^!w??[{KJtf(ÕWieՉ"f=3fj@ӇwkIlIp%dqfm!d-Cbn$vSo:T^_}`^;o:'lƠkOllꁙjK֌mq9?1u.qHiv}zQU}g gr+L6B(Ԇ=βn?< %U+/'=Dex-`,f'"'il"#d x,eLwWR(dr?( V14yPqmy f2Q$CtZPq"RHS{_jC>~*3ȃtUA<F^kf7!a{ӽ֐ WOX>8YJBɎɛty 2,}#jri؈6XXSIG,NL(5ܿMGkԇFF!Z+;kpS0 ;=le]/VdT,PvDv7 mN^3qN+g ÜLRERHʞN$wvo2=,,xK > )Qwʦ(xbzjSU s,!#kXwdR"XmBkoR;ϛUEײSģ`2wZvX;Caw@m#%8bQBEGͬl=l1U $&2/'QX`)v20//&2⚃3*:wZr10# $?7,SU;öȢ)] Ԍc?.9YTdژ߅ME.%#͚\?"  ߊXPLIt_R i܎qCHs>`*U,خPчG9ok@E7+ϯ,tig#*Gp\mvPnZf-2qWZ l4O jmO|>Íq2x7o ЁznzxsMa7y95ps3'Kw6a^9$]tc<15m.E QjOE.aMJ1]sWpI_I2׆ sܱf]x\?Խ/T5o>N}]2 JTB4M b8ĸF=J1Ƒ8qi~{<=mPW#o2-]c N,XxV -Q xBtetTV-nFsT|%>d; n~rjN¹˿-ڋ*.؂KD(gm$.m_*zÌ#:W3|#t`D>n$0r<0) b},BӧIy 8K)tb"wُ28x3ʱ&@GW5v#sW“`ٸM @w,5F $73T\F P1 G7! \xgTDdQNR]"ᩈ0)jjK1!sW( Koy6b"LnYsrmMF!q1hK?\ zAAK~`֬T:6UX3gŵ皿Y*Ǟ4HL`Syye7~p|o1iD8/S6.TuXJgDgqv7M &-9j`DM-GaQP R&ͫgx -wv$&u[BT ,/K-X*oM^2S.[8F ݑY*iu)15j;VAJS*P"eEHdsծ^"d5XBD"!Jb^Z ~91 bQ>` 7UEی ֖~G=;7z0aI Eզ{ОT^z0oaͥZ^鳀 Xՠ@AInJ..Dd-95?wTe|+km_(" G]ꆁ9oG:{@zqiѵl.NO S-.&iE@4P G3cFRtڨ("SmN DAL@>4~/ltj"=Bfȇ$QH~9hKd4ݏ#DR'^rԋ!pjq/ Y#xD]' wg|Q~;p=+N75/|9vU‚mu+ ܌: A^UI3]rTԅLoU\z)..ӊ2~X`9vVcs㩐pbtxu6Z@lzD_i~ {6>_0bZIbjsS"#Z'Pc  ר|:~| PS 9{-Rq ɚ26ptb@U?Z>45ۼL> | zx|{GD#XgDGYDs[a6?] d;έ=`& /ھq_Llj:g:9'N9;ȓG؟/ա9U)6~6? L郅- Vs@V4ù%nT^6BN zޞ^v.rrr8y7\HhCLwpkҜL`azslVx,e 'BK Ԯ!lDQcfu5S}\feOLAA)f `y(Z+i t
,yj.3xɳ#!Өb<"cY.GKXSk@]e!ʻn1 _lwV9tVJBpЎ*T!1sBG2_jn>OӡMPVM3b5I˷·ƌT$wyjPi]y~ - wM))ZgƠ5N,n ־YL`D$$d:-0-ք~?M9!Vw:UW3:HbC}j&ޯP/ըZ}aX41r Wx Ah܎ *}tl\j9U~J8KPDnH=3gr!})8H&Kضf(|Ȉ>HH*NXXrx 4)piEAds_f H职@B)<T/K_zA<;[|4+.G MmkgNٳ]ŻK{5ih"i!Ar\GK L$=0DY*6(4x>aa,$8}m=Pd"e_($FD̖}P M\f7{qd#&Y&ϕU:Ý%R;浸F}"nпT8ef-P>DA˭7?m;a4J=h1ȝ6Up2#ʂEƒ"*.ɩ6C[4Q8-Uc&Gtk q퀧O{+!%$ćRF|4np_t ~՚CŻӃW|U;@Q,*V>$*!=B>ڐX4H8Xlw. S'pKub zM(=R^0W~Ԉob>> )FMm@SaNzRO{ 2 /IƝ3&z`GV^kQ'e#dp#tb*j#M6z*AEF/L0*4e36\EPgnhqU\t߽e柃8 ('C;IW Jߒ55cQ4U[F@QBze(hHELl];q_)p$_P `160܀Y<>OwqMpeFsxM[9L:dkw^B4>AF`-zL7 OqR t0JTAz'qYc2!ņ*?o9PjݬjPގkPt2uO 0CS>Ǣ#>#t"0~qdե{R&}Ef1՛ƜnF '%>#-̽W^,[=Ro=H#BUގ6}ѝ8W"J7F΂Ĩ"GSԆ5 {?=B.P A:#Ӭn_Ʋ)$#ѧu=6i(!L*p+'}fOPXBps|_;x&B'aI{^=#đ IH/טn\ _"FcKj] q .K\p:6N67ܭ :RD}2"-E;t?/_*S |02G2(,~}+U$@(t|ƠLJyMEtcې>ojQ\3$cUT޽u3cu< 3}ac`IQx)xˊLVя3՝4g!*2h)gH.@{ڏ7|wWUOi/sC!8}BvB5-(/OWV>7fm{5 S,aOĦ _&1l J6M@>*o9Vxv*2'v}hČ2cS |]Gėŵ3 @g_!-xrRᇏYS߰dg[8 =vv}{ D+az_̙$nr2g|^5 `Qw߮aX^Z};gQ/l0`pиg0/ʘ~`b}E4g͕9YXܿ2#wԟ&e㒚7-’X&̊Xk)|̩oymxؿ4p> FL[@0Z(kPfW#4I@,t}ɗO#nDfV86qI|k-M,8wP\ V~.|tmQ6s0 xG0'ݏӱxA %"o0I-`pn~J쀟w${\P'~KP)[c/㹓$ϰf[s`nMgȅgS궵1Oݧmm 5)x%s݃ؑ/@^O.砳 JWD65K|O3>̪JШ "^,DL !@ح?! DCisl2 ]?K}W$Weڄ*fs2qMI6'P}ڎAմ[7}ã7毉3EEDX9f6Vͤ_M!jI:䯇B":j=p.,&98}8A-Cr; 5[i ;_K aр^d}jY/lbD=o4/2Q{!](I0|/COőMja&m\u#&M3"+T!"q2i,qMGFh_s/\6'w9qm7ՏN^>\}6(7*]$?F!q7dLEbbz!,3-'!ehSMP&&B9)V{Ȝ<B\pϋic ^զoՕ5{WaUDהdy̨Q0j[ Ho| r[`&L麬vjٷe23ЇCX4O[`\BpYo!`d.>z87 g`,\ *]UYaNj:v[&ñAyyx^lڜHc7!Sa* M!Tfe*@X@ˌ}?7$VH5.6oo|}83#XAY-] &7)u8[EHegBDsKj#F K3'|J؅\X ȷYp@I*-dy2:RU# -A{?|=` k*ZP:3(<:&fۜZR$(ߜaW/w o*ݥjԋJ+^fNVΦ!|eVKGŝC#aԝ˴gۜN`q*iH7ah['fn oY+ BP-y*cR99>o&0xF.r2sRn M^tRP@w@tˌ+d%T!GdtƟt̏O`Q]3[;Eo[K3%?d]ȴbCgkpR_V?;b* !Q>"vc^6<70Y7pZeۏϔM;0.fוQ^ F8/YFdѽO*{p bP,qFm)8BfX4{G&Zj-T+უxyn>,g&7$<pjż6+D#;sƨlz/O][hlh+wk+yzŒbpYJ{!j7/-5|n\'=\W`CJyBPKfxOBL=i;&,=*ôvp\Ts坨^x[ ('J8=t[RnI:2αR"s"&x#ړQ5R s|=?)eDǗ+7)ik+N_]͋GEmR9\ "#rp7wJvcI'fmA.T|+[u^6KJ\,j^}ϑ {a|X` 2Gɼ0x9-Qu4_1󓗘wʔӻTA^sZ:+~GJ@Ƚ_܊2yoQ y@fya;8`t~fpiɧgeTW=7mPs1Kݷ|v>d<]=6vrm_jr}\R ),~q_䐸>V 02EFKE4НXNV(X 7[ucL 0̴Ncɹ_?:Wok =8_P9rPOFd.ߘOƶ⁋!dt`*fwTL-XSK `Fo@Dm0Ь(rR1?ZWֱ W??SS% Ka{KZѣZ2!RI31ǐ?bX|)aۇeͨgn )շಡXyS\HA;d|)Y5J^8~T第׀#$Ϊs9G0+ sˀ#㧇zJW.#xP Qb OD޶(c ~@ŀ ;>iX/'Huߤi/R7;Rm8dyB!ΏL扥e{yI9R$^*)ڬ[YMEU RbR yC:T&mz0^IU!mb$| (_9H$kPT\"SNKM= h_ cSy4w%H Lj J$s9G橞9>n=˄\.O*S,^5sY~כiS;v-`Zfy5kK~`J#C5\͹Yˀos>,]O.̙|МHDAME9\l]8"-ljcZhQ&B|9uR/}#H|>P#dKV||[}aYGd3ۚlEE .*I^2LC5 shZ ~$rƎ b.4>T{pw΢^{uAQxv2 0R=A*uj1Y޻ӢAؖAc'%qj^3=ĕ^!!d\Qs <vnj &1%u:Yd,!$&>ۣH9i\O"L>]/Y14[iBJ4sMˏf5gq Gr'w"} G.ҘnwݞD>/"Yvuڵ;r@OpѬs;#|NV@wgsd}UBF>jLndЦSɍ1(w~ q]ùx(m H&nVNE@p6Wsi<%KxCv<γwa_ȅ9γ]$;x3d\DP,+ vTُǏlkE&j^@yA ޞ+%` |PfY@dD`,d 3RvHb.p>7 R8虇{S/гG1AʍM =.3CnRY\zmZ^rJΩ \a?L ?wfEp,[!j'I^TmkVD"Ÿx܏>#ޯ'Ut NDuҊJFw4NϿ6媶2SGg`eg{y -fM#@ΆL2D8f(ɼɍ6J:MUh qnsE#EIsh`|Q/ X裝&rFLRR5gMOZE u-xx'w=>#O`n~̘J^-`qGT8+tO8q~I8`˛dL.œmJ?x$+JxrglGŲcfv}+SN ]kzTMMqM7\FR+,H:k:./wXj; fS鵌M;?AkUwGp cϣڌ5P$W{[ wIއHst7Ub3I1ElޣڜAlpɁ*Z[Zt/M#Z_ l:f "Vr*K(vQ h>ձ@Pj>BēWT,zl}1 C{X9=6_غx/8">bEz@+PLj WVlم1LI$gYx<Cy .>@BXU`i&BcA|x/.i,;R.MZBIHF<,C2Scx!RN X;8`>3CuԤɟEfFEDᙃ|S,Bׂ] p<͡q1[3ib/LHp dnNRi"O;ڙS? >bz]O^+,5$f,jȂ&NpXCM+2=XtF{ I ')_ow!aUWlޮWOo.];e709hu0xsN5% Fth{O"h5LS7/r-BmSrDڸ9.oK|dHD$|aw$xu]3לj=yZ&Cvqt.M>-0 P{m39jxoW 3phu; "lj?2 VnZ%. md6?g/VN}6'gx]0]oρ⃉txxpU<$)ص.7CW,;j$( &g)Ik~,NJ;_{7PǴ&>;b7cgm n2羱B7Q=j ؖXo5Wvҝ@nX)8yhQXX }LdɊ'CH{*vh 2,\vB,'|o~.q3+eQ28n" 7k/q_1='9Qi5N)~ 4 SdoyűtWKcZ +=È6~O)\ay#ƂD#-4ӇP\> mS|Po*8XM+÷nI? ]Dn򚣒 }E>~RNkk&,7iH9 ) 1BmX8zd."f8Er֮l,M 8UH{?ߪl$9SGײ{n]Ԝ$竳8Ӯ.->;qh4T#KJs4IΝh!!DN9Fg~J*ݮFen[? Hԥ#Mgo1Z?7R/V7NڐT<wg%|hP# -#&{6+ѽPh^;CA@UX,R B #Ԥj[z|9ʴư!n`薃OҮ :^Y_V~Gא_ىP# '=* )==fq+Ʊa~,TtbebT5oe\G *{a|tq^雏jXK;ӽ,C-![AſA.,uYt 翔xrt[>wPp2:[5++I(.c֖Ҭ0Lki&ՆnkxTH8kD(o-8!8PeSx%#9дeY 'H@ ems狁tW9AR oIUl$u1,x"xOȋšZ !}eabeCU4+ԝEEI:F3BS&ИND#% |~x =3vuI]dqhT{~[ ƒdio4"j8#xi-oƋTGUdiӨ~!tS:h8]xpAZ8/1FiVx.8ˣE=OC9ÔFzKՊE:BE"'DoL!(DfHL"_YkAlZr/{sؔ|YƁ$9U4z]\ 8";k'޾_׎ʢ+BP dTG8O} .mn^qHJn#_rSU Oi.gD˾P\c)BcPʁAHp( 0"toi5þqs c+\v ΖPσ礼6i7a<ڈ:ҿk2e~:HDKmIlSd3r ŀ"8#2VqϹHO`sS4U~B:n5X%'?)2δG({-ZGU!f8T.c7l2ں6Lsaf:wSD9aQ0. SEΜh  -R@xGv?&QHze922ߩulcL(2Dkgc?G+wP)TPO9-7|cb9+kw_y(Y;]EeuzY ݺaSKi3D{8*J9RW aS7IZT>`Z F-Q2ʼnIsc<guFt:ı8a qcr`:=.` D 4$&Z3[}JRk>L*29شZ`_̚Ɋ_&*$*ӌ4Ak7ϼg4ij?s73:ڛy ɍ#=['Ec }TV= ^|<dž(.>(-"[:>[MCǁtR3^ӎ9Dt@mE w Z6^mє/ I /q rעj*=RzW 2,~47P 8Qh=75<i_<#HIJx Z͚8BÚ|)tjF5Hth|3P iPOաmMw nʔ)nס=e gBxĐ!z(0q15 DYszT$3^덍7 1-+9 ]j<`~J'Eu A``]tH /Pz[IQͦ[9/.q,Ư ՔӚ2j1RxT^""K'ѣ%kVklcIAb9ѓ3M yTNs\'sWq E JQ5Hd+~)Ơqek|=lO;t5EH5RWZ*A\a (s ɉU3S誮MZ<3ϑesŐ oA2uV66]l˳XRvinlvʃ@ OwysLP\_U{Q{ۆZ3iȀ"8jl޷6yZ%)Fʓ76k)`n 2R82\ zyo7f!327hb%U ~he`_ކujQ͟i!M6:c`ڗ1 ބ䛛.H}cHAD;+jHDb# DNV*U0MB*<ۍy)WgL9=N㇗|zٌFx~ubZn/k3ʹ5| *_ cݓqnǃ'Wi #I<_T߻&Y#"pQ5.9gk.aabßӧ)Z4> j`iH>& NEIi?/Y=+q߉ne@S?q< jO{{$aلqH\z(lb wDʾ{~"U2^(v(qDҸ&q_-[ui(ٰކÈAj}̡f沴#Lm|茵!94J0RӉ+H@:mbE?Nb{T n-% 52eSIO}㉺Ӧ*e]HCzԒ_0 Xm=ufzdroTQ0}'^_]aUALv챮>ޙC̼OeACѢ#!ൂZu C5ZtvٳMB!Gi<꿡}qqcB({2/ Z8#@j8/H[u>.[N&I0+ErDy;#x3\)|؊M&_Yv*.Dd[iөu2w^R@@IXQ?}tȓ)L3x8`mё}WtkA_hL; -},@剆^D 8Lc =Nm+k3d+T]t%kQW=H"Vfasګx v*5?_cd1SM0/Ћ#QԗY]֗!$gp<Ggz9(qӑi/-ii^m[Z7j1ѠC1H?wT S(JDjY-;*&%5C)I@_pJ :9Οq;vO]%O-2qID-NGSY;TE^ 5C+S_(Vϫ Z ryIb74iZ,l}[ZvGՃ>(:>fQNt6MWKc'KwL&^ǐWE_Nʡ \P'zd-WkFTfcl+p#"¸!nas㫛&_ckEw9mY-Ξy%#m<ĻX]0g;8/ȩ$mr&3Ix+'gLt]P,Eq=UdK0~-VrJ[R֯ui#L"\yMF98W,X-15f>KGq+6 WRfUw$DhqDe->#k8tȻF൙eZxP c_DSs7QmDd>>!noy=w?αMZTQ4W6+LF+ZB΄ԫsLЃQZfI ëB‘wx8 N,Q{$w{DŽNn̹8Z>HKy ](,ra y(ΆG'#tNdfה{shkzcE4-Om5 );yD cOGLegTͻk:G Z gҲ΃ 1Sǎ|o_*Y ߯wKZ8· R8Tkǩ*LԼt,kRk j~\J`>f5&ty)ŷ{Kւ:Ȅ^% oh8oObMEDM~X#l1\ btZb?=mNOOF?Hm%FX-7[V+~KJ-|mثX&e Y}{)2*wU~]R۶&MT~Ė(j8zD XTh/?LL7IyFg1")w`zBZ85<-$(4-]P7 ". *׌jatZx+u^HHGIwder@UX u>5۳eyv*vtwDn;؁葦 uN*äAߊXL[ /PW[bYn~9@SPCc::8vSc JK^|k ߊ2A.K l5&kT.ڒGf20UQREQSR) > VTen,I`tfLT\ZMl~hWgx~&AuYUN2%5ݔNf]W 2>Cn6& !hjZ8jcУ#-f(a4k[5! |ѩ=oV˯ _Y "<[k%3hĢGutef{L;ֶF~#±ņnE6.,doˌ=aO_ * Be+Ox -ISe޹EXԎLQե{~_X!oXZP-5qȰNZwrT [&Y$58p ɅqVjv?5a;GVC8y#CkY'K9"HWu;Y8'pj`I?):7̢1FV7 }E<9&4}:@‰osPwИJU+`iUj=k]A -MeG~0P'ryDy#6srTLj`DŵP"Њr57NSgz IL 4;u0a,/; mrg8s 5䌾I$5gC ^pg/e1L1˘%;_,y] ,6uqkP_Vk?;>՝T>BhV^@ oxuN*ǎ@!D ۟[R*:i`$TV? Gˈ NMYʻң7*)I9]R v Dǚ:_֬&PLN0pM\R}mQ="5wK-̊[G߹3*4ӉhhIrg<rmD J.\.[PGnhn)γ۸D={pq*bdG^24fc, ([LC*Z'$Rz1Ki5@&_NrAaur7gnBwQ,Sr{TQsP˒7_C55i~9 ,,zX^NUgǿP.ݛ:g@t\Vk; 7՗31 5'Եp<7{ 6m0vjolXBc6Vf=j;T1X@t6In J}mu~1^SHfNQԞ}ݠKGמ#:n'ng]*BA(&Yzh ۥ8>_(%*<:!Ο  xk>Γc[D@fyoXxy<2;=ep7R Tm{1VOQ#תG)ҰDcY|$L,^n$Mz^V)'bXzߘo?ƜTґ;nE?"FQE(<֏Q+S R.J&HSdCd\B}?V+ , uY$deS}ioTAί{b]E/S b 2Ep ][#iFƴ!N-۟3_ɫ9#t#Eн2'@qQ|ΤVkLTN7 YG<ۆAIhN'#dm+ u p\h m׉x7.!/;rGCWZ*|UMAa!e/+Ve0ZjPz Ee6<鴚$<ξ5~|Mc/9Qc{YȔ'"ⴕ@z+;@dnڵ (jx>J3i=XdcdH;M-8^Ig}8|>.CК58{| Г76U(7 R8oD/-uWH`.aar0gBUc[~Қ8e)ɜvU__J?MLMW/sV\J$bdy}ݖ !C8dG43T2wk fo@G17!kpJ 5CKNrV Q5,ƻ`DD\}cbvUڏѺW7ўF2/  Pu l{RS>AV+v/x,hF=m=[m0rqGo4'GrRNƾJ&`f=ci#A~$DxM"8Ƿ`SWEo82Gb %\a*ffG:|6l '_`72+ ;83δ3B)0Q}p;҆FU~;MUjLF[gekú7m):# 1h8"dYKƱRIKW$ΑBqK8b ҸAjC4?!s5ðU⾍L{ϙfPs EpȢQ^T%Y1CW%vf-v5@\9LDL{8vTjgI K-LO<n>rgaQ.7߈n&zDkEnŌ6YO10MC>$b}d9*"lE/g`߼p>QP_ $1$VBf&U#B}ezCOޫp㪎{,-$clGUg;7(\ (Vu^.7%3Rx S,L̴g}F!iz]vHBH7a0 zyQ2_)0^w8xPȪ,۝DB|{+ؙw2^ܸB7A:DXfs]HJЈ")fW'(Sƭm :Uq,簼92&?U"L1Jμċ-Zi2F!!ٰSHD˂Q[%KɄI2l"$ďnC3ֻ](qIYGQ$ꆾ EhPq::&k[d8!kPs PX&u0t=pq {U.=Z'A#K~Yhv2佫ӂ)B{?.NKm-Q=Wl)5ćqlq !Z_l#h3fzN~p kL6OA B3\ Gm{b88XZ?ua o|Pt*"NU,=%sAf1awa&z^M~:YXmAZ&K k4ωh-AqrKU3o=9fv{xDw(݈!<4=M߁ҀZQbI7}\"ti&V^Z0Dd,0Bģ%^/-M aq5p?Dgq} Q!N m+(H*i]C:/ Ne{mzApyEF =eZSL?9a}RY{+ӽ_wR1q( ͝|=g Zhc /<5<oZ+:*I pƴ"I[.Y:fHxhՄ/oH*0,?C}U"_^kRxޚҗBVć]EH1jcΊn$Ur@Lid=K=o}sX؇`B/6".n 8u 8?WoYG%34dY'[::*zJmi(I%gb-i'Jf{4y9;m^ /{~.pS,xQK}0êGa)%]?\v%T%8W>9$fE dbĹ>DFvSdG!tD~3c,TC,x_1#$ OqӴ2^P')>jiXt>QF3#=31/jt90?!qTr7g)3ܐ-7i'e)vL-U*᧏'`R7gDbEb4}$Ǡ vQ`;rBi(z}D1٩\hehqI)bm}3/*<'{XIxg3%>pAOs>:|Ec E ej6p[qy*ʉ]'?a2v# ҹN #=ה͑ k7^&j< $AHFmծ:b M|%qgęXzE(׀|O-7 >eAL?;"|,LCKR1d ?T(Lr7b^_pb ɺЎn/⫡Т֪B~UbThqqucif-3gEl&hr㎭sP'*6 L(:<[3k;C{jnu:ʛۜKɤb*!$JC  s@Ac^ \AQ1J2Z9jgF{P(A$K ;V}*e6$enScWSq7|O|x;F/ wR dy$(CS.iӲlP(le\z4mӚz WN(Yn#aQ,CpTVnuJ5x -Cd9{}5&.g'-oDlǕv (K>=-\3P^4XqȬbZ/'2xU]V)äoSj!^TZM!J@5oyɰٳi. O+NC=%Q۲ ('/U5(k1臂M60{ar ,t/6kQޅ`~}k7!LV(ۻhgx)OJfm%e=PfHk^xx=dzgY7wn|\]@N dGl|Ro#ݶnȴ'7@4Ep;n [r0KyyfKG=DO|_cWQ۴Y^C}`ioF(BznH['}nin&{'qp(?]GIX lHvVz 9r=K@2`Ѳb@Js0=+֏>kX9p_E;[K:m3qe0K&0/w%k?5/@-:QCL{N  QUROrokX_8F,/o_ZSN͛N]* c~#<'3nĂ֠~ _+3VT;AoX<}N)J|k-8Oj65*L,tC'@-Q Nr+v=MC^dֺcW`O;o`{EXN`'ֻl{rτ9 >ꨶŰEIxo>޹ok;t7e߁ݬ47rjXe.|[ro4Z3|ypWy2U-*6k3hKC-B ׻g7S%5$Nx+W:כp <3oi#kC0=8g H ic!EL[:S¤K c`^vu9Nsu;"#<UJ~K4#DnW0"M!)gO}k i<;aZޞqf]!9[;Ld=d$3YL`ux-R!{Y`h( NuB ,Ps2B+;zoO)ŵEH{ٶƙRY"?=3DRf¤-?~Vqܵ%!yY}g%F:5yJ<^^\vTPϸ& %R!p?~ۜa #v`Q#wlj YpOh .QƇ?0?NaOR-o#m T`wOE1NqLoVm8q?LpW?=Q9tFd=+K9.R-\č@I,oQ}G@72= vE5mGܹx,/2T;st2l{^3L\7 K0uuU'mtlzer(O*RV c4*:gs@+J dc[Xjoєil@~iםҥ/;;qrKjR봷AEV|r>d u@u-i 7cvWISjessV$RKkw^th5Iʛ P`$^ |c0ցegV@,޾= W>粯f;d7)sIPN:]>iuV[ $ây8.D'ٰW̨gz)\Mh*C‰w)$4f^ԖsCA^?xƂK;|bV7mW(%wkwPvBFm6'RHEUM(-M3IԓNVѻ(zzqjO-(O޴͖4ʧ9UKSmxފ%]$å^{NU9ZUVK ߧ>ٚv&f=FLvx2Ppa|..=MdzȥU[{ i%H4&4D*b[1wETc ]HD0H;кnr'1H54"4n M&fpبI@JSRZ-CpT~(:ڍB U<Bx44gW&ya6d87,I~,7T|nU܃T6YX?pt7 $?\T2F14,ӫ=Ţ?U[p~/v<|Cqm{-d㋘zb#q[Z<¶rKg**f!3@i6mkĊ .^)QDXcNr_h],mEyygװk-PU϶l 8i.=RKHWv"&~X>xNxyPrհ;%o oe=0cE|H\.D``($S0 dW~ kD\Ep۠iIty 68<,Sb,[&pMeccXЁVwؘ; h{4W)lY"m lɯ㺊Jk =R'7ߟ̹{Vl$jTTi3 f(Ԋ!]X/45,&/@crgIC18ұIY02- XNw3pJ6{`^]O-wuJ& =Äb=cMV~x JA{M *7KamUMU~E#{yھ(t= O(/KcY  aXRGh_٦(S %k)['a%A]9kx!fLhZf#bQV_TlCEXNѳSr5E1& '{}'pG1W"LM1KMl.}ddWrﺡ1/46cN,XRx:eI\HqiKyLY$qvNTi51`.(lĵF\˶,y$Қ2S8rYIdwJA0œ *)-]/K>R8uDA GGѴc7؉tY|i2+ʂfo\LʋI=סH2԰P) Jղ0EJy u-O6cߜ>m Xq/CFA?A!]BqO`N`gh]p~1úV~$\\D*7n_%͑w|Juax\Q#E*F=w?3@ v QF#`y4!5TQ9ϙ 4>u[( K_3P_Cf.q͙d\BSmU TsB sir.a!!W`wNslLG0]E_o&\Kq5i,>AoCRiFQ4WjY{kRvPDu<9V "*DBO:^hpOi;B~hJ5c &no)cR;5MԦjж^xN1ub빺ͤ.GM hV-T[լ<:!|^-/$xc I=y e[ȟpOl$]WFhDvt^?Zo`ʰn]ۨ5Ն LyOi[^ GZ @k1.RdMYP!o$p~Wҙ8~(5@EURZW^ӊbqf)9w| ␌JhH{WDC7,ضi=}PU+ϠC鑜瞅7fXIJzb ߏ@8)(ܣb6|.AK `%|_X؝r 89̶3t,qR)\Lf>LYkO;aA&z܎M@*P=̊ ۲Ѯ7Ѐ`[}V m7,\rYNI(|"ue6!8 &I)/*xHnh܎pZ۴tSMzYa^54nΎnn5͸]Qjns-d?=z r 81w71]^ chAo@CRe}nl/]DFbJA/f d 3|\[(:LHNI9)F`=r]eA,U% %f$?H6uA(ONURS!M% 7p滛se޴?_ka!v#LbRݕ柔{uZk h5W_am¡w۾eu3Rp:> L~RZ{ |&(ӽYs)(wqR~k43ky 4]^^P~qCKlyҗ3ɈU/&]]?tT,)V3| oF_RdG]鿆Ҥs="lupDw16̣4;BRZCo8lᑃ%v`{VJ~.և#bi@NQ&L()GRY=niotNH/ վC$pk>THcY;D0a3rPc #* ˶;4 Հ0yXv%Ei5j0oο(v5Fd/ eFIj\*ֶi7 [nHUڠ{E^>"|32xu77\-Dp#]\ ;m;k8y'C\,T~um6T3 c[W3]mϹ(-{B>c lGjkPx5 uO%QT,Ii+M ʼTu~f,;+rr]']5Xz"“H]% 2~_9faA¨ pZ2]{D 6je}DF.Bwd.\ߡ[t~+U'b{T&tEةKD0=BmUFiLNqκA=e^A{sG}%B]îq ?B/m&^(, #Lu\`bnI!k0"Gv69[ͰA+?V>"NMJtLfϫD:ư4ITdٌ9O·W=\ɋAӘgG0EL=an;9iXGoJѠ4@nr;Ϊ jUT arݤDde|NvdLEc^s5iOѨN+֬_V$-̝U.S0]˥7lSzEoul0\/!rzUGN*Uh__1ܭ#ѤE̼|//p4.ሐty8TLMoBO9^mtBM%R"dQA[.0vLUS YshSO9dMqi/PGeaב&;0#G^2]ָt럖OQ1vw;+i,)9ߤfk[ @dLʟhGeu1H( 1ːs7hOD6z+X"3RA=1gEjxԓM eo9uIy jz(_ so4ARMᨻf 5Pʙ<$h tV@ Kjr QǦ Ho#ϴVY8E@wU"i|٫/ޏ8e8-sfuVTDgރq6'NO]Z8CR8浮nFEy~%e3[)01:-Ak߮:[XId"TQVMg||Eu!. rѠS *&?X1x ͔-Zt:r'Tca+ vdY -pݠFڠT(Iq]?Q |9&{ǜ娐PS7KE*JPB^fL_{#̠iZF/IoGD,$YԃLeR:j%gn'Ql8B:+6OslNGO~S;|D죱)YK-H608x_nq5nŠo{qjJm @hbGkXb[|wlnj6}N :gZP.rrY qd}c{YIg?Lonr Mz<>KCjAmڃF#*ՠo)as͋P=maZDQgҌ?H*,u="UsB<_0&Q?1XÞ29 ёLvs8V `j2|q8DC,:~M xhD0daJ7@HU\(S lPH@h+Ӱ>`PH1ݎ3ߘ+.0 2UGM1!&l0_mmbԢb܉1]TIȉh:?L2Djvqז#b :Vue=aԛN*rJʉ1\t85X:P_Go[}V$׀ngXO1 &$ub={v! 8&aڴ}RF(;o%] _4N:OZX2&f8q =5ﮎ436"2hR~VջiEW#K HOD&^pqX2*dζ&ZA{.P9M!.I_+! 4aE5R+zu]E|2;1tlݯynl4T[-:= 8)_Z^4_*܁i"U{-<};`I@6y^!ޒ N*Dwyzm)k2( hP>ndyAsK3#,Bl?٪ sZE״*,;2_elWO;/I.sJ{&_]):TPnю15ȝZ ˾g.5ux "XۡlKxRlsMn=sfD.jx ]KH: Zi =:؆> ]7)R9i_Y>DIY-֑~b|=kƒSqd( h6[wbm`xbaJzzt$%(I>fKS5Xc".lPgTAIVhb8DEϽΊn:B§*Ϋx?k9 qTb!(2 )0ݲ 8HY! 3C i5<!IZ_y[bf:iT~[8bAi8@<֝4W4b}*EG!1g1nQx Pz8$rߦMb:^޺f.,CkܐhVHW P~@Su9&ұ`tRC`y@p.E&>CɷPzk}N{b04ixG1ѻx |F#AvY +t#:t`{*kzOH磓ˑ]ooprUEcOTk_}Ƌ.zЉ_Ln')Rl١\Be.:9|?+JEUJZ*Ο(namQ*2&J𡨥03fS h;H)ѷl=GF3AF]y+!O6rǹ9#4,sq /##vc".ud'Jj^,a# ڰ&7`8> )e<ʖ!zA P=(X>Ԩ Qz@n*fk}dv1f0l/^j‹EG_f11[Vҟc ͵E޲X}|FGB[SK!!ן/+vN~CJmfW)FoAg*u!3]4>#}w8`Mmѐ^)a.Ƶ\4`RZ6cAƱ@KI"%PgX5z.{b{a9i+u1P)ݴ#pA?4Bg͵qmـg&$|۟Tɀ{: sҍ.T,B ȇO PoO;{FJ?~;&E+ F VˍЮ?/1md ݽH͡E}@*} л|sՌRI0b<]&Y b|L/U\/]qg%7߅*h#3n].g3in1rWI?po=ID5Udtk>n/ZŚ.N2ΰy1O°6䂒:ᄐ,J^!quɨB!\XkCK*xϒ@x'gؕvU[ɮ_EHթ2lF(19) g*]rarL_6\wKDJIt[V+^_ RUaTQpv4{&KӦX ٳSߢ+ ^9W۠`vq'+QZ#l%P .g[=;3ˎEtO5 ?󅦅;P^̔2gAf0`RE+鍝H 2S4QABq˱*E2T>3&T/ Hd~LdHHoH2puM(i*6@nl`jT܆0zi-1A raau U!rsKj%)qnѠohUm ,.ԕUA%gDg`(ľ6Iڏz홎Ή19u/y(aO_"K9 A<ӯ$2eg ѝDtPy2˔.cq7vC`w|bw3{.6"P03'-A1SG=6Gͨ76^NQuc>Jd{u_naYvBfVۘcF~MO ߞ_Owzˆ$UbWXHhSUQ{E-w2{R70 eFbPKW}r&(ћ!\g\/$od`hc$ 4*bxv 勇+`O`5WN,F8N_g[ΠbqF!{@s@3sw޶d/PZ˶F(_ ıӁ@y"kB N2!tz M`j^0p z@@Svv'Nrw_IKA".OC}pYzbNi-p lI˛=@T6y&F<n*RH@kDI"`gRԞ,;gT1Oy@O_/Y֥Ɲ$;:NDTB gdk8nCHOvW<Hְ1In*_֨ ecyk9Ia 8F`,q|Qc}"[^I)Rb[cE 뻜gŕqVY*.p4gehSp7Tt=xi3&+9_fGMATsDH_d/pzdn?_%ʨ$jB?{ G[.$BlzHҳyl}ZѠ^o*K52xD{s(2*`O22eeKJxD@{e)0b`÷%3Mʷ8dR؅)BʅVL;T|.DH|:* wNx9hY&n<$e m7.s;UdUӵ-m@(J$8eTfG5O)Kg2/מ[6񬥖 6C/zcc<ɠVGN(&?O 2`7~o.A=͒3_|wJLE,M0i O?(N~S1 z' Xg4ل3q-mQ¨$YBa*!]PY>:-&arc %bi&;2t&i36&b¯ɖ X45[F_K~5)Y>5D#Qh:wrs6'fٙڴ(\g1ڬ ;nQ Nmb݄gab 4'}*JV mҌ^عB:l}K!F~+4縊'< %o$e9l ,E6O` < y=A٤gȊXo9LH!מqI{mn*iRžXu(Spe9t'l+O ]2LZǛ7 {>  M &_~baSfU KY,g1R w؂ &射&H#k#a&b d1n; qF}8gSM~b<%3O8);VY5ws|,R$mϠ\@}kNVlv #(|pKN݈Ҹ,“N瘫["\m qҙyTҭy*N&wh}@>~#|2%v~**>DJ1Tn(c٩v ]FͱYX +(&Y&2;+&E,O܂wĐfRHNEstIWT?*!qu, V45]L9=z;:Ͼ˦@XJZS8=->"C;},(rIHZ!&dkp@[EN|#╈F@ٻ{EW6|CCrkli.Nx=ٹne0:{&FUY`ea7ZazBgپImF HWB"l{h1(51+J"C;N9v⿇[Rz z͂4 ULHHRNz57O-3qΥb+p,ʭX3'K'GX4uفi2Ll,$9(I.Cv?)UgR\q{g\ }ט{%VB"`BY˗uM Їqz2R5P Xa/wIFNH!+V1 k4n 5iW/W->ꡚDl5EL2eʻ*]Ɉ~SڼyW%k]}!_;iBqeiL}Z1֔}:%q%SnM>ZRs^z,"q*u-)ReiӳhOŚyizlMQLb얐t5N}yۜ5ܞ;ep&ˡ>4)լ*1c6W`,rd!LGZl`IeWKw4 R1wgr9y čb^RR5'!V ڶލb4<΋(:4G?dtSHU> !Q\Ӟ57)%N0x0F44Yo A%{WqƃJû<._y%Dd *7V3S?{a1#k洉! Kى:&چQ{{Ar~m -G壑 apYĸu(GACO \?΢ B)KF!HЀg "NhSĆrڧi~}G Lfq?2[eCӬ+9Jzk2ir=P+Jxx+Wɝ.,OH&=2·C){4WO![DQ.UzLt8RwJeW ":m' !~c>6Z 7tϪar96)!历IfqR~in6h>%I4rk#5!EB33 QY$șn2$!&wӪ[jۘ#˲I0Px+]E\RF'7y8Ffvui= )e:tcc։j^ CH&$L u3_ /Ͽ%<~."!ZCN8Q.D>Bd:B4SF<猋Yb3RIWqW*ϮrS8Mu5lz ?ϓ}@Q)~ 9ZgmpA}GVo86cw\T0#(347LPkRBHsp,հ_/Wh/lїNŁ5ͨobbo3 a6g 4휹qY _%7r(kU!$0#*"-+E)Y L}~G/g:Ƌnw~ C n]Q'vv8/8taeWh`d` WXlp)Dڃזtm!_NhnDbv?nO;Yky%!mZF[k@#{ ढQ74ܞ 0Pg9?ij ?7Bf(6CYwUGB&O ŏpo?{Wa :^K/W{7sգEqzMOIlKR*EB";\z8ekY`/-E7A)!Ҿ2~v>iG[['d'~ͽeWǷ9@OkŸ5h Tǚ8'1%e9Zr!:w'ˁh/9F-Z#Sj ߑwk^'wnۚ@\bؐ,sgմKϟ2B+<򏹄KVxYNn&G䔃eW˅GK5`|cB`^.un$蟽#9i5h *RT:~A Yg ڑI~ۥDkHm,wY=~99C?:Ph(޳Z{xy"?k{E AA`Fha:coc_*a<0(r:e:%!`cqObL.sIP/O'IG9-Lj΁apX݁LWC#M^h䛼X^* 2º(+y1r.(O#&'eV1d[pӵYd EUQXփڡPgyVE4ˡ !8"dY3߯Lոssԓm$/t$?.;i.tA4&*XxHy|{A&~|V_CѦ.|CGMowcWxr}[瑮Y} hN(g4$d@#y J[L$EY$@p<j;ά׎'.ƴS͂.K;Þ̗]4dhu:.x$A^/1[%=e_ĎzŨ[m|uu7n?(G̼TDMK]*R} (=]߼tK]lqj9-#Fv=AnPqe}5ĭމAMYJsx8\3(!b17{̈C ǭKJM"`ʳe= lȨgZ-:9ͭK{l[Ƹ);?`]Ht*F~+)xSmO Ciu6 ɵb*Xrelʣ[$IM–(v@F?渽YֱU&1Cpm ! 0txT"  u#lY婬 w3yv+x@R4}b wXmuM OECNլ 0VxO@ߣar:$ir* xA"(|RwuHUWD4#G,s,Z6L4J*QV=[<- }P ɱ[AX 7{d#sȤs OjI DŽ<V܈ ~:N ]LqZʧϝ,U>g$[wc HyS^ ~6!9\ ت$ڶv#}2O_b2AZM3uawz}.x.zsޫ8 ĀцsZ[΢YpdN>D㜰K F"5e($Z/%+`84GhjcՕ'>;_4BI\l@ -4n^/w74>JGizꆱ [8k@QRGi|u6'VRnx& ia{YrEK)j-w-f)3I^֬AU[.1ǞS{Z!RP+G`Xx4 Sxn[ȵ ~S'\JI nC "#n hptf іwsV򬸠H뺪=a`vIDn9c>Rnud)d^mqxB֎~ gw1(͒]ik'WT2 G|m.=X3!X̡3*\_nx}@UAx)Жmj?uɈ1)NX,bnc0-83ځOMK"pޔNK|\Pϓ=i٥o;(UdH۰O'.kjd) i4na'5q80 k|gC1#ߺv ^*oуPH>TX$Fkv!ط:n8Yx]ܩM>o?Z%$ L4.^:YLRhøߩ,ϞR2Й*ue;^qhquof23(b`}Liv=]-S!vXsϣKz;VFL?62 ޱ,abOf2) ԽbUU s09Mҫ,6NMo(91ju1+BCw5N+ȼt&I[Sl_J?ωuz$i^X>.&8}jpcSϋ]7gOi9>AS#֡v5rRGq} b% =p0FDDCx}dWOPH'LO+PXAt|罶z.nG<(r ,9--nNs To!#=݈qFuR&z+nLV9i>EStܩ7v:2 Qa}}C *&t:93e%_C(mŖs}  nyax.(  TCKp@bƓޑ͹Ȓ2 Q8v>()kaC˾2/,qBKt\EneHYӟI `V-Hط6%??<1!ǿT_a`)6@ ¯ĿCelejuTB{{16-%a ޷ sZÎ&!|{)УD:QvqTE-[}%I6퟉_:ZU!R2Өr1ň% ؂;h {jibs=ZM\ٷẸ:Vݶս;' ? PnE= i|ʥ/RHZOdvpn%_*(cZHA'~:JU1 .a|3`}_;#ׅ͜#`k]|x2ڷ!@Q/nH8@[xP95lNDˑ:*]Lvz&S7aT}Ih ˤ% ~)V?BZLjA;?ufu`Yuswꡇ`x>z&2!b&.hڨoIKEY*Fsl6e݁_PAv\#}@L-J&f;4Dn;ވ3sKɰսWU{߰}@'Zm?~guGo}ERw`CЃ~v/DѰ(MxdQBŪpORJk-Sg9 IU2>A|rji稛97 ㈺S} |뻺8t!#.BvЬ{>asX^+`SˣRpH^UmVc}ј2;{jp8@~$iۼ ANiRerYahm3%Rrii3FoMWRB~fdjSسX7De1;|{;MdY=Xbd,!'sXa+kr-RXćF.kqc KPYH@5Eh9xQXXEݺP9{Q7Q6֯g|)+0Fk zR]Al*6<8RiAKD"IƧQV?Fx=hE(P%RQ7mB&+I$tF7\Bj !kQՔlǢ[A Oo0(PnqzNZ ?rVίp<(LNؽ ]  $ryV"􂶵""p$6@!+)i"æИ~XXmXө6fzYb4&rvDr,%-XbyIU&@bCebkBgȫז D=-0Oί!5"q^[p:7 7 'x??sDl{EצQ}P莩]1P6%y pMF'ϕDAhLض`LM-SwK/!Hw'C$T45KTﴉ5[_x"W??vgD^+S tz -o OuEº Qz扚 \)vX[x4v+e63ZPZV _Ԉ`jA6ʃȬY+ zk=(I2Y9|vJMk<=,]g*B1iQ<=bȋgț]ºTHj?!:>TW>Gc_;}F_S0@BdpHCdܶEIb1+T_J)EB1 yHVwx>6G\M=i!e\g ZB]>a 7'&SNdty'ɟÃR%ź۩ƸړZOih,  7[]ˀx3#R醝kA_H_o>1DZ|1UPZ+HΥNKB[z361uIVҵ~bn1[)Ny _8UQ-2nt1{*9>( n j܏ZfkbqUĎ #G',CT I}s[(>;;dr.!:%`(A'߫ڂGY]q 'ZALcs8A6 V||i$J>q"o?<j$1q~0cOkЌArnn0OdƊΤO:ҧB>Z5 ]k:ro#N,e'?"/Drw$1"bqh4pأ9țE)wNo\ Lh܎!̮XИ.B }hj{lN"zpwSWQXӫyS_TH__v`9g9w=gWmEKx:Ԅ0έ] 1}.Q_ !}aуl>QKpv6)HU`'Hތj/έg)}jó֟1\/'$QRg q%*>8sQk:OKšlvj92m%qd:M Ķ?ME*&NPyEɄ,Kt_;82KgmO^Xv {*|ޮ];یP{/Ew&򁿒#ފy깆(Pk2"ZA6/>_}Lu(*OCӍqyj@jB]FC7.|?ɧ˹( Olu^5綑e#[O=_>Kϗ I?U4C'|ܢx\hR<ꉹl;$ wɸUSCbgFcF0cvFb@W#ĈL-:"꤀"ZAuN"_qLVX:;z$m^rHu~w|?HzY@!>| dJbN[${M&;.ݳ|a̜ї~ ZMN<]R'ӡTVK'i;;Bwl B/lY3&E"i"-QW Hxs+n6&C΢->;b=\r|)=u6?(3@1Vb4^ݺ2zCiwez)qX^1l1  {/nUCJ WoጝLbO2ieE"f#H @[Ǘ.19@"b+pU&%*ͮ1eMZ8.a 1ЮĶM?-4zӪܜEff$9MrҟM) gZ2oM.4Y*onc,Oٝk~9ɕmLg.f2IB{: )w?+9+)r&Rz)`42<|_Y‚ Fs3`eq:{)OG]O {GQ]J7%;GƍKgfV4XnrLZfΥQTkXޔ4:Z[Rw܃7\*|h6ͰԮr~}?&ڹ9F\vppP~ fWVm,g8U zCcG] &LAP}~ 7CJxQ;!PV.Юiퟞ' M:>WK5g9G!.ZԾ\r-fn ʙ> h\5 x=?ܮӕyiP~lxaQ w(o?UJ]S_ߝ{hk cqSYm}LAx)3RE ./ъXwJ¨Joükz:k^c?*[2>o".]_.jdA8$s u$O#~hEVB4n[#7PsMvNbO21<#wrgcś}J.4XAJr[{7~nIH*ފx|I.  s ):*=p =z}iQRyrXO:o<8FNO▶th[uxa1򸘟I%mgiu;xF&{U8H+ $V 7'h*jGYf~$P 0G=,2-~yRrق7 5#{Qj%SQV A`> n%TFAPѪF`{Zto_7kHڑ3\a9#- o||@li ЄC"$X 5V5 r We3~:4ʤ,y͠F Wgٕ {(8ЛٚhOqwt@EGC|5$YG3MDL_NZIBg'}I\5 yjW@\{g!xTay淵O\74/3h`ӫ4y' O":pj奱?t)-o&KgˉI_+^|d2݇6[ۛ{,(Uj)Kt'!M W6aN5%18! hKTɨoZZ57sãf]W؇ueCǿ S>_V4<3xfYe.\8DGs^jʒPn׀vj)|SR54ɱf}8<$3Wm%=3+zd>5ZqTLiWg{NQtAʗىn袴d@[&VP~xi.u;;^%v3L8N-+anHc=?V X˞3;# $aM⬍P`.-Qlrdb{k]{Ff=Y!}J-Lͫ*cDmv|f&Z\rf|X@u8:"4gsA*IxxۈvΩ۬=j'rjxf( 85zv0V-AU057ʆi-/zTF\BE}JO?׀+gtzS:-gn=k%%fJW%U4#8X/EqKsmQq$Hwўܯo?.=lN2$BpvQY.6Gݰ`IcI1ӡ@gJ)Wt9xu\NwīFݦ:ʹ_gG6˪ᛡ% " m}0'8%'F'9^̼&B+X8' x"/(|cSF.L=kΎُE%6iQ%ܨ$0K{4 ?|005Vcp'*+}wN8JZ0gys쾖KPĎR XNhkF5M_LbSPbfD _ &dL g8W Cb'Ϙg izO$g؋N̊/q# XNPg"WjQ]L$r쮴>S`i ΪBYQ3(epc8\R $)!.C׼ "o ͂~^Μq.JoO)p w0T{)YIB2>mF?T5qXJ6c?tN[U(ȥ]w' mPRzďجFHYӿړ:@|=5LZ§(%sL~}Ԥ9hpt^ =ƀN..Cٍ Pv ܤF$\=[4狳 UM WEsp#mȅ*!4{V!FSY(K(=owW5#$~.AZ?b0n GPe?Ej1` P+-q{P奖D 0.|' mP3.tVq9Rs a$ 9:>R045Zvʖ@~2Fz4oY<IAVꮿ ^Q0fB!bL‚XSohI֐ Dbw&L,Q?P%o e*~ݠ nR_Tr7i<-3BwsqjGA.eYQ(odfrGt[D+*2k =xJC UPЇUHJ[@>5^*X gvfT B}K-],]#"QHyJ ҤAwhb{Թc)h$$`lZ'I0%%K%qHVJK#v{eqNyb f|yp&qWgL0+yitbn]Gjr-2q$W~ p,ϖdىPMzv 2Q奯:,h\|vTQK4O3̈́8, CuNl"_Gdv_OdhPlEw ]~#{Wۡ_G`-j3a?'ǮY_V,LfX%yZa 5R5]߿w(̭ ݪ, ŽZ z^D^' y|M3 iKZ @96G?Jϋ[8դ:n%㴻HJp7uaNˤCg# w2l~Lk.o9gk.{ )K1#Ŕ 1d#$4V hB!̔-.!*!c%?d',j kcKki;&v٠wJs@n*%.>.4Jڤ*\chcs^9Wω؉c:RyMׂ^ij`=YXI;,fsV|4μ3 O!q8loVI[ UciI}XIai_ o=R,K)2Lq T,WӒ[s&Y _T[CK-_ԫ7P1,#CBjv9J98>dЋJ_b+Q7W)'52jdL'c3j">Q)W_H=7^TE􀆟f8w*k6,i;oe` h0I$0,#8K)paÙԽf4L/ݏ^d2WfՍq|ŵz~ II-K.F\H0¥J~]f[(CP]J/`e{Sei)GDݿS݇px<AY)N1V؊4W+P2O8>>TC²8L5y.LsgI4Q8S=84gT֘|յ[RsQ&Xd DYh>H,{| ªY/#YSٟqPD9eB;sbuyY )Lj?}\WR}uUv}c (bStj>isU ;5?.qt {q>:#Iusɀ>>]QaHOMUf 7 ʥh CkC1p$ B]~^ 03&hX_Ձè=-WE0Φ&T-oiQlK 9.8: J\W`OQx. J,Aa>z|U_tY~ 5+vYdHO% l?NOwC2z@ڨ[uɤػXQ $-bMNAJ́x/?L :]Pe -]`zӯuwNl{.iMT2P`rc MݲV Ы ~B :6m[SR<ј@q) /bɔV}mqQ\WŪ!'D?Rqzjp ro= aftHLI&7\Nh|h.Y{ aĩ`74N1/n/2 !, T7SLM:US/6%'GCJxT a"9WOL87J:rNo/A&A뾊<{,RښY{Y2>K˧_/w&vD ^In5`֧nDEV熈{TЅMq;`rnR4n{ HtU ;ȁb՛1Jm aE!謥3pFXKKaWR[wXʵ~rS*NVD Mg{ `ZdgWs!mӠIGT^d:M tł!t4=`i!1jjU,oo9k 32Du۬I oS1 FF_9VFkc K ihjyPRAc@s!i> n*s !7htxsB(Xi%MU:7]g9q=MRs P2db'ߖ >~e|6$Ǫ@5}.&]W55=6x W&`]2#^CuŤpF,QMb)RJ1-FRu=EVwЉpy8i !OOgEe{m7j=RE-G[:y`phF4]3Mng ̳$JyRlRiൾ[Z⛺GoN̡FRy[C]U ϋԡڽȣ*`t^"|%쫍iӗuZD;Ar=$sOf X9dcBR3ׄVZ$_v r8-:C,k{%i~tJyC/'WfPmdz3'Me}4{<_ѠYL5-lW %|J;O _ƭJ{pQ,7KPM͝# c ;e\r΋X韂" ^ƺPݷ=}b}LdƜK THQ QFKJ VovȓoSv~;0%U&k@i4s`B @=(jqfG" RegچBsQKL@|GnyCj?[J9RqWI%ܻֈ2ͱ&)n5l9JюU oVp<{Q8Y޼aBgl T)H57zH+ȑ(si ogl&WVHk^p\ղ arfX澀TWQ:-h^m.tW $"rnK!NI+[Qڕ٫7 LHQ[F3oqzXI,k&[Jk?8]QY:VЛ4/.Mq*{(g¶PˮxOe% }zȏx8hYPjg.?ԖZ{Nf#j+ə' ]݀Yn`x#[U=w6hK"'fyk f_‘h.D(;Ɇ#Qϰ.CCxt &^?Mkx_<$7MRyii1/Q5-׶9>jl$2a%F|muNԏo>tA޻iT=;Z6𣒠_@ g<%UxD\iCyrP(wȎPZid:;ҽkț}G8 ڣMl"^LcZWIK'LaDBTæXFMۀ w.WxiץnoH߉\0/~|(ӟFu6\$g<el[ES0K@OǛ$dd|B|'힀7P@|||3ȺPofѕ3eMÁ~j3ڕS۶8S2uȤ%Q7N-uAef{Ģr #=Ͳӂ8V &\3vߌ v.2V~LC?Njk~psc: 9½-bPqn+i;u6_*!Lomj@gz[;s U|POm(s[0ixY[fv 8t;6]"vIX1g({ dw?@s@A'd$HMNes&/?ƤA}::E@JwzY\`*scAg A%:e._lsZ3*#yc6,Iy$B>ky+XCѮ8c+pֳ>~B piJʲau^ă(;vы~9Ev(cSZ}Ev#~P;K@<Ǯ56ݔ?IH~9p}.EP1?20PV6"MZ{=dʬn5ڬJFGwk硎rz6;iSSnָ'v/xτC (9V*Lx\Zx+-?`DEr\ڗ)w (˞h\T34]Y;~ă{7v+w_m/Q@*(n:f>"%OlGEI)8ba4tva@+#iLTA2!9m[ }Zu^'gzSITWu˅̘ݻ?2ڜY݄R}-94 ulqՓ]"ͳ+Ҩ}*{?vn֤Sk.$|˸v ؈$]TM aKX^sw9IzwСU9U0't2wZY=n5Ka`Y/#XvuʠnʛRAz?eij%U!S WI.5cEXTq*Ğ Cr +g'.sM6kΰ\=pU޺Ùyt`Vzˬ@ak.@y&=h+^0}sjv䫃?Cj͆(Sx3m@VtMAWm[7Eq(lKThLQ"V/6NĝRL =ǹ FMS2b0ic yM.(;FTJD)IO%ؐ@6@5zk,]U|[8|DrcC-Q5gD)jUL*8kD I)|_dеQ"gCxGW_r] _ uNvL~M7Bi_lwߌL$r]!xQ\˘ iw@B)#i`U 'HҙPau5meO܂ޅcK#Sm7RAwS 6 ZV܆aOe>oASc7(ϔ%q99 B(>cbF˸@a{w=f.گW=:!mYG?-DBT9c.b_st`~Fī1z'ubV^媡BڮvCQChIVLRv`W>s.~?wἿ4ng԰rR"-t (NWe,*+}/(sx׽O#}L?y`9747)1I?f z՟2^f+;y┟yymkzGriJvƂ6r#dDH'`' _wHlwEijCEM6OW?Y;I,E,|el 9,a+}%QD }`1D2x "f*)VP;7 ~fK+) qSn~%>ɖ(bbbqg$˴~X@Y0P]!>.o|yN˘&vCa!?AڅHUSrg`>\%GUXy!LXc!4C0GJn|ɑs#٦{?bF_dʲzEWT ᯐq MI7`7 R",hcrDih'0/8z}kß-xL|F**r3}&=]홱+&%eKe9}!ZDl®$m%d:FTl^hcۅٓ@>#T)2;\8LD%.|á^h!ځ=bV8IN] b߉'$繆,`JXJx$LTDu͟? kfCoq˖D 9, 'k'# k 0:,Cu/%< *eE]{v?:Bvg}1b/+c$ϳFx)%ƙH>'o/6&_HjE趬RZt ӊ:OAL!V,ᆟ+. ԫ @v3IOE5lXgna^(qWHl W!0sSf\_KӨ$(b碻hK:nTȑ!]5(ALEᙱz3ps;@g|+Bu`Wjt6fBnrhp.Ur- 8ś&60OeӢ~< \*9~K=P"iC)0mna ?tg[۵XA[l/ND l8^%y.\FMʇ uqa^J!?@5FԃzGGGO={8itخ2 hX@+UR3@ucKKYX;%KYh.Bj-!!дT%vI.ӮZYkR~"wlzu/o Bd啎ܶT vc/|"lJGNI UL{9|>BރF A ')-+FH,Lz9~fՀhk.k8)^OmѸ T&/缪aP*ُCs*V&oAՓ|U5`Bv}Ü:.Iydw(>`U]y?4Ĩ?ה2Oۈ{m-,>@&eCIz(ies6=_3ƙK]kT"(?-^n~ӆg2E40>V$%;_«..GpH!v𔢬 Pn+}eWFBÝa쭗y=;)ǡZGN:fKj#<&~~ǩ20OGz:*\Bc[fٟS_I@*]B{U;yq{2Inp:MnUL|WPi4.,QRkT,\9Ol|-p<1˅_+)Yn׿.ƕT)3 /H.mFr! H>D87IEda#}$) J[VcEL 'm5G~#oÀ? Vu8X[Sՠ"y]ג2ˢ餰9h#r+#EYٍE>mV &b RebV&5TOz3, Aat#t646/&F_ހ;6web䂞)rѬy`iO K:Gt˫^S)o_[ꂢ^:6aynD9f N-D4'h[1К|@'BjU=~ۀGHxpOqkF,ElC8y&8s w:=6`T1y1Ö-mf 1DWhD,[Nb BREꙑdqpףcrp/|؇Tmۈ`^󺐔^VV@iS]U":!j5}v lie&AS2$F^GkT7ǀ늍yk,"lH5_?0]y _GTPPk C:ݭ/tAx. M"7 TsiAye)ߴYQI_U3'Vog[s3j$\ߐPtO|6wv𕇁Zkٍ{#3м,zWD9 6„}KkXbhÍ64Y|ҡ0  KMԡ (u,RTȐQQh޺NІrKKC5WvRr0 tA鋬=n(ѷ3Eh̬9a3 Px@S{Qk04Kʳ3ܰoa~k@ ʭ.q]Q%u_L kӭ=D/jm3Ifۢ;-E@\EQcp<(Hhh6cqtt4 qx!42hqmXJocģ?*6!>k V_pQdA&MwdF^$e Ob(c 8b@-`u%7.-B^b~.t5v,Fmv< *% ;sؿfacD^Cb+JΎ\ q#.J <-m;n-E,79$i ?uMIߝ˻JiuHHUg3wAvM':y"<#s~#@Ux߈"ow-0ԵR^ U2  ;qy:LYD؛,{08^5</N!};&D`ta/WG_`&য}Ӌ@?(/XF𼆓~X薱-JD_f~)J[f$1;ݞ0OR!4-h# E'@zʾZQ_4$;(Hh|=PȪ=}:})jG18y#x2i#v醚Nfh3Dه胻5 n ?[H@7h^fҜ,W C/ê?bLT[͎Ϧ w/ ~Axc)N=]~v"0"Ўfr^䱒M 9̴QtZFs^ #BM8߅}%aQtItmr#4 ɎYl5mG ʯZKr؝ȗ |]Tӑ䵠M @qlih2C}j`:.8J`UءMП 5d8k qс,~O?1|K:5:ێ|s`+R0^h٥.JDg"kȨG|:!m[n$?t{ycFuuxPy#wbDuYHܥoHr߲g)Z;[8 ~;Oŵ촵Kȱ乣.ذjKߟV}zk= TլŃ\T ?Y0GU:+F] | n(\8Y-ǻFXY9˒a te(娕"X#~#+pW~ R:|.T2`@2X.=Wbߞ @2G2BmSr"TZP!Vh̒w㳴ʑo Ұ * G\dC)dJAp 바uzK5n,բ}[H+IX-*$}~j5}"^ۅvt$}yxmjۨD@o89t;>e#7v6iFoײonP~?Un늤%[[ML`&*pnyϯ4߭Hs/$)r" p<7!,7~Y!vm74߈Q> D-r;h}_;@@m= !V]$tO ;t3ِƜ!Sd}82TZMq!:uv)$J񾮙 g\_>-Rh_H(i~\\)݋s>5'ү~X(pklLMLޣAS]-cgE][ֺZY1x=t#TYF2DJDt7mtQ.Qx`W }~XlSť}_}УP8JJsKl_+.}q * 9A5LM'b7DC6٬[1%\1K]#Яj* 5"̥H5fcz4*53<$+l- <5\$bqow  >۱LL aHjq^ 2~/CcV0Tis7?f"՟s$;oFGPuGg3H< j jӗ2|,V^6|kNfpVZŽ~ wceKl⌜|M+q{ʰ|HQwZ|>t99REJpttJ.],2f @ɭ")zGYJB;|Q $k=2V7z TEVڥTnr{QƩllb&|LMB*c\%=z=v<Ӱ8^1Z%@2PZ4e?{6{,گzE2vbԥI03y[WA񷎖tձI+uZa!Igq\~lhF)aV<5׫7)1͖p-%dzV^: r\&uU 6JVPWO*%׷Kiᶁ'zԪ'$e#/ZRar.A,UKv@d)a-˓sEM1OBiBD.x;o.c(U0lh5n,=K(&*X).@ ܅]OHw0]gL }PAt>lOb,.\|z8v -o[ Uljth YiYADosI[䮚caFa!Kb"Qcb}U$+p SG/Ѫ Vl ӭ,#8fƉ5<$M:L@I ,HG_*#9ۯMs2_QޚLhz0Y}0 DV_1IiQ[VbyMOo{4-]uR.mrpz `(vTR7#c 1,?\-rkH`!8wwҠ!qW09* cF ,9T@yyΒQ+1#3$!4WWNȑ֪:'!DiVG#J' Xk@'-}S6VgXwM 'Hv@FBy7ҥoZ>6pVŒqz&:$z-GF(oW%>KF_7>u~Q€aE5N/K:cW6袨xX{\BkG+Fc.;1KR*@tKQK}+LÇCgr;A4ϻOҫFСO[GmV]o)7Ww5"Н/n!)=(kYf: >J]6{7k?GFʎϼMyCw@8n3A'ZD=ceXd{ߟ.Lϴ.&`@Kēض6w-,W)ϟLRmxDJO єf!Yg㞯DfuŎgAQu 5]p!́M`MGG{k\BDNN1`fݐ磪Dcngnm#̖mN^d&)ѧ e Y&9 8FvU{΂oo,he_.١M!%iv3(g*MKw:Kf!dԣ.\UV)DpCV&şTq<] cxqNC }7ފ*0%zk/$BLE䛾Q$9S$xN?aMkspKmqߗGdYt˶NYXA! =e2PƬU0ᯮC6 =SorpE1 …r jIn+.c5p_.)REGik&ḯl3Ds@\2,U#;@y5WhOv hcῐ+xߒnKbYĸn%f,:MnhD|K^SNsk9,WN4ٸB`tiKPjlrs=Dd*ѻB.-'D=Y^(ψɕ~yN,$EOd% 紵a9vf / }-{tH#];W#kc F!|֜^ b'zqAU4|j *HmR"X:0sBsA셁GY-l4nyf"htêUV#oxaX y؍_1?֗їTT-P)VļQ{l֢8%|rˠ7?EܺdzNݨh-‰qyӲI `1o y_¦z'5KDv^U4Up?YҒs&勫` ~>^~8k?yKUAl;kA*wd'ḧ́(OڍoߴB`E ǫ8m{-0o7]ሤ|( ,ҵ3LH7Ec5Mx}x@+!`r1Jx'!2Tք3cq}IjMjQ'6#~`([YR W-}9F1M~;tAM5rL) $G$޹Y&" [ZHc eE!T n} ,Z9*1v+ybTH_h=g<0zwI3PF|OX YF)()@O=+j#x`gk !\1aڊZ!)j#w(T^)Pln ȫ"eVzm< {56kHElQ6h?^¯XC¤]1b0A(ͨw#;c@wji҅2Ov2삗Z}<$V3IZEB+F.{] $.{(Y7W` d-sīX7 [,/zxF ҐT *>~D$ ]LX}"5 ڦsLX }#$Sj_{häbKx#L:e/nt[Y4iM{r-jJ/ާ0e~NEq>HS5^`FPÃ7$/,AM<"=Qv7Q.ʙ>؄+uIJE -Jvr,J[|ozIXǘ "WbGUӂ( mيϫxAHIo7!|SPu*3ڨ^4c/F5,5qSvZi Q7ԟ$mؿ,j5Jj Ig{4̮3 S"*׸<^XTӤo/Zzxlz|jZhK`jr 6,l굳+-$ʺ#oWCSg,Śmxfh)3AfHs%C&D$L {7gGS&7`ÈbG,U c78u?q1q!O}Uz%{TOAR_] b.iE7Jtu3i1*+daM)vB.i]J|C>sK&Jl9+f3o|y' )9*Xt_V+*pEKܲ{)\k9bzٛ1.QSNE>&^$kh}q׈ #`AfsJa%&Y+3wȝ:tr~ ] ha#%mth];&,IɼryXt\/{K]HbTa-_Mei#L[዗wlٯQ:,؈L(t+m\3̀h S;wT:6~MKڕ˒>]m A}7?놧%I1)5_GisKhfl( 4 $VJ 쏚ѿL%#){QhB,wi Dy *(]1Pcy' >/͗O_!KgSVԷ2=@DW.uB7 KȜYm̳;(A^$1Q(+9`05Q4V V|bUqxH_@*y<2^ XHhKR_ھ{+:blƛ65).4CK 69Ck*޸~xSQ_R ,C=cGMqu_MhBVrMy l.YQAW̳[J\qRa7Usl5e%iD F0H62 9 h1wf*qW[y֗AҦk b",}ݘc"7LC&H/Azbj+&f"nĽxݓ7ǧYǎ)tj>C8 Ov$Dۇ;io)VkB$\!_v^ ϟ--7~./*doN| ' b{n"R4`-DŽP\td&56BuɪNq8:6yc.5t&LfT!!Q?Q!s1lFK[U}RCz ~"⅂L>KlڈܿI=z)]/cT.!MArcߦͅ |!!&-tpZvsiz+')zŢӚ=~'ÏNCU,=?pRPoK {XWCEBX/?] |?Yp]ݹ2mOSR=fw$aO&NxYi}Mi"2UVL p7P8jj/8]BC6)75*TmEg(Ji+ԧC$|óܒ23M7{@#qh6P9VV[ˤ$~gL,jů]d4>v0 O;Q2 $*.-Re"TgXl֛U  Czbh,WSc{U:]r_.p sOF_di^/%l9ٴh<ؓ!|ظgbQ۪ KfV~1onP#(  U2nNECr9ȭ_&\\~ &bEt37ƘG$oa ctfp"#cm! FxT 0h[1ʚR,BٌPtHkΫ ]N7XYtZV|3*yO1EV*/DKPH5PY&XM<);;iGJl|d|vW.WҩGN1=*!itt!4,ܯ59vei\CՉO`u:: fpaYǗ#TXb*#nd_[?[*uw`qGrlq沾OxFð#` 0""n)z1&u4Q +L }pPrW}oq8ݻsSGlg?Kﻊ4Iwpk}¿庝tj?:b<]@!iU3`G+`l+Fu(,Qy=5i/4^.1̈O9?L9rאT? Y߭nW ՑC@Ҩ399UO|m {d +fW8|9IT΢Q%8`_@W9 Yre`Y)<>Bl2z!,ˏb)R5OjwW!Oc-ԾWv2 #!zD\_9wp"5=`$@? 0##rK_9oDLJ^0YIf_8J)gF5帔 $vm _ t׮ k3:ɅNt\`i$+t[q,iyc$1|)cs>C鋐c9 2z N:MQOh, {nQm6--U4w>*Yq!A顟ho[;l,\GJnZ}|hެ62O ?Bɇӊ)ѩr6:cqvDE=9z sMԾ畮 I7=WpLRo0C-&TL(894t\= L8%moS͖2|'helWNQX}81\ۼNcʋ&U j8V!C员f6fLH 4Pt'AWwX!&[9D@v2n=GB0 ~TEpCsֺrStjЍ|φ.6SM"F @XA"Umz. 3J/&+&0iGmvkIs+6)?fZˍyS DȎlu}ö́p35idr`@5]mBL'ˆvn6"6U9q5VI(ViViKT`J$dY/0]k\O kmY=l-;j|od̑p CDJSzlP7Tbfeu& 5b؜GӦ FDs8HحS/^LvWf0 u4$BBݙa/~\B&K>BKu$"*\l-}>hdk%FE 1O7D94drRbR>}*^Щ#xA QZe4 bg<0P8!`1Gb΋Puqv ~~O1+S<)hD`9(̦!V>}yut3}C2zy bY۞)qRRjԩ%U3 Cx/z&rjjXEwPg4TwTgw#4CMԾ mzҮ#QQDZ@q!_i>E,„ J!>ꚈsMLTЖ/Q0X0%G޼4Ŏ?/ǣ۽57>2"emܤ~ʮٰKl4PyӔQ~L3g]/![Z7 3d"]qkJ+UA 5QMx?~=҆e*WEx ǞDv뺚[@*z())h6F\HL]a>mE}mxc˰+v *$;zc ݿඒHͯl!=dUY&sO`TE5D@9`us9\m.0ly+ACjgyҊ2μYL[ǫcZ+_aKTk=!i] l'Qc Bԥ{FLG  Ŗ{iΘ'3Mҡ?U2H2'.$wdY_7&?x5<36{2OD_1mxQЎ2>܊2rbrdzԪ'w9 fQR"ZH/`M[E'tZBR"rպ?&͉B;}nߗyMӅ,uMZ4Ǎ3Gnrqg\)þ~g,V{5cb\w{ɤZ7h1bScC{Uf2'ljkQ#._nP|y-p15BCWO<س1[IF7S<~W`da%R hΤ/ZxbufuN^&xq |Lo"[ L99MGћyV0/ghacXqR dFZL4,^ױXGc?V㿈GhyMMWܵV5LZvyo2Gݼ3XzEZ26`m9K,(aAhC(^7%mXߛ$]O^aґ31Aҋ(s1+qD-_wp"+: f`7}O'o9̿:~X@WS)ODR`Di?,I<|͢Ǻe+~n&ڸ>eU3&s9 (8st`noT >Uz]%sLUwzepAB.hzzZ1mjDVzaTTY@Ӹ#{hV[b;243W_`촬-`BYDBϜ8!,e¦G+ txr#Cl7}vqeT'WʢWTC3j0ĎH`lD?Z s[ noɵ]wKf5=Gc4ʲ9=ّwwi,MWŘZs/9DW ̢k)xse_NˤzOd]_➩P>o]|IMɽFVwM^DqhXI JFZsTv*[ e6[RH J$w5A||6 1V s7blK{1̣ӭȘfiGviާ8!SV |}Zw֮h_` >D}F/n,_vHLtI&.Vuɣdjf'M Adum(A Vjjsp jRL % uT'q voSU޽=s 6^tHw|Ǭ[J=$s 1N_sKH(enx(r,jrsp({;0VAYKw磑JLLa'I&}&h1v64 JԳP~'猒 F?~lW+1ut%0!V?xA.囝7VW ґ5k .;,5" S\YG̑Χ݋2'e* $ŖVvQƈ!Pl,! X`J0%7`ʝD$mD ?H`ZHiPB:9gmȀ'[P+f*WCy ]ЈHpƃ5Y,Ox4ś "!]A^ٛoz2?QbYx\`>_F !YԼHE}׾7!hjz|pmtnxIsӰ{U0\.g<3x_Qǹou.I2',lJ- `CAAd" :Q2`:l}1';ZW-NS eXBT:pW3 e4=$c©IS:\RkMՇSv"S~QuY\4p o{V0b*.l= Ռ2iX1)<3R\HOEHP(n 6'2(#tA-5^ASyfhjb{Vzze~g7;*V ;bvYVd(hk S չT^-ISM8md"}2.t6wO |V] Bb^ =HԜuu#yZFiU|N.~qH <k,\sÕ !rI'- Ig)@+j˱%l+9ߝF[of_gnuU~ ߯t{ٌ("hX8-Ymi )G+InBՏr(O1yonCWbЅ^/}Q"Op+@#Tc/PSF:'|ڳ1ו-,1 xgs}7*|6>0P5@)i4{E@Y:-z "*{׺E )\+4n"v2} z Pdy1@Nf܍;a&h3ebD@Ih֚91Űw6 ϏIȑkA~O{|7LL֎ո@tI[*މc fc5# 1N2SYFQG78= ^1C;*`i&/ B(kAe_{,Q*Vfͺ+\"Q!E= j2avNg}LXŋT * eA,<-t5ɣ/Wf!Ϙӄ?MBK=`8aesB%PE .\%\@ |c8ZTdLs.ecף;jM$ytwn\`"iLGkOxnb^' opE$.(Gns8keLU]>xg()i_ s Ym U +Ui$+*ZS)O\vpQ \fpx>Hr+" Όeo*ɊůQ 6u# YAD/A$.;%.>pl0v%10bpӭDTd:)LX(v1ON]?1^߇{h OY7)٢+ ŕ! /`hJ:] ;ERر3mz[n73|¯ ,iD1mW}B:ŝa&5Keݾ(ꐁ)[PxӎzV3HWڣmxˮو2/96}H0gZP}Z +V6'/5mL㇢NN*P'im| v9bJ{<,-]1+GNԭoNo{͊W NG ̑1=@pςM&k,#{kK[%!k=ꡲj4{b޾]2s ˸>lB(m lb G{[{;]9WD0"=!sB2|zeIb粬 K=.F8SZ M3~2LىteE6GGЌ5Bz̓)ړyRG5+r["k.`׋!K!BB/ +I9 k1}u.s:;Zҁ/>p &2`JU Ū*sm+ q`9s^Fvk-eY_ixmvs&ćحթF 2B{YyyE ?.y1Ųͬ5MQږ}\"~V m.QV^{#[:`pw| 4J>}LtL)pqy.!MJxHLVu.pHF:F[Bv]ui|{K, l-$+_ѯn Y!<](=65}>6/Fƍ6Rà4[HEG(Sߙk2sWFflecKABِM2y`i]Rt"A:IXK*[.YXbUgR5;3*Dw1>'\ϰώ-G7,F?m]ڐCF_R@fн{e(Vh"<oug<0$'\ݘXIMug.x%l__{Ƽ>p ]:zyq4fS n%|tdUr1'fi)@ OP?;5,G%JJS1P'j,14Mߣʎ~2*'h@TR5tpм.R% "uhΦ?lz  1k_M9ԏg_&^TOߒ,9NkY}eCe!30}lych$2Gn- U;: )wmVA,_})7ÌY.e,ܒ m뫧\ &o9f}M*SQK Dj+oN/}9r D##b]0dK3yǾ-;%I$TEo=MWjyԋv+X[ vBtiQ.\.6E?6u3K-w9. uiLɲ'ƦL\JN"I eeБ* < G{*xtn~eOoV;²=ā@aXe笃@YGں}HU;"a#t|CU`roj'gX_qnB}@5;0:lcy{ic+9Z=qG$*9Sepn;f}q52DJP}[ȃ; eJr< $t|>|r-l) 88 .gD8\ {U&¹U'a)rewGvM 'KF_q0'tn&Ɋ:\)V\H'P1rH;-T%4cxM0NbcQ/WjX89hi 9)'6UBL l@RpasR5Ō_Mߩ )LxCQϕsvXf2[ڕ,oDt+0iq|ɏ&f`JVSg\:[[~Uΰvr6z8ĴaR%o^!#{ȓzrxmVQӴsT 7"|7'Q?|%FG7)=?ަ=ǚnLhM^Hxxz/Y70KzX'\#H;8B\o;R7+2Be25𙪉8 \7u*)66ޥ\.* b+u&o(-*r.oM=oĄV,z2QF lau%3&8,wH xJ4lW3^9|q4";1YFP^0 B byW&ڐN;xMk`DUkBVq0?%Eբ8aq1OʹڪKJE3ۺ"s62B۝C#N9Qۛ--ǁƴt5=Ol{~CA)»f/S: xH,LRI(')b0dƚlK4{^f6X&BSˏr! AK"&$i%9}4nŒDYR 4Mwm02}0K/p)X#K ѡAW.iT4>Q J.V༔fpSHjUؿfDˍhiE~/~ ƪ2g7qY,H ˁѨ-НˏⷬjBo={fe6r ]\R, mcsZD lK# X,&ehA|*ggp# t\!l_x;ˎ_0ڙ%<م= 2U~kxsG3i} Q T5P)Vb3FH!5n9j/ >icB4ΫU s敗`F(`WAuKw=]N (lVSxFC";桪|\V1sz @Vq  蒕 {S:,@1$m+RX>|tSl[w0мbkc=by|{m4?[ n!GןXWb8i3Lot@@O7,YAQ  |`+uHuJn3ӉtZAl0jReA l\Y]$3|/8DE=^N6=Ɋj}`uOyʡ"ZSh7?U(G>F3UlntqS7=ON&=!,b\=@iґ^/S2sIA<5s".1y*䪣Ϋo!Bbr}ݢ#)ۦaђd 6üэNЦhSVM3=IrfpdU`!!`;5VgifNf#HlŸ+Ahfރ%Jhy$J)J`oT%㖈ő_*Iad}Sz eWM15 !aNSXI1K,czYaV$ KhTQvL.к>?=Ϟt2Ƨg.BU$qƣt9}^JB5f9V9Pe?i=vAHqD{i))84FB\%oik%LI}UjfU2Z)^.t!4G5fTqv8riMfqa>&0׶BMW<)K5~ˏzpc: XoE#Bir Y4; ''L[v`>Hv$:)/ VVzJk1X3]*v81MeU\V _>H$bhdثQ} 2w)@*gښsgl)Ə]Ws덃KEU]񍙼SZñR92#$)BWz &?c٩ a'&'sS{֟aQH[Ĝ*%՟+Bm/4K@c488==z#}(6 GF%yju]qHMyiQ%mXCYGv+HXa)|~-oNtL?N;Fۧ7&QRĿX4-@ouѦ%{)1!@֧- @ʶcqWEYF(1 N&V8t]+T=%A=^#hmc{]%dot4Bߢ;f.4Z#Sr&KUbS|Dܠv37xL&T &=~{VUmL`^M=FCPrW q-8TG0'q.觸Nq<,)F0/A]C$I =5FMwz?AU,ʭbU  0_L<vi@t"1"RtX Տݰ"Mz]taAZdw)}]Y0m: \`Sx,>aSo6fj!pi[ H"svztYEE! e6cpd2"⻄N׷,'8 j|U"T(K|RB"pq[/G4eV5t@1Fޟn6rSsxT /A ՃyO7qNQJ9[l[^Fz'EC;DqVrar"i/N*!rCq c'y6Bι7OpzC/H&S+Pz]fyi Ŏ與x&AA׬}khUKO+lnҦ]=_aBQx1`EKV8y|:`.#M+%%8>\Z hӏn.+NMbhr Њy=H{I8_,1,tlj}*DU88G[G0=m/ ַRAY1배H.Orf#CnBHեj,7%!&ތπz8MO y}A{:d Uޠ!Q,VKCI@Q i.*j%ƙ"Fk;:ibm n:sHu=S q&['3! Xli"9,V|HW0%|g5:rރ4+404I|fY:RH#9v G1XZTVcgƱx=H Y M*y464!]]w2n]MaB|!Romqقi ]죠7tE%0@f^ !'<4.BoG+~|GV [ƉcQ$7YjV-~1\VsTĬqkJIvqZڿ̓M*vL~m? ht<6&s_ŲկIhO? V|(O#3n]XW\0JO560^H9PFDVͦV tioV{tIlkZ DYtm*"{T!.K\cyyDr}8JQkQ!n2e %5R=]0ʞx<'d)f%a%CLCBơE"b(wULg.,날eA^iR MsGg6mrgKefQ{IzFj,2>%MW,sTso_˾qy-ڗ:HbU!2nï5 sQ߂B9vާAi6m] -87dU}k&N nVZ]k`{&󎱨:V<~a$(^9m;Lvp@爃,R e:Xj% 4R+Գ垴ԧLʓᷞ8?>E/+sG߿igfor0_x1M7lB /Λi 76V-)i'kzW" b`0-映'O7 ,C+e0qcqXa)ld:Ůh.ݓ?ig1;g*"ϵ3mg67}$Ϸp j)-PW&Y1(:W2{cM;Jxhً~40: xNE^9XҊWMQSm1LArW;="{B!Zxm>ƋlZ*=STO~=\ar"'yzhuy֘'!E8(uɚԆþ|swW5xY%O^+¼Ta[F|/^'b{dbhc^÷LPubD @t'FdF4uYyA:#`Mf@viZҋOyNb6[|PKL9%zk7żcdɰuB~+`D៲f QcgjŃQDfs.^ 4g" d>)o’fe`GyH,_c8 #զη)*1zq"+F F=yH>+ϛ9-2OhӅ23#*l{q- q[>DLr@s)(g) =$](R$et9*|% MdzfO oY uIbP*+aj)Hi#&* q947rأf$/ &M&!"]C&_!CD-E})Y^ڜx:tf`Ez !(}Hk:]ؿZ5^ID. Ԃu!!ff}EG!:B*K…$+cł_G&cD/C\m!lϐ";[U^OL^W100yaHos}ώBWFrjFM/~o;aq\S(Ũ[uvh"{󘅺Njx!f6F$<.U H=jHJ@a.ʿrtŇiec]KjmZ6z(\_&d L@Sai%be"Q ]: Pe|cW8wC ƗҬ62)c=ܸpBuC S X6i'hONT_+,>A!FZcW&P`,%eeCј*5$(nwv@UDV¯Gd(=Mr}p!tqܩk‡f6'("N6Qܳn7^͙OG\sUlj u9מ[@ ;fk>eHn8S#,k0l #25d<!0Tbb ԘDei J,1H=B{;9Fq^b nAPov1FA/Sv+#} pUچ gLe֋|e"h,ܵO-I#SLe)\ɩR:VQW!v;$~ #ȹ S$ U/O)֓:Υ3rQ_?vxa>őN$k`x.W+2lk` &;cuN~ >dǮZkppZUN5n0VKO#;/GUv[aaxKKF9a2T$mm%1s_T}G'xWu^T6Fܓ7}!(- c]ɛ5_-ǂ: SBV́1;&7!QE'j0R+Z3]~HvlKcAa[ O`/ `!/ѡ*űj(88=q+/^mvdQ;Ν eTQf4L•ў&㉜ V^XkDZP[L38oB8jGnuy)苮1rU%MNˆUH|}qZҌi|e&B  qcTw׉gί#4)@ycJ@+ .>v tWmMTZK+oD꿺bS<`|4u ?I!ѧRx?z@t]SbZc uv9HI0sK2fYmN;?hF_02`6sE1Zӏ.zK +bBeo6 Fo <{p/@eċ,9)il8ToX,3ZccbAPz|YLݴQ$8}\%[8O(ظڦR`D8f{$lp OvhnVl.{xT:@1X1֦훠zgHʽ {rLNI9۾- Qx&b}jy$| Q([\% '|rj-% z}$h/S>Yj0u8)jʄ`x Pߑd$"W[ت`oL?˻ ͷ"ȨrFu{bT$Tjn>wa '.oN9ĝx>(XT-{ZgZN`2b`]턈%lسv(vPP)&Ie8I,]ʬ}Neb[y\yM[#e7O4銦AG)-@X.!!0[_ӜS}< ;pF3Ov.,byŒ 2o#Z3%FZ5t9HmZnN)]RX pEF zTY^`Gي(oԟNƔt.sMF* `CpM4J$S7 3V9`rhF5B |j,7;-0ٓ 2e^O7 ]v8*5`_ɕK76uIiiTʋ;=Vve0mYJ}@x1%F7&"dA -nmr0%P捦t"''ݚZK,"?2Sdj+ Wvl Khcn: = Um kyh,s_L&68- ,ZQ/^~yMЏ[kޕ/siOeT!m);ƈ*]<'4F"=6Yf%@=B {.;ʴaAkftpmpD!V9w@@% L¬~Uiv7ʲ`IcH$Ȫt1=H.+\b9/'v"q7ݹ-@3{pSGMCz}yt!N/@$5<*wt0dB0Q]#z󁚭 _FĀavN,6 j߀wDD;PE|tJe>]m&+"$K+ݕw X-:6O5RO=I<| } -GnC2sFR6} +32Էl"=qjjB4ew vjqhTgrqC%W -f½W/Vcvh`3[BܳVG؟ q~\Yg5Une4oz``',}/#Q C[^/ ޹gĞKۼή= [SpefA#tMޫh ՇF pGoA_NSjeZ_~j* > >ZS$ SUR*B3R0J\)3_͓31tQbC 0ՐGiJ0`)_*VPqip|K2 o5K&D>9^֘HF9`YCO+ŗlcspl`BaC7[Q\$jו<וOaf:)pk E%Zז둙K=T9 y, Bg @qUqd>݉E @ >;K7S4; N1&k#U|Rhڗ& ~IΙWzvV#F!zKUacL G0nf}y$6g-fnsƗ| ХN嵍TjOا6^^A`1M*_*HZabHN?pzfb|#GpZ;Š,kNѦ >4rUSz*?|i,7Ko8w Y_\~( %R8@X` {4KDʟ2>\3+Wŀ){3 ͭM_*ÅOm".Di1<)-.}߉l-_"Q8¥"ݜ0jr|2w-yV+OЅ>E:R;͎]AS2MsHj̛gOѫU/cGӎ}~5gøO:HmTWS$GrVXi0jF跞m]x4pgnkhfAcSG!4}ސU]%iFgK}ʞ6 #ٽ\ɡŜȃ}($km>TTǿWT,@;|~`ZVW\ >>㨏u35s%}e?^i$sF_7xr6A|0|PԠZx[ؿe+JNȬ܀q@c؅yv9_{!|F'HR\AiSd 0-=!Ò鉉.kmئ~l`7m_ 0 t)Elڝ蹊lR2XiPD۬IS%XFo 7좕dtG"5~תoXt0ΒR4 btɨ@s" nv]~Eu0 d!Rrt~P&?1gPt3C: $/hW)Fﴲ4fݙ,YYD\)8:F l(pVьT Ytv)vV:4vCiPG}^-l ' 'k/DՏ i'b{j54ݮ [;UMz2`$ S"cY[h_U>C,Phhavrcwc9X$8\āj)y8?l|l9+/z1`L~5nPL6"L~z _gEr=7O~]sO(Xgn*c/9eEZmvXv۸m>b0Dz3DW cU#V;jo[~hUe_wbK;H;? !+<نD"Uc<ɗYB[XHM [w67 sA6G#m?b-^QX7XBuvW_"]-ŰD>0 h@Ku DʬZ& ]1sm A }Cw.Z6Ko(f8?@1ҵ,}]E[}I`E$lsڼpt\/ caKϾKK]L+Ap2Rp8Ei\$Κ+\K]&2Eòo^+ )n(^.!U#OX8PLGnR,f3$ޚevJ T(<.ʚD"w?oZpm%pۈ?jY?F*)'R+fv?Q%ǫmh)MۜZFd:h2nNZfLC1ȓdʀiӹ,>w>oZVg /_һAč$ B͵B'xFsqWJ`Br^;~xj߫ۉ"k¸\; ׼82aٗv D}X{H1}2T@Jdtk=Bgdo)OSV)~`k7 H@Y$:pslߪ~EӉkIMӼwenSnS&9Ě3 P*Ǟ!*~[W*VL+n]GvJk isYELVz U# N#u҈JiDZ|=[^.0ϸHQP';q&R ";(k2McO,|t ?w$.Bsݺo JCl5(>{SY.tPy]dJ#+jljJr=ԩ'41L-&K"V [1 ycը/RY x ;jCnNwV 9~Q1m[!5^@nU:&%8ϛMZGs|T4-:Ob: z%CptCRb! ¼Y iweőK&" `ϕG VΙ:sX"qɊ~]iPx(2"u=.>eڬVrO wIpDY'UQ8ޠ4`gyw>J<9}D4MZ c]Pb %/8ȅVʶQ[5 oً5&0wj+9d 32 w“]Y_; \EB8ZeKQJ[Gaɫ5I+.OVzyU0H-A$5$PZ:r *44wN e}Kq1IYݼn)jQy ʒ$E0Q*7#tT2gy9ab1!8J6h6: w>C2lIPe:08Xm[C:fg㝗φZ4jߘ I29CA60ւ{ y1hzʷeVv0_OR^jdy`63oI8Aizx(oxT HuS߃64L8./x=TCRrP%ʢ]JxǗwkGYG5ӹUrVA^@Y;τ9^;9ZO(\hkWl46sR&v噢TRzĘSK(QߣPH5[Wju處ж\VI Q5SFYߒ;2]ru[C{lN>Y%l}኏6"v̀OPo9%D `bÙ)}- 7 جaڷ ye}+o~ω=^ 2֓ySpUgܚd1}UkhjLv\/ 5FoƑƺ jvd?iLi &KtlC3:Kr݇id TOu&Z5t :x3;ЂϜ:ROъUxtc#gyxG 2ZGz 5M8)F*6_SlgO@ѼVfr2bGi#-Vy~%O{ ߝ/24JyrBuNo,gOߛ?_u6S؀]F=C,>б3ѡbר5YC~j"3;k 6]IzU)YpiHqՍd2~rjVrzF,@=-+AwjI1^C0B&( ?@bwuVITO\6.䑌-2F mNj}BhPD[i'$WT6kQNMQ-Y-=× %V=Awx[]1 *jwzaDţc6'=oq>^i;of7c=0!p9YѱWqt,б!r#Wuc$CNq3 kd&Qg:!49ڥ#= n矹K%Fj"n+elڔKwؓ[:N>[DՅsIhdkJ#_͞`:N e೽‰*.+M'8,,ϧ@\3#nEUd|jw^[D Z3)YE7,d m1ŻT%UX+->@PnÊC/y@H!_?to`DhZTT@qHI*Ҩ'q3U͸dU7ܘ*D$]iJs)V&%9F V nt'O 08qI;SWts.~M['kNr1`b؛7mZ!gd?@`Rpf7!jQX.Z$oJsHGz9@ zM n<(>Z5!jG.$uk(!]*Ik<֦x/.6]s*jkr1kNեTDMMVoY};s嵚&\K4&[(=9o_o>P}3ߡD\ƞ䟽~},-{m+ Te7zkڳ uDT*5Y-9k n"^05%4wU%}AoGfjb+IǴp Fph.9ƒf]+[jH#E ʫ[TcS%Q~P[ ~Bdўy٪I(pUKf#+/^C ,*KZ!|dc0;e <,*ktC3*s"b@{ ї4M't+^( s&V :4Dښeq * ~`*"|wPV?mԃAgY;xv$Sdق75)!F?͉#RM_%|杠 jp8+ 7)6?auWh1^{PB+}$gmOڣgVh*JA2.Q*^茉̀-|!1;vv:O}qQd^(وݜ|Z@ǮU*DF!̼.*EfX{Qul 9 ֭ҖOfcooҢ]@ Aez(45yymAbًnU<׃JG-ɑaIqbon~v-3Ǭ;A?hN90}c\ oɄb;afG>PBU-\E395ڳ:8 1cW{_oP5$Q AIT+*[{\HV>T4dVL|cyTUՃ70Xc/<_B$Xmz|W-D$8_*/JEc>ɡxC^q(eJ8˟D7#,F)-Lym'(S|r{.T, ;ٜڽ )=dɲP(gϿM`(Y+ċ.%/Z5d !F#0 (m6/";;k|["&tF?{,,3%Zk«"|y}}11((k>2I}`l WU_M܏Ͳks8%>_=n*}YtOt0Y<~I?d^4o^ ],0 $|N\*$n`#+b,*rWpy+TaNƒ W&UR :0b˽4qc:Ń%cҨI<Ky'(=^8~_k% ^]9IwUsݞ&ݞHDF䑺rxG>˟^̵$sKߊ,Y_W};;6;,w}CoxUz*w|mόPJ~ܗ0) @Ihc3EG7ֲ~:U<;x-,\@ϼ.'̈́+ rݸޭz7[.hl.MpA_0߹ r* Xo+q42qe_uU V~? vxЗ&5C=Hdh{rZ5aE}DnW]W1nhhꊲ5N]ٓY`nt{Eɱ=C+'=cCrB}'l(7w$zEܼ #[cg(gm,޶"KS \Ƃ;)’:>tbv,0RwKmmf`g^q(g6}h͍?pcf<;F.@\[oLWDϓSwrH{}YʳѓApFurKAT:s)uu7@?aHڤ}쏈vQ^W1TV?PC8 ?K'ae`7E™< GEc 7u/؃ fkN$ڷsזNW_0˼@Ir,i{ֿ([wmBj ?W# !M;$p7u2O7DWe'ʼnaO3q"gC *s<\ST8sɅza;zQ`QO &ψw[o$N RV^k}[ >=/WV)z-~ʬ5lz_M>kbvRqI):F#byC;+?$.k \$_ԗoY>T/ PGˮɥ؛ᘂFqL36Jr"Q(חv, sCLk}VVqϘ:ޙdbIxRq16PͪDFU'3S'BڤF6 xTOj?q i W{B+ ͬd0twCBi5F/ܞ깥m\6*.!JE;@7>; J]v 6J`_'n"Vm-Ffݕnʟg:v:cR0Vk%`^Fps߇ Z'^A@O#ǃL8<WBၲ/pPq.z#(Su}#@ôo-dw, [D8ͣ"8{7E6z? lAᅢz)+3AO<Ʊ}\*%m|iE*N_M}D4]N}'^9gᥝ@^_\^NUzU4 c.2Yj4DM)g~rQO,Sk4,b+ 84s!:.mlwL˝7e؊!xDDM۩%C!8Av*B򈿟4zlǛRLes@ _?ޖjH.:` kF&FUgNBݍ(24Aa:T]~Qf<1N8id#]MQ9T{{'^1(HFf n,c>c0a>yp?Ʃz %GqgYu;Sb˃>i%C|2f5ow+QuPu|ޒ`qmj.دVHV?:Ǧr<W`Zp̸KϲM6.:;`^ t˞Dy`sI 길wGZF<dnv$DQ桼F<(L"FpB/K2?͍a!C#dtܣA{I^yVnuBt {w0ۺ9g\9 kmH*Z՘tg-m>x:GPpes4`r1qEܫTc^yCg*ii?66kC%npxycZ'2V;7k|%^b;Hr%0m TX9hI}W(D>W891O \c`2q u;IF4ZɆꍯ~|cȗf@%*Ds$HҹAR] 6Rn٩8{`0 ;ֳyabvŷH}_iu"BUh^hV,!h :g%y+4ýl@zL{v|hi5פCܣhoXj9p epb7q6nBek_`Xׄ9*.QZ%mԣ ^^ TĬ v77Fz9HBs7̂cp͠']3k|-ѕs@eOPL%8nfL w*R&]&|kPwsTm+[Җт!S_[pja0 ߮iw!}-ttW4LF]^oվ3g{H4(!9## : ercFBj;*)6PQfF=4Χ-%ENyVF+ rDVYz5AhL=Yndĉ񦎞h $oi/|QelS109d 5Z