summaryrefslogtreecommitdiffstats
path: root/base/silent/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'base/silent/src/com')
-rw-r--r--base/silent/src/com/netscape/pkisilent/ConfigureCA.java1698
-rw-r--r--base/silent/src/com/netscape/pkisilent/ConfigureDRM.java1374
-rw-r--r--base/silent/src/com/netscape/pkisilent/ConfigureOCSP.java1181
-rw-r--r--base/silent/src/com/netscape/pkisilent/ConfigureRA.java881
-rw-r--r--base/silent/src/com/netscape/pkisilent/ConfigureSubCA.java1249
-rw-r--r--base/silent/src/com/netscape/pkisilent/ConfigureTKS.java1121
-rw-r--r--base/silent/src/com/netscape/pkisilent/ConfigureTPS.java1088
-rw-r--r--base/silent/src/com/netscape/pkisilent/PKISilent.java59
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/ArgParseException.java54
-rwxr-xr-xbase/silent/src/com/netscape/pkisilent/argparser/ArgParser.java2085
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/ArgParserTest.java1514
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/BooleanHolder.java54
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/CharHolder.java54
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/DoubleHolder.java54
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/FloatHolder.java54
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/IntHolder.java54
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/LongHolder.java54
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/ObjectHolder.java54
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/SimpleExample.java53
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/StringHolder.java54
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/StringScanException.java56
-rw-r--r--base/silent/src/com/netscape/pkisilent/argparser/StringScanner.java567
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/BaseState.java118
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/CMSConfig.java569
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/CMSLDAP.java609
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/CMSProperties.java679
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/CMSTask.java190
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/CertificateRecord.java44
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/ComCrypto.java767
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/Con2Agent.java318
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/DirEnroll.java470
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/ParseXML.java170
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/PostQuery.java141
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/Request.java1138
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/ServerInfo.java355
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/TestClient.java941
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/UserEnroll.java536
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/Utilities.java347
-rw-r--r--base/silent/src/com/netscape/pkisilent/common/checkRequest.java617
-rw-r--r--base/silent/src/com/netscape/pkisilent/http/CertSelection.java45
-rw-r--r--base/silent/src/com/netscape/pkisilent/http/HTMLDocument.java595
-rw-r--r--base/silent/src/com/netscape/pkisilent/http/HTTPClient.java1231
-rw-r--r--base/silent/src/com/netscape/pkisilent/http/HTTPResponse.java314
43 files changed, 23606 insertions, 0 deletions
diff --git a/base/silent/src/com/netscape/pkisilent/ConfigureCA.java b/base/silent/src/com/netscape/pkisilent/ConfigureCA.java
new file mode 100644
index 000000000..3c498febe
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/ConfigureCA.java
@@ -0,0 +1,1698 @@
+package com.netscape.pkisilent;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStreamReader;
+import java.io.PrintStream;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+
+import org.mozilla.jss.asn1.SEQUENCE;
+import org.mozilla.jss.pkcs12.AuthenticatedSafes;
+import org.mozilla.jss.pkcs12.PFX;
+
+import com.netscape.pkisilent.argparser.ArgParser;
+import com.netscape.pkisilent.argparser.StringHolder;
+import com.netscape.pkisilent.common.ComCrypto;
+import com.netscape.pkisilent.common.ParseXML;
+import com.netscape.pkisilent.http.HTTPClient;
+import com.netscape.pkisilent.http.HTTPResponse;
+import com.netscape.cmsutil.util.Utils;
+
+public class ConfigureCA {
+
+ // global constants
+ public static final String DEFAULT_KEY_TYPE = "RSA";
+ public static final String DEFAULT_KEY_SIZE = "2048";
+ public static final String DEFAULT_KEY_CURVENAME = "nistp256";
+ public static final String DEFAULT_KEY_ALGORITHM_RSA = "SHA256withRSA";
+ public static final String DEFAULT_KEY_ALGORITHM_ECC = "SHA256withEC";
+ public static final String SUCCESS = "success";
+ public static final String FAILURE = "failure";
+
+ // define global variables
+
+ public static HTTPClient hc = null;
+
+ public static String login_uri = "/ca/admin/console/config/login";
+ public static String wizard_uri = "/ca/admin/console/config/wizard";
+ public static String admin_uri = "/ca/admin/ca/getBySerial";
+ public static String pkcs12_uri = "/ca/admin/console/config/savepkcs12";
+ public static String sd_login_uri = "/ca/admin/ca/securityDomainLogin";
+ public static String sd_get_cookie_uri = "/ca/admin/ca/getCookie";
+
+ public static String cs_hostname = null;
+ public static String cs_port = null;
+ public static String client_certdb_dir = null;
+ public static String client_certdb_pwd = null;
+
+ public static String sd_hostname = null;
+ public static String sd_ssl_port = null;
+ public static String sd_agent_port = null;
+ public static String sd_admin_port = null;
+ public static String sd_admin_name = null;
+ public static String sd_admin_password = null;
+
+ // Login Panel
+ public static String pin = null;
+
+ public static String domain_name = null;
+
+ public static String admin_user = null;
+ public static String admin_email = null;
+ public static String admin_password = null;
+ public static String admin_serial_number = null;
+ public static String agent_name = null;
+
+ public static String ldap_host = null;
+ public static String ldap_port = null;
+ public static String bind_dn = null;
+ public static String bind_password = null;
+ public static String base_dn = null;
+ public static String db_name = null;
+ public static String secure_conn = null;
+ public static String remove_data = null;
+
+ public static String key_type = null;
+ public static String key_size = null;
+ public static String key_curvename = null;
+ public static String key_algorithm = null;
+ public static String signing_algorithm = null;
+
+ public static String signing_key_type = null;
+ public static String signing_key_size = null;
+ public static String signing_key_curvename = null;
+ public static String signing_signingalgorithm = null;
+
+ public static String ocsp_signing_key_type = null;
+ public static String ocsp_signing_key_size = null;
+ public static String ocsp_signing_key_curvename = null;
+ public static String ocsp_signing_signingalgorithm = null;
+
+ public static String subsystem_key_type = null;
+ public static String subsystem_key_size = null;
+ public static String subsystem_key_curvename = null;
+
+ public static String audit_signing_key_type = null;
+ public static String audit_signing_key_size = null;
+ public static String audit_signing_key_curvename = null;
+
+ public static String sslserver_key_type = null;
+ public static String sslserver_key_size = null;
+ public static String sslserver_key_curvename = null;
+
+ public static String token_name = null;
+ public static String token_pwd = null;
+
+ public static String agent_key_size = null;
+ public static String agent_key_type = null;
+ public static String agent_cert_subject = null;
+
+ public static String save_p12 = null;
+ public static String backup_pwd = null;
+ public static String backup_fname = null;
+
+ public static String ca_cert_name = null;
+ public static String ca_cert_req = null;
+ public static String ca_cert_pp = null;
+ public static String ca_cert_cert = null;
+
+ public static String ocsp_cert_name = null;
+ public static String ocsp_cert_req = null;
+ public static String ocsp_cert_pp = null;
+ public static String ocsp_cert_cert = null;
+
+ public static String server_cert_name = null;
+ public static String server_cert_req = null;
+ public static String server_cert_pp = null;
+ public static String server_cert_cert = null;
+
+ public static String ca_subsystem_cert_name = null;
+ public static String ca_subsystem_cert_req = null;
+ public static String ca_subsystem_cert_pp = null;
+ public static String ca_subsystem_cert_cert = null;
+
+ public static String ca_audit_signing_cert_name = null;
+ public static String ca_audit_signing_cert_req = null;
+ public static String ca_audit_signing_cert_pp = null;
+ public static String ca_audit_signing_cert_cert = null;
+
+ // names
+ public static String ca_sign_cert_subject_name = null;
+ public static String ca_subsystem_cert_subject_name = null;
+ public static String ca_ocsp_cert_subject_name = null;
+ public static String ca_server_cert_subject_name = null;
+ public static String ca_audit_signing_cert_subject_name = null;
+
+ public static String subsystem_name = null;
+
+ public static String external_ca = null;
+ public static String ext_ca_cert_file = null;
+ public static String ext_ca_cert_chain_file = null;
+ public static String ext_csr_file = null;
+ public static String signing_cc = null;
+
+ public static boolean clone = false;
+ public static String clone_uri = null;
+ public static String clone_p12_passwd = null;
+ public static String clone_p12_file = null;
+ public static String clone_master_port = null;
+ public static String clone_replica_port = null;
+ public static String clone_replication_security = null;
+
+ //for correct selection of CA to be cloned
+ public static String urls;
+
+ public ConfigureCA() {// do nothing :)
+ }
+
+ public String getStatus(HTTPResponse hr, String name) {
+ ByteArrayInputStream bais = null;
+ String status = null;
+ try {
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ ParseXML px = new ParseXML();
+ px.parse(bais);
+ px.prettyprintxml();
+ status = px.getvalue(name);
+ } catch (Exception e) {
+ System.out.println("Exception in getStatus(): " + e.toString());
+ }
+ return status;
+ }
+
+ public boolean checkStatus(HTTPResponse hr, String name,
+ String expected, String location) {
+ return checkStatus(hr, name, new String[] { expected }, location);
+ }
+
+ public boolean checkStatus(HTTPResponse hr, String name,
+ String[] expected, String location) {
+ String status = getStatus(hr, name);
+ if (status == null) {
+ System.out.println("Error in " + location + ": " + name +
+ " value is null");
+ return false;
+ }
+ for (int i = 0; i < expected.length; i++) {
+ if (status.equals(expected[i])) {
+ return true;
+ }
+ }
+ System.out.println("Error in " + location + ": " + name +
+ " returns " + status);
+ return false;
+ }
+
+ public boolean LoginPanel() {
+ try {
+ boolean st = false;
+ HTTPResponse hr = null;
+
+ String query_string = "pin=" + pin + "&xml=true";
+ hr = hc.sslConnect(cs_hostname, cs_port, login_uri, query_string);
+ System.out.println("xml returned: " + hr.getHTML());
+
+ // parse xml here - nothing to parse
+
+ // get cookie
+ String temp = hr.getCookieValue("JSESSIONID");
+ if (temp != null) {
+ int index = temp.indexOf(";");
+
+ HTTPClient.j_session_id = temp.substring(0, index);
+ st = true;
+ }
+
+ hr = null;
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ "p=0&op=next&xml=true");
+ if (!checkStatus(hr, "status", "display", "LoginPanel()")) {
+ return false;
+ }
+
+ return st;
+ } catch (Exception e) {
+ System.out.println("Exception in LoginPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean TokenChoicePanel() {
+ try {
+ HTTPResponse hr = null;
+ String query_string = null;
+
+ // Software Token
+ if (token_name.equalsIgnoreCase("internal")) {
+ query_string = "p=1" + "&op=next" + "&xml=true" + "&choice="
+ + URLEncoder.encode("Internal Key Storage Token", "UTF-8") + "";
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "TokenChoicePanel()")) {
+ return false;
+ }
+ } // HSM
+ else {
+ // login to hsm first
+ query_string = "p=2" + "&op=next" + "&xml=true" + "&uTokName="
+ + URLEncoder.encode(token_name, "UTF-8") + "&__uPasswd="
+ + URLEncoder.encode(token_pwd, "UTF-8") + "";
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "TokenChoicePanel()")) {
+ return false;
+ }
+
+ // choice with token name now
+ query_string = "p=1" + "&op=next" + "&xml=true" + "&choice="
+ + URLEncoder.encode(token_name, "UTF-8") + "";
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "TokenChoicePanel()")) {
+ return false;
+ }
+ }
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in TokenChoicePanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean DomainPanel() {
+ try {
+ HTTPResponse hr = null;
+ String domain_url = "https://" + cs_hostname + ":" + cs_port;
+ String query_string = null;
+
+ if (!clone) {
+ query_string = "sdomainURL=" + URLEncoder.encode(domain_url, "UTF-8")
+ + "&sdomainName=" + URLEncoder.encode(domain_name, "UTF-8")
+ + "&choice=newdomain" + "&p=3" + "&op=next" + "&xml=true";
+ } else {
+ domain_url = "https://" + sd_hostname + ":" + sd_admin_port;
+ query_string = "sdomainURL=" + URLEncoder.encode(domain_url, "UTF-8")
+ + "&sdomainName="
+ + "&choice=existingdomain" + "&p=3" + "&op=next" + "&xml=true";
+ }
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "DomainPanel()")) {
+ return false;
+ }
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in DomainPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean DisplayCertChainPanel() {
+ try {
+ String query_string = "p=4" + "&op=next" + "&xml=true";
+ hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in DisplayCertChainPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean SecurityDomainLoginPanel() {
+ try {
+ HTTPResponse hr = null;
+
+ String subca_url = "https://" + cs_hostname + ":" + cs_port +
+ "/ca/admin/console/config/wizard" + "?p=5&subsystem=CA";
+
+ String query_string = "url=" + URLEncoder.encode(subca_url, "UTF-8");
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_login_uri, query_string);
+
+ String query_string_1 = "uid=" + sd_admin_name + "&pwd=" + URLEncoder.encode(sd_admin_password, "UTF-8") +
+ "&url=" + URLEncoder.encode(subca_url, "UTF-8");
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_get_cookie_uri,
+ query_string_1);
+
+ // get session id from security domain
+
+ String subca_session_id = hr.getContentValue("header.session_id");
+ String subca_url_1 = hr.getContentValue("header.url");
+
+ System.out.println("SUBCA_SESSION_ID=" + subca_session_id);
+ System.out.println("SUBCA_URL=" + subca_url_1);
+
+ // use session id to connect back to subCA
+
+ String query_string_2 = "p=5" + "&subsystem=CA" +
+ "&session_id=" + subca_session_id + "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string_2);
+ urls = hr.getHTML();
+ int indx = urls.indexOf(clone_uri);
+ if (indx < 0) {
+ throw new Exception("Invalid clone_uri");
+ }
+ urls = urls.substring(urls.lastIndexOf("<option", indx), indx);
+ urls = urls.split("\"")[1];
+
+ System.out.println("urls =" + urls);
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in SecurityDomainLoginPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean CreateCAPanel() {
+ try {
+ HTTPResponse hr = null;
+ String query_string = null;
+
+ if (!clone) {
+ query_string = "p=5" + "&op=next" + "&xml=true"
+ + "&choice=newsubsystem" + "&subsystemName="
+ + URLEncoder.encode(subsystem_name, "UTF-8");
+ } else {
+ query_string = "p=5" + "&op=next" + "&xml=true"
+ + "&choice=clonesubsystem" + "&subsystemName="
+ + URLEncoder.encode(subsystem_name, "UTF-8")
+ + "&urls=" + urls + "";
+ }
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "CreateCAPanel()")) {
+ return false;
+ }
+
+ if (clone) {
+
+ hr = null;
+ query_string = "p=6" + "&op=next" + "&xml=true";
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "CreateCAPanel(2)")) {
+ return false;
+ }
+ }
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in CreateCAPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean RestoreKeyCertPanel() {
+ try {
+ HTTPResponse hr = null;
+
+ String query_string = "p=7" + "&op=next" + "&xml=true"
+ + "&__password=" + URLEncoder.encode(clone_p12_passwd, "UTF-8")
+ + "&path=" + URLEncoder.encode(clone_p12_file, "UTF-8") + "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "RestoreKeyCertPanel()")) {
+ return false;
+ }
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in RestoreKeyCertPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean HierarchyPanel() {
+ try {
+ HTTPResponse hr = null;
+
+ String query_string = "p=8" + "&op=next" + "&xml=true";
+ if (external_ca.equalsIgnoreCase("true"))
+ query_string += "&choice=join";
+ else
+ query_string += "&choice=root";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "HierarchyPanel()")) {
+ return false;
+ }
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in HierarchyPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+
+ public boolean LdapConnectionPanel() {
+ try {
+ HTTPResponse hr = null;
+
+ String query_string = "p=9" + "&op=next" + "&xml=true" + "&host="
+ + URLEncoder.encode(ldap_host,"UTF-8") + "&port="
+ + URLEncoder.encode(ldap_port,"UTF-8") + "&binddn="
+ + URLEncoder.encode(bind_dn, "UTF-8") + "&__bindpwd="
+ + URLEncoder.encode(bind_password, "UTF-8") + "&basedn="
+ + URLEncoder.encode(base_dn, "UTF-8") + "&database="
+ + URLEncoder.encode(db_name, "UTF-8") + "&display="
+ + URLEncoder.encode("$displayStr", "UTF-8")
+ + (secure_conn.equals("true") ? "&secureConn=on" : "")
+ + "&masterReplicationPort=" + URLEncoder.encode(clone_master_port, "UTF-8")
+ + "&cloneReplicationPort=" + URLEncoder.encode(clone_replica_port, "UTF-8")
+ + "&replicationSecurity=" + URLEncoder.encode(clone_replication_security, "UTF-8")
+ + (remove_data.equals("true") ? "&removeData=true" : "");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "LdapConnectionPanel()")) {
+ return false;
+ }
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in LdapConnectionPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean KeyPanel() {
+ try {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ ArrayList<String> al = null;
+ String query_string = null;
+ if (clone) {
+ query_string = "p=10" + "&op=next" + "&xml=true"
+ + "&sslserver_custom_size=" + sslserver_key_size
+ + "&sslserver_custom_curvename=" + sslserver_key_curvename
+ + "&sslserver_choice=custom"
+ + "&sslserver_keytype=" + sslserver_key_type
+ + "&choice=custom" + "&keytype=" + key_type
+ + "&custom_size=" + key_size;
+ } else {
+ query_string = "p=10" + "&op=next" + "&xml=true"
+ + "&subsystem_custom_size=" + subsystem_key_size
+ + "&subsystem_custom_curvename=" + subsystem_key_curvename
+ + "&subsystem_keytype=" + subsystem_key_type
+ + "&subsystem_choice=custom"
+ + "&sslserver_custom_size=" + sslserver_key_size
+ + "&sslserver_custom_curvename=" + sslserver_key_curvename
+ + "&sslserver_keytype=" + sslserver_key_type
+ + "&sslserver_choice=custom"
+ + "&signing_custom_size=" + signing_key_size
+ + "&signing_custom_curvename=" + signing_key_curvename
+ + "&signing_keytype=" + signing_key_type
+ + "&signing_choice=custom"
+ + "&signing_keyalgorithm=" + key_algorithm
+ + "&signing_signingalgorithm=" + signing_signingalgorithm
+ + "&ocsp_signing_custom_size=" + ocsp_signing_key_size
+ + "&ocsp_signing_custom_curvename=" + ocsp_signing_key_curvename
+ + "&ocsp_signing_keytype=" + ocsp_signing_key_type
+ + "&ocsp_signing_choice=custom"
+ + "&ocsp_signing_signingalgorithm=" + ocsp_signing_signingalgorithm
+ + "&audit_signing_custom_size=" + audit_signing_key_size
+ + "&audit_signing_custom_curvename=" + audit_signing_key_curvename
+ + "&audit_signing_keytype=" + audit_signing_key_type
+ + "&audit_signing_choice=custom"
+ + "&custom_size=" + key_size
+ + "&custom_curvename=" + key_curvename
+ + "&keytype=" + key_type
+ + "&choice=custom"
+ + "&signingalgorithm=" + signing_algorithm
+ + "&keyalgorithm=" + key_algorithm;
+ }
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "KeyPanel()")) {
+ return false;
+ }
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+
+ al = px.constructValueList("CertReqPair", "DN");
+ // get ca cert subject name
+ if (al != null) {
+ for (int i = 0; i < al.size(); i++) {
+ String temp = al.get(i);
+
+ if (temp.indexOf("Certificate Authority") > 0) {
+ ca_cert_name = temp;
+ } else if (temp.indexOf("OCSP Signing Certificate") > 0) {
+ ocsp_cert_name = temp;
+ } else if (temp.indexOf("Subsystem Certificate") > 0) {
+ ca_subsystem_cert_name = temp;
+ } else if (temp.indexOf("Audit Signing Certificate") > 0) {
+ ca_audit_signing_cert_name = temp;
+ } else {
+ server_cert_name = temp;
+ }
+ }
+ }
+
+ System.out.println("default: ca_cert_name=" + ca_cert_name);
+ System.out.println("default: ocsp_cert_name=" + ocsp_cert_name);
+ System.out.println(
+ "default: ca_subsystem_cert_name=" + ca_subsystem_cert_name);
+ System.out.println(
+ "default: ca_audit_signing_cert_name=" + ca_audit_signing_cert_name);
+ System.out.println("default: server_cert_name=" + server_cert_name);
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in KeyPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean CertSubjectPanel() {
+ try {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ ArrayList<String> req_list = null;
+ ArrayList<String> cert_list = null;
+ ArrayList<String> dn_list = null;
+ String query_string = null;
+
+ // use subject names provided as input
+
+ if (!clone) {
+ query_string = "p=11" + "&op=next" + "&xml=true" + "&subsystem="
+ + URLEncoder.encode(ca_subsystem_cert_subject_name, "UTF-8")
+ + "&ocsp_signing="
+ + URLEncoder.encode(ca_ocsp_cert_subject_name, "UTF-8") + "&signing="
+ + URLEncoder.encode(ca_sign_cert_subject_name, "UTF-8") + "&sslserver="
+ + URLEncoder.encode(ca_server_cert_subject_name, "UTF-8") + "&audit_signing="
+ + URLEncoder.encode(ca_audit_signing_cert_subject_name, "UTF-8") + "&urls=0"
+ + "";
+ } else {
+ query_string = "p=11" + "&op=next" + "&xml=true" + "&sslserver="
+ + URLEncoder.encode(ca_server_cert_subject_name, "UTF-8") + "&urls=0"
+ + "";
+ }
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "CertSubjectPanel()")) {
+ return false;
+ }
+
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+
+ req_list = px.constructValueList("CertReqPair", "Request");
+ cert_list = px.constructValueList("CertReqPair", "Certificate");
+ dn_list = px.constructValueList("CertReqPair", "Nickname");
+
+ System.out.println("req_list_size=" + req_list.size());
+ System.out.println("cert_list_size=" + cert_list.size());
+ System.out.println("dn_list_size=" + dn_list.size());
+
+ if (external_ca.equalsIgnoreCase("true")) {
+ if ((req_list != null) && (dn_list != null)) {
+ for (int i = 0; i < dn_list.size(); i++) {
+ String temp = dn_list.get(i);
+ if (temp.indexOf("caSigningCert") >= 0) {
+ ca_cert_req = req_list.get(i);
+ }
+ }
+ }
+
+ if (ext_ca_cert_file == null) {
+ try {
+ FileOutputStream fos = new FileOutputStream(ext_csr_file);
+ PrintStream p = new PrintStream(fos);
+ p.println(ca_cert_req);
+ p.close();
+ return true;
+ } catch (Exception e) {
+ System.out.println("CertSubjectPanel: Unable to write CSR for external CA to " + ext_csr_file);
+ System.out.println(e.toString());
+ return false;
+ }
+ } else {
+ try {
+ ca_cert_cert = "";
+ FileInputStream fis = new FileInputStream(ext_ca_cert_file);
+ DataInputStream in = new DataInputStream(fis);
+ while (in.available() != 0) {
+ ca_cert_cert += in.readLine();
+ }
+ in.close();
+
+ signing_cc = "";
+ fis = new FileInputStream(ext_ca_cert_chain_file);
+ in = new DataInputStream(fis);
+ while (in.available() != 0) {
+ signing_cc += in.readLine();
+ }
+ in.close();
+ return true;
+ } catch (Exception e) {
+ System.out.println(
+ "CertSubjectPanel: Unable to read in external approved CA cert or certificate chain.");
+ System.out.println(e.toString());
+ return false;
+ }
+ }
+ }
+
+ if (req_list != null && cert_list != null && dn_list != null) {
+ for (int i = 0; i < dn_list.size(); i++) {
+ String temp = dn_list.get(i);
+
+ if (temp.indexOf("caSigningCert") >= 0) {
+ ca_cert_req = req_list.get(i);
+ ca_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("ocspSigningCert") >= 0) {
+ ocsp_cert_req = req_list.get(i);
+ ocsp_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("subsystemCert") >= 0) {
+ ca_subsystem_cert_req = req_list.get(i);
+ ca_subsystem_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("auditSigningCert") >= 0) {
+ ca_audit_signing_cert_req = req_list.get(i);
+ ca_audit_signing_cert_cert = cert_list.get(i);
+ } else {
+ server_cert_req = req_list.get(i);
+ server_cert_cert = cert_list.get(i);
+ }
+ }
+ }
+
+ // print out subject names
+ System.out.println("ca_cert_name=" + ca_sign_cert_subject_name);
+ System.out.println("ocsp_cert_name=" + ca_ocsp_cert_subject_name);
+ System.out.println(
+ "ca_subsystem_cert_name=" + ca_subsystem_cert_subject_name);
+ System.out.println("server_cert_name=" + ca_server_cert_subject_name);
+ System.out.println("audit_signing_cert_name=" + ca_audit_signing_cert_subject_name);
+
+ // print out requests
+ System.out.println("ca_cert_req=" + ca_cert_req);
+ System.out.println("ocsp_cert_req=" + ocsp_cert_req);
+ System.out.println("ca_subsystem_cert_req=" + ca_subsystem_cert_req);
+ System.out.println("server_cert_req=" + server_cert_req);
+ System.out.println("ca_audit_siging_cert_req=" + ca_audit_signing_cert_req);
+
+ // print out certs
+ System.out.println("ca_cert_cert=" + ca_cert_cert);
+ System.out.println("ocsp_cert_cert=" + ocsp_cert_cert);
+ System.out.println("ca_subsystem_cert_cert=" + ca_subsystem_cert_cert);
+ System.out.println("server_cert_cert=" + server_cert_cert);
+ System.out.println("ca_audit_signing_cert_cert=" + ca_audit_signing_cert_cert);
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in CertSubjectPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+
+ public boolean CertificatePanel() {
+ try {
+ HTTPResponse hr = null;
+
+ String query_string = "p=12" + "&op=next" + "&xml=true" + "&subsystem="
+ + URLEncoder.encode(ca_subsystem_cert_cert, "UTF-8") + "&subsystem_cc="
+ + "&ocsp_signing=" + URLEncoder.encode(ocsp_cert_cert, "UTF-8")
+ + "&ocsp_signing_cc=" + "&signing="
+ + URLEncoder.encode(ca_cert_cert, "UTF-8") + "&signing_cc="
+ + "&audit_signing=" + URLEncoder.encode(ca_audit_signing_cert_cert, "UTF-8")
+ + "&audit_signing_cc="
+ + "&sslserver=" + URLEncoder.encode(server_cert_cert, "UTF-8")
+ + "&sslserver_cc=" + "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "CertificatePanel()")) {
+ return false;
+ }
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in CertificatePanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+
+ public boolean CertificatePanelExternal() {
+ try {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ ArrayList<String> req_list = null;
+ ArrayList<String> cert_list = null;
+ ArrayList<String> dn_list = null;
+ String genString = "...certificate be generated internally...";
+
+ String query_string = "p=12" + "&op=apply" + "&xml=true" + "&subsystem="
+ + URLEncoder.encode(genString, "UTF-8") + "&subsystem_cc="
+ + "&ocsp_signing=" + URLEncoder.encode(genString, "UTF-8")
+ + "&ocsp_signing_cc=" + "&signing="
+ + URLEncoder.encode(ca_cert_cert, "UTF-8") + "&signing_cc="
+ + URLEncoder.encode(signing_cc, "UTF-8")
+ + "&audit_signing=" + URLEncoder.encode(genString, "UTF-8")
+ + "&audit_signing_cc="
+ + "&sslserver=" + URLEncoder.encode(genString, "UTF-8")
+ + "&sslserver_cc=" + "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "CertificatePanelExternal()")) {
+ return false;
+ }
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+
+ req_list = px.constructValueList("CertReqPair", "Request");
+ cert_list = px.constructValueList("CertReqPair", "Certificate");
+ dn_list = px.constructValueList("CertReqPair", "Nickname");
+
+ System.out.println("req_list_size=" + req_list.size());
+ System.out.println("cert_list_size=" + cert_list.size());
+ System.out.println("dn_list_size=" + dn_list.size());
+
+ if (req_list != null && cert_list != null && dn_list != null) {
+ for (int i = 0; i < dn_list.size(); i++) {
+ String temp = dn_list.get(i);
+
+ if (temp.indexOf("caSigningCert") >= 0) {
+ ca_cert_req = req_list.get(i);
+ ca_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("ocspSigningCert") >= 0) {
+ ocsp_cert_req = req_list.get(i);
+ ocsp_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("subsystemCert") >= 0) {
+ ca_subsystem_cert_req = req_list.get(i);
+ ca_subsystem_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("auditSigningCert") >= 0) {
+ ca_audit_signing_cert_req = req_list.get(i);
+ ca_audit_signing_cert_cert = cert_list.get(i);
+ } else {
+ server_cert_req = req_list.get(i);
+ server_cert_cert = cert_list.get(i);
+ }
+ }
+ }
+
+ // print out subject name
+ System.out.println("ca_cert_name=" + ca_sign_cert_subject_name);
+ System.out.println("ocsp_cert_name=" + ca_ocsp_cert_subject_name);
+ System.out.println(
+ "ca_subsystem_cert_name=" + ca_subsystem_cert_subject_name);
+ System.out.println("server_cert_name=" + ca_server_cert_subject_name);
+ System.out.println(
+ "ca_audit_signing_cert_name=" + ca_audit_signing_cert_subject_name);
+
+ // print out requests
+ System.out.println("ca_cert_req=" + ca_cert_req);
+ System.out.println("ocsp_cert_req=" + ocsp_cert_req);
+ System.out.println("ca_subsystem_cert_req=" + ca_subsystem_cert_req);
+ System.out.println("server_cert_req=" + server_cert_req);
+ System.out.println("ca_audit_signing_cert_req=" + ca_audit_signing_cert_req);
+
+ // print out certs
+ System.out.println("ca_cert_cert=" + ca_cert_cert);
+ System.out.println("ocsp_cert_cert=" + ocsp_cert_cert);
+ System.out.println("ca_subsystem_cert_cert=" + ca_subsystem_cert_cert);
+ System.out.println("server_cert_cert=" + server_cert_cert);
+ System.out.println("ca_audit_signing_cert_cert=" + ca_audit_signing_cert_cert);
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in CertificatePanelExternal(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+
+ public boolean BackupPanel() {
+ try {
+ HTTPResponse hr = null;
+
+ if (save_p12.equalsIgnoreCase("true")) {
+ String query_string = "p=13" + "&op=next" + "&xml=true"
+ + "&choice=backupkey" + "&__pwd=" + URLEncoder.encode(backup_pwd, "UTF-8")
+ + "&__pwdagain=" + URLEncoder.encode(backup_pwd, "UTF-8");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "BackupPanel()")) {
+ return false;
+ }
+
+ query_string = "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, pkcs12_uri, query_string);
+
+ // dump hr.getResponseData() to file
+
+ try {
+ FileOutputStream fos = new FileOutputStream(backup_fname);
+
+ fos.write(hr.getResponseData());
+ fos.close();
+
+ // set file to permissions 600
+ String rtParams[] = { "chmod", "600", backup_fname };
+ Process proc = Runtime.getRuntime().exec(rtParams);
+
+ BufferedReader br = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
+ String line = null;
+ while ((line = br.readLine()) != null)
+ System.out.println("Error: " + line);
+ proc.waitFor();
+
+ // verify p12 file
+ // Decode the P12 file
+ FileInputStream fis = new FileInputStream(backup_fname);
+ PFX.Template pfxt = new PFX.Template();
+ PFX pfx = (PFX) pfxt.decode(new BufferedInputStream(fis, 2048));
+
+ System.out.println("Decoded PFX");
+
+ // now peruse it for interesting info
+ System.out.println("Version: " + pfx.getVersion());
+ AuthenticatedSafes authSafes = pfx.getAuthSafes();
+ SEQUENCE asSeq = authSafes.getSequence();
+
+ System.out.println(
+ "AuthSafes has " + asSeq.size() + " SafeContents");
+
+ fis.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in BackupPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean BackupContinuePanel() {
+ try {
+ HTTPResponse hr = null;
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ "p=14&op=next&xml=true");
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "BackupContinuePanel()")) {
+ return false;
+ }
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in BackupContinuePanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean ImportCACertPanel() {
+ try {
+ HTTPResponse hr = null;
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ "p=15&op=next&xml=true");
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "ImportCACertPanel()")) {
+ return false;
+ }
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in ImportCACertPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean AdminCertReqPanel() {
+ try {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ String admin_cert_request = null;
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir, client_certdb_pwd,
+ agent_cert_subject, agent_key_size, agent_key_type);
+
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.setTransportCert(null);
+ cCrypt.setDualKey(false);
+ cCrypt.loginDB();
+
+ String crmf_request = cCrypt.generateCRMFrequest();
+
+ if (crmf_request == null) {
+ System.out.println("ERROR: AdminCertReqPanel() cert req gen failed");
+ return false;
+ }
+
+ admin_cert_request = crmf_request;
+
+ String query_string = "p=16" + "&op=next" + "&xml=true"
+ + "&cert_request_type=" + "crmf" + "&uid=" + admin_user
+ + "&name=" + admin_user + "&__pwd=" + URLEncoder.encode(admin_password, "UTF-8")
+ + "&__admin_password_again=" + URLEncoder.encode(admin_password, "UTF-8") + "&profileId="
+ + "caAdminCert" + "&email=" + URLEncoder.encode(admin_email, "UTF-8")
+ + "&cert_request=" + URLEncoder.encode(admin_cert_request, "UTF-8")
+ + "&subject=" + URLEncoder.encode(agent_cert_subject, "UTF-8")
+ + "&clone=new"
+ + "&import=true" + "&securitydomain="
+ + URLEncoder.encode(domain_name, "UTF-8") + "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "AdminCertReqPanel()")) {
+ return false;
+ }
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+
+ admin_serial_number = px.getvalue("serialNumber");
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in AdminCertReqPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+
+ public boolean AdminCertImportPanel() {
+ try {
+ boolean st = false;
+ HTTPResponse hr = null;
+ String cert_to_import = null;
+
+ String query_string = "&serialNumber=" + admin_serial_number
+ + "&importCert=true" + "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, admin_uri, query_string);
+
+ try {
+ // get response data
+ // Convert a byte array to base64 string
+ // cert_to_import = new sun.misc.BASE64Encoder().encode(
+ // hr.getResponseData());
+ cert_to_import = Utils.base64encode(hr.getResponseData());
+
+ // Convert base64 string to a byte array
+ // buf = new sun.misc.BASE64Decoder().decodeBuffer(s);
+
+ System.out.println("Cert to Import =" + cert_to_import);
+ } catch (Exception e) {
+ System.out.println("ERROR: failed to retrieve cert");
+ }
+
+ System.out.println("Cert to Import =" + cert_to_import);
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir, client_certdb_pwd,
+ null, null, null);
+
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ String start = "-----BEGIN CERTIFICATE-----\r\n";
+ String end = "\r\n-----END CERTIFICATE-----";
+
+ st = cCrypt.importCert(start + cert_to_import + end, agent_name);
+ if (!st) {
+ System.out.println(
+ "ERROR: AdminCertImportPanel() during cert import");
+ return false;
+ }
+
+ System.out.println("SUCCESS: imported admin user cert");
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in AdminCertImportPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean UpdateDomainPanel() {
+ try {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=17" + "&op=next" + "&xml=true" + "&caHost="
+ + URLEncoder.encode("/", "UTF-8") + "&caPort=" + URLEncoder.encode("/", "UTF-8")
+ + "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ if (!checkStatus(hr, "updateStatus", SUCCESS, "UpdateDomainPanel()")) {
+ return false;
+ }
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+
+ String caHost = px.getvalue("host");
+ String caPort = px.getvalue("port");
+ String systemType = px.getvalue("systemType");
+
+ System.out.println("caHost=" + caHost);
+ System.out.println("caPort=" + caPort);
+ System.out.println("systemType=" + systemType);
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in UpdateDomainPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+
+ public boolean ConfigureCAInstance() {
+ // 0. login to cert db
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir, client_certdb_pwd,
+ null, null, null);
+
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ // instantiate http client
+ // enable ecc if need be
+
+ if (key_type.equalsIgnoreCase("ecc")) {
+ hc = new HTTPClient(true);
+ } else {
+ hc = new HTTPClient(false);
+ }
+
+ // 1. Login panel
+ boolean log_st = LoginPanel();
+
+ if (!log_st) {
+ System.out.println("ERROR: ConfigureCA: LoginPanel() failure");
+ return false;
+ }
+
+ // 2. Token Choice Panel
+ boolean disp_token = TokenChoicePanel();
+
+ if (!disp_token) {
+ System.out.println("ERROR: ConfigureCA: TokenChoicePanel() failure");
+ return false;
+ }
+
+ // 3. domain panel
+ boolean dom_st = DomainPanel();
+
+ if (!dom_st) {
+ System.out.println("ERROR: ConfigureCA: DomainPanel() failure");
+ return false;
+ }
+
+ // 4. display cert chain panel and security domain login
+ if (clone) {
+ boolean disp_st = DisplayCertChainPanel();
+ if (!disp_st) {
+ System.out.println("ERROR: ConfigureCA: DisplayCertChainPanel() failure");
+ return false;
+ }
+
+ boolean sd_st = SecurityDomainLoginPanel();
+ if (!sd_st) {
+ System.out.println("ERROR: ConfigureSubCA: SecurityDomainLoginPanel() failure");
+ return false;
+ }
+
+ }
+
+ // 5. display create CA panel
+ boolean disp_cert = CreateCAPanel();
+
+ if (!disp_cert) {
+ System.out.println("ERROR: ConfigureCA: CreateCAPanel() failure");
+ return false;
+ }
+
+ // 6. display restore key cert panel
+ if (clone) {
+ boolean restore_st = RestoreKeyCertPanel();
+ if (!restore_st) {
+ System.out.println("ERROR: ConfigureCA: RestoreKeyCertPanel() failure");
+ return false;
+ }
+ }
+
+ // 7. hierarchy panel
+ if (!clone) {
+ boolean disp_h = HierarchyPanel();
+
+ if (!disp_h) {
+ System.out.println("ERROR: ConfigureCA: HierarchyPanel() failure");
+ return false;
+ }
+ }
+
+ // 8. ldap connection panel
+ boolean disp_ldap = LdapConnectionPanel();
+
+ if (!disp_ldap) {
+ System.out.println(
+ "ERROR: ConfigureCA: LdapConnectionPanel() failure");
+ return false;
+ }
+
+ // 9. Key Panel
+ boolean disp_key = KeyPanel();
+
+ if (!disp_key) {
+ System.out.println("ERROR: ConfigureCA: KeyPanel() failure");
+ return false;
+ }
+
+ // 10. Cert Subject Panel
+ boolean disp_csubj = CertSubjectPanel();
+
+ if (!disp_csubj) {
+ System.out.println("ERROR: ConfigureCA: CertSubjectPanel() failure");
+ return false;
+ }
+
+ // 11. Certificate Panel
+ boolean disp_cp;
+
+ if (external_ca.equalsIgnoreCase("true")) {
+ if (ext_ca_cert_file != null) {
+ // second pass - cacert file defined
+ disp_cp = CertificatePanelExternal();
+
+ if (!disp_cp) {
+ System.out.println("ERROR: ConfigureCA: CertificatePanelExternal() failure");
+ return false;
+ }
+ } else {
+ // first pass - cacert file not defined
+ System.out.println("A Certificate Request has been generated and stored in " + ext_csr_file);
+ System.out.println(
+ "Please submit this CSR to your external CA and obtain the CA Cert and CA Cert Chain");
+ return true;
+ }
+ }
+
+ disp_cp = CertificatePanel();
+
+ if (!disp_cp) {
+ System.out.println("ERROR: ConfigureCA: CertificatePanel() failure");
+ return false;
+ }
+
+ // 13. Backup Panel
+ boolean disp_back = BackupPanel();
+
+ if (!disp_back) {
+ System.out.println("ERROR: ConfigureCA: BackupPanel() failure");
+ return false;
+ }
+
+ // 14. Backup Continue Panel
+ boolean disp_back_cont = BackupContinuePanel();
+
+ if (!disp_back_cont) {
+ System.out.println("ERROR: ConfigureCA: BackupContinuePanel() failure");
+ return false;
+ }
+
+ // 15. Import CA Cert panel
+ boolean disp_import_cacert = ImportCACertPanel();
+
+ if (!disp_import_cacert) {
+ System.out.println("ERROR: ConfigureCA: ImportCACertPanel() failure");
+ return false;
+ }
+
+ if (clone) {
+ // no other panels required for clone
+ return true;
+ }
+
+ // 16. Admin Cert Req Panel
+ boolean disp_adm = AdminCertReqPanel();
+
+ if (!disp_adm) {
+ System.out.println("ERROR: ConfigureCA: AdminCertReqPanel() failure");
+ return false;
+ }
+
+ // 14. Admin Cert import Panel
+ boolean disp_im = AdminCertImportPanel();
+
+ if (!disp_im) {
+ System.out.println(
+ "ERROR: ConfigureCA: AdminCertImportPanel() failure");
+ return false;
+ }
+
+ // 15. Update Domain Panel
+ boolean disp_ud = UpdateDomainPanel();
+
+ if (!disp_ud) {
+ System.out.println("ERROR: ConfigureCA: UpdateDomainPanel() failure");
+ return false;
+ }
+
+ return true;
+ }
+
+ private static String set_default(String val, String def) {
+ if ((val == null) || (val.equals(""))) {
+ return def;
+ } else {
+ return val;
+ }
+ }
+
+ public static void main(String args[]) {
+ ConfigureCA ca = new ConfigureCA();
+
+ // set variables
+ StringHolder x_cs_hostname = new StringHolder();
+ StringHolder x_cs_port = new StringHolder();
+ StringHolder x_client_certdb_dir = new StringHolder();
+ StringHolder x_client_certdb_pwd = new StringHolder();
+ StringHolder x_preop_pin = new StringHolder();
+
+ StringHolder x_domain_name = new StringHolder();
+
+ StringHolder x_admin_user = new StringHolder();
+ StringHolder x_admin_email = new StringHolder();
+ StringHolder x_admin_password = new StringHolder();
+
+ // ldap
+ StringHolder x_ldap_host = new StringHolder();
+ StringHolder x_ldap_port = new StringHolder();
+ StringHolder x_bind_dn = new StringHolder();
+ StringHolder x_bind_password = new StringHolder();
+ StringHolder x_base_dn = new StringHolder();
+ StringHolder x_db_name = new StringHolder();
+ StringHolder x_secure_conn = new StringHolder();
+ StringHolder x_remove_data = new StringHolder();
+
+ // key properties (defaults)
+ StringHolder x_key_size = new StringHolder();
+ StringHolder x_key_type = new StringHolder();
+ StringHolder x_key_curvename = new StringHolder();
+ StringHolder x_key_algorithm = new StringHolder();
+ StringHolder x_signing_algorithm = new StringHolder();
+
+ // key properties (custom - signing)
+ StringHolder x_signing_key_size = new StringHolder();
+ StringHolder x_signing_key_type = new StringHolder();
+ StringHolder x_signing_key_curvename = new StringHolder();
+ StringHolder x_signing_signingalgorithm = new StringHolder();
+
+ // key properties (custom - ocsp_signing)
+ StringHolder x_ocsp_signing_key_size = new StringHolder();
+ StringHolder x_ocsp_signing_key_type = new StringHolder();
+ StringHolder x_ocsp_signing_key_curvename = new StringHolder();
+ StringHolder x_ocsp_signing_signingalgorithm = new StringHolder();
+
+ // key properties (custom - audit_signing)
+ StringHolder x_audit_signing_key_size = new StringHolder();
+ StringHolder x_audit_signing_key_type = new StringHolder();
+ StringHolder x_audit_signing_key_curvename = new StringHolder();
+
+ // key properties (custom - subsystem)
+ StringHolder x_subsystem_key_size = new StringHolder();
+ StringHolder x_subsystem_key_type = new StringHolder();
+ StringHolder x_subsystem_key_curvename = new StringHolder();
+
+ // key properties (custom - sslserver)
+ StringHolder x_sslserver_key_size = new StringHolder();
+ StringHolder x_sslserver_key_type = new StringHolder();
+ StringHolder x_sslserver_key_curvename = new StringHolder();
+
+ StringHolder x_token_name = new StringHolder();
+ StringHolder x_token_pwd = new StringHolder();
+
+ StringHolder x_agent_name = new StringHolder();
+ StringHolder x_save_p12 = new StringHolder();
+ StringHolder x_backup_pwd = new StringHolder();
+ StringHolder x_backup_fname = new StringHolder();
+
+ // separate key size for agent cert
+ StringHolder x_agent_key_size = new StringHolder();
+ StringHolder x_agent_key_type = new StringHolder();
+ StringHolder x_agent_cert_subject = new StringHolder();
+
+ // ca cert subject name params
+ StringHolder x_ca_sign_cert_subject_name = new StringHolder();
+ StringHolder x_ca_subsystem_cert_subject_name = new StringHolder();
+ StringHolder x_ca_ocsp_cert_subject_name = new StringHolder();
+ StringHolder x_ca_server_cert_subject_name = new StringHolder();
+ StringHolder x_ca_audit_signing_cert_subject_name = new StringHolder();
+
+ // subsystemName
+ StringHolder x_subsystem_name = new StringHolder();
+
+ // external CA cert
+ StringHolder x_external_ca = new StringHolder();
+ StringHolder x_ext_ca_cert_file = new StringHolder();
+ StringHolder x_ext_ca_cert_chain_file = new StringHolder();
+ StringHolder x_ext_csr_file = new StringHolder();
+
+ //clone parameters
+ StringHolder x_clone = new StringHolder();
+ StringHolder x_clone_uri = new StringHolder();
+ StringHolder x_clone_p12_file = new StringHolder();
+ StringHolder x_clone_p12_passwd = new StringHolder();
+ StringHolder x_clone_master_port = new StringHolder();
+ StringHolder x_clone_replica_port = new StringHolder();
+ StringHolder x_clone_replication_security = new StringHolder();
+
+ //security domain
+ StringHolder x_sd_hostname = new StringHolder();
+ StringHolder x_sd_ssl_port = new StringHolder();
+ StringHolder x_sd_agent_port = new StringHolder();
+ StringHolder x_sd_admin_port = new StringHolder();
+ StringHolder x_sd_admin_name = new StringHolder();
+ StringHolder x_sd_admin_password = new StringHolder();
+
+ // parse the args
+ ArgParser parser = new ArgParser("ConfigureCA");
+
+ parser.addOption("-cs_hostname %s #CS Hostname", x_cs_hostname);
+ parser.addOption("-cs_port %s #CS SSL Admin port", x_cs_port);
+ parser.addOption("-client_certdb_dir %s #Client CertDB dir",
+ x_client_certdb_dir);
+ parser.addOption("-client_certdb_pwd %s #client certdb password",
+ x_client_certdb_pwd);
+ parser.addOption("-preop_pin %s #pre op pin", x_preop_pin);
+ parser.addOption("-domain_name %s #domain name", x_domain_name);
+ parser.addOption("-admin_user %s #Admin User Name", x_admin_user);
+ parser.addOption("-admin_email %s #Admin email", x_admin_email);
+ parser.addOption("-admin_password %s #Admin password", x_admin_password);
+ parser.addOption("-agent_name %s #Agent Cert Nickname", x_agent_name);
+ parser.addOption("-agent_key_size %s #Agent Cert Key size",
+ x_agent_key_size);
+ parser.addOption("-agent_key_type %s #Agent Cert Key type [rsa]",
+ x_agent_key_type);
+ parser.addOption("-agent_cert_subject %s #Agent Certificate Subject",
+ x_agent_cert_subject);
+
+ parser.addOption("-ldap_host %s #ldap host", x_ldap_host);
+ parser.addOption("-ldap_port %s #ldap port", x_ldap_port);
+ parser.addOption("-bind_dn %s #ldap bind dn", x_bind_dn);
+ parser.addOption("-bind_password %s #ldap bind password",
+ x_bind_password);
+ parser.addOption("-base_dn %s #base dn", x_base_dn);
+ parser.addOption("-db_name %s #db name", x_db_name);
+ parser.addOption("-secure_conn %s #use ldaps port (optional, default is false)", x_secure_conn);
+ parser.addOption("-remove_data %s #remove existing data under base_dn (optional, default is false) ",
+ x_remove_data);
+
+ // key and algorithm options (default)
+ parser.addOption("-key_type %s #Key type [RSA,ECC] (optional, default is RSA)", x_key_type);
+ parser.addOption("-key_size %s #Key Size (optional, for RSA default is 2048)", x_key_size);
+ parser.addOption("-key_curvename %s #Key Curve Name (optional, for ECC default is nistp256)", x_key_curvename);
+ parser.addOption(
+ "-key_algorithm %s #Key algorithm of the CA certificate (optional, default is SHA256withRSA for RSA and SHA256withEC for ECC)",
+ x_key_algorithm);
+ parser.addOption("-signing_algorithm %s #Signing algorithm (optional, default is key_algorithm)",
+ x_signing_algorithm);
+
+ // key and algorithm options for signing certificate (overrides default)
+ parser.addOption("-signing_key_type %s #Key type [RSA,ECC] (optional, default is key_type)", x_signing_key_type);
+ parser.addOption("-signing_key_size %s #Key Size (optional, for RSA default is key_size)", x_signing_key_size);
+ parser.addOption("-signing_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_signing_key_curvename);
+ parser.addOption(
+ "-signing_signingalgorithm %s #Algorithm used be CA cert to sign objects (optional, default is signing_algorithm)",
+ x_signing_signingalgorithm);
+
+ // key and algorithm options for ocsp_signing certificate (overrides default)
+ parser.addOption("-ocsp_signing_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_ocsp_signing_key_type);
+ parser.addOption("-ocsp_signing_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_ocsp_signing_key_size);
+ parser.addOption("-ocsp_signing_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_ocsp_signing_key_curvename);
+ parser.addOption(
+ "-ocsp_signing_signingalgorithm %s #Algorithm used by the OCSP signing cert to sign objects (optional, default is signing_algorithm)",
+ x_ocsp_signing_signingalgorithm);
+
+ // key and algorithm options for audit_signing certificate (overrides default)
+ parser.addOption("-audit_signing_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_audit_signing_key_type);
+ parser.addOption("-audit_signing_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_audit_signing_key_size);
+ parser.addOption(
+ "-audit_signing_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_audit_signing_key_curvename);
+
+ // key and algorithm options for subsystem certificate (overrides default)
+ parser.addOption("-subsystem_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_subsystem_key_type);
+ parser.addOption("-subsystem_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_subsystem_key_size);
+ parser.addOption("-subsystem_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_subsystem_key_curvename);
+
+ // key and algorithm options for sslserver certificate (overrides default)
+ parser.addOption("-sslserver_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_sslserver_key_type);
+ parser.addOption("-sslserver_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_sslserver_key_size);
+ parser.addOption("-sslserver_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_sslserver_key_curvename);
+
+ parser.addOption("-token_name %s #HSM/Software Token name", x_token_name);
+ parser.addOption("-token_pwd %s #HSM/Software Token password (optional - only required for HSM)",
+ x_token_pwd);
+
+ parser.addOption("-save_p12 %s #Enable/Disable p12 Export[true,false]",
+ x_save_p12);
+ parser.addOption("-backup_pwd %s #Backup Password for p12 (optional, only required if -save_p12 = true)",
+ x_backup_pwd);
+ parser.addOption("-backup_fname %s #Backup File for p12, (optional, default is /root/tmp-ca.p12)",
+ x_backup_fname);
+
+ parser.addOption("-ca_sign_cert_subject_name %s #CA cert subject name",
+ x_ca_sign_cert_subject_name);
+ parser.addOption(
+ "-ca_subsystem_cert_subject_name %s #CA subsystem cert subject name",
+ x_ca_subsystem_cert_subject_name);
+ parser.addOption(
+ "-ca_ocsp_cert_subject_name %s #CA ocsp cert subject name",
+ x_ca_ocsp_cert_subject_name);
+ parser.addOption(
+ "-ca_server_cert_subject_name %s #CA server cert subject name",
+ x_ca_server_cert_subject_name);
+ parser.addOption(
+ "-ca_audit_signing_cert_subject_name %s #CA audit signing cert subject name",
+ x_ca_audit_signing_cert_subject_name);
+
+ parser.addOption("-subsystem_name %s #CA subsystem name",
+ x_subsystem_name);
+
+ parser.addOption("-external %s #Subordinate to external CA [true,false] (optional, default false)",
+ x_external_ca);
+ parser.addOption("-ext_ca_cert_file %s #File with CA cert from external CA (optional)",
+ x_ext_ca_cert_file);
+ parser.addOption("-ext_ca_cert_chain_file %s #File with CA cert from external CA (optional)",
+ x_ext_ca_cert_chain_file);
+ parser.addOption("-ext_csr_file %s #File to save the CSR for submission to an external CA (optional)",
+ x_ext_csr_file);
+
+ parser.addOption("-clone %s #Clone of another CA [true, false] (optional, default false)", x_clone);
+ parser.addOption(
+ "-clone_uri %s #URL of Master CA to clone. It must have the form https://<hostname>:<EE port> (optional, required if -clone=true)",
+ x_clone_uri);
+ parser.addOption(
+ "-clone_p12_file %s #File containing pk12 keys of Master CA (optional, required if -clone=true)",
+ x_clone_p12_file);
+ parser.addOption("-clone_p12_password %s #Password for pk12 file (optional, required if -clone=true)",
+ x_clone_p12_passwd);
+
+ // replication agreement options
+ parser.addOption("-clone_master_port %s #Master Port to be used in replication agreement (optional)",
+ x_clone_master_port);
+ parser.addOption("-clone_replica_port %s #Replica Port to be used in replication agreement (optional)",
+ x_clone_replica_port);
+ parser.addOption("-clone_replication_security %s #Type of security in replication agreement (optional)",
+ x_clone_replication_security);
+
+ parser.addOption("-sd_hostname %s #Security Domain Hostname (optional, required if -clone=true)", x_sd_hostname);
+ parser.addOption("-sd_ssl_port %s #Security Domain SSL EE port (optional, required if -clone=true)",
+ x_sd_ssl_port);
+ parser.addOption("-sd_agent_port %s #Security Domain SSL Agent port (optional, required if -clone=true)",
+ x_sd_agent_port);
+ parser.addOption("-sd_admin_port %s #Security Domain SSL Admin port (optional, required if -clone=true)",
+ x_sd_admin_port);
+ parser.addOption("-sd_admin_name %s #Security Domain admin name (optional, required if -clone=true)",
+ x_sd_admin_name);
+ parser.addOption("-sd_admin_password %s #Security Domain admin password (optional, required if -clone=true)",
+ x_sd_admin_password);
+
+ // and then match the arguments
+ String[] unmatched = null;
+
+ unmatched = parser.matchAllArgs(args, 0, ArgParser.EXIT_ON_UNMATCHED);
+
+ if (unmatched != null) {
+ System.out.println("ERROR: Argument Mismatch");
+ System.exit(-1);
+ }
+
+ parser.checkRequiredArgs();
+
+ // set variables
+ cs_hostname = x_cs_hostname.value;
+ cs_port = x_cs_port.value;
+ client_certdb_dir = x_client_certdb_dir.value;
+ client_certdb_pwd = x_client_certdb_pwd.value;
+ pin = x_preop_pin.value;
+ domain_name = x_domain_name.value;
+ admin_user = x_admin_user.value;
+ admin_email = x_admin_email.value;
+ admin_password = x_admin_password.value;
+ agent_name = x_agent_name.value;
+
+ ldap_host = x_ldap_host.value;
+ ldap_port = x_ldap_port.value;
+ bind_dn = x_bind_dn.value;
+ bind_password = x_bind_password.value;
+ base_dn = x_base_dn.value;
+ db_name = x_db_name.value;
+ secure_conn = set_default(x_secure_conn.value, "false");
+ remove_data = set_default(x_remove_data.value, "false");
+
+ key_type = set_default(x_key_type.value, DEFAULT_KEY_TYPE);
+ signing_key_type = set_default(x_signing_key_type.value, key_type);
+ ocsp_signing_key_type = set_default(x_ocsp_signing_key_type.value, key_type);
+ audit_signing_key_type = set_default(x_audit_signing_key_type.value, key_type);
+ subsystem_key_type = set_default(x_subsystem_key_type.value, key_type);
+ sslserver_key_type = set_default(x_sslserver_key_type.value, key_type);
+
+ key_size = set_default(x_key_size.value, DEFAULT_KEY_SIZE);
+ signing_key_size = set_default(x_signing_key_size.value, key_size);
+ ocsp_signing_key_size = set_default(x_ocsp_signing_key_size.value, key_size);
+ audit_signing_key_size = set_default(x_audit_signing_key_size.value, key_size);
+ subsystem_key_size = set_default(x_subsystem_key_size.value, key_size);
+ sslserver_key_size = set_default(x_sslserver_key_size.value, key_size);
+
+ key_curvename = set_default(x_key_curvename.value, DEFAULT_KEY_CURVENAME);
+ signing_key_curvename = set_default(x_signing_key_curvename.value, key_curvename);
+ ocsp_signing_key_curvename = set_default(x_ocsp_signing_key_curvename.value, key_curvename);
+ audit_signing_key_curvename = set_default(x_audit_signing_key_curvename.value, key_curvename);
+ subsystem_key_curvename = set_default(x_subsystem_key_curvename.value, key_curvename);
+ sslserver_key_curvename = set_default(x_sslserver_key_curvename.value, key_curvename);
+
+ if (signing_key_type.equalsIgnoreCase("RSA")) {
+ key_algorithm = set_default(x_key_algorithm.value, DEFAULT_KEY_ALGORITHM_RSA);
+ } else {
+ key_algorithm = set_default(x_key_algorithm.value, DEFAULT_KEY_ALGORITHM_ECC);
+ }
+
+ signing_algorithm = set_default(x_signing_algorithm.value, key_algorithm);
+ signing_signingalgorithm = set_default(x_signing_signingalgorithm.value, signing_algorithm);
+ ocsp_signing_signingalgorithm = set_default(x_ocsp_signing_signingalgorithm.value, signing_algorithm);
+
+ token_name = x_token_name.value;
+ token_pwd = x_token_pwd.value;
+ save_p12 = x_save_p12.value;
+ backup_pwd = x_backup_pwd.value;
+ backup_fname = set_default(x_backup_fname.value, "/root/tmp-ca.p12");
+
+ agent_key_size = x_agent_key_size.value;
+ agent_key_type = x_agent_key_type.value;
+ agent_cert_subject = x_agent_cert_subject.value;
+
+ ca_sign_cert_subject_name = x_ca_sign_cert_subject_name.value;
+ ca_subsystem_cert_subject_name = x_ca_subsystem_cert_subject_name.value;
+ ca_ocsp_cert_subject_name = x_ca_ocsp_cert_subject_name.value;
+ ca_server_cert_subject_name = x_ca_server_cert_subject_name.value;
+ ca_audit_signing_cert_subject_name = x_ca_audit_signing_cert_subject_name.value;
+
+ subsystem_name = x_subsystem_name.value;
+
+ external_ca = set_default(x_external_ca.value, "false");
+ ext_ca_cert_file = x_ext_ca_cert_file.value;
+ ext_ca_cert_chain_file = x_ext_ca_cert_chain_file.value;
+ ext_csr_file = set_default(x_ext_csr_file.value, "/tmp/ext_ca.csr");
+
+ if ((x_clone.value != null) && (x_clone.value.equalsIgnoreCase("true"))) {
+ clone = true;
+ } else {
+ clone = false;
+ }
+ clone_uri = x_clone_uri.value;
+ clone_p12_file = x_clone_p12_file.value;
+ clone_p12_passwd = x_clone_p12_passwd.value;
+ clone_master_port = set_default(x_clone_master_port.value, "");
+ clone_replica_port = set_default(x_clone_replica_port.value, "");
+ clone_replication_security = set_default(x_clone_replication_security.value, "None");
+
+ sd_hostname = x_sd_hostname.value;
+ sd_ssl_port = x_sd_ssl_port.value;
+ sd_agent_port = x_sd_agent_port.value;
+ sd_admin_port = x_sd_admin_port.value;
+ sd_admin_name = x_sd_admin_name.value;
+ sd_admin_password = x_sd_admin_password.value;
+
+ boolean st = ca.ConfigureCAInstance();
+
+ if (!st) {
+ System.out.println("ERROR: unable to create CA");
+ System.exit(-1);
+ }
+
+ System.out.println("Certificate System - CA Instance Configured.");
+ System.exit(0);
+
+ }
+
+};
diff --git a/base/silent/src/com/netscape/pkisilent/ConfigureDRM.java b/base/silent/src/com/netscape/pkisilent/ConfigureDRM.java
new file mode 100644
index 000000000..7d548ddf3
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/ConfigureDRM.java
@@ -0,0 +1,1374 @@
+package com.netscape.pkisilent;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+
+import org.mozilla.jss.asn1.SEQUENCE;
+import org.mozilla.jss.pkcs12.AuthenticatedSafes;
+import org.mozilla.jss.pkcs12.PFX;
+
+import com.netscape.pkisilent.argparser.ArgParser;
+import com.netscape.pkisilent.argparser.StringHolder;
+import com.netscape.pkisilent.common.ComCrypto;
+import com.netscape.pkisilent.common.ParseXML;
+import com.netscape.pkisilent.http.HTTPClient;
+import com.netscape.pkisilent.http.HTTPResponse;
+import com.netscape.cmsutil.util.Utils;
+
+public class ConfigureDRM {
+
+ // global constants
+ public static final String DEFAULT_KEY_TYPE = "RSA";
+ public static final String DEFAULT_KEY_SIZE = "2048";
+ public static final String DEFAULT_KEY_CURVENAME = "nistp256";
+ public static final String DEFAULT_KEY_ALGORITHM_RSA = "SHA256withRSA";
+ public static final String DEFAULT_KEY_ALGORITHM_ECC = "SHA256withEC";
+
+ // define global variables
+
+ public static HTTPClient hc = null;
+
+ public static String login_uri = "/kra/admin/console/config/login";
+ public static String wizard_uri = "/kra/admin/console/config/wizard";
+ public static String admin_uri = "/ca/admin/ca/getBySerial";
+
+ public static String sd_login_uri = "/ca/admin/ca/securityDomainLogin";
+ public static String sd_get_cookie_uri = "/ca/admin/ca/getCookie";
+ public static String pkcs12_uri = "/kra/admin/console/config/savepkcs12";
+
+ public static String cs_hostname = null;
+ public static String cs_port = null;
+
+ public static String sd_hostname = null;
+ public static String sd_ssl_port = null;
+ public static String sd_agent_port = null;
+ public static String sd_admin_port = null;
+ public static String sd_admin_name = null;
+ public static String sd_admin_password = null;
+
+ public static String ca_hostname = null;
+ public static String ca_port = null;
+ public static String ca_ssl_port = null;
+
+ public static String client_certdb_dir = null;
+ public static String client_certdb_pwd = null;
+
+ // Login Panel
+ public static String pin = null;
+
+ public static String domain_name = null;
+
+ public static String admin_user = null;
+ public static String admin_email = null;
+ public static String admin_password = null;
+ public static String admin_serial_number = null;
+ public static String agent_name = null;
+
+ public static String ldap_host = null;
+ public static String ldap_port = null;
+ public static String bind_dn = null;
+ public static String bind_password = null;
+ public static String base_dn = null;
+ public static String db_name = null;
+ public static String secure_conn = null;
+ public static String remove_data = null;
+
+ public static String key_type = null;
+ public static String key_size = null;
+ public static String key_curvename = null;
+ public static String signing_algorithm = null;
+
+ public static String transport_key_type = null;
+ public static String transport_key_size = null;
+ public static String transport_key_curvename = null;
+ public static String transport_signingalgorithm = null;
+
+ public static String storage_key_type = null;
+ public static String storage_key_size = null;
+ public static String storage_key_curvename = null;
+
+ public static String subsystem_key_type = null;
+ public static String subsystem_key_size = null;
+ public static String subsystem_key_curvename = null;
+
+ public static String audit_signing_key_type = null;
+ public static String audit_signing_key_size = null;
+ public static String audit_signing_key_curvename = null;
+
+ public static String sslserver_key_type = null;
+ public static String sslserver_key_size = null;
+ public static String sslserver_key_curvename = null;
+
+ public static String token_name = null;
+ public static String token_pwd = null;
+
+ public static String agent_key_size = null;
+ public static String agent_key_type = null;
+ public static String agent_cert_subject = null;
+
+ public static String drm_transport_cert_name = null;
+ public static String drm_transport_cert_req = null;
+ public static String drm_transport_cert_pp = null;
+ public static String drm_transport_cert_cert = null;
+
+ public static String drm_storage_cert_name = null;
+ public static String drm_storage_cert_req = null;
+ public static String drm_storage_cert_pp = null;
+ public static String drm_storage_cert_cert = null;
+
+ public static String server_cert_name = null;
+ public static String server_cert_req = null;
+ public static String server_cert_pp = null;
+ public static String server_cert_cert = null;
+
+ public static String drm_subsystem_cert_name = null;
+ public static String drm_subsystem_cert_req = null;
+ public static String drm_subsystem_cert_pp = null;
+ public static String drm_subsystem_cert_cert = null;
+
+ public static String drm_audit_signing_cert_name = null;
+ public static String drm_audit_signing_cert_req = null;
+ public static String drm_audit_signing_cert_pp = null;
+ public static String drm_audit_signing_cert_cert = null;
+
+ public static String backup_pwd = null;
+ public static String backup_fname = null;
+
+ // cert subject names
+ public static String drm_transport_cert_subject_name = null;
+ public static String drm_subsystem_cert_subject_name = null;
+ public static String drm_storage_cert_subject_name = null;
+ public static String drm_server_cert_subject_name = null;
+ public static String drm_audit_signing_cert_subject_name = null;
+
+ public static String subsystem_name = null;
+
+ // cloning
+ public static boolean clone = false;
+ public static String clone_uri = null;
+ public static String clone_p12_passwd = null;
+ public static String clone_p12_file = null;
+ public static String clone_master_port = null;
+ public static String clone_replica_port = null;
+ public static String clone_replication_security = null;
+
+ //for correct selection of CA to be cloned
+ public static String urls;
+
+ public ConfigureDRM() {
+ // do nothing :)
+ }
+
+ public void sleep_time() {
+ try {
+ System.out.println("Sleeping for 5 secs..");
+ Thread.sleep(5000);
+ } catch (Exception e) {
+ System.out.println("ERROR: sleep problem");
+ }
+
+ }
+
+ public boolean LoginPanel() {
+ boolean st = false;
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "pin=" + pin + "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, login_uri, query_string);
+ System.out.println("xml returned: " + hr.getHTML());
+
+ // parse xml here - nothing to parse
+
+ // get cookie
+ String temp = hr.getCookieValue("JSESSIONID");
+
+ if (temp != null) {
+ int index = temp.indexOf(";");
+ HTTPClient.j_session_id = temp.substring(0, index);
+ st = true;
+ }
+
+ hr = null;
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, "p=0&op=next&xml=true");
+
+ // parse xml here
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return st;
+ }
+
+ public boolean TokenChoicePanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = null;
+
+ // Software Token
+ if (token_name.equalsIgnoreCase("internal")) {
+ query_string = "p=1" + "&op=next" + "&xml=true" +
+ "&choice=" +
+ URLEncoder.encode("Internal Key Storage Token", "UTF-8");
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+ } else {
+ // login to hsm first
+ query_string = "p=2" + "&op=next" + "&xml=true" +
+ "&uTokName=" +
+ URLEncoder.encode(token_name, "UTF-8") +
+ "&__uPasswd=" +
+ URLEncoder.encode(token_pwd, "UTF-8");
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ // choice with token name now
+ query_string = "p=1" + "&op=next" + "&xml=true" +
+ "&choice=" +
+ URLEncoder.encode(token_name, "UTF-8");
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+ }
+
+ return true;
+ }
+
+ public boolean DomainPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String domain_url = "https://" + sd_hostname + ":" + sd_admin_port;
+
+ String query_string = "sdomainURL=" +
+ URLEncoder.encode(domain_url, "UTF-8") +
+ "&choice=existingdomain" +
+ "&p=3" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+
+ }
+
+ public boolean DisplayChainPanel() {
+ String query_string = "p=4" + "&op=next" + "&xml=true";
+ hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ return true;
+
+ }
+
+ public boolean SecurityDomainLoginPanel() {
+ try {
+ HTTPResponse hr = null;
+
+ String kra_url = "https://" + cs_hostname + ":" + cs_port +
+ "/kra/admin/console/config/wizard" +
+ "?p=5&subsystem=KRA";
+
+ String query_string = "url=" + URLEncoder.encode(kra_url, "UTF-8");
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_login_uri, query_string);
+
+ String query_string_1 = "uid=" + sd_admin_name +
+ "&pwd=" + URLEncoder.encode(sd_admin_password, "UTF-8") +
+ "&url=" + URLEncoder.encode(kra_url, "UTF-8");
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_get_cookie_uri,
+ query_string_1);
+
+ // get session id from security domain
+
+ String kra_session_id = hr.getContentValue("header.session_id");
+ String kra_url_1 = hr.getContentValue("header.url");
+
+ System.out.println("KRA_SESSION_ID=" + kra_session_id);
+ System.out.println("KRA_URL=" + kra_url_1);
+
+ // use session id to connect back to KRA
+
+ String query_string_2 = "p=5" +
+ "&subsystem=KRA" +
+ "&session_id=" + kra_session_id +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ query_string_2);
+
+ if (clone) {
+ // parse urls
+ urls = hr.getHTML();
+ int indx = urls.indexOf(clone_uri);
+ if (indx < 0) {
+ throw new Exception("Invalid clone_uri");
+ }
+ urls = urls.substring(urls.lastIndexOf("<option", indx), indx);
+ urls = urls.split("\"")[1];
+
+ System.out.println("urls =" + urls);
+ }
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in SecurityDomainLoginPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean SubsystemPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ String query_string = null;
+ if (!clone) {
+ query_string = "p=5" + "&op=next" + "&xml=true"
+ + "&choice=newsubsystem" + "&subsystemName="
+ + URLEncoder.encode(subsystem_name, "UTF-8");
+ } else {
+ query_string = "p=5" + "&op=next" + "&xml=true"
+ + "&choice=clonesubsystem" + "&subsystemName="
+ + URLEncoder.encode(subsystem_name, "UTF-8")
+ + "&urls=" + urls;
+ }
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean RestoreKeyCertPanel() {
+ try {
+ ByteArrayInputStream bais = null;
+ HTTPResponse hr = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=6" + "&op=next" + "&xml=true"
+ + "&__password=" + URLEncoder.encode(clone_p12_passwd, "UTF-8")
+ + "&path=" + URLEncoder.encode(clone_p12_file, "UTF-8") + "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in RestoreKeyCertPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean LdapConnectionPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=7" + "&op=next" + "&xml=true" +
+ "&host=" + URLEncoder.encode(ldap_host, "UTF-8") +
+ "&port=" + URLEncoder.encode(ldap_port, "UTF-8") +
+ "&binddn=" + URLEncoder.encode(bind_dn, "UTF-8") +
+ "&__bindpwd=" + URLEncoder.encode(bind_password, "UTF-8") +
+ "&basedn=" + URLEncoder.encode(base_dn, "UTF-8") +
+ "&database=" + URLEncoder.encode(db_name, "UTF-8") +
+ "&display=" + URLEncoder.encode("$displayStr", "UTF-8") +
+ (secure_conn.equals("true") ? "&secureConn=on" : "") +
+ "&masterReplicationPort=" + URLEncoder.encode(clone_master_port, "UTF-8") +
+ "&cloneReplicationPort=" + URLEncoder.encode(clone_replica_port, "UTF-8") +
+ "&replicationSecurity=" + URLEncoder.encode(clone_replication_security, "UTF-8") +
+ (remove_data.equals("true") ? "&removeData=true" : "");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean KeyPanel() {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ ArrayList<String> al = null;
+
+ String query_string = null;
+
+ if (!clone) {
+ query_string = "p=8" + "&op=next" + "&xml=true" +
+ "&transport_custom_size=" + transport_key_size +
+ "&storage_custom_size=" + storage_key_size +
+ "&subsystem_custom_size=" + subsystem_key_size +
+ "&sslserver_custom_size=" + sslserver_key_size +
+ "&audit_signing_custom_size=" + key_size +
+ "&custom_size=" + key_size +
+ "&transport_custom_curvename=" + transport_key_curvename +
+ "&storage_custom_curvename=" + storage_key_curvename +
+ "&subsystem_custom_curvename=" + subsystem_key_curvename +
+ "&sslserver_custom_curvename=" + sslserver_key_curvename +
+ "&audit_signing_custom_curvename=" + audit_signing_key_curvename +
+ "&custom_curvename=" + key_curvename +
+ "&transport_keytype=" + transport_key_type +
+ "&storage_keytype=" + storage_key_type +
+ "&subsystem_keytype=" + subsystem_key_type +
+ "&sslserver_keytype=" + sslserver_key_type +
+ "&audit_signing_keytype=" + audit_signing_key_type +
+ "&keytype=" + key_type +
+ "&transport_choice=custom" +
+ "&storage_choice=custom" +
+ "&subsystem_choice=custom" +
+ "&sslserver_choice=custom" +
+ "&choice=custom" +
+ "&audit_signing_choice=custom" +
+ "&signingalgorithm=" + signing_algorithm +
+ "&transport_signingalgorithm=" + transport_signingalgorithm;
+
+ } else {
+ query_string = "p=8" + "&op=next" + "&xml=true" +
+ "&sslserver_custom_size=" + sslserver_key_size +
+ "&sslserver_keytype=" + sslserver_key_type +
+ "&sslserver_choice=custom" +
+ "&custom_size=" + key_size +
+ "&keytype=" + key_type +
+ "&choice=custom";
+ }
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ al = px.constructValueList("CertReqPair", "DN");
+ // get ca cert subject name
+ if (al != null) {
+ for (int i = 0; i < al.size(); i++) {
+ String temp = al.get(i);
+ if (temp.indexOf("DRM Transport") > 0) {
+ drm_transport_cert_name = temp;
+ } else if (temp.indexOf("DRM Storage") > 0) {
+ drm_storage_cert_name = temp;
+ } else if (temp.indexOf("DRM Subsystem") > 0) {
+ drm_subsystem_cert_name = temp;
+ } else if (temp.indexOf("DRM Audit Signing Certificate") > 0) {
+ drm_audit_signing_cert_name = temp;
+ } else {
+ server_cert_name = temp;
+ }
+ }
+ }
+
+ System.out.println("default: drm_transport_cert_name=" +
+ drm_transport_cert_name);
+ System.out.println("default: drm_storage_cert_name=" +
+ drm_storage_cert_name);
+ System.out.println("default: drm_subsystem_cert_name=" +
+ drm_subsystem_cert_name);
+ System.out.println("default: drm_audit_signing_cert_name=" +
+ drm_audit_signing_cert_name);
+
+ System.out.println("default: server_cert_name=" +
+ server_cert_name);
+ return true;
+ }
+
+ public boolean CertSubjectPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ ArrayList<String> req_list = null;
+ ArrayList<String> cert_list = null;
+ ArrayList<String> dn_list = null;
+ String query_string = null;
+
+ String domain_url = "https://" + ca_hostname + ":" + ca_ssl_port;
+
+ if (!clone) {
+ query_string = "p=9" + "&op=next" + "&xml=true" +
+ "&subsystem=" +
+ URLEncoder.encode(drm_subsystem_cert_subject_name, "UTF-8") +
+ "&transport=" +
+ URLEncoder.encode(drm_transport_cert_subject_name, "UTF-8") +
+ "&storage=" +
+ URLEncoder.encode(drm_storage_cert_subject_name, "UTF-8") +
+ "&sslserver=" +
+ URLEncoder.encode(drm_server_cert_subject_name, "UTF-8") +
+ "&audit_signing=" +
+ URLEncoder.encode(drm_audit_signing_cert_subject_name, "UTF-8") +
+ "&urls=" +
+ URLEncoder.encode(domain_url, "UTF-8");
+ } else {
+ query_string = "p=9" + "&op=next" + "&xml=true" +
+ "&sslserver=" +
+ URLEncoder.encode(drm_server_cert_subject_name, "UTF-8") +
+ "&urls=" +
+ URLEncoder.encode(domain_url, "UTF-8");
+ }
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ req_list = px.constructValueList("CertReqPair", "Request");
+ cert_list = px.constructValueList("CertReqPair", "Certificate");
+ dn_list = px.constructValueList("CertReqPair", "Nickname");
+
+ if (req_list != null && cert_list != null && dn_list != null) {
+ for (int i = 0; i < dn_list.size(); i++) {
+ String temp = dn_list.get(i);
+
+ if (temp.indexOf("transportCert") >= 0) {
+ drm_transport_cert_req = req_list.get(i);
+ drm_transport_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("storageCert") >= 0) {
+ drm_storage_cert_req = req_list.get(i);
+ drm_storage_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("subsystemCert") >= 0) {
+ drm_subsystem_cert_req = req_list.get(i);
+ drm_subsystem_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("auditSigningCert") >= 0) {
+ drm_audit_signing_cert_req = req_list.get(i);
+ drm_audit_signing_cert_cert = cert_list.get(i);
+ } else {
+ server_cert_req = req_list.get(i);
+ server_cert_cert = cert_list.get(i);
+ }
+ }
+ }
+
+ return true;
+ }
+
+ public boolean CertificatePanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=10" + "&op=next" + "&xml=true" +
+ "&subsystem=" +
+ URLEncoder.encode(drm_subsystem_cert_cert, "UTF-8") +
+ "&subsystem_cc=" +
+ "&transport=" +
+ URLEncoder.encode(drm_transport_cert_cert, "UTF-8") +
+ "&transport_cc=" +
+ "&storage=" +
+ URLEncoder.encode(drm_storage_cert_cert, "UTF-8") +
+ "&storage_cc=" +
+ "&sslserver=" +
+ URLEncoder.encode(server_cert_cert, "UTF-8") +
+ "&sslserver_cc=" +
+ "&audit_signing=" +
+ URLEncoder.encode(drm_audit_signing_cert_cert, "UTF-8") +
+ "&audit_signing_cc=";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean BackupPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=11" + "&op=next" + "&xml=true" +
+ "&choice=backupkey" +
+ "&__pwd=" + URLEncoder.encode(backup_pwd, "UTF-8") +
+ "&__pwdagain=" + URLEncoder.encode(backup_pwd, "UTF-8");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean SavePKCS12Panel() {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, pkcs12_uri, query_string);
+
+ // dump hr.getResponseData() to file
+ try {
+ FileOutputStream fos = new FileOutputStream(backup_fname);
+ fos.write(hr.getResponseData());
+ fos.close();
+
+ // set file to permissions 600
+ String rtParams[] = { "chmod", "600", backup_fname };
+ Process proc = Runtime.getRuntime().exec(rtParams);
+
+ BufferedReader br = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
+ String line = null;
+ while ((line = br.readLine()) != null)
+ System.out.println("Error: " + line);
+ proc.waitFor();
+
+ // verify p12 file
+
+ // Decode the P12 file
+ FileInputStream fis = new FileInputStream(backup_fname);
+ PFX.Template pfxt = new PFX.Template();
+ PFX pfx = (PFX) pfxt.decode(new BufferedInputStream(fis, 2048));
+ System.out.println("Decoded PFX");
+
+ // now peruse it for interesting info
+ System.out.println("Version: " + pfx.getVersion());
+ AuthenticatedSafes authSafes = pfx.getAuthSafes();
+ SEQUENCE asSeq = authSafes.getSequence();
+ System.out.println("AuthSafes has " +
+ asSeq.size() + " SafeContents");
+
+ fis.close();
+
+ if (clone) {
+ query_string = "p=12" + "&op=next" + "&xml=true";
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+ }
+ } catch (Exception e) {
+ System.out.println("ERROR: Exception=" + e.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+
+ public boolean AdminCertReqPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ String admin_cert_request = null;
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ agent_cert_subject,
+ agent_key_size,
+ agent_key_type);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.setTransportCert(null);
+ cCrypt.setDualKey(false);
+ cCrypt.loginDB();
+
+ String crmf_request = cCrypt.generateCRMFrequest();
+
+ if (crmf_request == null) {
+ System.out.println("ERROR: AdminCertReqPanel() cert req gen failed");
+ return false;
+ }
+
+ admin_cert_request = crmf_request;
+
+ String query_string = "p=13" + "&op=next" + "&xml=true" +
+ "&cert_request_type=" + "crmf" +
+ "&uid=" + admin_user +
+ "&name=" + admin_user +
+ "&__pwd=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&__admin_password_again=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&profileId=" + "caAdminCert" +
+ "&email=" +
+ URLEncoder.encode(admin_email, "UTF-8") +
+ "&cert_request=" +
+ URLEncoder.encode(admin_cert_request, "UTF-8") +
+ "&subject=" +
+ URLEncoder.encode(agent_cert_subject, "UTF-8") +
+ "&clone=new" +
+ "&import=true" +
+ "&securitydomain=" +
+ URLEncoder.encode(domain_name, "UTF-8");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ admin_serial_number = px.getvalue("serialNumber");
+
+ return true;
+ }
+
+ public boolean AdminCertImportPanel() {
+ boolean st = false;
+ HTTPResponse hr = null;
+
+ String query_string = "serialNumber=" + admin_serial_number +
+ "&importCert=" + "true";
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, admin_uri, query_string);
+
+ // get response data
+ // String cert_to_import =
+ // new sun.misc.BASE64Encoder().encode(hr.getResponseData());
+ String cert_to_import =
+ Utils.base64encode(hr.getResponseData());
+ System.out.println("Imported Cert=" + cert_to_import);
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ String start = "-----BEGIN CERTIFICATE-----\r\n";
+ String end = "\r\n-----END CERTIFICATE-----";
+
+ st = cCrypt.importCert(start + cert_to_import + end, agent_name);
+ if (!st) {
+ System.out.println("ERROR: AdminCertImportPanel() during cert import");
+ return false;
+ }
+
+ System.out.println("SUCCESS: imported admin user cert");
+ return true;
+ }
+
+ public boolean UpdateDomainPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=14" + "&op=next" + "&xml=true" +
+ "&caHost=" + URLEncoder.encode(sd_hostname, "UTF-8") +
+ "&caPort=" + URLEncoder.encode(sd_agent_port, "UTF-8");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean ConfigureDRMInstance() throws UnsupportedEncodingException {
+ // 0. login to cert db
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ // instantiate http client
+ hc = new HTTPClient();
+
+ // 1. Login panel
+ boolean log_st = LoginPanel();
+ if (!log_st) {
+ System.out.println("ERROR: ConfigureDRM: LoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 2. Token Choice Panel
+ boolean disp_token = TokenChoicePanel();
+ if (!disp_token) {
+ System.out.println("ERROR: ConfigureDRM: TokenChoicePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 3. domain panel
+ boolean dom_st = DomainPanel();
+ if (!dom_st) {
+ System.out.println("ERROR: ConfigureDRM: DomainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 4. display cert chain panel
+ boolean disp_st = DisplayChainPanel();
+ if (!disp_st) {
+ System.out.println("ERROR: ConfigureDRM: DisplayChainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // security domain login panel
+ boolean disp_sd = SecurityDomainLoginPanel();
+ if (!disp_sd) {
+ System.out.println("ERROR: ConfigureDRM: SecurityDomainLoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // subsystem panel
+ boolean disp_ss = SubsystemPanel();
+ if (!disp_ss) {
+ System.out.println("ERROR: ConfigureDRM: SubsystemPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 6. display restore key cert panel
+ if (clone) {
+ boolean restore_st = RestoreKeyCertPanel();
+ if (!restore_st) {
+ System.out.println("ERROR: ConfigureCA: RestoreKeyCertPanel() failure");
+ return false;
+ }
+ }
+
+ sleep_time();
+ // 7. ldap connection panel
+ boolean disp_ldap = LdapConnectionPanel();
+ if (!disp_ldap) {
+ System.out.println("ERROR: ConfigureDRM: LdapConnectionPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ sleep_time();
+ // 9. Key Panel
+ boolean disp_key = KeyPanel();
+ if (!disp_key) {
+ System.out.println("ERROR: ConfigureDRM: KeyPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 10. Cert Subject Panel
+ boolean disp_csubj = CertSubjectPanel();
+ if (!disp_csubj) {
+ System.out.println("ERROR: ConfigureDRM: CertSubjectPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 11. Certificate Panel
+ boolean disp_cp = CertificatePanel();
+ if (!disp_cp) {
+ System.out.println("ERROR: ConfigureDRM: CertificatePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // backup panel
+ boolean disp_back = BackupPanel();
+ if (!disp_back) {
+ System.out.println("ERROR: ConfigureDRM: BackupPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // save panel
+ boolean disp_save = SavePKCS12Panel();
+ if (!disp_save) {
+ System.out.println("ERROR: ConfigureDRM: SavePKCS12Panel() failure");
+ return false;
+ }
+
+ if (clone) {
+ // no other panels required for clone
+ return true;
+ }
+
+ sleep_time();
+ // 13. Admin Cert Req Panel
+ boolean disp_adm = AdminCertReqPanel();
+ if (!disp_adm) {
+ System.out.println("ERROR: ConfigureDRM: AdminCertReqPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 14. Admin Cert import Panel
+ boolean disp_im = AdminCertImportPanel();
+ if (!disp_im) {
+ System.out.println("ERROR: ConfigureDRM: AdminCertImportPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 15. Update Domain Panel
+ boolean disp_ud = UpdateDomainPanel();
+ if (!disp_ud) {
+ System.out.println("ERROR: ConfigureDRM: UpdateDomainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ return true;
+ }
+
+ private static String set_default(String val, String def) {
+ if ((val == null) || (val.equals(""))) {
+ return def;
+ } else {
+ return val;
+ }
+ }
+
+ public static void main(String args[]) throws UnsupportedEncodingException {
+ ConfigureDRM ca = new ConfigureDRM();
+
+ // set variables
+ StringHolder x_cs_hostname = new StringHolder();
+ StringHolder x_cs_port = new StringHolder();
+
+ StringHolder x_sd_hostname = new StringHolder();
+ StringHolder x_sd_ssl_port = new StringHolder();
+ StringHolder x_sd_agent_port = new StringHolder();
+ StringHolder x_sd_admin_port = new StringHolder();
+ StringHolder x_sd_admin_name = new StringHolder();
+ StringHolder x_sd_admin_password = new StringHolder();
+
+ StringHolder x_ca_hostname = new StringHolder();
+ StringHolder x_ca_port = new StringHolder();
+ StringHolder x_ca_ssl_port = new StringHolder();
+
+ StringHolder x_client_certdb_dir = new StringHolder();
+ StringHolder x_client_certdb_pwd = new StringHolder();
+ StringHolder x_preop_pin = new StringHolder();
+
+ StringHolder x_domain_name = new StringHolder();
+
+ StringHolder x_admin_user = new StringHolder();
+ StringHolder x_admin_email = new StringHolder();
+ StringHolder x_admin_password = new StringHolder();
+
+ // ldap
+ StringHolder x_ldap_host = new StringHolder();
+ StringHolder x_ldap_port = new StringHolder();
+ StringHolder x_bind_dn = new StringHolder();
+ StringHolder x_bind_password = new StringHolder();
+ StringHolder x_base_dn = new StringHolder();
+ StringHolder x_db_name = new StringHolder();
+ StringHolder x_secure_conn = new StringHolder();
+ StringHolder x_remove_data = new StringHolder();
+
+ // key properties (defaults)
+ StringHolder x_key_size = new StringHolder();
+ StringHolder x_key_type = new StringHolder();
+ StringHolder x_key_curvename = new StringHolder();
+ StringHolder x_signing_algorithm = new StringHolder();
+
+ // key properties (custom - transport)
+ StringHolder x_transport_key_size = new StringHolder();
+ StringHolder x_transport_key_type = new StringHolder();
+ StringHolder x_transport_key_curvename = new StringHolder();
+ StringHolder x_transport_signingalgorithm = new StringHolder();
+
+ // key properties (custom - storage)
+ StringHolder x_storage_key_size = new StringHolder();
+ StringHolder x_storage_key_type = new StringHolder();
+ StringHolder x_storage_key_curvename = new StringHolder();
+
+ // key properties (custom - audit_signing)
+ StringHolder x_audit_signing_key_size = new StringHolder();
+ StringHolder x_audit_signing_key_type = new StringHolder();
+ StringHolder x_audit_signing_key_curvename = new StringHolder();
+
+ // key properties (custom - subsystem)
+ StringHolder x_subsystem_key_size = new StringHolder();
+ StringHolder x_subsystem_key_type = new StringHolder();
+ StringHolder x_subsystem_key_curvename = new StringHolder();
+
+ // key properties (custom - sslserver)
+ StringHolder x_sslserver_key_size = new StringHolder();
+ StringHolder x_sslserver_key_type = new StringHolder();
+ StringHolder x_sslserver_key_curvename = new StringHolder();
+
+ StringHolder x_token_name = new StringHolder();
+ StringHolder x_token_pwd = new StringHolder();
+
+ StringHolder x_agent_key_size = new StringHolder();
+ StringHolder x_agent_key_type = new StringHolder();
+ StringHolder x_agent_cert_subject = new StringHolder();
+
+ StringHolder x_agent_name = new StringHolder();
+ StringHolder x_backup_pwd = new StringHolder();
+ StringHolder x_backup_fname = new StringHolder();
+
+ // drm cert subject name params
+ StringHolder x_drm_subsystem_cert_subject_name = new StringHolder();
+ StringHolder x_drm_server_cert_subject_name = new StringHolder();
+ StringHolder x_drm_transport_cert_subject_name = new StringHolder();
+ StringHolder x_drm_storage_cert_subject_name = new StringHolder();
+ StringHolder x_drm_audit_signing_cert_subject_name = new StringHolder();
+
+ // subsystemName
+ StringHolder x_subsystem_name = new StringHolder();
+
+ //clone parameters
+ StringHolder x_clone = new StringHolder();
+ StringHolder x_clone_uri = new StringHolder();
+ StringHolder x_clone_p12_file = new StringHolder();
+ StringHolder x_clone_p12_passwd = new StringHolder();
+ StringHolder x_clone_master_port = new StringHolder();
+ StringHolder x_clone_replica_port = new StringHolder();
+ StringHolder x_clone_replication_security = new StringHolder();
+
+ // parse the args
+ ArgParser parser = new ArgParser("ConfigureDRM");
+
+ parser.addOption("-cs_hostname %s #CS Hostname",
+ x_cs_hostname);
+ parser.addOption("-cs_port %s #CS SSL Admin port",
+ x_cs_port);
+
+ parser.addOption("-sd_hostname %s #Security Domain Hostname",
+ x_sd_hostname);
+ parser.addOption("-sd_ssl_port %s #Security Domain SSL EE port",
+ x_sd_ssl_port);
+ parser.addOption("-sd_agent_port %s #Security Domain SSL Agent port",
+ x_sd_agent_port);
+ parser.addOption("-sd_admin_port %s #Security Domain SSL Admin port",
+ x_sd_admin_port);
+ parser.addOption("-sd_admin_name %s #Security Domain username",
+ x_sd_admin_name);
+ parser.addOption("-sd_admin_password %s #Security Domain password",
+ x_sd_admin_password);
+
+ parser.addOption("-ca_hostname %s #CA Hostname",
+ x_ca_hostname);
+ parser.addOption("-ca_port %s #CA non-SSL EE port",
+ x_ca_port);
+ parser.addOption("-ca_ssl_port %s #CA SSL EE port",
+ x_ca_ssl_port);
+
+ parser.addOption("-client_certdb_dir %s #Client CertDB dir",
+ x_client_certdb_dir);
+ parser.addOption("-client_certdb_pwd %s #client certdb password",
+ x_client_certdb_pwd);
+ parser.addOption("-preop_pin %s #pre op pin",
+ x_preop_pin);
+ parser.addOption("-domain_name %s #domain name",
+ x_domain_name);
+ parser.addOption("-admin_user %s #Admin User Name",
+ x_admin_user);
+ parser.addOption("-admin_email %s #Admin email",
+ x_admin_email);
+ parser.addOption("-admin_password %s #Admin password",
+ x_admin_password);
+ parser.addOption("-agent_name %s #Agent Cert Nickname",
+ x_agent_name);
+
+ parser.addOption("-ldap_host %s #ldap host",
+ x_ldap_host);
+ parser.addOption("-ldap_port %s #ldap port",
+ x_ldap_port);
+ parser.addOption("-bind_dn %s #ldap bind dn",
+ x_bind_dn);
+ parser.addOption("-bind_password %s #ldap bind password",
+ x_bind_password);
+ parser.addOption("-base_dn %s #base dn",
+ x_base_dn);
+ parser.addOption("-db_name %s #db name",
+ x_db_name);
+ parser.addOption("-secure_conn %s #use ldaps port (optional, default is false)", x_secure_conn);
+ parser.addOption("-remove_data %s #remove existing data under base_dn (optional, default is false) ",
+ x_remove_data);
+
+ // key and algorithm options (default)
+ parser.addOption("-key_type %s #Key type [RSA,ECC] (optional, default is RSA)", x_key_type);
+ parser.addOption("-key_size %s #Key Size (optional, for RSA default is 2048)", x_key_size);
+ parser.addOption("-key_curvename %s #Key Curve Name (optional, for ECC default is nistp256)", x_key_curvename);
+ parser.addOption(
+ "-signing_algorithm %s #Signing algorithm (optional, default is SHA256withRSA for RSA and SHA256withEC for ECC)",
+ x_signing_algorithm);
+
+ // key and algorithm options for transport certificate (overrides default)
+ parser.addOption("-transport_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_transport_key_type);
+ parser.addOption("-transport_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_transport_key_size);
+ parser.addOption("-transport_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_transport_key_curvename);
+ parser.addOption(
+ "-transport_signingalgorithm %s #Algorithm used by the transport cert to sign objects (optional, default is signing_algorithm)",
+ x_transport_signingalgorithm);
+
+ // key and algorithm options for storage certificate (overrides default)
+ parser.addOption("-storage_key_type %s #Key type [RSA,ECC] (optional, default is key_type)", x_storage_key_type);
+ parser.addOption("-storage_key_size %s #Key Size (optional, for RSA default is key_size)", x_storage_key_size);
+ parser.addOption("-storage_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_storage_key_curvename);
+
+ // key and algorithm options for audit_signing certificate (overrides default)
+ parser.addOption("-audit_signing_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_audit_signing_key_type);
+ parser.addOption("-audit_signing_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_audit_signing_key_size);
+ parser.addOption(
+ "-audit_signing_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_audit_signing_key_curvename);
+
+ // key and algorithm options for subsystem certificate (overrides default)
+ parser.addOption("-subsystem_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_subsystem_key_type);
+ parser.addOption("-subsystem_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_subsystem_key_size);
+ parser.addOption("-subsystem_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_subsystem_key_curvename);
+
+ // key and algorithm options for sslserver certificate (overrides default)
+ parser.addOption("-sslserver_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_sslserver_key_type);
+ parser.addOption("-sslserver_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_sslserver_key_size);
+ parser.addOption("-sslserver_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_sslserver_key_curvename);
+
+ parser.addOption("-token_name %s #HSM/Software Token name",
+ x_token_name);
+ parser.addOption("-token_pwd %s #HSM/Software Token password (optional, required for HSM)",
+ x_token_pwd);
+
+ parser.addOption("-agent_key_size %s #Agent Cert Key Size",
+ x_agent_key_size);
+ parser.addOption("-agent_key_type %s #Agent Cert Key type [rsa]",
+ x_agent_key_type);
+ parser.addOption("-agent_cert_subject %s #Agent Cert Subject ",
+ x_agent_cert_subject);
+
+ parser.addOption("-backup_pwd %s #PKCS12 password",
+ x_backup_pwd);
+
+ parser.addOption("-backup_fname %s #Backup File for p12, (optional, default /root/tmp-kra.p12)",
+ x_backup_fname);
+
+ parser.addOption(
+ "-drm_transport_cert_subject_name %s #DRM transport cert subject name",
+ x_drm_transport_cert_subject_name);
+ parser.addOption(
+ "-drm_subsystem_cert_subject_name %s #DRM subsystem cert subject name",
+ x_drm_subsystem_cert_subject_name);
+ parser.addOption(
+ "-drm_storage_cert_subject_name %s #DRM storage cert subject name",
+ x_drm_storage_cert_subject_name);
+ parser.addOption(
+ "-drm_server_cert_subject_name %s #DRM server cert subject name",
+ x_drm_server_cert_subject_name);
+
+ parser.addOption(
+ "-subsystem_name %s #CA subsystem name",
+ x_subsystem_name);
+
+ parser.addOption(
+ "-drm_audit_signing_cert_subject_name %s #DRM audit signing cert subject name",
+ x_drm_audit_signing_cert_subject_name);
+
+ parser.addOption("-clone %s #Clone of another KRA [true, false] (optional, default false)", x_clone);
+ parser.addOption(
+ "-clone_uri %s #URL of Master KRA to clone. It must have the form https://<hostname>:<EE port> (optional, required if -clone=true)",
+ x_clone_uri);
+ parser.addOption(
+ "-clone_p12_file %s #File containing pk12 keys of Master KRA (optional, required if -clone=true)",
+ x_clone_p12_file);
+ parser.addOption("-clone_p12_password %s #Password for pk12 file (optional, required if -clone=true)",
+ x_clone_p12_passwd);
+
+ // replication agreement options
+ parser.addOption("-clone_master_port %s #Master Port to be used in replication agreement (optional)",
+ x_clone_master_port);
+ parser.addOption("-clone_replica_port %s #Replica Port to be used in replication agreement (optional)",
+ x_clone_replica_port);
+ parser.addOption("-clone_replication_security %s #Type of security in replication agreement (optional)",
+ x_clone_replication_security);
+
+
+ // and then match the arguments
+ String[] unmatched = null;
+ unmatched = parser.matchAllArgs(args, 0, ArgParser.EXIT_ON_UNMATCHED);
+
+ if (unmatched != null) {
+ System.out.println("ERROR: Argument Mismatch");
+ System.exit(-1);
+ }
+
+ parser.checkRequiredArgs();
+
+ // set variables
+ cs_hostname = x_cs_hostname.value;
+ cs_port = x_cs_port.value;
+
+ sd_hostname = x_sd_hostname.value;
+ sd_ssl_port = x_sd_ssl_port.value;
+ sd_agent_port = x_sd_agent_port.value;
+ sd_admin_port = x_sd_admin_port.value;
+ sd_admin_name = x_sd_admin_name.value;
+ sd_admin_password = x_sd_admin_password.value;
+
+ ca_hostname = x_ca_hostname.value;
+ ca_port = x_ca_port.value;
+ ca_ssl_port = x_ca_ssl_port.value;
+
+ client_certdb_dir = x_client_certdb_dir.value;
+ client_certdb_pwd = x_client_certdb_pwd.value;
+ pin = x_preop_pin.value;
+ domain_name = x_domain_name.value;
+
+ admin_user = x_admin_user.value;
+ admin_email = x_admin_email.value;
+ admin_password = x_admin_password.value;
+ agent_name = x_agent_name.value;
+
+ ldap_host = x_ldap_host.value;
+ ldap_port = x_ldap_port.value;
+ bind_dn = x_bind_dn.value;
+ bind_password = x_bind_password.value;
+ base_dn = x_base_dn.value;
+ db_name = x_db_name.value;
+ secure_conn = set_default(x_secure_conn.value, "false");
+ remove_data = set_default(x_remove_data.value, "false");
+
+ key_type = set_default(x_key_type.value, DEFAULT_KEY_TYPE);
+ transport_key_type = set_default(x_transport_key_type.value, key_type);
+ storage_key_type = set_default(x_storage_key_type.value, key_type);
+ audit_signing_key_type = set_default(x_audit_signing_key_type.value, key_type);
+ subsystem_key_type = set_default(x_subsystem_key_type.value, key_type);
+ sslserver_key_type = set_default(x_sslserver_key_type.value, key_type);
+
+ key_size = set_default(x_key_size.value, DEFAULT_KEY_SIZE);
+ transport_key_size = set_default(x_transport_key_size.value, key_size);
+ storage_key_size = set_default(x_storage_key_size.value, key_size);
+ audit_signing_key_size = set_default(x_audit_signing_key_size.value, key_size);
+ subsystem_key_size = set_default(x_subsystem_key_size.value, key_size);
+ sslserver_key_size = set_default(x_sslserver_key_size.value, key_size);
+
+ key_curvename = set_default(x_key_curvename.value, DEFAULT_KEY_CURVENAME);
+ transport_key_curvename = set_default(x_transport_key_curvename.value, key_curvename);
+ storage_key_curvename = set_default(x_storage_key_curvename.value, key_curvename);
+ audit_signing_key_curvename = set_default(x_audit_signing_key_curvename.value, key_curvename);
+ subsystem_key_curvename = set_default(x_subsystem_key_curvename.value, key_curvename);
+ sslserver_key_curvename = set_default(x_sslserver_key_curvename.value, key_curvename);
+
+ if (transport_key_type.equalsIgnoreCase("RSA")) {
+ signing_algorithm = set_default(x_signing_algorithm.value, DEFAULT_KEY_ALGORITHM_RSA);
+ } else {
+ signing_algorithm = set_default(x_signing_algorithm.value, DEFAULT_KEY_ALGORITHM_ECC);
+ }
+
+ transport_signingalgorithm = set_default(x_transport_signingalgorithm.value, signing_algorithm);
+
+ token_name = x_token_name.value;
+ token_pwd = x_token_pwd.value;
+
+ agent_key_size = x_agent_key_size.value;
+ agent_key_type = x_agent_key_type.value;
+ agent_cert_subject = x_agent_cert_subject.value;
+
+ backup_pwd = x_backup_pwd.value;
+ backup_fname = set_default(x_backup_fname.value, "/root/tmp-kra.p12");
+
+ drm_transport_cert_subject_name =
+ x_drm_transport_cert_subject_name.value;
+ drm_subsystem_cert_subject_name =
+ x_drm_subsystem_cert_subject_name.value;
+ drm_storage_cert_subject_name = x_drm_storage_cert_subject_name.value;
+ drm_server_cert_subject_name = x_drm_server_cert_subject_name.value;
+ drm_audit_signing_cert_subject_name = x_drm_audit_signing_cert_subject_name.value;
+
+ subsystem_name = x_subsystem_name.value;
+
+ if ((x_clone.value != null) && (x_clone.value.equalsIgnoreCase("true"))) {
+ clone = true;
+ } else {
+ clone = false;
+ }
+ clone_uri = x_clone_uri.value;
+ clone_p12_file = x_clone_p12_file.value;
+ clone_p12_passwd = x_clone_p12_passwd.value;
+ clone_master_port = set_default(x_clone_master_port.value, "");
+ clone_replica_port = set_default(x_clone_replica_port.value, "");
+ clone_replication_security = set_default(x_clone_replication_security.value, "None");
+
+ boolean st = ca.ConfigureDRMInstance();
+
+ if (!st) {
+ System.out.println("ERROR: unable to create DRM");
+ System.exit(-1);
+ }
+
+ System.out.println("Certificate System - DRM Instance Configured");
+ System.exit(0);
+ }
+
+};
diff --git a/base/silent/src/com/netscape/pkisilent/ConfigureOCSP.java b/base/silent/src/com/netscape/pkisilent/ConfigureOCSP.java
new file mode 100644
index 000000000..53c014b74
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/ConfigureOCSP.java
@@ -0,0 +1,1181 @@
+package com.netscape.pkisilent;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+
+import org.mozilla.jss.asn1.SEQUENCE;
+import org.mozilla.jss.pkcs12.AuthenticatedSafes;
+import org.mozilla.jss.pkcs12.PFX;
+
+import com.netscape.pkisilent.argparser.ArgParser;
+import com.netscape.pkisilent.argparser.StringHolder;
+import com.netscape.pkisilent.common.ComCrypto;
+import com.netscape.pkisilent.common.ParseXML;
+import com.netscape.pkisilent.http.HTTPClient;
+import com.netscape.pkisilent.http.HTTPResponse;
+import com.netscape.cmsutil.util.Utils;
+
+public class ConfigureOCSP {
+ public static final String DEFAULT_KEY_TYPE = "RSA";
+ public static final String DEFAULT_KEY_SIZE = "2048";
+ public static final String DEFAULT_KEY_CURVENAME = "nistp256";
+ public static final String DEFAULT_KEY_ALGORITHM_RSA = "SHA256withRSA";
+ public static final String DEFAULT_KEY_ALGORITHM_ECC = "SHA256withEC";
+
+ // define global variables
+
+ public static HTTPClient hc = null;
+
+ public static String login_uri = "/ocsp/admin/console/config/login";
+ public static String wizard_uri = "/ocsp/admin/console/config/wizard";
+ public static String admin_uri = "/ca/admin/ca/getBySerial";
+
+ public static String sd_login_uri = "/ca/admin/ca/securityDomainLogin";
+ public static String sd_get_cookie_uri = "/ca/admin/ca/getCookie";
+ public static String pkcs12_uri = "/ocsp/admin/console/config/savepkcs12";
+
+ public static String cs_hostname = null;
+ public static String cs_port = null;
+
+ public static String sd_hostname = null;
+ public static String sd_ssl_port = null;
+ public static String sd_agent_port = null;
+ public static String sd_admin_port = null;
+ public static String sd_admin_name = null;
+ public static String sd_admin_password = null;
+
+ public static String ca_hostname = null;
+ public static String ca_port = null;
+ public static String ca_ssl_port = null;
+
+ public static String client_certdb_dir = null;
+ public static String client_certdb_pwd = null;
+
+ // Login Panel
+ public static String pin = null;
+
+ public static String domain_name = null;
+
+ public static String admin_user = null;
+ public static String admin_email = null;
+ public static String admin_password = null;
+ public static String admin_serial_number = null;
+ public static String agent_name = null;
+
+ public static String ldap_host = null;
+ public static String ldap_port = null;
+ public static String bind_dn = null;
+ public static String bind_password = null;
+ public static String base_dn = null;
+ public static String db_name = null;
+ public static String secure_conn = null;
+ public static String remove_data = null;
+
+ public static String key_type = null;
+ public static String key_size = null;
+ public static String key_curvename = null;
+ public static String signing_algorithm = null;
+
+ public static String signing_key_type = null;
+ public static String signing_key_size = null;
+ public static String signing_key_curvename = null;
+ public static String signing_signingalgorithm = null;
+
+ public static String subsystem_key_type = null;
+ public static String subsystem_key_size = null;
+ public static String subsystem_key_curvename = null;
+
+ public static String audit_signing_key_type = null;
+ public static String audit_signing_key_size = null;
+ public static String audit_signing_key_curvename = null;
+
+ public static String sslserver_key_type = null;
+ public static String sslserver_key_size = null;
+ public static String sslserver_key_curvename = null;
+
+ public static String token_name = null;
+ public static String token_pwd = null;
+
+ public static String agent_key_size = null;
+ public static String agent_key_type = null;
+ public static String agent_cert_subject = null;
+
+ public static String ocsp_signing_cert_name = null;
+ public static String ocsp_signing_cert_req = null;
+ public static String ocsp_signing_cert_pp = null;
+ public static String ocsp_signing_cert_cert = null;
+
+ public static String server_cert_name = null;
+ public static String server_cert_req = null;
+ public static String server_cert_pp = null;
+ public static String server_cert_cert = null;
+
+ public static String ocsp_subsystem_cert_name = null;
+ public static String ocsp_subsystem_cert_req = null;
+ public static String ocsp_subsystem_cert_pp = null;
+ public static String ocsp_subsystem_cert_cert = null;
+
+ public static String ocsp_audit_signing_cert_name = null;
+ public static String ocsp_audit_signing_cert_req = null;
+ public static String ocsp_audit_signing_cert_pp = null;
+ public static String ocsp_audit_signing_cert_cert = null;
+
+ public static String backup_pwd = null;
+ public static String backup_fname = null;
+
+ // cert subject names
+ public static String ocsp_sign_cert_subject_name = null;
+ public static String ocsp_subsystem_cert_subject_name = null;
+ public static String ocsp_server_cert_subject_name = null;
+ public static String ocsp_audit_signing_cert_subject_name = null;
+
+ public static String subsystem_name = null;
+
+ public ConfigureOCSP() {
+ // do nothing :)
+ }
+
+ public void sleep_time() {
+ try {
+ System.out.println("Sleeping for 5 secs..");
+ Thread.sleep(5000);
+ } catch (Exception e) {
+ System.out.println("ERROR: sleep problem");
+ }
+
+ }
+
+ public boolean LoginPanel() {
+ boolean st = false;
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "pin=" + pin + "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, login_uri, query_string);
+ System.out.println("xml returned: " + hr.getHTML());
+
+ // parse xml here - nothing to parse
+
+ // get cookie
+ String temp = hr.getCookieValue("JSESSIONID");
+
+ if (temp != null) {
+ int index = temp.indexOf(";");
+ HTTPClient.j_session_id = temp.substring(0, index);
+ st = true;
+ }
+
+ hr = null;
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ "p=0&op=next&xml=true");
+
+ // parse xml here
+
+ bais = new ByteArrayInputStream(
+ hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return st;
+ }
+
+ public boolean TokenChoicePanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = null;
+
+ // Software Token
+ if (token_name.equalsIgnoreCase("internal")) {
+ query_string = "p=1" + "&op=next" + "&xml=true" +
+ "&choice=" + URLEncoder.encode("Internal Key Storage Token", "UTF-8");
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+ }
+ // HSM
+ else {
+ // login to hsm first
+ query_string = "p=2" + "&op=next" + "&xml=true" +
+ "&uTokName=" +
+ URLEncoder.encode(token_name, "UTF-8") +
+ "&__uPasswd=" +
+ URLEncoder.encode(token_pwd, "UTF-8");
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ // choice with token name now
+ query_string = "p=1" + "&op=next" + "&xml=true" +
+ "&choice=" +
+ URLEncoder.encode(token_name, "UTF-8");
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ }
+ return true;
+ }
+
+ public boolean DomainPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String domain_url = "https://" + sd_hostname + ":" + sd_admin_port;
+
+ String query_string = "sdomainURL=" +
+ URLEncoder.encode(domain_url, "UTF-8") +
+ "&choice=existingdomain" +
+ "&p=3" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+
+ }
+
+ public boolean DisplayChainPanel() {
+ String query_string = null;
+
+ query_string = "p=4" + "&op=next" + "&xml=true";
+ hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ // bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ // px.parse(bais);
+ // px.prettyprintxml();
+
+ return true;
+
+ }
+
+ public boolean SecurityDomainLoginPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+
+ String ocsp_url = "https://" + cs_hostname + ":" + cs_port +
+ "/ocsp/admin/console/config/wizard" +
+ "?p=5&subsystem=OCSP";
+
+ String query_string = "url=" + URLEncoder.encode(ocsp_url, "UTF-8");
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_login_uri, query_string);
+
+ String query_string_1 = "uid=" + sd_admin_name +
+ "&pwd=" + URLEncoder.encode(sd_admin_password, "UTF-8") +
+ "&url=" + URLEncoder.encode(ocsp_url, "UTF-8");
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_get_cookie_uri,
+ query_string_1);
+
+ // get session id from security domain
+
+ String ocsp_session_id = hr.getContentValue("header.session_id");
+ String ocsp_url_1 = hr.getContentValue("header.url");
+
+ System.out.println("OCSP_SESSION_ID=" + ocsp_session_id);
+ System.out.println("OCSP_URL=" + ocsp_url_1);
+
+ // use session id to connect back to OCSP
+
+ String query_string_2 = "p=5" +
+ "&subsystem=OCSP" +
+ "&session_id=" + ocsp_session_id +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ query_string_2);
+
+ return true;
+
+ }
+
+ public boolean SubsystemPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=5" + "&op=next" + "&xml=true" +
+ "&subsystemName=" +
+ URLEncoder.encode(subsystem_name, "UTF-8") +
+ "&choice=newsubsystem";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean LdapConnectionPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=7" + "&op=next" + "&xml=true" +
+ "&host=" + URLEncoder.encode(ldap_host, "UTF-8") +
+ "&port=" + URLEncoder.encode(ldap_port, "UTF-8") +
+ "&binddn=" + URLEncoder.encode(bind_dn, "UTF-8") +
+ "&__bindpwd=" + URLEncoder.encode(bind_password, "UTF-8") +
+ "&basedn=" + URLEncoder.encode(base_dn, "UTF-8") +
+ "&database=" + URLEncoder.encode(db_name, "UTF-8") +
+ "&display=" + URLEncoder.encode("$displayStr", "UTF-8") +
+ (secure_conn.equals("true") ? "&secureConn=on" : "") +
+ (remove_data.equals("true") ? "&removeData=true" : "");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean KeyPanel() {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ ArrayList<String> al = null;
+
+ String query_string = "p=8" + "&op=next" + "&xml=true" +
+ "&signing_custom_size=" + signing_key_size +
+ "&subsystem_custom_size=" + subsystem_key_size +
+ "&sslserver_custom_size=" + sslserver_key_size +
+ "&audit_signing_custom_size=" + audit_signing_key_size +
+ "&custom_size=" + key_size +
+ "&signing_custom_curvename=" + signing_key_curvename +
+ "&subsystem_custom_curvename=" + subsystem_key_curvename +
+ "&sslserver_custom_curvename=" + sslserver_key_curvename +
+ "&audit_signing_custom_curvename=" + audit_signing_key_curvename +
+ "&custom_curvename=" + key_curvename +
+ "&signing_keytype=" + signing_key_type +
+ "&subsystem_keytype=" + subsystem_key_type +
+ "&sslserver_keytype=" + sslserver_key_type +
+ "&audit_signing_keytype=" + audit_signing_key_type +
+ "&keytype=" + key_type +
+ "&signing_choice=custom" +
+ "&subsystem_choice=custom" +
+ "&sslserver_choice=custom" +
+ "&audit_signing_choice=custom" +
+ "&signingalgorithm=" + signing_algorithm +
+ "&signing_signingalgorithm=" + signing_signingalgorithm +
+ "&choice=custom";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ al = px.constructValueList("CertReqPair", "DN");
+ // get ca cert subject name
+ if (al != null) {
+ for (int i = 0; i < al.size(); i++) {
+ String temp = al.get(i);
+ if (temp.indexOf("OCSP Signing") > 0) {
+ ocsp_signing_cert_name = temp;
+ } else if (temp.indexOf("OCSP Subsystem") > 0) {
+ ocsp_subsystem_cert_name = temp;
+ } else if (temp.indexOf("Audit Signing Certificate") > 0) {
+ ocsp_audit_signing_cert_name = temp;
+ } else {
+ server_cert_name = temp;
+ }
+ }
+ }
+
+ System.out.println("default: ocsp_signing_cert_name=" + ocsp_signing_cert_name);
+ System.out.println("default: ocsp_subsystem_cert_name=" + ocsp_subsystem_cert_name);
+ System.out.println("default: server_cert_name=" + server_cert_name);
+ System.out.println("default: oscp_audit_signing_cert_name=" + ocsp_audit_signing_cert_name);
+
+ return true;
+ }
+
+ public boolean CertSubjectPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ ArrayList<String> req_list = null;
+ ArrayList<String> cert_list = null;
+ ArrayList<String> dn_list = null;
+
+ String domain_url = "https://" + ca_hostname + ":" + ca_ssl_port;
+
+ String query_string = "p=9" + "&op=next" + "&xml=true" +
+ "&subsystem=" +
+ URLEncoder.encode(ocsp_subsystem_cert_subject_name, "UTF-8") +
+ "&signing=" +
+ URLEncoder.encode(ocsp_sign_cert_subject_name, "UTF-8") +
+ "&sslserver=" +
+ URLEncoder.encode(ocsp_server_cert_subject_name, "UTF-8") +
+ "&audit_signing=" +
+ URLEncoder.encode(ocsp_audit_signing_cert_subject_name, "UTF-8") +
+ "&urls=" +
+ URLEncoder.encode(domain_url, "UTF-8") +
+ "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ req_list = px.constructValueList("CertReqPair", "Request");
+ cert_list = px.constructValueList("CertReqPair", "Certificate");
+ dn_list = px.constructValueList("CertReqPair", "Nickname");
+
+ if (req_list != null && cert_list != null && dn_list != null) {
+ for (int i = 0; i < dn_list.size(); i++) {
+ String temp = dn_list.get(i);
+
+ if (temp.indexOf("ocspSigningCert") >= 0) {
+ ocsp_signing_cert_req = req_list.get(i);
+ ocsp_signing_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("subsystemCert") >= 0) {
+ ocsp_subsystem_cert_req = req_list.get(i);
+ ocsp_subsystem_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("auditSigningCert") >= 0) {
+ ocsp_audit_signing_cert_req = req_list.get(i);
+ ocsp_audit_signing_cert_cert = cert_list.get(i);
+ } else {
+ server_cert_req = req_list.get(i);
+ server_cert_cert = cert_list.get(i);
+ }
+ }
+ }
+
+ return true;
+ }
+
+ public boolean CertificatePanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=10" + "&op=next" + "&xml=true" +
+ "&subsystem=" +
+ URLEncoder.encode(ocsp_subsystem_cert_cert, "UTF-8") +
+ "&subsystem_cc=" +
+ "&signing=" +
+ URLEncoder.encode(ocsp_signing_cert_cert, "UTF-8") +
+ "&signing_cc=" +
+ "&sslserver=" +
+ URLEncoder.encode(server_cert_cert, "UTF-8") +
+ "&sslserver_cc=" +
+ "&audit_signing=" +
+ URLEncoder.encode(ocsp_audit_signing_cert_cert, "UTF-8") +
+ "&audit_signing_cc=";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+
+ System.out.println("html returned=" + hr.getHTML());
+
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean BackupPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=11" + "&op=next" + "&xml=true" +
+ "&choice=backupkey" +
+ "&__pwd=" + URLEncoder.encode(backup_pwd, "UTF-8") +
+ "&__pwdagain=" + URLEncoder.encode(backup_pwd, "UTF-8");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean SavePKCS12Panel() {
+ HTTPResponse hr = null;
+
+ String query_string = "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, pkcs12_uri, query_string);
+
+ // dump hr.getResponseData() to file
+
+ try {
+ FileOutputStream fos = new FileOutputStream(backup_fname);
+ fos.write(hr.getResponseData());
+ fos.close();
+
+ // set file to permissions 600
+ String rtParams[] = { "chmod", "600", backup_fname };
+ Process proc = Runtime.getRuntime().exec(rtParams);
+
+ BufferedReader br = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
+ String line = null;
+ while ((line = br.readLine()) != null)
+ System.out.println("Error: " + line);
+ proc.waitFor();
+
+ // verify p12 file
+
+ // Decode the P12 file
+ FileInputStream fis = new FileInputStream(backup_fname);
+ PFX.Template pfxt = new PFX.Template();
+ PFX pfx = (PFX) pfxt.decode(new BufferedInputStream(fis, 2048));
+ System.out.println("Decoded PFX");
+
+ // now peruse it for interesting info
+ System.out.println("Version: " + pfx.getVersion());
+ AuthenticatedSafes authSafes = pfx.getAuthSafes();
+ SEQUENCE asSeq = authSafes.getSequence();
+ System.out.println("AuthSafes has " +
+ asSeq.size() + " SafeContents");
+
+ fis.close();
+ } catch (Exception e) {
+ System.out.println("ERROR: Exception=" + e.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+
+ public boolean AdminCertReqPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ String admin_cert_request = null;
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ agent_cert_subject,
+ agent_key_size,
+ agent_key_type);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.setTransportCert(null);
+ cCrypt.setDualKey(false);
+ cCrypt.loginDB();
+
+ String crmf_request = cCrypt.generateCRMFrequest();
+
+ if (crmf_request == null) {
+ System.out.println("ERROR: AdminCertReqPanel() cert req gen failed");
+ return false;
+ }
+
+ admin_cert_request = crmf_request;
+
+ String query_string = "p=13" + "&op=next" + "&xml=true" +
+ "&cert_request_type=" + "crmf" +
+ "&uid=" + admin_user +
+ "&name=" + admin_user +
+ "&__pwd=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&__admin_password_again=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&profileId=" + "caAdminCert" +
+ "&email=" +
+ URLEncoder.encode(admin_email, "UTF-8") +
+ "&cert_request=" +
+ URLEncoder.encode(admin_cert_request, "UTF-8") +
+ "&subject=" +
+ URLEncoder.encode(agent_cert_subject, "UTF-8") +
+ "&clone=new" +
+ "&import=true" +
+ "&securitydomain=" +
+ URLEncoder.encode(domain_name, "UTF-8");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ admin_serial_number = px.getvalue("serialNumber");
+
+ return true;
+ }
+
+ public boolean AdminCertImportPanel() {
+ boolean st = false;
+ HTTPResponse hr = null;
+
+ String query_string = "serialNumber=" + admin_serial_number +
+ "&importCert=" + "true" +
+ "";
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, admin_uri, query_string);
+
+ // get response data
+ // String cert_to_import =
+ // new sun.misc.BASE64Encoder().encode(hr.getResponseData());
+ String cert_to_import =
+ Utils.base64encode(hr.getResponseData());
+ System.out.println("Imported Cert=" + cert_to_import);
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ String start = "-----BEGIN CERTIFICATE-----\r\n";
+ String end = "\r\n-----END CERTIFICATE-----";
+
+ st = cCrypt.importCert(start + cert_to_import + end, agent_name);
+ if (!st) {
+ System.out.println("ERROR: AdminCertImportPanel() during cert import");
+ return false;
+ }
+
+ System.out.println("SUCCESS: imported admin user cert");
+ return true;
+ }
+
+ public boolean UpdateDomainPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=14" + "&op=next" + "&xml=true" +
+ "&caHost=" + URLEncoder.encode(sd_hostname, "UTF-8") +
+ "&caPort=" + URLEncoder.encode(sd_agent_port, "UTF-8");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean ConfigureOCSPInstance() throws UnsupportedEncodingException {
+ // 0. login to cert db
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ // instantiate http client
+ hc = new HTTPClient();
+
+ // 1. Login panel
+ boolean log_st = LoginPanel();
+ if (!log_st) {
+ System.out.println("ERROR: ConfigureOCSP: LoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 2. Token Choice Panel
+ boolean disp_token = TokenChoicePanel();
+ if (!disp_token) {
+ System.out.println("ERROR: ConfigureOCSP: TokenChoicePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 3. domain panel
+ boolean dom_st = DomainPanel();
+ if (!dom_st) {
+ System.out.println("ERROR: ConfigureOCSP: DomainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 4. display cert chain panel
+ boolean disp_st = DisplayChainPanel();
+ if (!disp_st) {
+ System.out.println("ERROR: ConfigureOCSP: DisplayChainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // security domain login panel
+ boolean disp_sd = SecurityDomainLoginPanel();
+ if (!disp_sd) {
+ System.out.println("ERROR: ConfigureOCSP: SecurityDomainLoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // subsystem panel
+ boolean disp_ss = SubsystemPanel();
+ if (!disp_ss) {
+ System.out.println("ERROR: ConfigureOCSP: SubsystemPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 7. ldap connection panel
+ boolean disp_ldap = LdapConnectionPanel();
+ if (!disp_ldap) {
+ System.out.println("ERROR: ConfigureOCSP: LdapConnectionPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ sleep_time();
+ // 9. Key Panel
+ boolean disp_key = KeyPanel();
+ if (!disp_key) {
+ System.out.println("ERROR: ConfigureOCSP: KeyPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 10. Cert Subject Panel
+ boolean disp_csubj = CertSubjectPanel();
+ if (!disp_csubj) {
+ System.out.println("ERROR: ConfigureOCSP: CertSubjectPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 11. Certificate Panel
+ boolean disp_cp = CertificatePanel();
+ if (!disp_cp) {
+ System.out.println("ERROR: ConfigureOCSP: CertificatePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // backup panel
+ boolean disp_back = BackupPanel();
+ if (!disp_back) {
+ System.out.println("ERROR: ConfigureOCSP: BackupPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // save panel
+ boolean disp_save = SavePKCS12Panel();
+ if (!disp_save) {
+ System.out.println("ERROR: ConfigureOCSP: SavePKCS12Panel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 13. Admin Cert Req Panel
+ boolean disp_adm = AdminCertReqPanel();
+ if (!disp_adm) {
+ System.out.println("ERROR: ConfigureOCSP: AdminCertReqPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 14. Admin Cert import Panel
+ boolean disp_im = AdminCertImportPanel();
+ if (!disp_im) {
+ System.out.println("ERROR: ConfigureOCSP: AdminCertImportPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 15. Update Domain Panel
+ boolean disp_ud = UpdateDomainPanel();
+ if (!disp_ud) {
+ System.out.println("ERROR: ConfigureOCSP: UpdateDomainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ return true;
+ }
+
+ private static String set_default(String val, String def) {
+ if ((val == null) || (val.equals(""))) {
+ return def;
+ } else {
+ return val;
+ }
+ }
+
+ public static void main(String args[]) throws UnsupportedEncodingException {
+ ConfigureOCSP ca = new ConfigureOCSP();
+
+ // set variables
+ StringHolder x_cs_hostname = new StringHolder();
+ StringHolder x_cs_port = new StringHolder();
+
+ StringHolder x_sd_hostname = new StringHolder();
+ StringHolder x_sd_ssl_port = new StringHolder();
+ StringHolder x_sd_agent_port = new StringHolder();
+ StringHolder x_sd_admin_port = new StringHolder();
+ StringHolder x_sd_admin_name = new StringHolder();
+ StringHolder x_sd_admin_password = new StringHolder();
+
+ StringHolder x_ca_hostname = new StringHolder();
+ StringHolder x_ca_port = new StringHolder();
+ StringHolder x_ca_ssl_port = new StringHolder();
+
+ StringHolder x_client_certdb_dir = new StringHolder();
+ StringHolder x_client_certdb_pwd = new StringHolder();
+ StringHolder x_preop_pin = new StringHolder();
+
+ StringHolder x_domain_name = new StringHolder();
+
+ StringHolder x_admin_user = new StringHolder();
+ StringHolder x_admin_email = new StringHolder();
+ StringHolder x_admin_password = new StringHolder();
+
+ // ldap
+ StringHolder x_ldap_host = new StringHolder();
+ StringHolder x_ldap_port = new StringHolder();
+ StringHolder x_bind_dn = new StringHolder();
+ StringHolder x_bind_password = new StringHolder();
+ StringHolder x_base_dn = new StringHolder();
+ StringHolder x_db_name = new StringHolder();
+ StringHolder x_secure_conn = new StringHolder();
+ StringHolder x_remove_data = new StringHolder();
+
+ // key properties (defaults)
+ StringHolder x_key_size = new StringHolder();
+ StringHolder x_key_type = new StringHolder();
+ StringHolder x_key_curvename = new StringHolder();
+ StringHolder x_signing_algorithm = new StringHolder();
+
+ // key properties (custom - signing)
+ StringHolder x_signing_key_size = new StringHolder();
+ StringHolder x_signing_key_type = new StringHolder();
+ StringHolder x_signing_key_curvename = new StringHolder();
+ StringHolder x_signing_signingalgorithm = new StringHolder();
+
+ // key properties (custom - audit_signing)
+ StringHolder x_audit_signing_key_size = new StringHolder();
+ StringHolder x_audit_signing_key_type = new StringHolder();
+ StringHolder x_audit_signing_key_curvename = new StringHolder();
+
+ // key properties (custom - subsystem)
+ StringHolder x_subsystem_key_size = new StringHolder();
+ StringHolder x_subsystem_key_type = new StringHolder();
+ StringHolder x_subsystem_key_curvename = new StringHolder();
+
+ // key properties (custom - sslserver)
+ StringHolder x_sslserver_key_size = new StringHolder();
+ StringHolder x_sslserver_key_type = new StringHolder();
+ StringHolder x_sslserver_key_curvename = new StringHolder();
+
+ StringHolder x_token_name = new StringHolder();
+ StringHolder x_token_pwd = new StringHolder();
+
+ StringHolder x_agent_key_size = new StringHolder();
+ StringHolder x_agent_key_type = new StringHolder();
+ StringHolder x_agent_cert_subject = new StringHolder();
+
+ StringHolder x_agent_name = new StringHolder();
+ StringHolder x_backup_pwd = new StringHolder();
+ StringHolder x_backup_fname = new StringHolder();
+
+ // ca cert subject name params
+ StringHolder x_ocsp_sign_cert_subject_name = new StringHolder();
+ StringHolder x_ocsp_subsystem_cert_subject_name = new StringHolder();
+ StringHolder x_ocsp_server_cert_subject_name = new StringHolder();
+ StringHolder x_ocsp_audit_signing_cert_subject_name = new StringHolder();
+
+ // subsystemName
+ StringHolder x_subsystem_name = new StringHolder();
+
+ // parse the args
+ ArgParser parser = new ArgParser("ConfigureOCSP");
+
+ parser.addOption("-cs_hostname %s #CS Hostname",
+ x_cs_hostname);
+ parser.addOption("-cs_port %s #CS SSL Admin port",
+ x_cs_port);
+
+ parser.addOption("-sd_hostname %s #Security Domain Hostname",
+ x_sd_hostname);
+ parser.addOption("-sd_ssl_port %s #Security Domain SSL EE port",
+ x_sd_ssl_port);
+ parser.addOption("-sd_agent_port %s #Security Domain SSL Agent port",
+ x_sd_agent_port);
+ parser.addOption("-sd_admin_port %s #Security Domain SSL Admin port",
+ x_sd_admin_port);
+ parser.addOption("-sd_admin_name %s #Security Domain Admin Name",
+ x_sd_admin_name);
+ parser.addOption("-sd_admin_password %s #Security Domain Admin password",
+ x_sd_admin_password);
+
+ parser.addOption("-ca_hostname %s #CA Hostname",
+ x_ca_hostname);
+ parser.addOption("-ca_port %s #CA non-SSL EE port",
+ x_ca_port);
+ parser.addOption("-ca_ssl_port %s #CA SSL EE port",
+ x_ca_ssl_port);
+
+ parser.addOption("-client_certdb_dir %s #Client CertDB dir",
+ x_client_certdb_dir);
+ parser.addOption("-client_certdb_pwd %s #client certdb password",
+ x_client_certdb_pwd);
+ parser.addOption("-preop_pin %s #pre op pin",
+ x_preop_pin);
+ parser.addOption("-domain_name %s #domain name",
+ x_domain_name);
+ parser.addOption("-admin_user %s #Admin User Name",
+ x_admin_user);
+ parser.addOption("-admin_email %s #Admin email",
+ x_admin_email);
+ parser.addOption("-admin_password %s #Admin password",
+ x_admin_password);
+ parser.addOption("-agent_name %s #Agent Cert Nickname",
+ x_agent_name);
+
+ parser.addOption("-ldap_host %s #ldap host",
+ x_ldap_host);
+ parser.addOption("-ldap_port %s #ldap port",
+ x_ldap_port);
+ parser.addOption("-bind_dn %s #ldap bind dn",
+ x_bind_dn);
+ parser.addOption("-bind_password %s #ldap bind password",
+ x_bind_password);
+ parser.addOption("-base_dn %s #base dn",
+ x_base_dn);
+ parser.addOption("-db_name %s #db name",
+ x_db_name);
+ parser.addOption("-secure_conn %s #use ldaps port (optional, default is false)", x_secure_conn);
+ parser.addOption("-remove_data %s #remove existing data under base_dn (optional, default is false) ",
+ x_remove_data);
+
+ // key and algorithm options (default)
+ parser.addOption("-key_type %s #Key type [RSA,ECC] (optional, default is RSA)", x_key_type);
+ parser.addOption("-key_size %s #Key Size (optional, for RSA default is 2048)", x_key_size);
+ parser.addOption("-key_curvename %s #Key Curve Name (optional, for ECC default is nistp256)", x_key_curvename);
+ parser.addOption(
+ "-signing_algorithm %s #Signing algorithm (optional, default is SHA256withRSA for RSA and SHA256withEC for ECC)",
+ x_signing_algorithm);
+
+ // key and algorithm options for signing certificate (overrides default)
+ parser.addOption("-signing_key_type %s #Key type [RSA,ECC] (optional, default is key_type)", x_signing_key_type);
+ parser.addOption("-signing_key_size %s #Key Size (optional, for RSA default is key_size)", x_signing_key_size);
+ parser.addOption("-signing_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_signing_key_curvename);
+ parser.addOption(
+ "-signing_signingalgorithm %s #Algorithm used be ocsp signing cert to sign objects (optional, default is signing_algorithm)",
+ x_signing_signingalgorithm);
+
+ // key and algorithm options for audit_signing certificate (overrides default)
+ parser.addOption("-audit_signing_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_audit_signing_key_type);
+ parser.addOption("-audit_signing_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_audit_signing_key_size);
+ parser.addOption(
+ "-audit_signing_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_audit_signing_key_curvename);
+
+ // key and algorithm options for subsystem certificate (overrides default)
+ parser.addOption("-subsystem_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_subsystem_key_type);
+ parser.addOption("-subsystem_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_subsystem_key_size);
+ parser.addOption("-subsystem_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_subsystem_key_curvename);
+
+ // key and algorithm options for sslserver certificate (overrides default)
+ parser.addOption("-sslserver_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_sslserver_key_type);
+ parser.addOption("-sslserver_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_sslserver_key_size);
+ parser.addOption("-sslserver_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_sslserver_key_curvename);
+
+ parser.addOption("-token_name %s #HSM/Software Token name",
+ x_token_name);
+ parser.addOption("-token_pwd %s #HSM/Software Token password (optional, required for HSM)",
+ x_token_pwd);
+
+ parser.addOption("-agent_key_size %s #Agent Cert Key Size",
+ x_agent_key_size);
+ parser.addOption("-agent_key_type %s #Agent Cert Key type [rsa]",
+ x_agent_key_type);
+ parser.addOption("-agent_cert_subject %s #Agent Cert Subject",
+ x_agent_cert_subject);
+
+ parser.addOption("-backup_pwd %s #PKCS12 password",
+ x_backup_pwd);
+
+ parser.addOption(
+ "-ocsp_sign_cert_subject_name %s #OCSP cert subject name",
+ x_ocsp_sign_cert_subject_name);
+ parser.addOption(
+ "-ocsp_subsystem_cert_subject_name %s #OCSP subsystem cert subject name",
+ x_ocsp_subsystem_cert_subject_name);
+ parser.addOption(
+ "-ocsp_server_cert_subject_name %s #OCSP server cert subject name",
+ x_ocsp_server_cert_subject_name);
+
+ parser.addOption("-backup_fname %s #Backup File for p12, (optional, default /root/tmp-ocsp.p12",
+ x_backup_fname);
+
+ parser.addOption(
+ "-subsystem_name %s #OCSP subsystem name",
+ x_subsystem_name);
+
+ parser.addOption(
+ "-ocsp_audit_signing_cert_subject_name %s #OCSP audit signing cert subject name",
+ x_ocsp_audit_signing_cert_subject_name);
+
+ // and then match the arguments
+ String[] unmatched = null;
+ unmatched = parser.matchAllArgs(args, 0, ArgParser.EXIT_ON_UNMATCHED);
+
+ if (unmatched != null) {
+ System.out.println("ERROR: Argument Mismatch");
+ System.exit(-1);
+ }
+
+ parser.checkRequiredArgs();
+
+ // set variables
+ cs_hostname = x_cs_hostname.value;
+ cs_port = x_cs_port.value;
+
+ sd_hostname = x_sd_hostname.value;
+ sd_ssl_port = x_sd_ssl_port.value;
+ sd_agent_port = x_sd_agent_port.value;
+ sd_admin_port = x_sd_admin_port.value;
+ sd_admin_name = x_sd_admin_name.value;
+ sd_admin_password = x_sd_admin_password.value;
+
+ ca_hostname = x_ca_hostname.value;
+ ca_port = x_ca_port.value;
+ ca_ssl_port = x_ca_ssl_port.value;
+
+ client_certdb_dir = x_client_certdb_dir.value;
+ client_certdb_pwd = x_client_certdb_pwd.value;
+ pin = x_preop_pin.value;
+ domain_name = x_domain_name.value;
+
+ admin_user = x_admin_user.value;
+ admin_email = x_admin_email.value;
+ admin_password = x_admin_password.value;
+ agent_name = x_agent_name.value;
+
+ ldap_host = x_ldap_host.value;
+ ldap_port = x_ldap_port.value;
+ bind_dn = x_bind_dn.value;
+ bind_password = x_bind_password.value;
+ base_dn = x_base_dn.value;
+ db_name = x_db_name.value;
+ secure_conn = set_default(x_secure_conn.value, "false");
+ remove_data = set_default(x_remove_data.value, "false");
+
+ key_type = set_default(x_key_type.value, DEFAULT_KEY_TYPE);
+ signing_key_type = set_default(x_signing_key_type.value, key_type);
+ audit_signing_key_type = set_default(x_audit_signing_key_type.value, key_type);
+ subsystem_key_type = set_default(x_subsystem_key_type.value, key_type);
+ sslserver_key_type = set_default(x_sslserver_key_type.value, key_type);
+
+ key_size = set_default(x_key_size.value, DEFAULT_KEY_SIZE);
+ signing_key_size = set_default(x_signing_key_size.value, key_size);
+ audit_signing_key_size = set_default(x_audit_signing_key_size.value, key_size);
+ subsystem_key_size = set_default(x_subsystem_key_size.value, key_size);
+ sslserver_key_size = set_default(x_sslserver_key_size.value, key_size);
+
+ key_curvename = set_default(x_key_curvename.value, DEFAULT_KEY_CURVENAME);
+ signing_key_curvename = set_default(x_signing_key_curvename.value, key_curvename);
+ audit_signing_key_curvename = set_default(x_audit_signing_key_curvename.value, key_curvename);
+ subsystem_key_curvename = set_default(x_subsystem_key_curvename.value, key_curvename);
+ sslserver_key_curvename = set_default(x_sslserver_key_curvename.value, key_curvename);
+
+ if (signing_key_type.equalsIgnoreCase("RSA")) {
+ signing_algorithm = set_default(x_signing_algorithm.value, DEFAULT_KEY_ALGORITHM_RSA);
+ } else {
+ signing_algorithm = set_default(x_signing_algorithm.value, DEFAULT_KEY_ALGORITHM_ECC);
+ }
+ signing_signingalgorithm = set_default(x_signing_signingalgorithm.value, signing_algorithm);
+
+ token_name = x_token_name.value;
+ token_pwd = x_token_pwd.value;
+
+ agent_key_size = x_agent_key_size.value;
+ agent_key_type = x_agent_key_type.value;
+ agent_cert_subject = x_agent_cert_subject.value;
+
+ backup_pwd = x_backup_pwd.value;
+ backup_fname = set_default(x_backup_fname.value, "/root/tmp-ocsp.p12");
+
+ ocsp_sign_cert_subject_name = x_ocsp_sign_cert_subject_name.value;
+ ocsp_subsystem_cert_subject_name =
+ x_ocsp_subsystem_cert_subject_name.value;
+ ocsp_server_cert_subject_name = x_ocsp_server_cert_subject_name.value;
+ ocsp_audit_signing_cert_subject_name = x_ocsp_audit_signing_cert_subject_name.value;
+
+ subsystem_name = x_subsystem_name.value;
+
+ boolean st = ca.ConfigureOCSPInstance();
+
+ if (!st) {
+ System.out.println("ERROR: unable to create OCSP");
+ System.exit(-1);
+ }
+
+ System.out.println("Certificate System - OCSP Instance Configured");
+ System.exit(0);
+
+ }
+
+};
diff --git a/base/silent/src/com/netscape/pkisilent/ConfigureRA.java b/base/silent/src/com/netscape/pkisilent/ConfigureRA.java
new file mode 100644
index 000000000..3de70a067
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/ConfigureRA.java
@@ -0,0 +1,881 @@
+package com.netscape.pkisilent;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.ByteArrayInputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+import com.netscape.pkisilent.argparser.ArgParser;
+import com.netscape.pkisilent.argparser.StringHolder;
+import com.netscape.pkisilent.common.ComCrypto;
+import com.netscape.pkisilent.common.ParseXML;
+import com.netscape.pkisilent.http.HTTPClient;
+import com.netscape.pkisilent.http.HTTPResponse;
+import com.netscape.cmsutil.util.Utils;
+
+public class ConfigureRA {
+
+ // define global variables
+
+ public static HTTPClient hc = null;
+
+ public static String login_uri = "/ra/admin/console/config/login";
+ public static String wizard_uri = "/ra/admin/console/config/wizard";
+ public static String admin_uri = "/ca/admin/ca/getBySerial";
+
+ public static String sd_login_uri = "/ca/admin/ca/securityDomainLogin";
+ public static String sd_get_cookie_uri = "/ca/admin/ca/getCookie";
+ public static String sd_update_domain_uri = "/ca/agent/ca/updateDomainXML";
+ public static String pkcs12_uri = "/ra/admin/console/config/savepkcs12";
+
+ public static String cs_hostname = null;
+ public static String cs_port = null;
+ public static String cs_clientauth_port = null;
+
+ public static String sd_hostname = null;
+ public static String sd_ssl_port = null;
+ public static String sd_agent_port = null;
+ public static String sd_admin_port = null;
+ public static String sd_admin_name = null;
+ public static String sd_admin_password = null;
+
+ public static String ca_hostname = null;
+ public static String ca_port = null;
+ public static String ca_ssl_port = null;
+ public static String ca_admin_port = null;
+
+ public static String client_certdb_dir = null;
+ public static String client_certdb_pwd = null;
+
+ // Login Panel
+ public static String pin = null;
+
+ public static String domain_name = null;
+
+ public static String admin_user = null;
+ public static String admin_email = null;
+ public static String admin_password = null;
+ public static String admin_serial_number = null;
+ public static String agent_name = null;
+
+ public static String key_size = null;
+ public static String key_type = null;
+ public static String token_name = null;
+ public static String token_pwd = null;
+
+ public static String agent_key_size = null;
+ public static String agent_key_type = null;
+ public static String agent_cert_subject = null;
+
+ public static String server_cert_name = null;
+ public static String server_cert_req = null;
+ public static String server_cert_pp = null;
+ public static String server_cert_cert = null;
+
+ public static String ra_subsystem_cert_name = null;
+ public static String ra_subsystem_cert_req = null;
+ public static String ra_subsystem_cert_pp = null;
+ public static String ra_subsystem_cert_cert = null;
+
+ // names
+ public static String ra_server_cert_subject_name = null;
+ public static String ra_server_cert_nickname = null;
+ public static String ra_subsystem_cert_subject_name = null;
+ public static String ra_subsystem_cert_nickname = null;
+ public static String subsystem_name = null;
+
+ // Security Domain Login Panel
+ public static String ra_session_id = null;
+
+ // Admin Certificate Request Panel
+ public static String requestor_name = null;
+
+ public ConfigureRA() {
+ // do nothing :)
+ }
+
+ public void sleep_time() {
+ try {
+ System.out.println("Sleeping for 5 secs..");
+ Thread.sleep(5000);
+ } catch (Exception e) {
+ System.out.println("ERROR: sleep problem");
+ }
+
+ }
+
+ public boolean LoginPanel() {
+ boolean st = false;
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "pin=" + pin + "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, login_uri, query_string);
+ System.out.println("xml returned: " + hr.getHTML());
+
+ // parse xml here - nothing to parse
+
+ // no cookie for ra
+ // get cookie
+ String temp = hr.getCookieValue("pin");
+
+ if (temp != null) {
+ int index = temp.indexOf(";");
+ HTTPClient.j_session_id = temp.substring(0, index);
+ st = true;
+ }
+
+ hr = null;
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ "p=0&op=next&xml=true");
+
+ // parse xml here
+
+ bais = new ByteArrayInputStream(
+ hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ st = true;
+ return st;
+ }
+
+ public boolean DomainPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String domain_url = "https://" + sd_hostname + ":" + sd_admin_port;
+
+ String query_string = "p=1" +
+ "&choice=existingdomain" +
+ "&sdomainURL=" +
+ URLEncoder.encode(domain_url, "UTF-8") +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+
+ }
+
+ public boolean DisplayChainPanel() {
+ String query_string = "p=2" + "&op=next" + "&xml=true";
+ hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ return true;
+
+ }
+
+ public boolean SecurityDomainLoginPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+
+ String ra_url = "https://" + cs_hostname + ":" + cs_port +
+ "/ra/admin/console/config/wizard" +
+ "?p=3&subsystem=RA";
+
+ String query_string = "url=" + URLEncoder.encode(ra_url, "UTF-8") + "";
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_login_uri, query_string);
+
+ String query_string_1 = "uid=" + sd_admin_name +
+ "&pwd=" + URLEncoder.encode(sd_admin_password, "UTF-8") +
+ "&url=" + URLEncoder.encode(ra_url, "UTF-8") +
+ "";
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_get_cookie_uri,
+ query_string_1);
+
+ // get session id from security domain
+ sleep_time();
+
+ ra_session_id = hr.getContentValue("header.session_id");
+ String ra_url_1 = hr.getContentValue("header.url");
+
+ System.out.println("RA_SESSION_ID=" + ra_session_id);
+ System.out.println("RA_URL=" + ra_url_1);
+
+ // use session id to connect back to RA
+
+ String query_string_2 = "p=3" +
+ "&subsystem=RA" +
+ "&session_id=" + ra_session_id +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ query_string_2);
+
+ // parse xml - no parsing
+
+ return true;
+
+ }
+
+ public boolean SubsystemPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ sleep_time();
+ String query_string = "p=3" +
+ "&choice=newsubsystem" +
+ "&subsystemName=" +
+ URLEncoder.encode(subsystem_name, "UTF-8") +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ sleep_time();
+
+ // CA choice panel
+ query_string = "p=4" +
+ "&urls=0" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean DBPanel() {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ // SQL LITE PANEL
+
+ String query_string = "p=5" + "&op=next" + "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean TokenChoicePanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ ////////////////////////////////////////////////////////
+ String query_string = null;
+
+ // Software Token
+ if (token_name.equalsIgnoreCase("internal")) {
+ query_string = "p=6" +
+ "&choice=" +
+ URLEncoder.encode("NSS Certificate DB", "UTF-8") +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+ }
+ // HSM
+ else {
+ // login to hsm first
+ query_string = "p=7" +
+ "&uTokName=" +
+ URLEncoder.encode(token_name, "UTF-8") +
+ "&__uPasswd=" +
+ URLEncoder.encode(token_pwd, "UTF-8") +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ // choice with token name now
+ query_string = "p=6" +
+ "&choice=" +
+ URLEncoder.encode(token_name, "UTF-8") +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ }
+
+ return true;
+ }
+
+ public boolean KeyPanel() {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=8" +
+ "&keytype=" + key_type +
+ "&choice=default" +
+ "&custom_size=" + key_size +
+ "&sslserver_keytype=" + key_type +
+ "&sslserver_choice=custom" +
+ "&sslserver_custom_size=" + key_size +
+ "&subsystem_keytype=" + key_type +
+ "&subsystem_choice=custom" +
+ "&subsystem_custom_size=" + key_size +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean CertSubjectPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=9" +
+ "&sslserver=" +
+ URLEncoder.encode(ra_server_cert_subject_name, "UTF-8") +
+ "&sslserver_nick=" +
+ URLEncoder.encode(ra_server_cert_nickname, "UTF-8") +
+ "&subsystem=" +
+ URLEncoder.encode(ra_subsystem_cert_subject_name, "UTF-8") +
+ "&subsystem_nick=" +
+ URLEncoder.encode(ra_subsystem_cert_nickname, "UTF-8") +
+ "&urls=0" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean CertificatePanel() {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=10" +
+ "&sslserver=" +
+ "&sslserver_cc=" +
+ "&subsystem=" +
+ "&subsystem_cc=" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean AdminCertReqPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ String admin_cert_request = null;
+
+ requestor_name = "RA-" + cs_hostname + "-" + cs_clientauth_port;
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ agent_cert_subject,
+ agent_key_size,
+ agent_key_type);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.setTransportCert(null);
+ cCrypt.setDualKey(false);
+ cCrypt.loginDB();
+
+ String crmf_request = cCrypt.generateCRMFrequest();
+
+ if (crmf_request == null) {
+ System.out.println("ERROR: AdminCertReqPanel() cert req gen failed");
+ return false;
+ }
+
+ admin_cert_request = crmf_request;
+
+ String query_string = "p=11" +
+ "&uid=" + admin_user +
+ "&name=" +
+ URLEncoder.encode("RA Administrator", "UTF-8") +
+ "&email=" +
+ URLEncoder.encode(admin_email, "UTF-8") +
+ "&__pwd=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&__admin_password_again=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&cert_request=" +
+ URLEncoder.encode(admin_cert_request, "UTF-8") +
+ "&display=0" +
+ "&profileId=" + "caAdminCert" +
+ "&cert_request_type=" + "crmf" +
+ "&import=true" +
+ "&uid=" + admin_user +
+ "&clone=0" +
+ "&securitydomain=" +
+ URLEncoder.encode(domain_name, "UTF-8") +
+ "&subject=" +
+ URLEncoder.encode(agent_cert_subject, "UTF-8") +
+ "&requestor_name=" +
+ URLEncoder.encode(requestor_name, "UTF-8") +
+ "&sessionID=" + ra_session_id +
+ "&auth_hostname=" + ca_hostname +
+ "&auth_port=" + ca_ssl_port +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ admin_serial_number = px.getvalue("serialNumber");
+
+ return true;
+ }
+
+ public boolean AdminCertImportPanel() throws UnsupportedEncodingException {
+ boolean st = false;
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ String cert_to_import = null;
+
+ String query_string = "serialNumber=" + admin_serial_number +
+ "&importCert=" + "true" +
+ "";
+
+ // NOTE: CA, DRM, OCSP, and TKS use the Security Domain Admin Port;
+ // whereas RA and TPS use the CA Admin Port associated with
+ // the 'CA choice panel' as invoked from the SubsystemPanel()
+ // which MAY or MAY NOT be the same CA as the CA specified
+ // by the Security Domain.
+ hr = hc.sslConnect(ca_hostname, ca_admin_port, admin_uri, query_string);
+
+ try {
+ // cert_to_import =
+ // new sun.misc.BASE64Encoder().encode(hr.getResponseData());
+ cert_to_import =
+ Utils.base64encode(hr.getResponseData());
+
+ } catch (Exception e) {
+ System.out.println("ERROR: failed to retrieve cert");
+ }
+
+ System.out.println("Imported Cert=" + cert_to_import);
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ String start = "-----BEGIN CERTIFICATE-----\r\n";
+ String end = "\r\n-----END CERTIFICATE-----";
+
+ st = cCrypt.importCert(start + cert_to_import + end, agent_name);
+ if (!st) {
+ System.out.println("ERROR: AdminCertImportPanel() during cert import");
+ return false;
+ }
+
+ System.out.println("SUCCESS: imported admin user cert");
+
+ String query_string_1 = "p=12" +
+ "&serialNumber=" + admin_serial_number +
+ "&caHost=" +
+ URLEncoder.encode(ca_hostname, "UTF-8") +
+ "&caPort=" + ca_admin_port +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string_1);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean ConfigureRAInstance() throws UnsupportedEncodingException {
+ // 0. login to cert db
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ // instantiate http client
+ hc = new HTTPClient();
+
+ sleep_time();
+ // 1. Login panel
+ boolean log_st = LoginPanel();
+ if (!log_st) {
+ System.out.println("ERROR: JSESSIONID not found.");
+ System.out.println("ERROR: ConfigureRA: LoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 2. domain panel
+ boolean dom_st = DomainPanel();
+ if (!dom_st) {
+ System.out.println("ERROR: ConfigureRA: DomainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 3. display cert chain panel
+ boolean disp_st = DisplayChainPanel();
+ if (!disp_st) {
+ System.out.println("ERROR: ConfigureRA: DisplayChainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // security domain login panel
+ boolean disp_sd = SecurityDomainLoginPanel();
+ if (!disp_sd) {
+ System.out.println("ERROR: ConfigureRA: SecurityDomainLoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 4. subsystem panel
+ boolean disp_ss = SubsystemPanel();
+ if (!disp_ss) {
+ System.out.println("ERROR: ConfigureRA: SubsystemPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 5. ldap connection panel
+ boolean disp_ldap = DBPanel();
+ if (!disp_ldap) {
+ System.out.println("ERROR: ConfigureRA: DBPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 6. Token Choice Panel
+ boolean disp_token = TokenChoicePanel();
+ if (!disp_token) {
+ System.out.println("ERROR: ConfigureRA: TokenChoicePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 8. Key Panel
+ boolean disp_key = KeyPanel();
+ if (!disp_key) {
+ System.out.println("ERROR: ConfigureRA: KeyPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 9. Cert Subject Panel
+ boolean disp_csubj = CertSubjectPanel();
+ if (!disp_csubj) {
+ System.out.println("ERROR: ConfigureRA: CertSubjectPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 10. Certificate Panel
+ boolean disp_cp = CertificatePanel();
+ if (!disp_cp) {
+ System.out.println("ERROR: ConfigureRA: CertificatePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 11. Admin Cert Req Panel
+ boolean disp_adm = AdminCertReqPanel();
+ if (!disp_adm) {
+ System.out.println("ERROR: ConfigureRA: AdminCertReqPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 12. Admin Cert import Panel
+ boolean disp_im = AdminCertImportPanel();
+ if (!disp_im) {
+ System.out.println("ERROR: ConfigureRA: AdminCertImportPanel() failure");
+ return false;
+ }
+
+ return true;
+ }
+
+ public static void main(String args[]) throws UnsupportedEncodingException {
+ ConfigureRA ca = new ConfigureRA();
+
+ // set variables
+ StringHolder x_cs_hostname = new StringHolder();
+ StringHolder x_cs_port = new StringHolder();
+ StringHolder x_cs_clientauth_port = new StringHolder();
+
+ StringHolder x_sd_hostname = new StringHolder();
+ StringHolder x_sd_ssl_port = new StringHolder();
+ StringHolder x_sd_agent_port = new StringHolder();
+ StringHolder x_sd_admin_port = new StringHolder();
+ StringHolder x_sd_admin_name = new StringHolder();
+ StringHolder x_sd_admin_password = new StringHolder();
+
+ StringHolder x_ca_hostname = new StringHolder();
+ StringHolder x_ca_port = new StringHolder();
+ StringHolder x_ca_ssl_port = new StringHolder();
+ StringHolder x_ca_admin_port = new StringHolder();
+
+ StringHolder x_client_certdb_dir = new StringHolder();
+ StringHolder x_client_certdb_pwd = new StringHolder();
+ StringHolder x_preop_pin = new StringHolder();
+
+ StringHolder x_domain_name = new StringHolder();
+
+ StringHolder x_admin_user = new StringHolder();
+ StringHolder x_admin_email = new StringHolder();
+ StringHolder x_admin_password = new StringHolder();
+
+ // key size
+ StringHolder x_token_name = new StringHolder();
+ StringHolder x_token_pwd = new StringHolder();
+ StringHolder x_key_size = new StringHolder();
+ StringHolder x_key_type = new StringHolder();
+
+ StringHolder x_agent_key_size = new StringHolder();
+ StringHolder x_agent_key_type = new StringHolder();
+ StringHolder x_agent_cert_subject = new StringHolder();
+
+ StringHolder x_agent_name = new StringHolder();
+
+ // ra cert subject name params
+ StringHolder x_ra_server_cert_subject_name = new StringHolder();
+ StringHolder x_ra_server_cert_nickname = new StringHolder();
+ StringHolder x_ra_subsystem_cert_subject_name = new StringHolder();
+ StringHolder x_ra_subsystem_cert_nickname = new StringHolder();
+
+ // subsystemName
+ StringHolder x_subsystem_name = new StringHolder();
+
+ // parse the args
+ ArgParser parser = new ArgParser("ConfigureRA");
+
+ parser.addOption("-cs_hostname %s #CS Hostname",
+ x_cs_hostname);
+ parser.addOption("-cs_port %s #CS SSL port",
+ x_cs_port);
+ parser.addOption("-cs_clientauth_port %s #CS SSL port",
+ x_cs_clientauth_port);
+
+ parser.addOption("-sd_hostname %s #Security Domain Hostname",
+ x_sd_hostname);
+ parser.addOption("-sd_ssl_port %s #Security Domain SSL EE port",
+ x_sd_ssl_port);
+ parser.addOption("-sd_agent_port %s #Security Domain SSL Agent port",
+ x_sd_agent_port);
+ parser.addOption("-sd_admin_port %s #Security Domain SSL Admin port",
+ x_sd_admin_port);
+ parser.addOption("-sd_admin_name %s #Security Domain username",
+ x_sd_admin_name);
+ parser.addOption("-sd_admin_password %s #Security Domain password",
+ x_sd_admin_password);
+
+ parser.addOption("-ca_hostname %s #CA Hostname",
+ x_ca_hostname);
+ parser.addOption("-ca_port %s #CA non-SSL port",
+ x_ca_port);
+ parser.addOption("-ca_ssl_port %s #CA SSL port",
+ x_ca_ssl_port);
+ parser.addOption("-ca_admin_port %s #CA SSL Admin port",
+ x_ca_admin_port);
+
+ parser.addOption("-client_certdb_dir %s #Client CertDB dir",
+ x_client_certdb_dir);
+ parser.addOption("-client_certdb_pwd %s #client certdb password",
+ x_client_certdb_pwd);
+ parser.addOption("-preop_pin %s #pre op pin",
+ x_preop_pin);
+ parser.addOption("-domain_name %s #domain name",
+ x_domain_name);
+ parser.addOption("-admin_user %s #Admin User Name",
+ x_admin_user);
+ parser.addOption("-admin_email %s #Admin email",
+ x_admin_email);
+ parser.addOption("-admin_password %s #Admin password",
+ x_admin_password);
+ parser.addOption("-agent_name %s #Agent Cert Nickname",
+ x_agent_name);
+
+ parser.addOption("-token_name %s #HSM/Software Token name",
+ x_token_name);
+ parser.addOption("-token_pwd %s #HSM/Software Token password",
+ x_token_pwd);
+ parser.addOption("-key_size %s #Key Size",
+ x_key_size);
+ parser.addOption("-key_type %s #Key type [rsa,ecc]",
+ x_key_type);
+
+ parser.addOption("-agent_key_size %s #Agent Cert Key Size",
+ x_agent_key_size);
+ parser.addOption("-agent_key_type %s #Agent cert Key type [rsa]",
+ x_agent_key_type);
+ parser.addOption("-agent_cert_subject %s #Agent cert Subject",
+ x_agent_cert_subject);
+
+ parser.addOption(
+ "-ra_server_cert_subject_name %s #RA server cert subject name",
+ x_ra_server_cert_subject_name);
+ parser.addOption(
+ "-ra_server_cert_nickname %s #RA server cert nickname",
+ x_ra_server_cert_nickname);
+ parser.addOption(
+ "-ra_subsystem_cert_subject_name %s #RA subsystem cert subject name",
+ x_ra_subsystem_cert_subject_name);
+ parser.addOption(
+ "-ra_subsystem_cert_nickname %s #RA subsystem cert nickname",
+ x_ra_subsystem_cert_nickname);
+
+ parser.addOption(
+ "-subsystem_name %s #RA subsystem name",
+ x_subsystem_name);
+
+ // and then match the arguments
+ String[] unmatched = null;
+ unmatched = parser.matchAllArgs(args, 0, ArgParser.EXIT_ON_UNMATCHED);
+
+ if (unmatched != null) {
+ System.out.println("ERROR: Argument Mismatch");
+ System.exit(-1);
+ }
+
+ // set variables
+ cs_hostname = x_cs_hostname.value;
+ cs_port = x_cs_port.value;
+ cs_clientauth_port = x_cs_clientauth_port.value;
+
+ sd_hostname = x_sd_hostname.value;
+ sd_ssl_port = x_sd_ssl_port.value;
+ sd_agent_port = x_sd_agent_port.value;
+ sd_admin_port = x_sd_admin_port.value;
+ sd_admin_name = x_sd_admin_name.value;
+ sd_admin_password = x_sd_admin_password.value;
+
+ ca_hostname = x_ca_hostname.value;
+ ca_port = x_ca_port.value;
+ ca_ssl_port = x_ca_ssl_port.value;
+ ca_admin_port = x_ca_admin_port.value;
+
+ client_certdb_dir = x_client_certdb_dir.value;
+ client_certdb_pwd = x_client_certdb_pwd.value;
+ pin = x_preop_pin.value;
+ domain_name = x_domain_name.value;
+
+ admin_user = x_admin_user.value;
+ admin_email = x_admin_email.value;
+ admin_password = x_admin_password.value;
+ agent_name = x_agent_name.value;
+
+ key_size = x_key_size.value;
+ key_type = x_key_type.value;
+ token_name = x_token_name.value;
+ token_pwd = x_token_pwd.value;
+
+ agent_key_size = x_agent_key_size.value;
+ agent_key_type = x_agent_key_type.value;
+ agent_cert_subject = x_agent_cert_subject.value;
+
+ ra_server_cert_subject_name =
+ x_ra_server_cert_subject_name.value;
+ ra_server_cert_nickname =
+ x_ra_server_cert_nickname.value;
+ ra_subsystem_cert_subject_name =
+ x_ra_subsystem_cert_subject_name.value;
+ ra_subsystem_cert_nickname =
+ x_ra_subsystem_cert_nickname.value;
+
+ subsystem_name = x_subsystem_name.value;
+
+ boolean st = ca.ConfigureRAInstance();
+
+ if (!st) {
+ System.out.println("ERROR: unable to create RA");
+ System.exit(-1);
+ }
+
+ System.out.println("Certificate System - RA Instance Configured");
+ System.exit(0);
+
+ }
+
+};
diff --git a/base/silent/src/com/netscape/pkisilent/ConfigureSubCA.java b/base/silent/src/com/netscape/pkisilent/ConfigureSubCA.java
new file mode 100644
index 000000000..706827c74
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/ConfigureSubCA.java
@@ -0,0 +1,1249 @@
+package com.netscape.pkisilent;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.ByteArrayInputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+
+import com.netscape.pkisilent.argparser.ArgParser;
+import com.netscape.pkisilent.argparser.StringHolder;
+import com.netscape.pkisilent.common.ComCrypto;
+import com.netscape.pkisilent.common.ParseXML;
+import com.netscape.pkisilent.http.HTTPClient;
+import com.netscape.pkisilent.http.HTTPResponse;
+import com.netscape.cmsutil.util.Utils;
+
+public class ConfigureSubCA {
+
+ // global constants
+ public static final String DEFAULT_KEY_TYPE = "RSA";
+ public static final String DEFAULT_KEY_SIZE = "2048";
+ public static final String DEFAULT_KEY_CURVENAME = "nistp256";
+ public static final String DEFAULT_KEY_ALGORITHM_RSA = "SHA256withRSA";
+ public static final String DEFAULT_KEY_ALGORITHM_ECC = "SHA256withEC";
+
+ // define global variables
+
+ public static HTTPClient hc = null;
+
+ public static String login_uri = "/ca/admin/console/config/login";
+ public static String wizard_uri = "/ca/admin/console/config/wizard";
+ public static String admin_uri = "/ca/admin/ca/getBySerial";
+
+ public static String sd_login_uri = "/ca/admin/ca/securityDomainLogin";
+ public static String sd_get_cookie_uri = "/ca/admin/ca/getCookie";
+ public static String pkcs12_uri = "/ca/admin/console/config/savepkcs12";
+
+ public static String cs_hostname = null;
+ public static String cs_port = null;
+
+ public static String sd_hostname = null;
+ public static String sd_ssl_port = null;
+ public static String sd_agent_port = null;
+ public static String sd_admin_port = null;
+ public static String sd_admin_name = null;
+ public static String sd_admin_password = null;
+
+ public static String ca_hostname = null;
+ public static String ca_port = null;
+ public static String ca_ssl_port = null;
+
+ public static String client_certdb_dir = null;
+ public static String client_certdb_pwd = null;
+
+ // Login Panel
+ public static String pin = null;
+
+ public static String domain_name = null;
+
+ public static String admin_user = null;
+ public static String admin_email = null;
+ public static String admin_password = null;
+ public static String admin_serial_number = null;
+ public static String agent_name = null;
+
+ public static String ldap_host = null;
+ public static String ldap_port = null;
+ public static String bind_dn = null;
+ public static String bind_password = null;
+ public static String base_dn = null;
+ public static String db_name = null;
+ public static String secure_conn = null;
+ public static String remove_data = null;
+
+ public static String key_type = null;
+ public static String key_size = null;
+ public static String key_curvename = null;
+ public static String key_algorithm = null;
+ public static String signing_algorithm = null;
+
+ public static String signing_key_type = null;
+ public static String signing_key_size = null;
+ public static String signing_key_curvename = null;
+ public static String signing_signingalgorithm = null;
+
+ public static String ocsp_signing_key_type = null;
+ public static String ocsp_signing_key_size = null;
+ public static String ocsp_signing_key_curvename = null;
+ public static String ocsp_signing_signingalgorithm = null;
+
+ public static String subsystem_key_type = null;
+ public static String subsystem_key_size = null;
+ public static String subsystem_key_curvename = null;
+
+ public static String audit_signing_key_type = null;
+ public static String audit_signing_key_size = null;
+ public static String audit_signing_key_curvename = null;
+
+ public static String sslserver_key_type = null;
+ public static String sslserver_key_size = null;
+ public static String sslserver_key_curvename = null;
+
+ public static String token_name = null;
+ public static String token_pwd = null;
+
+ public static String agent_key_size = null;
+ public static String agent_key_type = null;
+ public static String agent_cert_subject = null;
+
+ public static String ca_cert_name = null;
+ public static String ca_cert_req = null;
+ public static String ca_cert_pp = null;
+ public static String ca_cert_cert = null;
+
+ public static String ocsp_cert_name = null;
+ public static String ocsp_cert_req = null;
+ public static String ocsp_cert_pp = null;
+ public static String ocsp_cert_cert = null;
+
+ public static String server_cert_name = null;
+ public static String server_cert_req = null;
+ public static String server_cert_pp = null;
+ public static String server_cert_cert = null;
+
+ public static String ca_subsystem_cert_name = null;
+ public static String ca_subsystem_cert_req = null;
+ public static String ca_subsystem_cert_pp = null;
+ public static String ca_subsystem_cert_cert = null;
+
+ public static String ca_audit_signing_cert_name = null;
+ public static String ca_audit_signing_cert_req = null;
+ public static String ca_audit_signing_cert_pp = null;
+ public static String ca_audit_signing_cert_cert = null;
+
+ public static String backup_pwd = null;
+
+ public static String subsystem_name = null;
+
+ // names
+ public static String subca_sign_cert_subject_name = null;
+ public static String subca_subsystem_cert_subject_name = null;
+ public static String subca_ocsp_cert_subject_name = null;
+ public static String subca_server_cert_subject_name = null;
+ public static String subca_audit_signing_cert_subject_name = null;
+
+ public ConfigureSubCA() {
+ // do nothing :)
+ }
+
+ public void sleep_time() {
+ try {
+ System.out.println("Sleeping for 5 secs..");
+ Thread.sleep(5000);
+ } catch (Exception e) {
+ System.out.println("ERROR: sleep problem");
+ }
+
+ }
+
+ public boolean LoginPanel() {
+ boolean st = false;
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "pin=" + pin + "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, login_uri, query_string);
+ System.out.println("xml returned: " + hr.getHTML());
+
+ // parse xml here - nothing to parse
+
+ // get cookie
+ String temp = hr.getCookieValue("JSESSIONID");
+
+ if (temp != null) {
+ int index = temp.indexOf(";");
+ HTTPClient.j_session_id = temp.substring(0, index);
+ st = true;
+ }
+
+ hr = null;
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ "p=0&op=next&xml=true");
+
+ // parse xml here
+
+ bais = new ByteArrayInputStream(
+ hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return st;
+ }
+
+ public boolean TokenChoicePanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ ///////////////////////////////////////////////////////
+ String query_string = null;
+
+ // Software Token
+ if (token_name.equalsIgnoreCase("internal")) {
+ query_string = "p=1" + "&op=next" + "&xml=true" +
+ "&choice=" +
+ URLEncoder.encode("Internal Key Storage Token", "UTF-8") +
+ "";
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+ }
+ // HSM
+ else {
+ // login to hsm first
+ query_string = "p=2" + "&op=next" + "&xml=true" +
+ "&uTokName=" +
+ URLEncoder.encode(token_name, "UTF-8") +
+ "&__uPasswd=" +
+ URLEncoder.encode(token_pwd, "UTF-8") +
+ "";
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ // choice with token name now
+ query_string = "p=1" + "&op=next" + "&xml=true" +
+ "&choice=" +
+ URLEncoder.encode(token_name, "UTF-8") +
+ "";
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ }
+
+ return true;
+ }
+
+ public boolean DomainPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String domain_url = "https://" + sd_hostname + ":" + sd_admin_port;
+
+ String query_string = "sdomainURL=" +
+ URLEncoder.encode(domain_url, "UTF-8") +
+ "&sdomainName=" +
+ URLEncoder.encode(domain_name, "UTF-8") +
+ "&choice=existingdomain" +
+ "&p=3" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ String query_string_1 = "p=4" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string_1);
+
+ return true;
+
+ }
+
+ public boolean SecurityDomainLoginPanel() throws UnsupportedEncodingException {
+ String subca_url = "https://" + cs_hostname + ":" + cs_port +
+ "/ca/admin/console/config/wizard" +
+ "?p=5&subsystem=CA";
+
+ String query_string = "url=" + URLEncoder.encode(subca_url, "UTF-8");
+
+ HTTPResponse hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_login_uri, query_string);
+
+ String query_string_1 = "uid=" + sd_admin_name +
+ "&pwd=" + URLEncoder.encode(sd_admin_password, "UTF-8") +
+ "&url=" + URLEncoder.encode(subca_url, "UTF-8");
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_get_cookie_uri,
+ query_string_1);
+
+ // get session id from security domain
+
+ String subca_session_id = hr.getContentValue("header.session_id");
+ String subca_url_1 = hr.getContentValue("header.url");
+
+ System.out.println("SUBCA_SESSION_ID=" + subca_session_id);
+ System.out.println("SUBCA_URL=" + subca_url_1);
+
+ // use session id to connect back to subCA
+
+ String query_string_2 = "p=5" +
+ "&subsystem=CA" +
+ "&session_id=" + subca_session_id +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ query_string_2);
+
+ return true;
+
+ }
+
+ public boolean DisplayChainPanel() throws UnsupportedEncodingException {
+ String query_string = "p=5" + "&op=next" + "&xml=true" +
+ "&choice=newsubsystem" +
+ "&subsystemName=" +
+ URLEncoder.encode(subsystem_name, "UTF-8") +
+ "&subsystemName=" +
+ URLEncoder.encode(subsystem_name, "UTF-8") +
+ "&urls=0";
+ hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ // bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ // px.parse(bais);
+ // px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean HierarchyPanel() {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=8" + "&op=next" + "&xml=true" +
+ "&choice=join";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+
+ }
+
+ public boolean LdapConnectionPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=9" + "&op=next" + "&xml=true" +
+ "&host=" + URLEncoder.encode(ldap_host, "UTF-8") +
+ "&port=" + URLEncoder.encode(ldap_port, "UTF-8") +
+ "&basedn=" + URLEncoder.encode(base_dn, "UTF-8") +
+ "&database=" + URLEncoder.encode(db_name, "UTF-8") +
+ "&binddn=" + URLEncoder.encode(bind_dn, "UTF-8") +
+ "&__bindpwd=" + URLEncoder.encode(bind_password, "UTF-8") +
+ "&display=" + URLEncoder.encode("$displayStr", "UTF-8") +
+ (secure_conn.equals("true") ? "&secureConn=on" : "") +
+ (remove_data.equals("true") ? "&removeData=true" : "");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean KeyPanel() {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ ArrayList<String> al = null;
+
+ String query_string = "p=10" + "&op=next" + "&xml=true"
+ + "&subsystem_custom_size=" + subsystem_key_size
+ + "&subsystem_custom_curvename=" + subsystem_key_curvename
+ + "&subsystem_keytype=" + subsystem_key_type
+ + "&subsystem_choice=custom"
+ + "&sslserver_custom_size=" + sslserver_key_size
+ + "&sslserver_custom_curvename=" + sslserver_key_curvename
+ + "&sslserver_keytype=" + sslserver_key_type
+ + "&sslserver_choice=custom"
+ + "&signing_custom_size=" + signing_key_size
+ + "&signing_custom_curvename=" + signing_key_curvename
+ + "&signing_keytype=" + signing_key_type
+ + "&signing_choice=custom"
+ + "&signing_keyalgorithm=" + key_algorithm
+ + "&signing_signingalgorithm=" + signing_signingalgorithm
+ + "&ocsp_signing_custom_size=" + ocsp_signing_key_size
+ + "&ocsp_signing_custom_curvename=" + ocsp_signing_key_curvename
+ + "&ocsp_signing_keytype=" + ocsp_signing_key_type
+ + "&ocsp_signing_choice=custom"
+ + "&ocsp_signing_signingalgorithm=" + ocsp_signing_signingalgorithm
+ + "&audit_signing_custom_size=" + audit_signing_key_size
+ + "&audit_signing_custom_curvename=" + audit_signing_key_curvename
+ + "&audit_signing_keytype=" + audit_signing_key_type
+ + "&audit_signing_choice=custom"
+ + "&custom_size=" + key_size
+ + "&custom_curvename=" + key_curvename
+ + "&keytype=" + key_type
+ + "&choice=custom"
+ + "&signingalgorithm=" + signing_algorithm
+ + "&keyalgorithm=" + key_algorithm;
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ al = px.constructValueList("CertReqPair", "DN");
+ // get ca cert subject name
+ if (al != null) {
+ for (int i = 0; i < al.size(); i++) {
+ String temp = al.get(i);
+ if (temp.indexOf("Certificate Authority") > 0) {
+ ca_cert_name = temp;
+ } else if (temp.indexOf("OCSP Signing Certificate") > 0) {
+ ocsp_cert_name = temp;
+ } else if (temp.indexOf("Subsystem Certificate") > 0) {
+ ca_subsystem_cert_name = temp;
+ } else if (temp.indexOf("Audit Signing Certificate") > 0) {
+ ca_audit_signing_cert_name = temp;
+ } else {
+ server_cert_name = temp;
+ }
+ }
+ }
+
+ System.out.println("default: ca_cert_name=" + ca_cert_name);
+ System.out.println("default: ocsp_cert_name=" + ocsp_cert_name);
+ System.out.println("default: ca_subsystem_cert_name=" +
+ ca_subsystem_cert_name);
+ System.out.println("default: server_cert_name=" + server_cert_name);
+ System.out.println("default: ca_audit_signing_cert_name=" +
+ ca_audit_signing_cert_name);
+ return true;
+ }
+
+ public boolean CertSubjectPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ ArrayList<String> req_list = null;
+ ArrayList<String> cert_list = null;
+ ArrayList<String> dn_list = null;
+
+ String query_string = "p=11" + "&op=next" + "&xml=true" +
+ "&signing=" +
+ URLEncoder.encode(subca_sign_cert_subject_name, "UTF-8") +
+ "&ocsp_signing=" +
+ URLEncoder.encode(subca_ocsp_cert_subject_name, "UTF-8") +
+ "&sslserver=" +
+ URLEncoder.encode(subca_server_cert_subject_name, "UTF-8") +
+ "&subsystem=" +
+ URLEncoder.encode(subca_subsystem_cert_subject_name, "UTF-8") +
+ "&audit_signing=" +
+ URLEncoder.encode(subca_audit_signing_cert_subject_name, "UTF-8") +
+ "&urls=0" +
+ "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ req_list = px.constructValueList("CertReqPair", "Request");
+ cert_list = px.constructValueList("CertReqPair", "Certificate");
+ dn_list = px.constructValueList("CertReqPair", "Nickname");
+
+ System.out.println("req_list_size=" + req_list.size());
+ System.out.println("cert_list_size=" + cert_list.size());
+ System.out.println("dn_list_size=" + dn_list.size());
+
+ if (req_list != null && cert_list != null && dn_list != null) {
+ for (int i = 0; i < dn_list.size(); i++) {
+ String temp = dn_list.get(i);
+
+ if (temp.indexOf("caSigningCert") >= 0) {
+ ca_cert_req = req_list.get(i);
+ ca_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("ocspSigningCert") >= 0) {
+ ocsp_cert_req = req_list.get(i);
+ ocsp_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("subsystemCert") >= 0) {
+ ca_subsystem_cert_req = req_list.get(i);
+ ca_subsystem_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("auditSigningCert") >= 0) {
+ ca_audit_signing_cert_req = req_list.get(i);
+ ca_audit_signing_cert_cert = cert_list.get(i);
+ } else {
+ server_cert_req = req_list.get(i);
+ server_cert_cert = cert_list.get(i);
+ }
+ }
+ }
+
+ System.out.println("ca_cert_name=" + subca_sign_cert_subject_name);
+ System.out.println("ocsp_cert_name=" + subca_ocsp_cert_subject_name);
+ System.out.println("ca_subsystem_cert_name=" +
+ subca_subsystem_cert_subject_name);
+ System.out.println("server_cert_name=" +
+ subca_server_cert_subject_name);
+ System.out.println("audit_signing_cert_name=" +
+ subca_audit_signing_cert_subject_name);
+
+ System.out.println("ca_cert_req=" + ca_cert_req);
+ System.out.println("ocsp_cert_req=" + ocsp_cert_req);
+ System.out.println("ca_subsystem_cert_req=" + ca_subsystem_cert_req);
+ System.out.println("server_cert_req=" + server_cert_req);
+ System.out.println("ca_audit_siging_cert_req=" +
+ ca_audit_signing_cert_req);
+
+ System.out.println("ca_cert_cert=" + ca_cert_cert);
+ System.out.println("ocsp_cert_cert=" + ocsp_cert_cert);
+ System.out.println("ca_subsystem_cert_cert=" + ca_subsystem_cert_cert);
+ System.out.println("server_cert_cert=" + server_cert_cert);
+ System.out.println("ca_audit_signing_cert_cert=" +
+ ca_audit_signing_cert_cert);
+
+ return true;
+ }
+
+ public boolean CertificatePanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=12" + "&op=next" + "&xml=true" +
+ "&signing=" +
+ URLEncoder.encode(ca_cert_cert, "UTF-8") +
+ "&signing_cc=" +
+ "&ocsp_signing=" +
+ URLEncoder.encode(ocsp_cert_cert, "UTF-8") +
+ "&ocsp_signing_cc=" +
+ "&sslserver=" +
+ URLEncoder.encode(server_cert_cert, "UTF-8") +
+ "&sslserver_cc=" +
+ "&subsystem=" +
+ URLEncoder.encode(ca_subsystem_cert_cert, "UTF-8") +
+ "&subsystem_cc=" +
+ "&audit_signing=" +
+ URLEncoder.encode(ca_audit_signing_cert_cert, "UTF-8") +
+ "&audit_signing_cc=" +
+ "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean BackupPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=13" + "&op=next" + "&xml=true" +
+ "&choice=backupkey" +
+ "&__pwd=" + URLEncoder.encode(backup_pwd, "UTF-8") +
+ "&__pwdagain=" + URLEncoder.encode(backup_pwd, "UTF-8");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean ImportCACertPanel() {
+ try {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ "p=15&op=next&xml=true");
+
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ } catch (Exception e) {
+ System.out.println("Exception in ImportCACertPanel(): " + e.toString());
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public boolean AdminCertReqPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ String admin_cert_request = null;
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ agent_cert_subject,
+ agent_key_size,
+ agent_key_type);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.setTransportCert(null);
+ cCrypt.setDualKey(false);
+ cCrypt.loginDB();
+
+ String crmf_request = cCrypt.generateCRMFrequest();
+
+ if (crmf_request == null) {
+ System.out.println("ERROR: AdminCertReqPanel() cert req gen failed");
+ return false;
+ }
+
+ admin_cert_request = crmf_request;
+
+ String query_string = "p=16" + "&op=next" + "&xml=true" +
+ "&uid=" + admin_user +
+ "&name=" + URLEncoder.encode(agent_name, "UTF-8") +
+ "&email=" +
+ URLEncoder.encode(admin_email, "UTF-8") +
+ "&__pwd=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&__admin_password_again=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&cert_request=" +
+ URLEncoder.encode(admin_cert_request, "UTF-8") +
+ "&display=" + URLEncoder.encode("$displayStr", "UTF-8") +
+ "&profileId=" + "caAdminCert" +
+ "&cert_request_type=" + "crmf" +
+ "&import=true" +
+ "&uid=" + admin_user +
+ "&securitydomain=" +
+ URLEncoder.encode(domain_name, "UTF-8") +
+ "&subject=" +
+ URLEncoder.encode(agent_cert_subject, "UTF-8") +
+ "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ admin_serial_number = px.getvalue("serialNumber");
+
+ return true;
+ }
+
+ public boolean AdminCertImportPanel() {
+ boolean st = false;
+
+ String query_string = "serialNumber=" + admin_serial_number +
+ "&importCert=" + "true" +
+ "";
+
+ HTTPResponse hr = hc.sslConnect(cs_hostname, cs_port, admin_uri, query_string);
+
+ // get response data
+ // String cert_to_import =
+ // new sun.misc.BASE64Encoder().encode(hr.getResponseData());
+ String cert_to_import =
+ Utils.base64encode(hr.getResponseData());
+ System.out.println("Imported Cert=" + cert_to_import);
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ String start = "-----BEGIN CERTIFICATE-----\r\n";
+ String end = "\r\n-----END CERTIFICATE-----";
+
+ st = cCrypt.importCert(start + cert_to_import + end, agent_name);
+ if (!st) {
+ System.out.println("ERROR: AdminCertImportPanel() during cert import");
+ return false;
+ }
+
+ System.out.println("SUCCESS: imported admin user cert: " + agent_name);
+
+ return true;
+ }
+
+ public boolean UpdateDomainPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=17" +
+ "&serialNumber=" + admin_serial_number +
+ "&caHost=" + URLEncoder.encode(sd_hostname, "UTF-8") +
+ "&caPort=" + URLEncoder.encode(sd_admin_port, "UTF-8") +
+ "&importCert=" + "true" +
+ "&op=next" + "&xml=true" +
+ "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ String caHost = px.getvalue("host");
+ String caPort = px.getvalue("port");
+ String systemType = px.getvalue("systemType");
+
+ System.out.println("caHost=" + caHost);
+ System.out.println("caPort=" + caPort);
+ System.out.println("systemType=" + systemType);
+
+ return true;
+ }
+
+ public boolean ConfigureSubCAInstance() throws UnsupportedEncodingException {
+ // 0. login to cert db
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ // instantiate http client
+ hc = new HTTPClient();
+
+ sleep_time();
+ // 0. Login panel
+ boolean log_st = LoginPanel();
+ if (!log_st) {
+ System.out.println("ERROR: ConfigureSubCA: LoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 1. Token Choice Panel
+ boolean disp_token = TokenChoicePanel();
+ if (!disp_token) {
+ System.out.println("ERROR: ConfigureSubCA: TokenChoicePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 2. domain panel
+ boolean dom_st = DomainPanel();
+ if (!dom_st) {
+ System.out.println("ERROR: ConfigureSubCA: DomainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 3. domain panel
+ boolean sd_st = SecurityDomainLoginPanel();
+ if (!sd_st) {
+ System.out.println("ERROR: ConfigureSubCA: SecurityDomainLoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 4. display cert chain panel
+ boolean disp_st = DisplayChainPanel();
+ if (!disp_st) {
+ System.out.println("ERROR: ConfigureSubCA: DisplayChainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 6. hierarchy panel
+ boolean disp_h = HierarchyPanel();
+ if (!disp_h) {
+ System.out.println("ERROR: ConfigureSubCA: HierarchyPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 7. ldap connection panel
+ boolean disp_ldap = LdapConnectionPanel();
+ if (!disp_ldap) {
+ System.out.println("ERROR: ConfigureSubCA: LdapConnectionPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ sleep_time();
+ // 10. Key Panel
+ boolean disp_key = KeyPanel();
+ if (!disp_key) {
+ System.out.println("ERROR: ConfigureSubCA: KeyPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 11. Cert Subject Panel
+ boolean disp_csubj = CertSubjectPanel();
+ if (!disp_csubj) {
+ System.out.println("ERROR: ConfigureSubCA: CertSubjectPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 12. Certificate Panel
+ boolean disp_cp = CertificatePanel();
+ if (!disp_cp) {
+ System.out.println("ERROR: ConfigureSubCA: CertificatePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 13. Backup Panel
+ boolean disp_back = BackupPanel();
+ if (!disp_back) {
+ System.out.println("ERROR: ConfigureSubCA: BackupPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 15. Import CA Certificate Panel
+ boolean disp_cert = ImportCACertPanel();
+ if (!disp_cert) {
+ System.out.println("ERROR: ConfigureSubCA: ImportCACertPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 16. Admin Cert Req Panel
+ boolean disp_adm = AdminCertReqPanel();
+ if (!disp_adm) {
+ System.out.println("ERROR: ConfigureSubCA: AdminCertReqPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ boolean disp_im = AdminCertImportPanel();
+ if (!disp_im) {
+ System.out.println("ERROR: ConfigureSubCA: AdminCertImportPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 17. Update Domain Panel
+ boolean disp_ud = UpdateDomainPanel();
+ if (!disp_ud) {
+ System.out.println("ERROR: ConfigureSubCA: UpdateDomainPanel() failure");
+ return false;
+ }
+
+ return true;
+ }
+
+ private static String set_default(String val, String def) {
+ if ((val == null) || (val.equals(""))) {
+ return def;
+ } else {
+ return val;
+ }
+ }
+
+ public static void main(String args[]) throws UnsupportedEncodingException {
+ ConfigureSubCA ca = new ConfigureSubCA();
+
+ // set variables
+ StringHolder x_cs_hostname = new StringHolder();
+ StringHolder x_cs_port = new StringHolder();
+
+ StringHolder x_sd_hostname = new StringHolder();
+ StringHolder x_sd_ssl_port = new StringHolder();
+ StringHolder x_sd_agent_port = new StringHolder();
+ StringHolder x_sd_admin_port = new StringHolder();
+ StringHolder x_sd_admin_name = new StringHolder();
+ StringHolder x_sd_admin_password = new StringHolder();
+
+ StringHolder x_ca_hostname = new StringHolder();
+ StringHolder x_ca_port = new StringHolder();
+ StringHolder x_ca_ssl_port = new StringHolder();
+
+ StringHolder x_client_certdb_dir = new StringHolder();
+ StringHolder x_client_certdb_pwd = new StringHolder();
+ StringHolder x_preop_pin = new StringHolder();
+
+ StringHolder x_domain_name = new StringHolder();
+
+ StringHolder x_admin_user = new StringHolder();
+ StringHolder x_admin_email = new StringHolder();
+ StringHolder x_admin_password = new StringHolder();
+
+ // ldap
+ StringHolder x_ldap_host = new StringHolder();
+ StringHolder x_ldap_port = new StringHolder();
+ StringHolder x_bind_dn = new StringHolder();
+ StringHolder x_bind_password = new StringHolder();
+ StringHolder x_base_dn = new StringHolder();
+ StringHolder x_db_name = new StringHolder();
+ StringHolder x_secure_conn = new StringHolder();
+ StringHolder x_remove_data = new StringHolder();
+
+ // key properties (defaults)
+ StringHolder x_key_size = new StringHolder();
+ StringHolder x_key_type = new StringHolder();
+ StringHolder x_key_curvename = new StringHolder();
+ StringHolder x_key_algorithm = new StringHolder();
+ StringHolder x_signing_algorithm = new StringHolder();
+
+ // key properties (custom - signing)
+ StringHolder x_signing_key_size = new StringHolder();
+ StringHolder x_signing_key_type = new StringHolder();
+ StringHolder x_signing_key_curvename = new StringHolder();
+ StringHolder x_signing_signingalgorithm = new StringHolder();
+
+ // key properties (custom - ocsp_signing)
+ StringHolder x_ocsp_signing_key_size = new StringHolder();
+ StringHolder x_ocsp_signing_key_type = new StringHolder();
+ StringHolder x_ocsp_signing_key_curvename = new StringHolder();
+ StringHolder x_ocsp_signing_signingalgorithm = new StringHolder();
+
+ // key properties (custom - audit_signing)
+ StringHolder x_audit_signing_key_size = new StringHolder();
+ StringHolder x_audit_signing_key_type = new StringHolder();
+ StringHolder x_audit_signing_key_curvename = new StringHolder();
+
+ // key properties (custom - subsystem)
+ StringHolder x_subsystem_key_size = new StringHolder();
+ StringHolder x_subsystem_key_type = new StringHolder();
+ StringHolder x_subsystem_key_curvename = new StringHolder();
+
+ // key properties (custom - sslserver)
+ StringHolder x_sslserver_key_size = new StringHolder();
+ StringHolder x_sslserver_key_type = new StringHolder();
+ StringHolder x_sslserver_key_curvename = new StringHolder();
+
+ StringHolder x_token_name = new StringHolder();
+ StringHolder x_token_pwd = new StringHolder();
+
+ StringHolder x_agent_key_size = new StringHolder();
+ StringHolder x_agent_key_type = new StringHolder();
+ StringHolder x_agent_cert_subject = new StringHolder();
+
+ StringHolder x_agent_name = new StringHolder();
+ StringHolder x_backup_pwd = new StringHolder();
+
+ // subsystem name
+ StringHolder x_subsystem_name = new StringHolder();
+
+ // subject names
+ StringHolder x_subca_sign_cert_subject_name = new StringHolder();
+ StringHolder x_subca_subsystem_cert_subject_name = new StringHolder();
+ StringHolder x_subca_ocsp_cert_subject_name = new StringHolder();
+ StringHolder x_subca_server_cert_subject_name = new StringHolder();
+ StringHolder x_subca_audit_signing_cert_subject_name = new StringHolder();
+
+ // parse the args
+ ArgParser parser = new ArgParser("ConfigureSubCA");
+
+ parser.addOption("-cs_hostname %s #CS Hostname",
+ x_cs_hostname);
+ parser.addOption("-cs_port %s #CS SSL port",
+ x_cs_port);
+
+ parser.addOption("-sd_hostname %s #Security Domain Hostname",
+ x_sd_hostname);
+ parser.addOption("-sd_ssl_port %s #Security Domain SSL EE port",
+ x_sd_ssl_port);
+ parser.addOption("-sd_agent_port %s #Security Domain SSL Agent port",
+ x_sd_agent_port);
+ parser.addOption("-sd_admin_port %s #Security Domain SSL Admin port",
+ x_sd_admin_port);
+ parser.addOption("-sd_admin_name %s #Security Domain admin name",
+ x_sd_admin_name);
+ parser.addOption("-sd_admin_password %s #Security Domain admin password",
+ x_sd_admin_password);
+
+ parser.addOption("-ca_hostname %s #CA Hostname",
+ x_ca_hostname);
+ parser.addOption("-ca_port %s #CA non-SSL port",
+ x_ca_port);
+ parser.addOption("-ca_ssl_port %s #CA SSL port",
+ x_ca_ssl_port);
+
+ parser.addOption("-client_certdb_dir %s #Client CertDB dir",
+ x_client_certdb_dir);
+ parser.addOption("-client_certdb_pwd %s #client certdb password",
+ x_client_certdb_pwd);
+ parser.addOption("-preop_pin %s #pre op pin",
+ x_preop_pin);
+ parser.addOption("-domain_name %s #domain name",
+ x_domain_name);
+ parser.addOption("-admin_user %s #Admin User Name",
+ x_admin_user);
+ parser.addOption("-admin_email %s #Admin email",
+ x_admin_email);
+ parser.addOption("-admin_password %s #Admin password",
+ x_admin_password);
+ parser.addOption("-agent_name %s #Agent Cert Nickname",
+ x_agent_name);
+
+ parser.addOption("-ldap_host %s #ldap host",
+ x_ldap_host);
+ parser.addOption("-ldap_port %s #ldap port",
+ x_ldap_port);
+ parser.addOption("-bind_dn %s #ldap bind dn",
+ x_bind_dn);
+ parser.addOption("-bind_password %s #ldap bind password",
+ x_bind_password);
+ parser.addOption("-base_dn %s #base dn",
+ x_base_dn);
+ parser.addOption("-db_name %s #db name",
+ x_db_name);
+ parser.addOption("-secure_conn %s #use ldaps port (optional, default is false)", x_secure_conn);
+ parser.addOption("-remove_data %s #remove existing data under base_dn (optional, default is false) ",
+ x_remove_data);
+
+ // key and algorithm options (default)
+ parser.addOption("-key_type %s #Key type [RSA,ECC] (optional, default is RSA)", x_key_type);
+ parser.addOption("-key_size %s #Key Size (optional, for RSA default is 2048)", x_key_size);
+ parser.addOption("-key_curvename %s #Key Curve Name (optional, for ECC default is nistp256)", x_key_curvename);
+ parser.addOption(
+ "-key_algorithm %s #Key algorithm of the CA certificate (optional, default is SHA256withRSA for RSA and SHA256withEC for ECC)",
+ x_key_algorithm);
+ parser.addOption("-signing_algorithm %s #Signing algorithm (optional, default is key_algorithm)",
+ x_signing_algorithm);
+
+ // key and algorithm options for signing certificate (overrides default)
+ parser.addOption("-signing_key_type %s #Key type [RSA,ECC] (optional, default is key_type)", x_signing_key_type);
+ parser.addOption("-signing_key_size %s #Key Size (optional, for RSA default is key_size)", x_signing_key_size);
+ parser.addOption("-signing_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_signing_key_curvename);
+ parser.addOption(
+ "-signing_signingalgorithm %s #Algorithm used be CA cert to sign objects (optional, default is signing_algorithm)",
+ x_signing_signingalgorithm);
+
+ // key and algorithm options for ocsp_signing certificate (overrides default)
+ parser.addOption("-ocsp_signing_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_ocsp_signing_key_type);
+ parser.addOption("-ocsp_signing_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_ocsp_signing_key_size);
+ parser.addOption("-ocsp_signing_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_ocsp_signing_key_curvename);
+ parser.addOption(
+ "-ocsp_signing_signingalgorithm %s #Algorithm used by the OCSP signing cert to sign objects (optional, default is signing_algorithm)",
+ x_ocsp_signing_signingalgorithm);
+
+ // key and algorithm options for audit_signing certificate (overrides default)
+ parser.addOption("-audit_signing_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_audit_signing_key_type);
+ parser.addOption("-audit_signing_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_audit_signing_key_size);
+ parser.addOption(
+ "-audit_signing_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_audit_signing_key_curvename);
+
+ // key and algorithm options for subsystem certificate (overrides default)
+ parser.addOption("-subsystem_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_subsystem_key_type);
+ parser.addOption("-subsystem_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_subsystem_key_size);
+ parser.addOption("-subsystem_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_subsystem_key_curvename);
+
+ // key and algorithm options for sslserver certificate (overrides default)
+ parser.addOption("-sslserver_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_sslserver_key_type);
+ parser.addOption("-sslserver_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_sslserver_key_size);
+ parser.addOption("-sslserver_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_sslserver_key_curvename);
+
+ parser.addOption("-token_name %s #HSM/Software Token name",
+ x_token_name);
+ parser.addOption("-token_pwd %s #HSM/Software Token password (optional - required for HSM)",
+ x_token_pwd);
+
+ parser.addOption("-agent_key_size %s #Agent Cert Key Size",
+ x_agent_key_size);
+ parser.addOption("-agent_key_type %s #Agent Cert Key type [rsa]",
+ x_agent_key_type);
+ parser.addOption("-agent_cert_subject %s #Agent Cert Subject",
+ x_agent_cert_subject);
+
+ parser.addOption("-backup_pwd %s #PKCS12 backup password",
+ x_backup_pwd);
+
+ parser.addOption("-subsystem_name %s #Subsystem name",
+ x_subsystem_name);
+
+ parser.addOption(
+ "-subca_sign_cert_subject_name %s #subCA cert subject name",
+ x_subca_sign_cert_subject_name);
+ parser.addOption(
+ "-subca_subsystem_cert_subject_name %s #subCA subsystem cert subject name",
+ x_subca_subsystem_cert_subject_name);
+ parser.addOption(
+ "-subca_ocsp_cert_subject_name %s #subCA ocsp cert subject name",
+ x_subca_ocsp_cert_subject_name);
+ parser.addOption(
+ "-subca_server_cert_subject_name %s #subCA server cert subject name",
+ x_subca_server_cert_subject_name);
+ parser.addOption(
+ "-subca_audit_signing_cert_subject_name %s #CA audit signing cert subject name",
+ x_subca_audit_signing_cert_subject_name);
+
+ // and then match the arguments
+ String[] unmatched = null;
+ unmatched = parser.matchAllArgs(args, 0, ArgParser.EXIT_ON_UNMATCHED);
+
+ if (unmatched != null) {
+ System.out.println("ERROR: Argument Mismatch");
+ System.exit(-1);
+ }
+
+ parser.checkRequiredArgs();
+
+ // set variables
+ cs_hostname = x_cs_hostname.value;
+ cs_port = x_cs_port.value;
+
+ sd_hostname = x_sd_hostname.value;
+ sd_ssl_port = x_sd_ssl_port.value;
+ sd_agent_port = x_sd_agent_port.value;
+ sd_admin_port = x_sd_admin_port.value;
+ sd_admin_name = x_sd_admin_name.value;
+ sd_admin_password = x_sd_admin_password.value;
+
+ ca_hostname = x_ca_hostname.value;
+ ca_port = x_ca_port.value;
+ ca_ssl_port = x_ca_ssl_port.value;
+
+ client_certdb_dir = x_client_certdb_dir.value;
+ client_certdb_pwd = x_client_certdb_pwd.value;
+ pin = x_preop_pin.value;
+ domain_name = x_domain_name.value;
+ admin_user = x_admin_user.value;
+ admin_email = x_admin_email.value;
+ admin_password = x_admin_password.value;
+ agent_name = x_agent_name.value;
+
+ ldap_host = x_ldap_host.value;
+ ldap_port = x_ldap_port.value;
+ bind_dn = x_bind_dn.value;
+ bind_password = x_bind_password.value;
+ base_dn = x_base_dn.value;
+ db_name = x_db_name.value;
+ secure_conn = set_default(x_secure_conn.value, "false");
+ remove_data = set_default(x_remove_data.value, "false");
+
+ key_type = set_default(x_key_type.value, DEFAULT_KEY_TYPE);
+ signing_key_type = set_default(x_signing_key_type.value, key_type);
+ ocsp_signing_key_type = set_default(x_ocsp_signing_key_type.value, key_type);
+ audit_signing_key_type = set_default(x_audit_signing_key_type.value, key_type);
+ subsystem_key_type = set_default(x_subsystem_key_type.value, key_type);
+ sslserver_key_type = set_default(x_sslserver_key_type.value, key_type);
+
+ key_size = set_default(x_key_size.value, DEFAULT_KEY_SIZE);
+ signing_key_size = set_default(x_signing_key_size.value, key_size);
+ ocsp_signing_key_size = set_default(x_ocsp_signing_key_size.value, key_size);
+ audit_signing_key_size = set_default(x_audit_signing_key_size.value, key_size);
+ subsystem_key_size = set_default(x_subsystem_key_size.value, key_size);
+ sslserver_key_size = set_default(x_sslserver_key_size.value, key_size);
+
+ key_curvename = set_default(x_key_curvename.value, DEFAULT_KEY_CURVENAME);
+ signing_key_curvename = set_default(x_signing_key_curvename.value, key_curvename);
+ ocsp_signing_key_curvename = set_default(x_ocsp_signing_key_curvename.value, key_curvename);
+ audit_signing_key_curvename = set_default(x_audit_signing_key_curvename.value, key_curvename);
+ subsystem_key_curvename = set_default(x_subsystem_key_curvename.value, key_curvename);
+ sslserver_key_curvename = set_default(x_sslserver_key_curvename.value, key_curvename);
+
+ if (signing_key_type.equalsIgnoreCase("RSA")) {
+ key_algorithm = set_default(x_key_algorithm.value, DEFAULT_KEY_ALGORITHM_RSA);
+ } else {
+ key_algorithm = set_default(x_key_algorithm.value, DEFAULT_KEY_ALGORITHM_ECC);
+ }
+
+ signing_algorithm = set_default(x_signing_algorithm.value, key_algorithm);
+ signing_signingalgorithm = set_default(x_signing_signingalgorithm.value, signing_algorithm);
+ ocsp_signing_signingalgorithm = set_default(x_ocsp_signing_signingalgorithm.value, signing_algorithm);
+
+ token_name = x_token_name.value;
+ token_pwd = x_token_pwd.value;
+
+ agent_key_size = x_agent_key_size.value;
+ agent_key_type = x_agent_key_type.value;
+ agent_cert_subject = x_agent_cert_subject.value;
+
+ backup_pwd = x_backup_pwd.value;
+ subsystem_name = x_subsystem_name.value;
+
+ subca_sign_cert_subject_name = x_subca_sign_cert_subject_name.value;
+ subca_subsystem_cert_subject_name =
+ x_subca_subsystem_cert_subject_name.value;
+ subca_ocsp_cert_subject_name = x_subca_ocsp_cert_subject_name.value;
+ subca_server_cert_subject_name = x_subca_server_cert_subject_name.value;
+ subca_audit_signing_cert_subject_name = x_subca_audit_signing_cert_subject_name.value;
+
+ boolean st = ca.ConfigureSubCAInstance();
+
+ if (!st) {
+ System.out.println("ERROR: unable to create Subordinate CA");
+ System.exit(-1);
+ }
+
+ System.out.println("Certificate System - Subordinate CA Instance Configured.");
+ System.exit(0);
+
+ }
+
+};
diff --git a/base/silent/src/com/netscape/pkisilent/ConfigureTKS.java b/base/silent/src/com/netscape/pkisilent/ConfigureTKS.java
new file mode 100644
index 000000000..760690888
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/ConfigureTKS.java
@@ -0,0 +1,1121 @@
+package com.netscape.pkisilent;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+
+import org.mozilla.jss.asn1.SEQUENCE;
+import org.mozilla.jss.pkcs12.AuthenticatedSafes;
+import org.mozilla.jss.pkcs12.PFX;
+
+import com.netscape.pkisilent.argparser.ArgParser;
+import com.netscape.pkisilent.argparser.StringHolder;
+import com.netscape.pkisilent.common.ComCrypto;
+import com.netscape.pkisilent.common.ParseXML;
+import com.netscape.pkisilent.http.HTTPClient;
+import com.netscape.pkisilent.http.HTTPResponse;
+import com.netscape.cmsutil.util.Utils;
+
+public class ConfigureTKS {
+
+ public static final String DEFAULT_KEY_TYPE = "RSA";
+ public static final String DEFAULT_KEY_SIZE = "2048";
+ public static final String DEFAULT_KEY_CURVENAME = "nistp256";
+
+ // define global variables
+
+ public static HTTPClient hc = null;
+
+ public static String login_uri = "/tks/admin/console/config/login";
+ public static String wizard_uri = "/tks/admin/console/config/wizard";
+ public static String admin_uri = "/ca/admin/ca/getBySerial";
+
+ public static String sd_login_uri = "/ca/admin/ca/securityDomainLogin";
+ public static String sd_get_cookie_uri = "/ca/admin/ca/getCookie";
+ public static String pkcs12_uri = "/tks/admin/console/config/savepkcs12";
+
+ public static String cs_hostname = null;
+ public static String cs_port = null;
+
+ public static String sd_hostname = null;
+ public static String sd_ssl_port = null;
+ public static String sd_agent_port = null;
+ public static String sd_admin_port = null;
+ public static String sd_admin_name = null;
+ public static String sd_admin_password = null;
+
+ public static String ca_hostname = null;
+ public static String ca_port = null;
+ public static String ca_ssl_port = null;
+
+ public static String client_certdb_dir = null;
+ public static String client_certdb_pwd = null;
+
+ // Login Panel
+ public static String pin = null;
+
+ public static String domain_name = null;
+
+ public static String admin_user = null;
+ public static String admin_email = null;
+ public static String admin_password = null;
+ public static String admin_serial_number = null;
+ public static String agent_name = null;
+
+ public static String ldap_host = null;
+ public static String ldap_port = null;
+ public static String bind_dn = null;
+ public static String bind_password = null;
+ public static String base_dn = null;
+ public static String db_name = null;
+ public static String secure_conn = null;
+ public static String remove_data = null;
+
+ public static String key_type = null;
+ public static String key_size = null;
+ public static String key_curvename = null;
+
+ public static String subsystem_key_type = null;
+ public static String subsystem_key_size = null;
+ public static String subsystem_key_curvename = null;
+
+ public static String audit_signing_key_type = null;
+ public static String audit_signing_key_size = null;
+ public static String audit_signing_key_curvename = null;
+
+ public static String sslserver_key_type = null;
+ public static String sslserver_key_size = null;
+ public static String sslserver_key_curvename = null;
+
+ public static String token_name = null;
+ public static String token_pwd = null;
+
+ public static String agent_key_size = null;
+ public static String agent_key_type = null;
+ public static String agent_cert_subject = null;
+
+ public static String server_cert_name = null;
+ public static String server_cert_req = null;
+ public static String server_cert_pp = null;
+ public static String server_cert_cert = null;
+
+ public static String tks_subsystem_cert_name = null;
+ public static String tks_subsystem_cert_req = null;
+ public static String tks_subsystem_cert_pp = null;
+ public static String tks_subsystem_cert_cert = null;
+
+ public static String tks_audit_signing_cert_name = null;
+ public static String tks_audit_signing_cert_req = null;
+ public static String tks_audit_signing_cert_pp = null;
+ public static String tks_audit_signing_cert_cert = null;
+
+ public static String backup_pwd = null;
+ public static String backup_fname = null;
+
+ // names
+ public static String tks_subsystem_cert_subject_name = null;
+ public static String tks_server_cert_subject_name = null;
+ public static String subsystem_name = null;
+ public static String tks_audit_signing_cert_subject_name = null;
+
+ public ConfigureTKS() {
+ // do nothing :)
+ }
+
+ public void sleep_time() {
+ try {
+ System.out.println("Sleeping for 5 secs..");
+ Thread.sleep(5000);
+ } catch (Exception e) {
+ System.out.println("ERROR: sleep problem");
+ }
+ }
+
+ public boolean LoginPanel() {
+ boolean st = false;
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "pin=" + pin + "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, login_uri, query_string);
+ System.out.println("xml returned: " + hr.getHTML());
+
+ // parse xml here - nothing to parse
+
+ // get cookie
+ String temp = hr.getCookieValue("JSESSIONID");
+
+ if (temp != null) {
+ int index = temp.indexOf(";");
+ HTTPClient.j_session_id = temp.substring(0, index);
+ st = true;
+ }
+
+ hr = null;
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ "p=0&op=next&xml=true");
+
+ // parse xml here
+
+ bais = new ByteArrayInputStream(
+ hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return st;
+ }
+
+ public boolean TokenChoicePanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = null;
+
+ // Software Token
+ if (token_name.equalsIgnoreCase("internal")) {
+ query_string = "p=1" + "&op=next" + "&xml=true" +
+ "&choice=" +
+ URLEncoder.encode("Internal Key Storage Token", "UTF-8") +
+ "";
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+ }
+ // HSM
+ else {
+ // login to hsm first
+ query_string = "p=2" + "&op=next" + "&xml=true" +
+ "&uTokName=" +
+ URLEncoder.encode(token_name, "UTF-8") +
+ "&__uPasswd=" +
+ URLEncoder.encode(token_pwd, "UTF-8") +
+ "";
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ // choice with token name now
+ query_string = "p=1" + "&op=next" + "&xml=true" +
+ "&choice=" +
+ URLEncoder.encode(token_name, "UTF-8") +
+ "";
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+ }
+
+ return true;
+ }
+
+ public boolean DomainPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String domain_url = "https://" + sd_hostname + ":" + sd_admin_port;
+
+ String query_string = "sdomainURL=" +
+ URLEncoder.encode(domain_url, "UTF-8") +
+ "&choice=existingdomain" +
+ "&p=3" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+
+ }
+
+ public boolean DisplayChainPanel() {
+ String query_string = "p=4" + "&op=next" + "&xml=true";
+ hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ // bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ // px.parse(bais);
+ // px.prettyprintxml();
+
+ return true;
+
+ }
+
+ public boolean SecurityDomainLoginPanel() throws UnsupportedEncodingException {
+ String tks_url = "https://" + cs_hostname + ":" + cs_port +
+ "/tks/admin/console/config/wizard" +
+ "?p=5&subsystem=TKS";
+
+ String query_string = "url=" + URLEncoder.encode(tks_url, "UTF-8");
+
+ HTTPResponse hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_login_uri, query_string);
+
+ String query_string_1 = "uid=" + sd_admin_name +
+ "&pwd=" + URLEncoder.encode(sd_admin_password, "UTF-8") +
+ "&url=" + URLEncoder.encode(tks_url, "UTF-8");
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_get_cookie_uri,
+ query_string_1);
+
+ // get session id from security domain
+
+ String tks_session_id = hr.getContentValue("header.session_id");
+ String tks_url_1 = hr.getContentValue("header.url");
+
+ System.out.println("TKS_SESSION_ID=" + tks_session_id);
+ System.out.println("TKS_URL=" + tks_url_1);
+
+ // use session id to connect back to TKS
+
+ String query_string_2 = "p=5" +
+ "&subsystem=TKS" +
+ "&session_id=" + tks_session_id +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ query_string_2);
+
+ // parse xml
+ // bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ // px.parse(bais);
+ // px.prettyprintxml();
+
+ return true;
+
+ }
+
+ public boolean SubsystemPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=5" + "&op=next" + "&xml=true" +
+ "&subsystemName=" +
+ URLEncoder.encode(subsystem_name, "UTF-8") +
+ "&choice=newsubsystem";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean LdapConnectionPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=7" + "&op=next" + "&xml=true" +
+ "&host=" + URLEncoder.encode(ldap_host, "UTF-8") +
+ "&port=" + URLEncoder.encode(ldap_port, "UTF-8") +
+ "&binddn=" + URLEncoder.encode(bind_dn, "UTF-8") +
+ "&__bindpwd=" + URLEncoder.encode(bind_password, "UTF-8") +
+ "&basedn=" + URLEncoder.encode(base_dn, "UTF-8") +
+ "&database=" + URLEncoder.encode(db_name, "UTF-8") +
+ "&display=" + URLEncoder.encode("$displayStr", "UTF-8") +
+ (secure_conn.equals("true") ? "&secureConn=on" : "") +
+ (remove_data.equals("true") ? "&removeData=true" : "");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean KeyPanel() {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ ArrayList<String> al = null;
+
+ String query_string = "p=8" + "&op=next" + "&xml=true" +
+ "&subsystem_custom_size=" + subsystem_key_size +
+ "&sslserver_custom_size=" + sslserver_key_size +
+ "&audit_signing_custom_size=" + audit_signing_key_size +
+ "&custom_size=" + key_size +
+ "&subsystem_custom_curvename=" + subsystem_key_curvename +
+ "&sslserver_custom_curvename=" + sslserver_key_curvename +
+ "&audit_signing_custom_curvename=" + audit_signing_key_curvename +
+ "&custom_curvename=" + key_curvename +
+ "&subsystem_keytype=" + subsystem_key_type +
+ "&sslserver_keytype=" + sslserver_key_type +
+ "&audit_signing_keytype=" + audit_signing_key_type +
+ "&keytype=" + key_type +
+ "&subsystem_choice=custom" +
+ "&sslserver_choice=custom" +
+ "&audit_signing_choice=custom" +
+ "&choice=custom";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ al = px.constructValueList("CertReqPair", "DN");
+ // get ca cert subject name
+ if (al != null) {
+ for (int i = 0; i < al.size(); i++) {
+ String temp = al.get(i);
+ if (temp.indexOf("TKS Subsystem") > 0) {
+ tks_subsystem_cert_name = temp;
+ } else if (temp.indexOf("Audit Signing Certificate") > 0) {
+ tks_audit_signing_cert_name = temp;
+ } else {
+ server_cert_name = temp;
+ }
+ }
+ }
+
+ System.out.println("default: tks_subsystem_cert_name=" +
+ tks_subsystem_cert_name);
+ System.out.println("default: server_cert_name=" +
+ server_cert_name);
+ System.out.println("default: tks_audit_signing_cert_name=" + tks_audit_signing_cert_name);
+ return true;
+ }
+
+ public boolean CertSubjectPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ ArrayList<String> req_list = null;
+ ArrayList<String> cert_list = null;
+ ArrayList<String> dn_list = null;
+
+ String domain_url = "https://" + ca_hostname + ":" + ca_ssl_port;
+
+ String query_string = "p=9" + "&op=next" + "&xml=true" +
+ "&subsystem=" +
+ URLEncoder.encode(tks_subsystem_cert_subject_name, "UTF-8") +
+ "&sslserver=" +
+ URLEncoder.encode(tks_server_cert_subject_name, "UTF-8") +
+ "&audit_signing=" +
+ URLEncoder.encode(tks_audit_signing_cert_subject_name, "UTF-8") +
+ "&urls=" +
+ URLEncoder.encode(domain_url, "UTF-8") +
+ "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ req_list = px.constructValueList("CertReqPair", "Request");
+ cert_list = px.constructValueList("CertReqPair", "Certificate");
+ dn_list = px.constructValueList("CertReqPair", "Nickname");
+
+ if (req_list != null && cert_list != null && dn_list != null) {
+ for (int i = 0; i < dn_list.size(); i++) {
+ String temp = dn_list.get(i);
+
+ if (temp.indexOf("subsystemCert") >= 0) {
+ tks_subsystem_cert_req = req_list.get(i);
+ tks_subsystem_cert_cert = cert_list.get(i);
+ } else if (temp.indexOf("auditSigningCert") >= 0) {
+ tks_audit_signing_cert_req = req_list.get(i);
+ tks_audit_signing_cert_cert = cert_list.get(i);
+ } else {
+ server_cert_req = req_list.get(i);
+ server_cert_cert = cert_list.get(i);
+ }
+ }
+ }
+
+ return true;
+ }
+
+ public boolean CertificatePanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=10" + "&op=next" + "&xml=true" +
+ "&subsystem=" +
+ URLEncoder.encode(tks_subsystem_cert_cert, "UTF-8") +
+ "&subsystem_cc=" +
+ "&sslserver=" +
+ URLEncoder.encode(server_cert_cert, "UTF-8") +
+ "&sslserver_cc=" +
+ "&audit_signing=" +
+ URLEncoder.encode(tks_audit_signing_cert_cert, "UTF-8") +
+ "&audit_signing_cc=" +
+ "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean BackupPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=11" + "&op=next" + "&xml=true" +
+ "&choice=backupkey" +
+ "&__pwd=" + URLEncoder.encode(backup_pwd, "UTF-8") +
+ "&__pwdagain=" + URLEncoder.encode(backup_pwd, "UTF-8");
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean SavePKCS12Panel() {
+ String query_string = "";
+
+ HTTPResponse hr = hc.sslConnect(cs_hostname, cs_port, pkcs12_uri, query_string);
+
+ // dump hr.getResponseData() to file
+
+ try {
+ FileOutputStream fos = new FileOutputStream(backup_fname);
+ fos.write(hr.getResponseData());
+ fos.close();
+
+ // set file to permissions 600
+ String rtParams[] = { "chmod", "600", backup_fname };
+ Process proc = Runtime.getRuntime().exec(rtParams);
+
+ BufferedReader br = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
+ String line = null;
+ while ((line = br.readLine()) != null)
+ System.out.println("Error: " + line);
+ proc.waitFor();
+
+ // verify p12 file
+
+ // Decode the P12 file
+ FileInputStream fis = new FileInputStream(backup_fname);
+ PFX.Template pfxt = new PFX.Template();
+ PFX pfx = (PFX) pfxt.decode(new BufferedInputStream(fis, 2048));
+ System.out.println("Decoded PFX");
+
+ // now peruse it for interesting info
+ System.out.println("Version: " + pfx.getVersion());
+ AuthenticatedSafes authSafes = pfx.getAuthSafes();
+ SEQUENCE asSeq = authSafes.getSequence();
+ System.out.println("AuthSafes has " +
+ asSeq.size() + " SafeContents");
+
+ fis.close();
+ } catch (Exception e) {
+ System.out.println("ERROR: Exception=" + e.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+
+ public boolean AdminCertReqPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ String admin_cert_request = null;
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ agent_cert_subject,
+ agent_key_size,
+ agent_key_type);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.setTransportCert(null);
+ cCrypt.setDualKey(false);
+ cCrypt.loginDB();
+
+ String crmf_request = cCrypt.generateCRMFrequest();
+
+ if (crmf_request == null) {
+ System.out.println("ERROR: AdminCertReqPanel() cert req gen failed");
+ return false;
+ }
+
+ admin_cert_request = crmf_request;
+
+ String query_string = "p=13" + "&op=next" + "&xml=true" +
+ "&cert_request_type=" + "crmf" +
+ "&uid=" + admin_user +
+ "&name=" + admin_user +
+ "&__pwd=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&__admin_password_again=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&profileId=" + "caAdminCert" +
+ "&email=" +
+ URLEncoder.encode(admin_email, "UTF-8") +
+ "&cert_request=" +
+ URLEncoder.encode(admin_cert_request, "UTF-8") +
+ "&subject=" +
+ URLEncoder.encode(agent_cert_subject, "UTF-8") +
+ "&clone=new" +
+ "&import=true" +
+ "&securitydomain=" +
+ URLEncoder.encode(domain_name, "UTF-8") +
+ "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ admin_serial_number = px.getvalue("serialNumber");
+
+ return true;
+ }
+
+ public boolean AdminCertImportPanel() {
+ boolean st = false;
+
+ String query_string = "serialNumber=" + admin_serial_number +
+ "&importCert=" + "true" +
+ "";
+
+ HTTPResponse hr = hc.sslConnect(sd_hostname, sd_admin_port, admin_uri, query_string);
+
+ // get response data
+ // String cert_to_import =
+ // new sun.misc.BASE64Encoder().encode(hr.getResponseData());
+ String cert_to_import =
+ Utils.base64encode(hr.getResponseData());
+ System.out.println("Imported Cert=" + cert_to_import);
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ String start = "-----BEGIN CERTIFICATE-----\r\n";
+ String end = "\r\n-----END CERTIFICATE-----";
+
+ st = cCrypt.importCert(start + cert_to_import + end, agent_name);
+ if (!st) {
+ System.out.println("ERROR: AdminCertImportPanel() during cert import");
+ return false;
+ }
+
+ System.out.println("SUCCESS: imported admin user cert");
+ return true;
+ }
+
+ public boolean UpdateDomainPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=14" + "&op=next" + "&xml=true" +
+ "&caHost=" + URLEncoder.encode(sd_hostname, "UTF-8") +
+ "&caPort=" + URLEncoder.encode(sd_agent_port, "UTF-8") +
+ "";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean ConfigureTKSInstance() throws UnsupportedEncodingException {
+ // 0. login to cert db
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ // instantiate http client
+ hc = new HTTPClient();
+
+ sleep_time();
+ // 1. Login panel
+ boolean log_st = LoginPanel();
+ if (!log_st) {
+ System.out.println("ERROR: ConfigureTKS: LoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 2. Token Choice Panel
+ boolean disp_token = TokenChoicePanel();
+ if (!disp_token) {
+ System.out.println("ERROR: ConfigureTKS: TokenChoicePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 3. domain panel
+ boolean dom_st = DomainPanel();
+ if (!dom_st) {
+ System.out.println("ERROR: ConfigureTKS: DomainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 4. display cert chain panel
+ boolean disp_st = DisplayChainPanel();
+ if (!disp_st) {
+ System.out.println("ERROR: ConfigureTKS: DisplayChainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // security domain login panel
+ boolean disp_sd = SecurityDomainLoginPanel();
+ if (!disp_sd) {
+ System.out.println("ERROR: ConfigureTKS: SecurityDomainLoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // subsystem panel
+ boolean disp_ss = SubsystemPanel();
+ if (!disp_ss) {
+ System.out.println("ERROR: ConfigureTKS: SubsystemPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 7. ldap connection panel
+ boolean disp_ldap = LdapConnectionPanel();
+ if (!disp_ldap) {
+ System.out.println("ERROR: ConfigureTKS: LdapConnectionPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ sleep_time();
+ // 9. Key Panel
+ boolean disp_key = KeyPanel();
+ if (!disp_key) {
+ System.out.println("ERROR: ConfigureTKS: KeyPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 10. Cert Subject Panel
+ boolean disp_csubj = CertSubjectPanel();
+ if (!disp_csubj) {
+ System.out.println("ERROR: ConfigureTKS: CertSubjectPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 11. Certificate Panel
+ boolean disp_cp = CertificatePanel();
+ if (!disp_cp) {
+ System.out.println("ERROR: ConfigureTKS: CertificatePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // backup panel
+ boolean disp_back = BackupPanel();
+ if (!disp_back) {
+ System.out.println("ERROR: ConfigureTKS: BackupPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // save panel
+ boolean disp_save = SavePKCS12Panel();
+ if (!disp_save) {
+ System.out.println("ERROR: ConfigureTKS: SavePKCS12Panel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 13. Admin Cert Req Panel
+ boolean disp_adm = AdminCertReqPanel();
+ if (!disp_adm) {
+ System.out.println("ERROR: ConfigureTKS: AdminCertReqPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 14. Admin Cert import Panel
+ boolean disp_im = AdminCertImportPanel();
+ if (!disp_im) {
+ System.out.println("ERROR: ConfigureTKS: AdminCertImportPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 15. Update Domain Panel
+ boolean disp_ud = UpdateDomainPanel();
+ if (!disp_ud) {
+ System.out.println("ERROR: ConfigureTKS: UpdateDomainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ return true;
+ }
+
+ private static String set_default(String val, String def) {
+ if ((val == null) || (val.equals(""))) {
+ return def;
+ } else {
+ return val;
+ }
+ }
+
+ public static void main(String args[]) throws UnsupportedEncodingException {
+ ConfigureTKS ca = new ConfigureTKS();
+
+ // set variables
+ StringHolder x_cs_hostname = new StringHolder();
+ StringHolder x_cs_port = new StringHolder();
+
+ StringHolder x_sd_hostname = new StringHolder();
+ StringHolder x_sd_ssl_port = new StringHolder();
+ StringHolder x_sd_agent_port = new StringHolder();
+ StringHolder x_sd_admin_port = new StringHolder();
+ StringHolder x_sd_admin_name = new StringHolder();
+ StringHolder x_sd_admin_password = new StringHolder();
+
+ StringHolder x_ca_hostname = new StringHolder();
+ StringHolder x_ca_port = new StringHolder();
+ StringHolder x_ca_ssl_port = new StringHolder();
+
+ StringHolder x_client_certdb_dir = new StringHolder();
+ StringHolder x_client_certdb_pwd = new StringHolder();
+ StringHolder x_preop_pin = new StringHolder();
+
+ StringHolder x_domain_name = new StringHolder();
+
+ StringHolder x_admin_user = new StringHolder();
+ StringHolder x_admin_email = new StringHolder();
+ StringHolder x_admin_password = new StringHolder();
+
+ // ldap
+ StringHolder x_ldap_host = new StringHolder();
+ StringHolder x_ldap_port = new StringHolder();
+ StringHolder x_bind_dn = new StringHolder();
+ StringHolder x_bind_password = new StringHolder();
+ StringHolder x_base_dn = new StringHolder();
+ StringHolder x_db_name = new StringHolder();
+ StringHolder x_secure_conn = new StringHolder();
+ StringHolder x_remove_data = new StringHolder();
+
+ // key properties (defaults)
+ StringHolder x_key_size = new StringHolder();
+ StringHolder x_key_type = new StringHolder();
+ StringHolder x_key_curvename = new StringHolder();
+
+ // key properties (custom - audit_signing)
+ StringHolder x_audit_signing_key_size = new StringHolder();
+ StringHolder x_audit_signing_key_type = new StringHolder();
+ StringHolder x_audit_signing_key_curvename = new StringHolder();
+
+ // key properties (custom - subsystem)
+ StringHolder x_subsystem_key_size = new StringHolder();
+ StringHolder x_subsystem_key_type = new StringHolder();
+ StringHolder x_subsystem_key_curvename = new StringHolder();
+
+ // key properties (custom - sslserver)
+ StringHolder x_sslserver_key_size = new StringHolder();
+ StringHolder x_sslserver_key_type = new StringHolder();
+ StringHolder x_sslserver_key_curvename = new StringHolder();
+
+ StringHolder x_token_name = new StringHolder();
+ StringHolder x_token_pwd = new StringHolder();
+
+ StringHolder x_agent_key_size = new StringHolder();
+ StringHolder x_agent_key_type = new StringHolder();
+ StringHolder x_agent_cert_subject = new StringHolder();
+
+ StringHolder x_agent_name = new StringHolder();
+ StringHolder x_backup_pwd = new StringHolder();
+ StringHolder x_backup_fname = new StringHolder();
+
+ // tks cert subject name params
+ StringHolder x_tks_subsystem_cert_subject_name = new StringHolder();
+ StringHolder x_tks_server_cert_subject_name = new StringHolder();
+ StringHolder x_tks_audit_signing_cert_subject_name = new StringHolder();
+
+ // subsystemName
+ StringHolder x_subsystem_name = new StringHolder();
+
+ // parse the args
+ ArgParser parser = new ArgParser("ConfigureTKS");
+
+ parser.addOption("-cs_hostname %s #CS Hostname",
+ x_cs_hostname);
+ parser.addOption("-cs_port %s #CS SSL Admin port",
+ x_cs_port);
+
+ parser.addOption("-sd_hostname %s #Security Domain Hostname",
+ x_sd_hostname);
+ parser.addOption("-sd_ssl_port %s #Security Domain SSL EE port",
+ x_sd_ssl_port);
+ parser.addOption("-sd_agent_port %s #Security Domain SSL Agent port",
+ x_sd_agent_port);
+ parser.addOption("-sd_admin_port %s #Security Domain SSL Admin port",
+ x_sd_admin_port);
+ parser.addOption("-sd_admin_name %s #Security Domain Admin Name",
+ x_sd_admin_name);
+ parser.addOption("-sd_admin_password %s #Security Domain Admin password",
+ x_sd_admin_password);
+
+ parser.addOption("-ca_hostname %s #CA Hostname",
+ x_ca_hostname);
+ parser.addOption("-ca_port %s #CA non-SSL EE port",
+ x_ca_port);
+ parser.addOption("-ca_ssl_port %s #CA SSL EE port",
+ x_ca_ssl_port);
+
+ parser.addOption("-client_certdb_dir %s #Client CertDB dir",
+ x_client_certdb_dir);
+ parser.addOption("-client_certdb_pwd %s #client certdb password",
+ x_client_certdb_pwd);
+ parser.addOption("-preop_pin %s #pre op pin",
+ x_preop_pin);
+ parser.addOption("-domain_name %s #domain name",
+ x_domain_name);
+ parser.addOption("-admin_user %s #Admin User Name",
+ x_admin_user);
+ parser.addOption("-admin_email %s #Admin email",
+ x_admin_email);
+ parser.addOption("-admin_password %s #Admin password",
+ x_admin_password);
+ parser.addOption("-agent_name %s #Agent Cert Nickname",
+ x_agent_name);
+
+ parser.addOption("-ldap_host %s #ldap host",
+ x_ldap_host);
+ parser.addOption("-ldap_port %s #ldap port",
+ x_ldap_port);
+ parser.addOption("-bind_dn %s #ldap bind dn",
+ x_bind_dn);
+ parser.addOption("-bind_password %s #ldap bind password",
+ x_bind_password);
+ parser.addOption("-base_dn %s #base dn",
+ x_base_dn);
+ parser.addOption("-db_name %s #db name",
+ x_db_name);
+ parser.addOption("-secure_conn %s #use ldaps port (optional, default is false)", x_secure_conn);
+ parser.addOption("-remove_data %s #remove existing data under base_dn (optional, default is false) ",
+ x_remove_data);
+
+ // key and algorithm options (default)
+ parser.addOption("-key_type %s #Key type [RSA,ECC] (optional, default is RSA)", x_key_type);
+ parser.addOption("-key_size %s #Key Size (optional, for RSA default is 2048)", x_key_size);
+ parser.addOption("-key_curvename %s #Key Curve Name (optional, for ECC default is nistp256)", x_key_curvename);
+
+ // key and algorithm options for audit_signing certificate (overrides default)
+ parser.addOption("-audit_signing_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_audit_signing_key_type);
+ parser.addOption("-audit_signing_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_audit_signing_key_size);
+ parser.addOption(
+ "-audit_signing_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_audit_signing_key_curvename);
+
+ // key and algorithm options for subsystem certificate (overrides default)
+ parser.addOption("-subsystem_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_subsystem_key_type);
+ parser.addOption("-subsystem_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_subsystem_key_size);
+ parser.addOption("-subsystem_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_subsystem_key_curvename);
+
+ // key and algorithm options for sslserver certificate (overrides default)
+ parser.addOption("-sslserver_key_type %s #Key type [RSA,ECC] (optional, default is key_type)",
+ x_sslserver_key_type);
+ parser.addOption("-sslserver_key_size %s #Key Size (optional, for RSA default is key_size)",
+ x_sslserver_key_size);
+ parser.addOption("-sslserver_key_curvename %s #Key Curve Name (optional, for ECC default is key_curvename)",
+ x_sslserver_key_curvename);
+
+ parser.addOption("-token_name %s #HSM/Software Token name",
+ x_token_name);
+ parser.addOption("-token_pwd %s #HSM/Software Token password (optional, required for HSM)",
+ x_token_pwd);
+
+ parser.addOption("-agent_key_size %s #Agent Cert Key Size",
+ x_agent_key_size);
+ parser.addOption("-agent_key_type %s #Agent Cert Key type [rsa]",
+ x_agent_key_type);
+ parser.addOption("-agent_cert_subject %s #Agent Cert Subject",
+ x_agent_cert_subject);
+
+ parser.addOption("-backup_pwd %s #PKCS12 password",
+ x_backup_pwd);
+
+ parser.addOption(
+ "-tks_subsystem_cert_subject_name %s #TKS subsystem cert subject name",
+ x_tks_subsystem_cert_subject_name);
+ parser.addOption(
+ "-tks_server_cert_subject_name %s #TKS server cert subject name",
+ x_tks_server_cert_subject_name);
+
+ parser.addOption("-backup_fname %s #Backup File for p12, (optional, default /root/tmp-tks.p12",
+ x_backup_fname);
+
+ parser.addOption(
+ "-subsystem_name %s #CA subsystem name",
+ x_subsystem_name);
+
+ parser.addOption(
+ "-tks_audit_signing_cert_subject_name %s #TKS audit signing cert subject name",
+ x_tks_audit_signing_cert_subject_name);
+
+ // and then match the arguments
+ String[] unmatched = null;
+ unmatched = parser.matchAllArgs(args, 0, ArgParser.EXIT_ON_UNMATCHED);
+
+ if (unmatched != null) {
+ System.out.println("ERROR: Argument Mismatch");
+ System.exit(-1);
+ }
+
+ parser.checkRequiredArgs();
+
+ // set variables
+ cs_hostname = x_cs_hostname.value;
+ cs_port = x_cs_port.value;
+
+ sd_hostname = x_sd_hostname.value;
+ sd_ssl_port = x_sd_ssl_port.value;
+ sd_agent_port = x_sd_agent_port.value;
+ sd_admin_port = x_sd_admin_port.value;
+ sd_admin_name = x_sd_admin_name.value;
+ sd_admin_password = x_sd_admin_password.value;
+
+ ca_hostname = x_ca_hostname.value;
+ ca_port = x_ca_port.value;
+ ca_ssl_port = x_ca_ssl_port.value;
+
+ client_certdb_dir = x_client_certdb_dir.value;
+ client_certdb_pwd = x_client_certdb_pwd.value;
+ pin = x_preop_pin.value;
+ domain_name = x_domain_name.value;
+
+ admin_user = x_admin_user.value;
+ admin_email = x_admin_email.value;
+ admin_password = x_admin_password.value;
+ agent_name = x_agent_name.value;
+
+ ldap_host = x_ldap_host.value;
+ ldap_port = x_ldap_port.value;
+ bind_dn = x_bind_dn.value;
+ bind_password = x_bind_password.value;
+ base_dn = x_base_dn.value;
+ db_name = x_db_name.value;
+ secure_conn = set_default(x_secure_conn.value, "false");
+ remove_data = set_default(x_remove_data.value, "false");
+
+ key_type = set_default(x_key_type.value, DEFAULT_KEY_TYPE);
+ audit_signing_key_type = set_default(x_audit_signing_key_type.value, key_type);
+ subsystem_key_type = set_default(x_subsystem_key_type.value, key_type);
+ sslserver_key_type = set_default(x_sslserver_key_type.value, key_type);
+
+ key_size = set_default(x_key_size.value, DEFAULT_KEY_SIZE);
+ audit_signing_key_size = set_default(x_audit_signing_key_size.value, key_size);
+ subsystem_key_size = set_default(x_subsystem_key_size.value, key_size);
+ sslserver_key_size = set_default(x_sslserver_key_size.value, key_size);
+
+ key_curvename = set_default(x_key_curvename.value, DEFAULT_KEY_CURVENAME);
+ audit_signing_key_curvename = set_default(x_audit_signing_key_curvename.value, key_curvename);
+ subsystem_key_curvename = set_default(x_subsystem_key_curvename.value, key_curvename);
+ sslserver_key_curvename = set_default(x_sslserver_key_curvename.value, key_curvename);
+
+ token_name = x_token_name.value;
+ token_pwd = x_token_pwd.value;
+
+ agent_key_size = x_agent_key_size.value;
+ agent_key_type = x_agent_key_type.value;
+ agent_cert_subject = x_agent_cert_subject.value;
+
+ backup_pwd = x_backup_pwd.value;
+ backup_fname = set_default(x_backup_fname.value, "/root/tmp-tks.p12");
+
+ tks_subsystem_cert_subject_name =
+ x_tks_subsystem_cert_subject_name.value;
+ tks_server_cert_subject_name =
+ x_tks_server_cert_subject_name.value;
+
+ subsystem_name = x_subsystem_name.value;
+ tks_audit_signing_cert_subject_name = x_tks_audit_signing_cert_subject_name.value;
+
+ boolean st = ca.ConfigureTKSInstance();
+
+ if (!st) {
+ System.out.println("ERROR: unable to create TKS");
+ System.exit(-1);
+ }
+
+ System.out.println("Certificate System - TKS Instance Configured.");
+ System.exit(0);
+
+ }
+
+};
diff --git a/base/silent/src/com/netscape/pkisilent/ConfigureTPS.java b/base/silent/src/com/netscape/pkisilent/ConfigureTPS.java
new file mode 100644
index 000000000..366fb57b6
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/ConfigureTPS.java
@@ -0,0 +1,1088 @@
+package com.netscape.pkisilent;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.ByteArrayInputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+import com.netscape.pkisilent.argparser.ArgParser;
+import com.netscape.pkisilent.argparser.StringHolder;
+import com.netscape.pkisilent.common.ComCrypto;
+import com.netscape.pkisilent.common.ParseXML;
+import com.netscape.pkisilent.http.HTTPClient;
+import com.netscape.pkisilent.http.HTTPResponse;
+import com.netscape.cmsutil.util.Utils;
+
+public class ConfigureTPS {
+ // define global variables
+
+ public static HTTPClient hc = null;
+
+ public static String login_uri = "/tps/admin/console/config/login";
+ public static String wizard_uri = "/tps/admin/console/config/wizard";
+ public static String admin_uri = "/ca/admin/ca/getBySerial";
+
+ public static String sd_login_uri = "/ca/admin/ca/securityDomainLogin";
+ public static String sd_get_cookie_uri = "/ca/admin/ca/getCookie";
+ public static String sd_update_domain_uri = "/ca/agent/ca/updateDomainXML";
+ public static String pkcs12_uri = "/tps/admin/console/config/savepkcs12";
+
+ public static String cs_hostname = null;
+ public static String cs_port = null;
+ public static String cs_clientauth_port = null;
+
+ public static String sd_hostname = null;
+ public static String sd_ssl_port = null;
+ public static String sd_agent_port = null;
+ public static String sd_admin_port = null;
+ public static String sd_admin_name = null;
+ public static String sd_admin_password = null;
+
+ public static String ca_hostname = null;
+ public static String ca_port = null;
+ public static String ca_ssl_port = null;
+ public static String ca_admin_port = null;
+
+ public static String drm_hostname = null;
+ public static String drm_ssl_port = null;
+
+ public static String tks_hostname = null;
+ public static String tks_ssl_port = null;
+
+ public static String client_certdb_dir = null;
+ public static String client_certdb_pwd = null;
+
+ // Login Panel
+ public static String pin = null;
+
+ public static String domain_name = null;
+
+ public static String admin_user = null;
+ public static String admin_email = null;
+ public static String admin_password = null;
+ public static String admin_serial_number = null;
+ public static String agent_name = null;
+
+ public static String ldap_auth_host = null;
+ public static String ldap_auth_port = null;
+ public static String ldap_auth_base_dn = null;
+
+ public static String ldap_host = null;
+ public static String ldap_port = null;
+ public static String bind_dn = null;
+ public static String bind_password = null;
+ public static String base_dn = null;
+ public static String db_name = null;
+
+ public static String key_size = null;
+ public static String key_type = null;
+ public static String token_name = null;
+ public static String token_pwd = null;
+
+ public static String agent_key_size = null;
+ public static String agent_key_type = null;
+ public static String agent_cert_subject = null;
+
+ public static String tps_transport_cert_name = null;
+ public static String tps_transport_cert_req = null;
+ public static String tps_transport_cert_pp = null;
+ public static String tps_transport_cert_cert = null;
+
+ public static String tps_storage_cert_name = null;
+ public static String tps_storage_cert_req = null;
+ public static String tps_storage_cert_pp = null;
+ public static String tps_storage_cert_cert = null;
+
+ public static String server_cert_name = null;
+ public static String server_cert_req = null;
+ public static String server_cert_pp = null;
+ public static String server_cert_cert = null;
+
+ public static String tps_subsystem_cert_name = null;
+ public static String tps_subsystem_cert_req = null;
+ public static String tps_subsystem_cert_pp = null;
+ public static String tps_subsystem_cert_cert = null;
+
+ public static String tps_audit_signing_cert_name = null;
+ public static String tps_audit_signing_cert_req = null;
+ public static String tps_audit_signing_cert_pp = null;
+ public static String tps_audit_signing_cert_cert = null;
+
+ public static String ss_keygen = null;
+
+ // names
+ public static String tps_server_cert_subject_name = null;
+ public static String tps_server_cert_nickname = null;
+ public static String tps_subsystem_cert_subject_name = null;
+ public static String tps_subsystem_cert_nickname = null;
+ public static String tps_audit_signing_cert_subject_name = null;
+ public static String tps_audit_signing_cert_nickname = null;
+ public static String subsystem_name = null;
+
+ // Security Domain Login Panel
+ public static String tps_session_id = null;
+
+ // Admin Certificate Request Panel
+ public static String requestor_name = null;
+
+ public ConfigureTPS() {
+ // do nothing :)
+ }
+
+ public void sleep_time() {
+ try {
+ System.out.println("Sleeping for 5 secs..");
+ Thread.sleep(5000);
+ } catch (Exception e) {
+ System.out.println("ERROR: sleep problem");
+ }
+
+ }
+
+ public boolean LoginPanel() {
+ boolean st = false;
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "pin=" + pin + "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, login_uri, query_string);
+ System.out.println("xml returned: " + hr.getHTML());
+
+ // parse xml here - nothing to parse
+
+ // no cookie for tps
+ // get cookie
+ String temp = hr.getCookieValue("pin");
+
+ if (temp != null) {
+ int index = temp.indexOf(";");
+ HTTPClient.j_session_id = temp.substring(0, index);
+ st = true;
+ }
+
+ hr = null;
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ "p=0&op=next&xml=true");
+
+ // parse xml here
+
+ bais = new ByteArrayInputStream(
+ hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ st = true;
+ return st;
+ }
+
+ public boolean DomainPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String domain_url = "https://" + sd_hostname + ":" + sd_admin_port;
+
+ String query_string = "p=3" +
+ "&choice=existingdomain" +
+ "&sdomainURL=" +
+ URLEncoder.encode(domain_url, "UTF-8") +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+
+ }
+
+ public boolean DisplayChainPanel() {
+ String query_string = "p=4" + "&op=next" + "&xml=true";
+ hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ return true;
+
+ }
+
+ public boolean SecurityDomainLoginPanel() throws UnsupportedEncodingException {
+ String tps_url = "https://" + cs_hostname + ":" + cs_port +
+ "/tps/admin/console/config/wizard" +
+ "?p=3&subsystem=TPS";
+
+ String query_string = "url=" + URLEncoder.encode(tps_url, "UTF-8") + "";
+
+ HTTPResponse hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_login_uri, query_string);
+
+ String query_string_1 = "uid=" + sd_admin_name +
+ "&pwd=" + URLEncoder.encode(sd_admin_password, "UTF-8") +
+ "&url=" + URLEncoder.encode(tps_url, "UTF-8") +
+ "";
+
+ hr = hc.sslConnect(sd_hostname, sd_admin_port, sd_get_cookie_uri,
+ query_string_1);
+
+ // get session id from security domain
+ sleep_time();
+
+ tps_session_id = hr.getContentValue("header.session_id");
+ String tps_url_1 = hr.getContentValue("header.url");
+
+ System.out.println("TPS_SESSION_ID=" + tps_session_id);
+ System.out.println("TPS_URL=" + tps_url_1);
+
+ // use session id to connect back to TPS
+
+ String query_string_2 = "p=5" +
+ "&subsystem=TPS" +
+ "&session_id=" + tps_session_id +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri,
+ query_string_2);
+
+ // parse xml - no parsing
+
+ return true;
+
+ }
+
+ public boolean SubsystemPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ sleep_time();
+ String query_string = "p=5" +
+ "&choice=newsubsystem" +
+ "&subsystemName=" +
+ URLEncoder.encode(subsystem_name, "UTF-8") +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ sleep_time();
+
+ // CA choice panel
+ query_string = "p=6" +
+ "&urls=0" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ sleep_time();
+ query_string = "p=7" +
+ "&urls=0" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ // DRM / server side keygen panel
+
+ sleep_time();
+ if (ss_keygen.equalsIgnoreCase("true")) {
+ ss_keygen = "keygen";
+ }
+
+ query_string = "p=8" +
+ "&choice=" + ss_keygen +
+ "&urls=0" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean LdapAuthConnectionPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=9" +
+ "&host=" +
+ URLEncoder.encode(ldap_auth_host, "UTF-8") +
+ "&port=" +
+ URLEncoder.encode(ldap_auth_port, "UTF-8") +
+ "&basedn=" +
+ URLEncoder.encode(ldap_auth_base_dn, "UTF-8") +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean LdapConnectionPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=10" +
+ "&host=" +
+ URLEncoder.encode(ldap_host, "UTF-8") +
+ "&port=" +
+ URLEncoder.encode(ldap_port, "UTF-8") +
+ "&binddn=" +
+ URLEncoder.encode(bind_dn, "UTF-8") +
+ "&__bindpwd=" +
+ URLEncoder.encode(bind_password, "UTF-8") +
+ "&basedn=" +
+ URLEncoder.encode(base_dn, "UTF-8") +
+ "&database=" +
+ URLEncoder.encode(db_name, "UTF-8") +
+ "&display=" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean TokenChoicePanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ ////////////////////////////////////////////////////////
+ String query_string = null;
+
+ // Software Token
+ if (token_name.equalsIgnoreCase("internal")) {
+ query_string = "p=1" +
+ "&choice=" +
+ URLEncoder.encode("NSS Certificate DB", "UTF-8") +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+ }
+ // HSM
+ else {
+ // login to hsm first
+ query_string = "p=2" +
+ "&uTokName=" +
+ URLEncoder.encode(token_name, "UTF-8") +
+ "&__uPasswd=" +
+ URLEncoder.encode(token_pwd, "UTF-8") +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ // choice with token name now
+ query_string = "p=1" +
+ "&choice=" +
+ URLEncoder.encode(token_name, "UTF-8") +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ }
+
+ return true;
+ }
+
+ public boolean KeyPanel() {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=11" +
+ "&keytype=" + key_type +
+ "&choice=default" +
+ "&custom_size=" + key_size +
+ "&sslserver_keytype=" + key_type +
+ "&sslserver_choice=custom" +
+ "&sslserver_custom_size=" + key_size +
+ "&subsystem_keytype=" + key_type +
+ "&subsystem_choice=custom" +
+ "&subsystem_custom_size=" + key_size +
+ "&audit_signing_keytype=" + key_type +
+ "&audit_signing_choice=default" +
+ "&audit_signing_custom_size=" + key_size +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean CertSubjectPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=12" +
+ "&sslserver=" +
+ URLEncoder.encode(tps_server_cert_subject_name, "UTF-8") +
+ "&sslserver_nick=" +
+ URLEncoder.encode(tps_server_cert_nickname, "UTF-8") +
+ "&subsystem=" +
+ URLEncoder.encode(tps_subsystem_cert_subject_name, "UTF-8") +
+ "&subsystem_nick=" +
+ URLEncoder.encode(tps_subsystem_cert_nickname, "UTF-8") +
+ "&audit_signing=" +
+ URLEncoder.encode(tps_audit_signing_cert_subject_name, "UTF-8") +
+ "&audit_signing_nick=" +
+ URLEncoder.encode(tps_audit_signing_cert_nickname, "UTF-8") +
+ "&urls=0" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ // parse the certs if needed
+
+ return true;
+ }
+
+ public boolean CertificatePanel() {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+
+ String query_string = "p=13" +
+ "&sslserver=" +
+ "&sslserver_cc=" +
+ "&subsystem=" +
+ "&subsystem_cc=" +
+ "&audit_signing=" +
+ "&audit_signing_cc=" +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean AdminCertReqPanel() throws UnsupportedEncodingException {
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ String admin_cert_request = null;
+
+ requestor_name = "TPS-" + cs_hostname + "-" + cs_clientauth_port;
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ agent_cert_subject,
+ agent_key_size,
+ agent_key_type);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.setTransportCert(null);
+ cCrypt.setDualKey(false);
+ cCrypt.loginDB();
+
+ String crmf_request = cCrypt.generateCRMFrequest();
+
+ if (crmf_request == null) {
+ System.out.println("ERROR: AdminCertReqPanel() cert req gen failed");
+ return false;
+ }
+
+ admin_cert_request = crmf_request;
+
+ String query_string = "p=14" +
+ "&uid=" + admin_user +
+ "&name=" +
+ URLEncoder.encode("TPS Administrator", "UTF-8") +
+ "&email=" +
+ URLEncoder.encode(admin_email, "UTF-8") +
+ "&__pwd=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&__admin_password_again=" + URLEncoder.encode(admin_password, "UTF-8") +
+ "&cert_request=" +
+ URLEncoder.encode(admin_cert_request, "UTF-8") +
+ "&display=0" +
+ "&profileId=" + "caAdminCert" +
+ "&cert_request_type=" + "crmf" +
+ "&import=true" +
+ "&uid=" + admin_user +
+ "&clone=0" +
+ "&securitydomain=" +
+ URLEncoder.encode(domain_name, "UTF-8") +
+ "&subject=" +
+ URLEncoder.encode(agent_cert_subject, "UTF-8") +
+ "&requestor_name=" +
+ URLEncoder.encode(requestor_name, "UTF-8") +
+ "&sessionID=" + tps_session_id +
+ "&auth_hostname=" + ca_hostname +
+ "&auth_port=" + ca_ssl_port +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ admin_serial_number = px.getvalue("serialNumber");
+
+ return true;
+ }
+
+ public boolean AdminCertImportPanel() throws UnsupportedEncodingException {
+ boolean st = false;
+ HTTPResponse hr = null;
+ ByteArrayInputStream bais = null;
+ ParseXML px = new ParseXML();
+ String cert_to_import = null;
+
+ String query_string = "serialNumber=" + admin_serial_number +
+ "&importCert=" + "true" +
+ "";
+
+ // NOTE: CA, DRM, OCSP, and TKS use the Security Domain Admin Port;
+ // whereas RA and TPS use the CA Admin Port associated with
+ // the 'CA choice panel' as invoked from the SubsystemPanel()
+ // which MAY or MAY NOT be the same CA as the CA specified
+ // by the Security Domain.
+ hr = hc.sslConnect(ca_hostname, ca_admin_port, admin_uri, query_string);
+
+ try {
+ // cert_to_import =
+ // new sun.misc.BASE64Encoder().encode(hr.getResponseData());
+ cert_to_import =
+ Utils.base64encode(hr.getResponseData());
+
+ } catch (Exception e) {
+ System.out.println("ERROR: failed to retrieve cert");
+ }
+
+ System.out.println("Imported Cert=" + cert_to_import);
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ String start = "-----BEGIN CERTIFICATE-----\r\n";
+ String end = "\r\n-----END CERTIFICATE-----";
+
+ st = cCrypt.importCert(start + cert_to_import + end, agent_name);
+ if (!st) {
+ System.out.println("ERROR: AdminCertImportPanel() during cert import");
+ return false;
+ }
+
+ System.out.println("SUCCESS: imported admin user cert");
+
+ String query_string_1 = "p=15" +
+ "&serialNumber=" + admin_serial_number +
+ "&caHost=" +
+ URLEncoder.encode(ca_hostname, "UTF-8") +
+ "&caPort=" + ca_admin_port +
+ "&op=next" +
+ "&xml=true";
+
+ hr = hc.sslConnect(cs_hostname, cs_port, wizard_uri, query_string_1);
+
+ // parse xml
+ bais = new ByteArrayInputStream(hr.getHTML().getBytes());
+ px.parse(bais);
+ px.prettyprintxml();
+
+ return true;
+ }
+
+ public boolean ConfigureTPSInstance() throws UnsupportedEncodingException {
+ // 0. login to cert db
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(true);
+ cCrypt.loginDB();
+
+ // instantiate http client
+ hc = new HTTPClient();
+
+ sleep_time();
+ // 1. Login panel
+ boolean log_st = LoginPanel();
+ if (!log_st) {
+ System.out.println("ERROR: JSESSIONID not found.");
+ System.out.println("ERROR: ConfigureTPS: LoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 2. Token Choice Panel
+ boolean disp_token = TokenChoicePanel();
+ if (!disp_token) {
+ System.out.println("ERROR: ConfigureTPS: TokenChoicePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 3. domain panel
+ boolean dom_st = DomainPanel();
+ if (!dom_st) {
+ System.out.println("ERROR: ConfigureTPS: DomainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 4. display cert chain panel
+ boolean disp_st = DisplayChainPanel();
+ if (!disp_st) {
+ System.out.println("ERROR: ConfigureTPS: DisplayChainPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 5. security domain login panel
+ boolean disp_sd = SecurityDomainLoginPanel();
+ if (!disp_sd) {
+ System.out.println("ERROR: ConfigureTPS: SecurityDomainLoginPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 6. subsystem panel
+ boolean disp_ss = SubsystemPanel();
+ if (!disp_ss) {
+ System.out.println("ERROR: ConfigureTPS: SubsystemPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 7. ldap auth connection panel
+ boolean disp_ldap_auth = LdapAuthConnectionPanel();
+ if (!disp_ldap_auth) {
+ System.out.println("ERROR: ConfigureTPS: LdapAuthConnectionPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 8. ldap connection panel
+ boolean disp_ldap = LdapConnectionPanel();
+ if (!disp_ldap) {
+ System.out.println("ERROR: ConfigureTPS: LdapConnectionPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 11. Key Panel
+ boolean disp_key = KeyPanel();
+ if (!disp_key) {
+ System.out.println("ERROR: ConfigureTPS: KeyPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 12. Cert Subject Panel
+ boolean disp_csubj = CertSubjectPanel();
+ if (!disp_csubj) {
+ System.out.println("ERROR: ConfigureTPS: CertSubjectPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 13. Certificate Panel
+ boolean disp_cp = CertificatePanel();
+ if (!disp_cp) {
+ System.out.println("ERROR: ConfigureTPS: CertificatePanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 14. Admin Cert Req Panel
+ boolean disp_adm = AdminCertReqPanel();
+ if (!disp_adm) {
+ System.out.println("ERROR: ConfigureTPS: AdminCertReqPanel() failure");
+ return false;
+ }
+
+ sleep_time();
+ // 15. Admin Cert import Panel
+ boolean disp_im = AdminCertImportPanel();
+ if (!disp_im) {
+ System.out.println("ERROR: ConfigureTPS: AdminCertImportPanel() failure");
+ return false;
+ }
+
+ return true;
+ }
+
+ public static void main(String args[]) throws UnsupportedEncodingException {
+ ConfigureTPS ca = new ConfigureTPS();
+
+ // set variables
+ StringHolder x_cs_hostname = new StringHolder();
+ StringHolder x_cs_port = new StringHolder();
+ StringHolder x_cs_clientauth_port = new StringHolder();
+
+ StringHolder x_sd_hostname = new StringHolder();
+ StringHolder x_sd_ssl_port = new StringHolder();
+ StringHolder x_sd_agent_port = new StringHolder();
+ StringHolder x_sd_admin_port = new StringHolder();
+ StringHolder x_sd_admin_name = new StringHolder();
+ StringHolder x_sd_admin_password = new StringHolder();
+
+ StringHolder x_ca_hostname = new StringHolder();
+ StringHolder x_ca_port = new StringHolder();
+ StringHolder x_ca_ssl_port = new StringHolder();
+ StringHolder x_ca_admin_port = new StringHolder();
+
+ StringHolder x_drm_hostname = new StringHolder();
+ StringHolder x_drm_ssl_port = new StringHolder();
+
+ StringHolder x_tks_hostname = new StringHolder();
+ StringHolder x_tks_ssl_port = new StringHolder();
+
+ StringHolder x_client_certdb_dir = new StringHolder();
+ StringHolder x_client_certdb_pwd = new StringHolder();
+ StringHolder x_preop_pin = new StringHolder();
+
+ StringHolder x_domain_name = new StringHolder();
+
+ StringHolder x_admin_user = new StringHolder();
+ StringHolder x_admin_email = new StringHolder();
+ StringHolder x_admin_password = new StringHolder();
+
+ // ldap
+
+ StringHolder x_ldap_host = new StringHolder();
+ StringHolder x_ldap_port = new StringHolder();
+ StringHolder x_bind_dn = new StringHolder();
+ StringHolder x_bind_password = new StringHolder();
+ StringHolder x_base_dn = new StringHolder();
+ StringHolder x_db_name = new StringHolder();
+
+ StringHolder x_ldap_auth_host = new StringHolder();
+ StringHolder x_ldap_auth_port = new StringHolder();
+ StringHolder x_ldap_auth_base_dn = new StringHolder();
+
+ // key size
+ StringHolder x_token_name = new StringHolder();
+ StringHolder x_token_pwd = new StringHolder();
+ StringHolder x_key_size = new StringHolder();
+ StringHolder x_key_type = new StringHolder();
+
+ StringHolder x_agent_key_size = new StringHolder();
+ StringHolder x_agent_key_type = new StringHolder();
+ StringHolder x_agent_cert_subject = new StringHolder();
+
+ StringHolder x_agent_name = new StringHolder();
+
+ StringHolder x_ss_keygen = new StringHolder();
+
+ // tps cert subject name params
+ StringHolder x_tps_server_cert_subject_name = new StringHolder();
+ StringHolder x_tps_server_cert_nickname = new StringHolder();
+ StringHolder x_tps_subsystem_cert_subject_name = new StringHolder();
+ StringHolder x_tps_subsystem_cert_nickname = new StringHolder();
+ StringHolder x_tps_audit_signing_cert_subject_name = new StringHolder();
+ StringHolder x_tps_audit_signing_cert_nickname = new StringHolder();
+
+ // subsystemName
+ StringHolder x_subsystem_name = new StringHolder();
+
+ // parse the args
+ ArgParser parser = new ArgParser("ConfigureTPS");
+
+ parser.addOption("-cs_hostname %s #CS Hostname",
+ x_cs_hostname);
+ parser.addOption("-cs_port %s #CS SSL port",
+ x_cs_port);
+ parser.addOption("-cs_clientauth_port %s #CS SSL port",
+ x_cs_clientauth_port);
+
+ parser.addOption("-sd_hostname %s #Security Domain Hostname",
+ x_sd_hostname);
+ parser.addOption("-sd_ssl_port %s #Security Domain SSL EE port",
+ x_sd_ssl_port);
+ parser.addOption("-sd_agent_port %s #Security Domain SSL Agent port",
+ x_sd_agent_port);
+ parser.addOption("-sd_admin_port %s #Security Domain SSL Admin port",
+ x_sd_admin_port);
+ parser.addOption("-sd_admin_name %s #Security Domain username",
+ x_sd_admin_name);
+ parser.addOption("-sd_admin_password %s #Security Domain password",
+ x_sd_admin_password);
+
+ parser.addOption("-ca_hostname %s #CA Hostname",
+ x_ca_hostname);
+ parser.addOption("-ca_port %s #CA non-SSL port",
+ x_ca_port);
+ parser.addOption("-ca_ssl_port %s #CA SSL port",
+ x_ca_ssl_port);
+ parser.addOption("-ca_admin_port %s #CA SSL Admin port",
+ x_ca_admin_port);
+
+ parser.addOption("-drm_hostname %s #DRM Hostname",
+ x_drm_hostname);
+ parser.addOption("-drm_ssl_port %s #DRM SSL port",
+ x_drm_ssl_port);
+ parser.addOption("-ss_keygen %s #Enable Server Side Keygen [true,false]",
+ x_ss_keygen);
+
+ parser.addOption("-tks_hostname %s #TKS Hostname",
+ x_tks_hostname);
+ parser.addOption("-tks_ssl_port %s #TKS SSL port",
+ x_tks_ssl_port);
+
+ parser.addOption("-client_certdb_dir %s #Client CertDB dir",
+ x_client_certdb_dir);
+ parser.addOption("-client_certdb_pwd %s #client certdb password",
+ x_client_certdb_pwd);
+ parser.addOption("-preop_pin %s #pre op pin",
+ x_preop_pin);
+ parser.addOption("-domain_name %s #domain name",
+ x_domain_name);
+ parser.addOption("-admin_user %s #Admin User Name",
+ x_admin_user);
+ parser.addOption("-admin_email %s #Admin email",
+ x_admin_email);
+ parser.addOption("-admin_password %s #Admin password",
+ x_admin_password);
+ parser.addOption("-agent_name %s #Agent Cert Nickname",
+ x_agent_name);
+
+ parser.addOption("-ldap_host %s #ldap host",
+ x_ldap_host);
+ parser.addOption("-ldap_port %s #ldap port",
+ x_ldap_port);
+ parser.addOption("-bind_dn %s #ldap bind dn",
+ x_bind_dn);
+ parser.addOption("-bind_password %s #ldap bind password",
+ x_bind_password);
+ parser.addOption("-base_dn %s #base dn",
+ x_base_dn);
+ parser.addOption("-db_name %s #db name",
+ x_db_name);
+
+ parser.addOption("-token_name %s #HSM/Software Token name",
+ x_token_name);
+ parser.addOption("-token_pwd %s #HSM/Software Token password (optional, required for HSM)",
+ x_token_pwd);
+ parser.addOption("-key_size %s #Key Size",
+ x_key_size);
+ parser.addOption("-key_type %s #Key type [rsa,ecc]",
+ x_key_type);
+
+ parser.addOption("-agent_key_size %s #Agent Cert Key Size",
+ x_agent_key_size);
+ parser.addOption("-agent_key_type %s #Agent cert Key type [rsa]",
+ x_agent_key_type);
+ parser.addOption("-agent_cert_subject %s #Agent cert Subject",
+ x_agent_cert_subject);
+
+ parser.addOption("-ldap_auth_host %s #ldap auth host",
+ x_ldap_auth_host);
+ parser.addOption("-ldap_auth_port %s #ldap auth port",
+ x_ldap_auth_port);
+ parser.addOption("-ldap_auth_base_dn %s #ldap auth base dn",
+ x_ldap_auth_base_dn);
+
+ parser.addOption(
+ "-tps_server_cert_subject_name %s #TPS server cert subject name",
+ x_tps_server_cert_subject_name);
+ parser.addOption(
+ "-tps_server_cert_nickname %s #TPS server cert nickname",
+ x_tps_server_cert_nickname);
+ parser.addOption(
+ "-tps_subsystem_cert_subject_name %s #TPS subsystem cert subject name",
+ x_tps_subsystem_cert_subject_name);
+ parser.addOption(
+ "-tps_subsystem_cert_nickname %s #TPS subsystem cert nickname",
+ x_tps_subsystem_cert_nickname);
+ parser.addOption(
+ "-tps_audit_signing_cert_subject_name %s #TPS audit signing cert subject name",
+ x_tps_audit_signing_cert_subject_name);
+ parser.addOption(
+ "-tps_audit_signing_cert_nickname %s #TPS audit signing cert nickname",
+ x_tps_audit_signing_cert_nickname);
+
+ parser.addOption(
+ "-subsystem_name %s #CA subsystem name",
+ x_subsystem_name);
+
+ // and then match the arguments
+ String[] unmatched = null;
+ unmatched = parser.matchAllArgs(args, 0, ArgParser.EXIT_ON_UNMATCHED);
+
+ if (unmatched != null) {
+ System.out.println("ERROR: Argument Mismatch");
+ System.exit(-1);
+ }
+
+ parser.checkRequiredArgs();
+
+ // set variables
+ cs_hostname = x_cs_hostname.value;
+ cs_port = x_cs_port.value;
+ cs_clientauth_port = x_cs_clientauth_port.value;
+
+ sd_hostname = x_sd_hostname.value;
+ sd_ssl_port = x_sd_ssl_port.value;
+ sd_agent_port = x_sd_agent_port.value;
+ sd_admin_port = x_sd_admin_port.value;
+ sd_admin_name = x_sd_admin_name.value;
+ sd_admin_password = x_sd_admin_password.value;
+
+ ca_hostname = x_ca_hostname.value;
+ ca_port = x_ca_port.value;
+ ca_ssl_port = x_ca_ssl_port.value;
+ ca_admin_port = x_ca_admin_port.value;
+
+ tks_hostname = x_tks_hostname.value;
+ tks_ssl_port = x_tks_ssl_port.value;
+
+ drm_hostname = x_drm_hostname.value;
+ drm_ssl_port = x_drm_ssl_port.value;
+
+ client_certdb_dir = x_client_certdb_dir.value;
+ client_certdb_pwd = x_client_certdb_pwd.value;
+ pin = x_preop_pin.value;
+ domain_name = x_domain_name.value;
+
+ admin_user = x_admin_user.value;
+ admin_email = x_admin_email.value;
+ admin_password = x_admin_password.value;
+ agent_name = x_agent_name.value;
+
+ ldap_host = x_ldap_host.value;
+ ldap_port = x_ldap_port.value;
+ bind_dn = x_bind_dn.value;
+ bind_password = x_bind_password.value;
+ base_dn = x_base_dn.value;
+ db_name = x_db_name.value;
+
+ ldap_auth_host = x_ldap_auth_host.value;
+ ldap_auth_port = x_ldap_auth_port.value;
+ ldap_auth_base_dn = x_ldap_auth_base_dn.value;
+
+ key_size = x_key_size.value;
+ key_type = x_key_type.value;
+ token_name = x_token_name.value;
+ token_pwd = x_token_pwd.value;
+
+ agent_key_size = x_agent_key_size.value;
+ agent_key_type = x_agent_key_type.value;
+ agent_cert_subject = x_agent_cert_subject.value;
+
+ ss_keygen = x_ss_keygen.value;
+
+ tps_server_cert_subject_name =
+ x_tps_server_cert_subject_name.value;
+ tps_server_cert_nickname =
+ x_tps_server_cert_nickname.value;
+ tps_subsystem_cert_subject_name =
+ x_tps_subsystem_cert_subject_name.value;
+ tps_subsystem_cert_nickname =
+ x_tps_subsystem_cert_nickname.value;
+ tps_audit_signing_cert_subject_name =
+ x_tps_audit_signing_cert_subject_name.value;
+ tps_audit_signing_cert_nickname =
+ x_tps_audit_signing_cert_nickname.value;
+
+ subsystem_name = x_subsystem_name.value;
+
+ boolean st = ca.ConfigureTPSInstance();
+
+ if (!st) {
+ System.out.println("ERROR: unable to create TPS");
+ System.exit(-1);
+ }
+
+ System.out.println("Certificate System - TPS Instance Configured");
+ System.exit(0);
+
+ }
+
+};
diff --git a/base/silent/src/com/netscape/pkisilent/PKISilent.java b/base/silent/src/com/netscape/pkisilent/PKISilent.java
new file mode 100644
index 000000000..f90832481
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/PKISilent.java
@@ -0,0 +1,59 @@
+package com.netscape.pkisilent;
+
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.HashMap;
+
+public class PKISilent {
+ private static void usage() {
+ System.out.print("usage: java " + PKISilent.class.getCanonicalName());
+ boolean first = true;
+ for (Class<?> c : classes) {
+ if (first) {
+ System.out.println(" [ ");
+ } else {
+ System.out.println(" | ");
+ }
+ first = false;
+ System.out.print(" " + c.getSimpleName());
+ }
+ System.out.println(" ] ");
+ }
+
+ static Class<?>[] classes = { ConfigureCA.class, ConfigureDRM.class,
+ ConfigureOCSP.class, ConfigureRA.class, ConfigureSubCA.class,
+ ConfigureTKS.class, ConfigureTPS.class, };
+
+ public static final void main(String[] args) {
+ HashMap<String, Method> classMap = new HashMap<String, Method>();
+ for (Class<?> c : classes) {
+ try {
+ classMap.put(c.getSimpleName(),
+ c.getMethod("main", String[].class));
+ } catch (Exception e) {
+ // The set of classes listed above is guaranteed to have a
+ // method 'main'
+ e.printStackTrace();
+ }
+ }
+ if (args.length == 0) {
+ usage();
+ System.exit(-1);
+ }
+ Method mainMethod = classMap.get(args[0]);
+ if (mainMethod == null) {
+ usage();
+ System.exit(-1);
+ }
+ String[] innerArgs = {};
+ if (args.length > 1) {
+ innerArgs = Arrays.copyOfRange(args, 1, args.length);
+ }
+
+ try {
+ mainMethod.invoke(null, (Object) innerArgs);
+ } catch (Exception e) {
+ // exception is guaranteed to have the static main method
+ }
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/ArgParseException.java b/base/silent/src/com/netscape/pkisilent/argparser/ArgParseException.java
new file mode 100644
index 000000000..de3c58bd4
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/ArgParseException.java
@@ -0,0 +1,54 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+import java.io.IOException;
+
+/**
+ * Exception class used by <code>ArgParser</code> when
+ * command line arguments contain an error.
+ *
+ * @author John E. Lloyd, Fall 2004
+ * @see ArgParser
+ */
+public class ArgParseException extends IOException {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -604960834535589460L;
+
+ /**
+ * Creates a new ArgParseException with the given message.
+ *
+ * @param msg Exception message
+ */
+ public ArgParseException(String msg) {
+ super(msg);
+ }
+
+ /**
+ * Creates a new ArgParseException from the given
+ * argument and message.
+ *
+ * @param arg Offending argument
+ * @param msg Error message
+ */
+ public ArgParseException(String arg, String msg) {
+ super(arg + ": " + msg);
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/ArgParser.java b/base/silent/src/com/netscape/pkisilent/argparser/ArgParser.java
new file mode 100755
index 000000000..ed5f98b1d
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/ArgParser.java
@@ -0,0 +1,2085 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Copyright John E. Lloyd, 2004. All rights reserved. Permission to use,
+ * copy, modify and redistribute is granted, provided that this copyright
+ * notice is retained and the author is given credit whenever appropriate.
+ *
+ * This software is distributed "as is", without any warranty, including
+ * any implied warranty of merchantability or fitness for a particular
+ * use. The author assumes no responsibility for, and shall not be liable
+ * for, any special, indirect, or consequential damages, or any damages
+ * whatsoever, arising out of or in connection with the use of this
+ * software.
+ */
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.LineNumberReader;
+import java.io.PrintStream;
+import java.io.Reader;
+import java.lang.reflect.Array;
+import java.util.Vector;
+
+/**
+ * ArgParser is used to parse the command line arguments for a java
+ * application program. It provides a compact way to specify options and match
+ * them against command line arguments, with support for
+ * <a href=#rangespec>range checking</a>,
+ * <a href=#multipleOptionNames>multiple option names</a> (aliases),
+ * <a href=#singleWordOptions>single word options</a>,
+ * <a href=#multipleOptionValues>multiple values associated with an option</a>,
+ * <a href=#multipleOptionInvocation>multiple option invocation</a>,
+ * <a href=#helpInfo>generating help information</a>,
+ * <a href=#customArgParsing>custom argument parsing</a>, and
+ * <a href=#argsFromAFile>reading arguments from a file</a>. The
+ * last feature is particularly useful and makes it
+ * easy to create ad-hoc configuration files for an application.
+ *
+ * <h3><a name="example">Basic Example</a></h3>
+ *
+ * <p>
+ * Here is a simple example in which an application has three command line options: <code>-theta</code> (followed by a
+ * floating point value), <code>-file</code> (followed by a string value), and <code>-debug</code>, which causes a
+ * boolean value to be set.
+ *
+ * <pre>
+ *
+ * static public void main(String[] args) {
+ * // create holder objects for storing results ...
+ *
+ * DoubleHolder theta = new DoubleHolder();
+ * StringHolder fileName = new StringHolder();
+ * BooleanHolder debug = new BooleanHolder();
+ *
+ * // create the parser and specify the allowed options ...
+ *
+ * ArgParser parser = new ArgParser(&quot;java argparser.SimpleExample&quot;);
+ * parser.addOption(&quot;-theta %f #theta value (in degrees)&quot;, theta);
+ * parser.addOption(&quot;-file %s #name of the operating file&quot;, fileName);
+ * parser.addOption(&quot;-debug %v #enables display of debugging info&quot;, debug);
+ *
+ * // match the arguments ...
+ *
+ * parser.matchAllArgs(args);
+ *
+ * // and print out the values
+ *
+ * System.out.println(&quot;theta=&quot; + theta.value);
+ * System.out.println(&quot;fileName=&quot; + fileName.value);
+ * System.out.println(&quot;debug=&quot; + debug.value);
+ * }
+ * </pre>
+ * <p>
+ * A command line specifying all three options might look like this:
+ *
+ * <pre>
+ * java argparser.SimpleExample -theta 7.8 -debug -file /ai/lloyd/bar
+ * </pre>
+ *
+ * <p>
+ * The application creates an instance of ArgParser and then adds descriptions of the allowed options using
+ * {@link #addOption addOption}. The method {@link #matchAllArgs(String[]) matchAllArgs} is then used to match these
+ * options against the command line arguments. Values associated with each option are returned in the <code>value</code>
+ * field of special ``holder'' classes (e.g., {@link argparser.DoubleHolder DoubleHolder},
+ * {@link argparser.StringHolder StringHolder}, etc.).
+ *
+ * <p>
+ * The first argument to {@link #addOption addOption} is a string that specifies (1) the option's name, (2) a conversion
+ * code for its associated value (e.g., <code>%f</code> for floating point, <code>%s</code> for a string,
+ * <code>%v</code> for a boolean flag), and (3) an optional description (following the <code>#</code> character) which
+ * is used for generating help messages. The second argument is the holder object through which the value is returned.
+ * This may be either a type-specific object (such as {@link argparser.DoubleHolder DoubleHolder} or
+ * {@link argparser.StringHolder
+ * StringHolder}), an array of the appropriate type, or <a href=#multipleOptionInvocation> an instance of
+ * <code>java.util.Vector</code></a>.
+ *
+ * <p>
+ * By default, arguments that don't match the specified options, are <a href=#rangespec>out of range</a>, or are
+ * otherwise formatted incorrectly, will cause <code>matchAllArgs</code> to print a message and exit the program.
+ * Alternatively, an application can use {@link #matchAllArgs(String[],int,int) matchAllArgs(args,idx,exitFlags)} to
+ * obtain an array of unmatched arguments which can then be <a href=#customArgParsing>processed separately</a>
+ *
+ * <h3><a name="rangespec">Range Specification</a></h3>
+ *
+ * The values associated with options can also be given range specifications. A range specification appears in curly
+ * braces immediately following the conversion code. In the code fragment below, we show how to specify an option
+ * <code>-name</code> that expects to be provided with one of three string values (<code>john</code>, <code>mary</code>,
+ * or <code>jane</code>), an option <code>-index</code> that expects to be supplied with a integer value in the range 1
+ * to 256, an option <code>-size</code> that expects to be supplied with integer values of either 1, 2, 4, 8, or 16, and
+ * an option <code>-foo</code> that expects to be supplied with floating point values in the ranges -99 < foo <= -50, or
+ * 50 <= foo < 99.
+ *
+ * <pre>
+ * StringHolder name = new StringHolder();
+ * IntHolder index = new IntHolder();
+ * IntHolder size = new IntHolder();
+ * DoubleHolder foo = new DoubleHolder();
+ *
+ * parser.addOption(&quot;-name %s {john,mary,jane}&quot;, name);
+ * parser.addOption(&quot;-index %d {[1,256]}&quot;, index);
+ * parser.addOption(&quot;-size %d {1,2,4,8,16}&quot;, size);
+ * parser.addOption(&quot;-foo %f {(-99,-50],[50,99)}&quot;, foo);
+ * </pre>
+ *
+ * If an argument value does not lie within a specified range, an error is generated.
+ *
+ * <h3><a name="multipleOptionNames">Multiple Option Names</a></h3>
+ *
+ * An option may be given several names, or aliases, in the form of a comma seperated list:
+ *
+ * <pre>
+ * parser.addOption(&quot;-v,--verbose %v #print lots of info&quot;);
+ * parser.addOption(&quot;-of,-outfile,-outputFile %s #output file&quot;);
+ * </pre>
+ *
+ * <h3><a name="singleWordOptions">Single Word Options</a></h3>
+ *
+ * Normally, options are assumed to be "multi-word", meaning that any associated value must follow the option as a
+ * separate argument string. For example,
+ *
+ * <pre>
+ * parser.addOption(&quot;-file %s #file name&quot;);
+ * </pre>
+ *
+ * will cause the parser to look for two strings in the argument list of the form
+ *
+ * <pre>
+ * -file someFileName
+ * </pre>
+ *
+ * However, if there is no white space separting the option's name from it's conversion code, then values associated
+ * with that option will be assumed to be part of the same argument string as the option itself. For example,
+ *
+ * <pre>
+ * parser.addOption(&quot;-file=%s #file name&quot;);
+ * </pre>
+ *
+ * will cause the parser to look for a single string in the argument list of the form
+ *
+ * <pre>
+ * -file=someFileName
+ * </pre>
+ *
+ * Such an option is called a "single word" option.
+ *
+ * <p>
+ * In cases where an option has multiple names, then this single word behavior is invoked if there is no white space
+ * between the last indicated name and the conversion code. However, previous names in the list will still be given
+ * multi-word behavior if there is white space between the name and the following comma. For example,
+ *
+ * <pre>
+ * parser.addOption(&quot;-nb=,-number ,-n%d #number of blocks&quot;);
+ * </pre>
+ *
+ * will cause the parser to look for one, two, and one word constructions of the forms
+ *
+ * <pre>
+ * -nb=N
+ * -number N
+ * -nN
+ * </pre>
+ *
+ * <h3><a name="multipleOptionValues">Multiple Option Values</a></h3>
+ *
+ * If may be useful for an option to be followed by several values. For instance, we might have an option
+ * <code>-velocity</code> which should be followed by three numbers denoting the x, y, and z components of a velocity
+ * vector. We can require multiple values for an option by placing a <i>multiplier</i> specification, of the form
+ * <code>X</code>N, where N is an integer, after the conversion code (or range specification, if present). For example,
+ *
+ * <pre>
+ * double[] pos = new double[3];
+ *
+ * addOption(&quot;-position %fX3 #position of the object&quot;, pos);
+ * </pre>
+ *
+ * will cause the parser to look for
+ *
+ * <pre>
+ * -position xx yy zz
+ * </pre>
+ *
+ * in the argument list, where <code>xx</code>, <code>yy</code>, and <code>zz</code> are numbers. The values are stored
+ * in the array <code>pos</code>.
+ *
+ * Options requiring multiple values must use arrays to return their values, and cannot be used in single word format.
+ *
+ * <h3><a name="multipleOptionInvocation">Multiple Option Invocation</a></h3>
+ *
+ * Normally, if an option appears twice in the command list, the value associated with the second instance simply
+ * overwrites the value associated with the first instance.
+ *
+ * However, the application can instead arrange for the storage of <i>all</i> values associated with multiple option
+ * invocation, by supplying a instance of <code>java.util.Vector</code> to serve as the value holder. Then every time
+ * the option appears in the argument list, the parser will create a value holder of appropriate type, set it to the
+ * current value, and store the holder in the vector. For example, the construction
+ *
+ * <pre>
+ * Vector vec = new Vector(10);
+ *
+ * parser.addOption(&quot;-foo %f&quot;, vec);
+ * parser.matchAllArgs(args);
+ * </pre>
+ *
+ * when supplied with an argument list that contains
+ *
+ * <pre>
+ * -foo 1.2 -foo 1000 -foo -78
+ * </pre>
+ *
+ * will create three instances of {@link argparser.DoubleHolder DoubleHolder}, initialized to <code>1.2</code>,
+ * <code>1000</code>, and <code>-78</code>, and store them in <code>vec</code>.
+ *
+ * <h3><a name="helpInfo">Generating help information</a></h3>
+ *
+ * ArgParser automatically generates help information for the options, and this information may be printed in response
+ * to a <i>help</i> option, or may be queried by the application using {@link #getHelpMessage getHelpMessage}. The
+ * information for each option consists of the option's name(s), it's required value(s), and an application-supplied
+ * description. Value information is generated automaticlly from the conversion code, range, and multiplier
+ * specifications (although this can be overriden, as <a href=#valueInfo>described below</a>). The application-supplied
+ * description is whatever appears in the specification string after the optional <code>#</code> character. The string
+ * returned by {@link #getHelpMessage getHelpMessage} for the <a href=#example>first example above</a> would be
+ *
+ * <pre>
+ * Usage: java argparser.SimpleExample
+ * Options include:
+ *
+ * -help,-? displays help information
+ * -theta &lt;float&gt; theta value (in degrees)
+ * -file &lt;string&gt; name of the operating file
+ * -debug enables display of debugging info
+ * </pre>
+ *
+ * The options <code>-help</code> and <code>-?</code> are including in the parser by default as help options, and they
+ * automatically cause the help message to be printed. To exclude these options, one should use the constructor
+ * {@link #ArgParser(String,boolean)
+ * ArgParser(synopsis,false)}. Help options can also be specified by the application using {@link #addOption addOption}
+ * and the conversion code <code>%h</code>. Help options can be disabled using {@link #setHelpOptionsEnabled
+ * setHelpOptionsEnabled(false)}.
+ *
+ * <p>
+ * <a name=valueInfo> A description of the required values for an option can be specified explicitly by placing a second
+ * <code>#</code> character in the specification string. Everything between the first and second <code>#</code>
+ * characters then becomes the value description, and everything after the second <code>#</code> character becomes the
+ * option description. For example, if the <code>-theta</code> option above was specified with
+ *
+ * <pre>
+ * parser.addOption(&quot;-theta %f #NUMBER#theta value (in degrees)&quot;, theta);
+ * </pre>
+ *
+ * instead of
+ *
+ * <pre>
+ * parser.addOption(&quot;-theta %f #theta value (in degrees)&quot;, theta);
+ * </pre>
+ *
+ * then the corresponding entry in the help message would look like
+ *
+ * <pre>
+ * -theta NUMBER theta value (in degrees)
+ * </pre>
+ *
+ * <h3><a name="customArgParsing">Custom Argument Parsing</a></h3>
+ *
+ * An application may find it necessary to handle arguments that don't fit into the framework of this class. There are a
+ * couple of ways to do this.
+ *
+ * <p>
+ * First, the method {@link #matchAllArgs(String[],int,int)
+ * matchAllArgs(args,idx,exitFlags)} returns an array of all unmatched arguments, which can then be handled specially:
+ *
+ * <pre>
+ * String[] unmatched =
+ * parser.matchAllArgs (args, 0, parser.EXIT_ON_ERROR);
+ * for (int i = 0; i < unmatched.length; i++)
+ * { ... handle unmatched arguments ...
+ * }
+ * </pre>
+ *
+ * For instance, this would be useful for an applicatoon that accepts an arbitrary number of input file names. The
+ * options can be parsed using <code>matchAllArgs</code>, and the remaining unmatched arguments give the file names.
+ *
+ * <p>
+ * If we need more control over the parsing, we can parse arguments one at a time using {@link #matchArg matchArg}:
+ *
+ * <pre>
+ * int idx = 0;
+ * while (idx < args.length)
+ * { try
+ * { idx = parser.matchArg (args, idx);
+ * if (parser.getUnmatchedArgument() != null)
+ * {
+ * ... handle this unmatched argument ourselves ...
+ * }
+ * }
+ * catch (ArgParserException e)
+ * { // malformed or erroneous argument
+ * parser.printErrorAndExit (e.getMessage());
+ * }
+ * }
+ * </pre>
+ *
+ * {@link #matchArg matchArg(args,idx)} matches one option at location <code>idx</code> in the argument list, and then
+ * returns the location value that should be used for the next match. If an argument does not match any option,
+ * {@link #getUnmatchedArgument getUnmatchedArgument} will return a copy of the unmatched argument.
+ *
+ * <h3><a name="argsFromAFile">Reading Arguments From a File</a></h3>
+ *
+ * The method {@link #prependArgs prependArgs} can be used to automatically read in a set of arguments from a file and
+ * prepend them onto an existing argument list. Argument words correspond to white-space-delimited strings, and the file
+ * may contain the comment character <code>#</code> (which comments out everything to the end of the current line). A
+ * typical usage looks like this:
+ *
+ * <pre>
+ * ... create parser and add options ...
+ *
+ * args = parser.prependArgs (new File(".configFile"), args);
+ *
+ * parser.matchAllArgs (args);
+ * </pre>
+ *
+ * This makes it easy to generate simple configuration files for an application.
+ *
+ * @author John E. Lloyd, Fall 2004
+ */
+public class ArgParser {
+ Vector<Record> matchList;
+ // int tabSpacing = 8;
+ String synopsisString;
+ boolean helpOptionsEnabled = true;
+ Record defaultHelpOption = null;
+ Record firstHelpOption = null;
+ PrintStream printStream = System.out;
+ int helpIndent = 24;
+ String errMsg = null;
+ String unmatchedArg = null;
+
+ static String validConversionCodes = "iodxcbfsvh";
+
+ /**
+ * Indicates that the program should exit with an appropriate message
+ * in the event of an erroneous or malformed argument.
+ */
+ public static int EXIT_ON_ERROR = 1;
+
+ /**
+ * Indicates that the program should exit with an appropriate message
+ * in the event of an unmatched argument.
+ */
+ public static int EXIT_ON_UNMATCHED = 2;
+
+ /**
+ * Returns a string containing the valid conversion codes. These
+ * are the characters which may follow the <code>%</code> character in
+ * the specification string of {@link #addOption addOption}.
+ *
+ * @return Valid conversion codes
+ * @see #addOption
+ */
+ public static String getValidConversionCodes() {
+ return validConversionCodes;
+ }
+
+ static class NameDesc {
+ String name;
+ // oneWord implies that any value associated with
+ // option is concatenated onto the argument string itself
+ boolean oneWord;
+ NameDesc next = null;
+ }
+
+ static class RangePnt {
+ double dval = 0;
+ long lval = 0;
+ String sval = null;
+ boolean bval = true;
+ boolean closed = true;
+
+ RangePnt(String s, boolean closed) {
+ sval = s;
+ this.closed = closed;
+ }
+
+ RangePnt(double d, boolean closed) {
+ dval = d;
+ this.closed = closed;
+ }
+
+ RangePnt(long l, boolean closed) {
+ lval = l;
+ this.closed = closed;
+ }
+
+ RangePnt(boolean b, boolean closed) {
+ bval = b;
+ this.closed = closed;
+ }
+
+ RangePnt(StringScanner scanner, int type)
+ throws IllegalArgumentException {
+ String typeName = null;
+ try {
+ switch (type) {
+ case Record.CHAR: {
+ typeName = "character";
+ lval = scanner.scanChar();
+ break;
+ }
+ case Record.INT:
+ case Record.LONG: {
+ typeName = "integer";
+ lval = scanner.scanInt();
+ break;
+ }
+ case Record.FLOAT:
+ case Record.DOUBLE: {
+ typeName = "float";
+ dval = scanner.scanDouble();
+ break;
+ }
+ case Record.STRING: {
+ typeName = "string";
+ sval = scanner.scanString();
+ break;
+ }
+ case Record.BOOLEAN: {
+ typeName = "boolean";
+ bval = scanner.scanBoolean();
+ break;
+ }
+ }
+ } catch (StringScanException e) {
+ throw new IllegalArgumentException(
+ "Malformed " + typeName + " '" +
+ scanner.substring(scanner.getIndex(),
+ e.getFailIndex() + 1) +
+ "' in range spec");
+ }
+ // this.closed = closed;
+ }
+
+ void setClosed(boolean closed) {
+ this.closed = closed;
+ }
+
+ boolean getClosed() {
+ return closed;
+ }
+
+ int compareTo(double d) {
+ if (dval < d) {
+ return -1;
+ } else if (d == dval) {
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+
+ int compareTo(long l) {
+ if (lval < l) {
+ return -1;
+ } else if (l == lval) {
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+
+ int compareTo(String s) {
+ return sval.compareTo(s);
+ }
+
+ int compareTo(boolean b) {
+ if (b == bval) {
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+
+ public String toString() {
+ return "{ dval=" + dval + ", lval=" + lval +
+ ", sval=" + sval + ", bval=" + bval +
+ ", closed=" + closed + "}";
+ }
+ }
+
+ class RangeAtom {
+ RangePnt low = null;
+ RangePnt high = null;
+ RangeAtom next = null;
+
+ RangeAtom(RangePnt p0, RangePnt p1, int type)
+ throws IllegalArgumentException {
+ int cmp = 0;
+ switch (type) {
+ case Record.CHAR:
+ case Record.INT:
+ case Record.LONG: {
+ cmp = p0.compareTo(p1.lval);
+ break;
+ }
+ case Record.FLOAT:
+ case Record.DOUBLE: {
+ cmp = p0.compareTo(p1.dval);
+ break;
+ }
+ case Record.STRING: {
+ cmp = p0.compareTo(p1.sval);
+ break;
+ }
+ }
+ if (cmp > 0) { // then switch high and low
+ low = p1;
+ high = p0;
+ } else {
+ low = p0;
+ high = p1;
+ }
+ }
+
+ RangeAtom(RangePnt p0)
+ throws IllegalArgumentException {
+ low = p0;
+ }
+
+ boolean match(double d) {
+ int lc = low.compareTo(d);
+ if (high != null) {
+ int hc = high.compareTo(d);
+ return (lc * hc < 0 ||
+ (low.closed && lc == 0) || (high.closed && hc == 0));
+ } else {
+ return lc == 0;
+ }
+ }
+
+ boolean match(long l) {
+ int lc = low.compareTo(l);
+ if (high != null) {
+ int hc = high.compareTo(l);
+ return (lc * hc < 0 ||
+ (low.closed && lc == 0) || (high.closed && hc == 0));
+ } else {
+ return lc == 0;
+ }
+ }
+
+ boolean match(String s) {
+ int lc = low.compareTo(s);
+ if (high != null) {
+ int hc = high.compareTo(s);
+ return (lc * hc < 0 ||
+ (low.closed && lc == 0) || (high.closed && hc == 0));
+ } else {
+ return lc == 0;
+ }
+ }
+
+ boolean match(boolean b) {
+ return low.compareTo(b) == 0;
+ }
+
+ public String toString() {
+ return "low=" + (low == null ? "null" : low.toString()) +
+ ", high=" + (high == null ? "null" : high.toString());
+ }
+ }
+
+ class Record {
+ NameDesc nameList;
+ static final int NOTYPE = 0;
+ static final int BOOLEAN = 1;
+ static final int CHAR = 2;
+ static final int INT = 3;
+ static final int LONG = 4;
+ static final int FLOAT = 5;
+ static final int DOUBLE = 6;
+ static final int STRING = 7;
+ int type;
+ int numValues;
+ boolean vectorResult = false;
+ boolean required = true;
+
+ String helpMsg = null;
+ String valueDesc = null;
+ String rangeDesc = null;
+ Object resHolder = null;
+ RangeAtom rangeList = null;
+ RangeAtom rangeTail = null;
+ char convertCode;
+ boolean vval = true; // default value for now
+
+ NameDesc firstNameDesc() {
+ return nameList;
+ }
+
+ RangeAtom firstRangeAtom() {
+ return rangeList;
+ }
+
+ int numRangeAtoms() {
+ int cnt = 0;
+ for (RangeAtom ra = rangeList; ra != null; ra = ra.next) {
+ cnt++;
+ }
+ return cnt;
+ }
+
+ void addRangeAtom(RangeAtom ra) {
+ if (rangeList == null) {
+ rangeList = ra;
+ } else {
+ rangeTail.next = ra;
+ }
+ rangeTail = ra;
+ }
+
+ boolean withinRange(double d) {
+ if (rangeList == null) {
+ return true;
+ }
+ for (RangeAtom ra = rangeList; ra != null; ra = ra.next) {
+ if (ra.match(d)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ boolean withinRange(long l) {
+ if (rangeList == null) {
+ return true;
+ }
+ for (RangeAtom ra = rangeList; ra != null; ra = ra.next) {
+ if (ra.match(l)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ boolean withinRange(String s) {
+ if (rangeList == null) {
+ return true;
+ }
+ for (RangeAtom ra = rangeList; ra != null; ra = ra.next) {
+ if (ra.match(s)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ boolean withinRange(boolean b) {
+ if (rangeList == null) {
+ return true;
+ }
+ for (RangeAtom ra = rangeList; ra != null; ra = ra.next) {
+ if (ra.match(b)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ String valTypeName() {
+ switch (convertCode) {
+ case 'i': {
+ return ("integer");
+ }
+ case 'o': {
+ return ("octal integer");
+ }
+ case 'd': {
+ return ("decimal integer");
+ }
+ case 'x': {
+ return ("hex integer");
+ }
+ case 'c': {
+ return ("char");
+ }
+ case 'b': {
+ return ("boolean");
+ }
+ case 'f': {
+ return ("float");
+ }
+ case 's': {
+ return ("string");
+ }
+ }
+ return ("unknown");
+ }
+
+ void scanValue(Object result, String name, String s, int resultIdx)
+ throws ArgParseException {
+ double dval = 0;
+ String sval = null;
+ long lval = 0;
+ boolean bval = false;
+
+ if (s.length() == 0) {
+ throw new ArgParseException(name, "requires a contiguous value");
+ }
+ StringScanner scanner = new StringScanner(s);
+ try {
+ switch (convertCode) {
+ case 'i': {
+ lval = scanner.scanInt();
+ break;
+ }
+ case 'o': {
+ lval = scanner.scanInt(8, false);
+ break;
+ }
+ case 'd': {
+ lval = scanner.scanInt(10, false);
+ break;
+ }
+ case 'x': {
+ lval = scanner.scanInt(16, false);
+ break;
+ }
+ case 'c': {
+ lval = scanner.scanChar();
+ break;
+ }
+ case 'b': {
+ bval = scanner.scanBoolean();
+ break;
+ }
+ case 'f': {
+ dval = scanner.scanDouble();
+ break;
+ }
+ case 's': {
+ sval = scanner.getString();
+ break;
+ }
+ }
+ } catch (StringScanException e) {
+ throw new ArgParseException(
+ name, "malformed " + valTypeName() + " '" + s + "'");
+ }
+ scanner.skipWhiteSpace();
+ if (!scanner.atEnd()) {
+ throw new ArgParseException(
+ name, "malformed " + valTypeName() + " '" + s + "'");
+ }
+ boolean outOfRange = false;
+ switch (type) {
+ case CHAR:
+ case INT:
+ case LONG: {
+ outOfRange = !withinRange(lval);
+ break;
+ }
+ case FLOAT:
+ case DOUBLE: {
+ outOfRange = !withinRange(dval);
+ break;
+ }
+ case STRING: {
+ outOfRange = !withinRange(sval);
+ break;
+ }
+ case BOOLEAN: {
+ outOfRange = !withinRange(bval);
+ break;
+ }
+ }
+ if (outOfRange) {
+ throw new ArgParseException(
+ name, "value '" + s + "' not in range " + rangeDesc);
+ }
+ if (result.getClass().isArray()) {
+ switch (type) {
+ case BOOLEAN: {
+ ((boolean[]) result)[resultIdx] = bval;
+ break;
+ }
+ case CHAR: {
+ ((char[]) result)[resultIdx] = (char) lval;
+ break;
+ }
+ case INT: {
+ ((int[]) result)[resultIdx] = (int) lval;
+ break;
+ }
+ case LONG: {
+ ((long[]) result)[resultIdx] = lval;
+ break;
+ }
+ case FLOAT: {
+ ((float[]) result)[resultIdx] = (float) dval;
+ break;
+ }
+ case DOUBLE: {
+ ((double[]) result)[resultIdx] = dval;
+ break;
+ }
+ case STRING: {
+ ((String[]) result)[resultIdx] = sval;
+ break;
+ }
+ }
+ } else {
+ switch (type) {
+ case BOOLEAN: {
+ ((BooleanHolder) result).value = bval;
+ break;
+ }
+ case CHAR: {
+ ((CharHolder) result).value = (char) lval;
+ break;
+ }
+ case INT: {
+ ((IntHolder) result).value = (int) lval;
+ break;
+ }
+ case LONG: {
+ ((LongHolder) result).value = lval;
+ break;
+ }
+ case FLOAT: {
+ ((FloatHolder) result).value = (float) dval;
+ break;
+ }
+ case DOUBLE: {
+ ((DoubleHolder) result).value = dval;
+ break;
+ }
+ case STRING: {
+ ((StringHolder) result).value = sval;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ private String firstHelpOptionName() {
+ if (firstHelpOption != null) {
+ return firstHelpOption.nameList.name;
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Creates an <code>ArgParser</code> with a synopsis
+ * string, and the default help options <code>-help</code> and <code>-&#063;</code>.
+ *
+ * @param synopsisString string that briefly describes program usage,
+ * for use by {@link #getHelpMessage getHelpMessage}.
+ * @see ArgParser#getSynopsisString
+ * @see ArgParser#getHelpMessage
+ */
+ public ArgParser(String synopsisString) {
+ this(synopsisString, true);
+ }
+
+ /**
+ * Creates an <code>ArgParser</code> with a synopsis
+ * string. The help options <code>-help</code> and <code>-?</code> are added if <code>defaultHelp</code> is true.
+ *
+ * @param synopsisString string that briefly describes program usage,
+ * for use by {@link #getHelpMessage getHelpMessage}.
+ * @param defaultHelp if true, adds the default help options
+ * @see ArgParser#getSynopsisString
+ * @see ArgParser#getHelpMessage
+ */
+ public ArgParser(String synopsisString, boolean defaultHelp) {
+ matchList = new Vector<Record>(128);
+ this.synopsisString = synopsisString;
+ if (defaultHelp) {
+ addOption("-help,-? %h #displays help information", null);
+ defaultHelpOption = firstHelpOption = matchList.get(0);
+ }
+ }
+
+ /**
+ * Returns the synopsis string used by the parser.
+ * The synopsis string is a short description of how to invoke
+ * the program, and usually looks something like
+ * <p>
+ * <prec> "java somepackage.SomeClass [options] files ..." </prec>
+ *
+ * <p>
+ * It is used in help and error messages.
+ *
+ * @return synopsis string
+ * @see ArgParser#setSynopsisString
+ * @see ArgParser#getHelpMessage
+ */
+ public String getSynopsisString() {
+ return synopsisString;
+ }
+
+ /**
+ * Sets the synopsis string used by the parser.
+ *
+ * @param s new synopsis string
+ * @see ArgParser#getSynopsisString
+ * @see ArgParser#getHelpMessage
+ */
+ public void setSynopsisString(String s) {
+ synopsisString = s;
+ }
+
+ /**
+ * Indicates whether or not help options are enabled.
+ *
+ * @return true if help options are enabled
+ * @see ArgParser#setHelpOptionsEnabled
+ * @see ArgParser#addOption
+ */
+ public boolean getHelpOptionsEnabled() {
+ return helpOptionsEnabled;
+ }
+
+ /**
+ * Enables or disables help options. Help options are those
+ * associated with a conversion code of <code>%h</code>. If
+ * help options are enabled, and a help option is matched,
+ * then the string produced by {@link #getHelpMessage getHelpMessage} is printed to the default print stream and the
+ * program
+ * exits with code 0. Otherwise, arguments which match help
+ * options are ignored.
+ *
+ * @param enable enables help options if <code>true</code>.
+ * @see ArgParser#getHelpOptionsEnabled
+ * @see ArgParser#addOption
+ * @see ArgParser#setDefaultPrintStream
+ */
+ public void setHelpOptionsEnabled(boolean enable) {
+ helpOptionsEnabled = enable;
+ }
+
+ /**
+ * Returns the default print stream used for outputting help
+ * and error information.
+ *
+ * @return default print stream
+ * @see ArgParser#setDefaultPrintStream
+ */
+ public PrintStream getDefaultPrintStream() {
+ return printStream;
+ }
+
+ /**
+ * Sets the default print stream used for outputting help
+ * and error information.
+ *
+ * @param stream new default print stream
+ * @see ArgParser#getDefaultPrintStream
+ */
+ public void setDefaultPrintStream(PrintStream stream) {
+ printStream = stream;
+ }
+
+ /**
+ * Gets the indentation used by {@link #getHelpMessage
+ * getHelpMessage}.
+ *
+ * @return number of indentation columns
+ * @see ArgParser#setHelpIndentation
+ * @see ArgParser#getHelpMessage
+ */
+ public int getHelpIndentation() {
+ return helpIndent;
+ }
+
+ /**
+ * Sets the indentation used by {@link #getHelpMessage
+ * getHelpMessage}. This is the number of columns that an option's help
+ * information is indented. If the option's name and value information
+ * can fit within this number of columns, then all information about
+ * the option is placed on one line. Otherwise, the indented help
+ * information is placed on a separate line.
+ *
+ * @param indent number of indentation columns
+ * @see ArgParser#getHelpIndentation
+ * @see ArgParser#getHelpMessage
+ */
+ public void setHelpIndentation(int indent) {
+ helpIndent = indent;
+ }
+
+ // public void setTabSpacing (int n)
+ // { tabSpacing = n;
+ // }
+
+ // public int getTabSpacing ()
+ // { return tabSpacing;
+ // }
+
+ private void scanRangeSpec(Record rec, String s)
+ throws IllegalArgumentException {
+ StringScanner scanner = new StringScanner(s);
+ char c, c0, c1;
+
+ scanner.setStringDelimiters(")],}");
+ c = scanner.getc(); // swallow the first '{'
+ scanner.skipWhiteSpace();
+ while ((c = scanner.peekc()) != '}') {
+ RangePnt p0, p1;
+
+ if (c == '[' || c == '(') {
+ if (rec.convertCode == 'v' || rec.convertCode == 'b') {
+ throw new IllegalArgumentException("Sub ranges not supported for %b or %v");
+ }
+ c0 = scanner.getc(); // record & swallow character
+ scanner.skipWhiteSpace();
+ p0 = new RangePnt(scanner, rec.type);
+ scanner.skipWhiteSpace();
+ if (scanner.getc() != ',') {
+ throw new IllegalArgumentException("Missing ',' in subrange specification");
+ }
+ p1 = new RangePnt(scanner, rec.type);
+ scanner.skipWhiteSpace();
+ if ((c1 = scanner.getc()) != ']' && c1 != ')') {
+ throw new IllegalArgumentException("Unterminated subrange");
+ }
+ if (c0 == '(') {
+ p0.setClosed(false);
+ }
+ if (c1 == ')') {
+ p1.setClosed(false);
+ }
+ rec.addRangeAtom(new RangeAtom(p0, p1, rec.type));
+ } else {
+ scanner.skipWhiteSpace();
+ p0 = new RangePnt(scanner, rec.type);
+ rec.addRangeAtom(new RangeAtom(p0));
+ }
+ scanner.skipWhiteSpace();
+ if ((c = scanner.peekc()) == ',') {
+ scanner.getc();
+ scanner.skipWhiteSpace();
+ } else if (c != '}') {
+ throw new IllegalArgumentException("Range spec: ',' or '}' expected");
+ }
+ }
+ if (rec.numRangeAtoms() == 1) {
+ rec.rangeDesc = s.substring(1, s.length() - 1);
+ } else {
+ rec.rangeDesc = s;
+ }
+ }
+
+ private int defaultResultType(char convertCode) {
+ switch (convertCode) {
+ case 'i':
+ case 'o':
+ case 'd':
+ case 'x': {
+ return Record.LONG;
+ }
+ case 'c': {
+ return Record.CHAR;
+ }
+ case 'v':
+ case 'b': {
+ return Record.BOOLEAN;
+ }
+ case 'f': {
+ return Record.DOUBLE;
+ }
+ case 's': {
+ return Record.STRING;
+ }
+ }
+ return Record.NOTYPE;
+ }
+
+ /**
+ * Adds a new option description to the parser. The method takes two
+ * arguments: a specification string, and a result holder in which to
+ * store the associated value.
+ *
+ * <p>
+ * The specification string has the general form
+ *
+ * <p>
+ * <var>optionNames</var> <code>%</code><var>conversionCode</var> [<code>{</code><var>rangeSpec</var><code>}</code>]
+ * [<code>X</code><var>multiplier</var>] [<code>#</code><var>valueDescription</var>] [<code>#</code>
+ * <var>optionDescription</var>] </code>
+ *
+ * <p>
+ * where
+ * <ul>
+ * <p>
+ * <li><var>optionNames</var> is a comma-separated list of names for the option (such as <code>-f, --file</code>).
+ *
+ * <p>
+ * <li><var>conversionCode</var> is a single letter, following a <code>%</code> character, specifying information
+ * about what value the option requires:
+ *
+ * <table>
+ * <tr>
+ * <td><code>%f</code></td>
+ * <td>a floating point number</td>
+ * <tr>
+ * <td><code>%i</code></td>
+ * <td>an integer, in either decimal, hex (if preceeded by <code>0x</code>), or octal (if preceeded by
+ * <code>0</code>)</td>
+ * <tr valign=top>
+ * <td><code>%d</code></td>
+ * <td>a decimal integer</td>
+ * <tr valign=top>
+ * <td><code>%o</code></td>
+ * <td>an octal integer</td>
+ * <tr valign=top>
+ * <td><code>%h</code></td>
+ * <td>a hex integer (without the preceeding <code>0x</code>)</td>
+ * <tr valign=top>
+ * <td><code>%c</code></td>
+ * <td>a single character, including escape sequences (such as <code>\n</code> or <code>\007</code>), and optionally
+ * enclosed in single quotes
+ * <tr valign=top>
+ * <td><code>%b</code></td>
+ * <td>a boolean value (<code>true</code> or <code>false</code>)</td>
+ * <tr valign=top>
+ * <td><code>%s</code></td>
+ * <td>a string. This will be the argument string itself (or its remainder, in the case of a single word option)</td>
+ * <tr valign=top>
+ * <td><code>%v</code></td>
+ * <td>no explicit value is expected, but a boolean value of <code>true</code> (by default) will be stored into the
+ * associated result holder if this option is matched. If one wishes to have a value of <code>false</code> stored
+ * instead, then the <code>%v</code> should be followed by a "range spec" containing <code>false</code>, as in
+ * <code>%v{false}</code>.
+ * </table>
+ *
+ * <p>
+ * <li><var>rangeSpec</var> is an optional range specification, placed inside curly braces, consisting of a
+ * comma-separated list of range items each specifying permissible values for the option. A range item may be an
+ * individual value, or it may itself be a subrange, consisting of two individual values, separated by a comma, and
+ * enclosed in square or round brackets. Square and round brackets denote closed and open endpoints of a subrange,
+ * indicating that the associated endpoint value is included or excluded from the subrange. The values specified in
+ * the range spec need to be consistent with the type of value expected by the option.
+ *
+ * <p>
+ * <b>Examples:</b>
+ *
+ * <p>
+ * A range spec of <code>{2,4,8,16}</code> for an integer value will allow the integers 2, 4, 8, or 16.
+ *
+ * <p>
+ * A range spec of <code>{[-1.0,1.0]}</code> for a floating point value will allow any floating point number in the
+ * range -1.0 to 1.0.
+ *
+ * <p>
+ * A range spec of <code>{(-88,100],1000}</code> for an integer value will allow values > -88 and <= 100, as well as
+ * 1000.
+ *
+ * <p>
+ * A range spec of <code>{"foo", "bar", ["aaa","zzz")} </code> for a string value will allow strings equal to
+ * <code>"foo"</code> or <code>"bar"</code>, plus any string lexically greater than or equal to <code>"aaa"</code>
+ * but less then <code>"zzz"</code>.
+ *
+ * <p>
+ * <li><var>multiplier</var> is an optional integer, following a <code>X</code> character, indicating the number of
+ * values which the option expects. If the multiplier is not specified, it is assumed to be 1. If the multiplier
+ * value is greater than 1, then the result holder should be either an array (of appropriate type) with a length
+ * greater than or equal to the multiplier value, or a <code>java.util.Vector</code> <a href=#vectorHolder>as
+ * discussed below</a>.
+ *
+ * <p>
+ * <li><var>valueDescription</var> is an optional description of the option's value requirements, and consists of
+ * all characters between two <code>#</code> characters. The final <code>#</code> character initiates the <i>option
+ * description</i>, which may be empty. The value description is used in <a href=#helpInfo>generating help
+ * messages</a>.
+ *
+ * <p>
+ * <li><var>optionDescription</var> is an optional description of the option itself, consisting of all characters
+ * between a <code>#</code> character and the end of the specification string. The option description is used in <a
+ * href=#helpInfo>generating help messages</a>.
+ * </ul>
+ *
+ * <p>
+ * The result holder must be an object capable of holding a value compatible with the conversion code, or it must be
+ * a <code>java.util.Vector</code>. When the option is matched, its associated value is placed in the result holder.
+ * If the same option is matched repeatedly, the result holder value will be overwritten, unless the result holder
+ * is a <code>java.util.Vector</code>, in which case new holder objects for each match will be allocated and added
+ * to the vector. Thus if multiple instances of an option are desired by the program, the result holder should be a
+ * <code>java.util.Vector</code>.
+ *
+ * <p>
+ * If the result holder is not a <code>Vector</code>, then it must correspond as follows to the conversion code:
+ *
+ * <table>
+ * <tr valign=top>
+ * <td><code>%i</code>, <code>%d</code>, <code>%x</code>, <code>%o</code></td>
+ * <td>{@link argparser.IntHolder IntHolder}, {@link argparser.LongHolder LongHolder}, <code>int[]</code>, or
+ * <code>long[]</code></td>
+ * </tr>
+ *
+ * <tr valign=top>
+ * <td><code>%f</code></td>
+ * <td>{@link argparser.FloatHolder FloatHolder}, {@link argparser.DoubleHolder DoubleHolder}, <code>float[]</code>,
+ * or <code>double[]</code></td>
+ * </tr>
+ *
+ * <tr valign=top>
+ * <td><code>%b</code>, <code>%v</code></td>
+ * <td>{@link argparser.BooleanHolder BooleanHolder} or <code>boolean[]</code></td>
+ * </tr>
+ *
+ * <tr valign=top>
+ * <td><code>%s</code></td>
+ * <td>{@link argparser.StringHolder StringHolder} or <code>String[]</code></td>
+ * </tr>
+ *
+ * <tr valign=top>
+ * <td><code>%c</code></td>
+ * <td>{@link argparser.CharHolder CharHolder} or <code>char[]</code></td>
+ * </tr>
+ * </table>
+ *
+ * <p>
+ * In addition, if the multiplier is greater than 1, then only the array type indicated above may be used, and the
+ * array must be at least as long as the multiplier.
+ *
+ * <p>
+ * <a name=vectorHolder>If the result holder is a <code>Vector</code>, then the system will create an appropriate
+ * result holder object and add it to the vector. Multiple occurances of the option will cause multiple results to
+ * be added to the vector.
+ *
+ * <p>
+ * The object allocated by the system to store the result will correspond to the conversion code as follows:
+ *
+ * <table>
+ * <tr valign=top>
+ * <td><code>%i</code>, <code>%d</code>, <code>%x</code>, <code>%o</code></td>
+ * <td>{@link argparser.LongHolder LongHolder}, or <code>long[]</code> if the multiplier value exceeds 1</td>
+ * </tr>
+ *
+ * <tr valign=top>
+ * <td><code>%f</code></td>
+ * <td>{@link argparser.DoubleHolder DoubleHolder}, or <code>double[]</code> if the multiplier value exceeds 1</td>
+ * </tr>
+ *
+ * <tr valign=top>
+ * <td><code>%b</code>, <code>%v</code></td>
+ * <td>{@link argparser.BooleanHolder BooleanHolder}, or <code>boolean[]</code> if the multiplier value exceeds 1</td>
+ * </tr>
+ *
+ * <tr valign=top>
+ * <td><code>%s</code></td>
+ * <td>{@link argparser.StringHolder StringHolder}, or <code>String[]</code> if the multiplier value exceeds 1</td>
+ * </tr>
+ *
+ * <tr valign=top>
+ * <td><code>%c</code></td>
+ * <td>{@link argparser.CharHolder CharHolder}, or <code>char[]</code> if the multiplier value exceeds 1</td>
+ * </tr>
+ * </table>
+ *
+ * @param spec the specification string
+ * @param resHolder object in which to store the associated
+ * value
+ * @throws IllegalArgumentException if there is an error in
+ * the specification or if the result holder is of an invalid
+ * type.
+ */
+ public void addOption(String spec, Object resHolder)
+ throws IllegalArgumentException {
+ // null terminated string is easier to parse
+ StringScanner scanner = new StringScanner(spec);
+ Record rec = null;
+ NameDesc nameTail = null;
+ NameDesc ndesc;
+ int i0, i1;
+ char c;
+
+ do {
+ ndesc = new NameDesc();
+ boolean nameEndsInWhiteSpace = false;
+
+ scanner.skipWhiteSpace();
+ i0 = scanner.getIndex();
+ while (!Character.isWhitespace(c = scanner.getc()) &&
+ c != ',' && c != '%' && c != '\000')
+ ;
+ i1 = scanner.getIndex();
+ if (c != '\000') {
+ i1--;
+ }
+ if (i0 == i1) { // then c is one of ',' '%' or '\000'
+ throw new IllegalArgumentException("Null option name given");
+ }
+ if (Character.isWhitespace(c)) {
+ nameEndsInWhiteSpace = true;
+ scanner.skipWhiteSpace();
+ c = scanner.getc();
+ }
+ if (c == '\000') {
+ throw new IllegalArgumentException("No conversion character given");
+ }
+ if (c != ',' && c != '%') {
+ throw new IllegalArgumentException("Names not separated by ','");
+ }
+ ndesc.name = scanner.substring(i0, i1);
+ if (rec == null) {
+ rec = new Record();
+ rec.nameList = ndesc;
+ } else {
+ nameTail.next = ndesc;
+ }
+ nameTail = ndesc;
+ ndesc.oneWord = !nameEndsInWhiteSpace;
+ } while (c != '%');
+
+ if (!nameTail.oneWord) {
+ for (ndesc = rec.nameList; ndesc != null; ndesc = ndesc.next) {
+ ndesc.oneWord = false;
+ }
+ }
+ c = scanner.getc();
+ if (c == '\000') {
+ throw new IllegalArgumentException("No conversion character given");
+ }
+ if (validConversionCodes.indexOf(c) == -1) {
+ throw new IllegalArgumentException("Conversion code '" + c + "' not one of '" +
+ validConversionCodes + "'");
+ }
+ rec.convertCode = c;
+
+ if (resHolder instanceof Vector) {
+ rec.vectorResult = true;
+ rec.type = defaultResultType(rec.convertCode);
+ } else {
+ switch (rec.convertCode) {
+ case 'i':
+ case 'o':
+ case 'd':
+ case 'x': {
+ if (resHolder instanceof LongHolder ||
+ resHolder instanceof long[]) {
+ rec.type = Record.LONG;
+ } else if (resHolder instanceof IntHolder ||
+ resHolder instanceof int[]) {
+ rec.type = Record.INT;
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid result holder for %" + c);
+ }
+ break;
+ }
+ case 'c': {
+ if (!(resHolder instanceof CharHolder) &&
+ !(resHolder instanceof char[])) {
+ throw new IllegalArgumentException(
+ "Invalid result holder for %c");
+ }
+ rec.type = Record.CHAR;
+ break;
+ }
+ case 'v':
+ case 'b': {
+ if (!(resHolder instanceof BooleanHolder) &&
+ !(resHolder instanceof boolean[])) {
+ throw new IllegalArgumentException(
+ "Invalid result holder for %" + c);
+ }
+ rec.type = Record.BOOLEAN;
+ break;
+ }
+ case 'f': {
+ if (resHolder instanceof DoubleHolder ||
+ resHolder instanceof double[]) {
+ rec.type = Record.DOUBLE;
+ } else if (resHolder instanceof FloatHolder ||
+ resHolder instanceof float[]) {
+ rec.type = Record.FLOAT;
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid result holder for %f");
+ }
+ break;
+ }
+ case 's': {
+ if (!(resHolder instanceof StringHolder) &&
+ !(resHolder instanceof String[])) {
+ throw new IllegalArgumentException(
+ "Invalid result holder for %s");
+ }
+ rec.type = Record.STRING;
+ break;
+ }
+ case 'h': { // resHolder is ignored for this type
+ break;
+ }
+ }
+ }
+ if (rec.convertCode == 'h') {
+ rec.resHolder = null;
+ } else {
+ rec.resHolder = resHolder;
+ }
+
+ scanner.skipWhiteSpace();
+ // get the range specification, if any
+ if (scanner.peekc() == '{') {
+ if (rec.convertCode == 'h') {
+ throw new IllegalArgumentException("Ranges not supported for %h");
+ }
+ // int bcnt = 0;
+ i0 = scanner.getIndex(); // beginning of range spec
+ do {
+ c = scanner.getc();
+ if (c == '\000') {
+ throw new IllegalArgumentException("Unterminated range specification");
+ }
+ // else if (c=='[' || c=='(')
+ // { bcnt++;
+ // }
+ // else if (c==']' || c==')')
+ // { bcnt--;
+ // }
+ // if ((rec.convertCode=='v'||rec.convertCode=='b') && bcnt>1)
+ // { throw new IllegalArgumentException
+ // ("Sub ranges not supported for %b or %v");
+ // }
+ } while (c != '}');
+ // if (c != ']')
+ // { throw new IllegalArgumentException
+ // ("Range specification must end with ']'");
+ // }
+ i1 = scanner.getIndex(); // end of range spec
+ scanRangeSpec(rec, scanner.substring(i0, i1));
+ if (rec.convertCode == 'v' && rec.rangeList != null) {
+ rec.vval = rec.rangeList.low.bval;
+ }
+ }
+ // check for value multiplicity information, if any
+ if (scanner.peekc() == 'X') {
+ if (rec.convertCode == 'h') {
+ throw new IllegalArgumentException("Multipliers not supported for %h");
+ }
+ scanner.getc();
+ try {
+ rec.numValues = (int) scanner.scanInt();
+ } catch (StringScanException e) {
+ throw new IllegalArgumentException("Malformed value multiplier");
+ }
+ if (rec.numValues <= 0) {
+ throw new IllegalArgumentException("Value multiplier number must be > 0");
+ }
+ } else {
+ rec.numValues = 1;
+ }
+ if (rec.numValues > 1) {
+ for (ndesc = rec.nameList; ndesc != null; ndesc = ndesc.next) {
+ if (ndesc.oneWord) {
+ throw new IllegalArgumentException(
+ "Multiplier value incompatible with one word option " + ndesc.name);
+ }
+ }
+ }
+ if (resHolder != null && resHolder.getClass().isArray()) {
+ if (Array.getLength(resHolder) < rec.numValues) {
+ throw new IllegalArgumentException(
+ "Result holder array must have a length >= " + rec.numValues);
+ }
+ } else {
+ if (rec.numValues > 1 && !(resHolder instanceof Vector)) {
+ throw new IllegalArgumentException(
+ "Multiplier requires result holder to be an array of length >= "
+ + rec.numValues);
+ }
+ }
+
+ // skip white space following conversion information
+ scanner.skipWhiteSpace();
+
+ // get the help message, if any
+
+ if (!scanner.atEnd()) {
+ if (scanner.getc() != '#') {
+ throw new IllegalArgumentException("Illegal character(s), expecting '#'");
+ }
+ String helpInfo = scanner.substring(scanner.getIndex());
+ // look for second '#'. If there is one, then info
+ // between the first and second '#' is the value descriptor.
+ int k = helpInfo.indexOf("#");
+ if (k != -1) {
+ rec.valueDesc = helpInfo.substring(0, k);
+ rec.helpMsg = helpInfo.substring(k + 1);
+ } else {
+ rec.helpMsg = helpInfo;
+ }
+ } else {
+ rec.helpMsg = "";
+ }
+
+ // parse helpMsg for required/optional information if present
+ // default to required
+ if (rec.helpMsg.indexOf("(optional") != -1) {
+ rec.required = false;
+ }
+
+ // add option information to match list
+ if (rec.convertCode == 'h' && firstHelpOption == defaultHelpOption) {
+ matchList.remove(defaultHelpOption);
+ firstHelpOption = rec;
+ }
+ matchList.add(rec);
+ }
+
+ Record lastMatchRecord() {
+ return (Record) matchList.lastElement();
+ }
+
+ private Record getRecord(String arg, ObjectHolder ndescHolder) {
+ NameDesc ndesc;
+ for (int i = 0; i < matchList.size(); i++) {
+ Record rec = (Record) matchList.get(i);
+ for (ndesc = rec.nameList; ndesc != null; ndesc = ndesc.next) {
+ if (rec.convertCode != 'v' && ndesc.oneWord) {
+ if (arg.startsWith(ndesc.name)) {
+ if (ndescHolder != null) {
+ ndescHolder.value = ndesc;
+ }
+ return rec;
+ }
+ } else {
+ if (arg.equals(ndesc.name)) {
+ if (ndescHolder != null) {
+ ndescHolder.value = ndesc;
+ }
+ return rec;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ public void checkRequiredArgs() {
+ for (int i = 1; i < matchList.size(); i++) {
+ Record rec = (Record) matchList.get(i);
+ StringHolder myString = (StringHolder) rec.resHolder;
+ if (((myString.value == null) || (myString.value.equals(""))) && (rec.required)) {
+ printErrorAndExit("Required parameter " + rec.nameList.name + " is not specified.");
+ }
+ }
+ }
+
+ Object getResultHolder(String arg) {
+ Record rec = getRecord(arg, null);
+ return (rec != null) ? rec.resHolder : null;
+ }
+
+ String getOptionName(String arg) {
+ ObjectHolder ndescHolder = new ObjectHolder();
+ Record rec = getRecord(arg, ndescHolder);
+ return (rec != null) ? ((NameDesc) ndescHolder.value).name : null;
+ }
+
+ String getOptionRangeDesc(String arg) {
+ Record rec = getRecord(arg, null);
+ return (rec != null) ? rec.rangeDesc : null;
+ }
+
+ String getOptionTypeName(String arg) {
+ Record rec = getRecord(arg, null);
+ return (rec != null) ? rec.valTypeName() : null;
+ }
+
+ private Object createResultHolder(Record rec) {
+ if (rec.numValues == 1) {
+ switch (rec.type) {
+ case Record.LONG: {
+ return new LongHolder();
+ }
+ case Record.CHAR: {
+ return new CharHolder();
+ }
+ case Record.BOOLEAN: {
+ return new BooleanHolder();
+ }
+ case Record.DOUBLE: {
+ return new DoubleHolder();
+ }
+ case Record.STRING: {
+ return new StringHolder();
+ }
+ }
+ } else {
+ switch (rec.type) {
+ case Record.LONG: {
+ return new long[rec.numValues];
+ }
+ case Record.CHAR: {
+ return new char[rec.numValues];
+ }
+ case Record.BOOLEAN: {
+ return new boolean[rec.numValues];
+ }
+ case Record.DOUBLE: {
+ return new double[rec.numValues];
+ }
+ case Record.STRING: {
+ return new String[rec.numValues];
+ }
+ }
+ }
+ return null; // can't happen
+ }
+
+ static void stringToArgs(Vector<String> vec, String s,
+ boolean allowQuotedStrings)
+ throws StringScanException {
+ StringScanner scanner = new StringScanner(s);
+ scanner.skipWhiteSpace();
+ while (!scanner.atEnd()) {
+ if (allowQuotedStrings) {
+ vec.add(scanner.scanString());
+ } else {
+ vec.add(scanner.scanNonWhiteSpaceString());
+ }
+ scanner.skipWhiteSpace();
+ }
+ }
+
+ /**
+ * Reads in a set of strings from a reader and prepends them to an
+ * argument list. Strings are delimited by either whitespace or
+ * double quotes <code>"</code>. The character <code>#</code> acts as
+ * a comment character, causing input to the end of the current line to
+ * be ignored.
+ *
+ * @param reader Reader from which to read the strings
+ * @param args Initial set of argument values. Can be
+ * specified as <code>null</code>.
+ * @throws IOException if an error occured while reading.
+ */
+ public static String[] prependArgs(Reader reader, String[] args)
+ throws IOException {
+ if (args == null) {
+ args = new String[0];
+ }
+ LineNumberReader lineReader = new LineNumberReader(reader);
+ Vector<String> vec = new Vector<String>(100, 100);
+ String line;
+ int i, k;
+
+ while ((line = lineReader.readLine()) != null) {
+ int commentIdx = line.indexOf("#");
+ if (commentIdx != -1) {
+ line = line.substring(0, commentIdx);
+ }
+ try {
+ stringToArgs(vec, line, /*allowQuotedStings=*/true);
+ } catch (StringScanException e) {
+ throw new IOException(
+ "malformed string, line " + lineReader.getLineNumber());
+ }
+ }
+ String[] result = new String[vec.size() + args.length];
+ for (i = 0; i < vec.size(); i++) {
+ result[i] = (String) vec.get(i);
+ }
+ for (k = 0; k < args.length; k++) {
+ result[i++] = args[k];
+ }
+ return result;
+ }
+
+ /**
+ * Reads in a set of strings from a file and prepends them to an
+ * argument list. Strings are delimited by either whitespace or double
+ * quotes <code>"</code>. The character <code>#</code> acts as a
+ * comment character, causing input to the end of the current line to
+ * be ignored.
+ *
+ * @param file File to be read
+ * @param args Initial set of argument values. Can be
+ * specified as <code>null</code>.
+ * @throws IOException if an error occured while reading the file.
+ */
+ public static String[] prependArgs(File file, String[] args)
+ throws IOException {
+ if (args == null) {
+ args = new String[0];
+ }
+ if (!file.canRead()) {
+ return args;
+ }
+ try {
+ return prependArgs(new FileReader(file), args);
+ } catch (IOException e) {
+ throw new IOException(
+ "File " + file.getName() + ": " + e.getMessage());
+ }
+ }
+
+ /**
+ * Sets the parser's error message.
+ *
+ * @param s Error message
+ */
+ protected void setError(String msg) {
+ errMsg = msg;
+ }
+
+ /**
+ * Prints an error message, along with a pointer to help options,
+ * if available, and causes the program to exit with code 1.
+ */
+ public void printErrorAndExit(String msg) {
+ if (helpOptionsEnabled && firstHelpOptionName() != null) {
+ msg += "\nUse " + firstHelpOptionName() + " for help information";
+ }
+ if (printStream != null) {
+ printStream.println(msg);
+ }
+ System.exit(1);
+ }
+
+ /**
+ * Matches arguments within an argument list.
+ *
+ * <p>
+ * In the event of an erroneous or unmatched argument, the method prints a message and exits the program with code
+ * 1.
+ *
+ * <p>
+ * If help options are enabled and one of the arguments matches a help option, then the result of
+ * {@link #getHelpMessage
+ * getHelpMessage} is printed to the default print stream and the program exits with code 0. If help options are not
+ * enabled, they are ignored.
+ *
+ * @param args argument list
+ * @see ArgParser#getDefaultPrintStream
+ */
+ public void matchAllArgs(String[] args) {
+ matchAllArgs(args, 0, EXIT_ON_UNMATCHED | EXIT_ON_ERROR);
+ }
+
+ /**
+ * Matches arguments within an argument list and returns
+ * those which were not matched. The matching starts at a location
+ * in <code>args</code> specified by <code>idx</code>, and
+ * unmatched arguments are returned in a String array.
+ *
+ * <p>
+ * In the event of an erroneous argument, the method either prints a message and exits the program (if
+ * {@link #EXIT_ON_ERROR} is set in <code>exitFlags</code>) or terminates the matching and creates a error message
+ * that can be retrieved by {@link #getErrorMessage}.
+ *
+ * <p>
+ * In the event of an umatched argument, the method will print a message and exit if {@link #EXIT_ON_UNMATCHED} is
+ * set in <code>errorFlags</code>. Otherwise, the unmatched argument will be appended to the returned array of
+ * unmatched values, and the matching will continue at the next location.
+ *
+ * <p>
+ * If help options are enabled and one of the arguments matches a help option, then the result of
+ * {@link #getHelpMessage
+ * getHelpMessage} is printed to the the default print stream and the program exits with code 0. If help options are
+ * not enabled, then they will not be matched.
+ *
+ * @param args argument list
+ * @param idx starting location in list
+ * @param exitFlags conditions causing the program to exit. Should be
+ * an or-ed combintion of {@link #EXIT_ON_ERROR} or {@link #EXIT_ON_UNMATCHED}.
+ * @return array of arguments that were not matched, or <code>null</code> if all arguments were successfully matched
+ * @see ArgParser#getErrorMessage
+ * @see ArgParser#getDefaultPrintStream
+ */
+ public String[] matchAllArgs(String[] args, int idx, int exitFlags) {
+ Vector<String> unmatched = new Vector<String>(10);
+
+ while (idx < args.length) {
+ try {
+ idx = matchArg(args, idx);
+ if (unmatchedArg != null) {
+ if ((exitFlags & EXIT_ON_UNMATCHED) != 0) {
+ printErrorAndExit("Unrecognized argument: " + unmatchedArg);
+ } else {
+ unmatched.add(unmatchedArg);
+ }
+ }
+ } catch (ArgParseException e) {
+ if ((exitFlags & EXIT_ON_ERROR) != 0) {
+ printErrorAndExit(e.getMessage());
+ }
+ break;
+ }
+ }
+ if (unmatched.size() == 0) {
+ return null;
+ } else {
+ return (String[]) unmatched.toArray(new String[0]);
+ }
+ }
+
+ /**
+ * Matches one option starting at a specified location in an argument
+ * list. The method returns the location in the list where the next
+ * match should begin.
+ *
+ * <p>
+ * In the event of an erroneous argument, the method throws an {@link argparser.ArgParseException ArgParseException}
+ * with an appropriate error message. This error message can also be retrieved using {@link #getErrorMessage
+ * getErrorMessage}.
+ *
+ * <p>
+ * In the event of an umatched argument, the method will return idx + 1, and {@link #getUnmatchedArgument
+ * getUnmatchedArgument} will return a copy of the unmatched argument. If an argument is matched,
+ * {@link #getUnmatchedArgument getUnmatchedArgument} will return <code>null</code>.
+ *
+ * <p>
+ * If help options are enabled and the argument matches a help option, then the result of {@link #getHelpMessage
+ * getHelpMessage} is printed to the the default print stream and the program exits with code 0. If help options are
+ * not enabled, then they are ignored.
+ *
+ * @param args argument list
+ * @param idx location in list where match should start
+ * @return location in list where next match should start
+ * @throws ArgParseException if there was an error performing
+ * the match (such as improper or insufficient values).
+ * @see ArgParser#setDefaultPrintStream
+ * @see ArgParser#getHelpOptionsEnabled
+ * @see ArgParser#getErrorMessage
+ * @see ArgParser#getUnmatchedArgument
+ */
+ @SuppressWarnings("unchecked")
+ public int matchArg(String[] args, int idx)
+ throws ArgParseException {
+ unmatchedArg = null;
+ setError(null);
+ try {
+ ObjectHolder ndescHolder = new ObjectHolder();
+ Record rec = getRecord(args[idx], ndescHolder);
+ if (rec == null || (rec.convertCode == 'h' && !helpOptionsEnabled)) { // didn't match
+ unmatchedArg = new String(args[idx]);
+ return idx + 1;
+ }
+ NameDesc ndesc = (NameDesc) ndescHolder.value;
+ Object result;
+ if (rec.resHolder instanceof Vector) {
+ result = createResultHolder(rec);
+ } else {
+ result = rec.resHolder;
+ }
+ if (rec.convertCode == 'h') {
+ if (helpOptionsEnabled) {
+ printStream.println(getHelpMessage());
+ System.exit(0);
+ } else {
+ return idx + 1;
+ }
+ } else if (rec.convertCode != 'v') {
+ if (ndesc.oneWord) {
+ rec.scanValue(
+ result, ndesc.name,
+ args[idx].substring(ndesc.name.length()), 0);
+ } else {
+ if (idx + rec.numValues >= args.length) {
+ throw new ArgParseException(
+ ndesc.name, "requires " + rec.numValues + " value" +
+ (rec.numValues > 1 ? "s" : ""));
+ }
+ for (int k = 0; k < rec.numValues; k++) {
+ rec.scanValue(result, ndesc.name, args[++idx], k);
+ }
+ }
+ } else {
+ if (rec.resHolder instanceof BooleanHolder) {
+ ((BooleanHolder) result).value = rec.vval;
+ } else {
+ for (int k = 0; k < rec.numValues; k++) {
+ ((boolean[]) result)[k] = rec.vval;
+ }
+ }
+ }
+ if (rec.resHolder instanceof Vector) {
+ ((Vector<Object>) rec.resHolder).add(result);
+ }
+ } catch (ArgParseException e) {
+ setError(e.getMessage());
+ throw e;
+ }
+ return idx + 1;
+ }
+
+ private String spaceString(int n) {
+ StringBuffer sbuf = new StringBuffer(n);
+ for (int i = 0; i < n; i++) {
+ sbuf.append(' ');
+ }
+ return sbuf.toString();
+ }
+
+ // public String getShortHelpMessage ()
+ // {
+ // String s;
+ // Record rec;
+ // NameDesc ndesc;
+ // int initialIndent = 8;
+ // int col = initialIndent;
+
+ // if (maxcols <= 0)
+ // { maxcols = 80;
+ // }
+ // if (matchList.size() > 0)
+ // { ps.print (spaceString(initialIndent));
+ // }
+ // for (int i=0; i<matchList.size(); i++)
+ // { rec = (Record)matchList.get(i);
+ // s = "[";
+ // for (ndesc=rec.nameList; ndesc!=null; ndesc=ndesc.next)
+ // { s = s + ndesc.name;
+ // if (ndesc.oneWord == false)
+ // { s = s + " ";
+ // }
+ // if (ndesc.next != null)
+ // { s = s + ",";
+ // }
+ // }
+ // if (rec.convertCode != 'v' && rec.convertCode != 'h')
+ // { if (rec.valueDesc != null)
+ // { s += rec.valueDesc;
+ // }
+ // else
+ // { s = s + "<" + rec.valTypeName() + ">";
+ // if (rec.numValues > 1)
+ // { s += "X" + rec.numValues;
+ // }
+ // }
+ // }
+ // s = s + "]";
+ // /*
+ // (col+=s.length()) > (maxcols-1) => we will spill over edge.
+ // we use (maxcols-1) because if we go right to the edge
+ // (maxcols), we get wrap new line inserted "for us".
+ // i != 0 means we print the first entry, no matter
+ // how long it is. Subsequent entries are printed
+ // full length anyway. */
+
+ // if ((col+=s.length()) > (maxcols-1) && i != 0)
+ // { col = initialIndent+s.length();
+ // ps.print ("\n" + spaceString(initialIndent));
+ // }
+ // ps.print (s);
+ // }
+ // if (matchList.size() > 0)
+ // { ps.print ('\n');
+ // ps.flush();
+ // }
+ // }
+
+ /**
+ * Returns a string describing the allowed options
+ * in detail.
+ *
+ * @return help information string.
+ */
+ public String getHelpMessage() {
+ Record rec;
+ NameDesc ndesc;
+ boolean hasOneWordAlias = false;
+ String s;
+
+ s = "Usage: " + synopsisString + "\n";
+ s += "Options include:\n\n";
+ for (int i = 0; i < matchList.size(); i++) {
+ String optionInfo = "";
+ rec = (Record) matchList.get(i);
+ if (rec.convertCode == 'h' && !helpOptionsEnabled) {
+ continue;
+ }
+ for (ndesc = rec.nameList; ndesc != null; ndesc = ndesc.next) {
+ if (ndesc.oneWord) {
+ hasOneWordAlias = true;
+ break;
+ }
+ }
+ for (ndesc = rec.nameList; ndesc != null; ndesc = ndesc.next) {
+ optionInfo += ndesc.name;
+ if (hasOneWordAlias && !ndesc.oneWord) {
+ optionInfo += " ";
+ }
+ if (ndesc.next != null) {
+ optionInfo += ",";
+ }
+ }
+ if (!hasOneWordAlias) {
+ optionInfo += " ";
+ }
+ if (rec.convertCode != 'v' && rec.convertCode != 'h') {
+ if (rec.valueDesc != null) {
+ optionInfo += rec.valueDesc;
+ } else {
+ if (rec.rangeDesc != null) {
+ optionInfo += "<" + rec.valTypeName() + " "
+ + rec.rangeDesc + ">";
+ } else {
+ optionInfo += "<" + rec.valTypeName() + ">";
+ }
+ }
+ }
+ if (rec.numValues > 1) {
+ optionInfo += "X" + rec.numValues;
+ }
+ s += optionInfo;
+ if (rec.helpMsg.length() > 0) {
+ int pad = helpIndent - optionInfo.length();
+ if (pad < 2) { //s += '\n';
+ pad = helpIndent;
+ }
+ // s += spaceString(pad) + rec.helpMsg;
+ s += spaceString(4) + rec.helpMsg;
+ }
+ s += '\n';
+ }
+ return s;
+ }
+
+ /**
+ * Returns the parser's error message. This is automatically
+ * set whenever an error is encountered in <code>matchArg</code> or <code>matchAllArgs</code>, and is automatically
+ * set to <code>null</code> at the beginning of these methods.
+ *
+ * @return error message
+ */
+ public String getErrorMessage() {
+ return errMsg;
+ }
+
+ /**
+ * Returns the value of an unmatched argument discovered {@link #matchArg matchArg} or
+ * {@link #matchAllArgs(String[],int,int)
+ * matchAllArgs}. If there was no unmatched argument, <code>null</code> is returned.
+ *
+ * @return unmatched argument
+ */
+ public String getUnmatchedArgument() {
+ return unmatchedArg;
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/ArgParserTest.java b/base/silent/src/com/netscape/pkisilent/argparser/ArgParserTest.java
new file mode 100644
index 000000000..9ddb80778
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/ArgParserTest.java
@@ -0,0 +1,1514 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Copyright John E. Lloyd, 2004. All rights reserved. Permission to use,
+ * copy, modify and redistribute is granted, provided that this copyright
+ * notice is retained and the author is given credit whenever appropriate.
+ *
+ * This software is distributed "as is", without any warranty, including
+ * any implied warranty of merchantability or fitness for a particular
+ * use. The author assumes no responsibility for, and shall not be liable
+ * for, any special, indirect, or consequential damages, or any damages
+ * whatsoever, arising out of or in connection with the use of this
+ * software.
+ */
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.lang.reflect.Array;
+import java.util.Vector;
+
+/**
+ * Testing class for the class ArgParser. Executing the <code>main</code> method of this class will perform a suite of
+ * tests to help verify correct
+ * operation of the parser class.
+ *
+ * @author John E. Lloyd, Fall 2004
+ * @see ArgParser
+ */
+public class ArgParserTest {
+ ArgParser parser;
+
+ static final boolean CLOSED = true;
+ static final boolean OPEN = false;
+
+ static final boolean ONE_WORD = true;
+ static final boolean MULTI_WORD = false;
+
+ private static void verify(boolean ok, String msg) {
+ if (!ok) {
+ Throwable e = new Throwable();
+ System.out.println("Verification failed:" + msg);
+ e.printStackTrace();
+ System.exit(1);
+ }
+ }
+
+ private static String[] argsFromString(String s) {
+ Vector<String> vec = new Vector<String>(100);
+ try {
+ ArgParser.stringToArgs(vec, s, /*allowQuotedStings=*/false);
+ } catch (StringScanException e) {
+ e.printStackTrace();
+ System.exit(1);
+ }
+ String[] result = new String[vec.size()];
+ for (int i = 0; i < vec.size(); i++) {
+ result[i] = (String) vec.get(i);
+ }
+ return result;
+ }
+
+ static class RngCheck {
+ ArgParser.RangePnt low = null;
+ ArgParser.RangePnt high = null;
+ int type;
+
+ RngCheck(String s) {
+ low = new ArgParser.RangePnt(s, CLOSED);
+ type = 's';
+ }
+
+ RngCheck(double d) {
+ low = new ArgParser.RangePnt(d, CLOSED);
+ type = 'd';
+ }
+
+ RngCheck(long l) {
+ low = new ArgParser.RangePnt(l, CLOSED);
+ type = 'l';
+ }
+
+ RngCheck(boolean b) {
+ low = new ArgParser.RangePnt(b, CLOSED);
+ type = 'b';
+ }
+
+ RngCheck(String s1, boolean c1, String s2, boolean c2) {
+ low = new ArgParser.RangePnt(s1, c1);
+ high = new ArgParser.RangePnt(s2, c2);
+ type = 's';
+ }
+
+ RngCheck(double d1, boolean c1, double d2, boolean c2) {
+ low = new ArgParser.RangePnt(d1, c1);
+ high = new ArgParser.RangePnt(d2, c2);
+ type = 'd';
+ }
+
+ RngCheck(long l1, boolean c1, long l2, boolean c2) {
+ low = new ArgParser.RangePnt(l1, c1);
+ high = new ArgParser.RangePnt(l2, c2);
+ type = 'l';
+ }
+
+ void check(ArgParser.RangeAtom ra) {
+ verify((ra.low == null) == (low == null),
+ "(ra.low==null)=" + (ra.low == null) +
+ "(low==null)=" + (low == null));
+ verify((ra.high == null) == (high == null),
+ "(ra.high==null)=" + (ra.high == null) +
+ "(high==null)=" + (high == null));
+
+ if (ra.low != null) {
+ switch (type) {
+ case 'l': {
+ verify(ra.low.lval == low.lval,
+ "ra.low=" + ra.low + " low=" + low);
+ break;
+ }
+ case 'd': {
+ verify(ra.low.dval == low.dval,
+ "ra.low=" + ra.low + " low=" + low);
+ break;
+ }
+ case 's': {
+ verify(ra.low.sval.equals(low.sval),
+ "ra.low=" + ra.low + " low=" + low);
+ break;
+ }
+ case 'b': {
+ verify(ra.low.bval == low.bval,
+ "ra.low=" + ra.low + " low=" + low);
+ break;
+ }
+ }
+ verify(ra.low.closed == low.closed,
+ "ra.low=" + ra.low + " low=" + low);
+ }
+ if (ra.high != null) {
+ switch (type) {
+ case 'l': {
+ verify(ra.high.lval == high.lval,
+ "ra.high=" + ra.high + " high=" + high);
+ break;
+ }
+ case 'd': {
+ verify(ra.high.dval == high.dval,
+ "ra.high=" + ra.high + " high=" + high);
+ break;
+ }
+ case 's': {
+ verify(ra.high.sval.equals(high.sval),
+ "ra.high=" + ra.high + " high=" + high);
+ break;
+ }
+ case 'b': {
+ verify(ra.high.bval == high.bval,
+ "ra.high=" + ra.high + " high=" + high);
+ break;
+ }
+ }
+ verify(ra.high.closed == high.closed,
+ "ra.high=" + ra.high + " high=" + high);
+ }
+ }
+ }
+
+ ArgParserTest() {
+ parser = new ArgParser("fubar");
+ }
+
+ static void checkException(Exception e, String errmsg) {
+ if (errmsg != null) {
+ if (!e.getMessage().equals(errmsg)) {
+ System.out.println(
+ "Expecting exception '" + errmsg + "' but got '" +
+ e.getMessage() + "'");
+ e.printStackTrace();
+ (new Throwable()).printStackTrace();
+ System.exit(1);
+ }
+ } else {
+ System.out.println(
+ "Unexpected exception '" + e.getMessage() + "'");
+ e.printStackTrace();
+ (new Throwable()).printStackTrace();
+ System.exit(1);
+ }
+ }
+
+ void checkPrintHelp(String msg) {
+ ByteArrayOutputStream buf = new ByteArrayOutputStream(0x10000);
+ PrintStream ps = new PrintStream(buf);
+ ps.println(parser.getHelpMessage());
+ System.out.print(buf.toString());
+ }
+
+ // void checkGetSynopsis (String msg)
+ // {
+ // ByteArrayOutputStream buf = new ByteArrayOutputStream(0x10000);
+ // PrintStream ps = new PrintStream(buf);
+ // parser.printSynopsis (ps, 80);
+ // System.out.print (buf.toString());
+ // }
+
+ void checkAdd(String s, Object resHolder, String errmsg) {
+ checkAdd(s, resHolder, 0, 0, null, null, null, errmsg);
+ }
+
+ void add(String s, Object resHolder) {
+ try {
+ parser.addOption(s, resHolder);
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(1);
+ }
+ }
+
+ void checkStringArray(String msg, String[] strs, String[] check) {
+ boolean dontMatch = false;
+ if (strs.length != check.length) {
+ dontMatch = true;
+ } else {
+ for (int i = 0; i < strs.length; i++) {
+ if (!strs[i].equals(check[i])) {
+ dontMatch = true;
+ break;
+ }
+ }
+ }
+ if (dontMatch) {
+ System.out.println(msg);
+ System.out.print("Expected: ");
+ for (int i = 0; i < check.length; i++) {
+ System.out.print("'" + check[i] + "'");
+ if (i < check.length - 1) {
+ System.out.print(" ");
+ }
+ }
+ System.out.println("");
+ System.out.print("Got: ");
+ for (int i = 0; i < strs.length; i++) {
+ System.out.print("'" + strs[i] + "'");
+ if (i < strs.length - 1) {
+ System.out.print(" ");
+ }
+ }
+ System.out.println("");
+ System.exit(1);
+ }
+ }
+
+ void checkAdd(String s, Object resHolder, int code, int numValues,
+ Object names, RngCheck[] rngCheck,
+ String helpMsg, String errmsg) {
+ boolean exceptionThrown = false;
+ String[] namelist = null;
+ try {
+ parser.addOption(s, resHolder);
+ } catch (Exception e) {
+ exceptionThrown = true;
+ checkException(e, errmsg);
+ }
+ if (names instanceof String) {
+ namelist = new String[] { (String) names };
+ } else {
+ namelist = (String[]) names;
+ }
+ if (!exceptionThrown) {
+ verify(errmsg == null,
+ "Expecting exception " + errmsg);
+ ArgParser.Record rec = parser.lastMatchRecord();
+ verify(rec.convertCode == code,
+ "code=" + rec.convertCode + ", expecting " + code);
+ ArgParser.NameDesc nd;
+ int i = 0;
+ for (nd = rec.firstNameDesc(); nd != null; nd = nd.next) {
+ i++;
+ }
+ verify(i == namelist.length,
+ "numNames=" + i + ", expecting " + namelist.length);
+ i = 0;
+ for (nd = rec.firstNameDesc(); nd != null; nd = nd.next) {
+ String ss;
+ if (!nd.oneWord) {
+ ss = new String(nd.name) + ' ';
+ } else {
+ ss = nd.name;
+ }
+ verify(ss.equals(namelist[i]),
+ "have name '" + ss + "', expecting '" + namelist[i] + "'");
+ i++;
+ }
+ ArgParser.RangeAtom ra;
+ i = 0;
+ for (ra = rec.firstRangeAtom(); ra != null; ra = ra.next) {
+ i++;
+ }
+ int expectedRangeNum = 0;
+ if (rngCheck != null) {
+ expectedRangeNum = rngCheck.length;
+ }
+ verify(i == expectedRangeNum,
+ "numRangeAtoms=" + i + ", expecting " + expectedRangeNum);
+ i = 0;
+ for (ra = rec.firstRangeAtom(); ra != null; ra = ra.next) {
+ rngCheck[i++].check(ra);
+ }
+ verify(rec.helpMsg.equals(helpMsg),
+ "helpMsg=" + rec.helpMsg + ", expecting " + helpMsg);
+ verify(rec.numValues == numValues,
+ "numValues=" + rec.numValues + ", expecting " + numValues);
+ }
+ }
+
+ double getDoubleValue(Object obj, int k) {
+ if (obj instanceof DoubleHolder) {
+ return ((DoubleHolder) obj).value;
+ } else if (obj instanceof FloatHolder) {
+ return ((FloatHolder) obj).value;
+ } else if (obj instanceof double[]) {
+ return ((double[]) obj)[k];
+ } else if (obj instanceof float[]) {
+ return ((float[]) obj)[k];
+ } else {
+ verify(false, "object doesn't contain double values");
+ return 0;
+ }
+ }
+
+ long getLongValue(Object obj, int k) {
+ if (obj instanceof LongHolder) {
+ return ((LongHolder) obj).value;
+ } else if (obj instanceof IntHolder) {
+ return ((IntHolder) obj).value;
+ } else if (obj instanceof long[]) {
+ return ((long[]) obj)[k];
+ } else if (obj instanceof int[]) {
+ return ((int[]) obj)[k];
+ } else {
+ verify(false, "object doesn't contain long values");
+ return 0;
+ }
+ }
+
+ String getStringValue(Object obj, int k) {
+ if (obj instanceof StringHolder) {
+ return ((StringHolder) obj).value;
+ } else if (obj instanceof String[]) {
+ return ((String[]) obj)[k];
+ } else {
+ verify(false, "object doesn't contain String values");
+ return null;
+ }
+ }
+
+ boolean getBooleanValue(Object obj, int k) {
+ if (obj instanceof BooleanHolder) {
+ return ((BooleanHolder) obj).value;
+ } else if (obj instanceof boolean[]) {
+ return ((boolean[]) obj)[k];
+ } else {
+ verify(false, "object doesn't contain boolean values");
+ return false;
+ }
+ }
+
+ char getCharValue(Object obj, int k) {
+ if (obj instanceof CharHolder) {
+ return ((CharHolder) obj).value;
+ } else if (obj instanceof char[]) {
+ return ((char[]) obj)[k];
+ } else {
+ verify(false, "object doesn't contain char values");
+ return 0;
+ }
+ }
+
+ static class MErr {
+ int code;
+ String valStr;
+
+ MErr(int code, String valStr) {
+ this.code = code;
+ this.valStr = valStr;
+ }
+ }
+
+ static class MTest {
+ String args;
+ Object result;
+ int resultIdx;
+
+ MTest(String args, Object result) {
+ this(args, result, -1);
+ }
+
+ MTest(String args, Object result, int resultIdx) {
+ this.args = args;
+ this.result = result;
+ this.resultIdx = resultIdx;
+ }
+ };
+
+ void checkMatch(String args[], int idx, String errMsg) {
+ getMatchResult(args, idx, -1, errMsg, -1);
+ }
+
+ void checkMatch(String args[], int idx, int cnt,
+ long check, int resultIdx) {
+ Object rholder = getMatchResult(args, idx, cnt, null, resultIdx);
+ long result = getLongValue(rholder, 0);
+ verify(result == check, "result " + result + " vs. " + check);
+ }
+
+ void checkMatch(String args[], int idx, int cnt,
+ double check, int resultIdx) {
+ Object rholder = getMatchResult(args, idx, cnt, null, resultIdx);
+ double result = getDoubleValue(rholder, 0);
+ verify(result == check, "result " + result + " vs. " + check);
+ }
+
+ void checkMatch(String args[], int idx, int cnt,
+ String check, int resultIdx) {
+ Object rholder = getMatchResult(args, idx, cnt, null, resultIdx);
+ String result = getStringValue(rholder, 0);
+ verify(result.equals(check), "result " + result + " vs. " + check);
+ }
+
+ void checkMatch(String args[], int idx, int cnt,
+ boolean check, int resultIdx) {
+ Object rholder = getMatchResult(args, idx, cnt, null, resultIdx);
+ boolean result = getBooleanValue(rholder, 0);
+ verify(result == check, "result " + result + " vs. " + check);
+ }
+
+ void checkMatch(String args[], int idx, int cnt,
+ char check, int resultIdx) {
+ Object rholder = getMatchResult(args, idx, cnt, null, resultIdx);
+ char result = getCharValue(rholder, 0);
+ verify(result == check, "result " + result + " vs. " + check);
+ }
+
+ void checkMatch(String args[], int idx, int cnt,
+ Object checkArray, int resultIdx) {
+ Object rholder = getMatchResult(args, idx, cnt, null, resultIdx);
+ if (!checkArray.getClass().isArray()) {
+ verify(false, "check is not an array");
+ }
+ for (int i = 0; i < Array.getLength(checkArray); i++) {
+ if (checkArray instanceof long[]) {
+ long result = getLongValue(rholder, i);
+ long check = ((long[]) checkArray)[i];
+ verify(result == check,
+ "result [" + i + "] " + result + " vs. " + check);
+ } else if (checkArray instanceof double[]) {
+ double result = getDoubleValue(rholder, i);
+ double check = ((double[]) checkArray)[i];
+ verify(result == check,
+ "result [" + i + "] " + result + " vs. " + check);
+ } else if (checkArray instanceof String[]) {
+ String result = getStringValue(rholder, i);
+ String check = ((String[]) checkArray)[i];
+ verify(result.equals(check),
+ "result [" + i + "] " + result + " vs. " + check);
+ } else if (checkArray instanceof boolean[]) {
+ boolean result = getBooleanValue(rholder, i);
+ boolean check = ((boolean[]) checkArray)[i];
+ verify(result == check,
+ "result [" + i + "] " + result + " vs. " + check);
+ } else if (checkArray instanceof char[]) {
+ char result = getCharValue(rholder, i);
+ char check = ((char[]) checkArray)[i];
+ verify(result == check,
+ "result [" + i + "] " + result + " vs. " + check);
+ } else {
+ verify(false, "unknown type for checkArray");
+ }
+ }
+ }
+
+ void checkMatch(MTest test, boolean oneWord) {
+ String[] argv;
+ if (oneWord) {
+ argv = new String[1];
+ argv[0] = test.args;
+ } else {
+ argv = argsFromString(test.args);
+ }
+ if (test.result instanceof Long) {
+ checkMatch(argv, 0, argv.length,
+ ((Long) test.result).longValue(),
+ test.resultIdx);
+ } else if (test.result instanceof Double) {
+ checkMatch(argv, 0, argv.length,
+ ((Double) test.result).doubleValue(),
+ test.resultIdx);
+ } else if (test.result instanceof String) {
+ checkMatch(argv, 0, argv.length,
+ (String) test.result,
+ test.resultIdx);
+ } else if (test.result instanceof Boolean) {
+ checkMatch(argv, 0, argv.length,
+ ((Boolean) test.result).booleanValue(),
+ test.resultIdx);
+ } else if (test.result instanceof Character) {
+ checkMatch(argv, 0, argv.length,
+ ((Character) test.result).charValue(),
+ test.resultIdx);
+ } else if (test.result.getClass().isArray()) {
+ checkMatch(argv, 0, argv.length, test.result,
+ test.resultIdx);
+ } else if (test.result instanceof MErr) {
+ MErr err = (MErr) test.result;
+ String argname = parser.getOptionName(argv[0]);
+ String msg = "";
+
+ switch (err.code) {
+ case 'c': {
+ msg = "requires a contiguous value";
+ break;
+ }
+ case 'm': {
+ msg = "malformed " + parser.getOptionTypeName(argv[0]) +
+ " '" + err.valStr + "'";
+ break;
+ }
+ case 'r': {
+ msg = "value '" + err.valStr + "' not in range " +
+ parser.getOptionRangeDesc(argv[0]);
+ break;
+ }
+ case 'v': {
+ msg = "requires " + err.valStr + " values";
+ break;
+ }
+ }
+ checkMatch(argv, 0, argname + ": " + msg);
+ } else {
+ verify(false, "Unknown result type");
+ }
+ }
+
+ void checkMatches(MTest[] tests, boolean oneWord) {
+ for (int i = 0; i < tests.length; i++) {
+ checkMatch(tests[i], oneWord);
+ }
+ }
+
+ Object getMatchResult(String args[], int idx, int cnt,
+ String errMsg, int resultIdx) {
+ boolean exceptionThrown = false;
+ int k = 0;
+ try {
+ k = parser.matchArg(args, idx);
+ } catch (Exception e) {
+ exceptionThrown = true;
+ checkException(e, errMsg);
+ }
+ if (!exceptionThrown) {
+ verify(k == idx + cnt,
+ "Expecting result index " + (idx + cnt) + ", got " + k);
+ Object result = parser.getResultHolder(args[0]);
+ if (resultIdx >= 0) {
+ verify(result instanceof Vector,
+ "Expecting result to be stored in a vector");
+ Vector<?> vec = (Vector<?>) result;
+ verify(vec.size() == resultIdx + 1,
+ "Expecting result vector size " + (resultIdx + 1));
+ return vec.get(resultIdx);
+ } else {
+ return result;
+ }
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Runs a set of tests to verify correct operation of the
+ * ArgParser class. If all the tests run correctly, the
+ * program prints the message <code>Passed</code> and terminates.
+ * Otherwise, diagnostic information is printed at the first
+ * point of failure.
+ */
+ public static void main(String[] args) {
+ ArgParserTest test = new ArgParserTest();
+
+ BooleanHolder bh = new BooleanHolder();
+ boolean[] b3 = new boolean[3];
+ CharHolder ch = new CharHolder();
+ char[] c3 = new char[3];
+ IntHolder ih = new IntHolder();
+ int[] i3 = new int[3];
+ LongHolder lh = new LongHolder();
+ long[] l3 = new long[3];
+ FloatHolder fh = new FloatHolder();
+ float[] f3 = new float[3];
+ DoubleHolder dh = new DoubleHolder();
+ double[] d3 = new double[3];
+ StringHolder sh = new StringHolder();
+ String[] s3 = new String[3];
+
+ test.checkAdd("-foo %i{[0,10)}X3 #sets the value of foo",
+ // 0123456789012345
+ i3, 'i', 3, new String[] { "-foo " },
+ new RngCheck[] {
+ new RngCheck(0, CLOSED, 10, OPEN) },
+ "sets the value of foo", null);
+
+ test.checkAdd("-arg1,,", null, "Null option name given");
+ test.checkAdd("-arg1,,goo %f ", null, "Null option name given");
+ test.checkAdd(" ", null, "Null option name given");
+ test.checkAdd("", null, "Null option name given");
+ test.checkAdd(" %v", null, "Null option name given");
+ test.checkAdd("-foo ", null, "No conversion character given");
+ test.checkAdd("-foo %", null, "No conversion character given");
+ test.checkAdd("foo, aaa bbb ", null, "Names not separated by ','");
+ test.checkAdd(" foo aaa %d", null, "Names not separated by ','");
+ test.checkAdd("-arg1,-b,", null, "Null option name given");
+ test.checkAdd("-arg1,-b", null, "No conversion character given");
+ test.checkAdd("-arg1 ", null, "No conversion character given");
+ test.checkAdd("-arg1, %v", null, "Null option name given");
+ test.checkAdd("-arg1,%v", null, "Null option name given");
+ test.checkAdd("-foo %V", null,
+ "Conversion code 'V' not one of 'iodxcbfsvh'");
+ test.checkAdd("-h %hX5", null, "Multipliers not supported for %h");
+ test.checkAdd("-h %h{}", null, "Ranges not supported for %h");
+ test.checkAdd("-help, -h %h #here is how we help you",
+ null, 'h', 1, new String[] { "-help ", "-h " },
+ null, "here is how we help you", null);
+
+ test.checkAdd(
+ "-arg1 ,-arg2=%d{0,3,(7,16]}X1 #x3 test",
+ l3, 'd', 1, new String[] { "-arg1 ", "-arg2=" },
+ new RngCheck[]
+ { new RngCheck(0),
+ new RngCheck(3),
+ new RngCheck(7, OPEN, 16, CLOSED),
+ },
+ "x3 test", null);
+
+ test.checkAdd(
+ "bbb,ccc%x{[1,2]} #X3 x3 test",
+ l3, 'x', 1, new String[] { "bbb", "ccc" },
+ new RngCheck[]
+ { new RngCheck(1, CLOSED, 2, CLOSED),
+ },
+ "X3 x3 test", null);
+
+ test.checkAdd(
+ " bbb ,ccc, ddd ,e , f=%bX1 #x3 test",
+ b3, 'b', 1, new String[] { "bbb ", "ccc", "ddd ", "e ", "f=" },
+ null,
+ "x3 test", null);
+
+ test.checkAdd(
+ " bbb ,ccc, ddd ,e , f= %bX3 #x3 test",
+ b3, 'b', 3, new String[] { "bbb ", "ccc ", "ddd ", "e ", "f= " },
+ null,
+ "x3 test", null);
+
+ test.checkAdd(
+ "-b,--bar %s{[\"john\",\"jerry\"),fred,\"harry\"} #sets bar",
+ sh, 's', 1, new String[] { "-b ", "--bar " },
+ new RngCheck[] {
+ new RngCheck("jerry", OPEN, "john", CLOSED),
+ new RngCheck("fred"),
+ new RngCheck("harry") },
+ "sets bar", null);
+
+ test.checkAdd(
+ "-c ,coven%f{0.0,9.0,(6,5],[-9.1,10.2]} ",
+ dh, 'f', 1, new String[] { "-c ", "coven" },
+ new RngCheck[] {
+ new RngCheck(0.0),
+ new RngCheck(9.0),
+ new RngCheck(5.0, CLOSED, 6.0, OPEN),
+ new RngCheck(-9.1, CLOSED, 10.2, CLOSED) },
+ "", null);
+
+ test.checkAdd(
+ "-b %b #a boolean value ",
+ bh, 'b', 1, new String[] { "-b " },
+ new RngCheck[] {},
+ "a boolean value ", null);
+
+ test.checkAdd("-a %i", ih, 'i', 1, "-a ", null, "", null);
+ test.checkAdd("-a %o", lh, 'o', 1, "-a ", null, "", null);
+ test.checkAdd("-a %d", i3, 'd', 1, "-a ", null, "", null);
+ test.checkAdd("-a %x", l3, 'x', 1, "-a ", null, "", null);
+ test.checkAdd("-a %c", ch, 'c', 1, "-a ", null, "", null);
+ test.checkAdd("-a %c", c3, 'c', 1, "-a ", null, "", null);
+ test.checkAdd("-a %v", bh, 'v', 1, "-a ", null, "", null);
+ test.checkAdd("-a %b", b3, 'b', 1, "-a ", null, "", null);
+ test.checkAdd("-a %f", fh, 'f', 1, "-a ", null, "", null);
+ test.checkAdd("-a %f", f3, 'f', 1, "-a ", null, "", null);
+ test.checkAdd("-a %f", dh, 'f', 1, "-a ", null, "", null);
+ test.checkAdd("-a %f", d3, 'f', 1, "-a ", null, "", null);
+
+ test.checkAdd("-a %i", fh, 'i', 1, "-a ", null, "",
+ "Invalid result holder for %i");
+ test.checkAdd("-a %c", i3, 'c', 1, "-a ", null, "",
+ "Invalid result holder for %c");
+ test.checkAdd("-a %v", d3, 'v', 1, "-a ", null, "",
+ "Invalid result holder for %v");
+ test.checkAdd("-a %f", sh, 'f', 1, "-a ", null, "",
+ "Invalid result holder for %f");
+ test.checkAdd("-a %s", l3, 's', 1, "-a ", null, "",
+ "Invalid result holder for %s");
+
+ test.checkAdd("-foo %i{} ", ih, 'i', 1, "-foo ", null, "", null);
+ test.checkAdd("-foo%i{}", ih, 'i', 1, "-foo", null, "", null);
+ test.checkAdd("-foo%i{ }", ih, 'i', 1, "-foo", null, "", null);
+ test.checkAdd("-foo%i{ }}", ih,
+ "Illegal character(s), expecting '#'");
+ test.checkAdd("-foo%i{ ", ih, "Unterminated range specification");
+ test.checkAdd("-foo%i{", ih, "Unterminated range specification");
+ test.checkAdd("-foo%i{0,9", ih, "Unterminated range specification");
+ test.checkAdd("-foo%i{1,2,3)", ih,
+ "Unterminated range specification");
+
+ test.checkAdd("-b %f{0.9}", fh, 'f', 1, "-b ",
+ new RngCheck[] { new RngCheck(0.9) },
+ "", null);
+ test.checkAdd("-b %f{ 0.9 ,7, -0.5,-4 ,6 }", fh, 'f', 1, "-b ",
+ new RngCheck[] { new RngCheck(0.9),
+ new RngCheck(7.0),
+ new RngCheck(-0.5),
+ new RngCheck(-4.0),
+ new RngCheck(6.0) },
+ "", null);
+ test.checkAdd("-b %f{ [0.9,7), (-0.5,-4),[9,6] , (10,13.4] }",
+ fh, 'f', 1, "-b ",
+ new RngCheck[] { new RngCheck(0.9, CLOSED, 7.0, OPEN),
+ new RngCheck(-4.0, OPEN, -.5, OPEN),
+ new RngCheck(6.0, CLOSED, 9.0, CLOSED),
+ new RngCheck(10.0, OPEN, 13.4, CLOSED),
+ },
+ "", null);
+ test.checkAdd("-b %f{(8 9]}", fh,
+ "Missing ',' in subrange specification");
+ test.checkAdd("-b %f{(8,9,]}", fh,
+ "Unterminated subrange");
+ test.checkAdd("-b %f{(8,9 ,]}", fh,
+ "Unterminated subrange");
+ test.checkAdd("-b %f{(8,9 8]}", fh,
+ "Unterminated subrange");
+ test.checkAdd("-b %f{8 9}", fh,
+ "Range spec: ',' or '}' expected");
+ test.checkAdd("-b %f{8 *}", fh,
+ "Range spec: ',' or '}' expected");
+
+ test.checkAdd("-b %f{8y}", fh,
+ "Range spec: ',' or '}' expected");
+ test.checkAdd("-b %f{.}", fh,
+ "Malformed float '.}' in range spec");
+ test.checkAdd("-b %f{1.0e}", fh,
+ "Malformed float '1.0e}' in range spec");
+ test.checkAdd("-b %f{[*]}", fh,
+ "Malformed float '*' in range spec");
+ test.checkAdd("-b %f{1.2e5t}", fh,
+ "Range spec: ',' or '}' expected");
+
+ test.checkAdd("-b %i{8}", ih, 'i', 1, "-b ",
+ new RngCheck[] { new RngCheck(8) },
+ "", null);
+ test.checkAdd("-b %i{8, 9,10 }", ih, 'i', 1, "-b ",
+ new RngCheck[] { new RngCheck(8),
+ new RngCheck(9),
+ new RngCheck(10) },
+ "", null);
+ test.checkAdd("-b %i{8, [-9,10),[-17,15],(2,-33),(8,9] }",
+ ih, 'i', 1, "-b ",
+ new RngCheck[] { new RngCheck(8),
+ new RngCheck(-9, CLOSED, 10, OPEN),
+ new RngCheck(-17, CLOSED, 15, CLOSED),
+ new RngCheck(-33, OPEN, 2, OPEN),
+ new RngCheck(8, OPEN, 9, CLOSED),
+ },
+ "", null);
+ test.checkAdd("-b %i{8.7}", ih,
+ "Range spec: ',' or '}' expected");
+ test.checkAdd("-b %i{6,[*]}", ih,
+ "Malformed integer '*' in range spec");
+ test.checkAdd("-b %i{g76}", ih,
+ "Malformed integer 'g' in range spec");
+
+ test.checkAdd("-b %s{foobar}", sh, 's', 1, "-b ",
+ new RngCheck[] { new RngCheck("foobar") },
+ "", null);
+ test.checkAdd("-b %s{foobar, 0x233,\" \"}", sh, 's', 1, "-b ",
+ new RngCheck[] { new RngCheck("foobar"),
+ new RngCheck("0x233"),
+ new RngCheck(" ") },
+ "", null);
+ test.checkAdd("-b %s{foobar,(bb,aa], [\"01\",02]}",
+ sh, 's', 1, "-b ",
+ new RngCheck[]
+ { new RngCheck("foobar"),
+ new RngCheck("aa", CLOSED, "bb", OPEN),
+ new RngCheck("01", CLOSED, "02", CLOSED),
+ },
+ "", null);
+
+ test.checkAdd("-b %c{'a'}", ch, 'c', 1, "-b ",
+ new RngCheck[] { new RngCheck('a') },
+ "", null);
+ test.checkAdd("-b %c{'\\n', '\\002', 'B'}", ch, 'c', 1, "-b ",
+ new RngCheck[] { new RngCheck('\n'),
+ new RngCheck('\002'),
+ new RngCheck('B') },
+ "", null);
+ test.checkAdd("-b %c{'q',('g','a'], ['\t','\\003']}",
+ ch, 'c', 1, "-b ",
+ new RngCheck[]
+ { new RngCheck('q'),
+ new RngCheck('a', CLOSED, 'g', OPEN),
+ new RngCheck('\003', CLOSED, '\t', CLOSED),
+ },
+ "", null);
+
+ test.checkAdd("-b %b{true}X2", b3, 'b', 2, "-b ",
+ new RngCheck[] { new RngCheck(true) },
+ "", null);
+ test.checkAdd("-b %b{ true , false, true }", bh, 'b', 1, "-b ",
+ new RngCheck[] { new RngCheck(true),
+ new RngCheck(false),
+ new RngCheck(true) },
+ "", null);
+ test.checkAdd("-b %v{true,[true,false)}", bh,
+ "Sub ranges not supported for %b or %v");
+ test.checkAdd("-b %v{true,[]}", bh,
+ "Sub ranges not supported for %b or %v");
+ test.checkAdd("-b %b{tru}", bh,
+ "Malformed boolean 'tru}' in range spec");
+
+ test.checkAdd("-b %iX2", i3, 'i', 2, "-b ", null, "", null);
+ test.checkAdd("-b %vX3", b3, 'v', 3, "-b ", null, "", null);
+ test.checkAdd("-b %v{ }X3", b3, 'v', 3, "-b ", null, "", null);
+
+ test.checkAdd("-b=%iX2", i3, 'i', 2, "-b", null, "",
+ "Multiplier value incompatible with one word option -b=");
+ test.checkAdd("-b %iX0", i3, 'i', 0, "-b ", null, "",
+ "Value multiplier number must be > 0");
+ test.checkAdd("-b %iX-6", i3, 'i', 0, "-b ", null, "",
+ "Value multiplier number must be > 0");
+ test.checkAdd("-b %iXy", i3, 'i', 0, "-b ", null, "",
+ "Malformed value multiplier");
+ test.checkAdd("-b %iX4", i3, 'i', 4, "-b ", null, "",
+ "Result holder array must have a length >= 4");
+ test.checkAdd("-b %iX4", ih, 'i', 4, "-b ", null, "",
+ "Multiplier requires result holder to be an array of length >= 4");
+
+ test.checkAdd("-b %i #X4", ih, 'i', 1, "-b ", null, "X4", null);
+ test.checkAdd("-b %i #[}X4", ih, 'i', 1, "-b ", null, "[}X4", null);
+
+ // test.checkPrintHelp("");
+ // test.checkPrintUsage("");
+
+ test = new ArgParserTest();
+
+ test.checkAdd(
+ "-intarg %i{1,2,(9,18],[22,27],[33,38),(45,48)} #test int arg",
+ ih, 'i', 1, "-intarg ",
+ new RngCheck[]
+ { new RngCheck(1),
+ new RngCheck(2),
+ new RngCheck(9, OPEN, 18, CLOSED),
+ new RngCheck(22, CLOSED, 27, CLOSED),
+ new RngCheck(33, CLOSED, 38, OPEN),
+ new RngCheck(45, OPEN, 48, OPEN),
+ },
+ "test int arg", null);
+
+ MTest[] tests;
+
+ tests = new MTest[]
+ {
+ new MTest("-intarg 1", new Long(1)),
+ new MTest("-intarg 3", new MErr('r', "3")),
+ new MTest("-intarg 9", new MErr('r', "9")),
+ new MTest("-intarg 11", new Long(11)),
+ new MTest("-intarg 18", new Long(18)),
+ new MTest("-intarg 22", new Long(22)),
+ new MTest("-intarg 25", new Long(25)),
+ new MTest("-intarg 27", new Long(27)),
+ new MTest("-intarg 33", new Long(33)),
+ new MTest("-intarg 35", new Long(35)),
+ new MTest("-intarg 38", new MErr('r', "38")),
+ new MTest("-intarg 45", new MErr('r', "45")),
+ new MTest("-intarg 46", new Long(46)),
+ new MTest("-intarg 48", new MErr('r', "48")),
+ new MTest("-intarg 100", new MErr('r', "100")),
+ new MTest("-intarg 0xbeef", new MErr('r', "0xbeef")),
+ new MTest("-intarg 0x2f", new Long(0x2f)),
+ new MTest("-intarg 041", new Long(041)),
+ };
+ test.checkMatches(tests, MULTI_WORD);
+
+ test.checkAdd(
+ "-farg %f{1,2,(9,18],[22,27],[33,38),(45,48)} #test float arg",
+ dh, 'f', 1, "-farg ",
+ new RngCheck[]
+ {
+ new RngCheck(1.0),
+ new RngCheck(2.0),
+ new RngCheck(9.0, OPEN, 18.0, CLOSED),
+ new RngCheck(22.0, CLOSED, 27.0, CLOSED),
+ new RngCheck(33.0, CLOSED, 38.0, OPEN),
+ new RngCheck(45.0, OPEN, 48.0, OPEN),
+ },
+ "test float arg", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-farg 1", new Double(1)),
+ new MTest("-farg 3", new MErr('r', "3")),
+ new MTest("-farg 9", new MErr('r', "9")),
+ new MTest("-farg 9.0001", new Double(9.0001)),
+ new MTest("-farg 11", new Double(11)),
+ new MTest("-farg 18", new Double(18)),
+ new MTest("-farg 22", new Double(22)),
+ new MTest("-farg 25", new Double(25)),
+ new MTest("-farg 27", new Double(27)),
+ new MTest("-farg 33", new Double(33)),
+ new MTest("-farg 35", new Double(35)),
+ new MTest("-farg 37.9999", new Double(37.9999)),
+ new MTest("-farg 38", new MErr('r', "38")),
+ new MTest("-farg 45", new MErr('r', "45")),
+ new MTest("-farg 45.0001", new Double(45.0001)),
+ new MTest("-farg 46", new Double(46)),
+ new MTest("-farg 47.9999", new Double(47.9999)),
+ new MTest("-farg 48", new MErr('r', "48")),
+ new MTest("-farg 100", new MErr('r', "100")),
+ new MTest("-farg 0", new MErr('r', "0")),
+ };
+ test.checkMatches(tests, MULTI_WORD);
+
+ test.checkAdd(
+ "-sarg %s{1,2,(AA,AZ],[BB,BX],[C3,C8),(d5,d8)} #test string arg",
+ s3, 's', 1, "-sarg ",
+ new RngCheck[]
+ { new RngCheck("1"),
+ new RngCheck("2"),
+ new RngCheck("AA", OPEN, "AZ", CLOSED),
+ new RngCheck("BB", CLOSED, "BX", CLOSED),
+ new RngCheck("C3", CLOSED, "C8", OPEN),
+ new RngCheck("d5", OPEN, "d8", OPEN),
+ },
+ "test string arg", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-sarg 1", "1"),
+ new MTest("-sarg 3", new MErr('r', "3")),
+ new MTest("-sarg AA", new MErr('r', "AA")),
+ new MTest("-sarg AM", "AM"),
+ new MTest("-sarg AZ", "AZ"),
+ new MTest("-sarg BB", "BB"),
+ new MTest("-sarg BL", "BL"),
+ new MTest("-sarg BX", "BX"),
+ new MTest("-sarg C3", "C3"),
+ new MTest("-sarg C6", "C6"),
+ new MTest("-sarg C8", new MErr('r', "C8")),
+ new MTest("-sarg d5", new MErr('r', "d5")),
+ new MTest("-sarg d6", "d6"),
+ new MTest("-sarg d8", new MErr('r', "d8")),
+ new MTest("-sarg zzz", new MErr('r', "zzz")),
+ new MTest("-sarg 0", new MErr('r', "0")),
+ };
+ test.checkMatches(tests, MULTI_WORD);
+
+ test = new ArgParserTest();
+
+ test.checkAdd(
+ "-carg %c{1,2,(a,z],['A','Z'],['\\001',\\007),(4,8)}",
+ c3, 'c', 1, "-carg ",
+ new RngCheck[]
+ { new RngCheck('1'),
+ new RngCheck('2'),
+ new RngCheck('a', OPEN, 'z', CLOSED),
+ new RngCheck('A', CLOSED, 'Z', CLOSED),
+ new RngCheck('\001', CLOSED, '\007', OPEN),
+ new RngCheck('4', OPEN, '8', OPEN),
+ },
+ "", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-carg 1", new Character('1')),
+ new MTest("-carg 3", new MErr('r', "3")),
+ new MTest("-carg a", new MErr('r', "a")),
+ new MTest("-carg m", new Character('m')),
+ new MTest("-carg z", new Character('z')),
+ new MTest("-carg A", new Character('A')),
+ new MTest("-carg 'L'", new Character('L')),
+ new MTest("-carg 'Z'", new Character('Z')),
+ new MTest("-carg \\001", new Character('\001')),
+ new MTest("-carg \\005", new Character('\005')),
+ new MTest("-carg '\\007'", new MErr('r', "'\\007'")),
+ new MTest("-carg '4'", new MErr('r', "'4'")),
+ new MTest("-carg 6", new Character('6')),
+ new MTest("-carg 8", new MErr('r', "8")),
+ new MTest("-carg '\\012'", new MErr('r', "'\\012'")),
+ new MTest("-carg 0", new MErr('r', "0")),
+ };
+ test.checkMatches(tests, MULTI_WORD);
+
+ test.checkAdd(
+ "-foo=%i{[-50,100]}", ih, 'i', 1, "-foo=",
+ new RngCheck[]
+ { new RngCheck(-50, CLOSED, 100, CLOSED),
+ },
+ "", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-foo=-51", new MErr('r', "-51")),
+ new MTest("-foo=-0x32", new Long(-0x32)),
+ new MTest("-foo=-0x33", new MErr('r', "-0x33")),
+ new MTest("-foo=-0777", new MErr('r', "-0777")),
+ new MTest("-foo=-07", new Long(-07)),
+ new MTest("-foo=0", new Long(0)),
+ new MTest("-foo=100", new Long(100)),
+ new MTest("-foo=0x5e", new Long(0x5e)),
+ new MTest("-foo=066", new Long(066)),
+ new MTest("-foo=06677", new MErr('r', "06677")),
+ new MTest("-foo=0xbeef", new MErr('r', "0xbeef")),
+ new MTest("-foo=foo", new MErr('m', "foo")),
+ new MTest("-foo=-51d", new MErr('m', "-51d")),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-foo2=%i", ih, 'i', 1, "-foo2=", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-foo2=-51", new Long(-51)),
+ new MTest("-foo2=-0x33", new Long(-0x33)),
+ new MTest("-foo2=-0777", new Long(-0777)),
+ new MTest("-foo2=06677", new Long(06677)),
+ new MTest("-foo2=0xbeef", new Long(0xbeef)),
+ new MTest("-foo2=foo", new MErr('m', "foo")),
+ new MTest("-foo2=-51d", new MErr('m', "-51d")),
+ new MTest("-foo2=-51", new Long(-51)),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-foo3 %iX3", i3, 'i', 3, "-foo3 ", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-foo3 -51 678 0x45",
+ new long[] { -51, 678, 0x45 }),
+ new MTest("-foo3 55 16f 55", new MErr('m', "16f")),
+ new MTest("-foo3 55 16", new MErr('v', "3")),
+ };
+ test.checkMatches(tests, MULTI_WORD);
+
+ Vector<String> vec = new Vector<String>(100);
+
+ test.checkAdd("-foov3 %iX3", vec, 'i', 3, "-foov3 ", null, "", null);
+ tests = new MTest[]
+ { new MTest("-foov3 -1 2 4", new long[] { -1, 2, 4 }, 0),
+ new MTest("-foov3 10 3 9", new long[] { 10, 3, 9 }, 1),
+ new MTest("-foov3 123 1 0", new long[] { 123, 1, 0 }, 2),
+ };
+ vec.clear();
+ test.checkMatches(tests, MULTI_WORD);
+ test.checkAdd("-foov %i", vec, 'i', 1, "-foov ", null, "", null);
+ tests = new MTest[]
+ { new MTest("-foov 11", new Long(11), 0),
+ new MTest("-foov 12", new Long(12), 1),
+ new MTest("-foov 13", new Long(13), 2),
+ };
+ vec.clear();
+ test.checkMatches(tests, MULTI_WORD);
+
+ test.checkAdd(
+ "-foo4 %i{[-50,100]}X2", i3, 'i', 2, "-foo4 ",
+ new RngCheck[]
+ { new RngCheck(-50, CLOSED, 100, CLOSED),
+ },
+ "", null);
+ tests = new MTest[]
+ {
+ new MTest("-foo4 -49 78",
+ new long[] { -49, 78 }),
+ new MTest("-foo4 -48 102", new MErr('r', "102")),
+ };
+ test.checkMatches(tests, MULTI_WORD);
+
+ test.checkAdd(
+ "-oct=%o{[-062,0144]}", ih, 'o', 1, "-oct=",
+ new RngCheck[]
+ { new RngCheck(-50, CLOSED, 100, CLOSED),
+ },
+ "", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-oct=-063", new MErr('r', "-063")),
+ new MTest("-oct=-0x32", new MErr('m', "-0x32")),
+ new MTest("-oct=-0777", new MErr('r', "-0777")),
+ new MTest("-oct=-07", new Long(-07)),
+ new MTest("-oct=0", new Long(0)),
+ new MTest("-oct=100", new Long(64)),
+ new MTest("-oct=0xae", new MErr('m', "0xae")),
+ new MTest("-oct=66", new Long(066)),
+ new MTest("-oct=06677", new MErr('r', "06677")),
+ new MTest("-oct=0xbeef", new MErr('m', "0xbeef")),
+ new MTest("-oct=foo", new MErr('m', "foo")),
+ new MTest("-oct=-51d", new MErr('m', "-51d")),
+ new MTest("-oct=78", new MErr('m', "78")),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-oct2=%o", ih, 'o', 1, "-oct2=", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-oct2=-063", new Long(-063)),
+ new MTest("-oct2=-0777", new Long(-0777)),
+ new MTest("-oct2=06677", new Long(06677)),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd(
+ "-dec=%d{[-0x32,0x64]}", ih, 'd', 1, "-dec=",
+ new RngCheck[]
+ { new RngCheck(-50, CLOSED, 100, CLOSED),
+ },
+ "", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-dec=-063", new MErr('r', "-063")),
+ new MTest("-dec=-0x32", new MErr('m', "-0x32")),
+ new MTest("-dec=-0777", new MErr('r', "-0777")),
+ new MTest("-dec=-07", new Long(-07)),
+ new MTest("-dec=0", new Long(0)),
+ new MTest("-dec=100", new Long(100)),
+ new MTest("-dec=0xae", new MErr('m', "0xae")),
+ new MTest("-dec=66", new Long(66)),
+ new MTest("-dec=06677", new MErr('r', "06677")),
+ new MTest("-dec=0xbeef", new MErr('m', "0xbeef")),
+ new MTest("-dec=foo", new MErr('m', "foo")),
+ new MTest("-dec=-51d", new MErr('m', "-51d")),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-dec2=%d", ih, 'd', 1, "-dec2=", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-dec2=-063", new Long(-63)),
+ new MTest("-dec2=-0777", new Long(-777)),
+ new MTest("-dec2=06677", new Long(6677)),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd(
+ "-hex=%x{[-0x32,0x64]}", ih, 'x', 1, "-hex=",
+ new RngCheck[]
+ { new RngCheck(-50, CLOSED, 100, CLOSED),
+ },
+ "", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-hex=-06", new Long(-0x6)),
+ new MTest("-hex=-0x3g2", new MErr('m', "-0x3g2")),
+ new MTest("-hex=-0777", new MErr('r', "-0777")),
+ new MTest("-hex=-017", new Long(-0x17)),
+ new MTest("-hex=0", new Long(0)),
+ new MTest("-hex=64", new Long(0x64)),
+ new MTest("-hex=5e", new Long(0x5e)),
+ new MTest("-hex=66", new MErr('r', "66")),
+ new MTest("-hex=06677", new MErr('r', "06677")),
+ new MTest("-hex=0xbeef", new MErr('m', "0xbeef")),
+ new MTest("-hex=foo", new MErr('m', "foo")),
+ new MTest("-hex=-51d", new MErr('r', "-51d")),
+ new MTest("-hex=-51g", new MErr('m', "-51g")),
+ new MTest("-hex=", new MErr('c', "")),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-hex2=%x", ih, 'x', 1, "-hex2=", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-hex2=-0777", new Long(-0x777)),
+ new MTest("-hex2=66", new Long(0x66)),
+ new MTest("-hex2=06677", new Long(0x6677)),
+ new MTest("-hex2=-51d", new Long(-0x51d)),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd(
+ "-char=%c{['b','m']}", ch, 'c', 1, "-char=",
+ new RngCheck[]
+ { new RngCheck('b', CLOSED, 'm', CLOSED),
+ },
+ "", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-char=a", new MErr('r', "a")),
+ new MTest("-char=b", new Character('b')),
+ new MTest("-char='b'", new Character('b')),
+ new MTest("-char='\142'", new Character('b')),
+ new MTest("-char='\141'", new MErr('r', "'\141'")),
+ new MTest("-char=\142", new Character('b')),
+ new MTest("-char=\141", new MErr('r', "\141")),
+ new MTest("-char=m", new Character('m')),
+ new MTest("-char=z", new MErr('r', "z")),
+ new MTest("-char=bb", new MErr('m', "bb")),
+ new MTest("-char='b", new MErr('m', "'b")),
+ new MTest("-char='", new MErr('m', "'")),
+ new MTest("-char=a'", new MErr('m', "a'")),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-char2=%c", ch, 'c', 1, "-char2=", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-char2=a", new Character('a')),
+ new MTest("-char2='\141'", new Character('\141')),
+ new MTest("-char2=\141", new Character('\141')),
+ new MTest("-char2=z", new Character('z')),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-charv3 %cX3", vec, 'c', 3, "-charv3 ", null, "", null);
+ tests = new MTest[]
+ { new MTest("-charv3 a b c", new char[] { 'a', 'b', 'c' }, 0),
+ new MTest("-charv3 'g' f '\\n'", new char[] { 'g', 'f', '\n' }, 1),
+ new MTest("-charv3 1 \001 3", new char[] { '1', '\001', '3' }, 2),
+ };
+ vec.clear();
+ test.checkMatches(tests, MULTI_WORD);
+ test.checkAdd("-charv=%c", vec, 'c', 1, "-charv=", null, "", null);
+ tests = new MTest[]
+ { new MTest("-charv=d", new Character('d'), 0),
+ new MTest("-charv='g'", new Character('g'), 1),
+ new MTest("-charv=\111", new Character('\111'), 2),
+ };
+ vec.clear();
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd(
+ "-bool=%b{true}", bh, 'b', 1, "-bool=",
+ new RngCheck[]
+ { new RngCheck(true),
+ },
+ "", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-bool=true", new Boolean(true)),
+ new MTest("-bool=false", new MErr('r', "false")),
+ new MTest("-bool=fals", new MErr('m', "fals")),
+ new MTest("-bool=falsem", new MErr('m', "falsem")),
+ new MTest("-bool=truex", new MErr('m', "truex")),
+ new MTest("-bool=foo", new MErr('m', "foo")),
+ new MTest("-bool=1", new MErr('m', "1")),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd(
+ "-boo2=%b{true,false}", bh, 'b', 1, "-boo2=",
+ new RngCheck[]
+ { new RngCheck(true),
+ new RngCheck(false),
+ },
+ "", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-boo2=true", new Boolean(true)),
+ new MTest("-boo2=false", new Boolean(false)),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-boo3=%b", bh, 'b', 1, "-boo3=", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-boo3=true", new Boolean(true)),
+ new MTest("-boo3=false", new Boolean(false)),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-boo3 %bX3", b3, 'b', 3, "-boo3 ", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-boo3 true false true",
+ new boolean[] { true, false, true }),
+ new MTest("-boo3 true fals true", new MErr('m', "fals")),
+ };
+ test.checkMatches(tests, MULTI_WORD);
+
+ test.checkAdd("-boov3 %bX3", vec, 'b', 3, "-boov3 ", null, "", null);
+ tests = new MTest[]
+ { new MTest("-boov3 true true false",
+ new boolean[] { true, true, false }, 0),
+ new MTest("-boov3 false false true",
+ new boolean[] { false, false, true }, 1),
+ };
+ vec.clear();
+ test.checkMatches(tests, MULTI_WORD);
+ test.checkAdd("-boov %b", vec, 'b', 1, "-boov ", null, "", null);
+ tests = new MTest[]
+ { new MTest("-boov true", new Boolean(true), 0),
+ new MTest("-boov false", new Boolean(false), 1),
+ new MTest("-boov true", new Boolean(true), 2),
+ };
+ vec.clear();
+ test.checkMatches(tests, MULTI_WORD);
+
+ test.checkAdd("-v3 %vX2", b3, 'v', 2, "-v3 ", null, "", null);
+ tests = new MTest[]
+ { new MTest("-v3", new boolean[] { true, true }),
+ };
+ test.checkMatches(tests, MULTI_WORD);
+
+ test.checkAdd(
+ "-vf %v{false,true}X2", b3, 'v', 2, "-vf ",
+ new RngCheck[]
+ { new RngCheck(false),
+ new RngCheck(true),
+ },
+ "", null);
+ tests = new MTest[]
+ { new MTest("-vf", new boolean[] { false, false }),
+ };
+ test.checkMatches(tests, MULTI_WORD);
+
+ test.checkAdd(
+ "-str=%s{(john,zzzz]}", sh, 's', 1, "-str=",
+ new RngCheck[]
+ { new RngCheck("john", OPEN, "zzzz", CLOSED),
+ },
+ "", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-str=john", new MErr('r', "john")),
+ new MTest("-str=joho ", "joho "),
+ new MTest("-str=joho ", "joho "),
+ new MTest("-str=zzzz", "zzzz"),
+ new MTest("-str= joho", new MErr('r', " joho")),
+ new MTest("-str=jnhn ", new MErr('r', "jnhn ")),
+ new MTest("-str=zzzzz", new MErr('r', "zzzzz")),
+ new MTest("-str=\"joho\"", new MErr('r', "\"joho\"")),
+ new MTest("-str=\"joho", new MErr('r', "\"joho")),
+ new MTest("-str=joho j", "joho j"), // new MErr('m', "joho j")),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-str2=%s", sh, 's', 1, "-str2=", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-str2= jnhn", " jnhn"),
+ new MTest("-str2=zzzzz", "zzzzz"),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-str3 %sX3", s3, 's', 3, "-str3 ", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-str3 foo bar johnny",
+ new String[] { "foo", "bar", "johnny" }),
+ new MTest("-str3 zzzzz \"bad foo",
+ new String[] { "zzzzz", "\"bad", "foo"
+ }), // new MErr('m', "\"bad")),
+ };
+ test.checkMatches(tests, MULTI_WORD);
+
+ test.checkAdd("-strv3 %sX3", vec, 's', 3, "-strv3 ", null, "", null);
+ tests = new MTest[]
+ { new MTest("-strv3 foo bar \"hihi\"",
+ new String[] { "foo", "bar", "\"hihi\"" }, 0),
+ new MTest("-strv3 a 123 gg",
+ new String[] { "a", "123", "gg" }, 1),
+ };
+ vec.clear();
+ test.checkMatches(tests, MULTI_WORD);
+ test.checkAdd("-strv=%s", vec, 's', 1, "-strv=", null, "", null);
+ tests = new MTest[]
+ { new MTest("-strv=d", "d", 0),
+ new MTest("-strv='g'", "'g'", 1),
+ new MTest("-strv=\\111", "\\111", 2),
+ };
+ vec.clear();
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd(
+ "-float=%f{(-0.001,1000.0]}", dh, 'f', 1, "-float=",
+ new RngCheck[]
+ { new RngCheck(-0.001, OPEN, 1000.0, CLOSED),
+ },
+ "", null);
+
+ tests = new MTest[]
+ {
+ new MTest("-float=-0.000999", new Double(-0.000999)),
+ new MTest("-float=1e-3", new Double(0.001)),
+ new MTest("-float=12.33e1", new Double(123.3)),
+ new MTest("-float=1e3", new Double(1e3)),
+ new MTest("-float=1000.000", new Double(1000.0)),
+ new MTest("-float=-0.001", new MErr('r', "-0.001")),
+ new MTest("-float=-1e-3", new MErr('r', "-1e-3")),
+ new MTest("-float=1000.001", new MErr('r', "1000.001")),
+ new MTest("-float=.", new MErr('m', ".")),
+ new MTest("-float= 124.5 ", new Double(124.5)),
+ new MTest("-float=124.5x", new MErr('m', "124.5x")),
+ new MTest("-float= foo ", new MErr('m', " foo ")),
+ new MTest("-float=1e1", new Double(10)),
+ new MTest("-float=1e ", new MErr('m', "1e ")),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-float2=%f", dh, 'f', 1, "-float2=", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-float2=-0.001", new Double(-0.001)),
+ new MTest("-float2=-1e-3", new Double(-1e-3)),
+ new MTest("-float2=1000.001", new Double(1000.001)),
+ };
+ test.checkMatches(tests, ONE_WORD);
+
+ test.checkAdd("-f3 %fX3", d3, 'f', 3, "-f3 ", null, "", null);
+ tests = new MTest[]
+ {
+ new MTest("-f3 -0.001 1.23e5 -9.88e-4",
+ new double[] { -0.001, 1.23e5, -9.88e-4 }),
+ new MTest("-f3 7.88 foo 9.0", new MErr('m', "foo")),
+ new MTest("-f3 7.88 . 9.0", new MErr('m', ".")),
+ new MTest("-f3 7.88 3.0 9.0x", new MErr('m', "9.0x")),
+ };
+ test.checkMatches(tests, MULTI_WORD);
+
+ test.checkAdd("-fv3 %fX3", vec, 'f', 3, "-fv3 ", null, "", null);
+ tests = new MTest[]
+ { new MTest("-fv3 1.0 3.444 6.7",
+ new double[] { 1.0, 3.444, 6.7 }, 0),
+ new MTest("-fv3 13e-5 145.678 0.0001e45",
+ new double[] { 13e-5, 145.678, 0.0001e45 }, 1),
+ new MTest("-fv3 11.11 3.1245 -1e-4",
+ new double[] { 11.11, 3.1245, -1e-4 }, 2),
+ new MTest("-fv3 1.0 2 3",
+ new double[] { 1.0, 2.0, 3.0 }, 3),
+ };
+ vec.clear();
+ test.checkMatches(tests, MULTI_WORD);
+ test.checkAdd("-fv %f", vec, 'f', 1, "-fv ", null, "", null);
+ tests = new MTest[]
+ { new MTest("-fv -15.1234", new Double(-15.1234), 0),
+ new MTest("-fv -1.234e-7", new Double(-1.234e-7), 1),
+ new MTest("-fv 0.001111", new Double(0.001111), 2),
+ };
+ vec.clear();
+ test.checkMatches(tests, MULTI_WORD);
+
+ IntHolder intHolder = new IntHolder();
+ StringHolder strHolder = new StringHolder();
+
+ ArgParser parser = new ArgParser("test");
+ parser.addOption("-foo %d #an int", intHolder);
+ parser.addOption("-bar %s #a string", strHolder);
+ args = new String[]
+ { "zzz", "-cat", "-foo", "123", "yyy", "-bar", "xxxx", "xxx"
+ };
+
+ String[] unmatchedCheck = new String[]
+ { "zzz", "-cat", "yyy", "xxx"
+ };
+
+ String[] unmatched = parser.matchAllArgs(args, 0, 0);
+ test.checkStringArray(
+ "Unmatched args:", unmatched, unmatchedCheck);
+
+ vec.clear();
+ for (int i = 0; i < args.length;) {
+ try {
+ i = parser.matchArg(args, i);
+ if (parser.getUnmatchedArgument() != null) {
+ vec.add(parser.getUnmatchedArgument());
+ }
+ } catch (Exception e) {
+ }
+ }
+ unmatched = (String[]) vec.toArray(new String[0]);
+ test.checkStringArray(
+ "My unmatched args:", unmatched, unmatchedCheck);
+
+ System.out.println("\nPassed\n");
+
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/BooleanHolder.java b/base/silent/src/com/netscape/pkisilent/argparser/BooleanHolder.java
new file mode 100644
index 000000000..ba10022b5
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/BooleanHolder.java
@@ -0,0 +1,54 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Wrapper class which ``holds'' a boolean value,
+ * enabling methods to return boolean values through
+ * arguments.
+ */
+public class BooleanHolder implements java.io.Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -2863748864787121510L;
+ /**
+ * Value of the boolean, set and examined
+ * by the application as needed.
+ */
+ public boolean value;
+
+ /**
+ * Constructs a new <code>BooleanHolder</code> with an initial
+ * value of <code>false</code>.
+ */
+ public BooleanHolder() {
+ value = false;
+ }
+
+ /**
+ * Constructs a new <code>BooleanHolder</code> with a
+ * specific initial value.
+ *
+ * @param b Initial boolean value.
+ */
+ public BooleanHolder(boolean b) {
+ value = b;
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/CharHolder.java b/base/silent/src/com/netscape/pkisilent/argparser/CharHolder.java
new file mode 100644
index 000000000..453cac8b2
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/CharHolder.java
@@ -0,0 +1,54 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Wrapper class which ``holds'' a character value,
+ * enabling methods to return character values through
+ * arguments.
+ */
+public class CharHolder implements java.io.Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 7340010668929015745L;
+ /**
+ * Value of the character, set and examined
+ * by the application as needed.
+ */
+ public char value;
+
+ /**
+ * Constructs a new <code>CharHolder</code> with an initial
+ * value of 0.
+ */
+ public CharHolder() {
+ value = 0;
+ }
+
+ /**
+ * Constructs a new <code>CharHolder</code> with a
+ * specific initial value.
+ *
+ * @param c Initial character value.
+ */
+ public CharHolder(char c) {
+ value = c;
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/DoubleHolder.java b/base/silent/src/com/netscape/pkisilent/argparser/DoubleHolder.java
new file mode 100644
index 000000000..13012a641
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/DoubleHolder.java
@@ -0,0 +1,54 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Wrapper class which ``holds'' a double value,
+ * enabling methods to return double values through
+ * arguments.
+ */
+public class DoubleHolder implements java.io.Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 5461991811517552431L;
+ /**
+ * Value of the double, set and examined
+ * by the application as needed.
+ */
+ public double value;
+
+ /**
+ * Constructs a new <code>DoubleHolder</code> with an initial
+ * value of 0.
+ */
+ public DoubleHolder() {
+ value = 0;
+ }
+
+ /**
+ * Constructs a new <code>DoubleHolder</code> with a
+ * specific initial value.
+ *
+ * @param d Initial double value.
+ */
+ public DoubleHolder(double d) {
+ value = d;
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/FloatHolder.java b/base/silent/src/com/netscape/pkisilent/argparser/FloatHolder.java
new file mode 100644
index 000000000..b8474b535
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/FloatHolder.java
@@ -0,0 +1,54 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Wrapper class which ``holds'' a float value,
+ * enabling methods to return float values through
+ * arguments.
+ */
+public class FloatHolder implements java.io.Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -7962968109874934361L;
+ /**
+ * Value of the float, set and examined
+ * by the application as needed.
+ */
+ public float value;
+
+ /**
+ * Constructs a new <code>FloatHolder</code> with an initial
+ * value of 0.
+ */
+ public FloatHolder() {
+ value = 0;
+ }
+
+ /**
+ * Constructs a new <code>FloatHolder</code> with a
+ * specific initial value.
+ *
+ * @param f Initial float value.
+ */
+ public FloatHolder(float f) {
+ value = f;
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/IntHolder.java b/base/silent/src/com/netscape/pkisilent/argparser/IntHolder.java
new file mode 100644
index 000000000..a94ceea1e
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/IntHolder.java
@@ -0,0 +1,54 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Wrapper class which ``holds'' an integer value,
+ * enabling methods to return integer values through
+ * arguments.
+ */
+public class IntHolder implements java.io.Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -5303361328570056819L;
+ /**
+ * Value of the integer, set and examined
+ * by the application as needed.
+ */
+ public int value;
+
+ /**
+ * Constructs a new <code>IntHolder</code> with an initial
+ * value of 0.
+ */
+ public IntHolder() {
+ value = 0;
+ }
+
+ /**
+ * Constructs a new <code>IntHolder</code> with a
+ * specific initial value.
+ *
+ * @param i Initial integer value.
+ */
+ public IntHolder(int i) {
+ value = i;
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/LongHolder.java b/base/silent/src/com/netscape/pkisilent/argparser/LongHolder.java
new file mode 100644
index 000000000..5656d8b86
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/LongHolder.java
@@ -0,0 +1,54 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Wrapper class which ``holds'' a long value,
+ * enabling methods to return long values through
+ * arguments.
+ */
+public class LongHolder implements java.io.Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1559599139421340971L;
+ /**
+ * Value of the long, set and examined
+ * by the application as needed.
+ */
+ public long value;
+
+ /**
+ * Constructs a new <code>LongHolder</code> with an initial
+ * value of 0.
+ */
+ public LongHolder() {
+ value = 0;
+ }
+
+ /**
+ * Constructs a new <code>LongHolder</code> with a
+ * specific initial value.
+ *
+ * @param l Initial long value.
+ */
+ public LongHolder(long l) {
+ value = l;
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/ObjectHolder.java b/base/silent/src/com/netscape/pkisilent/argparser/ObjectHolder.java
new file mode 100644
index 000000000..70e050fde
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/ObjectHolder.java
@@ -0,0 +1,54 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Wrapper class which ``holds'' an Object reference,
+ * enabling methods to return Object references through
+ * arguments.
+ */
+public class ObjectHolder implements java.io.Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1825881254530066307L;
+ /**
+ * Value of the Object reference, set and examined
+ * by the application as needed.
+ */
+ public Object value;
+
+ /**
+ * Constructs a new <code>ObjectHolder</code> with an initial
+ * value of <code>null</code>.
+ */
+ public ObjectHolder() {
+ value = null;
+ }
+
+ /**
+ * Constructs a new <code>ObjectHolder</code> with a
+ * specific initial value.
+ *
+ * @param o Initial Object reference.
+ */
+ public ObjectHolder(Object o) {
+ value = o;
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/SimpleExample.java b/base/silent/src/com/netscape/pkisilent/argparser/SimpleExample.java
new file mode 100644
index 000000000..6970d318d
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/SimpleExample.java
@@ -0,0 +1,53 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Gives a very simple example of the use of {@link argparser.ArgParser ArgParser}.
+ */
+public class SimpleExample {
+ /**
+ * Run this to invoke command line parsing.
+ */
+ public static void main(String[] args) {
+ // create holder objects for storing results ...
+
+ DoubleHolder theta = new DoubleHolder();
+ StringHolder fileName = new StringHolder();
+ BooleanHolder debug = new BooleanHolder();
+
+ // create the parser and specify the allowed options ...
+
+ ArgParser parser = new ArgParser("java argparser.SimpleExample");
+ parser.addOption("-theta %f #theta value (in degrees)", theta);
+ parser.addOption("-file %s #name of the operating file", fileName);
+ parser.addOption("-debug %v #enables display of debugging info",
+ debug);
+
+ // and then match the arguments
+
+ parser.matchAllArgs(args);
+
+ // now print out the values
+
+ System.out.println("theta=" + theta.value);
+ System.out.println("fileName=" + fileName.value);
+ System.out.println("debug=" + debug.value);
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/StringHolder.java b/base/silent/src/com/netscape/pkisilent/argparser/StringHolder.java
new file mode 100644
index 000000000..937360346
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/StringHolder.java
@@ -0,0 +1,54 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Wrapper class which ``holds'' a String reference,
+ * enabling methods to return String references through
+ * arguments.
+ */
+public class StringHolder implements java.io.Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3184348746223759310L;
+ /**
+ * Value of the String reference, set and examined
+ * by the application as needed.
+ */
+ public String value;
+
+ /**
+ * Constructs a new <code>StringHolder</code> with an
+ * initial value of <code>null</code>.
+ */
+ public StringHolder() {
+ value = null;
+ }
+
+ /**
+ * Constructs a new <code>StringHolder</code> with a
+ * specific initial value.
+ *
+ * @param s Initial String reference.
+ */
+ public StringHolder(String s) {
+ value = s;
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/StringScanException.java b/base/silent/src/com/netscape/pkisilent/argparser/StringScanException.java
new file mode 100644
index 000000000..bf3ea6dc3
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/StringScanException.java
@@ -0,0 +1,56 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.IOException;
+
+/**
+ * Exception class used by <code>StringScanner</code> when
+ * command line arguments do not parse correctly.
+ *
+ * @author John E. Lloyd, Winter 2001
+ * @see StringScanner
+ */
+class StringScanException extends IOException {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 4923445904507805754L;
+ int failIdx;
+
+ /**
+ * Creates a new StringScanException with the given message.
+ *
+ * @param msg Error message
+ * @see StringScanner
+ */
+
+ public StringScanException(String msg) {
+ super(msg);
+ }
+
+ public StringScanException(int idx, String msg) {
+ super(msg);
+ failIdx = idx;
+ }
+
+ public int getFailIndex() {
+ return failIdx;
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/argparser/StringScanner.java b/base/silent/src/com/netscape/pkisilent/argparser/StringScanner.java
new file mode 100644
index 000000000..271dd0c62
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/argparser/StringScanner.java
@@ -0,0 +1,567 @@
+package com.netscape.pkisilent.argparser;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * Copyright John E. Lloyd, 2004. All rights reserved. Permission to use,
+ * copy, modify and redistribute is granted, provided that this copyright
+ * notice is retained and the author is given credit whenever appropriate.
+ *
+ * This software is distributed "as is", without any warranty, including
+ * any implied warranty of merchantability or fitness for a particular
+ * use. The author assumes no responsibility for, and shall not be liable
+ * for, any special, indirect, or consequential damages, or any damages
+ * whatsoever, arising out of or in connection with the use of this
+ * software.
+ */
+
+class StringScanner {
+ private char[] buf;
+ private int idx;
+ private int len;
+ private String stringDelimiters = "";
+
+ public StringScanner(String s) {
+ buf = new char[s.length() + 1];
+ s.getChars(0, s.length(), buf, 0);
+ len = s.length();
+ buf[len] = 0;
+ idx = 0;
+ }
+
+ public int getIndex() {
+ return idx;
+ }
+
+ public void setIndex(int i) {
+ if (i < 0) {
+ idx = 0;
+ } else if (i > len) {
+ idx = len;
+ } else {
+ idx = i;
+ }
+ }
+
+ public void setStringDelimiters(String s) {
+ stringDelimiters = s;
+ }
+
+ public String getStringDelimiters() {
+ return stringDelimiters;
+ }
+
+ public char scanChar()
+ throws StringScanException {
+ int idxSave = idx;
+ skipWhiteSpace();
+ try {
+ if (buf[idx] == '\'') {
+ return scanQuotedChar();
+ } else {
+ return scanUnquotedChar();
+ }
+ } catch (StringScanException e) {
+ idx = idxSave;
+ throw e;
+ }
+ }
+
+ public char scanQuotedChar()
+ throws StringScanException {
+ StringScanException exception = null;
+ char retval = 0;
+ int idxSave = idx;
+
+ skipWhiteSpace();
+ if (idx == len) {
+ exception = new StringScanException(idx, "end of input");
+ } else if (buf[idx++] == '\'') {
+ try {
+ retval = scanUnquotedChar();
+ } catch (StringScanException e) {
+ exception = e;
+ }
+ if (exception == null) {
+ if (idx == len) {
+ exception = new StringScanException
+ (idx, "end of input");
+ } else if (buf[idx++] != '\'') {
+ exception = new StringScanException
+ (idx - 1, "unclosed quoted character");
+ }
+ }
+ } else {
+ exception = new StringScanException
+ (idx - 1, "uninitialized quoted character");
+ }
+ if (exception != null) {
+ idx = idxSave;
+ throw exception;
+ }
+ return retval;
+ }
+
+ public char scanUnquotedChar()
+ throws StringScanException {
+ StringScanException exception = null;
+ char c, retval = 0;
+ int idxSave = idx;
+
+ if (idx == len) {
+ exception = new StringScanException(idx, "end of input");
+ } else if ((c = buf[idx++]) == '\\') {
+ if (idx == len) {
+ exception = new StringScanException(idx, "end of input");
+ } else {
+ c = buf[idx++];
+ if (c == '"') {
+ retval = '"';
+ } else if (c == '\'') {
+ retval = '\'';
+ } else if (c == '\\') {
+ retval = '\\';
+ } else if (c == 'n') {
+ retval = '\n';
+ } else if (c == 't') {
+ retval = '\t';
+ } else if (c == 'b') {
+ retval = '\b';
+ } else if (c == 'r') {
+ retval = '\r';
+ } else if (c == 'f') {
+ retval = '\f';
+ } else if ('0' <= c && c < '8') {
+ int v = c - '0';
+ for (int j = 0; j < 2; j++) {
+ if (idx == len) {
+ break;
+ }
+ c = buf[idx];
+ if ('0' <= c && c < '8' && (v * 8 + (c - '0')) <= 255) {
+ v = v * 8 + (c - '0');
+ idx++;
+ } else {
+ break;
+ }
+ }
+ retval = (char) v;
+ } else {
+ exception = new StringScanException
+ (idx - 1, "illegal escape character '" + c + "'");
+ }
+ }
+ } else {
+ retval = c;
+ }
+ if (exception != null) {
+ idx = idxSave;
+ throw exception;
+ }
+ return retval;
+ }
+
+ public String scanQuotedString()
+ throws StringScanException {
+ StringScanException exception = null;
+ StringBuffer sbuf = new StringBuffer(len);
+ char c;
+ int idxSave = idx;
+
+ skipWhiteSpace();
+ if (idx == len) {
+ exception = new StringScanException(idx, "end of input");
+ } else if ((c = buf[idx++]) == '"') {
+ while (idx < len && (c = buf[idx]) != '"' && c != '\n') {
+ if (c == '\\') {
+ try {
+ c = scanUnquotedChar();
+ } catch (StringScanException e) {
+ exception = e;
+ break;
+ }
+ } else {
+ idx++;
+ }
+ sbuf.append(c);
+ }
+ if (exception == null && idx >= len) {
+ exception = new StringScanException(len, "end of input");
+ } else if (exception == null && c == '\n') {
+ exception = new StringScanException
+ (idx, "unclosed quoted string");
+ } else {
+ idx++;
+ }
+ } else {
+ exception = new StringScanException(idx - 1,
+ "quoted string must start with \"");
+ }
+ if (exception != null) {
+ idx = idxSave;
+ throw exception;
+ }
+ return sbuf.toString();
+ }
+
+ public String scanNonWhiteSpaceString()
+ throws StringScanException {
+ StringBuffer sbuf = new StringBuffer(len);
+ int idxSave = idx;
+ char c;
+
+ skipWhiteSpace();
+ if (idx == len) {
+ StringScanException e = new StringScanException(
+ idx, "end of input");
+ idx = idxSave;
+ throw e;
+ } else {
+ c = buf[idx++];
+ while (idx < len && !Character.isWhitespace(c)
+ && stringDelimiters.indexOf(c) == -1) {
+ sbuf.append(c);
+ c = buf[idx++];
+ }
+ if (Character.isWhitespace(c) ||
+ stringDelimiters.indexOf(c) != -1) {
+ idx--;
+ } else {
+ sbuf.append(c);
+ }
+ }
+ return sbuf.toString();
+ }
+
+ public String scanString()
+ throws StringScanException {
+ int idxSave = idx;
+ skipWhiteSpace();
+ try {
+ if (buf[idx] == '"') {
+ return scanQuotedString();
+ } else {
+ return scanNonWhiteSpaceString();
+ }
+ } catch (StringScanException e) {
+ idx = idxSave;
+ throw e;
+ }
+ }
+
+ public String getString()
+ throws StringScanException {
+ StringBuffer sbuf = new StringBuffer(len);
+ while (idx < len) {
+ sbuf.append(buf[idx++]);
+ }
+ return sbuf.toString();
+ }
+
+ public long scanInt()
+ throws StringScanException {
+ int idxSave = idx;
+ char c;
+ int sign = 1;
+
+ skipWhiteSpace();
+ if ((c = buf[idx]) == '-' || c == '+') {
+ sign = (c == '-' ? -1 : 1);
+ idx++;
+ }
+ try {
+ if (idx == len) {
+ throw new StringScanException(len, "end of input");
+ } else if ((c = buf[idx]) == '0') {
+ if ((c = buf[idx + 1]) == 'x' || c == 'X') {
+ idx += 2;
+ return sign * scanInt(16, false);
+ } else {
+ return sign * scanInt(8, false);
+ }
+ } else {
+ return sign * scanInt(10, false);
+ }
+ } catch (StringScanException e) {
+ idx = idxSave;
+ throw e;
+ }
+ }
+
+ public long scanInt(int radix)
+ throws StringScanException {
+ return scanInt(radix, /*skipWhite=*/true);
+ }
+
+ private String baseDesc(int radix) {
+ switch (radix) {
+ case 10: {
+ return "decimal";
+ }
+ case 8: {
+ return "octal";
+ }
+ case 16: {
+ return "hex";
+ }
+ default: {
+ return "base " + radix;
+ }
+ }
+ }
+
+ public long scanInt(int radix, boolean skipWhite)
+ throws StringScanException {
+ StringScanException exception = null;
+ int charval, idxSave = idx;
+ char c;
+ long val = 0;
+ boolean negate = false;
+
+ if (skipWhite) {
+ skipWhiteSpace();
+ }
+ if ((c = buf[idx]) == '-' || c == '+') {
+ negate = (c == '-');
+ idx++;
+ }
+ if (idx >= len) {
+ exception = new StringScanException(len, "end of input");
+ } else if ((charval = Character.digit(buf[idx++], radix)) == -1) {
+ exception = new StringScanException
+ (idx - 1, "malformed " + baseDesc(radix) + " integer");
+ } else {
+ val = charval;
+ while ((charval = Character.digit(buf[idx], radix)) != -1) {
+ val = val * radix + charval;
+ idx++;
+ }
+ if (Character.isLetter(c = buf[idx]) ||
+ Character.isDigit(c) || c == '_') {
+ exception = new StringScanException
+ (idx, "malformed " + baseDesc(radix) + " integer");
+ }
+ }
+ if (exception != null) {
+ idx = idxSave;
+ throw exception;
+ }
+ return negate ? -val : val;
+ }
+
+ public double scanDouble()
+ throws StringScanException {
+ StringScanException exception = null;
+ int idxSave = idx;
+ char c;
+ // parse [-][0-9]*[.][0-9]*[eE][-][0-9]*
+ boolean hasDigits = false;
+ double value = 0;
+
+ skipWhiteSpace();
+ if (idx == len) {
+ exception = new StringScanException("end of input");
+ } else {
+ if ((c = buf[idx]) == '-' || c == '+') {
+ // signed
+ idx++;
+ }
+ if (matchDigits()) {
+ hasDigits = true;
+ }
+ if (buf[idx] == '.') {
+ idx++;
+ }
+ if (!hasDigits && (buf[idx] < '0' || buf[idx] > '9')) {
+ if (idx == len) {
+ exception = new StringScanException(idx, "end of input");
+ } else {
+ exception = new StringScanException(
+ idx, "malformed floating number: no digits");
+ }
+ } else {
+ matchDigits();
+
+ if ((c = buf[idx]) == 'e' || c == 'E') {
+ idx++;
+ if ((c = buf[idx]) == '-' || c == '+') {
+ // signed
+ idx++;
+ }
+ if (buf[idx] < '0' || buf[idx] > '9') {
+ if (idx == len) {
+ exception = new StringScanException(
+ idx, "end of input");
+ } else {
+ exception = new StringScanException(idx,
+ "malformed floating number: no digits in exponent");
+ }
+ } else {
+ matchDigits();
+ }
+ }
+ }
+ }
+ if (exception == null) {
+ // if (Character.isLetterOrDigit(c=buf[idx]) || c == '_')
+ // { exception = new StringScanException (idx,
+ //"malformed floating number");
+ // }
+ // else
+ {
+ try {
+ value = Double.parseDouble(new String(buf, idxSave,
+ idx - idxSave));
+ } catch (NumberFormatException e) {
+ exception = new StringScanException(
+ idx, "malformed floating number");
+ }
+ }
+ }
+ if (exception != null) {
+ idx = idxSave;
+ throw exception;
+ }
+ return value;
+ }
+
+ public boolean scanBoolean()
+ throws StringScanException {
+ StringScanException exception = null;
+ int idxSave = idx;
+ String testStr = "false";
+ boolean testval = false;
+ char c;
+
+ skipWhiteSpace();
+ if (buf[idx] == 't') {
+ testStr = "true";
+ testval = true;
+ } else {
+ testval = false;
+ }
+ int i = 0;
+ for (i = 0; i < testStr.length(); i++) {
+ if (testStr.charAt(i) != buf[idx]) {
+ if (idx == len) {
+ exception = new StringScanException(idx, "end of input");
+ }
+ break;
+ }
+ idx++;
+ }
+ if (exception == null) {
+ if (i < testStr.length() ||
+ Character.isLetterOrDigit(c = buf[idx]) || c == '_') {
+ exception = new StringScanException(idx, "illegal boolean");
+ }
+ }
+ if (exception != null) {
+ idx = idxSave;
+ throw exception;
+ }
+ return testval;
+ }
+
+ public boolean matchString(String s) {
+ int k = idx;
+ for (int i = 0; i < s.length(); i++) {
+ if (k >= len || s.charAt(i) != buf[k++]) {
+ return false;
+ }
+ }
+ idx = k;
+ return true;
+ }
+
+ public boolean matchDigits() {
+ int k = idx;
+ char c;
+
+ while ((c = buf[k]) >= '0' && c <= '9') {
+ k++;
+ }
+ if (k > idx) {
+ idx = k;
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public void skipWhiteSpace() {
+ while (Character.isWhitespace(buf[idx])) {
+ idx++;
+ }
+ }
+
+ public boolean atEnd() {
+ return idx == len;
+ }
+
+ public boolean atBeginning() {
+ return idx == 0;
+ }
+
+ public void ungetc() {
+ if (idx > 0) {
+ idx--;
+ }
+ }
+
+ public char getc() {
+ char c = buf[idx];
+ if (idx < len) {
+ idx++;
+ }
+ return c;
+ }
+
+ public char peekc() {
+ return buf[idx];
+ }
+
+ public String substring(int i0, int i1) {
+ if (i0 < 0) {
+ i0 = 0;
+ } else if (i0 >= len) {
+ i0 = len - 1;
+ }
+ if (i1 < 0) {
+ i1 = 0;
+ } else if (i1 > len) {
+ i1 = len;
+ }
+ if (i1 <= i0) {
+ return "";
+ }
+ return new String(buf, i0, i1 - i0);
+ }
+
+ public String substring(int i0) {
+ if (i0 < 0) {
+ i0 = 0;
+ }
+ if (i0 >= len) {
+ return "";
+ } else {
+ return new String(buf, i0, len - i0);
+ }
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/common/BaseState.java b/base/silent/src/com/netscape/pkisilent/common/BaseState.java
new file mode 100644
index 000000000..0d5e9cfc6
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/BaseState.java
@@ -0,0 +1,118 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/**
+ * CMS Test framework .
+ * This class reads and sets the values for a CMS subsytems Config file (CS.cfg)
+ * Using this class you can set the server to a base state.
+ */
+
+public class BaseState {
+
+ private String CMSConfigFile;
+ private CMSConfig cmscfg = null;
+ private String ldapbase, ldaphost, ldapport, ldapdn, ldapdnpw;
+ private boolean ldapsecConn = false;
+
+ // Constructor
+
+ public BaseState() {
+ }
+
+ /**
+ * Constructor . Takes the parameter CMSConfigfilename ( with fullpath)
+ *
+ * @param CMSConfigfile.
+ */
+
+ public BaseState(String cmscfilename) {
+ CMSConfigFile = cmscfilename;
+
+ }
+
+ /**
+ * Set the publishing directory information . Takes the paramters ldaphost,ldapport,ldapDN, ldapDN password, BaseDN
+ * , Secure coonection (true/false)
+ */
+ public void setLDAPInfo(String h, String p, String dn, String pw, String base, boolean sc) {
+ ldaphost = h;
+ ldapport = p;
+ ldapdn = dn;
+ ldapdnpw = pw;
+ ldapbase = base;
+ ldapsecConn = sc;
+
+ }
+
+ /**
+ * Enable SSL Client authentication for Directory enrollment and publishing
+ */
+
+ public void EnableSSLClientAuth() {
+ ldapsecConn = true;
+ cmscfg = new CMSConfig(CMSConfigFile);
+ // Enable DirBaseEnrollment
+ cmscfg.EnableDirEnrollment(ldapsecConn, ldapbase, ldaphost, ldapport);
+ // Enable Publishing
+ cmscfg.EnablePublishing(ldapsecConn, ldapdn, ldapdnpw, ldaphost,
+ ldapport);
+ cmscfg.saveCMSConfig();
+
+ }
+
+ /**
+ * Set to CA 's base state . Enables Directory based enrollment , publishing and Portal enrollment
+ */
+
+ public void CABaseState() {
+ cmscfg = new CMSConfig(CMSConfigFile);
+ cmscfg.EnableAdminEnrollment();
+ // Enable DirBaseEnrollment
+ cmscfg.EnableDirEnrollment(ldapsecConn, ldapbase, ldaphost, ldapport);
+ // Enable Publishing
+ cmscfg.DisablePublishing(ldapsecConn, ldapdn, ldapdnpw, ldaphost,
+ ldapport, ldapbase);
+ // Enable Portalbased enrollment
+ cmscfg.EnablePortalAuth(ldapsecConn, ldapdn, ldapdnpw, ldaphost,
+ ldapport, ldapbase);
+ cmscfg.saveCMSConfig();
+
+ }
+
+ /**
+ * Set to RA 's base state . Enables Directory based enrollment and Portal enrollment
+ */
+
+ public void RABaseState() {
+ cmscfg = new CMSConfig(CMSConfigFile);
+ cmscfg.EnableAdminEnrollment();
+ // Enable DirBaseEnrollment
+ cmscfg.EnableDirEnrollment(ldapsecConn, ldapbase, ldaphost, ldapport);
+ // Enable Portalbased enrollment
+ cmscfg.EnablePortalAuth(ldapsecConn, ldapdn, ldapdnpw, ldaphost,
+ ldapport, ldapbase);
+ cmscfg.saveCMSConfig();
+
+ }
+
+ public static void main(String args[]) {
+ }// end of function main
+
+}
diff --git a/base/silent/src/com/netscape/pkisilent/common/CMSConfig.java b/base/silent/src/com/netscape/pkisilent/common/CMSConfig.java
new file mode 100644
index 000000000..3e4f0bfa2
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/CMSConfig.java
@@ -0,0 +1,569 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+
+/**
+ * CMS Test framework .
+ * This class reads,modifies and saves CS.cfg file
+ */
+
+public class CMSConfig extends ServerInfo {
+
+ /**
+ * Constructor . Reads the CS.cfg file .Takes the parameter for Configfile ( Provide fullpath)
+ */
+
+ public CMSConfig(String confFile) {
+ CMSConfigFile = confFile;
+ System.out.println(CMSConfigFile);
+ readCMSConfig();
+ }
+
+ private void readCMSConfig() {
+
+ try {
+ FileInputStream fiscfg = new FileInputStream(CMSConfigFile);
+
+ CMSprops = new CMSProperties();
+ CMSprops.load(fiscfg);
+ System.out.println("Reading CMS Config file successful");
+ fiscfg.close();
+ System.out.println("Number in size " + CMSprops.size());
+ } catch (Exception e) {
+ System.out.println("exception " + e.getMessage());
+ }
+
+ }
+
+ /**
+ * Saves the config file
+ **/
+
+ public void saveCMSConfig() {
+ try {
+ // Properties s = new Properties(CMSprops);
+ FileOutputStream fos = new FileOutputStream(CMSConfigFile);
+
+ System.out.println("Number in size " + CMSprops.size());
+ // CMSprops.list(System.out);
+ CMSprops.store(fos, null);
+ System.out.println("Writing to CMS Config file successful");
+ fos.close();
+ } catch (Exception e) {
+ System.out.println("exception " + e.getMessage());
+ }
+
+ }
+
+ // AdminEnrollment
+
+ public void EnableAdminEnrollment() {
+ CMSprops.setProperty("cmsgateway.enableAdminEnroll", "true");
+
+ }
+
+ // Authentication
+
+ // Enable DirectoryBased Authentication
+ /**
+ * Takes parameters : secureConnection( true/false), basedn, ldaphostname, lapdaportnumber ( in case of secured
+ * connection give ldap secured port)
+ */
+
+ public void EnableDirEnrollment(boolean secureConn, String ldapbase, String lhost, String lport) {
+ CMSprops.setProperty("auths.instance.UserDirEnrollment.dnpattern",
+ "UID=$attr.uid,E=$attr.mail.1,CN=$attr.cn,OU=$dn.ou.2,O=$dn.o,C=US");
+ CMSprops.setProperty("auths.instance.UserDirEnrollment.ldap.basedn",
+ ldapbase);
+ CMSprops.setProperty(
+ "auths.instance.UserDirEnrollment.ldap.ldapconn.host", lhost);
+ CMSprops.setProperty(
+ "auths.instance.UserDirEnrollment.ldap.ldapconn.version", "3");
+ CMSprops.setProperty("auths.instance.UserDirEnrollment.ldap.maxConns",
+ "8");
+ CMSprops.setProperty("auths.instance.UserDirEnrollment.ldap.minConns",
+ "2");
+ // CMSprops.setProperty("auths.instance.UserDirEnrollment.ldapByteAttributes=","");
+ CMSprops.setProperty(
+ "auths.instance.UserDirEnrollment.ldapStringAttributes", "mail");
+ CMSprops.setProperty("auths.instance.UserDirEnrollment.pluginName",
+ "UidPwdDirAuth");
+ if (secureConn) {
+ CMSprops.setProperty(
+ "auths.instance.UserDirEnrollment.ldap.ldapconn.secureConn",
+ "true");
+ CMSprops.setProperty(
+ "auths.instance.UserDirEnrollment.ldap.ldapconn.port", lport);
+
+ } else {
+ CMSprops.setProperty(
+ "auths.instance.UserDirEnrollment.ldap.ldapconn.secureConn",
+ "false");
+ CMSprops.setProperty(
+ "auths.instance.UserDirEnrollment.ldap.ldapconn.port", lport);
+
+ }
+ }
+
+ public void DisableDirEnrollment() {
+ CMSprops.remove("auths.instance.UserDirEnrollment.dnpattern");
+ CMSprops.remove("auths.instance.UserDirEnrollment.ldap.basedn");
+ CMSprops.remove("auths.instance.UserDirEnrollment.ldap.ldapconn.host");
+ CMSprops.remove("auths.instance.UserDirEnrollment.ldap.ldapconn.port");
+ CMSprops.remove(
+ "auths.instance.UserDirEnrollment.ldap.ldapconn.secureConn");
+ CMSprops.remove("auths.instance.UserDirEnrollment.ldap.ldapconn.version");
+ CMSprops.remove("auths.instance.UserDirEnrollment.ldap.maxConns");
+ CMSprops.remove("auths.instance.UserDirEnrollment.ldap.minConns");
+ CMSprops.remove("auths.instance.UserDirEnrollment.ldapByteAttributes=");
+ CMSprops.remove("auths.instance.UserDirEnrollment.ldapStringAttributes");
+ CMSprops.remove("auths.instance.UserDirEnrollment.pluginName");
+
+ }
+
+ public void EnableCMCAuth() {
+
+ CMSprops.setProperty("auths.instance.testcmc.pluginName",
+ "CMCAuthentication");
+ }
+
+ /**
+ * Takes parameters : secureConnection( true/false), ldapbinddn, ldapbindnpassword,ldaphostname, lapdaportnumber (
+ * in case of secured connection give ldap secured port), basedn (e.g ou=people,o=mcom.com)
+ */
+
+ void EnablePortalAuth(boolean secureConn, String ldaprootDN, String ldaprootDNPW, String lhost, String lport,
+ String lbsuffix) {
+ String certnickname = null;
+
+ CMSprops.setProperty("auths.instance.PortalEnrollment.pluginName",
+ "PortalEnroll");
+ CMSprops.setProperty("auths.instance.PortalEnrollment.dnpattern",
+ "uid=$attr.uid,cn=$attr.cn,O=$dn.co,C=$dn.c");
+ CMSprops.setProperty("auths.instance.PortalEnrollment.ldap.basedn",
+ lbsuffix);
+ CMSprops.setProperty("auths.instance.PortalEnrollment.ldap.maxConns",
+ "3");
+ CMSprops.setProperty("auths.instance.PortalEnrollment.ldap.minConns",
+ "2");
+ CMSprops.setProperty("auths.instance.PortalEnrollment.ldap.objectclass",
+ "inetOrgPerson");
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapauth.bindDN",
+ ldaprootDN);
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapauth.bindPassword",
+ ldaprootDNPW);
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapauth.bindPWPrompt",
+ "Rule PortalEnrollment");
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapconn.host", lhost);
+ if (secureConn) {
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapconn.secureConn",
+ "true");
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapauth.clientCertNickname",
+ certnickname);
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapauth.authtype",
+ "SslClientAuth");
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapconn.port", lport);
+
+ } else {
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapconn.secureConn",
+ "false");
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapconn.port", lport);
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapauth.authtype",
+ "BasicAuth");
+ }
+
+ CMSprops.setProperty(
+ "auths.instance.PortalEnrollment.ldap.ldapconn.version", "3");
+
+ }
+
+ // Publishing
+ /**
+ * Takes parameters : secureConnection( true/false), ldapbinddn, ldapbindnpassword,ldaphostname, lapdaportnumber (
+ * in case of secured connection give ldap secured port)
+ */
+
+ public void EnablePublishing(boolean secureConn, String ldaprootDN, String ldaprootDNPW, String lhost, String lport) {
+
+ CMSprops.setProperty("ca.publish.enable", "true");
+ CMSprops.setProperty("ca.publish.ldappublish.enable", "true");
+ if (secureConn) {
+ CMSprops.setProperty(
+ "ca.publish.ldappublish.ldap.ldapconn.secureConn", "true");
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapconn.port",
+ lport);
+
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapauth.authtype",
+ "SslClientAuth");
+ } else {
+ CMSprops.setProperty(
+ "ca.publish.ldappublish.ldap.ldapconn.secureConn", "false");
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapconn.port",
+ lport);
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapauth.authtype",
+ "BasicAuth");
+ }
+
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapauth.bindDN",
+ ldaprootDN);
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapauth.bindPassword",
+ ldaprootDNPW);
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapauth.bindPWPrompt",
+ "CA LDAP Publishing");
+
+ // set the hostname with fully qulified name if you are using SSL
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapconn.host", lhost);
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapconn.version", "3");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapCaSimpleMap.class",
+ "com.netscape.cms.publish.mappers.LdapCaSimpleMap");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapDNCompsMap.class",
+ "com.netscape.cms.publish.mappers.Lda pCertCompsMap");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapDNExactMap.class",
+ "com.netscape.cms.publish.mappers.LdapCertExactMap");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapEnhancedMap.class",
+ "com.netscape.cms.publish.mappers.LdapEnhancedMap");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapSimpleMap.class",
+ "com.netscape.cms.publish.mappers.LdapSimpleMap");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapSubjAttrMap.class",
+ "com.netscape.cms.publish.mappers.LdapCertSubjMap");
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapCaCertMap.createCAEntry", "true");
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapCaCertMap.dnPattern",
+ "UID=CManager,OU=people,O=mcom.com");
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapCaCertMap.pluginName",
+ "LdapCaSimpleMap");
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapCrlMap.createCAEntry", "true");
+ CMSprops.setProperty("ca.publish.mapper.instance.LdapCrlMap.dnPattern",
+ "UID=CManager,OU=people,O=mcom.com");
+ CMSprops.setProperty("ca.publish.mapper.instance.LdapCrlMap.pluginName",
+ "LdapCaSimpleMap");
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapUserCertMap.dnPattern",
+ "UID=$subj.UID,OU=people,O=mcom.com");
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapUserCertMap.pluginName",
+ "LdapSimpleMap");
+ CMSprops.setProperty(
+ "ca.publish.publisher.impl.FileBasedPublisher.class",
+ "com.netscape.cms.publish.publishers.FileBasedPublisher");
+ CMSprops.setProperty(
+ "ca.publish.publisher.impl.LdapCaCertPublisher.class",
+ "com.netscape.cms.publish.publishers.LdapCaCertPublisher");
+ CMSprops.setProperty("ca.publish.publisher.impl.LdapCrlPublisher.class",
+ "com.netscape.cms.publish.publishers.LdapCrlPublisher");
+ CMSprops.setProperty(
+ "ca.publish.publisher.impl.LdapUserCertPublisher.class",
+ "com.netscape.cms.publish.publishers.LdapUserCertPublisher");
+ CMSprops.setProperty("ca.publish.publisher.impl.OCSPPublisher.class",
+ "com.netscape.cms.publish.publishers.OCSPPublisher");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapCaCertPublisher.caCertAttr",
+ "caCertificate;binary");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapCaCertPublisher.caObjectClass",
+ "certificationAuthority");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapCaCertPublisher.pluginName",
+ "LdapCaCertPublisher");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapCrlPublisher.crlAttr",
+ "certificateRevocationList;binary");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapCrlPublisher.pluginName",
+ "LdapCrlPublisher");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapUserCertPublisher.certAttr",
+ "userCertificate;binary");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapUserCertPublisher.pluginName",
+ "LdapUserCertPublisher");
+ }
+
+ public void DisablePublishing(boolean secureConn, String ldaprootDN, String ldaprootDNPW, String lhost,
+ String lport, String base) {
+
+ CMSprops.setProperty("ca.publish.enable", "false");
+ CMSprops.setProperty("ca.publish.ldappublish.enable", "false");
+ if (secureConn) {
+ CMSprops.setProperty(
+ "ca.publish.ldappublish.ldap.ldapconn.secureConn", "false");
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapconn.port",
+ lport);
+
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapauth.authtype",
+ "SslClientAuth");
+ } else {
+ CMSprops.setProperty(
+ "ca.publish.ldappublish.ldap.ldapconn.secureConn", "false");
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapconn.port",
+ lport);
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapauth.authtype",
+ "BasicAuth");
+ }
+
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapauth.bindDN",
+ ldaprootDN);
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapauth.bindPassword",
+ ldaprootDNPW);
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapauth.bindPWPrompt",
+ "CA LDAP Publishing");
+
+ // set the hostname with fully qulified name if you are using SSL
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapconn.host", lhost);
+ CMSprops.setProperty("ca.publish.ldappublish.ldap.ldapconn.version", "3");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapCaSimpleMap.class",
+ "com.netscape.cms.publish.mappers.LdapCaSimpleMap");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapDNCompsMap.class",
+ "com.netscape.cms.publish.mappers.Lda pCertCompsMap");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapDNExactMap.class",
+ "com.netscape.cms.publish.mappers.LdapCertExactMap");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapEnhancedMap.class",
+ "com.netscape.cms.publish.mappers.LdapEnhancedMap");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapSimpleMap.class",
+ "com.netscape.cms.publish.mappers.LdapSimpleMap");
+ CMSprops.setProperty("ca.publish.mapper.impl.LdapSubjAttrMap.class",
+ "com.netscape.cms.publish.mappers.LdapCertSubjMap");
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapCaCertMap.createCAEntry",
+ "false");
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapCaCertMap.dnPattern",
+ "UID=CManager,OU=people," + base);
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapCaCertMap.pluginName",
+ "LdapCaSimpleMap");
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapCrlMap.createCAEntry", "false");
+ CMSprops.setProperty("ca.publish.mapper.instance.LdapCrlMap.dnPattern",
+ "UID=CManager,OU=people," + base);
+ CMSprops.setProperty("ca.publish.mapper.instance.LdapCrlMap.pluginName",
+ "LdapCaSimpleMap");
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapUserCertMap.dnPattern",
+ "UID=$subj.UID,OU=people," + base);
+ CMSprops.setProperty(
+ "ca.publish.mapper.instance.LdapUserCertMap.pluginName",
+ "LdapSimpleMap");
+ CMSprops.setProperty(
+ "ca.publish.publisher.impl.FileBasedPublisher.class",
+ "com.netscape.cms.publish.publishers.FileBasedPublisher");
+ CMSprops.setProperty(
+ "ca.publish.publisher.impl.LdapCaCertPublisher.class",
+ "com.netscape.cms.publish.publishers.LdapCaCertPublisher");
+ CMSprops.setProperty("ca.publish.publisher.impl.LdapCrlPublisher.class",
+ "com.netscape.cms.publish.publishers.LdapCrlPublisher");
+ CMSprops.setProperty(
+ "ca.publish.publisher.impl.LdapUserCertPublisher.class",
+ "com.netscape.cms.publish.publishers.LdapUserCertPublisher");
+ CMSprops.setProperty("ca.publish.publisher.impl.OCSPPublisher.class",
+ "com.netscape.cms.publish.publishers.OCSPPublisher");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapCaCertPublisher.caCertAttr",
+ "caCertificate;binary");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapCaCertPublisher.caObjectClass",
+ "certificationAuthority");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapCaCertPublisher.pluginName",
+ "LdapCaCertPublisher");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapCrlPublisher.crlAttr",
+ "certificateRevocationList;binary");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapCrlPublisher.pluginName",
+ "LdapCrlPublisher");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapUserCertPublisher.certAttr",
+ "userCertificate;binary");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.LdapUserCertPublisher.pluginName",
+ "LdapUserCertPublisher");
+ }
+
+ public void CreateOCSPPublisher(String OCSPHost, String OCSPPort, String OCSPEEPort) {
+ // Set host nmae with fully qualified hostname
+ String location = "http://" + OCSPHost + ":" + OCSPEEPort + "/ocsp";
+
+ CMSprops.setProperty("ca.crl.MasterCRL.alwaysUpdate", "true");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.CAOCSPPublisher.host", OCSPHost);
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.CAOCSPPublisher.path",
+ "/ocsp/addCRL");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.CAOCSPPublisher.pluginName",
+ "OCSPPublisher");
+ CMSprops.setProperty(
+ "ca.publish.publisher.instance.CAOCSPPublisher.port", OCSPPort);
+ CMSprops.setProperty(
+ "ca.publish.rule.instance.OCSPPublishingRule.enable", "true");
+ CMSprops.setProperty(
+ "ca.publish.rule.instance.OCSPPublishingRule.mapper", "");
+ CMSprops.setProperty(
+ "ca.publish.rule.instance.OCSPPublishingRule.pluginName", "Rule");
+ CMSprops.setProperty(
+ "ca.publish.rule.instance.OCSPPublishingRule.predicate", "");
+ CMSprops.setProperty(
+ "ca.publish.rule.instance.OCSPPublishingRule.publisher",
+ "CAOCSPPublisher");
+ CMSprops.setProperty("ca.publish.rule.instance.OCSPPublishingRule.type",
+ "crl");
+ CMSprops.setProperty("ca.Policy.rule.AuthInfoAccessExt.ad0_location",
+ location);
+ CMSprops.setProperty(
+ "ca.Policy.rule.AuthInfoAccessExt.ad0_location_type", "URL");
+ CMSprops.setProperty("ca.Policy.rule.AuthInfoAccessExt.ad0_method",
+ "ocsp");
+ CMSprops.setProperty("ca.Policy.rule.AuthInfoAccessExt.critical",
+ "false");
+ CMSprops.setProperty("ca.Policy.rule.AuthInfoAccessExt.enable", "true");
+ CMSprops.setProperty("ca.Policy.rule.AuthInfoAccessExt.implName",
+ "AuthInfoAccessExt");
+ CMSprops.setProperty("ca.Policy.rule.AuthInfoAccessExt.numADs", "1");
+ CMSprops.setProperty("ca.Policy.rule.AuthInfoAccessExt.predicate",
+ "HTTP_PARAMS.certType == client");
+
+ }
+
+ public void EnableOCSPLDAPStore(String certInstanceID) {
+ String certNickName = "ocspSigningCert cert-" + certInstanceID;
+
+ CMSprops.setProperty("ocsp.storeId", "ldapStore");
+ CMSprops.setProperty("ocsp.store.defStore.byName", "true");
+ CMSprops.setProperty("ocsp.store.defStore.class",
+ "com.netscape.cms.ocsp.DefStore");
+ CMSprops.setProperty("ocsp.store.defStore.includeNextUpdate", "true");
+ CMSprops.setProperty("ocsp.store.defStore.notFoundAsGood", "true");
+ CMSprops.setProperty("ocsp.store.ldapStore.baseDN0", ldapBaseSuffix);
+ CMSprops.setProperty("ocsp.store.ldapStore.byName", "true");
+ CMSprops.setProperty("ocsp.store.ldapStore.caCertAttr",
+ "cACertificate;binary");
+ CMSprops.setProperty("ocsp.store.ldapStore.class",
+ "com.netscape.cms.ocsp.LDAPStore");
+ CMSprops.setProperty("ocsp.store.ldapStore.crlAttr",
+ "certificateRevocationList;binary");
+ CMSprops.setProperty("ocsp.store.ldapStore.host0", ldapHost);
+ CMSprops.setProperty("ocsp.store.ldapStore.includeNextUpdate", "true");
+ CMSprops.setProperty("ocsp.store.ldapStore.notFoundAsGood", "true");
+ CMSprops.setProperty("ocsp.store.ldapStore.numConns", "1");
+ CMSprops.setProperty("ocsp.store.ldapStore.port0", ldapPort);
+ CMSprops.setProperty("ocsp.store.ldapStore.refreshInSec0", "864");
+ CMSprops.setProperty("ocsp.signing.certnickname", certNickName);
+ CMSprops.setProperty("ocsp.signing.defaultSigningAlgorithm",
+ "MD5withRSA");
+ CMSprops.setProperty("ocsp.signing.tokenname", "internal");
+
+ }
+
+ public void SetupKRAConnectorInCA(String certInstanceID, String KRAHost, String KRAPort) {
+ String certNickName = "Server-Cert " + certInstanceID;
+
+ CMSprops.setProperty("ca.connector.KRA.enable", "true");
+ CMSprops.setProperty("ca.connector.KRA.host", KRAHost);
+ CMSprops.setProperty("ca.connector.KRA.local", "false");
+ CMSprops.setProperty("ca.connector.KRA.nickName", certNickName);
+ CMSprops.setProperty("ca.connector.KRA.port", KRAPort);
+ CMSprops.setProperty("ca.connector.KRA.timeout", "30");
+ CMSprops.setProperty("ca.connector.KRA.uri", "/kra/connector");
+
+ }
+
+ public void DisableCardCryptoValidationinTKS() {
+ CMSprops.setProperty("cardcryptogram.validate.enable", "false");
+ }
+
+ // Policies
+ public void DefaultValidityRule(String SubsystemType, String lagtime, String leadtime, String maxValidity) {
+ if (SubsystemType.equals("ca")) {
+ CMSprops.setProperty("ca.Policy.rule.DefaultValidityRule.enable",
+ "true");
+ CMSprops.setProperty("ca.Policy.rule.DefaultValidityRule.implName",
+ "ValidityConstraints");
+ CMSprops.setProperty("ca.Policy.rule.DefaultValidityRule.lagTime",
+ lagtime);
+ CMSprops.setProperty("ca.Policy.rule.DefaultValidityRule.leadTime",
+ leadtime);
+ CMSprops.setProperty(
+ "ca.Policy.rule.DefaultValidityRule.maxValidity",
+ maxValidity);
+ CMSprops.setProperty(
+ "ca.Policy.rule.DefaultValidityRule.minValidity", "1");
+ CMSprops.setProperty(
+ "ca.Policy.rule.DefaultValidityRule.notBeforeSkew", "5");
+ CMSprops.setProperty("ca.Policy.rule.DefaultValidityRule.predicate",
+ null);
+ } else {
+
+ CMSprops.setProperty("ra.Policy.rule.DefaultValidityRule.enable",
+ "true");
+ CMSprops.setProperty("ra.Policy.rule.DefaultValidityRule.implName",
+ "ValidityConstraints");
+ CMSprops.setProperty("ra.Policy.rule.DefaultValidityRule.lagTime",
+ lagtime);
+ CMSprops.setProperty("ra.Policy.rule.DefaultValidityRule.leadTime",
+ leadtime);
+ CMSprops.setProperty(
+ "ra.Policy.rule.DefaultValidityRule.maxValidity",
+ maxValidity);
+ CMSprops.setProperty(
+ "ra.Policy.rule.DefaultValidityRule.minValidity", "1");
+ CMSprops.setProperty(
+ "ra.Policy.rule.DefaultValidityRule.notBeforeSkew", "5");
+ CMSprops.setProperty("ra.Policy.rule.DefaultValidityRule.predicate",
+ null);
+ }
+
+ }
+
+ // Main Function
+ public static void main(String args[]) {
+ System.out.println(args.length);
+
+ if (args.length < 1) {
+ System.out.println("Usage : ConfigFilePath");
+ System.exit(-1);
+ }
+
+ CMSConfig s = new CMSConfig(args[0]);
+
+ // boolean secureC = false;
+ // s.EnableDirEnrollment(secureC);
+ s.saveCMSConfig();
+
+ }// end of function main
+
+} // end of class
+
diff --git a/base/silent/src/com/netscape/pkisilent/common/CMSLDAP.java b/base/silent/src/com/netscape/pkisilent/common/CMSLDAP.java
new file mode 100644
index 000000000..91a273df6
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/CMSLDAP.java
@@ -0,0 +1,609 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.ByteArrayInputStream;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+
+import netscape.ldap.LDAPAttribute;
+import netscape.ldap.LDAPAttributeSet;
+import netscape.ldap.LDAPConnection;
+import netscape.ldap.LDAPEntry;
+import netscape.ldap.LDAPException;
+import netscape.ldap.LDAPModification;
+import netscape.ldap.LDAPModificationSet;
+import netscape.ldap.LDAPSearchResults;
+import netscape.ldap.LDAPv2;
+
+/**
+ * CMS Test framework .
+ * Using this class you can add a user and user certificate to LDAP server.
+ * You can also check if a certificate / CRL is published in LDAP server
+ * USe this class to turn of SSL and turn on SSL in a LDAP server.
+ */
+
+public class CMSLDAP {
+
+ private String HOST, DN, BASEDN, PASSWORD;
+ private int PORT;
+
+ private LDAPConnection conn = new LDAPConnection();
+
+ public CMSLDAP() {
+ }
+
+ /**
+ * Constructor. Takes parametes ldaphost, ldapport
+ */
+ public CMSLDAP(String h, String p) {
+ HOST = h;
+ PORT = Integer.parseInt(p);
+ }
+
+ /**
+ * Cosntructor. Takes parameters ldaphost,ldapport,ldapbinddn, ldapbindnpassword.
+ */
+ public CMSLDAP(String h, String p, String dn, String pwd) {
+ HOST = h;
+ PORT = Integer.parseInt(p);
+ DN = dn;
+ PASSWORD = pwd;
+ }
+
+ /**
+ * Connect to ldap server
+ */
+
+ public boolean connect() {
+ try {
+ conn.connect(HOST, PORT, DN, PASSWORD);
+ return true;
+ } catch (Exception e) {
+ System.out.println("ERROR: " + e.toString());
+ return false;
+ }
+ }
+
+ /**
+ * Disconnect form ldap server
+ */
+
+ public void disconnect() {
+
+ if ((conn != null) && conn.isConnected()) {
+ try {
+ conn.disconnect();
+ } catch (Exception e) {
+ System.out.println("ERROR: " + e.toString());
+ }
+
+ }
+
+ }
+
+ /**
+ * Search for certificaterevocationList attribute. Takes basedn and filter as parameters
+ */
+
+ public boolean searchCRL(String basedn, String filter) throws LDAPException {
+ int searchScope = LDAPv2.SCOPE_SUB;
+ String getAttrs[] = { "certificateRevocationList;binary" };
+ LDAPSearchResults results = conn.search(basedn, searchScope, filter,
+ getAttrs, false);
+
+ if (results == null) {
+ System.out.println("Could not search");
+ return false;
+ }
+ while (results.hasMoreElements()) {
+ LDAPEntry entry = (LDAPEntry) results.nextElement();
+
+ System.out.println(entry.getDN());
+ LDAPAttribute anAttr = entry.getAttribute(
+ "certificateRevocationList;binary");
+
+ if (anAttr == null) {
+ System.out.println("Attribute not found ");
+ return false;
+ } else {
+ System.out.println(anAttr.getName());
+ System.out.println(anAttr.getByteValueArray());
+ return true;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Search for attriburte usercertificate. Takes parameters basedn and filter
+ */
+
+ public boolean searchUserCert(String basedn, String filter) throws LDAPException {
+ int searchScope = LDAPv2.SCOPE_SUB;
+ String getAttrs[] = { "usercertificate;binary" };
+ LDAPSearchResults results = conn.search(basedn, searchScope, filter,
+ getAttrs, false);
+
+ if (results == null) {
+ System.out.println("Could not search");
+ return false;
+ }
+ while (results.hasMoreElements()) {
+ LDAPEntry entry = (LDAPEntry) results.nextElement();
+
+ System.out.println(entry.getDN());
+ LDAPAttribute anAttr = entry.getAttribute("usercertificate;binary");
+
+ if (anAttr == null) {
+ System.out.println("Attribute not found ");
+ return false;
+ } else {
+ System.out.println(anAttr.getName());
+ System.out.println(anAttr.getByteValueArray());
+ return true;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Adds a user to direcrtory server . Takes parameters basedn, cn,sn,uid and passwd
+ */
+
+ public boolean userAdd(String basedn, String cn, String sn, String uid, String pwd) {
+ try {
+ LDAPAttributeSet attrSet = new LDAPAttributeSet();
+
+ attrSet.add(
+ new LDAPAttribute("objectclass",
+ new String[] {
+ "top", "person", "organizationalPerson",
+ "inetorgperson" }));
+ attrSet.add(new LDAPAttribute("cn", cn));
+ attrSet.add(new LDAPAttribute("mail", uid + "@netscape.com"));
+ attrSet.add(new LDAPAttribute("userpassword", pwd));
+ attrSet.add(new LDAPAttribute("sn", sn));
+ attrSet.add(new LDAPAttribute("givenName", cn + sn));
+ String name = "uid=" + uid + "," + basedn;
+
+ System.out.println("Basedn " + name);
+ LDAPEntry entry = new LDAPEntry(name, attrSet);
+
+ conn.add(entry);
+ System.out.println("ADDED: " + name);
+ return true;
+ } catch (Exception e) {
+ System.out.println("ERROR: " + e.toString());
+ return false;
+ }
+
+ }
+
+ private X509Certificate getXCertificate(byte[] cpack) {
+
+ try {
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+ ByteArrayInputStream s = new ByteArrayInputStream(cpack);
+
+ System.out.println("Building certificate :" + cpack);
+ java.security.cert.X509Certificate the_cert = (
+ java.security.cert.X509Certificate) cf.generateCertificate(s);
+
+ return the_cert;
+ } catch (Exception e) {
+ System.out.println("ERROR: getXCertificate " + e.toString());
+ return null;
+ }
+
+ }
+
+ private String buildDNString(String s) {
+
+ String val = "";
+
+ for (int i = 0; i < s.length(); i++) {
+ if ((s.charAt(i) == ',') && (s.charAt(i + 1) == ' ')) {
+ val += ',';
+ i++;
+ continue;
+ } else {
+ val += s.charAt(i);
+ }
+ }
+ return val;
+ }
+
+ /**
+ * Returns the SerialNumber;issuerDN;SubjectDN string.
+ * Takes certificate as parameter
+ */
+
+ public String getCertificateString(X509Certificate cert) {
+ if (cert == null) {
+ return null;
+ }
+ String idn = ((cert.getIssuerDN()).toString()).trim();
+
+ idn = buildDNString(idn);
+ String sdn = ((cert.getSubjectDN()).toString()).trim();
+
+ sdn = buildDNString(sdn);
+
+ System.out.println("GetCertificateString : " + idn + ";" + sdn);
+
+ // note that it did not represent a certificate fully
+ // return cert.getVersion() + ";" + cert.getSerialNumber().toString() +
+ // ";" + cert.getIssuerDN() + ";" + cert.getSubjectDN();
+ return "2;" + cert.getSerialNumber().toString() + ";" + idn + ";" + sdn;
+
+ }
+
+ /**
+ * Adds a user of objectclass cmsuser . Takes cn,sn,uid,password,certificate as parameters.
+ */
+ public boolean CMSuserAdd(String cn, String sn, String uid, String pwd, byte[] certpack) {
+ try {
+ X509Certificate cert = getXCertificate(certpack);
+
+ LDAPAttributeSet attrSet = new LDAPAttributeSet();
+
+ attrSet.add(
+ new LDAPAttribute("objectclass",
+ new String[] {
+ "top", "person", "organizationalPerson",
+ "inetorgperson", "cmsuser" }));
+ attrSet.add(new LDAPAttribute("cn", cn));
+ attrSet.add(new LDAPAttribute("mail", uid + "@netscape.com"));
+ attrSet.add(new LDAPAttribute("userpassword", pwd));
+ attrSet.add(new LDAPAttribute("sn", sn));
+ attrSet.add(new LDAPAttribute("givenName", cn + sn));
+ attrSet.add(new LDAPAttribute("usertype", "sub"));
+ attrSet.add(new LDAPAttribute("userstate", "1"));
+
+ attrSet.add(
+ new LDAPAttribute("description", getCertificateString(cert)));
+ LDAPAttribute attrCertBin = new LDAPAttribute("usercertificate");
+
+ attrCertBin.addValue(cert.getEncoded());
+ attrSet.add(attrCertBin);
+
+ String name = "uid=" + uid + ","
+ + "ou=People,o=netscapecertificateServer";
+ LDAPEntry entry = new LDAPEntry(name, attrSet);
+
+ conn.add(entry);
+ System.out.println("ADDED: " + name);
+ return true;
+ } catch (Exception e) {
+ System.out.println("ERROR: " + e.toString());
+ return false;
+ }
+
+ }
+
+ /**
+ * Adds a user of objectclass cmsuser . Takes cn,sn,uid,password,certificate as parameters.
+ */
+
+ public boolean CMSuserAdd(String cn, String sn, String uid, String pwd, X509Certificate cert) {
+
+ try {
+ LDAPAttributeSet attrSet = new LDAPAttributeSet();
+
+ attrSet.add(
+ new LDAPAttribute("objectclass",
+ new String[] {
+ "top", "person", "organizationalPerson",
+ "inetorgperson", "cmsuser" }));
+ attrSet.add(new LDAPAttribute("cn", cn));
+ attrSet.add(new LDAPAttribute("mail", uid + "@netscape.com"));
+ attrSet.add(new LDAPAttribute("userpassword", pwd));
+ attrSet.add(new LDAPAttribute("sn", sn));
+ attrSet.add(new LDAPAttribute("givenName", cn + sn));
+ attrSet.add(new LDAPAttribute("usertype", "sub"));
+ attrSet.add(new LDAPAttribute("userstate", "1"));
+
+ attrSet.add(
+ new LDAPAttribute("description", getCertificateString(cert)));
+
+ LDAPAttribute attrCertBin = new LDAPAttribute("usercertificate");
+
+ attrCertBin.addValue(cert.getEncoded());
+ attrSet.add(attrCertBin);
+
+ String name = "uid=" + uid + ","
+ + "ou=People,o=netscapecertificateServer";
+ LDAPEntry entry = new LDAPEntry(name, attrSet);
+
+ conn.add(entry);
+ System.out.println("ADDED: " + name);
+ } catch (Exception e) {
+ System.out.println("ERROR: " + e.toString());
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * adds a cms user to Trusted Manager Group. Takes uid as parameter.
+ */
+
+ public boolean addCMSUserToTMGroup(String uid) {
+ try {
+ LDAPAttributeSet attrSet = new LDAPAttributeSet();
+ LDAPAttribute um = new LDAPAttribute("uniquemember",
+ "uid=" + uid + ",ou=People,o=NetscapeCertificateServer");
+
+ attrSet.add(um);
+ LDAPModification gr = new LDAPModification(LDAPModification.ADD, um);
+
+ String dn = "cn=Trusted Managers,ou=groups,o=netscapeCertificateServer";
+
+ conn.modify(dn, gr);
+ return true;
+
+ } catch (Exception e) {
+ System.out.println("ERROR: " + e.toString());
+ return false;
+ }
+
+ }
+
+ /**
+ * adds a cms user to Agent Group. Takes subsytem (ca/ra/ocsp/kra) and uid as parameters .
+ */
+
+ public boolean addCMSUserToAgentGroup(String subsystem, String uid) {
+ try {
+ String dn = null;
+
+ if (subsystem.equals("ocsp")) {
+ dn = "cn=Online Certificate Status Manager Agents,ou=groups,o=netscapeCertificateServer";
+ }
+ if (subsystem.equals("kra")) {
+ dn = "cn=Data Recovery Manager Agents,ou=groups,o=netscapeCertificateServer";
+ }
+ if (subsystem.equals("ra")) {
+ dn = "cn=Registration Manager Agents,ou=groups,o=netscapeCertificateServer";
+ }
+ if (subsystem.equals("ca")) {
+ dn = "cn=Certificate Manager Agents,ou=groups,o=netscapeCertificateServer";
+ }
+ if (subsystem.equals("tks")) {
+ dn = "cn=Token Key Service Manager Agents,ou=groups,o=netscapeCertificateServer";
+ }
+
+ LDAPAttributeSet attrSet = new LDAPAttributeSet();
+ LDAPAttribute um = new LDAPAttribute("uniquemember",
+ "uid=" + uid + ",ou=People,o=NetscapeCertificateServer");
+
+ System.out.println(
+ "uid=" + uid + ",ou=People,o=NetscapeCertificateServer");
+
+ attrSet.add(um);
+ LDAPModification gr = new LDAPModification(LDAPModification.ADD, um);
+
+ conn.modify(dn, gr);
+
+ return true;
+
+ } catch (Exception e) {
+ System.out.println("ERROR: " + e.toString());
+ return false;
+ }
+
+ }
+
+ /**
+ * Will trun of SSL in LDAP server
+ **/
+
+ public boolean TurnOffSSL() {
+ try {
+
+ LDAPModificationSet mods = new LDAPModificationSet();
+ LDAPAttribute ssl3 = new LDAPAttribute("nsssl3", "off");
+ LDAPAttribute ssl3ciphers = new LDAPAttribute("nsssl3ciphers", "");
+ LDAPAttribute kfile = new LDAPAttribute("nskeyfile", "alias/");
+ LDAPAttribute cfile = new LDAPAttribute("nscertfile", "alias/");
+ LDAPAttribute cauth = new LDAPAttribute("nssslclientauth", "allowed");
+
+ // conn.delete("cn=RSA,cn=encryption,cn=config");
+
+ mods.add(LDAPModification.REPLACE, ssl3);
+ mods.add(LDAPModification.DELETE, ssl3ciphers);
+ mods.add(LDAPModification.DELETE, kfile);
+ mods.add(LDAPModification.DELETE, cfile);
+ mods.add(LDAPModification.DELETE, cauth);
+ System.out.println("going to mod");
+ // conn.modify("cn=encryption,cn=config",mods);
+ System.out.println("mod en=encryption");
+ int i = 4;
+
+ while (i >= 0) {
+ mods.removeElementAt(i);
+ i--;
+ }
+
+ LDAPAttribute sec = new LDAPAttribute("nsslapd-security", "off");
+
+ mods.add(LDAPModification.REPLACE, sec);
+ conn.modify("cn=config", mods);
+ System.out.println("mod cn=config");
+
+ return true;
+
+ } catch (Exception e) {
+ System.out.println("ERROR: " + e.toString());
+ return false;
+ }
+
+ }
+
+ /**
+ * Will Turn ON SSL in LDAP server . Takes certPrefix, certificatenickanme and sslport as parameters.
+ **/
+
+ public boolean TurnOnSSL(String certPrefix, String certName, String sslport) {
+ String CIPHERS =
+ "-rsa_null_md5,+rsa_fips_3des_sha,+rsa_fips_des_sha,+rsa_3des_sha,+rsa_rc4_128_md5,+rsa_des_sha,+rsa_rc2_40_md5,+rsa_rc4_40_md5";
+
+ try {
+ int searchScope = LDAPv2.SCOPE_SUB;
+ String getAttrs[] = { "nssslactivation" };
+
+ LDAPModificationSet mods = new LDAPModificationSet();
+ LDAPAttribute sec = new LDAPAttribute("nsslapd-security", "on");
+ LDAPAttribute sp = new LDAPAttribute("nsslapd-securePort", sslport);
+
+ mods.add(LDAPModification.REPLACE, sec);
+ mods.add(LDAPModification.REPLACE, sp);
+ conn.modify("cn=config", mods);
+ mods.removeElementAt(1);
+ mods.removeElementAt(0);
+
+ LDAPAttribute ssl3 = new LDAPAttribute("nsssl3", "on");
+ LDAPAttribute ssl3ciphers = new LDAPAttribute("nsssl3ciphers",
+ CIPHERS);
+ LDAPAttribute kfile = new LDAPAttribute("nskeyfile",
+ "alias/" + certPrefix + "-key3.db");
+ LDAPAttribute cfile = new LDAPAttribute("nscertfile",
+ "alias/" + certPrefix + "-cert7.db");
+ LDAPAttribute cauth = new LDAPAttribute("nssslclientauth", "allowed");
+
+ mods.add(LDAPModification.REPLACE, ssl3);
+ mods.add(LDAPModification.REPLACE, ssl3ciphers);
+ mods.add(LDAPModification.REPLACE, kfile);
+ mods.add(LDAPModification.REPLACE, cfile);
+ mods.add(LDAPModification.REPLACE, cauth);
+
+ conn.modify("cn=encryption,cn=config", mods);
+ int i = 4;
+
+ while (i >= 0) {
+ mods.removeElementAt(i);
+ i--;
+ }
+
+ // conn.delete("cn=RSA,cn=encryption,cn=config");
+ try {
+ conn.search(
+ "cn=RSA,cn=encryption,cn=config", searchScope, null,
+ getAttrs, false); // check for errors
+
+ LDAPAttribute cn = new LDAPAttribute("cn", "RSA");
+ LDAPAttribute ssltoken = new LDAPAttribute("nsssltoken",
+ "internal (software)");
+ LDAPAttribute activation = new LDAPAttribute("nssslactivation",
+ "on");
+ LDAPAttribute cname = new LDAPAttribute("nssslpersonalityssl",
+ certName);
+
+ mods.add(LDAPModification.REPLACE, cn);
+ mods.add(LDAPModification.REPLACE, ssltoken);
+ mods.add(LDAPModification.REPLACE, activation);
+ mods.add(LDAPModification.REPLACE, cname);
+
+ conn.modify("cn=RSA,cn=encryption,cn=config", mods);
+
+ } catch (Exception e1) {
+ LDAPAttributeSet attrSet = new LDAPAttributeSet();
+
+ attrSet.add(
+ new LDAPAttribute("objectclass",
+ new String[] { "top", "nsEncryptionModule" }));
+ attrSet.add(new LDAPAttribute("cn", "RSA"));
+ attrSet.add(
+ new LDAPAttribute("nsssltoken", "internal (software)"));
+ attrSet.add(new LDAPAttribute("nssslactivation", "on"));
+ attrSet.add(new LDAPAttribute("nssslpersonalityssl", certName));
+ LDAPEntry entry = new LDAPEntry("cn=RSA,cn=encryption,cn=config",
+ attrSet);
+
+ conn.add(entry);
+ }
+
+ return true;
+
+ } catch (Exception e) {
+ System.out.println("ERROR: " + e.toString());
+ return false;
+ }
+
+ }
+
+ public static void main(String args[]) {
+ String HOST = args[0];
+ // int PORT = Integer.parseInt(args[1]);
+ String PORT = args[1];
+ String DN = args[2];
+ String PASSWORD = args[3];
+ String BASEDN = args[4];
+
+ String s =
+ "MIICFzCCAYCgAwIBAgIBBjANBgkqhkiG9w0BAQQFADBDMRswGQYDVQQKExJhY2NlcHRhY25ldGVz\ndDEwMjQxFzAVBgNVBAsTDmFjY2VwdGFuY2V0ZXN0MQswCQYDVQQDEwJjYTAeFw0wMzA0MTEyMTUx\nMzZaFw0wNDA0MTAwOTQ2NTVaMFwxCzAJBgNVBAYTAlVTMQwwCgYDVQQKEwNTU0wxHTAbBgNVBAsT\nFHNzbHRlc3QxMDUwMDk3ODkzNzQ1MSAwHgYDVQQDExdqdXBpdGVyMi5uc2NwLmFvbHR3Lm5ldDBc\nMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDCsCTIIQ+bJMfPHi6kwa7HF+/xSTVHcpZ5zsodXsNWjPlD\noRu/5KAO8NotfwGnYmALWdYnqXCF0q0gkaJQalQTAgMBAAGjRjBEMA4GA1UdDwEB/wQEAwIFoDAR\nBglghkgBhvhCAQEEBAMCBkAwHwYDVR0jBBgwFoAUzxZkSySZT/Y3SxGMEiNyHnLUOPAwDQYJKoZI\nhvcNAQEEBQADgYEALtpqMOtZt6j5KlghDFgdg/dvf36nWiZwC1ap6+ka22shLkA/RjmOix97btzT\nQ+8LcmdkAW5iap4YbtrCu0wdN6IbIEXoQI1QGZBoKO2o02utssXANmTnRCyH/GX2KefQlp1NSRj9\nZNZ+GRT2Qk/8G5Ds9vVjm1I5+/AkzI9jS14=";
+
+ s = "-----BEGIN CERTIFICATE-----" + "\n" + s + "\n"
+ + "-----END CERTIFICATE-----\n";
+
+ try {
+
+ System.out.println(HOST + PORT + DN + PASSWORD + BASEDN);
+ CMSLDAP caIdb = new CMSLDAP(HOST, PORT, DN, PASSWORD);
+
+ /* FileInputStream fis = new FileInputStream("t1");
+ DataInputStream dis = new DataInputStream(fis);
+
+ byte[] bytes = new byte[dis.available()];
+ dis.readFully(bytes);
+
+ // bytes=s.getBytes();
+ */
+
+ if (!caIdb.connect()) {
+ System.out.println("Could not connect to CA internal DB port");
+ }
+
+ if (!caIdb.searchCRL("o=mcom.com", "uid=CManager")) {
+ System.out.println("CRL is not published");
+ }
+
+ // if(!caIdb.searchUserCert("o=mcom.com","uid=test"))
+ // System.out.println("USer cert is not published");
+
+ // if (!caIdb.CMSuserAdd("ra-trust" ,"ra-trust","ra-trust","netscape",bytes))
+ // {System.out.println("Trusted MAnager user Could not be add ");}
+
+ // if(!caIdb.addCMSUserToTMGroup("ra-trust"))
+ // {System.out.println("CMS user Could not be added to Trusted manager group "); }
+
+ // if(!caIdb.addCMSUserToAgentGroup("ra","ra-agent"))
+ // {System.out.println("CMS user Could not be added to Trusted manager group "); }
+ /* if(!caIdb.userAdd(BASEDN,"raeetest1","raeetest1","raeetest1","netscape"))
+ {System.out.println("CMS user Could not be added to Trusted manager group "); }
+ */
+
+ } catch (Exception e) {
+ System.out.println("ERROR: " + e.toString());
+ }
+
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/common/CMSProperties.java b/base/silent/src/com/netscape/pkisilent/common/CMSProperties.java
new file mode 100644
index 000000000..a4ba55d29
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/CMSProperties.java
@@ -0,0 +1,679 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+/*
+ * @(#)Properties.java 1.60 00/02/02
+ *
+ * Copyright 1995-2000 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * This software is the proprietary information of Sun Microsystems, Inc.
+ * Use is subject to license terms.
+ *
+ */
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintStream;
+import java.io.PrintWriter;
+import java.util.Date;
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+/**
+ * The <code>Properties</code> class represents a persistent set of
+ * properties. The <code>Properties</code> can be saved to a stream
+ * or loaded from a stream. Each key and its corresponding value in
+ * the property list is a string.
+ * <p>
+ * A property list can contain another property list as its "defaults"; this second property list is searched if the
+ * property key is not found in the original property list.
+ * <p>
+ * Because <code>Properties</code> inherits from <code>Hashtable</code>, the <code>put</code> and <code>putAll</code>
+ * methods can be applied to a <code>Properties</code> object. Their use is strongly discouraged as they allow the
+ * caller to insert entries whose keys or values are not <code>Strings</code>. The <code>setProperty</code> method
+ * should be used instead. If the <code>store</code> or <code>save</code> method is called on a "compromised"
+ * <code>Properties</code> object that contains a non- <code>String</code> key or value, the call will fail.
+ * <p>
+ * <a name="encoding"></a> When saving properties to a stream or loading them from a stream, the ISO 8859-1 character
+ * encoding is used. For characters that cannot be directly represented in this encoding, <a
+ * href="http://java.sun.com/docs/books/jls/html/3.doc.html#100850">Unicode escapes</a> are used; however, only a single
+ * 'u' character is allowed in an escape sequence. The native2ascii tool can be used to convert property files to and
+ * from other character encodings.
+ *
+ * @see <a href="../../../tooldocs/solaris/native2ascii.html">native2ascii tool for Solaris</a>
+ * @see <a href="../../../tooldocs/win32/native2ascii.html">native2ascii tool for Windows</a>
+ *
+ * @author Arthur van Hoff
+ * @author Michael McCloskey
+ * @version 1.60, 02/02/00
+ * @since JDK1.0
+ */
+
+class CMSProperties extends Hashtable<String, String> {
+
+ /**
+ * use serialVersionUID from JDK 1.1.X for interoperability
+ */
+ private static final long serialVersionUID = 4112578634029874840L;
+
+ /**
+ * A property list that contains default values for any keys not
+ * found in this property list.
+ *
+ * @serial
+ */
+ protected CMSProperties defaults;
+
+ /**
+ * Creates an empty property list with no default values.
+ */
+ public CMSProperties() {
+ this(null);
+ }
+
+ /**
+ * Creates an empty property list with the specified defaults.
+ *
+ * @param defaults the defaults.
+ */
+ public CMSProperties(CMSProperties defaults) {
+ this.defaults = defaults;
+ }
+
+ /**
+ * Calls the hashtable method <code>put</code>. Provided for
+ * parallelism with the <tt>getProperty</tt> method. Enforces use of
+ * strings for property keys and values.
+ *
+ * @param key the key to be placed into this property list.
+ * @param value the value corresponding to <tt>key</tt>.
+ * @see #getProperty
+ * @since 1.2
+ */
+ public synchronized Object setProperty(String key, String value) {
+ return put(key, value);
+ }
+
+ private static final String keyValueSeparators = "=: \t\r\n\f";
+
+ private static final String strictKeyValueSeparators = "=:";
+
+ private static final String specialSaveChars = " \t\r\n\f";
+
+ private static final String whiteSpaceChars = " \t\r\n\f";
+
+ /**
+ * Reads a property list (key and element pairs) from the input stream.
+ * The stream is assumed to be using the ISO 8859-1 character encoding.
+ * <p>
+ * Every property occupies one line of the input stream. Each line is terminated by a line terminator (
+ * <code>\n</code> or <code>\r</code> or <code>\r\n</code>). Lines from the input stream are processed until end of
+ * file is reached on the input stream.
+ * <p>
+ * A line that contains only whitespace or whose first non-whitespace character is an ASCII <code>#</code> or
+ * <code>!</code> is ignored (thus, <code>#</code> or <code>!</code> indicate comment lines).
+ * <p>
+ * Every line other than a blank line or a comment line describes one property to be added to the table (except that
+ * if a line ends with \, then the following line, if it exists, is treated as a continuation line, as described
+ * below). The key consists of all the characters in the line starting with the first non-whitespace character and
+ * up to, but not including, the first ASCII <code>=</code>, <code>:</code>, or whitespace character. All of the key
+ * termination characters may be included in the key by preceding them with a \. Any whitespace after the key is
+ * skipped; if the first non-whitespace character after the key is <code>=</code> or <code>:</code>, then it is
+ * ignored and any whitespace characters after it are also skipped. All remaining characters on the line become part
+ * of the associated element string. Within the element string, the ASCII escape sequences <code>\t</code>,
+ * <code>\n</code>, <code>\r</code>, <code>\\</code>, <code>\"</code>, <code>\'</code>, <code>\ &#32;</code> &#32;(a
+ * backslash and a space), and <code>&#92;u</code><i>xxxx</i> are recognized and converted to single characters.
+ * Moreover, if the last character on the line is <code>\</code>, then the next line is treated as a continuation of
+ * the current line; the <code>\</code> and line terminator are simply discarded, and any leading whitespace
+ * characters on the continuation line are also discarded and are not part of the element string.
+ * <p>
+ * As an example, each of the following four lines specifies the key <code>"Truth"</code> and the associated element
+ * value <code>"Beauty"</code>:
+ * <p>
+ *
+ * <pre>
+ * Truth = Beauty
+ * Truth:Beauty
+ * Truth :Beauty
+ * </pre>
+ *
+ * As another example, the following three lines specify a single property:
+ * <p>
+ *
+ * <pre>
+ * fruits apple, banana, pear, \
+ * cantaloupe, watermelon, \
+ * kiwi, mango
+ * </pre>
+ *
+ * The key is <code>"fruits"</code> and the associated element is:
+ * <p>
+ *
+ * <pre>
+ * &quot;apple, banana, pear, cantaloupe, watermelon,kiwi, mango&quot;
+ * </pre>
+ *
+ * Note that a space appears before each <code>\</code> so that a space will appear after each comma in the final
+ * result; the <code>\</code>, line terminator, and leading whitespace on the continuation line are merely discarded
+ * and are <i>not</i> replaced by one or more other characters.
+ * <p>
+ * As a third example, the line:
+ * <p>
+ *
+ * <pre>
+ * cheeses
+ * </pre>
+ *
+ * specifies that the key is <code>"cheeses"</code> and the associated element is the empty string.
+ * <p>
+ *
+ * @param inStream the input stream.
+ * @exception IOException if an error occurred when reading from the
+ * input stream.
+ */
+ public synchronized void load(InputStream inStream) throws IOException {
+
+ BufferedReader in = new BufferedReader(
+ new InputStreamReader(inStream, "8859_1"));
+
+ while (true) {
+ // Get next line
+ String line = in.readLine();
+
+ if (line == null) {
+ return;
+ }
+
+ if (line.length() > 0) {
+ // Continue lines that end in slashes if they are not comments
+ char firstChar = line.charAt(0);
+
+ if ((firstChar != '#') && (firstChar != '!')) {
+ while (continueLine(line)) {
+ String nextLine = in.readLine();
+
+ if (nextLine == null) {
+ nextLine = new String("");
+ }
+ String loppedLine = line.substring(0, line.length() - 1);
+ // Advance beyond whitespace on new line
+ int startIndex = 0;
+
+ for (startIndex = 0; startIndex < nextLine.length(); startIndex++) {
+ if (whiteSpaceChars.indexOf(
+ nextLine.charAt(startIndex)) == -1) {
+ break;
+ }
+ }
+ nextLine = nextLine.substring(startIndex,
+ nextLine.length());
+ line = new String(loppedLine + nextLine);
+ }
+
+ // Find start of key
+ int len = line.length();
+ int keyStart;
+
+ for (keyStart = 0; keyStart < len; keyStart++) {
+ if (whiteSpaceChars.indexOf(line.charAt(keyStart)) == -1) {
+ break;
+ }
+ }
+
+ // Blank lines are ignored
+ if (keyStart == len) {
+ continue;
+ }
+
+ // Find separation between key and value
+ int separatorIndex;
+
+ for (separatorIndex = keyStart; separatorIndex < len; separatorIndex++) {
+ char currentChar = line.charAt(separatorIndex);
+
+ if (currentChar == '\\') {
+ separatorIndex++;
+ } else if (keyValueSeparators.indexOf(currentChar) != -1) {
+ break;
+ }
+ }
+
+ // Skip over whitespace after key if any
+ int valueIndex;
+
+ for (valueIndex = separatorIndex; valueIndex < len; valueIndex++) {
+ if (whiteSpaceChars.indexOf(line.charAt(valueIndex)) == -1) {
+ break;
+ }
+ }
+
+ // Skip over one non whitespace key value separators if any
+ if (valueIndex < len) {
+ if (strictKeyValueSeparators.indexOf(
+ line.charAt(valueIndex)) != -1) {
+ valueIndex++;
+ }
+ }
+
+ // Skip over white space after other separators if any
+ while (valueIndex < len) {
+ if (whiteSpaceChars.indexOf(line.charAt(valueIndex)) == -1) {
+ break;
+ }
+ valueIndex++;
+ }
+ String key = line.substring(keyStart, separatorIndex);
+ String value = (separatorIndex < len)
+ ? line.substring(valueIndex, len)
+ : "";
+
+ // Convert then store key and value
+ key = loadConvert(key);
+ value = loadConvert(value);
+ put(key, value);
+ }
+ }
+ }
+ }
+
+ /*
+ * Returns true if the given line is a line that must
+ * be appended to the next line
+ */
+ private boolean continueLine(String line) {
+ int slashCount = 0;
+ int index = line.length() - 1;
+
+ while ((index >= 0) && (line.charAt(index--) == '\\')) {
+ slashCount++;
+ }
+ return (slashCount % 2 == 1);
+ }
+
+ /*
+ * Converts encoded &#92;uxxxx to unicode chars
+ * and changes special saved chars to their original forms
+ */
+ private String loadConvert(String theString) {
+ char aChar;
+ int len = theString.length();
+ StringBuffer outBuffer = new StringBuffer(len);
+
+ for (int x = 0; x < len;) {
+ aChar = theString.charAt(x++);
+ if (aChar == '\\') {
+ aChar = theString.charAt(x++);
+ if (aChar == 'u') {
+ // Read the xxxx
+ int value = 0;
+
+ for (int i = 0; i < 4; i++) {
+ aChar = theString.charAt(x++);
+ switch (aChar) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ value = (value << 4) + aChar - '0';
+ break;
+
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ value = (value << 4) + 10 + aChar - 'a';
+ break;
+
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ value = (value << 4) + 10 + aChar - 'A';
+ break;
+
+ default:
+ throw new IllegalArgumentException(
+ "Malformed \\uxxxx encoding.");
+ }
+ }
+ outBuffer.append((char) value);
+ } else {
+ if (aChar == 't') {
+ aChar = '\t';
+ } else if (aChar == 'r') {
+ aChar = '\r';
+ } else if (aChar == 'n') {
+ aChar = '\n';
+ } else if (aChar == 'f') {
+ aChar = '\f';
+ }
+ outBuffer.append(aChar);
+ }
+ } else {
+ outBuffer.append(aChar);
+ }
+ }
+ return outBuffer.toString();
+ }
+
+ /*
+ * Converts unicodes to encoded &#92;uxxxx
+ * and writes out any of the characters in specialSaveChars
+ * with a preceding slash
+ */
+ private String saveConvert(String theString, boolean escapeSpace) {
+ int len = theString.length();
+ StringBuffer outBuffer = new StringBuffer(len * 2);
+
+ for (int x = 0; x < len; x++) {
+ char aChar = theString.charAt(x);
+
+ switch (aChar) {
+ case ' ':
+ if (x == 0 || escapeSpace) {
+ outBuffer.append('\\');
+ }
+
+ outBuffer.append(' ');
+ break;
+
+ case '\\':
+ outBuffer.append('\\');
+ outBuffer.append('\\');
+ break;
+
+ case '\t':
+ outBuffer.append('\\');
+ outBuffer.append('t');
+ break;
+
+ case '\n':
+ outBuffer.append('\\');
+ outBuffer.append('n');
+ break;
+
+ case '\r':
+ outBuffer.append('\\');
+ outBuffer.append('r');
+ break;
+
+ case '\f':
+ outBuffer.append('\\');
+ outBuffer.append('f');
+ break;
+
+ default:
+ if ((aChar < 0x0020) || (aChar > 0x007e)) {
+ outBuffer.append('\\');
+ outBuffer.append('u');
+ outBuffer.append(toHex((aChar >> 12) & 0xF));
+ outBuffer.append(toHex((aChar >> 8) & 0xF));
+ outBuffer.append(toHex((aChar >> 4) & 0xF));
+ outBuffer.append(toHex(aChar & 0xF));
+ } else {
+ if (specialSaveChars.indexOf(aChar) != -1) {
+ outBuffer.append('\\');
+ }
+ outBuffer.append(aChar);
+ }
+ }
+ }
+ return outBuffer.toString();
+ }
+
+ /**
+ * Calls the <code>store(OutputStream out, String header)</code> method
+ * and suppresses IOExceptions that were thrown.
+ *
+ * @deprecated This method does not throw an IOException if an I/O error
+ * occurs while saving the property list. As of the Java 2 platform v1.2, the preferred
+ * way to save a properties list is via the <code>store(OutputStream out,
+ * String header)</code> method.
+ *
+ * @param out an output stream.
+ * @param header a description of the property list.
+ * @exception ClassCastException if this <code>Properties</code> object
+ * contains any keys or values that are not <code>Strings</code>.
+ */
+ public synchronized void save(OutputStream out, String header) {
+ try {
+ store(out, header);
+ } catch (IOException e) {
+ }
+ }
+
+ /**
+ * Writes this property list (key and element pairs) in this <code>Properties</code> table to the output stream in a
+ * format suitable
+ * for loading into a <code>Properties</code> table using the <code>load</code> method.
+ * The stream is written using the ISO 8859-1 character encoding.
+ * <p>
+ * Properties from the defaults table of this <code>Properties</code> table (if any) are <i>not</i> written out by
+ * this method.
+ * <p>
+ * If the header argument is not null, then an ASCII <code>#</code> character, the header string, and a line
+ * separator are first written to the output stream. Thus, the <code>header</code> can serve as an identifying
+ * comment.
+ * <p>
+ * Next, a comment line is always written, consisting of an ASCII <code>#</code> character, the current date and
+ * time (as if produced by the <code>toString</code> method of <code>Date</code> for the current time), and a line
+ * separator as generated by the Writer.
+ * <p>
+ * Then every entry in this <code>Properties</code> table is written out, one per line. For each entry the key
+ * string is written, then an ASCII <code>=</code>, then the associated element string. Each character of the
+ * element string is examined to see whether it should be rendered as an escape sequence. The ASCII characters
+ * <code>\</code>, tab, newline, and carriage return are written as <code>\\</code>, <code>\t</code>,
+ * <code>\n</code>, and <code>\r</code>, respectively. Characters less than <code>&#92;u0020</code> and characters
+ * greater than <code>&#92;u007E</code> are written as <code>&#92;u</code><i>xxxx</i> for the appropriate
+ * hexadecimal value <i>xxxx</i>. Leading space characters, but not embedded or trailing space characters, are
+ * written with a preceding <code>\</code>. The key and value characters <code>#</code>, <code>!</code>,
+ * <code>=</code>, and <code>:</code> are written with a preceding slash to ensure that they are properly loaded.
+ * <p>
+ * After the entries have been written, the output stream is flushed. The output stream remains open after this
+ * method returns.
+ *
+ * @param out an output stream.
+ * @param header a description of the property list.
+ * @exception IOException if writing this property list to the specified
+ * output stream throws an <tt>IOException</tt>.
+ * @exception ClassCastException if this <code>Properties</code> object
+ * contains any keys or values that are not <code>Strings</code>.
+ */
+ public synchronized void store(OutputStream out, String header)
+ throws IOException {
+ BufferedWriter awriter;
+
+ awriter = new BufferedWriter(new OutputStreamWriter(out, "8859_1"));
+ if (header != null) {
+ writeln(awriter, "#" + header);
+ }
+ writeln(awriter, "#" + new Date().toString());
+ for (Enumeration<String> e = keys(); e.hasMoreElements();) {
+ String key = e.nextElement();
+ String val = get(key);
+
+ key = saveConvert(key, true);
+
+ /* No need to escape embedded and trailing spaces for value, hence
+ * pass false to flag.
+ */
+ val = saveConvert(val, false);
+ writeln(awriter, key + "=" + val);
+ }
+ awriter.flush();
+ }
+
+ private static void writeln(BufferedWriter bw, String s) throws IOException {
+ bw.write(s);
+ bw.newLine();
+ }
+
+ /**
+ * Searches for the property with the specified key in this property list.
+ * If the key is not found in this property list, the default property list,
+ * and its defaults, recursively, are then checked. The method returns <code>null</code> if the property is not
+ * found.
+ *
+ * @param key the property key.
+ * @return the value in this property list with the specified key value.
+ * @see #setProperty
+ * @see #defaults
+ */
+ public String getProperty(String key) {
+ String oval = super.get(key);
+ String sval = (oval instanceof String) ? oval : null;
+
+ return ((sval == null) && (defaults != null))
+ ? defaults.getProperty(key)
+ : sval;
+ }
+
+ /**
+ * Searches for the property with the specified key in this property list.
+ * If the key is not found in this property list, the default property list,
+ * and its defaults, recursively, are then checked. The method returns the
+ * default value argument if the property is not found.
+ *
+ * @param key the hashtable key.
+ * @param defaultValue a default value.
+ *
+ * @return the value in this property list with the specified key value.
+ * @see #setProperty
+ * @see #defaults
+ */
+ public String getProperty(String key, String defaultValue) {
+ String val = getProperty(key);
+
+ return (val == null) ? defaultValue : val;
+ }
+
+ /**
+ * Returns an enumeration of all the keys in this property list, including
+ * the keys in the default property list.
+ *
+ * @return an enumeration of all the keys in this property list, including
+ * the keys in the default property list.
+ * @see java.util.Enumeration
+ * @see java.util.Properties#defaults
+ */
+ public Enumeration<String> propertyNames() {
+ Hashtable<String, String> h = new Hashtable<String, String>();
+
+ enumerate(h);
+ return h.keys();
+ }
+
+ /**
+ * Prints this property list out to the specified output stream.
+ * This method is useful for debugging.
+ *
+ * @param out an output stream.
+ */
+ public void list(PrintStream out) {
+ out.println("-- listing properties --");
+ Hashtable<String, String> h = new Hashtable<String, String>();
+
+ enumerate(h);
+ for (Enumeration<String> e = h.keys(); e.hasMoreElements();) {
+ String key = e.nextElement();
+ String val = h.get(key);
+
+ if (val.length() > 40) {
+ val = val.substring(0, 37) + "...";
+ }
+ out.println(key + "=" + val);
+ }
+ }
+
+ /**
+ * Prints this property list out to the specified output stream.
+ * This method is useful for debugging.
+ *
+ * @param out an output stream.
+ * @since JDK1.1
+ */
+
+ /*
+ * Rather than use an anonymous inner class to share common code, this
+ * method is duplicated in order to ensure that a non-1.1 compiler can
+ * compile this file.
+ */
+ public void list(PrintWriter out) {
+ out.println("-- listing properties --");
+ Hashtable<String, String> h = new Hashtable<String, String>();
+
+ enumerate(h);
+ for (Enumeration<String> e = h.keys(); e.hasMoreElements();) {
+ String key = e.nextElement();
+ String val = h.get(key);
+
+ if (val.length() > 40) {
+ val = val.substring(0, 37) + "...";
+ }
+ out.println(key + "=" + val);
+ }
+ }
+
+ /**
+ * Enumerates all key/value pairs in the specified hastable.
+ *
+ * @param h the hashtable
+ */
+ private synchronized void enumerate(Hashtable<String, String> h) {
+ if (defaults != null) {
+ defaults.enumerate(h);
+ }
+ for (Enumeration<String> e = keys(); e.hasMoreElements();) {
+ String key = e.nextElement();
+
+ h.put(key, get(key));
+ }
+ }
+
+ /**
+ * Convert a nibble to a hex character
+ *
+ * @param nibble the nibble to convert.
+ */
+ private static char toHex(int nibble) {
+ return hexDigit[(nibble & 0xF)];
+ }
+
+ /** A table of hex digits */
+ private static final char[] hexDigit = {
+ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D',
+ 'E', 'F'
+ };
+}
diff --git a/base/silent/src/com/netscape/pkisilent/common/CMSTask.java b/base/silent/src/com/netscape/pkisilent/common/CMSTask.java
new file mode 100644
index 000000000..4b6c75ba3
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/CMSTask.java
@@ -0,0 +1,190 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import com.netscape.pkisilent.argparser.ArgParser;
+import com.netscape.pkisilent.argparser.StringHolder;
+
+/**
+ * CS Test framework .
+ * This class starts and stops CS server from command line
+ */
+
+public class CMSTask {
+
+ private static String operation;
+ private static String debug;
+ private static String serverRoot;
+ private Process p = null;
+
+ /**
+ * Constructor . Takes CMS server root as parameter
+ * for example (/export/qa/cert-jupiter2)
+ **/
+
+ public CMSTask() {// do nothing
+ }
+
+ public CMSTask(String sroot) {
+ serverRoot = sroot;
+ }
+
+ public boolean CMSStart() {
+
+ try {
+ System.out.println("Starting Certificate System:");
+ Runtime r = Runtime.getRuntime();
+
+ p = r.exec(serverRoot + "/start-cert");
+
+ InputStreamReader isr = new InputStreamReader(p.getInputStream());
+ BufferedReader br = new BufferedReader(isr);
+ String s = null;
+
+ try {
+ while ((s = br.readLine()) != null) {
+ if (s.indexOf("started") > 0) {
+ return true;
+ }
+ // do something
+ }
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ }
+
+ return false;
+
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+
+ return false;
+ }
+
+ public boolean CMSStop() {
+ try {
+ Runtime r = Runtime.getRuntime();
+
+ System.out.println("Stopping Certificate System:");
+ p = r.exec(serverRoot + "/stop-cert");
+ BufferedReader br = new BufferedReader(
+ new InputStreamReader(p.getInputStream()));
+ String line;
+
+ while ((line = br.readLine()) != null) {
+ System.out.println(" " + line);
+ if (line.indexOf("server shut down") > -1) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
+
+ public boolean CMSRestart() {
+ try {
+ System.out.println("Restarting Certificate System:");
+ Runtime r = Runtime.getRuntime();
+
+ p = r.exec(serverRoot + "/restart-cert");
+ BufferedReader br = new BufferedReader(
+ new InputStreamReader(p.getInputStream()));
+ String line;
+
+ while ((line = br.readLine()) != null) {
+ System.out.println(" " + line);
+ if (line.indexOf("started") > -1) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
+
+ public boolean task() {
+ if (operation.equalsIgnoreCase("stop")) {
+ CMSStop();
+ return true;
+ }
+
+ if (operation.equalsIgnoreCase("start")) {
+ CMSStart();
+ return true;
+ }
+
+ if (operation.equalsIgnoreCase("restart")) {
+ CMSRestart();
+ return true;
+ }
+
+ return false;
+ }
+
+ public static void main(String args[]) {
+ CMSTask prof = new CMSTask();
+ // parse args
+ StringHolder x_instance_root = new StringHolder();
+ StringHolder x_operation = new StringHolder();
+
+ // parse the args
+ ArgParser parser = new ArgParser("CMSTask");
+
+ parser.addOption("-instance_root %s #CA Server Root", x_instance_root);
+ parser.addOption("-operation %s #CA operation [stop,start,restart]",
+ x_operation);
+
+ // and then match the arguments
+ String[] unmatched = null;
+
+ unmatched = parser.matchAllArgs(args, 0, ArgParser.EXIT_ON_UNMATCHED);
+
+ if (unmatched != null) {
+ System.out.println("ERROR: Argument Mismatch");
+ System.exit(-1);
+ }
+
+ // set variables
+ serverRoot = x_instance_root.value;
+ operation = x_operation.value;
+
+ boolean st = prof.task();
+
+ if (!st) {
+ System.out.println("ERROR");
+ }
+
+ System.out.println("SUCCESS");
+
+ } // end of function main
+
+} // end of class
+
diff --git a/base/silent/src/com/netscape/pkisilent/common/CertificateRecord.java b/base/silent/src/com/netscape/pkisilent/common/CertificateRecord.java
new file mode 100644
index 000000000..9599eb6dd
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/CertificateRecord.java
@@ -0,0 +1,44 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+public class CertificateRecord {
+
+ public String revokedOn = null;
+ public String revokedBy = null;
+ public String revocation_info = null;
+ public String signatureAlgorithm = null;
+ public String serialNumber = null;
+ public String subjectPublicKeyLength = null;
+ public String type = null;
+ public String subject = null;
+ public String issuedOn = null;
+ public String validNotBefore = null;
+ public String validNotAfter = null;
+ public String issuedBy = null;
+ public String subjectPublicKeyAlgorithm = null;
+ public String certChainBase64 = null;
+ public String certFingerprint = null;
+ public String pkcs7ChainBase64 = null;
+ public String certPrettyPrint = null;
+
+ public CertificateRecord() {// Do nothing
+ }
+
+};
diff --git a/base/silent/src/com/netscape/pkisilent/common/ComCrypto.java b/base/silent/src/com/netscape/pkisilent/common/ComCrypto.java
new file mode 100644
index 000000000..d629030f2
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/ComCrypto.java
@@ -0,0 +1,767 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.ByteArrayInputStream;
+import java.security.KeyPair;
+
+import netscape.security.x509.X500Name;
+
+import org.mozilla.jss.CryptoManager;
+import org.mozilla.jss.asn1.ASN1Util;
+import org.mozilla.jss.asn1.BIT_STRING;
+import org.mozilla.jss.asn1.INTEGER;
+import org.mozilla.jss.asn1.OBJECT_IDENTIFIER;
+import org.mozilla.jss.asn1.OCTET_STRING;
+import org.mozilla.jss.asn1.SEQUENCE;
+import org.mozilla.jss.crypto.AlreadyInitializedException;
+import org.mozilla.jss.crypto.CryptoStore;
+import org.mozilla.jss.crypto.CryptoToken;
+import org.mozilla.jss.crypto.IVParameterSpec;
+import org.mozilla.jss.crypto.InternalCertificate;
+import org.mozilla.jss.crypto.KeyGenAlgorithm;
+import org.mozilla.jss.crypto.KeyGenerator;
+import org.mozilla.jss.crypto.KeyPairAlgorithm;
+import org.mozilla.jss.crypto.KeyPairGenerator;
+import org.mozilla.jss.crypto.KeyWrapAlgorithm;
+import org.mozilla.jss.crypto.KeyWrapper;
+import org.mozilla.jss.crypto.PrivateKey;
+import org.mozilla.jss.crypto.SymmetricKey;
+import org.mozilla.jss.crypto.X509Certificate;
+import org.mozilla.jss.pkcs11.PK11Token;
+import org.mozilla.jss.pkix.crmf.CertReqMsg;
+import org.mozilla.jss.pkix.crmf.CertRequest;
+import org.mozilla.jss.pkix.crmf.CertTemplate;
+import org.mozilla.jss.pkix.crmf.EncryptedKey;
+import org.mozilla.jss.pkix.crmf.EncryptedValue;
+import org.mozilla.jss.pkix.crmf.PKIArchiveOptions;
+import org.mozilla.jss.pkix.crmf.POPOPrivKey;
+import org.mozilla.jss.pkix.crmf.ProofOfPossession;
+import org.mozilla.jss.pkix.primitive.AVA;
+import org.mozilla.jss.pkix.primitive.AlgorithmIdentifier;
+import org.mozilla.jss.pkix.primitive.Name;
+import org.mozilla.jss.pkix.primitive.SubjectPublicKeyInfo;
+import org.mozilla.jss.util.Password;
+import com.netscape.cmsutil.util.Utils;
+
+/**
+ * CMS Test framework .
+ * Use this class to initalize,add a certificate ,generate a certificate request from certificate database.
+ */
+
+public class ComCrypto {
+
+ private String cdir, certnickname, keysize, keytype, tokenpwd;
+ private String certpackage, pkcs10request;
+ private boolean debug = true;
+ private boolean DBlogin = false;
+ private boolean generaterequest = false;
+
+ private String transportcert = null;
+ private boolean dualkey = false;
+ public String CRMF_REQUEST = null;
+ int START = 1;
+ int END = START + 1;
+ Password password = null;
+
+ public static CryptoManager manager;
+ public static CryptoToken token;
+ private CryptoStore store;
+ private Password pass1 = null, pass2 = null;
+
+ private String bstr = "-----BEGIN NEW CERTIFICATE REQUEST-----";
+ private String blob, Blob1 = null;
+ private String Blob2 = null;
+ private String estr = "-----END NEW CERTIFICATE REQUEST-----";
+
+ private String certprefix = null;
+
+ public ComCrypto() {
+ };
+
+ /**
+ * Constructor . Takes the parameter certificatedbdirectory , passwordfor cert database,
+ * certificatenickname,keysize, keytype(RSA/DSA)
+ *
+ * @param certdbdirectory.
+ * @param certdbpassword
+ * @param certnickname
+ * @param keysize (1024/2048/4096)
+ * @param keytype (RSA/DSA)
+ */
+
+ public ComCrypto(String cd, String tpwd, String cn, String ks, String kt) {
+ cdir = cd;
+ tokenpwd = tpwd;
+ certnickname = cn;
+ keysize = ks;
+ keytype = kt;
+ }
+
+ // Set and Get functions
+
+ public void setCertDir(String cd) {
+ cdir = cd;
+ }
+
+ public void setCertnickname(String cd) {
+ certnickname = cd;
+ }
+
+ public void setKeySize(String cd) {
+ keysize = cd;
+ }
+
+ public void setKeyType(String cd) {
+ keytype = cd;
+ }
+
+ public void setTokenPWD(String cd) {
+ tokenpwd = cd;
+ }
+
+ public void setCertPackage(String cd) {
+ certpackage = cd;
+ }
+
+ public void setGenerateRequest(boolean c) {
+ generaterequest = c;
+ }
+
+ public void setDebug(boolean t) {
+ debug = t;
+ }
+
+ public void setCertPrefix(String prefix) {
+ certprefix = prefix;
+ }
+
+ /*
+ * setTransportCert() should only be called when the calling profile
+ * needs to do key archivals with the DRM and make sure the function
+ * generateCRMFtransport() is called for the CRMF request generation
+ * part.
+ */
+ public void setTransportCert(String tcert) {
+ transportcert = tcert;
+ }
+
+ public void setDualKey(boolean dkey) {
+ dualkey = dkey;
+ }
+
+ public String getPkcs10Request() {
+ return pkcs10request;
+ }
+
+ /**
+ * Parses the Certificate and returns SubjectDN . Takes certificate as parameter
+ */
+
+ public String getCertificateString(X509Certificate cert) {
+ if (cert == null) {
+ return null;
+ }
+
+ // note that it did not represent a certificate fully
+ return cert.getVersion() + ";" + cert.getSerialNumber().toString() + ";"
+ + cert.getIssuerDN() + ";" + cert.getSubjectDN();
+ }
+
+ /**
+ * Finds and returns Certificate . Takes certificatenickname as parameter.
+ */
+
+ public X509Certificate findCert(String certname) {
+ try {
+
+ X509Certificate cert2 = manager.findCertByNickname(certname);
+
+ return cert2;
+
+ } catch (Exception e) {
+ System.out.println("exception importing cert " + e.getMessage());
+ return null;
+ }
+
+ }
+
+ /**
+ * Imports a certificate to Certificate Database. Takes certificate and nickname as parameters.
+ */
+
+ public boolean importCert(X509Certificate xcert, String nickname) {
+ try {
+
+ System.out.println(
+ "importCert x509 : importing with nickname: " + nickname);
+
+ InternalCertificate cert2 = manager.importCertToPerm(xcert, nickname);
+
+ cert2.setSSLTrust(2);
+ return true;
+
+ } catch (Exception e) {
+ System.out.println("exception importing cert " + e.getMessage());
+ return false;
+ }
+
+ }
+
+ /**
+ * Imports a certificate to Certificate Database. Takes certificate and nickname as parameters.
+ */
+
+ public boolean importCert(String cpack, String cn) {
+
+ System.out.println("importCert string: importing with nickname: " + cn);
+ try {
+
+ String tmp = normalize(cpack);
+
+ if (DBlogin) {
+ System.out.println("Already logged into to DB");
+ }
+
+ if (manager == null) {
+ System.out.println("Manager object is null");
+ }
+
+ manager.importCertPackage(tmp.getBytes(), cn);
+
+ return true;
+
+ } catch (Exception e) {
+ System.out.println(
+ "ERROR:exception importing cert " + e.getMessage());
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+
+ /* imports CA certificate
+ */
+
+ public boolean importCACert(String cpack) {
+
+ try {
+ String tmp = normalize(cpack);
+
+ if (DBlogin) {
+ System.out.println("Already logged into to DB");
+ }
+
+ if (manager == null) {
+ System.out.println("Manager object is null");
+ }
+
+ manager.importCACertPackage(tmp.getBytes());
+
+ return true;
+
+ } catch (Exception e) {
+ System.out.println(
+ "ERROR:exception importing cert " + e.getMessage());
+ return false;
+ }
+
+ }
+
+ /**
+ * Normalizes a given certificate string . Removes the extra \\ in the certificate returned by CMS server.
+ */
+
+ public String normalize(String s) {
+
+ String val = "";
+
+ for (int i = 0; i < s.length(); i++) {
+ if ((s.charAt(i) == '\\') && (s.charAt(i + 1) == 'n')) {
+ val += '\n';
+ i++;
+ continue;
+ } else if ((s.charAt(i) == '\\') && (s.charAt(i + 1) == 'r')) {
+ i++;
+ continue;
+ } else if (s.charAt(i) == '"') {
+ continue;
+ }
+ val += s.charAt(i);
+ }
+ return val;
+ }
+
+ /**
+ * Normalizes a given certificate string . Removes the extra \\ in the certificate returned by CMS server.
+ */
+
+ public String normalizeForLDAP(String s) {
+
+ String val = "";
+
+ for (int i = 0; i < s.length(); i++) {
+ if ((s.charAt(i) == '\\') && (s.charAt(i + 1) == 'n')) {
+ val += '\n' + " ";
+ i++;
+ continue;
+ } else if ((s.charAt(i) == '\\') && (s.charAt(i + 1) == 'r')) {
+ i++;
+ continue;
+ } else if (s.charAt(i) == '"') {
+ continue;
+ }
+ val += s.charAt(i);
+ }
+ return val;
+ }
+
+ /**
+ * Convert to pkcs7 format
+ */
+
+ public String pkcs7Convertcert(String s) {
+
+ String val = "";
+
+ int len = s.length();
+
+ for (int i = 0; i < len; i = i + 64) {
+
+ if (i + 64 < len) {
+ val = val + s.substring(i, i + 64) + "\n";
+ } else {
+ val = val + s.substring(i, len);
+ }
+
+ }
+ return val;
+ }
+
+ /**
+ * Delete all keys frim key3.db
+ **/
+
+ public void deleteKeys() {
+ try {
+ int i = 0;
+
+ store = token.getCryptoStore();
+ PrivateKey[] keys = store.getPrivateKeys();
+
+ if (debug) {
+ System.out.println("Now we shall delete all the keys!");
+ }
+
+ keys = store.getPrivateKeys();
+ for (i = 0; i < keys.length; i++) {
+ PrivateKey key = (PrivateKey) keys[i];
+
+ store.deletePrivateKey(key);
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Creates a new certificate database
+ **/
+
+ public boolean CreateCertDB() {
+ return loginDB();
+
+ }
+
+ /**
+ * Login to cert database
+ **/
+
+ public boolean loginDB() {
+ Password pass1 = null;
+
+ try {
+ if (debug) {
+ System.out.println("CRYPTO INIT WITH CERTDB:" + cdir);
+ }
+
+ // this piece of code is to create db's with certain prefix
+ if (certprefix != null) {
+ CryptoManager.InitializationValues vals;
+
+ vals = new CryptoManager.InitializationValues(cdir, certprefix,
+ certprefix, "secmod.db");
+ CryptoManager.initialize(vals);
+ } else {
+ CryptoManager.initialize(cdir);
+ }
+
+ manager = CryptoManager.getInstance();
+ token = (PK11Token) manager.getInternalKeyStorageToken();
+ pass1 = new Password(tokenpwd.toCharArray());
+ if (token.isLoggedIn() && debug) {
+ System.out.println("Already Logged in ");
+ }
+
+ if (debug) {
+ System.out.println("tokenpwd:" + tokenpwd);
+ }
+
+ token.login(pass1);
+ pass1.clear();
+
+ } catch (AlreadyInitializedException e) {
+ if (debug) {
+ System.out.println("Crypto manager already initialized");
+ }
+ } catch (Exception e) {
+ try {
+ if (!token.isLoggedIn()) {
+ token.initPassword(pass1, pass1);
+ }
+ return true;
+ } catch (Exception er) {
+ System.err.println("some exception:" + e);
+ return false;
+ }
+ }
+ DBlogin = true;
+ return true;
+ }
+
+ /**
+ * Generate Certificate Request
+ **/
+
+ public synchronized boolean generateRequest() {
+
+ System.out.println("generating pkcs10 Request");
+ loginDB();
+
+ try {
+ debug = true;
+ System.out.println("Generating request : keysize :" + keysize);
+ System.out.println("Generating request : subject :" + certnickname);
+ System.out.println("Generating request : keytype :" + keytype);
+
+ Integer n = new Integer(keysize);
+
+ if (generaterequest) {
+ blob = token.generateCertRequest(certnickname, n.intValue(),
+ keytype, (byte[]) null, (byte[]) null, (byte[]) null);
+
+ System.out.println("Cert Request Generated.");
+
+ bstr = "-----BEGIN NEW CERTIFICATE REQUEST-----";
+ Blob1 = blob.substring(bstr.length() + 1);
+ Blob2 = Blob1.substring(0, Blob1.indexOf(estr));
+
+ System.out.println(Blob2);
+ pkcs10request = Blob2;
+ }
+
+ return true;
+
+ } catch (Exception e) {
+ System.out.println("Exception: Unable to generate request: " + e);
+ }
+
+ return false;
+ }
+
+ public String generateCRMFrequest() {
+ KeyPair pair = null;
+
+ System.out.println("Debug : initialize crypto Manager");
+ try {
+
+ // Step 1. initialize crypto Manager
+ try {
+ CryptoManager.initialize(cdir);
+ } catch (Exception e) {
+ // it is ok if it is already initialized
+ System.out.println("INITIALIZATION ERROR: " + e.toString());
+ System.out.println("cdir = " + cdir);
+ }
+
+ // Step 2 log into database
+ try {
+
+ System.out.println("Debug : before getInstance");
+
+ manager = CryptoManager.getInstance();
+ String token_pwd = tokenpwd;
+
+ System.out.println("Debug : before get token");
+
+ token = manager.getInternalKeyStorageToken();
+ password = new Password(token_pwd.toCharArray());
+
+ System.out.println("Debug : before login password");
+
+ token.login(password);
+
+ System.out.println("Debug : after login password");
+ } catch (Exception e) {
+ System.out.println("INITIALIZATION ERROR: " + e.toString());
+
+ if (!token.isLoggedIn()) {
+ token.initPassword(password, password);
+ }
+ }
+
+ // Generating CRMF request
+
+ KeyPairGenerator kg = token.getKeyPairGenerator(KeyPairAlgorithm.RSA);
+
+ Integer x = new Integer(keysize);
+ int key_len = x.intValue();
+
+ kg.initialize(key_len);
+
+ // 1st key pair
+ pair = kg.genKeyPair();
+
+ // create CRMF
+ CertTemplate certTemplate = new CertTemplate();
+
+ certTemplate.setVersion(new INTEGER(2));
+
+ if (certnickname != null) {
+ X500Name name = new X500Name(certnickname);
+ ByteArrayInputStream cs = new ByteArrayInputStream(name.getEncoded());
+ Name n = (Name) Name.getTemplate().decode(cs);
+ certTemplate.setSubject(n);
+ }
+
+ certTemplate.setPublicKey(new SubjectPublicKeyInfo(pair.getPublic()));
+
+ SEQUENCE seq = new SEQUENCE();
+ CertRequest certReq = new CertRequest(new INTEGER(1), certTemplate,
+ seq);
+ byte popdata[] = { 0x0, 0x3, 0x0 };
+
+ ProofOfPossession pop = ProofOfPossession.createKeyEncipherment(
+ POPOPrivKey.createThisMessage(new BIT_STRING(popdata, 3)));
+
+ CertReqMsg crmfMsg = new CertReqMsg(certReq, pop, null);
+
+ SEQUENCE s1 = new SEQUENCE();
+
+ // 1st : Encryption key
+
+ s1.addElement(crmfMsg);
+
+ // 2nd : Signing Key
+
+ if (dualkey) {
+ System.out.println("dualkey = true");
+ SEQUENCE seq1 = new SEQUENCE();
+ CertRequest certReqSigning = new CertRequest(new INTEGER(1),
+ certTemplate, seq1);
+ CertReqMsg signingMsg = new CertReqMsg(certReqSigning, pop, null);
+
+ s1.addElement(signingMsg);
+ }
+
+ byte encoded[] = ASN1Util.encode(s1);
+
+ // BASE64Encoder encoder = new BASE64Encoder();
+ // String Req1 = encoder.encodeBuffer(encoded);
+ String Req1 = Utils.base64encode(encoded);
+
+ // Set CRMF_REQUEST variable
+ CRMF_REQUEST = Req1;
+
+ System.out.println("CRMF_REQUEST = " + CRMF_REQUEST);
+
+ } catch (Exception e) {
+ System.out.println("ERROR: " + e.toString());
+ e.printStackTrace();
+ return null;
+ }
+
+ return CRMF_REQUEST;
+ }
+
+ /*
+ * This function is used to Generated CRMF requests wrapped with the
+ * transport cert so that we can do key archival with the drm.
+ * This function expects transportcert variable to be set in this class.
+ * Use setTransportCert() to do the same.
+ */
+
+ public String generateCRMFtransport() {
+
+ KeyPair pair = null;
+
+ try {
+ // Step 1. initialize crypto Manager
+ try {
+ CryptoManager.initialize(cdir);
+ } catch (Exception e) {
+ // it is ok if it is already initialized
+ System.out.println("INITIALIZATION ERROR: " + e.toString());
+ System.out.println("cdir = " + cdir);
+ }
+
+ // Step 2 log into database
+ try {
+
+ System.out.println("Debug : before getInstance");
+
+ manager = CryptoManager.getInstance();
+ String token_pwd = tokenpwd;
+
+ System.out.println("Debug : before get token");
+
+ token = manager.getInternalKeyStorageToken();
+ password = new Password(token_pwd.toCharArray());
+
+ System.out.println("Debug : before login password");
+
+ token.login(password);
+
+ System.out.println("Debug : after login password");
+ } catch (Exception e) {
+ System.out.println("INITIALIZATION ERROR: " + e.toString());
+
+ if (!token.isLoggedIn()) {
+ token.initPassword(password, password);
+ }
+ }
+
+ // Key Pair Generation
+ KeyPairGenerator kg = token.getKeyPairGenerator(KeyPairAlgorithm.RSA);
+ Integer x = new Integer(keysize);
+ int key_len = x.intValue();
+
+ kg.initialize(key_len);
+
+ pair = kg.genKeyPair();
+
+ // wrap private key
+ // BASE64Decoder decoder = new BASE64Decoder();
+ // byte transport[] = decoder.decodeBuffer(transportcert);
+ byte transport[] = Utils.base64decode(transportcert);
+
+ X509Certificate tcert = manager.importCACertPackage(transport);
+
+ byte iv[] = { 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1 };
+
+ KeyGenerator kg1 = token.getKeyGenerator(KeyGenAlgorithm.DES3);
+ SymmetricKey sk = kg1.generate();
+
+ // wrap private key using session
+ KeyWrapper wrapper1 = token.getKeyWrapper(
+ KeyWrapAlgorithm.DES3_CBC_PAD);
+
+ wrapper1.initWrap(sk, new IVParameterSpec(iv));
+
+ byte key_data[] = wrapper1.wrap((
+ org.mozilla.jss.crypto.PrivateKey) pair.getPrivate());
+
+ // wrap session using transport
+ KeyWrapper rsaWrap = token.getKeyWrapper(KeyWrapAlgorithm.RSA);
+
+ rsaWrap.initWrap(tcert.getPublicKey(), null);
+
+ byte session_data[] = rsaWrap.wrap(sk);
+
+ // create CRMF
+ CertTemplate certTemplate = new CertTemplate();
+
+ certTemplate.setVersion(new INTEGER(2));
+
+ if (certnickname != null) {
+ X500Name name = new X500Name(certnickname);
+ ByteArrayInputStream cs = new ByteArrayInputStream(name.getEncoded());
+ Name n = (Name) Name.getTemplate().decode(cs);
+ certTemplate.setSubject(n);
+ }
+
+ certTemplate.setPublicKey(new SubjectPublicKeyInfo(pair.getPublic()));
+
+ // set extension
+ AlgorithmIdentifier algS = new AlgorithmIdentifier(
+ new OBJECT_IDENTIFIER("1.2.840.113549.3.7"),
+ new OCTET_STRING(iv));
+
+ EncryptedValue encValue = new EncryptedValue(null, algS,
+ new BIT_STRING(session_data, 0), null, null,
+ new BIT_STRING(key_data, 0));
+
+ EncryptedKey key = new EncryptedKey(encValue);
+ PKIArchiveOptions opt = new PKIArchiveOptions(key);
+
+ SEQUENCE seq = new SEQUENCE();
+
+ seq.addElement(
+ new AVA(new OBJECT_IDENTIFIER("1.3.6.1.5.5.7.5.1.4"), opt));
+
+ CertRequest certReq = new CertRequest(new INTEGER(1), certTemplate,
+ seq);
+
+ // Adding proof of possesion data
+ byte popdata[] = { 0x0, 0x3, 0x0 };
+ ProofOfPossession pop = ProofOfPossession.createKeyEncipherment(
+ POPOPrivKey.createThisMessage(new BIT_STRING(popdata, 3)));
+
+ CertReqMsg crmfMsg = new CertReqMsg(certReq, pop, null);
+
+ SEQUENCE s1 = new SEQUENCE();
+
+ // 1st : Encryption key
+ s1.addElement(crmfMsg);
+
+ // 2nd : Signing Key
+
+ if (dualkey) {
+ System.out.println("dualkey = true");
+ SEQUENCE seq1 = new SEQUENCE();
+ CertRequest certReqSigning = new CertRequest(new INTEGER(1),
+ certTemplate, seq1);
+ CertReqMsg signingMsg = new CertReqMsg(certReqSigning, pop, null);
+
+ s1.addElement(signingMsg);
+ }
+
+ byte encoded[] = ASN1Util.encode(s1);
+
+ // BASE64Encoder encoder = new BASE64Encoder();
+
+ // CRMF_REQUEST = encoder.encodeBuffer(encoded);
+ CRMF_REQUEST = Utils.base64encode(encoded);
+
+ System.out.println("Generated crmf request: ...... ");
+ System.out.println("");
+
+ System.out.println(CRMF_REQUEST);
+ System.out.println("");
+ System.out.println("End crmf Request:");
+ } catch (Exception e) {
+ System.out.println("Exception: " + e.getMessage());
+ }
+
+ return CRMF_REQUEST;
+ }
+
+} // end of class
+
diff --git a/base/silent/src/com/netscape/pkisilent/common/Con2Agent.java b/base/silent/src/com/netscape/pkisilent/common/Con2Agent.java
new file mode 100644
index 000000000..61305305e
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/Con2Agent.java
@@ -0,0 +1,318 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.util.Vector;
+
+import org.mozilla.jss.CryptoManager;
+import org.mozilla.jss.crypto.AlreadyInitializedException;
+import org.mozilla.jss.crypto.CryptoToken;
+import org.mozilla.jss.crypto.X509Certificate;
+import org.mozilla.jss.pkcs11.PK11Token;
+import org.mozilla.jss.ssl.SSLCertificateApprovalCallback;
+import org.mozilla.jss.ssl.SSLClientCertificateSelectionCallback;
+import org.mozilla.jss.ssl.SSLSocket;
+import org.mozilla.jss.util.Password;
+
+/**
+ * CMS Test framework .
+ * Submits a requests to agent port with sslclient authentication.
+ */
+
+public class Con2Agent implements SSLClientCertificateSelectionCallback,
+ SSLCertificateApprovalCallback {
+
+ private int i, port;
+ private String host, certdir, certnickname, tokenpwd, certname, query;
+ private String ACTIONURL;
+
+ private BufferedReader stdin = null;
+ private StringBuffer stdout = new StringBuffer();
+
+ public Con2Agent() {
+ }
+
+ /**
+ * Constructor. Takes hostname , portnumber , certificate nickname, token password ,client certdb directory
+ *
+ * @param hostname
+ * @param portnumber
+ * @param agent cert nickname
+ * @param token password
+ * @param certdb directory
+ */
+
+ public Con2Agent(String hs, int p, String cname, String tpwd, String cdir) {
+ host = hs;
+ port = p;
+ certnickname = cname;
+ tokenpwd = tpwd;
+ certdir = cdir;
+ }
+
+ public boolean approve(X509Certificate x509, SSLCertificateApprovalCallback.ValidityStatus status) {
+ return true;
+ }
+
+ public String select(@SuppressWarnings("rawtypes") Vector nicknames) {
+
+ System.out.println("nicknames size = " + nicknames.size());
+ int i = nicknames.size();
+
+ if (i > 0) {
+ return (String) nicknames.elementAt(0);
+ } else {
+ return null;
+ }
+
+ }
+
+ // Get and Set methods
+
+ /*
+ * Get the page returned by the server
+ */
+
+ public StringBuffer getPage() {
+ return stdout;
+ }
+
+ /*
+ * Set the query string to be submitted to the server
+ */
+
+ public void setQueryString(String qu) {
+ query = qu;
+ }
+
+ /*
+ *Set token password
+ */
+
+ public void setTokenPassword(String pwd) {
+ tokenpwd = pwd;
+ }
+
+ /*
+ * Set Client cert database
+ */
+
+ public void setCertDBDir(String cdir) {
+ certdir = cdir;
+ }
+
+ /*
+ * Set host name
+ */
+
+ public void setHost(String hs) {
+ host = hs;
+ }
+
+ /*
+ * set Agent port number
+ */
+
+ public void setPort(int p) {
+ port = p;
+ }
+
+ /*
+ * Set Agent cert nickname
+ */
+
+ public void setCertNickName(String cname) {
+ certnickname = cname;
+ }
+
+ /*
+ * Set action URL
+ */
+
+ public void setActionURL(String url) {
+ ACTIONURL = url;
+ }
+
+ // Submit requests
+
+ public boolean Send() {
+ try {
+
+ if (!loginCertDB()) {
+ return false;
+ }
+
+ SSLSocket socket = new SSLSocket(host, port, null, 0, this, null);
+
+ System.out.println("Con2Agent.java: host = " + host);
+ System.out.println("Con2Agent.java: port = " + port);
+ System.out.println("Con2Agent.java: certnickname = " + certnickname);
+
+ socket.setClientCertNickname(certnickname);
+ System.out.println("Connected to the socket");
+
+ OutputStream rawos = socket.getOutputStream();
+ BufferedOutputStream os = new BufferedOutputStream(rawos);
+ PrintStream ps = new PrintStream(os);
+
+ System.out.println(ACTIONURL);
+ System.out.println("Query :" + query);
+ ps.println("POST " + ACTIONURL + " HTTP/1.0");
+ ps.println("Connection: Keep-Alive");
+ ps.println("Content-type: application/x-www-form-urlencoded");
+ ps.println("Content-length: " + query.length());
+ ps.println("");
+ ps.println(query);
+ ps.println("\r");
+ ps.flush();
+ os.flush();
+ BufferedReader stdin1 = new BufferedReader(
+ new InputStreamReader(socket.getInputStream()));
+ String line;
+
+ while ((line = stdin1.readLine()) != null) {
+ stdout.append(line + "\n");
+ System.out.println(line);
+ }
+
+ // Send Connection: close to let the server close the connection.
+ // Else the socket on the server side continues to remain in TIME_WAIT state
+
+ ps.println("Connection: close");
+ ps.flush();
+ os.flush();
+ os.close();
+ rawos.close();
+ ps.close();
+ stdin1.close();
+ socket.close();
+
+ if (socket.isClosed()) {
+ System.out.println("Con2Agent.java : Socket is Closed");
+ } else {
+ System.out.println("Con2Agent.java : Socket not Closed");
+ }
+
+ } catch (Exception e) {
+ System.out.println("some exception: in Send routine" + e);
+ return false;
+ }
+
+ return true;
+
+ }
+
+ private boolean loginCertDB() {
+ CryptoManager manager;
+ Password pass1 = null;
+
+ try {
+ System.out.println("Step 1: Initializing CryptoManager");
+ CryptoManager.initialize(certdir);
+
+ System.out.println("Step 2: Login to Cert Database");
+ manager = CryptoManager.getInstance();
+ CryptoToken token = (PK11Token) manager.getInternalKeyStorageToken();
+
+ if (token.isLoggedIn()) {
+ System.out.println("Con2Agent: Logged in incorrect");
+ }
+
+ System.out.println("tokenpwd:" + tokenpwd);
+ char[] passchar1 = new char[tokenpwd.length()];
+
+ tokenpwd.getChars(0, tokenpwd.length(), passchar1, 0);
+
+ pass1 = new Password((char[]) passchar1.clone());
+ token.login(pass1);
+
+ X509Certificate cert2 = manager.findCertByNickname(certnickname);
+
+ certname = cert2.getNickname();
+ return true;
+
+ } catch (AlreadyInitializedException e) {
+ System.out.println("Crypto manager already initialized");
+ return true;
+ } catch (NumberFormatException e) {
+ System.err.println("Invalid key size: " + e);
+ return false;
+ } catch (java.security.InvalidParameterException e) {
+ System.err.println("Invalid key size: " + e);
+ return false;
+
+ } catch (Exception e) {
+ System.err.println("some exception:" + e);
+ e.printStackTrace();
+ return false;
+ }
+
+ }
+
+ public boolean Send_withGET() {
+
+ try {
+
+ if (!loginCertDB()) {
+ return false;
+ }
+
+ SSLSocket socket = new SSLSocket(host, port, null, 0, this, null);
+
+ socket.setClientCertNickname(certnickname);
+ System.out.println("Connected to the socket");
+
+ OutputStream rawos = socket.getOutputStream();
+ BufferedOutputStream os = new BufferedOutputStream(rawos);
+ PrintStream ps = new PrintStream(os);
+
+ System.out.println("Query in con2agent :" + query);
+ System.out.println("ACTIONURL in con2agent : " + ACTIONURL);
+
+ ps.println("GET " + ACTIONURL + query + " HTTP/1.0");
+ ps.println("");
+ ps.println("\r");
+ ps.flush();
+ os.flush();
+ BufferedReader stdin2 = new BufferedReader(
+ new InputStreamReader(socket.getInputStream()));
+ String line;
+
+ while ((line = stdin2.readLine()) != null) {
+ stdout.append(line + "\n");
+ }
+ stdin2.close();
+
+ socket.close();
+
+ } catch (Exception e) {
+ System.err.println("some exception: in Send routine" + e);
+ return false;
+ }
+
+ return true;
+
+ }
+
+} // end of class
diff --git a/base/silent/src/com/netscape/pkisilent/common/DirEnroll.java b/base/silent/src/com/netscape/pkisilent/common/DirEnroll.java
new file mode 100644
index 000000000..019b75825
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/DirEnroll.java
@@ -0,0 +1,470 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+import org.mozilla.jss.ssl.SSLSocket;
+
+/**
+ * CMS Test framework - Legacyenrollment forms for Directory based enrollmnet and Portal based enrollment .
+ * Certificate issuance through Legacy Directory based enrollment and Portal based enrollment form.
+ * <P>
+ */
+
+public class DirEnroll extends TestClient {
+
+ private int i;
+ private String Authenticator = "UserDir";
+ private int port;
+ private long elapsedTime;
+
+ private String importcert = "false";
+ private boolean impStatus = false;
+
+ // Constructors
+
+ /**
+ * Constructor . Takes the parameter for Properties file name
+ * <p>
+ *
+ * @param propfilename name of the parameter file
+ */
+
+ public DirEnroll(String pfile) {
+ propfileName = pfile;
+ }
+
+ /**
+ * Constructor. Takes hostname , EESSLportnumber as parameter
+ * <p>
+ *
+ * @param hostname
+ * @param portnumber
+ */
+
+ public DirEnroll(String h, String p) {
+ host = h;
+ ports = p;
+ }
+
+ /**
+ * Constructor. Takes
+ * hostname,EESSLportnumber,uid,password,certdbdirectorypath,certdbpassword,certificatenickname,keysize,teytype
+ * <p>
+ *
+ * @param hostname
+ * @param portnumber
+ * @param subjectdn
+ * @param admuserid
+ * @param adminpassword
+ */
+
+ public DirEnroll(String hs, String p, String uid, String pw, String certdir, String certtokenpwd, String nickname,
+ String ksz, String kt) {
+
+ host = hs;
+ ports = p;
+ UID = uid;
+ PWD = pw;
+ cdir = certdir;
+ tokenpwd = certtokenpwd;
+ certnickname = nickname;
+ keysize = "1024";
+ keytype = "RSA";
+ }
+
+ // Set and Get functions
+
+ /**
+ * Use this method to set User Info
+ */
+ public void setUIDInfo(String uid, String pw) {
+ UID = uid;
+ PWD = pw;
+ }
+
+ /**
+ * Returns a string "UserDir" / "Portal"
+ */
+
+ public String getAuthenticator() {
+ return Authenticator;
+ }
+
+ /**
+ * Valid values for s - UserDir for Directory based Authntication
+ * Portal for Portal based Authentication
+ */
+ public void setAuthenticator(String s) {
+ Authenticator = s;
+ }
+
+ public boolean enroll_load() throws UnsupportedEncodingException {
+ buildquery();
+ return (Send());
+ }
+
+ private boolean pkcs10() {
+ System.out.println(" In pkcs10 Keysize , key type " + keysize + keytype);
+ cCrypt.setCertDir(cdir);
+ cCrypt.setCertnickname("cn=test");
+ cCrypt.setKeySize(keysize);
+ cCrypt.setKeyType(keytype);
+ cCrypt.setTokenPWD(tokenpwd);
+
+ cCrypt.setDebug(debug);
+ cCrypt.setGenerateRequest(true);
+ if (!cCrypt.generateRequest()) {
+ System.out.println("Request could not be generated ");
+ return false;
+ }
+ pkcs10request = cCrypt.getPkcs10Request();
+
+ try {
+ buildquery();
+ System.out.println(query);
+ setStatusString("Congratulations, your certificate has been issued.");
+ return (Send());
+ } catch (Exception e) {
+ System.err.println("some exception:" + e);
+ }
+
+ return false;
+
+ }
+
+ /**
+ * Enroll for certificate . Before calling this mentod SetAuthenticator and setUIDInfo
+ */
+ public boolean enroll() {
+ return (pkcs10());
+ }
+
+ private boolean readProperties() {
+
+ // Read the properties file and assign values to variables .
+ try {
+ getProperties(propfileName);
+ } catch (Exception e) {
+ System.out.println(
+ "exception reading Properties File " + e.getMessage());
+ return false;
+ }
+
+ System.out.println("Reading");
+ host = props.getProperty("enroll.host");
+ ports = props.getProperty("enroll.port");
+ UID = props.getProperty("enroll.UID");
+ PWD = props.getProperty("enroll.pwd");
+ cdir = props.getProperty("enroll.certdir");
+ tokenpwd = props.getProperty("enroll.certtokenpwd");
+ certnickname = props.getProperty("enroll.nickname");
+ keysize = props.getProperty("enroll.keysize");
+ keytype = props.getProperty("enroll.keytype");
+ Authenticator = props.getProperty("enroll.authenticator");
+ GN = props.getProperty("enroll.GN");
+ SN = props.getProperty("enroll.SN");
+ CN = props.getProperty("enroll.CN");
+ OU = props.getProperty("enroll.OU");
+ O = props.getProperty("enroll.O");
+ MAIL = props.getProperty("enroll.mail");
+ L = props.getProperty("enroll.l");
+
+ importcert = props.getProperty("enroll.importCert");
+ if (importcert == null) {
+ importcert = "false";
+ }
+ String de = props.getProperty("enroll.debug");
+
+ if (de == null) {
+ debug = false;
+ } else if (de.equals("true")) {
+ debug = true;
+ } else {
+ debug = false;
+ }
+
+ System.out.println("Reading done");
+ // Enroll using a pkscks10 request
+ return true;
+ }
+
+ // Private functions
+
+ private boolean importCert(String certpack) {
+
+ if (importcert.equals("false")) {
+ return true;
+ }
+
+ try {
+ if (certpack == null) {
+ return false;
+ }
+
+ if (debug) {
+ System.out.println(
+ "importing cert" + certpack + "certnick" + certnickname);
+ }
+
+ cCrypt.importCert(certpack, certnickname);
+
+ return true;
+
+ } catch (Exception e) {
+ System.out.println("exception importing cert " + e.getMessage());
+ return false;
+ }
+
+ }
+
+ private void setElapsedTime(long dif) {
+ elapsedTime = dif;
+ }
+
+ private long calculateElapsedTime(GregorianCalendar b, GregorianCalendar e) {
+
+ Date d1 = b.getTime();
+ Date d2 = e.getTime();
+ long l1 = d1.getTime();
+ long l2 = d2.getTime();
+ long difference = l2 - l1;
+
+ return difference;
+
+ }
+
+ private boolean Send() {
+ boolean st = false;
+
+ try {
+ if (debug) {
+ System.out.println("Step 3 : Socket initialize");
+ }
+
+ Integer x = new Integer(ports);
+
+ port = x.intValue();
+ ErrorDetail = null;
+ GregorianCalendar begin = new GregorianCalendar();
+
+ // SSLSocket socket = new SSLSocket(host,port);
+ SSLSocket socket = new SSLSocket(host, port, null, 0, this, null);
+
+ socket.setUseClientMode(true);
+
+ OutputStream rawos = socket.getOutputStream();
+ BufferedOutputStream os = new BufferedOutputStream(rawos);
+ PrintStream ps = new PrintStream(os);
+
+ ps.println("POST /enrollment HTTP/1.0");
+ ps.println("Connection: Keep-Alive");
+ ps.println("Content-type: application/x-www-form-urlencoded");
+ ps.println("Content-length: " + query.length());
+ ps.println("");
+ ps.println(query);
+ ps.println("\r");
+ ps.flush();
+ os.flush();
+ BufferedReader stdin = new BufferedReader(
+ new InputStreamReader(socket.getInputStream()));
+
+ if (debug) {
+ System.out.println("Step 4: Received the page");
+ }
+ st = false;
+ String line;
+
+ while ((line = stdin.readLine()) != null) {
+ if (debug) {
+ System.out.println(line);
+ }
+ if (line.indexOf(STATUS) != -1) {
+ st = true;
+ }
+ if (getError(line)) {
+ st = true;
+ }
+
+ if (line.indexOf("record.base64Cert=") > -1) {
+ String baseCert = line;
+
+ System.out.println("BaseCert : " + baseCert);
+ if (importcert.equals("true")) {
+ String strbase = "record.base64Cert=";
+
+ int n = strbase.length() + 1;
+
+ baseCert = baseCert.substring(n);
+ String tmp = baseCert.substring(0, baseCert.length() - 2);
+
+ if (importCert(tmp)) {
+ impStatus = true;
+ }
+ } else {
+ impStatus = true;
+ }
+ }
+
+ }
+ stdin.close();
+ socket.close();
+ os.close();
+ rawos.close();
+ ps.close();
+ os = null;
+ rawos = null;
+ stdin = null;
+ ps = null;
+ line = null;
+
+ GregorianCalendar end = new GregorianCalendar();
+ long diff = calculateElapsedTime(begin, end);
+
+ setElapsedTime(diff);
+
+ } catch (Exception e) {
+ System.err.println("some exception: in Send routine" + e);
+ return false;
+ }
+
+ return st;
+
+ }
+
+ private void buildquery() throws UnsupportedEncodingException {
+
+ StringBuffer queryStrBuf = new StringBuffer();
+
+ queryStrBuf.append("certType=client");
+ queryStrBuf.append("&importCert=off");
+ queryStrBuf.append("&non_repudiation=true");
+ queryStrBuf.append("&submit=Submit");
+ queryStrBuf.append("&key_encipherment=true");
+ queryStrBuf.append("&digital_signature=true");
+ queryStrBuf.append("&ssl_client=true");
+
+ System.out.println("Authenticator : " + Authenticator);
+
+ if (Authenticator.equals("UserDir")) {
+ queryStrBuf.append("&authenticator=UserDirEnrollment");
+ queryStrBuf.append("&requestFormat=keygen");
+ queryStrBuf.append("&uid=");
+ queryStrBuf.append(URLEncoder.encode(UID, "UTF-8"));
+ queryStrBuf.append("&pwd=");
+ queryStrBuf.append(URLEncoder.encode(PWD, "UTF-8"));
+ queryStrBuf.append("&email=true");
+ queryStrBuf.append("&cryptprovider=1");
+
+ }
+
+ if (Authenticator.equals("Portal")) {
+ queryStrBuf.append("&authenticator=PortalEnrollment");
+ queryStrBuf.append("&requestFormat=keygen");
+ queryStrBuf.append("&uid=");
+ queryStrBuf.append(URLEncoder.encode(UID, "UTF-8"));
+ queryStrBuf.append("&userPassword=");
+ queryStrBuf.append(URLEncoder.encode(PWD, "UTF-8"));
+ GN = "test";
+ SN = "test";
+ CN = "test";
+ MAIL = "test@netscape.com";
+ OU = "aol";
+ O = "aol";
+ L = "MV";
+ queryStrBuf.append("&givenname=");
+ queryStrBuf.append(URLEncoder.encode(GN, "UTF-8"));
+
+ queryStrBuf.append("&sn=");
+ queryStrBuf.append(URLEncoder.encode(SN, "UTF-8"));
+ queryStrBuf.append("&cn=");
+ queryStrBuf.append(URLEncoder.encode(CN, "UTF-8"));
+
+ queryStrBuf.append("&mail=");
+ queryStrBuf.append(URLEncoder.encode(MAIL, "UTF-8"));
+ queryStrBuf.append("&ou=");
+ queryStrBuf.append(URLEncoder.encode(OU, "UTF-8"));
+ queryStrBuf.append("&o=");
+ queryStrBuf.append(URLEncoder.encode(O, "UTF-8"));
+ queryStrBuf.append("&l=");
+ queryStrBuf.append(URLEncoder.encode(L, "UTF-8"));
+
+ queryStrBuf.append("&email=true");
+
+ }
+
+ if (Authenticator.equals("NIS")) {
+ queryStrBuf.append("&authenticator=NISAuth");
+ queryStrBuf.append("&requestFormat=keygen");
+ queryStrBuf.append("&uid=");
+ queryStrBuf.append(URLEncoder.encode(UID, "UTF-8"));
+ queryStrBuf.append("&pwd=");
+ queryStrBuf.append(URLEncoder.encode(PWD, "UTF-8"));
+ queryStrBuf.append("&email=true");
+
+ }
+
+ queryStrBuf.append("&pkcs10Request=");
+ queryStrBuf.append(URLEncoder.encode(pkcs10request, "UTF-8"));
+ query = queryStrBuf.toString();
+
+ System.out.println(query);
+
+ }
+
+ public static void main(String args[]) {
+ // Exit Status - (0) for error/Fail
+ // - requestId Pass
+ boolean st;
+
+ System.out.println(args.length);
+ if (args.length < 1) {
+ System.out.println("Usage : propertiesfile");
+ System.exit(0);
+ }
+
+ DirEnroll t = new DirEnroll(args[0]);
+
+ t.readProperties();
+ st = t.enroll();
+ if (st) {
+ System.out.println(
+ t.getAuthenticator() + " based enrollment successfull. ");
+ System.exit(1);
+ } else {
+
+ System.out.println(
+ t.getAuthenticator()
+ + " based enrollment was not successful."
+ + "Error: " + t.getErrorDetail());
+ System.exit(0);
+ }
+ }// end of function main
+
+} // end of class
+
diff --git a/base/silent/src/com/netscape/pkisilent/common/ParseXML.java b/base/silent/src/com/netscape/pkisilent/common/ParseXML.java
new file mode 100644
index 000000000..de1b38172
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/ParseXML.java
@@ -0,0 +1,170 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+public class ParseXML {
+ Document dom = null;
+
+ public ParseXML() {// nothing
+ }
+
+ public void parse(java.io.InputStream is) {
+ try {
+ // get the factory
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+
+ // Using factory get an instance of document builder
+ DocumentBuilder db = dbf.newDocumentBuilder();
+
+ // parse using builder to get DOM representation of the XML file
+ dom = db.parse(is);
+ } catch (Exception se) {
+ System.out.println("ERROR: unable to parse xml");
+ se.printStackTrace();
+
+ try {
+ BufferedReader br = new BufferedReader(new InputStreamReader(is));
+ StringBuilder sb = new StringBuilder();
+ String line = null;
+
+ while ((line = br.readLine()) != null) {
+ sb.append(line + "\n");
+ }
+
+ br.close();
+ System.out.println("ERROR XML = " + sb.toString());
+ } catch (Exception se1) {
+ System.out.println("ERROR: unable to print xml");
+ se1.printStackTrace();
+ }
+ }
+ }
+
+ public String getvalue(String tag) {
+ String temp = null;
+
+ try {
+
+ // get the root elememt
+ Element docEle = dom.getDocumentElement();
+
+ // get a nodelist of <employee> elements
+ NodeList nl = docEle.getElementsByTagName(tag);
+
+ if (nl != null && nl.getLength() > 0) {
+ Element el = (Element) nl.item(0);
+
+ if (el != null) {
+ temp = el.getFirstChild().getNodeValue();
+ }
+ }
+ } catch (Exception e) {
+ System.out.println("ERROR: Tag=" + tag + "has no values");
+ return null;
+ }
+
+ return temp;
+ }
+
+ public void prettyprintxml() {
+ try {
+ // Serialize the document
+ OutputFormat format = new OutputFormat(dom);
+
+ format.setLineWidth(65);
+ format.setIndenting(true);
+ format.setIndent(2);
+ XMLSerializer serializer = new XMLSerializer(System.out, format);
+
+ serializer.serialize(dom);
+ } catch (Exception e) {
+ }
+ }
+
+ private String getTextValue(Element ele, String tagName) {
+ String textVal = null;
+ NodeList nl = ele.getElementsByTagName(tagName);
+
+ if (nl != null && nl.getLength() > 0) {
+ Element el = (Element) nl.item(0);
+
+ textVal = el.getFirstChild().getNodeValue();
+ }
+
+ return textVal;
+ }
+
+ // returns an arraylist of values for the corresponding tag
+
+ public ArrayList<String> constructValueList(String first, String second) {
+ ArrayList<String> al = new ArrayList<String>();
+
+ try {
+ // get the root elememt
+ Element docEle = dom.getDocumentElement();
+
+ // get a nodelist of <employee> elements
+ NodeList nl = docEle.getElementsByTagName(first);
+
+ if (nl != null && nl.getLength() > 0) {
+ for (int i = 0; i < nl.getLength(); i++) {
+ Element el = (Element) nl.item(i);
+ String value = getTextValue(el, second);
+
+ System.out.println("tag=" + second + " value=" + value);
+ if (value != null) {
+ al.add(value);
+ }
+ }
+ }
+ } catch (Exception e) {
+ System.out.println("ERROR: Tag=" + first + " has no values");
+ }
+
+ return al;
+ }
+
+ public static void main(String args[]) {
+ try {
+
+ ParseXML px = new ParseXML();
+ FileInputStream fiscfg = new FileInputStream("/tmp/test.xml");
+
+ px.parse(fiscfg);
+ px.prettyprintxml();
+
+ } catch (Exception e) {
+ }
+ }
+
+}; // end class
diff --git a/base/silent/src/com/netscape/pkisilent/common/PostQuery.java b/base/silent/src/com/netscape/pkisilent/common/PostQuery.java
new file mode 100644
index 000000000..31fb07b3e
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/PostQuery.java
@@ -0,0 +1,141 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import com.netscape.cmsutil.util.Utils;
+
+/**
+ * CMS Test framework .
+ * This class submits request to admin server after authenticating with UID and Password. You can get back the response
+ * by calling the method. getPage().
+ */
+
+public class PostQuery {
+
+ private boolean st;
+ private String NmcStatus = "NMC_STATUS: 0";
+ private String postQuery = null;
+ private String adminID, adminPWD, URLString;
+
+ private StringBuffer stdout = new StringBuffer();
+
+ /**
+ * Constructor . Takes the parameters urlstring("http://hostname:<portnumber> , Id for authenticating to the server,
+ * password for authentication to the server and query which needs to be submitted to the server
+ */
+
+ public PostQuery(String urlstr, String authid, String authpwd, String querystring) {
+
+ URLString = urlstr;
+ adminID = authid;
+ adminPWD = authpwd;
+ postQuery = querystring;
+
+ }
+
+ public void setNMCStatus(String m) {
+ NmcStatus = m;
+ }
+
+ public void setPostQueryString(String querystring) {
+ postQuery = querystring;
+ }
+
+ public void setAuth(String ID, String Pwd) {
+ adminID = ID;
+ adminPWD = Pwd;
+ }
+
+ public StringBuffer getPage() {
+ return stdout;
+ }
+
+ public boolean Send() {
+ // / This functions connects to the URL and POST HTTP Request .
+ // It compares with NMC_STATUS and return the status.
+ System.out.println(URLString);
+ st = false;
+
+ try {
+
+ URL myUrl = new URL(URLString);
+ String userPassword = adminID + ":" + adminPWD;
+
+ System.out.println("adminid=" + adminID);
+ System.out.println("adminpwd=" + adminPWD);
+ // String encoding = new sun.misc.BASE64Encoder().encode(
+ // userPassword.getBytes());
+ String encoding = Utils.base64encode(
+ userPassword.getBytes());
+ HttpURLConnection URLCon = (HttpURLConnection) myUrl.openConnection();
+
+ URLCon.setRequestProperty("Authorization", "Basic " + encoding);
+ URLCon.setDoOutput(true);
+ URLCon.setDoInput(true);
+ URLCon.setUseCaches(false);
+ URLCon.setRequestProperty("Content-type",
+ "application/x-www-form-urlencoded");
+ // URLCon.setRequestMethod("POST");
+ System.out.println("After post");
+
+ DataOutputStream os = new DataOutputStream(URLCon.getOutputStream());
+
+ System.out.println("Query: " + postQuery);
+
+ os.writeBytes(postQuery);
+ os.flush();
+ os.close();
+
+ InputStream Content = (InputStream) URLCon.getInputStream();
+
+ System.out.println("Configuring Cert Instance : Return Response");
+ BufferedReader in = new BufferedReader(
+ new InputStreamReader(Content));
+ String line;
+
+ while ((line = in.readLine()) != null) {
+ System.out.println(line);
+ stdout.append(line + "\n");
+ st = line.startsWith(NmcStatus);
+ if (st) {
+ break;
+ }
+ }
+ URLCon.disconnect();
+ } // try
+ catch (MalformedURLException e) {
+ System.out.println(URLString + " is not a valid URL.");
+
+ } catch (IOException e) {
+ System.out.println("exception : " + e.getMessage());
+ }
+ System.out.println(st);
+ return st;
+ }
+
+}
diff --git a/base/silent/src/com/netscape/pkisilent/common/Request.java b/base/silent/src/com/netscape/pkisilent/common/Request.java
new file mode 100644
index 000000000..3dffc929c
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/Request.java
@@ -0,0 +1,1138 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.Vector;
+
+/**
+ * CMS Test framework .
+ * Submits List,Approve,Reject,cancel requests to agent port
+ */
+
+public class Request extends TestClient {
+
+ private String validityperiod;
+ private String approveseqnum, type, reqType, reqState, agenttype;
+ private int i;
+
+ // Program variables
+ private String ACTION_PROCESS_CERT_REQUEST = null;
+ private String ACTION_LISTREQUEST = "/queryReq";
+ private int reqtype = 1;
+ private int seqNumFrom = 1;
+ private int maxCount = 50;
+ private int validperiod = 180;
+ private String cadualcert_name = null;
+
+ private String approveseqnumFrom, approveseqnumTo;
+ // Request variables
+ private Vector<String> seqNum = new Vector<String>();
+ private String AUTH_ID = null;
+
+ // Cert Detail variables
+
+ private String csrRequestorName, csrRequestorPhone, csrRequestorEmail, subject, subjectdn, reqStatus, certType;
+ private String requestType, requestID, sslclient, clientcert, servercert, emailcert, objectsigningcert, sslcacert,
+ objectsigningcacert, emailcacert, sigAlgo, totalRecord, validitylength, trustedManager;
+
+ private int totalNumApproved = 0;
+
+ // Constructors
+
+ /**
+ * Constructor . Takes the parameter for Properties file name
+ *
+ * @param propfileName name of the parameter file.
+ */
+
+ public Request(String pfile) {
+ propfileName = pfile;
+ }
+
+ /**
+ * Constructor . Takes the parameter host , port and "angent type - ca/ra"
+ *
+ * @param hostname.
+ * @param port
+ * @param agenttype Whether ca or ra agent
+ */
+
+ public Request(String h, String p, String at) {
+ host = h;
+ ports = p;
+ agenttype = at;
+ }
+
+ /**
+ * Constructor . Takes the following parmaters
+ *
+ * @param hostName .
+ * @param port
+ * @param adminuid
+ * @param adminpwd
+ * @param agentcertnickname
+ * @param certdb
+ * @param tokenpwd
+ * @param approveSequncenumber
+ * @param ApproveSequenceNumberFrom
+ * @param ApproveSequnceNumberTo
+ * @param type
+ * @param reqtype enrollment/revoked
+ * @param requestState complete/pending
+ * @param agentType ra/ca
+ * @param trustedManager true/false
+ */
+
+ public Request(String h, String p, String aid, String apwd, String cname, String cd, String ctpwd, String snum,
+ String sfrom, String sto, String ty, String rty, String rstate, String aty, String tm) {
+ host = h;
+ ports = p;
+ adminid = aid;
+ adminpwd = apwd;
+ certnickname = cname;
+ cdir = cd;
+ tokenpwd = ctpwd;
+ approveseqnum = snum;
+ approveseqnumFrom = sfrom;
+ if (approveseqnumFrom == null) {
+ approveseqnumFrom = "1";
+ }
+
+ approveseqnumTo = sto;
+ if (approveseqnumTo == null) {
+ approveseqnumTo = "100";
+ }
+
+ type = ty;
+ reqType = rty;
+ reqState = rstate;
+ agenttype = aty;
+ if (agenttype == null) {
+ agenttype = "ca";
+ }
+
+ trustedManager = tm;
+ if (trustedManager.equals("true")) {
+ trustedManager = "true";
+ } else {
+ trustedManager = "false";
+ }
+ debug = false;
+
+ }
+
+ /**
+ * Set Agent Cert nick name
+ */
+ public void setAgentCertName(String s) {
+ certnickname = s;
+ }
+
+ /**
+ * List all pending enrollment request. Takes parameters fromRequestNumber,toRequestNumber
+ *
+ * @param fromrequest number
+ * @param endrequestnumber.
+ * @throws UnsupportedEncodingException
+ */
+
+ public Vector<String> ListPendingRequests(String fromRequestNumber, String toRequestNumber) throws UnsupportedEncodingException {
+ reqState = "showWaiting";
+ reqType = "enrollment";
+ approveseqnumFrom = fromRequestNumber;
+ approveseqnumTo = toRequestNumber;
+ listRequest(approveseqnumFrom, approveseqnumTo);
+ return seqNum;
+ }
+
+ /**
+ * List all pending request. Takes parameters fromRequestNumber,toRequestNumber
+ *
+ * @param fromrequest number
+ * @param endrequestnumber.
+ * @throws UnsupportedEncodingException
+ */
+
+ public Vector<String> ListAllRequests(String fromRequestNumber, String toRequestNumber) throws UnsupportedEncodingException {
+ reqState = "showAll";
+ reqType = "enrollment";
+ approveseqnumFrom = fromRequestNumber;
+ approveseqnumTo = toRequestNumber;
+ listRequest(approveseqnumFrom, approveseqnumTo);
+ return seqNum;
+ }
+
+ /**
+ * Approve pending enrollment request. Takes parameters RequestNumber
+ *
+ * @param request number
+ * @throws UnsupportedEncodingException
+ */
+
+ public int ApproveRequests(String requestNumber) throws UnsupportedEncodingException {
+ reqState = "showWaiting";
+ reqType = "enrollment";
+ approveseqnum = requestNumber;
+ approveseqnumFrom = requestNumber;
+ approveseqnumTo = requestNumber;
+ if (approveRequest()) {
+ System.out.println("Approve Request :" + totalNumApproved);
+ return totalNumApproved;
+ } else {
+ return -1;
+ }
+
+ }
+
+ /**
+ * Approve profile based pending enrollment request. Takes parameters RequestNumber
+ *
+ * @param request number
+ * @throws UnsupportedEncodingException
+ */
+
+ public int ApproveProfileRequests(String RequestNumber) throws UnsupportedEncodingException {
+
+ approveseqnum = RequestNumber;
+ approveseqnumFrom = RequestNumber;
+ approveseqnumTo = RequestNumber;
+
+ reqtype = 4;
+ buildquery();
+ if (!Send()) {
+ System.out.println("Error: Approving request " + approveseqnum);
+ return 0;
+ }
+ return 1;
+
+ }
+
+ public boolean Approve_cadualcert_Profile_Request(String RequestNumber, String name) throws UnsupportedEncodingException {
+
+ approveseqnum = RequestNumber;
+ approveseqnumFrom = RequestNumber;
+ approveseqnumTo = RequestNumber;
+
+ cadualcert_name = name;
+
+ // reqtype = 7 means cadualcert profile request
+ // this is just a convention that we follow within this file to distinguish
+ // bet'n the different requests
+
+ reqtype = 7;
+
+ buildquery();
+
+ if (!Send()) {
+ System.out.println("Error: Approving request " + approveseqnum);
+ return false;
+ }
+
+ return true;
+
+ }
+
+ /**
+ * Reject profile based pending enrollment request. Takes parameters RequestNumber
+ *
+ * @param request number
+ * @throws UnsupportedEncodingException
+ */
+
+ public int RejectProfileRequests(String RequestNumber) throws UnsupportedEncodingException {
+
+ approveseqnum = RequestNumber;
+ approveseqnumFrom = RequestNumber;
+ approveseqnumTo = RequestNumber;
+
+ reqtype = 5;
+ buildquery();
+ if (!Send()) {
+ System.out.println("Error: Rejecting request " + approveseqnum);
+ return 0;
+ }
+ return 1;
+
+ }
+
+ /**
+ * Cancel profile based pending enrollment request. Takes parameters RequestNumber
+ *
+ * @param request number
+ * @throws UnsupportedEncodingException
+ */
+
+ public int CancelProfileRequests(String RequestNumber) throws UnsupportedEncodingException {
+
+ approveseqnum = RequestNumber;
+ approveseqnumFrom = RequestNumber;
+ approveseqnumTo = RequestNumber;
+
+ reqtype = 6;
+ buildquery();
+ if (!Send()) {
+ System.out.println("Error: canceling request " + approveseqnum);
+ return 0;
+ }
+ return 1;
+
+ }
+
+ // private methods
+ private boolean RetrieveProfileCancel(StringBuffer s) {
+ String res = s.toString();
+ int ret = 0;
+
+ ret = res.indexOf("requestStatus=");
+ String status = res.substring(ret + "requestStatus=".length() + 1,
+ res.indexOf(";", ret) - 1);
+
+ if (!status.equals("canceled")) {
+ ErrorDetail = res.substring(ret + "errorReason=".length() + 1,
+ res.indexOf(";", ret) - 1);
+ return false;
+ }
+
+ return true;
+ }
+
+ private boolean RetrieveProfileReject(StringBuffer s) {
+ String res = s.toString();
+ int ret = 0;
+
+ ret = res.indexOf("requestStatus=");
+ String status = res.substring(ret + "requestStatus=".length() + 1,
+ res.indexOf(";", ret) - 1);
+
+ if (!status.equals("rejected")) {
+ ErrorDetail = res.substring(ret + "errorReason=".length() + 1,
+ res.indexOf(";", ret) - 1);
+ return false;
+ }
+
+ return true;
+ }
+
+ private boolean RetrieveProfileApproval(StringBuffer s) {
+ String res = s.toString();
+ int ret = 0;
+
+ ret = res.indexOf("requestStatus=");
+ String status = res.substring(ret + "requestStatus=".length() + 1,
+ res.indexOf(";", ret) - 1);
+
+ if (!status.equals("complete")) {
+ ErrorDetail = res.substring(ret + "errorReason=".length() + 1,
+ res.indexOf(";", ret) - 1);
+ return false;
+ }
+
+ return true;
+
+ }
+
+ private boolean RetrieveReq(StringBuffer s) {
+ String AUTHID = "header.authorityid = ";
+ String seqnum = "record.seqNum";
+
+ String res = s.toString();
+ int ret = 0;
+
+ if ((ret = res.indexOf(AUTHID)) > -1) {
+ AUTH_ID = res.substring(ret + AUTHID.length() + 1,
+ res.indexOf(";", ret) - 1);
+ while (ret > 0) {
+ if ((ret = res.indexOf(seqnum, ret)) > -1) {
+ int bi = ret + seqnum.length() + 2;
+ int be = res.indexOf(";", ret) - 1;
+
+ seqNum.addElement(res.substring(bi, be));
+ ret++;
+ }
+
+ }
+
+ }
+
+ ret = res.indexOf("header.totalRecordCount =");
+ totalRecord = res.substring(ret + "header.totalRecordCount = ".length(),
+ res.indexOf(";", ret));
+
+ return true;
+
+ }
+
+ private boolean RetrieveCertDetails(StringBuffer s) {
+
+ // System.out.println("Debug : Retrieving cert details ");
+ String res = s.toString();
+
+ if (debug) {
+ System.out.println(res);
+ }
+ int ret = 0;
+
+ boolean st = false;
+
+ for (int t = 0; t < 25; t++) {
+ String cmp = "header.SERVER_ATTRS[" + t + "].name=";
+
+ ret = res.indexOf(cmp);
+ if ((res.substring(ret + cmp.length() + 1, res.indexOf(";", ret) - 1)).equals(
+ "requestId")) {
+ ret = res.indexOf("header.SERVER_ATTRS[" + t + "].value=");
+ requestID = res.substring(
+ ret + "header.SERVER_ATTRS[t].value=".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+ if ((res.substring(ret + cmp.length() + 1, res.indexOf(";", ret) - 1)).equals(
+ "requestStatus")) {
+ ret = res.indexOf("header.SERVER_ATTRS[" + t + "].value=");
+ reqStatus = res.substring(
+ ret + "header.SERVER_ATTRS[t].value=".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+
+ if ((res.substring(ret + cmp.length() + 1, res.indexOf(";", ret) - 1)).equals(
+ "requestType")) {
+ ret = res.indexOf("header.SERVER_ATTRS[" + t + "].value=");
+ requestType = res.substring(
+ ret + "header.SERVER_ATTRS[t].value=".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+
+ } // end of for loop
+
+ // System.out.println("Debug : Retrieving cert details Serverattributes ");
+
+ if (requestID.equals(approveseqnum)) {
+ st = true;
+ }
+
+ if (!st) {
+ System.out.println("Error in retrieving the record " + approveseqnum);
+ return false;
+ }
+
+ // System.out.println("Debug : Retrieving cert details HTTP parmas ");
+
+ for (int t = 0; t < 25; t++) {
+ String cmp = "header.HTTP_PARAMS[" + t + "].name=";
+
+ ret = res.indexOf(cmp);
+ if ((res.substring(ret + cmp.length() + 1, res.indexOf(";", ret) - 1)).equals(
+ "csrRequestorEmail")) {
+ ret = res.indexOf("header.HTTP_PARAMS[" + t + "].value=");
+ csrRequestorEmail = res.substring(
+ ret + "header.HTTP_PARAMS[t].value=".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+ if ((res.substring(ret + cmp.length() + 1, res.indexOf(";", ret) - 1)).equals(
+ "csrRequestorPhone")) {
+ ret = res.indexOf("header.HTTP_PARAMS[" + t + "].value=");
+ csrRequestorPhone = res.substring(
+ ret + "header.HTTP_PARAMS[t].value=".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+ if ((res.substring(ret + cmp.length() + 1, res.indexOf(";", ret) - 1)).equals(
+ "csrRequestorName")) {
+ ret = res.indexOf("header.HTTP_PARAMS[" + t + "].value=");
+ csrRequestorName = res.substring(
+ ret + "header.HTTP_PARAMS[t].value=".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+
+ if ((res.substring(ret + cmp.length() + 1, res.indexOf(";", ret) - 1)).equals(
+ "subject")) {
+ ret = res.indexOf("header.HTTP_PARAMS[" + t + "].value=");
+ subjectdn = res.substring(
+ ret + "header.HTTP_PARAMS[t].value=".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+
+ } // end of for loop
+
+ // System.out.println("Debug : Retrieving cert details");
+
+ ret = res.indexOf("header.subject =");
+ if (ret > 0) {
+ subject = res.substring(ret + "header.subject = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+ // System.out.println("Debug : Retrieving cert details ");
+
+ sslclient =
+ clientcert =
+ servercert =
+ emailcert = objectsigningcert = sslcacert = objectsigningcacert = emailcacert = "false";
+ ret = res.indexOf("header.sslclient =");
+ if (ret > 0) {
+ sslclient = res.substring(ret + "header.sslclient = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+ // System.out.println("Debug : Retrieving cert details ");
+
+ ret = res.indexOf("header.ext_ssl_client =");
+ if (ret > 0) {
+ clientcert = res.substring(
+ ret + "header.ext_ssl_client = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+ // System.out.println("Debug : Retrieving cert details ");
+
+ ret = res.indexOf("header.ext_email =");
+ if (ret > 0) {
+ emailcert = res.substring(ret + "header.ext_email = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+ // System.out.println("Debug : Retrieving cert details ");
+
+ ret = res.indexOf("header.ext_ssl_server =");
+ if (ret > 0) {
+ servercert = res.substring(
+ ret + "header.ext_ssl_server = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+
+ // System.out.println("Debug : Retrieving cert details ");
+
+ ret = res.indexOf("header.ext_object_signing =");
+ if (ret > 0) {
+ objectsigningcert = res.substring(
+ ret + "header.ext_object_signing = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+
+ // System.out.println("Debug : Retrieving cert details ");
+
+ ret = res.indexOf("header.ext_ssl_ca =");
+ if (ret > 0) {
+ sslcacert = res.substring(ret + "header.ext_ssl_ca = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+
+ // System.out.println("Debug : Retrieving cert details ");
+
+ if (ret > 0) {
+ ret = res.indexOf("header.ext_object_signing_ca=");
+ }
+ objectsigningcacert = res.substring(
+ ret + "header.ext_object_signing_ca = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+
+ // System.out.println("Debug : Retrieving cert details ");
+
+ ret = res.indexOf("header.ext_email_ca =");
+ if (ret > 0) {
+ emailcacert = res.substring(
+ ret + "header.ext_email_ca = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+
+ // System.out.println("Debug : Retrieving cert details ");
+
+ ret = res.indexOf("header.certType =");
+ if (ret > 0) {
+ certType = res.substring(ret + "header.certType = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+ // System.out.println("Debug : Retrieving cert details ");
+
+ ret = res.indexOf("header.signatureAlgorithmName =");
+ if (ret > 0) {
+ sigAlgo = res.substring(
+ ret + "header.signatureAlgorithmName = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+
+ ret = res.indexOf("header.validityLength =");
+ if (ret > 0) {
+ validitylength = res.substring(
+ ret + "header.validityLength = ".length() + 1,
+ res.indexOf(";", ret) - 1);
+ }
+
+ return true;
+
+ }
+
+ private boolean approveRequestStatus(StringBuffer s) {
+
+ String res = s.toString();
+
+ if (debug) {
+ System.out.println(res);
+ }
+
+ // Find th Server_ATTRS paramteter value of reqStatus
+
+ int i = 1;
+ int ret;
+
+ for (int t = 0; t < 25; t++) {
+ String cmp = "header.SERVER_ATTRS[" + t + "].name=";
+
+ ret = res.indexOf(cmp);
+ if ((res.substring(ret + cmp.length() + 1, res.indexOf(";", ret) - 1)).equals(
+ "requestStatus")) {
+ i = t;
+ break;
+ }
+
+ }
+
+ String req = "header.SERVER_ATTRS[" + i + "].value=";
+
+ ret = res.indexOf(req);
+ reqStatus = res.substring(ret + req.length() + 1,
+ res.indexOf(";", ret) - 1);
+
+ if (reqStatus != null) {
+ reqStatus.toLowerCase();
+ if (reqStatus.equals("complete")) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ return false;
+
+ }
+
+ private boolean Send() {
+ debug = true;
+ boolean st = false;
+
+ try {
+ // Covert the string port to int port
+
+ Integer x = new Integer(ports);
+
+ port = x.intValue();
+
+ Con2Agent con = new Con2Agent(host, port, certnickname, tokenpwd,
+ cdir);
+
+ con.setQueryString(query);
+ con.setActionURL(ACTION_STRING);
+ con.Send();
+ StringBuffer s = new StringBuffer();
+
+ s = con.getPage();
+
+ if (debug) {
+ System.out.println(s.toString());
+ }
+ switch (reqtype) {
+ case 1:
+ st = RetrieveReq(s);
+ break;
+
+ case 2:
+ st = RetrieveCertDetails(s);
+ break;
+
+ case 3:
+ st = approveRequestStatus(s);
+ break;
+
+ case 4:
+ st = RetrieveProfileApproval(s);
+ break;
+
+ case 5:
+ st = RetrieveProfileReject(s);
+ break;
+
+ case 6:
+ st = RetrieveProfileCancel(s);
+ break;
+
+ case 7:
+ st = RetrieveProfileApproval(s);
+ break;
+
+ default:
+ System.out.println("reqtype not recognized");
+ }
+ } catch (Exception e) {
+ System.err.println("exception: in Send routine" + e);
+ return false;
+ }
+
+ return st;
+ }
+
+ private void buildquery() throws UnsupportedEncodingException {
+
+ if (reqtype == 1) { // req type = list
+ ACTION_STRING = "/" + agenttype + ACTION_LISTREQUEST;
+ query = "seqNumFrom=" + seqNumFrom;
+ query += "&maxCount=" + maxCount;
+ query += "&reqType=" + reqType;
+ query += "&reqState=" + reqState;
+
+ }
+
+ if (reqtype == 2) { // get cert details
+ ACTION_PROCESS_CERT_REQUEST = "/" + AUTH_ID + "/processCertReq";
+ ACTION_STRING = ACTION_PROCESS_CERT_REQUEST;
+ query = "seqNum=" + approveseqnum;
+
+ }
+
+ if (reqtype == 3) { // aaprove cert
+
+ if (validityperiod != null) {
+ Integer x = new Integer(validityperiod);
+
+ validperiod = x.intValue();
+ } else {
+ validperiod = 180;
+ }
+
+ ACTION_PROCESS_CERT_REQUEST = "/" + AUTH_ID + "/processCertReq";
+ ACTION_STRING = ACTION_PROCESS_CERT_REQUEST;
+ query = "seqNum=" + approveseqnum;
+ query += "&toDo=accept";
+ if (subjectdn != null) {
+ query += "&subject=" + URLEncoder.encode(subjectdn, "UTF-8");
+ } else if (subject != null) {
+ query += "&subject=" + URLEncoder.encode(subject, "UTF-8");
+ }
+
+ if (csrRequestorName != null) {
+ query += "&csrRequestorName=" + csrRequestorName;
+ }
+ if (csrRequestorPhone != null) {
+ query += "&csrRequestorPhone=" + csrRequestorPhone;
+ }
+
+ if (csrRequestorEmail != null) {
+ query += "&csrRequestorEmail=" + csrRequestorEmail;
+ }
+ if (sigAlgo != null) {
+ query += "&signatureAlgorithm=" + sigAlgo;
+ }
+ query += "&grantUID=u" + approveseqnum;
+
+ GregorianCalendar begin = new GregorianCalendar();
+ GregorianCalendar end = new GregorianCalendar();
+
+ end.add(GregorianCalendar.DATE, validperiod);
+ Date begindate = begin.getTime();
+ Date enddate = end.getTime();
+
+ query += "&notValidBefore=" + begindate.getTime() / 1000;
+ query += "&notValidAfter=" + enddate.getTime() / 1000;
+
+ if (clientcert.equals("true")) {
+ query += "&certTypeSSLClient=" + clientcert;
+ }
+
+ if (servercert.equals("true")) {
+ query += "&certTypeSSLServer=" + servercert;
+ }
+
+ if (emailcert.equals("true")) {
+ query += "&certTypeEmail=" + emailcert;
+ }
+
+ if (objectsigningcert.equals("true")) {
+ query += "&certTypeObjSigning=" + objectsigningcert;
+ }
+
+ query += "&grantTrustedManagerPrivilege=" + trustedManager;
+
+ }
+
+ if ((reqtype == 4) || (reqtype == 5) || (reqtype == 6)) { // profile based cert request
+
+ if (validityperiod != null) {
+ Integer x = new Integer(validityperiod);
+
+ validperiod = x.intValue();
+ } else {
+ validperiod = 180;
+ }
+
+ ACTION_PROCESS_CERT_REQUEST = "/" + agenttype + "/profileProcess";
+ ACTION_STRING = ACTION_PROCESS_CERT_REQUEST;
+ query = "requestId=" + approveseqnum;
+ query += "&name="
+ + URLEncoder.encode(
+ "UID=test,E=test,CN=test,OU=netscape,O=aol", "UTF-8");
+ query += "&keyUsageCritical=true";
+ query += "&keyUsageDigitalSignature=true";
+ query += "&keyUsageNonRepudiation=true";
+ query += "&keyUsageKeyEncipherment=true";
+ query += "&keyUsageDataEncipherment=false";
+ query += "&keyUsageKeyAgreement=false";
+ query += "&keyUsageKeyCertSign=false";
+ query += "&keyUsageCrlSign=false";
+ query += "&keyUsageEncipherOnly=false";
+ query += "&keyUsageDecipherOnly=false";
+
+ query += "&nsCertCritical=false";
+ query += "&nsCertSSLClient=true";
+
+ query += "&nsCertSSLServer=false";
+ query += "&nsCertEmail=true";
+ query += "&nsCertObjectSigning=false";
+ query += "&nsCertSSLCA=false";
+ query += "&nsCertEmailCA=false";
+ query += "&nsCertObjectSigningCA=false";
+
+ query += "&subAltNameExtCritical=false";
+ query += "&subjAltNames=RFC822Name:"
+ + URLEncoder.encode(" thomasknscp@aol.com", "UTF-8");
+ query += "&signingAlg=MD5withRSA";
+
+ query += "&submit=submit";
+
+ GregorianCalendar begin = new GregorianCalendar();
+ GregorianCalendar end = new GregorianCalendar();
+
+ end.add(GregorianCalendar.DATE, validperiod);
+ // Date begindate = begin.getTime();
+ // Date enddate = end.getTime();
+ String nb = begin.get(Calendar.YEAR) + "-"
+ + begin.get(Calendar.MONTH) + "-" + begin.get(Calendar.DATE)
+ + " " + begin.get(Calendar.HOUR) + ":"
+ + begin.get(Calendar.MINUTE) + ":"
+ + begin.get(Calendar.SECOND);
+
+ String nat = end.get(Calendar.YEAR) + "-" + end.get(Calendar.MONTH)
+ + "-" + end.get(Calendar.DATE) + " "
+ + end.get(Calendar.HOUR) + ":" + end.get(Calendar.MINUTE)
+ + ":" + end.get(Calendar.SECOND);
+
+ query += "&notBefore=" + nb;
+ query += "&notAfter=" + nat;
+
+ query += "&authInfoAccessCritical=false";
+ query += "&authInfoAccessGeneralNames=";
+ query += "&exKeyUsageOIDs=" + "1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.4";
+
+ }
+
+ if (reqtype == 4) {
+ query += "&op=approve";
+ }
+
+ if (reqtype == 5) {
+ query += "&op=reject";
+ }
+
+ if (reqtype == 6) {
+ query += "&op=cancel";
+ }
+
+ if (reqtype == 7) {
+ // cadualcert profile approval
+ ACTION_STRING = "/" + "ca" + "/profileProcess";
+
+ GregorianCalendar begin = new GregorianCalendar();
+ GregorianCalendar end = new GregorianCalendar();
+
+ end.add(GregorianCalendar.DATE, validperiod);
+
+ String nb = begin.get(Calendar.YEAR) + "-"
+ + begin.get(Calendar.MONTH) + "-" + begin.get(Calendar.DATE)
+ + " " + begin.get(Calendar.HOUR) + ":"
+ + begin.get(Calendar.MINUTE) + ":"
+ + begin.get(Calendar.SECOND);
+
+ String nat = end.get(Calendar.YEAR) + "-" + end.get(Calendar.MONTH)
+ + "-" + end.get(Calendar.DATE) + " "
+ + end.get(Calendar.HOUR) + ":" + end.get(Calendar.MINUTE)
+ + ":" + end.get(Calendar.SECOND);
+
+ query = "requestId=" + approveseqnum + "&name="
+ + URLEncoder.encode(cadualcert_name, "UTF-8") + "&notBefore=" + nb
+ + "&notAfter=" + nat + "&authInfoAccessCritical=false"
+ + "&authInfoAccessGeneralNames=" + "&keyUsageCritical=true"
+ + "&keyUsageDigitalSignature=false"
+ + "&keyUsageNonRepudiation=false"
+ + "&keyUsageKeyEncipherment=true"
+ + "&keyUsageDataEncipherment=false"
+ + "&keyUsageKeyAgreement=false"
+ + "&keyUsageKeyCertSign=false" + "&keyUsageCrlSign=false"
+ + "&keyUsageEncipherOnly=false"
+ + "&keyUsageDecipherOnly=false" + /* -- For Older CMS 6.x servers use these
+ "&nsCertCritical=false" +
+ "&nsCertSSLClient=true" +
+ "&nsCertSSLServer=false" +
+ "&nsCertEmail=true" +
+ "&nsCertObjectSigning=false" +
+ "&nsCertSSLCA=false" +
+ "&nsCertEmailCA=false" +
+ "&nsCertObjectSigningCA=false" +
+ "&subjAltNameExtCritical=false" +
+ "&subjAltNames=RFC822Name: null" +
+ "&signingAlg=MD5withRSA" +
+ */// For newer CS 7.x servers use these
+ "&exKeyUsageCritical=false"
+ + "&exKeyUsageOIDs=1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.4"
+ + "&subjAltNameExtCritical=false"
+ + "&subjAltNames=RFC822Name: null"
+ + "&signingAlg=SHA1withRSA" + "&requestNotes="
+ + "&op=approve" + "&submit=submit";
+
+ }
+
+ }
+
+ private void readProperties() {
+
+ // Read the properties file and assign values to variables .
+ try {
+ getProperties(propfileName);
+ } catch (Exception e) {
+ System.out.println(
+ "exception reading Properties File " + e.getMessage());
+ }
+
+ // Read the properties file
+ host = props.getProperty("enroll.host");
+ ports = props.getProperty("enroll.port");
+ adminid = props.getProperty("enroll.adminid");
+ adminpwd = props.getProperty("enroll.adminpwd");
+ certnickname = props.getProperty("enroll.nickname");
+ cdir = props.getProperty("enroll.certdir");
+ tokenpwd = props.getProperty("enroll.certtokenpwd");
+ approveseqnum = props.getProperty("enroll.seqnum");
+ if (approveseqnum == null) {
+ System.out.println("Seq num is null");
+ }
+
+ approveseqnumFrom = props.getProperty("enroll.seqnumFrom");
+ if (approveseqnumFrom == null) {
+ approveseqnumFrom = "1";
+ }
+
+ approveseqnumTo = props.getProperty("enroll.seqnumTo");
+ if (approveseqnumTo == null) {
+ approveseqnumTo = "100";
+ }
+ validityperiod = props.getProperty("enroll.validperiod");
+ type = props.getProperty("enroll.type");
+ reqType = props.getProperty("enroll.reqtype");
+ reqState = props.getProperty("enroll.reqstate");
+ agenttype = props.getProperty("enroll.agenttype");
+ if (agenttype == null) {
+ agenttype = "ca";
+ }
+
+ trustedManager = props.getProperty("enroll.trust");
+ if (trustedManager.equals("true")) {
+ trustedManager = "true";
+ } else {
+ trustedManager = "false";
+ }
+
+ String de = props.getProperty("enroll.debug");
+
+ if (de == null) {
+ debug = false;
+ } else if (de.equals("true")) {
+ debug = true;
+ } else {
+ debug = false;
+ }
+
+ }
+
+ private boolean listRequest(String from, String To) throws UnsupportedEncodingException {
+
+ Integer x = new Integer(from);
+
+ seqNumFrom = x.intValue();
+
+ Integer y = new Integer(To);
+
+ if ((y.intValue() - seqNumFrom) > 50) {
+ maxCount = 50;
+ } else {
+ maxCount = y.intValue() - x.intValue();
+ }
+ if (maxCount == 0) {
+ maxCount = 1;
+ }
+
+ reqtype = 1;
+ buildquery();
+ return (Send());
+ }
+
+ private boolean approveRequest() throws UnsupportedEncodingException {
+
+ boolean st = true;
+
+ listRequest(approveseqnumFrom, approveseqnumTo);
+
+ if (seqNum.isEmpty()) {
+ System.out.println("No Requests for approval");
+ return false;
+ }
+
+ if (approveseqnum.length() > 0) {
+ if (seqNum.contains(approveseqnum)) {
+ seqNum.removeAllElements();
+ seqNum.addElement(approveseqnum);
+ } else {
+ System.out.println(
+ " Seq num " + approveseqnum + " already approved ");
+ return false;
+ }
+ } else {
+ System.out.println(
+ " Seq num not specified . Approving all pending request From : "
+ + approveseqnumFrom + " To : " + approveseqnumTo);
+ }
+
+ boolean flag = true;
+
+ Integer y = new Integer(approveseqnumTo);
+ int torequest = y.intValue();
+
+ while (flag) {
+
+ i = 0;
+ while (i < seqNum.size()) {
+
+ approveseqnum = (seqNum.elementAt(i)).toString();
+ // Get request details
+ reqtype = 2;
+ buildquery();
+ if (!Send()) {
+ System.out.println("Error : Getting Request details ");
+ i++;
+ continue;
+ }
+
+ if (debug) {
+ System.out.println(
+ csrRequestorName + " " + csrRequestorPhone + " "
+ + csrRequestorEmail + " " + requestID + " "
+ + subject);
+ }
+ // Now for pending status - approve the request
+ reqtype = 3;
+ buildquery();
+ if (!Send()) {
+ System.out.println(
+ "Error: Approving request " + approveseqnum);
+ i++;
+ continue;
+ }
+ System.out.println("Request " + approveseqnum + " is approved ");
+ totalNumApproved++;
+ i++;
+ }
+ Integer x = new Integer(approveseqnum);
+
+ if (x.intValue() >= torequest) {
+ flag = false;
+ } else {
+ listRequest(approveseqnum, approveseqnumTo);
+ }
+
+ }
+ return st;
+ }
+
+ /**
+ * Use this method when you need to use properties file.
+ * @throws UnsupportedEncodingException
+ */
+
+ public int processRequest() throws UnsupportedEncodingException {
+ if (propfileName != null) {
+ readProperties();
+ }
+
+ if (approveseqnum.length() > 0) {
+ approveseqnumFrom = approveseqnum;
+ approveseqnumTo = approveseqnum;
+ }
+
+ type = type.toLowerCase();
+ if (type.equals("approve")) {
+ if (approveRequest()) {
+ System.out.println("Approve Request :" + totalNumApproved);
+ return totalNumApproved;
+ } else {
+ return -1;
+ }
+
+ }
+
+ if (type.equals("list")) {
+
+ if (listRequest(approveseqnumFrom, approveseqnumTo)) {
+ System.out.println("List Request : " + seqNum.size());
+ if (seqNum.size() > 0) {
+ return seqNum.size();
+ } else {
+ return 0;
+ }
+ } else {
+ return -1;
+ }
+
+ }
+
+ return -1;
+ }
+
+ public static void main(String args[]) {
+ // Exit Status - (0) for error
+ // - any number > 0 Pass
+ int st = 0;
+
+ if (args.length < 1) {
+ System.out.println("Usage : propertiesfile");
+ System.exit(0);
+ }
+
+ Request t = new Request(args[0]);
+
+ try {
+ st = t.processRequest();
+ } catch (UnsupportedEncodingException e) {
+ System.out.println(e);
+ e.printStackTrace();
+ }
+ if (st == -1) {
+ System.exit(0);
+ } else {
+ System.exit(st);
+ }
+
+ }// end of function main
+
+} // end of class
+
diff --git a/base/silent/src/com/netscape/pkisilent/common/ServerInfo.java b/base/silent/src/com/netscape/pkisilent/common/ServerInfo.java
new file mode 100644
index 000000000..f63456b4d
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/ServerInfo.java
@@ -0,0 +1,355 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.net.InetAddress;
+import java.util.StringTokenizer;
+
+/**
+ * CMS Test framework .
+ * This class fetches all the necssary ServerInformation to run the test . For example AdminServer information linke
+ * port , hsotname, Config LDAP server port, CMS servers Agentport,AdminPort, EESSL port, EE port etc..
+ */
+
+public class ServerInfo {
+
+ public String serverRoot, instanceRoot, instanceID;
+ public String ldapPort, ldapHost, ldapSSLPort, ldapBaseSuffix, adminPort, admDN, admDNPW, singleSignOnPWD, domain;
+ public String caSigningCertNickName, raSigningCertNickName, ocspSigningCertNickName, kraTransportCertNickName;
+ public String ServerCertNickName, CertAuthority;
+ public String CMSAgentPort, CMSEESSLPort, CMSEEPort, CMSAdminPort, IDBPort;
+
+ public static CMSProperties props = null;
+ public static CMSProperties CMSprops = null;
+
+ // Private variables
+ private int i;
+ public String CMSConfigFile, AdminConfigFile;
+
+ public ServerInfo() {
+ }
+
+ /**
+ * Constructor. Takes Server root as parameter for example ( /export/qa). Reads and collects information about
+ * adminserver and Config LDAP server.
+ */
+ public ServerInfo(String sroot) {
+ serverRoot = sroot;
+ AdminConfigFile = serverRoot + "/admin-serv/config/adm.conf";
+ readAdminConfig();
+ SystemInfo();
+ }
+
+ /**
+ * Constructor. Takes Serverroot ( /export/qa) and instanceRoot (/export/qa/cert-jupiter2) as parameters . Reads and
+ * collects information about Admin Server , Config LDAP server and CMS server .
+ */
+
+ public ServerInfo(String sroot, String instRoot) {
+ serverRoot = sroot;
+ instanceRoot = instRoot;
+ CMSConfigFile = instanceRoot + "/config/CS.cfg";
+ AdminConfigFile = serverRoot + "/admin-serv/config/adm.conf";
+ instanceID = instanceRoot.substring(instanceRoot.indexOf("cert-") + 5);
+ readAdminConfig();
+ SystemInfo();
+ parseServerXML();
+ readCMSConfig();
+ }
+
+ public String GetAdminPort() {
+ return adminPort;
+ }
+
+ public String GetConfigLDAPPort() {
+ return ldapPort;
+ }
+
+ public String GetHostName() {
+ if (domain.indexOf(".") > 0) {
+ return domain.substring(0, domain.indexOf("."));
+ } else {
+ return domain;
+ }
+ }
+
+ public String GetInstanceID() {
+ return instanceID;
+ }
+
+ public String GetCMSConfigFileName() {
+ return CMSConfigFile;
+ }
+
+ public String GetDomainName() {
+ return ldapHost.substring(ldapHost.indexOf(".") + 1);
+ }
+
+ public String GetAgentPort() {
+ return CMSAgentPort;
+ }
+
+ public String GetEESSLPort() {
+ return CMSEESSLPort;
+ }
+
+ public String GetEEPort() {
+ return CMSEEPort;
+ }
+
+ public String GetCMSAdminPort() {
+ return CMSAdminPort;
+ }
+
+ public String GetInternalDBPort() {
+ return IDBPort;
+ }
+
+ public String GetCertAuthority() {
+ return CertAuthority;
+ }
+
+ public String GetCASigningCert() {
+ return caSigningCertNickName;
+ }
+
+ public String GetRASigningCert() {
+ return raSigningCertNickName;
+ }
+
+ public String GetServerCertNickName() {
+ return ServerCertNickName;
+ }
+
+ public void setInstanceRoot(String instRoot) {
+ instanceRoot = instRoot;
+ CMSConfigFile = instanceRoot + "/config/CS.cfg";
+ AdminConfigFile = serverRoot + "/admin-serv/config/adm.conf";
+ instanceID = instanceRoot.substring(instanceRoot.indexOf("cert-") + 5);
+ SystemInfo();
+ parseServerXML();
+ readCMSConfig();
+ }
+
+ // Private functions
+ private void SystemInfo() {
+ try {
+ domain = InetAddress.getLocalHost().getHostName();
+ System.out.println("Debu:SystemInfo " + domain);
+ } catch (Exception e) {
+ System.out.println("Exception InetAddress : " + e.getMessage());
+ }
+
+ }
+
+ private void parseServerXML() {
+ int AGENT = 1;
+ int ADMIN = 2;
+ int EE_SSL = 3;
+ int EE_NON_SSL = 4;
+ int IP = 5;
+ int PORT = 6;
+ BufferedReader in = null;
+
+ try {
+ String xmlFilePath = instanceRoot + "/config/server.xml";
+
+ in = new BufferedReader(new FileReader(xmlFilePath));
+ String s = in.readLine();
+
+ while (s != null) {
+ // <LS id="agent" ip="0.0.0.0" port="8101" security="on"
+ // acceptorthreads="1" blocking="no">
+ if (s.startsWith("<LS id=")) {
+ StringTokenizer st = new StringTokenizer(s, "\"");
+ int index1 = 5, index2 = 3;
+
+ while (st.hasMoreTokens()) {
+ String token = st.nextToken();
+
+ if (token.equalsIgnoreCase("agent")) {
+ index1 = AGENT;
+ } else if (token.equalsIgnoreCase("admin")) {
+ index1 = ADMIN;
+ } else if (token.equalsIgnoreCase("eeSSL")) {
+ index1 = EE_SSL;
+ } else if (token.equalsIgnoreCase("ee_nonSSL")) {
+ index1 = EE_NON_SSL;
+ } else if (token.equals(" ip=")) {
+ index2 = IP;
+ } else if (token.equals(" port=")) {
+ index2 = PORT;
+ }
+
+ if (index1 != 5 && index2 == IP && !token.equals(" ip=")) {
+ // token contains the ip value
+ } else if (index2 == PORT && !token.equals(" port=")) {
+
+ switch (index1) {
+ case 1:
+ CMSAgentPort = token;
+ break;
+
+ case 2:
+ CMSAdminPort = token;
+ break;
+
+ case 3:
+ CMSEESSLPort = token;
+ break;
+
+ case 4:
+ CMSEEPort = token;
+ break;
+
+ default:
+ break;
+
+ }
+
+ break;
+ }
+ } // while token
+ } // if LS
+ s = in.readLine();
+ } // while file no end
+ in.close();
+ } catch (Exception e) {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (Exception ex) {
+ }
+ }
+ }
+ }
+
+ private String stripSpace(String s) {
+
+ String val = "";
+
+ for (int i = 0; i < s.length(); i++) {
+ if ((s.charAt(i) == ' ')) {
+ i++;
+ continue;
+ } else {
+ val += s.charAt(i);
+ }
+ }
+ return val;
+ }
+
+ private void readAdminConfig() {
+ String ldapHostStr = "ldapHost:";
+ String ldapPortStr = "ldapPort:";
+ String adminPortStr = "port:";
+
+ try {
+ FileInputStream fis = new FileInputStream(AdminConfigFile);
+ int size = fis.available();
+ byte b[] = new byte[size];
+
+ if (fis.read(b) != b.length) {
+ System.out.println("Could not read ");
+
+ } else {
+ String tmpstr = new String(b, 0, b.length);
+ int ret;
+
+ if ((ret = tmpstr.indexOf(ldapHostStr)) > -1) {
+ ldapHost = tmpstr.substring(ret + ldapHostStr.length() + 1,
+ tmpstr.indexOf("ldapPort", ret) - 1);
+ ldapHost = stripSpace(ldapHost);
+ // System.out.println(ldapPort);
+ }
+
+ if ((ret = tmpstr.indexOf(ldapPortStr)) > -1) {
+ ldapPort = tmpstr.substring(ret + ldapPortStr.length() + 1,
+ tmpstr.indexOf("sie", ret) - 1);
+ ldapPort = stripSpace(ldapPort);
+ // System.out.println(ldapPort);
+ }
+ if ((ret = tmpstr.indexOf(adminPortStr)) > -1) {
+ adminPort = tmpstr.substring(ret + adminPortStr.length() + 1,
+ tmpstr.indexOf("ldapStart", ret) - 1);
+ adminPort = stripSpace(adminPort);
+ // System.out.println(adminPort);
+ }
+
+ }
+
+ fis.close();
+ } catch (Exception e) {
+ System.out.println("exception " + e.getMessage());
+ }
+
+ }
+
+ private void readCMSConfig() {
+
+ try {
+ FileInputStream fis = new FileInputStream(CMSConfigFile);
+
+ CMSprops = new CMSProperties();
+ CMSprops.load(fis);
+ System.out.println("Reading CMS Config file successful");
+ CertAuthority = CMSprops.getProperty("subsystem.0.id");
+ if (CertAuthority.equals("ca")) {
+ caSigningCertNickName = CMSprops.getProperty(
+ "ca.signing.cacertnickname");
+ ServerCertNickName = "Server-Cert cert-" + instanceID;
+ }
+ if (CertAuthority.equals("ra")) {
+ raSigningCertNickName = CMSprops.getProperty(
+ "ra.signing.cacertnickname");
+ ServerCertNickName = "Server-Cert cert-" + instanceID;
+ }
+ IDBPort = CMSprops.getProperty("internaldb.ldapconn.port");
+
+ fis.close();
+ } catch (Exception e) {
+ System.out.println("exception " + e.getMessage());
+ }
+
+ }
+
+ public static void main(String args[]) {
+ ServerInfo s = new ServerInfo("Test", "Test");
+
+ System.out.println(" Admin Port : " + s.GetAdminPort());
+ System.out.println(" LDAP Port : " + s.GetConfigLDAPPort());
+ System.out.println("Hostname " + s.GetHostName());
+ System.out.println("InstanceID" + s.GetInstanceID());
+ System.out.println(" doamin name : " + s.GetDomainName());
+ System.out.println("AgentPort " + s.GetAgentPort());
+ System.out.println("EESSLPort " + s.GetEESSLPort());
+ System.out.println("EEPort " + s.GetEEPort());
+ System.out.println("CMSAdminPort :" + s.GetCMSAdminPort());
+ System.out.println("CAAuthority : " + s.GetCertAuthority());
+ System.out.println("CASigningCert:" + s.GetCASigningCert());
+ System.out.println("RASigningCert:" + s.GetRASigningCert());
+ System.out.println("ServerCert" + s.GetServerCertNickName());
+
+ }// end of function main
+
+} // end of class
+
diff --git a/base/silent/src/com/netscape/pkisilent/common/TestClient.java b/base/silent/src/com/netscape/pkisilent/common/TestClient.java
new file mode 100644
index 000000000..0e4ed9cdd
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/TestClient.java
@@ -0,0 +1,941 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.net.ServerSocket;
+import java.util.Properties;
+
+import org.mozilla.jss.crypto.X509Certificate;
+import org.mozilla.jss.ssl.SSLCertificateApprovalCallback;
+
+/**
+ * CMS Test framework .
+ * Before createing an instance of this class make sure you havae set an environment variable TEST_CONFIG_FILE.
+ */
+
+public class TestClient implements SSLCertificateApprovalCallback {
+
+ public int port;
+
+ // properties file parameters
+ public static String host, ports, adminid, adminpwd, propfileName, cdir;
+ public static String certnickname, keysize, keytype, tokenpwd;
+ public static String serverRoot, instanceRoot, ldaprootDN, ldaprootDNPW, caInstanceRoot, dataDirectory;
+
+ // Program variables
+ public String STATUS;
+ public Properties props = null;
+ public String ACTION_STRING;
+ public String query;
+ public boolean debug = false;
+ // Certificate nicknames to be used by Test Clients
+ private int i;
+ private String testConfigFile;
+
+ public String caAgentCertName = "ca-agent";
+ public String raAgentCertName = "ra-agent";
+ public String ocspAgentCertName = "ocsp-agent";
+ public String kraAgentCertName = "kra-agent";
+ public String tksAgentCertName = "tks-agent";
+ public String singleSignOnPWD = "secret12";
+ public String adminCertName = "cn=admin";
+ private String ldapBaseSuffix = "dc=netscape,dc=com";
+ private String admDN = "admin";
+ private String admDNPW = "admin";
+ private String TmpDir;
+ private String TestLogFile;
+ private String startupTests, cleanupTests;
+
+ private X509Certificate SSLServerCert = null;
+
+ // Cert Sub vart
+ public String UID, OU, O, DN, E, CN, C, GN, SN, L, MAIL;
+ // Enroll
+ protected String PWD;
+ // CRypto
+ public ComCrypto cCrypt = new ComCrypto();
+ public String pkcs10request = null;
+
+ // Error
+
+ public String ErrorDetail;
+
+ private String serverKeyType, serverKeySize, serverKeyAlgo;
+
+ private String unauth[] = {
+ "Unauthorized Access", "Server Error",
+ "Not Found", "Generic Unauthorized" };
+
+ public boolean approve(X509Certificate x509, SSLCertificateApprovalCallback.ValidityStatus status) {
+ SSLServerCert = x509;
+ return true;
+ }
+
+ // Constructor
+
+ public TestClient() {
+ keysize = "1024";
+ keytype = "RSA";
+ }
+
+ /**
+ * Constructor . Takes the parameter for keysize and keytype .
+ * Before creating a new instance of this class make sure you have set TEST_CONFIG_FILE variable in your
+ * environnemt.
+ * Reads the TEST_CONFIG_FILE . Initializes the certificate database. See engage.cfg file for example.
+ *
+ * @param keysize
+ * @param keytype
+ */
+
+ public TestClient(String ks, String kt) {
+
+ testConfigFile = ReadEnv("TEST_CONFIG_FILE");
+
+ System.out.println(testConfigFile);
+ readConfigFile();
+ keysize = ks;
+ keytype = kt;
+ cCrypt.setCertDir(cdir);
+ cCrypt.setCertnickname(adminCertName);
+ cCrypt.setKeySize(keysize);
+ cCrypt.setKeyType(keytype);
+ cCrypt.setTokenPWD(tokenpwd);
+ cCrypt.setDebug(true);
+ cCrypt.CreateCertDB();
+
+ }
+
+ /**
+ * Gets the SSLServer Certificate of the server
+ */
+
+ public X509Certificate getSSLServerCert() {
+ return SSLServerCert;
+ }
+
+ /**
+ * finds the cert with nickname cname in the clients cert database
+ */
+
+ public X509Certificate findCertByNickname(String cname) {
+
+ return cCrypt.findCert(cname);
+
+ }
+
+ /**
+ * Imports certificate to cert database.Takes parameters Certpackage and certnickname
+ */
+ boolean importCert(String cp, String nickname) {
+
+ return cCrypt.importCert(cp, nickname);
+
+ }
+
+ /**
+ * This function returns true if you choose to executeStartupTests
+ */
+
+ public boolean executeStartupTests() {
+
+ if (startupTests == null) {
+ return false;
+ } else if (startupTests.equals("y")) {
+ return true;
+ } else {
+ return false;
+ }
+
+ }
+
+ /**
+ * This function returns true if you choose to executeCleanupTests
+ */
+
+ public boolean executeCleanupTests() {
+
+ if (cleanupTests == null) {
+ return false;
+ } else if (cleanupTests.equals("y")) {
+ return true;
+ } else {
+ return false;
+ }
+
+ }
+
+ public String GetServerRoot() {
+ return serverRoot;
+ }
+
+ public String GetInstanceRoot() {
+ return instanceRoot;
+ }
+
+ public String getErrorDetail() {
+ return ErrorDetail;
+ }
+
+ public String GetAdminDN() {
+ return admDN;
+ }
+
+ public String GetAdminDNPWD() {
+ return admDNPW;
+ }
+
+ public String GetLDAPDN() {
+ return ldaprootDN;
+ }
+
+ public String GetLDAPDNPW() {
+ return ldaprootDNPW;
+ }
+
+ public String GetLDAPBASE() {
+ return ldapBaseSuffix;
+ }
+
+ public String GetAdminCertName() {
+ return adminCertName;
+ }
+
+ public String GetRAAgentCertName() {
+ return raAgentCertName;
+ }
+
+ public String GetKRAAgentCertName() {
+ return kraAgentCertName;
+ }
+
+ public String GetOCSPAgentCertName() {
+ return ocspAgentCertName;
+ }
+
+ public String GetTKSAgentCertName() {
+ return tksAgentCertName;
+ }
+
+ public String GetDataDirectory() {
+ return dataDirectory;
+ }
+
+ public String GetClientCertDB() {
+ return cdir;
+ }
+
+ public String GetClientCertDBPW() {
+ return tokenpwd;
+ }
+
+ public String GetSingleSignOnPW() {
+ return singleSignOnPWD;
+ }
+
+ public String GetCARoot() {
+ return caInstanceRoot;
+ }
+
+ public String GetTmpDir() {
+ return TmpDir;
+ }
+
+ public String GetServerKeySize() {
+ return serverKeySize;
+ }
+
+ public String GetServerKeyType() {
+ return serverKeyType;
+ }
+
+ public String GetServerKeyAlgorithm() {
+ return serverKeyAlgo;
+ }
+
+ public void setStatusString(String ststr) {
+ STATUS = ststr;
+ }
+
+ public void setDebug(boolean t) {
+ debug = t;
+ }
+
+ public void setpkcs10Request(String t) {
+ pkcs10request = t;
+ }
+
+ public void setHostName(String s) {
+ host = s;
+ }
+
+ public void setCARoot(String s) {
+ caInstanceRoot = s;
+ }
+
+ public void setTestLogFile(String s) {
+ TestLogFile = s;
+ }
+
+ /**
+ * parses a http page and returns true if any error is returned by server
+ **/
+
+ public boolean getError(String line) {
+
+ int ret;
+
+ ret = line.indexOf("fixed.errorDetails");
+
+ if (line.indexOf("fixed.errorDetails") == 0) {
+ ErrorDetail = line.substring(
+ ret + ("fixed.errorDetails = ").length());
+ return true;
+ }
+
+ if (line.indexOf("fixed.errorDetails") >= 0) {
+ ErrorDetail = line.substring(
+ ret + ("fixed.errorDetails = ").length());
+ return true;
+ }
+
+ ret = line.indexOf("fixed.unexpectedError");
+
+ if (line.indexOf("fixed.unexpectedError") == 0) {
+ System.out.println("Processing unexpectedError");
+ ErrorDetail = line.substring(
+ ret + ("fixed.unexpectedError = ").length());
+ return true;
+ }
+
+ if (line.indexOf(unauth[0]) > 0) {
+ ErrorDetail = unauth[0];
+ return true;
+ }
+ if (line.indexOf(unauth[1]) > -1) {
+ ErrorDetail = unauth[1];
+ return true;
+ }
+ if (line.indexOf(unauth[2]) > -1) {
+ ErrorDetail = unauth[2];
+ return true;
+ }
+ if (line.indexOf(unauth[3]) > -1) {
+ ErrorDetail = unauth[3];
+ return true;
+ }
+
+ if (line.indexOf("errorReason") >= 0) {
+ ErrorDetail = line.substring(ret + ("errorReason=").length());
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Reads a properties file . Takes filename as input parameter.
+ */
+
+ public void getProperties(String fileName) throws Exception {
+ try {
+ FileInputStream fis = new FileInputStream(fileName);
+
+ props = new Properties();
+ props.load(fis);
+ } catch (Exception e) {
+ System.out.println("exception " + e.getMessage());
+ }
+
+ }
+
+ public String ReadEnv(String str) {
+ try {
+ Process p = null;
+ Runtime r = Runtime.getRuntime();
+ String OS = System.getProperty("os.name").toLowerCase();
+
+ if (OS.indexOf("windows") > 1) {
+ p = r.exec("cmd.exe /c set");
+ } else {
+ p = r.exec("env");
+ }
+
+ BufferedReader br = new BufferedReader(
+ new InputStreamReader(p.getInputStream()));
+ String line;
+
+ while ((line = br.readLine()) != null) {
+ int idx = line.indexOf('=');
+ String key = line.substring(0, idx);
+ String value = line.substring(idx + 1);
+
+ // System.out.println(key + "=" + value);
+ if (key.startsWith(str)) {
+ return value;
+ }
+ }
+ return null;
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ private void readConfigFile() {
+ try {
+ getProperties(testConfigFile);
+ } catch (Exception e) {
+ System.out.println(
+ "exception reading TestConfigFile " + e.getMessage());
+ }
+
+ serverRoot = props.getProperty("SROOT");
+ instanceRoot = props.getProperty("IROOT");
+ dataDirectory = props.getProperty("DATA_DIR");
+ ldapBaseSuffix = props.getProperty("LDAPBASESUFFIX");
+
+ if (ldapBaseSuffix.indexOf("\"") > -1) {
+ ldapBaseSuffix = ldapBaseSuffix.substring(1,
+ ldapBaseSuffix.length() - 1);
+ }
+
+ ldaprootDN = props.getProperty("LDAPROOTDN");
+ // Strip of th e quotes "cn=directory manager" string
+ if (ldaprootDN.indexOf("\"") > -1) {
+ ldaprootDN = ldaprootDN.substring(1, ldaprootDN.length() - 1);
+ }
+ System.out.println("ldaprootDN : " + ldaprootDN);
+
+ ldaprootDNPW = props.getProperty("LDAPROOTDNPW");
+ cdir = props.getProperty("CERTDB");
+ tokenpwd = props.getProperty("CERTDBPW");
+ caInstanceRoot = props.getProperty("CAIROOT");
+ admDN = props.getProperty("ADMINDN");
+ admDNPW = props.getProperty("ADMINDNPW");
+ singleSignOnPWD = props.getProperty("SINGLESIGNONPW");
+ serverKeySize = props.getProperty("KEYSIZE");
+ serverKeyType = props.getProperty("KEYTYPE");
+ serverKeyAlgo = props.getProperty("KEYALGORITHM");
+
+ TmpDir = props.getProperty("TMP_DIR");
+ TestLogFile = props.getProperty("TEST_LOG_FILE");
+
+ String de = props.getProperty("DEBUG");
+
+ if (de == null) {
+ debug = false;
+ } else if (de.equals("true")) {
+ debug = true;
+ } else {
+ debug = false;
+ }
+
+ }
+
+ /**
+ * returns a String representation of an interger
+ */
+ public String getString(int m) {
+ Integer x = new Integer(m);
+ String s = x.toString();
+
+ return s;
+ }
+
+ /**
+ * returns FreePort in this machine . Takes a parmater portnumber. For example getFreePort("4026").
+ */
+ public String getFreePort(String s) {
+ Integer x = new Integer(s);
+ int p = x.intValue();
+
+ // if p = 0, then the serversocket constructor get a free port by itself
+ p = 0;
+ try {
+ ServerSocket ss1 = new ServerSocket(p);
+
+ p = ss1.getLocalPort();
+ System.out.println("Obtained Free Port = " + p);
+ ss1.close();
+ return (getString(p));
+ } catch (Exception e) {
+ System.out.println("Unable to get Free Port");
+ e.printStackTrace();
+ p = 0;
+ return (getString(p));
+ }
+
+ // This following method doesn't Always get a free port.
+ // while (st) {
+ // if(isSocketUnused(host,p) )
+ // st=false;
+ // p++;
+ // }
+ // return (getString(p));
+
+ }
+
+ /**
+ * Reads a file and returns the cert request as string
+ **/
+
+ public String readRequest(String filename) {
+ try {
+ FileInputStream f1 = new FileInputStream(filename);
+ int size = f1.available();
+ byte b[] = new byte[size];
+
+ if (f1.read(b) != b.length) {
+ return null;
+ }
+
+ f1.close();
+ String s = new String(b);
+
+ return s;
+ } catch (Exception e) {
+ System.out.println("exception " + e.getMessage());
+ return null;
+ }
+ }
+
+ public static void main(String args[]) {
+ TestClient t = new TestClient("1024", "RSA");
+
+ /*
+ *******************************************************************
+ * Sample programs to initialze calsses
+ *******************************************************************
+ */
+
+ /*
+ ********************************************************************
+ * To Test AutoInstaller
+ *******************************************************************
+ */
+
+ /*
+ AutoInstaller a = new AutoInstaller(t.GetServerRoot());
+
+ ServerInfo s = new ServerInfo(t.GetServerRoot());
+ System.out.println (" Admin Port : " + s.GetAdminPort());
+ System.out.println (" LDAP Port : "+ s.GetConfigLDAPPort());
+ System.out.println( "Hostname " + s.GetHostName());
+ System.out.println(" doamin name : " + s.GetDomainName());
+
+ t.setHostName(s.GetHostName());
+ // Set adminServer Info
+ a.setAdminInfo(s.GetHostName(),s.GetAdminPort(),s.GetDomainName(),"admin","admin");
+ a.setAdminInfo(s.GetHostName(),s.GetAdminPort(),"mcom.com","admin","admin");
+
+ // setCAInfo
+ a.setCAInfo(s.GetHostName(),"1027","8100","admin","secret12");
+ //setInternalDB info
+ String dp = t.getFreePort("38900");
+ a.setInternalDBInfo(s.GetHostName(),"38907","ca-db","cn=directory manager","secret12" );
+
+ // set tokenInfo
+
+ a.setTokenInfo("Internal","secret12");
+
+ // set Subsystem info
+ String agp = t.getFreePort("8100");
+ String adp = t.getFreePort("8200");
+ String eesp = t.getFreePort("1027");
+ String eep = t.getFreePort("1100");
+
+ System.out.println(agp);
+
+ a.setSubSystemInfo("testra",t.GetServerRoot(),"RSA","1024","MD5","365","cn=certificate manager,ou=test,o=test",adp,agp,eesp,eep);
+
+ a.setClientDBInfo(t.GetClientCertDB(),"secret12",t.GetAdminCertName());
+
+ a.ConfigureCA("admin","admin","secret12","secret12");
+
+ // a.ConfigureRA("admin","admin","secret12","secret12");
+
+ */
+
+ /*
+ ******************************************************
+ * Example to Get Server Details
+ ******************************************************
+ */
+
+ ServerInfo s = new ServerInfo(t.GetServerRoot(), t.GetInstanceRoot());
+
+ t.setHostName(s.GetHostName());
+
+ System.out.println("AgentPort " + s.GetAgentPort());
+ System.out.println("EESSLPort " + s.GetEESSLPort());
+ System.out.println("EEPort " + s.GetEEPort());
+ System.out.println("CMSAdminPort :" + s.GetCMSAdminPort());
+ System.out.println("IDBPort : " + s.GetInternalDBPort());
+ System.out.println("CAAuthority : " + s.GetCertAuthority());
+ System.out.println("CASigningCert:" + s.GetCASigningCert());
+ System.out.println("RASigningCert:" + s.GetRASigningCert());
+ System.out.println("ServerCert" + s.GetServerCertNickName());
+ System.out.println("------------------------------------------");
+ System.out.println(" Internal Database Test:");
+ System.out.println(" LDAP Port : " + s.GetConfigLDAPPort());
+ System.out.println("Hostname " + s.GetHostName());
+
+ DirEnroll de = new DirEnroll(s.GetHostName(), s.GetEESSLPort());
+
+ de.setAuthenticator("Portal");
+ de.setUIDInfo("caeetest110", "secret12");
+ de.enroll();
+
+ /* ****************************************************************
+ * CMC Enroll
+ ***************************************************************
+ */
+
+ /* CMSUtils cmsutils = new CMSUtils(t.GetServerRoot());
+ String requestfile="/u/lgopal/work/tetCMS/ns/tetframework/testcases/CMS/6.0/acceptance/data/basic/cmcreq/cmctest1.req";
+ cmsutils.runCMCEnroll(t.GetClientCertDB(),"cn=admin",t.GetClientCertDBPW(),requestfile);
+ Profiles pr = new Profiles(s.GetHostName(),s.GetEESSLPort());
+ pr.setProfileType("caCMCUserCert");
+ pr.setCertAuthority("ca");
+
+ String request = t.readRequest(requestfile+".out");
+ String bstr = "-----BEGIN NEW CERTIFICATE REQUEST-----";
+ String estr="-----END NEW CERTIFICATE REQUEST-----";
+ String Blob1 = request.substring(bstr.length() + 1);
+ String Blob2 = Blob1.substring(0,Blob1.indexOf(estr));
+ request=Blob2;
+
+
+ pr.setRequest(request);
+
+ pr.setUserInfo("UID=test1,Ou=netscape,o=aol","test","test","test","netscape","aol");
+ pr.clientCertEnroll();
+ */
+
+ /* ****************************************************************
+ * OCSP Client stuff
+ ************************************************************
+ */
+
+ /*
+ String ip= "10.169.25.26";
+ OCSPClient ocspclient= new OCSPClient(s.GetHostName(),ip,s.GetEEPort(),t.GetClientCertDB(),t.GetClientCertDBPW(),"cn=admin" ,"/tmp/ocsp.out","4");
+ ocspclient.setCert(t.findCertByNickname("ocsp-agent"));
+
+ ocspclient.SendOCSPRequest();
+ */
+
+ /*
+ *****************************************************
+ * Test CRMFcleint and KRA REcovery and Archival
+ *****************************************************
+ */
+
+ /*
+ *********************************************************
+ * OCSP Agent stuff
+ *********************************************************
+ */
+
+ /* Retrieval rtr = new Retrieval(s.GetHostName(),s.GetEESSLPort());
+ rtr.getCACert();
+ System.out.println("CA Cert chain" + rtr.getCert());
+
+ OcspAgent ocspAgent= new OcspAgent(s.GetHostName(),"8111");
+ ocspAgent.setAgentCertName(t.GetOCSPAgentCertName());
+
+ String cert = "-----BEGIN CERTIFICATE-----"+"\n"+rtr.getCert()+"\n"+"-----END CERTIFICATE-----\n";
+
+ ocspAgent.setCACert(cert);
+ ocspAgent.addCA();
+ */
+
+ /*
+ ***************************************************************
+ Submit Profile based request
+ *********************************************************
+ */
+
+ /*
+ Profiles pr = new Profiles(s.GetHostName(),s.GetEESSLPort());
+ pr.setProfileType("caUserCert");
+ // pr.setProfileType("caDirUserCert");
+
+ pr.setCertAuthority("ca");
+ pr.setUserInfo("UID=test1,Ou=netscape,o=aol","test","test","test","netscape","aol");
+ //pr.setDirUserInfo("test","netscape");
+ pr.clientCertEnroll();
+ System.out.println("Request ID is " + pr.getRequestID());
+
+
+ Request re = new Request (s.GetHostName(),s.GetAgentPort(),"ca");
+ re.setAgentCertName(t.GetAdminCertName());
+ re.ApproveProfileRequests(pr.getRequestID());
+ */
+
+ /*
+ String TransportCert="MIICJTCCAY6gAwIBAgIBBTANBgkqhkiG9w0BAQQFADBDMRswGQYDVQQKExJhY2NlcHRhY25ldGVzdDEwMjQxFzAVBgNVBAsTDmFjY2VwdGFuY2V0ZXN0MQswCQYDVQQDEwJjYTAeFw0wMzA0MjMyMTM3NTFaFw0wNDA0MjIwOTMzMzFaMDkxETAPBgNVBAoTCHRlc3QxMDI0MRcwFQYDVQQLEw5hY2NlcHRhbmNldGVzdDELMAkGA1UEAxMCcmEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANVW81T7GatHIB25kF0jdY4h4hOF1NAlAHE2YdN/UEyXuU22CfwrIltA3x/6sKFHhbbFysn6nGJlgKipPJqJDwyYTIv07hgoXqgcUu8fSYQg4BDHYhpHJxsUt3BSfADTjxAUHize7C2F8TVhBIcWW043FSkwvAiUjJb7uqQRKn7lAgMBAAGjMzAxMA4GA1UdDwEB/wQEAwIFIDAfBgNVHSMEGDAWgBTqvc3UPGDSWq+21DZGSUABNGIUbDANBgkqhkiG9w0BAQQFAAOBgQCNLJivNDHTTmCb2vDefUwLMxXNjuHwrbjVqymHPFqUjredTq2Yp+Ed1zxj+mxRovzegd65Tbnx+MV84j8K3Qc1kWOC+kbohAY9svSPsN3o5Q5BB19+5nUPC5Gk/mxkWJWWJLOnpKJGiAHMZIr58TH7hF8KQWXWMN9ikSFkPj0a/g==";
+
+
+ CRMFClient CrmfClient = new CRMFClient(s.GetHostName(),s.GetEEPort());
+ CrmfClient.setDBInfo(t.GetClientCertDB(),t.GetClientCertDBPW());
+ CrmfClient.setTransportCert(TransportCert);
+ CrmfClient.setUserInfo("user","netscape");
+ CrmfClient.setLDAPInfo(t.GetLDAPDN(),t.GetLDAPDNPW());
+ CrmfClient.setDualKey(true);
+
+ if(!CrmfClient.Enroll())
+ {System.out.println("CRMFClient : could not submit request");}
+
+
+ checkRequest cr = new checkRequest(s.GetHostName(),s.GetEESSLPort(),t.getString(CrmfClient.getRequestId()),"false");
+ cr.checkRequestStatus();
+ System.out.println("Serial num " + cr.getSerialNumber());
+ System.out.println("cert pack " + cr.getCert());
+
+ KraAgent kraAgent = new KraAgent(s.GetHostName(),"8111");
+ kraAgent.setAgentCertName("cn=admin");
+ System.out.println("KRAAgent List archival");
+
+ Vector aReq= kraAgent.ListArchivalRequests();
+ int i=0;
+ while(i < aReq.size() )
+ {
+ System.out.print(aReq.elementAt(i) + " ");
+ i++;
+ }
+
+ kraAgent.setCertificate(cr.getCert());
+ kraAgent.setLocalAgent(false);
+ kraAgent.recoverKeys();
+ */
+
+ /*
+ *************************************************************
+ * Example to Connect oto Config Directory port
+ *************************************************************
+ */
+
+ /*
+ CMSLDAP cmsldap = new CMSLDAP(s.GetHostName(),s.GetConfigLDAPPort(),t.GetLDAPDN(),t.GetLDAPDNPW());
+ if(cmsldap.connect())
+ System.out.println("LDAP Connection successful");
+ else
+ System.out.println("Error Connecting to LDAPSERVER");
+
+ // Add user to config directoory
+ if (cmsldap.userAdd("ou=people,"+t.GetLDAPBASE(),"t2","t2","t2","netscape"))
+ System.out.println("Added user to Config directory");
+
+ */
+
+ /*
+ *************************************************************
+ * Example to Submit a CRMFCleint request to CA
+ *************************************************************
+ */
+
+ /*
+ String TransportCert =
+ "MIICJTCCAY6gAwIBAgIBBTANBgkqhkiG9w0BAQQFADBDMRswGQYDVQQKExJhY2NlcHRhY25ldGVzdDEwMjQxFzAVBgNVBAsTDmFjY2VwdGFuY2V0ZXN0MQswCQYDVQQDEwJjYTAeFw0wMzA0MTgyMjMwMDhaFw0wNDA0MTcxMDI2MDhaMDkxETAPBgNVBAoTCHRlc3QxMDI0MRcwFQYDVQQLEw5hY2NlcHRhbmNldGVzdDELMAkGA1UEAxMCcmEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAN6sQ3mSU8mL6i6gTZIXDLzOZPhYOkQLpnJjit5hcPZ0JMn0CQVXo4QjKN1xvuZv8qVlZoQw9czmzp/knTa0sCDgFKd0r+u0TnLeZkJMSimgFnma9CnChlaDHnBd8Beu4vyaHmo7rJ0xA4etn7HjhmKbaQZOcv/aP0SW9JXRga7ZAgMBAAGjMzAxMA4GA1UdDwEB/wQEAwIFIDAfBgNVHSMEGDAWgBSC3fsQHb7fddr2vL0UdkM2dAmUWzANBgkqhkiG9w0BAQQFAAOBgQBkAGbgd9HIqwoLKAr+V6bj9oWesDmDH80gPPxj10qyWSQYIs8PofOs/75yGS9nxhydtgSMFoBgCPdroUI31kZQQlFzxtudGoKD+5MWSXho79XzPwpjheOBYgpX6ch+L4tMLFDpqeraB1yZESO5EEeKm20DGVBOKVWxHhddO1BenA==";
+
+ CRMFClient CrmfClient = new CRMFClient(s.GetHostName(),s.GetEEPort());
+ CrmfClient.setDBInfo(t.GetClientCertDB(),t.GetClientCertDBPW());
+ CrmfClient.setTransportCert(TransportCert);
+ CrmfClient.setUserInfo("user","netscape");
+ CrmfClient.setLDAPInfo(t.GetLDAPDN(),t.GetLDAPDNPW());
+ CrmfClient.setDualKey(true);
+
+ if(!CrmfClient.Enroll())
+ {System.out.println("CRMFClient : could not submit request");}
+ */
+
+ /* KRA Agent list archived request */
+
+ /* ServerInfo KRAsvrInfo = new ServerInfo(t.GetServerRoot());
+ String KRAinstanceRoot=t.GetServerRoot() + "/cert-" + "KRARSA1024" ;
+ KRAsvrInfo.setInstanceRoot(KRAinstanceRoot);*/
+
+ /* System.out.println("KRAAgent ");
+ KraAgent kraAgent = new KraAgent(s.GetHostName(),s.GetAgentPort());
+ kraAgent.setAgentCertName(t.GetKRAAgentCertName());
+ System.out.println("KRAAgent List archival");
+
+ Vector aReq= kraAgent.ListArchivalRequests();
+ int i=0;
+ while(i < aReq.size() )
+ {
+ System.out.print(aReq.elementAt(i) + " ");
+ i++;
+ }
+
+ */
+
+ // cmsldap.disconnect();
+
+ /*
+ *************************************************************
+ * Example to submit manual user enrollment request
+ *************************************************************
+ /*
+
+
+ /*
+ UserEnroll ue = new UserEnroll(s.GetHostName(),"1029");
+ ue.setUserInfo("E=testman,CN=testman,OU=netscape,O=aol,UID=testman1,C=US","testman", "testman", "testman1", "netscape","t");
+
+ boolean flag = ue.clientCertEnroll();
+ if(flag)
+ System.out.println("Success submitted request");
+ */
+
+ /*
+ *************************************************************
+ * Example to submit Directory based enroolemt request
+ *************************************************************
+ /*
+
+ /*
+ // Add user to config directoory
+ if (cmsldap.userAdd("dc=netscape,dc=com","t2","t2","t2","netscape"))
+ System.out.println("Success ");
+
+ if(cmsldap.TurnOnSSL("slapd-jupiter2","Server-Cert cert-jupiter2","7000"))
+ System.out.println("Turned on ssl");
+ else
+ return;
+
+ cmsldap.TurnOffSSL();
+
+ cmsldap.disconnect();
+
+ DirEnroll de = new DirEnroll(s.GetHostName(),s.GetEESSLPort());
+ de.setUIDInfo("t2","netscape");
+ de.enroll();
+
+ */
+
+ /*
+ *************************************************************
+ * Example to submit Admin Enrollment request
+ *************************************************************
+ /*
+
+ /*
+
+ AdminEnroll ade = new AdminEnroll("jupiter2","8200","cn=CMS Administrator,UID=admin,C=US","admin", "secret12");
+ flag = ade.Enroll();
+ if (flag)
+ System.out.println("adminEnrolled Successfully");
+ */
+
+ /*
+ *************************************************************
+ * Example gent List Pending request
+ *************************************************************
+ /*
+
+ /*
+
+ // Agent List and Approve Request
+ Request re = new Request (s.GetHostName(),s.GetAgentPort(),s.GetCertAuthority());
+ re.setAgentCertName(t.GetAdminCertName());
+ re.ListPendingRequests("2","70");
+ re.ApproveRequests(t.getString(ue.getRequestId()));
+ */
+
+ /*
+ *************************************************************
+ * Example for CheckRequest Status and add the certificate to internal db
+ *************************************************************
+ /*
+
+ /*
+ // check request status and Revoke cert
+ checkRequest cr = new checkRequest(s.GetHostName(),s.GetEESSLPort(),t.getString(ue.getRequestId()),"false");
+ checkRequest cr = new checkRequest(s.GetHostName(),s.GetEESSLPort(),"1","false");
+
+ cr.checkRequestStatus();
+ System.out.println("Serial num " + cr.getSerialNumber());
+ System.out.println("cert pack " + cr.getCert());
+
+ String st= "-----BEGIN CERTIFICATE-----"+"\n"+cr.getCert()+"\n"+"-----END CERTIFICATE-----\n";
+ System.out.println("cert pack " + st);
+
+ cmsldap.getXCertificate(st.getBytes());
+
+ */
+
+ /*
+ *************************************************************
+ * Example agent ro revoke request
+ *************************************************************
+ /*
+
+ /*
+ Revoke rr = new Revoke (s.GetHostName(),s.GetAgentPort(),s.GetCertAuthority(),t.getString(cr.getSerialNumber()));
+ rr.revokeCerts();
+ */
+
+ /*
+ *************************************************************
+ * Example Agent update CRL
+ *************************************************************
+ /*
+
+ /*
+ // Update CRLand DISPLAY it
+
+ System.out.println("Displayin CRL");
+ CRL crl = new CRL (s.GetHostName(),s.GetAgentPort(),"/tmp/crlfile");
+ crl.setAgentCertName(t.GetAdminCertName());
+ crl.updateCRL();
+ crl.displayCRL();
+ crl.getRevokedCerts();
+ */
+
+ // Update CRL in Directory
+ /* UpdateDir dcrl = new UpdateDir(s.GetHostName(),s.GetEESSLPort());
+ dcrl.updateDir();*/
+
+ /*
+ *************************************************************
+ * Example for stopping and starting servers
+ *************************************************************
+ */
+
+ /*
+ DSTask idb = new DSTask(t.GetServerRoot()+"/slapd-jupiter2-db");
+ if (idb.ldapStop()) System.out.println("IDB stopped");
+ if(idb.ldapStart()) System.out.println("IDB Started");
+
+ System.out.println("------------------------------------------");
+ System.out.println(" CMS Test:");
+ CMSTask task = new CMSTask(t.GetInstanceRoot());
+ task.CMSStop();
+ task.CMSStart();
+ */
+
+ }// end of function main
+
+}
diff --git a/base/silent/src/com/netscape/pkisilent/common/UserEnroll.java b/base/silent/src/com/netscape/pkisilent/common/UserEnroll.java
new file mode 100644
index 000000000..c55088bc6
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/UserEnroll.java
@@ -0,0 +1,536 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+import org.mozilla.jss.ssl.SSLSocket;
+
+/**
+ * CMS Test framework .
+ * Submits Legacy Manual User Enrollment request from EESSL port. Parses the response from server and return RequestID.
+ * <P>
+ */
+
+public class UserEnroll extends TestClient {
+
+ private int i;
+ private String requestorName, requestorEmail, requestorPhone, requestorComments, requestId, certType, ssl_client;
+ private int port;
+ private long elapsedTime;
+
+ // Constructor
+ public UserEnroll() {
+ }
+
+ /**
+ * Constructor . Takes the parameter hostname and EESSLport
+ * <p>
+ */
+
+ public UserEnroll(String h, String p) {
+ host = h;
+ ports = p;
+ }
+
+ /**
+ * Constructor . Takes the parameter for Properties file name
+ * <p>
+ *
+ * @param propfilename name of the parameter file
+ */
+
+ public UserEnroll(String pfile) {
+ propfileName = pfile;
+ }
+
+ /**
+ * Constructor . Takes the parameter for hostname, EESSLportnumber, subjectdn, E, CN,UID,OU,O,
+ * CertdbDirecrory(fullpath) , certdbPassword, keysize, keytype, requestorName,requestorEmail and Certtype.
+ * valid values for Certtype - "ca","ra","ocsp"
+ * <p>
+ *
+ * @param propfilename name of the parameter file
+ */
+
+ public UserEnroll(String h, String p, String dn, String e, String cn, String uid, String ou, String o, String cd,
+ String tpwd, String sslcl, String ksize, String keyty, String reqname, String reqemail, String ctype) {
+
+ host = h;
+ ports = p;
+ DN = dn;
+ E = e;
+ CN = cn;
+ UID = uid;
+ OU = ou;
+ O = o;
+ C = "US";
+ cdir = cd;
+ tokenpwd = tpwd;
+ ssl_client = sslcl;
+ keysize = ksize;
+ keytype = keyty;
+ requestorName = reqname;
+ requestorPhone = "650";
+ requestorEmail = "lg";
+ requestorComments = "load Test";
+ certnickname = "cn=test";
+ keytype = "RSA";
+ keysize = "1024";
+ certType = ctype;
+ if (certType.equals("caSigningCert")) {
+ certType = "ca";
+ }
+ if (certType.equals("raSigningCert")) {
+ certType = "ra";
+ }
+ if (certType.equals("ocspSigningCert")) {
+ certType = "ocsp";
+ }
+ }
+
+ /**
+ * Set Certificate Request information. Takes parameters - subjectdn,E,CN,UID,OU,O
+ */
+
+ public void setUserInfo(String dn, String e, String cn, String uid, String ou, String o) {
+ DN = dn;
+ E = e;
+ CN = cn;
+ UID = uid;
+ OU = ou;
+ O = o;
+ requestorName = "test";
+ requestorPhone = "650";
+ requestorEmail = "lg";
+ requestorComments = "Test";
+ certnickname = "cn=test";
+
+ }
+
+ public void setUserInfo(String dn, String e, String cn, String uid, String ou, String o, String nickname) {
+ DN = dn;
+ E = e;
+ CN = cn;
+ UID = uid;
+ OU = ou;
+ O = o;
+ requestorName = "test";
+ requestorPhone = "650";
+ requestorEmail = "lg";
+ requestorComments = "Test";
+ certnickname = nickname;
+
+ }
+
+ /**
+ * Set Certificat Type for which you want to submit a request . Valid values - "ca"/"ra"/"ocsp"
+ */
+ public void setCertType(String ct) {
+ certType = ct;
+ }
+
+ public boolean enroll_load() throws UnsupportedEncodingException {
+ buildquery();
+ setStatusString("");
+ return (Send());
+ }
+
+ private boolean pkcs10() {
+
+ System.out.println(" In pkcs10 Keysize , key type " + keysize + keytype);
+ // ComCrypto cCrypt = new ComCrypto(cdir,tokenpwd,certnickname,keysize,keytype);
+ cCrypt.setCertDir(cdir);
+ cCrypt.setCertnickname(adminCertName);
+ cCrypt.setKeySize(keysize);
+ cCrypt.setKeyType(keytype);
+ cCrypt.setTokenPWD(tokenpwd);
+ cCrypt.setDebug(true);
+ if (pkcs10request != null) {
+ cCrypt.setGenerateRequest(false);
+ cCrypt.loginDB();
+ } else {
+ cCrypt.setGenerateRequest(true);
+ if (!cCrypt.generateRequest()) {
+ System.out.println("Request could not be generated ");
+ return false;
+ }
+ pkcs10request = cCrypt.getPkcs10Request();
+ }
+
+ try {
+ System.out.println("Debug: building query ");
+ buildquery();
+ if (debug) {
+ System.out.println(query);
+ }
+ setStatusString("");
+ return (Send());
+ } catch (Exception e) {
+ System.err.println("some exception:" + e);
+ }
+
+ return (false);
+
+ }
+
+ // Private methods
+
+ private void setElapsedTime(long dif) {
+ elapsedTime = dif;
+ }
+
+ private long calculateElapsedTime(GregorianCalendar b, GregorianCalendar e) {
+
+ Date d1 = b.getTime();
+ Date d2 = e.getTime();
+ long l1 = d1.getTime();
+ long l2 = d2.getTime();
+ long difference = l2 - l1;
+
+ return difference;
+
+ }
+
+ private boolean Send() {
+ boolean st = false;
+
+ try {
+
+ if (debug) {
+ System.out.println("Step 3 : Socket initialize");
+ }
+
+ Integer x = new Integer(ports);
+
+ port = x.intValue();
+
+ GregorianCalendar begin = new GregorianCalendar();
+
+ // SSLSocket socket = new SSLSocket(host,port);
+ SSLSocket socket = new SSLSocket(host, port, null, 0, this, null);
+
+ socket.setUseClientMode(true);
+ OutputStream rawos = socket.getOutputStream();
+ BufferedOutputStream os = new BufferedOutputStream(rawos);
+ PrintStream ps = new PrintStream(os);
+
+ ps.println("POST /enrollment HTTP/1.0");
+ ps.println("Connection: Keep-Alive");
+ ps.println("Content-type: application/x-www-form-urlencoded");
+ ps.println("Content-length: " + query.length());
+ ps.println("");
+ ps.println(query);
+ ps.println("\r");
+ ps.flush();
+ os.flush();
+ BufferedReader stdin = new BufferedReader(
+ new InputStreamReader(socket.getInputStream()));
+
+ if (debug) {
+ System.out.println("Step 4: Received the page");
+ }
+ st = false;
+ String line;
+
+ while ((line = stdin.readLine()) != null) {
+ if (debug) {
+ System.out.println(line);
+ }
+ if (line.indexOf(STATUS) != -1) {
+ st = true;
+ }
+ if (line.indexOf("fixed.requestId = ") != -1) {
+ requestId = line.substring("fixed.requestId = ".length() + 1,
+ line.indexOf(";") - 1);
+ }
+
+ if (getError(line)) {
+ st = false;
+ }
+
+ }
+ stdin.close();
+ socket.close();
+ os.close();
+ rawos.close();
+ ps.close();
+ os = null;
+ rawos = null;
+ stdin = null;
+ ps = null;
+ line = null;
+ GregorianCalendar end = new GregorianCalendar();
+ long diff = calculateElapsedTime(begin, end);
+
+ setElapsedTime(diff);
+
+ } catch (Exception e) {
+ System.err.println("some exception: in Send routine" + e);
+ return false;
+ }
+
+ return st;
+
+ }
+
+ private void buildquery() throws UnsupportedEncodingException {
+
+ StringBuffer queryStrBuf = new StringBuffer();
+
+ if (certType.equals("client")) {
+ queryStrBuf.append("certType=");
+ queryStrBuf.append(certType);
+ queryStrBuf.append("&Send=submit");
+
+ queryStrBuf.append("&key_encipherment=true");
+
+ queryStrBuf.append("&digital_signature=true");
+
+ queryStrBuf.append("&requestFormat=keygen");
+
+ queryStrBuf.append("&cryptprovider=1");
+ if (ssl_client.equals("true")) {
+ queryStrBuf.append("&ssl_client=true");
+ } else {
+ queryStrBuf.append("&ssl_server=true");
+ }
+
+ queryStrBuf.append("&non_repudiation=true");
+
+ if (requestorName.length() > 0) {
+ queryStrBuf.append("&csrRequestorName=");
+ }
+ queryStrBuf.append(URLEncoder.encode(requestorName, "UTF-8"));
+ if (requestorEmail.length() > 0) {
+ queryStrBuf.append("&csrRequestorEmail=");
+ queryStrBuf.append(URLEncoder.encode(requestorEmail, "UTF-8"));
+ queryStrBuf.append("&email=true");
+
+ } else {
+ queryStrBuf.append("&email=false");
+ }
+
+ if (requestorPhone.length() > 0) {
+ queryStrBuf.append("&csrRequestorPhone=");
+ queryStrBuf.append(URLEncoder.encode(requestorPhone, "UTF-8"));
+ }
+ if (requestorComments.length() > 0) {
+ queryStrBuf.append("&csrRequestorComments=");
+ queryStrBuf.append(URLEncoder.encode(requestorComments, "UTF-8"));
+ }
+ System.out.println("buidlquery client E ");
+ if (E.length() > 0) {
+ queryStrBuf.append("&E=");
+ queryStrBuf.append(E);
+ }
+ if (CN.length() > 0) {
+ queryStrBuf.append("&CN=");
+ queryStrBuf.append(CN);
+ }
+
+ if (UID.length() > 0) {
+ queryStrBuf.append("&UID=");
+ queryStrBuf.append(UID);
+ }
+ if (OU.length() > 0) {
+ queryStrBuf.append("&OU=");
+ queryStrBuf.append(OU);
+ }
+ // if(O.length() > 0) { queryStrBuf.append("&O=");queryStrBuf.append(O);}
+ // if(C.length() >0) { queryStrBuf.append("&C=");queryStrBuf.append(C);}
+ System.out.println("buidlquery client dn ");
+ queryStrBuf.append("&subject=");
+ queryStrBuf.append(URLEncoder.encode(DN, "UTF-8"));
+ }
+
+ if (certType.equals("ra")) {
+ queryStrBuf.append("certType=" + certType);
+ queryStrBuf.append("&digital_signature=true");
+ queryStrBuf.append("&non_repudiation=true");
+ queryStrBuf.append("&ssl_client=true");
+ }
+
+ if (certType.equals("server")) {
+ queryStrBuf.append("certType=" + certType);
+ queryStrBuf.append("&digital_signature=true");
+ queryStrBuf.append("&non_repudiation=true");
+ queryStrBuf.append("&ssl_server=true");
+ queryStrBuf.append("&key_encipherment=true");
+ queryStrBuf.append("&data_encipherment=true");
+
+ }
+
+ if (certType.equals("ocsp")) {
+ queryStrBuf.append("certType=ocspResponder");
+ queryStrBuf.append("&digital_signature=true");
+ queryStrBuf.append("&non_repudiation=true");
+ queryStrBuf.append("&ssl_client=true");
+ }
+
+ if (certType.equals("ca")) {
+ queryStrBuf.append("certType=" + certType);
+ queryStrBuf.append("&digital_signature=true");
+ queryStrBuf.append("&non_repudiation=true");
+ queryStrBuf.append("&ssl_client=true");
+ queryStrBuf.append("&object_signing_ca=true");
+ queryStrBuf.append("&crl_sign=true");
+ queryStrBuf.append("&ssl_ca=true");
+ queryStrBuf.append("&key_certsign=true");
+ queryStrBuf.append("&email_ca=true");
+
+ }
+
+ queryStrBuf.append("&pkcs10Request=");
+ queryStrBuf.append(URLEncoder.encode(pkcs10request, "UTF-8"));
+ System.out.println("before converting bug to string ");
+ query = queryStrBuf.toString();
+
+ System.out.println(query);
+ queryStrBuf = null;
+ }
+
+ public int getRequestId() {
+ Integer m = new Integer(requestId);
+
+ return m.intValue();
+
+ }
+
+ /**
+ * Submit enrollment request
+ */
+
+ public boolean clientCertEnroll() {
+ certType = "client";
+ ssl_client = "true";
+ debug = true;
+ return (pkcs10());
+ }
+
+ public boolean Enroll() {
+ debug = true;
+ return (pkcs10());
+ }
+
+ /**
+ * Read the properties file
+ **/
+
+ public boolean readProperties() {
+
+ // Read the properties file and assign values to variables .
+ try {
+ getProperties(propfileName);
+ } catch (Exception e) {
+ System.out.println(
+ "exception reading Properties File " + e.getMessage());
+ return false;
+ }
+
+ host = props.getProperty("enroll.host");
+ ports = props.getProperty("enroll.port");
+ DN = props.getProperty("enroll.DN");
+ requestorName = props.getProperty("enroll.name");
+ requestorEmail = props.getProperty("enroll.email");
+ requestorPhone = props.getProperty("enroll.phone");
+ requestorComments = props.getProperty("enroll.comments");
+ E = props.getProperty("enroll.E");
+ CN = props.getProperty("enroll.CN");
+ UID = props.getProperty("enroll.UID");
+ OU = props.getProperty("enroll.OU");
+ O = props.getProperty("enroll.O");
+ C = props.getProperty("enroll.C");
+ cdir = props.getProperty("enroll.certdir");
+ tokenpwd = props.getProperty("enroll.certtokenpwd");
+ certnickname = props.getProperty("enroll.nickname");
+ keysize = props.getProperty("enroll.keysize");
+ keytype = props.getProperty("enroll.keytype");
+ certType = props.getProperty("enroll.certtype");
+ if (certType == null) {
+ certType = "client";
+ }
+ if (certType.equals("raSigningCert")) {
+ certType = "ra";
+ }
+ if (certType.equals("ocspSigningCert")) {
+ certType = "ocsp";
+ }
+ pkcs10request = props.getProperty("enroll.pkcs10");
+ ssl_client = props.getProperty("enroll.sslclient");
+ if (ssl_client == null) {
+ ssl_client = "true";
+ }
+
+ String de = props.getProperty("enroll.debug");
+
+ if (de == null) {
+ debug = false;
+ } else if (de.equals("true")) {
+ debug = true;
+ } else {
+ debug = false;
+ }
+
+ // Enroll using a pkscks10 request
+ return (pkcs10());
+ }
+
+ public static void main(String args[]) {
+ // Exit Status - (0) for error/Fail
+ // - requestId Pass
+
+ UserEnroll e = new UserEnroll("jupiter2", "1027",
+ "E=test,cn=test,uid=test", "test", "test", "test", "t1", "t",
+ "/u/lgopal/work/tetCMS/ns/tetframework/testcases/CMS/6.0/acceptanceJava/data/certdb",
+ "secret12", "true", "1024", "RSA", "rn", "re", "client");
+
+ e.clientCertEnroll();
+
+ /* if ( args.length < 1)
+ {
+ System.out.println("Usage : propertiesfile");
+ System.exit(0);
+ }
+
+
+ UserEnroll t = new UserEnroll(args[0]);
+ st=t.enroll();
+ if (st){
+ System.out.println("User Enrolled successfully . RequestId is "+t.getrequestId());
+ System.exit(t.getRequestId());
+ }
+ else{
+
+ System.out.println("Error: " + t.getErrorDetail());
+ System.exit(0);
+ }
+ */
+ }// end of function main
+
+} // end of class
+
diff --git a/base/silent/src/com/netscape/pkisilent/common/Utilities.java b/base/silent/src/com/netscape/pkisilent/common/Utilities.java
new file mode 100644
index 000000000..3e5d6fb4c
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/Utilities.java
@@ -0,0 +1,347 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.DataInputStream;
+import java.io.FileInputStream;
+
+import netscape.security.x509.CertificateSerialNumber;
+import netscape.security.x509.CertificateSubjectName;
+import netscape.security.x509.RDN;
+import netscape.security.x509.SerialNumber;
+import netscape.security.x509.X500Name;
+import netscape.security.x509.X509CertImpl;
+import netscape.security.x509.X509CertInfo;
+
+import com.netscape.cmsutil.util.Utils;
+
+public class Utilities {
+
+ public Utilities() {// Do nothing
+ }
+
+ public String cleanupQuotes(String token) {
+
+ StringBuffer buf = new StringBuffer();
+ int length = token.length();
+ int curIndex = 0;
+
+ if (token.startsWith("\"") && token.endsWith("\"")) {
+ curIndex = 1;
+ length--;
+ }
+
+ boolean oneQuoteFound = false;
+ boolean twoQuotesFound = false;
+
+ while (curIndex < length) {
+ char curChar = token.charAt(curIndex);
+
+ if (curChar == '"') {
+ twoQuotesFound = (oneQuoteFound) ? true : false;
+ oneQuoteFound = true;
+ } else {
+ oneQuoteFound = false;
+ twoQuotesFound = false;
+ }
+
+ if (twoQuotesFound) {
+ twoQuotesFound = false;
+ oneQuoteFound = false;
+ curIndex++;
+ continue;
+ }
+
+ buf.append(curChar);
+ curIndex++;
+ }
+
+ return buf.toString();
+ }
+
+ public String removechar(String token) {
+
+ StringBuffer buf = new StringBuffer();
+ int end = token.length();
+ int begin = 0;
+
+ if (token.endsWith(";")) {
+ end--;
+ }
+
+ while (begin < end) {
+ char curChar = token.charAt(begin);
+
+ buf.append(curChar);
+ begin++;
+ }
+ return buf.toString();
+
+ }
+
+ public String parse_httpresponse(String line) {
+ // look for name=value pair
+ // remove trailing white spaces
+ // remove trailing ;
+ // remove double quotes
+
+ String temp = line.substring(line.indexOf("=") + 1);
+
+ return cleanupQuotes(removechar(temp.trim()));
+
+ }
+
+ public String remove_newline(String s) {
+ if (s == null) {
+ return null;
+ }
+
+ String val = "";
+
+ for (int i = 0; i < s.length(); i++) {
+ if ((s.charAt(i) == '\\') && (s.charAt(i + 1) == 'n')) {
+ i++;
+ continue;
+ } else if ((s.charAt(i) == '\\') && (s.charAt(i + 1) == 'r')) {
+ i++;
+ continue;
+ } else if (s.charAt(i) == '"') {
+ continue;
+ }
+ val += s.charAt(i);
+ }
+ return val;
+
+ }
+
+ public String normalize(String s) {
+
+ if (s == null) {
+ return null;
+ }
+
+ String val = "";
+
+ for (int i = 0; i < s.length(); i++) {
+ if ((s.charAt(i) == '\\') && (s.charAt(i + 1) == 'n')) {
+ val += '\n';
+ i++;
+ continue;
+ } else if ((s.charAt(i) == '\\') && (s.charAt(i + 1) == 'r')) {
+ i++;
+ continue;
+ } else if (s.charAt(i) == '"') {
+ continue;
+ }
+ val += s.charAt(i);
+ }
+ return val;
+ }
+
+ /*
+ * format of the file should be like this:
+ * -----BEGIN CERTIFICATE-----
+ * base64 encoded certificate
+ * -----END CERTIFICATE-----
+ */
+ public String getcertfromfile(String filename) {
+ StringBuffer tempBuffer = new StringBuffer();
+
+ try {
+ FileInputStream fis = new FileInputStream(filename);
+ DataInputStream in = new DataInputStream(fis);
+
+ while (in.available() != 0) {
+ String temp = in.readLine();
+
+ if (temp.equalsIgnoreCase("-----BEGIN CERTIFICATE-----")
+ || temp.equalsIgnoreCase("-----END CERTIFICATE-----")) {
+ continue;
+ }
+ tempBuffer.append(temp);
+ }
+
+ return tempBuffer.toString();
+ } catch (Exception e) {
+ System.out.println("ERROR: getcertfromfile" + e.toString());
+ return null;
+ }
+
+ }
+
+ public String getcertfromfile_withheaders(String filename) {
+ StringBuffer tempBuffer = new StringBuffer();
+
+ try {
+ FileInputStream fis = new FileInputStream(filename);
+ DataInputStream in = new DataInputStream(fis);
+
+ while (in.available() != 0) {
+ String temp = in.readLine();
+
+ tempBuffer.append(temp);
+ }
+ return tempBuffer.toString();
+ } catch (Exception e) {
+ System.out.println(
+ "ERROR: getcertfromfile_withheaders" + e.toString());
+ return null;
+ }
+ }
+
+ /*
+ * format of the file should be like this:
+ * -----BEGIN CERTIFICATE REVOCATION LIST-----
+ * base64 encoded CRL
+ * -----END CERTIFICATE REVOCATION LIST-----
+ */
+ public String getcrlfromfile(String filename) {
+ StringBuffer tempBuffer = new StringBuffer();
+
+ try {
+ FileInputStream fis = new FileInputStream(filename);
+ DataInputStream in = new DataInputStream(fis);
+
+ while (in.available() != 0) {
+ String temp = in.readLine();
+
+ tempBuffer.append(temp);
+ }
+
+ return tempBuffer.toString();
+ } catch (Exception e) {
+ System.out.println("ERROR: getcrlfromfile" + e.toString());
+ return null;
+ }
+
+ }
+
+ /*
+ * format of the file should be like this:
+ * -----BEGIN CERTIFICATE-----
+ * base64 encoded certificate
+ * -----END CERTIFICATE-----
+ */
+ public String getcafromfile(String filename) {
+ StringBuffer tempBuffer = new StringBuffer();
+
+ try {
+ FileInputStream fis = new FileInputStream(filename);
+ DataInputStream in = new DataInputStream(fis);
+
+ while (in.available() != 0) {
+ String temp = in.readLine();
+
+ tempBuffer.append(temp);
+ }
+
+ return tempBuffer.toString();
+ } catch (Exception e) {
+ System.out.println("ERROR: getcafromfile" + e.toString());
+ return null;
+ }
+
+ }
+
+ /*
+ * function for RFC 2254. converts a x509 certificate given as
+ * a binary array[] to a Ldap filter string
+ */
+ public static String escapeBinaryData(byte data[]) {
+ String result = "";
+
+ for (int i = 0; i < data.length; i++) {
+ String s = Integer.toHexString((int) (0xff & data[i]));
+
+ if (s.length() == 1) {
+ s = "0" + s;
+ }
+ result = result + "\\" + s;
+ }
+
+ System.out.println("LDAP_FILTER=" + result);
+ return result;
+ }
+
+ /*
+ * function to decode base64 encoded certificate
+ */
+ public CertificateRecord decode_cert(String cert) {
+
+ String head = "-----BEGIN CERTIFICATE-----";
+ String tail = "-----END CERTIFICATE-----";
+
+ CertificateRecord cr = new CertificateRecord();
+
+ int head_pos = cert.indexOf(head);
+ int tail_pos = cert.indexOf(tail);
+
+ // String not found
+ if (head_pos == -1 || tail_pos == -1) {
+ return null;
+ }
+
+ String temp = cert.substring(head_pos + head.length(), tail_pos);
+
+ temp = temp.replaceAll("\\r", "");
+ temp = temp.replaceAll("\\n", "");
+
+ try {
+ // BASE64Decoder base64 = new BASE64Decoder();
+ // byte decodedBASE64Cert[] = base64.decodeBuffer(temp);
+ byte decodedBASE64Cert[] = Utils.base64decode(temp);
+ X509CertImpl x509_cert = new X509CertImpl(decodedBASE64Cert);
+ X509CertInfo certinfo = (X509CertInfo) x509_cert.get("x509.INFO");
+
+ /* Get Serial Number */
+ CertificateSerialNumber csn = (CertificateSerialNumber)
+ certinfo.get(X509CertInfo.SERIAL_NUMBER);
+ SerialNumber sn = (SerialNumber) csn.get("NUMBER");
+
+ // just adding serialnumber for add.
+ // we can add mode here like subject name, extensions,issuer to this record.
+ cr.serialNumber = sn.getNumber().toString().trim();
+
+ /* Get Subject Name */
+
+ CertificateSubjectName csn1 = (CertificateSubjectName)
+ certinfo.get(X509CertInfo.SUBJECT);
+
+ X500Name dname = (X500Name) csn1.get(CertificateSubjectName.DN_NAME);
+
+ String pp = "";
+ RDN[] rdns = dname.getNames();
+
+ for (int i = rdns.length - 1; i >= 0; i--) {
+ pp = pp + rdns[i] + "\n";
+ }
+
+ cr.subject = pp;
+
+ } catch (Exception e) {
+ System.out.println("ERROR: Exception when decoding certificate=" + e);
+ e.printStackTrace();
+ return null;
+ }
+
+ return cr;
+
+ }
+
+}; // end class
diff --git a/base/silent/src/com/netscape/pkisilent/common/checkRequest.java b/base/silent/src/com/netscape/pkisilent/common/checkRequest.java
new file mode 100644
index 000000000..c4599ffde
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/common/checkRequest.java
@@ -0,0 +1,617 @@
+package com.netscape.pkisilent.common;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.FileOutputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+import org.mozilla.jss.ssl.SSLSocket;
+
+/**
+ * CMS Test framework .
+ * Submits a checkRequestStatus request to the server. parses the response from server and can import cert to the
+ * specified client database.
+ * <P>
+ */
+
+public class checkRequest extends TestClient {
+
+ private int i;
+ private String certfile, importcert = "false", certnickname, serialNumber, ldapformat;
+
+ private String requestId;
+ private String reqStatus = "false";
+ private String pkcsCert, baseCert, ACTION_STRING, issuer, subject, AUTH = "ca";
+ private int port;
+ private boolean impStatus = false;
+ private int type = 1;
+
+ private long elapsedTime;
+
+ private String host;
+ private String ports;
+ private String tokenpwd;
+ private String cdir;
+
+ // public methods
+
+ /**
+ * Constructor . Takes the parameter for Properties file name
+ * <p>
+ *
+ * @param propfilename name of the parameter file
+ */
+
+ public checkRequest(String pfile) {
+ propfileName = pfile;
+ }
+
+ /**
+ * Constructor . Takes the parameter for hostname and EESSLportnumber
+ * <p>
+ */
+
+ public checkRequest(String h, String p) {
+ host = h;
+ ports = p;
+ };
+
+ /**
+ * Constructor . Takes the parameter for hostname , EESSLportnumber , Requestnumber and ImportCert ( true/false)
+ * <p>
+ */
+
+ public checkRequest(String h, String p, String snum, String impc) {
+ host = h;
+ ports = p;
+ requestId = snum;
+ importcert = impc;
+ }
+
+ /**
+ * Constructor . Takes the parameter for hostname , EESSLportnumber , certdbdir, certdbpassword, Requestnumber
+ * ,certnickname and ImportCert ( true/false)
+ * <p>
+ */
+
+ public checkRequest(String hs, String pt, String certdir, String certtokenpwd, String seqnum, String nickname,
+ String impc) {
+ host = hs;
+ ports = pt;
+ cdir = certdir;
+ tokenpwd = certtokenpwd;
+ requestId = seqnum;
+ if (impc == null) {
+ importcert = "false";
+ } else {
+ importcert = impc;
+ }
+ certnickname = nickname;
+
+ }
+
+ public void setDebug(boolean t) {
+ debug = t;
+ }
+
+ public void setreqId(String seqnum) {
+ requestId = seqnum;
+ }
+
+ public void setCertNickname(String cname) {
+ certnickname = cname;
+ }
+
+ /**
+ * takes values - true/false
+ **/
+ public void setImportCert(String impc) {
+ importcert = impc;
+ }
+
+ public String getpkcs7ChainCert() {
+ return pkcsCert;
+ }
+
+ /**
+ * returns Certificate
+ **/
+
+ public String getCert() {
+ return cCrypt.normalize(baseCert);
+ }
+
+ /**
+ * returns Request status - "complete","pending"
+ **/
+
+ public String getRequestStatus() {
+ return reqStatus;
+ }
+
+ /**
+ * returns the hex serial number of the certificate
+ **/
+
+ public String getSerialNumberHex() {
+ return serialNumber;
+ }
+
+ /**
+ * returns the serial number as interger
+ **/
+
+ public int getSerialNumber() {
+ if (serialNumber != null) {
+ Integer y = new Integer(Integer.parseInt(serialNumber, 16));
+
+ return y.intValue();
+ }
+ return 0;
+ }
+
+ /**
+ * Submits a checkRequestStatus request to the server
+ **/
+
+ public boolean checkRequestStatus() {
+
+ // Login to dB and genertae request
+ cCrypt.setCertDir(cdir);
+ cCrypt.setCertnickname(certnickname);
+ cCrypt.setKeySize(keysize);
+ cCrypt.setKeyType(keytype);
+ cCrypt.setTokenPWD(tokenpwd);
+ cCrypt.setDebug(debug);
+
+ if (!cCrypt.loginDB()) {
+ System.out.println("Error : Login certdb failed ");
+ System.err.println("FAIL : Login certdb failed ");
+ return false;
+ }
+
+ try {
+
+ type = 1;
+ buildquery();
+ if (debug) {
+ System.out.println(query);
+ }
+ setStatusString("Congratulations, your certificate has been issued.");
+ if (Send()) {
+ if (debug) {
+ System.out.println("Request Status :" + reqStatus);
+ }
+ if (reqStatus.equals("complete")) {
+ type = 2;
+ buildquery();
+ if (debug) {
+ System.out.println(query);
+ }
+ if (Send()) {
+ return true;
+ }
+ } else {
+ return true;
+ }
+
+ }
+ if (debug) {
+ System.out.println("Request Status :" + reqStatus);
+ }
+
+ System.err.println("FAIL: reached end of checkRequestStatus()");
+
+ return false;
+ } catch (Exception e) {
+ System.err.println("some exception:" + e);
+ }
+
+ return false;
+ }
+
+ // Private functions
+
+ private void setElapsedTime(long dif) {
+ elapsedTime = dif;
+ }
+
+ private long calculateElapsedTime(GregorianCalendar b, GregorianCalendar e) {
+
+ Date d1 = b.getTime();
+ Date d2 = e.getTime();
+ long l1 = d1.getTime();
+ long l2 = d2.getTime();
+ long difference = l2 - l1;
+
+ return difference;
+
+ }
+
+ private boolean writeCert2File() {
+ if (serialNumber != null) {
+
+ try {
+ FileOutputStream fos = new FileOutputStream(certfile);
+
+ if (ldapformat.equals("true")) {
+ String tmp = "description: 2;"
+ + Integer.parseInt(serialNumber, 16) + ";" + issuer
+ + ";" + subject + "\n";
+
+ fos.write(tmp.getBytes());
+ tmp = cCrypt.normalizeForLDAP(getCert());
+ if (debug) {
+ System.out.println(tmp);
+ }
+ fos.write(("usercertificate:: ").getBytes());
+ fos.write(tmp.getBytes());
+ fos.close();
+ } else {
+ String tmp = cCrypt.normalize(getCert());
+
+ if (debug) {
+ System.out.println(tmp);
+ }
+ fos.write(tmp.getBytes());
+ fos.close();
+
+ }
+
+ } catch (Exception e) {
+ System.out.println(
+ "exception in writeCert2File: " + e.getMessage());
+ return false;
+ }
+
+ }
+
+ return true;
+ }
+
+ private boolean importCert(String certpack) {
+
+ if (importcert.equals("false")) {
+ return true;
+ }
+
+ try {
+ if (certpack == null) {
+ return false;
+ }
+
+ String s = cCrypt.normalize(certpack);
+
+ if (AUTH.equals("ca")) {
+ String tmp = "-----BEGIN CERTIFICATE-----\n" + s + "\n"
+ + "-----END CERTIFICATE-----";
+
+ if (debug) {
+ System.out.println(
+ "importing cert" + tmp + "certnick" + certnickname);
+ }
+ s = tmp;
+ }
+
+ if (cCrypt.importCert(s, certnickname)) {
+ System.out.println("successfully imported cert");
+ return true;
+ }
+
+ return false;
+
+ } catch (Exception e) {
+ System.out.println(
+ "exception importing cert crequest" + e.getMessage());
+ return false;
+ }
+
+ }
+
+ private boolean RetrieveRequestDetail(String line) {
+ String stat = "header.status = ";
+ boolean st = true;
+
+ if (debug) {
+ System.out.println(line);
+ }
+
+ if (line.indexOf(stat) != -1) {
+ String tm = line.substring(stat.length() + 1,
+ line.indexOf(";", 10) - 1);
+
+ reqStatus = tm;
+ }
+ if (line.indexOf("header.pkcs7ChainBase64 = ") != -1) {
+ // if status is complete retrieve cert
+ pkcsCert = line.substring("header.pkcs7ChainBase64 = ".length() + 1,
+ line.indexOf(";", 10) - 1);
+ }
+ if (line.indexOf("record.serialNumber=") != -1) {
+ serialNumber = line.substring("record.serialNumber=".length() + 1,
+ line.indexOf(";", 1) - 1);
+ }
+ if (line.indexOf("header.authority =") == 0) {
+ AUTH = line.substring("header.authority =".length() + 2,
+ line.indexOf(";", 1) - 1);
+ }
+
+ if (getError(line)) {
+ st = false;
+ }
+
+ return st;
+
+ }
+
+ private boolean RetrieveCertDetails(String line) {
+ if (debug) {
+ System.out.println(line);
+ }
+
+ boolean st = true;
+
+ String retriveStr[] = {
+ "record.base64Cert=", "record.certPrettyPrint=",
+ "header.certChainBase64 = ", "header.certPrettyPrint = " };
+ String baseCertStr, certPrettyprintStr;
+
+ if (AUTH.equals("ra")) {
+ baseCertStr = retriveStr[0];
+ certPrettyprintStr = retriveStr[1];
+ } else {
+ baseCertStr = retriveStr[2];
+ certPrettyprintStr = retriveStr[3];
+ }
+
+ if (line.indexOf(baseCertStr) != -1) {
+
+ // if status is complete retrieve cert
+ baseCert = line.substring(baseCertStr.length() + 1,
+ line.indexOf(";", 10) - 1);
+ if (importcert.equals("true")) {
+ if (importCert(baseCert)) {
+ st = true;
+ }
+ } else {
+ st = true;
+ }
+ }
+
+ if (line.indexOf(certPrettyprintStr) != -1) {
+
+ System.out.println("Found certPrettyPrint");
+ int ret = line.indexOf("Issuer: ");
+
+ issuer = line.substring(("Issuer: ").length() + ret,
+ line.indexOf("Validi", ret) - 14);
+ ret = line.indexOf("Subject:");
+ subject = line.substring(("Subject: ").length() + ret,
+ line.indexOf("Subject Public", ret) - 14);
+
+ System.out.println(" HEADER : " + issuer);
+
+ }
+
+ // System.out.println("Debug :get Error detail " + line);
+ if (getError(line)) {
+ st = false;
+ }
+
+ return st;
+
+ }
+
+ private synchronized boolean Send() {
+ boolean st = false;
+
+ try {
+ if (debug) {
+ System.out.println("Step 3 : Socket initialize");
+ }
+
+ Integer x = new Integer(ports);
+
+ port = x.intValue();
+
+ GregorianCalendar begin = new GregorianCalendar();
+
+ impStatus = false;
+
+ // SSLSocket socket = new SSLSocket(host,port);
+ SSLSocket socket = new SSLSocket(host, port, null, 0, this, null);
+
+ socket.setUseClientMode(true);
+
+ OutputStream rawos = socket.getOutputStream();
+ BufferedOutputStream os = new BufferedOutputStream(rawos);
+ PrintStream ps = new PrintStream(os);
+
+ ps.println("POST " + ACTION_STRING + " HTTP/1.0");
+ ps.println("Connection: Keep-Alive");
+ ps.println("Content-type: application/x-www-form-urlencoded");
+ ps.println("Content-length: " + query.length());
+ ps.println("");
+ ps.println(query);
+ ps.println("\r");
+ ps.flush();
+ os.flush();
+ BufferedReader stdin = new BufferedReader(
+ new InputStreamReader(socket.getInputStream()));
+
+ if (debug) {
+ System.out.println("Step 4: Received the page");
+ }
+ st = false;
+ String line;
+
+ while ((line = stdin.readLine()) != null) {
+ switch (type) {
+ case 1:
+ RetrieveRequestDetail(line);
+ st = true;
+ break;
+
+ case 2:
+ st = RetrieveCertDetails(line);
+ break;
+
+ default:
+ System.out.println("invalid format");
+
+ }
+
+ }
+ stdin.close();
+ socket.close();
+ os.close();
+ rawos.close();
+ ps.close();
+ os = null;
+ rawos = null;
+ stdin = null;
+ ps = null;
+ line = null;
+
+ GregorianCalendar end = new GregorianCalendar();
+ long diff = calculateElapsedTime(begin, end);
+
+ setElapsedTime(diff);
+
+ } catch (Exception e) {
+ System.err.println("some exception: in Send routine" + e);
+ return false;
+ }
+ if ((certfile != null) && (type == 2)) {
+ st = writeCert2File();
+ }
+
+ if (debug) {
+ System.out.println(serialNumber);
+ }
+
+ return st;
+
+ }
+
+ private void buildquery() {
+
+ StringBuffer queryStrBuf = new StringBuffer();
+
+ if (type == 1) {
+ ACTION_STRING = "/checkRequest";
+ queryStrBuf.append("requestId=");
+ queryStrBuf.append(requestId);
+ queryStrBuf.append("&importCert=true");
+ }
+
+ if (type == 2) {
+ ACTION_STRING = "/" + AUTH + "/displayBySerial";
+ if (AUTH.equals("ra")) {
+ ACTION_STRING = "/displayCertFromRequest";
+ queryStrBuf.append("requestId=");
+ queryStrBuf.append(requestId);
+
+ } else {
+ ACTION_STRING = "/displayBySerial";
+ queryStrBuf.append("op=displayBySerial");
+ queryStrBuf.append("&serialNumber=0x");
+ queryStrBuf.append(serialNumber);
+ }
+ }
+
+ query = queryStrBuf.toString();
+
+ queryStrBuf = null;
+
+ }
+
+ private boolean readProperties() {
+
+ // Read the properties file and assign values to variables .
+ try {
+ getProperties(propfileName);
+ } catch (Exception e) {
+ System.out.println(
+ "exception reading Properties File " + e.getMessage());
+ return false;
+ }
+
+ host = props.getProperty("enroll.host");
+ ports = props.getProperty("enroll.port");
+ cdir = props.getProperty("enroll.certdir");
+ tokenpwd = props.getProperty("enroll.certtokenpwd");
+ requestId = props.getProperty("enroll.seqnum");
+ certfile = props.getProperty("enroll.certfile");
+ importcert = props.getProperty("enroll.importCert");
+ if (importcert == null) {
+ importcert = "false";
+ }
+ ldapformat = props.getProperty("enroll.ldapformat");
+ if (ldapformat == null) {
+ ldapformat = "true";
+ }
+ System.out.println(ldapformat);
+ certnickname = props.getProperty("enroll.nickname");
+ String de = props.getProperty("enroll.debug");
+
+ if (de == null) {
+ debug = false;
+ } else if (de.equals("true")) {
+ debug = true;
+ } else {
+ debug = false;
+ }
+
+ // Enroll using a pkscks10 request
+ return (checkRequestStatus());
+ }
+
+ public static void main(String args[]) {
+ // Exit Status - (0) for error/Fail
+ // - requestId Pass
+ boolean st;
+
+ if (args.length < 1) {
+ System.out.println("Usage : propertiesfile");
+ System.exit(0);
+ }
+
+ checkRequest t = new checkRequest(args[0]);
+
+ st = t.readProperties();
+ if (st) {
+ System.exit(t.getSerialNumber());
+ } else {
+
+ System.out.println("Request Status :" + t.getRequestStatus());
+ System.out.println("Error: " + t.getErrorDetail());
+
+ System.exit(0);
+ }
+ }// end of function main
+
+} // end of class
+
diff --git a/base/silent/src/com/netscape/pkisilent/http/CertSelection.java b/base/silent/src/com/netscape/pkisilent/http/CertSelection.java
new file mode 100644
index 000000000..ff541b6c6
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/http/CertSelection.java
@@ -0,0 +1,45 @@
+package com.netscape.pkisilent.http;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.util.Vector;
+
+import org.mozilla.jss.ssl.SSLClientCertificateSelectionCallback;
+
+public class CertSelection implements SSLClientCertificateSelectionCallback {
+
+ // make the select() call to use this client cert
+ public static String client_cert = null;
+
+ public void setClientCert(String nickname) {
+ client_cert = nickname;
+ }
+
+ public String select(@SuppressWarnings("rawtypes") Vector nicknames) {
+
+ // when this method is called by SSLSocket we get a vector
+ // of nicknames to select similar to the way the browser presents
+ // the list.
+
+ // We will just use the one thats set by setClientCert()
+
+ return client_cert;
+ }
+
+}; // end class
diff --git a/base/silent/src/com/netscape/pkisilent/http/HTMLDocument.java b/base/silent/src/com/netscape/pkisilent/http/HTMLDocument.java
new file mode 100644
index 000000000..e8de29081
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/http/HTMLDocument.java
@@ -0,0 +1,595 @@
+package com.netscape.pkisilent.http;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.LinkedHashSet;
+import java.util.StringTokenizer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class HTMLDocument {
+ // Indicates whether this HTML document has been parsed.
+ boolean parsed;
+
+ // A list of URLs of files that should be retrieved along with the main
+ // contents of the document. This may include any images contained in the
+ // document, and possibly any external stylesheets.
+ LinkedHashSet<String> associatedFiles;
+
+ // A list of URLs of frames that are contained in the document.
+ LinkedHashSet<String> documentFrames;
+
+ // A list of URLs of links that are contained in the document.
+ LinkedHashSet<String> documentLinks;
+
+ // A list of URLs of images that are contained in the document.
+ LinkedHashSet<String> documentImages;
+
+ // A regular expression pattern that can be used to extract a URI from an HREF
+ // tag.
+ Pattern hrefPattern;
+
+ // A regular expression pattern that can be used to extract a URI from a SRC
+ // tag.
+ Pattern srcPattern;
+
+ // The base URL for relative links in this document.
+ String baseURL;
+
+ // The URL that may be used to access this document.
+ String documentURL;
+
+ // The actual contents of the page.
+ String htmlData;
+
+ // The contents of the page converted to lowercase for easier matching.
+ String lowerData;
+
+ // The URL for this document with only protocol, host, and port (i.e., no
+ // file).
+ String protocolHostPort;
+
+ // A string buffer containing the contents of the page with tags removed.
+ StringBuffer textData;
+
+ // A set of private variables used for internal processing.
+ private boolean lastElementIsAssociatedFile;
+ private boolean lastElementIsChunk;
+ private boolean lastElementIsComment;
+ private boolean lastElementIsFrame;
+ private boolean lastElementIsImage;
+ private boolean lastElementIsLink;
+ private boolean lastElementIsText;
+ private int lastElementEndPos;
+ private int lastElementStartPos;
+ private String lastURL;
+
+ // constructor that helps to parse without url stuff
+ public HTMLDocument(String htmlData) {
+ this.documentURL = null;
+ this.htmlData = htmlData;
+ lowerData = htmlData.toLowerCase();
+ associatedFiles = null;
+ documentLinks = null;
+ documentImages = null;
+ textData = null;
+ parsed = false;
+
+ // Create the regex patterns that we will use for extracting URIs from tags.
+ hrefPattern = Pattern.compile(".*?[hH][rR][eE][fF][\\s=\\\"\\']+" +
+ "([^\\s\\\"\\'\\>]+).*", Pattern.DOTALL);
+ srcPattern = Pattern.compile(".*?[sS][rR][cC][\\s=\\\"\\']+" +
+ "([^\\s\\\"\\'\\>]+).*", Pattern.DOTALL);
+ }
+
+ /**
+ * Creates a new HTML document using the provided data.
+ *
+ * @param documentURL The URL for this document.
+ * @param htmlData The actual data contained in the HTML document.
+ */
+ public HTMLDocument(String documentURL, String htmlData)
+ throws MalformedURLException {
+ this.documentURL = documentURL;
+ this.htmlData = htmlData;
+ lowerData = htmlData.toLowerCase();
+ associatedFiles = null;
+ documentLinks = null;
+ documentImages = null;
+ textData = null;
+ parsed = false;
+
+ // Create the regex patterns that we will use for extracting URIs from tags.
+ hrefPattern = Pattern.compile(".*?[hH][rR][eE][fF][\\s=\\\"\\']+" +
+ "([^\\s\\\"\\'\\>]+).*", Pattern.DOTALL);
+ srcPattern = Pattern.compile(".*?[sS][rR][cC][\\s=\\\"\\']+" +
+ "([^\\s\\\"\\'\\>]+).*", Pattern.DOTALL);
+
+ URL url = new URL(documentURL);
+ String urlPath = url.getPath();
+ if ((urlPath == null) || (urlPath.length() == 0)) {
+ baseURL = documentURL;
+ protocolHostPort = documentURL;
+ } else if (urlPath.equals("/")) {
+ baseURL = documentURL;
+ protocolHostPort = documentURL.substring(0, documentURL.length() - 1);
+ } else if (urlPath.endsWith("/")) {
+ baseURL = documentURL;
+
+ int port = url.getPort();
+ if (port > 0) {
+ protocolHostPort = url.getProtocol() + "://" + url.getHost() + ":" +
+ port;
+ } else {
+ protocolHostPort = url.getProtocol() + "://" + url.getHost();
+ }
+ } else {
+ int port = url.getPort();
+ if (port > 0) {
+ protocolHostPort = url.getProtocol() + "://" + url.getHost() + ":" +
+ port;
+ } else {
+ protocolHostPort = url.getProtocol() + "://" + url.getHost();
+ }
+
+ File urlFile = new File(urlPath);
+ String parentDirectory = urlFile.getParent();
+ if ((parentDirectory == null) || (parentDirectory.length() == 0)) {
+ parentDirectory = "/";
+ } else if (!parentDirectory.startsWith("/")) {
+ parentDirectory = "/" + parentDirectory;
+ }
+
+ baseURL = protocolHostPort + parentDirectory;
+ }
+
+ if (!baseURL.endsWith("/")) {
+ baseURL = baseURL + "/";
+ }
+ }
+
+ /**
+ * Actually parses the HTML document and extracts useful elements from it.
+ *
+ * @return <CODE>true</CODE> if the page could be parsed successfully, or <CODE>false</CODE> if not.
+ */
+ public boolean parse() {
+ if (parsed) {
+ return true;
+ }
+
+ try {
+ associatedFiles = new LinkedHashSet<String>();
+ documentFrames = new LinkedHashSet<String>();
+ documentLinks = new LinkedHashSet<String>();
+ documentImages = new LinkedHashSet<String>();
+ textData = new StringBuffer();
+
+ lastElementStartPos = 0;
+ lastElementEndPos = -1;
+ String element;
+ while ((element = nextDocumentElement()) != null) {
+ if (element.length() == 0) {
+ continue;
+ }
+
+ if (lastElementIsText) {
+ char lastChar;
+ if (textData.length() == 0) {
+ lastChar = ' ';
+ } else {
+ lastChar = textData.charAt(textData.length() - 1);
+ }
+ char firstChar = element.charAt(0);
+ if (!((lastChar == ' ') || (lastChar == '\t') ||
+ (lastChar == '\r') || (lastChar == '\n')) ||
+ (firstChar == ' ') || (firstChar == '\t') ||
+ (firstChar == '\r') || (firstChar == '\n')) {
+ textData.append(" ");
+ }
+
+ textData.append(element);
+ } else if (lastElementIsImage) {
+ if (lastURL != null) {
+ documentImages.add(lastURL);
+ associatedFiles.add(lastURL);
+ }
+ } else if (lastElementIsFrame) {
+ if (lastURL != null) {
+ documentFrames.add(lastURL);
+ associatedFiles.add(lastURL);
+ }
+ } else if (lastElementIsLink) {
+ if (lastURL != null) {
+ documentLinks.add(lastURL);
+ }
+ } else if (lastElementIsAssociatedFile) {
+ if (lastURL != null) {
+ associatedFiles.add(lastURL);
+ }
+ } else if (lastElementIsChunk || lastElementIsComment) {
+ // Don't need to do anything with this.
+ } else {
+ // Also don't need anything here.
+ }
+ }
+
+ parsed = true;
+ } catch (Exception e) {
+ associatedFiles = null;
+ documentLinks = null;
+ documentImages = null;
+ textData = null;
+ parsed = false;
+ }
+
+ return parsed;
+ }
+
+ /**
+ * Retrieves the next element from the HTML document. An HTML element can
+ * include a string of plain text, a single HTML tag, or a larger chunk of
+ * HTML including a start and end tag, all of which should be considered a
+ * single element.
+ */
+ private String nextDocumentElement() {
+ // If we're at the end of the HTML, then return null.
+ if (lastElementEndPos >= htmlData.length()) {
+ return null;
+ }
+
+ // Initialize the variables we will use for the search.
+ lastElementStartPos = lastElementEndPos + 1;
+ lastElementIsAssociatedFile = false;
+ lastElementIsChunk = false;
+ lastElementIsComment = false;
+ lastElementIsFrame = false;
+ lastElementIsImage = false;
+ lastElementIsLink = false;
+ lastElementIsText = false;
+ lastURL = null;
+
+ // Find the location of the next open angle bracket. If there is none, then
+ // the rest of the document must be plain text.
+ int openPos = lowerData.indexOf('<', lastElementStartPos);
+ if (openPos < 0) {
+ lastElementEndPos = htmlData.length();
+ lastElementIsText = true;
+ return htmlData.substring(lastElementStartPos);
+ }
+
+ // If the location of the next open tag is not we started looking, then read
+ // everything up to that tag as text.
+ if (openPos > lastElementStartPos) {
+ lastElementEndPos = openPos - 1;
+ lastElementIsText = true;
+ return htmlData.substring(lastElementStartPos, openPos);
+ }
+
+ // The start position is an open tag. See if the tag is actually "<!--",
+ // which indicates an HTML comment. If that's the case, then find the
+ // closing "-->".
+ if (openPos == lowerData.indexOf("<!--", lastElementStartPos)) {
+ int closePos = lowerData.indexOf("-->", openPos + 1);
+ if (closePos < 0) {
+ // This looks like an unterminated comment. We can't do much else
+ // here, so just stop parsing.
+ return null;
+ } else {
+ lastElementEndPos = closePos + 2;
+ lastElementIsComment = true;
+ return htmlData.substring(lastElementStartPos, lastElementEndPos + 1);
+ }
+ }
+
+ // Find the location of the next close angle bracket. If there is none,
+ // then we have an unmatched open tag. What to do here? I guess just treat
+ // the rest of the document as text.
+ int closePos = lowerData.indexOf('>', openPos + 1);
+ if (closePos < 0) {
+ lastElementEndPos = htmlData.length();
+ lastElementIsText = true;
+ return htmlData.substring(lastElementStartPos);
+ }
+
+ // Grab the contents of the tag in both normal and lowercase.
+ String tag = htmlData.substring(openPos, closePos + 1);
+ String strippedTag = htmlData.substring(openPos + 1, closePos).trim();
+ StringTokenizer tokenizer = new StringTokenizer(strippedTag, " \t\r\n=\"'");
+ lastElementEndPos = closePos;
+
+ if (!tokenizer.hasMoreTokens()) {
+ return tag;
+ }
+
+ String token = tokenizer.nextToken();
+ String lowerToken = token.toLowerCase();
+
+ if (lowerToken.equals("a") || lowerToken.equals("area")) {
+ while (tokenizer.hasMoreTokens()) {
+ token = tokenizer.nextToken();
+ if (token.equalsIgnoreCase("href")) {
+ try {
+ Matcher matcher = hrefPattern.matcher(tag);
+ lastURL = uriToURL(matcher.replaceAll("$1"));
+ if (lastURL != null) {
+ lastElementIsLink = true;
+ }
+ } catch (Exception e) {
+ }
+ break;
+ }
+ }
+ } else if (lowerToken.equals("base")) {
+ while (tokenizer.hasMoreTokens()) {
+ token = tokenizer.nextToken();
+ if (token.equalsIgnoreCase("href")) {
+ try {
+ Matcher matcher = hrefPattern.matcher(tag);
+ String uri = matcher.replaceAll("$1");
+ if (!uri.endsWith("/")) {
+ uri = uri + "/";
+ }
+
+ baseURL = uri;
+ } catch (Exception e) {
+ }
+ break;
+ }
+ }
+ } else if (lowerToken.equals("frame") || lowerToken.equals("iframe") ||
+ lowerToken.equals("input")) {
+ while (tokenizer.hasMoreTokens()) {
+ token = tokenizer.nextToken();
+ if (token.equalsIgnoreCase("src")) {
+ try {
+ Matcher matcher = srcPattern.matcher(tag);
+ String uri = matcher.replaceAll("$1");
+ lastURL = uriToURL(uri);
+ if (lastURL != null) {
+ lastElementIsFrame = true;
+ lastElementIsAssociatedFile = true;
+ }
+ } catch (Exception e) {
+ }
+ break;
+ }
+ }
+ } else if (lowerToken.equals("img")) {
+ while (tokenizer.hasMoreTokens()) {
+ token = tokenizer.nextToken();
+ if (token.equalsIgnoreCase("src")) {
+ try {
+ Matcher matcher = srcPattern.matcher(tag);
+ String uri = matcher.replaceAll("$1");
+ lastURL = uriToURL(uri);
+ if (lastURL != null) {
+ lastElementIsImage = true;
+ }
+ } catch (Exception e) {
+ }
+ break;
+ }
+ }
+ } else if (lowerToken.equals("link")) {
+ boolean isStyleSheet = false;
+
+ while (tokenizer.hasMoreTokens()) {
+ token = tokenizer.nextToken();
+ if (token.equalsIgnoreCase("href")) {
+ try {
+ Matcher matcher = hrefPattern.matcher(tag);
+ String uri = matcher.replaceAll("$1");
+ lastURL = uriToURL(uri);
+ if (lastURL != null) {
+ lastElementIsLink = true;
+ }
+ } catch (Exception e) {
+ }
+ break;
+ } else if (token.equalsIgnoreCase("rel")) {
+ if (tokenizer.hasMoreTokens()) {
+ String relType = tokenizer.nextToken();
+ if (relType.equalsIgnoreCase("stylesheet")) {
+ isStyleSheet = true;
+ }
+ }
+ }
+ }
+
+ if (lastURL != null) {
+ if (isStyleSheet) {
+ lastElementIsAssociatedFile = true;
+ } else {
+ lastElementIsLink = true;
+ }
+ }
+ } else if (lowerToken.equals("script")) {
+ while (tokenizer.hasMoreTokens()) {
+ token = tokenizer.nextToken();
+ if (token.equalsIgnoreCase("src")) {
+ try {
+ Matcher matcher = srcPattern.matcher(tag);
+ String uri = matcher.replaceAll("$1");
+ lastURL = uriToURL(uri);
+ } catch (Exception e) {
+ }
+ break;
+ }
+ }
+
+ if (lastURL == null) {
+ int endScriptPos = lowerData.indexOf("</script>", lastElementEndPos + 1);
+ if (endScriptPos > 0) {
+ lastElementEndPos = endScriptPos + 8;
+ tag = htmlData.substring(lastElementStartPos, lastElementEndPos + 1);
+ lastElementIsChunk = true;
+ }
+ } else {
+ lastElementIsAssociatedFile = true;
+ }
+ }
+
+ return tag;
+ }
+
+ /**
+ * Converts the provided URI to a URL. The provided URI may be a URL already,
+ * or it may also be an absolute path on the server or a path relative to the
+ * base URL.
+ *
+ * @param uri The URI to convert to a URL.
+ *
+ * @return The URL based on the provided URI.
+ */
+ private String uriToURL(String uri) {
+ String url = null;
+
+ if (uri.indexOf("://") > 0) {
+ if (uri.startsWith("http")) {
+ url = uri;
+ }
+ } else if (uri.startsWith("/")) {
+ url = protocolHostPort + uri;
+ } else {
+ url = baseURL + uri;
+ }
+
+ return url;
+ }
+
+ /**
+ * Retrieves the URL of this HTML document.
+ *
+ * @return The URL of this HTML document.
+ */
+ public String getDocumentURL() {
+ return documentURL;
+ }
+
+ /**
+ * Retrieves the original HTML data used to create this document.
+ *
+ * @return The orginal HTML data used to create this document.
+ */
+ public String getHTMLData() {
+ return htmlData;
+ }
+
+ /**
+ * Retrieves the contents of the HTML document with all tags removed.
+ *
+ * @return The contents of the HTML document with all tags removed, or <CODE>null</CODE> if a problem occurs while
+ * trying to parse the
+ * HTML.
+ */
+ public String getTextData() {
+ if (!parsed) {
+ if (!parse()) {
+ return null;
+ }
+ }
+
+ return textData.toString();
+ }
+
+ /**
+ * Retrieves an array containing a set of URLs parsed from the HTML document
+ * that reference files that would normally be downloaded as part of
+ * retrieving a page in a browser. This includes images and external style
+ * sheets.
+ *
+ * @return An array containing a set of URLs to files associated with the
+ * HTML document, or <CODE>null</CODE> if a problem occurs while
+ * trying to parse the HTML.
+ */
+ public String[] getAssociatedFiles() {
+ if (!parsed) {
+ if (!parse()) {
+ return null;
+ }
+ }
+
+ String[] urlArray = new String[associatedFiles.size()];
+ associatedFiles.toArray(urlArray);
+ return urlArray;
+ }
+
+ /**
+ * Retrieves an array containing a set of URLs parsed from the HTML document
+ * that are in the form of links to other content.
+ *
+ * @return An array containing a set of URLs parsed from the HTML document
+ * that are in the form of links to other content, or <CODE>null</CODE> if a problem occurs while trying to
+ * parse the
+ * HTML.
+ */
+ public String[] getDocumentLinks() {
+ if (!parsed) {
+ if (!parse()) {
+ return null;
+ }
+ }
+
+ String[] urlArray = new String[documentLinks.size()];
+ documentLinks.toArray(urlArray);
+ return urlArray;
+ }
+
+ /**
+ * Retrieves an array containing a set of URLs parsed from the HTML document
+ * that reference images used in the document.
+ *
+ * @return An array containing a set of URLs parsed from the HTML document
+ * that reference images used in the document.
+ */
+ public String[] getDocumentImages() {
+ if (!parsed) {
+ if (!parse()) {
+ return null;
+ }
+ }
+
+ String[] urlArray = new String[documentImages.size()];
+ documentImages.toArray(urlArray);
+ return urlArray;
+ }
+
+ /**
+ * Retrieves an array containing a set of URLs parsed from the HTML document
+ * that reference frames used in the document.
+ *
+ * @return An array containing a set of URLs parsed from the HTML document
+ * that reference frames used in the document.
+ */
+ public String[] getDocumentFrames() {
+ if (!parsed) {
+ if (!parse()) {
+ return null;
+ }
+ }
+
+ String[] urlArray = new String[documentFrames.size()];
+ documentFrames.toArray(urlArray);
+ return urlArray;
+ }
+}
diff --git a/base/silent/src/com/netscape/pkisilent/http/HTTPClient.java b/base/silent/src/com/netscape/pkisilent/http/HTTPClient.java
new file mode 100644
index 000000000..f3980c0ed
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/http/HTTPClient.java
@@ -0,0 +1,1231 @@
+package com.netscape.pkisilent.http;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.io.BufferedOutputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
+import java.net.InetAddress;
+import java.net.Socket;
+import java.net.URLDecoder;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.StringTokenizer;
+
+import org.mozilla.jss.crypto.X509Certificate;
+import org.mozilla.jss.ssl.SSLCertificateApprovalCallback;
+import org.mozilla.jss.ssl.SSLClientCertificateSelectionCallback;
+import org.mozilla.jss.ssl.SSLSocket;
+import org.mozilla.jss.ssl.TestCertApprovalCallback;
+import org.mozilla.jss.ssl.TestClientCertificateSelectionCallback;
+
+import com.netscape.pkisilent.argparser.ArgParser;
+import com.netscape.pkisilent.argparser.StringHolder;
+import com.netscape.pkisilent.common.ComCrypto;
+import com.netscape.cmsutil.util.Utils;
+
+public class HTTPClient implements SSLCertificateApprovalCallback {
+
+ public static final int BUFFER_SIZE = 4096;
+ public boolean debugMode = true;
+
+ public static String basic_auth_header_value = null;
+
+ public static String cs_hostname = null;
+ public static String cs_port = null;
+ public static String ssl = null;
+ public static String client_certdb_dir = null;
+ public static String client_certdb_pwd = null;
+ public static String client_cert_nickname = null;
+ public static String uri = null;
+ public static String query = null;
+ public static String request_type = null;
+ public static String user_id = null;
+ public static String user_password = null;
+ public static String auth_type = null;
+ public static String debug = null;
+
+ public static boolean parse_xml = false;
+
+ public static X509Certificate server_cert = null;
+
+ // cookie variable for CS install UI
+ public static String j_session_id = null;
+ public static boolean ecc_support = false;
+
+ public HTTPClient() {
+ // constructor
+ // turn off ecc by default
+ ecc_support = true;
+ }
+
+ public HTTPClient(boolean ecc) {
+ ecc_support = ecc;
+ }
+
+ public boolean setCipherPref(SSLSocket socket) {
+
+ if (ecc_support) {
+ int ecc_Ciphers[] = {
+ SSLSocket.TLS_ECDH_ECDSA_WITH_NULL_SHA, SSLSocket.TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
+ SSLSocket.TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, SSLSocket.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
+ SSLSocket.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, SSLSocket.TLS_ECDHE_ECDSA_WITH_NULL_SHA,
+ SSLSocket.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, SSLSocket.TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
+ SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
+ SSLSocket.TLS_ECDH_RSA_WITH_NULL_SHA, SSLSocket.TLS_ECDH_RSA_WITH_RC4_128_SHA,
+ SSLSocket.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, SSLSocket.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
+ SSLSocket.TLS_ECDHE_RSA_WITH_NULL_SHA, SSLSocket.TLS_ECDHE_RSA_WITH_RC4_128_SHA,
+ SSLSocket.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSLSocket.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
+ SSLSocket.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
+ 0 };
+
+ try {
+ for (int i = 0; i < ecc_Ciphers.length; i++) {
+ if (ecc_Ciphers[i] > 0)
+ socket.setCipherPreference(
+ ecc_Ciphers[i], true);
+ }
+ } catch (Exception e) {
+ System.out.println("ERROR: unable to set ECC Cipher List");
+ System.out.println("ERROR: Exception = " + e.getMessage());
+ }
+
+ }
+ return true;
+ }
+
+ public boolean disableSSL2(SSLSocket socket) {
+ try {
+ SSLSocket.enableSSL3Default(true);
+ socket.enableSSL3(true);
+ socket.enableSSL2(false);
+ SSLSocket.enableSSL2Default(false);
+ socket.enableV2CompatibleHello(false);
+ } catch (Exception e) {
+ System.out.println("ERROR: Exception = " + e.getMessage());
+ }
+ return true;
+ }
+
+ public X509Certificate getServerCert() {
+ return server_cert;
+ }
+
+ public void set_parse_xml(boolean b) {
+ parse_xml = b;
+ }
+
+ public boolean approve(X509Certificate cert,
+ SSLCertificateApprovalCallback.ValidityStatus status) {
+
+ // when this method is called by SSLSocket we get the server cert
+ // we can capture this for future use.
+ server_cert = cert;
+ return true;
+ }
+
+ public boolean testsslConnect(String hostname, String portnumber) {
+ boolean st = true;
+
+ try {
+
+ System.out.println("#############################################");
+ System.out.println("Attempting to connect to: " + hostname + ":" +
+ portnumber);
+
+ Integer x = new Integer(portnumber);
+ int port = x.intValue();
+
+ SSLClientCertificateSelectionCallback certSelectionCallback =
+ new TestClientCertificateSelectionCallback();
+
+ Socket js = new Socket(InetAddress.getByName(hostname), port);
+ SSLSocket socket = new SSLSocket(js, hostname, this,
+ certSelectionCallback);
+ setCipherPref(socket);
+ disableSSL2(socket);
+ socket.forceHandshake();
+ System.out.println("Connected.");
+ socket.setUseClientMode(true);
+
+ // test connection to obtain server cert. close it.
+ socket.close();
+
+ }
+
+ catch (Exception e) {
+ System.err.println("Exception: Unable to Send Request:" + e);
+ e.printStackTrace();
+ st = false;
+ }
+
+ if (!st)
+ return false;
+ else
+ return true;
+ }
+
+ // performs ssl connect to given host/port requiring client auth
+ // posts the given query data
+ // returns HTTPResponse
+ public HTTPResponse sslConnectClientAuth(String hostname, String portnumber,
+ String client_cert, String url, String query) {
+
+ boolean st = true;
+ HTTPResponse hr = null;
+
+ try {
+
+ System.out.println("#############################################");
+ System.out.println("Attempting to connect to: " + hostname + ":" +
+ portnumber);
+
+ Integer x = new Integer(portnumber);
+ int port = x.intValue();
+
+ SSLCertificateApprovalCallback approvalCallback =
+ new TestCertApprovalCallback();
+ CertSelection certSelectionCallback =
+ new CertSelection();
+
+ // Client Cert for Auth is set here
+ certSelectionCallback.setClientCert(client_cert);
+
+ Socket js = new Socket(InetAddress.getByName(hostname), port);
+ SSLSocket socket = new SSLSocket(js, hostname, approvalCallback,
+ certSelectionCallback);
+ disableSSL2(socket);
+ setCipherPref(socket);
+ socket.forceHandshake();
+ System.out.println("Connected.");
+ socket.setUseClientMode(true);
+
+ System.out.println("Posting Query = " +
+ "https://" + hostname +
+ ":" + portnumber +
+ "/" + url +
+ "?" + query);
+
+ OutputStream rawos = socket.getOutputStream();
+ BufferedOutputStream os = new BufferedOutputStream(rawos);
+ PrintStream ps = new PrintStream(os);
+
+ ps.println("POST " + url + " HTTP/1.0");
+ ps.println("Connection: Keep-Alive");
+ ps.println("Content-type: application/x-www-form-urlencoded");
+ ps.println("Content-length: " + query.length());
+ ps.println("");
+ ps.print(query);
+ ps.flush();
+ os.flush();
+
+ try {
+ hr = readResponse(socket.getInputStream());
+ hr.parseContent();
+
+ } catch (Exception e) {
+ System.out.println("Exception");
+ e.printStackTrace();
+ st = false;
+ }
+
+ socket.close();
+ os.close();
+ rawos.close();
+ ps.close();
+
+ os = null;
+ rawos = null;
+ ps = null;
+
+ }
+
+ catch (Exception e) {
+ System.err.println("Exception: Unable to Send Request:" + e);
+ e.printStackTrace();
+ st = false;
+ }
+
+ if (!st)
+ return null;
+ else
+ return hr;
+ }
+
+ // performs ssl connect to given host/port
+ // posts the given query data
+ // returns HTTPResponse
+ public HTTPResponse sslConnect(String hostname, String portnumber,
+ String url, String query) {
+
+ boolean st = true;
+ HTTPResponse hr = null;
+
+ try {
+
+ System.out.println("#############################################");
+ System.out.println("Attempting to connect to: " + hostname + ":" +
+ portnumber);
+
+ Integer x = new Integer(portnumber);
+ int port = x.intValue();
+
+ SSLCertificateApprovalCallback approvalCallback =
+ new TestCertApprovalCallback();
+ SSLClientCertificateSelectionCallback certSelectionCallback =
+ new TestClientCertificateSelectionCallback();
+
+ Socket js = new Socket(InetAddress.getByName(hostname), port);
+ SSLSocket socket = new SSLSocket(js, hostname, approvalCallback,
+ certSelectionCallback);
+ setCipherPref(socket);
+ disableSSL2(socket);
+ socket.forceHandshake();
+ System.out.println("Connected.");
+ socket.setUseClientMode(true);
+
+ System.out.println("Posting Query = " +
+ "https://" + hostname +
+ ":" + portnumber +
+ "/" + url +
+ "?" + query);
+
+ OutputStream rawos = socket.getOutputStream();
+ BufferedOutputStream os = new BufferedOutputStream(rawos);
+ PrintStream ps = new PrintStream(os);
+
+ ps.println("POST " + url + " HTTP/1.0");
+
+ // check to see if we have a cookie to send
+ if (j_session_id != null)
+ ps.println("Cookie: " + j_session_id);
+
+ ps.println("Content-type: application/x-www-form-urlencoded");
+ ps.println("Content-length: " + query.length());
+ ps.println("Connection: Keep-Alive");
+
+ // special header posting if available
+ if (basic_auth_header_value != null) {
+ System.out.println("basic_auth = " + basic_auth_header_value);
+ ps.println("Authorization: Basic " + basic_auth_header_value);
+ }
+
+ ps.println("");
+ ps.println(query);
+ ps.println("\r");
+ ps.flush();
+ os.flush();
+
+ try {
+ hr = readResponse(socket.getInputStream());
+ hr.parseContent();
+
+ } catch (Exception e) {
+ System.out.println("Exception");
+ e.printStackTrace();
+ st = false;
+ }
+
+ socket.close();
+ os.close();
+ rawos.close();
+ ps.close();
+
+ os = null;
+ rawos = null;
+ ps = null;
+
+ }
+
+ catch (Exception e) {
+ System.err.println("Exception: Unable to Send Request:" + e);
+ e.printStackTrace();
+ st = false;
+ }
+
+ if (!st)
+ return null;
+ else
+ return hr;
+ }
+
+ // performs non ssl connect to given host/port
+ // posts the given query data
+ // returns HTTPResponse
+ public HTTPResponse nonsslConnect(String hostname, String portnumber,
+ String url, String query) {
+
+ boolean st = true;
+ HTTPResponse hr = null;
+
+ try {
+
+ System.out.println("#############################################");
+ System.out.println("Attempting to connect to: " + hostname + ":" +
+ portnumber);
+
+ Integer x = new Integer(portnumber);
+ int port = x.intValue();
+
+ Socket socket = new Socket(hostname, port);
+
+ System.out.println("Posting Query = " +
+ "http://" + hostname +
+ ":" + portnumber +
+ "/" + url +
+ "?" + query);
+
+ OutputStream rawos = socket.getOutputStream();
+ BufferedOutputStream os = new BufferedOutputStream(rawos);
+ PrintStream ps = new PrintStream(os);
+
+ System.out.println("Connected.");
+
+ ps.println("POST " + url + " HTTP/1.0");
+
+ // check to see if we have a cookie to send
+ if (j_session_id != null)
+ ps.println("Cookie: " + j_session_id);
+
+ ps.println("Content-type: application/x-www-form-urlencoded");
+ ps.println("Content-length: " + query.length());
+ ps.println("Connection: Keep-Alive");
+
+ // special header posting if available
+ if (basic_auth_header_value != null) {
+ System.out.println("basic_auth = " + basic_auth_header_value);
+ ps.println("Authorization: Basic " + basic_auth_header_value);
+ }
+
+ ps.println("");
+ ps.println(query);
+ ps.println("\r");
+ ps.flush();
+ os.flush();
+
+ try {
+ hr = readResponse(socket.getInputStream());
+ hr.parseContent();
+
+ } catch (Exception e) {
+ System.out.println("Exception");
+ e.printStackTrace();
+ st = false;
+ }
+
+ socket.close();
+ os.close();
+ rawos.close();
+ ps.close();
+
+ os = null;
+ rawos = null;
+ ps = null;
+
+ }
+
+ catch (Exception e) {
+ System.err.println("Exception: Unable to Send Request:" + e);
+ e.printStackTrace();
+ st = false;
+ }
+
+ if (!st)
+ return null;
+ else
+ return hr;
+ }
+
+ public HTTPResponse readResponse(InputStream inputStream)
+ throws Exception {
+ // read response from http input stream and return HTTPResponse
+ byte[] buffer = new byte[BUFFER_SIZE];
+ HTTPResponse response = null;
+ int statusCode = 0;
+
+ // Read an initial chunk of the response from the server.
+ int bytesRead = inputStream.read(buffer);
+ if (bytesRead < 0) {
+ throw new IOException("Unexpected end of input stream from server");
+ }
+
+ // Hopefully, this initial chunk will contain the entire header, so look for
+ // it. Technically, HTTP is supposed to use CRLF as the end-of-line
+ // character, so look for that first, but also check for LF by itself just
+ // in case.
+ int headerEndPos = -1;
+ int dataStartPos = -1;
+ for (int i = 0; i < (bytesRead - 3); i++) {
+ if ((buffer[i] == '\r') && (buffer[i + 1] == '\n') &&
+ (buffer[i + 2] == '\r') && (buffer[i + 3] == '\n')) {
+ headerEndPos = i;
+ dataStartPos = i + 4;
+ break;
+ }
+ }
+
+ if (headerEndPos < 0) {
+ for (int i = 0; i < (bytesRead - 1); i++) {
+ if ((buffer[i] == '\n') && (buffer[i + 1] == '\n')) {
+ headerEndPos = i;
+ dataStartPos = i + 2;
+ break;
+ }
+ }
+ }
+
+ // In the event that we didn't get the entire header in the first pass, keep
+ // reading until we do have enough.
+ if (headerEndPos < 0) {
+ byte[] buffer2 = new byte[BUFFER_SIZE];
+ while (headerEndPos < 0) {
+ int startPos = bytesRead;
+ int moreBytesRead = inputStream.read(buffer2);
+ if (moreBytesRead < 0) {
+ throw new IOException("Unexpected end of input stream from server " +
+ "when reading more data from response");
+ }
+
+ byte[] newBuffer = new byte[bytesRead + moreBytesRead];
+ System.arraycopy(buffer, 0, newBuffer, 0, bytesRead);
+ System.arraycopy(buffer2, 0, newBuffer, bytesRead, moreBytesRead);
+ buffer = newBuffer;
+ bytesRead += moreBytesRead;
+
+ for (int i = startPos; i < (bytesRead - 3); i++) {
+ if ((buffer[i] == '\r') && (buffer[i + 1] == '\n') &&
+ (buffer[i + 2] == '\r') && (buffer[i + 3] == '\n')) {
+ headerEndPos = i;
+ dataStartPos = i + 4;
+ break;
+ }
+ }
+
+ if (headerEndPos < 0) {
+ for (int i = startPos; i < (bytesRead - 1); i++) {
+ if ((buffer[i] == '\n') && (buffer[i + 1] == '\n')) {
+ headerEndPos = i;
+ dataStartPos = i + 2;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // At this point, we should have the entire header, so read and analyze it.
+ String headerStr = new String(buffer, 0, headerEndPos);
+ StringTokenizer tokenizer = new StringTokenizer(headerStr, "\r\n");
+ if (tokenizer.hasMoreTokens()) {
+ String statusLine = tokenizer.nextToken();
+ if (debugMode) {
+ System.out.println("RESPONSE STATUS: " + statusLine);
+ }
+
+ int spacePos = statusLine.indexOf(' ');
+ if (spacePos < 0) {
+ System.out.println("ERROR: Unable to parse response header -- could " +
+ "not find protocol/version delimiter");
+ return null;
+
+ }
+
+ String protocolVersion = statusLine.substring(0, spacePos);
+ int spacePos2 = statusLine.indexOf(' ', spacePos + 1);
+ if (spacePos2 < 0) {
+ System.out.println("ERROR: Unable to parse response header -- could " +
+ "not find response code delimiter");
+ return null;
+ }
+
+ try {
+ statusCode = Integer.parseInt(statusLine.substring(spacePos + 1,
+ spacePos2));
+ } catch (NumberFormatException nfe) {
+ System.out.println("Unable to parse response header -- could " +
+ "not interpret status code as an integer");
+ return null;
+ }
+
+ String responseMessage = statusLine.substring(spacePos2 + 1);
+ response = new HTTPResponse(statusCode, protocolVersion,
+ responseMessage);
+
+ while (tokenizer.hasMoreTokens()) {
+ String headerLine = tokenizer.nextToken();
+ if (debugMode) {
+ System.out.println("RESPONSE HEADER: " + headerLine);
+ }
+
+ int colonPos = headerLine.indexOf(':');
+ if (colonPos < 0) {
+ if (headerLine.toLowerCase().startsWith("http/")) {
+ // This is a direct violation of RFC 2616, but certain HTTP servers
+ // seem to immediately follow a 100 continue with a 200 ok without
+ // the required CRLF in between.
+ System.out.println("ERROR: Found illegal status line '" + headerLine +
+ "'in the middle of a response -- attempting " +
+ "to deal with it as the start of a new " +
+ "response.");
+ statusLine = headerLine;
+ spacePos = statusLine.indexOf(' ');
+ if (spacePos < 0) {
+ System.out.println("ERROR: Unable to parse response header -- " +
+ "could not find protocol/version " +
+ "delimiter");
+ return null;
+ }
+
+ protocolVersion = statusLine.substring(0, spacePos);
+ spacePos2 = statusLine.indexOf(' ', spacePos + 1);
+ if (spacePos2 < 0) {
+ System.out.println("ERROR: Unable to parse response header -- " +
+ "could not find response code delimiter");
+ return null;
+ }
+
+ try {
+ statusCode = Integer.parseInt(statusLine.substring(spacePos + 1,
+ spacePos2));
+ } catch (NumberFormatException nfe) {
+ System.out.println("ERROR: Unable to parse response header -- " +
+ "could not interpret status code as an " +
+ "integer");
+ return null;
+ }
+
+ responseMessage = statusLine.substring(spacePos2 + 1);
+ response = new HTTPResponse(statusCode, protocolVersion,
+ responseMessage);
+ continue;
+ } else {
+ System.out.println("ERROR: Unable to parse response header -- no " +
+ "colon found on header line \"" +
+ headerLine + "\"");
+ }
+ }
+
+ String headerName = headerLine.substring(0, colonPos);
+ String headerValue = headerLine.substring(colonPos + 1).trim();
+ response.addHeader(headerName, headerValue);
+ }
+ } else {
+ // This should never happen -- an empty response
+ System.out.println("Unable to parse response header -- empty " +
+ "header");
+ }
+
+ // If the status code was 100 (continue), then it was an intermediate header
+ // and we need to keep reading until we get the real response header.
+ while (response.getStatusCode() == 100) {
+ if (dataStartPos < bytesRead) {
+ byte[] newBuffer = new byte[bytesRead - dataStartPos];
+ System.arraycopy(buffer, dataStartPos, newBuffer, 0, newBuffer.length);
+ buffer = newBuffer;
+ bytesRead = buffer.length;
+
+ headerEndPos = -1;
+ for (int i = 0; i < (bytesRead - 3); i++) {
+ if ((buffer[i] == '\r') && (buffer[i + 1] == '\n') &&
+ (buffer[i + 2] == '\r') && (buffer[i + 3] == '\n')) {
+ headerEndPos = i;
+ dataStartPos = i + 4;
+ break;
+ }
+ }
+
+ if (headerEndPos < 0) {
+ for (int i = 0; i < (bytesRead - 1); i++) {
+ if ((buffer[i] == '\n') && (buffer[i + 1] == '\n')) {
+ headerEndPos = i;
+ dataStartPos = i + 2;
+ break;
+ }
+ }
+ }
+ } else {
+ buffer = new byte[0];
+ bytesRead = 0;
+ headerEndPos = -1;
+ }
+
+ byte[] buffer2 = new byte[BUFFER_SIZE];
+ while (headerEndPos < 0) {
+ int startPos = bytesRead;
+ int moreBytesRead = inputStream.read(buffer2);
+
+ if (moreBytesRead < 0) {
+ throw new IOException("Unexpected end of input stream from server " +
+ "when reading more data from response");
+ }
+
+ byte[] newBuffer = new byte[bytesRead + moreBytesRead];
+ System.arraycopy(buffer, 0, newBuffer, 0, bytesRead);
+ System.arraycopy(buffer2, 0, newBuffer, bytesRead, moreBytesRead);
+ buffer = newBuffer;
+ bytesRead += moreBytesRead;
+
+ for (int i = startPos; i < (bytesRead - 3); i++) {
+ if ((buffer[i] == '\r') && (buffer[i + 1] == '\n') &&
+ (buffer[i + 2] == '\r') && (buffer[i + 3] == '\n')) {
+ headerEndPos = i;
+ dataStartPos = i + 4;
+ break;
+ }
+ }
+
+ if (headerEndPos < 0) {
+ for (int i = startPos; i < (bytesRead - 1); i++) {
+ if ((buffer[i] == '\n') && (buffer[i + 1] == '\n')) {
+ headerEndPos = i;
+ dataStartPos = i + 2;
+ break;
+ }
+ }
+ }
+ }
+
+ // We should now have the next header, so examine it.
+ headerStr = new String(buffer, 0, headerEndPos);
+ tokenizer = new StringTokenizer(headerStr, "\r\n");
+ if (tokenizer.hasMoreTokens()) {
+ String statusLine = tokenizer.nextToken();
+ if (debugMode) {
+ System.out.println("RESPONSE STATUS: " + statusLine);
+ }
+
+ int spacePos = statusLine.indexOf(' ');
+ if (spacePos < 0) {
+ System.out.println("Unable to parse response header -- could " +
+ "not find protocol/version delimiter");
+ }
+
+ String protocolVersion = statusLine.substring(0, spacePos);
+ int spacePos2 = statusLine.indexOf(' ', spacePos + 1);
+ if (spacePos2 < 0) {
+ System.out.println("Unable to parse response header -- could " +
+ "not find response code delimiter");
+ }
+
+ try {
+ statusCode = Integer.parseInt(statusLine.substring(spacePos + 1,
+ spacePos2));
+ } catch (NumberFormatException nfe) {
+ System.out.println("Unable to parse response header -- could " +
+ "not interpret status code as an integer");
+ }
+
+ String responseMessage = statusLine.substring(spacePos2 + 1);
+ response = new HTTPResponse(statusCode, protocolVersion,
+ responseMessage);
+
+ while (tokenizer.hasMoreTokens()) {
+ String headerLine = tokenizer.nextToken();
+ if (debugMode) {
+ System.out.println("RESPONSE HEADER: " + headerLine);
+ }
+
+ int colonPos = headerLine.indexOf(':');
+ if (colonPos < 0) {
+ System.out.println("Unable to parse response header -- no " +
+ "colon found on header line \"" +
+ headerLine + "\"");
+ }
+
+ String headerName = headerLine.substring(0, colonPos);
+ String headerValue = headerLine.substring(colonPos + 1).trim();
+ response.addHeader(headerName, headerValue);
+ }
+ } else {
+ // This should never happen -- an empty response
+ System.out.println("Unable to parse response header -- empty " +
+ "header");
+ }
+ }
+
+ // Now that we have parsed the header, use it to determine how much data
+ // there is. If we're lucky, the server will have told us using the
+ // "Content-Length" header.
+ int contentLength = response.getContentLength();
+
+ if (contentLength >= 0) {
+ readContentDataUsingLength(response, inputStream, contentLength, buffer,
+ dataStartPos, bytesRead);
+ } else {
+ // It's not chunked encoding, so our last hope is that the connection
+ // will be closed when all the data has been sent.
+ String connectionStr = response.getHeader("connection");
+ if ((connectionStr != null) &&
+ (!connectionStr.equalsIgnoreCase("close"))) {
+ System.out.println("ERROR:Unable to determine how to find when the " +
+ "end of the data has been reached (no " +
+ "content length, not chunked encoding, " +
+ "connection string is \"" + connectionStr +
+ "\" rather than \"close\")");
+ } else {
+ readContentDataUsingConnectionClose(response, inputStream, buffer,
+ dataStartPos, bytesRead);
+ }
+ }
+ // Finally, return the response to the caller.
+ return response;
+ }
+
+ /**
+ * Reads the actual data of the response based on the content length provided
+ * by the server in the response header.
+ *
+ * @param response The response with which the data is associated.
+ * @param inputStream The input stream from which to read the response.
+ * @param contentLength The number of bytes that the server said are in the
+ * response.
+ * @param dataRead The data that we have already read. This includes
+ * the header data, but may also include some or all of
+ * the content data as well.
+ * @param dataStartPos The position in the provided array at which the
+ * content data starts.
+ * @param dataBytesRead The total number of valid bytes in the provided
+ * array that should be considered part of the
+ * response (the number of header bytes is included in
+ * this count).
+ *
+ * @throws IOException If a problem occurs while reading data from the
+ * server.
+ */
+ private void readContentDataUsingLength(HTTPResponse response,
+ InputStream inputStream,
+ int contentLength, byte[] dataRead,
+ int dataStartPos, int dataBytesRead)
+ throws IOException {
+ if (contentLength <= 0) {
+ response.setResponseData(new byte[0]);
+ return;
+ }
+
+ byte[] contentBytes = new byte[contentLength];
+ int startPos = 0;
+ if (dataBytesRead > dataStartPos) {
+ // We've already got some data to include in the header, so copy that into
+ // the content array. Make sure the server didn't do something stupid
+ // like return more data than it told us was in the response.
+ int bytesToCopy = Math.min(contentBytes.length,
+ (dataBytesRead - dataStartPos));
+ System.arraycopy(dataRead, dataStartPos, contentBytes, 0, bytesToCopy);
+ startPos = bytesToCopy;
+ }
+
+ byte[] buffer = new byte[BUFFER_SIZE];
+ while (startPos < contentBytes.length) {
+ int bytesRead = inputStream.read(buffer);
+ if (bytesRead < 0) {
+ throw new IOException("Unexpected end of input stream reached when " +
+ "reading data from the server");
+ }
+
+ System.arraycopy(buffer, 0, contentBytes, startPos, bytesRead);
+ startPos += bytesRead;
+ }
+
+ response.setResponseData(contentBytes);
+ }
+
+ /**
+ * Reads the actual data of the response using chunked encoding, which is a
+ * way for the server to provide the data in several chunks rather than all at
+ * once.
+ *
+ * @param response The response with which the data is associated.
+ * @param inputStream The input stream from which to read the response.
+ * @param dataRead The data that we have already read. This includes
+ * the header data, but may also include some or all of
+ * the content data as well.
+ * @param dataStartPos The position in the provided array at which the
+ * content data starts.
+ * @param dataBytesRead The total number of valid bytes in the provided
+ * array that should be considered part of the
+ * response (the number of header bytes is included in
+ * this count).
+ *
+ * @throws IOException If a problem occurs while reading data from the
+ * server.
+ */
+ private void readContentDataUsingConnectionClose(HTTPResponse response,
+ InputStream inputStream,
+ byte[] dataRead,
+ int dataStartPos,
+ int dataBytesRead)
+ throws IOException {
+ // Create an array list that we will use to hold the chunks of information
+ // read from the server.
+ ArrayList<ByteBuffer> bufferList = new ArrayList<ByteBuffer>();
+
+ // Create a variable to hold the total number of bytes in the data.
+ int totalBytes = 0;
+
+ // See if we have unread data in the array already provided.
+ int existingBytes = dataBytesRead - dataStartPos;
+ if (existingBytes > 0) {
+ ByteBuffer byteBuffer = ByteBuffer.allocate(existingBytes);
+ byteBuffer.put(dataRead, dataStartPos, existingBytes);
+ bufferList.add(byteBuffer);
+ totalBytes += existingBytes;
+ }
+
+ // Keep reading until we hit the end of the input stream.
+ byte[] buffer = new byte[BUFFER_SIZE];
+ while (true) {
+ try {
+ int bytesRead = inputStream.read(buffer);
+ if (bytesRead < 0) {
+ // We've hit the end of the stream and therefore the end of the
+ // document.
+ break;
+ } else if (bytesRead > 0) {
+ ByteBuffer byteBuffer = ByteBuffer.allocate(bytesRead);
+ byteBuffer.put(buffer, 0, bytesRead);
+ bufferList.add(byteBuffer);
+ totalBytes += bytesRead;
+ }
+ } catch (IOException ioe) {
+ // In this case we'll assume that the end of the stream has been
+ // reached. It's possible that there was some other error, but we can't
+ // do anything about it so try to process what we've got so far.
+ System.out.println("ERROR: unable to read until end of stream");
+ System.out.println("ERROR: " + ioe.getMessage());
+ break;
+ }
+ }
+
+ // Assemble the contents of all the buffers into a big array and store that
+ // array in the response.
+ int startPos = 0;
+ byte[] contentData = new byte[totalBytes];
+ for (int i = 0; i < bufferList.size(); i++) {
+ ByteBuffer byteBuffer = (ByteBuffer) bufferList.get(i);
+ byteBuffer.flip();
+ byteBuffer.get(contentData, startPos, byteBuffer.limit());
+ startPos += byteBuffer.limit();
+ }
+ response.setResponseData(contentData);
+ }
+
+ // performs ssl connect to given host/port
+ // posts the given query data - format - a byte array
+ // returns HTTPResponse
+
+ public HTTPResponse sslConnect(String hostname, String portnumber,
+ String url, byte[] data) {
+
+ boolean st = true;
+ HTTPResponse hr = null;
+
+ try {
+
+ System.out.println("#############################################");
+ System.out.println("Attempting to connect to: " + hostname + ":" +
+ portnumber);
+
+ Integer x = new Integer(portnumber);
+ int port = x.intValue();
+
+ SSLCertificateApprovalCallback approvalCallback =
+ new TestCertApprovalCallback();
+ SSLClientCertificateSelectionCallback certSelectionCallback =
+ new TestClientCertificateSelectionCallback();
+
+ Socket js = new Socket(InetAddress.getByName(hostname), port);
+ SSLSocket socket = new SSLSocket(js, hostname, approvalCallback,
+ certSelectionCallback);
+ setCipherPref(socket);
+ disableSSL2(socket);
+ socket.forceHandshake();
+ System.out.println("Connected.");
+ socket.setUseClientMode(true);
+
+ DataOutputStream dos =
+ new DataOutputStream(socket.getOutputStream());
+ dos.writeBytes("POST /ocsp HTTP/1.0\r\n");
+ dos.writeBytes("Content-length: " + data.length + "\r\n");
+ dos.writeBytes("\r\n");
+ dos.write(data);
+ dos.writeBytes("\r\n");
+ dos.flush();
+
+ try {
+ hr = readResponse(socket.getInputStream());
+ hr.parseContent();
+ } catch (Exception e) {
+ System.out.println("Exception");
+ e.printStackTrace();
+ st = false;
+ }
+
+ socket.close();
+ dos.close();
+
+ }
+
+ catch (Exception e) {
+ System.err.println("Exception: Unable to Send Request:" + e);
+ e.printStackTrace();
+ st = false;
+ }
+
+ if (!st)
+ return null;
+ else
+ return hr;
+ }
+
+ // performs non ssl connect to given host/port
+ // posts the given query data
+ // returns HTTPResponse
+ public HTTPResponse nonsslConnect(String hostname, String portnumber,
+ String url, byte[] data) {
+
+ boolean st = true;
+ HTTPResponse hr = null;
+
+ try {
+
+ System.out.println("#############################################");
+ System.out.println("Attempting to connect to: " + hostname + ":" +
+ portnumber);
+
+ Integer x = new Integer(portnumber);
+ int port = x.intValue();
+
+ Socket socket = new Socket(hostname, port);
+
+ System.out.println("Posting Query = " +
+ "http://" + hostname +
+ ":" + portnumber +
+ "/" + url);
+
+ System.out.println("Connected.");
+
+ DataOutputStream dos =
+ new DataOutputStream(socket.getOutputStream());
+ dos.writeBytes("POST " + url + " HTTP/1.0\r\n");
+ dos.writeBytes("Content-length: " + data.length + "\r\n");
+ dos.writeBytes("\r\n");
+ dos.write(data);
+ dos.writeBytes("\r\n");
+ dos.flush();
+
+ try {
+ hr = readResponse(socket.getInputStream());
+ hr.parseContent();
+ } catch (Exception e) {
+ System.out.println("Exception");
+ e.printStackTrace();
+ st = false;
+ }
+
+ socket.close();
+ dos.close();
+
+ }
+
+ catch (Exception e) {
+ System.err.println("Exception: Unable to Send Request:" + e);
+ e.printStackTrace();
+ st = false;
+ }
+
+ if (!st)
+ return null;
+ else
+ return hr;
+ }
+
+ public static boolean init_nss() {
+ try {
+
+ ComCrypto cCrypt = new ComCrypto(client_certdb_dir,
+ client_certdb_pwd,
+ null,
+ null,
+ null);
+ cCrypt.setDebug(true);
+ cCrypt.setGenerateRequest(false);
+ cCrypt.loginDB();
+ } catch (Exception e) {
+ System.out.println("ERROR: unable to login to : " +
+ client_certdb_dir);
+ return false;
+ }
+
+ return true;
+ }
+
+ public static void main(String args[]) throws UnsupportedEncodingException {
+ HTTPClient hc = new HTTPClient();
+ HTTPResponse hr = null;
+
+ // parse args
+ StringHolder x_hostname = new StringHolder();
+ StringHolder x_port = new StringHolder();
+ StringHolder x_ssl = new StringHolder();
+ StringHolder x_client_certdb_dir = new StringHolder();
+ StringHolder x_client_certdb_pwd = new StringHolder();
+ StringHolder x_client_cert_nickname = new StringHolder();
+ StringHolder x_uri = new StringHolder();
+ StringHolder x_query = new StringHolder();
+ StringHolder x_request_type = new StringHolder();
+ StringHolder x_auth_type = new StringHolder();
+ StringHolder x_user_id = new StringHolder();
+ StringHolder x_user_password = new StringHolder();
+ StringHolder x_debug = new StringHolder();
+ StringHolder x_decode = new StringHolder();
+
+ // parse the args
+ ArgParser parser = new ArgParser("HTTPClient");
+
+ parser.addOption("-hostname %s #Hostname",
+ x_hostname);
+ parser.addOption("-port %s #port number",
+ x_port);
+ parser.addOption("-ssl %s #HTTP or HTTPS[true or false]",
+ x_ssl);
+ parser.addOption("-client_certdb_dir %s #CertDB dir",
+ x_client_certdb_dir);
+ parser.addOption("-client_certdb_pwd %s #CertDB password",
+ x_client_certdb_pwd);
+ parser.addOption("-client_cert_nickname %s #client cert nickname",
+ x_client_cert_nickname);
+ parser.addOption("-uri %s #URI",
+ x_uri);
+ parser.addOption("-query %s #URL encoded query string[note: url encode value part only for CS operations]",
+ x_query);
+ parser.addOption("-request_type %s #Request Type [ post ]",
+ x_request_type);
+ parser.addOption("-user_id %s #user id for authorization",
+ x_user_id);
+ parser.addOption("-user_password %s #password for authorization",
+ x_user_password);
+ parser.addOption("-auth_type %s #type of authorization [ BASIC ]",
+ x_auth_type);
+ parser.addOption("-debug %s #enables display of debugging info",
+ x_debug);
+ parser.addOption("-decode %s #URL Decode the resulting output",
+ x_decode);
+
+ // and then match the arguments
+ String[] unmatched = null;
+ unmatched = parser.matchAllArgs(args, 0, ArgParser.EXIT_ON_UNMATCHED);
+
+ if (unmatched != null) {
+ System.out.println("ERROR: Argument Mismatch");
+ System.exit(-1);
+ }
+
+ // set variables
+ cs_hostname = x_hostname.value;
+ cs_port = x_port.value;
+ ssl = x_ssl.value;
+ client_certdb_dir = x_client_certdb_dir.value;
+ client_certdb_pwd = x_client_certdb_pwd.value;
+ client_cert_nickname = x_client_cert_nickname.value;
+ uri = x_uri.value;
+ query = x_query.value;
+ request_type = x_request_type.value;
+ user_id = x_user_id.value;
+ user_password = x_user_password.value;
+ auth_type = x_auth_type.value;
+ debug = x_debug.value;
+
+ String decode = x_decode.value;
+
+ // init_nss if needed
+ boolean st = init_nss();
+ if (!st)
+ System.exit(-1);
+
+ // set basic auth if needed
+ if (auth_type != null && auth_type.equalsIgnoreCase("BASIC")) {
+ // BASE64Encoder encoder = new BASE64Encoder();
+
+ // String temp = encoder.encodeBuffer((user_id +
+ // ":" + user_password).getBytes());
+ String temp = Utils.base64encode((user_id +
+ ":" + user_password).getBytes());
+
+ // note: temp already contains \r and \n.
+ // remove \r and \n from the base64 encoded string.
+ // causes problems when sending http post requests
+ // using PrintStream.println()
+
+ temp = temp.replaceAll("\\r", "");
+ temp = temp.replaceAll("\\n", "");
+
+ basic_auth_header_value = temp;
+ }
+
+ // route to proper function
+
+ if (ssl != null && ssl.equalsIgnoreCase("true")) {
+ if (client_cert_nickname != null &&
+ !client_cert_nickname.equalsIgnoreCase("null")) {
+ // ssl client auth call
+
+ hr = hc.sslConnectClientAuth(cs_hostname, cs_port,
+ client_cert_nickname,
+ uri, query);
+ }
+
+ else {
+ // ssl client call
+ hr = hc.sslConnect(cs_hostname, cs_port, uri, query);
+ }
+ } else if (ssl != null && ssl.equalsIgnoreCase("false")) {
+ // non ssl connect
+ hr = hc.nonsslConnect(cs_hostname, cs_port, uri, query);
+ } else {
+ System.out.println("ERROR: ssl parameter is null");
+ System.exit(-1);
+ }
+
+ // collect and print response
+
+ if (hr.getStatusCode() == 200)
+ System.out.println("Response from Host:" + cs_hostname + " OK");
+ else {
+ System.out.println("ERROR: unable to get response from host:" +
+ cs_hostname);
+ System.exit(-1);
+ }
+
+ String responseValue = null;
+ if (decode.equalsIgnoreCase("true"))
+ responseValue = URLDecoder.decode(hr.getHTML(), "UTF-8");
+ else
+ responseValue = hr.getHTML();
+
+ System.out.println("###############################");
+ System.out.println("RESULT=" + responseValue);
+ System.out.println("###############################");
+
+ }
+
+};
diff --git a/base/silent/src/com/netscape/pkisilent/http/HTTPResponse.java b/base/silent/src/com/netscape/pkisilent/http/HTTPResponse.java
new file mode 100644
index 000000000..9ade1c133
--- /dev/null
+++ b/base/silent/src/com/netscape/pkisilent/http/HTTPResponse.java
@@ -0,0 +1,314 @@
+package com.netscape.pkisilent.http;
+
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+import java.util.ArrayList;
+import java.util.StringTokenizer;
+
+import com.netscape.pkisilent.common.Utilities;
+
+public class HTTPResponse {
+ // The set of cookie values included in this response.
+ ArrayList<String> cookieValueList;
+
+ // The names of the headers included in this response.
+ ArrayList<String> headerNameList;
+
+ // The values of the headers included in this response.
+ ArrayList<String> headerValueList;
+
+ // The actual data associated with this response.
+ byte[] responseData;
+
+ // The HTML document included in the response, if appropriate.
+ HTMLDocument htmlDocument;
+
+ // The number of bytes contained in the content of the response.
+ int contentLength;
+
+ // The HTTP status code for the response.
+ int statusCode;
+
+ // The MIME type of the response.
+ String contentType;
+
+ // The protocol version string for this response.
+ String protolVersion;
+
+ // The response message for this response.
+ String responseMessage;
+
+ // Parsed Content Name/Value pair info
+ ArrayList<String> contentName;
+ ArrayList<String> contentValue;
+
+ /**
+ * Creates a new HTTP response with the provided status code.
+ *
+ * @param statusCode The HTTP status code for this response.
+ * @param protocolVersion The protocol and version for this response.
+ * @param responseMessage The message associated with this response.
+ */
+ public HTTPResponse(int statusCode, String protocolVersion,
+ String responseMessage) {
+ this.statusCode = statusCode;
+ this.protolVersion = protocolVersion;
+ this.responseMessage = responseMessage;
+
+ htmlDocument = null;
+ contentType = null;
+ contentLength = -1;
+ responseData = new byte[0];
+ cookieValueList = new ArrayList<String>();
+ headerNameList = new ArrayList<String>();
+ headerValueList = new ArrayList<String>();
+ contentName = new ArrayList<String>();
+ contentValue = new ArrayList<String>();
+ }
+
+ /**
+ * Retrieves the status code for this HTTP response.
+ *
+ * @return The status code for this HTTP response.
+ */
+ public int getStatusCode() {
+ return statusCode;
+ }
+
+ /**
+ * Retrieves the protocol version for this HTTP response.
+ *
+ * @return The protocol version for this HTTP response.
+ */
+ public String getProtocolVersion() {
+ return protolVersion;
+ }
+
+ /**
+ * Retrieves the response message for this HTTP response.
+ *
+ * @return The response message for this HTTP response.
+ */
+ public String getResponseMessage() {
+ return responseMessage;
+ }
+
+ /**
+ * Retrieves the value of the header with the specified name. If the
+ * specified header has more than one value, then only the first will be
+ * retrieved.
+ *
+ * @return The value of the header with the specified name, or <CODE>null</CODE> if no such header is available.
+ */
+ public String getHeader(String headerName) {
+ String lowerName = headerName.toLowerCase();
+
+ for (int i = 0; i < headerNameList.size(); i++) {
+ if (lowerName.equals(headerNameList.get(i))) {
+ return headerValueList.get(i);
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Retrieves the set of values for the specified header.
+ *
+ * @return The set of values for the specified header.
+ */
+ public String[] getHeaderValues(String headerName) {
+ ArrayList<String> valueList = new ArrayList<String>();
+ String lowerName = headerName.toLowerCase();
+
+ for (int i = 0; i < headerNameList.size(); i++) {
+ if (lowerName.equals(headerNameList.get(i))) {
+ valueList.add(headerValueList.get(i));
+ }
+ }
+
+ String[] values = new String[valueList.size()];
+ valueList.toArray(values);
+ return values;
+ }
+
+ /**
+ * Adds a header with the given name and value to this response.
+ *
+ * @param headerName The name of the header to add to this response.
+ * @param headerValue The value of the header to add to this response.
+ */
+ public void addHeader(String headerName, String headerValue) {
+ String lowerName = headerName.toLowerCase();
+ headerNameList.add(lowerName);
+ headerValueList.add(headerValue);
+
+ if (lowerName.equals("content-length")) {
+ try {
+ contentLength = Integer.parseInt(headerValue);
+ } catch (NumberFormatException nfe) {
+ }
+ } else if (lowerName.equals("content-type")) {
+ contentType = headerValue;
+ } else if (lowerName.equals("set-cookie")) {
+ cookieValueList.add(headerValue);
+ }
+ }
+
+ /**
+ * Retrieves a two-dimensional array containing the header data for this
+ * response, with each element being an array containing a name/value pair.
+ *
+ * @return A two-dimensional array containing the header data for this
+ * response.
+ */
+ public String[][] getHeaderElements() {
+ String[][] headerElements = new String[headerNameList.size()][2];
+ for (int i = 0; i < headerNameList.size(); i++) {
+ headerElements[i][0] = headerNameList.get(i);
+ headerElements[i][1] = headerValueList.get(i);
+ }
+
+ return headerElements;
+ }
+
+ /**
+ * Retrieves the raw data included in this HTTP response. If the response did
+ * not include any data, an empty array will be returned.
+ *
+ * @return The raw data included in this HTTP response.
+ */
+ public byte[] getResponseData() {
+ return responseData;
+ }
+
+ public String getHTML() {
+ String htmlString = new String(responseData);
+ return htmlString;
+ }
+
+ public String getHTMLwithoutTags() {
+ String htmlString = new String(responseData);
+ HTMLDocument htmldocument = new HTMLDocument(htmlString);
+ return htmldocument.getTextData();
+ }
+
+ public void parseContent() {
+ // parse the responseData byte[] buffer and split content into name
+ // value pair
+ String htmlString = new String(responseData);
+ StringTokenizer st = new StringTokenizer(htmlString, "\n");
+ Utilities ut = new Utilities();
+
+ while (st.hasMoreTokens()) {
+ String line = st.nextToken();
+ // format for line assumed to be name="value"; format
+
+ int eqPos = line.indexOf('=');
+ if (eqPos != -1) {
+ String name = line.substring(0, eqPos);
+ String tempval = line.substring(eqPos + 1).trim();
+ String value = ut.cleanupQuotes(ut.removechar(tempval));
+
+ // add to array
+ this.contentName.add(name.trim());
+ this.contentValue.add(value);
+ }
+
+ }
+
+ }
+
+ public String getContentValue(String headerName) {
+ for (int i = 0; i < contentName.size(); i++) {
+ if (headerName.equals(contentName.get(i))) {
+ return contentValue.get(i);
+ }
+ }
+
+ return null;
+ }
+
+ public ArrayList<String> getContentNames() {
+ return contentName;
+ }
+
+ public ArrayList<String> getContentValues() {
+ return contentValue;
+ }
+
+ /**
+ * Sets the actual data associated with this response.
+ *
+ * @param responseData The actual data associated with this response.
+ */
+ public void setResponseData(byte[] responseData) {
+ if (responseData == null) {
+ this.responseData = new byte[0];
+ } else {
+ this.responseData = responseData;
+ }
+ }
+
+ /**
+ * Retrieves the content length associated with this response.
+ *
+ * @return The content length associated with this response, or -1 if no
+ * content length is available.
+ */
+ public int getContentLength() {
+ return contentLength;
+ }
+
+ /**
+ * Retrieves the content type associated with this response.
+ *
+ * @return The content type associated with this response, or <CODE>null</CODE> if no content type is available.
+ */
+ public String getContentType() {
+ return contentType;
+ }
+
+ /**
+ * Retrieves an array containing the values of the cookies that should be set
+ * based on the information in this response.
+ *
+ * @return An array containing the values of the cookies that should be set
+ * based on the information in this response.
+ */
+ public String[] getCookieValues() {
+ String[] cookieValues = new String[cookieValueList.size()];
+ cookieValueList.toArray(cookieValues);
+ return cookieValues;
+ }
+
+ public String getCookieValue(String headerName) {
+ for (int i = 0; i < cookieValueList.size(); i++) {
+ System.out.println("cookie list: " + cookieValueList.get(i));
+
+ String temp = cookieValueList.get(i);
+ if (temp.startsWith(headerName)) {
+ return cookieValueList.get(i);
+ }
+ }
+
+ return null;
+ }
+
+}
H 2# r̟g$R$Av+vQEQRM#1fNԍk׉y{'{<y?F9v/e?V43Z$ lg aU>B cW~1>BxIA0L!&魟D+!83h%?h /,^ 7!H Rd_sé@@-M96<.TQƫ4q}i=$::`4>v t'+@ُC-!1W=`U rmNx/vh= j M+/xq(PŴQ~PQ+kQvz.1{vG&`\/ؕ,\xmFPW~E9uYe㋖u byU:k$>"C?Gtyo:n'-wa1O[)@lj4e.)S9RZ+Wȃ%tXK (cDi[nŽfLJ=njcyh)-=D8>D-o$䆷Em%[_aw*rͨuZjYZc"utEM~{"C~ag }SG6G̗Լ +Γ31mB$;S\r8[6ܿe.QOo$_H=!{ Oct;12. M{)IT,u.fr}X藇+ގ9pwۮKȃq>[(T`d , >VC g?X Syk`a`Ҡ]z=1UwZp^$li w-㝄NNH^\c TYV4S+$iHIC?.FG"_OL=:neU`D{0Kg%|e q-y?]dڱډZ]9H9ؼGh\ d-s{g.rר3tP9c)UdxA 82L! {9 D|^F i ]E}yg(x;V,lid9ԅeN)u;Ⱦԍ)RM[ӗ2)&D\eza8P\canguJcwSEFo}*% ^ߏ~"sd`?ZEW`qN蝦 qADW ӿr'B85hLAü8W(7ӷ+d:]rZtⒾĝAqڣ c&Ihlgl|V2ڇ `CL6UQ6EvT3ө _v(?&_GV&A^K6 W/ٺt⷗k#ǫ,@_e=+K -$ _%QbljHtXƬ咷Z7Aqex>he<&@s4zkA4]qT>6yG9g&Sf)+ѶTnu.]~+lGG4xRn>֭]﫶G0tu n(Pb6rtTLy\kCg}wzbVQl㑥NO^[m"aVe[ߙ,4X䎒/ +PuŖICwɮ&"ߐj- <0p뙨E!zܼu0gj<ֵ/s.sӤsr+vwl]7wnxHΖagb f09Wi[3&ƕ{ IW#9Ik?`sDGC TDFꁲu8(} fS}oJS{N8CAE<0<.b4 Mph0łq2ֽ2oR耨Ug y%^S||.tG;&r&M?˺jIŘiRnFDKH7=²qUf-A@neG9A%$BĖ2A! {K ^H> ncwet(.?#c(=$ŸlAu N:!EE`ԡ)!mlVIPw4N*P2i:ݝ`'( 4ungr`;[ػKFL#flbŨx!YDKR]WYxO]+]XoR'n ^F s[fQj(u*>Чz~6r9iu~WtPI#U$wegcpn2WW@,c[c -ame"&e7<'nK f\ ,_"Dj*ZlXj8T\ɷH#:݈ȫ0`ذžI;{!x3Pi"`IKG|uBcYP`8WwS?LFBHHs Ča<&Nz) 4Bi𷛻7YT]q50v3rrԛ-Ejvi^fk*xBdFAF_ű(AzҲd}[? w`>l ҕ"Cd)#v/U}gUI;"-c3T-J}e9b`OZdm;.Mu~&OɃKJ5CW$'I6%UC?D^dvNDN§vGW?fr_hۡótK+d-% /")D9$xkݨs$}Vӽ"vU$% K[8Ͷ}F B6aY%J&o}p:H0-fag*%л)[Fē|jq"4n%)r)|KZ> Bp!\$nhfUvi,7>˕fhs`Pa`PJt`4snޚdЀ?DOyz8?J $aXg QSYHP(6nOG2nHi9ZrjP dZV%?;-;ɐ?-C NEצLIcË^`Xju>*+TY azX@.˦dhC 4aLDm1,>EB5_̾:=`H9Z>"Mb>c#nHk9=8fx|J ꓧ1ǫeqth[`>оՌ'ic$:dhf]dV@C^ZBmzI*gӯ&2jCd\$ltsn^t6boM) #Ffiғ G&D7Lk0̷H kZTvI!t4s _}0X"n&xSx#FVe/ Uv#Q(o˯(DS6|_m(iroJ Z}K TZBp2 (Kjxt {UzrrX|Gp"w]-ViP-׭ޠcdj ({,3yH, 'QHjU/w=:.1UAR2Tǽ6H^xtuW_YC M5WF?nΑCsbMRV'4KPL@6L՝b6DB;ZN59Ƞ oKql1Q3:ǿi4N+f~WdVmz$>Yń[Pʑ"%>~Mɬ9n|1ji|JK:d{=uK?{; UXuHR [9ךGeMjU HqTCCtݘ,JQkx<Td S+BK1OE)<({8TJ'1rr~#K`DjeZY޴_)0㸟Rly_ 8Id.rUHBum91`;~8ߦg,36QHk*NM<^ҏJqmhdJtSn:2trDٸ F^N 3zEdl_D:I)W6e b@HJTs׵b8d^ڶ`Z%#Avqo,`e)NbCwgZ=fH'qGZI.&I+>b7zB Y2WC :Ix$8>NᾃTZ ތ%Y擜mgM&fy{#ؘ >@Z{eJF(&w7xDMuz T ([[h̺ljF.FX-pFBo IΊvVbZ5PMە\X\9YsvF}Cv{åo6L {OKM[p5OƤ0X>s0l!ߗDL44󯑈.|TewCqq& [⮩4qcзi֠icRbcSPIM2.;؛! ?SDf=<:8ؼ-T3DϵQYn0ժrܚ;"/W.x9Xqul]Y~&oTtr_[% %l- ݼO뢮~%D:sw{^L1.hA*rAOr ?VU QeKh0(Z6(zyJLTg[1‚$*{@Sil][z"4v2L1vVF'@BG2hDu+f^<}jlޓ*[I#Ef0 1ׇڃNĞpP<NT.#?QFթAX{|li*QJGu^?@SStp9* K< eN~dPo.ayߖ Fd>8s5Ҩ,}碩n}% 6۳9G nJɨu5`yWE-DCF1:ܯ]'`Kn}x<,JǑlͼH CTzϿLgm1Ue! Cw8z Dq"5D wkb NfWd@B& GpѧqifKZʋ(pjvvJcYjeO}*:4NŲCiaѡr`_e8UǛN6c ^dRkߌt(^Qw1kFM\n)' SeT5k6gFfX7 _0IXXE4>: VlnMk #O"fv[ӋɃEsȦUaU1Yrb^ҙç%y_lc}\6D?|e04HDmtQ((=4NRgR(!Ӈ6Fӊ܉JyW 'iN[Aք5ѧ>cgv3Mo&6JLFfV@[4ځ}QI7ؑTW0+[^n[/QR=!3F٩&YX,ZtAM'jɇdэ;!mk{ n2|Lt>+7> +Nytk>Vm Bg}%,h[ZA/n;_Bv#Z\!,E%y3jTM! 5[`ss`$kXӘNb ''”*Y* ɀN5DTKlb! iQҵ{𔄏GGyndJ|ʟ}:! ˠDi 1~!z;:ݯ(e;y>&Ѱ(+7"3 Eu 8Y']hzI٫FD8[.yw C;ٯ AW 6@KjQ2w6ۄ?TI6殍_Hk(vrfFhXH}c^(\wl]$H W:@,X)$ ,;__lq'׻ͫI* D']h;?a A&50cuy߂_2 xF0S0#m4>ra='lBeX=dJC2L d3J1du0C[ZIgfB˃a7WG!ɔ#GVvb2bqp Ψo泞GGITULqԜdJ@AI[-:aҷzyg@.OjK.: =qZnʠ\MJEGKxO7&!Fɗll0RLZBUgY;Lu]FJ'M$_~o`A.=1R8C윛Tֽwҳ6_}.Ya'XUⲸtN=F0/.nS,ldg D̏'& ~5 ?.l=T! mg𾇙i7^؎*VWV'eR>u0*ǣ ϐx3F»?䢮rw"#h2X8QfWhPia|~T( , n'9̴w`ԏ~ŕ7欫azI 'PȜ'iIۢ;RMLsx .K_Q&q=RR!}OsC [G[.38l[:5DQD*3X=jGTwQN;R>-[ğx2eb2itq 8,i=gxb7FE43KKGTQ ,+^msO96 2]JQM#)p%/NT(}'S=%(_ݼ,΃*Ō;`,J Vkp9 tWZ\wE AaB:*\}2AP`O.yʫ@ar}yܻtU򢕇5ok5c164+<7HYGgP~=w_) btN}ڷN e12O ǻD@[5ҽi+S9r p6{E bo̱1QZ %CU+?8%^W 3 GFPvw`G=p Z$ C]g7} D%J؂6rh:%w `59gEn˗$[*GymY6f((fx^YPǮjɵ3)VACDa&g8x-F@ s6c0QB#s27ktG%~^of ,|olȍEgick(# {z2ժ4D`ÐbC1WzʰpTe8 (* CI<`3c0LbM#Ag oiQN'!۴8# 2mK*Lo" 3_|Q悻o6 mtAY?'E%\!vF>}>fAixzv93`.\~cac9~dEE95cfЌeCA|m"ۙkUg,,2*#g;:& 'QԿ^崧'X|#1V;?\gK.(5[F8(Q/,!. Y=yx*LaK|/"w50փx9P6wy{ |qߨ( ~@"J2QO%!W< rg& xQBj="%/F|8 Π( {MJm]`ÏC@8WQVlO~B Ŧ]ǦcW0ۿ)4WO^.Cg5]KHKg{pZq Kǣ;pWjP @_, y+XZQr9ɃC )T"&~T\Z{8`zҷȦ$E.G- e}`&qK,^8cֻ~_+UX 最[u>6ۢwʢ~@JahmοG Gn-m՝__sFa@v!)qwj?MK( c:dO?Ec! tVJ WAJ ?kW?#!UpVçlF5H|8y񗅛Yt+3iuKsn/`O =x.5{vrC;UW6GۻI{:Uv!$wfWaD8 mk=z`VyawY G3ƫhP3?9;Raܒ5X KyEY Z]u_;kT<+Qd3I5 7Wiy 9lh 65포 ]f@DUnN&%p@] `-+/rg.2 )4ͣp~]uϱQ7gXi^D%-j^ CSRa{x'׊% lkø1%5S?] J٨L'1W׹r~*Vw|zei yPQPQ-}-,>c -XR\fόi ئ({GG13ٱ:,6dQ9ĎMADeb{fQ1&>!B-Z$oZ9Zj#lIqijN!'c@J|p6d)K\}!h*\ks+R_۝P(9-5z|7DK[v %m,_FZۓ(,fs].r04>@Ն[ P\i[@ؿ@'_2;l%2)(5L.H1~~<&ɨה0'}JXƃ)T2VJ=?FNè+=9Fcz}L>j1)7-ߝd}0xN9ű"/ P )\zKy=Mr ~SLwNeoi ,1%P_;ZT<ɟx{)v O-CԆyvDF N%AL_ӺV7QY $0sʻoeAp((U؁;I0nZ_rJެCNMڋi6x3@nZdZI@ _IܠE8OɡBC!'zQ@ƀ~\J@qW?}`g7)GΑp5:`[@'ohGB5KڇGbP|ˆ%-YQGv8 @yS_[tA{&(@xoB-ѮR:Zm麏zɽ&}6/[(4/:`!`cfu/BeeL6Tz@!/>7tHT9h8&q ]mzamW|WO{!p_E(ZΞRHE`qg\XK1lrFB@G5 _ АaN$t'k5.:Mw聕~`ތ7_k7:GJ$Hɛ9~0=f"#]Ϝs缒2ߑcml&t@ͭ#]WL/xA/ y $lm@lmh8%T+]lYWd lK, 58a6+eiq07σuTS&~r3uYƺlbeTޣJ;:3̊QfZXr1|YN$ު_Kkēyaq4J?0W @;WbE?z{ A5چ$ PVdΚ7qn,?Hqq"foa@}*X, 'yBz7т1//Au2eֳ ]kt;-_)`Fzd ĞUpTfu_b|1B ́(ǧ@S^" пj.h%qȰ:cXTTNSgǣf8lq hTψ\Fm 򏴷_!_/ZZO*|d" J挟^3f qV}X|>1cg74ua͘zk4SeFԒ>A 4ҟ.= uՀԦ⅜K~a#P*| 3/QR9Llf  ;Nf/}[_ viOlν /iy\Y@mIw\-HVUGkfa m>/;^gAr|&qQU(̎.VËEl. }yq\dw%|ˁ;L\'Ek^-67Ueh€u?l´u" m#·R6zy  tuCY ZXʯȠp貁 u՗3oTYͽGW%1$J%C߹/Dc  0qGn3:h]ϩ5 < '7{R,Qut Ezr4f2DVCIO ;K%Sv)h) ZWg}n0!I%O i7` X"D]MGLKֲ=lB`Y9@hv`xZaUFa@&QP&x}ܩCGNvɘdI2̀ X%Quss ozJ}/ )l7XjEლZBA|]L!\2"anS ީ icPf'Wsi\=eJd\%G )UրNBi 4CoVЀªeM$#3ѾtE>ZœHR*2ᖌUS+6moiko*Leڎ5=V˹4:$f* ć}| sѫ9/OʂH0?=/g^zp+P8t:Ÿ_N@׮|-,/.aw\ &m亰}h2E,꼲gon5ې)=ݽ҅S?Ay, U=9 oKWPk~u O@^_gu){fOzo{ ^/lh|oF͓PZn#.)~!A NX|!0&7xl֨aYXKtKM)^&Q4;^e"k_"Z#W*2 ݹPzGm/(cD^U>r Яa |eWבtoZŃ~ gA˓Ƌ&v\AP29[j].gQ@רS' jJkw忑4$G+ʖsjԤ_`%'-K[r" l4IBf*א,xaq|FaGV٭ۑOB( 0ً ߚs`\KJ C_eD?@4}nRTb"pitJ:^;t!)&;%^ªxbؾ 3AHeEpI-GR_^`#+l y1v$#3kr( }}.]RKF;RMEm۽FkŞqMYK7*bW.s]+&5`pbݛQ]*5BCo[E_Y =y֯T(UXC=w_4_lFq 'A75IR]1)&#X_mf=]aȀ}(vLM6Vp.݁[CL#oGI$33Fzߊ8T"\g[h67_Wf\DkEQݦe`[saIv=W.΄=ƠkHnXJEt\\ĮӨ gئ.$):ZI-UxK]&Z]`lG1R߀-\7 Be! TNVvYF.MЧC]d/Kd5uF5,΁21^:g]|F5l )~oV[J ⵯC`£LfvC1YUUP16G8^I؁F$&Eay'TKuCnJuO +1:r{Lr3"sʺZ!zh^631 yrd?W<Q +H_Qr1)<ҟBBm"q zgG.ZK9Nq /p\z#7|hȍ@w7Fg3z28 ]6Y1C2{gL #" t0?-*vA2ذ"uJ%Z=1PQch5֌&FOKO|ЫYg7r}NkWSoLJS]1U *689m ˽V)A̹ۃ1T4nԕS0eQTHŎBDJ+?Lo 9g&cW_~[uTVMW3I,n.~[\4k8agPaB ?Q:/ᄬ\)Cu*ƻUdfHa2!簹\f-IO?WU^6Z4G:~XBd U_DUՊ3=zo)zpfà leMs5b錙2;_Y5U= ڟ+"thY_(`ji`&v]S@o|Y@d[jc t3)Y,mRYtzcn~ʮ벳A^heR<7ϿH?u2w~+W3P@@@Z\{;sHtB5ffڄAI{d*  ٧&cPUn1XG2S>_S:X+e9?DM ~X[T_8 jcRf %6soLjD0j"ÜM`dXo?Tn XIxF2aQ /UKa)Qr$huF[. @vP\aٕ( 4h]A?ɵޗȒOYZiٰNټIi?x(,R-_&e{HTNzv.Rt|+Ig85($)VG`42Keq'f~1e&jwAΖ#9] ܷx.8%&֯Gǵ-8C/=a~LFa -J1a߫B#yUg5/lX1M6"' ٷX>7pa~(Q|/[` J< CS6mv j)ds WH~Y5X/JA;(MyزJrMam0!::)C]3M]0GE6V/ТQqO)gk_PL`\]lT@|+NL)_)҄JBQ<% }eQ]Hd0o1dDO~O}$ߞ<ߴ>3xਡp3.f?×JUCV1ޝͮ:2jiەa !X Ϸ(L'[%F g/7ѥ@ה &NL\^ppZg^&ktZv[ U}DM Z֕S*S)bb+Vf\B C5䧔koIQQ^U=Km2H'(Թ^eAoȶ"{қ xkG򀖏&o qIG{>#^aN *E9* P]9SX$#"޾W!YQtKSBvLP0DVűRxS?T}RBA5 >31c*NcGG-ssL uUc-{SZNj a1fr6}o O>5u7Pnr C˼q]j}dEx.w35&eR(v97vESl'JR?nдjd-rrMK3wETԹmg~\GH`N%rj Dh_13W %Mlvdzѓ})[D39CMkEZ(}2*LEB_c;dѼzS6A?о,'Â}a)e).q(5PtnC0='i2tf%T)p|A.]aB5-7^ELj|BGf~KҊAViܖyj=țWBb3 @d_(Uv@1ωI/T+,ȷ`{$FU,c|+^|L8y?P*j]lgQ Ќtfm@H#*(kWali9Vbz-.**U5 #H x;{)h馸l6g LY+j%+Q[;muHmx~*˖[/ʋm7GIAi7/ l߱?uc6jp%0 h'7nȖM_hKwƵ6ej7_RV\!H 9 @e.FX{S%((J~DqB "JKk5"kmTڇr|B$'vcB 6L13躵D5wu Aʶua6`*.mJyk(ȞNr}+OYq߷DdiM5m<53w%r+>[`hVH,j0C9y9$Lkr^ p[_mD6ٲC0$ܴ^F4bO0py(wP[{Yq bܩ6t&.JLVu4;,NJ%f;'ϐ:]h.^B8;6Ql]yn;L% s*ç ] G? ҭRaAv 8_"i4^)t1wFn}-vWʘoiUhTjZ!ճnb'TX8njMLߙoU$=7 S^jL|`IzȡqlUZO썓*R5<,8+qC)x3Ɗi)#:|7]dzvAQ|O/v,If&{ X*E*WI%"(Mtj[PH.F&@5Oci쌲:T[go:k!#G΢)`̻0YHd|g?*a2NoI Aϱ hP( =qDnɀ\,YB9TjC׉IF".u}K>]\ SJw|s6H< 88/Y+?BZl$@Fl{i~]%=CĈXl !ѯg{m¥Wm&ɚnT|.iy[3"Zή Å/ҀYdWvX p>$>rI%$I)>g9j{$ү! =*>v`j 6=\?wE8Fy_yNy,o xN ~;36y\]i]Mqc5$w ;A+Zzvi" ~[C-"jdZۄ- űyV@v+#Of2eBJb:im yͽNkROSc#ccgLjfr"pC\CyW?'V f0S%7dTkc*)yF~SNAQsToyP0!^Q-Nj?JOO퀻鬡Ao#i-)@N8SJBvLmgbG'ƀ0,^BO ҳhhG(B,x ׎x>_fgS X?6>מBG n;(ߤ+}>FE"W"=qi>дyEABDU]f2#`r6L"!o_1QzK{(75,V&X!}`Q>=1wNk1vY6hxo8Ie#QWʏz ':*ܲMy=TPqʅ4'sFegG1 'uP˜?Ҹkcֿ cxDufq!x﬌s@ƒ F[XО9`.͐t!Nl$b`7kdHq adCѓYw :A) *QܗW^z,+X͈m~nm9=c+'Ux` +),EVv$>6B4gAyis\ yX{*劇ʥ>aN{Kax Pc2O hzjanL1b[# Mצi8%@TRtu60پk8M-`֐XRЗ i ҅uh V5~r15o.=wҧQ n~ٓ ,1NCf'_n'CDdevtrsvTNWjĻ^sr^wMP:ޏ&vIw 5ֽ35~V)`[sq|ٝ+O+1~gɝ@s.#CGGoϑ-+5ըTUޢ<vҿŔjRh)!@3@6|O# bFnL :06.r=@/m5;s iN!Σb[{ԩ@[Cʳڹ6[8RhI#%%"+q >D _ FaRҮN#uID$eԶ )CkwuQ>N5rd4gD^n pk9cf͸J`1Zv/&"ԧ> v֚6Kct*r33vnvĂlg^=_8 (]i9{/"f67! E Ŏ},SN8qab|T0A`oe%Kx=*C07DA5yXBt=ɶ>4fL0k&' bj7ռ |b)kĉns|}MēAAξ2a57~6Z~w藑3s:-g%buo/iŔ$Kw?ݘYvw E% `N&MJ֙VKg\-(ΘՂ퓅$6 'CfŐǯ>6OHT/=9ТYx$jX2 fsÉk}9qw27{vgX*Qui˒wj!n%hGR}$BDͷO# l|nUȟw!6rQ/sVVQlR&1V4Qa4liN0J_evn5.CyHn+݌`kLUAvPb؟l 5,^X5)] (V($ #1ң6ǩiS\W]]9ݵE?y ذ/`QX޷1U~!N%ޕHym>$@hP6!dW!j3>Zܞ6Yc:kp~A^4E2֛Q|4̄Y`PQ~Q_up5UQ#m9T€|-#tt7#5m4#$7v:`1δhǻNh:= Uu:mHX>wX4iɯ֋$k|}x`(i/  F.t)k82=^\[_YfNq Aė3dP w*Coj˱Z$r~S|^ËTIi&tQx4.YtM'Gح ŌÉBPF<=U/Y\1?!Z&l2g( G{^d <㮊\r цĽ)*0Eȉugs=A(z ғG3ǐ4*5$ڸԂ",Kk%I}I|JH#lhvךW͵"Ϩc`m*NGhue.Nn<.Lᗳx^mʜ~F]ms&0D` )W|t)̀}kgp8p޾ yDnhav}!5b?jXHNB⡔}R[PX]X}ԈSx#1#`߰c 3#]~+ Zž'CCK~*σrkψpsg v'*:" flY-o v7fq$ޤ!>G\_('+/^=`vkIVL >$xf}D<䤲^N.9^u?w.s{j|t@Cy\VV>c{NiRoP? ȑ['a|bC'yU2'SiMeb+|`D"}'RÎ otM]sE!:<"D K0OǕ[l&^Ce[|0:湀x[m*u58UEDzy7oK6stJi/M[5dɑ~4"+VbJ gbVR$'5!b;@4Coo+ HhG{-:KC=0Q.A.A,DQI//QCQNeSk5ɊꦇjYyy*WqfNZd?M6uһs pbk]No׳z%ƽA|qzRq+`yx ncWC#-Ȭ=U#Fl({ "Bw`Y?ueU2pz9kф@ϹXiCV#/D& cLN%f:r"AB8TTK]|)uƥ9~瞍og"OS@Qfԋ~&wkz@.r3LhZ8.P}8ь 5 "[*.Ц!`Yc[JQT!} 9CV*}RAkRլ6_7ckGO]S ge;'_+0NS-hP⦅A3kAJd{4Y< ܨ{>k f + xB4$g)?OJ{A9Cp}is6|<-*(F _SNz(,F}̰r51t7!NͽW\Mw@*M_& {$)J#>GA+ -.AS#;2!WK>j)#)B\τ2Sݩ-oj38"ϓ&[ McEQ4ªXT=zg |3`6@rr%ϑziH*{c5bf'{vVxknX2e7J4*Q>^F\ѐAU€e1eD D{?8Eh:yoC>)2DsW=ͥo\bmG'`#.=纳{J+b9'a +÷R'pqQC-* MYO1мb##3Ӗ6ۏ=ꙦlLX ▩Wwd n & ȆU7O\wo;v Y[";= 6c<v랁;eRt~$C]d0@Yoa yݽ(vYj("D>Uc4QF%;BP@Θw{x Éj[}m7""öF$aUp#\WJrr׍mkG_Y Ȉ<_o>}^Y@!I4=% o*Ivg5uvj8D7ߒ'-OFG:g@vDJr6g>ys "5-fq>ڸ/OJLIN?fb1]|hRFXlCP$:/PZj,9/d^zb6h4O+SspED~7FBO جn ӹ /Mp%?Z:TM8;]be& 9n<\CZA`*(|7F2㕑c,Mq5;4(yE%1D?."1{*fvF*lnrHۖO<ᙁXg[yeueFF}\>WtO6vz53ㆈ7%л+lvq7m"l`=ahYU3yG !I&u7/1K+__d_o4ϮÉ6[\7?̅GY}U!նcmP! #?J6I^ӵfU$kmY1PwqU}Ϗ0CHTd)%-Rz_aiBx^ի,Xl lrꝊo졀׸0<7wC"ؖM (_)_6?{>Z:C_5% I)5Rsء[_9U?`xV]~ĕ6V8W ]!:cDT6G}c\;!&,|ը|[Ɖ|*M9iH4с)[e5#Mq1ٯJ!o:g.jOEVaZBZPz\w7\} +ެ lj8S&PBGB>rd ;%-\QQFFBg !oNMR][R+qe-Ģ4E"'\+#LE{deն:LwFG]rXxq7&߻~R|E,n#w8V\)ָa ]t]{l1z6P 3hȮ~DIW+uG_XԏjZ_ճ2 8` BNsX{3(S`i@;P02J*'HOQK.iC a`%R!*4, ֋9 /TA:~$%JFc67X: Hʮ$(nL } ݂g!ß ]C=@,ZžU,;=oݸp 2HnxП o5R#(.@-Y U\gc>M%P{4$$i('DUTm>SR%C(Pb4i'AMqhn=>W'酰Y/vIO:?Fv3W%F=@iLVH |W4\\wxq86B ~(,'VL\ ٰRflX\xy8,wٺ E#Ls1- &73mPC'#7^L0ex%O#{ܟ`mINN5o.<03{M=QF]l>3Q*v._sLSbJ~k *V>nC@y8ңn#Ns]{מ8QY:dɑu/ Ttrs55_wJ)muFDKȲP_:#͐)07U:PSaO F=zik{2%mu7JZ,MVHYȡHk @*3\b%1Ęo4$w` Br"k@}pϚ<Dž8I뷸X ѫ1) r;K!{vAr.,6CaNR-$[Ry>ՓP5:)"\BoE!>i|C^%܃Nժ*fIjYKEeۉ&Z-6h[u{ouW/#~.%A5֮PP5O_< 1aDYJѣ=ub2sp7륪n쾃95!F"WR"QSGQ(͗0yQϽsҖdSN{CIuєeCKPtSK|oZ*(lB3gg*mqJX*}[z LG-i1jΩ֝}dv}AZl|Mxpx хHl\];HA' }SXʃ-JhvH^ yN%.JIB43'! ygllgT%/<9viM `:|j} x9! I·Gx uO۞C }=:VqX KTa!޴h}GE,tvZ:3LQhM ,l^u P1=Oo˾7'w_}+DmC/-;fHCmOQ8c`҇buquloٲ}mf[Iuh{/o%;h:!Q.8Z)XA H󝶅f~m?ϯ픁ʄ%UJ 0+JtuG}mͶP=ZTr,Eݹ8<`XS6ZTaVCH8NN~`ɓ:`?`pSc2%0h#P#i ef8@xbi>28ӺzX18l?7`epFT &4CIJGOtdd2G1Qri<*QzGl {@t3[fY"WFu&a^3@lâMLNq \u_OӾ 06A]węv)3;}tL2Eݡ`B5!MX\nPe6/GDС'w{qrON ]a0!tZ7p,Ҍpse<6hI@SE;) "Ȗ AoZYT-A[zC9$IG&Ƶ̸)y6!%" . vdPd_@}~ 0[)WA># ""J(1˜T*r 1R{ lwzѳ0?5EMxb3uRdfjw4E>.-y+'S<+mmu49bŴAN =7݂ A3 0>R3*B ?JJ3+ߠn+k p;gspMyzpf qޔN;H,أf|=x$Hs"a1ESX=^4]}%Qr8|r^iΦuDi;t0< =z}VO'윬xo?r G&Es\Bx){a}u_>ܔ8`tXS:\^84)s'SF'EzB=lTRj 0 ]K>AreVt;-aCml3̯3Wu(Ҧon:״쒈?X =fRm[AH Dž[fMlOa P5Ked ٪&qTtW|/3rzYWjjo^{9[#nyFdVJ֢ 'P}uR(@s|M/}b{:0u:%btT" u7"˯pJ1h:IjFFկ%-;'6˺ѷyW;#Zc*aR:&J>w!@N {S;^ ٽw J D#>+u"@!4Ī׷LdY0GlW|֬jgzl rm mk/EC[M| Ɨs%J^ _R canԈE%g9?x9^A$d;Y@xqMrumxMN&g56mCEqJ'}7EBjA=2iX`mqmԎAkX3{4Y-wG 45[,/)0 Tv6 F+#G o,n^KSZiN7pL( (ʾ,,AQ;VvLj%HnAtEENx>rUoR{SpÚweNc%fch֥06&1pB "Tf^:yYg`b)ѯ.`9o]W #+{ {Zg:`s3 Lm3I?r@k]ɽn_+Ȁ}R w k<5-'DDJ$a -Miݔ'{M]Kw3tu^ :LG|*@c1#>xE!EC HQ+1-pV;;Z:p*akѤ]_beʒwy2ѩ%nߪ{uU5e%N׽T%W4mrB6mY h}}Bsn9NܵZ_&#}9随Kģ_)(btHsW|EC+,QG `V嵐/; 9@:-VP3𦿄,^Fk|̨c"y12Nnh1h %s,Ap~ej.-+%{¯a xbϷt@>{zgX83.$fRg[nAKoa&7F؋3lzdL6JCg9H?TtZV zם6=eS0pna z<#nkҠ(y k"Kh$ o`_4oL"_Ơ%$?l hbdp+2Ĝ<Cww{<GQQ)}!/c%)§8^ jߠsæ/?tGtI+2|*N E {*pO*R( LGh0Ɨc0؝e|LHp9}ՊSg~>;R&H@=]*xG9^'sIML&/R>l>0ԁ& ȥo)_ GzoB[|kDỸ^K"%iOgDzg8U{:oŷKicNp.QOucC޳LL-MZ"UFiWQ}hi]`E-;Eѭa vb~B(;:7hҋ+[DH=jq|8ް*Է-x"LЫ!RB֔WH?,45Wy M "hL^]4\,'9݄bK UxT苚 u*ͬNK\ _:dօ -\~\8 uҺx%#ҟB!VL)%/Pb=,.c`! {uEe1v8 Wbl xԷL'}>Z\ u +"RZ5G8FO27,>U(/X~msq,^KwO4.'3+s/&[Kq(ZU՝lƱs?,77z EA7e6pOd*F>1`lyEڋ+b?xYhC$ B)QF`a$syLNdaB3 u g&+qXЬeB#p{LlZYySn. ߚ23ئ$ NdW\|AbI+4J+X;G}h|anQk5Vo6iC![[Oc1mBȘ|4A{37$#o: pPXO  J;b䤺\#omi\6z}JM:bsu儧rc.;ɇNzfyq\ۍU@z:5SNr&"9-5C?^cʹR6G^Q)QGWZw#MO3~2j(TU_5Y @rM$OgtkvgdzIgW6YMi*vwup)Y{ (;E;m% O~q/{tۨ[=ڨK!?n: ߥJ$*7R`x尀-a*󌮴a}]єMQD'Qɣ&fa9@RHP~c`t0Hc2h,ɣ \i'SS=dH5wΘJ&O]ЭL3Xa`A"?JLވ˱yйl<Pw@8,;c-IBX+g =M-FiH3H7k Jăת6N!`d=d|K)mf=2"5ڣ*nW 䥵e\]'EeԩM?uc2!I+ȖȒg$H Tc @NR5\8ވПuvhhIن4s=: V+' ] 󌽀pdE.iNni?"#&U_dVb-Eshx$"ۖS[q[Ӎ_> &'0# ߒZ5ߍ<७%jd˔r>`yv"DAZqK,~+н2"<vRe*"?%eGf)Ѩ'ɂ-ޗ6Kғ]6uu~3YxV ~@!hgy\`Oicn.9o ly|nW8+[6OTڕLՏw/$nc êU3~!85'B*B‹>Ojvh/x ͼ ֞-(R͚=VH1ٓfA\_>rг[ @{Nd^lۺi_3196'd7AlR;RD`5Oڒܦ#U4|8p #9X@*Zf2AocV@mt@]-T3g ^|ٯ>ru_ck9JGB % tbTKħpQd!?a:C+qa}$w2gyh-zN,7hUpp{(] ;Ed(\9Ij:d_w\#S5[%Rgi?a;8 mT`?eonL6bBݗ1x#-S7ohuufĮPt}>CPȹ{m|vdZ[Ϙsu/:jow:bQ_:hUc*9aK]$5:?@Q%@bp$N(G4{vvX6ωl=?-eEdx]2UQ_vOdW{өd/rFug\SE+ݲ mhN)U+FMN$}@!t#uÛRW{,~5VZbm[DOk] ee;f m>*hhʹĘRN_xJsy kIUΈ$[Q&!]nE߇etl71=3̶- BcEiРܾޑV<%Ѝ:ɅܞEryUun;ݷJ|I ~P)_bՅ;6?,qAfrJp\ȹv1 7=kG7r[8~r;̫MLjb]AV!:<_3;1 CHYz2i{mKgk+L,w"A&%uMZ635-DPb3nn ~ k/˳zˎ*a)U]* 6tUcW 2>mLC-Ge o'揷$ZBJ=ʧ ?3J1{DP?\NBP|U6PqBF+y%#48);n)R0 i'wdGP*Iݎc{5%½~N0Pl7TN jZ[ecbUrձ4]O{V;8u}pm3nH'1a1[FuɐDD̴'sCLxlѷ0/AJ`=j-܋:ckm0]p3&HNJotInSэ#QVYl-u/b> $Dz:]GUY'6*9:TUwfx噔 dUv(JInpW,g#C8PPdzv=n+Q969z.6dE ~ 24V;G #C}7TPէLԲ< n̠IA<F+zb_OK0& kWG˫rẗ́HؽnE7vWϽ(s0p=@V*Q?:F>.2,Py_eQ gPScB}8z%'V`/ㅩX[^;l|_mE5߸睖DDϩYM2'_PKxyY^bUa{. /E!Ced >|5oK r&lqgl2:剦((!kv& iWN [Hb^5k0y0d$h@ksTuuaATmJnf -mJ$ҨfQr-6¦#&epƟ"/LPO 7)~Sm_Q<{]I81qj_8zONQ@i~ }gA5A8A]RVT[cXJT ˆ^Y{;KȋX(FVYڊ +`_nI, :Zcv.h~AEOгoA8PMՂ;.dژ:Wܮ _ǂ}jNGz-.(\R\ԌC4usT&eb)*]]o;&p1)[y9`gh'Zxv(-kO 3]X~UYmSOV/\Ӈc00w;~$^׸PVО[GX0Cӊx򏂐]:hiQA7ĸ_+Wk|#Bpht͏oebw3Ԓ:x1CǮ9n]`F.LV@5 ./G 2$a 0#.+;eCe16Kϴzn"'c K q([Կ @q?迃|,&?E3sS~AiN@.<j'3<^.@jA3t+ NGBdt=@:$Bbh\S'w\)/K5ө6.;teP[ 9/Ibj]xd>&"ftэWES"XWcv"xKy\^3?&ϖȇ(+-#=|" kRUW*eY(M4+mViabn6c4>m>ڢ+O#dPA:i4+uG[B/no#ϵ*%? ҷ☐܇N!]uen͵f#)]E}UP`7K =KN!+YVޜ#串|'uL>9&SKo$xǟ[TGxF,R|lz=hB@wXt"1K]isW?i5 =yD! Zeq]u#ֳbԺf Ly)P,W{BwdXew.O]i̪o#1^ɟwQ70^g%r'Xܩ'KZR`X0 7B#:`p Ţɳ6*[^} Z]bH S`V{UNpqtzn"aD雳r)vRicfR!,g4: S VU2t5cAoq:T:^T;qn]f_ k/k8zΌRhB$;SYq,C\$?FGo# jWf]-bz/;U?A%~Y XŻʹ-`H_ 9ԩ[/*%rM7s]!6= %+o{qWEFMظ|4aͅB E5cs4v̋V%h đ7LiZ)N$J5G=P̋.ԅˀNnԍεカB] B>.xX\3.ͷY X.{uogj`K0 mU@?wc,Wrd>w[L#kA|'BI^:+%O->9BuRgzI=`V&մW͝z-LnTuq:>V5cK{A?~{E9^1!A^g-W[ow8-TL/t3̢pC(<.Ke]A{o[z扑QY .nߓ"cU^qT7p"2<_<ELl zF :,rn>&4tKy5\`A9n߽@R@{oEz(OӉeW^BÆ;ƦǠj"0H?aX6'Uݞ lb)zDf،P)!l`uGI3b!۝tX`d@ZuUQl^t65 #soLyx-$46 7[B\ L18GP!h^Oe+M:ՠ:[SP]lwe9a͕%rpĜ+onT_F/{=#Ŏa6| '~6۰?n~ޱ  E0QQf}3zOj_1}L=`q7wI|Lp%Evuzϧ~ȆRx2c2`:,7Ȗ&*ɪ1l{kBP>*r&;wT,[B:/+iƐD}-`Ή$|&滇ڄ*1[;QKZޏCyC|EcyVփ3-n1Yhw*Η1e F3a56*v0%FAdH(kDU{pKYW2CQ߈tɯdXN}J8VOuBntIF X(k?Oȯoc618QπLmOs؎xaCM=J0a#k(f;u^b윒=>:>^ä.WtfEn|&E]\AFKPebfuv IGUsazZ,s-# 0S+e,ȏ8Onά8.NY j4iP("IRvG7k48$/-xH٥X*›ajAaѕHf "d7oCxv7~po[Sv#B/a3J\./Pyv5HH'edbAxn<#m@2f2DB~!q*'[39<-*2_sܸUSͥΧisnPC ]5;b]Po^-xx7ǰzRtlN˛y8Sq.lOgL  ˔޸쁵ݲM%PP&0E"5WS,}ؙ8۵uR('K[:O(=JNbƳ!Ӈsi/Ќ嘦`  ^ xMHkx7p'p+*z)rY/gIиQS`ڛDCTO"7a2E&T4̸7u]߸<05j^ Mj">` ԈVLlq634| Sf/y̆+ba;v*r߲$Z‰!7[TAwܾ;uݯ٪q_SDPAO"H\q n}Wf魻;ğ+5V:aV2ˌqń:ѻQ+2^rc1&vsKPAq5J,!c^RT.SS>aSha,\,}_N^UEH ]%iz)YuW_C7HA$ 7\1ճ.DEvFJps.h,{4ڇv'!3^U% 7w GK +}W(}Iظi[/(,rU,shV[Թ* TKÛ됀l1#Tc s-O]C.-ibFE $*l_Nz\&2hŞF!%˪yцV=e"WAkiK(G@5`F& fe?NP5_ՌDo-byWih  Kv +@ތ t~ȗaoVd^>2& \zw OXXi)q8ES!-L(3=W ?Ƣ\]AuϹ4"~Gusѧ̦p!X8=ìܑ>UcHc.ڔA hL`Qp,;=y0`nv02(6T׽~ ,rJM#`Bv]ppy"P؃؜'[![Jہ!`%+漷bXc893E&ʎΕ' oDΐzV }J$a<; K5cd@PƟPj4b9hiuq&%KD }>#CQb)+HIЖZTa@t 62jP ]mE>U! e fq_;$i~wSmE1)!o>y c4t5pWUNXE&;x32JRf-3O2EV%"AzETfPZ;r8xU2ow*AX: )5;0cm8d}rq*v2F8+ 8 3GQ_&imBxc>kM#_#|4@4 [Mm|J4Sn:_ +`NE@<*J;kk=+|/W* -Xrj- u3P:B&[FNSۑE ZC\!T)B‑U#mq8挐4/>-:IgFztg;$;xPSa}<2JSu*)/,^<, ]3V ^ lF6[eM\b$$9;V]zNqqFkI(]*iv1na}j·]W_C[ɯ3^̘'a&dy%,%3>E j^!s b+ulPEfYjsnxYQOGWI\] ~!Nyv(_|yz޳`a8zK^o1—C91ujdvӸV~} 喫ډb6wWbB"o2LRVq1?}ț0\\+k6(~0eJwyQK쒒~g:V`&馫!\)%NQM\ǎ=~1oy(kzkMM2MRϊPku [&k&XlޠEczD_ 3ctJLf\SB(2E58FjevR%_̈!#V-#qdD6Y8¸ѾNZAْ, 4wR5 m3L&lYVUh˭6.<8xYvb!S*֩|2XKxڪտ/QtJKC@I@.`ϖG!KŇovB47]5~#Z@^ARIZ7S+v9KV!Rz^a6sUCI[R6EQY cE4N08.8$U"D{VZ ̶Bk^~_8 =MM:;N|\.P@I90wO+|N3b +3 ׀ši"h 3(,㣇ḑ=,Fq4ϵ}k uÁI[W~ҏ֕*qڋU3?kQKhe9?f=Jp aV358XJHf0!dHpVqH|D.@,?,(;nG7@w*L:my4Gf3+͡kRHB-,`R,j-I cm%_B5Zmg5xL [7KOC=|[z ,'H.sMO~V䊭͝,SY1BfУv5)c U׵b2Fh{bYbe=yEUMZ[ewKNZ5-u_.NݿPi2As[Jؾ^WaQA,z6ǃgmA06msA?s2\ہlsh 1DL9̘^pJeWc_TC;_lַM9׫)% 3{o%CKlsYm$o/wpOm }aemPgvG9 7I1Q4*7TMbSy^>=u!gҞy;Z54zt&]K^Mz;4cgGazu*[er*ݥ(M$8(_Y3_͕oZqJʪ9PXsݦ>wUqy?@@TMH32 {Lf8EAG_˱W#sԮ'GcPS+pK=M@tJ6B`i'F;+Xnk+ NE<^qKW(H^VK{>4~拘 uhg(0jnFZy'b-m&KkF$V=񉍹Xdr!=J|&.3@;Yx=c D@a0Z< v!#LҒi,ӓ%3s]}dͺsn8#>R"@<=b V O&"lYs?&{ 鍘J `>G~Y+^\n|ԗ^ 0 !7@pN"onez gJ4C1wBbznrͬMvv[#X{*8[Dkx'T@jպBr뵆l'\pn܏cL VNk O`+'K޵:<vXYLJ3W\ ƣ%C =P=?48T>@e _a.8dB׀v -B{PR?w?X3G+$zmGrLrMD g}RkJgdhI Shݯy1t?2"G.z7XVG"Y%q25'XrN%;9!$܉T ?q.f39c J18Hnu=Ȃ3gOw@IЬKK "5rP< .}8&|!ulN՞j/Y |wY[>NLXs`(IO+sz;Kf>Ӊ_TBQ- Hx]#ߌx׿w-"E%)k{3XW|38Շ8q\M9.D}f;A`, DϞ)`);#~e*sx~*֫/X䱥 vT#:1F+S1sB +)NϘ} O. u"!m^y|6)Yaō1 Lmiڊq`I~"OX)\!{:NEp ްw,BA䖱oيڂ>'! ulr0 ɡ_bx^3.Ab M"JL([b uIМs3=xyMM)(DyW!WP7{2 bP=̒X~]aVҢ9&zH&} -^"9 ģ~4<\ Z,E-9llT#&*vn1qVRvJ ǪܸJ,'%dwz_@gAp1sPT \{㮱W-yVvg_IA>ögbgm&hT` ?vZ8d?]~¤ ,?ɾkH^ 3$$dO\?SiwÂ{FѾgLa+Fn @'L7?Щ"A9W-n/5~ o$}@o;zy 3>C3>o32G RrSގ&A]b7{5DL _JՀb5poމ>TZ$^6~ ֒!ȅ!$ЭCNJ _E9hcىPcj ]it;N͔bdnk#h<^g<.yJFp9FjEN/kx|l{X}l+$=_@;.X]i\\T_˻6-jaqs/S Ŀ|" pt.U 6Va=L( yth)oS^)2P]f"\7unl6Esn{%{! ;??[xP!B2,rG|ݰD7C-l52jք&6Z( .*¹{8yeGtjc yQ`1՜A Z30d|ڲVm'UX0cՓ1{$aCLu.{$fQs5Ins5r(mo(Erڮ#"?A/ lp}]X-|cs^n٢QY_0w 閉j 5ǮejLł#t>dl4pM b?Ӄ Vm[ojD(.a->6sĴ"$f+9!hig9337#ytS=6bV1$&J[ǹs&Ik"l'i^n>rz"˳J{w=Z"}86Fڙ2$+F Xgcn $0+pܿ /g2w IuJzpȝM%UE8٧B'R$Cs=.wY0gEΨ6 Fl70-Jȵ,Y!:Ch s·3߿ b[@9:ܩ9n@ZVx2i;on`(q՞}'}!No'*\a4b3QM6<*2[K[o qEBP`bV84DŽTJuZɚhg \yr!S 7QhfZdy$o]UvjϞjbkMlf?lR! 1{I @%i0^@kWq, wjY+z}&*{\ nx=9W2nHcdB5lPP (^^PGnA-ʵ2KlxFBFf׏7iIs#wIyGKr\-tyTRj`Z]oM $a ,!8hI@^go2b$ᯥ7`jbt6%2ez:R,i)1Z-0_~WmBj|,,P?=VN۳EloءdcK/i͞4 "얩|[x&@!jϭB2N ]NWi`XzFȌ$ ?J.JqS~QNUpP Xt<}FD8߯?6LϞ^cqS:.9&i9XkzH}բ˝dAUn(=ȡ'&~Z.;9\dHH6بxRXrb3F[Ytؾо`@ĮQ?C~sqKk`4tƜ0iו_Pl=S~$-.3m*K捔i>҄vC Bd6|#sAM ^l'q!CkGWOJP/v ȹcr5K Q @ۍD9Dt a| wZO*Vu(լщkݿ;ucKBm˱|CjI$j( О^ehr+ǸTŽ}UhGmUi' m Cq:ꕵǾuAtEw/e|@{׈uɣ#Y06 i[95NEƒe4<ߑ)1[ckw}'َp; 'BmS;xٕg"XXߊUܕ[ V >2!#roʅgh37+1)jW"X|b$·WchS鷴z1(NaBChY ]G\x:e }<C8rWq)v -m#A>ȳ,(ۣM3~)c\6z}($_rVN*.jw*U~FZc(3(\N$ Zg&] \SMk+XK5A6 O職Ӡw)k:^l {sIg5hh״ꍝOQ =U`ZZ˙V*p{rvCj4;h*"J-+m!; I+%Ǵx@ۏ#&8{v¤=t҈0X gׄC%[T96v[;[n ό -#Z=p>BXV-&hݮQ;#YzzkSo,5MM*Q T8 _ؐgQ:_Rtw2t(S1*>L{de-;oGLqt `Ha$O# }av< 7_:4Z+r t߮L}>؍ _|Fus)f?ϛR־2o7`fi  - }V3 7Hs^%N-!,,&d YeI90o6EkJEݚ7h>(–ZB(y&fQkQO`<0x0o}Z$cV3^MQ&Yрs$p[ c:~}Ku2S1M/N]^WR%fR}R?>0Bߺ|UN_W' ڜ72 z(aNZKt.dgpn@mlno)/ 1y ̺Vwd>&e9vK, x&'B%y9܍g~f-yRv?q ,Bi@hUL{9xu&U~s#VU,vwiZ9 Buϐ:K%)*Q]0I)QjG#BǨ/DO[$#v6|+:&."o75JE]ɳA7] xG}^<8ow o2Vb;o]L~ꥴOlZG>g6.̸ 8BSCL W,uvvJfZfvy=!ZP USUñzcQF_.46;o.p׬5G X8]B4!B d;qv(m=3:"7\5/۽a/a|ꑼ1͉Im;)>V1~ ݂} %]XAYgD<5V(}>yUV1-HqE8Im R鶈X I8/oT3O'- ? ^c46(A,-BLؔ|fp'OO-r[bǓB5Ta6g7]^y\аSo~S;K9]zL*|\k ?< 7Q/=Y,Ѣ@91?_d#g`kctOU%XxIDEg͆q}2kZ>!%diѽrP9gT^'+7 pb 2[EQH;s4g4۲YJ}EQDLMs>RGxY3%nxJu9-1,fm'7vT>YF))k=Wŀ@ZK|[#H8e?ډϬ_r? Md1'3ĵo\z /WڳX`p'yw@o}Sw߈! >-ؽW}1|0^Fh/yH:н>JW 3wVT4"T'Dźbkq_AsKMbi|r않Ĭ.@V#j#j&,KlE龭|DNHۇQΚ30^)>t*StvKZo$COiIyLq5!49w0F:@@Ibm}iU-Kj^)rҨ,Ycy[J_bUrјvBP.Tf?lwֶRVmywjBA+6 ": zDb@I*{$,8[ AT\B*ؼB}{] Ӽ36V$|U~\2wkˆ%5y* 5!tAv"ћ5)WE!+>q)tV/h13, I$`{ &CL@UY@X W!RnEHE*k4{Hxxہ D f5dzT, MmBNhƛePAnS? 0FenF=+98ÓkvKRLeWIeA]]Nmmz*H0b(AOsЇC `/gj)JԄ}d,>}{e(ߩyXɋ+#@xj N \2N~'Z ׸t#cUў- ?)ٲ5Te2t8MdЛ!>עpur0=/ :.8V6]TjHZ{;ѼJ=tLAlQgj_I;QooyF Aiu@ 3H['9jmp̃hd騲ΘJwS/g'̻fD8ۢdnXF<1\KyA>Gyz5`bȗ)Yi,}P4n1*׋mP\Ѭcmԛ-mAm0/O4TM%a140z@~:PC@x D[:NFPL:e{Z~A͜mŕ$|`B=0n#, 8U?BGL) H>krc̗Mys_ZJg8 uvQIjϔEVFz`oOYCέA/vOۀ/IO *s^Vb&~Ck<6AGٳĜ[a24rAIC1){y?Jzb;+Fo@U ^P<{hdDFd'ɏf .}<oI('LGKzV$d]hlצ^>Lic BԈ~,i*鮆덯g&P7OSSGLO,vs-!; 532ph/8L:?SZaJ" Zo*>`<,u8e u/: ]_4ɥI۟)`GOJ>@yWO/uA `Q g"3b' Lz I_.S%(7Cx e&^GJcqJR$zc`e $;¦QV{Lݜk*i*~$/ag a]`O Ǝu崾cjy'~!Fn|hw\~i^b]!UAbY v/\pL|&2U&z:{ UO;Ҿ($sGاgGj<Ci#͛:[$oiɆ 9zqt2KYiU?4ڿ=J؂Ҕrq~*"]x\?bV# ɰݯz*CUCԸ*>ԭĦ̴e <hO|*5_>˼sڷ;Frj[Nz e̒L?qGLp}1H뤅`p@񛺼n`XTmH6l{7ڱXaJ2s\<ZBZTI Bb&Շ|qힼ*$HnN2/<ߠ¯ tqH{ Sƌo %nא$=wL}\pZC.h)FI1dK3@ b#KF-T̯v]!N=F2݊rY\^ [~l ױ5)쬘jlnLԦά~gG_=( X?EdB1ݻTtB ;y^u @z@{g$iS{3ECIG ZcMN{'$.JI1g!+?ǣr} ;)kgNv$yWg3X EIuv" XOq`M >(WLot|ۿn)Gfy &IOŊv} ,+Inp`!5ɂH@_[W͆4Ep};gx Q9?1aٖNh%ciX>AÔƱ(§\jTjB;biXw] .6G_l _ABAyo` 7gvwJ2\`9꾹$h8^yv-} ڏYREcc%'Q aW{JM% 5VI%q8F+G)UAM9~0Ϛ]9 V(BVsY oV@.<LSyF#jѴn`ӼXܦi,Dd)<Ž?^]COr Ҋabt~/<`@Y&8<DgsZY%T3pu%ux{$׸~Aӂr{<(D x\[F^Hb)YGjtv&ddMlHrB<,hdv7Nү|VH{VCp.qL(&~L뺸6jno͗Wy76F[}h!a35;k 58-٣%[x}bzp]Xv t6-{cǸ>!_V^UW#i {WZYO*u 3תk X292m~{39..(Z0>~y"ͥ)>nvnΙ߼9fp?BhlA&&zR$yA|ìLE?02͝d5m& ^{dReq:XAr(ICBqSw-Cm|%RUq06=3ka4 ` M֎@eگ-t#z|?mE9 BFA@4OfC^iH4ՕzZJG2TYDמ)糙|'YRL؅؉WgEc5MairWLخjx.+NF`TW׶G%QøDD&p-^$I[uX_Bǡ yDN.U7mOeLХ tMD '3>_nq"<{<{;G z5e"dzexTAF7d$ð?G{xdDA=skE( \xSѮ2cp,/śd`UnIꨰ볔2NHfL4&~aܚxGҬСoyLj!ϬJ\S1x&ԼM߂ޯ`VڷKfPu?I [-mDŽBA {XvƸ0N G<ɪ򊓮Bvb?9fk =RPd'eb~K!9tE7C.DE =;A:#רZ!vBHH;rGBB=&sUuQ։\ w0C.@4BT6/̤@Nwfk d'u= ,2rm8"C:/rX.M}yzmɯ9\˔Y8"8-M̄u&~v9h=h𶾱Ó<Va%+HpPΒh6\ X_L@ZWys愍bPW $ - %vmiNK"-C"ZZ Xhp+iU"">2N8he}lENuWIF :J.7nE})BW,0عĉr{7eѷZ c8' pɎv_Cj,V捣}μ|MW%[Dd6vvFO0Ŀ2BS/OX(Y {=D ^2ӝȠJzbH>*.eOk&*pʂ 'Ω{ZDd3.QXj2_ożUl55/T!G@̖&8?u7٣ߣ$0( d7a nb}n pɃv ^PSh,1$ny M~Ajtӥ"HWTI얥t#sBTNFQdk椁" @}pMA'Bm%1 BZjjBy]+n(\>Et8lX?+Tsݹ O &ȏtAi =r;]- {LݠY~sݺ-Gwg} ] KW XsySǃcʛɚF0|_:L&dt\pTxNjԖ'|!yYnQ5&#B78 =xKɌj%v1WZiS:sa> d֦7p\}h{iɃ7}^rC(m $kO6CӅZp.^@Őh~*kRa9_:&-GkǴ:|#N+j ajE魻';.Xm{9PC(Nހ ܐ12X#fS|5oZi;uN7V2$i>^t=EvxP]rpɼkt='RFDL%A8[N;%o$B"y."QR/"i4Z>(AH4,ϣ@yb#\?(7^!f\Jk$,n)QhPoo-u>;Spώz&rk&!MJ,/E2(Y3>v GZԘnjii{Yo <]4d0P{zEaæ4{"r¶iMȂ !H)9;)W =Px(o}-:Wufgƍ6m'lral/be44i:=Q+RVN"mßqη4G}L&ꩳkO798ǙFqm/cWm]A` { oL$7{1;Ts@ 2桬wo[~H΃-C V,P?@rb+[pG(wc0ImqQܩ%7Q]FOZ18u**9vbg=[ zޥd巆Jo?N1jEC M@11OsZ Ȁ5ˎg+O7& "<B$VłajPՀn瓦B*Z߂TP*M om#">**`X+2 ]rtr!d۫тƊU ''!FWtҴYT^o ^WCw*n"EO/"TzU.5*Dm@Qy %$TޓlVx^V`uWPЧCؘ#[yݔ,pz}9g LLtN~E16 q0ʹfA_6z [YtEBh-9ZفC5R6/5RrruQC_}Cnx>C?q^JYp U]dҗ›8GyljV /(]u4d`#tcuWG@Շ@{L(J@.|ـ<9qAJM@1֣Z.(IAUiR#`+Fޜ"żh0${9VN Ta`x7Ao h!_¦O-W *4_Ө6s?/Ѵq@ߧ|("0,YWb~c(Y' z/b,lr#baS~ ܟy0|k TWicW9Z:_*s3^CSa+-<;u(Uh#Rͫ/YPqq=A&:*Yߪ6"a":3LU$ 98$qAٽ .+5ahIV0‹`J3195lEzG;ΓR TIie(|ߗ8u4؈gsDng~bEv1υ+!l (}5kW) uqۏN.@T9I|@ӱݪOIznYֹmhZ56gwݐ`|{`(Ⱦa(/ꖉ*~Cb)_V0_ڵr2[3v)xŸU-^: $fPQFv_#2nd-a<մ~M}o0lK(`$dƼ'&6:_k$L^"W\"wG#o.;@m?)@Y.+D'{ifmYFJZr)Rkg9Ǯk=*W3x9[߾Ol"FyxPLr1"9X9|;GG,e{j'˜F3kUjh42IlL=1Ufm4=q6̞A^qzx'ӕ9ǼsKS,|Zb)n!tk6#T|f>>OU1wBuDW\~ Y¾tK Q\IW˖y2;ĶO6(QD!Ht)c01O#iv1쀶YEX6%tـ::\43"?aǰVLn:UJpuϸs᢮J: 讱(S+Y<=U2R)kRԛeڹ5PZQsRʛ0! Baur'4#CIz]/ߒe5nZϐ}Dw3KսWM"żoOF߷ ȄDqKŊ/ ~eh=ꔨŒ*z*uUM< 99sv-w+qWVWUPyB{Ϸa@/ lN'܋3ͫ)&B;[ƽbԌ+/x"n ZJgg:| w~QKqsjϣp" w v#Вٽ7lo #8f'-!dg# \7>aOSd솆Q.! /vyٞ5 ɿ^[ j#rY#AMnm<y1־4L[V `#=ӛz pdž"Q_q"@,`74+AAg}lZa4 1$0LexcT#UPS-);}MB܊hcZθFvP\)KJyG0Vw>4vMRﬠ) % ("Y+CjWU[ JcΕ{̓>g,bNƝ(X7OBY*V2@k9y DLڋXJqQ`?gsrT=k 9!-)( XU;mJ!=nl[(FZpg G Tp=mko5Ļ5-mf3&\k?ys60|?KÀiO6P- !sSF )6dZج !4'yf1#zL?^DtJ}Ą:->Rouă[.i`.\s:CmO70 ~u#MJ?Ch j!;(4Nm@UoőA{5ވdn+DY?;*^J+PJfDt܅I R6GjaHlbsmcD| 4 {X檉7B/H UG5GԂKDYaf(]jeeWBOL]=C}Օ.n`nG{c%wY-[ĩj7:56#y[FofHf 0jEG*#csv|3Ǩj?׸e6FZ &S'C@$G-hqa1$4q)΁hzxk."J^F[k%5w,inV[HZ5y:5ieBGM'4"Qq#M`q%:HZL0Q!5S u s1S (Oj)hh&` ~gg)ZvR5/+m>j5#coX.K` >^ ^PIzWX;=%}y`oJ{vev+ TnTN,ICOPO(7rpB=}9_1朳5υs~wڋxie`*Za/ne/6"dxN( #Ž ~ǖXu,F7-O-@SFŲoQ/,Q'{iѲzqP.Ž'NcMmGB\X1Ǘ sDTMّJȿd]\3i+6y#ȱ]|"p8"+;Nx[!y-Grrz g!؅Vl~*|%$aюI_2va>/3[:|K-Y),KzjNOK"8Z#"~-anG}*Q mO7!RoJWzI6P3`MF 4 Ծ ooFGx0,y|Y`49)yW{ge){X=:N<ߵ_!8բl"_5MWc ! cGxIUrЎiTtl8' _NRv4CA@!(I1ft% ODD5d] ([MozG,9rp@r{s$&8c?7Tw 3 b#ңp& Ⳡܻl")V2'P.jx{~9n'u98{n>e P d: Pe,xu1ٮxO/F`a̡DAa?>^}݇@~S#4Ucޢ]ۨ&DGǹ K^&p50*ɮ8I$ʚ]CqXŵd[Bxg6l/iEo2"29׃o-V)WӗƵ-%*e^_1Ցo6)>L3*npx|"[l jlP)/xӂ%^ 5@LBdg0GNFV R`o\H[d/P-ciSqztueLxAZӹ) ė&aT1뱘$6u=hwTgB+w&O៰<6B`݉lM*6i@̅\x+2x;L-z37oxL#z){ ʖ)u,[\Mг`QCI UM:Y425o$>lL4}sOI9o| .8gOZx(A_)/,H/4C@? ˶Ec-֭w" E CS5Q4)fRQ34ɂ74K]Y;4yیڒ` T=2#98Ij[j}hB]M=uwI$<jZ~ٮB!Dx _~p5DFTḒʹ f:@?!~pqSb"Z/ ZGZqBLP;l{_3 ^K+fU}ˏYĊ<|GA4Y`?LKfoi_MBM^6/V8SiWZn(ҋ>$Y[ ɚRg춙dsq>Y+$ 5㓾?mJ3k<Ï|y[CK (|gumIŋMrDSHBjC%\Cj.ٽ"E ,/p0w=UzG/~ X]9yvfkO0ݦ][d&dʨD?X<*G"Z3)G3 +/L4q\+>ki(7y>$D:]Rsv2yMlítx\ 2e3lWAP]y*╻)?U}~ RmPO p٠?d>?9ΎE#. w9U*>=Nˈ2_sw=cK>}{'h׊͈/2.3Ɍ]a=tS6>^7[j}I1a#6plJSsD_B`ܖ0'YعG?~W>M ^o˗?4Im}]ojB/ -l `;[޺ލɩhQɧ1c_3 bOX\:e8 u?,t@|tֽ+]jqSżnj] icd R,wHW·}}nLĴN:&kDgń^Lי1Kٻ4vqmO4@ǧt鐅 - 6Ru6 |6mX# $o%_hh1ВhB0 pw$w\mgwY7-/'|<6&yG]hBwڤq*"DvL!Z rB}^7r-쮎jYAi;kc_@IWN3|_=i n,$}tk{W;Vy_zژM6--Wݬ.S ͯ$5cy;㙨^Nڟ2d1i$Rr/95*HX(DsCj+`npm8dZ JڪzYcH< _X}T'UdYL#\vY7aVq'}.0Bp0{(OiZn{oUyUc/:[g˟zxef: {]h2X1tܾa0R l$+M|EckC}e׷?HL @&*eSCҜ z3$ ~F9b4?ti2pQ`pH)f 8.u?\ iݨ,9Ը2M|<$50{]RkE݃YWvgxSȏ@"?뀌:0<)ņg'r9DTwwCGAxPC/-kUXZpqP>KŶ+]<`>U~CM;Lo'"5uZeYsK4Ec~}^h9*Cd!@Q#vrbM#K cK_;v\.ڟRձ 0` tZD <}t/=2 2>O|8.1M?uARNKփGI"vxJiM'g;*\7܄Jr-dn3_*⛪aW{&Ox/( q 8UW=7m/ 4 8ÿ0m-lM<(M%9jI3G<)6VBrWcKzfjV(n4pp&qYkPL G Xq_6Z^/aR_%w6KaWBDlfbSE진+H&n35XYCU3`T7T7Zm>U3 дXNPgb{2_m_04bQ &cgG 4\ =t^Dt..%}'knY6]{ߍsC YWvjQGZdO l\,CxJc(Ѽ{ wK_!K ܢ*[:SǸIC>VsN8] , E U" B~ 8Qᖉf/`m28oIx7DnzP _'e'4)YiLc]5/T @NmLtDW [ҽ6/cw1e*,b\$o_M R&jAq@\vn n{ fiKYr"K)ܵdhB EF1J3o>EP|W'4M&Vm .b4yQ$zHiv2UȤP-ԨpK?7&N=+X+J4# HwEN|soJԫm܎ş,gbU #ѽ%G#z^ىV&y#WJ)$gh04ǫpVmvbelN}B]b9&a Jtl!Iw5yR ZbrG7/DĶ8MoL9NkȞA~U0WW $9W¾ӎH#~ԡb2sNboEf5Ϗ\r?KcgJ94?|loɅ;_Ng05_mxv'M=ۋ4e~Ef#Yk(rH= 7N_DZ&Z _V[Hh?~w # ˙W*0x34MnW]έ+$uz?Jcɷ'V1?c =tgP,>ϥ+-9|^SjHbSPBs#'E_o-6=߯>|vEܛA74Q991)#nc4(6>xp$ Z\M?h zPƛKpDtO^ O`Pǰ&4j=}IW2/ÚӛC-eFi&,pHB"dvX y Hz0’v 2 }LF2Zz;ӈMP'5p">^ P|SZ5Kh}񄧞㧱P> 2dNn“w*ˉ GH9kw3qR20vSE iW*ZsQ[ZT (%$p)z+Slpgr4)(lwb6keȩ`HV K^TtJo¦Rz<^9|e ]2$!7B/=H-l-S^4":,Rp\\%J٦R!2U-p. e Y4Wpa*1-:*1$7߽)O%s !F*} ;ReM ͵{.S'nȸ=1`+ L5 3]x{3b76 Y5w!.{4P*7mi4oh$IR{9{yơJ \3rJ.4>G~z7=kɶ8ߎ߄0ɱ_cy9(9aQι%%L!sZKqv[EŀaYͼЍ,}le7i:HY <#XwQLjm?BNԇ%pOxBk߳LPFn"W1pp>u)H)>iLU BV8Hw>Ռ-/H 4c`ɸWAZ)zڶDٕ6m*O "(zҾܨ(5 FWV~[oHZ Ku28GtNʌ wFg{z:i>0IŸ%t$RTt./*uzqle_f@HK,Âu:b?1 RzST敶bE LҤv&ôW=׾XIDV Mb+GTK)p%|7=\ +$]H* ax#_G7ɰp r _'uG0̱[̿wt2&852Q]c$FD"gLLT[{hz/]6wnp-tq7iA4-m.`93u$gp.ʒksn}bM/lc< ϐ@ 1nAE21n6RuBUӧ܄ pޚ1VHK袟I+Gg8`+C:۰Щ#=o9e]ns+Ej.n a/LbѿEq|ތR#QPn>k?ԏsU#d#jTXi"[ aCEє-%˦0|%2ab3f[Z~(0[xq ZO@Y{'hf:m)o3QGCx.Tǀkrw-&cQ@~z}0Lu.W T:sBXe2|ldPj ص1Χ˘\-+p^5#ra;X@B' sD=h Ffr+2L>ˎ:~zN,eθ}չQmN˜9v˷2_V#IU/t‚9L+MHzPF:qrE>!LA]7-AZwA oI@y*i,jJ3k&yO *{`(]==y7<v :a pfsM d܃ҷGڣb~ ނXBo^nc%SP:乺c?}Ls-'\\cBlQU\!/eʤ5.2 %Q%hJ3#ʌ+Χ8FQAt6DY,U 4(򳚏vZ, Ps9|\1\8qEZid> wc3şzs!e|Uj~2^`xȧt]sNpô%4B6d6~)F s&깾.Oâ2 ^a6У 4ĵC)Q1 < 7ا'@xvK) eff0,Ȕ5٢V p}3876X\B#Q<Xݠe,~!cJٛ+@&m3t-bz~wT %$I23eW s+`Aa}]78OĂt<g^a%GD'=4O9hH @üF _-1ęl(j[[5b*PINU\n̽Iӎ%j|@6-䇀yrK+DkFH ='۷C8dWVAGc$އC!3oUcK\:?oƺ'e*By e8NqjCK) Oe&HoP)*2Fxte7rmG%BxYZXq;:ōk?Ǿ<]d.yuT?Y:C6|"5\2G$РSꦱ.MLځ24%ȓXȂ$a"Z3CQgnTGiu(D6ԴL%p7hh_GdA^Lگr~?&'7LhM7||Gܱ ^qYGnt,pa+`֭@90l:X௵h UEUCZ¼ />vY#sڀZw#Q=p=Z}ݼ"t8yx9j(xgBƆ ߧG{;rh8Q`Xg5u,p_!A8][!* :2bsH27Zq|AuwvO\ _]jBwɀtHB7lbBm? Ak t 5*m-J}އ O{%64 htrZi=n"1n9ۊe5*H~kx]ә]\<9KV ^s PXVK=,M|(Ga%.sT_!^;^D&t_'T X|"t/K140Qҍu1;͍ALB~ ˢM[~]) )$a YqaSiyGBT,iy8X$|[:xʣz%@׏*;kcӗPM àv<s@I-fyދ%NDˊ,T/Aڌ2b^ƲݶfT=x@RTK k7h8R3JN~.D &)mKE ΄kauTÀ&9[&c/d R\_m[~[Ou.Sv7Y)D "0_K\ )rFTBv,vpnڱdQ;xMJBum,=b9PYŕ%Byꠖ3؝m`~KKrpɥ-pWr0ti^ōzӓE4'ؼd_VEV֒cq&S߃hd]0Bg!Qt;i5col-=Z`šjڋ⭝uf@ƗԚEFtvh% LWax:jV(#2# _?xqJq&bś[og0pIՌq0\Inn 7GBĦnN{0weLGs7h+uSǏQn"i[41gJelцwTWOWuaϱdnz~KZhwcCy9k yK' =7|hg%nvmF@&~GOh޾8䠍0 '~PzPh>C/iPMc*mF.4[@[Y48(;, ]+7Kp]D1- ?YǏDˤo56i-GKy,Jp*;8bF5V3o{t*;#:(K>RK3\ID򀫇?{N1w@ HM-dVN/;1I$BK}.Y. IGQWYѧǀB{ DylpxTlۛL(UՑS2Ew{YULj>$yU$ Wge޵y!./ä(Ԙ,^/wkYME2=D߂b;AޒXh Z TG$~?['h "JK|ޥU}7۞Rjbo3ӌ}e"AaѴh y-"vH'uM5 u!*8xt/@ ƢI]T=7Jدqo`L0b :c@'C镇Zsm!D_Jd2eo߷"|4?|Lt3 "RO` !YNOHb"%!mg\,^&dr .Zc%2JECą%J3I6ÆhAJvM߂-J=H1[ڿ[ngmޕ4x`2,͞륙|O"KܫB= uF"|oTҦQFipR{E{DᣩI D|cFH\yn7a"0kQ}'&.=)I0(+)ne"Yi[Vq>n|P_]P-F6!7j4=}%J]BY##Df'reh̛=yQ`ƕn6cd$zlaQSsRCL8~ Od,m;eDQZQԢCs) a^| %lǏ0X^-Z2շֶ1isy6 B[}'!yTzPlKdt6~K+ )Md N REg_áRt}M'OG@Y٧քV!t^3p~ 5DVS3sk WĴ4rၖ!Ie+V )V{?GIK`\a z 3dAhqCp0PkpEJZfz*/s_y~>Qlk!Dyl+CB겗hKIQ'VL`?dCtՕ!GT ` b!ؾS(B==%_A*zۓKi~09TYF4m(ͱE |+yl[-Tx2cB8vMgXO)ܙؒ^6㏗ &"蕾yBx40 W \_(! K^id2=Nbc`)nw6B֑%6yo 6՚eYnZ٨wHѓ.uTo;[f60Zg~8G"58Vm0C]y}2Mzzl|D@g̉f.& `c f'؅T4la jC(Ih "9R0%+Ƀc)@jͭ=-V ѱGOX''3.ٓ;cV(l8haƼEo,:ͨ𸯖php BDzM0>jCξIP2?i5YAL˴'/g,(wR$91dݭr:S)0Ҽ(Gg١RFI ++eWOlW<ZDI'3rZC6f@N%FN%N)RʤŞoF'Xz$'B!נ$0+qZaoAH%(݄ܪ&egb"2}7cMEk$Ga^F6w0UBϐvYp@^tRr}e=0F3sR2x:3)4xm`|,1"uc*3Epрq`bTCZzln ,qDRC|}5J09Ч䞐+p1!_VTlH `,(}"#vK-\Uh&J=&ЬR|sЋY!mX<5,XHoN"Dv]T2l}"_{.6І;LF-kƿ`k.Sfݿky޽=犐R̋nQLޓx=&JOCclQN.sY0ϒǀo_%osY5~޾NLQDā 8JFڒrէ[.uIjzA%B>iQ#, *W5Rf(O÷zoE'Gi y"v+{  8et!Ml+fm[Ōz+_uq en-y?Hy MIY>u6⽕=Ku|a-N(і.Ie?76 ndf ==> ƙ1e8]bG dYv@e-xXV(;]NV6WrJһE9q:oRT)e'M>?T͙Aݒ3Po 9gqoN~7yiVB<% ڏ۬b(mRj q0i(x5hb#Iϖe"C\g)i\~q력w$J $w+ ?Ueg} b01v?clDPozk06ѥ8t2=`eeU88ALDcj,5W,6z$E枇f&g~^t_Sy[6 KfUn·GN("`f]Pzǒ-g>3c$7Ŝd@LlcB&60Ih^~Av=^y 䭹N e|ku$idOAb_ ⷒF"Nmѫސ *٘9cdZgFS6"bhB^Uͱn9 4Klek(絟; +SL x\>] U&H}\Br>h^ i[jhvz\~^:9*gdGU"v 5ndxQ{ܑ(*?\/'Tz IIȗ\EI~];p#i WZ" O@͏J>CY 9JGƺѪ6=m%_}<ӫh(t|547.  m'0!~.!;\I)[z<vu/5>qP)IL֎@aMJVx }Syq2*Xp֬ a ѰmU*S1_pY*5']OVBgphI9cq÷R~fXo h]vӝ(QU]*5@?.Kw\\Y~;lddyEa-:%pdG绬|sRQ??azɅ2r#e۾|s~IܻHԭv;Ag?{ ZAe@``^O0if%[j'ݛIfݨ1}7:rVS@cqhRzj>nd^׀\.GWzkE_$;ųסűL>A[! qܪY)_惇@Yh1:.մM蠥>|ttrh1?ʈ : `p<9̹\ٙ\i)l%D뱏JgGyw떛Ȭ |D?bFx<;aoi0G]A 7U!$ր~I+kJK!-4R}$wecFWQ Kaw̄S"?ԑ x76r7#W;CMYrlu#$zxO0V('c:,H84+(xN=T>& 6"A#lۥ$v0,6 ήEZwnMPnYr즇 $`x2X hd¢4lyNP6{:[h9#M|Y~kHDtFDc]Dl_|jMl#2-ȅ6ΐ3\uPd alEKM,MhaFR& ܗqpoٵX_6Q aYSGyD}}(ioo~mz1~-l3GZ]T,A'{z8+(ڴl\f;i-nǁ̗@I'kF(<~5G4ako<5AMPf\*1yk a2ŦN=XvG$;щҩ\י0ih??JZ5:QYޡ6*y1P>vfd,{:lJ5.֥^.*aэut z%64t9Sr9􃋄dz ĹыvtC = >z@($LD"R:uCrZ;3nNiIi sWUfehXpC i.FgԓXB|YSOxh:iY<. 8:2:Lb fc(,)E ;:DE93PTВf(E+kCUf A0"~/蔢B%ܙywD!vpp/ HWd 8W.K )1f.ewv#€MlnQSt6 :/Vdbp8pd M]HԶ(6U :7]׵3 4 Z_v p# j5J-{}ӗ@Z:S4\rӱ+K$QK3 wsajE.+`].p DI]@:GBaPUNCi=iofIe%n' \ :.(bOݭ꼥%ٯF;Lo57zo'Z2Z:A`f-? V|π!?:spB[Otѫ`YPet} 9[dbc6}3y >VB9 qw I1zC R0z{2,%b_# v l,lOZ탔WW*J>]c] a PhCJeC6)"vxPu^4Pzuxޛhr- S7D0f%;{cgql-)͖Vr$ti r0}@OIj Ft)UnJ.=Q'Kxm8ѭP,іxGM'jP|tweg±%S~f5n,Y|)uZgIe &Ϥ^kca" t=Ƞ}B;2/Ñ2HD猌m0,wOBˮ(8j@*=5O_]8FXF҄C%,)>6|>W.ئ,xaEL$ UCO6X"{e0pC!ѓC4 ? Z2ݢtg]Wox3TiBOpf| km3{E )lCᾦY@5kYs&h :{n}֞i-rCkWSUƃm<ԍ/5*lS ʤJYS6 F\̻ZO|d= r[ qDREXs(u) .Pf{hRCo>ԩ(]xSqoIσs?~LZ1@]5xHTmc{6âNa!^Nm,~I*Xۈɠn3H'pT%f ʱxH,B}vXG#a8/s~:sɌ@RiS (IdZJ=&nD ;6Z=5obbxp8CA@,Z V@0թJw)n۵ew{Xzz)]§u&y٪ W a;5Y(+$ qHhl^51JyJj Sz+l>,a MeE@O uApFӹp~GR.V2>+m70clrd& ]!Ϳ#2.JmEQ2n4h_L)%s热J0wt%w˓>dp{Y҉.AZ^"ůA 볻A\Mk+U ]U[k䠳؂lz1N}뻺VɇYtN1a83E=51߼_GVWW(cюΣ L!@T (:xmz^V6^bةkDQ{k l5Vc'{S˶syRj^B1S e[~5kEGEj~8jǘO^W}†Yb G1vK}aH9 42XJNY6Ccl]XE4SiW,xb:*~,r1dbh?w`^5*9H>lho *$V`C(49q6 0CKQ/}/F :J ׯm'V*7vZz*j@E ]o ! z($\ҺȐ\30N<56_wՖIA;1táD~O?~O4&r O?; tT6 2{1:4&Mm+_e~vO$QTL/# M}>?K%sBC ,tR*N:JjX_  W@KxZdxS26n%Gw68o&6D󘄔?#"{#IĎR5—lZIca 5*\ zTz"/)2a//Z+ VEhZ%OӜC*uҵ #m~6|S tM<Y,ǣ-jA ]t1}q㚀Oפv;la>s4U{dIڽ”-$P:oLMNo6ybkXW 8NĄ! ,e옪ff2Z9@~`n,p;j}A:{^22 ,o>N8'] 9v.&/3%ΛiQ:XBIS ٩!2q`BOj4s(qcX /v۹.zH4f5 {,cMvq7xL ߚ 7`b<ZigJ6 {OtЍ E΍w1ڨEb(JN{atl(a܎"kB&zx_Pm&=W"УJ/Z0&pJ]ѝ/vztJam#oшs4a]m,u<5F˞&udcWXGz% Urrв>c:Vo!$|2;Zc;nImLˎ !J`M6sOhkQ o^BbAIbI~&M! WЩچ]&'FR w^WT`ǒ0өQewR*3=m V=ba:5$PtB]׻(kճU~4д;5.%J)!*^'jh[Q>RWo)7ʱ( y: [o:ѣ-f̚c$- G 5fJ=Qer*.k1SXet|wd;ul9Hov0tJ3 }\r5/i9%:s(ЍBs"*`dWaȯkì[Ng`{{eܓCe) TE t+ Dpg*QHY3|-tQG+)Ƀ'Ng#.ƛ]ӟӕ.`Y8{7=^yӆzr]?$;XwiG |!Μ h}ե1J%zSDzG)] :7 w_GM4G~dÆ*=T ֒ZrGϧ\%BіX:O8#iN(`#*89^DӘݨ(y % 3d]oOjJQCd, i xpau:Dy S<)~÷^VołX!:YZ1a%q9"+;xAP7tIZVIKV(䢼k0Q┞Ю׋ӕ_WjXB3D鮰v`n+~+ev NI{5Bn`인]yv53{0<CfXDN0Q3:9cJF 9Y 1) ҃~!D^K0փ166RixoΉ;z7ñl ^ vI'vfB4B0^3c l@αSp O]HVd쟨k^s0`7BE72D܋qJt%㫣`(OnRJ<Gae+Ou2a*]pDe]qRkU,iUd xl-8o?6tBb/JT#_e'W,y1ʧooA:y!ڐ 47id@F`=&pT,mDz!5YѫkRfx2(k9e8.:7ԎwgQ91fscXvKy2S7MMݲp28o%z\,}]wd`U}#ڳSLv2!fz`joc .\݌,j^Ez,FcOʚ'߫(nS=6%X%V\I;qSC׹b?> 8XoA%7].K0W{UU?oM̪9 ԟ,>'xF?&VIk3ߣ`D"?ey+{^/| 45nti"1ƔwKv@[2WRR_{SC>{0`DcAv`6U`{byEWyGpSJž s59L ħFHîYLRt[xiR>$eA-rbP~d_e &붖iÕ!9FdOVTEVl1*X b4>Tf5Nt$ ~/F^TnZ\h2}EEFU^/F{K+*]5WOy:,_tsj냟]$zjԲ^eGAi='C=S0BF>?!/#jԟ3)YH1+"O?nFHSHsu2~eX>L{x1 N[HlRo=?̲׍XM-i#l2w~r[:Gy^:FDb5\H[TD/̤ BElַDFUA1a^goHKc e19mGV weJPՠ=.c?ssz"V)6`&bTii5'TM$omka 5u17qymH4i> Tn >''"Fx,[Y͐ذv6Z+S.n iHv5{/gcy#Z| n]|ȼnI`eESE=Vf\͊DƳ8j93 ǟmu>=nxLijswT8NAV9![E({ap-͹5bmckK/7euL# xD&M=wVxʈw^I L;@?扃d9YtbIB&ʀ7/pW1C4²\{C}6[G3:ϖ$UgAqJ)GLwb[o$< zm}cPG倓u Ywe2R0wDvwt9obz A)ym6^تW% X#&/MPje(-s_hu܊h{w62! T w,]RTRٔkV`fE߻`RVFʛP2w3DbIþg뜷TA!ᕘ܎miBrxC?L R" *48~ %hi 5MC9A>$rF%25u[7kY!Y\[7gSqTv<>?{lZdvsS anGr齱zc< :Dŷ#K{tk,_G=jdRڻ kS6L!VV6feu*g*s{̐|AƞGꏍ6__P4TA+Ĭ΂~W@Q$)ݏDYk+pC4W~& wsQl;G$zXy6MkDMJ#S3RH*glo%o[좆&%MQd'x >y+DN礶ozNU?7͞jmz(qߕV^b0e]_F?YIUeOVe3kd'bՆ?tB~vq.6j5Vlٯei0u@3q I [aqD[0XaWvފcaǬ&qMh:dc+깣soή ކ^8~ǟ[@1$ɭpdͳ]o^%{L F:J d@K'G_tkcn@mSÄ~NY=J!XZ>9B'{KA <@N#+[o1h83|Am< J&S#LޫyIo)2p9TXld0hjU-t{|ڦm@_WK(}ky{ƻI5:Jۈ4@(#ur<GK[S˷Uq=;sJK[6g. xLG_roF^w5EϿV(6:nO'SHt}25$ȏX"T\@"qQרV-ܠ.׷׼ۆ:?Xij6u/~@F-dwFRbn?.d~Ŏ[1-pbsM']mGUVW\"bl4VW4s%ZgqE\q|Qrșo̻IYWkAѰ]0O4߉ZD/ڼ)Ei _;i< _F pS= &wj\yXƛ>+iC/HͣYz[yQ:$>vwL0:kmAyX8N)F?[E4n4g@GEj\uyWgzO#JHN݅[S' 4ԯ+UT zB:,K@ttzAܯ$hJH?lLʌRfRKAofc!aQvN?Ns_q**bi(m>ݱ@^GkB]d}gIrCf}6InQ[J ȃ)bSԢ/ 6bkjevؒ/>٢v՛bXÑi*/ Xx #e'xY $07-:~Li#«r ON _U`L&^>S[WNe@8a4V_wN & mNʹ"uVjFO;,{ ɟBi)_@ٖb(u!@L#72]`$ͅHIALip+G$(iEA4mdB1pE0uy,SWPXlr\PA4_̘5 U'%ܚq 2rG/D2m0UO%&(+ʔfps&&)'>ГM%PJ dciIw$:v^@WlTbSKy՜YdwW)=HC~ƍ#4;'19ePh)S;X ʳKL+MoFٝS#<4A^{Gxs#VoX.xx` HbȹhCu2+YwM\RɓxieFE K:lo5Ěم;K^;SHgsȲh9.icW풿 AAfEsj^n'K?tLl̠kOz D#J8`QbQ}Pl}kCNl6++di__@oLAٴ1ovBL2oĐ\X]|1JS'BGrh1\NO}(\4( >CoGg/'J%xo&"3'dTzMhet랳`t]DTbK})H3%ĕWϩE՛{}bBf*?DO;4C!$̺tVMT5#*pa.I مWKbblA˷E'I1zj.1NIˑ$Up$^pWL5`PH\[?l@ hh-;pn3-O?Aԇcb9jO̒1e&)?dd7;=6-jHp2D!܀5yrBQ*O?B9G֍|}¹ZT✷WBᩚlk?O)>f`ldZ`9F t֑85rD)j]3d L8[g8Tm`*^,w,d9%f#5c\:?*n)~ZK^fՆKt4-='bjp6TʾCL ]J(dޅ;O8Zϭt}!(5D dOsNnp6}Y.GWU DVQ8vOp>D +CkPY /:d SuL]d,V׈~]2w:x鎃6=4oy&O=/ 6W)n nΠcZf+:D_ ^ݖNl)NLM 5ջ@-A,`0xf p5IT 4!0\uD=|D-io΢>DѤ~?͵(S݋X-.]p BSU E%^u t Fse.Ry NBkQ}xr!1~۩83#29RzTgKJ2bGk࿄ qߝp0w6 l!idIqnZf7GU^KzDG_dG? {%VAHJDԒ@?'@Bҵ_g`1T'_1x<>\{wruCn\پj{ɨ)MJ;<#A&Ty=1+y&gbZ0218 {9b]tzvHN[|4‚Q>)2 އ_$ܯN;wCm0kKnߤ s8@@NaJ^>i(+q!"ˎT/lKp?tXX;Z''?y'aΡfhZn,q.)&p0F>$7ug%`Bn=A-b]-Au^RS j(0@ D3w7%xA6rfg k-*s *պ><|Õ:v^Yi|$Ule|^IF~p>o~cIr4Yb7j;yaS$&匔eL$I3UZ;gP.gne(Cxi*6W]?ir_5)2^pնy#z~zPf>CcӒ9bEryH+?ڱ*:ɯϚ0Z?7p2rr`HQ;F5e{1m<&:ctӭ<3$>DvP[/{5)WXrd ي ʹAy+Qz=4}YpDTt[K[EhNbk%xp=̲#;Gp4[s֧4/[S`1Z>T笳 @ͪ7,+2#i賤aXlJJH#uif2y,6Lx&󟿽NgW4:V]fx۶m#.AblN0E촆9?{˰P9[p?,Ļc*)\Aq\~sOBE-*4SGq4mAC ǂZR)w [1|{{*A&@7#,ي}ݏg53ymK/F©~u፺+$*I#=G._Z<%@2B}bU.V#eAǭ-}T 2+Ri$ -1B۵{`WkSH<'vB:|F|@ZN ]L بErWk؏Imz[-c aoCl5?ٱǛYjPl! (ZBygYA qyͿJ' !KN~EҰj˩\ۍ=1!ў!oy !̚+–MY9:_~ 2_.{Ն'y [t s2Ϲ" w( - W]ceKejvuy&ZI' !¥ uC,Z Ͷg,1}%奶͛$qׇzxiRv^8%%ϫ0 푍D86/V U{4׊5%K1O]WE72?9aJgVmȦZ49""5MQۏ:I3" 2@@U/i/FDž@x$B!$l YwjqA1o'*0?Ѐ6GFvuAN+Pq8/-Zcw앓N? YF*r2vfNKUP;V"<,ң<@l83= "wf/6.`ֻo7g`:D0~pKвko09^rNQ |4v<}[ݨNGJ$7+;CK;uyvR`6p0`+]iO؜:I{3X+ r]:c=)l fk<$,Mu6w]MgA+7nY$B-?\24s%[ړlU<2~)|n: izF'#ޔq%&U‰(,oJ,V^kj t([2?5 /uժv[/FGↈzzG#ф7Rq- B5~fLn4x.Eb==1\BͲ-L@@vQy#P^î_NH^BLD㝺X713Ӳ i3YNkqG'؎&ߚqyځíxv7*TW'gjї9M5򜑡_$ O!G'g!/tA57D vznSҌzCp^C 5b@%5@)%&%x=wqčQS e9ZV]𫀲VyGW jI&-Ol#bzOODV!ݵ\Claudz/ qR B17^iԈnľ"XF3dĥ䐽 N_Ht`e4FY A-CCɠW>RY76A᤟g$sբx:lɃ%Qw?d}ށ'>te봋! 3?  Ir)&PXO]W?-]J-$٭?A$|PWW9`xZ^ Rs-[!F]s3gf~lU.3V,o:uқ3LBZ6nKƨR!dy%D?X>2D_;Tȼr+hYt &p, ?͠(*&wŰ5zVMty6xfBȸrW$%[3c?h-H g<{58B,겪6m3X,ŗ ;[R|mhx>骆k\ҁk3RNSkcn6b$;B [ٝ @?0%@t"s=u`Ies^wvj{^[.b?K~s"}C0@%yI'FNFAs)(TK`2=4]ٴ?gA"*ك.ݱN2vH(bw&^kBg6Ut)qv4H>ӥkkIdކіaL@;Nyoy9\w?q8@OU,rN-}V8c՟x`>4Նj^SܤSx8)Vj:;_˅JU!HJ-;Ly*MAxoNU \bxb?FO(Q89.IyZh*rW@펴g9+6LZ`2 w-)Gcٟ:DlG r0ʫC)/uoq~EmmGCv R0N 5)҂6ϵ'%֮AgOg-QT4 ;6w';y *ɖ+d 2|zIOy 8FZ.=Bcq-7|>QxLPD@%YFPj LQv38(@ H=Ds/64vU0hB9'g $A,ZMͻoPo Fk/zZ&p*'xҲK 㽡vH>= 50U${9 ୖhm}:!>?n rQ=sx7'=FH'edc$2|GףMܚ4=6`zN#5wzHH0*̤}aC _4\߸IuGzJ{Iu(gmzesq69W۰jQ1# y{:T3_!7ݭ$.h} v5FfYua#ךdH >MB6 CJ؄bHɿ4ηA~:sУ'Dz]ǜ8Ôl(j<^ƓW,vvIGS⿯Z/6n`Xg%*TZTYeQ&wl$jȐU/ ggS A‰kej.ҍBiF:- P`Ϧ[g+Iʵ#Z{Tlq;#:JT'=&9`Ƽm:ѹ0+!ؒݘg19."879Yx7~QѬaˁ\Cè='s[XS\Gl)a&J>yEg`a*f!jp%x>Uh 2' $ qOv'HB%Itutf@Bǽqvݺכ]lBݗu}x4X=ڳMsU#}+ɩ`T߂~œ71Ys(YN-Ql?ߒPm3ńa[HԖVWS#RfU+Ddŏ_ˀ\wU1hFAk?6QFC>.j]1m}\Y{;:357wɨBv}\uCՠ( tv90`gWVd {oV ⓞ)xz[XWbʨh ´{%]'ttw\]BB-*uI-Moe18V r;J5( Y\~)p$٭V`¥ 98V3q PmZ΁,N)+COO(H6DbX@!S;\:YeցwdlS#Å`t jّaZӫ?o Q;D8Fڍړ 1z)!ўx/=eMmQ(y6[I)1}lFJ .c\_~^I&bGdk~SϕhQ3Rvy=-ݓCgi!ѿE@Ǥr:oHc&˭8O1)[DOeS$edxV͑M]'HQ-Uc0uzxP3cǁUsVHt`\f9V'{g.YbIѽkM՛Pr,mG D{#o$_ qˢ*\hV(فs$[˨[vFhz{3_ /&v/&Cp8|_X^,:qhuCtDDhG_h*p̣`@-O>:Rlo =jU %fJ7͛mV~TQY6C:oʙ`DѼ_)”1;8ݠ#EWJe҈|#Yb?cC99v.& u6V)Ch҈I'b7qҹ罹#UO{(yp3I̔W5XxH2Ǒa> f2Z {قq4U6~G1X?F} ~ϩükZUJG>t@M"yw=rH [ӊ֟YՐ 3fE6,Ղ7F-x`_ԱIG}Jj!a%U4qTvgΡkX(BӘZmc=:&;דqO cMJzdn R/z g݀LJ}k>IS;܂vg?OٰIdk+E&yxtuD;D C4mW0dﴸ&4>x/+P$Xac$sҠJӄ>֣A{MT.PƏ ZOW+}A/Hղ-myE=` 'P׃~e7ZhgC^\Aak!>Gq?i5 m, NQjdZ69}Ds'j=8Z˕N`bn:eiQaR#G!9~٣OIN(:,/@ !EՌ*r'tzT);8iqT`{?{JW9=t#E $]~jȊw$SGGKV!Yt5)N{?;*&H|/;5T ig{EOoݡE5`] agҌ(ۉ~c`P{s%g)c\1|XF6Un-Ʀc|&@.BeȂk1^6G:㳖cղq(4IIVt^ 咦99jTid٤7?%Ž#4L NWށ ԓK6n׳IJ|/!㐽j I7ynYLshBB4~Z8rSNM,0C&[.-IQsS QϮHt3`}oKaM7өc0%2.Z"hyNp2-"hmg҆Q12g7F>iJsu_wݱp.mӡ*gc*ܜާOj\F ?G̈́cyBTMKu׸M;V{xUuV&bH2i|yYlH`$MLn-uZ&mbPQ4uIp鱥AJejH# '@KXР'GJ>ImY'=%Ѿ),Q[ْ J^<': ] .H:#sB5_ KZ؝*@`-dF?yge *D8}X7{ln"RT5|`PbU"5ju/#RZvC"#/CXH~mb UzVDP3RհC4Jh7άs5IUTV(( jxhUsỌ)lA^ ᙊky~͔98ÄN”ڕˠ&= U쾜Z}nA;Es_\q7>MbDm.ESdI儅P-*ҶԢjD^t 0nj51PJN ݕ}H.F 75[ r[  o:sz4RMd/wD*dT>yL؇>L\uHcs2o &VrCithwɼLS.Avy"9j{\J3j]OЃ-TahVVS!Z;1?86W̠ߊ'{k%$y /~$ܮvKv@օoE} %|/8  Bk *@cZZe߯HuB=4pAY>6/ۗ ϸ$*'oneu!nxDjLED+KxINp> WON`wra") PL !2`SҮ^>I~JZ4ʹ>Ìݎ |"v:S;$8=&:rQ'R'1e##,Sܚiv~qcOXֱW N/UQZ<6[pFrD$p^@ hc4ʝieBL,iYfEW运 viS7a/HPQiwW'mrĿ;:ݩMgN`7>Ȉe@6V,S1-ЂmTձE\9$003 S3!D:R} y;ΕݗnchUSdFu{]l9YmD פcO4Xg`Yb"U)r~ڂooZQxlhsOQKlZ9<5g^+\ SWχ2 bNPJwӓ^Lw֮L\j Ł'G+T4ֿҁV%v&?#oF~y~O?t?Mcɐ,n9Iy*G(hwGJV)DA 5D'x_އɤdل+wܣL+['>%{YdC6]^7-M :oy[X7рE?g'۔?<`76Ruw"%TN7ݿd1w: eS%=ٶ.=|~B!ԃUSu`ZN>Eict< !Z WϠIN+2t´.Š#Di>5/0]ֳi=Pru]sPT6 R\9HɅ5" -ݓy(jG @_aK$nJ/rKMrד9 K2  L%[!u/.e2/J*dd܉_o&+;A w+٥߰B3>ߪTjQex6p'|b"8bt5p|x #C/A9:#{.%g)1=upyL@YXpXm8T()@?4`cߜ%DlƁa~sO0,.fhri}֫Ag`p+oǧ.$ W8ޮm6Mijz^`cb./Pe+/Wtjlj-D_ƒ Kn΀ 6rU8۝$gp:u^RE8aXVZ t qԔH2ϢVDOPf8:bR w q/Y5:x>)Do#1;J>TC4 (? V C+D;yc uCֶJ=ߔ-mGE֑+?**2y?4fy@F#Q%pzvI} I+ 2m` WVF>I?e5JM00<gF(bB3gXS`ÊZ PWN|[B~a<XS@<-$ , x-~4+Vv'sZ+gbii )a>#?ptk oSO'p\KMS&7ɶӚGiN  !rybPuh_L(;Z4xF-] e^"q<.ƒKvg gx1:}-Pmi;]!Q ׏Cj;{y S:N ?-9،j扳^'rC9gp5`_oG!FQ2lK W(3'( { ns֌TzPGr`~ڂGn)O ~D|{Ԁ9##gn#z{ÉGSkOJL`hTAvݷL(wIGقna:%^1As1[-!s |*XSQrTͷ1H-&fQi&D6@QwFE4DKTJ9e~8JkfW`ر2 " "0>Rrb^=-̟i*xE /ᖳ\Gx"y} ̪jZB`-"xAZS8@kݥ1ZE|dK73H`ap{"o<:u IkNT^ӏx' ЖqvV-} Ti-,Sl̨f3e8ld_'qi9mc%"x~?/q)=-ݻ+N&=w[K@ޕi~UӠ(AT*orUcB4~_@%w| mLn!rT-`5݁M,6X<ķ1]45"f; MzY(zn|@mʂD?>i%P= UZVm֓FʇN@#Z s6Bbe`j҂ܕ- t4&ӚPnPl%IH wU>VMSִ!=V+Q! U0Rjv^Mj-k㾻%T:6*5 :4; OzpD:g~ 8gŠ:~phCEsM- FF"ѳW |~m h8w5ˀ |!{sCJ7,TjTs#k 2tҹvm&NΞN=O(2dӁX-m5XuoNN0p6Es ϐ8^?+~<`2f 1NW ҃bB{3rm3ipj;eLnyϭlosq:Bl}|*v2ZnU)m"†B:Ҏ^Te6biqiMHJ1 _r_ ?7:b΅a uTj^I;3|UŽCg>O: ЀAjP -AD9kO6 Y,'u:\qUFH i#<.V;E\> Xd0: A>7em7wzWX FJ1H KVYZpPbjWĤY{>|nj~Vs;W H R3> A4܏S*y+sfT\ȉc7,v:$ f¢^EW:ܷ*m)5ar.̉ ~5!OvݰyڸO!!ëzG~UBnM⴯;~WAѡ mcl(O1R`Gao<`d+ Ly"%K1311uT]ڽU]yxۉ6Oʵ~]iR5C,fQHC9ЭNt#1Eݛ  qtޫJtzwjH5A!.J0GGoha;N[JX-){p `2ܻudQBP_yd]'R6ɇ3L;t yP0Ns Yk\An  I$sbp#8l0^mȅ}`g_WV\6k۟wevc`@m2R+G#7gaݐ݀ k%[ ^rsTxĮn ٻTj=9; ׾h#:\#Wvzb+GV9uIY1!sy\@z`m6Sʈwh?-2P.(^b ͙Xh:rV :ŵozWYKn_C)lf G@UZ-Y 8q<[ n.SBMp0=ruzO/q;peb! $fVD p-7U᫰jq]r3Fc$Ѣshc^Vt7؟ u{X m"b 1ʃ"ρXҮhLDk#\`=|0`}I#@qUȝ^? OP8C\;̻!5zKK>Ψc(qc=cLanJ#AoEDbHVm1 ե/[npw4lCp m\<"댿~N/W2f盭jZM7g9QU$:ɩ&5,採-D2h\zNL=H1\16`?s %~pe¼~)R7HP ǦӖO8y3 ˘1=MWZ%nz߸ZY߿pe1ǰcsZD2 z&Q0AxcYAiW-^cL { AAfJq \'^ad`pӂڊ)̣Kn+>V(Rtkָ&řua3xCU)T p%sWdiRBuxu k/W$֕$cPr$nrP\o(sFh!PS 50JʨZ+5o [k,y;:@m5O" ~˒j˓wEX t.+ ftyJ4mH+[`1[$c7"uֽKg|TG)렳M.J 2 >5r)G>UW"?S ]-ۭ|zg+#hv!. ~'9eeǛ\_xD0R1DE/[Sݼ;RS^sޯcdrKq6~Kug@eW|*+% udXS&ms6"|ʮe@R8KE 蠳 =c mv5, ksq 0<]-Xh4`_Uv'#O ?<@_DMpTer[ǣq}o?G,$ꢛ}hkya)6Y,'rDE"Y 8rh9FQyr|_F| (OKuܙB$hZg~z9+#-rh$ؤ[VjsDI_ܖ).CXO+:VA fpm^A!1g>,$[ϸ̽0׊D%?B'N^K;@œ-JbahƸ:g ;` kЕXϊʩx/wx>1u٭&?gB1E5Q~blZ;L58;[>i+"Wkj&Ë 'U|9ENQg}'zOypeU/me!*Dk8U@OHI/-2 Aʆ4H~6q0j]u_١'BJRx@~Q̬a@{b*߯ (`Se2i>z U,ԭN>-Yc4SahEsݡK\emȕ.U0_E')Ʀ dQ@ F QG)U> ׷VJgU.nue8>wz:z85)M#2;NMQ(Wctodtqۋ^eCAq|Y3Bb,K8B=bOQQwe %;B=wc+#z _<>,ht8N@9 _>ySeG]Ȃ&&$Jel a!MKǯ޳_mE}k{8깪VPƳ]":跰$O+_g"LE0qSU :uv]tjj]wæ.eGF4w7r0|4͈=R&Z>G@߾^P&~{F,95Ch~I}93n9fMaKTN,ăd Q,9p&, F ZQh۵7UF_=9"KK ?S1EɸeqbXݜ)I e=tT":YI嫣䤞w߶q,Lqi !MQjVPNWL'* )m`h%5aH쒊l'$j{#BwXKb{/ବ-c^U1`V]޵*[GJ49/%Byd훭 {$Yw7fk.cʈ=I.9Ѯ`%2j聹Lf+8װ7l=5Bv师R~VCի|=L^&:yd]'L&z.D#릫g늵7H~d BWWYBJR8}xbvM0+6rLA-sTT,(N5m4{iRe?2r}a6(7?UgW;P/j5`OEN VpT]H}c7/BY"RC+YU)/h/E/v` {0# X*cnvn I \mOv3UTdiՐlA#cBni{lW\ !?MzG7G^`HS Z%mAV|ȣ:c KVUc"ɂTYhKeV2YNPMtƘMqXDkuByКPV+>`l)~bk`b9G xљE -LmNޜ&-A]9׬6 PP a> Wوmj2 u>!'r5/9zуde&c0|(X~(p~"}ggCyJ3]lGpU/Pl1CIeMo"XƉDR9L<4ieA9}4˳ef9DZe {E[A]!@f i&e1*kyy Z^qw5C) +O-'{E6`.#"Dw fB߀Gy/hiڼqKN! @S)w:ܤp4'AeH]1ҊB,88q{),gw67 u/y'hxpCTL 1!(4payvV.# }QllƵ_C|Ҫb %z'a| H-X/ ei0kM`#z8 SLGcNm^Q(J2F4+VubvbΒytGHԋ{pT,$%"zgh*%޽{q_.R-{> <dx"DQe|ĸ ,kC)2 T*CiԾ.,|[d3&幜otٗ\X]*S n!JцiX)$=?i#_-WhFO1ona5~<&hA$?QPl.?ezu:'QFUclяиÕxE 5BymlE\ȼNG9 3.JElo.e~-.>}7"-'47ᒜ-4BfBUnG=ߗw%(i|ДBhDVIBK¹n]蚇= eU; V8]AP NtJPgur _m 구ehI/ؔ$h>ŮgP$$Z8GvUi^@,aP=2ӬL!cDۤ8[K:^@ N]%iNG =8P?StF*^AzW*- c F:?Ge*EݎTM1ޔq} kK蜼CıA&RU_;M>dE4Oa -MQ$TJ4 #liLW!qY*vX?.F<TbY7c 29VBl! ]tlXIRf鯯5͜nFy/jly]XLƅ6>]x/`*;9%,̈́d })|0 mGgʭhi+#x7L>~A:a?DPeڌJ攧E:MTZusoӒyE̮w(zۉNjM CL+f- 󛢭yp klLc[Kr:/1@(]H[5uXT~? ` LMgt7 =&atB Ӛ_9WdnW8 AΊLCxw]kC4[tIh jR4N|L̏XI&TM8Oɦkg3Uwm%zibJ$uń5.xBz$9]co4(_>0,l?WxwsΑ~5TMF]ݖv sՁh8~M"w(gBDd&5}gK0,㨬l}Kmix)L&m>< 7:K#X[F_䌍d46i0Wi1r[ِq.̌ϟX5NUv?nf4P(tyJnɃiF[MYG;(ٔ`YHcKs=N]mb |^ј2F Rm|п زд+#]qWtklJ~S>ݿV?6V})tL='s`@TzTw ZiGY!Nmp 3&V: 4-CNƧVp$/!R!›ǮNJ0k>#ێ8M=D8L;8HձJȃ@]Pbh 㶻AjؼD,O*Y)Yf3Ny+9$EI =QCpVƔb"ŏ{c4boQ)=ʹmZ3@yH :%)MDh"u+:'{[6` PADNftM װJdz P0U}8LVfl8DPVU?[;Kb k*$Y7 E ~L4yQBe2QlSz飮 zR!`GIU38pbqkfp5̑s=avk{,ɖ4!@8*-.Ʊ"^3Fc+h4!M)tŒ]93d+oH_d#2hÑ)S'{evM2g1Re9 #LE>h0_A\2hN q!JrHC׎X :SLkE_W):>t7@xoo'X[ _Ayi@n(UŽ[[xroT]l Irvr /\Fw\a/*2 kSQl^zم4K}پޭ'>1q+r=\qRC~dv*8,9E͌/̪Ҝy) CG܇ًezN6%GүW'7X[le 03FD&8 Qn5ΆH^6ЄPOIyf ̸DIN\Bi1d#{uǬOc(bF{ͤc@~MߑH>YAmj*jnMNR3_j=L 5tW/w+mV$,ȤvOa 88gV8GE-P\'4!f}6Of3C&"iD^o'^MvL۳wlkNP%֎SP/!xC5?PwF-D0=:qx壓5q2]L7(!a,UAfiMFlk)* /ofk"kN2m.4A$m(%w8y 䭙0(E|:ehink{p3u#$8/?E=%o;e.@SSdZ" u|HUV?pQ`!^%h$q~2=׿p A˝@ۡ6sI_Q01$ӇWVO7pA ll8[(eH9&(kIr~@vo"]Eݥo'f]G?qI.'*ѺY~w{[ZE,=U sCY _Cv%ḋ6sެJ6iSyq|H삢o(ɫ+vĐõZf![+c#DOGIT3gC}ъo8Z# VۅY6̬ Ph&~ˡe`Ο|d*q낮DqmIب0Yc:X dzJͱkYC^`q ^귓8Ԏ[ur )4k -U ?Q[OYd/=X># 3zm={nZiѼ;ie[e|w9c@9C.G ΋{7?v.mM?ʮы`kM4콋4k6kDx#k\d:<6]Ք5sP]q8Q@F q`ʔk4,n|5{t:/NTöHy[lq}8;x1|bp41Gz.@J|FvXK"&=X~ב []8v\ix[ ;*5SWupHW(ż[fBoJd}e]Ȥ\bMimd ˛:!f9}O4uhyGɎO@Ȥ|dsx%?dX,2T8JL7cO`7kCe?q&U(GşT9хE`A,a_c%ϗaȎ5;ѱc{jZ3A#?~v1 } "zqGhmbkfIΤnƭ5SIMUwNi_oQD_4@΂:=BKG* UR8GsAF״`'Lt8OXSqO$; /k]YD7 jlA.%2mNqbkbQ[X{pك{Lz]cD}(ZV*~wXo@e(.'hɢ2g%NcA 1/crpOwj8Ûݖ1Z2"bp$n)g8'B˝jtt&RD4iC,.>UMajB(h<ܧMfCA}F}%5Th*?UR=+Cs/;<3Dt!DƦAAR_R0n b)g`M#IA} ̟5,V WS߷EYT$q?v?e/7DaDt.PMJQBܯ!+*"Ƚ3qR)|__{S7DZGnm#3sg}чG1qVM\'!wٱkI {I0zݪH]i+j, aa6(P(ih^'_ƻ7%w`6g>9#Ro̴D?POVX# [ G3Jk&S7`*d% -Mdb N91ȽgAwj@v8;^!rUWt Shb^ɡD}t~_^5DKMW@qyF]DtH1Qx< x&X#+C 5Vd\F_lr*7ĦZ]:pK,܀ԯC,r][kE[:$HFO75#G* [+#y#F\r/P!?H, l_dM_(%>ʎdU}\=]>kGa%y{nu-R@Prxw:2g&VMb|=L̥g d.}fCUk xƩL{K5G}]BrrN%rqw $_3S@*: `[1_}ؙ~ vj)>욞-ƞl\9]jR)x?-A/XС}j@lor mJ\a?^=z|Nז#{;.'{ OוDhX.,B{ՊޮpfBs|rs{%>pӄ!5()$:$aY|@C}P[QGobZe*JdxVTKrX ?$[h57tWeaa%nmQ(|32Gl%E?D'T&m&va?R3WV=W2/qiO{6l~M%$;b;T'!LvwHmrpdK?$tlROb%0-v4L(qv1Ze;!95jHĮ^?eE'Rul$>y@?Z[.8 p^+te:@´o萰3Uh,Бol)_MZCcA]N9CenL uLLBj[֪2JH5\3Di[bM~Q fZز~o 5^_o&Ìcd1[-+A6O\ bu[Yl8,.0!"]78YneM=jwb gswF}25oL}7[}M Ipƹ[3mkEDŽVBX0&!&Rn#~{",fK|ӕׂLI S;9<ߞZvjl5%fͩ.۱M DBf.cĒ+Ц?V'Uqx{STk FJ`\Mbb;˺DG:Vi=⥶V^~hċLd_؃ZOz@4́+WnkWip:zR /[ĕN*TGZXJڳ7Œ#罻q֘}'Xg~G J 6“FzI oCM8p}ҳ,"WXM)q-@;_ xVg *P(g5- wMRuO,6gN@4:d#// nYɯ~zF\OvmѨ:4$` Vy,'~/1j/ytڽ![8[js`=SbBi`Dv'lj J+MΉK)t'tL}ZkSsEw'=0` WR"Lkv:i'ł'ADwȸZO,ۀ;z2f]u!mMgD8|֝6y,$'Ơц:oMɈc:cs[ujLvo//Q,|鶈eބB+LF AG P E0\nZ+gs)jjt G>㡟Jv\+ӽ^u}[*|7n" pgyFa|Q-lo K b@պ@dΘ=9T@yq~*7A*ܔ^ҷL5NCi&]Z}~D\t;Z5uB2τf]\;^uF7d6&*dȊW.P*fby[0 ޏ:H.C$7&,-W:龂F7ۼKō _`~rGGF{L~j @pJˁ!t=uƵWkzV bw44fui폡JP]V3⇁\ɾXkE?ɶPM(@Zlv1@jabi6`0 5Dҝ$!C֟}!S^VjS %]P A* ܯt3T-7аm{rC׵u,"jĢIxf߶:Iִr JW텝tXڬۭYe3=a!diקC yFyD/Q$vQ rz} 9PBUTd&auVMDrҷw'ڜ> ?_b=`g$Nԅ(cI>j#܃פE{?N*9ˮrPqt$EUYm h&."N'Eo ORP u]om)ƴu:3XaJqn')fCg5"Ԛ_G3L79VBI̴j'q? Mn6z5* } Cr Je9Ox f{q0[B@zܴ5!Os?JV];b SF&<ɩlkXpj"wte .(<80h3Os( %[jqȁ[~e>u,[ Iʹ[#1C(;S#,-IId,=!{(,V,81pp!Chfg -m25Wp9c_i vjDN|p o$YA$fˤxoFAeCQ}LbYũQxڏ2 mX ɲ/: 1l{i 9]Z>}dL"ѬзzEOة>ZmX*fÚ}G<b|ehk0WL(jZtx{Ae!q6c\NzT}8/{ rLfV-{Ho6v.z!_x]K>b8(EH?A8Xa?z 1Rpb eEfEӦb :V#&{k3WH$$:<rSh?ڠ||a߄:֞ghcͻ]AN; ko<;(>e"YXg( 2-NѴ=՛#›un#pcf$ Kf_qBAOKEvM/^f{!~Il`@wRtQͧA! 43UmFfCrC"'.[XRt{^ Jf"K넨͹qzcԄѷe5Vru?E F2dЍY?b9l@*Gg"EXSv87<GqR|5E|\ 0Y8؅OJ_39XSK.W96J%v͘=UƷ:LK#+ˁqm62K] U`Ye=! Eh&R&1"4[k&VeX4?Ο tӶe5Ƽ!5s[&{Fs=ySZ>O'юbM ;rFx:8|#8f5Go}& t7Q@ Fxg*'P$?3~<@o-(JoX%{ezT%_7U :%mm*wYvWDlbU/煌8XNh7 !cKSנ'bW̴|?h6wG pێE= cQ6׋{(նUh8]Ȃ0oh_Ql yBjU݈+4I%rMaU8-f_#@[R#ʤY>rIڵq"2pHo6(֖aQCjcC/Zs×^L(`ue!/chttRX5&绁1wQF{!* zCm fe'n5=*;D֏Y &;M+Ys,:׈~KxUX8ak_ ^^/2+[9E\(:]DǞXhQ(d=yhFݙ$;g)/U[hذtTUОӡ"S1m&E-1Z2*RRM,JNF.Q`&v5ɫV"8Q݇?P@3=֝9",_OEa&Fu'L; m /9Wkoh"NxFۥ=35',w?Pq7o0mT|Fx.a`hU䊆TѥE̊\tOF%ߩb]AY:[-nhΊHX-ҥF&HY$GeőW.rRKާOuy)ѡҥy%?uǿ]ߋ"0L)&p {6tz1 Yit{ok5)A5nK.c|a$߬)VmH;9=f'HUIFTgݑ3;iG}rGTU!HBzHb*Ge7STXE(7vgi3{޽e҄CW ꘡*:/`L;_aBwLy 3,:DS1K4M#_x"˼+G|%}l Sڭ: 2&o * UdU9cr] ,:BEg]EeգK`. 27鹩CМ1x[]Z0NӃW 5۰O^@AKr A9fK@lHȠߜ,lc A*_UڤD~ʭZa9pf~#>4%tк町_v% {'+kJ:MVq ߋFsIEvt+ghUH.2;]7O1= [z#&I9( ϣkR(G3 -{:+퐓<\(DpNgy&C*r=B32M(QjS`TT2qV0YzԘ^Wnj+΄bfj7o]NPFԜH8N`{$],o<J|Wc8M0r&S404PI|U _P<_x6{^&&:2M~r0U^=!H`S[a#Č1cf{AK쯥]˺U}'\< [޽0pƹD:,'tTzKaOV(at4aWe=^"$%; e  ,c ؊7k䋋 Xb rm6E,E^V:9{A>hO&Emv+(Ls'D;,0WZi*U:FpһEB7 >z-i_.oo2.]Ep'ߚǠ9ͪF5?ٞA-<NoZShuHS]u4fCק~W 6e =m'm]Ū6)Whs  Xu.*5vSsGP$|*JqVPEڃu7WɄ`_f?]?HVtpD-7vOl l4B%|\B҇B|"E` GYCshEDa) 9>[Aˑ~E'U‚ؓ<+["o8>\n$51*jQ^ lLک옽'^8[Zj]?wv؇  U{rO実]PU|xAzֲI0{JQ1zzfA15[ `:} GţA^BDZaL+΋FʧLMVuFxہ4IKKvٽU3ɾlP?MsdÇ75j$%; 4K s<9LծR׃CN?8Mkbo F4s-;-怜HLHVcP| R`bESAa{SHDY\(*ZC,N;2α1к#DFo:prekɓ DF/fGјf鴡.}l|m&c9VXQ$ԐU `2O_$ A =/[DsAh bOIpio<~4T(0T?% } 6)GV8ف=` W:MSwH:Šcրp)A7'bIȪO#B-r&İyGJn xhlXt6tMQ` 9E7&TT-R.#,[oJ^-"&oJgE9!%ɕ@x# aOYG0RsbkMDf-(cda'q|yP|Rei[}|>>Mr[#P`v2pܒƽ;|z}_}[.>z&u}ϢtөvJnVoushc6b! ǫ zp[IWBQ Bܬ3mL8PM-X 6Ͷ) ݌{ZLA;in%8ȕ ^v'iW|eY(`/6CNT)(}TC 0Lk4хZ e~Ţ= X 2]gF'3v,"9X4L{C4\/g LOddqkwڱ5yi^Sr%t^*\85\wT#~ 9A%4Ή%G`ft)U/x/T :` 7:XZl%!zX-wqM@Axz#al njS萀 z_-{HڌqUrqgȹE;hg0\f8%B:@v[r"C4鑟sCn\r ċxC]ti$\aE7$ZD͌ʇ4]p}B Հr(yrU(=B7H .13ۃyAaV` Շ:"4):+ =K6=mp)zM`&+TadH|Rg:TDC[|2ԏ0u A!{\xFq:v~mn 嬧-99o$jHuI6R7nwW F)sK  Ei;ʝc蕊 ;IO7e~GA`~nʓ󊳺('.ZVrYpAunU<8Zqup>=eo`<+)KeRIR5JzjI`R0f!h_'Φa$D BB ۍ INqlD {$Od޸ "F#-x>'UΉWi+Jo/.}T}=Ēc!BPyO*xSʊ唵rgxA|<VjӵCÝxNc\ߓg0!r|VI)1?2{QIm;D<1#ɇPjX lJ;2El2tD"PR&Ojtv^ v;R'vAkq{/:HOta>\,2ugD#`|_S [:ٴǓ2}̊IAI? E-S6}I{ZUfcX*4Si!?epy>F D/9wSc.\ z 4$NsUL1؎@rw?Op27|jUvo\0 =9^D{ڳ}y6!l7t"nlol '+dz"(fRCn # "R?? &&Stdln4]<2`?Z|c0bK!+顉Z!ݘr0\ch Ê'F ޚt -Wx<^*$Mٸ.H*= j^ҹraoB8]1G+5ja?5ewόZ3Y^0BhG}S; dd}1K䡽cMAEg 㮅cQZDRx[R- 'Nu*/$?79$}1>KP-|֯¥yK^S6lR,2?~?ݞOCE YqCIR4y8lW5uh7®E&CpG68@!SC^4l^göb (N)R(^;[E f,{UbQ" R恉Gx(B7U>P4q"\Š򛊭: ہ@&B|%0O<ֽ\!GE~8-·k(1n((2eh{zw4=9@pWuoyz: KRs@|ԌK3PWINQOakO] yO|=w7;@|TEXYEtftL It"zsZմIQ!rQIƳZ )}ڱxNCаMV.;[L;!bf[+h}3"JU8$* ~ȘxvL-_dC.81 ?qټP=֏ UOkԇQy㕞ؽYjϠ90!N &VC"cuXSJG}ԅ}D(bR{"j'4 #KQkxA8Wm}/ͷ$7+(dFP! ]H[uA$1r|Ҽ)\X6o {i=ϔV%I=|K`q s8`acwN  Y-eUEBU܇+{C^[6:d^Q vw8:DYtׄWu1Cu=/wX~lѕq뀚̢N㑘i`l`R)(HKtx?ػ{?u6g+R" [6y 0};*'ZD~DM̀%G^k E%Ɛ+ERvoj Bj;YZOB*z@pW=F7Hu1W> S#pi3EK-ZQj.>M6$MxPQ$J#DtB0x9;0v 6# f4x/(oj!osCnbC[K|{ud(,j}P#Х٦{eQUNuP`$Dz͆ XP*$_2͕u3~9 e+lWveTdG!Ec@v܄5 LFX-H+֟ɪa+ʈRXwydD˛!Y2Lp1Li/ PS@D4ev'D.ߏd :a)NW>k4};27>\m3j]7D{BeҞJp=0D{B?˭t}5E)&l i˕lTX]T ঳X̮-G5,ܞi+_~Ǵ3`r`rU (OblOr,Of*IsPe藲CD\:B.NI>,m" JSđ-lO/moeyMJa>;`;ZX1|膯2G-($1XRpS_ÃE#9VQi{RdKjսeM汍CY9vM3Q40:{jk\Ss[pd8v8kf3cw)89SPpЊyWG]B?R5 xXfGk`WO c 4۱k|~a_Īڋ۔+ÈY+{U"Ѡ(@4Q BsIMX) [E("SC 9}1/!_mI_F 1GO;KpuN4j8\#tےAx>Hb#)j9H<*$a]6 b_pƧHMkYI),"qH:gD;Dp*[+)XVuzKm [BByqy=MoIejAX(.lPs\YT$g3j_Gwd{ZDa99U0ɜeXyTB4TGsp)]] qZmgW,<{=gd.7U*y Uf'i:c-ι(`  Z:']pMЛC3wȼT@沍Z\:gPk1m+,DoȲ5,j:whSΨa-gJxPn]2(u* R1p[' ]-k$KvaOACr9N\q2ن' "3ܢlQC䚆M@=4FV|dpHc.栺e:nOI"Oũ;}GJ.W/GS ,{-J=ǯmUj͸$:6KJJFvΒ61|ĀсGdϢX!bB¹N~{k;Vk;q+*&3f42|`Mz ̥…@ƈk&nT ?Gޫ+\y7K wA9+|b7hM rD*"_;WΣG*'t"81hn'~zI+R?ƛX9RI뗒({ Ӛ̈%#!U9\<Әpu vTM*GFT1WU^0vb\,C,~{ePԏ[<չ|qH<5^:^Q5l YAk)_յ;:y#uExHBF`n%6ƕuYAp97+Sɯ i])v5vdway'EY 憧#{= RN(Ua4W||S3!j '9hG$*sw\}~; gm%^` 1wrf(?r<_5cWKrǜBÎ] tV&=5z O/}VZןuUsÅb'vM*1WkԧaK يxH̕Aoм;/Q|?:-\ g)x`= _5[:^1ȌΤ66O' Y:jFNKzu{oP+>X#ΉS׷K)^323a2g˜VvtEf/w43 dy0|lXCĺ Ȳ>{v)oU^mx"tNؓiڮSQ C,RukA-ѕ]dY ߉^.<[73yfLjhk+9ُ:Hq- h>h| zK(] cGw%UhB-f[4eҿJ uz"2U}w/}pΐnV3iFOm pz9z.rc4 t]z;K. K>= {ٴ@ܮKU]+| q2]贫JhvsA ockV0f\yL6G%3IBrg8;ǐ@|ȳ oКg>oHCVRFxyr` ZZ^cD-[S}]t8YU82UagN| BO7f{*qՊTHULr% [.M4SU+@bژ`찰nw!tDa͗*9޺Gm0|΍呶5Մ=F->\󰣘)< Y5[CtX2oOPaiQezv oU9nLsvyZ'!@x+%4O]x^EVp7 2ad7VmvE ;VºԳ5b -O8" 켽 '\38,>>[ri'#: lZ?-Dr ܷ2,F:N>#JR 02$/fe`rQx.ϯͮ"g.e?"%͈I&*]]Q;P?GA'X:~fhu=wWX"'QP^4Jd>nW?H9e Kӱ ?[WԷoн(D۔Z tvx5]1RU~+]`v6I[襛H J;npԴ4rX'r2u̗X/M^Zv1s (YX6o kj~ ~klX?ƙrN+(>-KѩAQ==Ois`;7??2( "KMpvgAmc?ٝZ©DR>vtDO5:i s)S?tf9B0|jo;-Ba9 2^!˧$0mLšb(yQS_.nl$dk>EzK%ukdT""kVM]䃾<[\ Xx0)j_v,!?)~&qh gEx CU 镗̰;a4-膋>6٭dxaAζ)y K%+Av;pVcMH%tdPݿʷ*<*j97M0_ HlJj\,0P/MRú6 zGd910SIExYweFZ{%&Ȼŀ/$RNx争xTSOg?_DKpяƤJMF?HwG_Cf `|e5bpis#UҥUѣ~:-̔&/[9'MsKN1:\ ,EJ  b)8D:#h}vYwOcpD˝a E5yX:t) D]=deXU.) *sL &au{@t$Q1iPeo?ޘ%B@ Mu9+E%XJ^f%&"Ev`muF-s {h5 P=+ۢ@;G(9Ek)շZFZ} y  qϵ] :"?]YSjJ垗Z` P8Q\[q,$.\ZP#_bk%ZջP(.x"nJs4|+A$%-G*e~U-?ES}u?oȬ`WP f: 5*ՖIx*GG*2y,?'JC$Ki02ƴh\;zYM@ R 9qZ+kl6.=NnKWD NFn`M&7Fg>)¼>,B̉B( :(;]OzXQ6`9%ӺRz%I=%CIŽVm6ɡ0ӊ?|s2cM 3&J?/H4`s",KXm t;dI+`N"z`5Ch 2-j6icQD, ^qA 佮:mDiCPL'8)ũ${n>~~tB:`s >ܜf4ˀ7 ;uq3PvqW,Abz?Ikښ mf}M=CPT.̮,X [WNxS- ;'7k{~dZ;3KyBn}(s7_O o [hy@?9RwB'_m[xw+keNqSΠ2ά=fo>;V]nW h [~xL"S}rQc1]-l0ѵqaU[@1% m?0Ri \. ɸov~;X3vؿq1WSzR%XѾ}kԑfjz{યv+^'_n.`VI(0K˴vo|ǤX@1..[ ޸al T瘊@7 4tO4.w-驉j[ShM-Ժwrj~?Qw<"d<@ )<sTEC<@Mv(ȳꠧims"cjnaH¾fO(Idy6]ZJEn609}f+,u)D0z s-z:W5Cɲư9;{jycsTaǜqzl-wM=M!:%r;popGIp(Dᣍ0Jjbϧ*ClUT)g3QDlx `GP4+!{c Qg͜ Ԥ tZO7+S-|"ԉR܀Ƨ{K_4).Fc>Xolݓ3zfJ$#b;@źhbRyCUS&t(Ux`BnӋS}>g[3@p# H3HD ]jm]cE̵i~]SwVS 2gmd>tc7P5MN;WbƋ ΈxՄяS8:a!pc u ëG[qFz(ƳLԊtiv+DW=Gyb^&yϑ~8| 5mV0K݉Wd*6NzY.C:%Ü0FSX+|hi\tU0N׍GtK=s韋`ɝF17RN @]ѱZ`ͺ mKFKip/J<ͦqEj&`VE BO1\~rTOɄi܃g~9j^đ^Ă+yq}B{ v})$14%k9V;A˧\|AvKF;.JR˜],M67xy.N0(m): ɊP[vu}RdGB<# 1s(]VPJxm_yJ__u.b(`W? 6ʴh p3?5LGp8m+ ^'"T/?=1췇・rn˽R\#L`N p?RfW*$5YoL=Q uzIX,k1փx8$9N dOk9~\&G08ь/ OrE|@(3' + {'0MTB&eY[.|v" "QoUJJ*c)wP$N'ufrޠvtԆB w"ۤ 5 #˵'@YQ!x'M_oalw Γp=?H cN!|^e\&RHG4brf~nl>E2y{j񱂘umdb8{CP47A-Ho^0E(7>0Ej\EH*Y8- \`P @P{ 5LFD/vswKUNcT‚ߗPFOSNƀn-g:/I}u4Lޛ !qk7H5* 1g >KROf fU<0cR ATX@=Jܽ(=dǛʧ0VR'H*ztjf1eQp˽%3y癱x;Tѵ~N,B-XY :y!mL%.O)S NxBg IutFzv侴p"xȾJ|Dj>A+KɸzJӻBDKy%!M*ooǺdvxRtnʬI}Zy<>UsWLL=ǂ2:XE 5K?8>#*lGh;G$}0}\3A+|y[0}U&⣆u|[";ffDŽdZM+ OB蕌?Ts>RՕe#SW&wu?p&C*)}"zF.QqÞ{88Ԅ ;3V˜ñcV3*aeB*GNlN +9xmЖ;IA-XrSɦ4c?-Pz\u?Gb1>VK9fE/ f*y`yf [T.*?&֍Ue+%{(CLq֤)MaWWG6񅏏buqMGM"jDl"˝.@šcut8E?ZuqT<_+QZ=<)nJtQs lY*Z?/zh@Ly V=KSPZ 'b'i87=|3hLQ)z"E8%>U.:kO "/*3ꏌȵ8^&i*T,0_o&jk ̉xDl*YWJ>"K1fo"S-x lbӄ>9:f]>8ma&yU8ˑ=+`˫/})~h ,FPqR*Hlz}:zli% BmۛhDQS@ ($D̗*7&Y( ݉("D⠵-nJQ ǻn ]6z$HLQ:m 'yɍTqX:iiQzp\=^v=XDUv1'"{kTqaub&M?7jK@f1Ct !8i䄱}v=zVSQ8D U~:Zճ[A4ƣgM_Hh[դk.AQ3;k!ׂ 땛K$|E?:E,ɪVKUh $T@$U` X,xzToN@A- ]1Bx#@pOΤlB+܃ ,F;Rh[q?l .2|꩐iZa?3h_'w0ް ^d3H2ic<756AfNgYme`ޅ!v2w4^Q+CIihӛY0 mEo]XE-So쎿bVJJlIyoy٘Ln8^ v*|f%?hۋҷu96̒8=rn=W$rnC,>#/v'6+u/[F\ ZVI&fU)NFn3v=ʉ xaU7.M̿ YRp7`>4yNoQؚo7@(ˬ "MVô;6n|zŞ0@K&&c.RP+qVRV,׍ "U?ݮAѷ16(r% 区y]9QșRv7g0Yේ͒N:}^vRa`EkG w3vojW4N M@O'\P{7t<ׁK|1Np)yl܁X.I]қc =ٱyn8V[KukkzT&, n)^}dXaE23=+Rm"֤⊷3Gi/G߄o_0L? 0ck]az3m44 fDؕևy缌׻u5c'{f.4mvz(w'K0VYWƩ8 ;PN'd<|䞺{L9}ΛCjcDijJ̓:ti 7J$~ ўRg |t`pO]C@߱5Zr/Mt&j::̓KH`g{}y_PN5ىp;)"Qx)n%H| )>x&C. Q8מW1Ã8)[r3WǍ¶Z$%FR#GE'2(1QZh&6BVCYE4w:^l@FwqҐ>C`h[{Dž )%FU(|S"7sy(d{w}+`HM+ b \EW$MH_v/⦀TŞE"$z}Հ1L'th,]tUVW<#o%3t,zI䡅$UPtYͽ_@Q3Ssd,UyM1cX`2jn%qyHNM4YEp[kR+;DDq6%wppeL531At y~Bgp":CTۚc jlqXHl<u{*61Ԭs}V34ݘ7/_XaDEtVw$NYfx{3}N1hѮ/ee#;9n[ WB{O8TYO7W3UU~`Y)/v-u'Wnz@RpZ+..L= ~ΪT"gzkf:]sA!}G%icUȷ@v\3DoRHM'ZgQ2xjG^iJj5ԣGof; W9@3Ss~DgwHS@W] scq|=oܷ^y U{n@Pi;DF,̕O9m"t<]BJ& ؞"!b8B3x7zܐzmJeyx&}3=2xKk$Xw]nO6g1K'&{ʖDP_d.9"BВ__ӅjŌ~<.ͤ4l4H$()!r5eȇA]˳ M|h5UgrKAr_;WY΁dY]&_Ĕ9t{rÇ;+@Fz*Ny0cRiV"Ezpeڧ F.:Pl-!iI.:,S6S [Ja۽gw15]YKhM3PvDG \~eUc_J'bJ,ѯ7ᑁWՋX¸^_?4JhxpP'4nm<ڰuԄrVn{{aJf,u"֤KB*N- A#m`IlL{|QF x6k d悡9<կ6'*Gj \1LU6FSOђ2[~26O99CVCo'jbtZLCgK]x_5T3 3x#g"[Z# gGؒzQIbW6yVLj9/:S}Ž<שd07{.I$R@ Qj.iHRPH lpK5 4@IgĆz[/ = iU}uٗDybe eݜzw Bz9Hm5tgRq.[`!U%&˙#{ NU# mI9ҿ}ܰggk1GFm4pp}rXlCXVpGZ uey[ޭTɭ6#U{,;$G|d' Kf}xU.mIw1uܐR [Ix3c gAkO0]jJ{4eo< TMZ'卛aɡJ^]n1ㅴ LuWgrբ:h>oB{֢mx(ݚ=* 1)0}WE8W6qYXϽr ԈڇN=(._RBRovyeJON587ISKwΚ?-u?[]Bz3U@|~j )SURw>xcT 4YuxCEeMN ,5@AL+K;2Xй3[é$'ރMlv)}uַˍXn@z>bB/_+,@N=(m>:pT2F=ǬWB%x^jK U?^.oƙ&6ש ;3{(THZk7MMPKNkɰg aNټ8tR 0f%xK6U+D[ܙ;NER\ [Cb^%7YStC󽻻I]yC0a]௄ǔh~+|\}M+IRc$$,.;0Ȯ/^c-Dr턌n̍㏞(\ow?vNqOǒG7Kd_S.Z]H=,ex/1ucG93!j)#3h TITʶJ74 FDO֧-> #l[@@a!T4@Z>²i.yxQ#EYek bkիlW7+ RA\I~[ Y/Ι+uS)Pڻ}KF`'n|) 8%> 2|®wUeJq/g r{!#Smzjm˽p̨Lo K< ` rHͬ+iFC"F݊ByyH˛N\U3s}L_pc k`'yQ<40^?Q!ksO{7=["N c/uM/E QOh _z(Z8EٷN&=FaA_BKТNmb7c^dm% \z+ԽY@Fx+%aRf͓#+dBy\49,8n =&612 YТCj|klF: Y͟4}ަU ?X#͛1MR-1Dh+'1[XNZsY㔇 Hd׮ F*z{pa0ԁWjZŚy^(#G%DjԩFpЛDhV[]F?Lgեo (eS]RQZd6J{8{7'^s3) TY%ʨ*SxY@g!9)Y7oK]c?C<)|xo gpYO?NuxZ㰒 & ^ AƄɚ`Rq첲@Zd #p޾07>91R =wQ ? `I7r$2OrbCWu'\?޹(a֞M`!Chpr}.Bʗ >G4dT4or^5N$($Da^{bkB<R\rww A>[>֘0תߵaq}#հ ,ex+(k1!߹JśS? ޞ|af~yX!S[{ R'҈I@$rlXaY|StIKYyޜS@twg3;0Z!XSAR~R|[H\MŌG7C6ԁy\TI!mJҰh4Dieد1'cG"[u,5Tɴĉ!׭C܈3W'Z#"r5cd5Å"s9*=O\ՅHqV.agmzRb{oW<۞qN~r%<̬^^R4T!/T%V!?eSW!4\s1- +j3AOX;5#Sߴ_MEr?;JÐZvK4譫A.VqB]~ۦC -$HrRsvOBR+ bG&o{Di`)8_//5<^qd.jLY^ mںIG`IlsȳvO|Қf4SOY."}Mۛ!p3G`*Be-2~"s8ɻ_k2RNNa"kœ ;8S0=wW$xIn\x>:]pb'6@}SF?AXlʃ]ދ= dɪ x ]30HÂYΖJ[DP@ĤE6TLFQ:b?z׫*-TKwaa`ZkoFmuc/yfm@GQQvUAq4._8J=f늌F>yny/&ꛗ!74e@ [&Cq5M>Z *>`PuL͎#>> ~g.F?1/yHN6|B tߌFn]TFnJ7۟RycoŽEUx@dhU1_E#pZ4KF_ϖC2?9ZK 1`MO(̚]5|g$A$A 2Z6wl0[݁(F㌻57=`.Y*TaxAX1P'1J:d_5f{bP1]諀RʇHW~Be'Y#9ETQ\LMmu:z+7 Jr6FW +XnM*CWFOޝQ:{X13O*U#iV oQH/}W0KQܲBtQ_ X14:GWCy_pc < eս߂ Buˊq1^KxLϐ꺜d:ik|R&7٩5*㺟*9=cOs)I,nmc \"&;ic#5QrM|&$&? W ]wur{>μnH#-˫4 z7<=],F]">aB3./RI;Uh0 9:G7VPyօY)GJ4;yEjy4 ~.NfZw鵄/J x-B/>T!]}_gI~qM@USd{z_XT]|;pٽR_q#iߎ&2+AgudvT1NV0$ pr.K2?N+xո`qޛ O5Wn'rkRyc$99]-n?'0`6#}P{9d8Gw{ɻjOPtaVYA.T }1[Ƶ1Qa,^~\'[C`J*E;0/A(3oS.+[A_47$^ՃP2ʴRێ7N>>Mm^&,k2r戃qQZ~>ґ=ϝ=adS.IBe*ѻV=v$3I:ܚ\^ROp8?g'|MXH'Yg,0Y"G60AioLOzS(_ y*EfnϜ ?[qjBy&DL4Z%Zs>iENe -i#pκ:vp}܃${+ DKtkM.LKhO[S$68g#Y\Ֆ(-Oa;0N}U3&Qtrr,?X" gY f$r]#ǎ ïpܬTgGi銥4@|:n,STɃ\ G~mȢL؅jՀDzV4nD:q  &Wz,>ii+=X]j % e]NI?#6Ӣj_,`Z"[g6X夣zm2|G>[luzI暂ya( GA8us~ÞcrM,O34$ZY ,xnN@Y)sq,emf,g1$Bl<}~"`띤41[lI4_nHOc7ɫеP:ڤ7 iqMXn&lw3| (f~^ W@ |ݠ <ӄ%vXy#9HMA(0C% ^E=v޻g>غi#:FO.h>EijQ EI9!>w">߁ oN9BcD:rGX%G&`p%HpXN<19sX-w"R(o\AY_\#8Yv[_uAAe > Z錔q}֔C1[cVz_̺b<jNbvSի)|: ՊMGe 4ꆢf[Hͷ8݉7ɛvm^O Y,%+f wqȭ7jv5 |zM1ы,~C4'ZUG˹_{Kk'q^9Uy۾fzm:iXI[jkڲ铓8>㑴 ks}KIdFUn1x4oŲ f`ڠmȱ՜ n%`Fl.TnWۂ1_:T~ .-v(pN@Y+ۏEPH'WLݷMu[6)kaU7t17/H׸q,ۇ)yE)@m}5[JM%4WY;kգ P6OmT[C*16'IJZd}7tHR *S,EtY3=֊dfOj-omRtIT9 J#nܴID&^{CL0-qh@ _"|qw7#cJpqɦF%(."8&uŪe'v:Ώ_p0w+AfK0:i!8?%87]Iͧ\x7%/JѾηX~&F0/>c<%Ж?"5Xo0a=^7Pyy dެyIDžB$zqW6%{RnUb 3$4J2Ἓ0W3:Mף_J!xz<;_!x;p1u 6BC5 X%f+r?U\PћxAI-t{I8̘\ L^dz<\PfnTG`{GXĎqe5k1EV |1z1g1m=#~9t"dx͔fQ,I" mT{a'pDSe랐_GD681Ks1Ws48 PX!e&&1(? teh. s`q=!# KDBn,jzD6Cs5}Qή6 ?c&ᐂI [!7R5(uTڜAJcPy]$ ~F{_Bv8l, M`.ibclo^>$t]L$ ` ^QWCoc"-RqMuz@AhtCpԢ[ s=:gw!jp3,\TaX[_rK^SQ9b)sc@L N)XaGN>c^[wSc,>H#R0 vJ|9s24dtBC,$NVl ]ʙ!hBخջ?ǚy~pX*?1/\lδt5B^yʹ "$tWWύ\H)1I>IܻL@ P)B7?l0u`ByXpD{͇r v/?R=޽gn(;#N&U/gN TDŠE`n*۔veYm>E#]ajtFN J[?\ FfZbIs]=-uB@o9N8ֶ?hBPәRxQQqMR%}z(1neD3.Llt+ RV_ @(nK*Et.vhw@ hݯSJ5Ԭ`;H*/0)| >m1Iw/8{HkQjst08~SS _wd 'HWݵ;1+ήLxmݹ뱒ʖ{ OM7or戍Iq@ŇsKW,\NDPt%瓤Ul[̲IZQ8P;,!_hBK ґb=EN=<Q u4B,ܶvs=(/-fؘgEڧ4L1LUf _cgŎtbE`y=R@$ּVBQ>NyhH?z~{yTaebb L{QvyY'ÂIz.~[m u%1Lܨ6<2'pۮ12?z棭qÅKMn_-hѶ'gDܖU:RZݏֈIV"/f2`ߗx'~o7'E2Pcva`Q@0-ds} :2Qma2ǽ~jV#٪?iqc'}ū_Fmg*01B8pֻ-'gfWq$F,X=9Rs[{E嬮:Z"5Jr98˸\ a 2;vw۳b;ɋbVg(kաTVg.3q)_ 9U90eWZ#ئ$[%R;s7opr=Гdhtj4O 6qU;nZ R0R$6 F<!uM*, 96MX= :hOFCҵGҡT@(ArEפ.`akϨf&9ד$S#tNR|~|K$R~"spC~x #AP19Qn h `OuU>2N K b{.81>`n=0z./Xdan!+qYߪ,+[jm } ͡DSuP( XIUID kv6 ˪c8 ~.֜DD+bNAy]٪#B! /oz`.DA|uü&ȭ]3C^`xP0/UƏI}Q"s6 W6+nI`$~ $' o$7Cx} J@-= -2hD'<0y? h5ji B&f~/t5hѐ7w z"&,q&A^ |3Ka+%ҤRWzPkڶ3h(T2@b;3}#ijUILAw>O+ B LÙYҩ3ªyaljɦ-DEzSQ"Nj{2sC1Rb'Cn0;̯A)YRX?v.,F3ëq챽4GoQ@)'Kd%M'Z*wDb.j)Lo |;#.mp)ܴ;G۱ Y4~L[yy=beV Бlebfຘ PS(O(8Ti]7%ռǞm-@x7!D Xq_+ֲ]+Rr㤽S_3"QM](s >=P0_Ac{iJ\+@p>j@5ac"<&)1I P2zsRů~_!rm͎k [61IzJGtD.9,2.C=._D -^.FSj,tw$t赸{WU_KO~MڢPiqSpqp2f߽C@8:_^ZE/tP+^ Uz{GD]ۭgfǀ!jlZ:x&tODX˱vaiNEKN0(`M q@Y[x'Vfa]IKF4AT\@6P>&;R^H`Su)WǙI gIDuw#aיXvS&IMG)ES[M>d`{)AOyȾWUgHV0c|xMudxWt22>fdکv *|ol_~pC+p*f`pD~Y8;!([+P iȋFL:NM%vr#J'C ڢo#C?o.UM Y &^=N`UrJ.-+̬Znຮ2T?% z=W:Kh^K+FN9G%BL}%'@^tP=ل25(Vl{ˉ}bzRH/7AaIHKJ}> C H#q:$YB7ƠZ{ _[1Dz`G\RhBUVT7 E (TX^z҆L@կV~gCf:VR;1!6kb[IpϕCb/'`jPMp>?ph,/4Br%2nvnfx۱?АF 04@?hp%wI mMZ8t %>aQqPeVXސ6b,IN9.Bט >lVTq腣C|6WWFݚG1pģ侻 DL~uy8jB=Z^ !(PIӆe%{ ޣ_-2 )ELY1 ./w8?zZ$spWrk]S> 8{8J.C _L:d i= c"}:Ѣu[{wx0 >E[ 2e3G֜IG|d!܆!$K[ߑOlT? pRerjHK)7b3m9wdzdE8y蒴oA#(7d=V%tmTL/Vrq"Jg6jkŽWiw* xW:w 62TͰJa/8G/0#h6Q7XoTѯ;͂o9X$gapuޫRݽhCPňCM8$T9K:1ћ4of4 |Zs߰-tƊ*)eK%Mq%DWޫ"Xv [ K=/dot *9lrX{i 2oD EvV$]M|D3])n/7r}HGDC%~eq .{EoW :դ:_ۚO?*?8{Ğ0+\RdQH 43ߨMb z\b?PوhXA9 as 섲3 .~ΓvV|_}>!u:ŊTs <}AO0~42V;,=k7Z^H`9GF"c66ɄՠD`՘d&P;%!L Zw8*u@NZ6tOp+Nǵ${BPm:U ~/Y'|= ;z|[1:8@3EBocH * u .b-%!  Xh6kRߔ64UV:*{ZޤI]GkS oj߶.Pb)l~: ͏ZA=BHI M2,\W hJ$@gX,B'Uhk:/:Qwٛԯ0gdU봡3xw#Pь^浉;70&Uz*D+f2!BMd{LYk*N譕p<NXmmfpe6mOK9K tO=7L+2)N/ $$O[Y*LY t髙Ȅ_kTr#ug? -vG,*vYgCf d%\ymC}Y~҇L-&WG@ @)\#, c1ק.n}/d+x5YrVC؟Zѕ&ʁªt MU/;C91^v[wl69 ?p!#>Wp&3quϤDV_wdӞԿ0,]ҌT<0)3?WeN?.L| Vj;K`6^2J,H~jΞ#f`!=& = _R b6sT—Km+1t`D|XiT<ґsW?ڔ8Cw7j8To6à6jy6]M$~xnX,ݍ]S)CCewg.Dc/}[D[&{K1BHCX ٰaYƴE^9>-z2HF&*[*o'^GSYŴ:+HiV%s.GS wB-=.N&*i]qKdh| :eUsMm&ab _4̿|, ݭ{i>lH~lhii&&ۻB!*?P^EQ$'VX*(xΉ#f'+$~瞑t.s l @=9g :Dd.Z}f<"-9mDO]mVQ|?_C3|2B|RaWQd񑮘?~6nt= up׌biFt?j8˭6l)ip9Υ%uӥ~jBْ#}qQV2fYFvK;Fm&xquP{_Ai PYईBO%(>! j~0=2aة*CgTؖτ6,U.֛NL/6cT bYy,G7&@:JKB@>L -NAMYt>c3{q<|gLsǢxypSl.~Cbni؁)<\m[1SgOxXN+X>.wUqߞ,("~,\`L^c-f4Ͻ AZb[XKὶON3֏٫c𱳀y<vj$>_A,c$?ypr iRl oPPPOKmw,8\aٌ"nR7GftRӆD:YL(jC|*&p`#8TE 5OkK 2(vIDdŔ<wwCZQznmXr9OqVMr<K2PL X6m M"ԤeqĖ C q?|2Q'5Z"5 \`l&(=*@~ .WV3X]/۹}&n3/ >z-?}*gDSۑDSvp#rX͊ǀc 2_?uN o+Y DM/_R(1-o>Pw 5&jl(h;E9 81Fډwvr\7;tW=#Of#r'^ei44[O]f2SRМK=EXSҺ=]]l!DO@N J4g~ta%;!aٚ". /Y _\!4OAwD'xmcpUmk7WȨmciI]sh%2;;_S/ 55 kKo4ņ缇+*Ի~ΑŒt&R%+&%i<55NŪLQKhWsqBPґԍz+1u$߷ܯ'N̅^XxZZCI˵ oTA]  \QN BQ605a9%h,C=oE@6[Uu;'>,z g .K6}Ppn=b(}_ $)EpiedD4渼I r{o{畱?_ Mdvbڸq*JИQ5Í}@e/%dHzxaYU8;kV݌7( i]#eATVF!%y<j35XA,\'0`a=VRglisE_4O({MegnԧҴ< 4'E&TȧdOӿ/#t[KG[b7sL`XW%dg.qW`ږ>޴Mn/ D찁%p[ Vop*H! ^U }D1wCh'4I$1:?7P" MwJӱć],I&AuϲEZWM_R+hwdDB9H9ab\-4Kf-ryEjBv4n*d-:ž?LZ"]5Ў];kЦKKX a 0jG~ L64t<..]N[Iwi}KMqvK^PQɯQ7ZuCV=yЗKbƿ=e"nּH$mj o~Ĕ69AΛ )hD/8 S}'_uٺ;9!ܜ$ۗ) _@AX٬8?͛ht{jW,Z ]'czV:D+1Ĝjdƹ6x~룊n EfY3HB}jdAsq"% юf9V]ҡ2 N^}8k# +M$F0NkQ-oKr ^:ڳq]4CCY(;r™J0&~=.K8u颦Q`G,\z8x6$򜷠~uU?~ 8zl^!Pb0|7g?hy]^ JK츌é߯ϲ 1лfXU_F:Mgc. [&(㲵oݺ/vQ7˓8yeɧFJ{[`X)i[1ށ.o=px/Iy0*a q)ӾM 9;=;|ZmZ[$p陀8\@KBI:t[J]Ki8tmQy.Xt_8 o$oɷh!$. 8TGF-)$T`vh'F%S{(/Vo*G*jce$H|⵿:֛s'Y(͡h䚗͒N``i֨!=GFIxϣX bC,plI`ّVbOعF5x>V¡̝t/}hw~LܖJWs3*Y7(tVd)}uN <;"QT| _R_i'g^]X7~(~E#Ss" #\Y6k-Pa=y {,p3 q3ߕ+ԏ QLN9Cfiκ[=0bn᯻JWxvGhDeRltu ^"_qSIf,TVLL OaC'1yJa/N*(4O#^ˌۈ3Y& KG=G?r=+ %yKy7C\@LZ Ad\g'?FT5Q7eeP sw_x<CTGFsH5J ׏.%S]7ҶH7ݸΗ%9"5ZUO+?M*)]5 17 ػ\?Rz[S̓d_ E`qg@+fiK5N%|qU^I)x/6U~\UFnFŲs4}{3V+I#exa@SޙQȾnC|$+A+R|: %<7bHusmktQ=9BՇ;m $;Éj5_ZUY= -ڍ$2ź! O 琼dždb_}Q Lc9DTHN]1PswVni)V8 0tLšJIz bgyd]jb~oBծ;b%c7gJ86DQ0ϰpN 8#7N㶣lQSc_34pB(1}uSx`oBZlNՄ+2f"4 p?};E'mT"n<#ؓBm> T+pv,{Ae}F@ݺo[L"D)O(vWuU,8&z {w^MׁAl^/<[ {o{pOnOPrAG䶏Vcc<zt.-LL\ \J$ @6c܀3$B,m|YfN[& *"TOs,Yxlrts#خV / ?T܇ǴW5^E6|6Y8X|UdDXqq7Ktrum^H9=@]7â⪏F(]Bڵxdˊ.`:1Imd\d,D@!e09KAL$=hv`[)v?*_ɭ轢 `[ؤKc(lݮvѾN#vwN޴p)gQ}*PFBf)qTS@nb/Kإ#*sOϋ`[9yYoq*R6޴xa6>2SP S Np9*l<ךHnSEۨcgV<6P̩9&D}lHtnD;EB1yBbI<-''bF.a2ޟ5[={otϸDe3 pDn[aY{!uUunAS࿶[Y6F%oa禈j7Z^k׫"% r?p Z;ȥd&r w QWB\4 ota4 PM|Tn4k'uE\N@58OmVsDJ}+,+1'WPu{w{Fmw*Mm%Wp 2~71wɁ0=|WG/QCT::]5uL` h ' :KVϷzȐ*MTDWиgPnjz1XX%ZLNn~k6Zjݓcy%0:B^DI] ;` O݉H-mQ@U]>gwz{:0+zjAy[E E%ݤ;őBJ4Ln(o_PqwloGOYώ$jm01zĕٜ)1g޵@V{pW˺)̅h҈9M Vo TWL# D90PER^Ω eEG1m6Lj^܋̐P#A)ȑ ^هx߃DD#XFAG }R:tΎf!ls3atu>5_nW[j@g4^x(aR:mGqoGC";B7gQƂMҀl/:$׃8,DeDB',T4plr}|H s'sEu֮kwF-do@Tg-SwTRpa`oJ9m6W7r|W,_WtM=-%Yy cCs2K\zގs$ls[("T.G=ǽ2U{X`']oCf;C@޼WIg>c詋N,Z਋T7Nfk +g3tT;PُVz".w0"*}WN6LtEt{s$; P^-u[DԸ3Er4#O2iߘ=)/prX 5Zר`P?NUCQ ( {L.Ql7{ FJD#^_{|5ny$5B M:B#*\epvi p7{嘽B˩_Qy9ɹ! M { fꃽ Pg޸5k_h'o-Q:%=Z褰Lk2^*$vݔ̦ȕ\D4aǴEkۑwjIU5DZت+1f:v^%MiEv!([|DZ r[?pJ/y1aqYd~EIf 'O)u5{g^6ŶOSl# sjVIEp]+#'/hX-vmJ =1rnba4)\٧Bg}xCCoC.[] ܝv}{]Mђqj2bIIJ^E=0< Dzq HoX[exvE{or&sNz~Xpiy˦g~ql)(Z0' Rep殘qk_r' D7 j5)!}hTU8.[;}R8ɒ~={To^aY-~=aZ1ؑ/N,¨(4I$Og?;]S(\#'L'owSM¿AT"Pߙ 2A}lf&v%$]ܲSOhި5]?[֭G .8*bƽ(3`(3O@ N+ E~namLj:p`ܾK$'~L$;D|?PNoUP>EYy7_,ϼvPr%4WB šj7: `R6sXbcr.a.Eemj:ތ[v29/]3Tw "x z ca`cJd99537Х In'-T VlU L)(yVC|2 Nc;c EVAHpHkâc )d&rS2(ǡê*58Z#)4ΰ vAiap٠veʤ"1ٷ{ S YcsotBH'荜BqkӔ$VuJv,rFՠ1{ŭ.4>V={A* QG٢Ad6|:3@vo 5awoZbM%Wo(fXZ֩Άv2P<e}+&DnPgko6M /14@[<.ۜ>ޥ)TV@w(W ~6Kh:=w/F!{f1 ee cǠ4`s tXY,RBE`[8=MJѫ6[Nxuz=V\y ۇLb:i2vJ|ੵRMl @?y `G ɧfBrau/%,:1)o*%6iha|TvBPCNEv3*#*' fD Sp}6Vǡn 2k^ǫ$G_p48ͨXLwXP0b5$T̈2IQ u _&Ohe/NX+i= }-1?+^\z`P'3\^,JQ70Ҡ.S# JYl坳dxOs'I/Fx`ݨ"p[>oYoc"Z'yy3&2EJg;!'ʐA(IO1z͔MmQCKÔ>뾉Җ@C"~V}́#j ?(xY|`) %rJ$z:=AaP/b) qG2lrEo@EҐIh,&km|#9izLg, xKo2 n(6ɄH1T:Fˠ#g߇fK:_aFfh+9IgH,/W*:Of6Q|Sk({g mGN2tF6(>W_VH6S)$Y"SIbB7qkmy/F% @ygZno/(dUT7.tuKi9\O7koO'1hkH"/?F}.Doc\%McpBJlc}h.\@<%,q@;B;w 4oHD4n$<>'>ө=NERAOҒ|$ 7}"qfV=@4IDzLoěgYjH\,>]t+0xڰF{hm.K!"P[#9=Y*ߗ {Ǔ+ٜn6tO~2}_=3\ldlҥRèD Bsj(G!uЉ,\{!#D$sQHr89w U\+enE#[`^L |+uo2Wfdžh˲dQANLbv^h>RwXAzMvIצSd5wd/9Yz9`VШ lt̘xCi~vҵ+^J*~~@[v#uʓ2#NpbC0Ӕ 6F/.\4b~"S)V_MxK' ^Tvldq-n Ns8 bh@ƈCP$"7KF uW!ЏbI{4ipȡ™n+ $;\`sX s<+R҂Y\C I@1:Gέ hBxFJ+uppvf⒙+*SǤ#qP3 Cw+lE~.\9rdQfEMەgU94-^j$Fs7?voT@o6\RD@nېlƣwMl6-'/iOB1V9ָU6mtD S~aiSr蛡Fe3 _C0LثG ILP=fp"h/ȴ.i܁ A[,Xj>88t iN8Oɸ_u:rh&2-uU "Dүu(чF,^buw&JrU,.,\>c`)sP+h &l{|<*0xT.Bf.,M;'v-ZC r|l+g +C5k1b\ext>ۡE4K }`+lΣukTok+,4)VTօNf5%U}J֑%*b & Z}}G|'{ X)VC-qeRu5T=aFX_KC>-G9{BpOv:]>0In=9P^rR@xyEp:Oe=btQ˓6Pߟ2 >XBHt3[W;yjb![x@]&;#uk㉖D5!}Ԡ0%~xXNiCuGy3+9@wpP0uL*Jܕ _Z $,mš #˴B=Vrsu>FcBuRϓIQ[=~c ) H[OHC8ӛAihWAєЎZ9΋.vw\Q$/6[( -X<`q=hA. *"~ϰ5%~hIy ]gח1\p0! >ZZ 9+W_$P+]%OK$x݄_娒MxӾH2}Uqyj2',tjw4ѼƁ Z!#YH ߢRe,fUE#&<5|aK;Q/ _/Lw?H)GxhK죚2#欤+,NQh$˒lt < 3icu;dQp"A-xa̖2Ca(]VlBcEzx|@ UW0XxUD}BωM2l<%%S!)9WÛ8!a9ePPH\gOMxº3iRk6a j ~´ /a[+˥ .R:ߌw܇!qЎ7?Wz:t8ʗh,8:{16˒"wn^ZI2ӬDtVMM1L;Xb%S8?Qwo;5u*)g.J+` iH|CE\*Yi`!,>^ӷ.cj{,w~wiC` `6=B S`hЬ6b9'IJZ$RY*廸 9H g@c6YP| YI011դk栓ݨsHv0K0X(vw`$Pީ ? u h^=v8mJݘ40xO1pkvc ">gAA+H8:)?.d3[AT@KG ꆌ \>!w\df}4D+Эj΢:SlP{x_asWI/3|ᕈsB6Yρ0b|%MRj )!zP1$sSN:fQO6|َc͏7=|}רd*:͜s( GD$HrGPAğQ6[@eB_Hi*t^*AIvNw.~3McRaxb8~nA& $M2DRexgVWԮr6v?.xbn#d/k N' gWzXHg u $p8wƞ|~;u{F^Q9YĎ l[Riw,*zL,/ AN[UmR,oɦέ^b ;J~eG6/G(Kep㦋G$7Y׉By,CW@ QƍѠH?*jA:y G׈'S9o"ͦDfGQN+nd^Caz'C<^:v !gڵ5E: 8$󢇹R흽Ņ; O@p3҄D:;z~wWZc1{m2C-Ɲ(8D"}.7 zsTϼ|ZTO.&Ƅ*\fQ$T/8Q lהI-N6O?8c8H_ '\QqT_ ,`RzqٛcE&7#l9z؃oÇ8p,qS7$kDMYxp6us#:>sTtil= *20:hʁ+k h;*4cB& {QD3xE&*Ш(!&^(XAk17e&je2])¦HX^%ܹ ^m$soe"sB5IC]]ŜKq-7ނ yxqUFi -H@p|SflQoR|cE< wA<*PK;cFCGBrz ЪYu۱ʽ_"w`2C0l/7w),}]쑯kpt-;|d{!wTb$`̄ WA-k菸Cz'<3}=>0<jZPv7 ba's[8=(҉݆qdjdbIt9}z3,:fCg'sBj RX'鬌ui =x#ߚݷ`[k:I rgY-yIN~p-3nKm ;O΢*oscKM-e1Mj 5Q.P*҈,MɭY 0=U*&ħ'7[q/G*chX=ZT.4q.)֢'{?l ǚ7jNJ/[!:o-UcpS*_,QcbQm$J%.(Gcm3d-ER؈*GgO]Blp vg+1azv]II}9Bj̲wYw!mٷ OA ~0RbLٸ1'6@E|%&CW(S4 n_3>H-aNE3R@"mx';=,*,}}OިG/RV+7MmQ f;Uݠ8TjT GG( ]LŠ>;N)u֗Q'.]/P{rءɑ*@jC95e ,dui,V:NOq"c2Hzs'](]$"Ҏ苺 JF} $&ɽ w'EeW| `:6F:YlVax*\$;IMM)WjGH}mZZ'@_Lˎs5F˪ˢQuѤ5o2k,* HqGx =Se XI,@_featb 2Q=(LCOsg'[O.dyB^7'rR}Ԝw^)se*$D9V031`VVޫЃQV-"KZɎW ,jtoy Fy#ֵzŴsG6`Im'kC&wab7vʕ!U  V*KD SڈP U7Tz=d1Rq6J ]O`jBT_'Cyiq!6@=W1loŷ0(!ҋ/[E9N (F_?P8yUGl~YI%D1i}fyG[9&SwS۬8/S: gNq*.Įg,j3z+9` `Up#5|4*z!OU BBoId{jYXzb[jGCُ7=q$4_-,HF@W҇DJ0tҴupv4i57:g}{nqr3R@3 i*%`IS1t\?!f۽ v2UOOf3_y~d#׭=MJd+7bXb#`lv|G Dr^kqWrxh"撥X /k_qZ"`EEm26eVV R,S]f9M&P!9*̔$ n$jY%˛MF5Z˔n$lNÜkGpNpd@&ijsTyLq1'wIT*D'7m-чaV,%sM}kc:#H":;S/5AB\Z2À.?帹@0q}%"UhL0iSA{6Yxxc<(tP߻{B>ŤW<0ye;x/N^ul\^E( &\dAu$4j1EWcir!ov) t:0< _뿚I#x,ΰ0EQJ0=ZlhᅠKP̼kj#)-+aW69UԻ:`-{$?{dXLD$7.rә^Rxm:NJWŰkt"GE4|n,QeVG@^Gh-L6oKST#Eߜ? Lts6XCvJs!Evzv2zxнy|xU@e7]z x'L{;X *Y)iq<_EwU"`v1AǐvDϻnP [wVjnnCf77uNڹ& "jH,(!z+9e| %S|)<7m}] g`3tAL=CA7\*jCv 3чL6-DX(7m~I_2zQ2  D+";jϘ{o#k\˜aIn(Aυy {Xg>w VCkY|C={H{+Qx"TLԶQ$̄h}\ny.kYzBsy2Qy4-Bj4W0&p5n\0[߼ U|23xa&uP MjTTticak"P}̜x+V,Ƃ\<jHg\aѠ4.k/rZ|QO5ٯa诐1ipCs48 QPlPYpJv<%yݍm[DN=Ih3\U : xAj*hq>=04p:6EH'q'% B՝[2+(?.Ηg}`+.4,Fȱ4WWnʠ)ӹjY:J$bL5DF(t>W>Ғ;Q#Ƥ@`q1oA,`  mP2# '|Ux?Gv}$g22Be&EC قqSuy!N,gj.9ǶeZ0azUyn)`? )>ۈ㤼~Sp7 f+iuW@#B"H#%_ʿڍ4S~kbI:fQV3(4T&_>^f b$ ,'_4I—P00T]XT?s4KǞ[^^"K\N5B⬙J]"H骩˔܊!#_zUt:<(yw!gj4+||#tN_^m!l/6:x.4e!y9[)4}ijXOʝ w & sM%?Jd])D- 1f1_Ԣ V0dTw54 ฀_w ^o P68d DǮ3ڂhgjfm%ibBGTV ؝E!tֶYɈ?9YM_'wt9|'AЭHGan7att{UG/lh)'=HDǖ‰)&dn43H?k,՜4*u|ƴ4~؁ ;beLnX*_rhDl99F({ZJ)+|S]4aLN"K1wʁr(Jy6ɠ i[+8M _gxD6 A 8ri4Dik ci;f24^}^X6i ˕|Kw\Χfؐ(E=8 Zƙ@_íî˕8j*,V&V\xTc|͆]}nj,sffJ[rFEpt1eH/7]d3ǜ?Dk5*EY?I!e=%61u֨zRnދuguW&=i{"|҉WJ\.ign11mWُO,uT#DZi~Xgh)Y@A˒5ۿcqSǤEqC{V]>1-P:ʫy*tPY&*,XSB(Zn fr2M 0RA OjUX5ŗq+/HWr_3Ҧ#tb@oK1*Aҁ٦JF3j=en!=w? ȹEob*R&7j+=;+AlQ? SְlƚFEM3;@#󏇑C@Ӓ0='Sm,Zcx$P2 !vjdz Jz60O&5Ը뫜kNj_ *$^sh DvuU_þ'uŔA!ǹfeE08Aʰ|%ŽBjVJQ#V OmM76Tu8K"z l596o(̱X93.@N⹣VpxpD 8,)ަC26Obc49dH3CFO0eDS?LW_ H,p(aLv+1HQYraװŐG% . ^ec;'˰Fkaaq12 _1`hD2j쵞^bkBkw-[mjԟk`\рE푆}yt` 2 1}y=س]aBse%e-e'kI`o1{PيŽә3-&_Qp |pkrnؐs7C@.= < hƔCxz&&<>bNvVZw?bLb] $9DnݡŲdG(ނew:6V:#Х%]&a[ E:B95hk,/gVfoRa*1@xsr#:NioB~n9|FZC! IRk{$!?T&`!rJ^(1G|5Ṿ7eޤ*:uf}I^J+rЗ\䁧#J6OYXw@&@?>Te#f %Eiƺj 3(RHx![!]7O `QFPH ,J,r>Z * f=qF'y,PZ7J * #r\9)п4wn 7^/0v"WclN ɎO9?D 㞋Ѯ^"5s Do5jGf&{p+8A[v\ gq9qH6$Aа7A_+ hxZ^ dzwDQЅBs6$UscRekB<(wGe4Mf4{M*FBa +wx2. JXyv6g sdrn% R-sS9CMv'peb'<1x?b}ȒQNѝQb/a<.KmurA>mhB?}u j@:Zp[P]þ{HZ'>`l>p~d_:a GDF68+ӽC[xUzQ+ZCWZ - UwX{8dw  ܂]˧%!c-{ ^4h}h{`y ,SpdJ0'Z%dObc*DgV(U[5_SeE:?8O:qsYAvE&}76|u5b"!~3{-nADWFIVMΉ"aE}o?ZXt[W-aE\9(ܙ;|5l^#TRHhG:]K =',!ql=E#̫qG7Er$'$d782%Vിu?2j#+vsǾ|gh/v 2#AgrE@?dȕ%0F, lEA)4caRq,zcyLɽ-,h{jjck~  8-٨)^b`/6J ,'pmvtO(6l@&?|uH&䈙 IS9UW)#wǔjsPKM^PlQ![KS ےY?9o$x d5)*q2xN{X3F N٘1 ? u[_\Ѐb>mw3=mE/+@Q(D%ޟBM^- NSeLWMdI/->8[D5OP>#04Df:OKI>F2-茐=kOˆoP[0;-K\/RҞ #a_l1!y > pzG~c 8l[V;'**E(f(z3GC: |y߃L>*0K*E>ekU=ɒ?m~b^`Jn\H[)i֓I-фA:G`kI1X&Jۮ{ *j݌v\}]wOsߦpY#idB[945lt:#:(Aī>o)^tLԪ[_Ȧ8Cit)xDp0 9k|/Ewi[g% 15፨=`|]JWESwL.t2୷IwҺ=p 6nVY-Պ[e|E?\KP3.0&~{5\iaX,U8`F|9=wWĜ d4?YԋSpps a]^*W.Mb)}Kitб2Q`9Wa<'8zePJ [nm7Jߗ7;0]^C?"ŎP]\}gAKL=G6%%ngqFA>W|sLk|RSZoSuKaUh/D % qEDsr)E jX!M_G)|aؐ+ R\`S.[7Tf'"Vms(;[/tw 7ٸbD}ulw*#>ێ 'K+Dk fDEļiuNWJ -9Z" 0NATQ-6 AěV^/#Ԉ+:^b{G@3SIWM=Rm/u3IDU-F ک-_\ WX3{>YdԍIӏu$)Bzx.(8XDEψi^K@(?-_DBl_ّ܍c# i)'W4CO [O/l*'_SwGyǣ88W© ,DbK9] mj-9jNkLL3%QʼnwAu 1(Қ[v!/hpļ? CMxTQW\گ˂,3ʃa(d uӵ۶w]Y7#+ D7)n0B01I媞nxa ^9l?_6 ?>kzkQ!m˛4X19mýǔ>)pXDh`{rT:SxlÁw R~HzD%1 FAl)myJDiD+߽_hو ;YZ A/X5G3'*&dcdʇeQGUrXLf몀Y\ؼDmigȮc%~ uY),H*cqpv,28W+*Fup^Q34#>;f1gSi@r=¤2 8x>,P/B$ob{K^p Kę,Z5l>XFYgg#6qAre<;;ŮgkƳssdMu㍌p~^֩WKRXp0#nelJk&(P2H˞lڱow:&^a!AmI L[DkB1 Ҙq.1Y() u M5#D\'r:V\=l^詇1gLa;RLgAWLz.)b8LP[pb,$VrMp">]~z]>]-&Wrd[)Z8SQkbAir3$Eb!U$<-{wK:sʇy23Ce^KNSn*Z Z_ٿE}KO4ns˶ 6< !kŪ$YpwM<BlB H o(,4Os؂?u3Ԝ2=|'~V;X;5 c >7mTOċX]P8l\uťPjS^JJ4-`Ca Ʈ7i2(KF3s[vkN]o(gv4ԅ#rSEo iy d/e-gi{Z'@̇Ȍ%뵜{B)Fx ?[6c_L9oZ*4 nSf-Gb+B=͋!" 9?.j~ffGu{ SD)R|5Րo~8=S W|-g4\b3+|R(`A|$<NZbm4UBHe>F36X-j]2-ryvU~&kն ;qy/JmQ0)][rX9gS2gfg2RAe_XTߑԜ}K` ]]Xu\a㪸L ?f,c)0A0< Gl7Ҹ 6''k2bd/Myza@I6޼T-HMe<)K2HUUB;7%Ͻ^ћĄZi7)QXnu3D'atL$dTKf芦wY$C@ClȠF0a2&B4>T5b.QB!]Da% ۰ H5ʄ)Z}Кj؃KN!5WHDBp!i+,.oK+&rR2OC ~u (Qo]^K>uZFF4"ԣ='F_C=NJWnH() "ø#'AKcI&(ŋགྷ_se6 KyhM[]S(tgY<+իc#ƮX^eEq+cSڷf.k~ KF qҟ{:𢽳˞X.֧I*2~d󁾭c>\+jJ(-ڊ:k%3lt̊{5DALXnz)AAAlX9ѽչ+ uȚcg;$D<-à' p"( L c!Eeͩ4<;NϧiC6U7UL$|u=3tD>1ZDΙgE > <6:nbC]5ahspDHl5碗AV 'UxLʹ[ђѦNpsvߺ&S_%r|8>Lͪw[RS2И8oI^ʫp$2!P w5>6rndXt= ^=q d9,z91x+ñЩ^*cK6 :`+bUX$neT0h2+G-U7^;´azм56&K3O|`^3#=:d̛8_X.7 zlxH~Ϲ;,ZɹixQthoG+;C %F54.'- n$R&>K6W6 TϮU4TwX|=t nݦT$Sang4ͤ0W_rf;r?&X=%i$kQ?Vo3Tk|H`͑&\!A`c7 {ϗ4@g 78٥g|t);־ssYlYېX7 *E #ټCɆrbp|dږr7um0f4GY/^sP(ggH :POP",&݃_+sR,E| jsx^K<5Rm,Dn 3+,' /}G㎪j^=ֿ=|'"qWNG-]tw5_aީ"N%^cM[J!&`0}zKD,q|Г?\ [ vؐRG 1y`j8`܌_} ܟquh1)G;7# gW3 uN@9.Șl_wgon*yUdމDBAN7|U/Àx ?עp)00Dx?#ASp #@U3D=tg_*l_Mm0L)ɉ1KHWM'i$A>J P&z1VlA藆F̌KVCg]C:}w{"dCD9gro0͉Ƹf1MZڐa)gV{-XWN9mcqF*w0xLHG% V~70Y$L;ycf e_;5Y o ؑj b*cC;vwYL<^L^00{ekFCmz<)u[-*#e0sAx4X)A^CKNn{0,f1 .BCoiK(.mCi8! EBS)l$xOu+le|>M.c]! _/qVIYPgf6tPOMe#RVTskrϚZ2)nƩf5j4L ײ^@rj&H_hXQ샘 -:cHE=h6``+Rٗnd*mPK.#2+M?3Qɲ [q $йgsO1Q̤kubiyzz1R1!&Y=^e~K^#W4hNiR ȐZq|Ȃ \UZz`O"CR7k+aP&ݴ\tb/"fM`ATS,%?y<mh\|ˎ.8ܿ/3=V랹dw=&D𵪋x=4[Đ@WE@Y([Ve_rWܨ/~VkG{W8lX.ff"2IG`GWH jJ$;$aol@ZCPCP'+lq$u4Zt4h=S&F|6n"J~a0Tz72oj"))dG`B1uh[=8̊P V?U2Wa Q!ntUꝟfœe ъˡJdyo$j 2f3ؤP,X"I$9naG!!̋q-F; ĉQ.7Mz~EԨ_zHTrO^H_+DM eрRbhS'RXŷ lw.~mW!]-d> І8{ބ):%& x%ZH:NE F /yUg&F/#I[|fj-fr*- |ȧD9чe3Xi6O*`j[t"kS"{7qݶD{4 P1`Q#ndK#!UE"8|Gk J "e6ԃQ+x̼JrJ jxH1$0c͹`ΖcSJ /:ҠTerw@vɝ.OFQ# 84]S:PgǿER:PrEbŒ.APmci8[k(RPeGCb" j̈DZw( bQMЗEmVɰܻybW|as.E|."F0cq\*.kl_0q]1]{4IfZ5\EM>uBQ6ǹK_#1lO^JGzs@V]Z A*Y>a4T*)0q騕|?Q K`8SG2I z+xasxjfӍAf/N'g# 9@#~9baoa :2g>N_%2!$pw /YdgiCflL jfn/bQ|~ryGC+ߟz&6Yj&remFˬ٭W$ûNd4V5?준*N3{zkVa]VtGT'Ӹp`-P{inr=nUC;jG;N-18nI.`m/猽aeIKqᮖS GL+@փ*?E,سCY ` 9vE3{/LSs1[;ےbz14#J/'H.1PuKJ'Fd#]EB-dQ:z{+Jg[t#_%sJ Siv{ø.>-L ˋ(?82z`yȼDpkaMYɆ[c5:T|xhڳ]:uI  8E&-[`p;y;Tvh3n`ۗ?ukc]biH&iS̞V)HC7ɀŭPfF,Gk`dKzڋZoU PMޖ C )H(L!L59ݘ4#6waԼSu卦*GHs=ݖBڮPx 'shS?ʖ?| n3˗E1ޮu(&&oԳ.zbݦ `A#jS~I 3fU6jRŰMJK߀ծ(sB)@;8Y|OӬx^En6-h8H0X|?ٓjsmn=,O4*mZ*حFJC9%d>5T/(1&EFb`t'[[@~JA(ʲ&gbY^/זȯ 1!UgsǼVSM";@C/'U%yg:kZ&]vG0BJ3"!n^x_a6x/{ZvnX' {  63 V BSg w/ᇲP\_ߨ|D Oq4ᮚV_Xm+HPV 5|)@B pʱJbFR; 9[1]?d{xu`P|a[prnhs6uߢg^v@ˤn޻텬}B1+EIw\Iy Dv)ʅ9 x@WRh\kM,ћ7zh&MڇotLEzje zRT1޼k(/M2'Y gi"BcIp P6sޢ ]'Q>4~Y΅HL+Mx bzݡٶ, m>Ĝ&ow7j.K@_<U477wRJV6ځSE2Dj^:Igc<3Tg6 ψS(56 ^ <:U0{J^eP:ⷑ̃!<3%N@9ָ_久|e {:V!vǧM&n EC5ERO"hHV&ͬOI|""nyNjoaߝ Z0%ݯv5[D?(, W N y(xca)m$+?uCǢdyپTV7*ׯ yM q}-hU㥣@w@N69+rū|iCD!ѧB2Zx%@&BgԓL뭺3Ƅu%„8UmJ-n.1fܮG1vh[~ l)Nx#=AFesR__PN')\`zw&[tSfD%@XlQV2YᥙavUF7EYppA?^)()RHjL$cZ|/6+y}Dbޚ6B_#}{uls*Z]Cvӫ^̭2Ju)2V9ԁPYrо);ZX(Ym(KC5NweSIωM:Ya[ӚEur"xa %ட.:Rz-Յ+tC osrG }߄]!RlB&+|zZ|%|Rkd(Tnshh仨{e ouhH'>`&BG~S^Mkt) aɰ2HW=TBjs#V+2Nx(S{'E%#I kieZ,Y%Ip4ʀk,Vj F-&pJ,ځ WކKYj+4R'%).y]ulT66%!PKڨRwH8ӱB[5rp̓WSUPOVý,N`xb1,;Z=|b϶5)J. nR\CG>n\4+8giR?t:O3п:  $@Zz})|k<6zyEN{7?yvG 1DiG (>OZi-`}2N;ΰr 2WBCƫr–?+LP3)2Dϑ! 3am~L@|Q&xz@wC6 m3 o .Ua7MxKhQIh2 ԪxFeNP}ۿY0kO#q? oъ'OԑfqcM4LB̜)}z~O|ӑ ^Bo:*EN'c;^/MS̏eݎyg Tf"P>PAj#XFt<>X~8%AA37 kz.pg jNT~Qja!+fH(4ƍ1Kg4z9m؍]Zg=5ī?rn~@iFww.~nytEˋ B6d|_h͋8ACBj9]#pg"[Mx/|:I\ޫb/w9s:UDZ[ڂ)}o؉Su3`.P?IїZ[t"l1 Rzsܚt-a4Z.Kte;X !*dS* W'Nn߷jꦘBXYL+HH Cmqv}.-)v6՟gڨ!h1;´ #T5ʘʴ J(A_lt4<_g΀*Ӷ{40o6nFy ~ppqNܜK';mAwQS^TJEH\mġT'^-Հ7M1VG+ka`;O϶LJ4v5`(kfb75WKjU= xA792MCE}"Dwȵ(qz. tMutr[]nr3VlF48k很øsoF`ɺwjJfigxdܜ䂐YR!@__K#4A7GOO_A5/fAS TT4~yc+^$ nC0J.rlD0Xp2)>ՙByρ8nDm^ bJk1[aȽt.X/yHc5`@8ӽ5h%b >bm( T-{qFUtS@}͂1>]O07T9轄; bYwwsW|42N$G5Iɜil CRD!D o<:Øk˥Q_@cEo.-YJF@ =`F2Gʣu5b@~7+5n[q&oW Q' Ot'n!D@H ֒} +/ozi/I:ʏͶAHbCn _UG ]Giʌt 7F,CZ~ZONo-X s(dkK 3օRL6,m9% :NQ}e:Eۓpzz:U `_8~K0f3BT]} [g \*C>z!&%q:"nzӚwdhyԻn.񅠿nAh_7-+K' UX^ 1m@TkkQ_p x#@wb)_"]wѿ'k>Hܣ8[JI!Sc5h.חtxGުMUZEnPªPd01vth-jWsSݥ&ZZFIod`v[~n4ؼOoZMb4+뢟zk.gnR7ݵ`zT^[';j^-ZZKXzg|KeڹDt3oG$ɧG|;vGF*ՌJǁ2dIsbCwk[z753`kg(1Ve.UX849!^qq:BkL;inҬj1@XB % %pr OR f;z"4_>N}#Wkd,YcЉ;ԍB9HFzRMxik7x.И_7%W)USlA6XKX*ֳ1ʡ,td-Ɗ&< L! o~zZA!&l7%HU$?Vap\9X!웅-% ύVԵEE(:le<#v@z=,q+OzdH>ynK3XYCh?C';~Jv^R۴ɽk 3 Q#NXykSHP~1y6N ۊ rn8/+=%X# @os8bD;6&9c%}U}EK/Idei.DOS陕Hu} \1cˑ{}0e+Tu ѿlе^@ݟ”?=nJD-5m'TsX=RlpJ)<*X)eaŀ̣manJIN- u>{F[h=5ST^E-)DQ PQz/M0 ZbuH_PL8/LT2OͯE 8) wz%NQW1fzehrXSJNohhkn:mbR#qHACxXɕAғf.o$syCWu%7)\5΅dVEAPG1sOs;5y LxV{ 1Y])#Qcz<2K"&H Oa)`&]o8σOэ4L1ڞv 5]ۯ"aac!5h oYm:JdZ@iv :!lM8zv$6[`NkGɖ/:=l!tYJu9byr#ka^e3 ]M J:Jt&V~TkS2Dkֵjoֿg'%E[O:'5;iۘA^I$πRA,T5Bp t"W E'qg1,hyB6iuR ] 8Zb]pke דR`U dL&?Oh&1fZ`&qJ91*6ms 0,G2R)C7exHߩ`>M,h)JBۜd/58mz-97Ʒ|vqՉ%RvN%ߕ]OCYQAWk(5y+# {ws;5ܖk :A^frGYt~bVey赾5wOtĢut瓮 Rˆ! DSK~LtJOAG=zFz!cكW_u<\=*})k Z!hλg.XiS]_H-{8u*f ܂159Fj֫ILX-yu}j)"-nF_} go6śU+^?K]+wճOijξX9MӸ "T]xP9L#Ųt,+T*TJ Un1j~wYL0Ћ3&nŭSf!,q nG`3k`euQ,~E2`nnݬV3.Z4֥`71q;QZ#K2hC}X>$"uS{,9x)]Oߘ\SJ;I@oo"&ߕ; j} D c*ޙQr~uh`̥o>7LN罔$20i]:ZawX|eKCpWoɥM2p m6/SP+ |EV3Lٕ7W`TX>.#zi,\vT|DítN=8 Nk͏vYB +[{f4R !p.ϸmۛrNuȉb#!6•BХDʬ5R͗A3V1p݈ WK073,)/5bE@< lCV"2 Cb/r(yuurc񖅃 j-iV9E]ꞒLk('j08!",gJDP/ ׄrH>%k\{>CCz1BJhA~2`TdN6b7/WHuK$ ėMǻdG& V+' xB<eC1NEMB{xL?L+;#Nka$>Lx, #|yGYfƏ'3KkI1 iv М|\s}yZy fTl2) `PEmd^Iȿ&CVi y e:ZJSdUHRkjf13q*ƈFKg僵jT#xh" qo3_%+qȲG Rn[AWDW¢頢5Zs}ԓꥬ6y==a60c`$O4t:{gUGXBR"򖩒8m[@7|'^D\Z|g ~RU.ebq)ZA7[] m`*6"2//hҽA M}wg|9t/0Ȯl$7Qr8:xE/]BDhf`΁]w&_4nq#u̧م[d;7U`&xX :_ =lV Z1nw[E>թ`]}4ns;Ml'1Sz,&x^5kɟZHa .ǣP2)؎NC >;1Y/tnFb8cCTw괩[<YSϨy@qxvl>en~`FЦ*w:ڷ&hza/w pBr*a$>iG#piQa mIs=Q.Aub:OR-&ͺ|d~F]\? X:&pssz/f,F1~n/)˦&ً#? f1ͧu.*>:v VϚ!yS( \ }-1r$Ź\:oN{XIǚJi^E1&02VfqPnv}c޸ޏ[,kvܐWP & :[\p\yB6y^g;qnɘ69:b i+9kC30OULW ~}Ĥx1l;_5iaކͳd=tN7r,ZNl1td{ Ψ \E&)7Sԣ٪F14-qzI:&ϒ8yRC9QX:%DL; )@oQecs^rg8( pFϳR6ߎhcLD}wAcl֋Tti{Z9ϓ|H[,&%8hth(x.COʶ$Z.!˶eЖN bŚ F[i1+nuy^HuO~bX`3ġEe1 -苤Ԫ<d1&ڑ*{Wp,glU]!(--to+G=wnb, .!QBL2N rjת%Gʮ}y囀0wj`G{+X%L$\NkA{z]k "QX] gEutIn7}}P/` C'MjZU*>Ԡޱz׫#/k5XL06Á &Qr9~rx3q ~~d#i"z ";&󽅋MvUu-QSl_P`"'hzIX%H&p{ߗ,`GQͪؗijPY#: >l:#9$nhJ轹O§16r[i?Y5{O4+rǗ݋"=94/=sV=uku?;@Sq"JWW֓NMǜZ`(߃7D|bTXofuTŻ`bA#G nݤ@>D"Nq*{a ӭojQ<6&x\2=6׺SlD;J[H+NmGrVzpIl8Ҕ,Tū0SC+p(p͞s;9 o1pwS>ic>3 Aq=MZ6B ^.j/3Ug$ALR4  W=vIBHZ^(ݑ^ޒ n]H/mСV$.Gs/ap*F;\IAv=kRŌB>vgdXJ~|lc,Õ rׇ}S:!ېм ,Ë r )S=k XvBb.@ 0ulG= '}>`ƽ {k6ַmIRde e*Rc7mn3@[GMSվC] (FuY4%}b-f썵lW'0e S r GA1m^z-M.̇lBdP“?Hv*닝G#JZ+ҹJ ENL1`:77/f|TwsȒ^Kɫ( o.|X%w,p1ϩL{ZDfd]x϶;bjq8~(c%OI K F` \%=A .{ fEdxu!>j-[ۡLw8Vg;cP-BR^V lѠΐT=:@|bM^Xahppl)a43x?)ݠ W!u |W)j0T VT14+TN.APKqTK1$tI9'Zw|Jߜ쩠'Q7 Lbwˏx}=TcwB֟,z+ "ZJA^ );U{D9_7g^(@Z2Y2]xnZJnKJq)|_#XjL;Jq(ښzz q+,hG+| C:Qo|Zjy7F>,خKYc+*lw]#?!6H͜Xr5sd9esa4:hLx yj7yfM`3w;a0`TA'!Y E ShWPK8:'!{9r;BCMg75Ĭuߺ:hY-23 U) _XVrelw|wnϸ Gc.2(TH,|zL޴,FKzD%S9j@E}.fhؘyEu+(Ґq`/jaaN^ 0"D5tc#-!C E%9ECGtl[#Q5:?6 P[ڕ)?zf=E@qU39SNFo|uPf=N[¿YL,:N1:$Eaҕ0hHeP*#tEz aAD|Hp(y.裓>3ے8Ymg%PTbz%x`;->Ush>f*BŜ2(nj#ji1kDJ@2S:Owrv/W5U|~L(9&PHzK7׿f;([Gtu G@rCל It)FsfPݎI3U(e  843Y?%M7H^q P/#[xCuM^v8AF M Ìib'*%vH,Ha69k"F(]LWw=ay]lcky E֟iT^p4s/-3߯I_ALfͲʗiĖa]˴%#G"<T\S|_m?T+R*fc]&G%rQmb9X?JK-b_˩kMĄlP|{,/ HuAM֞.7c!'('K=F/@*C=m"(YŲ "׺UU2cDT{B<_o敂v#9d5 ҔO'‡j:OЩ\sd[\Ϭ0\ |֗ux nlj%9U&hHZ!7_D+4`;smشfi!^R2)|, [F:6̦C5h#x?>knRa+Oy",Snk"@"uy_ē/aMfh8"*S5k)s7\rD5񙠶ۭH"ZGGNv$N W-KB4 =#;'z'%bn"]vRpaPed6`Eu2U`=޹P?QcW+%mX !VK|mjf>"6f.Vpuǫzqօ`ܩ cymҗScr_8?T}Ey[!ן7 0վ\P.k :k_ʥBzGJ c]Ggkxrp(++waXg]&kv_orV0Dr[bG= &\E Rr+)7MS?A6_ YgJ5z4b,-0ClZ[X5tmZ[5 xY F#`t8C@c"t„-V-[޿|k7h7Us5YeZCLY?-@}ڇs0Ÿ!L%&Οe%יe&H}ԬjkQhBSl_JS4Jq?XGe.^+1洏C[F ]ۺCՀ}!%"'S`W Ńg43ٴ_ y,h'Y6٤/$$/7o;M/e/Y9Ξ䆜`x@q.nS8v`=)8{)8[80Ѿ+|yيqPB18s 4Y799ƫ6?jFъ0Zm?Ajx$i1^Ry"8 *Jo_eX;O;He#kaTB 2ޏZ Xs}5]JM m7 mTA[#ܗ~IQ_{^%ۆ/*(h(JʖqX/X(WP5qW~7#4.!Y@ >V- m6#\r^GmR .SFnrnlRLHr=1Zk~gP_Y\{ǒQNwG&y2i4S/ =oBGL6@5d FvƜ=ANUk E}g/UB'F ./b&ӵ jT4Rhh[pDTLf>I֑%I9s)!a>TpmSƾcMGO_0<Ҁ)95ɜAv>0u Tb}|TKn)2*!M{r.ΧG:1r0Plsqw0$纷J:A.TݷPRSB(4++Ca, =eqYʬ ۷;?蒳^BL5K[Ϭrgߑ,ZzAL*¬{dHȆ|QUڃ"ASz D3O^Xono _V3~?cmtyTFLfpw}[I4*nVZ8vk)l !B?;W;S,&`)&bb42=wd`{);h22;=G qR10U9 W2бC: U9[Y_Pm\ _۴qM P#uC+YR MTR/t㙆٦Ia=ZǬR'1޶S<5D~<Ҍj\ ݟbl} S=q/z5b[3[P@\:00%|ޕ~gj' A~M4;\ga6+D^E(묌pz5)ol ث6yw&#]_LEh VSSsma_&Ks A r,vejʄ[uQR/B\oss ylUoݼt{4rKc\k/Y䩂k|5 c'sqD |ښ?m;Ax̽aLU\!ڸ;_yB-Y&|~Y]2oOAwl1s2uXUԾ7 :P'I5=Zݢmi0ۀaE{Hޝ[F?;"e||p:.X/ ?ț1uE\}E"8 Dl{Sz8͒srqżؐ5zzw۬BcWUTqd|k]k@,u{@7DSIx'." 5ء 2 dM$M,X Ǧ2 uI>PQԡ* y&(HW`y[j}sikDnA6V}NY^qc8͊?ajx—4[$x`ѩTm~b]E ZU u=ҀLEn$ v[6VqޟDlі,D0`̠CC5qFHY@ /2')*ya6x q/sPU/(v~onr:RJFOl+uwa?[J f\g˒ vZn/j%?>˻79rk;QD4~⒟͌syhY.쇕4>n U8x+ݍ]iW6p '+ؠuJ΂mV*\I4W™]{ÙpQp^5OU:d%Ek"<|27GMKᵗ\CFɛI`gZ1uͫ{[Lʽ/ phL§ɓacKy zl_K`,OΫG:i KF:*dV⑩:Kw¬>cI*.w /1%Oi!PX·t` 4 ~cj617z,5&t.ѹ @8Azʑ-ynov1wD_G۔axL|8x0HH3l hۏ1H^.3Եv|_d| EҸ\f #FފN V9@[1˘џ-F"- )/w B0K[JByoNKD["SLjQ*?RA1w.tv,Ȅ*y"1Ĺvؤ!'m ɕ@1&_,E>&<%_;sFyLHy'Y٥PkuM_*frג㖩WyKuGA9xdΡyJWT[Z+*@g`J]J]D<@I}ўPQv`F Ϻqrd nIqFuNb.n"ZGLghj!TFWu"@5yՊSvIpCʈYg[}az;_ >a{:B9y;J-Uϱx |Iv^p:Zr`T hPг͖n啎ҵenV!tw$XԋHt_|N/ h504<Pa# BUI xu_ l_DRLύ)* 0Ԯ&tFlz$sCM}!Sc<)HչVua&d;upgM$݂qglĒFcyп|h2Jc`%M@YCsLG8v=uJ51ʣb3:/ao`ǎ6l|-W[:7xxg:r<@@WJPܟLS?X 1E lCL #(VҴWЎ_|^K4K Ӵpx5h5 wހt6Qih7˄Pbɳ L3u pW.VCI-|_S PA[ajۤd03p yW9ˊa @"8ɝ֖H N%ߣߢ KZFhz &:f"D`7g~K %q&-no͂W_g:tXϗֳߎóuPPcōҬqxL)A ')Q1EPaJ9lJݍ"/6Mӏc_- z*BY\_w\!7hQ;Yw`b~FI ҧ'2T4&—.V(qZykf8ۮ}p`UK yfx{-_]66[rIǻEJ㷃Dr>!*XYɖ9Ҋo27t[ƥLӶk'rmaPa{usso >2&MaL)pݻH!1+d })#$C(C-,IL f$`ys3:- AST1e ە^}<Kp) 2hץNFGB!?׮Kۧ/ӌIRp:6K0MW b*ҹd6e ?۞&3坕SXd &B Q !/nWnB`0b&c']x:u]`x8,w} Y>3&RA&'e_k * >o7cQ{E$5 ] 9ʸ?Qyyf]zLȴCkUHT /Inx"/ z ^я6jqvLUْXe)\ERB(ѓĊFۼ:Ba̘H*o! l$j5ʵEuv~osUn$0?8PE3fxE6  QyχKj` $紛_[Mf&hy<bJ9~.^_+F Ib3 NC8saޜ&tM^P~[fT>uKh1d6WF.jlAC@ q jQK zw/{tHO-2H睤-<woɸf)uA݇:<Kح_&v!26P (TR#f6zqǛFq@oQX@#a.pϝG<8ގ9s:SZK$Xq?CFP%^~*z8y}o Dٺm߲W!@qj] )_I,iNXGgiÖ< Tz23vFneQMg1K-GyyPv|ȧA'mQaPյ kP W [OM$6YMZe5ck|C~9S! SQe?J?ow  S ɽ~,nU =6 `,Q׆7ȣ{x<÷Y'^HdbMSU#CV n /ڽ:a,t| (#SKX%P/{AR;"FNi+n Z U6{ő5? vul7၎=|_z%OSS lz}7X~|)gه]Szە$>}hf-H<@0hNv Ѽ/ -䄧Af$IWZ B w#cQ/AS"sο |D36jN!(Ȳ }<>2ya J_Ϲkr?H_g@lp\T7L 6[-~`&]~*:a)N~䲃M0p".K—~I~BET)4A"0u@.Ua$ߊ1la >iG!&y0= pnP%k{LL*sE~ɑ?]#=cYakQPw9Lk~ꩅΒb!pڐ[;%&!Άf%b~ 9`;uHO2!Xz}AV.X79dvfU_d25`ryɊo쪂m}Qg7 !\9YDAn?ˇ]v~*F|39؍yaUh)f%.dO~FIh1=_X@2iTN天~yh 4lՇ T[ɦB_ؗURUC_nf{=fs xctd&" ZFGgR#D՟)@Ũ\E }"mrS;b1=] VN3⇥Y@aT6q5CtF0цRjTb<_Bɰh?liۦ{=*6WaǜqÍKdawL?ۓV~ABw1 %o1+pExspIVlnP@y2UgdG7j8h+C{Y@ڞW.DsrP(zTz=ۥ{lH .qg>kwѽyׁ }S'U~ǽ;jenNLC8 lē: f h{ <ʹGL?.F1a9DJ"ao [Oֿ^V/>;-W(;pF>TN|<3D~3c@knQ$Uvh ]?ןy|`ztTn'X %xfس6tACXj8v't@r7LpDׇ$ep̬i u:{j(ah ?w{ `U] 懥 )x`XJN ۙ;3zf,(Cm`] >ri]c Ȓ t82.sMI x~!osQ1}ϑO 9qL3d6(F 4 ʋ֭ZHxq(D64~KJꑑ[$;v 壬StvlFW94'y*m]f$1qfp9✳FҐ󄭇seJ+ditW-3!.Ē:JeOH% E>hWGCL֩,h,oMŎ*gr8jZsWU*''$%-řu5MW)`ZKfGu&zM>#^ئC@cT!~ 6axeI|n:^jU>hKKZgJw"sw=/B̘sMa cEז˔vzX;b5-qN`{#EA c43 vWAhuHn͉M \uo/3]yBUv0ބ,-avˬv ΐm'_S„- Q>OL>eHf US{ \FґK9'yk5kH3 D4~Y׿,zn2IRYdWW` P?3b<Y)"(A}uo5,%gj7e%P៤DXQBzjϪ8M&[O!,Iest kU$Y׷]닃WZ"^@0MMz럥qN]଻)9EMØ}!n%.ByYrQ6vFwջ\.(*T׹a f"!~ #u8L*LCj=Z)jr &[V*9 "\w?{X#uM&\y~WJYOEi9M}ŝ;ZOn[XUlBJO#g߮^o\KiDmްZm:ϚSR4VQ{pp/}a:ꡃ$,F8QEY!%_}\3iт{" IؾjEWJt@`n0N87S/Z 1桂F-4D^=.U,,3${$ë2(˾0Pŷi?3 ?u"*&1}C:ER9 ,P)+M9f>CpVDnמhxv0K4HhHH7#w4+hpʰcc'FfV6aK5'A^JobUo]i ZO]WO;%Unj?:>wA4ǯv<1nvR/W&MV8qwp NHRvIVu[NC4g58Vz( Pka/S륹 G%a$d4`˶]J߷Nь0oc $aw/]`,ٻlM藗+WyK" 8Qm)brM<"O.:;G݌oքGo!bu8~cA s_*fm`]A1* HysG@=Fov$A۫E,5nz)='Xqr뾭W7” 8I]M?0z=y <*ܿ+%;C߽1HT]0K9eTa1)IX?Jޠ !`zBZ|>&n;f9hCTeS#x;|ط $deyA!t1Df*mE\@yc}c|Zı>07{iw1_K؃J>tT%T7F z>֞X)/,OF9V)'tjKŠOrvqrD6$6?H!k2{AfG$ܷ$/<u;v%{݇Qt`n@/3.'gTӦF +Xn EZDԎ{b|HRJ͑@Xh!@tϞg}@fF4YHבUZ▷.Vd+YX\ z]Hۙgt6Qxm10Zp.  a<:.crNaɌE- w ;][jatMb W_Ce4~ve༒P֒ 45z5Y˭pYG{oo;F%WK\ 67>CiPaC/oJrmْdtI3}S>Q{;"ORmhxoGe(9Ӱ.ʴhuKPVhf && Ӝ@Jb0##줦T:bMņ¬ρLVӤN](w(pE+x@׺'][(}EX8AO@={D s{vl¸E[9ՓҀUl [R2U&ܲ^ ]EENWВFAW-rXGK(`ܬBB$n,Z&ĿU\^B1YWM ؖ+YJszᐻ5˴dgDvao([*X\3)MH}b=*՜73TGu IVnc_FKB:&&7 녁^Pd&oi_9N![>boTBebDdBA+ Qد>mڅ*$&G ]s PW0D̃/\W~rĎ)cf߲vfẋGxЀue7 2s]ˬ%htm,pszr5dr{5 GYSˍ>v7P(]t&'`p{4AK΋u{RxQՊAmVp?,jXtXFGne$0=a*0ܷ^}}fAj t",i*nx# ,F :FXOlz]Hϖ'ݶaŸHVzȱi&,?]&hORd*t8{ғ8y_= X>1Z} /l1AtdO]:)@[ƭ9h`'4#K?flBǤ6ش]U|)խhSВEdc^ \0['zop/7b:?.܌n(&oL^/UG V2!X4I>cN BUtA:R^Ow?[f$XRщ`2F ]EPNc!OL, R^e@gTp +UZ+Y1n<[q)"(l lJbH.G=5=NI:æ͸ŝc!(yZ˷[L|M% St|'q:(Ofy1e XnJ˞ Ċ璀0MGځX|x(I~2= Ǖ bH*~/30)][-=;D|ׂnݭ3X)d ZwvٗZ{ؘuHOXChaʖSh=1}}&qk,T^ _~ ^:|68Kʬ6'*_Qᫀ:Z$sm4ttgdj*VSYBW(xӦ1oˌZCb(5XHn?OC,sh$Q헣T(JM7cza kKtnhP3 -ۓ+v@.ݥTX_ XS&r\Y1ks%OyPPBPUՋoT&$lG>R /%-}j%Tvgb~&,v&g .]ac%CҤ$YskbKVǚS’j$) ˵9QHn%(f !{WI5u rDR 8 %dׅUO %/` S~oQcyc"|2X()wx)]v FeǦ5ng 9"X4 _*)~uP,2?d"<Ip!: P{F9_Tw}ȌIpV #ꥃϧ?]!dz2,-ԗZUfc-Ԙ[t:Mjm1s_J;E֛H33`}hV{9Һ#v |hO.񃓐/"њݭIɩhl*mHzpr\]q5wl۱a R t[ijbio:BRE'J7z0*p86-k#EWI-伄F/,A椷d󝲈޿ /xkvWbr5rz^J{i@ëzyg:⣄J#G`6c/!CɗUo`NJFhM$ !g[( bqY鷲<> PgwB[>=^*[ jyf!D\C_:HNeQ@.Uؖ8]T;6Vr 9&B0ruդ  CUFCq='nmm4LlrX q@oXK X9-05h ٧?dvh痏89merIE""sm]K;i)F[6IĻt IדE} Y'$x;s-o\4φ26"Ym?=ٞ#N^{qcQ'7 ?&O= i+Z/ukX( ە1Y Fu~PdasC+-i%k{>^O:^+7u<9WZopF2F؄BsjUjSM. sY Zz:x=2d׫4=}c~qaQQϓ/ '7Cѣ]zͰBM7s4* L ,Umzs :cs/@0_qwg NPGa9-f=&_+ R,ga"5 KM>.ƒz"l @[ ԉ&ytrX +?F$A ŀgAƭ:0q c(`/k\q}vB <ϚXY9K'ڳ]:M%4Eټ+H%0iSSQQ]%n-sRgZ2z2ta@O//7)7~}VW sRxʩl¬DE ù^ǭUPvaQ!|cK}j9BVcowR*ėlD+o̪ׄ}S&Eɵ|Q[:PI nJmQ;==¹bb8RVhpP'EZuW;@itv~\A%P5,\I><_Z~GPKv,ֲ*/"3.-ٝ /N1Wȟ˺zV:lD0Ǐ f엄Wq)IF p&j8ԷyԎѕ5dY\(ЗBWC+`fŷ hԸ()üs^v<+ MΧdsJ̠})Ϝ~mlA Ү_sGIM3rpPums~hu.Ε ( ^]Ih 0n ɪ;ȔRJ/\"#OfC2Q\Ŝ:f)+$jv\5.4t]auwn>/7.z& d! :kquc]L °H^#UqܐIJٰGhTL.QpʺW;\|"xLw2MN"ޢgLL\~wc67Ve =LX=pU^lQܜ41j  ϨU04+6ԫ+(FT9'9ʰPrݜ 6ֶYa7V54nW0ۉٰBgZb‘1.ZtpĈ$L6pGoKwP(,Q\" Ǖ /lEt6GC)w:*xkTE)K0\`U鶷ԯ=me* nm%QvX.meQ%$#/JE$A{\u`9*;6KH6웽r{*U43|vэ1z")O0FN'l%gk䷜ripߗI$镓W[⎣*Qp-g[ߦ |*ń5ܲh}v{fyI\u_R"_U"-xFO}1V x}@~/g~'I#)_l!9 v0;O8m?Yo\F#ozW= #<у'Z!x8ԙ||Ia%{ʥrlg@.oăY_[ĹikfGɜ7hwRp+._2lK=ͳSvۑ Q[4 3kMq^jG TTR+UB$;%mVڔČ;UCMͱeGBESlƾ*;R1ݞિ HAig,YL$EFS%jـbco3/*B.jYvr߾joVA9fqgX{-TǸ"5 a H =DNhI{ ~01gB"1fbv ^}VXˍt;[9BOz]-(uլ {ovb#\RÚIki[Q`U HvK`ޢ?^$ h}bLYEy)G-s G3mI/vuKy)c&Gt!^Z5BU\RQfEj01#1>O\zׂ!#rt;RΈׁxE5EɉN!FaG&Ud]QI%:c~81 Ͻdњ|2o9&ENU⯌ѥZgLIԂx0ʼX:l8ŎYkH%2%\.e\qmu"δc/3d'&F}^;eO=/UC "~[sRX7 Uu_)w2qO{&vtqplRqE dPFl΁e0Lo&f%-$r ͝{ۡ|Jv6 X'^NCN. Qc탈7cT xi164KxRaz 8Jyf'KDzIfv{+̬ւXLmG5y`h(tc4tD%JhurŰcW<kq{N9 2kH郦PRHeGF~p꜉FѢ4mMx[ j"nG"$90ξZ"8-ͬilr;PX`!+ u]8&;ed޳Sё5_trTn}enMZ0WQ6૬7@ơI>Njd P^'PxҜ<swC贵\z㐖]R9JR{}U&AyЗ L"雧?ȓFdN(F j%O2/.E<=V Weٛt^bcf2>?y<)1"v6M7nC/7}W"f7C2ڎi~_[,Rzr,Ā7I/YFZq+?ml zoؑ-6)` \2H3ZIKs4ڄ-yǿI\kU  `QBgM{mD&'N뭂$uJI_ t}FSaxPs JAfýWn!n3HF*3r=ؤT iE-M)a+z)od BY]s!y g]uia;W&> {/^NWa^z&]e1,'7Ob$ؾ=Ie/jAS0MZ p$AS>D˪MͣpRHAņ[`"0az_"kJ}R`62vʭOϺdGgAVRf}9J)< @م|::d?2'a'j5wɊڧDJ;c{ njJ.|ے]O#m}%6zw*"O!2v55c>">2}^05==XoGVeLlCj,RUNJ~R?$_WMkX6t/g6$C/;u$)qz׹$OMN~!WlJĭ耞9LLT42R{'8f(S [!;]iw[2ںmLkeYAxٙD 3FSݹRqZ08PW'4ű {fHΌjڡ ;^qVoӸ'W2+B G-xY*=*YE-0 hb06]zk^32|b{[؍-!B5z۞ܭ'/q OP Z dI3WfM R=)__s_۔#yur)( Z[3Zr;Æ}~?řI­ɭ79wL?`Ipl"d&^q@3EF#ǜ5.P6l +b;|gk[s(H@t=JH'508w[eV%L ?#3te ZC&2irH>܍fRIz! ɰm_쐰 XXu rP@-9M+*0x8$#V|u ;3ŅuW})xFˎQ 3DꀌH) zYQ˴{ҕ;nULhҾ()2V""wR=;hFCCyAU{C:SްGN+IhAXZis&Ղq/Zd6,(YJ%IWR_0kIYW!A'܌` {tAY? .i_8㭝1|M-d"]3â-ʣZ(`jfqmH7֘+;??Sg9x|a)rn /wYAwXqz+X`9]tĪ󥺧.Y;q1}ўӹ"%B.T ^,,͆7S#ϖR[aѾsMslIΡzjS (Uh?鼋JfV"}%WyMQ̧G_|<2u-)&g)X+8L EZE$m܉4{'l?cV0׹/k<ʌYD?g.Jƈx3(:lRj6SODTf;N뗤z}.jhvׂE>ZP{miࡕ%H/Ê po)J1*tS[cگ\ܬp,C%^TFB>@]5ږs~4@g{Y )5ctD#P|(-А*mO O#293 [;kZH5YISًݞ|V//"kV=hzIڗ= X#=P:+U`_o&2bJN`ڜ<̂hũ"9rA /|l]%9~aր֍bϕoʁ(' PQ ?[v ͧNc q6D#'߮{a~F}h6%oG,A^h%VػkAyҤmKr$ m4 Gx݆E8|w޶[:1rJagS[a- =R"F",.llp;NW4}ܡD~0)iVʈܱRqu<-4ͮ0gCG#t ;̴C,SlwPՐoޮ{99}]H""'|y;( RaR-_l#uֈwa`XLKF#Z{ED4ށzYt*l _B?+ >x5.j8`TUٞS6ǰ%DE?AB>Ӗme ]*!'K)E{"0s 3ЌKecWeǪe3}J}\913I&5v:f; Ľ!ӯa٢T؊v}@~QflvHmb9ëy~WA}hyec!,?zDLdWZ<2-#2RQ֍CK>Z{,%= m42:%N4 +{y9 r#2ee k9B0>81+Nzk%;Qtģun/@W!*/>z"KHҔz`߫뀀di$Xj~TN:gj* >|Id+Qz:8\2E{|QYRKL-vYr !u7QshuuD*tDMi"d 4Hd)EDhk%(-nXJcx2 m%*4;'tFa8Fc&MZ USmv4< Jt賬?7,Ч!tkQؚZ5o4>nZSq~/23?w.Pj fa $Sqʕ9L58mF .T!}-'`_+,wV26BGw@=.F(h7(u ]kD[QFUx}A;rz, `\ϻ(X&G9 /q{aR7~:ew|\3oOZ 4%?"k4>v4Ыk /j.sF}GfB4ylsStNARq8s(cQ:!(!_SuθW4CؤuC}%ݤm;$\YmsY&] fT}ۥcsX%IcOv|^Xj^7tE*Ȳ~76",ӏOhh,Iat&]6WpRHKy1>?DHdwIP֩+j*l_4ȀpDYKUP&V`uebz)N4J>Q( $Mw?!UL`ܰ 0@9Yir@uSJqww=_@5W8OXRA!V@'juݞohƅ#9t؞RaJ Q0= 7iCmJ%AA=54zk‰85ocV\Z^YR4W8,!Z%MrfTh#׺%^*y띲ka%0;w[)oPlg[;%GT[ajRC8 ?x[.и@x3rxXjm?),;av[HkLSEW$}kpŝ28c/̨ rg;-5C0WM៯К$@ɋm1[I>5ZG:g1-}!%J :3XX 1|~T * t݉Ehh )YʗKַh+ ܗ&kvpAl@,qw'W;5}l&_x8|Beҏt8cM>d ޯQ)'CާP^>ʀ|jbKU\)p1GxO') EZB@4|x@J61&8MA(&8L@ |eQVL!_ <]M:+nMעS),qbAٙ_И K[ JzL(xNͿ>>7&"hɚkOFÓ浊iRXaLh"#) E9b@<{[38H73PDRXYZ3<:uT(B.U4p}tȶ@vW7EήNmK^Yq9鿉(]S" %; lѯ̬B߿1kL~RA q=2ҝ/GYM]#,Q.IJxЁ[%gS<5ŭ ]\iahOM&%*W@ c -'S9>fw2bI8ۨu@N' N$?{mA"DꤐK0dny(M4"<+9qܥYvx_x+NCPZm\K!bsk<}fnIbL6^-e_ڳq] swe*Ќp6Ŭ4YؠP hj7؞X{e 1lh%IGXtkIuNH/~GDx,6ңe{=j,MCePY΋qn:Ny}cd*zKSNvlo7is13VH("Q Lq_'lw,6GxL (}CJ&.DtA$+Pkt8 F,&K 3 \r(L6b fC(9PC92/IMwMk1m(;7!z^HQb~ofw9ܲ$r2,#y=H̭{2}g6+|K '^j3 p`rC̎Ki>ޭDZҤ GjЦ8Qͅ-^hz|#Uiܖ}\&uVS(OsS b_S"u -,P`L$1<1p` VwUf XQ{2 mT?1sX9FhJ:aS_ f`S4\~`+ȿɣ )RSrLTU.H|, w$ ?1;1sǻX8I@0y XqneF'bkLRn ӵp׺K15!8j{&꧆(B^wN{I xtu`}7l4M%>*֣ױ'W& TP:"c2 fj=UOJ̺[^_ r9,(O_ztĿ@*KC'*&g12oՂ~]=ChWNUY3r3 {%w}85XJ 6 {A @KL( l[5jtΌZHe0[ ͋;݅Yj.:`W+YTѠ/<ȄS"ia" 36?ܭl7JeZ /,tT[(Ӗq1_Ϟ \ڤY(=ް ť)I 6 N_f x\Ÿ|N#M*}*|N,5駪&{ZզGHGBP2X.94ޠؖ 2;. 'Or]Fɕ忂y ?km 2;ejvay kta˩@}Q# zzzl); *7C:'D"7BBѠ0[GĀ~QDZ7 .+z]#=b 訯Z⡮S1@F4"ãg2#oߔC\~|Yk6edXETZ8{ _]lNwV[DjdMC=$}hY yD70Wc][$tFQۛ6qFa Pg&D\OFw'l7L26d["Zh11#XaWUz ` |8Xb4dv)}S:+f>3xXA}eq?&< xttsO?*KHJ| #x JZ džG>DF'4)A&RVx%x۝+23xѳtjXJUǢhe:QĿ6Tfq #㝽EaN=/]*5{0_k¿D̅]Bwfcs3ީ("7F_.՟q[L`$"U_mcqz( 44Px˸jl_] aazgòC[Blf} 71.{gheXe_lH$dO.dD:+p2)nf+'r-VLhˈi=@% {_ gDV3v"fZkF Y[4hB+֪Ő<*"jEIߑg=؆piO=4aO-I 9S޵:8@b* zfUoDG 1>&n軄p톴ZF]%k2tHXVSόpXd%n]5ld H)V9jK2XK؝M8ݵf|. %R=BZ^Zw_EkKi>ͫB0<&7N ;IӌKE@:74H(1)qgVeI%< 7E_TdZ$^15<a[ dփfy?%ndv9"=cHvj 5?ƵxL)?k#+jgК- veg~(Ado딋xmt^dgmu"y`w[ rs!R}t&%G`!S*]E_ŀYg iȟ݃QӼ-)T&Ŀ~oMBj+'k6V{ql:)>'%WD )gO\/1G?T!0:%1P%ͺsD"wz## 7ك5X U"UT8MTm$Xx/%J85~bd3G @|-%Ltm`JdS M 1/c0]HD^*L{pWN7"\5^!%uc/P8=^ah7-pN aB])EeڳIΌoY$UA-2y/ңUz$P~mRti&"9˺Tb_A^3VzJy. sa-ΈߢsEHrg餴Jt$d͌wMȏ`,'28Ӎ:G/V;T QMcD/58.I{,?!@frl'f7Ƙ4w;YL\TXd9$ i1|y9=̧*(k&v!B+IV"?<*k~>+!I}(8:]ۼЍh"TFmS:]s{$;W@va]&w;Aiƻ{zr͘W ?m#"y oTX?<+\f.C:%QX^p5)ݬqOb*Չׁxt/ a5;'{~+\3x \MRUf;wᛑFD~z~mGOgh`jlwю/B*4Akv/?a)H DG5[QeQ>=X׆$fP$@23~@>YG\ ;$K59ũ@f:] Nrkg7`h-ٵ>xn ,헞7ݳ`=;D3nFoyC^%#|k/Q(B3NŴ)j9c/6轋I[rj x3A-d[4"L7Ȭ+kHj5VTZrg Q;fZ1nyUPN 7hԑsKz)gj+xeW{)ć::Be9=[&$|Xc$:q2*=G{b];BwHO҈GDTiQ\Pv5yQOVNeAX@ `a^ * 7 &pE䔯. k~J `z"++!KfVYղ<8FЩȢ6M^~*͹M6yH$AU[DY􌺲ú(޿ Wq] 1EA\jDX<74]v LM?@r{l}.i0_ D߆G88oRfuD-`Qzᾼ\nEA1^4I2Osm:P7B-@9bȏ<ty ]ϑύ:T.ia+@-eAu@BZVw35iq8FMOti jr0 韈ný_2,Pho>ac~31/8eh,"+E幵SzZi0.Ԥ\fޱOa'6aRF6Wy+W+C~!!@L`|\1{Bz)h 9צ*ݶLd'a^~ k'-ߕG'b0nYΥOa)=31f֨uF(P&2D)SQT׎`mEG$#'iKFLr aj|Miך# 퉴{"m@͛LqJG2 ?E '{Rপ#cz!rj>1^Fyy;[vAUg' ]7N;',5\Cf9܏5 (jC2^щ3I_r2 vՏXGʉp$<wF)A\ZIhcI!ĥUS7*H~IIχaךx1-zYˁ ϰ*17a`SI j w*J *+l!a=5<}(B'?Gɧ;p5 `m?(XBGR~7>TWVu}: 9It!cǦ[֤V 3BK/Ӕ?cҽ VR%sKB zo.9 sE 44:DMYE_Ь>vchg!m ځ#A>L]5Z(s[iSkX &K,Hjxg*y,w t9ڇth:5<يsO~uGPJ/z)RҹKepzz,wuDY}^܊EzVXDӾ3mDRm ֘aࢃدm!,ŁtI5^9IPcU 6 :Ǹ;W\q*:u6[Ek\WlaO@w"H=P ]dlA6Qv=BH/9N<@t GM66居qWWڛH_&b~ɘ[DZM EqKR}+3.9/a- NJU5i67t)_ωJ:y+:7}@s̔/HǺp xHR.f ̘Re缀Ͻ )$Kѱ$@+ݽ;%EBGvY 槚ekާK *QWg+Z#ZJDG= 45(K7>gSB2W?;̻({R'0~aF\(δr48.ذ^aj Yn IׯCfPE+~ \k,DR\t>OROS,h=p*\6|~z6~{cFyuLvbM>Y@O grYR<]lWǻwm@EՂ^ƁmPm| ρ 'cQr촉4QWt٠ƹo% {gFZd=FE󫐭Bq V7ӿ|LPt[nVdTlǀ, ѐ +qwd!+#N9(t;e;8kA1U?[Ә@ttL*X>N3Pf٢gkD#00 *N;?LtK;2vCbU9a]irQVY%'w g&_r8%LhqH™$~ h`Y †v:b҄N*ˌc0Iܪ2?,-ÞkH&׉76{\X֚Zdz&u^r 7lzKz=%)[쐶BS4 v@{~>V?ؿ~<\ H:"-. B!ßLbcPaAϑJ2za!<%#<>>v6,8@m-YTJq"ot*{yi!!ET=RhюhiH ɡluܟRGgb,oR|.EUoby@۵. «jeʺ6gŜZ`NP[Fdw./eюlU<[w9:Y/6C[LuoC`$)8MO BZ1T^ipXj?L62/n$(c>vϫ:'(Q⻙h>mNŐL4i΁B>Fbfk @Xk@g-#GKbOY6;f\|V1n虹c;v_ Wl%+.yjdZ7C{%5@WC+ >Cm!wmx> XtIvͷ Gg̷#jk7 Zǽ9(^|.a KwT^e`eP]0]4VάyB Oge ֍gFخ(CyHwg."y%h,nW`eΕ9}em } Lz6p2D(<7UqG1:|;2lԻƧ3R $>0˜˝7 P&.ͦxԀBr;xW- %Oyʆ@L u/'eP F*el„pm$ ^/٩G '$(Z"@ si*G1Y[ Hvw7c-vtPNbUǗ|IyU v"VN& HIS6^khl-qfeC7mb2b=5,׺)kβYbWkd8 */-/ l+'7Z9p?J/R>5 ZL` oxO3n  ,в#˴?+TVNcm[VjgQn&PmH7DՂV-7}\JJUPH.O^{d_Dr?YҋжY{h{[gW$h(\ Ȯtc 0NRؖBX9$bV!.Ƚ. ke|N 9զ }bkgL8=K LsqwzZٌ86~rB5{x;\*up:&Py{RPMaTODwyQǑ~]!BiL?n/;H[&P#;LH[{) 坆]eB:ǑW\ڞbHoDcݹNjϢcܓ7<мa-3" ;i1t62WaJ ǫʲ$k9jyƍkPlVB oFL\0ܺ(H&&8R(鈶8db^7D XΪ.Vמ&OҒb';:Oڋ@+w:; i}7Z&g^o \bmՃ7OyPv7P9@Bv#[ӔXʯJ{@> rysWv b1lh~68/(Ȕ$>]gEZďPnMk msgr蝑)!{=PG2!ΰ>p& m-R|Ձ 3ufʿX:uD`b>d8>%SVhN3zID^Xna54mM|RG_-)N8ͷa.lkĉfNSpb'x ˝"A_tg8rF]z|1AQ%htLO8#ʽ½z|1.ҽN7 䝋R$VmԱᤌ~Vԛs'r=_@6ͪP"D70*g2[|CP] )(_FπUORGK@ "X1i#0~"ʦE>4?j;o"N+$:t=nAXbN(\kpI滣|OBmh8ph9r_5X T?5=t#ag#~FoX>M׵jV7~W4歑$tI'PBO"v*ؐ*JÖ*#%[(HShHC"h uZD Ce[*IPxm{r4D7:;^d5aL#O6g8l ɟO5]=Ay9?0hxNՒBO՟ۭ UŪfEѴ$jrajb*bD(=DXG+ F+) hG^2BoR>ЏN}NJG~-c83B: )q7SH{*7Id}҃KlsBOnTLWͤ 6BΤ4QNM<Ö'{c{_MV44נ`HME[r!OtUfEB+&#.:?#⁁^^\wbsɥxy}=I~eHXӃ%"6Uj_`bA?L6wĖ*ebǤ16DxY-p 1De^"V̠Z5bS9PH}}x[beHSѫ&Ge6zZ5X0_/[b|4'2%OWkm)/zgK ߇pms?\}QO]׍*P/w1ÿ́2!yZiN zB6;6qdĴ(pa=uBo&^jDH2+S2oȄx%LtyhnYH╠6&?(w;s^s蒅^mNv? |LsltNu=f̬̖#m#wߍ%k_r(Du{ș$Pp{ 0еj#.7X }l> eqX$nJ3?&:Y[v>;5Rӻ]Y"dߒ ;ˠ3OS 'xr#q'*Q<F\)T0)h3"=5CK6kr#!I),s bI "8V DԢ!/-0Nn\7t PFكoϽZ~~Ѫoz T\'S2l'(Q ?*>"xD([3x|(ͰjU4D*G;^e(S S)WU<$R%=_LjrrݥeE -ezA YsGHXc.%|f! [r&6'KB<)QY0.+n=(Bd<88

47)=߅WG9<^Tof ]dzU d~_ ^Q/S)L*bJ)ы{ NF$@.I V&d=e,=o\4/|#^wVpƥi5&(\=_) x HWRmkSq_̨Rqtn 춰Ƀɑa4B=ƀ_[ہ]}Rd eDr .AH)2 y{dO֟@ģuM.;p6|\ Pq䁷1ȯzLo5kP/)P.E˱qaIRf(L'[Jތ]d^H*ZM.}닓sf.5IFѥ2tTU)v۾'O>cTy.nL(` 2޾m\ XB^3yynL$A!œ/q<"0`}Ez-rǙPۅ\x9fbkti$n^x :oy1JҢF;0OC賍SXNm#eĔ}5 r’w20I q]s"b粠; U+)GV`")؞F&Br<\Ps#b/bN&qReڎouN^x _@ )[9[+SIC 뿡?~-c&%vxQN axƐܴɘA4%]ĈVʹ徶r(,}F6BSyB!ed YK4SWS\&FgͅM955?~TY̅-+ m1'8)뵗, tbWR*8cOˢ(xw*ꯃ0҉Cb=h(S8YȨE{"DF`-qÀ&`DׄvЭ Y)`k"I=o7LqM'䨵5&TEMW>^xli2mCʹm"BY57l?a!M]$8GFr|\eֿeF߮VM@|{%]- :?Aَ3,pq*QLI]gYJQZFz$q&􂩧`uwE+^VDfn13oxCi ܾ†ۚ5L$S5N7”|YjEr~vS1SbJgEoh^ $ !s7<Q/6g Ka"a!ڌ5y;X ?9=Bo0@OT0\;:_ `k,w Qh!M$rapTHwқrMJwP ['MJo#9D\;*0wIw(t1N"{_Ob`/2a#s|?CM AZNF2B|[yVuaxi1s`eEWuۿΩkK5HJ T+:)(KȚC!P=os|k>Z NH6~B>Tu 80.Ve{; 7ޭyO6t\H[0PB N_u%~kџ4PXS]*2:(4>S3 hG q =4KrgH14Z.i1Y?Jj(.%A 9g_f: lܕH\6 &o)4:DQiqmW6 l>&s^2̚ڢBxo3^mK+cґ4}8b'ľ tş\/rDQ5LE ߇96CtVTcGwYU3u_<fߵ@Ȅ _7>oU{cCYPTx왘X=.ѓ(C~c@ [#f ~bc \-D@F'rOe=K%\s16詡9و]bGpf؅qO_ȋ6![ µe2`oHd\x 58@`C h5vل֛>p:Olјݨa2Qd&1e\esF ԥ|/0Q x5).wuR:BTZg`ڋ>v jdroi@ߓqCȱ\??OW֐⛅R_>|}i`lrֽp:RytsCzVpgZCF) 'Ӆ\;;.@E X x ۄT"s:A_~:0yNF[B+2El(եOn{c+g.da!$I cq@'0_ >NH3p"uߣX>]h9/B(̳_YQ'2|$" & C`iH\DYL}IhlvD/t9~8e0ko=G--ۭ)tN:V|! ,_D@hlT3Q4{>5y{Q]…1J-!j#`M2d;c*#pvt4ٍYQC!m ]__YsX2>zqOU #2ῈH?ӦO ((/br8 iZ2p[ylχxx0.0.0NG%Îh v =wËM~P>eaxϼS=@T_IŽ['FYX6MPS}oaCcoӆt%^wD<nx;hhu%e7bSyNwq3ӆ1*!Շnt`Cm7d \L悉Q1rğY4IG%k"ؒ;1yµs2lz>ԢԞ;*b{.I e:dC?][BpEF&7n#έKW6E(#'bHb#E#Xzv~-+U!n?ğ .6˽AI=@JZeA*co~8H]p*2 m$Σ!H>qo?j?\pIn7pC(*z9nFKb52FLV_řEڔt \G8ZX=WC|FNfɣGZSH}.ED{ѯp\Y-ɱ/|T/!/,J%Պ,U8~p7.L cŀ k<'n$r<0gc3Tz¢v2oY%ꑱI߇XMɲG2!fydEGy,\gwcaJpq&%v^;wo -b_%hO:pu1z36k`yY),܄pe">R6nt}gs`;;1QNC߄x>,5>73Y5=kgЉҒ&v@N@9գJCj^I-b*Nh< R/@v6.Y_#1}8ׇpv]I+h{2oB?Y@ʆoҒZ3%#};Z#٧*=Dx~չke34xubώJeAv H9<ᐥw5=a_e*Ś|$WF|Iq4&g? M˒XPs-(d}d{[UV0VY#cÝ*z/9uúDGSz#hF xysY{#7P8}t3Z|GU5vUcYhEyts`H9: ;,Pk$ P(]%Zy19*z:,Xv%S[6 TjMTZ9& 5RJӲHRy~*th&]8㛱Y]ʋ7>& ^%Y+6 h>q:tN/m-/O؀h\ړ>Z0\*tu߈89,Fez" :0GOnȠýT`T#nn8NV8p{uVb\:+gf t .md 0Vbd;3gk)mOԪtvjiy)41h$00~2+[>+x#?WwơK 762$: g4?4x4T>"^OoX4m# ׉BzޱHC#|/^P(,La :.ug {Y&v`0*,M UE0W b9_vkұo#cx"_t )d{2WnLmǑ_>>^oʟz2gTGN!hW tn?'oBjPM' O_h3 Bk_CŞ(Vgu>?|P}]Ֆ;ڣDL6wёӵZ;]_ ZʙYm=b~u>?9(͘ΨhN+1 Y=#66![;G1Z޿T3t!#J*̧6YoZ69U]K* F޼F,cw[8Z}r,~ggsS t+*CmH,#:Gkcz+! dGi<,_sXB/|!#[oj5ۢ_2x[Nw}cXTuIb.z''? O/&َ#.n@4Vw\T!@-h2W v!. rv|ĻpwQ{r?UDPo@[;7|HTSoҁB>a^]k7]h9m$r|\~쥮yK{FWMa P%E5&ƊOË{m,[x<41n{Gc{#|$Vt#목 xE"zkc(nRdudЅ 2Rfo2t ҉oaZ~M@W!vyϑdپgW ˤͨ 6Y[9K傽DIw_ˬTYv/k+od dq~L8EUX֢-Adԃ@{NqKa htt٤:`oZbξb?Pz@C{_y¸Cd\씍ŁS9mq;*J N.R,Hy_.IJ[f\ԙ#(T*] }Q?$dͧ A17,ax!Pk}5 x @Z\|}omx䜋$Ģ)(7#=xV휟yaIt)d`FP4ESl{M(a ;Iv&8:s[|lYuSR#!T}<'9GnJ-wZ049}*.'.x {< u\w8or(0ÞiMjO,osbJ2x!w#R!0rzMsiZ1*H_׬ SlrKf] ̦gx] W?0y,1䷹l"'M q2-X&HCh.;ՄP>(ݯSD @~'EC= Sz_KpRw0(,;)ĘmYPrWqV{P@^-A8u 3fWdcUbMo*owXߞt"A,34K AjoNB8` tfaBI_`6WߘxAv(sKY'F9}2nq~mW]AQFPo6<# [W$=$1 ,ǜV'{6.MEX=tDMYwX%:Rc&%tjLJH[,K9Z>ēTCd?acZ 31J9H ;)NVys]rx1+" .b Qqp|E֓Ymʏt.zjJBP> 4]t)muWy߰#N\w.duLnp=.^cͪS&Jy ý>B4s7mw@῵c{4TCn`VS{ྈOk)qFD+ e9S!Hu-E u}vٙ&T&J+pBT'|HLa7VxHJF(Lz0c9 gFu:ص= PeiZڹۿvkx1GJg_*kJ'!x;[K^iZBGF0űi`VW~|wXgp祀23fE\6,l\uJS+vh>~e"K#rX]oU2fuPu0$ŧe;v_L&Z'Ѫk/"F*38ҭ{N_"~(JommQ,}~4k"QD%WFGXCF1'CJS\ e-a;կq71# _`<QDu<9Ay)Âȍ$U@-Î'a&kXi(a?}XWwH"2͸lN $p ٪% 'cn)\BRI,"BO>|KveM=[5;i{7y l^驓b(^dPo: Uv"~_G>݁+/8 VSsە(iJvNDqPEրq 9!Ev g>%0[9HP iRٙrjY/ 1~|DOr:,ax.rVN/?Tϊ%O9KtWwroZcREOi<1lW':"ehu뷹]>CkRrN?9X҅M~<}hcQ2I3SVhC_eֆ7\Ȏ!>cQES,[N,BH 9;}2H[^Oa彶׀ݒ{XײÛJ*H>wbw׹J{ZWw{ɴ!@b]gX,%'moQߓmp8r*7q ƌ!#K, pA?B:(LghtU:cpJZƐQMrDzsbDD"\o43Wl;oLW;?.Ϳ%P.y[}My^t[~sdos!ky0KMOfn`CwNSN{Xz%2C4hSZҪ+r"8zسٹm tI%HK5Ʊ}{L|63Z48v8 C w1۸OJ Fͦf@̣҉v ,Se*eidJE>CNO%WC9ZDJ㘢cUME@a>@fnLb ߖ}Fg4kjfd >Vwo"i`$:jö ɜmj@H'ˬ*llj!@UN>t4 9w@ ϫJr0"Z+5 eBۧ "mM\.?xdcgExH쵔Re;ݢ[~#`1:0,L\X-0$^bhq:J'yue=\=Gy2ܠ63ˆaKK T\$r{Ijd NZ;7)lje|G&ZHQNմ.olxj?:1a @8b_g*CnV|IZ8򽺪} mg[xtx]SS*0~ZAz|T ŀ-Vp=SWp2mX( HuEPv;ߎ2li):UCc\oE*=*IXslOKM̘>AhOh8FO{q;&Ұ| .N90 w#JכK4kI@ͮ8 ,Aqo82)3bCp;\^x T> 6ฌ͸!Sdiz]>HkX'YZ9ӭ ߬F ^ (HLDE,_c/k:b \Chv}aMdexdXB-FHMm>{-)gӅᖾ3P*@+6(4-F$۟^]\6F9oa# rL`#h0fX%5~vyx[V ҖyN4pP,jeG*V8TDۘ'& TZ_԰AxAl '%zNw`2H 1t0QpA{)R\ޮ1Eŕ.IlhYt+\ۋ3$ld8Bq={1"/IJ~Ls{H7y̓|NUsF (6,=YWs}/Ȣ#?+|m0Cܱ֬&4}_! -|NR*h6̿Tob*ИgjȮl4Aag43S}< şhj8*f5;{"3z%k5E ]@z blmjfkL~P\v:k,TĩXs9XCTIُ=L GF51bI?z ۅR1CugecZZ(gܧ0JfE*11)#ȖR1TFJqv! j=at8W^DW i3h`?ҏݡl4,٬TB:7ӤZA`B X^#a3>lR@%S}]giQc/:X`SyD>)\SgI|]Xڹ Ȓ,#<li' -(3Lɽӡ#aőh`*3_- 31-$}Od,3P[s:wư]*LT|*OQ8 -U1]Zcr"]'T:tK'JEAnI"/&4YC_<7dg t+sn)\GCKo/OKIztC WYAFN_N݆40ʺVQ9E/4 '6a]]_jH 12ƹ ķ{f9@A~7o.BI?9(HcENjCawuxKoVDg<  z1T2/l(V W5i1 {V y?6z{5Ҫ2mnW6@ &)@Lˮ}KAFۅJ@N=F3qr;3}aRrvz%r* nq(O'Ε%4(.oe2" @zk>#G+o{sL~Ewfya`FYb`C4|)Mw4ILWDA`S+!t8I^G/ G+䜡8R@*S#KenH_j!%B9yvaϋ6j~H/ %y`y"ؘvFU͟@ְ\C&+Fd1UHDK_ H#AKHL7.)U Lʊt;p9#pe`-/nRJP3=- k!+\k¿8w|Zx <+lďʿɟ åZl8\>kWhQ!'pN/bÚfaWuUhG]ljcIxXIWl=HOD L`(vU`2(._I-F T1ֳU *i8lk@<{5W .(?Pb $7NJ)GmJ3Qֹa4^7qxKwР_îĆI^ۤG^p}l54'Dp lkTx"z8ق F=AzͲ Mm'ZmArkW%c婶~:twXSDK垭?"=e/_dгGeHקQ)r*dݠ6浶E<< jM;L߷b[CNs8; D1ⶠbc_E.1=Owg&d9΁pLG1дţ^"Fнs0}Ȫ{7_ d<alT*0q}&K8 R۳tb[a!3N"P@(P'1#ӁzQ|FybnR$}o'\nߘ?Vz!s,bqG%+י4NjoA%=HF1<:@ *ۆ'iLHZI\~L ا`.w˞4\z #_yYRwq_؆^9pqlw[}O1sj*B=g|WE?RsF$zw#CؙwtzRHp!=~nT5 sx(7TbWԫ(IUYr@JeZWAҌ1HD^@U}Lr,%1 KZ/*1D]Tpx^BM:Vd=c\6|&++H|k\hŸhg$Pâ&2K읰$CQ(}`I֑v?[i!{N֕";ӳl\Rt;m{cceKY_)w@QdyM!tFp$o|؄;p.燲-E9[0]UX`&j̤FmoXQ3VAXXd X9u׽_b sk75'^9lijxmCH`Bq,%O-ԭ?wnOףX{?;&{B@#Itgsv KbcDfm># h*فJjbh`yjw]x>QB ~g\KJELLƞQi29@YFhñopvG vGxKW3qI֜ %V:EȘMɎKHwk4eNUS\udJMy'R'02F6'2v. ےwOi؅+ɸ[(Iؠ0ͤuk+)JNO 9lYj}l?pRءԽ7Ɂ8]R.KŃ4_E 5QYYaGOSxU hSa3Ij&4e@r C9[ 쭊cz\=ET0"`?qыh-!d ma^;3G{mL΃A nxp5?Ɂ#=$WlLqIPaaҳ!,oҵ)Ec䆘>MPv8UM4y/4QT[eR.mu}רgBqk(}Aq;+ȵpn<-h;^bKBҕ{ڃF:ʹ[mn7\h*W2 {V ܋x˱F?:#qh|NgٚZg؉j&H@brgZEܵ $$ZݾjQ,n;@Du™gU x3bKH1bw;DwzIy43yK8?pfV??Rj+lNf9{wǓRd !F ڼg͔k/ixlEKjXZFЏ8nmɂ(!P=*%p3~/?,CKZJ{ۡFĕ~LwT\1h}œh ??!H a,߳tN{iڋna"(,Ɔj'OkSߐ`2uj=t6WK/̡?_ZsHTzy#&_6] ұ-l3]|uwNbzӂUwd4Lĕ=zܬ:6K3$cp:IK.ԑo YPGaeОE_ #h߶vɠ+і+HHӰfG^J \$'uDhJP<PʲpEs܂1,n@nl,8a]}Vvښ̑C)y:WOQcXNiD%u#N:$:ԟ/GfGTƒ&@9BFm 129Owƽi0r fUѰtx<ٹ!#˘j cYPز udUlF~jAYV2ffgZ VOcnY ^ijgHCxyt:‚ ι @רł&"x@8Pհ/лG-;^UE[$[L`D*: ;/ -Vb̩D͍$7T}sssxp@sޞ]t&P ,hv^o{|Xx!ZMŲh 9+AhfD'Po?i'3i>ъ>2!mN MK;I˺&1%_6!YIc"euf] I+˷yJp !~L#UAY=VqºFYk$U7$b$( j4F16oM'7ȇYILDFɷ*^7eۻ BR^pw&&b9?mnL#^b1TryL @`Tk{ &(\ $1<퐙;^\H$>P޵.e%iNP)%JZs=bQ2#LG= Rѫ6^RPA~SXJ&jpK-Q\Ç~gD^UB5<^\iN'EAl7M{g"= igZO*m yְ QfyvWum', n WU43k܆5.E(a{Zx/ DpV4Ee M$ rm(Vdg7{}F'&e4tv#͐۟c^077 #4!5<+r-ebixdԑZ`!˃Ԟ̥c\`7xei*,/+Iă^#y;mmllG+ !_>Ч2|+~̄&1jG Lx|%]arc<>aT79gk&7ynj߹',F4 ,Jc?昅EC+_ŝԊ3jv\<<=pi#E6rh5kl肉b+;-:Ys 6^)Wp1쩆 룳D1hZe_EBx>qɈ,xpDhgG~%p=?1Ȝ'5&:Q/iєH 5ޜ,GkZWWS$âo_B&3 EHۭ`3~bmJ6g6Nd˰,/dڴXn92u"cx$V 4b=xymC}VdTBOѾ:}Dc'VYXOwNpϗQa=L|dc e>:JÆ#2-eW]tzΑO[(d1B3CW@0 g ު3f[ 2@aV>03NC0nـ?iNC?U>[ 3uj U,J+9Md{CV6' _Ҽ=ܰ8[hi3VB3"̀?4#3믢-U3BXĔd ڶ2 sC\rꖲ 2dbo]3Ft(Xdf}9}7Ӗz +Zja 8؟5Fno%߉ƕ[!92وbjgҁ6܆[9.׆ف 0{0a~8.^r{i +OGq+UL: ,{pM|<K9ad:,AN"XpK`(8cL&ؽe:ƳΛk/K|{{ 8!~ 򄋝x) VRɈBZ2`_ws#nz}WW`v홥H$n?#·Oi@[bbGKu@"rV*:d0BNO&m\]|\};С[ϗb^5Pjo ꡊ~Ԏt#- OLdǑ3̬w̴p=I`6ӝ_eJ$.\N ]S]Ϧ̂ζ,l- p҆Q4ʽ!qhraR 9 Iq~xwd2۷R+8ιC(G#[ Sh_*?D6B{,ǃy(I<86̀נ5Ej?R)xS·Lw;"5Q=u{h|)]*v$yo@EЅ#N2q[j]Tf3:64əV{Q@^ROZoSA]D|]al<'7׍JlZy+t9s~ pmnG.H{K(JTȾ:ֺz-?y^?IB1u޹eJ G37RnxwݺT>>q 7Tt]Q+CNSD:8?튥i13M 06~\\tG.p3TP#u(9_鲄T|g+1V^Eꝺ?p׊}xː[z0.|Jm7>6)w~;)/!9c y|n&l2cW_v7ylw?݄<ҧWۻ5f6< IBV5y>ˢ5Uf0\DϦy"Zj oU^~y )xSY>FkiƑ~/IPx@CJD_2O V 1HM _E75զ]ZF^(@Uu#iϷR;2\{[-sE Fo<6r%K[^fLlWֺn@\b2>{Uw]WD?V# NAhDJA/Gw~a*+( BoSvo%Jؾ,O~U0u\APYT9{Z;`v&ek&U aML#KHP W C;cZȽow,E(Kq>ΧQnlZ~m0qncL->ţ,KmSqfS?;`3 Bx|s5 ?BTLzqϝhi\Mwc . G'>lE)dk=͌jvqo^,y*BHqP5W]_9*]9Xh]Vщuf4\&0nh5 d 3Ȧqcbs̽)ʬ;?fFO)RAC$OoP *Bo%059d;4я2ӄxVAEٖ;i]A4ޛUfAaź4dU$1'V}gޯlmSIφn2>LCEAhkFIThZj2g*jWUNUûQPkږ\:6ۃW. aÊnB9wxИ9T֮?pAf>U&bQ/ȿ9$]:S1QŊ~HVԦ.j~ֺduEZMuPռ2CқrSXs89beMK-p-gD-WD\*w[ey:,g, pROd>B^F0QLK3ٚT|>ʪj+? nuG?Un3?I s`N 559(r}Ÿߪ3 B8 0veB da"Ȅp { cuyw(؎weۇw{{M( ? r1D#UF$do, l|=ĩ,e6Q^X+h+*/EľX9LR2:#f~6Fm pe).)sC!浥m某$hheXiY%=$uנЂ -LuaG Ոr+,F4?x J`9le(|VY\ 95%vkY+bc`(Iokgo;Q1d;GtR*ܒOQkX[KLq7tz9.i&F a~gh9VoX0~{Tl+0Bd8WU2_Rή ";?BKwJT|h!a,L6ohiAo,&(uv/oHT8pmbSO$z;ZCU!JT+CL4Wv j7B9dEt⡤fMi8e%Ӎx-`w_E䅞,k]j Z߁U:-ZaJLC{- zq0J7ѵ oL6WJ#3J\o=G$5+3$XL nՇ-Vw C^/x|,R }-0-8i?. K6 ѹ}F8Ay:{w@<5l`NS mH[+"Lx1p Iob?&bS&H]*e63N*+ W_%ªIjH4H[$zm)VZCiyG:=+85?pe[SÍF~X LҜ1h3PzzTtȏ%b4 Û-{F nQ[r`#h-{=2ؑW^`.+Ma񒂍AސS$ Ѧ,=ƠCSR&ZZ݌%)4vRւ۽7U[ȫ%fYSPùN,~a B˂Mǁ|m#|-d6t|۲vIʤx*Ü^[ƭ}hW"zcoyx}dՖa얺灺T5Vp7ׄ3,)|p8Vf+ ^2xf$uOPB CSxh+z$mQmZNemi)rs$ $cs~ګNf)jw}&ū /رw)OH6MKvbsk.hɍװTfۚUPtCҪ)"J/!]Sef#~~fUCɣ[Btg+( AcT]H-X@jTTS|<ɲ0X0}Aika/e2 p`MJF7m .߯ %-Ԓq"StŪ9꽸MO6ŨY6+~ 3;ӓ(m NgްB!#/_fBƤj_!oX}&"H)n4O@IL"r#Dír\, M v_, Dm}LԤS(,Q|2jȪxӳ^cMO JR&䁊~77l-Ph.tXj >vXF-ڟ< 6I}P:C8mR H6ZYg;/R60!(yBD&̨4b1R,*LZ@ Y#(FQaUshb^g4Zߙ3*TwvmPe#[$4màӈ$L `zlFvp0mYCy}/`S&x ׅi -o@ރpA{1o|)XdKX56}M/I0tIh|bZ&eYU =SD4G^9VpJkw@O`͠EYS| GbRtm4P^N6PH4h7w}_d丰h->Kb3gɨm87ppz]MB`x⚈},}EFQBF)Ќe6A[ft"{k2 e.poE-;9W30ljrHPFPv̧N f}GWJ'ȭ/'ɹ 8*S=yJ 6Ջ8+mdx |5*4f݊QWjZj}= [O8 I4v-}h*NBK]EcEbO^'=cs j3mhbS)KH?:@O0Y-b'!&QZ(']YJ#E!KWI.r `~~"]™[=&&\"LӅJ1/xyɐ4/l5ڼ&0h$D K,z(|Q6;d)O|d':K!ٶob817asjie$YRMz~=и+.p4O1e2{Dr F|eDg量!JWؤ^-( u͘**61]^[s)+\ .hc,kFb4SC:Tr5Isc> \ hz^Vj rUr^73l+gKww1f,:&G6ѩ%+)~QRMe,xOM cG<ZZXZ 1$m Y9.L@&wy_#x0D%m04>h&\,&afDK|Mkt.ȴ}\6RT")ȃrƮD;v}d4Z.&+Tb;*(,QptpddJa̐Glkdx蛌K\^(Dsڡ25sZ]UZxW:ʛg{+8w܍&)IsVGLEP.!޺>WXmRPug]h&Z$plZ>>Øqa¶:WX0I> 1 Л1CvODӺ8x*/hĩT"1D OՁg6UɎš藻uw#.bg:`TW 21arz˄BUpzXuBz ")B> , m8Izrֻ+kq<8E># @T9thn3e}t }{U۟;ulCq%Kn~uAc1L5FXR>  aGrzpt]hL9CD< @G]ޟ k/ب{h ~֋Ia#89sƲcS7Τ*qVx~?Qi4&w\y|]YEuyh<0*B=i?1*MoZ#ӑdE8ro>P5e(Od#Űw9=QcQ;:Ea&csЌ(Ę2im#OSe|-Ã::5ڌMr,|GE%8y1Ki%U:3w+$F "RXjj2ONK5q9.רPN+5A> RH*<؆ ^΀V;@gxl_6oy1=R 5w-pE|B46t,[i:fd_M4ޒ\փ9 qEAU!ǧL#R<&=b֗2]̧Ӻq9]@ LxZOĭuPuLcn2几W 6j萚|d25p)qHh=8aݒw۴Usk![_mҘt%h)Ŵ& +}L:-H?ua*co5qjX\-JcTJm f3"&WPS,\xCZ)'Q`FTx5?0Mfg 60mY"MxG/?ղd*kR!=b|t&6xt˜k+HB!-_h_ŀZUh>{EG ^\as5Oa:Lѯ[_[?k!$N@:{J?"fkf7ɗQɔgN2Ѥ#R-ƞ3\yX&2'1l#Ay-_amªN163y_{aS/o`۔- |nfD]\*M\-_%@߉8[Z ţ{,3_CQaD>>ge0[CzJPϣ.}*Z &xDjG6/!e_s uٯsLez7)+@N90.3 Gɂ%UXzz#Gc"I$eo3ys2i֙{7OhFH`W=&RFWᝲs 0%K!! ̡,ԫOӥn+^bƖU(S`~X*7{-YJvjffLnyӍ杳>G=Mp>z9֫/٦5 il ?#|@"6z56^/uSKEQoܡ,!q!|"?[$Vy@lO 'N\ebz_Lj1;?(dܜV 3L B @4hf=+3}q\?3 t&Rδ}: Yiw7a6[Jjt˥agBY ԧP4C ·y` ]rQ`qG6ZF'g]%zf gS9T ͻ|DE7@ptkSL..QzM̵ blTyԓyY.zCX.Hh nS;.j[^_ܛnn`|%$fe_C3;;8QyB˼B( S {D חl%vK #fjiD%I"ED !ioӎ:a3G(_*,RK%"A?MI1}${µxe4_uU9A z,:CP{b7)\еVQˌ N˺g{[}O($;#,s̕MG}LÍ<;'v,k*h]ny8I @p);s/Bt.V "Vf^vY^pGPMmSnw+eJ2X?uK9BW  EZh̽&5=!ԑq\0\PW*~REgW{G 'xn>/ū"A4FUcMFmeI\R9l?=8ZB*\Onvݯ_3T.: -,&mh%Gϋwf-uKEenQƛON{ z\t/I4弒'y[]Ipֿ *6M 3ޮ[qWh6tkgp~ŲsKD(}l pe1yB>(o>P߱Sњbasy3>1f:v[B W .yї2W;V[34"ڬW*2Nͪ`PC>v g@i7jO6.+"CIpT1&ٰ+D+exMܝėe(ҏGAQ1WQNvɶdpFKP%e0K{GZF]>wgjjY|έo/U5&_u-v%8m=yXD2Vg201y {"G:Y&³_@4 @>qg쌨H]S92RqGFnL}$YiNd`T+?.,11gLuz Rm?ءCwfC~@begMbIku6pvIO|f%K+T\{}X vA{JKgܵϵ`{ĶYNU_ƫp:~ |%),}P1٬+joǡR,M]H Ek9-Ԭ[m| n$cn`n$htYiڠJ(6BMx(֍b& 6>W6Y\#)}  -5S D4_V_! lWki;:gBĀ&Q<"͡ $F.<{IEsJkh^]Aeo3r= HfyB2mbfTgDjQ@Yc2 ;9VnA%)J&$Dl&q upqW~**vr#SgudpΘR~sv;M(dZ-;3.yQ^!u齃j6HbBM2vj?|+QxSIƓp*Ti 3TNنWɎ&{ / =ўd(quzb:!-#  bF}#6<@LڋPuzӛuQ:) ^v cX eQZ︽e=E8sEf|M2 -yQ2oC?VKjGGDRԧ;kE@*7}h%rǂ_jn1J_BhyLG}rhM+.cWu05ㅺ9Px rYX"PJx|wb FwnɼqRvj@>l%e 2AT4fn;c@.]''TVb6ZS7i ݭ_*C:oY>~O OW#k땲عM/!Ic\[[jBL5ӒLҋ&G`iMVמc JfXY SNuOi-Dx^ |ls^tϔv>N%mfQ#6"G#QG8zt[CD@fBճB Һ:ӔpKKz: (Jk҄@TK+UaAH>MKbR(ʕGY HOT*`㠪jVlf*6m~C;^3 k!0Om>* <>4wAwp0ݮ>5{|so]tճ2\ko c90>c|(9=PE?0r~KjR6y<3gП@/&xcoz!"57Dzϕ"3QO~4:f /04&&O0rO=:>v+:j;&yw$e?ڬQQ/n64t^y-~6~MȫZ_)EC[rY{o8 /Y6L![뙒x (%4ZvFGn ю"j40Uφ>JȽoaXG[h,m|l+j45Vָf`VpN;\zDID# ؔeff 0X&u uI&N.w,9inv(<.kC H϶?"_TapRY!iRrT|]| T pl1KF`xu&SuDvD?^|KƩ ߸6SbbCAXϗaH*MEkBs k5 Txr<NDd)h$@v)NԬ6$8IyX+:o18Jޕ"2z*xcuZ}YV(A ]BYmC_ͪA4vN0;"mVvyS;zʒ_,8lt9.ƍ67sɉ }dG^dWS4YhV 5¾<0+h@#FiO9]8#Jb[{mˡs(lW^OaY{rbЋ}Rs3s눋z R _VbN ,ţ֪%RW@ ι~E'nXjl76ʐNu,h O*A,Fޔ,i~<}|O(44.j6CPk*xw뒜Tm̖`a˾* .OA;M0}>L~$]/~TLda)QroCz(plWEWR5sCf KɸY`" gRZB(NF^# *t}k dJN8Ӝ'#y&q1[ȸ]^,xaG%'H"]U ,6o{5}َj?J)Dz gJe!qS `8(QKW\Fx}CAo%ƒ\6" _2·)n ښ#1!5+ʙ)&^GNS&RTJsU/gv[24L \r Ua;}XxeYI,7-Iw֥%w:ZhY L +^ӡH8J+ޘɕxX(y^ŝ4j3;utנ"e%TZv` uܐτ(bv1eOC)+F[B|r;[tDMҵ4zX|EQ&q8Ljf{bY%EVI;kqhP 1ئ?YQ*b|ZRاJ~{:`Sg?@Q[:ޕp=H,*NlԭGX p6SPM+Pc%c`2٣P!O5sƉEwLzDq%[Yb6³fr׭WSۑi]0x7ZY?2P񉄲!<^NKEX3ɰqr;b^J_Uo`pgO>` }иv@w\t1vDK3CڦaNb=%/a-EK3-<(VtY : Ytm ^eC}qхj;tr]oMa %${,j;5\tnʤToJ@ݽeO?i6hoDm鸾!U'B;ELsxٟa8Y$Ϫn!^Ts/8xC3.?AS~WS*d+BޛԒ 1|EqW 1`+N\7z![)k@C[G FF&T5+1z|g4$u[ԆMMcc=0DՋu3B5Z<3P[;Yl5kI>+ 0L"&0 ]^ u%\gg:hzx,3A?4ap}[7F hoX(.BOB=zC߃];eLYYcW$zrJH̘"Qn)<ڗYlXz?2j{z³9+ZF@b.Z(c'w-S] PŚ'E<$ QUPq 3f6K^n rFz\gwF*NMɅ{uұsaAfE~7-o<(Ky0 TQuw8X0j9uV6 Iך¬ѝhY3îg:'_. 1-9iS@y؝b6Vt٭*}BHe~+$v+xSS gg<u3q-E5;jc& _bm;[0٫?#/fZ1_/K m=~L'wy SCJ7hi}h_lj$qWPƢb<Л+"˰ ]aX5E'bFP'a"Kd{S7az9l,wi3O=^͆go{arl)o(Z0/~X^Vw%IGLufkvn~%3)8s Jm}Y6OB1_ĹnYDWB|BKUu ڹW訷(}_bt_)enmxD}izL~vUwjY1Qm;ea%bo ,c0GB*!FO^zP1ZDr¥< iNWS&:Z;N_ɆOʻJGo5qNA=8*h\ ,})j._4 1"_Hʥm^zTזtSȈXbpV'sPD,6: ТE0L,Y)me [6`j;¹MUjF>QTșJI&W@>V20b\rAՔ喊0)lQ jݤ$1C0k  Y-̒\AJjG ^x}0b8𴦂l r57U.͏370*֚$d7XMW2w`@TaIA !"۾Dh#bߍ1 "d5 rP@?d 0 fʋRs#+j'78˧(?N@ `\.Gp:!sPMdpbavCY:R|H(D}t)϶?yVbg 'Ԉrλo%n{iD=7u Y FqT(1\?VU&7]sz t nSJNkڊ˿2TɯlȑZL>NOJp]S!=i)" Ȇ}yO]YĜۨ#7&x65- [֏0re00URMb'ӭjo͔gf"EbԄޡdH>c:9=ꄲZI"x&YQN *>j# Pzv5|ZKvYZUݍIbK>HSբ nR_iDUωU鈠CBf 2hjMQpD:S6Zr@OJ_"6*xN3XGDBx{o?}:E,) 1=񱥒Hv+[%}?w9zht? w!þ5/)zxXo_^bzýә0?V ӤNBu|r kd4 dAhvƳ^0 /q5X3n r6ǕIHW[eV_Ss|"_1Hq[v]5 <ҧ.܏gGS8AվțOl:Z$p.ջxկ`6m"<Ǜ-!mᴼQ>MRX nG tc#WȮ,0IEr$&`Xj -v5A)b<$63Ny'a?enW9PAاf@Ӿcr'w1`qj[TE=٘"E0}k'yVy"ղVUƥw(+d0ƹH2Pj載ZޓCY!'x a3܍=O+n̑Gl5W,&FuyuXheB+ 3~ )kٜE4v>S&יh_0)Ɣy wH xnJZ5Hj58, }q/)qlly6%~2ⴓhF%շ{P8nҵjbDi 9۽htTskdw8\BD C=3N.GV_tҜ@e> C>K+A 1E>kIN/ؿGA9:C8U3˸iYLcRN< wqyYgkt 1^ܨ~_}?əÊ 7@YǤ*BPXb U26!Fn5A)|0r#&!*Rvvl|,\v]Ốg Zh%A XΕbVz<C5hrJbFz3ڌԽbNf@R'ѥDdJҍf* 08uPCqGMpНpEa|Y vT%Ț .a*,v"=ӸBlFșY^KnP]j1$NCi"jIRUR*c%{EO^QPrQX /$0 sEܡg ǫ\LO, \3qj\lV =;7l 1q&Q'4y}g gJuw8f2:ɠ*#0a|5RV.S/$VؖUeJ +ɆCCi1ڿ4nPc'C Z&@>%Ꭼ~Ħ]ԕ5/ԗW4jRU6`Q1D4yskWPl~09O.NԶQYYk;olY#(a}K]DK՘c!8kA 8R^?gH$҂)[(&O F7<Nm k.z[p|:_Cb_fZ`7X;kM|KC9r2(3HySiNy!5߇`WGk|/a.ݽا l EMPurniQkՋYo|kE'fwQE%w1>Ê=>E]#RzxAJ-^fm{}V,&fa>]KcUYx9,#>T7n#}ي+/[ä&5lC&sKY|@џTWg.lB !3>T .څK?Ehwڑzq¦FQv6v! %?Q+$Be3^q̀fͅ4S}`+&N;zՇ홯[W/R\.qd^d:@$cR2m a= MaNϢalE_2*PMލ6!8;l Srnzd Ӛ;FzA[OZC{ԭ$&wvU/rx>2 iR6x#`"?|];P}pRE?]y`vzZ)1c -$ H RXdEtAs1GlKaGrŠyG>8uPC 3~D*[t.&fk(f+WO5?<8%~q|M>w~Z `aY T茋<>,&\ n@; \>IM`xz߅9F,Jq$c3p<_0-Z1t-'Mrզ&> :UF,g6R[k%!_>u ˽Vc9zxIb!>NCLGBGh#uq;Hy]@: v ;%TNJ XR//ゐoGl5|FZ_ED䥾˫+JJO2 a Sl9Z?ԍqw~(CwD(4xd#RLj0·Q˵?]$`a;pmUkB3_ 5@LEG9Vm\جwiZF~)2-hjH ØU>ʔLV;h;ք*G;/0@ަĖ&uCO5{87֐Jf)cCy?dnVSU'pW-ɇ9X~E7{V݅ 1r*`9ݱ7Ti'Aii̩*sLYYYzvae.SrlCXɝc p>"\L_ϵ7%x=8Mf""z dKVnFK8c#MsHL^l FG;jtpK{.X@ $oV[ohHv8J혻`^u9g+^܄3tzճ'\j;'RYܹH>L}k՗{qY1C;LJrܹNZOv|C<'4 غgNݣ[P1 *MBIi)c-V))P2筢"lHfac-@FQ,?QuݶE,q{3fa;<N3n2&XZy R*2:ˮL2f,_,i3&X#Aw6% \b`R"\_WG827nai.dI,⣾&V6QGico}vJq{f < Sso-H(ŷ|&6zw(J;$*qvPZ6T8zBm}]Ml JW e;ġPjSnsۧq>9 QRpPW^HC SIPSw#萭kŷF9_\o"Z1Se8~Fҟmሌ½'`~9P(>+ LeKί 'ȺM0q aU&nRC*BmR u^kځ=5AKe9R|-% "u'{Hˍ$^+ FCћԐ.+n` Nr*|%l2 o/̚7R!q CPœK> t❈]P~Z ur0ϱ)ly%"/6Sx5vJM.KIP&ܺ To*H+>tF*4y=Lzl\$zA!K"DFFæ],s(8%%B\&gv>#32cZ`ЪA\:s v̜Jf* |<\PGR$֋1Ȁ~ y iszUM\.r|I3ģGuk l_A{n4Ѭ8h5_rǬԈ sJΎ9%?6yx Ѝ`4_+9mbZԋOZ&8<v%?W_R(|i/m D j¦+D`!¢&|(rG;3@ > DI=stܠ9a|*2C*@(f8:6q$ Bv#+Oëv gA1pip3҅{ D 8A(J >>{.mBڸg#Rۖ%q-r!Qiئ[R%D yWn7.U{tEr!!bXVuh_xPxzr/#꫕1}@w RATrtGu81P홺7Sb'*3UJeY \t,_?]䩳VQwΎŞ Ȭs/PX!ΡgKzep ڭգ+\CI!wU>QW#x "$imlqN5pY .4ֲұh#s6 yy``̡7;OigF\JN+,69(8[uLEk>7sḘy@6p.ɦW ]] ԰5qO &uH3W1 rY{ sMͫqZlg#'%?Ʉi5qQV ~%٬'Pģ+q5匍EmK,%C5)ZJ`wP1Rn(M/BQLҍpRZfEL])?wZrtPwxR͔5&R z[N=l( 5#Dzlh2o#Jo 1gb+1dᾣNk[.3v씍nZ:YEfJP'`lKRٍ@x𚊍biPy0m) *iRvZ/'+0  XwAC9+tvc3F庬_2 c! ƍq@W?_O9O[~1X̤U3i14Lݢ|\h[z4*n[D5 Ւ#`y~AD'klkL 0%fJe5zF:ٞ=)vyohQVfd57ʠz!tef[oSۖMƒw \ e^zGS5Yw5A[60oog:=QzBUS"u}ԤOsSm`=r]C= 4I9J6;YN ]Sx074Ni;`MDz2M^+'r tdDD'[C|DSpeΑ@|b&Qz"ͫwf.:(gN'E:0۔?ES :!{X3'? 'S+39BvM>5˝9ruUwF$M E cWqIiym5Lz&C(,PԱ]]Пlzh`j1/dq nVKa"qz|{ajH;3/qzdBtckawʐgC0AhݟWY&r-q/{ڟ~`40E2S!έcJJ\ݼE:}p%[(2C$ R76PG#14lтI(šj5pi]xVtm֒/!B&8PRB=͹z&\3i5{vV臦-yߩk; A{h[X;4&û /J5yʸkoWAer3JGi ~)$8>n㧡RIdpA@n*L\./5vth8zy~ƒd yC !۞=;ʄiDR0Vs񎪠%g@6hYRsum}k 8X"|*VوϷkVN$Ľ0zEK)>2b΅ q٣6hSttÇ%Ϟ'VZ;M]yL2#3crvTLF@[[C00ӢPzOYRsܳ gٻ`1 `T6ڣ 0_xrӸlޠW 'ز@3ȓa}$5:Hqm#̍+[i8`[0/D(+! vb< VZ EXw]ϫh]yZv EhCedr[wuMi-TOV=Wsf-%0D_%81嬄(=/AOQԻsبۄx!V{1"D[SAOB0$ .*-?,*s&r9^|BpK^[?)d@ï[%zՊn3 $(eۻ&\D)u0}Վ@dn;Megx/jSʐ@ %HS,LҢp3-`~5s:^IXl=D9 B9PꄌD.ΠHOLX{&%}1ύ3cRAdQC: \Hh=&|,`}L+z&L J]]0bZRPI0HL`p{r˄ojzӬǞ'`Ro8I%TvVez=twKS!Bv;1PA9ꇃ7Wct>m֌Zi^H`PU~i<NkH1r>)a{m}$PU$*o>f AȈYDa p.P6R:ayYUPꍼ+7B:.Dz g~xO4=1i:\/MO#sɻg[0b*XWS!CBuFH`Kgzɹ]Y|`lurCSg7}U+B8\e8mꠟFD 6GebH ra1KtQ9nQVy@SKr$D_0gpԲ2l9?9gpiֆL ٵ_ٙmM( i봑b[:Ya`jŏ -9s@@Ӣw?0֨S1vk]10x[;sV41sSB5cX4J\'1~@m.RA+5,6SIrq\c}zpPr623~)~UE tƨ .e!ST6M)%v<6n(tYsumn|IM5޲3J~R-. Wƅlt<m{C$;L@?輭Wے`vj N(4zdM#$/#SE խ Pυ>LΕg;Y;c%cL0fB!SЊ8j{}NwLy7̭J(Er0m9WO3GΊAjZYUTG2X=f]cxUt2~~I)L^>J5{-:g =^TDžxb?g(X/OmIG "u >a4 R6 `]R.(ݬ"kZeW[_엄U ]%HY{ fo_w`-w YBi|S)H'{N4 "H.@9xfL.4h)--%u CXF4=u`̯U̮ǘ'dDqm(=hMZya͝ś6SU.zO0r& #c9BI]^޽vB(E6SxO|Jg)l[ʠg,43ґMauax}<@rK(ߑf!2{kK#;2:^8SiH>zWRFiހ1nq8$UTc(#My7{)uϫDP2nzlDh@\L.Vs=oR(=U}f]IAYYį9*jE1j_BxdKlѢ"&FF 9~d7v y (v38|"-Di, 2w y)Rζc,AZ}X}e#M놉g/!?w+T[`q-8Qs;[.oz{`"j,뺻lc;@ _)PX~y4 bր=(h.􊪾v^,|T|1 to\g־(]2Gɩ) K!EN$p<.wK•-瑱={r2^tHБG]gg/ҘU# E=L^$鰁[2C q Xg*'56!y/ٌzcVrUYC@!CQPqDQ~`0=Sx/w•|wJH?+ #ޱq,f}P1}M&j ߹ˆ{1QQ`P jRqbeq} °6.?X`َ^>b}]$Y%+/rq xJVD0h+Z zH*DE5ﮖކcH'4Dd[k 2)U#e/k&\-G?bmsܣf\30ƧBs\p,);צꡎ(:)`e:VԱęg."-䝫R rf&qTa(rZpadx{rQxfAA\~{pWL07 b.]z5e)N[8"NU$ h]Znc-K0WLkP)\]Ղ)CلH+vչn٪o~YY1#8هk4ZbV,dyT`x6-vOš _ŎoG H%|4tSɱdܟeRT!ԉFrzY$E *<4D!K".@yzOS6*S3xgJf1G<'CxB=@s})|P4DSeHִꜿUW_Q戔J<8t -%/fFv(ƙ_0!)o##8 icήy ⵿ijٓag\p6`OFDcp:YEr\ *#ohA~J<|ndi7v]w}>oت)ҏϊ"[R6,mS?amS7KVLOXz2͵t`d~h'1 c`X=GWΟ*g0P_9:%0j>:8٠,@|4 [6$9>91v9īlba qjs Ę q_Q?Rd|xi(ă{_0v*'X|WMRs*S%.Cvy`vo`$5WSWTq>"B!)$K[>`AvVϥyKlY&nS'/5!Iamywp.ַX*2a§NDZ;0amGwlؙ#A?R/ V ?XM}ĉ5x-U}ɹ'8C п8k!_OG{s#OŖCC+M"9EòoRMo"ֆ~ʀ va?'T@h%֤9(.wkjvCgF3|߉&G>.FfɱPjd״c@جzDCYbEP ؤ]Pk_t;1}Nq&Y \.4O V6+Y^q l40 s{>hM,dQ<R"c.NDoAKH|HwjۄO;9)0ɪkݢj;Ly rltF^޽0/ʡ*Ʊ`%rDܠHdvF.Fmѫ3&`fM?xԇ*C_2i ,==V؇աHZ[nBI+7. =m `'pm!F:]B3j9J_Uf-Wh#ߨI lzRU4'b!3߾-~Is88 chνX_-ʉl{lzYsGD;V kE4kͽ-<ԜT!#&~]`*ϮBi{,6ksd lY%v7QݨP铧edaxeAMT)s͚Z5>4$w4 (쩷C;겧D{LF;r\--KBĜxZj:ݴT Lx@ 54Fj;,ᣞ{tsbc0'=[`XR:=&,oTQk&p;{w-Sz)E&v}{Q`ܞ &`EIT??UhW95q++-Aq`=/WmW@Hy(-blǴ>zpN.*a;fߨ*ke?# Hb%qB7XǨ\-;8ii.3t: -pᷝA[ m62`-!̚ bZv*䂁$CI ` bzf ~=R0]xZYY !zfHgB<'+vժ x Z@ ll鰑C`kD5ۅFz/ߚU^'W3yfJWUǃ'~\c n93ێWVaey?-dUK$a.q,RKq$"''Aַ8#.Pu)X^|;JeY,+/aN3OA/۽N{iYo SJ\h۬%{/Y l4bLt]Ö14dtAu8;l"Y}uJ>}s:_yFZ Q~K(pLWwM.!`i84.ڳ}BcsBErrkSY|̓4;UkPL7X[S'I62JP@4iƯmdU2Z#-ڢIIL,XR1F/ʯ C˚lsc58O0?r=ɵg/1Ry ԛ!+F@P$)WʸBc̾j.ҚEx+`Nm!nw3)GyI?IL"-0e2 N(@6ØKQW9 k)ؙ4{n}/snDt/eǷ#9h 𩳲 Lv)X]9ސoDžW|,(s iU'LdY/-+DANW\8 :ypWl9+&h.]<-e| 24ޱ2-ea|ua 靟9HG.v2SJſ9wEQ!fg? I*|s Y<"$ƁJzFWl~僩6NF3VWrlME9J.ֈmw~GƖhr(3+u#K*WPȒ^Dr%ɏ6Ƣ6@e::um*>ZoMn5UDL()En@no 3ZCU豥oycI^ 輌8o/_՘8LcUumXP,[uZ-Xs:\y.pDcyXK-^u։TH9sɺn@Kb  ;#>Y_/" 沭t}dRuV '`Ϛ뒧n>E}.:!mXܫۉy~uE m@Я.ב9v(6ruߺ"VGC(aXڃ]w6 2k24 ٣ KLY9*>fQGDVG\Hy[˛e}dNErkɎVD/$,@Kg-H~s"ő@68kv+h=a}ygOB*A tM̺uWR'O1PeClX_4^GIO_el,ebZp`SESLJ5V$74]lٗn|*6TtJNlilrAB:n=Cl9 I줒k)‰(]e-hk}GuQp)W%cgjߊiN2J˳"}Q[G2qGVJSؤ. AӰ|RHUc@]QjS4kzA3Ө!sBׂ"}xƥi^`=~{o!#p#Q W_JuT`@s3\K+&}{T$Ar ۉ8;^Q1nqk A%RڅpJf{ʎ u;` RqD, II$}:8O->o.l›dKeP鿻P >te{liʣ``O+7d2q KLΞRgΞ mߚ A)5;,[4e!g(c.E.1{Z%d6K޵gNdsCa¿UCȍ+r+ 9EzAoNE2Xx] B$XX՜eY[SJy $mJkUΰ FOC ~\n1X6͔Ә%lkXa/I1Yl@:O`dA)6W냐|syTw F7:0j*N`=qt D,OF~brna#qu-‡V6>7e.~XOnRb.$eҕ&-z>:B7UijEEQx=ؙI 2qYW.өvv6kwk ƟY@)Z&קen" 0LVD g4g{/I]E'Fz__Q+rY-5y5H?14 ؾj{VNnWUfYZeҡdsyk@Ng<:;}'Cwrޅ>8^>SS4Nl?E}b$̾ dQ蹗`Zj;{G{baGO)o1g0yі1g>lܘP&pk‘@ꑀ !trW҂bH-VB/^}IY\LLO5Br #w 걯LLHi6A;zBYUX_VMD~yҜBPj$}ґ3ޥͻ0(r/c=&AJ\ sK1x&jsJv Oaj Eh/3rΑ$OlZ\YI M9>fDP7W6rUWА*],B&\ߗ6ӈO"ٹDfC!94+<(j QPl\=6=l|GW9Hm ї>dƌxsuZXqT{r]q0;⮈ۚ1 L+ gYƅƦygC2 |sݏ|W2^u\&sATVj׵@:Q @iƌ>@!ECo\]l]Kz"1m{R|qP/k{‰:X psJM}ߺpP1z1V[!fByz2fU<&iyX@"'65h+XoqYd(L77۲+ M̙>}eoDB[41wG$-b"e܋*, &Q<۹ÙZb JZMiW Bޜ#T/- A\ &*|N 9݃\PMCS]YHuP6L(Ԇ*]PKv Nt:N~$_= %syA7)fo zї>G4\Dh?bf#{8Lo~S "^2Kn= (<Ҕ}PKOcNXMB VDie0錝-6oS_F< '`?뫹ks,~:/R ͕걸[da0+zxEQPS)yo$fc?P,}-EŁRM,\$#J\)j=*3lԡa Ed5 wd}"1ww2]x]ϳ vz..jy~e[ʶsLڻx W88c, _ D҈wA$0Q4,YX2bp2ܷȂ@O=o d[6 AHc^9,xΈK (p Sz߀%t2Q|saFbYC ¶1ok{j@>_ xEYKX9!\vPߜBF%!b%_@^UI^Vb?DiU|+g8ׯpS- JӲ2b A/S3|x˿媐릱v+JgxAJBl:HY$P_lt`'tڮ #1gf1>[ 1!0uVcU%IsAEԡ,-3w Z@K]z'~&Wb6Ǽ]IdՍ#KvOyC( " #A8sR됧j- <)hX&Cn*Enm8=_u航X4́%X\Ј zqWn+FR\33x{>Җ6Mň\<\? uiyԄt%⧘Q ī|H<2X!.sHnętr7E㝣GXEj|6ۃ;X .&e`z{݉MӓDTyѤ1PP-_[C $XA  YTp/7+<7Ɲ^WY%pb;8OR,4W N!;Nh$Cw-!Џ" jB0D=t-'f++Ý~=4.9=*)&zpAn}5Qʽ)"ɨ˙4^9 մ6!r{x|ضKЭx|vׇGW@Ԥ <eR&J4~f%TSM)!#E5r.X1bcPyu@="hdfA7JȯU>r'Rd3b:м<{N]ſ`> 9vt8D$`f㯧^'6Z {O ={+wm ndw[~bYe,{e Җ}-l#/Ee,F7.JehTRs&1ٙ5>gKѱ*D@#Iq, o]CJ<}O\Ԧ&vPhV1y߼NBK,[d<-點b(HoJcѸ@uiEg7ʰ]c֣y2l5 >m%GӢOl89+ۺjt9yې9UBޙ h8yn;+R Ĭ.`@7;9O_:Wapran\p_C)eG&"5 e(0KuHFSTn!m#zsXGڊ{䠺ZhiwDLj|$POlMwRNsO:7[S}tI9\1XF7pL4Eh΂9},ҫt`7hW<[nH&I(b0W^Ŕj}`2uCtUiNk@jfī:xEr=gkj6'fٰn'F "3)$Sj⎣ՖCb9ѱ4]9K5UI};ja6Î\ҵ<֊)AgbʂԃMU.6H#"v]5Kn'߅;D<^X$$S3{9 C>H?g'\YP1j`Qo{D* GALi'nl a)Ϧx-`L> ; :L>AD1~o q=3;Tzi6W[JeR+e9P2i=9+2*n9_]FhoYY.d's 5e#s s%W|䠧]^ccq"?t؞mt+$H6} $z`Pyƿpd; oVh xL[2Ɇ :#ԲH/q^O)sP bp ("j_i pKd?bOl5PϜkAa.+u;Mao Z<%gWܨ) xze={ i@R*EE0;KW&6U VzUJ̝"Hհfcd|0߹'yaGc;oA+ng(nn8Dg%z;n\hò]1 [/'a%2&uYӽG8/`H̛o wX,8Pml7@R3m\%i-`}T!Nl ߛvkcLtNiE VlL wޔ-$LC#]xl?ay*=1X`BE0Zf P)VT)݃s/'槕C= c4XA^Cp% jKhO bM*ۈ׆,cCfeY91sCL-!ʫ?'7%@RPymOOj)Q޾,NWi|f߯ctP"Ii1OpSG|0KD:&s jGz.Lz@ ![+)!\-?/|(+X=61#N% biV$\0n;d@\^ЏS|^L˸lyfnoㄭ=.HdGzb@*\k)H7Y TN}Y eFz𵤚=t=MM[$ W$~c +9Ixs*~QՅa횏j@$W-*$2>DS'sgp H+Geoo΃dU'UdqU6R+/Ċan:&1aLBhnk#>b(UoFcgpqEҕoK~FRk숡`)\M=@[5=AN) j i,4]^Ҵ<1Xtn(q9md:u .s/n.)tEsh__g>"e:1-کkOۅ0tlƈ|VVA>fbA}:9l;9Ev99hX PqǕRR$ћe+X ?J軯jUsG(Ď1NQຈ b^ ֚-'\dyǙd"@L@{J4wXιś7W\۲4n9i7!8Kfe?:F+aBnoNU>9>/IUޜ6 9o˄_2a59?#ں \b#*r$uzOoƝk"],RC-uы׆KC(ebؼY;Qqq"RcpEyG3k& HRx:Z[W ;{MaD݁L4]ƿfmKN(1aY:+&<;ܸX2%!~c2LI%Eca_Lqބ ?" QͰ&ùg?/*@UHAH' j!fy#Ɗl2lu5}<8*8c~"lD!A唻qWd{*b,{_i#^ڱs%P"6F@V`i1j/f{A2F񯸄á0Y +;!Jr (83yɹbE\5εg~}5TӀ :pj?ˏC$!6yyUv=R7=CE[FGVyCae=lS/yޢ&eG_n\T}lt΅8t{Nv+$BV0xi5Y:SR]G (3n;[hD~D85CpXSA'@zFo\k" Zvx9H (>+7 sH64"uk8UY͌=TwLJ*Lv;-x9i ttQ"@H.o).xE愓8$=a"df)V8ZV+Y' sjչƥ[ 2La '9XVRr uf§Lܸ,\ΣUܺ~'̿pm"l5MdHh$vJw`I} nlWW7ۣdU{!G|SgMFY<7!Ȏ`SP ti UcYQLu_ZPP| <26`h4c)1C7y"iaV̔0EeeH~=-?U0&>H^=*!wk]tAIB+2!X*Vw|?)7d3bxG (ǁrT \Yp_}qU~1a*A46TcdzHΜ7}ENmJ"&9G8s6uT+d1BS ºE&yl>Ekl H ~kDz4^Q;MmE7m)ͫ 5~558 @r}SBj%jmI&=ە*JG{'ZӋ2+dl6k`"Jq1*c3"y6hఖ<NWOu%H$a\Z׵KdґAjŊ<%~#[\ƓpԻ^2̂|"U֍MzN Pe9Kcc%#'8`]Ϗ!f!gs޸̩ɎnhD>ӸYlN?2va$BǛq@{ g܁k~r` 8,u*#=B"V2~oK{GTEwI |ԅ]{ (VI7\tfMJ5NYH2ea Ve{a]"ƛh^;jg9(c^AeB-LXu]tjzlϘhuV"UBΒ4a}?|Ӥ ^V)IZ&dNe~۬>kpLB}l:Oy{z^7j.n俀w0C0)Ugh1\A4l.NZD7NyWhEE-Zʦ;9BOS-ÁbΠ:ģXw@2Of_HFGdƍSRDs) 2 5 gA$V(2%<=-eZNc|q^ed2.fޔ[bQ7 w*廉E^aPŤpBPٺ򖞍Ҕ욡7"/ڜ ǿ%Yt A#:B \.q;7gg\H"" ~ao#"oKԇŭv` _QȾ 뫡߬~{}'(O $d:qZtw-A!4Kc;xF ]k|a$Su/X~s/1(F,%b4SRVg '1Jf*wB:l[ge]`I/#K@߉.Sm;}Pt gwfxϷ(oҿ\.Ao \o܆ט׵,йaJs~Ŏ\$\tr/ǃſ3Y팙j {mLɯ8x4@3XB9 q &p9ILukK%S\cM,cmXm|DW2gvT )U!ؘ P^6^$}Ѣ ,ڑH- {pbfBȰ{MOrvN+ZV4-Zwn.2sHձK3?'$ַB|[I:#:2"$Kl{nX+(STsRy1:BJy0&z&56\c2y,bC>D TEGwtjW: xɼT/殦S!,hsѾ%ڸ" jᕼg 33L11OS(9LƧbYHY?B%3؏HǙXnbqBLcxw#)>JW-sIK63 ~RlcH="U׆\[tFV3`YNGAZɽtkAaou@B&g' 6I_yV6/C2,>1uq/R Tax K>z+>1F ua@ܒVgBƈ-418JŨ^+3}쭊(s/Xi~Jy%ۄJCKv Bժ-i@&4tue>@WbcZD94|U!)D3P<ٍjrjP*}snCģ=t^5Yp߄yk)BhzcSv;$ MI̐9Y}SpJA/GT`'"zc0Q84lTʸWf 4wj6yDDeu騜j W?I,'7)D"/um&S}3 XNlP2 ~*UW],g@<&Vӏ&ȟsR$bawЛʕM#cTGA) 5a򀣩2[*_H/dt@jn$SCEف9ceL 4s[ áxE knM3d2rj3wg85}/ܧyG0qaJwk?JðK0T!r= $0keb5Z.b}%wAxMsk(-D탠SBOE1aY'eoBB;S}^QBZoo\)fJq:H!77 FBpL֏ZjA<ҵLhsvh< ^+DPV)L\.2` V~jw. ܨ 7hG}#Uw \(6 kNu@v:ree#quyk)Kt݀*2PdPa9O'H0**HLKEQU[{YҼypn"(R +"k,U Si h{QA= TtVfš<]=6GaL3)8;Σ6.V5M y{B,Cw2{(cs#@Mm_?w7A-]IDqw{kI{gaiYOsTsj) O| birJz~Htl+:HSL|Rwc<ztUQ@l` 9D[~rl4*<.~n"/Ѕq-&DZfN*j8k=7.~2DGCgHkQk^&KPվ$6Q\\DC)ҥ<Ƒ㾼m-N*`n_ñM׻=S}xaׄpP,tnciQUҳiGg_M lzSpugͷs$d朗1ŶFZEs^DnͱC);r21' cnW)V0':+BiZ/]zzX ooΞuFD TI-6˷t*v8zdE3gJ,`Eҡ̺:{UYHsu͌q,::>j ;8!uC !C3TIkG6OGM_;Emײj$6mΉpҘZ;pѻBVrDAC*A'`τPv7,?{tNON}S3i5f- nuʄĬ YS"u,^lY4%ss$|hmOrk.bm,mzzE%|zi<-$CGp[JDxԹ:73[@'M4؎4D1M;!|n,6vq1NU\{y$O\/Lh@FX-P\9FI)Z`f jy;: Q1ߍ)AӐʉgA 2hAϣyo7F4ڱiߓĄڬ$C+Gg;?" L9 [G@~f@ KiL PJL~? +5*?^1eqۍqZ,Lj CExK+WŹcl.-_j3cQD#TP#EԪ YZwkd)۷~: %g&?9lEm5iʽA\,K2;"ZqV}M Cs6WJu0oE%*%>RDш4 axޓ˞Frt1:Up en: ;lP=waQʨmKEl\*A Rg=քm‘a~@m?+@4P[4+f={ћ|m!(b&$eX{Ŕd-+3[%9tZDx[uKyjSdlcQr҃ Y]V/(%eiF  }(nY_uxbݴ qu6DmGXbm [Prr!_Oh.$12K bIgHhB[#'(AٽEEOu2amő~W#iM|Í u[]e= YHkQ Q-\Yp)@\_-CKcqs3]#Ko"=f#$}+`s:@C]dGvw7BTVH*&fy/q}HʊagC8XԚyM&8Wv[]PC$ɳqi?8,}VaNZ 4R!  Ko,pMJ2+V;+aYvKIVȯ*C J|+5JVwbP#:'8zC σ6{c1QS~qUY^عF{Vd)ee՝XS/A~2oeZM2ьx;+Jv.!<6 ;7#Y3v!݇:[oF0J'YN n+T 󰀳yԱv{ b:yQ"HN;ފjJaްd#mN:¡&O!T^j `Yd _7|Dz\ka1U!oBi {DD5os Y9>g`acE(?RK,,HPvx*:s L=0lc':j `!&mxfl\d$ vl;cKe *ka=oEB#[MzT+uWoiH>r,o"(!u,7fg5| nܚr1o/:ftVF=$/|>qFzA}XG{c6KZw}P^YJ)a]"B!/,0qkDbXm8 yJEzAtX#m6]RInE {li mLFQV'SwCܴ(K{<ɔ":הc}aGh.iɶ8*g-(JO+OUa#.%^T'AUyqF4Znf,اEX9?,6xz Ms0, ~ ofwz|;:A$XPP!4|<z@ O~ƋĦfPV4+MN\ 05)CGsȁ7kXW~V֬Z>FsjUf=lbL5MR+p[1>ؓZ"Ra`y` 1.]$X|SIk'&6vwkm{߱h8ðěw0b@xL77P+Ӆ+qAp{b#EBX/Jh69&E@wS%BZt0zђ7qnDyJлAz$ts*$.ӾH$&aq6+8̱Dh&Dz fu]7Ki9X-E)8I< -zW8 lQ )nŅ:a)u p٩d |yAlϙ|!BUkOPpfZ9ܩK.xJe $'9mke?*\ݹD?gG&3ꕄ:V52f>}n)|nw{6f"g#~HvQq@УkVBwFP(SL{+ *o;7]r;P[H%微٭Aewo@Q]|at` [Kjdv2w cO=cK(RSgV0΁RCvxD i7E'FtI@x7Ii'EQ^u6"Qx(+v][$\I>@xD1No/=$L3`Ā+|_#cH$E!O|++[eJŇ"%ЉM]tkؿ:‚hDٕ]|Ww~l#U npb@NeI>rYX;Gy%1'@nf%mo)-J2q7 r};em•_!!àDC sǦsw2Lͫ{V8UwФ! @dy$#ۓSéY;y~-*ʜ[CϪ%}*2hSĻ}6Y-bG@'>MVfpo*izdp7Ya q%%AzZ-#橶;Hr׏ 煼x(sW!abC%tS=]Z0 LVq2}O~?DQ1r᠆THI!ސkOi*xP'0ٷF %_R>0TFLž% K/M_BUC`jȨ-oźACXl ieY !=`w"1s2x6Ta4TGNy$8+0 ٩*#cz=}VguPѺ!4n_q3vĤԝm8`$΅*>O=o/=/g\ٜo굝+ XyמCBL> fjD#cH5<^ CyH_uGE>X5v]r; co_%2om_ֈ2w"} $ᬁ 4En*IZ5+&}`F0/5w]G(rD0LHEn ޯwp=d\d͉q*,bVDӌؾ 3$O[XѯNޖ8>QMH. [zL#v#\TCsXckFuU,ѶPI7lv5g>C }8m:9Kz BhQ=}EkPh>W {C\9yl5Z-">*TnE+rH-Gsz Y"/ Y{Pgn֯&$(;^=`|r@E{C+cu Lr|hqf1w r窈,"[ sc],/̝jj4:GD r^'Z l%h\"%r=MD%݆>J *#io`S(aP${]$AE ž*yÑm1pɕD[_}q|Mt ̆aPߞgg $ԣ FU@mR$ j/d^(qv'bX]ZF(F9N'[RX"EblO~CVB<,[n.8(AEdmsɫMչXW`07N[- ͨ6WTK kܽۇT~ʝK8>i6ї}QPM~GzefA&2mn?&/V8]Ql%EqtF4ӆ>Ka0 T5lh'EywsZ<sG(}M馈sZf %o^ZwpvB,Ұxł +c,0!5nzKK)i%.eDv)Ɉ^}:\0'm;]+ ^ȐjN ik @γ:3ٲB`:Jֈt;3ģY%K+2D7)wubK7ؤ&cExom]Iz~;Vq rivG5)yU=al%um5O k+R^[AU߆닻SAD>زE8\eO\9wGT1S+͐!;E:>|nyp~Y;M']J"]" WDUEH#S+f,#.ޗ_Qj15B,|HGuK *p[2nYx8-cOPu}=l^@oANTaT*f\$}O\C,TRM,ׅѩPB6B)X]#aIESzo $ 8ٌ9<(OǙH¸ ~|LLjc6gSFW\LW'}P;i(?l,G}lx.}^tWHFtpZE+9)}mW@g\B= RaסcNLc _m9 [ڿ]Nt]EE4|]P%T%hʍK7t9-wvRA1#|jxL2!5AκZaK"* WH.UYɍ)Ne݋2\_sѶX}DHǝ$&PߌoNk42P.>LyI< H&٤Yۡ Gv[fgayR S~qDv[3kyRkI@\^Fs-!Yk@鼵m@r~ aq"*5c{oׯAFoԩWN/t_Bc {VDʹiKIEM,*Ic(s|ew5JK^َ SK a MUF&(7AsoKgKߘ/zѳdRi=7sxF\#ژ ypuVi J0X!zw BK7o~ފ1ՙ\@AC2-F#.+*u햹h*EH<,^CO[Ŋ2Ѳ)6)RSZ8m'쭝G.5y}ɻ#0řa.e/ҘqKBHO9>ʺijyXWy:BlXG2 ~ LDT*zAz=8 u4T5ktFK,eEOCMi SWLL:]; T7dtc܉0ᑰܟ^ZiqVt'}-@˖ә5Vksa؃Bi0'!ܠMƏDB9fg7C34ӓ@?>U%Ҵ#m>ieA1݊4D/'jF&Ù ￿~at9Ǡv\o*\Sn☰Z ϔ[ ,vUiC}F7uXӧSBe^KSEޓiN[޵j@rb2&FruHuߞAb`lU_| mH\* ) 'ϯ;W1ma!JY7d _P/GX,ѨCş}eTjcSCNmw"þ0;E %][c=Zz*l UvI3Be[f%8OgJ緉aNLhESzx-f{Ģqw`\a|-UcCpq'Pfwɲjl=SKZ%=hYn*tdl #9t&p] VıM.W[jt ZϦG/%5f֕s'(]HY^t]Lzϩt|i-ބ;j۸vR[vj BʯWki-X,9 ln|$%490GEL <v/W[2gǽӝ hG;lߣ ۻZyHbܘEj^U"04ѡhGdY 6wSf.s" = l@ҵ- g-y#M;P^W5eEݕMss ʋ!cl^22PKP"ni84tuVFa¶[\V0Сظ$멏@2'שC&kڻA&HzNNjvG[TY%.= W8Vգxo9m3H/ hH <+sLkş&6-qjk;\1|'7CS4VKLUƓfI[f7\as9)!'}[?(J!b6,WoJ{5t1{"c c<^v>4hs,=}ȖPrfr\u~bc&eN߁\NEާZNsqRI(ՖK_8hzk 7ap‡i鷨p%5 z좪R AāXt<ǭZ IasuɈ)*t:%b+udV~(`𦩼Q7?Q\@'+#U[Ujp!sI)M`3܍V1LƝS9'b8@*=jmTywt< H,2Yɳ<Ԉ[u3SFG{ƦѦ-xs>XV֘(;l'“hTiHf)Tqxʧ9FL=9X3ǫ?ƎW Pr&+b"bZټe+`ISVUG(>r0(r=Ѩ#M9B0e84 zOm[a0$u72$-ޒZD)1TzM{:ƂΌ8Q{yɧϞ4QyĔa~7Fʼn+ e`/.Hl?1لJSڜ-\*Ii&)t9G[i=[|ĥx( ҉ȥBnsyE/<}CcAv/(riky)`y$ȗBiG=PЦ!yrWp .dJ *D+(Aq/Q7NyC jNH"WR0ECpu~rZ\6a7*&ZbL-MFl̗Z''L|B§9ߑ(ȋ"5H'i˩`r:8gÄJ#գeڏ|M*zN\ {]m/]x_b1%rtszmIx6'䅁`fK]Q=QQj&W߇vۀc\ukiњOnqQH<`75aN}M`Ga(8=vI5$ ]T GΝ||pcˇ,KĭK_{[ ?Z2X,V@]GZtIUro`r ަS=a(3E%m}.E`{bMmJ+B4x9KBOIWb:iGS9R(Y;LjW C(:2L'M3 3s&h} tmoz]:7`"W(͖JzNb j+G&G}.E9Cˣ:GJb9ܹ&)s:KP7p*%Toaw%[߬1ވn C!+ y@%bZ;䠯&y6EJ"^`MҌUwu&KhP@~'y $cZ+Gr';|ĠOI#>w R_:_p*K '@S[+C q$q$n h@~[2.Ks}qFKMi`9:¾  ;[HbRZze&@>3@2? m‚ ٕ1{#EsYXaVuQ:'}dF8+f'Unr w@|3]-p"-4v@$ FVe)im- H!2-0za"Jj\/]^}NRb"44ؽ`O}7"p;3 i9w 2y@H%'fI+"08᧘Ŷa5?_XB+\\kAR5ER[MG~O`zj5|m}` >NM]yMYceZE DVr,\AfbAvIkK%v٭8% ~D64DKV#"m\2oCѥY b]FeƢ,JZqNwyTѐnG2˫Ge._v!Y9DI|<J,#f夼x2m('F~j usھyP=IIPOt1Wf`C(T'̆j!s2W)DK ~9Pc.{v%GhӢSHU9r>i& ٦y}C qs^=&t-/axfHU .CCi.i#IY`[gܶJ>AOC,s}LO |k[F1>UH?x.$o_OxC[8M+ܶ!CPO%CjR'ޯ.gM$g5*bjac8BY#=&4ynW*NMc)h"D̋3`D-Mq.J 4׸  !nt=ſ|xU+7ba ZKqZ&h=W2'b;LRZDizT dp|l\[?m3&1h 9&qD{d>nƞ'(aI2wk?Xto[y;G`þx֟l1^6AΨVde)̃}D N ^Mgfw.!S$:_oz&\.4A"艉 rlІ-F?Gѐ;}mz_\Y A%rR~ p/ĒJSMg[ߗg[61,t B!g-  RnY?+=}S.äRQYm5 M d R SNގQ`QgҪ 0Q{ mv؊HVerHf鏢 xEMr@B>ihӦeNeu)^Y&ZL VARw@^H]Lk}Jr>"yjfeFؒ*?iUG#@O&p}1tO\DpZ^Ȗb}/n'ռhROuD8h h,:W8-}#nE.v PJ0n"}2;S؝K#Ǚp@=6%n u0P?gbpCP%\nll8U7;;̤ՑUYa{v+ 鮭eN5a}+k|׹i jۛ*[T!*O\NRA6H36'w-)UY=-eb50v60kd ,`ԃ]s%9noXZ#?Io#Ekp@eJ{:@*rWW\"k ,e"Niw?=WSq8cL/8&ݢ |IN8TUCNC/H7B3IA^ 5ynU62=sƤ[9_9]:`A ;1fl'X7aG8`X%1M9Vh*|V^3 wΌ8i׀H- %;POգ.j~g)R[lm=FϾv1ZD.* de.Džs&I k\&QH=1&ۂE<1ɸ! bzಎhijǑ|j5ܤò<K+Uk9Gky۫k+cC ~>K>BUV؏$~Ri~k]հ[$]h&9!­{eC#CTLGP w&Ю<5xݒY(7dFœʜ^Od82vmv*Ӄ^.iyO WiEECŲ;ܡby_%VA y[FϬpB^_<!%0LGxHw;ۃʑ_Ӎzpy;ݿrp%p|D=rE=vۋ! 7x/# "74=;Y3 _#(fO?| ss A_* `*sOv#ݗ/{oWgp17ņT`ʃ-k7/Qf*$C.G' GYMW2sXb-"ܾ0}L̮ V$C'ssN`)[rܧʱY'r=u/JCq @E;o}(8JŅf$А}rnSAfA-[JzפFK%& jߌދIObe(_Й81Gk%yݘ:Eq9~BHXWOHq8g,+˞̷<|0KgC6p mLu)K`S-dE;.5&:2sJvDv?zIto9ْ翕 \QkBh mc8fj=Ɔi|۠b),h&HF!{[fd͊O]aY]ʅ;ҽװC(uQf2 qWIo'!CKE*oIo 45`DG^lg_nLVdߗqaY+,}Ub);LcB{!n V#E H3ն;Jj[ey35gΜ緲`Qeo"\;E=-g[+ٶ(eI6v ^qHJ]银- Qw\X/"aׯl>܇b5Νd[ݵ6IVYlweRZg҂QԭoQ;5حt#aQc R+QbTtiPc:=R*-GN`#h G 52a wkCKYL~T2&䑤qP҄9G^P Ї^Ahf;`f+-/xSV3[TI8z^|b<1K)Q`|^Ca@#57XYCV :}jUQċvƢ|ӻ춌*+1ZER%52kQLECsХZOQ5P7oI?Qp3m.P;~1g5M'ʚDފd@4&@yikFӅ3ZL$O6&{ЁΚf@U2k1j(n#Ȁ8crO j5] omL N56ɲ0mewn'fagKrǶd]ADZ)9oN;LD 0[\ƆT8i-qX$c4V82 V^G\~Q$`** .ܦjb0|ޯ+N!jle֋$(9TVN hAN 8Ȼ5HWf|MyTFLW?ӯvB,](%1进{2<f)s,pai9 u yww_,)ۅeVخo(\[=kA%| ZUF=l WGmbu_7sap/~S$bX0H+c#6zmOC$ h|%t RX/ʗXbH[GhȸCyQ g6m'VMC؂ʶv||b~Wz?NGjK*%ZSj?ڗmp {jVpZIQB12VI"ٓnZ`?؋j kz5h=|Yշ4be?#Ӵ!KN7$ +kwYw+6ЫǠ8`2n"qb(+2k_+Kv04ۃt[~t2CO 3HpeJbFkKnrzO7o&;Lj.ߓ{^ qO>A^GACELPBay* E<T 9#590n}R2bb\+r=" O/`6YŜXZEU\o"o9[]{Ԣp SzMYDȢ2o; s\BJobRIv^U8e"&8\fL:DVvEvF,"I$䞓sX۴s//6' u-\Dv X#9T*#ۤ&E"3;J7:K 鰈eVK S"&>~'ޡ:'3_|)zUy/5әcpD͜D|0.EZ:=B7WF4竭p0(O0Gl૒JM `¶#pff6x!pExklCSvnDw,Wuu05'VoEio 'A=qw6[.*Ʋ6S^ǫ:p~=M,ئje[k qLJ*z6MҨ * JV]' , îBcsP,fiؐ',1QCb;Ig2 )oRh26KMh6^9-Q4"y[>* $ Z~q|y05^=~ oWIi/{"Iѥ(RBA,nrvF[]PMM IngvM K$=9WJ䟚7"B4K~T 0>'ᝇ^jm2 Y*\XIgND2[^rWҘ8.b8LAxKjQDRd?)A xm-H7yP5#_35".!OM5UL[9`;Ekܲv7|L A:b׏x)#o (vf%4.07":LOIfL{% `K(?묶Ķ'!b-|Ӷ_]ՀX7I1p}<@XfD^\?Z),HlLE]PVƪ`=#?oߟLs6> N͡ cĖd~‰4yأif &e( #s灾͚*}igǿM{8k |k^t@L$Qq(Ο9 [.$WD";L.?Օa||V,5mC]mQl* qW #6tOY[3|bw冴8K$jKA6gaU7 *'84,90(.@VT6v@.OrS|6,D'x+ܕ2Q 0}Dk0`tƸLTFw )m/sEaygј6 #+.P?"h;BDLp#_k;B3']WzdR*gwgXj q5A2%zˉ =cjк$I's!>J;m]t(4:I"Aƒ |QbhW-EʋJjp8OX^D$YaG(i5rC* bvܓ)ݱE2SY}}1g_NԬblj1MG`W%̯fudϒgp6 \$#F"[(/P^RME{{ᴘ|Ͳ-'ut`78x$ri>++sg"@e5 ]crxb€9Vix(iFzՔ}Yfǀ/\^ǯ} s[p>BC!5G DGqꂱɱ2 [W V@IDKםSm05m.Ά6GyԭYޫoϿwӞ KqN󩿩Ɨ6r͹9+2=7xڎkՏ9v5Z3FF=r4a"џˈ<"-|ꙫ D@WZh&MϕøG{1N38=6MD;B @8#Dќ롁3<y~b$jx䣭E(çԯ.SQc639/r1Jٶυ*ij`@prC-T=Jn"gTn6(T䋬u'>!kܻ<119-]d8gjCvK?xnj§ZiN)KdPn4iWtz=}>!ciq"ZZh2"=P;q7*f=_5tJW7۝ԾK~}|mzF~w-g4xfp&|ԳXrb/c Bͽ4M"5n%e5R*Y:+>ի 9/Y" '+ݔ47 XFX{90T6MtJ Xi)q1)"utIMŽߧ F%a=G Sw`E//]9)A"_MSܽ"d Rp:j:H88YNh_´ "N lTOE?:`RIO8̞]E"Tqˮ:UVE3[SF\w'K}N5i.i'BP7Zn78bQy@VSci6Ŷ}b(oqL&#[q (K1Ѩ. 1r;qNt+xחQKC6DT/6f$9'.qY&0ڛ>Y Jָuh 2}D&єͯBg\2QhlBx,mп~;Dfp,Qyz Ch^ n,e>lΡ N >!7[rp3f5颔>v~Mc;}Nf0hdkGU fU_+/Ii>^JnH\%`em>hYtfԾÿ$7%OccE\K V#PebҭEa+B8ьX4+QJN\G\?%`+e}(X(F؟3(`x8 YT}V!og١|E>247m[}.@g0."Xßvw[1}JUCಡ]!Ԁ@R~2ODLiai>P,uwyCh!'WuK~Xy tA"4BwE]p3Id-=Q͗|{E}М/_v3 \%`j8RFs3܋~tCwUjE.R/U$z|IW߂߄79 H GRwXz~03^Q ~^M4g_")y$p)I@/9uMQsf5!|wOJcs,d\?` [82>ns m/]2;>3P,: HRaUέ و,3<3N7d7?Tj87#5+wWc rgtM>V ztrtCi./>*V!N|'B~VG~L?UU8jr+Tճ&l / ;&Zsf \֡ES)*W/LDQ3՟хyHWՏ6s;okt }+iR6N/ O?eXVb}hN`P|+s|Qz`JQ]Ga@0NW1#g5Kӭ\Q >Sh|ſCiQ̕P%FJڄb[ԠC r^8 xm5JX X~RD;Ogn9MIjM\!ABC c|C$Sk"' {8l~62)*WzmC&5?]}Tm賈ig |L=3;2ȼ;3;ulE)qe p*f6ސMƕNVLR`TwCM٨Qa\A.d^leFAC{i<jI5ɠut*:άsA2)~`m~,2`)83xJ ˲jUbdƯᙆlkӖ7㦽HLFZnuEǂm-[߮ksبdbD 0 dǞӉyB$!՘MLq)28W2|&jՕ(u"ddAl &3kWԗ-pp_Dӯp=׿D*˨wQ@i҉˙, e 8o#YG! TL33j lh=|egXDqDԬ<~g|*[U+1&k: 'v~J7Y>R.oj}df|a$ne ݀vou ͩ# Ȁ9?-Z6>[?#?=x ƭ Hv#|7L HrCH\P2BC3=US \^J%мD΢ f{lbkE(.2vPh< 7#aM S`9n[;&1GMFn]%Y/5I#aON8tDݨ{!jbE:Q|ZpTwc [plvy?n`%D LYw_tH׌7 1Bv AjNPmKst7F::Kx߰A4!9JAc|&6E'O8]&˹݊;X*O ٘K!by;n`pTpC.ͺ Zu+aU/ e7 ΞZiX rpXU ~%F>+G5umz8 UF& $DAT@j56ݹd%Sض kNyjWjRWz~>xދ8B2.a%e|]23>rPz?[=b \ {=JIvrKB]\utH oN\sM+ (`Пkh!gGU| F nI9]k'-b/+yT#MdR^ bh4nʔ• Ё]"8#Kغl mhK?}$Fq1q!U0qR5: Pkx">Q=?wckUbł<Yk}o&$$TFjR'q_;T1NfK,oksWE{ ,ױ@8lAnsy/tk`8>k#s9^ǍΛi9D}v^|5/YԐOU3|# jp([h)I@GZh"ӮlQdSϻhi>9K*$19ⷵH:]wv;KeX)N|VPWj\ցK_lU"tynauu֍ x*N&R]\(G%QȍlDNT?[s-G!b;q;$f>G%%0<1+-H&㳣} bt*o1c1 ;-dy\jS#cuh>e<Ps$ThHfߜB4A[n/W# 15+󬎒Fw; 2g堜'u~7@4|Hd=oS)'5JxIeS4=_j4CT! s>\i\1*c>a! :"+^|eHmÕF 57st|~y>iZ숕`uK~I`"cXcL]I:}"piU%`%`?u2dg=#> bOpbk()02P)UϘP mʊ{O[Aȓ!9\jm{(@Rrt(~bɞ^HQ.?CtRFj7vԛRkmWgxmL()l!hW=wpj/rYLan6N iъ'qiCNQ \lMMGU Qu\ajV Cpܵ;ksэB04}ip ?ŭ1|'p"P2efl*ZPeY&;YGB+\Dj9?z#,_XNW;(ڇ "PsȦ!kF _^lw }wvRT+x4uϟ 4] %mfegrjV2T|%"9 ';E#Lqr <E\}SaHHm~L# 덜|Ռ6@oKۭ@14D~Wxb6ތj+%vtH'0k }1Jޱ-W\LWJ'+ Ky'4voź1SlÀ+qMh}L+ X &]I^Xof<+US$8ۥ J8I\CG<e%A:gT&zoi6DԱr7KG/} ƆnqX{%Ffuqq窏@"99%Z6ؙt̺_p R4v<%e%`V$tma C$n/PKBKr]U(up@4bxqM0\Sl6iOh3X;0E q?mOFMvWNKӫQt매쏗<PS)Z$o=; ClnWM:p‘27TغF g4ڨ9ǍJDk@j{\- 05D׋.X3 Ȓj3ɚ|77H㌆W(i nQF ^Xt믳}z$!i >Ͼuj9(hqVQ{IO< VGvy.-GnP}Aai%6%*N}V/ VEZ%=2_% Iu1y˥ OCCT OccZ5 _zU%T(.5&E5ZX͗C}@XLB`gxXDE ђz3~ aE:_s/l[Ivb;XĿV; i f/ 5RR4?<) $7ӣ'Ag(2i> j؅pʰ1b"1Ko簚ͦ>&b`xԋGŒ\=R$uŠO@ޏ.oSr8%zi"5\ ]օ$iH9/gGBG24js#pЪC"oo>'[?:_fl9O-vjX( yI weup[eT7C JE{ZF)?\(EB=i!Dd4Mnw@텵gvY\}qE)M_ UΛP+?\Lu)қF\MG9F=LFK)H7DrTNxԔ'{?HY%#]).< zCıjb ۩D\a;=xnK-n{߃$ UޑG* E3j[4bLI`#439P'hwQIdxkv6MQJ *2VF+q(P2,gmLm~}9fS0NNhr;ݔ9a#rx4w%iòlvH;bϑд*-SC~JRZTڿ°|vOFds"j(,7p)Δvx aMLӀv[XRZf6hJљ3{g#HΫRA Cr;H <l1"#Nww*qF[Vx`Je2qf)c&Fs-30 %q6QW9g Ef.2v kɤ`VMִDH("~ 晓(=љz!fkYʃg]3A <LGB輐Y7Nfs2zcYƯqߜCwa./9kOԦ%ޅk̿ǘ3y)zu,i3>e@Ddm͞\k:ÏV3K0 Äfw FRK!@C䙡ܢFZ(ge'Y[4iE\3b]dwU)?K:%Cfp bՇ×y:BLJ'3{3Hjr9Xu_k3{U 5Z/ݖR%X W> *:BWpJj0R}-8~9Jz-ւ#ʖ(cjb ڮ[́j>hfl_Wtg,AB)p:eg䰆/K밟8\r9ڐya3Ft# Oa b{!h;8_W1xj!}RA_oPM3Ozɤ>BIz!\7u&]69LA @0oZ>YdS9J_.r>FGU}Hur]Jv)"Z3?}ܡ٬I+h _H~xZ1/]~zH+p:Yw`N7N{D[*n_ 0-jևcH/$Dˁ!?}bo[k.A(nң> b@/K%rp}Jh`;NF -\ΐ, v`@o_-wSBΡ^K;fB 7G=\WymsODQCyt~=t} g 8&?T(*%z^Z4)kM`ї-D h-TRUcCm|SG~*J<`%t "jv!Qe#!޽ˬU开,`Y~Oi^ M;8O6q gV\oBN :a,/l)pDd~2lF ҀLU8N@K[8dzJ_I:pBtd>c1Bor<)B7 \QRT$'rQ_CxU4Zv?smHxɟaILtgM(Ǚvibaf G NV_+FfŦOFZ#8A i[{K')5BnCMytV#~3+9Nڛ. Lۦ|:"{(^AB/e q3'NM/]r=G۽ju5/8} W [/8@щы&o9x#t<úQ tP|϶>tJ+ѳBxW$cue˵-VdWxB>-- vpQy'1_Z4S0ހ7ڱTiiʣژ R 5,RP_k~JF'ƀ.\ߝK/ {iT6'QMƷ1JB}(b ?LPo2fJ$}jgh8$ԋF+aiŽy[JLiY)؂1@Uv*Xyi';R ".!.W-ebss&Ml<Ź1P` „N|qC68,#W_=x}]9 'sr_:z&|ɿG9m~O^I"DPf7]fFF3ğ5F/%MN %@Ymt긤>s` <991lzi v4:bNEIZJs]=XbI~uT&CH DfXMb0[etf듴"2ey^@<6HiIeץvfO@! vKI]V2LbJG\n 9F$Hy UUOp6q*I6ɋ2~}_Q ,ˏחcٹM&hBHQ RSB#LGu2[YM!r~4v0ldJr %rO{ݢMj% nUP=EY[l7ٴze>`,De}[QyUx]k~oðcWРV[H''vWҼFgZ%2A*>_'9.kyy! ^Nvʱn1 ֢4Wˬ^F +bJ'O!:Д,[{!m%4߆iӠ:FDJDOϙ1]ani<ͲI{ʄg\gO#Q>̠&/mʱ7&*g&2b׻*^SL0./J]bb3ݪBiML^XnPnoӼpfuԍiGj>`n>fXh9G!S.^p~ 3NϘ*ݺ`rG? gUG p4:X~YL>H^G[Qʴcu,H!5}9<%LR3̑PSη _:sO=b9v_llmÊ$A?0eUd<,:Td3 H2dgiMIHw-hϼ (q7.gs2b|4Wv gdo2_R(4u?0LPM al:7}£ DVa~lAraҒ ?\SaT@dt^]0(.R9u[IY#]?U_"{ٟkQ/ OəL$p $rX_-doSz ]P;unÏ-ۥ"co3SxZ|I_r;C]jwWA0c "sn&Y=?kU( 43e8:{N];^[CN ݻZ_Ck >o/N&PZþd[Um+uk<0Fzb9R0\e +f442z"q jHo{GSOZ7lX4="wY&גs$uACu~Pa`};€^Ad:⾝WU,^-.Y^]9oXaJ2ԋsۥ%fq[֗="J @Cu٦/9`mA֑5E' %b} $fTXnV"vTMד@M etִ1M]fqߢ;`&pXŮւm\]{zuCv%.R}O 쬀bLͨeTN_P0C!"NԳB-d 1\CL3y]InTQM[親D+&o(`^LWu~8*V\Χ'eiGw3$gx :Y~W߫:ۢ0=l=j >8m0twR_շ'7]Ԋ\<oIDחWԆJzr DfOQqIe}/w~ Ðhȉ8m*15O 8ǢӝVr6@(`…vbW|}QGo>fwhz! Gںv8.`_ 5Kx:fݪOH{Ojh=y׬CD w.\#э8];$d-y>Og!է+1am Kr}7i ȥMu̷㵭ܔ`2 <eTfs?^=#~οtZް ~6ƭZp8':R9YC-6rfbɷ:' [KmN>'<2aND|])'m rflfR榠JqhDs0!\zz}6?W 6a梲VuRgoRmo>B^y[2o&KT;~#e$yR.}6i܂G YL] +|o!>8!FR鸎L k"ִ ;B̈́ą2Oxq tĐP.DHFK z*g_qh<4vzeV(^^h"읦-&p(W}` EvPC.y/ݢe8/ՐƗ$?$wfv@hҔY_ 䣑Q9&)o.KbIp6VݤJՉx{W'POb&ְTP(7%+d޽IAEc{Vݣj=?'߀-WQo|B#(ĝ[:R'X9g`eggd7xa-x_Ԧ"w},Ƣ8K_ɖJB.ץ&1o1| 2kҩMH7@!P Q$zIq dT|L]=7B!dgcz<^,IPn98,XXfCwdIFnnN*25~NĈ N؁oTpfՋ-yQ"= ņ"l: lo#NXOBxSW?+ @8·n~U'87.`K9}v뛹JWFM2J_onAVp)δM)z3*jē 2ߐڮ\[67X@%5*,5b\gv({1U~Ex%+ ^G U.х ky<:aоb ƄeK[ݢrO}w= b(TsLkXӏ|Wr-aP@\J/)%Y󜛒 Q(2V3Ծ̯"`ϫ Y:gQc͑(@Ou24}5w ~K7GjQ,B]|I,"]dp n] cw)B~zlIfm145BȱoT,Z%DҺ׆\T\KN`N YQK],l }60jVCrl Hd4Ho1!OchHD9Hbؗ-.fKh_UN^bC$GՠOțfvх.yGH&߈c۱sb0 ӿ.s{Rr8}&Yɏ, &*fiF~0.$%Dۿ8H hL:NjTgPV _mU>ƨME}ΐڱj3JwLp>; ^$/;5{.9@+DuECńJ])C8:q|OS0ө `Q`]:,\iεI9?CHe -}u|zKJ&ђ $dTiJ99do*};J pK7?ϖU$S"f$7;#az8or&9>\LeV܈S>vV[_C@aoU(,\lC[#: 3*t\H8l Jh[lڜ'QHqeKb;qzU+li)fmkny$E-ynS6Y0XPH|AH$M׺b X@w˲ K4y&To D@ c$ _>]l&p'%V 7)Kb|Sz /XRÈYNWM>ft '8~Ư5ۓ >9(ulYz]^?37h9HCXXoRT Qߛ9W0&#+Պ0yAdy4X3"hJOネmB/s<=baU,4^`d:~C xN`OJZn.,j@Sd8}~xE-a9y)jY_➊oT٫kږ; 7NS[":/.w`C_<0Ԓ<#'2$5odQVRMzCATmVȱb1'Q^&T-Q(#6 9I._asz*UPD?k[tж̿QDZKeֵ7J0a^ "%?!cS4Uy0.Kv:8..A9_L%-(Mo˹x'o6WdD VkGA-jfaW[bR8i68KyQZLq3@5nOl1> ߚVVZKw_fh2.6!_72k|CL/rMX @Ka4f:x`?bii2tG{h~j7乜%Oh)a kF!]75ާhm`e#(HM)vifu^ Snϙ5XFcHj w?ޢ$Tmd3C%+у$ڲXo @̧W7;χ,\=&>ZNE 䖡L^tCxc\A.insxEk ?}dK6$oK 7C@LPI#Γ(/ (˰lHGrډFrVc*]K'{8\VsGz/YrUc f Gd ܒXj$6:5UP߁6(KҶ}ipB$vߦWBKs?qVHۥ( 3*"8mT]QO!B qD1CGO]PX70eJ9{ WV,=f,PA{" 0 hzwO-"HMf;$'p_ cN@h0ʖ${?;D zDYj3qcf-&fmnzz3䇜{Uz#`S%7RrPfn5f` q[6v?"y]~8MFy+䋄4H@GЌ'W>@̊E;IXٟQ @8ɪ>lLsSn9wbAUu.:*ҶZ{rh"~X~;tF]%:\JiX"Z$"qӈe[xU Y ?xW KY<勐XxTϹ5x|,,8&f&6@(( Y /GM5xx cB:'y9kQJoof.)w;+#?:*F|ڀ2z+F屮V^cos:LLȶ3 P"높fњ4 R.kvcPZ{rSy&1y-*W}M峘I]ߤĴJA:~h'$L@T4Y%z9m0*3/UvUE7Ï {b %R#y6af~8E4 %3ϕbH9lqpz Ej::pWz^&tՑjB 6}^? ֔1vBg#R:$0@1\)QW:R\"m \BcqYf#SH;u$4ULQ}rc̠H#ǙK*O&Aa*ܛF'#V#93UHv{q\if]jr*C$CPN1ْZ8.FV^FFt%I Hk=3lieRH{e#c*[X30 4Pi^TGoIdz}Sh;Bw9|t[ 83Tـ8FTU(e1EHSf5+ݏ l7m;N3BGfr~ \ڔ-ƭzܐLGV*+oKyV,T|>|"?h:lSV"O j]Qܨ;E7P1^3j?ӒR#M>8sȑ3(>A;T *N*\y({k13f~i!}'r*a46ev-ptȒEtdzjQO%56E= RIk-zzS Po=Y7&3 **>:.98e#R=4!H,k3znF]]L(-3@qSmZRVgk!n@*D7tW]RS8nmqI4m 3gN:= U2WmGFql}*Q،O*ir4Aa`>XֳxZ7~NȦMwOs12?j]8CT ]ߠ\Pg| HVs]BW έN9/QݥV#x ucDEGΑj0W' M8Fci@n8>XO4("aA FV1zDaZޯ]O+t0G7(sFOV LRwU|h`k/S6 ;p )N|?˚%ZRԆ74bQˇha=u0L7d8PNts n)HAz!#OsX kq UY|A3jhN ZݢAױಘҋɣ oO TV_/O[ۊ^(? cp^/i5c$FG.vQ1Qa8 |}=tעǻi ǼU O۰ҮL1P׫Uҷg0#c< l K)!fM` RwyEoEvF2-eJ[Y%pj^ESfWՑu`ӛ6ysDowݲҤTy+z{o)ɿ4i1JG­'ns  %6/1>tgrT!FIf|5Lѧ#KAgIPꌳz(ѷe!8,+!g팥ϼ'ͳFI!OۻUj5͒)Lyo)[>m{֤ {)yCv=m^]c{O,~k QFZрg JEf~p&۔Ptm'>ic jorv:B'iuLXŇ zcqiv0"^{c$LC*i#˺˫8݆5;IR^+R<-nzn&tz T +(Tέzҏ<ϐNVPnslͽgqzz8"|FzгY-JFrWn|9K_pC5\9:Z6hdtTՕ,"ȩjê G%) k-ʪ: ؏?"Zm"9$+|I˦VҠ=F$ 0kt@¥&5#=mz@G2غ7_ىN`Qj4U^x)aI7OL£l'j00&eМ8]5 8-}I"(ږThUCjy+bZb{K& zsv-"A'28Htp3iEFr3o <2DDv8;x/=Ww5Jt%BX=OŹij]nZෟU$AGLy&?0,83q%󃘄R$38? ڕǚIUWebx7>X( K`AbͅLYw "vPa Å)cu?&@Z|Ì+RQ I|acYb;2{ZDK.kMpѬ3a7-R1^|.:@ľgDQ 3j@ z#T}۬YQ T. KLm<: V7]aC„|zF!ښ{G.>"8 u[i}>7W2APyH` 欰kݛl7U:n_y+K|#@ ++jVeT5MB3*b ÜIg:N׺=AVfW$SvZ< "śՌ1k6^S]y.U3|lqqx]Gp^KaQ}4a}ksՎ_&S"fl0$!`cÆZ#X1ڟc5F\R̈ET xeU+\Y{ N>Abv "X=* ?z3l;i=rK5~)]D*H&f!e6Y9{$، ovDYv91DISR1_d/ITX`n "1QJOwG"5ߗ0GoU7W&,%ɜYk.ory P` ʽQZAͻRM0z2CV$ޖ\Z3c=cx*n#V`6 f`Xԏ?{>ȌHNa ]|\Nt*9MΟ|l:?1EQW:9`ScSYM Kc͓b1Z,ImTtgTL~ 6~])PpSPuuXxg@2yG3ee~+D!ww[yDPd>C!.wU8G g1,Ny=)/ 8~V \u<־ Rx$޹׹Hu{ dh#<>Zʼ }w:dRJ6O bO~KSxb6U =nkGڵ䉋 [Y`+3֣v^<*BKA){ /* H!Η: qPcsWU@ ҅!b.) W kTV7_¦A4 `:nN\ ;P'}^#yd'T Q<ՕW:=FXVk9B8?r5~hӲEkCe6~T杠n3,zLosh O'a㱭WT3~wV,D?)@Qڡ(t[ ߜC 1Mbq|&G2AXmKTu<ǀo}1t-ACE؄Y }T{^ilC,aZžIqU?6dߩRپ4^|fqIG7pL'\c~F_,_{\ř:qVAQ]#x@u%@K,qСpu9 G D>Cs$GzRӎO tݗ ;i"(-wJ/zH(FQ/{h4p; U Iu)@RwfTEF*OUX"[VzT\V8~iY'A@5iݏߐ %Mid]Ae9ChpD :H>Hs3|#C\\ïM:Q7ʳ*gr28wg3Z^ wBZ`(+h #m)4VAk}zُQ8Bq {(bD# 9er9Xw:ky&FiKOwygHH] 7H8ZDQp3yZ1a/C.V^IҥlUv1<- ctsjԎi{DF@.$v*$zr8_+*n3"fecD'>`QN5vIj{, ]:&7zCU\Duq&_~2,/&Ԇ˰;rɞէG)9q9 Ӵ}-^7hZ1t7Wo6[zҐiw9ldW$tG >_ uko' e!%%ßDeuC0aHM{vXlQ 'N DVC/] K% jr_@@Qy~X %T@ŰiY។Pm7+CO7v2(`P$\jV/`Rϡ|-Q±ǜLW4hw!4F5jTe\&;IνH)OKs7h>ݺŲb\ ;82?ًY%vrd@)*ZZ=qӻ}•-ނ9XVuc/֯xu7%D͸tbSهV2K"m}]BquX]/n`䬋5"|F!``1֫:O;|QMjIC($H(sTq$g $+) h4́Ҿ硏r,Օ`7̛+DaOH~m4 d#^\7{EV~Fw\HBUo 29OwOϒ'|lq}L9ȣ Ĥ0~xESߤv^,A*|&lf%ZhLI4q` =0ÑZS$FzM+~yx{ɔF}(%1ܣ$н'a3&-`!}A}=X&QߚAٍRP, +4B{]ЭL V;a_U/ȌiY 9MMn(Tz)+|v? _~t4d}jǛ݇mEnq)DwAi6#XOR#,8V8Cu$h]B|QKͣ^ۡ:䛃hy$mQ/dM6oUиG.јR8]*N>֛7 Z+ pz?`Xо%l,A[DCϽo7rdt`I7 %ԪQ^QȊ*&[JV !F?Z% XRMDG [&&jc\̖U֗~ ?1PlMzװPRK^n6[YCzw>5D,ֆM=ao4JN6]h3TÃ0O_%OeI[_ʔn2TiguM8$ yFYLҺ^%G5ųTc"phw~S洆7^S~|DkG*[+s (uO`U8_oN;dt ?8.Zcy&oXN6iM@-sx:u(=?) T3J_#hN |] RC緓b61z:X8/ҁeco|[>B)ld3#|[ .?y>ҫ ~cLA7 '3E[\0ޣ6- Lȏz+Imc0k[Cήq}w}b3\1 "(b03њdzDdCV5inj1tJE$5 }Q[ K=ֆb{(Ԟɇ'쥒6 86Ӱ6]J叿_[x a Ms֘.]0)tgPn(Z^nv&Cwjf!"0A)ĉ`X8\.x:N9Yr 6Y +'xkgcmNOB?%7x UB<9'$e˅8OXvCA[ܴt Jw'Cu1Hr2:܅>4_Ye9?Apҥ@lYR ^.?ɿȸKвTN}-6YS%lu_D v0 1BFCΞ>LGǗ>rKmixz)-2Y&q×JsJARbؐ88j{  U2gr+ (T15_ٻ~M'+Ԁh 0g8}(I:5 ק<a]S;K^L\rbA5|eC8 IƬ!s9z: J[eMa&:FLՑݼw#Df/ڶZRR(82C=ڨB^nSڶ#!% ӳnmp%Bh1g.)Yd`qqk5Na-Ɉ.ao{ճZ}/VbF)ѓa~6ShڵiF22u*MMMhK*77Asp2vWr.x[m>gBL6 |@%iy\Vrfou61QݚX)~Fv>DQ L TQ To;$:'t2.!/ugF hrX~O3C7B4Pl'f:[m{68wвmKP=P"tYccpLs:@buA68fEJH$~&99R_W<.;Ӱ2 ÌIUȥT) ḷF'dlCȓZT뾈|pxjxhu Fg$Y'wQ~Zo~Oqb3DAcLzQ#u 7P> =8< D;.(w@[) ˖_S hǚ{I4ڢ}-Ym,Ќ'xꩆ63!)U]Fk,Yhlp3v ɐZɊqNҔ*TA:u:v iu {"p PhQ{?e rV>B3P5_1 gU2\-#XI+L wX)n\qt4^9[ @'GpD5'>6@qѧI=n[rR9EהvE)^&r azn1I8&l``l!;jY&ލwr~wi@]AڳT|8޳S;LsqKe|\eaY 1/ ?Q]o#:wy+H% $gmrcd|9`>{Q+oZ}|E@]Igy: Vr a 9}Z(cWIh`9@0nfV^VHI0RTlݘZ;b*p)7 k4Y}:rAJx V.zW(dҸiʲ盘GC`wPfF2Zy4MU9+kcf-ʎiS9}v[1cwL_307TԵJ[^C;ޟ O10]fMo3d՛={T(g?M,Pn:La@؏,٨`?}Oriďix I5 Vp.s熠 L~[N3:7ӘMFQyTɐk-A]{v>J6vX ,UYbX1wh-XؘkF0c$OO@lOxIioCڣc՜'Rp9<Ϯ^M';ɣj*Sڨ9TAyh> EN+2igLz}C>c:kHMIX-q_,{zV2^El HT3}T{^00vmO nj`a1W[egdH͂LF1r)8!NQ"pz,ŞQ f>@-eRഖEmBnZ$R)J?G9pv*[NJkqkzأ8S.Ǧ wGetG67TYPLH]Nh"C~k1[+ƃ@Gމ'z"f›*zY'0hhDUldwcq#A(V0^X@ YNە)%{.AJo*slBwuw qx'% +]ͅ[[.yT9-*8;y@v@ {g3('9*Ka;_|MG"W"sgP6o2`2Z_B%,r3NhQuq8T QĐOBr/@4+3~ӤB 4}"4 <8 `Œ%l JWY;1+DiDiLh.^#qqveG+y@gHR>UTBPӃNS|x{>2GQ"N'r- j9j;B5G'Evfq K= wrOr1S ۅ ')*'A[2PQwɍ[]lV`o9\~`ߧ!<2 r0y9[QN)a~C8)K5E 9SĊd!U9j 3ZRȤbf9=sVDm%` R 9ӚGO?<靅ؑ@8 GQsd(|% 3Q͌e<DhDԑ`O|9tdN3.N3m  ]5Өx;4&-dSWν:Vv".R-K2V>o<5F70b˫_ނ֛I29Ir(l[YxZbȀX'vWXq BKRbv+ Q֋ʕ MCig}+~L~R2P/Z?XH`+SкE qE.kXzuA+Y=ƚ-rnCOW3{UlD9 FmkgG(g-nmK1 j7 :XM<;@E^v# ٔ&?/N.P3*Ɛu`'j:;_&M4%@a?jx5lOp G*Gý9RXwN(z͠è%\t 8Kq!jxJ@ZIOMWіܔUp_yaK38W;B07PCKdCM*8a^_ӻc~ u@xiƧ9^MR>8Φ$¥!&7up%Jiӹ 4}#&ԧ %BT3B}wY^6%ב',u\.w; 춿W:PJ豴j7c CHZ- iq$O "v4Y<"~5+{5Y6Q@^PfCSun\xU!E>W]? 1Hg@d"`My3ن}M_Cd$&C &F >cw&w;\<~;[gcfJ Mda:Nl5얅V%d*L D?GiDژv'q oD q1mBve+ڜwE8 E΃C@/@5Hm=+|[ҁ(9bܽVS)V..DeԚ6TnTV0@~j 'gɚ3a:O 92v]'PVPٽF|[Փ1}#`kdU#{ n`VKׇ+-B9<Gp{Xn2D#4lDvb) `7=?DuW0R4RgXgLvgRs 'ZlBxꦉ}`h0Uh-Ex5keu1kS4'+Od~|}6U81HObuaJ(ppVnЕN(ڑC}*g/ܿsvalr w¯(K8Ήbgo [zXn*O|2_]Mv64ǚuVѼF앒DcbJAWUH؃.5MXml>$Q ԣaJG,(ݲ{9(aaBܗr%Ʃ|uo }!qe0~,42˖ B,da|FĈc\]uzk,wG>?Ŷc Yc֤OdD7%ER(P ep26js \iK8D -DNLwr܈ϐ;8 +#k'Ŭ ӾzAk` " N=V%N2Տ5#a֢av2_l42!A!D| :- I//X&bj œ-"U7":0u "(Wq$yΌmT nV#hD| V1P,_hU$hlh:j矌?Zσ4z::jv ?>`ϔ`WptLzҎtxiCڈ/qK,[W ~x"K~v[c_=ͬK@.XcdRۆfKHUT0@|BOBufĒ3G/ҥ*Vg <*wq-A3.1U3t %<`zk{M#ĕ -lL|^\l%bgi1P9 "a83Z>5Zbu+ Y_cD{J 7!Z@nnb<~g-Bi_+C~J*ӈD:*1sl@! R$f6[oHڒkKn:CQ}t6 ?9%iwTē6kPD"*{ǰDU,si1D+ ZM]a@RGdde'ahH@7) 9M.i#d.ңKid9΍qjZXZ SƝPZAVZm/GViuWSFϷp9mrKv+2ḼYykH]=+${4S<1;Bݛ|Ae!낋֌{AC[k]um^fiA!1Sqk\2p"?'`' M;Zc=˫s]~2_fL?dɱ⌦:d/9ԉSN.h5SBn'Y-Yua7 )t)X+QEG mFSAG+ͮX)%P*|nt`2-,5M[xyL'L(+q/ 䊾#gz,[>poOٖV> B҉j:P:1Na5z-bVS=PgwIY5J_NGZM`+BL+w}' an.[PY4,W?)8۟a:MX? ԄyfֿVݪZ iY.3ΰ7C<l9 :i!Q;G0bGO[(3ɾ.bk4LmA3yfPe@xZ}$Yhe3͏Gy9v@ID ߶ZA[&OA -8X,XRwiHS)->0u3SF])2"j* aw@l~@/`fHMXh_wME䌷R)}0^G!w@6adT,7ԧo$^dړG:ۄlUciݼq\})|F#dI,Wd1A#'g-Km&5)u!aAHFs0:* rRApè'"dhgn #?C_8H:es{J& G!P:1?rr&&DDž@OO#>j"\iʸ4OΑ#7|z,0W;vd-{R"%"1Taє +2&zZwfS+xX e?\gYy_mEqzZ1u \BO.w)24eN^4Z-''NWLjIP,LrYǙO⹑5{ !e;fZF8p '+Vz%* MDM];1C-Uq9hO%s-AXʐH!x40|~L}?!Cƽ τ=.U2̡"YB˓ jAerMNvg ?]lnL3Q:WF}cÉ9VyU:3#7 ɾdPxw*gy6XF/c'qe~}BTGӲFz?;cpdkᔌIt KDwwG *I_M$~cY+]}hok$ Mn2GZ0V6 =hc ԏS(ي[iҲN*2dcBbiֶy&⃚V~uo /mf)z%%;.Jv4"6P9w!Tm@:ʝAf~D3ĥw)Sx~;ښ"ԭ{F;S;0ڈ/!,Kr:xo?Qp )c-qHMՃ#h 7U%*ax! El`宧P"@+M79ep\)OQʷxMbȅ2rdd槆;`,sER7=Oe%5\B"g)LL6cR:,|0^SK&cX*Zu~2ψ/:8Ad0wMT`٤sD Dk'>9B :(j&Wmv?\Sw6TgV]q<!:ENb*^M1'F~   RvQw3>72xOOJzm2`aWQ~CS9:HEzKAZH򍟗fu\_<~?~@o I̅Msvi&'{ V[tu,mƧtDήߗ> ] MH&5w eK7$a$V5ʠ0,)> }[ u4\J8~σ@hc>Mon:U@N}TdLbH@u:sƂVBT:CO'} /0-dU#m?|r|EZ .5Trv^ &D00uʥ5[e̝+ar ̳'`ç{ԯh$vإ*ArB- |u凍E|g4SY[PK&FnXL6s6.&zkedAjop]P Ҽ|pw:c蝸 |{y[EU6J! Amm3Ed}7mSMv5ơ#E?+ rKOsbҙpv@A%ԥ2=wrHp(E@d E'Qhٯ 9Ys:{-o>1Mah &BͰs}T;ViӠN.,B )uHD>a;8r#|PB~JE%%z݉LPP1.'q_iԛ3E<4D_ 2+ C}FH dATݰD[T'.Kk!;p`\:g8{pZl20=yĽr ]Д5ZB0~,9ܬT0S ǁYU78!@oۣ>z0ൎTq) z~_#3`}F\uPSA%Fo(Vlo)0EC 8QE&~> HX_wP%M(n.4v^+~}kأ3po%KdAR3RQv]`bQkv lj sR 4~:RDV$Ƅj$neD;^Fp -@"瞀}BMU3E،db T3߸?in~ h1HcIqˉRb\w0̊œ&߉OŐLrODž/-m<[Nz[p^E5ŧU+x|qvJ(y7ʒDYSȰbq r!KgaG>~) 0l!T[Qzii+>hEE_?6EV>d#%зYUSi,IfnxB4|M F"|P!`B SQM$.ݔpF>:3z/?sୣX}ÿ\_׍,QckɆP^C)>T7nPƸyW];*2K4|莑YkT)k׵@w#NeFsA`xU͋L>.溘}j/#Di\u}ȝm ѱeN#ƈMVHUM>|.E4g>嵱Ru#]urONʲϊVZ9~ V"3>gTCq4O\+?zbCpA'Z>}*"}SM9nB\hsQE#skSoLx_"*AܖE!Um*$_ijUIUR^:!~;Eh1RQej:+Fho#vobnnc A/f+{nIy|"~\ ߃U90̩ti>k{EײU䦽xG+Iȴm 2@XTq؁G qaAVk7(}P.o q`oєn u\#!|Aɴ)G )q}mm 6ò:Xy ҙgT4J|Yتn ƹwnXւMl#'l,LtE H*芉uV .*گys)r@>x%Ai:9R c[H0tn׵+uNყƎ&4EH7S"(Htވ~Z("{kY1s~FVC9t~úXL g9Gkա"v"*nہ*,$! <I?\nU!&6;ѵah6Ir^*x X KS'JA޶s0mE/@3߲ O"TzUORw;\*q]S˞c%Uwgbٙ)]W Ξn@̣EV\G]' {Fk a:{VeOL‹xpk ktߏ2@ǀKa-(YfS.qW+MǗ]%p<*A/ fA(|3zn-i\5GF,Ci*J qiHznan*5j N -|f *}%boz·Ϧ-7PX'*~F yhޞk>(wc]qLm$NTü p '0fxqDŖ=bguKF}",5oO>yz8N_Y+#R%af(ɔ!&Bh@fR̈́3挖 zy>: <6n7UoL*R}CyY}\vgK/h0Xԇp*$;yH$>{k?YTY{``1;w`+w  ҍ`:llV?Vr;f4HiŎn|]ٽ{SfM;*3Ovn);)2V#4[phǹGDHYzDۣ:: [?HR?yYǟ:]΄XdSE9SI`Y s`VNŬ^jΘ>ֻd^+$(yE&eZߞux s?9 gk.U.֨Ib[P>[w,Cl!$ Qq!|'FߨWT1v,TQNbEM#'.> Q_NN7adm!^cKXfcŴ7zF5RxeMFO:E%\]w~D@ŒX"9]?5!M^1 y*ɠc%Ք jPPx?1 at<_KeB&weGdh ) USo+\]V=a}cRcHDƭqwfEZ%Gsl-= l;d8e%^?G׼yAe~m8D?I:{r:lܶv4z;v]:@pWTcͱmyeXGS(rzvlߵ\>ΝdÓˬp TYѽ}}4 h۶ 7f ( s%Bf=9?4(MgS& Gd*/vIq%f. g 69qV>(a409BF^U|:ÆX@X4vMVmc NW^Igl ’/҇'B<6w-;PI$ȯf/:x=g$wdw <`Qg0l7 9媤ڔ3O\MlWX"' C_G[+BBI60aG!;~}(k'fC Z N(|6`20zZcl3߫ݻgc0H4`ۣF)r,%2Icr?r;4,/Xu#~B+y eZA^"_̕LB <$9%8lJ}"#;rFR]|0q1\FM=X1/`Η)hf.E{-Py)o\6"SH*<js؄kv5oAF@ 8 Do Q^wIݬ VK%:d BwFM'ʁV8QL[=+Ny< V>X;9Py8oWcxr8lc2 7Zyv !f [jLȄDq5TN7{^V \DXqn8J]?80gGGp=bU~bx0 A.UI;V$"R!#+. wbbW!faSq36 ˬ ioKOpC_ yX4 QG,ei igsv7TLs

?[aU[`6NwKwߗo^>]ցkJ[^DZJJ*@a@r*zO''M|F1nA} PY*¶&)kϖ\O(Z]O8G_$Y*!;pNP;þ!#\"IalG!J$")wrh b֎oޅw-{d1Vdp!m2v{AYJzp޾[n.zJ&f]> oBh/cHa}Hgɨ8~f} \Tv|Od-#c Yxwo;>P{K shQ9:0GEs˻eͪ%0lR?i,ٮW:\sR?d4ȋ'Tuu{-[sԡ/Kc$V×dw:B\' zcY"k5.9& *F!Z5c8=E%a̾a9C&<\& .4Z)|> VgS(YNnl>`Ϭ(.^`\$%?MF|i]XQ= 4v)pv/ny۔ќG`/9>|O$K~K)>z Q̈ѺDp"o^+wgO"u@eY0.y=_P,#C]1k1S7rYijaE"3C|rmW[rT=<5'C+H&e'>CO\P[[ /x1:B2j*'c~Za2Vs7ni>6JM% ?Ln[,I;bv'Vk}BtDlBH5-M-oM T'UD qsD}F`kIq5?l+A{dږ&(쵳7lm?`39@f!_Tg۲1el Bz9h1Nsx "dO NMRgqw?%]R`(c1uu54[6,)d#hsVmUr MYH]!gb''$AT+u !=@Z-^v쵿 l&?U`81U;岮7#M(/;@*^x@[vnso%?b Fh,Oݙh'/k5$Tk}Z0q θH+چ2?zhXxj!D!s-UycK(naR4\\H]qHtҰǚzkUOebʷ`Ñ MI5 wLŀ#gz-ua;HeWCjzƟ(1 ;i$lvW-kGO|7ɚ k6趶zC+ R Ԏ1|e9Sf"dJ[vp(NFB7 ֫;tq+ꐾϧtm ffWrZӪcvydkϕ[2 *yCLw ΁?ҳ0&KGnM[[fI] ibVKn"U0fVMz x.;` :Y(*a!z޲PӶ%  _ d-յZ~+Q 5k+ہ%@>\t.^fkv__a?L{xH~ڔ.:#Ey||ܹ(>~l+qGݖńΗ<XPJˈ<.[ j9:ҧA?\i\͐_7r:GMXQV|g"O6hWCU @uކx:9W*ee$*L([YK.]sr(c] ‹)VF,}$)\؈uj@xF*`yAXG"B-gzJn"Y)!i95Qф.hV$6^ 5VEQdT sG1lxYaa%ASo٧L%kUO 7LOngU'a֒g8;c 9n˱wVup i/.c9r\ Ck(Gba t3E>_p'Þ>Srسm%.enz1L,ZJ1Lw2G׷V8"E(* jDƼ38`I'M\;-G14(> awI2:|c+&v0/~ϼtbVZ @v1g›{|_^>X1T+A$i%ӂ\Ӱݹ;ձ:MLYr>DlQ+>R@Tݧ68nsT ED s\O-\:x³VՇ&1zHo;񁾱І}E@"j}JMOLuy}.3.$Y!+hsؔ!Q)ݹ]pv3E,g ^В壒PV[4tˊ &0:",?ɣC1PP+I~h/OV}VqٶgCNm! ߋ"&eF[k?UD?=:8쫡; 8+{v|7hStۓs'_R|Y#B (fa&| !Su~zzl:AqK:, <|P‰x}zT$ڷjg eM;_=ȚSX?lӀUAmO9󑺹gnjNA& 07`y Ai6Ti1,LGIYYצ/S "ǴD)5$!+OW8Y+:jcGR|bKv(J%1?T{"z:˞&b?)W]+K-#cc_bڦG0ѠjV}zN"=gsbvd:Gw_O~y9 M詺ScAm݊}`u^r;X&ǁ H@Hr׶Fc,2a{?{LoF2n+/B"*gú %`L|B׋js`WBr") EAιoBu./"N‚xQpV (R;GCz(a?5l}|Fg7\٢L6]~\``WI_B< ?!mAx΃kHfxlV"+"LTODPXLЇc Sh"yVGT`7LY/kpqА*`xA),O(Z.ve}oIg4'"ɒ/kC$iC8 `XDv8&-Vh(URʷ&dV">;CXUu[S5AZ3LDT&r~]9\E;ZyR;~HB:@5]GAWkJ]5B":  jj}6:x5iG'v<[tg04UeE(sd{{/spɚeRD|z7Pq& ["r(h$܊P"T: ,gk٠)\L :ae\Tf.#!Ms2qɴ&oj_ljo\ bs)K8VM cW_Y9sXH@kh qniY[ˤrcASJaXM|렜 < ; ދ~Q3<+,dg/eQj,T()huNjRC^!q9@ǔ"PpkmFW"cܜCʏ$ iX򞫢ߛ8D@t,@~_  fl.QkVk#%eמosh]ݺ,/Jia\$߹%E[8dN7oh7 :hWUNᩖɬ_i1o ךԌ3)420f\1X+{̛lCduVow Y0?0P{@pdޣw u/t#\7蒽{Kw~Py,A)t eq%~\f {ۤD~d;}!3a)"!)3!.)S`[PͶL/p{YndEwgZ~1g.aqj:K1o" $~Lfx!$Fpc]qZV̞ N5.aT䍤H0⫖ZA~ SU R> Zj~L<5I'Y!< e PHQeeeZvahA U@שh66 5j,O*2nu%Rmybը*w PNKzWWŲ.$^׊R=GMf jdIGEW,nmblIb3NrV+dt`"eTuoʃP4 |;F"pPIz59a >uavQW헲lKCΔh׍X*'j{:܏8IΦՑb6E>ks(LC6͔\ޞNr%"A˳O,6tƅE@ Z)MT딴^d+LȆmϐO&mP,:]ql//W媉&qٌxXqϙ?N{'L<*97}˪+8{Nj~m;]CI@bQ6[}oIӶRe ʾEwΡun' v-Y0? VQhofS̓B7D G44rtiVg$rV?;o[o {0z?>Qj噖*^3.KX(ї=3*%)JBҭHӐg]x7jM![/0#aM@"s1:߅dW {qڨ/ùj6}QH *!~/^ WfZ:2(߱}% zf0Y/@3}Y"7|gr3A" ֞`DRMVnQj5ɲ|W![{g=GѴøF_i'G_&4اb\ol]%}\hMA_0,x5yE2t>ҀNZ3%~?GE-1"JFzDž%V#F5;vXԙ| GjxYZDrA{(8_B^螆J&*hV4ƎLc뵟ܲp=|o'>αل0|cW÷ k/| "j>?+Y&&3(R l\^E 0b(-$J0(M!=Ms@dMŊG7p]W4&SN[1D MYu/j"%OÁ7WT[K;:V9 51B[PFS|䱄+4Q̩`49X'_CfowĻXG•ӂZb(ߏU+3tv3 -ks/[y`rD- MkY{L1y>tꞯOOt9Pmʎߏiɿ5^dfbt2cKQHӶtHٳ #pk'xxi{(i}qm!ȫk7o~(=? g;:4JnŻt։aZIR PyT8=&$>T@Yՙfl\7q&Vaw)UrTBmT PPB8~H 4WsQ>YۨAZJrM=kM#u"04(DV#7]Df meM O-Ddžԋ'Y6)|?Bc t&[},4H80fy"\OqȵH,nd=#DttQ*AxrwCu–dV*ыs>I L)ZPpb 2I:+o({᱒ &lϰk;elM3 kH)bV7pan2~ˌᯨ^"S #A(!6a%d*LqӪ(ژ1jt=ׅ SԲqq~ cGP& 'eqI+*9r`9T m]k)?M[Ʃ28dG7dRhr=϶H(fp9L':|DP*YR2/aTV{ ˙H ,+ғWS@j+U,#pfʩGA7 TH L NDv-QvF(-q@ha7 AǨ%jndWT&\:-Yr`_rZBTmMX`y:G򮊛fCg5A hNf@< qi2e`J;{*K-]swNYu[ =V8^ H0*74.@/AbS?k}mL^о?nžѺLV吏3.%aQ~UYG7s?:e_؟CmIJUw٨ `=8}Gbzjo#O82{`a|zUԥme{(lPu0J.Kةϵaq<8D!DӿcV;":tչa┄O<Eb}#\WO C~FP|,qÖXR( ucyfm]bYwI̟,MKNaM6P/HV%? n,y'o+Uʍ ͪ}%3(2/ĜP.S>a%ۭRP_/GS:I[8(̭UMsDJy8g gLxī' J\v 2Ens!cW_ =R!" e7򺠕4|<}ok$= U95վߔE~L k{3Rܰ mxQ!z\#*4% PgyHj:kfKіi+\gx_!0|!Vnjݐ-E`;EBz Benw[wj反t +Qr1@f4X[{uǤ'إ@)9bRӁ lb%j!߼@;LN%KdwN{Ԏ@F[)CcqJR KE-Ui5U)J@DV@&mJNQ 2%PR6Sc#cl[kVO'  !N#uJUm4ao@R.)/, OQM0: %44`lQ.1ٚIok!=A׃6uN::@M9;Y!3A;l۶V 7Q!X-VFAA4J!XL>g)%+;|it:S#q @3ӫiinG@b{*>%OuI{fU~Awڊ@a?o雏ùY )0d#Ml5Ea%}S=J%݃UCI]Iϐ6PO@ 7~Υb?GQQ[W`AGOnPV Nd#/(bϰ@'d{yȶK7$+'γA2'r(TDžz""^o?5H" \NOStwԙvk0'g 8<_SbGմXWm!^Ƹ9-3$wWC:*ܙ+ ?).dԮXymT}~'|XBdGs~uxY%zB')nմ 荣G_ ҍ?: :O.A I6>|`8>f^x-ӹ ZA롁g`"ɜƞ]o !Z;IRoqJ֏QmnDDۃR$,x%XZf׶*^0z#@7lQ' '^l2:E2?d"S"%:}#A(Z}+XkAy i>m1/K\Q[&mYp9$|kB5`O%c o9'9_'&4j 97?>&6~8?UbAyf[ ]W?qf^F"ԉRa|2?0IY=1 Sx^G1)j8L"Ӏmvot~;xBJzmCIEU~3aD 8B敧?MSݰHZ]q$F30/Z\6ؽ5%惑QٖL +2@${NZ-B6ʴRʗ?#z!7`[t1U4!9"Bl`J*W*flyԎTMT1]%|<<1 z/4~0YS m3ApZBBڷTUGDS J-ѧO˳GtG 0s< 8LZ[ FϺ7swacv6/77 4=*1FS%nWȹZEK_ ln#W}<ε2r} -$[&2Q:i oPt)PFSq6R,yZx{I+P!Rת!þt=0!R19Q5P}E@Stw?:oPÍT|0R W'yӒZG(]p6-z7$YH}d7Oyc'.0>Q^ell&J @2QrƧ i8XݮA-3DӐ :<(>L1e37¿!dH{!v$&d/]To5l j]2W@U div==X nZdtX)HμV*tz JJ%4?w8oϫ:20+,lxr5-Z_hqKzyL67>'0a߮a01TE^HmqSᐦ'(.d0j hxUD,a6BOP;Ltߗ km%,رfiǁ%-䰅f5eHzv!2 ApH\zమvHLbB[.]]0=ĵTd@ljXcX6  5jeo%cJ5>0*.k %SX ^LpzC7Hkpϸײιd H:2=֩D單XKVo$QZq+.R]3pн>m>WB~/VuLrlҠ%&e/#NROáSm6") kM=pZA.}( i6W dbU$۪Q_l H%[U9@M*)I5J BX[Fo]t d;p (ӄ̔RJ%Z]S"HC)]e<{Q=mcRwy w34Xȝ,IH_N@2>4[|ETQE0W'$nЧ1à |h ҩOv1Xn솋C e +qZ9EBFuˎde Wc0RRn>O2XK̦y3yzh?!6;+R -yxw)z~/jd KŶJ-a<"dm&aZ__R-@Q[%.$SX4(iذҿsFE%SXaU@v\otg~+^4ӌ WFX!wgYrczEq\Xыlڙc:)N@n~ǒZpP=' oߵClx{tߙw[&A3&/8:ɘx=X7ѥ2wxmYPTw$ i)I[k[b?#N/z.mWW }GIVp:8ϻҼxLOLJO_9!Ѕk+(]4=;8NBx?\?x=5Sbi6a (5goI9==~I7:kƒ}Ŷ3ƴ _E1Gzu/v2R]=@uPC1t-΋KCy쁯iUgeGl|.ѐ?2WH.,qM-4%KUָWWF')QnsAJ?Km5ݧ4Ց1 G?q/qeR-#h%{.Mؗ'g;t"l\Ya/qnڅ$J+ ?Ghoڌ}Q5u?G֧oyƊ%eBh&2ԸhL$ԿLͼ**wfizÞbʘ X{} EOTP g'Tc-R8բu q:?PnԩVPqTB U(Ϝ4Ju z*;=?Y}Jx6eBZga`*wJa]Jz)vU#EzQ}%-Ntx$N߾t)?+š2*?lK)?CTtҖo,2.$[ވ5((z%֦h\c(L;"[[f3Ai\,$uewXs12H"kԑՀGv4zL=UR99&VzF}`Yblc ܙ; <eR;'59L>yh"b(Xi G*A]lp_"06zI Bj,F/)Zr6c¨M5WQ!Q)JUvJ7|{fU0o(6:BOfwM0< x#yx'n%kGtu!B)]Eԁ7Xq gc~!̘[Lo/*(*`y]#^Z&؜tpE]uN!9n@aE%^34֛0|ǎO-ac#aRx1d wA U9=jį񈲝4"*YC4Tl0B \8¹Cv9JIu1\ha9'K' p-vD r[G$IruDEOq1gJ=3o'"j0hm=nɵڙ Ǐ 4G6nD-fQ߂wԷ:}'Vd;G8u\ah<Y& ,Ijrd=Q84( .!ZJc5ҠAcn؂$B3.97 r6S-eq0Aig`ż~({p!_{˔$U܈:c,7Z4+ Pdх75☊?$6{ƒxd;3Pܭ6Dӹby`aqGxK͐R|hPu!iOw؏IN%rfҟ mE:)z}Fϵvu}<4|9XJ8H҈7mg&f;Oس)f9Vqˬ#r Hf*3' z0?;aJvjp: 5x\p'֤Y+$x==qԔ'aY #%ϊ0M5V΁a yawTM2^^WEN_dـW!V)-(CKJP>0:LoK1iCӬO#F)#<+ bc?/5u}تmӁݝ$==̵I,D''TaMs4O]p5SD$x;Pj*uש527絔 tEȶ^ ebaB%7 ^o}m-7uY^JnWߨW }LQ:6e {Z,,ϥ#[N;!K0k}rC$[!+ʣӚH''1q[r;lTtYQ;dQtݓʒ38Cp]@;jM=,OO׺i\֞.{v5EƙR4m&/Cm^~(`E74isFr7H;wԶf*f}:NRv"%T fkwQ'L[D:9q cm1]7DΓZ^Zd怰Q%Gs<L" 6 p; Qkb^gɌe'&7o7H+řjVQkMzՖ2cP4 l@D~iX?U)gssfPHQctR*?H?|{[MIFB\Bx+{g-%&:4(f^_JmQZS2z{!xo[k%׍$D3DgiSD߾=518 d&RmA/A}0lLBOs[wSՅ#l(kZqoԃaN,=w:Abj55)Z΅wґ= Ꮸ,z>iu !'&V+F-$ /:;KY_šXKd3/Y -L:a)x1 P|Ft"P+Ьm)WA|vDu!3?Jz({Cʀr$o"STKKS^t:3/e;{*jxnt}Ԙ\RT'SϲwEI0-Db|M~xoď`DP5!p cpeNuUc[Z$[f%,D;E+-c䰯L| !4_ /~*#;`7w)˒SsrO@j-L΃ζӴh6$fwXo\QU"`Rq|T3H~ 2" "=ֻGM +jQ}d4OcNznR3Hsh kh!c?YlY6v{AؔES.r{'cbkݿc*niǷJH8n"SIh+&<]?wvy/vCKW+4jjaf%~d92ښ3NHk?>7#dKdvvp9ԗ;Yt{N=\UlEY!.W!k.T}f!aa֟7HH¿gY 8#Zhc@CNI9r9 |M2߆M#!J>bC@.[뤆fHAhm w (Qpg9pe~ok2ѓlG2V@@=\3ܰ\VYƀpl/pj}p -L)m\Hٱ`B h0ZElӸS&d"?!ٲ]o^66x_4UD޷Ԭ2c`6on}ӵ~}{'r{N:ݢٴQ}T4Yz+>{(0H@eŵg\;ݭS?v)!n}r> CdaJ+JSf) ?u{Ca]#@$DC+ubE >qV.!Nq6&꬚h&FQr ]Hr1>H}Vy. 01>*5xܷ qyG%Ù{ aVe5"v*d:j8@ռtr7dʋqj)vc G:73(6n!s)2D o#4tP]W >Ќ$`4&j3˴*/hPˑc:w| W`amm1f>yaKwm"s!UZNwzR|'BIAO;>]a] o5`}J=]Si9q~sYZ*sUÑOw{$6к( NCS討-M'#e3g*]"}z/6zd.,?2zw'gY2;_DWߤPmON C?`5EHbhxKM^Fqxoe IUzUTҖwsݔLT|BAs!N`Co omĴPym@ˮw2M4[?]ΜuJ/i:a-Y-Xs@?%N12 egEgM=bQ"Is= ׁB:|#), 7x;zQvWevV'-[e,>;Xpv퇛6sLmŻoXR|q毖$n%=a+M +4 7Za'wVqy]ؑʱ=>+ AC՞g8#=(SxE{A'mNY]_zep˛piGˁQ`i6q4GϜ5 W^7aҷ7hHo ؾiq ¢:Ӟg~v.t{XLA_ jAFSLpG,wo7Quƌ8טQᔔh`nSFLW_W:8K ov%5oM[뛻,z2+\kmW8T2U`KĔțFt"a[GrRjK2ju: 5H[8(jo/}+ǐ8OXG @G(Is%{%[koj5b>q{H$AuqJ%{$Fs/ffctb8Mɵfչ1V5MvwA?=ׂpv,:bkpHr?6(i0@/6˻ggOGL/TP${!]pP}QI|_Yp*T@ƿ&/wψ3vH\RA/e-W^2mKgYyة;~o>2S o4 3D~jϥ:rfH$[۱"F0; )6F=ܥs6E]Dor@BUŽ\ızBCյˁ_e`4v[|!GHm9?ExcDφ쭗UV+I2YT+%gxg8"6DnFW|7qhx=0v6atcUm’gHí;'<ƏBZOq8 pқ #W6:s.V9c]X0j eAi6v=JoC_N dM&iAS5)XҸ|6_^A 8(y+y;- {Ms wy$Q0Lީw*T ߥPJ&1Zr=S܇8=ƥsG E>|>F=u,\#[oN(+Β>|fi}De/biMu 刓Z)BWhMW 4.B % 5rovC2䕝4 x"pw'ӣ4Au*# RXr.Jܓ܍ѻ>5PRcuܲ1i46x^}$8, |w GiԎ"t\)K-K@@蚖 ⽉qh+<>@s{%J T|/(UfE)(:Kliy^:11ËK՚WoP7y<^U5̴IQ~{m=9y:l8Г=ϴ1ZrPd)ݗO[5.xhVU|(YVi|U29#~:FRUZnOWo]߸ĕ P01m=gİM!'] t+ [^F<2=9I$\0ݦ+ @|#)5A?#.9j KyÆ`nKImbx5.F r 7ߖn*)AҴj1e6m;ꜝ~$nmps}#{;$-1 õl_$h޻AU4Wq[UAU$O*?S A }+T`dwz0٘{C] =qAdW|1e[{| @OOZgoz4|9Nt5䃚9Z(%6WKO{yiD 5tnj+HUW&Qcu ͊C9%c`@k6Wܪ%x_}INID\T&D{ABŽRGm3/3E.vJi% n=ɐk/,e ,n;¶mcw॓9w]gԑx۰&?|^([ kS$#&pk_t@e8s /d?z.7x}TyΣ1 R-w.*nXo.^*$cH<.:I}Q丄:N{0Jho<v?ֹg9ybc5"<.5̯+ I`Il~aꗞnB} U.4Q?(rbTY4Y1gu oU9AQ/'M^Mn -:shywc5dg{e_͟ú'ap R+2A'tVvd2jD0}릫WV%Jy]-ef^Zĥ?ʭ{9z(fJ >(CyYL<UX#6_sz=8nLgMx6?q hecҾIvp=+ @au5+|ae!F=gE` SZ@4ƌi᳣eC?H:T0tc9;u٘ت\:yKj_bŭ[^@+lnǃNwhUyqP"Ʉmw)!{E|x-9qQCJw\2t2-C^]Kce }?Bv+o>e<*>ND{pL=3ľ畖wzhYx@L/m. ^ M ~ۍ<Ӑ6!VJ?V }1 fh%-jC nR#ΈD&62qAqApDl Z nQܫ$XjQ.s$GDHRvv@4&z%CR'216,*1 'yn0X/%~ł*1j6QQO$Qޕ U0ﲼc MOqב} (S ;rGRA%'!¤hf&`lEҠ1(#kʘͺ~'DDJ-T2ؗLqs7iGW{5xՋeyI;6R3~G~~DVNo,{}qǚw3ƷXPM7& c/MK-VAð"]d.iZ?on-1|]M׾pcUPnBU fm)]*ݷG<_M5ϑ$"#&:A[/䤪=<#XT9lg4sK9< P`# $;u6)b2;+!k8TLQJb6 H\2.X%-(GzuMn&2p貵ҥOf_hߣBݏ6ðI+>trXWjK9c1jE:T2$Buad u_zGR[P-0>аȪ r8{D/JexE(r2YL5yV ?u)0h zԵ +^d~B9/LM@7)&RO6F?زh?Huz^<bۆ 3| Q|ܦa $(о/e2~(|͕;`̍|[r0E7L&l0ѣ*º?ba45wSЬ̌auq1*ӇfFLP'# l@wո m~2n8qnUe~tӏK 6 N,.O^?1Fz= Lf/_B6O˓J-W%DϦN.D\h酩%E,'ttՉFfV8 &!]y8FE^bwG?(23U|6ZO(O@ HWdb1KVSs@gQb)O\{H#bX DP*' WG2NjWo\ͥx+,E`A`b%ƅY% Ośy.%/Ԝ[2ugHQ1 OaD˱̯r:[ qVH!rd4}6 y) B-qV8Op9 O !oԩ]W S&kޅwxz |~G=ef+8^8ua݉'Kd""8wGH<#fj!*CnsY&]9> `;|:Yoev DWy^{ @OƐҞjd-Mdp49 _&p,8l#&RF{ D+8UGqou"OK|bg@ '-s.B`tc)$PdsKd3C]O:e'>d&nJ##Hԛx5i$XdQI4 @tfÙqt% ) vH/e eIsEBJ =ͤ+46dF(kHqjHLZ܍;-zGe\X_~N .-ko4x8uC|6cekdx|IpMiq|ұ[ Hx|PQՙqa$کƿ\&bvA٬B>Y3HJ~dF')(-&KT]r%aZv7;F dfgH[ :^7׉GzHJCDV8r9Ḵ2H_].c7?ueu+H+5m7ە\9h1(zgtqf=Zz}9o1CfwW|݄W_?4AdmR=Q|vWLm)5|0 \&S},T)N}c!r,$֤nJ~@*p"P+$*a4:n:m!s B߄nd)϶al@,O2w5_ɣ) 6ͣLZ,y&ȌAǹߑ2/l&u|t @.Y6mu $LEì!8`6U(q_cD/7ǧ  nL|C d{M=b}_,8BqHK>3{f%ZkH~Q>e7نEtsJ*8 v֓I ))dVgJuWhH"SJ1m 7AmTVGgm)ZK)C3}L;B "dmMkvzc}hv4zKp>6Tυ9M$TniugHxS2tq?# k+%w+,zX(XCa[;:ln=k#Bay0`` W\a5|boD33`ZyψxHNyޮ1Y03"۳|8^P4o,YC+MڼA;_ WMY9 Mlhu(Qځ?N{ )vW >Ө-Kn%E!Ɣ.͡|('d،uX%D ^*hUc*܈_[uMmpk=jo6H(X`ӕ`' 'N=8<_w˭Db֤G[BH R{)%WUJCl [Z&q@n:y }W{O" RliUC.O}E{*lY#Wߏ`J=\OX2фL;v^΍A50sAdBI#(ctC{]v EJz7QzΜ{|K͹iSz+Dt:>{: Zk ]7GfmNt]ՆuثNH|hq\v`~0Iu( 9k B+$ķr!WʀP+ YW[zak3y2>w_wE/,Bd 5P-`$uxdgs-"n>1HMGWOL.j mMc(Y WZmu4kclDyZca{nLl[L@5v0-!0/&3~!JUY9 Td}  gP? 'dQnaRq^dY`S.L5$QE+jŜ @by]Btz-lE*@,Q{w̓{9ԆPm L W_Bϕ ݫ>vW—zvkĪ. ZJ#1#.+Ľdi+?㩁++C>pD,yDkwa*+jV!h-xJֿR|l( \6P-=c%V?&W)"L9 8/y}bb,F5[n ^f.fpٙ(h1Zǥ׫z"Y ]X6 d>>u2tP'pb?0ON ~TƖ0HOZ`pwj1$]<ݟ/j ӫneo4L%X@bE%v%3z4$Mn(Wu?7Ku2Ơ&u}:3T ،+aGFJ %N ha7M9F蟓:)Ϧ'^>oS~n[lǭӌK $3Jj9SBPcb˥&32\qsIh{ħW""r =|GK~ȹC- C&6}6cܭ))IJW<):ȩJ-U*?(bg$0cǸuc F*"ٱ~T^|pC סJVShBn (;'=7o5 17⩥{X=CupJɚ^ԹwX3 ~Thxhdp6wʊ QLu1A)1]OԳRI >x38(M&`O^gJ>3g)w_a7 _ pb/^<8[-\FAǯDHrcRLJ557jק#}zywFմ]Ljwa!m]lɄ|Z\ \$?"OBYh[3k'Q㒢֏ 1_~Ewm豀.8^CI0ǵ{1(zFGu-HM@:.a iv#pV0 Y"jYLhZ{0\ :?Zy.p^}ݧ%dN?iJmsCY1ADTF3LF}C 39hG3ҿ$vG `?qO*ED0|lZ[Rm5{4t 6j6>N. rqLq'6'G+R'$T.>Ά,JB-ʠ tȴ|YEo0Bb8hn !#4aDN8e88T-Svh©KGE32P9Q j!gc#3e2r9򏆶=;)e4q}8`1=sVw Ɵ@t Ztfh%_ٯxF2*䊐SaKꆜ,^iuzċ`E%G§".;?.&*ilHK/ ͂3D|f_51Zi-< I|5[5p =ԙ+iR]X И2k"vf YydwЅt%2JE#kQ& ۅ 5*|R  O*}dוo煄R[aO>t|[t+24Y4t,kb\iuK \s40;uhA@(K@wZ޿W?|w,oCQl~M8Xo%T"_lX*@9CgƘD|v/ZHA8pKh0svR@7 T6iF,J~k`En@g4*gOP3_#*"g3yT#rQP%c3fkK'Z9̣}.kAI@яbM.ƍ^J0Kyҡ:m1jrرO:xYى#YZUٱHE o@H*ZS5He %3 ϤzΩP@ \ȬDWMvzioU?s?q7]^[ӌ+z=I|؏ޜϊm>rk3ׯ`\1b {$9M H Df xUOW/ntb,i{95Wp EW;'D<f'IIoz_LhcJWEneClߧ(곙R2K&ӵ~.ί_1QUфgRJ›𸬅/gnop>\(aoԥW^|bT;9kƪDD5NLl5@c]&I\ymė/^O:YGr=p[s,L sq(ӔGv>{ġ-K tqaV6`ir>Y( EP_9?H]'%ש﷽V#U‹bDD1>hMay{AUE_?uQk/0z]C*̫{vk0f4j0DU%O9CkX%,XdA-_1uMǶȖFvJWrԻɭ£yP(8ޘPvQ@%n}r\@)b!AlՄ>V8ˏ'zʉ<{8n$EĎ#gV ?QB1!Uuho7T)0a뭤/vXm: wAWPغ=f-dc yPQu" K4 z$#K(j rP;N( D(+L8+F~2]qgRGRM3ΝD|@gsO# G 39 KsI~"̍2(lJ#]r-eidH u5@8LGu8!('~.q ߶Ím! NJzr>sTHg+'P DlUFJk Rt5,⢣`7"4⸦._9Mkz*?4>`^vOCCx)EbtҖ~ziD|SU.Bpk堪K|.fGtn6Od/z3"8yPo-vʤ EU;ՉP^^5JAIX蕹|RDKb.&HN >fX|bȜoJ%"D[p./4qGũU74BpMu@TYe•O.r}2j<0`#-fnuP)u׼͙BaLU?l`)>(0iؑEY>/WVM8k@C1WH`NzS+r"2A2,.Yg(ޤqZ, P ʡqB>0y3~׼أ}Uh}DA Tl>Uqo0 x1i ''pT{:ma%[k뺥IX=𞯪20‰Q?f"g\r_znQKA~k߱!K,(zY;]M>? oi^x(5q.G5^r<-J%4-jim=<4,"DV XJh.UX LeY7@|h603ґ ьElL>, Ο$C<7`[&. 뇉g$J)/ѱ0qq\2Y İ"gs-`6DuV Vs$B%DY e9zU*LҲK 4k|e|9}b51н2zm"7eH1ɶpok|w֥ZXI&4RBecf:->^?#Z{j},{d[}8p£%+PJ,\N #Kdt.zwz0o1c,)%ꎄ iGfFO MI41 #hWQЗfuˈ,;іQp(ǽ#s^Ч =j=Xqb\!yIw&//?oIK-r +ucQz\afJu-x]Mfe1r/7_秗&GbIa D];=l=kJR`Kv4$?(pO zcڴ4vBPS2Z4?~^i/C O=wzݹ3+ kS47ڌr{ ƭ6SPuя0)5sym0*,|Ў`Q}s}6gY /д @)sӨς Y.̢璸=Z{4K-iʐgx^S^VY1L#'ύ)kڶxMc9 ~^Ow`C0V!:97?k^dHE:yns4bɭ{l,K44!w߰gAmD=noқ:Yx4I]Ạ[K/+?~$@9]hم l*[p.e"Gر}B8=d-`ð̤;Tf27W(#O ݺL]ݐ^B/Jqu] έx':HɥrdHV4cZp"e ؤ5f0D6oIiK_pjEW^pSt"#ކc  Hdm!ȒЕ[HpkF 3 n3~Y5\LCD11KsULsXEOJ~3j[Āҫm2e)D 2T*ŏv9<#'pLTH,oɘ|@/=Cl@ZeC5@zi%8"7Y;z~@_.GLL<nnqX2VjF]ߚdB] K.cڳ3zAl3HR.!Xzn3!!Q4VP朕퇖Lf4ŏ]s-u;MI멪[;*m&Ҹ$.)Hjw1O l=< *ǎ^\º{íxkZ;T#BcPJım*\D\T3޹NȲ֫Wvejc-ڢ!UD)~)4sruOoCNoNnp*ԫ[%6 z]j^ڌEXեYJ/hn70#c&q[HK<}"l_g J۔[ ( mW ht bZТ~  !ڒ}!Q{3O:/0ۇW gĞB%TFU雥Ĕ:yn'$IvAfZ'e3y+@K;9ν,m{XٔkCna)hc}y^[SEiUD2-9>I'4_Itx tHD=*|/硳Mנ:2R"CSQ s#^JgPt'"Xٴͺ4a:a]ROiqzEKO澮CT^WU0Gf9GxhgJzִt]EĐ3Nn"{' 6ފ]^P-'^w)oQ 2c]D _5b@V H[2uA5]𤱅-ScI2ChTK )oBmNZrЦ(tɪ2n2Yk`>q,4*oa7أ]\&3ݻ9HYy:h|!Xfw%uSzx1SpJa¡Oε{oGϯ0Nl[ap?t X#1(c"/QjM_ e`Q浘k"([.+ݭ9N]`{& _@ڱ~Du__ *r#f!rnli*֪i W5',6V&a J}q(3ӂ@x:9Op1)3R,lW&¾L@K|Ң5?# ኄhڿw GYM,L5t6ʸ~)IQmI%ך̺>#58[Z}7hd`/xl}`Ɓ]-84ÖA,B2l;i"R15z^"!/Q\-"-d ^gծqF+v>kL }}. }ALPK<1;|"3qLw!`=JqǮ*ФpJ )llJi75%PHlo#g~0h-Io[}V1AF"AHbOubu@߶'%acFlͧ~Dȥ#t,u5|ܣdOv{gz7.ICsēM^YjU|((a#$YK潄3A!2kfs '̛hQ^U('?tC,xQJ<}ҐbB ?.'-IBYoL}|r,'c,gĊx=ySÌyiZ 1> XO UT)rЉK%BL[ۋ?+^j,2l z-#)$%+;\?]DSZ-. EB2^IRn)5䓈* 7LąE:Ob4be',gP>0pF x-iUa6)qQٿ3ޓf&۾Q^*8#j!kXx2CD0&uG{'xMR]3mг.Ǘ9S6Btީhc cU !V3;| 2%īfG1?  pTq pF+5Ѝ`,Tz/(FΟ~Pk{h/78 Y j!Na60ԙù&ޤM7[fzz96-ooDqYhP+Hy뎇vW)ѱD?iQFxC?@ZMDQB,G roxgW'*8٣"*B*T\/bSz]wp%݀)UʙEvq Q} 6Ojч<څ,Cu7sǙB>| 氚yN mDl.[p[ɥ+XM06\MR4*l"bnB.Qt2UEZ[ř#Z*' 0>CJETnLJfWd' _v\nquC}j։U2ͪ3|r<G1CSJ}t^ьz+Ou_Y D4^ێdxPQxuwK)̧0K+NII ͣ7\5~w .LCfǕ!iB-o)c64*Fn9M\gxd֭'ڧYKH(f[Ө-yxݸo77XQzz.aSGZqu~{9~BiW!v^T٠aMt%㫹X$cz$ْ xHjHHCzqِvUb$z/op2OdU:cmݿ1_j3gaN`4t җEaϏI0!;7܏e8VĹՀ@fx(2ҧ#I?za)Zp#G6q(b~BZ&ce+2:_Eb+ ԉ!I7(˓D9OȚ|<8ev(ҭrY! Cc +9ƽ f>S7JvtI:]U&a>.4OU*DHz 0"ӲyZ±ǎI跡 k9LQ$wA!3Eo28aǓHr,Z)fCj)klϭ]M?5oߏ$K>~yMOv 4~H] ?f_ByX]T 5b>k|o1u9}+nc~Raw* lTL!͆hRxdl,_A&o?%WږδBߩOF}0t\ǰRWcMҠ*h<g*+:Tqܕ6&Δ#a$X (Zz]?2ϮT[eɏ ug@nvgm3=~u< 2z'Pmkb?a˹\ZB|t7V+!e[pjvHC8_Y΂/ckJ6/2lOR p |D2ʚ % ~1  } #vbK$ЧSF Ѓb9A w1A= -=iE *kR   ~6Dq$HI>e3CWt4J~!XاMbgp-iy mRҊj NS+s\QHJ|E>}趉s~@0^Tʺ+v- Ed a3j"^שCU_?Df֊&6NgJ;5mXҘWpu.p<#)?p.9j.HL_1*auE%ǝ>Cq0!E Eߍ{Q;_:ʶ-\j,73Qs-.÷ƿy' Wn^Y+;boŇmp+F;b?0Z]6>xW=Rz-F+]b)Dmic h;mޫOْ$}z&7 Yhz \K(ZW>0$s1%Ey=Q:.eHA+wP)4s3a8z.;zT*Mn+=bs#,1X>6[?V{ ~U# j~bU&+'"s&g@ш0>Gs7q%OU'LA/ 7y x# ,zm0/:w b*CV~z͌޸9&jS^b{1Nљ"zhR0!|ވ^ZJI⥀hA QA8>(nB`;)\quKsIC 3_M xǪޒmʈہ/Lg])@]'Ebw4;V ,Q¾͢:"mEy'{ 'PlYf‹M$`G$ v~Lʼ ?gJfBQ͙JӽZ8d:WDږ1(fĨxҷ &h Ֆ{0mic3vLiS?tܖ{vNHЅ &']!#(0ǿ|l7NWcϱ͆r,,-Ͳj&{J~qr2CBS6 j}eB+w%-"HsUa?L\ZTxZL0 ٧g5۬t#8 (AHkjYT1._meozD C]IWdЍz37qv\p) _IYg^?\ dຬN!Ys$)Ƞ_ %b"Q5’v;1.rtg;~Ŀ~~ pY4d׽/D8MkJ-@ӱ?l=!&n>8_f;yv+(7)Nk܇;n~NcCOD> k,h$!^vQrfeteŸ'9P孻X!2>Pz-lڎcLtWG2//z:| 7" Q!/PZvbW6yhy]Q(6b7ՙ`fAB `"k>a0*nRwTg0yȃ*&[ٸ培Mz6+ -Nj{By%戺$zgKJ=߬T|'H+vP%&_6*>Xtl~',Ϸ 4R<ijNMXkC-3Nϣv yfTDK.R⤇_WT"kb@AbL|#T, ogvgLt*!ѥH>@K]F.KRfA$PӤEFjBzvUpħnjC %]&VYo۞uw,>?[.C0݌%lQמcX_㪘.~YlP 5NTG_' n#jeI& @X!"{GЪqc`&)GW"q@!9uI1`NLzuh6xi (Ѵ/B^J aԤ9K.3g7kf2ꚙP<9D]0DP{JejPnv}FWN /N6w]CQqF4KȤĻv"`@_@rY#+yKro2; Y=F -0]wBߒs2;VQ@dDRR32f$XO'jKn^Q$hHR/]\xbA!|3SBh dY诶 2z1^gRJ=PԂ%cԷ`I@#FS4?ٲ(riQ<\ɩFZ <`#h nژ'a [횜dI9bjNqW@$qǨwc[#\m~v͌ZbKu5YO>lRY{6Ո~"R]Q%K!Ml04Z)Z0 ȸ rkp卙 V,[GDZWᑏ{=!+n6جc0Րrbai6w'e>2G"rё&6鷺 a]`+MQ}IШ8>Ču ]n`E0H8-hZQY M`@ICC"X2o ۆB=#1tIJO8\Vb"rei^vwbqdζ:"aE)!cRԏ-JMR<v/H\]5!8v5E[|qhbRL%g8E1>nj­dgq&X&<-!DfrV֐$?Z {"R02xE<+rYq T`zZuUvnBF}`VY;"(QFuk~$Z ۗZj2&g, Kd  ri NسB,׍p?;ކҳB6Lĺ2HA񻧙gKoItJ2|hO97vJO3fOFh\7ȡxŒZWv:[Ȱwv撧;J@/ tYYom7_Z,sIebR,ԔݑgYNcJF<?a0b3JicrqFw(yMl91*5xIVDuIfHX0S<$ jJP,bn %KϞՑ,Z9 \XC\ Pg,7O7۫Y4{g$ۇ1J :$RӅC^بj '*SF빙iq}|z)"[]~| Ns?∌ NM񌤢/)f!@n- IRv2Iۦ*lωxq d?:R-g\ν5MrƦr-oF ȌZ'ߥj_[V v'_z4]_A.]~ "8`L>BO=XJͽf=Z5sl1rxm(R pduNy=_7qk7Fym! sBĸU>te|t׭`ARJwnz'؜4{nE܃cB?͖3zބ8r<2G=ݐw>1|35ļnZCa6Jq-93 즰 @#o-%ȥ.z䌗C"FCA8., 8B S8Z^{b8%d;% _y6r?:dd.%\].mNl:jLsH^}n6#Y=!09Tq~Ne5V5䒛/iebJ_wb 7#< t7v `2\#mnޚsJ9rrF}v؝{&ɍ!5DId;/3|ЀqRQU{$=pl[+C-%w2S*-ptSfgm9 OGWbt.+`[N[ HTuHq|eA}3ybodn%9|oE\޹ N"'4jtX"#)syݳ5qH!di~Wm;7ocZ DS{E#Bd_bBEy[UTtA^0a-S9OX"ʌ%oƈLGr#`Z|P 6ur*n ف7¼\ . e֥Wr?ۆj_% OςB7HDQj)] M(bDP0o;6&:m6G=%w'EE{,0STsa֛:WݷW|Y1=Y:6_0e [z$_*2^\f $޹-!s2k04Z;r~п2jiMq&L9wwږ{S=~3ek68ŒcJCyp9*8~Z^_cq >V26ݶܬP#ɒ5cp Cga}Ҭ <|ԑz @Z a_Hk'ۛO\2fWu/ Â~u18W (J8ED=4G .{+=\i*+B8m>;Xa+_&# /ҟ xT`_"{HqsXnP@K#Rwrn.\^E\ö$Іu W8 } S>K$BT[geiVM ӻjfI#1}R!% ^xZbQӈ <+ݹiB6IJF ]x~M)p'CA'a@hTOH`EVJ'A=O9;spG @Xy>oQ0pn`4Sld7ye,S⪱I6eB  E's9TM=Ť 5yň '[0{C*а=+amC@~ɸeIk7oscp eK}"WƤD+2ҮwTWud<[X-yN8_1a'Ev89&s<]E\~+7%%wQnR lKŘF.W "`{]j] i&Ȫ`z"v(DL#`g#!zO‚2k[%"p5düU\Q›;&DeTxNa fm,/4F5/,;@HH ->"p 4s:D5 -ܛuۙ1MT5ꪩcHpOשDt?Yv}CF dLE)?P2X!nMN|P/N..5s ZVDTZ غqx9qHM'yTJHUvɻqiS,l{St;_Rd2[ο'hW T֙uW/>}3Qdr7,. tC\0tJ Ɲ"SEj)o䒖˞N˶gmwK %(ߊm`[>w0u>5Iz]T(>TD5+e2 }a{F e-P 8 4~W\1Me6F+q< zC6Œ86<Œbn{qPEjh7+@5V#|cΖLB[-~m%?ϕV e'υX8*:"r܇m2MܷB̏TH4GzuT\:/K=wj)SY(.W'>dc~WXFOO~Jɭ/a+(pxudI@Pa.#gd55/Hyq,z=?gcN:^]!Q5`-,}Jů֝vE afuy C X% (DsxVLw8ٳI,C/{l`KIEyrb,1I~:8hX&81iXuoFhZXƲxA>!B˺F]Cݕ3˫r( '|.mk_+C(,OA N_aKI>Q$s6zŠ oLyϦlg\ >r*) 2dU`:?lDa|0C"w `?(Z-^yMp#wzŪ4N]r)Oϗ'ʮw4E #)5 Q 'LR !4tj6wh!ޕciiCO-I'\5d*G~㺌"^ Ib}?<&|Rbzo"^Y߮b{kwI+N!ܲ.BF=Ǘs\ccyÜCڅQܷb%}\8zqJbe /2a8*(_' q^&vez!,[_]*r;^N`K ۍ`/0{hy{I^H zفEñI#=_Q.]O#XPnCM4%]Ni'͂i7ǔpL9-Δ d|;ZTЎvn8Q^,0TtXՑ[]FR_$ "b$Z tTF>O|_S$01ylAY~JYy?'jvά^N@ƍy66~e侩O\ݖԺB=*Bᩆu!!"`sq +Y8afфKe{jp "g~CEok 1%r[P4V&,S0N3Q遁+V7cQcNC^n<?Žmr840hss x $ e< &#!yQ1M_HO& Ʈlj)8e cG`.El]DP$(.PI+aуV{Q=Ze5[Du+'y# cBƼhQF(iɈĝvu\`O1 jh ddK>?l.CSw䙗|*_uWJSIX}Ni#7vi.uOO1~GDHMY.tV߂q.~/xKxNf !2M21Y8d&3V)kaE¼Re!^ԨK//FӲԨs4%Q(7}[0K [BL/ׂzҋHkU h)V$zX*x^ql):SD̄0#]؜=rdGG@ j%WOP]?%9+~Ǭ]se }]$d-%*l~Th!ʙS}:Ższ_ZwgX o3f1*$ZeIzO/ h| PWG2XILߤr[:P+"wM+}D,l*m|eC@M^ U1(3 !GC@GJ^6*Qtx ,u>.,s8SA AyPf;I`o|GW>d0B 8eis,y=LT zWNRWbWzN& [CFL xߘPQ7Hܐ:l[Ic:^#Y~RkWu:ޜ=$p ӊf|ӹtrJ`YTI|B<6l ̾Ȍu1 4nۥ|!o)|\:2&S7 BNzւoakɀd҉+pJs̅^N _qV)3C0w71uQsO؄f?Hv(`3z<]C0`t)LRAĹK)xl;?FvazY#NXCoq9B(D!SvP&U3=YBy~z~RRB~\u*%90ÿXko5It(Vk uG  ZvY>C|wlt9.0V`Ccw"Jh1!Uy}^HQ~?"KT+'\MNHR{ԕ>M>/~aF5R#(dt 6$WvnKBfS r%/(j) uk.心f4ӌ̢~6VGzT<{@q(VOᘞx#{tg[-x+/;𪵑PoQ5׆tIz\=53k` ;[{K nڢ/nYsdhӲQ<*ч~ n9$AcNҊvFf'ԂEe*8 )[$ܻvWĕxs×B}pyHu:,A#|+D1`h{ 3 uw!qAIRTŮ)Cf -8ߏގpxR]ݦMܓfsrŇ\]eZ혜eJYJ% E}4(ɻͅ؅NU۶m;Ais@;&JXrX/P>G.͙R|}Rb-%DZ$Ӂ$,(8GNEc0ewHĸ2Y#%7 Ha ?tǽt yf3uތ>ẇC)  D>S!x1mCy'Д)*6CQ(A2J<# "'~";&b/Q ]L a܊Chk.[XoHL$Wk(ެHf%ƁP>B?URqHWЍ&;Q޷Pγɔ$ HF_z.OLUhS5B/jXj?.R$/t}}{2ZGNwxKܐj}$F3'Yēa3[5qRD0Ҹ^ D{3sي75R⿛` Ռ6Q 7d7{ 5Vw}St =q5zfL$b*EK`XUV qX"W),M*]Ot”S82T[9sXD"~b6 gb:923P!sO Mf:һj{i}w)"0BLſ݅™V$lUJ:u_ K#o0P¾(!qMpwüib izo[x~%%̱dk*tSë\,/W(qH;l:̿`X H[E%\#1>k=䘳s~ƪE!ظ~2ך=R'=&<)ԮٴTYp,t0Fp:]r)N/5{í۹*_Q PC>X `5Z[ģD!_C큤^ .j"ahY)lZQ &v ;s&4P}%c<ǔX2  Vo&r׌#K鶂tOPf{(gz95\ 0lOd|%tk\a['X;ǥ%њe2Y܃p }c7x8.oKc^n{^ 붶wZ9Ϸ;UK9GZz~`@U"1~ *J·=kP+ ?~|_B7/H )Th 3&X1 0y7LՍ/L+[n XusQʚ:-"2CVx1 ME 7툳=On^;;eo8m$YY3}N,h<)WUg7AG զ/R_fgXFaxv*k-5X\N/Pk [T/+#]&&',Fz>VtOd{qIZn"~^ܾ%4)rd51m%eag6&S66N N[Θ(c xI6$2 XfOڵ`%a{Ol͍kO|Nԭ?F+٦" ʬK f52q{D cK@M/]/_>igXB9ǽ'vkPP֕ UEjvplڙxR, #&>Mf6* 4$u=]f2#lMOaĶ1 !|?P,H_SdqPtuk(H] 2y0= ?ڌ弬Y!Z'$G+ӗ):G ذ~i9X-]jjg}վl=3:p,XPw:`wZj ߜ6]W\3R&YTDg-b I Շ[L#su3a-wg9Lju(I,$q|Tn"90k~i .'bUt1^zDJgv?eɥDQH^=ˊX3xhBKaFr]E.?a &ҫpd;\ &:T9{TXơ  !%mQ|OI _0:|YV\LY.tU g7@w]eu-Vb~( ш.'%+oė|  .~cEJffJ:6Ų ~K2Fnd)eҸK<:!24o{MDs^'ȕۃS)ZbWǚZ {/q`߸?[pz0ItB`8AyP̝¥8;CLs(X)Yk$xkڃiw:O)MV4W%lD .S:.u}$t| ɍwbu!@cQ zd ۟͂W)Xӵ",]>g`^nQo LMyoR[IJ=*+_M»Q+/"2n`s'. @F`"F cر< |EDa?po7T^&!лSfc v Z2Ztji%ßr}-"{ӷ𬙇(,_H0oD2jّE)>X*~S!kOAMښM4_ᒤ"w1Jy;0*'4Zm8ۼU氫sHcd JK}ev }VoEG|/MުOV [˱GHw,C6͎ a`' cJi pa~qv"5&+`w/T^ 8R-?w\`eGdne<"Ng9[U! Uǟ.ߐЏ߄79MK.c{t}WL+ظߧbP;uX_`*9 ]sS%xg&26.lDqUsM|C{ɕhO]KvMch1:^;: a3ilGD y|P1 yݰ{mH/>J6i]gܾ;-7}"(vQLg"x/5r2 ]0hW[Xp<1wC˶S0ANr J >=~_JAg 0C 6ӠA.s=|Y cP1ο&B,\(%3MZ7_g/$+&VEZq'h-qz]y0Ri I7EDl :Vː7 P8O)Eᐊ8Gc`1~5Ii֝toWqBظ4χG=Yvn@j\ʢ-΀JxLжpU5`'6Qnj n3&+mcL` Z-y D0R3osU4&P..[~0@!s4A#Ks2eoXD0Fd?5P`]idzcAУktҞЊGVAE-\@̭[~ջ!;p_&~'-_?LGk rP%;-]?!OV;.m1;W†nPRw;?T k}Q&N0:0ym"u &#ƖfgHHө̊FiAn]X_)+7&{`hKU |a8Lx%=I^qοS} [v[8XC^jDb&PH9j>t#YVֲULKS!!`ٽpyZ: NFEcp~6=3}|cP[c4^6pHCs|D# l;"}\o AԯWL VӉBme Gm~% zvک 1ihJ)ckAjũ58+7q35ۈhs@t:v> NVK?*]:9.[J'O>5J7ĿJaS^[BS|Oxc1V1 'G* C.joSw{c N'cjj WʡPX:A_..̰|uۜkbuk2~)7p2 ;K exto}Ma 2@(#6k`Mly}3<~EϢ2iE~,Ս'!^a>nx 5ŚevU YT0HT8{Iu2ܠ{.AEh3(=Ç%~嫎ArQEy=B #Elkݹ(͏v/H?_l#;xƆ܅g eC]kfGJ7u=3cPbR!ڴvcТrBVa:&8WϓE(nWaRa,əoz]nm*# mS ()LGndl u `y0y` "J ]@$SMd,<'v݁R :Z=(:~;

o$J0m꿙B"9/BIjRs{]`Puck焉q[äf1LC -l܋mIYa q 6{ފ-RVדb@:Ws-qOZ1OUH5,aމݢb ZX_UY $s-@gRiEe{]>K~9[EBg b9B_WZؒڼu~zt|u49bҷ zb}g~"dPYw[X5o5Ѳs"Mqw@˼Gq/l܊gYoI{A5ԗ~\&"pEfiɌ>R\`x-} XhKaU3ٳ,r{ u ڕ=#NHeqY.l/ur.i7P 9oZlOq˘+h.1VR?@rn@d=CdƠ qQ33Pи18D+ qi?;T]q2h顼 >J@ˏ[e()i3/!c TmfRy{e0ƀiep p=|z/SO͡|HNwZȥ)3E `k=d2QF([BDJ@c\\2D]nmۢ1;4LթV[(Ge}.W[cvA  څjXK#Rr| 4 [4sEEOd8່`vό Ƙ(J }Lj. OdP\Zch ϘZhPSK\ݪ|fe0k+nγ?:ޛ\WfC4}lA0>|@r]q}rRUխ^Hyc4Dg,Ԫ6#d)ػ)4p+N:QƏ!7Z1!Kt pkᅟ{lp pP eōΊT0R ӓE/ 堼Qz˅ E Dp Е^Bsuj҆_3Ҁ~j^UNIC[nkE!QM*lZJ&1L_.#9I1$S6t?)4Vr2hW^aLcJ;;Ohjwr?;rǬkjC w5+~䓎+3Eۈ+L,P #W`GMzfTϕ.Iw@] ڐvE؃=Evxx /8!jIMmY*'8:[QqiC>MœW7csu[>mafwH"q4Wϸ_n'o8}973ItO_th6[0㳁(F~"iGL`1JڭU|qz'&QؕhO+4[y/:ް[6U=cu 0f< 8"FMFu錡"!3s~"hޱ5G#ff( ; CpS.@T_͚d.[CyzS}2m0cn d92E1N24@"Ke0@~|RTJFVH>=~^G#4 }56s$*{+DOŽ] SyTMBa9 nаE/|'_jҬj/-§Y}eF)?m~߬Vhhk]3f GT)׼!@%6f%: jsfdbs~`=DǞ:/;FaQ-И?v>iXl:yZo/>sBDJD>+b~nm<6#>BYH*'rw~`~f!^.yJ_FDdה~GobTWRwh.Vחa56hlQmh=x< X*ɸն>b0~:fÈR:/`wzR $v|^~?cOvNsd&]Smsw,d~y¹e "0(\njO˃pf5rw2q%뢗(rñu>a&E:\<ԉΎ);@Rl;'v,BovK ?c(Y7g(i#Hg\ģa(^MFA@9hf;ysO7rzXܯUNlIYg/v!7%ϐ q]yc Y.?1m0u.뾬bV9uDïg0SC$Ƥ1͌Wv+<|~X5*j6(R!'5;.!g5[+M RO-%|bL|opHLv=X"K ets(%;c!!XTf  !RKN-u;}M Z%:CZ /M۸jg.Cڥ* tɂ)+{8y!;90,KXIo={0}o<.ag7&ZH7K&ʘBsN)Cy&Ӎk6-KT.8'< Tp+:Xƴ) eF(%Eė>;Y%X%m.jϒ_Jhl5ׄj73(m} 1#\% W TmWSv ܣ^o'Y~ |%!]q=&xh\myU RwT8ٚ 4ǭyF=ltvK;T&3$ắAǥViRwbt>v)N725l^+{w-y-{kb nD8'sEbH?UC,w5VO6O^5AC Ifu2*cQǔݿhSŐ/:,YDD,6sȊI5vJsh_f &TPgz}(Etw||J*Lvmre#鞲 !?r˩݉$dFx[%q+r~z+w3uGJ Ołuݘ,ȇ \WO{'[SVR%'Ӫ~H9Eg 䌠.eEF>ӬȐ&ʳ2}N@e;%XPDƙf{(5_F4OcUS_98]\t9# zI^38\*=zo3 -^^I0d|0QTrhBLHs@Mǃ'?7J5MjgRu& ý2EGk̽դBuwVð+ Mw~,W0afI}~ILa;1*Hj$..}]&\c҂M hWkEMh1P<ClွE(ZS/Nvm_.Fzf|ߋ#]:88EƷ;}"Zqd(3:|b\kJm9rԬz=P Q@_C-vzQfdゕ$n$A" f*v\ JN#qH >g+e ̮1* ̅Z)"#`9]2vRsJ*Up 9x?4g52yaъ}E3I&d5ɥwJm^8Ec=S%3~u*C@w]*4R_^Wѥ el!xrKK؜a6v1ò{l+af&;a3퀌I}Yl"(8ʚ00@x+Ow&ddg*%rXUVAWZE΢F}qU iv'[&-*n(8cXiʀ-Ű_?. ` 2OF/5 "REc p;g=RtdH׋ A#suR:bZj/_9] 9O2շHdqgE$(l=&.ђl&2vj~v2d9'~rxGq1)@ Y^hBek2ՙ,La HAzjKf.(*E&OXtS UNl;!Ul?.t:}٢F|%8ze5x5ViA+bbkׇ75?[@lrڡ1ЃE+تȟiJBYh] u&ņ 73r`rH Qvm֛[p9B@<({.YCioMFSPzgV K9šx),<$-ҳ-hyLܠ+UI/9uؚ~н8ψU%.', 27Sw# wK=E!~@+q /3cSW'<(^y߈5G2)"2,wTۣKwԲݖaY2[:M14uh91\ĊTx.޳xΜcٗ*=(Sahr$Ycz(|:7O*4EG IمRᬽ%{2k0͡וl Ҫ;=sgGINe+ι3fDFV6`6opԂ|o_ nm>xeyk_;j2PW2]A"u :>:uGUֈX-Rdn$ٙÃ1z'T×9}[/ejΠVag`Oy{\J40h.4t+;F{Mfd2TL.Q'E=p{V׆&cx KUk ЮiKFn@l(*6VsKh xNjI¯:;(&a`#%%#\;ǎ_͍Tmj͖?|& 3)*WSGb:W/X생19x:M.|AP5a^:z̔Dy~[Xa&A+ -aHnO6kgA\ z/}x |?xG)krTJA;ϷHZ$(ZTY~quIӂhBgDXw.m\un`!}k0ߙ,[6tzRQZĢɑTx҇7ղDz ֎xMAX^vce])Hlfj)@!A%oJцb{؊X!1Šr</P?-pFQ GZ5z^!!@ӀHqHz/CDmZ^ HjF ĸ 7`VƢUmt|ܭ>gzeo"!zttGP`frGSY Wn#e7<U5𞷵9飰MI34{9R70\& <*xE>x|ސ-u={m1M߫5|{i}ɐ;K2' uj]bzۙld!Gu%1jZIBGqHX8!7Hzr'vAYDCy1WpMw%~š؊?iS&Wª{Cy,4 [:6@ѯUXT+*W (ߘºWyf Mģ9[Zى3V/羞K?;o¢Ώ% Cأ`ˋA+>h-YbV`-GRZKD!Gfl`ESf(Nw/ @w ݻ@]=@eM/pPxz>7/~m|kV,(guͻ ]mnLY}y1R,UbY_w gg (i]iQ +:wr2%ǠhE_5h&ܼH74M*>ss *E+DrV ~$Tؗ7SqxL2O}sw3$XW 9ܪvw _ϲuGO@VpLY{ /PG2K(kC$*rajehVT^x>WxF (ڀYuM|Wn07egWbsȇ`L{.sUyAǞ, }- lUy[F{ CNxmRUfZbPF`ZG!Q /#zrƧI/><ȎcEpA$$waC_U7{_76u`~zX&aM2u~o ,qVهVT}bH.Nh sK3`O?q~^,7<1h-`ZA|vmKHavu+p`)6+tA }$ &^l*R*m'W#H,N//\ɔZTZOa %Du't)@;>@1`JW mQD-9U4=PThտW::!P9/Op&4SKvu 9apx(vۜ4&yl4Ԝf T|iӱ[Nw6/.xo7TN̹̓MsԦ6ZeWXu'V NW`rЄ.6fdc)cL `c4*${s!MSN/m/ 忮]5 KɉrVD9 Y&wzj:gtxFuH+q to#P_AZ ].)Ժ#p'Všr3tRQvF'y]` `z.(FXws]RUw"\׆7$VC׹ڈ8$会ʙqUA1%)BI7D" w51ކӵ"d<38(ܓu &AkD eT1,B|tre-gҡ9:6qK9N:-}6Sԗ(+nB0)BVS!.,;mn;QLJ 3f5Y8hbI~~q{#FRA?Ƕ텞|R:T> ƃ˹1Ko(9KRB9^+]:^rf2w/= jb\Fm*wayG@Fhma;vؔ=7uZUS \ /r*bmhC/\aMAW'@g@XU ΋6"% x411?HXI4|B1j P'Ejԡ"󵜫n?7gX/Q˙ø`}-kb"xڸV}X]芾YO]AYrxPx(rG܋Zho!'$G?-i4d,ȱeFFSe 6XCi6?HCorlwog'"o P@pkLshp2PhCo5ҽCI%F7L $'xrhCDt~Y8R 1.ظyCE/u ?RKIԓfuUDrdw.˙ 0L򮁬 0嚠B7(,b4e'C]f]Q$P^m$%c2>|O0m$ N$XVY\ h[̾'1v_җIO gB4 o*5U/1r:Ign:@Vu~ǩ8`%LoI0SL Y!#J50s94;$0!QܨmN-aFT_vºYpQk|0tω31rWO&Q?lyesП4j)C?5;Klɦ+6"{J&ȁ!1a46o~> )s=.?ALzͮ[ 1tI0,S֒w2 HK s8=KĨoWe߾^ sѩo< n{:gK+O)埴NV\S4o&Ն@X [^;"_G,Ł֛RkPt^i\Ց +4g /rz'}+qYqԝ`8Wv*U H3!symO`X c4 "*|V[dp)&($jlmYkw<jVHkE$]]`ߧ#[!emAq90(GQNV:&ؤӳPcn4!ZbZպ#R&c.?TpY1jK+2؇'2/U}>RYzM _&C52[Hg~D㚔itA">":$Q$-w(U gshs{J z2 МEKS *Q>YR4JTSClrbѶlM8밂Y |q_IX̙7d/_zs JqmOJz S NUt lk,GxTCIuw 2*3|\86GC%9XmOT^<۰8K, Dc}T㟑D.U~ 8ل`9 j?+U3CiT08mWBB C}Ѩ(olАZN`9n^L?`?EwC>| gyoJM4HK#kA,4d]{ZmkEby |58diiVWp1c )2owKB}Q v[wNE \)%1$Vr{DJynK̖È˛ X=Ƕզ<=CՋG9 Ko~cщҟ%Ma"w\u %7y1n',(6\NWѢZx0EaqQ\@_L9D4>T/b.nԱ"Su[v FQSuhu7ڬW]љ<?@VK{V EOynlTt[H(J>;ܑn`}SP|a=4e)j91opҁ5(>|+,mnkf'sMl&>3}RQed4GiQ/N-ή `m?-,>* C(bNK`FjC8C<#;ud $]˩64Tц ; q5C;Q{)5,D*]W;HRRR2o0 kzSj>U ҋzId4& <DG~>{9h/=^cUWq RR'qlڕV#qzۓa"{ڟw'_n̂9dAnk }pngYZێ$pj|1`YDJչvۇ,@(&akr>HpZ~PM%ox3 ! Ǜ_ ԔJοN/JB1XSM f7y .}P!ނ8b4ϊցX#?n.E{[S;ty}j;:^I8knF^0z8忱x&gBj`d"G߰Cy"f?/wbX˹oz:9ƙ2{FA0n;M˂%6ID@XvZ,n ~k@ =ljN[{ `Ж\&F>?t|zy_8V/Q? =X?]ߝŽ 77XHUDwe||67d7ֽa5Ԑ<*gCW@dl?C}K7O? P"s/PU |n_t4y|2$ QHׯ8 Q7*QݯgOj.#ޱ|Va_V(((5Ep(FDL uz rq=PBzd5,u %qP&)KXj++&-ui, @fMnČSG K>R(`vm j' 5Lp `y/`s hʷQjzY9Ob4J=IJ$hw񂏰(:+x}%1D)ϐ0r?,NNf#H9֋ MiI0M,/!z\ >Zj噱H·u4W!48~i'%?S asZm ؼYǛx6hv0Nbeϐ8YUS=%3ΩPNN`$ӖbFH0:9zmAbvnU`Otd;7eSMߚ}PB<q!J޴SI}a4SoNT֬\U8θ䙖֩A_Kh\ Vdݵf2.31qi^x4pm/]Yg%۷w|wxXED !\ `DJn5H sZ&aOdWK^QUE"6xoh`o2%U>sx?,tuBU/AbFDGf ?>{w/Iv_WxX҈Hm>\E{#%ϵi\+{ۓ|'WnBb‹AU$P U3_>4ۡ0͵kX@qH]`>2W3cL T'V WޖUC ~ʕ15C[䰦zrS—J^@,u 'FO`+%L9g i.;xGزe!;!jPRI(1#7?5u3PgbU,oa#[ީ/i)\쭯mZZ0eWBi*A af=GtXo Q;=w7UCQ\ I+L",9vzMn1k\m._jJϞ\ Ib/ gҼqT{R}h3.8^({o睓G:KuWhB-4y!|U]/ m H( + zg1"X ӌSƍ֌ǭ}O Ⱥq%2FW{DV:9pIĂGB=] [uVB] +5C]w@#elRnpr6:]Ƶ7 +n5(ZlFǵ2HֹT J<a),.>([ چoKX۴o)8y" X'9 ZU*LzJw?Igkiy22hsN`cԊ$AN害q?>iLaOY,gͮn(#Cx\~y/g'M:)8f2͗'Rtx¸`TR)9t`cS绐ᚤk)ϝłx.bJ-Ҷ{Qbo;`kA;X:)#[ "-5.CP<-tf,N 2u' vL'T 뿎vDlSFOTEϼ)(gcA4@dPUHir/?o~ilOIu7V,9+ge:IDNL((B©VNp`{r ~11~N T ¾u`qW #DD/1'%@NAs#֊HR:w_:뢽h/ 贠mh#,13鳣GՋ`v1$!uϢ(tt O) ,Wcx:I*c#K8+,솀oip=}q{A6c]ݘbof׶aq㤭 IFxKem 7L{;b˳|Ο1O5'gw/gN&`yj"PFɼyP@0%5|3)#cIpt^DhX^$52eEKy(?" xiM:UMg'᥅BNіCք^i%Z &{ Nfc$yxPqZVOZa{PySp os[7-YyߙYу؞7m{8B{{vNik9S͵]2k7KY5q\Vɡi{:Y(SlhrDH믡Hyt~5T &]dʬDs" վTc."j\vhg;F=-i4C7+!?bAhp_PKDž RUT7t^&-RsrMy^d! j3KȃQ3;2Q>SD$M^[_`I:gʖe8#䱠h;D SM~*+1cՒ0arKyӨ~X\^*L},qڠDThj"O`~[/ :w? `3Z~z j8H A6Gվ4/;U{U3yCxn0vԒ.[P8bF/gĩk[o#i<)FP(>"{2w]{9~7o>Q&NlNuƷ$b눫BPm5dth&52nP-7X:|"& ҷϦ:ļ (%vdl#0^:æk56IIEN)rU5Pd _V'N90t=QygSWn /[{KrA8=[n/odeDȺbjFr\YD3o3j.o½:eqi*A7DzF&P8|[xj;\=/DQ.ӭW]{:{m9Ix(#j FpVZѦ6 %9(4pѵ~)^=gU~逷~SDDAQ T9yA" 6>Ahm Nx+x& jt`ӭPtqݤt 1GKBӶmz+0}ߠqZLʜF(tj =zԤotyeBkq X xv^!: q]nr6XcKDV2וtĖ\a sFNYEENA̘4o{gV7XǣlC)5D!aXBQWD%$"~/[ps+NGe۬3?FѢjYV༉"Sx A*8ybE ;UF]we$x8=$!Ni4.|oge<kURnwE#֖*ʴY_?c-F}!ˏFjL#O ME EیlC vbfD*y9T[6O7ŇȬ#u2T.`F-Rk=: IL~_L*bSpXN*P؃+r (D=C}{&W{z 5Sr@.lϔSXGjFOc@1pX:dcڢ:r| R=EAHMBY7[ O@Z]b@͢Fͪ*KHVjĢH<_k ׯ z͔AU .LU)?#3 _$0bbGo=I}G,Qx[P&X%\IY'k { w?BqvCd30ަ9D+_ڥQ@E'ɪKu;O6W&8OsyR?]ĒfHJY yY ynU* rW6iMjE޵c $6bo.G1Mw~oq!~0~" SX|]T]!^8|vfjk,vh2N*rcHm:nAD__ǑA&|֍P)'R~*7Y1d‚t^y3%/$)!!yMuA;tiP;%ɋ-j&|'U'a r $S>S3 +lHNy~ ՛I@7 O@*16.,h<{+/cs\ fAFo8ìJfNiVY BΤ y0]Qk4ﰒ& ̑ s2Y[T_ сp>,ZAieƎx+z/z՗~WSrYIV +3;H3`%3x] $n^문 s%mXo d2LlfQޜSOAOq.f(]5uHGx߂mEzUv;7B]74<]dXin<$$57VXHU[&'uYNx wl|豋rqjX*J?Qه osGiΐɴ tVB0\$oiy6suor&3?R>&i,%+|JJ$DC{1hLۜJ8X Q1i ܴY̲vvQ!&_v6% `#9o"vR|0 p}rq+r %xU-؊I`7E~ۈ"}nX*ΥZ\x8 pll 1T8B{N`7_9BwVfQ- 8ٚCO #5G1r7ފSZλMMBI8Y[ ]SN+_w@%?&!ƔLS:pbIKf,>a wR"Zz E7D%A?4";ZuR!Q `qLE UҼ4"4[DQ}b׸ӿo򧾛vԚ,O&  & QC0W 42{ tw @3rPW#^##4ro+<(K#O!H=x2/\+Zr9l Zt5%?auT]ta 5ѷV;\{',f~֑ Ҭ~4Aջʰmt e'5q]{*=YxY+ڧqP(,<]|EiH9I]+Oa%E&MgĄ4e8"+=.VtGعʰ *c9d[ VZu& 6v#w~B'XVo I{}XQ)O3yYpF)EiMh~smL W|CץM@rW}}@`MCV)yN͙'0&*.aCs/WZXf>,\d⚆C Rd{s}ѽƆD&ka\0h^'zhT^y{Sd (\NGbo(n2ZG:& m|~ ->.Lv}L2rYz"Kyo>i-dg()Z(R!rryKm+9a^^m3€je]kB-snó}q=&AyLK$31Q/ B8E@jvLBxb0sa>V] Am]4N糡{M5AH7kO=]xO-b}I I*Z7.,R7;ݭmgLbؙҚ CZ pXRvtoOQCc'X)ϖH_`J˻KNEpAP:W/[$LH\{BF NQ5c $hP>M~9 WäX9G)'WVKznBb|}cs+h_U*d-iX 'kI{`oŕ\WI8 Q2T+pfK+  eqF?!%[GlYavo@\'AY{Go$>6u[E7n()B!"QoҜ؂p5Bl##$/ J߹%\:͐8=?PQ?OKxJ?psNUӆD0د;=\צCAW-]B暵+XGm_Xx1PK{BXA 膻餚SيpӅQ]h,gNHTt4G;*$׬ZOw<7 ,Tkp$Fc0T-!dݿ5j#ؕrćj#aR4Z"%ޒ)zgѶȒK…~HF/YC>FϑF1Iɼc |Ю9[sa:ByݚR~$ #ѵ7١,]cΤwloPbVֶ7a/K>_ .οsT}.^3eu>lfS:P tMRF7D wyipʴG;1.+TsZ =Yigh&68GFdi3_^or-c'qH1v* )ë-, $Hj7.,|D:˫?>:<;6~lֺ!'#TA=T-#B?0X5bZk9΀'iJM-nӿm@ EfA҄!IƷV &3xj-ʌKQ 1m]JlAaCr_u"(}dLymj;DoUL k%c1mz?+{4` bq}*-"~}x5@ W/^܇+6:X<#^"J-E5EcQ@ճfEAo~AbA!L2߳W"Ίz Z36/ǎYK$>IPrAy꥗tgڍ5ڴnAm9 Y_^3]3ݿls!;GQ ׶y$HfxKojdB- ]zW*z6e2|*!]pO66]=_ULTLo&7ZްBV4Ӯ͂@EVT>"ӧIM9m-IT qžn?Ha OO*ɄlnfÓ؝\f>* SU0z>4!#ʚj>Z Z KO ]?~S[X=#`Ii޴GGIRӻ h}A].L;\꣓-=U_:^!r(<O$I(${:`Q@zMIaҙނXd%2EYHD4SxHOxbUM;[ll)ĞUN2{=9{Qڥ:X*,({m'˅lJ=I fȉŪLMuxtW׃y"ylC7mEe>9ps/;w~`;ٮj.gCJIب77 ҄I 1lv@Vjx*V{(q#?;,K덑MDVyYp {O%Įh ˗L!t%˓j-A?Sp<;VbB8l•;[K0.g)dux<8c9=oX3YP^sݥ-1arF^N4L&J‰D^I6پT>f@H6~ PHDO"ju_| ->C$7#N`a7vQ/ qTjBy<9|QDזwbDfa^lTLS~iKU"E:6 D{/,\y#״GFZc? nŦ,!ܬcDc5EW'ɔ)P;_0Pss1@uΗ]渖lOpaIށ54w2aY"B:~z]_lbh3T+P9;G֏iG&v7}}Dػ m|oG舜??&du#gŚ`ٌ*l?lzUwÖaP-/>ST}NXA`ޑ4?S5% UH7MZ6O1􅪞Ð# E,dKfK*XZf4ZN%[֊wb5"CX}墻4kOu \Cf_{KwG QP 8oakF]Ip@:b7SarVT4,U@}ŸŖ/g2;.4aL"9n!VI(?5N*תaW .34m+5(BJ9`o%WŽBz y |h;t.g _pc0-O ^6[QAwmp 2!1]DK}7r39=ٔ^p_4f튲ELC7jRȠ8od"^D y5=K`3Poz0Ľىp_͜v\YtJdB<f|qC _:aG衫TI[/G[;nVY&0h Cʩ>I2IjMR.?웜};< -0r/,3-*ա#K[U-G"`id% mlZ8V%=d6(C:!zL\~ Hw;dket, =:_n>$ d[1ds۾h?'J }֫Zv~1oP<3㢗5ew*1)N%}% xqaH ϽX\F13}p* W2&P'1~*f4}OonPE늴?.auQP\=e,j,̉V焔i1<=U{骍m9t3+c_(n)FU SKG>HXo'w]n/'+ip:΅:ekfGV@E?F|[hŃx譌9s\ 7mTh4szr2fU,51.xn~鑫W)`ΑJ,0 =説B_(?篟Ҵ,[g =&(ͩY] o54zJ%7+8\~h(VR9|1{or7);gf >WΓP{/\!"p.~yAнDHiߵ&]mcC>C[4>~/1'پޞB w$5$'Fl+ճ >l1fqРڽtV+$zV fZCkr(>A9#F7~-pHg8*Wn88QԤ`Ţ!VW*9;+-w.E3 v@=ORg,ہq%c[Nyɥ%:P#Ǥ3q`Gٛ-ʍGr1xհ6XPMBr샷Y@;@&{r&= !]oΈ%N!Pt-PRꤛ1&~F{䧵fgT|kC-( )VӢ^žtS$"jf<.̾Bk\g.Pt2۽l3+l[\us:-(ÁoޔqJKpbn2dA*J۫/d= ltc!v9pi#x/^ߵ"pe:[mz#~Z+0ř/^C-|ݟ4_ EEuӇƝ|~$~HHxFpHΠؾO,3 Ý5`+/m/0?E';Z=X)`vp;beZ0fZPtvxl5s&Sɛ pyS7ХYҴfgVeC3S#nn[cB#Oiiծy7 h2IhvO{OoSF i6K1'ri׵%R eDx1ߛSm@&2lF>wS@O W7)z>z"QqCg2@J '⢊/v{ WVD ]%銙|=?7XaL2meWF o-#ojKwF|6F|\B zANQT~ΧAteI搘jmfA!RF:.Mg$f+[,@E# fS=G ?v̉)FSÎ v!S7Ö e?\%Kձ46V5`8Da50,R')Te|VV4F= " eD]7~Kl:!..ŸipE'[M1I@m9vn<"FBي5Cc:W}p x@c'Ni8_(kݨ+] {AJ*Հ꼶~0 ]gӨ7ƴsc6ScRY+DcÁkAj0lxjlמڧ-_ szsP{D;-HsڀI!H%v7n'~ŮÛ Y&M2hvxI6}o'E;i4TcE8RUMGWtjtN$w}'!·v18u<7Ǒzr6u/-ߘhit,jӸ\2ҼAIK&kCءźX5t`lV?j琿&۟{Ȋw6FyDW8%c";מՈR9Zx?n]ۍ/&E옖z`PzgUO ʾYM9#(IZyvH1\S?wGK9$3#KSxO yۖvmlab{E³rKZPGQQ$7 eܔV&l^酒b:oz~۬( I1(:],k-8 5 [ "垱ލ.qx>O<"%&H̿9 "7 O+O[|Cf D4-,:$@@k˾Y JG鿫RF:xD8L< q⪴\~~؍ TO…|fHT?(ek!BknjTtIPNY>D^Gk|V$*r?yET[ 0(F€b./1~H\Gp(|ltQAl?B}(6%57XSl2A E:`#S1"To$N ŲP($7o Ij4!hK0zWAb0nubi%R{N-H2Awg+_4b!w3=#^SgˍtCxO@ٜƷʨ.$3RDAhb~Ը_MG%2bpAtS2F61t@QDs몹FGNcLIJ OWgtIm\~@ȘųyIϽωq=/J 2&'n=x?JSfXom&r+*3{KD˰n`(8g,32a8T-ZL V zP|KR>:U16ާ /-#[NL(:2a̾c+h~ޗKf ׂĮYđ"]HA>-FcvɍN?sv:@2SDq<38(Pگ9bν(]p6063wS*a@Vsp1|\7:Z$tp"z}rThR6WзOF;ծN)3sfʀt#5`s"=?7IgǞ3컷xVunye:"螑`vDj\bZ$EY]A_էڗ ~ ʯѿbTۖ\q'W&9m\8~(_ \7VLkMF:( u: ["RG+X=4'HDD3l,]ȭy%0ݷukrzOY ^&_50 [,ef5-kRĪtv|bwXyapV> ~ࠬW;_(]YLh]mLg=< e%k﮼rQ梞1_Üź2+bbB; iKRq{ıP[&q1,xrǝCf9> M^[kmQc ^U r_4-[y!LXao]`uAVNtiܝU@0;fU9۽[t7n6+Wz_?3h_\!  j%1Eg )ذԣ_@"P(%B_M-00 Z :Ad"Wx?MH~=e@IOLݠW 5s(Y|5Nز}nI6(-*HǪ=ߧ_Y^H%ɵcQ3')=%08iUqwiv%RB*PZAQ97uc㢾j^%o糵36D _f -[yh4h@{߄DŽ׃-G(wKG]&\Yq BylƗVn*_X1lVF^X61/-$#lU4lH&Lֳ:nܸEgvDZW'v,DA [Ot!^LC# kۣk}$+>pS 3d|.j)τ!mfzWU2(efC:&M1ap~O|)84>C(ѼpOGgz1i__ތDs?y5px1sY?/Џ7Brz.%/y|)=I}V`Q%NZS28Sf[rv z*rΧF}¡?b&TG[..AgCY7{ՠݬa k^nD[^.- dEiƤ$*l>zO [/u$NrY9Zu嵙L9[omr hgΏ]YĢX^U @-dc(F8 K 92qJĿIxmn6#G*X8)fzD&gGV]£y=b)]bs RB LchiA0O2^, ÉMۮ(kCtFnnCA-Xz.TVKxxCzsb#$ BnrLԎrx_r|0 ^`R#Ni_mz\ O`Wg5[2c`Xu^bTB&k,Û6H1[wxVስKWko)ZzfnQp8/SH0 ,s"~~ev,5d~%\ZD"$)<'ZU/8G:>'*" q^b~jJpm{ByH{߶mfP@xp3PnU֕{ ~c:mvr+^EIٴi |57`AVIaOw[%p}Mёcr}#6O􂾔֬eYEfiV﯆&jNɚv44'yM ORqb;&7R_lEZ;Kr-1B[ -b+ c?,? ,<؞=poaK&h8)VфFdZΔJۆǦp Y#x_C4:@ˇ uZ-B"cR8] ME dP al'-q#=T~hX鮒RCbssIօ젧UeϖQ$7 jǼ BYH<־f~dADf^ܯzҨCGEt3aH.?02\f#OUN]0QѐjY0QX=*6d ޼娲%hW:  eI7V`6IfQ.WJ5h!T4DL=Tq/o\@Eֆee!lcy=[d|0X<ɳ-3ծ_q*0+@P4#?<4/Fy܊vo"]&[ Umim-I^JۘR}Z1|;= N=99T<%1#|1d39&zQئ9.=~r';X.fBnL L_-{FW:ĵss" ^hM`it##;UpLt1{gtȽ.2G~11ri_< ϬHsfv|9?ˎ Yjq׼:Tn/>{^g@$ϳL9Ujq$6 KZ0 R`Շ$ܗ0.$X:-m&zNԈkrj0h58x3eGKPf&*Cbg^;-cQ5Ñ-rUAuo(#TSws_:Aa1 kHJ|YW/j5*KS@F0'`&B<ĩ6:ry _e swF21ؽ\fB~ L(CѼ6<6`#crU!aS&$|JCX?L:֧yYKAD=E8(X:Qk}~ ͵E<ܔN` (X δv@zS3 \B7uh5f!B __eAlm#jc#oߩ#te~jدc/^/f|Nu2ܰpVQ݊hS-sǣX% Cn~R_싡P\z-vWͫwӻ[X],EaњO-&Z@7Q!M 5?IL1gQXi~u ␆W<{>|c^80B}.=ʓ =_\ג, p1Ҋ'$+7lWm816(#͊# V۲ś+?֝1#4f줕zT[o_R"`{֥؊ @9\3E;B2aS}JؒTLJ%@~ ~+*oܛ沌;0"%QZn-M͛+ZAKjE(+( {32l ˦~ADq X#s $OiftXFЛR. o%g?دP&ڙW暲"׷thpw+!uu8љI{?sR9'^ܪ^LN}u~ 5ᚌi1EEz|6+ ,etȼ)k |ll$NS$QGM׿xP *c7\2+z a#< /1PYI9\H<U"ak_3clkfA+nr8Ghʁd׏ؒajJǜꉔJjo|ax}c#CNQM1i*VV$P$}Vop߳ dȬ|oKZ3GMxlTQRҗy檮kϋQ%+֬/.fѴḆl/yPSds^dwؽZ+ISV,ΝAkqiRp;I7[*Wk 5]Ǿa%ɄJw0F|A7!Y.?NP{?twR0͔|TtOJaMH d/nSB_^܋C,;:+siHN5(԰Q@fW49^  ucW*58%q#pA>bX3R;zZ܋<>"E2'z `Hx>1fE =^.WUa$`ȔE5nBbF)4y ES;k@^w^-;.w_L/)jX'/pM0RZ ᫦e>i|!, iE+4 ?#b'oNםa'E2LOX0s]% x|JO|$zj#S,=rNHK~!]ŎZ'3 lG8rpW;PO0B' [F⇳TmKF? -07 ^A×]X_ˋHQ,ikFyM>[ΐ@ۆc*{үWZf5@X 3D(/1k.n_hLl~B p*EpڥW`IN(PA,}Ż;f!А֌M2k8_Ҟe|(?ol0HDؖcטnQ Z&"{GR)[K`[B=Ku6$${#1-(@Z]Ȇ}82#bn8Ly!_Z OlĬ)=' *iDGz0SM +,.!>: M2m]g5{A("NVc$v($m&GݑN)+uY$5r*o<<`A KuHܸkܯМ1dǭr>$N@">^E='ټ?j: k?!=2M+@6/qXUܑ?&#Xfw Gv_ufg:ie:#Rr ~wEx&6[OZzxnzpYﲬ5>]*D>ΓbM 7L♯Lڱw0}'?%UDl ;>G4]< OZRh+M* 8dk3ATɋㄓPDJs/ DxI|f7h&.F_WAd7Q(CjO,d_PDDO6t\޻C&3 y Qr%Wss8`a07!?2z Mkf0|_/XMͤJy5܅Q1XI01)n^!2ii+/l;QA?y Rg)PD0yI,;"7j5 >R(|ɀPVs"<9)*B}4JLjY}'b|“"sܝ\;O3}`ɇvI=xچG ES#Lt(߄|MNJg d%A YgT꧴_sp l?7eDG)escoy +{U"1M#XSsւ6k\ N*Bp[׽BsG,QMO;mxUt5SpeH!##ݶ|C.TRnSL~K}R4Q5^?L$M8jۡ4(a:'00|VP;VdV"5VXۂY&P3#2^fKS`oZ6  OL9QsE6_Yfۉiҵt|P~ RIzzʘ|BJYk?g`DxeQ:5SB2A̛|i*1 x҃ ,qqY W-IISUO-~.{e܄En+-\ذԓor7h_ܠR$Y8>)g7@)&.!OG ~F1}8NcR$IdL{t0򐷓~~ {(l=[? Vy(!Au tѣUFes) uqި"rJdXw} r8 +S7)wX6U ʕtF. vgS:_FYg(W:F*H6QU;HBqͶV |& Lm6lm#5CȿѥŸ]4Zln0"58`:`֗ͧe*&Cp\.v~Hҫpxej>] _) y6mT3!y d\Ӷ- ꐍ] w]~ ќv8wV;dcd @$gJmGò |)~>Ƈ:B|p;`$ 蠖+/]/'2]{ Фx)\d%]p6L1Ju2N@@5}% y ώfFR#Se=ŰJI7! ? KwV!m5BPT\O)9z0uAcnOP>o\!Cr {wbb˔GnXxq)!2eh(򐢠>ak@:)1]zd/ 0SQǑ1JD& WiFt<5Qi5P`(䈨_#Ѻxak 6%E Ne]2Em IXah`l+)#KzAWSW1SQ8;E,\T], '&uXmx1Ǿ0דOBg:GCF0A{/:*o⿖VJd7]224Œ őek6٣~;*6L)|s䬫~sUym"l|W鯵0g);&}4ҥsXM 7^5Ibg݈j,N˨0p7S7[ W|XNnUvf?+VwMP|<=- v^Vb,=Y@2eAXo(#.~ƶ l~$@VAC/B1Hr׃), qȡhno{j~PYijQ8 P_Ƣed#+7;衏l`S1@#:㾊LEuS?H\B=LB}oqM9;3Q13qN%{~WQ)0dM+×GL,‡1I&KDa?OŰV߫D0" D0kvq=[$Gl*'e}?LeOb7t-+-nf{GWH~GPp)rt_rfhzX,=ecKk^ >lP&mI+i7Jlcnb 23KQIc<nNG><ɠwxEy}h˾všǷmt݋s84xOL[)7rr $X;XD`o̮סSʺɁI?SnOYboxa8>W.iD).ܲ]>geZ㪮$Lo ۷ϛ\%ҙnэL9_- IA`S|ީP.oW2ϊ![֍}ZݬKK 17 (Tx"!1|Z!Cڊ$}T.(h9kf4Qrn[+e`ݪ[}ޓץMnJ(ZQ.}- 7k*<#SR3~RY!߮<:/zE-܇q0O^ɔ8wz:ݫ|(S*`!8WhTwS 0kpcVѯwQxVl^h @;G~1H93ScvbexziKrck<]nȲt.<3> vo2ձD7x6d>) `Cc &&Y~ur@a GU˫p> L-_t َ2XAOvGA"!'0G`!D*Z K!]BȟAevG-0xKRaC>Pͷ+ my5ܞD 3le󊷥`A~/(4Up#9>L>[055/>0$Լ`1P̿SBUК2,SϺew{.0qlQ5D($vE(8(IlWcݾEhpS?UnK?TZ8JңZrN-uH^/yГR"&{9>]iib4[sЄ^=@u\dFQ'GwE\MN29b_*Ȥ+##6qUP Mܢ[;_LDpܶ~fQ_5/ VBn$BV89[5TMVQHP!wtmct@m!dU $ׄ`پ/*s8y נY䒍!ڻhCOyb)'|z2MyGkw7lܴ'`sn:6mG(]7/]՞["_p0Š;Zb +<៳T KI2MN鐆ZW Fdw콏a|ahgn MSKŮ DWrPN/& P2O4VC'mI\vh2l&3dN*Zo#3]m4D@bA`->"DY6 La+Onů̞$:vsbAIF[D^9XOvr:d7.bs `]0VxǪxNle_P z3Gm)k/xr5L;)Nˣ XsTAm4n[ccGK)s_ { Z\7)ܶhDXX k˹φzSmsXgOZ(0dW-%_Cy9Mdy(5)l |2jTF/A AAmT];xBzRU%{DSE/^Ew"52.W. ֑pYby$F-?4@xqĠ + v'!Nh,Ahqw?zhΠdwKu0u+R`:g-Q6]G+{+ BX\,yJ|zgI䱄W UۘF^ji7rj)<DK)I8aϽ18q%}j@pQm1V8Hd󞡻&9:%ZWZWS !vT..wpFvàiͻj~՞Ψ $RzJO &#>sW+q)A'ܢ( JpN7C>yoNkYӁ#:*nlv3OC轣Tc]&]O"߾{Y< uO"|]ƫjS ec8pHJ`Bβ-=b]^U6"UT@tG#0(XɖF)pʊ 9)#/pgn5ZC8'`H/fjpՋO`|џS1~5Ih[VωE_u 4!6]X؍!y{-;ďꢻgw E5j4pV'(HgN*놡tUd\C׸ U] el^|Hl3>'p )uB%Z{]}.yq sl$oo% x5"; 4o,aFW‘+dPm XvmDJii jSZfğH12=[>:bYQ!t)D84y5frG$"> H@|ѴA)KS6(&*Гϥ^|B5IPZ37mBnMPa:)~s1*Qd(Pfx1{?+!A 1& 0ܥO0L~a$ԝ/u$[(BM& ֈ0Kۯ7&nO;EyZ?,g'ʽb<:1BH3U!C.KXhscê"Ԗ`0,9TNbQ#]I&УTUjь`Wdž]Z԰*q/E`žg( ɩ5:7-^sŒah 'Fatҧr2:dhDȒ>Ϸ'5OtEEQYskkyE2i Fݖ>[ .hKUnf EEpYP ؅?9YN쉗?!R_~rV ٱ" -AThe:& ڟXCz+;sU4Z(Ɣk x3a!=VDZs8O'(j)?!+AKK.Celڅ7!  ~`̄Ց2APɵk}>νI=Q>L񮫍9@b wu=&y#o0atGSZ9H%3ҳsr|CFI=X>sthxYOfȬ#P(ڳG'htnT#,?!НrqɗVb#F<Feהzɮw=jܤ]jeg}5ֹƅ ,S7˯R豭_1t?A$~/gS;-o6=&選mxԺ_tL,XNU)F,%B3ӵwG[ /'Q/Q.pp`sOԍRR q )E-A@$ĔPqY+>;h9*|[pG~r/l`_0>ngM+;x 'g~T *%nPOF,/ѷY1-Y]g)E1S ^b T6U EҼKfѻP]r{P1>|W wLɍMl/hucOބמaaCON)tFI&6i=>+ݰz;ʉ[\$[3JR/He@`H{Kf}66nL6ZL-†ZIK4d'`Y -ަ~iX屃De@_KWaD8sM e`:/f=$amK'k' #cD,xVg'[sBAeDק*l3" $z{hوMkQT!I q\O9EKB*^ OXA-N )-bma(SPa7ulճ>ي#7#5 I3Q)7fHs"6=U ]A:+8:g!L][3pjXaS}.޹Xuf+hU] Uf甹"jcy H)&ߊ9fjQnӫ I$2+%@Nb][Ek9NR5W{Te-6&C|}aF?;yD{?9M9tEkMo\ڝ]!~,iJkf8Gdqt*YNrئVuނ-HOLZ-g*GH"*(2̧R_T4a.@vt%^\yGF5rT1Yiy$ֶ+Gq#?"'[?ɰ͞fr9a{ŭOג&_ qY3Cs-F;`Dž[;(_jL! .ʼnP (V%n,2V cj.p>59E-oQ0 IY&0zm-l&^0 ]<<<`6>ɡ%d"%_&L}ڎ%ΔOyʦ״fA&C}"y<e\ڃQ <>xA2grHѬU QI+Xn]8 g,CwIm4 6z9[ʀA8K.tƧjJ-p=jZMh_2sV%u}~9Ċ7Wz%b7<1N3aBΣ gh&gkR/ɃYc Uj7!oW+));])\OX zw%*Xj{Z!'hwI:UBP6nd+<B]#6d[5yPfRTQl7F ٪aBol+yK% }SeR.7 2VFiԦN&'"Gu lQpWZBx{.բ R3U6KLKum3ڜ4mjr_tkgL%߷7{GD^7Оf==p|K#M&F>XdVPT LXWy>>b0կR&aYTވȡU}^Я ,Z.%<?20-rb(e[cX엘~S7z %0:uĻ> K=ř+媢sV L **&3e\t@j ݘR&B}yۋOK4G78hWƨCf==E@op\an- M# "0 %X8R$"‹N> hԕe[„jBtgaVh[Tu-~寥6 ]mme߈F#Md˞%w|c@*Ka8vY^rc&i~.;SɃW[>P { ˟czB()3OcDe_w]fn.Yj/E:tW0_ $J9p$1i -O:uH8V|˃Œ|ܝ,݈J C&tF!< =loe@o0fbWiUNr>lK~qkciw7'4nHVEA|#`6Mr+*37s(tZdbn7< K dM͸ZxC _*I@Mgwgj'Z$0.E 2/⊝ &Ƙo>d_^^޷t Zc9:#(S;gd8zQGyt4=@ ?ݟn۞qC̬zFr-*Kj#-sq59{uOZP}èmZE퐙Lڼk1wj{i<-P`vQ*[C/u [J@JwfBV8=QAW̃NY#y¦C VK)<{Sﰾv)JF@R8VOݵ, -/H:k|9:b+9{-'Q:6ؤݽY9<^2N)_,E'_eqXO8B;RlV.pmB)c#%2q]!2'i;H᧑'\PL{Mr]%w_ cMADt 髙X;!=aBJ i]YxE&%0w]r|WTȢkNAFz#ƈJGAt[8J|s=apmAN#eG('?\0j@J5 Nî=!Y[_tW>Փ|D@&#tε*YZGf?2a0]$n"g0|S:m`CO)}ꬒN&e gHGլ꜌8B7OkϜKn@]yҍAw1MGT_5n,L۞}ch4xah4S[iI3@TS<\?VR9bI,7XFgj71IO!}y$f-gq"~ϸ̫Wqv`,-̜taܦ(8TV*Pyl1aNŮn&;ܡ/9~ð$$Ӣp^J_ݨtVH|QSFgL帿qitӰq햷n_\]k$YKcO`@˫'J3Lf L5b'2fʕ"Ҏr7฻]3YQ\$m+D0\mNfS:\S['?NqW7p\`;on2쉏ߠCɮT<ɝUr,+W%OR[L$m068mLRAX 22~־]*{RL^2sgK}!p x(9(tkJog+L,щeĴv^ QpfDϣA>S]E,lڧT0-^Rm^UO $v =t3D[L(bJ[Q#-0lC73$dܬ$%GdkտZ45Pq;oCI1xv (Yb`[\y'$ʁ;EՐ]> x .TRݭSxnBhs4kPgsG B);kq;$re~R}7!XnCa`_]A'lOOEv eJGNA/ICyn,z!t jq.%r1IXD:l^21z6_=vd*3FyA(rN`GEO| z_PYfSlUߵj-quS4cY6q16M} #*lDQZ\7,ŁA=ʊ,|C펔H <' Ȯf bhJfy6ƑBmbfuS8P) ]_Aϼ7b%1wƐCkُ!^q7º+ۣWh.vOܸIXNjS"ƐMY5FxJ#RE0)hf gMyݴ#p`n|9NྀsRw\(pp1F۩[O8.Qǂeɇ`P)|<vY~ԏ3<;Jo4mc03ʇ8br%êPe/!w)k7hw求nk_88[R;[w cVdp5R?'CGo-C'AڷB PnV,aMـ1j0iSuɻf%*j8TtפKry{Z8-4uDrjru15J?U d <:TnAYuE f eK@yΡ t7/NgvZ?r z>- /-#lIS=d"28jukѥ2 ؔ0 #IIa%"FVC=WA7~6DYA`眜Z0tZU2W8<;R]{mV赢ypA>b$ $)~MY%B`!X{]IW횡, -yQ ,hw#Ў1y(`+ffr覆mHעdu_pd=[B؁گܸaIW<]pќlxRrZ)٧hHux+WffQY~8[-$.Ktlp;v*#cyy| kPXINc,CɽbvIK񏉀 %]+yF|NIA*ІHAX32V|guL #v'KȅPZ̰cmz 2ZKhQ:0%]XϺ) "GwM_ ֙ :f^mmW[ՠqi W'R\`ߜj_G]DI҆T *ĀsE/#w)agbTrZzOx,yBjLt]f^fG򊂷OM!5:@<0JY\ \7ʮE<>Ѽ:24t!m9\:9)(դo {)`cFC2#~8lh5JL2UaXI]z-ψ1 \dT!'DcUV4sv#%@kԮE؉n”G-j%egzx~'hME3dWny`NY2K^Ճ""jDvX6psU2M ݔ;"swcK]Ȳ6t|@@$Dz ߈MBL>#Ԁ6"/Lm,Zq"M ꦦJ*;Pڙ&f|=? Oj+%B/#Xz2́ϵpރhi20ĥL 9:SFd4̠-1T ) F/嗺'moq kݾ&ͫUEҘYnBbFc]wQ2U|Σ\ -+ ~ ݰ[&ZI;;'9Du<xiAPyT IW n a=z~e)=0ǀ~T F\!fn$**U`ҮaM7LN'3 ;XgQ{LpBд RX>A]5ŶrEWAK)̖JNז]ĚDaWKO@Cm|vJt]yVwUH汧O7RԊҥ+AΉ)\SHk{B3,9Egc|%} *okb|u\ȻxќZ0B.)Ǚ4faTJuNsH*#4{h%B6]ML36m3늇P& {pM%HMA :=x'7ќqf=*PEUݗV]Y"Y c!8l"ɊM{X :u&Ql=i(-[MN6A蒘_NGz B)5l,RV`xA4Y56:G?vh6)*B(CM圤KhQ!jYYX6Z(]:Ӊ@;<N v Iϒzwn."y ~v=lEAD;dP]noâ14jл=r]o_#=<(V8WD a՝:!_[괰:b&2#94nI[ TD*uh nJ$Rђ= BɟDzD_ƙ kУZi%=C,Gr'{i"X,a\w0r LgCkkddYL6Q*uSg ŸQф 4T.om{us޾ Z/.j>I]O]VRG[YT wP( vH]h3lUDKĸs,%(o͞>>j>|EN~~bEɺw&LgC&X r2漑+*'y0! !_ZjCd`ឆb>pCB|sv8tW$JFêEHi46BdH̐NTb:N*VZ+dBFܑqkw}62e߹982zQ?oI0"O|U7춼(S~N:Cr`eF i$SqrAĞ֌NmV@LϛˀNkBM)Y՚?hfs9K=4eaEohPY,DFԱ“:$ P$։J*~|um&IA\mHFMΐOѨU)w oszbŪˡ|l2ƞnn+Ib08*0͹wPfr̉+hǿ&Rb><м}2Л'_@e&gԶ΃|х}%On\i<`^vĔ{T3>RBqDNl,WEwv+>"pLfI5'w_浧Pu9."8's׿  p1};&rxs8zO`aQ'])wrI[m !|kCMzFe|7di +24OfҒe]~R7! ?&9]wsPjGFd)CA(Mԟ۽? )GX9HB?{WCaZ F"]7GɦTIR+iǝsS?)Ppaʡlڝ0,y!dlQIu j~9)%d!,G%j[5 u5|ekn,+2RwnJSks/k. LcSDW?q49u))[Oe4weo>{SrPB$*AtFs$k +txh+xVS*SP>-E;1c#GENU1pWN@Wkݡ{5}uY=TBOR<>7T'+`DCX m Qmi}|5㡤BMjZgbn&27Dݽ w|erIDtRu:@ɰlXIѓORD"iCRS侼]TFi:]٫&*#n.ܖc # 'SßR HbW9+0OO-kH 6}(qN%-A^ʛ; +lH@TD`C{ྑI/)ڲqoY 0o-=5(W܎Zu7*r<3UZNsprі nhvGK_RPb\wM㤂9^Z[_ &eR,!rU9i|Ju}S)wޑ]>{!TS )tD]/]ݱyt&CwP ,4h vb؀mPu|\p+tp/&^>(J}R&[mlrj$>ξ;kHuenMg%=d;E#٥ KxG%IC=?j}9ALXN#*?= TCgQ1<NI`.vV!7"M2ڴRRn,El?f͂570K2B,'K ox,69V:5e_}?Zfų~B˵(*{X1-7GFۥ?6Dety9@_dž_D=cX4Ah,|:,R1U?_솣OM~)MN>69]PL1U fy&WcDơ4;"wivj9HRE sRsTbNE\,rI{TUq<t1f#b5E2F@;,MǦEO:Ft.<`o#-/Ber[&Xs$IPK]d-|J'ᚺƱa ElR4YvOA1>t7`^]#)c2fi]lsP[uJT>yk,Ѧ-ahY3# ë|޶V_[5ѴZNd+ k3Z*~ٙhz5Ÿ{6.G{v991N.l#юSC 2hnܥW s\׆U"۪YaOYߐʩXޟ0^mut=;Qjb.>&Yy$b"(I"I|M[ڍ㋶0wJ0l3׍J5ˤKpyoskxl'$^ ([4 tkVj6r>dwU٨: Ѐv.`4v4Ρlcj CEs<=p˵';J3JG*dmxmۊзzTs=]p :L͜hy^jk7bfB "}L%r%uUh&^ S@\ꢛ9~"~+^R^~Pne@w,3}K_'ҞR"'p -!^hXhr%RWEǧ )6iY*<)eٺev1nMrSO& ֯0B9i6wo2B=n M?) ZUU0} f.]"WemʹZz->1~&/" LJX<s|ssu2P4XJ'wZS6oP V&וiY?v1m/BO&a3Cg~5iyą^`EɅvyMEHKd?j7 ez2=~nH…r:)W#O 4.7#]/`0qKC͜t&wWWˠ"i?+hp+?k}pB`:\8܆KE-}O\Scc3Lk3ܪ+B R3-oQ`tW<`dd>c];5K<[@Y5^V a[<{~6 0e5|KGnPԶUCWLh!VK8z M(/g y"\v]B?[cر} ( ^51ؖWDXT,o,<0#X>!nrˬ@҃tT R0b82R&H> gg@tDQ)4~y}tL;l!ɹtel5Tz^&N&V KrVkvs|^ !i|L,Y5C`u/CR`Mgzg 9-Bڳb5-:DVaЎ.Vxt"2Z3Eҵ#5+87]f)rRioN@q+y8b MC,UHqݥˆեQ8.x348%+e'!}3QKH^W v9.,.z:WܠR M&c.P&'8ĸXnMWZu%W@NQR l+4}J3WM|؆El&7H Cr,"XxML,H|Pֽ#i'PEwi']@S(&)x?F K{HO3Mbӏ~~Dؠ֌h⚞~5 jaZDZQ(`;u lIGyk&~I8n2X]~M`_4A!t_=r/$39ҟ09*+Bv8Ў% 7w[ͬ^:ĜIjJq$l0+V6F">m -G.PaY7m ~LH؆têRm ga$beRx A,uwkH?.DwM`tXӭ^Y僷Egq6c*Ax7q#o@PڙyU-<LDf]mA)zLE?ZBƈ}Y"9]4S>fwX^eH5k ݜ?f{?Oγb}^B! ]2OXԙfD*KENY6$s]SL0(v/TC\zDGD1_Cڛ,'9-F4Z*Î-:KDԃN:%hpP6߄KD_2@Lmzf+'Ckf,w4.^Ζ;:w?3sUހu&/qx"aL t9<umnV\̕i{f<a%{oTE @) Fi'K8]H"2HN&!(ht*BEP[rC MDhfè}dM"[%k4DEAכػ(iX&,Rm!Zɲ;aw$֣ʁې܍31\2f=p\H|Hy@w폂yx%y6 Au>9ëvb&~L[+^d$|E%7cxkY'JNC ,#irI}˴bRDC-Y jnpޜf+ӔD-wX7dgx'-\M3%FbuVߌz濪x' z28"˧RD=\ж#} S*c֯oø|e =.ӷlkZ9al)dWBcR[!J }?zCJH[vZ :JS@`y۩2 im*bd!\y/.VR~XXD)7`r j }JPb/,w=߷{So'muRb#r :rrï/ao VJHpnq5aM9%BL9"d?oVfd@9:+˓^4A>-ʺhpy,DaO1OnjzbkTDϟ<_ X(NicLA2쓵mw#,?䏛*9RH#zs9fIR6ƦÎѴ!߷G%m&/9A/cJi'7ˇxgG5<@(Q֐ns Y{N%$`bZv z-ç]&}3gЇȹZ߻c 3J7 ۡȒcW?y080Zsj҅<0ъ"u"bFեWKA2 +b @y윍PeA_9PB [yk*/N꼇_ f"T@4M b"x3& ʐ^AFH-u&h=ߖ7t*l/U ;1C3@;uoC9сFZ!ˇ<@PK03P9w% ѥ΍} urrFZttEi0ۖk~Nl46PLĿ#"#%-E#K_~(LX6n혼|Mfexs}v:ٯ4) ],ŴݫJIK;*W@Jxo.~,6Wh])sr 折!)I9ag .C;jj$ 7h th55c݀,3ʿ;P\7{7 y˘f>0Z>M.ýaۡsXcX {!9b:|VD!¢ W VUEА7L$}(gU1^~bh]e"Eվ(T[al_)ZlWvm-M՗O_,qy!-AwE;qܶte) #mYPQA +'7鋀ȅޏ_BA 6{d&gANk5vNYO쏵&rUoy(~ }Ow=X>DzBy|`AQ Ť#8JU.vF#+}XN*E!*{3azm}M860Yg7LP O3obDs@A`*oθ^sQoh|CS0g$5}AC/|XrvPZ>[Sw~C~ٜw덥Ymf`=c.6T+Mm%M,4k&/}ɰ7W8pzpxMQl~ 5Mڪez2CPPvc'L$$Uw_fPm&Y +(OAYWdxyE2;a_T<%can1.NG츥*g #̽%~ؙz-~fdv}kJ-`n͐SU~ q.j 0f㣠8ǫc0pe/G-mc "l ܏+D9޲i !|==ʯ/02YԊ $#oǦ4c1%~tcrK¡%4sM' P9^GB~8kM>Ko6v]M\rhgfw@we˧X1d&$:B|8}^ O~&ҘPώ".~C['7ڬggzlNrWY3~Qo<~j,S;AM)̈Iqѵi5 fvC8WѰCj̳}ц;/P80 [C_Km q 9;ҤTȦP! q0)X~L_tv]vZi.m}X7MV8UE%8gw+cv\H(@a."6pځ'{WPl̪Y q,0 i%25_~~з'KW͈1@5K|Qsa_2&6QzXI>'wNIYemWQr׽ ƧT0v I'O^7uG 870!$cɑ"(s:#v~I4cfƊd}5^pwIV#@oU@8 JKT,A:0 e~֤,La3A˕d_riWO.[ ;"m=o$4nJ.E)9e1b9+yz<57F =;q9s ',, %pE,Ap"ۘ$XѻB 5͖\1~mϒ?FHuDƪh}ʮv&g=KsJIoͺ(mfE4DC+ \QTTQJUH1ؐv-x!Z\Gc7Zt Ai =$w0-H޻@CcmQk4TE]!oAԳ0LJH=>HT1]QŻ6d^; Ɔ .^SmSHLV=S{ւ}W_>'MEﳧN.'Cvg]?R)sS5a7.yQ͈hK&%W<}ϬR'FM ~S/_̓ Z0>G_r(I@%jكf#;sKYRCa9t)Н&+r8d烈}ܗ' Ծx=]E*%OE,! jI 2dIe&e{8{9šaf @g‰J2~kS E?5BCT 4#9[dP~ݧv0쟮HD#1`-јuf}߉>:(U kHmGETgCY:z13F4%f]αQ|w.|/ ,RjA>Ute-ھ̎LZyY,zmHb@jOw@T08 [?)G~6^Қbe:A ۉ y(\ލu j`iJ8&HQB+f!!6RnO s8Vb`U3ZH욤2 ТJX!mۜҴ%Ev7 4|NHTuw/Z֖gdɝ)z!8jriCuIT|-Dcl{^^;y'_!D2h hqB!~UА;qh$ MBlci~{e0@e\$o"d ϛr72icf޽r;sc"f՝$h4sQqz)s e7wJ]]_!bVCE!CB_0" )ect=!%ֈA l:Zۙ||DxCs*k_%Go -[Oz4{nS(;:â\$~XkHˎ֧L\Oh 3oG*\~xn S4f`]jx,P'бM1x⯻w8h2jh+%S2mU`W*W/5jt+z&Tٛ&ΌUѩGH"2hSQ3&GH80~NըZdmgli%1NVLØʺE.+&n&[\\de)(.o!<ֶW>j<-2/3*FkE$߾2 ?zpԶ6v??c@hYKw 'e}612A] FNwrO8;o3+HʍnԮ?A,Dn2ӥRsgvY۲74./pfi.2;=LejHj[$蜦i)fc ~mt)ŀ6"?-lrw~m9k{t-_4(*oظg /E2C#Xuv Q!N>Ng4IU^x W6ZVѳ&F)/!i鄴oU0og& PoK훮!/LPMkXL&'S^,M#sYQQKzÚdm= נ'>A6=Bd"hnK]v.D8N:2'P/#F9|%._ $c*E+’P4FO\ngiJR_ 8ap'x4=(߭b S::)j-8I^ d2XĢB+WE=p>g Ѫvh5 L$Fΐl!<(wQ?Yά:<\'& @q=="jٳaBfZ4],\x2#N>!aBNn#+XG  P Vo#f, 1^*#A};î`E{9 ._+~w&p>lY_{? ؾD@66TIcD!)bx/_ ,B3E(Fx6 n\%O:ӇYveeb^d8+jx@_=680˳𧺿(ļ0>:HyAdWd$H6*aők)." ҀT=M/BwK!Ʋ;ׂnhUj9ۧplVb;m]=y.S*(WyC1ሺss4 Å6^bҐ-8pK{L bۊĔ a$R W&/_H[ߌ[cSNGjE#] DtbPe@_*>`!`Qiޙ9'l0 􅿃@*fb0*9Y2*_aV&$Wnͫ81N(\+җzn]jx%jz]%8/o&v[r\P@P,QF9d Rjxgb=:V<`|ʩdz#TBzqBJBtqFiR-k=ڎ%wꋉu1`3j&`pͧ4g6̘2THmw "W2J\/EBFZ ?5>I.3yhA]x7+ARV^cEf2+JM'٤(&:;栅EU\IY of%[?Cd-iǑ$KcڒEoelojVaT)iV-x*<$9mMI-Ǻ$RQ (dr{+D[y\UsעBS#sew]8W:)c%EӨ9v*kߥ^qU^70CŒbҭc *T:0{$3w?7qJ<4 oTId^Cam `V-;sBo_gU{0"h[ `ioiۆo44N)IЛMV'ʥ)g/ Q* [F+nB&.ȂE6^?os>q t%bƖQ͡/luW8 GiO?6VHT :T1(ݖ66!$]}Ԛץڛ)aVJ %;5Բ`az`ڰz[miԘ&&-̑wۣc޲q00Nu( fe׃r~ø%gl&h[_%\Sѹ$7"~jIZNE u1" vVW%;:kdŕIaHv9Mq6$c+9)Xt52eW(SQ O&S\xaD⡩[UZ*T?nlKڼ+}=ݻ :L4' $GP0/uV6?dm< 4r2mY%y3c#.s IHP[fUt/f L_AV+5vیua }QER*NW)y}Q,`7bGNt0h \%߻eAD1hOQz0`cʓD-"SrSVoiZ熇EH0?(*s @t LgM?rI+s֜ރH*߉|N~j$ SK͙Ʃ-#n覀r<ϰ'IVI"< 5 G)8[acKIPdŠ@,1(Cx+]w `i8 5q(*;eMbo[BmM V']^B5W hiQOh[SPt PV?Հ??!o@k*7I+afeƎS.wYM $úKMv٣L҇I𑯶^dD*۫}i!vyJYb:,e`J0 z),sEݗLI/ _{ӇDQj]:o!PltTAC`FwJ戒,s$KYIEK IZZ)S5w%.*XΡiw Ό啓È| #{RJ^vV>^*τFCKLJJɛFW,~,m3cm$"r7FеHP;.l@؅gt~#1n@8Q/uHAH{=Z^U͕-Ⱥ ˱޳Za?(z͓}K*ՉZdX&w 1@i8hl8u? Z>NT}n[c{VE֒MhY]bs#1սNwʝzN2Qd|NWϵ}Ll tx]Eb2'i!f.ޞ/;%20kѱ~jh&`o4w0𐤙!յ"?^m+?b`,(sZsno~M|'#cmƽ6zׁO\A^ oRd6|/ȉ\+U\cy^B׻x7smĬ."% oMMAsp_=hǚt]a Yi肽zRs+AiUz{;K-ΩͺmC5g8#9:.S50(QU[9'nbS%uWeM]p8.)0DR yo>K'CF.q" h[*̒Uߪ8{& NoUGij`BMuGTk–Oyf<e1$IG;<^×uf> cY>ZcWYހk]x9ۖE9,A` qxMӹ\5S ?N~4 (Gj4|$4!&^h$yc;9dI& ڤ>2z2v9hrIl?P6=b *+LMW*N1t<pbh<ʵݑ;;FҊTA)D} ķgE:YEweY'Ly:&=,Ok3Py*A=,f&)2 ]5Pr5X5`Lͱ,lf$;+Տٔ4dQ1? ~393}UuD)Qؐh$ĜW[3Gqgw-AzЇ7V&&.[:\Љ}ISr6y!"VfN-bZU1 ,,{;ͬF'4 <̼Š4:Y܅֤덒 xmbV Q%Ξҿ8tMƣ<4(`J@ 1J:95 7Ft8T* %2QA͢lJ X< E*fXG0u>ɹ,1- dpݪ7),O^koJrEhUkP^WBq㫊Ru?Kר&6XM(<5B~:[73no#~P(B<%X^YLω_jL=.W&\ocӥ_+"9":n_d%u&HWMX'FT$NQ詅P>?Z~3ŭ"[^l>O??4h[Cd%ϗ3?TlNP52 fN$se0Zz~]E( [ev;Fnle{@O^C2d'ўa_;p$ؾ]v9I7VpR\e\*5S!S?z "GuFA{c]_`ccP0We 9TXg$`fz5HV__R>l&#OO2<93;|D ?HcOvDsގfK#3ivP.͍9^,*.wӄ[8hbS_XW Qip׆0uhطclx(;i'\Ȅ1_,O8|;+\ΑOw _wLGx؍6K% 4Qf'ʀ7.9#w5äژNl& Caآ߷DdpE4!)l/HHR?M<X0z&Ȭ r1cpq=G:q_*PJ6*67*!S:H{Nԗ@)9w3^J#S6U!4n (+Ҍ5P TJ{D\U"CsrZf4rqh;wbÐ~2S*Ee!=<ء.H$ڟK9^dl5/OWECKfӅƐ|DCR|cT7DF>nлx:C).VoǮ=Qp}k>rGg͆ UaSެřnXR+yy, &.$UJ"ȪO\Y!e7y<7Gj3ɞUʇ(}J" MJ%,]hg:z 32 s*JPǠ총LcL~櫰zƪOAߨ7ggJ}V8.T=i ih[!p"'4qZ/#7|΍q0x 4C LR/jsV+fԐ+P斜RVCMI4UIA0lM QhЫ{]a|0wMwad-]J='ib!u*s&}T~~R0) Z_sBКfh%WwB j9>7lm3\cn?̪stׇ=XD΂U-ٮiuȰ5ߩN#)w%p?;VczxҕLUEFHjla/?!Fb#O& 'NĚXkf\ +ү/OĪ21JAO?0-PT2$C$wCJ0Qg NղAq)%܆=s^H$zQ@zGD쫩p'ǐbU|>3: P{p9#[)cEş ,XYME ( C3[?)ߡ-vL_z$XKCNǤS +ٴ$`bv7;Xj@ h'n/!gSہr"r1A.%~+\u>&ۘ- g'_{Gu7]nAi]nGΰγEL42Lq")zoj S.q"o mgS=*rUWn*5]3o#J*z\ZH~݊>(#m5H Hv2Ck@U-4W{Nkkrc 3qʠ~Ci^ٹ@z(6U/teTS3BrKv*H_Ӈ9խ׸c05Mq zħeugg6VϠ{隲ͺ݀gNE&pYP-:ݞDocjG8jӄK#쏌&D{.o +Ӄ+8Z#J'%/`'늵d.'MnH0Ly XJJW+[v?8f#K^HRؓQg뗭Aa󖎤&` _:̵^r:PG]jOnǹ_ oA]RBn>C eV q̌Ά,~!H |\1xZqie}9*?8(zDe( }UU;Mk^*aL͵iCNȘ:.FB輧ZPŷטD i)uBr\bvQw'1b "H#Mv\g@V{ iٝBMd+jQEʼBX9k}[kA QtckeG; +Sn藱b=Ϻ:7t$To6KX7R*+:ź% >j;Jz'A\YO Ś !!-Y#_bkxӞFז8T@h6fdgÔAt hx&7)€RS9mBc`s cmf"~ݮk&saofN69tc3uHlayD6U]kѾFhc3HX5`׍H@nL ?!VM~X56/,praiRQ8.$;8^\@ycy&?2P2LhJ#5e@8$=ޛ[Xut7sl4uhɐHDY}m"5Yp`tlj ǥ9vg 4W=A@Z<(fZR^Gta#cKD`C$_I\ &&@̙/S`ѷ"9^bbӉM{ېS|"Y_69'o꧹{]_ 2!Zvra,4ۉas!ą#EmP){Ĩ'6~J<32]Ā9P|{?XR}QG7q.pܥ8jZ! :H"+3j( LRl@RbDN6~ڊw&Ag9>~v<wu%vՑUe&Z:m>;TEeCwBVԙu\0S[<zr)4Hngjϥ PB, j,w2yu;pHA&ݥԷĄlm < oG2F!\6ð{#F)屦BvCD vvaUjءkTb篍 \vg)C^r5MG"Tx]1`*kbIWd[RIz][82tP?znW% 'I pLDT# o(<`9Syy.ZѮR[D3ebNw̋j#ITPJk<jA/_z~.}5<+#ٶ _/¿Psn$fv]mlD=]M@X"shʝn% B}oKo' 4ZRcGV@IH4ya*rqy0/XA>A" nZ ߥȗe?7[*)%I(5NOwL: b𚸕~o߳I! $BP 4Eݎ!> 8Vo}}93̠2q9q% d>X/B]bkM/8Z #Ӡ>QQYPW˸KVIzY3z/h)ԐơȽO smiTgۼoERnqO>VA 9ס _dz`V&AM|~G(ȳj 347dgndϢt)*K'h"hV &GQ(VKMmY92)<,gW{ao`Tv`+Lm VTnܕn(7hrr~}?6 &HJHP|S<ܬnr^\AaTY~9[TPRZc8LY:$R +jK\WZ1BѳkK)eLQ*JZk ޮSLԭ`{/:e8L4wllFQG̳X|i({Diz)? х*m`,iY„?mŖ8,V3`@2P%oA4Z*B * o5M*T~O^]i٭cj1c}C2 xuC)ke:>,ď @N?>d/#4g}b)na!$/z6>ꨪ 05rAυJTsBz8LMdc~^,8xNty፯ܣBL~I8rG߳ij&فy."HTtm]Cz6xe p!0@n+K*Rs ǓUfl#Y[ C!mGij⌐r}ttHƠ'폕GiElD6.X[#xd7O |@'ə:<$2QG52C5(5㸯їGrEU?=FCz)ň^u/n+It͂`(́H I/Ÿ}[+Ń %N)D75 !gR3*^0sȐQ%yuS;Op%z"t3kSb._*?: .NgiH&oV }{6Ew &Ѳ+c߆r M<>ymݴц1jXdhE%G< 2|S>1Zˎ&JPBz..Jr`6lN"{aTV/P!um RV 5[-i%ĎN~4)9N ;V՟GHL#$+= ?ƾnQ7hsޮPpn^gQ[!o3AЅy G2VYfm`T$]4&7;0:8xծ&$ͼ2dꨩĜ~J~tq ."L踿1v|ֳ?p Q688(ɂْڕ|{3|::ǭ'q 2<{P1a^5+MiC<}Еg=,pɡ.39Y0jB G7̧;i_23I)1ʀYE$ 1 g*gf@7ӣ%ff)*$נM }~ l'ٺ /AO?2\>з+'t*:a"iw3?ɉZ1VlS!Uj38 jVOuԓ0.Vz(Σx0ͳSIK%p+p:$EH;u˩Dv6Qn24V\?> ,jMe;ew$(]V 2-h~rZZA7ߍw *R2U( =@1Lh/hp}؅3 ƿyqt`iGP80vR/^EvG~ sP^;'<"X"/ic}<^p,xMﯨ۷+lm)7Gu+ #ฦÏZ@5onZXB6n)E[mml0[*YDzqVvuu[1iEga}TBRbgmyOhWk 0^; Z0u#J/ety,o{˫c[S(7UXe`?@N'v?NK^( VT{g @_IX[1𭱠Gb";fvǭ {"%sR5 lliW/}Q Fݳ$Q8\tmd3( x9$+t٠qiHMHힶ|]#&ڛ6@!V|EW`<-7Oy>=INn_o;qx}r9 5@|!\Rv%' ҏ'm:RfNZk$ΥtMT6O\}ǗDU> ҚXGqpE\wˋ@A4mߎ4cs k̛+ZX&īU-?']W!h4 Rj! nMX N *{ʪ=DFde*b|ɪoK<6:qn1t w>ߚ]ilvyk-·]Qf϶EGj \&LW*^1!虳 ͔`йzi`ft9\\_ÈGBw0zqmtݪ}lFfRiw]GE,'ZԺ~K&mꖱJ18A[܊eBJ |s`e9|,DjRT-NhH(/uJBf Vi'(]Y61nd>AEUmfd<+qsG ʆtv' ߦ.kg4 -Cppl>Pn:+?]:ط^?Cf%Vwo@c~\w\c)Hf;dhqT Rn @W|$JOmmd`_]-huQ]&R>xM?xޣf6-c҉5g{V<9&CuFV'~ZcE4!YnYIUVtX=@펥H0QLtTVA"S>8v 9?ی46r]rcpf -Jϭ-]N BqL g\fgh̛x +srڨ} F@Q_E׹1*뫩<:c<>}<AXn5`Qc }+]ɉQÄ]%iSƁ1[36(r.)Z`2jXв5(#y16o_-'g~8ԵMc1}T^dӞ˂w򢤼9z$ k ,XKr/|DU|ټbNPw}w#W@;P1fl ЃN 28sfoh/Z\e!CYSa KuL^rP?9n@4Acͪ3"^@mYxMaY^v>T,7R=$D? di` wu4+Xh~ai(b6*m.Z\ hI%>GB7k>!$2L~53C bJx<)R_D 6#wVujİ"c9"Z~6P%$T :M; ?iEN[uu |m#E l M\ 3BQ\䬞e9-۲Sejp%Xi3vH8:2_,3޽=n:M|9b~y:߿2>bw'Ɲh)Z!)i~q A26 q.vYԲejdh:jKcAK5ڇRWn>5g1Wk#(vG|{v-#/z=CKP%6qYuX~d%4>Jt|aTj;7GD! j>ͥ}J~X5l2}& ^"Ϭe{% =hR]d u]3JH;J:y ’F Dp #VU Ǧ$ljCv(5X{tt𙴃@a6j3W6" 8esPunMKg6"+oˎz$r;}1pUk.r `jĤW2 Z7F+H[.al%x8b0z2{2sQR?Q ;f}B3%GOs]t(=RiΥ`*,YE)bE\m6ᶯfZ DhcTH::׈#=,(5O)3fn0}:ږquq@\Oryѵ#(Kp"u]qIW^9U'4޺  =kj HE)2:`:p}UOuڔF0qS\DpBp~:?¯5\/e^%6Pu^"&|Q}

)ܺغo$e(:/jGpUUQ7X' C)qb<:sك[ /ؼzB@n+w@-?*tfnk{ U5=Z _xr.e0e81LEK sxyf4#9qc\G@waP):$^S3`_|D\̰ yH~Ff/#랂3:kÉ,@DN.̷o/i$AǃQe\?]|6X>l*HjC_┸453Τv3@&nbRtlrǽ^boлt*5}KㅻE"qt 7ꪜIInsN_c/5zgx[2BaÖ-m#&}_07-| *hg8Rw( `­u~ ќ>1?gh,zj- L%9ӧaVi[ɔްjzeS瞾5|qs| ք aXc -L`Q`w- 2͐7E&jPT<%<~˗fo3CWHVd 4ݡdbJ7Cد$[9$ڰҗ+! #I!*rܓۮcG Q)H^iˋqn@#x57by쥃k$l1(lTk$kjLA"*8)LX9rYͨ) Vv1+uϳ%OU%s͐` \TAlqpܐ-sݰʈ:lkriv&FSkokz ^ڷ#{鍢r>@Tj>p-kf7^:/ u5QsZ0[z',0^fx_k|b*!6bS+F o1!G6.sס6m@7մ^IK 'U^>֎j$or Tw6h_=qGhPL*61ŭEց{S"?F_Fiov7?ŃH z1/%nڡ1B2hIT?LLTj5>O^'?E"(I(mĊ WX]\N>Q7ѯƵfFr2eȧ'.]4?MRCa7CSRi5b6 3>|*bN,j۶R}rqlb3ftz`~p4M~+Oo>篐VO.HUָ0SB$yjJo/4tz:3%6t:JeDK/U->1^9Edn$/8õ*yUAlMa qWl-KuAq%FmƗgw)3utGW 3[;[Ef qgֱeZd:,iBH}fFkɒgXJЂ*WɁuyKb£dP_#R:XzI0:ݝϢ*gR/!8f6##V.*2Dz*/"I[{61QJm&w)bDx-^]$R,_y!3֙FƓzF29>d~CbI/+vw+3vPkJM)xb3vصo[}3xb'dALj$Ql#d>hN[ ZXB.j~_(!}v.v_>w5 mMJ%t–|q.cP_%+A4@bd1HÄ0k-FPy.x];S[pL,:?w R]ښ]|([=C||be"4!L.)T F)?AZct7GA;SS#2h&]B ~P+=q Pa/#T']7G:B&dkg/0-'}V`hHs [ie̎S҄W[zzKRx#g0fcfBL:NUѾwXI,w2n V4Dȝ:%j,}&WGc?9Q{TrSUnh?t`wIFrJU!ٵ?Oheg^1>.`lB[BB1N}ኃ-ЯH*/P!,PKE6T-U DE3Ҭo҂ܠ{ >V&JFAw~zb\Ag#/>ġtpwɏ)9u 3q@uʁ§W@\yuX]x j){  {)NM=xeY.\\(R8Є<؋J探}X9[ !7}L\A-̦ǁ%'ox\DžbWFfO`h]T Q%m.?VARѦ'mŦO&L+ asw審RsRgnl` Z\h붩u@mj*Ŧ_$s _z 0S:3 _HHX[:$g,5GAJ뽨 &dp +Ũ 0vt}=~g8>60౵rjgZAn*H7ؙOJmԨF߁B.}9nIza:`{,v9E W{ DdQCِY{[]}&tt~Q#joa7B"m /CK~(/I޴qbҗw\S5TUxtT$8BNX[qviDž@<Ɩ}yAYz=Ȋ]_y b:]QtÚȥut1܆Z?9ve ,IkRDv/x&·JՄ_hsG|0\7ʬƼTljt=~pSy,rg40&3RVY#cbuǙ.7/3'D~k֟;y8kRP _u(cnX(2^3گ]'$s:sք6t"|˅Gc943|"v4M6͈#Un1 5G{^OCPbA+>WjXrdcj'˓ā$39ߐԴήi&4SiRCOOvYTۑ:S xoTfb:Ϧ^*hえ M`>\M, 3%z[P$MglT<}7Bl@C>J P9#~;T-*ɂ$Y E%uJ'4ͤX~{ۄru,ۏɻ-)_ݱky-5:ΖNՄh[覓?}v?-P_̈́}$Jc(q:ؤVHea$ŀNчz`H-J46]ʫ6wQ$cO#E9~g~4/&N8GH^8m.4DN=`:f sLV'ͧJ Zs_TWxjSҴ@9A? B^fY u"Pq͸ٻKƇs$m'chʼ>JXB]`YcGӁ"v3^ɰ 8#\x7a3H4pc J_x^p,Ч }RYzrWK(lϏQ՚߇\y@5]&2ٮ|vŇ TEjuI|8j%YxK1Do˱ߥ"6ۛN4CQKf)ci`)4FM~qK4G~(J3fxG Z!Se&.!6_\Q<ygk[L^JX"1DVKC\3+/ISNGtJ% UƦG` W4?/-84KYC9,( ~џ0_ 8r([@?N>A"_sl6^*Ela,GC_6Ývd֍& N; BĢԔI*GN^!v$[) C~[ҧˢ@>h6}8@i= #իMB_ɡRfxa+ʷ-] jjq'ݚ.֚<,HX<hZJ/yŵj>&ndڹWuG$}nd<,*2z<7GD, ԙE!𕇵,vS&{W&uaX݊Ld  u'\:mRjTA W7dgM{uO)dI֊(oD!ȱZef/*&8FI ,`^1dyR?h@3c?:}CܶG#Bt* }e[<' ey 9 ɝKxܵ3$Wx̉\ļsG9X?RAvI@aFĥA3-F+͟7::H'|B>/!w(2˪ǃҊ!yzw݁0)P=]hCLv8="(6$z*o6[%ߩN/OZ 7b=];?a_L^gQ[yO_$u4S-Ryؐt6jw8P eMuqrZmT"6փ!3[4nI?68JQ2}`xNAІ4R [ߕ|Or4k9GVsl&jGxWuAJ4׮ ɹ|=B=}T^|"`եxS ,k pVc͑\мo?Q Jc۾Z*|l&8;%d&Ji@%`2x38wif[L2^KE8~=,yBWy$-Q\UaPM?" p-=O{x^k*} @'w$ygnv*S@l%+ϑk5tCyT&?6 sg5&0END`^ Q/(v:qе\t ywgҨ;JәB ojnп{FoKv[9m >l;]+Ԩڶ=Δ1H,tsNa]iJ5KB1 @ІsvlMO &ԗ:e[}`[Wv]%'"CܞRӍ^X $0s0eD;(-:y .3{T5HgA(o{R˸P`!,"4JI;xA2T|bG){㒾",U0wK-.:rpsw\zvK ٲOx#9aÁ(Cwj#xrKzDRmqȻr +agy~Ѿ՟"ݱ;*8 8)I-=qdK OU]/ݭVS]zD#ǻPl Mo;ɂ}P5#sz!PtA#Nu:n{ۈ j4~6v_8 DbD` @[ђw^tikXįQ{Ǝx:E*Ӟ"WTɉMۡӔrOXpNڤhfGҽFC`i' &9 iSIst/-pQu!hf6z2c_҅/{RBӦ-_<@z|l1)Ətn˰ɥ cő}91 ؏rѭᠪgݣE@5ny :8-dA-qV?H}\^KY WrJdN^'3.i ol2?UU_< cudmQG6G-$\^V/fV'7%}RXY gFI<ީxqP]Y5C \X:<繷\1*E _1Fi-#4,'vH[2(TϮNDż 6k]Q&r4`Gb[#6ytLiY\gyߓ@T(EA+_cDoj9+mE|şmj1)s8H`sPInPe]>=dVdIzlc&0*X{A`)(TS)66~Yv|y&N D a($.`RIHt A?gG;md C]0; SDec7T @oziRP}KOn'SMt;_`6HZܻ#'ٳ :ڮ<-(M7q#Gn;Ӆzh ?w6/k<|@2o/DM jwF,[.KO3c94/, ]ӯ'aIwfFu|O5M7+@b&P,}k<|} clg[JDϑJP?؃S~Rh^Z|hrsD5k%e[4;XG@cdc:կ"DA4b^ה=ۺX8:I}%o%|42 pRusxK.H.xyCCExS2{:9hKNv:(\eFvQkpH]}2[ HU~$c:G*~,1vT<[;Vc!_D*JjOŶ1t=d;G9OF+DHJF|Vx?YbG$91'U#fv\=JT耦{qҠ>9ܤz r'3b&yHul(ة<=s>e5k!#8p=MerBMO`}ίb3VDY[gO(.qQ]?ee:vqLǻp-%14L{v}M4C.]wR4{bƂ;{>ϧmY.6p{e-HN>wE O'ݲ+KplU} \v^πDmu߆ K"C)?CpO]>F_ۦ(Y ;W\Z֬ HY!¤9"᎒m3/2ςʋܺ QAjnBeO8MEhG5bEaV!-` 4A|3Uޙn=XBk@/Q TNAԳRS&@RI$U7Z띦\A#O7;/N}jrqHjGs4E@;Erj?E n{RF܄ u!CNK|(a&yVºJC9#I/T_Ɉ(ǻp؜9%]Xf[,Ϳ*Jt TyaٕP0퇇{RYP0N?~aԆZsCE 3_,7`gi8BAϺf6"}m٢T^z{!ڜ O oo7ֺ~Qx:kZ:8r2m/z U?8HҢXNc9G2 LNJ R/q@^.e]TK`_2/m>P{x,fw9d ޼%hL8iPRMW'\yMDfűɍ 32؞3-u˲d`bPEnOVׂN.4`Mɔ1p$SŒOZew(a[tw̞uCuK)q=/lwjYU004<0~x/;(ʏSݜ7||Gov_ReKfWkêѰiWr`/f59'm|SJnnuٯajL9$3"?=}o>=~ M ݳi gKԚxO%ZQܬ|eϗA=/ /)=6bX5jO_U)nLv0}^͵ƜB`ϨILDC\&Z9K]OFGsh|atUV\~&쬖PG26|aضn. C@rv4*B\b-d Ժg+{x.>Yc5Gw^BJ{g.<&-ɟm9(9|DO@$> u'YrHXO Mm¾a(sUDf 3i`#`MȎpRq9&8&ǗA&6_R "jq%zntNAPA'~6 DgڜYSIbQeŷ2kB5. H<gصX2v2=-Єu D<~{Icj,hz QRk]Sm£*b?2zDԁ=H 'TS_LǷ_1gҢC.m +n27U<8ʴ$8w2=nuYP\tʘ *dNU^XKS0 z=NdV <`XR—wjTxkj0@$MsRTyxqv(p^HTEY- *S9%(.渊yzdIWIݙl^O./kۢe|Fnb*[;#*G0~"Ƥu칲n-)ڬ8! Rvv\8ZHV0:;wJu&OtHLmbq2& M_Ok<(ltͷlo,˴Nm2P%ސgWut/ ֌|_C}L \w9!osCf}f˗ok~x`#9Hp = < \dԁKQuk|i/H7mWe ~QJSn:d ǬڳȦ"r|Đ.cz',|ʫc5||S=dӪv29XMRG*Uw B(:0y`j"'Qp,%#U~p3d(,_b=>ѐ`P4]SxrEiQBLqFmwm^%P ̇Dᑆ[ܐ؃Ɨ2Ƥ& /{U H'F9s;gWyN|%y0Z[ J !{ă9ϗn1G#QD(O{HL^"ÕO+xV-'%r~KlyiUW~wkρb5ì |~6f%BڑA,۰Y03cLYw{h G-5_ vYtJ9h~"'QItrɳ== S`st@{qAv}/~(F}1N7C͘ ZZYݝĿ\&qdQta!iZ YwG\鯦)nKUmˮsC6K.7W39Ochw, =bչ&MT =v&_fPu>JW`L2iyC1 :2sa._sBk<E:x=%Z/H<~ <TV  [r9[۰iG쬮ory|z6"B G62p42 b8Ud,5ꂼ .ڳ(;nR T?`}t'״lEۜm`@³Ã cP1-p[CcM֘[uySHkl#??D!c)^ IeIXIv\< ,C_(4|X0f g4G]v*n5e:2cZ:N?^CPp5n&Bso|aL.\91kk^QAwҵ^培0(sfcG.g,'L Ȉ٥:qjͲSlI}2k|K:=9~.qMDMIf=^gݚ}(o]b~~Au(TNYo4 (\h>Jc{aNyóu0>Ҹtz)Qd tT(טPʀW[(N01Eg~B'~٥M(-rLj{]%6ɿċ=`0;P_LﱴĻZT\sR[=BhG @ʷ'U쥻1m?(:5IWaV$f : ڻu=t=#Q\=m]1~璜0~6߂ `x:1gP$p^}'ҾvĻ)Vڛi4\NY$Xe`{z:]=#~ib1G'wQҜpaP4#J+7pcj|.9Ss@js6ʻo{q_Xg$\'2Ѯ{Q n^3O:p.zΔ:EaQ7m?{́3Q^;H!>ɺ+zp)g _y$U`}6t¬gݏ^H,GiA#"ؙt=1C$|m[|\d6@pqiVX]!.M7V< Bޮ)*h,f̴yFΒu5̜A){1@,af w(>{1`/!% B l@E?Q"c{(mE5 `i/*zkp³?l Rwiƣy;F!#ȩ7cinqhEHH_0)ںot,2[e)e87$dﴻRQ':]>*m4ni=+eد3KZi{XdqgQ2Ŋcd~{6bm~#)"~ m:0Yql/JZ,cН]96s5fwi/xr/oՑK䣻V(bi}j߯̎TYiSKX ^z #%i sj$ ! 43Dl17j8|= FpnGjfLИ6+ku5Z҈)y=*Z"?y e8nW@d*t-U0t sE,b]BGGanFcl.a9T|/:MvLd a]9@ IoadMQy>fwE{b`Z9-vtνYH6ϟ?Ĩi#dkz#-tj)]>G^ui-MjQr8.@wFrn6נ^bB#& c{'kSy]\fJ% E¡LL E|- Ir4Y!0 R'j u#,QIOn´h^T%DRƑ]3b6k$%sUDQj;2 qvf8~ދ/sO_4$ZU>6G)9o*[Bxyzm/ .L0e,0 N4HaFR  .'vA7YlZPL-q7uZޔlN,im({\߆1Yl|/^ K0 yťxo|7`#+eE k>O 44nxȏi(ЖxFy ~a?DOg"ܢe<8xl`Y䦁T{>\>fB;q!oXJmY_5[%1qhAӉnLTug}Z2 QՑC.9bZ#I 'ę}~+bQqIIWTnvdg. Щ1.u?QR-ҕjh`B=&]=;QR)y켋4| Wt^/Xz$Ԃu/Fh) T6vɾ^ޙSRSg*! ̡c M. ᠥK9+C,i0sW|0e4j]*#"}hBU\){lrN<]T{n08ސE"j6E!SYV iSEN6zf&o#|jeD- k0gO~uL8 8Ԃby OL*3I]OW| fx_yJx~l NÎZ M*U\T%yEM@f?J"; vz~(r'v}.x2+wU "u4&9u({:k:RCb 5dlͦH @,=y&@O|^zoJܕ%W`.W4KbW}1,`g\Sڪ!jMz쎫@S{HyYO:>(_dt!aZ^%~EdO;Nr@mmTXi坯֖sspcY^>{`f3gF<@^U'5yQBئ=ȴpҴ_!~"X|CDeV^0EP4B΄N ul,8"F]_֙u~|2uDHx:;6-E W-&N˛Mes4]9cb -63R@* &zՙ3R(rAvbhE[>_bsE[m@@)b؇%EgEEFʹ d?G>aKEd_f -8iN'߯X'`+%yVCƓVH)5ڨ׮P0AodF S9.~H{7gV\PWU 4\cB^vk)7uփA7B˨#Զh81zlKɘ` u 9a V=1iP!+3<gʦuPI1D=*uɹmY 5S,TZF ~-aHNϿrV :Ąֹ]?>WR#]ֶ: =YO} H >RiTh1Av9c挅\T,GJ'cνR Qld?9 _ZV##k$KX u{xT"@hNJ_ hb]ZeӮjLodm5}_<6كh<4ڻOʹeæ"4W@B"&5_+`a!:$/uhV~;֠KAX$!aDHItoʶPa,ihcœx #N\FZOsnH7yq>f ūO}- fvs=MM>)୶ѮimU,(5Zd7am7Y)Pfq?UuEZjWo ÝKzL۲\0D|z~n? ϖ5Y.Oן^Fw Uj(^/[Ə2^qآh+<:VcHphr>C=޳VVt`lCY8F .w!M2h7+em`{]Tm*0'Jt=h2DNY.b$ kқ=% ]fߐB8(]pS/C}Rxyȕ HKVx\MĊR.AM(uVTy [\ލM{wi+۔钆ik:d"cCejlTtٯ&n 5H=knϓ]+.#+^JMc \+NUkDȃL6FG[oa;~\ĂH +n;C < i1'B*%B >!0AD}UgK_m|zP/(젤ip6[O 36lN>h%W%c9MuϮ҇D!Z3-_7r\UtUbZeKzz[_Ԯxq"zS+ `*U-q꛴Fi. CqݚCF>{6N#'<35hgwZKDB;$v>K[W!?_#.QMkP:$Ӓc }ٙ9k@ZK/Fh9VחG=:Gu!b/S5y|+% 1ymaZDo iUR7 mG1nQaA` |51SyrU)a@lkE'&.p=Q\jd1' D, ,UԠ.TVwd;E<md骼2Xy: (QWEq0kSPL7A YER>T-r$Rަ¯H2Ҡs;p6'̦ ~[Ӫa E(}on'oa(b Į<5Q`Tr] #`:h ңKĤD~pŊOJw92rT1C"pO]t~AUj"ힸgh*@1+Zl@X9V ׆.)b1 `G6!mλm84ɡr7FX(_e߶,5dC6˫& ҸaňJnSN$BJ>Q,%.d؍Ct@*,D"8Z[R<=4ɘ'q 8 Pn'kC2ȹ|}IGPf'U"BUa\e4B IcyP@1[ RP=ԍ^c?zTIY Fmo$⍮! tu c\[҇x n2%bsF8 .Gjq?sQ=Uܽ ^Pf!2v^#=iC0rc*z NXJ ;zN?^dk!5rmp=6Uv83U9^k4kNf-LsTR+ؽA2P%J6

X()F>voi>ai8l[|$ja4p͚{ 7',@wyQPR%𡅊*x|a֓%Xa]Xm@-.ͣz&ksplYBJwfb.a[@F. WOko{.9N֧ 66dQ;]Yk!@MP Jca2-C<+70j u@UX  㟛 o=, *U53 yIɅ} )3^&xR)5}ݷUb"BEZ{9<_QE1T B7sRcX[.@rxyi2_b:Y:^H ['EIb8ڽ]\6 S«h w(gtH,cNN8!$TFqhEX@}a c6_8-琮݌Yp_g"݈eǘ&z돺 x|ٍA0fTFKOKJUy,Mԑ]I_c/JèթQ(:u_hB+^uOǬQO[oG+]ZZDI\Djhڕ#Cj'M:,a7X#Lxpsd#~VR ޭ"MrR9}lwX@$LK1'hC"os?Νsg\L{ QS(1׈LD0 LƞB OP5*z x،aТηJ7PثQV -z h|wAY>p&7ކ/H6.ewas{0i@ͬ(V (I27>KR ١KD̅oxcx=>Cy}T_ﳮ+О&[7^̌)&{FzYyf|CBgr0d5`0X&^=]"Nh;ɮ^DF݉Q$HJjrg .lC[/缲ryܥxPSRc:\,Be8: F/-TXW1 `R &ɐ;'ʋLZ"&]|%#}i .ix^1 [UOXk`5H$yӖ碤mr; eu|~sBn]`UvI<["J(+FVr#Bn3VbHՠ2&e3ա=Byn F~04w}}W^5,opȼOkqZzj> D9ȇzIj^LmoHmA?TIMK7mj)^u7sBB(WUeCf"=%F*ON!Aθ5h٣h-.W5 {)?EOv5c2%\l԰V w=ɆKm!T{cdw2BoWgby=ja #/1YmǼi ##+Y*z$ro./y٫'/6, _Yz\Bnd l:x%dOo%YmX;؛@z4E"ڑ:~qGX0`q>PS7-=n2%Ib` IދNN[;c +%vtv$ve%1i\[q%y ve&\jG8"3,K`›q-;oM 蜱\&3y[!V(1k;d|h}2a9?F&*Mr",✌,\4OtfQpt2w*5rW?Τ[iޮ6u1/(Jgl)jfQ߸_&tt[NIC?̅U6˘}̘x>i"F-˶ɾfh;+A.!$Eu(R.,Hk'sshRECd] R=mHw;ed6|!>Ľ3h Mwn)I& _mA%3R(٤*a nbCje2-bR)frF:a=YI{`(:qG6_ 7P$vI@$||Ć$7αG%NhyՋN(-9AL?Rv#=э`Ayzf2Jb*?-GE`Q>GJd =۫h=r\ L{p _>:TBoLT)`a w)7kGMT/aOذ[\ 2֗ K,~QV[v:`x}&V^OEh]ExVNqy[J6[;|y^I*QES*Qg S=10uS%aVV9$6r>-U PqS^o Z}8Z|F=$;/OjLVůANh:VY@n8hmQE=&kZÎYvslVA&X,LF)D ܳԳ`/u`ic 4:e4$,tۼB Q)܍q 1 r?*~v= ҙnguuYUY8KTkzGWYjд5n(H} _"r?%a2ni^BvNبwCηw@H7Aju"xR{c4ٌ(_1nGa*5I;o5w ^pЫEBcrsÎ Y&\wy&Qe[ܖZVdxG-U4ʎ; wSOL_r_zt-y !}m9dIz>-UH~¼*!ohI8& WU Lvx-!2yMkh쐊Zea@!^P)&d?p3Ai?Z}sT\.YQ )mR|FR MY%&6bxn}Kmu7 Q8wGwTlqtJwS*Gh48U0E["*wv-@HqsT6 ^VY '*~iA0TR 62H)FqL\5' X t^]0ΐ=90[rCH}+9{P: /1aJxS)aPGs"eԩVpErVr lA*gPGܵIZ<2ᖁodhe k%+kv0Ͷ4j+s)myًKʹs=T-!.*[Nx!\G˿s=z;/K#aa\r6){!Gj%(ft~3S/Ǒ}xxLB+G(1 \BLz]>-U@AhҕgX.ۉpT-RRK(C?%Nj3}1 t&ղX⋅zDBi z %B#ƖBg@}JμkI)B۷ަ7tٱ1P]ȿ^<ᚆRIg7KW opmNK2}}ϗ{]Ks]Ɋ+"_zJ]pt|?|QRG_hDVٗG\Kw['u&4 wKDjUFH<ܦdA~כ]Mh`YZ= gQN@+ͺ{吏^iHB3Y_j7XLo{8g+Iv/Y] ՍzLp"? HD6AG { SJsw H,aԙtƨ۽Ӥ!(8ɍ6)6gY8ҝ6ǟ8 8H$jk~v='v~mCY1FXHY ot ܃<$ =k1^8ҕ:ȈE-vy|'jdo;b]%ĬJ,HD1d[M-JiJMEP wv泎DGxzP) 3 z(QzCjEn}(8Q Pͫ 1>3nq\߅)QZ{nc2lћB '8RzR2.evY%J,IgYo\ٞ @`ҚB53$ʱވAf9%r%@ 'SW_y85uIhbtDMgjWw3bnT#bIT,{jW/TpoMq_ND!]@D)pbC-%ίbOelfjWGmv&8μߟٶi!Td'Eta-(8C` XܿdjoelVW=PxՙL|pf6hg^(pI@3ޢ.4v6*#P:zsSs)Sk}}G̀ڣf\{TGCXU.,z\7.F5M[X39l#5@YKJRq3w)Dñ}2zq(ui ]Jnp OvN  2z]3(8\)C:qI3$ @@;4a\JɺS*.Ū :8;9~\r|G"Ю:v@'&FM K^`"Tb|kmV!O^$E|>CK0kS<,-3l^<mGwDtrX yMnŀ_8;Ֆ &1'֩ӸkeD )6xA-U/!>%X/+͇O=w<gt"s>uzK@%)Ab &,EpZD^j_y4QFnnjﺯP @ozs;}]ofYKFEm3)9 [9՜@nn9|+^а~qpRXG2-3*T|3lƹI ׌-Q!6=4GFָה3 σ͟5O3 Z"s0];wQ͉FPD rHB(C GSP8DpK52GsjRvq4Tq՘C>8 Q`>m #g,EB10 "}`;μ@SDmJ_{iZb#dqF lh&A9Wؼ>'fsv{'H]tWK\8'P8\dJsb1U2l#MaXC+gCڂ'{6RԷ,Y63߲^v.[8,7DAɀi 778ł"C3H zIk2iL$N:/ C=(|LJi=AF{5A$X|WXrEgɶI怢jFzz>|Hk=e k!80]^;H[X/ >-}w˜Y8pbv0A4ҝvf>y|[]n/* StM 9.]{y'o6 ϙ}!n GLq%qV? ,?W]Y s M=מyP,HH (ٞxDr7 "+HRSWţߣ8uB,?&O'fjۦ7rFVc`-n衟N6)i3se-ܚZjnܑV-&4Qx  :v4\ <_ܫà7$ugi6fvO`r6^N]Rwx}`Yr4++`ÑPO A".Y2wjE}Ȯ$ [2636#Yy9 Kǔt3th쪲RÍ,cۃ3d\lbj/9aFq'#5@_;;NQ2Tܫs&:X%upMVw vTö) 1({hΙW߬ kTOe%!rNOyi\= a|}` *u5WSdX&,bʚř%J.kGVy 'Z%o/ D"i!a4KvyW'wtd=\T5|f$xwzCGȮ~\wqUN/2A }Oԧs7ETȴl%փZjHD7O >3U`G[ :YPȔQ26z.:(zw_"ֿ8 TD37bv8a4":nu7疕[oZ`{U #%LEC;'xJ~+-=ZX ?5x䖵Y3gI fKmWBȱ7~k޲St+Jt.WIW4##}+5vD+&Dg@N~"=z,Bg?L;3N- S@\YS?񂤗G*g;p ,N '<˄9j{-9$O1 ?f*XɠM.^Ʒ^[ 7K:|-AN&`CI bɏ6_D7|D-k%XrO~bJ-īF H>Y4,2HfHCvʹ۝BS#|Za3G GB_8nB_`_N8Cb'5]֬%eq>[l~\N{՝*\PU&^tY[iӑʊM 26]po]cX$rSOU ߉p[T)'-Т^;KʈeNtH P533y8 ;$;Qg MZnN]aO;br1P|sr~ vʄ!ޖNJ `Lp(Ns`$n&,Af![Wy_a\#j2 _ƶ] W&KH2^3kMi|"t >s!ct3H >Tnb,nQGr9UgC:HZԽD|cUeh7lED۱ cp)k7ko~"2Usa1G]gL,FƋxM?4q@7:}&toj!yw^b× ]CBRW5՘%t.ț  : ѡ溥{"J9 `0\2jÒdkp*/ 44hb* ImiۑSթVxL_jxN.T8=5)6zR=#B`ĸ3]?:'}ppc%* ϨsjY❣C&=/tBnG_y+gaTy&0D{qYP=3ASR/FI)hܭ϶(K}qqg8S-*Nu P䌎 0rv5^|tm*\^FFj}qo#gz/3 yYwki"t/xK?a}y*1>sv)<ΙngX8P4&:%YIl_Us ꡇ堀L Cs.<0?1!|5 WʊcWOa7Fa7lK5\[3xܸj*QAғvXQא")~;Cy壡bgvmy{gvPp ޭ|p r]W;*T5xLBͦ0\+}AVZpN2GUɄljOupcl=g+[UA϶G2;]`8S -zSA\p,z<5vMKAPզ3G͇d!ٚ˔ph؁UC?Pnfdo'Sz{Vv^xQӌ!Neh !ՖcIe~ߛlCtdS7+j1~+肆ޝKk[2)`ϼ0z-%$V. 6 -,yǹ*)Z3ʸڱ 't~oJW=mR3)cp#܁l>[+xw4.Rn/Wx:J-j?]>3 m<s=i ARÜ|ʓs[F $ x6iDVcև~?5ՒӚ|n=؅uz#@AEI$,F WVܙ2b%dvC b^l=v@t$c_R0LU&y_:$aďv™CV)p ٦Ub|;8IvS~h>='X>;k`IPZX!\-7ƤK#9ZY)f, *lDۻTF3,l#?jPcDݻ "JA3/ >̾ѲpEi5ܽ=3.Gr`@Uݯ&(#cj3ļLUzJ̀'T Vf)JˇeA!Vޫ'n>^r34/{ ί^NLG3xo%=<y{-FיpUiDzm:R=bBg\#0AYqd'uh}1p{ŋř 4'$&Aк3TT, #c赶 dv[R1AwҰs>Ǫ_Πh^#VW`Lj+߹lZ+šU5rS6_aob<_h8w~|`ڹśuB&dL,:['H̆hǐ"2J0hƣ5lAW|q=㞩ë&#`sd( @U.DZ^.bӚWEZ;ȇ_ͱp"$ \0jϚ$Fo(l$}AZo7|B8q``sZg?z&UͅGӢ˿xO2iU}<9MD5gAN9Bzw «]&kj,H3 evy`'r6Qs}g}\EmΟꊊ`פʂ1uFk8e0Gߥ5}u9Fo+" V$\!×Lk1j<,M8Y.ꃽw.0W7ߍ/`z/#h-\6:Ľҩ(5| H)t:s⸇p$1q'V[:c/ń Qu6'ƙӱw,A|/<{qVY$!D{`9D᠚$4oA bY!N!J+hcKֈ$5@56mX)׫ßNZ2b{_Αő2xù(nVfau'{ <# oSm<¢-3++HBuUR;dz!&ʱ EFFtLi~%:XAc 웑 /H|봦pd&/.c*ANP7;0A Y@ S/I{ *es_#Y$En4mUjj] \բ@:sr0"ҥΘErz)4T[\j9M~OnnʫO,HiRBlgӿpw1:m9Hf~9n=Uv{Xq@}L:Z[-~*#$PkTFT}) 7΋TM1 {i0:]Sf0xp(ڧחbђ] ݉k2gu P?\#c"]wEx ܷJU*D^vʞTZORW1@n I'?9ǫh" fhxKYW+SfwWd(fbg*F&pyCucX/cKr(NFɵMj6űs- g MmWʫ2k?_, /3ÿZGO7ORN/*T%T"RН:/x|t(']Dv1qeDW0D# [ϧv=|ԙا"3ꃘ$w6l$i;P&f(^CpmB |=}*ŒUᣣ&K0;XpiQ gT̚s" rJ&je>5 $PD+G>6Q-*4z5( >AXY\!㏀(j*]B,s`ؖ_iyV^=Qʷ".g?P#U\1lsYN25>#Q@flIq+-I=ΣQ ~,7+`ӯ"So !;.!Ԑ=h²aL zWL<9CxNB26٨LqML9P>*@N`Ŭ鉝xF˕}{`?-ūLVm1\KTf^;}qt4_fnW5ESejÚ஽5]=|gٲ]Hf,F{]\fHG͆Ck4[ݠf"IMq>`ׇ֢F֜I:ƲZJ?3LD)J 7/˚$ҽK2dS'! Nw!)$$!4;JQ*ku5,1v~FN.~[dku&!h(NN%d vѲ[wk֬ Y4bΞmV1׫tVቸ s$5}N9Z2'6f2an8NbʺU_"7P*'/r /!-*>zc%@_VK#48SGs 9i߷9NoR3sK|ȫhqx͇M)wyV/d l-ػIH^X^y\oDDHP@\b;$Yy@C(ӭ`(G3J)+athWZq K;R@/b1/K6$16(-R G+zxrŷƔ Y~a^v6c)i )):qSq5WB}/!ᆵ>xRd&iBGd ?ԸRY>36OG\ !τ(bUuX% ZY@M> ȴXT?p7k ⭭vv ?:0{z>͗ H|1jƃz?gd>zbi!9 -nk~6- ckS?.,oCl!v뾷?DoUm 'a.1 5q&[<'0a.@ hif=᠒l:]u!/#3Q'_=2m9D@9[2v|Mk%zaMAOgZc^ςA=٢Cz c_ o#^ȭ(QGfXE ~ AO/+W!Fד7z YWwo;x {ѽ*+ςg|rB| :)* }kR9-&m-H8:6נ' i;xYdL9Y7xh8lE"lBsș7lw!xE1s>]T~+=Fe6Wy?h^AXfEo/8w祟.aEUD4Gam!F+rCU #w$ !^a/YԖN;ei/%zAvZQJ$X\s[x&`<_sMW]ụ/LBխecwڵ57,Rzy7`vHu(qft2jgLe YaY ?k6P/ JYҥD|*34kF6M/v"m 6/(xHy质q~x2Qk5cP9I+lN`Fn&5u=yf"'`&D[3PAx1EIuoͧ7k43+E1ڀOw5; _%KUEV[Y@G VԈ{LZؒ?j5ΠbyLϑ?a 7 w=;JuxjB-by*)ʩLw'!eE۹nHb7;ɂV^,nބ;-Yp`[eTBsJ`Tmga/fapK(ߦf LrРs@ z&5 Sr|f~:V(sJ̏7ezTZ~-C <;:%mnq>فg+x4uV&Ϡ`*}iqVBqە2JA$.8g9k]:U X#JlP%ʻѰ|AGU×H*^ܐ楌od:yQ'CC].K":_bZ`gG"{JOTAUd a"rP7*а/#HA&a"XZci1V2޲Q6S4}-#um ].E[-|(.1XòC]ZG4Z=-,)>F;* `,v ݠGRI0瑤Zms[{5w]]NaEvDX@!X_LUhVĽL a*.paǥ:$,S 62aydrm8WM' ]KHf9iڀ XrvV1^b*9_]D>QEbGV*[B[A|4wl>;0ݮ 2B4ۙ2t1 `w {Qꄐ)Pcst 2BE*E52,_?-*g3aLzLj8 "X K45"MH=ٿ"M%TBcBNU(54)\o>4ytؙb'4: J]SbAW_Gl/yUM,Ȭ~pC)oP +z.3̽yBڎkTc؇Ln40a;5tG=Q@cL|-Z^6j#tm63k[3 6ϡ`Δ 9݉ :`dA~TZT'V䅾u[6ͳ41 !`sK: (u`֢"NY`955aXd"IiJn^]C1[N, <72IC׮1*J&Lip pyNU*ULWHB7q9c[1Io†'ܳ]b9'|s2rjx7i Gy@Wd<s#S4ϥw8Hzj1Ӵuu*ᨍ)uXn': jft0<Ү|&͆@32,h(p,8.ߖO5(1Tv(Sj>qB Z)iqT=q*"LrgcdsgA'wˋQw'/YX% ZܻzuC\a&ܕĥOٮ#D<=,)yL+Mnfe*,'M6IPiU(Ƣy3L]GWTYQ}jx,RVa(| J{k:dGxA/'aG7Lp_1 v-__^|p(S0 FcAR YᔩUՏ| C| &m[~aHaEh**+0zrěksSxt/o*OڤD%H>8kj:.78LGE% @sl͂P N7p oLs:` g~̬ʃ 1l U,dߜ(,&Ad0wQ&Yӭ 0kagjl=|O msIP2O7Z%dAc2_AEYnNѰ΅Fno(R+"`$C=>@Ҡ|F_r|>`PRHV,wF2&) N&gް J,5/y͛6$P9Hž%T|`cb< +R|Xa~;3 47(lW$$*)£4"Qwf3DQ n{Fh SنOn;6&D4sBg}ީ1 OHZJň<ƿ0pE+XO3 MB 8HDZiC&cϺ/'*TC9nNl#P_h"r2T́2|/mw*ճI' M^H9mPcnviҏNr.ՆSYD9)Sb1g^p@<0 $BwtO1Ox^/>*=>#KҕPsPQ9#z}Tw.?N2< {-tH5t |6sX +M\E1ju|tM;À(3h8+En(pe4_cv0=E(0X ֘Ans .T0F H5d%v l[$|݋{xo^{& ̷\]8;8tیT_;POMbC]o7޲|:o!6Tҧu[Q. Y $NZ:"ﮍ>Hå2 PB_X۷pHg4Qg uYv8ÐG?6!TImʵ0/ ˧MvK :ȌM?oJWb1+a.ġ* fTk^l+Lwa('`瞭mXpGuaTo0}VAK$|x3 48mvWI nѝJUJrP6?#}cZ9>cT1d.s*%X}߹:mBK @hr냽K1Bl[nøYWPhXEUeqzBj6 N?*y(1׮#۹}=g}$,.^ <Qa ?xEhE3P,v;Q?{b#Q9h$ȣ`KD+锝֐WAÚK)X3~1)V`:-Iab#7'nȂZ6Sb|S)` $y߾W@L0F&h7roXzt]ŗ$\0JI)lgH畴=  iK1)(u " G܋]^sA&ҏ 7. Ƀ ,@T[12_R1R]Pe!ܤRؖ&!_?eKW_+Ћ[ EDz m-=: xeB,ZKoOyYU_Y"BB` l@Cg)KF8jZ%-O]HDl9|XD3>N,`NS*&L$f@?UeBf|Eki ͷo`"5we%yRTiR̈~CC#\J=[)x9i :;X"]CVr^clx6ƍL(?4?e.yԗSk0ROuBBy:,?Zku4&tT cHӼ y%Ν'nљbs>'>jOr>`jO^`K[d v8)Cܺl%_/%}'\@zpݎ+)(ySI7QIّ;L\ABF"{rP w@q/WB(&s2@Ȇ:(Y.r0,b5[yYҩDo{CijM@*ʾ>D 8ZǍ8Jsws]/ *n{lip=f#śe8ϾB I+w욍hW̵0 :1ʽ!߾]#"1B:c[f2#oVp`5GfOztYBe@"thiNכ]߫? =7'p܂_]'. bϟ@Ka4axrٜ%(-Eu6^}7Z$@ڏN9J ~G*s뭿2ʑ5l6I,KDcRJ @*6d hJ-=W1%у'gɜ/ī_qf4YYRﰕWi,]x~s1^ND T.͒HO0)2qo39YL<,"v(3#d5 Y%S,* Oۆ$ ŀn#*;4mS6=7,ePZdWFPI8aiޑ6NEx 6iRA> %Xf:2xQ;Ɲҡ_ȫe1lNDJlUi;\n$iuO].Qؐt:]o$*^=U "vѕ=ږSLը/AA Qúr$q/lTbCXupTmȰ<&' &R9v-LRB7r5;p̘BǎCCyRbW-wI#OGF&39+ߘo6eAST󍜨oZ0P= R<iX.8̰VKlePɷ%c{u{k:'/Adr*ޓAm7u#1%뮛=>YBiwA xru͢ĜJ#Am'!x~o?ɂ<'HWvx’G~h)6[>C6GzHި&gHρtO>8u)l$|lr"eFc\-(Qg'ՎwJ'VwZd> }Zɻl>J8ZP`L5r[Ge:=? }F˯M v+8`2@tRM7^N+*@(7X\mtK2eʼnl`L.1(4!Rr$a mM=u}S@$XPo!vh9M2%'h'։kUMtˏl8Zi@kYJv \ZT ͜gFn^> OʨEڇn͍}TDf﫠ZOmQsZ2;$ r/uPPi *݀~ky7m:%fNΘr *HpgͰiߜl''Di6{+P)#u|B\ %%Z2^b@`iMh@ǯtkb%Ă=ο9B-SȐjYxCH-AzFm "V^9s:8a4Ja*ݑt=Wjҟv2X>eD N }_gKڿJ`m>z:Km;SW O0[nʮT{LJI3.UfR<ߞ`y< ȡ-uΤ$4N-1*H H_Ŭ^aZ j"Y@S^YH&\UWqp{E dѴN +QJcɩ ]W_%F=bUTִ\[ lnjN>4kHpǵewW :}hvkΔ5cIa7_vz"m yh炤F)VBr_#rB&'{vu== "Kկ9T{gtPn)_'lDd#Sl !:CO`ȟ?La-L֔mRDӻ70)Y6 <"yEɍk UoSpf蘴ε;.umCj#ب@0l^p,@hFьSy4e;j4EX-򰆨P c6+U_h5A0ԟOhBRe?-h+mcj}>(\V>P&%FV1K5#jݸz>2$iJï\bvO('WhN <;59'O@ , FvJi"LVPPDA*t,xFf1-HDuPg^oYI0m dfR 9Qp3e;XcBk]cxCl;DGnb7PGۚ"\i ˉѮHiD#B>X(ۇ^Z"[C&r uRɽPz+62j_sV285Ɣ9@ )0}9!`mJ(mYm(Br%gֻ<,=q/tUK2I(v~NMvUnU c$u8GjϚ_`|G pz !Axh`'M'B@*@*N ah_c$ieX'goK0?؇)p;5sYᝌg_ˍ1 }PrIUp?8y2܆cAk$-#4ٳxM R]/OSn{ǩSLaKsY0t /N|QYrTZ]Kh֦IBI[}&C CE} ɝsn3!,6E+9!|(mT)a,_D+;K2urڀgs&\\#_iٌA)R 2V,R|]KTsR.=-_i)&nb7b)=O-@[( x⺘9`$1"û'zX qJ `"~]o!lA[\n:GH&z0I"3O<\.RTyȓB;wV*C0ۤ܆zGGhE۾Bu=DCw!p.̪9`ӚWvX0j +i|—SxaxڑE % 6$e=Oy|~- LxfΡJp,A^;;g_P'n8O` & 񭳋|7̜,5۱pROZ7F//~3(^zhݨuuX߽;qfA),A$sw!x8 yrB@bW͠X+V+йDI͘,jc8MVPaAewjrݠ$|{!?0OwUbq"mkklB_WE;0l| j#fMV^1wi(YƳ2[5N{7G"Do(7ֺSW@s`꙾s< >_i!ha4Oq".3K ;p2yuQ"wWcqvCU): X*<gdk)Z%b. ^pkZ`/ :s^*%gkp^PG|lBCu〇?̔"(Fm%L&]Z^jd_`.YbS$MgjWV̔hJNvK|]mJ"#*S^@抾5lXz:bp?^%_g!xO"Gr&Ֆ Da"ǡCqZNYz@ZW הhGDB&|vގ%r#ε`lpѻW2P06~ATqikꥒi;ݒ-"(c d[;\7c$i7j_i@Nj3fR2r^zނG)Ɯ܊ I/#$1Bܧn"Aʯ05LBO ŧ Sf{7+v\q&ԘxS&,),_3JZ75O6la!/c99 h!ՍB`A|뇡1:sơGyBwU50лۍO7Y@exCZh[!уƒ x(x vƺI.Qr<}][ap3-.ԉMԄs#gZ-լqH i}c1 iҗ3T%@3brH:spm['V;}| !0C1yHŪ{gUZFbB^Ոq2ӯ|XօBӄ+3<Āa \ض1\w#('>wU*y"$OQ %CqJ )UM7iV\dMe %$|Q07Ru13]-*gly6 /_o֩*{`7[dbX9%nċځ'/Ttпa~NHZ-a}_!q͠ bq"M'bAGg+SxʧQm#wM4xPg(5,Ql%tM+ȰC\mq ʥ 3r X@֍ m vz| P|E^g kTi\l W꿇{$OGwH^a;4POCSOPIwum[) kQ} I& zatfJEis#ΉkwQƛ(3E8!yMO⯗{AvgH6[91eͫ:h5#~[TOWW_R4F%_TA E|}Y JS)|揚!:!D{.֒#`nEIh( Bu D=g?JIr1Btp3|>aF-S”GDJu=C9bX K?i(6XqH>Tzs8Q/ߌM/o^|ij*v6j R0 M }"9 $8cMb(mz='E?ǃcWBRtJ ʷ#pݓ[ʧ ȊT$~OYMM9O|J+2>¬l#m5gk/j#z^a-Ao?KR~r5<1zsҪFTQKXѣL&,mQvYl.SʽW]f{?hRDː`QJ~9)Gz$/jP [rFb2d8TDynFºϑBaOHMXc8cmwILS*rSafpɒUdIf"અ#ߔMHK%AC-kfx}2h{k ;)ۖfr52:]K/e>C@3|ϻ95k(tm'2uZ،Ldu$qk }ץ58w X\x$Coea*5w/ӿ`*h;5HX+#7x]|sj0_E1TySQ& ބƷa# }Nh6^]u`eBu4JOv_*1x@N,.*qrZw ȗ8YWY;F;z`B\mpNgv? 9ǟ!'-~Vพ2rͺHh?c*]~]\q.@F2ܗ(%)$JANS. {+0ۀ^1Ҭk>XHeXXF!e ˝T;YP: !r`D&8Kٗ׋۩/ScWsvgJrT0T*_e>υ%nP\xSXԵ|}yW ka$w썥>XiKU+|#qy#0S(Oo e1|eodm08"]/i*-#ɕOFW Ԡ'!n^S0| AǩeFZH'V=|Tᛦc^(u{ [/j]b+qVc,0TWJ+=ycdwB'!>VWvjJH @h'pcUR$3npLM"kGK ҵz>)d!s L ^E@ ~(V=Mf`<׌j=Ġ") 6hZd9V1)o/vn_Q^&7jJb j~~,~.[a>RN\Pbe `_=PPFm0S*jf80 2tki) 50kԭҫIv$5D5 2T^e:B+O=`ӴTaZm_k8t ,;ekh-wKEcve&-JWCvh$vI?[ˋ +:| {z(!ըo^p۳e {_I~'D& 4D<%JWckxCA\s`Syn D|jyc@dp~*)QU EKx=~ģk lX_-N.7P'ۓ{斑C D|5P1儥Oɼ3`p%mA@yed!\/i3|? }+5`Z6,|wNn-'cK_N >:y&B/-{#ZP\&R1;qY. (exa){6A,Jrfd?<S| Q":bt!9m1MzE#55,ĘȨkp㖭:Ln[*CM9” ;|1{H N5<܉\i7m&ދGTװcPtH~gZevy&L-'-?=p!'KE_"nRkF|Zz C_1 8]!A_e.֜.u" Sv+)b08* )`{~ b1_ {0E4/ ˄G*c=Ud޲M_~7?!n&>0758K263, Tq}fd{E\=ǻrYS $a=?'(.6,ĕ|esW 0wJ#Y#҂j 8Q/!ofD=ݙW-NAa9{SRЬ[ }-«Y8xLԛOT%u5B᧫UKCyb}Q^k9Ƣ->U5Pm!Jfw[62ߣALǣ}H "i 2:} {nR${nP2E5;xvs 3@:,/B\1Wgޣ38Y5,T"ºej4|&^pbi4uJ ) I{CE+/X1nݺFHlbgǟ??JYu4i#Z:m0@wDn@EsEuV Pk͵7:@m{qxa :VcIH[sfLn̔\lt.3g `H`a(Ѣl}\r֟dd*(t;΋ҙcIY|^ 5_`"b,<ܔǁ4 AI P!YJt;Ghz.v:r~u3@Έi1G;v:-ƿvsЄIf.J)m|Ɇ}7+:vt!5i.X`ފV =)rNU% vG D pCυWnE9}'ˎp$/f+|!E&,qe"}AbnNkىE6)}J՗'f`3J4>%LÕ#sbTCVrqs~05s7ӠUͿ!ϖhXO-\תVP veɔ彈c8%rы(LZYqB1".8$1բUYśhs;ޢbd6~Ȅ_ʄL-ZO*G/KTZ^U7! _҉셺 ӂa '=I`fL\ԙ+Q8-x -~9,^;\ŸBc`m Ⴏ(ɱ rk|ľ:\ gcG>HXc߾an}Ӏty*q. 0yegbpNѨLf1cmjȮA9r{8.X buXNe{؛]iw+Zql5Zٌ:ģ/?6Rp-u%y@%R!-Y b@kfBIp6 PFOnqAў]bGDʲ~P{\Xd'kt3ߩj8OT+"Oe Kk$ s, $iAܖ}Hӊ*FQQ*Wk*UF\*yb l˂=Zm:o{٦!UIZ&hD"mր(1H /|TʯRXGEEN e/q{P>ܟ@7qbkQb?Z{%+gSigE T"4zZ'3 iAD V:9\)XӦN' FO`$5"_b 7c&$ZjhPiKM!+MctwUs>0!#/}qZ#+Vd_x -!Ү0rOyƪFԏTQ M&D8b.\\qMq>j`@gxOT-KTNr3Qm)X٩%W,r׻˹r.خ_.8|BWi*!U* O8f'jfCk|ߨ]}'i2mLԧUgF"QtYcƸw?#9} 8gW}< a+>OA)Okyo/(HPC:W5ə~ jT"ixljh G29O&$M y^YT>y^ +M*W[,n_&DǀKTO#^*! t7\qyHAzD#O1u՘U~>XhS-/b}`8K)Opp;(dElgOzcx_ԛ2+F2qj,=䅂1K&}[4Lc;(`R ƾx֏`-(>MІ]CKw7Ͷg[d9+9g'v[5o! -3ތWfPቡ{4Eqae-׬Mr0MO-r6*[Q(pUY_^)$?<2vzhHB\f\ ?ȫugJV@)8"#U+3%{vA5jdwjuBԛnEC-/7"p;oeqirRknAK o4WHH,熝363_ tr),3vAŊ[ x"k1W!@7oR :C}g!֡qGaqPt\KZ&>J4TU8 - _Ň 7X&eBBGHDEǒLH㼖UrGEXèɼ/c)tw;?lp0 P?iz"ڷiM" $U ӞvflLbnh9ŞR]YvcJ{N]G! BșՇJU|jr8:1q+OseNJ07>!rһƘ^EOe{|B/M;VMޯXS呫+$}C:aHKemO8 Ξm/<4;z肕@vOIi^/uӘDhi-g`PЊ(#y#=vCsE;ݻMvMw2D;҃EZ8 GsN \L)Q QI)mw4'B9ꃅ)W5;OIDK;>3omB( bB0lW0H>~7S`J#TcmEqMӋQsqĞzo 4zGf!%E`,zՒM: m=h3E˔< ﴆB"1~B@(z:4(< n\ϹoԻUq>xX¶#_^ݔ1T[j~"f(Z'(J26*:6`D[G @{fS%`ܔm! ,Jl)ݪ%92UqF] j :6teiJ8 ϑ6d-uԐD_`%Y,0aң9)(T<UU}T[.Y"߯ ƶoįR`_F)pu-Q\5j mSoǜ&8@ Çkn9sal{qmK8aƽl?׈/8Ҭ"vL3! :8'rRU-TYMWq J'n}-[p #J.J2 P%tm@kc`*,p[iwncZ9-^FzZHPIJ$ Osgg5㍯:`<}k0az'Q Cyl};8bVƮ Fh%n?>9COr<.@w66(S&|00%3.:+"@gjvmuWU܋̮ʉ1E/ dI+]nWTeuq}5ҳv٣4G-ţcx9ON?&f.@yońP[,c0}H3^Ϙ t?q f$ a-42Ri[}D"OsMŨh<2̆LI`19fDW`RŚϫނISMTC 蓠7^ a?`rJ wׂ P넛bvq."Pa1Oւ|h€nji,Ŗz٨aE6Inopޫ.6fzBn~`%Sx|p #tK|83" תihəeFn(4`9ň]t|[eAX.lL`gf rXy\*Ot'y/!L}Nw)A&8 79F'v C ]s&On&! i& ;TYcοNlo8j!Qo~]I8<(?:Uo2Pv_I[&]F%!y4s`rkot 9`zH jAoR=j@RGx"~@p͐F2)*MrS>KE:3YOnvÈu!MGq+@g0Noq9)4B4 =|{ 2=H xT}TQC m꺔OPُkTYSΘi|zM2pԡL l,N6ي2 =UsƶʶR k7 S^Q@Ch6շx˜Csn>=ԍ]fb#했O*)Z֡l3mnҾ,F /&P\]z.y̗Tth4%> kqT~ѡhx.5,+^ $sshF@3ō|Q?]0zCOZ=%

}PhT&;|_qW `zL,sq3NBjU ʸ6&@FXl>SEjH+J0%83՘e 0}#213kISYKۅ~ŎE$l$ B#3q]24*};-Ole59=1wP6^\)w8FVjΝi+O% ׼|a-\Hۇ#}09(M-/#41DQnh)b~՝l귧rt2aD/IQu~`+ V M:R-qa#L6yYU&|KLj$Rb䁴L/x+gymݑ,'-LKBttѯ_#LԊ7\%UDAJ-KQ_j5FmfEpzV g2qX0' J>G!%x:UBniH;+ !0\;f5,gJ@+s~"N۶+e`CР>z;^wu暊Ґ(Nh.\F`5p'GB8hxg>ؙم UɃv9\nf*_$luN~QE;[8cl,Ϗ㧗.:n^.%ߩP0v8HOϖ4it-gYi=8z\z$Q;~BN/ɎmÔ b?%*SP$ɺޘJE*Ih02>0^5c}8ކghbK Ƭ ~,ITe 5:mfaǿk6sx$6иO[)X-ڦk|0WM&1M QJECMLP|!!K=x831x;?_t4πk]>S}.eDTs9uI/r̿,oN|@,-_2'@cS)ᔂ9i-\Xxq f~=򊲽ƱcV< \VGVLJ/Jf1YR(=))*;W2^PTro>{ʶHKUuGlkG4ELoqS{hjЃ^Ccg7ӯCW{BI,/5_KS9T8;D$9꽉:1q }\qxO7P Sd s̿3>@c|픭c.. mߖ2flRǰL ?^ FN-Ryɜņp-ƧJ+ꃟuNq'|@ ?/=U߿#ڍf$el3+PTuK`/MK/.LY!aet@)ٶq׺JܐQWo$F9%;?|#'>M/IjHY`P s_hls%2#2Wz]:հG&ek$SkK#Ɏ-Z-aRq!F@ xo U(ΦEyAlL^}FI-PZ1RʚN%QP6Hqyߥ_mWou. p:ukyOm*k +df?!I0o*gIhK rxYE^HD-,=)9M>+#uYρKLޟ}`B{0od\$1Ewq[ Fp&DMoukzmFrU. Lnjצ|mܴ~|a- ֿYUvqԔW!Mpc ^GO(e |uLMPbP!pPpDU^Ýт Vipٸ .."bSfjצם;鏫ӔOp5S@@"nLkXȎ |oɦԳ[?+1)ܡm_3P  `9mfUcњgZO}Yp,Vz!8@gP. 7Mt,zCV(@lNo'ïA߿\tܻ±Ux:K\ٻt-Li׻heΉ|\ə nCk}Ԏ8;nXˀ=6.}~>v27:K`H,NqVqm)qJmG+zYWjеzı5[Y b^žf}+5"JXԘfl{|~LlFzprAHkHhߓEj]XmY(oeԓ=%Bz׺{𖕇OZw4R 5 Taxal̐Ϳ!>"-D7mu ڳM}+IMkqDpnKZΔIH n yY~ӹ*YO1 0Ox=FN_"j{7e |X^xGLp"Yub\6Rnzv SOx uiyit 5`y o iw8M\1 ÍOd\K_- h,7G]7twu~]z)6 9Vmp)؎FYaX\V)FҖ"i`if4 W! O<͢P~/5§6I5Yŷxe&pCo2 7YhѶ2<ʣR| v5zeXTA)q]!k&gb\+dyh>iiqYF28Q6ڴt$-89Kx̵_.oq񺾅lC4X$]| g ,1A ;:}RVYj~Igfp)h!S*dHEbLjSHܠ@>YT oͺ>x gSukT T?xTgХ?X&|ݻ`) kS5zt,]`qQ쁠IN&i>iXqK qTF wkhE,B޶Sc@?)Ə qs׸կXj Lۛ!3!bleoP%2`ƾY* ,ց3|8Uy8&pJ+p 6,u;T?e4 ;cXW݃>d=Q^uTBv!dz }kA<"/q `.4/(w8agX7-?Dz\Bn8XAeߓh덎:׳K5EcVr!$}w$U,F:V+cs:"ޔOݼ#<pyg:CKUE;Nd rk/n]A U5&ȎCRMx)ML@)z$ eV!PJ3ia} e@Q+2Q|4VeB$q: hAs[=βG0=<ӎ8űܛv1L\+Me쨪sl P}_غƅ:WtrOUolSiZ.Rx*zµB_cXt:- `I4d 햑F5xc)F?|nkcph +WƲI;XhA DMX_ͷ/pS+{Q)ʿzFSTlHYpTi]"*p0 *Yϝ3*E Q+ڈ<߄ =-/Lyަd_S=sRnK=\V-pˣ:$<10 r+f[*q?|ȐyjҊ %-9y}'QⅇF)]K Yߠвq[o y e,DQTGĨȰW=Q$7%0U\N kˡ[6|'~suآ/ B]Iz`+TOxpV\?\R^^$S?t\TQYIՕ?)ێX3vRoA0Bz$";< coHNL\WU;J\ƑMn8,n 1Z.5F>0$ѝ!p@P&)=9L{~kR+VMeUJ ]7XḦ*PY=pi;\Il!B6mrS5mspŬCoaJY~qet:Ӳ̧l_tP?4,Mor]VUV+!$r6[dMkF(uD9ц[LF]h49^*Y9z9Slâkd$A8-PH\q%QU#L}}FfD8jPJ~K+?v];R(3K욆=[u)qXp&K@wbrs&<_Ɛz6pY!p{=Z6VpBNܐXv̡@ux+e,"RxA".03P>:^5sOAј8y${`B]T'.M-Rc#70b-M.~0=_yEx{GoCu%C.T;;Ց8KL11˂[hӀ>:wބ-<3jV c]\x:ite$-=n_h< /|U=!}!$?ZBzc~d%TT6ca\T =zQ=N Ǫvf-4& %4ҥ;iH㪖I=gy$o3Nf~7yF0HtrEAÇaQ:# $ijW [n@o@6SK]~wOPB:n6V5qpoǫ#~_ѢǍIq7!?XW "a> \G3кe|':iXlD]%23_–!~`5{Fs&:`߬|ӻJ~>|tu<>(!O OBn}`=u#\nr?Ԩ#Bzh]Me+Qr?xnF(˻5кo+FSe4'K[0DP a S'^$ |H<{:5^jP+Oȡ81^1+x'p)ȠoXv|`ڊ *cp&9 )Xz @r<ʻbǽy:!"&fӰSfׇjR⡀2B)Dh}WwedV4݄&f  Q-pwZ#}Q9< J?)(IaŬz5 HH+YPy j5YAJrFYL:l{qTs{Ր"^\ mnkI6~_fbE G.dP%IEzޘeHVv(L"\B_NjmܿAâ7gt9[ygv]Y5]׌9-E)J08$m>nC/?R~f FȐ F68g4oxWyh X<CoYvkK&QN]"FX^_]3df9&E})@"ps9=y ;_ctv[usؔA 8Keס,) Pt@ ,['t 9VnI -5#.޼"_۫-K#:A@-M~G(À^(p3_f9_[hdI-/a)^Ozi ^۩$n*ۯTIΚH!rQ*Wד ˉJ׻ϒE -V(ru8HhM=FA/bo r$&RHmE0  Od5?R$ ӐLӳpSL@BX\k WMZдnTˠ̰=!iZW> ; Gy"}&bֈ9d5 `iY9xoQoV( |I:'ß8+Gߌ<]Zul3`:*dJ k qb}!,X~r"+$;`hY~;J,!joKmo;ǵ˅"=8tl%E'kT0A}`=ѼOpoUw-'FMAw Yav[ww^u,1aJlj)_ zrq/.ag%nd!nǪUR{zVOG!x\+Ńq,bf8_D"k+{g(\AǮtpȠ*o R6DZ疛_g_8m_?^\+aS^Zl~V9+LV8t&i-!X Ld&i^%<:UJ9$QarL*!tEtE6WB߂ [/ݠ|9G膸/LpF>GCMb)AŸm;e5Xc N qx2ˠtr'AIdZ+LZXۇ c~'bHZ,ڮ;';iJdKubCgiP3mCB-)F?$ XGste3Ok`TM,mCM%=f5v1ӳX hEZRX(3C0|A +]7g'7QԀv{0<-CŖhaVt+D;v8)Y憲~vpr/? 0t$\]xj~a$}%G=9g2޶_ II:΋VꣳIrtLN W9W/9nF b0hB:]K; 3ϗ&) , ѬO];IA l7.*̛M)|WbvY무V _xsoԜZ|8S ,oN̙}!Oϱ$e[:!z<=zdv{J/=;Q0cB=n9,s9*' +'ɢS\sA}gw r} f2$CuAD@KkZ9ȄIR?Ѝ~ҽ;0v;Tc-eU!a:bp0)4a=lI\7 #M%sN+F22^-K ϢځdmaLd媉<ܴ[<$T,صtg*#u N9L[/b52mkH'ffUnv8lnJgZ a)|우8H.?;*˺<n{hKH—On KQ V/.eIvB๦iW܌&3oY1LIW>w-3 7 6L:EU7?MM7m-+ {M7V[1hbo?A]$MTY[3Q'`-uc=TǕma͟J_<Ӯ\mH/__<=% ˬdJ%g{4z, .ϛrT2xǎT֗+ \Ez%|q#l ?E1M CpR4Mp<JzYNjP!:*Y&9)6DP1spjL3RWcsRJ^&BSFO, 9qH iͥqOE΅T+;HE8m-ög < V.`3Ԃd[0'g]+&"ղiz5tMӠq8^/%AڳOO B[l"8%=ǐ'i,+-5^׃'f{߲U F<|(Qa]fKSf3ruU(N43DF1gԖ"i 41eG>v#JL>> jGTn`)}2Zfa9g2d_ճ=y\RZ6|ǹy YMp L:7b?\.<&r6%9=fGruTTye_2mi6!3kJ7AqxbYЍ,Gt |b"Rʣٻb <@p թfɸ}`ۑ) ]8 \4o.Pٚu\9N!5Ac4Q=DB:!fk(mut q 3<6SlKݤAWpw Xn`2*SnF~5~LC2N_u\;ÔL55k6DP]͕.l]>!):47?%`,1aߒKk, @&ԝf.9foPNء,T3my>#)K.Q!n>ۦq)ܓr NG2*Ʈ|M|?T@ "<_[]9O%%URUQBwV->qI77Ѵ|@r}g!"K/1ݷl@m;&3uY0'f~hU2LVgoD{EQ$D2gKqHtu=Ⲻ1c`$5~.i,EUgXwTD)xE\lIա 7ݣKlrV<♹fJu$IQ7{mIYFKܡUA0ڋcj퉐Ҙ/@>4@qc]Joka(qX6g1L~OkB0Cͺh{}A)êK w%P2ʗraAAq VTaCOV9X,oJxő$jXvE_,fQjjF g5[U6]Q2E˥825 pYA?v2[ Ψ+x >EJ=B:/>"j3&j~`tiRgv95մql|bM&,M?gHjVTF *ToQ8< ]HiB%+"A u)oCEXW^0[-jٚ a$bT3duȆ` f`dbW&N wQښ48J>jsNK\5wqwOdh Gm `)6% nM\饷AK.1.ѷ+(]KdZF0-t<;LTRʒzv]E=o; G=::!9xG46%C+o38}w͍)9RHSN f?҉XL[ ? 4tQ%Z1EKg\N z5:rZaWvf%_<%r0ZM><X "5'q؀#hȒnj#+46R+M;r{6|Xb) l.xh{- n}ML61z%pa}\`*&'aJ1&!Hsqi;IQFgpi= 1 @p!F-rwƣ{ bI뺮)Ow"\}~"as+yu{i\f**X{RghtUB|/ ޅYIEP錝P!h?د)(8* Cx 7N%U1$W]X,aJs*1(w^tCHZ#rTj"wN5Q7Py*ss\~Jp{0\]ſc͆U3JFx@[) *ɥ$rV\AOtv t!>gT ֑8o<]#yUɮP#2n}a^82f. &cS#KboҢT(1-i Az+ ܅P}^^\b \wo=CwL/Ђ ](a&6:Kҳ}P R'T?d;Z_y̍v; '+7\*j2Xx3Dap:*R$vG.)8}R 6gx :v;%\VRZ+kl*4=,d*YjR-p.m  (XENB8jr^}jkĆ'L~L!F@ەclK_glq;׊Φa 29|\ CQ8 LΜrY&G|PT@?m_L$,yi5׳\n@J'r/+{xuKi;A7Tm\"&7lu͟ zLqiKvW,6;KTt^{d(GfC]! 4:y[#~{Ԭd.y#&Iwj0¨0TA1GBc}%1q(1tYNn&2g0:$8ld-$GB$ͽy!QNU~+\H8%{O/\:lV O=j֗ǿh@;d2DP=9u? 8$ -lXR@sR 0-)N-ԪTU9+p#@/-Zax!kOw+~[Wj07圆ɶ:Swqr( X5\1&y<kISG. -`{Cxrp\j7֙r 礽N} hc#\>ܶ.M5$A. d),{yڷ}Hkl@Y7M&1GɛǞdoy;uAM vfq,'ŬHDř$`ov"uT8{=T ><oY. ] A08btСF*=Yq~W8]{3o%r>iᾨ 8"|g`r3/Ǝ](k̽Cs$p+qB5W-=/m!yQu*u-1MC^Baf b%R9zEk3:Ƹ2oHG!ˍ]8؊MQCЕZ K*^ 5F/q`u&ۀ'HN<Mül9XCKPgz>cM{x14Qs8%[|teRkc7BWo^RHfLj3  Jr@U;{IZF1yZ&1 "+XIF\9gBk D56I  =J1F$,Hx·fJO<j`Nm*xjJQz4T_*g]+MdLu<[;3.t-55`rd(ǦnM򉊗(!FEoj";ԾYZ&c翊iFm>'pp,t7dL<,XR$\̪l—T.4m]DZf}`I`\v x!)ۻ{ ω6&o'&60 Pv)GW$nux!kBk/*ydqf+{f&(_Kb~|gAHO*a5'&:*qZ5zA?Xa;W.@2 #5fa]d6u\`3G1HH3W5!jͣg,.W`<mJ6.أv,!H/ &7EB|Gh"U>_.7ls!AwL JFR8#$Npܙod~Œ\vk=YK82hph,=t K\-_U4lc7[h$_x&˻@vYv}Tlz.c+-6xr?,>d#}fۢx\1r"q.6.DlHzҴ EZ+QWG pߚ4וh#]Ж"#*^N[x6!V6BFtH,mQO4 }C2'Ml ·U؍҈llk͡&~lHKP~j&g8Zt9];%'̠-5rqISY?IjԧAxq z (ZnUr?'7/63tdh@rhNXO!'yt"{LcQsJf('l/h\`\01.pcB-WZ:uL* ^gw""-*Qǵ{.`X%f,"=7 ~,.u 5kU# 6и^{_;<=$dxbz^4 *DdsPޓgwOh쐲ZH>Ȁ ܻ-&K!x綹(Rp+HhE XXw y3]_ܭ`g{MvLQ&x*B4[LJt%+xz2y3 8TZQmwJ7J*NH(H#(( ; U<Nwr3v+=<֐˳h %OIdŏbenB0`*8&pŬǙnAݣ S)x24}A#xz)%wRiWq$IhnO?Gr1ߐ8~36{rb%*/x:Gg+8x7pCɕE A(X_9O&=Ώ[P5:0'|-Vםv`AM>TPQwRKhx}sL3lse"#$-+ &I$h.&E:W)Guѳ"H wt 408  w@ا.;Vb&T D6#*]Ilcy0Qm՟Iކ7!vR|f3x#j~l@a y" nE%s1Dm'HxiѕB9Դb& $0"2oM1ޔ/ ݶG 7^~?*UmӘz{d1B Ә!PPMZ'uwӫPԧ'izRL#gw<~tC|x$I~8o*~edDf'D$/ BCγg;|Mv {AyCc.QXJ0c) טf!dPw_sNމ/#A<|ǎ{ }=(o9 o} e1P6mpWxoUjOcz%@HW㷓8O/Ylުח@,Oa5֕i\qho׷^3y.&<0sy.D3ߴ'>~H^Uu}ꂎ Q1ҧ>t~XID~߾f1V6L׌*}҈ O|@f,2םwK`&M/*h԰ulv8+XA8 jg NI %m0gUsȜpfxuɊ@cXGK |T4L^7A8JsQ F4^#CN6.)AnM}>-|k'ls5HUI(ąQB}#ĥ/vph;$d$+"1Ts6ŕW)=U@\-Az ;2o"Mh4t -zf6qV}w~4wUfRG)q`S:-t2 }:haTUunYG5$6jJ߸(3s:#@yY^dcWJyf~g?Fqg],Հ+ub,,Z&Gbm1I:ZO,=kH|qUS4]@˔d>y?(6NI`TmdsF^DZVFۅ_=qO!.(s8=:m_-DQK#eKMٗ"ĪC`4ދs\Z{&i^iT@vp;" pq)}?oO؃NTj xٯBAnn8sS9*KG#fr0_8Zb(H|]bu IޢIPx7sjkw \OLjBl]yx3t0D^mjfI;10SBoaD@^IZ3Y;+fPRx'_@ᑩݔHz3 !R[b,gh,f$;h԰G> 79\?NTf{f+iDMxD,1o7ف~M&v^lVYmOiXO@ny<.s4^ EhQ$"0njW*8OAb5 пkVܺ5=Rtz+ܴaqyv[0@1HH&ug.>zо Dge}۞x7& e,P ͔| CoY|YC&iu}m9{mPɳ|@MMlܔ&5Zjw͕[/n漑d`WT=H 3AK9,ll<>ci u}3( }d(b3+mAZl;ZUU!LB/zQ؉e˞GrcRuF jUL bЊ(;&X=8$’2=Y#D HbEMEL %Tiޜ&x^uZ ucr7@s54Gm1-ɔY {I sg%J쫫 zNq)tb׌!(8 2SG Pen'VREDW@"W+?gif C+fSX=0 Qa>-ڽo Zǟl]$DT8:E<‹1< cEƖ_ v.!F#c>[tB |;``\ FYW3j%?4fI?0sV0gV6kb!xP2(l~OcP Z OJ6mCd>fXZ*Zi;o4^μ4XQ󟘡JuUGW.zT>+w6NRE91|`/KկɜΦ`&XI*U#7S[ seR@l^̾h#86Yv1x %#dDЎt_n.ϙ>#g!N~8g_}~sr%LK>Z6-63enp竝i)+HUi!e>,Xo]Y uu1?iVܠ_M`&{}b%aݛ}7* "_}"3!'{Fl7p&)¥ȧ9i$hc؁QŰj8j]fQ$p3E`+Z-Y글2u 6ںS`>уh*lpp+`71A~ T zOuԻ_x'GD2Qǁ^DQN0CZ$>`?)pX x]`F䇣 8Ot Dwt6eKf}[P0r c)gt߀3i8ؤ+| w꛾SJ+7]Wd"ޅ2vr+gF`8V6`(bȄq`q?{U&\_` Q.gh|݉H#|礈u3[V?9:ATiY-z@ux0䮻A`˿Hw&hNEb РUߍ2ɉ:S B[lyeFy+tɖSXgՌ9_2'E/ėX5IGdP* p1<"Uy ^uÕc|,eIg]'1(eA,1AlH5!: !A_dDQ|}PDඔ#_%,~9P1%F'*d21VB"B?V{QW氚q7ȇr#&s+Luvqct fHCBmf %VDd)VP3_yKN ,`srƏ|#5Y 1'#/i 9xs9z"2<9$DN1dvvԀ,p'Q4Rω=GȚ n&ϬM;;e$Yf( ~f)֭<]QS;lh8W|X"֦B`Hv@q$W/TCi Ƀܛ4wnȠ~}̐u.g:]MdaZ4rn,0<2sW9bb_vi"7|4-иS#R&2؊y˶ )ނ>v9sXFǃ',XQJo/N85`B2pjeh_opdd=:aX}nrR:MP߽UxX1 mVr\~{`AӐV)dYdlSM,ʃBU*D J#<4? ,(]3(/?r4%-zUՓQ"} AO+PgrIfU)KQwTE?V8 Dv8HxΌ chEc#9_|,{\'eewBbPĺ`3?S!ǾL5,lÏ 'a&z8|5, ezdLOioSCp"p kzqu͔߹ŐK'X$bDbIH|x< +`2'"ha BE D\k%fme=ykL=%يgՇ._QxKWh[#y9˷cfv1l6(??#ZɕSq<g5GoJ}L(d|r⨩}Uu8DsK;`wOe/ڟz6},IfŜtMC@VK<R<׿wX[UqAW)? Qu]ڌ2aa^ϦOl| ~b^>&+^`T$SH~f؇kJ̼>[o0 P 8R!d :@FkH*I8RM3Z,5KUZлqQy~]N:Nw#R0a(Su5oԞ))|XC8ޕn5K0̬%h0J$&5(wwʵ\**o Z}46P&o83.(2/BG\T˨vyacUbms}M$@c'aBq;!{\njJJF/ pb#~s=AyjQ<N0F;[fd|"UEX\A^"mw,kx8Y4atN3}hDħ@'ȄW8>}J2֎uقOu41uEN,6A[S3&B{'U;4yec bFBHA d5x՞r|iO- )i򊃨1`f;Q%DP8o"Ƶ{:ߕ%l̇mpn´-$"d9 o,8TK͉@7HsRZ}4WES* AѢ4j֖]9Sϡ˹'&sø`Eh`;ܡ UpJdf-\E&B?'Bg|Wk=OC5nl0 \F={r ~#Դof-ˆQѣpOj%֛'z;!5Mw˨D&PeD^&<9;F||g5MMInݱڄb7|=>@iWL8vѯp 2[!^~UAe/` 33u`r*VT&.ں8_eʰ1/F@UOwGWdK/cJF}'q0͡`qzwܶZ],t5EBOZψDN[oeC 4_y8ӿ/;lFHc ol01KRoeBml31B`$j@P*6Pe*qhB ֿq;?y!w%qf@.3j 2~)\QӒr45*|bD&j⽹/t!96X03(R0t@Vn޹o=0g[nuC@Ϥ}ުEl1a9*V4{QI&UG)ثͪ0'Vn;ڰ?D(c+څ^ZRqb;=tvZ)*l/˕L`C!@ }'eEYRGe s?twWo/Ч3# Nv9w >jnj!>sW5~. 껭HQ_L"]]UQ ӡ:-zO}7sl8x!ih٢ARk&sCt@H`%a ^I < ;rJA­NcF"Pʄ&$$w ŧ0vJgR GL V+/g}W@i\SL1m5'8o,I7Jk3؉\XA)Hp9+"|u`[HJb=9(10-L@h!(JN'Q3*ջMj)Yl̜H>7lX,ۼ,;Sd N8jyqOi͆uSE)SuvE1^2 f2 seg](|kFخ't hq$1@tI 0J\D u@AȪ\Meg!&=YL}ӉLJӟ_0D_ycysJ]Ep( ;Y c B3o yG_ gMT^}ֻIx|tV?_lٽ4Ff3{$hks/Dp,Y.43L0!Թחb^:?J>z]3s|y&Ze{[ݒose5\~ҠN0uF&bc?1 I?=Fd,l*B0@SkK?N;VbQe4phtk ~]t chV2IoaJ^xUFᢊT@.)" `,6~'"ZX=P㈶SO75-.W_wXV岷ͺ VCC0k iۛe5uQc\fx\諢`"i]9G>W\,G=Cyw# !8MeyR}՛Ry 6ldpK5)r[ӫ ,➛żfEgs uaD|Qbtt{\]*a]R)ejE>xjy[B'NkŖfh>չͷ˼%jE{xUr."6<,nޫe zmt"4㇔'iI߀Yox欞ԼN`d.gu`t,^:3>ǛH8: &S UK*ܾ^mT:QBIWEX+ޕ(+:Gڽ{8+yzf$j|rHnMn"S4~\;Ϳ~#.6>xD uKJC'' Q'Trb9ϔ?1^ɒEؼlA& (A7M!/cǩ`N=P*GJ*\F{SbUlptsz4gyk+O;3_V{SYzPJW]+k=˯n_/J?7́qrbQ05.j@։ CZd?1,PQ65TH gLR.>Me?%ސ :W]8AJNA-dot1b6MԜYg#ٙO*W$&hXakXihq R~6?-!@ F]uAO˥X E@VCXc;Ҕd&QDNRS_ IM6zq ܀NaBiqW܊z~Ĕq4u 1LMjј~*ɐ$K-lSFG56rF*CSLxcƞUr:i!*u4J;NJ )F+ud<sF*QiW.-+8rF Ǩ?)'NR mo*o2hnMabyH\Gȵ =H2MJΐ7LhRw_FI3iRSUj~J%@<}=h~5 k1 tXӷcQ['hyb+ C-G'h OX9&8wYIjoz1VV ci)Mґ_Q+"UV["ZRM1ĕ|*xNZ>yf) (^Y,k6Zjdi{k)p+4؍_6HTo31Ϭ$gQlZYN@(#ƹ{F-7کĿh.KDU"+eS%gR 3 %: ~"H1}3jwmU o=Q _kh2ͮK0>\ d]hy H[NO*<LtI+B>p !wiLHd3xY[IOaˆ#ߗ89+Q?2hB|*i")RN'£l8wUssEl4Ep)^i wݫm]@0(Z-u -Nׯ*0yrgXoJmP4;Bm8|q'!_"w,3Vse=O@Qv_ Aőn"{3i%YQoz1Z^1=ey} U! ι8|a | D@b;^17mVDȘAKW'5 ­6җ[߷[+[[ M~Baҷ%Jvi.D9n&B'RRU)ތ8aU6zL7FoE.{Owfƙ*B'] lo P v G=Wg}kI3QqDc9zV FBdpɈ+_6|kO-3u`6B WsҲP$ Gs!Pji8(=&ǀP7Hth5_h[X2ͳN g v5%5>-ߊeb]\waNb<#V\^Oܭx.C]=KWP13!Ax墂bAu̩-$ak"o,;MIdWICIαwzq׻9lKjx q;2L;Q,T4p3jxM:dD$Z4A@e *RMƘ}}waĚ7"]t!yb=!%cRk"(`5Gu(&G"#R\ϗ>P8P]uV/>;YT~ŇAHUgG;"lPկ~eZ ?ϨG'QpE` "dSh܃'L%5%^q)q'6vEYzvPLn9/Lg71!?Z"D̛ (WUmY.1Qh~~YS퉨\m`q ڋ,s9dJ|[nrT}Opt71~xR&OkHH|Plhw0SG?PZ&&ni݁ai;ޭ 4K2ϛ#uwb9(B+jvP#ZF?O?ht^2WϾo!K^ X~o"-JKp޴=<}h,l(b+ЄHZ&<,!3 cL8A[7weS3ZWN])=㊵2}?Tjtlφg<}h{Iܡ< d0E<¶Z|~YeAf9 ȞИH{5jzVRǡ0Va",bοRhɉ=8 OLrb5b8dnJH@Ja؞ȃ)L ã+Ѐ=WFv~!@<=?#9r7M߯F|Yrgd_'dΧ~O9:F92'}W D+OCڽF9ZBe$ۣLE(i|+͔Pp/DWr~bISE5Z.B SWRcEY>rsjWIc RCPQ[U-~(Weye9Ѳ7IIseH,wiOG1 @n=h(jfips8MEU[J UR[l_068w|z=G\]Qo# z7/sbe4,%4 UȑGC`Ac8]71͢lKHo՜eLIm_{𨹥 ˭dίiF>&}x%*8`:6e/ٺ%F4grG</\|Dn7N%x.$ N֑$\uyj((edU;'6-g?9!v{3Qxoz_/VTbRQη2qK_Z6bA$xY'l $Y)`d"vn 9hJ jWJnsaI52}D6.ͪfOl7t;8Yxܒ,ΏfRAaաa2DI0JU(nʍuJ2aK-#b=q.}rZCn*IwDba#񉎴U,9u 卮zJE#Ԓ9ӵ{.ɸz0bJjUh\_1a*+~7"+gJ=rWMGbpQ}9VsN 7&Hڦ;!S9$fsPn *KZOy C#l>w,0CqG(e󘓕qrJ=^.L|Boe =V]㖣G ==U2u0.P%/|ʯčx^רkjAClzҺ *2H#i܈l ~eТ~@#Fv/hP4!'w[׍y4@SD&='Gk-RXh@S ( Mj` k'^3R)mƁ rn/#ZC_H%vĽ SPS|iMJy/ V4!^fLe{ `kdx}]r+i&!]?I^M:b̋sI4t"kIi\R'h$S8(܆LRSYtf90U)ubzE%؞d/_SJk)VX!]"Q G(&YzlN۷M8!*]# JևI UxFh%7Dh.t]#]=5յ&$6^jiL%ʰmOac :-I 1)T$$eο̖l=^NEH;o5LՏ2ՠЬ/| ܗL>s+swH;01`A7,]2 Z&L/e5Wh0OܽίzGl7MUb@OeL^*̎f `ŢGc[/!5tᜣϽM*b}3C[;|~Z8ֆiGPz?0VTx#_J|l贝{ߢ*Ž~lxV'%*tM(Dz>K ~n 4=6[SPn/L2Bs>_1Oq:Or wM1DɔAo&&!#<+~블i(2Хv:Cl&r^?A@G3H @hL.s0EIPxvտ/;ici7 3l:%WE!30,]zi9Q^hG2"A)=lUR<ڟp04SKVp8-$SC2) 2fHt\uׇ(rE rl) A辽l5 ]b1ku:iN瓫\f )Տ1YBz!9IιɅ.ocZ9:&6^NRUm=fR]7tFP12t~ARqaqj8^sr^{Pl%xm>Da oIZA-Mh"YH{ӷIuw+d|z0$A D}4l M9rP/\yuo<4Yӿ[#K HĐφl|Y  6NQs,I]q_U 0៨0O\}~<* =l"1 5 ImHWy16ЄE ̚X֖R:ͽ]~s^xF;z]tZu,pcYGm@܆׫5( RAtB%UkpD^1dph{#LQ!e6箯= '2ʁy1-$.}p"b)ȼiHd,ݲ +.6輱-LYsZ3 ;=>F(W=v?6M@ {K h&GÄxh'}J}'|^;;lTaJ^!ju$.*T>m&RxAlT߳zWlaU).;B5mm V?CHȵ: *;Dyݩ'FAbK;gpOJs#`?q U'tnBz3{DOCK\ imH SQn:E(^_ro@IDY6-^rZk ցqIݜNw$)' *a6(!/ n@>xfyQ26}.o!0q{Ů*c8vL$p R O#Yo9Hȡ P8ߌ]ӹBGR5;MC|0i< c^f վ,ZOȍW=nBA1Xwu4"us^$'>Zu)0# Im[I3ylΞQQ067Ӡl`S15Y}Բ͎2MK+!Zx;DBAJ6a"Gi7k[qIB2ݗ2 tof[~%d'D!MtR:헣O 3+hF`Y5o=.DïδDqBc4C}(:  /xɖ 9q`|tgK$vHYT0 3u V,J#ljN  {;@mbkp@F;(XFE_vӯ}mE/U4} jS,gTt'my 'iƎ%HY~iv D 0UTCd*N(V3ERbA*ħ:h K,' kyXrnUzZnɋԆ#!&nI ;1t>ԍj^ZicvT$\ȩ^ ǎ x dHҷnS/ l ;5Ę1""Aȇ'ᴍ9 QQtS$+&DMU5DXcCXLsm.fsDe&0{u $4ZD`St.ʡl5Ϙ qEly$tUXa Ǡ]{VAu;߁e&wRl.O3QpW yF v Rrx+kW~(_648aX 3SY֖&jq&/Qj p7<3꠱re&Uo<7UEk?o[juQML;ną_P~Z~T6UPc4RNd)zش[IGmF,Kv{a:kT2/m䫁Hk|R|A>[KE+CxIq!YnRk}P8A99)'~W t> hNUZn)('R#g0bW~ ?ՆIKMʒ^Ym߄QiH՟X]#ڊ˽hwkāo'򕱱,X~zs3%&KL1΄yy6f%%Ng<]y f2U=n~`6- N1TbpAOj*ߕ+n~"xg"~ݱ 4: M*mUG>ӜrCx4t>ۈ$sX=7`57>Ȫy-d)EqmDA+۪c3{1-|+W{O }k}@^e Wt8u(;OX:k8OCŸ1bYx5!Y;?ొUWnZq}ۍP"}: 2PGQ0}kKLa!p/n٫ ʻCgͨGxXa):q?f㤫˭7 [&_pGL2F3@WG#ȱtK<@I71{lq]cL jOvFJHHH!*6m G pEꝂ<;d&[رNS]č!Hv2L[̻G̩V3QxUWs9{*]5R6K2![-h\:袿k1iE8lz-{loݘ^y6tV rZ*rd>a(]ɖ0H,֬aM7eqdИm1z\,JX'(`,:{.`8U}lMn9[(y>'lK wN8fiað; ;F ݉2\EC)*R r,T[?QETQ/ȆIZ-9])v6fdaWtM&}PeZ`S>X . &ʜ: qAtMiIZ &%G {&vJ2 fpmC j,GԥŻ=Z}+ UD^ڂ[icKX/TX7)LqՅlzM: @D!t3瓾'ͩm׫U~'Ƣꭎπ[lhSFˢn7F.#i,77&_K$ EiøV|4b_״ux`LRbu?iKyZ,;%@h0>9>UxTXtN1e-J"&-|neá:7 I-\C։&c*ނO^?|`C[?<%?9R:T \jpGvf=115BH!=iD89VO37% &q=2^he-;$`., 8>G.?]* [ {!? p=5Ygƞȋ1EK^W9h3O܅7;B: *cN.ז!ƪ(Zˡ/﬏~(Dn= Q#aޗy<|D&R|$VOq9hrE炔beP.9VhYǦ'Yur|Jt̙Ezmt '4 'wOB P3"dhBw%amaN3p-ܞS7DZbJ "@<~zti3*5@؎R]&^;JUKnb 4:-1+[t&FaǪF%c#49QG!Bwj&9ޱ78Ȕoנuu!WTŶI)mWGJ;-z*i" !imh`zqo}gWi\͊ mI%f{6H24affLA C4N7hxzňPISFCrc]d}|B.9d~t|3G 9afXJ#jWyUI"V0bS(<hHxQХJ~\u3y|ϨDh󚿔6PI#t|.Ց p(=V{II5YO|.P>ax5-\U6~7)%u̙Z4D {/9t2o<1^\~#Tc (RuR]N7ʼnHr0y'Eg{ xR$kZ0AIYwA⼘ӮO")+3 I$ۚ1+ ?д+匔Pp͙<kv3f,qjz2vGEFN5XC#u zZDw"%˙jxq'(>Sv4)G\5^߂jeD?)IVBNJv*`d̶j46voCfˢC BUJ۔2,x@: 5GT3F}Ĺ+<%>´i9WWNWtMl [A[za2%| tUOU׻NFs2y7ҼT)#QSUASho9bA $XTnYXֱJqKE]W 5"-ġvM_=y*Bӆo H<H\q߹ye1{p!Q=dfȡfkthwCjUٸwXpџD-doߌg+zlE.zwwo"["(%dnϽ#zB锇,( Xk v'Iޠ:4؅mɈZ8^r4M}LD0!]vGN써{Ep_#zc+9f:9Tq^<d8̿]LLQ]  }db؞6$E= oeʆ-)9$pk|wdDiz%?:k8muDWI54OŝTHyB~0P o3+7;75_7m=@~6 @)庵:D@vz1 OA/Pd6?rq?c^bFȗvU{#W]NXBn_p$DXi(ƦLg`Cs |5j<; k0Xe%xi堽0 'Vĺܗg?`f:Me#y%-1`ϟN4sP ]^#4/=oAkX]KFM gl۽3\:Z&k+qfeK"\=Ek5]=rĠvٯΠ lBbtE sQ9{0 k[*tCAHN&/a|wzl !+)[^2I;<$9ǣ "\ǎon"KF}#йMbԈʎŴ$F*%OXJ(S܍H-U ,=!{Ԑ Š0nK9 cPL`wyK慯#m)uiM&_!|W#nHa" B/e?(?!E;%zwX-0hN< pDF:4Y1s@x>H6R*60 N7-݂6:|Y$6.LM֮T ŹjrQ~zinI3ȗ,hb ]l8-.Cʢ,F=qZM5#{7:cԸ`b{c=P/wXGFhV]ʾGN{SiteC38Pzsޢ34*-C-e|sU8l\jMGs/+9l4*Ћ ա˾#'"0kx}fV+at%6|PM] p2=g7#y8]tԷsZ_ѷ{#"͕ў ^ #QhORY@SRf1sBɇ>t48+eDRPɜ*<$ Y꫟O?oX #y$SZ%N赎LppOչ2.ɰ|򚊚P5SVZJ+ʭY>6gOQMhf+ Ɂ1M&U $I>4E]oiߔvb b;du##%)T %Ň΄to^tzDΝ\ӦNΝ+">R_V$h=EzO?o8rf]1*'}okrALAJiW1!gu}E^Crc;;S,wE)ՊObrc4GRf̯S@.B/V\؟;pt[5Ю`ATb4 e? ExMV #0aXʾ.greZe A%ݪ Ƃ[t?3];\C Dž1-uf|  Z3%uU-=^x#PYb;M/\~N6Oؕ$hٳH r zm>_%~2[w-NiBuQeTLMqr Wvm* 9Fb3ɫ/˘0^ yXcNL7F[!DcI %C*+ ć#cOUUK@Ogy 7|~W"n74܁*ko4џ&cycEEm DLKU +:6e~o^qM딄=绸b/$(rш-uPم'3/mO|ƅ F_XqՑZ"MN.IEY'Efx]NY޽z='kY)>,mhK#w  r+>965țJܴt xI*"+P8J277-^6;k:zf?2'xWzxEQaь,zw8KOZۥw[yVL& Jo Yb&%)WʳDTd>L؍(l'o< є:ϵ~76Nq*$*PϮĕ}݈ObN-$6_ aվqBd=#3R ;^CmF8tNNxB_>d+ AYN'" LJXFl͊ o|Q?v(&Uxjͅ5hqۑnݯmQNu{=m4{E|:16_i)KԲI4V9ts=A]JKȎ T/.дHR|$հȋ WQB\*Orw\EGMBтY=Sw#V#p_rPl`LkᠲT UΡչfk ?+B%p܅%{+l1|`AdNٓEX*:{ەt1x2f@xʋ|ٜr~Iķ_̈.[Ǿ7WVgg! q;\Xq4v\^)bbk#k庂K1&/W`XGGО_M\)Ec ZEvT'r`_<0[7̼ wvl/JW:EH 8 lg܆*#TX8Od/Q5y~n'YMڧne 2 Io-"U:nVPJptΗ1Ő#M+K=#/}õK.ۀ#ǭK!_*[UmЕ-ZyʨQ;z.ЇWIpu j~;׻sX?zԮ/BM J'&P&ސᴎϤ\yoif5]<,5Ƹ/1ϋR5EA U Wq 'Zء`>C/*4.W|MWc/0Sxj^F:ƠTl9LBvr16؁T$|pR7g)/5?N[qxm 0ejQ(b*>~}NQؒha0O.OWZ{tsB,>Qb4ud6Ӓ\mIB(C|]to.*_ n2fjr]0n%,rcc%pMu*1o-'Ni^tL*dʷ7]K3ߏ6N*$UbLG鷲 3ܙ`UR|xY>|1%1\Q!(_.$ *%Tۈ_Xl!-֤YY. "x ei^y$Obe$çi'Liٶ)MB1KĴF@&.У$< ^yj]oe!-D)5WyEP42MD7OWj*`8wkn?] XM`o[U}fE8ENÅc<5' cyj;DA8 r&$5 6V7D =Oךɘ"H.[>*@d?q㾺NhM3(r߼]jc,ߟ~fkvb$`:Xx%Ҷ.`ɏ¤Rx-v1$CYz#V_Q O y_ec@弌Yw̿ sDK# pzp} ʋ-M0\օ˒?ɿ=0\rk^6-B zS߸X0e!ҩ8 Bgؚ'H=܁9vl;] ل!94yXE"ub R![nBA ڔuHFDBVb[c]-0̮6q̀ZH|Ћ{b  (PDZ7&:AMM /iЬ+-* h_C%@ֱxٿS'ך*+܈ oŠ\*l'dV)?p뾁z ,i +H J`>g &V9l)h7H,UҮøn) [$b pOhƾX#Ial>' ߎM */ԡEEWvޡ%eih࠽*V7\vK\.USFsQa@VU*+ ؞Q 1!-H Dztvb@YnC2Yb=5 m~ `muQ'!,Gϳ072FyznY'?8)A)8ߋ7w]Iu:\w7BظӁO7f &дJ;ɷ 8UBj64Wy9Oos^nt'ȂBe6MJrjS0F^drAC\қqz6x0{Lӑ&1Ua5о5 w-A8dH_kl^ z$byA!+Ql͖: KkR uk̒xBl0_m١k0- TNu l:)VÊDaEJ`N|c53E~cOr kOi Qu{5VGXZXMa*ſgBE,;tGbeÌ`7k-~.]lz&: q:>8ar,.zY 'UZ F'OY~rf6Hm,.7}6Pwa@+C&tְf_nX{$X[-`:xcq* *'&5za@v/T,E.܉%ri_@ǧXO*/c#15|&^ˢ3A7*mHŦr5v/:Uw4O;H D̦&BZN`|#>$esoMs󟾫#ڕlv 8.]\\(XfOѦlp.&oh~UPQ-s#-,;;Yk4o a/[Ht K;<,6Gߖγ7-{U)D1u;ēULDtT[JNdUiQ{r`TٻM8oDnQWpU[WV'd ^lGP;JF[.>̊qo/}h(5CTѡ W~;c0}/,J!b/uӮ,,IdAVΗ"Bq8w wFHd ;s|xm`Sv x&ZEW.9?6j]ٙ Ի 2u_֬ 1S&f$DERowX@+OJ"Oiɓj+i8pQA]E$5CaKM b)z$wS$rҸD~3 *p+6DCZq89FrJdy>w@M c ź\` 3(ݞsm;t(RֵBoRx} ;ZcKeB?.%<yeWp!p܏Č-4~0Ƕ@SOΤOI!wiLEI.4jf=nk&F }FVSLn5(v ?;ҏ&Om%NiDGullNs UIr9J}Rw׎{v>Y];9emUG&n=,g, '5'ke5:(H eӺ]_l1[aI7/rDjQҥcbE;TV I+|h$!Q@_*KJ:A HQ-o_;㢫p#G{]۲FƁŢ$g87ҳ@"o"}@=Yb~4`/`= Gu E+3t۳1PáNN5? ZXf\*X~?0UXdc| C{7ئnT96yVoA܊5V;GIa<:RS 92}xwÅnqeE0N41l+qξ B.hh6e,CkkU᭥RqF*UҀH9EŶ|^qGl˿c)\IV4QPtAGTFgH5ۀZqo+2,+J%mjr?͡y;ZKg#2dx27KťK.=%18o-zC&wM^([9iw[JaROmW'W )O;jS-dךZ_mqZ8J;z!7Daa|CA,dR+:'d81u/23(yTh4=;;{0?$Ξ6fbkk쇭ߩO`겲j\$ShVZ@a~Vg 3T4ty[R}|!~i?"j$s;O<m*OaX$vqs'}|av,4|kÓps3B7{k|atlc6S;N6I &Z*.pAyic8_]QL֛U鎺MGᏉ:P. 6Ţax*^JW.u-}pҲ)4L-[[0dmP O+fg986PoeJ|d?8>NkCPf(YT t*RA9R{v]攞4SvО0OOC$d돖~dL\애)2o9Ra^o}7qI]S%fԨa"g,@M3_`"|5t? ~Ƶ-2OAʸdZ*xqS=?C0 ?Yu.!~_g>0]vm G>@$4@oG9M&Rqz~EzS*ژ;mX<\6jfr֤kW//m[%3)L} 6&jE*jvBJ^V7Qr!݉P[J3 "P[vsx/ }tQfxZ0sx^3AIXSGiahpe>[xniUYdPzxقNX,DMD[}B,:T^v~*]qP N$}3^P3*kf`ex`C)΢%s$a <I;$nq-a^OnH#Ϙ3M o5鎛+TYIdpANФ"WB_cXݷcxO07COݶZpK["&R+o`hs?r-ss1M=6QvrweWf$_4`.*xO4rP;78_cQ"Gw#\1VMHFȱH W%VUIDr;j$'aizRO|]=])* $"=8f///u* {QAa7\ 3BJ׫0 0Nnў։R S YtEZ֮㟘3XgFH̠/S$ZuhA=M7q y0V Ib&)c9iЯ}>a3e#v]$fi\+G6liMSOh2~ilلj -: ݑ03o|@`,bSmi2/էz_2”yv XI jxCҿ?Ӫv4K*r^tá^&Q0#CJf̍MDG/|aW)49E,ÿțLܤeZzue]BCՁ_իӽ'x 1Zλ_cS֣\lCNZ#ۤ@onP}^7w 3&2 x 鄝 6ģ9 ~o< U%o_M'!=ˠ#RdA>qOj2uٹ}nec- v5ȍZ$h%m (~.̺THy-ȋϑ+[1R4d 5 :7sm7rK9,eԉNONHH=m|$5ۭtf2W @hZ(Xt,vkN4x_ ɂ?OgkuhCjqrM;Tf]Χ݉Ȳɻe%MBbƱtm}X'Ljz.G,5O^tKQ]Iu}{NWp5 aR @zn6uۜJvð$L1 'Ԑk GS3h"9e^a-:\Nd6jM?MBܝu4VWN ;p2^*2"Dq"kA%*5w9naJ8?(;` s[+ӼCYe)1Pk9Q_;qׁu%%HˋX}|RPvQm5gxVf!<:o7Ld"BaaM`'yU[xn/҅T r%A&~ ,0.]15#1#5xsV:d( z=xY^n pc#hrn< .!;/m8rYcG(gg8mh7gsl<ȝ NVeSX:~ähbۄv],,7ꙭpXMn32+@}/O4u+C)^ľRєORUn;n nإ 3ŴNi VښHF<O`7ETR/-1!g^1J)O})kJm ?Muz'& ,5'$ {6N%\K@@~F&8TVmrL@թQ{R̈abfq7(hh}@ KY)6~a> jb!rvbf\B"PC LQzs ɥ(5ƽ2R}Ӏ7fmJ;>O/*- fg>]Zu'q\  Mxmһ^ )LhGd{71\W좳r;;΂:b_;nS%SdaT-0=OoJ [}oҏ7n@ǩ%'ͯY+WD vg\I.u#A; z5^s$C4;E4mC\/]/6*+!'dT{Y1ZSwDU?vBk#Srk// rpW="Fۀ@\ϰTePEƬeMfXϕ<0{'%I9kڕɾ௑8Kғ˝;##(1s&sXB!]ɤT+K|pS_%",;SOª: F5`p0.\ngnԀ5?vRɃ @U0-%y% 1* '|oh8ҝtKч Ō ?I0ºAč*hGM˙]W^^e148>Э @ꗆ)mkۙ.i-kUbwEt㕯#<.պg"}xk0XUosv_޲PԆ`ޠkCsŷ!P,۶ˬS=]&27vev?a;c@U;eu 87 .T FdVW ۜErcUwc8c1}&仗օQ쭝.V?|Ӯ:2rn $HdGJN˳f$|5Gm =r'lw$"6)٪;J YX,ፖsk`Uq¨9CN齽X`F XLM O m5 qƉrݯ4L7t$~pl-E)RMJ1mN@ ˂y1?IMh" Ax8;۴XKF_ 0j_j 7{u}0nE~$a&]l;ֻ. #)OC6hJv U_+3 %~b^͟&ѢD-ֳc|y :#j&}m T!4Ď1.cr" ]Df@X5T D["#\ܴ| @ّr/(ʣnzW>S$ a,E1r)Y*>הj?IXc7< Pt& 홒:z(]^B(R=\}S3/]ÈiX[ɞG;! YzvWo= 2ڽtP)x2J &7y)$eћq/@T 6 NyB)OTv5:AS6FɈ؃UxCw ߹E9 y/N#Km0[yx#Tv@&ZwiEBé[r)'-] 3⽯64qRrƪyy (>P{LNYU<Ys-_wZ@'NA)ugjD]C"+ jf]ō+ś]3@;W0˞j_wN 񛱠2cAs~ƧyOJb/#"MiB'aueSȥY"K2]oHHuҰf\4v^'!8y9y.ɥ[͋sj%`OAw[]#qTWޫUw(mHoG jM!HH"7S߈ʊ@ZӳإTl qWh+C'd jR\[ :xJ/3;0v:!\T\b3ckmf.iN[sMbi+XŠJjo܂=1&s/* aYZ`TKhρm{2,{:=4;YTbȎ/%(B[ )9fCjGECx&m %e'3pEy0i ##9|! Z;ҪUp3M2{H(?J(y*v]Mx7ɍmAc<J)x1n@5_7Յ:xyyn'εʜ/<0WTQA{ax`](qAˡ"ݩY#u{8Q:?(*4L̀3xaA{BJa@H )h9aQڧq ܃05*,wu]s(%^2* "1dR QE0!d؆xYD=ж㘂6ϩs+;)86n B_|3vأ,a"?Gg !zKW?@K!+ftQKU%$ʰ3+ }E{jŎuy3˔GNBuf g} >`* _rCPG<@I kmH~2Ԕ1ߴ͍5TopEoY2벭d*e0>ht4CH:lgS'WU%j q2:Ɩxq,..NJ5~fWHLwDCvG0gPhix:hAbIJ԰nj5Twh@wF |uiC9'KkJ ܮT*Τ tt-NM!Rxyѽ"XDE(Җ-@b@@:_W`Q!`${G添qlQB.xub%q^tfC:6eRg(bʤs䴩YI:Υv`Qש#]w?uL3oywލOEU$J-S?FCr&HEQy{Ɨ؟ \_ j b9&|—l=bJ'ʼnlF[3nKvMHI^4M< iabH4tJ)yRIm/ƨ3~ ~Dn(5x,Z,=oHET[w߅ "eAva֣B~2}c#;H0ǓljC@k;u :k2dX_&4/X8mI$c4{_xC u.Mqؽ *MLcT],l@q (AZ|!Fs"/[E{ZEnÌgZv?Zcg4ϓ9vdySjKS=NXV\iQNFܲY3)|qyOQM`],L"VޅΪQ}xz:_:Y[繄+fkԘO>$qRt5#ET\61*r]!޲8&uk&PM؟{嵴/fg{ Zp@ ݻU[k#DB͈]t ޛQ nIѭdrVxzM"AO%0|Wik85vEU>3hj=$ўMb xv`iHAUELX Lx4@Վ=ͥDWEG._D<ܣ)0\|!E @`&!:fV;\r ზbゟײ푻剃 X,-sE߳<+blb#b59ߓ?ZgO>אPQ.ߞU?rW`|&\N^$@h 1oXrtq|!ތ6^%y`h\3txȺpq,Pi= ǁUT$ƒ0x5Vrߎ 59>Ne]>gx\ZYހKAQdQƊ _i=` o[ČQ`Ff<&ʺ7& 793֎հ7- ;7B4tieJqWT&>k&:`:dLȃmv  hKc-ͺsr-Zޝan:pP49{7=ȉ w8G#hLkлyz <OSob7=Ћt4M\sk㱤?\ 6}:RCɷt5h/P?xM@sl0<=퍑%P c@هX7i &9nG$LKd')gm,U-[P 1#PaXcP0po>J#{qyk4f_sBqr_U?ySt3T&HCa;9mOk tmfo\׽"3/g]G#i4)|^/.uw2-֏4 :Id Gao;ܣu`纂#0 ^xiֈq gIAGJO[13tcJi+Cp`W늪uHiz0F>X\0 " Ld 6e t#b" o o3".k2kOs[;0_lejOɟW]g{Ǒ v-۶l=upUio:ƕ3u~&hFJLkO,1xt W=Avruw8S@uQ}ob,Q2/1g?Y=xS|ʵ#ٗ^/^Z՚ 6Ru 2Ojp9 #@)5{/4,I}9&A>;.@"< C5TdtI024))̉[mϫ]q'T}NUGτׂUkj=`J47 Ûh.]abO!<{9͍";CH[g> 8h- ۡE+ ;O=H3,=0`ҵg}%.ޜeMGP2$9V*~ wɘKX0;үֻGAV7[ǔʆn[GrAY0T59"X.)>vkvf¶;! {3r!@Y j k҅*y[44,y*/kM|xںyvƬ4M.,Pvmtp*z>{+0u q@WZJ0~>A%ӷ&Q[Fq M_>-P`P%i2bSpG"|'ɝ0 XXx(T殳J "ԎX1`i١8HFoڅ'E*-q<#gQV5V$C5Sw0|c?COJF2.~]B )߳3VD SdUT*R1O&`<=/z?(Ovu U!2MO6oG֛ϯ-qwכmp]] WKBK>9 FdS xòy9eĥN CLIvHs~ŭ}fѼ:KVF_!eMNLKB"8XO-\Oh-2lyQ׶lpaۘ'~?~.AuJz/2(3:⠈4]*vfӁv>}X-S `I=ߠXJ"5D2Bmñ H@6SȾ]\7j)+ן/XS6Ro1v6c喑6 ÷ѝb\H$ وZm_YK)r}qB=GKa. !:Z/D܀"iWo,P: M$gkrEjoDU9E/ĀPpZ<=8pȰ!+NȢMPG48=>2 6p{[QqIeq.ԆɿOA [!kiYJ ͿYӜh?1!Py>E?x:Xiρ.EM`B8~@ɶ wy.ӌ* P_ >F_4Puz31gu(#2sHx]`A5lP%Fi3$ 75߷6]Z}[]492v/5@qgs] }T@a8;\1׭/2͝&lRcy˺57 \0r1HqyDs eH_ XaJGGXK611!y~3jh` %kq*僲ّ SF)Tq ˘^dXlhCCFFۋgSX% @Y"Nñj$:V8f \7s3+MYv9P=7 |Ib%1NkL5s&*7 y}EaZ] `.AMȉJXM'ċ˺RFPk.nA[KZ2>bi%1 Pkt}@>7M6/Ӽ d{rP@$eiyTC-&Ҹ{7Wod(U_uS=k&c/w> p&cH8S-@z{no4c/SQ\łW rw{&R\_&dz?oh]siTR%.Qŀpk@]*dFB؃FW?1MͥV!# %\rSM)ho푠`?nM5k6rF֬FSI7!|;99Hy-}MO'-ԘL 9##c*W}8S`P>в[_Pb|CZdb4_ZV0*3FgG2 agW?ZN2.e{WWەxmɁ_͏2 Z:fcȉ͗UCg019E{ DPoٮf00yoZ^S35z{>B)i!V n8#]D0"=`J[[go4R1mn^~_N*jQ ewfWztZ-ase#eaNnES:J~;N_&e90S;młp+1On>O=lZ6DzUS+B jhs0ظD}}A 8J&  S\gD*J ~߭tJDY[WXo7jl[XMyWkZ*0j!i&AW}tlzĂ** 'jG0m^5 >#kN}!XXą]Bʻ̕fQ>Ti ]ogHmmW tʗβږ:bF3erv@aW ޾H#3L{z'7 H "m\3rHv zwcMX]GS[|zX:-=}k Y?Yz۽QW7v2ʱ:In=ˤ IA۬{h:zT'OumojYuhXį.M6h =~ H0l惙R`%VbrkՆQルfs?6Q7G 7NBn4kLC(%n}-gĭ'lI5b sY]zYgiBkSibZ %x \ C>tGr6 vgI@z V[&B}["% ++AfAҚthوՂS>r3I|HEٽ"收\&:z+aHԶm@}f8M}wz*fJ}NHv$EM#'i-HW W [a-p&K V^Alc:XQ: ̧pE[XXFcOQc 9/H f<4 !żBCZ~SVW&<٢1( Ѐ )SX@y- _ƞ=t"ؖ?hv5aP R8Лdv@f7WbĹ,ps@?W>w[g;Wxx[R${Jϛ*RJqh5js8%_+.ܛH1 lv:k4厞u@u(ørRMe%_G7Zkltk.i>R9&U;vTY?At?!1)D){`|{ ؙ?k2tZ=&-zP(q& ;7$VXwˁko:Tgڧ'yl=h&zB{:WB]:خb4(h:4؋ REh༴HKjcUndQbiw4*ZNY й$ mBߔ!wQXp)p N WL.qz)+!\,L[7z K<ЮCJUERH@8 .rF6J=25@'zJ]*szK|IB9s0MK eFJf+En٬¬TE1'@G)&Ǒ_n-bdǖ[s)؂_qz֮V]S2p v=O8L&ցTEB`_#/#65+*3Ӗa_a  '+*@UFJ9Vzѳ:ܕC񢹘29&^ab ֹc'Q,VvjՆ8;?}7h:0Y;d)&kxIKl߰!BlN!uc3*-5չ&2XP[(Ȉv^0Q4>K?Yoװ?j]޴X^Ҥ3±qԻe4dg ۿ[poS`ѶϷ^6FJFFL\+r)Nc:RV>8J{Iv[ ߪrE4m9p5|dKվU1bݜAVXvvGO<pA~ۊAK}Hld:nňJ~~,ZEĹu>r߰q=Ֆ /5srtYӑ'\&X l;mG2Kԭ>юxO2#p?_~\ 5XD/ZmOwK2o/خMݶizez${1T3[*@*B _2'Q\^0v> !':Oqa^]PpF5IFU(fB.O9G ,~gRMbvU(>y6eveD1/rU*¢se˘dT^H4o&T}xrU~[~UY)sri4Em̤ym&H1=X}HUhhG23%ݓqv0qxD@`Keuʘ@WmQ?Mmع`I!'bfiK0K>-)x!v_qq`Z #h־yR>>Øxg@rkI^ƍex1oG3 D2`[" +k3pf 6pץSoU䏰'Y#pc: ]Rݣ:gyxO >Z(GZⱖ L?,= e>4*o Xc84JαRkVw[< I4!=_>(^3^)ٳM'~59M)>.v|e@!F=&zFУHG'W<_xMw@P-~ge͠J P&z}mBS)ٓ^l8lPԍY:%Cʛq!=QS/I-w L^@, ޫ&5[Kz`2F-ĝ &|@6 :z^}V VP~s%)i ʰ a^ JIN`YK?՛YC|XCn$r~@ydڂ{l\ ;%t yPj09/dJE=_00̈́f~x/?(I5/:~3!>mc g'}Z0S>=>N*PEX29Ww gNz[BW⸑>B\ u]MSyO<cKoS~%4K_!ad{.4ID ډ_ز&H_XkJ ]0PpnX &.LIڷ.L!ri.gh1n-f_`PҘ{"+3ŸA\z!SmM&(uօP˻cSr`'כcpNVS Bhڒ}>pnF f63K+}Y)DXZ87j4lxG'N7@jp5N4,k?IOǾ|E:b\^gطYnojrqġl1~jӌiXwY[`_M:0KiUߦN_5B"Lzlp#AbHMÆ׷?PQ E!Nqx~+T15Sv<C\J(¨!s<*`E1ʴa ,.btR@a.Hf=h 8w7 ö́`ߢW,0Gk>kcRui+hfW2Uҏ/-0ToSmAj0u˅/ ha},Kם<ܓw*M7WU(.#7BP{]gwt ;u2w7G]0]wl󹌕͍UO1&`IRuxĵ҅8YNt9V)s+clZ0c·'  \ݭ3 钢0I·Xh6ǀBiSݸd>g`/hS/ኌnG3?Lx0bp2CZ\=i">^DQʸcR>d{n (3a-ãqKM|zњ194.#5Y =-Q1 CR,ZYCRtpMB4oUd{Ȉl+2)L546Rfp5Z&*k8XF.t\%}y)-]RΔ?}l2Jtk>AdŮK߽ l. Tb/i>غ~]RAm!]Q##/ l+g-mI)kχIKQ0r[`.p3MQ)wUiP־pBMljh/(#,1vdX>s8/%a 2,[zpL<[$n{UZΌĢ$8hr>+i1RL1h2Am :k)YI7vivlqQ4DOGsL&=;sĽ q' TM*&3!n@9 8a],C\B#[I5_WT.oȝ#"m hnP\.$Z~ϧNr,(Fӊ6y:H+fMgypM}\G .[HH \W zײ KY ZuEھo;\t!s| tԏg]gUc{4۳~{3϶GK"ve'~k"uCf,cϬcc~ם0%Y@ #| G>bGঢ়K%h6LMXjo '1bʄJUc<3b  ~ ýYV#g}Hzš936պ\LNc飖Euqdj̐Rš[G(|C\(v SC[#fj蛘gL7_NXmاF.A')4O!FiWޘjoSF>-\8U x32pCoEXTQiAgd LNW)|g-2c&Cҡ&:ہ3c)-OK]܄^AG{ ٲo%"\a[ȥbM7FhUM)aMp<8r9@b|`cًg]4h{L\lڿ . u~g M 8۷Hg 83w.9mIsrO ҆`J'-_Y#kC,pȒ̹ᢤEn@x qmaXQ5IivlZGHJ[DJ!` ˃zAF:Lܢ"y1[&e 653{]ͦImװ ;7ޝQghdSGYYk1Mmt wd2/D.*dX7TIf[-~Ο^О1?:@a{\4 oT蒾7oPƵ 4l l! a鶹V2~Kɳxy~ \4shЭ/yMlA/ϭtn|3Jk45`@ʖەrGVlô±=i/D8r/39ZRB-0-=Lv 3W>h!Xw# ΝDtFD+J/noPN{gUna[@Hzw\{Jre&Ox_]feJ c[4V*^-ie0_w{4pN&J~]& ۅ˵_La|7}/䛊MZ.H+grFę>Z髑oQP3r/ \k.X 4IUO$u!rߞ{gGC*T p:AT0jo&W rp@3 I'*`پ| gOxڜMb#˿]*UPBMw55Uv燊Y_/=҂$W:d]_AcoLdVL VYNV7>_kIFZYkLyln \Ikؒ>JF:s(6[Z~} c>!20|!15 s3׽N!%E`8b3Z`ŲMҙA',Ko˒q}ٽU9BΎ AQ:&j.NLN?[O YzĖ'=o'Bnb&̘LU q%U?ף!-ku#jDHc*Ch%Ԃh3m.,'=U.)x)jsڠ8e W fa݂S\z\*@~j 3my~!5t~bo&S:JoV2ˊu1 0(໑%ιn`&ڽ_Ӻm#(Ko7XWD_" cQ]sn%¡ÃhAicO鉏[@O2!bfFwO{ rR/o;Ͳ 2s59@D]aٌHmpLΕe/ py@јO68)RGyXͻ˨QmYwUb$99,DI$H?^gfe)~q9X-m>$2HGW9vd^B `ǪmRHA43 \Q8]bˡV)[dcnÈ!mO;. n<Ja)A(y7LIKʐD=WL@, L^AB.pbVr>ﴟbI[3- /i( .nq仄 'Ŕ{mmʿ`@/]F^: ro`D`XmF0|c,cA9;ۜ,c@-o Kk~H4Y(+~BRtBm=,дŽDn7RsUgZ=XbVUeTaIJMzuWw\3NփP5q^Z|w'h_f%D4~S9E:Xܙ%Vm3y[KEH;V]QqE T ` ƙ'ʩj aUd`.}jl&ՃYe4xiO1 >o a/Ą ?J̓_82b Tbg|ReUw"\Ssah/Щkf!Hr7?&JjGHK/0ӔJB3ZU[SX*,yi:-g)Gc= &w̔2*v,3I';Q.^`G@ea(C_vjz'v (t5eX7R/;uyM2i޵묚R$Zlcfȱ;;a BKˌ,F҆CM݋i٫\UaHIQ]H?ن+|B6s5xý˄jw֯=RpVKbb'kg3&=;^sU<'e܏ -@]WnS3Dh2 >u",`y]VhFqnR`E_;NAxZvՇl@U?Ȉa$2ޕڪB}|)z Qno*ytY}P9Gd+i?_%7{y:Z@}VQA{+D N3;"a*Z9g6D$_CD@e <$<&,jj0ڕlS헻qj#q N|[a@P>y]Kfp]UϥaD;VGiղ<#EŽQn[D>tbA *Jж?ϼ2"S:x:\^rV0:6Kdb%s:T ]u,F[OܴN7XXBT3RڦN{mR!L:j5tC* 66+_D\* 瘽z}˲UڕpTfX5ʲ#LPSཅ;!a#Ve9B>ɾB'I[? <ę߀J]"u8@'PkK;L7r_fߕ/c&Dyǚc4JKDzb+ jg^&)Վ,*L30`ztuoH\+KO(v>o DGVNn!himg긕o-!KPņvbDaV 4H}lRkPkCޭ!+yl+p u*(#Tl=mS,qCv|)xW#c_L\e%ukij%m %pm 6 Q ˮ9G6;uvq_ojc: 4nHԑNVSUګx+(<$;b`Wjky6f/]<AB j9PI|pLE SuN j?Xrs3LB2Si7SiovQ \^΋ f,𵭿75xLs:mmkyx첰b${[ F̗M<٘> 뎠BΨRҲC4N=%֟WEkM7hRtBsh7zѨuCe튧jK\f_*:Mțɔ\yJ[1R-:EZI,PBL)Qq`(S@ <̬CyK;qq{ċ3?agۡ ٿ͝Z/3 1,o i͏T*V3Ο/R GIMmU+w!8j`~+ XI@XQerurT<nqfeϸ,?ã %L=^9KҰE"lo`E# *YH gxQ.B{2-4<}X!%(;p$gT4MʰV!tO "YMRɩyß𚷽!4SdCM zB~c{Z:n e]OJ=1y۰F0enRy:@i Au$SBS@U_i .,{4 -PSSvH6-W91+(iqe3l@p ?c\%KD|eRb;pIK2ך퉘I?PdԂ09qtݣWP(abto&JQ@#En0z1z(yRQxFI+I[*5#.|w d:Z"n,?H\΢u'aՠB0~x~[3vX%u W߶gYc5JG jr~Zs4iB&<^Pz2V"HYR긊e ۱s`4Hs`pPG#zU8VLuZD~Δ:о|KKPK x-ztt)ty_" ^o$Rd/Q_j8v aoĉ [ U4$S*8"#^ipR8!Ez%1s;V-6tՆP`>/E2NN4C}c}~.j3}OϘQ! ð$gC%d҄>-j[Κbit_&\=2j.G[Mئ{'|, ,>T)@mDo5F 5;u?=1bG VIm\{&p\$IBdƀTy ݰ\$?oJ vvұfUk\g` 8| ޷!fcH1Xş]+۸uF h (m? 5#nv2tfN>Uv0r @V *]"q\Q&>e"S邯sHDmAw.ib.Ӝ/O5d.Zۥwe.w b%`K@ pf7_ /f#dx]@$ZJ0 I5Tv.9.Kh0ڹe ۩lQ4|iPUOd uɤjb/U@2K!I0_C4A- w*;>Y:_Oﴔw[Γ;l|&f@Fd*IOc<~Z %U)+91͹uYU'pҽ=X :)oX1r@w^XjMWJ4*/B>1sɖ -Kp)?Yz҃mrR:xX$DU4*GSjh✫Ɂ9Td.Rxp.<75bxU2o 7F:AlbB9߸! b)YY֬S)CB0VlGQ+,ʏK;ޘpPRAP*mry0!9 $}l3>>*}Rd{[N3`2j 8ZnWڝ\aIQ;VƔdļz0^\>M3|qWwjBP%١^҉ݜ?dZ dRe |dy={Xyw?˾g,\PL&/=įF ~omꆤ(!3Â71̀l|U :ɣ( WH;y>GZZamݼҔq?V|j!s^A5HvBg%; ,0dplܴ ;"Zi(& k„wҸ%W1 s3Tm!R躲^Uf7lAboC2W-4M*UiJU IoP*T+*&튥]F&8A,WV%:kUh62,@-˭)3Xr,YpwtVݱ;@xTфtIfTeW\$PIDDCh-`Rj*|5!MaPNJqVd J0w}k\Пře]{$ rq= ϰ7wznQ(ieUP s\TBC&lA劐iHE rJ/`zxp_'}3b{, 1+_H&$Xͫsgףۮ~ 㱮` 2=plO`"$l"6W| Usp?\ZWCv{$7i~9~]$~.LHHT;f%5m! wI> ҹ'[,G.Ҩ٢b6mcOdTt5sZ NȺ`*PLA O+ӫj&X17Uhe׌O|0?au.E NPqRp0xZ-TYS#oKD SFS_{3.=DɓVFg;Y?5_UUusbH/-к>e~\x3qYCs jN+Mܤq%v) kNSA'Ȑt\0IaU ¨ C2e=Nڗ]KGjj4L g[}y<$K(Eh>/lN27&MnF8y])Htle#?>#=SqLyƇ2B)QZ[ PL4jo!T ,;f{ܹ4|9ϘL󦙏OvsW`wPbx5Њޛ N6/ C  " RZq_Dq]T-E{&_r %,W~Anjkˠhkfx >/gUe.oQlz Uv/B YBX5IH7أVj`E lTn,X-,7+qCUc,lm2|Oj؊Ǟd)@Nj-[/*=RFzя6wnP!+M7tgJiBȇ|9Uds- q\C5 #2QxfawT *pݷ[R$t  r(L@>Ȋ @IZϟ)7 a k?~ O݁F.~`FGwtaQZC#F1+ j> AGnt -4l(퀸z/[?ӱ"cG̶3^[pc{'>"uAy ?FRO)U{m7J;\z6;+p&ڤ'\t.⭗!EoiAKahQ f6ZW-j{b ClW}:jp+Ysj(5匰]1aUYU؄"yuBxjsEuҲ3AE2]C3)u ~eEҜuEq]5c`u@=ݡWQH9:0$(*A^=5B^)c :xsM="aYzBIp4ѳHy&5 m Dhb?,(P^f5^mrJeQ̱[nKX<^ci␹VFfJ aޭu@T `j?Aoж巐(^k̞nUl`3ȡY"k< G6x? ҁLĘEgj")Դ^Z'89+D܍olHqmb_ST~y@B"}2)m 5KUcV%u=2Q}*B}PNx,{ ]yH+;Qcf7 '2;fЮE~߽+U- %Mu(zmqkX]tW}~4>mASwAKO/lZ!%S;0ޫz4t=nLW51T|yK2} sMY;;9bAB\HML=R{\>dH~q3pifGvl#ղU3*lg<`aw2mEh r7uS=>2IDGfܐ i J; Eۊ 9uߑy5jy]xOzѷ0kZ- qf ?Z958c9=Eqʞ҈#619bͫеγf±sP7"$2~U%2>%hwLk7^rA-Ć'B [pqPrP4 NۥQ,&l7}GMj#6Ib )P>Y&=7O_0?ͧn5"e&n\% W4/WN'B9꺽-IY?ނX !+T9.1rS;ne'#P's_gkd R>\l{u[jɆq'G ZG*z#en{& X@"lh"U#~%Y$LEH˃,izUsZ$z3WNLJ 1 4''iYUtCBîmU$2~!j$?7A!|UGrij6{=('L`mEM x.y|SEXb晭e"TEmحxrDP8MB[n_Ӣe{H8m~_yfʛr"p,"oˊE`]$6Fr>#ro 3 RAJl#x5آ/Q);i\`BrɥC]a+0᧺6CU7K@ʒ;r^'XxѿsbX BjOpdnNcpf /F*%1h^yp 0 O.\8 ZL`682ȟ!vˀZcaH3l}x6 PCYs:BQ9+.DPQrn}I2Rw.0IpW\ eVTύaP#ӆE( 3CIؐ Oj?u/:;).Osڸ} fX+^>I*WS6G尠Oِu Q;~'*|[վkƂIq:|N!rXGIK*r`!b Oaz`½|4oe J'%qv1)$ R1\Vx@G5YFCniUlv.hy>i]GKzs9gR¤/laiwOz'}'K 8䈟&~̾rQ=(샌cE"wH{ DW#$|!owL{̒ GˑF17{Ch07cCYǑ>~N:u["U1GdEҁO%L"KX!֭B?@]U<= {ȣщ `P2+=aΨ2G&yl^JWF^b3nIgm 5(6_m),O6Qp'i# DGvFx`|,t|#F,i 2k#<&j"nJ=Z9xjz\ē] ER xUQ=-k3hx%dO>i5Q?j'⨞մPѽxtE~̳PݯL쟿р}|3*D#6ӗ-[g&$r=7q_-]c*AEۓulf`ʧ3Iz}u$[nch,kċFK8_Lqi7}uvդ1!=|](S r&L?傂eN:R<&득deL1~w} (e?h_贄;S;Q'@Gҩa3(AF]IGfR;6AGB"aIM,1͋EQtŎݾQ4 zJTDLeMS˽LvOnA?lo|VN\-c"}KXŞ+{oCY6xU10xo@n }+;-˄&H]h -6/ H.ʌGEpSUdm6nC$MF}v(-E2:iXĭu3˕yԮI8U Vd2VZlb\1J{F`b>;<歫?X[yǠNhVbNVuD?W3F9.rt 0umBE{ eIDơG1;=Zd_`ESP1Gʺl k۝zrv.#J5IiWv^x(斦WdwWDfӉ=rɗd,(T ,Vg8y'k#nɐך,}g[1DZliȡ3Arc~8Pe Ɋ(0(RX0=[2γSF_VL6KĞrwߘcߖpW6reW,J0K2|j1&:5'7X <4#6,en+dGPt`Oܙa9d{{=VNR^\ZO35 Iܬzڦ\/nd7X~i o~m7BۂAlU/vB/ӷ,K "$K"g,.9Id}9f=;`g0GdBSeA>_8Uo+t?瞅 㧚/9!Bk0C 0O`x/m9&z"JHFJN:.2I4_Vߟ_|!Hh-YeyKVMڡм!̘XDeM0\~Xc~@"~VsD`')o F$2Ke%sy$(~,ߢmd|1/fP$J ̖Рx4䆷XՁBy "j5'-ӐoKVxMnZoo]5CelTrfap':LGJu훟Lj-*o ~d-nHxVkUS} 0͡ y+A] oЂ.Vc Fky[OC<2؝B_+XJ:C@HOB`'1Na7S'`ܽ4;Z7b(>;_)ي+;%pQbcMfe+!xp9ʳu%ٍ<^w|R: N6Q=!K!X;ļFhvƨa)s,"ȉw/pz6E }U.jWYj f9&D+ajߋ=b<"z,`qj6w޼ VDJF)†  9@mEuL"E{ :{B }( ό闶|M3g0$}.o;INϳD.:yՙضӾ=ظ&/lEָԌ%5S)Zzyc^~qC+dae=-'ƅJl1ws2 C%l(pCNߍA}og;t;_ΩW&|l'{L-b/oK7YO䍶̛fDr1YbJC,YSS l5Y-ژ(? Z4d疅S6o`'*=6] 2ЄpR!M) >Yd.M C]W1*eC8vfhO;(H~ִ0X М46I+aYaLlERü$>*֬O[\<*4/C?a{QzhNbf^?X"1UvKkj?nga{W'qIu<6j9ڬb4rLʉ6NB?$>aW*$~) K1鯊vXΟ8,bWm<# r;lLG0}[B_ 07Qw }gݰ8W{ %<**b䉬FqWVI*֝XQCQT1 VbSůJ3#x͑z][;C<кRHS(f' a8_ٝUOd1W RB"IYSYk@{~3mT*86U}ة-ŀ!W7N_ ba0VN'0@YM #wϝiwH9O&T<_!hJӹFTVQ d&\b\0 ^y7QpeEel1;[@7!:ᤳXΗ\\lcF&}eǂ&nvbz.IS<SH@K _jַFꐧpɴP2d^5\uП 3innzbsg@z޺p\#K^kBfr>5O&QBVulywWMڷ`[+whC'm;s5o}r/wZ}v T h{u f-Pdlw,=Ȼ2A }XH5H!Ԫ3VT@:ʨf 7Pl"ͭ^+)ʀ6J(|½;@" ] !PmR}7!B>t]uix8[@Ϥuq]g単.S'bCҡMϧ0ab3uI=IB-v8:\o3܌C ISВy:H+;|4f_5N-Yho#0.%? Z!pt=4P Lpe{5柂6k ;@Vb͟HjenMҀ?7ī9\2xiM)VPzPQ1' +eQ:w}62W@.d*ޮnʹUкӎ*  @=  kCX+չyiy4NS-UsM< L{XtoCD!.M>N.n F/tz?Ew^|{&(D_mu+ F/&4>c&jG?|ם+JjHgǃђ/ [v%|Ho#=#@Q;e`;jֿS2oů.nntA1)2htOGr=/cCÑ/ŀ; R8A$TmڈVIfCא%tbae+ƿ{K]n4%׿kD+A'dCǢr7k# RNRә|~\olތm+V!A۳i >/yoV1`,ZwX@ܸw|'yB 1їӿ-%$F!%fÓ0Q1I^cXoR/.Y/WM~ل^\z5-qFPxX*JcV|nu d#Jy~q֍2-]sGg*/J{x&'2ۖiWMz!QǪugFZp-+:g[~8[V\yS_X^n Ib أv8z*kس,{"Jל5 0Qpt@'+AEB<|~4u13RunAyjj'/KWGMp"!ɢJy194&GRBb36YQ}H36Ú ]tƐ\E"+ y,%{`hdp=\M2oM]/tcgTt L&2:B6hq["^9FeRտ)l!~2y 3 E!PTw:0YBc15|{\\CRxƐ3t1S؆?4]1 E; ''a/Ֆ7۴ɐqW\6@̢ūff-'0"Hzp.cOcVۍ*dg%pOc\RLM&-&(vJ[o/to:0zM^".t8]/*~#$7]nQsP>ҍ9>ܤTG>J0~pm/dSgD;V8SM'ӋXd ˅fQpru߻}V'^%2"Fo5Gܦ%e'{j}B'.HLӧP =Na_!u3/H@r5w.pIO21f1{0W[ET4IFb^k1z,SAٓ{6+K{ 81u<9$[+_3*H9&mYj? . >׉y7,τ6ٮpM7zVwݛF=+Q悜5ůȒ bN,sc/ ?E۴I^%*GcG͞fjEE$9t |v^֋HQIgׯ| Dp3-38tJ/|m1s.i/|i %&.P($;(>`fHLҡ9 $ix$9,@x38I$4x$_Nd5Ͷ3Pu}y3 `<0f틮$ŗ,b<'x$Ӵp9X|^PP͐Q3HZ8Mp܉ B&b%j1>~!e/ ^.=N$(UVձEqM8&po UG29- K^K9@,_B}Eg^WMu"]>}kGIP(_@SH.gy wUҤU&4d%sS wYO$.g^T~pA/c-b3qWz\c$yeʲ(J;ڵn5{'J-*$ .iUb[uJ A*Y ,3o)Uf|%&sMNG-yװbk@"z/̸fB'@-;*RpTVzF q6LV]/OG`$\#7dǂ9J_0`48#U %Ilrz/NPףg8;d:/WjEً u1\P 9H6ܠgסWSrl~\jz<9kHrgj2fό]blT(Y6Gݤ2ʈUu@Y±+ ;\rl*ilKUB*˄!޹8g )th`NY4O>6~M6 @=b[7x|ECVY&~,6_P=ۍ3!j|<~[?(td{cwn?:G T-y%[e?"$]Q\p8]Јn30&qj\r YU6 6HțdGXF>5Z<8*=ESe9Dݠ LVP>$6〚|~FFǁ#" ٻWUnl~|Ɛ@dNqݶy8+w='ZʻG3+ 4` Aaehv2 Id>ɼl=z7SM޿fAN[a/++*{k,n3w`)Z?[ J?W@$U#mRMΩ3G';rZо.0DZ;(Xj(x!FrO=Mc<}-nAˬ$po($@,ъ f(Ѭ_ &4 iBNJ䱼YmyVy՜Щ& zcCk_pԺ-`ckF#/'bm SRՙ!Qpr~K&WG׆eWg2 >Ii@Biۂ/1߮pݑg +ݰ7b7:Ǡ>&4_`](M,w [ZT:OSmxjp(khA~+;R^+v2oVNӯjRR)녌s]]^/JK+U;3}ycdVaɄCu,k](՟&OK0qd5hh:tKJKxED3I)̖HE}/8}jĪy!>3WոnX$ AUZ>2=WN{$?)9dLxS><\3nvϞ`(p l~+5#N0U]cn :Q+hp5@IBu(wCpA[.sp_cmBqqQsKwhU*7Q!&}1xO(#~k~|2sNI=*̫Sπ_#Lu}w45v&Z ц@B,i(`Ј,pTW9$:} Ռy6>&K~głv{%>:/\ |>]FlkX:%o;Sc7}f1H9'Qu8dECN6+x?R#cG 5?U($IQ $FZ30i$ |nRg8mbT?/q +ض],(RW0("x|Sn*;q!M@?bC*+Vt48~_fLm!<- zdJh&Y&˛vZ+wͯJ>V8),ADsN ۦ*],̫H!̱,MfTwXOZZag6 -r[|J+k ?43p21O /d '7E67}Voi%<9nWD ՚Р[4F%6|Ms8p[09:]g}*#  _pU)PEAY9Y-1ytuAirJ \͉[IhO~cr%UEު:'uJ@߱kQI3p1 f26ŽNCMf gĺҶf#\PTgh+NRnήKd(yԣNNos50wJK 2$&J{.nprJjćo pZfiWUSSbṽ)ɗO"<FP.KfV 痁BS^ث\@njv`޸f4 ' 9`\¦Ihes/BG&^a"=Y>\)f*bkoaQS8hH(,ɌQ v@QzHQڕnHS֐h8pZ1٠޸=z" @s;tkV^#t\@O Oflsć؃hZ7w7I6bfz"~_[9?~^d]3 t4: VUb1Fv!9(&t,i8*dot/C0Nv\7b5Lw 5T>,9xfKhp:^XmDynVJ _G(o+?vv3T#䆝ӼabרٌoY-i=J'7ç|7=3i9XR&0ң*h$~'0]8౟1nvŖ0Fݖ=^#+a D =o<ǮZ;#61ÑOD>K+6:_zM9Tf>TX,5-ʌm˖eݑ[S>zWuboy#Eѻf>E {|<eWa:}R +?s!VH4p Kot#OU}lQZB=ŦDӆ:%20>9_O[BH 6c+aGRمȕ 0M7؞*{σZ*/dY2=“jBRDv],W%]C=렼Ƃ|&5!v7J$4XwUm:" p֑Yg!nRsƾ  tOk'0RPƍ Vdm䁑!/H$rBTOx8M&E=}YfG?ȪP;!5}I.n% FpS^;iEM9a (h%+Ѩ*/M'6_  )*v[V/Zo+RER h}T\tBXGTfBNipB J׸1qMrj0g+ K[' %^N|w 3ic w5> 0Ug S&wBh's r@$BQB'[, b By)0*_mQ#v~GAHK4P(ؠ)A٥xhbF2C^|/Vq{[:\)kB٫Pp,< H]OMj)Q+c~f6b >f)GgwbaJqP"'vnO> .AJ)ܾl&\ft04R{vDeNyR1*,FŴ L1Up6d:?_Iu .D1˛F3wMAg4nRsitVIFSI꣙[,l9^2lnl,M=UV6|m4US+aK2UcDMEZQ'id].FFmZ(hK I՟Ek/|zu$Cq5y \XZp  $2IMMc}> )dߙ"#VC9|cZzy~W+l$:gG2&d T蛺ϭ=gsH+Fף3z}~,k"X[i 8ԇ(ȣ{Nʮi\`ޫe?ѾUIʁ{_pi/)ms~?؊AݐsC3gZ^8vҞW`ԝo#L 6rՒ7EJ:]A F$Ͷ^<\,ۮe")W'a]x2lZ=K2b>J6a,zXMNQ8&1),/q ]X;J`}]^}eK̬^)ל.( ؍qhiS0oԆtT"!a˖83-]hO1_U1n╺^h j07ȊݞL$ Y%E-D*;z.b*ڹu9FzY( ulևadWJv=8p4^dԴiQ3^h|Qxm[XXZf,ZC(ל13^Ew_djiv pN\¨?Ba^U5> c=ӹfh'DEJ>X*qc΢&0d'~7`GZbS.R׃ sv{A+[lp<г/s=CN gP1FJSI _~uj.+E~l%ua^:A62l7ªOpRDt8#bPNsLxwhT*^)QSyV5MU0)1r܆恽8M|M%ܯkq [UU>')±^99L/%FL GIs˓ҘOnKZU@{3Sy&H)EYZ'4=#l\~rpt'`RIhHL!kN.&]{m*(̺̱.Χ-@7:rlФ *yC*UM4ܞD^& %guipAI)_|MlZ_q.ؼ `4$bC=;mҿ/MDzpbyM{qt6Y1^O⋆f+SZ=3]5WH8{q^jnmcYS%91IoQ i'q\}dMzYmڍ.K}}<dcOob=|o wM2\;iN}vsS׼e.:q+ia 2J5,3tEtN?8qc8W*Nw>:7YHS b;7 v涷S+e Gm^h Ey#9d6Y Iv~B J)vHawHk?λ{+@]N8zD-dN ]o֭&=볛ò,bNcǑQ3VYZ4j9[gԊ)OT鼧:2pv9%nX4둈+Ym%_;DZ.-e M &rGgK_%< ʯŌhֿh;" Ľ(/GÓ]t16r~3zȶ䮲Kxb,x>OEG$)X3:tK|*ĪE/L?@"mk\}1z_ [!yMpHsr_"lyP58|5 ϩɡkvY9bsIU`7lhX؊r9쉉177o9@ zK:˜)$ ; ¢CpZ3sD~C׺ʳfgpP ohl1ɹ@qnn3oXafYxFGQk@7Q)uLV#ѷu$(O*,$R%ϗʢDjնgfDz!dphZy]?y5_G `g1!1L8igGkz'{ԓlQ&ٵWy jU^hn,4qڋO~|N$[\f]9㽢Srg*uUm4j6 Mi_WQ*HO+m 99F1oNgULL#[eYh+pDQi##CH ;,iwvꃄzS`r?xau|| C|RPu-))sz=Yӧ/Bqh'+)(W4m{CUV]A0H)qu9o{q qC9\霻Фth3&)-]-VhIń@rΥҨc+E{ԓ%>mB:~NJϰSiuĩk2!3iYY-'3k_q*d '2FTӄ,W>\` t GbO7,Q(B5JI]J/qFg,SUe U# K2*z> 9Q2; >'̶ؚf>lۗVG`2hp3ræ >d`R;nߡ_@qgk.˛Ӯ&.8tE3ڒCO<=]eOA|">gP0K%s(}{Ӛ5f "/pWbȵjAϛB5i̱yX"`>Տ-Ƙ]T|軱ԓapOڶ-' ō/lb]_ ub>34"t=  ʏ5\qax2Ӏ .|.z@X!e@`lB/ a9T1Q~Y y?M*8[C$m>Z}pU'2 Mc6AΚ;u9CEK&׆0#+jߺ_@?sʾ؜?,/+ }9E.1 - <qb0I.ИAGjdoCT>߷!X*&P6"A@d`}5_FfNyBHiDWx?lobZt{VI.ǎLm݋W :])sF*Ni T*XƏV*Cq)Tvkb^^i$ї8| &A\$>̋'cr&>{a@G?Fb~v91i<Tzgb1mc:rS ȥrܤscaexN'JW؀5A)2,l)m Aiɝ̺w)(J ypc +aveî9EboQ'1Vj 鵽P(UeG1bpa#oN(*bZ{FRwǫGӮnR%#aüJ:ax$r:Y?'M1%0zˌ/wnj?+/ %%4tuVaA4'fP)ߟd2BYk|8Le2+9)LReޟks HGL|]m K,ZK Sp R:vރQmF}@H`@jY~ -K%8m'|qS 7ޭ$I՘wBZ@B;8KlBR y tAZYv# ֎AKL>@z9o='6n+q( Fpyz]i 5w5~M]G7>1(٢TB^|# լ" 6SiW]MOH_- _N]QT>:K! sRҚ=;6,K\.AHlש$ ezhA v?2b=虔yC RkkeњmH|, `&K"c{Hp㖇Q[CzKtedݷQ@Q,R TiE tʏR޿TV`KD5+uvo0WNH݋E#F@ѤIn C<.\4%P ѰvѰpfX$S¿Iw69 l]/@ʤv[SBnSfn]{s$£ t,ĕDf1ߍƽuxkMp y~#tiVZDk _d0Q՜|哈~p?{SL·m~v%"#{/Ax U *%Ә glUv5J'thbmi: oKa k blX+ڀM,-bPՄdc *C/1L~wG@V{n7Ώߓ.'*Npɮ vȵ% CUB>D>2g/9 wΩgcuC8N~F~xczPH;ȡWFDs4^wŬlJf$nqNLYHء, ˋ l!9\x!&ZʬCnK`3;,/cF->MW+qp8$QgT,E GQ= i[;R<|"_xWMH/N>֣r. Iu@Q3>юQm=4 @\6|l1Β7D(q2"s|@QL(O4j Hߍe};:R.0S,qE dWɚ*<=KZbWXFC-P0pͬ*hzKJ|. ףY bCKs2!'i9Ku Ѡ! ?N[<ւM>_I{1 R#AO0+vbad6ztfD2SӃn9dy";%Af_]qJiQ1a Fh9uGD{]8,MSeΈ\)3d885(?)#F^rʽ:N_i<8RmGΜz/u(U)V;fRb@ZL /ᠳbm/Zݖ'>i䥯$nMaE;C> v°"ljܛ7N`ml@ğ/ A@.i{(.k4*fx 3'fOs~cMh]">#SxZVdg @&JvֶIL$}cЭZJr%j)̶G&8?(q~ v#_}LL.!%t_Z~BQ߶@9=1]VM457F$B'l j$+2ٹ~$1h4o;Udq9+ЮQ aY4`ҁ塚Af& bwÅόdeYwBz ]B;k6E-lP:fᒌiCxJ V`RV1jv"Y+lce.dԄ`Ghxgy!UяG.$)pQiHpwƯ㳦6)A_ۂ-;eFZa*b(kvJҵ`eɆ- ձ S%9hDI<'}pR!loMo5ҭ#ž,9XMO##Ma7A5죨ogcL/ (T&J2b]bq!gfhٳ=lڍvE&)@鶸\(`FjD9J.ĻnbA+v'i*R~N i}꬗ feCnJd-b//АƁ2ehymMX@ {}_6u]Tц UDYw;yqq%Kۮs>{%A=fbΐ<&Xc}eirNřG>3x)an۾ca;ڄ  y~^֕}J:rtU5Ju;N K>AWQ7STg IygBKx^HFj-o6\wkR D1iK'ߙ6b)&$bwl*lГ^3pa^tBb|K3.Ƿ ?3"ijY =K YQ<>PȒˆ4X qKLa51GZ%/n Ii [9ױ7Qh^{31\*Rh0lHdR95w4pG^ 68Pl5USLVe- ~qc/UL9 ɱ3krC*J8s  =MLi7mxXJZ|&qG68θs %>-C/5B /.D7`5w Z,nЗ'3SZ0kFhP)kN41]z0C` a`:%>A(.~2d槰{[ j]`-n4rKՀ%hou ʒ9cɲi)ؑȪ~)@{UUb܃IӷcI/݃YJZe:v'eaA!$H>\S%b$'&U'(\\@ PsX|zWbҘ&.׾\\c.JK>8^(ny4rY &W͵GM4Ds0*@L̪*+ <DsBST9h/~7gOlFX[j=Zx芭iOGNw|R\6v>ceC篲bXe|%en}mz|\Mg06][PlyA_eK6XכfٹZ":~Ir$-øa.X? )cJIo!]۰}2 ]+;'KZ8P6ٱ؉kj0KD4(CDWovCѮGXX3T;'gɘC.q%*Oq8gU"~1X c@2 [d̪A2si_`*@^ LԱ1fVPTI+h";:)A6z+: T}LyTjS (&j):F + vF97xY1kO^9 Z|Їc K/գ <(>i|<T cn]JħàHfM {eH9]>_f]rEϔ!.0s:bg7̨ܨ,rLNi59bϡL6ޜ B CÝT)*vF8r uhV5+BufIz tF|,..IsVרilHoW^qall._$4,{1bРGx4 nvt97lv(-D >-*23I؎+  ([t!o;rCo0NN)j2bq!#2i e^N_7Y֋47[ R_ ~Y$]|UD`ض?#YpE)Ȏ7qWO)f"9}1`fhm6-H}2r'W_`<׀^fb(2Y=н)QwgY.jXZ#(S3MI&/ k,jdnɎU5W%$™=xTk O*iWxlz 6m9:{+ KG=]=1Bwcl^M7q]%EA87ܢFl |yM!k*#CB{ yQ5y}ow ~p.{ mMuGQ1"vG,s ;D<5A(EN!"5ӛo'֩՞n'ˁFF(/f<(JۗQ˯lfA(7"&yp7؎oSOi;=^hiihUzk*ʭ ;%$팛Ӈe Ap+S}vR Atr[zdr{"űJE |q 3]+5mXJiEX}čr^:o g)tZ &@֦Jų=6UkaWіbiЭNsFْ 2ߴ+}oż0oB,i}٥H95VP%Ь1;⍻9OHnMtG}jG2J=Md{97ƼDd.D;붩4',3pX $mwՅ ڬ8#e|G %op ].(<t* f`X" Y+N]\Χ1B\Jeڷk $IJFRUVus4URʿ <BSBGvI_!OT-b/Hv>x\3ֻTּe5 АNV K]$OK'Q\,sx~bÄd3p'a6 _u 1׷<@:QdboK4|A8(>$fH*>.p2ʨ>_yiq`" (K(~K~W'1H#o$zgR ໄ/ &?'ՙ=bK*9f5>)F[:wV`j͸2W PT/ p`g_Kt<#<_^r9e ?EM)`p@!/g?$7b:мpmc`| uac%4 *[etv0Ӯ* cHQ R/|ZAME{໼hUrSgf~s3,;gz'l؃cse+]=L/(EQ/Wiė\=SrsB|H"\R&y}/ϥ<-_i<]#bv4W(\9'7TKHQy<\a8ŀy3jcAGSTV;Onu'8Jˬ+Q_ZUrp `zYe6YVU+iͳΉe0o:MGnpOyh,)8iKZZҁj[n[f[(@ όIA7Qc{%\ D(kVlx AuhæZ:uT(7\N+Z nr5pԝN:'b̠VnT W8ٙԢݕjHE~C"U&zJ?ItΦQ[3:I堼g+Ȑd@Ҡh 05"&fhvҖ"kQ^YKI"ƸJ,\R)vs.όBQ8}%p$^rqoF[{JjxHFٹ-&[B AYѸbsB\Ałzv8-=I S>6Iҋp=))BHG_4ItmbVO^"iC<ɽ?իk͚24kXU^?rK?W_D (^fkC쵮AF*\M}!+WɬZC=n7 &BӯT%# \Ȳ>c5Au /%K.CN.q$3c-)ga{L('\"  2c,i ˘r^֥IxY  3c)W(/Eٸy֮Y Yr[|f((Rz-u](Q,;CHz>B;ezAwX}S5\ 4kuUke[t ?g{w&A@@uk<"gF(mcKQ LC|0 ^sMsZV!PAXêL%=Ǎ:cn'u ufP}$)Xوi'(2v4|NZYG1:r]2Ls=o^:. ACdvBㄈ$rq`/Pf<ῷud NN9q('뿑" )_icJqz_j7n21~63<}Xd "~SP9\DI¸~@E{/QyaFj5s"<"ɝmr%4Bbv[9HxwѠдR * l <;[žkXN筺=8ʠcV(_7t869O@%v:9{MTK}sТf!cH/ soKG\?׫*5'͎f]8UkruTU[ lYk9SҪz?E$a `,@/;#%c gb= CL?ښuYS][|ؓfM|v^Z le>ȄUzkj]Y#@yqÑ`%^!+bt$ ,X\B 0-lSNx["6tS =Fp`:F HtgA}JvyuGf[ 9;[br|<LpzEM;&C J\դH6O}1eݖ >Σu88!=64"{l POJ?$fw2ѣ嗞ˌ> b*I߅U:[!뀢лVaS+ ҳƂxX!ґ\peF-B[+R?&UıO B+ze&B8J tdMtRq''d6,ˇ=x+~_!^Cj}nqIʱn:et. 5gNGzt`)Q+L}~Hu؞GDxuogCh2k[DɱuН4BʠI|gꐡfTͣ=Z^=s})$Ym^ڶҾs \2bݑh8~9@EAtC@ѬEv!Lc&( b0ʑ+UN4jףm1N7(uGpyy(~j?RH}[YCȰzf Ʌ7p60AH>ȩ`.=l_OZ&3D[e3:vƽ,@EUΑT,!tem_XjC[m$Ls&;ݠVhߛc+ VadS^h%?Ԁy![eDg=n{]B'5p `:*/5^4c$_j&7Bi;n! \;&^ƈI*Bn{H:J1ًzAI>'q {bHQH=Zy*G O:$rֿ@s)L$+N# :T^Qx\Qi^S 0ЦhanRlzFwT= [ЧZChZ,2'{Uem$E,V)-%ێmyvUDs޺@ "jTRa߃6dV-oϲ{"-e̗&vv}Qʅ6A>7`˜Z_\sa)y;CJq8T;)^"'GCe7ë/+VM Qܨ%ѹsƼ8.lKDNF% w 9@Z9J0%vƚǞFs -/ 'HƗ;ӭYHVi}./ق&ޗ}DkGC]%u8 XtSlH͘ ~@)#%%NĦ@g̲']xg ʈW6 XtJj4Rt&D(FjxKLG6ݔ_M&^'xD7z/jJ_W Yh?2Jŝ*DEֆwr:v.]]&kOJy@R ҧOVu[R4"jVsAdWUnT!=CwDFz۷Yn`eiO_&7UDW'# [i(XeٛqɗP2?;0\}6R)s~ΘpStG| ֥{w_ U)팟 O.p26]їC˘- V: 3@R!;Qcn(9AfD]$^MLèQP41J!ASXNf🤦m !|Raq*0҄/ +e8t<7,A[1OB]!] ~a~7ۻTb7NRŌ/Gd:bWg'4aoBGnT=vjBB-^$s3:E &<Ƈ~zHD0֛çA0Ɓ]X])1A䢲LT9eRjl+A%fYlIdDzɣT[PĮ:{twm(ג!f8Sqt6{YnL N+=ߐUeHFjX b}*QTf{`D$RD_T'G(e[:{kߎ&GӕFZNJמsHBPtEH_˃SԸh_oQ'13 on&r4dG(Ұ֌$V;_KVv;_v2S$9@!GehL?19*>C5{c\2^z{JhdJ 9&)"z0 Ӿ4"+uۃOW8<7ش$3M\F$heaAx.'ػ`K6j%QC!0:@Ů2CnTQY{oNS ADf"|FSv!u+. ynZo.@S;P{6Ԃ=n7Qak8nD;`|̡Ā$URaaJCS1QcIN@#Z"~ӳNr8|)y F&Oh(_bZ"!5v,2$AòUXt(JM l.pwEhZ2zzv.C`䆯>_b}F+r)yV*1J/!~FIF!vDm&aXr TNOZ\Q5&㔨Zq}Eq%ǧk{8^1& YP(t"{ TjCQpSٜi;U.0ioٳl;e'd ƃ죂5n^oVEj.ZhUDg3'ٝddh#z!GEj.$iD6bf}HZ c^# ĭ PxPǁ.|5.EzTR@ ڷJ~+w98l #@A@Æ-nvu9ؘvJ8wX*)W .DE9[x|.XŒ<VvVV=R-k{$d'/xu{ WR{'ЄxIfa{ Qö.et恒ЮPu1b ƻqɎГE{츕h4~OϱV3Zե | KD!\d#s1iQRm.ݱا;RnLoi \(c9}]Ƒ ' KK)cDXkpOk~^n(a OTѽ:Ɍu\1~<\.$dE!GƢߠ剈ҊZ"Xt4\<*kH5GpeԹbu VoOrY@;N +͙qsf{Y`h]d @4fs2ßw$/i2)rҗyFoV9_JGB+ˏ\+#漡7;t/ہ MKLdg 94"fhح֗זy~Կ/ưIlm\$Gܼ{^oӄȴ+aS[Ĭlf8Qw0pgn6ȡ`42(HC]k.U k2 5țh2_UD5E/?.Ey󗍛gsCANs,!n{vǠi-"$snOJI=U؇_j} VYz6^/\]^`@xCz-$oBt[t\Q%Z#܃Q)6iD}.'0[Vl))4A%#]z]=$Ɉ3z[X #Mn18@ yexn'8xA, LƐy+3)_CId!D6(g"!JFc浮E11kjAze!Q@'.>QֱTD'W:dPp|J#`抌dUBY4C.#{ӷSmK$bǔA67"PLI,$4C+Ըodž &Tt#xb .1K~_P9KpXN`Rq̓f㓞nhگ=@L1g p_M·gr>}d rŽSPC4H-DgZ,r"Ή^GERշEEb%]N6LJCrk4m$VV{ .W N2c(+Gw̶)dRhJcf~Cfį/?^%۟q b*Zk,$Q|:gV2mEVn~ņutǃs!raۚ{@}jBd>{5EFc**< =3GWY\I Լ?HXp6z-^880Sq"@ȁ^jli$Xu Ka|<r[#%-!c+JR}U0kI|ϋTcuȒ/m ʎ=?'֐ʈ,k:?=2xݏ& H ް$P8YcF3B(*F/FU{Qi9nm/=ًt!A<ъR 2dʵl AL$ܽANZ6!2S:&1v=) )_ W oV*М[q=+}VLY}>֯g6&[~zp;Dg[Ͱ*7j{E wo y%F Iٍ5`Q2Qѧ4:(4$Qm=C$=,^`7¾O" Mж<'a_˪lOb]O6=Qwȳ_ɬ$]'ˍ:W&&5OmU6MHz?g.'<[ɈߡL'qؓ,Fm.a|t , .u (,@ٶ;|v~& Xe.&dzU9{FEY{ Q͊+=3=[٩諓`^E@LD5!<ӽ-7X/c, T?CQ6oq1$ēR:A-Z/c 5t6FS39 )a+Eyjzu*k"G20=>L%  "^ kbQlUsc9q++/wMx}k_QbMO^Ne7X0'D4],4{Q}@}{te 8֛}\xWV /l7x簶Čxa (ZMOxWCvM^AJtGt-$՞ig_woA+6? :[tcۇY_ 1ff X y4_-I|dyJ',F˟yȠJ/LVEu@f\6گxjesJ4a qmQp7dql}ꀗ1Vce_'8A AkX\ G+E2W &ݜ&FLB ѵwZG L7wB:N=3ΚzOoa}<0[w+Hf 8s3 ˯@s \( 3?0K;Mr:ѣ-ӷ:jÒ+MU_,"\D`4[Վ#, QVtEɽ LqJ_V^p3+ΘNolp[]VVe:5,l45RRxb8b_ق9 N1- N~Nuak]ﻇٛ8$Qb~|4QFy̅:U6-76bflդu\,P5Ae(pMkJZ >aV+ j>. ܣd鿣.%ˤҿABET㭑 @btG#mJ4SLňh[,ͦH+ %qR]kXȋ bYu.[] 4ъ&>]aV]"I}-y-I7z.%9 w4X.*#L*fNf90uǤܶǰ, N4ʊ`rpB Dt+-{gU[Xp+~xaU&Ga0z\a_&U1 U @Tv ۛS01#83 P B޷`0%}]u65 ]e%nT5 H/'g׿Gt ڷ(V=w QCdrz2.Xb:X7[>ъŒN *i;]Y[=3Q) < m|Oy;.)W#Qky៑9IC?lX=O& iA@~K~2 WGbjvW^=wwcy&1Rpi(KRfW'`?F>(<7xx? DI}Rn/6dvPD p~wgA'a>@)8$7`+8)R$޷C7~9 6_g@c%>F3J09=u-fqS0Nɗ}kv_[i*JΎ v\"[E-11?<تjW:CgrH^mliyxP-&Me <%r5螞3>d#毋E 5TcT2vSM#Oh̉,JDw*q&LP蝀=^ɜ_BB!bzaNSC 6J<~׉qfL-d>0/=[Mkz>}"b~XoyxxYaD}9|Il[MQtX፵Z:&i9J5b'5Q؄oqsW;VC1R=]9:(m,3?fKh*_t{=^끓q.́ WͰzTRoE.҂l՞c.Dž>C >#HG;ք`K7|KT^c̽s C雱6݉UνgE,Tjp^rK T0]_W(eHyppʌ=,I?!];jnUO;coOwwfJyNgFJl?C_QWpБ/9ⓩBdS0/俾T26ho'1\{V,ׁ5+ʵyp93FEcŰH6^'hE}bD2Pv1?9t7; -@BjqpB=Qa|YaaLIc(E`a\7PS@-|\h( jbxΤ엻O- x-.zQn/Pof 94>Scv[lW qE$^"V¯K^{kkBcf8IIs},mFv\aa؆/W] еdZGTC >g7!r%3Ř n`ʫ T@ /f@7Wk}xvo _=9Cw>$O3PMjvks<& B~gY/[[pdrrA7@qa B^1lG|dʹ!t]8AVާ-p&] f,#BܪwӁga`mxJ6̶nnw$:RrEC |Ruo\UJ6=@Dg2,SL8M9Q\38KZ}dfw u͵.Gwí5vDK y<%p --kZR!L?YBQɐb\oXV$s 41Eb]xq8K09+pً^( ~wK KJzbjHwoyuP\M䂫2,4.D ?v =_uj`pMݨd,'5MXI ?wh̗u&h{>k18&R?LqK %u a\CV]A8Fb;!L4{@?|ԝ%S:L֍0t鳅1ӠD_$FSZ@gk)&ҒT2]i,0OH0sK< F[U6`P$Ԝq^4XDr-B"u0Bo]O[O;`oT'Ė| XMB@h0 z_|7\}{֟2B1K!xCGgjp_WFрːBd@dO7iU@aڃb*H }ރ; 5> ]D?q~VŌa"Aܛ m&T(:7$аlc#:psuW/*F[8Y}`ܫRbwJ(e:?EIi;k+o(d6ykL~'ߐ;l#U}YM&33ϝ"ſB"phZM@0Z6UwOv0t`m 8qEeqIx27sJLᜓn(ep~V b!b{Y`5\^:LkG k.% 1,6 #mr,_l33.PϮf*n*(`+Rc`L 9TR-|/mBvwxlχeGsܩLȑe*RQM:6O.ULFF ^AǁSͬM(5%"! 5ZB9>ts#B4ﲃ$Ю 1WHC;%$ނ{jo_=,c.r- i].YT'; 3T`#ܓy.ēJqm+^I |pQJ23MUЇŁ[t Wq !8$_$ = ϰ잵ypɗe 0Ui_ [yruhGSuݾvW Lq9*8U8F%a'aQOLG=!8A)bWDUy~3io\fXB}v]_jȼWƥڣ`zR䗘&v`dۙf|1."=&2Rz2<a[}pYY$h:)lt+ "Bu*%o,]K\qS'DTd޵G N1|v^lJ[y7귚|_T4=VJ&<}㩾,2 1p6Z٦Eo[`\6Vmu ZNOgs=ǽ0 2&2 %JfhI=VOׁy{ͳ$-U3dpkeNve5 JbG=%uuL-=ퟆ@nopa*]E*YKuu#СKPgm!2AwdQ2~^|Wn&E7xzJz/ֆzUe [vJ&#A[ o㰍^>Ggwڔc,|"=1(=mq9tYюz\u%~#ޯ@suEDx9JPubV7eg7vbM7p=FA\«A&nzlRCl>:Xmu ŭ_cKש y yg~hz漃-GD畚U'I + ߵ8Fk6{h7]E0$߉ A]iಸH%щrE5vq_)}NW*ݲ0mm" Ml$LP g#ҫj.Hz!U`/JA7MUW[tjZ ޜ3ZeLjl} yٷUVl#{6sN&@~)LOq.urH^)Jxy6TϘ995D#_N¶OYGho R>qD'HKH~4u> =9^<i'5'Ս3&xYb#ET=~;Fm{GJϖtϴoĀ UwS~yT{ u*i~FArPw=dWR#7gU/9blaL{Fhj)ev`^|uyHILd(1-~# H2Q\gdJg sVcc6&ò-^@@2hFU/e͕TwpL$9+6K`xPzCE5৔D '*CѼ*Qh0CRL\!)׫\oWt$"ǴڨhO*;PL d<~%&Qyi[[ͫJ n0w9XZ۷l3M.}Ó疇<_Ҝh<aQI}\ٖI~SHoEo-qWgS#RRuy_LlPvV bD\O@ki6lWEο&}^Sh݋^V? (ݝF%epɷc=+_8WsDn//р R\in Pцw#` +.qCkDFkg%}el>'Ug|&\F,G!A%P CfaCZ5d!W:2Iě* AeN }`O29hzϤXo|f_a$y}afT;KZf1ct1 X?揜K ~n`=c._2"HpgvvÆ-* bF0N~X?hC@d0==CK/_PEK-;w/R49 mX9&pa =!1yC"7o?L ߐ4Em(ؖS~*K'pI4 brjL En: W:79#]E-t3p5+2f]s?Dd8$|pXJ?#J*lY~]@yps قZqou?@)$|j?M4$"I'U6 mdzq!.^."_'Un1 ?X0Sskmt]HCnpBS 1Yp'_7#2->?dN{4}=# @]D>ZOAuJK)휁'i 䛒r2, RW s] ť .!{ / SBI=?U_h=cKd1ԋf7 i?QH&-nn^"MF︩,ɳ*v1""8?qF$xef,O5mxL*zfiՇ*ם;~JN`W6h4u{]g.yyGAucfΎdRM'zzF L,ACI{]C@Ԣ' {HMoh̯ aLVkAZy02z2E[}} _-;WR>Kq# =#쮓b7&YcQ~lf[TJ0LFl dlh e9h9 ubm(3 &dE,#Niܱ~̿#!(}S_Wtzd9 @6B*Kc9Ht7]'$4ިϮ&Ok 4Q'U؟Z^Sb&W/gagSjUǽYƘpO2S-{PK HouLy؂5>F0|Y}N!`LZ>#O0NEէsaVj1ltŞdZ@(pڻ[ґCφn)M )*?R@{W2 ;Xg ^g"!!ß&gr=5ί&Զa/=c_(Vb{ 7DKF3şLxȋ^Jf| BU` 8Qx ^Ufo Z;6@2! hDUr҃"tʯ,*tȲ1u'@quI6&;A\IpM;{] ݁e=k&P*KrJGh`P% tޮ_dt_`ޖT; 96*+:4߆ i'Oe$Z\`Hbxf죐_yS|*oFjB̚;3R(Cyts@i%Xb Yz2EYF7X;4lZam%2p&jBd%rP4O 2'F:WCZSx #/<"X Z!˩yհ]M \8;tB qGHBESWpg [[>'an)Јnyq_))Ҩ!=@ _wB&)tb1EcBX2a*p{pxJg[čO ZjS':D8^̪H.VYY0L+2l\kI[J%!K$&$=: h . pDltQۙR¢wB&!ߏَ- lcP8$.WK3ҸetT"g\3{q]Rh@hG+Z/Lrr\7<1u-xC^@@ /$ȇs4QČ1eZ\YT݅'q@S[w7丟}xlEUۙ yo(Ba:SKC['{4` xrA!źY7.C2sV^^-`Ė\}Cr d RrKһlҒv "<;MjQ.1rKCWVYΘ{{:Juw$gD\ۥW>ڄy"R `@L 2sL#8 <RY0i(-c[o0, >"x*^B=40gȦR̭99#HD竑BUׁjۭ{%.IvHPna49u_8<̗1akMwarܑꕾMLWiP_!{Q]9g: FI1D~&ޡ(Dv`)w6t+H0ᬽb&#*is\]~!yo).| &0¹ƀJ ]*߄acA;q!`OfOΜ>A5k5|p1'EQ9=4{&2I|#qh,9>ps[b1ڲk 5NN{rѱjs)YDҍ puE,#v✒A9 AfYmJObLoe8}Dz1Ւ.˵h z<|poyK󘜃oC*P i3$%=m{>A%ruq: 2ҀN-Ilk$l Cɚˣ"bjn ,Va =7 D [ouVp,sWsހy$x-(0d )K^ehĠY\\2-e)z+pj3:Z[R͖=o힏 Ǘq~ul`ݍnپLgTN}"(PACYۗT2QYת޾h1eǂnS%?v%E){aXAi:UߘX$S];0(Aqʇ (TYgh\VZ .ߓpVKtuo|I90G=v܎W{z6p&)KY.Z>*v];̛GsÎw赴1F}0ٴ|2dLlџ2y|-zFiN&vmwL.ҦiA9lI7ՋV!|©V)働 }Hakb?2GyjI+wƲ6.$ %G]:PAr] *pvnzSYT xR=?ߐ5e9~B,~rYz8˔niİ/,U0tCnF>TS T{gvR 3Y@cG9:FvZIzgu/$[X0T>3RpMEЧb @2Wz+nr& i֮'vPJwJ)F', n*9۽h}7TPVzv!6ΗW]-  : ;q}Z i>KM(c?3w34O/G$ F.0iVahy9k֞\K,qi~Iv뛝 vPAs:e ﺐ|O`ӣQ>\(7m,tm=/zُ9=#&hqvd;11J JaQҜ7 N\6bxJf{noZŸJ-Ǒu3~k"Yn"NIZ}}~%] bvʥe1&# d";՞oM-K?JV7 sPQjyx(.3*, |7$ͪάS-ɡպL\^Ssy - 3t!)OrmS EOV{&,ݨʧ'GSjrqM` 07Y 0R"~@0)׵쫂g"i1K~ob0#atLR8fQbap>D"y&e֔sbVyv gB7qV Cza1̏zҖr#'f5v׍ܝ4/"vwEƣ3[RpmTqhV:tqϭKnf=/a-IC n9s|a!hJۉXn<g7&I[ U(o.7Jx|Bٝ[ >\R{M9+J0Yh& mWFCM L_ư4Gp )ۧu GnW"#ۖ Ӳ^2Sp/AFvSJsxұ[ }6_Jt5Mn'WBC9+jf47b}xp+Z XE]Ei] wNyXYbE[˓"H+{v ^ =wo\Wf2XMS&v^>:IGm=i:ONonHvF2bl0`H~_ʙʀ*_Qqj3]%Dm\3U_#,baB-)ޖqNތ,зPt)[o *pYߔX] %l&ˍ:(-ۉBiFہ %p%,;P-B Nb&qw49[I-:Bw.pRC_7`i",?.ÓzXP`C"g777%macΞ,'1&uTn/||UqsiBT%Y#mGψ]1L[w O=zmSUvd =ˆխ`Aĵf\(/Gff41rp3JAj4/-9Z(7~Ouc XGI1V9?3, qÃ3_"Z'І?gr_H!ڶZȁ=U-!x4p:nZWkcHls&W!J]0:V3qC]l_,//`s!Bĝ~ ؚ=9U>dO|&<0EbƮtb Y@; ]LYb$I SsWTY@8oFG% ؓ'bŬ ^)d<QP 5'Og?l) GZ Fsn: yM|_ihCi:ϯV<1?F<4Cj>Rϰmq1QtyLoE6l}2r+`+Kk.Etr_M;7lh,E9L,?҂?T=/#du}QX#\|4厎H&~h>iOaVF3]8^lsPҜ2h+MB#ϥ27Lf)HDJoߑ_m^tW~*;S45 'DN(1k/iהh0UɕvY*[Q T"K܆rp Jwu~SR@ :0n |K8=鸹dCZ|&OZj53N*vo.3| ~abD} d6K2QO$WN%_9fXEZՍl{uAE{a'ᥚ5R 쁚n%_"WvU j=B#ߪ{9פ0;[;dxȜc[aW ?AIr<"}0i>TXIEv@[eJΖ]=L=Sqh?hnVS-gș0(r"ovsJk Xs$8>.Ҋg SvEg ]l:SBGͧrûyOヨJHVJs0r!:et C6#f\ru8&oTB\4@ $Nʗ}PBƏr;OO~6Df?` zh)e/}b(ҹZrgM}AmfY3o&jAcg-Ρ! Yn~o{i Fa- ӾF'#oΏۤ3fZ(lwG9Uð@\w ,2sS.uu3׳3,k4Z*G$l׾ȃ$c T3v:[iJt-D4ɲ@FW{hO@=CRFӻ,x܎h{4nޠjc#tn^)$Rn(ڗaH@Nd<7%+rMv߹GAV2LuuA}*/ U3U򵿮U)qTJ G=a !䕳6۟`$6Msڗ`v`Ȗ6OA#r$SG,&W7Q .Pq*YPDhH7;Z:-W$qXdZVXaCﳣ_Fvbos$^1F,>̊F/θ· }6ʆ&}kzn&c3|r_hVU 6wGcѰsҚ+X EF6aM H0bP48S뾟)fxAeJU|/ Z6Mǿ6$ȫӌP餟Hh_Y5l v5wj?Ǡ6 6}KJ9(fA0 _6ѫB\k!t-^(eW!o>~jY7}Fv!zH@L cZC[/޹<r'z^6'u) \>d]Uox) V|Q[02,RI h6]  .NtcpDvWg{rcX!j+wƙvzwoGg[]f5V KHiQB&s R3wx͐~,p_sYjkY8d~$,{3 m'C[v]x ziՀEaypј18czok.ȳxƶ!rfHkJ~bDY^rG?b;HWXoe>Z h bI":=_p> eΆ%tWWõ2nt;_ 5}F }λVIɥgސYi` HuGXV6> oZȆ8 \Q$`;pr΂dY-Rsg`r~uae`+"84B3n1VnKNΧi"^NmPp5 2FX}LH0XW谒e'fF@3fWտ >ȖBN-s\ *!>tx]U 5[&UwDMN8mE؍ __@Ӿa9~myÈZP7^x;I_yivF!*\w*E3@DoLu/J,b z.Y{_ML )2I+KILI#~ٮAQ^|ө]9v=|뱱2jm&*3DyCأ~.lWod3S 2[A é.Nb}YJʬV46ϣ+a@:C#L3Rʪ{b+ Pkd7~a,SwքNzE*n45+ckxde 3$+VW1xiVZT)oHIi~VK6Jɴw C*<;SQFXhb(o^+u㱔XƝ:0T ÆXLϚt$J5dūsf>,)R?wa[aE#J0]iȣPP.鈵WNBd=" 9Ao IT @kY z^ k5'$b0viOØGDWJhO_0^ƶsĺ+^ƞJU!6,&᳒\jA݌t2e]QSrYM$ NH)@yүPw L7?8DZ(V Ls?UbY)@K4rs'UʷT;l*O,K˨*bqrCf_7& 1 0m~%n/BMPVDVrēQ[1RBl ;y%2zrs{ 1 ȷ }ת~$ll`>D0`KދO)ⳅMs)2*m#]9l0oQVIw6|XyQ>_۠10gXj_g66/},l$́{* -t[zfYEQLFoEvyK'Hòps%PҡeTuBo $y OsEZ#w`)PwqŊ,23vӶT%  D֎a#cv&zL\P(ɝE@_:M@Q1Cƶg&X̣i+D;aʥ+2 |pwӇ 0u#_]rUh%@fa1}R(, T)H815׃7/瀭--L}PbH؜㪗T!, wp抃;`É \2Op{eBHr'ֺHH}q)]V(9jkn($v4{0b*(गXlpA2OXPZN[?XW#+W R_aFljM1c$t|8Fqz3桛jqv䌓7Zlm%gLjf.wjZse+4+?F-C.6-c~H(p1Ӿ)I.K!G\'2q?;]䐽?n'>dmFP(mȪ$E quUgU3y ܾ]@3%8qHHTya#j ԤJΆ"؄hߠ`/ KU)wכ`_%Y.Aqy궴_E`7[; I}8Sr)\QHK*_ Z"> Cbc{>Sxs!j#kqLi,L4YMLS) g+#!3-H L( k)r j!u5y-'Q؀R*v p^K׽j&0 8(d/%R;_C>ysv}$]twҨH'F`##U4ƿ+Udӯ(Uz_,NOɉX-Up ԧhN|= ts#?@}j*3h̭V-Sews,o'*G[5l]}2ROW+ YIO c6KuzjE)c{n.vHuaੲLVKxcŐpaHFMZoבqJ꣡VtPP]q шoEeVgbμEgz#O>? & ZЮ5غDѬ̩(xӉ3g<, PVk+߾aƇ$R4txs}$jqח(-U f >= [KJ-_ 7\&6ʨxM36b]ш5{i[ܧ8}Wގӟ%*,9N5|"ۄlp¸^tCw*㺪7m \3TET5"^} iwxsDtq$XhY!-|NRil #i\Oݺ tGT//R{WoXǤ>Pq,Ǩ[6&{d_#gܬ 81YłuZ#U̾ VL˭L=ͷ]Pup $* &+u#׏ xO0;+, D5~O$iCgI^m'!#So*CҒޓT *wmbX_}, %mgZw5L^CVP(*0+ tt=;(0c%r[j沬ii0B\>YX=VubskA ȼ3e"aYl@ػ x OoQ"ա+3b9[vuE)eKL 0m (!C~v9C#~V/:FE#Ȅh1F*n7~4&WZyd}x qb7J6*%Ēǵl[T5g2O\cAΒ=)ŎWkgmwM)ќEwœ BÃ06eQ~y,{#'v6%[uo)טw!F p68nfkvvfc^#sH = ?d]p1ol=lf"ssd[ rhIPeZO@"v^lh845QlPb Mf撤C^fMF~YFep }H:NCROB]CNTe1M C}A"q*3KVaȽfO{>ifi!>nl"}91!Dqe($}l4sߤvtϡ*ٞg-}Pׇ[`^\K8ܑeOػ{8Rwmoe؇cjr$QV/rǢK"w^DI#`RJԑ4$͓ a+!3 ohDgS0Q[T$nouQOwZ̭ziZK/M)gV`c,MAxVV=Cq)n\JiVJsP?@ao/|A!`O\rה2qc[ƹ.ulV5=QDzfv`&^1ꔫL{rGx ةT8MUnȕcKrP`o\ǣ",ޠzM)À؛14uRFz< 6s$g"ut\xe@` ,.}j ڬ ۦ% d\\ ёI$c 9Sp*&Y@ \[ZgTW(y3L~__TGLd:\Sc US,_tDNZ2!AU;QPGxN4 8xEbT'Db`廂Y/So]3"B0xAvjfQSP~DHbfF)7( 0BV2D?Jt $ڏÅ? q.KPEVKd^A*j2kQϥ8mF1%Vu>_Wy5"Ko 3d[|ODBydOX+٢ ՠ'"\E.2C)?93Vh=N?ƞSؙhW`|9J+ϜR08*.ԿH#cq^:0b_Q~P,\tl+`7Qt@Ł+)d?K \'!CC0AD=@v/ f]9UdlAP36Z'&ױFu.دȰmjVr. P:œaoa |*ezD0D'2 ;ᗲzû/#ƧK[2O(8W@^|b7b^0IIQ伃@CIm"w@P U%W /kFఝiYB,P3Lkl 7 nVOk*~zp.z&zIS f8nZw1r0G1oKqRelz޶"‘C3ͧYP1_4`t!n-QnoVٔ)VhIofnOӉP%k$ .7nZ'BGy|Y\tsrCba $}e5Hm.{A)ĭo*04].Z,uyA/U-؇ ?hS8$%!CQEɵ ItE1= pr(f'-C&pI䖜\ T7GQ+^BY[k##p!Hr$_Œvl}\5ЇsQã+H8%8Qp"Rľ=R mGKh,̦ ՟3}yU 4C\}I`1ZaHvn(aeyNPk+a;F-~UN_fS`&|9|Fذ  ^Vh݆ & H%RRYP4G$# fl#`msHs{ ["-&Ġ-OC =WB̲%9BgDlJ$nxɆ6ch+$8 0ev5h+elb:T#"{; O]J(;jDzl^F%)Y +euXْb~(o\;QF/HKrԬ7G4~Asʙ'iݴs2 A3M*TR#0MM O![]_K#.KDRzboZVq|BU,<&iOV.l"I7)Oz8)bJ;i߭.ܥ z~N4hqS 7`@rrz^ѴRxP_o}ΌjWɥIBUJ -^%gb\-@i1&[ M߇xnvvVFIQ`dh:$&Q2N-vr6gѼ1y2uM<2.cGG SMip_k;%%X'nڛ*j0i~]ɣԙûJbw5܇௴̀g2ѹy,/j2n.Db^_;d@2'KՕi6r #=! ly׸Z/>|HAlEƪ-I~x6dǚ'YH#-0vh ՏCJRdflǯ!\p|G&@5)N_2(H&1ࡖ3[ ypqQXjFz. P.W>!)Aw#|Nl2ߛ4} A =6Ctxaެp:xh8!mn1_3+']˪KfKr[2$ŲbnLˁa=(]>yT*4Yd!MPT)im_* >tZ%LU2Qp.(TjJ_JB]tf \M/|5b(cnV,~ $&c+HS".r\tXi/1ChЏ1Sa6 #, èm}sp\3Nn)[7_MD%TSvtieB`~I2ŚO)Wq z@UfW1r6 .|၀A~FL%S7'`9KaJ 6 G?¼`>,o'hɐke~5j/w%^ pAј0/pռS8r˅9<ֿ*uQE|mǐ|o@􍯰࣢&@D{٭ ?i4PFIʯoQ (!u}?xF B(z<>dF ^RP!-K ҉oٟkG?2OO&k2M<цycgF 2/a"unɻT|4iU(Xdu-0L0Vl}+i=+b_Qyȵ9 X_;DYfJibW՗pݒH^ҧ6c nMOdC1rnߔ\7l^X-<Ν.RWғۮ^?nE7Qe2Nŀ(z{Ic>6u@w۝ QΏJ3E.? ~-ѽ{7쌇7aL*DֱU|[d %4:  UCnKҷěgMv:sn _h.74!/$QЂQʷJ/.5{Lt~3EvmAWڢ$Kxpz5U/A@$ VH'>j諮fZ%ƿ!˓Jv;逶ĄIR8~&gj!4φp,ep-SNvaoY֕|fRĻQZ.4cBg#dw|#_Zǰud2X4 uDƘ 骣&Ŧ+u/-Sa;{(Y$'@,wII{;ŏc&[1Ģ%O@vCfB=;|BK:h A@e-Xa= P8+o:D!B<;j ITX*eX7\he/ٓXl @n=AnUS(OPk|SX3 92 t,eȜBhv BGJ969H }@-$;ݯI: i4~PdI"5qؼ42'N to<?xX;.(^ ۪P-~o"N]G'F]b's|$' c03C$ >')k Lwe *uƐr cg"Yx-`y3ɉ;l$g]"+y? B1# jBvCH*L&ӀKI!Z­w6Ȋ>7B _3XP)51@a\S4:B6|Wbzn tLw>,aS20ʱ=/qm\`Gg5SaC#r#N?SIfaTl%a cm5Ɔ7u3*7^?Z[x޹~vl#{{G/wܐٺ&J T%bF}V*-C6'VRv&ʁ3™k #IrC<2oe}2yo fKHUGAS(%^.'{Ͼ|`,`c woS$ 5 ÆDQI5 bY0af_}:j:UKxŨ9 |6+ڃZ1WRu)e[-JQQlo* ?vӳ Cst HQ}| >75㸔E(sA"ν"7BٶNU{|hu- 'J98 R!*ײtZ-֤.Z{ic7uT#2a1ta~{i-dT{ SqIEf8\5|K`Һ^ZX {jv^#7aKm_ROXi;8++|/+p|Fޞ zlGjXʕp']TEv^'m:vw0 t(#io_:<g|ז+l(~Yȫa~%xoS՟NflYL;^Roě-䘎x=FS(|c Ba٥ގL (R3CI^ -(&F왣Twרxb tPmhu =N?S9[rrt  /~ٹ<4ŊP"/to7"sـ=UXq4x;gHӹulS/ARƂ}Nv#i X1i!`<ךCNz-K;&J'dm4?ۇoEl<э& wB.T<JVjQs@^GZ:^%^9 >ihO%,3'UtvHvPmyh?RWda@GG>t]J\՜]}4e֏o)rOGE&)eޮ,kFg$"\;Tkz." +ѣ_Zyn7l{ξy]y0(2\9诜jWřs胋x a;̎Vg_"*<6rp0Ys30#Ecw|e!A }v#am3~#޸J,J mLPgEH,Q\%s* ,އ &6BI␋Y\rj؍ hW-ف0 :Y^/OdD_mil&.*26.jVs0O,װmNgpM kC\IIM,^kTX J#۾c408em8A[J_3~h :?.bdmUEDhl7e_]n)bx_:R5,&Gœz2\NtE%p7sؕd0bx.t'^JLhӠs$HAI$:w; e vF(\NO`Fhd)>K2> b>OG#' ܑ:CY+ <7h"黾(~HQ.7226(AeJ4ukw=W)Soڣe6+Wk0 mGpGWXD3Gi eN5K-ZHI mDE(P$E3aA0@pq …KM>QL36gq[+wWmvꅸ$Y λ@ 6ZJ\w (}n!͋5X,(Pce~Ym xqBA]bZ@G2 nA? SX7\SG9 xŲ?Ñ m)p!nkxy OROM?[%12łVqTic>sĎ& |/SQA9ͥ۰'\{,Bk/A8+[hÒq`W"w/ڍ+Z+%S6 )R`OZPǑƁ +[g9{ ؔ0֨PTv3TpG9ѫ33#`iQD-"n|6)#_qc橣'u<@ jnqMZ ^ ֗сH= ^4Ws4cp8%&#Y.)5'x5ON$^W)ȭe\Ÿ.m@F5E_-WM*>}gѦ"?C 14FQ 蘎iZ/4OѪ{b+lFd+~Tc-U04{qpNػA=_4%qY!UKL%-aJ:?'5Yb84/nƯ7s~>cPVAF46=a$G)Umfh^~fT+euK1"3,‡(D:78لuXomZ|F_@sJIsLЇ0[|\UL/`̴֕x@ ąn^196|Vw6RZ8K@qL\ӫMz^2ny↳ZܨI(L'!ru fKp^ժ,GFeoc,&b+5rlmߖ5ud9:sA`ƏVM\ǧ-X<̨()m="~.l.t2A)\hP>$6h) 'hXAv;Sm dql6;2 O AIVGuPn ."$fT]5$o-RTH4/^Ӈ2_ʱ|Bx[rYiT䷺hgx !h{U㤒"fEŮSY7Uҡ-z"8q  d3;=$ʩZI5͖Y "iaGQYڢsqim즇̐0R!f93x[PG Ii>'z)T.$_Qy0KҨՑj5VYrz%i.N,8,wյVY;<^mz,&f7G[]7OFpa]3fB=jb5SUL]Q8-DƱ!"R#A؎ݶ#?,kVOY*l! '_`[7u Qӿg36ֹ!Fc^\*VkQ5f$y-lD)V߰ ]Ch8PGOjnE9[0QӢi/4a*ےvMP򜊌Ec,Q+u֧x=#-93Ib-[mţץ]I.LMz+?Yi D|B.sUͽ-p]ך ~OFg?7~JႯe_xgqKkBV6s¾ 8tRG<(w-HS_?OF9?2f*{@\37iKU+k^Pm|5v%oitJ% @D`W9tqX:@{Z"RPսdA=u$"kǪ' H*pR@?XsH5=ӝ$M .< R²ERvt <mY+64Y9B }N)SwQ )9nlhE0~Po7w)paa;qxJw 1\z[Xπ5Bo44,qS._,x2\QKP$#Im; 5S ݐ''"91reLa+qP=h ׏87(FRq i^qCэP?,2%kf5cas٭y<ͥ,ɂә #ഭҿ=+ "PMgk`tJFZ+f#EGuRg A\3|$V{GPu>DI6P \ۗ͜TZC̈́unKL^3̼?JD7s L#u 9{" Fd:iiR5fy۫Ɵ/ 0&0|zOHh`C$d'vYd89w\\PD^A(VP2B2IT*2^!Cpu;WOGR,5ڶ dZNs{G=>&۸) ۳9}a\AB0("K ; Iy18DkS0I+RRUGCyqҊ-eGe݊3Nlx2ܐ4t,iF hLEPEX}lܝ={Ñq<; w=*9P})'i1Lm3-|FڒVغo ?k>I 3:Gb}`QxaZ[C{ܒs/\rOkFEз\rYj$r0a3dbчھُ/κ!7d_י%1%oDm5͇q+(.OdD۴=@я?%W|rR\75FONna|@~ Au|;=7/tIrcSR%+Q B=7O1`stl#/mD sZ.4^@_J&,4M}h7&w12vϢ>JTq~eAL/imJuOϟ3jaԿO+뽚-]+ 2`$urT\4 nq5ѠHJ,}H*# aCV: |. yW^ 1RzBrz3QOƑ\/lRz>hy#-$ƝDFI<6RIzѿg Q!;L?jW+lI`GyLl7?рC5hj2+(+3;JĪ-O]-oB yRԫ${^Lh0CAuʊCQcikܰ;o*PH!lEcQcxEh\'RwE-wO fo1QBRN}~ӵ\W)?Sd#2QbI(\)9:_X\$L渀{^Y5x h?絊4ЖM]C EEaxR;Ԟw`0(}lVJR ^"D\/(9:6} [q>䐙.D?aM^0pg>ȁ (_PTZh4Izn&r3 w(@-?EW-H1sJvF 6 * ߕ3rZ cӳR D8j4]Acs%DYI C^~QPZt죓uW,%4Īl,±F{A?Z}^)+#;[e^ʎC VK 4Q|Vz>sB&7yqgz_w(pk"Bګ kKu`у#=JV(?#ŝ, geHld.,hMc[bhӤ9ם{IY07?MTg08 xlZCL|}(:nTmX G0C->M g|)] ]e!0ѩ=ey$gbݸsm_ H;1dkjǖ0AןOK17?|Ņ*?gK0 Y62ln|tWDY!G ҺDwT{qhigD4^ղ:oZѩ}(=:6[2s3W kN$N%kT {Fob*.wBQ^͑bŒZ/">:ֶ(8xʟxs%J@|J_[xbsoX)% #^/5ZFmJiPL M)6[#Kk+˜V,j D$F ZgrY.ӶhZa]mqFis uZe[X&/hs J>#jÌۈBCV&Ƞ|S8 . GgUb& 4UɧPϽ[)e`vR"j/tcG=%  <7 S}Sr{qx;kt[ݗOv-尬/UTTYmt2FzOlV"Kgt1@_dD2(-N 8^pgv=#ICδNv~ {U#* NΉ498}<'w3=G%:g^tϛᣦRKBXiKCV^NR{aQ>iN._࿂"=Ow;d`HٰPL&{=5.c.&!p ,7tz˯v bxB [~?wOfPT.|sƩ+9(Cy"ҳW3y:KN;uwڪh tҙ\=%6OQ@D-)NBVfF]LB/}=_v~:gwThzD][ [xSJ${[xo@@uHE' ML*z2`H(~M@:GŚLiOOl--sZ`TPn̲7IГ:Ҝyd@hVDuϨ&VŠ0 ʏyZ[m? >eGmJ}Y@4e@Ѧ%HXfyƌ3R%Mǁ7 ~fh۸͍gcouY`v h(![MiV| `HSYtnAF MI"/IH(O91Ly=gy)LgMS7ıNp5t7WhHIfh)ki,- =Y}^@Bjvrqws҆S_љ"6Fu#)"{?OѶ'>Uh1xܑNKYτpBΌ &S5BJR-˯>&1MWX1ft/I1pyˀ4WrĜ  6aiÏ /$۹s;ATOXi|An޵5>>FrK9-ՠLF:eBHlw$Z |AKb,mwAzvn9^b#Vp^ͥ>RS,ݭk- i졺5 ?w$wǂ@ +-ýzjH0tX g>4r(Y_ʣ1x8+,=B!b/g1~R=ְ`{Qh|=nu)+#Jz YJT2΁ xzk&jkbT7#w}0+Zn@ID׀7|I?n)=2m~*]Jz2;;gw6Odalޤ^9=zSފ :YRq캔ƯC6La RҌcVgY+dϿ$mxj-= ЮL{ax˒#GpU7vX\O-'zq)N9X0H[ϠXv?L#ǖؼ-,ݡq9?Z'k^*Z; n%vDj57M-lo`[W1o5t]lL*Җ*;W?2YP Oۻu0tDg7xZfAzncDD,קvYsZ
Y6?F+裋O@MCZ+NJD~xŅ:%9j*ޡa3kB=sI5ڟB6tt)cMCƺ\rs)g4fTF>B>k/WpH;ƗRБD@2xB(q|8؟?m@m6qG- +Zmw@)8_eTWTKgdv=Zz{Sf"D9D}L(ϨbFXdY?I`-4Tw+dOb%Np~ҨC7V˿Ep1Hm kfw.ʧw϶Be /4I~v uYSmRz7̼|r в?6 ZEYgU)Uu& E?+ʏOG#ÿ|R|\)^ eq` ̛oPә@Q'⿳6c7ԩAٕT$u6Sկt~s"xU&\gicA .Jm((k06XI3:^R1$&,QCzoKuDצU[jg#Pca";iSoO57ik-313݌](> *'G-sA/2OUŹd=֢$=k31z!jz͖M\q3X|uNZxh];C@s=Zr"AJJEj<0#)g_V4&q6iW[-k @ v\|\q[k@?M#؀lBl}R S[UO5`ͺ| LP(} RFիic{D ޔͧZ,DlʂS{63$4P>P8񝆎ՄՌS'(vR *pc"M}>*: xJ@Jx!qī{L[֎Ƀ$I1ZظptatJI6ܔڢ> 2YZDT1c#=Pͦ2Śۦ,ʽVg2zզ,^} V1ocmwFլh%{r$AJnn4&![fz')j5ʉ \9y&8A^#I:W(ʏ~9.Β&6wcPP>R=;0> "QJn/d*Hd;C՘t7Ndqe|ކԍԴUDr*e&B A3Į-=|iyv^#"sw&-V!ٷJ>O%e64)u ,\Ή,&)|bmJwS `vvҟՂUm>&IZWLDe `^QS㨘~hcGkpn}t~Il7:R%K}b@N=TrS*"9vy #IȵH큽sQM=cuN4XY$7}5J="jp(H&$uI!)Un} ?SR>ѡ/dDxWyjh}EKx3d?]i#ݝAFSEkl8y0S6BtjTVͲ {eEqդќWDɄRG1K݄u6yXIζXlKZ10&)&q[GO B@`B8K8.@V7L݂ۄ8ew@Kzd(Z@!Jܚs^5.pC)}x uF aohZb 0̥O 2=̨7H"槲=:&3U> QЫύWAtXL}texBLKAgp҅Vξ 8&ѠT:L?s@ [=G>RՂuseQ='%+_ߑ ,RMBhܳ$~j-Z؞8p`^e kS)4uPt-P5 /A.umZӐfh)!M,r Wk=W3Yq%h!1# 5uM-rBe源4~qwY>wgjdڟnJ-6z&A2~?jGm}1EԬiFN6B.+ H g /k7BFX_S0$I /؎o 'bX5ɾiH 8ܐ(" 3.8berՅr$EUb֐9=U69fci/3tWvO<;P o^4ԃ3|qC;2{ěL%1. 3z!D~@vԄYM h'W܅$+l0+KNM T 1#;[ӒTX(>ʹ%yGvÈtU3˝$~z {ʠa`w;R7wD Yҡj)2LM+DYoIe]eIl*.#J;Yg+P],%F K Qf xV aIf"o_7, gX$ht5{xB!ָք;4gh :=&pDM HrݩN_0f{B\s ;D[Udʬ;5N/xl+FT%ۍOyёm/Їq{R$'H:^ |JB+E?n[2%o?-5T^L{*gyEIBd\6q`QfP<ї0 ~8)lvr,vj/<8!kXKR/S"o zgYzc%ٲ{F:7ogͮ>ő`[b<';PyknC[cxl÷ ں 1QDmoН5&pFyJ8n<~Je%H,R.ֳ y$@aRQw) m"Fz!xL(j%D«^rd ٫n#(]؃H|np*G|2JF|1'*@@ Fhq0+lr(?N\wo h] f̯`#Z@Q]n-JSnoY$̻[?keQ5hjf$ g;XDاyO'Ҍbcʡj«S){b,ھN;yn ';9^!ڹH'I.#NN{GXCwܻ]7mGLM 0c^Z@;wFʩEXq<ޭ4o#J ёjG4ߧbf89 ID"[>U Ah1MГ)5yiWKJ E8d,әaۋ ĝW-ۙ)PH3px _uk ^NCK U4x#IJ5%x1,b]xN)`SfśEZz3܁t pDGO],}?^9xזReQKzc-IfߥyYrX,5fK4>2Lc;;4 5Y0Йb`1_XG`I 6~>`ʀDL]*>0"~"$/@!7/N4s`%WhؖR&f=+[G1cR@=SR3EhsKh ;Y/I5;n; cv_hj^Tilv$<rrwa &xLS۳ U(GMcr0[jδG@[vͭj_XY?NG>g6Bף9fLXWX{-O4iKҨ%Ռiɢgd@ɞznf#Hdz&Vm4 5&]m@F쾥8XʅOU.IBd )NnL'!i0wRŔێ6I7'Iw Ylyt]dPG8_L c_*28 M|xFKod,-@ul{JE'W~Bujo!MdZq>GpKu:ٶB= N^ }z|/8-OXe V˵4lF}8}ѕb{ Xa]@OpQm8omɪ0=LeU|+du% > /Q%ҌϜ 0>IlѓUϚ=^za1̌LYJh"h!>nx[LNU" XT RMr[ }LX!L6Ef w`XYb d-w2~b "f&#ovrO)ti|7WUʲ/(YRW'i:z>sJ Z&vg&xoaK)q< "PVK/jRNV#;} ~2`:r[gPJI:fLQ Kc٨؄9sl[LUYCЅWw S`q*%lJl'd %&Ȟ>V[nK%sp71Ȉ3-OmYHe9{AT GSvZ;כ('u |:.4HqNhdv3tS2WKOƊTDֳ9Ňng0]:H߇* ; vƽLjD;L#mW |q(ϝ 76*f~cRFrh+l7[LV^j,u͚Q/Ed[$t#;Oq)wKdErZlڌ*$>Ϯ!ȼ2=%Z8p0~;1l6Οf12 bH5d5g5O*џr`ncC@^+ܧ|cGf>Jp2"7e~㉼$u䉅oo@AsazM]!g&+u(+3 yӾi%!X^dIu!2sv5h`sj%,"?ٔǭ~E=c0ߝx. r#[ŏ,ܴ12v1sa V KNr7{/מ_+6 '"(~,?7Ĭ*P D">Ї0+axpb0&NYw] >0L"3v5"~\-Lyw͹=cƨoxQH-./L@ HOں+rߌɰ}M!JЕ4nI%5JdmDw~2Uq|C U|ךr/U37tw]B GÍ.K!)s2:؋.3 [AͅDQaQpnwmԌ}y 5%0JmtbC'6A 䦭ohND|H5׀l?`JE1lFyI-I/2-%.nlO14O^HAI5|!p%{D7rJs`+vVp[;*ԲfkSVo'TGB/tM'85~J̲b}3.2t4얤C}d] z<'%*~~J|2; ?ӎ@7] z8d#aɕnnzWYaCƭ+zHY;S_b0Ry|_hL޳"ͳO{Fz/pN%sM_91)2& *c+uD1>}@Ǩy+Atyʊck$8g"2[ 0(-%KP +M촃z0>@5 #HCnnhy1ͤ!`)R] t[/j|aPЙYy*ØBɈJ]7ƥtGs-)D3"gl{;N*D2ֽR0%x,^My~"2S:6rh\/f5uYTZ#[?oW2!p_Y?{x/jIG}d[1F>S]71CNb ̷!4 <#%Il6jws_sGeHo|&wV)IU 4]#QDؕ0h b߷Z< w8M#>dxu5TU3=Pcl.%_ZplK1loE@.xQZE3q]*AvԼ]RTIz^W}rmUr>zߟށ̫7A)]~/o0!I< eyq>r 3%GiS%38xvM!)GM߂XԞ%Xꊢ>̼07Y׃QdzX2FHv'ֲáS2ٵ?&ˑgHQ%%z dչjLV1[|;]<{F9&¿Zp5q-vW/e9U9 Il,@*6HQ6ь,a>z# ܕY\ yf'[9{4ҋR-ֹ7Y9Sl1eUGDn8 qfŸ-k>w@i`k!Ź)#.b*4f+q.DO?_̓`'6LF?dPyH =1+~?$:#cً&K.>{x[m!˭KFtJP":N`]ʟkL¤Q2.-Nİ Cyvkw!(Q L#Fɉ;Cz #|pz!tc]7U!,&.E&zG@{0f߀;`}~=qKG t*y.zmXftgJ2AWYI5eVw/w";]{$1&4,ZA7O%6_.9^ʢ#ey[ ^m{h%oZ=Xj޸kOgiGӊ ږ{ތ]ٺ?ԝ*yl׍OLl=̍IGT}-ZD3?*B+kjdB Y}<Q%F>'xX{䉎jJ~%ATuKZ`nH+u%KkqIbKa .#Jr}4?b8ZD|'s{֝kqWaYlekB#מ_;{UlGyɭI.tE@ɸ*)ԉvp]Ĕȃ.Ku}ǽj+H$[U\(E$FaB፮mxz]<-Ė0[]\ 6_弣|RͬMHR!wQ.YD:K6R8aBݫ#L`F;3{~fcosED 33mИFMSZG+j"{-2J~-m+שn+1۰Gz3_ [ۈd[}ݔL'nQftiqFX6RI~ \Gg}tEo5Nxr905=\yڙO 0xdzXB@R,?o@ C$v ¸On*d<+sPP5",1{ MYɞʾP(dzhps=+=6usM8Xo7tU%`L#!s"gfsGXZ]ڬ3ɕPlnЫ6A竿C>⧹8sX|!mVH%n>H(Tk8])ڶ֥iXj3s#CuOoc1Dh޸B+?zg6oea08QaG!@Ov>6K';)lR:Rn aX֨=^:>(j*a[mIZ`7л8³T(ibp [{4y VܹZΊAeLRG/#I/YYov!ܻ֝Ⱥ9ز8)DQg˰h4 OI+%!I&FF-%J%L5=S(X|OԎ׌[E'LA힔݆ )P)d ZUVr@d z3@=mʙ EFE=bϦ4hJL~Eyc~@/?15W$(0[hXFݸ&85ȥ9o肷CDy7^gT cA607bPY%SG:ťRzkB7P N$O6_Kܰ1t1'#C/gP[m*Wg3Qi/ˉ۩&k軣$%T?T5`?Z&[MIVwRa^Oѱ511ՙgXcF/*Jݱ#%><%Qsu}8@ǖ(ʗ(w|8 D7 a".53D+T`'tiH 5ZX6?rAޙ=SiUNy EuM$~R*1 Զɤ5ϛKV3׶3%`_or.ފӶ}(Zrq@8PNS20KhΧ%J<L7*M;~!/}.昤e-}3}-^BeQ(s+ IiN ĭGEaz1^x/ی^v#brԔƯ!6ĽQmԼ m^U pY!Hxa y%EnDwQ&#~u"&bN/9QA?zqd;N{_k7Yai ?2|nr-=n"(y3J B,%y"ax K0\xL~B8Iי%rc9SAiK$Ě׸aSXQIʮHXB-6$qR3=(x>PWA &G㑔w^/XCLDkU[4=KLQP26Cjp3Pz@1mc񡵐ȹ cGc|L8 aZ@>"$3.Cݎ|Ly`X3uV)@,rX'㲵,(ᧆa:;컞Lz`ֶG|:V°e\"R.H,"!qm7RczD4J@B|"r_9L6ӄعMR.K@4c9UzNcMI Lʣ6,6&p79E2{ rUqbA"bߧ n"#PJD6.ƸUi'W.hs`t lei> t}@m$=6]fr\(IfpM4#g y#7E҄8OTvyR?L-;M<0p%\KT-w` <R˰jLĕ i=.ҷ>UnF5 Ƚ֌f [Ah}9ˠ*޺'N}삈FK88!b8ӽ Gm!T_wiS봛iث*c v3КU\v[g)To w3_/{ܙOU ""Iߴb ا1$HEFW0} ~T؃UoM#ig[%3 sXΗ"⟽$@ xq@7|B VUKdBqwQ)~mp/`A里_~֊x/Y. gx;Lo=9EG瘣3]G$q s66U ^6&xln9ó~^(42elq5M&2HuzBVQm钁B_JT873T =e EO/93rJ/ho̭0y|ú;ҙGU,xB7=\ f0ᳶB(Qy iX?OY#Ĩ_(׸&uP%Œp6C pûu_ Y1<a3$ $DP|Dl- %5+i/tKTxwvGG7WTjBc]RIÞ c.tmW9ASIў>ݤߛ&̒`ƞ{xUF!vH c o]*m!,d3Dr Gu{}%cFIIO*3]JP"JoԤK6x ǩ7֒5, j"(kjȎ7nF@eRl;_KF)5Doj SSPЋݽY+iϩyf~KB,.NMORGYu6y@W6,Js #&gh㪣2CjG4bl<ߞ+] TJBf'kT4ROaa1d<&kѴIg%sTZi۝ZM5g]AT jJy1Rzm=HևF/ $!&f;蚞#g\>\sGGtAћ; lZ zt!tvQXnQ)~PB*%$?drJ vD)ֺzPIZ>[e!8b 8P o:zqPf;ؼH.=E ĉw \S=x; Ó5O]s '<@)!˥b/IlY@)`5:>5 VidM*{lr{3`a8=?$v~N1g(]lüL z1&_8A)BIlOUb.sBF}p϶9gڄąu\~PՍydHS\$#CWN79&OX %XKDEoZp l}kv%޲Ma&-Oh/b+a7*;o}WLX99zrA[ 3,3W9GB9eOx"v((m`GQM*g$b(1{A,2 W-1si<8m|Ur=9teo8L=/Y (`&cCc)=0loCĺ]'~4X 4P<RpqƞM[w톧h+Ĩf?%Ckm&$" '&+Un9typr10jg+6?H6?bbb==%\lw+Tu%pRp~u`gz%S1.jp'yuQw M}~ZApY,@U"_2-DWAV~-sj y7zë:]̢ͮȬKֺ#%"^F#) "t7#ʿ1o7CD&WKaX!o^9mw%e>U Ǥ5'D.yrj 9u*9c^J%{|RӔt//1&d)g)|V^7Zٖ1nL7܉e];o=hPngySz})~ ,"5ronZ־+_ZPSlUjƩ8AW,9W}qdUk s@;o1@\O$[bP =s(v45ꭥnMżӨ8L}M4\ɻ^QdU1^`;Hf}jPzOd{v8QExT4j U{F7z<8äG3 ހr{v;S79|X$X(o,P !X Һ:Wm!0#U6G%u8Lv>/_}Ҍpt [ouVY@S5)zVaYœÁc=|r8 P&h"aG]ԩ%4 8M^3,,PJa):|<|0Y+up,oz š/FqMoOv[E69/d%&֎*ѢJ<'k;ŞTCt%{ ,6x;tȂ]=3YyL?pAſ= tK.%qc>r{=h\xlJp~]]RłӜ? H͂ocD ޫtk3go:QT[4_M۱9P*nJo8F>_n;̴秗]IbBym0dίw- 3kGBWۓv$;L4mXKaq4}pOL`l^R$۶ 9?orz>QE:oH\+Bv[p,u{~E󅌷St2xv ӎsU9eG%z]ѳI>ʠ^xҗc]7jB&f+;9gF{{.hN7!nw%xWiN2صfe}~ TKDߧe#O.cTP4wrA&i:Ī%25,Z52ܲQk'K7Mjh]f &L?qTa9sPrGKzk~®͡v@te.KkEʙ:'C9 1u# 5Ӏj1ѵxo+<$]Tqkq31!{ʬ\A*!B!%-QִXC 0bLWUR}{, A)7>ԁ~lΕICӽU4|>QsJ)3@&Eo iXƯ=K4W'{Wvk,/K+5U!erNγz]1oUX Fl8wX~$TnAꁛzpQձ6դ_򋘡N@TUY>BhEnp|7(TXReWkGmNقVj 0)ڱ14ጶNǧd$A;FenPo1mu**N*^q7ƔX;~Zk u5dd qy%dGA9d:}1]y7.l9_;^hB3P >NBLRG}1Cp܇X2h~mj!E@,zM('ÓOԗ)"*%1tq]4Gk2s&PȆw?Ͽ=T %gÄ@3$o92`#/W!; F~k`+_~ iY B^;|0m w |y\O8v/UKX `F]u!ܲp*tCٽ FX^6_-֩n&4u6>z_#hN6 3@٨=BE~FN;'R᨟Ҽ"X0ACcQ;b"38dG0k>D12ˉUX {1:{Ukַ7!Iyy9T$=lRs+Sn ݻcBL5x~ 6J=0wڑ$pA'\2E<+go+1ޢ0W44F8 J j%UlE<.cu3ykWȎLÜ Eb(^oѾ` ,פ߃-I%[sȱض*Kз$d+p 3@&k}䃙z?eVMt!\p;mQЎɝc%g4PemzaĮ@ j,Fw$ҫ|2xMpK رD"SUq/,0dp{<2İ5:['F>Rra[+O ^[ZʝutN:}{vCj2.(}5p_#J)$!wyE|Dc9Y9 Cߧ!(jUw_4 +h I5)zl=Rs( ) b4rsӿqԧ>r {TGgRr%&%YouGBή$;s[-ks;'H?dcH[ %AtvQ^$zZi;t6@{]xny7GY4(B׶ =;m$ <L1yZ?xp"jL:74Zj\b8}M:Pp+Ih} 2O }I!l\#cܕ3qcU,k B̠%H* $93gj1sd\Nϭw- زfcƬNM;$AwFhň=Rd%a/DžSIEr6ӊg]syouCCi/}ՋgC#$*.x(I|~Ę{AcաMBz6&:!pAûtZ`>Xn,l]I1 hWpa)$oawbdN ,T:, ^\fr'+WH7vcfҹ&Zk6Y|` Dȓ9pyP2Ӑ' !JToR`pʹװ8'yX mWC{A0(vbb#}|Pr#F&Ju٭6؟X*_Q,Lj"IVcwz-`@r?wnDͅ,ե%rHqFX3)Ȝ#v,;uz5Oj#L损)냡~tbI UX QC*y:dP68uh~Xؕqkm:p7 봈rh賀;bA=///v/' ׽'xIx?>6jBU+CMY^ K(bwl݁aXPwp^}Fr/4GhFS'Y4 E1q/A.I1zVb^G z};K NWԫTH}RO.F߆]!R|33wUX1 xMj͂*0(<Cm>S9!%Wݘ ti#0[9[r[cZ#[w gIuL٤P(DLjM1XP@F3D 9gbah7ܖNZE|_tSG;U pceެ!u=ЮҞ5j>>~B_|ZY[Zd j$dGp$Ȫ,LoOz7j@h~A@LC(P~"|ikbSiN1/ΡCcj}&;ي.=)C-<5?5S~7xZ%򢀑C q=A#M>Q6 ^ 9 t1[<+Y2]q.mVy\xuL= 6?GoY~Bب=إEDonD_mƘ8ދxPVGLК2y'ݹ|(0ck9joɴEoS_WPTkB'@DbņWWSYP]0+<275?i)KWC| +h S>7+6[AC'VXPvVh=E+=@vRI}\BARpNC?XG1nqt Xsnʑ$I-vz%1~-ߗd>9R%bLmOjA@%w $.W++_i2DKwZS}*w,OIJHٜBwȿ(e~d0v/ 3:+j_{a_buc5`++'D9@Wi;j;gPȬP2QtgtRF Ż .D7} ԁOW [/ō3QY&9R>0悅hp zd/glόK@߶)UQ][?F XԞc%~q&Ι'0E3$ _l4;0'tB5IR/#zYAY#29: cz Lg{/TZYzNRc$@+v PʨZ*%G'ά+V)$ĬUQyZj;zG кPrMe90,@7`~lK)D*A6u;FT<ɖ̐#ɀK.u1s&݌g𶬽tـ/з㩥Fez ~Tk/ɪ JZಖTyߴU FFdU"WNu^ OZuT cf uA|@/lgbB9|T~NߑKPuWs!2B>všNPky c6H1K[òR$YbǜySR5#]rgPhPF %oMK ">Nvj:t3D'v<5me^u*u9"}>VK F ٢il %)Gm]!m;e;Ȭ6dl{l\r4u.J{c@|NIS᠒cLsoyfQ3TO04f]$>P9@ Ǫʺ)40fsȆbj3|RҘDUr{L;⌤KH_Y8Y wn)}H&f'4v˓W75P:"v7%Z9>n7D$N n ^'yr]8$# $ 9.ʼnzO # %})%Py2boSCA}Gc+bͶjeAMj#'|ER m/p^rBEE.ďae;dž"֭GP>yW:gw+,r}2=}?VFY*0MSSZa+D_ijP0>| ؐ|tV@<Y(6zCiaģaCgFd,P~2JǔZt^GUʱkA0 ʊe}(rė6T%J%8AW 9 GҰda+OuCײ*r1hl./gN^>ő= xq1 _J3qWko9mZ =־e* .& ?KF2k*+ -  reǬ=ƹRQO嚙a)r "!XM(^!,balΑ#HLF>mXfG GcA2"؝3u3(V)4x*['H:<8#`yd:x+PfϬ9wʏM0r1D/[Pds-{"Ϗ!|mj=;95i9^/b$40 \x}Dq k&t$F ̐SBT˂r۾7\Ѹ*RQ{Blb^\15k"AZm}V~̏HCoYq\)\ 3S6ۿփwD[ w'^/LiS i e }B0ԛ_wm^ P`΁{NYΊYp o}),L(.r>RAV0:F|t0ǫ3EaJ<5ܡ4b3c&֢^WǧU[]W&NdjbMA2<͟8:a[t]p.Y ,x_1OqmцwAiuޑ?F3!\+mm*,*ebg ͥ[6v̥hZG9\tY]ePҊ "]2Ak R.)$qdlx>qƕvLjBZ_nPi>ѷ+MBTlX^F UA޸ qP䔭\7Rd|I۱Y~dI#Ilx`ר 8^. k֩Lu_& #=gj M).a|h/ smN&H>wJ_uXY9B}֥|=.@?^LoMu "<[Y 9%RS/\DOT'o)>`a_=a\0J9ʦ8jdw*2XO~wڱC3ѵ4J2eH&;i7Xe5cf\'j]fUnJ8\`HX^,Bp'5A軵#ƜluyxilŌd_g8qHNTnR_N[/˻UEŠ_eAƱiv5ӺTz@(<)k3A:ϾX9b&t{)T vSjb 8Qӌ"ވe/Iv{ad:xF,lT( n:*nBWY W%GZ R-470w7,lC1znP§m3Jh;{rKieE8ƬnBAET}rs=lKf߳7ׂNf$!&cдp>Y+ae!&fѡ: gfgaF^Qac{cFJ` [쭔5^ێ?Z !uΑۘ{fgvX4[.JΞN5ֆZ;-AHPS>\ʡӧ&M-S#4MC);hZ2xâ`Uv0i/}2a0tY3}Iق</ʹP+fG4KO)灁Vd_̬+{ZVm}hICu$n(N킯 p'쨨KTwJ@uB }qr'6yбy,sc3w "ns\yEXZ&R_;qO{q_j.$/N 5,fZ#1m#(LPQsK%hOٵd0r\bTFCJRلaOW[uh"..ku-:L08or$4"7|h=ӁU>wQ=jeⱩv%eEPt֏[/ 2>:&]UKiJz#hVZhs+P -O>uw&ᲈjbK4SaW]豒F+e 9y=[:WD~-:)C!"3%gpv hhMoɿyA>`$|ʬS Q/z8G%{_а1~ :WXC w|w(~J'Zw DDcb(Q v.2_ - mB{:dyX+'UL{n}HBL{m]:┈r hi )T|"(mZ",D k },î2OجZsr֚m"W%I`=i 48o&-fKVE+87HRq=_O!gh?:PmR[ǖ~baEԍҐC*{H RlԋT5et;W' +U)oK9ܹwiعPfnd,onہ}ȿ:%Segwn6wBE&ppY2M̨Z#ُ7VK]|h^DNB QS qcqS[Adw?M͆sʾtSDQbÿvV j:,}`:E7 LVmf[!;IG{Qݘ;;|P :>GwJ,pZ_)w&F_%q{SɅqw{=67UwuMt{5'}ELF P]ZNL5 Q C 5T=8Ġh*fn 5}/z$|9s\ #oGQX+qDHeLWf)$a΋rs/ϱRa@uqhjT]ݥXg {2ߣk'M hOXK9qKnOlׁiaq>(At)x,n{PaiMVu ěAώ~m-oڭbu_[ s䧱BoVV }wwu#X ;".VhHTDrیuZ 8͘sT;/L+pUPJI\ on{9oUo{c'qPm1&=gL.W:Ͽʛnvi!<5zoʳ96 냉<@N`"Jf  sgkP ̫f5yMw)LH83qN.(z~!i(vڽ {M4v9 r`. \wRQHʪhl 4>y?٦}ͣb.zٝ%E5%)6Ŵjxu6qݤb+ņwpO$:Ԫ!֩S;`:\gS]ϻPʑv+7̑on`ܕHl#cN[T"DZeN | oPMn%>u8{1>.e<]M9Ȏ2=JG>&wC ȹhB{qCz*nLL=L0B h{=)=RixPudI΅4ű7j$w`s@K+?#% )3^7+N P\A4~P6юK˴$ .Jg`g/E\;Bk7~pl@SldP^$\G/wud#xbkSRSAYMžw C#6 {e6b](7^Qw!">ӄ,+gR/qs[00mc/Bf٨t)}b~:zo$[[UdGG5&0mBsK%,| eyf"MC_Jb.;ӕ䖊6)csÆ4}a^@zXeyMP!5dkY:$0q0D!k+5DB-_@UPLZHՓ/Υ I%݋xpGRN36c [{_Q\5%v7MF҅mm\=DΈ.MT*(L[ޝ6QJՉդP6phboUWA 8 ,5]c 7s@"5tyЃVyay%THI6^ŵg|#奶k99ѲYn^X=^=/nZ v۽A/ȩR_U[9=Zޙ`O3*Ȯx'::Ag/:5oh2 :ݽT16^"J4*mma)w.މ d[5,[`jb"Mq-s$B[(nXe:w+9!'!_FD0uox̫U)W>guf翧(?YdB̙mP9r)d1盐Ā)] iw;@P3Yϙpˡw#.1Ò>+vD}MNw%49_M8NFb(I&p7&xޝky"mscPX00;u,r=f8oU٘7XN+Q vaJJg"אfr\St*MLs>zoX-K #Mgm^Ů.yeBӴYVb/сbʪ.`3Z`&Wt塗IgBu %Tv<1M]h;(c !-jDabe 5Xt\mt.wb/oO jiOyh$pyR}͡71(vbjwkF6t}:Ysremt[>kU SÇ≥uW1@Ejװ UL>Y(!8T#eѿҕo >%v +f91z Ǜil~G)34/A]? UV/!0TW7*vgL- W01t-B,G [ ϒP^;;Hv,3i 4tE\nJmzNGeeqfE>-] '=fq @4^ܸ٭C\]E+vJ'&_^`%P7s]lCrκ=CEa]T !]jnPjԑMF r|-EcnlnèB3k箔D7BZ%& U տq#؂Hk1QWs .;Oc#F $Hy((kVSPҙ @I䛀9Fn+.wZf :oь{GM_^@Sh<1w@2F/ڼ#[~8It*:YmVnyҩ Q[" \z<Ë  F DF$qԺQ3r&ځ:ۧI4vffp*~ֵ+%;w2APk$QEN҈Xp$D7*\>wv,w#̓(^ =jx AڦQ\,1q{Ac(f$엵Y\TlҀhqz- ^D~ϋ⿒QRW0Jie#3okSc!+&fUeoq6 `u ]1EfTHΊeFݢ7Б !Q@ 5dl)ZfBqT FSծ&{J!p8T!0Ie6sO*7j~RRa1΢7pP-* AlL",TEu?fQVOfh]#+\s 3⹉چGgyTZ~WL7-0 {GXXwa=5syP̈́z!qG9ЁO.x@N=ԕpKh sU$\]ens55|j']2ˬ>k,S 20ϓ1 .ԙzYSk{)-tSfs\$@au/= DfKk0\f15cvvQiAi +/ &/n~cqϭ 0)2ɅWxo;.s#t;ק\$QI}Y_<9~:tsr4H@OQN S.g傒*}vtW$~FMɞY־[߶]Y,#7pqw܇TxjcE*c.L'&Wo{ *`KuR+ptC*feP*V7>QB5Hړ GtAFe#H ,x2#aMTS #ODFڿ) hg!zPB9FA'B(󶋟"B p"rԚnZ z)]nRUYG[J4DOZ(/J~1ٛc?/4-4A)m=P?:DC 0hWtK.wyug0jfaG I^o ~,wJc1On ^ "^gΗHa,WC"v}+rFNgMb>@Ag|T"L)o7e3yqD#MfOUNc1kbMT/u3Č0^EngÜcGamY)3 @i^%ۋ&Ijׁ"Q-4߱*=qT7S:4r5xm{U5T4g,q Kрf?2-9f,po֍6p?ʺsS:h;oVk̤Gwv:.X)l.'Sqzdž\OJą`$5tDPR>V #֍>8 xgp}Wqi6dnw9-+?ȧQJn&vYᥪo(@i,c6܆R_͐ˆK"m奫xA0AKEՊ1E}hkvzGɺvd`q&+|n"؟5R'g![Z 6Fә jӀ%L->K}[Ù']8la(bQȜ4iV~q&cU'TtɱҥqbH3t͡7/y-$vXw]̹ԱЪax/k=?Xzc?v@C,L/w`NhwSߥ@!݂70$.hh9/Rd|/./{qHbFmn`1,j nRc?DDȲl].0q>UO$nL/+E=R|O <+y9Ä۱5sc"OM)'N 塘*;kCG8|8Y"r* {'oO O[Hm1"{ l,BDԲR71 |<]@Jp]fKKsr Ww~hkYrǞ|]P&[IXK" +y9>Cn AsE,*ҧ4Yr!Xۡܿy{葇jJA*9!wXCrj-[<`P= K~h8C=q#[oGsV ΒC+ux%LcFԁj4ƳSYc>>h ПQ>k0GG zw 4Zx\EѽYEvD+5B,KS{i%5];5[-d*UZ@ׂjCiRR8Ӽ.C^mh _֙I;>Eo٤h<4Mٞ mJϗ@Zk(e,~SYr)?G/;B@Apˊ=}j9Hjp f 8\ɂC"1EWf8uƗ l7g^qy&i 3AThcE ZD(ORW/ngLSd_y !q؋P( z>V^_"WU3S9n*fq`s]Քtb#%#%oa萪+?R6Ӂz.:9I|l3#gs Hg[Chlu" =43i ?u\a,]2IXa| NDv w|BPCNab/6Ս Y}hCArc޷)NqbXE=@(uxR?.6t_֌{3Q|"پ1}hYM^3Yޥ ZFx}9;w.(xPɐR[#쯷 Fm y!%jE=Q qoWzrZIeK|sM8C1WvS<7ws&A/aIFn@qhRLZuya{*ċ}ZGb0*TKr1C1v8aĺ<\yP8?#PQe 3L3*MIyTLsQ)_\&57ip^'5~Դt?Optf3CN`22McU<ﺫf3Bv"b6Y+&d{]}fBf*.7Ê"gTeqZmw3ֻ:mfjN[ “ug7ىEg]N'PfXFJ?'rnsAOaۛUkƴTSK/g=FLAt/f_ XX6ۨ Oj'O[]!M;ЧE)u]>ZuN2q;P%M«$ccYr ,кP'wA܂i/&s\Yr4 48`N!6GY8&<fZt0Ȼ3ÐڗCl|;Lgޱ< '>GE>͢yyF8H88E mG\;?e {tY8(( \'7 ;NN8fUL}* ^hј~dwT}e edE<\-9m3ۚ˚&;wvWz" ;i !j0%NScώTKC^bδs]WvCi"p}!0K %>Q:_`|> DN7%cWNJo̙Ueޗ9V(q *5w,GW1YiD0 h3 Û Zd'I"m$ ݑ컎}}Gfܧ7 ~=_0 z7vi)#IT=S'3PE*ÕGۓtGO>RgYp PNvۦ)걿z~RFP֮^ȭ๒B˃ľ ~|ͪ۞L%#~߬VS^ ]VY ˜:(Y˓$vȲAj =8R6龢(90<Y'|@PwcCv8 $s5RA4*PB" 7zg'(F>YanY&D<69|@̪Tz 4qK:U)t-8juΕ= 3^S a;[cF 1CaiHX88ci* ɬLQl._>\z9n0eJ ~{Ou}rDk6=H<_ީF&Ic0`|nuFK)l#5^wfb)[S&}7it7M|RSs,Is7]N{AxBm5Jvm`׭8؉3DŽdK K笹wl;IDDI*KVXQ}kxsAb.bv*c۠E&d' ҤaT]TpeVf)Mgn¦W-m4SS O.wRuP HvZK'L5l4Ke|IvHIYGi:#,IRjaWan"#C[bW AZcoznzv#L7U.5o4kjq37pC.p^&8x„'{]ƃ֖Ȱm^P$jfWatU&HG}C'ލK{* w:UtJ]c!۫e2rk6@܉Tį  #M9;~T2 NȊW5&S'"fB͊1Tn-=MC=@E&tzm5FkoT*ލX5_XBOyEₗ"'aj3k0;hї)$'sYBYv. (tO+BZV ,?/cƿZA* S$yNx[/4y ڥF!e2r=0tϤd8`?>M# N6ԑS Ike-<(~۴LI#,9G[3K&Q2F$9;3)bYиs  KXF49Vl v OcK _ hQ4 ;dG:.B8tr\9j4yLMC?,ه5n"էk p4ӈ#M}NDoy= ]c%jeQ%~'σLSER/eu8#GfPUyN̈nQrkό6{Yq1[HF3qdMd:.8`g5rUr=r'卻 >rމ'a0qyj);usذ\zH7(ǟ{ר\#3H', =]\@(EGܘGoMH q[/FHsi8D,W}}-CY~QB?B iT2g)ThDde_w+yb|cnUy[CA6ǵ+11D[U ^]EOK`].9($}]lyM[(u dt@|ѺBh9^\P0uBۓ눣3D3UJN3}.!}Z0# {n;-䓿!Le1->)a)ptAVsY:}Y[~]z b7u5 GTH#wËꪛ+QW2K5 zFM? 0 AĒ9,Csl$s9koGk䱼^.>pc,5tRafH+%Bi [ Z^8(%顚.F,z͢F`^aڐ Zc:R_wI0mTX]IFP T<|(# 9j d!7:[>nС\HK!QZH}{;\}^*(Dث]k~e(tz}K-Se FuٰȖfm~qL߈XΣȮ C)؇rPJ^vC x&QW׈7a7noe;w*;aPMbJgNi狏^&y[*f K $eg5HˈO6{ yez I9|jat~6@ƊoIh/oB8lxC:trNIryɕx@ (w Qɓp7M7)>?`rt42Ь>l Obt)ݫ#&,5(Y$Z0?35Y#,C,'=5:_`҅)-b+Y\4^5AKVƑ}ފ=Owxx h9`? t!s(h *tA|MX,V[MZXZmdƽ4!3qqF.4W;Us}w}8WMWRUXh&5qe)eCfRD~Tw1zUcߴhǡAK0rwګjߓ_E Wޅ m>/߾HRgqeGݿşH*x-ǃd42(S1?sŭm TȮsOߊ+^֖-ILߕ-e5V)!C9dt_ee}Jl=\%}beN6jJI|N<:BZ9N'#a=).˄؀i=2%|`ؘaaĶbis qS%l2YXD.hU\̕e'N)ŝP0!c~*7xڈz.-V|QdΌs -UYhRuҜXWG'JuӉB \Eo˾r9gZOʌmeN}D/5s21ur¾.}/+hrS-Mjt=av06D%Ũ{cAl~K+l1,|?$Ag9ffQuEU۫OCյT=B?ƚitJMz}I(S,Fjکd8Q \c3#iP¨%YLNF"ĩ0GAa%`΍hWLgߧ7OMhZ;T+OgՈ6ɋ;O8v?nv~.cOQ0}(Ł㎠t~\Eՙ6ܼ1S󽡅&V"v÷GvFJ"нJh֫h}?#MζfG0őݦ:PKf"sVEfum ؐf Q"v0ddyzRkg )rD:+Zb5ԖYG&e$9 ϽSF[wH&b麌e.⭲HFAf2ibp' []Js7ݜE윞.}T/WaUJ3.iJ v]y#KjBFIo 9B'GI@ 4q[Iݝ?)1[^V\,j:ab.BP7)7Ys}~`o=*8o ! 8@~ {N\ )0MAppr!b*04+ңV(Թ(#gҏG|R=U"QQOsˇ5ޚW [N/ t8#Ȗ>`vaޡѦ\n9UP& m!_w<)_G3kiR܌tst\0NAG'Ot"jaHª2=@Ihj57Zn0'hBž)'6w2`s7/0RPV8 Q0N5ף%Jk|˘ *|CutÕ=uK=Jc\+:ITx_|]@Գ'Ҥpo"4뤺 B 4a(WR0,9[gThgA'8nSC\ .2m޶D;[yV>De$GRFAD8J Ua#)=_4׃y7x[\' )P>?_R>~8ZF>RY{*Ȍ /*/ӭ-LھYc(j~S?6v;b\{Mk0j›ѫ?Q=`*&'>E:mD.F$H sW.!JZFK~ =H`ǣ>Qji(d v==|=H sdCCրP+\"eWE֞<`I4X@|J{AH-Cuimx2Q Ǟ8a 㛤Ѐhd%ŏxSQ ʛ< %@C}c.*Ŏ4YzI0A.#ib*i,گ5]z,V N66jJ{Iw V[\8C&qgיH`ٺGյP+5_Gw@X2&ءM]fhz]JenNK10`\?g`~_{fEt"VZw!q36 !)Gj]2D&3I }TX+-!)S1 ѥ7L+h%c4\9SDŽ5b0ё= )Μ9@Ɗ"UWk(ہ^kCO|6Us2dNlMK}ظ >qL;@=F42ƛ]rN'Y,l@zJwMm$o{yZdE/)u˝cy^%uugf[^ž<9rhfehqG\)kVXleŖw8@+P$"zgpTy3^;~|{1XǚcopE6!}W[+r~_ƸQUYL>Qˀu;EĒi!?Sɺw|V3:C lrz8KWri upQmf0rNN='5iGޯ(zI3L{OOUy/^Z-ׇdqQnDse-WԻDe6'ϿS ۣ/mKڎCL<'gdI!w Cm)3n2噮S.N]VA9RNؚgk(h\lESkA¾YwW羛ITt㟍iTZt?w19u ڙUR5Tuqqb-Yv8m}4q %i񀼸<-/؟pNCQ4=I Bվ_i6^Y77-{ZM3YB~ ɻ/VyR kesg')]k>x`ɡ0k4_RiZi}50q5hq8x4M hT&4ɸ"^%= ΗfW[{,'Q܈!^MGiv:&dx?x])YoLf ]y۲#lU P|!ՠ*]T;Y5rG{׭_0ï9JXC =Fn(447Yn(2C44x3XmqE9rwvwZ5Hfd"F q=UŧFv^+m+=xcׂP\HN2X?5V}. ݢvLϨ#5uЗZ p$M8#)Ov֊e~ X.Wbut2 p'궀8BC{hw:ǓSHG}p/Q7GʜrM1ɪcЏD>A1օ| ݆CFPb .. us F"mJ9ݕ9.95Z7j?ry>x Ň^hgwcWX[,K8Z ^ ^ne[ߟ8g.d[^W#0ǘs|/8wtC".mcz*IIn,.`BE;/N]B@j3-CMtzU0Wu=칭wO+'±~7s@>7GD3唪7B{(.ҺeT&6yHcR@—Mbq1ȑN* vriMI3DCFuy&+$r#@Iݫ_&FSmf&uRohG`UV8k#O?rd_溽F0!RROY9Ld\D9uBճV*<oOΥ}wM,G`FK/rįМǗ9Jť7I-`6ǚ>F3~S{a@g8BG"d`/mKSԁo. neZ=kߛ F72~5\rx|HηMXO++ot}pp'))c89>'\8n[D2>=B[Z( H=,q4r.V4kȯf„77'F6OW^v@AR>|L3inyEd}Y-SYU&}dh $Y+g]/8bnrFтq&\ T jI:> |zcRSJo=Y `1xPg9 K__uխފK/%9q(2d3jdA}k؀5\dZ ^ecl*)0"-:g6} 5 a9# \\:`[&`T쩾Q&͜aNm,wH6z%4xDEmƑec8x:vY{sv9`=`~<8-qL2G"6P%:M`7",q%vrOyg&NV9 ֈ {EGRF@InÃC H<ʌ$R -wn|6%ߋ*?* RP圈 [1QT0k 0UdF=ˀgouᛪ浐sV XC9p,f-Iyˀb2~R9SdM?W| &; V~ <-,-4v"2YIY$[UG+^3m "*ItN'`LqY*a ʉV/-:rTHr)zlU69\ZHZ :JT;qf`_ B/1xjh=y޳z/~m}s%OJ ς·J!0G\ B w҇T.!y}[ О\hy!N}9m*p3PjzÄ1!BBQt*_BgH(l}y?HIyA .$p]D'eyKS 2N;""2x L |X1SjyQ_cKqA8#ٕ>U#`3TfoMq~&?86>?z?~(V'6a@RM5ʁu]YneS1F_td w]`|MϕU~7./;nq1ZŰxslBrc%FwϮbւk>q=HU% yvǐM[@Y+pl%V5sLd) O/4 lӪ<0"mFZ\Y`$İbށIs\6?b]ibRR-AJ?)jqK;cr`]@ms0~3Iv4q|: 1ZcA&DAp(UdblzT}v4ϖKX%57eۄ-ie5f(b_ ?fTao j8?7>sx /0&i`ĸNNJW!}5+GWz%:|߆KV&Y:2"NBaIlsT` Ne=!{=? 2#.uѬ'S;v/|Jn*zwXxKHHթ+hp})% y66q{mnnn]<7LWI<W shBՇw/ZlhoS\,_evHTstVX|FKx4./_'>4R-pϙ^Q̮'V9 D 15n.Aiuųb۩>֮!1_muaNxY|X|RsT“8o8KN0wc9F86#*n? A-RÈÞT͆ :L~Ӝ,?؏Ih{'e +n23`.q˙cä +Y"y'FB;>\3V3mkD?Bk+@k ^nRH5Iv'+mRqqfGcmie.ԾtyPw75ME j2){HyEeI/ے4hm5#V,TQspx\Wߍvy/VsiH˿4)mtEqVtH$[|i;Vs7z]6pvD %XSԲ @Z9{~ gr縑:zxwrc/DMChfބHqa^$X(cd봡onw2hu7;tgmTX[to"Co{V&ءfaa%Ng\d2 jLĆL|[d0ӫҀ!G{zUoZ7=Mbݳ>ЫNo]!{4S#kxrX,mmF|')#q4ٔG%qFk^wFOkOH塚g4q]S|So&KЧ[Wj^K%JєϚj(zEa3HcaR&S Q}OpIGPPC.詌pЮ$wX-Ybj_N XoV[(Y[;xc-y6"[Mpg kkM> Xf9\Mb "xW*.b` 9hRdގŝ+-sVG+VϾ1)?ucÕ 5% ,8R6hA74ρ TxW:o,HW9>0 {];!%[(9#Z9'B0V=;!GO3h8M)Ki8FC6kJB3@ueݕ<`!U<;L\2 B*U}=:Xl/Ŝ\ȅ-љ,#mr+NkK2{jMzf' Hg#muc"\mБ6ɨu?5 ݝ|ķ5eh6uUdx tqzQ#yp!^uv i+ayxa}K o^& cmBBwXĦIHauY٨}~# eYXtbEScb0TmvY孷iN쫚ّ)ˏ ]j1RBxA˭sҖlRi\@}<{{\n?xe} !sZ;_q"H4;$)f"ʠuL96[(4^(@7Ͱt@' 4&삌c; $ߎ[+`SN.nG BZ~*Oё"JH'qG'/nC$D}kVm[Na'9Qœ;< EC*AFZ`2B>"I9(կ,_ƾ=fWB]y6_~&Ϻ$/ʀzׁ}qr>2 !hF>ރ(2XPLݲ{.3 |V\oseſP?VSۦ luFVgbgꛣ!2dG|ɢFIhzɹ~iA eԛ) Pxsi $î>h\ {'UxiexyEU#)FDYuGޏZrOǣYM^_ 1e)\O~긯7H)vcS 43A2rb(+32$)6a-ܻX\|kW(OMrg&Iy}9VA{yKVިӍzdH3 .gl4}O's ! zӴڤYsmm&4}k,e;&-8'z/^Mt7mwwJ 4uB,ZBoq}V9} OttlP:W 5Mp}Ff.6ŢM[^YH*N)ҥj  #CAaen ۿˁhw<C ]`ya|\zdSW/>'#y5uُ!@]'@FL5?Q)8-`f}vM17?"gOϛVo0~] 3\2~{W%Si^m @bQSlEW*Dd~D@hc|6RBzQLufRkb u;8aѼ:0a}5R#4e$S}S=p%x~2T"UXu1Ia5ޞXchQQF:Ww4 =߄`t4ёSGo>J9hqikBYPbmʤ#lGqci$(9%Y%ֽ[+ Kl59=0SH/jҊn*߁4vĦ r89j*h+_ڎ\ZĞj8dk|MF)6pV;a/to$UA,M J6jjr׬#n!@c. JTz!dj9j~h ''U D0B?'b~ͱ-Mhgba Z6mC* ^[̞P֙(>* e} i4QHQ󅭪g#tXKrv$5yPC]gQ1~_5HNk%. 0V"ٍ5ְn0Pg+M ']! B"%jv L`b{Ne6=mJa?^ݫuMo_D.K?qy7S]9.|KXx{Fx:zWX` /[MV {_WMhoqXQһ<b"ݚӸ+S sRh8[#SFV# w/H ~b:O?.@<T\R$Z}ѳGJ<Hs eYTvHV /,K9n^+e1> %׮qwlpj5=xoxw0u|Ѫ#D@*vh`.$pb}*8Wyǵ3@솴CUQ )OzlngZ `^I:na0è׺h|Z!0J\F6Q~PNl%džSO4CZY!}H42=$^A zɩ lR@䴮̡rPJ2l;Ԣ84r Ȅ2SKlzZl-^BٺJB偋Y7U`fm4lX)Ԓu ey'|žUc$4{9";23T k$ "j *W$R`ZPpi`LNh/ny@HK,Ȑ.Ϙs'`ҹ:;r)3jh㍔(p$ X$,.Ěq(pGzY EtqEVVS6(ҩXM KOOc`_J;y 'mUyBe#Θ\ Ampݛ_;-d_$WȐ0xI#*+te9,_8UmoVo v(G#Bf.CGbOSǔ<&kg~H= K\b39R+m*!5I(NҖ6U17+H s;eD*mޱ{ַp=E7FIKT#MR@"`maD!PHݖbpEOOF]xT\ |T'yo-#Ψ$Ho~i A sxgv#I8Js_h=O z_&Dύ6Wƴk7Ԓhסpzs3T\X, (NbC*VjWRGg zTVP6 .#jQm(e8[l~@8teB)G ѵ BUR[_m-AטY"jP- k epee1yGZՔ!яrA*ǶQjk#Q4cwçJcaӯ_bä{?Q[ԛ4l崕3I_A >{mC@y VI6 ju㽨f؍x$ ^! MxOmi/U;dvLsWV2"je`pJMӉ"gp݃\'Jwҟ[Ҍ24Uu& X, |uE wԂ`'?Ȕ꒯LtVX!|=jJMz)OAw2j20ndP}^tZA'/C6r6"o7rUNDĸ_-p!ρR_ oPٽHhOQ~ʝit~$gwPÀC~P?ɛ9$dob7&2R]No[&ntxWMְe z 7 |>yW]TkHCUZ*D}00##8,"6Sŏ1/@U$vc[|6 -@cJ Iy4gjn5fGʻ )uX{͗tg|{ϐ-'! ]P D)q3 ~&+ʜHhWL-5 2.&Q "Щuh?=݁ 7%=lglh]VxljiΡ"W.}3r DA50DF;FHw}=hNj$ɑ/Pioa~~^0-Ln-@v\ ZЧև ;p;ځ%+Ŏ︫H &'G'WZW% mtxn6?IERܪv;Eӈ顨SC%Mq^ngJ[`X#RHzWGrLJnCu7,܃`,ʏ3DPU ?j?$w[_l3?(bt8b1e!_;>9(y+ ШBYU%} ?xVυkiD}C2YGSOF1ﯶ6X7SjP~1U皡B+_/a\,T_Fmᰦ/HqrOaow3odHz:ԧdB݋E<0THni" KߴV#LJp֯E$A"&2rWn|JEt4dprb; _5Œy`ʀB@ $ͥMHT^}GA.G̦DND1j {$B@ga̎Du` K&u=N Weўs>1wqR^J# M^5tAit#HΕ3wB'dO=q-(4ٔT&y]Ε'F^J`t]86m@; _[~p+? Ы 'w_N ce஼U RfgYZ$WU_M!8/BF'!dS$m"1Re.Z,_Bz O %Vv;V=r<(c'[NT)^ D7wG RߠQ:LiN?[Ɗ!OZaM{%2SJׂf>|w2,4[6fÓHݍP~rYk@ QÍ VHt.ơj7sIXā?Z5&PpC|Wu61b%Z 0cvTwsKK{t]Sڨ&UVR(0sW;ܒma#˻}!UARN~YЌ;J_.[3@.AS6o(n8{,]ضY-o xF7Ϭ"U7! &|5lY7"t?W~'/E];;9d=]ca wHNvcL6J32MAD" [CIH:y@hrIW.+{=qڦ:􌎩,U+l1ף^ mP7zr !>-<]Adڽ@ vpփ:鶢΄}~V<}=ZdU?  rI _s4 ZɽctˠNu!"z|F@tM zάc&= YkǐbeQ;>΀AY3t4*1p6Ċ*@EU+pw`oG)#&`7mG .1]0`dDa4o{>L4M*BŞ!_AyA>9㻙׻p'_)dQ1vn+#OmM~Bvdbu W&VKKW|ba bG C w<ÂoDBt4KOěerЄ\]s6Brk%.D˿$#iJjNS"q*Yq!yBA4j8o8Q^gPk ZE+Wڴ:uMϴ(~잩 aDbQ|/*x-c,Ʌgְ Cqnh ۇi884AOK8~HK5nSe\U`WM]s__ <×JR_4a0Z0(3!gP?xZPr'v'Fjzζ-B%MW< 80B=:s8x/ V#R$C(o9D'im:0~ًOW'vX4;D _B9H_8ފ0Ucuv?M~siA/ P|!N 9b]\"q'5О-\{/~3j^ B6"{5P3j7m_ngwl !;X,zzUF| Uaa[zF^*7Hsumɂs2 Fyg* %B) oYDd]uYrDAt sA'+X0GxLΩ3VOhּ@˨#{iRAȲHDCrbqTM!W2\=u=kawS8Y3)VMtVmM?B ڒ !ZI^`~d[>^$@/jˌ\l:uWlUbxމ^E|lI[2#T4cvPLcUњՊo!ȾU;0^nPuE3cGgG]W2>#*Tq=g (j T]alҗ (v.ˆmF(TꂭRߤ=27[ܚ9%Ĥ`R3^la=ڝ#UDL`#moPy:;TT^_A-wB@]cA4*~S[ZUP <~8(PQ.)vWr@śbYW@Z,-j=ۢ6 ŧk3=R)X9<d'[(;d䇪VWև9YkUHAJ1$Հv?l' Ž0J83b?S%I 7A1M+&qq%wk:N~c-0~GRJxeKaS-;J7S}u\ıC^lt%xxߗeIeTJ?ՅM;(2FZG} tmI$3E\ cIm}mQx|1szi. :#ff=ԁ,ū7"~F]?Mlؾ=b$U2GY(d&Q :oEzHߚ-WwN-Mh%f2T_TMw;BU5EIh<H}z4/{.STmxRsLe?PWBjfg̬f~(&Ԓ[\bs  ݀(h|F77MɡT xgy>0ճġPb$D!@٬X1tX,A &D5%vo]<'!sv5j0$sm A=pq!"З4|[ZUrEp6dbQpF'~ ɎCZ`p}{UT/G lG̤x,(Lju^]E*H3o6-T{E3*56"̩o8QW$cqq0muionXǠʚ @R8( E]~{4 WƇؒn=t4${"al ;xڕyuԶ zS}[A^ r&B`h % aNuihԶk(xE{_g`v61Oз=G z1 m-jE ʞ [3)[L1. o3߳xnE,D1sL*4Bͬ)4vBjCw &,m7;EIPD"{ֵp ?І9^xPzdkA&_aTIdv0(km7x;- 5ʍzNPF0ḢA*`"H@+L:݊/PSfGY"<'C-چ^ßMIk^V `\f0gqU8%XL:wZc`}Uw-Y'a 4%p|QDHZ@$Z̘1ިCkU'wY²Fzz1*dvՔ0(VI /wpFZ3K.=xammSMY_:Qms@ 5 žqx#x #@(񣡗1]˴q0x} 2 5%*\#b#p9 n3U{VZuġ2:[fpṀN ^~XW#l4 ۙ!L- ¼LU-UY*`  dz Pn!sDFR/BWn2d; 0Oydk€$Wd;4:I개H%k!HO<s$;ԢK1ϊ+Q&F}[Pճhsph Hw2A97 NFO&u Aܺ0ȉx71]|^ tHNH)g5W$-w_XZ` -XLVIWJڄŮhɛnQDpRF[ޝQj{ZCB41:nОݧ,)蒻U.㙗^&:r:@XV[BH/@>j-ǫ6|UN%{{qʿA iG#WPcjI$T˸9x-*&VGFqcJ!IP:B)#ݹez9#M~tOr?5a%•:,ffjt*d҃`vGŽ<<3"JuG:HsP#T kU̫|LfݗqX!5~!7{yMGGr3AZcv5l A\3WxC89(Q,"RBUn&Wcy1Bj"y՗Ak1K^`;3w&}x%Їyz,qb4lM7x0|r8IMCF/7G1׳pI E $f DA[M,lH%[A( \Sv@5`ee(IFă4tn`^_5!`.*_4,Aie_[֠cIUF)hazPyDD0VrQڦ-,O>[x4*PSP)`(7rl$Pՠ;UεL$50*[v~tuYl|q$ٴ-' {*Q1s){H zRVp2i#p3qŚ{^,5"!tӏk;Z!2㊟35^f%p.rm`!6C]iPx*CeWv:pC-t`h$c򟲯P7'_`y0'~xն'HI)sۀf_ ΪGG]BCۆ՘T@, {yTP|*"~up=蕌{KC-ʫ)8(=,tyNZt%&_ꭏxؤu I&T ;3#5 Н޸.;G %If g%RՉJ2&h^ġضv{b/ =4$Ae(HQ!]'䲮u̪y~o%(!F Ķ/"6z? \o8Jm^Ƨ?+H1U`&w7IGŸ\O)A+VHkw.Cih`x:f^A'4=t!n%!yU+)SkHuqe{WTz,֛|q*Icׯt_7KA>5-[ &#y@s/BCB"fa%{|T 3gĤ%zu @M| .);I coP%4 TĽU'z{zfTn]`LXOwa_SqlԭP0i:=0v,P~vytWLaJD4/:1aB5Q%Kv̲4BM)?LP9Ǚk/ezЭk_"w᮪m1 b[ws4Lb7np:a^y *K-=/B2&'ybRB達7Ӭ*bxWXƏT$,Ć#-x'l8K8 fwfC=ۀsYbF{Vb#+]@!| m|[9Е ?Shs:sX{GJuB==M!lU%w#ӹD/LsUҋE VfT|ֶ}>ghRb`gW̦0aB_=4?q9x.tX*YA3!LQ A#BoTAV4҈tBkY\xېWDo`bhn]3O2mƭ'1jF>Uom+GfsZkbHFHi?TI<^_ϡM)@Tɲ`S([ -Ķq(꤄C>,v$fe$({*[v'fƯo Il/R赀#V?a<3j ao}"M$ZTX"iGH P;;:fgR-rF%ކ.\l(ģ4;vwbFrc7)"Je+zV/W8mDnuzc' pR"iG09gjLzcR~?y5AَC!eX}/< am92 A "X*Vy|=v4?2\IcBqşf$:pQyiy g=.dgqe}9lGu=$R_ŋnOB\xA{7D-%oQ?IN?υ.b0fw|Kw w7'TjNEBtfeJl mde~$ /IeƀܗE*j1#j\frN ˆXG6pQ6xl%'7%zQ -ӷ>f?9# 䛍GD1.)XUjV{#֌&"z7JLdIN1aVE#}1C9Ջ5SD;@PL(xRɒ'/{{~q.9k9?UمOqK]YjSi]Ljȡ.9Sg3=*bY9cZMemgyLV ꁜ y؛g`^G.{r@/ςӍoL`8_o>R]cO(, R%ٺb|)fxɅp}le6njæ R(Ɇ@G=5P6=[a$9:^d]#齴 ('RqD٢̒fYX`z3%C=c1J(R|sq`]:C_^ӫ$gI?$*ǫQ;yMyuv浲>QrV-;ir D+^"(2Јšíp2)-u+gsݩLޕPB{Ihw[n#g}{ .NaZqV>`dX᭲1V-냇AUYF4&7,>|Ү/+Ke KKbb,Ut~8uѪ::[+As,c1ʹ$"OBA|S7U>/U/+?pTz/yIH6ثEGӂTϒL(=vR59"2=jRf)l'b ,jwS oJ>Ѿ'3>-]8}h}JJڠ'd1mP'B;l)By+XF2 )>}%$\>A fiGSV-_eK=u,q]>={J#*TL`r8A҈3<|YM:<u#y7m8ZR3#YJ͛Qix)C r>Cp9Xr٭"+T5*qW^F(%.@6;j:wx(PH%y\=ՔS lR0xwgOh!/i#Da|#a-(dV^I~Q`8-yDWU@Jȝa2?NdخnW徖lq}!*-9^%]*ع2g0 XoJT6$o^NDU&.H YD])H[*J/.%rIEF&\rE1 _~5[ovؽcB H:0uT``ٌ; E\sSN1tkgt‰sܠ3{F᪗̼᥽ͷz._ $#Sp2>&Ĝ2¼VYn4tzMYeiY6G lYgxNbxa:ӡ:hsTij5boWL^ڂ d֌w"%l5+έM ]3+Sgm9Bi*Y\Ӳ1(J/W;|0F Zh*p0 x>:56EOD2) mRaPՍI`֝:*%7|63G#F)~΄phk'bQs*1 #m5Z^( gxаwmd R쁛e2@D7d8B<!Ѹ'f~x?Ƣw1x?&3 V?[}栯nf޶Q{K:U:Ru(_DiBو Sql:}«dMݓ#U ژ̨ WZ‘X _6E4iJMvPӗ^bȝ-*HR?2( =x{RDHڜn]7jՠg43"b1+8TCyC,p!) cQᦣbZ둵m~4Ð u3=n:$s3u` u\a)6ߥf/ J 3;dIP#`w j&%$Z5Mȸ_,P\R/Uj]چ]^ KAӶ.O2E_SCTcNN hHf|)0 [?̂{]w6jMn-$hȵcE|Y_BLka+J49JHj6Ƽ}1ʁusd(mŲ{~~C%@ } 2 Y ;u?ؗ1BμY26MK n-$zHie\}5 Wq}x]?&|H1+{.)`ڨL0kхfϱ{MÊhǴ.6Y!0&󙍈gUuƔѨ%Q: oen*=p\u6ZYݼVȵU$=O!urK8[=&1hxvU9?:q.ʘ4o0xɽZȳg]󷛭Cl\1zlFlH%Z$iMx&>W'zmQ+q":jr2I\f(룶*jK*20rJ2|!/lxF6"tx3b{iEqt:/?/ոp97Pt r凞Tu`iuV"jRH! ү@Q34QBd)֯Ob8ppUgI$+Sz`4Ήߔ7f2Hijnq%fA:39k{Kc؅OdžݜTWJ` /L$`XL1R(rzkY^.}$Hӝײ`Da *mRV:carl7nK~۴c`Ր! tZO(j$W)y_PgQ@Uepe,?Eb>TqZjy0ta<|D!x&;ʅޏ8\P3(:?r"xd7p7=H ܱ|Ɓ}f2fӼQHLG(Xՠī4:33&%t?w7̀?YvzD^$jWlŽ*C \#Oz"謢eZۺu`aZA- ҧr3!6ҚGD$lE_);vfp]~ZhCY߿ χ ~Uy< 09z%)*̂>ƀպFY XmЀ Υ:Me-t㪖7)1ỽvg[\xrHLҔ+y\nK^ܐ elhYP3ߐyq"^u[$6R[ykJBX`ߋ*R%W'؅Tle-Wxb'29D\2HY8E*X X|G2}}"o%ԍeΐV}'hAwL6*-z:so42!ВZ&2Z\V÷+}_%: 2'klSn@}!XalFmdT]Y̐:͞dML;.c!/ w+FkP6<˻)Y]P;!-`籯)PA?(+yr}F<*Ex-"XЇgĿLcԺiq; PX5Q2l{lSU^4hHT~b`7vo4Xo W Sc @_QYzA>ciԀҍ_@xis8/9$cRj v a(!hAR~%mpM7/6=I 4ѕ-1Oc 6n-(5G"~NUm:v~g֯x's7fֺ$ض)*idV e%dG%fiS\ F>C{6D%VhpZ#cݬr/M=Fc/FCQ/FKp:<8DŬM3ʁ۴K ev̩}Ity?װt+#;L+{H/b~|6KS33xUem s z0bْ#{chB[M0W$k/bR4~ܩM.Rx5˥Zidzw5'2,}敞E/:M#U'pY(L.EG^56nUӷ/ a}C>iAQ|́Е6P16"x8)HfIt(^sgm g+SjȇlYQz&&h+~+KVp5$~s-] 2ĴHmZC̯nTؤnJhZ ̰}\@Jɼd8;_xjoܚ}pG8o Q/0xbc|{a-H)?WL/B*\?" ?`ہQ _;r]gO\Wܰh\W8ߧbUʗh *E3!p#jKҮD!/grc.QZ0 J[+#cmo3AV5\lX=ݘAj Flw3k+^Ϛh}DCLjˁ6 nvNوHɪ94Ac i-~6zr'T@d%u@)I66]<[?ZIp5ـ_Ȋ/Jl6z5)p̗N?z#l׬_[x&cP{ko=ZZT>|-deY'GL|YAN AqW@)!NWah{ݑw:FgjNck عAFpBv!='ՆEaeݿ2F;k&-? tGs#/ ol2+9 GRJ9Ő3e͏hLEe|*e^`F|U34sHZ(עgs DPJFBUU/VF`᫗cS*\N"Ru4 N㈊rk?Ii5CKr퍾7~cYM:7^ oo0P6dwƈFREDyf+W ؙ{}*A@a mG|VYW+?EG1Yڢ%YR$p =RzNRC >LGpgvvһӀ™"L Mų hRNO$_ ?M[{sϷ4gd#.nFw\prۂބnVj+q[T;[ )42MF3eLYAuȢw5<׉AթDTkl]zcwz˥"OFahChh]羦(0v=dZY'ze hZ Kq<.F*lJK[!>¢g0ѴuŌϢ6\< QJO)/Tf/}i?ӏ ;a@{ U] KGnwTlu"~wGYFĮ[nV^h|sF{OWA'up".%٬0J˖7sĞUVAw.4!/XO-5&>~ŒC=W )^,=Y^#`Uy31[`A=jzv#=Ot,~pa_h#Yd9AcC?F~ĕ$oC"zqDjPёNH;dskdJc0{_.ӪeHђP<|q(1{ϸ&<ث%+TBK_.jyj:9]]"zn1O jiLtk@dHu4ƭ!ևISDxTك F$W,3bLCT8ybE:ǴדsM .ӞdH9Σ> ~X˭WM{SA`.Bϝ|mʚAfED?U(Jn/mJJ70qXD c0/C{~g؉ CH qx('+4rO7#4xjXm:81kjli0Fڲ CY} RhBq/(]q:|R//\۽ړDʹӆRFXٲq,}`z?'Ig<˖)aH%BY) e"~ެպ ?$r yݛ1\^r XNOS|E6}Kd [V|^ePn88x"cgm7`_bjrmN g]+MU(ESg-a؏+9c6y'},-YB[4y&&K;|2s ` ;>(34xzFƴeS[my# PZ$d%94#jpKJjngI̟H߫0_&_#* ׽ }8K*p/)6֠T9`xMaIgj# #OMUu%.ҸFH\E ÔFL Eц_1I%=x~GP =|Y< 'CW6?%ꨭttSkS{c;.pؠ%DIj_R$HDl@>RPf:+IB5fLuNTKXAtC4,*vrN6fT *ԛ$^עSLTO->fkp6"X+:]ciYHCjUf Laղe(kzhR/,o i>W3h'|-XLʏ X$Nš(n?8y1%iw {/(dX@jٗ[Y/}´-7럷2M k.O=ΆR% W;T!Ӏ.~TAjƌ5:o'i%?qU߽MpRbnXk@1{+kP|A!hZ3{w-Յ@.>iPH6FmS|I!Sa@Kn= 4K(΂(ׁ&gwGoߒY,1!ݬS">05rA^rbJt.qR 뵙:rE;سw 4; W/P,=u\"ý(O yq߉tm9q h=> 7sزoSܐZ;ǴLuXHaNbsEhiKl^ NQQ=vW=vA놘RdQ˩˦m^Wƹ.mpd}[ͺ<ేvR}dP7R*oY-Gq<kUc_PLŦ Gmx1ƒNݣtӈt4RtRܳEi S=T.$iO%r 9lֶp5dདྷ|}:HLN]AxzU'y70kftZFrW2+g!yCQ G~+PjL[`쇢uْ@]Zμ7kt :AMb\P}5j(fl)4,e)hJ03l0rlq)qMBbh&^,qS.Dj1@{Lp(t0S Zki8[ٌJ ܶ Ű@-G<pSI[%,00|KC)߻לy:>\_H3ئ|˺] W#,@#OtЇ{rd=ZvRk-+!P v@ǭ3eJSfiP*b/EŹ=m_g4RfK6錛xsdԫ2&ff2O[F\T0X3~NlniNJP׃Md_wo:RcmZvw{MK\FGj 2f kdUB!DƯo~sq%=iz8(15xslThZ4gN15{klSjgOcL\lOe@RYxmVOWN϶T29=5BS*Jc|w"v>ZmBh_31ۨfY(ZX*h]|9%fҁ߃GւJpJM%:򇝋]ž8gI)A^鵳uOlYFm@gQ!QK{[gMqsZ( lvlWNKnfEw@;Y;kmݎh!$Z9E4Q޸ICAn[&KaZQ}C%YFU;qא=ͨ^f;F#m1 )S;k -\heb3&V{lp`iX 7OPRts2;'c!(%E>Ó<N-!߆#vHµ8jH!ft8_- †@o@. d/N 2ۗĽ4'k}=i2GbL rlՉEJF>|~+b-ۛmc xP"ɒ;nƹ5y?9 r WEp,{+\J0c Uɷvb\:" u~ :@ LdjaG nW*Ox <$C9C:|!C*f[pjap_%3иGݠCqyAZ$+ݯMpIku ԫ׬ ZeҠ#Y#^5y{ p1q+Պ֛X-2tŢ;֫޸{ϯ4G495m*ڊ(lt؅q#މݺ՜vw^KXwN:N/0;?Q< Wsqv>Z{Fa\b?M(XF&Wvm5 yIMlE'Rߜ>Z ż}G¥2f_'Dg:p P!n<34kpZ>|EWgMai;:&4Lw!&==!QJϒlfZK0PذFI4P~IUY6s!&}B(#gRTVǟ0Eq߅Gk]luZǙ[ v(7ێ#F U|+R# E\K/_.O*7^NS&4&%{7c{ǾVq&4 #:= w(ʴzx\zNh+& ~t'Zg;~Ab_ " }D@ԧ1 Wm=_Mمa7?}F(X fy{QD+/6U%lέg,K-Z4++ \)%:]yT6SlQ3~46C+*T&Ll`:]zxʟ}нt- I)r8i㤋O8@$%VaaKUɉQo_Ȉ[Vڝ ,|s,^0qN7k4铿 vfWQߐ@C{K-y#  MCZ.d wn/]}ބ&gEFw/j*Y_W<9 zp{cjTT>x `Յ^Xs;` zKyp8s,7_ "ߴ\q^S  F ĺ^g:ZkO_?>1l_QnC)cRi3M#k <~٦3a+8㩩nρ8.M~fc-"4瀌]cǝ6L? B&7fd|!K@Ձ T2<=~,ۮvVqC7Wv/Ʌ$H`RPD(6WRbNܢ|ՒTPHAsa Jo/,b.@O$\n=KaAcqL0=)]S>}_IUN;gs֏BN#*զtx7ȃkTh7})̀(5JfW3|ag崏b]hL@T$KVɒTiWU`}  [+~.w|ESYscT^/WMx^vk=ǔDywa}St]8+jxvG`"n1R=Şv]f?h%Y4+ߥ6X?SEAٓ6mj :qIf3 mj`-= 3?o$6xo{qKS7>HKe)Lr5F2DjLҾLir.{q%smS.ѴxP[TbK3^%_=K=: v_9r1l4r; Re_{Q`aYW² H?qAa^a˱9AJ1iWZtG頍[k>X1 /V<(x].ʚQ|Ef'?*-t{/e~c#)ik~D>CjkL<;6~.9NjS#Oj\fv;㲤g?TQe-?Ȅ:y6'^ի(YFns/ 6{'Ha,,uK!MB**ܶ7eHxɭNڮnE\IE3ܻhg5g1» +9eխZUש+{y+-uo Lz*.5(cXZѽZK|A, ہqG7Z/;NX8w{s^=T5s.R3\p nh7ߣ=HUbO /Za;@in;uDfP( tjd$˄EԖFx@aGA-R_ۼ"}kuS zQ!GXxEvSy÷Xp65*MxFUpDDZ|[Y 6G"ͅVDk'pX-4d,n%J2(fIj_JH f۱RK-mZR9΢ XIܧE#! &c@[h>ȧY߂gLw?u_iӪ[^w@8k [<;8H1 ́U'~XF> &Y˕%U[R)US7'0[[j8]?_LaϮN.޾U^2NH'|lNb>oτ2 "sn0xe^>:5GgbsX^{ʼn?:Iq]kS%_>xdRΎN }Z1Ө_ua4&pa]5CLo0*J77AӺ)-\\\*&֋鉍j>fp' MT(JMdFѴGO0>Ol9g ,0pJ`n$y=;ط`8>4lUā깡CKڸcf0m>qc`SJa:(M}?шV,D*ƲtKi^ls"߇|iwr0Z&Yҥ9aUCogIx\oRbFm#34 u-U|1 p_1TW$}Z#-|yqO8i5 1->)Nzo#Ł | Gdq uˉia6i! e,d(GȜH[{Ϊ#$ͅ+-y ]@NwT?zxa˫eD?Ch&\byXu֛؋*ӼV"5uv4 RԥM4{4[fgC V04pc?^\AO}7Wc\w,f.\>ݢy0q| %AC ƮԕTuca܇hVL(9E53[@N&ɠQa\%n%\:])'>V瞶ɲ\/5L+Ò.-;ēAƜqєGQiq܈qbgოNSK~2Š퉣do,insap@MN0&ORDU6s9^kL}"mh܅rJ:92bbmbe 2 !>d̑ڽLJ2$?47e`*`+lrCSw]Rm%KPnOIwr% Ηmٸ5yM]سLjC*r7$n0o:8jx¶34o餎_ղ'_0o#| _:S۫E „.@d3Y#-ۚ%6l6e)ƻoikattY I' CqUz1q!T 02*Ox}^6qyclYNeaϛ疚XN@Z;6;j5`$lVs_\SA9rP9yk%!*MrNVH,DncQ z.8!vUJt]JY2QwiB) 3)B:$ca$U/ QcƑuW `޻˚[CJpךmϿ5_UCHRN.<;vY8덦.r;H.RyTosKݳ0EqS󺐋Pŵ |-,5[JN$<sp='y %?$ 9fih֩?~0l`heW)xѩO80!e`w, 4~BeU;ȍqeH-¤[4V5<%/PE1P|-QrcTL 5[Zdr\Y}*B s.Q&aCѪ44Lȗ$Q8O?I36<So@DX}(`n fqu,΁ -z+_V,"d*lx#зt>֋SkW?䡽{oLnő'K^R,Fi^3)Yj}?/Xq4]v$iAUxp&Ij o+,!ɫ޾A >] Bqtv3ֵؚkg]^lK!ꃬE[-}1] LKp?hAN~*R).(WX_Z ===fӠ$_N=c<kHYǫF=3f؁Xz՘؂~}~`Z$IHxK0EE=BTx^zC\ʼnrhgrY7n|K*rᄆ딠Z#̑,#gIx^edӝM~TMѷmEϺI-Og )siS\>!K&}PNcf3>nXH:x{u+M`E[J&.p}SP2B ޒRQPhL*&[H]G@*47#g]lp&/eHy[@|#h2d`/C" Ek+ov۶!SF|$ǧi}R61ԭ tk1"q<ǟ ͖OJK&ՠF6Nm ^eIYPSZo%3f%uNI:iA*XqN|go4^ZY~? V O>X􆇈a^*jzܼ\Cr[Xv ^w:xϒ”#hD45/G{uq~CrV=*QkT,@O7w.ûP":O-'+PcxObUAg>{lNN CۂKs}Օ݊Kt+ui}\dj}ͪH7z t#'k0*l Pڱ163x(ϝ"^_s=,Cz 4`,ES=R0vvlIk1qIˇ nVB*݋m]Y8OʨBkaRPdP4);Ip bm~E&8Xag˳knٛ[mגk;8V\-`5U P\FUnK[砐1MFoǸ$03Fʇidkb5Z+5L>Ma^uFK9t:( AiAPE?Ym[T f58bƻ0teLN8 'ETH*<|ޅ'r,'8#OB]\6 ˾!DB?a<Ł,T6b(:1AӖ ,">I٠*B^`R$ڔ/"@fc&jR C+4hGF~> iUNeHZQ"hEuE"fsyWDDI!;"w<ӎ-DܞIP;C@ {Vhw|,Y04vH1*+⶿?H@6T=;$~UOzq{E%ondMBYþ'#+>BhlqH <폿 /Wo=FSCI̩.$HEX!JR,UVgb<71#)s7)o{KPR E}rmGӪTHGu$:T)klyý>1\h_0[u2; S $iH&OۋkB\&Sg 6tK> Q+ x3Ɓp ݕ-FDQM; [}>@Lj9ޅZ;fr0{ RԖ/g|^Wb4 Nx1@.gSniCS`%Gs_ F9|c(,y8 Z~cCh追ѳ[DD2G%о\+vFIۆ+Q)~u~qDLaЛ_s&"fXϻ4B~$>e7QKvkd/ZYҵfNca#>)oz݀h#<Ǥ]k}I077ル0S?dmS=)[-VXqxiQYr+,|ܔe.bR 18(>4|iE$BU0d!G-lKJ< z zavTD">Y)tvVWGRɐv ɫCӒ&!$-vsof vxg)|T?F,)UiQFw[ʕ1\/<0uR' -Ϩ' $E(J;jֻWOrtrlo<ȏ4)T>sFAB5E b{_5Z(’Jef R@U3EQ잟%Qoy(G{\̵xb>lk=Ud^ )Om'-As ~o|-&V}߀z,kjl+ ~AQשlc؂C9#^6 ,͒o~7MpB"b?`&]+)*aRe#rgOXȊf^%& Aڎ`!;{ҁ-75TPRg蝏arFX R+cFGw2W|>tǂnCȁ/Ǡ&%;U?~eSn3Zl<-{]ŁF*ŶC_-(/PG_B5Uux_>]ǿ1OG“]Ux nE˞cj*]xHqFXLdqz5'h/]Gxy Jm=P~<@eE:*B٥ދ{^2vI -l %E2ىKmI|pr9yp$';Ѻi$p9\P%8xkʅΧGAz:l"+rQ u18w2R Z],LN#Ļv/љj"Xi%A\4|!h͙ 0 <2$Խvt)( ύNKZ3/Mw_r[%>sȡYQ* b}N1&Y!RW;3ڭg! )v!KC55/M kqy RYtsMKDFGyQo|њN3eɯhnMjX҃>/0wrJj7Fܱ?:ze+ӧ&};8cOA\8bg>INQ x!`B7f.1VkA>'L0#WAsmф<]9 oIAKlN՚sOي?3(zDJo),xja GTmNUT?er1JE@͌'ikxEauFf-&Џw(琽qϔoT! g|T-OQRx=TRpE=d VxQ{\CDXJ4ug##SKj`̸B:i_/˜}~ec*=,pZs^6Par#`c䱁)1Wxuxc6Hp/i9蠶vɁ6 *QĻX& 4$nRWjܹIĹi(fzXFV\+7f|O^ [4lK;aURb4s{Oى8?S{a~OaN QR'| ${n8<.lEЯ$lUc;\0B",bI)K԰_If{xأk^/Ux'0ޗ irx"4Y>SoLiqZHc2$9ցQdrcG&8)Cf1m4L,fgsjPnAR`HG_eqkkE5cUK^ϞCbetʯ"[vRIJs)®J"{C[MOq a b0+FgLЩg< U~u9!j{%מYCd ]ƬN4딢@w~( YŇǗ(/42"k._Lß?%Rֵ53h=ex1"u0=TBeJq eNTAUq֤!mdn#t6E9w/#84 Jh#!#2uD {~AQԩ=$C)F!>S&=pg,r-`{Rƿܦ`$!}LA+ LX;QARd&C@;c?>s6;!cX2y8gd@tЄvt5Ysέ;˭%4 AA~ڣ!<$D37kѸpjy$:S6~PF: -#8s`{A@@qen;g ^" ""Ni(݄%հ"^j/KA5o]f T(18񣈝A7O|:VZDd]Y>x NMʼnQ`϶r0+@} viacQBc2*.m&zۄ5.1Q\.m@V>J7Jo6ۢ4Uټ3+cvpukI̞O诤nOx3ἵ7v?߇eFR|̚EZ[e?˼i[<`%_G] ~dY{37筣f(b_ ,=˳v`78nÀݦ4f`# <-i£`6n=}x B,OCK)V؀ ~88A{ȅDn︐W׎LWi~_AiUnگs:#\ }&`q1,_^Ɂ_F+mfDPlw tgqWm,uM9 _rM>C<11T=|u"ѵ(AȀa -$הhV0! kC-8[ctM7 j7~( O@l8@^K0c'O @9x8f(,'LqSpP33%|3$w\r-j yw :8TNڑv=񇱝G>VF>i} [KՍG}I[t K"VCeÓkT*O\ !w1EKZ91SfT'*CnֻI'RmT4$JN,}-(q5gDį[BiXߦS2ql.+jn" 6yJ͟Cf+JI`3rv) "C ] -t5{B6ZϦ 1~M㳄~*k9:Sts9_c^ý%Q.o%mSXlHSrK<<}E2D.tX\% @{&AV;Q'7p6] ʢ <&a;9|ZFt\̒Λ06sSgilEW̪!TÝ75e>ρ MCkޔkabʚED תI`y<]WFDyxƴлyA98e_l4' |X4A5{+ ;A(HYś^5cQ;ZҰ׏od窃I$5蘥oD?Mn%q!W,bdkҟc ]D" [Ǐmj`ӑܶ yb4.$cճgjsL#MLCG=QigCQR6絃hbHb<8Ij!I&wT|J\ 9*QKfe=A+y79Tc<׻o|tTX[@@ednemH_uS*:V֖!"VB_]Av5 i]!dw'r ccJ47VlJO'~>-;&_A;&eYLQnQ&L޵AO2`*"ؼ᮷bYx^svNl"# KFAD_643N"WJƹRx2F+)X5-s/"}|Cx(ohη1je >HXPLFWB{do?/`r,oh7c!Ro&_ϯzjmkCKR1ߟrWR8|Bn0B}+HiA> gs7jlOO (lkJ!޳%Xz^jA@!< k.}ubE9( e2iܣf?ELgӠpf6زVK+xmR_*n\\:zVC6C(kްr1(c_@=Wrg /V( @Q?=2Ör3Μ+t0DE A1Ĝi9|DSxrgrm}d-l>p_Llr!O?}ü\}*^3G7jr!י!&EgXcbdIQ= kJ5qZtjڊ[3H{]=ORJ<2"߾t(Wlunu HaXl#~)le#!Tn~E ?pb'+ږ`3g 9mMpF.{KߪPl⪋L;ͅ ѠVx]/O<6ٲF+w֒,,8r` A::H20[ ]6S N@%0wj4p-r`2Ѿϝ(4[٦V/o_bLty>*W.GV? oD|{6Б3+nrATţw4[딌̮`\8~#&]:{ 8j{#,Dm Y |s2V 4AJ8=uR&H)N/כ`/ mI{Q,ѭ\(&kyd@5*ih+?1)ȸpE}" ]z Xau6ifD-tX[+ֻ#˵QNji9MqCE6Ąu\H-83|EKd%" p?PR0ba\[>ՓUzzauFK nl~pwa2s/`;XO4aGZ-:M:Hs`:!K+R$AQZU W+^ 'e9nZ|*}+'XjJ]-!/bfd ujhCjE*D^~om|4z(.!YY 0^i:xx2b7aߖ[ 8comFZyjR fdL \` ^~F~4⧖RMGzB8yb_\H֢1Tw^>DFԛwcV79ݬ@J{NKGkO&KrL؃z,zt4m䄹 OrLhSta}T"ZQD~ƊHS֖ y`njx̙Rk++/`=t"nI?3EōM|]J f: ,LKSRꆒΣ mY5ÅqF?- ˯_VJg o7MKb[BdvBvlԪTĤ.wH#E"f͠74 y+گNz:Ok+M=FSBLu'DS>45"Q}(/,Fk3^[RK0yb+^,Ҩq׃]xk,K׭ 1.U9p{䃍DY?}0]pmhw)ˍj3\ ^|!7֌gnLbԷN֢ݬ ¶O^_ӋzvT=|]11WhY9l-.@/ VUwP?E9)ݵL&u/ =_Lm=%.Akvg<ϤݙDVi:;rhI T}aҟ1TݾfrrSMmbL)ƻ0vgTc?,CWXtEBȺ3 MTV HsbÂWiFᾡt-\Rc) s+e<k$R ufSͺ렘aopPОgyE/}]IQ]{_NCGrĨu=krM;I\ @ISwmY׈=8ΓhD/7bݬK&5m>Ⱥ CHΪ-B- !|Ijw2 'qyvlL^hs]YYa3L'F `"^$mփvylJ"[Sh#6J¥.Z)YS(&/.2Y2`ߵnd1= ]{Ȍbb8J k~ ]؈R|7.TgaWZ k/BXB7>F@P6Qr:&od1=1 ׭&,ynĠoixF<`"pVb/p0q }O+v(@hda'#{x '=סrEJ2YseS0zЯhC\ti4$4&`T(w?q+⚨*+% w21bԯIwC³wgֽtqj5/AXs6AG}=W>%1䚯-m]D2m\\x ~LC g5LUR L{i& I$>~tW0TPB?9|qNQWw:i3 Ё6eΊh~.I9=y*V5FA> . UHfon^C97I~ ^%/lߐ`ݽRQUBM7g!+L']cq: YC8T.?^F B\y}$@F(Á+bfU_iI+Z ` h 2/;.U|ƣbfx\weC~tpMj6 g2 `},sjSeߒcĘozV)gfD SIL@j`+O<T kaԂn7N>FCMԑ"ȞI '_LdoPF P+?3,}I{_'}f'f8#x20'UѸ|XQH RUOvw\V~QWqD.[#BH4!_cRѦ|AQTu5Q˸ | s)3ύsfBRuaȥ\7=dz Lc=WTlf3?!H 4?NwiQpX 0[2gb ?|bBǛ j(jZ6Wjy̜M}T8h % {g)Pmcӻ]:#oxݵ cn5A>b SnYGqkoIڟŪåIgjyŐunӚFOAU4pAݽ)(-[y'޺P$[{+^2[,m{ Vg+>Q #En*VPPmY?jb`&«Q,ɠ,[Cfu_aOќmԷғMKza[ v]ˊ|HK$(+Buv;x//C ^n dr6$mkIR#7bz!a*LNµO௞QrwV#a6pQ 9 -"pj?:0hx֍~5MWKFalEH[?nO}mNlrAS} I;~_?s:1 캑z59AS >>mX #']$x;$p?\d_%5[dPy%;ԇ3aF@P x${q%s!HPM+x9߫>FMf};.2]dB]_ ?-Ӌ}2/5JthD]uրS{esӘd5gۦ6`k4Bc ʘR!oHxܧ/dZZ%_A$grYe-/#IpEƊy> :Eu]ɍF4IdBzh~RF^Wb#i$ ;*T8X[^?mb1'#3ix7u[:ޑ^YZ>f'kJ$fǓVP)n4yo ˑ8D Vg̺N7M?gl$NhUۄCYzTHNʻͽ /;KUdd:be&u:C~>we` 1&cuW\3 dʐI0BgIJ?ro&Ž~f--d&j4!jz[v¡Oݝ&R rm4 hmPnP*$^gjXD C0&i!CD P麆zḪK$_DI 7kji~8fLfox$߰^>ZjH}Ar Ʉn[Y Hq*=o_D[ޏEU4b D!WP8F Qibu;Wv|u<)M-"c &T֛CyzJAW귽~.JC:)#irf 0hļp%^g.HQ> }BN4CbA7t@2%C K? >s;%=SjM S0?ijH23Mr:Rdx^Ȧ2sxn}Mc *,l^߆J} pwmSBI4 cA(UϑUOF>^2 zjI8 ȑ^Os~ ?>T eLFGL*y}Rj32ePNƹ4s*jH) 0)jop%I( ޲!"{86lgh]BChÙ%9 |=q Cx3ʠj%MAT:꘿E`&eT.wcMB*-PvxGm 5cF* @Xo|v}n*.W~HcV<2=2+fj/ˆ8&, 4+/xEXdhȣǢ6S8j7qIAܡ@[Ss#n|J\e~ vD q|bܘ<=խh[h)%]?wXB/,{i%ݟć],e[|\ir?AIQ3Vҍ QsKdDq_k #(^%Ɉ[}-HۀEj){ud nQYؽip< dE6`z6xj*|1Iʘ( FJM#i.px"LCtku=_sz6rh<'=/=zKxʠao-{AAisCTm5"SF#usDh^ґo [*֜IOܵ,"P%Lِt0H]2Wa0zF UN]A^mZ፶(5bw [g}UDf@6ݛq= EvU$olk-J$I33.9N5 MѝwPp•[WqX3۾D6r96-afQF&*z3קehK~>@zi;>kW(ԱR&pzلU!8 SŒ7hJfJGbIgAѿܞR=/VqI[IC%--L4,ݷX)Siǿ%B\7; nz u;r^L8.gMho"RMbΘiܱ6D}ijd&K5TxkH3Ĵ)7z]^ops Dsx.]PSv3:eGh! J'iTqw\͝^ƊdؠMR3xu: BU1*$h{*pY|>Lb39xifI6d:~aX6P0"K8gR= 9L);6Ah}CMOģ5K/relS٢2gH6$HrJ;"UAo>,obZmCTEGFf @\mNOm\/kx? 4AZYInƾ:.\%ڶ)-2$IP5͑a_'E#C;{B0dj7nz-ҧG~wƭVVl< 7VJ`l‹K'ae"n/^۬4`6nԾ<t}>K7-A3+"A۰nZ:@EP=k]r#B:sN ̝TZsb+Ao34hCz}Pi͵Ip9'so.2f.0˃IX-$$yŇ^Jk8ZSOC[5SsoNkSuFvvo hCq?$FGtx7 ǯX2쇊#X^EVc[Ã*/³ %s 0vNH!\GUxۍ}Go ̱"fKY!?^ f4&g[a\8 f>@1"@vܥ{=%bq(-Ad6Lѫ@T^fa ?`OLW赲Ӛx֊֡QJ9ˇ@%/4J#%#t%|7Fƥ=*8=Ӻ~59hnoPBg/}9~:O[چ=)f.TI`3q-dِO b;|Oһ.[}&tw̾44f(3L x0PPnN-lYGqWgr BcV6Z{JUQ\T|fӪnV@]Zjn0Ry&GK &5J2G6>śS.}uRxqM"NFL&b9D0!p1^^!e-QщzZL@06E%=Yj#v iQN(SsFZŵ9U֛al/ cQҞnNb O/1Xn9c$ԧn6 :MEE> ZNoI8DɺG:0ݕLв<^^"ЂdgSVe:GE5]Jtۘ76lG(^\ӰM'~sf{M̸=4$vP$27=q۠3phF17V=|Zɏ 6^CeQ-PH^t.pgJs˹k{ŲHSƹkV}"oXqථkg? Rӎ"SaKbmPs- Aa=2w2}‹l3DW9qj!XapA#B5RH=ayJǩ:qg=OB iߗ?Ύ1_1%]D:޼? akQzXR]v5_+ج SG,B[R`{!Yt*B=l!VU W0A+P/#cЕoKp I}w+RB.1btQ g ;>9 Vx7 }GT[,mJwJxw|iA4kx~U[QK~eu豧ŕ kq-t}cT8P2גddg^ֿD=jECN)b~˰^ eM-һwS+?|>: tR<Ǽ8CN,T# ^<{aYE(-)*FK)%03G`jQiPV0@g˜)#uӫ /'o?2x(jNzE^ݮB'(0tFmWɖ*$z h}PX{v/ٲ* { uVWBK}|KY&= ?"'{Yʨ^da ; }W c w;'t2NhlS6t~@fі%o{OUn;Du#/[Q<2%{YO/=Dh£ʇtOb]Zig9:-cᭊKV'x3k*^Ʉ6ajXי6zJ*MB|eLOm}IFq}_ Y? %˩~5}Ix3BREVw6+RoCnjh%PFRH kz!LyDUh*H$c&KtXb#{90wBZF?`|Xr'%iiesK#m &ّb~a"eObFZ\hFȄxHqTye.5jo# 0/XTܸ.n4l.9 QCdl,'ӹ 6@ON27~LV\ d(Y23Szǃ+J1HkqA?~|S5mnRT{cfUy8rRD\h$Q-v2[ Cp}w^޾lc^i2_S8"*\:ʖm.6]>\aD]vko@Yt^f]hXx*B9eTmrS +d G<80U?~kBXk6p%B=ҕV3KI .Y <^:t)_;.Q'Zö?c /{xd\/D?R54赩PpPjPb n/|&'=zi GQڵ7s*?ZzEj xfJJh,E3<zU$'m$8xZ5oA般?@EoVhQb!F˧rcbrpwN$Z#Aa {O2y FX|\R-ׂ=~>,cH\$ dErbWJ ƶb˃Wس]O@DC[#R4,- SŁ9MS{^E{[^hbDټJl1<9E8T:M-Y4IpPv𩄅 id0RǣhD?dh?o1_'${F^] >uDfPQwGi%?TROb.e;FƩ4XOF&h4=+ U0%rDlJ? tj`-J;%ߕu#RT r%daSsz sC kJa+8^95lֆ -bЕe{ NQ,9+R4W7d~/D1A[b^d,W!Ѽ_3aC8e{Nx4ؑ<̰Y,_P55$v$ͮe66 GF|ba1nR6ULLC>@YfhMxTZ>ln<&@YbLF헕pψn7_-(ek/"q`1_õt^kgU5;'J]rx7]֙FH `܈s1DFDN2L ݵ9, :7AJ6..UK~C'.9anyH~T<g>g\'vWݼQDR4:ˉc"Ѻ;7iȉx-_) H44t2Tq_`=PIL°aHV& Z23|ͻfEJץ&c‚eOyQF&!~ `)HIR(|Eo֗8nDUaFr"' .S_®jNC38'J3-Y-QD:fs-!fšխF$ LIvVfȌh6ۀ~UZ R}-I؎4BC]DQ<^VRgUs<7qQyi&@t2f(G2WCZ XG3xAl L*mBmmJbWv!|%ROP&ޗeσoz Dts*yt?W)9 XG9*,o&Ʃyёօ3zl- mUbQ#{Y`eBE??yrꚏ 9.Ey~ ZbKa|-94"qiuʮiMDȭ2߳ '^37!|Sz7źPp. yQTtc}@tdPwyQ8yHZVVv2ͩ-PԄo@D (ɯ8}¨4 hW=JB"Ţux`a_W 3≠"U *#,꤯^p\3ۻ.?j+UꜺ ez`n]}jX?dgUre8{"UA~߮ǭߊkV1 ;Ņ=&hNFB*}]o[`5i7Onj^+Ruҟ*}kC*Y\/O+M8zVrj Z>b@fĻԑr=܄M7R(+:CY5|Es" v;L T_/c-)qtIwfL>LA5*"0AR#&Ȝ-ήqyF@Os ;QKJIM_>$vd@^HR/$Kqpg[y" \/b) tAqXg|uVpܢ-{b:Ӱ؁ayȭŨ%7=О򂙇 5:LJ%Uʼv9w^3H| m\˗GQbX/9[i2TMLEtIV|xLߚ 0Ò:۹4g;3~&c?'NA7!Ak^0^B^@2ݰF@h{l.7ڴyj d~Y 1eg}ED{w{3OlC`bYdсPvٽINc3x\ƛд\S#>PQ M#5ծY~ =75qVt7&US XṋlHo2,(&K>J[ȱX?'_7X :\'˟/aYZ  ZBiPx 7qZB}I@bIL^y=tY bϘrkyhiQ!i?P]ŭBdYG10w;HbZ7&+`fA B*m(\dT/0W ])m_S:Li`Tt ñvk@ېG>يe8RZ_+Ћ23}[3#<193%0*<𞨄2rj?lyw؍k~-Da$~?=qeTIdkLZtڀO%hVC;=r< *k,\Hhp/ҴŭU~eRqj+QGsF\R1</pC{Ŧ`GbxGјTя֤gOJNh9_( K |loOXC VзOخj 0.8\O\`yFI/mݯ w^[ݭZo(OÚLc3[ԾH{֢'8#>mGo=蝛rwтRkZ T 7?LbIR "u` &af><ySwߺ{PiڨV# @KkvL)w18ď_ b/m M|yY%P߻e%B8)LTP}}[%2ƂX4gz%=iݼIq"ˆ9i00*MaV7yA^+O5bW"}M--B Ǧg}?(lũ=loBB3U5FoCC?^_enH.9PV_#pqG~`gD@j=-bgE9Yә-8-O "s}b"ngrPNx i)2yk;CT$RzGLQiQ K1ewFٓ{`(!b) IVN Ν#sibrI !6߀orta.eh0mv)JiS.Pm47L5BnA :Q?ޔ/JJ^(J="!vvJSvHU MΓU$|98rgGځ(sPc˵,k)xYisQpv)/ʈd_CC (|$܋_H|muz6 kt=]d3qUGXRiƓȯY= $k`r'L1W@-PͦPrBXc߃DůjH Ž V#"(gu56\ŢΠQ_nLtK 8+W T o!T$̍%'`+˚2a|3nNi׮XoL'Y<Ϊ/o3xb?y\+d׻ZIql6ѓ~鏺 [ u2~ O~q9"3v7&{nnohM >023Kܼ6|lLJD _J5a@zƻ̩eq2ax܃^^VbLCЕmVƒ5nj;xdah ?4fjĿXq%J)l&鯵ŵE(l*w0ZMjO1K":HPx?mDTVZb172~H_rp^(ž\)mv4C 5k ёUUPoveBF ";cfή:KFQx*Xx*<J0;Z obmO-O2ҏ {F|E NWt|YS41NmC'o+çPvH)[!i0 V![z];h9bGlB3XjBKa35~[eY2sS#9 z5d,>+r=sM6Ɨ }ү.[¢\5Lmlo:ڏauΒUT6Yds|l?9O0wڒYkYt/rUϫBs^hq)yI=GS7uZL.d,N)E Fd _$nIB")Sp&pĹ=k"/8~O{ѧ `s`3/._lbX #fQgA8{>?$ބ (iaCҢI5T 5W/ ˋ眚 bDJ ?%2A-OW/P+ER ћ*ԓhg(EQan@އs xbk_DIe|7?xWAeE{r$[5pbE*Yzok-tL:243K k]^g9\ /}YGht^0be=-_2t_n~"XrBf2Xbk\ⱐSpM}P&oY^i[~Cs +;)@#Үr=~B| X@n즶DYɻ6xXs}xb@5Xl%cGvh;Rca54%? >o8 rP0W (=Ai;2XeވL4U@^g1yOAutZsVM|-QM2=$䆹 hpM8p` ] ;8{ً^Fv / LcT"]KHM>Yfx]~`igyi@T^8)tHcFC0۝V$*7,~e "q̂ p/& Ǥ=Dgá߆ I E5鮥aJ͸M8_PܺtqOC To휠 n8qE+> ͮw17XDr%($"|vLS@\K DaC o(+'8ڼ 27 @ΉN@YwN9 5PMp N͒faՏ4Amӄ߳mhaDZtBth2 # *oQ CXʐ@g7PbpŰwm!& EcA%\`vO""+{#:OV,Kg:SJmu+F|| ?C>0{ vq{񂣔yMvEpI0ߏXh qHy5 L0/BFtPճ,$0aQޘM/s$?RfGCOS lwY|$ԨFX'=ҭaBOS'^1xo$\dRJ=تɦ +|7oDbck{IRs὞1O𭮂tjڥ ImM1 wyP8 S@]C?v!2!;iIId]̓^*IꀿRIVJ'ԙK$)/$̵AʾՒSjlG<|j8מ⣓TM*I9v6Q}[I `kccst[Uᔹ"a&۷, SMOa($e4 sC@rsUćZ&RKOf\Bzl:;i>‘ Z*[7 (e7 DK ki)~ز-Qu l*e5C|rgi!2æ&=X B6KeM˥A*fZR"ҍ"2ďaMUJ‹V_n¨mJ2 [u-Bi\Y:}<>$;5N1 $I)d;MB~)I7n3p|z|4r3 BOK*{)~˄t|LԶ3cVBxбW YxWWq'lcAXLWp;Zyʂu{e!o:$Lmzdޜ/HCIZN(05A7Yu"6kN= !6xyY;O7D%٫Kd2XjI؟{`na4B?+<5Dq Z;8% 1ߴI *Sn˱y%M˧RD&tu`,֑yw *>ך %8ػ{~wKƋW9[K !XxcS}4\.;uU;綩*|EN}J[R% J'pMK=kVR4-SoexIP('Ȩ,8t^H罯^$aq{KJG>`4j!c>whvׯO'Zq,8=Ϙn<oߴU=%\q5k*C<3Kb7@KHJrk$5)Nₛr|'U^cw5!;{ _ҖbfIIi}naM+Xf㱑S#J7w5F,!߲y:Wr/&J)rۂ )\e2'mSv+NWnƼQӴ`e{݉L"=yb}6eWt#gZ ,u;X wΰ~$X@Kl ,Ds;JR+a1u;0VUY?20ؤ٩9zק5x o:kmAezLg 7>WE#-$s dn^" 1ctf'xCK҄{NBx`sA?ZE#;OaWу@ *c=NoHAvsf97I؃~W5 dd ey(MZ9z,ҭ>* ?uVCGd} ӽyHTÉrHdc4-;FH{hi4է Yrدm䄷n̓uCRI:9-$PZ;m9y umHI'%sVN7@]o3 1M 5W`)uZ`:^Df*w( A* xT'/YΧ _aKʌ@Y*}ɼy-=1+6 3*jJޕnGR[HP`QP=yx9;ory5[HN׹w$[pnry &|x#u%|Aʻwch[͗`/X}j l{{m>?t=S$2ŧ)ߜtf[5, k6LwNm6F*E1 @ɹXodBߗ.[-Qhh$RFt#s/Fאr-.P,Dw9j{m%-|4!$,k11#& Ybx&&Ԟ5}ǝ5.WakAU5ʧκ[յiR\Ѳ~z_%Ct3>%[M|3 21*6 hpԘLGWP2U-s XQH>gӡ [m7f> QX!.D15>qy箞Φfbn-%w)LR^3eaE7L 'h%!;H*YL 'OìXgJc]!pjA5lQ˫ALy )偨8[XG$w6ӵ(h;[,-1Xtη*ƷΉ/18VA%XxѲ(x>^&2ɦ:)3\7̖FUGBQ髩wZi7wȢk`SPmR^.`.=-}F ?ElqƉA~"z_YwIMY*Ջ6 X1s <tCNog 0b:l2kNI<1Ѥuc,-[}[ UE9nL#ݥ ْc ! ,MYS,LJFQ\`} }!ȯ5}qq/QZg'@He[Yn};W+"]@ѦK4y$ %,=cHf{4%j:͉B \W>@Ae3 ݟծ[[ ńks+{/ꔟȵN%Qș vn ӻ@>+h'lbM7|%#s4.SԽA$UֆSi[Rpq>]jGڋܬ#Yދh/¨M@Z͓ 9AݓwA؁TϚ/.9=e+Di.%f;In8˪7O'C38U%~@3#d]D8u|djl=2LVXح.|U͵ \2DQ1K^p:_E,ـ"bټSe3OmTHí|`1WxҰD9rL^%dXe>=A(j8Kv.qwwA&񓖄 멗}g3ϐqqW1J(sF%[js絚|@B{w0S0:rP)L}A•-,8scgS{ҎV) UȵoӘ$ Fɨ2i:z1=`(Ģgx8BތtC(2k$reH v @luXcl!m֪ԥk\"Yl!1RqJ)HS]NFڞd`tOC]]aeF!"g ;FOA;v#+<0); RYjqz}XZHƭsb醑[%q[hEdG}}#z\{4GG3ha8S96/(|Ʀ7S] f/O+OAwU֭!V$\7?X]]<!_0ư٬ڨ8e<[@yf;",QBM7r>xX״,jY!ԩ,2 M Xʤ{u߼謌jPW˹TxH2[!Π$5#.d{.zx>dB߷#-d WHl7J"ۋDaiH q΀*>HsſFZuOYYK<^T HAP4.[g'ff l]zFTyqg29>-q*(C' S.ˮ|'bRN"cY+)DzӶV/hЧH~RJ2F|[ ꛍ%xBVaߘt!4ĩ>6z4 k`%N}4ĕ+{d =툂 aIÚFҾw~q2v(N;,(l9 zL Jb AaTĒ>y%r>ב"A{x=pȄ7"w zŶ`f9J'(6nW/̦K:YJ؎0$@"Wrzqo#1%qCcʡ2}є &xȋ,azY pe}C$]=y%T73f$'Sr6y)IJGҺ`93he ²Wó ㊰0-PMxaxmK7-C=1>Q$/0RzI ٿ{""fU8+$0U8g/':`= ٟ%k)#*~G(/ juؠ휧&h_[:erCNr|G9zʏZ=/Vhf=bA5hϧFr}x~cC 뼪=vǡjz ؑ4-bCK )&<5zYk'#崝.IP~}xĹZNf<.D{6kBdA,qETMC^A*uf[qYw9,nZa}`);g/=L*,GdX թv|7:Ķs"¯VRhEC1*|I΄j,#mVd IBfܿ^MJDu#]vSTEz!GO"I>RWcKYz*,>lᨊ}e)7FLo)tQmwGiyH]@蹂?~t-#: [ .徔,`_ OҋD{:LƗ?$|?ghfu{[w;博.TaxѦd2ω=zG&tJ7O1oǴa6OQ6tjf_mUo~k& [Dw*ȖId<ʗq8"g\ί__$YIRir!#K@}L?SXg vFLgrwa懮qL :.]Ow{`38%hjV:aIUr'Y'T@c* @5 ŬZk G}2yE'/X"^ Tb9z _JX7]_=(*gj\#6ƖufNH]&-ʘυĎ Xr 'a@yWy\7J5'2/]R}-v6Ლ8(', B(ޒGzۗ*Nggbt/gIk+Ww?-q$nI1Y6 nC{<7;bNthvcZ0QԶນR: Ԏ9&`Ki$n;M GRqbj]KPTq4{5ݷł_,2V-`p45w-&C{ݶp>Aa u-sM+-c٭ΟXlQ/~Ns魡,`Qu9NF6ҧ븢zT.8el&hַi>h #}iNZch# 2E |@j AT I#{M belS@jX5QP?+kI- $XA55%$l4BTkCMR`@* H d&s9x:Uų.GdU[}^EN/;PAB *Ǫ7w&kBo!9Q+&H!.: Qyy :0wnaA"%$JJ2C% mǴ}S( l+\I2ՂR;l(%9[0Ԓs縶t;NA[R8gB&NT,KKVd1K'PxyzE,U} {j:mf+hMxPpa@_KIE˝Gȓ@hv>0y%pE('Ks[@Kj[ H;5"aԋޚݞڢz-ށv@Cc8,"鄢AOf8JsV!{޷phCirjD֍뻩8Qw%2>޵P_Բ$+SpRq;\()x5z}ɤDOP©qͤugZZ}@Զ,TEvQ8IXKC$t] ;eQIlW j,@@"4wJ1 HAh nO9!HDdGy zQ52& Q}/6[&[H{ ?(f?ȣ9a#42 S|r왚\fh\^[wk˘AP1 [dMw:ӤCw4X 'b&;A}fTG?&H;j0(&e l+^X0,큑sf5mƎkc4M?v\|+p]b,ߕFq3Vu01Iz LBok} .Dk6}t/W8uza!4G_AŶahV̹񂒴LidݨM6amy;O$Mq4ljiiyyڑX"%lM*N@mo/UJY Z69hH :QM2Z|~3FА/3<")q箋JZg@f̝X  >N oNޠS=BVGTHL~LxɽB{WP߿"G&5sv`VBFRTr48T$m:> kAY5b 9=wCUdB'|62xgA4oM x\]W@WZXRF%%;iԊb1KK.̉Puv}æ=; d+~#Ƴ}^Q54[m 9}3.x!m TP<³ER9R;ŻZt䀂c( 1wk]'R^džp$){,r%`XU l`E4ݒU͆kY-Ua#T٩ǣ{W ~ϴEs=Eaa w jWlNTlgIt'yzY({ [|ӂhncmlTAu ˫olp >711\7 #ebyȭR&k g4e/>L&@(j.=xގ;Jޚ@qa`蚅!n%{kr~{܊b K/RЂuRunt_|hi;Oط*߈-:]i^awT#sm>Lpi \Ðhl]8,? KxLk=@P#t]']GZ$")aҽR2@:]aُbJuNRVۍAp>6UCTs6N@P ČZ[;zVԉy? \IOz[m柪~t(x&@zͮ@nkݝĕ̷HBa,#w!POOx)E_/ߎD"U6ܷa;ZȄ!iaWxn|7^(Qfi _2h28ž!fPUElt] Znֽ<ʯC.7o|6-\m &l\8?4||kk2E1&dIzC(SItT) WzM-n|Ol [9FQd1$/iQ<“]{⻋JjW71 2"]5-&Yx<<"Bz Jxp9cK[HK?Tܗ{M4Arb=hoEdwŞkU M]F !ڄ1|WoRFt Pܿ,*Bgዑ#x>JЋb>(؁Fb:j !xRĪr "pLI9[ j F|wNCŢPx7뢬S8'1d -}^=IkC,y}0b6\?C[f5ksZd1>2N7uif/@*o$m߫aGj5&V6.]KXKwUӊsN&B!He`(^Wŗ:77,HoE7T.vQ&'^k6% փqyKI#ᖧè@ mZN%[XCpoJhG*LnSPHI6.1S'}ò=lnlNC@`_[='"c֕篡RgƤ^(3I4O,KW#po>,) %Q V}Bk {}.NΏ/N*fq:X?9M+O`s2˚JUD E 蒶:JO* Å/govK#&yk~] M[ w_h wb[gR=a{rFA57'$N mpҒRP_$V.3 dA22szpW6x`A)#nEG!`fۻҀA~3O#t GW6՝)d\o;.`|j29ܹ>3{bfфQbWW~;?hu3`caHj7V,@@"Ӫ+Gz g(^'7/|`7[[*ټ ( moѻEr^Hn w4/\Ԇ`Wޗ`}ElX.(+)ꏇV " DzG \@ 4l BXs;!cx͖W>YT_UEjB'|EU_:eoQK?Ifz +dU$M/"3}[!ňff#px Xyz-VzlIuq֡om8Q8MZشT{ϙ/ YOE+>VEJ=reTtod,&3̍Oa6xk'eYvhZ4 .nd=)%X q/# ,σVd Ro~_!C'HX+ڎ2 hD{V=0֞c:"d^c\WVNT6I'I˿I㿕Y*_WZD :m 3kz'Wf/JsuƟE~\jdn炻:a yb)YY % %GJO::!/۷Gv!82&PT3N0'ݜA|;g6O7k`rhsE,gOSOQN/y9tH3ֳR2;D> 4g r~租H CGB]+Dm^ ݧj{V!qJROx2sK1 ҷӖ\6&K&!m ʃ*{Mhz,5"XGPINVѷeuqftYWXOo<־-CoZgWQ{dQzAWg@,Tl89_'8h-u˟$Y<&2hԺCeu!O#͟p)[2 ֥냥w :.(ʰ:r+F &֭[v$G!|6|#sW@w}o7DcQMNZP^9͉GO{̍8& |WѽV ĠD8{4>5qE޺ s|+$޽ 6=)l^Fs6N:/h Mj >)gYDŢoOs|s kYCW)2= :y_TbVN–T\ow)EP@z4 gyJK&bq g"XME֚aNw0d^;ˡ+y@WZh {[c^^-ʄhrCT5l#jG2 ‰acgzeja5,uѱ4mǡe2vDG{I0ci-'3m,8d0hÍHs) :xmP$N m|)nɑ,} {T˗k nd;s5ĒDwAI0r$tXQ$"p.JkK&l_,xSeF#>Q$<]"1VT PxYec& "BQv> E|3̱y1#Ҏ ąWI&եNj%j;EG!,P`vf¿VROjm$Oi ?  ͤ{i]vMr o"&Žܚ-{Oe2 X3#業W\I یhh;hsmuß__ 5/HA86jA\MfdЭ mn~љԩ?ɫ]~y@UEvew)i N5$TȹֶIA??$lHGiU8n>f =t;VJw>vu˄w}0rxx)X"4E_O)tSlM;ʜ02EfO~u-;g9I;,1S%K ˥_m&p#8[O -鵆nxm\oj۲SCҧگ[)ŏ /j&3o.[fԌ܈d*醜?((գbQW1ѫV$r? Xi3uN Y^/%DȘ2$r$I(#3:<r'Pg!쉓ReI[_r)NR%#^ysUW3{qa4oBߠ[x.;ߖb ^ =޶յE1)enaطiPrKNƫ:z O̚5hi0b|fc0b YY0q;26=:)N ءjEz$5e#jfnGá%NRz0\`T̽T@2 N6<..g߾Q#gq0CF)BۼN0nAa`,TTwgy3"Ǐ3a`8L~}~JAۆy'a,/yL,=6N!͗Xj(G@kglAp^. ⒍M#܍TnV=:|tt6gF-&S)=EFw槙헋, t`+ҍ.b J5dJc xe`߳#Z'"1"Y~?,bNBD)Fb܇9 yBun0yTL E!]WdZ(`qA*M90v{.g8Kj;c%j)j.:VqNAVP!2ۍ0q4;VEߓ(8Υ=˜uvU-O {7 `DTG9%ɍ184?'{Ӟܦ)LϑX)">7?P8#8 aݤA:7_N IOIv["<B׋"W]]ady1QKaK({y+1 yή.X1jķxrƹ6lԵ^ /d=rJ=KvYOCw( =np'V<۬"v.}$&4Z ^!0Dgh]`)0zzWyG)mBrjY+jC뿯>n7FG8\i5AH+j_r,#9t$ffś ]gҞl ;0 XڒS)f0dp 4V&Q1?a*|;Q7p!l<*i LL wA _/Ӳ7wm!e鉧SZܭ}#RE'G>I*]pʐJQΕi O$Xw @@a/%/Ȇ4MX\:t #6[r+ jr6S Уi9Z ~H-J$3 wSp~`fxK1 ZAcD9m[S .QCa{SípҲt&6zxܤh O+!p*[1?0PAI3jv`3t:[`2ɧ\c<3_uaSQV'*Q/}Z)$)?-u,җws0&^3E݆u*uVdVeeUB0t+PK}lE]iFRT,ĒO$rzKseS4ЙPCPIԄ ?Tw T:L /0*9Zf]5@)4CLQ46״C딃JU*̧eFϏH s.'vK-v8FWhz3ajgNma5`e)%`kֆo*>jwW5)Q."<1.^]gaݞpRoy[Y/WLsX 7"HW1vt^`k|` 4VNS-)=dP)VBi${mc<%=gѡD]Wf(̓5O^ ]К>0Ilj [5U8 O( e9S%; Pi4+Xp+3ٓ-_OZFm+[Q0E٘]98pcO tWك׊|Ҏ8^Uam4?!' aF*nyx}6cl4\vȪvp>?G,Qs{Q;LԹ2hr~bX Wh1f3wy F!jҥu\'\=%hhy/ߦ5TlD OfunG~ܼǾO[&Ga}ĴH{ Ma,?1Ef:"~6_ tUCex:mQ*HiΔATUl ʵ:QRּtW+@I #˲ZRs5S{X>f?A~qJ\+NRQtШYc,x"*5ekg d/* uE|Ti.jvFBفiъ%YcR\ZMO/.>Vx}k)\zڞNFmw>Eyu%h76L̀|+PkyUUMqO4 RvLqb:u}ɰ*T81SuOa @&aee4'3Q8<Sd>N?7Z @ͬ88ERu!~w*^.oX~² :8ulSަB4O%ٴ&a~i+c)k5C1)P?*kϓQ>g,g 18z4KZ 0He/l4 ;?8.#ߢ#ݞ7 ܳ2sSR[1pY#l]q7l␘36#g)ƢFeIkg} O%R=&a+|"]^@aX]^ظpttܽ3" ^\QyMk(dDA]&(i(s * a5R02@1$g{4٘t?,gM[ C x7O~/ poR;uBaIww9iӥ1-BfpN G_Uj*J39Y2GJ'5 /W [י{dFE@RȑQ)l8+nb Tv9{볮l)LAe& P"e5϶ NsޖYs lIHUN}uD,_{Qr)hS?V΄d07V4lW% 7h9(t KQ!/o\}[Q„ -ӨlssQט)qL|Z /U`TX 1'Yfd ~~G=f4_]8vb;e^ӓϲ8Dm}2yz 3'mD㠞?R줐lдm(XӪNfTJ˖>i8UNf3|5nmTXa7}K9-&J ],F9y05wr%g]: 馱}3Așfϻ m}w6RN:WDf$Ga)oM /7/~#yuhțE΃CΆ;H#;`fĨݩn.TKtMłCZ5}9 'PdG^fv¬h#U.G /J ]jXge|a5yʞ"\BAa%FCՅg.(*WPYř@^ IOiAJ+zP[ڃ3qJ9b@:X:t9KU0o@6Xޔ̄;,ځH,lρ 07CXmD"! D:t b$a5UFa;oJ&&LJyzW˜Xxr/KxJa6qB bc|]2S Q!(S;Xp)g8@ 8wxM|~#,iVfSL7B~=ئWJ^)Ĺ7=o_%3nXOYev[S2Vw`_ ): {% $/ܗ.!VGWS$4f)%xN5F,M 8x\V e Mj)XHUL C9H S ~oMIyjYb#^tuOCu٣᥻)=}=k/ItSw;&k: zX\1a*hwCR>v|'8<)1}Dy '7_O%8G|]9 <`/+rT *TzYĢV[説\0IMqH?k)<%gN e8 N_aT^|%+pewR_&ؙQc DF5 GZxj/,l&MaKݔJ:F6D mkw}ۙ| pk&6&3uDI 17wqtKt]~I† sO BxRŹUA[1%l|چ&SR7xR~𵮊vH9oS*DarǴ<-oȩ812Y^(9Peê=h썳;q'td5 cUE*#Qg׊e[ʹO@ @~ت#84OpY[}hm\rZ.K&Y߂(!W|Gm+eoԽHQ̫#:[3an,%Յ3蝤_am]~Rc0gB=Ӷ|`n^J5y Abv,jti:yyV1 3<꼚B(u(q!2kKXN𣣺R]quWT=$%K鏖96a^8UA+9ͲdRtSlb+B}l,Tb:ZcYT<7c*YYBr7/3HVVHʗYl͊^ߝUnAc6 w,Q=ϑ H;z=S3޻QF`Ek K,g/ {V0R_ %^r$p\;oqcXpV80 7vt]>?@m?w!_"י6jLx#,%"zr)Vi~& v7M :8nX[ީ$KF!z,c5Lf]& v|!)'cCoC%~MK U^:hjL}C᥼X#90%/_b뷦t6D}RNCwj:)סZr2 . %1Ω&I1u2*wvmفVE5bil/&l(z_&$8A3-b 偫~F>,v$}7N̈́4u\:4jmlog߁@ m3wT$$@Ϫow, jј-$Y'uaURb6J'5ιksUŬ2A5yXaBusx)9+ڊy.wʸ8y4,v0ح I[gx2j x$ pkO7%7T.W1@${[pym>Mz= 7$WZF0fvdttXѼP ղ}Qb$Sid.qps4U؛: bYv [*ׂ$ "bq[ʞMJ}.jҭ,BJPn)3:']'u|=Ýod]b_-?{B~USe^,ݎ,LSzqp+0Xo"jx^[PdƜN:ah=njVmT-_*QҚCy|edf1:^[|;\qHb^}dڙMG˷EVހ~P?0;`Y_u,^3r`" SI=(34(]Gb\?晑o/wAP!Vy̦7R8i_dTHb'8{5IK5@mE;_?-=N/#W rߊ 8Wa[:&qk}\u**hi.ObVe毒A1WM0_0uB IѮǫf G1qVxtf cJaz͛?G pZ * {9y= |}?XW)}?$vxb sB9DZ>) zF.ߐ!L3B[q PNE\niV1:A( M"j@dM<[T0ոrL%fF!Clb+]%Y.vSnNhtjsЍ7Tx#s 9yÿOh+!y gS59DS*0·H5+t*|f7㛥w=RnP+(4v6|r a0.`j\D7B﫴JÙh[8.={$4UYX]׬[fL)=4[,=cpJvkjحYi3ZLf@SRaKo@Qؼ"q[/Py!vD5/Ɛw)ɺm78"?nYRޗ1Rj|P{Le͙j8\p'T $k(Vՠ6+yF$\HNm jGpd|`U 3 )d?Lk0ڞ?nyW.}nT0fUWPxYUf@+w V- '@d< ")YgݥkjlhU<*?q_^Q^LYe{{YCASISvg22UW!%@E,;4$[şI3)`\ԋȃl{az`,2ġ8jK`@6H_ay** -l&AՂ`4"Hrbkj7λ$e7HXCfl5Ī07LįF"bD{_\7ґeJ,f:ވx24iGwx}T=p_T`.=6 }$Ndz7]Oz5OԾ$7Imn܅.l @xQυVG|UaA~K4S ivH/@Y 2`b `wü;BkZ5'>jFLbNa^T=bEq &.=+2Mf5@xH۵0|cXʿv㜂xR;e勩Kۀ 3)_ J H\`B^v̸nDKjV-iA$&Hw~%6 + zbsb$q 6M"!tt!(yoULʹ:WIqJDCT3n.3G@SS|j|5*R灅_bm&i+!YAqEb؂X$FminsteZH\&6c`3 5][tDu[׽WAUq;3.j&sƶ;%;Ԩ5a_ +I]ZQH=oZe/C.9Z\$dj gz?m<bpbُ ;k} F#03m{M2_rmMe2-:,6x2AE&B_UlW<5JL:bCf"8y &BzXYPK8-H,[Cr(^z4Q&SJƘ+thF{Zc*jEpDԭv*4nJTO ʦ~!BWv%JA+&د+%쾟WY>%a 3U@(o{ܺ><1SJ@ v0Ã8] V=¾XiVlX%B$ZP6ہ#W 0p*CG" l1(t*6(SS~B[Q@mǮ]&:9q1ϠsDbLOo= "FbdBo̸4#a!˜?PM1Ӕx~~1LLZԴ}#^U6CJ9&`2x-%_irH&CBQL"inXxM|6(8Hד-2U]{]E\WӐc :SzITm=^+͋62?r58Mܴ o՝[2?8a^?ȈzNfs7M)J #$CG?pdx}vA TФ4/;:?F,Qh zL3[ }++҂jkJ;["F}آUTN+o#vEؽ#-4 T!w }w # fMPiZ`^pfU?^z~䂇RLT;.}y['1KN.Z0܍K[FT] idz{m?g2:3ugjD8gx+n0:DI\e3a f١dĞ= x׀YndsfvkuS/{3C# g&=mG޹NH]|3] S?T| {ZF;h:ˡI(LgLjȮ*0pY$"K55ꇹȍ 97-Еg4>*ĺ̍=ӏ}۶-lQ*7U&{g.P2t! dJoH^pm)tvmp A.y3m1V3~e:h1s~ERA5N?{tѮ@oi(bM6纀 ?n3Ҿl we$v6Hieji mz7nnR֊ K`JJn+JB>iM_Z[9If<ǙXwaʧ{~$t5Cjܖ+" *SF fŕKnCw:|^KAxcv~?);}O BD_^S$1tc} g->9JA7^5l.Ɏ c ň-ۿuWd\t AK )[54M<RXwe<Ĩ \VZFHvZn4*<Fl5N+IMYg \uV!9y/II1pUTrnqbxHڶ4Gm^ @އ(n(1{|#5a2ѫX>#ÔNӾL*kNd??0e\ ?`*KL+m^ iJ>GĄlxli"ѣ86CS((k̷o绖cfeub 6Kj6sSƻ wOeyp,ydRjݩXm3'?MώncamOZ(dÌ~-ҝ9@f{~. Xـ w7F})EXrMH3rʍmljh>YJ؞wQ9#V-R|`#jaGNh^Xhz!2Nǰ=?ib˃>!*WWP\NKnK)#ĝ`tEuV$qMrp61 :!: s.h:)9av.[۷R،ݔ .n7e&.F&Q}H' s+T7:Vv#Lt;Y--U=q9(Hb&ǖt5GˢxeOiEg7+6Ե%6.C2Wng_U{iiOE2Et{rbPN[Sޔ,A/yof$G>z}^̣J[eD#h/D9*| 8u} H)^D$hѧ; 3([W]Ծx|\eYB?&mLk&@OK h{Ď>K 5Ni0kPm^TJFܚ֚q)#j]$1Bҳ q?t7QjEC. lqQ{DLD-M[%y| 6q`I8 ĥY A9.xC*1t4<318pS>"lC*C_:$a_'Ւ93J9&VGEAN!X#9О*`3hO8|O.Z<+uҘ>j6K1Q[ٸu'`}? .B-+S*[ǘUK)z:oh %n?q_z48.arCrNebU"OZ)&Y F$HuW)l2h\HjF):HUG-=-Pj@ЪF쐮P(A]}(k9tt)N눟L0wmE_mJUlGX _԰%uF t<rnnIɄ|,r%4QI&hĄŤ4Ul%ImxXo 4^/)g޹ K`? #Gw[b7vbԶ:P&#F~Ҏ79cEDn׈/?$SRWŠ>:p6c+S߸Fz˙oM'xVЯ(USd_ϖ4f e8;NDT+]#b{G,&>j" Y3/L;y99͖0) ZmprRmнLVǻ`zoH7h.;Lc>[Mt\$ ^0LGhӂhi[¼f:-Mb lRcDiUSVzb BKch$p&Ԃ(yW/0kuP9o`F%- N""uQB֎%DM^G:BͬBޚsQf2+ir,|VI8=@1 vRkd8c!1޷ x=Gs)JCv+fgwu.C>3Aa2y^OyADCQC~; < ԋ7'm7ſCD7NHn O=,vh?oL'WcUR;*Hƻ%g=(JpegEa>2' ;T :!L:{YIf5y} { ӗV•Bh>^*C;׬搌t\TP"$ ۅ4 Ɨ[D &2`*.r? ڕ`P*oHTM:@, Vr[ߓ:i)g`LPY;tJbt5v4+dn"n ).*w?C9x?sSbm"6;!i$Gs  4OdF Rd9zSm%]w53bbM?k'cʮcܢnSUwVvdd։r+֒wyF>bR?_ ky#` +[N^d|B&yWL"Ov)֌l-˰|)f `gm)/$&{=s1WhVسhjzg̬Q;Jaez!<1EO\17D&4>0yP`4MFuwEH gՠC8#nNj}1vgֶhJj#yBl ϯ9t~Qw4yZу sxby>b}\`J[(D 5`=_A,FB"zK^Ѩv<z] vbGQBvZE ػ]\hU76$3gPOcFd9t`LdJO+efBEnr5h^iEynۈS1fBWG&zY\9 Ƌb#3EQG5w3 crX72LA+Jg|k)o_Evy>q<]%W(:PWCehb3e]%bW{mEfߜ6ZE>ɍ_O44_:l^l{j[7A3}_=!ҊoJ]¥'^4{݉UH@Dh~4Bkï?MI+SuɘjS9fCwba5Vvon6t5k=Ø1 w fix:?6 (^)H_x&yyn3QX~Qt &%Eeo[~sivd=^WoXE K=K[^OXWe6vv7r'* D,l|ZMдVep!רcD`I2c+ 6~dϦ~٭swKf^KىY/s$je}7{寷_rcmXFǵw%~;LB2;=^&S^pQ'm?6BVZhGqǹT|3>I7*Es yH.kP[nO/X8A,>Q1JԴEsk5_j]-7.ǢT#{B*:4L#9wĮx~ 9 3ekS`x::׎Μt7U6YzG؋WX 13LzZu']s?x; (sTۛ6ٙ /UDVm.-q٦Nӂ]?kY. J",͚"Is-‹,<QTD8kYaxy Qr<'"]9ꜝj:aW olE7 :.7ᢍAg<]Q `?+B4AwkvR:+F r1`A^zWMɹIi]-2\No^8_ A`f?Q gC}eb$P+{Lr!j4+(/$#lܯDQ4KCȁ. P{oOgaf#lʑK; ǃdiCOzwveٽʚU?vA¿~[E;LU3"U1 ŕvHp k!& f~?tW>G +ts`hwzDEt|xӦ@cE>-LfnDyEYz+_CL_"+%kw w/6}FaR$^qd6}${#T> KZ[[JvhD(W-g W*}h8P{|C1f&5Kkʱ-}IګXCv=j%2 u2DCԝ؄voIHQ S࿚mMrA/ –݃R2f#Sfdd-@vOR߿^8YAyU~l'4y_CMҲkKvgnCN[!M龣1 h=92~VD$tS4Ry>VOR@lK ȡwI}Ku6^/qP(_$QB )cjNeÒ.fՅ_ .`Jq48Ua6 $xCCP@8يwSP\|5Ĥ.Ssr٢ƙ,l:Xb~l#{ӈ)P2[ r-ң:9I~0i\Jqt^5 [sehC^671B] JuPwT|'Qjbp Y"rjV75lzgWnY ͙*}~<r]0 !(?-{a"> P kt:i4fzW@bEBy7! hZyXOVøBi NVJNv1U.|1K;nwv$ӗrCјZoR:'',UKWVui.DM8v }jBEO//Ra1iTE -"ku/܄O I0q' 0QF nRc/Re/LܧU%3 xmGX’R6fB IWOG+:=Vw6a3BL_r!]b'4-Kt dK OM/>N~ %&?)a1h e``vubA@V(Hz6I(]=nHjlbF> }:(y!38Co/O5=Oa 7E|$-֙u Z|SSba7ڬMRFT=I_Eo& G  "q-@.'u9j4-8N w)+2[ɛqy!lN%,J*GmN @M\#>џS&rb>~>mZ6JTM~`r8lp~]HjRFEÕjb鴖m]-{Esaa 1DO8C 7H ;7g(H5 -%Ś7=HtD5`_Қ 9UA457@a9ן!܀]V:Mb@Tun=a%czf2hU"׋`L;|d CسxgM\VZEb {M`Fu_mKMlYwB*y XC;̂.5*+m8)e'*[2/ ab+Gۓ φ[&5j`bNI+?ƈ^IDkͯ; Aȯ?1~'9JOZlȂ3Ir(*SU`5]37ӣ VIKꊍj[h^,ϣDo)ؼ k<\ m(>%e|*'22o: bCzB4HrB尃Z{dbzu:(p!$!Zf3NPȻn|by0C@G<{_K6C, 2x3Q䊛LJ˒j);f>7NRqi,+A"{b7 $`߃ë޴V Ԁ;'KϞ]YʌKDik\n1Ib0qP'#dzwmKbd*wѱ=˪[R ghHk{89ñh&V{'Zj#6툀HRAFKDJ4@(#OUzh?ƨGkVH 캱l ^=}5HR!99yv^BU72a_?7QxxvmtujTv.eVҫp Q˜drp2= R, @ Yd_(*1Mk/&ŅmKvf(ݍc\U'\ߍgR[/Z)5x<:f]:7# t@2(*NѻCVccTzi*X3#I# (>^U5¬d2U Zm*y]m|M<fW"$_ yEAsI0\Fr*ײy ߏ[䞓 _ff)Phj;E_縈k~(C$gWE\b}cX^nyL>au1ZDU3z asl93zTΖm.ISJXġ"S@␃ ܟN:O!`s$ii=}6V }+Q5Ft0j'aD wí`ՌnKbۙ#M!|QXlQ#]^잊*56NIv|2v9 ' 9. b `hU,iiCf8l@Bz? ͵>I,W"j Z?JH9^G@s _#\fEP-cL-rV|1I&!?%9~:zxymzuD Y2$<Le>Յ#N7L=O|M\=UKrt K.\pۂ"==8>OV"lY qZ.r@73YX0X k@Y6=حrTKӹ W7@"M$2+CYRw%??КQ^վL/J!7]FL65S0 "s* q:JׁR3NB8i2pE?קR,wҖlKwAs %qQFfV 8RwWr2q(_)XΘZ9$;x// S8ٓ@(ѵJE'd&`7'vcWZzcZ%,s(3V#lSssӦL~2~ -E=Qqt$X l)#S{'F޴i,IP҈`?976gf(5NiT0:? XϷmpшIgA}6$ŬeC8ٱ$^ "Ui &@fJQ8cYw"Vr$YeP-dORYU.Mb2IprɣOw1SPŁ Sl:Z`0nUp+7!Z} h,0W!dyldDoP07D<&KA!yS 7P*K =iѥ^-)ks-"6ju̅>d +-  S~v5lضѳ4.SY{ޫ h12+#ԯ]kޔM.+G bBE-TGYkUAQ-++T50gh'8|Щ۬ т堜?qr=+`as<m=FD*cl醗2/Ui۷mN/G^|F򧱑 |\IC6FYutoD2D]õ(Q &T!~ɀfn8ABi.祋:@'!|l]EeĐǣ>դ٘O6\au!vxۮ!⤩ =|H[d4+/sJc{Z}֩" AFkr Mv_+^Mg""i=7 s~Kbh\<6S_x'Ws $)@Au759P0pm)5>ʣT9"LM^J&®ImA_z(/y S&[^EJ<E<q[zʬςgZ TiȖo&sG\Y>(E2,;+a> fvWi_2˸y@UXڴȷp }oFI9»/p9'ڎq~VM7[ rx&48`HX=ifHOj6U,E7Y} YFm>8lHOh~MH %&LMa٧˷l'8KkT Z1-*4_c/+ bm WpKYO o .pPX<)Zgpǐ6ي녷aJ/I uJCa4)/1;AcB;gs-CKۍ:ܦ&A! @ZTϜf45Y<)Ʒ>f}=،/wyQ1@@ܿbUnIY 9i06a8)Z.]f70$(`ou@&z_pFNy2rB3I ςh<ʓѺ,nO _kOkjLzs5V57^0-3詢~Rs6p-֯p;*|؏#~NR[pp/tN͔RJjCՕB=35ނ2S-wh \<͋ ^G ^&ZQ/H@ ^Ot\#BS;mbŠ[:쏈ޗ豟pi[9tIL虈 滺bP!@cl8ء9P* }%.zx|{ʆk&T߫'L˃S>vJ6d Ag tkR9L?ZQ;c7ǢG83 Gw߾*.`-&g5q^/;yQ#˿oKng*n"!iug>o33 .UH"knƮ~y;H\;>H W QUpNOr|ԫ{h  LcNU98 =AGZZ l4 c'UaaiǗJae]gJxxR1$JycԙA|/i$d'r:&[~UO'o/BQ)˃cWpZmW$lkDƊ) Ph[l.gY# UdBW+gh3:&U4fw sFwԽE<ʝ_tO8_0̧-xr]/E=:!uCHR`ݯװYgSqD7)xO-4(ʬ;]'֯p-iM+'MKVW&*z;%q.`(aZ80ix4B\ T(2P^; Vuӏ\z%Ucm`a3<dt2+ \I}'ȋt㗛0|0yi-Uvjw4TF>~[Jr1BSř!K puC;sĎ ;ŶnY<1{,z^v9 ZBwޱ:h侕*YE2u^=z)YIԬ-8߸;mm3U "B6bʽ*B[V!A—'{51OM4ՄrrK!9ݫZb7 ͍KҰѐ7>]m&NnZ -x0 έ,B݁*ar;4A'׮Ȓo_iUq<7֙)^t6Yx{SN*k q^}Gך v^r,r|`ժk ~.w5{FĐi>\}2퉪 Gmy؞va<ȶeH.g:lۙ9Gw7{2LwQ!S_;{Q}7DE 9u)mֆshJt]`VMEC–ӿ6Ym4Xép^"װ?U22:H\[Wn Ж(./d7$䑜!2gn־*=F"?#<3[~=Iq: 9!4jn&ps%w%<OU\ID x ZRۄ<'j`)hd|}!S9֨Y,J!(6j,ޚ["YDs-xE6Et2rq{ `_6jv2%=`GzLnN6=yEh} }T2ߗ/)0+_>ɯ (<>0>^qPUM`(e5׺ huʉUJ C6w(\ )० y*8ӽE`k6ԗ 0Gw*Vbf0'lJkt:oV78 TMVׇ`sp)ZO#Z}Rp+6^@󒅷4c c~+=7Rk݁#qEIHI'"WKfQC saQƶd(M ;1+ En} 8bARdqMG_L0eg$w9!wc(h*j]Ll36!Ys?nKDPs%(rre uz[d{Ug.o^dsa4| HSlIAze98i{%Pu*m})\֢b(gXsFmqo^㽨Z<"2֚Lg8DWP%n \R㺉QǭI"A(v8vzLQ@ۦ*괗,KyJ-34!dfDjI6&uOVJדkjG!@y~0kWA)3-¾[qDwLPM٭[ J+v62jOTp3%$^Mw =Py:Ds0g(R0eNx-Iۆ'-_ˬcDڧn5䶫>ENgUU>lO.D*NQy6WH ӐyUHPNԨCr_ k&pi?L2m+`dtd!6 /_TL>0b8J%''h#ɻ{ʢC`< tvF5uEPĞðVcb%[=nnfl6T78cѩ'7"x%cwt -"=|պ$P-#/SBiil/5-@禹2uI*oJUEohС՟6~zL<.)*piȫԖ5a*(D& z>v)~ҝa"!/{ ipp#^S2)9#^ 43&3)oznesb;d_*=Ly/^C㾪o5̴p=P=<}M<߸]S,9,QX Q}>ƲG2&;G_ʀ'iI_9׌+b{yPKDߋ]8ԊѴT ^k̀xКmڡ^hq{|g< Cj>h[ՙܿʔ >۝1Rԃc&ߎ.B玻G @ih=Y3Uܼ\0Pr7*4ɨbFr.iI@\fyKu"$$_39,;s~_yŷE3ok^ǷQ(|~n xTVag.:t,nxĢ)1.un GdZ9PZ= / uܗ>xq|7Yn|lU:1zGFT׳1{WUEYydt#RQ0ID}]xHW=9^]o$F&;F>Q1Ln((uu=r#Wؠ-<Ċך`6+93Ӡ#OV<P ~.Z!ϣ`rrtucNT-6^K[ =I0xMlCg!:r- ,Rjd4ѕT\̞lEB1[w/rㆪa fFrmxHQ_'h4}Һ扰QH)ͥq aIfGn{*2sF@JNJ<5V́pMam/P~ܷ]VNLɴ'؆z0I>-cq(nz}N$~NxcOY~KW-jI4_+!tQA{N^OGYT7v*XƧqs|.ڇ S]kg6by@$blQty1%7K *rMa[`" .񔍆qsƸ$TGWػg ̓-mc',$f@zjrգ= /j!@YAk1 I |O rK^Ё0%:""6BٱE͞X]Q)&eoYf0,*=J×93d[U8 |+͑GXps Dout1!|ˑzwyOd6ɋ+b'y0e}(AXjO->Jj`=' Ѽ:qc?VO!Ұ,:{1|~ Φt  A˛m4 \ND*Qnj){mox[UhJP8/BHpw'@ٳr9X,p:z/*W!6]7!P!qoiVv胕UA7E6.]Jj-l6 *×{oo0cZC:Z#R3pcmt \r of"yxmfelJ9˼Q=P x/_rbmS!fφ;L _c͙R9KXjDW4y0vYS!j9erP:B|uꥩ+>}aֈb.g@> !1c,U7!VJ)I⹠6Zёt)b@lJT аDϝ3R'\Ymh:SL /$ h_(Χiȵ/v'AKr=igdHɨ/PT2tQKy`ʌ8cG=Xo= ݼS-7Be9Oz¹YUdԍdynS:gNR䦰Gy4mQ@:hkqZh#͝ATk Nk5 1]8'ͭ|\A6jSXQ`|-?(n~$&J$iU.hPE$mlCKJn1j%3AZւ{fPgQS$eWؘ(dHXݧ;ٮC 5BsA:˅Vu6 o AKtZZܺ)x/kwo:&SF̘pK4A퍁Cx{/>F0p.;x 77<,Jp>9y'*$] TޥoU>MI!h#i,\Ѡ)4u(.gږqC_P!iTIƂhyj 0i"+gd{S$1`+'gj]>\j><4ޗPJ*s:cQ(rb#@kPlQ^mXdUmxE֒P ᥑ0mg/qĄO[Bv?,6 08'ڵkDk'unՉ_+X RжwՑEWUҏ zjc!(LaW0zRB㯀 I^[XkRR/Q,_ ?V:C86I~G4L~rGLC"RΤzT?trS?eBx6y>{H`%>K2vb20/'!QKĚ<4@9*L{7o=vVO9}C=IrǹmT97ǓQ"^jsXS,%FkY:jf+IlwDZ` Os(1$~MґUѦM45YaSA+H9v[0}$JWsD&h'FghFo9 'MMKDžu@FBs\l,C9gI|U޺aI1|Dno&0O4@@B eμ&R> =WW5A(Y'HN8Qq7цP;zDgKބ]|D-УJ֨q= %Qo|Vy[nN)1s-ZjWIF5,Rۨ|8lx 4؈ 6 o,S̀#2I"]Lƚ-xUfEEY Uը@Mw*Iz5 WPtG,QJ^x9ی R76yS{ ADU" T""i}b/fr6Y0TA27i"f3HU9Kb7ڤWX4ݴtdQ*<1<fY.vb7\$y _ջ5!ǏpZzgbJ{9&{§'t d53t͸{LJ%9JV|c{WE˾ޖ$=K-ѠUS_,̻l@rNFMنzJe ~pא^mh6ۈ 3_k56`"*Ӛ:2D4|~xF9܎S6ˮcKw}8,VNӮ=TJY<^atLL_rzCbS 'ړ9ܾgC. ,𙼨 TASg.¼5S8 ¿fQ梾{QJ{Oi Hq\l߇5P!KL,%e)zO_ЬQdZbj®I.y9sni60j+ǖf@tc _&;52eU+}6bÂIpwac;%(z_vTt <3)iJ KH}ĉ>ִ>?ЮKM2./B!JrXf1㮢^0|̶j*ppKX%253o/{P<[,յz #I8{|!49[ʢҮ8,(p}{N Mq?62 Z6eT$IψN#/8Gn?:*hva9?5۱C?4ٓHUk.n #+R0>Zj Hp*P}@h3hT uΙNJ^Q >FƏ`19]xzS8B2Qse q%(g5UoHX۳P. Q8xk|RK{iwFO}yFB[u` 6ƞz$x=@g 0q$/ "DS,[.@?tQۚ&*R%F|ereTzTьFŶ_I-aݨ`\7`Ўv_?CugFI356~L-.nT`iY 2)cA}/ kP B^aُr2ZXNoR#=8u\h9`gA5֧MeUG1d m'ȶ8{Yi0O9U\1/>6mB&29{8'7'۬Soڂᔮ'yӎMK~< I&!._G=\ ր,s kZ(OȔ+1ɇaD>ܳ?wW[qfYgQ;PYeb1NM[-xkC0XFtQ Lpe+ީZ] t"Q$A,TG0)>uDRdؿ ] \>R^r5a`ʾ P[ %̺Ϭ@*H8*&Sۑtm69*xAO6'}I^^!R=nzrl-Zeb adߖ2d:2UCx|.Kna&2<B-q|bN(?'WkצP]e6g:U`m[I2w6S{3ӗ#Ƈ o,}1--( Qj t&v2 pNR !;vxϭI ({_P_ݵX$93rlhnu{|h R-khkk sVWR쇢޺ގ@3KsMlhjdd"XAľ;IpanՊ3 R{)]4<tDb?$Ѵ(A83ߧgc|qy[ڻAՊPѿ8"1lgt437Plyzb;HCU|dQ~Cƾ'q65UNV-5ssze$pQsMdpvFPm4j4='G ta2pp`_= e-igzHUA\Asi"AHk Ó)yK^H̓z?grwˍ.T }x:TE>η@jIoJQtP u3LQL Z֣# 33Nfb#4= ?o0r qph0wnC! !QS(7h>;Z{$\\msZǓ^D^Uw9i'Jȵj92@>B"ɗD N 0hO6ّC&؝t`zji|feA7W9lPzHw\+OZvr7KjuOW4Ixdee|dqʛ垔2n?`Q,c5NRf=+pCHD%{fJoj*U[XjD-`%@k/=U'"okm; )[V0dNCRɤr(s=s=g8`}W?:{p"2V dlxiE#pԂ@Jmѭt`oQnw J,CS/}gRP;\2,|6^f7 7x#\oѓ3P̣@O&"?8tDN@=bH)e2[2MEj8D"ODP$W*5u*RVmJ! a3X1q<5P;9 Ш?$t Dݻ=E*J2?ZJMnʷkWK'`>+3AX*jL5FCغW"wʼn9MAe\Ʈ;pCP*댵ʼqh6LKS8GVXqdYRMlgk 3Bxl/G%R&Dw p"AїSm4'(΢6(+04o{(d؞e^ lEˤ"wOY) ="4tڪ;T,`D`ǙVòэaKR]Ei6-jq3q#e4GU/+@ى cz>"f\FEsBzĚbF{]v⌺4٬L7#,jn; $beʽb`$(s/ dOwgkk_HߡL`#;|q?Uf͂SϒvyƙW^:[c gM{ئI2\*l^ b6 |LOMRUsqE>< `n'] YFMA0WE^>@fgp5,(N2cDiV16מ 趼gaq C94=Rx(3, ?+HZe71ia+"I"38 I'S!x |fˇ "Dc("22gL7H>97g9FM2&7cEm:/S?|* !DIT?H|Yq(~l~Kl*2,dH^>;,dyIF)0~0WQw'Jj<ӷ"F}9.,DBD15l#:(V'+̑ 0d X.ZO0a9>Ԓ16Ǣ'La82miݷ! lw.%aLc|FMh;O%4&f=tG]ﺾm*#!:H+ c ׮knü[feify /4Nznޢ9_]{K_ r<`}Td#E"`eQ?To&hsɿrAT9ngd~ʏr'ڈ>4oyA69/Y[̂|C iu`/L gȕK`-O""4Qeh[M{P$r>9[96* A BL>}j';P[84 R\=9!b2گ㨤hp%bް\+VB{'gi( &DTO3]iB5V&ېt[a%ś$s"#u+f #C" Q¾Y|Mx@kBu{Yw7Jρldw<_;W63]cg_Z1qTCBX3UdOB0?t"CK ՟,:Z/$|u[13E}S/Jjhs4SMpʉbl7< NMsfj" pmT@oҰGZn+}oKnl".)7$%oI t_Yn,Iq:'20ѼW]`> uO%+-u8ag `*IR!w\ Uy$P.Jߎحeta }6r0i#^ X+Yݘ$ȶQAW 2d0"Vҩ ׷ndDox/X#IE1Y˰ʐg޹j7ܤ3nI줥M8|E\?Tv zIK+PY*TI:e2 !9 Hx]MPΖh9 fU8cRѽ(1>;C-{%Q®c!pXI 6qFXB@Ӗ"MO\tN :hE'Ö3:L/)dv:^;Fp[Jr .=Hh|FO׻LRGݔD99%:.#߲ t;["0!TݔGD `dobh28mGUbIoVO[A}[Hݗ~ӛ@7,ޙUtoE[$>1prxɏHf\u0fNd3x"Ucu:l,7 *r]ד=gp0f\gm\\;{fi`gnf aatq!3HIħaZ/o&+ K=(PlWޛ$B;XW]: zIH 0L,h56OA"-cZUKBLjĻ}]jan Ot1ڶ31cb.l+粮s0P C=-^K:~]p4)#8C~`b1x`M*a/!Vֻ I •5k+ ś&S۞/|(z/5k8t횄xG&aJ KXxx`dΏ1Ud`A\680|{Q}vĺT ?,AzGSϟY]*3c;!˧}{p]~eOcRMuq̧GT_Xmgݩá{]Xϫ*b&Qj fk[P^F}0S`V.%.-;A[`MCyd@pىݟSƣ/[5,u~5}Iu+P@s7fnR7նj|g?*Pck$  0p57^GJm{hYpzoi)D@N⏹5 è+9]D ?(Lq'r޸irڌCwU.s]s.WEt+_!,FkmF=I5cZfl Nz9OI~+벞bkjpkJLx=J1V(&IΪ}dC||aaa|$ k)@o϶t^ZAۡ'qr1&@n:LV[vCVC443jt!Q ws;G=in: ξFjloΏ|s_ f Miko~2IΌr& X=F l?iLIji=,\ҷ)6B=pmP@}? aOC &Q~m+a7<8?0bKY)r 3zBzvV)˾[M;|μ!Ecg1O*}K_2\"ϒs4{D,|-Yl/g*w/}A)°>+jPᐑWDS/$gE>ekfA'QycmRa0xap {rK|0`˟xBn—V!Ƽ?5k7b%?*PǨ }d)gi)eVu0<֎w/Rm 5'l\hheݥ- lz9PtɌ b4j(zȖhe5;V[ _}vY?%QzKVz.iYŸ8&P3ZdQ|MB c<1wDVj. >cӾ >uK2AYnw=ڏv꫿ևԀ_Y(hV4鷥ӽV|9y  O%}s65ǥhTjd(aAÍxnb@,f.=;1d/\?+Woܴ yL< '_8 W|d?X/ h課윻/))'W@s&AMG+z29WqЖ\U0$|kT2ZKˡX(߱PP8$Z%@]^*l@͚{jQŔٙ7<|a}lٻ<-f=S!e%,-wZ58@EĢWOC \Z`bU3M\D6(ӋCԍFϺ}X:.Bn.6wύ^s /"ɦb/{J['ze=U7bu @{ueBq[Dp|ʅ8 AC+Zg@ŲyR˯.̂w1[Wʴ)]D9fu$D%(%Y<K/ I3):䢞1ݿwd*C lʁsZLC[WּPDn1z_:w-ն$Ő <;%Aj.~P^■~~vi 96vݱ͔N:ltR#K7G;_zͼb1ad붹7Wߏȝ ˶v{kYzϜYҸSrl BEzq-y xؑ}PM©Rr dc  ;mo ݤ  Yؿb8e(J0S)@ZL c]kj|Aä+i1u񓶆)xww7}76³3Rs*DZp/E ~[&qy MI_uܬpq Qz:2 hv2r\aB俹5%a`yugYNI zBVB7!&p@A~xɱh[..M`S07q=/AS7ڎz-WZJ ^Ȑx)/D68<,.Q1 l6@*CSҋ :鏴 %]Tj٥YPkd >ek^$kɟ6{ƣVD\}Dڣ{.!^NwZAEK:7iSYXpf9ɬ螆jLPEw#Ԑ /= :6?m ͖G$,?Λ/ݹ0Uug˲pi'̲_I_6Kw4ph07Ӊ$t2q \S N/Chp_6ζHR {Ꮲ|ƶub`\0d增V@r}2nJ8%JlMKю*~#3KZX:r]F먎GXs<%smSZU}Y|lL{QYc{B,~Xl `R raT6:C1q60]`eTU}V9 ErcJϏ^Z؈5!h=urjo'1h]!jc]M;TH ݍ#t 1E GΪ,m!r_[H"i7#6h}?7Th+@!n I*ŀ{5sB++\bӤھq$(x0M,Dr3JF=]yM>sT~/֡ː! <E@ljj;{/8سqv s] z:d5:dl+B!ek`ɇc1G?(^oQGFb$<,ˋ ̈&Ib=sgG2L̴ :;Ģ ' U2$1ֹǒDJnG8,Y,ٓ~g4QKzbN49jS_:# InOj?+".Y4Bx-oP+Ad&|Aq ~r[HE 0|7߿,|oxY uf 3vNĮ2`{e⟶քUvU@eޑ,)Qst뮀_5-<g -9gYH]0A*a9:ر.*&6ϙkh-;E%O mb`߷mIu΢V_>]ֵ?Nz}ak$3%=.3'1R2fk@e~NxmDoo<۲yLQ1™F1ʶ' đۭbT fwFy;L"#8]Cl sG{}]`VI;4Lxty_՘ȱ5YFQe9cA5 g,OU﬙ 3h@D˳@baM9p0aJ=8~fiY}%%{eJJ.`]^U02gi2x\LCb݌ad;Bo@C1RO qӑ8A+{ 3bB[$\_}Im ޵>gu=1LpTo 0T sxcmxjvu t#e;M vVӤ,aI%cV!ݫΞ|:a7JVZdm&jL>#FCJML{@r4BL+VHP:0ưt\u s lvkn++#-(X~NCR^_$v,)Y_ݓkv?zEI`1F9gUê ^/lb #yYֶ`V mV UMSAT  ;2k.tZ¶Sp}HnQ=.b@݂ WOo<=z =+z5~o?r}&wRg])k/#n&8^=(](c$y!"b"OH7fSM^!ʥ: t+~ %%5 yS@ 5ט AI9EPTT5=dm}q< U*J0ԇK7*Tm4$UC}^%fͺa.rIgkARl:.Foiax`vX˭'!{^ w"TN%^c:|z5iI _,ZP%O*! yͱHjdN §6~lC1Vg@=bv|yx}Qn4}[xL[NZRФz;-_k`ΩS?l6MJ),kU|eH [joG6Tub9,ۉ;F9KG$ 2 ~"K֯[rM$pB˸`H̥ slHN//$m?z)Me2$$PFv%`]9! KPgl ʬD?in$!B8Q5z5P#s?o 4Ki4b;'2ڽ DŽ^6j?i*~hrg Hf$ti7"X ,Fd\ީٓئiV{T1&Js7BDrҢj(3$"S*k =>$;EQ>CȰ+'f[teáYne* T~+вW<*PY(Jp#ɬOɨZOQy:I$㽡hU0/" >o*6/NSkCP;OVY1|3M+9gaflx&A3- F˃^릥WՓu9c.6 mUG0j@4/z!C VNOXD;$(TIg݀$V$#3ZxaTeq6ϴjy#U(gAw+t]1li .,`e:'Τx6,>!Jޮ8Vtz uG>%u% EKt,xɎ7N[jlGxj-wc,a1zwdlP֐ceFR]B]Vr5;*GZ7h]_(e1Q3mZ(DeϙܐLqȜK-%`eDŽߚ` H&֬<Gbi78끣"T@V)cx:0\r{*DET1 xF"ΐ&V}q|*h5t SY߮w[Q d]/+ޛ(/3͝^ի{zy[g"WC +&OYFm;ss)oJ V{pQ~R;{J21Ytz7ƕr稶4,)7e"{txY^tvʒ?B ,0 <ngVa0>ua!͋HVW%lAt1 I nU)KtzA A|2ɤ,g\VN 5 ()jIώNVCζʚq~YKzj Au:ej^UF5B{c7>h?XO.F:4  _@-yOV>jTm\5̘_Ӫ|wM036t3n2I+Ȣ®i32OlQy B+u,ORk)J42~@%1=Y~{q7BOE&s>'JAھAq[(XyS81?x*eVZk=VP&d?H%XA;<*IFyԼa#…FҫB 8Uꍓ"`2gRHۃP54oHʍmC1ĊeC<QMBT$+Cg ~ c`.^w'x4='XA|Zj2apw LS>2Z#)WIS?\o@=TcdRD jGIb %ܫܝ[\(g8r^PT3f{#hJސU]a9NƲ1*ub\")xa< f/s&p }%9.F%#?GڠM![cwW\KPd~Q7 EAy!1[m1 QG\8I]6H>>cO|prKw]2}No+ VGa[С.K;p >Pv&u&K޼x`"kK鹎v65{Dwwf)"!HnG Fn{BUMw\[]8mOaw{9rfr:CÙsntL{I @3<4 [du2(F8f[uA9`<.N&!H>#b@UV 0!snZ! zj? RΡQ.C7y,7v|%v Ԭ:eׇ3yhQNX}e1[,ʸ[L}1 T%/  VZ($5E(8$%%1+TNamcpqc3gkÆ b1*]pDZ+r'Hpw*}E(yD-\Ž(K_\mɲ!]Ϭh(8]|ܦ3Lyqy&(Hņͪ惘&˭ewA\7 :UiL&JAx[J0Ç1̹"F؋&%evHې3>٢sT;yWSo6K|/:OPϟK iq۵=N0Ϣc%fHlL9.boƓ?[*1 '<k?:ͱsPI CŽ_{btbEw+\v4(˕*B"Ac+\%Ndz9—tdPr5{*,w,h`Le= _Iʑ"`ۑiLem@@ ҽutPot6%Sm?:A vx]-^I0)M&d,pGb(j,GhrUpeZl{dd 0|.G~ɽ ֏.BMS?5@;6lR il2bAezՇJw,,^dޓ8|2Oi&\kəHǮL5$9R[Xя?>>رy#O DaMϧ4韃†Ǩz>ϫy%")dXɃB) uQ1T)븜ﭠ@cO֣5hdG=F9#Z ql5k]h ':2>?k9 m+S]Ç%/DdV*aFܬ-~#AfI2phBW?D 4~H4@~C10v(wV]T OcZ,y珀\&Nk؝G `#?nPآՏYIn|,3zm2$<:WyC60#d(M&};  cn5#and"YYecK/n3`l3r%i3^5yYL[3g'}"-Ot*|kmӯ pi/|-*ncH14$6ԢDTkN m7=uh?}."7g}= vu.6/L6 %hX~ip@4I>Kӵ`{ FZgTG~,/_ƠV tƪ|TpXo=ĔǓ ]Ǯ 9krpUy(-ƴ(r.e@a Úkq>e`T"]x$/E V WP 5uTd14X^Tf%#H:AKFJ_rs˘HѺX/FEs{6_oVd 3We:?W-UK8sG;t]P'Ж/mQJ.X h:CH[V-C.:iiPkks$II{5oU) ہhqS~ }]ÓCd9l  ėԻ  1jxe%R![{If %]?lӷuj?B`vx J! *9v&)ܨ1 s_ ̂*x$(|B|[zzPYLNua)];p CSay;=0< "N  m~P̺<" h7jTArz6ĝb9 &sFi A1Xt:ݱxaRv UGeC䖍+8~n&'x*uQ'w[bWݷ/C\RxEPphJp?@a5w!by3bf J,q^-:.)>ӷ&2lho G*_jujڐLﵙ$hN꣕c C$v-!8# sJ\,d􍗏g2&+P/(QtE26[[x(SbObiB/[KͅJ㖹ف#/(, Z'4FsBndfU;:3 (/K0 E8Lz yH"(b&l喠:,]D [`Ghc\y武< ӚHJI0(-7Q-N6CQ4yJX“:_3Mr(?Sj0}'y Q/N*bȦ,B`7 kz(0$H7փP^qVhdX~ݝ q2ű/v^%.i3a+Ř=U\[vPue7g'@9M[yR, ڰ_1H0!,xdy%`*m ݗdyn戕:fAaJewjP3{Eh|rNkQo Ǩa6* +  Mt]j9S7ꐁ&yn,iz&F4{9! Kѧ5Jsb=<[O%(0ydi}RPH uU~7CV LOS-rDž2f%s/c(:-TwtsnnNg2roݩ7JpƍD=쳣kYkfGBALpmСtMGRNU"qOq/ÿx8{DT#fnI-#q(Y'( -yR6 6ŔUsew }76cfz&B#eBzD)"h} SL4 `? 07߲`qY ;dM%l멣}-(p.^vl ]Ʒ:~-#ierV\H7ݭiݢU*▸0'\^OC~P2 |^n*^RLQԇ fZcDZ`T".1##`g _ YzyK1O-^aL|1ثf$+XWYo( sXRB϶Q}8ZbS$N4nys Lp+=-̨|8EYV~g 2W/׋F" bi j?ЧW~Wb?e"ⴲQnzNa*%goIZ"~.PJv]fb7[Dpੵ>kq`oi5f۴nZ N\BCXoN!3@ r3hSu[Tif޵rj+zk+߻ a1lfMڶKP+i,-eo'm%L'[]~G?SmV,PU쯈R S4/GGwjl$w\* ghZ<@Ol1~OQV _0X '| ,8qrdG`+^|GLGkLt% $Pt*]A1@Z.ʅҲ9FNJRZfZTm+9/h@HL^ bw VS1=I/>$̦I'Hq $Q꣺n8{hn3#FVt'8Rq4v7/PIB{2ݾm1MU $x+v{Ky3(E6"}1# G~b Muu13{0D+ ФIkc~)&aRۆN4l(dJ`s#=mR `^jX_dX'wf $o5caKFc^|L[򯟚eL]Ȧ]ӕi:?ކ`w)r9Azpǭ}ކҰШ< ;úS{t$4dUG) XFމ2 %(/2|!ljKqgz`6"X 0|׍/Xᤑ2ikpc x|ɰ䵔x"mT>M..CqahQXЦHnvfAH` A QYl0@6,vsurC|zo\8CZ=JEL9;rLҟZrffOD %>%@BCX\/x ٚ<`w$B_\;zIS0\d[GYr%4܇M<A݉J:n:c9paQ#_;|} {~qޮsS8?ϥq"PBw| $Ӄ!}pR?3ly]YEMU8?T+"$ =ʁgrabh:w D|&5ҒvIעU[Γ϶Td Mqsֈ!/:l!"KٲϨ*2 jJ_0ZK F$ASBjKg?e'3zE?Ԁ .2&I^ };Ya_1ՒwE+cFvas᭘:RCuJ}5*1'OԮMrv*? @Q|HqԮWGt(o+^o)!'rʴjl]jBsC6? DnqskHHJ_EhG>{(RFUt)هrHӁ5pL/[=FrI9Krt{;MN`(DƖCQof=,k?N6Rܠ>"HKyP)õ?# B܎iuU*Ash 5Dֱg5^QxL V* {"2 ^H{\ ?\7uE^϶+a 1犰kK+b2.-04BY=_L<6@U@p Dɔ]w8g3 5P8, _+A~ao9U KqЉ,%q}CP--RHf&gQ-IUjq0K6<ߛZxx_ m㹃{˰J]5آ42isݬlxA-b/w6Q52P+?E{Mڽd@-F4b0TP.ۃLŞ]D+_`"%-zEq{ە?XA#O.]Shr2q/}}Zl]e!RƳRݓOfҀ,^y28r"w1)|!NP2u0ِ~'%a/EKx֬{N[(BhDc?̠R 6ZS/Zh;Q4sHh5fYI (s5sSeBsjB ڶE G!x-4+p Rȗs̡xX|8M]Gp)S@ 5Xh8&w}sn3}F;5Y5Al=9/\2*.^;KdSbmyiӃЯ6Dqt wF4$|ϟY}rק # eY):Fq^-Cja!%'a[[DKA-KmwNٱTTpM 3帢/2P-Y<gXGפE[˜.SbәϖB۩Y@ZQYKjiy7$gP}V[ NJً-HZ0$AT{S-" ]ASʼnntLRjwČWq,d3X}C'_%{eL>BK8?hJ~q3Y+1nb-k}g44!!q4zva.<: $ݑR]sm>0HR3mq iwȻ0_2&5[USR8ӡF2:jm•9+) t$/(P@0{=3KY5g*Ր걖]gJg\zj{̳P'{p]|._h`PpDrYcrDDiQKMl~+ֆDv*m{E_%}s(Vo0:oY}R^X:ae@Dx$F0zښo_W 2f&o^RWMS L2x R kyHڨ#;Fީq9EF,,%p}^KACO[^u< i3 G'g^$w^j]HM"xj}kZzza/@^󸹶M[dyuPEGM=->&oL`IG%VBU%6hHG9i@NVJ^c pȀTq^y6C1z67)BCj8[Lmo }YIexJ5*ft%r C0.$V=z$ ׮Jek&*-l\#LhX: Fj"\諺5C][kC(T$_ ; Hͥ]:2X`t"#3^8*3:FrЖcE޺͝V14؁0HP\p1IFɝ(>~}q|#9.ZNJfF9dP c{rp!͖R:+4Nkڇ$ 9_QZ&HkO<'(b@Oi'(=/L6,#|.Gˤl!h,=2_!][WI*︵(A%8.`=^th,ѽU# @mke@TD>U V.6qVrWe zbCa}W<2@DDVn,qď'*SHqeŃ',0z\yQtO譚W/?S\fd J ϧ6KOkhͪt'8wO^{9姱gɵߖYG a^m@{k~$ݒ؏HAw۔}>6! Q ̰>[Ѯhfëe^I$shUj@Fҷ3ɖ)u"@2o*|"|^ 6 3Ŗ3D1 ҩV/rlK Omq 1֊IB ]Ah>RIdnGŸl?LS* egx^!ۏsoX[߷fk\eS ϤrsiX"  gGa8 Sep7/W>.87>҉a]Ks?ngj<,HK4{jN,<ޡ `qDn-VĥF71N C'#٥KJ ϦZ\S^Ub9!S 8ZH$O\YsTFrLlOP=dq\@ Ez98>~r/a #:uRdmC.I>+? ,UN7Qisif|sbaj+)61ʄH9a}ΦV%Q»ڿ:KRmej$i<> y*aJk6O jLlI6CVt,(ԶH×4XTa#C/mnkTUq}"BXk? AY_a ӈkHbd2q!pwό=8S=RsWm $d.*3$|o_Y3%dD6=ir?xU/) H^;׈6iNjT=p:6;_ =߫2:H7q}$*4<3 l?yn֫dk0_Gg])cA F]llL:d :!D  έ 8B۵ѣ߆Ff̘O\rlMb0iC>Bh8>go͓H7 ;QUS<߬9Rctt 3+}GIlZ/->u*Gܐlv͑#q37гbq:/aS=QH̽1xWL1:Yp{`hOK[;!lF"fi)lGjkoO69|E0gOG`e j\w^E恵Mƾ::fGΑQ}-x>3R~:aʒU|}-D28=9|H1ە3?M|dΛ~O0nIfv`jޙ;(I=v.tIk!*RkO{mYuV؆SRp\s{0 ZѰ_2p=GajB(6[;K2UB2 T_zQș4!4$1sHv2Jϒ ~V?_xfL$)hs} ?t ;t+sэ?&@BOֵgzy-dp7*h6'ҋhjmxPʦYU&dzcJJkIhbNWH0 P%X%hcJ?n{ס*F9i<] vƿ]Ωif懢ǩOѨuC^i 9j{'j\mlwTPP"W*#gh/S{5tqmgLu"(Z6M$ms\yJrʃ.UʗK㐲}kO\v-v2/mk5 ,F/l5$+ 3qܥR-M7fh_bl"&UTη7!+:B%סF`ivg$/Qq@]uQj1,=E!nql !"X*aۥ{qPQwyiÇҏA(8@~C@ZsrOZ`ܒQS(Uؤא3KDltCiH4Wr}{*2 }Z3U/#mz* 7q߂Ԕ7 S21wHbVm6G#nt_waFyad}?rP򆧝Ҡ(华W2EmDs?]bCVUGSK[љ4I[,RbV ]h cc(੺e_-^_@ 4L̤4{h>@/V(`uC=tTp)!>1w}t&u!-wY%qt府"&rU 1M99XqEV'),sK]6jS̕vm\lA#Yx+0$5e} >ȈlfJO NB< ;Us t")N>j+I.I(4M^_:db`)#`br,(7Rem- 'drXq& xs${grM=Z-Mw@"Asv6T?05zq0q%!dWc|]S=k/'?,HbJzkˠixl̅@bq?ԫQ Rele͗u#..w;2m4MHNIlʗhYX\c*RK |~԰W{c#IkI0m Ui~,uӌ+VtnSqIV# z~̧x3w#x$o+6|aCa M zY#A6 >m/&a(q_ɓOx1w$Bx<h.j( c(qwA=ƍQwzt"3 yY;?L!l]f$E|hWgKи 뤺tkɵG! }QEi?XOܶ͡[ևSPX*(SÕ~7\ӡ缥Kؐ/M+3 v1_gMj,&0IJzAݖb71h6/qSZu7ď l[V脗!ı 32<"Ѷ1󥞷?5%_#1j8G`BNBҖ<NۗLDq$v TkWYUUs9RIptSc$ 8^U +u{}ǦBEAbZ^LS ܨ^32AM%* q,F_ 0)WU&dGcZQN' ϙ,iN 8/Uo1cC\֜ze6ƏG`9;u[Sb.|imG $pUs>,ѕhc3Gw2!S,0-5U1`R}aծ-m%fn IM1ƴ;=ѷt Co݅Ñ_{ǫDa lؖC_)B 5˾(00By8Qw1D$=d!)+ef*;EB̞T&.)Xt][cȤOX¬?_R5q|PЇlB{uQ{.( O.h87AM9ZAN80TIY:-lE΍(-. 㒠++}ƮQ1 ]V;⹺G>VKm%$1mn-3/}i2+}~bTҰ3+Z曻G-U?ٌԔSw@A}U 1~Nw?@1eϦi_xڲbylE4+h_\ !Q6*?DAj[ceJY^ gLZ&[|VY,P@ڮYUtZ-(?%R]F8{BKBl~ jꋉ]Buԕk|Dֆ/4]҄+I`<@P2{UkٝDzt,ذh7 6zƳ5bmԽzlZ=>JY5ҩ {!~0Nf0:H]oiޣ5bm DmbiwReW ()S!W+U/)j^s=ьfCR/D~{kUzXPݎ/K[={CSʃ²3vrxӔ6M~_$'!ؑi› rl޷Yj~6ڛOKM Dq zul9eDZ]o0bL4A݌Q L>cH8H)xeV78ܺ3+>雸(9N̞ZTo`D0LuHBYB ,qv &ïi30uD8l[#,IČs'lCxd"šZpKcG` 0>I+z9C6KÄEZ2N# ە1/nL%7 %lez=[O /y:S0PuwgFNMwgiw=&ԉL7*3bCQp%I<ȟ*D5uAgJAzv쥠j86;"VY!ZmXIe*ԋ˶(6ˡ!lfr'Y] IrIL}*`!_bEfpF(\O$}S\`f3t$ܚ1d4Cuیgxj} &0XD.A'TJ@3&d9"84J, m%XK\.a90 VwFLp/;*Jg Y烥25 C_Eq }yTUfʷ?b(o(vC8d#➆&r~C\NYcSj=V  ZD; M&21)j4^J @\8ڻ?VFScKsjfְQS)4, =`\ȷgoN|wI1w'(2#{Gun' ]=qc Ezs?#-{Q^҈bM ًQFpPSHah?mstn6rԛDsSFd**R< vLq}( +R)kU -e֏Z|2 l(ztVSY>CKt9mչ”?ק^/ͼA"$rrp"Xl*a:_UC4)-iM_`+"a.Z~^S{]H \ea-a0~!C#1! jrv'|(ǁf!㺺4y*kd$&>&Pfx U?JOPc WT,'5,SRMXJ̡ly4CDvSY_h]`'^]= Ɏ#7Gӊq\Vh nXqcX{NAQHsXSZ#< 7tRIު=d[%!:> o ^!+;-0Ȼ+ >pEesdc§]J>˞3|5  ϻx&`l P4L?қ=*k@a Y% FLj]F8ƾ.C$6|ˡ͟@ cG:B GMo_zγVo̔f7 @EDKV6_r 폽&=ZŰ]9)V] t)!68)b A5z h ߇o`<l| /79(zglDSyKZ58PGT8X_`%?bͦk=EFz[ڬBZR VU56paH. k"zRh.d86W'^~-ĠȊ|WP#Py,~u~ mdܝJ3XT ݆5~GlTLӇ+)3nؒqiȶuؘ|Z쭖)?^Q`(\IΊװ'?bFٕ{ ٯUm*e-%~Q=.-xPbJk99=r.յgg%7!9;%HVq cۀgrzWɛIrg_sV7<{Q` OLUvɥ{p겆}XZVŞ&א־`ȥsPg&2b1S^GxkUsd86µK~EtnHkzl0ݏeB)aL1Pxup`Üڸq$'3ChS 0Ztgw._ ɻd4HeLPB]"@u&^Ӱ ,Kf8}VZ)Z *jJ.iXNYYA^w9 tt }S'c.C{*PB=]6QMC9IFQUyE (-kRn nVWɳbAP$~-$'ŎOEBB|Uu3`2V %L6ޅqvqb^AQ wEǸ9%*SdWkG7,Tyø\h.Y?*dz7d~?`LAv%FbA[8tՔ:nAcOQy.![scN=Gr&HRt6[,yhN5ܴ>EOuA iAh!A#+Xr(N[jUZ>kJz-|;**"7C ֊VgRdX^+*"|?-PHm0-Ƴ( "IW؉rڼQ b:J^8F.b-5̿X,^0,./zJ| R0oU7#Nj,WNׯK?ZD |ϟO.sB- JB./zht͋X39U(AMᄣy 9AFAJR8f' )t]p!Ow|.fMk5 NZ,[?8 El]ڍV:R f uPPˮ|B\15RLMDNjϟ2D텞Y׽],E:*|Fϸ YkheQalq<[, TLz)u\_Ch՛7zm]c.=ҚM] 5^M!:عbfL GUʯ!}d\\.8 EhpzlJBkUؕ,PQ~lqs ܐ ?o,] &=DJyI6hJ:4X</aO )ƛ9l?ޔN'"LnG꧜ot3"mS+rN:+FҡbvpJʟw m9mQw꣦?H\JMѳnky W$_(AKs' `L>a_`Ry䎰VL{S$9i"ZD+[2[ڈYH{1/KY.Oca%̩˭U0^9_UϗKJj? 7R7z%\f˟EJ9$l <"f}7<{wO#Ll(lkuQۡѦ -Y"sW*S+u)/Ʒ_s MeВ tAS $z/+Xv*Af.ck([0hcP'Kb\ȄW+ϯݑlؽWnUĻ3S3`- c(Zč;^V@>blOGFc `[3Rkә|RxcJz%U UhWʀ3d"a-QЕGth9 ubZSɱdc! q<.+KcV6_ XMQveEѳޤ|Pp/^# .KVA[ .(A 7_]vjn&x2g$_=lkY![>^Hu]0 Oq2.l % 2`Juf6rp[#iQJ@r DaQ`~615 Y/IǍnL̎U(aW5'.c"%B%]sCePmpA-nӬᙥ %bdJSg\9BeM5eзbZbj,Ph_DlxZS w$(<= ځ`k AXj%LS#ek-7& #11<(ֿ3UgLfKr/)A!zqcibV-ij9}]^'aܾl`=Fz13wj6lNfQWjҩB>eMRʇ;Qrs?t^NnSveyi::LYIe|"@˘Z4t\ȿ}Kϸ*=xfTJ~ۗ=R*;}k{.Bu{}W]9`3fGnܓ8+#]C̈, - a9/#Y V-g49E*%ax Lof~؍xIġXIy_#%JҋLݸ4Џ?W=xFYo\W`>Afb5#Cebʶ}ە#qMTZUZҙ >0̨%'gQx{|:Z:϶[ &$j^kӢ*UuQYZѱPACvSq[0itH m7%z,dÝ(\ڏWge})I.D)oY Sa'm&^ => 8٬wPކѹ}6!œ^÷!E`$ӇJ|'&R4AAFg?A6$%RۖF5 g0>UfX(fddԭO:084pΏoi8a`j9/L}f5h807>APt$A|;K W@ؚwď6Cn3)(MG|pScT7pIK=sy[uT]0

=#w|WrEڏ<宷6L.hS*/oMm i`56% Wv|LSbC^VQ.B(:i cFN8 mzTf>eN8|B${LL (u8 Q__ho)FvJ}H_ W[\0IcU/w0FbUUzeFrjcP<e5 S}tӎr1@D\~y*.-Ȳ( ^3z`I׉|%X( !qz|cHFp\)?$htn#,Jf֚#FG&q8np 0*Fo)7և#y+Np ,.h #sp_CD=2?Ecr)mߐ_˰.}Ahdt8o~wi5/Ip}Vșٲ_")dPkzGNvLe?9Mncgֶ,􊭕S鋴YYL}#@b##?ϯ?hz,-–H^Ӭoq ͛%&1UƙܱXFKk߁c ML7fzJ"Ko0ckfWN7v sliGmO#lm+ t ǹj1̺!g-kZ8X%i#(@D-A^()*}gME%Ui{Kr bm HoVq.1|V 4k=f;hUJ*[ `*d*ʈg˘1s>7a\aS)Fl:=grO 7V7.L6uj& WM!&vQ[gjpo2+#QDl"o-֪NS@?[2R?|hSzTc6eOT]5 څ6AI+d#*ݪFN.@Ǯ:A?%j儦ڂ(y½YXɩ-AoStFNꯇwP+BObhi/X tnRղ YC k O0->76R7UW2W3EWO 38P>ugQJ&]~}19y,)[YEu*Nv5p}Z%1b~,L JҿJOg⼅m|Eh@y@e*1}42>jq3wdb[QVNx"mɊZ//ixkEP@ɒ+]gTi</Qċs^.2_>tEMk^Ճ=(M_L33-$?|B5,K4_oDQSu6^jjA]e3V=bu >8rBl*D=Œ|ҭfq:@?nP%D{F9gҤ"!9iV; Ɓ!| J VH FSF6AqK٦2\dPC >g]#A-=S_r j 3d*h`p%]S.=F&|^s^rj\Y@-?0%V'z_П)nKBԏJDb4Q>1l(i35k/l5^*gY s35;"[ьT>O!.L'>/~9MQ#秵Mw(nru'hsuni Xc1؈] x,h/ T| [ܴ#S8ӕ|e׿Zn90+&[0]aqepHdws00$p#[˳.!m J,~%ZsB!c#rsg fA'A'¯ߪ{Q W8;[0MU;rꢋAA~xG!Xz%n'Ik{a f1E'x<(.yAQssf(;A'տxz0vC黶E]WМ5u@fI:5Ï~65tZrJn;)Mf~SVA@`gN AH3;rWRt?a4w>3u9M})5'b"\x)k´ĎFHJIZ7aHg.=?25f?qjMƾTs!YD64c^8)q/#,A>oպI})}˔W!mmJLT 󢫛%=N _ߙ S7[`t#.eA`)un ;Afp|RKpf2 !1[(1`E(-ZS4>lY>>ͪ4I"|Pn7I;-bl6ttbd]>R_{pUV{" BGHZ?E5|?d,)Eǯ Ț*]-ɉE%Q}ҙ$2:^KoI,*#uP"(tkxұmH1T>p LxFϵsb2ko߽ thĔ~gz0'uY$rVtP a(À](.SSq sT|Y!Fa6IzWC1K ˷XJ:NtXOISiS:ne7Oq-gr~G%4fDUbr]?M"Z =VQ%PWkRطS=捪jfiJ#6dȮ%))eקC'[[EPukrot/Sؙ7•gǍ)!ٸBoyΥQ])^M}]Dv (Gbίn4hݳ,WsBvb9A8ZJF ;u]V62gA6${.zm_n+ǯ%݀c7?Un8lg@*PBn ˌ7Tr9B:%+Y؞Ae{ B-٧KwV7 :G0Ƒrf&sB_sB`WAnʔxbXcKIk;4g Gl]5%jPuVHz<n,+ yU u Y4 /d3Z UsTKʙ oġBF?PÑbv&Jit{8 ;YuΕ4Z9ʜ౗VK36n}ZAR!wb%2dkGvtJ:gG՘턩6>kQ4lM1d>?΋?E )t1AwTd1vﺯ#&e͎e9VW̝= ǀ7_xɑQö3)C%N%M'NJ1[C;/H\[;zE'2*۱g=* =m@{,0"Ͽ<{SQX_2Zզ߉-Sy1~dΉi5~=(qUkf1R&4˵?K$b.crF" Bk+yzƥ\}9|*4ǬJ.mPV l,ؗƗ'E?b/"UZ8k}/bՈW0ZI*/E7CK<W45EXt6.X8d)0f8㍄2 +!"E0Ō<)vj44@!ݳtڣ.)OcF1XEmoبi0o8XmS[D'8B2S{ _|Ƴh2+ZCt]hhSvEW=e5&ʜw|ځg5kψ&l2NeD-yVXrNIԚ2+"m/u13}v!5' RP%ϻ|k+YX5FA*‹U9ϙZh3o uێc5&H|%3=erWD*1R楞tx}7l1BZ7: DG"S IyE-Yؑ*4>V9,DSҍSnV5ji1?zV}h78Pypsl&=穞7I# UPoK|è}cΓuX)d(`?p]Pnm ,'+4i~);,r$v ֩!A Uh9`i+孭=Xjo rvAr80;0b֑s ,VXF,=1 R2G5);xPLl6bY xx+f1Oc ohDp47b[kbWls{j3NWU+6j)VQH1U)7D֔V~;!crɲ>:.׌1->+Z.GЛC|WGl7}FQL9/6 Tq!P*L~|"@a*= 5 Di]% mUo~p{/ PķBhQX u|u[ o"`ȅ=j+鮍7pn9#Qʅ( F.J0-&jP[jY^%Ϊ#Ӽd[шYoJ=:E0E jgCuKT('w}`A/AWH}k J C~1b@l<ʤٱIp+D7i z/q+AxXD2 ݿPi܁^iGCl7;];Rځ]=umVUZrT|Xf>1&3%=3c+@bh rU@% HןyWcxT%Sw|,d5M:oK< 9JC P!)}w!^GOgN i}Z&zu+283?֦)Ə۵bh:}Oa['^;T`"ZKZjAHܽG##i"ՓfoVTÏU#6J.?V05JBSx {/_7Pvq eh YwD\@2des(o``?kKBVM}GY6줸9TNo zj @p_YCo"L-?I`6~y[CZ-4Q컍"K7M`><]ڿx{LEꝡ6 ə5 |2gPo8`宱lG;xt؁!+#l?k\P7"GB qĪ¶VO08ϹR-{!fe/x?% %<&p!"ARqdݴxq Ź #kA:3tB:Պn k{jC &}I/(r ;ƚ8!]M! 6zIo(ey Ef{9:4}"mVz+#=d3-*ȧl<Bzxd>q2bvdkmSlQb8 ELnKt>JנnF!í%-kpFO u9~%9f) abQJ7ʡl-p@"C=rNtUgg".']G7 eT++[Ŀh},_ -Asp&8ۂS˚o#px ".=KFވj(Gak {Yb(EĸtDsܹV όĨ մ:6OP/>mm5S Z2]@ب'zjv5bt-fBK:co&i?4נHl0܌bF6348  ^4(у R9w1]2˖G@RpZ_AV@(Rl݈dR1n$4L~ռ3}q_(UFeD bnr&<+hBEDVKDYoJ@c[ySgv5*'ŽڹbaNgak@(ly\e] L$b ˋd&a#y۶e$ġp,eu Di;px),~n}xnvKu#o8Gzoꁒ_&4i=Ǒ1352NR?c+[ 5~|s);o]t&r?O ju. )SO *sRi1E&3!rY7~뗜z6X=NmQ,ʶ{M,ӂ9n!5Sh:Ѓ5JeS<_`20&՚DA6ط`qL!P.P" \xXs=h@Wj0H1:^r]r0`Bcd7 yPّv|gY`!ɋʜ ֡?>PN6r뗜E:=94U@ 4RF* |'%LM~Sgsmv2u q.> >d53]P9T9ERP #,<B)BQwS 5JEoO()Oh.!iۜv 7 sqYX?s0_4W !@ Z/DM%0o M6GȻO4oZo>GHbo'[y|U,UҍC #צ*Лi|앖Sl%C7s[?Vt6:ӣ56ta fb*H8d;EH.ښ)YAО=nz֊Ƀj_ SOD"{m !*\[8*F%1!oo]gͩspAD.>c _nyQyvYϖo2tcJR(H],Q?ηZ(ҍ\)+f0E-SjB-.=, xV9ai]4mXW_C"ͱ)`zoN7 ,uR-ȝ#:8YJ+stmwl/ {>yo k(,x=+mֱy2ё;VjiӉ4?0Wʃ=}DģӰbE15 ]bzwxvg~ X6,hl)( 5lnCAfYu*x-QQBRwҥN8 Gʤ/kUveo>)MHqO(b: xOTJ!'E =l6UU"Ձ$T h=xNˣD)P2b}VTE_q }_8^GBfn:A>M,X$5`tLᘔ=9A(M厍ɧYu6Έ?6o;!Ʉ\jAW0I+%Phrm+ %jOx!p$&b* cӓ$OsTe2G˷f5ܼΛLˆGDphQ(;:1YC;Y)CK%I cgggG JtS[ialMw3_w.ua L̙ڠ;uW*"u-O.h>֔4T!P%7 *kI.k8_+9Ya7MPhkU@;bZX@NK..A6cZQOW}VX+13C9IR 4feO\) \s m)zU/@a'uo?n rw&DZDz%{ldX14'H>hoFOs W3rxgr c k[G3&T9q4Aq1w֦93)b A"O+}gi-t!Nf< %Ca1` qxOrrex 6rϛt x_ YF"7o7D 'MEf),zs_|T:vWxrV|S褦ޣբgÇǀ8sq8#azRZzPvG9|!nQR- |E@*Gg`Mdzy ;IBN{L(bR> p6L Ae̯X,|ӂm:6?r.5Hq}9*f4pJG0݂lŹxs7Vf c T<4kI=au|=Z{ˏ;ce "v1Ȍ8 g yqDŽy?/2RTiu1߀LI ܥj[}Bh==!OSijtG?H0WPu=({Rɴ(fƳXTq^IEB  5ˉ^*۔ o[hI@w-Y&9=P mH0[tj`ܳt .'+@rqȼ`Ǒ!EGs?ƼכUºznKq9|6֬$6:ygT~F]D9#DkEAY٧ |;3d|.Y/".IŒ w^G"fM}*_*fdK\&SsP`rA"$'$tD OwP-&*4IQܔ>s%E9N=H\AnW80R:f$5=DשRL:;bƋE9p0aR_3REVïpR#B_ 3-IrBeRhr9 Csx9a'܈67ƪs5ZLz6 fgҤ6[\kc H~q=|i Z [*2jbIB5.[[OI:x́=R8`o7O05]%mU;(9aSg mL7UN!bVPåW_[lTHG وS'}HXUo@(WL5v0a&AUvu@Lc&&OZg0aUqIH8pyR~ѵs5$i "֫5-qtC ώ?Di(Ia/`v2WߖPN1U֖T̶V5C&F/ㄦcŝ|Sϸ[.Qڟ`=׊wtˈ&bմ;P(9j(ck݉Lf"j>ZؘR]Y%?S/{+xbR.d@Tm.+ X@an;.` 'jITWfBds$P(u^azUQ~&k떛Vpp{|B|ؠ;KɉA8b>a.d">bixa+$!-#j-]ʴ))1p l$@*Ol­~8΀ϯK1X0BCW1pY(=IߨzTAᣆk*՛g"eNOOFCРkdX=L,x1>+3CF$5rCX42_-P G؉޴Guq޶D=o.ђP{܆74=e%{x.5^Z1`}q{JK␵;,]yV:^"L$ ;#6i,ӷ#Oe 8%&1a ]ݍ.Pߡ|ԛ#.&%u_ǸipKV}x,t=Q -)lx,ވ4m8kQ!S*Xjdv4s]_ɓ~yf`Q;9qKN4֪ |۴òrm?y-ʠL^4I`ϋ-œO/sRKb##+P YZaN_7ڋ>Duʜ_?, Q'"tДv>lp0=vsW~nďsVr{PQ]6R*8s3kTEN &* Wd\:=>ww!V:f8!W[67@^@dJ漄R*w(r[8]~pĂ5re!%U暡Ѥ[TIa|˞y&w{[m:by#u;$?iR5 8$EQڐQ80 R7*AA*ܬ y\*e{#uΞhڀ>fZhV^4 Y 0<}/PMD%yig!Oܩ;ƅ_f$Q݅FXRvt5ojW- |n߼3EC+x焐@0H6ҝY*"x}]KE NוԐxR߃jiZDqH 4YyI!# Θ3"NHd=͎!&nJƣvi8PnaL7g_0qCF`)thk[.AwX?P =a.C"rqb3p;' l; ¶h@r)24 8zaӥM:@ Mda]th)N܅ωm՞bU=X5Z!d"ZЕ:Uu- E'BDIqu&hT2+bM9am948m9GK N+G^4.Si ^r3pUmh7SM v=SsB 0KRV*׆4E2"ŝNOj+%OQ(F{r|Y 5-p[շm ]Gʤl&j)Pөgu(IGB7 . k\lXӏ7FKqw|4;\~2𱯸G޸[:4ULo޺J[;9I;42V&eǠT0%n,IK3ڀ,b!'Ù^ZUB<d&t+踠QT`h7qXr=t^wJYȦY1&ץxQ =NyzUv#ZȚ8WJfջ>sOci't6^xwǯZUR% yYVDqK{>M#Rk?Dm2];4l8" <m̩n76SJrĞ(ŵ7VJٍmLC/GzXTDV!/ ]&>I\jtnP^w`+,-~ ?[k7 ?q+NZ:wGRxhJڱxZ~3|$\6|D:q GO-$9~bx9z!A\Bu鍹r¥e]ARʹ[PT _7`BC*(Wle47fY>JBk6@J$։`IYg)CUɀKA+H|kWztrʐx" @';P>9Li,ً5W֛q(`X= |N/'JxzP[ϑ[29-6u1vu&q8.'h }WxiWi`X×w;C?=l <[.V-Mr|InK<܇zdcX&TjurvcwǶ-XQ |tnW!\_K_Z2u(T[:LƧAŽǀ&xGˏ# ?dW= t0γeЋGrx4DS|h?BT~_kU }VyIusa[bj/ qN\4^A5}ςMYQ.us Wi:yd<&RC&Q=HUT+ObjOf! &v-ZCWƝV?a/%`ң'@@Hj=WGH"_ m)XoGՀYywǣGO1< )@?Q_ol1ɳ\n0Pw cҼ>I [>- TDuv$_"0f!rtU;tT?mP3Ǹ[Q!eS%ǭ'#C۠|5x KMcJ+ ,O`3QmyiZ,{j]NI34GL`9y  MSoS"q*է7G9R#ac鲳ҺrOtNO瓯E. 'EztkԖ;=Vn%=˥04 JRqie(ӳ3Ks4[aA_f-f|-)٤qzX`cYTTq+J߉kh  K,""x㞁}/qNq1YwMN]GzJZĒ4x%;QށSodp E,8C W)5`"􇼢*k@Z7C7ᘆMfi4ZX8zk(̜‚`A0 i ꜧ[Ï&gan|+_DJ/KR_cD'zܑm?g;R'h-ɲuE-Ks@ ~='d *[9ގ$~eQ멏m&.8r>W zq SgHK$ A3R*S]}d}@ͻ~Y.nnBa\#^`iU3ḃeQ3%/{ȧn#iG/Ny&#FItҎ|0u]+GrV?_ƵZB">;[˂T)씵lL.BX<ЊSLO]pɨuew50IbsuѵM͊tIMi͝)+Rjm 唊\/I!z^CUzF͕39?ayEs\œpSH5;8ud aZwX )^Z=S\ +$ܖZӶ/Rv/`H|B45(4sfOb{[( |MqN4`@M8g\s8K!m{t ֍(OS(pIIgnfMN tVy5wKi7 ZG?y61E k%\(oޗShȡ{y3Oi:/-N+vjWRho'AP3ԴZVBCMF=H[(l(1*r T/ZL:xH0(Uۂk7(ĥc\C_eR1)fw{:t?+*;P5.1]`5==OLS܉) c0B;+BpY\?.J%_`QҸi^ܾx+BsD&l;9/ teUW6gIg٤̈́DC9 -54Y4C@Xx* (PL R쒸@C®V/mmR9좡΍"TM?wU-2]^z=wl.N50#m|ٜn[ q,DLh_]jOMC1&~ sxNy,i!'K[iR d@o5V!.9`"r{H{5Hi eO!51-E|^9P`:,O~!ȶ$W -TM Em ޓX#R-{O <M]1g_K9w8YF⡒EQ58ezSDfdCؚv=68/C 0x ca;埍}v3/X a[%5ԧݚrjrms%6̮[|Ϸ b P3#5 p+ Tc^L҃xA $w(I]`m~8c-ת#RyrJf̳*FCk=e $V7hʺp8eOF ].pdFDa'ځeCPk} ;Z~L I)bjkB,6Mu6ly3*ȁ2#1J ^* ܰba6J ["[ *։dt&)OOE.eP]!WXELtrCVgQ5BVL O.&M i .>JKmlgԂ,DB+Zupfo_+ݦi'aQIþŀNvm)|E[F8~d4]W QxY@W( )&s_C_? 5aja@zĿ:I҄gQeERj7 ~2S$3_loZ e+z$q}ң*@ BSk*u[M#|Wa>Yυʣ~Ƹshrܘ`W=0ˆL|jkӦf:e|:ZgMޏ2TbRntM^ݗw3fl9 2FHJn{\ z˳"^,+ a4nX p2KThN!_}/ƞ^3e@kf QqM_n)#f>Ā>ZiZY +ofh⊄]{/% <^ Wõ\\  dފ=%6ovP&+Md}(p0DCs[V5)KIB,_iCG^m/7RH PkI߭0UI|eKZxJ]J2ۋ6䇂 DM D ĖxBCXn]"'`, ރTB}y0>pJn(2׎E1?szas :#+n0FU)P>wE ax20Tޗ=׬7(/ԥɃ5r sm Ao'OpLnDbr%@ݡuL&&$ėt69qa(HgI4A;Ka<Ó*$U9OY[Q$b&s/dWw5䰥Ń$:}s>)bvIT8D}0;sEAOUNp4.l*=imj+ϓ$j]~cɧ3F Zb Q4QjԌY[DNiPS$QU]+^ > B5P+2/gdy|;w1hLf(2 4[ڳ)~xY%b^Fr֮q8|R#^.ti9 頥0\V JѪ()1FནiP?><{DH%6u&%*^i"K䎒F CɅarK "B>0q;< gT ޷Jt<=5} İ.e8";ި][ ׅ\xB?TȈߔ@#UZ<ᮙ?Jh󳳐m!OB*kÞ*vU.R $x\Ѐf|B[Wx^Dw wW%̢xsZBtlT0f3Y`%4cUO rrQY̙ſhP?m5Z.N֗{΢! -0DwQ3رo+0v\ jvpl~PW Cˉ$=T7D3?[6M*$ݴ'<Ӫ&)̔R $n̕tؐT{1Ӝ9y:DžlE2"tΩ% ǴZ3`Mϟ?ؐ\ K~Z*}xB\/ CUb/g//U9>3&/PuBbU4f'UY>t ϽR~zs} ^W16"a6׆! pb:?MAi4tGK=Ò| xR.g13t50[TIK1j^T6K.M],1=;iL-+u'7Mo<Ģw¹,&ebk琺+b4Lj돱vV r4 r]>]ˀ,Z◣Ro~㐆(VsWܔ(S*nzWg~έ{l+o̹%>zV~sA&ه X*4_ 2>{vpdpyuhYB;H("m)M/x9e \)m,^ D]m+{>PPQGe*(Y,to0Ncuӹ}0'T1w] FEmX2U3rdZ:|Kbv@0TX(ZfBm(M.^Didrp$ET;xkRt jf P[}usG#odPðڅU|7̃zrMq 8b,LY`33m⋰=OisW<q)­BzN!e*Z ɨ:QoV{/n= rQ^$ں=F g~Ez)Rze,>mJ(=DP Loh| = rq6! r(s˽ָDF1С@ƗwY'5,"ˣ!; `[BTRȧ{oh~FpakPPF.nLT2NX6JX1ҙ(y󳔵6=TAGHB;hAm(Dh q#G ˟2+TsO΃s &" ؚ"LiC "7]mSW["/?AE t҂DlaSU _OhRL.(FZ5YQ?v* Mb*Jp9/BSEMm,22JCLVebx^PEϞΡn{OdGvH=VqI#oHxJ]d(:r e_"ZA/u Έ\<4ƒ2KȖh4rtP̜5L;^Eq27S-$``mm F?)Q9Ve^, @'%XU¡FAyBH70N$G` S:iUWd۶'81+DM;^~d[+xԮ)b8ho'ḏIa6~7/HR=NPqUO)+yNJ֟WPzv&\T?ʔp$KPz'V-V ' Y TFD![ڱd<],0OvC0dt6 a ,n6iKyH}ӋM)U a x ܀0E*hE]Wph] JXC@.o8LEv X GQ5lw^}D}X'vwv ${@&Ⱦ@<}+\\K~;^Ğ5RLCed?\uU!Y-xPs1h?M)آ0,*hFeiC)bWF܆]'aD2Qٜ,iKr0a~kLWRIfxh Y~&ivx[f-{侼Tu Г jig;/@ >CmMhH+f*^5): X&U⟦M|&?e5Be눵zLzp9)m2p}K+ (\xjr0ȅ߄Ğ'ƻX>E r]hЂ+Uk1=xFB קǙa:Ls98/)})?GQ+?ʐڶzR2 20V:zje^Z}k/|U>&D rlkY2 X.{uP30~0螉(x`[~uZ}pE$9f+(^XOr]t›ys"=4> {1٢3)(fxrk&NKYŔp C[+Ň +< 9l8 ڥEcSE dl?+#q >Ux&%2qljwV梏}I+Fд?A-˩! x*_7~ioO:~FU0%&ٸ%d{ h|1w$/cnҵꎶ=8P=9n}O}qf}H;f-ZN|)ΉJc Dƙ"DKjk>, [,:,*KYlGX0b\]|hU I=x-׻^^5@!LV:rjbiI7WXR)^^wj2=l΄D7$qbʁxiù f쯾_!=șqm3kk8ۉ3wwTQ nN(L'F2jJ4qOKaa7]nq Ot]!71g5kЩw-] )^IىnJyhӜUXS.%!wnC:KA_] S2r#jgS埾-F )[VRܻe#0uMk2PXw cq'vqG(sx! X̦n E!t1E󳂁&3 |Mm']n?37#gˣɑőJTiYg,):4.m 53X*P),iy)3@ Rct2ZEgY( C[x Rݢy^K(9ܔ_v֛ܫRA,w"w>Eڢ7H&Z3ުq 1+|du}(vjgnf5KrX_HXVFF)v5#vK lM1RDoSngaYoa%"qAh}vz,C ǵ}/)3rSQid1l6V)8IcG}PXKQ jnM_ $ԋ';g¤XL'f婜f[᭛FwtwRi;=>^T3X#*}i3ʓ{TYKm5cAVʨ 7opy^j`:rgCPyÿ¯%OlvR5>pp.: ~8ҷba[(Azv‰Ìk1/le„urtf~va_]adL/ҹ⪸DbԅaʣW<%^>ؑhyOh#oW*&aޫI qMP. FWbÿ! Erэ,zy״]$7y-EH+Al03+G7UƿAB)g7$:88Cmsa₩\t"?SV@(IRY^mFxuP9pQq_o:*tbQ[D60;wRHLF,QM\bW-_V$?T:WgzIIe;p2ئ6;[q^[p=^%HKaZa~@rp_^ 39{Ϡhwb/Ekm0L7|j٨yoܞE6}sV` r d-apN%3x8e8p2!04} 4V{3.Ee\~\4:rឲ9 )l!ʜ|E"G]c5 )#u>JDr'Uق_m@) K$R4[MY`\9 U L CVVGƈUۊx`fT<ݺ`kIU#q]%T{ ׸xu|Lby="wЩT\; *2/4|`t)m@l+ZW!RLfuT [G +EqVGHXR1JwN?4^GnEIo™"ʩpE Q\=Z/&u DDO{Y w=([ H5҂qHٚ[5.UZ 'gld!ݘ~`SR QtmLWYiCQ1Dml2kWY~\|M ǰS +sL4D&y=ἀQ+خPݠ`SMy^qz#2ª@g FAJ{/ޅ0SYE(/֌NmU!wm1y4(;YohV0@>XMޥd 7" uY.Z(NrهWrgPO3:o^_=>'ޞfL,{tNN9BЧ%d8jdOg: |j{to-M9mĉP#vR_BX)c"j1&آ(uI[|IdT8YH8C"8T#_5ݰld'mAG{՛,S*79[l]g>:*W٩ټt+DhA/:v) aאy$h4ㆁ.m*"s)IOB7hK}^,[9RMrޮi,g%!AO/־!WBzܬLa<L~uFbfdZF18z*[PwƢLp=Nk-㛠/ЏDi[68㡢5差Շb.ΐc/Þ,(ejhyn1+jU B84(0[^B݌s6KO \c?>'\QG:*<;xlU̎&0BF2-'@@l1']X?@= Ս:J'+aGљgDMIAHG*/҆8fvl_ׯn7.H:&L.?`5= m+,| cH$wY'*paR/P0\%V`3͔}&a)^Re&!VG&ᓉIW.Xή8(Vh.}Q3d9JbE8.H%C9`6 _ 9HxPZI=ӧAFXm"s*IwloE 1@pg67k`d?.tsn7sfBcTGxE؋.uj~7H fȨ@mjW5.!R_ԚbnZF̿)K?fzs';]N K>>YwGsaX=8&"!E+9;W'oV4<6S-Fw:ɓ6u9brG-`=Auȸ9 Ms|E5pKi`c"t^&0 Hd 7)#_FC/+brSDMNhY8ɀ_9A6gԒM;M=0V|hZ^əs_V4k)aOt d TkL9Ljw{iT[0R gjP˅jS*Kr|˓IXH T|.0@ 4EO8Q@+_@l8_Y&l$W#vj?$GClr@^P9ҦDfU&,w}x'x$;`~б5Q9ȹSP/eLFgI.Yeùe=CY7ݢ; ̂y"9/-kn`~!I\,m CzUWrfX6:myJPxcK0"ru"_ĤP SSG`^.|cvLCD6P`Ca<'ibšnC*Q= ~֗N8uRt&@*a{&uUTA_kiYi^`.i]O.ZŒ@[ChN>mA]^sؚjyy ʄi">Jŗ +zቐ p/Li"ޘ1Iqd ̔DeT׾Nkf^cz\sE:uGYʕs*g @]]4 RpNV4- ;?аX2{T2C(jTGq\͢9w3Bc\$Lc7>r2^]w Qӣ% [m2.T!y_#$3ף}`躊2 %7Ly/=MCCgE[!o>kuʶ D9%8/0%|(,h|^}\D]uirh^B40 cgK,+Nx^I D͍ކR6Zi /iII5c.f6N:51УFQrIQ3J^1X4zӝ%fŸ8**@pgUL:cc(J2 ʩEiliF+|mO>hfX, rYQ&7%VujGZΊ`T_BB4yGU$Cgh\Foyך7߶ r 9Ao}? !Eb]x1PXBPҒx#m#"gFMF"Qp'yzAwW# DսȡoAT-sKN9qR`A?D (A˻SaE|$ӻ).K\m;I|5S|UZ TG-[ҲSa|d>|( =H^t+%xRB2R˥~޶uѩCp^.?d{/>~Nv#WMN4j#ՇAMu#38Qbcu/DH$iC|2A-́k/ywܞUzm;ܮ27bp_l( )NC঑阥bʂ1܏)TeIR^loq."ܳa_# )?2zn/y~\IO9͢0h~YWg#Pe7)v]=H~TADIZώοEE,R7uIoXv-cV 3}No؁@4=;i֡ѨYPp M}1nu._ܡJDX*Nr)D,Ƀ*"ˑ)?.ѩ!ƧdWB#ArQ(g䫎j0 7Jɶ"r@T2CV0wǥ2Ggg+B*җRNdpJzBP*}m@^BO 0o{Y^s"BilˋbJI@ۀbgf)ԷVqf/3O'id!N.Oj?+?{!껔n,A;B{9 . &"\|\7I}JhLU^]^9Cs MuC;Mz2[V1TmdP̧dRR/% IT-{6 ,d% /jW$}Ri$PӰ%6D\'RG6H{(L]Eqj0,[HN侹WOݜ߁7н+JKcarRYmP P7'ls=py͔zQoXLU]ۨԦHeuǑum@o(ksǒ-㦜/ũQ#o g_{蒛&*V/Ug}kCBX=כatE(P2 >-v)=_ɇf-D/(&K,_56^u14jw>0Lbt~haX|c?V xyAqy#=l@ +CFڇvj1_Xh&{ʴ~pDXE^p8 - K|D=r_h y ix̴9@*?:1ٲdzS6]gU4,3nfě8M z!痏wJ UH5DW"Izazi#F{79q4>X.52/*b:e-?h %9D"Y"x]UZeQm)mME{ NmÒ6OOߣDΖ/Iyo&%saEIJSꕒ ,O իi0v8k؅JłqHy԰|KY/D71`=7lшS)s! &0shw6b7P?,/ MBNXkX/rJ߮JX|H2k箾p7R.ܮ[ABZWB > =ɌPu9qodc29o[t}'|)e2:"o5l oKY5ce`(WH.qɬFYCDU#U^ɘy;%^—Gܥˎ.hgB?5]D]j 08T еSJV0YI,XwvsFį/rF{sCF5\ҵ"7]2*GE;N3x!ht&m\-rܡLS7P H㍈UO'xhQXF!tu%(}#WOQ(ejP􋣃5B?En20:y~67<֪4`뮔 VZGEQ-e=[/(3Jd{sB¯:cWyX$('B/6iPX׉uZEgLJnE(E֫5. NC+"K~sBmDҥcBuB3e\ FS!~Z 8eC ϴy9nh5-y# ǻ;BW#x$(x3vҁ>k.2 `Yp<' Һ!Fq2M"ۥbҘr6N("3M3 Li!6%jGtW) [W ӚZy$E2S8 DS/k+,W?ܝI`ɦ7ܭW[sN3{lz$BoUp ]a^|m~[F$f@:8ݸY rnE; 9zBa6(1mi.ZctoMdUvg&nH.uvj-=']?һ.*'~YN ^UeWwvݻ8|J:l?L]辽"EMoY5wJ̗l O'@Tx@4RhP>]D"@qŞ0yT`F7K C3N_,nos+y8 F汭M ոaw]xEteh8}5s"LV43;F4[vG#)mH`ӖakIJ7u݆$UZ_a@mf/s?uSӧĭtHQF`e4IHHr/y7m< bO3̶~uE^aҒ36ȄQ2މpP\l#p;e4&thЫZ. Hm7X_$4ՕD`jfwKe&"2ʡTĦrƏ`?iVtT~g `XW$-*J_F_qbS]\9g\\7Rr{v|~Hcm ed ùaDý{]orvEL*VbVkY˒H;AHXÎ0,3Ql^߶MIKd,sn 6G^UjMRpV"8cqiuHHDzdk};oQiIWT`r}H V2)<[f"W>?d@:DtJg^[:C1cXWF4"IܥTyM{&Wa Vq /wqlU{7=/6C8k='@/xk60 MG}\Lt@3u1s^#̛`HW3mIqדrqsZz• A?18 ޵>`f&r3])@4ݿWd|mΓu Bk4Cv$?iKߓm*"#g9M6a-ۉ:3?g&j$AU^15u@f@ܝCKKL_PIk3.>~^U9 9g+5#HOxH'ٙc3eAF}|Xw`2);E~hA uoG b/p֧N cumaq3~h[ZD<jC(#xZLm`>F?t raEͣAO~rczyG]=93,ʼ!C?ZP)>a`9n_#TVY.n:;pܠ:ϘۢxwU8rU"6> g2{Z(>֞.Hr&P:AE OiV[򤽀HMf[ϵnƐ~ߪALY%ޕSzf]K)tW+ 1ےaƁA$|}Ai&Is?c1x ̏m`2!﹚&X<i Ъ5S@|Ab8ڜTFz]2v]( C/)۩DhOFM[8I|إ=&j&^b'"yW-Ml$8P;&Ύ=W> {kW6&NvJf1,RwWo\ۂ3ΞK#]/wq<~I(Ćh_V^X.h6WM˸U14 XI:;z 9{T5v- uQ{gP=3<㲮<12~ɲk[wS1 QUqa$x~GZsQ"up p[24C\c1{^+>|+Ө ^BWU:m+x4g=͙/5drrNCM/"19UUÁf vHt8¬ FE#X[2v^<*wUFPt63DUI4 -2{< zT{vYf ~7|Q YnmE?4diZ$)3\?hqjwwqaXYA 4*F7ٗK"PGJ4۹NVt2Qe.ZU/0&Pf r0*5rGpރJ>tE3'eh"+̿{v> iB7&={t +KNw*2֟c֞7rvE??髏4 a bxliQM'mU6StCM++л-pGobY=96>cP^}|BW!f&j&c/H.9jͥuo)ٵe@7:Qe%}btiDcġ;nN]+ (gh5|p>"~4?b@;[a]98NՐ"n4EΑ3Wke3o|:Lq/ȣQ/nFn?mTM')Mn3Yg1WoTvPю LQ}笙OVd vfU`jVP2La+DMRe]|yTm}%uzl( ,@-ưPC#)v'8wu81BybBOu!uybM^?MhlO/` @;iib.ZLqKpC>B`;<`X>̘m!jsU2tP}˖wXio)>`Wb%ycc=TR(xU(nyQQ/ V—АQO3nA]EP ɠ݅N*Sx1~W|[**0 ^DC;^r-Qa$">/DkfuC#Ѹ|A|\u.0~ ,3Og8\;Lc},zuk/uqcvć "bdz ЬJC `עRBZ@cܮx8?td>6<$K?kY4po:MN^&!<+ʮ6(˹@ܲ759r9%i3xYgkp.H>|wiAw9g2558)|摯Ws>f _-~cO L*/TӡM4˵s4 @XwBj}>+IUӧeRAȊE4#BhbnV30c;WVC>.MEjϟ{wNr2mP$3ZLv _W5ǙfcLan,:>J-?LuF)І>X^Gb3U5H^[ ^ACo}>iiqoqo+~=]yݹ;ln'홦Z Y[VGYE|_8z_4fhBh#[ʿ"W yF"ዣ[;VevgrD!#0q6":(! j* T|O4F!!:YZMD߾VZt.ecbv8zGE7]|* cqB>=[G#t~zڧa X9.d~q(sHE.+,xC_}vҐG(BMFr Đ?d%7&4~T ^6B C0ɚB54cO][K)^wXƫΡYvd酉Wު'rS軈2Ey[R'6c:ooyzݵ_ ӥE_UKq470;&n̄r?aYf̤jvn*._ptP  wyN8C'}ObIeF_oǣ5,k ^>ix5MQ EB_-(frRw 5N-%x}/w!ž݅.^A[F]z I2?jCA1@P,RB}CuOlQM" %nԈO тS8Bxb(֮{神[jBMe])y}kȖ(xYdU\RwpBKd);+-P>h0f;/*D(aCmU{ yͦy: x裗:sկVQ\2E)G2Ӗ(c1 اH>s/ ´WeSH3 mjsGySht^;bnkb62 BҌ֋ϥVg"="' TlHiwۺ&U*Bs6pVml !̻Ɂ"Q=€<>~(H421O);s1CX@'u&j)4 :B0,\q@Mdt )7@wg '.Թǟ Sd'1߁XC\4 >6^92-z =f4wۜ%_fjeG4VmRX~GzDsr]G1N.bcUn;΃h c5an#}IȠg]Lj}1d2W7N S4*LZ1s" 4WA'4LGu7  X>p%S{,! %2tb7̡x3DLQq8ؚtjhRSWBv5oX}I%c):.J[.nk0 e;Mg/#]w$ZLdeAg@4 M㺾 Z PuRXeJ65S.? AK*s!)  PgB26═kSVf^J,~z{Km6 يBא38FƁb**;[FS,Y U+tX$7ǣ1\9;&[g1ض 7+Omb#__J`]q椒 hNM05r Ҧ5y_Nʟ.B/)Z$)i,Rdi)xg7? fs 9` XI Z*+ VuIM,g"PZ@'J} g;S n9YIj*UPկJ6=k7׷a "uvɧXNݿ`ӶJԋ R,.0@Ѱh~t/d>2I /Zuyʢqr&%lN@T0~Ĉb6/L$ۑd)%&2K`5*U2`ju2ro3n;C k)rj Jއ].GH( 4 Zz)u5հ!qP\؟or&ZB%\g}eIE\fvxf9n8}IE0S[6%:p%*3!SrA fdE 9of95߈T)2N_EQY*Zq&X[uuH$Y[ԟ~ B>G鄳s!J٦[_M0TV&HR 4:۳4pic̋v oXe5LkRөgBzwsdd>t5| .1Y=֕f$I{$IJbe1_ èE6g?fs,w֦c y ?? &G㳄Q\_22@P+˫aq8ȍk7-{3 (Rbk4~=-?7:BN8SomׅB UW ͈|F3w'^4tfnE2P._IR?'_\PD^c:(U aɟoj  nip}t_6~Ov!%kc4 "S 7\ޙC3O3e$@<wr 0?{B I$ 5%(jVIN6ͨ>^RzLTI%Jj;Dh!A#l5*'DR6.fǮmXY_3gkD\icMn s/cb2p㋚7 \wf%!;iaXhO#r*' :̼_>RsSgJi FpYK[I9zVc{ 2U68 p-(<|7 {N!D\$!ލ,Ht̤r8ƨ,imQ5ɜe.{gtzeYZΌxQWǔ(0r &IH-8ي)?╽FB~3%TV O+/)qcfh䏝QMzQW"FGsگ'A7:d%.(GxbFqQpۉ0瑮 `øhhh$a8Ҏ?xZDhR gMȸiZ#l'*!xᚮVI3Ge9Ӯ (Hv+{<3,pu`5pY =kuF# c+cɧ+ěC)2p,Ou#ʊqo!PZAVQ04p!^Ѷb(y+8,p%+ FI+\U9$e@E +(\NMS\wǚqyξa^R"%M/g{ %~ X[ғE܄8߃i!\#:3OPsFg=I~sPCah }B ?2C~,_c-qI PfGl.lE"`3n?TSZDiA*C[5NGfUPjSӐe89 ty~(m96~:pjTnVTy[PftuLDRW: @:4̟Uk dtBռA):T i.G#Kd/~Ѭ`,EBOTci} 96Y"?> 2r{+w8. Wc̐kb5q0wzϵum[rN0qi7<>a5iXUQsd&Dvi H1 \筢LfG}Օ'[gDF>S}bCp*"YE2Ֆ@桇Ho侀I ^Y_o-T Q'HϜ$AUd*98"w wGUyqAgk^ 7oZ(.d?$-۸pJ,|i @vwf7MT{muo։P#rCuէGء?bqS Vt6qz۪iJlAAA=G5QGgK=!q\:DR>\ۗ?0Ե/wr=W7$; #C˴pWxlã/f׽ vT{<=sݰSUxUˏ|樀ŵ FIGqm 7wrcdXFyT44=wroh͛(&W`6CIgQt&uvd?\ރߕTajtH`S-Dixa/ M.z϶:Jv.m~"Pb3W] *;reTV5 }T $5c/ODdÎֺHtQBTr.XVd 6ԱD2/Ywbqg)Ĵ쁇g+7 Ǔ]W>geo\p)vx 0}> t^Uiӂ4暽;o8H$ć:m.->_9֭S5P:Y>͜g5r}!_yuPkvPuSja w|M`wM?V+EYmf ̭SeF7F@~ ~^N{]|nw*1Sa⋶ F'c5Bcʞ)@8w~2b3_Bd RP YZk_4}40W̸UX?lw/6~,Xv[w)t1JRrN<'0iElAvk}bc7~K%T 'yE$ zv@GG˿g0QGx",N)GqǭQo4rx#ERBJ݃-(L>/ /'H#;YM&)Qh +9oT1TZq6ƌdd䳭(Bv(Bk\Vܡ&~,I/ƝQϿL?7 ;Z5ڂjrYU¬JRsNeVn87#5wtEdݠ i 2:͈LXX*E^ uC= _ohY@\;pZn|~vMxOt\N3}/%WW;JજTvTǤPb%nkL#Rl.MYf!dڎl5e-bȢ&u~WvG.YewGv\ݺY iX_HÍ6$MR}T#yH.Z"DfNjɲR(}T{՚2~V_ž`c$n?#]dicmCd'Pk Aʨ(v'4%L,{7YRT}?WFVjZLjt+U4 r=ӄٰb{j{ ^){wbdZ[P0sGXES.5F΃ON ]^ T/X1ŧsz~TzNi|,3T#GH4#d Sޙ:GpB rf8iqZd&3xy)f%?&VR|WB 3W_}ѯ7ؗ$^T*PtEhW?, x*7L2#nlBA|Bo/u{C2y!}0R{@a3Ϋ)T}KuTviEc8jX]¾K;,YsIc:Қ/!7T7Edw񮼋`fOqIpeKRvlbJݫY,H~R R9wb+VkyY@&LݐR_}SRR>f6XEW_CًI2DƞkLaBp( dD )Ƞ5ê?BeZ|K|Z O#A"@Y5a՛Y%9=zbjj./?IYQ9 cPz?Yy"=O67W1XE颢:Ʈb֮c6趨%"yUS.%Ϩu/Fr؂SFFz\dv+HW‹>8>MjQ60ot%B@::~n Ǥ3;٘w܃SdWTIW$^Gӟ̎`D3 uH=<>:J7XT*ƖY; - )ln$\k5IC\r#64b+NYU!$$ p.PM6(a#ʹߧwUC)isƗQw`Rn#.GbV#Wf~GM8<.\:$|Z/ц dZ /Bk"Ite1qE ߮ҲE{p$}SbhMUPMU]5]2d˥hs !Oi 4t.@<9_@VMf-bX$U]g}Iů %O*qk+@,Gvy$b˜>OJnO!HФTq\%;:3[ʮooM+O7iO¶dE{CO)l͂Ԋ;g}Yv6=S/r%(Wr’؍p @ݏtGϘ`** V!FA:Zb=)B}u%.dROb _uNCD!&ϑl;ڂĘaB[Y˯#?]*"0ijPK`@}s  + Hg2Xjkr ƘV\U=7Zvٿ[DlƠc"an1]錢%g_Ô5>iD}ogcLd>;ھ0mtJOGu"?S0Gc&9c0@G:~;mQȭ1"f,ہ ÏoӦ48Dؚveo!@CIJ 'fuWVQE:걘3=yf]T#[j=Z1xʂp1gL'6/!'bq"!]3/:2UOqb6 y_ s27[d։qb 25alf1?5g,QtهD)'E9EJ2{?bҌAlUbtHP{5楢S σN:hBO8c+7h#{Nz:|8ɨ=))ܪZ{T4~lzEv\ߔ1{e:ffթiI|5]?Z`B?_=kaȚCSѾȘrI3r_Kʽ"jnRkC;LvYG6{>ANhZJh*oZnayb)I9*^n7:>,SE:S :*^7ai4@>cPb}Sg_aO=*YãFPioUEg*[_vL6ޝl*dAf"iyraE hFkUbzTc bС9YD2wW].)eC~SCu#Ki,DlmQ;ǮN3Tտ4'ȯ^,?Vx RS5 @NԔqUAڊ ׆I 9n{Ubb,kXo*o:-\w%uFF~r_lo"PơA:5ELڹ%>kW~PqQv6+d7BK_e~2lz_ά^eb ӹiЫ* ӇB/ϳ<-f6>zL=)}$ k| jGtdv6ՄK/8bbS@AǝҎ"dg9z`;Y ?᩷rC?ڭTwVt[!!M 9ȮB^-NRm1ՌLV͘òhuv_EagԠ,3>6˚{-Ez)Y̘&a^tQjIRsDDžܾ] ~b>T@'i ˆ^J0܃|5xr[ bv7FHݟZ@p*IR4j3U4(Ok{ۅٝwXjcwF[uExp )OrqX{.AAY3;WE{cnԞ,̧&038f:U9- c)P?h|>w`VUK{@+XC\vhU,a1wŽs!D4[ 4RC)'x>?/b OdmQ~YR+f kh/,ά"& %{g(X*:xZ#{Ww`:U!ZNO [*NGx*=2UeJA_ B|_uj=0J#]llAto3XrXeb>hvl+ ; Z-kY\.eb ܝr0ftgIv'sv~5uGWWάy u y"p!ScƠJ DOڏ kos+D[s%[H*R#OpFK+ȩx`fRPtʸ ȵC, V/Q܊NRsrs8B+O8m̴q GcUGe\=B bT s!'@xjRGF7 -tֶG4Wˎ>u*KCBI#4LNHh$hz@FCSe)ט{DةxL+ f} 1@*3f}mOcHf< ]ҥ*yw N2u {j?g]EY^լ>wpPR%W`B:*4s^s5Az&J#j" 5rOD_I ,ik#,e^zİ\%N/5{P-G}%Bz*5͌Im䣀| ?7#ֶdrdEO:PށpLN+J wL/fv}N-l U>yǾttyڲ+Q Yйh?MY}f!{ JxDVT<|WG:WS2OJ.%&_&B B6`4[ Q@ZZ-HS;$[o*g=p>!+"ъDفG☐UƶK U9GzT.ީ$6ݦo?T$m=%-z !0"jԝEOOPe5r՝o{{-M竴 GwXxn_UB&nFglE \R@X ,\jMD=zPRHCF/_OJ,,"?mUȂ { +DYoi]4wNC tA8BsSV7ѿDº.*ђH&+V"H{~5,c+N%\T4Y1V/4%_ͥ<@x°RWe8<]rKiI^~!~/k'\>PT GBgQ!GM/=爛 O TMpDi6L^ (PQWb u#/Ux.9r2zj $Q*]rq!vS7E#ކXtE^DO 8REޢZt/˴^@ 7į9IiX|A 7{+gBX9Ր=&\!ݜSa HKuZr#}%wj:Wl!F҂*} !(SIVuv8`-GgQHbPCL@1gm|}7sd*[]ʡZhX{ ~by|fo-:.~W^5w 7G@*U5a!)#++*5!ߘ {Dx@`$1 tX.$x[Iމ ̆N[D?)"1LS;2`vjZLZx ذxt?tAEɌL2#5i2q°)&U Q'5^|sD1%U{n&a9_f-]퇢Cw$b a-B)7ٻ;릛 -=%$L"*l|S>Ff%k)c0 \ x/C6: 1H"bxGWÄOV)Eu}93G, dKEE-Y7ш8V1hJ ;O$  |vLԬ0aOU}_cucfÁG22ޱζ&hkReOO<$@z(Y'ԥkK_j*_?1hXKx^T1T뺬[mz)gOκv5B=kWߴ!vbh7mBƵq [:9%mf*uMRwr˳ G^IP h)Up7}l ߑH? ՘)my9\ƖZ0&}Ǫh,IeQ] xO7OEXʕD`l!AB0K˷:=_Udǩ8 5rw`Gqszqg1)UEn5ve2 %T4lPi? ٍ65y2vҬ/e].Rű R|BږCgD!Ӝ,[s't-leXvGa&Jw _+4Yhʼ6urrQSAq[vTV&sV4[wZ&|BiM$0sBerD9SIf ;g^K9e4-b[m_eF,.WG REKd0w zycR0l O$aqh$e+ էY|.xb1)'}nn@XQP"' sv,ek:yMcR曾Nй7arzZ30F&x!(}Uian AvgpܑNo/~x8|Z/{JD`sk@H&y/ryK yF)陥eie7VUjF|O܀/$ݶ~!wyCCKWP՟i{~S~gzQGs/s2-))$chmSLr!g(^7Վu:fvR p{809#NǤjMznpaj֎2MCl7:Žy*ǹr N*Tӭ'uǭnDi376*'/33IZx**Gwp򦿭jv0b]VxrM ^sIҦ1 菴jBOU^*:[P}ڨvqaٛ".l e %Pa9yb%?m "i6^W-x8^mAoR9#ԳN*Bu#@  g_b\$_Y2Y0d//_#-8bl3Y]Ol3L]KfI`Uhn )QGwVL <';f1V ZQY<Ĝ8݄^4ΐq9ڤSik6 ,R6E3/J^΍v#K,5%=G03tç,҃i:x}W$<ƅh l%D9sjX=g,Fv߳pԿVlR=KVwnbZ-MJbwPEdn ׈1k1l^vc!M"^y@=r]F Rq.zxp~72d!;\m,1:|d[=D(@Rm+ =O3ML򻮿ގH1qoTx&$c=sAIJgWg(.d*t5ŋcn-<#tZB0gJ DK dl̟Kғ2 wpo_RCeDzgC/i6'ѾK ۱a^cpȨZbbI.u sb𹆲/!v$ɋ *#`\Xg`]i=Z:=x.Y|xnmUGǮ7<Ԏy3f84$\,H&B./<$5kvh\jzm.H^M[=&÷@-Fn~jo|({<Aﵱ.KIPS;vHHz~R>k{7̦1]w%%˻;rkoJ] ]IHwzϷ3ϝc `qmb*8!dvur(?/nx&C*Xc,݃H:%nR@9xRRos7~1ڃqI'2]HvC}Uhg7srm[ Oo &O¥-}[! цWj ҺE(^wI}ٸ/?MEjQ%5%Gw>q`"[Dd:{j|i@OeN{q7/~JjvQsB/%@ PHW#r G` !Z0Wl3mtCm,IFt|ϽI1hW4Nw7!k,Ҹ8%LFYHf\ U_9JuT jN1_ _W_5:UՆQ@\Yn>Jc3;:5 q ^.m]w]$WB:KWj4Sp|#/nӷt,ő<^. xHTYsBئ]Mϭ!zv,1jFO UC(zoZX{^@w "/f1NVo*{#~8Hy)>1ɚ]?M"n%G}Xabl, Iœ<yJv=;pLemҔTV1y[fGdCL,8o%VKŠU<ɦ`KMZ&n)}UΝ:$,ݥOzkq0o )j\6R,kn熄jZk%y IޡN:{ļ@b k}\ STW$@9@)^7)XYyEna#]>s1`rbKl#LU ˓=2=EPALow?d<[rb<5XskԃGÕߦuLn DdK:MOLrܢιuP w#jՑykcV2JpT~M gnnes/{^NP="f= pQEKpdu|N b&s]΍T+UB} s)1hUڔ-]'R8'*aѸ  &YtH"w#qP)Xv! @udn~ө|Pt5vi=%*Th+JQBҪIsNhlބ8%z|,ЗK jqE=@2*KO'[\S-宅ѽTR[ ?wOz'u/a.Ml]+qZ}JK%Ia-BgewEK`i!i3WZuYD GV;;y riB !#$p9`PyJu.}(_e{qPAFea|G~QC-|]0ˈ( 쉒k:zjJ+Y9pwϘpX/Ժc62xFcDd_w7B2V^4;0Bnuti V\"ӶT}]!+SiW@H 3,͋MKYi-,6#ŰAȀa(cs#r9MW;ш]Lc=&I]*'$:gdOl+Se W4(TT:K#S44E@4*YjHc405*w8~BsB{[( n8|"Wg)\%FhU렊$zū,P*[)q6k^YPOۚ#>,*EOƄG5[ϗ87Wg':f."[Y{|5r x⥩݌>\Zp̍2=#mt\K$/.r ~@4F ezRO]˩ZVEm­EiC' G5^ZnX'f WQu o^#odx~e $X.t [{VlNdB1e%ב-ɂY693q>kK2k{Npɱ<%\HcJv}* ž}cDc{=ԝ*9,vt7b:>{<pft4}4a[)=tÆfm'>bK=E7D>L d6jAxHW0-naS#_tzkf!g !M-k\=$L=I hw=,{L+αB)/?~&.W?@% ɁI\цP?$L\Í\P&\vku lLDD/=ƆW8Pd>dO B'"nT%ofc u iQoxf d%*`)fr/xDx$3'~ ؛) 5VYFo/66CUKP@-ύN(J\BX_$M޾t0\X†828Н_C`*0A *u[%=. >϶)#^qY'sՏ7oꑲeltݠVҨҡ1iT̀ DҸAj1B?zui7aZc=I*_kw_gkj]S#/neGF8PWR9 Hʵq9 _3H>s&"Wo;@ )5HJp~fr,ӽw gѤߥ3~tp\O" \mGՃDNr;BV[ƳJԐf=Ns9ǻV?y~|㴫'jvxߜY>øYYH `I<9yPs50ߣ|uw]^B 5Ǜ7\;\@#pAf")_0zCz+`]7em;%\f܃`( F$~/ٿ>5kl JW^A 9/pV`f_7A=A. qic ,b'W=ELěv>I>bGwESI H$LO]"o{gDL+'0[ch>&p66h~D3՜) &oZ|3[s.n*H#iÒMo[iqŶEܦ ]n8E(x4&{cl7,js_spgu8>=Aެf.a(h$\ף\}>Ϋ=5hpv4AݛS~7#%7$X pN r} o{5ky70d~7aurzNn/jK޵2?B:J{1fnN0zUѷu*"cuoo&Gܤ'ӗ *f%Ѥo9P)fAZbG̓o._|nTk!5ކY0ƩOL,N@!` ylJքrF>o4J-[/1e$ʹNP2R"s5 8G_`}DŠ RIn@Y0*'Xt|SH+:dz]]ɨ؋:BX3*U^ *[?jߓaV Y9=4Kbf[0|c%:Gs !{EQ'\ցH?T/jX!H9)$t%|V}MM-ujZK4ճ t C>i?{?" AP6-fҦէRN7J J=̨)soR|`u*,8$?s-=\UoVj64M&\{0^@YJuTr}֜*N.(9pp#,QAH߶Oa=T}eDVQwgn?e`s"m(O ^k/@%V'ce1^7—G.J2IgH_>8р:j`d Mo4΋0Oe([ 4Nf nsV/Y%- *E(A{gu2PMbfTq<YKV q:s!1܋LDÄ-o ҘSޛV;φJM{wn-PH#P?3$86nג} @&C:(%xn 㚍ײz(EIQCȓ ilm "%m@*R7z>9f*YK7osL4e,[Qƴj6\C@:ujJ~I4!,;gS!GJjps~&R>n:RjZE:͸M C߿%6uK^,߸U{il-hj}zʻnPɧLoLz,Vc(;v7Q-y"qOf]I\?xN%g{8,Abҕ^O:bfX᝔ͬpN} S^@Q:Յzk!6؉Z9zeOwC1W9nfw\|3EJ7c}xKq? G͠9mism&}۝l. v]+NJ-͠gTqbfo];}@A`MBQ#ZlX(=7gd}?F_yMo$U?aeHUkp#u^R~|ڮ}` ^7tFz c2AXM壿fw΁/5%hж(;®cQ3slj=VĞt*ΌcmW",v<3 ^t70+gYrJ$?:r!ǠEߢ#*e߽jw2$täYi}xn".ӲaqN{;U?unua.o\ oZ*.۔~sڝ<Sc+?܄~e-3B ئRO񬴒ybt-g f4 >ԋTׯb2 .ᶧ(b7y^ke^_wi@Ӡf F*Hk@6^5B:UjX2-sNߒc_M,եíxh{4.wCe^'RW]ɏ7D0VdN~ \\+ n*`7 ~\v1ߒO9|]!cF2BN/e:!z5Z>ld ŹHS_J3gey\Rz4**׵".w">C#*|uddBV>؃#3 P |.@ 4fpQf xpDQӛ#pC~9rX6 m H8 iUٶ@J^daIvh)GWR6KɃH'E< =۸{ҭ UejǹE ʕy8Bq>,SeV`ы#χܠ@6C)]^-W/ܖi-.\ksNH݊7M5Ł 80G cHpAB~v}evr&kN 7CR僷L;IfZ., O(ecFv2aZ$>EFfZj{ WXdҥbT{L$ ŻclIJǾ321vS#fW q1RǤ) jZ:XhTpɞIL7em&wkw 䝍Xh mB(A1[ߑ>{#ica8Ow {ԫ#!oY%dvL9V ~dVh]im@YPwUH0T{fϙeOin/Kٝ$oGڰN;1SO}~竱jM9~CRL^87Qu /ZL+1gS~6G& P鸑].v8Or`6z@!ռOjvL(sZq.[.~FfQb3(M쁺Ztw흶 _9IăgNd};G|r:6Cٍ) ]dw Y>]px@0\㚵hXîY}&B\C;0aNN4y}V}pB"_^rYzx_֗L698p  fR?/d (kmR "zĦߙ^u @1-^+QB 09nZ$INc(Gz`:a(fl;~^@yYK:}(YJ5`jBz_סrvT >\e  K}$3gF\PTe!0&S_, o6ÙY w}WZb݊ȕ?pt&(N{gH<npإN1$W* erSE;` &*{W.E!(X9c: Xz/ԧ,T)$Whi?]axsQ4K9uT C_]& O '%VG.g$>Bh)t]D[lЪe,6hÜfC}ۃN5QǪ0s.6QiX $H?=9 h*wZB#z_&wiːs7Zm TSFd6u'~7W\,J koh}yϣ ֣{3Ϝ5X2]ȖHvpTDz?=4 x4/.ld$eC[~ŲlޣLB0nb1 Bl0}4 ͹b 0E_Ac yD+;U6%Dxt V~-5@{~J:,@N7j/j$}hF%ڨr)04af1_9Aylsٗt,ؚl57gG$ߛ=lZЛگ'X>}O P~<-`l gbhy4N{"t7{qYWk(-!"E0Xd`D7%bJ\A^s TzMlwc5+ cB^ Gr n^o ĂUjŚފ nsu7{#_+/#l^g69okF㯄](V@"G%59.9' ߼tH9e #p/2C1?nP[5qTd҈p6D-lG*Rb-H\t0YL]XA &Ug{ZGfn_~՗ei>ahpWdo]®fY\ck/ᒩu 责/ Wb W֐2}ak=;fmK&| ) H")ƢRQ{z @`n>5W Ul4g BN)_nYYJ׋y:攟 3gy|W,2gJl@ufYُ1sǂs &c//oTSPSN*Jl#a{zN‘ d)ruF$ |!V,9NziXn |m_(sb{+j52o`Yۣyq N@}2zNgS4oH׷H{ q! AR DRb*0ۻU# w0b•Q 2|`܌C\/RN*%x@C+4V,& K k 8CB:{"|ə,nƘ͵"3%|cҐA k!#[= /BwdÂ< __Jو|n`2u [\~Su18/y4<1*nķi'(ӆ4%Ah†yJ2G4_8J  1qg4aI/ͩս[XjC/a21!} x Rw։HHkMC8FgZ@<-i17q>a&ի78}NhK)SUgſˢTSܧ-*<}(Mh^͘fs%^}u3Syfk}읁p2ȵ0`6~'XGp!NF+Lc-m"2;]r  д?3?꣹]zNG2R` /zuLЋ:$]BpjƆeRLVBr)iUĤkr7MZ9ۺ=yQp o,WQ.(E*xYv?}lV=:U<͋ NSj=o%<3 Z!O[8IlGowˊrIwMcjC^ɍΪIhej".o^] 4uT)h@. I `fg 59>Ckm!:Ɓ,?0.L)w ;h=͍eSrWӨt*O21o%`'LВPRBS͒Gse  rT%^GJ>ʓg'hNj,^2dd!z_-1|${&Ȁd0z}ņ{`,=e?Bq{>i8 "$V*=4'+SyCc;Hn<iyT9Pyf!P/m&u; 0RV6Qѹm;*ބv@ h!z9*yP>H_sq8| 5'#*LJ50Ɗ #ІzF}͗>"ƶO )/q,lbCr̢NZMªwh:~&/d5#}Jc][w L7t6|E|ClϥU1I2b0FX~Ia?'1qK(zr/GS>Eg2p&8ˁk =;$H`e1f6\7=x^8=Aqv%./нCdCΨR5o)|6׫F)l'jK-gdeY/U8Ε(rRP`Vi2ʉ~/& Ġ{nUI6&}V-s*g:AU õ' )2za|Er1U2Puꗆ5XU^ AQZ11}#0Oix>N5—V '5*./ ?Z ZzCp"Fdc»DJ|A ԇGaFB&+,g{b#uÏ2U4S.ꊊg4NGVsWAd`̵oF_6&o`6~_CM̓ܢ1xˆ>#~'Y^F!fA~88T;qq4 \C-.@R ;3V!ȕ8'܍ ^ ~#*bnRxC>'^:dImR&JAU2r'ke@7a\^tێz *ñ8(, ާ^ }6 ]܍ 0"p6[,O#QUb§WFEоk)dJό=s" EŞ4b:QYn2L q+W-M\p[QL1cbR)4@$.+! [F3\ FAwb9pj[egCo<_|ghX98SpVp@(!B !f(M)KyzF!w'l~4@9'Uz^^=Vci(k.+ô;3X$(cX5A1æXȠ.,'׻9[x: Bc)xD+^Xÿ́|0)ixX2!PнGRBIJ G| k+zϘ&T4`6 9,Ax\PL.f-੿b\Wb3"/I=! Zq9y&jxB׭D MT$`+CII^o U0\pAZ6ܼxy6oRV6[V/M"~¿- ) ţyA~-T,)l cOc}gxf㱟@'Mn+MPcP_tn,|g;r]uT$п}/@|YN/ 'fxs5P*ĠڡyvEn:f> nގcpoGZy+a4~8@S>]Gџ $.$OxssrG MI[.4ī BTYNMZO_7rxD![@@:M7ZwDD$b)ڐID2 3ŒDi`A2Liѓu{I;WPPBFc %A8;X37VS#Q`y k(jҮw[,PX,@iԉŶf.|-@49^ZTgG>XA"k_9CZrXHB݈lW{l^MC [M#"@WgA%8*&H)Eq|!V|mag!ۡw'tɅ ͢-T6}|¦ FXahD;x7xS\_a5S0i(~I"ӞN(8#sz!claIN1Z6pxwߔ_pM^+C=!cU3sj1 ?*Iws@.8t $Y$]~)4LN`^}y>g9xD Id9e WVշenCc~?._lE6o}fWP7B[u!jK:eU.G>7'8 &bXi=?5sc|{;3, + T176+ElS'ݑ_c/oX@e6ecC.p(!o=:_:%x- /Pu3,KR9w0a{8IO|Jx~ 4ܵyu>Z÷Y|͎e0#4\:0YԿEmL? ۭB=3}Ga)FdӃ33QL3`.\w&Q>JaZ@*mA/!IqghU{*p@w;hOb,e|+qIMNd:͚u28ڳ5WyAwe]jAwsjʟ!]d}]۲eUW}*J6cW5M=TLna8cHI=*QZPZ2 }1CI"8J$户KK)udq5CEʂ0wsޱP _]wS-ɻWSeOKYq y!X}Ǫ_n$@\u!<7P5S' \s*c̦KIkonxe)V< )1~tLmI)f춵 V;Ƈ߿\+ϪX#!?(l69H]$p}$#Fo7n,3W=rx"$G-hHFb N@Ye91)& e'E~zCeM†<2C^ھ ә܇Mg3ēZۊ*S;BO!bԂ;LW@h@7s6[ ]8p@l0w|iRay>q8CނsE_o}Qv'%.hGyA?Y <MMz"ck؊fz)_H&F0a)Ć;23Ĩ[nv+ \`cHS#,#H`%lF1>i\pzӱvBl3餪Y,RJJ%Tj, gb2 [BUڽT9ΈD*[/mk]5m(t A/^ >֧A)Y/GO;+6JI0"tW) xB(#]:Qx)[tyeq9|>ْbϷ+qzKBh^5.a=&XTZ|ld!RFvXiu B`.~բ>ڌZBQpY ,2#V\?ڡ2h/?#Qb#f˓Ѓx6+ m n:*uhTg}#`ܰ?}O9'9b3uK^5Bw zB(^ڰL:C(nw :6uF~H#Z{0 #jE1L}e@yQ<[ ˜GNHLo 5i_Wg:.DJRM|*Ys%z9dDQnS&xOKy<2-if.h؏T}q%PBq2F-cMQTK~5 tXP:8oG2\lӦ#< jDSX5fVx#X+)Ӗ^ mIɝ 08|t`_w;%AIz".xvs:b-F$ŕQ2-Td(ڴ"' K^usoHԢ HEc ߷dLV ?/Lɝ2GW(lU!i@T]ECLєկK`p;ec5f>|RPam%,]`w}ٽٹ曨Z9`$ 8?X5ްVB㜘6ǡNZG< Eu?؍UEELte{I` qlNJdX7>ѭE?|z4z}vb Cյvwp>_mŗ3 d8w XWB=~GQF,zQؗk󋏪@72{,^M~@N`>eJBYT{03˂8b@| >nʳ}VX;Wv=}/sMPvd?ńg<|F{ okT3Г,Q(e9eM79?XOҫ4sɻ)D2yt"DYP<\ؽU;m6BJ#[aha .eˌp'&0og ȅ7Я|Tkq{Z?tI([jXɎ nYÙG466tھLwr=BvL:wv1ft(k jhM>Hp'a| o5޽6j}6, r'):-ʹ&o~nVXXTCA}.olC:@cFvw' #!7ɋ>v2žh(P pћK< f"H|Se~=2ͥiڎЯ*Y_ /gY­6Hp?3\QBnu^4HlӪ"N)ws5.}[JQKS+*3s$*Oq EXt3-qd)9p٦#}'1IkY3Dl\A"2iNi IKol M+`zڸ1ŽΙXA!mR@ve4f0}ձd{ C,@9S4@b2>==="7aK(*?B-a0,)@Kx8/d>>8؉?e mv;EMlv%Wf >[v0iEVR\vYNK$^/I}|1.[Pm[6~V Pթd]l=8 f$ JEC0u!rCCf2o|k +}%LFAމcULf 9᡹t>ǭP9mYGw@3#s'pήmQu=al{̇~*,n:+u3\eN:Hk͐[ȯ2̕WzC$.؇sHBǓEO!-$gt> ;D.hS$]S @ f~3ZFb44iXFUB %}C!KIte"Y8Rؐ҅sGxMh!G]ng{skL]V%lKwxBnL]7X)LҁdFrD6l_o/O/w VFi$w@k2%WJHa@JV.tz!_5(;Q&YHe@ZjMBB]W͸P¢4װ "<:σ0h3ۋɺg2듻-aC%/OyZNWCp;hy"&|=P|ᜈЈP-k&t尒Q];D1#)4ÛD'$*OWj )e<mDoV!t3lZDТEOd3>ݛK~~bj8cHg "}`?AlNZtPr+pj us.IQ.Gr`Y t+NS,-kw~fV%z)a LAMarrPVޡ¹@bJ͖۬ЛU8V@w;x?\frTLy0HhSCVPpoic+BTGP\on|ٰX#J>xߎn#U!鯿c~n#n^ R10|Tyo9?0WktCׁT9>i u̒Ӎ(m"704J ? j gn  .G7U?tp4kceLT 6nj[boitCC/~Y cDJ .B-yr`ܵ9#4T"Ƚ绮+*+{EsuNJ|9#(=5B|s/ybYK ՙsH!Z~v]E<^ɰD ,rLn\% K( ): R\XC։J0K gC)0ûj+]jsg+LZ-QC}LϏao!Cޠvpcr/߁®LKx]&dB-AȳE3OIvJ4B@Љji7L+%m8R6{\W<%UZ wIIьe[ySJkΛMyf|_9\=fG ;,7vR0xtS{نh QU<[9N j`d#VI=:Kz&`1Ġ >sA/Ye9 aVg+f?LRŜ5*O|$Wq ;ͲEެ+;0{###!Id0㹊"g]_ yeAK9ZòjroPu\z|BmO0$cmد K{ܮU5/E,H!A<}6J(V]~;@ n8HU;,SOY(~3ʍxs 6ruZy 8GYTT*yvxF)*jpA]&I3m-0>{VW횂P'] o;)iۑGZ(wu ~߅,(dQ[4Jz8 EP|6(ZOʖP gzáfdT<0+%)wW{Z9o_mt^(p}ucsAWEDZ'cpkc2*}@?S|!4~nǯmH9p]ȭ*볤S~px`-q%;,#w|l"FPF"ƃ% /۽iKme=38$+sx3 :BQ u~_Ltd,v`WY؆qQ+0)aۘdB][_ҵS Jp65ZL5eʜԑ߻Y I7/ DM^ǧwZ౒LJ )̍i׬7 B .DŴIہt0u*BS$\zgoLN4jE:!!-cym{Xs"$ǿg*s9[;rhYlAk5,d^k⛠N?t|)RSepķ,?Xݩ!=wGϥPSEդ,ɰCMG;nZk_,Eہk~AgqlPQ:l-F9Vvl}A!Zqpۛ%~J؀(fஐ nіX$}ܴڕ=tNQ=;Sk;gO˅hra'F"*eZ`t6.[[=dQ!Pj##닗JVCx#%\ie|1P@]n!IC<<:5qN(CZCJbt)hBk#Y=;4u6$+ O?Ћe0 T#K= hG؅\VD&Q1"v "'ĊTLj£Jx#jJ`SCE])"LlkXH-1!nn % Z2C*)g^i_UlQ]Cʅ jol.: &LZW; z>ƲO%3/>ܩCzrʖDOhs8LeY`E6fYˍ]zK]?rj gK>Ild{]ܯ4L5 gYj \}Mk ٺ6iyMF&8j10w/x톦,J{@i`3S9B)}AǨT@݄A6>M'DʒTY5-8,}B%y,ۯ 1Kj/k>%)^,JDf m!k"_"Wn t!bU +580eT^QbhQqckEtA97 UƷÄIU+9#@VA'bX# b8 b6rNJ+Rx,ի^HMOz\fNS(gb݌犔XO^[aQ|Y=勇X|N6="^\cs: z+-kt+@n --1L" ǯ_5z): 5[znjs49RE#јFs,!jiu&USt t,?&LCHb09lfu>>г# RݫnrKpQo&w;ݫs EMNG {NX=GsFщt P|ݫA?#Tҧ{ް CJRƆvuYH5#3x83LcEՄGP6B2lgr nu4 & %jsY6B2Sx lĞi)k'}ኼC2r@}D0ɲ>'bKhw@/VPT5~)zuH_&PA|Ŀi2%bW+5r02.$%$P y%>|{1AC/-BN:d=R,;A5KL]}F/ #m[X 2NB˜nAr`,ʳ.;޳Z^$Y+I0KR=MIw,H$q?qN'U)>XΛ'jlWQ۵fS}p8 7$NӿeMr%bҲ'JOb̍8L\4`JgUpy>gؖb0W=bZ'lQڣ°v="Nغmc W綏;XELQT85hD$6Q``w*?ݙ]T<6+ֿ!].7A*bTfWAނ4ȟ ^%2` {D,7eG3mVmvk_tBn&qrќP7Ǿk8 _+m0s W%QegOE썡HIRDMȳ,9V e^$JqF ƶhji$?U86F B  <r"K)mX3kޢ/1UP:};6f)w;9Ы8z+g%&v_h4m͠`֕,{ G^@uziIN5KFHW @v`M_B) hGͱ "Kh 3=6Mէ(sQm}`gX)q] V"k18$'=@0 Ȑbݫh9f# )bʀyU\m=lgSɩ=B-7&8_i|^DVg 0|ZmܸgO{Οҋ@D:h N3JԅK,r6)8̫fxԤN]x7ؤRkJV`}>cN2*9Z-P_2YA4.cb~wr &2M&ՐIrQ zj1cF)6T&xpn'q(hq[r]e7]~W5k |-jTLk'p' מw S3 kd#m9&W qgF(RcFq5(i ;9]9+ET|P~oOTkzPPۻc dN^׉SyCz*܃lW715M0h:wArgEfA3ܚ+XpjtNOZQm]Z<{ XH*mCEs4@ m)ifEԱ /ti8&c-# m]y{"ɌeYd;ZMҢId*Q{xT B+"DW IJfPC=3@M[4PK/SewQXW[Bh@pIn_(Lg_#E/7虧I@ .ĤH{D$߉nWqj-Mdj[,Su5URnztmjY VpMaHXkcC -X!V4 HG][iwʎJ)Ptl+Ԍ*͢dmA3M)rSf4#-&>m-:Wp'0M{ӥ6## :YtkIx- h!J?laMJ;9'c/k*^f)gLj@KoX4h, Bօʃ匧^!~fWZr.^HEe|By fc13حRS4ė m.k!ُ4K\v!n_QQRAm\#-2CnN{1/WuUȎB{G"̢R\3҉%378d| ʟnjвUÀ ^r tQeԾ10hS=܎"`2]J;tɐ/ X_ߧo*C5ߎ_ Ȑ Ya6s4UDP)Gutp$KӍڅpB S< DP+nLɫ3 GԜ\Qk-s3eqلh̶ * Hq:*3xEO-N"x#E-ƑV͐!3T2Ep@,2^ܝ4:ҡ*-¤zKOכZIAu9TCy+#9F}Rjmmv֘ V"~KS|hQ)ۤ[ʂEΰ،\Dib҉Z+[37&e3fz1KT [O6^2+#6aPvf=ZD$A-@N f}eFs@F$Y5V@vlгQXYE to~q!f]E\5߄7̑ޓ_Vl,]| , [Pu@CfQX] tT~:Ot*]ZnrOP2ù4^bXO zOIF!M* eR)_ɷsRYO?j2i35Lw[͉gO YF}wz V~(ʦ&Ӽjۧ&3OÔQ&oerVLu34S_٦]nT\HQ|v~@X()`%\Н&3QALh<TqF2F\$BW$o scG{nR@c#XmL)YowU%%:EPau>ѐPw6300 +|+h$-8-ʣ*s<Χ]C'=vo"ķ"JpW:⣨S`W2P2LDlip7N5' ]2jP\^ ۚu䖖lVcM>]]LY.5Ѫ$˔{4}`+T>I#Jh O8"`INr[Q޹]]M{W[0S/}m| <)%+.If#hbǼЇVV`}fow\|;˝;!H'eJ8s7iG*8A!B; ޟR%yFh>۹RtbCդeqT^ *3"7cTMb!H8m"5٣WvDOŧ$@D yh^(jIE\Ϡ9! UZL{\a(GФ%0R͹.Շ%?>]qKg ނ<‡VxD0q^]"/_:e֚_분x yЊ%w&kHt5bIKl5rv%7kUZWXr?x}HNV t-Q3SmiMO~!mұߙ¦&&5+wPl*4"C'GfݝsA3a+J{-c(wNҰg~gcLx7fhyR+c^>Ol?rKOIT.*Wƿlwzu.p1ݵK@cMe~{M" nk䟑*krcKWIQ6 Q *0fVQ}fH<4ف/ v_M2[y~ɋ[Ckqȃw n2='荻6j6li;Íq$h̋}5[Np7ruO kk!0h(fU6.̖ޒ"{ { 5Ti|ҿPz[R4CW>%Ͳ9D$Y8%dr>'Z,xP%CH_IڌS@n .d0_+yU/0fmc4%3U=*F}!^]xD~+)VRK"fN uz9=ɬN_0pRd;v&]KLD羔D:ԁkv~+AtPl[rbdcev#<*֟m(S3;Y`M5L)C =o$Xs[Xғȫ,VJ 0Ȩ-l_+_=s;bRkvV/IH˛WG2Mz`M-?Vz iQuytXG|`4[d.=]8s7pro#@ "ޙ-<an]4ms>ؼ:5} `c/c4TQOq&Ǒ!3d /{Yc15uEn{FG>K8TFvN@}XMPe>~wDDJ |(qc4ݎZIO"x;摸ntԚ "652^(+>8p9meYioQzZ@j^s1I $roHzPz^.5"w2geEh܅DaN*z_MH&sͯ|rU{[jU 0 trfb_)';? .ԙԲurqJ`u0!M;>*]`gJާw,3nVUE9Es#ICD>SW 9XrZYc\YzGbYL9A08\;X1Z`ţ%mrm*ы!l`եbZ2U0h at۔Ѿ¡(=l/>.6ӄ7.hi9vSU{#~GCҪOÎh'"p4$ "r."1 Y&?&.L}Ϊ8"Y(F7j3?CE `{ z 3*b}dX}ZknSkuq>XeP;e6`TMmtؗq|DtLh8Ч+[^2sv{^Fr0N[u^F;t(!g \+ +uz9wK7L53S p'A:՚jr+b3' 3 yZw0+Cv`K:NyR,) NrŐNWBB/MULakR-͸XS ք \6PkU:e!D&cAyiBK:.L/'"{sCM3BqдHxL3z XAa O~dX˟ƞx^$VIO,4YG!壗 *QaY4@~臣2 vx8ITAQ?7"!G7笶$"¯ۍ){4^ Цy6KJcGy ҏ|EG߈'Zنc]*@C j3=k4)$px)e/k*5HKVF*bJm~iEwX`:A$H~¥*bȢ{"J-@<'f yn{pKP-EVF}Bnk8qG@f'H -2= Tu8,OQ8W*c0YW-*݅H_R"o^5+$߉v%.Asid]qQ r2tVKO5jj}WQ4osbŁONҷ*b[8f_h̚GivBX&74, k8%bDLk ".Q|H%BVö7JGZCQm {f,KD*ɴ"s"W^K8w =J= &8jP@D.z1=[nW@GTrM/V6|ȴCuZ{-n)zW`oORODP@e#LONů,~O9/3jS>1ŋ-[fMpJQ'n9KKCy颛טA0*Mgn;sj?jV}pʹ n;T >c_aiϊK@ Pφpodc* !40 GiN:{l;qri,#ۓrIlgt4kW;]{Zl<8S }sSӜ~9^a`v ~a^3kg77p+"R_n8C<|yY86uIiNL %[=b"Ǵpp$#!Bv@ A=hKX $KGғEr2~Rǿɯ19(W "eLCZ4oYFxf#uVgKm*/:ݳ-Wc%xDwpV?#8u(*n7w5\pU_zJ*ƱsTԼT.5Nm9 yUga1J. D'*>+!hp1!_>iW7=ZMZ_# kKԻ)o&"x:UʻZ]BLM0<efԡ,=7QPCiGSZp?P O;8۬ոTt; |R@dC xU$ YږYZc5aq ᘖM:eC,j(r ~m`^/^,~X*wϷ9].z_ D0 z@RCoo9L"Fƴ'0U35C ne%BjC/'h=;+Z'l;F.B ۳*۷-t;yBG<-R$.rw=[SVxCEjjKׁ+T!Wp}Pz09/T~/8TY<y<DJůGE2`t =T`+53 Q_TG(1lL(c$m,Qn(}ހ #ZgݍfIE?lH[ Z]x'j,D5Cy32#yeO vN-ͽ)m3J퉷`@?8IJ\6BRe5XtN\UVDm9klIMBfA[hjut}eؕEsգ͌C뛒ӯ<.w{&& &]:Gfjh(><^M%ʈH)J9N!/PC؉֨뱔6 Eh"?Xa; :su$cx}4GGX?q#171"4F@wcA<FN4wYե-o3193mN0` ĤGl M39rK)5\i>v%^+! N,>rxn8z*a3mq#-8N,OMxNZ˻p=\.jX,e8Ƥs{r!ɼi5Ҡ:y`&܁VD]3*z}$b T,z@YccR'\Eq*&IԲ [>*O<.R*3 u(|AL׿F`DcW;Iʈ0/x3?S% O{"7p1ŵۨrD/mn9`x ;j62t,Cի7O`\#ZWMfԲx`= :dN '/2:9%Y1+ 8OEa Q }\f|a#MBൟDey oVS&iIuuБڟYtTY/NK|Z".=Ŀ`nk*' rmٗ W` 2;e#@ڹ.ѫsH '~ѡf cXS k>}h +CP;TRH߼5V *DY ,%I_Vbl f5R*xabl{ۥ @V[Z!(WBwKJ(<ɞ7> U mC@阥EGaQ"=ys|*Q>YS=!9:ް/"MniT$̘58&-cp/|&`w꛳E`LHJL&;$L18hv~bz~ñt@u9!aCUO~0|ǴbY|9.gM&$ ci,f&N`H"}D"&2g84+o;ߤiDq`ݹ+0'ּ x=Ր/!ȴ57jfxT/7.K1=xiA8>3NrVq+M*U\Ci gCJ ޱktG@uw$q"vp% JE+?"9ihk`T!#,SFNm 0W l'OfS~VĿ #!n1+.Z+ |TIEQCG Z?6̵[!I*0MqUG[9˭ө)cv"l Ήf9?7`/ tH#MBSpy OWv7)8U1lU\ VΥ1FԑF@D,7Z;B́{ Њ-Yk5 Px(ILjh>X%EeR;nLVdD7z;(-dr&FGPһc[a|잻jqQ*Gn/=t;ԅGyҬq#lK1aG(_[l͚>ZE[wF-?*!ctɏF#7NPѿ_2㱆8PB|!C/YJp^$ӹcfW%8??pd>I CG>%"g{h]575Ǒ|5{'S$#\';wר7mL9(OQQGӬ&MMǶd[o  ݵ+fMI.#a3V>5։}c;1eM⁏ҸBRvR&v)MvzIԺ,m|0F!ak/ўO]QeWi䲔=| Oy9 ة{ Y=̀<$}Shum-i0B@&$E(]NZNCrZ| WR%D_߯2}%ݣTuރM=ٓ:Lqg0xv X|o%EV=٘D菙k3Ceǫ-Jˡje$D- F=G_Q >,5;XjB,*kte=9ъUO 40cs(UV1n9(;lyݨqf;?E@.qC%9ۜ15b=*bkwyteE9n&g .Khr$M'{bPځNTV۬:'rv!Zs`kҸ&'=[:_y~=Fl\U]Zq[20\q`āC9ihJ|/m!:"8CJ Z^b@F ]j8IDNv7HcղQ]q̢w( &߼;)r{޹jXR9ݯ$yiU ]xhca1{ޫiy1XBQ\P6<Ʌ*g_S.}dLUrf[RF$TOlkh@3[( '?oAO8zY `7C V'*WkMM62A,(4 P8GgZW(%B }@={DpcuT]X5hsnlr~\t{Q- =`%-dVӱC5+隝s#}^Z"52Rg!8LMMIuEFnog4h"DD- HR~PMN);VZtb;/Bӵh(UgH1n؃V¬69:vSĹRnFbR0$JJ+Q9![gjQe9W]MDH8K/ESF;QZMHĿ.rdʭFԾ{ZLTghw#͈>jgơnLP@+2X0Y_fn4>p/K& n >@ݸ+9Е2|\|MOw/F %boRD3KkJy`2C@ElV yN1hs)-i+*Kw ʗu%6D::pT)oBC8Y$E~NƊjTdz6ci>Ϋڌ ډf&qQ0 ^O0N1f*h9j" 3msu9`v0)FۤЍ!OL0˗RkWƈAm>ʯkCGB>Bհ1z k[zGtTn:Ic"/&Í>X0Ӡd u&8z LZmzKQѯ)̡-;r$${A;N4EQySJqvZTT72139*Nl{A)c|g3MԗT1}br4꺖嘁D`i2skeC Qg& )-…+j _kEKV$5<~4ؙU̎ lx޴!h@N-dЙ4EXF~n sҖL^%.7M?o wQtSP^ u1Фr; S3 $h;?7&q+/-JWNY]<]qj6Cp\\#d6+ֵ|zPÕJ o]&nFb$Ll${H( i"Vдct?i+)^4N:XՐyU9<f1Qba]f!<(z(QBGGRa.NGJ < 0?=hcpyX-ߔʯ;0A`!D%>nuO/m&nXܐ̺7P2j&GҐpu@̌ZxЄC&hZUJA%8mQ/:踣])o̅`qUnMoE> ȧꦫV'ZZP- mf`D*mB`"!kg#q:#TX}n;jHI(l-ob$fI/ҍÖw6f7^3?鄨ق8-$rM"R_ʊO3].h,i;ܾ )u7K"#Cud֌nY$Jh hfH!|[͙@L+NN~434?L/FX;Pa4z0h^ fmb i`Xશh糢406G 4@a\G܁o%I唠N;/6ڢ%%%<Ó}Qb<+IDTp%<)Ҍ],/_.jX\&9t.7BI[0TQfcL#bzB(,9+u^{e>_VA&r &h1fV:`u*' rgeF1VVvKq]ߪ7hUWȯ/V݀, Îi2jR& vV!U-&F)J9 ~H%n=H9B\dIvM ]IG֩Sf- WA'qk,v"fu*Շ;w)=h;3>!#V[e3x!^`=ujJqK~L7?nVF]C K oe'=|ScYEih68quDs޺,4BŧYY^ͮ6ͅ:;<Ɨ*8XeMO$:{ B8݄A_vTxDb;]NW+MF5!tjJK 9g.Eu&^l%;豜[zO<@ءso̐P䇖Ԇ=sK4r0l@H{ՊT @D yuV3ܞ |Ax?|*i\?g ??B"w@y l'WZr|zX^|j٧dg#$RuUlbkq5&Vhm\ ^R6Kۺ.L+\)ւ c$H)3ǝil\~Jȓc!‚y ~2HY78!O |;Żݸ>A0܌߄s3hF*=@Kvw}=:ƀޖN)wWۮ# |=ifW8}w*}1?Kдxet?5 ,'۞ -B)%%|K_~?;lȁ^?sYD(2akǖXi펵Ѭ%-;gU)9BȀ0Te*n}ʮ;|.^y=9UabJ6Ayɨ6+RȺRq =9!^K3 Vڠg֋.ellPV f0lX ~ k%hnY$lW*s1{/Agy*}{K̦w5s)>O ~:0~Z[92&J}*f8n˅saٌ>"Y0rF[ƔLKŬ\D#KC\3w^2ֹ]ljݚMkDV\WWQÍ =nZ]:7xk@fFUӚ2E=Ԍ(Ua >Fi A18{Eg p1ʵ6@]xn99Aݻ;5fw<:6)uM]jr5$ -XV"|t!w *ud-- 8aKžͫQqAa(KG&ӔIfžuc3DK3JYvwij;q?3r0eMЭV.B,D63Zx\Ϟ¬*&F,1Ɠz96F]"@h0#ogf t0}೜3_`)t(h?.{Y FCNXzX{{ڂZ''{d%KOU7[!%W v6qp5_zQk'D/"\A: P~=0X[w Cڡwa$=A=eIhqZ0{K/mݦmyL=&;p0\uJVp0Iqؕ1x0&rTyR`Rz@cIQBw&G&}VUDƴnT{-"gAޑZmr 9iHp!ͨE;#Ex> 4hok FM\St:5YaF*|Grn7I+$Zxt'3K]/=iJ&A߂.8`J -ȈcA5bCÆ È;\$׏9\TRf 9̥ʾ*CO)!b+|HH;({Vf !Jb?qv-2X%뎜{-|s(A3Gך!eߘ| @ J))w:vT_@H|33G:˔Pc`p[ \8)30B!Yk\K#jS}sI5K"^S05{Uz 0B޺FN|$.7x5PBg`Z|)uZb$𤄢U^JR gkd3^fMR U¬EZ'm&խqĴJؙ9rrmWwڜʶH \T1OK͐݅ߌ+7Zkn}efo'ϲӅ҃;$IIfUslG\j@J1Yd}6e=ur"K?uUCzEZ%Y.]%n?v1&d< )ּ  kdph혍rÜ~.1cM ^zNA֐Q1t޽QEF/ pKT#wxPGFmAQK&a35H3 k댧 fBEꇣ|J`w9ҰDayܹs_iS XEΕNJƃRL_9Yp>|4ѐllۋ@{kJ}ݢU⿾{z1tmϘވ{'Xx#uF~"kP3Gd۞7V܄Mzm-(2 Pѳ>#,Ù^QhgABiZAhAPuHqX G1[QMob*%,P(0 T"%8.>{R +Go|Yn)=s[$JLҸYt*x &%bkR"j 5@fܥكm_]Q.lay<'C!P?Sxb;:J|>`S ,<\}iŸ H;!F-֐k+]c\BQK^ɨ p8uk*K!56ABc"]#3h;W i;X\J) T˲lNO x޵ye-jd@8w! fJ tuIc{6ϫ'3@jr,\Ɉs@ܻXԶܥqdM(/fS[ܦ) v匤[z[@ U' ?HTRM6pMt8 96x3)jVrjN k؊ZzIda%)]Hc5g q0lEٽe#j'B~UF _G0 EZeQ)qir/mN@]D)N33:VZQa/>>{z%=^U0"L([Ƿ3%5b=.,\fd٠}swmvmpj:2D]h%r~}EcUFsi5Fxd E=I]|Eū@cIi#: ;! 4s"@Asϴ}<9FꅓF 0TƜa( ] WAsnN {5T,o<d>mQEћHWhI&+ް+D4 4@’B:?&hB nxR^ I.!~sZ]G6fURAʹBUuGPMB9Nw\t&ny'Jb s=ŘR|DS+EXx2 &=&+r=Tv~L4_vֿ:1q>^KYâ Ag)½qw B$@Yk5,qjʘ34yA=7dY6 R*& n`8tZ܄Vc GIظ[3("d/ԢE0נͽ B^z+|cs P"z+ /@Ӂ2ˋo؉s `gXҫ-UB(fo2H$T%8||X7U0qg46}PlP׏X +Ws4WӖPR,n%WE?oLLMhO7Y0)L"öl¤B6h$>-Bcxs_#wSPsѠzk mݘ S5MiL |l.+ůKl_l{Gvu] ʔ,mYhd@hFF#WT,+i裋M'M iKpkeZ-F6G0ɾ7=غ1R֊(dӊFZF(v3~T5̉ή#gn P&5HźGR;y?+!SzᗡQ"k ͱl!3 A *BB -qkqT#N{ҡ%ߚ`+hT:Y>(Z:v |1~ܲPY޳|>YeԿg3*U$pKg:}04'.<:eF>K`6l:sR^? 8 7t ؅h*9幹ߔߴgGs +C}}vθ=U=N/}[ TGo-Ѫ(sվ@ 4xՂ\_U+%GkyWqdq<2P4_itvj{AN[9)r%Km6Wd]\E,ȝ`$8˽{_^S__C|Pt~1H:[n#k7!Jӕyl/2qN!P3m,1v>7_'jj t 0LcCu i ^GD)Cq,M} c9}pb"ЈLIs4q":"6Njy+O >rYHXi%4_FKRg*y Zj4Lm>86\5^kˮ[JG{r!ʒwu^*L]SwEVղrae^DN+tb4.b}n4}S XEq{ 1zـS9/iCb+kiWsۅ%B(pe~X!Ϥ)<.L=>xifVHVTh3nDhH Nzn#!qI&0h57A~B .__}#G7@y:01uhG!ʷ['Uhb)?F{\po5*1pJA({^UA6#gT6:;sXPt5A6Βהe}A1y3'V͆C¢_N_ޛ>DȨ2Y4/'r1x ?!w'4>j3쟞N*4TkP𛯹=83e,\q0a?u>Jv&3CuWg +%ƀbWym)&K5qJ>ݾS38(K)0*?S*VCRay}fphCI?3i1Z] ^3Gb  Il&Sn`:Fz@^ƋF>@o)ڈEL lNh?M0D"}_zK,qTR9!A*+u&137 %J!ל8Ú>JSd6چy]wuV@߱ L=C &f{ D//#6 5 J݈H+B9E3G`]l.c"l.vT׸dSyF6ϟ9m\xS][YEg TM8$rmȓnQJ.@ m+Ȩ;:*J}ﵪ)c0 +yq^J9DUO&YOVx\&r'N-o>#F8y0y< dUCCYs"dI &:JDj q3_b$xbTb BFK}+>iYtC$[ ÚW}gĉ2m'S߭f>D/}<9}6poX#uRf &@\Czܱc o'?8rTiDS_YsPʀ?67Z@>6>&',h5Z!a=ns3yV¼'bc=k 镍?F:;kv.1'uEU`k]-\|jp˓8ӓ a6T˘T752~ij.P~Í` mWT; DNX"?^ODvEČ3T{W]Y8vACy?P!-bH}X~5-N,Oxh+5f;ϱ 9pE-Md-(]@{0U*p*wR0Z_ :I K$Zl{UrQ`%,[ q,l{飊?\-?#cQvZa9 DkOʽ{5YL_C+E3P/0s%'T n""s(If{83Iv:8u6xPCKH\uM8(@l{lj7 9'R :(-0<aR,oKND -Vcu +P1$1&ޟy􈱹iC4ݫb T D*1F6ٟRL@=B?tMV x/1҅K$0:Y /HHFq2~n䪇! ?UZG9NZH_A}-וzzGv{hԮ$^+Njp$CtLtL׿)˩ -onn\_l%wo磛PCۅ&_SEzXIMMV S1V€cIN6JeR-nbt*T :#CaG - ͜%V^ІφSh㏟`>j=QI .)Zt,^MXҊf6fmS9Ud/KoeIrO+|<T*_]@%Zg uORȫ#.mṇ;5d0urV༤gK6*3!Z?nVQ|оU%ƕ3fwE;[MvC\ƘR qPrM;: ժȀ Uc\,}4upk`=.$M_QqL4a1d44R=8C&?1+GL׭~C}-|\P >YB ɽ$]u3T\&&4?q`-:4O6sM V-M 9AK(YG9jТP~9wK1OM)RtYln6;=Fpr Zނ]yWIk-˞Qpi/mA*.6WYn`޷ijn\VoT/jA>(8v6H6D"WOy,FƂōYfu^"Fb m_COԌURCy-fKU;iN5nm/Oయ*AϾΖPxzJ" pPuLܐ2 &8l  y¬w2bIf.*yO ٞv:?҃OzH`Gf|Lj&(yѣAӉ#*8MK2%[2Q{تlNS ˎZBRC [K )J`rJ@rMoWL2%-[ KNyn16FВRkـCLuTP .YrBԑQf&y2L@Ls^+3b@rNeOdnD ƙ e!kYَ9d:߳iQd􇖣jU'S."a>(1!cTb\ G""%u%$&ɯPXgYdvsS6p]c7T9J4).L1LاukmZ_#o3!ʓ|rfo^9@\=Zw}/C@k}!mD`ɷ䥰 ;'wmG3I)4Bg ZZP|tGy B2֢b e"_1KdK?}; L'ASLn^;ʛ0A?؈Fyu ݒgB.lh1.F'JP^HދL OVHʆe=*/Ͷ_X}"@\X.agޥ9noFj?i7ov#TZz]6Xї &-0#{` 3n؇QޢшZSؐSϰ4ywz -B> !z-RgО7Ć9\-KFd[ @Y,M\nBՐPy=(bo Zl<_딑5[k~É[']@e*MW&!$60e|,&3%qGocHz;`o&j c|YAB=V0<2h||N}kn"m)l*jn=lpIڧĖYcIe; W0͢J=W̊[ҝLM2[nh\,%m0FX"·" +ɵ9Ȧ4TS/Bѓ WMrX}/^DY}zt| okl휶dy22F9~G⨫C}n B,c7w$3~'u[ Z3 wɨ).d +k'Bk[T3+YT'E\jUq`qhl9{*'[(blF5[lba]i]šf9sN}a" w 7(]үP%8zkpŤ34fÉ9J3 ʐXS|A{,O dtEAo?h)Bz<5A?vc<(z QX>D47iu [u*&7T)痪|m۽6ʭW,c&)z׶sWDpȅXTtu/ܴv2wS7 S]ç2U:Tg:wƉ& |)b fQc9Y^@g4 FhXRdiw$R%^*LKj[,~G!#AIf`;ވWhLa߄v{ֱ\Hwp}q#k"Ku&\"KK&7nâXEI9ɴmp:ݽMECab{}|I4ǪyP,U fJ71]yʰCÂ2t}7I"6_1R\x昰HPI\8 Z VFw=3@ Z%lkt% h/ ֍g?ҩ'g~_ě 67-am = &=qQ6yE s:W]^=ݠ)Nc.2Sā IT0Jh ju;('`$X&F9%(*.Z3^uxB&~YCn_F u>>p"QHL4xYA Ϩ'P`! o46šh:^ ;d /T\WNoh:ي΂K/xzrw^0mMH/K?MC^*m!->a l7ke6Z=!@h&(~kYP|Dn/xg}f2C ^tIMA7Y?O:Rg^a7t ctLH}l7ЌE 4,8 LVbO4//+b]vG& ^#)lUL_9~8t\ؒכE2ާ/ettdǀAқK#ʒ_Dv@8T4[NBAE΂тxwuv DָRR|\P԰[. mv+&GIo+XaVXIyqɘWuvԘ^x~{a(r՛'ot6z+ؖez{ҩ#r)0F ~zXj쳌I Ghg% ˧93>rqG=EWLJAfGXJUWӑB3j C/ ң{`&(}+ KWpXnؙx8DZwŠf3 RUrwS2'SC.[Ɲ[{NM^2-aM 7NJ-)㬬1]̃ϴn,*;.o=֓%B8ɕNsFnj[S6Fq3{cX(c4B,Äso6G)W1M,nk !0 yb;H\\!TPPمL"\hB7<%ڈ;|OB+d(p I/em{edd^G,`:~Piz͓GuKg kYmT' &I.:pkb "}g.]FcΙډI@JtNNcR99hp)+qϬg|*hǗ6IE.yϛWdW 漴?1"Pu˭0`9Hڨ an X̙`QCMJ>!c=VݘfG?gÁKv"q"ǘ>_>(..i}oMA>ܓHMT;}dD/hr0ʍxeTEi6PU0') 8yrԔRoS- ZdsKiPIK Y]g3d JD 3]1͟-Io;hUQ׏/hM5F3`7Dj#B"y`7XLrvsaf4[!UN !cco*9Mm7~ (>H4ut03T+kMJt<(d>lՃ0 ??[( %Ffr}'Q5]ҷ;|~7tL jZM(j DaܪC)ƲƱ cf{t+E-Mfe#/H6pnڄp2A"]e>g3(C!Q-}EYᆝ%lpB{dCU ܳvwM).ԣ]mV]ywcNkQ-h'0 4.oyYC P%bb.lѪmR04JM3:iqܻ0պuTS# G ܜ3ZyDMUyM¼JĤ('?iMZU^0I|(q"mF+b}'ƆsUK=$WІr|L;iE/X #)J˩JĻwMڈpP, 9DgRt?Uӈ)+\W`" , #&q]]VH=#DZl_r?ʵTnOTeY U.S6u_( 5/N(4̪/M]}_&ݚcB0Gx`LCzrיFc>]4>FѺ4q[gdulf zM֖k~={2z8H ta:-/Bg }կ"@m˓m(;.E ,I'UZ,O $:ng,oUY_UtyhSވRL.2;JBeT!wRaAGvL7e\vVb6eGhף@H\'mFB=>W?&vEn斖"( \pV5?s"o.:$& "Pr{.tyw]ƿx|E}o g-0d6tFzqƣ!^ ƻx8ipn c]݀Uޛ((|d z(@ds|onʅa|b,r) EZs4W5"1;^C}(]ߑ[1y)C8NX<d葁oPX+A鑶]gNKNoN|o2x^7'P1TB(Li6~쥝`ԔDV=a5-lɯ|gxUqY.,v罣)"LoMuvn̙ljS=Ƹ>{Jr7оG/ހa[Zf w@%+<a`•+&p46k6ejo͹O*fwKGrIpV&P5͇>>"wU+xPՠ[(xYHƒNu]MAz؊7d!.KA5v쮤h:y2 m\ իHYgȼ[FUaAhd^&V䧲 ' 3]>ue7ߴo; v!<%0}u>C=W6lH6dpznrBsĹK7[Ӿ.͟ݤOU::@:.9DbSݟ5Ns+_-';zZ?]*YbY!"E3އܣ6 &mT@EL\ Ř@)G}ԡYZ)0 IXDq1§)29^4 ),{.DUe\ {O<:'Ow eOjrzӈņ_bȊ Lޘ@mfa?ˣjlef9@%զ[R4vSDQ`t"EҦ^9'Yy6HIXW<ɬv̈F'P O AHpj3/ ꁬKw2\@#I` uI%:WBaQl( MY[ҝ+4Ю`>KUw Ӊj߇E*13wwLv;"B:Is{SwIa<\'V"1:W՜wl1%Y}c4  cξ8ǮG)(UӾ(Y!UkC@FHc)^Z\(?nd$Y@{:[[{4Ӣ>znM&(tMd (߿ޫDEvS8[¬[2;Sb H.;%՞GgȤ]eGq.תRn/:=rT_1}f~ţpO'oێr+!l;uv/'3̖wZoߎ,JD. um.x.c)V H0G*e ۫x| ex%n>_ZikAEЄΜz˗NBiIKbEz/ ǩRtS*'e6PpL?]0e"i;V,QƵ[pbYɛ=>+Nb5 o! k?{"ʹ Qʌnsw]"o\KհQ|N=5#3BP DL9 ls^#]2r̾- Jej%U\Z.^L;4cc,r "Ύؕ|qkb #F* bJ /Xnda{-1XA坘 P\qEN.݇sOM߬EK\n8ui4\{#CG?.u ˣ`H=:;_Uz2Uq +xZvq9s>hAŸ- OOC9o*%cC PeQd)7תjƾ bxt\6,ʔ S,mfqx8?a*>cS9GL!)ޔh1Ilb9p $7>#]Y\(Djc-k`Pe*'TGi# :?eX193K /#.BhIwYtͅqkYvQm{<QmmIE~̫-[11M5~Bk7*<w. _keyC1JXfJ`0' a =Y婗$+'H2 vN2C-6aw]$44]$.|ZI + \7SDs|)n;Ӫa ǎxfˀ,U$B3bj02b7k:Yq k6dBV.lt{pρk/H3l~{VA1ݑ +nt~`l2@>/&#F'=N]|]C|k@)tBG^n#OحsڎIڶ=D(Δe5SnO 9t'p2W2*BvV S*jG} 躖hzi39?*A>zyGʰzSrp+x@`+[ˉA iAaJf o_i[ XJL𻟋^*uZ%vh6   y{ -`dn@xj8GNQ<+ZW=dt5gn}Ng Y@S!zEY/ *Un N&k/G=2jCհ/G$)VEDeMcϘT,\AuiU[H <л==[^3G@b4!.poRW?̋Oi0T[8O =E}_:MRH: ^`{R=I\6]Ǿ `pZX(V gð(BtY;tY(F\k5lug2?EOW5|@ HS< }_{99H gG9 ax>#gDY>0˧}?#T?b*ϙ|*da؉ 4ԩǘQ|jr[W=Dsd/S@A.Z:o?I-}: !LKg)1x8[?` Q|V2Ѥ͵zֱ{HD'bm@o % VLxMIL8d9\𧭦 j\g-3 S#BL_"C Z)MR~932`TZ9~3)l$fbidPo_z29;TDq '4((643DTrk h;ڥiȥp dG]eVxw_c=d&@|ʒ \mVcv kI_KBԃ9JgOl+<hw\y$xhfPѿK3Zxnal񏳅g]@,?|[c4 1rFQJ꽨D{gXt'+2v&02}M}|2sH $9D 06+} mCMO=x'A6U,;T\Oq<# R hyW6QfZr}zVA; CǨ:i!ס[_ ۦ@78WPϜu{=n= {vΨ6ϖe{膳BafY>#)o2?ٓv*!+C%JOsSk3fHΦ\"rڑ9hC>H=3JԈf{(~Qi@;{bSxr@@TZ+4fka\ Jzwr-{3X` CuБ`39&ҷ{&`%kV~$b.!OHu\CPO`iRsx]0aϽW,]sqͽտ=! K9цC5Mn^?h{lw%6td)`B> +xDFd:j?z~ٕ¡B&:VU;0z ]usqp\+tyz5XV3u%貰[}z.+!roM{PP,rFNn]Ek9r{ٗ./2Ya1. 2ݙ$ r$˱f U usX3Ej]btU/#L y-y۲Z#$_2;JмBDKղS12b!˛.wux>Cő/qn!IJ"aحBKnDK@z3( NTW 7Ћ;HFǃ _檾 mX-[b8 t9rzddmkĴ<ְk+RT\\L{[fD:f.StrMNucJZ6XáDM'wPFe j,o~(Je qrPVڪuɳZQ 1a77_0e,4\q/oC3 ;5iV=dG[gۜYr_IOF"OBRb[jLŧ0P_Y.mB a߅~qlɎ] CNiI=6,(?|s03H2V1(ghֻ/wH[up0;HU0%-( t{s:*sTk: THq+ <tYcC2^,!{ /=HBqh̅SH(#a+jy 2HZC%Q?\yaV-|3H g״׫cEcO8,p`s~ҁ4X^i-L z3ĉN"x05A^Q|bcb `r|6 .¶~؎%3eѭQy,=1?,#X쯵{rQ-:S:Z8$`g>”{2N5"[!y$r䄿@c I8tCAibk 2X(ПͶ[=12Xe;$^{waDRD4D#VpMt+4A_VPݳvG|H ҅Uif- z3նDu+V޲ =n5Ct'\^)ePP ,4D*}& KKMIu+<8&[6i~2>*$f'Oġ\uuy/paW aBMVX=Ko޷7E96eE+ij<-G3M*8_0BA`+xpۀS~1/cKi;#VDS)=2YN Ҩh6)FnUȌ T /@j0$L󇳤  #wS܆#^D'}̚ܟq( c,M8?2Ґj8Y כT'O``B 5^ϬCh]oy{Vɂ WYe a9hQsg3as̒N `s 5paJ+101>(绒꠲ =3q&yCsK((|<jI^US뵏/xWC ^ ǧmS Cia*V=(J{HЕB|8<|WwΟvR|ކм}}:cZ_tla*3E9!ME?h3C1U ֳ~(:O~Yi?J[d74e_L/qR{}imJ},- 8e+~_Q/8t%'V*KJo&ҋ Ƿ|$[5\qp+eTUvocrKT{ä_S5a!K#{u5MH-Sҥd0ʻl,Tn%9PI[Ʊ/Ɗpm;qd `Ei?7չ\5JhpA;hô4 F6 3RDSp*U$A/ZuGF&Kx3<26jnݧ&rAIi ÙWl-* .'ZӻNVTru?@mIj&D%UR0AֈC*i0'@HudS(i;!iC`*lp;NCʾ%7e?Ozhvj q?mXKVlCbCSڗkآnʣi@Iߋ\(KMag:GWXaZz>tT:ԨkYYX$BXN3N5q8-T۽"v&E·IY"}|` kwVVQf_f]-(vxVaɎ9̙oV 'n3I"&{VʆԼ5%gc΄b'ߦvRRo rljĠxW! prcij5k-U FkxTNW8~m mwz_ _{ʃNDԆ&=[&xzgeSW_va6j#^K0aXZI SL߁wq3jQr;N_V*kʖe0{7{UYq'RϬV^s;Ќgp76$oNIaeR~eh6#&$F!BxG$u<9s DϑV!L>dy>aQQ"Bk՛!TґKurH>6[/%h1<&iRzKzymlP9զ, X*Au߾Y@ D7;]T=@l{A5I,r B.p%@{uX4_8X(e&s룔JGmZx pս~hNZ`'x2 !U@LǺ`QT p˙:_/V NwF쾧&6)[y1~#~SFj|g{ȅ'(CƬ򞙂%?Կofx[;IѠnawU i40gM Uj*&¦ _܎忥+E p\ow |}˂H8bD2 6S9l_L_`keLfhT',ĸ\CiK"A`:N+@8B".9HAy30[YPTgJIVmWlE±Nŵc {v|AĵřKp6׊Ԕ+ DҮz6=RݤQ^Nrt=$ H&h81zೌӔY%lKM-49lIvn=&F2DGqwn?L*x˙&yƠ5VgsGRIo+1!ޓIKڇC-Q* H M{jKpd51jVwS5ǹxW+o5!~j)}JGEӓ=[5C}D_Zu=ox* OdqJS` t O%D?UHCx'GEnNZ2Z1 (e7nkf龗gKU JeE.jxqd_p%uc9PUs\"T8~rD4P"vNQ]D㋶15>-p(YzXuMZx٭ډ`*񷚧~0{޴V?;$ԹsМ\ =oN!(S+:cWcuYJoiqcPݱe:+8#s(|[QQf㔣g4 ; m݊R81?g1qk\N>-* F"t3'*Tk Z"/: EwJxsqP`0.,gU./ϗklN[%fzSN)j^5WklgV])(~QkIk0vsɶDVlpՖ\{cs̘y-iR5׶[T(~[`y]?d@%rɣp jms%W'a5@WChM=&6Շ71=Y-OA>@`ۦ -zIfq`6 g_jK}unRĨ*=4*%lGE8U+8+ dhëOO7d7sPk b)ү߁O=Tyy S8gĬI Ef):DoP.uBjgk VN)TUB+f7X`z|$IxP%zx 5]G~;cĐS=yg?jE1꿒SVi@'eRLX0e}f5__7M 8GMF @_"KcR?b&YlZ:ӍvҸ#oaL΅k~'fۛqjO`{NPTf{QjI0)[k*3Կ@a &IԲF;Q|λv+*eZ#zeo \c\ O-w!(V*4 H7yn* Ju, ~nKV z?k~z)u٬,Ve5cEA\=fkΊ%r"DOPvhnF+Q ;K:h_7]PpfX>LHM+\K^ SlzTE`ol2~EJ,΅K{['/YT7b; F5Xq#=RX R}(e5ZrzHuT_ u⫐.IDH[#jmeS(ferKjdCƖ 7/s. k֣)lWk8u*GK}-!r7uEtHvc Hc"%5xךl>R|ԁZɗpKI2R ?ZW9DlP/Wu*&;6t?1B5$o'5յK(7(Eԯ(E5-fۯt7CGqq8Vu}oж;4%RT9 .݊6eC+uI,07Cl H͡PM^WwTq͐ZneOP孪j^7-p"bqDqzhKl~\&$\GiKW׈/C+һ{ Еh[RP Q1ɖCV„S#?֕a\Jz߮uԐr 27arMZ0Ú,j8xB -!6ǁ_}gز hT v O(Z'둋 @z>H\|r\[üO jUZ Gn Fvgrt]-(,;As \y)esTwM\ 뢩O{STOA{[KƓ3h3O64- k.ƞΪ\t q oB^s)h?9a۟*Yͷf*n.W!Mo>봍pֶ|xM9n%!<LT6qACHS<95k S9-v΀źS'V }ZawNf]}\Ti;ޒ|7g+܂e\Q6{\s2 lv'odk z<{5Z@x/ z3"B!XluJ9Z]쮙Ml;܅sto$0l`LF6\1\~=a4c/Rk|X/9ek8 yĮsq3^B_ى x)X7(A*׊-xX;HFSJ]+*pGQzCsz\ŽLuu0pld\[k :9!L UGKی{bM `| o2UGE5G cBp}i"-=. 'z!+Y CJfWy`ȺoŋJz[L0'X2Ə_VZ`?LGGYW|Sqa6$gb?r.q!i+.06g&g(Q?k$Q 7`ث{gc?WU+Ny}G׀r YU LPhŧ+N|B`D 4ĨOH@v0;7|NHv"ΉnxՕ AaǍމ0$DxP+DnA6 |b qn|oYa=Ckl?rG+ltԎ^"B:oLN@cxpL'L%(SZ ?ٹ6RR1YVYI=-kQ"bȌ$rꦥoU.Y/;nƳhC FUmx%ZbRq7Z C.f{8c Ăz W(?_.0-:Kʰ9'zaa3AB「vz "u/:Thfޥ-yw A_"@ |Rm+q!.|-ϭT=II>CMQEM"*ՆOKaCSZbH^IJeP_N$sxVxjiEr_=,)8r{غpCA8Td]ҏmTŤu21@4/lgLwcl[mĹ.${ Äjqw Z_։`emGV\5xgBuOTI:Lr4\ʹ9 y`8}q9i7G@_:8p-? H]$y|NEHk1CPS䜹J7_'+5YJn0ϒ{Ry,.Lm;ӁKMCl8/B"GvQq SV;)8=~؆pս n0q+6uF}JӶi4G0 X;w{ FF:?(ygu}"ie&Z(Hs)ݢY\!39߆\kljfoW2Q56}FQG8~6qďZKzQhQ.O )V;yŎqa!hBn\foǔˑfհT!sڏ$ \lH9fL~!չ[aT}^Nb7̉G\Rro 3KYk/fi{bҝ'߆6eT2&|RMu_94~t}} JģˌmpXͼ< wF #5RrsNRV#ŵ o>}ȋG})@Uv P5_2W cp0?K3+t=V).1}o<ۺ6z̵._YC+a1/LI]8A2װs=dTZ9}X5(!ׅ-I'9IՕJc?Y~:0)hvX3]& "lu%87ȋX> '3ysRMn6U~g N~`Ln,9:LGO} 5{ G i`T>31K(#Ƙayϛ)&2X}^RWPlqШ5'pc@1>N#:[~t dqgB:G7'g ue9Ppvd5+;gf*kWkΔt"⻂&ޭ3*5Z-) 0jFl6ƥuCZrQ|˜(E$?Ô"6A'5f/fx`hὂcM6]o |}yQ'c4o+aCK!:y ѧ|jf/_8֖;]: iOY2QEL/$!;7" Q\`,Do=1 tFbr$}bUI&EZwC^Op)` YT;q)t v9lmAM1T }9(anC$22ycƺ\ UѨ**݈'zóm<64op_F<ڦ϶Qzᙟ` R4RPp]hmzD( x.zpP FȶaI~MG yWC8%]ޮ2Q3J$.+ail8i$vQ1p2r e/o4_GjWF&ֈ]hzOSΎ<0?kcl+﬌<'F:XEU0=m(99(C"Mv|nvb]oolj-A 6߈x>rMu‰Y={Euf L 㔅gyA{Z_e Β8)O)w&i{ #8tC`h-;p˚`$Q("^(L=| 07'҂`^ЗG\~gmR[7Aے-$P v!Vzp{u}B3fvFȀe}:*M7t4n|Jiěd?+*C%]w8r!σ:hKȲL㋕EXJQP/TJu$Th$zi|%ycDK`z5Ԯ)uZOS݁"g"&? dП1=Lѧ3>u1;MeD.k*e 9oRڪS 3tiвmP*9Ij0Oo:f(X`ngU#Xct@(bfQa{ Ϭse^VUo?pž #H 5ڭ)CTbhۻd,`PJg)᨟h>[ &~¬̽ذ&>TׂHӔ-Fù򕤻a ҽyY|:e4ROʼ.7}vd!g:q]dϼM ळPF1CI, %@EdZ@dWn pa-e) 4 ūgqQ\2"󗂯\[Nd&>3ۀg!O?U5ԻquEY'K&t3v]qhf$]u5X)'dsN [ CZEԉ- `<]Ҍ!F+;hm3 u6܂*+]xL׉rJdG4Fia4X$Kg?,ڼ0.OlPk-/Gwl^|1wDgt-UBRCLĀLh\H{So(r93lg3GNjۮw;2i1opskU#SM$\u˿-1L5>/R>=R%Nm0{/QY50F=6IMZ67_4GbᱷHqm/ 50'Q3Q/rc1o@2L.ZZS?#SkAӅd7xܢD:R,F4}/Q'o\2Xߍ]c(SC67F$P.R),9cRx){ 1Jo]Pge,\5 v}AE5`3Ƒ.RgIfmN-f!8EĴ{̦$­$t" 6 (3HM1(حȀʪ@iD?bީnb#7L Øa9]dvq{\ P:dMa˒ōz'8m4Jn& 8f Vo~ WaFOnߨw4#+*"BȧqD{4,!DoWk`qOAr;8V^ÎH*7A/|nDzgN@Xݻ~@zjr8"i6kK$ˊ g=nW9#E'Ro_ hiRU! zyA  keLB"f/aCHQi 9u-JNzVwJ30Ay*/TAbonju[>GuSTCl/t'@>ԶV f '|,ɩ[ЅDҢ4YT\DgŎ[2 [ٍs^\"~b~ /ƄF^e6k]ә$:_G$OCL5X%SHH%s~d&_b@;>fߚœ4o'Ex142gq3\ڨ~p-7rukK*iznYv K^}?q\26|c6e} ̽}o`? Y(^?28t )"Ղh;r R3Z&?tHU|(A= ?~1JyG 0m?Kf:݀Oiz,itjsg EvXF(>T,m`!&s ,3GP0>IJz] ߸^#Y-Ԡ,/ϡyS(1УPzO@ys(fAD9Zt2G KVQh6pf(nޖwÊ>PyWIBǹ`D`'W)ao\. qwf!ґhjD_(:浮iA 0]^_cJsw$FPo(U*B25S*#wJ1GKUE4W.2sҜ 39i8~ִNĄGuY y|L~dٌO~56\C@OV !|вPQ41 wLɎODCZ:岉oɝF0@3C<m`+"DJ^ -܊x}zFn=F _5]`Q3.vQ -1uDE۟,$h23zs-;sOqTx8I* !l \e:P/D1ԙ^AL_CFYErDQ齃;bSN_)8jM>@Zǎ19wtY  6C?bMlfѼ0QmIpNz^zIGD;qr Xp들4v5Q^5V^ CB7}bYnD8;:<&{ X0}&6b=ّe-4W$kf8UMQFa&^aL~z P5d2R[vL̨G^6#yϔy ,- V0! ;؝dc}`I)hI4GS*Cc6a0"12G0⍏vcTG~LJvhyZO<,NcIeL"r҈xah6|!= ˦-,;M܊inv=fΠ!J,nN$d愮}ѭSP[:~v#."|_ XW6o'^?F1Ι5bt7,_tښi0:np.i]TS`ʚ܂ęXҫpHUF_e9#^=/咽aO M)z%,vGnϸ'r>-|$ ƽ C:WHMz*\,x-/Ikc[Id73|&|+#iyw v^vE*fn6.*Uy :Й(]@t'E>%$ a L ZXa&E]^9|׻BOY&o0hG @w2ZmzjɃbEtpvbqj/ <0QiD6 S6o&h6.yoVϹV'nJ2!͏QZp|7M7lh8퇄F-%bT ;@ %bY|YjKYv`1Qk5A2VGa ?RYv 6^_1ɎZVN $Mރ-=Vs32TR?'aNG$NE\y)k4,(I)5Kלp~g'|^yb;3:}F|(e+b]*HօWZq]cm-LrHt߀OuvhG ʮF('bM[g *susM֌ju`1v D'/D_դg&d) Q芆ù-xʛkg{{*k^GˑCGYS[-3Q $~kyKg跼ŵ[QːLk jg=5n;--/;mֵވN2v(x f[&#J(D>Nst3 B7GILD2 +m"-1Iz${Sz&kHQ\QQ`V@=y(hHF:jPDW[XUP.\FP{ \~UܺbS(neх=BPYPP{4$·iS|u ەQ-<?vOxa8fr, oa v֌eրud`fb v|0==p>Q}Q4lJ:Hr^K:#FET z 0t>KCsG\?  H~$|-־pTiFw]{~#.y "sʤָf v2?J}fI&cR r> ^LTsPAŶhHى8yk3|ꐍDo rjL ,"3.٘^d'?&ckcQǼζ("=m;n?N~yqV屄Ayn}8W I=ɿZaGRG2u-3CA*}5vӠ>6ٿqQ|MNek*;@vEp J¶FNfK`WE'M?FҮ,?͸,} 4s*bPk:cQ6f5&n^<jc#XXJZvOohdaݞUU钆1)e< vL"%#x8"b) 6_y&hH >.h``8`ެt%w^@^:0ܨr ͓ Sr>Qd39I1^D;TVRl/x $ *Q܆ RquN-djb ҄N  ?r"($;K-I_o8q7 b@~W|}z+\ƻŗS4fƆVM/ކnriUFҞ }<<=?Y>XԗT*XĴ4H50b j00@)J+hX˕ o~m|(4m\#ݴAq 4QU>n@*Hwt>cq@ ؅ yzFUr.;m#QW0#XL=FZ{#ƊɤASd캤AiУ@r}ߝi]Alچ?㯿3M=)Bm-<HPӘ`)߸E^Q O%\Ӈ3ʋz*lBcU[lh"<,*1׮1[}2f=@MLB8$#n #-^WO`uS[BԨ63D!'_sڱ/D6k3'N E2F~nft! luLž6.'"3‰cE@pS+nǧQB]>+ +_XQyasdkf lNS$rnq?A¤m&ΑP|$-é)$no3ZPCPZz =FD ℱe!*u"@B# !PE%QK\&\` +TFGS;ON ,{<k P,_8{sa#wX9C_Coq<sm:"Q,OGB 2>*v7iG0$X T?gn T. ]RVk^aQ@.[σ:25+ +Z['W40XawM;a#C\bT^ܮ^EdgP&:zt2~;ݓ=P C8XTD?[X,v9{t|wCb!×STe$cγ5.(ַRx1dۥj..2^U|^ TtsktS"s>.{$vsS"7ѾZ?,孨.ZZ6X7]%-fT.1p(Q@NnX0!Ӛw1*Wkaj)^E!Ym_~-T,['/漗f[+Cf8xԔjoD/JQK{ DL)4ih1 ba,? 3be`k532{ig?R̄/ڴrL HDTT5ZsZNfJ'j%}7ť@!5Z bcCs/x'nj-xUFgXW4mK`a"6w4st~) 1zWY/$v-qE_CH9dq fVU{3L8hP}H_Ѡ99'Kc6Tt2WFf@'Vʬi.@}+;ޚ@2sCUi- C3*7[]W1nĵ9i6.C"qJm<}z٤nuxE|wnB 8HrNr 9;OF[&ӡ=co 'u> Gz"lAL"ĵ̆zAV<'+*a,!顡X¶2Or6G'>\w."wת]! ٪T@ok4ZWpU w?y3v́KgȻXC!PwU6{͛:KqR CgTw*L ]aaSd2]kkssW)u*B lêatfZgݗ{o?H/ &*Gz7oJF^Oz; *WEU@l U|!}q40EQ!-wnyUquih3xb:7|ums4{r(w.w ?GҼj\N㲔hkO^mSהRpY1.LsZR܏ 13xP"k FtE[wQz*U~u<̀Ėh"0zpbUxF?IAnkb1y Ak}A;8G{mDriKReoJ-> $i̔*=Ʃ%Y%f>yF e_K^У\7P'o\^j1zd i =V/bE')Ytgpވ @eѷ{GTF}a=rbpmHdP>Wb01rSicL1hS֗QPsM0 WMnZbj{c8kjsi(u?r1}q R:|(`= L28R1r!Q2xQ@J{žn_q*b KD=th|8Ϸ [ՠx,bvB3g!ł9 :us[&bk͛nt4!%OKJ0q)_~ F?TEӡ1L5RM] m1HK Nl+1üH.Ae+ @WB+}c.'| Y҂A);&9j^I#$B\LbP/(Vn($Hy~^8^9DCzօDL1E/sv86休rcp؋*@CEy 4Q^/զJ`ֹ >T| j`o@u\aWN6]-X{.OwFbLU 8"Jnh8.^}y8Ґw>L)IѴߍ!9 n4/>5td^ӓt1[ٝ.S?qR*12O^}S21Fe- X ]R9"}j}n bd;`*x6+ӊ%|&{2 T{ܰ=Q!$L[5Ua#:S>#]GupY!TV 4hS$L 8}62w*ka1 ;>Q>0AzQ&ɡcb9jC4kQK۵sj QXrn0=DROp :)l&%SY;GˏP~=/ e>%Ԫ:-q+z?d>`Jn,f W׽ShFxc)BqQSFUŸNW딂[io iT]%xH26yGs\|SSJ71_]+b-P@2XzͲJ /_~)D.Epp=Qk~<g] 6QVϛ>Iqj+suKO ^,NoNpg$ǟQ^S#yɃy29$@ࢻIZen-*'{ǿ( 1o. $9ZLE7Pd`/;85,f~VuJca9S1%u"AvPh\ve*郹iBUaV魇p*% 埣 Y.2VaL'0Q/SѿY?Tʈ0ņf.<\Pج.e`r{mT+! i!X.B:IE--7h4n9Ȇs_s"sghJYz%_x/0`0|\`SK,u"<ru_yGG xz=Jg;itI!x󗯎X e)dͳ|RJplPF<K4˲eF7=0ujݬ\$"!XphprOj i@$D#Bg,MdFrBG2 oR֋ϽB{82JuL`+rb_;_MX7fQ y^y̤$Fl&.G0zh֯@2 Ia[ 'qN`x˖O!ZVp\g2|%7;?K6w2h~X1CH>3OPۜ>x\DtS^GϒbوPJWO s6NO)s@%WS[5ZEQ6yx0tCfz|JD51G R p bܬ'DU^wzL&ǐģD;tR Q+l֔B}*%8FjOPLo,y6;ߣ>Z]|J`v&9:e'ҏ|dznZkSRFGxF_Xk՘mqdR$2y6wܨo)I:Q^w*CI'-xH9L6N}J7O4k`,%@HV!$'%Vg$ c* Z%;yb{V> Un)k8siGx[/A?HFX2k v{YQaMՉ!RʌkdKQ8; NRghކ 6a#BC<N՞QGy~[`S{w((cwf@%|[S&@7=WŒ_C ^SEūCVB]*=]0D'T)8m=gտbբیLeoU!øC:q&MTw/KH,ai@qo5Yו j?/+%*iQOW >j$Xy%nC&kȭ#&CNvn! f1\}_6qxpduwO7 ,fPldH^&P-kHJKsN*E6$cbWCV8sO03z J|=uۖ= 5+ `;qU CpqզlUTn+8 (ޟ}YrϤȞCu{ op;4eĭaD N1lK(r-izeNb (A Hi\˧hl" <-?]n;NE^yp㙁*.9[[l橃U?(x7DgNjx>v}-v"\'#NE& m|lH3-ȶȷo2 L(N5b e5߅KfXqiF %'<v4ҲS)OF`o_iJG@Q54S,]xI\h\tjcc&NM,-Yc(kL)K\S&k}uЂr8q: -hLK-rJ<. ZLsEme3'bǁ&mE_9鈟|2F8/E:kx#-Ig`UlA)cšHP ].|xvl+b>?K$rƾsRߌk^3MS΂ N~]ٕF䴺H^!1}IJ/3[J ){68C 0L~d!SeǦU m*}$jth;M羴4W1zU@9sBUyE.LGݚW4D3RAF[[BQй촬(kz,R3Yw4 _ Jr^x*扡X Ε5*1dO5BL{co=:sZ٦ IWdMkwx/Wjo&t׻$O̩S>3G@"# N7!4D7&ۻc2vDܻ5kiM^cVYR DC-O~a_$@X/'&>vU!Ӱ̻=Z|ל*p+']O?&0_FPkC=>WKȍTM]<n XBxIw.-Ѵ9,AGv" O'LRsZLYs'IY_K2i=.ӥ*%p~27 =i;C04?k|Н h%.;ߞ `VU<#U FҮdOdzP_l݆nϷ\#!L:\'I1ӠV>c~ZOs 6]g%<YAXJNVk%%{K߾D4~m]lDD=P7.6u53$sAlHl|\%7h_yP&.l*Y'..¦i%&wk_˖D,Xj'hp? b7[ i<ȱ gXG KL%uw_Dw@Ie} \$r#!ԚqF~IhMGV?BHæErGɃukUv6]~qe ,*hwwP-=Z(4y0ؤK05y'X~r-=JP7X"={UPCسv_i~6ULBvـ3I-g濛^Ckk,i96j?l;k +ԸwfZ-ՠA'|^Hɿ^ a[lK` LR60X^7h_3'u s]//Uj׭k#8ȍ±"F4}iatz)و&@o1Wt

>Y6Q lMayP<܁ old0 gU3V:gQC\ul.kn/..ύwӼa4E+M}ۿ7 wBxﲔ 샔L#xhiۇ$|ʶu\RA s,&,*JMkj=2MlK^_D,]t{p"iJ0n8Q# ¯XU: S% 5IܠFn s9$DqjW ܫ`)ImE(k0!rܶ*N@" ]C.,H='ҳ7?D_W'b lJ#O3%L_~Lsb.( ~J} ԹxN%l s{=snv([T`Rmb+wce)SE5[|P#-toA|v=5/a|Up(hmaAuyIZQIE$6/jD<찝 h/`z1etIPoǻ%8fVdE+xIf"u ч~.:Ev ̲#T=CVE\;AT4;s2dL$pT@u vJ$쐃)IHx$أ)Ҏ4,m2vBYcC#j(N?Cx:҃?Gg'MkCkdo=w&nq$8"#(FFExzv\%N{t`Cw]2[(pת,'vz-ȃArDd7h4\BLLA.\e[*s?^eјY&&dpuME HVQ.@ E^f1>&'ص=5jW8Nw~Nd7l&\+' 3_F)sdGn:ͦ^rY%~+Zd[; \/*.B#.e+uMmt12\hnKG;\'gGuID삝0wʃ:bDŏ#{hMɣ?7̘\[sm<.'@nBvs#!M9?,/h"Ч;]Ht~m,q1a8588ZщȎJBWdnV;:?W>0<(h';m.73\QB\子fM\s['0.Ϭ:B%#+ňOw;y߯/)MbLqN\K=ID"ڿىCb%sE9M#qWh֑J/@ABjE]xj)Jo~ cD=;kj܀öQܙVHZqVqEQgj? Ǵ]T4('rM̳_/Vv-W`.#t릟yLJ'z΢z|.sr# X5#ӝz7_C "9;h*HHDHDp$$ҚKmo7 Y섫W䨍h36hvԱQZLq8mR9w#n_W|4t{K5¯RRJ( 0IO.>q bm׏:,Jr Hԙ}0B"~2_$nUעO& rξR̥0[@(@`m /離؞V9Q͗B:(V'b عJ®<5WD3J׀PP77G׻=A3,fNQ[MbFg&fJS8~o_<4/3ނ.tfϼ#}TPoXuLʧ/= ?G]$" J ,2.fYHf::L#WKVB\EwKܽ6A8w-}*lݡc@^x^ #VwƇ`3ZB)7mH6d?=\ K]W~d-k =?wrr>F+ =v(7yDimoE%-wsr.3eSr?U0:: &Iy0\i%NUv}yu8FVѠ/k—H&!]B^.|t>xD)Px%HĔO| d7۩7 )O)ydF3=hQВ.\7ai~ԅyqtzOaxVջdsDgaa,̂w}of4sx}7DE3 4{v7䬍>j܎9-q|\^G=:t>+sip?SVmQ }ҕ%lz&)g0I* d_˳ B\Xtxr~,~ #:R[%{ ,1Z [lׂy]1\mQ 4#wx˙99mxȨՉZ@ R"MjM4`TeҦvt_S-AM=&6fc*Tӳb\f;dfm4ՠ;6Tm$v{zm3s*D;P~ܐevQVξ[Z,(gw>h$xX!mͦj#T0%vueNS VcV)Q|!׵(XHpBs p7ǾkБ?=IhAt%QWlDംבgwBeRR\`€ wK+jnǷX7|wTvB y%h84@Ыs}m)Xɳ_3ɻH+;4~u㬕90"U7n0HDž qO|jP e8X40Ys`9cϤ9JDqˠLË_Ii]Bgk&'PXLGJR#U lޮCSЧgV;0ɍ/t!3 t濔754r^`)/`5HG`ЪHN+8c k'!Ӄpl6VU`9fq LK],xX+3`AãV|Utvnm5!hzÑs/¬}C\5CAĤ'yU0'\Nf(E" 9pL/6Ѧb!4ڴl)_pjB8S)D1皺*p.f.S7t]rX\V<_o&OIYpka^WY#_0ǝ=T~A7'! jQ+41s SA 693ʭM|Hª})fGdK)_9:ڧ[nDTB~Ux)qT w?ʒ^z$|xdAXm/_= ^%lIYDag0q7Bzp]T9“YyÒ f(R᛹;2枧v q *m-ϽȬ _FS!?mN4䐅7E8 \,&] z=SCvnyàb?ABMC+^|Leް;UjE+)wnR ⸆y~gg2㏅PVk9Ы^\BW@5Ug6홼ͻVQ nA}łx0ݷ ?q+ cbku6w>k姧sHW%K\|?,NJ"v Qk n[ؼmY'v(.[gd6C .Q1tΙEΔ]ꝲx 3YA"+jAU؋;Ïj:Dn8P:Oۓec;-Q)ARηgkO2!m+f4 l F36w~x=έ#@8~ 09"x o͙Fi0Ψ.h6ޝ/@kR[ bmILnH6`0{V J:ۮ1Ŋ`}ff&pd5.\gX Z&WЬ5\^SbSnzJ岥ՌԄ E! *U¥CY٢BJVzlH9'(92xߺnY*,J?(S=VeUr&iJ"l3گq ?-"ۅm!_0%/p?Dx,[b;r FO['fHB{>֨HL*pTVkQW[~`t-6FZ#ORhBs> W] rN-7jw+s7H§tZmhЂ)1DžI &)\/;`!Tw 6rϞоÄH){rN}&B[.;|M)U7èxabcm-^F$Lx=JXP>1ŖJ`9B.w ƌ87m9љ]+7zܾS4H1ZI^$~$h1'RTZ5jT%ԓД?sOx5nXCwq&ŏCxdu5 zRm3~Uz1L;80nhca$a#Dkp-yBSaQe v 4Wn]u1UGb8hHৗJRE/3peW9V|Y(ϰ]lsq PoޠiG4%⒞20\xuܰ v6 M55&x'!g ?߀!ܔ1:)|c0Y拍A|]L$̚i~:[O@RC[RN,I߯R}^V1ԃBWدD !PfBWZ,2]eˢn8B-hREZp@/`j9!DWՄԄKrs8 M`FcJb\R[3dK5 \QP2\ ;@+{.5S  jd;>:42u)?j4@:1VHɎY*w}BqRH p}v L0+jsEw f$BMezY@M> \lPX ќL[ړF]tOJ˲S]:iʠ' "tȽGiG^vSi+Gf1-}jvAY;/0[TA}x*˩+:]$RO^Q34 t6|#m!b%{i㋃YNuȖu.jѱWtPFlU8+t2pL^@b`!)iTǝBGi+J| ^SsFmcL9GNr,9Fy8(a%Zy\kEG7 l;f_7XY$>q>)\c_`ôQ _O=ֶfcV6Ʀ6*?CHTY8X..+_>$Y޿;J'wаk؟"U:xWql{Y4G*i6`TP&LG@mgws/BJ˂"̟R10nkN$BvʥPH[>`dr*#2؆اMS EVWOo'&UfBLElMڷ] mS|qoyM(wHZː ygVwN-E`0>Qbi"25xK<9(#Ŵښ"yy1Q!θ t@ut!zi%SϴW/!UQda7,/Ž`fDNj<mvOF#6DP Asׇ؏ N QR|*(" AyS-^yݠ&yPpeN%E /TJ$Q7lac,6WajmTr e-3}(^rYGJ{}Wzaq1]l t+/ZyɳYDjF>3?Z|"uf֚fuh5K1tп 5XKpξ0̔A|E]ˈ|gʖIs{mssf:[¸ƑlջX_1 b^4;%mwe1@3E"+%$uƝi76 2Cʓ6 @6^Br"j,B36<<ƣ179޲mMo o7@呓>(Uh vue GD= vp!.OkS4׵ի=²+Aw,uM!\m 8oxOModP]bP}ˀNt*S͏((Q_?!?Z43̀Ԯ"?ˊĊH/ \_'h%{H6SP3#lV X?漊b$3bK5os'KhsΚ]e=#k y)]Gμ8-X!Β V:SNY] !Rj'#TS05gI a(<ЛaqfP)3EneY+;I­_q _9-ykcq:]~D (?L3/r%X*=юˌ/ C TWIFW+~e Xs \ ~# >Hf̪ixCe՗OX$V{ԧk" q8=r~A{r))+s۬gsS[0KE{/{U0jWĤxŘO*F0yF=e^˱hќIFpv)fR!|[c0B"9Ke?5I*EO$QT ]q$T./pŴ3hK?b424$0 )9#]|C'nq0w}guD 0)?L &b?J95?9n "/4ڂG`RTٷ>:Uq')"m4AbwEނ  +]u3~ئѫ !D F"V%W|uO?g^cl&Ilg%8|=yߩ7QyCДa&zL_柆}k6x]&x ^{cX 4W`yavN^dgk= SiF e?Cb{ǶIlmpv5]!"0 LÈR&@Lt-(!E:|?-Mr:!!5 fu;ךPz%"ۧEbXXكt(d͆ȈG+O2ObE8[,8R/ggAOc% V%U(C+} ZVA0:Kڹ>;ñe$p ^Q_QxG XIm^yHdwL5D.jt)ڙM|[ѲTYddR!:jAL[0*؊M_)8Hr׈1&G|O2,`̑q6'NG3H9u؍ˑjO~t9BSAwYD3<ċՆ]=@azwҿBOİs{/17t8ZS?BJ"TZ6Z7b$#": , m3uLP>è)5M 4OPbf8 suZ 'E16h\N wJI̚oikR fCkc {.]R4*7 G3t͑gtJY9F>Q"~JgY >WWxLݡ.Ul}h<(9=rPiGGn)#'r8iPwhuj<ґO~RHɑ_ܞ;`~g`ʩzI赉h/j10ˡWq0)l+73lM[EmmѸ#)r՘6)6O&_õ}J4!-‚Xa[ kPep$@@ev@'rG_; ic(mw@LMliVS~mS9c#vK^.;7W`1qŕ=p}44!_ g`i9')x)3yq&"jc? J!zT1 Bp﷜Ƃc8+c3JCvGSXsK=棐Z1t'5E֪h%=G #Wj',TcrI@9^ 1g1v0=8$xoEu~ɀt(,2;ם,+Û_JݙJQfEjJcueSjKyXEݓcBӈ$d*HK#fNV"MQmC{\H 278=:pIRfOp'Wd 2Gp%F|Yi cpu!\4&\@ѡ$UyVs@DѮ2y<9EVSnCjץ?z3P6XYۙ ]YCʫծ3_ZN:MǑ76+-1itX34G5|+o鑮 r Z$@1t{(O>Ne,jb{Os4bt/>5>^-8~$&Uh^tBo,0dz([_W\f Z1qD>~er̻sQr+׸a-@4j-r79,X˽gjH*0z<[ziYEoq"%q`v'/DdWځHH=ZC.oU%E"Wܖ:lcHmuJe,oMv`m;X H4kZX]䔙K裉J!dh!Zg~!='n'Ru'"QC?No5{`)ԬCڋiXk"v.IܿZ 9HF-Kkj ۽9<9v[zRs_W;:EqѪ$^V̖pEL@~2&:G_FaY̖0T}0J|{ {a$}Q K/ >(4;ۘ:V׀@<K#6M2~`cqH=YJY򱌹Y:f S]BB>y;<b"ٶ}uSE]Odf,D봮U*t1חmU$EnbWY!T/P ; +ZRCD$GU/ÁF?܎T.-XXF f#kU%a͟,fL,uҋ"KcM*$+&x;K ^q_qtx%gZ I*=.w‡Ⓠefq.&U~1 )Fg_ٺ !L e|dfS5',Tb1r1I@4!]xPX)"Mid+)F PhQω|MKp#nHcH zTT<&m˷)`%Jrc4΅#8ZwEE`UC[`J@`:=|GTlѫHq1vSJZ`hL%]&Zw2vp80+͙1Чۂ7WKʚ?wk;S쭗ȝz;&SuvOu:FPd#?BZN0.S)kRgr<~)5J Gګ&uD`&NP%Z97SACfoGYwԏH'$s]@~ WMG.Y\ _vI~ތ|rD :VT[n͹z?ոDLWQDrD[>c8MQAtasHZ4˕Ok Rɦ̯*YT?}OK-[^Ԃd aBKe7hhudhkw0fTR?\] l߸u_Ral N fDꋐ *QEە 5#j/|154=dFl9MXQ }LKFN4Vuwe#`pݱ.岹7ƥ![q?3o dd79_@A0蹱CR텔뢤} G ϧc{wԖA|_4RSwh%h\ĈKqɓ mRZMa ԯJ]N@ߣ'7C iYɞMY5~( qV s 2?ieok2`IC"2Y9t ޵G;ۂr.a@$ #.ݴʨFR5kr>2ɞ57!pW=ոH e:^Ga}ѱ/y=z5m+v>N}lO`/ 4ǚ":*]a7Ȋ4c lϦR65| ߳.I _Pف JծN Jⳁ~O 93s)|y%RscSv󅜑Ls׻|&cƇtA5-۾I`VMo/l$"E!){y;|XW`IKYK{]:!gfh-'\(f>$wVE EV_:ܝ B`0qTC]:~cDeTV3jӡR-uZdoX|*eEk߰^Ȍ+x2S6o2tbƯl xDvY/2juJ>@x2$)-%bV,{KXÙТW`YG߆)ѡO|ICgu3P٫/MT @pԲ-}gP?={|;}ݣ[>pj o6(xJ0NKLԝ Y)T?n:dk!DW^SJB̴j-whmEs &Or{gf0]Y|SjVK} #P]Ĝ"OG[R!RpnmBB- c |;γ~= %:Ȫ[P;9.dukzVpv>`EqL&qdd5B?xSƆ!|Ei*5 *5eᦈz;(+ԛrmC'K_ FɅ[ŵeP<'){opボʣNoO5JTۜ3cbbgEcW'+ŝBfl(;~N9-A`u r fBy N%2lM3E}V X`dϢUОPle- SA1=u?cLNmS_cXiEdXP`fQ-ڿ1b/N2Itaf<Mq:Fǹ$Gr dހQԻ&|XyWylV8K!7J`Q)y7H`(OwPm]-\mʜ*;WEe&+bsz*`}Vʰ5}\zB=lZjErDRͰ[9h_K@(NJmaF5* ^!&/D0o2(WPz pjШQ]f᝻n%SbxtYcއ)>FXn1y8SL"-1DQ(ik~<7S~/r$wqW[+:+pp1M Cg~ঔ#ئIul|9wuW1,tg!tm*CUj~z;o!% ]ve>e [Kmzg8W0m)$Ndz) A~ nPEՆ=FIL] ysN{|_nIp9 Mx$ c[sĮ5ӌ(<4NgpYEmGsl`V{K^FƮT.USKR[DI>zGBF{ëhdfzm'$Uk䙌:iWuB7b.pWvP~?"^}7|Xw9yEZwZFn`TD-V4j JÛA F?Bf~Vbf6T,Y ^!i7፣{›\3n+Jmj)z=ZvXM ?/ԽŽܦtˡAoS ͈5m 2ꦴ#m45T~ЌhO2 x|eqI.<{݇:aeI|4` RiSjEЏ" RdS 0Kl|HC~.{SzJ.ǚ"oxPXf1@૦VR@V 4d=~~"I!3sM$s׷/%TtOkk/ /ItjY.#VZ&GdP"]0RKeC$ ruz =.$̢-Fl**SFө=]ݞn_58'uhy3>YJ_$z" هI 9rՋwuw)$$ ˞KH c*;(C`JS9#<[S'%zbhM*]]bto2nDD^J$sS)qqAԃS݁ 8l^ůHgRJx˜=Qw b'떑rߴE9RhܺҁI"!+ugusV{:,CJ}:Yǯ~lѴ83Y%7Q`^T7p*t۟|GXN^i)1_sLRQC[UlpjՆ/),W.#*i[`l.D+XyWBpa9r_EV\1?RXEQ= y S\Lp%'TẢUi j- Ե+o zg%ZN0Mf$"{i_8LWE1NLz vc>^`F1{- |/V6A͉[n^ÏcYWoBA/|kuGuVpIXW1טnT.l4 gKQ<>1 !۝2N_ǷT_jT=ǏA2wH6NsUv8. jn`v-qߩ')[G_aG=YTԫ HuZݓ͊Mmˡ1v麬bR9(oIPD]ɰP{(M,P`G=x-i9VEe8pǧq.MFOP]L`WND/3,r4H?"i䐽Kas\P_rkOdцJW쒐[\E@M{C ߿$Vu'?],'80Cq^"߬,[e[7slAʌ4j76upѱPy(?y%Yɰ!Ze}]AS@I70̒}C0kS022a&0c ﾿ŕTWf˾,YH/54^v -68Jvvv0HF@%S+m!O׫|2{ܹ?kG=P:3RM[yb4FB\Дׂ[XmH,>e4x܋ҔT>| 7Y1 C) -?V8.M2?6[FXĪJTu9Bv@d ҡsvB֠]a?'mHe(q LUU^rvμri2=TAL;̙rE}' 'hK(u.74xXGlIq1yELCO]́:չ04#k*;abTIhv;vbӭ1 jD!L݌PyM@S}lR^6J稰)wc]кmRtYWQRBM݌"h)2ePkWAQսZ.#<1]s@ts!{hV /c+S* 2pkIHUf A~)L{OPIi8OH˔oY SW W4ө#>}k1C8)kQ{f~rxH,\V/1Ij0>|A~4r_]0%Qu_.VKh'!H3B0\Հ]sմ>`1!K2Ov:CK<[vzWN+;qA@S Ehw3Ա4(Kwϵ9ooN!DؙgaNVdKض]@ÿdZ!Ttbiw9OܼߕfvuH*C,+g:NG #]AC"mi_ .e8t,0j$iׄ\^G[qXKJSC+~H= ȫJR f|%x1e>yvdοH/0p:ߖW%0QO?c7&MU~oVNLj`lQ;nE2d&E cIС͑~KO l(ډjKH_ TS"m@\y=Y.Z{Bܑ?z+%NK;H%Ki3Ʒc3mmgZ,6['sЗ4"†D O|]wPD:ȢT1WI043d6=`ύWg j=u+!p[; tq/ H*ɻ H؎M#}f1hiJbs1|A Ï>½`oPBZnIxᲽAMW*tѽ94yKkz@{:/KőgXhJA[4~l69%2k" Nk:& C]223 ue9aW_am8BZI/:T)yĥ?>kTfa87;ek.%% z w|K?_-44cEfx_.=xЏ1]a*O6ԯCi(d(+{FAzg/S*KF.**{ذbjyvR%vqvWsTbje\C-!qZS xŬ ̣egxh<[|> Q仲2ýsvѤc.ڶsQv![z.rnҪC%oS1?ܲ+d7:#<[zQjpK<7csUNY_Mk6ͩqm- B|i~.R/klpg^6xpG(1PźT}@l EFt)*.tG|Xf6 $<&=Tvl4N-%X ,w:ԟ~+tߜI rT {~gÑPuagרLi 8;^Euj@{ J^؍\kMѭ@ܖZ Ta<5K&o dȭ5t\+L ˘mr}ق+d{q!@iY,1Ehý`Y;5eۍkeD@VAKb]iB&Hq=Ewou< .Z8tzЯ&z!U@a΃b>.t! h*!41ZGK( ?{os,7#X?p*[ߺ/I[ᦻwW7Nt&Z ,Be&#1Wt"g޴! I o1Mſ;~h+TS/4P ӈ=L9`<ⷰa/Z՗huKEEÚlBy77$ wviNcs])KDZ{?r(*h֒<[7[7;\*'\SJx]d4צqBy⽓fc啜&0ŕQ_xoΉTǿbR;A1XWCy:[@'޻X=]cs/)^1X+~Ǜrh$ň'B}-62ЊXG22I(»2+GZ}vsSE s|C6_t(dG&|yǻd"hbe0=ysjV:iEyi\;߃dueS)NݘN"o3;y`Tk2?t{''7$by_ŝvfl+'A12h`USޕX` M:Yy9$ט ~";v="^Lhr88Ro~ݚ:,5e (4޲J?x7 5'pL,7Fw=/{Raވ;,hl4DE96i?CSW9,xc:2~cUq>~rdSrO.MPFKv/.Ŧ m#é᯿nCt 1 ø@z(SA—5kSLߩJ?ƙU¯.] 9C2hzPԘ4V4|BJd]&;%mBP߸d*襼B+._Pz9.0ET] HƦiA*k C6^}欝Ȗ]<*`߯v&#I2-,1~t&S:吩Q8oEV 7R-*LC!XXn/XtFT oM[cB;-{u>1qkx>io5Nb^t&2 p+eG, GةQCx2GjPf٬6.b I|qO- e͘\̦6OE?+[,|8?":qy|XYʨŖ.O6cHT֕ASG^U-sEq?TlX8!geąn O9~]/k>my=4hM2daPpU x˒J C.AzǸwа̪Eoʥ>Akq/Bt}r~1NxwQ9p!5j'uSNMv}uEƗDIBS1V8ܰkQ0ՙsry>" uezK,L@YkbK 71H6w<"J|$M<&+*m"|7{')A$悒8A)!H0F0CUefLg nuv}樸$D9rpٔu-uv>@ Y)!t&F-hS8`T Z"έ?H]JO'$q}Rwa [*543);],n6En2f,%ukକ=/C4) )MkD#?qe>ZI#–NFu5 7 `\@76Qe$(/_}0bNa71D]~Egx=,W9UvP&$Z_bB P!L&C_duwrVScNl ՟-1B;zC/Uh= F`eCĦ?R?RPVNX +4,P~[TUXk~TL_ri0iZxu3%hӁۤe6h5Fv_FP]Utܛxd_pMm] h=i^ڳc R;ġ%J0>zgfdx$8`p#lt"DkAa-uWY;%֡1oC23kVNGQixsHgc t.r׍+*(ԙ(.qJ]j"W0`NunG ϑU(1k0k8]/^aS^=-2,]$n?˰AX^1WAjZU:D'f֭G3TU9W %ϳv;uc*9e#u/Aˈ^)]Dħ_ryTB5&NUMa=$}Lw.d꺌na%FC5{<{,ЋJ]Z@kDF8kdnrQ]Ğ_J䲸z `?nn L/Tv1"3l {faRs,= T-e'K/Ig^Cj]]o!VK*3 03)`1\.rJOAߛG-ۧ~O#b%+$1nYgQ*~US/McD]lti?K&sME, ~ $9 z$(?\26- bZsd#|8ǐ6y3WFEMN&I+Άslv_;&t3ϋe/:!/.)Q TM{i8Zqz9u\>> @TpU@<"tBE͊-#"y>ț!8IXGi[cv4S77/ ,jS?Cf|o️ fޛ+e=hWjfwIfJFM{(9qkf[6")^DG8n­49k) o۱G{Sʎ<嶚Ĵgi{7zLSq'VҨ+Pog IBFOŦ1Pbԃ>w1왓k](û`̇bZ$)D}+\OB1WdM) ˖Yֆ' eoxt*WA裳57OA)[Xzr(P7^[@s.O\RLRrc\?Y@  EK5R08U"Iք\`\䤵NC8Ê?Q6VmԩiQcWx \ڮ9u&Hv6=]VqT37W m.:@o dõWH*hsnajM#Jь/QXmM Z#Ыhx߯p'a* k700kb2K,#^52 d8{ Mʀ' HcV5)6ᚗnK) 7ZCvlN RG34Y9>:j2]+R ZvҚH2ߥx`q8qIn}2+Vp"祯 fDq=xiLtbO_4CJk/#5҉0#̧Q~Ā%&u|UQ HQ G笊*)w. Ǚ`FoMp]~L@ Z> .3RȃTH7Ý(.Mrz&jk ;l^Q1,E$|/ |Á99p\W^cE$?\iYEL$xWmܞyڨ~S^2!affD3Vil*0<&yq};]=rX Õ^A'1tDw5pW)iu-3 %{巰}19tg.?҃'+HYǢa|Y&Xu9=ԭR?[BmqʠA8ں M725~ā=vX CHF))&1e(XPE-̷?SBM:%EV Ư+qaFBp$w@s-fLB. sfˆ%Ɂ@@UioԶТM=:\eyJ29p"!P{ ۛ/;<sr$`vaFU;DhC?xru(+  Rdܱ/ګQJNg>81 }$eig)w Ǹn& 1|#; ġFp[f̀uQ Ĵd(WwPbWѪrY|tOC+.s#18a]+юq·/xh*;28z[=BF)nSX|7/ ž.t7)$]|cM*>=Gǝ)1 |*XY4Pb/D?gI<WS,XNXJ. >>M+KKmzpNJjtD\Lװ Bg =|9Lԯ06ps*}v[ A<a.C}&N >?{1,sKmF`RdpPbmus -6S ԕA{b9+y|E\RPԛi\HD@މ# iuމ%@+4[JC%.) ҐO ^Yi"UuAwg:srg>s oDXxzX_ PF aĔaBRÙ SǽM=Fm"hmRpz:[yWWUe{9NtW~Dxi$6uQJkz 8$N΁ְ..1T?4Iڋn53:9y9;sџ|9?NGWVQ"`'Jhxx1)`rou>9>nA .Nw<Δ]aҋSK}Z,AH0rl/+4 ofQ0.`w?#ֿ=L S+w!Ƶ;+=0YvGY{qRN[NC$"[mo24hӛ8: :ر/cHoy[-lVg,K dY:cbBWc季ӢFfRqTtK)KL)OqQA I> cA3<fI 7|J\ g/m]-U yԶV1ڕG`5W\qD8ټyY{AGZES H8i#P~Z(Q=lΫMܘ9L!}&;^6 #nP~ӡL,OVQ+1F7i`EXZC)Hkԝ Z7 Arf2ȌZ,r:#iku&ؑנ 8!Bb3%ml~uf٘mKq<0:OS!eZ;i%M+>5:d?~>C3.4"[0^"ok.H%>V/6혛_e#cH C`V!d5{-ԡ?;'%t/'Kkrp&sy`KNoPJp$_: dg>Ιh-;)Frb@k,T: PRst`ՒWkV" w7^#[(a#)6(m1k\ӻ0J*Svv]7RecV0'\4tUs׉m>^6@7;""оi^Gms\~ ~fI($rV"D3ma>")55Cc5v]H [T}O4uFz\3B' N1K|V}مZ<'1d0wg׺(E1J ."b6w%mjbYnF^,`X}_yt5fU0sW:[~HH-8K ˤm2IŪ>V4"ƒ[M88tβGڔ t_]tCB9Џ̴a:4tHXF MQ 6'JJUEK,(e(h]`u>HM,"5b[ ~en(--(Jb^УL_ᵸu\,Xģm͉ʺZɹ"+ 3ha vJXJZlfW `&b.k'Gq1+ُ܍tS|:nTB_X^n_%>RhfeDlSFZp?]6%IEmW{omL_U4bKLٯ7iJ ' Nb0F6{%!A嫕 [kjJ 54 V*Y,Dܹi, *%w%{A(`{955–Bu€rXќ,-cS!\Hv_]VXꋉ6-(f%S^?LY) ]{f JP+ZSvѥZ&gX A.^|M*V:}w}vXY/>:RQx#. CŐ?i{"_`[3d1}6JaO%o-2S *g̾ /M)?+CQrwM^89)lPf `n+)ڢPdALKmoPAT7&O[>bQlHُ>3M;O ( 8S;)l$MtD~?_s`-y5vz+g/@x.o/#/ftr[kWmC4ոƎMuksxuJCG B ?Dz(j>_-G҄LANzIo83K"ֿSt> f1 ҉ h/ί;caVs[jS )ziNf8OYcBNbS:QB`$>.I({ZEH_Q\3A2R1OU:Vaŷ3m4SL^eAv9 ΢CF ͋.m2<J̫F)l6xdu߯ӂ;yn۷4M\F.t͸%^INv:qIKA}69wD[H։G,SX9a?`KNWw嶆;6Oc ̮i}Ǫ]"C#Y-Gcֆ BdUo;lj3Xo\GmV>yfL#w2t5RΞ1F-6V^"THSNao:3p}_e&/5#V[j9׃[!_?JcXry`w@oN킋YK(į@YkO=frXm}gcӱ*3Q\Un8DxЬ_N o8_m ᤪϲ6wQU;qfO?f58Hb)- #jNH-nMvDvQk/rG{;' xjQwmV5,*)PD_%[2`2UŔ3(b%f[j;&R"2bBcfPG P޿K:uT;T Zb{sLZj5-\KݢǢ5/^Į8߅XшԭfWYx<+Njyp`cGmQQ_Xp@p yt^:WYi|*^Ax[?&NvAtsx.!%n>˩{b?[FbN 8= ^*"ԏ !r{ /ʙQ\60 @-+%jFӁ$A4`mjޫZ>/Ԧ'lt"OtShy8 ey1$IQ<* |<^_AɊ[>lH (I2۟E82FNA ,|Kxo43+p.Dv,2LJtpɇ(I3UZ,\#JnTqY풅EZAf.I wޅ՜ڠƬ"*+;;.42}XF3PXJndZȔ Co֫u'BP` B~cX!io^hrN^vx=)&F{Ln*>.x$ٜB7 嬋I{mL) !5oT` 8 7{,['Jh6Yk^Yaȟz@7Jq3^`M t4um!0n>bݰɩK鱩nU c'|S2#psXd/"mV߹]ˀY7dHKŬ<I] ΉM\ptjjx)КPn̓IY\"S@U",鷽PL4J&mFQpŘ ߼ )ICJ&ɰ!jH7zG󤪽 YriCZ23h$Wg[Z$?*$uC73ϽD2͵/ mSZydHZ8S7W6]HKN(<;ll;?~ *2U8dH}81^zl.8&xGe %HNj\5atf &MqN)sMؾ)tuK,dʔ/b5D QTf79}"c!x}[F`(ia#p1~>Je`[=Bp:g&4;nf O-!l"GueOm\_^UO<1*ڀ P9 }EsJ!~FK~KBzjnFOd2!An>.m m3S큋R/X^S+]L]а1^)R+i]p@0:ɀDߢGa= wy{X8 5GN!=.AcJ; N&wgHr1&>j)WX);J&+&` I\C"@ kkT,5&N#]lf a!!^Wqt '% -5_lh,8@MR(sMxJE|wVE?dct(Ub{V yP@@tUi+5b~CrSYg =i 2\i*cG7#&e :ML!aoǮD>MA^fs:EԿO S2ZE>LpP:eq/_|*N3 f9Yi%zVB3bx.Q5_"-j0io6O?'=)g rN2q~, N[4-Kup aљ|FAf>m WYc~Έj٧ x` 30\ πvG o.q)q֡Nndo3k-~]7C`J0'p҇xiA \ MMoSrq}A0I5%^V@d0T[[ήen)S "w'& +O_쾩P>3<)QC#SsvO <n4޹MHi*8m emA֘ iA3viF,WفHZ1.IB4/uG ,[^˅&ys&zz$hӼPY[81g8IC?CIFȾp%6Jg|D)짮t h=pr0jvd{&B peRĺ":?d}#ZD. -0V1cB3yfs8P;3t4ȐzN=XaL\u*'< Ǒ48:SV r}A+4p݌/UQƬ׍Uzk|!;QiӖܙCD̃\*O ˀ+, H,5Fp,ZrpͶdLΑiWq83]-DGTV ? YX2CR \},TYˍ5ic _Ed:AyЀ ֥K`ÆTa0$({{Pbt_p^S04]8pp@"_Ji$6 fzǗV9\d_Oqբl^7˰lVi%!^w5K{p.-hjjWlNqևH!PtL1򤗆wx 045%_ wn_ _)֒Ѕ`Y_/qIfR SKП0JA_EA!/7|h"=Ҫ6w'-; ϸ&qZZIGᏡ~/}BH˒C?JXӴrrّ&Ijl,8D032͋R͖~ĭߦOX s f'dT m:(?/?l 2 f$HkLGwu--J f;t I)C_7pG:ӋiLKCB9 gl#Q(Nxϗ)'e}ȒCe9 fƟ\čY&_MfZo"t ZW33U뒰E7HKސ/\=[ kz- e?E~$eOW5:ȕf^67ydܴ;dd,j)ƋNVE{h+7QHgMl @/No(sLpUn'[<#J爖`?gzgjQ.b.6=ڬ,sϏns76! eJ;3b 7Z7R6ñ-~b.,bA\.^"x^ 4j#iU.5?\c#_zO [4 \mR[)[DwO@Ygz9:[iSc$3ɳSe9jI-TnHt#==8#BxJ7xVLpݖ>vK[-I֬fHxB([h`t@l1{M+`~K*;ݢ()15o&|^ 2+l]cRd0EBhjRyR= ab@?4!դi6YlMd>z:&:$ C>5}JtC94g< <57(±,Wʟ't;$iEz!ݛ>Dz1H^h6ǔlyE/aֆґH'u.;ܸS6`_c# gܥ~*A~;f+{Mc@DWmE{N^håSױT^_riq*wilk2{:`6Hl3125( kfy~A%kNȸ#Lߔ5/?k6#tM4myv B`0h# ~7ߖUP'Ą\/η7i ca5\ yPW؂/f&̼^]4F_t$=72\McjO" Z#]zà 78j1ꂇ@οHi/CA:%lR8W>1ko}-Q޳LF/:ᨫhc Vj4#vd?OjSt$33/qNnU\ԜzE29rvI72(")$Zv~)~Wͫ{,P)2!C )dv(6cT2-h_W=5[O uĝb`_mAgf&}bqn".!~XNO,`ym*!fIzcδ.ayɞ ??.Pn@TJﰖs)PlN ~cƪ(^(HehJkI`骣H֔@kIEkYg!>*[sy5WV:>@wȭG}RB2L*+}U1.n4aٽGF#&z6txb7(S MoΨM[x f#kGs9յz6RR<4 #5,DD9 38St]D:lLbz2n{RClƜ5WI핲"-(*:<@1@it$t+?SJBz7wrr9VGR=;.xBwBL%hXGZG{a,Jc-o9ϲC`Z/17Ύ$x@;L[I N;O  p] vC 4S7 |kު=ql㮞 #gT?f8SIШ,G 7 eoOA{?WGeoh jcO j[&+Tr@ޥr8vDl8u)|l7YH-c.JӤ O艨Pn樷GZzr0nJbn [^OlԘ5yswfo* Tў(t;NB[ެ!GZf% !/g"> D.C̓_?1 hE-=$Fz..{K߃k@Xnҳ#i5v{gҺI?TvӪBo1j5 r҄Z 䎬]gffE[H{#)hyنIQ9͇Ql6]%! y}1جX~xmbT9py'x< alm`~IUɋ\YEuvc`I8ZJf m{[}=Gg7:v&$UXzE~Ff+p' 3JTR:o5Ψ' x&k"7\ꚠ\=#f,OWu'\rn?V-͑ieWDC$AIcC~_]bH.5E*b z!R)*(>uf<{|%-ϦSj!1)Ѩꊨ37U&#.ZtFtؖrHWܽwYrTQtAfgoxn7(z;0 J*gc?5&N[{ͮs*њFrd+2Ypwo)='>t^~~lpѥAc,}N= ˁ䚊=|A~՛φq"Wt <Iۯk_~y4" ;d840R}dOhSA_(9Or3jebz==E}m7M{^FIp0u3|G97L^{ꞖyS2#p^ᅬK9E]*AU1\u$YҠsE@FM֐_-˦%T粨i MUQNܒhJteFxR7 CtwW;>]B<{WYՅMW ⶱ&]CRoot]P:Ow lZ9xUUO,A@Cmkk>dԡkdOj5aY0rЍՎH0f݄‚M,I߉{2fZ>)HF M!z7yJ\h%WO=/Q+".MtsKfSڲfґJkf|PB '*AJnB^N9\kʸ-g7-s/(O<0hKQ]$W 𛺹ݞ}'@+WPSEϥ> Y&OqN՞$ԗ&gT|l$gJ%ο/{eg*fD3F7 ΜϚ:AbEVÇA;V/GNLs09ZAczP>7/E"x'l+($`gB3? QiJP_u`*կ] D(jR@V!叶r{bc@R+ĸ.Ʌ5y-u҆ɳ*ÓFԍy5u`?.*'8?#7ƽ0@i㒉nn(59=R/ ;ۑkKaQӈ.s"c}tϣ1uџ9w |A\,!-wM)>+['+igs:[]t= qzf}J0e=#yZHĢG/\;;D7"Jٙv{tamOXRYQ MᑺRTB6vqW. KNM0OaOWu7S†"_$+(!4,k ӻ魀֥fY>=+Q9x A3ۙ|'0Va_fzELFY-qI6[h7rmCPZZdz.IBU ۔[FnЀ,@͍RLx?M4bQSКuzQdݎ./p^ݯs ơ7*h2|VQ>)Ha3T|:*Vr 0חXcc`Lm9_2 oyԖ`ܞVBGLݒ.}^Fxm=@!i-K]TH2h`.0r7'g)uC:A!q$|`j$!$CRXJrvj` 5?W! r"w+Lx$2 lxJ'uPsX٤oT_K!=z",OPvaS)P񂟳Is B+@#R족?û|oźTJ K4d?I!Ѕ0/Kc.G'MCt ϧx1<t%U_)"sZF|V}7_Ô;~K`hӇLnMCئױ|wY`Em$B6/"(|g̵$":+܂\@7U(=S\^Q̥^(gdmV^qWoNX,w_SgRhժtjO(gY3SfE_A|Q&炓 \,̱k'ُ:Ql'R-YBe F>D_`M@:H4,@ NaNJm N_`fsE| `]?{«k]LyہqqfW†GjthqHm$q5 lQ83P)vB#Ր^<3o. v6bh+7z͝!{Kj$U^"g,Ϻ{\hɸ4OBeؕKEAn+{R~M8a"i 4%%MSY#[Q>d8LaLKdf.:, g$w^wsv3 %>豎/ǧI6JĪd5$.D(̶$IfG<TzOSDhn ujXȒ {bRנcGE7*tUPj,ۛ";L^ݠ9Ys#S1ױ^HZ Qv}>xNylХi[8*TK_j $tXgUM m7R ˞S{QRE5{C!Ko'`.?2j13}]/b Ďk<6ԝOe)5G5@&;H>D,7B~DJNrЊũf4'Á7Qz;C=vjHPrVh}$"q0ˠڠgţA~fɄ ^νtN 8^X@on3yDlh'qZ4J㥠bSf#,RVޝhiX2ȈsUJ-Vø Mrt-`bsS 6-SK1BcGA`5ARnoLݳ-;Ĩ۴]ZISʧ 4su)(Bly8tm.YN&vBiG~K~ģ86 3S*كi5#dvO?t8+uRW- $ 8*I& IvrEy_%FtfQS.l}0 PS62) ,ӳ$#*ZV9E;M4*1@[̸JZe Ѐ)XTaض!gxt56.\i ܝ6߼$C~H3oh:ۍNP|}`;>'颈,6愍I@$c:\ld`)xjuO Pzꭊ\pU S.TDwYg<@{ǯ4gF^ ,qHmUI[%tA4%%Z|B˷W81&W<0ݘ1.?}t:p'JHS=D7!Hv]bk 7 mVn;xQ;Jݙ.U`Hu(ySŮC(k( S͑Y 8{|7à-j1fH^}%r{S`Ce,ն{#ݮV\ڏ%[r-!nck[Qt.G.~ goiefm}՚AyeB3d 3%U=Xј?rNqx/0Tvol%Bc58nTjb@B1[4VlO,{Qy;\mu^)h"ɺˑ~k[ᚩ<1:c\^yoPf^/l֒|ȁ^,j9s$G6T~H;rOFVzco\SIyү%+"`A^HZ>/>Z7\5䆳ЍPɼ Z,CBض؎J :#{I)=FDg|\>ɬ2mY?*ŚK^& .-Nޱnj"֡WKsC֪QwHM_ #n FPvC8 ҥ3k ̩+51 v`Bch+,ؖvЏ_8 9⾅f=3KOҊ;Iw5N29wgUryBj]ryvJƊhLhdqL:;>iLHaj D0 y:^%  E;p( >_j2" Uzƚzjni#NCCW;XS?;a}nF7uסfl$aR 3^vfFZ5^}U}E6u"#8-K?e1ҏA0|ϻVlۈaa>;vzgYEs$MRc&띔C6d!mLX)joܝ{PRf7''UE0S٥ݷVWS|"̻uLt!m(ՌƑ֫5M#:XY a' 0:%-.dFBd].-'ͨxWme?P (x!& HW '#x q+w+/fx(.tk[gJ84eaF8YԐѷrMnE+̑mZXChV`*ء l4Q9-؊X%sL )ic5L J"o.wM9yJÜ;ݏ9;Yφ35ʞ^ΕaIwbNDI [ \P IcWy h ¯+Ieuam9)!&s7lYeP%%n)î@Ҩ^E3'b$ nm9NIXo}%w9ksw=R&]'66+Y~ر^B;OE ~6Ge~{8GfB\b㔦  @,0JO2~m;Jn]ymi['ɫai;1j&;&m烞Yl` 5c;0W >ڕw;]OpNN߉gF?T:ӢG2A cL[T}X^rF:"7 L3Lp LX0r%։/ 3 :)r?:PށD>4H'g*Žv_hҔrs"'+_=|S|DQ_XLkAǧVQxm2 4ta!V^~HQ ᗕ2N+H^I[DS- ^qFV3>).Grش}`{mx|- ?cDR"R(I:Tozυ{5(B"Vr0*@j rr\F;M' R|pG|} inתy9Z؆,ףVC'<3qsfȊ7m`ɰ$MQЂR2#(6q@^]M2X..ajGnXԝGѣ}SbN6X}&¤8f K 9[ϱMfFC$gxH(֜&^ϩ- ןWzT?|3?= FFَOỸJ{7ZeA%,سM#xEMa mQ#DjHW6c d %,'OCf;R إdr>}`;`0wT>#֕PxXlՃ@*ҋ׬(W.5A6FB1/sivAcIǤ-N[3bbwuAs 'Z1{$S]:k~S 4X bubuxVbUuS3R! 9+t|&skhlk}9p\hMH7ڹJu{`tJ#DպQ`&DN@Fn-QB<=y00@#n䲴WϧŻ_{;ku30OY<vst#1,'P!yatH4ICK*{5{ ,6Կ N-~Ѻ 3NE]{O9eÇK33"_5=(h7IQ$Ve׵HӽzJEdhK3F U$ , _BCc6ٜ2k7Y1t,FzyGM8$WzBޤ˶ep}~+$Bٲhѷl9 - D۬{p_=D@7)9gՎ2kF݀Y&ٛ߄#^g-k3+Ua1pDI߄w ܬ7Hz{SwIaY84f%% #R2,>Hǁ)$6"MRMg@K/,Vپ1֦ gD괆)8^@^).\4ӗhgmD@)1t!=nP̧??&jl`2O^GF{WZUph . 5XNGPp{  y212J*dx<ŗA5ŁZ@0C@ߔYbab p) U/հ'{/քX?R~SsA= =_]9b-aLdwa$ܡoh 6Pk6qNeƇqPmzetGڨRc*sWrތ9M2g À}Kw\ꌎ {>h3:Ϫ[Xg ߒ3gsv'5ͽhT)wߞ⠇}ޑg{]q7KU~4\`GAY2ŦlViKMD5RC0C_+h7*OQ_,zadx9䔣ȫ$lj,:6{4ᇍu/*L tl5A)K{^ TiV0RrC{yg%*]Td~ b9rZ%f fUEp=~Q#e͍M˵7Z&'zNm&yf/z9jPF%[}t&Ӗ?6#<J45WQ)PiW,;:ٷH35M: )Y/%`WDCm(v;:0Kz΋.sV 4p)I絖ķeg5)]ߪ]38 Q}?r+RcN0P8~(:8xN$ ɝ]8ӿ{$]ςIgݽ5vnO mGs:cLPg~2]/A{^YMlJ>Z#2Buz\:Y7+ߒsJF5zVU/X>[ʾ C oA SWG?z}$G:d'Yo}M)D 9+~ژXގj.Ql,cRX^#ߵœ<č iRFŭguv5;(E&UJΥ ~0d=+UC]ID6boX$U$vD|@B2phUjٻDKsQGT:Is)Pv]adsт]}_i7៥g3r jcdaNd@h=*} mMG+9Ur<˚h]G -HVcq R4dm~/y IA5['f2#ЭoӿWo^2[wAGlyG;rva ƄC}ЈAF ǠQѹpIȮt_^?̬q.O(J:8ʔ R^/̱ `hTm*~J`}b0zC-x(E"&p'$LRy8lY8He4ZZ`.O]Z4(jU e%OPtJe=='׻, $ׄG_-dDT6yV"gA!J'_^`e}FH%'69XP}%SZR-6MHC@n>f) ZN((d Ƃ'<FDn 4>)iZ_Td ߼,tq3VwuZ/c)nl̯b6Ua"Kt]Vʊv@`;L(yk'(uL]{&QE+ q ZJlߊļ]T/]ߞ3o4jHlػ368Dw1I13&(V1x2[5ӼRK?5Le6LhN)J%Z78n}d"Ub}K_f[.'0xRn(Fꓫ\7p.6[d%v\b4mBaN;)=G A8=I 9]DA M\] 67xT{Zb+{L NrLx?s à .jv8}|!dR @ tj$۝=ɍ8fj?hcYh)t8ןCWe5q?LsƥEy?blX*qr|Wd2E' 煃2B {a/1{=Thje>` IV&}#2ՃVͅXb0nYRDj>5*忟-&eS ]z.¾`+vxRfLwm$CcG`DmUPIntmRBitYTjk@1 v]5K)Ai3-ez|)?#'"1y& JyWUZIQ.CC;dN׃1)2A۰mc7o>Zt)$gݴƟ{yɪgd( b"EmY~ y8% 2NGmaP%U[\ %ˆ+VYO6*I_.ĔF0)| ';4J!?SoW%CY݂$gĕ}Y)SdW2uۣ3)/^`W.J)H?x\"r:p%ۆavi8qD,npՎq9 FрF<h{*Tz_ 6._O±MQF<PDGu A$ŻRcy[gDZs|ŴGeZڵO[bee>bz=`k&0/nhuz|L93`#.8dUVDW;лeDXp/Ād:Q} .)-I0=ẃt3@L^ *,e\MOHdz@B.@ 0̚`Y=n,G=>'mvlʑ YX.3A8wqO#[A=gt'齋G-pP(ǢWj.dj:fgIepGv_O kez,^N*9DٷZ=9pHtކ"ǘ<^(+"fd~\ImCQl=T,ũ `wcj:|̅.GR]+"3k ZIfYNٞTn^By9a17;^^0L"d:|Aʸ:У=0L #P_'$A:"01Bh7R'5e(o0 Cb_(ʰ+*bM /L嗫޽EUDU +9cHD՞Mz_^5b v2lgQ!"5ry,L(zQCOJb_BΡM]Qڶvt v1Iwo:"&,/b{g2Ӌ[@WDSȡXg$558|_`*6F¶\QM†:FVH/1,@+NnyBx;6\(Q}Ftp\tťYU/ pc V]I+.˗ȦpU LNR(uKhDĺntE2tt/DvS&׉rեDq¯JRZfiFyM~qKII̬aWaG}#3JI@a#eC = *'E7ꜵӧe7}͉w+o*`'Ҵ0sYPlyvCѸ݌'GPL&$Y1:ɒQE~4u]W\OpG]X9JŎ ,G(YAx+qF. z̤`ޫ\yPҗ2@l]UQKoaJ_0 LF61@c?k/M "ػ6^Ƨ8UV \93,H%R:54.oXP.>Dc3{M25k=l 4+?o"2. 56BT80x?k_E 7V/B=[DK[+ v Ol^#U}RKU0303Q^KOfMJcAt%}GBƀ M,@>pd0@+|;Hx#ٴ-w$2'<ڬ r$TI'Z l!V(?p( s#k?I/5_Z(`;N33nsUI4 H C0sXHwufU8b'UЂ/ǘ:zъU0D98\* B;NFЉ{7($~KCDT= voEbQP-oq;c0AUrlwlm@O0&m=*xeBʜ 3<1wN2&x{Z.#TxlR䘷CE@e]c>u8 ݶ*](jZL}0R,hc"AWi Pӄe! x)ISD&a'I5Pr=D޲PZ&LЭDUL(M!\ *|0$$Tu)R$%+nꞄ/U&Vz`t늹$CW!`,aPTF{Vɽeb'_13m4y*zwA|KX-x;mX-NPI2n eѹ\Z[AD4cdlǧs{ѲttECW*ܗhe,`}$* &b# :szݧAWYDfJ,   c&Re++%~${aLIp mؒ8vif7ժiOZN\h6/Gj4[؆/ cb+ao|`+⹛߆\mJ?[@G[D0;uƒ'A 1˅LΫ¹5ߡS?Uun'mDNS6O#VIZ&>O lZHQ?kΓ)ttɮEv<wCL$4i)ز_Ɲ6ZY$qf2w:r%o0u40oP.`I9>&1<B bPH&%Q'0_cIQ<2hI*-'U驑Y;lArYLawBגF l#>x{zZɓ6"h^?9i#̩ΨmH%ġhOMSm/)/o.O* .KVzǹ zd'[z>QՆ-;+C;;uq`֧[QŬ8 8K: 75!iizZT ŞѧE"w;ZM-YE.Y}ArԬwBľ^<ږ3#̈́şZyh:~qmf* U9d)ueN]jO[ τcyoOŅ20&TǕoݥ?Rm=SV`RuYGq^;1D{seQ~܈<4j=Q6OP |Wc?l>%Z'ȢQ_Gt[ 5fes(($tYt sR@<}2}_Adc,ܜ:fXEԓ#;(=%> hbb0Wx<6 &# 5p YmZCQٚ ?lfXww(w@0e`?wF(ōnn%sedM=bP|$#yAlnxR׈MH9?p'ڢ_k*˔ʧm`ր۱iDʾ8=t5x/ѡ3K*dmgp$o[LT?6Q|oh:~v7K\#'W0$ȏA7ͰQ$-zSQ'X>2H+q`}H`rQq>4"L-1&:b\忚щ{EE"o+pM}HWU X ڹV/ƓN-͕J%ӫXY#LA75J_mmu#` IXD@r\7(\=E2 «QD'$2'KG+G{#*mQng[%Y\ԉD2( F85B bɮS9RTMyܔuj=:'i0,C6b^t܆}%fOU, .݇o+{o T*k @TM*|NT5W [)Dtw=svXsfcL`-:s+qGfol@Y|n < *psN&JRl2yjsnY:,'wNNL!64Aۃt10ttR*!ċ7+7{'lE)G"bo6yc58Y6w/1.olXQQ yx݁V3]1^=7`p\@ Q'+!ZP牁g ݏ/,Zli*K 2?}E`LJC\+ O?x(DM{ۡZ;MtvE>%ng)\_jgoǙ29_U8iL_k2ʍY\8ub׀50 mL̸qUlVԭnl!KQoFZiTn<(R34TT`%󞛹4Bg̞HF'z:_! FhXE5V9F򜼂PYRŘ'}.j/ɮ~>-q V [.D:?rgD:MѲ:' ұ=ꂆJy5(Yt %U6SגtJ7Nw1gZJޣ?@Ʉ]=j1o'K۸qIlֱ.40?{x{2n"Y/%|?$H*𶻄\cG˾Lmc:Ncn4-yr^?pWVbdGڍ)Op9M-a1gQЍ7Tq{+qFG”uV\[kZ!oz&~yqѽ"oވ U@MC,N$]HB}/#AI^ZZN-ρrsX_G7kwLn=1suۨ63P^i)#=`^ƚACO+X@ [*f.q2 "ҝ&1_F?8IH5ĀѤkE3A%mЩzTgi1WosQu iDǚ45n90ʇ2$CS^2UkkEKQI+i07.,F=1GqLF@:6R/5k9:uԽp. a9mRޛؼY[=K]BV45%ϓ:P68FnhˇB J9OJM &#Y#X 'uNq(GRgFXy2Xxk8gؠ]Učw{0PL6X6tГ6h5!KA^B2(ž i'^>Z?,X|AU4N!i_p;EʍK/8OzD}*!7&V=}.\L9fY|GR~SDiyct&M#z|u.̀dʜ:ɄIA4z|E~=JH1a']J 9M5-e ^ΞI|7'D0q~ý^z(`"QlxbҭmFIvb}C:(bƺķXuuXyq_KȀGΌQUK 1Fw(&f,EW-mqX=!4{c8=pU67\mxx#-(؜+_ uz e0UZ0~)ldQMh{qݶA/P\Xծ~+Lݱ6ߣ\3QrCx}L^/[ 0yr7kQ1rۊ*rs:HI/ zҽzJ'"MioYS#qߎ}S|Fg4hXa͔QDJpƞ#jA}ޯ-ČМȗ&=dOl`/2OVɰwS@tN'=@Jv@inH٫ZN`n8yU!5ɪn1IpݏET\_63rPrcxAQ5sJ|K/ʽC<$W6dz;uNؼc,"s̵Ů2ڹ ǎ4AC~ea(;{޹ې,. B~FOĘX{TcѶPR%\_9Q TgB[?ycDtu&)oDKзvXJ1B{œMD¥<4\ jvϹO,u 3*/z.^y#DnPhW7=)ơ4c%=:=4%mrY:-9#J̍'KjbFi^0< `!+Sur,햟'rC O`[\<{[fS`MR|G1K״5et>KSЫZ,d!v| l 5uG+x ~vA<";hgi]?\p/H_#-^ sb_xbj|4( 4ɭo-^l( skN^} 4`cZڽLb:yLP6ΨˏEd|WL~|f2ݭW`{\ :b[5{ȩ. ԁ߰i}h/2kנ7%LW|I kj^ZժBIܽNv,; p_jy[DŽ΅|b18=TmCƝ6/C5zyϚgg&f2 $4 ea/|DH3*6~;[W]m?K ܢSJW4e2jrw*O>T,NQ⪙B;Z)buUZXE[PxM-hfjo^C\bdSJI#쪢Tt]Y79c-iVmJJfxH5|v Sp*oYF?sK%geWۜogbVCޙlyݤr۠T<2h8YB(ȌZhxl?}v!q._0hf⡾R>zv3cܵ}0|-N,;~VDt;ZS2 RBXt[ LN ?i-{b)v" WJQ}C>Nk<ǵmfF{O>_=\_ :>^'^\9515#h!R-43ˬCbYQqΔE೦X9]?:d?(oAMH~IaPipM >#Az[7(rh=1Zx(l^ͅf$E9,`bf)r`0 ke"qa/04G6ҩJV1(N+A6g~8Ln2l ~"#_h d ,F;6{sH^'ڟ7Q7 t8nT=| WN 5S OHsL4d|Vl,% W3vo$q9!蒸2gD+M.\IQ%Bl9t)6-<`$+ eCh^ +/p-%&VV:{)lj*T}rr.Wjism U@q~y}* cQg@4q.H4} 3YO;\+A_؎ TyeZm\7J j_tpS̹ʴȪv5!N=ݎ2XMBH<ȞЛ [QSz0<!3R"-: ǘ볓}$Nף!PF;>DCWV@+Bz/nyD71Uorls8$v2ú eKq&i4X[Kˡ>â%x@ܐQ<.].Aa6PY$?6YHU*x)NϘm,1*$,hs"qԿ@WBJpJ5Mـ!^\Nj[-Ef4X~B'akDIT1l3n}A' OCQ8. ȸT~}c{lL!enJ:Jͼ=3.UkkTEWd!Y!"ovd]Ki(1P dh@B{sCT:*2ٿ%:*.8"1*bYcX\k#UƀYp²[aӹkk$J ]\ _4u'Q^O>= ^{ F*<l`G˛aFo L0IJ+|ltzonLxH{Qpm:A!JdVC\i_\?Y)m2Xd4B!>Ɠ$ב^eawx#Q=[BeFDBijSpWF瞦 >vQJ[]<']]b_ED-= ?tF]8Ge`]&h moA>]C8fE>(vr;Ʋ4fv-^5 ,_sJajMԁ6i)Ϊ骼o!&`^9MJZ2kg#v8s_9 cwa;O@f76RKU3# n1?P`BMuCq$O/VGCPRØ?}EhC>s%Bϒ_" .i{8ϛƤ qsCWR3I;)Š]/Z =H7(w8޼#uu Eu&a|?v7љ( ڤ6{P)vhꙬ'-E)h$v$8\E2`іw PQ1'ضVĸ;+5;v/MN!^Iu;DL ѵ4uAxŃD Kc!x~6XP =;O56 fgDZv-`גqȦDĢk"@39m5]B6˼-*c5!MN` Q5Ii\/[:{C[U"B+vÞd ^Hˑ7hA3nrb(ȦzۀE"a !] &$z+뻸x\@=톹$vB;L[ķ~Wp`TgbINtK]!r ,Hۦi@p,jZC5+*#Ҍk8x ?;LE׶ c &*ˌŧمn$˅ kv D!FMVd$4fF/>;%b$[EL:2U´;`-I\VQ?L D{뽗+oM_O M܎܉j>VtܪاdCSJxqGY;uQ A(='"("f#mfz=e]yh~_t#dN{3{ؠ]'V N\V첉p<6#q2.m09zGGA˔#yN591?$kz} -f۷^@ ={gԈf>#ݿ kzT=b溃>‘?Q1xJ-i׫ރ顙9Z Ղ1MYT`[֋yDD]4?PT`U^8LPwT7WfWmma&1kkʠF xiUJZ@o" ĎZC97PMA-?7(uhsb6(٬8"Ĥ-y uEɱ6c&{/*!ClR:@SNZ,Hp냥5'gD@e:>xMv.),ҌTSIpw U`ndZH|W5|^(A-P]lTnfG-Y2/C Mhp mC( @Ck,ɭ*<^y5Et{iV(_]v < 'ئi8YdHQV5cPvR`%̛Ou[(RiBx q5\XYRLApOc~)a̝XEZHoKlؾ|'W29Qo#ADƮgcPb6Qo8Z@p*@yz1BBN5{z|w y7@p+#o/Wp#7х^:FacqC7[F=E5UU@\tq뾶P |q ja9rmD(LCVBx"Vbl1s dA Ja a> ê` 626pMt+d=QfHY88Y?$uf i| T#C_q19K+vA=-Jފ +ЎRjC8+_)Е PHQ$Ҍ~r?wo/d\OќXu>\m\vU7 i_e(K&/М!dte)ttbᡜY?x-Y,|YwyaYS?B^UAlOjlm{>\漒9B0arb3(WWwς4JJflTH*"2\zUR`)S(|GtC6Gޤ?:@@( c  Ρ!bH}Ml{hE'Ot7N[,r|ouz|f(]p7 uT뛇ÌQ{.W;2BݚӮ)d j 3aQy?B<ۣdſy'`ۤfvWrJMO^ GtX3HM(]>|5B}ޥD7 yo? 5}2cץ@C6Fqbj!%dʋYieG2  /^P(q1T(ʶX++<Ύ) v MDbyM eZHMf<ÌVEr'ݠ 6/2;ҍք-h4w#i'h-jzE PͶ` zf)Xc1E4vp:Ahٕ{Fe]ILY2$p+̤O!R(=b]Pl@p)NmHa6 CÕ dxOWnhDjiZ4qL5/++Hh37;XBi`GM`Hc([Cߔï7GHj9 d(Uﰣ""-,亮;pXP)ޭ.>b򉴓s[j5ZwӢ|QODOE^̠>$0nyϗ:.h̺_g ߮o$OK9nh|N93^R>f]0rBǂsX"!k/|ɛGCuFuB3K.6\F#fFeYR0ۢ=<Q3+ L1L{YSz^Wڹ(ىbo5T .\ ;LTp L ' vLЭf6g*"ꊢU [^C{_sWeuq0ƪ>h85>q@jU q`WlU$K.AWZ`a>;mSi^:L=qY L{bd-`ߦ֤׎ kx= GekeؐE<0|d?HQ2ul- ^6JF_z$3-MI(N{Q|+(Cc7\g[@65.Dmsfu}Cz[g+/ ;B{MZ.Gy&D*%$\jicyf>ErjU60LXGh>b<;#zAcu5 8 6uPUI.2o+!ne!lcT|ӊoI!-)_vxP|2 Nr+3##JVzjYNcʂL6ccIk4J oAJB=;~P.niGs MUۺq!w ވc@*L>΄nxf@ H¬I ZKj?_v\ K\)\Ƨ-@ !?fumKO?{n?M?zLu#R'K  oVϟEiX_c7,eHqloKɨ+/=2YGRJ 8U WjpGH %8mD!tF_Hx " 0eCWd!(T.7)-\мe-~[uOf">&X;p=U ph %tL6ˋ-ۺд_?a2:~\s O_.=-B4t3E6VCC.^Jk3żsSy>ev>/$ ]I=sQzKnDT.2ut4m }3X@"b@ Аbgxhcw$^).)Krքs9`r.,gnQ=4kRLuD]`뫃fSE:T>j:qjݵ](CD\98+YT. C*#Q1`QHPaS.HB ~IdjBN8۾@FQ2]_N T9 )4$Kd&oQT3c mP o8,knX[Z0`$Y(Hw|PlcxJ_i1m:lRZ=@V,W'$5m—k&Ncxf+N% P՝" {&3Dps~J[h܂R ?d%r5f 4Mž١J-[aɯˬiwR&s>JNo24^KVs{AfS=~RXdӎ[%OC#E(Q]$aC$ycтh: ptَ]NeҪTMUn,C^VzC0Q[42u*x^.QnOLڄfy$TV2Î~AnVM(GZ>ݕHo <%3Q\] fb"dANE zGٳDTd| S]@P8:e.qIyëc*@`ɺ6#HG əq0#E )e]rESM{+y* FzlcV_0rl8D}|ˠM9օp1Q1N]ll;@ogŚ0mƖ)zE9'j}PιȮ%hSxQH$Rf{ 6I"nhK#n͈S0ÀзKh꣝*С`^ZH@eKe˭jc3 D_ߊՠ ;rNK"q h]|(Mb:+ᣚ> SUt׉KJs~Qh^f_Kd"&J]2[P}(:UI ղ3T8|˷9)~;Aƅ{9TeqŀqZ >zoGYtt;i('ֿAo 0/YV+[Udi̓7I< &҂vrxkri5jK4 QztPMV>Vn-22~LAAzE +3mh|gq0M1 oGPt =$jF~oZ91d&TpVV 3x%$klv':DGPJ: (] g2CvPDt :_2E7-5T*>=,i~&${0qxNϢְTbv a,P} ?[ӣhe俢fޗGq ;DBPIC_(mY#mv;~MdjvC$oi ӓL0璌.hiԷExb}fmŋt+#{g8͕xno%%Bepo {* DQ>ՃOݗZul6üx B~\p.%"Ep .*@6[X0+Qe[w.yc;e) n\d ཫT kSG7cUOAV'j}.[ !AiCxڏZ*ӄVP 1vM8\d'|6Y u͚RdA?³? Ad[YlV; Twq0vH,kɣ Ww tX2UD}>2'z &31bw ->j2AU ;!8[D??6˒r%W\k1:ZxHM[2 vu tMN[39_ҙZ7MVm3vDZDxqi*o _PF4!Sя;*LlRL OwHT=jpGW D%l ~;.W_ժ*XsY}[;R-`] jo1r5KA׭Ր,cgڨՉ~kL}n'W:nD’LnbXT<"Ť$iY3S*Aa }QX^Q9`m/q] FmwQغXձLOt9] ̀dE]t])#Pա: Н 1ڹ?f^O'd81?^Tk}#&j=i.TRi#L0EW#h%„d%(ʫJ (ByP!0${!/,v Ar:pġ)fswCl-GU&8N4x4sltQ vR<\y&{ b\EDr6RB[ K ~샳tPDFf?ٌ.>9Xժ*WjB zߦXۿ8yjևTSG,c!) I;DRD/djmt%0ld]jC׫O1$Läz"=LAcC~xXߴ't=qlbvx4)֎/ԡ{4o|^}LR 9.XحCQ?hI&8aJ_vf 2uɺ![M5o&1H?"7etIGǫ̗DF_SIovv5f7/0DRXBE=gngkU> GgR:$ ٲqKulC涵gOzUolm>;K bG=davz0: w`J@R4c/Z>[2a!g.WD # :8tsI1oI5C1Fe M\ ƊEh5Np9RKcst!dj mnioԣ bZ` `\M]R$LXB]*GX4^d׏̬ sN3|@\w)aw<'.Ì[ }Ԫ1s!mHnGia4>ʯivyEL214##.X7A78w"^rank * i(.U u8fe`-TC=lg:MmSgtp4חYϬX) K*J!f(xf P=]SH>>ApxXO[b$% SSuOYPWL);k,Ȁ DNH,.DV+حzq:yq_e&w8נ63us|8r¶Hv 1wܙoaip3k mtELۭ0!_]pYFshX,:CŏO{ -.Wk2rky\M{8iNX$wK,5+| E1yPe~+IIٔ @:mw۽Lޱ?c&$76#`Q6!S ~DZ^%f;;Ȅ& |YU4b:,mY8\bvHNrŬG:oȤ.ӡm1tW:˧x x?Yxnw"srb]8\\Q ʖ9ie5SUzsb^^jO ,1aY60)M -]1)*nkxvc}rngyp,DU!'IyI^:hX!_Xc&i뒎>԰v_ @Fcc8W"B/ec4tk݇) FtB8޵^#N< -[l9Nt ,65')L)o&ͬⷚ2<Hq#Q ߩ6e6O"Φ.nT]R#r:+թ:"NC ch4q2b7]ewF:5<_B 6fSpId˞ 6v0_irsa6=/ZC]hyV{곣SZe|X>>_# 4gʢ10{*E-~ /{ҥhIK^_8I up<8 ;cT)WinYa'tt"kWQ%ϓBOH(a$Tq,cpm}*6Ȧ1N_۴QFQ:B>zy'l{eWX6l]tTekګ]6RN?ʔ (iD&YUC"I*6idoѶ.82L9aсnb^g VVPv&{5jg? g;׷ eǿ"86&::.<ٮVpѳjl'S )ݏ>]K)AKθsNd{kDngAe} VHIȂ7}"eYa:r"IdCWܶ[ 絺)$?dBi29iz̦1vgp6(D[/LI3t8#JY-ŏtj-W: jHJUc0R`. t-J4O!cZgR_Q̪%E$o͠{G$`(pXfT0]>FjB3+qfz?I%a* 6=n&^)eҰz5" ®0IW:JP Syv l6f]CbiDlpTF}5Izw;QwuM>R0ܡ| ސ6uJ Xx7s`n`Q0"d4lJq]טL*<) 9 L:w\ȡ+דݾEnm463%9 %]ڵ#lfEs_xp+ԐQ:x]+7MG6lR[rlꪨbvoTRyR>3 ;Gzxc RFqSNt'X̨8QWL2Ej :\(eNtgOۢ$s<|dv[a=lxP*7gҩ3I3(D o[E+T#R8M 6T%/FL#s޵o|4hC^ĥjEd^=Ky5<0> BbP^Yn91*&盏y+4n#Tqp:0%5Ϣ5A.y aLyb4YL![E|)%P*%#mŖۥ bםK.>*"*)zp8`+X|V&)r_29.{LmYLufp?NVRڥZjHqpl@%*wI'Gg>ŸAϞ<4F, 24W8Zo1a>酋fߋ KB+KJ/l»DD{=<֩Qq?:G=+kعpl(N_o[.%5&TPpKv4w\_.Ċx!{72._²E}?FS v䥃[~&Aى;{MVjq~R?DCLd^$`+GHI~[q9ٿ6q͇(Ñͮ/9VPU77.MohN0Eݬ]#ȐJy ,FyiזbF*wv2bK4=.b^Hen&.0o}-);'b. u!JpB:tu ۻi3رk+Fk9KRBRa x8 .OHBFiwN }n``[@*YA5q.~*oqR,gtǨ+d]Ĝ;(+$'i>pBe\8,W5{[̿r6Bh=~AMv^3X %}+WգtT>َuNv `Y:UɽΙO>NJaclx7U. tYt.؛kjĔ+.+xA=䚎kA5A!pzq>ˮjnLE%?c%?G*BͿe9\Xy4@y&H%P/W8P E,ֲڀ˶>yb$hTtxk=4'Q "=׹b zԥ7KM㱁_q9Mrw5u%{[|/4Pve NWn8Q !]9:eW'oψ֘jNsk]E@X'֢~B^9 dD<<1!F!5L`Z1 Hڐ0^Ξou]1YauR04X_, ,+X@?;PtϮq;i?Mo」O6/P*W$3-O? <6m:|ff ل2U DZ%Jq zDM}{T I)(Fnv爆BT>'f /tפT^jb; o%FbƩBW7b%DW ޏ'b i^NꝘej~ D%add[xݏTtA?}IAV?xzf"3#>H>~K|kS:;ikY6r3D& 0 FL B\\Ռf݈bX>e:hY(%jG|ݛ9g}M̈t=U`z Um:d^nObaj@< O=Yp) {<h(5r:)ꔈ.ϴPP_ԇLMKĴճW|!)'֭ڸ;ո%V82.= k/dD/0]ի4'm6-WA܆nI2An˂;9BśKiDWfǺ .P`o>5%N E܎c݋(y<3$tވ%\x)Rc@ 7cL\DmSWD0;pHf*CWx]8-R5*1@وt sǣ&Tl 8Qxgh@pZ i2yܪ/W;ոj6u$uPF4%b"i9~{zFYU W R^sjV 7߬~;0b"Ï1 a5R@'NX%< W(tNJӏj%!RM i HU@*= BԤ^M16IAh|)j8_"W5+9YYajH`zrEXhZq%Ws&XQzdË)N~B1#3 +a-Y(vBY5/Hbnz"gKp٢,@_ᘑ͏pbtܾ_w%:~ X/F0芋b޺JUѱҼ'a鴵 o;N_KVS ^F1MFy?5=p{ņ8]M9V$C˼4xWrjBheP)*нۈ6Wg*!|,]c`Nױz¿(udN3m%<[i:pєT6 pOܐFƒ¿V'%?AGxx¤P2_ u׮͍"~'3?OKe3&9DA%ym?$i?M`g{~JL:Qe%rg+ґx8EيȱyA6xsx@;HxѨGVf$zlR9W@WΥ Pôax14㰊R)6 F FEjBe裩/?E՜b]?5121bdܙ\Q;.,^ԩg7ll0+*h;6Q:9k3ցԖ PqbN`=HLS\nE@jc?i85ճ!*ob~囥܅M[)Z w> Nh`LmP4OT*B(\uMO918;0ht ĿRxM;"j~(s 5NN{^Űv >>#'duH67~t {P@t-k{~1¾ǰV:v!W'$BbZ{er8"5UнÄg xg\B4ר ef}5Dj`@IM_y%\4Kh_W |,©Ǎ*Z>tQo^eF@X# &͵v1]~nkX)ТxۛJ$-jF )CʹZboخ3 ӡ?Џmk@)#E2_[0b^֌n&/J]+_:܅s~Z5%QJCg4cCa}d^{F/}͙Oj_?&8 ay4t Ӆ(t9!V+7rӟA(DOQ 3 (#p, %\0siм4rt[ \ض@= Z1I<siF+iV}&f3&NΚR(4) l2no9|W=E=t߿d忝,{B*ZJ䔘ӿGSI[&cLAta&GsJ}f,j׬ S>G=#Q1s6xN%Ɓf9%ai}e#5ڂ[)ȵ9,@b)%R^Ҩ#䧺3"0I~9ܙ,h^qpUlZ`aw&\ڗN}1?9c]7Eu(\1L1W ACe gaHWe.>$N;cʪYP`t (s!8V`75^{S6o ,& Fț!W:d<(Dvwj>'ś'̩^޿$[¼f=3*2W+ zg ²RwfL oy o)g!@=t)Î82־D슦$ʼn4E+VhLB*.ltNOmjѡDУ5ohxň.uE"7!K2{44SV˱r#$}u vY"l/(bH)qj{RqA6hxhuflŠ>8@|KÌaݛ"HRh10*rJ,P:v 8XRvԋ1j9Z~>wdPCؕwGC=Ai.)cǍC (Qu13Dv̡ \I tNe嗌i8}qyl/Y-rp†LܧFQDz5[Ao0{xuesw, aQvft^aQ%e9 3>Wq&Z B_UzOgJ9e_/lF.QG+&>As{Wn2Oܧ_[&侸2aS٬)(V~hDMdG2k?6TUD贺:-5:*q&=ZbHf@*-s0A'N,넥f0[1/4VwfR!0|>2EBOCo?pb,?|&1k,hyC^ͯ GBCqVvuWANHikCwl#חK}䯸1oXfm/RWɜ d;#h7ɡme)PX 5+7_ZD-W2o:&T9ʂn]ndϬaiA*hU27΀&;秼 sTHh8Z%y V;q="\)r/PԚ{v\Q{0lX\ 6SJs@:\s,"6u=. :W"wWlcTfЛLaoTd|Q]hv8$xiGjYɇ;1\P|c1| %(rO2',k9~3S{wa$mV45cXo]Nldent$ [Ã3ȪRMo#~CRUJ,7P:&gjNF U=#=ohr3ώ .%a>X)E0ɥ!AUqOD"xܣ.mEz9d. kĈr].,B :Df{P n84xpg,g ӤY_H^.P#Aѣ#_wԜaL_Hi}g&kwN{C:zbb`0LY8<`,Ӧ:0T%/;m> !pkPڋ'.0,` 'F96͙Z!Pf9"]\1{];S8w*H=r 6W/U$kgѭԖmlyU@\~cQ> yAf4~%a1خpR),xpIAѯ{j~Bep~Lb'M4rAqtvlLK q|iHJ_擼Iȥ8/!,kFp:LUJ柀OzpD&gnɮ8Q6[E~G4?ڛUC'B-U=7 ٥ C<*-; o)u 퉬LE\O(L.9iȒӝ11߃j>/PI&("sBMam*t ƍ*ʏv8 k dANĘ_cmz(VKHۿ>ŕ}55Fa8D񑋆`\y;Ԕju;{}K+>/]I ]m|K'PN=h J+8~I 3i'F96eȤXHH6UW.1>vB QI[vMa=ŹrK'y'|"ā3ª+ge+k &FLuqλ6>/!n.ZIF{+/R9#ClȞ\}7|%ߪ;g"'IDul:CY ƻaj:nNX%dP}ZKtv [/ʼ<{ tA7RN#'; L}ȝP8?L@z,kkE ץEp4X勼ɽXCbn7>oH3JmR Py-/{Dc;)RVbO]2=[ֶ,KR^9< 2h;R—gC}d׫3܏)LKAt@A-M:i2[[/ FwLT1$DუBBܖa-aQ _mhuַܸ-`gChRxXuR &!-`gtzA' nyBz.B%0Xm,*N hGCZ;} (‚jÇC.l54vyU^`*9rvT4?呹$T3 0 ;;~=}c5j#>g2bE9NlWZ5^[> {6bgV_nHsf2J ,ݒ|Fh%yFZ Ɛ182 F0e Y#ItPt :i8}Cpn^ߖzO E9J(5V㠊#k ,^ͬzT?5OmLm;{eKOEoG߿UT/G/L2]r2쇰p{hp|tq#xA)WQeBTk54kqݗ.,mRpEoѧXy\{9P,pz"tuדEPRDNllᓎЍ4Jitu܂7𧦸럓ݐ *.?xP1~US)+#g!ɳO=ϞWX50 c.tNύvI|/l1yZ3JQP+ yZ^D0nc]hK@5%Vu,.K! ?3J-H;[PS$;um lQx}e}o%mvd~`0>}RSyL[fIf#%?)@Yt$D2A+1vGXj_Ħ/;(X{8dST䉝$?/Dm´W~JE [P\}.Xڛi4PwjS!Nk1b{<}f}̴$/Vf qo 3J8GJl0ìA[2́ߐ(qіݹt3( ~Py=>; ,6~8gKʗLq ì'%sl%W-Qh@]v=O|A2Shv7Q}h4тҭg92FMԖǞ!Z˟N1܎y&qp b {?DSK+^/g0ݐk)\|z0;?A~n[Nr@#?|:^V́sO{̊zlm_]]hZm\X5ճi.BpUÔkeQ3ozX(3^"X6%ԷzEi0 ٽB4Fss'CybKoXwpAYyL`~Zt"OG 8D)> r0Wfm-:zKxNFȨTɹ~Q~[d;hrL"K{A詔NRZM9zYcw-CS n>- Y6r #=SW֔=F*}G5ĤHh?sBv67=*LYԂbfZ7#I&Z& M%As3_,2ݩ6Fдб8h<.ύ׷kA v-|'N P2[dvwi'is Ŧw,> 3XcWn"¯kD%Y_v΁7 Lsdb^CCLT8?$6ZIQA8F*XB.x${, ;нarb7KP;[]u@_d̳i{wsnI؍O(X1*y9S <&b7􍙶?;2H\FR-cb Ri\?M57i_V `+e0xЊOJ0Qg`w7n+mUep~d,M0фн[g\Yk]P|M`UVp[bsWyBڡԶsNE~u_ΔG^ C,zm h0+Y|I1}eo! E@$bT;qI Vs>쿣JF|R@F1̨u%~{A"3ʝGjim $ZǓ@ ȯ6dȊ+oSmphOuz@02Qv6ѡVxG^01Ҿ0nEl|*B):n"%U ӛZ-j 覶u %o4Vɏe0?y:Ō31wl#]22V /#cF[I &(׆xE%5_tWkmW>9⽢ f_VHjqɏ+e#dkZ=L3?k"]ȅH/2 `S'7$?+@: Ch^Og_( дXZ?_?҄83ZE1Id B+~(SQSQ3Bkɵv&Sʡ_mLu5HT3 pfiJ)_XtY#<1}Tӎ]b ?k.zez2gM1Qtq cnsˤ[xA OK뚦ay&l#HY8\m:r]f,E$6,9u'4t^`[~/#OS j4>w+-N^Ud8ttHgR3{:цN! njBn)- ]* LzCJ-*wӂ6X[FRވnA]-ޢP a,4Kȋcg}`6Vûq>z>sd˂& &hAf8`|Uf/q(GFV+]Fz2`[Gr^R K/WH{7zF-7PF'0 "#z9_P"Rl^K ;z ]BZRf!Wśʫsz'^ xZvjDRO%fVD3z KGUK)fWY*c|CgDSǸ'[0FX uRy<%- nL|Nztտg aL3IBK!sH%t,.|zrwEi۟<&UjQ: ѽ>NPخltkߧ;)ն(˄TNoPS:pdL -^엖/߶QޭAftmCBQcM/W KEY.*QI}]룑)_)DBL;f4c`ŢQiOvxKe[I^0xزt"eJzcԓM+֦0ZaUH3gx֨Wوj$ t&!V/kV9t+3Tu<ڤM^µ/Ľm43EW‘wv6r:CJ yB.ePoXzg^ewl oO)u+A'OKg~KC]&TUQ.G>'ODaZaΒļI-!>`EY5IH inQN(忊hm{=;1]#J܆Lt`(#iA/is0Z)BʢwSc]',.e6@=sZ6uݖ?NO ^MYАr0Z֡04)S,eXRe٥J%MB1HBJK`NM䝾i"S3hQ"w?ӑZE/I8U"=T.jy`Hb1q@q2E;U}|QPj=&fg8*w {@ ٟ=L=P%~I;&K W`4A{Aݙx 4u';K-r2o-ZH |𓁰> m SLdv tZ@cf!H Ynx"sCE5/A:6eN| MՏҋ Y 2dК&'8ўehk*i1Ͱ7` p>4 8 \/֤ۡZڻ7=5c0GP2rصŬ¿E/=9Aǫw력º=pE95[H!@T7XgY2̫emT`]%Q@+ƽ"8˛on1L띞Q"5ӚT2 CO6|g`6~w8I'z>TH.Ɉm$K{/[=*'mZcI :gC؎;IpR:nV8GA[zePgv%{Fw$mMbw)Y26ZRHB4_;, a tYC&ʔ% ů{[N+Lu{QHreg*M.K# wPx ̈GjeDьОS,HRB-OM;(Ebe҄Z\yt+b+((S+aYEu;:%/M .BԝbYp"o?F љe>#,g3o+@q v}C暶/kMl ejk6C"n+, a xT~|O $$u8 i 1Fe mR 0_%xGA~\ | 8L;١w&a,GU1f(eArp؞]͡id#GJ = j򐽹=L̹AD#?t+"n;po;3LW{̎|zvBĶ-m}a"!dw4_o fp;1բ~ ) %wozNtzg !"Uc5 B YGj$^VA?!\_VK1VGQ^Lޛ|ؓ.\FO,K[I 9 2Uȟ$'8)'{ c^,xrӽV }msLemMPjDh@iood&#9hF$tbRvig\ -I$(?z20*"M'%Sx8\& [V'w*'#3a Ɇno4x,2B)N]qPF3tc"а D Sg Qbk1*0hAЮ$FmĂ4,,@\xף<}VLr_j#*b7= %nmXC#/rٿ'_@{vz85^2&xؗ( EBͥ6ɐm{ӋDMOv^h\H1cs,2uoBXBmcQ 2 f5|y nG@̸}+R 籿,'G+沵xdi~Ƕgi@ Bov$6Fnݎ<Դk9?;(Nbü46V~ȿδ)\A zG~vg@0Z wA Dm UdhԾͽs/HT) qZ,~Xe;a %`܏$/ &Ѥ4k}|xX.^D|EQe {ot5dl6=E1p5='[[W 翞H ܴqPlfݑ~*C .6RhQA^1_B`Ϻ):Wm<^YanTYwcܮ-%;S 8sKǛQ'LJHz[O6ƐZjTH7v1pTt2]O#Bȱ=S~dYU%=Aۖ_& I5ۆ[|o0AC(A-wгrJ+\45FF'3=6WžFjQa4jr=k|+;u4ѝn ޭ7豑=lXh Ve>PV7⣾` {_VMk.L@'Dw,6D.Bk`2teH>tXj"ry|hqn%܃.%e C"a"V\x(0>E"kr`xp|IeT.)6ʑۦXg"Z=P(2@:)GQ}~{PsQ~: ;i"}U +]abǒXmK7LtO|Ajr~-ɱuը\\|ԌצA4AYM#!#S{oFwLڢ%QW&L]k]йS5X}mE϶:񹪰+Xv[lyH4gv{'~jh1Ok+AF^O'GO(mm^eRtcz3;)l ]^R0tFVvU<B~rnF^hޚ=~[;$ u_9G'| -x*a %wiֳѮO]s ̯ BB'$|tVWjK*.|8jCǧD{D!s~ԫ yAsNlZk2-N.XIx`5m$@Nu_ª _^'$`ruLOER* Q@XQL3~".skĖz[l Y)'p%[K`Q3ms=zI ")=S$_֭"L0jRSn73|]5SGtn'̗}6(BeP. S\ B(',mZ\i2!a^mw0^vWʡ>UL"Xx@-O8 3WXG RP]arc>2_Tþ_RyQVb WdƤK9Q$<hc,/<)pVGE$0ᇑh]tybO1-/s_ވMAUYl  f>kF0up%a4Ys?"89{c4FNj}mfGd:\Z* +PE_Kޮ_PCXNP㿞 efkڡ= u54!nX,bY %?~ł"-2B; h##"ٶgޜka'?<؃I+XWn2I "1 {BޙiwDZ@4L;?@(z|"ݱ+(޾/&'Yk!T|݌0wT3EywjUA^ͱR4wMjf\zBBK{U ],"nLc܅(]Ou,؛~vyq;ɺ)<:;[;2Z;hLPՑq λ)$!A{_3Y__J hu/GL!+OXd7O:Nebn L735A@Ռ0Rgou \BJMm VGZ5ď%bvI{ g׳tL(+^lj4[:'(iE/p0ԙgorma0aR*Z( (~ !9/y/*~ٟX+ٓFobN1A*3祥;!c ˎ֨rd!,O2x X`U-+Y7.iz*| "1;$E[hmlZ~QmM5o%~;u!UO Hf>pvd$\ x^Qdx}6%$s$a i+3:֚wV,;:_716Cʱ1zN OLtr9%@)C/a_"Q3lz/;O5wfǶWIB7t[i\LS-(/+l)UΣLkխ_Y(Y׾I svj,gᄯEJV_1DbΉ1^db^86${yu0"l\/ٿ캶Btf4ߗ"ir*\>OpF}YZ=AШr6(Zr\] rPj'E2/̣S^PGwJK%~ уP*ʾ ݪ'(>:,$tz@+xK]KKIąNYГO.G9mcNdX R'}o[5mA>\ֻ?XrPM\iFquzl_0p dPڲAĽ: ZcCE2ŬR\ѼxGZ vv4bSoMsn#!+@qwWnaUl1m4xXԹ!ƌx[oX=rRow =o~eKv2}dq^%=!PހOVm&^jG}QR0f?;@mJd_*s=:1dsrd%Ԝy`MHuѪQw1K?a 1t@@6e qLh٧" ,-v3GU`hC{<i;߿c=u0?IyRO1+?X.PmAk.:a3`L9UPSH兽Gz/&2 O>?YgR9^ٮ)\W4V]GY7EhLTZ{%FfU,JRڎX"hEBRxVf2~^-Ye9K~96Vk&LjJ#XlcQ.&<̓tAܬQӇr:9d԰E|iK[\hܽl'SV`L⤂)<)e<ĒݦASo;Fxw01={8\DȇF9k$8V"PY -Xk|9~`t?+E!/ 0r7/iFHOn_z(t(qv#kKڴaXSDڔ^oܓYåAnG}xNn-_,6Y(.K' Q2JhﵟsGO  7<JBk,b N"sre.)9YIx9 Oe*O8@_xdQC+-#t)IMO܈%c2FlQS V 2+&LSm Oqp.7d뒇aBuVirckqExAӓ'-uFm+MZtԉ]uP@Fw#̉p;3}b쵼w)>>&>DʻRWwFaJ[@?L?hu_(!;߼94~$ LM"]XH@|zU:sQ/2'N~ @,A DEhYJ]- iL X!n 8X!ə]IG]|0b9I}mB`fg6}Zm|N==h [0Hr>*pplǿ $6ըj@Nb+6,?{'Ǜ E`xL rQ11;^F\%ps ,e?.1/F>]p0-z㌪K>Jo[AEuwќ7Ō䰓 ްE>uQރӆAJPA*΃[IKPng1GǯsY2V62Fٴ yxU"P=`I Bp#GR)RԃF*|yNޥikQ%D@ D7,$@| =?yf$ Brk[a.:J x~5./+ïi FH8noFr.G[ x' ׬Q#$0M K~P*:ySQ]#2 "aQ4DcEgyRH0e3/fPg3~mv8*[(gd ;nDX\-/d\ӄWǾ f׫SK~gZ@CV~eeBg(-o"jX>,0 iӯ:_Hpg *5\v$Γ'M &a eFA"_=oivi2(;tjVXXiP\6/fv*m_WQ^m8f5ɮw04t7Sy!i. ʂCTՁvnRON;wm_6(FܠIy6P~Ycg~ۣ]lqcX%"4tV Hҽ]E=\2LbE:K] M?feşj03KkR-Xp|y,,mѱ S{b87م C ){^T}7H1]x",tpGOv+tG[VO$ʪtSQK%hy~4O8{[{y5᷹ gh\@Y. /`UnaN7J.-Yj^6-g'ghTQB>9K5Kpס 't"؅|Xs&QmI{ r::x<`djc9NBrt^XkɌ8ÐH >B_n>~-Fb`Bg={bQN2(& B܈OFu maJ &@֏?=9RisЛ"|MJa5Q<YKPG `-E7*p$h X;?Uǡ5-!SlW[Ԓ“55pj7PL)JF"0 ۉ )VŦC[e;VKv$Y3 {0>{z1QGe4K3~A缬7c+ ؘ:`]aѰZIK4-(ձ~i17Vʀv"H骒%Z8Z7(mWΉE_B.R_ ļ'͘*Hs`>YLiY?Md@.21cBƨODexzEiA(!'q[ I1l=wDHmK,BC)%`d ! z N"5 T.mee#؛&h q5uuYWtvgxl8i@ut5< Tv?9=p_"?4 |H1`|]OPܧFt "6f:+t ` ?tIsx[ӌ89TG8:ѵaKrE#Eؐ{ǬV=mFwM=3Ep-$fΡVF`ߤ"j8Rw NN*JOω\|ج.@Γ:GoH~X݈Ϛ4;㋨XY" MLuНiQu2rR=IVmnn sЊZk5tr2W^B/MuWN|Y0JL7A,"sI;/AF:ﳌj82% m,>_L̲M8+|nEV}1A~˒9#zŊEu5kM28v@ۉփ   @-î#)eOk.*,ܗ-n # LINRUCNx&p@k7- p䦟d u:jW>Kyy.>@2uX4T$OW(G{"_/BHtӇ,{<jQ[;~"oω_S^4ՊzPL )ζHoN9OP=fۍ#p֑k->.. Yy79K+8Hyxu#Z5}.<ޟdTD`FMAgQ86kllZ`U]'SbI Փmh^˧D.Ǎrb0 p=CmS?Wӡs6z3VA\eR εgF mI\gJĈ',N6!; S/kמe;פӋ)Fu^ "pC[Ч.4YXaA cĐA+Yvq8N<=9{:t(Uz֗>J;02Hk[wfQhLLF @ynml &4]BQa=4V=LuJ0B-=`//=xU'qIhr4A1 ИA(c6#mYУ2x1KkMVȜAF{b 0-2خz|W;/@/J}kX"xTcLNKd*^#6i` f 4j@Odڊ֪U.Z+S,B>{kCpc M'>'\DIZ5"͏Y暹7ҹ$]S4t,R׃[˝xG3Z… Y=#G&tKCܶxȏy;o0u39o.4Pt w}7o =F1pRU=70\9qx %9|~*zc̋ os3?#71٠6|3H 9U5=g p 5.mf όnwgTY;|+Lr4*%ϖWW &rd79ja<B >t%]H x;Jb IRm{vXnt;/Qѳ@oհ|7}8 ^^Y+4}Ģn5KVq|)aPggx`bvAj۵V\/*vHr1TLK8*B^7fjy6r8U-uӝFqZZ0>q?QƬr2IUMG\4ί7J=khO_fDTf]r(w1 1wxQ3 E_P /tn4XU6>"LBm3!z4CD öyado2ԟ@8Ē4$r{׮[+x#1,B,h=!i+1W9-;l"=)` + !|'=_LC 3!P u?q=O2šjvOETY6T $\!5Y陚ׄ \`}-f ~oa՚_zFL f /e"^hΏv_K~jR~Kt1Ps^ǁx'cgL5@Ұ+\=ɉup#}t^5{PDPq;1)<P3A}x# A g_pi`vbgCuD/!3t6oJPwddgL?ϔ9+;]^dw|UW쐬jʛ+geZNA+5C[j2RE%Ba6Ql"dk Tki}OD8N5(C[q[I1X W%N) 8&..mdf% /sQ]jC#܏"% ]bꐰHȭ]/W6h*$JSpK@YilWt*lĝwU2ɸ!,_tjFB|]afgT 8nm6W&dk/!==9⇬GL+s :aFH6P~Oy[2,qIffW*  Ȁi}gdЪ&-]SZ扝ه3C?xE1U `l0 ]\/˳ov<#gDsHfi:;"lHKzzKW s5)W]%p+MźdG;(ؿ$>ҐpرLO"R oʗ{;I(]5;z‘0D91CS+~m'9v]߆an2 #Y5\¶b/V[{DasbVKYD,$ R աZ{/Ͳ kDAM Z-^ EXTY\kTB'un=*ڧedlL5IR~>M,tgTj٘"maj9.^^]9F^tft7R;FBE ǀvv \Y_/CF|n h !{-h6~@Cg-Ͼ.Lh5>/ټ{]ӎTx@[ٵcZ֐Oa&4"f߳Wdη|Y01 Bcv7pr;I|<'&YCuI'8=)8K|F}^H_3ws!C:s,n\>p!ZBs[~b"vd '܌UB4ݩ se {W)]CLtҭ țF,yNic ~Yq8HdZ^$wЮ9|Ouy4da0ݟ*i؋@w/>s6Q}Ϋ":@tB7ȒP½%zC|\!Ny((}ZCtcW+?V8&>723M gU|зdbsH&پ N{K 3oYi|j3Iu=tw¾<4CgxÉП11#޹L"7pcEj9_"U&^~?\EΥu1+\,L65:A1uYf꺳"AoZ 6`pzK} KS#[i՞:PZ4WȊQn;{@V2`- Bo@]8a 51$'8dm//;Ο9?oo1+N9K(Ӽ-1*=qiHhO& ГC [wꅋnaZ2_nLQ o/n-[5_EAoYіzrnQ@++,nB!В5aD;S}^3]4Gi"O>PZ`{C{3Z^սiɰbP›?{YɈcIJZi͖SYg3jAVω 纱%4 > g;e/Te [*0_LJ0[#Ǵ0H]@dvb4`8=ak^[̶CԔMV Sfi# mVXHÀZ\$>њ}k(~E)é2nNHQ⍽=p-ז9 XAq5NƱ~Yi]8`L~{C(=Ӳ ̝҆I4LFjKj21O>a,V'g\S"tZpl16S_쿲%>a̴{c%̯dUB ЌxFMJtp'wBARqbֳү.ļ +N[ OKV{|`8"WUu\;Ьa'pa^vGD9Jt,CQhzT@+SW#?s!rF#|LNE "/.S nTwaRh6˫9d tȟJ1qq"Xf칲t~ch 88XK} W8 ׳(S_Շ) f,7y#Ud£I6ȝ긟S!b{JLi4 X Gx^mIYsX<,m'DFr ^RһW`e$//ʬ*p ;su`erF5zl˼]H4vEԔd찂LLmn0SfKۜ]Ba$xYj;B{Z>q>RLxޥK8fpLF90V(Y|TJ eyѕ5+f>M+5E3l;8CF2_vY+qx-yDqxY1Vk%šGV~+X AuC{iI5Y:4=*G6?.[| fRord\kiI_j>|#yNjzy#M|Y"vo&PŸo!Y!~J#RHws| خg"p-##1;PT&k<|Eۺnfzمg!WBՏ/iwoȊh>`= ZHr"90Z C֖6:V:HW1bӀnk[Wt_ڕGLIsE°˚"m ar,YK[#Mj䇶߭- xC49|<}@NKM?pƗi͎mJxoRm誆 >RPımn1+zP *|A H䔸R" W"/Ġ+I>CͺVsQ(]ԏw$Z\M96`ǣ,GO{ը|:ޓeE/BK7>=;W;E<L}.J:L5O,]J'~Ke^֪K}T!_L01?lʪK"r]ۊ_ma:L+}N3$j2/E!8 0eU$qwrowA^m;ުJԀ 'bEDߦhT_*iYDL<i.R41Ne?F * l,=ȲE_4i/ʠ253Z!0:\|R$^Fxf9 K%#Ɖ#}}64R*L `v1{$q;FS+8EMUNN5> _ȂyCX/xn6;?KjUIAD!.J3c=xLkُ*^joE PXKSǔNJ"=r3jY+PP(YE5Q@6Y M߃$^iY`M׺X7) N10Odq'o/O2GxsSǓ OO]Ƈ#T/ z<ܿ$Q1CB:E (*[`,%2S GhZk =ϯ!lܩz.}lZ/Eў%EU[~҂JڂJ] 'HY[ i3o|CV4esW_DK7Oך'|2h#1\ľL!hDžz}}P2?M͛ )(vE4uvQ7vOAB Vn9rA?$*Eطbٖ!G9LI$p&:? %He^# ~Ӓ!s[AwBڄqSS)R7/rpn'(e(:oUxcFYCZ|A2ėHlńv ,B$G\,5Oծ6!ިCELI Uʤ!ך`,@s(31E\kV-6#s1 ^m7@nN7H\׽NPaR \_Hںv ^'n 3@H1[ytn p-^3c'KF>:LPlpLW UMid!,?.0zsL!-[aݲ|G+o Oklh;\"1H;f gkC%H3Dlϛ'g?I?!Ȱ,MyX{Y}fQwl]]ȭVty< >Ŋ\$p?Dq VjccԶJMHՒ'xBR(.pIę%6H؏参i&-\J [WYwG]FT:ZSZkU;/kLĴᶽFs5IЖSCCcG)<-;a ڝk=cN wHM{\tB^$ ! 0DXːnfíkUx[n5$` FJHwS|"@eS\M;\2՞P{iKKEP>`7stM֊"jϻwI lu䬻CI1Ix^Y1XQcZ +MАк\Hٱ7XGDmZ.$ i*D&jAXJϩ\O R@Q: sneZ4OdGT/~: #ѷ?3a :֨h$A4{<ڇ:M0xA*܇j8h &7Vk}6LxL4';4p?`ngU\D0զ PAsj3;Ǜm J.:3;sx?8%gҊٞvj<,vwh$rBk915t 2+ečIF+;]ŗ읕c9(\[i`V}cB^ݳuaCf^je1ckVa&sr!:I=~D ˤ*GꟚv ݵ% 4EqX[変 9l^fhD'I$\+rfbl;yZce8gyDpA;֟:Xwt$0i 7i{ihʸKMtP茋85&lѥּMvBc^'e:l:g]V}х**("a B7*`(#bFTb=^lh/q~Pӥnf_ :N*j됞2'ɸ=@4/K$㡸Ff1-]umfP__S$9{?&ygƘ-Wm4[0 5L8Yw&>LUBgVfC#ovR3c=ҍѶ44ezBhgUkSmnҷ]E&^DQ!ZKP! X>FVbB ekubcuk* l3m"1~v+F8:[-'&Vc ڰRRA~ OC8χS\;NPW>#3ս&\ye-6}NzK*Y@"Yȿ;A)hCH1/ bIlQrja)6+D!פֿ>Z~ qnZ`>>мį{a+kt$8/ܹX TWgԧ߸ːG3R A S8׀ A8 6ě /t7ZuO Kh~'cKl'<~Pq%XܰԔ~)BGx|$Cj1iz"v~mFuԄ"9rAjkE-ՕNUR)rm`P;3վ _,M}bYu`I[o EkLrVFftn0m2aY1\}2u7X%/[P/k:}VO0c*CbfE]>yfqT. cٮA萜' պy,LZRa8(7HÏn`iŠ>< 2|ayݦdN :WKr9/(\o.' z6o10G'%L+NE>QR'DbW#hwűƻ8'`x%xW< 9ÇM =%WS3]y%E)ο"p,#{tXoIU{GTRk0rA::DklxI_eyD7{^ZQFLaFɾ j_y&%⹃-x$7I*!fts"~͂ݮUݦg5‚93_݌ݿ3վ"H9׶k+JD5+>?OʢOPB|S_ 26"cUܘRaS |WLWmr9$ >A_bq71D|mG3ʵ x}؅Y/;僘tfhѠ;T?kbs  Lg¡J؞{c>&Fs{*ȿk2{xi6qáVuhŽ3[ Apt0BZ(dPak}&~_=%˿}=gU~&& =2թ3ZUKTXTf" A T+A'A.ݖ!r@8sضKv^5 wIM>%/eÝGG) (¾ę!gol,PkT,,c,7Pm5ACM190DLҺ0J{*G-eJŝN*}7a>q$bole_zTAi;7VH .ۍ DH 'Q/Cqİrp-;1]P^Ahtۅmw|LAazڔu ` >`3>"5oTU,5cxwXL:XTv%Lhzf'%,NoE*͹ b7]S+ÊK}5f(G _oݪẼBGZ?\wbʮOm[gNJkZ~qGE_ɍ}FqRi[U,3XdhsM.,ΰ^Uݞ]0FF:H%u,?%fƐ ]t$\P2eS,c-Ba_F:̞,D5PiUzw8fYM=\#8I"!ZpPRRq⻵6rOY y"=zSg5/ `Ʃ)CB$y0ɮO3/  48yB!_uU7yǎM ü-I|D>%"ʅFs1><`34#wc7-D}IfS*ʖ}G(vUPwUj&B!l"T<'˽(ưH'%#ch0 &I{䉔d > ]i6ylr$9acPDN"6x8>#}J =\7p" @OnSwBED);e$.}Lҿ i'VF8oJymRetj;cdx\m 0\ TӄΈzD&$$0Gl`w>j/Gl}Q=qʼnPpU=vvMzKM^ƢS{e$b?}536uUY#vۂG*Gi@3v{N *.R0A8Do%{XJxBXMz60xpd\w?%OTv͐1D+E\oSp$Cmsj;uG G#s}\˾K|z_*¾& W rpA7U)&geLV6΂ Vnu8]GD<zp/#<0Vѥ׽ma kQ^Inrw2.aA F)=a0 Dw1ͥ0gx< mdZآ G'SIDy§|,$,>Ƭaqc e#T~4KdĈ`Bs7$|,=3`sОȐr -EA:4o/\Q@9Mjy r%Ă-/"oN Qf & :Y{m ] Nޡ"lkYse,.@덿2"L8M"7>]n%VzH]'U|vGGu 4`C'j6hV6"v6ҵ1RF3e$?Pqp-7v s.#/[or0G?Ĉ) [0Ymݥ11dN nB |0>IR' }@\5WX,r &z4ŧx u$ȻFy=y8+N [r'^̻Zo.}ڝ$1H3 @O!t5P#u,ziİ7DΜ}JNB; AV8F/bMdL쮞^A.UX0Gwb&w!4]#T_$~uB;zwD.8揼7iڝ)7jF 8<)C9U摉<|``$2X Χ`僁 {0L,_å9}^Mg07ʾLpbehmVCeL*T:dB8vڏl8K :T>$δ2 v7Et"XBOߙ^a%'# tO9,)k6i_ʡwa,p9te O @#a C.b7OQ!=['aj@ 6_I"D~/?4jtgHvZxn&A,C Aґ-W1pPJ>L3dۚvy篘C@+;]StUvC8qe B羱bX1L2h']9A=zr n2Z_273ay=V% gRHʖ08*Պ4RIe Eg:_,[`U UkYnЕo j(._ݞ(SКbs=&=qp}޺Oz0k TCA xOĮƄK6'}:v5dPzŃMq#UWSR4Je(YhKrǜ;6lPXY Ak:9Wy^ F`SˌnGh]@WD *tǐV(p!CbЧRw}F@CM8 Pu@a i&WXz $i㣑}UW*.GEۡ$rq(&|eX~aL{gF;FRt 4@CBRSX$[篗LSEytvhIY8%zeAocgy0_@*HͨAӶzFZ}>:_=;!n{ブ R" b]ϝJ-XRy!֕ W^AI/!2LGeߗy@r~Gm7[7y#qOjB- ] pv=WYюν҈7H%exm[J4!zxx |^WBd+*bDu 0 AD]=*ng)@\GA Z+X%0b,Dq× &YϦLNe@ן33$Qd $/^EQ1N;7iDhw|H=>7 ]j a 1f9-f} >1w6P^? eվ8^$OLzN|AA(<91[81y/X[g9\4 Rl˂* Y8HoI Y$mZ {j6e|~3# 0nUe;t1ۼHw tÛኑ(Qc2-,!Ek6I,昌 #]<6n3_̡7<- B:2 mߦ5V |Pe7vH\y{#"Z,4̒ObzdU fnqFWs1E osn $TƟ:'/svwJl0^N++o'; WnG[(rC}$Ce,l`}>8 4i)ތϮ77OǦ14?)$x8]βdsE-gYtuw{fPL >;_IW5!RK{w A,[?]u;rȁC-iibjQ{SkEo8iHMK6i\wɚ+HMiPK${5>|.B$/#WuXe`h}pri_ Dx8zIబ4G;_.Uw{UL+ڒ L[$ކ2`$$HD Fm ;g)!/Ӥx#:,D+t]vz@FeyU bfֻ85siF6>!)"k!FwI.bOoY ?רiAK*86uOqihJY3]wqSݢhC2uMIJ c/.pp?f+(}Mrk3փ]Xٹ]zԼTN]e}~ $D@5-Z<}k4<~?Td_җ0V̡ {¡1Rۭ킏m#qw&⎓~,,躬Bɩc#s"@ر J-=C6hv!Es!tش1|qxu}CϘ"p\Y+u_>X^9gfMK=ns :+">ϖ]!woK oH=#\9 T\ڕ6$-@0(?n"_Wa3P>TY JARi'\&%=ꁐ uZL)"pI7":;fm-%_ V[PšȘX ' F_9@1q NiQHЏ =d猜PQS}X yRފ)v7L v-Q~_oz $s?/8؈P790gYոwl)H jA4“5HRkOxKa*#-_$BW_ ;_vV >XVd%XxiB)畠Uki2oh70*Ho3"P %/鳴*Ueh/8zy=~e .SQ|2PwL5J}__ת.)VJa%r}Z`QOfGʎZ_E֩Fי,M"3H|e{4,K,AEϜ}x݌!A &Wo}wc/1dz p Aңyù'hr?Y$-E8<x$%v*"Z&-W,3FB=A+]b'f6E6צHݧ@L\[ױ$;NQݕŤH٭;.?E!~!Hx=_ՀXB˖X oAKQG{ѸR !j~&_XX} 󄍅=w _Oj2J`_Bv*Z(˜ yJ~QuY7VY UҘoO"k[vp?㶂:bl/WfMC$G=Ϟ<`ͅN M@f1a-{X}IQ#ƇW8 ǩYuM0L 206H|6@pV !oTң7$!eS6U3;nސaz" {7Peҳ:{edvd&Y XDx͘oxi+k\a(֜4>~+r|#tHw@C{0 c,箺Np*ae~=JanJA0t:^ˑ)b(%6dWw:uo609!?,E(*bX`O@BN=c!w'u)Z2 mυ۠l)yyא+=og.G;6m29ڶ(t!#X>_>/F]f*noN\҄n~￿~Ƽ:o%apﵘeoHT  7"-8=P@#R ߚ`.LOL}p1.,BBttFMi@,KwȖuJ!?j;U_Q}}8.0w?7Aߵd VOg,Ѡ( kN`P"R m] ĭUdv}LJ鬿GhAhL_ZK@]l-4gcϩ){!tޠ9(!O'VxgWi/Ğ=E5[/N'+ rD})Z \UpM VMnuB! \ŀBGUO8_~@45#.VNJPìS3!鳱9/004o]bCNZqksD%{ꡧ;ӵhƛˀr<%1oFYmۑ-{2I.:o[ԡڬ9}B1!+^}#aJ$QA=bxHU \USeӗN҅skU0Y]znLYfsu-( 6/XIϻf5>?;ʜRˠbesn&AA`F j#V? $`_w|Ѣ9 KQFcȶƐnx X[H Lև[,vZZ[7ɐD?Mz0Aόh^l@ц1V 3)<+, HfqoŨb ZCPF}4;i#V;ϏهP{5.dE>Xi$TӃ(,M L4 I^_\d,StVUuj HЧiX@3[\:.wRF{ /p>[hߵbcmKaӚtZZ6ߥ.)L,Q:gaPmxxK$m̋&Ӫ@a,a2Wnmq_jK(x57K^_10`. ]d1c3̫ֆH2(p;ϲ&.nAgzX.U_MVjT|c>Rk̜ -._R%“@⏕} b>}mA,70j9:v=74:zNfPH%l<M5z'k6su}_,N?ty.o:SW5EHGH%NG_E ؾ,a-ӑB'O* Htk9xan-+N$FLf =6D XPaMFUd dC)Q@ԫ86G{j2_@ŠSTVbb=Z* T_ֲ"/l0ޖ£ mێC[W(.Ӓ_2G YiSۉ LЧ mpkRwDa |$pd.ӺF)/n@8mœ@ 뽐`fBPq]bӬ ~)ƪ$$!os p(6ăFѓZJ+SA>I 4Pb"(sr NB*HC}&IWPPE5$|g~!S) *_YEeU 2MyfUIR!tNjZ(y#㇮=vDT=7kecvPU:?ڋv݋ۆR-o7ou~(^o(uwf5uֳ J#=xn 3B?qȮV _%wPƍᯐB]o E:N~` IXNAgcbԄ-{٣H:f6%+F1&yGD5~{&e4d8zN MaxRcJF4640a@}A]$O70apm J׳DWin' ^jѦ5 MڬJv%tɇ8#ʨD#x-EE0+Eb1q>L]=b3䎇9܂MztNn+U~jEeW)|w8$f23VzQYb.ޠ! Z[^ACJ0w_O:pmę$O]>`3:Iᖙu5)w55B+ט LnKL )GPJyKE(~vܿy `iڡh[ |'v[([8ח0hQ.eCl?L 3IxC}3zS"MT ~A :/  <,cW ¾]]@MYlQT۽|?w&{v&uu="Wa;ns-iVə~?`nPu|'Mާ\x.&^H!0 !N- ~kn1лE!M!klt//ٛ?b] kol@]%t\b@dN`/cy h:l篚R.r2lRos0Kv@o0Ri @y;Tw@R2c^aD5~ ;!bJ1CIѠs}S$3H?ˤfgKq`JV;7=\MQƾa;&)1\E`$(Nđ?Z'd"7G1h#-˾]::rt?B{琨&a3Zf\|/oD E^\PxY K>Gzs:`l*9ap:'XzbXϟFpJ8iaunc+(gdH25d3:p2i2lLOpD̔>+=`W_a0HFPk&?}Ng!02C\gcӳ2 A?QC?UD(P`/7`i(Q)fp7#t^H&.3k xkkx)E87Y*;2OP _Bq/0\n҅1iۈRT;뮅,beEG&&Q_ ٝw! HOdudD0DQhÃx| lRCur /} 92lo6RPeT|rilK.VcFlextFtD- xpᗍ 6ܕ8Z" y#F\ZGLДBeHaf{bm1 qР2 BMI@fawiǭY37{ibd賒Bm;r qp4㴙 B+/*h]7b|d*sV  ^ªР#kJَT'F&3J<}l8BB~nr+RJDƶuϫd +Q0i .pRvmw4W2ܫ‡b0 3c M7=cwda{uk :[۳]-5JXwdsH)xfW;jҿ%^YJ*XkZ=jIq߄5IGM1INzC9gpк:Kq~o|ce;}7r NƲK(͇( zO#Z̀e6mXmˀbŲ#j;hI0.,%WE=!3-g\t,&耜xvUD&6#iH0,bF:z8%[#%3ij:VH+xz_&Z%S>Hq:tt]UvARɉUT iejPJ&6ɤ+H@s?qZ}GDI.q2rV^؇t;bn 1gвZF"9ka)NNjicЍ;Gqcw0:ڞH ٬#`Z „`alS:%5Hphz_=T~ּ*Y{9M.V4~FPJQͷ8~ǿG]Ec$hRUN~={;׾rB=40Ҵq-^ĬnM Y>_co+ ,5T/ CzEVpAZvh|Mf4qh St0bL(T($_K`'JF>gc$Eϔ.i. fFǡ{,J\em6%]{.qP_N2 osfZ νa9;;$Kӯ{~n&DA95/-TZ+N}i jl;hMcTJ0`nş6;F&g+ V~_(%:ë-cl @$0ySTޔuN}ބW6c,+y\&c?IsPFp[ >ji%X3):}{|w;KG~BܝLԷCe>/x񴪌*Qc)I:^5K n.QGOݭ4tŘP2ɲy%l/x0Gt]ٯ5o0rC.4jz5P|Kh/BUab7OO|@(|iB ,"gݼ0RA264;ªTsN(q\&$}byڟ JαzQY1ʊސB7Hm\ڨ|H`i'1"G'^kqcɮw*ƋRZR4ܺ`7p&>" klHBLfR|mgz9:9m)43N~fs"DcgYXލݣOЗʴ2Hj}m~F6YIv< B'N :oI.ei'+#&ȊÔ,۲M<,eL:tޜR^SGmCP` B ~y-ZFٞQPHF׿? ] 53:z0՘aȝ. ,!UȤ sKi=\/{?@w"b=F pv۔c]&*ްBvЗLLz9*HK*XHN"aU]4h<=\)>_6X%L}u:zl?DBWNvjx,IrAe[4e`Z%aĕbMDSe)OjNPy#.s^|x:'ܻ(+-Xu#:JIvGvw= OY&#VHtI/WWU<VTޜ 2a|nοcǘOb} a.a|/VY{/AF̆p5@ b!mt4 6%*MwTLxJ O6"-<j{BSŒis>y($ B%![Wq͛یx}rMGHnyEPsþo [v+6I7u9`= +_My=ObG'* DyN5gֲj69}wY _Jf;GnjndJ_5ٰt4`uBW2݋19}?Cp "Dl jQ#F-F!t߲ԇ/([l3q/>YO1WKTF䰡Z/ܤeNӵ4t%5y8usEL,>(XDp0ϛ(4XyW Y/ 55~Uh+S亂nڽy~8Vu#(FZ2TYdK,/] 'ˎUEcj6 *QCzXJJD}MndY𯷔fRʳ+tPck$H_-Y2A]a,^O+_הkQWFR1-Ǵ.JpgA`͍s3v0rA  Ay}T4^<5[z3 -a?gs# b&ٳóЩẻT&3k>j XUdD&"!Ռ -BQ"C(i~DytVFRsq67ƊSFWڑ׈F)J&p%O3`<j4zpD5u-ei[v_}*¯M,/ ዾ<;ٙh,=FyNO׏8!}Thp(Ƨڤ 1_Jr_,}1{I`( ;ʚMe؄4G-*$4`_aa~ݣL2y BolKю4<p b{7`)gP4:胒EE_]AM0S68}֭Cz\`q0PtxA+p`#Bb9毈3J #wCH*Ȋ_B csUcjddFpdN'>f)jҴ̘L^yX$wnlzQQbN5=$>luy ,)8lh CfGt*s[]WIB4G#;9pz=s/Bm#e MBUgD|*4t)g# 'O+AZ`a ̭S&l2Oa=, i"6Nʽ;<{"GS@0y}Kp͢SR_5Xm)(T:F~_ig8ұ2֡Ȭ1W͔I^Hw ml$ `V/n/֧Nj$ Ih3[KH UxÎmYX*rpMpŘRA-yVVۈrF]4-Bq$tVk/>6IZő H0#ތ *Ͳo0LV MWwNȃR*ra\f3L > R\dҥ:cDj?d(ؚ^M^-!Q\5G#b;ivXL6 ķF7X[ E\5<`&ůē:iѡc ;껗ڃq:;s15w Лӭ`HV]CQ=Nd:u8Q2SnI %KӿQ=硋}]aj&L- kJMk99d9A'LlY2Pzـvm۷.t¶t6O8Bc)k^,)`4|ḩ~ZuF&VWTsCRs]N}>oIfVu PzZe:7${P$ra e8k+`pcWA!2fK񨲯=9z# %Z[j#*#XE1'4;cOɽم'1-Y$]|u@jt@':^ۯylt|;wbXm Oke>,s$|,L %/m7ZUB.:B s3x o3;@aۇi4nu,&R^L;#(|"\ϒ/6Y~ "|4hOp++:[yA*>-A"|kVfxx'.Ad4e&"82rȺQW&Uj+m哉'1E3<[Ϯ6zB)o&b;6":Vb8 MDD TphyN PCl6zGLujjug g/H;/-z^%ay jiDSjdkbs,3H/A"mZqpnY'dv4ǭ0ǟt ȔЅ;T }ZaNr#\X*m}Vd;MLIcV<8mǛL_q'K>$6BYa3+" I݄ H"XhV}͊+6|p&Nf&^"[j cYNbD 7Oo (&3v+i"(ܾuΣ ib㈕/]A~.2p U[#H3ϛQS - mЈϱ:gǮY6tT:%DI) omUT2f7|HӮݥkl5J6L/r98Zq3roeJ*SSc~^yOt QdtE}cGG*t YZHȗGo|>NZh\&HL~p <5*sFd7/QkU_ػG͊X a ۜ?BII Lensȍqc{V;ⅅTzn ֔BuZA(5+{WA=>k8},^2kd .]RB|[taXz  T.LUײ3zZr^йltBpv ޷srwni%n>S6\g.Kibۼr"*9`>&zƍ;;|ȆU.W9|ʘjXf@MZa{8+CAGRY5z&T%y"FQzun nj! p'qp2UqB3lklmS@D~赧f"ن>D!^{#1$Y}Os%C-s HQKԥHvH~ "y!SZ{R+MP6fR!5u7:tk)2`aC>C1ʵQAgZژnm =As|E;\m+e4 $֡ A\Ü&lWc|=2j]2{5Ё7ºF<09T;eopa#9[B\7\2Y%Aܞ5D~#&Kd @g#9j:>d ^tUc 7fP$1z/=:}DsXECL!!j,wSxcð>ЉmZ7ө٫bD?㷂أњY| 7ā}/`3B+R:4?`*6JKD2O?y!EWF?yQǮ q6Ч=Q bݣ0qE"C7cϚN[ꏱZ0p275a\]t@Y@@pd(8Ç97]EYqkJry))C[댃6qYqOG!70ŦkYV^0c:As##2FnWD|CHLŰ$4J Џ(Ԩn3-I%@"vFPЀ^n!_1!LCW=w,_|n ]WSnĿp-Q` o]F%6sZM V%,+^lKZR8@ .Gm2p{θq9ز@(E0`n? 4FFYRT$θU"\צZd1g>#0_,C0C٤ձpRS-oQ " вJ2:+|HqwA$n: "?E/ +Լd5wOHȖlk/t&)7dYMKE)ka>\Meh{‡iNNLfޫ/;? q%QcaB|l_gg^'7y*ZzL:Q2=B MS'is=h81tGv]`aus,f|1F5r7%`׍@?uԲE9h珸Ʊ-7 E'^(Ku[oo%|gc4Lr8c,e,XS JƐ-h ,CyWžgf]K(#DۄA"C_:}/$1NLu.-%y&`srOSV-lhsٗYz '쨇Aɺ. yVIE۩R]AG]{\>0./%kb)EދA`/pa}9txPJ5KVYP^vSCa0Hcقeb;f6 pdQzxeEX/%PÌ8{Ɨ;BV/,:F6y#^`YltAK$95(In -`^ejJ奉#d"(̈́5Mb(Kݺao~~30@UBki^S7tV(.Z;Hh&̽gUK:_Z) _1qk#*'vXQZ",q- aLTz.Z3̿YkjޥTn-f4G£!Jl k2]Ģu RAӰK(#) T=n>Jn!9W2V\\lRrvN0(SV]j:H[oJ!z^)r{,a KOSA6Gg>_A+dOS#j F/wOiRi9S҈h-0\EX%vh]+YRT,&,4W̢-^U7LSP擙jr>^TGnp\dYW[6Y]qRogؕ!MrRZ[ϲ B>tFRä wlݽ޻-ȒE:`9bԂCwXNeUT DtN̚(*խ|mel! U=4n q(`&]KC{2/(W碾wIG8>KDdTL`5mN̵ώH5*U|A~P}>3|4K'dY2x3Au.%?GL6[&t{|; ڶhw5UН|:o< +~9E+F sFp((K~Osƪq_5e+,5Xb] ]sB|0q7-ʻ8]kXÂ2:ѐ.j薚yg5v@MpG`ey\=DP*hEI.Rb1V-M)u8/NKHsEH P R{bdp `LiT;LXR!&PZշ#M+ V _yE<*y I5K+F!2˭z ?yQZUbE=e.P^70 "#pdA7i°\3F,e9qtɤ"-P##Ļ \SBаzVi5IKWՏA EرM?RTNZ# R֯k_='Vd cw@M6sZUtK#sw8`rwQ 08`z$DB-\ehٹb.^OQˬ3k}MZv8c%hWUw@(0QQ8[X#T,ݦLf'!rzSF'Lc< P|[،@Ne4,kY+;n8٪/CJgykwaO`Y-jVKGfgwV8-?!*+BRQCC 3i+9`3{1%1缦&OmuSPa .hGZg%" jrmNV[ H Kd>!.qmmHLK.+I|[d4>{PGʾ9 3JxzKg RZ"3tY ]%yq}5 8_NoNXVV1Syn7 q+]9.=])E=Z6b,L& Oұ\=T3ՓIf3j%?p0K~i1}Zl)q;A4뗯ѹ'%U`>L FR/o̯Aq#V+",Aۢד]g-w/6ܜH2̋'O6]0Aچ>0P}|rEt@,250D3}fNI\403?*O"["J@ߑJqFKuٚz}'E}}RXuQB%å1p\@5VwMLxF5W%P4<+f0]r2Jmy$}@ž@؃UND9M!.b؜S0R;`[ZHY5ۺjs{%y0{+KĂm sägr&q44>VKT4(N0׹ݿO!ehqߵUpymP8~QP,Qθ7ɇՙ1`F|6<֔og[ Tʺ&/Km-Ɣ?> hcXikd?|tIEhd$s ٛknmfg \yԇln@9X^L2ژ i<*Ǜ}q*K<'j@N6c9#6x~/ʢ^mqs\fNn^^ɸl7 #ia.h\q!MnNŐV ƭ6GnH SCIUŅ=~umdkwj&;4cNCCҫWml\R/sz-[씖 /+C+$4^,nTl~ U1pX'?3Hm Boý&*Th {@,k *C1RB5`ͅQ ':nSgPPL&`끹ZQ4vC![T~cTs]or8Qwpnۢe}x{gp<Ҕ Y_U kӷ(xaƶ(ʮ$1 ?5s%p5ӯ} ߉5&vN9y c! C=٥SljT]mO,` ؆])@3 v 5cla9hS9VMި+L?IF[b_g7xibR%9;6PDqGA\F!o* 8q[L{VP:z߿epl)t$g)&+؈VKs&Q'_?wїu[<:;*0~)T!n^vnu2Yc==g(_nĹp to}n 7UPO=Z(S u}M,f$s\I'r)Xg*˞'K)O1|OC!P$Vip.?t1e, ];&RPWMEG Rj~MMn15fgM,[Z@8],jس[guJHUAC,[^%]a٦:T+?. IS@̵^!Ga`^Ind>!+[AqtRz \>Bm5DYI*=$9Q?"L'!Kޟym)4ى3wՁٝrI;^~\ 6hSئ)QbM$5WW$57΄-pxl~ߑew"6x-q_' &_.Е. /ZIr' ӗsXcҥVpR((_G =! gYPMϜŕ+#!\l@>wCD{G,a73(L!v~O=Gе{_XsEG2S/GFMߋؠO)~Fokjy͋@f0}͌U]T-r8!~*q?Yہb3Edaؒvyy vi+d%kN={ËF ~pS㡄FO|K Z_w(7:r$-8Z,M YNB._)Ѳ0 9T=/E!oWͰ^4hʎ IO7 :?PyQW&I]{hCqg_w) M~{PZ:MP;]-n5uuiP`lNQcBئEq$C5'T/y /$GUP`|Mu2z᪦^6BBKs`w96$DGp~5v6YHUe5) &(i*kz/>:1i5TI<|u5B泣,gGs4:W[8l nʻMЄ6ϑ%=^T*5̰ .?%LY[X[bmTĩI ꠫R,6ۡ_q-jX\yyBt!*7KNXn}ߌd`%Δ^[h1 k6 _ ء1z'.L9jzHB-*.E  SGb,psntCfzԍʪ >ʆU1˨ kC|Q4@qEK /q$-(ez.tMK٨Br,~TѕJ&5/\A,I :47ۣvZ)ot4ZF{Lf8W0)ˬ$E%6Y{c}K?vQS 6+sao㠒]KcI滔HG\'$ uW*^ fsBLj9+meJb >Q\HksbAn5L_ wI{atk+3GÖ^GnîwQbʼnLݩ9Uk\c=bcJ5Ei6ySTpIgh܎?g2RIG1;Xu4ˆkCn鵠wy'47fx^Ơy5_CaYGխ*GLp8q=P/$1s}cV/w|};bys;j pFuu ЖfNYkc3돰Y0:(ۯ'3$ AҾS#s$V)M8꟨8)Ẩ(:Ƣr|Bҥ=*#+ܢλ|%4( iY ! [.u:]JqP D0\t 94PZZ[Y'ͷ\h`ҧ7[Kml?8py3`0\\|xֺ HvqSӂ1fX\"F[\]j0#>fCo$A)B0k R~#gxZXNL(o -R7UyXܭtVM({sp  [(Ҹ L ̛رbT^ C.͸;6.Ng a#}V]D&rOʐG9GNQY;2Lb33JGـ|mQ~C)+sU=Ip&oCTYYa#++Sޞv"'ʼnu d i,D<^X0WD}}VM멕5GVPG!ؿpOT)5Cv.RE: @e~7."C明c"'ςtNg-il43inى,]Bu}j1ޛD-BMcBxoGúlJтnHn_R tpz!BYǤ7ۍr\9x0WLxm5CoIṑ6")+y[Ĥ1pB =9:UD88XPH@ێ_=, W /{ݰGe<(: &s:cvׇ_F,ak(xz ([W] ~Fޫ9* Kp Wa)( &cTO@T-h%lvD3gsFS B¨;OVw+W`V |ēD 3'N:p/>&M;r&]G'?M$ᛐQr@ҞKhc)!OS,zwlt9P1-jZ/#mSw_DV?|4 ]Y&MK b+[;fŎ@@(\۟J~帠BX}LWaPP<(Γ5C4};36oʸG8X];jHPj}{lz<HŨ\.ө@B08ӑ ~:"e c- (HiWֲmr)^0 ?p]ۓQlf -$ 'D!a iYŃ^5?s{] O4M \SR/'Yg3 y )h<(\o85Ap}3Ljq'o/5[TpM b/eZ)gGUetg,Iߵ+ۣ:(h|=MX\nQ(e@antQ%3uGhNs9ȝ.6A8m db,QȅeϤ۱Nҥ)({ñ$tY`#z|uHRY &V0 BSӯ^%%kAO\2..):Ӻ^[;ğSеf@IKm>aIMOԆ5yAK=(Qxs,>uP`ˏT=FnFoM*U!R NH/lԑŒS$/PC8uB.-BB߰b8 ؁o2R~G6}x}wlqV^B^356b`𻮄~h@Jom1fvhxgD z(Z\N j#*8>˦KY䑗za\|mTNI{·rۙW~YDqB5"_`])Te7:]y([^N-297` U S/ F`w>nskh,*-2嬛xf@x *IX',d7JF.NOq3;͇pL3p[`)=u"RhˏJW5F"P q .?p^mftwvUuڨKyyH8'g L{ȜBiQ>UW)Ov&Oy7`Sr(Hޖ;ԋmÕƼ|6\w7mpfk䕀Ӄ&{vnFQ}ä8~*Tl;}MQ|hA,^]"e0&QL=c% $PKQSao0:}g~rVe߈m,%w%S[WTiqȢ]vi#a;dZ .QA.n9QOGpX e"]*M^OwswN5AS5o|9T)W0r؅~ePZKpfm yzg>oKŹ# ͗FI:R'k ;ؐz}$fQЁ]~U&[@_L 墈3^+ַRa& X9jgU?L~AU($pZS+ S]vO[Dy#76|0<[Z5A(MXmp/k^cD$4B(/뽘i; O+7p\kv vgJ{: 7v-$u4jVz< v>G  ܑS>;֓*|Lf.o-ՌmEuTKW;^I4s(zd^a‰>Lq22^ƲcDJmB!h ϊl3 :z ^hWc Ge!0 = wW-3b]I0B$]k?kU$AjꟄ|A]Q6m.6Ii^5r61װ[``YAۢzEe17<a Z_XI.1E8HKvj>@EqX$Kn;Oԓl >/-ѼJ3 "j<м`;Pion\0 ƨuPrs0%֐Lw 3!'۝a0W`:ePK UIR$ ź7"ȾDD`Ƈ6pVғsŞ=4YZ( 8+i͠:]U}Kh-ns噦a9 1]9-sRZTs#1pB*t<(ao/*?p}k&tR 8$+4AľjY١Dy4_{kO {,n`+'l+l#dh_]Q 6o2JW)uUyv i8N'c9C+ܮs`п$¬B^pM=d(2΀&w'P[q!7pN!M lm]mxN=0D F 8`Yg=~MoP;gd#Hﯕ9q4耟)̮]o"شBQߦbd "Gh;$GLRvFzS!NA?ydy<9GLXzbo6j꿛.vQ:m+|!EI@gH[w@JgX0 }~ERM&Ja]y A}U2|REC@u{k6Xյ T3EQkzLS<S̏|uZyv{_ ,%+ T:jqtP}xx=xUW! #a7ʞ/gBpd-mV|©ZcY< ɚIt4dŠ&cslFZIBPs%kpfso#[_t']qolXpPUfUND!P칮HX욆P.#sPKvYPh8]1[Y@*O xKq<>_G'"@ہj_dP-\)wmG̘4SlE s9}Xܵj+hML#٠gTG9q]^tּ~7+i8) R(]<4%Cmb>5\DDiEs~ָ!}̜݃UM1 Tjc!3cWcVSUB + %Z!, GX74ͳ.:\D7nўFV:4-q hdġ"J"Qk~4gliG~8xFܠ=;np&,D=( RC]XpT|>iÊpUϨ 838TB" xʱMC]!Fm{З k%͹c@΂JfC!QF@M%6"9*o[sֈݩm݀4ϪB e!u*{V{4V#U%lg>/U%}0fW +=UVd3o|781AhqOΨ1 HIe}*J0n?@QY(4 m񊣠xGYu>\l/7c亊h:NÔ]8a޶0faߜ"/0Y 찥Р歊ن!p}Z-@+Fxۺ>57W7}[c$kJ&(p?Ѓ욒 FbqfM080<@N.tmR&éQۃulAU]%%2A+qIv8ؠSI>A(۝eҤYx^(IكSs-i>eSFt @kP+Zbҳ[#@WK {`2H1]>fJ[oZnT3lZ厧ݏjt щ w/_#D/tM}a=ޟ |שGj4z(^6(]<@fUްGb Yf$?s(cx'3 FQ+WŅ,km9 @=z+4߮{ȵy\p}<ƊHR.&ls"TVC}@/kBq*i#uY}/ 'sJ $=:LN| HB ' ZZP+sB^rޛjy֐CaZ&8&=k?&1Yb t/M!7d)iS)0!u!+un2˧D ZID`>j>ӹ-ib*EuL}]] %)[ʹS=4&YOn'jˮPX )e/u:ͪ 㡾HqYe-q]J CBffI.$tȼR֕9ZZ' -O櫄1.F! Y0϶8UT 4+J%vR.1+)395,yBbe׈2H*j+JI<$գx-[''*  P_GߗS a" wKwB!Ԓ6}Enjh9gHCttw2)z ̎rs9Vs4/T/*XryKRF+fϐ<5][qحTjO. Si[s`ȸS2abq}ix ze_mؽs3*Tu׶SOC=zMzkϸ eи*F>f"`#_SxMPTDJ4򇣄ɯֈ\ h `T9[]m/X;Q-aye|&(3d)i/';`B( cQ'9Fhܧ_ʑrKyQ !]iJd3i )iCb$tؘ;͊gW"m:= ;C6k+fXAAMyv,~ jy᰹սp~+Ah`h Χ}:-5Ͽ^C95xkz-J5=GIPseR_TEW%@ӳVN(t\ϿsbX_TS^D5qcv43q5R$O?=vE^K#vJjG<+yg>%"#ljegm3 }8_ɇNiS$~pa!DRr]bx!"+\FVdݩocP ګkK!G,x$:ZjoA$},bJH5ks9ObLYRנPŗ|(sr.+ib HWΰ1Ĺǘ.xO",ﵛ%M)@/!gH4xrKA| '@b~u&Fl<stYK| ,=߯1R!,?(؅W$fjCJQx`SmR&Uy4lyoO_ål3ufȽtRAGWs\lX %~ښrkEAIFdE_228!:O}C9@ Тuzvbo$H#ES)u$D";JoT|GiydJta{Wg^VAcH]16d/5[vV*|8TXe yO*ɽd -k#N-5.RYwt4#@TFf_Hˆ-)pl`,e <8ኵƛ)Xb<.j$.%@Oa:Ј|m3I.L|ˋ~i牽=ȿ܆S\R۽.~Fۋ`y2cב-Lw gܖ[7Ն@SĶFɍ'J+t;_V9j<BQ)   !9Vzon)Ajat8Xš5/:{7ϴ`g7OQ457[jv5&׼.~E1Hmk'X5w(&1&UL:+ZKN^ =b?XoUQ$_XN/>3qF )Go\nqrk8cFPC Hg%xǖsH7Xqt%q0 )s+}dp\CFaxXg(dJOo>j[GN, *-nL)O'ò56JCgR%y .k`›0L+@0. a̷u$bzK)h0o3qXPdW8*KzN~Թv3F?QA+W^C4O/_3V-,0A`}/F^N%Z0 R^9ERk8ZjŠy1쎐 a6JNw{3Պ+ډΕ8+\5 k˹we"&'VA,P\{Ȥ}5&Yp6u߯jLFEg'3e8Tt }?`')-}U4y#c>ͭ}rSyl=k zPcHT*i:( yPYo < ?"ϩY/ V2s*uދiiGoԇsLbpa2zjVXUaq8)N0`39Ȏ7[Į<}H' ĮyAAqޑ 8.{LrpJĒ6Y|6 gvs %)œJF#3aٸ`D 4!(`򔢡'4T#(n"CĖw.8yg`yĞz 1)._s2c XN%y@e_edKۣl=Ҕ i62b5͎>"iQjyYM\+4.77gx6UXaO1O%. y'͆]j=8m -9ǝ3f@OF?U3ŗ 6+SOj֯ղ|_Ц[oWl5ñ=ԏ^z,>YX%)g˴we eGy9 x#n_$6l9s^D'#y"Va[~: .R)4]7ss]y -t-]Tϋth])vF-ʊֲՒ;'{:2&e% ›Ȕ+їߗ]8Fk9 ۘIڑULd8z*;pT;{?iBwin-U(X"6.[ÍYm?XasÅbD^'S#QKqppgȩP$yBn]:󠉂^AC}'?@@([؋i|=¬ͧ7M5Hr0kGӣj雞4 KcR KRE>Lyl2h.帎$c-zYP쩶ܯZRx%T)@=>vg;)puǦ[_,Zˮ"H ~2M~lx ;ؔÕWjm64 t2G@#1ƘXFpKV.+Bt к"JfQD"LPe3uV^KY&s4qkFk ~*2| ~ʰY9D' t7;yڅ/'ذ@{++m\>G]0-_6GΒ\-vuDxP]/}꧵pطD|{9?#[zro@WmY>OJ4eu%Lf3ŅZ!cXxY/ALPg:D}Z }l33p]Qef7-&!)lm"ZʙE Ǿ >噪b{?$l+ާcȸz{.V(tV#>W&w[N^#NZ0`(}2t[)=Ac=c=Qj+`L~]øl|I+>^M+0Uf!zW|8[.*zzk8fݝVF)!%SU(QT?yGt?vqh`o!av`QzĨi)Ϋh 60ď0r1ԮAGBh;(H`֝C^|>M=l /#(W`4r1ȺEҪXq/$#R'NFdh+R ^z{{%Mܳ  "JYؕwnLF6@Hv@gA p¿^X+_q) SXb nԘ zHEϑE.NYVʀ_ \ a"͚/K Tkq|۠ھ44;a--=;zjA#|Bp#9N2q7b*/zGesI j!?P6S~˯$p_WNP| @vP>x;e`e.w72_9Ek  0d=Ɛ]ģ|rU4!<~xt;Q͇Ԅn ʐ 3\KD\J}I ߠ2ڭ֍N ݅rpf ʽ|+<5^o 䋺 ,K5Ƨ..EA˖]=oۃi2bpg=LS^dTY"[_Z&IT-1 f g L(jJzw0̀tol'e3s}o+wr q Y9mO!ӓuHkf+(M鮆 ~⽒EjJ|!wpNehv";bӖ՛a;rВj5cK.f^Ol0묜EP[ITYs֒>n%}K@dD=I\ ([}'XTePͩX_͓Shcz,wǧ*ƽ۪ݫD5CQ>!*/e_fD~_6wٙO?$s{oGWcQ6*fN,=VZx}(Z-^ y/;EeɾG &Ъ( ju}l tZ13wu[^,ljN.2bl,>y28w .)i]2}1Ypޖ%RXsyO8V;) Bĥ3I녞 jSQ_S%CUQ;@Na)Oz 2a1P(/[c,|u4Je+P?JVX"PuW.nI/eWhSQj q@\ah W,ty6QNF=ugS:2?/b?Ji t <..vlaaNe٨KWchMS3{oLJ5>=Ω FYR'Q#}n-g>O/hdUEE^WpɆ?@[d`H)hk,y<ʊ/#|SQ,`QСX="M;D4~GG츫fUŐFp U-a#2Xbn b,>=wCKO Z~XCV&C.&µ| jIXY+"b%Ih P9?ںSR@S=-._wo CIC2M$kpUgIX7 Jcخ`}9n]X >U3ɞ;JC63S ~(3$y i]&_Ǿїbls⢞3V=SC7zR*֓o4l:?F; 34ʝ&Y_<5Nk($/ҁI?A@=* u Cgzt[mx8ꏟ5w$NjN,-%Ռd宱o߈žr )XD7W\ HUqiCƬ JpJ;ג?4#u짣b2f[U:uqZ\ )ШT4 ӉR5S0JfWeh`/t׌_׉0҃HQ̞<\b}0r{玔m_YtSf[Vf.`z}`C?CWX@s$tIA9GՀCD,f+68# ~RxVb~n\gHi;664b=ַ4MVd.e+2fd&v!YᢂEkPR[*jj^2C;O Ja ~%ʌ :S i 6 g.I0"-E4&]-.HikPhֽ9ܢ_Sa_g.'}ѬBa hiQ6&Lt# F{+mzkYKެ'&rhkPm՝N̛p-Rf k#_}HEcep=y,E:6+='*ea:}ܓ|U52jV5q6u)%ks3h]}TN:KG8zg6!N&qna!\ty%_]X⼪Ýj>ƶN) ]n?N`[{8=LuQ]n95>h|u-fO*(F,K}6pVhG!ea@"0/sc}{AROpdVO܀8l7y,ͳa)uлgkƅ3a1cO5JژOG4 :&IʟёL19h7lORELDoxD.EG~ {5% ×4}oS rt!7Z0O5tbYPov^RN)O _7)S c#Umy"dx{ّW!ˇ8Yɠ7^Q|AND揂]&D)$JJt|Dz<.G;0tP&K.6zP̎X:z!ў9**uL 5D•e(L'2N W`+k 8͏/ugNǽYIK$N4QB޳A5nOPpܾN7B2~?]ޭNv c_>J34ʻvoQO.'Xep<*8J"#ݥcSҏP~IǮR>7])}Sgꤪvm)OUF>HxJN./҈U,g@NZ(r]r#fb Wҹx 5$h>F`W< o̞Ef.|2tyJjm:֝݅R&j#a ;QI)¨L5%,^C葠˘tr0םWG?mxWJk{:, >{`}֑eݼqk :G7  !^V'xbY5ï 1-1j 6ᱧzԸ E`T*_ qdʚx\Y@J2;凨oQ6'}>ÿgg {֞;Aߩl-N«I'3qw~Xl^s ѓX{OxW%ؽEkFR[oS1L* HR55w:b,WM*"{B4l^ ^i }3q(tM[Xb*(|&Tuf?R+]sAU _ƙOKNe2Ӧ-WEk{1C{WkgRKh?M H7ߐ|h5u6,#Dds*ia yU ]85c1x'dД4!] mjx'Xq vp-'!t,K)$Ś&J/X^x<# HB|F dg[DmG%^2[(Bs-^Wp4'nxr0sW&E%-4.(F:LnFRzFnuGqI1=:nMxJM'x  Y"nA5a7;ٓLrH5|zvo5ьIAs5 Z1 wgW=Pu+73q PIdJު'PA{Hp" wM,Rѻ2H1N+vm&{7פDj:4q&HFPȐҊ&@5/R:D9Mb+n#؋r>GbWC [9Ry1JǍr5qqzk9[Ǖ1Cܺkŗ˕qj8\: M9$G28UG߱!360GJ)oh"JeP)jrf 5wieA N_.>n퍗7$ZFHJDp!H!ܬgR8aZIV\b4B2́AZour`h eƭ6xɼ@Nj4z;k?H VU>1d#C$gR3" Y:&:s(KѺS$8G!c(0وL I;zGGE0%!VJ yI &D4!**NjqjV@LTsd*MS!7P*p]D邝XԀa9SQTjt-6AQ%;%unq _{I_.{|a j&E>kQ E` z"QcBX /#xv{L![D~ZSfs˓ ,gAџYnf¸^p`3*́aأgTk(K'Nš92j8%ov3e4LM%V>ŽDTD31ur JLkI^[s@'xL{Wjڹ޾; 0`.ejCH qU|F"+JAqpͻTBM} Vtd:n|SOWgP(^R FX+ZKa׃PՔÌ,qBW@TEֿ^ KD+7,=K^⫏k;iJhk.5ȣWJ{oHH]H>@'Xeґ^yC8?6j]+dY ':痓wa u-xzkH azJtjEz;q=a?~z,HtNb\7IP'#+9Wn lgLz'36g۟-#U,_fLA7tg׭6Ɍq3lC:03 ì4A.UҊp] ɘ㾘 {Q[)$9U9 T?a1JoiGQАYxD}jIt7]e Ř\ĩvXv13(*+ɞ|h@3zn" -C1>`2cߧ$^GWHiZ?KQخxaZ tY<.oTZ(fM( 핑SZ}c niD"nj ω~ A {oA۸*~jLլ02X^X*nץ-5˫ҙ2J(zÂ0e"ʥԸVc"X%XQ]nGhLg[?y0ksmOa_^L2 lLj'$'G 9.fFUw1y$z}zõ=cq odȰe#6Yos[}ϲ2\-xd$V>լW17*3W .qʏUwi. hu83 qH;0Lz*|뵆ɚU$a[,v/U׻Q:ڷ^!7r-8s$eF)" x_#6H3"*R(RRBck$E$ *u^<: {/n# @Td;J0ݐuE<|7Cf'Xwӹa mJ"qTg.'6/A~===pBQsDթFO_E?j/h|oSvt*x+ >QU89 vx(@(g܏F[Ym#{hDߨvP?K$o1X\pX YKxhHm(l_TBVw6:V964@.u %G3*"4-)3 @ZDؠ|?=H<*8Rd!@XOrOɮ7q[#>͐bI4csFRgA]7 u.J||O퓬"/!I݈_, ¡V.d5Rsן䄈'yb (KK$N`=#4c34\ '#c@El3(L!+:JV_l??#VbX# [.$DsSL}} PxH I@{Hmq&`ߴϯ6t=Ot,78LX@1!S52  \)9c\C޿3w374IC> 0#BRwuYĽ)䤜^FSl<#kVY_ qsp\0%?}D멣IrIY\5-/9d=̑ܘj@B__b`#9{qO52eRӜw8QƅR-9wiGTR< Ǭ{5gf'w O]B KmJɢGu8C}LlA5*6%[c)PѹnoU }O"C0N'流 @FH9`ߒa!Q^8h9dPIBDop3@yj&k:vh2.n#APa Lg,bV#|ws&3xJF`Wo/.weg`M۰U j_QE1,w[}, -y+-6_@); 3-TA% ბxCE[0I &Njʫ7-GM'*S u@C02Y Ȇ~84$Cv@=3jޓ_O]qEb,|&A+pt:3=Q퍮ͯS2YCkA`na_r)x;Ԧ1K/vIHE E6LEo;iznԸSQ32"t \1=Ү;Md7=7k2NJ܋OS.cyL%z)pHU̵֧ש!S 2p-Aw_@6X = >xD_ˍ ըzf&OerEz ^o{HCǮ[_=LPs=|s0V#Id_%DL8؂wEBp`)Pk"&->%~2x2T1)p ߵj3;P uε#˜F*ϦQQO0YWKG Q|0 w!k$^DQ2)=U8(E7/du\Ws؍2v-_tXr;IRAl#w7pjMa͹mJ/n̽E j(y, s|ؕfӀ-Ɗ> = 28 v6FAe9nUo3Bܑ ?3֧t?1(m:Aq-Ϡ/fs5%FGmv&˿m;D~gahهь' )0dwRP!G. ,9OK,E'gk&`6ѥ{|fdB bWmr؅xZALnMU"䆟/ MJ}9H71˾,)E+uk PqF ThIiDR9j!?[{avU#tUaэSNV~2@ 1slsWה&Hy1YћW0|`q@b)^G4Q3Qs ^W1vf `8Ю\%}ͺ duH0F7հw :8I+3uBO=$TӢV0~Ccr%WճY. -LFQhT1EMɵqfE~zi+G!M&gg,\?x)[[5̞Mx#i:E` Is3{/o֦/m oP/A{ k2Z>X"&k<3PJoHM6'e;SsjgŊm*'7sf-&݃w`A}=m5,6= ixJpԵ \路`P=!Yx$Gs>|w:e/>9>1q {frB+o:Vzh?'|/8if?ЯJ*hJRs;.j^ $wK)oyPMnqENK;a5[ZMJvWeK;$p?]>o6)ҪZ}-wdw8_a*ֻ h]CV,=Ad,Gȳ~-i 8Q.,!& /KxQ9\lӸ~h̰vGC›tc6*BGϙr;?h*nv%mżhz|p:;PKR&\i85H I:Ũlހ yJ:(:Wnt ]w w`̜+1]?ˏPnhi.Ő+ZeZntD@_ zE􁇻Xl3F هR-H =ٝk=T;x7NLlwViTv0@Ĕc/RN"nq蓷xN6͔Kf޷JY_l.ԻӤv5,eZ%𧹔T;x<{`y=<4?i5㎉XM`ZTٞe vvkZk<]b 0{3$3/E }`c 4"ysbK=8*ؘAh` 8$5X̻-kQ%`<X]eBe ł[ )T 3?dG4B ǑCh/b#5Ԍ e>-ZP@pEz^NR=TY_3W$k@pE.a!dzs\NcYV&MxQԾׇ\(#IDLX4P.1..WPlfڇ3 t+32#g+śDhay*A0b#o9YX0̉H=Co^//wpj% Y>f͋XV.0GmjQ[ly ~+VBɘ6rx)A;1'w:L=͞}GPrk |zK\-Kt:z vD"оWa3rauaEKK($^7O oįN?1ȫz!w{=1i;urڛq?)҇;k2fAޢUkOKMnWx O~G/# hnuۺ1{hm!AsZQ2|Qt'|in~Yŷi-bIa;]CWW1]H=ҰUİ3>"$ 8PCn0?6}c: 9q3ZNΟ Q,~AR\Ryrqa ߻[$r W*] %}>RG$#S2m>q ˘ :]$0C TUD%وF+#>LH9TOB$x^ʐj1h3s=N#|ds|]xjW؃S#LU%J9s)tvZ7C' QAwS @:?QPʋVU;vެ{!EH9kD Sl/9L2Xi? #O_[gZ6<9.rxۜÓ>%)@56b[|PZH?>e6"f=Wu'Xf'[,mm8M>߉Ϗܛ4YǛ" `TI-G&m:肩&S:h$*W}3F _B٫ժ}X*(>31m`P'DwoT;boG!(ΑOvG=77SݝV`@6{@0I`jq`4^O}@U߾n.`#@Z/zp^=7x_Jg\"\N~nE*l>l~, 8޳R#Q:b~qOu=i/̏"āDd{]]V31̄JZ~ƿTooG첈 Pkv1eHr0 ?< C ebɑ4oȘqp;F[-hiGXfdvUXa63{h3 &֍󲲵IN%2Y$tdg2~+<[ɐAMv[ZI\Sf-k;: 1K0UQΟ!m YSn6bv2[k(9c?i̺2R|Wy(* Z[]J i}}j T[x.=T$O\ɖ+Ҵ4ȦEySO(a(Je24Q#J[M4Q@\Ͷᄑ|%Aނ UG#o^Zy@Ci$> Ǧz@W,TYNz[ahp>)q7cˏDzJE#8f߀*_d.z!*P;r<\O.>y_y6_gDf@˹H nY+vj`"{PӥVdّ0FC|$x~(:|h|ˊvrjwL%V)>)NQxL bZ dqW#gaҋ>ː_G$lEᬁ C%|$c' ڀ!2y V#K&b_T:LFXy]|Cj*e)hYʭ-MȞ*z7yaa}hfa9˓kVve9he'4 wQ|1w U?&Cb#Q@Ahv.-7}3)G S{gmOR2D>E7"wwzYАw|kڤ{s,8+üp!3fގ=\/҄ 'F;&]h Y+8|_? oYgdi5`vu7"ui&6ʇשrnWɲpI1XYyuAyUw`Kxd(Z{7ݔ1Ri=8`|dpE.-Xyg v&l$T!s(66@ M<2Xz / Y 9rh"Kl7Q")Oب6{eV3ŝ:Q9i sA׽J-FHZFQ\Qݮ9^3.p;6ٛ3T-qOYJu?6(+r!^OdQeK|OղulY|h#Y]vC{L BmcSʝT-,"@t0u,[a%ӛ&dž 3ݝ<};ucF#Fi/_est~+7T|p㓖)aoĥBP;_-9^ҫv4zGZ{֣6[OHZ,ANUe|@{TmZ@ U :E >$}*<9 )БK%ue.WL]P vqk`$H}{jdtF`(\7}WKg*qob<~c6[%l{MWBFKf(`_pAHI˦(qƖG\j{GX7mp:cEݍ-;|7ϳYJHQ?$^9ͶrHNR>O8EǴaP|)FRi(FT RmZ(u)I\5VzۘvL4 nߚgu5XϪ}ҹ01Twk-G.9q1O&tX͍j ^Ԭ rz|U!uN+J`ZpC_9lo&Y$sΚ'<3QW+*f fQ#!@9zh$NPȍtJQiF(g^IvCe^5A?5_'ā#'|j.<Ym5HDTVX宐(lUzk~Ap֧Gl?VDĘY(Mj];Sq+Ľ rC"QNQm/ƀn6gyjNG+vlzdaDGrũhsq(\Ozm`A.HbNf=:p_rhUҲY6Գ_ĭRkm/BT4Z$v' JP7E&[e" W$֬f~Lt'73I[v-9wUC3P^A=֒O܏1ϰn)7ci P=` {' ĵ(T3HX ҂a|DWƧL'Ӭӯ\U A ΂vs67REBs=tb#|~3-P3X"B_x9|^?TYsbVM\dX?Ϥ*t֡T~L޸K7 C\)6q:5lØ`P5> JFGMq%PϵwH6qn'Z* g"5LpE_`62ix_mk30G-8 DqR182-vVZ"ϩJ4sĐ& Jd }V 2E Gz>rODٝQ7䪨PA#G"QnZX[XM%@%SEFK_\8;JOUM\w}ϩ wDۏ,̄eLuKFe3K\rVȤ> !DGr҄wBtLjrW"l>yI6 e#gqqމ( :Y8%#[ dj(|Ÿ2po#>cͤPL t3]5ʪ N'-V݆4q-s 51/׵qqA>#6#SY!9(Vj{ցwQ| H1쁲Iae6 UYO.\IH=$M$˦tU|'/EICo7v2p[m`sᳱ>kئv7fZەyA3iW9L?ݔ>KUG05* ֹ.2pQV.=i3 FUmw;t"X4!=2&\Fqw7DWQe z B0Zͣs"s&庺X%MAiN/ac5ڄtioCcoZF'Ϯ U^<(y3nFvC635)Ӏ/~XBxEVrC% {m m$VFriP7+ӡJ쐍7_VNhu'O \_0jkee͛0|J)y9Kϻ36n  W22̵](>.2GmS!`q"am/1;xTF,WZ{·Eڱ0Nv;\ѷ(!?}Q+jq1 RL2|aE2t%I^).3x6vDD9V%c;Qֈ#CL9 &[P nㅌX>.0tE ,b!fL1mCH#3[QT3y$KDr]_,SٖC}z;k)ڌw%bnH]!uv}3~ldg_,ۢ #ۤ35ϻ.%<& 8}1..61hz;$Sȣ`ٲk0@\ǢFkJ͢O@FuV$9z9SJi@6όpl Pv YrŅS% zq_U1[_פeXFlŒy"gB.4SVaɜX6  qa1"Bhr*$zm=Fv}(eG,{},vP>L֠+1ɀ< "d_9E } -,-2W(PRb&.=L,dt QUⲧurstE>+Gc!ͺ01,ZCj\'_x߾^kp/u06ֿ٥lL⍝[%?ޱdBx+sVj4SaWO {s<4!:2Lx+0qX?nZ٦sX)6N%_ﬣOV>PVaj qZ5y3e%XlH4ѧ_2 YܶOG^Z\U6Z&U쏒ؠh-D[pˆ}qȧȻШ=O}Hc 0D;yse%{SO@<̍d*V<_;:W#<1¿0s֍jXRd3yuON9l"B[VLor{۠pVt~L׳ڀŅ~',a^胓ڲס)IB Ǒo-/c)Ea}}` t>&s]›Դ;q~j1.BV#Ȳ mi&K:^\~VAIw7>D UbXdU|c;rQ;W' [5ZI6^3ϛ|ht&+8 ,h^U>~$D  fWZzeⵢ+=6ZuG$֋k[$ނr_.hs6i|X5@qV6xۻ̯NtNY8yEojb޼%#C5Eq/aS4JtpB=Dl-ȻrG`[M{ tđ}sbfIJ~-ݡs  o0 *h F5hH6K@k† MM7j_z.e}~pnr\huQJ Z) 9[)Ȗ z Ѥ %aMe$3Co;p{ȷD߾6P+- ~q sOJxY:3z$YѮhL68D%jT=4U9gw U0".amT" `h ݋Տi:L*1bRgos4}~Z!5g a :澶d߶`hg]oq H(\Ȫt/(.Zlcbh!ExEәWz:I^(I`L0Č>{x I`DYoڟR=> x>v階vQ4fOǁ?<պ =EpY%z㴴o'64=pZƦt 1mDL`"[٦ V୤|\|TKOxݸ3E:K"oJɱ{AH}>մ!iٕPt;ɟ9ȑ(i$x${V`\(I5; HV{\d໮c7vM,=&y@P FIV{q& ySaS}oVOhw%x&JV.=>eR3Ap3H~⪍Pyӧ7VlKo[Ґ~_9THxp;)$W'40#Ux5EXW6m eOȐ땫젆E2Lc]?siVB _)xķ}SdIp.ЁXzڴ:BIoJwN4c?.H!13.?Pn5fFzcKѲ˘[&U% Cl9 ~еFQ꧖zk;XY.d rt# BI9.5W)\i=Ͱ*8KzbEU˲ I#Ep"\(E}(1dg~yxkӶ|ND}ݍ9ɳ[{i%쪅x3Eք0TgK"4glQxbz c%!vFǪf/=TP#I{fu-p0-6xjˑy56(9~J? ܩ-M?^gA|mK _.5Y"ǎIM?d% /X FU6dKAsfnƴ;@F@fuXf<LAZʺYi@9ʷ3[N'LBx;ꭀǠxnuD۴gfٸ\XiJU`o%ԝ01G4sd`lSf>XR'j._5H"y$lUZwYvG=@:[֤~@ JXJ;Hzæ<@{_ܮ~LlۭO,A*q;0mʵzX m[;5vγRҠhypInBr$YmF(0ig{QPSx"\޲2ޖ.Ъ=XLZ(18ϜRT\]"}CـxɬǷ>ϻ 3w)j%D`p3<?v\PObpMTKJ1ygcymbz˕Mor&Wd2I5Q"_?@yVZZyE1OLEt}MIVD3%iG,[("qDd3fӽ D1दžyGJr?UDAH8,b0|qD =lY#rѹl-p9$y! |eN7Xm.?F¼Tya{+mXqD\k&Γb38aVZ>}Ld& h.CjWmRGAIO8Ac猛/+h8٦l=k70O.d2$0ӟ`z^X{ iUŠk-n*~R WO!vcUEhvjgꚯBbg%TNU",`$zBk5w2zĥIE!ei%_c12nSHoe"IxY \tl. à݆F R8}m:(eEr3$쉅ނ~ݖTx$"! 0"+ѯ_+ |+)f FI/ȋ^&r_/먘<ͭԢqHXF j(AgZ8-A mJlDλ눼04ksTɜN‰#22р^;[QdqAj789Ƹ34@TGYJBi%I*4^묺YduD;ƖmRJxFH@̋.=uAzz^/xs T 1e_rSJB@Ja;^={$Xqb{RNmK_5:jӚwmM^#ɦA7`H coyq_xז͜(L];oh5y)d< WP=~3]Ή{^Ǩ|,܂ÏAD:H T'P3-t֙ӿļkYKC1s`]̮H9N<}+k~(c > ߯k'Mhna4ĉGf t-zUJ;a#Y^0 DEk%>ooDʓIѥ@^̴Yf Ȓej)M%jkNox?]sDkPOOƭX#wRhˆ^/b^1@"?{ڵ^E&ʙ ^|0s*f>gi/ a:dJlW}.7,5Pc!p ;QrڵYi~j/L5'HZzjdX(iIWNW,OmѸ{[ݷ( nc #Wɥ~8 \ҦCfڛ(.ʣ'{z)ҥv)lFiV,9d/fXDdݠ~6ޓVGN`W0yt}@kHUnt*1iV>n+송j3]~΢Qq<,jƚʩ箝oOjB4c`תc_d`[F+33䑗xyƞ{i~Y]V1Zb6fjM9@9}wM8*C*"\{&uj ]TZ@ό;LTQmZڢUr1WD6JxgBu=E%Nጓ]9 TEsݘfFa(_/Ё@4v`b 5 b*$4lUEaF5ry, Ӆ[5bYuS? mtY%J1@+X.|=~(td8|7>+Ur|(R=k`_:nHL 0 !U ?9,PC",ztRIJtȪ'2e%^&ڰ)EakA{.y}Hf ^?aE)Svy//q@Rb-Κ9"!L /shۀ0/ ܅e]fyDK=nnΊA\d~fjqSYp)5~6yMi6eor=@Stn4B~pFyb:{a9mOb/ ܈z(P6M&- vlmHjYku *u3V"k4.)mbfz 7?yQP|4@lI"o JF?ZxKF@we :Pr^ĺ Er}꯮mtLſukv+VU~ח ].̑g fγᮔ{r釤V5|`=XdO] VF0?pyö8TMm LK8ىB-Wp\|a_t'K !a[n+:vU I\|֬Nۤ9JJ3gP0RjͽRs-߼~-8c/)fZϐF1]%Yk$)N~ BL?ߓ8{~8,fct_R|繷?c\~η\]zS!\-bX}lu0 =,z)a藣Fk?'Zk].ts@xC9f /+0B TFXÖ@@O`x)=LWIb2~R)S/7ӖQ` 6|ZD[S(ӄX9/i[Й4:$w2|nZn,E'[J{mQ=sRt>jE?8{׺4Z/=i+MƱKcǛ萇|^3k4P7dUy2LFoǸ(i'?څ[7U/L*DFcμ,M~CDpEQ9q$Ǟvmfhw-쀔l%,h+,SfT!q-zs{)@NAu#-+,ϊBxVqzܟq̜H:Y"a]@kNϔtfv{A(?Ғ>(x៯҉x421OFUY 0@QcSul1#Q[jNj˵ɛ &rIkf)0mջbZ|,[u!S<ʎX2fMWSG?`9KZ{ĵxm˚§ۢYt@`co,: dE*2_RiM.r<@ ӣ=rit'3Je5'`>b]ԠS?g?RL P֩hToefhx$D ONK]&QϚ8W(:[+'B,ͦ:e?M^zKFbgbCvR@jUgBI$D @V'mM Tf2H0~FENj뻌l؇& #+};C.@ߐ.!ӧE9mȓ=$R{9%gQfmt7u-Svf~_\; (`#nX$kVbź޺c!XXVk䵠rL0^qd) &&[ _' ՝{9` gtx?AtD~"wc4Q$C^<+‡荺}1C(r˴YgqΫ(c kJ6_F~ u]^+$;OZǍ$F7 ơ+?R\/LRo$C[`}R$i+Wi3;WK*$7].Sa?rm`8Bg*xܕ+ZwL2cҕ"kru7d᷑l=|ତD,$1=YGK/x_!rQ͟:E' ٤e;N92gO 822v۪7#S#` ݭI *WAz=Z=&AQ?Ů?O GɕyilU[q0w{x]*XeJƓZJ$vf_&\:qG&x!%:irp^Goc|c/qxnw0=N. W4[#o#RYcl"LN\aqj_I'=`2Eiilq6R 8U2f&teQ["MSV~&I j%9)cԅ_/PEt@WMUbLuީqlXEX>*W0 m/G6JESNc{-~aU-JW@c[+,,R& 4쏡4J+8YzL:iS41\B!srVj-ZkoɎR~рW@0ŗRع )z5JtV wnu#ƕ8JlF1sJ=aLI͖><԰Y&)U  Rx,2}못׀REIWfeG-X1Ay,SFSeE'k 6YV&uĒnX*tvZ7KpQ)ٻLP襉CLYqj%#L/}VT~٫-6MRkx:Υ֮g!"i!HGI+QϒOl5F>=OG%ٿ%Lv9|sJ'' h#W:?]o7ލ5=ioX-_eZw[IghV͋)j4SWT5-J {H!`4xW Zh4x,ooiCϪ#Q5Gg6Ϙ8 t7p'SdkFeZGQ.hL+hɼCxTucK`0Ieό V*HV/-U^1^;θ/^/Bj,.Ɖ9Q:u^LN$>8 8*ZfN SC̋#h=`R}H۬3,R=I{$rkU?k\$%'觸}? ԯ7֌IR!cjc7?VL ϒtIM_tAVP(SOR5Í&n['D)75P8>n R,($KXY?(l6GNuENSeeh*s)aeH$v!АM&5K'\Nj&&K`j^;Ɍp /֟l/UVwpD*C~z9̉xƲ#Ŗ4T& Ϥ@MC Fy b,{bj|PucSVjK~dy.xiCFLCb Dh b=#ߗXi( O=vߥY< jYen2}PX |vS!xjvWMc,5/|$c5$4~ײ᭳G#b8T]bOц6d:g_-Iۏkߙ#'mBrL(j+xLM1uhAc=M徟BK$uDYOQ0W\qr]bGO9m=axʗ4Q@[x- RpgJ"!ʤܝ@^LCiM -ck:<:҂<c"Ѐ†_DZ^uӣuՎK4Ĥ OgkՙNJ]E⮛a;dat 0{uh:OIhtDG%9LDq̼ <$Ɍ|kr)ڶ4Bn`\h7!zWV8K(2Օlkt`UpyŲmS슁brk^/:uNY&<Jx e|;NLcһ?%h)o75Œ ~Tnz3p8$UCpu!+>|Pӯ8;H9!fn:b}Y4 RvŪzØ(oMߝ.+ahqR5P 4~ (*Ud6%;$_r;:o= FU.nᮡ$Gfo+2sNϓGJJPZx"4R [Fx`G 0ZwsOީ͓\a]D-Fۉ +@RFu5a .DAx? Zbh9O0U3w+? QjFm>V u#Qe~Q)x_d¦7sM1X* `A-Ѱz2'i[ .YSh)!`ׄq Glr,MA/ @ֆrA[l=!&0o%Ra)2!f_:a[XT7Kk#7+0yo̊<&"&yyE)s"V|*NyA` UhEڇP$5=c =6?Xbsqbuua]s [xEa^W66X^,"5˾EG]FXֳ_XV(`ig]ME K"F_& SjtL־la浏UC4aMkJ=pl]/?jGuu]& %E>bt%n넝X& >nN`,s/(J~!klV, H@?ӉD}}ɣeAjv~ݐ"џƇ "0\%?ŝ~!C]`M}9nfhRe%8 8ȪU_--7źX}jP"Emu\{ɐp|_$wl-zE{6@{BM c8FNn~[Ԓ&u;8PNB5=?W E E*8G-& WS`t.3…`i;+Āy Eeƈz%AMzAVv'6F[GU`:=zܜε" ȘuAt d \L= â"UB&N%lyrj-"BV6ԷHw8UG0L+{=ݱ'l>ьpz]mm\#$]]YEp|Wz= /Yl1>ڲިh*rBK~uf g+N/h<:<* X$ % 㚉@n5齷v-sb[QS["|e %nH`Pgf7pG~HngğSnlY@{&tdYG@a.%*s;,A缟ECcv.*djgc/zM6j_wNlE蔖4@kȩS $.ClHxy OemavykY)/oT֗ .h _Er4`z(}OF7f1[lm' Y:R>x=*+|yv UƱHkcb'sUv b3Oō E*vVd>afo/U%PwBoT~3ɦ _iF_ ?Xh+)A?&Dn녷ل ːwg(xU"^ŔYR .CR' -e>,J˭`#T6b96c|HU*-=: dDI$%;ByVUnaH hLb!],-",;tϽ~n A,^YCVs-;hǔ>.pmTW<,]H€(,d |#6ʂRL)P (Q|qj`>$(fF;|DhW8Pcg-fcΔs3ƚӃ>Rؼ]fk>\yeu/4fgsx- Dz4j6iw.ψrg@.:C;|4(5(KJEWr#iPعz`K Mk0tVcߺ(ڻiZD?ۥ$A,B%¥ s}F{-Y zı.ՔԩvӾp䨗ݶ&ugK֜N%oX} (41}G1E& ŏjs8sVHT$'B5l]~o6 RWH`L( Ȝu2=7^Gezu(-EA}KG"< Q`Xz{bf۠5z+2~=nTl=%5V9O#qysgns,#^gh\s[l9vwS-Lh~B 6-&@RK"ʚ} e]FE%BAˌw*;"[f.o<40|J5-?K5є$τ9y8ʳo`"R!sg}m= ^7>}Ij9採jSc.p+H]u[xBf VMv+ Hg=¿Dļ0E* } ~5X fLo:k7 _fUtG@e͒ov RE6m l xK+灅f,mҏiDNp{..?R%oO_mqƖ}8LFwbr#Г\ZɥP3?l$yx^&),i4A KkGH;ań $֋ZkOЩr&2} 3;Tz<}Jw#cSvݬ3jщO)nӺ릥ʩ87lSXl6B-0G/Mb`DoGm|j"]+w&~u{u0n Zdw̮*Numݱ +0;ǜiL t:T#/]CՆ"t }OhI.NUhg:lf~[~ᛀYv\: ,Q |~ 49;_Z$r9f  ʜ)6*L1nppVѦPhsRKD$l-鋘@c؅E6v`2O%iŚa$J*mhX֋h+1 Yͫxfwu0-us?^2](UG[) ue)=xm-^5$E:S+ٵPAbI(.٩kZ kևK+v30yMLY͂K ܟKqSF1,{J5j=ʷ; 1>5 }X:G;^|T<2 mؔ%ಙa8`SG~G7R#k8@,ʿCfY#q)XyZϏb^\ݦdOA{HwJ $DAo] p* &vU /xkVr BI-_߈" G ndeW",kRw1Iqo+}/#> HFB\&ȼcKb{A_B* M)J|̓ Wǥ%PPi\FqP mB͔ p0E,o̍89kKX~+V'Vk1k^e]=l=1PM (iIWw"mSOh+a{[s9.CEq0pB8m>ٝZV8P:tLJxYJ'e:&H9^GY ME\w_ЭKacks`K:X%?JN p[|`_0G5ۼ)c GA2ʊN6젴OiR>kdSQ3}(ʰ|}%^y#w|)1nj}nQa{t `($IHQGƷ I_F+Y0Pp+C%C41{*XjLa'HBmoTo9!!\x@6UX=\Qwq|BRPNȃ匰UO|N mWCWgE0p_C$~(տv&xazCZͳ !?aIRRsZ$uO)Q(YĦayl bseU{ߩMꋶտ2-'O4w^/frA uԺJ9Rf3h^C9W4Qa~\'xroPL0|w@Ё&tB2VO|CwPvL!UdX3 2DϠ#EI7\6V1MN vm)I#η*d~^!$,1zXwBWkF [P+ȼBpj˛`v@dkde3+x?5ρȪ(klVGwICE3̅# +S~k b풣xÃ؍g5p--F3MQ&d}cW IkgisԎ"6s^fAU6t6X %lQu(@ 3. ѫgPy'hlq\,Pr DBSR!(Z84 ;Azb$_h}Єnƽ?F$Q̪ N>`Q*\g6KA.Fe^4CUݽT[[>-D)״HsPb+mf,UN "K, li!Yz wc@LoFM/ò.bl*b\f#j^X]ʈ4@3$|Z` N#w⫸AAg1Z[' ݦ4CrW_夂mF)ع^vn9FioeGvà ӦQhcLL5[@LЭYpsQwL0of"}䇃Ux=*'u {J`F\'Nê4h~Nt|?Z*$FlI3BĹ2̈<~%ZL2 r7¯ oJQm.'MaL)ny+Wj9G$f.烋}'~0!QB Am)Mpn9Fv3%"`z'\ui8l”pfx >bUX_М@g<}4d&s_]L!AH!7z eq5PuNQ;:cd ąe^u`â)YwY![.|}|:"# YޘFPU/ `c `ϣ)PFY”d3˒D m'q\fA p]0q!D.B'${f1w"GBWxlOt]{.Q&;c3 ֬V!ìǺ4XOvx^J1SgIdx{ļ|^I4 N섺K .̛hGKU!S,|`F6ϰ2b8ͷDSa)9!nnv  sSdsӿ ^|y~<dy>E{1(bُCH1]o,@}C>WjG_=+"r<<<7gIsk%*c%F]>W4IC*1L6wKZM$7a,Ty9az/˽SWi骓S6@jLۍ%'}{N "ξmIsx)jbl5꾱>>UNa,Frssx ݌%.JMMՄ:m2`lD ZȽE%qHk\+ >I&0zԐ.IH4*mtT>s~M=MőN(7%`fܵ%}]QҰ#֙jdAfYw[xL?N]=̾1y0y4UGy4u`c&ioEG?Ձhwz4ltD%咔r.,Pl-]pwђ5a^8BR?T_tO=dk,̐_ gK}Kp#FpWhdԤATQ6XQ.#VJ^82d]k bGHv#b MxQ_M9ޏ07ZfeIDD3fmb1bp$G/5B{<&Ey`Epԍ秃xIbgc4J󳾤S=t7a-tGlU$üo~VcL\iƳҥƅ;dÑX*=!+tk`l o{ ))GDǺ&yL\rM0ywaRڊ{R8+ 䱝Y4ВMF39M1H:I''30;x87ayT+ q8,2&?CI5L u.rЯPb2+R; ?pU,"50cӘȻӱCķ(}j-#;~K!7lϗ61Fm﹓u`z? '6Y=Eۼ{kZb t) Sm6TֳeV3 Y|ZGŻ \)ְ~GRgʍq,,oې`ʢ ;Fx O5Gl\ixOn\@iV^ٛQdURtb䣝f@%۵p|ۺ?E-'bpt$v,D۶]'!@tx:W9ƵDUcP L~G.[HՄI=tЕ>ԔOH<zFw[݉Ug]BA=`NC|b {ȧ@_(βT<gąqcΛD.F:ڥqێ:Rv!fCk!4`\bWxA. #zѣ>ʸd/GAg;&aN Gz!`z J\#jg)Lt:{pZtՀ q+쉘ϨaS/U?.r%В\Dx[f2)Y1JA>VMsʦ`ERB?@``lz_,I~?M@%l,[{|-ωrStlj .gH87 Yt_RYBI{m`"WhzA+bWcށ_-BQo1[-H[' -fv6l#sMus|FM7PܴPξC:C&K=]сC,g d{RSRqW;Da)f%nV3'BN _ʆ` bX%UZ ? Ak! L> IY70"JTg0F GqE'ꄄ%tn ^#9VjR2`fZ/E;2X@;ӇGs ~_tԉͫy^,Y 'U86 UL"ƏRnSe.9./4*5U/,EEB.OnY{ƈٚL}#`/qM+5QwE{Sw,"sj}%󢪋I( `\M 4ey52y5/%_mL'PhT3b78Db L/F=b62`:FO.o'fD) lB{̋E%%ǢPo{([7J4]ʧODcaӷh; koDáCn!tܦ[˵ح43UX[qrZ\t7xpɟ^ lY貯U\Ve6mXWl% Qd i5giz@c*/`4Gϲ ScHBk:&9Ezk x ˿uWWS-} P3cxg+_ky"pm<1m),s_+q[~=6@yNj /MkCqDm[/1aUP..k𷡬`~IvDw޴x2*0t$~-]Ub4QfE:q^W>AR2e #Sf?+wnȡ*14; t ο!B`ytIP2sK2,7^+q?Trɞ CL?zB*2&whCN麧Ӡ`JC!TYH66#h(=iFc<Ҹ!qw:VlOV #55Ɨ>2iynYQj HhAlc1|&مB߃xL>\T0K`'ɮCnʏ Tqx*w73# Bd1i=I̩qxFzmf\Xg$ܫ7?͊/ =ge^ǝ-1zx3c_r཰L ?<Dz݂s{0IlgYw ?A͌Uvi!-aJ ]TJrĶI7 ߘ,̱rd )ԅ 2콼R aoЍCRr4_YŹlhq} ^̶<4"V]}!'"p™%ZyڡQ(;+[eɒ1"*jZya}"WWma&TO3Amz6~s 3cUg&{uH &ep_-- ķZ/B=֘Uu&52]VN$nF+:~qgY|[;.A]2<6"aK}EV.t C>g~ Z,@wiɱmrWRjT1ĺX!0͙EHtjd5o{V%@njQE6dGAk 3qfv'n:a~ *2dVq :o^2Dm[ ûFreG3;t2[_/60^bcUDɜWv*.]tts)k?f G$Vʙ5}{]bqtWDz3N$}/9b=$t\G.`?m}PV\CP#g>AovIYVwᓏ& JHxF1_uSYawxLٶ,v;5}2az J)O3q+Y&%ĞQ_?H7gUؿy^;s8g.mÃ5?ۙHC&wH!zJqNoEtpS ,W?IzZn7;u-]H,TLAS." z1pǔyPcCczʫOmpRdbx@% K?&1]ROgGCc)ʹ~: Cg9GCb;:C诀DSghq"f]ՇZ'SA ˽.KCU 5GOn'f¿#NmH&'…4?ɖϽSxߨv֧@+dϷ杺K<ά! #MP8p*Nw?ĵN;:O"l]sRi$y꠼2l].mrX*ˉ21Vky$ FwL" ,Вp*1VHj8mFVh/:!f+j_~Ņinsӽ0y$Uy=Bǿ R*QEu&Y墳Z.ȃJW 0,g&v<QhLHznGdtVP#+tMB5邋a"r/hȋF4żV'tJfTIGcWX9zD27,qΫc$,6qWݜYw;soF% JuEO+^ao9h2WbC~ !xE6q̔꿷وdLCryO>n. V镺9~|pG..v ޽(o%)"bQ=ǩ0e;WXiPU'^zhϮ<9$:],ˀo {ki2)' vч!Fk#BLA1i[yj~禧%qtc,DN?_Gze cXɰsĺ6K]}Q́ve^Xu@v6Ԕ"u-V] @0=R 5P6gnҟ򒠧1nDC/.`DyzɗN6*\ ^/0R܋L䎜:Uqt2ޤy0}q^ (Cé@ͫ6Cn?6[@2?h -=Wi *Iє]t}2YVD{\Ybb pH.T9]#~R 翞*y>:er)[dP&ڍj\lߖ|v >~Yy8$+ d-U^-.,+zft#;o3`c'i/$H͝#gYx1Ax6Ln aO@"6q'غ eή/h3{J$GA_Ϝ NP(+Y :ԉhorgOBdE[tYx(xZT_ꠉG2]@V9+D׼_>/ƌx'j_J@U_@nF.@ٗyXe6Ӗj|V;10ߛORLKQ4E,p5nՍ/E63N=؀ec9|;4c >:5Bm;kU׏؋i<-6o0+: Hi7/cRW3mЎ@؄uH q| މa )[+f]Ύu} gƫ[jI'6]0L(*T@}|.m:ԼpR ⣺SI kBTڃ"q+p%9I [LGRDLG RTtK8\2P<(n ٨SFw*V8N:+eYK~sD`(3#QGH9?`*[2_yXpC=\EI>]WXh댟=fnﶴWνྷ'I:P3;^2HGBUsjI'9TvɌ'Ե[~Nv@wBjVϩR4G`agK>XV|o8B @lGőEEDz 8 f[Ц?t(ic.ysT$'B5 ? aUό𗛒[<h]jAR:Hᕝ4ra>2}00 S5%)iS*a. 2uN6\_e TX%0{\:M@7_gV>2h)rjh+\bVKH̒S ӥcDup%OT'3dXS88䶴/|L >G0m;rPv[uE1FQFvO\022\kN*L21ciO_솚<^C|I~g'l1 N{X!%bNsl8sDB@]ů}9$=ҚKgئ_77p+ !e+n~`4BOӫ*N`,|8.G \Fէ5e) bϠ#DlM: Cu!Wf(/O^jV/ JTx 4g4wi"xg ]TAT=6Y|K6) GYCn8nW׈xeIK.64PAa@8#5xChP 8NE~#*ZxA*GXTiVGH0!6֍nHmQ۟郚C1c#4PIE!'NlW:. ?70pFBotft qg4@+"qjOTӰb8Q4YP ?y2AQTڌ֯6*\OVEI9X[o ZNӗ,MAj^.F32tI}ZڗooN9DIPE'sǸzqSH?ԌIf:Os [uk[3%fG7u#j3]Ķz'Dov=|F"42) ݀<7q`Su(g=\5{DBCL0K0D TnAYEXB~i ,FpBǽ+)D ԋ|KvOc,|@KCpH1% Ef`9%VEO Tx)@*>)HbeeAs\֍T4 ^.1֢qwJfN|_׍RfԜ8-fX?hLp^yc+KAD$MӨtÇ)tsϱ/wKT,8?J*;'FH?OoY]Ďf[c|nFIQ"S$JZJZPkHO 6uf"z<òc N ݉>  F_ :k\va:7yCfiWY:Op (.-'Cϧ9MOlT4xכAC*6@v2 '`K<ًe!\Sҿ˺DoߙJ]{Ft6 i5-G-WI%qkf'Z'DK^%l5uO/5l9xvzYF+Bb R]_XYt- >p:m5:嚽[Me5|+q\km% l̖P NQc/Z_vdI(ۿ ho<1ܨ > ޔy}o\N.CF|_l,/ Ǟ+ݣU{I`'u''s^5g3ob%0縏oƝW7Pe6Bk]dETFm+*DՍYcM "CP# jZdT|7iti山VBskE1Ѐ$^GpEiaZ<8 b4_b!X凖 |!a+1 j/q$'@3cnD xңqcAs5;rW\FR1ULvYcw8kGL+͌'NC)qL5Ajމ[Uf9@7 njE(`ܧ؍ s{ xME0WPkAImX/1W5伎VVXU H;va̴##P^K?2 0*dc~tt~8U00-)"哪Cj _[\hAod<ib\h}N@)뙨U乞qޙ/4Ro5@>[QBj`ôKZ#bDiogp6B;َC  ۖ2FүGËmFlRi΢ɮrF"^ܴx}򗕩sua.јAgưC݃FCFlJ|*M߅&XbF% hf6Έ.$ټC8lTw~:"D-5 DtWInkDmuP lk_M ϾxOZE('7xMQM1٘"k#/{ 3Q/D(r# /)P6nvl*p8ytlj/@c6c EZA qMq9o޺L33;2JC_MCR1A:1݄UԴ#`LN*iܘ̴Xu~U[hrѽo˫ y9d՝i0vc}j;BoC#Oxڸҍ>QH8;[dOX1=жkl`"][y}~.1i$tl\_h.E'jB2Iǯ<&ub0юdLr Oش;`eQ>uz38v>lJ\4)>fVo*\fb5DMI W@ 1XIIzoiH? w,)WHy@AasR eAoAffeU1'PaBQH$./h?'VÆb[$'!pg<ao]c%69 "Q_>:LTsY]zEx8لr]Pi RmoZ;ͺAReEeRkY|KO OREٔ42|ECneF#%.H/v\ 0@1b8.KTRXiIgiĔA.ӷ+nO52 DH^erpZA@t] "h`9fT_bV^*|Bp401jǝK`s 2ĸFDxpg瞞dhEX*P\I\0lT"yMTk?Su͵@:?A*2,ش{p1_nbT?&yņ$`Lv8Uc #V?cwj'xphוּ/|=\TW3w=Cb˸$n:xI {;y 9uSG ~RQ?tJL HY/ 9#Aw hS3z Q7NK tX uè0_pzE <j2-sdh,]TCb~OHza`6Y!T0d-۪^T;˯hkQkð 9lcְ$z8wb!(r=X2tK)ڬBjO*fuκv6tmna(/yG#sHijӒ U󠒫h[+垡Y'` MwZiY$.!D-q#r齫=-y` T/tKE9{#$Sc-| 6%MkQޏ WJ˪EAY s裖@Fiz/6{N@Ҽ tya}=]!># KA:(~Ĝ.</73C*7WhMrL4QĒs2cP~J)^VP^Iau8|u&uߋpq@8y%{&`0haK~EAupR\"*!FCPpNxb=KUPSxLZM,t3 y!XvA}.Ctp;z8f$ǔoJ{ɏT[#P6}0+zx6'TusquQ ^(?8-^oujDU=+[*SĤ]vdxjb[xƯ"8Q;BEO1)趗Nr a5_:?hO9ghѴ=q5ӿ6}e`8G +oQq:/-JoN7H:>xaU1.y&ʖcf|)ΫgK? qL E \fKe_۲\[BefCL8l} hW7<=Hʤ Bmˀ1\1HLMJAnצe}3p GtxɌ0 K*^CtnwwAm<ޜ#C\:dSj+:2(Ya,.CMf ZQ3Y%SM$i(rW2C-l@]f˴|#xMk^B34er4؋@FWo O € $O`$M}VfNA@J,_jHb;F_rQV%t+pBQ+S%&|j\ 簪- 5I!:aav賕BSK }!MjsqMhLP$v}61ߢ B /97q wW\A޿(e~uP.L̕sZTAa'Uyn/K[C} j");m p¬f1hSpCX9&iW1s.ge&mWŗ%U$Ϊʽn&)7GM6POJ`M**>Nwx}=^ c*3V"}s2s䂏7}`*Q6zIH`4/~]Ҍ "Ŕ˂ipR$ꭝux`31~=a3Ъ9pd kHəsJp镑{,a='KCus{vV .5wҿ4=Rʬg}q5Ksk_g)^Ps'H7p $>Ѐj0R?AB> qlx?"ԓ.ZcFNd䊽7%_R(  Y2RJR*uK25-2\:-mXOY: ֨|A *"͉qkeDv}~1Ę{E?);?E?CcH"lw3hx3ԮE46nIm_xbxM:uY9FXڤَpuifeY)i(؏;ɿ ]i̿nU'27[81m,?%8= (饵 ׆'$Maڄ?9HDYp\SaEyh O/hз;O`kƬHZ}-F>8pHdn&fcR t+́\"`- w=T/;>J` 4T^AO~m/"QIyd"^DqJV%=\p0q]ek]S5§3{," ;шV1 u%VZ0W,!ϝԨ納k7{5GċŦrE * eo F@ʂ˓:i-c.j<[x/Ļ04[Tˁi-e  nWRKq#oٞl}jƝ(8M!x^o+gZG]OƐ GmzxMU^|~/TAԴ^C ๤omsdt;1j:Wv V]??b*C7(-79a0;t ӡ0'0urbRy]-k=IPAX13s@![H.>myzJv1kFg՗6^KhR!;a)!~*I.&#se:dN%5٢^l#mr(t\x\m|8=,Lry"DA@f]*ߕ 53Neokm:A1{C;m~ l ILU%&?QXQGO[fFk9@I]_ptoB^PyJ;ED9dԪ.rmMrI]iT{=;|k ~_8NZ GB`0o"K1fCKȩ-19LR.U˚〳cTiSbe >'h/c %WnR?ΌF51;wi͕ؼt/0Nݸ`"ŋ;9wȬׁDmO^m'xkd=K)h}D24fM+KXxڦ+[!sv8+x;ly6֭ߕ6݆ Oug.)m7= QߋRa,4 !S{vCtz菸)R'hnrZznv#@RxTþEﯶ Q m[]o V'M<|GW93=Ҍk6#7cRZXdIFN[LMi_9Y0$6ݯd5/*4ݵG ȍ=:z}:|i]2倢Srt_6Rx [)ӓBA# _{GSfp沗\jp̍'3nn&\[t7#Z'[[4sygUvSA1H;.k˦ 0ZVu:%n}Řs&Yѝ\W-*ވtvP '|f37a!&Kd{6/^5&42pUyIafuiPqG c̉]f:m!6C5&S[`@C| ju17YZDJyGAYdme9y3R%ئ0@yZWTFyLLWܿB8/փC'19IT+- P> 8sireRt )x ʃ|K HTc+NgI ˟]GD̞.^GKyV(qZ׏!tq*&]f.9p"<v f\lY:H'gg:Up1tc;gGH{6ej7sPz1f$H)d}D4$do|-a4}rU\L^rYA4hYIRg>855|qC+:%ٿl:o~̧3aZ'N?wXPT/2&9#d֤=pAYq%;)ָ^p|o  {o -ݾe2BZdn2Vўr<:msa?.t]ИqscB(ڣ_X.dPM~ÚS{E zLtt3r{!ˎ+N݆2%[1c|BRfV(o퉦w_h*7 '9jpĎA.n3j H7ݷdVn9l~gr~WXcϹ%JtfF\^ZPFw^,|K ]A &eW OvcW[p@ $qSC(Q8S;Z[IgRܜ|8]Ȥ_.D|Q-t1- 5īqH}E-:nDO h%(Dmb*kI ECo<{coI}׌"d̹t'$Va1R[ ]=}.B [iw+ }!4 B.Ջ2_6J ^_!խ/Zm1^! EH8[L[/ Jx|Kvl{W*e,mlEXQLnVO ʡ%״}[?/: R (*y?LzIPoJ(LnkDqtޜ+:t H q[Jk*2$* 8s 4OO&.38KNPHfi:4cypxGHLwXHHadDX]#d1Fqod|,xIA i)E`;>爗0uX由wYj6vS̃\} %|LZ-%tJ׌’p!kWI'I_2DiO7t[tz)LU=!6#h~@N]74~VN|uGJ3rnM qrɄq @V2 bB=%q}S!Kw|5!xV)ѱp$I:G_Y)!+5{VJ`dt6) >JC[ 90 Wl63(V '|Ǝ}2vTIl{+,%/7PK:HiSCs I&_DzIB-VʊC-)Ms_js[{ D$hXE1heTExo9KGJ wg^XZ/6f )IY$n}@{+)~`&kYE;I\n7c0AK͸Z$i:1?m݇r{[8ey=٣vLPa7 k n8J`Cn}($ lޯ0`7z=@߽v;VLgI@C8K="K40r۰ժ =X2ؘ  X`?K׎IvI!jx#`@qlrX5"J+o3zEL/꟣t?*Ϡ6TxhmDF}'I omqzrnLvsY 0>D0!dsplt”IAqZZD\)cCpIHoZ<_n8{ 1_CNz֡Tn Uٱe®9̐b⢾ϱ? TGd>c7Ά7S;8+|tB'9_lh\-^cx_%5ЫC#!!$`.`KGp~L׌i; Drk_& IO (__c!>vorqMZ"'@n+v͘RA.Hg*1?'E w&\0e IvpLB0j\ܼrC99c팱 )u~$ߢ)5 E ? "\2#f`_qB'i&p%Bœ!G/> g0wAq_JF7GK{RC;h?S2_(T[͠~Mp1V 0 y^eӾeJ*}=S?'Q]RPf!+?Fo-ec~ !iC/1Dqמ.k F>}y Zs ҦKpLc&1RßM_Pu["nq4rlwx0v/@lqWؙM Y1 }ԑ#]?˺g:AiLۅs@DP ];-ػ6@q9:i ch5y޽/zFK/5yd AS ʧd? AQW 6҃x|eq(so~Whۅ>)8>_ nߍjWgžs}y g2"BR|6h$? Fy5'uHw/;oS(.Ëkڷk]:vhBM1LJUMzbBXw,UMtD#Ef֌A%P3UѪq2 = >K) =  Z@UGǩoIIƑ]Ƃѣx ]l@v/ 8s5t 0 1Z^R}^ ^jAfj JNz""By,նJ4ņecLwQղփg k\VtF$ضzxq5 '\\#EkdnOBĆ6q/)Ȏ _{p4庪C]^V>Qˬt_@ȩz`tWXbTJЭuΉP,mM-)'ROV=Q,ᘾ:&TTSFN&ӧ\^jim[Ƴ]uTt& #S 5zXEM/;ݢgY;07i?3F|Ik@ecB=Pim+R&P=74G7&AMb"lhYRU8e .\\Z(_{!*siZE'.#^7>xӵD} ]B9M*" EL$h mH-Ce hyz ?#͠!7*y$)ŋ>+H Ms d/sa/5e 9T<@P=kZ}/0ޗ_h籼~^SfnNG<6*ŐUA L礌 _.g,FiBa! 8t#C=jnI0DžkzG\L=gjI ᪆Is!:w0ZB¬EJ|/\ _sWHU`r F=8y~ɟHm񷽝&} gM#W̏( vy0B !rc ?bP,=~qR_:XAYijD wP?wP|t쁸:`'@J|x`CB~ 'QFlj$`ڗQeyP\TQoxܝ$8Ժ=m@k ,^8(jX8'=r!9Q)4dvYmQW? xw~5` >aH.RDsYpިNyadJO7PqnkZ^㉨V1MT(\t;q &S=&kTz~~Kku x:V/9^མ<=ǘ\M똼M=戠:犁KbVrmK_'LmTivZz[opS"3қfD~ݑZ|c4ߗLH?ouKN!) l{"Mky ![7ꕛA=%ӄ/%rYrLS1ǯm}E^Q'=RjZMmVݚSs2+e4 S2>3s)¸{k#)FIaZ+1`,=hz2f] |@UrN~VTR8WTo)Nn=Hh?q% io*#SKS=m^cS"\0!D +2eFl:dƘ`nǸ (Ro.;r@%n5rFd'F,P]?ۀv-nSBZ/UA&#o&`8ii#tS2U DU-{n]1JqG 6* .k44G;D=Te_PQCP!GtWue[k{f-P qp$s$$`*#zӗDH]{{pV5җ? e{y cCiEk 6`)x21`_"{^/e|B|:"phEɘNpT8OٹqGp"El=2rln8* A$W~WBtFmu_ O P\ n !vP{rEtC nFQ1I-]┾fj!#'`ە:x ~wآ11'_'mD"nS^ PGm(c%D as)MhcbS ʬLcͱATyol%#=hǁC Lcf(Mv z&0ϖ-24$y.`WT\uiNws|UNZ a<(p]Uy#l`4\*99ƢP1إ;G0&O^1yd1^xf9v`ԻTN Z)ԁ8ֈ1x 9$$@|#a_Cpg*nX"=:gჀ: xjjnSzASG/[y|أ˕[{aH\e{KUɺ9Vwl|Wed"q*16Z?n$mHad,A$y ܰ74_Zo*m xےƽn 9&GrͯEj}DAbwyOXƜ~s#KXKzJTɖvJ^W<_4WcZ;8D!57|*zC?[*lKޢ=V(|ѥ-mȲ\XB^|sR6uYj”1L/HV{43mw*'=%0-o?/+L]pl)b )K >vKZJU 2קt7_?henj{ {ۤfc&+v*+nȑ;BH+Sd3]&%bqш{9^xLj )d{ \E/cGjz n_0/ĩN\<XȤ%Ո>ş|!F?t:o}8#~l>"Wu ]зZZVj:.llwO]5}V 檯"]*mX { 0Hvܨ ~xTG)ץW` (CQ鳗ֺV]ƚՔr狃;"~xS_LR>-Nv&g?+L!nA^=n[}qFjce0<`lRe@jpЄx洆٨vɕ!tW\t@"]z&1s$yaO페U1h}O__V*67@ WW iЉyi'U $޻V>x},7 B,iO`=IGG,E܄ aO)To"5RyjhSw@|M`4/t|V'j@2^¹:~HڦbŦr8FڗOmM!3?\^ur'<9+ٍ.VW%>4 %]AB9sh<ګc~XL`ҫ.oyL]=+Є] @u~]*C ${〟,VWVU3]OPZFvs5g}ȘN'{` G|'vV2Dl* (*m!KU.EjH=;Veٵte˂H,pf_z:~3`R !IVMܑIJ N&lР?!.d}uW[+#ʩ%c=4UJwgqWǮƇhŷ,uj K:>!М1ߠ¢^M3p2#Tޱ%0V %'4fB#3Jvfm㾯Œũw=YZ`q bwHY_7΍u ͉4TIcZE'h1GC[ǰ|®_:,'^r{1*,.rus inܦưt :I(vœfj-uRxol Pm1y0D<[ٶz,RxR1:t2.}/%^A<(yР\ h8k$:=ZoSlxC Bh);G:i&q 翚s1v'z.t~r!& u妑G҉)hA\<(LG`\Qߨ:\5Km?:6M% d Ԫ&uQE~a̸(XUIĆ53VK>AU5XN]@lj P87cwRhzD$v+A] DT%.Lj Hy䱰 X9Ɋ%72dly\=af `L>^ZKkB@XץP'0ْEZaBFJdi%n@)uAV pJo&ސ;kv]n[hݿe# cƹ"s,۲fXpƐ$.i,5u{iqDbPS@~75#4 8v*OyuK~mUtD칪KX`SIUe 61ɣboA^^n P{]/ VM(傄ךstxK|8BxsM> CHcc  6UM8xk3dU|ЕNsJPgz$̺8a&Buvq g||PA"LZ6(]?Fp3|Ws zx4? xρQŻOVB}%:KPJ_@;MG{263 v'tv{,ZN-هJ\ a*H2hǑ#&@h;8_(cU(AzǝHB=ԭ?qL"+{>6Xڿ(lB3Rߤ/z)=2rb5k*>۬1sXnW.b36;cdO؅ΐfpAU؎$ϽHPNv"yPj33WÆ;G[WeOف]隫**!լzTzB zoqBMl8ZP+c XPɶw&vǦnyo&rUD@,^],KN*:oL>< v[kކױ-^JK6Q3[2Cn{#xCCNΕ`qnŕQPe|H6S7IsUEUCR6xY*C0ъ(?=Z>Z饷 M&u brTfl)%g3FCQpb_* &"ab[ED3_cxo3e.XYpB;[8ݪ`zFZ%6R% 4;6Z6Y)Fd9{FZH0e**QTӢ]곘Km%QPH/Gxd/ٞt/B/tg_hjI)@ 叺Ô~{R@|z)BHrMNB ~׫ɲ'fxaWlBd $6TKkjXKH?Qc.tf, nŃDZ1O EKمZ_ k"FPn2<,vh uaoM _3u#8 *o{S)#2( ]_q2Weom-m)'5 gobUUj}vGᐚSBֱD/\[R?D  ^An6ffk w 9 }ke,O譨8rV?A,QlWQsJ䦞+_̼"]W aU7 f<29 W_?Ղی"f{м#ī|>hpfS 4_GG|zqK6@9# ]'WN;ir c[+QV 5*7tm|e"؃ INcA4*Vnwr*;mrC <';M͙?Rjg#}H$`ur Dk$erNoM -z )ICRޙ]]2XXp1 w~i~-nBW~p%̓282/wtǰvwn^uRV‚[rNחB}[<.x 5\_a%|*,7CeRV?8ijuL1VK]9x)RF-#;>yĝߴp" ̘~hacXؑvPX`xt2}m<*1bޞ5l#n\yq&5ƷOa#s=0_R!"]p ߘ颯WtDbofm&B nCU31eZTAZRa'o:1|uwm zFP({G?BG&Ⴘm@_%3RjJiʎoeF/F봜+$ W#/ɅI—05jr(5ntP ͽ 7QR4(0FT@t@`Ƒay&tםX,P .`tG'RzazC>5d ʎe L]RIhA#4׀CDtP@wV=eJPەJRf}sG7~Q5H{>̷Lj,OOL*$%Aڵ%k%]^UGڛ ~,2h vڄ%ZRu[b"$5p 6KPF,6Ǟ *: @WB~R/2VWQm{Q<춗TXz&"⣊ QF +,OHJI QgK #Ŏ_&FVJ/~ ;ХY>Gy@璤 \XCoEnjz3x|.c҄H3 ܆O]|3{h8 MDQه 4 }]nz%$6h'8EZw,3񰪐 輆ziSFoUW0k%00  4'rVUH*ҦTVL|r<7ĵ^4He%}bʢ͒:),Mcs@>~+jJ.UϝMl\v~[?Q;2"dB$s qN=+6&/a1 ^<{#HmJ8A)3[GT9)̙HW+RTwvpɚ̤ 5en%&3UFF(PѴ_X0q'AH:%} S~!ڛib9P :<6/Bu"e4+ T&#U.A ͚jAP`'۪vO޺7{DYXL LOkXnEAڧyɰ8}"|ulChJ_0Zu1¸4!El3 H1hO`Pjy;և<'G-E;[T@#{İ}R1_?ZZYi 4җYjp C_B$o*DAڡ02Zae5ɨKд2~%a,RK+hhS Q|zk3aI ,e8ɞ/,=QN@`7*k]θeq(dt:'ɼL_ƥud.Xks$CA~)TFyQ~a|D:"oKQf^#˼韷&@*bv-7'tSot"mhNc@!pB}Bq@<?,Gqg)mZg5 DĥĪcG|+i;{5?K$0x͋E-exN㥢o𜌞Q҆R蟛{[9ш/tDX:"f/)#OL+58~9P)#;Ú5C.r]3.[ҫ0I<t kَGah)6*b=)YyU覙Qe OriF0}gv)"q.u.%kM_mTo 7 FcC1)2T;TQ# _X`+=C29NTJdpg"Tǎ޲HxU gΝsAz5y~:R>S+if+!znF#-"#~* ٠:@Y 9Ƽz5d5#,y= 4 -^scfq6(T;qṉ3p7!눁/g#)1vL>Lut4OGKc+E" u b܇[(o^JR:xSKFlgFPԥt(u\v6sܧ7 sQ6!%K!\z-lG&Sϗ͋_$6ɂ=0:;O A4B\+\%<kҊ}x :p܇Lbmv#$ÞvZ "6lFűb?8׶iaV^w&Z q&ƌooЧHz :ǺC}A`)Ӧ s+Ǡ?ppz) 䜨K1ȇ#NS?[ua<2Ѧô׽aTuB2} $@,}CBDb5߼ҶS*I}\a^$g5.YHD(57 f\%.X&KP=a4h(kf3wL׽rm xCdPJUVOPzn2Zqbk0j~G|g|)gGTuCÐQ]Rqt\wHֆAĘ}" (UD#0_oC@! 82AlkM|aA3xUs󪊯nc|iDk۵Vܕ}[кUV$k1qɟ:Is25 eu(Zb1^Q\&rI7mc 3[-E4u!,~hlKH Œ >!l4,y<7o0P@>+_pbŨHֽ89 ԽP-Zφ?+ܙJB]m"܁ōs K#'湒F-Xpա]'6wD@+2lïE[|r봾4ΓL]K]+[m0G tl8/LEg:%Of8:3wrA#mJcAsoosOw f-ƻ|5(LÐGR9fFkD8A[-K|M_? Y!)uM]NyA:ānc߳ dtOnG9>Ǒv.J`Z~51aicmB7n{5i Má )>ۜɾp|]RVu#r"'{Nšjw"~-rZF`)F]ߨe~k@W#3@i\vtd_+1v\/ EjEq,o4ǫj53?KhVXm-Yc575`&r+9 uHd$S^ٞ 򧆆4,yU8c`0~e6zmߓ@#x (As`/!2MmP+F$^G$"#O(@VQ[cj2EEddDQPgǎVraC~IDp_w |}((-P#R<9={-nFE}[4@keBlOLmi9Qyg_+G>6;·m,Ȳ#{*F+$ΝĮtن_+6.uurUm-)ODڏ/)oefG8(Eo™^ xU5 J7<4LtCTN5vpPf.-.Qh,+T"6F/Q鿔ڶ傋 σタƨĺ(IflblIu~R%{IMAByŐ|Ԫ'SO2nn- Iz;kCʊ]lN}ȫD0u@p!ҕrM`2XB8S*}!oqIoc!.*Я4&Mc kv0Iy+هz_?ͻh mQ0K'V E+7?;jEF NwOB&K/Bר"xp=1m7.㱧7F/|a| Tx.C  `9f>A<1G_9Lmnh0察|/PXA̟#g39$j)@/rt3΢V ʵsmBxL1"CJ ?ڟ룞WO|޶nE2~ 8)ڹ,kd"k8?Mn͜A/R Nr{p܃ʒYЫX8k ϺUѠgfip-18-[~+N)ygL6#B_*lPWyne q 4lau'(vHx?-7I@uzqfFUY"Q{s Ba\g1SF 49n.+UȂĄZTW &γhoF~N;hbq~JM_m0g ÅVˬ߱Сp"'4&+^]Id+2-|5U1|E.pJ7G\er$A2gKN/6 h6A>4@m:=bal\5+VtJA0۳}Hw2 mt1tDEl'3vLmt@.,{_&`~tgˮ-W=RՇd7yf/T666)drNC ң6U7i>6w(Zcl}Hz_!(ϔ>x-Fzm!v%oޤ2*\Q˿h`O.0/eY{qN= 4Z"bݏX)fM( V}QOIy6?(gZb,7@лCG$GpO*I[+%`=_i.RcwIxXM|MsGKӯeJ7pϬӢbv)Cw8P޳uўfA 8I+tY?qND zZc'  /B]yTJ.< q:#7h~Pe.M5C7?=qekq&fkOR|l!}1?;{ZT.IxJR+^^4 ~k-<(2_Tţa`ŏ1*ig6k+4 }`]0Qe}R!^*gKI }٢ ڀ]0Ż14<SK5hwg$>4bGپOF@咢w+\- r) y/6qOY٥9+SĽ5:ReGS,4 w&G7t]_(0w?u,@  +).2p>fw7i U!@_}]ưCHu<@E|Dͺmrj&XTFrtݔ6rjXݽ'Jٯ^#9rx ɷ5,MBZz, kZP-aYYd%Ib)M/QgXd 7`e$M*SFoW>MX.xZr܋S*ڿXyz1%g-2E ? W:,YǛEP;צJ7 ' S#7M+,RC ]~)9()K.SHOk\3)*3s3"R cq]P8xD2x󰔘+P~@95S-Kx ؽB 62U(v 9*Rp I{F`= Z!cofNMk^P-{)4b)3 BJS{Q[)+#t {,3\CW== {O@ [ѻ;0ܗSa8e!Vb}mMg7Ȟ:g࿣w1X>"sEXh_һ6XЉTecy!૫W+!W R4ɦ[EC5 w;72멥da?ORl+5+EjhDC~1Zq+xRJ/IX33^r$O?U/d nc ͥ}CYsKZb,煙l5OdGVBε}i L d?צ"ѐJ}nX*p:YFƛdXP=x'qOVo32C:͛k2}[f} nkp5M g)ۅr*2g|pj)@>X<:Ϭ}!K2 %"uz<:-8pٱ?Z"̻0TJ@]տSwBln3{zݟt@.tʁӂR2}nQ ̋Ӌ6T@ -tN!]ꁞ &ǒ΂!n>k &Uܾ뇁4ꉝGQ,kt˂D><)Ki+OƖŦnQ37}iab⤤Ԋ˔O=FcCN W=9؃~*^A, v2gcmUAKΆX a߷!S]?y{Q7Rq6>77iDsp@s\)e3U+>k-}+&zOMTu33#lQƋ,o,`X_`.Av#}YRGss!i=~W{zdM]l>lIPfcw~e Zy:unO_Dyߏ@^&-43X7?{$m),mfjؽ9(FҤjv6Dk#]M)OXONWbg#X&k,nvU"h#cUk=7K !?af8Y!\zфN(h-TKӯI?xƐ/ 0(TιW!&.й)2+&ŀ4eg:|pz!|:=a| JQz/sm%IQCq>+ʐS*>nYw$̅|z,&A> wU\ >zWq ^ 3u \FƊtC-CW"Kڬ{l4UjRdf`b]7qܝog2(yt(qw?d:OXՄV^x8ajBPȩ{õͰQtgK!R/0AԨ=6D]p ՝N +^x9'O(_8SKpܩfy7LZJZCk6Ӕ98)/g5r90^WzՎYmm,}Zvh?ߥcuXx'S{NT[N53]Ά:ƛchIkb$m43-{й>5`gcs{3l^ 1@dK-k1$[@= 䌾d1/*-džbI|zրhrֳ-)!B:tD1'q9FX)=P|,EhݗTKm6>»BYٚ⡔Q Jv˖q5mMc ^oaY*6zjGdv]O)ܵ?JRG!|IɢFk(~u;gTVۢ1MyAi g+t6#wo<ɺA|leJZۚqK-Ș0<+ÅN/.SX&\4L+m`Ѧe^Bf* 2{ c.xH&ݻv~ G/E%ψ16Q` zcV9  J;;[WXzB2f( Z!?Ua8l; qyf|!5Uhr$-7˅Y/ʶa,Ғf\v;_HR1}w_8^gp}pev#ߟWH)y_[i;>hd08V!:ܕ;W1!4w8n.U *)ճp 3\/ '6$Q \^#̀)ye8|~Rk闩gij8 ,9AԱ׌gWqjwY;N9ċT牽b ȋ5Z0'NYc&9;7(A;! t{| *GGVF,X_&i;K^L*hq$rn3{j69>JIMg LgPGN /O^ 1 ^׃̭AEl׼jm "o~ЋK-` UbcSOKZx5q7ɿ8p ]eeS^֔Q#23~`Zβ[ٍfcծuv*2kxQɆbĜ&/XgGn>hHZ@wn+d"+\{م!yL_=qU$ĸ*s@?eBu=l$f&[|hܮ/%W5eH:AӐTť>3+1*. )%FmZAoÝ^upk(;8mE{z,rM\դO5ܘ;è;by^h0Zdu9hZOݵ߶,au -?qu:BH+Ϸ}U C>]rRGE8noŀ׬mT;OzC* mH9wF4{'50z^ԩudZlh TGV)n obNNJ2ɔ/,H8zP(I;f?lm-Fjìfi p{îb']eEc1(xqJpe>-N؄h|vhW&ʌU3-=yS.V jsvV徎-kuj=Fy1MN̿l%R4Im͠&M7SQ?+==!:c:v+<9(sL9JKr62{0E[]89?ZW6:h^ =fT/MBNVՔWjH}jTijd7E`;8ܻM{%2 z ) &qm'n>b94EhWqo@OHu`UC3y,gyq:6SǹrΚ#~ 2 sH nG[]&1XpXfFQ@21Ke@+Z6C !EwC*^u:|ۧ v$*kTV*X*{rLb~rP g4@dwOV8v7=c?[TnOqxг{[g[;F*'$-ʆN 380$g62b -\%4q0Ps&"i{Oe(j qٙcI <ˉIPYofwzxy~#C]fAQN,#KqΈc?&&~aY x܊Ve+'÷j2qE8)*5cRgͶ"* QЮ !|5rZ\"։Q0ȑ'T*u>Y֍6|LdGpMȫ+x/+TJC^R/y7&ZqKaoXЁ ." $))=V)舘4`*Q8V [mׯ]O @ |6[ ^H.טel"ua-jXzi$m~%cRX,=ar?=dh 6n[^A~&A] }mS"<:W_tA (wEQWY`Gݖ%k^7ʔԞHW J ֥2Ǭ >8yKq WD;yHBYYg._մ6W\0T" rwtY2dѪ@*Ud=ϟ?ܪl;0smknz/NِI>ԎJFW# xISaemc%?Z"%k7/bK+"b=xKW#-Jߒf8v=889aB .E#cP)BFe]*D>Z,ZZ 6~EG{6J;/t ZUnZ\קƠihA@U:мM&Ө%Ip=9&ùJ(6P*?gkPUT M1!36k?wA97%N@=bFvɆR-`zKҫ {?Sv+W:*ZPxx@oJw!es0J:M5?w0"g}s&k:TȔ@IYb<1Ha|j5rhēx,.Bxfund0-EPF\Km-5w+]S/#Ȼ\l>(ͩ%׉`p3mÐg$Tj1?wIXݖx /{4nٔmxRuX2Y ()(fv /4%GH=DLن0Y<7nѡj!v˓F|. 1E*?DFW=_] F1P`a]OuN V+(nt . v•!MrK2?vhk44vxƿ4߬f :WBw+s䜬19^XT~ꏮBC 6!P ȧb!*Lɉrr-Oivv̢T|oho֘8 vXN,8ywC$P xssAHzw-NWuGb<-5Q? r$.EZ#^PEEufN'4-\$ ODm 7o$׹OI`8,]_ >"m {Oe~s'XX1cVjrK1VJ?+Yi-\}(Ora"q!mՇȣ٤-}S?6(Z&gnu{j_QG Zm?UO&l!UDֻ4|gl7#oQy kbͮ^k,U+iݔn2MPKSH1",$Ro'g a 3D;_K*PRQqsr^caP12bH,>6a|ճy**a+pt'*`ZVh;^WFjV>nu@Mhq~7Ⳝľbx=9snc1U1{@/g`;f=(1V!13M=}1$_[ $Ō'p">udlBJ嵋%"`//baٮMN" XS-MvG1m"a}SfA{o֫ctîV>8I{unӁO'o @(ikƥGW`-~ HakKܧQN} KwggSlz_ {}G(˺1RU"kOpVt enesI^W<:.MZT!s9=2$ Rt0^&J_X KjeR= j[ǂzb-Ŏdǫ/Sm;U>Чfm< V~em3 p8] [V-\[,$1DQ%P[C WE'*ڈ6bo %pxTT>ꛎ?b{Q5=QT4?_aI?&ru"U F|7[O+@maG fo2PG|vIq{]EZs>;L0!R͟B ߭ƻtLS$8 #yOTJwtTG <6^`괩;]A`6Z_$>wâcxZ؟ ݗ`L lԣVS[)أȇn<dU- YLgL![#;~Y.8Z626IhiZ۱f tE}I1Vwaga8;$[ʥ&@Nk58zh_M*ua`˚ӕ'*8ۙXTl틨Еޟ=%! e2سyh.Q@3[oTEG|U)@k;oS^U 1/ av~ʼ9_Z{*p/e`V#ܛhu|Dpgҹ"2JĻxyt֢F~EρecԐ*NS*#04tfpӍjN6W'yX[5Fdl\WWKjJT !V&<7͔%s~9 #|ݺ1&5I>Eu}4\W6bR!Nf6Q)+9T'pîJ x2U(Y{xr  :LK=rSM @zy. $Ub MYS/˅P*)%N]@fZnW=jk뻬챎UoyGogjPh;U}w"F`seI ( &sc9F4v *.{LG0ZA K_,QwS^OͽÎ܉nAJR=mZmE-ooQk3]Ur:MT|Řn$/?l1W?QZ[V, `X7-f|bMd. ~e=PFH*+(~׊+ɇ-#7Z(3/B7RJ_@Tiwt]BMC>3+-cGÌ q2׋ڕ# ゞԝLڐa`#u{? ű1ϷP6̨v}ܠ {1~s3hHfTcK lgT<wPzDm65Fk\ >V <F/[;H$9 GDtz&n~`)ꄌEE a^SyB7lvNtDN=:'gYRwNxbx؋Ӑ|(v6ƃ2X DD\|1T&S+Ht_!,fW[]w%SWЁ )7 .ZSCʆ9#l1\c`l7[ɬ[_B{pE5Ҕ'1H {DTZ@(3fƊ]1Cܺc)Wy~4" 47[liR/l+u׃5o)-DPm}3@UAOr/oR۞(L_ ѮW,#(= !(;͍ 6ELY2=OoLtVHіr~13C\x1 L FQ̏mXؒݟ!ct vfep2 XD>2IpKrFhކq>uTeMSz7şo ߷&퓓 }!Ft,49$idyK= w)a^ _' P8w|& 7Iw ]%"Q) \C:MP!,׌?πUMMpSI S;曚zs̜H֙J̲BTؕrrǣRC7r7)s{Փ0,7qLXXoFY3 ™(ߏ5e4 | TbܗZn* __>57=U@],j h0x6KoFt>Y,9f^JiՐtQTe)f]mS4y0UM7.f%YD#5#/OuVJ!JbOPgRj9+XXː h-]OOqDZRZTW -,KmAx.N S잊qğBa>uURuv4K5v%޵YȤdJHC<%Wq"0^EgĜEY9q31 "n]wa (* >Lfp^n3LRΕx]:RXq Q> $jvrr\ZXlGLlL,؂Y܃{S]\f%'0k0#Ue !?w7ZH]|P$!e$ƢSvHfx]3bLRWYKCme+atq'/͓k OH=(xv ?,UY+% bƇU|(یbi{"ϱn$vY5 jav5Gr{ӵ "A| ¼cuS}Za#b7^=6y@Dnpb!޲|}|RbE82 6i҃hć~C fu,`- Ca1ER "TLQo[l] +輛jdzO/Jb!"3 \hɣ׼N~rBٿ+ayJF[?iԭP-N uG%bH@Us%2?_} #d==!9#}jz eQ2l w,m׸rѤ^1f/"ٽGB?ʹd +q*G̓w#K(Frx"γv'CRc(CRNM(붛m OQOy;+4:W,b1OyJ >dR06$&0DHn?7"RalY!;F,EĥPKFz`O w3c_,}ءOzƍɺi+g޶xB!dqU:Tqi}Nb9JO1qQwu+$-]0mw$u1@+5B&y؋;>!32\J⁻VZ\]#؋#Ukq0-[DqWˀ&2tb>p~՟ mDՋK/R&sW?`䒝(,(NA6@#6͆ӣ 7*2RF:]ɰRbю^p\qNL4 ,`3X/."ᐥڔmљޙ,g44"E!C@Va?veeBTͩpȍUocR1BSyۖQÂ'WXd9f9?-paPeqޭ) zs٨ &l u*U@vMs}FXgDjml_80lF{>f:M zz@&rgon;ۋiҏW,Csy^ (e1y$%Vnj1>I2*,6JЭR=*je  ^{#a@=޸A<~T]DA̎i*pMx 8! D[[@L! oӛ^2Ye865Ev%Pw$ܱ۪ (k64*b`/nʵdG;JjGP{`YRʿƑ^VZ(J/xLgϝk Ġtvq`OrsWэihk9m|})(iҁp}m6وV -/ʎ-#uV͇ N Ѝ"m%iniP5uv/=k&MϣiYS\+AJ-3ZK `rcF/N]i1? /+c6K0կu¥q +eE A%/G!)t)(CUdw!c;-ӄy#A'$ֵӛMch1 F'mzSFݻlR+ք@-ew tVҖ<ހɍDY}vXldž[9^nUCfSeTn8( 3BNqc{_Ő H܊S>V}"LFiG/C4LͰ3.hVrG&^\7C*oU5}zML*h7bu}ynĎO9uhZU@TjVLft:1`o|"Dч~e L#[)#[wj/:@eÞVgqα^C eurut7pU`ǍVT%x0FVa:umA eH9;>|㓰HPHODw2qO CřSlp+"ֈacƄ @ {l{&50<)Wp\Mѓ V"Y,in߁NYxNP1رvVʏfNĿJK@ u}+oXHx 4G9dDChY_`,c{Hiˬv8Ȓ3i v|ǕW }>&TCR*;]ur\d6l8zz}<ЄE: Vw!0Q9wHdWR()JX_CǗN [|=;7}N[Gռ*'󊴼R:Q-ѡgNpHa/q^KUpD!#<lAO8JyÞ鱺 OviD&~E*O:`pl=;QY_Fb(3VPDMVR 4*])BV2tfkOi_t9<ΕOoO~ \`VYZ,av㮅Ic( A:ʹ I8 m\U{ :!P|zVZƶ}W Qeq 9 YNFA@Y'dQS|nfS,C-72"8Kp%M̹USZcTDn5> >[N]t9H 12-Zlԣ+`2u gl ͏xC 'JңNf\$~e|D$-Ϣ}|pAP&PrHD0:kKLBz3x+f=bҒ7~[)c,n4Alc>*oC`/:\QfٔxlKex4 ͢8`ָ<:^֌<,P(ϸ7aB+?g}:T5٬8.j 􈀉bh A~f>};$G5fZa%O58wi:/eo+&D4j -U 5۵QT!"^b3I p4%Kn-VaewЛw1pUB t#Uοԩ:+o$UMn\0͠Q  AS/ qW}tR^OxU|Ue{ ċ)>d NFWoyt)E\9 ʘ_ӓao`uTuW}!}b՗8G{V]a@[*L,Heb)[TCH`JO;׊h) b: |gi;5r6@w49% O ImJJ"EMZYoFct:Inz=#J 5~cc.рK].,$!r $-DԖ5Z3qRi9{ί <|DaS)^LOTAD% FیO<<KXwL:l,a:"e\Bky581?iBٿRcStoG#CxcU4wG줼2tJ2Zs1GOK#~ eDDP Bd_^ƎSP'Wlg,JQA-y`Z:ki/ 1~RS쐡O ;ajq0ƺn5M}WvbKI4:Sʗ1wqa72< C 7i(r-U?)M_p 60-?QuBy0.Rw%4+=L\\1 K|0l1bI{¼i'y$F1desƆHV̸#&(=e@\lY"L:wWL1> (aR%\еJʼn4ڲMCwih/PeE >k?QzDsNԸ?Yf'DϝP5Z:k8/;|]Y4 ]Cr ES9&ԽQy˖kjNOR@'[dAI&kHe{ #odʛ5?y(iŮ'37oQ>Ez6}TӔi4@-a"%]hF :峲LEDd2ZPb@-O,DKUz"\mYJ<1\YN._]pPͩ+u1 uxQz hbR0.Ye 1+y ecT9!Rt57E ^$Gj~ߣlS*9;n; X&w/އFCnE.-=}18%Ԩ]#J*P8|(#U&Eom$nӧ$//3aTyR.,r?:'~9-WtE" ? CN)^,ӦkwD؋%\ $EI~Hca^;o9eOV&:VT1%=O'ѣ zf,s}߿;R'}@1\֫%^X7֯o͸Q p)EHډ0% OĹ`/6qg eujhuf؄2@eu t"g'u2:L"FR @|qsXO0*% =,mհ#3tIu{) Ќ_f(cits~56}D *(G$/9DϧHWKG?NV"с{F'.SeԦV/1_Nb;e(Oz. .N[ۢ)AllOODTGRf/"cZŹooy:]9gcы* D!--< tLHT<`6??\є ~kJSPZ0<)Nc u6k1GW'v3jbM4+c5Fޟ2*VE1,1hKlMJr-_?ym"!5@8PL(aWG >/gxZߚ4[#!(si~9h_GZm;S%W֌ ]/@44]ZSUՠ3>E}V/y 7H,؍ ~y_6#JuU ,lș x-.B.$W$%6avl`}MBCQؐ=Zǖ&9a*)f(F_1,88E *-2^fE|n0&[gZfRL6$]#sj[!-ukAk+utM|"wox43]﨑4Q9>ț";ra3\ܢ^njI1;rq7\E53M)3? ޚCɁhU}*wE7wRmS &,%8ro;:[BeyNz7lNekKOfݳ5jX"y `2{ -?}-NX%WE aҷ09(FV۾7f4~ Hs3͇WK? U>ښ`<8yF,O]$aGT &%ؘfTc=e*uEDH$ 'tR4"͜4|k7+p$O: U[y,*2+'w~+ nN@U@j\U%~3 ĩN[p 5x%{5$[@*A$N749zvwP+AQ|Ԛ`62 b\=?fԵkpR3. ߟ2U!\ ,+^/_4B~G_i%khEѨ5P ;A D\il-O߭@BfuLnd JW$<]dԢ|7,C'ㅟhnP.ԙAS,lSQG55!8/>cm1 2vEN}՜f&1jFx4[}mpyh# ].7H'{"L e8/7\v2N7Yb:7w|JVU Uu-ʱ)đ[k  XaK&lRkQ=[~EIGpk>fA&<促ٵr)r72JҖ%1hs0N= 1ԹB|D/ ]튲ln#8ߊ9?LpԸn!~Ǐ=&P kH2l:>p'&ʫvi0ةbLv=4y.olNͥT9d_XW ``RFH#n3ln(n,:$sF_>-Yޮ@1I%h s0u6s|o|OI1q,Jݤ3])a;,~HҨq+|ƑWCLj7rAZO}렌/,<~)jHYVJ催&T2cLX |WRHa( Ex P=B7a+>濻s;ڮLuz@4ѻ S(=(;R+ҾpcKѤ6haJ&2c],2/0%^ꙟ;. "N3Qny?> sX3yaIHQeK7bZ`7JMϷ>dYoY(6 =6}Y+\@%Na=W-ܗ[Dڒ k2D#wxFr3?DPː)Js.1nǷ U~'g0RW;4[Xp)m ?حW .%fx+"S5¼A e?vozӮ姎ԛl/EDƆ ?,QYP c&uɹ)f&В,9NF 08{Ԍ`=܌Lp^FK!=_y!RK,%>7</(˟) WI-d +L 3ҙr35g':'{/4k7hd^d?7itPMq퓸Z;۪c̖Ģ@;W9r:HG!$S7ar 5Y_q#,0]^8$cA MX}$F&9:A4$8Zh[lA[ ""_Y)U-My&@$@ⅽDŊ 9'g]F;ʚXn֠y1в0 Ԟ|.Nm\$PHUh5pЀ*eO 5hEPI]1x¿}5E0HPY訥̚1P in Gr8"KZUǵdN O^lxdq;W4X^éVȴ9U"f112x/&\eXplC5ٽEd*K=4$|` ]^Vy F&wYՁz{vZJ0}IPğ嚫S*$w]% IɱRjP6[O]cUcܻJ Q,ol8~_fNl ԞG5o!F:-d\3=MIL]o5)i޾0_3콀?Hm|$N(/CW2B]}FAsgN"œ塕"kƋu%.ѲMOJMjN}f#\KOF+/|Cjد oz~ltwݞFBW/*֢2uŤ!` a,,ʟaLqwfdkvec슨Q 4n(Np䍁¢cD!k'wt'|" |9ݏ)/cXJњz'J:ULB2"5,*ԡ|xF $֌>t⢸ S W+R)Vg|R8XSvB>@d_;"p ۺ8!-j( [p@qi؇煣>a۹k"$280Ã^e`Oj5€q'dSC'}# $b7Ccc:fzYw!A@ud:ӵǟ_HVWq*Gs3R5t WC\_zep Qo=+SM Tzm⨒WL%s]H8eq? p%:bO_ RK7Н80{pkL4X*WOxa;Ο+q›ywgp [goe(n޺RHEBb)1Ռ:G|^n{Q:k,[Lysߐu6dS—7XiqYgkD-JDޮuFgҫ7-97V7MsS=H/=>;ȶѿ[[T_Jjss/Ȥ47ª(Q[:V8nhNDydr9 rTqN䅋Who:.fK^S<ʧK(R]-n'LTAvڪf*p% _ʌ*D:aدiPa+^ZC[fH+3%v?B?Tr_ Di.L( q16.G#MAv b;p͑BA@3(>@@jaXa k<&mҊ]s/+@uT2v<]1 D:]f t6o9'p'K;k(tw 5HMn>)Ve|BL8\5} }@]&9@[W_t.* ^ a29rXӖ~o,h[ť.p  a:15w~G6 X3MoK~x_F1vQU{4zO…xt'9U, ⛠w\E0ZOƏ(̅ (J<%g9Hk jնjH T爅[92V:[d}/8,ci&6d qD9\ĩ5\Oze? 6`b׶Z&-ɛ L66 F0cx,=hWZ"(FWo;xc߉f<67"H(.aMdUˤWaﲝCezNf|VwA jToXoFlTR36!&E(N8_# z/L8 &e 54VE:tg`OpI܈?XNLYK`?6>CfS;U(Y\W-OҞ]0>,sZm~A15TLdՂr3@Nv*-[9-K?.r =I~i8ܛ!0_$oDH 6fhvN 'k {%%)0|A?q?/NgOgNR[UT8㲷FFMCQL<`!jbUR- d\!AnDgEm;Ny+ >HGED.{QJ_$\n@C}0j-X}i2P'NLqZ8"+%5z8?8RkaC,s;?)L u4~,vA%˲Q& 1F Mhq;V=, ϫ+}m< kZpH2OMit ܁.;e`~TJ [ @yVtWL*ζo^#|Og$x FH7a'm:TzG!8T-/.KOȵp$RYU8jK4+1u"yoL^n>)Ï}EZfi(WC3? ~Em* PstPGVoj <N@=jRU6*z7N68l"O6_6\ Q|Bv*G4VwG#fT=P(\E8VMX9BSxہ(=HAϛ^ai7\!g=o,{Rm?*oֵJ C 摫:{"}ƿN{bЗstdž :uۇ=$^99 }cF $gݖ69df6Ϟ-4W'@|IIYxR`i5e1a:\Y=fSl 1[ͯODkt%k7" l7`9 !VxOUh;XXJwh-P f泍ygN2d䈸wԆc 5n ύcny,.V.iy4N2|[Þ Wأ^*hs6n+Wפ~wn/aѠ|XRZO6=-9eL3,5؂>{>+v8֜:Qw MԷ<^-c Ԁ9(1)n6;GJrE e5\=rRT9dgtv 2HK 8J}(kzh4Ǐ ISA؇rP`8KRw0"?(ä euQ2w %~rSK5i^W'8J5#k&vM*Y*-H5+ h`W-|Nl5aBf}uҩM 쀫tQ8R)x`H53T^jXFM2(tZ3hӰ)xU(߻`XMqbO[~@VtZU˵_" 1:_>1#vd9Z,KvbS!l27=rQ$?tGՂXR agFn|v}'v'ŠoXQؑµ4+l/I©Cqq_%9lVHqć]jn碵ak/Bv0D<] =f Q9s+2bx'ޒ٩%<7WffZտTf1VkEX)>ِ%jH Y_UmHN33?/xᡙ}~Ʉyļ7@): 3'b^x؛K(M+Lx3Bݐ2 >hFL S=/.Iœy0XI_5?UֺiO6X;H|Y8i rцqBV-BaO(".V&''b sqq; Z3j]ޱs$֭̔Wc Kj0eGG&ϫ&gp/vF)zђO'*Wyl]l 8f^ٲr򐘪:m3{GH ؆ ,ɹ)i$Þ"ǐiVZbEN&nPPQ|-~z:#!GO#[_t;liFT)rv(}q­_])Mzgzy[ نC,MBeYll.SEA.,[NWw-$v<#7% S:@6tf0>zC? Z 2~4cJ8 Ĭ!g[ů\R-M|MNWCi4Mj/5P4%VՖgv W'SrT9I,T4by k ѢęyE+^¸Ӄ@\8gZ.b"K+]KgRq;ojQ%H=C/l5J[ P(C*֢#$?h Cmcv^c*lH2FoOumɪSrj4?ԝ3NM)=HP88v* &+Oyۤvv4Fyt OdUXSE,p~#h&ZUwo`k~bf^؀X?1l̆r~nz4 Q*-JK<`f@z:$6;Xfy^:dԛш~{wm7)ІDC)r22h}ήs$иIֱJ[| "ׇ0" "N թ(՗JHj~HMA h-.O _')VLn)RxR{[m{M-L񝱓i0r$ [̪bPY~jq]Cgc+HO$"kop&f\lQQK"[bVD.,-(pEWmcbvt~uv̂'?AUt&+Žae=r[Aߞv0qmg_`V >U\vS}iUDx%Ufm1:Mx'6S 7׻˯RJecskUWgϵP 1=% &i@C7KNH>C)(I>Hn~T\!$/i H' hG{sdB;87I êZM#TtR@ބ,ݩ`WJ=P}lK8B@cp*j֘A8|5JCߔ-U xYhN5zB ㉮ +]Vl %80Wt:biYh[a6v!ܖ_ \>nMV`ơy=#UTt900;o)"5ISMZބf0TSdn0~ZHAq-prќBo7%gd'!DGKH_`ԍ7i]ZWsU_UZ`e"_@T^Ъ>^bJ 𛵯 2 `AǹźfJI Q6UՆ20X#v? :~u;sg3naz7p07"'IpÄY ?ʧ4\ȀV*\}[/H#L2;Oױ;zsN 1rTx3{8edT|05d!FXYˉ39g6 z^jEiVm;Q &lk_Ҫ7ŝQ!i' gs݅5$@7OlNFt]=i=Q4XuZ#xTw:6`Vu5=-C!&FOoR>'ҩ~{@ w~̵TܜwՒ4;`i$ŠD2Zh͘KYpinN8T{Y#W Q\6nd q!s& ˞*xawVp ڴzfI$9^%&H;Vz.:L1f6hE"xQ5y3Qc4.R{mR݅Qn<8gY \:e#*xp5z5GWx \w?}g;q6j][ Ͽ*K`Q,GbK#+Y#e9?ųKe%ӑr9p)*my\ӈc$'>@&iM:5D7<3y O }S:7R ?KX ܷ8% mvmj@'.|#Q";'0-e]=[Q%?LQ2-igNC)ү'|ĉ5U{rT)g4~"ic .cBㄎСD;: Jk&.] }doI& ռDuV$5^w-Zj1)a4. {j[w o qm!$ `)lqS|b|:fW*@(OӊNk"C=l$(dBn_+PƽG!DzGo3&OA^&,C` a"$>XThMp>U/ 'a.6e׫U, L:J5AЅžŎ` }ua<n̵!#Oo3ې!U(jo CuT4[ܳf. ͇7kք$=76T{[TYQ:H4HH+C}ӢVڃ4Uւ؀ i(÷+¾j$b j1M"u]{;ߊyxNir=yL(%%CkgbW'lAxS6uicIv0$!Wz',,B"'>]IOxO5&,/}nAv X/'Al56OV'_roQAq;^BH gO "TZSL"lʫ>,5DT!я5溮0vFvęm DmnMvQj" % 1uY#ই  y\ueA[@gMB6:IA3v (}>CO3DR6@8g.vIj"̀&Pl b{iSHOLz}Hأ4T_u $f.AXWKqѹ:7 Y5aĐV W_ C)=輿Ƌ:BǑ4j|N;/w]2Q`! ~f=UWkB6tIoݓ#,~ib҄=zJ ɇ{H:Nz:iQS]}^_@)S(H\QȎfSCJfEnW&E%=^ED .6$ *uT\{O**$.Z*joQê}HCNinl0Ա%ߥJ 8r7 t=DJp;ѐyLϽ+Be}j٪UIA3[Kk^;߆ ^Ɓ۸;Bȣ5v7l'd׋=tILD]HW1HSUέ^$V${W-8e/zHseQmqc+K0JaK#d@ e)71F ]X7j~gײ.~9e! Os\J6(m'F:YW)RrWGģ&nvw,d#DSQx TiRӮM<@\4^DQ<j/u,~7S뷱3[O X k9ۆj9jc r'q~hkhnL((SG9൭&QǂY$Kt(8}9NԁMpc&]6)\@],9+f\}&[+/>:r 0b+RAz(mP6msvh uACe}XpI]YGXO6iJVYYʘ?ɖ1_Nxj0V/EWQDwJC1Tgg˱5jk/:"b(s>x˥vIō B,x93BG]4IHXKFvq#VF/^#Nw;dl9XKB>K'yY6xASUđ6,wG2|fxP=MwmEȦSv^ID%{Dr]k^!O>3Sqm"7?5T&ld2z怨!d÷72Dk !̎߷qZJO k!C# wgxhId{}M&&' 5PWDP1RЪתP➷۾W;I*ڹ Uo8ʻ̓"7/OU&F|&vVߍ(һK.;]E)zxlx )i:$Eπ9RxIE9ɖ\vMs|ZBE+ "NJV{d"OJ'a<jyruM^?.Ϲ;}RJ9Xg@G: OKs-OV+ۛ T.:=)ņғSWB@mzCOjʒS ]}MAjYB rόHF$Mc8xOYMݡXc j24[j>qZ\ØW_[(Ծ1cMuӐ7Lxf](qswtkYc;Sd__*R_4vޱmD|7Fd4jm8,^#N~қkjd[<3smH+l$Jңr2Oyl_6(0o v&XU?5P {J\:e|y]r0 ?HF7)P'S6b#a92å]rޤ6qc8lJI)j\߉Α79qXމ`(LAdLDP犎 1i? _AJZ_,} CXiia/A"(ůj-MFI"t4wDˇ'uU2EYm:K7_w c#0&Z [VĪ`6uپ`vlٔJM@H#b_VkEmPCkh Bnxk[oĚ~-Tdbbw|VeA!][pZ?-P/W!KV%&;wl*b(m7>ceٖ@&/ÎX'ĮL@SW%կΔŖica(} @"w߷ f#>cΪ~&7'OdIRmN>Ddߥ#~)j^P6s8tfT7,s" ̩j6]sFbqGMԸPynpZJ&BX/'s>EX,}{dǽZSkcT|gLfx)B喂ƘD6>_Jẳ.$PK]*@$(A?ExnSQ]#Ri AJYIsqX57+{8?XH]/Rj:l54F-0WCTA.uzJ_;~ggdbzڌ;|>dgR;'W~Ξ:9u xT2p0}" ,`vMwA}oD,# ܰDpc2Ҽj찔429eR熻 J, [ %;Lk?zйLKߖb:tkO7g4˹ SLPvֱg 0@VՎ0<1rKFP*5H2&-wTŸiv~x LTXuA}m2/SV4;3g1]·[ϬG3v^(kM>ݪ-. x4dX4ڈ|x L;}yCQsr5>yLd{&L'_z% ӌlji)v@iB}c(۳L>Ũw]zDI.R;Z+{ |)1R')?t\7u# Pb2&b2*X~x痕}t{ 1#TKyDX=ٺZ`(uwk(CP㐷W+)iY7WOx^,Ux[q. ȁGнRĩPD%.Ŷ7UkCK&@=xWwu v>!_ *9nF=<ٮybVlW%w~TkA 8+BŘ e q9nJ*x avgg״eTz`k4t_}crո V)|5`toLwYng;<{n s!9T1w*Alj0TIwTD䛠pk\;UW)-| &HW|zyg O|82M׌S,~@f<##Gݫ1nw**jmydO,6odowJB=}8Bx`|\cKOOJA %\ :ϴF&s;DN4-ׄ’%8%d|8Q;;_giP2@}ڴJV(wi ܣ@dX)ڵuap+_I]zj L跳I\ω@>u\S@PC`=*0v5eHf>BoԳ*)l1vangkTKddc/iS^">TW#yd:MF'9f7|DIx)w$ո‘]x\9듷Wt'Afa{OMJ+S<= \O`S9h[8q-au? {!LV8 D7/]>h痡SiXyҙ)T/tqm`BCxh<HtrXgXsGWv$@23k`.T!!Q`=fu": ;l_x6SZӇoQ $JvvD!bC>x`%G.[Q;ܛ$DNϤaUJ"{U}2LZpÿI[r._B*&;NxLMcpŕ'`w4h/]Úz[|ͭ4T²Xb 9J_bt?Uo%1cF U&E/Rܮ:ܑobLtR&g{L\};NbV$N84Weull4|юx(żvvX+80n\gk-W-nis(]ZؕͲ|% ?rTvB5tN׈ZM#r_v%6`՟:.׮ BP'po3cJ:ƳlقkВms ڬ2.+i>nSI,[p1EuCPjeS~\5m#JZAnBxL hYp[(p^[=fs`cz2Z hOp.U*:p&1Ӿ4>&)d"֍{Nx (6>^ T ~W!C;~O"1;oV]VQq= Pg=Ɗ7cー~;]AZ_.yIL `lb3XY^ X!.ˎ7#rg?C|+F4V9=#('\0z<߹- 5!闱KlDJ%Ú7_\erBJVWxUu9)S(;O8}d;:cDKRl \Prj2TI=GF}Nؠ&_d*݀dgkvP_*eM"b__<lz<[_ՎMa̔XInԨ k`T:b}=t> 6|T]CLQ͓& υ~6Zʡ#kF?%9m ͤUlRœ<z$2DLTzL^q2B:*{J@y;zz-/.UFC%a n]I+(2 )~)1.|ivLtz!ޏ&jgv L'gf |V{')S7+.lRѣM[8G3GS$?R-IL7SlZ5֤ϲ B[ +W2őJ$Q!tC>afi(XXי. ^P1Jdq$vD7CH)y1GӿFXƊ CwС1;vuuG4s䑘ɊRRvȐe) W4#_b >Nο[XdN>'e:.[m]JJ?yFsZS/i# Vj o'FQ>fM<``ltLNR13MEO^{9̌xa;jkE`ʋ!?G*"m/N^B[md#k$SV@Gfث$jWNly7pcOMłY'Ȕ< }nPWȲV=^2hl/ -B[b.=<33.`fpI+r/ >VIľQ 3HDAc*B$Ol/XK"YcGT_PYf?=BP] d؆wPO}^8~O]vo<%٭0h洦 82  q.AT,MJ/+gFcD7ޜ-͊TTaQY*W,={?K㝊BO8|'7kfE~>hvpƆQ [3VbmA.H4#%[.S4 ȑڠ7chGm3z> 1 no`"ͩBT" ~ʎvn=u=oMWh6%xީp! |{?o֤c,ѝq wޫI&rہ@Λ@j.aa3q&#褡lҎ |ҵƵx/ P0+tt˚8 Z"#fe^!O>R$bVd/:sܑu*e?>R;P 23[V׈4폓u,I c ~~pY.HK/)`ukͮɧyF:1h=a3UE"5̈JC|odڴ>Rm)x`̖P?$qdBkƮ'3'6N HK~bПx&D\' ;Ɂ [VF$۶dipbl[A/mƖ>ڃҺtt"Px|A`8*I?#3)1̶}c[WS[1É΅7hkzP3)`u $"k3M_ήHs$ZVy*WY], e !GZkOF ' 6.%CUiT. lfju{v@fO@}Ӂ"Ҹ۶NKgA~a53!S± AJe 'oʎ2łdgY>bb-tP nDI(Ja%A 1Ʒ{q5b=-Jz"`q\T(|:F'8sm@QO(!73'[L^FRI B уOZ×Wp( (vV*3os;J1 QDqdj$d HaE>V&{h`彥BJ#}+K7NAÏ8 O5/ĉnNA'5]AL7,m&O9%/"JF1&;W)Vo >Ds[YpiyU!Py|{;~pʼn!WGzDS\s*yƁ7%>Ƹۗ932_w|Efv0̲f/F@K9] }¯Ē} Klq]: ?L[ 9#+j`WMCEnv@B\VIR"gCK]^;RNAmW+ByWE΄5zlP]#`r%oᐷ6:*[챕#[I9AQ#W(Y_Khr^h HB O WhőwLK3 ONx矷9',~zLHw0{^;oRI!\ӴD704K<9,N6֪6;LQĵ3 ў-MST2~<#sEPW-%>FO \;(Ɠاm.pCsjHD#O1GL!agWEY <ŨAK>oN$#Qݣ9#<6L*[B5I7bϚ^LS(l'q: 5k< % x5%NjSӟL^+̎G۞KRŖT!X>EsAfY71BoS2Cf~ZbN98} g8@r;3ۛlw p0 Yf-G)A\!v6!{2 VlpXy#Mhyls뾗J6(tW5}vPpa4&ߤ(I7t~/>ńoIZʤ~RUYkp<+;w} ۩ju,A6mq =ӹ+ ^>,)Lgl GSsw?x[. Ŏ`1>SH%!H8sձs]Wi/1}mtL RD\۔(#o9ymƅ(]]8;(d. &K*3~]T :&htɱ_.z|96K~ZlP4]V| 어ܑFxa&qA5`,`⦮%nؚjCP^V|z[KUtlrXtr:v|R#>YH/H(X2`1ȓGnt$^6GQT0e<_߿GzJށq̐Ho N?HMh"_nsB,TRWO{je')<+Ma4mK~ g Yb@pD{irH2EꋎǝSyD#fWla0WSVX}J"7fЇ..<{3C(6YKڋM=(ɷYZ&^gK^$ FSB?Bs=xԮ ?ε^^5ϟTw|vS~,/Ǚ> HlPi~5')7Obn۫=//]m7 WZn(w]#FB0(A_f c6ByyMn~=_JFGBR"J#z5ߕ*IFo׮Cee絍cUs(6I۶Hffy ܝ5F H;Sݨ]w_CgJZеЅ3/y,\t'_P#FyA$f72Oowˑ/3@5PlĹk%Mԩevhx$JR]v[bJuBo*͕}/ 8CK˛Ҙٸ[Lc|)>욫_bq.=+WJ{C3NOzMO.cnWbĎMf b0zxKybZύ`YC۰C8Ɏ(#jR{K\‰, x1 l5]xL67'Ror|N2!ZRpKZ=BK%Rs{ޘ59yVͫkya°ঁ]8oR+4>߮-'ybx)P8yI67zlm\U8:{-xt5V6>&-Rp- 9`COپ\%8?toW$IJLR?d91/q]dR4bU0ω.`7nfJ(ZZ]Dm\^lM+ Ŭe9`Mґ6E|0B3.#:'RJ o8-セg:{`>*T3s)LD?@#-zvٷ 39pvh.j?sT3'LoDΰ%{꺄J(l~PSbTD-e&u}dsh\k3+;.5*3MNc);8;L;BƫY_oytxXS=viPq͐\&:7(@۳8L#kάBmÅl={sM{աF`i8 3cO(fiyU :jr^4`) `tpV<ʨ rKJn0 &hO֯h.-+ UI= E EYeI63S'SB3skD8p8,Yx8xbS(U1 ha+@R&yU #QG0!ojJ3q , 6>E Lr'.v4".#:fgavOȺ0)DD^wƧZCN;M,a5rB : .]d]X?cZtE]>`Ä^{^='ŀĽT1e?-,Irl͢#.-B5u[ydu>X97ə¦_Y-jNx+ل|ḅhʅ˞lѺ,6{b̃{Q9gi;1V{z]$]ZʥtoJeO,ɦ)P?u̵1WM;F\Bebyw*'h7I)ZKg!Mlfd@tuG 6 /eZkwcH4uSFZ Xi`\֊yB-.[>$u%JeY[%2aq*METyew11b8;'X0vy#‰m[3nzӝ+!Qy3:q__ %7'R[ve?( mGy گzNrUPFc;~?Q~Q_v-B#1+X u 9Јzzt{v6)pWm[ cWՋ!$5gqP1PILwܒj Ѓv}(t]/ M /n`;> [ᘟ>jG͏IEp3pz&iܷ3op$@ l!|ekxk1 ra@>ǯnw=c9dgZZydC= ~b-- hVB]:6Wzh:7rf^%#\hUH{>_n?r4j_LA,2Xղ6etJN6ϽR5ַϺD}6<ۣoV! vT˨p+<䍅J⺔o6PnP%hZAH{|XIЫ%COe4C_CUʆf1.֬G,oUf:7u e\\n7'}\n7wכD8^P 3Lw&8U) wy܏2M{|Yp*ќZ L;r$!{]2d }g;b7:?4N?!*%sZ/${(B%.bH6t0&cp\v~/ߜLV.wkKD~?ѓ}Ü$5s?5d0&$锱wpI4Aun]}B@/H_D<_ ,s\J5qBZF~}JF!V;mRJx_G=9SW&q1++ X 0a[IV堐xcB g&9lsF /'܉8ƹm C,KI"OoO`[F$6Whʨ|֮EXZNR3,"ܦ֒}o@t+so5+HL9[!6'u,g4p^F2fd]{q4 *PrʕcXa1׾5ɨ\ZA{N|i/XGH0?Q8_Byg?74?}L>Iw^#+C ujIe/sf1 FoQo=6_$[U+?U @\\xp@oyí=-úz`@/5GZh0zo~YjB\ju5}IFO!&,p9`ԑp󔫳nL/wIP٫Ie  m1n gXQ;Jm{L=c8Ops@GO@vXBQ<|…^ᖱh)9L8(`Pߌ&uƚ4_*h%Vv^L~'J \Pc;N1Q~'/ .ci993cx>8Oy7E8⢓R =#\3򩱉7MܑX`0,z~|FFj % +R@ >+Oѳ DHzaUB#$&aჺdt3Sܐ6ovy^-J1kU#ţ>+ ͊]xkVrPz@,J؄̜/C~羺5?ǜcŎhzjpC6ƺ-GRfc|ui`\ .=rH\t!7B %ENi.uomm1zi+s^W: ~fM5i4`j}?f 7nm Qw&h Xg7ә6&*r?SLI*5 }f'Î/7`x$WЕE+(?cO]l҈ ʡJ2{h]_+ V:H!M ܽB_)cA@}/9tnxM#x_5șK{}x}Cc> bBO!sA9N(#a13^ˑ؛7 JJEmKÔjK On1O*p>E)g"e8)hFY|d=XB9B?g1mj5'ѫz nEfW:aPOYI#6U[_x >3? T&i4>CpI"$ Ԁ(/7:~wxCN$x?\%"&q0WS O13-q󍘠cŶjCYq+#L}M|&Sޥb!XҎ%FfC;o:=ZG)x 4Дn ;cgI' O(ߵo&ԗqa|U;fOs %@Y+,gи͟+2^s3d"ܩӚSċ)N (oVdoT;s#0 h2̻a _!KYd.$)Ԏx6KxTI+wI|6*G%ݳEmy5IkwnB c&?;3+o R*oaPC..½wAF;,7WL7'pgljϻBDΛ"@XA6%uZ9nT3B%h]k2{xO7X4-5 C8aa Bv cx" :@:TbmY%8#]/`O$P20Zg4/jC08ʡ'zns,QbOY'+8zsX'/-暚O33 ٤^ܚnk8?Ƥ:q9Leܯ3]p*iFi.ru6u  :sV]Ң NE 2Sޔږf0-fթ)?8` 0ǰmo8r5GD2ߟ8+w>^[X88Lṻh rW0}IXR'j쟟?g q9Q5}αW8yB~Yr#8ur-NAD, $\d:jdkƵn! # C0;g&F#9nRU@!d&cZ|sHX~ΰliےsŅWl/5_=緶<ɟ3,'󷊹2SY$%kA33Uc 70HŢ9@DGUu hݛnvܫ`qd~ j'WD}F?6ŝ ,,?R&hظq-FRqI 9{D%zA̵%crO4=!;~CZE\\KpgM?h}R,vi$H}B^p.u $8׵O>!Lq  [)J69;q~hܵ٢Sh_O'-,]VW(J[N#{Ų.Xo &öʼn;cJ9 \a!'Lϭb,' .C>QJ>P6D\'jjKs3b`kD8e!nz;%6whz~L6 l=wtdJJ6JB1υ N4?jPʲ C`{Y ̅evMb8 Bv; 9E6gQ٢765PFL#m,Pof,J1m*Gd v+x(,*6x/Nf00LsARg-~9XpfnWCYbn/2,cᴗX} ˬdKY)ᘔ5e蒷Tu#0OV1Ґ/Ay Pq\dcUjJdɈͻ؁e`7qM 8'%S[#|9E #)[覜j}g@|ǔˌn\}NI/*ٍoe/"f^biؘ T]ojdgS,ySǔfۂF(_| # BMPCU/3ˀI.aeyf,gZ~9 侱T'z %1'6 0C?]2`&`;N'H΋e#CYx4wH!@$U/KO#h1rApbA/G`f8(>6߲q-/qonY.DtewGpj4j.3j)iceZl L<I➰ *6m!jIQc8e_4;&C/)=l (y =v] @Iԡ^𗑝ջKizd SmYsjc8hMd%Jd- 2Mv];am5,`_l^Nra>bжӺ(e|Nַu1N(xMWRZ **4h2AeưJ-Y7A;Po 1mANNjp S5מ~]P{Í{mv6hSau{ϥ#фPSSt6TM b4 #E_OӦx?©X0@m]f V2|j"!w)Zcjc/sxsYtzye^HsXMVKJSRCZAf=Gxo(/zlil;t +ln2BGӒ6DITJu{q3>o0IJmB'A/lb4 v῍f]šu+ +$ ?$NiC:GucaQc&*Ld}aG .p a?=evo^ԃm OQ71]T>ȾxNK$-0GN7pFM:@Ohd1r_n/lеIWiR6~kg#d`7:YlQ&Y\s/cP$"ESf:JRҺ.3Ɗz Rsktiޮ+4aD^ CS6˫Rpw1nZZ|B,rXi{4l;>HoSz $6J`u[*#)qMկf@/}kRՄ ;2klfS͘auRA;ϓzV2 )yH_C"\fY/Z(b&R;wQIfoXCL ѪM||8wބDtݠephIH"3,j5튽`~͖ v:_2LHޟ8˺_XJEo5"+TXÉ ץvl$v3Ы Ŏ¬!&?RXut٧\!>jvZ&P*IL3E)|ٗ  7,_`n7!Qܬ@=ZbcGmOJ%4Lqg`~$F%{&3N"04~~^VɞCb;3e5j8"#\tc8@z90hV*<,H V1+:Քߤ/1TϤվ*&'_KӖػS K`՛f!g »6h?=e}Tt7ۑEJKjSyHF A܅03iw*xy)6Pqp^`X,鈣%c0*9܇s,%^Ҥ&RĨ^B%th&f*Virl i460U-M(sʰ݈rZj^q1K|g1h~mKWUGc ?ʁ'pp9pbَ^}ʻYme'5t f_w )qBj"K ~X )_Zou/&$xq*iw_G>_„j Xs=%(^7K%]s׋cٲsu xFA|<**uWS@c^cO{o`׆$='MLe(<]VJ=:NZK3PE L#N C6j$(*ZfBa%lg{NB_vq$q>C%㳤?\ [T(ʘ4}eC4= TdA ]$Iق1th=Zr. ǬtO;<ŽZWbd䴽ц7b)bG8}<)Ӻcu\}?;=qΩ =1Au ' in8pkLWzɥEuIVMiWo".c²cė`Sݲ WYaO M Fܙo[*hz; Dm8(CA MB`9 8nWiajpDL63/Jd 0Z TӒPf=S%:bdTl{ٟ) wh <_ɵ۷NmAo՗0܁@9jr  ,brBF>]9^4"7>="yj9̷~dpjE]*kZ 撂(~}٩…E=|gD4pErPͲZrDVUFG·@4bfF"=׿nLs"9es*(6@|Uݒ@;"]H_y0C*i7?4GR[Ch݈p~M7=@jJ!gO}E{/ًLv_¤6f.V|*<4X9$]K{9Gfi 5>Ⰺcy[-J;iGfb$[L4ŵXmY N"]1gf QEz/ҳ?EmdR7QVp4y疪!q^WAfVH:<~ޗMKuj,5Hb!P^IϨ"<)q b7&gBpMAd׈ $5BGhrΒhCMf)0*rJąs^~ƤehVtO$Vd7\teR-?\%SR@6oEjM0SǯZSJ\砍O*{7Nl rDR2&g]#9r,󡞤ڬqi=qtx/f{tp"9Z#4~veқc%BG\Ku6oTL,h9 Noc$5`fi|lg0@YC,1 m2 M/z‡23d'{0TV a1ukv ZuYUI_NVZD}h h˵Dp#cg&zq((+jpnƨCfh. 'DO_QooxLy\h:o䜅]!Ckٺ89p>RXHrqc6Wڙe d|؃sؖ c)FL CG[j~ϥOB|n+PlqM2?|2b,#E=TZz"E:xM;r2m$x)yЗKH%l3Q,}/= ڹbT6m i-f+qX/9h)"Գ#-u(a }( wwVOʯJ/ME.6V :CeomW^qE9&襚9K'H12 |m슂$rgcخm0؋BsXHF(޺+]ļ!CebWtjl% }gԃXzD689'^a밙 73F[cŎPNOF. N)>e.}u7[mCKZ= (RV<6(~j66:֡YE&[/KeeqP.(#\f57"OEzEr]f?6!O!,.m-)Hq10Rm;> gRp,ɭW?[Ґ1)UjSj U]X߀SuXi-YE gK-i0 B{5dG}%]m ~F6#K;GQmngUp{޼m]hI%kΐzoǫ%MU=T {#Z`D9Uz)$1tλKA8 .) %-@޶G8c{ ['ٷ۹Pj nwlW^\Rh2^ߓTx2)N331M]hsK'k+waqW2YlZn@[, B9 x«t@gz)MAY`$VT) 6])^"+. ;[\'g74k8p!wh0t ԛeRU2޿VW2il!tn,r3f>ҁ ٷh1`uT,EM߯j_m`xa\{i0mM? { 5Sh|w(Q/(t]oСPI׾֘Jİ{~E%>6#@E#,S hPK{Y>=9G@cpN6 2j)Ư4ɫEX#0w^qbC&T%u4vK4t2;D1v"&!ȴv?kŜ^ VU#MXWJWm! ωyA=ՊE46ב߹ ) fRM<xa>a!וO.xplT1~OVOK-Jx@{l΅8] 5sfW?Ib< <\1F !@Aw@v#-dX}W/S-8N CTc+FYV^Іޠ3tDߩ"FwHjl4fR#2ÎNH!k(v$*@ev',po"!uzJ IE.CŘ,"5_jN^\4A0hAT:@L`Po(w S*h^4艊,H)jPBw!=Ji:w~M_6 K<="U|Mlaʍ(فpK:=QqՕ[o?M=ag3dFg!w:颿5ejù _\2%SC"=?x!T1xp[Rk_Kn :cBr9.RV/e%vdRs {Vtt8zHP  0`χNF7kUvNOg `= Ji t]$ B]T'#xZ;ߍ e-o Ϟ ξ@,MmE1$jtv~dYq+.q߀,_-xj}b76 ]'7h* mI.;lZ =23R&u qymxNz{ T IH;!ʅ˼r`g7D?~66dWh `lQ,skKv&qg1?{'LVq(1$+ce?DgԚH%;-CWvnhU4[ۊn:"OY˘\z"k#zׯ`.CBS "UmQ2eє!%3\u$1hd)hp)E$|%n1n"W@Ch9“zsCHct };DSBDQV//vI3IFCúv;[ד~4 놛,ϞxCݹzH`b'd')OʳnVMm?pfyܲ<GC9 Lk6Ko&K U a6ii=UlfnxhEJ2k唋m8+5R6MZC] GAQز&֥yNtmq#NUlrCŘJΒAf@0Osղn8?VDP_Y"c"Qu E[4 Ϩ/?>#l,Pul<%zrgZ)t ]dQu%jm ޕ/8- #}QhMaXoz bke[5}X-ҋ ~d'o \+} s|a`=|/ B=am6[!௥Wlˠ(@vjqKp=9ͼBjh40%S vaF'?~UgG׬LvJ3G~ʜPJ\i.rDRwrg9e,%!MfMPۨ^in/=5j*M#⒝Rs3Ы95n_B]1첿Y Wښ|oۤf tګj{QC>n7u'uNS 1G?rYi.'t~_>ԞaD`kvzx41.*;B- +P/RdmYƁ9|6v*V K@Gvٌ,։ <1x'.r KsO'"?@XQ9?hLEm"!ꁾ*` [}=rpWv6UW$С#yN}Rk68_w.>TSpvR݈9b%$mwҥ͕q@!Y lt'*+H/aj\\M+sb9gwV} Wuk?|b^Ջav9eiM(a&tr4iȺIK#);m‡&' (Kjx P2Bc?[W9cp)ORfKkd.2^!XPk&A, pTqqY~xU`mruY(gZs F.Q B0 '> /pO).^Jb@Y:yL4/^esy.a Bc#zY4p5=N5x"5M {VM*?C؏[_ޏ| e{fõ8IUjSRII^Eg_ 8:/!ZcnunCE5-p e61͚RUG 7"MƟY%pAQÅD5'W0_"Mم4|D:T("&/jEB.F0%K{Dlw*iT}H\[/Id?l}DeŁ?_h)T/p/.\a w7XʨH+O c ZbΦQLҜJV;毳\e-,9 VRh^Ab֨ BfCJaNoj=IF:hweT 4ΙIC Pba"uCy ɧzfJ`O7.m~ץ Gt}W5 %`I)r /:ni#h gP.)nE<[ H\3P_.B:ŝ:VFOM>A~x`ky͵0yh}bE,sYR- O~s&4Scה58^(UqH[db$RjE!,98obr6f_I<|4zT`yяq<ؐ %qLߋ іWdBV'ﮪ;/vK9YCO ("OEoEG<l*[lgva,kt,WW@3LڹEjB7ɶ\:R=u?߷ʂZ͆o{h߳ m`2RW.}H!xAG|hG~)z (,mTY#Q+#b_* YrM[+LXR!_X*L!_tuj͆-/ť?r>>E|$v $7wh C#啈&CYёZ?oY=CgrE* ( !ԋogD˦#0a&LCC87e˰4Δu.4躃y nRd+xr۹|&[}@B5usAG+dV T\*Vl=3 ZA14p!U`xtm~5Cjk}J E\LY11a؏*&"\%qu%04L jD+@4 S Hqxƪ|vL^Ox,XWuF3MWn>-NYcu Nچh?i+xkCۗ&S~v',ʪ& 6O`1$l?Gkzj^ْ\$}@%=s @V=(怖abFw?uvi!CLed͗CbP4rYTjZ8-߮IIsZTH.}XY/֛XcxeVyƋ:Aw5Za-7_E~Di䕆2Ȭt&~G2F6 \]iZ (ޤӮ9!a#ǽm1 ]G=,˂(B: f<VcNő&Q6=CJtԌ>qdf&+eZU%ZuFDAm RE?D9џdt&3&)Yw٫$DWPPDbTcW f*fTe3dk+4d_ }V6%Q,dbkqGԧ4WzȉcK;dL{e642i*QvxtŏFhx9|uDБ uyzI?uNA@-ڪϳðvӤ Z3\_C%}ԅ)*xtNYLUnMj^mXjmKNk]ޙ೘A2SqX:;0+1Lj|?_1_Q&(Apݞ]+3ؼ|~VGQDWҞk-\ZpU&~תsn;}TڸΒE UHƄvZj=oP\[zx9W''ΰ̝G*ݽ򹁤9"  :O@'V3(3UmQf3_b0Q%ifu20P5sMS%UHG;9;^ dEt˯VdDPu2b&KNM`񕰃H`AJ^HSplK{Ld[̖o)!ya6-颦鄼A|A%YѼRb(qD,UoG&]l1,X:*kR.'7K{5fUW/vva??bP{ 0fQ/1jB>5Ӈ߬jC 3txjΨRD䈄*~ g A~zb$Pf/c/ՌG6X8=4FgH27f2]g_+<ӄҘ[H-|5BfS gA<5VyM>HwP?sX%_#qR>S:_& dBӌ'_#^;BBY8VE0uOnjv #М:Lxvg#leLEexv/揨gJDwMsfR7eR> 4y;w 4Ƙ/Y3YO+ 6Ik z 5.VxH#Yr:LQTyoIQr$%ÎQf/Z zF:@ZZZzAzK/sPqsNAR(ȥܞ%b$|ɫb{M ǴXā,o: H$fRΐI`K4#aֽr}ntephվJob2 k)d|] f' d`jOʄTAu4e=-9٘,ٜ_)r`'$)YXG|X^l+` 7Q]fRY0)d*!J6mHlRRῬ jwRҲEҏjc&֬ۡB5 .&:e3*XֵO"vp1/2d4&{?P=13%0xq1q8'_y ly&;`, T̨9컯J'kz^|%QMI;/^=Y[w *] ,-(8>p8xr,vG^%{Io6Z!` Ǔ!Q9 S*b&:M)kqe@,7j-ۯ!XFôCLz4#S."lİӒ"cztKrzOmB Stk:~T}7Δ3x-ϙ6րJiH AYgX]`U}$e5'+0&@T$N PW>JI.E6K:tOJȨO#QUƦ2 D?5Yfӣo >tr_t--S=9Zrpt,G+/h@ *5Wܠ1{s{J$黀<-ԛ%%R26c C,uID,m.~&F||ڲ>$f,:i^)\> @nvAZ䶻JBcY7\Ϻ|T)N씾 !`ns P(bpXU Tb%Dq>]4B qv[_-D*HMLN :C @<>k$㕦uYBbreqn}W+T1kиqspupKAmj*-]I% EXcvwՊ)[i 8C'/K J qOþPSMiv-iK6y E$vNAXNkb(6c9/``i/8vǖ[S?ݺ+6A}uHնǁH٘m` =^饴Df8~-~3횀] ]RpjP"%<ìɤP5Ӂ{} K X5ZeX)Y&^$R65ˢ[58*zI 5%Ȝ[) $o#TVri %mmЉ^ؿ-#5}f}]٬ص# ;FV͊gJ|?)BZýIy"(qefS0f厽 ڞim"3K?OG4ks/p7feꃶHkӡ'pZƭfbdjK{p08V]`EM3)8^Y51W#vfX~K Fs]Tt9zQ]&./Ol T%0X:dr%Ob56Hfr{LѺ>'ņ/qz|MϜz|ϥa(,N/yz!ѽX)%9Unj$d$DG XrO]P%? ^jB_]8]*S͋ԡĚ"Puu!K-ant|%L~脛g}Luu.L@8#p"ڧ}:}51y[cf; vOtԴ'6De{뱂 }쥝LϽnaOl"Ê/0ν#IkX=mr36\-ǟoM}S, Ga SI ^ /CΣA:,kp []P 3Z~mQD:ΚmGꅛ fmqKs??1 v:ݭg3ֻ[b:+ NIP49ū-zqkX@0&pkhq HA"qa=Y6 #4JdD (vD]@NxmxJZJ$l%!SѼ3u&e,MI{Ѭ]І7f ;._ks{0[+~W7w|`䏌|G7ѧ뢂(A)/d_x'څAgL I3E!cl6}F0I*y d1o6v ˩?WB~YÂ~&y0L3^'Od޵Ơwqrc;j!ղ]AFIWӳ}3|Ȋd)Yˍ~'겪7NV~ t:brY3tf@q{Ǿ1O|+",QiU +g؎c}%ɝǁvLge!1bJA= $gv;Q]s)#+ÏK|~}QzvJi. '۰F]|CSvާJէ~yCe"Zx"ʺ.2 5yB#R4"zѣE[Êڵgr)wXtkndeXO! +ΚСFbjc{q@c-{ mP4Hc2|H#սK@ q9Yh&Ann>hU< a:E NE<ۉ3@,#cR1@,SXN{Q?UY~8<Ёom\gltE'_|/_-8OS0U8WBzd%ޢ߈jJܵpW  ؗ'#k75KLkgdb3ZU]b'\m^ݟ&}1iM]gord.yeq.TI|Ʊ`[UO: C=BV32L$|p߷gI 8>uJ F;M9Z.5;K 4ꨓً^1n`RZ6𹔲arTeeLu\AȪ0!o~޲$mTD;([JiwuM= RiBx=y".HguLX!#LO}eƮ)5WznE͝Yt~r>pmayuxF&h; ⥙J4NmX %^{=l@4zfJshg2/--JfLv"s6ذ:o890R/ӝ f%dp_31Uz5{&VRX-߽e"H~x6 '%ٙ;E8!F#cN':җcxr::yg֖vo*/'gBq#LKu-{vxPN_n74aWRzl,MqY]®i iT3L <9흅ܦ}t!Db&{3 * :IluJ:Ė856`Vlm9@7أ[`LWSj`5R0^\"$~#3\!aW& S3[ʴLJ/@x 'l+>]p/"YOj/ӡp!?ĿmwW[sB װlXpo&*MF4|iF{ÛD>G=}0*Sg@>#yÚqzI4#ߒ|.ԙеs+O9!ޞA@L~KW#m,O5qUlLU> ߶#B,9WT+Z$_PPk14w>.oYZ۾ >U" A9Ha9_xNmU1!(X4g5و1 &i.z9_0 ^.]J&4_3R1y#K!+k-UFcǒ8,82gD\[k^쒈(]f4Sp.3aQ}Aub..Oг@m i _Igt=*ГEowr԰Z_ AbY7pŗh@p/Dj#< ZC/B"edD5cI`WV5٫~RKHJC]_/2!bQ=饧HRh=Ǜs\vUi0ӯ7cĴysP#6]twb 9A4 Mҿz:9;\80rߨ?˓<ɇB[ M8> 6Ҝe3rgO&KΏ%hCSW 1I9zye+ltjɑ>E JtycWv[s<(٬*@GQBV+0mm 'JV3WLRgДpID&7,&^\wظI/[Pg._l8u03Pm'ٳt1l!V,cSO b :~uOR~@z` MAs?z ]jKR1[g~PLb%r V\\WL7dgK_?iG&xFPFx}S?'gaT֧oP>,2Y8廱뎪HʤI0d,VSɜY5m٩b%sQy6GzSK{Ϳ=$+g[ щVKS%0Ӡ^M'=EmY^ѓM/xVnOlꀽ\"\㜺i+8iX͙T:پq,FdGq=ДjrE1bR Nm>vqߕH`AľJZӴFxD: b)@9w 71ua@ō`_и2N!XȆRȏEAu֭ح+4q6}jڐ_9߮ h,'K "Zm SLͥnؚLl$Wؐ `'9Dv&^BR\ T'!]S*` ;.YK;Wop4r.8!"G v!Ltl erv3bѮùUS ({ӟ(ڣ0 %6Y9gٕH쩛gH ak )KaJp*Wv/.yq3(T̝YĄɱiQ+u{ t8*sD.7V䲁sU?u[aI(9cs)yV") dҘfyB,M3jzpg'4~{.$vo@LNoWqnc;T _);,Mբv|tv!]CCݶ-ܞKMU[.5O%FFO/,%e4-&4!Tvg svms]`c{#Pxr$*y҄[<_sxz=e֯j f-{ۋ:$Jw7Y}2ڤ52d^.˱Jl? oMsWfXuC[ClhitgiڶFzɡI@m!D@=N#AU%@$QCBYy( lB1[ŮĢl:?B;8 z@<]G߽L:%AS=+7iU،9?pxk1xONtGU쇱 ¸bSfIL@=Aͩ>0vcu=(#@*L]v\HQ ] z]iK2 f([.fy!IVٙ:!f2(Dz}ϭ;:%J,rU$ňPF3ow[t)K'3̐5,GƍKhBm̶eTVx>IS8q椉b˪ѡ&{=+-.$+F=f\*@}yIUdoR>dWi <׊迱oĺ2q2bgBH!λ%A߾dԶD݅k> ƻ>(8UOC' 03 ZP]XGN1 [*>Awl$dwѓGr{RDvy圱u^R~J}܇!èsey@M& 64wܻ';&):ң}>br`SXu{ҾQ^/zLa{ kE7/,_? ohml1Fؔ45>vl ,:ȡ#̤: *+]U1L ] JOug+p'@m|f 3rk Sl>ZE=1߫ɩ%?%ܕYVzaq"eJ<975zNFid\9lĦŚ &!a7כٍz#ȥB$S-}Mj@Edi.SIifŐc?,:N]w1jb=އeϰ:|t4LWp\I\mp9ym\# +NQ1BRѓO7nmHF o7pJl3KNd4鯊P;dgK,pTQ7ُ@d8hiKZۓTe*e7PP:z$Rj'HYTo: 4g r}&a,|ZvEGgu! ~S!fn]+D1'ĪAH׈:9/tgnn& dҦpxΜ5_3 fں*v\?.b^0pCr4nX*p"6"UxZEH,=K$&i׳r5v/璇A bp3h+EdUʘlkVLH{;{ļeZPؾǜOaj! 3RZeAM*Z⃤@X]– Yڢ?]ܮa7b;&d0'f>C=bk1=LiŤ>ja3,BS(["%[=K;٪Lf:vlSb@Tnnv#o_N C`QY>)k)а/iŽA(]CI*daћ;D֜)!WOR6P c9>ϒ#·P2>_]-t4ݭ,tgj9wf3QSha  k&1_abY<0kCt@R@9X/L'`ӲBPVy38Xꛠ0@9<4~DSSPZd (ө;͑T<ĊUqUz.1Н sdu?D:#,ݭ{ pVLf1N"d`Xw<ΑEV j^.i,+'8eC 4Ζ~hzAۺaZ0Kè): Wᕨ3Ru/nO0hsr Pi@7xkw$.Ucv/Αt{6Vnʕx{;C:.=EQw9L 87M*`!)SgFT.p0H`Ai| PxI#6+.bo>y[bSyb<[q{ 1ZιsOFWLZ"eӷ6+^.އ"`@G umDҽ#wWn+%ٌ dW)NwQJKEnI$s.uvA 4A%2L9 _4TLgvHw#HA!19WYe81=ܾ2 RJl0:{\c[_j׵OAt-7f4𑃘9]gB dpL}a(YhrVRXэ:dgmjyt&OG3ਈM}4S'gA˺/JA`NԵޤ}v_K2` o7Y$@\_t=KЎ2WDE Ƌ="9O= 7 wEpWFmc,vOHe¡$S$Z|Fs4AB ]GT;P@lHH 4 m:ÆwMrrx5~d7yNd8x :@O[֋UrtDA6b "չuY,)N.el'(jW8ug;<>WF"C!xʜ-[`>)9)m%M;(PiR'Wo ֫y#_dF sׄ)_+ej ]ØȌmCβ}&v-WX<9o~(<Xr]5kcGv&R[dj,?˙A8rːі#>R`gө{ w{c db` ]޴?3g|̄yn:z/09Iխ%oXtm܈ &W8EYrqd*noy<U;w ՊKa?Ǽ:8*1jX0y%;zЕo2[١ɼW{u[BxCSEp,FbM WB xHL[u .:iYb>ԯ('#2V":#YrϹl̇g-g@LxV% Wsjt=}gj>hD4~X@ֶ"&6qA.?1i{]Ss0-* B P"ObD R˩-_6.+q(bX7X|w}L%x倹dz|]h'9wx3Q)`%tOxWǹL,\䅢yPJK@^g(N#FU$cT{[tK[?n6´w4y=;KG0dEJUˀfB"Y4}UkC":JO0]='%)p -[XhApGzס3 `:5)gOwԹ\ nw;FQ1hy5z-iL$2;_f9C P0-_<,e0~lE-Hnm0Xi>1ZA6/mh=mTѮfUr6Ap>&ϤR 3|&k#tbecDj_O?O*v[^(%ô2:ő:ĸ8Qy@@! R=saAȮZ?p&BIcNGBoX tp<#򉟌|ZvĮNT3bM(4[نoD^L)\? B3 ƶ>w#Fr0>q= vu- /2CcH4Egɔ=h1Y .䑬h `h/2ɒsƋ)) _|F#g7Q(q\LrߠS\)4W2Ϋ^ϘT%9S?MTAxd{#^%TRmAR?ocK&l:͔`aK+]אC9&(yG:\"{ D)Rb?(Hnj3Gctn! S_YL%&#R9pKb! "%R w+:tN "3r'lZ7V{vc6M[LxL:=0FF w?c,m'PtЏY%^'>_|ua3 gv|Wnnj/ *"l Q"NIS/tUff$5vXHU=RK\ao]m؇wq r=#x/SM4IOY%V҈bi7do?S'7Krj/3f;cy_Re@;`Xu̠niAM:_Wm3&˹]cBɳ*hdImWg9kZ20:l%U!F]ф Q)q*(#v-l#Xum`jHwDXo)# S TS Yc-}H$EOL=9ti].t85P12֖?Ƴ2 GKCY0p{3D0C<acO.淼ᄒm|TpN >Y毗m=*#2%y0oZi!ʥG.]I*GkihSVϭUyEZF2gEqUk[ .?vŻݷ/w^޷׶7beϷ\튃GnQpȾ }6NBvK)$t@K ҞF:z!B]kE!]70wnB :vkqQФtM N(U{5 ?)8ШLJxКF -VYk ɘ/i?| kFlƺ?s+m 1a7U{螽 x6pBץԣx~MPqRZvf.[,=GꬶΆx4WUh+TGIA&ikf!4%3aZ98.t|M}x_VN4GdZrLPav7GƇؑ)8 QU 2TRQ[+]L3V칳S,rBvG`i&kMvVŐo .&֋ߞӎ~5g% mؿ/ڰ_ AܜcśuU6Fs<cQ9Ϫi+J]0Q{ SFněY9Ch+W`k8"De= MǠp^; &/duYMPZP5Bm0 MEg q:=u fQ+;:T b_ul3*jOED7.ԧY7⯵R?]I %4P4uUvBpB~&С< nDMca4x-Dړx/r y^rОctzSeh K=rf Jh"??^ WŒ=xG`IP>1^dQLˌ1Iq$@*by=%?13yHI=p 1Pro; ]PJ@ SRÊuA/IЩ.z%'e{.!5cp_c }Y`JEP˒ ɔ~7אK2Ek`B3Dpa;)H(LW:UJ\sYE ` {28EטM7'}FP/uH*v&}s._и,yQR)k9#Ӡ@ۼD~SD8cJy`ְ-Ed_bdX[v٘=؉Ve*$&Rt H~ENEUa_~9z-bKFd"T'ܐEoTJ܄Υ]L36 =\Zg Bo!(6[_٨[`yLiOm6wZ'ˋ,;I f-Ni晜6*!%=bifqe@Tm";m4\ & C)5Q|5~t@&;[4e_p3Azz]Cj)x|c ~%enT }̓<YFw< +}Z,εrnA~HZw멎בΙ`}:.uV/c{)dzcҿ"pJvBOj:/^2_HzE(M.I)쭕V'9Ax\I9i'3i2g 5Ֆ(,idxe}霱vnf?xј<c$8i]&3+TlNۏv9{ /DZ F!OH0ΩB k seŝt๱^(_/{]<dO$:㈁8&]@Z=uNI3r!*hجSb3m+vFiQ(fee_+w v 8X6U#@U:P$Cv:I{_/6TsfjPJ~(ڥ(`X–4y^ +8s`Ld^ Ӱ88Җ-4 fSC,*뱥!X.^ tϻ{́.8ߒ7 25hA. p y"eKq"AuǤ ,^}@zH/?T| d~k&3•t' eHxdCݬf\2;!",M^gX gH]u,Xj>WB{_]טg`[nCX}+B+jb/&K y8Eh*$ڥB55*JDV 3 +ސ$,Cqr9% 7EΞ iF4& Ru"-h9 =yfYRcAqkz.vzb 2wݧ?1AnMDdZzOL+{%NLx8Q6*-8ejSXL|0#%3 >}:L$T 3t*) a2G^,*&~5iD@˕jjQj>N ګmtp^㪀ƈX>kX9"ä́hy;AvC3i='%xІ*2z], =p-̭T` R_l.KH?d܋E1gwʀΨ&)Kvmp4*\ T[pwW \qӢX ,R ƦZ@Q=)ԩ̶q5rjjcU{+7sY !0yۮ~$6m{ gPcB)#қn^09GUCĝ?|`9=7 GO/90䮦}PC;2jQDZ,9)lwB0= (M$CǁLI̭H[W$|_pqZ"fnޕ#*o=֪Қ37%E DDvmE;ѶrJ{(-n8l7WN@1M{˝]N %R˵qY琜 m2VBUƝQUeB\9JKc3a<)ؙw6kTD4hˑ*V~$ >F4} (0M,O N,>&ygv?PâtOul|e\KV5՚0,ІDx)b}|u_ DEM_Ѝqaflɻws䑵R;oJp=*LT}@eCOd[躙0GPq^eUȎC0_C&u2*Ҏҭ"t2l*G1>kNF+||5By:s fK9J\ѡGz28'} vL"zqp7?2Ӹokx< BFv8pYYlCM;x T3(֜a-kB)xN x.ᰐZO'rA]h蝝u؋tn{1.a-3'\ۜz[OdI>c|yܤc~$^SUġ#+ÑR<N r/Xtq~L"c/5j $K僬F>r(|f_&:wf{Z8?M_-JjN8k(f_p~ܫS֞EU9c$,yi7T0OuMg"<;0QNzNt{Nj٫B _ȱbj뽇͘6t7ᆘ\:PvѸ0x~0:&*8EʰP\mo|(#uw1EW z7)v0p0ge j;9L@|E~x~bI3bfAlT9R}H 0)e#5/d8t;4aI<-8c͊,FkD/[A7LdZIdw F X4HEM8 31O) Kﳎ=)9{[XHުG18t*7o. ZZ:`*̀S d)a$H\i) xjc+A'Ϫ."44lz%?fǍȫ/2E[M'+ܳUoiFo&Y.ƒDV*ZSӬ\O3Z{\ ?'_b%ZL5%þ2Q[kND,1XvMSDƬp}˨,JEֽZWbuzOzA?!,S6V]z, o? T я=Ql ՈZ_\tD*"[Щ#"4- @BHWso9O\ =( ~gT0CFi7m>,zV \!(|scH5tnt.mKxoh${vzTn+H̥vbE%88um.K|Pp<¯+,|oyv֥`~̷܅@Vq@)XhK+o2 CT޹ή ۝2ylqyQ)-˭i gߡ~1j64 -$pؔ+xe[\8O{)KSIi@.e܊p#ij.&|L.;T9:jtg0@[ gpuXu`Gg0ݸ.9ɝgyÓ@=)&[FDj }ٜ/۸%hFO8Vi75vYL4.~]N*I=)$\a9|pӞv&aV'QOQ32APz7Tz9LfPb2O NxJW'@}L <{`G9@N1` p|Y|$/^},q;Wht÷$*M_ӆqn!i=-~[4XҎ靾ujKsv>kKE' "2'1XW>espzwvz{y.a{$/ǀlKt'E˱|A< i1n\<]EW #<9qg"=> s> 6 ET߈{c6#|#DgndGe!W̦/qjtT}99o)aBU ,y 1viYm:|m7 j?H0wgQՉ:Ƹ.0o8ИOd-ˁ8}] :Y܉Uv$C9/&#ˍ:lcag{Zov"f\/~^tu cOJu٤".K9[?{t8 -;:=:ukR3͡Nwǁ-1=~X:ʛ;y8C:$b 9Fa>("Q^+yFUF,Yn 5r$s^$%c<:WrO=/?Rj0򘛍$UL/~ݘzd1kḐ(:&LM] Lb*b8< @2Y P***vѳ2h,ga0NGYB?^ug(uJըKnm90^tTD2vz*ag], 1s=RԄTikEP}T6*mƫg0bC 6I4wyޓ9RV rрgم C4K5fw1b,3Aşu~6{>J3Z~ѫ4l\$KL IZJ9[ܤ 'jU Ǎl-Awnfb!v? TT^i*ٙ2QVC,UrϜ\{c$7}5(OJ_>fx#k|g`d;TnHY[r<\4t2[W-4lSN[%W.RQ; sJZZ9l V)ԭ))}׼nku̧  bYMm*(c FŁ/x7+b}] E].կ, E;|L9ANJ[ +|A>jX#[ӊqZ`FDkXReVS_7M!X*^3cquqŨy;@%JbCaOL(ЋJf̴d qHj$ "(W"l˩sPRxc⣶0ي+m@$mC62Y -1}m)xNSC̋[4#XS4m.JUs"]ҥީ0?s&é{O\ށHuwˮ:bT9$|Dki0 )w# u& !3,<~&:νh*IM ?ku2E7o%xx;rnnF7Od:c' c㯛zA3n@H`'IkAʭ:J{pG\?pma-i3wUt^N<Õ*`$XѧQ*8?d c&ЎAf3~XkKUL9V;~!dqifwrmx &/M݇{ ڋv \ƁHֆݍsV[wvVI8Ȳ[^yC -K3!&kP5 'Q1ca潃>HǨ?oT0а4\$A'@<g!y!{rg1;rG[:l‰(|wE>ΏMZP_H%Ϻ*^_oE=ks:J_%yJxƐ} 3if/1d-Qܝ5B f|` 1/8r 4Ƣ/TϥE+Y 6[tyeXQ\l 6q}ݲ%-xXB"cbjJwT]f?bDhYsGi+W;E^v:u8DOp$zhG HojHt(7K:o7Ǣ|7?U)MS@mk J )KFr.q 5/m[ khdXl1!`3_:T,ۦ9DGiOas ņ;mHh}h:EqUA3ߜsQ:[V=_ En\/OgR*up]6d[,sOE<(-(-@sʦ3tD`Z 4{Qn,mƟnyTaSB#VY9imo5t~8D dX\d{X5]^ob:1VzuԣWes|6uq[`ha,/5'Rn Wuxy` id{oIRp̫6Ԋ{Hh;h\m= 3q/nw|tk !#Вi?{LRi\O77V^u='$L ح'޲#ar?(NF+zJ7Ⱥіͭxx>i~4ocVI _2P~P.~%LԯQI2vB?N Uj"2&8[qK?Ǩ1:ֈ2PtĻFF9#V-}]R_Mvg f,0>d]/HBeѽ`¶' 㖽|UzgLëȴ?39TsXy}נhX+  m-Kߝ0fUXS{5,{9/>Y>,aqdU狦NnGDVIHZMoKP B  gq44 []0 m Ts>wNys^ȃAV~ h ^|5{1>qtX(I*!#zPg.( GT;{kMh0 uCjk{E緿qXYaT0+:,ɑe҂K'9M--8IEcƪ?W9㜥^Y*{zm\NZ_r_ф~k5Nل#qbK'=) ;f?Kۺm;zu״ǝyЦ"m(NPʓzq1U$)D%nꀍVL8/ˮWk"y߃!Mjt.вӮ^jC^xgOmN!Wtcou֖bnk/@]#& + ^W1DQqGnNS'K%] Oer+˫""{i919RFt𥷓%6M(|R QO-k{ PHcZ.i?ggdKҀsQaB󋚧ҨgC!u ,P>˗vJ7ٶܣ :$N2ƸWk¹@]ߛ'N&c`00^b$[o\?@p|˶z}nbTk QBԿ,g}jH~h%B|3{bΤa{}{ѼIsn7Jjd?Ë%0"$?o}-e9( GSK}D(<{-3  㧾̈`N׾L,R82e)TyղqXg73avF1 W50>]jSUG7d@1;ښȄ3ӳbݫ2)cb7oۊ R ]`q[Y]U_h|9 ma_5NkwZe 9Zhh,ꋑ>titU:K 2t[lZM k%ۖ if(xODvDK4LPȾ8GVnܥOF;Nؖ|]'wA/û2,m)#WuiRr[OVJÎFt[6*9^gǠ]jkn ? T5%b:"-;,1/-GNdp1/ۂ͵}jRn(3LA߁gqg- h1K`b3 tC| SP&V_זuj$l5)Z3k o;1i]<^w ڱYMc/-*)'e)@<I%G lO T"ń1N[ϣ鮱4\[̃Qscp/M2)@ '2A{1x @r] IH.JTw㿎]Z6yZ),tlRt*XuFGg@P6-ҕƒEPBg,r 6zokFuq$4Z u78')bW=Ɇ-hqR6=lPYxjn;z(ټQW-/\:SrXLz+I*Qc&tkՔ,=}.-B+h;&4 OŘ-3C$d=̙ʢ8.7A"+QSl>$ݡ׆a،H EڎzLӗֱcYӏV%JS 9*$,?.-FW ng 2V<2ZPlO@9]2q!RB V 5vWAFbRaXa/s>g0Z8#ɀ ʟ:1ԅX9Ûo0;> i 6 ?2Gٱź/7eKj7RwNZkD!# lŃ{Pgf-H-Ɣr{%*7՘pĻ*%Jp4Tp~kȫTŊ>n j1"1_XaFh(SeȘa 6iB3ٹOM|f:< Tݞl𺌛?&1;^aEaӇP L0C/ D©7"GFn^̳@la%ń5(KAT_sf0X8Q;ԥ嘌BNZJiݨ}9, W_z`l$tC )x_' Qö?h\C!I?]^6ux ڟ)ljl<_# FZ1yDւ5$ꨃ#^kUj<9$ӄ0!+;I!~F=i F1T#|юxwFbU x m|kCP~&.F d't=\/#!3g_vSa qbSէM\BVdVX7Wť^ h۹F%OWsp2ipv$z1^ۻ9fTwXuu%l-_-xr7HPKL)I#Tǥ( ] ߑ+6a05s#,k[bĥW-_$$#!܍D=qd44[ q)޸|O.5cRk~PO|DFK53' @Ō)Wz{ p`o;uTmkd8rJrGւA"ϳ"kd-M)%/r? |-Ժ"9`0I*9WウuJPsy^7x<^2LʱS!(oP{KzMhЦA"P=]Ԯ ]$vRs e!є2ζ#HmCZBUz/eT~Gz!)y/gko)[p2 W_ ˆ3*19 '{ tR ֶze /q4|g @[E/8!E{ ~X>`+ں;H # GE`Y'[Yd93a _ˆK=rT/T)=LQzzqcvƶgYJ}w>U|M @Y3@eĔ=0yJ{"ngwM+sk4o\=1nVz lNBXنm)#; FKЭ7A~>vZr熕Ȁ9*~)S=5FW  ⨷WTpS; YߪNs!X>XÈ_~uFʍ@ưt _` Ƶq#ۣ~YP, %DޕELlvZ٤΍\?*1Wq!a֍oW&[L Tm7[B 2Huy˖B|x~+Rw0F XWsgu`G7E^Vf]:."՛;݋3.'hmasX [pv}Aco(?[|`_1h,m}2|ɺDCޝ$y'ۗa?,V~3AMx.md-n?&F8I=>! [GGRRac@D*5mwXO7i]Pt%~(*y+ۨu者7hb^~Q1H;X%⿙e:OO&c*sA`a6'Y/r^(F3N_xa1~PT^?O낾b.n4wI " Ry8sqHwNOP?KL׃T_}W(pu{9,*\ڎgظGR V_F.e'!e;cwSOGˣ\l~*n ?\* I- 1h6{ %ĘwmFH[[_ Ƕ4o^#OD -(}; _ӯYcqk_fl¿BYٰ CUp~wGcGfv𒞼:Vwsh^k2:xLM3aޏ_q+PDWU/7yh)OLtMPAAU`PM(\Y&o !&vb6|,|:c`L=ct &[o#7~3 y fjeRT>Zrr x`/ݿTbw2sJDRqэE ęXlacuq,| u:5au2)qDP<\)'%6$9BUJJKbG^qu]bg rɹp$!މl][[_Z_}ܨۚhA$%Jyㅗ1Yti^x(i=$=ARv$+|s5W_T IWX4wN29 d$< eㅵ7ˎTqU 5;׾8pDqUN~~^$ ,ʵrAsl ׻giK:"P ƽDzM*KmqY)nffq `f _JGg杛`m<7#jYE g2<!ie{^2CG&(9Ċ%Mc#6ԬdG7Z ͜Ⴜ(F0_Kw ɱq 74Xdy˰tc(C=8=,w[yL?fW<4 !/p@֘$* J7gEŽD6,eǡ_CfI|[@]҃監tX*iBuZ Pd=NV~K-#Z 52RKc šxEQ^l/7Ug”Ushq:K[v9KՍ>{ h-\&Gh2#\}\nR&}iwZ7Lv$)qa!(6pC~ytce &dnCY ҹoHopŃ=X[)dS.9e7w XiNh<>4fyvv>Z0̕~W_d[= ż2gΤթNh.A瑁w,Fe'UV${%2{QC}ҿ?~I1Ρ6'lri"DNEjΚ@^& K=W* 8gȎVdOq$tW` H>Y^m' ̺9ltp^]SKگC7u =CnfbT kƈՊ@4Vz:e@vJ׿pzOwD 1 d-5 wf$_EMzk\||j؅ID2 x%DzG.'Qd[XXI̩_OVyB N-lsbգ+E^K1g̮M;3}nb.<@E.J%ǐnʣq+@ }>̰F Urlcu_ :犛ʔKj  Q|"m-,y$}u<_b;5@]DT_&Yn#JLln{f`u)mǪbߚW~|*_SL$Cг"^ v~n551.(l)$&*6\I&*g- pC"n(n|TPִ‘#YE/L8(ڐ>R]MY>#̝LQɮPr7~ސENݲ6@yE +'ݛ%Z³5_s5dɛ/OFl'ɥةq}έ~f2dA gRHہŭoX6ӃfՒnl8gA+1'>9O} G2T8lngGm@s&EoXiUj% b6O@*-]^(XMZ]]ق7cF۴R35P~J%^[:vQ|;en`P+ )bJ'X;@ qo h\2%-Zo!D)Y:44Et"5=_{vu ?5j1w''9EY#zACfE ?~߹O^y |CD^8W[Aw@>-VD T< xzlbЬmDZ!s: Dz( a&YR 0Jl濘S=`ơom_YؗLˢhw@OÀ1}E|.VvCPxwǰm<´Q'SOssh斴HaZfmܭ _ `E m%dv-=P./@#3JW=|s0 {#ts,IFy&ĉ.QI|1j`#^5X5'l@z{<:RYF,6/ ov X5'iYؖIf.I`: V֛Ջh {$7'.%IWh,xv ;| XJ6kp5%$jgHƎ}jjtSF'I~o5+s΂zfE7dd7id?zZTj6bm6e‰b @h 0F S[^O(4NON ”Y!M@g+7[4uə-9f+S"x[1*=7WKqzay-iXFrl.:B$ 7~(%6aOW5e1ni}߰sۅC oa1[$i9u]o)[?v͈,wy_BNlXy2Cߊy)7ε&6t?󚈖Fi$kNxNF5e"X?WҶsG⣮Bg׺1SٌLJ"ܬ" YNYǧk5kD^B "1NnjUuqL뚇ѧ9eh-}{y~,XdD!*p{jЁ2ũN(M#жm&/ .O{$Q$#&D=`燂/;. TFܛLuہ2JQL 57Nǥ~AEH@c6P-eI_jኊ]WH񶧽\A杂)W[_6ipLoz@2+ 9E{&aJw2B뇃v f_c`U4No ;SErH|]9Ϣpȁƚ/?g8IC,M2d=PݰJ,iCS+ȶzG`VGp9/@vteC.q_݊=TƫF-Ez%9>:0{=Σ ӞE}f-:HP&&fc^+~:[)^k,Xym SBKjPJxxGz$\~+{IdiB3@}SS>sR)8sEҴSrݬQv3&mrt->2A' f>cXe51fLw~m[% Ma]h&p%L lOϋ )`>HڧcQ:TSwi6M c[WW0y9`^TW/dmډ!,bS*-o,//Zꏞ2^WCȓŦ׶u 3xJ(@8ԗFO_| iJx?Xw+ &U[(xסDKbZHAc^ . R=â7!W 8xO4[UUw!B[~} EyL.e@_jh7(z/:}$rP;۷P @f!o'p%8ji2 R;VJq,Z]}{ATΚ:'sASV&B`)vX9=ۣ0RH"J 2LGbW)_70yY qVP/tJr.^;z@kje ~k)3"$vgYuoZW:䋧62I(#fc_bc>'qt^^֐$XFasj&¸ qB)sYK+$m/W)(À\엑XbCHa biHu_M@7~mF;gxŲM霁P)/E]`jo1<5[&8Nؑ:U&mxk f Ysm,B2 ΝF>vH^wZQ!gR*IQ*ǃ”3~1 J/Ka}bMz;<;=}XxLQ@gϫbIhC ȕ \P~c `Ҿ""HRknܶ}\K\YX:b&)WM64 P^\@O)ӊ!3)$^>gRnk2 r"mgqhnA:j`6v1Ws{v*um3w.3AnAk|zH9$NO-B3)VR]\cw΁e(U%é9]V4v`B_JW0PD7O#:%O:{CPשq8~sȻ?K ѹ\ȧ0{A9&ReL''$\\|ykth1FFM2$_][pDS)YGuR(-tMUaSX=X*`k|prC'zm&C)"8B$ԭTJ`sWo|MwI] U(.d5GQ[<"*%-\;z& 06*W0r1vl=YsHX>UF}^rů- \qDon!8(w6[Uq/RWEwm_歜"ĹTP9͠&yҼlﯪ*Sowu^Ϡ$ceK:t-&]}(n =kQԨB e$$>^ZH˖jʑC祚í͂\kw)bT,Ɖ3>"<Y6T%9.=A0N3hkW0)4z,4off-lpzڐ~ƽw=u )ZRm(+udit[c084OkB1P)=ΠgjG^a3Ov3Z,9)lXI^SIMYυ"V|A˹|v "wp"[yÞˮȆ~'߲྿A?K+Y ?tD543У`rK|C@Ø),7s.QӋ2Jx60|X^[1o-I4m;TO+FQ{*;Lu?8X)ħ%2A4mUlXM_ėB==3- +D`T,ƉA]0A/G.Ǚy䳧Ƭ&^ &nG$g}~a%ILY;K=}t;1; 6R< l?sùYn,]YsmŲ·]]2LMB2t*LyQ_,dѻk~Gmv˂@l? wS,sWշy1.7؏+$}ּs.&E uk=)X {œ;$inco/jtޫkde]zaN ]k Ի=Z&%)()y@RyV@ĴXt lA>  *xŐuɈ#UF*[ldhgZY-n%2E{*N " vGXiE:841 d:JJ)[ XoH06oXג#46&ۅ\Q) *[*<%lc@+tbCXoa3-7~kFxl?*c *{y b|q,ʹeSvLmknsԖאExICS]"EQY31!DQK@8RT_Q}B71}Ik$w9Ѭ".hG5u8yP6?[AMCb!uᬏ17M0>!KpIx5p\Q3H@e5"ZxpWBL)Xe6\5f..sMUtUڎf9􊶄9! (ӱ8W<9:ef.LmwAnqV#{>;8BAUc~Iz)ݣ{4a/> V1FWȋ3tk(_+}2 I<-s}V.^ Vp f*]Y\>4x:a:t}}]8mwd;`0gT`ct:j686Vwm2;̔'USSmRQ0B4)S8 īy'C@45Db;%3} }fMF֜kle{-UxiOP¶,ADe;mpFgw^[aIĩ$qG #V-Yk+dq59Kn'i|ՁP~8kBzgQ7+,0`csEЗvF:<׍s&IT q_خ R tcV1Aq_0Q < 61l:218yFhL"N]q{ 7_l(- CTV.f79.Ѿz!_ Ve,13nD%J'ޥvɱ B.eMW܍XP7 x$ ]P|1z+~N<9nZRϳ!;BH%l~ nKlqHW-19y/HP0%s^eoD>{2)-_V!bzHȆ&4Eo:"_\|=63-.`Mx7VkSPDip +9Dy0 %LJ3w ?H=88yR`Iߠ8`Myʬ$737O¸cJk|uD'uhQIAgHօޠ/FtF$ky~+#{X$?(Od~3C[}ޘF޵*sʂ>B.2”%#=31zx@8pW6;h j&XzwqslQZ 4vWJښ6]!8ߚA{I2e:⻷5~Z8//;j/ &t E+$[5hes)V|׃E= |Q7`H.ƌlQvBn[>ØޚXZ@a] @r@ YYBFKz^db~'=k(:7 bۘڈz[DFѰLM@BmgȮYvz7UAT5j0>j ZK$ Df]oUt-;_Y 4/'TZOM=t7݂^a&ڈ1.6] Wq`PVmrգ,5'xu;&P#f٠oR$:Ҹ C3T3_Uۃ,Vm)݊6YxfM*ZZAd>W; 9t:?i72w;S"H# =ldYF4 kp*4h(y^E4bژԼ-pD(dU>l`PD}:m) qx.rl8Ιݾxa ,skz)thMw _A^2)iD6y9v∭ tw ׂF9zIu1͓`*!HK2K0 :GS𕎔e~t_ݰ^'ߍnSr蛽/e﷞E9{^Vk@yjI_Rณh2:X,$C'.U$~XdÌK]8\_z& gzIEj"~@)!Uz&_ IfU+rԯT }b:obvjJja˪43Xp9tV ~\AOW[p[!]Z@".V!t`7!+\\zS/"Lp}3F?&:y@ʆo^1" jI"Je(h/FX﮿ڪ- 85Hw5ۆ=aUdx#UMѐjSV6p075#OZoY8}+(͆>`~K\G(  276h$9$TchQ; ־y] ʊ$ Aio}ޗp7ΊnrWK |)&x\юi[+d0cG[ LӁ,-$!3.n 4 q]̠Ls`C ]6#u-%M.(  ұS|Gu$^{AfH8 EN#R??|ǸN׏=~wO'<k38 0*ۉfHoِ yfI$s|^:ɦAir#ϪO>Fv2dao,|}僒9p E9WK?Y>qr~ibYM9ͰYSQ1ziA)D? SdnU;41W(U6췬x;s+xmBhyTuP1lN<}|w>9 ѩJ w0j=Y|бLbUg\7|& PTR C4? @P59ߖ]sFMٵ)͆{#+,֎^J"S?@p|1 O&X܁M 9ocF:JOPqP%UqߪG=|!<$AC ,4[uwH#[h-Oʣ$b􄽫?|XjArkVff2rgw0Oý{1"\ a脥7 WJF?į dwMgU+ |=0Xg6 nU.fF5RLR/8{?5\ϙD<#^^+㭟zF{)3cԗK[w`Rtg]2'Wa&v%=8.TY1V/pܫYN r)wqt$Jrw !p1(hjn9[ gBVrchѫ*&02oQ&&E>.QC Z'#b2B5ּ l͔my ` J.T%$ 1mH( Azi&Bǜk&q[.yڞ1l,M(Yz>&yn@ahQvt XE漨߉hIpg+x(^EUG܂b$d.=5Q-j[_|(+o^:Ju*11d JmIf,sthΖ?KEC:Uagb/P֩t͞^ŷӮ EB}V#-p >%;r&(|DJs(;=@/dw*k4%TZ>=%;b35Aߠ]Qkq_ܤ|է =Xqc۸m B2+ }QeXr]+糅ؠUueʞ|IH5NТe*JǸtU\^Ofcx Ny!?a] äG\Z+"u)$FN oTHRj )~xb7{u"@,9m R=,4Uw0ӂ74u3,xwC)т:5#n|߇rUYM_+i)L젻 189k(ƂtI*Cg0OSX{pADZK rqR Y8;4M0b`iधQ[1cc{@gBE(] VS~qmTve]9`3Onvw)&&>,.2k!kкhUf4|/Yۭ`3q-5IMOqRv {yc$D΁\F7)aW]4\3j0昷O :xЄ eMv)V~C^;D=|sPTX*%Mw ԪpnL%΀GqD 2@ E_9 ue 1v* ^tޡ6irN/[3aXE8sq c Z;%qxO*X-/p\'/\issbT {ɵ 1x=%KoGTŮ]*|Xw v~~-H*e<d'U?hW_3 +eү*~h\9<SvtW5]s^ $jݘH*vNڙ0I䙟y=v(nY+h>33>J~?ؖD.q/j[~d=7n׶Jxȧiˋ )hw.Ȯd( }̊ [)VtR=e8qˢh%}yU~VOOb/v2_cq^!3d'`7c|6DI}L;Մ e bA.3ٺ`N 7m{!t!B*`z~ ΒO#eU%b Er6~p Ѧ/I(Qa $Y: QXɍxz 6^ zb}q4pۈ*a~ܠV}:n1Z0Qgy ۨrH[C?hiYq  !Q\>2 $ 0C6K#D&6uPjcW_&4?s4x$7o>u~6rc0-)0hk0B:^Y_8iySV{OK])T j=k3LSyO]`3FE$1 0$G;_i=J [rVd_IMaMBf~I)DZk*5TZ'γ@OQۃX jͺ;J8-;$+6d,,BZ!-HYۤ^V+t-!m𜵡:Y_7AQ|%rM%زVװitVi@ IJ3~MH^8<ᏚBZA桔 1}WJHhԘGՀ[O;T߫]V N$(duy3.x&KҠ?"xX QdD%kzB!"Uo%}V,j5,#^Q2'j5|BH,WUu2L(15BKM&()u.cw(qEX2^GRg6@+9,a_nut+s16%ɱAObK3''W _gߩG ]S$N6[_9Wܲsfҷx)v#MᲧUM Ό k'*D0DtsdT^uU飵0ƥj2SY熍%Erq6#Q?)N*Qћګ9ZSӸ2 p\>i|ô _z7DQN}Ǝ|C+U.ĭpS3,| %{6y1 ٱ<Y/QٴR )1ӨԈ Vd~pQVQC& j?|Ltja86֜PfvΩJ6𶩖P!ci;0hTP)5cm~ A1%p"Clhau߫`FP<\tʺ2  i)rVErʂEӃlq+vߙL8 _ ~]QMwj:C OU>A,U c;iC;%0dv5Q?0@jO{,9higYd\͍ ƃ9z+ )RӁQWJQǏ'nG.%B4NޚQ ~gCrǪYq]>r5 {$,8)KRyу͡ "bk>j $.Xz!tdĚO[.ym?Wa:I>@-_adb' bp9˳4Z5e{9g~iؓɄYБc,lLJY)ɯ:e:x<+*3)<{9]W*ZFUu #%qn__C4 gp`j !cCʭ\!/n#|nK>rjeRK*}쯓zf-6~҄MO`S{'vmYS\` .(R"=r7E&翶6NGֹbH5\:@SWsX(({BDy2L`}aX@q"5ㆨ<zqL#D\XAhr_QL'ȳ:р`I!Y 8WT2rI*h c펻 ^X2я`C9`vHDOu]Y¸M 6s>mP@g:(GZr"лͫRȧ`[?sj,)7o8Ɛp 3]Khag!&oo9I~Kr1*o@֒26/jS0BwYC_[+`egxL疫&~%3r?Cu6K;7Vĝ< L=w#NϪ-zU+v@er[r%9<#"nη[%iҶ:6yTgV53UGcBtso ArR)oݷ97>x ȂPm(hdے4˯_,jL|]~Ad ) qG!Hsr. C\@_Δ>p3ʳ[3|;F 2KeCXtC*R)=7lûDXG"dxƁjl.rXHEɲ'^}[mxPUNk.8Knfl8'8@nLn#̞|^/e #FƲ{)(r8@(f28fE*̃ Tt;m2l07 ^ 'MFc⽪6<]?: OL!q=e?rlGw+7x^>MJ!|0-%_y8 xHu("&4Uvys7 kcM pbF&t92fpuOn־C3R >BNXX+ӡU ҄Z#Bw<}\z{rU&梔Ԧڍm> |[.,b[ 3eQYIp%BB5:zR0D“X'H,nu` Lk Saؔ*`ͺS٭@)`Ӧ^4P*d03^2&oc (p1V,3~x6#5w@/xq,z#%Tbs*?㱿03;?Ϛ-2iir`T e٭f:͟_ZAhݬ,I~}^9v )& 1[ЈiUYb (+O[t3|Yx@ 6MuܖI ؁IdVg76 z³r/f`7=>  zRZ7iϖ]|yjTON0*~eՋD ),ꔻa'HVՙ)8¯-y2#ƇD UghhzVQ#ŕj[W`Q/fH.3_GxĞφ0{?.;cwi%/Kyq.fC4/'bIr/9@iFLA'PV6 _3an:wfl dEz(8@awBZ8H9x߲X$}?>}RMH1F,$ݪ́gCϚiO 7sp#s@i_8DbnBOqHiɁhܓnGZ4B! B;n& eᅁӰ0#Cd7s`p,.\ c>u$zqen^P/#Z8n1:(9k-z01 %Ak$7wc;H¹gL@I3mS^^K,MrK\ˢr]B+P\#Ǟ{ /ԓR3w}>1ÇA'uØqd}hHSFBϬlQ*%.5ǜ`X?|EKH3 #)E zKP mX 4}+XDJ`bxUE(&?OԆUk*>a킠g nrɟ{yyTgsJ7z@S1֏.ERgj!hqlhMJ%g+d{@r&M7VtK%&Cdž\9ž?iPE,&Qb @Y;Rydyv&Ix-Q,VukFm(u-v}7$#iSXŮ`σb.Sn?%֗E3t7otˣ"[g'Xdg8/^\BL$*6r,(IYԤ6Vlk jGE&ʰX Zsu gh, p /l$sD{Geg~â2RC`bv킼զH&Y@uI|dR?0j#}X塏AgޔPK%YzE3 l.X*Ӌ:1{]c?>~ܾO&`s״2}aϓ_~J#<R3qVty?9oy(IbTt3(dzO Y&賅*yV*`^!%>|+;4X8oOM_c4_&fxacjEmgU] njqqoh!XXqn _Q,fTTd"NRyumw dN>r&C\s^yA'"Jq1TU{ޤ4?˾mJ x7wKK0uJ3%[ RƓf"(|a9Jq[_q/r±T7F[',AzU)4!}a{ h~#雗a4n+<_D@Z o{ n7I+YM=F`Qn|V*vq\1( Fj,M5>mpQ콬qpaKнa1C_upd`/V[]d2C RN`2OȦ'r@9&S q˺17PȡH3F‘t򀹟#GhQ-Q( eZ_I pcҭ[-[9h?~z' o;g컒E2{qc*Ҟ/L L[VzOFVܙԋшXŠizo;p=Cv!S2[w*ݑt&wJ@zA+R} !'^O֝T˒w|B!\鷟C_SONuPt<A4@/Bmo AjJ(cN_cZl}ٵ]9*-# \o߀4%aBLOHCqpL?❭(3Z k/M}'; # IwW=8>sE(D혘koڏB7<\9_N t~0pJ+E3w~3s6ʫԶT8(/sWxOKTY)cDħ` $F %oM5> Tl>Q []]6p6(ɨ=a#=?!jCQNY"ϴkS.t9nnĔ9/ hAe+E"?]6,Emrjipy/3H!D#IK9 Zթ[קsbdRvN5Ѩ3ٝ i;3uL e@w.و?$0_.=е/duܶJopqXyʟrÔ59mI(䔞Qݙ*͟3KPs[A&/I}YQ[H|&4_ vz(`%D));iD'>L (2 rXt8uP)Krnx-:=FX'{@fX\otA eƼ[zkakgnYy =WtBx$erQ۪h/+P*\@r<=4WUxH `$o`΢^qE3HeKnv[- ;Dmr&{gt\wrbpI)iR5nY Y^ ?kjn{8]f@Kl 4}xf q/ibO-j*@me a ;HԂ#7Ы%ڳQD6M?7+v}#a;ׯw^V A^ @%}Vvgc7#bq|UlFZHR]b(XUiT~")C17V'{|RmAaڐKl17)O]0u$=o;nNV[ { ?T79 Di&W= @k8 Kc5 `A.-FyAӓ6a9a^tbh2DcSNirb|76p87>0$ËD^:w'K<) ؄3#ioBG.)WK:%3̻Ë oCĿ,IѲCGӍ]N8mpdAf3%RI0'eb n8j26zh/ξga`"k }. !h0ɤl6wzsZ'ԂLd/Uώn4ӵ$yBK Spy32o׿';sH0֧ʢb_эir^ٴGlΊ)AS/a_^pF]D삱C/1?Q[yQv}67D;/GFO L N9f\ѺQ&m}LGo2|?yWނg^*x-I\הtGΒ>/̭CzP)_NS`VgJù'}T>Wz!GG|R|s?" 2["NK,4Ø6Ï[Nx'Rc|4*1n|Q֦'G0pLe<"nMM):K-T ^ zJ\_f&~Frph% ˸ YF%h@ C:wdQ8U1SFA=R/E*-vF+J7s]*%:7hA&9lC@u 3Ug,&/"pEar 3<^@g%_ZLY*p<՜F' FI* ƞ -Cȗ @"Z=E,`eదC6pӌ5.)Av˛$x<7Ŝ5ix5:f/4fDW\cu@OXTޞEj8LWeZZ=\~f]}h^naN 2¾hqu$e e2ZhN>}|Pidhp`6"3c^9A rBfc5ݯ` o -$<=άܽk2܌R<ϑ|)!gݤ x&p{ʚ"'0}C s~@z Ty` tf ^+= fWH5=DmF1S%~bC-OEuSS(t6ݸ)9нYۙwLjlzs4pRJ醗߯ zAD7 $@C r, pL$Du:\Rͬ9x'p\*4rW[8F͵⚣wS'aެݳ"o|0dT1֡nΕീxm\WG8m (a ){P|,TJ8 Xl<}JD%\( 1ưzQ,)=ƂK'F1 FZVvp~^lL,OK2M/SRZY{f0V37j a8L꜠L@ ';JNJ lE 'VCEAEdl1Mߪ H$6;2[_kduZ\yRn<=6' ?gr>W g*hG+%^t~mzvy@&ejF:ܨ|-qָdȌaI5mn+)t:\rq6Z*u}EveUZqWl@C t {?.#$Sp:*GL@h tŬ|̬$ >)Nɏ֟$ŏg )W/^vl4k7m,y֚4{ĠHJPm+P?6`|lxw8ƴu"`͖b"ۙ L/֚da~q'!rP%V 5\_PHmV4l=E{v5he`t'Hw,ﳛmn!"Vϧ^S߇y)wϼ"q(t)':O-ņǚ㸚P7af6?ߍԁ!0OlqyD9(#)騋kK*>nTOnɥz p^~=>:b\e3-N'#^}P_6|'PK%*fI!Wk{KNo:Mri"ͦ"w,qe e0EZe 2ݪsL#!."-ڸ֠AhPm䇭7;A@[ ܙXh<[]_i??^~;߆0ݞ^} [NDGUȴUp \W۬$K6y俇GiOѵZNBeC PQ!SRZǬz2#ͼxnVԹ͏zcPmw؝x4BnDӟUHICM+݀s>UcN%M)]vPXB撛M 4"]|U:3oŊA~!D2!Xxir-Oe8ܻ f9[TʞtusP/b}D8f(.H.׊޻MP L?ܼ8׻H(NrξH%P-eУ=UgmO:p/w,x/O¦I9b9]HlU~-ڶ`4J!nikJjc!\Dz:/yU8X 'HB]I*ĴI٥(_p !6O!?G50q_fen3Y/))^al$7W*Κ&"!E &=wű%Ӂ[~L{JI"t& |=O^fQmjn+i[Dplwg6)/.hs(3%YzZl >D-UQ%`\A&"Ay6?8>Ss>4 ʼx3N$p*Zcs&:O1l8tY؛+]'g3B(Fiz(z6gt{t_ rbrˊ0 ̩])庁]t;l')/IC/_~!,wUq5"Fl^rN ޶pGoUv\r-`MA$ZDt*fPB38=dwjCYMme5⵽i8ӌoQC>. H苒2)O5ɗZՒg2`q0MKUaQ,4kH\0W(ՎFpV[-T (qAm8 J SCέwRàf'/n? j1mIw&%^79Pud_Ѥzaj:*t5WخXTaD3u@  o{mL>@AZ.CtB}'k&5]˓IhY0# CGѾ<| |Ig&3o.8%Lp3ʟhvYE`:h?dǤx (ḁq#oݺYrkLEgW=ucMm$aj hVCUШq!6ΙP`"gvֲN7_G;bF蟭G{̖oNM׺~EuY|c}Op:"o=ꛠj9+* [iE(fwƆ" it"w:͞+8ױiii$uW*(nwńvvu i zOKKbDع8N:7z aoJ$nlbdo~8aJm ʝBꟍ}7v D=M*0T=:ij.-E% f6g 0O\³aI*CY !( M)aqj-F=0YF 2+9o SoT/+{ɿ3')xqs%T{cZ. q63釺y_?XwRk T}/lՆ?B@BMveLx} $vx+4z[ vcǤ[W 4a+`9GenіJ<3W])OQE}6 kHNPĘԺ31$d3e6TW%њrMJPY jSUޒ/5)mo׽w'#YE\-9MV>s{ u^{ v$G5 TD=O#$-C}0<,enPl3)QEbhNHQzkO°-0HB>`謗dNt6, KL{U~0J $TYhY+uUQA1mT Y|6Vՠ+t Un0'%#nacC.9bffIŋ3/e!F _و"g>K}3 }qrタJ RnY Us$jZ|  ;7D~FeO-=)1k(sM{c ‘Iq]VwɑĬO _G V@- z˂R6.Hά9upG+m>v|~Rzh ̚Fט}j(7I`I3Oa珇 h3J/ kysZO0N{6j^)OFue|";{2تMxڰ7eʺmRCƬ04ަ!4 at8kMSJ~qZmҡFQrhwl afu4١ ]ijl!ܺ^n +DY`C,x\ckH1OG)I^lgeo`/r6xin.LÔtyB'\]|ee^3O09n1m~ExX+Ěp']SDܳhfC=86c> oGG y;9/Iu6`.~Cqѷ YoLy1{QtcٖAN&P{,n(* MM-/ڕ"cFt1t )@ÁNZ[* Jf$1_^>TtixlBH3@NhfOa7)N̦A>+Q 3/]V{}9zH^4QhTyr-srٰXI0N)Nڵ=<*d$3駅y֎ { ^sykEZV/x8V?V`%6%ygGp.5KbIa9֨Ms wke[LSvp tld r2fF+ hÐ[؜g(Kp`WrY:%K3R#r:Ԧ ]Y_u:$c7ߗ."ˆ0;$q}('M,FuC\%?fz.Y#nڢ[%a  m1kpmL ?H; ,ݠqQ:?h׾=xNGݡ\ =q##N0[ɩFgT&eeL}bw۹N$y⋙ԅ$k>i/Y1\m.C#FV7&iN{sA!Ա=S$)/LPP6mnzD4ZGmF@TSz5xqhlYNul/eisSzr]Hl$ކxv z A5yٍҠ"&,/™3F)cS*Y0A*U'r%Djpl$ 5(e D.-@]ug꒧NemKmd'Z1X]bgTzn`{y13[]{P>hx'P@^'w @di kbbm3^s!$~[d6vɋ#2 x!+="; ]'#.o..̏ ^~ Fpd`P9Hk2%3F냰0wԂ0_x/;-I^wNn Fp% w#⡓R5 CM/AQ\v)%+#)?[H>i$|5,(=mCvԟY*bxB3ŨK9ڋ6=@XLC)F;J @h .m+۶9 |/.-_qRst9\4lfy&_e M 3( ꍬ|S( G9ꠣ)'[U^ؤVZzQ;ʽ%I~s료Q~V'#Ag h{DDZݦZvbN^EYZ1 Sn&G:B|q8߾4taϨ{i~JW1P 7%5VMu\3ּf)|HeG滢Puj;Miڜ{U ;VA(.\k|Ogۚtrt>yPn< BdT4Ӿ-i ,R+EӠ("JVCR|BrU< &ƣС5 ¸\O`(7GڂU--'`uY@/!IEQ$n\ `iKh?fLoIqH+?H1e_+`YMFbwNA){D*fB*oWRV3Ҷg5+usLc4nؽCo<#4~TO~Qra:"Ȫp&Wy[Z|XҶ@8KfGō1.+1URao~֊_0#n%P%.2$ HA#wzrޛ4p *0 cۄ1N康5l13@X̏k!ers^G0~ )oQoV롡mE1i@FS(~Ю8 7uć2Q|{ޡBNTAo4`{6Br]П𭷭yf Dh< ?ޑ)⼸x .:Ta{LH̟HyρG{7ŽzWEV--I-gHI 3-!)qֳԏI4( .43㎡P>l؏݊\ް_&jpL<Qw(#N %?-[#ZA9SU}=7F!F뵖'>?pdcRр !z츰Znӏ~NX^>|MCGv u#9},sÇCbcϏ=z]f}SMt8r89iN^NJF |L~Wf#|XiNƐ倓4M+hD Pȶ6‡M=¹D8Ej L6ZMzoUbrw@H/$}ux= g9I˺>F +2 Z!m hnE o݃Th_mæCK77.z6 *ڊuB/SW_=rf"ejЏZ)]SNW@8RZw훖Rd!p(5FxiҟQmwT/b!|Sw ΰŮۚ9u،eD.[*heQtJe"eB$֥y%ߺp6Q=EF7.7O%IyS/X1⹏p:DC 6xRC'Q3wJNhLxv'%B֊g&)ߧC[ f1*Ĉ JfK#r^"2(fZZclGM&WAyUmnjG`ab__u'H |*(Ov7_E9' we #0y~c>Ki̿ 6|_& 8 Y/5Mv'؊/D] S*'!6)r6(vpPIk8v+ZRM"kfye/GwӋ>T >S ^ș=9AunJ]e3KdžY {X>$Ժ3pm(,$igPLM3,8-UL̕^[  jHsuK\8>sH{W-(^:zt]'s:9z1P6EG@ M덒vs^uN*cfX~D29Zԍbtki08J+^*]OF4UmVxwF+G2"W}>%5klYEQV~T,w>+hgw4r:(r5 %\+;8Pi2 #ڌEG!{\#hHn:_e@(`{M?65 3|}lf jAv'̦-JG!wT 3E5LU<$ƕ#bTrR6HϼE|W_lo QTo= *e|!ӱ'>r+1yn+-XR^?h }%%-!G >Fx<`2wuQ0WeE+i~R( Y Nn4Dv C̱'E9"6܁U[u.A: }VH=*C\KϸE ZeeDgG2 "ڵu PTS Fe@hb\sn,fdXz#]v&Gn7RZeO3 ?S#UCQ #L[O!>QbK'cz̪o7zD݇94'nj}:XS Z"4(=^hɛovZo@-J|ʰ vDm`JC1~$[/UOvxϐZ Hʂ!@4X<ak`Ee+"F &IG& @9&Mr&C.ҿ.D7ɒK!8zEzgWc2|R3SqB :) .^JV/QmR=\Y uuL B$=qOI%-%/> @ sԇ0R#YjN3s~>{Bb}SŨ6wEYN|!â')Ԥ*¦2^&A?-߀1/Zh~KGBY2 w5 J Z~X ҐYὫ+.STr mԆ4dV b$@JU u ;j{>irzc"=tW¢]J݀㠁xLJ8oG)F;IދeNf}bT#-HCx(*dJ9!Nf"E7t~&:b)lquvew{I?:R+|pTdkX3 (1FbgQRzR)HE9xeTidʎл{\bgqE "ؑo*a/Jv?R^a CDuױl]cǬ)'XwHFtDA_3 2 T#*wˮj 3{;է3.yKƢڲ1q(^#w{Sz_a"}y?C@9Dt/5^ﯻ(p#1"sFQx)[%:z rvy8/kLy kP^!DA}ױU[=н& "NkC3_%v&#.ion[)icLu+s(ъpG%HRҐI4uB$v@7l/Bf귉[8AK\&vtvPdU|a{q:VOAcjآPi黓Wϕz]pk\I"$6 >m5ge UPWҤC}bǺ?kbzz!a]i:{ *bMe#˂ʋb$۵`ͤnZygɽ8KU:lR᩟?(B4WDoL0( xiS'A$q`R,'<{4n73zU2%^Nmlbc"^6󝩒/[yPWyAntr%m6MZԲ3=.DfB3Üp'hKf~ޝjMd^b!ҮյA=YKM8]X(bI WC$īE# k0;41?'=Sa'Bfbk$U~I(Uj07Kcn d=s<bfb6pkQT6ۍL0CǮvwg\|5Ӝf;!M׵0!罏$ pQ$k8eC *c_H)_'W״nj`.D^ֵh_;,0 k RF`:`!qȔ0P|c}+uTOsX]PXnu]ݯҮ&JYa^uQqyO=5E${U [ٻA2 blnN=޽~bGaF^2fn_Cg #2ti١_tº_l&=aQؙ⣩۬()ST{VjKRf,ͩ= SH6$濹'UlP7[G%.%ވ,!5- fD,^#>hk-} {* cS"Yc8vt617l5?.s5p^MaPo@p`}r&lm̎cwD K$Em~ݩ G_ȜD7`w9S6)'p>%IdU~De" Ras0E4딋"1W46Ppt$]D"gGmUkd? Pa G8@ խj8sDkuU>r :t=аR4>!mI?i<] I64(pÜ|O#Ƹ`aCJR0gVXx'& d>"$y!4jRFޢfF&:6wB /<՝εiP+oyI 2п[>M6M g[J{`'b3GfTǭ~6NJVӜCOMu3tt JLd_URn--`ѷF*IĘ mȥ5;/m:(˕ھ_ ՟Z^FDPxZJh4yf~ o;r鷑Ť8Y?;N MudEv^8<~*ߴ򇭗XILAa&vWq/-,c{iMM2Җg/HXd-vϭI`~w#0F$ۡ̑%vuDiD&5Y/ao+2 zrZ؟95ӋQKBemXx6 (XYla(f FejW`tj?%cNgu>AUYUp1(d-^\yliB22 @z(,i>9[fx~K.VF48b0g&c Lh'oXFn)a߰+5QǸR)%WۆvQӫbh#""n ];duCؤ2Wv 5rtʻ,BԆw&S5F7JrLOj`6 %AeE飝,6zFk*|`{C*Y&zBU#(.|7o$CJvt+ec̝e X$j,0Its#YD)lɕʤÁ!?ix-kpRLO$%lHTtEc+L0эRUI/fbTAW}Y-cfbwpR] ˄2$i$} wׄ=KM" Xm[5u0}1׼'G\ΐq97|`^&4&RSգX69j(+QB@2L|av , v5HST 9! c]ܣ@{RdG vC Ѿk[,½9[9U9g+( @aه%`rav|I~u <:ƙR8: Au*3c\esҔ6SҹLts#IQkcw a|}Y&V@p;JK{_F2j xZ*h5=Do1Qdn #c}a.XMARMjnUWK'z?hfsBݙ-!uA_!-$۠ hm+[Tc%\#-lT УcO9: .҈ .C͞i @Eˌ:g 凴 %) ;S1%?ݘH7llH}yl9%3@r )[{cDA*rg*SX ?1rc>R̓19j@9CKFT?8pjzM҄9QU?q{h-\2/K6,\2/l>GMkaXaXċ1M+#Νn+h8)|4{U/0=?@TAP7^iNz;=j~43 #]P|BԨ2 *"ZY\rnf?#9țoKr52WvMm4T9e}Ѓ(apU;ja|ML'E Mrc7;?dHq 4( ۾659Vؽ# IוLs@B4n}ٞ,t:BWnf7BA2W:f2雨6EhY3͞?҃ե5D ZVQzC[' ۡl"DqN,fi)'7CTGkve^y,Ħw:2c`d3K}sSXF fR@Oh‰Ҧ=$kKtH<-I-{,q?Ex9ϒy$Po#VС)^YrBCjx_DwVlŀVkfSw`i Ӵx HQLST(+PUQxf^AX$t]XT]{X 5#]YCfAVb< H|.Rѷ56֫sP?Nm(]C(G*6fЉjEnCzY" v$Qn UApZͯSpNhJ)́ݞhD*oE$g*۹ݧ6G%bof`t9D+J,s-!V?)c4d5ҊJ.?>AF >bf/M𶞖Am@hʥk-1-M@/k' Y}Jݹ.wJP2Ema< 8 $4íOGdPg1ڠrC#T~Ys9.@O&)&1{8JJL*Ě9 * _=|@JRi[h4*+y1ymLAg@%@q&D ff"A?E1UX*vԎ&mmP=K&T@k->(tarid- >3*Z*ݣ+ۘu.ł|V- #s,YLm7 ^yDBCoaϷPFeb>tXYr<*y4zاdCvN=P"y੯<(OHNaPz e!kh=@Yjϸ@AdVi"H5us2օ|h[‡964c,o8d*!6YjXܺ<4~P6A5A*ihR6ۢQiz>Pe:A`Kx: UwԹmMiRL2WǦpDL&Dڡ|A;h |4 ShLt@90s]q-.Lfg`0 e59Dwe F@PʎûV0lzFx[7Ko $ /NMY˭)+ i~}AR~t] l\" wGg?[5þ<NOFD'â6#O(3V˄@:R̊]so=8mc;7!bGtk+nv%ZGTS8(;aE!f9ӟ2=hZTeu= pdhFxW>uZ:kWzh P9j&N˃:#WWU,*p<|Oʱ~KRW-Á ZIA(d'71v]5;BZJOחI f]$qRw)ާ0&Y(kپ6uK,*N% Wpca]h~F-jUټ ڻ/|p,c1Vv@]"2j2Q/!7F*"&x0hZGFm"JW7zr<;YP*4m +$9W,K۳A3Kr`-2lrXti?Ձ<<p! u ̽;+%G vo э ؎y%*V]zm7}pƃo5|ḅN?bPb Lun#PbhfC>ؚULu^e2axYKˀ% 佻qR HLZ[u+CՁ;|oRLo`'y(tco(<h=&6m!u3s|{-Oa]+/Ci{ɹ"%mvՃSe\8QM]0K({qzNU?&f&GhX=> 1e R ]tMcjHth)H@~K;x$SEl_ڮ)}uKYTe!>BQDe\"=_hV3X[B@]xr])nZSt;}xl'SmD~~%#=~v#SB'xEwGmUj;R"Jq}FqþX秥b>i}5XT1#u} ȓZU2x4Lc L3#ڳU]?1Sk0gOlbX8NhJ>bR+Qt7RfN%ɠτ,jXЗߚꢗ*]V]D3;#c)޳tId(g~.}7*Rw>BYUl{5za,_WD{F^cݴTV'>CkyY"-fēpQVVXV`g4"=9A̻E *u %"tHC8OA"I,G太#얖'WA[T"ZkQsOĺBLlRE,xyȕ,_y !u=OsUÎC;EpoSCv tO.^ jXբQ5#-&O& [Who.#eSCnAO +C+R}(x-6x1E"U{B$(<+H DC{B6ﵩoR=[[kzw%|>{/2fmGHpː JMJQ6 iSr  ?ax 4 ~F&L~"G%HC Z$&ڣ@`E@:BJȒم=9&j=F|ލ1H-Tfw j"݃Q> ApauOprW U/~?tǿ bm5XV]NXԡNVt9(^8sεLrТ;U+2\yqU 6TI,|L6W^ά`,MJZТw&0?u5Yd&L4WUTmiVg{OG!)K\b}yq\iϫwlxy=Ub+ #UG'J{tk4He+"Ha&o"?/r4&)BI{M'_JSAY'IUAFni)kx'Flx| &E^}銁| [~KЌ8Du;.ִP|R1 wEKu5/'ٹ1x*3u 7!~Qjş#$xJWC)cCcZUyÛ1v7V<3n6íb'xe@8e3ёNĿG9W+`#$E 4:< (BgI,Ow  Qxc׏;J¨`J ^!VVPHZd̺lm QloK#>}\\"G*xbm;T5Tި5~[0oe |X+Jه#=1U:.r{辤AU{9Tg- 4U3?Z~#6'<<`DGNNK 5lj"T  P x Lq@CN:΋3Va"bP3x }6$̒o}Y8T*&}A>R?ϭd?ؘAkq*a{wG]aAhQ̡%P| ٗfqi mO "%ل?hj&znm_MB Xs:Ժ#*u_%#eEw3K)u k=#XN/j *_3w+kLIρRI걏fRb v9՝:tj)Qttw,YH qcP~%Â"RbEuW ZLv8sKy,ÆK,,ise3cؙP? T3jU#DVpABddM3c n0EWK3z/+`^$ڳ)QjKZG 8r"f5;m.([ p~\lHN@@AE4k0byϲ^' Eg&0' \4:Nw#]vÊ)_PW02ό ~|lJĢ"t7mtWc纍p%._gwøbtBAƼNv[vzP^!c";7b0q3CvL)#,QăX- ?~Xt tv6)o.<-nsX]2}SL%s Fe&xz*}S:=cNč(!-Bn{KBC&bf_?dWT8t¬G#I5ydtpjSI\-ZNP6X0j=هEjW_%=*T>ωolX|lǁ0N^EZZ>Ldh#,AO1mg(St Ioy  d2G#S?H[Lǰ A;)DaRiWykpEtTWQ8aZ (ЕD%}D(K)~`-5Wjת+͙٫|ʻU᣻N)Q tFN%kx3/RsMvRIGl[ȝ0:O[ߓ0R.rlrHp h njX~_:/hԢxbaQ2ؔ)TC}?QV@0seybcfZ D [MsqّIz=wJx κ0!KNq~hlAow  'D4B˭BE\/ǀNʪTI+ К"Gd=% C-?󚘆GYomjt6hF^oAWCiTQ86o@cpR%'Fs2fdfoAoqQzh96R)v8C:ӳ޾NBMA"DNVi$&'O#Ip'ntyGҥ*EWA3n1r65O5OMjė;]0#ȶyyDuyDr짽L*, O.ܴ=!- C 3{[ wvMijza{/m Z u,yX7T%*{ a vͨ胇!۵m/` ?·L^6[teL}nϊ7 ^%eF0Th!) bȾ=E%m|F}4^F ͺz&/|t:Lx7"B u;_?9(~{4%ufщ[H]Bד;/[?&\32B2&$y[2߼bTO#ڟ;DbErj@$g!ER/b.F7ǵY(5:kZ667I-3Qkg\w19@K΁TۻY !pVrh0z!=Uqȟ.4mP&^Ò /flRzW"1ǡ{b2سB5'w$)|i0g,ͰcֽeVG@wU'{R2V\1w2 eknTcw "+Mt2e)1wxx"z]Qrj?iIϑڳW$o};8y+=y-"qX"N*6@ 1[\꾄6!O h8U;B>d߻J$rJpzMVH Gꫡ{@ze.>Z&|X~PpV;bonH0pq;b[)`7tثcmR퀟UepYaZ[I;2kof"L!bYIhM0 W*XXY kؐ2m>⦆4V#v+Af-n'S th 6MFvc')ſKTc C>o.樣L1@vh"9+TיBC@Ōj% ZʏEDfg|B{ G$,kdJ}~Q\]zN=neesqA`,p(k੹n[)v\N4t&.UiM¼Օ2̒F1LW>%qA;H|i'Fb.yZ0oYSu-}Xqpg {֫}ܣ-y I욗ڢ3}#Κ!`$;I_4>nuƸ>W~0?楀)죒$aYoƑĿSm3`ݖ^_Ow4y ÿ]`.2)+J\cF:!toz3ak0ºϡ1/z`ȏUj"rn)5#,C^̵@cDIxKӌ)wÍXG &r`[@#eFAV,Z59}Be,NXw@c)?=R0j+2)5hvlKRͅ4ie5AV_i!8k%?~kV$-N0i͆x O]3s9 swG!;94Udm4@wKݟMz&y1n~%{{צu,,Mp? LmB.hE=LJ6yPS ?Ir:Ihm6=9M,({SP-2F _ۺL ŤartZ {K^ϙEȸ<sebrd7ЕU^GAzU :=Baj%ԔZ&v㘗:cD?,K$s71ͦҨ(ўwa&Y/._rjv1ߟAK3,(k7âKP5'q6pvb'(ol>g'JٻoO@X hǺLx7+Wg]D]?\'z|P=Ξ9XsЯx=aIE/f IRj7_Jڭ^qK,s@vǰ4Ƚsޮ}@,=13( ½[8$]d^,+KLaUޠ7(f(RPPǢ, )y R̎o+n[YyS^L/)LƸߧm^cJ'Ҥub[W"@`ͨypqˮ /}|1n. ]D!X?uT<擱scf|`>>Z3j/V!8yח+X/ z/Gm!"wڻE-r[1t-I5R\[9H I(ܽKY, s8$kp= 9tHΡHg m2w ŭ^S7%m1RFk3n9˅ jʇ)kA1/1'(l/WOdҁ`8*ʬ/֍\<DOuECe[ _?$Mρ姧H_kŹ`6tR4@ϊ {#l h7톰&۟'\`ZrI*^+Щ=*%n=9 7hG_wN晈nPV >d!٪ ۦ]IB3Z;]qC:M݅"$~8_|l@`frL y( =+WY)m7xga#a[6[ƄU5 n^wra y%;jeI B#aFu :ް;Z hj ]Sj\6驇;Hh s'BAO wbeƱFO3%,K] tϪ@ lZ0Xh!MBkޘӣXf1rv4(ܦY $^Xވ*bhf0НGR4]Ό'@&_!_ޔ"$#cP윜 '~!S KB&l7JށbxO: FgG @:eSyX:N],y.C>~R eܥv :%#~ȿyO:K'TScfW8HvCry816z&2:eS -ZjQR?R'; F~lY)iʼn'uܥ$ݵ^0:a;noMEK@-W;d:΋Tz?(,m}8рɊOml D[@>iXO'[ ٙ5]]>N\]T5G)QE3qle^}$w [˿ۙ ~DʳhESDA̘]~8rE2X Wg+֑"j ‘xWUb}Ћn5ՔV8f3\ȿ?#kp{]f6H5NSR=t)Op?(fdӚ%H%DFk nMi1M "Acju[ s9"쌫'|f?kNOOcuBʂ]5}]\_9X%l6DE ufk< wakT(Zƅ+c`bՙq0=iէ}IJ=Pes2/NѦ ?92UI3 @ɭ]S!$&]Vh5]OFt=0X#3{ԒaZ\M2yt^ٯ]xuTyJS'}9|ϙ=q8!#SCCC-!< ɂUq-6 +>ò lppG ; ћ;,bl=q`/2i"<.w)yY=" M^u<֒ oF9x uP:h#ܿr@wR] .QyP<.؀5|ӹKe"&MUUBGSLPK / T^s<\j2C0̅F gxĎMhhaKy;ehm6^^Gp*еmk])4aJȄ8atk2}aa=N@>j~>zop5 d&:sjSIl*SM>`ZؖYީlT]zϫZ4/;M}6YqҦ\ݘ~7X~넇ʑ ߧR旒%Ti9%s52uU*䙀Ω:^~0g²\Z 5[t(E%Zvk+Ta*,n+NL\1oxBV8bS|k57/Un:+c=y hO׉dQ_9Xb҆>k}bGt Dt(΍dX$XC 0%ڂץu@iMSg>hЍ7k-6TN' ҙ3i'_i1sh&A|e <ݸ0>UvȂ/2U]rѨգ&5]g~1mV3YEj"  }TxWAMpKVQ˿$.D'Up(+p/jȩ;Z4$u\Nj g3gjS!C̯^lQ̒?q]"'s1@nyo0$%hG4DR 21S;<4S+#]? {fzAPzdfr5 B[W Q;Kޏ0rC4Ғ׋)D3CBjU a۳1MV2Vh5)\{YL˲xq*74h=a¬>л<ϳ$ߔQ '[{="^oYwN8XF)IdC-< $$`i~Jsc:N?EfJƜՐx@)${۱ "/(v'~D%wn0uhrvvGp9擇j\HMZ3\!w&o]<歐,sY"f A:.bA uJ:JB}EG/e@aEJį~ւ%pl\+'w^T4-z.*$ La3<ˆaC70JX[01]mOa>ɥ/K _,ZIET̖e+ReT<!@?xg=/v|&-[,[(pS>A4$Gc\͹ _ č)XO z3AqnPj)Ë@ў}%?fk!]cQǒgFHթ׶s-E ԙ%ߒ[;*/}EMo} #j6u`}OrErk\+v;zF&+TVIX#tp]$\}ezYihc 7*'kOs@{_5sl2ssCH~ēgGv{gc4ƋXG+QhڰM /c?'r6Z, &Mc|S) > pQ *4 ]_qf2koǴ˝s߉[ 'h546GZvSC'B0Fe|ugHR8t>N57rbi' r{t5>0cb.]sV4" YQrTك2⎣UUe~gȢe\o|ڪLE:ӘjkNVK|\p)t 6/J0\jdtm$LaDhNn?z+*owHca",AI^ 惡=x85tژNf8f!ãF qbճK4d>J>llg2P[fBR.7ʪz&z̀=/D887y᳼|m}δZgYp_S,Y 6KǗNkť% ^XBzcNW8\j k0 U5Mp]elK{[ZfÄAab/Eiw(>/5@@=]nK<0{;ĪtFVs;ks1:Nݶy,g+(h {BaT<fv̶UO@JO~C#$B:p.U V adyk](9 K0w Ĵ-xTAHeav~-ַkρ $X4.ɸĈtXc6(CIGͨIJJzr-78vJn}04ĭK%C/sDf@23ĝlmjƼt % 9kt=($ ƒ@ ˉ/Y#:~]!-X&fmy[:tQ!W6MB}| &RΓ,}FYU7*HfA&@[Wr?{Ѓ b5{+THS+Z?8.e)įqk{{ͤ;0A/'*|X~DjDBQX$W3)ځ=ݍ>u|WA }п"`CAC.Wq)Lxf= {Գ`8A>raӎ{=Z}Rj8`(;G1bb8$ʄ5J<1rcD,8ԖGjęwau˱t#`w =}E8추ֳc^Q/V*ٕ]AMpNdmrJ5#€~s-z4tGQl$BAb9g ]n2p6c@ 2㽻ll(rqr%2B XŃ3 +BG.Xv`>t}[KOoٕv?<-@F @)_>4 ! >^n?ӌ}1WOdlSH΃$DpBVN+k}yv].(;ew>80m fQ4lKa8z9ߝ8|tFȔ2Ok{oVYUp0x"Ѵ@VSx9zilq#sޝFW']C<,_Kf#ﲛ}>b* "dNbJ# @N{O)k0eS7N܆O oKJt:o+N{D7w*#3H٪I5e2P[ys֧˩Gm;8dq{y7paM,}im8ea +iU'u{89VGelRͬͯf.0kEڋaHj g;ōc_,T>b^:9ǏY()Qa+' .h!Ez2t^*BU'/*SHV#r @(ՓIyGy1s֯uבi 2_3Z/|3Ԉɑćtק=pʜ`CBc??S1uز҄-a+b?@o^Ez.guo=?A~pS "!mvOQW i5k(WVOڄF% ː%ք]a#I rx2JuySxFq/ T.nCNi{2* RLȝ*;!<"x INR0FlfX` _̉[_.gZ:)Sw5}qwy~1Fܢ%gCK5$9/n*}<6LGZ?rZ ٻeSmVNˠ(o߾+'x1K";c)"l;;qW븫7S')xUN^7ϴr#wf,!:.aUo]8,)eO؛wn̙z^;J1c7z؆b%P ?RQ*Y2qa8KSRH Lɘ5Q#mJ "9o8[hT<s]7'Ɗ(J(781\`y('H9LAXuH-' (Wo-p1F䨻O~WOZ”lBxa&-rbs@E%76;KB>qGWPhFzcnh kULғ~oMd [.!޾]좛-4 `2[w"K e^B9ٽ}pp vHj_[bDK2":_ WMm&8lS킔W U9i"Q=5}DվA~ZS_j)A%<'7l)v#r:ѶsGRT`]n_56)FgΨ#R3:ծͲv:Lm|2&iJ|^DE.5g'`]}L~gaJ׫FW0$=M J( }i3b1w-`HtjDFe/(=Xyґmd`} 9!ő,I]U) &_I8ƙ:^E "+r,H( -ȹɲH3# :h/nr4HQ].d8RǿJ.j4/2-hN;3 Ȇ!ͣ9uESїc$;h[Y^7$eWXpayf^D-j:2{',QI [ʿ Iہ _1;65첚\JM|'-X7vFNoe0ϯ Jf 4~ivQS|N{"{ 1; tspX?KU2V|0赆+B^*D:vq'v>~5| eg-(_!ͳ.DtmncW^ӜmW!.Vd6Ȁ3e\{W*K4GfIuqθ@[#Qk%e@tމ[bPrҗe26E7Eq0e3w`_ CqJ4=Q5 COC{;im j32褁@m!bfl!$`RM(f{^@u޵; l<|/ktA #f!YUtڑVR$M%\3 UNǔ8_kv xΓ[W\D"ǪC A r?йש?XJHdrF3/NBCUy/3L F 9aq1)O^-wW8'-e :v 3>_m|GlU0ctJ۲Y A~.d&rEe.hz؈gWbR|HDso4Re?.vݷ 0;Bnћlˍ(t3rb8e* ~pޓ2Z$Uʚդxh 5';˥VÎ9ldDAe\BjP2iL+v բGV3k0\a:bU .ue| k>=҂ѹpfx+5%V@2˜dyRAFFʰd 5SxGk D0040 9CI?Măe>(uHu{vA @ JIDY+g};AASlەD˖}`8Mea WZl3 RT^K/мH٪vx$1{0r㣁C$C>\ 73v_Ƀ8:X*RU7X7eO8 jKvǼnee؞FAL2ɩ0ؼ?`/qKppd\ÀXCaj>Gd\`O9d/'RG0{JK[#J^x[>Ijlhsa.m (+k-HbPEWKW6观B!pvRs ~هtWqMuJTnlXrT@ܾ\4 ;hw/VIj`|HO@C!Q;0{aM& V#PȫlZPNE-vk lo)] R=xs}??"cH),211 M.PTc?5nԛ3?Kv6xq NOƐNnb)GH.;ЛZ6A*9a'LG9`݅ a^(BOŖRկ&[{M5L_FX>$NVbca'DeXc^o9^cxز*0_剒lZ4#[M;bI~WMiZdb>3B{S% t/B'i{;PB/{ar 8J~Usɢ*TZJT{54 N"Ȣ&XiiPF\|>yuxmqLO]Cq}1}hA> |B73ILpRB/Hb<PDaG%g1ꩡNe+֕1ۡ׃ےnkaG{hX%K)ʢl CA ^Xȸ8ٽz͡B"DW^8ZAIڎNsXFfXB A1\$E+>X%~Ҽ0ϖaqJ"LYD<ǑΗ)~.a,Ya2l4r|ue9 -wiyK lVss[oo)kP+:lf}'Ù="pU8q/ Sr)}vdюe67ekqًܘ[Ua,\#K< <(ʟPhYOdXf嵋EW_ߦC󛘑7H)2z}scEݽ!'F,P]4ldQ׸?#̫Gy4MkCsmjdN\'zԞqT,Y}n@Syp4ἄ!鼊[㹙 FŶkɤ,w$.uh'V\ [? plYX|y1O:X,uEc2gF0Q4۵:{Qq.p1,bح5Lbh2 !/ċ/%3׍7*`^`K4 oL5Kg%*x8n7^hcOcX"vKj`㡔Xx,OPo:=eyP3?|.:%2a^M+w.[Zjfv,"'vquno\a Qp=(ĻeM\|{nFпÖk"kֳ6HJCNb#jF!9kr$nm*D@? pCAOfh#n&%sòLvvʊ  w(K#>-#VmV^Mu؏kB_~n*iSa-Ϙwd,$~m.a[Xdo08\NKQ$:ja7~ }TU.iMlMY}8ˀ2:#$Rp]{C /"(g3*+$ʼno切^O"9v!Hdt,&#]Dkŭsu'`YǑLEgM:? PAkh_M5-B#LDNMҳ˵QhGlb3}F2,ٍD'fNi3U4Ws&G+PH:N6nO^Ѧx;8a>x߫& 䬮9kbmQSSEf_0m_CsbN}k_ꂧ&x uEx|ѥl<ëtߑ<ݛՄAOb7,2o:[\`%G u[c@TJi苖-ó?  J;ew~+IS"a/.,Ɂ$I *:@漭 $QE [;~qcqgtn =kߚթбn q raUMr_CcS|}k.O? ]DTPQIY+3&8,)% 6oPpLϮOv#ؠ" ApTYCwTxl0b(%n"fO;SY\QOFeYMhZ~1U1l 4gRyQnϽֺ~LwG1n$=kL:}FQ/^OmY8!v=E1)H0v]]6XLR7cWe A2>P~~JrYFvEJVZddkwcL YrӲk`s|SYWx8e Æ̴m x'ĝ۰n?힡@*~*.A4Th: HmxWFŠŊqP{]G%AUIu )iNk]"kdExmaZB@P|'2Iu@bܦZg>=`te2$6+f׺?fΗ/SA'(OR^b(<*v (:YӁ*Za/J^"lwEڄnEXOZ[(+=L~DVz_{>P˦XaYG8Vh bhٲ*6#=ʉ""#/MߘE_$dw,ȴʯ,6:F^!#ˠfo8,Wg01<$5p'&\_cB9a$چoQonLqSW;sKӼg0P&kf63=٢@KO{CRL? K*6`ݟHgSx(㏕FV)йZx}%ܟx&B~2  G!!HkԃBP=a<1~NyE.DԸfG¬!4>;yP҅?MB/h@*wvIeܺi]Agf|!`EEWeZaY4 ڈd`y>ӆlJsmnR}S-W#4.9jbfW cl"}B;liO]0hڃ\z%X-FTo[;FߗyTHnffJAT.(ݐ]AI XFwL:TQl!6SXW Xթ$2/䶥Gs)H 6QP+<).-{*5(%4QuJ]VA=y?MI )k 1M4gDɖe?.Dj%?t:Ǭi“ °+1Zo~Xi{ 쉑3bHT5hYafs|ЙKYO*] Vp|>I4Leq2 \uIdJehOtD,Gh4q0d8G(2&Vғ/!/7D"DuMRڏH)`^ҚuD@Z+y;̪ 6^%"ҧ <^ܓ?!̋^'ZC@YMWS*=ҷ{'@؏* d'7=?t( M ѬI1Re_&f?wrQ8 IZ]6Z:4/bs>Z8g)X}>FtO Ƅ4&Z1)I aAWT:R9Es#% ~1Ss5GpbΠ'7#QNi`̎|":( 0•"1IYYЈ\1iONA_JJsZ>h6zpJһj%c7rA |- ]4֭ߘ2ֺ@ r*;w{ ̌W7^WyL^v~4uh!h2^9'GԸڨ $77ȘE"@.Bwؾ(6E4_jI7;9òeDACtA J);%2Yv%x;uP@~]E,P)ޣk_s(' ]Ӳ=4xcZH?n(t"yxވ5䛽԰&c~y]"9Lsr<@ytoo #lҰvyk]I<庀`68J5#N™=)1A'jзŎcCP*W):?wRCtC؍%5.w󲊀A19S`lyUEeh>fIy  JDzz36 &d_\[/p̱B<" n/R-IF͘wy-1r,-r ԑe,?xG RĠ]fkA̬Ě!eoQI:O8@)Od2.%Xs@D7M Ld<YS K+_,:]7' u uJq[e: YKjLܠ^\Qč,Œm 0;iD|GeE_P-X E+TpKT`W)$yAk%?&L4"c`aX-[m2H3~|W}|M^dDa6:͡"ܩ67TBNa2js7Ui.-$ *LOjpLd f>J:O]Z< ْY *vi oΓ6^j`\jxuQ3\`->ӻd\ɏPvbRӓ o*B‹_5K1N!=٣%H0H>{xpTo 3tG|Sν~*{ 90 VSM\RkVSKާ/Cj_bVBp + =HМrqDS5*>]ChbOuebD0*e([r.˾uy0͡!o΋RHiv09L!,,>hBHF5M~\߳[>4c9uvǧRxc>\ v*SD"p= "-Բ6'a/pR9DWAYcU<])0'g mf B/S4k1==2O4|N2jPLy]m(-@3]bǜԿC#X$K-f״̏p?֤7Ç۫s?-i^RI_sޕႼĂ=REp\h܂L7ON睊 B@Mʽ1-j dZ޻ G ڄWƒ(:z7-Rc֣ ]'w*;5c{@ؙһƼN|nꐩOy!Vb'c [ bc QsI3Jpܨ{S2!)R 5Ci 阆IJD0teݯEsA1cv\F.&Ҁ8Co:apLh: o@C.ϓ?_ry<3 ff7I]ԣՠn{ PbժL§b)7NqCR/g hfEݻL[F3-T2?؉!N> / ?5Z9%gD3yBHd*<:$HU)Dhlʮ/.R"|wPF-[$@U]nAY:Җ80~)aELP_UBOL(CGplB)u~{6QbDdb/y+hKkӜMV?u$E]v 'Nwsx0֐G\9pWHrL 8g3{yx <߀#wC!ͶrࣱnH!@K:`$@9_~j=ӚP*vsI=>̓&=( -4ߍ%yy!M١\Nʸ%\(|NƐg' .YܫR" ӌf $4[" nFIEFK_lHƶz1j!8Z/+X"O0 d:\1f~riXօa%5m# ѯJO=GZ~Ti9$su ZEh'_|nԎc(-MfgR/QոD y(Q{-ئf!MXQx s],K7=H‰|܏9S\q=jxpQ r?@N47L[b?sc߭d1^DZ+@xE7% >l=\4"p,guV3?ZMkޤ[|PO:ڙPk7P@q7L+[jG'|kPԅ؆.4?.|dˬd1>F~e[JڌIC0;dǖVygXA[ ȹԍҲDmc;1ß{l΍lzBAy6)O,Kk2ĐRҰj;|aZ'd6SϒӄaSV}UޢQFA E.C=EMU[wʗqL"-p$/uԌY9ź+ ZV^Ai@5,,S{K40gU׏ /x#` ;Q(DβPׇ"5 ]Z6{˙/y aIn~fP rUy`q:x3PqbH`H$Gh,$Xc9:J{n׷M"E,5vYFvV,/!43_){[>e!>ô^,G)2Eͦ}gpOY\A/ˢxYshаRd쬫" ǍXP{ߙ4ek#Javr.a}xFs5qaIb03\Ӱu,"ծhO0`6aZqZw9z~T f)]8iM@jsjB\ Xz oyU^Apbe kgj#maSNApm㏜s꽣f$~3/KjM)|cύ֋t![o$8^4"n#L&q 8& |`Pcfa3S_tt^o/4`t$#$-#ŊB;"rڭ*ⷷ-8,3\wM M5A% K \ X+ ^AQz-#9`? >+(b Q}'`vqfb0KYPt#fŜ;t*[eQ uϠR\ sDPKҴ_Vk,@(x!ޘm!ԌYJ)BXkcY/iR,:XӡZ(LEb&$bMB]U95;9˅Q^fz9Db Zpp-ɼ+sq~_DtEc6!hӶMP45_ a22˴m)!ۭۗ{ :#ć\D\WCֲ,1ֿEB`ʼقWG J-W!p#*‘CDl*Cb֯r#C[gN"ٷ[9 'F+]y*V#>.e dAoD;VYok* lqG\w똼E5n4ꓹ-Ks?r>l$s Tpu\pbՁI.(ͫMXY۞4q3+Ɇ I5_6~#Coat2da;̭it$`NaAC65m˲<\D-07qUR./.TeL2Hm/pw|a{x$TuI|hBOK~D|y#] @,/X]I|2<ҡ\E ¼Pmqp}Scd}פJ:MK<rp͉][gUX}{,, qVyz5J!cށeTZ\. ݣ︚DL1CTAd{b{'{zP*;wNm%ƚtguHKzYB~So?sDg kʑ|Xot.\M&Fm_ Q{D7VIeH-cTjC}Yd~whu5Y([!F^úgyZ aDS'eEƐħe+ˤaeȊl܅*ʪd谏UDp$.HdR{+[oO;FiVy  D[&J" ˤ=Ԗ114ĨVeu|CiC#}Y$c.+6%Z=QQ2uwh$@ra,MI>@'h3x*THdAy{y.lU rUZ2SHq޶2۰PqS jz;\L`B~1\.WZ%rl Gx`܈D|ex,u\bL;1vcNZy+EoP;I^{ }2с%(J \VFђ?x5\4*/J|gɇYsGkLzM|4q5m'Gޞ0JXv&yOvwGBJ^~%iop&]1Fk7sѢڗ.؁JLATr;;~Ɉ:^9WYqZc5%?g&WN4EqX;u.7WK<o,xeϢ`"L$&똿nЮ>W2$Wj~rU<y7&@)9iP(ɉ) OsCUx-){[[a B iYl®g詭.h;\pug:VSoDEbnKbE᧗+bGI\č :MFx}9$g %\YS!?"![TA_ehG/oy߆/|V{qxjK\޾رM?}^1OqNHj]WUeD|Uݬg<;HW8S"'\}.M-(˃I>҅*Kc\¼׎߇A\!  7dٚL`' ĻO1Q }%]۹esfm랳.^qi16sK}lG>T4~tty{/} DDP+(.NȑgҠh|eF3睳1LL8"aQٗcׯn"SI(43%-w'6\'߅/NZ1J]qV3JGݕh9!J5F t;^%|qk^xd > HC a#^T̍!J k>=f91G<[6球lI[BK/r[{=sQ\=_CvFi&65oݣL &b)~: ~<]reCqdzH $@ӣllY "s +85%rGdDž{M~Nek^ChX G͈pz[?ԄbDx_>6YylC1 6Q9ywWaK`RՕCϼRE)p#ZOmJbgugJ,[cWg!M.8Xm1$i )69k"WKW$ey7+b6t0mCO1 57gFk1P:Uhd2@IpX78Ĉz{fIA?jxQ^qF/'q5s1dm:58;s"z=:vD=]lla"EbcݲHnn4jU~!$=;.kd#g'㯄t8P{s1M²#N#b $z=m8ì!'DA_ &狯6R/x%ѻ=Tvsl˟њJ}l Tv{;;a^\v8Hwv3fdh:4fiV/R*r'Ҫ^PV .w as2)-tRz»YyxHjE&sg[gbׯ)dӄ ;-pՑ_*=iQfSj XrC; $df7/T7kO =x|kI}bungv?tv#< \VZ*:DnG]s!__cmw_EF_cihhw ?'uV5"8ZAdΫgi!ߪ6fH [1s*PӸQ/dxBy9Cq) E8JSWsD]e8[)^r!%!s6L-)l'|2nj\CuMr2ǑVhmC,^ + B)}Z%t7NڃJ[|;nkH@([ڥ,(He$ou9lhzh X8ƕ80REcϖ_Z5iGR|sO20sZ|U(?9Jed5:e&ʡ ȯ D3ࡈlL({ķ 9y__[l"ڗ/.@rɺr42,h`^gO9*ln"et(1lp҉?j^ȵ(H`ofpYfR3fi>i1{@XDRH\~   Y*5:ckU o(ʕT߲z[1eT 2C8M%"wr5FMnd>aYƵLP zkv=i-0L-; r@u]y6NbUE0P]Z ZtT$| 1GyG=~^ nK4<ܷTT J|APb*xw9uq&5$"W.z0؛T횰t1[K՜=5wZ4:W=2Lc/k?ٔk82dXF^,`$b|ĜZN_qWnE250?͠z,_WLgAam W̺MXFWGk7?uʷ5,:.y+[+Ǵ9sŞT48?3p&T{4Ō'o,fɰ(2v]eÓ"a`B U9h4)|*>Ճd2C!$_VރkLQvF\l ڋv &ܶCxGVc 8"SS"C"lpUI/vROdeq4EBg.ϯ'=y~~ٞ:RG~⑎fme ^'6v~^wDK vxiz2_עH7XdNf71;ɕ'G~vlqa*=yQ'gwK\Ca IÛ'2P#'A~Kpdvx率wN`<]> P f8ƌXh7ל^mR':)LlX '> &6O#5^67֙kR GD_+-mEM0O |_c1:"I]{I8!i`* KS^$u&NiKa>iyS3bk4ύ\^%6x`Xu(k=W"藔e0暞M0fg~p03a˝TVZ<{YB0r~OA6b˸kH-\/wtʤsh;?)9la<[;Χu: 6UvDjiӐVTReN$unc9='8S_NŔ@e Y`Ne̦*E tTe L($xK?ege:0\DLW?NZf[֝WLlӘ<QbJ{{Gti>5ݔePU̶l ̵˂ 8JO^t VRm$N1q*a|i/uV6a|:.?/t>1tui㋝!SM}77E(Ei{ ICY >M j0ma=0ʩD @p e2.zNm.`lz8%uZY.4AgE J#sF n :cbDy5/u+fd@*,8_Fe3bmUrމwCQ|]G3ۅuS-T+GO,{Z8_x?3ݐe: P`[ Yx쨜KbwnҶB>XZV'o(/[swz<3j@V_VxJfն:+0`ɍOđ;Qȅz:290CIm&; #I*\ ;vHKCEhԨ F);wѫ>`7JS䜓IiſT7RDU}r@"cI+]xhC XhoǴMhŖx~}H]exOsQsB9xa~ڜ;O`@ 2:[wXw_AƯt\ SpVoO+ M[Y»KG@o f,| Ɵ)0=-Ej 0Lxn'D ~*6t_WG'[ :SCTrqn0`b,K5CCv-Ly|?e5&KW*l|O29Ji0!Ce]dUcHP 7:x|@0 x*Le$qK[{Ǥ)>Z5Ռ8>zj*h[K^X#K]ͮ%V]G,J[MDIտM)68d+ ZPv_*cwiǰqSYc59q95_JHn٭=A@ .)L[dZq IBfĂ9Ƭ+$ WLsEY41}#FVb_2Lf=9l''"rZJ C fT@^=P(CbQp/WmR 9d3,+^ +PnLב\zO; x6VԾn@^pDh/ &&a#/amEQ(^NEtCIW\DK!e6; "3ct{_tIL(mlJhP> 2A$/]$Gl+2,ȅij~\oH02\3TE%-fժWX?(~Éb bdMKI- _oB _?&W c/H3J46] h͌zEn^B$[ѭÿm A7:`Ծ&<ֵ4A(bQIЬU&S(csX/i"R,k=xn 8G(\߲m$MFE^?Rq"W:!UqZ𡁴MZgZ[⃯EÅU#Z䬾^h<R.lt eCsΖ>xЗ5{ t[sbXHU=@`/qm/ƿ8Zlo!R-@iww''/U-,K{x-Z@ gͱɔEe c 4 tqE/Q㽿 v$8<_M9YIMMDTq'H0L1*Qօ|58Md9 OBFz0zHܒı;դ]AS+ @ӡ8ܝupBaC ƅ  a`c fyⳬ;fك% 6ovF( 7#2W>{V),FEV I`CXgq-}Waݝ|4ةA*w8ZEJ |n퀜EO6e4HxfGb=OyXV2ى$ {+~Xy%{`KhpV'gySs9 ^ZDskY9ۈ)DYhk"?٦kjnOGkG{2+]_#h^yv+32-M븩w J췜Kފ#)%:4FÑ0;,N>"1:BӖq`m뢇zxRӅ!k".$=J⹳TU2YA*fJK3er߱Q(,%&h# AON6LS[t'jyHQ]P >3N1g!-;~]{ǦH{ss֠w cZ`j׹KsYKqWH2cys?%+-1Q+ڊ`φ.UA=0MbQJ5/ N&b3yẚ|LQ{)%uG땑$4\KA +~:#x.,tgs ӿ-yXdb74,S[#I =ΕKK+v(Onлtc~@ jžl_IߔNѬsꛕq, ' k&x/mxZHr\ n 1ưʿ)W,DU׿JA hkti]M,Z69m+Л>M5N-8ٰ>RԹ{%YpO~*fa1ݝuCh̳'NۣlQwU-!x!o;*Ht7 y£m[3"z/|swdf@DN?61`>>vǞ1 1_dFx[*]sNM /&q&_:cs_µ_X^ON໦Ih-!fӟWB˽Q2D 1~*^q)~u6bMFb(׮P\-as\v<_|o{]:u eWKIz a6V:ƪ7YdLL45ʧ6O8)i[JTU!Q_|ڤYt~1nXnFӂ"b eԯ%,۱ϟyaKw3hGn_Ök\Wex DV&Z_)5p]gi̗+nPMN:!YѨ룩K(#asɎcڦ@T[OVy8⻤'NzmWec3_8I%;VԪ Ye<3olbFZ?4%M,u5`:4wGA,7E @u{6Hm< ?7pt|*!0ќB78ֵ)vIEmﷸsxш@aݢok D`JX^_9ehzlbK ըJ%%ksVBcK~vw=̢%q.pB.%[,j8GU"&)\Zb'Yḋu1߆ Etyt!:mG@juj+\JoʈIjJvQFavB X@\Og.g9:^CBW= 6}OerC|pq5ҕZ GIpѓ' )Lή^i8j~7.B=sCؤ'.Hj&!6@5)g7`:{P^vDQZ ~#%*BY2#83Brˎa|Q7iy$hmY/(,U=i,E˖lyk&ɅϯܡW0lۋ^H3qޤŞO8lZ۽(Z= @4~ǬY_GA+qHhFջim s ?I\}EՀ }L?k-:U{>Jǐܱ>X**B]@d=#8 H'UC4#~HcqQu:XiF6@a 3BJg~`q qBuڛ+;j1/f]}zpWȣ@!Ƈ:eM!>5ih7uiuvA}K+䯪gH Na @czKJ ʐ o^4 2Zֺ#L+{S׊p/q5 0E>C֖ E멢͉ "Z:TQV&ɵ 98m$[*%\B_dEjRRBXV[!&UA> xQ9>b =/r@+̚Ƒ7 2j0٠3cW3jbhWgRy%-/7{J*/= RO[V}Gi3cuRo*wo2)./Q7ijmN?Q] AŝVŌ#Lw!]X}#~>C Tq_L_zzxa(|*+GFCsU>zC,O˯9\sK`=zUw(qH@lBæ-,cWe*!-/ &u{2=g`>s-ʝ!_!o.FQޘ?=#aȫMZon~wH[ Ϛg,DV] *Y ,lͽr8U<{I?tvKYgwɘCgUϦQ^B (8%3Aʹ@ǔp~<R^So?(\zo6rJfS&p AH㪫`EEW=.W/ps9Om@D_*<;>U$^ 9 MXg#.EU=4ű *h"H b3=PṮ'2v@\>cTl<4TdSL~黻~EĒ~ N&E߻J[ZѤG@Zr^~\i4_d${@X~l^w ~3rʨoWJ(Xy^-M3P״qFK[1Z#u:Z1GƱ<쐂X SpqI>CA~<U]wI0 Z]F3ܦ5y᭄\+#U]T_Q[&Oqe!@}y>񍐬t- UkǞ`R`]7}y.n4㢠 X`4xG]o!3?4mD}~~=ؚ*RPY7|!ApϜq?xDJۘ|g؈,>6 j]kKgV 3zvr8[ږG"3*qgFM%IZ 1"M >r"YEz&iF4+L+Zny;ZYiVo@ :"1r Br)={JP1B4~v}''`%q]iї (!["F A0Stϐ5eRvxK44)IS0yȎ)(ȕA*(FPϰ9t5^Y7wosO_x*jqN8yE6p&a&p Tnґps2AO1^$@}s2]C4NӮ!v~EoEf!_3aOh#?mk=:۶#^<-Mt/׬GW,,ʝaF!$I08thځ48K xn`k oAy/?PmXk,țx}FF,9 p|^vg_k)Cpkq("g[h i MX!*'dQ]D3R%.&p\XY9)oڟa lSP,o=F;;nyuJZnʕl5=e t3̿3!%ӏ Ȍ .Kj e}^h4ύ i98?Sֈm'iɺĞS8CاJM*8ix Qe1pyf! oI_#As_*Q2Y4%8 syq}/Z#lmJ6mgKEV?j[%C#ک8M)ULygIhK6|9tY>f=ukgayop$/ߵ+Y) U%FT4 zz2fm벨Uc y\7 |Llo̢ 7 GN~K%#oj_3+㮒s)tLF~ٽ|B* #u!:^ N{?$ Po˒TZ}X˜jq[ˮ؏C “gLM dH3Te(ܭ(b]%v K?ə~Dd$ݿj*avA`j| y #Uh\VJ(f~_eLtkM.ơA/32H}hW[G%Yu42- ΢tWDbp""Qqpxwdm8_U9k@l<;֞[4 !S)P I=(|%(6M,yb\NQkRk dF,kCIf\g lH|꿑x9QYm>|\MD!iD9DP/zJ,oiz v6m AE~mn'&ED x,5N l! QdJFŨ/eւ،0j*mѸ7-]٫_bP U@XK$0GW T.yG)>99\[Ks_sN SX&皸7XbG8CI4FLT05AE{l";=430Dm6(X 5@n 7E+z/) ʰ%DJJ6]Yt9\1أ|Le8bVDP[`QD3FbZ ;;hU/0P}m(+@ס'3HHxK݇iE ~0N 9 B֜#aYO)%),WqhܯPWXrrH֧g/CAI `m^v:"@w¨`*>30"K}-fhb1aʟ+DKGN}O%S(w8rfLjtJݹ\1T'#C (R^CV]vOi`/RM(9%/iC*^:8A[/*&4W.UJ*oK!xgϝ>׃ĭ/NDoKy3_F0DƲs;1Fۨ1yfN%|br- &#FvfM~=L#Ҏ-o׸W /;)큆B+94 }Aݍox~NOג+9:YLk#.KE #Mh5E _^lu)vfoϏ?jpcYc4hL*D/tj+N&GMʃs^ǖR\"hYOE^f'9hoq~$&\Br_a)͵_^}fY%Cd&5 ֹb_uJ E򺊻8L~L!P[5lsCHG1s {s?TB*r PA}uiM5 ewAg١K2 SbX3+b-U;#s44!nꔙ\C>3r)ExLb j \lD~(ٗ"SL:>lF]Wfͦ`<+#K-W bDhϊaZO(os'=3[ o>Lkm{ nӂ=3=euXlc\ ; 8 -MT51\3g} \h/S&_d]nb^PL4|rO®1ݙ3S)aJQa +v,9tm ic5$}`Vn%,Ϭv4g{Do@;eh#C!V]JoL&?B4ԪzLzrMv|uw[C_R%~=O? G#[)˻'PQh8 L%fdzLwnZf/Cb"qdirtt fOʵ% aAI?"HfA2ECh|3 x̩A|zBR0oz8,߅(C+O^Fz) 奫Ixix7{ 6LV헧\2 d:&3I9v(WHuܺ4KRRbڱ@\gJާYDF>H ů-?lyC-[%u| {U?ecvM~jE2 __hEHP=l !kG o?3]-Ǿ6xh"h5#Bǚ-+~#jlNO촛xP1=9XNL.uT׳mK T,ve J[ູeᜓDF2_^L&}ب̱y>׉I 6N8 ScHY8Ub[@}.xoDՐfتQXñ5K8}ű,{%yy&k|R˯X6f~*e &|P ,f@h' W qx:BEXML"1?Rk I<!l[E}j4pllŊ>ss;Jz 6_;Yvg\`KFV])8|㫋1j4bώ"Z.(4 ^w^ ؜`k-m{MX5lSQ$;I}"12“?cY|'e3bƄ$-t܇ K4:j7w`Wχ3O̜q#y6.aJ43Ao~=_3:>x9:=4ZC|pX%jk6hRG$r:HblYh >=F޳4xMO3`:00>^}A7Ơ^- l^u^H'J9]KY#rY'F?)mN)%czD%b+tM %դF2njB &"md^ Ƶ!&Y~ ͱ g3DuᖂP3$x`OXlk67Ά2k gP@`?/J5~|6$dd":l/!~nLR=|ŕH<ĩ!tQ>D|05AOdBƸ2Z"Ell(;d)m^j*h05ۯ,׽$8>z6E~Ǟ@mρOkۀj^&$xtT$MDž(uRy![a[W`U+׏=)ߍ$d&wl@XdPgE׿m 1mcS [d@?}si4p$nHHT| GbvV -;=-S\_]'2kD_pX'ƂD%Zw}5 1 !mkX5..Ȭx55H\-$.u+ەu% V9,LkV'.ܴs*{Kx&OGg J;]sk|\IM{aa.\`o W-,`F8-Ѧ|`~Bİ:65\s~^29.igh*ndqr*+ '|܍[%hps5JX=qY5쳕bn>MK{A ;D3|4gaҞBnr3.|P續Q-Ml R2dLw>ttcTP^Z649+J|2aZ/744B KڐA==0Mob!(29(${ dʎگAz)ҋ.ӣ&f+@lU#Mc>z.G;ʱDeӀ9quo~Q8!DQozaAczfjT0FZ}w . hRRcέ̩_w%u'IhBvG,gu׍Gzt*D]WLx}\Gm6|WCigx@}P,@Bz&>9&NZjh |N7 2vJʖU)X+ >)fP,mpB'l,zf8xTr }Yh/}#ӓŸ ӥJH63TKEYOկ5( CE,*{a5b[AC4(2N"SBWE`B6js?ӣB}fZiv;B9ݒu8LuNo̤:[pǫb T2 k)㞄P_n }g ī5*23D#^m7qオA)͇ @$B Ԋq\}e'@nU䥱 CǶc62_--joO+RE0 sE@njf@> Lаm Ä %9n.L.S?Vý%7隶۝ھKnQ=$4b`4Biae=l'̤ߢr>/(y,WFFPv-}'ʎƖ|#a@%>+.ۆ@c嬸בr@{]QN8 xFMQK㸽Jbcwc }alH r)6_'  Nf5~1Gp*BA4A աot ai7ىxp"cV4 \i?aBy6p!Fxufv]1L1ܤH`nbh#CڲOPOX䂻j}BӃ{e~QX[ur )G~)PX^ NU=! j:k,2=>CT: YFluKXS].Ь <4]Prd JSl%+PFWy1>eN]f!DJvX3K9G_1eff%2+:;"r5x^gu&<4;%-bEt_;Iw]jyD`Ecqym'̎(Cn bQXhWTsmh`تmrk 3}ʫCN~P;}jaFćF82 5b]9|epR)mϦ^4u)WӖ8>pc;y!g?FRNT ` V &,xgZv" SQONR.-A^kx %EW&Y;bEx*CJA;G*&yܕ86{w(x0T^ TɞFWǠ4* >08jVP#bKfzot] sɦӋm`7R: z!B 4]ѷ4 3Dx#`0:#37o2$Dbjul d9 ?.D k $Anja\՜g4wzOOpbzWy$+xAhEWTe٦t2cz`Wֳ:>P<6mo \կ;YˊHL0#`v="~II_Ac ?J-`z[wi-XKԌg0k[tc₢IEdL\\ wPd^X$* )cSH6쿁ljN)Uzޡ  Mn#xE>NDt_<~@eu2/ TnzVnWovt0!cqytفdy_B\:]M^7aDSι\[_ @@bc> %Cˍb`l{VRO๓KWF^A EE]&ls4|&,~6&Uy}E1Ey/QJoZ)!=X !ͨ/% aӠh چ dE[{ Fm$H_XƝ޸²\ w[c/5>NV.l%#T5tjfFC%KqeᐍbB@cY}Sz j孆1߀̎/1䝸*(ǿmAwlsMޔ*W&NPsXkFVMFNLD{9G{ (˒? ^5.Ժg=1z(KZm,6u;~1, 3Y59﫻qڷ]+mxvT?îqdt._rĀbQ0w߬ SGGW$,-;1E  TFE7rOiLO`ѨZQ[9.zR;TZQ=2#[7+'҄d;;2?͜>(ofyE 'ITNjOedzbh=VdfTgccurd2 'y@ė Mz'1ePjv($sys+V xZHG22gD@Tǒ7iQ=*N>{;F-z$NKHi'jt߆'ܩl@yS5ᢿ:I^LIڦIƐ&)fuaz.KK~ω^(@v~ V׻.D4].e'Sp3Ob2EY0H_>#@z%`."\O3afg:N<'_)(g8 ֔뺑 ;ow~AYѥy7i?0\ߑ^Mnq/;yJ2Q^TQPuMr޾ִ5Vw|.:_. <%8~Ҳ8I#m Yb >-[Sap  H! -Uge+.2xߚ&Ey2 f[7M~zLQ70 R&GPzR> ~ұuhqW~(JOv<1hZ>'n [NCYha$Ҽ[+oa' H}Zr_u]+%liPl1,d@ZGlD A*(mI)…I`fhAqQskN+q^͛-d81*h ;4C{4j+9w,'5o?ebw 4M2oGfm{[gڰIŷ^yd؆i/xuATT"5ו3U] &ƸR"kx ;g;++prw?˩+?`Ca6Cc.osy,Igg'ꃋ e3GH7W?IaR3k(7/47 3;[v$儇)6?RLEtsr܍i#*ڕ!۵'H9N(K3ͥQDjUk[HTIgL5`@j-S..#Afhů鿤]OntŌG5=QJTrއzHE5|Qb?f &:5X!T.Y1jaTW ~"y姪3 %֢KgD̕5|}v?mc͜omgUTڀwHܪ 2$fvvNM{XbڮupҎu>|Ҁ`.F}F r/Ȋ6:d&B56/h5rkFB89nR1x@Ƞj:!OO^QVzK913oBS+f9 \ynse e(Xݦ ^V1q ( l<8eҶAm]) C Fw#|'De%("q)}\>w8C1jh_w&tq77 w:E0yG\aXn/d&-=Ns<Н,ɭ+\k]CV Tb$RIlo9OO"`&T90+8\+$G#3:hInϴJdS9Lmtÿ& a2}jndsWA7ЕoufK.1nLģcQ}܌2|x#OTݢ:LJ /3`Z 7_x염!r+'ѧ0z{JG4Zv+.ٜsU Fƛ$bNdI;Prc~%)$5%dk{ WO-/ikU &:m˔DDL83(N`@~S%Yr~bH@" V Z>DZQ!~0?v+1Jge_ [z8}(u b}*J?mT営ҧ{P&ǿo079ߠ4ʷm-r+ϐ,yB2赞р$"b8";[!d+Reʗ1P)wV]flV [cs]__/^$.Siq&[*Mؘ_v *Ց7Km}ȮF~sscҊm/b p!|qdr\/Є]MSw_)z%.QZ .0 utg/N^̟YslCz(PE NZ vREUAQ lw)UB2H/6Fc $!l}ТƝETՕY(facMjԆ:e2ژWl'"/j~apUAB`unan; 3}z,T*gOFo\!>sd^<2[lGԢ&1=FG4*:{]f'粇G1 Gog2 !V5d=ȍ<"ۧ&_Ť03u2yh"I_6q=z$Xf̮okB4I*uOCN7 "L!4s](1湟}<]YK1(ن֖hGi5ON3}I3xgfه.j 1A \ uJvT9PUN?EhGA Ė>2׸˸'ӠG1q'mM=e~?V7I2j8݆0R,{^6{^*=e_ם9U3eHYLs.]yv< w&z}!eNOt5鎴*&++w0B V)>{H.sk.OJK5C@ȌtߝF'xc#м F3~uUw[ kf6:WmweLH_{rS=7KdR"T$/j[C=PKBca}bB_9Ȉ. C Eu yK\b Тī3haaGI˼G/)t8lMt>>k<ʜ$PX&e#1^\5&'7Oݱ{r?nIQDr)M.yz=s#`{1foQQaMP N:%k5q~89 ".Ŷ"?m}b6Ȅ{Oy?ivb|qww>Ox 1>T!aSn Fid7lq1i@Hg+2 ݮe4],_4>G-j(ZV* HЛGFs1˯mʌxGwT2 nm5rZyq<1 o^$*{OthBX-y4 Ӕ@{/x\*;Qea㜧]V(I=A㣲nza A #J1W4zefWu {bIq$VD\Q~#e%?tѢcJ傶Ca򨃙Jsr]QƦU&_8L =r΍0o@?+LV.s&htc@Stg>4M/M8Lsp=0!NJL3:v+&aI;A]sHru;+f?8o=?N`")I )@ e=qD%BxS=،'^kzY0e%ԛ!Vl8"z͠lh0m AfK2-8~j@BYIJ[kwc83+~Cyʙ$p?mK%Kk]?~{$?!||"? waD7ϻđHVWUc}˃Ib&!|1oϡ5ĽO/r1lܾ(Zn\Y$Sn{ang6F~K/|}^"X8_ZAJ&,\ ?C i4 ~y4Q `$6r4]"c``gϣbDdC k`p-#heHW V7lJp"d[K܌&$\^?4d%P{: Yn[:r>H!c<7p[!.:e75JmhڑI$8@̋mcn,鹬OFR4537(mjppx{Qڅd8$m_\>yTLAĺOoyq`Sv7u˭\bQqb^KLey.mԦ4Vh^.]#KzYYQP >C[c$הwݤp-N)VG&(MMMgrЏoY8^ U]w"1%"H˭lw{ϧV&!+,S+P.sw$``fAsԚVg'ɔl3 Gf-T;>cwt5ȗ$NW^=xThcZhY :юcCS3J<fD^]VE}X>إ} MrmNC,Ҧmh #^;$jUlPi˄M,M-8u1vw"\iޣ\3wX ^J)D{nNI2BRuz+ AF&f;K)ZJyy6ad:'rN[!?TKIGLhzSNi1KFbl @iLu-ccWmBfl18(i$/xJ+bZ[i_z6n*ᆒG4+.x P{|P*~0_>̫q,cmrؿчc}vk? B)OUJrse;؋uԽ-vį5oRV +N%A%lp`Iz>lriȇid-8.N72RI-ۈ5k9vA88  [ne/p@>$3r!ݳvqQ[q*ϱrEGq$a N eXt"u8,^F8=7C) 1-"7.R Z@8V4h^P 26>0$KL^=.*oF'vrpш.sۑmũЉ}Nʤ'x#LKh)d&dF^3]1T/<Ɨcl77PHv|oY1"hE TGLP{.ncߝ{2@_!IM6NEFb|K/BzqZ;eI:ؚ>LE`&@A"lR<@W^+v2 *8G 5|RAOsN^?* ET`q~ }kIp;0q^jicMG(hZqoFS=\n+U߾)I{Aծ䗥[ZRҠfz uMOjcK|ʎ`E4͊=t~v D}s]tJXμ4Y)L>5W17ytRO6ݎHJhnt'UPf5Нp"H{]}W>߄XB8%J,|L" @($6KWdV"Aa d>FY&_梱N%E!mpE0'' y~cbsσeeAN؋#l WO^}dNvYy #vw̬Ϋt\.&:>S#h2o^.v]|ip)[zM}}[:#pZ5S+6m?ee3۠}F4Hl΃>f&SB(ӑ7h, B!TJs&k]& ,Z(?6fL.(;XSc6,Uw5 :ݰ L{RĐ[@ 5 kt^ٳ7/ljoc&n`Kh,]8޴#Wk@Ꜣ?ܟHi'P4.] +|)2:lH7Ҩ=hH^= .r]zt=C'%~eQ!GL X_RQz3rEnF[l Wid["j640q9j&̚7'o_aL;V[0 I0 l~c'Oisg) tV ]D=Ldar d%:-NQߨoŅ)֒震69mS3%Xi}j(24h*3…~g L&j6圠z[Csk@;@{<|6|Fm|W^7^f5{[ 4ߓQS6P\1o JMӞ/zsIA t Óױ@g<=+{bnAԯs#\:/VLAV%ogTBv?BKjH>8_z1n[M{MWDadv;p Y %F2VeraN7mz +Z2z[a&[g{/m|h\_$dF X`aTh>"g$cʖAi37Tn*RDV6?`'ԣגjs47.{ɹoKdf AXL:\*:gR1z-3]/sɉm7u u+J&N '*g 3Kw!i |;W8dwzPlYfD}X^csnfKH,ނn]0  H~b BBHS n'SDiY nn0 )jS,@=/)_ψk fV">U:g{+j;):N+?=#5Ű䫯GKxN潟O 5X4Qm üQ:0WZB-1yaWkjt4Q ԮZ(wKCSQrpG*)[Yx=Fx2EeK4w3XC bNB|Ʒ r6''.6 s,KB#ŠNbҾih㷯i73+X6޲EIuA᰸Es֤I%)-|gB\@|xZq6>y4XsӸNXO>"O%1~ ӟ3+zI<LUŤGeYٽEIdg sK6PSٳgR-!n>@fń$@·:Њh+΃t$ߒnֺA+yҚ8.;TZIP۵eї f=:i;hR΋^D<ܷF"xVx;UJg^pڲJwϨoer,Җ%cFa¶+^ux Oar&WZG[K >{7'. pbctQ?wAciIЃkQčLjRGjZT;O߽Xu_+WӾ@KI]n__QT B)¡TF5N`/a:Q<#zDF4e e$MKEr͋ o]2{ nc5fGGÄCl)e~, `fƐ ڐ99\0,Lv>0!д7-&DzJ+(O6BQqd5ΦsF5Z&BjLXy\~%EfE*vł5ץ#D^Kb_~=ε +{KpN{bܑpM&ԖG#-G^+?w;^h jZWѣڕjy$,Ū\!RڹAeivY03(fY}DsWDV ;wv9<1'Zܒh#0&'}v-w'`>AC(ϜrF_ Qs\z 1Ŝ"hGd]Wgu"aѼ_t'1`s=edž(^qYZO3 `ҭQ#%㈀|$x82oƥeդvCt{{"_EKpawYv GmKoӋY^K%4nWP.Ⱦ r‚xz&E7?0i/J_ׯҵaLU~|I y殎\  S+4ޘW,%Aj9- E[WJ3h{%eK4 G lţis:>wp9٢kU2JB3򗩾BB &,P+g//~TTms7qww =EP9Z2WXz F K"d [Bm;^01/D&v/ hOsa} ABi˔ꑓE﮿U(!xy̙BDmnhzgh+8v9a{qCFF.CN>C@"U?Fyk_+^?8MK~sJ LQXk!E} !I{]-_FdK 3`Ci^*<.7:D1xw\6Vz%=D/3iAMDCEPC%aڼ:ST^X4$8%ĠnX]}]Rh ^-쀲o'B* (=70'G~Yk8+[zP[y:TNH)1iܡrtEʘCPy*YIU6 %xL6*3F Edz_0 #N]?Pz| e2 2쮘ATSŔƏӀ/ yR̗77l//D]<2Zb 46 Z!GC,B8`;O5M g) X2bD D/ hqܟ3R6 V,!WN潞6p;VP HE'պQJ[vwN `,JSùio㜆cKȨiq'J2`eyG>r,fӽju;رLUJf#Kxk"\=N`u+4[oC\#M;ڜF*cfx.vk{&}zl1MQhfl LnҒpNBzNw1VklߵN_2ĪE9G B=k 9NJqUivC?skh4la=#W(Ѐsyw&z&q7N `O;띎:LH'!#:oN&컅lrrk25ٲ}\ Dq˔D5{P;ڏʍlqvI4twƜn "KQx ECPe1yx5 s.B!EW[ʹ ح͘?rsj;d䓌+}yVz\r[xkVB9H%=&;@h"]glmYjrL!̩x.D__uTSmǷ׆1:0vMv?ז cƛîyfeְAONFXbT/2$ b^_[XT+ti;TDH.mINZʤ\OiL'N 3 ][؋N~_aa2Rצ 2IeZ磚rr CǣfjbrBqțg 8݇9v~4pq,qRWͥX:ӭ:i߽c^gntbn'rNBR9>A_f׳ $Rvϫ1Q)>$Jʮ׏]YzƈcU%F㡎vLu^q.e*ʷ~RJWR~旃ׂᆄtibޝgu^đl*F˛^/WP039q<|rg:$R|GW*ի9N1ÎA<5J۽ Jj} j! U KTflw%\`!b4zſk'0 ;v!nă֩%9kX @>C s.[vl!/&!U$4j:  K1j]I+99i?oԻ ,ߏVPݪ_}cic~Uʹ)]cp- oCa{6y+zATQ _kJ'Fcp 'Z@3hV1.)7B0*Ka(3i33o">y${pq7 7fW2'},1,VDڪg o!pϩZo.Cܤ˼?씂@NCP9h!  Si--SQ=xs(ю}$Gp'et@3k0EWO)>OH侬a=tšqmh_7Ȕ S?=ݶo)wu3 FR/nV*4{ޙ=)i|4"sB&-Astt.➶ 6Y_L3NN~y[\ei-ģ 7,⭪sE74b# To因_B%T}AG?`Y8؉--='$2{B8gъu* W"f9Q$e8'c龽a; vL$Kvk,. j9ƴ@'hL|{_uQP:45_Au $Ǚ`׷6pz8c/17x:46t^܊a9>ۚr4J6_M{#,ִJd)k|Ɲ#i3h-DkJgݔk]s{:u|CfP~z78"u .Ux n+=*P *G4<ؕ.k^s̮ 'kP+zSnbw0DC\@+7sء -zLz5vВzX#?~1,cDyFi'VxE5 VM g6.9Ntn/N{1ݸXGPss1^ &>"!XkߞW'c6$d/t :P#@HG3CwI:\]%͊)?_$f:Ʋ?cs]Xn  C@YbS`'&$@S.@m̞dVi(r;1}l4xW}&gx&5` z+F9b`Gh_mo8h?S9QKxhĞC`Is/I#|lu7da/Ypy/2f*lZm9x Q|j#oM4y?@r<x~]:FҚGxvL8LHw?b*0ˣz┳f9-?JЏ"6W*f\g6xjjn =vh3O/W`)UW.s JQa0u`#hdEwHMV<\WN,lbqјI~eCuXNpB\*Ι\QGqՌV]#3r3 9uH?iJkp-*~䧯6Gbϲ_F력dw>c(^eЈWq >-Chb2 dI Yp )VIr9iw?9>j11[%j[(YoS;/Nuj#cf,}S뚱; ޯs\QH>u,\R`M[臥p$11T˂VʦZXW- ?IKFܯzWƷݘTV2+F͛Èu3eWKWuwM5 0#$~B "9Q^\6^aXl] ;;c@qYô!4^o+pCT윋@Uɠ C9p޷"Oq)PJrj~c6a/j!#\_Z"j낻VcKG|?mq zj(F,b/tIzIk"sۃ|5 B֫f[6)Iw3u[v+ā1+XO$[ɑ !GK`KUK3Y%KBJnԣ#L>5%A U]_{̖%&STKQȈ^c_ں<b?}@wv~\m0H_t5ɪƂC}]l9><Ѝݠ2|!1zX(L%v^I֌=Nl&B"E*N)X v@ђT *'@Mu4ogT7.v^h~Tc0t^%Da(ޛ [I.f\X GOIb&"|`f,޾ty&3mnS7%536isED! w*gϑᷠ1C;Ȼ`J @fNkEB]]׳k2jV|4d'XdyA knV8*ޜ~yt(|  9/K 4\2h^/Jx mFwݎ| fVžWh%PkǬNBT KEfz`͘?fۡߝ)㍲iʏ~Ie C{Y.n^t9NF I"&(RƬ$.`;ZPb̙cRaKJ#{e ~Wjܴ$noP%ZyovB U}hbSFvZ @^n-qUgu֠02~[iMk?Ǻ˷3BSMZ$ܚ3LJZijJ]c:<7sĤ~%Ӹ3mMoPAA6ɢazB枉*- /J>qs=Q]`BLvo\Df~_()eUaU+ Haf#`"`Wy^Tv؏y/0ɦgf_)fź8ڰvKi L$2l֭* `2%VVKJvkcq՝ #_ n,)HmH^OAR:R7cvTfk$w Xȥ̮Z ð(A*GkXPeI>35Pbԭzic,97,kGĴ8`;m|b!ɂF q SmP]P&BnnMP_uEZ1 ?$l NJQe#( u'dQu>/w<`"G {i.Hl"3ۂ s? \ϞAwT'/s}=6z]+=6Aݍqu$z衬v fU$FP"h_\NZBrI+QS^*ֶN'@Dy]%:8a\ :m=lLNxpp=>3K@Y93INHk}ĝY*!J*oDI]>3<S%gZNkQT~rgM Hޟ>a{D|nL "@HLO՗q F7ު7=76T!1k6/_KJ"GC~,R+mdJ6NM##N >ITQH"0-]Ij7|`iq6\}w=񎮃w3Ew !ĭ&ž'2weA/ UwA+»ǯP6w{ *yNKacZ:v> `e_2.EW5 d() 55'k^AZ}$pv_E+ŴP ^i<l[ԝuʗe'ѣ.^ϗg&Zʬ1JqрZJn5&%'9I2f8+,j{kZGZy$hպD1*np)(@_읷5r|6PHʃ|O邴TJǶ"Kl8YͭGo+6?v7+,l>i܃Ib޴o)1Me+V[/jF9a# `#}vOޝYFM ">C:hG> QWIek%~2Ω>OV5qE"_ͯǸġpui>m3yESwnY'aoPl9X*uZQ(BwGgڙO\%|KmubOF~[OMV\^ĐN8dg#'ʑp8}jʝk2\ʩ,P ݙQ,.c&ߥF2\TMOok)C\r:?@'e!Q~NSk\ bpe[`6p $US\yMVԄ\7G$Ҹi[+x=i15:A "ƽ馊9sX4<:|P48K><:^z@oKiiQ2=E7M:>`w}Z{A33\  SFsF滛?GP /0WE<.UeڙW:]P&4yV`ےBE0Tv NΧ[@ wd;W@{kDmsD:@%$e+|> ƂW& }SX shˡ?!?os{ߧ3+|]:B$tYZl|Q"I2QrWɮ&+Y{[cxPZ`C1"\$5n?j2bmՆ:"/wI"Jڞf-w^ B{f~\QjJO*5XAK^YH\Ŝ?ցϴjn{n8Q8l+wɨSхjF=!vfż!4l>Ÿtoԥr-g= @x棩tHn=B|r y;~OSӻ~EƦ4],M_Iz`#e^хs4 lrz]>x*]z@-T%.iq#HAQ7Ǿzة)6|WzrBHX@aHyNs@Yy\m{s,6=p~gMrUƣϔG迦4\''睑=iujI׳i%0*Iߟ56Q3m`ab{=KWDVKZ^o/zp0qFjltxۻL3o 8oa%Aఔq Vzc|KUj BF:`Fi~P󭑮"3|i"c1 P2˜)sz Y~6zHrqxq,==':K m}qZϛ Y6RC0Lp ?|څ8NWD NaUXl% m.!HCG?DR2 }ĉIǾ֓+G#M+^VTUpk_| ߵKW!Aܖd:"m.n:^MQ;J>FI|6LFkc~$|ӭ2}\E](! X͖O=?G']h&l12MmP(B?Uʐ!jyZ6osHe6G6@uҤJH\+azS\ׯߗOW )P&P1+چy4ӱnÞ``]&74o%I;cad C;z4$ nsePM="< 2sꀶQ,/2 õA<1QyUbsKNv;mѧ^@pJՅ#XjTY(Bi2yN$z)-{%_͇{ r딤h QS2w3#VNЯ{v bHr){I>n),P~}|abGڏߡp6Ђfl#: )TxB7o>L6[{YX@gQ-eXιDF@DyW̰jS4Xk);}K54uCer4WF,hÿI\"ʙs*8Aoq .J[-9k1`d*6SO?tN{ ؐUNdH޹DAI13ӪZ\x#Z:' QݻiAsbT+2Ba\Aq:ͱP&_͈clTqI3nlb1_@_MrGGI?-:)ٿ;j]:`J:j,,fc?[=ْ]y Ny 5ӷ1=dgLf3'o n:ֆ40#/h7ㇷ>kmi_kXq=Icx/LKi6B$(_uu8<2a|KӪ : dBc1A . bbXDMb*2j;1 r)2¡R5ZpJZ_Ẃ(ib'j*/6#AM33׫KlW'`I+t[&b_ֳ(LLE] 4Hݛ eY^IF#\8͡tAZEDgND{bXt[SpǶf)Xc,cA Hs 6!l4[i$xG{/a6ӥHCXZUӇGrH R)͝ls uePކ"R u0d/Ǔq}CxOfvDjvnyo}#a,F{~ kcBpiߪes9C^4G|bx7>GAȒb>2|̒-6e;0n<9\zX[7(Ri֜fn0cI9*u7sXЩX>ڗv42p]* ̎P1j1,ױ\c|_NL-4̗9:>0daKv% zo>|쩙ɔj ;%Y}Jčݩ*>U8qKGE8񲗗n#B2tj zȠHߋRwzOx;vS*N4)?CܤNz!,8raDb%i-JCTYfW]4N>$W*C&UaMyR'fҵs&6kOQFex)oNIt!3VC5m}% tˎpk,1.{n[#QR\}BO2 I>c#Rn:"qC Úp<.8&4M6Gb% z>O]@ޤ7PSR샳9-g<.0Hrb|xEɀď5YĺEU8zX ݚ{+Lo/!ZHM峎sS}`20?"pm;QeojCIH09 ΄5%gy{OF".Q2zŤH<2K/@`dPfKTd|?9)Utsv'4/CQ\ 8HZ?>f'n[n{ d{-faxLyoiץN %yCKa{ZűFh»s؍tW-ufJ]OJSe(+qQ=8`^_ؐ 0ψ $ Iڑ`fUgsEz&<2Wk.ZjK7W\x dm +,] 4]NLAPS9'AV'y )X56EEeAZQ2,5:J(!ܹܟa/Y:r} XJLwߤIgڞx.B,ݲbs.6/cgY=. GZΉH"ʣ?0Qώ{$H)3O)"?_w&CUsRxcOGS7ޜ:zad?C(ZOŹbz`pf["<| ٮC+!+@{,jo`^ۚOm$uMj!+[]ݘ.(*8cr XpmЅP<ˤ Zek˟Aa3* 1,4omZ$F M AŔ# f Zl6lMWMR*{"q* #zgנEi-LT&ZӐ&,7 B3z%Ga5; 7RY!ѯ\M)|\U w 5A xhTT{yyL<0=ߝ%r>#o@~+lz-fz0V724`хi3= 0_/9PO潯)*1Tf`Fce ilZ^]סȷo9(HgEXT^&(i2^p1InA-T(Ii9*D' *G$U]'s&Kq}oqL#uxB+Ud+w%ۨ0kz' cKofBo@rT5+z/:iiѬmꯂ0d6qEw$)>avuV 9ARt~?dl|{`fi:{Rb7  8XPp M͊Dp" auw"Z>c 1/K}hryhw h&Cl *lD`z)imb[P"[h2?ra5Wĉ%jGiqVdm!4lmh's2PpQaW 4Fwߙ+.J@`!K=CIxmW[wͰgRu|Ք!oVT ($6EWplW^,P! ˏ {?h}CKРF- BLXtzvFGP͇.} ڷS"|U[ Wo5 xc3xAF$?CNӆ<]^{ᔈ\RcHhyƉ\h҆ܜ|tQ{  ÝW Չ&^(TkLNj}8R ښp@ɶb ?q0'.* a8(obE\R3%.WȀ=X5 =<6YɊ`N+ez4=vVGt`~mҒ.`9WkAQN&wGa~ʼn;̛I1"rX SsgR] YzHawH==L)7lJ92ugZHpמ)+`ċ XP4]Oc's{HnNGg'RI!= > ͢n]=uMHGp7^Ts:,%\`qf2kF53=8`;AMqXւ'ynւR/X!A+5#hg58HBOaHL+XEy^GC8boBRsR̔dX n(:`/1uح«2fSSEouֈ8sZK[8!WBS#O-H<ǃ?Dg5ϫuڿyͳ7,,/­qmx/r2=0ʈ9KYj&~g#hqHAßUc0HS5>M:\x(:PU\kW7h*:gwnW_)+7,ɮpm𺇸0UaB*Ed^eAI0nPFp4A:50ln\ԋf,认a#vSL駹a*P2cQD,=GCYUxzML\sr%he[`mzY6/ ]G^Ifc?i;gm2C'#Q2OzeϽqFg9X]9t B)xS`F[50 ?w`;or~]3M>W=6g]|q鑳rh9~MkMZdKᾞXODFHPbv xW`H{C8o-}mtU*(W+2ptp U`p)M'n2!*-r2E,/L䬊NP^txƺ~.nHl&f_PzV\e'$IN;:3|do28b\Ȅ1<=rM:@->)Е:| ɝX U* ;'һ2=cЄ{<DhQ+>%3NM۫b+?^+{s$`ڇr#Ek7PWGM񨺂NvMI`$m'[ 'wYeOyLZlzuBp;Bb&$zQSŀC&J|w'f+DBbFmvd z.u'Б.Q5|2`B3d@?qtI ~#nwY˽?x.\ ғv!dчÉ#<=ai=Gn-}/J75`SR3$т :P-k:8N#uH4qӽ(smy:IYE1gB`] KkY/ЫA2ɽ[V%Siß̡2{]aa̰VMR6T0(J#"Z;YVLvxvu.N J] O{ { eD|>&6YoqԏIʀңc`:A;?Xc7f C]V΄ _"ι{Tio#8 {ML>fRJY(mW2R`19=fNY;n+hg1;*H0$ 2{Upv_\a, x/¾lǏ\BVt*5 .z"1ze7J`N`E=Y6;VAALiqlLg[)@P4-hyjUDNk>>VG%ԎCP>]`G)AsuX0 >O4޼tO9chiF^WuI)o D)4?Hu@4'ꌕ%1IǠ)jFD}ݍt{kFTQ0ZYI_95SCN*>C`Nk`Y}+A*UwlwHQ%ba" g]LI!qd\G$ѝ$T3~rw;XwAm64^߇0!~`t7Xߖ$ar[ዿk\>Ϫ8 T X>q>fxliew* ;]$CV Ĉ;BtSXk/k\7y EzKFשOhm!,n}eAg) 2ۃ4Gv :_"Kaȑ\C5Ô5`5B݈dǮC-'5GIGJNz.?iftMFKJ8o>Rx]{|썛&2nyFEZZgl!Cv:ko(Q޺ڼ|2O&C/M( pNW==J ޘkjB,'e+/fX $=vCQF$ljTۃMTxXsVMKu&Yvuٙ?V{ڣx8&J.H wi'8Ud iq,9T>Axdx8}E' kyo$pH(¾K4>-6(ɗ$;) /'m 7$ܪJ|ޟp+pypCR+8m *-[c1zS0`7E|ԃ+i *v@e-)%A{t<0DV6%-赶pCL|3fpFt,+ Bes\p=t;Q[5~W6)}|QI qSKQ3PniQYP=34>u-f1\ewFtm0 *Qc%-洜Ie*Г*yΪ>ag{HYb V\,$9nrpD?lHDDr!VcC^!Rl) >[K{!Gp0aem/<^!YlA;x& Cw贜|҈VH)Ha!4'Uh&-'N\H{rJ+{Zst0- J" vȩEs?ݶ^0=PdA\!>u'@&$Ϗ^4zVN3ZYߎB \)O0X*kRS(soP-RH 5ĔW Ą`]с(VVbٌ=pUX8Ӎt٤:j)Ѡ; a sNuakQ]rq.o)kg>|ˣO,< P~m8n&C\;>w;'b_cAp^(NJ6 )xQs~|z}O7 ;S6 Ok MN89 @3LqiB򌾹 ;qinY9d"SZp?[ZU6ŜwYXM|7=t:nj5EP  dOkyuK4ɵ-贖"uʇ9""Twր FT@=-C{Z[nU]y53IohVY53gfKR7 vᴃ,%0 yM4X4&F}\H u>T}\چ'@<" <BV R %U2ZJi+f_Z&Ν_YB]w[kJڡ嘃ˬ*1|I@Uu'q-+ n`6cpP9{wZ,1E0`#RmÜM>9cgb.V5R Yn`TBtܰ Zo^ ڍƱ_I{ уG68UW1@V3쯯ŘI@H#AΊ~HDK'zGTv#UI*M. ?G ۛJTS-4:yg*{Hd$g~0~Զo DϏ?nn}gem&ݑۈ+5&=LQ]ʤa7:(kzU,)~n# Zni)AYN tտt;6!1s0s 囡P&/40 3$M 㦒JM}CYWd%;o;1mrr£~1*V'PhmʌfG͎hRhy7ivgP̺B{!-o6 /JbSE qGĺx%{;t`NӠT_DHIۗؤ>M*rES!: 0kVvn9'"К* ,ޒEJgh΍ܑcp~q/~>~ܧNn_sAvHɁw .#|9I.Bz2+ Ď穊q6Was]aE6 T_pnDB&pyjh>*+;Ń)Ģc~Us'dǪRmY-2cVWAַ{sg]ov M恼7sh!ٰfH5,ڽo ~ F^`~sJ OizzF黜 KR ̭ FqcN}aBW5eZeEeld?JGRgS>YήT7-Z|[!Ac}~INq2lrŗM6 p84XiL{Xpe~ŒBm,nnZ{zЧ2Y܆I8UkYfNނ(Y`{mU+"=6Fx-w,+->Ij%D ЩNv!Kd| Z"d >"9Na)p26D_}֍Fcא{l~˶CΐA5cJL.!̬.;rq^%،.CXe 7>viA71,pQ>e$IPo+A~ K$G]Cڭ#~z(\K;^<{+wP ΑE3cAJkv۰my8y-(Wo=jxZ0Ÿ(BrK-4].H(M#cInsZ7aJ`0_s u˿Wk\ij G:י4Bwfu5"l/_pKFO@D,Bd7͔o|e~G)):>äi#A1ZXRàZ'ZI57UKyOĬ!f=R٦.*h1oBlyQ {OvF9jIF/^"nDrV2wիqc cBkF/V^k@(ጚSۘw\Cl"hX_}Wb%vCbβ*|zL Sސ؟$_ Q㺊(z$^5qϳM\_|8W_S,0ꈡqDdEj(mشӚn ae |ԃK| ->ED8dRɔo1|@%wzA[n]c EtuYc5K7]%;EY G^)*N:\_k^@oH:n|S!+EN3'mg%6e<sªA+] 2U JC'gc{yzDAj y.&O0h %܊槃ˍk^z[sYag|5CoO?C8wk݆s@<|_`S4p:\ R+^x{/=}W=yڸ^sUAp[>Ì1&ؚKt%U,P\R.C]||j~/!>gȫFH4NcN}'[[K?ĹsB49n\W-t4VlF-L ep -2pL-Z BTk!}G`^N(H*~s*eKփYŠ[ ?'^+RYe;%\etnvYdP47&&.ԑ vH132FS;WDQ$UmJy^+&~Bǹbb 4=/+ :J-"ٜ K(9BHS -x(-?A|+77 Ŀ1aJ(8a}5 955t D=b f6Y0-kx츼_IK(!l##n O}rMGX?KH-n2Lc4T_f hr"қ ' I:; 0`nG%j|^nXCT YctZK[<ä{s R>#V6>GUԦùA`$=}t4eM"N"WwuՠJ!jJS.Jfp 2c)R-@OPz?'ohU,Y{W ( '$v֢W٣P3ўLdRJ{9&>YwqIf22M;G nu*1o'noݎ1NZ\DrŮnL.jofS8+d˜+qI{_-g%['gz9Bp.l\i3Չ;H؆|恀J>Ԩ[do:a s^ >"U5I!Qcd2+ L&f=4.\t%VF3)XxЛv@ EZ$3r;[ULļAQ{ݖ m1'8lH6p0ff됚v!:EG!7{rYx=CLV$&zDB`$mlm%)-Öa^_HJylQ$Gb=ŋh#=b5\P3 e)qJh: oVMhoɊBC힤FrO*g~+siqspt_o@7 ~GD`T(_꘣u\*Qb]wj$j#>:9MS+  @]!G8GVU>K}[{<Z`a(-cVwJS)ezI`D]d'H?$>zQ(߀s|I =2C]Axx+$1?WѴ{75֢r!9SW^24!gmTqRPTdO ɆM." 7"lz7yG$ # z+f-U@JcᡕDHx U 3I6@pyˋ}-?a ZRJ2۳:>} a$:dv $xxCNtR] í}$O|T 6E#di۳z75D2"XYI%d2l"*p+oGr!OW1i?8=p=(loa?w= ՗qF"VJJ!k^7菜.w#6NMN*6W\ZsExMEJ<;c--; ##\<T#}H'Cĵ" U&Se0$~p 3BƑDl 36MVcn5!(caDӞ^ӛgv|RtN,3w߶~GyJًrVAOVw*AHSgoǭA dbW4(DTPDҨdj{dR\eJ&o͏D?ENF>L9Za&\V>Q<o~p\GԏԠ ٻfPG[^Y%fVn?M0LNp3&8"4>a,.si9[1Ntw,ē۞C>$,'.ơGĖ)|< ^C_ qmsǠ>mz|`+] 2. 7rەfՃ,SJΐXYW"B >-Sh>*Yڋm"8-dQ),IQ[)\vD5Y}S9ZF`kPYunPH 49e u)4FN)mXPcH<pIa-OZbE ;N%B#ؖhlWȬDfL)p63 $gn'I`g 65_*h< ?l'FISI±j_j2I}=T<>D0SW]` 7uAO̠o@p(L~&Sŧ8eJ} @FAhEDo}?gBnvq\Hl$)\RZKvMxz ]1[ۊXxtSa9?A KP c}ǣeӈR"fO#TsӦa;2}M ݏꁔ㹘#8C"*۰ ׋Gd]WՃZbPY_V,Ƈ#јԎ]y+dT&A<+4wT)JXm6/J$ ɅXSu'̭0u4L0@<W]'!QQ_6W}™pн ==FBOekcw+n[Z!PW=徃/#g §hZ\\ie5|e=vOH'.`.ze:֣;-ׯe֩ge@h'ΚVGJu㳄@F~gsV[Ks k/{Pje[q}~h}E$\BAJ;cS_)Lʝfp_0?8l pN; nݩMy"kbZBN:IƦ k-fa, ZA/k-E$`>0.#&+J"n.OC G@ZOLgxD&3ڗg?#gE|՝Ya) 0 Pxa!oއWd=;sb?b%}7h t:/~m4 '5;d)%ptI3 1巵5e;E9*z't,@+KZ7r ~N6\r%T#dПik/8_w {FצuPaCfg!.ƀ;RJ?@*?FadzYƹu\v"՞!@-|߅zEp=3 M,PmmteRw4.AN"b W#E+0J]>[Ur*m*27>eqCC2dpAۍ`,W^ub,$COoTusnJ& }804zзUɕA@M.)HBHX.~U& xl C(N!lE":۳p {KfF? &]4_=ŠƖ?.ql9˜u@ :jH3TdὭ]I>Ne..``Xb%$p%n2) ].;TL]VsY;^@3^ܖ*_7wj JI-D G-F'^́X1[mO" sK煅MAA>8բ"Av#,_7жd!bޣSK{ ʏryIZY>BYx_Fԧ`'9I5h?*]CQ @EO.D= 0IO>7Өm #I@E@!}cΌHӱhjaZ_حR,M mvrˉ;eۑEfR9Fns9Fž5+^R:*NɦI)Ĉ Nۘ#+Ī|@E:{EȦo\ uZژޅc2#>_@]-m[}tx+6 t5pt/,-XrG`Yfܬ3I1o5w?QOHσ!{*9c؋H;vfke֖Ie;Y*sk-Éxr:5![(hYu|BNM9G)j^<۳^:LR2lMCZoRs&P0|' w[[I{wvKdC+C)9:O$KLN|#w#G;yHسyE ! Lv[Y3Ma,[)ipL ՌߎrgUYd8~cy ux\u(g'uyѝu7}e;HC=.~V٥ׄ(,o'ISnJhvVC.o2P354Y[2k-F{>ͱiHe[fCUB4a;$6y6Fa gWRKs@$%I[Ds| !lHK㹹]ux^ֺ+ix#s,"Ueno;`Ts=MF*Ȭ*}EST)mkv'QRD,Vp}Jg_ J+ (R"~-ew]8[\0qJ([$w*Hh3<{}ZD5lILwAYjϐwN+Uo'!2a' Zߍ'?;8p U4x-1 \fz䒥W2Y -''J"+wssy=ʤJ^Δs2+}Ip4ş]fPb21r@QWq=|W9\uz/q&u{.{-OSɮŞ/H iFvڝX@cW*뜷̳~^"9$k@yABՖ|HRe V &xEF98=Swtq@)2>IB3JsG@_PjPv@{ˆN&#UApkC@1ܳ3ӵ)'XiD\ ):M$1}VX4hM LSg2:h(%_O qҵj0^|oUnbz`2ŏC[\~/N 5Jr%Sm@%֨#M9u Eդ2kU(&7WB x#] tZ쏃qToN.$_^g6H#S0(JU*' g7P(XȍG/$GKvP* J:npf2j릤tMډG X@!D01kZ`EJ؎]D"KjV(|5}* ~ R!ŊJ@:iV{c tMY~ə=gбaxİ38e~@v?VH+A9铞Bg8I>7Cz˃0^b#>u>|%lJhJ%Xqi]iUn =NQ֫:cr9'жcaяeiSp֬=W;;d0yߔ'SYWŁ?iL.[Q~ c1+sZ)\Ij/m)JXQBʲ($N*֕-fV;k='yr'ǴMpaPHwM(؆>6W]9Yz~- W FEiuT=aoS8()pzB 4X[vg=1VFw\)> -Fn>T71kIjI%|j΄l<%zi߉Ag28M`,z`WV֢ nܼخon }*F#x-a^}d:D^ ̫WhJi_ i"̳ĹC\&% ~^ULy&!z=R=i<RQg.S^v9I_=X#>4|m~̣0.+kV.~SZeT)VzͶ.Qda/#C/GxʽpK[Xq)/܍2M.I74(LYJuZ{qK1Qy;'R*/7/+f1̈́"q3Wjf8O疶J0se?0N&`HT'ij:]N9DaO^i09ܴF_+og shw&\K2o Nkkг!˒\ǩ<;A⁝]Rև"rj+qQCKgZɕD 6._iJi_8h5 ӱψ)T)ާ }M|3{͆>q^gN!Sxβ܁Kl\)eBXő{ ?&oA&@NNY[JOjyooHRTUJwVC%G8uYӵBDBKH1#j3$'ЦM~Z܉a`rt`۸Rշjzw"egZ-ckw0_^W[ZHMi R]/XbR/Rd=@zGI[?L#8SR ^aHs6&|h[h(q /q9*%e,l8G7%C0G#9KS@#S Hq>6@D5'9#-kX_FPaB<2}TXPVI1 Cac'R/MRSN ժݯ9=%6IKgU  󣀡)m4q fz!+ SIn4HQN!| VI6Ŀ<b=/,r5EV RX`{s괘L*14:9⡨&<$%%0U_q,gw+#? UM,}V-x-(NjU\ JԽ,auq5i VW7{XG5²_ 1gL}@ 09\pi$XQB ;BѮ5ʾ4%xrl}P⏡;+2w bk3k}bq_PdUH%:Ży`M3x IJ =S!m%j U̮ׄKjn<R6ŪmBLU"<' ZBF+Zd(<=Bgi_bgߕVԍd{nC.kékHko\c c|6[me Pz?sZ- v 8.IkȊ%, 0?;Nopr`8vEp<*Glç&C'azh~+E-}c|xKN0*oFz}j739V5;z|1hnJh@2U S.EV"^6F-."F7~o G4x>ZV7g@ * Y ]L1U ˺bvj'{".}?! z딣X~]=~ ‡$ UnBbRǼ7I5-F:Sq,TKs mRN;nҚYh|7}F}xg6>0b>P3I)ξL&ѯTĕ@a&|ko3r[N8-K5=o=wXɍpg,g\I155 ]3ڊx$zNz県BD$x;߰gț}}Mkfb@efG󮱏 мrx9ϲG.B﷕̚EV}H)ΊH=},lH?y m1ɚ\L?:>zYEѕf8!p?F0F%'vzpp 6z%^s{>݇%iڠJ~HJ-teڝ[*Ab"3wËPE8df8;`ۇ )_gI'Cgkl5x M:mSI<|/e{ ?ݐ]vZުthtjޣR*J֗3'{:kIFh#aZm+/}ی-O(,JNf(tb"3p/_J' ]n8&HDE@C[u/SUDހ-M:N9)i9csSaۊ4íԚ{\Bb_ i:N^|ݣM-6Ɣ?}%S@{0uTЫhṀ5RO-BV ͓| B3 ^tζhlv]N H" tvWbG(9V n2pZp:rZcԤ ŏp9g@,"# SȃWA.i HҮ S o({f?mGl!X–=kPEKۥx,?J/_&Ϗ_T욣 UpM @ݷ˖ӋY%ى7&s8c증K,OZ STSKl.Fa;E8ZĪesl BaӾl? |U?MxNׅj#J(:/^2d[uifޤwl\7p`,W?6q4%VBm(Oyf9 3o hmztjT@_/Z2&Kݷ6A'4i49E3Mn0es F??ʱd 98}:q]㺡He]*L|Z5a/&cl@.#(q&,IM<"DKoOV5xjDlL \aZM.:^[(_yE-ķ0>ˍؽ[ xQYlݫg$ckڏww<Dk\ݛnuKdW;+a5 SVEQ,3 ltr#,.@$PPGbdISf4;^OMtTZL@J\6S``z '8`'W>SCM(v?@c)vC!V.U]IY;4~?ON$}JWq>Ӧ-v4T̋3S_x͜ -NObRZ_~OڅMhRq Q6H4 ѷRbs`g|s-XA嫝K17WxL%xPbl$^nMnwTtqU-m¸j6G 8aR@~PϺrB71'+< FFD[Iϡj)t%%ow➔^'w'2eƆݜ>Br+i?ƚdfp )NwH FfSo wH2c_`̟T|֑ltLyY|r^FiPzh62=8>yHvhei#\m9]olC(7iûnC`؋4X;\ Ib?PqJac:5Y67Bm:#$Nv v+È34r{NxUL%0Je2f*ʕޒFT@-Xl\7pS"u]S*f#w5ӠMa9ؼZCj{Y߀)>ǵ/B1kAv udRku4=Dj']uJ\OWHoG`K'ܐ?UiѽFDz[myHY;,~-iS%&-:$HHI!fa7VO!oЄRNg朱 0؎uBp1)9,_qɢk!~5A fEx'C-M/5͢@٠fb)L~c_d4!ˆ NUȒ͵ԼO[[{W>;0-ŭWC=ıyrCrm`qח{E6$Wll\"??5 K= f%AjݍvPHh,";y%KAR; >²jrw(\nYR`? [)Ɠ29p7Ƈ3U3ݻ+!o眧twFVY"R#X@=lWJ)JqSlXd"cS)cW̑ERJAk\ׂ`Iaj`;rL x w0'5! nsbԒo}wb&c0{$@?\.H pNzXs+aj{⇲& <# SyZR66vjb%ۗ`O4O{(*PNk2{Qd@pCt9s3G} K} q%ҿH$%[dnݐ RvXw xɐe&MYࡢH>Ѿ 02j=2jG};>a?̇2&ЎJ3"ZG|SVqn67&.0xH neõ)B^o*xW9.R9 ZA3\ܼ;+1xZ}͈$ aRnlM:$̟p"u\,-h8נCrp2p&0L {ʇsQVg H-S+ c:h. ؠg> |)~f9QKA]ƻ2(YܹvJKJkAN6t7Bzh?ZFvc/ww<=柔X~r΂k *PYe^9V)V(tc@?ì觞1>ѧz2+}6, o !ҲnvQ}8:>"uQxu 5$JLЅeˆ^׹ *D;J O3?Ȭ!Up;&6U/O [&XtXCVo+7;R[vI^eнzWN q?/zD8≅ MBSL/ Ï3$p1Fw:L*!UCĠN\t%-7P).Y>1-b6] Em͙F4% èf6SAēF؆"t+`7<{ORf#:4dW%3b^7xX0RU)QE|BM{c^[yYHآ1& 7a"{e'~Eb\36} C=z5nxf Зf?L $B:P?&Es_:.f Dz]r=IXr]dۗWO`֊8r5`VlF@ C!i{@\,g<%h$k:a^(5]R3N|y^oDnᡍ!y4ZC0>0f oA., )lv~+&2Y[?˖@t Rڦ5}B_Յzի ,oC8x܃Pɼn5Jk6Tu.1.5:mAL,{TXg$7x9vAn֞z@N";osWuV5Ob>m} ^3vxֱQ`Y4j&AL6eq})l!o:ɩ{­ ISwM$7,e4fhWu3(HiUJ_\m|b ]g \,=k:mCi@t7x{x qhHgEil6| *发^o 70yåF?DTHK4;-xhٜwyo&x`<|!E 4t(pD?,=0-)ZHR ὀ`|t*WmbHPS3CB^oZ%{].㢪V񝻚;t37,KUUgrm;'=otOՌ-uCV;C]ӫ8 0 aWxl&~sE0k'5\ j=}I\]Kcsy9b"<_.F*`tSB8HE)SFYơyN9y04([E}ԿpKnwwU|.3u؊P]!H,)lӭ3OQKxY[4 vCt gnK;S>M@] ;Ԗ]_g .#N 8;Orcpc;#;\M~Pc*51ڒEǔ&Y.gfg\Z\r~M9983jaBrh],xփ7 帷oɌV~C!c4Cm+?jJT7me\I7,F9 qbq6Si|#Bmo2n}P%fߢBl@JLvpleqe]7s%zQ}߱⶝Vm-eC ٶ&ؙ>h0lkNzh+,e@+[PF%v98T`p]p,~{i-Y F &^tX`آK^dgv|]1Mb ˇl7xe4Y٦)j{MNpz#[=VZ*; x4PG/KS_u+W{,KIc` :MTʈ.^!O%LT8GR|MPwh# BgI#+,ܝzu٬[Zx&8iz[\\Ԩ=PCl뗣 |D7@p?*G'Wma*_U^N6ACc2aх')RK3?-RJ)l "l$lҢ/kp@+D>Xlty۽0 ? -~oF?-Fbf~q8KHYkEhy訰`x:O _[[pH]1>/x;ղP : ^.]SqJĕre&9Ks`ͻ}<% ѩai4_3Iav*XLgۡ?Rcjꃎ*@ وk" u%z/|'1jzTߟ[cf&giyKe ގF[TggE$:G/G@c2ʫ1WHJ #{tLMM׳0i9 P3[<ؙ~֡Kx)ͅnhiBp;] {v1}y"f&>pO7ĒqbC+p[Z+>DrQj!-|9솕/%|ѩC5b'T䈞xOX'% {?0Z /Gja[N{ŲgJXO,5YQH4e6g(SҍES uc3Eya /ʎL5nRmY,Pu{2)9ͫKqy^d"F4nf2 Az^ˑFIUKLy!/Jz9g:(AְG0Ss7u;%i%L"U8pDmSۤbl43S4\mzE[BsɆ]ۢeLV}JBY49i7;7?6fQs7%2ᘄ6Zj1.L1Vd\ʡm28L|?FȽ:`==3#!N$0`j)7]'}a]e=۝](A +vGs4^f@><*`vK6(^^FLCqК_)lꔭ7Uik@o;#^Pc̜xփH ΰܗ5zAxذ{1z*;tfZ?P)P-O^}dD5I),rU+9$<ݳhq9'c: D  aKӓFs"\ln{{oDh&~}IJ mi$?oZEkVl-h;020ҿ$#l\,^P.3au?|Su]Zؾ/Q=MlSwb\wE_3G4= &mCϩIΰӋ!Y΀pJ_c~31b5#,Fy5v>/_H)1R,pfY̦{Meaae ;ቪ2j8 [n<%? km;DzgH[po!sW`b|_;y~j81Uƌw:#\%ojtUAٞތIzL(aByDK>t2O _O>>TGvUO8Jm i{g ]2XPgc$¬ɼ@;!Pɨμi5@ln]Zs0ȝ̾MC,2K %M-~ cb9Z@C&wPjy>@\荴xe]X|ZaT\]_>XqBA=EᷙeuQD}|j<3&뾆>,|wo5vu*a3Z Wm(3FepY5DسolUC*[xD~"I#A7]e^bUvk1YӃXF;a^3)DsISL1`xbsײޘOWVLLelLs t7%:qYsU 2> )5F~=I٘ ٍoTLy'k\YMvvm(j"b̓F1CվW+ŗ=e{"X#,!I,xc${jmp^DpI t'H(Cs2wCkʨ9z3ZTK8]a RxɽҊkkkJ> <:)t7uXk.0U'lKQyFö.x\c]րKx Zry(Uy|x찯Nc:Öa rS 6V_`Gee,2FJڋ>sϔѬ 佸K@ D?oT7C8zr2&:o_FWb[8ƾթpȒ#ꪒ66md} k725]jēm\oy.lp@9cK/zA?Te6;KUp5vfs7mEͣU12I@Ģ^Mx7 Po,F$l43Rvhmz &=;fm`S,GN0G-OTn3c{ C  ц/~1:z؍/ %)C~ަv ^L%͇* ÓS ahwґt_bI`>#{ҾJL/4|c{LsKCv,eJprm? -#nG``eWCGOGvy$#Z1{1pR  yVK;1=<ڵiy 暢Y C33̚"(V;=hR3ֲ<Ru;mK5{rqD,qQ'ҮG?Eb|:F~!՝;Ĥr1s Rfg%Q:iW{7W=ukúvq`‚bNwMR2.WyL c6hH]xl21j[eQH|3dOa y[ b-4WR貵^6rg d#uCu.!W|+#)}T9ʮܬt_X)#q-XgV-7E2cJglZXt9Pa3dⓖ+ JhlN#çwzy5h0G5ARJTw> C5!0+ MC3c h'_"bR2B/1Љ揋) aPtHK<_^'P)Y?am&%a %lOo [PjQJk+u!*%qTv;uGy%RtڌУ b3B_L uX~08>*3ˍ&,RXlMSj}m5[@WV`R+أn #sMBhtJ3x}ܛdЩa=' QtPrJ<)w<Ҳ!ti3Z_,V媁@^F$pճ]{\Kcxau IHV*? ,^QΩ v~ _G Ѥ#j (u#8M/cM`HG, QAف^ 042l›\`08e;iњZb~ U&l>NX5ƫڧ}:42AλS<}k!Js^ڞ Ip[4?[Iȉ>iu-5+5H3ZB~Q`nnaJHHފ{Av5R0UBmY+l쏱y-g'9RJ[[i!'Oڝݿ!R Lʧ[q(BlDfhjAt3Vкơ+3Odg K>BwDnW}[!ķ9.6ab wAƣi&_MC-'OFVv-F$:@BS^׳(K,AjRwmJeGK?85"ÓǵmH| g.5*Xҟ+ifΠRŮin  _zv٠Gc쓾IO0,\liܥRqKLif#Lea.T'C$}JZJk6o , !Kgl-$b;HV*%,!Pr.# =d /̢3#8̀ V>e]˒NqLw\†'0$I&8UZ y=T*3ӅҽC+Fksp}'Q8&Խ1j6~8k5OgK>ŗs{t'8PH6v(Bj?@^ +SUwwL $Goz@]ytK{V@X )e91l90IWS0}Wr$s9@*QR+jQs2$&`7!cN\@%+l2ZZh_G:,tEfWJMN]wׂ{W>-y12/:f9Ԍ h =ngZ Yq@S&Ag788H\5 &rO65Y8P2OJ|Z1lEI.tmskxrt.JOM[+ä"]fj97=qJL$mNbDUr^ î: $h~g t$|𖈯c"~rF-o'"ךV)!Ɖ"cTajߒiac8tv‰t G SNR~翤+53L6K7[4W\wxwml=IsMTQfP{S2OZe!E\vx<}vNLף r{Yy MXlz^a8orxX׿[{swc&ID|i ah ^.[ 8?I%qʐm&c`l8{h~Әr̻kDұ1otU^C)yKw't^W C5yr9 <,vgύ>#<)_+2"߱Q:c;*()r!)cMO-wr_C1py  yΗL"؀LѐE,s rRS*?ZK筧_LOWL֌5`Qӈn!Ϋ{QF.cC*5Fx:! ;^]'a$|FV4{;m P0 ){XQ3 cmӍe6,U(XnZӭʻBVUrM,U9r?~F6_d(5N݃H;m$v*½/0fi6tTCx) jp/ϓԩz~aؓU|N!l|{m1ǐ[J $(_ i\m>K{BZfN`tD*Fyi{doΜ 'V(FtT~hJQ8M4ms0~]\˸"._7odԀ#ίr!5Yt5Eef6_z mtmL|] @!$.fvzbKp3KTwnYMЋ uIIBU,Bs;;eZ O/ D芲S}CwaRQaVۃ?s=7bݦ=Q{+lZ-(QHϟ"} EtR[Xelj2$w#~+5Æ`""^/|"HeeX UK#argj w( Lt&U M89JB_O7ԘQ;iE YxE~N  q"`VPk>_ Sdm'NǗ=Q.;ǭ5pPuSwowx[3E>G!I@Nž$jm*ߞ* If$y0uXY@ӞLS'M0>%y%MYUֺ2sn S m+ʱN WWR3 [HRLKV$RwQ6N$FwywUeКc݁3HM e!V>F]ФxM֒ Blnw9Rtcy($TƩfh°vM .m m釬,PGpeMUt_qxa+!Κ-Վ.1BQ`8%.i8/Q)0"s7'bk;Z~eNv|>`H.lS*>N5#>c9 kpӼ TSJhFd8%w1ogJ`/;x?MZZdmXt/ܺfrBR{6I<gEAy8 : ݡ$C(!^ vh0mQ(|A`Y?JJ3hQ' 29z:r3ʲ-X1Y$\{8CIV) 674w j= HD1Tjq;FJ͇ٵ+%z%!țHm-cN.,όKaܸGӑ'6.5;X3vxU;>Sʝ-FhE#_1)V]6!?DYsg$&n0:"#ΐ~tm:5F| l0\Fqc 5ˍ:r?YӯiRy5#-4h"4&,4nf  rBqBM075u!;U9Mhl%F2 ڴr(Ӯk6(aGWE,@ ލ xb"s' Ot8nDR̐ 5N׏?-:zw:V*`zV6=9 mM^TPM>)XU鈻?qwPy9ttA@~[g~~ k)ax /(QyfUkڟ<]q转>.)&\0{ ~ gWEuB_"nv@Ao6$W5;b Zvu)C;D~kUH/dD<]1UE ˜r;^9a딠,2d4כaK=,ɲb8S0.n{wY]0kZdDI7^ PD:X=t.}p^$fOzCL?9 1 }7w0ǴMV݇?"ho-BE|lgŹ\8L )f943فwzo1g_$H.fxN||w0ehCpn4XЈ !6a 3I AHtAs:fΡYe'KIu3Je|Avs[5- qnWݳKći(XUmP/vv}-p 5TU 3n,$oh4œcC ҁR{w[]㆚7$~ψv'Q\cy|pOL׾਋@}?ܙSe[4Yjm?fgetO|16=jeXdR>NZiaϛ9ۑv jy ܐ ٽ( SI3Yı'HFir5(i?aj.KC@*YLL0TmZi]|lEtil 2o,yl m g]9s^[4qCwK4EE~6sCGsaЅ;Aaƾȝ2) oӬ#f*߅)Պ_C+.W?TsuuE /c{9 SPTݰH0Dv(1+Ir#BeIǶih/uf66ATŶ;7%AՉ>ܿe{O$x6$r? u%(n5^&f"c;mt+M on0t"r``YgE\Ut묭oW5FtAByYޅ?Ok<SwWdmc2# P276@046O(uɡiN \3Fijt<&|u>w 7'ymmf.d|{_ZUu^lFʻÈg8d)>@\zaz$-T3/Hx::e'];y:A7; #{\j0n^^]7TyIw~OUDWmY4b̏tCeVjB *KƵjӅIPܕ)bx㕮.Me4.sWm$8-q {U PAj+w2 /86. `g'ҥ#Nm dzLzb#*r/QY(K;΁j] _W \?76.X)DBh@+YAFCDǘ3Sc땃4`r3o='C4 GszAs'?SA#$c"!{N3NVfBv}qd9'[߫q~|Abz؋2P0?'6ϥFOov. kw ~nCEwр-CsAQ ͡(c^BVݡ2_q! EK {Tv9L4`W#úU£_߷ɠaf2T\;^'=&G bz^|)*Lzt.pYh2MހJtIbP8ei50xjjƖw{ @_/K:uȍYd3͉!tj%HФWQ%Z -=G4-MыuV]QAdʢM?$A+A(jzXiѱAaYئ`]@0ڋZxS~x8<=bq?{ǞWo[֮^O|XhIHǍcYj4 L$b%Y7cz]xƳƟ>BLVgtV8fisU Dl{6M8%q1$Vd!ۥm"B0y=욎2*`cEt6[H65"Q>>[c{^s0Hʰ29Ug47ZMxZij}&jÙ].)@L5??qghXo]x'1L\V޿8w+"9Υ5jDZBO?[@:,:#1S7.Jbc|dpäBXsZeOffUT{0^GcC<71_4gpr#z׺Z 1c;8b)TUfmx[4G{T Va[TT?4Y24j0mgҖԮL ĘiSio.o8;צ>AV|0,vkK$kL(B[d1_Jo[:T-7黖:"WBnZ"da{`2a4V̧ӿnN` N\34׹:i|cXP" M}$;J)eߠGv-uS=u+7|/ N5lSf :ܱ|#J}T0XЇrN{* [}G>և*BC"3e ekEDJ #ٙah?X"zaU02ys2>QwAoR#EqK&8}6?:LRapd-?SO8nSx\T* `VX=W]Yj?ڣ#)g"g2gYӾ&$mS瓢oݪ< 2=_zV|Mh ŐտhxR H/6=Ȇ GP^1Sl0#ȡS)0 ʂ>mhN(q^{RASSir̔֩BDYܝišux].qnxLl;z o_An=o'KK:g bR6tQQE:5?*nw_'PN,]jPD{ En(hU݃W>cCpꑼ2؝_=/OPaUV@)eM1}^R4e^1V1n.p t8f}DT8؆x2Jj( չJ ''hN?$O3`K_-,>#NQme 2z'1׎?Qx1 ͽU.i2nlW{@ME@QH>e:O-u;{v|<ҫAU&Ġ hXA2t I0{-dGFHJ^'"hd̂hRh/SS6Z16Ӧ7և0\2ub Y{%=$H Od7tɀ M"U!4`pp<&:C8Ja8N TZd DRc(XΚ<9U{lGQ L%i* :j"Y Ga:A=B3/6iBDauI0aK=LH& 8@PXDԚmuoLiI&h pmgL%WWz-+'I׽쯜= -!Xr-_TUVGxߞ! /ca'K3 OiB?I֢r`tT , ټ=r& rJHZPxF_wOpu%FF@yzظJť$D+Lw}%%jb@oq XFGFfF.o/bIw0HE s6qy>r|m xF8qG E=\ǔ|b g<pr.8 /V9n(hH'ؼyubs=](Jd!Hy_#n,QsdnIc}. AAў~v3GzԭXLC)< 6q1X:gF]K["URܵXkbBБpOԎF;$3{4EYelyY3 >`I_2^Y7L%lvyT,_5H FaII~0.z7fj-ZRؽRMgXkJgMT9 (#L"3sQWf<T~Jed|zd]E@9{CSa^j NCie} `kN . 3Zk\2ܽm5gFۦL`ĭUN1| S\ޅ1$;grs/jW ;;Qcb/߼ ^=ޕwITlN8*Zf^~"S"U "UH當=YJ jyT[xlzk(,m*V}/!h?q'd(dt5QNB7O{qDFtDoFɉ.rP)^3y jez!=\ لEěfG1/alG[C"3)9f#|, R^ͼnK}d.פb-19N@Կ'@'gmTڙ"ʷ<Z9Xu$h+'U8œxo=˿ac3"U5 ~kouzk6cyr$]Q6xNRr ~MhJӈ2=+W3;+9)ZG=}fz+z}Q@QP,SW9goW]X1dpY<$7E Ӕ ~2YZ@0鎏# Gl3Ua^LcrWāFQ\VJLZ@dz-UwI=1w"O8tiPMfx#rVp8=B.9.+%'!A ae9 !Hؖ/ n(j2Q݇7R97 !4 rwH>SD_w=@g(o'F<[`Ngm9A$uQ@poOS鋹1l*|#JU[һߺXt̸\Y^s^zg+]J ]|%=2q al'3=+\IáwͰ Zљ nAEwd+jKA #Ge$. Lazaw o KpT_a/V D}L\2F_)$VpLwyfђi O#SO!r>4&tybY ^^|ћPJu޷xxMlyNǹP>NCw'.igs!G W%͉f{YT2s.Ij3  -o k<5Dr˺~(LHo>Vcxr{X:7BC eh(yjAϏS4m6f6 <!x:dC*]kxJT`yf]^KmW?_Beoy<;_E;"kMP\Х已:CYud#FvVbK2RU}.w\%)j hR)W JS^$(ǎt5gf90hV~D8_u AOahDD b+zۊA gd2gk|lM w JMR.~.ogC +k`So܈*(f7/+~*#uX!B H:LNΒ7xCWOܪ2:_=2!fv!Elc;s|`ѫ2췳5L%pO_jG=i8*6IGp^'U $9 !Knק2R9 Q,tAݒSs/@Mg}z*4e~: '^w psLa f0Gu'7&H2PR1F8u^Ӗ#PC:oez/xϚ?5%&\=4hV=âX4#p> =瀭;D+ˠ ';$RLtwtL*K1cnI ZB. ꓫ2؟meiX mS$2tclU>R.>cmN+5^0h'&A]*;=M=η)"sW_u;i=r{FY'JchzV91ma.3^U|z}˃1@ߊ; CdZc Qi]j ܆aϬQ+xEiE(4 xyg9g &SB~ERsWUv X kz~L6zQdj&⚋ ״y& w[@'0؅ Z8Db3B`mHUW%-hLR tFߪs8nw|L 4/"NciQilW|Ұ%^LݞU:x& %CpH%> 淜{qVVA L<1XJ4U(ΪFr7?5EP40]} x1[9iQam@3|aniFU لgv~5H8zg[z4j8GemSZ掦 x@8iO |&)1:ÒCjotda2Uc00ѠC]U9 Ԫx蟤$,3, 9DB$ Ef8bX3Rrm2.Չ(VQG8U:G>Q.dt<+sF? GϪ%~|WqB: 9G}@>&wƇ ~&N39 4A] PvĕȘA#Q'5ƫj3S_(B9~Q8-;P^D*ϻ1l~oK-[DŽ~e]( T ق Han$j밪vg>H]XV)=ͼX;` K0l}ca8vVˆ+lxI+8㐾טT[S]l~c8-y'AD^Wg^:? Bch(;dʣA t+ c8}e'(Kj2Iև'"dĆw[ufGb6"_n{B kqSp# ǵ p:o˭qTo}t+v]jcDr`Bl:JطdTsY$z8Ȕ\dKV&C"mow:(VU)XMK shg6p< ּPp͑qm-4G[x/dS<~_%څRApSGՏ`"aIc=Fpa]8HNncP!wTlS`.cT#DA4='jj3f9X|?nnj籆:̴ZLY_|h&Fp Y|5q6+o7 p;莺v~2N ypzSY!)%gHu5'֥׬[wLK}kLjJ$ [@w1_[\pݦJ.ۓIOHD/N&d.T~4$dq]Rr&Ko?z":XOᝈI (u4Ҋ?^K25ʰ%֫GFj|zhk&s\P m" :ͫS1TkFw8È hBL).y/ڂ;ssV>EdRJZDkiLs#_Cϛ\nk;jsxϥڨ!m*Də*5҆X\&Xkʇm)`s鍛ݖځz,۲ Kՠۯyt}!SjC9C _p+52Jgѫ{\Xt`mL,ʧCl dQBfZ %c䚂@H,B'ކA4%0~Uv#k-!*s0W2=$_QbZUC:;&eDX]|M\'d7ev?{K꒢+>9a.SҰI0Ր^iH+Կ?ߡ,zyb"ʨ!V9|)yJKKqLi-:^U97CCa3BLZkuueig}xԓ=B{Qk{CꔎO^BGXn|sPo@D(g pX D=AQ"䄌fżhmPA7L)(+n]P,m eB:oRk0(xfϰ7ˉXj6EW0"u}UttG/iv(2uWF˝FuKe)ڻ3|Fq΋Յ1W1n/!IUFQm@aܼ4kᦸIjb64HW(qgovF /"\.T5bmiT@%t4zj`6qehDi pG/EfW _J+KA ~Z8]Hي#p_DZt`?dh@B^\Z>:tʨl7_@R7 n$߇\Ezqu2͠n!SjpU $-xmLHͿ OO:1?6*%t뇹 t!yO\(?v&!PaCQ %MJ( ~p'ϧha#. nf7-qzEZZAYqlׂ)kY0hfB`ȇfKJ,3Zaܶ%-4f}{qCdNa]8 ~榬FD@ǐqU 5PICH5ixAm _n!oʶc}4g[l>$zOo| Ju_zzԔc ߿%g^䏙7 gs bc9|!IW#rpp>e_d#Ɲ ) #\fݟS璉ǣeN0b4˘XC_ ,pzPC/P{_gRy, ֺULC޺@!fQ%ze nQ>SΥER޶+IM<1)|uF&L@;mnU{г}-ƒdkW(Ltls.3zGI>6%!G(K[ ۃhIY$tģ1K靈AvDMh`?#)S(Αj< a.ؠ~o=zZ t|)G.X 50 bI'usuk#.iVIYg]"b<䓛HPScZO}:Oz.MBӆi]`p,V5 UsL0xiI"N uWGanKMkؘ^g< ~۴uZh4%CLQLO3BBY$a/kvy(4lQ̇TD9H{1ʬ uW:"AzwYi'Rbbg*D Y(764Љ:?|ܹ;5|>Q&bc P> 04AFdS f۳ `x. #u`xMTv Ո嬹ݐ"eZ b3I V #~UeޔRDȍM# 6ͧxR {vgu^Z&DzrǺGS 09QD)JNFuk1Sqs혠&Huu4BDX[sƾ I 3 :j)<.T/tГbՇ㺫Nmpm󥕆X2왆޵~Bψg%?7TVvPb+*دj ֌/{^/ӌ" 3nXp{R(h1?!P٣*FYs ; {'Ӂ0& T}lq?]i*-96rfJ-Kx._kIڒ;MAfc72s;^%CG.:z[,9D(#|o*r8 l<%>:+NqgMEku =n`9)$b瘹%~zmۊ0ڳ]-˩ؗ3Lu"Ǣ{q֛6'\ǕhR3{5X wC@EhX[;y#ug"`ij\ yu)pTN#x98۪ ͖>6C/*O\gZe,Ɯ7HkJ S##b#Q5EV3  dU1Y!طݚd#e[9)MN3J<۾c)}r"2p+Ep{姉()CL[+-jv gAؓ@hr+ 붲Re.웡IM(?DI肸o[=>,ZV;MYt?H[Qt&5zty5;_mpV{"#<.UFX^(֕ZªJD {fz[Rԉm\@@xSr{MQegDf!d~x:xeM' e@7{[O⡲$o gj+l}9q1 Όi"CCOilr*}_Ғԟ)lw2TZR4 @ε;֓03cw s!@uۉisCSS ]&&!b`j[!7.5yCkۼ&q0uB2K(b`ov%*:;;hԀA%4DwYqԣa%FI5=3^࿈ ,~w^3=`J!I' wgiCsZoL /֬b\mʗa˓f!_R4C Ȼdg,+4հ$4 C0SLy,'bGQ܏NThOK9@Mgb?nb,k]TFOD?a ]}>ܘuӧs?V)V/%zlX+sb#m G()ܵKɄp_3-&xҾ, a04hhnX{}l[Ó@ApY?x!)vL7gK`sQ8xcURb%XDA?RU Hn IYS2[9CKir}՗FJxzEg*FR)K K)N)'OV UaއaK=I4K @MX#-oubȠ}U%î_9߶QA%SQbJ粍c:Y#^ ؙA)Elh4$hLYI l}NaMr6m?`p]Q/;V4&mN[?@~xR^>|+r9*|U $wA*?;Ȧ}rwSA¼^Q%-<|G(}yz=#Pc_47MmGr`!S ,?+tWRyZѭHJ>Li"(:,A^11#G ϗAkeYs\ fص2Ȧ!IKOƌ\_=^r 5D\ySaV6\J}IDݬ8Jba%1>'9CT0v.u{.-6*V޸܎OR?ט>H*f&juRΪSj[읟Bd}_'j?^DHշ,$Pִ,`-p:k<{,@GajqEݺ,#wwQ)2;V&ReU].hv؅ p:57dކd_HKWod:lɇkz_;yUdeekYQ(a(_ϡ^z o2n\V`#[8A+_܈$hx2_okY]l 5#R|qW4@OiyʥׁF0R9&t\>6 特cNV=>*T|1.Q;MaݙHKK#<3C9-657H~T2FK=h^$!Avx Egj> mR'+E6dO]W@ݔՆl4Ƣ"3-ZjD 7.|l ؞E5*ʹ1?AxÃO@I>,h7!zp|T`#Y! i-WL [_#;i7”_d$XV#*}tQԂǴE2)-$&ݴ;άc ˈK6^M~]eڝA>;+aD=+ 3]RU%2ctPYA^yy 'yB码άȢ5~3;z}]%>GjgT}xW 5f%¦:qvsvD!r?pv=A[clZH7pP5On&%V^T6@ݣᙉ^W#*C$rU[}ƍeWI斌 ҉gOcs{[įEpq;MњkbcJ頃1pw@ Ae>p pXRNΆ_Nu52|K_3}dSkĝCj CϞ)__sGOv[Je)aG!/z DZۊV,_I30-P3"_fN_/ckhjGM"8d-浦 FwNT]XP6QA T3_X:w6jRS ԽqKm aZ>8b$^'U?M3<zo򃦸WQ:E%<24=FM@^ڂA:v/P;u2X~)|Xϼt:&)s`xI>`X3?&˾Bf6o_mW(K ob\yr_OY(Z*/yśP9c.e$CCQ$6QPJo/9f#.mhGȌ-(N6+3Tf?XemwEj{mA  E/.SPv,a=Hf<_:'Wܡk `x-dNt{MؘiN N)抺0O#w,4ϖ, hu o}n\%~uwb6L~MO&&Ff嶜Fr)+ܒLjus..X'T~ϵ081Z$ zTe{w|G)<8yp'''+Jyւ?+m ]&M /r(so(@_Q:d3N?uRSl S]zbHdz|@hsЉ'|^2z̓^NhRnw4YƊ~@^ MhP`UX(f\$er7q:FBRVT ⑃H1{_O,D\ 0mIU"NUE& d Ҕ&:k2+>g?ɑQV} TlCp_aWhp؉zT᭤䏶p}h}r-b{4\ Ɣْi-/z Sw:&z^@e@xeoixz 8wQ|c,GFCyr(Qq[MD=u~U0 쟼Q'$4~}QpթSzWcN )7RG,twvL؞H ^ Ɂ7_K˵k e&>hU+q0S?[({/$ fCV"R\T:övwcJ gS\Cc{7N;W0k-~N!<+J@#a.HG@  ʔ!|  fkE@n/).= > ΄')atʉQ]Xgc+p9DƑL/!g8^>"ry-o˟ruLbhaE!9h:ȗ0W½f[9 9,a~S<۽cd^ncCB#sVQb ᩋrun>Vݶ b:~+StsXx4ɒ*dOcO~ب݂D7Tl^'+=0yl1 J\ybC~.T%eA4Cd! tlk4"@qREV={7PkAyVz Ws'B9}"eBi^^it` ?2Pgh$c{ UIhIuM)b;Sa[&B̄7PPs$Pg'K@Ƈo.ZxFGVauxAQ?V-CRlhhݭ lNmo,kQɹ#'<%UBk|_t},ڕYHIV'~(elqRzTjoF ?gDm=`Tc: 3Ʀ:K %M)g+zV/M%٤> 1oa^!g+N`~ydpm{^"WA7Ӭboe=SO5JCO ΅FV(ӟp"m]ًϲ+N˂ CW6k:,e*NxUg 7g>谎dBԃύq+F=]כƻMeMNPeugAffL,_u~"4axv"eeL㳤֖CYAlO}<;Z*dgt]=}&7 Su`5}nFcckGG\c8!t)U}m#IouI9H)&$RtPXNj=.|xgRG+oΌrQh/?#5eez]u@V[i8598U#80-;6Yƣ5fgRRU`viZ)t3KIȒ)cWoוT~&,9TȆ<|T H_)&~Hqoh 7$f̻g"ՁSQ955Gy@7Ge Z20ܾߊ hS!w`|x_Z l_pKkY|wg,ETc|(Ғ(I*[\f jGoJ@Ehȧ٪9rLO6]f 3N ض$Ӧ_kaE58kmmYA47qrٕS[HI[-›+5d>=A~WE,g"*L>5YZi04g5rxuWݣd.$PW"(ϜXG!ZXo1VKHW0$?QЈF\u3Ѭ he<9":~hfvOTX4)ڧo c^G)ġ =Wa30̌@xj-!2.n+ƬP,°]Qf&1PM6۵gskO~ M{EMMhFCh=<&vf_; 9uMn8\{|rf_ك^pAUdn\\+;`6kyI1Y5 =j%/ږ/t e=6~B5z1G<,k]tSĒ+IJ5f'P' T["YeߕXE͹+ӼNXr&~ wje2rAhd+9 u}vƇ%nHxTIꥢ@[<]"lҍP+8|Z #he$n9T]}#QXvOZʥs6%\CX\0r;ݮan e+vqDHE☵fqCt^K5n+C}Yh k_; IHE˵U zClDm|D祜9?]I^5C{ \}y'j,ǃ̫$uꇱJ+ -K4 S@E8ul9LQL.y3 |`LD$.T&^C.,hA Iljd ]2DE BF˨v |ܦ“r8LF(1⡖GH^B#fw,/R48d&ueHPP菑j7iZMO\圽O ]xಱoqdE0S"EW;zP9CՏ:jOYV@`8Y- 3.RܰڿSp0 0fh`i]ܔEB;:r@t#i!T! $@b1p8Ca~RA uK՗/5>y ;8:y]yV~$za L7+ M93Q-T5#w(ϸFx*IXۖMjٞa rʄGvr16gĵ˩Nv;/JXYӛTQiURAQT{Y>AYVcTFTIDi.A_>cu.h>'gwn['uad؋^Ξ5(=st(tPSٙqYLj.k+uk',:a(cpf*{n) 2jn+S!ǧd_łgҗ$tlz.V WSS#KȄOQKe,kw~T/pК;}eP ,͑()[) fQ9v(=!9 fZU,j  WunܽH|ʄ"RTU6b sھE}op6њ'S<Wᅽ4c_DŽA+0^8;m=,Q؞.SONM#N_kӋ5uL ]BsŤ]\(.WSmyI}_io R.2z BUG^u=,üB#m,fLX_cEը_JT<;tm}[a,eSF |k!˸J =@y_yuL)x+Twt,Г]TtLoDn\3 ` k tͧw؀%ęCP>u%_>rEb?M]VbkA.o&΋T̩;Uۺ=cjNmѼV耙>3k Bo[y+,;l, ўl M(f56kRiynfllv&d.IT/ A8j!Ol XOo ވF~!|22Cf^ ^q0.^=L^l{4jEGzkz\HX+.uah֪;b:vOmˆ,PԊ0V]EuyiP¬a+0s @/@̯l%KlFu!;;)yfl !Ǫ%:,l_ Vr9ܚ5$\>z=WP`1a܀|stkN>gVX )/i"w6`ԨYM]Vd̒RX7[?98%ٝ ~?FZI[T$cڽRҦB7AsY3f*vׅGcH;] H|v!'Pm ̏ͪBdU%,1η3> i+pl0ޞv F\~)#I;\dsNQ0'ۛ;? eUDžKzWFq(x,/SR;m<.A]*3 )@C; 0RŐm1gbuO ,hs7F[F6Q19ץ-Sm>v6D1{vjgeF;U.ij٤ylu瑸rƮԮl}|] ,I)GConvH( I6Jk"`sКqt>kz- T Bl5vD? AF]VFg1?R“W J.WM=3|V6H|)֍{y l6R〨[HRض151tT 6pPrbQ3ۜyY-tK>'wٷI(60>FY,SɶC j%%#F42zZ >XM @uw)hBZ`>H.c`,4Knc|YU/2=='aht4h3 ,Gn]D`6{'lO*4W¬3B;QɅ"FN"B .S' zOC ZmBN:20>6 aԌK(~O֖a$tqxS!-^uV "][Fٞ'HX.GTHvOJ{ec;ͫLkZIa'Ną tN>*%lV=G]"-& oQ'j7jˆ6tU$jZ؆wfkY ۅ *xZ`~Ak嘾;N#*,WS/2׹0lpϟ3@y7 \!-t ժS7֕4lՐ@0Aɳx9hjϷifX$x}[\qd16POF iLm#3VM?<P>k?R c:Op+$4|aC%PL#/Lg,*8!vv6]jLA4ߝzqdnx+ %fU_lR8RQM@\vT;]o M9 R&rRbN<?-l?JPDmcMo~ l t<9;ܵ>be sw3lf_kal/ZWuB.@ISqa ^f ̵+Swc`uD|7*㢮+,dT*\"e۹6%r uVy|TP טTN8zb*-xؖѲ#i4ha T =cmħ v}JM5l'$fpW`b[} r̄,9sM).ItEỒFڇYHC([.Xh_ZDC5O౸k.A#F=DZ>A@G;B[4mo^ A]KYZ@OX)ڶz)70Zs\ Ai mqNi7RmCU(kW t JZ\"ˑD#[A48Pks*ȔfLG_S;MO}2 pȀzGU$P_Wy$ mЊǙ4TFćT+tw&'"gղf׎QpYn^AKi;m}'zF4˫p ]L/ gMtٝHAɛf `3Y9T'MlZLN) 6^7x7*5 rYEczv&/6oD];Emq=^.,\إ15-nw` &@Ӳ}}B%6Ӎgu2I+oOH96ϼSrTu(BicW*khWYJ:H&o0YN$Y 7ֿ N%W{pƧת!$Ξ_aգJ+c],5-6 ѩG%B5)z8fحD:ܡ_6wN1m}M UT:C╚"q>!R̨\9n/QMxnŒe@-%++/ Eܩ$HsLoNbf@y/TIᾁ-`*c8/l/ϺN8TFi 9O&WTl5)N6p^~+gU,O}xP5:M:.1J/.ˏjha o4}IaF8H)Oǁ4ΆB0([yWŞZ^(9{5-ˀJu'l]lPE\& ^f8 ̵69xg}̕ 'w68–q%G"Pfgr^ ֥&R ňkSz="9gIk{n/Uw|Q(`>շ.d g%½'*nifDe ! x6\h~#<zz;0t0 F܀;zW-27+͊GZ?ozY2Ty17^؟S0\qhUb**$z<C|f /@rs3;9Kێ#2)am-lQDff(0Keg3 9% `&vC2A&O~w$j3;Gx ,!0J 501MU@a!٭y?ܿu\-{e ^DsUe1hX;~5 $"TE<$.(mRM^O/fV_e[@, i(S(Қ.Ն ̺HU};cT,@ i=RF)wI8nMˬV-W=E?[ΫH^Rt2*5**V˟ºiWd$r;Ҿs?5Jyrs#Qs~G_r3 ar_Pߦ)jJ xw;`&^첐ƾ;vw|uDW'diLq CDIҲv߾JZ7Fe*ws8iH)B1 {[#Kz2gm&5g|z‰ϲrJ`'LjRw r 'Y&P 7FIpuc;жm&J)y͋@BN 3(5rSo{k%l2vuWW$`.2x5᪇UC?`:$sQF>L@wr}I{6EvGh]]|?kaa0gZM2;.EjY'`*5!>~d(^ gQN0%9 jb5.qrK^ 9QsZmV*WlAr~TcԈttW&^O&lwSIg sS0|2@SÅ9KTpyDd[[$:z 6 t~(XKSc',|T7$_Ȉl# ]k{g-vDcXZ \+[ EhT=?sed  60s˪Bs= )Uoe`Jqkti h_b3>bNţ=2&{4-Z5ЩJ4u&kh}<(ߍŴ~# 2I{ݵɏLj~~ʪi$T>_gw>GΜ0o%uߪ_ "oYu4@y+{Ll8 ߻ 7j(?tȮ@q'Ҹf;Cq*`L/\'KrӺ 7gaC񜻈WFRFó.H\֨%+  5d pnh=7"kDƾ7)G,e Rx-i%|+bU XF8DQ-[u iY ̰g3*T,˜ d~򶿱ZO-tfXRq6"}^A7Wz8#UlFi&vQ%+k6Iy8P>b(\n.o#4,V7UoO|[ Zxf )JpG_k_HsZ42%_!Bc]9 Wu?A`yMe2HpN{N[_o"-or2F?1' ?Vovj4u@e2I "ac y 7.l+"s2XՅҭb֌6κm(77eG9zՔx`X%M$p$Ttz/e#j: ~4 _ИdQk,Yu=!zgRPZ Ð@_W7TWw#Ǟp-ޗBrn+㳱uoMeX#Rn{kC`5rǀLEjV=ߤ *Ug•1<G py1ܑphH@@#]%yy1ɖ0oo,{"S]\ XCYpqFcϗrj DWgPW&|ߌM̩o=n@\k H.|/!Ejm@0qJ5Ӳ Kys(N{w_KrѾi9\M&ǦzFe\ B!b_+4Eն )/gObmZG}) T/MELJ%PrȄ/+#->ͯQS7K;(BnN1}? ܟ,2Jz σ[RBؓuorEJ>ĩvaZNҵ-d"L6fKyQ#C[Fs9ٳgyKrX +R6&nOXAeWhvO 2JGKv[l"v2ONp)G9ޱT8Ύ8#$mTxPmu9TlJٛeBlKjt ,V %ӝpeyVG_'wKr8xj=av*RhԈ?RJ°FB \{6קLkC- @SiI]>}*/.6k٪r]F68F]"};|ïKmL4B[e+]NR5Mч==H.fSxZ#*9>@Qm+Zij5L" (3Ő)}|yK_){o'E1'XrPL4ǧ|U-uoq3OP.wMunIW/ r@3Y.(Oc3k߷ѳz%qbchO+gö[k=E eP69=.#!?ĘI^t_'@oOш>ˮI1@OӠzVZRM30Ky`֏;EmۆqvsEzFE-G&H.]RdmKq9a*^k we%@~#$ Xet"$]&BW|buݖa'^"6FVY҂gB Xk"}MZ} 9z6b{-KA~ܩ8yJa*h7\Jml )X $E !&aȮͨE3!)gm[(/c nRJ| zk2VbpôTeFf(fg&;㐜|Oj?'N2M98A`dpBة:Nw<>{q].AFJki4ZɭquMD L5+2L"j)6z>@S" Ғg@qe:*Ziex#1#/|.z*A[3Δlr.hsl5Mjo^m;^ `X!Ff4v:Xǖ0sg}A-1f6~se&v&@%EzNRKv5צ]/HQtLuF]=ܽEړd~.A ٮD0p󼝩1hP|[DnMwY>0LW3 [+sQu#): HZCBC+È3yggSI`W[,|rIFkSy<7 2Nm#-RQ~Ur+ϣ$~3̐(r}P=T+]/MѤE5ך1G׻Ye9K|S-{gLK!O*z6G8%oʌ :Q9byL?: ^ڛDm ⭵I ۜ UQEq,6f!!Q6]sNUdB1qI/+EDGU&lw}ɨe!>ap/pEuB[YP#pςmz?B̘K7~ǠSdYgYsgܯ[ޟIeOpz# kH4 r>6%bBB߹tWh <KhS: 'hSe엇˳ z[я#kfj%N\l yUv6JI*,=Ӡ"qvLr_8Y(W9p2Ϳ(?Vԏ.O'0Vp0Un]Ah[d)";@y9&՘X s>[Fα? >Ŷ}RH͂ 27_g9Bl CsNFS,~mE^1TC9hE[Zmk,5?˩xpf`d4G+@)MRPh6)-tv`Xď?r|K`iwGލ15Ja=Ed!1 3[fiŘM{eS![hwa<̌k% EVտGYy-#33Q2'E1s~*tekO~Ծy=.xv01v{JJ.vB U"V-U~o@Nxz,=uQmni]YyOLfКƝMfWҟ3 *dv۔5qnilj)sM 30V/;&:w8|DYұr:,o3[<'P(~m WIE<0 %D;aLQ=%P[UZ{h9|FRC(zm|(Kv,=F}G JB;`j~ۋCedX@4pmӚ4E[Ϻ87V UYSc;#֍'$6H)S**6&(cGx<40>Nm#`b/R{e:SOeݞƽzWaҐVnYPG7OA#Gx5f+ٍ.톌ӈ t0= Vpbqd/ ŋ霉<%>K'5(uu;~tsz9 ZrcnœbLR6XmT)r* LsA uMw 5h'SZl 0VqlܰxX&ǫ '",Ζ$g{uN fjCLKto&͝gBk4"`2ie'X8VEp HE f)Uw`qʋwG; [[ Rwfbd[Za3[%7<;t}ɳ56_!WjԢEˢ!ۣ NƛLKXmТ2(-~9N]zGFYX+ lw[|ANkPeI DNn q:Fy(O,Yc+'}бMmߠԁ:ʖ@5}R 6 umGg&s-{u&+M^Nd"B5Ev|9 Ai4S7<>]}>Y v/#%5%7cMfLf3I.Nej;g}> SHA%(mNo3WmDqxr6LDC;Zs*6=5"}1QC6}f xu!Ν/C`([Q!T x{uJ=f{r׾ E,fr; 揺GY~t&ޅgq闳aQ|An̼:b1k8MvH8ޏ21:n3꼱@%JGg==3'|9}Y)L"RMsv\VcB]yl U鑡OnHt.ȩJsw&| WAH˶ ߟf"Og- K205-;IX[֥|_ʔH  7ߜZs 5zJ%c 8vl}Wu@IU *R 6CEjπu7n6@3 S+ !a".A Xe%::/llAˆSǃő*Xb5ӌ3=NtN9w#[yY:ZM ATmaĀߖf1m[:@88Ͼb+RQEo1""Ɍ/Rxv8rŚa6 _w0=b|s4=ThKd+@yiXbMi߶"0+ٌa_cnFt]㸩Gf Pa gU-v5Wη!df2&]*2*` &ninñg{.uTC<)Hda/i&3ϏlB#cZ-h'X!MkПwDmG r9(| ed<\ӶԹQ/Ъ\\͇e%akYo־A_ڑEpZ>6pмCK ~ۨjb34;zw}\:KVSbϿ3⌄XH3^:8%;l*ּfGOʫ2^ DT9lDUl|9~zQf3fՅރ`0nPXǢ5& F5=^g 7E?X/ZZI9WxyVP~ ×_ή_kӹRO|*68jBŘL\mS=zסC]4U&RO B!xD>9n@ PԫI\a k&WYV_I #y͒Sug]TuaL?!Jyzb|"+_x4 j]Bؔ4} iRf' Mݱqԁ JA(~98y/@|FY`Ez0kr bPxD~LV0~4X"9gJB4Qb>=2nhߖ7մHtj[Rhr)"ġ?ŋo M8) V{X}"a,XDi]\f\i.@.+L=)@ y7Rw֑NepW7CM;TPϒ]<7lN7\I7,9, Zz`=@R"m7x8{Pb/}jL@naVM.Q͈vc(}] -َʇGݠ g ffK@ d1?"ʍ GΛ>m+ʭ L׆x \x=$:yJ<TwEnp(qro]5Ԁ͹_qR<^enf k6M.}c"81KpQDӛ`/LhaiND=\xsL;|s󥯒*n^֝%_-$=6D$.+(5O}[1H*B xapJO (fViL (XQaSz)vU-1nZ<ԇ{$dm=zNAQgԽwk"hi_K̪BOj lWUmh$G`8rF #طc0&Xܬ6gX v[C FQ0AV&1T!ZLIz بF&w3Rx8|̵%x]BѐG& m mc`J%vE\K]KHM7 FͣrNQ}IWe^N;hxWAfF`;5Pt_88FC3WF=ިw՚%kyasI} [ߔvk^r|cbk=Ohl@sAI)ΚLׂVXa}RCٶ֫%QEfx},9O9#=a,O2'F3}5445!xXB7M]gmh=8Ttr3X)֌c()j~Q[|YPs'øsnX윺!.0Pu nKH*|kO=(D]7LaKn3f f]Q h̢+$S%]: amCu!٫mgitX$Z.62bX6ad7dk~uO%e 'l@:w1-m˗1d9!|7]+lH|Ue'vJ4%Gϭ_ 8<3n4OMB4[mBW? I`}尕݉{sPxG:h||~xY}[].!ZP':58BT7_{񸶀0B~+Htc{APL ~Z-x6c=w>8?[ lN4d[@:~/7[Wi%/wlȒsoU*SzU~woMu(l Փ97Z: mIIqbqoy} Ƽ uFȦ14Z4ˆUlG8ƨ0q–k3oDD6ѹfib mvJ7v(c1mblUi*qPQj@` _sJu.caK~ť>BCF Ag[%1)\EUXWEpg\.̒DVFQ佌n:([t%_&rJUYW%z7w^ <^P?~32 ACGZQ^EnA _lzW;PzCuɞkNC3'M^ ]udNfڳ><4~W_lPx;xX$'JCm U@~#=CcGzTu[eΘS|ݬr5*yE(1xkE)/ع?D6F_wb9!dj9JwkqZL2 JJA_mN8R=гDqoHЍe}JXM \HY*@[49レ Ά撰-~%=FI5qE f^ cf39a| ro.ۓ(lAр Hm"4q h$ݾL|\ $փ~-q\a_g*(~k!.-%ގ ԫz\$Y:#xr`hl"\{t"=p1vBtGŀw{@ ͎r QɖCgx/D8TAöΦ1GїX>A?$f/=Г%;UQOX6;ŕei@"41EAg,ryEQ uJLx5O\\ɩt&*+@NI.i]xnO%6l@*R+ l 0`J݅Mf_ÚBx\T&]Bb)qJb>(lIS6F+ӌ6\1ĕȺyd?nIEJ Q@+>e3~hឈC jLJ:U&ItP@:R񨃵G;>+ZQ*H$6ׂe*v& ݧ\V`ʽ.e)֪P'8ݜ&ccc@ $WT<]BdG?r9jy7LKSgC; `_aVAgHtaJC VBw΃Tm>g\\U܃ZfWb7.:6 6\|Ήk5׊e)$*&dژ}2$p kuhXTd8'S%ߕMgn*urJc\;1xD썈T*FU/ UZ"']7G%*^m0Y. e&2>N VмC nkjφ9,`=4˻6v'f6W'VItekv1H\],t֑vJQ~5'Vk-$&qrhTlW_̀LV+|fѕ/''[$;e!n4{ej5/qM0s*#(DnX"f}ycEfTGزn@ADi 6sКG}ηؽW⤜-i}*̲Q0{LȨʬ"op ,b_Nva{gK/EnA4RXb Gz!\GzxƿBOмGnaŀ()Y!kY8#/o;9E; *9g!NqTGTqLmmLe*۹L/c–{^Y%z@GGz'>[6aakf`!d*DD]|oi0GJ-/ yp R mzcҸ[%fyOV̮7X({v8J_wA쥫i3z]Ӕ,HG(>`fńeAh#u{ꇷ=L8J̥i[Yj4CmmPHR`/mEg[:?mьKj@b2;˧h]P`җO);^s\ 4@>fғnҨL9 [ͯQbIѮ% (d[ V0<`Cdິ("r j'gmt|t  @DJ f0{=KpB^UD`awb8` lg (a7Vn{2+59j;u[i̳"ۇ1[xũO2'_\оV~s\d DNoFJ=8MJR }|YA>咶|^bM7D|PVQ%<`9 ݈FBm$u}{pMd$ٕ cBC\*G;7|[/Q=_bѕ֨9OgaU){aÙI?yuY9y:juSÝD gB6yc.[ Vq3Z/#,h *I=CBй': d\0!zvc~Xt Em5 rJ)K A?}^?"4X7YU. Z^~qf&i2:5 \QP֯[jr3%곊dX,lWP~DX (JavJh^Ō Jb\R{ܒ㞭~ lA"ҤЮNTFϰGDJIW弧?}I4wpk9^^^w#K"eOڇ3 wޭ]i_˜5Z%#AYď)a=kq5_:8!U+/I`<i(CF\giLcZP),&[bNΝdAQKn'x~pU;y 4y1V֌$GBw.0AˈT=g)ڿ{# GH^u60..axfb's_c Ah/q;53hSp˺UqlQd*5܈D+G̙?cƻ71"f/tvĴnqA'wEl7p+qkRu{K o:TMDa&jJRuy$Rf~*E<PzE{Β x]bK@-ݗEC> @zU1_xd(}/pE\ТSk7f%٣ȿ`B5S> Qxl,aj|.R,mxL@ނu&}5k^)P3"V{]ԙ3o1o.O7C!J8 kP1f"=̳kꡏ݊ I!8cRP7e@G(&vOn@@xly+Ck N=h!lw;郵2t+Y }q5 (×稿cɊ dYgkֹvP>pH_@zOP|h%z]_ 7XOo9pϡo5A1FD8ɗ.LdTld0EJv8$7QagAH;'1]/e%}YԄ3nyk3,aFZam4;Xpw^z"l7{a'uP`Aa@86lQٖw΅s=YN_'YMCM aV 8m+JWR9#~7Dz&]UB`E7k]k ԡg.3^b]m3f8 mjikAAojӯPD+&Pm d+-7]gG^܃ :v6;E Xt{ x!|OIs.!$AynEǗwRٿS9' 3Q[GG1oHd /_G`d7XHA9Z z?$$Vw|y8ugxCQ5RYҔR-->У ga!_5a-?D١;1XWXBL@!@"Y7άD{u4/]P'*gaQ^GO9Δ / \jLtNzoXH%OI,X;P @(` T8΁"7ħ+nR1>Fe3Dt[3[T,r5T7:g{U wA?`e"qr@=U_źRJƱ*9[pD剪$OhKWjaĊ \i ln'<>#ܣ-vka)(qKrOzYZشkNsʕ$H䙍 jz;W˸M,9[*3 ݗ#>̋B>aQSPy]/`9DCOJk Ѕ,5Q8"o$vM1x$j/EZ!ʟ۸߄gkDfNowPoAmevΊ58g^7t^x5#KkάZeCj3d6}x!9Dj,S _c(6V*G7hܠͶ Mq2rnWs6};|nI2mSF΢fgk/eZa^hJKPP<;6/-Rߛ 9BCnYףְO+s},IFϊ:/k^({u_d}yƯ,`+(g5g:ڷ8ePU"D.W0vץu({B.p@$O???^`6-6wzzDn;EU{iJ!]7aY' dx*ag?ki?:6I.{DAM]R9U0#.ݘZqa%={z=-, HP1x 2XIm 0pufjOw<"@͇e2}e@*+W}0߭i*FC mϮhqWF+@ЯzA!hǍu)FH? }&o>HGU nEr5M))nf|yxn&,M^ݯ(IhH.>PܖkB~{,W1\z\k^l̆r P2O.ZQoQ >S&3bhEn|Qs>Aa# ~uk\Ց@/5!T]mv=iwhP\/EHO8o30Yz(4鍳FrnJ䌘\wmbnmLX.{JRr .%A"YU1UN+"Lbtz7|DRHZlvǜCxl0*` /aPABf.RkN=*M7ꔔ܉JieF3 _F2hB$ a>tqS*"Q<7c7<:8DG3:Od˸m\eY2u8[t'C=TgDYJ. oo|r,Z3c";r"!$Tax*2%4bt|b245cAs _YRsyͰGFD8. @1z&CoƊ-|NMrIÂ;:/k)42 zYs"`CӞOoběyb wםx%Tl/'F5Q'dr5%8zJbݑ\E^Bi _Іz);Eơ tPo$?^ԵI;5 :IkX zXI [_{7)A~mzݍep^_{%vԹLˑ!sB&ݶN׋ᝃ?xb5L5|ӠeH;x?ggPg4 b#m faC&(}HT<&_,}M#H] pp}¥w3ՉjҿF|WKb jBhe Oz+lYRt4(@o$w?$5x@/^ShWWuί&6v_k lRc& Ղa>fuS"*$I\]F͗ǵ& /jQr L3d嫁wF5w71bho@*.eeq -hO^S ؘGp(y#=G<`Ypܪջ؝kv(tR#=%h"sQ˄d#J)O0mf;;:lM6΀,,biU\?zk2 pQ2uwbhO"BgC}:s!'?6aUNwRm9F2ԑξYf7`ՖI4U1rޱ_h4;]+ic(??<"k-a ŪwfFThODO6IW}mc@pLtcj]O ''#Ig.  蛄n]]dQU$I]pcL5tU\9t8j]Ei\WmCЌAZTT6bmDL^I)fSf"ΒGf6T*N8&)G"߮㮡r"yM[ Sl;KfK2Iae-?1E rM8ښD:<3)m,DFAܪ` Y\fPM4Lu?@r#h17WhYŖNdM~v: T |%qU-6%W&ޓ>:#8 4p˖D(CJ?sBY>NvL.uL!;Dˁ$W=jf_ᬫR& JmLٸ7 JN ^޴ٹ*KL7Ν||+"m%*PPy;b#\}c\{O@65.FWzD j|x֕OX&DW|ni|<7|O{ޞdyL +bݖ0icKO_\n 4D;~YAn R-r ?(?1i}R%3q6}E8C&(w??:G[xmhz\\ݢ1!< ME5͓ϻoCti+p,{tm!c.q8CƮ0C)[S6\(&F$9!p+ˋ:]+::T:SX^y.2ھ_M]:TGH{kmT$NP!;`I -".>xT;hK* ǔ8Z(9l\ hmu[GB-=4Mu mf̞N+0[l[wS:!$}gL dU蟴yq(f+vqύL}M4mQH: %C68ZysxuvbXe4>ZqȬh/_u~-on{)+B'a_JFiB& iO}}'a7đLW-]|{zI?]{,0YWCCYD MD/Li[txgI x2VLL ҝ9MsI^q׉Dat|N)W3~gap3L2XDP$0ߗE۳5e)3rAO4D G7IŐ=H,*6.W(c<D@DX٦]L H %͗?57-'%Pg\B`(,U`ʳ'° >%M4>g>cD~@9&X #fr}b8WX]ug y2%i4ziX趩YQ4F<պ{fφTIuʡ5 H=*tsiX&hV~qzk[@U?GchhbD#/֡b] HjSI/}!1 @ՙ_ߌ4/=/H0`I+-k_N,ɱrݕLrje|Ibd0,!Ab>i$!j|vrRߘeS]SRmoۦr@uCGAϨ?#KAb¦p鴏݄es z0/wg|HgyzB;t׾h"&쇃 v.x'D@ zMz~&G(f'Wt0~$}_!p@:p"l|kGjÌCNFZK?u2|&Xӻ{Q9r' .[={v&SjL2+7QSb~vqJ _ g{tey.y3N GO;1Z{Jo=?Udd93ּm aOJu(x}2(8cE'ssX?X&NՔǰ%-]q}5R"iʠ Չ y@{q_b.%j8cq=M -H+F<=YH]P2{x!7gQ\&~rB _y {~5!Hy$m]O&&H!B*ru8K[,rcWz;-S/ZG՞Pኂ湗#\TXs/.S+V!WVhI#t rWMMbzhmN'_g$d Wl eteeÝ2ǜ5IXwa)02CQU\;'U}jdO:b&S./xܟyTnr^74 b/ae:h1,$M=00>CTdq,4hYսҏs3:#%??Zy%eP Z,?U:X; X1$Gȕ6ݾJ:ca =E3b̛w%8(ao h3~eڽLX})]exu{0C$M)c|8)mt6\- چh_DVGQب QY؉Jל0+ka%2[4-%!$h2u:>;t-i )>z@ZSSH1 Q~WnKek@~ޛx6nhϩju9iV#}@ݑ:I ]&~ltxܚvRcu? /mG$m< \.!emrrze:]FB2k׫{“o⹑iU};}=n&lJ*KFT^^JAc%'AF2K/JUF\{ p(xiXW^_FA7?XIoN4f&ÝEHீly4y$. OS_`1f7ѐ?]C0ٔ k[Řh%\SգYS\FD.-7Hf )ZyD]l#U}ceJ#Jq%E ϼS3,QAʏ;RJ,-21mO+m v<oSBC 7CCMCvI*Te"W+\X殶D|jޡkDU4[Θ)[M6>35q+~mЫy G$HR>U!7Ve f[[O`=U}4is3WW8u3ޛ%bVVgp;NU W^-WnI(kK^ w.u! "A!l1_a%ܧk26}񺚟9[UW{bQH&ϓ[^dmB0B]7P'.[(h?%֝IѨN 2+ޝ/xjj/ ~>Zo@Mݺ0Ckdd (jZY Q? JDibd PI(i"[K8\9H\ހ`ir&wTΪj/C->A (hs׽s)n> (/vl8BkYL2('bw%$Xi*>×upϠ$j?{ZR'6`οv9J6&7sMfT>k}@D$Y:ooez;y)dS$ĀQZa e]^7ms]XN-W 1Y%{UZ_Ag'ӓw'&`T\hwp&:-V@f(O+J F=>B477q_BAjjL r-k×}֦p?-^7Y)HXcĞ1UbzI-1r~I?e:#;9CtI`HDŽ>!uЀ݊j M03C4Вob0 dqf Gw<-'{~Pڠ㝇 z}ΖNZOͱ˼|_ J~.Y*A*:XHAӏ:`qPyƚv7#mժWqR/nve<.v]"@;a>/wԹzB0P< 628]<RbM}e兇9S]M $%雑Mc,'Unܟ^#l䘝R Dғ 1]ͩU]87lsտGojSP Wphb=f<\B`O+_>9NfMk#_:2s=!)azeRG4EPGw*r=Btؖ< m .o=R-λ*0T""4 J'7Kݰ|3^60=.±~WZD8` $ IWrEu7vdgMlR~ypAH8_r+Un VQ`$z:f _dM(#s5V7ozc<3q%3f`1\RԮ~sՌuBk[ @@Q(9& mcA9/yD\;?T:f {Xgxa^ghև-)QBqWvд|7+uݔ-_d/ R/83rկj\ߒ(,/=,P>tE`?xlԩ 0D) @ s:.LZPoPyV9][Owv,=V6& R@O$],]ޯg^b](;c?##rlzh?"I͓"}ǂ B\C&U lV,c[` 4<~~_ wToF6%q)xnvs(ˌAOgRUV3GLB%3:7=xy#8wźάjXLMꌴpt)y<$vC̲biK ,u?Е.Ś l@ ؀?pVUST^ V58 M̕pQ OF  )^Iu =W ǠeԔboGHsȵ19apǟe8q.sx /*!y^נ!CFK5kQ*0#tEB=a?@=4H5$wb zoX`q^tWbeUrHL¿80F=2x5ep!ب\Wo3Ք6OC,bmޛhBdkc%ͩ7oS<Ղ L!1w)ɥ`OgxۥoߒϾT0l ̝n47;LJĭ#Usn Z\=e.w uIdx~ HPfbD#_i2ZF]'-XYPΦa}Aέn&4@N^(U E~8? .W0x $ LNkܪ4!"* 5b(6*轡 S )Ai>vo&.~@䯐!_ оv<4wYţ'IGL,M)ΊT5Ze(8yrr'^3bR qw.fqS4b5F2jjANzUY8Mw5¥"H?W>ehyԑݡn-42_ }nrf2=ʞB Dyc,QLN7]~A8g=g`g?WJ\n]?o8OI̧ů|]0İUjQVWvIt\>81ГyG3~lpJʑ^?67ülnxgS2~u$Kñ/+3v}WIEkU=6haoFKsnw{G'?D*R5XeGJ3h[jE!IqZ3-Ȯo 4:! 0'8kӏT:\ZSBp98V+'7Mdgsq8ǃզw V|WiFM 854bvٹi?Uxӳ(K2).sAU9kN{i}΂J@ ͩAbN|JY%Vup WE "ʱL?j}@W!=IЫl>@k\S)8؀jd\)2 s} yOwW)t7)2Ndz(k #^\klӉ,Ez .=;}=E%T~,b獉7Yg&0p@XB鵲β~ כo{PDU3-ugA7x[m,ٲգ}*ftt(V E.|`3!I/)n=SJKukvT>|7ev%-8 kf;~҆sExaaA;ˉG먳 J=}Eg)1(|$oտity_n4X NŻK"qL,>`|].K-Bn&:jaWq( z4, k*GWwYƌ"_ioS5P5"( ~//=мpéY0E6U ^3KsEl{GkF%^=O.]_N;hdlXf}H%]@;B|3N6K*YWV1 huS0zG;c)ڟƊ4j ^P_+*+%[-HD!fA/ogOs=s/@} ,gsDӡ';0g,#e٤EG$5+uL1бT8$ڧ,3{T\~0fn9G~~z͞v-=T| <7,MV! UѐO Ӿ s@I.kl "01KCatz+=/wA6hCJ9UlY'B,&NٯT{\\_孏zp)*ttTcC%J/茺tv5?U JC1]:*5r#9mx9ͧYvv@c"A$kY9ymcY cpX cp"xGrh˿FA4ZͼQ$$C8BU6)jYa+% aJl{eAbǽǴJ̚Pc}ycJƲ3?_s xЉ@,G%\Y4]PMX}"uU׭ *!̓aƵ4ˍb qX0cd`d:驰B=P3GC˯yy4pg1z}=uO+)Ʉ^.iBzBT FW —؇-kzTF:~"(9" 0I߀1]ٯE@Xy6Cʤ@:$ќbҙhK0>r$j}B҄o/~XQNVz'iHcGT8bMZE6D~cV!{_+6%Є&DZ8'3htj|e9P+_A8 !`[Cw)TvG=#KMTZH"_sBH8Iy* cU[äRIbI^X瓌](ML "s^͇9 TnP1qF.4 yۦNLo># Ī[DyJܒ@)r"Js[20:6[&.ʈ(qYBUL i':9@7jJ]j!PTvj#GV$oBQv5ΧtVL  IbL(i##d?$*Vg]Hffh* Z>YQA1@Czpג11ݵL!` oF.P~Q*B60aKr>!`iN!m9͂P`:>㨟"q &jC$n_599*Bc\$^ݚUb^Q-=K\Ulfn3k=Psdźmo+X^N@γ3@VڐQHd B+HhBe!32oGߘf6.6-[#-z7 :'q}koMҠDxG ^Xz>J$c!O"@G4{!x|4U`w:&`:(; Ks15FLe;BģTg^sD\)p(BkX_%%y[?kBѺ臃sd˒Az' a7&S0^&\"ɷwNJMZ0rU6omYU!\Vj։6:)\mO׷4=ooT+]|]X!MEB}ߞ@3*I ‹q @.oܿ(x>OLCƖAH 4I)PA5~5}ᩛΑبϻ5I cd{纇ӻ.h{>!ֹI^xa2;%!nQfPd\H2<*:kGX{f *('72I=hif@]hC~c62k>n(ΣR'ooGiJ#BfIYr7k Ј g -;bhW$ ػNJDk~ X1~v #:앵bbm \dBV9Ɲ׾,Вe jƥN (JlzӨ催FK־ ņpcsL)~YsG} ɻ0^ :nPb6Jpy'KJϲ U.^,VQ,z^#^`ɭMΈ S,bMR-$ ~}eJr(l_S^F82fKEh PN~:̌#3_QfI^ON̗%AF] ^ O2SnSz6ٵJ`gnU8B\s]m'RG*vZALh n@"mII%b%\ m)ƖToȄP|In ؇4?3NZr+<=?LI7-2L2N Hqe[lX9kQ:l":ltG9`vNuGjREBj?&~Cѩ :d@v&H73Bp ҊKGmr|)u~q.Z2iMv#l5xCa\,gC؝MΙe|.v)m(VYBm:rٷvH9ȄQqqRvQob|GA6Fc[iIcsNv7<,N8Ab@k:sBŒKs@7wF?vI5{ԣ X 4gؘmMDQp$ q^#9FFE )NxvzH N9(y qVax8flUS H-'6'h]&G-ƓC$+k5:iYhjk\v'z͎^Y8S0Y}X#ibI h;.s HwRJ&*1kCTOD~*V@X^+oY+n잝ШD &"ST_rC G$?1mu}[{-,D98 qi?%Af(B2FF*fSa<| tTcJ+|Nӵs]bE}.OlVKCp>LfEQdmoI9ֿޓYzSF:iwDi~KRp߉T9Q!_xXOqK 6ÈuN(x-[j9◚m3˨V&M۫Ap clo{V{]0{|-Ů( j,iؿc%[3Gf*;X땄 ׅ$I\#wJPܺ‡ߗmo{8X`,fpC}y JDbBfOăe_xWK2Xp'-O2³ އTH-T?b$k EUWhHw2?䘒Rub9X(ryĽOW iPަ8*?LJ[m1 y`3lf=2JZ9,@y`3•A񧄭)_4uZisǣשѶ7(߻().Usǐc x /BX GUKS6nZ? YX{iȦZ jf.7򤚙>?66{*xl"KZ/ɠ]+ #GKGA?y 8쁛ZCW}Bя.nzsQl)(p̜_Ʒ)v=33s;q 2^6X~?(VS =i2uVn=3h.ˀ"CPlW0crr`3IqFCqvI3ɇ%ӹThQǍׁ~i&nIt<-BU-c~['"C&M%ub]~dN D(evhVd̞< :Mlj]=H[%4=*G lv`L â ^KMD[';u0;i71VKQ̢M Rg!1h?9`FCG>#JXjxN0y E^&Ƚz^n?S>Y`Fp-?Fjr=\ƛuЇ-igQ4J~Ӵ'½ܩP@;^u&ć.){fE D|竫r(Uh5%cy l-BKW룟OelWP}p5犃뽲Z\wIx'Q{`Ht?1k|/ş7@nDk~ ~cFpCPbgU5z:j5vÈ_3˒%0R@ʕu^-H?/ˀuXLKx Y2w(-C)w-2sSAE֘!$@', Oͧ4amēE sJ*<7,SP,A,HmQz;}_suA9m_kpԓ8j cڙ#u*b`^T)[ϒjYM }VyD&U*sC . 1%uNArEp 97fD6A j3M&9<=O-p߰'3d,<)VI42%sZ @.4`5=^M& ΂Seb8$3H}W(Tx| )6N0fαr/DB_GW·Z0ue'唜Ww]rjmaM_!̓BO&;K?nr`YmM,X z@4rz9T^Tr<=Ϡl€ (i?vڒ7FlYgxw& f(QA )(LʡcR xJ]:x=9/6)pyJ!@kS(za*CMkVnXe: }ʊ_.1=cZ@Zm`G"L E]K4rou(!oP*Pgqjbon5{H /x=ߜ،ݠ_M#rG+ӭun%Qt;8#a܃ս" YQL8N .|TDoV;_@)zpșw4# +^2;`mRnnK.# FQВI=sA@]qg*&l':{϶Qb5qIYq58kҡ$Zd{-)\}xDBĿxe\b<Ɯ--F[1EEe*TjT S.ӯ6C1?\]Mh[-y'S'&Cϴ+0Q)ӕ^JS'H( ]TdKҩ|AaKUxq<Nb͐=Rfa ͥ 3]V~}/lW3W0.Y NPPI[r GļU;a˨no&yDm3.>{ާ݅!yƾjg-5;xlO@cÎAfѫH0K)WbSb2 t 1tm%0%9աtՊr(pk99j.^Lی oλ?)q0R}[@cgt@=H`]yk(j,K -NXh=\~/Og"oKxuӎ%HN$BL 7g}jևW-\PO}/|> Oҭy4`t^)eP1F:KAYiTh#GǞ|!.Dud !r i]ip}CHPn| .>CXn\H;--ۣ3|i~F nO1d5WBJX2/<[ȕ#|mRQI}7Ҟ5!pȟcd{tG?k8(hldF'rX4n5h4EƖ>FF'T;%l%2rZ=,U'OW_e hkفÇtvq$(9X{[  Np{6,ү&+b l4@Sԩ1q_檸AF UoYiֈUK3:f@sD0ּ18#"!_*eXy"6J*Vb\7"_ ֬ynn` 18pK<7;x:Vi䶲}T˃xbDnFtfIL.FXA0~Zbi0#i`HS!&湸F !Wm lL_4x?_R'FӮ儃_.tٍueOX@pbv}V8Sr3s5)4}MlzLJ9˷"0} hW ZcNzdž5Lb~ʟ3O[ёO7J@m̤!Z8Pi,npr@+d~!Tm(;DA eLꥎ:2EYGA<ľ4YP`iUpd [/7Z7H½"qn} wLWs ( ~MQ,kQP< hoÀH $PQ-omt%tBWy{a.粁U|Upw?F+{Y!>Ɯm ryv_Žh`p?=AV rϋbH#:)*Lgu<%YîѼW=/Za C+a# G/0:Z07tK׶c FL,Bf9SZa[TH3/]ߚ, e*z8'>&ŗnF6^; s<~0t ҺPi1f ~c`HN_7D0t?x'"Y,/cnM .w*Yɹ|cYёZb[w}WM~ɣj(DUQVK5Yj7u$ p0}lm 6=d#+A vSղj;!^-7jᑲ#EEX8`{ f.u&'iq%!9{Wپׄz3}$#>W9 xtT}ǹ uy;^˾80h >0քPYxz..^6zs*;ۏDK;yٜO9|wڎWVWP2!jvtj9̻={yx [׸gQMdMGpb\4 /0t`$!V ;'y ,8V7Wk y]o%F/YI$-W:0}܉G}{DŽ h^@XZ/qH aߓL$ȽsCiqS]jP~o^{?5œ(&8څ𤃅=?q Ogr0P@~PkvN[喩h!t(y_ocSjb> Qt/vxv6n+UWM]p* M0쭽+"7<:o֓ HNaO^s G!X?1c%q` bGyT9 Rʣsu%ƌ,{n? 48ԅoĠ:' Ur h%H;AeoН5?.+Rऔ6u o\Jq;0$f|i_{\ƲjNgr6⁀e0MYD%OFѓ@M6~h\Sf)(Ęěd:ZNMל+Fv {c|ol 9#լ5L}||t>v?*V\/L 9!r2r>X \ETL `%i*ϩS:W;]OvbK@HVHD'bJY41NI S`n2i@Y` P'5\H㗌cY,4ڋ '2+D}EI&:f4{ԉWxmfHCak78*$6HΈxf ZkDx{nsi`{a=D~]{z"tnA\7Ciy1݈G*-ٲsViсj=mn{O2r4 jU!m \j|2UL9l(8,,qk dz[h >pVLeHh hHiNL]P4dOrTyҕ}-@cdP7Q n[O`Zn%h31 ag1#{$S|֬ŋ+wPiCdLj4ҭ3Y*/tETY!j3";!`ݵ"d N=%]~2! $H3~_FS\x55LWY_wɄg+,oPd:=q]_"U`t2=yrL;s#aބ]d )N{:!*B8ƛH^xn˅o+b-IA xx8~zxMR'h(oނf\9NxLKp)wκt~dQ:3o.m3`/!eWPڟzF`qCxsBgJLl%w .DsFػ?4/og/ǥyc?sMݶF4(tfȉ'jU< D!ϋh 7m"r~)wEe4+-a!K?1-~y ޙ !?>`>uPTçX͓E|(N)?ShmGA+5ׯodey1G4#Za kϸW㎚4~Y"tam}}-Lb!0Ko?1re*\܎O ŎsyX1Ttˀ~׮g4{߷"J47lJ F,^P7]?d֟zsOK.{bΑwYS-x#+an:¯M#(xEYc*lXQ|h jPگ劤ߝ ۵ĘJDuKZYp&Ǖ3#W0HudDaQMG ?:6ץn`# |y=jsnI8f\cďkOX̍g̝N(k"kcزe Ka7R/_(|$1v+7gO[3{U=5B6"0̕?%o݈@ؼ E<+)$V6VH4 ڜ>mo:PF9Ы;D= Q!;[+l &^8,NesM6Wo[YQ<ΒZ }-O{̸ѻ@_ S&3?ew輼nw3Ԇە),)&LD[QV EuZ5NRc J_2>.v8Ilݴh 43qpmȁHkt+=b-i VȨ$٣Do(W/hLOT`V6~LJ,ueXckE϶RCQx/6mdXCxc)|VGlVpwrXs.YjIF-6e \ <\>r'PWb\v#pFt|)߄|*w 6w8w犏.wf.E|y$iG@CovŹf=Poތw;څ?wM17Y<|ek3VٚUmP+ U̿O3B*4&/|k6~ߵ'{jβ@؃űwù}?Z{lEwa7U\:Ɓd"SI)fv㟾Ii.cT6ߏH5X7Ն,߈|@@f;Uz> zGas o>:LthgUlD!T.~#a϶K݁l.w_ p(g2A$Wipmd-p)[4\jy>c$~S?"c>SB<ۦ=Ť&t͓C`G*1nuN)h`\|.Pj5IBe]xUASnts5[u)CQQXASe(,:{B'F~.Fk9x cY `!?=U^X_J(ހڧN!uu|! ťF}e2v}SΦзY3a$Q{3 /*Uz܂_1,]ۘ܊3Wjތj6%3*5Q^W_ف5]*\R1 mⵧDCi^]\P h캬̸#6 ?I 9){ޜm4mobOL ﷧DNM('{j;~;`O R(DQѧ ADF-aVAtR}vDX+懒&y+ɼwOMeq2vlFȺ֜"“'m҃O/ GlѫWc&]< s`eWvN@ YjW5ob#uNK& 47+m9a]_p3ԅ, :Nt8U\[&D+pLD T@{ԋ5&_bt^6, !n{y 3u3hFGz$V(} |փa BcUCk ڙPBvDW#~-+fb8Ng峇μ Ԭ ҥ?y V권\F[oߪӥKj@ν%'_۹! 0< ʏhuwb,=+ #OHr? wؠSLi7icd>V)S97R+Z$a؜@1X3jK\qOiL; ESUD U tb w{ԕ#ւSgOO}Tqg I=!x֤+gYu78P\?gBw-I[ZwL9**aF|e;)؇P84w2t6ci-aA #',Yrx&(?4'qzfywۨ6^PoTEXl?l|F qx;Rug~_f %Jaޟ;BS7*fŨ3ȍzq䖔D0q4AT:,x@Y8߻VLX N|ۀ7:XkT8 8J*hwrEV^{.1T, Ƣyx߻5|ܬKzY!|8|ӕ_ U<_Z>88<- 49#:;sUNrDr)n^0Wh$h+Z*jH;<8J0NO9}Ф\yfz 1@|0Ұd|i,2t Gpf_(KIQ[XZ& 8܀eWC֥ ~ԵæsazQ8 uApt,F\V $+ϱ0LXX18򇌥]2Ѳ~猈.-zqOHϴ!G}]#˓kHNO8?r!@cI VZʰ'lLJJ8Ň,<+&ҁ!03+ܬ3F8g`EGdiCubɴx⤤m pLx #Gm7`cwbFnЗr,bu._iNڢ8($WMŶ;P.sn̮77lldj%Dq zsd DUVf9eyOCit'p4bָVn~6^]^Aq:˻) xwh]'V'1IZG&i!OƇՌ K.|®-^Dǘ_xS-wM _[=)<~ZDf'&[MW tIb'* KˤI}B6bK!Lߵȧq!괻bm\٬wm%FAdAЖe<5䬋`Mg 9rR/~1 [WЭ cŒ3vAFT#"R}X5`93ds"3K[u/QpJ:Ֆ" ?"yZ͇ۤPM6۝J>{B#MyΈ߻9$3j{\F1RlRfݳՉf,z }GG09#A O\[΁H B/#]sj?gT. Y H?ZLz A}#-[orCAh;4^vOkaj(us NnZ%PUq:U؛T&8a聱DB\Wsq0Hj۰Qn\@_c/hFs)@cK6%],]s͑@*WxX,mK0Ŏe*1[B'bCN۶;QsR/BdT G?W4bխ"Uh%7jq~@<M*>[Ʀmc*HWaI5+ hYXz/ ]-K7XȎJ9cպߨCi Wu32U sd<>ד䗽Ӹ>{K-hq>niz?ɮoq|p}{.WJ(qJs[ JMgS( }7"%⽶啑)qR~C*p 29.fdVexXt+ˋ 0~B])@dj!,R5YԾ)Wfnb+QP;+)Hdf_O Rb>(Jx0 37FHU(wVn?}mu@XsQ cpUWE1 Y?خCm 5ǩ7SQeGݘQbm`xFjfdHÓBj>A{}q $Tn{l{RTr<7r~yԅֱqek 7@D&3-  zqEan#2|9 *ۏ@OXFu{`6fvV 37yHN ݥqd 8[u8 @Tm=ɽ]emnTOe~V"YX9OSFzcLu_Kئ$o PZwK \o?y.*h+\Sd2%PPKTH]ms. wՊ71/{_`U6cYC`ȡ _odݮbvMWMW9W6.w]V\^5>9łXڰ&Nc߈~~9晻Ixޤp3!_]d:= Ez}C*ۓwB wywfiP,W4lUo?~"#9FX$O!L"BrpUP7>9",łA3\Лye>n0jLڴ A?CֵZ\ӟRorZϾ/'o0]9E$=8Ӥ.z!bN f``.zʱ?,zk3ZײG9=6,.9^6n_;5l w}շ {ڪ5:+t'.Z, ͵7|AJtYTG,uJ'h z* ]9'@ߊ hK@ _bAXV@hm>ic'z]];rIa6R(dˁ5~r4){1,٢PSL&P6W*;F>ZeE D{`DtRq,h<1"x>zD1'.ס88Sv<4H3Jܯ7H,lh[ "y;X!KeCVv=1 \M0tpj]mO= u\_cH~XezChP-,JcăIد[ .jJmxc+ai-f*tp"lȱ*BW~ /gh.P6 ҂Db\{%]5y 0ghdR l>.d 0չ x}栰܉^~ridmpr B~ ȰuHk ӊ"\̪o2m"{r:6HXgz(ZOORS:,&'0Y$oS.i{APѸ%+wh뾇\:<blm/<0nɎ4Fҙ^r3ѻȳ.M`%?\W9v;aspE`: H7}o=uh<CX: %Ӏ;Eg%$ +Gi.C~{q7 mR#d*S1Og6)WY&}T&Fl$@WAldDi58 f:vfs.w^m7^x؇$G#(%ta4m%=\8txsLk2i^8L Z;]לZ<-1VXDDƣ._jB0L9G_,-CWbEnD-L+7eEDUEP0!]?LGu"u޶JR4X-nxMiLR:+S{lg}ՖmpHOt[ - `oۭ.yƟv_ON_|<:ɍCo '|%K,MJ_ӶaNZ $jʠk]'l)KF,O UsRef*A|!Ԛi«"Ž{}ji .dIy Ƣ,Aٿv]됪91q^>n>z5 Q]Zq5 (z.gO奝}K4T H3}) &nmzؘ_:̙w3oD++z$JŝXPc;6AکRU9!2fp]Ͻm&0H^H:dJH}v`o-`Hwh݌_͓ذOOL!_>ψ@}x,N8~0/$ (}zהSjR ]IC ?eM躻"IzzNX)*@qŜ3 ļPwh"R>o˱5*J į3jBW!ɐ۰G?`z}@?iCx@gn<9o%ęL3E>=b|`5@tN|Ocln|tCų#jDjŷућJ?RlHY+2y s#}[~V:LώRv2dWP<};p/ejZ-U85 f4akoX5F4AP)u{gI^.Ƞ?.|4kv˲n`M2`堆Tj_`ڏu[pGd_O;%Ȼ?_0.9>9x$̌\. N2II'W[B\2G$.m" 9pA==Vl:agTa\ ׾^s{6ɋXKiX>y1y{ PԷ!?.M4ݶF*pN3&@7*\+8) h2I.yeLSfLrJI?'{Lx1Kvii'GrnmYI&aljۨ7XF;O}d o#tWvt;[Gq`yq&z٧hF0>fE5'Ëfவ*{ ⿝ۑtRaT-37ҀHGy{ m>M9ȨFIIh)SM슈 ɆAz씴nųK+hsQsvxETVϿAӑ!{)#1<w W#[իF2w"k] 1o<j*{o+ eO'Y֥620 <>* DxWYh{z~.:fvf@-y=of1tᰮ!5)Ӈ~c_kUQn5Nb\Kw.@Jm:iZc霧bNѳMZ0KcL<~}XqnF'#08mZE'c&isDf`F~R5ة[&#ƉVdj7B|o[S nn!U^Sļh*[rDC~LvM9Jd-Nm<2m.RR) Z&ħ'ib]֥́ҕ(8xǯXkJhq]@jEW0>OVK7řj6 v ^)#ǐ\3{!v/5pD4DE3d}W%㸊"ʂqO䫒Rtiys 2;o^Ƿ_$= +-ߪ??ԑ-ω6$&ŧa. Aا]^.syD35̑iWbd8esy4mq]VwZ(]Z-߾iF^ȫ4;&+* =oם6U#YWu[mZp_D:zyӝ  S WH1Ƿ,smP +ApՏ:@9G0X(:^e /=fe+G 4Pu[Z`'m6u*#ЭXPb5NorfNoikwCٱEHLxiz'р\%~ѣ5#bUc[$X̃W9֮咑V6>"]y(pjhrޓԐswl0s9`wG.=޺֢[6rbclW)\G~"s EPd[;9ClL6i'>tjxh%lүrxH%nϮ$OG%L[^yt׸@Z$ses]GkgxY^e^Ξ*U7=8٪Ӌ?gF6c<$t ? !L}-r9e+q ':Yd~Z_I} 6;ʾO;~Ext`"4rlqt G@Ozxy@}]QPdrI:f措 K&Ӄw)ϋ&i GlJ֪pJNp֭ zMgX[+,& gS#Jk&'"A+/ ӵ0ɪd1k rw@Svh/Vqne#Kq۸F*N6F1G TE/}ʻg/uL9/Cl9&=os bWZ7bU."};|;rW7YoI̙~?aHc"{2#CP=w|#R*tFM}t'&$uZčr^[DSNjLzB{=OǙ(y 6f21X8nu?Y1:|[1[+KL"ݒo^iApaLz%nm7-Dye.n\P<%@Av +FR_נ'>) .Xݼ[Zsb"ɳ?h-שnr21 0ÒgMv .ØC(_6<Bp:LQ-&+)0lW|l y!Po>l!dsuZ :S |6ҳw,LJ^P #$R) Asc`F:5aԊ%{pӊX>oV 𥤷t~7-j~K!\)d`\N n(FLBqzDv2/S-UB:f4'[3|WkadqoE.40~Ó{Wdb '7g+` ۛ ?HZ\ ~olEg%ڨH'{,<0.OGbVoY5ZƱ[ig~e3mߔ3IDB3!/`{bP"sH+OUŽwͿшӜWaȠ&]68;;-cܵ#[|">!/`Jau 5Q\w`¢" gV 8_[fG/Te^#@~FoRwF.Wv2^_ 3^c>z@Ml8N &120yg U%rԖc@t8;4-;ZMzEw"}n95c C]X"6Ÿ7bGl/4ΑoO?I O F/b)ݶ'O@x&%8k.}mSv[GNK.,SV-\NmJldV\âaa%-FF2  'ƚ6m!X|PD΁Q|cs)m^{\@=7[-aTBkqllr*_UT9*^EeaS6Ԃne.H TxX; )*O ;4Z&Xcze C$pL|T xta ^X ӧia7.}jRwoR3$y+F")֦$_eZL\F*=Z:AD(9,ں2*%Sbr@"RJy{:Yx'ۺbѿS41i-Y|w2bKxX]C=s!se|)JήUt^,lxoO ZR:O_Pv gMє |ͪ2?Qc7P [3Gt%B bCq[Hd])08w$֏;l]" -x]M̐83¿ZV.Q p?ИGxMĔs҆4wˊQlΙB3Dş$RMCR=KŬ3];H $ VrrO@VYo!gL%3.ҹyT}QRl1ƾg N<&}8$0?޿\bqVL֭U3C,@z2 }/)>#W[nbw*\ԇIt)͗+.LtMDҊ=aZ:  0iξR?!C/2 ,!g`^LseBPnH#pms6#R\zģU34;,RkC0_2,`\j&㈆;Q`^Urz{*+o)RIo"xޜeCJ2ۓjw[sxoKm;9cQ4Ͻ{qUwW[P ]v;s<9vqܾ9;nx^ VziL B"~P5NOiI_zYihOosM7 oG" s: ns@+O9w!NR,#J5!jr5(]褧Cxn5{%Fdց}#Gm|:t> .Tc"ć;^_ j-޽.j{]L X2+Jz̑py!_^\RlǾ '|nj Mr6vLEpS4̯2OS\td@a۠|ke|ё-Ǭ6N/rU/La?PJJG 7߆i ~^x2BC;U0#Md &oYx @vہ_UiD{E[KRlv|gOs w9%E@d J^M^ -pEy1#s%6TLh>_8"/%[ l=ĝ_-asug]ՑV9*0ZeQDn_oOK4*J{M*{cВd" ˖5r~};p^"EqUk$ol:䮢znZ'\<1 ̇6{CT˂s^N{lqX .;^On*:M3ٴ:PIN5]JU EQиeR^#}9wpN;p$n5w?bS!kX@F/$"#p!z;êgDy W\j-r]0v̠\EWdD$&qqV㞗n 2ڇ8U*`AFMQx\y}[]ORQqޟ<ɉWj6_j2Al,3UG?(, +'?G`_ߎ!v c|t(}4!TBSq60?f%2bhnUJe?U?摐, ޴Vc> Dp(-lpZ6i-YB{e.,x@CODèMVKEEfҙ.y!i4B/IWQ6*gC?Ϯ ӥEF9bgGY@*o Ir.V9\40 q?D{:a{rѻ"nU\,%5zv@[jw}>\'Ciy0b+=JPĸ[&րc GyQ>bDLE9p/$яL+s!Vfɟjhi$>7h_ΰd"lWe kŗ$9ɕ_$6Ʃq|<_"q4 Cǖ@6MH#3y3}qciC^zc3nό1Z^[W:rԊ_MŽ,2ҵ%WgbCF}x*? #y>]/q3v3LT|0|~hn 8!O餕@275#{eAm6DFD^iޒbj7%lzF겮ÂG c׉p :6'`Z#zUk"9Xz~ 1h Ŋ/3hd_/$@G/ [:DbPcP(l@{G.bl ==fO˩=9m "kRXȆni;~lE SqʼBK|cjg,@jǧu3H 7<53-GKkR IIq7dtE ~'czuee)RL*6PLe[ُE74%<6KyDEV(>h-X-n}-"U#g@Gf]!8-e"mm˅Cebvcjd$y ahfyGIU[Rҫ~'>~ouN"_w&yѿ2½Եg @2ZLI.>v2P a@o}b$9P:uvCǜg'x6KmDQkBf@iYF<.EZ !( s)Sw8K.w y1\' ǮD!K G/:gLM-pEzB[:LL !T|\5]|pj FA<ЄÚ)Ffj&~|ԵmB Wl; _PE\A) ͭkZG|,y|aק۬32O/9In.Ek*D L T6:n&gf vxvY XAU̡DlX \To ]JJti ~`;/Ɏ"*Ez)z1 ԰8<߫= qDE5wX >G4[f::PXK\+5/`fN[g~^_ nǐf8FBpߵ3hd"7g물p"ke|̏yHZU{7zDhB쭈ዺ7}GQ꒮W fTN{p`V TA~tvO]t%Ia9C1<8b|Ft9A鮱]$YF)vݘwa4̘k%|Zh`//mImrN wL`Q>q݈)HKG㷛rJ85]4xz/L߃LQ(Ku]K'ZY:nOcczs KȤ]+qwnk2<~":tryR&{O5TS|ʄL6Ȋo-CqPS7q *,ႫLUGH"T 'S#%Kw\`Kx:o!辥 /R6q#|P_P/%Oґx.'Zbl#,4I 0/eIrK[seR'!@ۂ胫)z+-5x%()(?nO,< u̵z4\VM_5x0-XR ^.4M lӚ\_(~G W.^[ ('\WS _=C$Q9~f+2ﶃrKJJNXނSDlHwB OtYkAܻRNH幣~5u,$z6wWcYВ95p@^eGUoi:+I cO5[7_z3Q]_rjP ^^wR4l LYpldC'9~PWl$:Oʿv >p!mA5[~C+(>({yٔQ:]EMZ,Na>Xgʱ yͩj[\l i5_Ѿ)Kb ߓ}.cpVKY|N^>wd庲Ee]I +@GHSs%SB-},ue: EϪ #RI삣DmE8U/rׅ'MZl0ʠu$uv'`!Txkt$s |BAdS?\RHM .sO ;,y1_itoKy#vA2P ~s>gWGJCsQ4xcX*4ZgnsofY(zqAqJ(vY],8JEHJI;J1p^[.}ѻ+w=!b؄qQjLgL]ڀ^?dlD#’ouZy1HC,LJ~p `V1z=-E^)hݱ{œ/Nv,hF#1,G7YsJ$ 3Gd,B%:,2nIϠUO Zur@ٖ;V _|\w`Pxzr9ZyD3*.==Dhڥ(]50"E||a͆6qC/1mp;8x?w1ū1.d?LqxUot| 1߻#SףS ~,jBXI e6XX9K `\&ft'PYl"7Ezg߼Q?T^$WJys݁3ʕRe~N:S21_,cR;brW1%MNeNN7PTQ8-k4g( #B. 'EOYkK0RD2@~m4Di̎0|)_tOJItc(`ݶM^`y6GL1F\dXL 1LWzq}vdjlQH1 5N+Xl$m2od= =ڗ|E&Clw6юrďIݶ Ck3q c|-6;bB\Dv ;PMcf{9q, D*-6nUbS\bz>S f>_|w#k :sG 6kt!OK+QxFig;gȎ{Xl9%бuЙ^{ 8I2Ie6ڪU$`Qe}s/A.GSuB[ 4=nB>~V٥wtGZ?q6,aѭg|z6A XaMvpwE]hˠ㗆Md:t@"N(hU+[J &2pG pxKńGH54f3"&0ߛixLq\)(Y(Fi2HAGvLTbՍo'e7#7o3Pt){~:f,ഫ( /E} [6׺4KW}J{ew*V"c$Xʳ$bv .4g>~)9'%(qlCZ/"Ju/ 浲F^`بCs[ѳZu<&jzP oWJX7)=@ Рluhh(VS5;B~&I q-cCl2߿SvOݱ5Q"ږ|p .wyY]'EjHTo[j(=Ӡ\/ĺYJ 3ai%!FC 瞧W nQKc^<((%EY48O&eG&'b$DCj;#UTjDm% B<\DEOdÇ-˧m՟ZTUTvaŵG<9y6dN,bـo`7jU.Lc"٩pVG5cX"VzmRQ-f$YSaiG ?b/<;٢O}yC}M\b>fA)-lXx?=w I}is 11ׇ c lMGH9y>&`rWg}e>yhu y)Йb-B=;7˄MۉP:q궚 !C.ZboVQg0>3n+O X'bzbP$x$|{HwG:=Tznocb d A}HҼSZh.GPsW$H ÖܩO25E} 3AwA^ϩi[.+d)aFK$y%]5Fĵnk^:FHm+Ċa>pCC/Y1G)/@,gChcX .#4}$}c{GV 9 8q #f $Q1$5mLx^:nf( ^|JI9|Vok}c ǂLUݪS S1.WGhr8a z󧟟)[D }h],1>5ab쩟2=`2{3iK3H섖^5.o]jD--BL@P }=.P zq2i09t^MmAlgq-'`A5Ȩ0̣j?6D6<kYanr*RdU8܁B:*ʯ^G  uг @> Ke dDs7hbqz-z@.Pf& fZBuQ@-ǫr]Ȃ\LNd+P/򡽆ٲ߫F:Gw7"G+g+9TMvf{;Am ]dcB,@4RÌRT5dn\Z!jc 4$Σ62b^p}Gu#E_fJ]]~`9j|jtN)c"Q '"Uc0e/$< Z*Hը]ۘJc/FgUN:I8TdRBlFŵ%qԢ+8Բ*1IwIjv[93%TOTR>V^S҉mQo7 )z6Jfwp'1$cs#p6Lj2\ DVk{u!ߌKN27qU-cq[OI~0'+ ~ڇ hQe.#ܽ=#+/o8<)(~!/×:\WisW/tv]C$aL.@]-ן÷&}la@wڍ'8Wj;T1,!lү\8яhb-5S|y̍< N^ z}|u)[2tWy͉%O%/cYh1X9G`ޡ|wΝׂCX\XՔ%O!1P 5WG>@+@9S!#ы}2MN/";Klglp&W$Yz/\s.<N`-6_@^Z~6ֲ[0y@9D];˸ JY.9)' X&,F>H`̉l}aUT{e;0QtL,Z2)lߏ_A!هkOJYQPEّ]>@{^_*J+~fRځŇLG#T"7+[L6޶d"t-XBnOiPG_/B0E֋ ,Iy gbp[m>|r}OD -FG"7m-})Ke׼fD&|X3DN;%H(\ =+k5n&F¶FP%UQ[Б)ՑhPBHͷOF =No*ɸU(Gr5V3| J1x9Iȸ8ϝ#+ u=7'݀BXvJVg/c6^]"寤%:컦ePkÝ4V_UuLSDSZlpˆ1NHTQ6sB&~bO/SV3Ar **'ts5$?,囎99۩F'ƴ.atM]OQ .X!5TQ+ 4E^jj5L־uu.p*@&wAjdp6gӧ~/O8s:K2=BX`N^rP8+DKZ8ȑGUW[HXQQ<}{~j'/[C|3{ӥ@u E yW Zn.ZeZ)@9GD%~J V| (MK r~dAUhԴjxn_1+o|.2XB5祿Nʤg+Ts0.Bd;7ό\#zQ& |cEge[]%\50Pe) }N!.%,mх,~Z\c$`">0 `h$$O{H6r!з3۲tY%r3ձg㝩`HÉ0h`fjJl4v䈌F9o:w ڭХq8U4l2 7Hʯ&Ub ?Hm.#~qђqݫ|H hB$xc)z|TBIck{'5=g+Ǣ\(. BKtEtlߓNE I0 R] WvO^`g,̍?^USAk$ +-6ϯ*6d|,!R ~dS ?4`xh-Q!%Nk`2S RJu1iz~nX|qmiPM prxCaSS7m(wҡd@ gwF|}KV=6p.)0nΔr}T1 SUU4&84DrAAPKnY[LJyL[O/tNT&˶3FN'ס8IV0.qԹH{ݠT?&錜a = Gکsđۙ@a/qE;o,P!5I &J1vp̸}Tn0K۲L:Axy4gtrcA)Yv~$9Uw_Zb//b1]㡙Vj.)Js7[H#&ߊ^XkK+YGGM.zHn@/鐆0c9fz2C!_Q_!(cogtB8.ny `xBg I}\ݘ W>ӾA/od.`.l\8 j~W遒(hn;F53e(?x2e+|rtdێ]NeQ-|gKV9Vuq:M^kFVAKj*~ cZEoy 5#Zx2렢F57>p/X8{{S*^\Ǵs+s@tNhu8CQΧēkeڼ02¡K^:֍h8\c:κ617\{VuvlI\ؐwS')k'qd >p=w杳j}tJНF8l R_ ;$ykߑV0݀<Oh_ XQ]s0H4ŭ`sیyj;I`U[t w٠?-t޶Q]f1!06;;&jaPNE6YS7\{X8Sٕr齎]f#W|ыc%1{n@@J!nkJf<'$P&\<՛4B[D[oڼ禛.Vu:Q?l0*Cʞj]{>‚5RU,cY_S8y-ZZޢůli,Pĕ-yuo$FPP` tu#x`=C,)Ľ,'_'vW2^8f)$Fm6Ñ6@8Ht>eIW!v5r96T֠98O-E\q_gaV'aWsC6T:HR)r ed`2an1 2$s 4\;obZӞ!>m#|- igޯ2Jk/ifF@^t.A'q;bqFV4)z'fP+0 4U6:\pk<"5oIڞ=e+uoN3 :YVQjמ 8kߞv/|Хj~I_j0%ЇM|b_:tr ;$$Rfurd{ж`|>vζqɤ1P ^!qp (QBrB8Hl> *̏~trzW_{_2xXeMQI(_6])_ۦ\''4X_t=TӈQ_U0aZ(\ 'wRXn0[ g-H Ak*^E䑴rXz}Yl5n$.栩oM#W?5!?ir>7etMpxsW $cĖr,}%{-IJSNU@BB£dg'#q3};ru vW78?} &?tYJ'&Uzؔu(M}vL ⶞!>(7pR:o+@#63qdݸC+G&(qƒET+ j)mC;k 41'nqyPt> d2KqaWWK2xH$(8[\,Ji򼀳CAGfd<(CJĭB+vI4`- < [Kp4sa]s:ޡy\N)"OxA܅π,k}r>`9s׈E)>ו(%|/ I"ܟiMLہ嶯~h#w.W[h 5YK'PH$? B,c$aT'fQ!R?/KR|l'\S زyuKH?J9jH1yِ% uF)}KRY9 ܍7aoHHi L#\/W8;)\\돛FV_B; T ]U:նк[& i643e,;e,Al(vտzVA%VGgGeőܳ%J!x:tf+f^ӎ (mnS<݉p:y+ȵ]V?D?ŴIV3Ъnӂrqap$ԧ, $#z0K {lX`҆&}uuzy 1p{\\IlT|C]݄Jb/1U?<im\җR#ӷ@vs@=9d_۫& @J}fpnn.\S=+vmg;]LQZl Pv2=W"z1WyΎX9E.D/!WN#];>韠x"MdnP D,?)_$彭D+adXT!=K2*CmSlG f=֡5"^npwU_DEqڻAb(2#֠&빣ɧE6Cjt䀻 `Vg;jfv5j w abؿz{Om}4=;!3^,S ob0dSB3-0ŔnM}ݿBseP6se%P]K56]QE/˦WN4^ᵎzla^zT>U_lDƳ^lƠˆIAμWy!5hs~Wi ֍)@Ѧ-ѩFesݸAjSQ.'ű#ayP+25k M&(=q&ȱR'G՜u> aWGP#"JmEzR[ms-msH] >@rtsp\o+$M?>Bӄc'[Q+DUس!"bUjRn!7Of܁vlj J rR-jr'զgxG -/1F6?Z2f+ K1M: iNOy. LЕ{aԑld{eVi\ ̈z9FK?`y N.-8 +UhC8UV9$-'7|h4+B$ci?YIʏזe7@v.1diH}+½VOtne\WuC<;UzSjH3R|B#}Es*]f;W4[ax4UkE.7 Ht8n}e"&` >0k6Zc0 -wqju+i֩}򸳕G$a[)e劺1%B\4Z'K]rQϔ"xy8 Ġ4kTuӶz +>u|a=9|(E^{0[*u#Spd—6?M>|b('x^43+n4)m_Q@$0" 'Yr%:eSFqTNWuf07auIKf]|BHJ#***`IYˎ8qqR! МDׇ<$W_@ E;]8)%W!1`-X8= $U9}8uE`Ƹ )<} m{)#ыgo/iEV%3 W|w^1'Oq,Ƿ1mUD!qN%l@O$al]S̢_Uxɳֱa  yPz^5DgQ[KV;Rt-0/BǍaL{~WjWkd61V^>ʑk&G$JxG\ DKBU =ΆuIzqDI?9PsQi~5’˗Z7OW#_N[ug>(Ȳ+vn>Oe? =t_?ICI3{U˚aN rw4ֳܟ|`Hw%/@@<թR6?+@㘴XZC+8>sGK3r [Tę jnꜲ-B|D9Q6zbxv6vff=4HxQ-eʈɰsd7kȿJn[|.>'ۗ] L]ETӉfoHnoY-lVGJSF/\iIwXR\|8W%Nh5O}1#-|ʅ; n$B)S_˹|j.d|^~cz_B꣘7_c6v OL~O]c 6^t"ch,1v=*l]-f wlݭ4UlZ,VE`*{N-X#ؓuE=U F]ŜWV|@ݑ (n$_]1L#og\cypIP &qss1ϳ8YKr)ٴ Ar@ .!prlwԋ<8'-2ʎ9jM뱚 aAAkyX(n6 n6rS5.U9SIvz`i\__#KbD?˿z@XYJ=Jk}`-6~"J+RBhޢſ;yz/b5LF8-,UR-zsD;BVd(e'ś"?r_ JdocE  Df)fXCڸ*mE:s` @usQN2x|zh',LVD`^]M?%9c\M(:<Xmft{@L?y@"ȉF~j _2謻% }y`Ll \e¢ !l7JZ1mN0+P]z~ aբ1[Gh.Q]mSf Xʳ0_J͊cx.AV k͜|JC낾t/%P箘^I6Ksʽ#>P^|&4uUG%}W,xJsjTXQ0F{G;r闊3zCDo=yׂPO}fKӋ80,U*B~×J[ކgn GoX+-*'׸VOhcQvnu[F)L-'NDZW]Pm! Z)E}56|MvcEV 6IC ld2P_LO"s{igR{x|GH8xDsH78 Ӻֺ rO@ά'h `<=XLG' Bͤ^MQ't<|ǎިJ%6?7>K尙¬W%)b3+WdEg` 2`Ff[A% g/\ޅH`a;.Npңr4`[1wDy PS~\y u;z7%̍,>Z- m/x4R&N'H .Vdb! ˚ +*3qU&)ߥѪI3FNuƒL4lgZ_5R83Npce hCU$fyΩƻY G(Z=\h樏l(buxَ`JW!a#Xa9AX,j3i:޿5-.X ~c=|xQ ӣZ)-E3>G0J8θR~˲1}gg{XzdŪJu/IZ.qdaGDcEZwm̲k9`i^CW["&[H1E`R&]%t["o d5-~݈x; MmmRasB_*µI7lU; $iLxic dE4MMfcq؋c?^K?D-2.oXS 7 7)r]7N5w瀝O-k>/~'}ǡː)myAbT8?sh-2Zӻ9fT)*w:X*.avg .K'W3 p7Ř_ecH`&[K*QF\E&IHe\]O} 8̕b<1Loq׍x+ς%5b3GsCt€wXJ,w'}%l 2 |y@^$r4#P5\p^PL#wD:Lve\sug- ..zi$I[6: +S͸5-zŴEiC%Bq&mҠ 1 BcAb wd:pd~^dJK,{×|>(wf<!œ R{7RDoB;uAv 8 5F!،@o+5"g {BR.V:M1eYՓ"@)QBaWŠ}C0)蕘 h/u{ O_*FmrÓ% M 6@&$ $/K*NPJ =xQ? );xU5E5IFU؉nomf2uf7Bi Xlܪ}|a|]+us&bqq\2agPzȕJ«WKXx5.> 3C/I_-tڭpM*~!pe>s"g(0-?ǭd!ي/,Bj`j䳬~KS rk$4t]T~͕颢Uqir=E<6ţnN g{|+%^/%v$Z=ʯ[҃U|tq/!d_[I#9;Ma3+rU3IfG ~i4`Ztr>bt,brf'F j~k5[;龪ΚA+=aQ-AXRK)2k+Zg,!RY؎*4x='jR1 onteܦ2]!w֤RHؕ<<ZmEN+pw]%e]4,q1X#wKi?9,}/*V_8=v<bVU2r/C$AX9(Fqu7&Gt ? ?ۍ!Q^Ve?9ٽqN( &lʓ# ,Dd5vo %&P(av~ÍHnܿܺt/)nkBL&j^ʹSh_"jnה;Cm9FF->uzx&q$`O%pEb}tgzHǨ/5:侽0A=Aւh9Cќo[HFc47x u@*?8v?a( $sv /k?/;4/߄)fZMRpk…H$YZ>:W#m?ζoS ?.`h GC8g=zwD Dx+?ɶ΅*?ʋx '6=ŰJsDo̖2I|4:5{5B٘GBR;aMifRO|9FpQ σ5pQ6nرxF[nP5赌AF3B)_p 3 ;aqRdJ+f0`\0Y5c : Y T_%z(abIN^M];  T :P.u(=.? 䜮l^;e"2%O5jQc"r" K#WŊyMifA|'ŬFFރhiF8%7@V<"u94?{@̈6v^/UL3/|Uw7u I=G}0W1Ȱ{yއʃ¨30*d|-@+fl-[UUu2 OHXzr%|8D<2e<{aݠ-Ŏ +A ꡰ^NA/pf4.f^:qmL*RP ^(S!(c&O8O2 RRQu3G ݿoRa-_feO,N킍@Gp*  w=+6 ]6PYэ6182.0v| qma>Pς:F(.o/dlpm.I,.Vw`qz!7g&&NMlZZ\b؟]6҂nv+[ݪk@wHGʐaO+*zBfRJ}}"[s  }ө[L+BxmQFWʋ "N܎[]ѐ\5}kIyA5>*c#_ JK+|k/I(gs(!j%yGJؑlv(HLIV6rr5W}H7w(SOva؛酤Nl_9k?u[>Z~ {vͳh2\rٝ'fKYIY(X}&ha{'B8ZNO5#G{C)U4>FVw_%Asp.m|"|11d_4$QNQ* >}/T*3=' 㫯Ç&10!~{y t1sg(ZShf!0;<%-FN`Ȅ2&2g"zAjʇ'IxZfG'~lL6_SDj ?ښGȄӿƏd7kC4۴sXꊷمAK)8_p$vHIנKu {gKBU*Br̔=«m0etS/eIj|Ϣ4L; -rr^&w+\0N  ?&U?$[y{]ENPG Rh*m[-C@cYiڪ_ :7PU}{r}̨6h[΂$Da9:aWErrT})c huh<pCi8 `TNd<-8o_x#UOi3[j*&@#xN{CN\v*e:u, nt2?ߥZH>mlx@YTl~ޘ eF.L#r#}T;QDGEa/\p96:M 9>z+H[̼g fcp'3Gp㟧VmB:jw\hY|ɱ'!ȍ_nח x^1v$*R.9#A$0XLKw7f@ϧ&"Sx^X|w֩h\Rq];䡦|̺N1xyvb_L^xE LR#­cRROWbZ)}ܱ~;ҥފ W =qb9/GB]%y8h8.HVC]6l3Y%f fmy/}twa'^:d f+Cdw_EWR'd́KA=v%C$s/ǂml2M $ 5M8.GNg=˙X!5O$˖`nU&sW3,0'!sA&?]8+ޏzԚsFHR <%"r)Ua|֡a9!Kϧwh34& B]LqIȝ%3Kpq?);[ҫ#T܊*|0P67 F˭\ s!̓]R q29&Xºb J 1E9cm$R(U&9D&0Dn8u4xm8mX|MxxO@!ͫl&KmծeEFDkk\#OFulvM j.?珥i'{W2/P_[uд?ؘ *JpEGQvzp6Kܗ! Cip7/U ]=lN?buNC>Cyhso]Tbch=PFm F< @%+F,zקl#d{>@[Vb - o|H<m>OpDq]0ơ0kz,cA)~7&6D@Y2a)-[mP/b?,/X]H]ݙf4%:Y۰m`RV ۗ@;f#={D1E-R߸^V:X|JѼG?A+Qb tW;95sJIV5Ʉ?O"q]gc|={OcY( Wz\{׋\7zto`ΔV*t+LttڳQRQoI uG1 oHR0 G# 5;xM~%t!(Hh;[@8R1(BP+ Cu$"a"`kd @B)EkЈZO4dϋ[U\k"r|ӷ)on^BZf8qF޼L .o,D>tyS| aW" Q$d-~{Hio1͝ZE+2U=`Ī'%3ߜq'^ Z+]L#S7+qVhBDڵ'$IT^œZ#G 6W23:W dl4I,$wFxζWF|k`'ywt޶@t.-yu*YNy;{fZXJ/Xި:EƂ ~ ʤzK79IOO4di>nODdJHbL (gs>ub%c{{w)(7X`_ꍔ +e߹>25ޅכu3XԐ?b Muj2ƣk*DO{F+p!&Dgp VA:ױ$ϰ nff&V !c`Z|sˋj"ڎD|,}"_bVvgLvc/9:!7/~ iϭV i' oHa [^+տ{@ uw~K8 9-;HFϹ ͝SEC@ gqf~878RȲD@ed20w ?.U' AyJޘ]7 -kT3+)>z^sA|Û):-PXlnGs~y7Jf'E@RҾ #N*, 4cǍ{(SO;ߎ3w.1?A9TN$T?d,jep (47fT}~9 \zkaAȅmYHnkvȓA㜏grPEw Bhd$p%DD(J5}7 )9H{"O5Ax|{T:;w)A:|IO*s`6%P~ɤHF \eӱz?|UG&z@C'NCG_.JU B1M5޺LwON*ɿ*eikyiB#A^E2N]fDT6|T~ !:Wt Ӄ~uVB&0];3+\Y{ ".V~3q:/68D.[RNjx n? p53IG8,E2wn>Tn_cW˙`#Պ 4$2sT "G'ņ !=gpЛ JA;'8?Z-@KF0{7B b<^l+~{*tR_P23^:KJ<^mKJ#GE9-kůUr4!@UL%G%]aF@ |QtݷD5.ːAU3L-_2Iu:X~E]lې`Q=i.mܝj(3Y`vkZaLDRT,`]}"_7u[c}$mIRfY y1~L@x$^Ei*mpb,n'2%糖An{@6S_65J+KƳl"F*te5+gv髼cQdJi׼~C#&ŵ=y)!Ez[Fw#eW}jN@ԭQ] z8Y@ 6!fh>8 \xHG%2_5MUV+.zorkB+?y.Ko7 'I -qbJ.k#ߗGE6CSHUPT5bt>G9DGآWEs;6@ t^%)ʉsFRm%f@ߞls 3:h?SWjռjf͐Ir1PFi;9w.oc7UΆ͘IavxyW*&3,Ȼҍ3:G٦=FV'ٝonUɺ;4]z ! [Rer WJv%)P|:@!>.4&Vښշ9hn;o@/  ?}O\0AvF~29㟓Pc[_jrich H>R9Vnrl:>XZYG:Dʬ{'+39бL'31o:DR7>Lpl= P'4X:[o>J#HN rɋ%+P 7# x#i?`j]\ZO'~` 1Bwd7K>}%b`zpgJbs( gYG&L3 tLs,Iq(mX&@i1fj'A{WIcineRwDU~R>S; ?6J7%QI, H,g1NN $SG[Mx|$jȽ*cIVtP~R!&J9 ;(+oD)c'4²؛5;|sTnFSݕ" M:)XJPK3خud'P><"EnrUƃL!np0 4&f# y.VQԽM{YV_(|.nG(a]. ӗhSՔk-)8\Z {u#.pђ_\޿c^4  F>4aiS9"ppIy 4u[4̿*x"^Gh_јB0r"+&7bo}+#(a}uHHt\]).n5Owh !C%{X'VL'T91 Ft=u PEbJ.Ϛ7>w3%ӱ($2OIE1^t.xb 7cˋq7[Z|cHxlQ\>alVI-c磙j"at"|ӟarnn,5 ( wK;% +)bK`Q5C<&w"f;yz<>^)T E|IU^bRN"WDGbj{& BLΉY֬5D h2ֻXS1z>VV#\%GA^ϰ##!ggih4򐧟ho8Ee(?8<1%/R|C/[-5$TGhdQ0T&O }dX(%_XlK4Q)M"4 ܢ8U)M&;xVxK]lKL1gbԈyT0٥ sq_XMV y.G;~Arƒf#jg#|+YNB"! M8 *ZDSܗPMHOwK1sy0I3+Y{jtP<<|A\?Jd =RݑЀ,1-houGYj̓x޷la O#qvalQo]ٳ4|e*l/„1$Mj<,IS9y\ "52d9垦zq;x2R]Aէ1L++B-;u[ф&!%2PdP}Uӻ^ >`ms O}U NrERTh]L#G>FM )߱ΎdȧFT35Bl2}aK}T|tM&->/|4KNEvIlH- Y"#ѝws'U. $$Co&ՃݭeBWs+:+>҇" rt1?EfjIcaljHeyI7p=c# Vh{z{3 K;ca';t.&P+!l]ĉk>qc*ȳ\t/=g4`UMIphz:CEzvce3Kg1] DT0nA'>L%,me@y sabagZԳUr 5R0{oϨ[5O=`@/ z *RrQx5uRb}4{{].נ=R<`kܤ„/olKCpÓtNǨ-0jzS8..9+=IKnMbC_wOUVylZ؛?|uª< #r{REhKJ!Gx`xOcRtGL"H|M9cEٷ\pK8-1O6r)DFdGpHD LF|ɻ]rw)58O2 oq @\T4\ x?{XSu+ мQ-@O5g^Լ <7O !W~^jVv>oH M ?ANbAEK}`I|j<*rӼ)_%JHe?գlT8үVZwB˳%L l/} CI|EXіx^=Z>V}׼1FeWi :] ˈYN|ƴk#)2qږЎٙCm9`\آc&@&c36˰bHQ54|p1b58 8 c-RWEPh^sn1q'>S4KMuR#~{z$ ݑ4N ϊڸœHGƗCꇎh$i:;,*;RvESUfή8 s>^MZǗyg3h[+*rUA/c-=i -pTBR+C6.@NV':QiH{n"*>s1^p؜EisawG ZUgQ'D(4\fN?$gnr|E&EEB9S^!b1Bژ]duG_Z=pq(@h,'vl Ua%^k1\,Y(SVPṶOnxSj ̾DU쌜qU^x 'lqa=}xJv7SGŤt DP()֫kw׹*ra@+bCZt> xa E;-Q[WDH)yC<&EԖ .ب~T18\E|$17Ft l!i>E=Ki mRR׷+(t/iE5pmK9.SOIWHJVZt@~={lG-v87{4*A_N%*Ӎ\?2jBGȗ7 H9`uJL|q膋䟴pCDO&F;f{1KY)1sPbh7nHYk5w]#'ZPXܝWERC$h&] ? :δ'NUCmp]JKprSjƳ]fY񰟷RD4(;MwBz]A7Z\_ҥ͝.69JF T.fSeD}D 0\SM9^Npdtz,(u(xXYX'hE̥ rJH1YSgO :Rb=/_; ?Q0|ZZx{o9=A.7ϡ|=AkI=R޴l-)f+TZ*=q>q @[(XƝdzbnĸjo9S" K #ȺWTJFDe2c+&"YE#F %mV\uZCeKo GFzȯJ<ːny 3j,>aɮ_H<(]c" ű'ȇ|w+p)(@kG"l(Z )qIKP_*,Go @,Xޢ z+/\BfǮ4[ZE2R8Vqj[cs5inL,__cߩ' Cn"$v@)v+godM岇8Я#FDdڣ-jw 5kIJ}@BWyt|xZ>fh#R0ܶbu<Y.cY^cm+ͣf|FMq6y6Q7)}-󔻎'|!EL76S=_ro3"nC [`͈3WiK@Lʹxқa5O9t6ɷ9 fIj4xm6(3 lɿjc :& sBnk^St%<3YGbJC>7-ĥad rBCZ-z6ͺH_=dDT״Z`|% SI:m\.jN;j%\e}eXP^[(J[rz}%LK֏ُ|uznrTjht6CyːjyD܍c5/AF0Z^( +u^ХY.SW1#US"M]EAãIcⲷ6wP#C,N'Dh\}΄ʜ/UeSm!(=wYd ̈́dcf"kURIYyLo m|D$.Is7"7KCZ.Pڛӎ 1_ҪH5OR{9Vdyf ;7Z vF 0,+)ߐ!X96 a įs돚Qd`(W~JZHf=eźi^Ң<[\ǭK%10$RST2}jwz7ʥEZXMŮj"9(T]Ԋ+][LF*:cZusK`92aSd=T }]6.ob.$Ų,ׂj(щl(2II0@ s9apvpbE5U"Frc>.0~} r'Ti\o;iߊ$+ 1wNú@M%ŀNI}(t/3%;B[ V85I<ٜBe[[hg$l pGBQ{yo NEJ]R€zLp(y ޫnOk*k_dT1bJ-/TOfr n]?0 1XPN뚯zܭM1x?䥯Scf1 G>naTUk(ML"$hHf ow1VEg%p2H"̇ɩ}ҵAҰvm{^ʙ _ٲ\݂ lGco/nRmA/e5ZXgoo+w.VO!Mke2%0ۺ'GSb_cgI#1^MJN"A3HRhV<3*Mts䡛-ry?mP.d!MKePN~QD)K@ڷI mb` <9%&){w@¢Gx6\UIZ]%k~s&p/G!K  M0 oh׆$$bvuI}\0[ ؐ"ݭaVZ*yj@{qySVYVRD7˘CGw?z il[nsE.9 g3y{*n ~{d?a&p1,~iK%_󫍶m>Y}y (l%|p 3Mj"M9 ?t2õF"|+M DQ fd?Mú: \*g JV+];ǴzoՌڗoe. לy~4ʵ_wɗQ3#h`:L!eke!ik;(woP#fGQZ?|$tᒚ.7B!(@I|9.wqJU9)e=T~~ɖ@#mU,Au}TKy g`nK۵@66hR*&|_0(WJwD~aZ>"l[>7EfOl wGhpVe(? g(ljBo\nn^Eopo]lQNy5- *>gVJX2N`-)/QFRx`JB,J?7C_{Zfe@f=vY2cPMBFDȳ>vo͋f JY2]Gr孓}ŵL˂E0_dF sw:ڬr6[Ȕ-f^KU&ʶjtN`_lSb 4l*Sc/7)vMN b+J?s8=@s[v!c^ f+M~>:.Vn6N9SNe#κ>AM1kԾΟ([#ŰFݱ(Geʮo*#H|lݵߩ?9$?c2h)8"9%I6ON:Ҩ4y8kҹoyKr-` . lVd?S`@(lN8`HCTbֆkutIuGi`>تzL}w[ dBOh$JU2\Uw\F1l❖-ÌOބӫFBZVoMiϗ 'X`R5N;Qd$Pc :9>$j`kr`d#hAZeƒ)룗&hް/m*>v;!X< [Ҳ:۝b= @hKiV+3[L-c j-b^kXȠkW^z0Rw%)w> {e ULNz.sTKQt_ޥ L/@- ֶVz@(kfXSw Tq}d28$EJ`U.aHnafG0m$Q~WEJ^Z|:mEM.HB~CLa$.=«2i%KK6  a~P$.L^d˯keaM8P7H+@ vFay{6LI?q%ZVB ;6IA#4P|u,m|;L;Z>?>1w׉`qA"#xceB_&Q?4R~ʖXrjɎ|lߠ:ed0#vp~OW޹V|(5~_+ou9>& BU0t`XN, PvGU^-⍠l$YcVZhW@fܷplhՁjmanwIJ~vVu0w;Ea6&C/sлI`=ٜ>8jV\)ZZƽDtp­ll҃& LARֵ>.'VDu!mP ȕIgsaT){gGd𥿨Y-2eLCrhw)X?O5pGcn>?}!YJ}q[ bfx<`ipQT5ſc3->f  6 |keՊ%\ OwK"5mQюПogi==S4{"pF~9] LIݮ'5,Ɔ$NB(R,`Ȯp`6UOYx1x1:PḸ;XNΆ4w"ywP%3<*EK=lF>!Nlf\\oFhmpڀ؉ֶG!U;.9[8l;vz&7&D)7QDtڤ~uυЩW$r8AҮBQh՝[6R9 >^HsYòJAO⣽^zƊqӞKJ,5 l]kY77Pd. z,3RrE/n9< gu}q3|h8'M5!?~W {/ ;i(6$@6fn][) 0@7yɶ60>\n9l<a}~aYG"U 4mGAc!vaZy% 1?0 [핯DH8tJ"  S6{=34LTv7l0{r5h[3hztC?]#3fW6b+$܀KFhY 3)NqMx.hBVȋEE,زc]Yl 1fPr%$A] ^΃hiqv!$gmo 405aQnVcbe~#& s^yT1ߏ$i[<?>No!7[: ͽ>+{\[W6w>yB5f>Oc]4.k4]j,6GtFcOㄾY|,Bi`t$u A9m, ]_Z{86ZnALy)r ЦRP-*įw!ZCbV(ضr˟UB>j4ZcqPE=۱io,2 Wm&%~2~?'dR6OvU*u;SLJ'wKww~`VfT579* \уΤ-BB2ǙWWm޺;;$qiPBxE7jHM:N1LO'4L$N- ih B[jR|#O-}G]%\3V("lD_Mc hn ԫd#0$ w3F.#n"xtQEii~r&xPM`_a b;[6%k_}D$h/4+ϪF:C܄vj uR-'o2֡EV?L$69ksTܩy,4i4Serۻ2=[ώwȃeThfc@Kr j|)Cy$E15굈!V;ү`pn$*7gRhxT8:ؼɈd[em B/rሜ"t#Fb]L5-6O. ba_-ޱSx+YX@ &Ae\TF.Fao\ֱp'}Ou:,uɬp3ҿJ;,AphSd EB_5:_LZ?6G C==6Mxr@ʓL^q@>Bs*- "!reXdĚPu266[j؜Аx}cQJؕfetKF)3)JijS .D}askA? Tg G['WR >~VDy rDA3N\`≹t?9b#":7]@\lQ[ }vׅX'Wzfev[e >Hbd`HZ>T J9/\w7E ]`Gg|>=8STuuӥϟO 4v b4c5 ztVV?PF&Hѝx ehKr<3x96R\ 0>`t),.ތ-k 9 3Bwn"BveJXYH "Gkx(img?W;Z3_qr7 SIupѰ w4K崂va;;D4^F}&Aj(N I+q¦ K]~i ~\A-ϟB`\K (*]@ A8?J@C[ xT8sDѐeV COKzfS ZT焈CN}Fbh#Y!50^)DaN Q>^[F" |;א~բ&'l 0$Hε=Q Vk+}>"ҘOOE@m2+Hu ~'l{2 w9(M/Jq-m TjP°cٻ2 }̱Fj6q(nwLjZ5ndm_93w_"EҢqtZng1~=,URCDv~ EÇ#֏h!ʭOÎjNЍ*o7vVIRU&6KA$QfM$dY-e` IA4zLg֡#g'WF~i:99(c=b㺨to( 8"Ʋ֢o}̍C.,Pڰ& je%I3-V(o`Sp8/^_5*tr33Υ8??#t`3e%aOu}kE̡A` Joy^).nWIa/) E jɮ Ufwgi1u TrTXYzu/nx3ڰ8hHzCGƕӢ C #+S{JI0 NDsH‚Ɵ+bubtO@#ȞV]j8,dj4h[+)QBdǒ Q^iz&>k9y;˗_-ō6t?5l0 ^Yk-^XbFbہPkȖO"åvzZoEsm!5Ô aVt=JrۓVNLqogHcgCKffQDe?[cP?0ZyRQjqξAȾ&6Jy;&ZSe>q쎤 OpWdKj9=Aox,M"* +Fˏi*CcF5&#]Zv$p'Ƃ [EN킡o(U`wp7x8 1B:6#J|*ZSPt9k[x3[٤}/"C;!؝c_Qrg=#@M4UwTU\.`ev lݠ؞EP:0dxdkiJ샛7:Y4}Hm؞hrKC ~)]ԣՙFi0nE{^\.,4lf@V=F/#4JO7N2%jL$Y/.G]gKjČ0=- քFXgwcɛo(>ͅA𾎔1^ic$8~t RnKѝI~-J0B-vA+S.8Aָؾmeh 1? 2;.fE5ΦPqt]|&0TF~U`S.EO 9Q~2=}Q >~gAK@'pxw Tׅg*B Wr_#r Ȫ@KऋO(x3gUDx%+!(f+Dz̒z"Kc /`}(n)#j%K^jrHUR3yy窲1Щ,DժKɹ$`L|,`dJʈ5&]Fu;fTHao,}V@ӻ o@ {pm0ʇT(!)*.7J`*d }a;8{gv[3 }pN$o45WP66y}RAxgv hm#G3gjMI6b:16t6JDC"O2 +5Lpd'/ճ- ªRXەގhC1_~Arˢ\ 1wm͙]( (_{U7UߴɆWn'G\]3@bz^Xt$>۲Cs:z$r/&̹~&ja9'Lz#JQVuJĔBБ0~ahvˡLً];Yz##?W#Xd鎲Gx ָ1UMT3d z%V9D"h}]v3\+ӈ80wXES@/6d8aӖ'c`\8[(>J{oKCbL{3}ԳMBFYXHb=.gT' 3'˨?:me϶ *N^ٲV:Ryd5PF{CRvڵu+I8.0KV@ /㍕ o GBO8˝uEIDnE Nk=MTa8Oĕ D]o"_P9yon"FO'B),\ :ή;GŰKSqfD hE)fVIF_ɬ'I*W<VIԐy4Ӳbacaf#&'s(QZ۝$q'u[~>~n"4[ϸw(z`l@u>9@&.xt]z8j[k8FM3h&??>M˓ַ {_SΟ1KڧϢ'ŤA׃gVʨշ iPMHm qp\_CL<ٻ5 /Ii3BHUڶ-M YI S~TY|Y5RD;F,n}Ma+f[?`.'juVN#>mhZH2ռBsPԡT}NnQCr[g0_>E,bvٱk V;(304gIs fp *36-$ޏhamW?iWiu{Ds>,%1z讚tC4WNL+ Km\"]7 CK, !R%hxM#a ǟ V.{Cf:@}9EyϏ`ebU'iϛTjK6pUE姪Nv29w }Bqm\|?oлCEx>U)0[>{t:cMdMHbi9-1τwnN2&ҚӚF{WaK} }Ύp{GP;bS1RoZ[\\u Y>CBm{5(/@ /(|' p9Q-=he=+}PњAo8TU0m) &ǽut2ಿ69_Jd3 7L|'T+%qbRV+dB+6f1B;J-aJϾ"%%sFXs)v"g,Qy抓5G< ,CevҲG!h:ro#^fݘ; G1ڹTl8* 2sdo ði*(X-xUR{B̋ThEwS!zM}b uoy趯yXoP=BhlGC%Ԟy @LVJ1%8j` H`LܾχA_e7c@8i#@`Ep/r:tCݟ\ߍ8*8,Xzk$ ,Ao? ;/'/XC(hՇR^s쑗u<1qX'(pc.1VW[9.cA1is^|~AY 0[hWmy2+`@{c=~UXΘpjan%(EVtUW~dk\v5nUalK,3uwFFyO~Mr|,pOj˳!ތI24>萴*2exXT繆 FЈ=BrJۓ(p/h1Ze#ޓQ hL诋0&ZX|]椔؁ib$IZ vgiu^+Etf waܘ6.,euƀժm5Fjo% J&'JU-F-pGFST$°\w(wFI9WaW\{W>ݬD L Zظ`-:V2ıTȅYPD7Bǖ^3!/4C4;Tq47><'ng1H?H !ѐ,yMT{u|nhFLh>g*:~; OYYI>@Z,V~#5c'9ӥщ[hOGN{3-S~{nOYu-7H1Tە.")Ϧ?7k?9֔4ÒNuBAQSsH?CǜOTׁC]'cZ^2K = jB;X>A& T&%h@h" 1C\&łHf0^0FZ;YN;o`gۤAWx#rJyh2݈MmA!X8,u9G$|V cAqMP$_'(Z#-̃3`L~PXkƃ|s FzEN3=ɕqXDζ (:?4y7*ll{Am!Q8;Fmg%v({.BIx 37`wjm\B0Wos1:]D#8KBH=ZDO;^dqʁ2RcD +)ZX;T2H3T{=ϤyQ`='nwqY|8 KVhI$pـA}TlNzb)O8h@:Wo?w +T>)kPD&*3iS( #+^sWD2U3/|uք`2jܻY=ĝ!oz˞F+6ل.eA}dx\,hw?a4YQԊ&m*qK"pH.lNO鋛>J8yKiuw.f$ۤyTG.`U41xޘPS[(@8EM)62C\F!8I+>F-?c= f!YE#@\|~ծO`mЕ,wxO gV|b*9"=NJQ.q:=0sJ9ϵ}z9N!cceW֧8T.5 Jf?{dY1Syƍ:,xfOu VF"ѕtN. C;bJI",3uLd |cX3Т4EKܮb(!KK&>y-B\=V~pO_rp`[,~+aOcZ]ĸ62K*hӓ e&rw`L,|'Բ7ڼ'Fp֫bI%)jdƺZ3QB+PW> 2z ~z (R^e'OZF>}xʰ-Th;0$=~F*o*Ճ/U2:t;%J,p'/`r}ɵpP3#En]{i+vb`L=B}Y̝ qBfMʫ".VHTkhc\=hK,7~쎾lәcN.URx65ZI 8(Μ$x/5\T2 ]}@<0|HX79z^YuWԄ1LpadCםn;Nv"j` [++pΙT !5\tQ7jVU󀬟 ?ꇷc l~Rz-Ba1_ˊvT*23eI?9NLL!#h֣=ro>9i JaL*sޞ!Z G]H0eSkw9d~̡pgW O8֜㌩?RI 43pT&:) 6 :Z q?Ĭv^EB 1<ۭ9"7-b0Ԉ'28Lha]J))2h|ڝ 9=5`:"2 n m#r&d$nv4rYN2g7meC]n8mpo/ *?v@Z\xbkou!YIE2OB<ٸfY!ᯮB0pcjC gʯv"({a%#.i`s -& WC Auh{Ym:+X}3eZNlA~,F7u oR  p e>yheoT{LqxS79\|D#OU )ǒ }lǬN*/䤻ÛCM4 `y"}Y lS`N0}\쨪{^qC-}Jo2w2Уٜz&&.rIdnn'.캀wHK^4y8ʧkI\Su͎/Yb`-JX\̐bH*_W0P*uaQc9ax ؾ(T?s$HJm K<$C9pE)Iiܲt٤2 ➺\7gɤdu9?Q/cU^]W{cC"ÃНN^ Vv$vP 4#&BpL Xݰ/ܽJt97O"}dDJ]ɜBsJaj45/op3i:R"qvT7OnAW]ˎj"#he7?$(ș⽟"Cռ_3Y>?;9WZhl;!pR%{|Yp\ Μ>f6":j_Mw c{%$ ӻH(y!j{ϻ!@|0lk({BTyH&=i1G!Ba6w3^=@)hAbЈS<6,l/+oJ\ƈ}k1fǰr\lANDK픗Y 0Ժ?!;&>pSǎyc[LͪR/I~C*B> cg7E cUA #9w nnj1^,x3po.nioʢK6oΰy50;DYtcxGJa_챻!m)q#b/Ubll܁1?yn{M`Vޯah]# &MbiOP]^V^nzyfzA SF: YZRI{ټK$)_1U ]raT+pЌ̂5[9ACPWQu!؁qA-$c67UcA%2E:PQSQAw&"hSqWݼ r NQpfߖ'n f?ꛮj 벥*|zkVZ~A9*پi(;Ibf9؉S[;wÙ5l\RmQ(E$8yq%, =uԥ9BVH̝cY\ǢLHs3 [zᥚS4q)I>%jTY<^on^hT^?^tsΡ)G sƹ QZ%J*KyQKedUR#ޝ X]f`4퍷BA=(=/]8f֝pNmd5 ;iMmtj8>Ijp={sI?1:?v%a$mq튐{Eq`5+%(U*V$ʍff5Q7?_(jK]d)8M5T_OI8rp# s;AVP QRf C1G(Cj/gER7|ۙrcyTZJ#jM:'+>7i@#y4'6A" CO[%=//UF!BPӺ"|`,U4ZjȢb%e42-1MX-7cܼg3}ɪ$mq 2?4x[+GyM' *ZfL!dLν֙U N@K_w 3LlJ^&{nAfm0 SՍH|5w|Vij-N:FL.>y]$ƫ&OGMgK WYFWO$-聦b?%r„[֩nJnNc( M1>M*M\vfHRz{z~ Ah \a{Ơrf^D+y @ŽC|AO:tT1CUJv6^qR|\t dS5S۰t~ϙ%i"QJ:/kҳ㘒~̑ m=ЧsRSs/n~ jb<栈bqP^ܮjn7,`ϟZ# $ϙ8-aԷS%d?b:6-0>`͋w"OpGlն] @څ1vo?S2H-B?mNi~{ 'V9J VGC: pƤ:/'*.P):֒X|EQ֕ӗҒ,{7̶[B`M2Qk%@D*)܇xޯJ4rC]5M"1OQPT`b C;H {ev>ψMdzo80: S ޒ]hD4\2gyʱ=l$L݇`XFA$p61YV((kгBOUҝFTx1Ar Abgj:aJx6L;t#fP&GQd=A2Fe[k8 ]\k>Zt=Ax>%ķ\d!eG 0|w['M 9%csa'{^^N%/`G4DED➵z%LSqx+GC[m"H+Q ȋ2 LM"uVnLR7%g@uJхil~ܶ3$ . 9 ѕ=Z;C"P?Z0ґB!ۀpۧ~Y >CI-ЬhdQΫ c\OMy G&΃6֮ڀWv4,Fx|:a/a)G+Ur 5<>LGSraX6 6 2jJi "zxz-&"yVX -锱A$cy4_xh{&7$@[OT b\%3oI?<^\E@r#A|XBI A)-p}EOf})P֨;Wr4ȥRArad=^=]FlzuQ*"pǰu+a&4NEj |X(/w=0DG<.FOz*OyNgal$NaZѬZ ):b߮t3mO35 > (&`.T/NmGpn(cZ.3}}=tmoy2ڃL򰧶j!lqW-ooā|HmB^[XkvOƟ+,r)s[)`U~UaSWF 5` PoZUT{2jV+&z[!wc@  @F ]0~ՅX}P@ʅ/ۤbh\p} haў_dx@Ntg%.3܁HeoU]Aad 6Ay_U;+t#<ąAYfU}Βc?6Ni#smd:"D"-=rЗiM/$0JBwAXUUW}l^&~|Q1(i?\̬eֲ~ie0͔ʵr K|˪0 \-p~9'VsCR.;ݔkѢb~wB18.4pL}S-z$@uQ:o6?p?› K2~g@Qd>A'ƤO/ZL(Up8k=gw]hioeӠ4SɐFmt+NgZ> uZ'tq-sk fe[#n3ިU@]@WS)#q)-FC7!%8Ni0'>¾{bo U6K;.R)Hl1G31,q O>͔:2_-? -!}lCt2Az{J1y9w y}dE"#rvZkiHPsuϡtr} L8(O׭?Z QMNyOX]Z>$ʬ>RY-++<F-"֢: );m҆@b;#\~1ƜV~z)! Ϙ7*\t+%[=McG=rˍw.K G=띗lWd.)Ndg5<t>1s SajX7뭐`6N;pؔLuRJ)t /p":#vs܆ S PT?LeXLJt{C䦧Dž*QC}7A(  }BG`ۃdl/99/|H'uc/OEcO "վpsvȃvd±B$#e b*j e0l.}SiǼᕍ-`(=n@)DxmE(x0,S51D3qDf*[3i1(luʦᩚ 9w!C?gS,X'ypi۱K5V43;Z}luysV"]5.;Yo'yUpw+Ā^rYSb!o[ .0]FC* ܼYɯ/MZ`HJJJY|жNdĮ;לnBjD)>mbhb 0*2wX pk@L?cɂFoC ybö=1&}~>o"= 3򰬎6"˽v:/c4*>rr,8r%tML.Kl'ex.Gcp8* H1)1kvɰ`cf I஀27m0q^>8qm4@?4G53KWD/ͱ[N{I, hqvRbOYޏ] WoRБ<:kLdoYBGDaGKYLSьyAD[g#@kOx߯$2 3A)u~ĸOR:cυDA\ݗ9ʿI, Uk֐P7\t6kᵢ>@ 2Lڍ&LfۼJQ/ݛ?f> MZEp{nUcm#V.\N#U :ϑ-[zXdϿΏv&/zxYwDME u&"nDEE}"wDϐ.' fηߜZBצxlq|~ d|^)6i}n wOi$gS95ь\[LfP}WKcs0t5MļAȌҋط޲7JBǡEy`:8GCe8@PO3lzLp|C6KTəPC豉^k:wcCRmƖX!{H%o4 nDDqI7z;\T8R8yo66k$LIϿeз)7F?Ш$ebY^Ay [$2EDpFS@g`ͨRzbNV8Cx1l"PL&pgu#q# HT։뒁!B$婘c{(l:ėj2e"1Րr[cb{6I@}N͞8 K*?vR̚-_{F؊z%t8X5(rSU 0up>dY9,R1zUg,6z`x^UE_{ v F3Q>kʜd¦ %<ΰT`Miv=d!b 7wC-g\+fK^MW 'Eu+[C*ۛ$][f!*Pؘ[H;愁Hc Z]gF.EHu蠑Q Lo&CT>g-szµN| َuƨ޽gDsY;B{m-Pg@4|u`_߰ و,wBH^m=sWo~+͔rV$R5!ʥ'yCv6.,wqwfԃ; fbĉ4Yjt!gx" >Y̝tx6->/H]S=O<"-7i輵Jza~b K1oHDF~'$]9XenOU=fA"a{*Sޗd]i)@ s6xN XOOox JooyEzeRh&8{-kPBȁ1/eTf;uϜT8Js x*P+sYy4<ՉrvjsO"4Ry7Jh 3$=eH?# B',=kNG>%.k*k}RW8|c<:N6?U?K Sh'#h4煠U6qĽ3 wRqܓ4p[Ω{w$H:QKŽ4wH~#TxIŐT9Ǘu<[7yl i{KWpSiEȽ:m$m‚uCۋ(f(z:{6 ^mdZ |'*zuC*z ԃ5 5 gԃy{ >AlvpJ!tT<}ፀC<ljbsv4'V{фnNέx|v'uޚ6h5z}{ܾrGU 5j#de>@!`ޜ^Y9xWLTj &#ji_$b]9%(D=[N bsYB3_6sjǾܴoZ01H'جmmk fX^st[ ^3' 35֭ȄF-` 7KU z8[{dK=s9$"mZh[/8U٤Dy,(H@bRwm.1fD[>1ŶXN'.' Z{!CR MSQ)3_]P؜ҥdم.T y܂78ˮ{ۼm$#ל>L~ <;jV Aeߩ5pBȿkKF2FЭt8NJ:&lʆBRMV?d^#~rIj†жmc=Iy4b0N~chX D+*J%R/MA[u,p^ItliYYR)YB麘0!$N26GZ2cRjcHF7Gcys*\*0YKO R$b.Y/4h4mTt9]vM`-k؋#R?~WI#,ݝMVKgڳ*w,N).=bۉu qv֟"~dDɛוby/ωҴ( KC~q%>@s@CLw} 6` 3YU /uڷ"d]wu5ܘbq"#fƗ`/EHABri vɔbt-1xq-@BÕbl]gt-g?[#eD/:/dO+$* p*@p,xNiP^5~5`VsDqߜrU$PRK_'>I Gw]өެAu hnLin^w>yyֵS 1[BN-Wr\ei%#FguddQ;Ø,fgB԰z5sP%nirRޚF^c ڳ) Ü3Fy0~L)si`LJaQU(?$+SG֒Rs:"ylx4s|f%^ /.W󀹢FdT7'\?m?HX?Z/p'oIzfĀ2wk פڎc H[WshҺaFbF( X9|QV0T_jTU u@)c+b@%l `:bHۿ_1"Ƥ/('p/'ۚmp \;LkymLR1{HT33NnQ}ɑkK1~"]6-dLTzpS=[Jϔ4{LI`x9֔aMD%ouJD$ݽs3MU*,TR ZNZO:\% 5ҭ'DE3>) ~8+ {}ǡہe| QS0iie.tƿcuV m8̦q) M|yDN|1EB.PkXla䵭cKv҅FMUFl&Ιv %VWۭm^1K*UmXRANz%ޕ%o k bzBE=ނ.D:@QeLPshA4ϴ< |5?{k7gmJm?Zւ^Ұ{O'gطv+ue;{L;^=:R.g@PKg ʵ6%1w}iڷ;.; BTh,}Fiۢ7.Pwrණtß3T{=hge1w[,TVc+;khǚZg,;758b8=%"UWVLE# ʻꩁOG;QW#N;{ZܳpTHUp]Er+7@`ϊ"4H.2Hx={%vΣjdδ/R{Ş s"ʦZ^GA4}ܠvkȺ$ D 6[{sX<EMK()x6((m,^c3d R>*PfצAVmeu%M^d:F|Z",e}4ưavglC8WiXj?vS/¬]BE%lI#!'m ITGݕM8^*O.>j)\[mTPXdX򎄁ȃ1XB8YM'`xx/1j+WzuS5ZW?"ߵ= u.TThW-u-4y޶ia|݆l=rWAbc ӦjTGڄ; 7ޤe B91ijp5Az4a"6QG.ڒ5~Dݦq}S*Pr'RĪlT:)G?- ZSk&mq)NuGϩqA0>>tG w-a'}F s)1p?P6|5J٢Fd`]S#ƾ !Oz2R2'e6zפّ= C'd0n#,'>1_35evEz1yޮK\KP)!h%\X,zrcԇ72NAorx]XTZGVynWE>>nagl=TDRSIH QI8b%țe#dv[_fv>K!ԛd` 9s2ΛL4̍șp5O̞Q:i]`#Qf@}as r|~g"v4&km`Ǘ|sjw̺zh̸bݱFw.7GABO,BԑYxW:;p?"SQCyV>*&8I{BV {+ %Lc1P(m$82 y7FK?l3 X6"͢!| o7C>%۽jӶP#EN 1U Y`"^{`CUNx 2{e)^q?tm9nkm3}ŖJxQr|>GplKg4MtU5i༯xj@Ы 2uJ6% , =-@ApP,٧!sѮ=stȱV3Agi\}R޵d ̓?т}θִ@q4W֑2#[9iro Y|gI{Jd蘅߲jJM܏]5VR={* tP8#TpΑI s|_ⱴ;SvbWIK95 .ؖu5t~&?=GkVI\b\ 1wkqfxZvbqMTCY,0Ilm2Ia;Eub|2Z뽮:E${MВ8/8X uۏ.%k%4ڑec8F[/!c]I,jMmx%fҕiՉ~-Jt&cp[ʱ  l _#ٔnhn` ܋;g%G&ܟ8EgЖ@.x\~'0Ѐ}ئJ/!wnNO͜:l< *?-7 KwE"sf{cl'4Js^67 >>UnXם@Tc]u/QYX>d |[9y1'֘wyM6  :'HBhģeq. GavIl5Tc0~ICh/% V-@ L(C1 *,Yo?|iBH'?UM<[},͚ԕ_ 339 sۅރv FA{ԙ՚]V>5S2A=&Gc0{&Z/ (1?Q|JiQA8ǹ.)#(S'ӝuTN|030Ȭk{ǤQ N\NQ ^J(T7 N$y;0|zK`M&DZP'{3 y{HpnI~ <`Qxmx`-a1r6Q)ҒXYPJQ\bDel_aV: w}bn Ց͙490ՅT(1J=QH84āhz%˞K{3ђ&侣 G T փJeط ώ5NGKa:o))k׻عõy 򵏚9ǟ0Ĕ~!u3CVvZk~t5~m*g-&E|Q0dI;#OWNBKB.WEURt牅["-=oBaXzV\kyPtH>#Brm9݆͟2d̎zֲX(*?X9Z$pt&A3?[zc+i+WZv[%Uvd2X33Uq4D.kB%*Ed^˜V\23w蟒^fT++I)<1, qu%נJVl6 waMa ekK1覕V6#,#:_yE ğΐv,\W^INdHX9_@-.^`I|)1O0>]ًl0nsX^#jfSۅ[2>Rogn7,:=6~)g~U,faTۀ\> 2EBH*\ɜ|צ=lC _5Iƒ'Y=m: csz x / k-la7xd#Sfe[I;" rC%wEIBNwۖ6rcp|Md6O' JE"BBE  jIu(w^U42 +]k,8%> Brnt?ݿ@gEc-(«:ӫv(E+JLKF/Oi[x0ijy oqlM5"O^Tl_&O77'AY0Q*~OzBWŭ8`p=749r}lC!2"3'lmPi= Of}K]Vq5 .αm8WodxpsqA 830\f]Bb@#D;tW.n[ QŲ С$+ հd9-FRg@o$vI.mH120ErUW=LѥJ_ڀ&_lЮN3i%`XgoeO>g> e,/td#P[zڭTL4|jҔMż)-<7ބ@;ĕ(ώ 9سQ",dMDrN=כ#;w}x9bH J-Tb\*dRciQh^r)QdK42MRl)k8 ٗM(o&It)XG c.˂^V^_kD32]] _t8INp d\qz:>-uOAkrQ0&>io IMj1R8&t_QI4ϛ=oBL}@Zf13n_Wʿ9hH11pfZ qr_UV)\5HsQ g߈kK(&aGMmhfTgLfܪE@j ѩjxJ'()DRaZa >:M<Ƶ᱇S; ,._ؐR;z*9 ȏAU!.P\g:N-|L#4CٚW p(!S, 8luD>ԂO%s'lcx+&t;)9QF I)pn_1RD׵YDM HiC f,TC:zawxS{I }2I6@Ss:$jR;T$USJ#}~cx5MԣxYE.n;}?67ኬwG&Nm-ґc. S7Fй]*!R^j5뇉 EJt٩l:Q83o!y\`]ʡW ? JЬ1մ,--f⦏ TJxZumr9#֢nX%u nh/~Z~qBP"l˓]?,F]Xj6Ksmm3Mh|R2R؃҃F0IF"*)d&}hvttj09y>ڢ1C!hqra>"Vn绐%FDuK9X~Љ)=*emv=m8uJkB6&yj\=PY iH,rè8Ѕ"$G+\Kl5Ʒ2'34 I:|jB4c@Gh0b8zQ Z `e3@"V(G/O7noX99O>0y#?bDRcФ+\fѩH~/ :J=\ۊ,Pd% Nf$x_[ʧrtrFqy?NK)u\BtS~d]&TQw\j+Dnq6gM:z TF T[!AG&a.@ޏĘ2Ɉg},GU:(Aôj)XhjԻoEZa]kOYýTdSڒǿ0>nd>m|> xƩޅ0G~Xɘ,ľmؘuؗh^YbYYL_TɲO˭ /o<uZl 'mW\xWSBCٟYNn 8Ŗ N.Y_ y]S7݊+imdb0G?/g.(jkº^N-bqFas ީ˜+LTgHGbP3z6(``w&snQE ~n/x0՛6)+Kڪ\ . #7œN=D& i_fxw0g{s#jf_?"g[v&@V7*GC+ G#F? eď̀m(eZ}MQsV CNo+8<3ጯ2}oM Xc|?$+GsԃЉN2E;d?Gն𫨶xҊݼ\$Xʒ~Z]>?粞dƾ2[XI=w [ ԑiYOtt`ځCˡCy#{I6);M: s!PVzƅ}ZAJe5,RNTRh[l Y66~ ,. u[ վR\ٞYc<:黯r/raPط[0]ߒ$4G%񬰒JUOllKpt2o17~}Jۊ2IsA块;'?1|R4YP6h` gfgwuw@1I3-\ik36Qazev'@H>R h!/\ ԣrY ㍊vG[4XZ*[S\W׫܈[`ʇ `xb1%h;N /C0}8LS$GZ%1<<4J2Q+ʚORr3U+~俛EJFy1#(Ff ШmOz7,gjՖ6 k04H1"&|/By$ f3uu߄V_eg^PrK"Rf*3kZ?f0Me` Va|@8?` L],k*ЫU  ?b@L@cKv?H4Ps>|X&2|[ZsY߉T.3A8="fݹAPnf/:`9. [R 7R]Pw d\fX>Bjz=%E=5SD%;\^GiIYW+6՟yn}13 q{]aAQL3'TW[|q40!;JǗHAwj)@x"Ie2>ݱ[~X'T{vZy~H~Ke\!xDiPΡ֗o%)ʨz.xo'-xoe[+uPB{>UZ1٤2W~J` xa^Lx5h&g𭂗5YfC <䅂|MYڿM_mEK쨲 +9+ZoM]y'${V0 Suu,f1wsx+J9og!MbIkV#lQԢ|D/DpQ"d;g~-Pl S%iO&5$D*˒>IXׂZK'K!]ޞr0 z:bGd@K'8"loX_!j^ cD~S6~Xʶ $~A~$0Xu&C)+pdfɀrM_vzӯ b>4SD"oޟD%jmP5XMaz[usL*rv Hv!{D==j}乎}XWq,@Ͱ;p2; s/?>D tlD? y镨aeSWM>a.;Ά iX#Lmk]l|AB*p_Z l$%7V1ߎuٿL(9Aby.6CĖPbȐ6%X(R E0V葭T`:Á[AoO՗_:Pþ=vٳ,ZR@+0OvOrB_ݫHiUyaU+}nƄlE|aUl@_ JVWH ;ulb9+lнC0j11-H)wV1)!<%D&V*UIÖ{w[Zr349nI,T ^xSoS; O4c*yP۳٥3S|$f0W5Aҙ)U x(W Z4ir.}8Sb8oQ{3Ǿ!3Ƭ4jw"N4r~^Ĕ:71gY,~ˡ }pMYZUwÔ-N17NUZ$?D <'7L*'pXRC afZpTg&x0VRz5-b2ʱ71ߚ׸Um؄F.~6YȶjEF's>]2lӢ?pF*dM}5("d!>u{_`fFk/UvLXv # n!b~xCC9~(y]VAx3w|Pxmh@WpWʬ~''!^~ 8O4fhg3]>hJ)ReL v:N5s{(#XoޏwxPaAN"襊/=@$Cwکg!S/^Po5b=F.Q+U?:J|ޝL[M"K+؂|*HɁA1waO{bݛQ F?ݾmvα T}|3K\=mG15vGxu]sy②ۏnEw I{7RGΎI`̠#P͙Ê0D Nb-Wyn0DyҢՇ&ԝOv뒰ZF=ăQ}p IO(6>@x)W,r6CR!aݯ=Yid-uny^E.'Pb4X2vz*BDu xVDX^!x3\w&kh։ވ`h_$ɪzINJ {N ua(Db#Y!pbudSMmQigU#ED/:`5qh֊Hg<C&[㞺z)}샜.J7b~щǛE!B "Qᧂ2aD@lU+CZҗy!疓OD&o 8f8ˋZb۩%`ޅ9qLb H!-&Yߤnޛ{+:.'A*AхoVgfьt7~܎d̦fS ' kDS#8jQg^J,$3'>{Ϝl!H%^I#t«V:_dWDvX*\1e?Q=nWQK*`Wx}n#AlN<$+O.ne8)h!X)0i36'0(vAD"{zJ̈^Qq ={^\ÇQpqTGt>HWi蚓9ըY@_g+!T\)|OB@ll!J=+ Tʭ%q~=v,+qwU sP&_m#ء|O'{Ծ!kpK/*E{TI!=azQSysޠ.CrF:e6O$uzvI" C.n B*\gnTS4Bk'}&$qKoKa[g'䎗5 N_`S,+h7"hjx}{2r gcx1 "4 Ć登EǎL X#w7ۈzbV (I CM<(w FCU/wÂ*Fs~RF!/K#M. SIsghαUL/4D"T^I.e+&θ@^Wѧ-[G@l72?wMsl$𬔌{}3s' lkb)/LFl;#l(nga^)ǟ<'h k8kF(b;jPMSש\*d2h^${fϛr Ğ5ݾDJo1 ;X㗍c73ّ@ Һ3RhdT")+[wa]zFBi߃rr vG>{)DAK ]ƁGܤ5ZMQ(mnʬ;suǎ? @/Q0(odthݢ3e=h˲[fi(x"HUJψBm bt.xN%/]VGIcxekt2ù qw"\=i'} o+Nc[߹9u]n2z*: We*#!҇!a( ɲ;Yre ;7=*:яE6svf-s5waET ۻt5=W>wdtc 5Pb'v$ŠcGt3R:ad4[JyzYt"G.]?YXF4Sk,y8i2Yfå&Vn^˿A찊fÔͭr7: fNuӚ`1]6gE[=E$dj.. n~Rt*[> yqaT}kq= B'V =t4%+i6ڊG}ɕ&N侭Z'r?/: B-rڰ#S+|{}l5GD4 c?_?T{0B ?m0nWR9N[Dg[rfR])\ZODq[^Xo{"11XRKDȆ2N\I1Rm DU&1v}S㏪@`y_5+80]bz|Î2Kv-:o$kP@yZ\8LJYC^ԕtwʼHqZ䰳$Xkߖr[i= j Z \IKxDn+E2P?wd3.&՗wB N40pޡcW=!]wsq/I4Ɉ{D|TV<g%S(*Ki%$%k* Stƒ~fUJNį<05'Z ,r$fY 35Y!=-]jj|_3Lk42M$e^΁h!F]"=]joȄ;` bT_!j%|^n.D1y}j~" jH2CE%pPG 8.7cVlEz`΂goI # w&ranXI4}ܷMA(tv@zL69l_90\, "Evx!E^i{hT;ȣbX琕\D*?4ARLzTR}lm,\p,A&ǹNrwllTOO١nIff@ O#C(0#gݥ6'ETF#Qu^rSy4 SKS=e$}esG󵎁'vö2Pg>DNoRAǷ7^=IC∏KFr mϖBŭ_spkw'o{$*z~!pb쭣}5Mp=::H>8G BYL$o?Ej F=JP@iZupp*+mf{ޯ]B?4tI;,ܕsZIsS(02;p}8S`<`e<99YY+b -Dϡ즽cһcOgUy sx好lg{!JJj;RxFVl ?UWƍkh ؂M B-lbĹ`4֛OI] !`e L^I rAaV+/9oiL\FӀꍤS|LنI0F=ZPb9ݫװl>G)B)LD:iQCb vZq@?Mry wj]T(/Ge Dw3謈7NSe=FHsg]a5&yZa>AOijMx`utfP@YNw @W%5 Mg#QYy՞̎m>37LD41أJ9?nv5C8~* U& S|9 b^ =0[WGy+ (qUFuDLoH@ݍ*QBKڍ^zEfh α)7(~Fـ"J: & h-1;,/aY{b jvDVF&'w3T>,f6ҚuΩUK'j 0鷈~а6^\3'ϸ`.?=$ CJ_gf o뜇Zd~ˇ/=?: 'zJի瓦N4 U?K.Y5YΫvPLQobĪDw~1 :d(C8ieZM W̢}}z GzU Be.,(c5dp/Gc7i*"~IHWgLx9V~_t Ry hlf9c"C;L\N$j{RQ yY1@G27%/Bo=̲{G16~d8e(rK@CVdy9V40meUzCm@sWl8` НNkEMd'kg]Zn ]x_&\k_6>%VtMqgr^Sh=퉑ڥKYҨI^ʅVcIf٠Ɖ'~ЙQ`ϱ6el{0M۩j,.=aAn`!Vf#@j pHN2 ISDS{Y/J#rd_o)I`QHn#2*ms%MRb M^XJI2 gX_12`X\յI'M2唦==mIgؐ0 QuEW8QYN?6O;o8낛J3+cN$}8IÎK'6fr%eI&r|RWi cex/@B `7:Plǿ2&(|ǰQyUio^gX4e(W X; 2JnJQVC@xI5Z2JyMz ቍAi9Qq!؆44Ӻc\o7Zc`XTs(AW<,Yj e1*dr]Mc 4¾ ̽(Xa ^*kՎ%J%.@B-Se\/d%k"J-\:kH=7ꨓN;E~`:D7u\ zHxA\KaSfOZS¯ RF 6LԚ< jPV;7@qŢl|0J-hC}$SnoD.2׶Ձ7l;_\Mf +/ (3m"Ӻ+ASq~' aVA;X1A ,BCg|شtn(_. g8-_ Ӓa 77{9?LgtPEX|t5?6}gG,֟GLrtڤ O;:s낥LYB-Bx~|N}wX.q̞6$KoZ_[,Inwbnppաe0!n/X*zyMU,.CC_Z> 3b/_Q=-!dT~M'@󭺙0HF4[t!fǶF;Y |,8d#f3CsTd|q` '"\d D0wYf 6[\kM%iI(ciC+Vo԰O!ls'nEΫ|ͭ oBBGiIK~Y޹>Ai:S{|RzO\WNמ2єφb.}G}YI y\>4\XI!?:*'- Xef,6@l5=x"<妯+s(vIrp>@FgNsecEip9r(ΘoAh }Sj C%'gHݿH)A:{V 7לLx)"*--R쿡X# ]z̶ya:EZ˂z^aSgWsML7J$th:q[A ,qWxQ"넜K%j3cn3}N#/;moa+u|j/V\j檒4R@o2nyXwf)eDv y*AG]Xh}G -^VIVs\̎T rz3k'+xc0F{p;/RL[>QU '7R?uN}@7m$ps,<72;<: wZZ@W's`,/Kk_~RRXڦQh$`46l) G1|4 m1D~Vc$0˻zQ'.`(^ˠV%;hXaaGt;7e!\{w:|]3uo/,qpLU`Xc,OIe+ub A ȣ=3C8˰4a/֋x sFd"$LB +uCn yN_1 Bʞ'7sC'H =o€RHɕ:cВ8>f*i3ps?/# OrH+*% I-_ȕn?JCܑ2@M`pz݂RQݠY Rio~\ɞ{лוXSO~PƾO骯a0"O(kmyIu4_#돦p/``5cAʣIuHP1:E[,nRɸº$Jap5ǝGz130?jc-hPMK޵&xzhКxW <7Dс7sa3fFQLLUr0rť4l+@ETBTY d}(ӨQΏoІQ6(Tf%Qxxv JUGcFx1!QIv=+oH\./KM L^ Pz?Y8}.-&:&m!`{Nv\2-%#՛zݕZ"^O();ĈX-l R$*v.g68&n`46S@06 OovNwګn&7?Sl`k;,}PC88+˟"l5WNx㬠gD=u͋[#`2Nۈw!,g&-ܥc+! ;,7!R1 G҉CS!VacV$8[ME2-D.Q`pk,W>3+ Ayg,;gg_X\zX~ ȚD 7`| ! #P#iZ @)jb%3°- o`DB,Q@z/[U`*׉+=HŧMǁy} (mB ymgf HnRM~ spc,64Y&1>{ޞLe6AX]iJnl}CP:qQQ ^(N2arO4wͯ/FkLZZB!n?h<f_On0q_҇RpdA@(F5 Րm:rVx2|o>hhamw }@]]JRܶހ{$|9S&f`i-oғP:qK { (Kb "r)8aʋ"cJ3F],j t8,c5$M3`\Q$]J D`PAj^wN>UzCAf5ߧ`֎WF`-G5OD9řiv\WUƗAHAik"|rG %ZVuûu`jD2beS/?kуr HrjhEl9zRpށ*E)PC3Ar/X{yB'mfNyrBudt;zS d}QO%4 F+T>;PWDA Ha>mH`9?P3Z+gi8qsRyz)lWƛjpWUW6̿ёӋJ4P9}ş@,R<B~<˼Deި(?R1c ++zi1a/@r<-h !:>Q#R3]\(k#y'a7]Ŗ) y;Η3jA$ (PPdoS&rI&HIx V%i[0 NeQȭ;OHgәaeݯv, APNRzPshl)7R=0u{.Axx:I:@1s4)Xf#v'D'q+b&eSB9-L&A1N^f*+>тZV֊ ]kh0Rn41vM1*hp<_H,d!z[T,O8)PIԢ1T̔[iؓRI9ً@4ks(  Hz2=4WVq9;Wm\ ΓH5;JCі;.E`T$s _i60EXm>Δ{'b2hM VF 3W-˅THR{ngT>X/D|]&X)Ûp7gҪEGiN?OSg4be 4N5 v*7k+ nj`T% :[^A.?>C%H@0z}%lS 5#@\M/@9ނMfh)].BguL% ]3!̚P?l]5aB eOE4u /:6 4e@7wVQõDd+($騖FhI)2`* u Gi-R ]l~v O|:x#3b. 45䡣fbw/~ZYC"OrgN w=%I|P&JębrjhbTuOw𚁞GtӜ[M[s{@1$v웫†y yW>N=Z "=5wNdvf7|jwC>Uo7\lu 6nKZDZLX$+}Gq籼 `!pub%X4{<94_>{ٶR䠩ISfn #5*2r.vID KѯS6w,SIg[PH)̹"+wT7igԠ!`&[nuS81) ^/;`ZaVfx κFӹt~K_Ƽ2.3wU d@ i} ǟDwtUon;aJ{?UyH׼`/aCE쬢Y87 ',? AqId]<Miߢ68J%Zw'>ңOM [Rk} YSO.duf)`&g '^ඟ hh>:  ++_J0=)2IF5㼖S#[O"tW-V!@GVIf*k>.Ew4mVɧQ+Hf RafW)7̩Rg:^gjR$zrQ^m/M5RzTJP"w}48*d{<1^ka٨R=7c:H t7Kd.;kf9*ou=bݓ#P0wvۖ`lמY)a}ճ@X^1%veGs.JK|Ѷ_u#m)2~KN;ԇ 6 TVXR`Tx\C4X1'be=,9@6iOOnyJF\39G !U38!0#!mƣ=wj'uͫ38B*˰Me%蒪.Z7|P(g\NhDxg0v?xwnpրM26u' R=xatߖ5yw4qsg9A`9ǩoI(&D&#_syWT:?B|0n*Ql (F),f0DerqIVHGXq$nSrd?B,+2Lff5乹{Ԅ[JV=0 ,l ]SL<,VFWBSŵ@Wa^P?g{fG`bN]<3'n?hgsǨ{4 B/hxH0st97Z- Ћ/Kw;*D~Ra,+uS=eDz ޡ:oos:_rO) dH9HIhUv '.T4U<%" I]+* hBn˂uE3hTTY-NgÎ[ \R䦺,8{:^|v:Jj( $MsyV20 I7RJ7pû5$:Q~J~A.~b3& |E~-82as(%g%A̬??Z;̏5uQ]Yq3λ+8A4TQdw 8CA7ꎚ#ز.Vo:.T)߽: FЏݼƤ pO(=.%{1Xz#R%v恬Q:7pWj#&0t=o~"-)}~dej%ЮD Kn~ L26qaTN-\. &) "o4ApݎFeȄޘLZ"`dQԅbӔ21;6DUR>÷~ SXGhZkŕ\KP{pMdF7 #y%O>+Yz*PVlF4yY|,<Т EC ~L#oƷ=4WœKpn o-sg* ,%C˘""E) Cm=vCMl O U Bfe?!3;;l7-6v1[Ni?mH'“ۖ`;2?'?lU2D*`01| QF\N{*VƚPلRyƥ\[< 8,B7D]N-`!kv #M_]-(f@NCj#?Ϗw7eeSy-Hحث$3X eQeGki'yq.{O)vHx"뤌dYtf*W;ҦO~X W*6anf1g33JWfF4.^޾̝0? u!zLVO}pb9Db߷Ty~2 ە,|2 :RL/oz2~YkRi| R^"jYd3K㕪Op(Qr-V]O\M&:T]nl{,v *aqAd'& \ <݉ReOY>72;* $.S9oRnw|(a-_ݽCe9>\m^s5V;sϕ!ȫKdVF(YiS1l\41qޓ6=dhh-vN%; K yGrSgu`va/Cԭ104:uM~, mo/eO1 C[[J>=;0F(iVI_vBO WԸ-+f'=¿+iCV:VD@"#N}uT[JYO=KA8:nFzdN lHKC:]Ă?ɀ s[.9zf^gQm2K~)CGJݬ! 2L e2A2xP{vS$q2J W62$Pa̎P:-MZ$<9mz7qccd;ܩ]#Qsl.Ѐ;Em U<=Ikpn]z {#~NsS>F,%@9E;yI⻕>QOj.o!۔!GK/':KO|wAoEnV:`U.l)\q8p4gz4-0BD.6E>h# NNA}8t|'GB&vXLwfD M}3-ix;ӹGϝɡ'q0WW]97u-w%t ȖX*dZTu N 5,պ%ϧO|}1\=.$JBM >&4FUyR C֖&>i-O`>3c"4obaӭvZ RHPM)-2HYCZ큥\!{Vxd@o:#5% TMIVS<ř#LE]a*IfT`# DaQsc'<ЉZy&~斶1(fB")=V}ё8,{h@nl MᔨbDb4\ͤя䋩B9AD1sATOE^PsykXcNc@mSTW}k&&t>N7{3|#J=.ٺmm`?>}`fE.6;`'rõ<['նu_W`KD2`mT r|bI :k"§+H\b/Uk\V/g˹c&>RwWmLj620vnWWړTM6!'˛3U!dP(J)J_[йm1}B[/+;͊CsDE'Ta/|.]Ӫ46op"3$IE 6NKBCGL&-\~y9RE'+2rlatk}e ^.^Wʴ:rz"I\ <3Ni#$[ώV;c2Koidb qԁ y!+f@wL o&*?muxr zzZSB@O 9ԅvؘNy(UY .T78 憖 I{37ϐLv§wl,&?XX#땮Nn}Jחb@1C8 ?o (™Mw4cAH3P*wኬB.2JkjOPLR\TjJc+ífyvQ䷔E _3?q'< P-yn`E`<xp˹ӂܪ,qR}P[47k6wޔͬ[Xy~( |]iAGvUߏK5Kƒ}%?Gv"<[d֫~c5ZR~uej?^5-\#kqFAJb n(5~ʱUjQ."MS4̗i5fc\)vzCl%UetysJ5C,)h48WIS{7W-\fJ2ȞG@wsw}#)̴o H:KOrX):-Q}iD-NysDC1dg=V$=܀DUGXW>h}A[-ET@@'ݩC,U oE^!EWX4yZ#j׼wu\}>ܒvAe7,~Dge1dYA,u%gWȩ)G\O\뼇e .SU4@k hpQ,x*9f [Tq(x[?ԉ+tAF.jH 0ҩņ²-nDxIN4wzXY&q6{XD-,';)"^hNx+שֺ>! ηK!'3|a-'|ϡEw\>|촦/[eO jq*Vh(`ƀpb:nAR[NhDգ>O|s#3˳+ p 0% tmal=rե:˅[B$u1 AbgB4w҂ ` 6a_jCfrJDwS,A{W-N}߱~FJ~sgN`]7iD:U߲sB5%'!Еb o{g^Y*K"z dz->kgEa [3Pnp>Oq O>,dj$W[cj|3LvLu#z!F(HktEMdEﭷ_P]rAs@!HG՜F#zU'0S_qktϳ_Ԍ7pns=yn]F'xHYΕ_1ΤYDu{ FD?z ,vRCμKb[GCۇ+%4t X 6A a&o1vy&}EāZmu7[r oЂX؅NH׺%xˎO͒4v^UTƨeʁf?'$)P.$=j;sVjj/_RxzٕPoBDJ93Ak&@qv)g AX??oE 2\ ):`ǃ" jdz|ݛZ{xgԬFÖrդ UǢdsSߎVzivQR-eψ诺2ƕ6Pls>^Qq\I '_j6iP/5Ts`)萩+igʫF: #_b5Ɨa7mOH~_qoq _UٚiZ˵ 7_ x^9()PxϦ"kIV٬ܳ,L @咋jѷdB{X͖0Ig.i,. q;bH[Z){_H^VWޕ&ZqTXaM)۷,'ݼ%&Þ' b,PPjuX'Nb`?<jr|V?\=Kcx6+ NU*J1ʐp#v jl%tA$Qbo.rEA*Zܛ~~ z !_3#m-Ok'lIwЄhImV91 UuM 1O@#L)hr9Nne!}ͫY6d8O);q#e!h<35$"֠f#|z}GtrY@NN:yu\c&f_{+҅<2 Su֤ڃ2g":e}\xQǷgϗk mr $Nfe{_I` L{U(:ݐ_2|.Ia>brQZRﹱű vMMH˾lCL{Fɀ]yUXh}k+j0p^ۻuR\tlC=h^2D[;?QF VĞ\"py#g\qG~A6HS!+/t`1;Rꐬ(ECeuBtD \YhOGp2DflP{@{SWO,<s|`/oوHuf1^l2}&y!䀷ه2#b r]`ޮ>V "cҍ%0"s'%ZBARٲ 7pzߤ-D9a_k%+'?߉/$:ȭr^1%;;?Naq!(҈^GXsv.ޥOxnCoF {=XY&1 M#]0>Ͽ,*3xu$R(@`zp3npR_YYZV%#9d'JRC:AO Igif+:JDDi|7[>'QB5C~+j&-$ΰp+Mke@$}\R]+$Z$)(=lXLgDNNd&A_FǮA$!ݵ{{Ѿ;N%fm[gï0? Btp"jjϐE,INgtf1Iw$KvBZL[X̛1cIj,l|Ѥ)Ie)ۃ%`†~j"8%P2B1RirK=*eiӮHa;[%&|(=V/eڣ%Fx[-qSIM,*,z 'A~,Wh^+k9Ri6fjo޻@:zC6Xڕc@Cƺc.ئb>X`ڭM U{:b-q21BpUUgW KY .qubGgzY~%>Ƥ\V_ 0X*fƠ)Ξ$(6-m<xe 4 곃\'#'ef|7Rc /钚"wS?#So0{hQ(k[*i2E* ZSXY=[7_>%Mo14ɼr~[x?;ǡi}9\U*oBz?lGl`Kt Ιxj2<"ԊB۟Ī ;${X!yi>{f 9%zh6ɀBo@ђjU E]Cr}a6H"+:;ir{{/x,b`Or+nş^QѶ0$ 2_aZOa9rݤsO/&hl28/? %n-Nf a:nle1w#tKK==|Eꛫdj*,L]BI-Q]JbAT}y^s8"g]U\I2 yCW}Ū DFg::vZS7:!k!>e ݠ Ѿա3,u/E-=9%o2 ~qç5R">F ZH,*E, D].j: 9-P螬&0 y>̈́M%v2,!>Ϸ8zȦhxmqT5FWQs7 3X@ suHV|EC4y£5Ldx">+0>|.`Ɖ"yIg 8K2'n9H2 `eЄKϝ. 9xaٱ0S]Tdc{/}I}!CI˸oezT?=Tӭ 70 BU_XH`QWF->$R^=9\&ɿW{ģC bX1U5yWaGX|,#A9: n )IQX07>1P*Q7iG*oI$Y#dQH9Uw:͉k_S[(v/(Yr” P/ ˞tP0qPOd-e(pg!=gŴCu>u͢?]\Eh+ɯ{o07ۜ C/E}xŖ|[Fq5xʰ0ƓUzZĻዱ3][YOz {*uKP֞(0|y37~hiI01Fc 6?^՚=נ/3sI_Aw I!iFދ!ҵ} 0]=Dz{@@3$BQ mqe;yUy8Sڛ`.{04+#J>cbON6{AzgoվNܴs%: 4I A56o c͊|ՌXO^lP 8Sl(HI~jV w0,fܕnOAaTշDKbTµ}1"ۗ5m,Rpc\`rt Fy>~ƶʣFsUU#iJ(Wű>/?hIJf7R6b NccbBO NSvBGywmd)ҭgԔZJW);ߨaH{El&"bk3L YR;z;_1N;QLnfҤЈ&-1+ׂږhɯ̥GɴV9++xFlݱ28m9L.TN0&_ůmuW&2d[3y)>sJPw#>(ʰ[ 9\]x% x.EɮU&&Wlzb"W-cZn5G?\)ivVࡕRQ=}E@Bۀ ېJLW%ܞ+&|P#3+HG2~JS|}(] ;q/uѧ@q $v{*lN8!,ֽ -Zg W8et  ~j UL\}>ėq<{ĭ zeAݢ-,:big]a' 1%ʼn4#|z?t$N=5 \)i&TS׍ kc‰0H ƿp(/Z8(GWb eԋ`#}%e>M 2Mn;40!uq (ּZS}'av},51#OTS${[PSM-w&=NAOB9BEbu ҉ہIۑkK!$F:7 DHAV)'ҁܽxE߲|{Vr=n6X^QRDqL6Q. ;1eWJ\#Еl[jb==fv*5'\̪bn0Wn335Ua,sesg/+Jv'Q'=eˇ,G jmܾG7r2˺߉]4^S Hh Afa'h5.ͻґ7HjC*JaL +0˓0]:qGk #JvͧS-݋ ?J ̽/-ty`^].9@ϰ-Wt7Ih ôAE}&,=D)Z*6Y Vi^&XXRP1ܟn]0=oj(M~͔n}.}2H]|Rƈw/64s ;u#-ݝ p$=רbr"KXQuu}^(nW1=_OmIȟjk}hKM g[JO}ߴ^pflӼU%- #u|@:׷-+2 uVՍØى5{mAibpa֙7\[ΰG}A^ZD%>|Fk !IҶMԞL*w=6m h)n5ރ+| k'<bRu@"hah8/]Mtp ,lZm~ϰfvgS yZŵ4U RN򏥙gb ӇN A C*l5]$ݱj5*|BYxq'*U? <:bx o|:魞Gl)LVlذ0}I ^F9҇Lk2g+ Ypw;Nj:y g۔nx=h/v|Ro ^Bvnb2s_y0pV>0/r;~\@U}r|: epi KݢKd] xuZ#ypM!`(9 -ť7 :Dlfg#I8 JzCP8pGhjP&訅;xaG\x`cVc}ᝍ(4Y)׹ΌߐjnJN,qAtEBNt_FN̻>8cȄU6N`MyCMΏ="~kMLpPyvCR ;S 4,vUѾDznP4^<@.+*(@X*%nә nLߚ6Jތ/I 8:q]?^-=ӊjEy FZ.zZ:'C:Dm'};=-6W7yµSؔ vsU??1F"~iX\@pY0Ko16V}]Uң)jјN_Onz0N؂j K;OZZwί6GB)[oK8*3עSRATOn m8(ʾ /洞A"F6A:xkd5 yQ q X\VNb{wv('+˷V)_A£ܠ:-#&X&~&fij^ fk磊}nFcMq}չ[6(͜9}fbsKG &Hs]Sc=ۅ/!bZC$%x>:vgC 'ٚ3>< ph1)X$޵ Du;`[G!)*7m䮉wmzzx=&K fSjFK(Mm\; 3L^ilgjsRi] *[KTֲiCJz =#ho;1` U̮[t1Ϟpmy[ro&!i2pXQ0Fa1v:|5"!puM[7d'1Rx2gфBBTb" !pֺQC+vA٠%ҍ PujiNRZKxDEz~\*>V"tx l8aZgg+ZUB_D`WY G$#zZ8ZSVLx6 YX֮2?euMjd`NmıФW_tIY{5G][LRD,0%_UN-w#YT !b ydjm(ˎŽ^"]?n6O 9=k^ -naҊs?HVesDd[n\cZB_l e.i9F)s2x S&O_w4h{m pԣC p J PMAɻM"i|!I/ #gC8_n@-a\P ԙ$oT[ʒcۤ՘6ɂK5sO/vjلTp!KNQ"t_ W:La$ѯ ͥ;A'o!A8 /=}Nh!#aAe]" F\r.FT :dHDC!֞lj'2#US;e>e})?ieI 6[f05OdC a)ℭ:d<>6hR@1<"er~qqg#f8yf@㷈*=3){P~Or%@:oքTQNR׌j#IXs<O BSU;Y 9yp93);MF68 1?:5*x#9> T2|B O#0rs5Y@ϫ!PuFl ՀDj3K*꥙g9Z-AR[Tꀭe9Uqv  Bᣉk ?yZt6gpO͒$泐s{͜{B4=P;sV`旀/8àB |c!VdM@Fjo=ag]!{r 4 vb}_͹+ m5lc}NIWR)\ T)|"M$  _b#Ǚ]9oSqxeb1NSP&zq O&W pF?Jc>0rw;c@1ɠ NE>[Tx 2 = s YpI>7_φP16BZ!ju❐p5FI@磑رvWiI|a9*ߐrZMC\Tge ^.sF`&OǰPAϺ۬V  ɛ# !\:FOU߱oz _mN7vz je gz`)RC "V% QPKTl'I.G M%W‡<{&d-S2tjT I)9+>|/iM,Uu-1VPO5kbXBɠ%Tt̑29;Bg]_ ßsEh/G%AJ*Pk {>$-BJZ)dЈ]+Ԉ%y+ƙ Q$#->'fS.OK-*x[_M[0)4F &2! 鯂ba* 8Ls҃ٿ) Z -˚6K ϟ=lV~_gk{vI?F>~Q~;,^Yk܌CanHh Ӥ](9& M8S5Ò86'j&l!|md:dJ#R_pVV,7\&fvr*8_ AOQ\qQ1]rF7v(bmyD#=(ɻ%1Z;&<,-ZoYEîq)*ә+埏5Xkb.zPKv03H ו0!HK+BM*2=KǘlHBc>\4MuI݌)/[M{R{EVS $?vy,E{g3t׹Y,Ϋ0e+qt$WJDvɖ3UU&GAry7r3^qmgaW>ɺw;U҇xTW>ձ{ |N=O|/R}Rr<;|g«i/!p+%%kʅ/u<7vTC*4_Q$.|^ily=43Jxp3Խ7(@ZكAhfJ:HؑQ0W؜@o])/ë́xeJX2l mY07HF˯Y qS0h` lmGudJgimd!arX6HaGQ4)yv=X3c0(MJY p'hz~~\6K7a`?0P[x]ilF7lbr :a3nzC';\a9b- Lҥzt NKmI)(ֈ:4lE8<4I?\/gWcFӺb?㥔ɨ EUFD*.sNQ\z.Y yb\Xj .J-ɨ܅!!doW&W龦/יi3L_ or:J|,+d/*&T85\jHyM esK a&W< 17S&5+pZWغ2j~kLZ&riY]&l4kwi!#d1 etQJ[gّs>f)!)N|e(q-UmN֕Shbs(lT|ja hM@l"$7k"R7@ˈ$?^r:nCĵ|СYn EqNӑFM cC9:dT_NeF49SoRS0f-YUE.$YKw۰ 3"2' _LhcF Uy3Fm&^ BIXrLI]NBg;DiҧyWp1 ғX>x̸ {u'tq 4"ˆ%⊎G&ѡU(㉦9p~ ͶP壿}_/{u[3\cCmktH'uwL!К~q%^C<]KLSwTAaH"^z0iC%hv2" AE'Cdrk9^ "{M9 n5׷jGwD3Ee_9S)^iӈayutfU!A<8uqA:2afExؼÀ81:@|GLU՛GF]08'ߪw6p[#*s)uϱQ\/\H5m-?Uot6D'R6[xmڜ!?@-:#3[*yMKFW >fQv|qO m';i7"\hͽj&ژn_q֔ Yel+1Eho2/%9}u@v/$J(s2OeAxq4A3c$Rdf kmG`-'ey}Ɇ3Y2xFCz Xxm͐:Y'~WH8NNem60fU8@KFS;s_oJ.IcoBiɶU_6 A 9eIn#}ŀ{K6)Ք>0@}rEĺEр4tq.Դ|)Z1uųڏ`Krõw^L JiQ)TP1_Z4ߊŸ"As|< "a =lcJ$ kw`v=֘c9XM!u1=?-VqbYm~KG#ڃ\ W)ALA+"O5IF_Sybԝӈp9pnBsި|>3@Hvk!pG%vUR"B3o/pyoQʞѽzɘ~2‹, 'lGAV Dn]6Ŭ9 C2p!}nIok572b:{ggk|w6vy`U.VͽN0^=*Tծ86тD͞e9袢P wS/rQVA(mp6b.Ե<&b8: @c%Z#& Wr{0/\z@R9i\F Gm,.-n-Tݿ@GKL.`|aKmrժyXYOL8Wt[fqQq:5ķ$CaX9rd3~kkczcnjYU خ.>%if~e2F)& ?F,C @s}dQ8 ez.X>S6pOf9n3R1N8;rj0|\~bP߷{`92q%2ՃcN)2'-*kkIͨ"P>YA\q}LM3)K:-dΠ>8&FנQQSo4U,"ADUkmQ,tC_gpvfF6#X |v4(fS WS}^jzdfwotn JEdhR +Z/9?BvE$ϕ] D.'UGeA:E+mFغ|EdXɯ8*_!h.\TxQ 'ԉ "Ww'+̖Ǣ_ n=INOt,R\i +Èò@U:+0)M˺g82Okp]%Dm"tk8MewTBU,3kPqH jDih]dkmCyc`4 E0&IYMpӍqޒ`RGڬ!X]mQy00 gOHzVE VvZդG`3HyF`UzE^+]5 !F4*NK=KOb_!vR̻ (*eg]`=v Zc0>2iwB!Ϻ-{)bMG#%CέVQA.{#~,r[${F^fI]/ ث< gQr^y+$PVl?ﴻ~ ,1#k3zV'^kHMā60-:[t?Tl`V4%V1* )5dFF=@o #D)ش%z=#ZgO஼9uw瑛 ﶷdmv^x#ωo\K޽(yT̯+ `+A~ބ= |k`MOeo[uc1{tzBc1ƌy{yАxGc$MRh=6o{{ JAzˈmRaeo;mP-x WpXBa5&wlˡ)Pȇ &W Fc6wJ^8dısq;SG&V>\5}r ^]&&gUp9dNjLP;\҇={ ث(s{>ane3? #`Lv67ύ1]Yvqr5Ϧ[q!Ro$P8%6#ǖH(X ذ `}a%ۄoZ]f+_{kcJsa:4PK)HۈJax.-L`Vh?؋a,쥇ߞ@<'S01sr2;&yp6H`Շ) k*7 }pteDa߅,ﱨ/r.B;;LO͇0DsLmK|G\Ш*Yδn160X*$ 461%=v^}ɘq09n)T0w_Lez "nh^0x!\30Q.w *< ʜޟ * ,;cpObfEټVǙs)R2nR KOy Z.F9ȸe<S2ǦǴ&gy>iX!U@,m,ڞvEP=鲛͜-MXc%\MV ;yL˂w SA{Jf(݂Q'‘tЛhfO<}^2{S̊$eLq陜c陒iD?I5Ŧq2fV]q"L{ZL[cO3>M`zӏG'zTSS4MgBIJ'ys(Q~a ]'4xu쮄Y~Pwmi{\,Zp8zhQ\a1)'Pg37̞5^rE7BƬ|mgq Dc:E*r}b<H4!w\&Q1ϼWUgܬMkA8:h~=TΗvYhER]727.$#FX=5 ƣ\%s [ÉL?# a~E"@ޮ)?„]vJčrSmSoz2:miH /z{RZЄæsjCUAL #M/pGpf3ۊ10l Bz|v*m܏*d&kL(ȏvjn*nR]PYzҊGDi Ț,~ʡ,jU2^Up?![8 .S94'pvᏚqc3`8h7T&XJu@w~{ONB}MJ!NKhjBey+|0p^8GxVr$t}Tѧ%!,5R Nj yͷ+R6*r?$~)Ydkw ۶?, Lay YfAtJxɜA8:w8*CZwm \6ƌ䞺o8zSӳ⇓ ,ap0_ޗ{myqb \wY[sHcGdjsV0JF122ul8b(hNOOBT7F<0TA{fOMM~i6sH+_q-j3z y.\nXsX* Ht G7Vϟ8ܶNtX}ɠH.|ߩs+(FEa:tHoht\ڮRVc~ ԫ)a`!.ʲ ?_WXU-MnA|II7EtvxΟ\/qo?0.˱<(lh!U&[SRhv&nFg5e?=k⸫P% ecuO\ij93@N'{R{]1|B{SeԜiVdaR.Yk nǒ 7qLu[C JP-;}K䃆fᗠZȿT/cǴ~4׮ _H-u}*y*\ۣmY>ϪهxYrqIQuW'u/30e>B@`aOehJl]uN:ѓWƺZ ʇraFs(Zjz47#LNzs+0}]@ {[!6"=? o~ c[~0OQq"_2u=L44MDiAct{g}8y1ڢ(xI_Jz`ɩ5YyZQ$[J)nGm' sOitOwi,m݇VOr!-^$w!uR^|Yv+QDU {Q!t뤏!)h4G4[;eu[>أIװwP9wlSK̂ ZJiݹ JPkt ‹B.#>e^yG"Pر!bzX*l)/ h9rM>/x X\[uEc+, !H 4%U@!q2W?3Ԟ zVJ' FpaubC!tZcW8[:=9$T0ؐ'TJAEKYP0@TNboW_Hb%z$h7j3mZ Jq fJ` kiP&eK$$ ȶ +%SjVcM0C] C8-.;,el=p ?o!~N V >SZG_'95Od:}V;qy2"Ķ{*hArk`όG*zv1GFXUmf8oA1ɀM{$I680?:qEe,H{=Uu B,5dZ-҅i-J O ݉F`wc_d#(Z-aT|g4㴰Eo@Wtԃi0eCq; YJUQr mr?S ErľbњxLӘbaT@ƇK&}?am>0飫0Tq9~i߶g'(+H&@y=#aĄ ~)3RnwUZ=8ۜ+lal19MwQgW ?Pᥞ؂z7:ĺ0CZH4.ٰ Ŗv%&z!,:OKK+⠯^ 섎޴٤j<ֵ^5eyW vN52EEZ?Q6ٯtrQ) f %t|6c` f)$)g&RhfsK UVHU4wXRGɎ Q~9s' 22vڥEu8iy<ˁ"QҺ EB5IuCI#j{ԃqc ֳ5ï.Ā "R`(E~ImiB!·aA/MSwc,][2/pO4s}MjνU, {#z!aj(ю~RзDss⧀'L i!tϖ,! zHɼE9 ^:H4e=;kH)v6A%.H)'P6=gA2u'T3m`HW *@{A1B2au[ 9Ds~8Ze*-&KR/\_Ȫ4C -w7xO׶] #``Q62ᮑq_YD*3.[pτ@mD>24ܨ )z ;4RN &R $G Thj86 i\-NԔpH#r#B$[^XyR#f*%SX$`o;oh0DQ4PN󒬋g 8"%(UMM_{9wO^5'?ַN=q"CP:$F꤉B{rXi'" >SB!Iabh"tbUz㠬V+>6KD9"c~ҷ}٘/BE5ZN/ nrWL`@<+ Մyp+<}w'?b!4Dnr OU۷c'pW'콒vs2bMLz;RJrM-vumLPGص@:{4Sj-a &SJgl('׃̆wUR tJiߍ ^1~6;x0a&׺lͲ 7qЎ|sJWjHy-1بHb4fQzn^LBw!CfYԓt}y0-pH9R~ab?cS#?JQo T7UL= ^j{gb-OK<7YIv%,ϥf0yeBEaUt-;+w)rűAtjp><7%uϫdY (Pz6Ą9KYVBaWor!ŤDD)K9/.m=UuƯY5V{ԒgΞ:Ac^PU̞1t_pK7RAHxn ^WWvBJ0YgW;_2ɭG4=KcCQW<4 XzU诺:K"pEK C8MG%H]kj[*e?P{R⌬1=rgM|+S0P@DX(_X~fNI~!:L;Vd{'EYm"ڦz`3čJoG!K-|Pp׼ּuX9EJ( $NBRM[P @&;{,=h!b湓()?*Ub[/>Ǡqw 2!*)4~_Бvxfz0sàNfK5@$ϵYn\3WLucWr<Ƀ.]u~gd~ יfA#ެ_ZU?\o*#˸ۋF텳F1b{ѩ3.yJٻ_9Y< &g'Lz 'hRzۄ`٦}v4!3e0ۑÝ0Ι Y-_x]0< qy)J>_(c"<5-Eakȓ ~a_$R*,9xZr>|;'[w3 | 53(E UwB|z4ch {}HOH(ӳL:Z#ޯ0Gd*-Uy٫G#⢨H^ݮ=.ԋ3y5kr4M &cpwܜ*I:{eF f0lXJ]J@N`;0L> h҅HcKkoBJYzA8j-s0Dl |j$ET9n#~#mYb'DwCt| l* .w5 eH:EXx[8EdU~2!Ns_{wqܦx*k% TɞQ2m\؋IOnvh[c՝1ܿ ea(A}`K89V4^csi!x"6>>-yKD]I}oay#cR{LW?| pڏuȴ+u8)R|D.&堑*u/Q4&t2ՑEcoJ؏3f퉊;k1.nlt/ZHmJB=jgIsúmէoVʴ-;i /i{8L˪rJ{8LQbd"~== d raMWM?k@͛X@Aghq৸;_X% KYe?Tc*=USW74snlA?"6 697. ~7dZ>'0u4O\0W4T )Hf_LS'B(s̘v"p'#U8^O:=}!/KdM|w_D}2wM :'fQЫ);Bzc40JLqp5_"1q\5{n"+,K \jFEI 5]$@S?4G%xt,ʾN/ ,]P?ܢ]?*fm= j觹>.̀0C`y!Jx;+'(=lg=`-n|~6HdY C\1-dJՍ8fy6|eQu07Ab6N#2k, yIj`zyބ "^M߷2 ,qCWx,BGl-%g LPm vloa)ZT`a<e[ӷ{7*k.[KnDHGG&'w{!_6?$D'4|KPqPd a/iT> w D9+0@gZlOiYj*؏Bqz /F\B5N0P7@׬^2M@B G3{\P+F5Q4^(/d7\ T*F<&zc[ {X5]ڦ7<(0xZgrϷc+Ȫ ;?jkCrU>Yt~f1q =ji!$ƔP\jowlh^#VRn{cyN܇0A\}g:qߡ02C3ˁ)z)f}ޓIcj‹ ,=7,p8RnaK[ <-un9II=F HVeb6 Z%08 9]`̩*&\RFiU6`x`?c){Aa䎜Pp HD>k/Fe$A4((.҈2'\ uN;8gЌ@p݋1j˯߽VB^Nr.'tYf&(pջ\U}fʖ:,ȓ.NZWϚ!/ȡJYvt00'qSHiYJNYkOJ Ali:$< yF6簣2cAYIlěh'PAi:2-xRLRRëӞBb钚8uZ<⯉n@.Pr aJ½e ۯkXB& LqvԢAۆvbbnYי0lJ6FW(_ `mÀş6>{ʀ$Yd54۴V(slx0aC" *ӗ-L 9'Lllt?a>,ˋnto3t-qfK;\4gxNb%n:رɭn/DUaeq_`}Xem'ZGl|-r'Vi Ȅ4Qw6 u W|[ͫIQGA i#L଄zRAviO5VdQ(Qa+b1aUwQ*/zDv胉 Fa@ R_ Za 3 @W1Jо &ݬZ)k,*viѰ+23U3`4C KYlhp\TRC:`:ABnJBK\cgW ߗ8v>χ _бU;<8,d*Bc޺];V]"IozD-U*Olo6Ujq2<ɤ1Lv̓)ϕ>R𺇑DC6,J+E)z9+IrfĩҮf;VPb9L)S~7{@ }y'?OPYƲ 84s*]}U}1aKR#dx}5Q27 k"{.0s9ҒWv_ E [^4j_R/EkWf ^`0&cFoiy18R\s{y(p4:NIzA6owQεP9P( ] Ǽ6&1co[lyN":]zhO1eKAq+Ih1BN)}~E5,]>Cbhd`jU+S"&Xxt}(N[f[kʆ~:kYO34TueoاB$tq9|jPPa)@ FpU~V]}SLE~(sk4co'& >\C0"^܍t-0DZs˶&B사_&CCo`b QKI@*#z'M$ȭ@M ~\r#",#qiM ƌ1S윣g^詌-/MӪ !4iWT9Δ? /A8igSZk^!T:%ӣ]Dp?A}.:!5[MMXoѐ-Sά:Ll⫍AHjDAnAÈ?M-i˅t 'Shov])*G?3(u˰(!NIJg*WD imIXu /0ۏ瞉vfWk/?!ۂqt%tkJd 3Y7@9u@pRG_itϋur77=S̺<5w B]R% !)JS 9fJiv5CQ{ONQsS7KMչ/E"o23 e]rpHTs`p p}S${M쯡hY/(n ,m^<}^2HcǹRAxEלL=~L\:vY3 2BNyUNs)d[궾YJϽk2b4-{Ap&; k,#co! om8&J{Gw[Ц>#i'.vyafoӨG+kؘkCNJZC~5)s}0s 0I ZH#3g)N$ fIf`>(fh՝UPWW˴]Pm~D LEtRAG^CLlx<qId\ZKSrPd+^m)zؐdXǕ.e ykj)L%sWhU"!#g RR{Z]* j12 2g״u33;N)rFq(+ȓtL3ó֭ ɌhQ13 ?51b_+ƧG =^t-G˫$XGnYn² +&WK W#1sm$a832?|ǾrDx0ua0ǑPP J#$Až׳3yђM{'3ʄU o5N[{JKzP>4UT( [t.ip=JQQ-kM V$)S6LFcjER]\\=tS Q }Mʋ%Tv;FtRJ3G Z^7 7k$ak8le NJ{1v3b &ԓ`@fib* dw7ז{pp6*t;t,pe[~Q̜dKajCY]dz8׉s-3[ZZt|KRYΗܚ402"=,[;gSwv?ojCG,9 h%~scܝm9oԾRDbshI;h㈐:2 pB4a ZpHS6Фa\Z^BȥL ||l!>\1PV% r^fbO`xXAΡaW. yo$" z؃1Ϻ(1 fw9DA}~,ܝG&Kʣ p詯p Odɿ;Bo ^@*HI̫Wu<9*U9yq O=φm=gH6R_=Gh"jdv@=)R?!t ?T:5 F| 7]=M8W]s]|mZlv.DY=đPRK}9`<͚\r[riAS$!w["t [*Ԗ] im/;J2=r𷰛3,˂ 3|"ye3_5[Mx Þ.` >gI: P%4#2LFAAeD IzL 8␚mx}V1LCrGi9myV2?OC9nwKSfNvr+^?]c^ Q_hU J 59h"p!xݐs˛Ү3` %pmlCf"A'$s{F_J!{L:D6Ģ S:jUv;sl++>z*wtUn%dehՄ8ulZ"S_DX1eh:LQme9AmMH;UP}8a3wL`* >JE'+%SL15Z!j.Y~zc^b餚h|R1xiGFTMY4F@4-dAiY='?4]y-BSWkE.-5|#$7nyw N< Cd<,D{Uڄmx6<^ZUB`SO}ŋiG g*F>& Ojr!>$*8h`fSϑ{zS0=˜_;2a;WeO_7k{>j^6 +F5O(D¨o|eᕠ,nճs堌H+D{ơ9,|6 0:Xዏ)Ef'#(GK143&'PjR"rm9jGq7"Q?b1iڱjw?L^xH Ox+D cr]dl1VBPeaWs1sA"#ϔƔjo@Mi%v`ran%pO֡j~31I-=S^:c'@#A2 9t4 qܗ(BT^ TӔ)z]ԩUO#] l{"<6'v9a;& <$t`Ms.v1U)У3{Fڮ̈́LH ~Ze+?)/ DSgl>Đ:ԊVcf5R$F}Ж+%:|:l:|5%)4dC {4O w!F9܀!8j)2R]{ [Qu[:BW9  !ޓߘkL6N?uN\_NonfMD6E03c5=QŸWz-eɕ6#.06MdtB8W-oiץ$S <?| E E+H\( _JupNͅ)9̳ӂtpAPA+L>&"ĖoxpE +sYc~99|x\AUh{Q#0{j K*–l{H/`,9y wh2[R$HgQ#LNDx>.L6E&-M_М'}'pLJr;e|vȳ7}q<Ҩ$wC@T)JiW!>Aebme5N*Q'ˋQ' E'8Yq9pLDqG2C sRL~<ٜU4WuN?<<QpD^0|sd34v6kZT ]e2H'y6[oMjDpl[~S;O݆D)##Sq`-i%$-eigcD>v2sぴ Ӧ\tJ׬@`lƈ}r ̜;SM9NZ %b9t\y+I]}t\)H6=%#.*tb±/n; ̹BVW/-Qu իCX{70; F18rUX%/L0rcIet`M%Tb8q& y@ (~5xjв5 #@!D3p#AF/fkKlg1Fa hh_>$0_J8j,cȝG-J}gԜ$Iϵr+2?c3.x` 1&gx7Vgq~LF8v4|@DdQw?`ƍFM%/a*߶~4F3Vض27ȫ(ٶA>'k77ψZڴ0#L7qxF3ƃFRY𵾛x^E^,8N5 mNM]^eC,ڙ?ioʴQeAR[`CZjN*Bj L}H!̈́^Zyٰ3Z<3Mȭ jcFߺP)^hlm %R FJ'YNQ~Ymj #Dvp&X]cFgB?e[aeԧ?&bmF \!P7tPoԝ&P;HoTW(sU/ _S4#&RzhUQX@51yWAĪB.P`ػ\lՌyRİnDi>@q((.p{asWSpϏ0K@Z;ٛ-tX"P٣+_ "&#g~7ؐp1̨Z XgP[/UI9SME%dr:ۯWD^CfI Z+Zٯٻ@˅FɁ cs }1ъ 3{:ZFFRt{w!m^K2$Sez-ΓKLw!8`S9evEiò4RC"O0o EjeX:d]D/m1n9ဏ JOG鎸s"X1e7^MvR sUO%EɎRhz߲|υp6m,c@984Ym f4I߻ЯGK!=dT|"{ H{,=>8蔨^{[E7 u_n5dSH ݟR_ݯIR([@?pIQ^>oFD/gCs6 $.8Bgm MM`耓 3* ȡ*+7ec`TCAn]׷FW^xXfߐN0(Tl=w\Qĕwdb!.2@]"Ce=cw?T`iF{PoaɬdB9l.lގcoܶ Cd[ ?-O *Lz.g>RJ9A1XFڏ/uQ闻僝PB5 >XkŘJJa,Vs?%Ko{tu)z'bOsCDw-.mā%<-4*=,:_C7&b&5duXtDkW1Y[mUA}lWS)9,sZ++2R VNYWB12Gt_wx@U~C{lC @K|fi"G<"j9+5IXBeR"Wx9@1ŏaˌ_am"#[`0,Wd>~8^EV6rLʿ/ ۼh=l5&%>khf'FX CR_u%jVs&DwiŶ5 Ԡȭ?yB%- A*=>XAYn1; /=$rԴwyJS'ҜS!BH%Mv?3?@rhK/b免VQ\|}\#+cM_Txe`s"Sъ6an5#ސ yǝ0rS0'ʒSVkSjjE G<USyZ57o8M.6*0S ,eN1,}lߗUl321d=O9XZǁUܘyzh :%W4^dXyŬEznk/0dg؉YNY]9OɧqU3vh ?s)\LLDIX0 tٚ&2#uweW~O (YȄNƶgaPEm#nuaC^5Ukh0㥭7vq}0 BfEf5Tsz_f.?D<n+*.yhѩ1dҫCsVC&O-O!̫C=8 d/hFX<oDZuDeYuH Nd$Dp/0JR%0<WA]>‘&=i4rZOsInIYNtFAmCg?Z@ r_t6'@<"N֒%sL$(;K0):-mbC%ᦋ١]`sð)d($xNx}&Ua]BJ2kJsGϖ !;8Dsu#( kw86!+ŜMKQaBe6:b#C)Y %ghrT;iΆoxmCp6?3!:װcP`s&"n(X#s$V FQ3~iZϭhڸf4{=&m*ʼ`4Jt%dD0Upc+X#dD2-&Հweu |!Q]D*ׅ| 6գtͥEdn r%gÇVB2Rs3hW;f+zRV_Fr`A###H!҂ZuT{}G`9m@{+gtmw`:y8#=YJq??[WbA rSZLk}*$`|#%/X#΁k.K&]7wKVȖu]t{)W]MYS$hիaZXr53F>1GY8J*ق{aF(6MCk|wP`5LUұ Yr &x룯rE@%g#T8EŎfw~aO,gio5sCz^.Ps,x"O4s'n!Bߺvg!3Z'`̝2!,!qÆ˯ב( ʩ7(o(ڹjUspD4u;Z^T,$=~[p9R]{grI==z%3t?LGߚ5mr(a2l c' kQom{[RPvuױOCCl}ԄU173F60"U*#q,Go4 @7³rt6rLj>*LY)"Z7>-||̌5]A @BIƿ H|O( o:Ґ/FkPAY,, #XsPPjמIWJvQ㷳DSEFWQ׮Ca8`Mďn>(cqoWO=iWcs'MYNYGzÜK_at#K/Lށ2;~ IDUoD&c#C71NR?@Ns҆iXqH>=^,Z }87rR{YCT͝n{̽iQ۔wuShR44j!8D= `uݛj_Ymv q$ܔ+ BaǰjBLe˻$7oLu,"I8u*݂[1c`+Y?޷]b UnH4gxr82"d< +.ƫ#iͳi6Vw@Po ۉQ|2!~(g_m& %Ϲ.3HrJ]Kqhd1H5*סmA|7>ٷ, QS0);.ņ=G,8VD?1A;!tSu"j;ժt}}S%ZlOt,0|er wzvh`|`(ByϳFR(  \ͪ!"7=F xvLUy}~x z710JS#9S.hr8XڢЉ*'z-DզRQk;t BS9r}e[ |*Èf:Foeύ:Axkp^S&)ܓi~OvS9>!ݼBvdEOбsd G3eUwt젾 yq0FZ21+G\Z Y,tN͞@8etE|==}?l|fu2TI ė؃* Lیf0U\>f!-PӄҶ$J*'( #P G4[Y]s66ݻF7\UiEtwLˇj4)dDZ/ggޢUF;,Ng ҉ ƲFHN9&.'ʹm??9Sv F6$/ \L- ;6e ]}XCx#z~}[' A)rG^[*w% S@^U.Bs Xjy@KoSe`EtD3 h S > ` p:GHIJS/Q9/_Z <1ba+`?A3Uiu̴_".jC>-_69sv]$1y0k$TJTdw#:&,LH;GQq>Rͭ~HH9K*e;^,]i) Jݱ7CJl|[Yڨ!hU n*ߟ('{?|0[ W\a :9m!*7c[ _W_v2gJ)wb(?ȼ=wR!Oc&/s>a/L|zОͥG>03>y D< ڠ)w ů=U~PK(ˬ?CIK{ ,Зƈ-Q_?4&ɅM(,5킶U";wtѣ6gOaONcIi_RHٟ<4ʿ G&8mF+1PY@K?n- ^ b[ECӭF\,/}P$S Ξ{wH.hJ_kc*\PpjdNl/ISEV2eWTAr\.Sl*a4߷Ѻz1Ԕ&rX(1 ˦ yˮf4$Z ϐ!~UeVWKXv#Mw0#Z@Os=N7j 2X8/U:Uk4SmD:6 q3'Wfuc%a $n}ohf %lԔ "}JL蓭'|2/-;GT{؉Pljy:-*nVB;,1p%fM(T؂<^l?ĺqr[׆> X1+ e^ӕ*WF҉$)ۡڶ @/ʃ%[K,".e6 yC.͘HJuDZ`̻ L+Fus;^YZmxtʌt p{rI_a\u vs>xɇhvίDۆ!h.&9Sȃw+ a>rS3vHb! .9J5Exq|" e($Ί$/\syku*]*`kʉwU<DyDQv#?59MB>d9+IF|$R-v;$dGDg3svͩW[ T'$aЗs4vlĭ?SW!+|Af&3,Pd]Tx ,(+"ƶ,5"Gøw c >}ܸet.4V,A pҬIv?/^Vʔ C߄RFeK0w[+(n⧪D<3Aajfm@`ui@%E BE , p}{{6|kߐ$Dv+bn]7H#2c+^6t>|!wS㲯mz\_ ,9R^E[Z8`_HKBd د!;Д<ؕP\@}T]4㾶/q'-QacK߈\UMYѲ?{*.p+@ }H 'l޴YA\M(9sub$IhxPSn;``'o^UxC?R:b3BH<u&](bb[D1.߭V$?ӠJfh3G[Pj#Rf nHT(x&w_gpȍkv0B>a_#w0npZw"-<)\A'N7oG8?P;[JT쟡wZ+!wUˡms˅_c kHE:O|oJ&lNݥ!$c濺̪uxxN'yv!uGGjIutȞ[>ii<`Âzp2\nh,˵wpRdk09›]ϧ7"Fs?!GnIgZ!V7Icp8o Ԧ`Ɲ ̩䨸Q#`+cĄl,3~pW;QuC<` D<9O!FyӰB%R(y p6 {_E=m dkBgPGuD\h#B# {҂e@B /)'\)0]^}`Q7qg+;MAء\ [QWܥXFj]ť26e<3SZ&ZNGB3r &G8'w\w| ԃ#3 DшzHk=**ígRs!47՝Wl-ރeNZTH)%>ˆNk9noxM;#):8UaH$:#'tC0 >}"=vi\H!Tm S~ș>f+kשM&Ry\b+ϒ9#3k< rtqԔ7{]^ e!٫{fsGc<]< j E|Eȃm5j_JMc;E''fs6Mڛpf &qGRv-Rқ-M֖r.^vp:JOx @׿g K[֪ 4~{ :Q5885QCs;!YBhV0P}^ D)!񖶃O''暓Y4D$LXGkd[Yԇpp+up2۸ \gnn@waI8{(ky-L^=Im+H|jvVaR-gNz-RMnr9Wkƒ jNB<[= $4eTw*._r[+.%:SZG^d?*a^r0vU߉Z$CR+s KsBGV7U2wG@AL' `C66^h`˾8% gTO/M۟bی~Gd{4Bmx/jBppNcprB=@WO7 '#֏R (Nq1B\Onڋu@@0y,u7d%0T:pO?@ c ߫p3QtՃM)2^7tm@ю9 bi̜ `*y&-ݓBǘ7K3q{~lc,!ӲrctukXh\,VZ* f^Ex *z VF*W%\]$*zN h?˅>4][%%ChW1*qB hr)<3j^`зΰ ݋_hWJO l/o܃̏4:vuΦfT4$JskrRq5)FD?/O@ep70fu;<97_n[‘792*/*C}SmmOjA0$f`J@EVl{gkPR]fK|w,h(*8X\94sOxCXG831-9B&?:9%0|ӛJZ?Fd'9WmM;е4-ːm3Oԉ4[;ĄAU|*=4' E}MlA"&Bw2(4"^dWb(S2^AL V0!U;詌N]8 IN=Թ+ ]q@o ᎓H@|b(!W I6WӘ3k$0X8}d }UMB <ٮ{2df?m+q9t0]|rɐnXO9aypkD_ ˪#e=# |?DHk cd0ď6̵l N5esمJ+kc]zo9iY%%rG46g O rseqhN.v!i:_w3^w͑ 2<<jyZX30 no_ #K7v07^t}7I]hz((8zj6-AYE *jAeE{,CjꌘsVF(rs)=tDҢ@=1 |=j{#K4M !m#vMej"G1'؏"w  4\e7m`ѝux~p&".`"m$v7'KG;E7ox~BzHKju~ҬbIMCTXHLՔ}|f`홾O]ggZ?o;1Ze "j1X*z/bJXCXC,.k`%$񻮒  }=&hkirޑ*r0, 狟 {:%XFoyI8݉NHX|a6̜:@/ԌdY,|Y#2` !>44Y1t9@?~(L>nd,Bgjs~\"%/SPz] w<%Bu6&&7 kK-8f|՝ҾU"Q.eeI~lfcQ qX՚$M&!6iB%6W!anlѴ {wy4o}dbUȆ{HlЮL}!>61ݭ}jcMY*'9B.My`E{kcqF mDsX;eH-L)Kߓ,xODa"V*?vvPdl5mU&EAm Y9RjH\C >gL*@ C:{@{ 0BJXNK6dW#;Gj$ ZDL5l߀8j0Z`_q[+PյP"O!ˌ1X2|`ԚP'[ǐq7{J34軁9 kBӡ*q.y8&2QSTQ!TaXVX(ބPW2^W=8A91q^ m5{~s)ı)$4Y/oFß6#jƤ%%ԪC1Z,U'=({G=Mࡺi!3y\_Yl>ܬR'Pv.5mpbWCϟ^mpIEfa\%uupT]p*wtFi t3 2i |P ؂뎸yժ: G@v N.i.N/";OP@ Y]mTn¾t[b-:Lg"hDODj `,t͵Gؖ`xM*ʋzIu#S8Ġek!%^r+Ĉ% {wN[%L%= sq&[Tem\)OG`5,AB'?H ޤ̓rVR@=֫( r79 6BHG3̻t1a5}u?FBFiFZ$PPTs#i{U~X`fST̓\NQңB3ȢAܮHTFdFv7v[zӬDNx_ܷ}{Y0ʞs+eP/TcZ2TR=ۀ3D)D`'2-GGf(Q`V#d|mbPl@/#З=ͺi[xx2W[`p'P F]z 'dԐA2-\_ 𞤱G %ɵn"ٽeٸ^`)K?50XvG-.M]uX7 Ұr?tu-U#zӽ:Mti$mFD& 5)]/l6;r|C­s!5{2zѥm^! 秧*r+aIk~uD|ZOnfn]<ɤ۬,g76xx$DgԷۺW>tQ]_\ŋsHbոClP-1Y?&YBdkmD4BG猚?%䏨R"鏤UjjN2\-iіYk]|2JDJ8Zϗ2<-GLo7,? _)<"50 B%j tV'DG:h6z^PPk1>wmݱuʂ^ m"Ӄun]iOaI|Lg1AU|T;LN)*zofLz~Ps|ha_ 14,jrK?|[@b; us57^ I(9lzs_i 1xCE~(-~Krt8+ԍ{V׋e /*pZfg:%޷9Ku)E@b2F2/@u|+Gs! /-PLD26t9PΰhzeGv/T3ޓx(1up#QB]]" =5ZlrHHp#*h5qnku|,s"XWH!3c/0ҦrБPJ\s)/1;2_j4wOek/\[# װE`dծ֚$s,T̜YC&69Hqt .siSwQ?WYBejɾ7>++É .Մ851I$(˽'FB:#lzwȧ oSE׊+ChBS^:Ks̪ά\YHQQB"v^kJ8B *_jK!zX"̎qnO]Cׁj5AiOc, ]_Z߭ Qڀ{LFyB,Hhfp h-fLjslĸe-iO*5+{ oOlzuRk/y_, 49 EhjCp@iƶ5YXW{r(^5!˃B$bhc [Xv);(D>U!jVשּׁ#lAU)7i $,BSC X7}RwN@:_ygUeֵ%OaM,=?2bqbbB|jEg-V)gj=tru|[\6cP)|>*Ng)-.=z]}2JpvnkK"C] W8/`9=t۱7M!/|P/ZșkUZ2,AӮ4!9ANO\L6 -D?s/#>|V ӤaZD"&: A}g9*/+ hi"7u3kPf;)8o}κY&\-?7]躆TNk9׻o (9g0J.6W{'2KdRj ޒgMTՈUHߓ3YyBer;=ԋG9D:` ;e{}I;sQYIALìB G%1[Dejc%A:\f1aދ(5]@\L7caFm7h Uն@HeF[qwrIO Xq/j,>W#rל- ,Ak.xg-լ*:goKΟl _)0)Oɬ'람ږ?<8-lo] ߅ }Y1#H6m`n*Id福A1$ǘ`5bvg~mvV9s9E#2fJ0Ϝ3~u ?XJ_8Cyc(KNK/\Cx:slvt-ҁ "4NP I H<ؚ l]>6N6$ n]^=iNiaU=d$ʛпe #}f"eH*vmcдmNMXғcUqÝ`X0eJR=+5\_@?zmN!VW3DGYYEuLL !=apIesR"a!08L;Q!9I&tV]>&x?urGa@Wxh74wdVA>y [=XN?0vf?fnm.(h)ŋ3 [__dڹ5nq6qgIJ'] xS fg0>QRJ$9S;#q8 -d]g[$IGųyu{bO]U)xR;kc&zyL:PY򔮸q5ko2E_y /2GޞzCt#c߿'ǜt8 bXQ}\h|j𽬑'L m14 AšWkІ(9(UꛕH^Sǹƚ}d$Sȭq,CD,$JE@ >ݻ7[Y9dfL!7xy#C1K{` 'H2# ϊU6B:&lx !PUKK'Kn˭3Tu1B2Ɗ"U#i8-mE.;'o"[#8kI0e.\+}(d{98U4/1r'V?5DG>Am?MI?’2-V& g zu?+g ~0[>5\p tS `hإTlnO[I*@),>(#yfW Vjd߲'wC*.1ZUܯ` k%}{&i;fMogSHW#n%Z"B摗eN`WZ]ό[݀?*t,[ܸzq' ~=  mb'Xllmk1GrxmONC~Y,p(rFx^'N`,/bڲܳ_a@O+[%{ßy7kS$:"vC|O?xּջGH':(iƎ,27FzSH'ժMP_sN{ /9,+e[$AFHN$\Z4 8Ey 1JKXĄrwfD8k/>^2))v^@,Ve-n+UYΔ4dG(ߔlC9݀R{.#A(QUw2{~~23p;!@˞biCLwxD9z 3-0}G6h"tǍDN՘97 p`[Ͱk/-n t\d3 fgkup EiopTpԊ,ل]lո'@ >9g%O[3/}W"_\*œׄ,u~y\ɟZuFS Vns8Q:"{3ߗy/Joyfp`h0rXu׌:O1ۂa,?#jҬނ_xʌ @ ^ԜA[Qw'}΄ \" bqx?wrLDMY#S$GC'DT+HI02w v%?2mchˮ(;xs*6R:Դj3]I6]2D/>|h ̨֥Kgޯ-DNk(sns1̻ro 06sµliY5rhePc9^5$L)G$Rf.}P,-*g ig<6|9`#Pf^`?D?7 Cx85kW1ϸ5+ Ћ/s>$>a 9>ezSzS/,(T 9~Iӕ_1?z&"KrЯGd%`ԗ9YXɪkWRȋUӣdzkL"!ԑfQծ̛/>ň.EPV.1ȇG3uナFςʆ£q6:DT~>qę!2O%f6Ȝ 6Lї1\|<~E 1sx?BPHyg'mt6TjfhR@jTcH .4q"l[n:2`M%I@\!+\D:zfo|F[w%\'c2h>qv8PXö)ule[F3Cb4ޜFSnm"?&GgYuA4JUXfx< mj3 ztq/]uw Sox8 7*y*OQ%ciTe&ke3Loxn8?oEͩG3RU6֖,8HREZLFL}/יִWu}CZ4 M%[bJ2jMCh+uFōݯ~Bz4~paMW"ͺuK\o xq% X: 9ױc(o&VԷ4齗ԯ?!O`jo ۷)~BO?,.Cq!/,2t6LC 12qiEL?>|)ET7L0IEk_ B]L~LR ` gesK]?@Nrl J?1QXxd;3y.˒"'[ u4Fuȟ7Lf#_=k/Dȟ&8.*؈Cg _aJhg\rɔ`kL|vEY(n+`#ގ6 HMև(#!ˤg1.y~jӊ;b ˭bKwk-/4 'R <#7vds$2<-A97QV&!r eWV EdY1k1CƬ#t.aҦ*DLZvw{˨8#T +,HRӇD'9qyS t7:>j'(h~ 6fĸU@&tk ~E+#9.Y&l jѱ͗ -Gںpkr4V[9tDe Eo]u*tߘHnLrXc@C<\& [L7l>A U,+G ,jG$g{K /`I+FncYK2iώd9('cf^3O[qZ.5猪V!l)pǥXF6m+_xՋb܍5= )I;k_AHl,MX9 r <Ic*j2㉜x{y7Kdvm@.;rk΄ڂ@GY:Vtx@ҙl24=̌n//Nwڲ}G_bxYWb0Kf7Ʀ$R1ٳ>!e:_h5GSW=.ޞQxιUitZ.l^,Xݬ-z#u;[R|gfa2tù51*a3ZLhFO( ByTWdh"# yR';p~yhiwjy^#Y=1޽MӬ4/QȗXYTрH(WaM4!xxUH9ʈ: zh-A.~D<\] [$s>GI@({Ţ2kJckSK"ӭ0wʔhIeE2nh8Z̼;v}]p6gr,lŇ_zz+-;W8q-u0-4a^cys^(e!y#u+Up-wy3 r`\qlЎ,|u`L#_XCOx$n_SR/}0s(9Pzq?:tXA*\McC\8ߝp]lۉW a6QHqhJO&ZC <N;ewA~UNE $XrP ͜ YilJ;4ysպBE!TMv鏦QD!~ЩLj^g9zekohޕ !=7s5Hm3o:G'B~ }ױ39XNA,|yX݆i ]ڢo~~%# z)D,a 5k8h0F\cPs1c!bt3$@?o8;Pg{..+?m t:O$B#[pl ;) gk9gKStTckK'e?ŭT𮆧xg)Dj! U6RT HެsIvaZ=;  5T3XE_aPadXA֙BQf+c *zH =L8\) Rސ'잊Ze/fzy8p9k$gN65JKlkH`F-I>9,zu!s)+J\HiSb0K ?Mc 4rĄ&FCݕ@0QU7rDWr{wAT\&bnvf[߼u#AyT3$iQ/ Q@CfE;4D]:wM(  -jk&VW:}ݧ>/n&5B+lj'F9+V;P^E2 D4T]DI*9k%m Ԫ= "La{`+[3sJs>~`f,wr]`ځ;Aj{}4GNh>mt|O}t'+^E%3ne47c& |c yYX"Q[r+iQ^9K!|H QCo$ 'W?)2! {ա(4(D0>tQ$/NɺڽHuy6r>̢q=_NvcA~-,Jjb`Ĉ~"@`pK$X䊈a@ s#=obyZ| <IG ֥Bg#Bt+gOn4 'd>i+GfDۤ 'Ͱ (VHgMcZ5 1sl"1jd`WhhZ7fS[{jn~09EaQ]>,K+#/*tԜ13hfBHWȐdg{TWri| nXLLgWƘZP%eavs݃Dy( d#-_r0RCc>#]PXA%32ThX_TrKV6..#J΁$޼Ԏ+' n:GZ`IWKշ)X?T.|t :e'1SCkT VQ;`Rc!ZCΡJ,6V1Nl|PLS6%G].M\g@V#xƂ& ߁H hD=Z3hY˄u1vz1nx$&aqr! a ǚgH0C=Vv${=+3ۤXLd%GVHCaBpkMurA7[erDw0o>2WH־iӁY-YJk%&1SMa7Y_^MT\Dz)ї!L'TKiI|,/3޷f_RMP8{nT"=9b͍ر*8;;W̖O˼_>yh{7oe"oTܞ:CKtPݲEzUZw `mx$`v֤_NsM$`wg#`#&1$b~Y+O:C&EfDD|fw&^XOHG: ^5ǘ{=Ւ"+P=RpnO^ lٲDz nw JPPzk M(-tճ ])$ ?pӁy]I`YU4LztJrV:$&`IQ#(,3UAneQn<|7uLlcݿ.|:ދAq=Q8K7f CYdd;=iwV.9v8؉y bL@ؒn? | &OX/gOt}x϶09QKInÇ4/=9fY1Vn4K's#,]3^J5 JESy9Ļ7$|8 t!-,0%[|J`™TY#["pz+eKs֠tN6rb#N%@_;)ed׌Iה4%7k`~hwCYtݚ_֚T!PHqY:HBr0B @ǖpyonE$4Nt17WZh Ն~+8ۧLAV7\Qko$J[,1sQJ3,/\NFi \I༃3>sTN TJ58 !O([T'F)xyXN,ٖ,I(}6H )X=q@Ҵ<پI_L9I E^tN~-GY[]7C/XԊko/ +~"|!2yaJ,wO^Q;0bJFlxHȎL>~uf]F_JZٻ1,<(+ڦqo3Q͙El'ɥOv2rG5d~iqP0#'1_A{Ҍ Z{&c%ǟՌ,M 0;,.,W'Cl\R;&$98LIP줼a= Fry0f`Hz#SQfù|ىzJzނVMp+wTt? Ufv6O%y .$kU-ђpqZQ,r f`q 5GD,ĽI'*OY8<5Xlv-kwE~c*MZ4ohLi1 hu7m;F:m =:F="EPCQ$ ؽ' )҄iRDxJGPdae -8G,`2մZ~_(CUggRh] ה'WVs&KG$O?` ^BYҋ 8EDmqIӝ5$M'sVFLROG:Qd:Ť'p󖠍rT9 kS8zTt-rWm]0;eKBw%k4 hVY^~WHa @R"|#?(;`#"YG1`] :a+`+86&b8a޷ EѷF$BН3gI/*xs uu}  6B+H]Esq{Ur]V~ߏk߃' {\ UbDËZ^! \mO2OQyyl<]P5mངU8=%s< sqn 2 u L+Zl|'_|Mj B9J/E4cj.au@" ~($N_Y fxa$}Ά[TN))8YSW_fS#\*^cntQT}aN6v h%RŔq4-;`~!TAJ2G걅aBѯKr%i6'ƀEVVipS'P}*Sܬ´& CB_OYp}-)6 Jdn j>Ci kMpk ܟrxbW|R턣22gaMTWfܓq /!=, dn@hWǯg3%`t}iXf/tyfتH55(.aH?(`^Y^ ): ' ׸O \ DժY#$u([T8j=&?|w_4Z|SL}s.)ĸԌ#,2yhz?冊C*u1H=#rx 7ÙTL27s'S~(6J^[y;O4@0xbf 8\2`iuډ!@efGz3Y̾5h0X`z_/ׁ0`4B^^ax`+>H//Y N䜡L3=Ο)& &WvMM:rkp^C눒:&nt~⓶5b8x觜 yp8R\7^nTTC<>!aGx=ǣ1 =e׬=|/Փ߫v5,u ( w0yϬ @X?8LB,#~*E+$eF p$b=IMN*?[1trדG迥%$wm z7BuqE'f:pەPH2jj*$0M\N%<ſz;T|â8;+3pmFHIZ9U蟫>&tȺͼT~"{^[/r?]܂ ml9 {H:|P"ɡ7b# ;G6ljq%6`pS.p?y\4k>};\V^3W$g-m[" =n5Mm+6Qg lo/ף>?q7Gעulzr;he/SLܧ k]zGV@~$1jwʉk[i sxesj J]m!oKK W)%S!LwU5|=bWa\o0GcSbnzv+Q8IF%.$Ȝ7Zz¬ ֞g  Nr 6z i.n9ZbPWd/ឃ}id1^K⢥]9j>w~05혋GI:v7ȥR _Tyx-g ܥoCw [[Z_Y7ki>s}8eVI pM qf#v2Mx_pޡ@E- c]ldֹ私x9oouhew#lXh;o 7$AʄHhWkv@//fi_%-$6L6 [n!UPPB|%!T$D?}Ckz/FsiyEB@!k۬1X8sg* wmR2x6L(R2hwVNV? nSJЁ1eY QDqQk,=,A(H+ Ove#ߞ $Řd P훈FFW>=q(+߻@tݴ]c3cX3On4x9ݑQuc x wjf3NsNMr Řx uvX*>q@N %eů2 -+F~BXU[z^br5 Ľfk{+:pk)Y,j^3icaJ4n#nӡgZ'G: ]M%iĸ ~TZhP$v5Mq>(HReY$w _Ŝ~S^=ic6! bd9SJoc&b?ثϪ J2ЇRٟ LPd@}(՝ބWv4$ Rb.EjCUTTPH\W=(Ò@1weLGX(X=%S t6XZHP'UB<ߛV)ZeǚM8m̍-iI oě.ѐt yggUFYj><A_\ oĴD:g`^ynXP ODz"hntb`YCϊAq:;@ IA)Im+)QȫY~ ė4%XEZ1v2a:~rJ?wp4G5y}Lx&v}puplmkH?_DjPXr UG|#z=y{,җ\ .S-T$,8ٲE^`(H&Iߞc=.*'vߍox( NmnlG[Ҕ m\='U"^|ٳv5?ZI,|X$] CijpKPZq o3cLf"Vۄ9TM!Wjr 0ə9b]Oc'  ršy-f49?L71~ua%$e0i7l܇+]!UTĐI͐ Z?=Y`Be3J_>VqW5px,R7$y^grdCU FAW]k,|""_ċHě}>cl~zGi|5v,rB!&!Ztyǔ8$}1:I VktcgNWa5ه,LXA(BKFk:+(&vϤ3UT7ȺR؝ FKK(O\l%W2Kx˃@0fpB7&tm;DS4,OuNמx 9lkd+4ցeeȢ\oOL;}~C=!SO.m*-J}]:{~]165YV%vZbJi,9+8Sfnt5~6Haj" W4sr*y! w !Ʈq!:6DVՖn_cu#mHn svU`/ Ӌue/ oXm瀨pm#*z+X5 B., pfԃѶu!ϊ=+>V^X@i?m88-Kx}zEUx)*_!&R#OS\JzS <Vy߱S[72~Y8mLLw#f9^c5<6]i?[Q-]7(̱$Vj.5uIY_ ^Vvo#JA_1AAC+dP@2{rn-I杙e5S㬪׀YUf4\952!,QV@K=Y>4S ͮbcYBd zPh!U6 JŭSƑ'|ӟ'܊V&/ Z 0P0ثPOrVbO* N?kQ߄@1\]߶#F^κF,d8i^9|U,u* x$ ҄0E 1,6Xˉ/m5C;ۙb*穸 S׌t#=Cj9 7Y4[Y(neBQ$n1xɳ2Xs-;W[N`ߙ!ғS\cQ XX~GHM:N.ZLqkje#¡Z7-<`MjaӖצ@!rIG7t2%`;#L Xz~ q*g5K2'@{}Rky\UtD)챂 _Ui۱*#S7߁+9'"ɹy/ t8҄wPB~HG^@w23eH:h6ׂpTb(hJ] SBl#)OyBrxCl$Yba"?P[W_+\r3R55A33J܏⺛q6 E.H덢mzjU@l: RC2½tukYl_Nj Zuy9FGjIWr6HG>\B})?åsP̺Kqjj*'xKy>@1d<_/斒(`l vdΠv# JU1JU"Ҥ۔&ƀ=~,y~UP$'ὼ9/0 AAW&q4{"*Wā* Y?Y3{M9B #>zhIPmIQas˜k]ۉtVӶoG+9<]# Wcv-S L.YDph(0l L">+"p xķXPYS eRy` L4b$/s nB\00p-<~((NF'+[³ 5437Km@6Gxi6R0 J}rW> V`h~=uG8&`^c[R\:+U*_ݻ=NuI) #DƵa)?XZv`u:j!hL"1˝:jg{ia(7gDw^pv=#VZе6aUx2m@l NAkȎxžIzinqf[z `1B֟wYYf>R/%J$u_U;rB?A'~tLϗW^yXb$;)oH}K9#LcєvokѨ8PR֝)cbH 9S'N Ʋe%"LbKK"I94RyfH9]=ft ovp5>t[?1 :yB^d܎>19>V99NTK>gⅿEiվ[\U Q 4A `[8lf:]˿{hY`bX1^1mB/Eʬ]Od>@6A!BbM%Tk %?aw0.<xu_u4KJ8Rp}DgNS*1P 9-E|dkzBxmDZKumh`|~ HW=8\;:2f%_ w52D@ywЀޱx\@|rTs%J;V<<07lzl+wө{F$z%}&{ {R#R%6V\~ay`;7$to ; `2:_ W Qxמ,Gy ĈvOd]e¥q=8$ۡr ˯``( q;9Hmcj'3/  bi,yݲ3NXZwDZS-(yI*@'4Kt[q,x885=05b/] Ԕk(柞'" ك^5*l8ON+?:nS$2 -mՔk9;M/R ɞQ$^Gf^(*dۑ,oJ}O)g?xm,1P8O`eyb't%75Q._I^ (\8N(ِi#MW禢kϳC8;׷Ň({E=ɻk*>}Ѻq~-pߢN1ȓΘ mq0-еI|An#H\5ޑӔ=1LVyxu[W5t Ab`NsPurSx2NcOPR(R6~"6bhgaϥmFhO ByY"ZdBslWj3 ïsv.j%|̘\bo!6ʥQnHjN\Fm]uS^G;3 `E/7=*@&j-|p#eY3%ũkEѷ濡ǎN4IB w|pF~<_NJ)b{6*rϮ*^N_,)X@'ۍEx،]ImU\ qtk[LO1./s䇡sa#҂6{t"Eo}^g'Y~diJ =ۊ<} A,Hǁi er#ߚE*Pil.p%9&:qcCضA+̈́}HJ`| PM?t:s(!#Ɨ~aG ,0,A*)_EbLnc8_٬( y}Qk6̧`\iT{>GbA;C/]K .+^vEF`M{yQ)輸dQ Tٳe ;9:IxvJ9=\,o6v:ISprPav:أ[BHznrEUB\&)?Jm eMl"VDIh[ǜ{)mճڵ?töXaʌ`,uS~K1(Aڈ$w!ְ=Cr'yo`R EP<\V10ftv ^GȦ\[Yjp4Sb-k ŃKrv}qj۹WCH#㶫>RE'isl \Y1Y_vjfGtGGђ$=s:8'; kedJ2{sHN4p} Cm ?.zǦ`FľkS'A^҃o(\X)4-rj&N y zP'Di3 .|(96.C-~ \-^3P{+1]0z-}M] y ,ZN!T{̭A^pcrS[wO-lM4u&V?/8C۾*o󙡟x/cڍg[F'OF3:6re8`"z?'F`7!V@L&k. oRγT쓤YOꠓa䵛0>JՀd|I|\l~W{1CtpA5%Sд&&l]u)O3FyccxF'm*PE"]ώ m}yW3p 'WK^6Wu~Ed(+gv=0ɍg(T±?aY/:ܵ"2 d 0"E`8lk(t5H$Rg9Ш0lfwj;>.7޼^M}ߐ_|?fS~[%˴ˣsےf }s]F;v6XZKB FUET D4 p_?P*6J'G/>-Ё3VAC&?SEC,Fwzÿ]Oo ԳP}0zkj!+tn!)~:+8C:=wS̈́Y??1i'Οy7;M0?4'[+cݪLp!N>3#osU) = eFn0)gcM@_>&,4uQՌLJJE@=5^b2702IZ/m}e-Y`++ݮDD=rmo"Q( ,oʇJG Cn#K[4hP.F?6ivz dqNU`lHgzm.bmt{jb eu)%a`-T 6o1՜ 8<ǐxcB(HKr61J. NC 0'u9:Zz0;wލ-iWɷ.]M.tRZ0;DHRTgM3?dd,MBz-꯹ob%R@ }`&O"PZzZWfh,qq~U6"irƗs rzհEH#ۮdϔFzW0cUזGNC $vZGu5,R0k8U؁rssM ?7: tr(+z 4p]rnk2ܙT.>baҀ+?mxYV]?.f0o[u $[1sZ%#,^yQ@2#c+R{v?8hB85Yyf,2L6tkXZ-Q^ISFVw1 &J3dC}q_../6}d9Ш#?Pwh]flσ%ì77򺷕2}QRȸ!/k\9%\ڂF;mGBl]`NTQWdXt#0Y]jg{# ЛA nAT;X朲S7!c^>9kՓjU:Ѝ vѳY_=rc!^(dH_k`ƁFw퍽iȧx8_M-PoQSuK+JcwKoZ5<F>moP,h 25UjAw67VG.tDegwd8} $[iŚfVOS$79W%DA]p@Fbnlڍ!pX q_mO@v[hWI2K>Ȩs0=),ŵ!C gM/=ӍHq.#Pv5H # 3*1kymh®'rn= ,~nGvYrz@˳GP ?!j9ׄ9u_5Kb`Z:4'ٞh祩7ɄDdʙu:HQ[:2bJ"w nYo5b<2 5X 1/f $@" uGZg~=A7 rC!$otkVu>u#QQnNZ/g&j0#ǧNre}P7a{'ecCsMT"Jě{&=jBV [ =G=.X(-ν'p 7ޟYy 0Fz\ٞy'GN {^͇ݜ:9Ry/UQfY Ma 6 Xdy8(8"|"wV~(O®UY| ;N 뺨V@, WELy 4b﷼4ד (%bcE$JQX}8:58;whW؀GWANVB0K /nIMP:;J[HS6vױk+da]F D[F-&ٹXKM*#fIlj0~3S_zuarz#l`)[} U!,i,)qu]†6U@lL_6yl4HrKf@g=7~v "U;̤Wdq9;߸];Bhv~*~_ekz R0{(g0>FPk(PFa$`P17 %= DS)*(A,1#`iZpll* +)Z^YO4\VirnS%D5)HY}C]qY,cC!6K]~`yٖOCJ?Qd;dQief.8C:ރwNi?6d۞-=kP?}17#,9}KQW.8~o{YgQHB >t'nv&TU|U&Kw0' RQ`wS 7@GTߺt5Nw5~_G5NmȖ:#u~r 9|\OB\Xk5.b/!Ua^^+0cSa~jv,q ; +8Hh К}1FfqxxN%Cv)^o0FEg͐Gk)՚6jŧZijP] G#׮mpw?hŜ+l"Y-ԟd&_J9, tdDS'yfJ_1s;*,Cq̢,hnEWAOcيݢs4n --!v %ň٨qHǟjWP9j..=g˨Y|$MۣyIӉQ aK>Ȝ6 îx1A*b 5Pohֲr3{9l# VZ =uC64/wVRF?䁴5qN2.WyNӑǾ*D$6?-8FVI-L69R:-_QO)r|ިT[: 9sa#R1~\ɩ>nG\Lò:1!{kP^S:w8i#y i`xui쬥bG>b^vp!cOH̙=[5Op_j( i{fHG>܊VMJh9O5x0{$Pi,2vUY &%-hi}>lۃ&͙աn]L8WrPu 1 ; ! O?#pA&DJa.%nk-4p2R5X;?Bat!n-3e t@m"͓}סK _L4#ަζǒ=f$å}^$iPߥ^[U&;ݸ'" ;ܣJbHfƳl>T^kJ` )Q[ ZԤuMN#6:FBeo_^`b+Q1{i+%XŒÊ6k,@S~υq5&':ј#qE|,W~LG6.V]`= r#E>( ty,kAi_X Y'7\y\Po\kq.NbZbfCN1D96 q9`! vg$p^0F-]ԀpWD?-A4utR.dŴ+!1=+0|xהh{쏻"߼ 9Bay%onY{)/V }UE,Ҋf;" 7Нek:GF>(,`']!}G3e7!p)*[uA\)}Ԥ74'"%s#qa J!9V :5&(ƼT}3  (47l[əS(ex5u=N{Ja(cN+@v_۽[bqM$^1}ZWےxf8G)߈&QO|?cv7RǑ4UB%q3m2Y-7]/+ H:8(̤rYT!5&%e!Ww.9yD[5X#ia`np [H6d]bYPX1Nxy"GDJ㇒NoD؊􌭟~S)Š*^5>3c`vU;zB1QVz0/"0SOS;[Zh@x-^Gm1 j{Y" 7ȂWTo"-pU_cz i(.HFOr,|}P`qwkuGlW#Db h@~KJm -m9i90 u^ϻ9{.3 dT4˳U=y kc3<3~_|y~4Jv嶛[~`@IM{:[9E='텴ݾ:֪|`!ۃ&ҽlW6 qqdH+q I>)*q|Jd= I,xK$+xγ༆4ʸ6#jJûE]X0%>&"kLWclQ+g2{lJ)&J9(͛0Կ蔄 qEf"=3> +/H r,% ܈5E$U to]@ OӞ7]NMrȄ,L7,JD4MbeY,ESCR>Dvl!y%j".\?`Z/%쫾W,za=DYVCuj'ul뻭|N9bj2.`{ i&-YRMȰ_{ǒȖݟYdF6V`lv POR$"B 51ѫZ> a \urӬPg5{xm2'p''̢\$#0 drX@9A" m%Mwn_Hxj2ho&2Ay[L x,9A:FX  32  kVůc#,4$6ԼAvi-R7mk*ދBi7v{1L 7/ }ц[ayQKF (”]]6n ,aNOgX`WFVupc346EgE!VA /uv0wD eP!VHk}D_;!Z do  Ď]d2풴_pcǵ&5j͕P#Dv;ܩXB"hz!6Yಚ8jL1C2"iU<5x\?v#vnsu: L Yc:.TElP,V)uij3JQx=<3*5ˋe)6(1L8I}^79 >69  ~9 d~)߾1?7aN)N{bm^>JBK_ST+WZ*6 KL<]7AXFQsj@Uzv'a%>-(\ e.)S!xidV2y>: j:ܽdɔ"- \EnZ/rSNql88a3I 2-r'1 -/ŀLm%+VG?=Eݶ~T\:xjRSM`:0Hq_~OB/XǫK<۫Oܢ"p $Ah|b/?i7; ewXЅ4QX7.Q1O 6\TDM!i1e"^5|ݚ&_拗%=ɬ|LfAZמUG8sb73L)8zMըosRuGl:QǬ/{Md#>lPe+1XANCK, P$h]@QӟhQ>Z,R/|oxCygO2N96 6Ĝ8Jf[_ortwx0jN-SRxh)<w NuEpݮ  ";;4w߳Rk - C).K2Kã>q(GܾC=NBcEjz>?lg]#%G0V2 Õfq(ɂllKZM",pcۓsl6H1uIVa pʢm\rBʳJjMz k4x_j{| WҋHz~ҔcSpv -KB*~?@6@,DH3τr~~*m˅Z)Gq_I3ίːc_1եMAvF<TrbS.So@ң ԥCv&SyKo4͌)Pf&- t߿%8ғL"З]jI5YY?ʓ h@% ډM ?I!VW.IM#]1J^`~xc<+sOZv'2ԔL̓kܫ!.q0*2*c<4U!؋O:_cCq^aߚ%@b-.)<)󡺈bBi염/iw'I#[;YV-XG{$ߟT8 L42h@r:0حӵFUo̥-793ee&1.3FoXIujK11j!{Lђw4b@wF]"냌3o{†AўbJĩ}j.p}?v-'lov KVٲٜ]=RqB7}i[fEj7]'0܋b}[`c@Qm[# nl,S53J nŝ9_w:ZܡiANspUڦh5q<)W7Cj fSvϨXt¤`ߗEDcu@ Y̒R̰qAGJh')ޙ_|*528L o[EꃠvzLQG6x.#7$uq0# q>zp"bOyc@P ւtQHgHu*I>E3D!0k|Cm~0/ߪ?UcM4qp-zgOYOaFiird.dG )S2QSFB (_ڳuv$]@`#Ot*D 2CdW xBG>Ռ$?U|jIeqA%fEJ jRD8H( ټMScܱlnc$5G-$XS6ٸ.b֝*hs{~T~# 8K˻Eyք5i$z !N~r/mTS@ λ7"HzKԣd9:mkXPKd(We;_Z[BsN fZjj ѿg|%_Rɪ(nI ThYr駭7Oىc_H|~ޤ͂I?ږ㻑BWYZ@&>>w vm_šFӺ y\n)ky/frLJ \)FA,JЇb|쫓}gE@ >7C9+ܧN#wZz`eh*8~f50e7j)e(t6SE)Š;Ç8G(rj(cẇr"E0< 6- td?n4 #ܺ)o6Q==oE5!hfTt|踯c_!k.ݧЫ>Lt Nd[b|d =G>o*j$t0rQHiܺh<ͻ`UNiE9-ծJsl.J!ݐ_Q7dlY CF:?ٓunY>Mck[AZ  q BvMn|eUtv٠&EAg8F6Bg7¥]}v4p3[fNΦkӈkC5 /ڴO/pzM@,xr>R59F,W|Ar"[ f;m~=ZNKFPF,Fp-QsN]؅R.S3i,?7iWÃuzիtb3ep~zA1 C՗}Mٸ^ޒjHCJf6dW)Y'#~RL)"0/P3=\$c7DGqDM}5뚛鲋ź) @@5sgW^+|:,:V T彡h˖o[~4/ٮvb)wQ'nws3eO}D/1p?.tdBphOY7Y^ƵLRz|K 3W-Eԇ%y]e=&} >,Rz\v*܁Fe'0  Ht's}n:(2g2Qb\T1 Ը7~pA_v|5-oA~4Ӡ]( e%d%9 6> a ^Bugq>lP7H~̉Cē&=28w7&*+&Xl};8fqYj #p)Z:> >QѾb$u/!lJ/Q֋R"f0nJm,DXTj#NjX.zXC'=|) ǺޒZЙz.u'l€}mTPU7+*6&#k:‹~v&Ӫ3.ZCo*46z2Q? E+*Owz*/I)Wt2MZ$+gjJҸI)/dݗqt|D%Q}4?Aa 6jqMt/?XnaObO|oô2L}Fzrau3MPۂQEkmcr-NFh͋%̜p{#wUYw%P+){psx&c+4t 1/s66RGԗɫ]!^gRUnnM~lOd~XJA8IJ3Ÿ^ޓjx:Ujz&1jHpzWj~.j7%TP~9ޱL5.{c1ђ]qR'xt?3.Ev)4@8xu-&7k;Br3L9!Rz_ۏ%^_^is&[cɆi3k4 N el?)V' 4n kk)-J['1 ϏB!ѻC@^x(qL$z>Nw?iazݷT\L z{\ gM)) .ꏰxb(w\c=@$O\^9TT* GP3_@%0j|F'GL9;U&;\,>k,ؒ˖F$3:an9kE^/1`ocjS4-9)j=LS/(DPp39&f5֩e"Sv#={S!I\&)R#Xq؃Cp2ZaJ8q&=ʎ$hE JV]y-z|Cd.0C|҄,R$Y Zi2MH7v3`x@ ll ;xE,Y+\K]GYu;ZHWѣf .LPqA&]«q`x9ۀqXhOE2Hg*o0lƦ6/9\-V/HP*FҲn٢@{. 7N)μY|XG;E{ l&,'8OrJfԾ $.!Ym(u@Zt hg,8O:ڹ8`ۿS?*>6 XMbBe8(ByGSejalbj r榉a2 \r|4/3&-qnfd贽{GT\u3\KC]=$Yn"r߾I!,N1 P% Ri#]ߔ`Ai `YqkFn-1$fVV 2*[~TvEa΃yX(<{7𝤻?jU+g/O1$64- /qFى ~{soL TUo|u >>\xx7=PE,`8K5 PH<d&EJ{QKoo| @J{V'¡$lW񊳺̭nΙ= ֫/P.v&ZNOyZK8 z|1@=b`KPyyp@X#| P-dԲf=UF \?AB?Cbn,P%TX)/ DY;1|;b#İ:2"Z`j>- \A  l] N1!2kV O(.NO/)6~B 5N٩ZUPs=w2=š$#;@_O&lKI"}5=ruܡ~FNX5 ?QJh%JZIB@E0mk 1_w߱l;b f`l ydEYcʛZyK䮚_.ZJ[gvT'r 4涣cɰ4a8u~'o{_bh#+|OGKF}ؚWc "R?,sCiڀy2Df&p[1ضZSN\‡;zURB@qIpam KeFZv:9FI̳lV8x$}Хm(Ӽ:BrjPJTW$7x2>+Mr]'sbS }q2{̲!)kE~5#B_8(1b:J'&)_ݠTI eͫ@^Ь5¡X+dXtIY߱[ __6o-8Jb-6Y(K]ƙ#",r3% '$HŇ'%3Mh2Qj>yԣ  6o ʛ)Uk1KGJ5r3 ːU_esH:KpW\% =>Z\7wEr=JGb: \;Qߟp,=(=oڰ8ʆR= mC()P,K߄  Au?L]Y=!")$cNloovx<g%tsW;\%K(nGb o zGX+Kո{O=xJ R۾D3 &C|a)EsZi?"3t|f$t),U|A(cLv{+ QeHSỳFj-NY[<_-ՙpÆ:QfKy{|EsʈģhIkֲ7Saml㑴)T&ֆÉ&|-uyP=א2& m7=w!nku!u,uLWj`fէfOτ][u4iVLTVVZv,k(CQk&3En ta +WJ73?^H@HB`6,^6cR~>{3/w9]$x5)TRdV@p"z)LqLol3k* |AA2hG0wXCarZLa?TS1ud7$ݮoǬ7)B*pv!;4HAOoZk-% /*;ympƸS,ҙ%>7`raE8x\?FѨM_!T®={}uͥ$}5nA@,p4j4F\Q&bȘ̈́o3e&-1|b~{;aL͡XDQwb]xit֚h(1p%B&qiSHOF~A5>>#<6Yg8R5biIvM2C>vv˛X-QH~᫢@MըUR!Z]0Ѱ@Dh^U=Q#d;Q5shI>@傺W?n\慺)<df׾Y|%@X,W`C6TMh 6Nn__ܤbVdt~c[= :cr & .zdv3ΤK=.u%b>4 厉$wAҙ}R^Pb2/PIR3NƟyV6H٨xe_q k? {a@pqH)¡Udl˥~Rݣ^ZmQv'Ped"-L>竃<3/3l^W-2majJr0zb >;.NA'+9ii⬽Kݏݚc_<*ra-ю6\E8(:\.𽛌 M 8A *.0퓪Ts^CdjcІҴ.Y$)Jyq x)yw2vŸӿxL]ꞵ犩14IcOHҲ3M/*C2j{DYg8NA6$;J<[\)ER4Ɍ'W܆%ҧbq d>2 +!f扩e(:o3q1&(LfBshvr;YmN&2{8L,Ƌr-^{W8)hfWx|[h<ֲ<>B~~,y){Y}X=Hw|G+C>z,m84!tc'Ait-T9kL}xW>"xyËHIaE˵ܐl7kP2DsOʂ5#$X`qbvFRI_12>rW]5%c(8*u~4t\L.\icFKLLu\Ӕx)a :F3В`kB?NJ{s}@ߠѴt?H{uņ 4&sҬ'DojvB ?ӵmgKCIֽClV,,v]r^ VejMz޼Ϝr҈X}$c y+zfЛXO`νnN3he X =SV]h:WE_'N9D u+@I+[xF0p/xǛu> '# (;/t m0zӁey-xNM8Z 1ty /]Ԥ0ͱ;F\Dex]e٥Ho|.< nB [yo\ɨ%:z|ox=Sa;n/OtNpk1@gB t'm8}yU>:Ze\%~֊fE0n$7#[8di|DY]eh˂BPڋ/䁩]Q?*A.tx}S9h{Dy>|zQcBޔqDD6#u<`(ㅮ2G-P R.p&l'y"uA"UJp0h8MZ1-ςm*m̂aMBX"6zi bOHC]Xdal^9Sk(F!LY0ۨ 6 Re*fkԔw,h9`hĬw1JDȝ'b kXx)i Czph-&)q~"6^>tCX2s\qLыwSH잖``C,hɉON <Ьá/ [h}=%AGVW`|K ZX*z~/qb( W'k>41%|+EYYvޢ~tYN`{*=UyYi` ی4ۃHd7C<3HosO%ϞN!>;Ľ 'ʱ*u[PyXzRsXڍ 4FaAQ P~)7(' )v ."˷Vu0)ĭcM-f,H>}=ue{爿Lrvf橂;A,V{eM T |`[p)܌7R79Hq}]jsDYjR">05/Lߌnȳf,jËiVW$틺FvZ ڿd;f7PSX(Qx̓-30ҎĔ3"(jY#WmGi&%t1X" nB Bp? .mu `r[}9h_~Pz'WN\z8Qe-7y^ޕ,q1.ec43Ҟ0msjۦ4^M}jR;/xUJYk=/'E[ˆK؁ڢ!Ƃl$VO9zuRHR`jaذcJ7_E&%mw(SU BBkbnL E;1hh+NƇR=dy읗2Gy|+ QZS{+v&7w<Vې *h'/jN?Oll0F`ΧuUB- eZHBPa,9 @]CG r[{5Oԫ2԰p 7 bLLBICIrG0ZƄi{т=Mw;g*eLG6i.vl `?Dҧwj `DIAbQح ;63? 18b P"z~G"l0N"" Gc, \Kirc{]"~gWcdžI찺dX`_ل-aHM8 )j.R]DWXh7C`-2ǾWao?3b K˰c8ihuAS`/m (/p7@RX8LE`z`rPlY}]3Ȑ !#U.k6Lz/3O"lLkaлg4{Xn:|j/ژ;jazvw=m$r g;\! ,fô](V5y\I4sM$ޅ!t+ĭӒ4÷W17 MQE"6("F- !b.@0d̹K6WWr~~z4g)Og!l<¹,$'<ت$ hz4ׄ-t|G8/Խ}շ[?ᾬTah)Fc(pȀԨ'@ +UC3WΰڡlC}>&U'J2bJ@BRG2oO']PجkHƺq_z䪾;$ݜ|Pȁ\GLvܮbtF+܋__6U-nj5#fY=t=N8_]^9 ˥[[%wgCRlF2m"}UÉ/"3xK J5$sK("g5˺ dp*peQkW_ eq财dMb '~iq!q.Qls< 3x4i< 2-Ƶ%3bs%GT]F"BL-*lGqo`0p{WlêN[iTׄTM({_i78@0|b?c-Lm ^4njݶa"(^'ζ^!ҁIG6ukRQ|=X@8HbC(]77w/c7fk&i4v'ٺrU]BCXd_qTt^SE01C! HL Q]A1I! B /Jw@%S˘#@_]@<ªWi[چ&U|mh@.|gJQOV,RH-^MM~W&5I g JAP8wYDF=ŕD3 DhT4FɽsdpW?XCg1-؊r3Fu&:ki>U/u$5U([ZP 9*Q08zp_xt ~EV({` !P׃{؂5 (;*m=|.4ӊl0snFMy8$,avF \W -?Tg4Zk{bB=|/?K YҦsX^hJԼ@ ,,2$@HSk2ϗʢ(`^hTdIՍ«8b+Pob5rg fr{K A3jw:!0Dc,KkL} N2 oNO5Iv8~YzhGʍ-dm ȥWl{@DŽ4$ nF5 `FV2):BALlv@Ba[H=8r;zCiZQs3|>ߴswv|jQ9Җz>rŲ֞tg8>T3*c“"\#O}ҙ=\BSD< p:͔ⷡ|6h]x+ >.h /IY9~?YJ dT-@r,BMab-,D;qPnwwoc 0Kmԫќ*,m)ѽd{8vcK|B+hߘ %STlH0-9+4\hfƸ8l񒽌辵'It.ơe D\<đ?FZfn5kxj\C NT9;ؕ8Zx늀>D,5bl"1).C @ ]~ Kp$eH =r(Dl)( A/Ш)Kd`roHԙ{=[I05$W"b@m;&nN\(LARqiGؓS Z?@WY]aN+le/V(V>svܓ2L #ێoǸ2YE0STnv`h,,6^fPOc[c?:QyMj,CFqx~=e}# }0rf֞O#pPdEB>h 9;G+^TYJ )niED eoN 寱 [%a8Zq^uC SD)Lu25нUg̱ tޛ+>4sB !dfJPȆ>H 9Z(*(*Y擇;Ɓ\݋/v#{kP|θI#c!sڭlԟ &i:՘~i${]]F[]ŊL518$<"w'2Eװ q}QBٹx;Y7}PH䲡q@Z. kҟwovȓr+7fjÏ ]5cIJ@rjjqqS'~6Tj\Ek5.hz\\M8L6]W+_/I9!vp.%+T$Tqr6x+k, ߡ;[hͼ'JvS\/ДT (KVLxglI4Mpn".0 'dm[&+l:J԰A 5aGI~~B͂foq<cHe#I~5@\ Z,;ocAIAHe?H/_   b_'lgKCR{uk3zD8Tq_S#N凇"Ow[i Tr1hgԙdgCH=P ڿ酺8~"9WXFoOE䲱y#)C!bܱmȍ;߄ůӋ,!/^n2Ma5N^R'1K;njH$ZuYǁ$}r_1-y&rWkD1 $m/5cP!Iر[دj~[BMz`)( R ZO;/_ %b'9ZS[w(q~E @+Lp3xAd W8ĎFZމ=S+*@SE2gS%߄wF%3qL`s6y{*ο'~fvHc9Ӫ]dlD;jg%&(Nlh#pɸ JP~>,=^FC*|.6J=‹h"1#%_`zjmqY-|#rMԑ[)1Xl@B=yj_#zK'%»rܐP{|RR'G@oH2CCiwG~<^͋m͈3m^TjeT1ݨ3M1= ]:mw386_ Os@?R'{2L=8d>)|qqkRR$Q+s2 q*&2%|/'ߙ 05!Tש齉C m֌Ka C0Wt7cb4]:C]Mw>1aSRn2f0^γZ*@Ny$V;cDY${ ܪ%Lbg`znEԵʭGAB3[UfF /TA(c̰q^_70,-bAi_5XU9M`6Gt9>n?, :boJCQBBums2BfhIB-:FNr]:{xD (@F71CH:eS/E1q\FLz\NX*3D&buYC?h̼4xtkDiy[Ќu@w/jS^]+zx۰QFt1h†%t8).Lgϯ o$0\6G8QZ*&yM1̻rzt5,h6B6X*) #:I#LHh=/[;)AJ3 CY})7AاPVչz}fl/ඩ|#U¦<$I\hULs_ym R y#sƯ&?Ƕ"Ϛn_9}ƙرk ٬&B: TY]NR'WNV~osrOemO?v8e(TnV^CvQnâLI>DIHJ4L[d1дvL5qfHxnCMaN~!C0/IU2΅B zA f:|JPo=gJNI)s x@Z>K҄=k3MN>ȐOngcKQ2IѶ~L$`ugDR hUgU`z#:ރyjZ%4 f4OPJn^^]ȍ[3Lzq6pgc S4Ǒ`\y'"3~&$[> Eq{ H;-&zʿd+dFPY6o 5~o#?:A5ck?U~+2tDPA|i|(8o Pb|5f e[>uh5mhx27/ g%wY43'tDn0Z"gd}#&Ϻe~ٲ>&3`;"|YfۂYШ8`C4`yMl*>n!<5$nzutM Cpҳ=qyHQmh{p#$8mBsYa7i* TM^z;ЖB7E~Z59d{%{Vۆ4 +˸)V2iǬU-ڴ(8ol9xdNCH@$LX%0TdbEW#%}u~WUL+PXD7p†aML^ucEO4w%Pyb>#fR(;H$d,ĮYP{XBuoLyj..2sWa"YDfܰQ?]#ۄtTHE8>cubO?־>V|S|}>u!b_7C/1 /_ h8X.{\~tPcRQ~.Im1wKc;|DF!QKP%Hljud/Ð6;@O@|K-@^2|4Ga}O^:I, KPPEug>_?E!fa8b||hQ_1IW;)ʸҐ¨X$b*Į;m C&s>`p6&P㯫v%dgi)@`ItJٛ됔|'uYvvVFlSp$*喣t /KCI;=alN(X/ X.JFэV I`U6}]wIE`w"PJg:wZozB\HtsQwQ #w},,t_)uOQT=(PN"n\ Y#RwF3t,ga9^a A_}a\SV|)WXhOB#=Uwg}Y5tK.ve*j qu.@ƈN1Z~& Jv ,G)X/g\i&I7`dIM^t&ы,9dMT/ԹƖdD+gS6S?0%+{J70A]nL(iN?X9p|@fdfr%-sMSA8~&^$j>8D{x֩Ϭ5D)+Is+GqܝxF1 bH_}ՇA߲XXb7ɶު%*c"b^*ć,ݹ[Y#|OuhMb#εwJr3pW֘F%!T|9IC*T#CI,BvFDORfK"vSKzW㙽((eۅKQW.#!A*R+4Wq=C*Y??cLmnSѴp: w.j{J(,@;;8;oO)Ty DEr&cG d^/dIFT~D=!@ vb! kĝH7^/?8)4lf+w2n.@3b1ԭ>n&8ZsJhmE%_HsfSp^gH /ԙ `?2_ F5O|8&mBq cvR·Eˏ$;u(i>b1)򗈝ЬHSa +Rj93*Rox?@0eE(- I (J3QOh Z:#eQsjX#nSM)&e%r}\lAqO(BWm2m`;voh¶nhM _9S N!g)f K39>CjkJ+oW3ќ-׎֤XeXXEWm1I/I,@i,^1_q{q;)-_rZm" 3s-ơ:xOԱX elI&}KJx6. DLLRP@ͽQ\m-#XVl+υ`zFw{(Q .fyl\7P1C+JA k QogCQD P"9S=Z!L5बH}5+j5*dK@PO*e1Zijvi*+r͖wBm(HP<)2EI*i^”a>I-jM'j[ZF04Jh^j0sI6"ɈnܹDZ)Crݣ:q?]ǀJ"7P$OUhAʫv)f0;1Xf0Q9rqWu3AN.7"tw@U?n0b ?{T $$6>4x)|<8/(F4pqk!eyײ*wi'PIodۥے4ΞXX5; YӇW9tZFG`E>Xdtxۜa!d(@FpfWmB#,ܚmJդJ:t^]١Wa&rMr:ogXC\;Cݲs;r,=P`ܙ_#n\Z㪗 s2Iʃm(Sޤ@%Ǘʮ¡Gro(_v?Tv3Fg~ =ڶcʯnKkR>I>; εetCl&cGp4|r> ]JL ٣ߥf?:o.4s gPsjkFR~YAc6pI[s[1ǣ,j++9H9]cXH<ZoswT trgQae~:ehr,&Q 8534ӽ8_Ej֕k^tGczm9@޿%ɿ珔}v,pEX?HEӷ]o2zϯ2 pR+?[fC5-(#ZCйri3[_[IF 1 nq*2)moԒ_6 ҈Ÿmkʈ*C]c)bxfD 2 p5k}F_r!Fr^b?!VǂS=%!D 4q`XW"φ8[-6?,K 3κqfIa^[0^~͗ ::@ y}|Nq`VO [P_V]C|)' L1K?C|nqs6|STsݬϓP*t!X~#9Ȼk#b=]iWҰ cy;[ץzDFU9 I|+Vp! nlQ.t|DŽcu#s,(ɰ<Ӌ/Ӝ84Sch8En%]lmҴ.J NB>[?&l6 9buL KhEMZq ktс:Dؕ~Hx1_BZV%>u]9|50{Z4.^%ת <5GE g1s?L@L}×D[kg }@K6 |:E֜(s<*|Q*'|ΨHQkjC=lqئG%ɠ"2ɑ;7P w|dyv2+ֱ-Z#Aw#k?'_]ƔM@2UkBPJ`8B׮ H +CLxOG٤<#1W=KS.Lnϙ<רl|%M&S1A|~GT͈`5gUL60䵞KMH:_lFZXe`+RS&UnT.zF hәK? kbZO#PҊڀ4]ʣMO7qnwd*L_XG(~4Ap *iADY(ydUl :"Xh 3Ͷ̙'M=#>d~̚oJ_ɫh%Aᩢ'X*VAͳ`BYDnHNT-@뜯1G^o˞.SB6b,j2_TQĵ g +"cDʣء&KD͋`;|PE>"p-NNY`mnc,I=(h*.YJy˙$p 6gU& &h-dLL75}RGD鉞7CA-&;/6|{rFa ǤjW32IC[gv8J:jG돼Ȕ>zHjMc;~QT2y%87õML6em (ḃ,h#Оݣ ؿ:oci]E?4P1'PMo:|9ΕnoEV$ͭ ~r;,@RבHEG$֍|) Sac|L7̩?ן,T^&Ċx<8CÔY[[fUJL/!Bء8du=h͛DoʀĒI=e"5$㵿\F3U0'DT.3̖(,>onցUntDpr4B{ug))i#c`d{1ZNtz"^3c'k;2<1”lD#݆+,a]=)BF5p^)Uw*Tt*l(:(#4f߅Ő?|?afng n 8{S7h% Mz X3I>ް|GJ7Xʎ,5=x&l3 @O tv cD xRZP\ԟR)!($ LO!2$=ڍG=Dpe:}"jDS) m  ,20kCpt6(XoTt'L\u^,K`3 8AC%xyN[@O%ۄ\m "xG: dVc0*,aRr⽸E Gay up`ȭYޫ7:QUtq$xHC+r ;KQlZ'ZfP0aLk9GTZ `Z ">״"j2I?=Q<7'hŞR0R#LTb"J[-4h.N"~0ޥA Q&s>MLza|InV0RM{+cc}V$;Z  [.^_ RxմX8,N]m@W7~0:R>` 5>a)lqcڊ1*)~f.젰ZyG ''/Hnx߉\*iS>ء<@h_ʘ39:N:Me '޴On i3tyϋ 1',lHJȃ "7@x2LGB9Gʎ%t"a9>{]Y]M>C!e6--D#lSOc"2A̺c/LfӟԇR!GK̞ڽ%HctI, u 5k$zW9vF6!_Y/MgH-mb"ㅙ>ݔqz.uhrrNr"PIG*ӶjqtrSDD=2BWyvn9eD@9.d2D O;96vP=bzt i*g猙̘3Nž=0Tߛȶ>R1ٲe&>:mTKx=6eU#|C7*򃏉{ g.t $b-/ycarP{IRZ(Qs`5 7#jivsy{lpU4 5`+^TVJ 3F BSwBp>y6# b]9qİ⭽shnҺ;EYώ-Tzm_6}բ].IKUa5SVo~@RCHiaYǨVK%Qو9r\~!3j I' aYW&@?;);N ~퐊(w'wCD7Ah9?p\*b9>'ߚ94Ueʊy_wsEuo32]ZGˑ"ݣۉzǿ-֩3w2 ՟1uU67h'غv̹ZVғ~!qm@:RyTnX:,vLGʮrA٠bE VwU4>6I@f}؂}Te*mߵC[0BimϮtUS96<,y&C2̳u,pbmz=IeOj|.ꍒEWkZeK$2F 4sgy VV&LJ/l=xfPw*r!Wߕ=P5j{X SnؼsUrN5<(._BSWLp Hk.+T% hWv>A͎0Q9h!?UbYSsU/1 ?#.YczPI}T0RQp\vaBը+f )>  MB ܔ0y> @ܗ8 1*W@^sJ;@oY+gYN=.3_@bѢ$0" s6o=:8yk:Ĕ-Ǯ+ 6>R028g&^Vq9T'kxtލl'ţeXa)+8w-=cZgMDy >}\> ߳7w1/ g_*fUZ<}){FDU|<x/@3D=逇<4W!'winЈ`{P=- {3o.7pϤQ^!n 2K$ޝx}6v`'{w[]<$pP2#XxI(ٗF}= b ,(I/4SIL_ȉ`$A 3 ߰eREuԼ3ލڎiw4O-EyAe.pv= ^$8MGVwGq "8EtW(Ox9b21C <,+9v1UVlw'ZAA@zVÉ?QRycB)Ls lhHH7sdrjc+a*nz{*|3`[|l+*A78x'փ> [py7TR U vQDT(_M$Nn H"{1t6yӅ)>泩&%"fh~2P eά$A61㐃Ub-kIwo)H0l2:C_'qpB걕 г\V <VIm@b$כ <,^eK!ZdidXFca1+K%ak%bYA|7ΡEUA-.!ݪ{` f>U\`vWBJ#0kE9{<}abmVZֺN"b[I5Eٿپ݄ou =!ܥ>jۥgZ'Z@d8ʬ1ò48䍁ܴez+.|B<t00l[!؞/,$% Z uoEh> &Q3^oR/Y7@Ү* 𔍍pr!Q ^p6:p>$µd\^R;U3}t'q7=*XE]Dvb2Hٍ"SxiF~"K+؋Ewp*|;,#fS#zdIG";Bc% wʹ'8H̠vDm}|r'OQU_T]a~kl,c<zuЎ)MlEZح ۠?;{6r' Ɠsv[8σ 7Sd_ZB08M)kSFrw꣔y@6 3$cVG~fX,c12`͋2T~ YӚn0iaQL'.ynijɁ!ZH' FW:M/ic6ڇZZ#Mӛ ʂqJ^xv*dzY㾝=CF{ |LrnN Hԛ0{M9Y5{bhm[sGNǪ4S"bCWC(g<焈 XI[-U)O8EӸn@@(1Cp":DC?a JiAկ": qS]p)E+ yVqB&CKj!pRtD,wQ_aGru9 3kP|ۘiW=x2ͩ%_~^[uOJnI#Sb]aO<`ЉOKPI\wv?kʄکYl8S%jexi cWEwiEٛ|/49KY.~|Lx> U,Տr:o^pXe&oIsOѤkpF%G rQ"c/|tqCpFa$#=+]@JC"}JNz]n$'dq_m3eٝFG=-bT} ۞7B^WDP0u@?Ц" P=f]?ވ3f%(g1[BL&*=nUʢֹBXk¨gQxFɮS`_4=N[nD`rw?J~;ך0 4'6SI2̋^A%V]Y0+brEhXPo4r #M]$;0ە5>BfR[xq xW U>ǔO @`Uc^Umdf=_y/hjZ(l8&R;LUÅPº?~eP4#/e?=٭U$\>~= )nSBzMǐ<_ucCBW s{*Jh @RH- đa9;y9Sw/Jf[#|iNBysnk|FX0'\az+ =&Kb6p2jZ'ኻ%Yo'i ~Q+5%vTjՈ~41CAfy˂d6y7>+ ũXGb>\dsjt#7פ\'#2ޢd]j+ ~CXJK>|c$uǾDb z1LtX"~ r`_:|"!S!f:Zm]%FK\/E8h-z3[.΁"<YZK-$l\1͇HHCP rk+ӓ[l0"GM1H}ni0+!Kʪgc >,bW*W?Q i䈖B5M$QꎐrK"u5XkBpUkh ؏*@LG&cp40vWA\!YP=j3g8qrk`BtRk ż5{k۬:{έpO!LI~҃_!NJbVb!f/]+5LC9uVH ^[J<ԁ^zi.(j9R`Cl7O᪸CᲖ}^aS9oUF\ݲ= ڄq;u~%&=UkѥQVQ>ݜ+vzkJz2!~sP!1įj`gכzE$_Jsm4 ks@$S< ^5ƪu: {%XxLz@6- 2o/eGŹ[%krSAF*p-ȼxPωo'<ok fYn~bz?*VeQ}NPM׸tMNf!{`c/Yo<{K+;>M7RLs{,Mwu .(&(]ʢTI|c]tp2ۣEՎBNO[G|M Jкp 14{E.R纷 j4o,ac؁~(k]|?Ƹ0!WF0 ] g2Д˦Y+.2Y wpYrI@{ؔͦ ]>lR TKm[{](2E Ϧty CD\1o C%[||X6KM-$2\'MĺkcdRϴQN){#9IU+gL#(=-v nz}1;݇_4G"5GW~@9fP`,3 %hK=:&l5yd~S:g_8]^fQqv{{|T$$yhq-e@iT CqIIhdx1]@YrA::R"3B3Bt:~ڝџM^J )GnW筕׮X_9qsOB)F,ߪ-!RCqB}e#Nj'}cm\ L& G7"1ګ tO$ ys^ץW\XMx_XYM0`(}kDT ּ}@Bg' .7PI$V ^y汽t'kA&3P7d_/5H%fhi&@8_%ldlӔv:WJ*Hh&gc7 W憪 v~e:}@U X$7TNiלj:%?; rؽދ^W}4Zhx;m* رĵak:@KscmnXN _b^l֠9 I9h# &7Bxὰ#gI\>NHK R *=p@ #JmT-4_ 9./<)"Tq ;dz/F̅*~&:jb[Mύ%w\/oP쭩/pTC|;GRAbqC:<[*2}xe<9n}OáfnnD.[Vxp@N dʕ߈Rl߳ U! V6FV{^* kj)!>YUbC&/xO<~I֖T!B@/cG7{Y#T\ǵ|JaeX, c7慙҂ 5'JKcX6eQk1ᯃ=51lcEHGgenIt'cx- 3^ IUd4oZb{4k{t3]k7&I8NgslNC11ۯ!m n~xW|<ܿ &ž9ŴJ"' SLǿcw$}܋) c.Dbdߜ!5"!7TnHc"bҔ~c[M6uMi-.֭1I9ݰD{hZt%}ܜD*2Iv<3@cRYo,-Ih6S!2aa ?`Iwgfh,CIB7O~ x"FII5!'o~!^p>'} նQwZZْ/U@g N!wG4>! zp :ti qo)&`a > }iHlyEѾ-BN$!yĝ *8G[-= ndr3).Y& "s@եLe<괔<[W)D];ZW,X6(|2ZPf튀dGN!9jp0M>JPrC`vwSPh6aqmMi8xͪ)XþX,y?\ ".akij4Ez(ytvU+*@I,be] ]k޵,$bϟI ̄e8δfې9g@x Ze2e+dunR3rαT4[Sw vjۜh+ &a̭AX iaml݄:nF[EףRhN*(S I>gȃ8u?m9ZKV,dh' { V+wcKyW~^d-!Fԥ$oCwՈjc 8цOoě݆ zͽ̍8K0_H5\pɪ8"Ɛib@e͍a/7mGNӊ-ۆj)Ǖ4cܣÂD"&d.|,XˉVP4R>چ!Ƈ $U5쥟i4M;|ؘqYHwKun{ [}B96BXh#9gK?A[G/Kb>{D?#YݸG0} ߤ Ep5O& OXg)]5gFA^*r !g^Wmlu-?*GuKS!ư.|3t73֥h*ܝP[n8=ˮVrWhe[0'Kl~*khoM0E NAKkIzc6Z_'D긢HtE1e$qfW|IvȏBD@d+ Egs:vwl9U]b:KSx&Q$6֦z~!?6Sc!ί_P[L2OO^a,so0SopCMv+Tݴ d!V@ο6'*1{#܂. tO&1dTh~g[֜$E ܎:rm-pnfb'oj_(Ӵ<6IZ8h&W-{n['s`%o;Zq. 4ÿN\B|Nf;0G7SJV+uw)f2,_Kn zRڕ?("_FxbL_V<&sY %Sv =1f""!4NN14p guf}#!$#_OW @*^LYq vӲHqwy%`s\>9_LhCӝ*Rb-`Ij16}f g=`z֩:Z ׂoE\.S/2aW|LzPxK_&{p2PkoE W+qK+i7]jQ$=_]Ưw$ç8b`]1QbxC4茺wO]*AF㟴28@=gGQ:+0@ފi)̒Dimu6Wظ+DRЅKϺC,DXm#.guj1fg7Mكu]F o@ۈh)ܭ2-qSN2b2f?"ȴ| |ȣJݟIBJ֢H2WYZܧ"U2V{DHSDKw r\ ɹ/@Rb(w%VxmwKƕᕑiGI* MPd4,T? Sve>t-MER!] M& 2ʼoo(d*(|j:diqI4 -=/Jj @{ęQuYl9S,\1kKJ.[|r4 ̤pr|i>=JSsM3r,~aBE]tkHs‡2,ZuOV!T/6)2._5M[ rg۵n+UPTY}h2kk| /ڧ2(K?onzJ##F-K .ǰ@yW"z MٟJ?DywO5+*ĒH5! }<쟂ۛ0ca8!K,Ŷ wuabpTH5ru)g_J'ruoWuвܥ,H4BZG;UOd 14 1 trPYTƵf',J.Jp& izOP"j}P:CJ8ilo]\e};MAQ1!2g: v!ʨ?e~H#V 3P~ E\tEx |3VYi`] KNQbn* 1*ËGc|bY mW& =f=1Z|} Xf2ᆸiIdjag(u9 QF%s:t6 yդ- iy<:XfQ\{T,73 O#~§ i(ܐoYO -锗P\Oa Le9Bgy:` <e _*-P'`&<>fd&P3tQ[t.ܘnG80mvت~|ŕOų V} {T_Dp(j;tȇ{2q0-)J똸p 8oY @m K5Erު^uY<`cv6>?0f+23ư KwMT>6r+OH/nPG@ޱR&v\LU?g3npEP4dK+|_  "F}}5 yLԃY/ NL]Bw$Hb&i&l/Q~c3)Î*])KV`!%Fi (t]yϞAu|r=;]|:k{$nxQ!`Zjo'&V-jZ7={&UԦ8CϢ3JحL.Lg5#cb>Z pŠP ^ĩLjHrǙe6R3>3|sp(Ħ3 PjfO*pSXJ5Ρa+0Awߺ+ N-P!Xφ/C(sR^ f Dq0BE6U皾O_\:"5Hc)ɦ'EPD] $ؠY{txP%u|'IGj~(@͹a!1T^$ʲ5Y0p&mXD~=շ:$+e+]#ص8^>t*zmB5mb3#DP;@w*Tz!V?g1pDo#qi3 eǛߎ! &ͦp6|D+ÜeUrؠOMEeG2qRlʻQ 2q}>\V=!u9{|k!xlIq>t/Q=R% ?V(zJc/k(ā|(Z屌%ܥEm20Utp s2`l1u+ /1R1%'mO_|,-_V t< F#It+GwpӉBFfwH$=pI'N6:8 +Rta)s9 s'Kٖ_`U @#&TȦoEȉ+(@0 G%6wM6jƦvr4&xEPmNPݎh (9^KA.>d7櫠:aH4YǕFPxr8uh{-/+"w/|Fz͏Lu W|)._+Stz%) •5d&V o쫌Xq?"dׇW/q-"Ν)Ყ꺑( w<8k L 62T$6w%(B58R*7/l%f p%TMx"\цP\/;H@%@vRBf.SRZ4!^{ L%` ՆF3_?Y #W۔rTfɟvэߊY ܽ,}iH]Mv 143(}UR3h4d˧04nxڍՁ^Oj .:v'Ђydζ^rtf4ȟT#MFU6Mڒx N}50[kXBQ6*^DH%5Ye)d[Юxd~JV26 =V-#1 ""ZtjA4z~z]o1V>LJȴݟ# 7Vdχ?Yƫin "7W{m yǎXr1H{Ӆ j,M +ZjwRhTݝ-+j,BʍAp3 B0P(]1I#Z%)%4kscAr\@H# ͯPPN3=dU ft6R~ّ̑ b>- F6Rsc )C#I #RJ:hTezni;YXg4 "p$(N;}˴E6NgDMQ S|])Bm1kEsG0.y3-{ ݓc>f5_Ȇx7m/7LK'f'ַ<1Bm0?obA_7+saF(gM$xB݉J'((nF?:$؞KdY.Ԍ @^ξڃP{'?u2yC~]#j}_lykҿl=%X/l/$~ c_7'ԁA?qpm/l7a #X(Ha. vvICI l41Z9( (^ t%;?\_+2_zk +Ⱥg<]U>r:3<~#NMs\]tsX 5S&g>Vm:Y{vOWI`a$+fG* 6hJ~]VSCǀ:Bo7Ϡ$[ 3ǧسRMU 7FB떜MZ0pa=?5uܗG7"%:E=[S/R'%+Ld`UAD,3ygj}9D2M(yB>7L[QvצH) 8-p7d~m쾀[#iJr1++#ST/Lkgp{GXB *8:Ne2[!^g ; #+4 ፃp7gH(&h~%R`ޏyr=0HT}#ads(̆d~〧 :D&*_ ?Ji8I5*,庍_Y_rw1yX-iVFcUSr%;9\hחH&V>%`BFl4ZkE`h6f&0Dx0Y=H^>UZxm= 4+A͇FU%}PW5kd.|z#9gxmg3N5Bߖ#sZ >9ӡIFIqlY1hKݵY0&ikz+Lsmkt:D %>U$6j4}HB۫BGSIgg[IuOUt:v&A%QQ7OU"@۔MU Q/Gsb%kGgBL" tBk Ҵ eWyOJVjM:*MɁiK35c! :qAL:Juuq٨hBUfp/@z(cF!6 fQT{/CXQe% VᐜI!OQBn1SsEw)Q QqwĔ(5Y-~/V|#ެ*(leE#E$fYJ?9f2X-:=u+ȼ\{ZZS^CnI@BL%iӌnXe&I y3aOP僌$q\Z8^w gFuįE2^7! 1[MܥQ͕MO]| 4 oϡcݽăMA5@P8Z3ʵ (nn"C$OKyeIq$ܫEAHJ859ӓWBO-E :lyGD(#Āv#\ɈʹپJ)'R\A3jn%;sejD1X\U/l};~ap c2Pj}+akx_^W7 WZF)&I.Y ݃utn/$1}=Sg/w,Iu"@YW|lA`0\SL}`Q-MLLsPTyv('Aܲͳ3'M/_NtaYHM|ۦ.3Դ!Z5dc:#=^h~I^^WA{;4)Cezy\C2'v?:\CzA)^\1ۋ7)Ǜ@?iZ5کT߽+Vk򖎜\[CJYZKPd~@++h{lHd1`seѿ>yoFR`he+Jư6~GCqJZmEZ_ڲ)Bkwt48ӧ}('7.g o;rn~c IF< ʅƄath]Ca/X*iB^{#y/br-]7fR@j̾4o\/l`L1鐪xoZ.؝xw,J NO{A+B@eoy]UB¾_W-9#~񺔒͟q=\ugaVvثQc?P՟AN&-!qaxVv+L/6%aEfH$ ȗx׹eL ;>'g`+h^"qm#셩=QhllΨv"_HAx10=3dVzv?^Bp!r-=$o$P`ù)u"KHk>t[ ٯf~hg28v'Ԙz Xg]1?鏧ܱ.Fb4HV7}|':CW]px&2])^]9K/+a fD`V8+P a%2R;OC4̫0^,o.4)R.F>7n1bu 6bAvJ,Ǡ8q죷IL3؞C?L}ڣ<@CVlBKE^9>o̞ ;T<_ɳ\_lUYs17006 u攴o.*ęXc#e*kǙ;O޲fW6j//BRxdiЛ. *EZ sI3eN?( T܅v6O7(^JC&TI,-$k kG%f1| 2ߴz5gYDjOa\bΪ,ni/{!ޅ{sS'Pv9{-:]ÊɱE&"- d`[mO%2JłY "r\ h=HZPrUDv=1^W~O"7x>T'i=o~~0.tN^䝮h|`<׸Bp:2hSKR^Vi`my6#ش+NhD!J V5ϓrC6=9k1["%D_Ur;H1t<׀]տ)*sLθ>c\.3'.$.&q  0۶DyF7w{ZZ=E@=w <?AS#Dh%+xMA{PΔ)^|OHxi#@BC}%n2`gjKO e?T:ߎOIqG|hin/גlw-d{oY7'sC|9+oq͹C}\aOj EBbeY-r\Ba[ {XSOPmh!5|дnn.Fŝsod>iEM|Pq5\b.R'5%%BBiu! \M ur%?2+Ǵ7dwOl߷a;Mc")\9*Gȧw[`FTY89%}°Bumeu~a,QS4Ngkh;L`G>JآŴ}|Ӯ9*8Ǿ[?=暂C\rK~i_K5V`m(,DP_;šJB!/fNUM+Uc!ZfLPA;A`d :!*eiT1 Abȫ.đ$~J1t4"dUcjdI,"m+#/:&MDFe!օ@ -xꑘ/jh윟!^HBx.Sc??#2q)fTXn, O->[BK5cx%Yh{0og}7x|? $"sLWi0~{6VLvFj03_F\W_ýKBWdԧ΅8j!.|Jjtpa )BgQcV541Jg_ %Ϡ-wm`vy5@Z>{6?B9%W.$Nb[G)].JL+*Yb9|iշ姚/%p^ h+ .{ n*_+ANzZK><>kJ,oc<pms-rb;.~CS 6Xm+ƄjtnQ໫zI~±:㕢Klm:΅͖opsj rƨaBf6S|5c}|:N{-wsw^+sϛ~LA:DDŽ1S%Pp2G7x*4)B)̍c`P]O 55`$­Q?;&q%qVx@h2aFo5Q r=,%рaX䳚ǩ\fW 4|J"gQd3<9 qm>?˧Q~3Iy/mڊD7)D` b}D YLkne{~213ӊ6V#2/D`q֡t<^._ `|<&N2nhywoelD[ 1μ5=XvTx8ufw ٤p^M7Z&@ Y75֙~m3RMW|a0ƱMŵ/#kP ', =Y"Uk-ER,4(wd?vvcfE+=.3¢SJ<Je^tuL񓟌B"p4:D<+A< ŏ&U" qC*qRi4.섗8:`q_)d:ƵNVBkR;ޛdNl̓kt*`mOt]]ft 76^u(hėzz39&ګSiGOnNk#c&/Ľ)k5P:-.V^U ER)V]bhmrڌ6۲Uo̳fO)Ǟ‡`x o6n B Y4⬟;\q.*NÀ:='ѷtVЩ\ę|oWr ;az7ȹ<Гia%ۻ9n09)qBlS92'46"m΃"ǜyS@Oo*dk[ޱ 6q]Z6 H ht/&i5yo-qzvWE?B~;~b5ph RC;vZzRq v%l8}]A- 81K{ IuTǥ6T}iO)(ªŅZ7b$tf 12%L%ڵ㊝.Haml.XfdfyV} l84|U-fgAU;Hy} nJ(҈!IΆEO޼f; a*wOb uS i8dD[Ps\ܘB{L,v~}MZ)X}$:C-\I۽ F0O 5TS;A H%?Z#) [ocTv'>%Nv { '}3B0 o7>xcd)=v^02PhX ^yJyfR]\sRИ HGxuzxew95&0wb46@ϕ6SsbQ-ٷu;u5ʄ:}jɁ .8Ke~xVz^,t:Mr578;ZtEUe9c\˞d>&,]űuGDj uRa.Kp]]|lƠ%9m&[G x.8-(yJX^|2NiԌ_"9:@䘗sCh 2DJW8/U# 7vh؇G6C :9x8J'ҿ|LU$Zw*d0ΦսoAH HmuKRj=]vk("n*"vVa¢m?8-VU='K*zmA )C= @\oǚF]oyl,:0;X$M֡*$GS꠫\P7Xݚmgkٍ;:}ゲ0d|FGR#-,yYLFɢks׎;oY U;/Emn DW3%-W -n5W4;K_1K;cb#%lYB} ˘f҈&Y-?s]Uzڭ~Ӗh6MļW*׍gM*92{K. SHy3ƍ77%K.X˷IQ\}:C N~z=$҇Zp@_sE"VVbjUO;o}uDx ݚ噋`εɖHYnq[TfMi&OHOH7+̆Sdͽhfw(#)c)-}G|,'rkGʼn 8/HoWMV&@*dž76ÊE~|pkJPZ[;J+ ҥ:m,׫z!ةNg Zc4~$]n5 YE&(0 fĂ?eQ[D`[Dd5LaVqmF-,v`FySjKFж oUH]òD%<ϏއD6##2j %k_Ӿly%{'MA5.RoW>k>dշ"l cW1qNY9P'ܳP$grq6ne0p8K%P;K%^2t/H0p>R oGm~CUpܖz72Lj} ~BBHj}JHL譕2,m=6'4(`6 MoYwN% solcErlǿxv>Hѯ2sQ4H",.o\ڞfr_ct X9g_pg-67OLF1 ZUJ|dL'?EYm)5iyѺ*O(BFQ^ToCQTjSڏQCQ *z2Jɒ> +8hKyj#Ywx0 {;|IhvLoYUNK5pٌJ'}*#z]Dfn|Ez 2__c*ؘ޹OC)j먖?R#!iv|XĨMaWuU )fRzd&Cჶ6ZK7{n^U槴6'๥EW)֞@0tr$G4whK#yYT{< 9"erv;'u< 3`P:v/޿nMT?3h+>h/,ijO%vVeo{!U:m\R)H EG@%D/$]_(}KTqwEInˆ>_ (f=|s2Jy` ʇTx'3G;"&B>͂Vƒ0_tzI%j4'xQ#Cyúy1R9+KFVG&c!+a^+'[Hs0*Vwi&͆]XVXv $̍` sBot៎t ^-/ )S=)SgU]`(RJysȝz&]~I1j# SNC5يV)an:Q_ՉEUwPW+r' l;k$J>ceeܝ˞BZ{q9O X]0CD) Zaux,RBJ]{~;=JKBnZpA3 F9 >M$A/h'09tXQ3e͝4Mg?$5oZ- ,(d7hU& #6wBl_=>t97/sy8htmkdhĹZڛ)@.󗢉e9-mZ$D,e $N@TB]N8A1ѥ3 k.ٯ9^hzP<35*Bf])WvE|6.؍ѶDܦ+Cb ˡ“E`Y CK!Nz m/-2ޚ!*vձQJ6_cWiY36Hϓe 4@i%m^ߢ:]a\@Emq8!rf1IRMgh{a#0}јX Ҍ&9y$F6dQ=L-"eVp'Πm;PpHM!\C1JJF@REf)<I9PCB|f-٠ 뻶<ejޡ.goEs겱мB`ՉD B`v F-ՠb-;0$'T&Q(l+PIK@P+mh ŏh[z)a2=$epo>_<-KfՊc܏?vbŽ}O&SնGYwMdV j+t:j4D0Q~0Gsa)Ӷ1Z y@gAI褂rJx `p}siq@p%Z?7zB]8.ƵydBҡ 8\TLۖ.i8 { r1~Z]93a/JZ^ƾڣ0%F@?a Ҡ3*yx x4bt7)$o u>fizֲ$ßV9y}IP٣q@Oh2ߴhok,V7\y'(0Y|nx*zX~I"L}0@}7~9.9ac!#Px_CP6Qse-q+`;s㏅R&dOKos| kf}i7+61՗z02Q#'F-Hi%a9CDM3icRm6i7W> z:.E"Xm1ҏ+yލm2#&osL^K ׌Vڊ, _R n#mf59G_ CF} ]BS`!)*FETep7v5u@AveE^ … h f߭|il>nҦHbC-OAQް(_4eVfXwu,' \yFtժkTBFXUR)pdoa9{u. }+%M8$S5 o4B( %`6T91’%7kX,^zDd`6-*a&j qIJIyYD}l8nTDdyyDџ>K[(6ǥaUX%XT/M]8MO(l[gt{u Fj|XN>`rc)Xpm ~N1ZSo@H'lPue[].(v K\RQ3W=[5Rc/ddux.ZASaߤ*lЉ?AlyK-#4=k6eUZͬg]G8c^ 3 nPLbWC@g+ͱAx fp0W(4Ij!':<*Yt8b!ZJ:E$C9s5l&ZRXEt/TzU:ځmŭi@c]8R&2,O( =-}.6q] @{a~iciD,6s4r/9GU%[#)jIwR 1jC9 ZSk (?%M: w;@t4U:^$LITSh8jFհjn˞>,Oѓ!،n2ߵl#³DZ'@_;Wfcw4%~kB!0e3BK^&N}Ob4 p,ĩqnoZ(zWjgl ~{;XYQC$ 6& /pG+!C?V0RU9{mmЈ]vV=:YQ6]#"}DJp "48 {CӦܢ7Eȸ_/Hap:&4mR1ѻe{詾-[,FEGh"kfeW[gr<< NSTy D6pV!ؐރfo"ZԻ ;aȉ$i Em>mt= ~j3SI_NпOa/ۻN\M{ؾ i1߾~1M4~nX!:]Qe'lʽ) A O!?И8ZU_R_*XJ8d} EF:UF}ʮK &GAaT ^qC9t'5-k, 9o'QRw{ \ N@VI_!r bC19$74t:do?4DIS]yz5 X#`xme4iQlL@z:q7,u.22 ֒QƩS Ź}W=ikMD64FJAk? P4tWee(9qk"-Lصe{jU;zgx j7>: b7,>ݜ58ImӢ?G %xϕrH 3Fv(=7R!m4I[xyX$zyi7^cLv'pb罧t\ﻺ& Y8)r]dX=S,0y2zS: c`'mw%z,s|<`,>P߳pXq 2nn tLɰlit_c]L=7@s)ʡԄC؜G^3kXω<=L'BqPgĝjE;EdJ =0o^q{d5#z" %i^}A̐ fUj>΀+\Z[G(ҏ}L[ )-CS|$JFT s|KnH+a՜C 2zto@a(k@{7`,H-fnj an/b''6PUIr>~YK8jH ko;1ƃj=,5"|}hթeh㈦jV:TA\SY83=e^=, _Ѿ PIgI\ɕWm82tDa黰X{i7v)gk1:lĭgx`]PA,R dc9TXOԴM WEәMX6>7q[{Oyџ~ ߑ (1&?+ E5eZ0YJی˽M 4OXAtX f"|apxsf9cڈm^]yOT>;I[L<':XtTQq/)δ P +'?dN/߀U'ůk|u%\ę k4%#՚OM #r`rٻ5P 5Q2Qbza~玥VKz /-$j*Ȅ8@U"0/0A{dK4R#ut alh;"EiV+R eA]=?Av QKB`EaG5 =9[)KoU'ƜMCmά |WVe!6E&RK. vù\Р<շ1!DN: t?wy$&TϬitj3\gszw>QΧ rA7e(u,E9ߏF<yw ]zE҄OO ~u_Бmh@Ζ*|%%*4fW"4-CxcpMNO 97K ߄eם*ꫛ+JnkF!N~JV/"-m-1ܵ{t-IP/%]^Dp"EA!Z-n9?HsG"x퇴T@_E:7KjF3%3|JΪP'J@.ȕa \KK6%Wޅ,\rÌA+>0nKvIͲ`Ips97GJ{M\tZsbXM$+6d_/\mtbjEJd+!wr9RF\Z3 Bst'drv5[L]/ $GD;O5ɡ0_'j&kϤaknNJC|+ b’k'&a]BZW>;\%t~QM{r|OjyRf1"2&*Q@e2̾ˬGK>EUۻ>s^(EG 3Ōs`>F'/k2 ~r (Ӝ&}4 \%2&OM?')1kʽu6U`sկS` + 6Ť2 KXd uQYr) Эv{8sKbl_ylr5WjD?l3Tn=T !a5 +kui h0#1J.];uC1#ɕ2Ukn6xe1,Et(l9lgECg#WaUπD&wĖXQj94칔L#hڵ7 iØMvBG<|PiCKHŽZD3ep]̹i 獸G-+upvn"S(Y5Qf#=/_ ecΐ~`u_݊!yɈ5(!飐6N0 zjm5}UhAu?mޙ}a[R_Tf2}_F0}kx<#_oEB$d<ǁ}IpGbY~leYJxX8=7~Ec@#.YIڣͮ!˧ԳcNF$MPtIa ll[By߀r@Ѭ2SuDbkV_wp6MJ'Gu!U##OI0c [37cB{KiV2oI  HWo"d2Z_"?*AM'=NXՙeC.dchbdj``M0?gT =\$js`~;Zj3c/ݕxp~$ʽ)vnӵ2_fMN{6P\W rkki7vyBZ!${uw,TCh)>LR@@S8AfB=qMW>;0'~3Lp/M܋Ƨ4>-wA`f4@p${G.Wu 5 I^{hp'[;υ% sۇ*4oYt^Wse &S挙d V  5gX.]o5AunjNb̂T6&(blk˿U8Ǝq-r>lI[on574$s?qƎYEl})_DKV(}:jLY3 ͸2pնfidðxAhQc,'p*ؾ:9KzHPג <$<CT[Ȯi-y<[(cn/6~'7tjE*Uo- zҒv_f`% f-po%BLq{#ځm\UCwA[1-3OLL)نoWB.g$ݜq.`G*!T8w:c3wY+ Vd1Ued!UMGaI RN>sKG*B/89(^aE?LԒQ}Z@,@ {O@rbq\ (m٘b)7='bʆ'w k 7@b`ty[-?I҆X?IB=+t:chThgïM.^}g"?^P +gAxr,R 1Ԛq9<wwe5 {Qs`=Bdb^ H$jUY;nz5ffu|},LQ,/;c#X\#8Q`+>9bJbl*TFW_aDmW'b%ǍRg -`ag3qsdIK'bymt@ IP\ rH;Axku3:V{.=gBHxmWt&hU+)BbG0wsq?"P1fiDTąx9ԟtWy]GTVt^e)i(@DH! |澙EYHMbA2[$>Y-zka!Ⱚ;}ۖJ&۞$imy2^fAf<*ӓڣC9YَxN%tٍd˄J ?Ps N#؊ޭގn L@M8eX52gx oacOZORJ%ƢvXc^PFz1~Gp΃C'ֿ !gQ3oo) 5r֪r: p9 JٴBa l^Y̆b o4)HXǎj+.]L( nA1(uA;Vd)PSdޟ#Iܿ뜲\V4ܸNcft퐬Fx{4H)Ttwf`:v?\kl.W{~,S,3yTNԑ5Ua3}%or/ FI˂ 5'mЃds+O"lqʡ̆ZT@T BeׄN=㩒8x5_>EW.],>>^JxHkVt6D|>OAe. \Ln? 1hd Ju3&ȍActsdJMFn;'1i6S< n] M8oܭ RqdL@/3j^O6,Y7=סL葝j Kzף]I"]mJ _; w@;"8Ǔ"yHB !ɠ7|kTv'FE"mY1#@jL#2'In&A!p >7|ő":9&92#+掦wYl.n(َ[sBcSH`'Xn6k7j3SkO`_4r!JNQ˻T1΍G)М)LQ^Vq%hOtu(=z./'3(_wJpݷɤKUܠFM$DuӦT^TD*hQ!f &C~ ɚVlƢZq ae.!D}15}%A(CX*# 0B| S*B*9 jQo|lPT(ݹp2[=쑉=z_Ǫ{1gNx 4,9yC&s\ꥂE݌ws*EVU EYo%dbVpzQ/82vk1!݂c=K/KXGVft vd4ͺÏUoW\MVqp-:h,I0zƎIXg|ds ⍏z>_:œ|>.`ZEVhh ZZu&k@8Be#vW('S_|Ǟ?,o%*,IG;Qa8&0HtN<1,ĺ|G^h0 [](1ݧ|N ąg=NS|k 2eQE5Emnw-[ޯ `-*I1H@ʾzd!UIB&ᾅ7(>=eG5 xaI Z06+~!v%Kai5D?+rK͊L2Q ˧8<$\UOp7E8GN`j+O8 0ۭEAK UpBEyziTb1b6cA|7pVO@Agպ͡8T ~I $&ˆnJbb9%hdzM6k%HrttH1\Gmd x$c 5s8eBǃuv/vmImccaT9x!׃[BE2 ø!O[^ݧMzKM湸**l3]|TX~ K.Rq"cWUn[@Ů `v< 5P(v^C~W߷!0άLWBE"%ʝTߌ hL{0˦E)s^f{'Ճ)@k7X_ra\|ROQMNQHfkGHJ2w2`e{hyx*p¸acjh_s^jkROHB|qIO{k(M: !$Do,#;wjϒ~/JؖLl%s_29Ȅh }P 3>\);+}S#)a2'H6<վVۮ*/@?!}]GSev#©]Ѐgs L놉L0H1&KXZ4;S܈5tm뉺OrMtxd97gK_ Զyf3K4$h{}ke@U.[)fcz-b@kӡ$PQ!چmxufV¼ENe}%3Ab1WdWn#8w "pxd05O|V2}%nfJ{ޠlnC9;BhG++P8wDiΕku;xtZm5zs3& }gY%_9^}>:<uD8( ֱ {lC괲Ǭ7mN#~XdtUdV(0PÜ Y6ko"}[FTHcPp*C^8 < Fdj64l}}2!W+.^Ya,),kxo=ߞTk7.`:~k* OW,ΤiExy B5"`hlpxSg"nr=XoBN"<8Apr(VHʢ bYwSPqSzH4Aj Jjߊ^jn&DHNI#n^dk2' J3 2,ø&fQ2X,UVPY12/>hٻ 2N16E1^?+X:IC5!-cpͥObCH;ê u2ҝ $z/9y Dad2%a}#G܍~wp!͵+97 ~`G#|8LtҟO#r[Z#wq('rDɿk :Zn ĝ4B/ ~Y4r?INJxR0tS]QPī ҧBDD|DF׮3~ GPA|=xZJς&ξ n-;~o< 6FS5#7{ޫYW  bp>Rҧ &9 )sT13>ܮ]AI(gIimK@=z"ϭ>^APs.{$wz Thٰ2֑9`I. bEim q)c1) @o]J.tE2xHOFoOoɊBU+6\x+Kg66nФ%4ztD͍qlkq'/oQQϮvlC,ɘz ^iԮSF9iQ|2~~h6,ǀ硅f\dc摏~[?r6:ZD8.=-eFO =i;Kᄒ1bNɫ(cYB+/D@z竖jY <k-Е^T{T !˛~G |TP}'Z<"ә/0@pN@/ޗDO^op5 .S87 g-t ݏD~!_P9fT&E~ctȎM귨kkm4]lpwxF߿?|ToGQ0׽N ծPpW{UHd= q._k0qCp FcjJnέlQ1G1Qb{_[ۗ_gr`j5I!pHfҌ9bX1EI̓Pp %0,!7spi3B’"vO @nYcPX9| >s>(qN5V^;`B[Zɂpn!VWcLn !G5=zSƌKS!u2w DѐuCyJ/i?sO3%&J8:04-h<,:@WMao dR^rb84SVi|.` =}=>UO{U8$[ ;F8ݱkf3ꞿv( 5\ fӥh-1 VvKgI1BgAh%<.tKkr4}Y4YI: y6 dl 70ۑV'G"2w _!xڋm: ^X:炮qHS>KԮ+qY+fX5]^8f+7|; N(Wi5oXn5l*s38&絞&Y6D~ljF^[xOnvH{فDXF }h7fQS"L{=vuhHdB9#_ퟱ'! \j$AfĿW g񖽴Ӥ&%c)8w^%yJ)n@8t<_yΔa4Х/ƓNOz*ދ҃{Dfʯ@aNLֻ/V lW]x#&B(Tn?:tĵZ]CbiӀe1 !0tVnFi{bnQ ȃVW== %j]L4V{ӂ~Muuf:UFԍvG<(Zpmz$rgJu U,<1S ݡ & 꽉_ʮ㚚i*B)λ{^HIWV|Tz{<F %Um]Tl0[bYY&}f?$.c]l=@L.^OM9WMu'z/p g DVm? G v-z%{+Jb/CpVp{~܎yS[H#ߑukU+<~to?q*Xp'ܢH2<>gYD?{͉1ٷs)Ӿ/ªZ]q>7Uu6Lc5GTw\"9·$D~㴒xRmҰ#Ij2w3xW,+" /ma7d<ŀnd{49ͳEmM)t~.RdY*ͼ)/a !U.#ݞ[Kp+0j6;dMLk.kfљ8 zM^L͢ϔDgN)nyI_=er`3 ?K~SlV[ͯA&yU`WG#^#ob@MCj÷h"JwȒDzEJW$Y8ii2 JӍ[v {fiP]Q&:&Ĭؒ(7eL:@lNO1`, `qQ@31}upW5\]~|]vޝX_i y22P,^;㯆ױO|B jZ-̤OL>L/$Eq4w3E2PVY۲]\jpƻ듴+$0b:1:6@̷_J)?L֖6 Y"χms6By%amˣG+.9pe[bCa?> ՙhڇ{b7.1bG˚fV/|Cp2cbxki9.?mO!_zyX痀/hy*VGnE1bXl%?4'(@Y /|q=U 'cĹIx4m 8C%BC]$m_4uidS 9Ώg+0ʡ ҫCʮL? Nb/rp~șQ˻_iu&ߦ_2hVK;'>]Z\Oۤ  T. Bұ|×|y9GC }<қzP&lv(ra&8/e̥$x"qdyu߫0me ^7L۠Y,R̋/ }VyՌPƖ\ZfTr z /:sO[mcw-څ4d_`:c)##9+ `|fEiQiNfe `#ٔFcO ,@˕#Hllpuϕ3dY;)SqeA)paWЪQ@!\ D4bѣ0&+|7|eF+Ti[8,H|[cƐD؁L+< γ^:/v7) ?l`\nn%iU+GqeTpODx38?Nţ2jr=YLL)Wco\ؙÏmzMБXN wP#i6{꼵ubTF .:3$t׻pd1د7.%I&+V+KHWJ.9v @|4 *x;Z*PS-ZRĪ/ó%y# Z8MR`{|(UKT\~Pq,BB,..6IRUH1`eNORY2#ooD9zt!.zn2` !{PYec^)yvl*f:?,-s}+0+_(gz %kCBvjΆbȖ?^]Њ5 q`Ig&§Φ#xUڛo$$0j@B3~x4Dx Za|p`(JfJ}* =P\paR DH˷Pm9$Y)a rPFE= pچQ79 Q<-Q0MAVi#穉ߠW%{-wȷn7L;j@7_Й"cx}'\8  S`oʩ~kSɑg; CӔ'YX=$2x=2)/OADjAM,<7Q]Hi!g\?W "b{z{`A'@hj:ʲ.7^{ 3`mZԺhߜYX2zh>Gܭ;߬䱐רz&O1iT uuo`ڑ{HЬ [W%EdEjx4gnW"|%Bۤwmkdgv"P{m+Nuˁ)TգA!3D|^] zݾɻVx]^W=c ߅džb3D3dKM_1(kߘ!D"G’9Нlr"OQCMq瘇NyR{igMD p n(қr1+P`Iae|%\,C X Nhn]Mq!.3^&yp&񡑱[팡 0nIɭnz`!!#s@(QQ&;i*+_S9IR;Xr:t5lT?Hw]^a"fG5k[ uZ[gO4y?l7  zd@ׄB_`/qv@>N϶/g_C*2[@9/cGAe`xh͖1뿗xX_pw;esE[?c!<~#Dle]pIrڡpU463>1X,Vxc1ݐfs@2PrĖ[?fJ;ݩ?<x^ʬKؠC >h&Rgxh?FM`)5nfN; W{7%p:0[]]&Kq̷9e&&W.P9A7Xb=؆"y,u0h*O5GSDNRuݸVP `9++"`S.w;ORs'1[ 5>8ˆ\2I2z, .MKFr" 촃i_0YhoG6%"rt>CQ¹:֫γdiѝQ':8Z/0׸D:u N*>BJf?RIpY48u|8|zږ6 <؀ر>jd m[8TɂwجWLP^Y"GrGX}LA̹dkԗWg`qMK*‘">T4V=`a!@O\iSsJ=  PeÈ]bܽnJ"o|- ,~G oP jޜV-qx" 8si țlC5\6pJU9&=a!Xڰ|R<՝W]~B۶ݕe;x]H3YrQhM}kAL`E3gՈޯ60Ⱥ"JD%3 BՓ \d[o(f0bLB'rF8Relk$H5Ax3+L/Pʻ<`2 T#lvz%[o:oLlKҵzb?.zYlG b:W:8J0['|!Afy?e@mקGcHbyT ?fVwSlb y]~]5CҪX_3@=@zu@{QgNDAp?rw*u33YUPMΝK)rLMkNrDPfN(]hSʼGཔW6ƶ*x ͍Y7u 'A9,NE<ݧ6dnQ]Kc⎂>Y"5@to$Rz>k&UŦ letߤfIrFc"3Pjw#TQdԪg9I5W_r9m^c }?ov[b76ާ6TeH|T†# _`XSoUd)?K)TۤrǃXr bI)dƳn&V^qqh6^nn@P*'vJr6{ )1afلJ? \qzv#A(on8w?,)=akr9,(|Mvkn-֕dZccYnFfvd֯xbZz|b) +qk>Qcת/ *pTS*VU$z/ZҸBB!ϴL@n\?6]`. z[)0H}aFLnǰAd- )hyrHw3UVjbPq͵ysOd x[Nfl"^vrtMu[wzjW]BIӮڑq7 ̈́^Σ4w=RHs-45?Or/Z Wδ?J'o֚ =9SWͳo%@!Ofu rkRYpkLR^yRs%_N~*2HaܝE|Ѱ*,+ [^5+UٮW*jEZl5Ћ>=,$8K7[/P8CY1#0-8gQ/p Ŧ^~D"/#?>P(/DA561n'' ٭y7UQR5r;yP,Ķq@҂NK~N ijX3F $y=͍47?tev',Z.j}@nz丘 h{_će\D '$J-{'m&FҗD!CmA͋cCc.9C$Ӥ?3MIf*gc$4粌e: Vⶃ{J'g^1&="]B&g^iJULnYBH+g.pDt@I'چx5MZ_Mh٨i)Jg>AW?ιIS֐iT%UQ}֑*-=df!7>:[؁0;\4F\QsKj :O3:u5e 2 3kw7yu7jPz3r }j^N0uMtȨU zM'@2 >:$}N4 "N>a}tnIhh|? ~c4TMz dI(.|UO*g*UUl|UH6ȫuuAT0trYU(AiI?_i9{" -ya\W.͚5`#=J؎:=\3Lr5LקƜvBj+.KdvXE(v'sX+P"H`)bTȫ_t,&i(#|n\:Ęf2.2q(b올n2 n:%c4%Db)\6r}ĝ[n(. DzR=MǛ.<*)8z$܌V$I3B^ց_q1XZxL`?0TLZ 'R l T{E4©I%( c3tڗ1E[]t]3sS|l:b!4fĺEKBё9T%E~AGM` c(0Fr:ct\!J:zgId=T0&3x j ˂{(,{߀a 'R kqb]im<D&}e߀RQިTv[ o8[ +]_rmb"\n;jzT~ζA<Ȁy3.K߅14ewpܫHI"~b.[-\X| i5(9 P $LBGLRo.$W&e6>ׇN!ߨ]Ȯ;() w @ 3uֱMNq{ KbD/ ]x? .K#ٚbC-90Zów")^9yM +O iTZLV;Nx?\~V2)¿iiG=x/_9CQEO]/bI3G,=g#ܗaڢZ9TtV,}0հC77!>9eUlBV1$ܨf$"uJl f r:%bx lAEuIiǯ3\M7O^7N#M.iL ^9xFATU:O4oKzB !yߙ(&SZ/=\$S%N2rI޽`VaєV,.%-DtܸK 1,}V)7E,]g $%Mh'UB0I"mE#|){`vHNb%xB'"+#=*[t2NA ;TAOX*o¿<mQoɥw3T4 &5p%z`8ncTr2\Y#Ы+LPJo~`{Vɏ9 &wiwڕ pƩ񁈝;5Y4$*Do6>\S.%NKty:{"Z wpa߅0}~tVP<%R+ZػSƯi ;1^*t;b [}F:;q9Onxͼ]ЂHqJ2gAg½&ooU4>;}2_/IO}~lR.9 DbRnN@^D!I"`{~fULe5dE7jӁrwɑf 9|b9=^QSka2)@[[)Fϩ0$o:kuiԲ咖 ӮV!Q2ܷ2ancBr9XLEA3%@eÌ]u*P{걃0j+zR߻NL;F(P$PjfRC<|@KcKQr,6ˍ<"$?*i qMiL5FxZM:9> CN6ni$Y }fAu 77"%PPՔ qv岇f+~ ZJ_* x &CE.C\S٢MKDxy Ԝ|t{X+pUS K[iO?ىb% %%ۅF7kZ)g7(?Ʀ' MnWSaIyqñqLp6%`Hf;0%3V+<9vzbMe1=px>Kun5bZ145k{D./5 0hpNGuhVݾ4&X5iv͛Ao󍉺Z۝]W`}4 $ Pu 43 (Iha{&OZT HGbatwҢ\$OTTNյ]yz;FQ;E3a2J ycscd$]:]0xޖs>$}5se O/ZpG ۨ|xl=7ZoQ` `Z 0׫劘UI/USʃl<Ϯ j =Ʒ\6S*pusjQ',Wy4|- e=<(MF :vǘ 6 裥k (&j3b=z(?ιP?.l.8z/׏(7g#:#NhPV-d]a4]BL#NOA>:ҭ)q:5{kx27"Ѱ]zRYxa{d҅Ob&j;}C[nSĕ5oq*5S2l%˜"&IFY7Lu\:X!zk8|ɏQ|+!uTˢL :+ʫ_j"!E!<Ȁ& *9RDpɷ fMffIopJ v F$!+Ys q:M[;1L@)cNN4 [e,䏛NXKf7n,FC)I|+MY@y0i#!GqQuȏ1uDmHEY{d-71Oj"M*9u>D~VH]9y 2䕗aZzӷ8at}(1yH岇8V`BF9,reHQJ=uc9ܘ IKJ>˃S_OZpJ䞼YFlP|"U0vMܚij :0ʈ4SE\Xr Wq,چ8׸6=i? DoVfA6n_ ,Т2#mK jśEpp!L.\  .n%^|T /isk&dTWFGW*.2?KsxڛSչEL1A#ܕI˔czr`=?J3T"_ns%sM2 %ٷFH_:uds$1M5A1bhuyV6KC>!3,)ǠY6U!{n呣n.^5?N \ DA$s&a/C]<=(ǿYb$uݐNTtciԋÊTW4\ŤUI=#t$Hssib{&HGDO-/"\ [cE*l]'@{880iH5WQ!' gPe3S4t aԞd2ɟ?k@qKF2ii>\M 0џtw:yM\Y &U u0m4#w-sbD.ګ:f$Eœ!lz`FMH^38mFϰe)PE&U0$tƛ˳{Cΰj7 c{Nx3RE銵YY$]P)d;h_#, ɮcϸI6>nqxG4mr}(/WuGQwlj~uuϠQ By; Zk{o4*Nխ&KG\v'ȑs Ǡ@"A-ͲȚG).K:ܶ~rꩫ;7TM+Top9FH [e#2)ƚt9t`b`{J[֦`򇋆w@˃}LRPFeWLRQ3>Rsκ9-ƂNI̶n%/N";"mWQZbtD综CjEct&r Lr}/r]\hM8:_^OwFZ{FOiWC "^bp 6Ǻ(k*˂F!TwyaQAu[/)mj:=8 d2š&B%x֝D؞\ \qϏX @דZGcxMn F^x@@NПUGKYJPDaO+5lIءrf_1EOU2F\Tn[xnhugЅLơQs=_ Ec_թ`<>wqe('n:7/o*"*QZFgQ]G#ڧgwH[}v B#xH%^~4zRFHFw&*[M38T 1JrUb>~{jTfjorSb'Kl]ĐLuf]^<}db'¿v?91j~pԒϤY!'',&.#GcRhn& :nI(]tCg;)8ُΧ9{:z0&1Ү$!/1!v4twV><!\}r緣i,~DS'cͰG&cMI]q р4P9m&c4Q勉Wi SLZНy:-m@ii>U|C3yXG.i`zlHhT2B9ƹKt=vD/8U3 ~.V8w R"ЂpG=ckӞ %]umB.E^ncֵ@˃& rfN5;Y avG0K13/4a ]-xQۥe7 )H`nnz(-jؖ0kHJv~ԅc{9ߓ!B~=?jG>B/gýRh7q_שzY)"?F"%gQc&PuQcKdj!A.$lX42zak)Siw\w0v~HE-OImA<Se:7ϻsZ n'$~i)@jrlT=MƜ}9@ 05{#Qn;:]׾ijZSO'^9bzdbW_m <ل̿o(ciG=|z!aV5A4XAI (WJ^[9m)-yIz֥% ua5dnL&svrIjPY!a֦Qdj_?gk`Uv:a;<,%mCZ4DBUAE"j.0f89zWԙ Zxr{jX>rQMo0qI,8 |2;?s%8T W]vYolK%ˬ PnzLQǛ,GUBQ Cӫ1'x߉Tw 5*PV$R ByԼե! F|G6h"^#jr:ېlď)Ʈ0ԛxKZZ1h*r4Y*e0 I_a.ƚ=AI! UjLNN߅4aPf~/mq[k%<Ԝ]gR- =(P U;*m{BJ<F<]F InCⰏ= P1GS.ur=:M[G4m,zHOCr"P'訞İљ^I.PmVBg6Il(4K/򐰴|a [Hz Ї_sfET4FdAx6Z^2&Bg-5fmUS}@xuz,&OS؝x*IA>Ql'd H (3ێƻiF)#O)E-P%'S]А`,zRO p70p~_P-pFccLbo&o%w⧵Dg DŽYƅ$(>vR"?îhn0k%Q@4W1 C۽_o)`4Hu1:/C/I݈- >ïf>z;ynw[quYF'mE1QVD>m _ꞯTUޝ_}=X\Y"i!N5= uҀD\DAPx&>C q2UaI\?xnd[R䏑SHv"+.BdDlA/iCw9],EE**] 7u)IC@' ,jd^ʓ.jZW`H.fQ+HEsZ8i)V;2|p1(CQ R9nrыyɱ<}e;d\("Ƹs .Uٗ$`1`nu b)p0*}x*i _,>;@4d3=0W[j,-b.?Ġ@e42'kZG^gK!9+cvdd\! a -B vTlt 7'ʛ[Ye`2 G|Rl8u ͬhXzoYmMrlVunǞrFb$fdy))Wҳ?RߨYjse'ts|=O Lɂ#E _f>%I3ev-cT۴B<o֠jk)ww +S /FdCIxvDey:=5Ar|>"sZ ~ܢ2^ xrEEEZ_{69 j+?`lx$TqcF p sV"[9P oO| ^5{dthvTni(EYřJM9Ʃxs"*Y5b3=)ĻΫT`\s's ʿt (J #,oߍC ]1'f'$灵x~*!g]ysDoeOX cȱV¾)D˧y*6+x|<%.im _* d;/ 4-^4BRrQk O#+Y[w纎arݚ\Mh__*woƊ|,-w\ѿ򗜧?Ӭ9KQnw5I쭳j0eM'^y_HvrF^Ėkoʩ&| s7fXpS^F6E`8 u>Dp}Pғ4ysB)56jOZ!?<&@ųG+7,{k>hoQSΫoa2(LU9RpqwDdUG Lɀ!% |+w>6? Ry X"?=-M B$,Ѝfzc[M Ql{̇C!}c "qy.IqÜܚ( ߽`3麌"$GYB 7U&pH@}mB!@ԻVj,[¢њ)!`8(UA&?,&\qfI@ӱtR4< 4]U a$h?VכqC0E_uC{c`(MF8pazP|L Ů K e]sW gVir`f2W_Zsshq$cEMlWLX`臣V]?7%[' }شqeNp,uM^ʖAߣ]m.PGiJ@- ؕ8tp{MkkL[,{2ľKM'Ir4PS%H@pc|Z -'^/j. ס@Ć|\f5)?`|5 }g ysg1=B.չ!ˬ9l/'Í^nM}zi4F:|;J: 涧!$c%Bs'R48-\50H):J0! gUGD W ܹ:7T⠨{7ak bn \Vr/`cU<ׄTwʞ +~=Iҵq`F_xk9/щij$q,%L Z9%[˾(mX; a 1!Ad| |= ,urf,[H~@DG~bZTc%7K?d+<ہgy\a՘QBψg>3sFaqq%cw(Sza/Ac|7iEs]x ݮ] ?ִ_"8Klѫ}%Jyg3h /V&0cX=v U(çڝFRG:+E5gɞ]3&a pm#H{ ^Jz!7,^W'eX *-E ʌDwjX6!bcFi:`[ܪ0Gi;; f)`Y]L6 ́c^Fao;0-w=| b,J/%T kS r+>[,&"&@ =$t)]Kb=ڡ=LOmÊ{Ѷz&g:Rz/yyx>]]8%TROHZJM*Ă>|h,&E%Q'\ |!T6^HnYe^ mu#)ZY1KGίyF3̇QL'N΍u>%}C r~Nv/d G=D~]3mFt:xZ+=!N^0/X,<;+a{!,hfkP HW\rIoDe3.c~1bBA0R 6Q$b=h+7/i[DmKHᩍARQD"^JN n` |ܝ(^_#ėzJ%M&S~4/cfn}n]IQx/D."%cƽ]#_ʶ4(f fN[74@v"KEW QUD7?wWD2>$^v5Gu,FW&':t_,P^r:_C?mL{׍i?gc^;;жz@qY "Ӭ]GW[v`&K軆%ǹA~@~SY996[ݩ5DUV˸2IW_6X3{hs{KR/hP8GD3*%S ,=[_ͅme|O"K2ds ]$ g,sZmeB}Bxu( dU {V-vs'nÓ+zAh$LUOX:iڕ7ǟq\ɦ]b-V0Z%t0 Pi5%!|.}T{2+,4ʫC/w~o;\Ǿ-=1r"uzw8Pv c_wת9(DQy,r$K wL~4MhJX{%j tLNtv>ߡwaV*w [u0/g֙ /N/< ;c̀B5"p _Ul}Psxa {XђAbSdt'3ZDu߼yLfa i<^43(S 5q*"Z `J!$y`ڴ{Jºv*3YrAAuKbh5:@>-Nr:83%!8mX0 pA3Dl{amA8T ։a!*vo|Rŭ&MAغ\6e5eJyOW!`a{sЭgޙ.XXPF,9_䧖EdpСD/yg|RqZ`FѦ (I 7Q׉O{uJ xw7Rʑp$bKx_*I%aՌ|I`[@Vմ3|TeDzix܃~5k5rE{u j!!8ekӱK?8~9N=/h"e~ hF*@=Yz5S?4 jYvLH{\^r"=0yX|="{,qB1~eomŝ)Yc_ɓ)mzzJ#a ccjk 8}MՔDQc@o]Ɇ6EAA>PjKWȽ@IBbxߡl5)Y:>k/O ddϚp o 㻬1&k(RQ=&AEmTfˎ< A.8z;e ͮ6{wnH_'_0]'Oҭ:U|½>z90Oge:0) gDUM~*{Sv&H!-A66 J iD11+P&H0x=g7Z.'oʶ/`1 n0)ÞJ;j%BgŒ;Ad5Q ]xlC#*_lGXzhC@j+0>3Uy|KM[|K7Zݾyұ%2M^n(| 9|ZlhA:i\@=XY9̐ΈWHZ#HMfIA@ ʛV4rTS@:.gsH)L)zGa/4q# |ṔL{F;`)}4Đ>-%CeO\ 5L} JZisX i~ KdoGV@g _r0L}Τ%I͡ñ i #[F[G H05%K$v=6ϛD#,Y4'.½4Ldy@Q|&ˈřR|K~_v6 ElP7Ȳq/8V2@tL^!4,F#{ _&g"V2S.ρKuLBH+sYcfm'R/_NOGj2v[N-\6 ?LbkU.2=˸;7?Qq. 2i ?VhaYoj-ѕNtHXmo#[jr)KN4 Y$7 m'r V Xp_⮓ *썏ļ`r=Tzȡފ@.1zX/KdmdEaB= w񽺕3~ƎsD 153=zvW|U)%ùhCq̡lC+w[`/I4j., !S35HUF[ZPGl6)w׏Ly|sFB kѱ|5ِم+{ 88)LsPuY8dbi##,_r|I4 OGc(;7nB"QwlKH$׳KhʼnԼ=0 [?2S ^Rb2/{pdMq!3(8ZRW.)&%ou<^|lCј&١9FYd3Zs*P=k"b+lm7tUkyA"DWv НI?/jw3E65]Hh77)cHŘRBMɂ7Ǘضphv#2v PԹu; cjT]UM=~xGg"}=a0sp!̧oދ"tvj\SLʐ),6[ 3*9f_rZЩz՘\$/^3r&83;eB"y9,V56,h(Wfx˟xGVۖ/l,7\*r/Fr Gjh$1L:6(u'c0^y<$ %XU4YC wAD #!fQ#$T_M${I&ouYY\R2&ٶ#x.孒]ϲq =NQl7*-9=7bd/2_ -N.1 ږ'/3*-t誇 egOve] Z &C paH5 g̋aʢ7zzֲ d8 C$Oa_v/2 rlH2$%CY5_z<|K79?pZ"xY{@8 ߑ̃=#U"fTBbO22 OVg/>A>0y$w^'L ]IaZ™Oyd0˸\\BVPei+Fg5suOTGB^U&!P3oF@Xn3nDo 9=`qq&:Xx13U{@/u᡹ ȋ^/\hc-cgUjۈQwv4.RZ*, ␖YpG~TRW0hqr y\8FdJIb$db7Oe- Iyύa}Af ۼ9y[){YiG !¸EQ+?~0Ő,1Y4cdڭ,kZ1Fn!%(SJϭr0rRX̸عt2IQODӉK$eh gc7S-t{hZ_t2Γ0<Ķ{1y2fQ`3q}H# n#P 6:Ά[74!͕##TeAunj4gs_PM85?~h ȚS"[ƒR07 |q|q)`o`m==C*KXHY-mּ.=b}+*#63Jh(ΣRp;SYgf=3 _N ,!̟'OH0 iAՆEшWRVZ;y7;y&PzGItNېI+ ~s s(5sCW]hx=i ]6꠬Ds]i0$5D#%6ALw^:rz'dY 8,ryEl#[\)T>ڶ`PpPWJ 1ga5/xsY9/ YuKd)Rg k7sKyiQR6}_֮:x[r`dϸ:=!zU@K:]09!Dqe+b*3~IB*oPi_ƫ2%vշ$ՃS0yD0j,';tpڏ(Ľ=B6υ5Ғ@,!$|΋Łx ƨqWe%o`\"|zODFvܛIuUB /qo1ʙt |gv]y%!QuI7ַ#=D\lKwj?oQ:{fu 8YŎvpΌo93iLfkY?!ۖ;e/2:Mo??kW0Fn4K)śfy)y)i%'>^V-?Dކ:)>7(@r$|#*f9?wJVG|~jd4|bMKXGюTw'[:oS_pm<>Sk=7,+(HCLh(#r &_ P qM^☟kS+6MDanֆgZC#EY_]TZ*گMUS@MfsJ9 U3^?m %ճRD -GtѡE4Krp3fӨ5!f}Q(Yz&lMJubnJHW|bKK3ʸy׶0dsrg~J1ix'3)7,Ƒs7N" LyDw'ᢡD8j\YF? KWNVOp*}!yKc_"]F{{Y_|M@fP}%+gUo:N%AӟhHĸcwMW_@oDMdE{*3K *D?)+c EVmbkB߬* q=Զi3?D ؖ2CW9d@9ClAfQeW+A61uxrj\{iԧ+uXrܦlFFuH!|R7Lpa[9r^OY>N3a׌gq2"5K*H鳮ux^>9=^z"nsuh Ce?yU}>Lu13)W J7iW-$O/sy;Rn\"*P塵f#wOɂ-4a1I_(3<N ~~i Y^5V mBroHZ` jG(;-azLPRjgW5/ӝ>mzBܧsY 0t%&V_ S{eMfr LJ]MM%2*ѓPBm}j >gh=7̔ws9He]CwSh)?SuTr4VCj=<aLH6QO=KPe=]o*`LuA4pu)ų<1 >V qVܰ3N+@ ,[l(]#`[s s8k"SEs)X5yokR87S]E~Y/%`H'V)]es%j PW3`QiH9PwtͨD6vMP( ౌ 72\7+Ks $zq9&ǪD[6Nu #ձU |9 wW> Ւi4J;immǖ萀H߅/T[{Y7PPNˊH59v [,e|0[.{i[f ŽQ>Hr'$LDqy<+t uR 2}?!CKvc[CYO¾cWV?Cf>U*ɿ s7K5E 1OU׭ϦZx PzRiU>II+۴7[CK#V5ΰ5)lT\BѤ<9(Boz^vDNJ˜.U'K0n$3w\V_CZ;2^|pvYm;GiiH@b N>7HPHWF$~T9ͬp?aT$ pT,{C:a.Go_X<WoZr~e,R) J[_oƌ֕gc$h#J"*h4WQPxˬJ>2sr#5j{-U>v['YqHH]?0d $@H3Bmu h^odKjQF 80e( tXuY;F8jAPE5?, _cwUÿy)}ݝ~Q \w*7#4 I$ % b4#i|Z536٥H?}k  *`ZYJ]R6Fۤ+6wd\) o]duȍ|îz'r͕̙Dv%xOuWK8vٯ /iE~`5~eag0kdI/iS㤂u˘Ikd}MW/5Dh:H+"KAW@ w7ӟ i)֒W e:S}lW''½txWl1aBxn)7wws9{JyJl]݃`N:Iں7"&_F]?7Dۻ?@l(_1 @֛ /t?0i=[|OxI'H̗rN}dkg7E M.\ _FF^nWƞ2WVnϗUBJx[EmjWFG"K~F%ȯE'1ac.s~f([ׁd h b>TDR_ U+dNYΖLc64 З[S<0ZyvUQms 37ʫ)+<-S[5QS!f/Q֓i8t3%^s].1~>k+Ǒ%,+mV"ǁz!"$xAjuj90]15߂ h *ah0G넯-%Ќl/1lč6Z:qbm?l߷-ӻhZHA:zXŭR:Lm݅RlzY;OAEтw[79-Ee;dHDj8C0R}AP Б#Aˀo2)B~ b&3!G PΤԛiW2ګ.bǰ9L"aޢjUNXIdYd>yҹ\r5y[oʼnnNI${hκVm?"$bܞ+|"Kq^SB皆kW1cn^+D!őѵiX6F6`ekz@ZzO􆕅PDyVK¥넪TXq-į-pi]tmB#9}jVVZ#Ķvhr><%SIu'iJ i$WUNL_ޓWYYY&CGOj,swG1CO!KO3"R%%x_ )Ű[) J0PwɕtJt CQ.0x8v71liC|KpXg%9)ol*7]o:l}ԵF^ @V&rwAuuxkh8S<=s|U`i_cIvN77?̰oi~(CL WuySIPW s6]U\%Y׃I}+5صfPml:^ ؾ%ü/48j5bT[hX"WCOb\|˨FхIG;]P!$!Mj --4]| nBšOfoṵs絒{%N ܄O?xq=֑,L҇/+:d@IȵJaP*"#W;lƖ-ڏz,J?ʴIYRY-Z{`@@pu[$+3/JI% ^ '4(^G1NlJ6jQ$>^+ݞφgljӐUq"P4^ 8-ݦr_O*PDZ{:%~=kmaYNX3P`rW%^ Wg']Zd15rpna#xw_OjyP6W΂y0*5n*e 9-`tA_/!׮iw*5& 2vsP6@#4ܝt#t ק0hPe9 qou"T@Z kC ޸GuLgͬyD٤/ZL0-W}S7ۇ(̼إ=:˻.WHG5{ZƅL"AqFq-@4?Wlkmr1T&IxBIe`F$B_ I$Y4@SkάYTI,Yo5t\P g$/I(KߨAwqa[ilU|>'?_`4ܑ`ҡ< \7 )%M, Эia[qh)鍁Dsg(+5ս =IB3eCi>83g su{I"KYOʗ5o0Qh|o2#s4뉤wKsvR8 ]jگHiaWƜZiʸ@B!pDjV"E=dYI֧ IP yړJK&bA Y׮8^pG5B"/ŒsWL%6B3>X#x. (1B[W1(1S7+ %߉%0_֡0JP~cbTGp1d>]\'Wc_졗d;4M667:NkP!j1BAŋ\ܹsϊO<٦'88o&`-OahF.P H M|ʌKG1@buj5{ D\" V$II&KE6CJc4 Gֈ'E48gPPQ(DHE0t\Ȫu]9:s^] jIm{n/Ҧg^v,mA5kӫT}lP<66ecgϻܣ#XC8Y@]@*Ӯhi-oʝ'Qˆ}`J Z$%w}vHys_e:R0)3n"fҘ wvWerU$X;+dLa%S5ߑ< Ԗ3&=Q#z`JG,BѤ{dD!Li'| Z.Gn~8K^XҐ\#F_ѷ&̍ڀ7w0Hڄ\ 75*XSmI\>.Y6(6=WEǟStbۿE4UBo ̏fq҄ GEtBW'2HY0.<\9;NmkGl!m&p:6vHКE32N2.K8o(E P_]f  S?:`fzHurXZ"Y?y5$C)0uuu@٭od~Sk1BpЊT3< 8)n+5r[ӘO5 5Rwۺ\ÆDDy) W"y~tp?nl>ja{u4^{Όm1h{)2r=w$ȑ9> ~9KӯMB YYA`J@I~&.e ֑O%Gy7̾܊V.3d:ݢDiy!xSpʎ~ O"E)qLUޚ@~S%ϡQQ#ީۃc:$m,h_Xe]'JwVH7C2_v8i=nMlwrɟ(aX K>Rl iqD%]Y­Y& o'5.#dw F4P-xGyo/F T*Aod `˚Kx !f夋l=%Nڅ.qs-QMhNUDitb5`{|Pܔ,)]eId `IFdv:W|cÈI^`r}$\{ZKom-ʻ+`kbЀJ֐e6~Bq>#&Rl M); /riP[%:Q&Tm.)B!BEB[7tPAM7oxPٞg=>l&ÝUG&hU1VqNgcfUew#ի2J.; 3L3J7d`Z 4@ FaReut #5 @N]WK}jUynsN_ZƊ G |) Zˍ\ ZMゖfMg!G^-)۝dA.ڝ)VŠ ޫ- -ѣc--늀35]*^ۛ=oA8zi,X6QY<ӚOPn˹&m@@2 rF1B#9uMV|Ѩ7R[H7#Oг^f6lV=?aۭT^J ¥PFVœq6pQj&xbh`i-5sy -D5iHG>"8(1mJjp@I!C$ga /4 ɇ7aA B.0^%<3nlֶO'x(k  'ym@qU@rub+G_695>D3Z|]&WTpaU x6Zi(.x0 ]/A Z/0S]u<1.^0*c=_"vIqE҅^J*-OD;&ccb5"Z!Sҥ뙁?g\3DTLܲZ!Bp{_W× $E>EڧRÅN~2ý0v̗,o)W'1Zu]h-fUu9灸!M:n@X|mЇpP(*G7s-E.&6@E Ŵt&5Z"Z4D(uy6gb2}J7؃j&~I~B#r d0ͨ% zh|ig(pJ.ހJt]s\6MMe~0P)Ø\!{,uQ@5rCQ3St&"Cr-jVb}mdtQM [aXxZ0p3הCK6cWt!< ˓[@^hcܢ|7" g;z`*,)0>g 3Tgx%2tE&:aE*0e@vmq(qKf餏qT~K&zFZz鯗*lsNb])zxT yF7Zʷn= Q8*L\(ߥ灜ш^uf/môxYG_85s]鰉Y9]CۄF^,1#:fMC, J=G7Q}1-L&?J~4pnG=P<;*lB(CB=>[ݼw8/M|^{oF',B:9.0*SFyoN̑0)ukYɦqsN}ن$z}so [JmYx$>̑Z[QjY_9jhv$3?K #d'.Oӡ_|:"R ]o b( wZu_Zk$qyv*^,[L{uEM=R V[H-įx3wtl2sAg gЮ?i} w(E?1*{dpc귿W( 7 ,9bۓijҶ_}4`W34: C}r *:,,#ay Yt'&߉y`L`B_]CRdd`JI{hqع|u+l9uwO[ϩLDEL{(-V鐘UG=,r| ڿsi/wOQpjCм? >[`{%r};ZoCbJܧB.Dg疸s^h CW7YM&S5Yv%"`5 m%yu4DF^X^J8(դ~yoTs":%ks4l05^ 4P业LKnΊj3`$lEĨaɗgGUh) m 4n r9>X{QyY5:#P])I+ 9XtJ%s*2B3vE=,2OWbr鳭R `近@ԣ3^/Q$z5[ 2B߰vWVFm̬Nc,N!L#gJgQt"Jz28MdR*tbΓ2b'1[ zO4pu!&QaJNV<ȍi1Vk$֑ŠnpcTY]oJ߾ӡ'4U,z<1;~`yx'$I.HƻsV&%U8LuH|6}_6e2H$!^RlG")tZJVS2$,˿o;%B7.2kRC4rb{k4O=:#%NE &H+,P`.0ȣ; 8\X!uLL ex^S]}Iqe@+c'/U/bLRВɞ|(al@P8ZdOV[W.arFvΓT =-譂 /Mj t%&:Y1 r>2@!*|I49}zǬGJ*oga;rVDpoO ۝ʭU g'n jBw`u NxsA%41\бSX%k;'JtLpefsAV‚*uqǣ FY9U|e#Bf|58R:V ?5.&) 30 1|i YNu Ѭ)aG0 1:ehͱ-TPO>>g .x" =Jgg/kFO>/-37e$Y&^pU0:Vq $=  bd`S[[a(0<0'a#M;*W\ D][ֿE5ً֭crk'NXDQT>Wn<|,Z MҰ[\qNO(.pnP?25ub&lܫӄ+-LojWk~gB i ~Xf3}(3[q:!!>Op{ wZdhԕd7R`) $/oy7"7P XV Dv- ƸhTiLF%EJ8K"Uئ~B`b!=tqeuS G&{Ž>ҏ`RHV'C4`U.́/ ͵z>j؈C֛k,8X2/nuFua͘#"d2= /w$cWGoiZtlj+^VD i: UOt%m \,;VljY3DشF9![G#7p)Ayaqnypz%,&r!Ѯ c5k-ol4&lwW.xM 0cB^bC߁l"'S{[d&%+>vXzD>!nϧ[do:Z9]-eLcF'6 QՏ,LXS#uS%sFْwh`&8V#6;0/(+R$Hefw?yDzG`4Tb׸ٷuf Kq@e?%q.uDm;:oӌ:@-ن(C8YR@3'yIV& Ƕf^rLRY}ܧl'$( WDPZl&¤YIk1pAO_Y_(^g,fi7sU9,XSD~E'7~2 ɘB Qn{ A 4ZS&Q9J-^_#%J.YA|1?p?L/Xb_̇z/DS64IH=.RPJk6Ι*(@|eƻB-h2䀽͑{ؼH-/v2#3q#rH''JxB+*I׎& sֶ^XفEG-SMCUjb#|.N߄nnh, Pp YD+i43I&fdzYT/ؾ_ LKX=/`ƳSP;[KV8|7/5WpgMG?:.A0ijY0p0Dr%aswd-ՀVc,Ez{y!j)tnquR5NVӈ?%X!^ 0H~d3/!{ZtŢOAɸgQw5aOQo?Q%LZbseWݯCoGF~!KO&yh# ;bpM*;=حj|yrcC* `Uމl!qm)t!b0s*|)*T+* ӍOQ nC3 jj2Qbe@}8-&Cò[f,0W۵C鏽LZnfZ}| `o.LҺ\7rnO%4?`a kq|bVy"FjhGgeTmݩ߀U:1ޱGA4Gꯚl͋)2>IpՏD+wd֭T7[E5dVXH ?ϨzPg&E `H'+w~]*.c{}76 OsP|^?W(=ȳLM~3l (,\9/Eu0e} 0Teupm#)5[`DTR 9`Y QN:' 1m۠gQH^$^."Bd5+2 {gto(5i\x玏v*Uܚ ?-_?aZ1ɁQ/X׈EoG20-E}<iNrv$ԷmO.$;%&Teεm9S>45ĝb5埣v*=~oVl|w\K]%軙pU RP52c0[V5Pzarf苵,8߂I~%<6#4pMF[,uyeí(.,$o~G7[Ea J3z1 S.iХ^!rٗ]yb/4Z4fC%jo5A>es/e(T-;r$BBm*t;s5Z y"M0 8?PЕ2gOBYR~vfܡLI}⇫2D8zGzm|W S[8(]V4`SXn{+eC ~w $-F}zQN e\ikx(#ㄡyF#>Y5fJ6plnb=TtSZj*nfO,Q%atǐ4A q%YEI5@T$Q55k~I& biį%6`R ;r~*/JZ:7I@}dI"T-eϰKa >_ưc9F:6n efF9L 321()'n!*1Pxm3,fnK)$$JXQG˜ZioZAvFǐZ@ox!*HaJ]W69z=NQO,p|{P)"GhS j_ do8Tn<% M&/0 T+PɒTߞFJNmfk(2a6Tju?CKLyeP4rԦݢ%*@$?Hy(ܨcwur#15T|~s8#9Ŕ8mez/@}qKqcD H/|aڼ;KUs+(-İn(YP¸c>@e'wUx*SrMpOUP#vL?6LO>?hA5vc$_]5(:lh68&m{܂znN ex:⬛HTR_1K52iQ/rj;3$DdmA>M|*32j BU%y!]*vPpmVapS$;&7b+=@*6?íSHz5b@v0 )CHQAX8[Xc$wܘ]t(^oؐDx{+ ?%oNh:/rUa؅T̢j㇓MX4|( jJIc ƈAV$zYF>_Urk+lA=*#|΋ռ '(ks΍'F"Ɋo5;u3d&Mк+2$@oS 4HU3+}X3sJ(,F-vL3ڝ] Ax.Ra1ʟ9I*I(i.t$Q¨g ,OqG;(\г!Wա^u^}՛{j)I- -g )ۏN~Wy2Z: z}EͣӆUǃfn4c9 =.TP ʿG-QI*.:LƕYCl`lK6d7t4lOMҖ@HB6ik1x83c#3_>btF7 []<;Ho]43O}H5WU]afJг+EF=ֈSlk$ avCGC7Nj%i%I!zL nuB)1ܚ umqkNX(-[S -6z3 {-\ _|a?bF2 ԳXkUb +ŏ_ʙRp[WEE_|G}A#G7vxzOn( Fw#g@<׶5?f p)D̈[~&Q<ˉLYoʹrˉm7u葇)\A5H"oـ:V/9mL. >4q식>"&2 U'ˊj%5hD).ޖa͋n8بiݒkr^UsNs} ӮefgSzz\u|0*2 F{a  Fgb /č O{|<yk;sRD|GQnh갤/KrO|N@Y]nz܈AI>ҹӀCn^Us'\~XkCdQQ|<'D 彥ul $,ѹ/6)#`Wgjݴt sf5XPw㷃C}*ZG01Q ^%X : ^r,^))e0VQTE:Q$RsJWC66j|1\݁28H&E'tt~o&g)XQd:Lps~v2m ;@en즠hӜo8IA8WtngaF6D>ȌO q{򻢯x|UQY _D؂㯈 ާXFM%>UKaÒ[!3R*@ rESߕaL7.` j~R:k՘Q$a*s/yWcjo$yNQ+0 vZ,h U!0Dlsz_ѡcTMm]uC;2;%AhſlC1Hs֏;w9G_Psr-UՁM p=M$i +TՓI?WM)&prn6 ~H?{U1Z1ES" : 0߅,bz'pKN?es-auY,ka{T(:`1GU;g}jҔ67VQ ӻP+ã"}◚K-K,檽-]ݓ}סA}Ʌe׊ҝp> mP"`-*pğa]A7:>Fcoeapx{kɴbM:4,؝0g#U1Vy'ePS|q[Sm;y r&rY{z5KX;U)]{N \: 2(= _؄N%ٜ]Jf' X]Pxm!ybJ |.3 0acw%"kHĝQ%AwP+Gu~׌~9ÇG8!"cyr1 oNʅ1!(r?8~ݺC:ShNׅ'i{O/>O?_-`ujNiKk>)C.=ѯi0̩gG`'˭mN)yb4,2骶FZē\%刐^crsąL^v9#Oe)I1(q*ے4RG" Q_99L F)xFI A=nnTYr[=iMꌈ#p$o##z>l BC6/~{ϓL#UJr8BC(a* @4vr d H2r #ZiN*QMy5dQAM./ yҍ{`x"l_ %.rH/1jRWfWr8=GWqcY=]?  2;^¤w{0T7L49Si&Has\_`nx7N!ohuA rЪq];''5H fX]Q#ۮ%R+ax,(|;J_蒽D:-*A7/]Kt.a6}"/6%1*L-EZ-$4}2#z$W1f=}duh⹓2B-)k.)(%GRErVȖS+_EkwCmp04GN/P)_WӍ~Ox3m /Zw vB'NGԴYiJu[Vp Ţ vN v_U%-,.-DR*1v5<~44wJS.!o~jUIlb)nO)3 -':TCظ7  <|; J] `m !9zMgrz07e[puA ;:]y:@,V;0)- w͑dC|PXǷI0KG}%g,~n=_\A T0WFG*U>EYU|Rۨ6ZDŵ#~7qpOIdi;?˯q ]J"2}S3aQ; jlzVI&E9Tm>2rgQޢPhի(X=iȜ!ҏ$&5AY˩,*HC/#jؿoӠ^ H?/k*Ӿiw[V88J_įRu0%g^qی#4z߲5֎G2:Zvؚ-^Zt&~^p߻W4VԓybJndvxCS߻Z6qsw.~[:5#>dNkk|f2^B g!B$lt-6{.q;ǭѝۢ{ ۊ^@7HU\um k028SG?zj~@Q/ XrE^m'Yk",Ei|\a=;Z T799 GSW`tDGXd }0uf͠Z( '׫}}O"ի \ExmP>sg.hcCB#eZQڅePCT&R]3B߳k (7Ūzc7 %ޜ-UhgZiFS[ R,U2H?k@7y"lȘ_or&s'LL׎}^dq%xQǚ{e?nc%ސb[Fÿֳ;[֏ws(Pm_RTH[Z{`wㄒQ^u ӪrDX1Ękn;+Z󓇁)16Dݍ{t1mH;Tt:-=*=#6a4DmTϧ^7ߏg+߶+cQ`ɐ,%@uO-%7xdbdd&H3Aճzh8o>hr]NE+H =YivaX,#  3I1-8km1RRӬK+xt>O-'dܟ_xEl2 &ek֮dَi{L,7,3J?gZP)iC1*IEMr%d_vjB{گ哥zr~ΉTi#@PK `jبqpI&سZK!$ilA>غM`dPÑ$޼)a%hJ·@Gc*'{Ryva$2BY޴Ql~|4%{kKaPP!D#wFvE έuM"WO8>1M|:{טt\St8A?.lyksdxDn(Hg RHd06 lY_Ml(@_[$sc, sFjSЧtt\9VzDEI2:N>C/){A@l\Mh޾ث8Wy"!Q {%=w <^>®GZ~`J-qt|J1~?/igʮ T0BF6Y?sZ+F¬ЌM=]Spxqf)Ckx6鋪)%}vX(N2 PpU(VqcN 57Upyo#?Y[lYEjNF?^j^qi셣W-O)bPX`>[BV%–L1Qȶ}`~V j|ヵN1#f~((e;`wƛI-Z}f h) ~oH ; -Vs[fM)AS [ʙ4wfr,:I "thXuMi[/Fi|0|El3pK>( ϣvM$Ld(s.)^2诐yJh1A,BGQ9GaJ_Bg\siZ>ߥ(O ϓ~W+ Uz)9wsax6PBarޯ7pQ v8&!9i^.YD%Gbwkrp:fuP^D?,`VO/K3d.GsV@@ro)kqu7ZJ)%g-(.$愌< 6}*r{lw>C:b,H]|_#x򽴽iz41y7n6AO[PB zjܕ|^ p 4z982ӰKz'gk\K¨ fp"I.B$m:6Eww(G,R`Z!%rws(BecDnJ1nVg_dphwf;^f7Rnن DKE /"& Dв=!g*b }Fӭj(>=Я_~[ Doũ;"Z { H-U~a]XWc{3bs;urۓΖ1He `ÿO|jKO`QIQ +%1R]p"Y}cw3?6rE mqѫDH{RZ lSɍvݒW,mV벪y53%ߍ:N0X3/srzfY+G֘ TӸSUZVUKU<**bx<$#p(ˏ&g#&AցPCL1x s9R(K3mLnZ^vYQ(?je$V$~;TpRJ=Kg=,Qt*ŋZ9u.zv`ƳnyY9Fe{`s_>Br>ށ!u#}@#x>ISwGQJ@mV?huo܈6. 9LʑpeREa&}l"XjtȂjbB(.`=@ KxVj&)3q1?YH\p7PrLwﻕJgKs9689:32!$Fr*V'L HYQ]HHțVuT7Q2&7Ќ V%<ֻ"Q|? bYb*n(د>>FksX쌭\?h ZKݘ#fS݀K\ϴ2ݳAXΥ6UA=330 9>#wahՆ={ $ w~0h.a<ҷi-,a4I`I7O4F0J!qZte:[T "݅CFzG-NjN'n!;fDoNgc2'644;OkǀŪ=0{= UT~TČe:'g$ڭ[+?݀̅ohI?JU콘.Cܶ Y3fG/Q'ٸavlyq-(W!cWCpVP:x\tC'1pHD驳ު!E,}Ȣ*焞:GBk;-,K H0* ϑ\_O(-G\4#\rŊ.)/>xzg]d5=%WcG5CմMYK>8=\ @[sV#KYZ? ѧs&ONKLE.&'6X`(ݩ#1n qxR4nz ؀S5]}7]uP\*8|8`4sp'R79J֦c/E`, l@*| w0֢Ty"xrUPlζc NpRO adZ0y?Y2cq1+SzaFڝW_bJp!w7d$y$55栺 ʫT %pX2pp{/TPc#MSգp r-^:<5 -VX,AX YZ_Q/饻ctZW)>Z70hT\uY n]h& ]6l3i( HEV>T(hL]W{.d0þ,d74Ua* uV/Eq)ݮ.(9,ڗ:nV[TI͟uH˜ ѤѧO~o@YT$ $jN)E:"[Ou՝!6%_ oS`!pFz2ډ(&7I@_aWܩ&c nԡgs),_:Yُb  6R;{.hIz %{|.kN 3DK32],d|ܙj*0 y:Byȁwz!ÖfshݫhF \dWRW-:dfHܠQ W7/ӝW=߾дZzyǜZtH@^ҾYm5ī鷳Ѽ"INLvX݃ *Kvf ovY_xLO2x(K_Su/ݵqN$S.7UZ%9a 0?v 8ԃG@*l=&*]dQuWSwLTvC@eTxr /*ZLಖ#Xe\-DKn띷>PL &fhᶉȂ".;y%_Ĥau2 aVcL#hgLiW$=vh F9hgKiRVw5HPL΀AF hXؓh}<}^Q7Q۩[" KY@֑af6meUW a 7i썃_/W*(w/i/и+6w,bYUvQv `?~Qv {Y*2]iڙHY0 j}.B>x/ > N陚'RFiNW/`(^i@ yz Zt=]FeX4:?bT~X2)-_X !b:fd)WX{~ - 2j4+06V #5AuÉ/HzhQ!0"{PDoQ]y6gZ~aZ/.@x5}X+4wƃCͣ8KǯwCh¤DgGqN԰g |9)t;9 Z^~@"0S옪S ᦗ28@1XfTO)uG}?<4 AKZJG$ppO˙g 8 ɢ| 鏨2Ĝ@<턹'#@% :/ V \;t#k?b8IyfywΫR C;'1~\XbZfw5@S43P[02I]հcI ى x1 ဆe;QiM8u\~- J*0Ѥ7G X[lEpzU"fZ TGQE Gkؓs߆*`6De]bée7݋cvO$W.8Y\K 9lj|EikӥlKO@Bm'2T* ]grm lSI84}vL0[|oqx5ی4jYēXZvsԇ*&u Ωodմ5s(v(`Y$eKǰh\ޚt˛ڪLL&#FԻBbQx[9ڪH?\6辎ޏT@Ic[C]1覠ł) Zd߅)MsR B JJ#zSLވӯh-~\h["ӖMo ZUW`~*x|FrjC)˲R&G;۞HzTЋ*7? 8ÅDOjvKl~3ض)C&Ł7dM~*g(G\; ;T{P- %'_1Wd SArxk{D UD<_JA<'6~3ꠧ! ӹLor4ť$j+P'WmP!SJ(UsS6 l D%y HIF^9ڞm;bhv&(du)رHƔBl03^d܈:cYkpJY $1mݙF„R'ॠZ#LF ((qY&Y5#VT3_,P#%UCb5:MLA*оr \\}D:t1Ҽ}g 4}W>+ڌY6Q鎻Rm4|c%(c8 AD/Aj2Xݟ4 #[.E855"Ѵ\5>+/m"7_#ܸ!ޠ=`L#fa7c:H9ɆKա  n*h|v!0U0 C]Օ陃9, ;y:~N:-bQ{6y3W2+8 Gz1( !'({įl aLmMCE `ٖit!Rx(ԪUm#S:i:9\?2N4Lty_.d/a>u"(`|k!Y{0w(=jk/Fm3k ~p}8"5oKY6E.C R]5v꬐*.b{5]r.覜踉9@MIO EE{U,(Jf ĶZF7}뮋7ፄxTxh82߻XmU=F ᦣ0m(mtl@)LDLFXk|G5*zS{$M{jNᲲU3/veȈ%ZhG٨iB*uɯ0OYd']S8y Iqy^)HXCƐ`/-vuG,kKo΄ыջwܹsCpi}O*d߰Ӻ'+Ƣ[A Qʉgs1KMڊ-AZ?43Ll +(P9lTuǂ!"RJ31TR{fN9ct߱῿op j$Vڿo!:ֻIM4>XiV 3v04ƈ.VL؜w*aLu @>4RB>K\:pHLk dG+HYd փhT%9 }M Zg,;Quѫi@Q|kH=rj5_?Oh`+y %ްyw wix PAlg3N_1nl  ň8ؤkAtB!^'nnf=˨d1?-1me[;+}~Zƍ/d\Yd};`KvJў„/nQLщ9o& 9ιY=iGB{Z4Z\ޝV]h=!_1*`2б Գ[r(rXqC-1nU֡>Lac G(`ZHdzن%6z535x/K =1V_EN^΍kG G3:09de#&> e1zeof͞ni+'&ۇŽ$,7!dмWܑH}"8mhؘ)N!BFsT ɧY w36k ";o]9: = ;/}DåbU,ڗqts Ltp?"lf) ~NxŲ\2GQ@fRJ }DFwbÿmw}OT* 6sgΛzkU:rǛ\/VǾ*eU]RH )fЄ(jڣ ma5yK:A*M=6N}F3ZU-E5psgyymȭϨhݐa]͂)ñCs|!"-:~UDN'׈,: ^le{uYDͼ=BR@1THz> W.=g|kCq3@>sU{ $3?q:Gq%V#It :%S:%%b\jJaOb:YDE:t#,̉p_rI_ O{<sO^]qW'>mnc?4!`X}bAl9j`Flwe^/&o10;;' cA,6jOS09**#^W+p+lҜTHP3ux){1W+ʳT}O΃ef0z.O>M남d,VpF;nu(-]Zm;*&6z]ЋnB6i|DhϮ|;(RYx1g&",- kҵJ z5wR-4,ݷ6]].!m ie^HW:T8bR<:9Yѷ<~=\GmȓA*ND˾s9 {:W-^%/'YxxWūH4:+V]J afU- !vOk>ȶ1DH U- j.M4Z4+~EF s qDM"ZOdSNK2 T76gUawVۂTs5+T`q1mBz5:d,ꄭ X%5\Uq3uzEPY4ON o$STa+:=Frsv*Ak"Mwd_ϺMHVݷeXR!.ћ;/,.! J'`gSe^g̱sp=ɪ6iۡkH 2ʓS\X7%JYX(r)~]aǤdׄみʟ7Gɻx:^m4 00X["KbFRd ABqGiu.@7%_Į4n,/53b Qq(9[8o$ҷN4]R7%˯#5SWqEa 'cDÅ} XY2k@;K#2Q{ 4g5)Z{ !)g@D1N?#w&am_N񘱴ag3ehQtUSL=܊EН=/E v &!p6B _lc.rYq1 dM2f `|]b)ˠBm('Yb_E[_qʦn2)/jgH?L*7/^$2I~(KѦQ8ʌRe݌(M^ [MU^i2GydR,5^ߕFD/4N 8 *)#\u9r\*-"w|W6ӔϭEMN1j3 o.1*BIEEb٥(+pauKۡ"~3>4G@QbEUNn%qpzd(͂P7z@R*-mGp SSn1ǧdAzn-96hS#FLɵ5}0tl{FX*9`';be5 Nk}E (RBÁ`25yDMRX{ 5!0|>IJn1 i4ioo@Mw5 g|W$ #~ r-DDb [_G$jGi~o%_rw'ʼn:#D˚ ɔm C$7ZO>< B6SրH'i4Fc1KdI.ٴ v,U}-CLs*#-{S!DŨob,\Fq pŅMb r > i;b݆o#M-88!HhSe\<!E s6/vHw"1zމ 3O#3[gS{wȍ8\-čx1ԂEO]b\3<[L䡅W!hl䦀,u[|nZr h*$1J?k 0~dpUx~QY|󃈯/90(,|:DAr*#t'ijXAX$+Ig Έ4a$d#Qr VBKDsً_w$P (ڋ /WG9?1gaƆOoNQy᭐wX4`u}))nux.J);uRoЂA.Sji1"䍃~-ɪQܛ-f+%, ʑ8?Zkߌ>;ݴ=c.$5fB_k2K.6#&Fʼ'5I${;_sq4^F_OȤ_W> oJ+,. m>ͶWڥź}OCP0$^či|XBG@y."^hj3REGW}ۻm@@%c 3#,Fd}<:9W<|6k_?Y*XP>ECp#9#-sKA[}Oq^t;<2vSre*[ݒƠjKC-Qi3VbY)c9:+|c6[+O Я[j?tv(Sß-Z5̵}yf+ZV|yJ6Y Ű*=t×iUx{$婻dA ~q$Ba;<[W09873|c/9r.B=a }pj>0T[aC]]d@9K{i%oĴJdvN'QFan%Hnpa&bkyz1WiUW] ɡj0$ OA-ypi𦋕xT, >FK_,$$7]?n9cF9{|yXc0Qp愖 Ac~"Mps*J-p2+Z>W)@8[KtATg>tOh1F\Z7dljphj,WbC P?Y Py9'7* 29i oX{r?Ċ/5g&C"CpmCr&{Û_0$vaoʋX_w!`yN%r>lP+? tf$G>Kwx{΅AӬX]˯C6>Gѧ!s 5S"|s%ߌ Hnoq7ԗFE9nӴ vx L^Ih-d7A r\E$lC>brl7B@7GAc 1zK 'h!jjLm <?9ĎVt{Ha)юtT7;}ozt|õE'lF(I_ +jHSkį\7?Φc+7eu }J+uknF=اzL+8 } QKR2Cxq[YlX+dJO?1ß`.mkf;@ #It @"xweT+`Ėk언8JՐz"Lm0S1RmB;_T fHt/Y֞6\鞆 S5+1>lZ`gOљS1T.k{Z$/k mf{aY9J|{jL'и0afBV8Y(b;{Sut|fD> N֨̂w;a\a#֑Jy=KTQPi>~6Pi߼3\KD @h!7mY!=,pvrI>s"0*CU8i۶“&.'G:\4Ű1&Ě%K돷I/z8a2p Amq ?d~"Bܰ=ڸK>;ζ-H!/:ѿcjR)$'dhanۧnl/޲08 5~uT=9\%sIG,''"2W(}mz/NO[nƗʼLE] $%e/bAפw%  dT;rqg?)XP,7ۮw+? 7XY,K0iTAO{' ga o}z`^U8@j7]jw%難Ц>+dc+{A%CB$~/ .ϒj֮4Y칙݇L~Z8u rcQ̺zYYGER}YP '¥XohĒCa$ĖlK<+Py?ڀi!q_ZPpsFL@#hKڿBUG2BR[4<已2ODp_T3ufj,x!/=&aS4AL,-rj`z›reT *PEisE ^&e{pv̽RASOnc./4nZUA 5d=(A*azWonp-in-Y?[*~C#*j'LeZfBZ-1$tUaX/qҧʕ A3:J{D19??6Ɂ{E\mDT Ca'bέ+n ٽX;cGd:H-?溴nж2/gضs"y1LGt`&L,?Go{āWɀѕ- J{,^^ :0@ DK4UMh7Yx+4~S500.FC/@=:6֔-\y$9%=5VK=Sp+OIPblD*1p婬Bdz&&:VFB,{q?0;YQ/f( ;~^ASYW(2y+LPq~Bl9+pΞgַ,oIέYU`i)K^^ 31C=rhX[i::͕^?[%^GHQxnn|pJDHF> ؖt0e.T.px;VB546UzڦU}[&g XImYP%D!GLpzw Y2YLVa:C |E‚3~/kQ7~t0(|XJzye N~[wYn)̎GA(Ayc$FU[0Xh}V0BU H2GHrFV*!m w2"dqbIx7; dS %Q r94kAGGIvN'F8傗})уI.P+՗5̚Y/mn ;㜞SU)sNpѹȷiByjЌ>i9)GiZKGk eVX/RbC1 iY0m= v)-l[ϛr̨` `¦S7F 17C?7$~tMm),x}P{~n>E}oq}A'oW'?;V=3 ۰ (UcٝE3uԸI= ߺ O> Qؙsߺ w!$O\UQq"Ȥp,2)U+堔`}uzDLD}f*yԗWƴLH[Vnd;B7e`|cV\H[hݹr%Fy nb].I0̠H/^ܓEiUմbt[N7 =X \󮣢eCv]Lك`my7j IA^趒^v xP,$EgW{'=)hG|֒]4ߩc"]Of d2Ĵ>Ӱ8 #JfvEKfAOf;﫨QMZp9<], LdH`Iv t5)V^ i\7By!=t&Y3!B`Mc)=y LtfI0lz{BSh׿fF|߉{A% Qp vb3w]6U)Y,skBDf4]7gOI+&vZc&kڵqicA|kvI"lgWprV*ߟ˸@S- o*>lBFR1i%zS`@K'mI^ TW07coˋ=q̓E^<+T0=-Dn,3|}IdEọysAR& zd7RцS·{/|VHr-pEC),ڵCw-ŀZ$6-m[9&iB=40^"96OWQb" Jɪ)AX4!gPdIh'_juO۶:#W p}z{dnٻڎO`]|l΍@Yz{>ٿ!u;!]Ͼuy"dj&ڂ5yqAUަ[Ƴ`@R=arn4}w~c%\=5TWő@Zv&'u|4=4O;CutɩdOCwY̝hIeU1SGr',?0@;-@]-`H)$ܷEVJi LGP?Or嬼B8PRe4?6CKM=~'= ϙW Q;zvm%%'o'*il*Ieiv7z9[ċ|[UxUv<3u a7דm| P(Ȭ6P5<# jz8KPk4 Ůw;$Dz `' +횗6V;TO(EiS_)~,zvR +uSb|Ǟ7μ&}<Ov۷5hGݺ3T]3?]xʇL+|TWCHLk'CR{b_O:2<*ӽUMS E@Y{ ku}꭯kFsRZ%ci |>W)QPcRhlǝC<{~t{ mkNrp1~0#HXk#pֲS?^Y.ڕ-ڙqa8*+UH[ڃ;B3/lBƨwix2ԕgT!L0-Κ#Z@$1ង/KU 9X2Q |zv4 a.݆0 m[؞9/80 ũܐ2SрjUWڎoKYݽ):$Cco&v`8VJeҍe+M&XFTˌE4 $ݩkϙPAΥH9Oʤ"xK!_@~)tE$gL/9Wxf?+GŸZǾR\7Ӧ k<,´.r(@6X]bqq-P @4j6ؘ#p5P]3pxt['޽n¼դ4ð0ϩ#6yR>âo0*p xۛ@9D&k ZYhEh3q,u}K]y;l &MLL3jpClzj3aZX9"lOCH kE闲{Ӛkq@ K53jSJjB/;O4p-{1?030 N6yQ/cnWJ{xȧ-˫$ɡkH9Vo^I!i>3m;dsuN<^+ȜG׍1@&zeԞMy(rM̐m G6Ր0:H2D(zU#J[O kBˢp:rIJNX]b?OƽZLNp}(LSw Äp !$ iq|ǭu-Bq`~ZUwLAJjl3i B_> `]<#HS1쉵|ƿ=*XHSc?5;(|; |ӿ7xݕv6AtSH(ˣ*l;t^"5Uj 6c",:K8}qPrN u4 _w=@\64Bqׯ+D7Q3֑`7~WaK#ۤ6,9ʡdTT7%/mO"ؼestčn{ lL.͆1[|퇓c@.wD|ag~/%@ҥkAOvten2kjg%!å 둃F gq;i_֚z9!6 4dŏ}a3hWE=9Knu_W#߼ܘ,s,[?NݐchpB#;?fvݏ=1!q L8376/5'ݜ ˬC74;J-k8&KD@[`xw( _N", 1׿LlF鞆G8uZ(Xnz ,S?U<`1ڂq=*.-1[J+=.zGuR nȻ0Q_HA :c \WH`={(Zt }6)kM꒢vp.iDue9پIV!sg1ˡzi29܏9mߍD ٺ) d^;ʬv/ MȢ5B7wE'2RSKS!D\V7I핡B*M"ylYI& *;b|֜Vmoi0]Jz$ܒk]ܼt+ \#P-'И1XFjR;~zHEqdžİmS(P) Pe#P5pu?iS%@:ґ*m<*B/r"H6f-]Gcd >Wi7\Kx_pR\"2!FQ}@ };*k5X+[p]Eq="JݡP :7iu/M{=1b/,$ Olc$Hԥ_7+YE-Vb7U{-¦U} M5-n[:މO-,p<&smX4a 9Ua2.;( {:/!ἎNb[|%s`b yu\!xlnI<,-b#āy4+_ OHGaIɆ]ÍyPH! {4u//)8#vۛЩy44h2m鱽1qFvq1XAk \N{9sidsxyn$oV>^_~_<_*}&|߅%!.wʉf-: 4Q9۲^"{ӕkء ?|kShGa2%{W*LKS915uZڡމ178@S0c2ÒɂenkCM,.h5QMŋ` y,2}hqwÃ8+V pwFODK:i#U$"xdMF,LwAP߄/k// h_N;+K ??Sq*eDKi&5⿭釒cZ9cZG fK\f.K /EBnY" FD}uWsX'i14γ*QΌYbشBHy/sg3pR׬9K!yNm㮪._TP3|d}8u3h;EX`;K,"kpWu-O=΂ivfmi;ot&j_C/^(Ii?K#1[7č/^Vj3MY73b̔`F_o󝎴jӮRiMJl\N_(Go6q:Q x }t{`AZ1->,Ef IWVSҧni{@SY_1I<+1SBTi_ K SǷ= ϲ 7X4O&[xS æjxO?īvɐqc wn%7D„*ݑבE![8-Fj-'\L`p2L9;:~L(f)o0.,\xSkw:*Hcg̎q$N$q^SY=TFlkۚxOT#OT϶JyJ`՝^u? yPPLyP^ !}!1pBkk a{Bfv'lԇ04zuHLׅcF8SvMvÃjPSX嗁k0j,X Hܶoy/;0l"Iu$NtaW1QAYΈLoOZ>OͶ$+}P-+$ӜWh0-KaX[y ͗7j):m zB*\8#TrhAU{=quޯ%ebuf.sGq:TG R~vlUن!@^teMf O \Tze+'^/'>z?$nq F'q| \wV_[SLGԥ2U1E@1?pR(K}^}6}/TXtZftM=C _6V(pEc.WMx:*o֔8Ll84: xG6ֲ6mrE?13_nOXV so* 6pK#j&[FM~`ѕ]âمW۞STyoBi9CkUFbsB֔vd>0tZK*:i $BrvpN⏈H֝MBbPM_mI6RS~pպϘqR 箖w 0ȳGP)m$\t)SwopQϘƞ~z JAlM. ~PI0So2˔1i׍Ü$ifdT`B!Rz0FE^\XHsAC\9u H47ccY,|Ʈ^HDA<E^̫g%6q *b…!è'?S(9W7(*_8ٽDn;҄{2 Cq y@dc2i#J")&5+U vcK\[I_i:B'ꄶB8Oj(jZ _/]TZQH9EIvdŽoƙSNO3Г q =3Z_AIޤE6{PK fEy>ZVІ@ :׮/w ߰]JE)Rh6d|Um/ ߒ z]Yb!md~ VQ]'d1'tzzOۈo0.4E A_}Ʌ ?LZ&Z4ǼPɱTCy߁::vDW]V"wDr˨:yY6>(63-u Gycs[&JW`" qF5])G5| I-6h?H}rKMѝ,dɟNX|Pbk ƻz1 # sCYKaEԃ&]"'g p d&tRgGJу"cUD(ٞ;8v9˘&^3@TPIV4 &iO T@D8a1PoUo`NzEԪڦ%W_\Te_H(%zL.^kgƯT=6:!O]=:CId>VR&dh_`dc4CHh{MiU ktl=Wi6v3Eow4W ɽ(y)/"5xW'azصt-F`b`xl,ك&7;/+=n|5A:dn}1 ӂHz&73l_P[w~!CՖƛҵPA}Xens9yrûiF;݃QOOOƽ/y+;RbnPFcTѱ+ _ y\Ffk֤=.`V0#o#-Tʊ -!ĵBv>ѡO+lk3R3\:|=x$Z'ꚍ UTp %]3KbdJ`xh$X[ S9 l!'aIFhojjU&%OaF\d}~ Ǫ'MPRbRd'),xz]koAeDڵz]ni1X t>*Rp#Qs b,mһV(f-AB-.xUFWHtFMYW9."sp6ToN }]lߗ%+ʙ`F 2};sj"#ډc  \ϝHkX \ׂ[!xUy.J=дkH(LݻnZu;GPr4rf[qȴ.rIl^WomyDI[:|?b7`(^ޗ+O XH9 ?Wr4kfՁ\:H\17H !7q0}1H< q&)OeNb"(6گYrsTRUCa=i.[d&8Jᩢ"kZjvye 5bGf-5bg\#얢.#F G"?JFwŽqXd`  |aPPHKiW> ;!2o()Ӄ+.| Uޏf?DT?1W7FgI*.JN5ǸWp ~ߞNZl? --?cyz%TLRz T$HU>Xr̉-!S %H)AUU[Oܲ֔ưnlI}MU}O?aQuCF̵0JLS蜴u5ԡ6*e"I"  w3:Uy=|yESIz&ufO۳.6g_}KFWPmJ>CEwdx݇g"Ik*Ҡ]5Fy=u{ ; {^i1#ݑE[ nWCzc+H^!gk}ݵ<jR%%;D|0?+hv1KkLj d(B¸#=y: AM n<"H ŜILY[2-TBvTHU-]4ipˬFfKh8հEe˵#q ,%.F+pl P&C%nHWa߹{&scл>QQ!ط" }szD ds+ Q& 0ʠ.#"}ZeĐWԘ#!GM;f#ULlD'.# DF<:F>\a)U^L9X.A?fnV9A ^`S宐TXFm*03Gt&/ʘ."H){(BdЗOfi$ (fMj^_9xg-|ּ(49,T.BV#}o]nG]#N Mݐ"x-Plapzu&: t5zͤ^gHbwUtz1Oj4VΆUUX<Ք,$G\}F{pwB U?u\y Tpp> _[ā bX^މu>Nltl|'jн5pҳ܍͠rWS3XVeB!Ť(ۛ8pXY9'oC78=C :OY 6 ,atu !_o QA=Dn Ot$zXt(A㞏-d#bMFci"B;_mz-"=;3RFFH[wXt , օ(fD*upM&RqjbF{mcqMѵoҽOwRʖV2 hcZWd:WUi8^\foMK(9m?W?cP2kV'~6 Zr-l'ǎ*^gkWYMඟfjC\IµgkHv%D|!:VWB7$zY4KN,vQRϮyͥ<61Hx{zD*|3n0CFSO|˩rDR5['Tu _t^x]| (ujG߇ {;Rʥf,φa7'84yȷ94X#ךhcH.z=HBgT.ۤi~fa> |%tqΗ#>1%v2OXWl1s?@j۰| yBDFD#$_O7gɽ.X+K*߆u@CMD R$Q^lUVQ+ֽMqֽ@#-V*o/xfaբ_ V'U2bB85G{ȃ*ma2c1y1Hp }y*pnkf>m骐&c !8iKE_XL^!00{j)I[n:9Ez1?1oddzQ _ңEsYޒLA ^bD}ghζ5Ag]*Jt2^fiwGDLCHYEy/|"*QeE;ODŰ|0ĵM3w[C4 TPZdlhG<wbOJ"2o4Jh(.MIDuACQ5bFw\䜺%e0SmAS3)o|Rʐ>ʼnDt6DjwC? ,$΃^؋{XaIH%ߊ)bsM1\(kViBv#ujGjh?"Qdk1`P~VZJM4}|"S(L14,aqRmA%&Zoo&AaN6Drҿ{YGVIBuQzMH0D[^VBhR|v,VVl;'3&݈`L3`*A Ő碛jF8Tf.V$<>+w<]HP ?-SEšw]W#ycjۣh֟ )JjD}aqNϓ{2n׀U~{o^^˚y"}xГ}W)xCd|g'ڥ7 ڵ\AP؆'L]㹝H Qt%(b7|2PKJ\x(_]G=]d]. q!HC1fp+5GYU"Rt΂:nC@fNW`g,hԅ`w CD9hWi%t c$rT$@sAv'cuaŷ3|EMZE+;=]>" F5)nL@|}N{]{ )ag=e8䮭-Ha[,>q0*B[>wG5PNX2&9ft2 TV.v~0*)Ԍ'.6*MDwMe K]CAD⇌6†7? 9BR i%FVNqJ*ӌmoA '}'S8~DW Ro| |1 xL{:mOoI*39wK3=+o~ƲjǛԽF\覆 y !yi;Ҍw(ՓE2>A.v/a+.g5@ɂ4duM&Z /dt&eF7r}9">p%C4|dL~-^<%E.Z(Ik{ş٘n&_fN%e*:X[3F"աNM\~"튫^{xJUM:bJHEHb? %~XgK 0킋?G~X&#} yB@?Q{RʆB@,0o6:Tk<#O3@j V)({;-_sKTWz;@Etm<\ϩU sMo5?#ECK: f K;} !5.4K=] ]uk!q&o-/ׁ+uA&0rq!Jbw{5]th7H]?跱ᄟI>ˮ#㞖ut^FvfqGegKLX?EX$A; S+RY01LTwZG6gP!6ڽ-sG(9LhƦ.أSS)AD`aғcL_VH! yyf]"a!Q.#>ǐ3fS MzZ[MZ`:< i$Q 0a&d TS̪-!% > e =(2zy:vGoXv8H U? :@*39[sArWh8.D:fb_@W+nM&_{8Wޞh&g8W!6~E:2zZy^[ BUB-)57QHp>.0![N2YZ_>gR" lj>zPOAr-Rֱ~A;ӣ}$˷>UQϣ eXԠ97Ve?5AgN>|F-I ~}U5TFX;Cؠ*3mlyd$ٟ2P;/} 0 7^ڑ$Oa,@А>֣glN8JN\>˪r(D#o1?Xzlv"l"Z-:[㸨'\w5eYOk'ę@56>.gB!0jCW{k >~Q+g&-;~NJ"W+XC|<_=-Yp7qKPcB ; Հ)py7g\=u#h8؀ ά^{Lk*ۀ_PL 5՞Z gR RXϬ, v*C gv얌(cPp(Y[@xaǬrO\#(>cUPWqV᭱sy@H}ǣx.d%UdUѓbi1!den$Δ![Xj̎'yY([{\[ d-sl4H}{ V5) }(N4mzuKŷGл'O_l7w+/-S^qbDm4XWU=DD5H<1A]:T5=N#ɔM %71'BRf:7{p+|bCh D2+sUO`" I\8cQo"R@\\̒o1}Hs Yc)V13GfDw)C-raǃЧҿ6%"’q%Nf42!kJ|wʐ!12LĖ !s =aSn,Zfeu߳ _7+b'CݗM{:RVhrg qL l#P^GM(DhG6yg0%`? -ݔO%&YO e!N&/<\?cz0f'&'5Iek;15jmմ=܅'kq׺]XArP~3l~ۡ֫Jrƹ8+@.؉!mp˜pqk'*j@lk ՞pؑt =`Gϒ&dq4;Tvi=SE^0yetSmd@џ 5HeoSOhmFLbu=p߳ )d?,x_ã<['|7﶑05 WLq]ڸO}i mLK恽l #utⱿ=Y!שm9ۡfAe2ңV tkM9bsŠ zk$rm|xXCVsCS\Y魨}c &NX~BwJDUqskHL~c൦G IT>s8`).pFV%|YtaM/DQhAa>ij/2&03"5zd?&-:) f߹bW׆-&+J .*+TF5+h_'Ӛ9CƼIjb kx +uju dr϶W~o/zIcF-hGx(DT Qs o "Urjۆr՚4< >Q2@K0_[1XR'$Yc.=)fk75M )UE(U!u71VArBs2A+%1,ܳݢT:"]E=L#PC\U;ru𘠑itj6W `!B&Q Bf)]䏭\i rm3fTBHni;8[56.$ȹ̕rkBe96 n?#UqQ øۻFNjF# .A,Tz&[X-l's!Hx_~#ך ҭPCQL&a+l]"5U&>29bx8Ό>ꛛ*GݪfN1`&5}@m^e y1!*Kh"(pUmX`(e\'ztTAPk޷̗Rc{72^w,_# H1v{8$D)m|8`{aܳ_55dbAν߉ ^ ruNRZú7~@0Zo1Q>E׻u7+k렴&EY1RÝ_1v72z Re f#'n9&hNtfÔ]{8{jLsdoT퐟vFA)c.kl %dZZMFزCN^EaF2(Xrbud̬RQhRmN~+?@O#g? ? q=R;jaS, E ,Ѳmeb//tqE-<" Q%RP2E [0>w)͡)W7}'E+F%L ouD=%dD?㘇V2l30GL+}"ֈr8r{@8ήAN>IS0ދ8PKY]SB.7idl@82k.A.[—ݹ#'Q:ПG*Z̊k2#zJQE3bm$e AGoP}%kz8r W<ٲLάh׿%_󷍧b@NDZ']U}U&4dÑn-\\|\.$7 ʼn=&Aާ|I+[691V #s4Jw'%e~>G*_3s vAm`QWIZT]Ehݝ8&XJq/גDI7c5>Woy,n$֙%F~Z oxT"--s=e8V6^ɣR)\}״ i8su10ԌZ {v0jq5l.CS()jw+ Bw\_oY͚߆j:_mD Il!7hs5W]M>V[ߜ'm=ݕCʸђ.(}0\\P=/Ғiy9PLXK2i0J=J5Qmՙ\<2݆ZaC RoؙH,q33"b;pZhDb~(I"Z 3}w_Y/a Wll*SAE4:rQ{ c k,"޳qݚ,I셣bO{m; ⣸qF8+,J AүV⡝"4TF%\ 2?YWNLw40 i^E0~ P[9q9K ڏ'ܫH&yOOh:|h A*+I=aCFfhEs{{f1r,霌 Cwj WXI.DQL~ MM_CaC-[SI'g U]F4{ԤsQ%/JV<0l C76Pr"pNG.w׻QX냰c>BmXF'񤐨1Ɂ hEfrT\9CB3\6!;m.$}3@ 7e~ycqlhd.,>\QōmH+t1*뜦ƲZhA" .#%@α!tՄ , t8I%y๼aիs˱-(wƁ_̤MO%8i"u(tus.VCC\>,V 0 URč`G|m/7uj|ɹ]UZ׌Fԥޚt!Y@ri\XH@OS"#<ջє%vHgn:k.^'OqoWmWL}~@8 DW2FCxT![2#%7Gy04! >Dxij˻+ϱ*X`riaU ;P\WsP&_aQDG?Pq[ϗi$<Ņ&B_ςlRAݥq1S$BUh$U^5Xq4Xr{Y+c^?ۓra1˶1 oV$n ;'a},&}3b"B+5cd\TOW9[da֕*  X ^34ɠY=(lV-#q;w k= 0`Vy٬um#"_MZ&4#XL/{ eNњ"֞|Ⱥȋr8xƌXǨ,1ka#7_O'B<6No*Z7(DIMĕ36&iFkFZմ#=]on+SQg1DS:7p8$"t"!={R7?JqY<]Iw(PEm|xe }Xe]m=E?!o:>=BuS<D|Cr{66$,/HuZ$#K 縎rJh $tv~`Q&&ݞ^ JŒdžI`97E~1U/ɏZYY!rEɒG7*}@d9E -bcz\3Dk81m3NQ+(kn_ xnB5ꙍQ XP_GaarΆ|g3e3RһYw#_cTz%95x[>Ql2/`,x^➂wpM2pp!]D49*qh=@IhfUSnK1, 몫B…IƝ*r0!(If]ҥ3k(Y7"ٜEt5Bh#sFǸ(ޜK~bcf2@Wc9W4<*z`"Y"'Eב ztf,u\Pָ8 P߰ƃ޹,6ݯ 0XuMxǏx2#2qe~b'Xۄۤ=2O| 96׌q ,CB.l^DL: oa%i&ERY^5W7Ah~ă*j+)$V=ݟCQT9C4 e|0Nv8 5?pa>K 5Q$|6[Ӝ-y;FAM kw +k[Zb.v** ״/ّ Fi|s!`ß*> ֈ/' 2oې#њh|.n^EPcC|Ta$l̛81ylp jXA@ӵ9E !PNHc" 5GSoA$?]t߭$N4T eF_j4w[N7 *C]ArdLOW>iiT+8i{jvuS\ڟx;L 1f|[0L1'Ss yC0EH2~CU]M& DF18hn~ܶ 0S,R-oݍ 5>XHMnFtЅhaA VG/!c_^j$zj oKbU NT}FݴoW"n)5a#TI.HHi +yV)lúN5_"U?MM䜠܋ĭۦ SV'BcDW6uY8$l ^Wx5=mull$~:Q~j-՘ךN)|7dtc}#,3a9MPO< D^mwxpټE$d4}>o?&<2f"q&zIQʂ= rԗvˋ i]?YM~1ioKW6*">-X:)EZa'|O4w@[Cu ^YI|Mo;N8t=gVܕ̞y4l5LǐC.=YNΈ?U/tL2[`EVa eX0:lF 0f݇g0)]6Cq$xL>+\1m/!=phM#䢀9EJLGT LuOhxE# Jw0iqLfZf3;u2!+GȉrH%OU*( 5bS"چ1mԃ|c&x )2jfZ؜"V•(}+ܡ iQvFb}oI7N(Ͱ~kW]ABKGd>SU QĿNn;aLVBCy kK g DcuDDLC~a F%P#더h*lPUWB~M:UDv9J\Y}1/es IH䮿CrBA\~\\qWߟ%W=4wi9". h _2(dK`m/БѦڇ[n+p(L < 6rDS@VX| [op Q]%;/Z<_U7u Z0H(T]U;Ո=eXMR,(7.$ B07H7ֻ1\|'ȣ"6;~8ZsB liҍ@VK6NbWFނ⛪lya{aD٫7tsuG*t,yrXi9"AŤ{g(a;+1䬰` F bAF2\{|;(yb&8XR阜 p_J*LT6H{>zJ"Gsڃ/-FO9r pø( [0>u'C#'}HjeZ@0eg+_ŽrI-oD8"$~$D-o}+oig@e[PB ̯1p jv {Goq//> _ƾh2aWBYLoON0Dr&\^$kQzNՃt=! 5Xo#*aVI;R<\BӲ3[3^u` u'S!ICr;nGԙPmZ!Vk  KS]RK F-}(R]_x;@ҬҠpjl i)x4/º:WН4 k >`'թM <8u4 L+V? Unǩ 񞑈gd!=0LhrmN!̄ҔKP'U'CL OJ(k+[2lJX*S 굋bwT?b3K ܩXJ.:Rcl1g=VۜqtGn;FU 0y`>50DE%GFJ'$o)D+WkU(99_ݑپX)4]@ SB:{%=_OΑΤp{ԨbC{)lժ #AݞF$$o3b$/#聾$ ȩ59c0Qc*q%֘j Z()ʒj: i֙ه˸/3-.-=!bQ'j4=rȑFt5kHʈUiRU{:ob`'j=LY])k#,|)a*y[F) -X`tV NV&BbA9AI s͕h'f^C@|o˵qS䭂vgQwQiu}&9dBM`J+}jPUD-Mf"{O6$e lUepL~;Qzg]6h@wID@.g/ e]R~{{GRCLJR_V~yZOtĵį77F7Y^o"V[w.cͼ%GGLk>A`= ^hVq6 zśxMr5E&#m, pJ 7/ҋqHą2ڂ/SUg +PoJd6 h-pT.C&F=7w2ѻ\xIQu4?%$=-?vuG\^=5pFP4k/?:v+NfΌޙc2oU Z7}R€Qh8n"PB]X&M,)#|?a|ѥJB.s+Fxh3!/wQʖB9g9fj(#ùn c5qCv$(A%_,`b ܾEHp#w3!39ŸSȲ!W)$a"g39튠b]eduqQU4@mPj2fg yOt]j:ί3HMǣAT.05o5n y=ɿ_Qn߂=NU:HTLvxYBW CTA<,$LޭDFڙIz֝_hHW$0:Phto'43_ڈ42<0?jv\m$i:;}* M@ipo?؅JsjlidvPN"ܬ/([v8Gpgə>*%X0v2T]9W03IV6GYP\zG'<GFdJw4󈋊ܡF6竹kd0k M zM's@۞Fk} K>%,c &88RG'hδnJj%wD͢)?wLI8RjL^wwH5IRaEoг*˳AW>W:.Qo?fsV;3O 2,~M 61Χ5өzĨf6L &MZ~]ϊ9U̩-)Gs+MrYM^Qr?\)pOH28VPW<3ʋ!4jyձ<U_֣]N]^,(`b{j-GB" 7gG_1[>m5qc}"pP!~Z ?jX/9ʼnj,\llU@oi(aL4[rmNv$ʭ1`8{ʭJ:0Z:Uy7Tu"m[;ICTߖk{MMO蠤dM[_E ?p:5[siFYVy%_~Onh beCM|mVɢl+쳊-ԆN^em0Ղ(8B]f; j&XixM'@ۮPfyaza:A[G-!d.OD(zVl 8(Rw>|YGIۼ(L#]vU9GLO}QOD`1 m z\[BKTaTy~wF#^;H^RR |zt"uPLWX ˕(UH5fܼ&]鰡f25j)՝!KYg{Vm-;=9Atl*Bb@M:w$5gn?ep5.'qs\-2r״Hqn'kW`{mҝF[€sb+QJā>-rKX P߃!}h#< F=-FI4CLRAO5.vq锳UQߦtUǡZF/7QoXǖFxp2]$jvb»[|O^&~n 축'F*r3l2:k) =Cx ʍoʀ{,?fNo9D[JfE`ϥO*2oXxX0mTAMf"YGG5ґ -<q j(hX8[u1 ٬>§a{(ǩ5k?{̅`S^8`rB)zP%wc>:/wx=]h>r͘k] !$aV͂:+U?Op3)!!fGy]/}kW^%v?ߩ3oeQerkK{UҺ '0 >'1"ڔ!{F~R"~׎%'[R!N52 +[LOG/4\cRnY4#h&kT2(R͓%YOzPκ j.VU %O::<I M>,ɱ.Hx|,5X~@L;8 墶UI~0̞+ZUp "jF ]{ lP _Y^e)҂Tmo$baTTd.$؜+Q?5p>b!~oI`e \żFIf_D 릺,\aB+ K.(H~N<GEy-RܾT? \#XDeHf)MdF Cq\뚸GIDxf<- Iw"遆`!NA8:~)o{H,,hs3U|ndUw`{airr[lWab&)r|qo^M>hfJ㖰_̂uވigETs8Lj[dTݚtk*P0R.N=Rև[G]5˂-_Or1^-$NSc!(? !Bᓫ=myA9Q12*uމ`P.ҠTNhɇgX*o, vQIl(C*4~Icwcp LZSIxcc'[{n4=:^17}ҠTaMނV3+ܕsO{ lfPcؤPY39Ko;gU>ɂra3)"Bҗf:G rd5hxx,dD8JE{}Eb>x =_x<\8B oa:a og_P-|Q | 4>;dy$ҽ+G,ܭ䭵.6qLpf2|M+S~-T +Ti]~c*$K63 }~.%k v5$V{$7%u1" ҆?i"BN@z9\rhu1DG[ی21=U'ծ:f~ǨFQDb"n=1ڒ y:g~IxЗ;5Ԭ@ Fi@WSKs頠 ԓqG[ D=qxQ<c:~kEU>{>7~& ,PDN  ^O ,=NRqP =_DjX"yɿ|Lj9wqIM[)jatV t\b7:cư-$kAꎬڂ׏IsUWAyVH4$,'xiSmY&܉ݎM?A%Z~>pϾY3HoF2zTHi3 7HM!db>_N2~y3s0N~Y֠Y(pߪlt ?>0X䳸ƑH_S0 "?=R؁4c<"ZMڿζ6Ma)GN6maM8DCk,+ԥ4RC3_z=`'wKhc5e@T/^pn#~3{9m![y`^yaŜvf.ǽ11Ĭ?L!C:;]%(,~;E^-"9Q?{gժܯ1֎T#Z,5tr]zU`bṲbXeMG ;~02E{?u?ENn(eo Jʷ߂=a? ֋_+スfu@f(S9{)6P#+4)^6av(ƫF'PpVɝq $d1mtokK7絈8gׁtqOj?.,i(j;_7 ` x(X.v<]rKN%wMVj=Qfa`A$FG32H" [Mo8-e0 qkk } ѽި(AA 8JdT=FO YI:+37 fcK|]2SH!K>*H{&Oi6p3I14SD,cP(Eb oS]uOcܭۜP>zkbqaEZTi\qC-0'=.;ʠ&+K {lx6uR5lDv9$z`S)>j[pD{نគZ) Z#$6/,0rd_im!լgJVss"BiOκ (17]􍌵vauIgVO jA~o(";K3\,\1IzIR l+1pBF f{sqV}f`ފ):#װx–A1IW+z?t 4U(q</[yE4)фC1N5۷KtsR8 Y{ZC~x_pP3Z6<$iU]}[8k?+jU][_["|_F{s*6[5nK0z6 lwhR<::JѳjM=JT+8]nl~Y֧uzob<6*e+aAhgi%ɳvz]|MxS uȆ\}LeO|.oyjALi!Ւwvu[Nl k鯢};)z(eT$5Y"cGȬfybe`rad0?$Pm6W]V1z:f@A6rZQ;U_գ. \}_'(b& ҵTz܃B~x9?>AJg$Ytt{/fTS Ns[o s~{FoLcLN@&6ڃp96EymLKpR!KgI(7&#F2aX݇9e2 mYB]C\ ^䣌elc[="׭TNd!;4b.yT&O - Aic><S=;b-;HGP({Eewѕce|rMugOnx!`FGjUWR?ID_`'cc0^8mI=E<`XYQ6(Da_ΚVcG.ON?^ je!B#6JqEE֯P\af)n[er$o]q?%p(ڰ̀XS?&9. \m[!^$YUtbϓ§0KR2xvm^-vWeJ66+҆?w`b]9]m!jiO(a̜l'{hFX@"0.y>)w?KS ARJbtk#p'T7~9W4#49HV"L;6r~6YH/'!"7WǾ`{+x8\Zs$(ܠRj')^-̦`v6$I ~`E|. łqq\3Yp֨\v%"1 T@5&ėF49FhȁuTG#77IS+L[/b4-}H7 *sK?=z@״5̳ zO9l*oJ+$?bj-%lv|&5v?oG=!LVCN xG;;"tLyjfkzUT^j3.Y}?]n*<q$wq(:91Rr^)aצԐ4k[v :C{rƗqb[N|޺btfʘ~6Dk1p 2H(Aʶ^Xf~xzz8S'e+F.( JwX[>u }bxـ-ڲ]/Uij^ʟ. ]X^*˗H'S/WdDZ rϣdai1һs ;-_9Gqax$H4:Fk{$" ]R꠭,"yY L6,1<&~9 mg6Qw_CR,h/nDhCe)S~ZΎ2ίޓ</oYj}'ܑ/1me*ua*d;EX:L3GVQA=0̎;y\^GdSbR䟒\z0+"y0&6Hq\fg sWi8V aX ?;F+)vy6-M:PE6hV=AxK=PGwCU%<&C : k/-g4욽wi"ѭxIw(û]|dwC`zMa (La^) 2O~9ϒ]LQ<):,-< ~upCiLO>Cz$7_XAS`C f{ߟjl;@%&@qqA憻 7ෛY1Ua`PQ.ӧx BzBe)EdӢJ/3LR6>[|zRsalrJ 37^ԙzGuKGy RuM"4-q`+OZ6I3 z Rp֍4U$wT]|3&)cLak`5_ Nc1mʭT/ h=>cz bBzxXx $ BsDKs/|V)0H"ϨM?oȸ%J )pH4WT^ؤ7wX1e݃3SNge9zˣ憯'Gx)`S %AsLO.*19#БUٶnT{)ir@)Eܕ r%e264<*եS*YT5gW>J;ohQ{F -T[ 'OWW0ʵ  'uf,aQp#6vD.>'x|"z "dX=B]< )ArC|(H@y_5(_5b͞KV (g=8OPϏՂ$wG0mDԂn.9m-HsJbS]Yi0e6]ρ%:yln= 4 Em9}~ߐ y~-H9C+qfwĀrO@Sw%=_4ďXܪ&uIܯrbA好@/ƾطfo0b,u(h`C ci '%^aB{S~gK)~%jwTWZ ?\Yo)[9=J{(܁yu'R9+|kN. BИE> x b/IKs/KVa'yƞs-oIiĨ˙jQdNC獒vPX6fjT'}3N er;/P@UwO]v=:K&ROʿCs-Xϰot+;A&Yd-ӧ+&_;ymjp @FjtS ̏j]j alɩ12B|Ye9j̛Ði\9^L>eT+k{XY=–~U&U_ǸВ9ڗ) eP' \ ^ i͞cY`P>0(3lhyMq i_,"Mw=0ܲyD_w06Y{W+y=7 H. \ТT 0/ ˋKP;h_m(um n]!`uT\]z0dy!}MZJ Y[ -GGxLj.7brjTqg0(`:`NJEbG5=6l+'/?Hh@+:k*|<12=GpA'k#J̏w=pb' G`4.x<i?x d;6qqTHvYA@ .L0ЏmU 55 6$wSebUŭC.^y8REƄ<;lf#e%6CGBLIz*F!sMO{lL]Y⿠*jG!-+TLT<6ES;XF8<ɞ&q` @w+ גX V}0s ^LթcwG p ^l^n>Z]kg_w8gtEh#^`nNw?[c[\M3*;05r\$HI_*w;)#)ёTs03Q5D>kƀ/Fe}(VVku ą̚A:+8LVZaWDaѹV_ópאEm(osw83F&Bhf1i{2_Iq K~`)U+B{xR:+D )vMQܤh51 ׄdkwQӹR5H~k!3|Gɽ?a)Bɉ@m. X{p*J| XmQkqߧ[{YLIBؑ"5~ͷ&5ѭiƔH&S>9hxah$p]~]&D ?ٕ:yBa'ս. 5'G;# hznuB|"CL_00;η\6ǧNx]Mxٟh]1RFl_$bHs/ni x>WzT ]V^!,Dtoj_|jaHj{ dLUBN@ 7{Qճqbۤ E'nܡgf겚H'ɂIdH{9ńb^ ?4 |whݕ\Y tZ::o=lн"*CgjXɛ||zkQ:':é7YW*Hm`猿CJݪ|*Yvx^,}`zCR ӋN%"u9ѧs;G&9IJ#w(ZoTaYPԑ9~gP^i2j_;e%`nK\E4/>(zkbq7{'\g}Ő"FBkSVR q"4OpNGwrܙy ۋx&_膴<~ +.ʱ" t6y3bf֖yĪY^]xpڧCWʙBl< r  ȯ⌲LqLJ*_ 0-SŜץ x:JvzeϙBa$zHka.sky~ W=ƢJ\LF6#l 5O ]Lªu|ܼ'M^fX8c"vXz]( ` K%0T0L]*c`umVȐR*< n4 K1y1 ;cnl>d&y+;{CG* fM#H$-ju2 ^\WHnR2Ss(W#3|iED#ƌu`έ#+yG=#A]6j?X](=O6,42`]捺KnYHzs_K:ZJ {3}Rt nH'c#DFh>{@3tS"ZWAw, :Uy X0呃R0eÑv%hԂs әrcʚ1,&A<`(,kvU@^=]" V.nc%;#rdIhcC$Xw/}8D+A0q3ꔂ4.x F-v*(^MLlF5^,Pq+BӼGNZ/;sKLTծj)1]tCܙXT2'# Y} ++.vX$ ?[}V>.aWl=NGTi[8nΞŪNi[t7Mf".|PʐThxBHy-Y f_ Y:<`&Yޜd+k9>Tlji-= چMU 1*C!]w X? 4u&i-}ջa˓6Q aPx1W؂'> bmi?54qaF4UmPAɳ<* Tp)MJou0!> 7&t& g95^r3J@h浺.Ny3~.14Įw2IZ 1 |ڬ^{HAϱ+]' ɗC_\׼Ό1?EfԬ]ߞ/5U6+X]hV퐭?C*_V y=9f, {jD,8ljU1 rCʸWfp>c؈DwEN)Ȭ`EП`DA7I1Qi}x@d]_{1+ok9}(i\E&+"U!gFi@Or1$~.M&"oÄQmFq6 GdJm>9"LǎO<١z!R@7ׇ^' S|]sC0^w@qx__[ jl;+y4Iwef?]ZHBDv\2^g}Y?$ C-nhpU4E%n2ks;n0"Q@3bHBt.g3CZ$C@3~!hνnV$Xf%vqD8O :ivݙFBw5O!n\X:gzYZqYDGq(P:菣i Nko\Zbj8Fl!/vi'ڍ:T-x^:Hi/4>kO/*R&IM8N]5 P{n!4-Xi辒)n8Ͽ[e "HߦNx`'/t)hP#41EYOsx 1љI`љqjP7y0E\ ~%zEh+`t{LW@vFQ"5{ZMAIۃWc nȊT.VI~l^!HvX3 nYW| F8trϯK ӦozR4Hb5&Ɔ$תmR3 pms 4OZ<+--PfW;8kQPZ `\p|!ܡov_<Ϻ5B=Eh y%Ջ~E G6c~MPL%?6t K+p@h͆DH EЊwdwMD\C+Ii/f--5X176(vUQTΑF;^^P:zlv4;5Wq[+ORb4pKͷ76e9dXf;cs$qLZ De/w}Il2,:Sl`<^'CK(I,'IAOUW)!IQ$:4ϔi>< kÞRlK0`fWD:qYhvX4{&X5]T|Öߊ-|"$sRF?x;,.y0f'[c`X ꗴ: ~b/,l|'~2u(M6UD_i|h2_޸pѾU^!$#c= x 6wm\ hr;u 9`=3_mA{|5+]MUy7uZGI-zzd,au)0% t蜏E'It6hi\G )]hjd33v |oyܫrO\+*h'b'orHVKH?UTd;pد]ܹBڪGPLr5Ik,aѡZb5}g\obK_ 08OVvhr9WC;9JZgP1Ԟb+>b<->w COVPzySDL@(V;s$$,;^bSb3u 6 B-#|8V*YJ/o \UoIGP R3! _4<*E1fhazU.>Ing:\iNNsgB 5`l޴g4g\gr<31;j &N#䡝YHՖNfk\P]|IBP/e1_9`X\:мuhi#}0ZJ-칍 Zz``i/,Y*omx %ӓ{LRٝ'`BM0CcOp[5<#u=B':Y Gx³$-β S+Ժ]ǰΗr;h}U\@uYCqf)2lv(x@*1 MN*U:?}Y/V_ξJH߀_(0W(@w^?9@f;GeĘEƥk\_vT'^lAX\vE B~)d/@1DtsZqjEdgOvN?8xtUM_Py.ОK"uD=oύOoPC(JnY6,h!s$a\cgRFl%'σȜP ܙ`v^: کTpjCBjRJɏ /X YiгF5~u@Ft()[ZՀ3[7 _v+v߽ڒ7zbȬRs;kViUZWf  bœ|uݗkqz)CƸ#LO~s4݌U_>kk|)x#8*^dgJʺ$gijmA-E.\ 2հf,cgd0yNm/*Ǵ XiN<y)J͘jLF y/ -$t@NsAӮ Cy2¶Y$t/Dկw b9E8^f7{Nl\VqBI79(3AW9uiN/7sszzQ-Pۨ'hNigEƒ+Ϡ=𳋅w!k;+eCӈ=KBKrp3_@sS_L|a;KO|@UyBS'/seţ%ZIO.2 ܾhQ|1Z]V4XD^vi NJkrzZ~;+9Ci). 2 2Ecƶ.bVڼ4( +sX/WR1Kc!xR#hSbJQl{<3)1 "NοʹpxvAo~Nd5c^]G}Ѯ3so@,AAbD WB;LIԄT |ـw4<sX]#" q.`#_ hݥtڜ vǩ˺;QQh2D`%LعhGE#eԶvEb '(O3|mkΖoɧh?|S< b` -!Qb0d+j{i&yjRM ^]t)KD\61 }/>^-B{B7<HYp:Ӆt V~?LsVT9uCޓ/h?Tz 9ק{PE e 4?HX6kAmobo0WK1Eo7 &ߋːķq,М F$E)&g%y >[k!M  Wq饝qZsU{C6>3+ڛt c35~5mYTkgZpZrf]Q;h[!VzO-c a,z0m]i8RX[ Z'QէC.3+4(rE ʞQBfYZJ&=pˤZB>>)l*1Wde8~O(y` ~&ж̏{'="μ:I̢[L&)Vob"Wnq ;O.`ΐ!A v/z~*FHzj7{삕C=?밄2*ذ+c Պuw$yÖ׀FԞ{:z LFC{C۬M&ubkIm44X@_MnAr/ [j%%GrՍ"b&zGKt";cNꕆiZ>?}wM3&{@Ȭp}EY0.*e<;7Oc@O6 B4jJ^ 7]!cɄ-+'폠>w1Zm*-\!| Z%nup {|Pz=5"g.ǫZ+0 ? Fr2LVKdȘ?lmZ Y< \"?]P_BL# {y z ~U2] }5iK-1w 1Ca]8DeΛp6풆aK*Fx*CiIybtjT{RQ4dsgbtӫ%%=`^ބ%X0x}dt&9]\^M{d|(Tgyb@3N߸}O12˭s=DkWLKtsr@K΀<>C~Cϲ#c^D>b Wٝȸ7?ĖFmpPûdT<1ݑK+xbٺBؑYmPTlnxs ֊֨Mj -SW%BwGeѲ#h[Bus)Z (&j9fwb|@~U89ȨXb 7\@2,!2$^Myܧ8֮ຢrE%Tׇ_NSu-FB&=Ҭv 0P>_}G7[,; n:b!|2%y?gc@r>xE.n|QVv fi7ac@  NB]7me\Ţ4+>,1VA!uU[mƁʎN^Z#uArE xC]醍]P$ʰ | 6Jz?k.NH':$o w MYG&jS#q~lHMG!=yYޏ Wk}j҆p3L=[q&KI/LGC1dQΐA\JVfN#8'Vfbel4r"퉄bIcZW0BiP%A0K6fw ּrCX"s7&ǚ!>F@D_S2f,H@ w/0h¥S[m4]#PB',&MRr)1Nf=",Ѱ(:D׹lkSj#/PHD ˤ0*QD(bX}*إ5KW JRԉ+A},) hءDhp>7Q[^6AJV-s?z G8ZuPƛpg(8e(sⷚS*wsHU>e23:wo۶EtRvkuKORb#~nO|'f KiT_Lg"ZmnHHR5qgAGlG_'C/r~ 72{3I EZ2%e/ A+|9}hSkLh)@\nv`+9/PL7bR,7IpA5%dIAv;,Ԗ4Li86ntև!hNй:d}}jNkz}Xv?AUͤ+ziUwDa0B)\Lfÿ) eg܀Ѻ>pT,Ttoں wri9 o{eRש O:qn hذ% gTnN/fcea:ieȘ zW AWs]굳dL7ײq8cfWb VLOAlN6ȳ噿tå %#-1"/RޞR1uQ8ʜVs=-q_Ǿ`ۓW&@ZR%ԾSX"5$OYGK36$u Y%}.^G1[c&42^H#jECeE[@۞Ur)jgɱW8`6ߋ5⍌MA<q$[]}@>J!+WMXSOـLS>KNzn\5T؂zHc']3'T}8UTca7)J\Em F½A~$F-b$JcpYG!>Zއ-oм~ޡ&b@y\v4ʴH;e˷ [d!Ly1LrwrXF*B\sdj!^Ám r@=vt;؝Cc'^;SJ 4>ZqjMj?77ysP}͞l)C"4$<'q- D"􇽘`Y)| << }J4`]4偕W@ ռee!?0KAR̄aLB=!PENjQ}ÔW?*ԠyÉphYȿ;\L0hm@% lUwȊ&3`RIS`EXKU9f`y"Yш;׬l?>yOl=Lמ&'۸M"mIZ+/hg6]脗Uȩ7CGBҪr%DW;-Q`-By ]Dλ$GG-}xK;&dխˋS! 2{mAJ;"a Y@Rȏd [n5:ֆ.7?~}0B#5L鱖Y*~r" bk% ,-;D $bhx e RC=p,aY5FݺƭF-*\+?_8HU:gN1Lq VJ1bf?t/cTF9?4[{_G%$zڄܙ\sV vW!8%ȷ*syCb~`( k T4f'ƀJuy;<LHZSӠɳ\鳌oY=YX!}CVښ&a{( hQѫ[h8UQz^@^)0UoTpiی8B9 LL6/g`g @1CcP -nFa6%ދj׌kj8+me1u`g%ʈ#)2.-d4QVΚQtBp4D #T;y' O1p=TVy6Fk3=T$*./ A&=mpA*gH]L)<3ɋk52[f#ըxECgL#;P.HTbX( 7(y޺Lz#Oc!^]ETY2PˆC`o!A-ЊMvX8皐 ?G#n&E:>UA;oɘKZ:t`'ئcȗidJ/6 \ Kz;T$U *v:TW`ɀņO\hԙp`%4SbDY"zU'Y4`=ב:K _Ho ^;F RCs֮ONGB1d~) y`~|z9[tGL̈́{ޤ:!LD]n 5ueNEZ>=S )Öc5eVR62p1'^Қ9m`+nQsվ0(˨}- N۱#'kal Ҟ˧}Ufb_".tzKO}c9` Q /I+rƒ*T7yLCRԣ>J ?'u*?` X*3-)D:; jJ80{Ðl\U6p n $?6ğpяi s:w@LkNhw׵:>Tir@BI5mR֧?C{".Om?amszS*1!BJ%iFfhΓt%bUJ3iR'̮mx+8{Ԫ*IeaY1Pw)eVzTVՠч}(~K4~6<[CFL+Ar͉yc]S<(% R_L sd؋+e mhPRM-N{ axx"<[?q'wӼ_^ p|RBL0$)9~ h R_UbBCj4~G]92[!E!KpB/C"Autݦi#bqM 4&aѦ&E")ܷaYV^_S1~X1}Kެ{~:MI G>HqTA C/ZhSqīʿSd L/CF^v_zFueLn&Ev ul P,7i @&\ZB3[ECXI@7kGyOPSW|g5U+X7sȼ8|ic;<Ϛ԰z$ wDYpqsNB_MC'1Y.2)۲"K6 5ZsC2Z@?W\HTﲟىc?G_&)Jby;1 H]07C,oMXWqwT-{򂚗g;R}ɷB=)Mh%+ a% caEm=?Rta~K :\l])`Vt-?A!ۧhfn 0xpK 1m[et>);y̒ e\7X6 2 #{7,X+:+ܱԼg-=M/`wA| 3́2rȼ~{Xa Xuk"d!oAxLN^G&GSi?&<6ڵBNLZ+ˍ96@FZA u40l,^J/)A|ls7@fGRclqCI.ex0Bh(.utvf ])*8P~boϊXa/x( >8WD/.W PHR)-).BXHj}͞[8WmQy}ŷBֹl__lzUBB ^RdЙhA{8w~"v>) B5l,tpPuD! F8cmuQ)x=d$5.(o"om֘-ɫ_\8Y&xOۄإ*BawX0 uzmԙ~1InC}HV1kJkm4Msrhs._tUa (RT&/F}v/Y[٦So6uUkA:PWz<1X5VX^.mlx]xS\& ǔcl!ϋDž$;c}XLk,\ L!֜%e(#CMf񐗞=+: @U5N$bW85‚[& IƛH Yw_㬴$,1xs\L }|SݨPRIp*a"U5qz6.J> J!~bc+5MVv?boxq]n\?fa)vP 8Q xhQO6<%uL[>h' BSqW/;.-vcɨl{oaa\@3 0*QpxhAG/z jD~ܸ$nI| 7x?+ٵw❪D{Ls*gz76H௳ gj:aR)V$ :n΀7YIZI%"Pv(>ϛ "V￱8S}=[|2\m'P.uZj1A座rD4kʅ3Eh)6:':7+Fktdndq[܌؉x'ש73BY9[IW]4Ob8`YfT*PrӨ(A0"MM'S;Ken9zx1ΏRX}5CGn@\?Bo>d MJ?U23ЈdawȄaN۹9(? ؃jj!ӬK?/fP&t /=Va࿪oF!:*c[F73* L"Ai*9ow{wyȔqPHIt !pPNtU/,oj:V#no?VlHNhq ry559şި_Rah`'_ڶa -zx=<> tС 5u_QT`Hp0X}W[Dӯ*]Izk~S+kK,:G"4@3̢ƬNOG}D ~a[0/D&)QNbŸA ]b2Fe+ʃQ)s7ˏ݇1 3$ 3\CT"PM=]dW&v.%D5zΨVP*vCOOns I:YsTt g&, v~SRt98+| 2/2p$Hj>K\V3:]X0Y#buM܍Y%%vr<9/CIq% f  y* s+EiHЀd9I\7wpt7T/͠8]Һ K:C Vin`zx y[5r 50P [4U&eiK3.>^f`UMA:Ԉ 1%/vP)A?F")GxLbLI)nQX]}&E, 1QgbKzySNښcN|;`jUD}B19\B;M&KY"Pi )pK%t]7X=bَ  gBmrZak¸"`66"/?ؽR\.<lP,juy2TEP+!yb⹩tlK֭U@]%X7?]BF5ԆhWNy* ` 6KjiTӋB=DC}]{*`欺po\5t>]4R&A5ޗ\EvI͢'}6/s:L^zFXWv02o_5I_X0I3Zƒa]{h@,[9Z 9'ſ>sлiGx+̳}N. <>^RyCkvh(* JeNzE02l:*gcC\[1Yl/U+u3dI@"oݺ7*iVU{Yuщ=rG.O;EW۟ JN܆ϖ9QJ79Gm2IrXRdNV)+ ΄]>⟃/Ft.(Pr~*⠅?lOwzӬUnL T8r~M`1&7Q'q嬴֌6\)0糀3+6gύ1_ ϧJm?*J T铖uP 6| oC6=b&W'16;AIF5\H@稾Lj }J_S?=b"]A$@l VC^r<R+ BԒm|߱*8&]FW'#a0Fϒ]'0~esY< kmAȝk/o5XWC9 _"hBh/5=>%B{%04ܜDrS4ΦegA4|Bu'wƏXnUޱ6T )֒6^eߋ@'R,mjact4Bv$;aFӮz\!kYeu,R]E'Dς[>"4Ȓ$*\XNt,GAӪmQ$ \&MLǂǦy4['.Ҳ 8vV[wskSAg?B~xEx#訹Xu"LvҰѬb5}J-VWF6Uo81јT^=pw޴h"oky*7 {[>uC5mُoq摛=T vKd=ݖm+ dw3okk5z: xw8N8zI]-d@,bxGC5F{ k6@R:m bJylB5Lj|rPabL4zRYLTn/̆e<=p]gb#%]Iu+E6)O&χeO%_gݭlgcǵ2G1[i B)h'pH Q2'./q %knzٶsJ,z^$1,2*1OJ IZ+Fjf=]8; ^^T/ ؽID7N¸@{yÁf!O5]g-R-;Ї^Z*`"HC%Ace{sV]{%NpT,|$Ч.ǯgX%8[WtRxz) fp1s+tDE4^zZқSig s)ɀC`ιل^#4&Ӌ/F?*Y5)v!,V쾹Z4p}d)آ{Ƹ{4-ҷd`c6@+IXgfr* ]aTpd΃G C,aLJC`=w/oڑu $ Żt\Q f#\hX;KFIe{9sRw*,m3_I¬`ޡQsX7T:c9'[z^ ɳnAM4_nYosB^ϼ5DuEnL?RkA‹;+R\xTJNrB{xvxκ һAt*YK[j" %l7<ܖ7w%~1ԭn̥',|P y ;S|3GQ{Ne]B@KLsRQvkԇJL }yrյ">+{!ƘńK":a*ox9e ţh1$iiԍpU$j8+޸˔zpS@SLo '"KKpfNq=)dԗP :m w%U`IE!̞>"8bnbt Px-5Hu3 d|T$?^θ qC0WiG=$[ɰ  lE߻XX ^Ό2% GBKcjpc0|8~ 1jEcmsQSLSr-(‹jl)v0!aj(f OՌr!mh3M$Ńj[I Н?,'4yM_<I]>gթ:!&XNH ߧ E !{ǀّl407=5B첖߳o'ƳN-UXO\qK5LA9=ۗ8={Jˡ41-6 D o `n_׊rI*J7`"YU=߶եBTd΅˄D!0ypAW?- cf4-}QQb̜B9%)2<0N5șb,79H`xc[/j]J+鶭fJO .'w2V\[FlrPW!Fh2UfQi{w `aԍȕU㟞(Ч?xu(f"5/0sV7?ڀ=v  Y`-"+FJ̟#$.zIfj_77k7*fZGNA}gXѰG3Ϧ*֛Y}A*ftHFRjy DXw7!sd># 3Pg¨[*ZN3Zq{_y79 }4 ks(p'e>fQP=hhmm0CHà> C$D)j%!o|a0,og&OZIUXs|_QZdz@?l./X BrbSk@mu76hfF#?Vqe9/Yxu\O#rnй`6KA`C S1j8C1W.V/=5)~1Їo,S r ~-X@1% ϊcoٙ.glvjZ }@ζͯF8Y Ǩ&ZS"{@wX꿴]i趓 -֩9DW3xA;L;{c?/YXvCxqlgkkoe]G5fpA&/ڃcd IBmc1XZ&wu`2iIth u= ~#JIoLIw-M}>PVPP:LjtLۥ'N,bk2wXպ-hr@pޚ!$~y !y.h;Th3%r{r`8kg.!'"gM&jL48+ݤi 9HsUND4KBK(FlCH |sSlcMk?b?j驟 % /Pt 7O"g'?|"5 25KI6T)%,vNS_4TUֶ&P4\ΧqB_nj֛zQ E[pF5ʐ&1D%y^QjYzy?RS/IbJi DfTxv)Z=N(*@p*qΫKi asn0Efxn5T8IyS%~dZcvJ 6ݡbSբ.8I4SeV`ti}e}1OrT0}!@7oBCQfA [PuVK%ˢ$()]@GH ȕ%W`JF1T$PYmǷ=7=CVfa%f, 졥S6#YStY EniHOI_CئPkR( :H>)mj9:C+U6@~R5i.甫33}C#Wْb;]@8!2E h@t7kBmYiZ1 ow)-qclnz iX ;5_&6ڰӉ;I>Y ke;Y۵gJvKn>S򜀁RU* 7clsLV*aw{rنr:#>a9%']Ђ&Ԅ4|Tz jWM Zփ2-~kh]qnjU#+Eq>&_9xDK[JI/W j{|aXKn/05eW.Hl5u<y\RKٰK-IX -̒d[Zp)dX/el4/vo| N=9_O٣)("=NY}/t+f$RHeoXt5-PEON,[3dʙcfoxXԩ:p1pM6hdNCzHX5Vxִɼ{< aƀ\>b\8͒2TڎkNF<.OE| k|}ql.Fr`D̻?<틕N,TH\iMK5wL[N)KsaڍJb2 8t9ft"6CWYJ& ՍNuRxcV=$'I6zN%Ӻ `YhbKOkśiza/! f!‘0c"ƀ ({4f'z8քv0$o"~Y0RNKP0F+iE4[hÁ#c'qS+PŠ;$MpWn,;m+wHX 1a[r^sŨ.eG4_;" PNȆe.X:묷yLlk|ƌ}aH=lfyrpfPp7%ݖ9Wɽ33k4AF<'/i46D'EA^09cY$.l +/f/]Lt4삮gj{/&Cn 7H_?x C'D17P34*͕H! = |3HTKZ=mѢxP1?CP>M%>QU6M_'=+o;e@j,A"SސlK_k7k<ʯT2iڎՕ A[{ s?㰼Ò9QGc;84'x-~ӊs6лN ̿)nqj9fvNw=Y7a7AMUҮե]ї~dnmXiyy {W=:=b(}]튶vSOo܇jFdoj.Dlso6]GV :UcP)BpCy8`/E$np>pW. F{"Wqivj9#b%{0OᒞIN0Å! |=pܘxBCK"ʕ?ڕY#4mdOmEq^o]O s爿jyٱ 1N OH=èU[Eއ#9'#+#O"ՒOR8Ju$ĉ\].8)7a%)]amA:V}ߴ cSl/'d$ö -c$r!XOp&:50aׁmsZp2D:aY\J&VA=@ڼa1>reK\DxYC :\yu R"gEz-/L,(.(lL,hassuJ&B#Ae'ܰ;ΈpF54uA ~q<]n(s'Ć`^vg a(6.+t:Q_F[Ҷ9.4<-ΤwPҙ ʹFD*G=J}f'sqߠeUh̾|IG~(@-^F .f":ܺUWg!Pt"3ȄHXo01}h\&1قKL *m] pZP\{Ƙ1[[f25Z)m V?i Zkaە$&gN7LP̆u酩{k8+^keR9* 3WKHWHfZdqgDz eY$nU`b-ER,y}SԦêE/wMTX1e++ҺY#ԽGc&F:٤jc'yyD4 EkBCxIB\zaSQpv'SQފ<=sG{9,b:~жC_8&otۛ5&wy0 wb2#_¼Ulh•Oc7J0F, s!bSFGz .eczDuxd>I5Ȳ4\hmmD Nr@DָSu彟HV[CN[ Wa@u2[1v@ztXk=gc pug(D9b7@ LR#iK~c* Z;]".^kiQӈ prs[ObjᘽKߌVCp[eHxQKiΔRۂ `2?+ |bU 3TרK ,;*ja OQg] Tr@f8,A ß--~hG1䝗BS N/C>#@]364`7BCsRSYίζ;Ybp׊?r );hy/E|#~e1YtI=Uh!vLf39*(}~wTr-Eb_ yR 4iRng{l ?խ~7 K_}h(@wf=SkE-L)S?m|Wåa^' Wz72$Y6P =8fFc?oETFy@lQ9A&t ͩEt ;j2i.h2#K͜$NuZ6?wzRw^?/Jaj)u@bi3JR*~(BF'۪kQ*iHKz3JU[|M^ ɽ`0i.gŠ&V8Hbe}|!'2k^c\_eBt 7=OA{S'=AדFzEj:}w]’UufNt$reO/.W*t&kN]{vJwc` 'xۣw[]AoF ARdK(&cj(S0@-UO m㝂 s Lt9Ci>ڛ&NT#MVM[uux#~ b,9ɮ!.K#)^!N?TpX0dV 69̈і~`}3<'#!a'<8kҨ _rU${҉ji~)nXKzu?j+g2A,VQʿ6*UIB9DƖP9.(FBr?@,69l-k/nѳ+[x&Mu,\r$ *'!5_bˆ.$69q3XU|A%m[_?;}h 5b0> qLG+ZG4CUW3g"cp@0`O3 &p"gl{NMlu.#D"J WV I~J1E`֤д:G*1 g; O\ޏqX\r\agtGQ+qR7{ܞ^Nvpz9pXꛜ TR7$XZ3me".s+A<%uwtɷ*:T:HLNKgXSnp@ W):@ A&XF$:-7eQ-Q!dZ\=ȴ4{^mZݺp,6KV +ZsKg} 5.}Z UP1)!Qhvt`C9Mwˌ/teؔ AOdYIb-I} h4%ڎߊn-3р0>%7f2t#@|qBYqZt{oB1fG{~^8S\kh@BQi{tnp>jum`ky- |NR8+3[9k}56kQŦ 87ݢOoeev.g'ʾ1 Q(40~C\b't5RHOCb97>Ygg7aᩛڴ7F?%+'o{Z~6{H_}d'-];&u' EK{{N4l;K}uo:; n'˓#lNjk4O=> ҋBygؤ2<$?+s~" Uv/ѴkS&bebw@jfZCA yjߟw*K:|mPEl-, Eݚ:DfAo4mݮLe)`\+ k|Ë!nPVxwͧT݅TGvmJ'^v^??RNrNT*ՕLٟJ7FL ibO?DiR~`N~cHF;4(r#x42Zb-2gC/mL-$ӥ[]y]5[%*U-N>h*+G{&p* 7sz;s1X%.zA[~0ZsknyKvyJ8gKpAmIB\acq0WIOUh&,QS 8.uAM칯_+|i@/jL~lœo̮F]zh_?d !^C4 #Ea8y[LE[ty+GZ8 S%JP`͂W Vr;A÷ >؆,\$R]['Oo!u0*&̔)Z\M (>;Ϩ_hc{Ns9-u͑J8l=ԇ$oNn /Z#hrtb}v{8(ر3ܮʚ;9v`G]6uY9'ҝ/OIru4i*C]g34n6Y|kn~)" [qr3uj1葁kf^xz&:F?|!1I'e.Ctc+fXܡ LmT#UJ62 2!6 }BBd Ig=;m84Sӣ@NTH6j~vi "ˏ1D|=*9Pޑ8HA2) O9gsX):J{Ib`jŃ4u*̟ä7Z5"dq|+%}"`G5 Xh40lx=~Fw^]B,\?ƵPΠ1hTF8hmHP^f\cڕXկ FR??; V]\W0{qPGZ#A޲ЮҖ_qx%6S*uN /< 躆F0OR\ܒЫ&T3G2dMMPL՘B Y zS|ԎJi%!^ Y9I2L֤\He!OFo*D)F\p 9kǘۛ]԰k .B!wꎘ+Ɣ8y% H>G-okL6ߧ:4:{e-2RqXӿイP4a]@O6|`!Զu?_}6Q&WΟ'FڍBM#edX --"P!EGБ Dn:"ج.;& J%lT[j{He'u/)7.C-Q$x U B {`;A\v9YbD_1Z]AEZt0&vBa>N58gUa\nz݃ ߇AxT,J]OBF"do7F,ԖI>E{>UQ@@|vefN>qIU0{E>/pIJs)VH\RTsy(_y/42Hah6n)qk^U%ٛs}eػd{b288͡EO2XhpA `^IW~kH=I'0GrRJ['Q}Zx^?3)ҍ^P#L*^GVzfe-I@<_M*Z[2(TeHHE6SL:e1V/@tkj=R_ӄꩨYRK)h~^$KB-V KBQS,C |<~&? !*cHJE +#^n㎭n*ak^65Ƚ,pQH|6WefAn$QJt-u h==Ltxshl}֎s=D kS #$Kޛ%>ǩq8p_ $itqaazƆ%юþ0F fdT<gܵ.e2+Oqm3W꺝:C;rqdȨn&^]%CPn_Y'4Gr>>l޹[RV8rm`EV`$/2CsKI]V quxSoPe|LBWR5-; Oq2͈ WT͎i' B Z"4Zp995LY'3SѤpd`gTDڗ(ћvinT[JQHQ"~|h?Zk7r+LA`؁ Eg _e?gg}̉(Q=VkI>56O|,DbűKےG!<{P嚳~p4B8H/CXwχRWdC,jItL@28iAJ8j'g_|s% 2+W -%O!ʹf hڹ%M(" cbr}hZcHcZ{[۱jua%Ea—4`DɶcI)\qΑ}i2d92q\]EsR*.b*zS0D䏅4w.'}M$J!MXZ̝{ME9;1g k7N}VXkQȸI*+7W=5N9X3L_=ݹx R*tND{-N{DuQǤ2s9,n } Zh`SWb)[*BE&`1F˟@HGAut>&8'CSjl3]jp &,UɾAP8NnH#ldݗ=VYUw0"g&ʆ?/.e(s+, 4:B9-]q͛ARoA*'+ 令 R F*_?[9d,Y8?7aOu^ O%\dD5o|:-o(?Y0VIEmFýqBTt>4'^.0Le {*ʝb.5T:P Mt;20zXȇ#6,<~/KAA=dZuH{-VAQK5[m^uTT"f3 #r5 : n8HĦ.¸ CS?Lwԍj.;-4- 2*ᡵ=><컂\BQX6!k)`/oXsA+aamq"xNWm@tL^x/%\:I8 v!}އ,kK\?z#a| 1XZH ˚ &rk$yd`|b:!_`ڕa+IM~tDY&uAm=O V2K bǚcx's ǎrȳ֗>{'4Mwg1qLQj2VޑfR ?D\pI/~Afʔ7[襲$lt(x:RP@!][[m)ՂV@xpW8B') PUyHjcY {\V0dKGe?5=j=b$u&Ҝpd1/n-^{5-1%/%~ȃ`4@cfG"Q/1Vb3׆IcʹN0&0))lI`m.zso-?XgF`'~hzwBmA<&i4%}uVfx)_>R7Qs\&lW]y}yCl\qN j͘53p-!8tց_ PX^48L _F@netbriX"C$,h|05].di9@mz R7\Iɽ^r-?7?ȋ"nKOjMr%S\Jj6>~Oo⊋8q<#Ok_0yPڗ%Vn>/y>X;"P\; okV5@GYdLJVL}A.eCMi58 G2 I.+7t1J=ha=VN47q5QC'R &ӃmUJai6H(;skpMtySϪSVh4[uE,!92fݤNNG00߄ (Rr|ƿs=$ɱ{TƔ`"$+cJk]ߨnk2+k_O#' hE֬f-Ψ5MݨnV@U~ԱY%ҦX) )$w5&g==mz\ۆK:7޵ :%:ML$\I 21&_tzL=!^>R ȟj`WPhM{6T8^Ru]tOΤ:[Iqx%yCk`0`mϒmS%UsZp23vtq },%8jEdUڈm |KA0)8˥XSy`5LX w6}hrveG4"LQTR ,-=Y|{{/lJWT;%*eVWlI z6϶!hN+'p|ݖdz 5rRI P$-WiRz[؂6~y϶h$"]1'Z,ExTcȱ ɶڿzV9!q+ (HpEK nYA1db䖶W<kyG"L5~MYfimT00 *啔zY}Je$[s fV x8;ŞH5\!O^mClˎH&0p`o8)9.[TV|{DvN\be+MP91ɮMIgo ߎPɵ?ܞO?}g@hX49_$-9lڗ۴o# J 0(6lbcl*NۓjR]{/sJM%ߨf`mkwwo$<#~|a5G lV ŁٕT;~rݓY10|U w*(/k~S;G܄?I1ݛtBPnkB4 I=CaE?eQ)IWok8)~? AktFӾ Ru2±R"sz5z`Uh`<ݙD##(`0V+{lkkNFkThAW>8tJٓǐm&cfmOv=&4ޝ(4{EJǐּ+)EVW[Bd2OhasT1׹`UVF$t Ai&V1PBUv!^#Z4p% {VZ9*.Uq郧u$ E6|Fٺ`[?KϦ㨲;P)7:bdDY,n1!fвIubⷮf|h4eRf/+pt(j3+K?y9[ne8ʹ~{WD8aX$;^1>?mgsjYv,3\y%M5At;(90ُbO3`Pr#$` Ʌ}qv轶 Krij*<>i'˚wU;~C'J6|ԛv42[Ht|ĥ+TIqr_a3QV۷]I/Nooҗ\VN> mvnh.VaVpPɬ1ff9foZb۠_$&N]2;I{1N$y2bk+$nq6u ~h/ͼF;e m+90dj v"#<Fjo NJPߎ~x`*H/ |F%;a0+PȂE Tp­&`\ ްULMd49,Ah NhԳtQ13fx\AgbLA:r$xɎ] "%ȞQ.*8E2L3 ޙHLo M^KWoFۏ+ӯ^s:0pW ՛TߞnEyZG8^1 2ԿrDn+7&aFwO^y%9 : 5 "!`c| IiƠ)mR/䙧G),QgJ"buGI(HctCV0G4Ē R_UQ _Ġ9Y_8&KA39kzž+pl$~CZCV ki_M61?' *޷)b|/?t95vWN5|+#3L-K ټ^>`kOс {k/objz*R_=v3 n9QOAodD0j;\% 3Igprr3JnO+.=nMd ^)i>`ՖC2W:@4IX2;bv夒 ;} 7`_;eC{l1|mGK\KF1$ 97ѕNJcuKĬB^3M2%˦ێ V+i;-[گiϺte={%$ҚԲ^?L*!)&a!kղ2|U;OE!tq%:x1d{%n!]˄ Xs7va&ݷ o3-g@?TU3'.ˈsdw'G^v]%yfh̓f_Fl"^)M[qkkK3&z=#uRTS 9ȴQtHr쎇u&ܟrR5V Aڭ^f+!S+^ǣz6}0>_FN]}` eşh2hҎ| FZW9`M/+baD>p>|Ϟ~L4u[@ŠnrNEGc}[dyNW(ahwg hJiwPJL_EG MQZwdO2&+hXcN^Cy`Y/%0 m6tӶn@DKN$"N)Xl+R,WO ,B(+P(YiWHHRK[.px'|!VN뷮"'7 q/TUثP}N ڬ+{>D5P-Z6x2/38aב3w>kȣW3)eo{RFWL+ЧR[ ;{QE5[ORX&)j)Z I*|0s騻:[e3u`uEmOA͔s5HXQvI2w643f $b[Ƚ:%/sFZnK?UH6 Sq+y' `p ̜ >/jga\̉>gUa۫#Hȼ*W ^,xw y)RH a?XTdaE!ʝ%i¾)߿Q:zDV}k{'!+-k#Nch0ʎ̋.wU#U^k$NN}zߗ S5:ִ^tM? Tc,$i-8 XI7:q"w!2Ezp9w)O$CC7OG\`W#LU9kβQ&$mb!;J$G<{pO@5\ACC[gW 'D@KB80$B1,0?(>9Bai"8-YP,pܢy*[I`kR0~~YF Lg<d ;3y Aˉ$;ztq_ p?oCve'}PY@#w܃ sו0Umq\#z}WStB^~0.,nXzUZb$Yz&矲hՊn_Jrd!V(æêۊq!TK̛U(5!?YR}eb'Q fYtP8v|@xyN0Hz 4}[ƺ>MaXjd:^mN)I~kf ۬4 _LJV[8@.ǒEAV^ʃT 91h83ը]s)_ޞA|r.3V ֥M =IZi*dpUAEΐox`37*m0voWP\Af:KA#%!K&[?1|=S9)*uD`ܞ6󶭌vJMJSrﲼb74G0c-¿9¢~mCRyVr]{NdBk15q\I|wYnn]]*;N>\1v޹d<Rd+ e'IfX,g p%n`5clX&a 1uTqNUٓ$"Q KPVcLK˦kFɺ |&< _^V&LnxԐb4`miB3+̿S-f" %Z>x<"\UKWBhSMj_ ]XE9ʽjNYwdзJ*MSP킛ޓqnԒLB#e켋"s0;& Lc0 Mfú( lZf8O*LYE؛#n4h<:NܦX1"d^$_E" bZi|moYS\ l|NYZ-Xs>9+B:I Yr]RR[q !gb"zvaNzQ u$hܫ%<9:m2<80֨'>#ʎdl]y4хO=Xz/7tI5lDŽw{6MǀSs0\.lp<v$^p?KO# p~֊4M~#yhM-) !I;w+  6yҠSp@8B^e +'*CWs)Hr|;o$lSӗx`( ˝E#=;>9nRA\$b8k<ǒ8@A!,d#ЕC(x+&60)_| @.b59($(z}I= ہm-,]/\U ^fb}xuǷӫ>Zٶ-=ZDee8QMTyq»_i9*u=k圆8#]zD?~O3m|n;>fr'(8Q][HO@ _-H [ _srN,vh"g=a2( ftHwV,ɖ-l$SF4W3z=tWd'_j|>lqK k@3"M xEN~z$:%_kaB 629V"|ӳZ.M'V3ad +G< uNNaߡ3*Q̡ ? dŠ򶙩';6`Q-̩/D_ځ {v^6N^$"k+a($_-TaH(ElvM c BW.AQ\>\ t0o1Mnϫݶ$||X^mL"k9d"nhL,7~g>].dZ̊1Ab(QlQY"d' hK/݇,6x*p̛GU1r=X2C #1:WwXh@dQfd*NP$WX<̰v//QTs25(2*d;'m&s0HO3d{%-K IZl"$sK'/6(۠x:\B^`{}=>`&2A[;6p s6q\Q ^p䟔I_9cO>(6C2 ~He9H:w!iYyCkB$9N~$>'ʛWq6"jQ Xb_e"%(P+%ߪ7RJc_7;!ꐸ2^`vPQp9n~^0 y Mh0 Ql~ vRⓗ߽۠=dpÍgQ05 k4咜I"zb㏥#/ {sYQ4V`%rCS-0p4嚇N`b?1DnU@LJǞ0OQ]=nAXOI_x_”)Hw'͍I<1I%;A~oՃ&UkIVqĻ';vXH^u1w,X>K.*tR $@N)ƏR]$9As-. Ur.Wi\SA(y4/\ WJ2(JoR~Fάvgr("YͽZ!/.K'hywnu0G A&΄>[ [Hj_i3({tn@+@-7avWok,.g>2b:dX3f}/-f,.@QZݠPwa埡5#X5%;~^Ѿ늗?0%{b1m6𛷇IF@Z=w?Z)nKZy۸60V[_3SJzC8H"V34}5@+F 遧ewYoWv [U^w?z'aՠ)X,G&?~(x~ע'N%Nm]&F"8oV75 Ŝ)4f 8!eS4f@ egD<7`[)2PM~6vWu2c40wuSΚU1qʀ81F#D(Ӓı17K1:m śDkG`8p(9!gUF4oƋJ79y1 RFaE:-tӾ,Cܢ#wG$ H*;E7?̀<$r/ i,s$1^2;pc 5uf=I^4[PhrMCɊOӷXܦOBWvdZi;Ps; qYN&qGer'cjIۃlinĄ^%*pÖS,3;r*?lk l菿jQ!UVӒi>+khԲ>>3.*V)~ ia N*A~Z:L9J\K7+`?"oP|>T P ǂylS6d+8ܖ=+S``LL(|(-3N{)/XpKn&jڌN18b/*iR)P Bӈtvbz d\cCx$4KywН.nB@JI1cƭ[{Lgjʝe_a%2r@^nUԩwU}!lwIWQ'jQ]1NB4"j2oU-IeqN&N2O*5diy# OQ8hkI-qX^U|G ׾O~%lZq=b.z[/j!݀:~&k>{?rFm4gIng7M@c{`%6lh/(b0s%Wv*D\,_zo:Ѿ;_-m2ɢow - FqW]Іhf|0mAq 9WIqu&+TW 1P'-+VJD&Qp48yiGHsCU?+ba:}Vx]Lefn4"=V"vU# &jaNGgE$AVWf+vjV2X _䲟ޓ=kI0'B ˹Y M -m]ɮW:9۟Ws:':VT2*%< =Ed%$a=mwߒ$4}h랢b=>$sE-ߴ*NW麹pFٱo>"aД+<'z. "0J<׮mbܲd&r2Főz*@*!,] ;݁\,@"q2:_jo|p# ';Z]# P @.B$ޙe ~Ht@& ZQcl$6WHwlDa64$rS= -,"ZO9c TFrh!+5x>rM"t)TͽLD_8Lܡ.{9/8%B[99zg0@D+nUvҥffwޒ!0_ȳ,!.Nq((k֩6pA;ԗ+%[\><~͊|t| ޕ!do#iM̲nsmld>Vߓ*9CjS_+ŅEV?i2f1hd^~'}gIAjir7f?BF#Gu^38c*/3=@|4bQPM\c|𭐗6S Ar4ÂxT m/۱g޿C:8HחEW쓸%w*]i24k)|~=Yr[aw|vР oHh'cWSYr M#:(J4="; ?=q$bڱޅl"D@1LɉveUx(ؖӰr &_a~'R2RɃGOhYE}~,5穮y~UP#V.-Vb Q&ï4&ênS}wpn)UuJY,#-zE+0&i6hɴ I6yIފC 64sZ" 8 ۹Ӷ)fqْJ Ǩ_;u`F4!S8Lј`|yʺ&݁,Y 4eS#`ҳv4+W_G7 oCӦ|\M[>PY4yz$|ݏ agA n֝mH 9wHP˘s $pރ但ya:b煮T5UwLY#Ϙ4aqك?SV_;Nܐ" (?u ~NU4V!012c#UXj__&)UdI%Oy`HJo uExFJDt׷wni(8~N}LŵK3/S tgfCĭ#o3?}gK&`XF`/|M£#jK |d2-fRL rvtHYjxT|p*d%8kaR@|5"Re֧I.qc=<72vH3, *6Oq_p u@f_AvaH"x7ߜLz54йH'Xʨ6& !Z*^CUJ Qlɥ/Xt cË:m&'eN%$[`;FyJHuQbU*2Ôo13M1>jqro [#ړxОV1"nVBa& EX>Z5x/ 7޲ +瑖U[P6_ JWӌwlWx驧k8UwI"^WɗNlCդHqK ]C1]+2h4 D`^>bw1S/"^[چW&Jm6(Ip/Gɐʸ[pШRn @=0*?24/q ]B+2h!e1~Q骣j~k_蔺=VdE!?(yVЊ{ |{ tRWdЄD#NnRs Zl;%bn?$Ďgh/2;۸S@UX ewf6 M}AQ1& Hn3uﶨ0Cjf쯐kԂȊUN\P< umzyYPHrJ)Cfp\.GU+/2Vm3IK[5> >4PJuxO-,^Ebm5 ٽm$I^@GºSF,lM k &[t)XBR2Qzʉc 3"{1)'6\`**4-N HSUlkHG/{f),.֝Zl_A[nW]\4#qgx:ϙl 11 }NW;$% !̿*pF|'Ø sӌ@7<,R~-l׺Rڶ._)9'K H{(lII@K~&ArqdD=&C5!~a%q Y-YhQY)Ws.+wI}m_Cõ^ݒD\,*!,rawKPW T-ϜnɮC`b];O3%Q9LxfsQHu. -YpCUo%B\R",GHϜ5C6'&1✿$pOS\ƪî+tM@ =QFUGL$iw2(yҌ,k 7a9vqfNd]B2;!hÑ[c` =h,}$93Q,+D VjH74PV84/ؠJ" %+KE7#5*y86h&&΃游&"ϿߨT== ž"ҥ?4ލ/Ҕ ú5.dyͦXu1 nrR@R( 1J?c-+~)QuȰ9(H;](ߦC+I?1x $Mט {~f:Wv2/@˴Mנq>-8@K$|/V+zqHNdJ0'5r\T nXںLՠI4_#U$IswBr ;k1.3¯54`%de?tW- ڳB-v-QBt5bpGֻ?LC.Kj\o`8(h35#XD X貨4Au`Q˅ V5 WSO*I>Bhc ';8|!G O3dxl%Eۖ9) (y˧#P%'ZyjuҸ1!#E*f-5O7T{9uTy:.PT ,!G^FVk"7 o4s҃%$֩Zk 2T[VdA@飰:>HKo?)[l^Ó",m {# {m|nݹo =־)BA"TL2RI>)U$.H\o.tO4?'""ڥrcvJ3Ca<9վW`XXdx9N+<j^Cjol ٣?xYA)uC%'1J)3ACg 77Ydd*@Fz32Oz7 {ԉ3!!,NH=.J6|RZ:;U9`=Y@Hl=!. Q/22BA>8'{G4vWZpV,JVzN\"%}_t*/~bo:MضLtKFm*kG3"ĥLOrf{7*<tGO(\E67$M¶M^ RrQP5MŰP T!xrNgo"df*NF4;DSfPx\A>G}w~;׶V"T)ULzWi˚ҿzCy¢M/JR+M[ģ^(_kL/a?C$`hH+Ԫ`[pUڄҤyp^'#B*&VOXNgK}V Éh児=OnSW 9oY*NQA-`ОznT+-lX)DHx^HI/yz6mMo~ Zi>z &啘0b}e;H3P{cd%~vxp:\4-<}vQ8Yo[[ti?A4(?Ռ!>2%燗(DQb5ڞ5zL,۹J-beUv䨖H׏Ö^j<#ӆƲ扣D&h\ND |$iJw*w0LeFgq,Yp={6ܳ gkb4hBQ" p \cw,7CQnd向?_}ԡ0 ^pFK8 9:pYUT,icf4J"(b>0)70gd;Ny6Ӯ MMk^& Q%-c%Z"JPJ'Dt,rWngz7FΈ2p5yJҋǒ *>^Ŧ\Ϯ=V_ʻ]^{MJO+35+?~}9)">Q<mBp'J4ϗ!󆪳YSUJйnQxl7OJkVg9ɠ"d%iV9"}.g` (QSvU.\`-tW|ujV'zϓsѭօ{q V?)Prjhs.F_7KB/&کPlvuQdyajIx\{(8c-rL wH@L1yq0 hȴq U0K<78Euat6멗cAR*%_Qgt{¸Yן6G37VJ1+ 3hb#%??~38+?[a_`K.ȾszǞss"FQ ,zd߇d[^܃m*I&A|\ 6 NUr4_lb?5~q]'fhcC};q#` (T\ap6oeÌ} QiNq$i2!jBˡN%b^>4iM) Nݩ8}2Yyr>N1g7i3(L^9;W/|9U_'8x>DtGNvq4">0Jpe3ʙg6x6d K󎅕dJw,'| +q 'E#wk&]FW=,:xE >Ac{ߨKkFI #j%[w_Y~ ~QjOtͦI /- sX~Sj󠚟 CZ- :9٥B1Ws ^K* Iôp3T9,:鲽CЛ 7 }Y پ(Q0InHrkdf_5ai@h,p-5SΆɝtD7:5\3. S{C-:Eq 2_+ȦjE?vt@,g .H-,1Quܬ5!|3Qqe"v;CPhvl2#2+%_͛;ϭ%& Vx0wcʧ`M~ȶ]kQ_Z#asL`4wh?L('Ő쌤kN0Ey,MN--_$71T.zd(vG2IZߖdB1@3+flnEX ц 78cĞbqV}DWԖm~mFb䓕rLsƇxX<3;&5]?nQWgmӑ|nM-^!Z3̛Yt򆆌۳GX]U+6v1J`mz)@"gś̫e؁Wt@'->]Z Pԓ B;E 3&XuUTkI*B) L n~M!fiB~#]p֌24uq1XEmkf?'VhNf W4 ce r>T<LAɮk12Q&Wdu-c_MJt#i6Iz=EBUfX1 _(|ժl4C7S%Ղ"KYd~D6|)d"; ~C7N:`ID`R{qx4?meZV"*ל(ۮ5$rk(˜l C$󯧂:nbe$eBmhwa?HckX+|G) Wq@,;ZfRT*ƟK7SYrLk{rQx- ?cbt}%wZLu˓sTO=>WRJ0Љ)C#nֹd.+/+/r0r/]2~pQn2-խhk攱,p'a 2r(5?hMNb$_SĠH^1BZ;VX&,(҄ˮ{v1d vΒG/ MmY~AcJr򺂵aSqj𐐌/r\P?zcn-y{Gu §bUeUCUkW ֊o<ӍBRH]׻QK[% 7'U7 ho9*gpy+aibDtUnta0ρu9wO-QX2XhA1U-M4mt󻩱I L.0/;֡`]>ՁA熣[g &AKo¦!@O^iN&P=gueg }OH_ZW-SA6~K%97ô(m2ּ|@"&.~ܪ}f58Xfy^՟ d$"hEzm1S M**;45 F\2 CqA3PH$-*y<CA1P ӹ~EYeU^pA.T/{/ngk &riGa`O 2o-L ,g9`CP;HV-R1ژ++%jX:(#eÂȋe[$Rk%< I!,؅L k b|k6^6FS=FzQѩQ_F=% =yQ̚Hdِ 287Hx+bIF=]U@pKb+u+䗝qgU!rbft:vI)DG#5Dآtȗ@&{jPQj vba65x jpчU(Zoo÷G{yOAXPj=0ONLAӟoj,6e[)pT0!'񎋐n$ vwz{ _ඬ~قx3 KLǜۍoi859-^vߺ\VrքoߠDWN>voO{ɰ&j:TNWwD}8EJ?8_15F.~}¥0X  }'~W C=Y4h\"w#/10W󯾂%H4sXH1: ^De(9hr-9 Mz>_6cGIq M?ޒ!_rerJ6ey(82Z^DOY/T)uӁ{V Ƴ !|ڬT)ӱOOJN%JypD`kAp>+[l &LQ4^ uZʬq~z^ D1t'Mv(|,|,q,c>gEO}DZDgH F(.J6\ 7%x&S.]Ex#HS Bi;BҜ!C}p[]r _}l®I Ⲣ7ADEGM) l2bZN&S7vH:6P@]㝠DVD}ֿ;ov Ofq@)UgT9J[91bB7l#ScشʚkOյϤhjm|dWwhWLZ~0Ҷ-eܾ 3.pK,dĐrE :;Y!\Se G8)p> Ve4A֞;G){Nt)}wh # 4],z`s:U$j"Úgjbu}>fU+z'B! MsҟNIOTЮH/ SJͤSè> BR/)YcYtiHN>kMr,/ ǘ)__<2o~x=.ilS +[:9"XUMu2doSN.L ,Bx(Os9Sϐko5jXhvknAʭS'(yt+y;n=]tf!h(  q3-f\ t检p$)pi2N(,qa7UgQe!ZXJ_ 9e-ty:T>vݠf7UY0#e{F2R46ĽY>ek7-$g~ʓDչPQSe^JǢaQb(Amt2''Hܡ̓v{~wPzAZE-b2CIpp]ܚ#  ܸ-q0E^\0NLOb՜•W_[;$|Q5]eu.'{3c%[IڸMq>^^ 1UA=6;z9}950~eg-"[:er'W<W8Fͤl;FZPr۟ԄiJy_)`x;5.1927wyh0xGdӹ)ԖOET:f0:jO%^!OP:?ڸ/[ BQ,jwsuoر±O`k 3(혇|7pMV`~ l}ݫvF814;?9LCo̟BQCjGPR- pPVL20Q)zQ'\>HENBjM.?H20hYT6S_ydsJV*YBhȒn)e+=ae2L+" aiM#-g+T6>l#RFgHDrSü3UhM_K>ui!R"|!eha86(,~ In Uw!G[Xk"d5X?@z ,g-Dt7Y52 WQЪ|AwABI,-y'}K,X>n\s=U{VIZQ䦖E^YjYUǢQI|A6d vHAȀ>H%i$сhL&jujO]d&v$ 0'AKB"bqm RH4%|ǂ.QoWSP"Nu_ƥƐ+L9\Yt'T:xFl0a}UFZWenraN2;Lnz)Aed/Yn+G>tktS>4&5H2NAϙǚHyr!|hN孈"b!OдL%: .+᮰ޱ»T !{cGT =V$t7R6m\ 0EDыETywin zNWp@wBgs<2f$+2GؚͦX'׻CJ#*Hf-Ơb<К[gx9I*Ƭ, FdZåSdM%dqC?a28 EQZ?h\A:ORo n"- Ct3CݨTbiNh0;gTٷ9Ƶaֵ|l@oB|5Oa2KD_TX =Q%X蒹's䆹׶#00\2~\^Zg\%`V)E:q1QT%_R  frkN"Ѡ?f[\zh&#aMW[Yeqhc\cxvң֥$%ijo>&SC908f^Nb CNebYUX"t`1p&x@XE`(D~XN )8h,p ҭ\M9ү|rO}" @KT %ܠ2JEf4ZGsjLi!bdf_S:Ü!7w^ h2 %6\{8}.BV7d0Ukґ} kѣ}UIZ2ZUCKO3A!fg7 *z2Pe<3tPE{RZwk0uϗ D!Ivw 9& "?&'ܴnKM|yEƦ'Ү=qQ;.|.IW*0~{{HʵV4GF9htXrRY~g77&izc`>rir,싑'z`d˺ܘt'HBM؝}HT@@T@K6kXԔ;V^Vt^N(-3Gwg~:t6\j4k:rhWΊЩD2m/-"_)9 {1~q7tT{tW 5u0$O0k7Z^Si_ N;ֹK/h];<ȝj[ʼᕋtJߞY$PAuSUnc;9/JDxۉ{8$w msqKw W!/6͠EbBNnP:P. JMtSNr &JRAxzȗ81g KCZ umiYY4:JٻLrǡY!BQk'Qhu+juuڈ!˴U1>iaO1j=aP;QeKI#o+(䉁URZ 88i= vdjiPu--tCDݵ{zH4M݁925K"+&h3F bD3%} +C(\uKƃf|$[!s82ۄfڸַ]-~kc)؝He5lÀЭ@We?)@;i~GμV- IQMЉfrQj(wCNj0Ztb,KKXԵ K{è(5 x٣VSU3 J=BXÛn59;ƅ-eG(6 ?FuǶqu$fb=\f2imSe ⑽.DCXM9c^|_ڮ1-]G_̧8OU\Eɷl~Y~TpFZ\iȒV KEt))B-#f +M52"kĦۘPg=^;T_"M-*nC$R231΁l[N/:/N=Y7* raqzBf'Rqb]GKy~zv(x.3tER;4Dj؀}dY^(iA}Y]&=p$+.ި2u|f9+9N|NSGѳk &yսyKi p\AJ 8LLGTJJxdk8ܓqUۜ[cyP ^TT0"j1h8h s6~6rS(|:䋣S48LrSb~Iw=Cs`p"J+kWzQHkMCmv^zvaLu[%xf;_ F:+3014{ uUcK*P}W \ U^f6gpce!#Y7kε1NXEA]u=X= hfJrs,c@0.U5ۜX}xb=PY޳IL4OҐ1*1a[:ϖ+ߦ]F 2Aw )l8bebܜ3E)*(P|-ycRu}~.˄0N1NRb+b_*˃*%;tz`` %AJKr ciT>//cjC>_M9zudDSb&uX-Z5"AS/帑;s;:TGrCw.!?Z:~V7hp0_ӈ%^Xnn\$/N\<*2v~8cL\4?!ȅ{!;gHD弸Ij'm0 IqHq!6rՊhC$UZi)Q!]o/b3;U>p)Wl4܌š"gȥ;,|%LoQ'k)t4 0"@Oz5 4W4:1g_ m CG c 8 6!qmN1f3fB]'T))1hi!U(MiK&t RMESz L јzts"@1&A_+[R֏t }X)$YKㄉnn: CF̿ Zx񾰢M]9B aI=Rts2C)(jn='i:)w]SPU8. ݡB$$BἫ7G4b]~GQVZg@.#0kuЬ]}\hSUؼ!?cO,XrMu 4硵lj[2N:Dy-mbKLxD6,>\C 4;ژmN-_=żXɣ[˔/,z'}#eSI{*xDoKtĕ&@ b{W}IIU&E"=T3c|8)Fۣ&M1.hOrgP1P?b:Vx3(KAܽg OAMF !ÿ\^3KvȊ+>anZ>caJk#[SuqA0ˍt+?_Չ1 8fUSiwE^! WWj~iv?zel,~B|t$N=ӯV.:c/?| $_ 0 E:ʷ,?w?@^.AMG!~ q.X ?JWW/.Sx?ۏOR93d];c5YG/gEXQTqRuK2H+p6@ AdJݾl>g@f.I\Cք8Bsk?y U7:e͵iP4Z;R$+pyU;puΒovrfO + iNӹ_(S0,< ڎ2AM6gBU1դ-$s~\]#^7Ti»DqRJ>'Rjӄtf(`!H5(/aQ4%y ĺ/A: A=aec䰜@hFyk;bE;Tuk^՗NT_AsBTՄp^q EU~|˭ixO(D/R2s{$$LNjPRIg!N?f98&ҙJ9׌ZٟQ G]Pa򦡫 dRՒ5~kҊ53%ғ Mudpze@=LsvttMڲ:sF~}8>Yٰ0`o0t.i"1 kN ~VrB;߷h!-20_{HNI5(&- $]>͹~ j*%Ȟ:ѷkX?Kn/ Z X rڀKP='ii|WAhķQט䖈Dٵ[KY-ts Kg#ըR_s LtAɗQ-(PR0KNmMz #rji/58&{oa:6)1b _@ (GJ4X-r<#b3=mʻЎ#ȿ>1$b$eheyЭ(F/Lql!/;9"#4WozpjN> UufOT:\˛?eUdi8 >^v>a#>Q!}: ;G*C4S}dӞGupe}C,I(\&/{ ܋ip˶&qQ)GdJ /4.ES7N4і`;Us <}cɤ <'OuBBT \hnjⱋRPu`oۉME\5pȷcEp~5mBۥ׻ %ļ~B?+>Ώ%F2mtף4o!-n^0pRuc b:A/+iN%e.9 ł蹚:TdPF+kE?VH6m^,bغ9Ԑf(J2A&fRJDqM_zl@8fw]=s :瘝)gۻD:KHxђrO{! `ox^x^L(=R7 *譴Juĩ;c:@6L \l0/Iv_4UPz!>`Ζ3+@;-H1t,A%E?rqGrVZZgہ{J : 3c#Y^;e‡kbO_ظ̻]u J4 nG&(!qg[.1 qSh nby+L_ŵ/k!I"o`W]7 4(),'JA>DWTLiU^Vq6%@M ,*Ƅ]2NtCMUQFd4Yd`%p?F$GiEˍKŌ#P@7^n9=i *u 乊x,$g\3t.Uet9`{, Ec}ܓq*&'h A >')RÁ^b#Ϗ[m:w|+04)XVqއ>T:g&)6 ,Td;~`b'#.iT36#Cc7|Od!Gؾɀ@2!UgJjOq,-vx6sY8 !}¸+ڷCq++RQM w7h^ch0{C[ts?1.i(Ak?gF I=v`KFϤDtO:*uo"^?NtN|o15RH8/֞xU_V9䄕o畴H'p̱Ɏ3ՊAwrQԡvdim8١PV-$|(JZF\7p:MD*y8ȩ)QصBRGF#ga}{?L=83p_qٌWRli >uxܴw JB5rK⿆Na.(8*9[Hl[QhOZN*[7X}g |'03xl:dj|ՍeX%rzD.]4N<ͽ ^&# =„(}Mg%(m N擁Co);&`ELl; 9:^ƀѝ*5ᢕ?J$ޱڜCy%b JYI72}&TXnJSGI3b+0m#@懴Ju\go "Eɷb6cyN{X+M_S~=ڢܮϋݸ}~)r_s\/?f6a7~}'WG)~^77] u@yfŝwF*H=FIBza ^}S}y H\aaM0CnP|!tI$(?xĤ(t#n6~ ^okwbH=}:DOsIC˅U_/?9g8?W"1 n_Щ0)DrڑA5؇ʞAy6JAwtP'.i>ҖƭؗKeJry?:h^IXpin .`|X%TL&_vyYnp`_iC ?^?m"_)`n'krt)D"6.1.jsMY[ y%%ˋ?'9S듶 ޖp3)pry#4*q?`uT^N^ ,$n1 '׷+H1xA2\e,.{Ҝ3QcL\-aN^ra"'$WrvwnZ}%U:W:LR+ KU= XVS$i{r\W\GQoDRw~O̥Hdk1,װmG>wh|EpQ۰o%e. ~Ym6-q6]sR>[g'D]@nw2WA(3 6& G=q,/ Ԅo}nr%z_aJADĦcj)@-zeud CTֈ CUo]P@u~]Cmrr~恧ڠyEpe3cdVs1qzycYS 騫/Iَ_ο!"K,d;fncϺ7Pd<> _~ig%&:HW\ds="1.#`G2q>PYz>t!jHKhcD  a t . ȿ}"O}qj7VR#6RZvz[}t1w^eڤiFaAkbjMHi[ңz/S@J9 善="LTfTCvۿ=) q(^{TLC'htV+Tv.Vy&K}IDR`bRȈ\"q\y1| W W~R_&1"Mq͎l  M> 8?3k[+4/D D ye;%j})ٕhU*$t7GYUĚft !o{Kaow-j(c(>4\hۉ$C˔۬m hnє#zk//ndܪ.ؿ n.҄ QŁB85;T&47S$Gr0w(SIznX.c8#G !z:$+#*@ 3gSZjn<䴍5~Lmn9Q`3`Ų%K Au0Ye= 0| TR{R ,ɛ!|brE+e ?xu?M,;Y%Nv,̇B>s4)ż?%UIǧCIҪz|v̳K=s: s3!G<`uC.RM+ݧ?! 3'xAF:V2OGXXq3ɛRTd ]Pb0| !^bBe*I ׋(Շ,d:P;h& â p;lIGb\0y, u"6|6"Z DHKO pr*IMٸwF_3 _f]IfE?^&ȘMz+NgӁ2J ۬yh{GDJai|hs (QgRY ;F Z(':NTڲ .$3vSO2w{ kN *DA[ xfm(hl@g/c,lB,{}RBymTOoEW2ʶL/WG {2^!ȋE^C?|=/.H;l?Pw F4\H xƚ*KhOk9vuond( s10Tz=_7ũ){1;̆X_)Fapw6M 1;8׽Q}.w2,f4O/^ &޺7~G$5k ^ixW!VXĹ>2ݹ59۩!|8d= &M]c$Q~ϥ</.F{EqҔYV4\c+ >%b=(^2@:fl\\m(QoawJn}2zc&x*)oedl:mQe]o8P-)kT"P.)2f=WdT&`J9cMd?uq{t4w2S W*Xg+dkAj3C0Z8E!cD@itH+pXwWj{b)ce L #c@,I並P \kc깑uqWq!3{M\)H~NjvZe+|U] @9@yhV q) U!-7ջQ`c 4&W]焘AϠ&Nu[C~FPSJ!V$<FU(pqšIAcssj\`։KfͰc^G&s[!Iė'_> Vc_Tfq_64ZTU?s bjo#-U7 X3a@ &B*-?ǬSV`Oҥh- [WSߌJiy <5NAQΘ|r}eU'T~wLD,1$f^1GTAY,xNт@Du*Lo:,&AZ }g]ԔQ0Y$i7hECi1m[ [A}cYM#rNy?pXbE*ϥ{r-8X7ǒ31jH{+EO tst8̨!k:.9~N%ΗutcbՁBΟ6mF&;ekg\ x "yɕJŹF: q]Sl6W=11į[կn ]mVGqS7f%ƞ&oXU>n79+mf#/(Ҧ=#ާ'૕H3kͷ *w ¥*e8e0ۘ1yq &dKSMT)y{Bw#u JklovNG43&9b2]q`WbPקtԧ"%IH.nZ['|6q7V )2Ƅ~'>NP=0.Hhq}99Դ943}ݷi[uyq4: o3 ? L/P 9M .\v !v@Mt)_&Vj_z[yFJ+&^>e:E~xY7x IłGdB5<||[zc bIafڒ} ۫7leLsP_lf7}ʄ@KE{)q}_bUa0 9+^B缈 0.K%")>\[q E ry^<|*bQ S0 {>r&st ]c?ޞwf3'*gvTg+v_9G@%9w&$u ےVh=!`#ut0~+[:rc2ʣ%~+D8lj7LJ3g-fNf_k#oCX2L4nI8/AwY 'D3h1 ӕ l#xRIObo<ѱDb5ܓJ]ڹI\ ^8$;@pؠNg !)ӕio#Mɷ~)l*3H.Hpҕ]5sLض70b{Ver GX'6' 1 o6G$sʖMBdb@E'2_GZ ѢZIo vgßRg\2HLLXêfw>%<}lK%E'1l ?H)4XaJN^Ji]z&ݸ.`7YzG/rTJN_=n7_ir պl,=$(y;AO0~>I`5ilifܵ.qA>ߪIMvb߻]x%v9mx7œL.;ҼWV{eZYHQ*1;F;ػ4ݤv/KF*{f' :mP)rKcL[Fl[;ߢ0oբ:DH_GlԋɟWEm4#J&%4,AiE㱓DZAs _V2".I+zRpOqLx: cTӁ3Z0SL0I!<M `$Vy$|vռ^׶}~KcE`k[S8* mCP%ƣٮNgTⅴN v\e/ 05WHhFn'Le!4oI]Za:tg޸I$֑p9lqKTI+<=)L;|֙J:@-bR]U%n.Mxʕ ".8A1]vyn_{28/ ^pjzFEF'DWO$X(Ri- z2h%!d`Kź01_mV7a" cr,~oIUn׎ Xwu7wd Sk! TC^,pT7h|"qd  >yzikMBUS ?͒{Alf/狍L/.M(jJ0%;+D^/5AF[Se;A6s>\.9vA!m-~bIbLƭ9WAPjf{c&7"K11C֚=מI5){)'Z)!y˒C5H6v'* n'lC=Ucb#z:!6T)X R,/2{Ieh1 ٱ'UEZMצL$t[Ȗ Ck9$:VQnDvQ\;@tSH=霷{lU)xqGf> ɬtzI5T0I %9bZO[Ϗd5;ԇz6Z͜F)ۥzF\.u35pai3'DjiA0 vww#ZxZүTQ`W5!z6?0?HW[Щ@밼RPf"ɓ)\YIDy ^ϴ?f i?}KGr}1&ΎSvWR𪉦Dh3k+ȢL}!} EDlk2h߁n |vnŮ;ﴞ܄`;A5⭘mP]FAjDD=8O/VG]?{Z INN:AIVp+:!%NdM{ɖ}#iZoB6h$qeE~~ZR`a]@ߡ?Y&\ 3ϥ {<$BQ)&#P"~ΰ]TFF҄]Wj QC\HfNѻߠ4I9WP7//(Ey,;4F>tLÙq$'iGLQ?e#Sx SQOI9^" P/i@^s#n:ԄzTITOZQ-g==moe$ϘpFcCuk?MZpOfu(,@,t=8S~(ծ3&g "{Pi63s+wz89hz Ba4t\ocB]/ȡX%E7@ry䈔&i`$-Jڪ;6½svΛ$U-LzgrN"]jt_(`+RǪbf9%R2I;Pؗ(4 † #Jū'kxlkh`#1zȚ%X|#Ke XXj`i݊Ir_k>ׅhmkS:90'\<:H1- zb{y(ڋ6#-s-c7!Yy*=[gU+9tML `ް^BV P?@"2wg|a*)QkWV8:\ҝ~kZE[p:XWEz䇬! _KYqw?bSEe6滽Q촳{y2r3@)/ D 7\~v|5D&C0g=s>4:2[n!`-愫BG&C.¿#,}|=L20n= ]$#:pK#b;vx+}W$kc/DؽYW+P4@*";n_ I48nD~ h4A4-i]KĐRS+Cݪ0#4i3LW0:uęT1?@HVx"\[yl)M d~96f|8 w2fr.p>>:>MPL[x &p.F;uyrEJI\C_;Jg^%.BRP*VZde(_d9۲AAל3W HzL3qgӮO\MN2&`4 '*zdZS*kǕސ#4KU:1c ޔX}QL*&åyЋ Ժ<.GOMw%wZ hB>BW-aw De ]qأAakR-YO h"wp[u]C^{@s-v ^[cBcfnV)\kt*jP-i(AIM8gӎ*m? [h-= Ŋ;b%4Z Pu3B<V"6̂Bk4:T `'Uvk+JPK@u;;F*oy`? e0O#Mh|l:ysgې|JIEDxMcj -,7X5FŃQ3Qr{l\FrTI;mycsDu 1N>-A_c_ i鬌bہ]K@\ #՗<X#&x"DN#xJqBH _<@_kTH$.ą:xvc!&wj7`zee!y v>VйoRzk?ߔ; }l`@EB}@f^?-;DRQNP!TϮa<Υ~@T}S䙟:b"]⊧˄ L&aA#9uQyh3^EiR !6S#AmJP@#S@iXM C2kB?}ﵨF=y~s1'T1;}T˙ JIYrk\l q%h5c43Xu8Ieh7 _2Fn T[z3^(l9ICt:${ɨjV >{V9Q\ˑN] [}E!7ع'X_+Yʦ&.m5|W"zCƌʸF9FUۜ\o@л.pbšާ`huKZ,5\$W_&X?xGi :|03`63 R㟐{Ԝ #@8PRv- lZR. Kt5 !6ZEu0ߘrp_ⴌ,|pCDR 7k[FMl]R}H>v䘠׆Cڵ Wsbn%!@Cr‚/ L[+Q Zi>+aeY0 eyŒ5!:,9[1~x$GƙxUvtDU"0}?KSV#.))|bgiQCTq$76,)z(wųAwirRz$H(p@İ3a FCbee&@\)If :S<ecZ"fL/.QR),TjN=o N6N{uK5T 1kZ?rP5vds~80AbHK[;1zE,CGF[XDϟKE{Dmt`4лl)`P&2FҤ^88|<) 6J>HjcR`)zb_EF Zt)u ;% G6ց䱚֢>w}!kѠP]kwS*qiIvv_70 *e|;r0÷I9)"Yr"g5--FgGU<V L~lQՐX-O` y^;D5?)Wwھ+. Vy1wZu3=SIGQ?B$3֐ WJA ;ԂIShSqKgpCBTw3|&HI.V1I:n9a%RL9a1/vJ&ҒƷO]sN'v>Au ~_3? u( v?t Qc6$_ˇJ)=WA`X%gJ="UӋmH0ڧjrh{0d3_/ /{{)it Q83"s>Y9/Zi5^敥@ΙsW9CoO[Qm(Sb+z\"PgM Z;#4517}&Os} WAp[NRczEό$HLv-r.Ȋ {9(K'1*|n`\&f2vtI]~-Qe_(̠J`,t Ao6sRɉ`i3:PQЧCvZx#D41)|,@U*L-[P28vMٙ.򠓽qKȗdt=,I*6)v}`B k-Lyb9?=i;W" S'P8~9ރGz$T->0xRdFL˨_!=hΝOer,`/P1Y@ zrA}V`,gS:( `xQ`o=u-l4N_GiS:e@ba"#B"$+.ALDĤ/5~9DLw-;׀ .7߽9&d%c/0hN؀Y\*Q7Lû Z3$IƃY裢DPz{,ƻ텇`vX)&eOY#̟ Wfbözomc# /"ļw˚r:PxgfVr c^حiw%@`vTkCG'/6a܀pO׮ /,1Yr`GҨنt2n+X)JeƆhpIMl8dzt!¾сq=# _vK *N qY,w?:d̀UO2O:z,z>8Cnx^'عn92ˈP i&y@MٔK8ƉkXGYI"~]ڠcvBm&Ss_6Bx,b^P"5J#$7X8R3]N(gl֕ ٗK 83x댰_T!Ȏ'I"z`hi@b/X@";1R@u{^n#c['zɺk[liD~ONre:BF_;%͐-d+ ToVdy2 r˽c"F3L'|1V" 2Н+ ȻΉ#kfk"'yP(裰\K Z{z&D4{a{[Gފoc]Y"<587ͱ"DEeÞi\+2Hq[5w.5)K Tv9O{#mL|OC!cz̭pL5G lWX,A~㪙*QeiA HyI*pP-78` r+5P7sHGnܒ34-\/O;*"i*B7k\+^ʔGş}dF0`snC@SL%ZB#O(k zĈJlE.^N7F5 *&RO 5Fzn!|٘UCTQϠp0_'4Cb;ِԺeo*;c.Z#^ޱ &V;4.q_;"ri0|1$ouDT IG;Oَ0X n82;n' ?Kny?w[BؗbC(gX-R_/ FQc/!Nؼecʀm."ޅtOQ\|ua/Wڅc,qe3SAםeɘql*e:,|M⌯pТǛ4G_)e꥜=ELDRGE? ~X|WWkFFRwJ^D%@&dvqTywϸѕlP`usW78afRkb2hˏ <b:jCMc J˱՚@Xب' '_BO_a6=< [k ".,#6jHD5|*P\Ơ*-~tYYFbEbHV/`ԻXqdWI_Y ڑ͖6}!Q3Cu%S.U3IЛ(d?Q+^><(|Q@6͏18tF>391Vw#iT&d/1E F=)6,9h=j'9nqsYظ*ac-Ly}DT[Q0Ezyv$cocG&Pꙉ'rSWC6/KfqX-n͌ =D51%Gʊ+k t"`c.{Vg\'I_[a覛l&Г # -RWhaiSA+?72DWn话v[4$O]wv w8B%-kS탈A([kMIka#n5*kMCڶ؟Ӥ)WU-&P/bTƔWb鶍w,ʋW?6@UD 5q)*n~|Gzgp.J]@>!, xn3{j`z%l ^rx=#P \nco0C3vz<#ۉޛ\2kRadj]E  kLޗP'VG+␢xӾd&́V@*ٌƌ9ڶ3 P.:1z{5è6}9AP΃}c_21h*E`W] 2Ἦ艄$ΖtRcI}l\lb%j;kxY.`c(/,^"̸myڄu& cEh~>XF-Y|Z]fb9+#6'3*0!8CϟhMXvU~SOh4NJ&b ?Sb%'=068.N}n o1Umd#*)ʻ9W?asҀ%26BvDVw}EGJXbW= Ǿ}05pD}= Ou<\-S䔕V^Yttv)\MXV jpk0LK;mqZ)'h}a`t^񳨮K-H %+3o/W0GYz/Om@T pz{-gĉ̨BP'۳&j)@ 4QrFm$;JE3]cT^x1:s&?I,6D/TpCe ~k*20X >n2JX¸Ir-IJ!t+ڷJ5usV@WPw!Qڬ |j %y$),VM[\{q CYܫ;$,6Ht9+Q>g "kEu©t-l%p Nha f\wRX^g<\PtիnUŐ\vY|+_ٶ0%=N6Q4Lk⬞'"1]57G%p`O ?OLS %V/gr_MOj+YhGgKt\@: pQ. ^8U~Uk=E f {n@(::Qt /O. m(o-_ YAB܍Rsj.6 l*?bݴ[3EmK3H9 k+fRح}Zzmǯ"۴Y))GŨ[NFYl7u G+U4]K">X rCp.I(aF79K|@{m[A)5sCÝ`)W’1&USk 3[1lRyV+Y (ћ^EGL4wWOX3wMK^@qΫ$q2;\nF8CXa\9G5'6RZyDcAeSEZ0V)<'$bdA`z7X=*\B#`AtYZ hrNH F)t(;)*|b"V ePsU_T*@*]B[ ;4*ѐ]'8sѹcxdW]x!k'l5A͈"Xr^:0L`mF[vA~ݦ8K73 (W|%-ye2a;Nΐ^a$Ϭ70~ys:h%JJ8 }T=,WփF@TZFȕG˫pBʇ>®v+&up$]xˊ6u5 ?,,sGiɸ6@-ۍ~AW@<%D{['MӵI՟8]]4 +{ ymtQ\ Pښo:unI"dd=G8\-%$iuJN+VS61}b5 Ugm+aEɸ\ AR-Y%d,İm.K~l?kp-Hp=[p͑s-%cq[G5=D>]Iǖ5>-, VX;& FYxq X ⴃqg7+Vkuh`#h fʎ8‹5-)t? L:\aͅT}}BuKnoo P-0 (hJfA`ƐՀmq>ژa}p"@h]rAs J3o)6dNvڨZYֈk]ġG?ϏgJc1w:i[*j(譴Z/LשmE-.T]M'h]V,Ts>^q k'%P3W<ٶ#f@ղ'n#A:,)yV{nJ= ul;}PϤXxʰ@ؼŸ깈OSmO$ yxZ!)35ءp>r%[3WHwZxplc E٬Q4 i1שN|d۪SUA#n ¿w{&God]\dIw ߃l!apiS^FEZY}s1]Hjݹ~ :tXIZ0m3Ե$cjF7&,74b¯_>hXQFDZ(J>'b~~ a DTiRzC8WˉBQݬ@ee/ bG44Q%}˅+0]MUi7hP }ؠ)Wk=]!? g@ &ќe:bÆVʚv+̀8-n]K{fQ>"jby7} J@ ?g T{yOw.0H$yACD 6x \,H$=xXLD|L\Ԛ~3 YJ;ҙSkzgtT N(iV۱R3F +)K^F˯[IM zc5&AOzݛ%{$Hcԝ,TbM1'R,9VðJwԀ.Z$KGI6}PER稍6f>r!K\846vn fikk5)o=h"AJNreT@'>ߛVU ln&!EDZB]/>( tq2Luh ɢ 5Z(d&YV8mжȟ6|ML%yet(c3@YB 6`w4Bx6oDr%8r"d33,i4FdN"Ũ{⒝m0v\խE<-:2hO~4t,R(6uH.:?.KŐP֚^iKP Cn-ܮ\WWe :mGeKW.@mD H:8%D%/I3P2@OMP6͛j%\p:qV/Q;x=Вk|[0Lfw7K(XEsE4!": ! 8+ vA9?u)Wڍv KV*n}weCL >G^>Ŋ;L̓ZXG5ףǝl)Vv#&/17HxS;Cqq93G4\.%_Z*N,wg%z:# <.]}PQ113G1\K+bWo=]״nk_AA1G [y➳TtT-/-q7b9(K4̊XyY.b$^mTZgGPtkv>Jw~֔@!89&iGmo :a7/9m?z}b2g"r6о29=ԝ‰jyPLJRCmkc MD/Y,b9ss *WQy40~bSϪȦ/ u]Q--}h{7HPEۓo]YB-hy>}1õC\u E?}nɍտy$KA~RϾA|6ܿ=E9&>mFͲIG]xP d:{0TM(4D+JcAGI&JN E@2Gj^TceݿȨ6/M.zgyG1DJӏ uzь-FJMl9 zpB@BmUhEv5>R+ML{Z8DՑkcJ`p6̗fʈ{,.Gm X¤ލdkfM;ܯ:6"8l}\(4vA`Qk5HQ1i]&0`|&$j#+*{+Y?( V ;}┱*rzaރ9 ,ႃ=!Et(@H2 (*j2,V@<=U)8}x}dGc"+gl3\S?f&DԴZcT{̎ȋ67suH#&{P2X7d:Ǧ^.W YytY( 9ѷ2gxg IwDtZs,q_Cp*.vlxO QS:qgp(s RpOD 8_gI9u[9>rۈ9NJvC*I. Ӂ|q{Rb,;3ǂ}\CpYY²d g1:X&~~Jм36ӏܨG̋_G_!8O9id*MZ m_4<_MNLʼnK/ N{D aq,`bȒierΎZ3e(wshHx3anSjhUOVf˂XUQg xHLJ4 ϵ^E+tkQ)-xS}beݷ/oiFXC(u'9:[=}ɤ!9\wb 5OFj6cǨ&=okHk[Ha^t_,PIfxe'*W)r~v<,UnutLpcۆ-U݋uQ>z6>xB+5YOO3W$h~Z+-r/Bx"S<zF.mFBgGI(]vR>k䷏?ztG`Ϻ'2cYZ*Cx=Ч{S ְd746Sdu[dG Z5w2i 4 U+^ fM65 79v\VXcs-ūjfGSzϜi˖(s[A C;;Dn(X*{tˊ&鏳e!yG$x#}hR vd3t^ яŰ6- *+zZ#GhiCǧ% Et0k/w:{6wП2Yw$nXnD_ .vcߛ{}JJZԨێS|Mffy8QmkFe?ɔ,%cTIP1hݷHwo}3~mp *=ひI/Kۙ+wQ!yTB\;s,⬔\ʸ=c$AD8pEܼ6P%*F\">waZg*.폧쏔߰^sFzt Wk⻙rC g26?tY{we+bWS6Lڲ7jc(jQ{(ܢ?!]r)Hr&zAv[tmt(CY̱6DmY`nY(c/4pLCGܦao$._+2sFZ]T 4[~JEF wssmFPw#!Uw@tHaHJŀNbC951.UM.XܖRA՘y6{_3PIַ!4d\F"PuߦtI7'vS5;rU,1LD~Ǧ٥`ܮ"yTZzhRQWv!$B!2pDvz)*+h +/&Oԏ&ubh?@Fk(q:7Qxڈ`$m [&7|7S|]\|*(ԏ] ^$Cfգ2EL.0LJVZ&= n֣Es-Wqg1c)+NB3 zphYTv4ACՔ?e,~1.2/S"XM~WN+sR('typnXGKY26:ff=!džtk ʾ)yCGK\pb !?܁ѹ3:Qb̫j  6F( #=h0m]#7=ƤN0 T}\h5J|`]!6U4X\8i:,4P :Q[v6v[aDsFD 'Y,#0' ; #F:)34%SxA`қ"NPstɌ)]efZ=je (xGަdf~* w.udZ떇 G5-Weg%xkB I۟xm> xY]c$.WG~k4>Ghzt&q*"۴O|{s0"пZY:E6/Y CF!qnwu49|(` }i @(N֮ G>`}u)E'J@_XU)-Rt(*  O>e&/N@ǻ} ]VӰRl.ۏJt=@-]\7Jޢ&_4ߘZ%,K80Vkv#8cUq-qY Bq,H ‰e 3R1 E2sluB@xyV6$:x_I)ij"*+|[xva@=FA̕dKkAT_xqcIK #%p3U)r 2!͈-eU›?|wM l -%2< XAI\W cԱp?4*}뿐JWղul v3oNOR~LmPVìSzJqGY1y&ZSL2/[AġP%] ȯ{13ݥ-jLXdaMzz_G㝖NS:^" \ۯV򕨬Tw:M`7 wE܉^A,q]gTLTzg1&%>o_].V`JPN (.DiTBw?e4gqzìT9c.oA1$\q]îM&f/Y-ѡ䮾Ծx9a ,>abm+6ϩl-0FPjx#;O DݦI$حH+NbIFA{uÅw$ܸz7ue( ^^_>Q#PSTw$qqKn]'5~a =EDfG9ͪy}^t=9fmV;Z#MJ̓pyf{7C,$FZi*ڑ*xFe@YrJ[ɹCY"X}j3P8ۊl1Xdx@eFlS`$89+ʒPGba8^- N|$y. !a2 wwƱ+ꙥ.יDJO2_LNH6L-<$cN[UF?-ԓL4ڧbmI= YP8h]*"wM-t?edK08RCϙM H] aE'Lj;ojÖᎍ6Y wSLp[G UX:5|BS&$+&C­y#ņDް'1Y/Y~G&M$Ӻ_!dD.hAwNIue`JWC~ 7",>̭[ [tG JFO oY\(y5!"rWA|N1wT&-55\p8> WZ6Mo!T%RamY2$ܯr2 1W3??`.k͉G) 鉚7]YPOkq$__eE2 %FE & *3ԱP~E2s3[M%"z+S{n; l ]vr~O~)a )D\Z ۡ3BLUz @4g]:݊`I{@vnXJ D].7Aul`>=MY£ԯMܧtS%Y6ES(d(ߦ PAXF݇CeH7d쳙i(.V~p}Z=hY}sp|G&)0u&3@omJWs*eϚG/׫t9Oʟ*r+BH :#lR!4g3L3lN౱mr+g=o3ĝ~jLc`&v9d.j[pI uBܻv3k{9er;=1 j{vŧ\QZ`u͸(-%糸[ق{ ӻZ?TYݗC6PMWhn2`sd.=AdAǘ&p]#h(&0{F8y@ _h _y}rRzXސ=ӏLSLL:I"2QYF $nƢM/Be.Qh5\VеKv=N>3LHPXg{ݒwb;+WrfD(/"AH ȸƖL2|g!( M񮇆P2WRm$_^01#:}aES&TP+·tN-r i`Ax,'ď =:g;A\]u iM!(yЈXcukG25@ S]&Vy"ϧ+BVNS蓍B38+t1Qqٚ' A秊'R֞w*OP'sOPBoL!ā"QxJ}IJ8zjإ_yIU*b W!9EG&͆Q_s2-$X*drͅyJWp+> {"bMpgs4>XL1+ 3[0dwsy§+є4y ;_YDHVԵD.l{-sg7+yڼݻt !y1 㛱'Q./e4K/9J G폘ZX_0mBе͓\u*z|9o4 s;!JO̎|X%'hXOm;n,<ʅyUأ=Ȣ.[ "X կK޼I3UiTBX"aasI0$e!3P=BVȿ@bƀLSN6]Qe}+ `c>|jx*WJ%֯D\Ie?ջNB 9"zДҌ.q3E5m2}9%S9!a`ieli{W]y(_r;?MK8yrT SEq~qv@lk'i"dJqPf~Uh9p4OjjrHFJ&܃KSDL=L*@;]͒x՗hhpYYSF]ZIw`"~G>ĵ;"FYLqUg`? maRZI6Kl5:C_+6;"c84Հ xT` OcX.uu2\6Lܿ HԷj?-['Z0L.M{ }kD{ŔH;Tb],Ϗ#do` Um9]FֶV?t)v<.*/9|ݕc&˔x;ZuxX_(@$;(cKje]cO5$[I 0#"[4 kֳ[xŁ& X=\&f_l@Uerk戮Y>վz6Up1w D oD.Qm ntB%tt6ZLE޾ ʙsrLbχ2D &:$'N7wRKXS ߈'o%׏gh8*ԎAɰh{G2>:U3 3q薖zX枭&vZOp{l* / w3xMf’ "o%f.fXWi>$+䪚[(J :'*WSj^`3XfyC}଩_5QFݡ mtR*(Xpv ̢۫#sHXЁ̳ f?:GPbŹyR¥4O1@F2,R"9~k\A\ה]1{K܈Y.LjqE(ls#p ɉJLE~[c4%)"*Pej,-u}o?_.v7"}%:3 5++6E\===BJ[qF)@}}‡ZΞbϫp&l9wjJ-ΈV4DU R&pf{u}?P_Ea ˅5*qJ=8~~!Za?Rd\W"~˽po6֕!Z5MtɅ|]} 3z(JBOݰ~YE\2@+kˠT<&ՍnnXKI]r31(CZ|i n^pÄ%2`ZP %s&5zB Nzb=(͓3ƤQcPz@u(ev1h.躖(`1ӾMa`"-1M^jx;d-F=}$09:6_,TZ{3*jŢBliޑ+>-AށKϻ3X0YDpī6W挞(/iG[#zCa.oH=<`mlS/ߋ\'MrJYNa!jsuxkYdwUc=I(vdb]k\jtEBqF pm,ЕM hmN};åB,E.VI!*^8a~NvZ(ebԼyEHh\8$DLRk}|Ym0B t+ڀ&׃cf]听 żVq=֝E[W/ef#Dx:وE|96Gpzh %JW]^r7(a2w!ŏcbF,MoTr>pB\e.rIطB.ᙴ\F$,d;Sem~qūmY;dfm;|o[H+uݟyEpk<>"$ Rz1r,DygPNϴ@>qv :cfiO4MZ'-]G1~mw-D7Tn/V1s d)>j|FIڥ@_4&.zWSi+f% 4yFyɠ3%A6 ?XEUyr^HrbKNMgt1F@_AQO 6'IoSf#9e R,)НpG=j89PO,J/O],'^Wvl豞VH: w 1đ܁lgBr_:Y"X y0f󞂮Ht3IUv @鈽gbC:Q@m70$xjevk ͖o˶$3GN3y3Ak00ݣ~1nJ!'NI9 .0 vħ֢h9ZPSH\žoRR=cZ[Eᢙi5\<{-FUs8eys*NTW.B/LWsRWf@ Cc{U!p(Tלn<=2߆BI/J=]7?'*q -;ܭ,l@l#&<դq[/*M>f|=R%ۤ}jº5rpBSr? N0$xƙ/^iraG+@YC@vZagfcazrX{K7jp212F»?>ԜywQ' rPqM^b-76Ӱ/Zr!֚)7qt 3o~3jpEB'?=cQE>^WK) *,<Ǡ}LG@JZ~IeLhXE-zKqA[$XKaXC{ brW4gvvv:B$3q7=2<‰>C`*!%0Ĉ_tDzhzRQ ?H|Foֻrj@ ^izsv8\N?baz65⩻)N1Q'9 )=%E5`?Chy6"m_RG(5EbiQwD蝘N&ʼn^D$d}`4 1Cf[n͔B.:K?QOv3´(==\`PϹ(bMjԊi`1;XLҽvg׌2& 5)܍|Iz!0!4 .0?]&wAT(?->_6v⃰qģ(U\_[2i>ZGzRaS{ zV+KDY#G+kVwLQ#"Pd8_ uA4Sx)/>!6=\G3i\cIInx͕ZmYOS qZ0 @"k+nsU&};q( f(@^yj=J8ۤuPy?JåbII.r1( BF-_` NTlՏcd_d76£X}2a!CԆ"r9Owq> m{QP2_dv\Mir8#">ū3:;g. |P飺Q7$ 4)$W6pYU VNEHu&ni~fج㜝Z{.wMl/j3*'tYiľde+>oL. 8؈:p5d ,x#b`k ht}`5LEu m2|.DxQ;<+5zTv@r&[@2HĮ[@uSd5c0i`"nk$ th֚c`7͟3/ӁBokEOqbAdrRIKXyrz]X/ĦЄY ?Le {Nfkbd%k%;O$mQk *.ݞp qqxK1 )V _vBV(/rjvilVV&<9Ɏ;HHȤ6G5UTؘ>@n9JUGM_g$ز M[0O^k2S jhGO?&91kZ_%;Qٷ*(˘詞=-̤;.jAG mq~VYe'i~5B8WG:&$M HBI6Bm*( :Gao@rQn_tD d,~:{!hӒs.) 43k_WUAW`vݻu`/+"/hccR׸vL tkU|qtmoͬ\\v3!{Ss"wF7ÓN, (`TOˋo;s ǔޏ}VTq ݸ8#;[ܓbqpGm3ߐMS oajt ȧ|sU6;0W sնe(V7+#Jт&{j]8Z_юd yL'.-s>Zz,7A,2ܬQkh5}u_/Cm@K?i<$3~dLMtI>ݱ&.W t'Bg ]tlIa\hV}ۍ-+OnC<0ABnoe6[quG}|Te3~G`CScճE+WȖ؅H@kE;#WpDP؊JQc3LwMӋP)̼rY7O L GTO{qܾ@y5[TSJiH*LTqq{h_V IQN;փ~_J%-| 9 LiCmAIKE{|2GtwIcyƅصM5/e IgIn "R *žvb ÊbؚcYo_cYiGކӵ-s->Ao%T;-ylIsJE(j_?pTM}Ke4N^H/qc%C}$/OYZS>J ;Kt LVP:BY +BG N]DaոЍ˜޵*ky DNkAIvY";bc{5MoԥEQhʳs+ޢsQV}!6;DqWle.Bʖ(P {4l[.܉rDžAE9|ل~(}{M FE@jwUZO *mB ]ŭc`wn$3MfG4PM!}lEZ*bԄ)h?ۋۉ{XvT[&;Qq~_p }0D:kE +C+I!;[z6t,o\Ut]j-fý]wƣog!c>owY kUuqkܗD(+ (.Bzmx |c],_.+~REtJB˰[R<+f/zvPi8Űb?{#Br^Rqf7 .gJ<3)f>۟f<,:lF py PY.jg{TcGng sؽWa D0F欶ۉajˏ'JQӯ VVɛ$JUUo1F7q> o*v %?|0ptd\EN.jd$ E: 0K 6WSVvg)T?TqR{i\Uv_iU](+xJ0ɥm|ޘIf&e3vN9GثNGKc%o\\l^ lyUzXޣ MU,-Mb ԞY9IIO}sk]A,Ö/-ok q|Uܛ |.6 av5Ao qB0&'9c*Es1a 7iOMwDƠ>o>1tX{`/B[=-켪2ylK""=ߜs,f?vNnr`B@*xԯQZS=`rvP\V>|l2[̔!q6`.C0%0Q(8,k)(){ JLTj{Pu+G;*c%T#Cz&ML|/o[ [!I6>! =:OAplBVޑʚAlʽɨ@H\ԞU1RuEU7 &dݦfMRHuE̹{#ϴ'J(b%VE2:~L/ݘ!A$H|{2[DqmтYV0Ħo^TtYA񳐸}'tFF5y]' eѐ-nZ|t"EA +.=ܟ᛫|indG>'PꫮM]fޫP#$*]E wb=4m-íoׯipI䬌qQMKh{!Wծl!gr },!x6A{@eeG1bjFҽ~u'F.+u6E/̩;3tB^T>Fs֡ ٦wѷN]>9́ۥLRlXpqMߛWB%iS)mï`^rqA^A'\ܫ['P> Epq sR_.!̉ҢSeP$6nP|aĮ0!럧MɀQ.TOTb(] Ҧ|_.&CIuNQB,͋ |-Z .q 0l9gN@/S5ײܩ5#8R{]Q+ԃ@3 eD4 ;ʴ!N +(}NJ23FRRnn8Z]STɮݖَ;mRL K 6_&یy<~ t'\,ErǀƞZ;{hUAZ,oѹ[bAR,p"طo:6n"/þBvE59ߠf&C]8Pv!Cfyt*1v;y~|UB&eQNAdOxN ~K[)mj 0*iZeӆ1Z&\9)I&?g%|Wpdԗ@=b^,'TIPnwɕAnNxnI󔊀;n(-B^"Qj)cB`ġ+WPa b[]}uy}ΆgeUqioۯP؞5H4\BO%lϙTCĶ)|L$ss{ypLyXlpX?CK:~3eTն֨;{wycO{Q ӢATO|dm8l(>g-üIH8>YWnk 8OIn="Q !N+U-%JW@l@瀖*,/PeU{C^̱&{*AғQ_”rֻSO3QВ/BBV" Rvjt1bVrh+m@/($՜'2\ pWXJm P.YHDV,vR[ݧL=mVwX> 0"_4̃u}uFtܨ9ߘ-CVnWv-I`&m#-bc7aqWVWIi  x[$l=0 .zd@F]uk B}]~8`Ό1)X{=JKPX*T$+elw֢\6uS-Lꪓp #Q7Ȼf+`-I6ԛTM=8KD/a<^luxTɰw8~4 [H S{nd\jSNN\sԝ^0ϣ37lExn_cnΗ<'£\ܧJnIZuC.9)SDeWN򎰌:>"`X!'4RGC`vx:grά{ƳɃDF~ vP Jq'<~ߤf: z1jz]j ^<7Aj@-xV`KBhBjʥQCԌKmP<28lɭcRmMF>=>Q|/4`!  J~Juq,oO W|]1Xla b3شcT,2AH `PEȝ=aX0)?XK &Am%s٤-Ű4>+L<ӬΈriUྀI\VVz-] -_Mjsպ;%8ȾfwCPc[n,e;,Y qd/\^SD6=قosZ;'}z' f [v?/f8Ev㥔l5/s!w7{ӅP;($:O r`r-ب tjzd/bYT]rt; O}*TgJp^)jkvm\^vЧ| 2J 5꾽")G(Cd@w py_0@ O"X?zGJTd4:wa6S)0Y+A98>QJVbAiz  H" WHu\\?$e)=|v/8P.^NVրΒ&ZH5ѱ z "LyzO%>PiwX4h6KBʰ:p']Rq,Id U]T4-O&%rh\raј<  Dd[1+U5&*'e.KGinC*uܑ=j# !{RS㹁(Fū LgJN1Ȏyx9Oz!9T@_sp9jZCƉ~2{qtNΖ7(c+A?~Y[A=(fvH딁*qlȩwNJo󚍅\OIh;(WiOT0 VE>j8x(A% 1r.^|يCx1zel`F Bju}~ }i 2HOGHxS$U:&Ik<9uGcVy,GS6  ́wxJLjhˋSAw$3L9XԱ'> b(]C#+[ʂڂWc]/Ʀj廘R9 N}G]P85BArאuTgۧ֓S>K.&O47!$>yMGu鐌O v%bށ{| EcVzbxkF=Ra~IR||#M1(t2dQeS z 2|%W'2&%њO؈se  a5D֝7x1wyb ؠT+( 7/$MSq~DE:lpAH-v( 0JYጮpwOulѽ;$NkˑV?! *WIOOE5brTKضHgdrn( GhQggEi* `ݩi1HK6J[M܀>M䮄f#<^2 &Ld=H5_JBiv lT7 X#&EBŞ_SIU3Ls6 0XkQ*ӡ?h!b s~".I^~Mb&, n92t,IJX%1o5ml{r?ߕ&wՂweJ"v75kzDCpQ\D^] Q3 {=99W4Yx±ػŢ#3cz]|X6 p4Lmsb:6p80ڴä]95(Żj/XYu NcuD?TmctĖz)gCPOB?B%qC`cNehn Y7ʷ! p6+WbB>S YW~1CZaqO'MÿErCnWT½`ag ,$_a #T M@k{1[kgTk&F4]s55V*naQ} @*1,SGq>@J ]FIfRX1tUe_2v&u.DӘbds@tkVP~ v~`_mrɠnxqPtX݀Ѩho-?1&BRy\~Rns퉏-Dz6Ywb.7Jq< XF0j$384 NkWrYG]5+̜}̷)/Ʒ }ja* )h2޽K:-l1ڣ^J~JPàI$2s>;.k+N}<`տ\Myدs~pF+Q'|IG _ts/*mP=viz V^K0zԟ K+`6BsQ\%xΒ;1V&e2C8ttR@R-e\eu*-"?` S0R^6v)d3@)s}s[ T=zS^^9kh#Y+#tuj|VILg\ xOG|z@lG;|HZd9$4+yUrOz:b!#5^]nqjGgG_WseŮԼ5"?m=ۣAAQCM6v=yRpiTjÊWJiB%ib+l>Lޅe5DOWGDtN-rlߚ;x$ >-0ݸEPͭm=`ee؞M,f:SC5 Sɛ|^J}^|x%c!w=wAvublIDS&5xAb@phUN.VH6s!"XIV8^:9~T#TjiQ 8<;eUZfm&y _'W%A?TWi#c֒RYyQuvdm3c@R[{[%⌊\SxJOK,^b9T+>󢟪tܯLSMSn90['){^!zI"ڂTiZէGO AIv|קGZ{ )Z:2)zt#6ܼ;S9LCR "D1fְ$iTyg:Ht6\/;$!2N _lȹNU[($$L|EagN~/ _tbSDIV{8VNA6D[[N]D6_1QFE ]0I8}"L.J%Cߍ[-V^n.*fu>ҜޥD#4ha_E^Sc+KT-|b[+ m‘'ߝhB?Ic8-fD37]'WIztF0|WIF [T.|m 99Cp3w7});R7}kΐ^&Jb{%2-τW(',)`9W/|).?SC'3ecl߾(ca_h+ u<%rDaMG_ K @  M]dԲa5bW_P|==7ԟ;% BwCR#yK /n_(>+x٧"F:; J_2:O`/)4,ӗ'{!.FzFن!D󁮴 bu.U7 As̩,"!M]h2Dm:X!-kHgy`tQ|; j&ZN"GrS`nyuWGS2PF-ئ2֡=|UmNCA7M7^+{I͠[ae+A?nS)m7"]vZtF8e:Vl2b bh^pIX!#o%*AV~:;qqiХ;3xS^_P͈!繎(_H.WY̲OQx7ųٯֲ3D-|§7X`9OẰ6Vh.. ,Q'NǫwG}*'POo9̏($Y1V?M~ @˰eD}K/,Be/[|A_"g aaJѓ'o3t\>(6/"CP~V4dKUl X@YC{xԭ+>cIZwᅟ'_GZ RRTESALutdُx`;b?¿Er},[f#: gIz҆0 8l|¶'藋:tFvˬJТ}e3aST%o 4ƍggh;.ս5 U `L3L^e0+I x\ ej,mZ1 +}Lxmŷ).zNWyuh_4?rpzuexf?r3{37碩-EWBnYYC#VtN((3NxaE_Gj94I~.T fD[6ԶF+jߗ qBncg&:+rZmᨯR5?`䲔F 1J6/#]Yg^tt^0!ڰ No)Ȩ51uPtMr:6rn*c8/.L4dA]ZCneA#T=FjS'Iy(h-l"(_sA-Q66 mu+>aq#jA&~u(ui<5:ZJ>1ip9dvɠS`!._ļyc m3v3L͆uf+Ȝ>}nHI +aA!e3+ol\3 2ZH*(i!D{…9C܊CESKOF LASz(/_Ð)7d 4N4OL=*O3jf;N"i@yzR(6'Ñ;oMе/:'}c{&(7seBX-l^M 9 -fu 6#8_&XF)ip7*M3Y%= +|+ }ۨ* i[2h 1 nT{L_9?WZ!֞~I_f|rԀ(V7ρlkdb~}a f˹a\3b[E %Tz &axCO.#σMŰV-z/S Ls1##T Tf?:yWQI2/0\mH)Hg¬d %۩4KWRxd;E~ &zq8rHNaPkOlؼAd2o',S+w""!ze1k 1bolP'x;>˭5O fZҳ@6Es<ln<[Dwh?D?~,I>/vPV(D}ɟ akVYO@LYV)f]U&\m`y\e]=p*U;Ѱ$V眘2d!0`LcB[]^j@eC+Z*$&Dig:qcqݗqu LE؈PP ꢞ+}7W\jufH&ȦjS}9 M n d8Uq[z <\= =?Iã  muʘ3Z&MVt%`QFd -[LG{WqRÔ728ƋiH^ FKNvb?fKbbZ: 6^*idxEiŭ7JPʓ{w3t!E^<}" b*pw9Z ;V*mt['rVQar=0KA&UՊ7nmZbAaW5DFCsk(Tƣ9 ]E>mn.gP2$./k@$%jg= &:RI_|.ںfz|̧U2!Ӧ;7BDSLb ȴP{Dy7]vQ9\eE'  YOЂHI`$, gu--GC|!>w4Lh76|,f:Վ tm5tn>1gfݝlH&W}a6OdptEACNvLGdF+lDRzoH.3:Zl=]ǎ5JaG) /vH^5aY:4눸WX3c[A,^d ,~TD+Sn%eBdeMt7덿ʱ'ֿn~4V *I64]}dJ±S"_l'%`EGĥ'Z'3?"$C/`q-{~Vo:z8vԠ8\7ڊb5jQ'`k]'lSdg)jOmoڔrU#2-3=FQS'Fm'o}8WgqhU Q"0e{9@z8)yfB]_!LI':*߁E˔ǝ!P/#fQt~` ~q8)W ⡓ݿL<_,1o ~)P9qh}uEY{]͆ÿNvaa!A6T묁)J~l].0a8ȪmqhE"mQZ]xKcaZfQ97AK m yUhw,k/ϰ_9-u`TvN|kT_Jwf0{V{Iʶ{!-w8+,I:>.k|.gс=CgkO=G)Kjf") *ULX1H-u5B]r^Kz|_&G-4y%lb^ 8%z!00j=နUL.[S)\,@X9/ \Ǵ0)#Ӓ;`n9RȁX80rt{ ÇR!uBD}7?m7+*E@۷i4)Pn9eFZ {:Ƈo5^8LQ7:5~J} ^eM0&cvCE- eB(Cle҄BUu5JdFK@Y+fܞn _ox5ۡ;Y`A5T}*^qfQI3ϕo.L!NGb j7,܅#3 m9yܧfDć<}!sfJMRc"!C/Ҝ3 ]ayOc$ >4Sf?MU]<=ѓ\!" {/s-_W $CbAREh?~re]~7I'*4/R'\?Z?h4m!)C2:2i(F=+vIW;L^-E7*k߂J.e߳t N.d|U.O;""ߓ^zpG d)dON7eJvf[Q`*Fm[wX>KV" Ko)uBohB8<|'I76`iT% sq2Δt[)/QVbCUd46[hQ|'࣒Cn\ xAI<K^N%8:H\\Ni1Nu;&C/컯Y9$OxwbU_*m1lZ/gGŸ|]1vHF>(0Ѝj۳2?ĒY/-~O-h&!"(6e"{_RN&|V'cJGZtU& U%»[Z֏3aYRJt /@4Z1} /B>mC!쬉k&$|cUM0Q_7&uY o?>vƈ6RuPF, xٳ|>FX&^:ubk_VF1ioQaL%\~\Ѻ_XiQI\VWv1p8OȞ`.QIxl&ez!zR0)h&&jݖW O\џ'(Y{϶[ҽ\R">JXǴS!IcJSwH-H;;M&|pyRRGْIqNP%B&&KE%K8F(1?<_.%?E10ђPהZ 3'o^\@ȕ^L$T_~WLup4-gEX`4;ltF4T^nw2&}q$>tͽr5 FtPK"E$.7V ͓Y!'"ad}|9!*OAAHVW,䵄&. 1YP5ݔKJq:yu0+~&]FQp1qҿdhjAX|2s?nDAWj31Fy{,ea7𽗶f2O}Z<2C "Iml Ѧ$6l5]D*ǗLG՗󅈂h`Aٖ+v̍SܴVA|p;!lIS牎=`6ga!2jZƲWS9g>!:—hU+,%/ ?I m9awKMDMq*ų}&ma5\hCtU ; 7p 1V7/iLI(32J B%I4d@Cm 9RA5:=5k9$UW[C.(?O]fOH/6=XYkwR?@:]L`;iBN[2Tߣ _mT%RP636YNPHp.\Z{A)ă+,1Hu%t1-%G= 0MrCCl<~ 6T+x`5 L #73-vQɃ_@ůch0Ea~Z4櫹[iacbE5hC =m o[L"\`K9%ءS0)K.:H"]cG3p_j);O߅"jJ[Gp&WSoA3 _ CyCN0 TH!47=QF{USۄ083 N>ۜHQ9'dq)D]/dǦș+ [ș@Ptig/zḷ/[+WQs%in!X0"(ca~?CݜDq)'S~xX^(_iiyKSBzB;tzX6 25srP0 ִwҹk3ߥL8$0+ٺ {6i])zϼRͪirWYت>l]Ү9jOBNU9w?y D[XThOYDKu?Kg!΍J-VcY~\+`E}/ѿ5߈iAjb}(eŌ)@|cم>Dis;kʮxUW1pvnۂT饊Gq_bg&_IN  1ґٞMdEb}7"? Rn :X)K+291 {Um;MNۂ/ H,'ց Oo~8&+xeq4H2/t[|xdNg8駥F~uzY`g F(-P]vGIS/ق "d>nɎ{{Ft9 pYXzJ;i;׊R}%}#vdTbܢ \aӠǪ`a'Y40we)+aPHp|DP^\41C74~ŝT`V UAG 6Mi*eFٰ =ޥ[UN-k~%̍9Wٖ>vR o \ *u(`3,WTh#GyUᘣ*xew׍9R,u?^x]$e,@<o0 te_WU R~0E'a'Ƚcm:5O_gCzh:`[0}j\+hh_CxOF=/ṉ@d\hjPY3# q<][k*M@1! JćN]:$018C|d4i)-ix%)eA%Ōw~KFa!n#g`u, gcj{}^ ͋/;$P4C΃笺U||`5M L P^ޝ(ЩoW˵wEcd1ᛉ|b_Hc\6gKBSQǸ@ A:~:݁3W=2B9+ω2I.)4 k l_ }|aVnfXrװ{*0'|$#rZi8_Dr:tiH J{ L쮱%M8a!= -h-YWkp濙Xu8{7ȑ55s (٠28&g5V@ Fj<}@dQ iL g'@!Yed=L =)TzOap0AӋ>:J]hf8뗉ǢҒ'*J&b.9ڜ;iu ̂(՗O/LG~w#koNJg׳xrAchJ993ufa|?++Qn_A qf*:"]9M8ؖp8d;>s}JGp0[]sh(㕕N)-ϜO w16d6 ?K`ZLϨ/Y) kdN3plɟ7'0to'SW ҂tFX&dY3k<?/-lPB?DVHI~k? FaS܊#SS05?ό4u-5|Nd=.L1+2CU h^VG3[aC\eR- FpbO]oxh.BmWʷ~EOnqj{IŮc_bTօ7="jJraTL{N9x{ds+g}1Ok|B)v0b.Cig_1:?y)I㟰Qpw kx/RUMC!KHLRKMT!Ю wn1(R5zfz6 /O:TeKyMbGWV`|3ovRko6.TwaUBs>7퉷 [ݓaVN4o*uE q΂f=qK~/ Ȝ Q"|)D{8}Ġ+FZLd'F%k3[TOЉDgt>SO>ޕ Wz@I| R[&dd W; Xq7[K]  c}~h*ڀ]yrĠ-׿F侨$dAL;h0qZ :P"5I}زfby1l̓8Q:xF6kCjtw*V/h (ˏi*VFEFX/6i'ִ"1(z"=0Svzt˜w% ̼ij0Zk!Rk܄ M"J|&As23'DFS Kا3j]ԟ)5}im|ZF(姊wri1GRUvR*KX!d[~0Us<A?ξ3a_:Uv;-80'I1e.gE^u4?ρ2N"-طx<B.ݷc̓뀊/ྟ1 v)"laA?J@mc2 +FXvWM,ͼ#Vf}a ?M5B)m8lBOPiV\hvaKsD,ˑ8e1; & ?7t 9+3f7 Fzײ{53, xuaQaThxަcZhʇǃBQyDf:\/^_ 졁:[{PȯN1:70oIf 03nN`2.)ԕBo4Wۀ Yb[fjXqɉ_UCH?c~??WIC$$44Qc:WXOxNՠ=k X޽ri\IѿutGV?pz-Lr@rbI z(1xtt9Q̙`5HX@xBnVIa3QAۮ$n–U,=~eԶ̑ӡz BW!~ g=xbG--|%Eϋ'+z-\ıG.#~|a&t}2(GA/*^_$4$Gܰ^tGGY{^0-"~7YT\T9uSz2CKfHTYb+Xa)f %|6ׂ )_`θႁsӖ j\=M7  dT+Q˕H5$ܘ'=ۥ/:]Mn/P]M,}6~KzktI:Dl|-şZ/zOұ;F`_@ΧDh}LPB˄ ܉ĂTKhv^_Q|)գnaE\Y rx7MB8]Xc~},n<޲\._r-+UP_|㘉[>,$Ӊ HАl0nɼF2X?o>,χKC3b;}e]NjWT0@B6fMz3בf^GʰNcgOܵya*f kKWi`&p. -(_wӈGrN`c^7Ze84MV*}ߣqEḾњ&m"hH e7Зw-]cX{ jugl3]#PTE^X!8RrwbڥMd|F] ig$\Zjו%Sɕ#!+p"Ft_ڱ6ZEʰO]#vdHi?T8]s@)__2yw~fX_|q+%]sNkgdKF"l<@mvO"!ALr4'TR19/? 7y݉' ݧVòbr_2񋭌>hJ29 2PXJu{9]YT[YRkRvzi! <Ⱦذ讲1 H;;CK&tl}WD4eR"⡾^?V.w̷8M ^kl\B]'Yfc#ih&r Ɣzɳ(zgK9O2[1Vpn/v L|=ѬS5BN]ž1W]wuĴSG2eG2M%Mh︁/pvM| Oc㭺 T! 3_3n*`=9@"Ď, CO _ X1B e|̟p3"4^}0P#:X%f+ >f\,T,E~pjXRv{y/N.In\v+z}Ů ն ELϡimπc슶 r1G 1b4w5 Kp!=X`h6#]T] O!1VݢxC6s:g;&m~*0bMvXji:d@L֗@! 7Ub :L8k0f:pЀr<bCrUbdr+[\\6<"|v c?fWToԂ}.+Zvk eyܮإgKFem^%U0Lk؜DzKn ۗN)m,Q'ד BM6n܉J u'֣N ς&0A4J? _xA CwK 0:G.ܮFA] %z/e}+%-.u7{{>qK-slUZX/Tt6-5jrKYr@bnc؄+ gy ƻdæ^lئE<Wb'+t^ ! S ˾4….Cfs._NlyBQyUhw1p :g= xāY RaդЎ[|8˩cF Q* MbK^Ͱh VThG.B6PHPhXdɞ'0HxP Qq 3oe?ǚh:{,wŤ¯)˛(/ 52 [5x+x'?pR9Y8:ßo(m1U ѯ-jyY29SI̶rѸ]ʥQ ÄzJ=YB38 <%G TRi ˮO-d\9SF(VJnV˗nox%j0FpNrMI123!iEn2drWr"63 lBۡ7V73V"n70ӝhWHis$Nj٥WڪE9)\oF*MY>e{''*SgU@[aM y>] eAtseɻ i>׭rKƐPH6Q)]{4s3S䒽?mZ|cZ{WrĬGYA~pɹAMrGtFY٥(uW>Oh>WHd5~j3tRαE 3;džW7S_i€j_my h]|Ud.^)'>[hݸ)YiϫU^ Vӯo8AHP0sPx 5ix}8BFטz)lƶ"@\M M /ѳZVA#X6t+_9+Em_A<НMVfB!Znd䝨,~YHG؅ʧqC,)tG;z111mMEw"5SC\_!*TY.qm+|>}Spr9Cp/s$s"jc3]g#lCQ>;ҨD9rgE"&6)t_`$ux S >`:%Bn3Po2Ԫ29GT M#OI{AbȦ $P_\y௦K\'Sj`̗mVH%oK:kuOW]u<~l C&&!T [~)+\>4VlzVTڏa>FZĐ4×, 9G]J9c\D7G{}2|HV/)syk3bJ:&SI,6E0pN)mN vgljv.4l:Ӌ B1d\ȺT FПٙ\1I7*+Hia<:)N_;vHP12)^l`%1N!"Un1j ݵly/T+ @Z(>k4ݖ-}S}s3Aem>QqZ7, =6mSe-;VՓu/SW-iV=l*AJ=ުyc%E S(K52|E5!8en4u"%ew _\tּ3赤wJ>35'$~`H+Hձ2SS< RmJ`dvȰHvaZV&±^73x +xDc]BWt) hxGC9-rz.yO(^ YۆHk@Ft؉1aM4b>SOn/"9gn@n,ʰsH$C}3Aר6 mS q͝SD 8*'Ӂw}mV;5\n/5Uu ꚧØ1#L-)zy BU YRb2z}ko;wҽTB{~ KJrČI݅X.2 a,BƖlmpe"'d|#1}D1PAœ˵MVN1mb(Fwi~?woKm&y=Ql=xq0(<&Ϥ2ɦnFDFȚqkŽ3.j̳pDAS-k_Ir`ѵ%WoRhY- |p(W)+IW<׾^FsmyݖSI·@rE$9iGXR)!)#-XO )$vSLڵX*hF{S-Ry@`q=mB8ପE)!R:Ts/$sF}-W n?GR(죡䌚ʣCsG`F$JoNy.R{$*Tuĺ=Hl809_a|ͪڥĝ16cAI>'ho=& ѶSY2`nai(RP Ռ7lp7O@Aaec3iԙ`aNZlm}u R* ЇP!G57)hi43jHw أ޼s2ha%=V+KOF ڄX2;?^IAidQhP>wNvctwD<{~¡WIIo+YSZL>DߖYd#PiFKpkǒxY4+ <*dεލK5dđO~.0?B!rnX`*^7d} -C3-hh.;ϝVܸ%e^ }ؼRzJ6c&&Y7 Fo'Z 7uI6SGcl m?Vm]3zoO ,]asH ]Rm9c^R2s;v X*7n`hc"NxSEl2ASQuaFѦO#구NWjܙ#Ya (*۳M Vo7(7=TSz>Ok+(K˒ID㲰/y8ز:sWcAĘH3$0yXߘ Ƒ"6c6Ĕ@!ȡݐk 8x]84+p.'8EK1W+C ̸PozLã5 uW#P0U5Hc&(jC'ΕAzjx$l{7s]H[ѩUr6_@bC30s-klR~q Q#^Cme1S~8,{tE^`Ǯ͟Wɸ<ÐVjG΢7] zV9_CbE2J`FϨTGr1t?Z9 o\!t)vLīHn# 7 Hغr;G9+KG{(iD&Kd5+2zlGnЅ mg]+SpUwrXSvq.ܥ0Ry ڣyY3`^]E(9!)'QZ 'pEuy8xAP؂ڢ^ɾľҭY/=o$M&HDnJ DpS}ۉV^b҉x/E~Ǿ,o'[Yf>0}1&n0?>Nk )9#incod}e|6 pJ!&4` ]Lj촘m+l^=_'0O7D)0W> 9ܖά>Hu >#{w%;Nӣҳ9!?_s x,5 A0>6mn@!yR,Bq,r:J:p[O]v+.{]5Bfs Oeo]zWv\# pM?O1MQ'\\܅rS>A+ R#=-?> !,y;숨k/G'!Jʦ%'K}UupC^bgM' >6Rr2H#pr\=n/5q 8끁2FcF&Wնq]W_K]VOhkCfV-zR ޯP$eȔSD͹3ק`2c1%2%`bP^VQng,J(oT$ N?aSC#wL' ((?׉J]5;XF'dQM7U5h2Ou޹W4^r85 {sAFntToѤ=^# jkuy&)IC@f_R2PS-#g h(_|bDro}v/[(%(;qH҅*#WY³2,F3~!gy'syʪ YŨ+ +/{`ot8PMixKz6}8#7 `JYZ \=9QN`P,2QNVIΗT~,{P0g5+mRiZY~4Y/t0Up>LzXÚujMM@x8 }ȃj_̬} -ڢlc'})'eZY)XJ }Erm!o.xG0q/YeY]x{!4 V|U-( ՎXDnSWҠ|dZv#zrjBGI_v+Ċ/gg}D> I{)mD_jƪ3/kҳg յ{pδt77 楰 kG\pGgpkhףvBsw=ݓY#-TY -@xdeně3xzԿw9T}V>cz-=Aqgz83Uv[dpAۮ>ϟK&MN+.n@Ӡy7m`24( ojsyٟ;Buq$dW q,Jځ,TN ẗT&qˉ]U C;r6W'ZhY9^u\|_3K+5521\IKjFwk}W]C7i_R{d4rfA]U'+Ru7@ߔm>պPݯ.L/컿H&ˀɖ́~4\c; us`ݟ(h&V֙!PTHwWl~xMːHՇ:++xrS൩eϘF},]c WCS3 FΑX17"tJ!+JS-2uǴ1RtgmWZ1.[ |K+y 8lU8q7f@jl)<{Li0 ` lb{㿇p=S=8C$_LۯJcG}>hBY:}qA@¸uǖŤ^.1jRV,5 5Xmט\v*j?el ;7-)yFpG5n{&D.hIq<3 I&<7 ˯N9oȊf+>o[E.Ic>ADfDs@ȸ4>-+?]?aRcEfvFz)MQ{^Udioʹ; *9l~Juy_b1/+fih- |/+CUV]CrA7C gð0^!9U$~clXW9"ԙRhAbR?Oz].^"6o؎=*GIZmStRK'T)fH֕;ęcB *R500OgLso\yvp 08cy%~Y.J} bgP$0Z5mSafz!M  y+"],sh_NBg <\w0+)-5c+,ĵz.]^u}^3/~P~pDh!9ˇu&x 1ׁGpiu<N+o)4(nVdgguEUe8xDb`A-pӒ;#EN0|:AHV*[ y7`o<5_Eߠfa~ѿ'8vXIiAA6}q{6;lw;Wݷ {5hOTҾ=2DTVW--?1Wfyu:5"F5&hUp*!#wVךb^1"m1>@>Gم? }}臰8}5 {y&o՜ :a035֌h6h,O%"_?ij%w}]?cRlF앟Ҙ6ڧBߥ {l.lA_Qr|#r0T_7Y֞<F/AvNA+>Q㶄(âx.ĪgV UyҰdHYGu7f3.23Hm ,84 {5Z$ 觅aB9"+z 7 ߠ@z/̄^kN_~N ,wƴ\YrMZ. ߿ nnk` XO:Z1 o!ǻZ}^3c%lx'9.||% /%i!}5[ƮX)./͈ $AٙYbrHã2Ni\[뽩l zؚ7Ndr*C2U>)އ!j5Y :*ȶծ0bgޒBIYYS*c=#%z&({gW qUа{V?WEcl\X .+׫A1Kră"Yt~ŇVL/p bL WNޜۆE6mj$+O<'!M)lʡKH[6T4 z+tZ)1xJ~lTAa_tA{B4[Νc;ϑ诈vX%d3)xEI˱L~u,Q', 4dtP쥭y]%ӥ\ #dmrm5:p Z116i-g3DB* d4'1X2uԘL]::"Y"mKYz$*7Lq-ie8G+ }=!l뙺p.3-{SnpW_Xzx;Y; &su_9%w3FζYLwsy&W00_I׶SÉ^G؟Yc3uGH.|jETBfRFH/EXɒI?ΟS[A>Rڳgc) L>8djFxhlP ѐ=;΍^l&Mv6QF@4tt4kHLf028yT]I%$"L>Y-[Z*ceeZ0O}Xs{d&At- ?%hϧQt(bŗk,x5ıx&ٚ (1JK>z1nktP9]̜|FevoT$v0莣Ʋ0 L;k"vN$[Om!5iǔ}vVmn  dzjF6V: c OOc[bRt vul%|ޅi(~ݤan8e@T/?ڴ1jF%nw L'>~9`C7)4@M3|*(O tTz3T;< ݄ZSC[HE0)xnO@M[6qC~bTe4@%N7뾔xi͢>IJɻ?ΔO,ygW^9ȑCۡfdҒDd*NwɧHhI^:fs=FP妾r!8X/J kAz!Gݥ=Gaŀ/PLR߈4qjʆp23wJ!cy+ek@ 9ݔE@>rNye;AMOzx8?tm(5lz2HUթu!z\ڏiNko'ٴ=QJ'8Skp UIԮkr&ՈKB;Vp~ǽ23=ƨ^*IJ39 ?j,P+kqnr.N$&] ڞ@,,v+9n}jС58 d':X躬O7;?u|`W3(\1Z}wpc'DuN̎Qsm|V;"iyK]CFn0H(dFU@|.Wt;E0j6=vb<pg9#y}G|:&.O売oUah˂)&/ymXɶH{I*PIF9 +$F8_ g*E[ѬTYSmNF7`+*ZVŸ+yM|S"Ȏ;)'je]]Ϊ=? Heў\)gI$ұj@sSr^BVŏ,#%W5sb$,OYϷ|}*?d>WB-7B.p5@dr烤3&K64O]; yRV>>]U ni.H]K? ee4I! w%\MXd ]q+p"T0zT^Ca d;8=@XB8g2r(Kn7Uxp<|ͰaD\8 L dٌB޵*F) WCO6:\7ÄdfT9J-aE2b1."Z̈́LH 0 PZp= 4۝lF4K{?I['0i}#]qS RR׬Бt峖OG rX7fiWkpnqDkaO +CwDwv@V;"-+#~^AEƧ|sh(G`!0ISfi&0 ;ǓȐ/qg+JrM;`噵$HUe{i_*~uJLncԯMf ů> '@K;ƿ3Wg9+f#6꬜gj]qr)U;ścnDg!%ꛄYeeTtRa\ύkͦw8k<#]Py_{Xд9*`'Bs/;4a#+v\q&5l<埕ۓY߮ȓ ,3IrEYOU<6C%eݍF[G&E&!9 Nf(n#Dt%(IB¥l YnDY`q)_,@_!bfu\XL'Pދ'!^$]~kfPLxM#"r ^jqHs x-"f}G?QD=[nV*_ qqCؗɞ8 @;J4#7&bS x/yaOp6݆&fmf%ػE^ŇRĐqZ|Kbnb|K;.QG@ߦ>zm a |^х7nڗ^#f8??Mm"ܞ):G%x{] Ԑ]}CZثcu!z@Ê:he$) h taaoH/|c?5$^;κ#6TƏF5# .[9,_T|1e- |" '5X^x` SGHR@QkY*@=FTp}4`J'¨8=H(fFCp-&gf.MG-p-"LhH 0 $jk %t>ipg+?`v 2Vrx@j:)x e)QЖHc=o^.*]ovsB\5T +SG.Zw9xyq~+uzkl|6y,c۲nJ%NyQfk,@,hA,)KҾT&.ꞟ$.""%+뻃]V۲FPqY#Znu,ŜW:nLVow4f%3dIzd CdɞH77 4{.ķsG'. _ܟPwr :=NX&gh|3N;~re@/ :Uw`e#5BGZ<I *E4Jy_W\g-I%?ƞB;ffVt'%pD!f>yݗveā]^Ō4nY" d(KKcȵe=mvG=>wW}ڊT363$҃_^R)x =0*^띺KPt4bg˧Zj6MߌZ h4CN&Lor/|gliO$J#Bmn~+ AfZ[R$\۫6rQPe=w7|ܑ`(wk?D شfU8h(98g'@kzĊu{nćQ$檛;@B`ʦ`UdE4j!ja+p%b)ymrٶ|` |.Q%6 ٘T ƮJA¦OKD0!G% JPf OzP*%4Z;+MS3hu"S<.n}nw& 5U__A6i]gc0w)rn7nFЧq#YKB>ߜp Dl:j!/zȍ uLyzeF'>0acpSW^x̛&Lyr>iECm˼2{*B AiU.Xg/AK\5Q O@ɚi~|m!&bMlj1J5Ԧ-'{+y^ AC BC'ƀ?g-3ˆ咿Z+r7cR!r1]6T92km!/]ϼNiA`@ "H!_o)c!:u[QKKXPJ^?OkYѤ4~>f$ Tʧ2zDHb6,νo9_pJ^*", ϯD@uZnX$O=+aɴU #8WH[@HleE̺[9#O1xy䥏gJ鑚[0gJI[K7@9P-iŜd2ew2n=W eJ`" +,B΅4CRһ Vr[3;bmFJ,#mb4HJca৏P|L2U)H&Q58n vM,EYA|A g8DiS&uܒi4)+dUVU Y=voM7ŀr)TxZo Y'~< UAv91DhQȚ c昂-rk89i⸷g pnySq3;&xCng*ҾmS}vdˈJ,wcU'45T;oxW d?酲}/ |tmքO}<~W3q40o-TUԴXxeb:(.F=;lpC[2bsP'g.(!42F BBڄϙ%3]ev[2ۘ^TT^O ~P+$OΏ;~ ' Z~\>xoA|B)\㖒ksQA, 6b0CS~- SHpFq疸%y4jvˍMHg#!|̆ m$ޜ"¼hO,BoK~U=y&C_XE8|Yebg)1ѵst8sxy`v(pC>c!i\,m 8~׾XE$Wui9\Oe Y㎢HCpQ,B1_y5ԩ4WY}?|MmgH5?CaBr>GC\zhkw|JT7`U3Oؼ]=]jΩ09 d,1jkȮB :⁾=`XOF`K7!A=ڗF0{8F2݊3$iGű^d[xg?,fX40R) .aLHFspTݧh161΄""xRhd''Za<$K;\5'Fo֧)lhJB(sz ]F6 \Y3Y)k}j jmkz@+ VB*oVXOWB_Y$i"\I{ybu\&Zǡ|$q-?@E]"vY1DX/yʍ~yXfsF=ۜ9BjBp!6k ދ610/ap:JkbC]0! ~ 띦‡yA* 9W*[D?#?6B$ Q\9]9!VP: 9-9pheOXl2>T ]Éֈ͚y,,:!A|}@ջYCͱ1Dj)$GX6^F6ŧ(Z՝:ȸ؃䋬-ǁs𪴼ZǓ`7*%'"3<ȯY@0VyuxmZd)bl=opx![zLo=M \fC- fN* G:0 xQJR37`scCאr(`x<^;! 65P!3rEQ@^PNR[*naîa(`y} ,hb3I};U$qT?Nx߶@HgӧL!]t*-?&)(d[ =㥵5~]:Y1|U%mZ qh? :-Bꝋ?Ztԛf(%[Ibid؍Bh Kϊe0+`gaaUz$ hDavӌqsn͖7ND7mO5VQ1ZV֫$2JZHhNѴvr¸dK;=-ɗ{q8Zh+KQ:1-^#/}}55aqG$Khu&(*{ޫ4/=γ5K9Z3aq[ɱiX*̛'0wV/1ܲh  /t󛎧 xDJoɔ=nW,K\bA9 janp%.k*G+7+XNwi; u'6].!-gV!&Zv 3 ï=667׊ \V]oz!s}N. Ǭ-G44GOY\%oF;op}u4pQ1ze%gx׵#qŇꋝЃpD%5%sФxD-R{?b-vIHDcCPsשlC@4.c[**yِi'& 򤵶{!ة0@Q,o P&>2|0EIڠGd GIoEUFto^ pI;$GkU}wSE# r&SID6l@+|+ B7=1ͺyۘ,`WL340R?{L2f#ͣbWG/^;WI! |ΑKBH_T !=񮆒:vg>S6Tك'rS$_CR#h˽J޿)t ֩0mZZ;nV-BaՅCƷw%#rK*ԧݨ:/4b(÷deRUʼHr:U~%^Ɛs}9j@7X E(oXߔNSӇăZ5U7tuXFT>#՚F.Iׇio, W}Um_ŸK'QybrdSp DŽib46F*iZ⎠A?BR€(7nPzLK xygO /sס艁bH_N=e*͑tog'lQy=꽂|v(F/SHKf)Hݟŗ)mH+,f (3pX9/Ϋ gg*z0]B'V=u? OtGKZ ؋XH&ބ?.iI=Ӷtm,q \^ȿq%t2 d߮-q^_o|,/G~Y >]އ-=6)n>e2Qa^_J`am&w1IV_CˆwRq^ѿMZ5ىq3P0uz_\q%]_68k^d<"Y8d~7 j**Au$ IDT-vRZX9f!?4rjkL|pdbrwnGh]ҳ#K A}1aXn^6˶ATLQ n%I,' FXg|mgf'Dvg<)X5Zo>+Ca'v"p\VXUF_q[76%v XA8y@caJu?]H'S a39w"߽ZDًd+pp]avo"*m':\~Ża|UOQB^[0Q3ߙD< ek}?1:4^jdƫV=3 KkzWp4Q{3e pPa03np.ooC[>r*Rp"3SYo*L)+InYdzu`)w`Sוm-d6bג{)'PmF>,-mx .~ p$;" 09&D5rfga%6vWߺ :X@$ἨCbf }4 J$ k=:]zTҔew'n$AG%ot/JhA<  nmUb3l# lS^EpwG/3>_ 7|*Pr\3oF]X(A 漸xe8B/R-2$J1Q/yu~^?2Z66^E;Y5l4-ݐS_b|7T$HY=w%M'd]x0x U0=:S:5w/m9">It' .sLG4h ~eiրŮC\A@\Ľ$# $H=p:hWڹ~AoNwݪh t?r<:`^ξ,X.:q7;TssSբ+.LZC+f9r+E܆JWEjPݙ,2Cf+)?߁W;Sh6פrʻ5>׃4u&#VnW~Ӈp("6ĕJ6`*\)2I-/R!~?8;4W8NfOt!$RTqLlLc’> Dupo*ȤXJ:5TxLeeNKWnb\KJX^6%,1ך|g[$=Vԅ1!{tj|Ιc6r > 'Wͦ\A~|,͒"T -#aDڹ7 Y(Wx"Ye)ZD6N@E&i3r:E]A\v2JT<{wC.90A o1s|102%b1 Ӻ^8TTUNsc:5 GYfц{?9aJ/ (whFP0SqrRM-ip萑:) ='cœ4al&s(ڟf6L#t"WnV,z9$̤O Og7oK;}B",N<345 CĎub ҝ,m#+G&A8ό+<גV}jHHM.B8ÏwZʶXfŢ.yձ.0Zl̫ )j)քn>%7z]VdAjzǏXƖxw;) IFFq\PqI+@'SY|NRp9ed] H./֬ jФ|!S-B[(>Dl)c=֩EKNB-B{+(Սž -t7n`Zn״S-gBUnGҖ50hy?/E&g.eV8#a*w1 uLgbMݺԆzdG5WMIi;t_QtCkhI K͊(nU쮌QV+~w6;b^?"a+R7` O4|zɫEaf},\&_2|se j-]hh"'J~S4faԥ|Yd6GE1$p޸}? q= wEͬ|iO1h[{Gx Ee18ejy<ƾ-`6N4e$Afb{"8P=z"Tk'$x />2K o91ŌUiYdrӛ;f*F[p,߲ϛyO>b{yM$WL_RjqXdiI?![DJMie/t;L1ipcV|dp1ϧ rڱ--+ϻv5%R(c2v`9ly}|ZvzͶlU/wI{Gz/.hMۡD8OIjah)HԙЗh糇-, 'S |hAdY~p~@w0 '(4 DbS\z|`b#o7ka12$"7qOxڔ}tAhc s;XI epz/KJFģ@L qFq5 =OA݌©;{\ke  0Ayiǧ’ܲ1O!X)G6Px ̾$Ɯps%M|yLvȩa󑧎Xd)Upw1ᐞ cj}22?vǖzߛr2 r 1/a]&Ukh%a4fl@Cky%3>m@%?/*[?{ࠟ- IvOi0a;k<<^l׀MO& `x>f0&ӌ=ڛ\ibo.WPq|,]-|l3hX@u0'zgvY|`F0דRz[*Y]hOo6Ug]{ሺJT/&jO8>9ii65s<J"IPטi0bgq1zz{ْPB]6Pj6{->C1>.Q崛Ȝ' -֪/*!@, wTryz_~RUd=be+O;ILe<4qTl>r4ֽRWk5çc6rՌo}VJ&n1{!r(#A t{T1= 2 "?&9l6n@A{rh^PW ۱&%c`B99/ bYR7GsSQ,2q^m<_%:_%]NRQ75FO=łS.kYlC.|$9 &Y-(,h?$oS2u=^@HѾqTZ:Vsї֬(?KlTY`HWG/w+rx,̅UZ}>2&FFfż6TYO\= J&M"zFMyzGQxfGJ [,TGʅBZI=eZ1>J?"}@Qq>D޴(5S^[7#ŌC TŪԧR_ݯȔ4tv1˄X1|l3>J`!@gd\)seBϛCdBۯecsd~٥k#l~Ŭ2[g*S>DwYb:a6}ťpWV"bw@ vk~|g5fR s!i]N,.`82Zߋ5n&.,M_- 7Qye( K5=]\`7z|'s<糥Hd½ 82w/iS :NC&f[tNOu5I&$hAxJ$[ uѺ,zm{Iv#5X-C ѵ_*z^7C_Hl\a 93~ {P'.Wip*>?5%l af:qrZc\\vGVR9)7C,N` f@֥}iym!(s423dbKݫSXG 1<M^w-TuH)F".Djoƥ+3[kdF&a\ !*xzY s 3mMnoy+:LKXnAN2u(bK ȰǾR]1&o;H,CHl )֛A䘰B)=D&֟R>5R9n"*8h!鐭w{R"=tqeK}H/c|_mQ_cM ̙XnQ`؄BtCxL>ΖAMhd3ƑuufE' ^K]\WM=F\%rYs*IB% e%_8hk[hL䱵BENk]zq~ D*o# W) !6&ȤbGXKajn4lxM?#.|2)?*QU~dg}b5r2"tKצO+ b"L$ jմ9p@^Rx$%qaJ N? ɤ D}Q*d-r%i8|Z9 y3_sř1Q̒I>z,wObOFx!IFp>UX$-]oc2$6:uET]2L;Sv]Ӛ:|:ÍKQ\n(iJ㨥0~ǠI43GOi{rKU(Jhya 5<V{s޷Z8&S1Xd n`Gi ,tΐ^(uohpX:qyԜB$>zX:R烁pQ初taoUC1fK*{8)=NBdf0Go!woꞀCE?!H Uc~Da)p%q!H#_rʤ}< HEYn]4l *C6ܚ zĭƌ抖*ExCЬnfyh+H wcˢK;wdIGChP.A<6]5CXQHX|Pdb[ jMɕ֐ڟ\DmƉ*Q/<!BZfyhFD|bRAvn/HԓTV][O"hA/<=ljT"# r3\3RJ -\{h/ s`[N3]>UƋuӯ+K6]vĚyY:U07?\ҭ+~3 6lcL@g'Yy+MKZ$Gp4!L(Q3ĩ; `v*t%A{!YiMq"{8ѰƬYKB#.ukL@:>^:8fWq<=k3J}dmU!_GMF w,Hcۖy/vQ,hs ޏ!}i4%7鉞[F9eRVwGNPU@JǑ&~L [?'2,N. B_(8 ijāSW (-(R|b>[ %4ʶģZ"5[ZO u Ffz2tsEVkQjoWWuĐO=~nãBQ3 &P}i5Z,㹙CAeq}VWׂǥ ')Jɽjy'a:ǧO]59Oa089cl7R3%<+Ĩ w] ɹ?د+ iNzmא;3H0em i Bf՚' rvAFXzOn`@6MӖ3HvsEGU \4;f/%BOK3慽;J)qLq O[#|#hOd&H =rТ~ض?$(Ub%rQg1<B|͔q}I%;TyZ烺f`:X;ǬVǸ$7)O}@hya i &mrf]sMo.By(nXۢƽ^("Ɣ5CY\H:cԍ91}}M[<$AF(urrfi,RT,JR j*O#?PkJ~dUɈ?aʣwI\EuF3aL4=# tZY7sgUqk='$[bb6ڼֹ UdfR;M)H[s:Eݻ!O5+ࠇoۏ;zdEPM;ᑼ=UdT-Ǧ&T'p^S LSbtՃs7;P0ҝ<W m0LJ(!_sZ:/ )K-7 ۇQM+܌?QepmuZ@ Fh۸mȉqv74*{ZoSH5A㋹-aV6nr;~B.\ȩuPӟw:C5wYR_7^9C~XpC*%@EY5Aeh.Cz!-f 0?k~ުC1;lR5_xH:c yRҝ(`0 hd|>ٚ]h{.4e[b[0><0' 3"թ\,HvML9L8j^Z G$,amf! Vjs؄4aK7JO(9Vd]tWA]Ň/ cj19 #A*t.A-l #XPM0 @EwЧ,) P{IVhrދ.pwr}f^G.Mv%EX@jPU(XTr(hU~#op%,-Kar7AX%2> YƖТQoҲ7_#D.1w"G7<R (%c&!z]=QÞE[&2[F$9 =kuqţYܮEpjq{:6>[VţCo =T-˫@F^W\KƎS DT;"3@mBf.\͓f:uB{WXk@#LweMy- OgVy۠_:ݸ<@#4FXRtG(gZ(S;"L:E M ooL81.|Q3_#~[]Wa7c2zҰǫK 1e<XZ^F; à/Yo>+xVL9q]'4{GT| K* Ԫ?z4mXITy?tOyZȶO-;Є)%hG7W+t x Aqq)\Y`MmwqKF=5bV&`!(j .]r?MO.\٢0c^$m53{BιoyI s9Ovdzř2Tk HuLLv„0qgϲ]莀9D$SGc]eNRY+B2T;>MU+ZNG-Sr^nH%Aka 6QBKOy4vp l ߮oy'Ą(f@M'K\=ïo^z[Ơ9z>PX D-7ѧ߆W]hjyS8㮼VmR*al}'7:NOj/Mr12Nyti{1tq9Ƹn'+`vg' typͱ_hPr˰̉wyf $^fT7*r"+, N|^; ׈sgR(n0n,LqTƪAPfr-o1zm"<ˏZ<+V-/S2{|:6xpkC}p0Ar]-^45 Ir6V!ez㊔A1b9/ iTLIˑ @q΢>Й\Gu==h_UZqUmue@x%1.i+w.QNe]3H(v|sB(L%9XO}ҕZԅu~h%|egIP|ś3a*KKMKZ毸t{Vo X S#Jݰh|X,Lu*M wh I#df)l> N}9{Kwc^ E'Ao} t8V ɸk<ֲH~OƸJe.,#=d*>m `eq$cd=a,[,Kd ,֎GF fڿ:JBvn)ePH ,PU[q㉙y&]Ezlan!/  oDZxc:q+Ca9*dH$`!#S=8㪨b:ITVda*7e5!<@-=g|J*ct4uOiY ^ b*JVc)bM=4kB`9֍3~YPYcbYjXsC]$<oVRT!Ôz`nʯ궔g)ܒb;Y}I:;7YI 'ixz],o+`Wkѿ /tS%޲l:μèGט9 vP-Gh#jqrpibm 9B7EE&g۵%0U~t Mͬe_<,RWl#Wiݰt負Ujf@>VVFnheԭ̈́C w7XڅQŐ _ӛbO9:ع,,pRrQw(H?Ѝؽ khN_Eŵ֨#Xɮ`ے؂=6r ƧKY6Dɧc tyIS͂$y)U#o-kˈOEvB@;`]u<8\~p|4O 6ܞb qA,u^f  t{p?ڶ xԾHyGcnza(QH[0 W. |59'526JB)fv<rk'j0z<>E4:Oĵ1*[rh58+lNj򭲞zѱ59f^I><Ɋʳ \"3EOȠ#>'dked%B 3">|M L4 &piD Kf@ XqW,>-MpW`NK1վZѷ;neØ9Qv߉x:|nVߨC')'W<6ΌGXy]}/ er&<S#jA%djDmher,oy/ҖV!:;w㸜R-JGQjmd624c(C2gFĕs@"~c,TlҶ.K3'֙-Pg[Z< B^4(³ %BaBm$ِ7_@7x%r_(n M[Hd"RBr*_㸖VruUӈkdHQ%mJ͓ꙑcm#0uc#kiq4+sYvqȰ9aa}v|?. g_Q1Y9඿D׳-v.4φ52#b'wb˚PG93)vTdLb p\ڞ^h nЗ=YUNm\&.ruKB}Nk9ROT?g/,'l>c`Gf':ifNք &9t` F4NQCNL>1(QeJUhg%cƲXIިah‚l4;KK sඒ:Skj`:>|]Tf.lTW+GM01#܋Y aPFK'NO `_lmxf_ֹ&,YM KQFxzȞzQQDUO~zEFbaPwkk<!7Ƿ]wGS:`!+UkA~ϔSkɷL؏ f_qT;#w[k4# mܒRV3)wh< r1Hñ2lh2ay_M .͎POrd\eE9vO w#DUfq@8Yti S?v) }l%SizwT)eO~_:h.K Hz-6#?LO+:-߱_nKU8u< V&~"i/C#ڰKȬGDVUj_Cx>pa=eS#&NIų(#ZbKKe+qYS3WGڬS9m/ǵp*)K]a:u=^ gF-G{U&WgDQ!Lx'D#efOɎaQD{ѧZFôtnU#1T+]zpYa]oNy\i}vLhugŒk`'Ocš97rTxDy3*5KۍPWk,1B 62*jw%1&¿7+"r`vC#Vʬ0p?B݀}:ZU(mTȮ:6?Nn v93BWBDIFmT AMB0Vï/;Bs6(|y1.e]Åiiޭmp1VIrc۷螲>C96ԵU3W$PjV?+ 9Zoe.GF>At{ck3KIn#eG(_%%l} g~yiQ,D#q yPLe4dsiK |EAmx֔OnPj)k!b;>>M)tZ'(?Cu?~ "+t4~r~R=Z3c\֖IG7 8z V`M% =$goݜC,}FV²$D T9ypF;Et a&O9@ʼnG/Efh㎬~uwGUmfšYU%̯j얤Bs; }yzUP+n2뚀 )9J:+5(P/?^Ps_,Ir?`[lhIf|80 w4=l6+b.Ž)sI&*S-XZ oFӈ6w k~*\gš?_rpjr\IrKoCɵLT{eH,/:%|AA v{AKIե"P'=[~ue; F5 FO@3 <>=[kHd}W{= {}MbW= cT1*nD[!WU݋pY : xWm#2asR: l8bXp;՘}#2K,wQ_xQ;93>ap!Ny///nPE;pe3Jcn~+}-R`n[& xH6)GwoY)HkCj~x}f!^ O&RU &vz«3<5a H~mܰFg ߨ{Wν|JHTBz?۴{S6K^.&u ~|l?wx%A;EVy(<10-+k9{dҫ3fPeRA><K:L:ھ9VpYI׻%NsHk e$Tj HKu&"[{XE6(xϡP;qUv}Uԕ"*fZF[]CsGh :H2^}9X(E[sp\ ?8#▎+ Ȭ'@{cߌ'js/ǣAk[r_ݤ%C}QSҐeb?U5D`5xucLOjP`9V"gQϽXS&9g^яhj;!-8&iG6qP[7/7 Xmxk(]mk6#یgؙ7Zl| qSufluc`|uRZ?_ :{pXMG*ǕcFB SLl殮d4Ogp^i~YڋCdR8G5$6Gq.){NCVė^ tjAeYwe } *TfĂgMƁ`oui)WUz0!QxLC s&@P(2k>nfJ B1Wڊ,(2l".^]{qvUtkhy )6cxVeЊ=ķO.*~{G^Q?%DA@\;p꧎ dKGᖘu%~R&_{$ea)1(QS-w~ǜ}Nu{TOxҰ)sO;X 7r0LAjWIvBPCNq ~[Jq~ wLI2,J)q:iݛ9 J*GZٹh]p(΋emt33- Y|5SV.S{ЇUxmn͇.h[-YCrqvEFϭ@%xW(Xp<_YAVsQS+/faI[o.J)X @#*UF.$~M}H%w}aۮ j4- R5P'Cΰ?tOENGAwSAD9vϿS:aEU}ͽz!#Ca--VχJYyIvξ3zE^,E֌mSYcG_W` v88 dkM>g&逅0b#΁[pyvj(3 ,qͥo+Vb7urt#B8K|yy߄ H鈺}x^?~Xl3{ { pl0AiaddP7eKW:G[L1e6&QtnƇS4L~'ghr,.m,>BցvlyW2h.r޶Bd? L@mWZZFy eyކ_q[jhwؽ %oܞGAiԩ]ro I!e ^il{T8Ӳ5VT;j>d}5ۊ췫Fpe@SD$OX!n-ql\-zZ:y# .$ŀ1G#Obme)eȎF?OɬjsVႴkNH:UztqAk0F7>:Լ'} Ys[[ n \ vQE=t[GriZ-c\Īv[~ _ , {8"a(LD7:ZꏓqgZ|GB9ZbpbvW ZB,{ c68EgHj5r MYUN.(Ҿ;{gQnU TtrM'hL\<%.Z`,cE0d#`bc3fjk`FTFVy !9E Ύyu|$5e DqT􀧀dk?e.ًga~pHGuF2NdM6Hy9c/WR4pIC~浑[)[l i֚WƌSܘG)C2@]. fξ6{# ({dYT՞Ln1ߝl@ozΓЪ I0Q6 UR%w}0ʭGl,:[;}52IvY 5hvD짡77|R*Wf0ͥ{բFfi:$[x1jx]BAOfYH!x&_ jL}Tf^;KUb7ؓczjL1j2rK#RY\ݐCCԞ#RDXD;HI Yϵߴ=պ"l/eQD~bty*tLF\7$e)%dHA=m 'jtS21Ϥ@~+ 0X.Fk kp1mqEo>SN賶 /*\"`n^!zRBö5%XT$nzy'uY {&t;2kq͂k9hiixBk-:m z/5ء~Rf\z1)VotlKئ jY`^O-[JŜk{([$B[=qJVvTSWXeL@F̓BZ,U9`DoW_^]v_ҽe_ƲZ`95oС1P&L6")*1=/䄬]ѱYiE'ׂYy|Q 2_( ѹ`jԌEMH ˩xb|q@[ҍYCc˨K-.h ]>e ž%AR;#>syP ﲧpJzU+'W/B$w> A*H;#,['9QM~Hk|˟)'r _T b/#1τkx{X4r[I#8qtnE9M1PɪχPl_aʣ:qK]޼!b#Al\H]N^Zzn UXkz4l 6/-8B0=;ܲ55=<[0O^4Sx6yVPݕOWzS[0+(3ԡ367N@=) cCIb?ns݌2r,bϿ Gl;HÕY2"~/zi2OEGg@)3Y2*дuqhYYժPUa>d8p#QG`6Y)/խi=NALj='x~~R֋{R6qBt@5H:HB^ȋ1\+_S,pCy 45o]aFH,? [+aY#ыBl]p_B/g.2#ݩ؀PH8NRtݚSƵ] n4<+%<9:H`¢}8*)FS^FbYWnŖ#% Γ6k4ht׭"_V! ӓY{b1$3wc#j0A2_ Ё8*%J-U`#\#熼A Cޜpƒ @\/$Ҫ(Ni#@I2xvHM^iZIbvfߏ^ײd=.ԝ即7:M?WeQ#jnҎ' 5^$wkr=96HL{*iAVE 09SLmS/Cw/@X;d0]JME%tこ9 4Su^`ws- >'5W"|:ҼfEfjԌzH9ڤe%JH]\ObNxz#`!{x6d._j Ҭ\80>hm@IKzC^Dz8v^[k/KjLYNT4>^!TQ9=GQYEY +ILYb|k9NB'O;0/N.3G6gUYC*~8W.=5y 54Is" B/`\ {;CuuY:FUIЫf藉y#$=zql'hϝIЇ%m4)9! 6ke dU02 @-1̶4k2YuacyFKHieߦ4hhCD?ǜ ֨f8{dN Xw%}5?kQY&NdY珋BﱑsDUu8t OmevrT.jCP=i՛qa! _ @'UՆ,7ӞQ,%e?`&?H]1ZHlz-nK3ro_9F'o5 3BK_a%m9|6mY.^MjC GAP1_ׂ/eokW/<ðGdJ*w?vJC۾o\QKts4V(\%G;VLsm 𨫁c0pwVYhC# \Z##7Z[x Ijo(d=={]ڻ ]1lRm)8EB yXU$]/UrQ><1i<PyzAmdF[T`)T&s 58TEpd6@z# %⢩*6d}oK=i5:u͂G?Tݙ4'JS).(&p=P象4qRuޣk-P@1wTAe1-*t +gtc)HiM2hiOrxa\:1H")ڜo̿jD@\3_عf۽KW^3&$,9gD:* N鷁Lb^:†P}¤5Ưd\0xoA*)kan${}\b[XyuF>0 3BrzFJ͡J>-?_8̡CB1 ON ȓ4I1auܔU ġŒw:x̧rQ$.cH߹aD}v-b4FI£ ^hʣ[\?y(6aJ 3hmET.>$w4Iu)rn7AR=t'.;nf=Ns| Ʒvc_]a4_3B_ۉG+ckݪ`=8$H,aZN/wڵ^E6ZT_?mVsi=˗j1g"`09!YpP%[}Zt$B8PzL~.‚ʚ$.96EO7ӛLbR"s o|pubɛj᜽{M!Js ^ |F6qHiBSϰ E!Ns0`5 (V)2x,73x<>+~r2֍識9p;P4]qz$b Hؔ=!M]ɳ|u엒X;3T7X..Yf7#=7r"ߛ~MDm+;G1.8R ш$T\0N}WA,ece; D|ݐTiKC=Q(2U/~dZmGj}=EN~OdcG|g< RO0ljdox=+)yu % =UvїI> ${U-q?-♝БqgHzp#߫HwՅoقXyyoRMc%4St1awoi*[Jt: - C5&OB\ *QC^4fs%#>S7p1V#ِsa|2"w2 ؏ر't[/lҟ|X5 2VSS'+^Z7>E*2X9X{&< x3ؗ1 Qd)=E~B@wSNi@?[v[kT̈́|If8 :3$QD)Q8^@f)mFyڙɅޙMq`\tB`ݛ/%'OY3FAO ! 3Atr7pE\?\Su"ur 絻k:ۥ> f+"-r|LTr~f1bF??} i1Vn?.~|ӯuf}` ^%ztŐ>&1laQ6xa܏Mtmb{j(A@k2ޟ-\D {;[ yNd:1 ^ ?80?x1bhM##HޜN ^fPȞ{8p5hM!ڈN8@*v7- W5kl<>.=Y2V\$(骆 :&N˦yȢaI$ke ೨Ӏ?s/3v@G?t9O"wYW:q%(ne^)k0XipE.sMˡky; jK_.¡zPGo\^0X`3AүOPK~r4Vy[Н2 ];@.,~ХAdf=Gƻ#fd,dRmVVe1I= #E'|qkɽv#%Y?>Pۈh*OͮCw 9﵌w>@}Y^ݝE^q@KG O]aE(4%M)f"׮(*dsƺݤSYZʃVGw:o0҃F==G}]!6qpWbZ:=k>a,^Vȣ~up}ݖǸ$kG!Ӕ?Q]ۅ`ddCVimNGG9s=f#F f ‹4njEHl3IBM^#u݉t8Rj %E+oМRwShǕ?OS8<xek)2+P픥crh:Uq6^l>WFLmj؎ʕ#TTaPn]_F<`bhI-M#7G_]R_Ct YB!`^km7R0:?i,Oq_5WXqAIoaw羂D7EU$T;$`}$ԉ]r&)pgrguvSRM ulzsϑ8' @sQ Pj{J W;YfC\T>Ç1k9lXy-˜1u# 8fFCTgèF:QAgAҋGNl-LlN*Kr_)_F`_MrBCX럅1%ꖥBb@P|E@ K8VxAEߏU= 9B!#Duk/PtF z!&z0xWt\7 Pn_B1Uo2s}=, ToSv=۰ hT:VVs&z('a'./nYѿ{cpr" }ؓz (P Jg \ZK%_xJ"2Glhd\J^gt¸fJ$l:ЪՖ,m]s@7傯fdnvwa(~% +EwtΒ)fyX3yieqدjFku\?iH2٪vA~3;|^Ht@  kUe+47,yg'uTd~-[m?ۛY|ɘ #nY*#P+Vk}0.}~K VL6)γyE,?9lρK  V`+lXV&5;9x( 8)Wـc)׊7%"E #Hm#`L+  v%lDpRD&%s!: XKM+2 __.AIYbe/a)ż{D3fy6zLʁX)%broL"U^x%zZ{{_|뚆x?> # 7KKB0\F yKݜ7UC6;#hF*5\<Toh]u>=@+u67xُ< Ԃ>OC5"gpnG7چ&IƳ 5ݵ<?/y4j)n jWHөcq)Bm=Z} R j֪Yamc !L>1mrAPoX[V?rY/ٴ2Slグm9PuKAl#{|YjXx]43- FT2?!).v/4H>[ eM!疗73=`R.8ee&(hv7\ɏl-j'<+je٣O^\B=ޘ_˾I{"8> mR*;}PԢ sV&4<15Z,da?i؆n=R33(A̓{+VOSWUr g &TΤA;R.K,FDXlLT *"vLp g]1qeR05m}QGֵLlɋe]C5zj~K?\~bFL`0z Ųbfd@ُpKf|sڬpT#/]rLN(zU|4!Lը6DmqacxjJQ6ͫ1}k͔nu%1Yx|&5bz8%:Fq;# )p`IiÃE@@x &YNe<>H+l-b6OvL,H K!%-DG/npH8ؚȪ Oޢ4ABR~TA.-"\Sm'gFIt]7x^.= 8-zIBFLTyFLǣ5I*@#[|BF'`/*q q י#/OjOʅ\5CK,fyϒ cP#jᾧd}jq)PCPByHZaGq)yt1NW?}C'&L*#! 0I9@:ɠ;D }Fv`'ZEK_ȯLVS r:= g*H+{l[mj6Y\e63&㛥ex@5$ꃻ;x 5ev-Bq.xq6M4JAiPŸAǀt)1x2q{YaݤsIPgw|.hMSۄҎ)ZJD3F63ҩM4%Օ3}SY% H3@I-rlkyv̴,!tI(zK2 ϐQ"CRmI{@>q\'IrjyNOxΜ<텂w:^q 6&An-#6sڃ[ `3'$+u)E=t}Ѻ-Iyv\X"F%Gl1:!O _Mb(3 2m*gFp˙Ltݦh忯 %!@;V[fC2U0CB /3|yԞS)C 2_©2zmL}TOI;cz ה|myɅM 'LWHLe0t_sDXX ~`ipkm5wš>}77D`Z~l tjWڱIDmǘg\{+ zpe.pĸ%,#w_m0.dzF_  u3i[)7lc1OWG)UVOq lYg&Hx^nP) m$kO p چ_`}W[_"H45 -PHhW_ \sh^6z-bb Mk8t˒flWϩ_F,3Qyc*s֣ė&N7ast)| OdN_dUk KpRJ"w =PBңg!k, .*G&kmVA ҡ^ 1rAiңW>,w#/Cn84`yKf72QIC-{s0jj6=BSq75TM(·͸W|>ESZ %YoXV9O`'2'SdQ'v"TS!P" ,r8%'__{:qظu;tn lXS6ٌ\jكYCc̅qC&z#c}~#SiAe8 5~\M>ۂ+ N40^E¼׮Xf(3lT$̈(aDa_B%i@pF`?]+VgCΎ]*ݶ<`(Sh"H97f#"ӐvI ̐o\}I] em@l}>k9Ih*Fl/Yʓˋx1~qQg/_L<2 V/tnDI SU$,UAm]*ڠ ˾Q MD>?Q^bh\f]zjxIgibDthP4 [G0jRNgBWYXjyϠ9y)qO | x>Qg4@6eԷurM2p3>=@%H4G׎ߕr?R*=*DPW_Ӱ0R-ȿъM w~/_{}&[%ˋ+ˀ?;9!dYlV XwloKFMy qtcnH3(Nj>rx\`Z[co)^ cۥk7uR1YšhWf%`KABk&yAVh'A~**AKԙLYY都 Bl403;Rdډ,GG8Wz @잭Mn GM 9j"C=O0ܭ]M5YGV빌_sln i2΢k_ >gn4z#[꘸<.PG[,t,D*܌uV6D)"w MDu*\^.=K ckx|E/خ/t6:ȔED O\ &@X}3F2 COܦ200Ph:IrUBsv(c?Jħ)o*dH,G12Y{>K]˺BcZ8>C)#O;ϟc{\ӒZ-AreؚРѯZNЂƥ'Jjw6M ~N2g]?dֽ(;I;AORV wa%Nχ Yi;9l*vCb(sQVD*l:?vnISߓ@eќ -=4KlaF gKim#zP~rkY}#69wsHI ̇k&.n"Do2[\ÚcCDGW Ǔ ;RbRIvJ @3q5sN0)sk`:]qesvTjӻ&ͭ ω(e|uya77cp\gK('i闎TҨZX(+hD[SFUEˋWXY!˝tLN9Ю8#=o4q@, e{"Q;Zh^;c0"Ƶ3CBWE6PEljąrشA> } Vb"m,lжڢn5%7:b5E7&WݮU9.+ ze)z}=>.\# /b}aZ3jөH W O=?}<,ޤ,|`tR ;;ޠ *cg(:E Bݔz{V/BkgflTf[J/YI6_x/0Mbゴq577%FĻ=7 W3J"r!KOPg#Fp&b> o4vW p,i0$tk0Y'=f0A=*⼥c.@7v8+n,pΠm&KUJLQXN`@d^6_EbPH4U5jqM >(v> 3-xFq!ZcFф޽(7Q_S)YTWɃ*ңwte ,ԾķQMv|k*T+?|yӈOo,T3, _P;񿱺̭GxGU?&4<p1 g@bj=,e&ymG^&D4fVL9Xjٜhr9ݬ& y z_]+gͣyl0+I:$AdXA H[{U sEPM a~mZRZLvWdG= TɥL0\V[(##& #^5Wq;%A/H>@~e8gy; Q ;jl^Kiuy{N /vR/ ZaM(m #]Wt`e_2ƔO]ARlQ%tdA[ٿ3 $y3LՋ!ז(_ `:Dj6Y9 @jemcNrQNc7_d,-kjCJςWs?}VVs+-􀰕T&LJzrv٫kP,o5C]%Ƚ>,ߩsAع>긢V1!Yl}:cp%#sUh\[ْe<|N3JboQB 7ThJ٭@Ai!I/{IV:lK=F*BEjlquչJXՙ-[}Afu %}L[>y :7NYj+'(\ `&(Ʒv6ҏWKc!SNŶ9͝AY[$BšF+`gk7Ԫc$pW㟫-iCqF72FM\6J9`D#mrlwwEW!GL誆c,cek(`p@:s&Eeu77'd.usi21}LԊp^]g{)|u7!ښJ < i'֝VM* 2HhZjg&ni*RQJ8һT;e]!yk FN{j,h(~@*4s̝Is@:0*0|;?)a*!A A'IC."d3֩)SPȕIb"Q%2| }" <ŧRN`ߞr u1YNT%}N to732q`!1 TR2Nc9LT?^(5?nn3&$T{*C5z(nb4zT0~mAiH Gsc+XUxrŒGuoR1/95%̹TF{hw!deMlzF2$3F]aep96A`B"gtiGOF "a4bř}5gN9hӽ`oRqKeL{ ?޺'u[y;})$A惯lC~Jx7YΙEFȄ>K+\V8fUpY/)HK;nVK\ )(t⁉j)Q@l$f)YafYdQeHl87sQDcֽsJw*D6#к۸0kJo.oP({V7d#c!%9ٝΐ߽KuM97A 0@w<͖0+WwDzhg2cQEd0~jN:-d͖"b2Y8%T|8U@•B8UAYwM{$G_ EƐ Ngy$m 1gr"[͗w:b"*y;R_MCQV{ls[Zv*x;I[K4* e`,iXp񽚲A/bƾ/L2ŪE#9M-5 ε8ǯF͙p yl{׾"8W8^.mgS6.{=9jwUCL]Y{%便ا%\/3Tk#8Dn՟>ISܧAC3u ٫Io-i,$+1~oe7m4)SMV v0Dރt6Je3Fj( $l<- @.r E+" {?P;𭺿if  |uP7VwX((vߑ;rB!t8!Wi4'XxњK+9 *&}2"LbQ.+=`e 3o/`S0tXႹ zb%#-"] # GDzfi+ o'$!F^!gz GW}{ "mApc.iPw YF@[qkoA5-m9S;Zjh.&MH0]Wp:t؎7llh,B/ qjJ/L< L{`TG{"O7!kJQt3!#f"><;ն_FWN)R/h9Gws7E@'B Kx0b=$(?<4ŋ2HQO{B]"XHȐHrH^~?iJIeJ}7e:( HR"^'da>u^ޢ+F&DŽ5]QN| 4̞ur*thU}K qmsG%p&U1>S/ =0R?wPSJX 6\HWju!;y{Xg @Xk];顙i\d/ $c= ) ~݂kWL ?_^#-sгwe~ۣȅۂ!)}qmF%\߫u=F8$:I:,!(2|St*/dWHGVĄyC` M5[8Iܲgy]WG|͉i."/vPen3Wd/c2R5S״h&4 5>> Se)Lƫ*AWt0KuG$49֋@tKCD+4Eg9n6VSDT!:!FXBnh' :zݮV|U4/&)#[T3+e'u? ( c$w>7ͨF%&CR>A?9TڃX SDlB?Sko06\eq:fz=I`rmX V,NfeعZڮYQGi=)!^[a9~GlӷA0 þOАen0|̎$b#*nk6=z.~{hlBV/I3>Uh cPMcqQz{v|,Yve.3Z8\19wH(4M bY04: i;,}eP^4?>e:;uX氾7"l KAgrGH ^M geTa|3Refa1]s@^"Duk7mKخ W99YZR^8%-d b1BHbXD5h>3ȓZ1KȬ X̲m[MN;IL>s Zla!6!٣>մ4U݌\:g#&SU r*[\@V;;,{')WЊCM%DxYNv6Oq%^YWBN 9.KtV@ӌ-,MOawN|wl.YpF{nJ3&ii_" u{Ɉ4.LjΆD:bݵ qN%_z*\.494vAY@Pήߴ'4m=lsnxqw%֡I{a`L>wX6b!㹭;/5MҊX႑g-mY>'nl323UqI{nih}wJJ-聎,oAhLB@}^WՕd,*o 8RQe|6;9P?Y)p FO<+xԀ]Db(BgC"9%tb /8bʙ 8n!˗uIuXon>oTIUB!C~?CEkwWø)gW+<;17sfRz(r$&:y,ާV~B^"@}lwGf?Aޒ`9(}Sf SXJ%P H.~V5bqq#mǶO{( `M[CHBi;J%p6ree6[lNVGq|Ya!"iM˴Y&hBJ`Tח4D~m `̠b_!Т {v%6'[; ä[xZre¶"RR.s1RZ[ؐo70\ AT+5 {.,_]EjKN- Qn8-'5nƙ=,߸AZsbYL} ZvԾi)pv+#N ͆ꇝyk|;'-tm Gz wFW;@ ;cCj7׷ȯAB[)]$PbS0'/2< Y&w+f)+MHlח9^N׽X:zjWKǘ@Z 0$gf#GA՝Zrav7`OTMqD#5Y)+2@&k/A; !tվ*DhnM.X1 Vq3ー?sCt ":"XiYPi+M@mfկ/ lHşi,7ںk Y^hzl %'uF&_azV˺JNJYoA"L֦?0!)Va# |hџs@rU޹N adJM?StY" b Ɇ/5GCyga&V9|.=xeɍ¿zQxeQ8u0s}&)R=KS1Q_xZi%ƁmV5>15ZvPs g1!lC]KTuᔌQC,<}05 &0jH|NVWr1ϊܯxD'R6p1 QQ]%g^GB#NA2b[gz9m5YtuیP|iOx|~0(d % D8}Ѐ};sCaDr]84ǗW Xy 1(Ჭ`PdύXQC1Qx%$hb¬?3>U.W͎Ǡi7q㾾ߒumXӄ#GU &Mل6x55~B 7Q8fyr{=5ﯖ^ |b&wf}/x'1 Z[+Y;YzKv=3!}FK|p,նZ]yaJ>u6n:GV jK%e8ۮQ+Y[E4~8#R!ڪ*vX_< ˋU";m/E֯CO6g`ƭ.H };ϝ$}T -yWVC(=|b2%ڨ;qD^2^s^,%.D#yH-6n?iClj/5}n֤҃.Hj贻FV\/?,fֶz>^(E8ۚ0&"wOvx_.(٘P3Nh 2N_—+Sw/I;8U ꎼHe/1]K;뛠#[ŕ#γ xٚ@ Sd̑"Z.@@/Sdĭi:PrO\cIx~8 ]}! q.[^R/nf+^ۏxW Զ5@^w2kDّs%K4єv|,#]=0U.jvX'yi=xqRX!ap5[ΚyÃT٥3zppV;!]CϠkùq=ȭPK WpMqŏHNbQDj})1ƱuA:#i@۔s^ =>w3XrpbIOPƴ 6?H<ĩ?6`sal<0: ^2TK-`3:D4QoD>ݓH,dwLVDM l]6>;o?vHDkM4ՎGZ:џS}TZL!@0pH_9 *Z471a))f 8}D~Mgmy=)5x)j냧]\mtbS)}W-x^6دP/O_ˍy/۬i1D!_ĉS?4ݟz9P8@y[,A1Փ? /p)֒GH.~Έ(TQy9]euj wKpr)U7AifjO?:BE9Tqpnk4rl x6¥yj]Q!cJ5Z=J% +H@@ukɑռ!` tZ,)\_\K$ckL;f8d`p4 jcNB|.xMܗrŠVPr8G/r逛W_iN~=Y᳽CKe(IaYcNƣ)NB7iY˶sP;_&P7'id Dms`C;h+#&ŸXUz)уnH!憦dn\u%rRmX;E/˩5#>7Zib!&b1ob"awƑD_ }6^3t7x 3f*Oۑg“[1䆨 =h8ygЀ[[7CŊeL'˞s`&H Ŀ= D* *X \Xp.؞J>6^l0y5GB"4JuoBcSl2FW2u[7A|Tl\lTYmx{/:v+%I0ޠt*ak\NrhDzrDvqGu{է[49(b !fKc1X ;a)xWP@C0hZצ8Geu]cIJV\ yߛ^̍?¿0'QK6Nbio;KTa*þOXPlVJQC%&=@"k&`u֕~Xٝ8=PXjBj} E n-M9[ak&sO[UopX[ 5$-M;s,2vZНhYNP٦o aM aE)A&W]43.:Pz=bۥ/V9N'02΢4lJXz]nZ3@}0{c/rJ0?{!: gݝЯs.7\=wZK_},Qì{qZFbū Ɍ($+ SuO^WCQp9 zB,UenW86cNK׉pXHx{"ipPou{JԄ$_6B#NEBRQ*Pybܭw6{{y%C\M>щ:+:31eSBiQĴdsևzD(^T5&p,-tٌrARXĐ pyax "ޠXlSVмݟ}> =Xug~ s36^ #]&!*5ګqwOրڱJg(=3O+,} T.kCz i6lևKJE6%ki }TSe %|0II9Il`vtD] Ol3o@#q81co )2-q5Xx iBYTzFF6OCtlEv.LbgYg)ЄY[Fo EQWw#KAoL>5TgiXk]`J&fJֲ b/S+LSw,XgXlǤJZ䓪c{P23;M.o:s#-nAƼ!"OƟUxG[_{̩VdIși$_4D3u}ޝY (ON쯡4*dEZXsbWPV90LInυ|9~S1JX<3:^6s 6L6hS9X Q*u 34U>zLnWb f՗v;lK(H8/FʗeM*E6 LA;֟I%a/zͰYu:|5`0C)>Vd!A|G`LIoR:g# O'b{\=s](ld> մFidf=U,oF j=VNtd;|IY5ӚzTir$-G?FNlxQi`vyVȂc<ͼu]3u=\5PV|9w΀q"PTޙ\}{sb~(CYI訜0,w+&OfWN2D:SĈbLlAZNpOg*%K:6= ٣8pM.{+p/dE>s™!WuQBjey.פ{n"(8SO]r9Zmlxh ء={r>qXU4jffϾ67M.T8.s8U@Qr! XmUZҊxjWX=x[,p" UF7_<M%114! ӁeSD(f83आ2HA5"DRA5Bm !c& }Er"13GwH=Ŧ4K9hϗ(KE nc~R#wĩR,Z0a= &`n &/[Ew_ON^%9pa:0##pTe䧯'lT1;?ޫb$##s~c?O&@ULIH#쾳L%*U0KC>ĝ~&svw^/p~/Ǭӛ/ˬmт?gΜte<&F͢P]b;{-Y=ö9dk|6H2tjij=nD"ƒӲWrP:,ϋԁP~#LS7VC1"Bm iu>8GW&C&Aƀb+ -λxbג웓T9!iaO;yC w/ԛK#|l=y[ޤE9{ \ҁ3F iU-9X\oA = g~W;" #眹 &'PIG%6 v7O@u(s[ӏpGUiNjw„$l'DOk6sGL+\cnK4wJ?-R/146%i|T0F?۵di-r1 pInN mH4M9{#Dm[/ lqr_S#5Ka}hPx%qIbY1\XYס0Z6 u{քu,3yICa6'I%qxFg|VpSkei*[ vvT-Dk ~-y#+[Eξ ^*$C)#l&fHjG/M:v?t6\E.2Qs3t/YL)*qO3W<.q5tȽkX$AA42{t}DŽaK#blSd$Ew'p{uWli*?κCoKX48F?$237pvûwxhu=^\xyoAbثf>鞭@jUyΗLۨ>@l[jw53 HDiƜa s|B@:R69)tQ,IPCvAW'XA%Ď8+"! y;(9 g6X8 Gr.q,@Fln& tSOcS68g>^AG,@=ş/q*j:hE`ViKJ,*9:rk!;9:A;JN5ˍV,κj#xڨ OAG'mD.ۦ5HVtq4H JW^vMlu8rw(a."LMf{.a-J0ck߮ũ'0&Uϲb2)KJyl{D^V0F-nkjmQʔrsIKiR#^5uq];)9I `t?(hG̉dmqדƀ$z _1e}/'O br}"v݇jb'1tK¡'R X/dwv_7H.>w֩͐2-K~#[:ˀs LA~'50FqYbV>Fp80-]b4򆥩*#7tz8$"TM/%JQƐf !x OWLifdn?/ooQB[#ua(.r^?׉cHI^sٷ%L-=k͗N=u?X{nudhVcJeՇD h>0FMq0ް8ND;WXfm.֊SKo/%3j`!]xl~mBMC镮Sr:K4r-}:QyZo 冲gQ]!'ixh'Vfa7}7:lN+_!&Q`y@F]׆'\'ޟIY5&֕h*!j?IPXW_ ClTqd SX@ɞ1pJE/-嫝pK LloAĖϢ x6S&<,S^=JɐL/Tc{E7is. &ګ4q`-QH8qM+b?)|ҕs6ʺ >3aAGs܉۫ZYIGpS<)ܷL!b#19*mfM;i[%W(:QN{JMqI^ D4m;-3@^SVl ]Q|:6(LMo`ɷq0|e|sw~ϥ(%kWZ8q<9O$BaL-K`Zsl@X&xx^çY].?E1?sI -gG6|:V]ۂV&/!xţ1Rv5̷+i[O ^tnqp(w_}%Z}_U2.W[}o.4Mṉ?p3eɏO6C<7`0]?"L~DuwK&B! =n/x GU*&Ieί{MxGF~jJ%IIͦ!c -(2& l Kt ;$¾yXѷ~(q4T!V+k`xui^)Sޢ |KhGVKϖuư.)D~a}cߥ_R[uGz}GI<|/!=>uE4 tjUȅatW_ ZdDaVBL0Sb<&10 ehXu]:rLŚoQM[4`am>h "AVCbc!%EF%`v ^] u6HY;=xER@ "cbtMх-VO;Z xj{3Q6a-=fh}`%~uյ d;Ptoɓ0*VoUXpA7?-U*ţ$}h|q ;8m![:(+j@&ԋ7yP`S/r2wn"H&!#br콡^nzڕ &M$me`z%Z%N0liI0/c=_'hLV>i $ְ'DlgSx(6BmY1ֽ= 8RVXSQqi!1ݲ=$~qz69*-HD 8̔&ʓ)Ud^IL4Tӡds+:ߙgS?o"j@;!2oqN,@ c36%`N/e̕ZJƙ N¨Iqp\*XpɌq-桡̭~k^ ex͟lhEI[t15MH8jtP<2l]9!;x_˵t1=Cz(u#5҃$vDv N~xwn7AS2|>f)rIN`{i`>0 {6+RURttqrlNg|Vk x*_flPcu,3/ [k<:WPrM1UZFѷy0A_4͛L掼vVKc0Y `0еl ݃? GҾvY2wm+D{찪ٔ浟/tZ jZo^9+rjm{(%d2Ɨ ǕxnHK6vZs@s.xMVa I<].q-L9Ե 8F9}wjDz\d@?kiL=-eTc:xkT4T˓*'M (ґk.E=7}{UPpڂm,8B__@32ÜgTQ9J< %;z3JP9c\. &Er y`ɿ:Ś e7:5oO ڗ axl7ALyRcaScMf}0PA=/ڿ=]V'(ʨ@_Xw2`ĆIs`ᨉ)]Z1sD:Җ9{c hպ^L*4qKʖuA}[@u~28DCȅ~ /fAf7UwGMy#/_A 81-> 3% Bfn1Tf}@'P3ﴕ^h_(w+g{B 㖠HWk$$a/o8ږ%-޸O}>$)38A4&)1vyLmhSqdS>JQC'4~ly#ߣӯTD(:oO;yOEÕA7(N'Q̯լbEdaa_L付8ORYɐ,,ʳZ=[+yͲӿ awlEЭnmD:*Zw0cĔ,#Bu;Ǟ6^"[1s :ʒ&Pkqf @ǵʟ9\Pk,g1zDh"|m%dub5D,))ZB駰Yuwߺ>}Tz+AuT BX^6ޅ農8T,9nkh} ],?[ RmAjعŏxMy[XK{Kj8XVd&. -EKR.T&VZ%EV=HvwSy>> UՖ{umE< y9`{*J:D{@&}טk^͕ 5wM=.7f= Z3Xo$YyD1);FDwRjG{5}2'Ӂ1p*pfT*,"D  .*IF7RW'"K =Ӥ;!T 4g6#VyNDm}=a[i@\QL$g6 )?0gފ>!0cdh3a\~;WeB }rq_|=Bv*\_ _ 4KvZܛ.j!8S7Ch/iu~IP\%χ* kPa8#E>%fOtڕ {$lk(Js%(+9WWϊt~s5׺3D vXC{Vfz…oa-#'*+5 `eUe<- 7ٽ߸>4`+nC1011,Tz,mv{E*>][=x\T8>?o {#QIBt!+.fߘѿg%ƊQ<>Kf?2+ͬ\fiw9lh;GumUxmtӝת7)FQ<`.-'(hYI MYps)UdD=.y\CZX;-bb<,𴡓8 +ʮ!+ڂz Nؠܓk#JZejiR沆w;EՌIxFkHa4fk2=T~nonNjEEwĺ 0,Kb}Yk`dÎ ^=)}z7}G< R~͑=?$Q9tC3ΊVIe |1J#ViTףwNŚۤ ՈNn @9Nwbe3%n3hj&1j.(MJnFҥ* \6Mk(kWpb+A"6ɧR/͊v᪘.)Oo2a Aw,P@O̔q/E݆W*iǥ *97u/oj6#V :QxVNrΦ-KHKrx\KsQKg/#y͐g?A4Vg# +$JE3bE . "nHDeN^*[,QwjtQ Kra/0  \5 `D5WY>t+8x׮?' G:R4뱊Rz._r #"6h3Cakj)3 0[9M(?9ћQ7.I$E =C? Y,G:4V}CugGUql0*{jޛ)*9&kb(?a7ɤv<ů)hAR2wEO'FʧnU<}J!e ɜnUR!834# +N¥c@T= hS;ndjGunhg7c*x2۲-2МuϠLs.K6eVW)K]\y y%z~k5_QoDsyr#w>ٓi 90 T+/*8eGT5 'Rq>bCyoRyzg7(iC%?T={)].Y͏EqfgʽC?ۣD}1-:NKidN&)hIJ@Xj.C+ӌ"Bؗ7i/fE[0~er*L7Dxk4 yx xl'3 [I9G7 P"l=jSv6N^U}wz|$,]! D_<3)]R/"շ!Ky ]qFc~d0Zb%i6Tj-i!X&wQ"TϛuyrIκiՉl>:'[VUh¨!ggi碸8QN*"cbJeDb,I%4sD7n{ yMzN(!A|@o>윱Nc5> F: F dLnE#4#\9X9Y^X;.Q8qBԔu0C&YX?%o)29Txu#toj7SžE"jiUۓ ģNkQ^j\P~;%CW8|O;Lc7eJP#3 A5sjłW"raMviFTQPnWDNQ))2((^kyk"Z3NzˮkQ=8l Ȏ/xҩAQׅAKn2  4F 뺕PGaZXBʭ"H\N#<<^oIv9*7 ( ݶv_Z ~ hdʷK^muD CU{#zp58y7 mZ/KIV^o @sMi6FZM"Cb8H4r [9[h77?E {mEkۈ?Ր՗\} Ɔ)@>d(I`3ڟPsڑ[\sHg54Rt^iN^z;nH0izWhvJ%c!.L]RA$ M݋58āHݯK=x4Xكbw B,zxfih;@Z66K<zr~+,kH+R(Gw~ (ܼh< D*h#w7^@8[V *G)gì"Z&oPA}jaI"X129f\қo `iNu]Snv/y2r#:r !z*`,ןq^]Y_5I@ʮ4: P2mØ*܊^F8ICʱ+֠eu56S] :T0_<޼`tؗD+s*9v:2&-^M1@m0?F? p芔C߲JK"e>1 Nl|ueh2ih W(Px/dc-@GW{VphE;:j5BBu:mx8D}EoEaXAITqϭnN?l|d\㰾bs!R ^pZ Qߝ#<)}n_݋X!wƚۙy'gQGjPVn`2A%۳l2x<W)X S zd&2 ޾?:]g*YO5@*%!Yo knL,!4Q3'ܚxן@XȔAl?w#hN G2x 2,~cQ? DuZSXHcX́Wp]HQQ 2g<2(K_wtHV&EkM&=T6,Ո^2:{S1pX $b.|GYtoA!(3:.!;kяМ4WTW0Hs\ފuکw&|_>n#+^;K~l r^ѨS~>[7|Dk>=«^cM! єkNʶp~D4wM7F^Q;ܩu*UI|Sn{'6Oַc{틢yzg~LyXXu"RBSGHϘtf&Hq^K ;:`-)&a3t{O>hJ7=||&)pj])zTuf~W+0YV?A7.`3cD6l >&!Y}:Mf/ħf]? }C?T06Ss"'E=voSiusd'!*8xʎcyIZi5V[Qnx[0 @(B*UZaɳ ;N/Ru~;TgcV;1P?XvZi(ΗIU3u1? } klƘ5rT~kR= %ebS\9 6]J!WϧiSv-$a~FVMҒ29?ޛ S٧.4|@WTW$EP5_UrTEЂ +bBJyu "VmBjGy?]EmSs4oqʒ5q㖊t8b?Yql`3<@MlHF0(DgԀv*`5.[Bץ*amZ)ư%Qc~F4:eOnS򢻧8CwZYj88ԦoTruDh6#yP>^1ouKU uȦO]jHK -KZ [@Bjd8@Ⱥ &~JfatqY}TMVyφJjaj~C,|JC#İU=m \zuV#@okO=KHPf_5M^?RzX,8gVK`Q~9:/+F2Pz/r) 4 ٫R hP|F2!aX']8׍ޑXgЁ \umU Zu,P~|L؟^8;Wm߆g%;fE%~l'>RguX[Ť!mN[n"'.pL8Z%U0>zw='`NcD9F"R#k\> U/~į-; |([ T;z3q2Ї(= omr$SF47!)8ii+CCX|J!J  ?@mB@Y]d_W탭s_Jž~Wnq5UZZdE/UGڸ-xqf)]0Idl!|X[֣:S7<|Qi0l@cQc. T*1 lMZ&5 q/zHߟ{ӕ8 L4䞭!2UwcyU+<X"0 V&91]>RԡM8W[%>j2e52}:7P?I9AՀ-|d圜t{F>d) v]?&$ G#Iq?zqTԶ^uTY5 6B&9.5 F 7ª3Rp.>qk'0emwLJax ,lR8vQ6Q!j`+Δp&&)ʌ{АwL9%;m |M V|xeS B̩DIuW =J/LtWqɦI#}[?X(9ţgfrB6aO%V)AaE =Ԝ7էuNY)2  @(΀x?H-f:徛\qS{BQS)A )j cbh"w&ڳFeS"W̧EN=f,K4'ov9'iN`7 $ D4;_6HJ7O(qo8I~u˔۸OaRV%#e8PXqUpڎQ9&<6UJrM}۝zIҰNc9y7x ymWo}3bb``Z|Q5a(LB\M934>Lb`'a|k3it9ANa&)1f} q ط ᫞_Dz%~ee1V(\ Բ/rD1;yg7MJF1YmvQ3>c([Jl; WчY 阛JL/GF B6`R 9F9yQ5NSUܢnk5'ccYv}]Vt3iƨ䮓XeXPVkT2x`?4'__*Ļ-2)hşk f@WpY#>(m2Bw<䌹FS,moWT@T_,tw@e̩tۮU -.Rvu#4C8,.@ڢ; 2Yg0-"a2%%:{P-| BOЋo<$MFE[;n=תnTDc` ˝촎*-ƤOjY~8Fa []lV ʈM,t_#aӾc, AV[=m`wU8 \o3&Nwy<1|~.ߥ=+p7Fd|%9XM*kLKUpz~TTw7ĺL]̕* V;tl*Ԋ։ќiB—awx S8$V>e=N(R@(LݭhWhBA@x @72rdr׵  yE\195/ a#Qq{_S+3B_\X7BPN#[=S6%{^㷣,psMG ~&ѴH%y\)}]G[ߋUyE  qp6:j SCս1/S9\3iQb?R9jќ0i~6E'%ur0r  鈹 U '_"4N*ɄpnD;z7K *hiVTaێU+ΝY<].VeG+gҭ7t͍n Q}KkQ)sdL97j阮Mv*$T,:7^Q`1#${9=9iS&~yl'+vۢEJ̻Yvg][?uem ׻oC)9oP--5[,j*L/JsC ei/传t< t],Sorey^SVftF;{)-£QèLC]۱#O}μL,Gez4@0ÐֹiXҮ/T%e56YGj jF EA/OpgO!'EM_Dc\bmpFb{kiiAo//R0,̼rT\rCjuS"x;?'Vg`Sf #G&kzt8sTkGiye(b;pSU'Q4zx *'(}|Ւ=QX&xe6MƎG$P+ 5؃QB4&_Oly%2O_|@=hF-0e&0pquHqe;q,\'2S~dEZY h͐:~a9ыɡhAo}Ed0`]ǨWO`1,r`#~.Z*,P7 Zew)s|QX{@lFȅ-?QA~V$g6 BUfyD+@Sz msC;Aqr1Qt5o4fQtaQ g*exNU-hC#Np>`@zkŋ$FXZrs~Ux&Y=YC/qlNYsruE[F3֟mkƺu%Vh~ů98@sa1OH)+cg$;xqhy ~Rh&PǯhEk jf˜{VtENK_hMzzb%-ʠ&"zӡSEL*=AIRѰ&q8t@9hZȮxe[/V<3rp;|oT[aE3m8jNoiVGCFwVRSk3ܝ澶 l1 5tef{;O|.rwA[a7|!ӗX)& $n@%`pöA ^յ  3?%ʄHkp[=ZIb>&owp~-=yo;wu݃pj54kĮoK05:gf $T,>v㏔ cP/he5aKڙ9bGOI`$M@X'ue78Ofm`U*/ Ӽ94=g][Ro+Tqh{4P=d \Ep@YA2xJ eRvPg%rvu\R~ Cz*˱e]}E0< Z:\#73X$⚥p˲p-ti`: J2?֒+|a1›d'GpHRbJz:ÇDcyД鎐CYLNi&uܟJX~SƂ& F$k)Uh?-KmEiHxpޚlh:8ҰJ( _>FPH"SYmjv,yx0\hlhbmɠP-* m? Wr[KY TKLDgw&ar1-,t<Y|.51=Vt´4y'&YEVbpK xrKaZH f,+g0ej`*c_7C[w_WNKOMB?+q%Oշ7Z09QR\.Lq(.IQ-F'I$2m~vȺi t5XCˋZC:*dج6t_XS 2~>uz92Q4>p*iਧԂ+Ll[&aPDx {2ӇXFy},8ȍeˌ~,d@ag* 'g-;TjleXe[b3uekln2wS0hl] '(a %xVS|n9Q)C^Th|r*R;O>:~y^.mꋂT=+^a2zk'ĴsA6z8 2 k4oJ !{,\=ʆ3ݪqD_mÉ-9srrµ΅Z!FN~]U{~Ai6/:P<\K'z$a.PJ6՘L2n[պ 4U !jG{}Adya^!F'۟u锡yLxk'e{D" TN;(SGr(pn/)<^FBK'Fg}Ox6HزHS~noOu7j*](lC8LE(^Z^D; /wv(VwIh?q e;"(fv@ZA 5zA&nNP\t;cǙVs@2J z,`,{Vo `#-~ ږ;5Ib:u}MM ҋo jҐ7{ic%{hgop8b(U[oYVE@{^MԈ1EjEdYdR:# Χ6Ũߢ^)i gE[vis]rSwϲRAn,B%YʩRRj/0Aު0gǫJg] n0+ڜSGdQQdQ/,Viy>xTRK< ۼtaBtCDdA {N~-0+g[Z%.`009먐@i H:d:6 >S5/x`8,)O>>/7xu[G!IYW'+҇dI]qO3xS vՋ<Ƣm5oi )pv ,_2D}=}T:ňo<2ȕrO!*$9CQ4 $-J;zl] faΉ]4"3ژ4tKj*3^kćpnWgEe䩚Nh{/BΠm͛gBL~rO^P1`j{KŖ "X Wy7EhV8 j+m\5l ݀0.%EB *_Q} GK~9gRU]M1%:W`Gw|.e9 G<ъJ*pĨ+EZ"+ȓ@˿p}/Q 1R0+:㵶xo[4N Bk?b Cև4xn7tn)\D֛(!}ϻ=%M WAg7^}:{Ґٻmu$rqu:#0!#:d8岴1~]bܪ]=ZfLk]9D;/'%ÐﮚjQyIʝ+& xeBG_wFz$Npd+(3BY\ҪM`?gT`WSv k7 PȰ6+^@0cEEt-?h#>[Tn1Jݯ$NK[R[n.=S9^Qm냁#EAmVU8|7D=l]LZvS'6;fNHs'(B98$-)}Q>l=jdP߿Ya_iДWYr (U'q!Q 4|yn'\nH̸VьY< m8#b+DKZf٦;%#ZӞbVZ5{j O!C{ ‚Ȏ] `Ye ǮLs&By"_uZ1*aGftk1YAwvE]jnp R(>I[(\Ajϻ8VR[Nϩ6x;DړTf+`+>c2EPlZ2s 88;mFI_;)$)aԦ@҄ scAh(-೤9GQ-5'ַzV"VAF(pj*NF#*'s㗋;ՆږxvGz7]KjS@߃N0w[4YjګHnFKӼ͵ soGy.g)t<%ux3j!!t%$Dc7XP߉ `8N8HˍWX5&}=XHW74Qwy5g1 XS;(tʄpǀHpVvrG5b 3UVݥvcqR@9c޸Sr(<+#J᫫O}oADgiBFoYmQغy| Qk?'kl |~_8ӑQ+KB|'VFwDE}B@!_.=fZ1y}6E"tOXr":yic@o2(JKc%9O,3dI+蛙Z6NG/SxB[.èJp7hUZ"$*Uf+p}@GL5aU rFB/ .[&?㴢SxNȂYShSfIgFLrq:{>b:#N|OYJ\njbfLm]BcV?@Wg6*QVAׅѥ[އJ#y2`m*),jW)+IgxEUyEn4ЫY2z-ϓVuU}an tAbJTӬAkUUGD\E U(U0%HPq~y2@eCR8)D >)ȗUCJ˥B}ewhSJ?n./fݽj3k\ʻ_ Aۯh\p3.Y>Y<9qGLw-۔ w;>'ח%AI#gmS)jq84J\~Q\3})N8j| Ozc($iʔ`E[Fl/%A-B~ZAӗrIlJ]CL@ %1޿g~vScb# 6)LnM V&l/eJ דtq93A(!9P"4֘?=l$4aT|_&U5Zt'(Uv2~}amF 吔G_ jU~j_ږ/~qL}m zi1l˺Ut3Bl 'Af\*+"7<5w{kuj)P9>xA+w"T<> ,$7**AEcC:Ha @6/ G=sT ]5։>]@p/=no?X{XA$g`B:^ P%g,/ M  B B>GW bvCS((ZLƑg[H-p)F,wD^s?i cb(>3Orf׳p H54o2qkş|n恈( .[l1r#Xߎ6.L+}E J(#L6Uabnڼ捕, )H[}Balԛ (/me͢l^ !|aत9yt #"NhԸeZ X7^LNCũE/G!8; ^[9Tp !Q<+߬TnhcʈrSAMx-@qM}1lwaKdXmkB1s)(|ʳ1?L#{A*I?b#fؠc%aK\}:+((9{(U>f䱾$PeÂqۅ0W}_?h+lxcr ̦Q'5{;n/'ڡnpFOΘ0DƮʏQf_[<`7Odi}w<iS+nԣ@U9gXmA2v(&D$d*ZaؾӍl6Ǭ^1M.2g Yf*wiu(Sݓ]oq֡w͡]l>s0ŋit P*Lo dgs>wYZBS_O?Kh1E3[<WZŮpB&%p$gFtTUI(K`Ó#?wD>tN1<1?]&d-⨧u͂CA3_[bW>: D躥NL/JrD GSB&; DDv楬"o"5XpksQ_"h"N6#JJP15T]gIfT% j-fO:2 ߳Q: (حɕ^nF>(% nr P Dec[:1H+s(Qs\LXג3m +I=ġɵ˜ɾ" NLX9-Kӽױ}lc5ib+8L=*da$dI}z`t/XdA{G`343k ),) E`K7ȋo쑁ب|^IݎXUibNQ(.w}d;9LfO|fGZѕ|,l rLk uY<u6E[^uDǞ_B&:z'j)M}"LFڲa}xۙ~xӟEl!x$(ksF<aDX Q0YC-aumHac0T9&<覦oâtϙѼhC4:2w)V1i|Mi:6ݛܻ8YnJM@lqVA~h<b`F!G{22f@hv; N hAjw3wm>55.@I=c˗qfܥ EF/bO8Z^PnnjK|A׈<DmdZ㖴9@( V\'HnLxO\n+FW`9%.H+ltqN}FQ}K4fWyx$%rVݶ@"8VtJ|/h:d[d #S9lgle`L9Uf5;?CGQrsq@-*EHF%54UAbgU]CZx@壓]eq|bDڃ25B,ROLhJ 1~zg |Ɖ~8DA*~q'У,|kI#n;HTiGoC׬s*$gxXٙD |:e2"0EISf&+QcO sH_HQd+@>gV0É͌>l#&4_#']AR/Mz'd?T*e7"{:|\YnS0] YZnM ]Et|/lP?>85(>Vۙn"=z#pܺf=r9^R~kl'j 3{ oaz#j#q1&h@# E煰Z"*-c[~hE@c _EdC͜ HzKCߒ -zTxb"3pݯS##ڸ3E0]o(4-X pF`۷rO]IN63>(C6%)3*Z # t&ou8SwׅmуYE'kd.(E'U ݧDgjf$Z [jYLN%^MyFG8Wnjn]MVQ>){K1B*=,-JʡPFcR:u 'n[(AUX>|F6Nk~QHcݵ;ZL+ eR`C8)2b!+p%{ [:C+9xZrll#at_ƒA{JI{T2oBTPWUrcb˽㵞 #c;QL6aUp^WUvL3 kq$*BY8p<:ic['g*ӴUm>YCry?M<( 1eOWnY- !,i5<" !!mLSي7%nU\. ɣ2gШT7{i@+B@IL;YE ;͛ M/mJ^0U E3i7tKkq~ȶRSǘ|Mfuެ@6ߑ uvh7)]tCQ{Khp!B =`b=ilYj_܍3FDŽY{KX k9 @ NeAp}X^>RԹ Ly[~V aO@X_ݕ, *x[K2bnJ&aO0s/]x(_7,a}rGtdp _v1uU篑{ypJnuHKf(ÆB JYf]cϰϜD Jrm4"N&*&,Z[u0F/~o0,{/E/PsqP$3:'o0lt?2a:ab2ݭ!S}dNߓ0^jb[.)1ڄ qʸZNsWުyKgI%rHm#`ê=RhP=mq!|m3';ص֋iɱ z2GjN4)y_5%=۵ԝ YP-;2 R >a%?.J4[HRk3`/j EtV*hWM:lإ29p4 N^[Bqtz.SHuAYcv⋕06l>24V{Ŕ>zsS܍i^s.U;M¸3m-ňEa@aQ# c+X,.iIa楥ۍZΦ#ĺEu#guZg#?Eۜ Gpƍ'4|O.E~!U%VTo6f$qՅ:=ÜZf% Hpp?k{ c EJi|`a+;jKޏ9E0`EѸ4m؏d,궯t~_MŁ!o'$VFNzrlߺсWt%DZ&3X9l:{ ΅ K]ھc@h\gEEK=˝X%Om e i)wFQsLeOv1iH?(>X"nn{Wg BbɎRJe]?$CDV//LK ,E>C c_ %nuY=@aWŸ'^_v1d!Hç+S&_$iC l`7E:[,)ClgwZM~w[YCga ^ !.KwW vK)<@t1Y-rJW3p=[a ;<6D;J(eslY=3n* .{A(QcAPwlM.[(^:FN5t0xX ï,T]Sbb!9Dg1"_\%cE W>ѺrFn,2Hr̰=&Nɚy(w@ЕɄ#y*Lȫ7ѣh6"ɪZh/vbqG:]':2O#Ms94Pt_|3y̶/c`w[t%io2Z6#'tGq&tGJck;u/vv37?Y^K7L1Rw>#xBuVլ1顄s1 x("x 6{>g¢)P59MѹWFn _ 2|wLÆ_YMtãr1q 9~#@hj6N{oWPl}4nIf:0Ucȷ4z@x\UACut 5@ ԟ¼P xl>_ĦR![ZlZbQC|i{JBgAZ"4uRK <{BAaԧyH9bGL@3_v )z6'e!2dJp6"f]Ȗ7e-bɓwb%]G=dž)dq'}AzjK0Fg;H KkצhQYY^AEck;dF|v#O~Tb2q^} d+uōbmҭMjy}Ue`xmAC4,/>]=q: U(mEɳvܖFbߡPϘ|lMx%M޲\T-MoُLx6#{E.ʦ4's?́gq Ć~dlnx lGpdzJ7ĂcYk@ =bxy 'ץ>:YOTc`\0TxѼ,2G.̼+/SY1ԅ613!2ΖuD }ݯ{_0!ջQDQGo`B禤6^>^HNܤ9i(rDexʏS&xy;"޴g6{D`ke'f#q8т3frjpZpI$^@At++a^Fy_uKTOf?ƬҀgm}hp B:{#R>*;3 X;YЂ.|üfO?fwk\ +I)A `#?_TYxi&#E{mO$@aU8l%E]^}cb?q^fU S:οC9[;GLي #0@Fˑ<4fa Ӗ.^+-9%6 LUmJR|,4+o1 qI+d.6Mj5y'mĺu>|Bk"a't~`)x.|k\ZД _߄OխR.þO6J]~$.{j<NclŖYS z߇(;,CMR4:tKI9'sI߳&Ђ|6Dq'ۘ;=L>~G1w2]j,; jhKnR Pkuf|8eBozj{&b*G篌PAiӹw,W'V6-U-)G:$oe|Lހ"|~6f@v%hϨ#?䎣!DyYik tnG M[ K%'yg6q BIZ|f\^ic 4/n4i~Z"ƅ!9Z 3YX|ED'3w^hq)Z#[5`,,̯wm0oc3/aKv~,u]P1vב᠘SjB>wkl#a}AP%^΄]B(A7稟fN\;dގ/ }*OFryn_#2=KteR%7 67 y=oQ,uxɧ[b[B0;f|9)Ƅb'0(:ʺI ;%?TƮ/̊ ꆘ2>@ҖDҌ!qE@NI\&KO6NWv\B4o:` rE#9%%()1hWlrȎ002 sNho <]R]a Ȫwq~X!Bќ(,pĕر#B!M^nNz\|ΖGۖ%zŋt2=L#t~.7HS_ "{SQV9wB^;:@j+k mYh83 po5o , sgSMlA>kh/MVhx>wmSńw6;6F|<ǦB%Gߖ #o@5 \sh*>-ȌPB1XZ.j^f_,nrK .,S="jˤU58T#"F# Ojk"VhF/c}TQ۵NW^H"+DacNԐ*9C6UcЄ Z}$}gÔT&3&O6ctK ;-v*xW)yNe 7,-Pxc3TM 0KgYPm_u][E7jVRO6u] : )މpvz ܥ6"?|ny@- &kArj}5/Y]V8I*&CwFXUiPT㈭>tXl9t~<kWw|TA6bRFdF'4\9Ҍ0k&#qF'~[r-*(vKGsNx'yCܽiJeaFg$V_ z5>ciQkBӑ ʞ?͋W `XtI O9DuB—a>V쑨9OW|܍ǭ@běZ& s_)fB;_su{JY0Oβ6ϩh͌T]eɉU'-͇F:jԳaKe{!vlyNdP+[(++筈 ak1Ep0m^0O1ćF^!%wp)S;doJ#PH!<[ۖns1&n%rWӊ8d)h* A}l|J ǓrJҫwRp~؍تK8 9q٪g5r T} 2q)&1^7󦶣^DVr:=QbfҮ>g/BqqSt=+XJ%x.ki|t]Uo1H.!b+ѤWʭ72g|K|XՠRI‰2b"v >Gh5ib |B90QlsJCvA=c&RYIBb*?5EN}\\vtx3\W(M=]!HFL !\Oltm~>OE;%"HTcUpPNa>svpoy@'T o 70Pl*ԻxTBG %Pn*EܭR#4,kSe3tBל[D_ݿ NCT-#;83-W_Pz[KL[syhf"c"R=Ǔ40S[AC-\x^\S$CWSq2かBL͓eo hggul,f;] ay\P<-@Ʒm{ɦwsu5meH ۢץM=T "*N2]{uI>QpgO5LK)}Ip!9C_6hh9݇^m( -sQ7b?-BL,Xij̵3Ud//n8HWoMKwAU<3oʠu 6ޏNBU8]pB"3҅SЌ!w–"fG}F$UkeWaf2LmHQ<0(DIJÙ 8߁R4d)>x=] ~NpɾZ hr>š=C:}r4d:`*"d qG JKrԍ/(>x>qSŮ?v~gʞG|꺔"*$~{Sz77ayʡSVs)7KH@ݫY~w۷ ]~`)TpV 'HW/HBRI=kN:x珂q032menA\=a)ٹ#\(@$"u(3ʡdNށM!Rg{~vGxpsv1㹭l Os_y18XCwvm.(eE_Z7: +-Ũ$nգ0a8GJR8>̉6bq Zm.q,r+3iSS"O"gt>M$-;yDtc|h&/FKѠE=4 O6M!? -ljlrm}L#H(1>@LzFnحɲ\kQD `Io~RS@D]-ŃiLGl0IEUҶp M=Eik#8* jʒvϧDۻץ7B]o}oȅYLJBf Y{98٪pluZcG93HÎ 1JX;l#CZ;d  VΪaJ y,9E|JuXuqbVOǚ;0ӮŨ 12p̳{l}ٖj`|)9~(w6(1U3 יD5K7scCҐ sjN[vsxL)~  4'P 8U*+Bp9*V3yRr^2N4c |@{q@B}f#>2?~֋?+_?\Ljhwĩ]Nd^P0eݩH vpWSE^)U O.GzThD e!jJ]_S0Dc\Va:`! .ƍO7NN#x{dAngs}9G9ڝXEC1|efr3ݭ*0ۣ<[,ެl]b{# '2^:9\9^_K_vH.b(LF Wхw0K:x85]! E%u[J͎{5D81(]ՈvcUԅq+T<,ު2Ȗf{f=-R@ 8e00nьIR) 0_ 5CJ^lywyg'>>rI;8}BAVSCE@&֌43 4Z1rG$4ת7ݾ[sxt}B-bvD}I>} #LvY3ЖP`xt2CwJ pu3=mݨn {ISp̭~7St%bYa&Z[<A *zdIZ (<D*uV9X`2>I@Ygf 3a4ېm`Jw@~v[I(I+FN&uD: [Md$Co\@G>TA_X?LsLMKRa3;dfvcf\Ӄ cd2XV~L.AWLnҫUrOb 7҅3[>R!-84IFn!$pt+h_TO͍}ͫzw>վ,g8ڒcY-OHR+@7 A80M(-o9aM^2A(jzu.uGo 9bδ<8!(>D!ڭ]nPLIJΰ\YhlpQ]B]]ƴKo4f\g/ p `/-n]P̒hwjnYB@~MouFzWp^\BY 0_B +@.b(]Qy_U7V=lCq35;RvOqu$oOa n FY-b'sYF}g?D#,-JlY_G=N~dDxL! hIl 7tuUv RV7έnO6ᷥ5~ZBhӌ'Y,` *>O3IzHY2w6t]!mJ S[x9q8b@wo@a Y7E~3!A{ӆ-{2wPR8mR)Z.|R?|^|vY^dycs(CFT*8ҿihR ̗^9o!,*~H)$[#WA}xXo0vRd4dgbV>!/19)p_<U>MqV?g&IScWWMV^1M:"mBw?S'pҚMy[^I<`fA:'_0%~+DTSgt|b^bj$ۈxz(89PF v -;jlOJj:OP0{ _ Nw,;P 4uWͻl#`04[M~RTeu_8U&gc+)hؘ\hT۩^*oh;|@ \a`\lb"Q6 Cuzy+,;vDp&np=;3۬|i3TIٚzKs/Q"U+'UnJCćRs3O`c>Um$%\I_Ο`֎=}>~)m"H-Q@3M[ _vRF Dj{pHx+c&ȑ+@QWO7&jg=RJfᲬǾn+ޜjz"'Nm&+g8a>п㗄\FV GUQ?*Ej^vH,^vMFϽOoDdى|{I1S#džX-XRl[GYHH}s{Iy{iq`I>T(α5!y挻osnAZI-"+E*s :9tëܿc%Yn2jgt֠}.kxX.}0R:u:$.Ѓ?^q7[ 4hW ОxD5MGi [6C\?$zȓ+Z0U'_\a~ljriہQ;UOsb(p͎]rD<+Ez}`V~<%W].m&\~s}щ@\$%H.O|K @k Ϲc4[|rC۝}ԗ~6ft ,NHsY7>osr On= ̅'! R| g5ٔb> M.:iS\&6˰wn״*FnUo/q'CH >NJrYcX;3ZiM"-+i gRgxqjazQ$4(szaBhy-4QU3:/!L>ѐ-xsi(;s{qݚX3ƀ,X9wΙ $UpUh63=̟@%=u۰9;ۆ: R' v O}i77"oZhBHtVEFE_$e&}VOEϘq,bsJ.-Xh,GS|fêT.H{',p"ع$DtW4"ZBn6ʒփMT5䢷g:GךY!d@K5u'.EGw~zF0W/Ϯby"6N6DMutd/eaz/@zym@I:U$BYƁo Ks֦6wEXd*_۠~6*4n*BZ|pE,xy]IxqWAu '͈'@+"H 2%"7aPE?kYhIz9L  ?5]p+ZPXʅA鸢!ߛE`Rp,E,亴n ӛ +4..&RLCf0.Ғ|FHlYo7z85d9!y;~~i?Gk+Q [CV;e(նtgN4uwO:$QAbIJbp>ImxhwZn^.ɵF_Wav0kŲ@GBKT.MRŮU8c^ 0px],C=M!|b!Tc?޼`4oҔ1/9Kq4GHT1¤Yħgv=+Ȝ,Sx tJ.< Q "U83!DZZ沟t(s~GhkaUI?@E?ٞ >/6򕭚}9Ŵ7x!#4軃\<7/lʪ|3 8-QVߤ1Dk]t"c֑H-2(9IV$zcMrG; y*RAxϢǾ1@|ˊ2SnƦLƻ({Ap٪Ug%r#9Ө_cwhXtjXpR;`دz BֳVpsZ.Ho=.j FQ's[~?#\7nGٓ&b;>?r[7m7$]tv&nW\>q+ W5g(# a&l5,G Fe) Cx7*)".Hp_I9.8ٔ`cJ3Y5ptܺQȪ 1ik8*!4Q?p":䀈`[GB+.Pl7 ]75Y@b!gpb`C i7]3ټ†3A;#U8MnM9᱿(yIa/uOCWʟV0-$Q@^~C"b@N/P~/S<1דP/fG[sKp2h_S)o֔Wݥ*+vt4^zcN|7I G&63ݠ՝,dHڮ70$ IP1'x2֬r Ćvkl=ƚ|yYb(,5KE]Ƅv(ZGV$0B?IlC6C,m j t6HAB w":!gpYv \zM-z6fukES;gvUxן MG%,)ɖH^yÞ I?M1 jg:⻰!l tK'Fr4@. d;nHL>~"+_>Qr a>d$ܵlZ-ui4(^_&} ZرZ7ű[IB޳3P@7S(A$+vq ȳˠK NGDl%5ؕ5-߯t=ϲ #\W|lrɻ+m=jJB>&d(I׬b·!%9ԑ7p/7oIFaKS*FܮTm>N:kv@*c>/LrSnł&.&[>{lOr#>ߕO&mM/Sr-\N P͋FQh p4D A5IU :DzTe%'e+K+"[l !Aʝȵ$t&ӜY]yh$[!N2+  ٕ* !',]1+!K5sreX369 uR9(+O$t66VF15Un3hh9ø/U_ڴ': 1ΠΥZUÕWa޽œTϿBo#WO.>ٌPTI<Y@:p8j?oMz/;b jMmx1>s”Oyny3Nk~/Tr;"n"FYH(~'Oh8S@rpx| BhW\i'Uk3֌fVDIGXn*lӜz^"7o1$]M;N) /_u37Mb0 BtV|) `5"罭qu8]xdcU嚅JPWlW;j9U]CG6CaM16Ggq i' s6 W'1BDqjBK.֢d,4;UKDhXz*|-|uq@_Nî-`[@n `7ۑhCB~c AJM24@ Ԧ}%Y/{Xs^3y^,yTk@Q_⑽Kp9D1}Fk":3*6(M xX )g>IS[ϕU_qLR.=Cՠ@0z ƑO ֗so{Mx+:~y3sEY}JYlE+GX:Y2f$94>6oI5R3kBaqicA2C?Ș$r55ơZ{`td*uQ|W6 ݨ}dp6ƒxtV7b+S +{ cNWO"F K%^Ӿږ CYt 6)Q ;X+RЮ<&@<@qƸqPu A@A4;7Z-!2ǠhU%.. XVGr )fH6&EkP` Lu҉%LcuboUCǻS'd&=DBO H.nL: 9(x }86T/5veG\%w6cb6,@mj5]*u& IyÛ5Ա=.(AZGDlO6'X1k^a1N&u\sf{Y 1JPO&誨vkӛl~ ]KvY df-XڋrNv"zB {Z]̔z֯q~ĸLN0#@PI/uǠDG(M(|'W!(t!YZsJK6 fK EJ؃& 5}p!V◺?%YvyP_96T9/Ȱ@Qw5]d),#<2:jӼ8XTc,KOUݓn'JSCL`y zq;_0"T/ LѷqI #(W^-W"t`'Tf'X>^oιNpp<2\Y?2mHW.(_uAs0VnA++AtpMn&(^ nԿ4y6wOZϹHΣCuP EO~_׷w^;Lq# wpj,KUߨ㯱.J+ @"S{  c\$at8 G̀'vK=w Rn*f pkj zS g㢆W-?_`Qg ܸY AB\ q޳~뛃r\Z@6|~2;L*%Ⱦ|-:>A=Zurs ,2cYuhB^Zĕ!XM ܶ-UXpe]/?+]Wp iK]UvE`m>DŔ?EEHX--)~u>xISp!ܩ}pp&K1 _4 _D]}NgWUX^v'[2Ϸ 9KK ,5sCm,=P 9 L 3v^ (32dUNͤ,_4^%Y$Mц% n[P~]̸HsvGJԀFMAfȼI>4~1uCm>! o#śZI+V+UՃ cͺJ - 0"܉i~7$f:8QkAyRN]"z.XSǐ@·e&* lBwC'5Ԓ"& !C &zuud<=~-j.4w~JZU):-r:cxkAiBL,ހ)&G lrƁЎqQ" `090*$^q>k)pӟ^sʁU "NV<{1濮OCxfuB:Xj3<29ҔQchPa8 YV8,S,J՞|P}3t p5`.cދ 9}8*/t19S~,:a3Kvd*M::+6OxM_vw]PZ6PjZ]L8 k")ă]$:*0 n8X@B-!KCcJƋIK&Fw(b~SQhZ'ceCwm붹<,7ۂ(vtKBV.3LNhg"r|<$BHNʹ^'L*Wkk=c]ayIiu8a96@"'!xxo+ܐR/M &A ֹ4tz,9]T5Y!|fIb19X9 ~6,LTY,ЊQ+bݘGdE;CW=[╄_K^>(е7tn R;7I{ƏzV _ 3q(̢/2'+^M^u<;9–ujbBLh~9/u5JU 12x eso{zM:;oB#zY~USk6í,<.mDxgǚI_3ԗÀ3b$8vLj%M2^-!6=ѴRs+NP^l?Pە zWklZx6-4c}3FCպ(MĆkQ]4•:vN +Rhھ26eձ;Rn .ko+8%!_Dzb@Wn | ̤pj*0\$*HUr< nZ0CTe%]]-͐vj9'qph Ҡ#P+{\վmt#r[u砂W'yRabfU|OڂׁYlxiV춃DVijyeVD`rD2@hp}NƷ|*W2DJES9k4JR%Zk Eo3)e?2?!˃tLcփTmߋ,2eRNކ/e*=Tpl:q'3!yjCyKskٚ1:O:9& 9 [}LA00/Ţ;lqMͪք"rn ~Ey#T&v Dœ BdQf.V.J3]bqJ&½[.3,a40:0ߔj@URK+!14^PNK,NGQջLݢ4K^Sb.[#7CK9t+q>P2SGUʴN@{%$()eT?2~"YS S/_p"T̑Oۄ %ƈ ֝qfdy@>J_)!Qjm25=B# e)|%#.0<6cS>+' َ)&,^l1]MS*+dG-^Z^hd}1dHIǦxCH%BsŁ΄͂ybɉ|*s؂@Y92Tf-zHZ)I>W{67iF𲳖dr7۵5QգQʦ I$2[Ol|:|#~l M5 *6cK3Z  jUr4kkw)RiUbkdˍZEaW|1~Cmn_fv1%0&u1Ȁw ۲͓kF.F;˳V6,,Ngu\7@hX4$\udT.6; \"$UM|ak7Vأv]}t:yXcjUB†ʙa93Yq&yq RoWN'-2J2]r:f1`Cπ8SGĊqH`|4N!cajJfPoڣKv$2')`͒T] q;jT'SÝt-sqv"pMj pcg {dXj2,V2VG?.nue7 * 5ˡmݗq& /A?HK5^"bGP5݋۸=+ 6=\f'ɰ2Vw"սx=i2/rs4KMX4"H^ANg̳ xAzyA;f>)܇Emt )QXmذRG=r]6ltSVs5[B{URLɧԹ"Dd̒N=?4k p6+TB86*دUg !)d"F. 0YIx >t':nxIyHs`c J ds (TN3LZ3xvEܡ>7Doi-ǠcGQddD+ <= ]UwlvZюxfRiGd [75'N^%L,K=BQܯ,+HD&nm$8,3_{涕ǖ3EllX)QqylRZzU=TM{kx/ڵP vF^ox#Qi>h量Im/]Fmj}\?`@ZIgX({xiSf fѸqgCɃ@6|@8 \\ARݣOnZBZG݋/Dr$;ǝ@7o`Prܼb2N+nM}j"Z}a^I)-Xy4rt&*U0I NX%q7qħ*S7}#3*nܴI@q.boBP.sYZA lp$w٭ǯ /g[N 5y Sv&ZV:5gPk? IųˇY"KVV ' yҫ FÉ AT:TWo9=K f ka5/H\gI]@ ͺIj%,g:Sc+im3u=E)b2h'֙WȈHL98x;/[M FP*Y)Gk}[=ü9G2d-bīiS S՗٫\Q(=|d>(@պ5}ҝg JȐO{ `9aΖSV ^̅|dTo!uh}KB7έU\fF!ss^ض;)WuE-T>}w|Ez f`"2P.+@L7_Mx_x 7 6A > aw=ח$'8ŧ3d04`+lGr|uc^<}I?aNpNnqޚ7/*eAj}3 ObɁʛ{X-)1jDs`/CH9)6`SZٕ)E̯%1/;ɑ>Dp!9LK {A_]ػN~2dFj RG,Žs9yGQ{Q NjG$50C3Z&\aKq9@gT5%q;}೑*5zXӫGP_YC ϟn._D6c/bcL~ =X^wmEL4ƁwY/|N^%u#3Hc@Gln3 /W/TVm~,$4u $%źkH|Z`"Ms8ML0˒|!E?K-9\!6h-lUDP5Э+NL;i|vO8uepO&{DRt`Czl9Ur2tK!`Vwf=Ou/#Y*ML-F<3|za1J/@*DdG ;YMՀl~0"~\e_dg_7kݮ=UQK7twKu?8-u39O7Dɋ\ } S W|(2`+ MN|YH}>wjyG "n'kz-#2gGJ#׳`ׂ@6B?hc kuI>imT+@kkMδRTH5U2?$1OP D9O IrTfxҽ6A9Ax>[ &C@?4d zʁDz Pfx‹=:>qV3Ʀ3.TxS[Г~X4*|.w^1e!A#v|),?S^H/SӒK]B һ@`^(U:xQq!p砅hiUԞ[*!_RpU|yCBl};et 9b9wX6gb.!ƥ$0fϦ'$ F:dbD`H]yƉ uᵋB|Ǔ=ekjvS>{'/7@Mo Į!$q_JfΪϒW|#6>o!y9PK$Tw)7t'&I"C :Bb 1B"b77/2h>d~l܍{TYM^+fnӕT1kݢQ{i,TResWHC6F Dm\epFT}ZU=qFN٫>x7~uzڈxH"H:3y0d1D=ddgKǒU̴%px|4 >ŷs齋Do ,xM'nr!Ђ&MnX\:1F3M#;,ԑ2 mvKW5 ŎDؤ!B4SSp뭬S^ ͽPǽYqc9m+!pHrm!a]y '38p^>>A{ r5_ųLU}bY/*Iy>E.{Zm ' 댵 #( ܉ՕK\xI8YhA{[iO(:0oy]GܭվX0fo;-214r{%5;X<#׺ I% WQVxI&.Gf%/]s1$[}IC=IE)">.[A@oOWrk*Qu$¶idᗏvJʜ/>"ğy`6%sH$l)ӛOVGbdR8&TpʒuJuQ$?i5 XY\ML?X7s%lU EcS Ll_ȨZF'Ni$4kgd- z[OUhf'Cv )L㴿7' {u Р0z[ޫ0x֪ i ?b-MQ{EJf~}ZTN9ES?IgQZ$|B"i5yc디^m+p :@8^͇|]0[̚(P$q_\z~v==.t O$gE#xn1f[90!UsfM$7!+A9A'U5>d-NHIyO0uxncޠiqn0H8'i@tT"$WiubeOoUbT]Dx J޾Qp{!MdE x>K S߸%tͲѢ2uD4v6u@ke "pQb_0r2gj L\@0fM02]uITz+,<˹q6j3p[~['(F}+xayh?c&*SYLR܃O* W-:W(H_;]$2,09_+W/beX2YF`M>woZW|"\b@7NaWp|278Vymj|iEZ ܬy$ Ș IuP,s3{9O_#]zilюp{p6I3vnT`.Zjsiv0yֹO(K>: !CiJKnpk<ۜR έs#jv.-EEe;ыhY4p{$we.˞f$lmvKySE|H DNʾ5aIR|&Fnv3SF~Y,R4h?_0pf4: m|(lt9u%!#΃fY)3;IW;(6FB#;q )P/jwPř#: tP<}V;qsvd6\AB!T Y8m ZLTΒ kԐQxJ%F[ 76ז=bJ &sP8P$Fr1p~ѬO{-|KVGKo<[Wi#@+xoDT:)q? eȩ%k+TFێ NTcPTnQixkcVBՇٙ_]X'FSzv Rs8Nِޑ$S1 X@gv2Lb KGpuU މ2E--W  ̕d*j03Qwo'r"B,b6Xe 8I\\;7+vjڙ]N7b^F$Vďϰo}ř;[2G'J4T#F-Q0nËJ;קĨ;:/YM:y)zn;/I$,4ę?@|+C_;Oz0ݚ>0Y}Ku殽I\}dC6@<Ԧkl:۲qi{Fծ01;raa_2Q֧[e vcG-;\1pp@sЊaR0 |ȶ4@V>sv &l/yH ;6>`=I&@S= Й"n\+] ޗ9QMFҕ s0s)HG`5LŊmqKW`}^?q:cO) 7z-Ex|,(-րa={T>b9܋iz7$UJ۲(;{[ZWӰ@޿ q K'\ԔUNY.P*,֥|IOPuz>I x k(9n/A5-[^S(O8ҥBԱSuڥF5&6X;Uڹ.Ps#J|{h6vBʴ|L } UEqTy(6f>eHUGY,id^T)J Og˞WR2n5C7O%{K'ŀ;khiK{!;;'\Y;#d=m#X ZyS\+Zh>3!Qę6=H6F$fWcz_`*bV]H]i1>{jAoz[:>v;ݝ$FʧN]gF὜ioݘdiUBް2(^CjQ\Lb$)eAoQko"zi GzVƏ OOh(Z>C@ G%4KE`%#x&?\K 6wrR׺q0;)̑T~~UaxzN0\9sDY*WJ'뢱el Մ"Kxc+ Ih,3dwO!7?G›3u2>HD1v/p/ ?SiCryZ̰(0?I"˨M:Jk-D[vo0>j=%"U<04B$7ex@)N|b*oA~v*a#%irS~O /`ot?gBķub 3B-ypRzP\ r1;QQ=U^+)YMq'/fR]!L*.C*o%3tr]}SʺODA6Ҡe])sk-*|1]EuLGUAmF; RZ;\S`B:xBN9weP5D9ppniG:}#nv%JqIA{bjQD^}]2*-\ۘ)tMCsrk@J6TُH<#^&zƯ+ڒސSx\;VϴWzE!?;@9F%G2FVl7Z]k:؋%Qw|O rHi2_5Y񕍼u` ]y~sFAg+:cr; `܆V"Wѫ6D`E3p Yݔ1~_nAA_s|W(f 5yUU]r;R6NRBwfբ?. ]rVمYs[7 FXyY썙Ax>7&QYlYtrSYɠOL#*"bp;-#3柄7tyw#* ` M].K{ve%c& <9hiv+O!.-ZNaֳ=(|:@[meHlJT¦P!F)qU2DD.W*7^Ծ뵦SH`ޟ2 tys`-- *$깁~$ѻfiA|~_4e!/ec$fkp1Ul ^k\~hƷGYmqFY^ F%y(Gu|4;g ᙗBϾҗ I1b/aH3uU=I'SGirm}p=*e;cƌ-MϯL1"~&-;(&*'Q %"C5-xVh1|~i6f:spCPx?ųUMDʒr"~F*EFx>=W9!=Ŷ*BوQvymca4M}c(~ϙ fTh >ȘȌP4%FC4+uZ5 J`1c*`$s-߃hPr8籸PiM,6M+'3lzc . tJ(H_ٴe__G$kv y9Fv@4[;?ǧ#':i @7tFBe렼~IF~?:Pkg#-5kǽuO9 fCSШ,pwm#ˈ߂Z5jr'f]ւR9Qm]0:U:.9RO?FAk+Z*M!*uA8hwCeEMhPI,,שAH7%P:.أJS$Var tV _BxoGiuJ/*( bXzjSB5HBz(Jy[/R<#S<&\?'/.XfeV g/¹R,UD2yԈ%U@Iz;̓c_3^7ǼE(:&S" 3Tw~tߩlxD%n)@Z_p6̈08~dl-MN\o'< *0Uph]DkDל~#qHQ8Ƴ#Z-qBqFODQV0Ah'/aJLtaz.caPzuE8%>|K BFbjkWܧ[|oS$m~( 07aZY8Mgʵ\CL3[h=ۺGx4]2\V_9#3\+M434Ra3tfG bUQ_?i i&y grtXRV:KȘI=ړ ]e$}K0&sHoL`_Hai~axБxĚ's΁;%Z uu= YOR.׌8s;hUA\8tٖ'hRF& kQ(wz~;K5IxCkxg/嚥 Hj귂5X>dVb487e$=# ?SxP6?&! 4Ҽ\6ѹ;U&!|.#32CԀ,ƛ`R,O٣ Ic6`i/h f Έt]t$U$u JvI\_#p;;zMw(*:$'%"HfFI2)SՒ׾9$JidTEٗUVeu$?FD}r>f1d@J,JeD(uU`e˧P]4gz|r TՅyuOP`;7ڲ\jm eTSo xy(O0tH1krJㄹEV -IԪ[!ڣz`j P?`8 Suڒo[b9\X@)Q\ [؈ѯ3ˠ/jk] M)u -wpG:E++ h"e.BdՃ.^( Y=̞*: $Mv۬#=%H=4 >FB]A l0T_܃;P,>ha M{|w CF T~+@7"& o HMtIii_ElnJk'3N^9LI N~T=VⵒhfMA@iWc]GXտb(n;uzkTOq0ƠZ,6\DM*+uΫDO"4oGWdQ ąաc`N8Z\ƳdH֓dס9~L#Вܥ"SJv]~-x `f3>'[qFz6p8eY7N/]pV7#)S+kIo4Cؼn]ǃtN+MjM%*;7\ۄeIlEZ 37kn6Cu'8C,~!%2nk 5OdbQT]v^zX*pӲDJCY(Շvӊf6K-`0TYkӚ%F̗!z-{z祰x˝43ܮMG౏)\-eV_X,CKLiPb\*cMxOQpij&K ;UKx\p{\w1ǀ:oei,#$, {gnHvOrh^x~䥴dpkPn /60֝VqpZӎH]_U[=|:T'pDR!Kr@Wu(exbXX#}6GYduigǻh37ZoN=+- *֘NO30b۴t _e'm^?T3c(bQv4!5s4BkawJ+"LJՐCqN#Fq< !W!F;R3=sgg,f֣B}++_a킢aYOmԢ\2[m0bG)>:^{S5F~cLBGEl@a2P+ȊԭSU \//=l'ZcRɶS8X(K9,bi G~+PcOKV%$ G ?ˈMzwx^#}q?3yi,G5 Nui73+oYW{k ªɏ88KVc)ʃs)+h;Wԯur?A_q% 4T^Fb%u1BYd4f7ri'$MrMp'yk LL"ks5`_ǒ`^Db71zٚhٯuPt>v*";сHt5vǡ\82// 3U7vDR">l0Y-ۢL:P۵DNf'/7G{B> s{2pj2c%עU^"d{, -39N)$*MH⦺M߬:]F ɽ#c53ߞ`!C,BVK4GrSgkR8>Y ˸XY#&6Ɲ9q.$

j{G7JU|tCQy fܿ[hl৳m"((2&-vA\=>o[pG{FXp!bpq(bN?W/CWzˉ\Ai| 1p7h=A"`S/\ 1nb b 9a .uZC[&7ݜ5v6>r*(=OK'b[R譟jd m Bj4oNfV+hZ*p,dz.&y}h89Lx]&bյA3Z`+.:$ AKK#H밠/*0)\(j?Rٛ})Y@E&Va (Wz{>+enaXz"Ǟ{c!1N'fwl(L^B#wٿB}ZsBsTΎ5 .{и"6k"q)lͪ1MImJsLkX5;e1tּlTo E4֞!t1q]kW"PE,\ !նLoV|;13EM-¡~51@b<HlM3GDMf/כ^ -ʱ#|ikKL @9 ^F4)IeXWjE"˽5˔_*~/CɌ'(M7CK oҺq1fˮBS0jǮ\eQe3U9V#Z7.w͌EvLj坆5y21\PL_[vEn'pf\tCf!v8>_<Z72'?랳#/{1?Vd衪 o* ^ ila R~+Kf55ZDz 9$X:I}׸ɧŬ ]a+Ǫz,\]vu֯ O_\gY&vx)y\;Rdha6CZMSdiW[.Ub89 V]TU=#r9)#G ~+MDK u7̘5@1ixː & sVpjsؚh맭/K Ӓf }u3% nUɾY'bҴ[6  q;g4xvC#x%Ɩh'%%ԉn)5ﭟx:F$M^.VPuVRȆCDFULȘϤҡF[LWO tt؇hPOg0|gI ''_ia>5grkQ|J.u)r˸g)ZTyL* 0w0,+XaV&2ɍ-bGZpN> >]uͪӞ^5iK騯Q8ٳMmm_}ݯِ6U% m'˾k6rOXu:=(;8:^~BvnFּjh*yZM9Y&j\GeAKc0PY8K1&\ڤY63#oX}E]"봑Ñ OW4䷜>ΫSaf%ҀDضyiKR-$5%}1O  alh:׃bUirEFW\V> 2!'P ^Z3N P>qߥޖ7𭣜*"nyT`{pYI'IpٻQ?M Dx|= gǤzO}1vGzgUq.i] Dx͆]:3.#2WFnzFb8О7`Z}FFf0?$zye.Z '(;4c^7O ۵{Aj¦Q9{cvn;~;&Tmgy$SMx1A+yI[ $$ Q$~cFUz*"8َjCtn|QvSA؋5YĴ Bp*1T(dN3s^r̈U~YX[K?,fdls)V2ex)b Ay7gCjWbEeyS#|%O&*"D,׳Ms1I]@ ׽^- b8vOׂjgk3G2&/g9MO4S@˺YONM|;C#tMɠB̧  $*~_j}.:A49 P|_z, ~1:V[0vZq.jр`G%uu}A5e43P~{cpݽAޣh*RPƋ?b&_)A ƚ[Z#~&xmOKwfKEM/ X ny:zx CVܕ{iaEs{%r꡻9nA=&fCȸh KNu-uT6O׽7Ǻ˥|FG~AS##R_1%z[W3ꨓRQG267t"Y6 QJM{ݴx`VP?-=[L7swsOmК|0u s=@GXaj1 ?tXmqfӀ^fq?WC]{"&Y@~ {mW<ݎTq3:߫F.Tbt._K-CY`ORbԚp9sG`gO"m";U)6Fj?eyLNݦ4Ke ڸX"~{AZ>j. nSE$`|#z"dÄ%~,qM[og=TF$hDgL{S}RN%zʠDȌv~r?%OOvb(YAE8\BQ_) V6pF#LqI2띙 hRL-'y8U<^; A:8MKw>=O&ڐ7uRuyz֢.J5(ᔊ?1e0TfQOWnC~α볣~zσ!OV$*E!D? >?bOk]Hay.쭉s+[8S:~ ;h1⥦dw*LsV:KSh- @R'S jI)\! .Dly@q0Z䁓;),z d7)lғb&K7ZA`~:.!5@hUD=+W-|M$Zk뀓c EinuH" KCs\M ]<~C$viz6 nOCUzj =QpQd]ՈgE_#F6oO(o֖[h5sU"]Yr=ߙF@%@$ˎWU|pw3TH7yxEbV $Y"";PÔ8lBZ\75Qh|D({;;AO˾ Ʒ`orl>B9kvƷ'k0^{ExKY!ӊpBa( gn$l@2:k6V섟v|蕁}GuB!It& QO(%CTǐ.ڃjE!Pډu_țPPSD]6f_JyL|-p(].C,nγIOn1EY@Ks0RZ+?d}7v9 n7K($ٗJk8i"$LFQsV-ﳔYЭcgǦ4g;V Ɣ;zdgiPZY/&Iq/t2OEkr39%kЛT|  k{q+2 {C*-J?~*AKRwPNI$7Q0@߃t#Ms DO:TT7Mi: IuJ/ZoQЉvOh-#CP+ck|geyP) PTj53׃T#Cփssu+jiҢRC@+d: ^|tC}5sOm}"–3riQ_>KʏSvq?.]N5m9y@F=p*/a40RRST-<56Xƺw1" QhF,B(^w]Q)NcN<UNvnmDڹ-W7iɫ+e^*_F/Z1W HSPxR,TԵ{.7,qg :UR>AL  T^;xO{6 QsrzLe]\3lF{eug}`BRٮָzUxR+R'Pdd{oy`Q$ULIo앑=ԝ:0꼑^/낁4ї=+E(Zj'y!17b8 ¿KbJfD9m~RټԔO_}1aA|9)?Z r==?/-d K_u1>5$#c"JJds84oc&ۋMDpOZ%IW! y{ڊ{pLRC'~7.)bd aM%uy;]pF@$i<~h?S^ax ]!AЌ0L[%,%?.6P6Gx iWfPv~ʑ;IcNE[VY4~S]thAdS@_ς =d0R{_jqblꠧkODkE=Gz!O^ QނtusxLq/"Z Pܝ45a!JX$$~o2 铗-gNWV: |N6\laƋAGTY\^~/eFNY홺Sehŀwh0 RDG7$#x4NBb =#-yU>=s:,A+\7!:b+17ѱynX,O,I")KldAT|H#k}wi_%Dk@Y?P ̢WRui߆"c(+qb  x*Ak 6?(]V{5p䣘i_ g3Z Wtqa Q\ >(XƘ%7Rɞ ;" b1*w{ڵJ@Cly֞s)3{bO!%%Dz,oe6쟕)lju̷@BV_ Jt\_E3q57 SL[g Pg?B8'콮n _=- ׽I;(0vFeDd0 !=NFyj~4 }=,%ъ+n'=kqn`'ć IgY]~w=LizJ8\Ecj F 4L]v"tLs: Lw6W8&~^o7[fUQ|Ru߼BCTP5oO蹳evcΣNZt$y/:Wt$xfC$aʙ IH#-H=bԈ"WXx%k:)}z*L=;sCrhUPt#ԯ U0ɨi X$"G bs1#ᄚ&-j4nqmͽWct䏳8i6g2Sы^_Y9Vj~Z7VJMuPvq?LRi&8#p467{&V8'wkHk?} dm8$15{wvr*Ndбc! ^.\/ѹYX#m('-eG?fT]l[&ݑՏO&uw{.%_2nRu]#_5 YD)o7Zwc¸b9 b!a1-SEX)Bء703FeV Q`hCijoH9ŸnGen.uc85Zo{?U) :-:P}z⩽kK}As>Kp>DzrvO@wίZ&.E>k>/>,U4>{=b 6 yT$@QL= U 4QF!Rlao7h#܂OOTJjM͎xkx `yaOz pkC \5Y²PxR[>Ŵr*lO7܃{|`ukfgNĄtt[{8NksL=T7vI!8 ~zIٷpаY {* |&8#[zGDDũSIiZӘ*7A˙l{r.ǯQ3,g=')^`Ͽ-{ C byEP2т/א [O ]c 䟸2-ǵ ,Ao'B{p2U"y=$1>uGՖն{QUNk,alPJK(1Ef@sT.&>~U~< i<1ð[,lI ϭQuM0/ɏ$г;2ALUqwf1mB5пjҁ}:Okh ہ>Onw2,_*n"no!Z h ~NF/ ;q%HK12|=(*f~1~Dq Qڐ]a%$H6VRR0[&g2v+r{Ɖ챲@1? U0!e_/["Ih: q-M-&zfz7$xMX Hq>W|?l<]nTO򛥴AC|/l-Rb7} CXPĘM{[|lbvYl+sVpwY]MzQ~})u|"EipTU(C>62d!%#A[A4tx<m̰Eg Y{U-.%Y!hgE@~f\BoxJV"I8d7:KsHg$!nOȸWaXjAݯlyK;%8tktw[igNA[.48H*TT/ܻhN2N;p Zf֒.H  >W0qEYugAhToޖ^;fQs =@*VvEZ7>, Ex+o8I`%AB IKfo,)Owka k]zÐ`#" sgTHv#5&6!kT)~Ⴧl;N&ZnnqZ adJ GMVd}r.ӦD2bEiWtnVDj((~9 ]tyEj'd;nX{ap'ZLURMFSwʰX mxbޗPw#Z2YyTw/7S@ phՀhwqt_pU'l3;NƎfyk[Zxx})vDžT<,.kz``HjGOHcOl}߇ϖYʬds8|Dÿ|LƊMC l)2A^3_wo^גT@]dd @QjL=NW;AN)/A8M^wr{NqT: 8w9;ݺkO9DZAO?6l_#_tuĉ1zrh2t&0I`o-A5;_b;^]okVABZo7oQV`R3͍'Qϋ..`H+X8[_9V5|S93ŗTӒ*ox*vq3OHM)ݸmq'p0K1|M: .A-vB[]d Ma UQR:" bt?쩑XqN2r>\ z|>S}dW\5v%B?ȋ&7!FL |tdx1ONm> |+T`7[H ]qH56!a;VFVS\A)xE6jU ?S7,GE5;΅lr)C< ?|b!Τ>susa me(FLchf$ F=>Z)60PϒNQլ4l/ⓣ} (tulzː{R[q S9Dm1pG1 b\ǁm O)wXxjQɘ;ńbQ+ L[yb>sQe#lf12ׁۺ=Ɖ7Y>vFW5%x| :Qk.hjlKnt!wH)"G.8U&Lx|v  $R#/h,/o{z;k!`T {qLt%_c7h!9|t M+N}No٠闆Z2xl !l@O#ZdAlaۖ8w 5GMqJ4TDIV$W%z[*N+ԟ_?_ʰ3` TX~UOnrALB "WI[=9oKBƣDsy8|09Kh79{iKI͌CYnW2ŔN!:UÙyGo5ȯvثdEQkA~}zFvj!,Wτ_gN!fN;s9[\H7\E,ԭ-̱NlxB)-vB _rp1-VqBJO5PŒ}>BMw}h!VkS곇ԴTXCql29Ǯly&ٌ0gf0g4v {i|g f{Ml/7涗Z3WĪL<Ƚb w{B)(q=W2Ƭt_Eldt@C %TD2:=UY̸3=Di2-Aw:܆:JQ]3pOhZU_wQl`s%|6:1 k/XzCW6JAZN{"߳`%Ze;gf6X7U"A& bpwI.;W-A*A J:C(:"RϰfDS_pUQmF'FՕ{9zٜlr|J\1׶It4sq mh]JlbJ>%24 Qү|$i 4?Z0R*&8O-nvDݪ@d[Ͱuw.T@̄6Ƿ.?Icxܣ$d9ކ] )Uڀ`cbp-")C74;ҜxmmܨY9=<=߭5AeBghk}MḾ(ENs_[%)AEilS'+8gn>O)T $;M7%oL8OVZ|y::rJņs!Lfh64^;<ձ_voCS.C` )FP8;~ʉ~JM5O_ffѹTNtD$'ETѬ>Wby<ݮ!;ƶ,ZR#.SU5 yRѮSK㝺JG.pT@KA~9K7؈ 5qce1v!PoШ x$m ҡdEw[O$cf#?GY])oՏw47qP9$OKwd|̌_ NHءt&)bEH[lrc'TQMi5GLГ7k 'b%Q`uET\z/U$#s0$$4 Ϟ ,؜6Edy+Grv Gem`wsUѹc.ѺvqV{Y} ţ@s'[hk?_:oŊ]:c1 E=ޓX[Y.8>TUsfGU_F %` R1C$Pf`t}vs;~ I7.*'4Ib\``]䃡!: "=C^$V?mn{xU9>ޛ|»Eɜ~d *jGfЇ1ynkQppzYʩ\0+7y}N6q)b񨦝{45+=VޜG-n $0W<Bi=ޡ eO$8V3+w/E 6w}7}u:P{@:VDȨ]4MQc K¿ Z*t$rb#Tø.?@@*Q M$zLjw"Ӱ ܟiyCZVja7wLb<047 -ح&6]ÿzbD7xz~Fe 7_+;uwI*fcfI~;ӎ%@zC4~1OaD:F:^spAa/p<֞%HHB]SA haIygʨX=zbu!9_cFV2#+1[k6_`XF2QB<Ɖ4x'XJČ<;2.` ]ek7|E'vbV*}=<7 sE*~]Щ Dуϗon '@F`ң"5+$愬y; {>j]fu$lt2ւ :h(qh WHywXOxk14 Ša'[R| N3mg!xgߢNu #ƀ9J΢).2/Q$S!h-/n]r-Lc/~]cC_ CaD>̀ M!yPyAvn1#-rߩ[gμnJ'Σĸ~ Au # ^\Or}D%[YTFMD 6|]  Eؐ|70ʰkh…=> B~Kb+׍( bR;M Cb}XF<[/2 >fk%(~T4GOItF<ѣ_=}LDІ;(7ޓB~`? 8 }_^Ä)qJ9ut".I 1 -0i/698,uӍήÌ:G|c5Y#Dv4~ي| kެ F ?Ϛ͑y7MEx^a|Yhk>AP=M0[@S/vhA>o\k@Ĝ =&m;pJ ԥxݣ߃kAC6q oaU1.FƲ4r믪݉\}7s0Bj;W'l-}QX_A`Y^К߱;Zf1L9fݷEp- }S`bA^˥B N⟅7 K{r*ABye\72Cw9+c1E;3,egg2otej0CEpBiQt^GE^HkU[F:g$Y@RΟx&diuhF42I´O`ʹJ;6L:V&qGcِܙD.PAH<2?5wkGbH%9| }K 4&b.d[ _G)eudvI, -—Yw[ WMz2tOJJBkQY\LSc 3.2j^3%}n(`eο@.#̇-T"1AdG1Swz.k nSmzUE{0*59=D AO*AϪC<.W[^=1w ;U6)wn*y  88̕׺#=˫8FC"LLrْ4A^L-J, Q|d#i.va6 ^4)&z9넟sxrR,ISɰy ?$?3lV }0"5c2֋ifϱWbmޟV/Kny(L-UDӳ"Sϵ9;–8GX+[%4\s9OѰ (.~|'·1ؽWP! u`5A-H_,v5UIx 廲EݔFoK[1A?M(մQ-W~!QFP<dgGZ+(2!+j3Ld\Ç{74j!"(4m&Ds;j֎Neg{ {Y6 YN['Mjv-ye]w.4ʨ8xB.;k}IRN֫|ґVbGmַx$+ea*濩ݪtjg)4H'M: $1cV0ҽY﬿9"3~6!knptyF'h Jh):yo(?-s(aIIdA}I"G TȷSL-;IR KIX 04uBb~)X9PӀ{+ifj`o3+OPx/ֺFT% fUMO,&" j6KHw*&W{9*z|r*wf]|1u?O\e1*(yLJv yqn3CR[e,"q}PG?N߰Ba{/\FL'ѵ|-mOLݘ޷8Fyg{e5F('FX7&0Ksr6cfayk'5}ȈA$DoiTE_1[3TuC:^36f~[ٯ U.5>pYM~koYV簅Qc}|g1ofI[̭W Rk͈<ʳn9,cuoS {h5&UnwN`W^<1|e׷ݘ @A}\|Kn٢ We'AO:l;RQm}vJbb}/'>v!zwU?} ZvjCAZ+Nv҆~{i9<njOv.HP";WN/Pݰ>o)(Ab_<.EY9 Ǫ\(w.״`Ks|0\=4${82)ԬT߿=]Gѫ٬LqlAzVhBkX}Ҭ&GLAfb eU, tV&r:nn[`W5SH+&ޱ98Tǹ˸+7p`w;eבGd,F#EZ0_a HXR۝0Uvǎ0g RڎVkFV86SF([DZ4T??sIp햨ĥZl.8W1Rk5E_8]V16 1քz3 z|9Dvq>hg\l:X`۪-1}zs"5{ڬv*Iy-B |ާwSƥA_8sROڞ1aWJX8ᚢwр>ORwʶ-yؒJtn`Pn#hƱ ib7J n?s+ WW`nS&he>}@Y`/bU $E1 ckXh!)Lvi:W߾ y{h; t\֛V\F2ׇp%,KUynvϼdz \UQYJ 0@9 ?Y5!H--iVdAIxc7 W^?@(\[)cNE8 s?[c *W{3rMӁks OI6;iRD@9H Kɋkt02V6Ra490 \ 5!W},Y+y7 |![ qH)o $_3l-s%8 o4,Ԭq7g}Ǥ X*դJ&W#d`ιI̐rs;S^Po+%/c<4ݺPp@h!cUTRiD"K$Wp׷μ&٨&Bc^F*^ɔVF DyP&:`%CX&t*4-mƤB>ŕ BO6qnts]Cb )QqAܸsb{-.- N[ZU']` @^YI7a`/@L(O9TH_)N%7{…F't wnR=mMkb%Wygȱ裸%WK3X+~$Łǟ`2)Iؚ"Ji9u˝?zftfccpF 5j4ӞkCó]aF(F\hsE*&,vcwTS J>eOS-ӽ A \2pD{UnW_Ή"!7޺ :Vqʄȿ`J|>3\Su E y%讉S ]įć2F|A: oӌl0}"≆9) y`ZPS.ۉ!J3Xl(S}o.rgY xEOXi&:iD=B,J43lT-Q%T2T>"a"\edϪ/ǀ""SgVAHmc͢aVoYCAKoB/ !l%ByzO=St7(4s2\(sGcp/0*LsHUM@v.q =4^^ 5yc!O$ы_ԍ~8dهj-G lI *e2XӾ^}WMQRi?4 \h0"cakswң60V6+r\wo):OmSrt3ƞ~Z5v$jm.3+2X Nf~{?^/(JVT=elN/[n"C#p b]d9* 7πv'T> U!5o|85!t,pmاz=QP#`].[` k9&Ic(h߹iɯ-x2AgKxN[28D'ZLu/]!vDu753xbqch]^v;^`;™bduKٞ'O}b!awo4uᮈ6!H$4g9O $3lxvkBƎ/GVwqU{2:"0\3a~6HrahBx3<: tv)ȤؼS8h*XCv/~ ;&f+AKw]nhN.t7~H4Vu{۴a+.v2/>8kH--!aWGߐilG6ݫ.JkǦC?aK =۳G38?N.:P&vG۔KW)noƿ~fPڍE1CRoqPccULR0y E-Swߙ 3]F4=+ (2 -55'{;mc e)7\$ȢyXSi?m&aPvX@܃EkXgJ P^^%8Uw<_C|%8|] sٹk %nM!9UC]FJڮ\JB0K1M |u)ZX3#*U6 Jt17n>mD< nPU+-ϐK)<3RȀHP@/vK+N[Ml<"}m$r7)²+R~.R|Z Yrq @~6 r{>XyD#uy4_̼͉UgaKIc}61ZZP6WOH#[<6_kES7mpwG'P|x PTj}6L(3uT0k!ŵ(DtF*[)KTbU6rkB&_UTO':f xcBgiæ/둸*>h6/Y;vMHWN_׎XՂ1BZJLuys:aFRЁ?O" x{p,٧~wvбq&geU_+btl]Ρb'0&h!nSSiL.WsA:ks6-n:{W*:玲#8";sōEdnȎ&marț *uҙ/Ebq#{!uEwQuU$кP? 0YaǛ}ţnS*Ѝb 4r_~P繙0`* (8z,d н >}YDMgR, 3 C+VDsz&аxaj8h1k\4r y2JQ4GS#xL^pK3 iD2m !$U仮N\cjgx@MQ91ga~OPSf=~6  n CTJnm刺; otXC4lխMx1G!G%ΆdvJ Gq7dH4QZц)/4c^oĭHJg1̆{@.,ԥ#W=\蛌όNb#trBf"Od]]3xX=1~5w p4Υ\12.? .]V5a CLؙ wf2.bdas22` } /i#9덄yv+h-uœEQ,gyQI;(D{_ogAz8U0:U!+dN%'JG 7~P6WrCԙWp?P%2$ng5/1,1l,'CIHcx׎I &_ ŝZW#ocY:vdܤ]$RJ,ϣB]yUU_hD 1|.n55vhni.M*%zC0nH Z IJQuͰwWrd^ZR=sp-!tG ?'L'+B~W #ߍ4³R8pdѢ8Yf XcwЃMZ.z>umbYRGR0Q?##/a&g'Fvb)o`աӂ-F2c͏Sa{];qੲQ|,em/#;v>AԱbpJGzDۻAxQP? ;WP: SY B4֧_43^^QٳI)8' 7]O5US6P#W=[5rJK{J 3Jn/VT_iD`6ƫD|k~P|P_@(8/=+܍ ZF%eKUzLCO>).Y/!Z"[~OhL X{P=}u)̬:6]\o݆ )|p[#<;r>IqG!}E1  (47yTgꚍ.Jcʝ8UŲmziž-az]>8 0g>Y~gm-U̷`r}hG]oU̍$` W3r@~DZ^oEI.d+{>麐;9NU.8dӜ~ͬ=\RӨwÎvk$cB {o$mĞ{Uʨ/Ԓft_VI|^%s.#Qc9XOn[];lKAr#/7qE=>#))xj\F ȺjfIsI4 vCžSS.,!Zb`P^sz,咔爒Qkq(ck:d&.E VEJdq%`*R;_C<͋(,2GҶqGLVʧݓM+3%rF:ʁ:.A2,36ٍFT{5DqZ6D$CVi` ՠ-0%})=_}D)K/W;J|ShXU=`/@I}P퐋>`%EZM~I 5ʵ9݌@| \Im2Ҁ);- ƐaI BφJ!8CI46QRݣ -7r. M5Ն@TDwGg (hn9&bu(k8CQzX(g Y-h (~GPcD8C+O,& [1BۃGWR` SlKO\~]Ǒ\1jsVϡ PԩK+~՝  ]BF,3CMEGųe詑D;Iqj04,,}@+Wo2BntA GH=CNtkrF'Bo1F׼@I]NaLMT! ; yy1__hzJ2 =zʊY(f41Đ^x}0斦n#ۓ&Sh@YF*숙k<ݬ9q#Ayew5*~?=}ԃiˮ^B1p!U&]nerb&zmhfTUKaJBe|ک:~'GK$F)"G@!άʳE B[DY7wxc:(+1;"@ {bfy8iHƽ\‘D ʑ!U56c7nFV'Ⱦ4I;I >EU)ܝy* *1^}P{?lˆmD< ΧXqOtzE ,ײ=MDUŸ; ^+F$V*Kt+P-SaԵZ󖀒"%3bp^E>u Bse b[_:@+!y4FU͜ "oCAɯӒB^sD,c!G ^.%D)Q7|JI/OY,XWВP:Jٯq>+'z><͆^6e,t5@3Ꭼu#I~"5h1?S-ۋ]92X uJʩn)cocYś.<Ӄ[^P~e,@O@;nޕ+Jԑ $۔+PH,g+vgr`Ʌg}7,vى.WWR~,fmvKf0 /Hi'u^:A}*Ků1p ܊=hgICԢ8{,fQ%FT6m^Ofn;tM6u`wEnߜȦy pפkO{l"vP'OGrtTZcEt.W\Dxov',l'E=gQpi!lpޖ驖S=ȷ@6v*ڹNc#G){Nw7=tFVi?GOT/?WM) BM_)AP$t~kh?{<")y{,A7//6_&M~ ɷu~.W1 P&g~?YLHၭ$@m.1O@l 0+4<6T|vQ2c74cbsZj;ivWN@J3/O<u_C=s'O$,"fD5Pb

D RY%*&.赚dY&4 #їtbL5U%.oُRL -t{tW(#Ѥe>K3K[:)* lJOx 𣏕{>P>E_]*>Whn<zG\HfKNLr2(ydU-I%41zWTޢk~t,Ĺ*@<܈ٶEhJau8%^]7<*h16 RJ.E鳐E8ןQWP|+ƗN ?oy Ms/ *$7ȉ rBŸ_+\Pep@ pKT ķ\E_*"_9%` eU=]MSt%")6GbxE*_#[[NL=j}c#ڧ;K=Pϵr#C`D7 i{ީN_Ɯ7s͘;@ihHtf +YT糡-)s/=P!_qtyb%lȁD";V/ѓ|)U,OOWnE`B"rX̣)j1)C>g#}tt$6BuMl2y(ɛ[+_Y2hYȽE ؓ|U-Bi!;FY!҄t6&JyFe*t] &<*g4 G):nKaG/߻Ԯu:J:p4az$]Ӛ9N0qp0/ǡѲM ȟS(TBb tB$>$ec m!}}!ݰJe>V7!]{vl2UO.5zƶȻpD~75?]zcE7;k̋wM(  {6߸*'V.D GM Yx^=ےm-S[΀1TTA >.:Bz^ƀ; (:o<>6Q=3SgU==R; RzIН?AbPXyoJn-'EboscroڃnQ?GbP6()刎@ Uޢ.5AR*ԓ$>W/UHRcafӭ&TNfsUPTܲ-}+*b7rclsLQ7.,"_Ψ .,p {IdϢڔ ̴9l!sISZ'ױ.38ڦTBbL^(fY[n_wѩ ZZ&}mU@#/:$^eGJUUc:=R%<԰Yl \H]eX4$'.6]5(?"[5 31ĦqګrMA2@&jYd{A;G"-[SB'!34!!L[ !þѵo׍b1 A0ePy9_ Y%=,j)f'5"KfDō 36nS|c(Iʈtz̛8+$ky*[ѷ]ӝOw)ػ̖}f&x2.!л:=p/%a2=V7βho$)4:ap3%*q5U '1W!:lcuHw@ k-] 3COwK<@>= I֭}+takjÌ@r$rrH(jz=KuP5HbIWCbd;vWsIT,}j9*0 :gzǠ̗ԔΉ,ʣò} r߭?] 4cRV9~HΪ܏1z8T7V""SJeL^0v7,[un+חSi#XVicG+O$g8B"Hz  Rfńȅ/,LqNL  AG+jYX t2k o-wN9ʹPIk{5Y ׮_8JfH0\GQ7E;˿v; vFS_eDۥcc]Mrt z}żkFf.ׂEZyuٶ:J e`9 >IxލI`9W۸nMWKIh$N]|E Ht/`¦V*tV0ȆL$?QqH e)R[wuy>65;r>FO.udE:;"g;fʿѰ:S#4F}#G }fϻ{2Z>᛻хT.pYNDv"2}\s #$O} a넢:f7Ԙ-2UȡeA2cqɳSa/׮#,z"'bHxy;)A?ICl, ,gIKb ˅a%u窨U:BVzCʱk=@ؒK;$ˤޠh3]j=*-b$D6-6,BUhb#ޤ%Dm|r/P۪^ڎ¤X]xӹ @XX=s1|[_?MTM% 9g/Lj+/׬0үp5kY֫  o08+8ni1z^ͻ~˓Hry<|S8MvpW/@z5/ɥ܄(6([b!z5r3)/1A7&0DӲ&;!|VTp,+0΋%r>-XL00~ Mf&7wxbED"(/&yMq*Jh_NBC&M-Gę,<MQ<ǻ.;nqtH*7TYUyè LJf(LLZ)Dm b6xPWe ν*Tus5E|)DMT.oJ. \udz=Ј ؝;8M|${=buS?$" s#Yf7y~[F~ErmFAIfYANA xxOǚG<ŋ+ $٫.Y V-9`m7[*˟Q0 I90Y&Ej=䅻.# dm%tuQU&m|Ŭ[P-S>q!`o!8gw_QÇsb}T:Nm}}7õX{6#mjHqCAy\°nn5~[u1?Qu.qk. L'\CB a{)N>r8U.a'\a>X vYgR䩠U}xn/:t&n?@}6^8mDS]ߢ0 Ip8>NERH <8=1o!>WT|ȯZfl(l:NsbH3aSznrkYKij?ZA0Y>,W$J,)s3ȻyUՁ+=e;7+OZ(]8-=/ЬO c)۾Sˇ Dc \)~^Q"T<Ҍsa)qa&֬=,!l ^  Ȕe,K+U O/F7$bP^n62ȿˑF n-Ft*W.sjbzLb(ej>AKޥ?mq4jY}kήkץYmdd#xm4^/dSy4;Jģ࿁|WT_h똴@O]ˉƥ\EB6g Ѷ!bu2siSC"a#nJŒg|4C,9 w2l I\.9cm;f懎Bmzi~+hຮ =ZIC` %l ͋F@ 8AGdPa.V=xĂޖM.M0PXzHb?.KtfIo }? reϤ~$G_iJG6[Bxxrw{=]kfenqact"@Aغ{903`)lu/V䁵"n 9" N]buXzռ*9MJKWCK-`_u$h:8bW˭$;`/zI 0I㇧|'^p}24XQޱ 09Ln Bܲ@8x39*5B)X:jN9j4'y(j^~@Mc[լݿP%]QxN~HSb7Q1z >"ĽC}x1xkc9EnL@Uf_MIʢbl1ԛjLD4<}ܓ'ۈǙ%g\>}MOtX% L}ǵ-&3F[qVbeZf1+(}8VЈ7 7T~5JNڤ-4^p03)/3e'Q)/k$Mը1oV:DF>8]d'PVK1 Di?Ϋ*%Q9LDZAN3SuE2c6m d]_ePft~d?ZMmW)@[zQie +hZPbtuT`@ &kd,mNCdBQdDSsF>v4pJkQ~1ܛ"%P<a#Jh?0,)ֆ|ie*}4xpmC5oO~d^bg>w73朖IePavl !iJ8M~(vaFFyaq*V_C2̝L|]>5Yx8LĞH8 P뫵Г/K;6\T5Q)Q5N"Bc oN/Q)IC>Š׸&(Q`Q S>A6K80'=o2~* O&L\G/YBhl]W#*qN&&Dw$ ^jFZy ,|wҥ>zu>7<`|T=l]`b: f2:,4&9!&?:CZ)14}Ev9y-x.uŦ8 4K{yA6Kurl56@!])9'Qu[ =JeT>=:JFɘa?E!5ٲVn]%{G{5e h*)^7PJl6qUzL#\l\HY;GGNdў(AUi4˫}ǪHޥu9Dbϊ~kPMԺGtY+<?=ĩ(KGY}Y H:}uvZ?{|??G Y soa&KXi#zV & MPBب LL(iI.L̅zZ`D'Z䌍d$;O4Jg,ę}|g{'׋y;V=[/f 3cQiJCpori䛫ʻ<}tֲ~Ү}/j F7.>PKIe+8D`۹PoUrڕbV"6!j4z_ܢ zywf1 BiĻň7]s-/jE2=:apm"W¥' Ηk!ˈUY:zW:疌|Q X 4:<ʐ V15ɓh]Bέ-~cիiSw(]m `CRH蝳&N)ohA6J_!No2DMg9[ޭ*VQ`o_XSgCԨ;V+ (hz' Jup*1)fP3%J=c dHiֹ䌃aIfߥB}a cKn1Jyw!j܍krJ˒Uc9B SFO$(fpvE%$b)CI}K'Šo;+oޞNR"x(6 FxѕgVƯjy""*vi ɜXڥWp"l$B>sGd_-95hoj+Y\P'_؞vGX}!XÏz@:1{+TNeō"@;i iJ3]ZU3U?A8Ѣo_ bJP`-X+_: 9[bmd,J-$μ#XWq|ɠͼnƽk{z@+!njAD[z9`ue0j!tF S`2{_ -!Cr`tpwh;7fs$s,5boEh z@n i9eYs-jMC:.c*ܢ2dR#y0SŰSO˷KlE0Ѣ/5+^pO$:/t~StDW^2Ae &_CwߴX/+Ny OXrĊY##IkEy/h0HLr9B"`s-De,a *u`427jg .ΕivBT/Aewшz x엄3Ji2>P An|+X ya!V_\z0c KRRR"-'sNqE,ׂB't]{ʄp?f@\Q?=47Ó]erEߕ|O\Ҝkӫ:d~⮅d7k?/m㷴ܳE)@$u##f>MV5:zZp{`!ӟ\")xz_Ml+-3i4䷹=~0'6%[-xĄv6~qX$9+9Eu>"g,ޡ%Ik퐭G7~!?Jn\&Mǁ Id2ú/`M/pCdb[L}ϒ'$CZN@g҉_NF3]qXz ~2_1veJfز X<+qb# 2p3ZaՋ !+r_ͶԽTڏ:>g!㒡2O*k5mYJfo\Aqv3.竑BU8OB<Ɍ ^3dU*WYcޑhڴ/'K$a'#&*%5l?wX`dwǍ%%?.*R ;|zw˃m 3҆1{#NfvuwyyaRIHH \ m4nN?+y;`$_vEG&N#\oT?[#9$ 6@4Į >MKtYqC仐&FY_P<_9 $nڀrjcP#ZCѐ P?O!#zP ɜ~Da){9&8BO릶ɖ+o*tj.V&*hF:ܝra"heT߭ 9_Wp8q71d2PjiL5ezPIs{Ff/PǂP(i[2Jl2|1)ǵ7(h=*7 M:uy=6?,Cx7V0y~D I ; t%h7 ?/"@'x*ui`bxaطrُ[r?Fςz4t&āxr]T)Q_gh@G.qa3)c5MjDN~D+)cpp@jaV"Tlb}6uDp;z~ ;#G YY˳|رp(8(c *T!.4u34T@Ǯ\=^`ë%(h΄Z:Nd~إ/cb/>Acuq yV6pdKňIn+{x!VYdu鵩ꀪ 04E{B&\J̀ݥuxt8㺎/2DQLvA({Q IylQe?/Nj<~'knUn]?]>B.@4RoX;de>rt;L`F+='63VQFΥ5Y.ncY3]hPDXauƬwWT o.-3n!\ v""X/E uHαp̻:4n/Ti`ٵ- OyM{|:po&"X #o{B7û 8:B?V[xӄk ٨eVwÂ#yOF:vӊ0s2Z<֤sePܺC *OB323!#vٺ?צ|}I&Z9[Ã5֝ c H ` \g&$odD:>$1S->̤# b>P]X|mKWWG ɫ u#Ԇw`Z+B9Q9P`T=)*2dTPوu .g#)W dp,\܊L'! o#R*Gڝ",17Yn 4ӭs:{ Ƙ Lq9XIHŐDFjh10};d;' j0Ո+*e">88' LֿE=du^~ˉ&hcÿ)-`C RF;agTd%n \ɋ~eb?f*77glIU\4| Z2.*frMАfA81LJ_+द65590 ъ}83vuB AAs?&֠liّ=ҩgTFbvG>v' /5L4c,rkS:Ks,\h =xWu7D2U+/yhVq`MSRO}\gLΤ L|D{[a{[l@> 8!m#bVJu9;SҿN mow{MȦ1r2^P Cf3ouCGTLM세I|gMF2k, 2z?Jǻ M^)O%p ޶‡Bl̨ϒ?} M{VßcSZOm\?aWIAlvmy/HpC_g&+z87?twj>ltd[4ʪWW5 WrrFSǙ,;\ܵl-4bӋ(1XeٌK߉>7׬nX-T\A}8Ml)rP1ZA@gK##b~s7C]i` ICV,]ZϷA@|;ptCg)NkF/0ϋ_3ᰫ^Bl;~(R>Luɬr( ,Z4H !Gt壘H>Om(x*Cm~2=~= h؋ngoSͼ5~P\.)Ƀ_e|}DhQw\2 ZU03ӭI^~(Jvv *Ud5bQN+HK<ُRnw1wessn cGە% :D' 8i8`3i!qJMQySɧK366 E08 snArjۏX}sSِÀ^v6A$g>FLU(t ŠEZVW4S 00>+`V롆cT-}tfZWIG킩Sx5K<xPFlZ)0/޼$mȪbQoVn<4̽:?/J\oKpNÊ%a?*Sf+4ލ,:ƛSQ߬.J%[4nokUi^" "-]@:I"G>, !1I$&ou%YJ`x;r,2%*kw4M F,_(A pdd_fE]j=hGUKx&%|lYŠ.͙_x}W 7Ad_% 3I'((f>&ZTQ#E8,4"TM6"Z~nm#oKܭBĸq9ŁUd2Re :΁ԷRyi{;6*mcx9WD$E&&sD!ydl|+ =̣EEn $Ϸz_C(dXL/3}7"f W)sh+.89#߈:U@l2"F.zkDr#s.QۍKg%mĉՈR{ڳDNUe#jZ6i$cOy{5SHT\A^ե+3J>VZ3h +;3HqM%a#*"H"x&]Zbʩr%hH(,_ơCPrc$Yc*g܍k2_4XApsx6uYT|qEC$?S{L{DV<^dTM.ux3SvHvLh呹 L9k8\d,}ƢN/sZ==c]8lɕ)$z4)RsCR뺝}`So)5]R6BZI0^#wqTq|/h Ouz^αu# .%7[)MxeCICBk˖IwwkkWcU~Ǻ8V.[J쫪ֆPwtb6wK>Jg!b6XZbݷ S+-_{/±^Nvd]Ux].P6T/<GR猢}exVa,,CZ8"du>MhL:X↗N[Shq.+sH/MTH0̪Z|2B@x!hP0(nѲ3+(95d9A7Ra[^}1DD3%y챳W1g%Pe&K1Zc5˒%= ;5 'EE F{)]ɏ6p{0nГj"9JinF]HXz7? ס6k}Hrܙ[ kG{?M]^ۼ9L{pzo)z88Apaˁ8ѳBn"f4&)0"#O hF6 J%0"cxQ/ |qtf?1USߞ- &+{}: oyӎJY-MA6!Dp`W`4?kõeXQ˃fWY~  .&l_q%,nV^9{6aΠ.~-6jI~̡k]R,Ƽ|;`iQ8{RFcRjL{A^#1]t!+v]SJEsc̜^+{i %i;Y,m-RA3ӝ5n3>fUő؆B"6p)ƛ*O%-&Zow!ܰH$&KS!.ILZ2]Y{v T*G"eDAnc,P6V'?֭\X^`ˆq])҇pv XByMW}5)Hxߒ34E7n O4nȽTy* ֺ"!&Es> _)S@9w I\OU+=F8H=FEp͐}q30ޏY6;Q*@2YRxK6-z]{Ҿ2*)4Wв7I栓NǕ!lLjaX!Qpc 卲ZOX6 +YM4q NKh~>pB9wSЪDfleկJ(SK%=IfsL\aG 45lX&W Pk497tGH?kCgPydl%gjo6pNId u0F[:WIb߻#c'h@PǞ8DS]*<萵 Ft2m}bW\TX {Q?UNkw[w^ApL{}f!'rg] 깲 $ʔlg)D=JFr u#Js4:<,5b=rZJpHyX@epT|l%S9$|"E z-j{:E(v |T6#YX Kq\~ wp\GW4##%ֺu@~Ak]LwkxV+ #Sux›L֗Y(`j.c/ь/MF\{ԟ-2!o:e/?b\xHFBhF@C@ bA=H#톅ȁt_sC*_kLx>?Wǡ0_Rn!IQfJxV!pq|-Y/=]ޮ<oa% -UpÈȭJyb[P`_KXSLTe]gl Ī@оQsⳆ9L#.xGrֳS`L_gԺVq1߉@ {)βu9QQIŦ7%_?` H\JG"%=ABye)>m2=,Au+PaD mD){iB{'\v a4&k 1v>MOO8514B"Ov( J~p_|d q2-PXK4: B`VGG;CpU$[iPep@'dP$HQ[ Bb,L''Չ+%9-E#hz5FCY;J2~Ss9<`M6">5 cwnkbsi ` !% ;@<ؘW<?W" ͑NY h)Y$nd t9rãTqo.By8ܶ;?sԬ%! 쁧! TbgU.F)_0U!hF{%M?w:'mR^,>Y5z?9/IsX?t1h#8!T:a[V,XLƼRmuds՘go7>!]u< so:}4¥\߀Vӽ3miMcNjhUi+c$X]U$MSnp:c҂/8swmɏP&A dJd-ZQUD7x}݈U%&},D UF'ˬÜ3-dNŷ#O⦟&rx>@[^\jH>v-𹫀]/ MѿYGt[7΋jep;+jjkGnUȝ@'-OlMl%bmP#3nAM)Ƥ"d;Bdo0Yza/0,TkZP Ms74gڂC\HϬek3:m  ާL /s((PiLU楮@3Ag=UpD7JsXgb=!wOBEi6F;ߵgfB;pLF;C͡uZ(N_$S-Z|pM !Ko8-eo,Zl&?tu7,3~ig=u2T<[a([*k9jnK)mc|h{Wq ,t5o  ,]0].O*F㑳-PTPj\0xoLШK|_ܡ#au7N!]܃Ki"?Br?$DZ]85%I(;ҋ";1T͚AhB2ކ G+dhl?yji%GP܃K;SC $i->sJbU5HgM kQ䰾.'?(ȑrwX_n] "Z곭Q hk*ct"T&'{\=m +kpö!zR"cרU2zr(jwg+ <^т=[ȁq|@A}{*eOvӬ2)6ʔ: ʆ/:ٞ=Hɾ;D x /Pgt-~r4[j>G_eެOq+)c{;uv`$ @cq`2-A?&`r%otM^k1o'g%ntv{vbPRm@T|+x >x%wssQ(ݱ%sIϬ4 Jj\=JV}i#S`6u[o>e+BgW*̽ ejkSGvxy ;*=NM'^|CVUtĩUs&@̤*ءVpdEA^z+nKZOU A#D!!Sn5`(' `=0"` E -x#%_ePgLtM'.lu {tdY{;w6kOO !R:Ixc i?{Sr!dl\vcτtz!6?B0u9:rWSt=IvvgnnkJ":Pj*l-7 jɸztlXH?M7 A~Hҁ>V H)SgulP Wjg CBP5gzՎ? q1?_>tvͦ.rkL[nt{+^վ93SFV{)fڏ#BHuxM$*=9د E^A69]mřɓZX#&\XcL Bx Ԑ6땥}ϰ;NK_|)ɰkn&%KIҖ/<= ?˱mtx@ }c1Ɖx3:Fb6T GSF?//2M"0Ply$\|i6QY2 NqeScdh%B/8g_9UPtAM˥yʘ0;T&Dy@eƍcatosEQ R;bFXr\i[K ^na5*b6} % u< pVa=DorhH?!&zmYAb댔Bn 9)D{, = PO6 0Vy4L6ꌼ:v8LJUwi3CVM _"rEBԣl ]@5M'y4ھpjzG<>:}P"d+YK(z\L}=J7jݩÍh ߏ ڗc5ζ{&.1L͹hBb )F rz.7)P 'ĕ@6Џ'lTN=[~I 0^:-]>CCSpw%ay*ոj`G-Vwpqg X"Coz; <5Ńb{cqjC)lhC4b2)#,7/VC]jr}郠H`H%j {WU* igWUй-%lH؊17CJ:< hB0C &2޹! xҔX8 G֠\d<\ ٹ` BzdBuPj X6MB9Y9.@+/|# 'xF+Z=ՆObHR{nvBظa@˚àw΄5fCI(5^Y{=3.Ύc%o"`g/fjr\34D2b+29bk7:xFN +-݈7tz>vӸ7Zt癝.oG%xuLM!b-$ED \~-J "o%BmnJXsl-.(;yELc莑nYPZXUIa WF8rf?PV;/ oHZt-Ez.9'3d$@REܥ?џxfusPwMO 4ivi&=_!+".8Gf]A(ܽ}wBŵ~4@|=;{eRfT5+ sč^ H"b]`s s0(TP.|}!qg~,Xv=t c}gOFUs]خt)ܷU;x~Q5aI_J0IVE0Tztt HXlw+_KjV$Ůfd7k<7? =ȿ&!ONnEq 8(yWX`'sַ q_W+IAKLozr8[MRAZCmNDblگ#8+dku|ײ#1##umU+R}ݕALwVT%we-)`oHnH`j ?)Lժ,Z吨$xWQTǧ?+"ҡ`}iRg*ĹC59kA/ "2.Lʀ/Wwsg"l{` ?δݙdLM-`)>,ǰToE l=f_J1F[ȷK85i-%!LlvI_os\>mB="};(D'K&@0dO-̺ ,v`U^ԉNYUCQ֬DҔ[>u<*xxhn@)fJK5hoP&( Fi|ͅҨA1v8kue`o55 57hoIo':7KCĬln>O/RsЦ͊\Kp)bzቌ 6YpFFǼEpY[i4#moEȩ5颧o4{'>Η||.ZaWfaF%Z |l,B۶JAž0  Cw_̐G X3Kp#9 %Vc1m0^67#G ˧zlQʾ&2U!>BAϜk-5XOR`0%g橪}HAI`bA+K;vYZ^'-Zy0-)=.9&qM^xFt= E-e_9w$J<~ ){4_5[vӦ}/7'ݘ@2zTK ꀋQ-ڶQ4>fibG3#D3HN? ZOxj |LK;sF rҩ TQSjͿg ya!|&Q^R#Qs͒rK}O Rh2,y}WW2&MWzđY6:ezkkg=#4w~E&^3~l?FHA bӉN/T!mѫABFso]aFltnҚĘ bᅬ-#v?œ(Uh8 _$S\>Kiyj9BQ4zQݭ|k ]ؐԊkaKRѪ,f5YZc_Du-F;O`J~ &Hד$vaA nw<:FCbfg}P֖ c˥n΋[B7\d_$k8S/^[M:Uܮ_"qp岧 tн i /%R>(}{%?дJǶVesAe7%YD(ۨ5 _4Ggu5 QH ' m!1_ecEC&ןin$LZ"XS9}hXMgfAUzkv^O˘nŵW.8JG["vČ.uHv@meCd[b+tB(j u51Y"]=l,BS0&~E-NPԃcyKOB@ңdDZ)#L7{~Mdu`T>Bc>&^qc&8Bm˘>c"^KΕ`cOx%*߿\Ky4]NdkG,=?<jv*%q^.fvbE mRjq$=aRˤRvfQkۿjC1S " Q̰qIMoFȞ{dvȮ:ПEt |PFNXp $0J5!iy@O|?ц\F ЪӾƙŕ5,&9"Y]aHE(L}]nEuYRk<IzјT"ߟw:Rj lw+EE&i@ƽtߟ@R4-0_(M+TU/tj mObmå E_gCDR]FEG$nҝ05__- {6Cto) gڈġ"%l:5D)p']mV1:2\|/M'f&uYrkiK~b'ii.5t}r.oq&Wӯ.=s|P~7+g~o3.,bչA`붖 jiJ5 L:lF/+̨` i&D] ħU2zLEq Xaт-/٣^2?SVS/hyaʢt( cfw՞9_^DJi[P?+ S'jZZ Bc $65i($<QlMUͻ<턜YxTNpkemRKAB@S]|'=CW4BJeR6/C%hSLՋYN)}T˜? $Ҕ9R)x =--Yjoa"wK7>X*d6$`ϱz' ԩQN'uxpd)=z]MT.@nN7I RZ6ƥu5SHY/#PlXM$iAF(!,TJo@78/p:c?qDACMp\;0 `IV6-󧱌qrޭgmb!ZoX0 ͉]E#1$*O@[&Lq^Q[5E@F%`4וt|qYgbSUVX DH/qDau? B7bpN# *zMNpEI֌!˰b0TDʹEuzgsNi#ήY(Q ][l(JoShm=_N IDuvMa".' y\[1v@AMИgTATYĒ֪ |!o~eq*±- r@5.xJ](O.=} sEs܌ `.0\T֓=7@"t4^lưz>zs@ݎf|i=KqDnh Zp|bO}C \Au356)bnEMKFsc-ŗ\& oZՆTbR}ڍUQ8SmK۱>xVspn%V8]%U i.[l>C `˘o a `{)GL lw{%{ͩO2XT$6+;q} :cn6Y.2M枹4JOJshbr^0.[Ʋ `ګ4d:`fg:6R gVwa]Y{KB^ߘ"j y'Saq (?; L:^[m0nn`ƍ.`X %RԮ 7hӹh- j=9~~W ŷ*uu2umyѤ>瓔@,!?wS)q̟ǭ4L8dmcׄ< F\:RaooRneN wW^ xx-S}ZoFK~x * ]c>RF-QTkӱiQ!&(xR)|$9EQ@ZrYꮣhB|5nn3yQl ^RV9A.R˛!5(V^qO3`ތꊼ{;̿/`(z?&n^\$(KTʴ_p#ZcPS̀d99Yȉs/fn.(IS3'w[v7pX 4+D-<%w&^?{ul4Ƨ&#Z^" wwҖZu! I ǩsϼBh&*}#5`J?/C&%g.gW͜9j;ת+ ;Q̯%ө!?FHr \{|Kwo*!@k%IR``?&L"01 C`e ]*bfDՈ.$;&N|K9z"[u`/S#$-,VEϋjr|x9x=[3 n,stpŁSY+ɄpD7mwMĐ`=*aDKcLщ۷dC7mS@è\N33͌t=Kʎ 'juM8jqOg**yvc2͑Bk OUA-_5Pyz8k3nʹ3h;'C2Ϩ 2`7*ZĘ$NRYq7ފсU]enI_e(om_xoIJaKFމgOK`gcLHpV.U<ۿjꡯ4%U19hjꛚNe4Ysh;R,v- 5>OWݴApS>c;csH ;rafw7TbkFo"x̆$׆9c=Z+y@twB8DΤ)tXhvy~(ꚦ@ VEm& GkߗňURS<$~ao-+NTu`ӕ!lÁΜq$y_O%l(m ^сC@.yxP7wޘ0S//LC;TzI1 ^AzF0'㺧L5ugm!dE)"^vM;%KٓSQDQUk'&>&{XEWe UHM|K: OC1~$ԬL~ґU4:uT4h][}? 8 ',:<H"6q"7B{wWVF >2vQ̙ Cb|T., [Z!S.Z`@k:$FFۭ^O 'ZBO1 A06 ).}gR8|9_8Pp}Àq'wBNE/1G OOPXHU @E_S%rИ+JŃ9a#P yA;w]5ܷ' ̖űkބ.bek)1 ڀpGRm|YT0~9D|ߦ>}m\߰ۅ*DjP[1#KԠD`hC&'F;p-rք%܎!;LtnޣH IOK(AO7e‘{MOڿ&O /k: Z ?᩠SۣMRgAhr\Uws[4^W a󯞘ΤҶĬu#M@V;RWHA-!,tt7Pl#QP@0D:iq"9$G*zWyp7{ yœTVm` ߦ^׎(]E,q/c|p 'J[،R٧LM1a`odܺ&Nw0MP;; eLYk۞iO3#nֱ=Z,Mq5)SIڂᗟ2X 9tڅtLߵSH5U+HFy)qһ& ޜܓl G:$Dg  { iX,g&"0w$YUWX#9D%V9|Mylq5wj{E ?}NQ6FFC 8\pןn({[tUkO8%K┥L2|4%q,.̭g\u~\4{Gb_qhW7?ѧ&̥M#SNM"4:oF EѺ=9:9GK,ja+g׊;7TQ+A͗0.#o)ېxqɇUV/t)](@S ͼ\5]M7lح-U/t1ƺa:͋|kaN7X@ ŗ=H<,VLOJ.m=^3!CW/A"}ndA" b)z̳H@{m:mc>=&k* OuLޒ@VQ'YCio]qTu2EVtspEg&CRˑyGva-5 aɩ#|3R)C4 w+s{MA!GT%확 7"qZf:ECJJFFHEn?~ S)7+Kh^xќWYw{Q ɓP -'$1MGt-`zς[7t`. D%~qͅ-5;nѯz%][8SySnȁSLqQKvjc7ն?1b(6BS'NTLoFKmԹm;:F \ע54KF93JiX603dzR.r` e@Y:$7* D cӉ鲝l"1L9Pފ2 t˼A"`+մ 0;xԖG'(+ޙaԵsdU5> e%Ib{80FΣpdg1V̿Mj`!fv_q7fNĩp )CCp`̇QϲLPg`p GgZ7v<ܰFdOѲOJ?' B+Ģ`BU_/+ xTxj(c{\^EfP/^EӇk5I}'\嫕41΂R|`xju1,W>]|=}wE/QhW;e!~$jPTl AI^»:6,][ e^&q,9E'T^L/AYqL]p>%;vcfVܼM b2y,Ύ]o8͑}S&*5&W( wX}܉%FWY#q@ u1>Y)Y+﫞F'rڱ[$(XmOȏ`vv{#23/<9SMQݷ7[Z`n^V?qA)Bm!عy:Nfm0I.Aޮْ~zO 5Ezi?s}XppɃ@!*lVjHo$b;wr|ʩdS9ZLI¥Pt̒NX{]3[)ntJt7{~u^j֏ 6!.3x:X=KӒbJmr$_s @6gQ^ZA8kH4:ܩhti'BfpauFt]Cptk\I/rqR֞^\Uϛ9GtgJ:r=xNI,njZ˵ h^|DWFszxx;~zS_XiS^YW`8իGLܪP-W)uc(ķfXK"z>927B ș]e(lXJL$ft΢'> i!`25B ̻5*kG1rz F!&͜ KD=p1qhu)'ԅatu )h WV.'5b ^s@+@ r,n}|v4_h {y,똾%$,SzR7榐#qn^/{<xDNWEBA 7Z&C, (VԐ! ۙ׃7g)gWqUj|=PKg%4R|,gmr=)5[ _5O[HwR(9S@iCg%M־pbYt^C^p[pd\hG6L>aR ME]auDXZxY3]:U"x+DlƏj?>8oKW-e"&?YIp68j7 F|]]3%χpmQc݈!Ŧgd axi#Ed t@EYp7Π+mSJr# (X{R %|}H8"5',7n։)1 k}EbBlpf $Q: hec`'IRpkDN,?49zM12D?.i;F_Y2)Taz._ƨlvx TʯLO*WX:r Ƒ7a[NסR/W12>'7^YzOb2e 17;-a,q_z;FCjrJX1p/W>ՉnTQ|_JH<%ڣBcm18{/N DBz;emfesCsm<+)TTE:~}MyT %nQmۗԗ"(@|J,hj%!ŌPMɢk8JS0`!V,xp^ɆmDn!ʵ|l1Ԟ=sU*0ȡ8@YrfZv[E9Y>CUHQH?ՃT |Gmn{L>aѕ@_m0qܱRx7Kl _<:0H !NӚG{)sO H: jӤ_.kT|v7 <TMA:f?'BCV(SUGM[Xd:%6ӧ̆}ɜʌ_L 26DQ= %#6$ _Z\z1~Ƚ=U_'|)t!bFTCaN3L8ϗub] Ka;LKVȔ2~݉NS"R;N"X`qd Dg싑tB Le-ռ1@ٟ1Gntk(0pel{’', ĒnRZ|tW%"\d72eEBcY)&Fw{S>Ί叩Jy\VzT3n,p\۱_{AB:.d̩j{&_7LA[S(ї0if ojQKx$Ghtnjӈ{$E789LôweѦ,+f4JVTO,?p,uYF#ݒ{!ueVukT;L*xxO!;:msuo<m8;ty_BF~d86٤j$&[)6n.{Qr$ Jb*!Su/ fO3OȆN1 ,Y!h$\5 ]웏( ZwVh{p3otb.>VK=r'=IIqaT~aQ`{lب*SS1Y\f![Qoҡ?W˹ :{^8ezg79$J|NuDy/~c Wsvx@ƖU=2Gqmd!@mJ_687j*vd-FnS7U(gΡ_$77q)3|"zd!QR\ҫ?g^wLcyP{#"m uw]S n-K9{`->/O5fY:!܌̹ S"GVxKSx/V+} WIRDRY^70aa}G4эbD+ˋDZ Cd1PR5AIo(MK89 ͛Fp"{dQiu\T2ryT0EzoY8zJuMh"jಝ6>.Wt+_pu&:%"vPRgl,V~[?aR X5 :#|9g5mQ}΀ؼ0cUTXˆD}OR9}v^l2ŕg ҃~=̲1ZʭprJtȵl( 9e:/[i*;k.| *fu[Y}xrIed/3Fӊ!׉zqV3BW- y + :؂m7vX!}\D T8tWI,Rˠ#-cn|W n2?ɰSg em~9ZFMaS%ٞT(0;?>tG36zYN5l" ir]#Dgc.<[?x:5_zBtdsY #kN+V q;I.*'mw (cQ94'[HEXnӞŽTP-5316kʠf3-A>}ZkrjKc&*YE0W („PUU?q|`CCD6}kx2P{Θ9Qnj.yͲ8&bݢƉtJ Ɔwߑ*\1c6.}s/ĸ1&4@jѶ`BfWer8 ?A^ B 4Q9[Q H_? $<]5K6'L1LTs:GQZQÕgIt 2lmKk֫i6NY 3ޛqhBsUD *rp[kx+nuM5uqr,{T0wb U IWs8δ'p4ӿ c]+Y&Rs #E9 2 &ǪJe聢_MӁ~L&ϱ o-1a8ؙDĄ#>q4?xlc0'A?VeeNDW)drl6GJlqzA礉{kj|O()ʬU n9YEԷ_佂\J!nk"MU0A*w7uuA.z1KQ1DjS_0UYDgtOǃfRVs0psȑ}>1c %*gk3HA ~I3a1r"י\f.tuWDg:esɑwo?bǺ9]%%sJ/;VgHM=,~V V)@kS(`aװ&ASygOKb~FwyA:LOF܉WUH0"G!3LgkF"lx:LZl"9C B9OHzreij:(oS}|pW*˸/OF*khz`U_#Cb|eٿIi:4:K>[[܂O14S6]ua@h0sl:! = Ӣ~IPv-V¹_p˵(^ ,D,H1.\WFB\'M`#)T1M&Zp7D3J/m"2qRXҋJ W}tk~AJA5LMr0 ️-;iڶki' gk4LfSHH`̙*!ChPRb;K}h >倱@hA"։ej(|Gs6bks>5LW[1`*'1OSV6ĸY!Z)/]t_ʇDX1~ cƎqx9fP PϣÛ ZL*ae]i ;ͰՍ#+[XEnV%ZSFlCX)l;)2Adܺ4r$-_՝BB'@/d: dp&PuY6i>Vg=jQOKمJ$gQemZn7N 3>_ S]b:dt)bZ Q2ygie=Ov| DwzuNNir |;N;3D8ZS>eϗ aynYQOS~E+3iDN8i ZQՂthpF ,Uj;a~8!-92p%yw75`t{J_MR*_'ۑgi8E"nB;Ulbg_L)XѵWgFw1)$mFQvM$udy7T;דDB#L}O&}!L-G&5;L5"I`@Q_~.<v=yj?\7ܚ-o:p`Չ K-rqhvx_hb61̖sHd?HBgzYK?PC>=Ga&? =O Kg2w@A"`߬5sUNeڼw5 vU%BFUJ*vDzeY "Jjmםg>xj`Jh1ЇsI>3&$8-ӹlDuiEJG>} p4f6&&ct$#ckY־72$,LP&WfLz!piF}.VbTJP8gg%zZu?*' (7a P:N0 ?Ѥ0=b 2}8̈To)b8PORUy^ߙmѣzQITe.b ~ S 3L%P~; Hހ[J;}k)4VCHX0T3?k0YS4I{0rIp/v&loWnqO!J<ǹhxa݁=T8)&2>ieiC=٧|x v B|@FqkgWVF GH#F'`ׅO#y*0VE1zd}O+a>;&8c/F Ӏ ysIvEq16d/_~oyJ[]1d6,9T"l \"&MuLwk"bQnaQ;띌5 Rڞ91 Xz²2?Z!+8kKԞn8xLbTv&fэfYsxQ V aQ+l+*'&!ːgKLQc42pSܴɶ4gޡGPҙi=؁RumL93(ۚ|Xx#ܳzzEhI8pڦe=%[PS6єE2ݽ*/u^26qIy/*Z5#yG 4ͬKب)-V+i6wC?/ PɳsDbIAN>jk:?+\'uvFxyMOO Ʉy{wZ{E%1:ReTe0 L"^z$ϚTЅ3A| yk#!ONilHo;/uoc8@Ynug0Pjj3ha ,tw΋V#:{و'w%P`L./Kx>etx#9nL}!,dLi: GW)Đ8abi,sb62:%(%W]=:rߘw|Vqt(= Z`I66{![$We2 , 0.6D *0P-]sԅN.r(sX4HIJH3+e/WF'躴/F嶵"`_~‡pq@j"2&7&zfx2@.>@Uؘlyp`f݉/d tG> ڮ$Eq\dג9T@|!B]d{.%xaqy$9fX\gϚ A>4c "[z4,KاA+Z%akwMwzU?Fyzf_kq=NZFZ }BRm:^m΢^RqRjS`쐼*c#xvWig@f 6.׫󍻧[MЬ+VɠVp*W;6)Gg©ChhtUWU3gnjf+-!A]EEzHvy҆R__^JPw, ؖோ{'B_`DLɍ\nɡ4.Ou~X^č`ۺGO7Z 6RpJO(rT:n<),9ru~8:-jmı<̃0̆TsLD>4#"}l]{1P5w6GP}>=?S<ۑ\mAW[#ʀ[Zws/DqKPȂ![ξoU^7]̜$˔CI7{|ɢ/ uUc$%pnEQ=T0,9^XFMYԞ~J53q`gݳB=+]n4Mw~*̝Ilk5a\|]~ִmdsW5'|Se:虸1u0jW 䁆@hyW&XN fr; +VTecON"Ozv9QamYR}t 0C]sIr :3}:pMK!kG髀\Y)Q`p9DjsIm$3"/\xs $z%b}C]O^4MϽiq?űDə=;Q§?$o7 `j7VWVX:F~$MeI-9ƚܘ6܂w4lJgԊbʹkHnT|~B 9%Fs\[z_B~'U]ߛ DzZA\F Χ~PTcL8[\m?./i *B, {FAWAcpE G`J]ȫo]L0 “T rc%P>BYǻ܌hƹsb0BĤp1ɉrDŽC)%tI]~9l9lۍuv+3pT ƼEf()6{S{Og˘'{Q3sMMd\GN:?3Re;i'U'㟌p`0k9d,R=Ȧwc#ZO~0yXXpTw}@C{zz3 H{1Hϋka=Ǡ7 E} ,Thouiȩ`MIJ].)Zvc.W#G6mjqAE0aSq;չc^`g-ڈ6Qِ |XјS6z:BxQr2&5֪k{.$iPO6t0|6 4LwPX7K&h  p}fB.']G=JAЫQ0% z[%RaYF"1l`%@kEw] NOLE?NU8V$ h? cV",n-x颇 rls+r4Ʈ*_<纇X 3 . cB8-D'*]2KM8ޞq9wG;K?Au >5tNȭ]n~krn򨂣@# cK+;L"--+`B=a3r9Q:@GnUF$09vpLX_6,Ҝ_R*]9=8}P=k@+J46_[XZ{mxH&nv82_aR/no{(q̨3bOKbFky K>Ytoo%$nᶫӉ;Ҧgbg9M!+eu [AB\jT*P Ibh^*;"qELw1afQVLB,$t—vɖvmVc)d4̊;̡$M$ .q<8>JHbS /Ħ}KԦ02Ȯ4o scbZ0d1yC|X1<)8:l> V=%-2Fnm$j'G`J?xӪ3K!P9DEd0ŃSŵ&pZ9 Xi]S X$?~""Hw֫.Zn5GEUoՌwgrIxڛwزzDa/,k"G|0'WLRFE7xQcՌ`UU )\Ħy_>'}'|@WxhܲXV0If"P3d9vBJ2r)lIM!)"OQ'iY8϶ᑙyQ.Zj +d[`&Yqܢpi"[sAyoS.ҊI>koLlJ)_IbKetfi;㜕H2j 1BR$08UlǿAovZ;c7|C[zq'8*i|swu1wHy{ZCX#se5 äg V~MdH,Cbi4lܮZ ~8 dzwdU<& $mbZ?3>K9898gEHL@)8nQ[1;Upq.:X" :mQzРK߃jgU}z{Al¶3_XkS5„5!⚈-o.SJ(<'̮<I-W͑E YP5h(̯+5gis;1+/̎IYxB":X_P0&W+ cm?c(5?/P\CcfKt#T[kBe-:'(VU#$7^(?3>}H6+Y6T"XBP|+9D fn%Ǧo1|!ƕA֛>;:Īv[зŵ%m Q](pb NlF7xnҼR--"_Ut!zĨ2'r;٪ze[;"PώP[6kSf5@vNIZq{ښXдq#68oL]@*@j3w7ǒjgLRxZS7R$کzCDR>`ڀ5/ E.^ sTRCN[.Tcz"ӏȧÛSfrݦ13)9ƻ5?xIcZ%NevJb݅cޤ?Z~ÉF9qq&B4N6)ims)ڣ#cATR>5ޤ+Th KiSD?"+A>q2UphmW'L% <"NT>jDcj N@p\*VpOrY DyZÿ0\0j|{f2 e?RH΅FN;5)/CYiÛ^gA\l9l-9,!P(G#? ?~ƻyєZ9BMrvՎp*d"[@*˾ܲP['ZbVނTCW0/aǟҔ@^u=a ]̝|_ #u߀K4u>PƗQ:gMZ )sdzVॡRSoBn?NNz¨-U4˱/=N4IAOūC?ts d!N7/ j {S|so[Lm'LC}>,59?$o .k?pY}9k;JCF~oQQzؽUi'R5 S *vJ+qK?@a=ZKoדq5ErXvUMh3r/f#})w ю<7jS2Pֳ{ 2{o!gEj^pW9ruIFǺWnYw]1,\ۘ! Q`tI.q6E &"Г3k .FX(nWm|_A:*ƸْTc|@..Z.5 ixfE<' eD Q 2,qtybt$C*biՅ^=~fc1mx)Z]H0`~S&A<m-&S|.1[J0cP3+vf{nUe}@ PLmk@rEk *5lsec8c_fidX!];D^/u>.`a'z# tpL?O% [#Φ \8I;QOFKFNY7(+"װ `Fff1bF9h*@.Ze*ǑE@MPb/HaVUQN߉!Ʋ(c f;5((uA֑U(U1̻^|P2r`%TMJyWۅЭq=un `m#8/?=ZeWu{xx[bFy> 8zo٫mu8{"}_0U8zkp,<`[p DIv GOT1> )$ls&X/ҁQguhkO‹nSQbp6ft0p:+!nͷҨm en{6=t:|y#ki^EfsJgNu%4m굮Y7Η3DMLCJ2>uz6E[{çtCWs*2}k ܳ%Y{xW3Њ_(E])pŠ % xY.󹰕x<-/zX,N.H64YC_w|4{%/_dָ.ǕD$n.ԴIm<]40+RÙ ї7KCfq; .V~ܡhdY%hRK<(Hjzf(F h &J|7ڵ8h+t8e-]>Dc$șټECϡ 튷Y38D.2RQ!z ?,S]˟CWZQڡcp &6e>4Q]S,*DL%Ƿu9=ԩ6>^@}Ѧᘄn@5ڈYqn-ߋ+ie+P&bMm1B,썲)-=S{6n~CėXN?h3S.`ݟ{@9U-|rRvK8)?z5vMf4-XBI$eP"/t;K:r ]aSQ7.IbM2 'vU{%a/v9HջMɛs03Gs™Z~Fm&ѸeK}/`|6.?~7܄ p{g6R &I5%͑XS`u@"[SwMAV{ ͙JUpwa%.xE5o°:WÓY7@><ثSb'ndS=R-?O#Nn1d9U_FV-4l&N0mcCI-G&*S@Ȱ>PR%"5,P%jL%Qpa}NbkYwA/jyє:\FC֚TP!O-;Ĵh5Hw9B\{Cj]/}q>C) d昌GM'Sp)FyFqrz7R*I@+^ U3 k$M>L4 ;'׾gƥ~ GY)h>jɨs/~NZF77`mRHjn}x*] kH`~$йb 1͠phpʍ "^"rXؔ /]X xY;פ: T>Ƌ1 A@^ީ.G>MVI d7EAi H:f@Q8OVZ%sUcnp@MdD8DKc56 gD[.w4Ά歱k^$?!|m$}@bd t{&F (͞}ǻ@om 8i\gZz/QqbrPhcJ)"6H0q_܇?7,7.ŠDq 9Dzq-V&V3cPs[{z3*M`~,LOuL|^-&Ss*vZEDح樷EYY{k,* z#I:>L ŽLOk+n|<>,)9aºQܲB|zqZuD)`2t~SrC '8qA9"gQJ<ށ9gh3Ѷmy$lz8 MQ{R,M@s_`X{yց`W0sqlP`d* |i|^o 8 @Y|3z­/kM99QTE~KHtwTr(5I,NZ3^; 1ûLB*8\CکX+/ʮ$ = bb4*1l:o%|?: AWKF8;XSie\XAQ^Ri[5_IөŢF|@[.w$ŀ[[hJG_7Y>5==sۂЍ- x逤 S? 1]ghT~YʢTpĈTC~ͱmL8T29 G2ϊr6G(r0- f} n*~VF1e%퀷NY}c<&iLii''|3럋7`̜'7=&Q|o'(CjgɃo8 6?"3:ɘgqӫ?EaPth#PxaIQXljl2NB}~k\mHe7~`ů#{dik7ڶuoSG@e[X9 j'Pg ]j5Nf?[I^J67>_.鞤V]KC+x{#0O~*="PS?Sؙ0 p@V C~5j<|!{dW8wNe-9hWQ&x6f$$w?B?ӱ3Y܎{ᔹ`9ĸ)S1/nrw!b;XjctČ;ՂSw| g'votl@]FpeGɚاPogxE=ԟb!Y`RdGJVs&Bf"vZĉFx,j"ɺлҞ  ZCoah-b~>-Zp*$,FT52"SaS +` 7wYqK',j3 ܺRLgiE9#'x׬d]*37\I#vJH-ԠœH`5˝GН)S]k=P)8BM[f'lү~{lckr7JHhx9t xٕ=_2DVT~* W<[UC2OFcmNԫČԣyQ O2zJp3dPKIADcM&Xۯ߽\"Q<Ჱ%j~ݯK%G}Dnj CJU[h,0GEWK~`Da-ձ T%2-ȕV hv5mMsܛ-OfZ}TPxtdY[=mc4cG 3tѭW"(Zn:'P۾ǸWy!c1.-pͱ=hN fZӒ9-ѭ5Nh,Ѳ7Jמ݌6w%9ұ<JʬÙsِȫ&/Th͜]O]_{X䏭<iP  ja30lza"oNCWWSns, :Y`u$SjLnijLZ vݷFd]!-LnY6`|1z` T~BIB}+g3Va4z0ϳ_c; zWdI*P̯ϳ?MQp5t"6@I񋡭5 *r.Lؕ*ĘίC ofV|qqcc]rdb'%VQ zA4/Ș7$D&8A.Q*&0CDJŇ|ʧ|P7Uqę/E8ձkB[ThJRҼ!>Z%^QHt+n|w a$kjvAAk u1黙=D :s_>IP =Z}drҞ؉9'l_zPa]d$dFyZ #2658}l d*sAD AwIZfcǗ܅jp-Z5\B l}IggRghc^9G1θZ6yfx!G"PyuX(ʐ.9Q}xɀS+BjA!˫AsQQ3=g S$sW,W7=->q=~_ F- 'J{8`k@ Ӹ` +eqOItu2&uts/nq?|ТصK).|P=Rad"pO&Fdzq$⏲_ ?-qD9Em7T+)'ڬ7c\\vڽ' aQdO@-5/x(d-Z^G8cOũD_zfկ4^7lz4a|:|DxV23"aN!qGJ|^ՄU=w>Ԑ?L_cO5=DC?RmAeG|Q.4IF\/p^;AhMO3I8sZB 7*kAƧT` cAyՐ jvgۛ+bZʖ' DkЙTa8_;o "ŁwLȳ2AP[ u"/?072>) ,L7[R_Q \ڰJ޷K( \mP˽8kG[;˵{zhQ=DfDOEM" R zgJ7F}S. < |''rR'WlItA⫞ lL'ɫ'`gu%\uGQ:ҟ&Ҿ8I($0`vPQؗ 4 Jb7+y"iyP 3)ވMN> iF4tx@QO=̜1).ǮRݞjΐiWB0jahϛTyr27B3ARPx>')/0O+@ οFf?UyJߵPg^Xޟ9.zן[X }ԫ ]H@*|œA`V]yeZ5ocjV|"M6"M붙l;6XMbAgWiL2ɐ;{B\ߢ eL(%5xA( T$TTfG mL%'/oG@oU.V>AtL&D>A82jOuK;ɩ-WNh 89g w aތa S9WmҰŴwpHCNycXnm&7s9flb4ht\Yo>8V9]F!`AMWQOږ~co\U^OH׀Yć`X=[Кoq 76M.qMf*n P;Q$Q[l4=ܴovr^VL-*3_={T-59'`^ 7:f;19%.}U#$*fIhP Ud2h^olTP*( B0{o[M.7"%t!WSx/98S"bzLd09UVAiJ:hwBCMXtot=0݋ư21+BX=}2ڧڒPTkuK$;ƉL=hK3M$zPI-utadJg&+*A|p~]Weѹy"c_k9pTOj:킆M"Q=y&ؽ1m7ӔœgF#x8`g qld_ٛ%'$""h>vw{KL闬{^`}B_dhB6~L%@sak'3)OE6 A BwwfD 43)l-w +etaVghȩ@nӇwIP7 w^<Uhr(#E(&b?^}. hPh!q&aAL$3%TIks9wHϴ^O?a (*%͇׀8Vmhٜ@aDgu(ph&_юO']lk${n)ں 4E8}᳈U-j&rPH*æSW0;鿑P6{l!}lJ2A:$MqJ9h+6 5FG;0Ҹ3Ύ_6%) M`9 }SF[]x9|жl6rt|::#4b] cGߗ>nTk T m~Ti,-{!5MKeֻq]oْqG#\&RQI0MiBzJRS5h2"!<?'_RXOak{2I~0xUTlKVC}FEɾy`{i0ŒPÏ 㫝?@ÓnꖶY߁_z15Dm71pǩfTq*A :fqX[}tjInoʇfrNC [XDzʩ /#x7;oUжiV =ZR kۄ{.:l 9.dg : ^} ֑Y^U?=;Td4=N>b _i8?S9YH_ @cL(!=BQ.B`.{Ì]ɸiQ-Z 5L@ɰJm5eBNzB`rmŽ6qM~K5WF)}28؆gƧ-Zx` i\ӞR%Yx 8EBҹ&>+׵t,H? Y9x#izg4&nr4(6ӉbyG8v.Afx` w a-TRہZOZsM8e tm("U8ˏ6(6^+U2 ̏t_k+ôj$<$yvR:!i32K̇6%bڱ񭪨t9?ځxO+,9e$$D`תHB%o$JaM56[em0qi 9+~U mU龭?-aW2I%BgA0OQSވ䭶P 2Ye4G#@H#2 I5|>tbEAѻ{C(o[=e,PSK:X|0N\} hOԳ2*NRZ kA  _$+\QgWKAL'q޷#֛kLn+rJR/-SQ4P-N]Zc+s rDk-U2InHQ-8'&+E=Z6ݿ{m*{Ս.<N{,jռ)8uOIОb +meϖ(cB+?[Ց\. xj+R|3ZwJPM"adʕ+S⑝Qʽj Q =;. TM?ifl>+O~;DSz' [[~ + 4x OBj:!rdYOCsU8QWB#a[l  Uoc=Yӳ*;,x6,Q2笫˖ɫ-zqPq=0QbَS$1\|dA+P s JGXpWeb{;2A[Fb1ZkLAƒF?>N7 (Xzl#6Dx;As!yb[rD+D7wy}l[V n'+M34=uDIR,h`kyOqy#0.B)۪+ C/=Kaf Kj6̶^[."djڥġ,A)/ JZa>D\N|C{#7a]eg0N׽h+-vB%:%eF%ݖt'Ֆ V&rDqwd @AQ}P|Su*E$7.fmj& HP7V%2l| L9aTVٿC$X=QThS>Nw"o}#uyV\1rF0Ƃm!{oBw Hz#KZ4n^Қ&nfmaluk)'*~Ĭyw|4's9CJ:v> NygmzHW=V"V2AҷD{R6E쵙e%IKLs#T[%lS]0R/jez!^z:Ogv _IJG$|r3+UN E]nX߇!آf;I8[Ź?y0:ߺTIRu:ޜn Y~Ƞ0 K>@`P,+Ól4;gpv$ŋZN)JuR@zWܤ-6htٰ-OSG/ Ӝ=<ؾΩ5k٥ [ݬ lx.3VCwY@*ާ,ɦIUCgh ܿ"g /Ѣ{k9GxW5B+ysO,&zi@x{. Ii6eť-03NJߡ)g n.喆~ZӭǢ@ ,ܥY/258(̭+{ Dڟnz"A͆}&/cbKN*U"n]#Yh#WΫJ_ٔ?T"gaɳںl;2)h_ļQ؀Լ d횅 d b(8+B(d'!VGJR֫:\S~!(֘Bse;.J<("==c .)LjGL6*.h\lӻ0νo2 0}dwL)[D?cLzgwI^_uw)pLٝ~V7ے ^m~vփިwC吴5cʘn@u(Xg?V-` WxOR#aM3iWuATO>r.,OҊK(Zkh}E P*93\'O&؝&obɵa&`qk%Zqa5>LyCܽc=hwX ?Ɏ~89ݸ%U5գB[E2! 4|6zK%*_]wФ؀}:zxcHC'jYU77B&@m*pf H מ5WQ[FvJ˔J5uOߔq> eJ (G*oCд|?N t똠qFLU`sK XRH=D&q55,q߈w  &:`F޷@̊-ؒwro=[M!s&Rck iܥT ɱ$S]_{}MeC`U;8e.d/ cQXA-#zF6ؖRQ뽿ݖb<]0{KJ~fa]{^Ta3/ݲ1 *4e FA^:lK?@v},feJqR}l]$ ~$F*>Pvv@{NK֬l߷Dji9]ªx(nQ\`Q.qrt UFNԋjE*O.ڇ6Š"tc+mINqx|@)8}k>o1ɪ6# apN|"^]틛y P+z5Q4K-_7S'tuGR{.?  1!Lx_/Ť{|xcd47|um)x9 $({u&X K{t|.Bip~sx9^; 4y+@tvAƼϘf/ϝu#Ԁbϔ;/~o /;3|4M!o_$N| cQr/cOvC{D6 {2!AT#pO~rpbvtmVM_]tNd-Q6g5sh:HJHPYL8:sf,ou哕T,$Wkr%й:`z8C":9zL WMTIz Zcñؘc1n)S|-&Gj+{}C sTH5jWߖW%][JQ@wZ-)o3a4uel޴m&QvȕC ER@fY Ŏ6q βYEL|m$ lco>l=M>7tAwʮ,e}՟]$P\ݓݫA7a< WL␺ ʮl?$X!і[ǵa1-U1 *b$QTk_; V-t0 Y~o|ñRp"L;$0q=;.hV.OfܐW -~3%Y91ͲH/.=6Eܾ .Sʚg<7IO5+f#ڧ>>vtZ֑@TLkAaD?:)J4nlm+W,ɑ?TG]xa{Vu@GIKO5횦a"ͳx Q9W|}ZvHUbDA١nun;1Tk.`x i{H㶥:ouB@9Vmڽ1M!+^(m6AL |< %1cX1vfc%ˈ K+auOm_1N q$s# dO 0Y$YAx\o; ;`ѹ[zc©q1p]~H?c Zy.BS91Y-m0@]Yq۞(FTirI Ews)&qơ06%%WR2x>ٓfOMC!W5tja_qK!j~/U_U;au,Vb~קQ{{Dc]"o/i;U 0kD[׼.% Jįi] |@9),,d9N[5qT3ΤOv(:YL5;0bpv+BՉbݳJ;y9wٓgS *5o+tQ-׺-=KK\̞T]pjY+dZۂ}kGc?[9ҁƫ]#ˁѕ!EKL&bABI7qΦ36u(?;g]Hf݂);1ll]dCBnƶ ~yNKجK׼? /pcMixW7ԕR ݚ'TU=$ %U->}2ޱ1>iUW`2*hZ·7(S]ۋC3å 1Qjt!KI.E;QhvtAFZ5r&,8nt[Xe,G.bgl*aa~v#;;v$<ҖhĺœIe6*L9pq6>mjSD?%P3Xs#GYwW6p2FƕrlOF28O$Bg$fmP} 'T%;tx(QXSa~fyѹ90PFBp y A 2(op/Jc͌{cbW@pjǣ cu&Y)602,ߎV"ifZO`rrҘTG7kK円+Tޡ+M\9{iu1!z o+$%3&X$!nR3߆~o0 @dB嚮0+7y2+P\X /cM'8}) @E>ƶ]\*gdTǝ]8%/b6t&` 鶘+q慇E >ƞΌi溿>=$֐ 0Ry?.5! m?^*sIMCS{ Ƹ'$ 8RECۙSyFRܔԞx!TN WPtc^ CϩYڠV5?w]QA)]WV{=dbiG6E{N?Gˆ`jB; ö [6Ϯ,^?[=!P+Qw oP+kS en6u0f-GA EU_}}7u9;HL[:,,AFz?Tů#^skew(۱6k${&m L\>~ŕ%Lȶ!Qy0Hz )S[l*_GEl9r-dF=U{D#quDS*Fq/%Cm+-lYx̊o2`{uYvt*+hX=h&Qݿ^ t*oTyM]FM5gں]=b LQNfrRRQ(pr! }d0PC ?qk0UҮҒQw:H-PƷ c)v:% xNa]0Piʨ7Iugِ3Dz͆9n7YE \ܣQV$E O2el\N&`,5&қ-cR'9쑯7T~;D"orEd$Sh;Q]a x߀ Q1~Ck#e'z}:XhRI ,؛K fAcU%n$K!~iiO}b|ч晷 & V=#%BGPN8ŭ5! k{BRN(ةDy1299!8q.huBY}kMMfRzx u1@mߓU Xo J[ 4=bT@X)_a洖=(rΌbeY]8w\˦MZ@^ݕ 2`jo` Y@P\H+OwQs71&Kس ξSad=S!EyYELv1u5HehY0I]?{'c2,͓lra$veJLȰV8%lg90/=m`| ͮť[għqyW*82g >G#]H1yw6"vD ݵ/iϋmsN$|79+giN F-ѳWcyɱXB0CK[; !ˈ- m2o™D-Zx̚"(^`2}'׆4!j د[vd6RlU{W { n1&NOlaҕ9AEt\ <86H$u04Ak~:vJgmio4_-zZ/ TIXƀA}v!P;'IM-r"V쭢 %u)F-K AAKhE t!1\x?yڹM6r: :xe8e( lj[|,2 7aU'G o-F Јx<˜5}s֎ q6#*BtgTF[T'GtCOyL73ˁ~b=X4.1~(JTJt٘s/^ǀPt_A%~vyyaV;@`YOLDM<+/n)L[u9"(5Vyl0e"C^sǓz\W`VKrNu< 23+˱URD|FbmOgBul'5 {,"g),٢aBH6\xSNn4>Ws;nOuj8$R/xF`(c/yd>;.Iǚ̯t=0*K$ԛ%n vΖtbqמi6FERp:4j#a~#Rud,pgKц!bU|k]b@3 !yf7Xzu?T#Vscblr3\/E_vj&7}sZ,V}|TbڕI@EX"hP\ :~@KucHDQ8V#,KҾ*|@iér7O'(!ՂimO~V x^L-a`su ̂_|^2QҢAk$=.<HK ȍfѣaxC'ั7 ;By#CjddHUh$yk续1Lu|ՖjxP!BX?_â_%/ۻiHfu/CTaffh;Wx}UIrIy.U &NʘoD.h},0+ B$B$;&eR%=P@zQ<}UZAŦB_g ^*x2U,Y= G=ȽjP$7zoK[)MT:yK[%91j6W%&e-b'ʝX\Z@~(hps1I@\X ︡ ǞgzUuͮ\e$ ,e%\k3]bEmBqm~݈Lp"Q<ܬzR($E[ckĈei^.)sWIMu7lyABiw1:E96%E?BuۜQyJֈ_3o ]9u|z ANnԾI,rv兘WSWya] #ڏ`؟E!t~4+q$r8`LI&E x6/( i@Kdvl^-ZLFfƕux?ի3ȗ2 C?AsZÓưؠl_]8Kָ+E)B_wt~Ҽg+o:Vݶ<^?֚u{ :24UX w,| `*wZЉ={,ÝTtƒ8v@mAhWѐ01PG]}c)?P׷Hn[`7,IIlʼn{-r~Kx>M9mwd]@kc*$x:?A3ĉCwlrD&-bٳY<Kq |^P)&m7 e !prO5FnlBNR,w |J?ƣ/$Wtҏ-[4imaS(Orƒ(̈́Xhw٩4b@Au]ΨN!%dpdTp}=?pOtBO=C/xB?$\(J HO@dj D ZOAۄ57=YYv(`LZ9Mct%RF^J8T{6LA WuXcjPjjNc>{A-!EZS?.uD6=򊚮XE >p{t+'Qo.ݝqGSz`,n;#mw4|RO[F^ 'y;%sd>MQDBo_lb/U\ t4_} uX3XܜtiJ|K 5<{!5ХZdkfJZ"=ֶ m"7—'&:jbW~Q$&B+M3[їWGDQ 3Ŧ[DEeXp$c !,'`Ynd5M}7:$SpU2xTS}yk`: +p>(.Yxj gM@mfKTSWz{&Px)?c1>sМy=ttSjٖ*t/Q&ջ,nܦ 2 <ᜤ1_̯,{Bvtkm'-T~VgJa4oS2BQM[!_VY;>4?BL@y+%?H qw]$}X@ qρ*Yp(4DM+CvaݙF][DTc\ÃvI9`݌Mq.; 3n9#FmEɀ.^&hMFW+ճ{LOup19P+>m TíJZl,^Dp35!T1 Qr>m ֕-,r|{웎nW,53+ Ky% s֯$,'URp2rA;m|:<:VaU4l(kL1˱ag??ͳ/دӆ9zY:Ö .8-yGAE`rm PNRgR<Wxtu_l קϦOev,ҫšf`O'@F<_蜻}oCYĝ3YWc>)vP&-` .^qF e_%vDoB2^ZC}Ȉd6?N0W`71Lڠݵ1e 1GJlBIњ *5$Q`xT{4gDUȨzB2$)+,[`zyio1i!ecFWVė`!"2~e+#=ӆ5Q"_= ]"I;,6hmTTM $k}ꢫy>?Л$iwDAWxq/ 8˞x)r+YX *N.(|R!hUp?r( uzZ),slM b.z8kFzZJS/S*-.:}~p56bZ0'OP/^p h-^uskp|!57E!J_: (t@;Ș=F]eX!Yg'U =74S7[`Z4;iW4#8r+ϯ+%]=3GQ-eGcf'saL[9J;5BVYP]vRHŐ Aё"bL ~l!@i|8"kPK+Wb[P~vϡtlr:*˝M>vW 0XX2 ٌ Lw1 ; ;Ggkd1p+WK#H sfi9Y6? x$,~K θ}-WcS|)YUjC\^ 7q$\Ǟ wt Ly~(i ̱?' (PP4)3XUXEnT~&cdX=j8^˃fRR]j~ j>-]-WcjQkBJΚ' $/@x-2 +kUF,\`n:&s7oq34K풎8 ČXBhYDɫ0xӕp4褑!z;G RXo e"{gZז%&=9e&\it7Y|ذm!a4S0l1)MjJBB//$Pϐ=!BK$[*[YWw_q{Ve-,"?~{Ո4# i7Ԅ0+1'nIV)dx0^u~3ɻ+B01(L];~ޱ >KG5G4Ck"ԁ gk>rdki%h\qiD-!e7Ur;Q#D ˭_eF A7d_O>[LJMP>$z:X# _zHcWrKnII f&,H%od)3U?~?KW<GDlmdW댯3 ز@,fZ G&$9ʭ!j(^t1P!@%0#Pʯ ?;\3mުfv;DzȐ}'D(qg"AMd@E%{ Pʃ&[0yHf_'iτGً71ӵorJ!B;k,{uM۬7wKy&Lm <0gTN-~FSld"6ab"au۸W.Q@;W |KB!۷ SbC.'`͡Tu{aT=ȳ@4im ?6g;9r~ڮ6fس=ZY@9'}uE%E+or3DJs\>fJ6;[AkJ T@0Po.-#PH1_$ayS8j3Gٜ ^Ղo' FuU$վ#W,1.e;7jw#H@OoJBN, ch/v3>gW\ q OV }@ObE8~A]Ө ?!<]5' #4"t6'HJ4tКnp-۸ PJ6ۗVL`1+O J6LGb@EV%!J.^8]<:\>zz,Pvn,q3Yzp3or U~兾 e^ S*W&b>.ؒ%&"Wڑ\!L9.ҹW3"cg2{A~ ƠVg9k f L"Q$(zs Ջu'"v tbTɺDYP=9q'5U"F?Yp[; 4XN;pZM]oO@T%nЍ9C SU׸jPS壭NJvsj}i/vBƱT>i? I4CwUYJ B[ }#?SF#Є>}-PS>wKnI+a9l^ m<-<ŝgҡf85(]#Q%+|5=o'CJ5-K/ڻXNW#AVeo=.+y;}[t ƣ>X>Ţ0"H,˰e? xܨ3w/lT$!}Jm ¨"/O%){,&;Jk灦Kq+z)r*Dy!EhB(%FE {`Yjx]CBNbPt9dPAT[/90(La8-[ҨŸJ⿰X4BWŦ@ĒfV6tS|b! ^a/@ҷ=lse^'] q:^W/b[%3^D!i=` p(FN\/oZ 5a!VuxbH;.)6b%n$L">ɢnu/jFOuK\|.)$:݋^ƑysK?Ӊp"k{mGQ|7+5z8i/5+} -5Ve[a_1"&J^>T$:58Ы)o(U2T9B-uGnI@P>)ʽIp3N(l;ܯ+%,8E)JM)x ٝ:3_D\=$xNÿ}1/A>c9CdY sd/栣v.?=K/ox -PGu35Re,VѣSC2,f#=v܅W70:\e #r\vdav@;FWMjרtd7͹4h5}ځy4[N[G iUۃ/ɹ*]"~RUaک Ε,R!1NA&h _L47/Hh%2@# ȵ^ۭ3qa!D"2Suf%uN\"ï2$C\Z҂Gj!w Ŭ=QڙXz>* Ӊsv I!˅:MF;ܰLf . Vo9!~&&q%X))]?^W3pG#)t`ӕpc7Pd] +< .Eǝ]vfh ϶#:$0eɣG[1k2s5\qSK8j|?BNOp^$7}Jߜ[/][ *-%we6rPx,񌇎 DDꨃ]W29wXDghixOs~: |egDY{ ЙՆUQ3c,8,'\jqVuאLVGO(Iw/ _r7^k-t8=Ѡ+bh2IN]id[Æ"CKXnSF:%\޽ytн7Ee0ՏdzGa6̈A~lUkܞmF9-_#a58p#"G |1sߠe's%ze A2УrRώEweFzqdi ,TP46ϔʏ&Kw]9-Ͼ8 5#R2YG&v0℃9p7^k_yJyA)>wG([w42|s!b76ͅM(%~m7Z9hW߼W,Y{\Ȉu!~P 4_`JGaHWLl f?Q:Kw*ס520:a;yH1ڈpֆ .*DC|Asﱕ/ CA&|e~ΦgS3r%:d~O,[/B[J; D^13N>́`#rࢤ8ĩ(D#{b0E8H!QG3uV)gFCʄ4/TxINTqu+Ҫ'+dDTm>ej v cQ*! v.#~xM)D5F|NH0&3'\MS8t14/.S'y Qð8ca}}!cqs%?0f dJkr`¤tWf oa*'THBsxZ$TӋ,H htX?+GA i(_9.X9Ҝ:qf kД l%EE2Js,5}Y&:)heYcp&UmuEsʰ}ݒXw5D?,s.aUMћ,ܰl 7YIf+oDYۋ;]H?:_ކ?09'[E4c<ݸ<'[- 9//DUx ­ϻzud"2!94QhQIo#w?UٚZ %ϵ)0]Do_gcU>5Xab.I1DIHpџ#+/?(¯bK t ?c{h;Mw։ eo(3U1MƥmW пW_XI=?DƱ17 91퓩MJ(Ǻj9V<氶1Ll\(I?~BV 1y / fOˬyE0;p6( HGp#O`[-a{ ꛛ 8MiSMк:*b+z`JTpWWщѱz\DBo[UO"K{$xCyR߆CCօlW-.Dj ~+JU,q~n+*]v({7^STOi?l!m.?RV5õ `%م_g <+r\_+ -X%wyVHD/o<<^9B7 4U>֢^3]QRf2cf>(Zm7Ӻ ZZ5Zm>#@,:eXS@Fr\Wv^%$|Yn<= p W2MVqzug'd]%frci-zH9#(ٺV"`g::\js%x(&&@G-F;/8y},}e"w Bt~_y kP_{ ȹ?AGdS̪?Rvb5ϋ q{n D*mi}+RpbO@zeHpaiC \;coR_8ke3kBJˑ_ƃ6xᮚ뮳w3pW\6&@fQE*yX$e(,n\9IudY_]O}.Ff˓]s)ۿ|5ǷrOHABu3Y&^yʋS3PD15ݐnU *2f. (f4BN;2mto$fԤv?`M=\!/%gŭB]Svv Ǣ3xon5g;[4l`$ɓ\#i+8h~zE~Y[\it#0Ml /Zp`mq#[|U%`GG-.tx.,E]N;]8@T>\QBt8rҫN.FyB\၉jj}-Gύ츑0\5vTMhs )#@Dp4\HX&i1*L--AIJ(R hDXj!# G3x8mTY?Yډ&sҕWm@6TڇSms1IiC,*bEdcP cRAĎ2JZӁm!uªq(8W 0NGLѠT?ћb}Pwv 63,/ 'ζl·}+3 r|7s&u6Z' brm/(4 Em1)M: =z<;BҎRmq_5/DB|Ԫk1@@٫OzPr ˧ r9%yj{s|@ BFDɻ \pa4M) ϣz&^i\Ŋ{-ezT#ۀgQW0KP8?:5I⺐NZ?4HDq{֪jǭL5TpnK*(d"0QDcK}oAT~<_"\wg E)֤3Hs}hsy](g60:nVV# ?ؐ*=a^-|C_ le2$%ߌg?/Gd9F-R:,4%A܍R&y9D|+r0Eө]zo6G\s.?QFɇlX h<+d2]CmADcn&Fy!m 1)E`q' vUhnć).\Ӽ uzA.?vKGc&" P[8m/'ZS\T`%S[Asʥ䬡BQJ1%֦U\u}{7V0/Y:}MژP\gJ(JlYeEɷF۳ *Rg&}U^ Ov\.r591P b#OyUoK|T\⏽epq_BymAa zjW4<~S+L@0ƃC.o|5;?`gt j/J61[ж埐ìZa}|+kEn&e?NX ͟&S2)1)$v_q6/IfQ>'ǤHg9w<&󙾾=Pϛ~9b) 3sŷ>4Ȗ%I_nI!guȒ\k/dk8BDE{B^J/m~I0n]}*GIu0op[')fkK[IrE04aLf(8 #8,iAj;iD ,,>o}&~Lv7<'5(j,/J*F:=͟)L7PGՙKYcY]uǒ#ةa \[%焱hmuk*7ڿ[X飈F׷":IǶ-zZl?S&Т=d6z#pSx]qr&֫Hc<3P3m1àXzXܯɖ+Vb@l3DM &P>CH'ۻIcAo"E{z uquSf #Ӧ2r/ / l Vq|H@ ~_Lҷ,?WofMTt:t&ij;l>YtӆTۗ:1=/C{koP.h> 7gڋHÖG9``Ġ 'Ksn}ӷ5gʵ nڪRY$'DEZ,/do?yF"AZ%|<Ը޵sa7/->^ ]>Ϻ(NiPkp/(Q Cq fJߍ9[(B`SgߌM[''78U-d-5sGi$>nQΉ_˱*4 $PC䠭. Hl-xѪp˜5lf٥O a~7͖aߜL53μBlkCOn0Dԭ&[uMIiIm=Xe'56f#mʅkfǂ1zj_h;1Va xԮ !cJParSS ]@G6IA:keMr@I(dN;ķE֝IM+~+Pkyd%ͧ}dMW<`bW u\SoX*]ޮk1vj^3H?,-rF`'!UF`lgkf fQ>?6*ZtK9+<^ 9_韧f̚sqQpO%inP}cm֍HOWMbr"s]%Wx*=b?ozD GI14ڴT}e{'s?؈KJ:_ONJZAn@Cp$xRo9ZC;0Gݑ羛τ/Z6ūGGQf"%Rwk2@of2 Hft9x21&29ONLk9z-&(~*oD~>7 >>RY|H]$Oj1\L̤#Rye$5K Og7Kt>Fd'NO O&!/ѦŽ RⲮ|/6:zA :v{hX[Fogs٬ hTCUή w#( )&ƘٻhGn;U|;sO_k'ПPt߅{ź|3X1 T3Nm\0{W|]p|=G߅&HH=:~9Qb^-~S3pE0\ON(/65+ 50=[?V/sNEIk4p\#d@T$kqK/N@3ijeS)ϙ|0g,p,Sp{3)C}$>\Ivfe17p 0[dxp'1Ls):4<[yl&sLk}Q۵F9oxEMpÃcX}! M-xpNHC(NJDz+zDf?`nK`sw}|d,OB*^8fxG4BP#gm(U(( } ~  ̢^*1g4H TO!gU/hO81xbJ{^4cVBb Eݩ%9Y[ >Qw e܍:VyI7b6ua`}76 W{fNw>'̭9-LeؠB'gTE-c^i| B=q} hrB!;S8.^o3-8ti ԫO$/ƫ.'sf8sE/ qٿU{꘭Qw >Es>AB[{sź.uFBr<SV'qT3{7CM$0AlʒkwPCY7xcO ='r5q#9;VNsՋkZ5/*QO0oB&8PN1]ʢ >/h7ejզݣՃlXS=ߴX)ra!^?x+  g [>Ɵ0,;BwR8M܍X\>;fCv0SjxGj-#?͖jԺxJ_)thcp<ߏ jw UL\`FmbV婶Ch[gK\%|`] ͯ=pLܯ݌ES[HY5ETw\dw3\2l`2H^8؃?/&dȺ+BH JtNKTrqa/>8"?8x1qG9`t#,ԶѻZsVɐ6:VX98c+X74*Ίe--$1~n )7Ӆ'in,RI^F㣰|0މw!Y4zJ4̨QWfD:O晻E9Gp$Ƕ&kw0?p!L#5zMX7n[# r)YAs Ĉa(5Od~& l՟86'餇úl8[5`ͤs״3ëĖb'2U,Ǧ@:&{{ anM?..E}fn#(Vxr]"ӻZSFJgwC +{#l~.45PܒT%D[ 9*Zw ׽L#5_QH)i>2f)/9ݟ^m#yC08.A%ws Hj iLZn&DR(EOҠ *  o=1'9o#HU0%e:EI-Jl@c:fc ܣNF<^` s-WdO<\s5QwK8hH.ѯxΔN$cBХ;qIO hL\2fv;QwC#XLOZTd){]5#0gPvq;>E|`ԝ+2E.<6nd*tF͒iQ[b[Dj*Jwە;PwՏe>/Fje^I'< Y͏lp_bӟx5CWUl| /LZ?34~R kxI&f:xr_-;]Yǖ);EדlQtLÄ.zq&hir\IQDO,3P?nQm_" H}Hī])KVII5'O>[tu\>Omn5M C> [xl`>L @wr/? sE Pa9X 1"l>rUx(0ẅYMj"9g,*?9@XW Cr?4 GVX'^I3i냯b$7VA[efSz{rR Zs9S%\臢fTʕ@uLpQ[^zѵ(E+nDԗǣ%jҒ䂿:ƊGiEn/"oOTR@ I4=8%_bfKƁȯDŽcHʧtnEyD mM ;r4̫#QЩB:A.N Ll\9d-\ľón&$&cJ?*>4Sx윛DQ`e އ=k[c_%긽Wdh5φ> ͑VC fX .Gᕏw$?9Ld .fXՙLk *G ς7?$^F("0 = J*w #+w4p*aN5 !_R{_1iwdw_MثV53Ǎwf?$ ^z;)"H ;D jG8:=un g$#"! )ytTLI.2ӈ8rD1{ BzWݤ}qX5)4@)#0Xv%^S#]p=؞3uB뒆3p\e@!y!6U_b}q d?4X:؜pZ/)g<2K/JbCKƀYX'}Q,"ws7&wVSt\o빯$)dF҇% -T[ҨTK 6ë0!yb.dE~x&.y< Ԏ:N.#w ge  ..(\EdzR WddBMJ7ߗV6NCA#$Lm=n.҄΁6 }hP:iu _vAw!}6?@1̥h\&m>;D ة"7[= oje,B쳺ioEQ έI?(gAf#4 8(71@P3cn/7gB2\4i ">~ڨT6f --AHyG ? !r/_ޖin֖_簼p%M+/^k9]Zdm;yQa$$lLFEx{[ \0oH |yj%){ -ck]RW|R#w'BMH}Y8hU)4QwQ,4y>WtMz!2ѿ J1'^=#Okmj Yaa{bQ Ί֢)Dr^UJr_9[Cc"YK*vӊC{$]s %!SruT)žR5bq9(X!zͽ1S.B2U"%}\[at@d 6WmZĸȞ~ns*"DJE@Q1kst^ 5͋0dz nU Qp ^P&&|%>HʮuE i#ƍVQԐG\\_kUF+uPimհ(YRAZ3%i tqCk@ߤq ǟ5ϯ'JD~RS"wK'ML9<\> 4*-F.k2 ~3L^C>aU3`E<!&=f7  d1 jƿuZS,nӢĘDYQٗ0S..v%vpuVeEAl]@#hԀK;;]dZ9~my)O %tZ*JuZ$O~[T,Vڙ{D}` i?xFTͣG͉rEH O"p ,N~/ǮΒM\Cquh3#mʬ檑u|נie_]9#wZD)Pib$:6ή,ؕ0i p4nnt+6$A|Qm?_a3}өVi[|Cꅙax Zm׮e%Cwa Y>J3ђg |/M2:{;^pSq x7 tp ^&A!kT0OǏf6%:XDfF <^ص="w4̵.M눾PDSdp{WsH/-|'oaS>mk zh-hlYhC"̉`+}9 j"K%,ʣ==A**9; T7I7߸ʧN ʼtgөƀʜΌ}|UrnjGjufuC):2C<{Z}.O`Ow3<̪&Uܫs:sHL 82@Xqfw@6_0/N2pW)@P dy{/;'-5#I69ȷq.'jV@?STQޔ|cb-#XWmu>v:➱J/<2!G%X-Վ~LtH*!ʊ@q]FSLSc&dqeG:ó-R2vXFSXZT,O~6WΙX FywItw3 DOBN77sW6ؿ*]_B^Vvb7c:g/,3<}Ek :[qǘ|Z6mLF.ϿKB}O0u, ^i , }zPͮG_B'\B=cǰŕ|LeD WRyDyԝC[^?\ CXji;0QkZls>ݖ1SV5$s A4VnQ"Ju~18m&lC8g ]dȟ+{0ww;ɖ@ |,iDCXbaߕ1^$'Zi<ZYd+ŲrOy *? !Wp9LG")-#FӇ2c)b]\KK(w0Sm5s|B9{iY`=JIl {ZB#H-/D Qz^.,fى>˓헠iy=Z"<G.H1ZH \[4n K#'ǫj:#5tx_^p٧a~ʔ+Q|~>:2sY-HQn20囼tmASSZ|N4 BFp ߹厀R[|x'~[gt:-ӏ3//?3e+ tߚ ^-sƔnـ1mT 0_idΩiN0ƞFH3)(wof:69!GvEz^6{\2mlS ukq3y]"}QiI f!M-.z?Oo(^)4a k͖>r 38yM]]?^X(]JcpHjf1FN,P܅l%0qL.7L4-=ë[?CGNL+P,uE[K"w豶܌Իy8-UKUK8EڑVjG 1~d?9ſ?qsxy㡒|ՍZS/*Lzr;(mi YIÏE?2쥵"s5Z鍏>NBǿnH_E9/h'=or.:adSA.u9+;M=Q ʏAcx1L2 ~Q uZ$\?Y?\/!4F 0aiǂDs;K(Lȥ}N~ۃ}8c񨩷/ޕ\ʐ|V f-\/+O=2Cv%7+ f^ί$*)Ϋkg@(FϧsG}63Xt(7T|g/RĠ' Wfjs#.9CK{=*rE>x]՗3%3_He-=EݠVv"OZnU'VplZOb\3f]tD{0 :aOkܖ\jRԧ"k&\TՆu%ʬ"9!8%Q]w@}5FۀuirXO"NFo1tn_Y#߃Vy~ [Բ` nLj{r|"&tpE2q:r$?>%Krmzn!IܦL{Z9EXUL,vgv zt~bVFû>w*ӬoOwt>YԊtǯʫmp]{cUHRƍF.|Fxg@q̝y'Df)u+ݼ~&3"GA>ϳa&i|~+vj~sP]ȐCƜk+yk8 ?(p\VmSx9BUq b }JJI(˓ɾ~Q`HM1/"f+Lo'W8qG eOG˛յȺ=سDBIM0BACFg ~]: ^j3bAȨkASeU ҄E G;QЙX0}V)rgD駙`N<1٤C_AhuE8* 6S7uvqyUr4SuIyXg4\ã`3h&3` cwH!ޙ]r@Z5c=& *ÛQVZT˔q="tt.=4䠂4p6KGj|%; !.Th2EE ZǨ)ÆK7 9=jÔ GͨGHu™-o ꝱ*=[JFp^2P/|1pWXP\m$&2(FWXy+/#hJ2@(ܾʰwzI*#nPo^NUz2ixzr >_܄y?!%jg_R8H2H 3 VOqr!&SD&:cXV#AÔ%Z!6]w7t|}z yronp""$B1 @Ʃ-+P #x Mc)8,<(ct?j輪G?>_`;۷BUizdSnsoO,re@9@vgUb9|^ NN!#@M Q0#hcԥ,_204y)c;K*EJ)nW \Ҡx@B͖HĻ4>:-jn wnn#QVƖ5s"灡d)^buE=2-$9 =+Tը781פ? ߔ4&p(OKts&n#xK ËI /VQbkm:6?(Ugu>6*<J3lU$TCO&dסȖ+Y o#ng4HIV@R#z̫/l5OY/Bj[𦂓9IXdc̖ uBZ^L:DˠFS$Cux^5?:q" ٓ~^/6G~S6sÎ w{C2+q=87g_Io3R ml/ ;_GX\0 Z*_WyҟQ^ٵx1/@fj?0_fν._E}>y1P42tbGѓ/3ggצ8P$m,X&3$d.803BVKr}'',D'%=Í:`Js@Bk9HYQ*ǰ]5~<7T(F`rwk$Ir2tݼ ԘTP& p07zҼڟ(7'Z-qB(rH{,=Ga;ĿV]:{gzh?N>NeB;D=EEr?jR@,jX"Rg u@a`4 LS/ it)RI<>>Wl<e7@<r&o6~~G/ ̽)1!f ,!Fq5yLZ<(݃e%aZHoB'i^-t*jdvT1Bv%p*t%:X={®4`n{9ot!AhGU6Nߺ/vřM9a诗D_f f~L~qqʉ}b<+̶9F>p&G%ENfm,L76K m#Nܯdb|l @|>,lp_dO ؍O5(wM62cΩ F{ xtӊMJ茕>eINHr 'p I}/{u9PMv]7_:jr="[,}4m0N ¶z^ٲn5'  ȟfQ>͆)m¥ͦv\o3_I]X=+7xW>JۭuؗQ>u26j(;n(b y9.CgsGdHsRRY0 v1,,]ȧ[RٱjUf>C/iܭ@g|g>l'|Ke0&ۨtXjq,gLhG嵧GGA R +~j,*Ƽ668Y)ISԋPl'H}.'eɠFjk}}fFGѪ۔Mbe hvL{ψPB4WqZN-,ٜ@ rN5d#Riʴ ?YA8ͳmO]!F@pM|(RYCel5> MȐ, Ik?CN(xc>!ܠzʑZHmPXe„h@̜ZW-q=,C@StͱxakB &5T6kC-#\K}bZ;];"5h2( VOjuHf j\>)#Hwoò-!X}61m9hv>g,֬ r/vjz?95h˭;[$&! ~Nnv&VWz|ܭrrG^_#M6$+d8%Iy!oq@:/503&UZh?0`r{X UXV&?(CoYpos1!u(+/-pOgE*R~ΝQgjy݁M~l/1EN] `nPe%>n#Q4K 4{1^+/q°]6~*AJE _.>ݣ8[MɫĜR=vl}Y;44xI88"cOďK0A͂)2*H ~.~cl" hc*>QFS(NxǬhgZ:FnLсuJ۱Pš8M i./5=n[L]~S8UܗSBV1kWyǾ>͑N *? %\H%h>˳d=~F@WAoK3uS;6G[ܜSZeW9;$#ހUnr+aI5v]K5H$]:iC!:q=^Ÿ ??s!حэx0 z4p~˓˼Nh\ORG]GfHMNf<ޣkD(t/iYMɬ`{7#%aGb=5~ žkЉ'`{/.^ VgՋ:/& !|1Q%hIb,k}MIdt߱󑔩Ex*c0THAETm/Q;+#0`412#KIW b;F4h1dF fmNjg]ڞ87k`ºggbV+3Ȉ$m.=s6׮߭K=k^}L]58 *<2I`ƍhM*p. _Y%hQ8aAzIΣa猉W`<+Dp#fAWm! ohH Xa%[[d1ڕ^T(8^A,6jDɕjq%yc/xh27϶[Pe ^# ҁw|F;8h$iuٚ^37=$& 7Րj1Y\d]yפ{ynaocB)L$?{|xY#b۔ʎ EFis.SGx3bd/wN1=F!ކ@]{yL,Rm(]b-;a &<^Mp"#A3+JӁFDv]m/vǬ86ܕ6촹'c5Vĥ+6bR NL͸L[ .1Z,2Gf>7Qɢuus( bOuY =!Flz#.F9e,K]8$S"%DchO(M'a)z7%d0V_Wrk^XF˪,½[,&{s89Bk>l3-d܂}_Ύ06 <=G# xhh3[cJ)XA`vN15ٞ gKXߎ+(CJ9Їb_SvgK{|?_;[J"]!; sZji,UzqOJ!3as--Ο!ZP0&BɴEVƾtY8!n^;STfO)Zҿ ~سUi0NWrZ:*Sv#Mg ֝bof]0л1_@2w+Mڛ꘧:#u:5eoآ^?[+ $3KG=ᠣ[ƘR7|$BԔ4 )){tM7 28Zm]9He$uyht3ҝ~ո>HG!hq:#MlJ!Z2zKH)܌G@  6&4țq+kLcZd1cZJ,>ayLb{rNdiu\\)1tXIG;xG.MWjੀq_?ڌK7jPD}H``za,}NwøDtRs6=nggUCȘ{>RoCMW{l"~_6V N&y/J nf!LZ 8\ѶB@D͟E1qbVfU0̃xL:"hk;<9 Q"9ݾ88laK"/Sò2QEisQ;.yiEbYndȩ~bX ݔ|Q2L dtF_ PGIgtgaOT:ur̦; [NIPƝI_+N:>B_& x,^ԩ\2,]KʹeCu"}:Z DG~̖X11ec9 UGWU߿URWnj(isLHnmĉJȲ6M٩mHp{6O~Q(j95/q: a۱ ,0m|nyMZY| 2s?MȌcBTҀFt"?G8Ɍ+Ȝ lFkk-8 3Aѧm¢7/sq x"]A0Mol"&5ARFЖ D_M5n p88r;٣{+ [& Q[~?p#%8:=kQC{tָphEN͑h0!,0Q˸6kX{D)F5_^Β-t5P޻/;Ƽp0K8mck8iZΆ0-O1ɩi@1ڷXN2d8>":FZwEjA,.{Ń #[$ h兰ù0W҉pȣKRSLddnYrvb:) ]0]Zq{ֶ2|7Pa*yaT;O4ʼ_sC%U=(ZkQ ZԩFv.O,)1lt-ӛ_LA>BH39&#Kpޮ IDp$ƠZ*pyF&\IS4lz+tea8{s/\$s3Py ;mvY .#=y%޼/JejRp Xѫ "0Q:bWIV*VdP:d®7ͭTHFJ]!=#7H-$q'ڹہ Na@8Gt!v9IjbDs@(RdUd)Ku8'R \o?hY!@rAfY>AK9w=h!~:1!Cѷ *=Ð$}W8待]-R+"1얄:/^5I *ynhy辤Sc7hM2Ÿ?In6/]޹iߓnұQɺKb)$_2UgKt- mЈ]RxV(h-kGE2/~Z1{/Udz:>^i<5n 6bun;\`b׌G4a$hG,S ?qG#q|T/UXJr-+ReT0?6 +*mdTi>3 ?+JA?2lILљ`HmjE@QFfě {k0^:_f>  go4<%Hڬ]UHV;7,r !E~ }y&:P0!&Rؑ窄_M(Q.s6n |uQI7t@HlcH1 l]bܲAMydCne4  `Sv7}֍D<͘~U<@B6|S>ÕĺD -OYaL{F"+'tʹ?~__8~6@hU\JPIFo'}AF6C?5Xf,Z"o4D;ҲHezGbpQrgVKR#ۣ$=K]4WLct{3A{o|Zß䛒aﰇiezaCX_e1bJnchնŠ03婖˜??uǢ[Kmz @|@۞LڠWS,%t0_cFMq+`!R0\ɔU 9^.BT1 M429e1tҤaFmߥ햴Obg QQ% !3:-ZE󉕝Эp,ndon)y,'v[#SS`R`#LA_UEFș=9u6$>ՈaAh {͉$7 >ӕ$Ⱋ h'} ybxz#L8M~tCWj+򢚨{s7i`L:vQ@vm7_e:YA͍42~9;.6 uKT ByMЍO%EgV7#IqiPS3>6~Gd0܈%WPʤBH<:Y0`m(PYfţ 7 nQ6QڙP2D#G6NCސtPdK2ưpjg CuU(+>hws{󌆫tJ^J̋-_Z*mphف)u}T(/ `mIaY"PO1Bΐ_[Ao;Q.P3eOy0[-A~y֤]4L9l/;MVd R\MX,WT]}ˎվz—BzdyJ5:#RǺQ6v-4<$S_~ϖ(αVEn9ʠ):?".wy[/c?J^9R-Ze (juy zmD_Bx~>v&$h.P8U,ZS*>.&)7);%u6n:af(U٦ͶC/q Gw*Û_-Y^J\ժC4:ww,܌g^,gʮfT8_-!&A.=i E(yhj@/ga 0:(Yn5y[E$] h+# "T Z=?˧Ϙ5^I.NrtD9t(q+(ܝz'G[GHOb)RNm; PįOIK7r???@}d Z_qyӆr)I7?+Nu: B"p<\T_} o #Cn獲dS^iXD]dzl 8a)cm\I՟eb1|ǞDªx865 Gf:rF[oٿVh?;m-2I&[k4/J.|sn񺼰Cc 1-%rc)cwBX>9Ų@-jnqtK88 Bn M1yE IBᛏRK$]AHn''{N$l#kRVY \H]fݱ"VY܆HĬ)Tf@Y},rL]L'wL#91o:+oz,]k^9CZBGfXK?{傒3Lnow瘒B8an^T:ZXWzG/=j ˥:I2k(Y41 D<OLzOpQE%Ch 7V=,H&xMh<= O\b#2z.I˩dӜ 1oD4,v x8Qw-!3,WD'cƆ)tƒVq_F`cl{mѠ<.E:STxB1_ܲ X̣C+0 o#zGΆG ,Vyߙi@Z)?N_w  ]+P28 8؞Ȣ^ (,:Z6YUЌX1(Tx`='BD5t .]t{ E/d<mp Bپ.xe_dv>i5$ 0@hC}]d"o 6+I2@'ʂ E8e]׃ ROƻjz/RUb%th $ܚ08' i_u˨`͹mGrGҘ,-JmIwkoN1# la;k5CT61ZgRm_xU~u9xՖ^E L@YByBu0a\}Dhf$2pE38߭(Xw3S~kC$ԋ&!cz#f,MqЃ &ed2-A{wfuRs;^'tW7$(w(GzǗb]VW oU>\`A (iIdpO0d">]]p'r= j"ķtk+ '>WG&VX|$ntaU /'7ڿOz>v̼I?5$#b9a&Εt.aE N'?W;Ae/ZђZ! XA6mdH81?LJNmmQ=^>ŲG& $3ďWNeAtc#bp,q$^5n$C% ewVЅ /Ts=KOD kocllh07&%IsDCfGb'6OEG*BϰYOHWHn~}KU#EtԢQUqm.($agXS9%k U 4ru+e&N/ҩbVIv4_K:f qۚԷȦ8i l$fn1X\pXfV׮_De9$me֨eًh%ZϐJ,Np0:whmKЃTo鵫&Q?[0G^uh߉!?Aٻﵠnr EY%(Et 9P;VO \r֤8aܱuMtϛqC:SG-SGU:۱$$qd.!xZ(:RoY@?/Mr_e$Sᘌ"F8A~l (ij0 Ue.lj;d,"@pGfF9_As?|1x x&HHis*2gYe'KwPI T /z0O3ؿ{WR?##Q*Ԇ?絍f#8P;BάnboN]Wψ0QQ,/?3fv|(a߀PGrՌ 9\&ʧD-xA#rz&ñҤWd&?~GaD=" Ѫ薵9a] \ `)$C?x2W+8gBD|՘%)wKE۷} 헇8 k񤽀y[RG=WqV!TGGأ ;TEX\8I_MHSVDU@e0欿02p_ JTArma)5zGe?"ɵ̻6j35"E:-B HYvRq\6o pbaJes[(ݥiG^X%ΏdJ({C ݳUBr+iǁ>2"%Z3;?X*_٣T޹ SX' t"1< >xYcph97xǃ"\9,c "!F1ILՆfYGgdp2 12 A3f,E~Ï6Wm"!, V!o6X h $["WV!KB`02P";:{V9Vg(^9\V p +/]F@>BȰω8. }4~EEM ~HUoFT%}dDn[ASZZhhwzaf nҼFw@3_?LX$<ԹRZQ~ 7`_Ѫ=9b.}K nj5Ϗ]P6 fJ+.yuE՜us޷aB.θg%h0I4s(RR Nyd+pPʰ4a$ufFd4"%M;c >iɶ]‡>Mdlc-qYuo輒h~KUb2κ5n 4o2G֣KikbAfLφD㭞 㻗3(]h1`N޷ z>[Ҵս/,Gډiqb#uXp?lG;8]z -\;ë{v-XcP }&q7[X E[J|,ᰩCL^@-ιq`cD z4Ox3\P,Y$lي雫e*M[j+BUZ h I{L  8 9Y.]-ZԁƂIXQ& q9GFZ_c*XKHѿg>" itDO@BɗC ק\')6en *̝Ѐ9LPС:FXH0iJu/J6-/|[2hRѕNZp$4|ɉ:i펀8{QjZ(p* gد_j-y$@08w)WeS;^♞WTɕOLτӫk͇f8Tx\VXpdGҚ:$@_ش:wam36ʞ撤~Q!܏NNNw,&{$w@)j~G67g%lx3ބ6ʛHՇyC~wT QoCx*!4[]S^jAeP]+lLxWL37|c=j)Lx*v8E.! )CHf$DmCa4mlc_Avq~%u]M7R v?06xh:*0cZivK@|})&.!>"`LOL|)bк'5SeFVd5;guk)Xj47mr`I??UTf.ymWvZ Ft׌X/<ۘ|tI([T/LipV±~Vd߭`C 7`OĘ$7ugs"V 0:JaٴK%Բҩ0js (`-dVZA=臀Lm!k'VJ$J9G@&>@c& Be#Ȇ0u'j2fuE)Bcg2Щf4 Gν \&(h;Xj .A[]@[ٙj\x"("?o,w.(FΛ2Qz|9*L'̾`=sbG=h>\R ,lW) ȫ9@3w,sRWC:p$9,=@,$h v_A7Z*rGfڮM,mU&h,q5$:>%F u䉔u.MŻXnoSjb T#x2U#*zpq4+|4 :G3^IJ?Ŏ%&ء2`oWKIsxXbHbs`SWVfXsg?F9Sx+"NiǐUINόa%s)BٖYbJFG Y?#!ўFչ` F^1EdNCq`*1ޱ4D`bPKch%vLM2SCaYa Ԥzb?!"tϜ5Z<v5)KMx ֗iQ,V_(~9bMil ༩b`ɑ[YizSX`S8h#Tp'toS YN+gBxLE*r2OuI-!}Zn@F1F@f,v.B6_lL1eyAŻ(Hїsى%r03]pI#`v~n!FPp݂*|VkR8Ѯda༪. ]f4BaF*μ;h7QTu;T*WZݥIuu ?I?N"sP-=-Y~ײ9-DYjQjAC[eoDs_~Sg'WyhTo"](/kTgktG pQHH?%H"A*_HL-xdt`)cI68w?c_r*#4}^0ㄽr5}NB`2jk пvpauQO=ޔC* U"]-dYAF < {d#,yhwڛxT sX\4co{Tq-[wdn=>vG;%]wve!_d)YȀu̧ W/vmK:1 G*U;@Y6JÃDo^b|sw$S(#.<қx[i \/MowDVY;f^IEfu-9_RmBZ/&wzv;aQ[K/Y HT3WuhӴ@ܫi(`aAs*5Jq8E([\,u93JO52\C(n Zި]X@]./!\ѷyt̖p6oihC`X8'wH0$-HKMɎ.ʐ'[ :.sndY.jh%~N D`?nB"ģܓXBO tutQ9ηYw kw2g϶ڢ;zՂfxE-k: AQRfn9I Nj HR4,鞼Bx}tTsG;Zgmnow֟7&h+rud䣥 })ͺߓZ@.! ys=CLM@)Z>ɟ%֓fll%U8⢆O>6n: Kh 1?ZF[|NZ2lnM# B;M裀28Ux9+F\_u$b(3 3 F|T. "28}A_Ux(YT, HFGv:?bZؒ76;#]k)JD:EKhJOM TSY}o~QYF~lz" 쇑b>U6zdBXw=6ceJ3!L.O-kב'_YsɉFOU^pV"(uk(Eq&nwy;IYSћ9hӷ[n^QΑv]X]}3Ww<,?e +o$\c.q][O%57Bڬri| 6OA^ڣϋE> pNjivm/LFCI񁡴|7] R5Td-oi"%xh{3ྒྷ kF_CnWfpv +n`irKioÐx=$*NX{kk0pPܟFoyEaEFBdwհ$dur}b5"S30wIڒ!XFٕYAA\ 7'<6Hm7СO_tpEl#z#N6>gw0ڢ nq8D~,?,эjtn2ԡZH"O&%{}w20仼y8~l}v QwԬ S_5W>'+jj:]"$1ޓrIHeGaOT66`^j o8૕4- 9UҨԿU111ܰv-QkmYJ#H^ZWrЎu q_m;xǵ{VLjQMZkώ~{M/ L>#B =Y%?3\-oolzv˫^GQhL7[߫i؉poI☡Bd+]D7M<7 $r'@mTI8$f'<;b.x(8~\+D=Tkz ei[N K&kI1yt5Ej\RReu92sú 7!OXJ׹Yna3 #!K'e-R-4ϔ'vLwǍg'mº|K*n쁣CݭUG^86ɣZ'Pa. 'M1eV ؙb8!A!${S60E;5'V cJurL&ՠ0uFPuL7BX}aK 49X~e&;V1#ACS6?T7}%Lޒ8z&(wg'k\P`ۉr`'OSw0-[òc U5є۫:ş~gʙԮq=’w7 #~Bru##)r̂Wg4zʢ&xZ_dka^f-%20Kȉワ&V7xĄ+٘|`Ibvχw(dt-&Xb8]] ZJ: n-pǰðj=U*#R%ni.ق&dɐd<[s.9Iㇰ4:܈,[He5 pP}nP.@SUkRhzTrn8<4c__4WB '.x+x5pMy5&m,~Yn,)U%aضԺ C`;6$z[M7Q k`*x;r Akc2@) ޒvn/GPd&Pwr]E/dW13rKV55j5F|5J*SeZj=rmN- Y FKs4k,!EzVFS\E1G)^X:YT X5%.2wEZFl?xwzg=6uLz ȗ6,Z`U6Z\/aKܢ2ڝ{'mm@b:qC. 1ΐ(996T~Ӭd 2YO*0Bq\4NuVْ ,Kς\<"+i+G߫d";KzQw~_ΉǾfp5O vm̆#DݺW)bk y>z;-#/+?Y5٥b8xdʒ#L *0B~g 7جf \D$CKyVwO ;|ss{ b\u&rM9@Eȫ WuEXHi vwJ,w$ o 40/~ƒUnqو|j۟ͱk6{xVzEH%l.SXn sx_գY:c_"6"q^]ΩXlr7(R 3"POA֚0bV3Ij}Fhe(eƓ8CI/ s4~cL-RO[GyehR /i m)Y,DN:Y4.ߚOMXY*Vy^0ko{OdHjce0jwDszw #*/CfK`3_-. @Yk:ƙh$VL.9Yݎ̼9 `(hݞ*]ᕘwqGLLoMMWCy~qV/o,~ }Gm,$1f| =ٴր_8KXR'؟ڀ- |vWv'mtwfhNvrGe)*EuH tP&eE7dZG;@2W&.\՗~(\sSV1.$Nr@7 {\bu2ZȐ7GT5Ao bmBr.Ee37PB vHp13z.n`kw%cc,\m@>ȣ0UiIM$>K<8Uul|4:AxVY!lqS5M "S 6ζIk/teKvO{,J:yj^{"kAMlEgC_&O<aF,cl{=O%|m,HBa*l_-VϲsiELFʁ%ǿo_=:AмOGOQT"9L~#Nݢ:=G9cPeS_Cp^_uLYd? x^pݾ|fC!ԴQ%kX.$e@eOB/Х} 2Tnf|"M"7/bhe y#75#{G!*ⴹ|6.(R]Wg.?bה1b'= 1}Q:Q ^ֺc #i =5L"Qχhnx]/=Urke*jz Fx\yO8ͼ9'(S6}"Y(،It+8"HB;v24Q>P|s=жY'cp;GmQ73,} J[]vʤв4f&v~瑿Nۿqk>zC]cm9Wdʹ0V(\!j<9i&C< xp`\;L ynEקyáZ2F&^~P*רT/Gޢe왆- ø˰3š t @Ș-482JR|zB\ՑlA8rbjBUVΑ/VSfˉdRGE]Ԩ[ʌ.v&+AnxOn9˫",rOEcqu ҳ䑎Q|pJf?%s]3IO;Dǽd5wh#g:zG˶m~,f=F=W@Am* 8  ki`PA4n ␭Ś/len9;V֒Zg/ a6>BR۴-^UQ Uij\q2`w}C+6=*4DGYlLk[O~,4 *.V1MPLѯgΚ= )z3mn鶋U4H&G-&I }W;K"t>7#tϣd"> ڙ)vɔz[?^졻pFn/d|(6A:[ae!?DJۆ':n3lj( L̛BCM:Nt'pRnQτ4½X\Mgrh}h{ul9v#r|QLj|BM$O˘y>}NKtvK>ds":Dߥ5"wjX &<2bUQCP'Id|1t q;;`Ӫ `ggEOoL'pzO$'變7ڰVπXתTES?m¿h/^&0;Jl_`ȁcEp;G;&.Fqj  ||n|+_;QCWA 3JO\b=~/Lp H Yyz"A@ Yq@}'?=> aU8cB:W‹[4N̩~%ՒLlG1;!sڣxvJV>pZzf G݃HڌRU$V `6"I]D>HaxK]PվArA/AB}4W6'dԁRJieWa7g*,/cJm9=^f\{~Ah:PkaK]QЈ-Z_K/6xޛl1oNʭ4w9 SY[C{5HFXNGAm!%ljOCS~\idրo痚Nђ* Sπik1Cðorb@%yZ1[ VehqqmSR2)z*HI/3`$z٘XC -Aa6X]PUˉ7%.¦\I&'n:Bf5yLNX!mg4b_0'T3UuC Glgv!V.F͠%quLPk+X.A.œd(t-[%8z*Y?Lp +,1B\ްKm-TOd'DήZl?3S̍2yn5وzK[A (!#sm,(+Jd!q1hYK , q2/`$GE8nH"ǙTɞ"82J٪oH8ӝ7zK^S՟W*r&'vl,Y?oooO%pUaf(힥쎱ܸhF"JY;Bv{=%[80ϭK )N n׹N9[3uп}s3ZP ,snvf,fً8=\紴r'b4x`H. y L,dx,:%>DtT"HuʣhP'=p Щ¤Vۢih_E֪!H( 6ِ&xKx8nx< a<TVW{13Hnͮ<О|=~d-lW >|y%uz8}y&wE=mҶpz?|`<awYc0ˈdFg$iJƄM15=EǍ*PQcII.$IgI*'%<4TR&jƊ>ya-]_+("ބuw_qzP+N*9@6!yn3E^$ JPp`qdQ)toTRN`!S~ۙ<̛9!!2.EaLVm T(o>JRWAzZ\. O V[wLGk!Jte#Y =/ ?Von@&*\smH 5PtdDŽ(uK'w4baG P|HD3ﮆSm3~I nQZtBhر2=&eE [5G?| {6Alg"1[ЗX+QWx%[̟zfiR$"kuy:(<>A>J i,!Nsk9,ǨN')PPnM2z)@tb4 '28GCX9X}Ok[F1ZBP۵{1oUn392ޯU}U1+ltzބ"D< HAkq%[ * Y2mX^Tt ҢR֐_(wF5xn m jl28vID3K=#<7" ޛ #=8oԽ&L )!,sX)eR~x(X9";;?&  W?=rJ6l=xOMѿrA sjvߙ>:`}>l3D1*U38~>qrJw)>F"xET| Zc%fҮ@b2?qy6U,ޖ4s~jBbTtҎ'N/ãۑy6pEL{Z2^Do)x-7ny)(h7V1M;sBՌ3;s*7`\[C]L7 YꌽK]=UK,V6{ =po94S@aG^%!tR{k !CUi&N=S~j@y0H8M@{r#/TNd7l.:<)&yL hNV 5Ŋ\H ー^湭+%<픆lOS-w }ZsL2:&rKglIYjW*b% !_2ހ_9v$x/mB(:;G+C_l*7`$Y}.+Z ( LD@AK=PETwb,L~\sX:蒏j+8z35_fwyT?fHQϽG!VFͮjF1iNp-aM5Y?{W4v@3 J!p26#c!)q.5ʹ EscI蟎Ԣ_$!xy' /%EV 5giwaHYT6?ܰYZH b[BMK[qU6 -k<2Ft/^\_cg}9QӺ7.E'~X̤f+FI;COQ3mn|j!mQ !]0C`ʭl8K@ (}2;fY- &p3~w(O|>Mh\n2q@EA2Т෴.pDu%0#/s9P7X4[},jGc* dW6R&(]P4_}y xģA+*v6R]pF@.'ڨzXڞ(Ldc7X*<}.txJV@ol>ȷ@MYF#TrctmԹ'r\=hD8+d U_v~cY/.fz\FsJ;253XN tMOK"SG1]^ZlQgbdgG"go{sga#icÄ5 my[IImZʼnXP%ɢNCeH)2h|?1ƍ8BT<'}Yԍ69*2MD }4}aub85YPyBk< QVꙨS`:S7 k\uБ uaS#jl!Fo£^"]BCgHE{?Q 7GR{4aѿ]j~1l89HNHpzaoh@ڵڼؗɦs b?۞yUzW$˃rιud^ QG{C¥.|f Ò]+֞6d9R9f~/ =43 etZD6~ 4L;ȵsF:gD̉iq՛Gd%:^patU)S-dՉA5L-gLAVa)b}"6y6E+Y'fjӜWG(S!JVrrt٘>=$ EvAc_Al˫&f6m2ӽ]9nH9)m$)0f>|p #E hSFa %{5fKhKc ooݜS E`T:OطtW>w (,.N_:dJ2Ns U,uo21wٳLܔ:Dp2S%%|['&`P/dZ{F ;)dvg1 ~;Mwڛfi,,̺)A\PtOXĖ홮N(A+=h.*XjB)yFE,`uAj2_M{ 13[Ldf[eE{xDa7&R>92/o~bZ;ke* Tz꼢ByW&O׎\4{C">^pc~vƎV zi?3`#q%^6o% rA;yDG;ќgyc]P*dUmL2HJ%2o&lrwКGjǃ ?é"*굙Z |^&6H'ɐFDK!,za#oXB2[i6hO w|ҷV^ƛ2ṭ *-_/B^lڏ}\^i<.;"+uC, | lGWQbuPLZ?lw!6áno}1KљD:bFp3X*mp  TfIK4'@qu0cz٢?e1%hЋr6V>ǀy:(^][{8| +hw-@}v(yO/Q3vHgi{3Uu7&*N#tg4z\zԸJ{3.EO^=F$j\17^_\p,e41*Xcc^+d~'|{4v$@"!P&/]~ }1(J5W00Eb*a{b ŏV[o!u#D;5g$C'u9xYë~74wr8ߌR_#vL?+hOy!<vwU J/ {kxyё}~̝V!btY lA߰vT(դN@!(73&stH̾e6΁|N,R^䀛f# L֙j|`8|@Y6+ k5FtS6i/[dD /L{T_Џ} -~m$CYa$/-.bXb!Y5Zm?k]ddb6U6Z𔈂v!^ȱ%$KĒhk'TG0 @w5˭QmSdAfF\0pD|fulo,\*G`Y}C=i_7PkO[";cSݾl|/ٍ<@=TK{,jvO&^K4qXś-$)xƾ|_BȎ|Phks:B6UqYh_}^R{<>̪ͦƁeMU'bnr.SʹN hGf"cyMڔҔ`?c)O EY3K!/t[I#* 쨱 {@{?RFEp<ȔN÷]wEu20$PJ5D,G} )hIQ-3*k!tz=r$fCMbY9A#:Qdž! j^"<׫3&,t8ӥGW e@*0UgmZi,Hm;TY 'FWE5m1\+ R Z9VqBg#7NF:')*ns4N\|FئߥÞ;m]. !j'cR+)'m!n/ }'RL77Bxy4s>6dB[m qAoњT#%B2mQTtZ9?Vһp_"FvuR7 G&+SlU>PK[i08qjhȫ[o҇TeWC[dxd@lzPaUSZ?M*/\Yrd@ Yb8ti/?h V%14҇ӫP=]-fcmn\*AK҄ZZi)JA›@i 6 5ؔb1vZh 99.|_Ҝi~w]M2U2pp@C6ίq37t N5lƪwkIoi[ c}  M4a_S+g~)\ wnjJ% a4fDŽڕB-10N"*Xf(;6­e(`ɚށ앪 611F˛sT(rw4,ٯeO.A̚cIݮp0sSpU0^jZ()E;ӣ-NaWPϏg!Sx@W݁ XZ]tp/lfgDd& }1@eBi3SPe)VT# 4f5cVh - f ?O ^+Ù݀n2^u$\"ҝosBQLyP^4҄9ϕ6ȋp>A29,qg0> [>=d Žm 6È{ǧî]ُ&14cG%$@S`խ9e96 HRY[EDSeM|`Du .C1ň|!Q'LW}( 2i#%<qN)#$̿`Bē&}%D_狗;Rޚ(TW4`5:RږP+CBF>[y}G}[ 8? vXAapiݐ@8) #T2;) ʸ/j.o:Y"Uuqehuu-\{r 9#K+MD&Nз/$1[GE6H! 5"gp-lz[OR«L{HC:r0PRT.J6mG_8[W[lr\UjK=,W1> K7/Kxv=F~σe!4|l5PIKebHU]Tuqo۵ =̛뾲5#g̭.z9Q<gI- |S2Y>8LL2cOjȘ-pHcD)4d:X}|qy-l;Lîןpܬ$*v<囪΋=-ېc$bsQ?<|zg{搏RL,{дzTYTP0 dsn0k<Z{T9Ο^8XP# |;&')X{ww*Yp`DEFR'16Új4[3XmNE۶2ݹt-݆hT!씒I`ە˱1?G{7F>WgAޤTE1DRHxIJTڝ3w:j/ ܒ^Zx̿i"w,jEM.OyZ4"Waȉ|rB pi8銃I B#0* 3Y *^BZZ]_fv%I̡Wĵ';ؐ*m}kM16 lҢ͞]iߢ"-)2/Dmg%f 'n$EMz73 2#\P_8ULԚR"qw".DKӽ&iNgKv%ʖ fP 0_!,}Zd'B\LXB1K3a#+Y\C(74 ǰ$f@ 4D+客<1"]QIwy1M3)?^Uwt#H7#ڜs):7'iK5)(cLY4Jm%CJgg WOh wե/dٸH4(Y6{e˱L193|F.q/{͓QeQ,)}uBqxvZ B/CA9G6KhW.b[ˣg;<"X b o@}KVUK5'E+/T_:Jϑ/7 0Li(+O]rZ& &G>5tN/9)'wtLYK8zGcA[BmZu -hD+YF*ܦ@b 'UNaٛ;N9؉*)x%|ÇUͼ "PƮ'^wX&3[@PB ǢR4xWZUQ`/6`I7osҫA  +,LWH~&F{L@ʘ@?5YNَUj>[hߌC\(JǀKzf lh 3\,7s0%W+Crw 8<d-|S?pRPȵU' @((h-H sw`KB~v|Xg`ڳMN;<0] Hf:MfrNy3 2wOp0d e 1:3 ce;`>%P"ᑢ.dŠe7 O9 ctshI`ɍ4j ;}9SjJ1~U#c3R櫓$?eɲuIO &h釭tA-0qsij٦YV罆NWGL%Q*b8]'8i]U)N8Zi(NicG.wZ4o`"|KP "V+.j4K 1;ANW6|[-HQxpamhpQ chy+7n▴w@#邅&-4MS|XU *$REJNXρHiyH4S;%=k7>Α?gUDVi ˽bh:"VZj/fS^2aG9F,\؝"?G}?(FJ2&߽(5Ԑ&cZ$:\sltȚfa+fUAώcsS^%6O V>elճN3tǨ$MAue5nW]W6&SCvcʳ&Q48 Pu-2[?@9u`>' DAo\'>$^NQ`&z(Q|d[xrxJ@Kr#Be,OϢV[.`e9sG]+skS}oYz4԰$/ WՇx@.#s'*RC.qwaDˇfo(f=xICΣ GO؈QE=Zr@L#,s$h߫c (tg~m䦯N>5Yy<C<&_L'XaڥT)n{ݔ u\?]Ik8vNhrh#?]5AFaOB,6]"\CHoL 3*Ҩ*9F7IcyxCHm-BE0Aѐ?W<-mhXժc*'lryɘњi}[8"w6xFKx[ȬLr4pqyƹw/88g"7QHn?] +W2 H@~VuN@ceWyӻ0w=*(vT7/xS;]#+fDv}KGw8q X#Ԥ7m]ChX\)X@~Re-RcpT)Vȳ$v fcƾ7\0`|wZ%T4WT&>Eh@V6HZ$nsq&B~r L:^i a$0.yT<$yxu=d6:G!߹Ar7M404[l]J44.]sW Ƞu{ylN7KUۜ!A^6A.(#z%ZFo9)AF'Gق ȓlWc6E1 Ee HcIWcxӂ>]~w P>l>re6I!l6#uŒ 23 _y C%"(U*r*L 1/CO79CFYn= bA;cG#Lj>r kfJj CRT6qnqh@96Uӥwr~ʚU^{g9ߕd,<}$s(U*Iװa\U6R4BMi +MPD&I7q.}I1 @aDiC$%IVK{㆐ݙ(űb}6MB?x9f% ~q jӵ)9:gbT^rcL`3`s֖ VGa=n[dx%  kJa0087C`'ٽ˸;.JifJ543@I~z1:,,\=|/ iBU`"/0T$u𽭂BnTsyobI M5(qݡfsxIKX7"Cz(oaMnSkD`] ˚ rMh ո.v=Q~O<!s"Ĝ@hšep,v1rw&Ȯ5t}O+ej*0m.\DsXͨ=PS363A1w\^͹CŒ@Wcw}Sw{6jE ^Vzl@{+^Q ?l39&:1gD/l!Q~P!EV]͖9P,@q W[.0>LA5ubD 5x 8n1mhv5Cy61yu< zez2Tjz\|!K^߇cxN΢wFmͅMt⡶F<);Íǿh5JnWM!gv)"?NӤ#:$T,@]oO@Gd_f jbĻq,[$9XB`pyR}?KsjFrNqbh>I[#bHsMVCM\]\-@" ۾K_KkBAqTN8U,jؒa!6:%#`MdWc70%_LԶ}QgijιzsHͬv;̺ΐ~N%slz>*DG6/'lfr&𤒎doTƘ P`n+Cn0z>i, F=7 qx- Q>Vo*U"K>+ZNi,A zNō@UzG"i`H+0h9>c@}lT"S0smbzc#( q vow=H~H"#og fc2KMn)2=;sX\E9@fPz#.Qt]Yv*ACg5}rSA׀SV.ΡopZLQ(hSgxkP/i0f7Īx%rZ-x$؂Kg-<8 (8 y{eTBbt 덳FY vUeN@+d6/Y:DG>=IӢflk,(a$Jh{arCt! MÈw3Sd[I"6tYi'Ӟ&S5c*Ea8+!WC#>t녃l2l '!OWCO;cS=Wh#;5z[3*uYT5 W*&/ jMȂXTm ylvhמ,\e9[%ܤF֑nT&>hMO-j/źpJ)[hY$kKV'} ;L Fu@`d­{Iyodx8a9*Ұ{^?B yċxٛ2%qO cyodg0.?4`(Ԇ&s`DݭR_=gsz5;[8 A x"o> v>VkFl}瞽ڇ.:jCccuWgx$;. 1rai f3ȹet+,=뱠FN[w6O[G ɖ/t6i DߎV5='UZXbUzn;t๋LX㻤k)NQ݁څXr+K?fv<\ijR3̵U%lP՝?RNoM#KH zd|-!Y ~#BZPI'45`!uTgY=nwo2mm33Y`z[|:=2HeXʊ탋n(tޛr_GX)+ .McoF>D*לbĐEJ:숺֔H0W{_⠐ BA}?nh"ꏃFU?ٷœKODt  01 *5fϘQV#2={.!?`}{&  2N`TӅg*L', P?FM:rc _ "Ŀ'FS-ڭ8Fɋ-w'J!Vn;\{7X7xyAQ ;}7V${g]^I/91 ,z$taSފ* yhCΜ 0{`XG@8ݚVn:Lv+A *;{],RXX\~&xQ%e!# @z}ďIމjxUT9ʚI2!_1j7I%$aVUŤ.~>ll"+J}oq"څfzi ^Z29~ڍsȯD:ݼMȠ.ptKu-&~|So>0 Q D6od@ѯ[t_*Pm.,n[:)zd- 7ZϴnmRFˊmǥ~]-F!r ARxs̬iP`yD%[ێ lpC|3'Ug: *>ThG\/`IƋw*7Fܱ_)f$if])0 2,^凲F}HX),^(1T+U .tW|љBgPF9mէpm{ZE )rg{q+,JمTz'B6CLʍ^V+^94m񔫾,Q: G~nxEi`RgvXFVDQy GE.I.mxI>;D:u' VQHyICծVw:l9IclJ[{gv(Ϙf}SFo lf6~`W"0m|# Z|mיxX:#A*2LȾ >෋Nh/Q3؟1HEY3XI&Hk v18+FBڎmub}A[ k+4yL 4ěc|VqI1g6.ׄA >%UxS)$`_3 aC3g#U2FC*D#(قdK#Ջ3"Qb t6QMĕ^6>AݸPAaeu(4 =@U*o-F>uFaPFS<*yP&9{4G`_zb_%E9Vt 눢JT<%H]&\IXAzi*B毳`Lz7@FaYCO_Au ?Tw\h "$rR&Q㞬& \?V9̣^l #&kC *qbxgXd9}ܽT-sשJ<&!='ULSj.ĢNkqEc]'R6 x{"!_]|D]CFF]ˇP!ֲc>4G,}%ߢ\P;{hNրI|lNND\S8Dn/DX ~" _gh} fAYuswt Нh2`A= tP|7p8clE hTUHAf^8KI7I۽oJSF+ǫT uIlQ~i< $~J ]Nl8ݍ:-5qUn1XV'c,/}4[0O)-fXT>|ʊ['nf֑eZ]&2-q RQ !0֍"+w2S%ٽq<4gX0IȆ>z=jyaTOEd?Yl.OKZ[,OZ 5 AEIhE57% OsBf | K~ @[#ťC*6D/G4EPcdW84¿xLa^ }"kT>]h'+d +D9U%\'ьS'E:"7l69EryI4uRg%g 5\wqNe {_N[a/EIhAgztW]G;^ן不4PjʖGY~ؔd}.~{(Tc A*&f!u4aLc8 ]^UVlhRojquE$mK2oO|+Ņ6y Y fB7ᩣU@a Pp$LCL3yX{.1\0FO1'c/9@1v}ގFf l/#PgsSIB{i"@M2[Z.#yOlHsPJ{N&Ps}y B\ĝaNfKi1#JD;j$G3A(i-3IP >xE! Utn9V J%/o<4$E*Ē E6a”ceEMm N+qGrO8z$0tR~'h-ABOR/9?g3RvgQ@嘮 5__lOg-1wr~}^\`H0xC=i)B&1\P*#"]1bL'+gcN^.R.Rz&}iR/Y緽K^hoCaRbY twGkP ZEN7E+<+ 4GҩEJRjNA7=SၕKAZ/oKK0ysq%IYq;28,fPH&VjDؠH)?8nYd,+!Y^J"4g5dcr$R r wv?8AXj0lH`M`5t~[`ũK_!Ab/*BL S\6'aMͯNFh[0P^qDbg .bzv}O0B2Nffd{2d?:a=8KvnrmLD9Jʺ>l8[Ap'i'2/љFz*`e*W4˭M !f%ۀ$\oPkd lHet ;}VKTxZ.a>g1.eI$ |nC w ZQQpWW `׻l_C`6"y"4d0BZb9fߙp.2mCd5HꜛKI`kSu~S*G{\R.eD¹Kwp`|I>PAj*,4v_?Tzh-M53`_ufk^aH%mzdR| =N,td2ՠ`*Z*Wk*0rn1Bjz}X9hB.zu-`_9S[q릇-vvCn 6zreS`vWxlS| 9ottv|=jCឦy@]5\m|}C|.'qv1XpQX"nN`Ƈ J5Qă*Pi? +/uJfBqM/uro_ld>ndrܝ/rhSeS 6:kgC רUWbj>Aᔡyqe|)v)7q ]huuyJtHa#_΂&DÍ׿T⛖¡oJ ,}7'<:zIz K$-ڲ 8\5]߃I,Pts1vۤoE>z ɬBg96R|yR E^4xedʑf%kRgt׮w̙'0 xs]흴Y3uyMϫLM߲0JZM}#y#H8yYg7} x~ +\7z`ZpآwK-`XBQi!(e~)X{ FV*^MJGo8`x,QP|iצ_Hr 8IH\-xr{l]recDU=WTfI`ɀRsF%O jmx~ȘÎ$G'gx&:b5ĉX;TA|%%ֹK*qP| N׀ڬ=Q@Y˜AސJt'|Cjߴ*_ *UA*ce3|& W|P_q* s df 0a햔Þ801i}h|/$3Y)4I\|rQ))>;=u2({%6>! (a弢 6YoA6u-$ɺעg^&4}Td 0;YwKt2{Gw$֨bOC\}2>W-$E(w<8 rW7F9|#DV.tM&f sIJ3О;0 }6Ԟg}tb;A7Y (ТBdd+`4y9, T>}@}r`VN=/EOmjҎoMAa‚^a`s;.z&ؖHG!yO\]S"Cޔ 7g[9Ѐ/f.M@s̠3jONH`붿ۦΝnvn{"DKusfʷn]/ >U+5B^[]A1T`+$6E*Q4%wJǽ+)/Uv4ɲ PG(+\IqW#+)?J%cv\U9~T ⦽Di>L2֩X.d \dݕ0VpVykF zSUIo3ٵ#i}Tp7P0]yGJjh3u8*P{jP!RS)k f}Tu4y ֠O!wk6``y))IG&Lm 7Zoȁ Bd@=e)=tւ3.֪hʱBކfoUtYW6*̼q骉5h08T\)8 P9Uǖe^eWJhozN~@;_ Y0mL]&$ d.PJZ0@)񷑇H@EJN7Vk*-qɷ;V$ށa y gs&L4 `A,U{xLjQw]%>lϹ]X|r]UZH}H^n6;2qpcP)A P] r7~qo9$涴~m "dz-`hSRa}`tD IP<F Gb0G .c$!h>(6ʊWiRr9S}B  gc[> ǡվeuD2R6V|p%,m<c qnGS)F.hsN k*QN3"6x dFE)ƸB1 V~y|-wETjXecV~TZ C0{TI1f?za8 nڙ ܠijὋ%zpğP`̘zIt"8* !LEv׏^G*3rMjO;15'}%\ĸ}԰y_yo(\rc>uu!ѧ #8G6nxX ؑ0F|mj HEZfw :0aU >Ru`fF¢%H:_щvgMSsDӿbms#evV9$tx*U:!-qr?3Yʱ^NcX?I[h%hIT4"" FdG.V.BشKf^aIJud lK.R|dzkt.勤9<-U.:_]P%/m듶YfSTTIUDS =ٹ#EmXEpJhaoy0,rtiӒ̆v?&!gmf_ڧk^+FezL7'nJ9RI1Pf.k9$S1#E2gIVp*fW.JC5w!ngjq?lgO_D]sZU %筈ț6Os(O u@g)&z L ޷S—&IGL!IѳM*zw Tfٝ1{rU=Vqb¿mH<+eT/ςXOD z 4ȴ,WšjVƇ]$ΖO>Р*|}xw]"J4EQЦ)Wg]n#y@bi7$&K6U?וq2sp F! jš w {7^܉LWQ#S+]xO v+w}CZ>]O-ʂ/ .:ASb9ǬA~Uem_,J`3~B;S)2"pĚky80Us } MBVRN\6aSbséZYQrMn^_#TY[bWO<zwuCm . QԷzF vlC9t}p'W>[7 zQ/Ҿτ0Z<,UQ..(X[R(kt=" @|u*%YWqIApő~U5p^wor: lf дjAR*&eB&Ǎ !b9E"#M\%סF]Qp}Kw [. 50+6i!61@$fyK u)KdP` 5p.~ G'׳h dX)D,:i] 8?o0?uG-Nr+wɂX?Lrsa<}BJ32AU;[y뼥tgnQ EkJjE@D4sBW1?ܙ㠴H )l3Œ!liL}$Sս=tP,;*)]i2V|&t\ S ?FxL@IOlR^O7^,pE3jcD-V5pk\b;mmG S)}<*MtE Dvs4,K[;c5!cfn*!zxR׏5[bmO U+T,c*c#m-` :%QlM*7zjK0N|> Qkճ 1f>ld2L D$.$!9&+X7V(D嵅_Q7zydR%[40+}=nM3rfZW嚪vj)m>C` ]Zoi#֑!}__yKTA [T(uTo$`zL}.Xt/2UV㧱~V5؇.or 6ǰVpdFpC1QSj+Ԋ1mq05L m8*ɇkW\Pl k(`Qj8oG8{Ra1o1q@`yDZO*FVzbCM(pl bR ")yzrB.DLa5'pEƍInkLhzyE Nw΋2M`!޴˫I?HH2H&Pe6q^`kQL_d/''v7UuތBfGmyȡAku%&Aj(jVm Ur+Ά1,O`J.c)!C1v#责d~w{u'v\ [a͹uz3Kʋo&Z:/dd:_L3!DͶn{uWV-kp:8? [ `m][ d-˾>#q OR'07N34{# mWbc/rn8=ҜвbC- $Jr!ea~hS9 tcܡR' o0M'GK61(㳦Z&ྌ)q[%ji}>f ܳҨ(C[Fa%£ H{̯\+GTM-u AQ lԘm kKW$1JTù'lGZGNsN`jue-T`&AXNFGlj2DƐ,-|cIB/ln}y0t&< /;!✋^c-;̦ȇkPxh!u-MioiPuܤ3)K돌$o|9X;Y:H1"V<:luTI #Bځw;Js @U<yP$zԪ/F*nyt Yڠ&dL:?4{ ] ȩƀY;ЄkGJ7SA4xۭ\3D^3Yj6/X/)P ߘS& ˈ h] Ϯv6ob*DxuN@]/`n5,!)0i-'cg[ '~vQ} ̏qY_I4ݕHz?+1zqc5G;9 T( B=:/L(kf;"C!ZnYH+N߿fʗIn+$* 2c{bLHwԱKLm++YYग7}a-VN܇^2~ԺjzYƯ_oP\jj l\2=Glta=i*Rhrژh4I*-!UE!捓E|j s'MD–pG :W.2&]ET2u!Y6< ,GW^0]pmsZCU[#vW;2TVdMca,ꫂX>R.#$jE >P5Bf_;zG_c59ГĒzLJG{nBOTO|1*CP,mwWׄtPw"Wi!hY8u LKԈ=^#<=5Y6/(M[DMe.)ЄP $H􇕶rIvk=G9ɚUjS]\rRYi T"Yu@ߘTG_^iҋ%SAKh!YJ$>QOXԲS!C#JPD}3;v+Xp{%mLYSm{I6\:uc8;s~YySdk"KIь EI*u% 3D0:Z?VJK1m[,Gz Ca:J8Yy̪MdAerK,CzcÅ]Ν#oɐ$gs R$\15oLPjS+:p<o65s`?}R/Џ?F|UH|/3>REbA SʑM*ދ۽/,68518mH 2~1^Ij`byym331}yck[o7jP6ϱ3-:ecҘ3>EG/xQXRĶ3)W76<>N_cR*w;|>]w$#ŋ܆9!D|HzA(@x%R -| eu8(a gԃ)׷V@Ufk\$[l |<i '+6[v~V9y } 90>D[Ec:}n|Zʶ'uJi#BHSjQ 0}:"pa^`r':a>t7-o-&$ҟ<^i&[qWCK#p%S w~[NO9iuFˠKYӪaEV.ˋiF~t8Jsb:}UR>*%dS*/t:9^KR׭ZZQfnd )XeJ-*n50t[ioe[ eYP#Ӈ"r\AdPI%FUUUte325ßJ =,R!Yd#di.0i% H[ 𔭕NI s?$8}5k C!>Km=0z7p&OF!9H Bt).bpH* CO^ЏMm[`7I >G2<ެY @}l23uzb~zA5Vm0L1vU' %E~ҷFd¹`z+BC{wrNx89?AUҺjoV-&NT~tܨmXD fgz`=%ȏ'|lvTet^zL jBh$RynsH:`Սou)ߖݔ#5%ElÐ0k}G*5sWTƒN#~=:ALk+4p쮇˜ףX_u (WаUggcV1kY4uvn8/q8`8o4VN5E"o|\3*`,S$HO)/Uok?ACYVU:هMG䶸b}>yBvE93WI qQ&!絚R@ouLEVO'-XYt~~K2[\$;/kR7 Iز*yMmԓ]mU/& }T׈hd#>eg8;-3$~.{-$>:x~)dc['ҡlaK]"|ny21?>MП9L`qa-} {]GY'(y"yZy;@~ֱO>,XXaX!T0YMPCThAN7Ak*+e&7GbqОi덵vΒH 9֬$\u>>47W+g6̣|b˹~bItˍȿliSLH?u{HaF' Z4N\ s ONiˏc6sJ/0潝-'SQ)6&wLv6񎑙q/]L.$9=h❞3|<`#Y-Qp1P)ӗs'&=BGbj wU-kJ4ۀr)pHK񦡼.z$pcLw]5 ^8UB^;uZԥ @ʘIYDʦ5O.NA<_CdU>z԰C(mOҨkn28%7ߑ"2?%IGwNn=4d5T8F謧el {b0FP˔~J{>E v3E֚ @e3uT[B(fHǂщotw@M?~z(fxFScrd떇!)zh̪X7e@sAϣ`##W<޷@Uh 'LG&;C-*o4KgYG?_$ܖ;bqN(ОAu 6 Miut^̧+ rbJ.n; ʻ?n%m?qM|k-{& w<IĜ_;hD5a'd~ғȍְ wUh͘t;x8@Lt`['( h^ Zqy=wT*¤;t/rf"&+e",RWy>'-m5Zנ-MzÃ>.A,@Bãt?5ȵ}`S v'Ie-ϥۺiIL,ԕMm6rAHή|9@٬#a9QFLySQqOUW&xejHP{ 呟RjI+fsxŭ?K? UTCB׆^ ':՝Na7b%|ǁR%wbimGW.MY]1%O+9~ٔ`~yϫӫͻN{=ɕvcCpeU!bmiF#o6m`9  yK;@dfFAP­553.ݚie<ț|}lF>щ>MIכ,p#Owr\3"T4IM T 7CB9:WojF2dĽWT5|q pc>`,^ cѲoyұCOBD&=TNA1j{(-˜6޺4ޅXo5Tp`"OLx~N*q%Y$CXqfzU#gM|Ԁrg`t{/6.;@蔮jX4;pt?^?(.*L[ '6 t'uRsjdUE1D*o+ؙ7} |ЉjJc=*9CIj$CWRR! e*Slv(j|5XD=Xx doqҶ GSWp vZmL Lmf6bdi%\9DT$;{]xI)+XB닎v>߆rFTfgFq,jdseʹh?ۮAm3ew Y)csZH'<W` b+o&˸(VqIorZyDlmE T )@eY]~$4V$ލp&m{1nj?Jf_WȤ`-2@^Eќ´r`-'eK(M;<:+ :+Pem6C v).ƶW5X (7E"9n윂IJrSo#_f]+~ӐdJ]dT˭>r(@E̬,BNդW hkM(=r Xm^ ڦqW{j_/چ ,8ė>fLob8/y(}ʼwQuƟHw}hg`(6RDfe)xcީ!U6CL᷅ &(aFVC֓kCv2t7p77ޤFnvT\Xiv:ɧ ^rլ@+GQrvx)(g\1]qg~um@.ӳe1˅#t~(*gu۰>ձpHC2G$#ORKˊ^sŴJ, [W Yg0G܋ϐ]&آW Xn(uEp<9U/(Xp T.Kχ*vxbseJp'h\ a1u% ~Nϕg߅?@XVuBͧIV͏7`oPHWa'9[n//R#QKƋtpTDE?y!\.#|zh,1J~oX`v%;t~ GBӬPE-a!议1M=_W&U-ɏ}d6@̷mC)Mm!*x49o cDUG0 m{:Hu鑳$)ZE,0ƴޑGW P= l!YPjYRIG쑙c^%ڽ;&ᏘVe 1d3WO~]Nqe! @odZG?ٌ,l(%w]ZHemB%:#'Ԃ"| VJ(YU'-PqA qmN]hŁ:zj@<$XsNw#Eڂ&йkzIn}ux QMܕ8x G`:ڲr|L)?B2ڡ-]naB#G7%'ݛQhդG!=kk73n3AV^WYQ%\2f!q8-,_=Ї:rP*㌎iGe9UIյP 2*c|z˲Ӷ+Hk ~hIHK.I)+ttJ ۭ,[#0/d>Yns^ddK)H^~}  ױ܍,O99 L/B%YrYSx>Д;nF!{fQN TGQB$*y&AlV)P胁ӥ. ü3e.@s1D>qY Yi ]oH&P2 ULJ9%eAM˜ gȹIGhpE8h#%|5c1BS@]jG>c(gga@Z"?EglSqhAK, "*xuVƦQjUYxkA3biK, AgJG ti¡K MfY%RxWإJŻc 5$~g\!~Pvi.zR3_Y=!R}}hVl#ۨe>,sR!Yg4d66ڰyRcP~es@aQ3{xi$Ǟ!LEڝG-(]B>bDkTVu3 Z4y8 =5 MNR#t$~Ë6u8ݥn7 }Q#|2k,iQ5g.'mT&Z(-dWI aݓ~2r1&0ssX,GӤ5_Ԫ/rD K3zAMQA,5(wUHSVr>SJrұ`| >Emf Uu1籓Mm8c_wbhMmբΦ_'ϙ:]4,P}]SfBQwD $;[9j9$r2oJR@Dwh8HO"t!zq5è?dQp.`g. ikEΉֺεruUD3rX77fE@Y+(>!$(T;abGsaBB@,3ΆܱbB_I$ i@$w3v<4*(x\QFD`[FS5p)Rqײ(#_}5 CyZȡ锏dqY0aK=o f;O{@-^t留79QPF+ʏɧ-鼷1%`p4x(^S4BW c3wq*퍁,< =Es>ᓜnV|;,nqE$FFmwIexm;C݇o5 <~;A>qF}LC\nŬ0yI}P_ ՄL7gFS'2m`9/<*?vTvTIba I DS+,$}%` ŹsI'lb=Qd&р滫 X mֹ{8<|km^\<4w0D|C9 vʈx,u7L\X"1zjڏznHpK bkX6CKܗe:Ϭ)[4;4E!pccd"!FUA1KKt$pm 7_[t?96'?y?#@YKi|̙#O;?ޝ:0%KyӢ;9#UTzH ̌vD1'GZcZOH̕/f[UUmgbBNs)]-# XsL~Գs { {6yQA0.#֎-qupoǫTb<};yef^U1s-ˉ[E SE\*sޝMџi "; 5b> F*Pp8M5W0־)UQ:Wֻ/1 *hfY9щ6My8!g܊H'QlHF7pno_]fbOSҲLrS =>A[g-(BE/ݝE20cL:g,(]q&$14{b Xlsis_zS R ġB;EC6MQg wí'h =<9]Tqct[;Ln[]ڋ2`x5fh a_ T\D^PoDi D]hz`pBz*O.d>áҡ_*y:u?c$_^g#vMcˁd缧V@M;M}zfdA"z#@)oH \2 @zOá tD8]ί q<_[w[`tl[''z0.J.++ckWK UZqcWž.[PEQ5ܮäj7ӪÖ\eW#ꞠP>ɍƦХ4xHOgB@F$T.^] q,$ac^>Mߤc)l{ :'=ߨ͕ί?#Hh(clW%~~%x/U|gm^Dw6MQ6lC}R|{G !| T(`&u <߳w 4+Y(%^؇L@{*Qd a 2!+{ehj-\_ zL/د_J=5Y[^-h9Q~ZclyEd e$4y=}}~FKq|;m0_Y~M̓N`R,,d]Ÿ҂~i<)ִEOP\oq9WMx5^u϶S:S*1NѼb6eȘ?Ս#gDbOpJٖrY&߫!'%h Dhc9sE 5ST2. qMg`9MxFki)' /SsQy6ƑDdVp<" Y}&-XԴ_ ~>Տ!ۛ/muuc t2HI@G?- 'ԗ:q3&Wn`yi IFDU6=)cp``sATo}eʠ/s*EaZ' qVM:ho|dqX.!V[!1? Y=qylYcO{yQwm^M? @4W.eWQ,7>BYr;$ QGjCly xM}1q# hNFnE3/Xa81{H0Y[+xr foޜu3`։ń. :  YޛAл{ϩΈV<8RUb ,LL@3m`k mP #I^SiE*ɬN'5'݈cn ,/`}*~0+@ x^Xg$·BX^ceVN7|}7K:3.-D2`׬.$jS7Cpi$QV\4kF(]8'`x#K_ܛKEl݃pJH'^? 3\.vq/A\BWEɵHGti\֒zw!zO4'2ۀژ )>ȇcKvI+: _F1 &bS|8tJ>e3\}O}S_葩'i4S49=PoƹBW^9t.N wZ{~|.u^mh(#"Be` J1~g臙ayC8:pK[2.S~͚]PS/2o97K邾b O֑pFɝ UL^^T7$#f{ #VZX9~%eİ`wi~$mV!(kzO;?ԁRځ揭1l(hr7$n7omgӡz>mWF'! XGSBa3ؔ:-QuI[_x_=pmj4w=?Rf^hIgbs8|prx޼bwR/{L/]+{jѓL8^/77|Hmfx[Mf&r4;+Oup\ gEVYOdJ>`oMH:ВPm_. սa{ M z. H@Lr)x 8-)CxeSj+ OI0'@pؑ$ZVHE:01#~ F׳_f,A`jl7>ˊL+PhKE#ȰYx `qo}b fl7RÞqK~TmC c:!Ւxi]D7b7nkF{w:+Ƕ/[SHqQ0Fb{3ag>.3Yf`3UZYڣ[Ay5\PDx#=(6ͦ>q\٘~ KG xrUs+e:LkDj*J*lebgzJk 6]aD>ayߣ|&NF$\ ];3!lV]bc+W+/j7VmIVxM[sYO ?1ZdO/tEgN(RJҷ-OGE7N۫7ڠ'W(Uvoh`N |~zZg挷l"r„-)r7k4N$=?}3׋@dKf]j2 ` 6l9O ?z7F6J}+[p-Aϴ xHMߖ${; gb> \]%)-yg[1rPs snh v8*7l]Y=sTܓ2jL.O4| Æsf\LtY>׹"~r"ۥ T/КLT>uyabվֻ{.2A"QDX'PVSLOA$ߤyguk*\{;žbX'='Y%{%OsDPǰ Zd7>z\1<{ߣ+l0Wq~G+\w8Z }#]OF~Tב 97:"JBֆ笯j 2E&Ԟ&K1V(kS7 #Yflw&"_]ٵ>Nњ* ihi 4,Wc#Jf߫vm!03 BIxwd=MOE;pW(2å <=(}E*SDGscp?Bgrwi#@)|2ӝ%9.@ی]9}'Cö`zӟ/!l/@{ٳ`"[LLnل7=QkA!]EAၟlj`u9E_c$$S}/l@U;Z>Ry,e# /x*/L"TLT3;Tꏞvovm-|-Ѧa ˫b"wk'BqQ?S.T9o&I~kAzPδspmczmڡFOj2sBnEdV=J IgڌCd->]Iz2%65)*s*b.,d$,'~jl쌃_u*K<){Vn\< 1wDN y$-It> J!=sT-3@8KfĂ'wp w$'6Xj[yήRMt7N wԞQ73>BְwZfERAkUr,D8WQd@!Ȧx`ͭry" _<'~+қ>#6&l$zQ]C{evI;_̬*{/-WFX=ސw]!Ӟ,*-hC)JJ>!Lb-fq nl_hߚfm|A l\t"\Ϛ:8ߜ/h/PC!RIFn@VW{LrR1g/n2<2P%3[بaDz'/~zg?I7+r=%F݅BjG!t{.=}Ӊntkd^7[xh@[hܵTaF}@ R0UiEЋl|rLee^sb憈c8,Jد"e(N%s;뒼C2ų Me(c>@R2-EL "4!䯭M3d-%žQ{eO͛YBd7?bMP Nwc_(?i]dro-:OTqO>Qe]Ax/]nF@Tz%h1i4M7d(ycqj xy FjX&0/3=|!X3104 !Rgcg3 ) OPZ Ob斴tPRЛs_JMVl@X[EY *dEv!ġ7G/#۪͋̃-WsU40sJPX$D񼄩ZleNf6˨ N&?ID l՛]i* jxu(gX@.]yKw9]q?؀<|5 +e2o0j1x|PychoH׮~0, "RJ!/RL?_DsHm*͢,A uGĉj9ڢͰ~6t;jM0PF@:*gwYHI|6XY2.i׼c<|˱&4M@r^K@| !ʒe~b>'."Z CL; `im. ;QrlD/佶a$RZIv$MSuQ\h Ͳˍ]83w3|[t9(B;u"*eSS?",*A;G|ʘn q.\]SÜX*jŇEU.=)8BY\)~{k\^?fG$BAbv-ecO/ir]EWm+eYwT+"ZvBq܉RƬ.^BWdsm t.!!OCauۃ `Ud%^Ub *R; Dq%2q~liPH%f$`wMhMۖx25V<ȃ#׋BE(vAAOwo\0'ĆJ(wuޑtkKྋQ $/0YTD OߘRcƚ/0;jEupMOf|}1_k}{PFeG6ez'ێT-pמ*F+l-kps=~h$ }xհD.S;ު${=tX|]3>3cpqP;qpN!9{'6rw]+7Ҹi;jFjOX=$fө"QKtW.dn=jVPAVՎfJlÔ«4v #LU>J!cr#"R]zEiĀ^,4o>iLVթ FkZq']*$'m^ H}R'<#֤'|qi#s)??MEv)F۴pL?8v=p]Ho,*SZж"{aƶ՗ogtf KJ*'+r^2@̣Y2dڝJm%|t5ߊ݈ܶ7*F%1' Gc>^׿Pxc1=GQ.2QeCVKVC[8sH7KE: xOsG}tG+^X ޻5MPN| ̊IZ#F?( ZCо4AT:jp8W8`DC{C{I"pA&B7%J8٭h_.1һ-cl>Y8Zl2ӽӷFeMȊn"/1t8J's:1zޢME>;5C:32܀8ŅTSEAo?TO%O(i˒KkWV_UY*»; rZs!0Pd&O%6T Q} ^H(t`p{F6 Wlx~MhBOU u}x{ lLG(#MGq:'nPϟ ( MpԂ#AhqOVN;[}Fxn*,'V9e7W[TyƒUؗ&Ro>q Dvmkfx׉ '8sywĀfp=ױSs1zM.9fƷ {U$&u\V)GE{C,;=ɀs&PH0+ /0~>W4Ky +5AK@n YR RKO.Oq3p{%5ā'oOu[7.#{^z}t^ws]kbt5D>QܔIbڋP^*gt.VбO)\1"7[!K{|Yِb}mC(7}& 0%&"E'+IE, fع|x#'dVy-Y\4@MUוPsݐ8PXDc!҅w/֓5]w)fLi$3%_1Tp0nGS!DP ".tZ@G6Ri[_۫gNv+q=Ru/ cfEjttXJ~]TU:uY\Fq7mPj25-~t }3Z6Ad1l y frVn5I =Lg/xR霰:6.)7ʡ^%]^06<7-?9"̌.Q,r#j˘V$`*Pe9x{/^d˺oFc o}zϖZ]\8,q07` Blj U$!a9}qs*!Vrn LM'a]o}3s߾92j+ k>+&/mE !)?!.G5~>΅j5e#L(iМ f b&kt4-i}l!`%ݫ&Hl &sM<¹~q>lfsMiۗi4ԃɏ%H&[,5 }i;D^Ģ ˄.p6-!Zrp`/t hn0nuHĚjDiΉyцEA<8WBlt,+.OfO'BҚEe? u\/3_r{Xy Ўr5@TQ_) HwٙMK]8{W;] h"?i ,UD rTӂi:zBoۤE  0'ޮ@s/K軽-],fѶbƂEPnDuȍc53MsgQ*']$r7^Xe}B@o ynA%U޽vpKIk%]a]֨|Js(ipwo`0ӳ jqIQ. ;],E؇k&M*yp݃n;+PdXOP0Hm#r o7>GE]퇗QnwnnVeJsGQT>Ip$19%Rz/&̯,0;G+$TT5 Ck'i>2\Qw0ՅdA;v*6y4A2Xl,|UYV#KG&)|?vR̋5BZ$Zs$|[~6R*ס+1[~MM՗ʾ"=/^(|nudyH6O"&&R34nܶ'c#T;]7V "Ra?t}_^+ b^@0\I'KVV:C )Tq?fIe;1D_#x_ELko&h"li@dH ]?HyZw_Q0yN*n"#{D⬌3ExC'B7ߡ F2m12#ŷW@ϩ]^g2ރzV!w3{͐pnBq͢oDxN&8N?46pOO.)|MN!$ne7csZ.-H’f/OV(+X?.+aq`r^=jag{6DM>%_2;gX32"R<|ǠeWg[,WBƿرE#uq zAA0ş#mMnp"䌋إH2+~rL' &>m"C3v$MLkO)̸$Y lsxA Ţ`&n ‚-bg4:kV,:Ղ,*ǖ969&f٤C Z6 ~7c1Bhڎ2'ŮVyJ~ 0}q|/?"bᆬH;UнZbh- `PBtwZx)(FD[kS졩hG8w}" fT'h>@b]n_C.qhoW ,ڸ}l6~2Iv8>K)4^ȧ;>.3Wt͋`  r&( 6zu.k8J)Mt8C5UE5: /Z) "B2`N􌖕D;U͡@&_xg?(F(< ,vݜGTwݨwYشL|w_·FmYv-ݱՉD60cnf5 Yr q'?YGKy16i"v`N\?ރHgYezKwu`,-9e8<' |PWAe~aGZ3]+2&;_Κ|w~v-Y Ug _3%_.(MZGb!R#нK] O *#m$5IQN\ @nU5EQ͞49q <L{Bfٵ\jӽPޱmUZ@Sϟ1+:hA;uKD;C`5w.mŦ6݃E 02.)rZ5XC ;H1)|GT _#gZ 5^f~ayEC=|/%ȫ{;-ƯY5az,>c)!ls~3mle1~FB5ʚ҉Wd1I enCݷB~(_ V_(w-:R(?Xd'd?ohc4Jw,3ژ# &{=?TD,e) oU|yz>OEYjxW;%.A,܌v0߹T6+ۥ/{M ŒNȆ@jqQDU7@!QOMt*+CT8k=0 }xu: 72u)ar50k)SؑfnxAΡP"'jpfbasH 2)mk0sAe JofAbaJ7#WR7F a0ҋC>D%V8(A#LLr x}pO?wzߟfMH-P,<~5N\W)3db W p;_ѱ U& I{_ ye173I3:sM{Mn-}#uʗȺ2$8j=aݎO@󵚈*ڃR_y߷sg3{J $kHYV& Baa/w@ uMN5>&; IĒ0s@],LB#]<"rGg!axRY4c4Tz%_,=IoS 4r ZwGhY Z#ɨf-v -̇<)r8Ø֡Z ƙ'um,LEa9_K ::Jc'_BaRD`:lTN0SJ" Lj!_[L8x'2fMx@P$l39Lc.2g|h1wj8|V"C .& Nzkl8[YWj{]?lBp$|Ȋr+6g8f}A~!񜨩RM|rucHJ,,X_Wbܤ\T3|CP]>GHtPId%?Wi_56aSӓS86K:?#aݎvv1˄[1R  Ϗ%4ڠ!TW_+B5 ,,Z^ L=\OPk3axY 0RD/[>sh~I9-j)jM&PML:m/UNI+4~s k pN8\rze_m4}G -PTJ%Fׄ[ѵ_1+&mp^_Kl=3./T|f' ?ݙjV5䀲~1Ox;|[|=nj+ n7EJ.ม& ƉWx=G:ܯ+c L#$Ptp[7n#ZWRtDR15@W?-zf>#KWA~WW%)&-A'+ۀe,w{B@,5muVi!Cݺ3MD]x5Օ:o8P28s:,ݭe4Uoe<7Z0!sXkjq~s*$I,I+2vLLrkvC@?:βX8 |*!@ImE4hæ5Ʉr34z ZZuJ%$q}^mFD?|s=&άEI`WϥƹT\]]ՓT&9/H24=ZpP]_[հ]Z%$PnCV&J, -PCz=,5I>>#d{lQ& @dL"*[|̏vIç`8Ϭ=?X?kVpk-y;YP>!x­+ĘT`OI@م8sKBeR[tݍJ>Y3yct/<[qӁXs(]vȑjZ=쌔ei_Ebss#BM}•po̥Exu| Qo"`%P HVsC C&_e`@U{-=!>wՖ StO| vM=OϮX@SKeJe}"dE!M9gk{ugeMT=p-TbB g;0YCר0uFy2ȓ㯈Mr.E왓H{..).)VZ'.V!NTОk|#TL"\E`pLhA7\y. 竉iw-u *Adt}=p-n(Dcq>g(,STZ$pYjf!W-S񶯨Mf}ILЎ ]UaWfdLoۥHL ko&ϋs-h/bR7~e44i. ]wٲyL7[ 4߫׫+!nɽ ""ν2qPT{%l){'r]FS~A4$?\a WdMq-0+υm%rV{ahzDiOɸ7d|:p Lh2hYf'F!/vn,m33m#YT #&yYcT @4faW>B2NƋ&~n 0ފtXFD,v?>qpgtt|!L[/(Ư(C_]ϱ3&w cSYG{dɳ\zXu?V\t)6!L]Dh5{E%?+qpXԾ&&H4{6 S{' 절>ͤ~%ҝ y-IUqЎJb(-At*t=8%[/6֮Be._Vw+uzA(,==>8Ym5DP Qθq\!^m4(G2QW̑pv)^Xv-jKR4w\hbiA:Ό`(Wϩɱt+qiz"n R5c&:RgcZg:Pa=`'>z"C8XMx"~XNɏ <9='pP3=\|b`oͅ אU]*ey57 ttLՙ0=J-o[gPbu W9uD MCu"%s˙Ǯ+$c9ըzl?U]Tŋ\5[z rQ[d 7)M]U4^rzBV1zG*}?)ec8GSTvs-^0(g_YyT-_{w;rdK^T1Tq1;fڠH3:!AZkEAtFgpuPt2ĔEW>0t|s]MEFAsw|b}yoAv箒7i*$77ACbBf0k`r}T2@/'3錿H\2h @BU 3."X-p&\3iK^G+k7g 9 QG$0ms_ʄ:!4Yw,6ELAF@KIP̌2"OgJ  y2/khdF'ĬBB̡$3o:.w4V)|)Hj6QcZJak]OsN("3Im9 [M|wt!wD 7?yC@J{訢ʯWn]5h&bS284wN=m~v=eNJpBuy]P:+^\#¸ԙ 73i7%ȰK~:]DH~Ei$n1,&&3RkOJ~)̧qtߡ;7@X/h}lt9ǀ6Y8:&Η(1ܕ*0^ ec><|I.ςESE97lDF,β.K 1G;=ҫuELhS nʓX8!t0Rf;\#,MI (EVw'A90[: 䩺X"i尘*,*Sר8w418FK/c=6?,S g ,Pn~CAH^eC҉o`3=Wb0 Ǭ6,6/=?{mg"W`*ćppF=}wD]plHD!C& g{|Zf+lw¸Uūjl!Iы Zi>>Wn"u+=L]G Lc14R ༴B/h<[}|}i9HBWL__0O Khvˏ ԣ_{W)g^u$ (Űv/:F?'TTpc CEf|LŻPrUh#(G[ vH0Ng/N *WC+LV,"N/|b ]8)CYj2Lxzx ڌN&,X1OȚ4)` ~N.I>FlY2Nݶ$_5CuΜx ^Ava¬r:2\ûT|M ߌZ3N=Vvq[sntgS_П2v=vUDZ'<NJd`XOB&pXH~/n=1s?E̋$ρ']dۏqL#N*Ue]OᄖNұ b׺&okA K-3kqz=aJRd8 T딴< ;s^; ~3OFc DD:Ἂs.VON90A܋I׍w*pJMEqI`xMŢvcxI*XeߚJaxC5t$X'xP^٘' 2ʇ[=` 2lD =8bMzи +U T:qj}rߏ2wϷ\=t-)?ִՓ Ff%Hwz}N;2Ftơ`rW$1C'G)=p_,y TAd,PEV88;u񏦆xC,T:Tk7:Ɵ8 7a4-\4~٘u-'Nt m8&83nX5R(Nb8-VoѲB.D!rKmpɆ{Qg-\6ثPSR'B=Xj$Q_>M)[8gQЍ]N,2A({U{E~'5^ިr[RTVf.m>_9n>\'}שce Y;w1i鎺cTnDiz*ݖqi?+<7Ш…d\^*+)[dd:{T&&iXD`g2Y*!%KZv@v6:Gv?* ;2Q#*,%`@ؠҐMd?lu+yj=Y͝2Fٳ۠/ZG[gEl L?vWH_e@)rs{u{Ķ[7] L@p,Qf!RFm)p6 r3LLX!e (ξX!u;&]"I| 8+^kS>eK olƈXѢ IMOBm Q0*1|CoRnH;szɧQSO sҸm)eJ 2]Ac%Mh\Rs֥"fsn3(;/gMLy]#bw.g4c8TQ<WX.eqw IZ|)G&[^C:ElDTwrg/&7C͋{m#=@#Kk#z6A=_\/TH'䓣\fs3tءse~Gӎ&ov|WZUd(1&p!69|q+,A@bDdT{6ƣ]Sټw=h`ʋᶭRjtQo&B)aվG,Ǐ/b _lxtOY7j^0kcFM vm%?+: Å;*IŒ1D i6_p"Έ&]Abu1UexN([dJ7O|f4<[UkrmsAD1 Y3Y3]U.@DhǸ/x~Y7\RdED[pb`#sJG(~)\۴d}g89]a blQ'$\-W&}'bܑ3W4~Nl2H \ 1f̽^h*<, WfQqI>Ok)‘Y oZq)xSSf^ A >AJTIԷ -/&=&ދު͟NQ[W?*XATq&hs)8`ݜz;sm-fdss9$gdd~'!s<`RGչkbK i.L Lr O>g~1Y4N>ˆ[r{T**-,*j* [6m9dx뷸QWJ%'Bm::Mg:V6u4o)`?>pr(ҟ5iqI(>$7N* @!xGPKOst_o4=X0||%ڱCui)ӂToSی#BZayRJڭр*` \{Y-q~αUKZjAw'Dṳ %(p=wp WuAF3Ж. 5W|/7s!W?Bc_w*h;K;1вY!fmtHt 8L-W BxI_4iK?N_2E] ب_y.j)RәbFHOy`&!KxXۀcը >ͯr?j@$;DIl.?U+grb[{>_r%傁T+il7C8q(*JH୺;f}Vޤ)f{٣%]{b(`rfu$`CQi.q/1.oty쉟יpr,g޸NKTk;Z[w}fj-B;zodrլχ(%8FD0_2o=㛄 8$ aiގr挜"}fCg(!g+6SQK`8W)<^+mxMO  X֐{ud~Yߓ9Y̕H [ /Cs⧂C՟)UFGB/@cs{~<eL#oצ-guFhp}I B,J3 ݻ ^f*k;Ԁg]UcB wT8@X;AjtG'_&*IفyaICv4x%p^]n.{ G.ⲕl{ۊbz4=NIy+?chmQ>ϝ%Jչ4z݌p4rEŃZ6Ut%-~9^} Ac0/\ RѲw%fRmc_\8*7Jv?Ҥ͌ Rp3TY{FW7So`$ו%%$攙ԃ^% P.Pwp6B-g*Id -]>[yq3BE.KO_Xx*;5+$J8׻ ‡jF` @ W:h[N* -$ʧ$Oϸ̙T6"Ιk_2lg'^zb`B1ۮU5x6"/_M6W(Ji&I|m#EQ) 5Zm@Zګ3ьa-%]3?ñtwڼ}CQFMBh@&BLeoUW1k*Px3֣ά0fT߅fAG e=uWaH'DHGI"ĉ̉8j TK_PQW,aw+oJBAnQYjJo%㰋oc u<[h@#1 8zx}i 5BZgYg |FbVO$N*h#MmG5`roɵPPl03)$u)&רּy?u'hϛZ gv:V/ۤ/#)xs(eT2Oho?Q(Dg@x̠(7C]]gj vEݹk{{T0g⵸@IVzv{؁.&JN3qtOq[=E)J3h ݞЍ@vd$`ɔLYЃxy-@@(neeP" XrVϡű^ PǭW^wD7Eze.ՃuPnaA> tͽtđ=Db1&s.ǷxC7/\oK*Q},&t50&:t\IL-Kwe׸$ޱxz8XΞZšNm~Dc $󍊶)KgGq2s؋S+)mtjda2%Ǩ V5 >nur=?@c0"\lS"dXMC\TkЛAY#qWKFZz)_-9P@c2_TAD+#=3~noJC i^ ()bLF؉\%D$EMa"gR CD4u ۵L^0%0f#aV3fig6jVG.9xɺIUX{$HxZT87V.xοx7$xa7sK՘ZJGMRȬ^^%W`I%Wb ^srX/ S3YEB.^ Hp enG+1`Էr+$`l&fpJOȼt\yur^PfzHvd9NH|F,oT`Q<\:"#јATW#YdN*OL=J,^;^Ic+s)Dֺ͗B%`VKlZɕ8Gs䤴 US{R La{q)\Ipb~!.H.<*{%9p!:c"2I'xi/UC{ޤ'ůҟu7B) [Yih!\4L0+AnG1) kӚwbXl(\*76VP/K5chՆ!6_RT5C&E"t @F9"8ڒ #;읅A9eDޕL<)J9O"j*h7t}eWx5AZf)p],Rљ]M_Qgha;VUu_{rtCr˖K?0E%,QkeuRƻ/ s|50vsoY)Ugg]3 Ҹ#~cUJ^n {R|S(|>|ȝo:E C}X!qZZiɘ!Ml)X e)@Ba%DrZvqy٨Q1 uχO|b{Dr6 t3e#~C,L;PP*c~$*|6Cqìc6Hy{jJ,l6>;2t񅌂hYnqFy( K7kJQGH̢\8Jc$X:ʛR[s6*~~'5|*w|XR=բB^U AV_@!f3ò[یxzL_1f09H,>4Hh4_VM7!P;WU;JB92ϑet6+wshY geQOGG-WN"b::*czwSoΗFF|Z%O6x6|g]_͎NhxXY 9GEwC9r!G+ƧNT3#?N27hz؂]Q1Ot:LD^e/*s&-j#֓Tc1iQÃmDsYZXݐĠ3Q6QR7ܨm{F@[˓ڤ8>yuWRy3_q#9 dt&CwRDjdZ?':"w_QN㚣x][*()V|rR4~NwnYhh[\h'>K^״tz="qIW=fo8UʜHG!UWyȓ͟Qu Vtq T>1h9^"ÜEc眼,LySLC@JpeEw}D+:8S\^j$^T\ bYZ^QE9WP&ulOiEoݭ &OLsUNl@Ala1mv Hێf۷E{!’vR = S`e@ ky"V6hy{=AfH3 2QӬguÞrMW'_@ՇKuF k#he6dC$))BG?<,ZNLmƪT" ڎ^c͠c"Y ph:@7meN8j Ρ/JmɄ&R ud~5A!~s7j")ٕkcqg#~> .'ze K.̊cBpC*o{ЋMe6e^}NH 񡷃5[zI}qvM#&<g]=ub7cB+D Jf-_7z  ˥ՖTON q4 =äsa>&t*✷6Z=\P!^y,zxQ}.LXDZ&־v@ORLyDxKjw޸8u tt4/P&ëyE ߦVj0!< B1"]A!iv%jU#h#BK2o=SN \W&Jg ;%昿Rv5| 6^+k%ܖPm j9RKj|"Asz3β+lmG}x EYUi &9  klGLiӃMk7Wa(mY -CRATôi#5Ì]oI/?>[6 *H-u !sE>mA??5YbDHydt]3&ؒḨ JhZ o BO-Q >Xqr?ȗ[m/vG29C}莓"SB{v=a:|05![Fpkܳ2k 犧2ۛ8p^uSvkjn2$qEr {A&}¤Fe/ g%"Ww'umhW‡&c~H oGf]=v+"))ڮNp3¶NǷck2UeRF:&+D$mjmjGDSo<ך/NppsCcWY׎nkC4E6B^ǽyV?DWM$~h m`@}G- /@w'$uOTeE}OL^{}8B{Ӳw@<W198i`Ʊ>)<`tSZbn$޾@HþA 8ޕR" \ҌT35c`$% oKG'"Ndy*j]֧Ztc&82%X]u4lǪW}sQBF# @u$)(s4of`g8㗏L)NH$$ L(c'oҊ,Z@qWN!L4\l馷xOI L~j&8![:HOqE$EDV.OD:%d?Td(?wq,(v:@1$q 7(Ova,=c>>Z\'ϱ'?=;I`YB8S[ V"L$gswD\YrjP,4GYmJҪ6xq­Jف\]| E+4v23?sEy\>f)!@;hV0uvX3JnРQCJ;g3Ӄj?P}utenB6ln Թq^Աè)*~wtaU Qr /4dX_ 8+]pO CcZηdC&2DY&(iRHܽodT]7 _,yyITqa:ёCAH4"|+W!r qC?7%jKyzCdP`YLRКOWkU` 5L4k,$yF* ҴN-/ Y9KPQ6F`jL~bPBAZ!@{ݪ4 |Ϸ3On} @"43([”nf=eDu|`LTTMq߆ h0 [Bl SCS"6Ew_BW}p x/= { i!:/tꆚ*ĵVʀk {mbqVp_n,(g~/1˷:xBqNڮ=ވx| q_:waтuXG#z-dR 'H0 >cv +C6nͳ)AomUVtR&CũL^xFyBj+&5B=!ڨdq.Q/>Rs,XVX TQ?+[rfx(/gSNBCK##_1;AIɄP:RxO.?im8ӀfX\bbWC(9Ei-BHܚuVq >tahd)n 4*/lhN aD!Zb58]JJ(,:vPlbyo)ްTZ/RӜމUzRe%7g3 vhfCaȳ}}CJVx!^_b   +gs?z ?7D- (߽X' FrZDHi0' Y*`Xaq Hщvb̩_Չ>=/m5</&6^-z`Je< ]ӵrU9Wݽ:c-QfKw:y_kl,8>OpP7q`U͝[N,ذҳ\3P0Zrn%\"$RYuvwR|ޕ>"q\j.|T2P后!T8T>Xvls$na"ߵG0( 0%BJ$-7)G} ^RR(/FY$u0M64z6*M` υէxv ^ñ`_fjC` 䔬U摉lpUػx#As wn?U˧^;Y#yT(_g eA,F'`&f e#lF2CV{'U֠GJ@ X1Ʉ:ЇdC*ϰ07Z#5:|#zvzb""BG796,?ȹr/ n+J̔W!|W$hi6s2s?"Wm o73Z|b(ai۝HBN$`3'Z ůI>!T0I ״ck͖QOF{OڕPanR5F|qTpu"ns3d ǵX ,K7Kz&̍$Q2IERl'ڰU׼s6YpgMQ_ < N ZGQꨢ7Nm6೔&Y,>~#"t^i(bɶb'茙7$7k4zJ# R(OI+xծG%TZ6jDϬgaD_rtaNHڱ|qW$~+atlZ,3%TwV;^;;CۂYQ*Tw[%8zD>ZP/#xrd2f޻ v_Ktd7 =DoWH'b[2IG`7?{Ηp2XRT_cAj~Iȕg@/At78i@lLvPumZj4ZyղRPik7H@!=DX+.։]̷7T=v[cYgWeQ/ߞ<}dV#Z9I׼s8D_sεy= o0SOOؒ=ylC؆$He)Y xaҏ4)}\ȉVtbp ݱ0Lcɲzi|z}GRaI`@V6e]É:laӝ^Id/L|=yeꢟ> nJا΀-5l(H6]MA7=GLERvqH,d~ >)Y6v԰}FZG]>$@Z'7 50cFsλzq=קIHLGrؔtP='XK@vDx:j }"PÛ.b"Uz;n-?PK47kGoc3m?K4c;:JYWͺ&i\4禠f[ƲOF KeP&=NDڍQYӖCagC*д'0 yHg'RH |XOgqɵLO,zIgLѺꠠ[}[sTvtb6n?PhZBm>AQxCA?ژ4:EFԛAvYql" ʎׄnP&%5|xI|pWe:]rBp{XFuCjd\1Iml){.-^)}x~Ї) }A1b`8gATRp')7ѬTf-Y@pXXŢD.aiַlO^-2? dNo0>劔Ǐ Uଙ0݀ JAj1jtO8ư\l0z;{-?w㬋 o&N=Xow>eyAbgr9X+rk#`k N"YpN3b>Bk Y%Gur {~vz;K>5eq$4+þouao$R@M VM[Id9Xf' vQ)g6K-a!j|a!P(rz־ݎXH*$@g;bDR JP{*OPÓ3XЗ8:g H;UtޑlيӭVm(.o'n`dxWpΫ1Qg.{.@#q DoNcXr}Rt,j|]pt NG]Za_I;5E#q;[38]іFdE]=d~8"UWӢg溚%D[rv/Nۡ.DAgd~(c Kw\8>I,1{9W.Qqk">eRش_yg' _Dݺ]ʨt0k<Olu>>)S? ۭB̝a{0t_CO՟(YV L_jq?.l5'uLkx,}لtmר+Ft 8bt aT:o:"F̂pGs$$0TЍ 9<r ]GnGOeTbW 8X' ~Ow|c;cX*8TlUpir5wJ}3'}hڅ\d]c1;c;SPRd nu;9N"4=Z6cTz5Y){OM$%m)KWHDg(#j[.[M5NAt7b`V́b`/͚Cyީ\p}OZýM'.):#$jk S\$) XτCꎲg NTB2EﰀB=vn[t1ʛخs_i+Ƨ1X4ƥqPp-V ^]1O΍E6 @IݿC &K`&ӕ훾G+?k@3Quuԥvh%y@~`/֩G"U.{T+7@6lj ySr)k?Nal^TUd=('ZRY|VCs"@[ѭN m#2WO<]CW%c‘ыi:|ǫe)v@ ʺ0L]v"{^.X́CvU^ 81|D17,dszW? kWT fxn"j[!,4BAxY;8DXӎMݦU? BvC :ZFyr3SK.SF,Ko5".w|Y|55JK,`| .#0+Is<^.I"EFH }Nķ*:%z*ݠg332ԓbeD]a/򞊄KYՊv!&6f.j.~."SHo[E ^ SG.r!T8vџOӽ CyT ܄cf ÃwR03fGݗIVL=xqK@Je*^B6[⑙x F cft.TMhUC fh7 X-&n>z";%|!$7T1]lgMU;dx>\V6qB@ЍBfXH_}O.9e-NV؉FW Lbᰫ2$jQfyPLΔ (~PlCn?)ʰ`*2_j0R^/W} _4r'hwU=,Lj96Q|g9IHڈzz9C HY+aՄBАγfUS|Jm4ĞCτ*=Cᜅ(o:uzJ#QKt iBW%yj_gM@NerNnb~~{c e$kF U!/a(^V@C @oc-j62g.fHֹ&-FOS.Y.i"e+!2ba7¯{G)gӔq/TY[vyόTWF1SPѶE)#crLˍJ3b 3a*bXE\iPǶdsrHm'M-tJ14oibV"j:W*s}ɓ"az-ӧۯҦ)&Yˌ750֜vjܱ(]EG-U*\õ+2Z^r@r+RTjݔ9prZu$kp_S+vmՑ2w{+@9h`OO;VzECu#l8H9\v#g9Jw<7#CKmG]sqB C8&3kg¼Woho<]?`rj5bQFv$!0[KG-;I?IG4*֣7vbs $!5`UDfM6+^6:dڲc$@g[Ĉ<]JIVŅmc]Gy[E&xfJH,boKFQi -{-LQG{L2w,uM[AU=eب4cmar 36j'5mWvO~y>Xz5Yf! Lz aĿ,LW0k8\ȇjpm5bmPip8ʏKk}05oq5K9'֏Q4&a9W8~XG t.֕i`/ywBn!K[ `Af!(+)b @0MCƫ(2p>L-@w!AMeYOӂ_;9N*Y6m}1$#Yh/Α4f1RL'+>n =v;t>g=$mƾoKdm\@cV—79χ^N`aPxZDhĽv7fAc5sOzF K >ŔX-)imX=)|ڰH&*1\)1i4CMlWNA,( ,,p'ཙB=`rZF%Y#1N^gCͭrk.EKkըcQ] %Der4gۉ&Di/h=[ɽbaUgc/=/ c* `.w b78\z6asE@;=[/Ii*tc|Rϯ2eY^2\'oЈ yx.&\~ <3)T,~3odDjB[Ar‡Z/j: h)6^^݈aPǤ9Sh7TDh3cTȜ~v !C*E/0Y(HsD Pr?G*ylXWb z Zx1lUd6PEC7νh;Ӕe QhtD$)7GE_|< KՆ+bw]ۏt=S/ҴZ+XۑR.9r߶ZZphDMZUc@~O=9SY0۳t ɓcL?Kآ4qN-*kE?L*bg2n?,jMt.VaUWKlт \F78| F:;($AHx-_S['P-=fG:-:!|rt[K2}]:e ƽ,~-αD$ifNf]C< z\_yի(DBim ]~f,"y$B]*z?MU Qz+YP:v VBY DTXHNkӋ eW7 ,(֠(p^4Aj&TkGhq3bK=~@_Df͏-D/cs.)v4;o%1axWznbpzyOb[ZBK)eʹa6UW$ hC9:,*q2cPCx(gu8Jɯfǚ @?2.U'nK)AHޖcds(k𶑻S b.rAxN =)̔3h`dDĩ؆\Ê_R [(#4_-㸫tR&Iw>X xʳdEH^}f.͊\hm{]0rO s }W:kaJ,OJE ψoG7'sa4OT6!it:# {o(KJl-%[{_u_\"H*غ~ ͧ/L䖆{) 7J߲Cy^2*L?ALT 2R<ͬf͡~V}뵳YdB)< t7mC|7$wZ(,)8. zu D>.u1Pw0GYn ⣥iYuEF4ȊC5 7Z \8UOE$k#%2ڞx ;17 urUvGdkHCVuZ~yX]J{B&I#dЁ`ؠ;RA5oMJ݁ABٺ"H-([ˡ&D09+GIlhg4WG#)lmIWy@]vbj'{Q@|%3҉A&ip=XEbF\M'RLZ{̘4WJVdS2$ڑ\ 췀Z9Ҟ2T]2 +Y Vw%v5 5q#٧BQЄ"6/`LR' 6("OLdqgeHX#v E'U=ypy$ͱ0\A5=f.ִU ^;!U\*H_X^Ծ%2zR !!19RFvˉ$;r4ݨ{&TK fhz w ܓ1^ i.tAx$n, bKbOijhD>)<&k+]T\Vj5?!$#Hۜ*'NRq7MBx2K]"MltZPA.w}#9R4 3Ie6&,YNgǧ$D~RAf}.fy}XWk@r]V 9Z(wON J, o~4UcE4FiokR]]5%qcܟ0! SzmSg[ʟ5XK7a>']}#Nh1y,ON7c@QġMQ.785yheRBP9&GLQȢVjy)GuIp[Pr6iBvٝ,䘉ZX1Le𶪍6{ nLE!Z I77T(I~7UT8Zgؑǯ!v P\}! hj7V6 !3؈XS܅%AY:JsO3qnbz2d%UVb~cy#lm"d"2Ef[e+ϙnPzT* CaZ ,~e?;ne ,L}զ*Fp+ÓRà`-ɑj1屆M$b^T$\nS]쓷y:ZeDhV uJ9i\.b4*|7Zʁr7nЇS{2`o:儹Dt2RԒ:IF`[(tv֥ ۧ=zE5L*ajhw*~pr;6/ E)Nk .l:N WtψvО aFSZMEXl-L '$.&T;L~Χ$쩕S@dbx9/1=׉W_i7&Kɳpa?PvYyЩ7>U$s珩ĆP'%ab$V&;RTk򶗇6 \i+)m,ɰ&yAL0&JڟHL'| #5u1oye;p:vArŝ  ڊ ryeʇg}?Rwrz9wQ>52AE}_5¢aNbJ&En7.zj晉HC7 聢j*{7bB ̩2ˇAǫ477=5\\Y:V:jƔذKƊ+ rCV幂XաɛTz?\͜hgQ63ڹOr\'(ޏ`U'm)r_݀08R0U`r$mƤ> '%vS^^&iG4y:g|FrbNSF͜R Svaآ܍Qpp:x( w*u5]L2Xv.{8S>BfbE4AӄJ/>pV\z4sZ^YzD;pQgVJX2T_BO_ePX)FjD"SS%beQ@IH_]ט2~tQzn:o!ʇ'uH_)WX㩃'܇asz\vHADamT6B[gZLδ Egܾœ] c [Ls/v(Qku'Ϥ z3YehP,ASF0t/ȏ kD9) Ym_gG|=D'sV#t |vը05a/˽+?2,pULnQUnuUh>6K*ǜCAd4G͓rջ̬U]/2`L* YHzatm"cҗٖ{LHSS ?pB"싥Hq((&gm!A '3l: ^ͽP~%po RO _\2ň'#v!phyڜq)4@; Cl T:g@l4B/S\u@LWA-';FgWxS-P/%Q+X5,߿cB/t[@Dǫz h d ̔ JyT1}dakW#,&V΅ ւN{VP' ]uŵDSǜ^ c]6ftT{71Eqgt #>Ԩ[_!e>u}tfVj-o])jB @&Zl"å4}Ɔ" r v ޘqI4'$qD{|4)"EP/y=Lp4l3p8tEXd~S޸費>]­KZ-Y{{- |Y8o۟lGt 1#dqrfM] n>Îw vm[e;q5aK#~ @6DLC_]ۺޠ|sz}w+52KG>Ft*? {L$FPgBj?V#:cՉ7dybVb!)⪠''ުe+^sWPR KelynU%UpէCH=A@<,p((XUS>۲A븨}[BCR*4"C#>$"[(m-^\Z늾v9!7߫lǵXnoWVKr-K>.Ζvΐ`eNéB ]q7,_)# [M+FyAR'g> W->$ B{zG7SJvF6%q!réx'~'Qar`l-E;|}[urR{U!~F"k4Α jzd'χct[cpn= PLdV' )7 ?r8W3sHF15U (_ǯ WU6[Nwi(6(kܐZԑ5|R 9teM-`QYҮn{j$nZB-W ",1H>-/+"!fCHPW6@9QwV/ ReFTp!!Qx4kWrE~i+~tqs fޙKtP6=Z{UTuXkc{iUY^?vy`=c5d{ud U 4Sstq\Fr,CR2>W]M륆K R*:~xFk~Pȶ?nrk} (aY<7_[WwvνAxoMq4TRΩ׋]({44=QK}5CoQ#U& -V#I\@X6i|00Cb"ˑYC~:/|,X^+bXqF&$4t;""v\`cZDn0^e{лu/B}?O*vkpwN;/62R&jT0<~ugQWNRo3d#ёE rCLʠ%"{^CzYV;{mi'&+Mh%xJQ5nSb;kN~9aH\KD'IZisMӭv7-n};ݛ /lHp7ŵ4% ZD$6$;ISL;:u7Wvz/wEʵӾ<^UpKH9I4\JOr XH{Sok߾ft( D_RƂkY1v$ *2G4y\. ^z'0޶tu E="a#tjNFEs]Xi3l<}zDج&Y1-T\XI ZE~d?c[sA,Yk4LQyp#³Hϓu8A~ogH_4R-ݜsͱ&{uv2QXPMy}\.YN%'1^  <d|lz²(NkE]E/E\N'jn[`q ͱ:oC-7Jh>gEߒdH!cW;%OYQ+. M>F_F je>'}Z% n^KO6J϶p4`TRp1r{OK<:2V^ HD{4k(UN0(e&k:6x]-fac]+4Z//ښF*IDvrdXHwcT5.+4mRV_}|̯ rT _K,xt6Q5~yEu{Z9kTla ] YuCBda xax 2=%?W@3Wt%̩Ⱥ=(ǸAW(O\xPdMB#ޤjHs:0>|vCoADEO*%NA I</nc44)w -Uv.ImVƤRgO36:FӐՖ>iWL=sꥄ*#ye%"u;zpח e?#-2.g£(xiJ5XkWImQn(8sKx~9ugP,ۄ5Y!uIJKZ5Z1)_[Y* Qf&5{):Nyl:Z7[MBBL^պU)+`yws!-Pt(,nΎ{Qa?r:ґ~o uVu ֞gw.z"/J _[Yץ#?^ķz w7'u8*e; TI@H1>QI ~6/&,LY1 O,Kf>- >#S OO:Ms"ױ(_8XhmL%etpfYdHH08tWK [}&Au8Kdتt1b~m\aKijc| Ymx`- .S:Du8F` V*xW!mL +m hJA U~l%5ꏓrќ#o<+/( $ [5]'Ljׂ~mbCYqP]_;&1@8 tX^E4 p_"(ܛjTj^(FR ȯ{F,øbdw]q:Fu?8j.ܒoPc4פa{8(:!WF,oۛ[/9Zg| i,+P\ XSȨxKCϰfjΜUPL²u=F+2rM5H Q\dP>@bn@`묡Oi| IsE#cȧLs d}䓿(8\$n)sO> NMERt|!"7ϦOF|pݓ;8a^x4_`U,moWu[jʻ6FJAbGKjA %{^. Ð h*#> RvY5$gOܛ_*L 36\a\Fh:x<)wy H^'<$C^m0^ .'iJ#.hGj$V2,+iLhLn5 0~N 6|UH^K(єhj@׃h2|Blߥi "^hx& Mw@nm45Ge3s3ɅBkZSHZ#J%'Y{΍ 0 f{zou1\u"3^- YuAkN1Vٻz܅HAUG&]0?=BP`~ԥxBDʵ@ĬHeDW*7wSf^5_ze6zzN.\Kz˧.Uҷmo}5\D: !uB#Rh`G7 CHsiYg3jOHVh SJKm^;Xa#twgX:$h@Z 4Rd]Y cJZ#5E6IUJ[`UKߐL<@k.F"ڤqhFqbKM}~- ۳G o@wU waUƟ&)5C R ^RC֤.9YRZI\⑒Tb"3.RpI|"Ǐ [?Ds+B:+vCD7Dj߉Q}8MŧC"lA!v"״"9L1{2H b>cl|\anfKX!_d`')N#(ߔ'undӬAt7ҡ TD/MEHFexGclA_&K/hǞMdJ(fq644q(E',]'(X_.#o}?g ޣ5 UŢ]ߪǯ$e0beߡre:WdZF4idzM+EicT#iKOi> 1B@)ѡk,!@OC'3Z}?ڰrZ"Bw *c(Hlgl\x[T&+J:)# U+;݂pElp{o'eChnLEVkf'Q0Gb, SPBOu TD~fM29 ;\*'҈~c Ms  Ú0fR ɖ*󑣧.$}#ŷ4.nFqMV813rnu<FTyu] M^/؏]/vË,a)|Ӽ!ƒ<^C)EEA`[_,ϟu^nI\eb /1x]sf6fOQ6ow;ss5]W$wl}Uk3ݹ):CbˀQZl@bVRMbÈ97h6h;iuɮ)7+y_ia]u_+ТtZFU F4gPݝդ(um}JAި%ԝLJh~#&ϬHOрJbK7V{ "@uq[ loĻ:/N-QJԶ>@)X` ALu\M-+/EM([{ۮ5@M<*+ȹ*VrSf#)E=osxUj2LRƐ;w,.\}Y5IukuK{naB^k-ɦz'nf]R dh~ voCR -J`XQcScMOS(o ҙ[Kogh mhpͺD RE^D`dnc H3 z >gsM}gKOtzT;p`]#ҥI]"A~_it.6KONX%ɿuPT I>ܝJ:Vj摷^$G SvHXBdؾG%BV Q~K-sܾ΃TPj{сK:9v=/1J-P%],Yfz-ōJeCsވxeoXV{@Ts= p^[qoyW{f^.;W% _QSyI36IO4x.p`cb3oS#vU$#9y#;fj?)F#sP%=au ֢gC ,h9_h59?g&G.W+@`@9|F@%a@L*z.@ W`!*=dަ0.#6APdOתyQE!1'9f67eF:i5*.O6ҬJRXOctE$G~Faj4`PIDmđX =o_2tIa\htƧYVFg#"xVbc^P \TSvowADҿ|>2) ctbjz-݆ɋIf M l;O4 1툤kI7 k~?O~Z n+Tbc.fwgg'du瀰n5gib?$qSVֽgb'8Mśk Fx|i-Em ³E@ZFca(O& 7'gYRRn@ʇtXY}٘B[ JB晊AMVYI<״yw ޔPzq0a͵^yK7@+o&HBbnӨ=Rc~~+=j )Z#z J1 ZLUCnʍ{Q[jkm[W[uLAR*/lfT. !@Avp*"ǰM;C *i7+qQ$ b n+Gd߸'/y oi:pM Jo[67F}<zS?nA+R8̩4+]Cf 845m9 FJaIZ7 .t7|wGy($kqKU؃S2b`zN(zkyS>yT@szV'z PSpLh)RF$Jp`EW>^[Д 2Q(ƇqG[7YE "eap͇6"2/O)D%@;'&i|^\z_-=BwvqT2D)5}E`9EQa\9(r3nS&[oQL' ~+A|MX7~\"n`KE!6rLHP- WB;E5rA 3ÍѢ̃;SD ܇AIȅS|4! 8[G0ۢfwֺ; bLW|zЂ| u:X pzpl9#43,$^Xe7HS?Q)35n&k2 At t ؖX]$oCLZ'|uZZfCrHMэk᢭>,麺MGɰp5<|Z3HqӮb/Ց+V^m-=y9Y'4>݄B \I )P[GY5u'ĴDY6=$7b1vfK4IKJrE3Iοrf80~=TD>p }hHMA1q*k :yoYlpBc9:]`1trׁ8*rm)pP1f=[-*DgD:﬈ L.6MMZ07z'pGAn0C3廠j #ڬ5yvj=[|%w?rjlh!s@yCzS `sw (KSnCfztIiF ,mspU[%ם*USZϤ2.JCEű2IVKMeǚe1BLiuSWhUH. F8jV%UUS3M.XR  ӥBu NIpӓj'pbpU1A:!G|kAT6CBmnh4BfCl3>h$| @-ccDBPqy4l"EE]9KX ]]598e {N:ulzтqr45eX!qn~IvwhUP]DOC>ԨH&-008W! kֺ 2".eACJ.Z/%uqw[y' A؟XTaq >ux<Q59tuoQq6"B/?U] !tO3 =UE=H;0١hy7=x 4$pWEr#ro1yU"-g1W4\8\'{h&,O!}wD%dOxe:,Cv/D({qĸ@PG#* Z Q(@ YL[ |d#s +3cք$O2WvOQ.`1#;D˭ޏ|2jY^/' `=[Ԛ;V? ,u:ؿAРSgGb8I9U2]sn{b}Ø/9\K쁰;FbT tO md׋hk3+U78@7 3A}Jur_q6khNm9/&l< Ň{Ēwr64T~d"$v-։("\=(}\ qfb)6ku xd = %MDx괌'nY]X*<>$Aյq~X3>bikT!W,c|ǂ %v=#@u*F[G6Sw6ӽwžl{cW%k]e#sL$yD׈Lu@pg>#,Oua uh+)7D슲L0D qJc.f'6'oe]s,ff{}%4?3G^{kF1&(^2Y?t[Lť|DM{ub6?Ѷ/,O]`SA.]mkdY0Rx[6d.+aZ"]U41*MD|@/A#/qhƏCB2SvZc5"Q|~Tl69M\]føP Y *s>/ [& rţa@wT _gK3=Jf|+2oKqkD>ѣZػ Jxv-;! v0&j*0P8/|U: / f ˰2 xTG: cc?f,J-h<.KNsB1l`.q9wxs4H$z(A]~JuPIyB8#<%RR4$%0Yu b8,ZkiW1!2ͽ3F^&I/勂1 MK$󥷭\nC=($pssME򒨐5"2)ɜ*YBcTtv:wz TuPەl^~,.[!kyulvTeOXi&>ދBq"Y/ 9y?""ڴ%ħ|^'mv2y%r ߒqsE$"wťvٖr'/]KЃ? _9mvq'<x*t%aF6d)k;Ck=qXYˮqGj%Y%YW@P&^g<׸Ծd'/Jv*^r5tbp"2 a˲6Z;6:µu+Ӄ]Km +3Y& `?t7{+å.ᛚPqW.} *aU̓F# :$(Ku͜9)-Yiw7fsx;ǧ ׌}j윫 'Wٝ!UdjB_nK~EtĴ2R:Nh2r>RQ@3u; Pԟ?a)qGѸ!}"+'o1/cw[ %ȷ|_Y|[\q( LL;8YM$VrjB c[pa/r"n4NAU(V-n[˶w)JHH A=oS|ee1s+Z=ɀƽi03}߳2}n2HDRLĨyi_Pj VVB2cW:w非qHG9nǙRna fTOY'(PY\F4 ]UB<-W-`_ِ QcfyD~Jf)(Y4g䠹]x'vU 0ffl^&6 3-W2 1SDI yy":A8` aª[pDVn4JH^$~}stBT U9 o45V[?_lM=NwG in0xEOPyc5xLm4Hl."0*{6[Xn?#9!Vkkc&d1ߚ?BfoV/ }X)QgÛк^N@ᓰUQ9~5*` -o/WsAZҡ+Y\lFAd ^sH.`Y^q<~R1ax9zs$dSRJL(׬w~ ޫaPlBM7]{nhQT#g5ݼ"`\g}!,mH]j: .`-xfmh#:p3jiYxg:udux%\zsY=[?^sM~YmAͶKO/ѨA:}Xl͛}L!Y/>; QU%xbo-[MԔ.6B^0k6&FP`]utiFqЍL5YH[M 3hTYVњ6^9<.)0PpߞƛU|H]7-Pe%&a=Oag<16WongJmyAM@z}#ە8|uK* #S_ܢ7a7NgNn ǰt)Ӌ(0Tt-MZη2?/w4T]fU1li=}>7+A PcX*fDBZ% a!üi)cNV2io'$A ˄S#DlD͏*BpxP}(kU#ĈvȽiz܋Ǧ8ʢ =%_/96ƝUAc P9?8_umŁf?C }WaAR4,@#p>lӟ}RDZ&]4_װT|KWy{.w=1ʵ~\5nbesW(Q/7Xbrޏl1Yl.lWLbb;`*^]J0G~e`M[w޿K/UꇷEs`Dp;f/H]|O x?_ݼΑxw_*"FKل+5إܢ,G&(~FiS=ؘ]{sMU6L Rvd!u]&=yf@ip!xAׁM鞑(dq8A[![2 i2mO2S"ӵrcl,ݰOHRM2NJ: Ctwui^뿯ioϤ@gtso/(-Q -ԌRѐcGm|; :ڵ[om1&1nq= A;[i3 EDTB] T\.Dt %޻r?V8 m.ś2EYNmA@ ќ`vC :YT.#X}WFĕ6&uEB/y1O:ο=]olYh<]Ms+ڀhݬPw>ax?*}]^0Da)[m !d^ wr^W տM&o+dD*|*`!m(45%.a pUfohA ')!$y7`vľ*c VPՓbi[٥DXQn.Ęٌ3W;Ѩh6 Ft G4;#-;%y>+\(d&nw7W0vu_ؠbY񖊓Z$>Zw|,nOJ_T?QSqs2Ye[z;QŶchU%r/էDG,&=uDlEB+MlI &S11j0)-=?Վ:sU7\Flq`HTh>JEV ^9+pHa,-y*&ZW\ON( .+DxgOLҷ#pc̠0cByJFp4CD#x@h1 s,?bb牼Q(*,[akZ L,B>&ڐ~U;\b+U||)2meFe9w™ؼ&m2\ f2nhkb)[>ǠUeIM'9zd RXg_g"7rs+Ugq@z.w~,Zg ABcC"XmK]LƢ,r>X4c+J-̟xͻ-å~q}ӣ n%0/fԔ7xܻJPRcC@^p9_.@|=m˦(Rwվ8M+V" lZ'~J7%(<-geC>v\+|*oȐ^/*at9%l!9 S#&>ڝ|Pa8r'fU\]oN{vuRj\eKПG:HVqQlcjtel;]K?"ϚET`ʬ|VVi8\4g)e!֝yO]RB@2m6M99q7jq[MpPFs;#sĕftO] €s )R 4OԿ\E ya$iSF1B< U) AI sU6 Orb_GZAZ0b@h֣ BqBb5Y !usA!<^CKR5FrZDJJo580 vf<qȑ  C͓d)!S3QxKb`*%ŻIX5(;I=&·L2 =Ik M¢P iycyU]O@JDNDp9# LM},!t6k;N5\OT%Hz߯<1޲:굨' AVg8uL\=ȝޕlާڧhw5 -|JA Q5kN=%a{jjbEUx^'xd[8NkAX!D=c~x@Xe]9KJbJ1` ;Sb_E&Bmцt^š8??:lL}iYMKkNP 3 ;d>݌M2 "CP=@*@5[Y f C4Nfј>yBh(M]fNͽdyvBL M?&?T,l{ص<@7"s M]EX ŢK퀰M$X[ڱ`nv;e̋f, rtUY{?ǖ|4_e@׭O NSJEz½` 0A;Ν=qSc5XQk6)~ne?|͊~HI6ѓ -XN>ߛ)8wfCAe@wLfеPRxG13wqz"t $odPpܪۿ8Z2+L] zs\9j!=?sh0S2$Q5IAVJH@ौҦ^nްK>W+ a Qf̓h5q^$ʫ((j:Fe)aiMSq\4\{-WhGdE̲i*^]؟;j/Pδĭc~bkXTݡڶ)8©ނCkxzZ_.KYӭi 1yFMNP@} XL4@)9A %5v v.2Μ$0~4t4{Ģl+.+iW,u6([7 }B(5ENjԳ;+?NiUVnDXB> C g)&mrD}kވ0ˢ;D3MTXVs~%g{ҟm/Yz@ *zk*L&?MYr^n?lʧjԂs+baöͦt)JQJ?^!=WZJ0YP97hSXr3gNqT.].U! bSN\B'습v!ԾXz%c,#L+qvz{&>w -z`t7xvj+5 e .8m Wy&o_2X)|3o/@X w 9aRH0nV3ɻc𓁩@f΄M{خ_8l-tf2B(ֹ Zmi:#rÀbE;**EuZ _xlM%1W|d!LXj*K>vo8ӓtV},qgHVg挑uY=Ma$kt7pVЀTJ΀޻0I9(^%]Xt b\L/v ]__k 8 e;Ilz /Ȫgد!9:bD>a[PI<ZQ `nvy<-}'({=C'gu(oiN f)c2N!7~Jssih[(F-;˘V3,|]wS8^W\ DؗR]'U󯯟L#BLbM$};.{v;KU/M%#bvDۂkY A_{5^j#]eU5eqdkú8yLA{ $w.(7f}7#&n Xp=,UGoPʴ321>?%{2t"`m-ڶŅkϊ*\ SD<^܄cjіC<&qcem@i}b@J8H Pih&\b=ĉ/po'U CtM*0<!mA,gBzxsjmaeq(w%Uc]Xef$,k YS=B`xi<{vx{VCa\LZ&5҂ꄣ\njs1L$Ǩ+ =l}Bvbv3}rNqb 8Ɉ4-ޠF|n +5ѭ>Iq8 l1I :]MZDy܋*#Mwm-#Ny5i~=_ V{mwϲyNfn6 x=SF製ÙʙF_  [ 2 @0a:ݡ-lLf 0S&oZHSpR1ۚjWeP"A-78ԋE>UH2*o7%ÊI%$lrYpAvj;( Kw^ >] λ6N ^\*pܵ/i׺$it5 =c9;,Q<дV;ꑔPRP_ip!ќ~^ CϲUaA$1Ů >, 'FYQjA0fHwH)G9PEr)w]&P\#Zx!hEy7(SSć +Vjagjr,e%[z^hE`{]hzz _J˹aWe 搈Xu_[48&C7\nJ1= LygV^DMѶ6G: r]Lj6RGɵEpyP/>݂Y!nOG ཭J]Q!}Kԏ}fBADlBMJqPI{/?cSYSqTFvp_ǝ.#i ׄ6MJ)[zI RTFb;]?|r٦  Un?_J=p$\R=B(YmH:5r;ѧP9'o,fI]")vW̃vX%GJZM&?v09#g]52vMimP쪻"8}N"FIyTQ/Wd-=^pw9V"Ҟ\#xTsN* ww7b.]#.AqXn M6ěY,`yB%׿im:rAVajEU9LB4dX\^dtSKBݎN:#*̱WI !ltPy̅Ri63wc 0Z9c,HL`Fr@JNb]~s^,@XccT`T-#W :/mN?߰EJϾڌŒǸq&;rΗm/>_]]}WMܕKhˏa<51!g=!Kq_8yxWHފ_2u=v$Es1]dS ;y_ =Sx3*5mQp1~^ZtrutpPmi6sm ' Pms<n:.B[fCluԖ*2`6͔pV&ki?:'-T9ǔgŘ py֛DPUolnC'd]t[M][jK֖d\ӪhrEm Ze!x,%3 Ԕjd 3q5cG7[@ЙNF "~`DA+߭ڝ&ز?,M](:"PTrABvڡx1Y-auR*xYPyz9] c@KhO[Nj9C58z健ї <: n~S8)?:H,>Jf^kݮoSԹhKŏ؜=%;MxDӋn{ ҴpˢMBIÅy^`{˕.0S̰gI&8Y *TkQʹQ=d/F#QEdW 1!,~o"љ9[8$lDafa&)/ZQ2@E@Y30 tGES'‚Γi78MxV"_飞G0t(06>-9nzA]Iрn^Jr'`?؏6$gdxڱYװ=' 4ewCJ 8EQv8dh#kڭ9oM~=Ua˶K#ؾ"@jHű3z`!2Fu73A9uiM_X2[Epn0@𘬖a/u_ m錡#7I Iv;NIpl3~W(°2p?Í.]{={6TLRwPV{76"1nsOFU?6=3f(`םTP껣Fs٧~-O ) {#^Jl"٫8 LDnws*FЈCVQ4-Vaez@+3TF )nLJ)j6'Y9֏*"T PF#nߣl!Q+e2bKx7bOl6PCGdtcTkZ`|XM}t;\tnv$&1΢ wNv,to~>8:.Q.Y0Ԅ cӳJO}r'9&"`^,U3 eήy`I&Jֵ[e'JD.6Uz‚*Gc&SZQ]%:F3Li!FLrs64&񊏾U_OXXrbn {N}ˌ? Ģ;ƧJYP.枈I-@.g֣q~yOgJsO (tSB.{m &ʐS,%F(^|ʑgDf0JSAA#N`]wU- Dgi"q­ }NZštaL5{H :HFZuov0l% ڛGUKą/\i8ǾG"|hZFb'I҇p9 iBA5ݑ0,=ĄS(62UN`:?N\,bRnClk(7j X'c~n2RbܟfMWDtgw;i4{ݸesD@'M֣QBd0gҫR0Ho3/{y=}G^e1z]dҷz esGmg.a|ޭǽU^‡G[3YfUo5՛b<י=t|ߎI2}.uOjM&)f &fSÒK>3N9,񩯘 c}țpŶ:NFl~Yf<>>U9yʪg٣:]5"?YKb\WLM?-ZH+J2Z8d'1@6rN:xy.D;<9zpe~E1F^%p",:Z#v+!ѩ"=T!3 &=L1y//sf ՀGDT}Ik^S1{^^x^{E=2`>Izo)]XAf&K$zSzIF h1B)gZKo!)!֋t-Jr&Y1W #>&𔠁4gl>bηr88I$3 ͬ\B?u4^*af*˓u{Ŵ| aw:DZzvق$4Bpy@_3ؕnbpRf6 7ҠSEcl˒ :!2`'+5b"{tbmrPݞN7-I*72ܐDQAbGҌ6BꗔX*A-Rnfz{ %ISGh g#8^91(0 S+c1jD tOE)}%<` ߽W Y!d6>7☤ؾd%ĚUOoQoq;v8 VU$nP̚/ͅ- y'1Ɛ>Q|F %$7k5) E.G"ؠtY! !(I^jQy Ge{e?KL!x_[t.*=ug}- *bJw-ϊϽW!_kaBoLװn/FFSϩ!#L`'Mv}5>NX*:JmBF{o[:O.@;@_ܥ)$z4sGA:_n1ȇkRۑ]3afxW.@Ҕ^;p ^"@H(czȋ'&L u_JV?S/#έ6AXMitK.4IJoG"=xm]!o@gx?9_lEY 4TR%rh{*aWHK r@q]r!ofыFֵdk~}nd쑉@/ؓd\bಫ$$ DG'4sؒwEm{H= ?p&נTr(9|,-SN_F2c*)zQpe0 RwC)90iN&.Z !j-{[qCIU_${ hP $, :֌&F*,dʥز\AsͺȮ2 3#!̓Ȇ qy/,R1DINDLNnb"}3b )2Ԗə`ܝ!J㤶û:NQO^fA°|iqe\6&: R_BzC=$ȩX9>([|׊'<&&P6I$=\d ~R6Dd}#I,cƮv"nVڗsl9taC5`iCFq^ӟ KNiS0a%]Yz}U;j; ,TjcluݱH!G l[V(3]4rqUZx$hkö4ݨ&uFx KjW:`{3 d- J-YA9K7zËN;D~:`;j(R|?ݏ:ۨ: [7׹/QZ 0A~g™-lNE6g9OM ?GVlȁAUg|I?F`P9ݩ9073yb6?ʑ `(2>gM ,@X'c%h1]/NzE;+Tcwם~5dybG96 TO䙘X$ ϝ~"Un# 2K5|Rrm9xvmjC~SR{ -z&X&OW(* V92lq!}qȣHψX[2&qc]͂ࢌH%JRE ^$Rzr8 FFzzWmcJ6lNj^yp/<.G(ZQ"i-,sG8@#-,V\$YRFp:df5\FOk~-<2'z-d?;yq6G a\=(Q f?+:L={ N(dP۠LZhc3,k}_u~~Y1{/s"i>[ <`2``!ry|``z< |X^- 2mGH@)/Ԑ=+B @M\4EmRudjϺe8o鋈oipC')0(T>SlBѨj1i}X^ g?pcC8gnI?]-=1୻?ZYn*W^HDTZOX+L(_Yԭ*Ljդ5yO5#B-B8ȇ@bwo8|4c|rL%}7 #ȴ $u& >{߃$f␭%y;(c$0#扢[uGe)VTyκj@Yd^<g鲩8[+UJ\Jۡ)uig:[8Շe"͖R_8H۞ސ/c~gs53 ~eQ]>c8"h6ܫڻ ^'SK3јȚSP\*VPk]c?g/t, y[S6QzAxŰ24Ik鯙1tw7ŊbHs@3& v;[TOo TKp0,+gcC_ dEo[Kcqh4>bx\jҥB#kioueu 9Z0,L|#u>I5<J|XbQqX*5vV*rZ}cr&VB_W5=u9Bc6c.[+`j8/53a6#grKt; sib9 qͅ~׶os]BezPt vX?^ZxQ\OMJ?}Lj .1FIU%ڃ^)>Ji)_/)L.H1= ./IF?+bfUףoZ#vȁs1GK%ޥ$Vu~#P@ |O d7'x ~&b6!q2/'j<:vry7ߺDEu߈ fطD[=db6&R754u~MnK݂_P^xYY4;ݒi"J}JRسs%7i2r{M\cCUG.U0:Z6lڇ}b *.+1I ^O s nhP*Qu#Nn5#꒬q'^*Z:b$W>=#yWyRD.L  #IG0 |aNq•f"& GqD9s'ul#@s\)S]&:5<n%Ú2. |DƵ^`*Хor?Q$))zܖ5s]I}9V@\&{yMS;Hb>1h^țXeg!rxWx=tP*r]،/(HԳlYs*^%qf1rm,s`8U &mbr{~O,#,9܈ρ?Y1a6<Ŏ`J8"bjBQyV ~V3Rks2&6]r./_ P]{ M Dy%C84.r c)^go*EZ+57scnɨ1L<,l`xi @E"S7]r&m5pq0&c(+a#♿qMYBr^**ZYD #Th tvS@X):gƒneٿx"i~>}Y)qw+po]Tҡĥ1Qo@>i>5ϵ EA1&ikD;Y& 1REB9|c5Уj)]1D8 V4+\{'G#< p=(@I Œq J!_2nxJwiʤ&fgOg\O3H|$&9u@C~LIʗ]zt`)3 E`qn-+U\N 4ҦXXŴ:64|#$3ƑJ3I#YJ/: s=.zg*1>'4xЄ*'gSJE$o***F=m,"Ԕ܄X~}9ǝŹ&yUIh"$˨UNh߯})Co_\}ޞqkgG(ࣝ|J*'54Zq;sK GL*~*exw1qd\m;WU9HnRKII#$W*txA)/R؈9Lx݆FOUdg >|*77,PͼkMtٱ]"gqTu 9>{#j/bủFzPu[3үȠt#,j橥 iO4|2 }]*T_9{sNZ(|agL'͍7IpιqۆK^_0Qh}AВ7axqsgau0.^_}!$UU:q0" j"p_E&܀9]'HȔFyZۭ.?^,TiKJ+xsƼ;]{?3"NXDS 3[<QPcWV% CT3I-Z Jª-wgIbdZG*h2V+wz^^}Q?9ٽQhWYTĆ L?T')rPTISys-4Eea79AgYZV,~`r&ϑǏ^-D}#Rd?zTHGwG7 1~R&#{\;?ؗZ|vD7YL+w&3a"%oRu4aFyȳ=0ir:B8dg0߫< 8뇿fhs73aw& I'ˊY#/w~V^i<s䢄? 槏3ֱ؂+tZ! 'e8ti($4GV]f +뵕҅A=^QC4 &ɉEGexsrH_Sk/ ,$0 q{ȫw0[b۩E#l\ٖ⩖Aov盂4;K=q𮄛e0s1 qOVW+{Qm5mTY"Rʡ+~Tؚ~^Rm5螤78QD8'WA\!;lG^-9lN3HAK\s:p @I;k$C L]G*v*%}&]1Qc25|y><#G-T"3f> >wvNPgpDDY~?t;72 jAWQE$l̫ё03^NAeV30ԩ]h/+ /CKgډgs^TM'}f S;lg 7;4-1AScM.M&TuTpo ȟO-*kFبI8Q7~(-~N 4/ CI'p795;YT2ݤ{ >+RByE8svaSXoR]iwfJ3᮴Y)=8@.F!KfW1H}tiEhWsgd~ !a+9jBe)+ ңt31uL!:b9Z۠N!+[n5Րrf6);9ՅN5Ժ8%G@n]^)y88aʦwZWh]/PڈvfD ٤kV2_+)zx׃vQʍZepW#h^i ms*&샣å6<%)ޣ{H>&9P\5V̶ca-&U~qE@ Tԓ|٣RE\GD17J6 _YO7"Ui$~=&HPO̵%eo@lRrWq_gah,.U'N|YEM@ o&Xtց:+D  uN9O hsUW9&TBx\,sL`;u h`խ݄b)=lh%_`=,qˊj[Sf"uAf Qx%RxV h֛_޹S3Ήg cMY9 ZD5DyJ 3l7N3|؟19dUx!|<0H~A'Z&J uΨ?$Д@\S8r70G砫I!}eZB' v𪂶GuÓfORr+tԘ [m8cs',VhD2C\~d*FyLI ہIgR10G#AJ"|Շش'F\.9jM fAN$fB4s@-!5돭#2ӰnW)x"dc 6骚4ڞ'Glxhb՝<ԉiS4񌲊oӿqePװqH6E磳PD"y5gy&nԋ:l Ms6rR]?cEuΈ8љIt jw]2 Pj/uSǽnbK|T/mliΪZ:DmO},DmB3smQk=b8x.0 Dg~ +lw:IVV,w3"#TV; (Q$~9dy  " 8l !B-z':~em#&^;P?hqUIrB&M([+nx\֚g{~{PnNF,oN#vRf.r͎Pxg)1#*A0vm}&tR8 ǦDO P8a! Ѯ=*cT\8zl^e4cwusgM S#MU.3=B֛P;$iߧͅ;kvL 5!|4P\ R_dxBrYz Uu4#>} ?)g&$w4^y 3J67ȍ&p\mPru*~ІPdo$FesS0E"NȇP/΃~3ڡ&Ɏ9qrU\a[¾% Ry>]z+ߨ68GQg<sdؼ;ɬoqDJx8YNDԖ6x(7{}CZ7qز3 16p.m˿OF':1ywE&4ʈ!sk]}Yy{GSrNVΰz;Ol&0*T2VE- HA;nIB [SR;"Tk|x)^J["XL.j8 Is9mhh8 (%D sj<3qZExɫt2΁M fgH3|9ꥃlOܽO.UsRTk- C=-_&h6z 5{3l?ٌp.0'0mE٩0jM]Ά۠->2賓z4t437Ua3 8pj1Zw}>4ҠvsO;l. -E|WĠMS?1$3d?:yRXP&?n LS HΝ=U$~Lnꪘ -<6UQ 7ZqrqqI`Z7ġYKIQL5O%Dj+^x2ǡ{"+n-X Asi|KNY%2A0H`5b0J.tuS:2/l."WNz,$;+U./܎'rS g+"*iʟ~s8 s*\&'C`V1yvx Q slL(Ld7Iw9AwkEj_q-?hVޤwe~c0y^uz IG6} $^ O~N)@X'fB<#S>}j'Xopj=]V/ 4hI/CYL8K=pYy80E?Fd`!!Jȹ!4؁DBdَ2J|.ҳQ$7jhMn?T4t,2/Du VbS݂2xaVҐ~5 \F9)+ka&t "U1ᵤ,ڝD0fUa*ˡU(!?Bל ֣Q&Gȩ\1I7]}Lv.[)3%ifhQֱXi hjn@@d ^47D!1.#YpcM@1l.[կWW¾am`5'I;VD=Zގ9=f 8GoL* O/ O @Jm]/W7 ;#D3嗢7sɑ ra8#wB dMRJq;~o j R n9N. =g-KA˶A7K8vQi"%k$)l5_|=P+pǘ9;ğ|=ɲWZ0~zT t^Oir#H$۴G9hd,uؤfMJ8_cx;sQ6"XxQ}dbOuggW3;^l Sf=#{܄37--7X!9vŤEl0[ctw , t3p-_Ң~xplE!rMǾF|Rt):}ͩ_AF"Uw HRC-?4cA3S O;SxKoFe7x#VB:k΅vX@pDC2$n; .fkS6|yyn?֒s,τʺ$XXY"Gqk.{_wfkK]@RIСnf^x/uadx_{Hp e*bq6qma9bzFv}&MZZTvD癞i_D2eX8Y^ą>WH`Lt)ݘ4 ǛBV:/T֨5-2ľ ,(LY3Du Gˌ+F(>7\(m 0>O1:qmCqPu$9zkv!P̴9Ni8@>jۤ`RJ;)*Abx1#[Sh !Y뿼i4`.7W݄93\5OέIa>-^ RҎן<5y l7M'4^EK#Qd6S4rq H\"_9Kt@_3?4SVә5 Q;TȎ&S{MbNAweWhA%Z;A`EmBYK.oG!m .bRu(ifgH19o5:و}?Uq4u_{7aNFsx1yG`|YRS,m|茰?S9SUlcڕx%%މR #M:|K0 S~=m_;Xү=anthYg^NtnQ\bX^+Dߐj'~mRji8*qkbOȰw fWӋ|'AY/lU5|[o0q gýb]5oM>O(ƿWI ȼd ir3mx/;xl&xI `jPӶ!bpN2MȉG#Ib} ퟬ,B]pM>g _!RsC8N~=A3hKӛ#L>F# 1-6Y$i00pA;Rc%~@X$LDL!VtI#_:8Wd-$CLj_j˔J: ky@﫛tNeL*n<7R\Ois^(kK/eͷS؂ ApB",t})gԢ_f5eڍ Ra_]:%ne>9^9$b1 x4ܙ:N}hhZo~?"<ᗣ`@*ArJ{;\)(TdqzAF2j238{VČKV교0;@^nQp/}wdmvg]&?QѠ#3X47MMpXp IiOnU6Axd9;\Ip}\Ο˛hn\1-?w*dFx*6k9@+bKUX 5]~6):`!Ǹ?fo"Qxuۤ yH>Sn̹ZC)oč}ClM:pM$ :h:sɐA8xD<$:zSߥ:\x |)'pÖ% t /imaS!{kW1) r;}2ȗx>`]D?eVH"i'Qv93"wHC9ٻdPN%y.SD2NDyOL* {"痫„]oi,UI6\ř{+COPHYM+,7~L8fo`C:l,ÞV?mr kBʳ>:i:'<yy`EcV:w'S"Ö޽+%1|e@0{ p,cY!ƟlX t,1DZOa uH?2' jCF9$p~I]LjHY:##Tl nqϰp$.W^{sلC7:H”^N3T;8A0P,ׅdy(ebnj%<ߢ>@i,XV*TD7ŷ ? ZxuE3E y&,⻅FyIT,jI"!gAwgЄ~&cyk Τ.*N=%ha=7fGa _/)aM56ՠABaeJjS| kkxk^m*3sOI4)$I= k`Õh)Cz?ڈVe#h\ G9eeΫȢJpGђ5ci_`S2$5*تPQVCE chAUQR ~8b3$^]t2 #¡UIfi)j ,fB.>mUJG Y 4/$u }@шE>CA}FE bE\n]|4-T9 yhv{HoypN^YDU,-#8md@+pܴHELjEʪ$59geJ\U\8Og9kv9p<5 T`tK:&R1-·v,N]<#AUG΃"uTS ܢ*XGƐ xPTJy>O>4rn*} jokAiĊ;Wym4r*K.l$nHљ.=)b CVJE3BԠ(!ȡU8Yd+m^ZwB3fK~x(p\ҭhL|0e5RiB|%bP9RQU X*^BYnF# Jh<fQz^aw=b6+2|n/b+})bgɛ3vGkX/qI[߾Чyf~-$1j5l:5"ȖnRxXQNXᇞ`:e:_etwRTݴa/ҽBQbgًy۵Zgn bP"I/e[cW-+s NH,P<ͥcjJמ  QO3HqJNlXl(^z8ҜK61co(a6\=߬g[OEiw:ˈ^zwKGډFϛ'2U=_ JS Rɥ˼Rqr@v+?S@8#+L _R\y?Ipm.C+[0W RIb\wq4Khx\tJؖh lb} =L7bM/e}ٍXt[inECB#y/n5'FڱЮ՟O% +}@?}1Y+ Zhuؓ{ QgV)`E]Ӗ#S,_v6&Fp]幀ݾDl+ݪDܑ-u7YJuu1,kxOY.ѵǂVCI5?KHY.QҰ$_}/S_9DXwIq']pe\W=1WM U;޳W4~}F;ޘM0 XU8 aL6lIR5?:%2 vlzLwP%[MWG&,n dq`{nreDO;'"1{So왃sۃUI;E=9b_9/yK9/ %xe =]"30 bG*"+@~p+Tmrn8% oJ 5\f"&HFa`7کyuoZCE4¦#˦ EK,&;V5ҿES獮 Tt(Jn=K8P]oGj;UuM ~$G5i8>o|+ v W2q`]1|0^EE>H/U|]S$[sm' ;;uOBrSדTt΋WY1 Ŵ[Em#f/K66BN-Sp# bWh^ w4nP<.B7A_c,O^XZHc{Li&5ȖL? .\qy'fƆޖG>i'J}N҈`.jeMs6v);N. rnxf-m,2j{9zD,Q):wfY}Lƾ-AMKtxxks/@SJݲ Il$dKEϊ$ T{/kۍc-hpC |i-Ǩ5dD0^62?_y=wAUj*t> ]\g D$IC +H &\͈e # G+bFCoװCzBw(3r!'.vt=f3u?:Jk[6+Q/FY5R5=EIHRxݳ MyZ |洞[<.UM tT5L_dc;1̚Zs)^)ly U8SDp8$ ypWIa25BD.tݑTZ6(#n*0{[F]$'-{(:)/pdDhbsVQo_^(t RbY$0o@6{vSΘznav5ч5g@fzPljqttT몱:fIvJ˩ P';h>Lawp[Vr@)`:v,l6Wvg mꈮƖFpdK$%_BwVLƥFQNXWK|53G X/na*H(nt\[rX )\VܚBG_aUg\1Wmo;Yv%/D\e M @)![mdKUo[U7}ڈ&T%S)^c=VRA*i<&z|GI'SÜzk2,I<)`_aCIsohא/$πxL^nwvD˙9WayPvLU 3d\gvz_;e{5U^ PAW.C&-Ec+aX)m-NOWyk1B|qH2t4Džp篷fEfmrcNĔ6;/]4:;+s‘G"8,Ij7eU F8e}9 {C ˬ*~N*QnG?6{JibVt>fxswAfG%Б _)8_U5Nʜʎ[R)UjH,RS jZ GsAlܚ6)>, *@2cVT0SI IN3ezxsO^e  J0.bT;^.y.мT#v)0иa nt4M:|Q3W Iz>OK|P$1~SL7n@}Bo(@`T1"8š$V|wpD pުӑIP!HBMK19ȋhT,_A;BA}?ųxkDKui?jXipQh'F&z ∹Lj;KO\\.iˠ8d5x5n(,Ƴwt+Dq aL±߼Hѱd?Xr9›Ss-̨l b r%$B^pj&+o(YLMxx!x]3e[f<D0>LEFQ?@9(r]?.] `+?#iy6څ8,:q0xb }TϛMHKd*x;E5-իWι&-6~-\$(R@_ 0f+;|ɡcٶJ("cKl ,97NiO!y~(37ȑiIFA[JE~>wI$ "=Q߲mLjwU |֣Yp4AC^ostF'OiFmg}TU5?H>'fcVncn}WrޣIo,B$.cwa^}ALS( Qż"*+ Oū(f"BUݰxSuMg9ǝư Z'$B1)49<-n|bitлn@gQ/[|5$Ç5hSRBJOU lc~n-c2V^oǀDo ՘DlPu]Q?KW{H5y jbl}h-ݿm,k>9:FMޏTgcUNx…?F`^!^ Wv+`ЫN,[&)ј6_XIW}2 s+v_[$Y܉:%ŦRt{3-{LR`ra)[Y7aB.'PӼh#@_)gu%7^gF܁Rtzkl3ȴ؄' w7P\aMpȌK6$)i,py<~j >J/i\2eBmf^ěDI28G" 35Z% }Mͧ裋0''XBxgP3 1fHnpfh"8÷2Vsu[ %:e BɯX({wMȂ4T`2tx5v] 2x$W&K$' ^[ ĥ NfiArs|*bR#?6)b?Lfw gϻ ;荹'ưh0P-#ban^2>qL7;}a=WO8_Z%zc=kDbW $ly7xQxe1G V^QBmTs@"UX<$0s+9+$+`YMQIhyioú]ʙXU-5qCtzT*vfJvP؉?ʊH weZS>fcyzV9Jޣ]:wMA'xK\:$.bz܃Sm,'.!` kuz_o Օ:, 5 \ CW]qfsdGtKN̻vGD[Ii0gL}AFDjyLt34c 'vlﭻD]׶lI?T7}(w}9Iwfgthbɂ$,fz1Lt ?iZ$yh?4f$%#R4NBg}>5xd{Z2=,ܾVe1TTqV+^@;7B4ؒ"YhϚZڿUdw4~t iE+*7Ψ'G?v rEn@g -<|Bc4YUN^FNwD46%иYHhʀ¯uHu{*lb@cޚOɼC/R&pԎ !HӜFԫ+uu>}⨴~T+T_VGԬ @q~UA˷Muwi.}H]eB}x fn3bQ$~vZc8zKA';7A5,bz)UV$ʕј !~?VEzF+ID z4y* œv}Oi+7'{CWVX2S9>xFg.!PR ?oKeXo2݇99b$6^>JwgUhOljG߃MH]N=b%)-恏Aa9$G|KdJqa{͛`Zm}sAkTߐ>?E[WT!{ՓVwy=\\?k>KXB?%DP"P^g$|`,OXV3v׊Bҍ,IGeG$kBg49oh5c~t@s륇Em7X5H$]m$T0+\TM&͑ Ono{?( JwUX.0&nLX+QFI# } jl~v"$n[wVlweD巚s2)t-M&\bL+aTZHez,n+MOO!zvJP]e+ +x#pfw14s]d"۠fHEa LёɅKDqUuRn]M}on7rXg>JgUPb|5U&UšDA׼)?8eci}HڗN(^掫2r6݃)(LŭO-9ukHkglYĤ\ᵎqi{gel3G[mÇ% V?SrMECL1Sט!GGYRUaSͰ˺hXiKrmލ UeviJ0~hnn( 0z#GM,0a"=<];.&!F'4aR,$BK$&èGnLsGW+P36V*j>C@HVX܊B".?Pۄ2`0_<<*ĉstKjEPX̐;˚ bhpӃ8cAZ/P,+t.M7z)1s(NgNÚ%־cq<6sJf|iC" <"5N"p'F,M 6 䘷WժK!um-PX!%L"zb{7]郹YP֋QHbnlIP i^_-ԕjn>#% @riyS2%뫭f6DcKC5&6T!MEP $RA{fR%!e+͊Gni2k[  lȍ4ɰ)g3[{AW*gz;]Z.9{09#{Lr%pث9494I֐]M?V|{#sBLSr3=gyT迆ǍJZm9‰i/gE[$G~'EB„(14iS^ggkx\pKYlF ظ L~%">?]pHpe:O)㭮fyխG&Ӹw 9;tJ\)DtW+8%Y"si@*'|2_ԛj}-K[E@I)i|E_UEa?c;sqp*饋!.h#^YWhO V!I>a[$)eHY]]A,7*D'1 [YE:<(CJ~Wn1nډ~yKnBηP9ćm`@O:E}tC~ͻP2&.lz){?ڄo#UJ[. Sp'2؀1?{ *lPSΰccStUJ.b!3 )1qNC!=7rO*>Xcr 9Co ֟gSS6O .zE?_:3F I9EU"'rG@Ze!< ;`+4 9 xS7EthTW\s; $S$N6o|1a10IBA'vÌwՋ,!m,4k^gS)@AOQl+8>> Zzghݻ{Ix5*AK8efJfwA*\𨬣N[VǀʑBt!LT5d>rs;P^p'1p*_ZIXln+Ȱ]XQ 5EqFVi U v,!{cYH+%_J,:?\h2h桡BcޜHŘdF0n|vZŰ80$JΨ~KA\O:ah8.m"Y%c&b8jЄkF|[-?D=]8C)Ϥ#AD0\ Nxt21q+Qr^wZ=KZGfV3i Q D[ [K-]%b9?xj^%}}ZCtFl[og)}lc\˫\V,1/m;ز uBmlt μ 8A%&v4]lb(_3#|Dܲl@d}4cфF8q*Ҹ:+o"+/4^1iͱԸo#4Qez䵈6&y!K;P=7'~FɈd.!&k*QBgQc07,hL\|Ko `N0QP8ќ ,r#@u3oNJ *%j rxDf 2"pc(}6x)FwZي:$>[t:<{L=D7G~g?O>ڇ!8] LdiF|5`-L:zJ<ؿE00{^I NbғR#eVEWYvKw =Mxi!3)3uL qEU3:}ݻ<4'Sw)znvoF/ܠ+OS|=2aa  ۊ^ҦUšpu~*]J`ٿ1!ᵯ|gY&ѕuqBPApq\shMО'a-@ .DQ>X#@+qoĵEcRH;}s1ك ܖSfG+,mn+pK3N[\Rz \%xk6}l)^_j*U^b~^612G:M|;`9QimUMc۲k@~ dvra[ToeF5T*1 Jx7*Q,r췀Că&tiQA[#>gO|EG -i=]k:c7# I) `|г^\`)񱗯AE(e o-&2 BCwYY'&+4ȥG݀_mgUmleigH-s l{&! 1 qKcJ<ӝ)!rL|2#HQĈE5PG5 ]H3-an Մ> [9f071|??VujXHbk 7 Ԕe m0a&[c,k ܯ\LQ҇Go9Ve0CX^oi&Q4Xs}VDHbtllIK 2k](r Z6EƂ&A,ß7E3§ T߶+pFJD"1 m=SRzpYk@!HFQ6v][0g]i q!#8#!IdŒ捯 Dhuف hi߫G '0H"N& %D{Έt1c>yYgS=ZP2COjvN c3E۰+ ~l}<%]EP_PZ踗Z2W-]4?6Djo񊿟\3$yK,Zf1*Te]"bayY=klf&1䱩 0'D..xsSzwmjuƖ`c%!S1'[bwL4f f.ӓHe6emEt.blq5Z[?_%iE%g]r試 { >*n٘ J6DԩD)JഊE(V pPޖcw=x8$.MGV7:^=ɴ, rPuԩ/vH[-^p59=P"*0)M\u쒉T{V>r{U#JUF*zrI6 AmB=b]F60i+KL~g@tdV <{ }an=gsF7z'1m3 ١Eq*7kBu":bEZB`'MD)"))Lu#޳/US8 AYqg5K& <)! /^R9AVn=M9a,[2,B[IȻc~ _%&ܒd0Wie`Y}+3~%㲳A'`e[)Hnd‘$%'C17:k%H+54u /M%>`M.z1UfgD"wTOOB/3k˒V_j7^5ɟ{qxVG+Hx?y(7>0ˆ)_dkӈUCfzd]ؗi];rD7>ò=hyZ H*-Dws4*WE)^|sX( {+ ChfW  >VYؚvJ-'uXÿ턨"#҃6X2%HtOvFr+ACkd[d5C(J Ai&Ul=[ə+PAIhmwY@MAjH1[LR{bl\ݱ0d] ȿ+J 4`JB$5{qrH HJZ|wPrVdnbc^X{g/SWhi[k]Rwn+$Shc,j 䦍eP,XҐ-jp *9x\O5g=l,.E5:mIƊomռkwQHYu- 0?Bz'pO*/D^vP_4U[= eZcW1-. $h3/dFd њJPN1rQhu% 'ATAe ɀ5l{[ =E)o\U+}/:-N) ihE9p+X%iבePL*C;;{E˼h/r.>ϭy=꾩JNGeA~և}u‚8%+qrXekW—.7("z 3eΖ.&}^Ƣf?Z($qpefmZQRb$E喅A~{n~tV‘1l%t:۝\LU0fhek{u)+#eawȫ9x@ȡ\"R}_"QY^1_YX8m:P!cDƾXЖ>SNCtv)?RÓqt `(*)F 4Vŋ[n`S0( C0W|&n[Blb`f ZBp@,J:S-, L+&y `s6=2#) _DA]XL#g DN%*P[.=G\;Ǟ\]Î5J7կq(E:c9ԂU'IMiuoEM[o%~>Ɉ3<$}Đ@d4֏ޝ_ Sߡ[p;9 Jq5OEOr Xs[j~KCOa輻ɤ^z&{9yb Nc}腻S9B,9g"f?Ëͺ؟GDl*͙mY3dž؃q}4͙걥Ⓛ'R)PO[d-1Wtyxll?̳Үv!Zf>}S@o}3UNֈF%T.a8}ԧA07T'^Gr 0#yFpx *0I5{6ɆНՅ^ڝ՛=."g'80lz:@Ew# J2|ev^I"OCruǙ nwS2$8JZ2y3-3,p# e * `eI2ՙ&.*W\ΙlSr7h[f;  SjHmd"'uM7wc/K}$`#^2㓾{6m35 Tꍲ~~َ(BzĞ}*N&]%gcT"=ҕhkϹ./of2"Qr0ZǷ q~r :!>梮XM}@AԷy#mq$_ʷ*adCDf~`S~X-Xc} cH>D.9ںLP[m#Z1}Ԑג[բ(k8:{Cg_1 [DHmRpȧAӢc7qDrm_žEv>_\f{Y5LBu t#č Sr"*sO]uqQgf~ Rv{ K k:I# kڵ[3{z|pY™1a9+4͹.AT> ONs4X]d~:tcEM2>9W 3kokwsXn GJ47pP~BZ#b2BN5g-NA\1gi˖__Tsq u}Cg1'# ţ^ E}lVQCHԃݤMƈ0 >v m28y'cDf=A4%*<'Fq0Hg>{N'@ڛzKcm keS0jdüTc,Oaͽ}Yi43$# .4'fg)5\}q ͩRyvSNMo԰>f*'8X3 )LrOPz;a៷$k 3I,w({h:-ХIPq8gʒ|mv<9#C-1 fH %z|j_ ,AHR L~j6<.{g~'M\w)Zb\9 gVQ3aD_"l\^y4P¦[l]"Q2H1UY:~eEo pl] y#VwBc :JHaM B0P ~224[+89Ek| ׆p˺u9u'e1qlD7R!#guU-_ѷywa ^?OtūJ0yn ROю3'TFMZyi;4轄0AKlMT{VU5 ^E  jHtAsF9^xlVq䍅r[F;#]dHR}ZᠹJmtv iMg+ߗ٨\Sƒ1Lm?ށyztr$ZNڏD8e3.Cf\o׵u]{.bKl׻Ļ~f7ƢwwiSDgjreKB? KlR`J4Fː0aѣdYbYMiq|qQDKl8# EQ{jcDN魺!O;"wL\w ^ t\a$;'8I M8;:(2: `*dm&a+=ۜLW@9M"@g~S.Vxue2xYLs-}׫ f] W⡂HFmc迌 dˏaHi(@7> {9ZU$.] &ggO g; 3F'RkXeܧWZJ‡b}k-䊳1 ꑩ]Wox th:ٵyչUoF㦰KOٮZ7C/tN^/a_ OnD(0%ÊglC[FL yxq&hCc:ZsFLu4QiPX_.]N꿹oBcF6s>:`Ji^ߩ뢛 bԽKj-6;ޮ~1[VP7%]5زl ނv%{ZqP@$J0HkSNR Yh/!}n(]B+x,!&]Χg5fB5n%n||XTֽ&q8*[qZL_FSFyZyw B g>XBVLh`GLz;7@PCst$KlP% 劵Oz'?z)YۚLW_-1t+>5TJ85[ ғ߸?j7w!ZK*:'QB媍l Ms*UC[9b/9x!|I!5ݘ(1X82|f9?sk? &aw_B0)o27.|&O]*ɅʊF}q9My?C#BCeP :i?)TNeǑd;(8-"| 3*(i߻H ӊ3zw#@9.i4ک8d.ֳG^6NU 1w+L])/Ж[] u+?wEY6rf8%KΪJt( ,-qL+T!-*k7h ?䤯gQJ}л1'IJ=}:.1֢ie8>Υ,EcIo,@7t!uZPV \*᷼ѭ4vS/}4dMhttH㹩ryCg}fBsQ(5b33yQyxɞjIpQ0qv̙`IiTgȪǘRnӔF'?`+UJVuthJ]mjn&jǞQJvݳjvzSGuCę"em̀ܜ|Up=]pq\Wr{ΆTes! Yt?G1` H Wy&* eZ6I`CsS(4k7ڻXPN, tkpH^Wn!_G?MN“0gvb p_JI-EI<,pf[=IZ6J!iĴ'" B8V_.:f 0J,WqH (^)ntŒfU5ЇREێPteoFXdA#pᅠaoZ,@4:h"1֚C'±bmTuO3Y#'38_Kg]P@VmN#jo}"W7R L6F%!wSַdX1vz(g\X7/u|mf5vy8 xJcUi{Qvڽ*pgՕen3)Iii,I:(`ғ6u^Ɲ:}!hP 2;@ٖ1>l4j8u/+ ҳQi_4ْ \(pl`4巹^]Uo`KBh!ߵꇼ2&,a3آ hb iO 8NQH^0,%^eL^b8}%8㬎BvOo?Fj+yݬHĔlʳ{9gm9rV'" ic2ul k,P6 NYax5kwПH9b\*z[ MY~\쒧KGWrſI/IU s,U *\0 k;dU]fu*aFMd@k@W0܋j8] rbh:nH:'ۡ%v%$X n_F XQEn,;hT%&Pԫp::r?4_D/bd;)yH55]t}#]Sy?۔uY3[zZ"6Z Oӆg*_m< `=4;6%F*ZV42nz?͕ZY8 "q'o°2Rsݼsrכv?Gmt ZK`8O]v^0D=cvgNZ=]&vs$+n T6J%ާʢ-갨 I|B}ݎR(D:5)(*fސ*/+ _!̂S`7-]˨#b:hM`+}߁ }'@ܶFGQ]6g2ŌNe!ḾU`ԑ[X }.-G7vY#/(y'_?~pSTvg,8 ױ*W1}aopơZ֕Ne7ڨT)y0$[oh|0#.11/\ZtJM୐`Of^pkPe A]=Q9EۖU" fSN~L(S':L$9MhG ks$E3/f : gZ-Tb42'`Nj$zF;m8sBħkB8juoڒ!I& q:M?^8` .z%x mpe#U'*u }ҁGpvM.=l@`F8 )ަ{UW_MW9;87kFBӧTʄJlB>~Eɋ"0VYYChx V-g :'OQ8~(7N5;̐ŻkA,3,\dڋ`^w8@eFĮLJ` ˬil5>癁H .gEf qr\^u1s M +U'sc"}R@_%_48X&/͵bxoc|HdӔVZHtju1R:+?ҍ8ޫ}euuHEa "yY=m/&r0&YmQݎ/^L~g` -^'D2X.gyGFg9#嗲tVVaxo}V|0n1Ek^=LdKtu%4ZPA\L[%ëqgXōj#u1GZ,?!?{ ==Q|-~3 PS,ORup8FNO48UrӮ#AޥG0eX-̧[ߢ×@oJgtbgct+s<| 8u^ U-GUţwz  qR{i!Dl/֣=ac0Y'Dѽq4u6~X˅O[ە*JdԆ;~xSmԣo1S%iNkhDlT%Ă 22mIm %I@V**>alu%xmPb soI -Oa+0dGjt2фNݕ\Fw&}5g7mR0ЧDE*]}DOL9>H%[>-&5I BAhVN-$FF;AۥP-?H/DeZ<ט0I\}FT/߼m ~&Y 1CX0OvR7}By N>H򘃢P;AySG"CrqKc3o[d09\i Sc.@fAy52`$)Ue#_ ve.ޞIY@}e XJƍi-s|_G66W.3m,|H?DXC^E*9>^| --= >CVjT  T,۩@ewyڑG_ФkGrHX޷ kZc4}os;}y2.ֱF8a96/n*Tr/SGNHgb {b NXٲ{6B.SQБ"yR4m\9dY!T{&sR!U~>Vs/$tУpF2b;`p3䮤 jĒ`%RwHp\HI:eu͇\O۾ @¿@PH{W>gW;\z]>͠CDfƃC5NYLvDz^wg%C#G cX|~nW_WZjReNaw伦) (=sڻKLF`b1=%Y{2i?HVmai`xxCpA$)bS0j9J "/45 @B g+wۚ1OaK(!~|D.J'%tp EsNJ:NY!Y{(ϮEA0htvSe_| wHP.HD#w~_e ϮQn!.s2q'8mB^lE?N-`ėuzqI:نάKfT4 f'hDb"J=Zv˓UoLkPpKYRuWRz83 HC'%Cfw-,4*> }ao^Iw}G5bT.bA>s ց~%3,9ڌG&\WA/ 6B$Hqk4Ҙ0*QR, R/ {z?bu6t2#@-Q QI!ʺC6Z3i ?eZ70.Մ j, Ɏ$`c!'g^(WLItj$xl TA$ p#Bu[)kk~حXk/&L& 9a|w|GS: .HaU pyc*UE@kZd_;5-|IϺ82 7;l+nchODz.k6Jߏ(Fyҟq,?P(Xrd^N,iI=GOiWpTë 4%Xy7NP>B"?9Xc&#$$P:<On%͞E ]Ύ[꭪Jɠ-UYlAmNLW!@-TSd%I4WPdKLbbD@OVnw!q~Ɗ/hE HprHx0{>q A:m ;X -agƈ"܄Ij6k7xo5X$"@>DE e">t,ՆT f8&nVҖ`iX$nrd-2`9?GE3 ;-5$m:M-xJWQ&eNTg*b-ƒsK%+̏L^֮FU50qvWSuqv<,( $=yL@{{xgǝ 1bflq{k;@aq&&0ۓ٫gAypu$ˠCsn$unN0N:hjzdKF'+L#Ľ '#Ղp:θw>2uŤ0*BHLFCVɌ,m}!_&BvIBK?:{]E(DOO ;aT*Pbމ[7]JWTSQ^L)`ݲhV0?iuNGcvQ8(g\r<=teیv {7JȘR,Z>"kW:/MxOU ESfo !R 6 /[t`/R!'hZǡ_"S;q{;󗼚3О'&Fs5zKpAZ-%puhG SCCC(űk-,:H:բ0R$G$ @],}[m~uVJBvwN$8iX%2|Ω0Զ9sVݕ5mtٷn=0펠I“I4]zy\gh 4^ r.T=}%0&nj]盵;+-IUў/wibeʭ̏c:6lC!O_{y\$;;@A+_("r8JߌdԔeωKyaڷ=XGgz'"tɢ)id#GY05Ul7c []j$}hlMCfPDxັ@E#` S~*9Zq%7h韻d/7nUMf v<3{7J!!YHu9(`X|r^{w7~LV% P4ӵ'Z.ǿY6]ϖJj҆,('8FR~u ;S25@_֎ /d5k?ޑ 4:$6CMeK)X%,JMo~v+yڥZhaY9x<,b>0,_n5")O<|i=a ?,r=L kLi=2ita<+fFNMs1"{f kӫ[n]UFg7:HѹM;(eqeS3 +2 eS{}gzJ^>{9ൔğA\42 vQ;/jsoTPkʫ'a3UPǨg)ŶJwj, IJIV+pI] s7$Vd.&$/~G>8.^ \Μn`>+K-P F^ߞr6, ZfۉVƯ0 BSYIXIk!r:/ޝFs&0UDГ.fZVdj*`RҗX,DQe+V'*Usw2.q~90 snהi{6n%9QM|/|Aen9;ˌ=EЫ Ē"ȑk@C?rRej~ yּWŤirL`fsx CvqROepE=A]Q QotS{sZ0Ų ax}Kn~S#g!{)Kޅ;roa>*>r#x(Ee5ga" IY# sw:ЖCIz R >7O }N)3` G mt噳lK~EN1H),0T[TOMw.LgK崍 [DoH,ҐC&Ԧ)x֭5݊é[lܴb&󳻯UcF>JY6M|u! -73vH0]T4D7L!Д#ڎ]M]Vu"񰎷cȮJxTPU%"RFŖ+^[Y܋1<)V\yiڗ 6c@'"ɯV.Uξ"$Lo)4+(NMHvag5=&<ΣiSjC uCO{H}\۱ V=J[=jjgC9e Nb !Q%+` %;YH8L[E$i{owcJo~Ue)PsW&3`1|(3.<-e|P"azGLM{;k$W`mkp )#CGt=oOD?KaCYsp8}mpiK(m#jk=Qv XuA&m9á]/R_ُh;_yJQa5,[YϖkqI_%dbލiPphiD|AR$[d6:կ%.ZͿys0a,wj+U茷;':4L76^Q4,`{C:vu^[M)bt@({R l=&طiL5\ *jkQS Ob0Ÿ F!G1ߘ?k@}mNKeKdk ؔ 6=1CDMFa[uꐛ˂ΐ,lBcG٢`M!j}Q}GZN_)n0a"F;Vo.k-0Pl {sx2&DzIďvZar5yTS% pW;R'yaBaΖ3~vbu,Kwڕ+حWEoA!Qt(Yq0j.^!gW :) øIm2:lKI1jsH+a@17T״&`hK-> ~7zTCUed2Clۃ,i2DGC\-q@\޶1 FUFZ% 0tLgb`ӳ|!Zss ^)!&~- QNu#S?l*D\Þef=fWf_ }UA'6-eZw<"O*gظ~A!FD<11)S:l֮oiáMrjQ?#mi:𲝒;/=~z.wmLZkҺmž&,MO.ع^?Ć-k]h~Y'nS? ƃSP@ [[C 5W>y OUЦNHtMaӦ+oNʽ4a=IןQ5Į3;>U!'tCuf2kIM4%iȻ}8Yb$m&@G]HdU(8@^oEUISY8JqJrS/ƲŸjiK2~ ݭ R,ʘr;dNbø{a'MkBc2;mQi!$9ykapSV{OkKnG$QZidOR SCdZCP C=): tYZa!ژ1a+ BgQQN[k>x>2YXr>{wȈoYK$)^ǣwNn|#Ⱥc@& &>'2x +Z,nvY3Z˻ ES(ZN2:Beleɿ# K~ƯdɗB'- 'lZS˔A`׃猕 *PzP40F>bQ6WA5@}F U֖ <Ȝ3KcOfG*oX)_.]W~z@\%6U#r`,!ǁ-Px,ֲ<#f4rkFi]@A 7<kC=73v&At0pfU7' l;؊_퉜ZH()":reh}Ǡ$9l+Bb~&x+jvQ`C,G$Guwt<) "D64ѫg|CPc4Ԟ ~uXޟN$N 0Hq n9\NzHbw!3rhQQ!:k!Μ:[]!dR[Vw~)5P}rjFv9[پ_qͱDiԌ'(`.PR XF8ŇotХ1.w['Cb2Y(MjYǬ޸# @Ί!HD/ꏆH݁iq/.$\2w1B9ؒpMJa75UTZt}^>G%!Y}b7 !^oʹB! 3ڜŚ>D(qT#N-Ф;RdY8w*g骳g&@q B ڍ,0RɎYsyJH{qY" 8*yl.?;ncs^BUTRWUݫt,+֛ ʍcx%,Di?v8 Q"^&4@KU40q 2930 F>u׈SNZ|Diwnj 7ycktZS"\E"So!Y=Tq?A$ve`JEf(;X^h+ Vy'7bU Uu&xQjf(Č8n)/!2\Ww"\Zg1]ZsM~Srz(|N$fy|%QyQ!2XhK\2̑S~sg&Cug N06ՋBq&ʀ8)ĸ3N[ t cc 2bgw `w_רS^ Y3NI\.h8;<Ⱥd2=!%r5ʡ4Uǖ}2 )ˤڲTe tSGzb #5=MMqA^gl4>]}i;#tqx*KmXoU9ha&\|2sP\RCT31K!ѧ7 2dQv KNƲk4~s`CaMO CMXo݀X oi$Q"P.9շpGFh*19ܴgUv@G@X] ӏ g(iĮڭ={@ļ9O`v#:<߅9C9Lg)Pa/¸ՆȲe;'aGo4 w[yVdz|%'YI:4VյVy?wupPIX$cӪ_ pT-a+PmYrGx6^3W*NeWLI=X` jz"B.h֊<چNhTdMX;9ʕa-E)ifl׃xBIfMz%)rM8W.R)BsMCeؤ!wX+tsڔv|'z]vtsdF:a֎O,N!x{Iߒ[ *XaD{؋od5z]0_ַӆ1>IrHmpwm_3{Cs:!x ¼JaBӢ2D1zjpӞo,bw89PX'AW38cgjL>~+1$._"E _a 9Pk+AzRO\}ykv!| 2pα%Meb&m>|23 0uS'|c/̟կD * .2BġOK>KH0[  ֱ،Nj'du.{xZ*k"M0=-ӧZ9E-_oQ)X4ăg7h|8^LX^gֺ~Jhit]\L}ߨ=lڈױ*B [jȦˢh;kRqp5#k|+xi5 ţё~Lqlgٍ,EI9&s)J($ail1P S/|;YGkf M/`(@yP/%{K6`j>iC^.dRSYS i*RmG]=&57|9ύ1PQ3Eaob$0 xB6Ǔ3Gm90ةVxlm'_}ampSX%; $/rmQE\p}1[!j}XdPw8?!gDJMFBWOYJ"#-Anj"+L1!dp.h̥tl7F,IʝBl@k¼j>Yy\pGS8To/{dS)_a*7V9skf2wS ᳖V綾^woF {{C[8 .U_yz"!Ou~)xuOZ)'AӿE_Y_bȽiNtTH'eVhW؀y? LZZW d楔>Z}8 `uM~l`0%حl6НU)I$$v{{Mdyգ`t*tYUX:;{$װQi톮a܉ aIj:!#ya0}:$0Go lx@Bih˜-~J 䬢2<XnΝA9fjܷ$Ylg%W{amߴ码qqji&}e#U_+D+b_ùOW-XbS)S vHle(QQ&R9@J‡ O׊mzir"?y8W$>Ią+ I4ntBuD O"QM<8FkS5\M\o ǎ!]kz<&cGNl 5&l()OQvG0R?5ʒ0^]'uM>W]@fԯl0cp+~Rm,osV\ $j\˳JK1T/L2؂Evҷɱ Nh,6@+*^S 藵%g dwϮ'åh46qjS\M};!XI#v9|˟R^M{^ JDcy).uTj=m 2<>kT~brà<6J?xՅSs?r(PɕF:~ؚ&$c;$蹚F! j>򶮇bktce'V\"-Q,aYsq @!B8fNXj^SWu#a\LpL΢|aF4*?B ׁfIvڂޝP 1dw^vZ(zxUv+ 34Cv^%KWbY+>)X㺇Շqj GX/Nϥq-g|hd%刍fwƒǘ)F&7rS669N VވH\Pl+1ONhAZYDŶ:MɺY@A&͉h4#7S#ЧȺ^0 [>Z4&U$hi+ 2ǯ +v\uP0iD{w(z㨨vdK}T9 Y`Q#?1o/7?ݸscrfDTmWHHog֍٬rƗ0Đfԓ`N/Kς"_9$)d]7an2Tt;TbJG%e`%:_ދު}h0C9!㼯`XQrn2ɞ,'x~p FXmZH|Q۝!Mf=SQpny$^~H\,r:x=0ސ*>}7+5n2?c]&۸zUu ܼ;?A棋:w(JJ|4e;N`}yzAEIRt/U}9L$|/0̐\Ra{M#5!8C4dNa-_'=9w :f@XdyAEIr"LDVR sojlÂ<;( nq5Jk6S~;Æ+4 n]Bȉs[h(6A!ўBG\ Ֆxuث XL]@RHB]]$ti]r/ *@W}xI;й"߿^]W} 7.,Y#d==43F,9Ej|N(% }d9!-mIUbΜ_vvﱀbkU%;U›'%vQi58L}:6 bA-!V~ Mf_KXybmS? . ý&W};4hsN^nh2;柴B1R߰/({Goujq{U!ťW/ƦEZ_/ߎF=Pp0*YjH$ՙ4H^:9"[v8gPh&#*r:mf?ɲIse f Zd7cv-箶uESW]٥ =4{<R?=bؾgne"YlXljg uqxɗ-vb7xrZR$LWImn2Mr$8Is}Aᔧ>Q~ye ruɺӀ5 ڿ?#f!zR&p3K#jx_\8gm[(yg&ឳXxY}%B:ҧd4C;ScR;m!-@=8oj?Tskk}T&|l1Ij' X[;"1WL!A-d?-Nޣ+V ?Wړ13xnlOAm [!M!"H5GU6d3)A疁Q6|>3‰Х |dž1.v $$< <޻ű[^NgLP k܌V_XoBN(kHv7>{X3L+nF,ߧ6sN?Q8]9W}*_]Ovu|(K_#|[HJTTCu2nӁrA^ t-k3 a@1,70&Ds;򛇞dܩ__e:ʻyaT6j%|ήk h)`Z\8~|~7;ŸO|lLǐԟ9nKFO]U= ү"dK PﲅL>?":Ck fO -8_at+ZH4^2C;v}X\{6j4,KyTw`v &o%OSֈ<(LTx([Zrp<fX{Ḕ_Mab钼1:XXu\[I{RnuvOC<ꮰNBHeI}Kc)ІnIEgܫV7)8?ƐNd~YXg'raJu ""X+k2Cpo*_ɸ[tdEIv4@ut-u؀ut'A㍭ eSṕYIq!TABG999ևw@iwZt|@OW)fM_F}`O+,1' aC 3na0;r6WRYe5G\&s+|Pds !׿ D^`עgƬx+7V\K^e si2$H=]s΅v͉vk'ޗ1ݵVWg@x F*v:iZ| &# .p1I MHK>B#f{yu(-tKij;cw7ι6QpϲQaﭵә"˭(ggaޓ:wzTO{pmgY@M%A% 鋂X?YRHfLTDe^?r +*Jf=)m&yw]^L,4BƋ %UФ]V g $7%S_l[ }rTW/3BQЈ|~XqKvjh: W)6XCgko(+GB ܰb\u9(=U<=3LTҚ\|ԺGkmnOgK}ppH͈Ng].%RQŞygĒcG$ëc,ߋ>L)`-t4E8A5-O$wĩ8G/mkEC6T6 ~DqxB]\qsX| f U6>.c uaIȋ\6!e8,[BC7NsPoaeB *UƺXf,QV@l|hYFsg6"<ʰcނ{/c#oYR^8hFqw9P)xEO$2zOZ?q__-5*ͼo~sT TFWB6L?b4qp?!Hw)g9]n}d6bnl&̂L&^SF:-@偙Pg®P<;GI(1 ,i+g/B# 3΢`ޓ*8.tD6l47~;F*4|P GOa`I2oJ*2ǿK?ORR~B>[r3CTn0RB!rѪLeMNv+i&FA8{T+vP* Cst P\(ϔgn8ʴ \mZ%`qΤZY}3r?~~5M} zkI6`"S EJ"Kݒt݁zPa<'+<[kۜ%zD4f,xe!=>喪i&D!hψ~s;g~YX&\(a[H(LNϥ̉y>`i L}浰+#7mE&)vlAicQmm=.ڮnM"]yrj~B3J|7tP#֣~( !剭PKf+Z2SD惙n'ٵVi*H*50kFh[{HM SGi?<%C#12@HRNg~Mcg3L-=S<^/mג= s&YsN}̩g+Bf<'7SoDh4PG۸ƁDHH/<^DWu>T[eEbLRug SZݖ7{'g:깂LDIAoJZ! hq.@8[+M%qkC4@N=%a{hvY}?ǷZdktO B"/IZ_%8 XS#BMH78p]!ʙ{+lĤrJZUjZ1B(i,mG~·!sR#u7- 9@̡6qg#â[X~rVyFu).l&@H3=ʅ$~ZPi:o[>}/seUgߵ,C>b*%Vw0Ɲs3޲Vq5RZcRS Jk-rHm:ՊFB`h",TD,r|r@h_.b]͡I1ba\lC(WIB$k^NQ5W;T*붡'eDcJK)ȭ* bPiQu&UX1JVN@֯߃"7u؅LWx?܂l}>^[G1&ج; c:aL(Unqt:*e_>'ճ}"(:ӆ4*<Y.+՝s8f$$k$IJgYRje؍P*m=WoUiTt/ DkD=N,O ѹ4|C絑~ŏ3\CZ)*Ir" R<1rZNF oĵ\SJqB&e 6E9@b]lLXDkPF5C4e85 Jڜ Qnq!qmV޲)m+Qdx)!+D,҉df菽[.xcHWxQB,2莩2!{X84EB4?SuvshjFzAwP@<+ L5d)tmZ)vaEBH:$ݣmt~\(axxi=",m4[.~N<$Lׇ>:B԰6!'.И( 6>u|3ȝHcCxpͯ hm!LŬWSpbZXM&`R&EB; w_~AS6YNRumEE"SuY{S{( TV; \Qe=v[f@>+_3YH/,h1LϬ&&GIrD'=D Zrj !waBT] +d,_lk_A41=6ojb##o>@BIKw??1ySSyd$:)ɏ6:XŢP4yLkqq.Ga*.Q3/`(h[N'o8Gӓ4 .^՗e?:c?KPgR2e6p! 1J-1@"AE!x"CWX**\B,^ l4mFUN_a.1QBvk!mAa9B lg2dM2V8~]S3h&\x!9ɟWmصT^2Jrh4 H]C#'W랴\G&ӯ`Z[~8*ɾZv(;qLkyf +${x&[t02$yŋ5o񘼯Q+EMl.Mm >LSkr$iD2꺺orLunGFՀVoS &=LhdNޢS_v{iFAH,GUp--I, EmA|@#mIى*0lBl# _uV}tX˶؝]98TSLl|g=]r3g5UQ Hezߌ/螉K72X/VPLNZ(i8St5p#zzZ|))BD@zgk m<[nu)]H$q;Cn@Hsu ; RXlY\N?blп9-lsS"xҡǨ!`d|Haמwf+0-3Gb-fΟ4q/;o{O?O/RQaRǤκɉ{&\ |;Qh175}l{,nzƝJ}.p9"X|1')в'W(G#%$ՒkcXJA|52vh衽8e"L3#x&ZWTf~`Xߟ"$0P;# :X`~bݡ 4Q@ZgˋBfYTm\τ}Y@[VI}<@T>(# @ 5%x@LLΣ4\87k%^{N1{U\5ܲe]9YpzAqH 3SodCy8v"~ *h:KZeJa",g)_e:!Z6]8 9 BȞХ6+=KQw ,WfY&[$tk:!ZI};#@8wǩ%Ԑ ìX}[%7EeR15e& >>>$Cig;8{Yx>4a-H Qz4+)OF!,ĹBy:Wv[*](Ob ;2XBUɕ%lbS83V,i~̔&+6:o7ƞŷ:ǨA Ěs#Z-Y0 +U*kngqZl>:- QmNԖҿ۸]9 de;EazʄHu f\(|} 52]5~$>=4 ,M&p ߤL ߅N;,/VCs6W,zKoHNK Du!|> qؿc8 +"E ;R b2Qd]Z 6&VX.#*c`& %Ě5 2YЊ*I1f3gJPіd?>!ύTż/K_(4DZ$ex`k?Ds斥+`*r[#C}[?xN.hO8m`lIWo TRQU¾ZnrܹTx.',?޸IdK(+^S[V]kjm&dbձޏn5>L'Q#vI CRF;t9_pKx%/$Oj V7 }t[^4C2PV·/x IvUxcKBq3ƆmZm$ˉ'UjkRL#$yѭȌ]<{;*uU,o <; a^0Bi|}w Iٝ>4Ӫ+q ߛf}W8MTy.;M[|f93j^Ro<~M)R"}Œ^3qaވ{T9MM5"Zl_'40``Twϋ QUu=ty7o^*.Lbc~jn鄦I^^ξUg60a0q\D lhoDyΕX%p CrPj ,Pm Bk3__UΝNAF<aä`{,:jVWMFr 1'<›*ykZfAZ>rr[CtAcXȑaS_Y]E]̬W24:/T{ҥI1h$bOyiK5R},v*<*V \-W .1'qEyL=r\G߁:": l߷NI'(0.NZú jLn#NOٳ"U+B Z{q&aʳNE\dRyE+00Eqx# _)IHغnۼ =/]'(㛴g+8"^^+8T|XR^x^p i yfm&M1ML k|:̴*4 *ݟqMeVn͌uNND*މט4Ħ}}юZOm@nx a3#^?.H9+=湙3Ξ׍]9蝡v Ɍ`LA3^`Z2U>Z~WRMA)|5Q 6N婻ޤs"&$0ʌ7.a1x;n[s;1vXrFkl\ڿ8P&W'# >+8T,s3Z#'|_l ?h9 ZD;ssr @s \  ^h'Uoo$e Ef4k!G+NWd6nȵ=Z̼sTɐ)sV)~?Vj-dm  ݬI-!z}<8%M뚎7 j1 HI30WxP[͢`oDSH7h4ūh[\`lXx cqF; "73I|.Y=+EB{]i󧢫`&aJN(1 d%$;CFnGp6e30Y yuܲ q> Zam7=|"T܏TÐZ_6lp0pR t-m` .6 8vkjY y_7$ f&,$_&X! gZPlFr6$)x3R;yJg#Ý'i n邖zհ4$tBIvLq%?< Psƻ;>pНyB΀դÄщ:v!XYS :8)tF8"@q;5>X@P],Ǔ["{mf&FUٟ8_}߫ 3'"QSS ./S8@#&}d*08D^(XɺKEfU>nCA:+䧧3X= 3T3}b? :*mUҐ[:jIU\d}˳Ry^7P71(KYpau[g+I/NEF1Ah)PDۏ LO(% gQn?rw^- 3#7!h{I,D^De7QH=ދ%#c~Afw9ůrE>RW:BL&oܴE*͵P rqL?r. h /nj~E5-f?)6}KU17Zt^\KBأuK`Bx%]S2NVjrw@!~ 8@L$o!@k/rtG1VB3+i'iy 41ky_P #z"/JxJmxa'D+y~q`| Ya("`"Sҿ6ez8Lz- V8!0U<amQemwcw4G$mx_098zk=sR ha:ԁ͡oy4HQPjPޞa㥷G^&[Zn}p Lr(\sS4LDSî!\5Jhe:#I=0Zu"(W yjY}-8eAr$UR/|VnnS t*rUW:"}./ DiΝ6_OL. ""~؎Jw׬v[I˹4kdto2]݌+./ҧ%(d!r0@WK>ysy"SAhm᤯~RN!nbe:'b Q z ß-+,; cyHh>_`eKǑVZ3, %pԇ} Gm)$ƽ^EL*1jHR\4v^?RP^5yGTa3DŽi\N+ǫP>fMQl:nt6 EOVFۗ;Ͼo{KG1+3K3u(F[j7=Iq~*02O(R"{Dy: H}gh(G4֡ˋT% ٬H\xM`91y೸Ɇ1"b ۈՒsаekU^x1lN`殰$󙨑knJ~pSx0갔cExHbIfULeJ>qd 8QSkTV5]]#? (|>aӯ,{|۶;;iҖ 2% ?'lhW.EWWy#8>md[D)<] v| 2EB1֯ϗ= Ƒlm6ʫLeRM |ݺ1CQ:z g}Tٷd~"nFMLZjioda_sREOE0>:0pDPmDж4/gC Jr%AO'MGk™(3d?vZ'pf-;,ʗNz7# noʎr\/ӀIT>'mĿgA 367)ҽ]ҹvp#i/l{i@Ӭ(Dc|%|P&Xj8WSc#eF:Djl.4FN$GL@K(}iQqm%7Y{;amm3{yZ'Ҵ4n+.+$fB#14\N>;,4 =[KU }hyA㟐.CɐȝZ "3/}"+`NkZQ%stK[X)fHqKd̦0xԾso>b>&A]'CXCh)ܨ(6I7Ҙp76W;عIs'c]m;~psӸRZw o\by9b3K^Б+@ $_WF/5ߍkm0d_ᳯ/g 6, V+)n#"mRo_[+toW>Y*|_ZE^8< s$25Ь7ӎa(v9IAZrSDGs4$vY 8wlfM2)sZX{\JE-HQ8۷U/e&lj}Z)D%%Ld@(jmIq:ɨh];9'~pU~3b;NG^#$6[5W EA~R\miגMQ[A0uol:P?I>NUv6 d'r%b]}dk¥6 r?^mƓ!cLȸsVDnHPXt"bz-Jpi} LJ9Rӎ_N(+'PӠ̓m}[=}9w6{0n"UzԦ SMv]4́-(xo]$A-޴ϗ `]0l ؀:BơWHK߳bLr-tCj4 .}Գo6#Ն'$39F-S@< ;[ ޤ1IqR~yi?p2b+i ],~VcϺaz-_V. ꭑR m"HJ5"IvÇ7Ɛ~m7NFsvu1h%ѨWvfס(ɕ$pTsؾ3`YlV CH7,i E9dH4Aл4vz죭V=Jc'/ltE錘3FGᲞ}u !  $f}ԍi{V__ Lʴ4k* /{dsh5R5O:-tZ-{aaL6M&vP֛RV/ŕ)(e&2@b~%U^ l qқ 񛄅*#w⼱f}[\B*4#;#̕!\?.ߒ1I#Ȏ[V33 .B~.a˿E_oiÑ"L>:"!(t,1/G8bx G/)h(u$ h|ՇWRoB/zϨv)@#]~Z łҝ:[z! (fsπ|HA6>0Y݃V<2W1K_.D Vjjrɾ߾ 3fJ;T&^@p)i>"DϦx[n" IU$ɖ"%ct"qo秼es%VwqxZ2-7_T$li,/ClS PMiZ7 13# ig8x@}LP8b oB2gRKalsvMpGKAQ*X3!6cQV+{NpT WjΎbJT5U++c`OJ_n{->VV25֘n1P%P M^Q] i* P>[]hCq@TCL&7fhY42ڬ)?̕ICXSf"z!CMf"YՑut8RK( 4A>E2Fic|"#_γsd}lkaCz!.سť1c.ċ](wц,s꣹Kfoeޡ{ , '++"ܜALgӶ]Ey -6nBhX8^YPwHVCJh6.&,mA u0x5>e.А $^a-$!z@rI1YP9vuT7^~dH@ETM0`8 e0+bܽTE 2G`n1SH[3 4o\:mg6v @dhb3?~w5Ƌ(Wy2}aڭ3$j1wv#t?z ަ#DSo{ÍwM4S XXoMx fy Wð g{zq cO=0Oٌ^ʯ헐BvҨ-U5vB̗ALwtͩ*L+9tг?dD)hYl6"D[Y%]'zLRپEI} }L`4h*>yo'4pSF~) F.ueSק `֢ӵQ8fЃمTkKCy>hh qU8O3m]ifo#Se>e-'fBX$eH/&8Eij2 2kN!6$W;\6li_O]+~Q@xH|3TOTa|g^=3<^"}2٘C[@0Zg=bT,4jIIݗ%"^ d*t0Z$ 6f+->HLDn|H^lvDUs{۰v[R'$t&l鏍n<Ɣ'{>5㦭ZSIzEi P ~t #9~e 1D`aYPN/pfu9ו2LY3:axa͛A^=|cu-=-Aoպ95V@@ĠY[rA\KMv~t?(; : qi}'<%Ev%_.)&hAh۶ +* kJ#Pl >C5LТf{M+Emv ޏ"&gV~VfVhJ蟅PwTljs^X[^P9w$Owi 1h-ڈ#kSSsgv\96%3۲{츩^6;{u:]H~oPkv+, Q Tw;APF,"ܚ49񠰌-_鎇O,o ^ᖩB-X'Ǘ^AM淺zEMIv  J9\9:WsL۹xq&'BB@iaj\Z. p !8EyzaJq?-݊DʫCfǼϡ|B~b{|63t)t>kY@Y?J~ϻ)!7bj9}qTT= #]Q^NKBAw n00Q'T_9W`D\јq"qt>[{UDIU7;qte%;Ͱ5 o#m:*u f, oWφ&v@y@ܷ5kgA0;0 ? ^Z -?*ӈmhA=0YGޙEy:j[=%Aeu)UHqY`HOvl@j6,A1+vP*‡Τ 2(r%GB(ȨײZY7scN nJNlΔx,L4AN7;/y!#evТbyvXXFKl=VEj.+ar;kyH2nV4kXy=^ΊqM@%lB@E\kC؄& <un͕x@ѵ^2bcᢁOH2eT^%}K IO;0S b(Jn]/yǸkd7@:'R|l:) EǮ)6&A_MD("A7uC6?!rwJj /Ts:Gk-=uEElJ_Jhᅈ/ }7Yo))F-p{c!܇LV#[;uD\K7羍!Orqk>Qj &@OiqQ:3 46&E~ z ~#I> @ME7wsibW<]0-}ps#15"5b$&P tT JRaAZ{E3vJjfźhAjyՀx5T,M,g ܇6,F;K>Aƕ Sa eusÔeAk9q~q5@KBsNkNňC>!H b/KjF ꤨ"9BgNKߞ`pۈdU2hvo)!p)%ˣӠ'T}!x՝]zuKc ΍zA&1^.:&5ƶ JJ@@A.ۘKY1MQZ?td-\Rmrz?w' 2qW4Yi \¯{鉁T`)[g'Ax3(&1?4ŜZ!a4+۳~TCdPVl O? n1[f*l sG<*{o5OsM)PF'A g9 gȽ"DD qF9pz]L_] ØR}p;egS ^/-h6exwbAmu81Fa,9j4..Cbkq:Hth8v'*kW8A ka\: Gĩ42>M ɱSt#4zII@w"eC: >IbN2A4v?Q֬>熉عe{'txn좽E|*d9jqBp1)J~]\~v!UV`8OK؂gaAWqfv?Ư>X¼*7S%`Q&Ũi&XsKˌT!AbH1|Tg5]i#ܙQ$lG7|owLSSz$ 8ox5}{n=l:x$}2^(݌=u;ߝxa]$54H஺sX/ŝ5f:t2Y ^SfI~rZkxCRfJQrABoYZeLk<ܦe dc5KzܔRb m+:Z)VKr 8_cwYuh^u=uڿs,)PW--Lp4ϋ׍t%eJURWhX}YѶ&  ]WoAL]4$! %@skd@^2_Rd ⚙X{@4x9k#3{ ^bcb?=g(Go ($?UDgHgIMH_Gx﨏W?YKI=o?GtbhVekl7l>SO ʲ/ $C[/A`!qg P]?A%du&emnTh~ci@?;KRv̎؟o0\-o4Yh!m>D>#eQE;O_,RVqWF`s h/g y1OV8C_~{ o;{|;޴3M5O|NM™?R`Ͱ.=jt7nq=rS1bM8w!*fFM AT].lucWv¾oغnָķIs?"V1=z'a-qbaT2x@er}@m)9g\v31>޵igdjǭAN_$c'㤞QNR!8ktR^q#geCQ/6:}qHTuϙyfAۂ+z,>e?@"tbEkZ{F >&d 3%5I" K,\Nh`bHsITvO%8am8gݼ%"&Ny`6U5R/u=(ML̟d:>?[] A(Mv_0b0am̱АI\$L6UiKM2u&-|c^y9oAWWbp Q꽥F.K[뜼"idry/qv^(Qt=v  :3"if3K\g@J/>hꝛ1Gq|*6yS>pJs)[V?n6F&A. B]p,wjki&uU _&9j/toQ;bv$?n˹cl+MSOղ 1=d{\V2&%s^VOrb<|i\*kҪ,gVXl.Dlsxl#22/Y & t#{2q0_٭qƹҦgT,sefp(5>Ѵ`4L+MO"; >#[-Fu~gq7_:ZZ-P' 0G es9HY)f"M4"*tL͗TDQpJ"\wm\ym]+eڸ:j }\Eâ&b^ʥ(D/I=.S%֬jEV̵%fh+.fE N|(vFޜMMYBqZzx=Bc{;bC7򦹩|x%ɝvD} 6;kaL䜉feJCǺB9R' RE JXzJ3떐X8R֭9 M'M'\uo} µ"^ H7"rc՗ P8~4sOg"aA o?PM-F۵K1y`2*tͯ&[[a\.W94J 'Kk:d1:: "u0C> {˙mCi$y0un!+ ULzdS=Ph |&2z^٢:$[C2UW侠|,+ e:VJT)A͹=n凊d'jE& diV>qP?0loe[{|fk)ӫSA)z{ &FAgaNBf #uîiGƇGPpo~6s*ԳUi+Sfu8[.c(1E_9kTFx:&ko@^Y> *s,͎ 82#6GD $iC10똲Z8b֯esָ[A=ێ,VnnJ`w]9x QHϐ@F2ةwó- Ni+p\T09Lmbgb0)$O/R1T%7W>Wz)CI"~u$H*Yy^i\猪1rM%ӓrs6A _#C6yUfKwpb&X"WFikL(h]MϘ &S._59+X*P"Ay1q,KV2|t0ֺei?6u]>3/~sa ݉J p;a>*9$Djhʗ,sb'}?يDwIuacA|WfYw_-VX\qknp=@RҨՁbDbDg]8KjOp?19rm0Pn7&SbɌؙq/5"O}.xԠcRy+XJ]@D˃]詻\D&@f<>k9hzg<H^07}f~B6{j+F$7pus|˸iՙmdx^W&VMbGS } ΣVOSRk0mN2GY][e)?S혙NXwk(PcfdoD5s.kq׉ٺL: aODv@YHGqD6;Hؕ}'_ )nqw0LgA1<(%ae}:o QD@=u%#.SS ::c[~E`8Xy7/0](oKNBRp;7rnvJąkn0ruGۢ3!x#AshԿ]<ljnOM fn/ɣ'rO݅ch7rd.pn%5;eWx[ #=rR̐&&X3=soOn97 ^x`J`3/fCUN.hlP^NxSN*Fr^ݦ aYNȒO^]#hH3ڋz(σ3jY(G:2)7VpT[h1_o(jp.F_7ʗ{m3D]w PNGdiWCfi8tnj'CT?][Ědw?Ql]?" lx) >*k9!ݫf+ 9\'nU- gwr 6V=(4t[U[< I-y%I߀ߧgEM?*%cff*zH[y<bS䞵¸ƯPEz۾j-W1b^GS?p,b J=dl)+H[]R5]4kr /h;oқF.g< QCb<;JE4 rKq!wIGCNA2+Lߖݗo8ү|Z0]j4&Xt,`?G79?b{t< v>Ht[ (w\ gZn܁@[0zy*U5#"Q 桞uw2/vVE=_eռ GY(E K{_1(:Y ǢnV/"_Kؒwxq NgF'#XW|mc(Wum :7 aILVTq=nxV:|;ml؞2>P+<' Xm?ʴ4T\G UZ:'Eu,H+G kV.Pu'֐Uo@\8\aLOsC>ϩ{W0DrԬhrbzL wK2^Y Fo&sMڭ߳WO^e6&pkO)߂kmPZaݑ ~\ĸoW Kph0:-@12gч+BʒrFӂ̝VQO5L~"*x*tJ|~8ޡk@*,:դߊv||rL)rvvØq7@YwkvP/ + kݍǁFH)jsC%m+4S, 8(=]yP$bpDNH챰rIbqnep2Т "["QH7%^i4s>Vg',C,Nl?G*ƾ_? |)-{ EE=x GVFRPZk\i!SqbW"qG<mm_r#_֬.۞Ja'+(MY \{(n_X ȱK&zTin}5qA} fkIH<#zFE`'ڃl&bEޯW/mّX?Q=/][pk1RѬf.Zܟ@-#8EDj;q<o>O]a4]Ɵvzh)Қ(^aT)(JU6CF 勳deKu[f vNPTfֶޒ̻0K||9&!kDoюt(\GCy;_ﵡɶh3eXw<]ߛo]sCB6h;HJhѦyU E&mS=6a49KգSFd>whr +ajS'`咑pu! (QI 0ؓQ OA }?z8L6#G6L3 Ml?F:OM`(_aBEB'߶ 5tw3<#CCj*@Jsau4#(e=׫|L 57^OnVg9:7};f'U< ܛrg_ޣ8K،VT.NjɆ%P5H|{cٔ`ALMP _&X!+x8=/JU<[rV5x.n2TfowzIi'=^Y1X#D;F,^T$? gkQ;@q0fBq|[M]k̑B_B8k̲| O1zQlh!@Dxt'rqpw ˱E}vud‘?$bpL.qi-C,hkq)MʒNR>H2+ṧcrOS/&ԹCRSZ]$D02 M"UdjżKRmOJkmL3]Q{Qtj ;h*E"N_may;߬T։n*=MܐEq oh&{~8[8*kP5β;{BzLsR㼄}C9ܹmtջ|_T {o%[1E F>|ULf" 씅\p:֧Z<֪ئƙR_/ԴJH-*9=fT7; `[yr сIp9K]Qv-P9&K$:>c rI> לбsthخe{⌸-VQ|z F( \_$DptLΣ<5 tĜHO(oՌ+b`qBܦeg& p^ag:W\j$WDY 2pv.r#A@l`,~(J˔ )j͛tFvv~F8q5!kבNHvE~7w6ى yJ:u_fId[ I"Lfa~a[En쁚7x 716-MkY!+"P ;% %#{LnuV)t.Â|ag$VXxۚ qyx1P1(cGЛ%㨆!x@(׮xpՁC{DDiҾ ;vY NhC }enHZ:'-j Hk6{I_x$9t NZ,8]S(G\7?W!Cù)5$uDjxI`výl)$c³:Ә,JjS^Gxm3+dMS>]4U-O;;lqŒL8r5m4˓|]\wrӦk;W1Idg]Lx;eB-o q):ҞLasN-XOX$XOb0%WT{V,gm[q& xD8 l\/o7ƵJg% XdgE^8'ں#jP5dQ Qad .ڡa֯2,`#1^ ==1iRkAY=`m=~) |{ vtd M|FQ<ȏqy{4^DRzV҂tjx@c< {u(lPOtza`69fij~1]lI6UuJ7nAEE~j&;kj[tJ^x=iV%7kƐ.-0 46;Q7B+ndi)uI5Ja{96glEzOY bIv3I(|2!d+8P {}r9q:2Z1 1NFnG./? y+!N(Q|?50(%G%_!fLyv'JJ+DN;עL2]lCnO猊׌T#Y֌D˓tJcUW2ŜwX.VIa۾yRB`ջQbtItp Sgy\'X~vǠ1 k=~g w}uP6ΙJ *ȫ 7 [B7:3h8#&WA޵;#nQ|h.E˦Lp̓@g,[ [G;"-1VAƝ9Aљ5v8qRvT 9Ik݀,g5i⥼*):䎣e u7{ډ=ƶʂ+tt_GXWp赵6k&:1-?ֿ0iRG!@|J CtkTjn|6tТ#J_4,qn6uCpjZ_yr>ߚ,v7}>-( PM%4!'&Ld4x=_wz`_]ˇ%!|VYZC]>}*ar,`s "ã3,8]b`QNo|3\u0 E 5}*䬿 =)A/ŎR0%ݫo&Ѕ/ޅ^4v컘ץ(Dr6."i_I-A*'/e@ 4ɊC':9^q_½Do4q梉-}5Uhw/nCTcfOP 5v1KԊo?~h# j*RD34_l ˌ\BDNOȪ\l}g6wda?ꤼfn7ŸLq.@W1}U:EPMl;L[2>-FN{3{#M2jVψg7φWjirj!@E^ M|pa$AYVSUmS)랸pU9V"^.2pd'A\W8u >?}Q'n^ycF;(l0 kaMfr9aFҷFNv=;h~` *(k2^p>$x98il䗆.v0;U(cgZZ,{ :0ɳK$qm_n@4u`Yb<[e6^)zE]keSC&"U{AZ*4 %sn͑SPl$8WQjyNo˧ZX|< ts-frU[T!sp߾f>1[=bj iwTb@CBbwZKUӘgWW,lY]ɫhBi!,vfA>M2ĵT*i]gcc| ql"H|3B{lggTH%ɱjX Yro`)huMorX\ 6bmC=&7-Y͡m',\)Y嬭gsyqi(ʼ;4uua˒VZ zKzr臐0(+Zů.rn;FC$R#bAMWÞ] jgz&ҍsFZz섎VS`T0V4Vg>{Eg8ңɯyvPۥzUNRE5阅"˚g7?EA6U(?ĸ`I$1d,k&8wG q|dcTjx &KkF^/* l3@+ kh 2pPN9\M?%o&yqcz] [6셲cS_r+JbCH;;EQ^. . *BS*B3+ iS{7/ B~QkU ㍰Eչ!l;ܨTo5Ԭ!?sDH1|0v`4bPk:qF VK\]LujO!? mEIEP f/! y!J@᫼fzϗ._q@ ~9bIF{W15=NTݭr %o4rbQye̛Vƨ=ܽྩUg`_ЩܫŞg_4 Efk_m՟K[Z*Ԇ1^  j Ah0TSݦ.oNRL}^ܮXΓ$FP|f_KrKv5r^)YE2"ڼ)7p'qُ1Fze aή߳yV6F@*+ o453B~`fsބlظYwCSP3if<l@гb~$(" q!Hf=ohoL\"jW[nw>1Y[AZ $+=M&_aawLTCLp15x{4C[QGiiσ|݊c_wYd2R5[j]./ hF;h.:=mfMd-jm Eu1Tt1.dO뜤8AR0&uJ="Oc f` wECV:\Jc iflUQ-A}d9rKl+1H=/&WwYy7M7c1cGo]F%2j7hÆ|H=>Ds/VPZ̒Ƚ%uš$X=̬Fex3ǎI\^Jťʭ,%>Eir2Lv i}\Os `Mmٺ{?.eQ&/s(aLթCK<6n,aت,yŸS`L'@u3#Ď4_SSk|M,+}:=r 'p;[dBۤ2Ƙo]=d$]5@L aS;;D][Ex,$(֥Բw"&Biϋ Qܩ̻HEׅ.Мi*fWӬԂ*Z󱬯QOzZb9E Xw]?\e{q0,w0P>.*!Ñ,//l be7HRk{ ˃ClmNZ|KԪ8FK/Zd% '0 l 2$*PJo!Vf[5d wl0GU(xHg!s1{3?.~t bq׶;".+|nrzX`a4SV pb0r(jn%׼R.g=vqQ.I4DID<I-`,R ȵe /} Aozd96^jԡR#Ww|0w'=%?!{^S&5@ԚXm6hR8{v@@+ iϟ~aOT ,{L k-= 0_vE3?76K=eYDfhaW8-1&xԌI8?vJG~ ˣ@[RsooBjJB}5yMQle;WiM^JRVTNEOﬓ^[B]v/Wx)׻0{Y\]A8=7,;.|c_@o19܆q1;/caf9I^HeQ%C"(tϭc]wS1م 9x64pl/I欕7VG+%CxE0)ƎOa1@[nrf 7>V?s5bgh9*%ܚ=ºq(ĉ'<,PYZ}Z_bhTABm#R^>{p F4E\נҥcXG@k}!OX ^'(eKgY'3G=tP8ɔ?1C}?sFg ~ƞ4JN<6 >$@Qԁ:M."H$s[*e+,y&A2i#_3>7)`IyJƮݳ1 ד1ȱ b]vFny;"\>S]ǒ߫]ks(\?@˶˰K}Gmh(eYs3 #*.IOϜayd ke<@a&F4~ֈM 鈝>TLcPX*:BO^C9/ju1Z6׷QɑX`٘{:\A,ًp oEN42 (]^@d1AjhbȺ?roϬ7;Hb,ADXxly[,pi+q(IO87@wZ ܎H5 ƑpV!.i!bL6~s@≮%&rF&-wfB|k$!/ D59{j-lBVͻqҘ)䍖ƙW2mB+"s|q[EQ-0nniUQyGDrV|!Ȑ~wD-1.+ʪ'r3"H5SBlxpؠg׵_̅I| +FznZVmBtcaSԌa-`$d "l/e@.aK* m[+1i Ro7=";\BZG"uXA(3OV vgd *)YLgtb=%d>pJV"15$YذZ0a?C߅D"l}%Ǿz y Bu5u_C1`&1_ü2UT.Y !( -O㲹j`t1}GtC)A,VVOdž5nX(\3S5apJ.tX.])N#NoI1ѵ$q6Ew,yDBւ MvHs @!܃ebW9{rUOWOvKNeZ)r>T W&ݳ48`Ű; 6{c@Y1_/LvROݳThS9 Uc% ).$1DluSu&wMsWFɬVSqpԓ񮉷 ׏q+խ% čaHtxD"Z%\i97jEZpB5{QO4ι>hNa_ :}tAj5x!B ϶&|i-0웈Ϧ; C7,{Ւoc>#%XTsjJ",@ZKT'Q']621}) M ˓*臤IS/:Mw-KcbA Cx "L{G9Ƈ[w٭E۶Ꭸʊ. *޻ں{]#aѿC`6ovͰHJڵ[ԛJJu#t0#i]]=;Xр#pC]u@RbV϶Y .u+<4)i0+E;Q[/Ma0pUo58L2A6O3tvz\57$1{JX`^sv -=@VBtRt) +3\rI]D}(Z7owfS KcA>silk5tByIiAIGGm*L'gWp1M,VأN1bC1t;3MqܓsV'7p{ }N/^  WK|W䄚yC`?0#f|ÿח3nIL9fĠ_}+q:ތ@;&~kdNtcG+lNidX10, Qq̋;q*XGIh}|[ ]SbRЭ'p3=!+zW `F k >IZ H!Publ\Иs佡\S%y+hVwHL+b9mX םJ$n;诨и: i1QƜCzZyqpz!KA]i페̩A{:=aqgφ-K/Q9)BkZ!.ړ|r5@_xp#NASe*ZPFo>KTՐ@\r[ssn^'l|c+^ss-d`Sǔ^yt.:~G/~&/}U!09ʁɋ 4 m BjL<])!UM8J\kf0-"@[ @R7DKZS07Iͣa#%,)|s44$;,IqC/f(ŧ^ܦ3޲G,wIj/L==9 eGjzyU1 Yn''Ӑ,FôVTyTL\4]}Q _̭fAy`(MP,lPzᰯN Fه p[/JjCSh$8ߢ[/鍝WN`_-*g? uv1Igx6Y?));4~L[YujZ6(&,R$BN<}My҂~FrLj*6E#-cޒPaZ1#a{fFmD"ltħy)ʎ H*mkY;)yu|[ϭJ|yy!"oU/c>(|r|%PV%;fRUb٫<w-̤j$d}' F/`@}qr~9IF#yԺCa 7c Y*1 b tZZƗǞ˧:4"n u-|tgH@Uű+TTH\5n&iʲ1?{`ՀVst9-څRbBl!zB:䬃xq R"d7; : W!W_z l.i!gmxTt9oӘʉ <.gjʅ+Sޑ 4NkQYe` _lpxJZ>oN%oE`42RʽԙVCD*AOqIw#2b׺5 Z`7s|ìYl,5 ޠ8җJxH4-빯&ն8V/aFhoO.s ^~!1jE;[~I+ }|5hT:xLдL&BXkf:l=a5kǢo#"T[r,,vKz6-{uNc!n7#F?)>4s.+Z\;;37ui>~رqHǫx"qy )=-ְ{(߁YcyRӮNesҠ-n;n-iqC0c;ZlH@t*eK?Mie E96^j NT:*Sf~M˨2(LŰ;uHb),|#8ծ9KVP{^/ @Hw8ۖ&;Q0iL,P~Ѡvw%#ϜC-aC~Na!8.-D4v9p8'c|^ ztDI8]]DLվe贕i9~8BHz ,B:&wXLVL,7oE/ک ΅'x6gw>ܫS\G:;@!F9%Gk:TyGPqbҶ.cfs#͑+S$m.9=9M7f)Nb"H:6~$M*(է[깕+ ) mQR@"@12w##jFHb^֙8shxVZ ; |F} 9p8UTnm¾fGlU&J1 qߦzW$E}/NBQ +,=H*cϨ%Lޤ!&/ " C?}/dxCͬy@pAڇчQs{]wM\>P^_Z%e;4U6%5N򦽦z\dsœdmi*tHhcH#ow&^j3WDer>U\6:O-!%|oP(`)+Odg2c%FhGyhb+} ʴ?8+`)*Ckֳ xƋ"c? Vp]C5u4m9ƔשѾNnbshyn;|t'_AqָTи>&͒>78M4W{&Of;+*B{cnv,)_2VLfF|op] tOGG+y hT(6*λ.N-hM{}; ( $i\C jN4R[8/+DO⪽sUw.p|f1'l ' ՉLtf1-D O~+~jDؖ0UOuj ovP{I.Z2j=\{0:"׹Z\}m&?R}%~6t4^$RO*g6&=Y mCfӞk0>[Ѵ721=Qbn#1FRF}TT$0p8ݎ~ddQn#r_60|ᯝAHpZYO."0 |`'yXl@lMdv ƓZ 켦;ac(|Ιe@z>P 8Zz_ݷJ%^K'(ݓ>l@2tuw O%v;[g_igʫ:SC,1jCH[N. ԳOՔBz %Jq2Ϥy Qk_#@XIlo;aC W[t<=a @iHpv0"B B`=tk+o aWy~3זbUo/s#]s$MZ`)z>VuHeAx86~WrsT׋`ʷɗYiFmȌȈ_e${u`wqr{ @aJzxJ},n'aj ٥S QT-}< ]C?lskp(y}y^9#PU.V@iQz +zF-qESVD:R)JXLy?J`Y.]V|*7":3ϮCU.#5PI_+^eri].ԇ٪Sdu3FJ5X ra MHS|4$84 Ӎc#/ %NBٲ6Uf< Q ]^H0݇kj5YÓ`}|}D-^YETԭG XyERU?E +I\G1 -Ёm}Wէv4$l:L\xP>yt+w~7@ & Xz~/ݫy6"&Tv8C|;Dz_ᎀMWm4JَM; # HJ.>m5*V"y}fcH<=%0R&؜$j- 3}-RA?c0`Nfюp)i+=6>z 6h΄cui=Z@,Me5DpeL޻s,cъF[=+7Hj0q1,;~n^(Z$T^Q̾t_~~13jN@DdZuH!l՜ zȋ i׊՝+SS֡*b'pm1hx*e~*@@p.GyZ^mCۼ!?B;g/VovkH x8N$=r,6CGT9BX튘E_MVfFYb)PF#(4(\Iė'Nm"27@"GAz>wgZ_p,oaRAa!Y,R2+6!1{ mb(TJ<=.̈.7pVZq ۳+3$H̱%n!v0o#߳كɨfy4 gܛ9GR_%gPg@yH!yι"Z>$W=W%I$eÑ5tvjdǀס hs <N.䘳PʗB9t#L]1N =+G'MQ.PܚIJ<ֱm"'fgϠp$f.+Hl-KT[6w(l\4b')`dj\$.Fځ@ Vxɛs$lHȘ۵≨z<6:>Dj.\4*ǐi`x?B59 hN νaӝͼnM:1{}ټT&FGvyGԋ P }+3e/ZtE6tn}?z$_+lC2\c->(9{6]񖤱q䊭q'Gi@ۘ=l3}'{QfϚx6i%'SB>뒡|0ߥfc>VO4۴kU<'Yجyt\/\jK0Ta; OO1õP` - 2Ԭiѥ<_l=&0pQI5(c|nx8x`[]ٗGdI)tu2]6}%/ĉ`Dmt~P*,ZjH2җ咂#8%Z?<+En Gˏ]IA9`>Je LcK-Iˁ7ڨ-'$0A ѿcTdpeq ic. ,]?IFO!R Y%GS3*ajڵXrȨE(Em) t>(ީLbQtKjn.e{#k҈Lԟ6pXĀ3zd_EB+'`dx2TP*_J>hYq^ǂA<8[6qizy[~Q,~01o$]udHJ^+ ]޴u|=BT-05Bʨ/)h T|˨ S9 "] bC,q wĆC' LsͮfƳ@Q[G0gt J;̙yY(:BRk]ÏeE6UQ*LRS8^i{]szW;BT7; j_bN5NH$^GzGV @x]b4;| nĝ`$j< K9{8A"Ԕx'ql ΰʼnIjwbIhz{x@@$* 0] 43Õ?j{wh ( T7AGqRIZ^E %{ʃ!E(]lUny=f d:ϝ+sgez6ɔXp; r6zDэiCFŽTҳRТw21|*\Ymm=S|Fz4E(!,Cw]SQ|q;.a WAOpƑ߇ᩲocՌD>WI;?D3G0x];Z: 9Eɸ勩!RT!2ҏlCqXP;J`o@|eCrꑵ0뾰F% wGX- rZ7OTJF%{z^%Ib;;gaLEʉ]+`i~tʶ_CJSG荸xvגGk'+E Gư2?)Β^qV ;<4:Y6kgu (4adc{\t.]r7;ǧfM! ƅ?|i3,O_%?%aR0ѫ9I ]ٻ~ zqJw]Xo]:5v}K L0]^ΉMO2A0C1!־vn5|=z>.:\)>uX"R2ڤ%a\7 B.?x &QxP Qs^R"O`"tgsaR݌?`O۬i9.A4eO en;UڴCy99$e;񎋏'n+x|Gێ*Og1hɐ{bH(Z\"{'9:qȇ>@/зzWbxut3lC[N J No%% yNjFU 3h _wS! Rfax~ȷxd獽wք>q։Z7$Уɛn`J[l+ddڽ50rRb^$yZ)=~)">&i\>*UڠFև5`hPkT!@"%؆_N;/c1<O I^P,'Nd@G4>Zyi XE%Pڰ!l!ikL/g*2Eݢy7 >4^_]cooekUد#K0NjLHb$Fv%H:?u-ΝY(Z"-X-@oPqW%GǢ!^L2.WG?݄/µhAq'p疢jݓ/$io@-'WFc- ek}z)d=J4Kh װ ^E~GL,=T~BWwbB~V e^#Mڷ1̸@sQtg%_@ ˌi/_KkWn]S%,aiOĜb4kx9NPx1}aN0*WG\&1yG.=K  ٚxfqx=WX. M6I9.^Ȳ:p&q#岑xAs}-AtVѪ:~Q\./J!2i[Bgp(J 8tiCzXk&,>q~Ib7i3XΒK%0ID/laې7AӨFA Z`Fhb tʅn.c~zyuXw| kI8њ9q;ѪLY7l7:pB(#V)Y8kaE Ňh+ɬ@p9!:ŁmaW!Y<~1 3WtkАسAFV5Z̯'eJnNP!(~ZM+,m2kFyLI S};Goll?l}T U 9}~VaP-D)qoLaE2P1uf朆Kuĸhۋ'hRaхKԫQ+9<\ǻ2}hPN (Eel:'<7tZJEq~з.dGMʜKU[>7%R~dp9LFP,܎bu5IS|9"l3NǂDŽګP [Xnh& O/;d2W2~9Uek"xH$=$pʖ Jy)' {|)HK"4xi z@g7$ķ\$`.dᱍ,aL7̐ ~9M'-E#u&)8 [tF*BkI+'x˜]/'10&Ia>p׿~7?~^~I(Xʰ"H]Q]_ L'Lk1{%TRL0 <ՄЛu>Cwo&϶.ie*^5\9…t(+O@rAxU*rsylaPuQC!֡l>a$j&NㅎgN`$2A:f[$W8 &&/l:(O13-}sw* 1C+^CCT㢼$e/+>K\*q3n]G% 4o|b c m#h/j9cx.,$>H;JONRIahH+ݮHQ[_=g'w>xezVHR !i|G[~"jUL+Z\^5D]zO%<2 u?ml˒X)/~c7Ь{K@|ob\KpҬ``*DCqS} *tI#9iyXjDPzT>u_9F04 BYvjF]bd,|PR ks+rwnH$$5޾=~"Ԗm1/ E4?;4~UV3;L\汅^tW !TfK L(W 0yƳ "~k%:;XY&xpD?orn ^9{C}u.EC=՟C{잹WA  äYs1LYOHK>3>,$'1*Q;+XǤF@jB\u(*a.@Yfq:omw,wr&aޢV/ ?JtD7ģnFo|B nL|ZP{XDʾk:_Ytb٩#Ύ&a*De=l)5`KnwRPe{r3NJ%HlH_UAwfcWT:jb# b;ӔuZ,)O"ƿRp/%j>=V SulAbO s7*4?-cv {GR9/ &nRsUZM)C=IbxUK'?J#nI9Cl~4uwYcCшۦuK[K4k'W]j.>?6sIs/T}"vƽV (h%a_}ퟐ*/|)4/GO7XkTVu3cI0Y5uhQ%.÷; OZkQ/{Pv!:g4[6n g'$~7QZ^PԥwěvX \'*K!>dzɎ):(нsSNN'\0`RnհCg m! uW{dܾV5\ {cn$"<Ҳ5 J4L).[~Qɯl$B2<${ǬpI]{è x=#,z,OrIeB|I^AHm匼hH*#//˔S{0܅#)CNK Nqtb@Q0oa/l9ltWq\I2ϻTêga5Fe#VR]ͥN\7`3pW;_L= a5C?Egzk3/zM "~K] Ɋ|G*THX=_'|Oc7l0e'U'$Z>8hPy  iu2?kyХ%E05LUt?,w4BєJi`7[m jkfnu4<#PJ{Ncn'>$5afOk)OQ?2 0S "{^h$yB6_kk +rh o"SrSOb-$88n55uq.3gP|oR9xʒq^?;m}łXS_ʪ1.0ASӻBK*/=B8Ӓ~4ᕭ ge -8*kU3`G.uw7ev5[jg-gxf,CV,F`(:jI?΅:o:}suԋ"ޚ-qV/0v 0GMkmt(Ճ6,u^g!G^mf+*T7b}\O&ؙW\K +eCZvR:6Qg͎S J*h9|Ep&v|x8f ZsSDUn >gd},pW1"qߠ;v~$|Ency?X? 藏N]3僳urġg֭b0 y*ѝ Y~"8o0y$. ;5C*o?0KG*569Z,׉\@Qn|)Pg͗Pf,#7^> o!ĿجNWVM_򌪗葠a /K)'>Hw#|M17K[ qg݄M鋸%/+ *[v=9 hi\w'\-޾ZZ4v^t ȂVWXj֦P^oVɓV5 <&@6#E3a'bBp^BJR{%w]+pm| G&>H9ģ( ѽ0O]Q|Ҧ:@3γaQ_$. y7J[qQ~["BLH/޻z$a%//_An%دnuG|2"ґ:<ǘ =wFe![<]J3.Pհʂ nW=7Aci i;J󔐽va[LM0Lp#7D7ϪQ|* ] a[DG-4=-~lf W2{Հ2v BCa4R`%+NIIڄvg,7oǂ R'l iw>յͩS.ƇefPrŒwD5j?vtBLR=5=] 'KʗRzO9 jLC,4?@d;F42DqR6!`6`>qbڮl?%Hher(\,q/>Q7խ̻3.„S6l6R&JR\M~UPǟzQ/9Ud"DB~ߩ$Wp_rFK;{W{7)⁸L>nF)j ,V PuZ8 cNxL1""Hק3'Нd[? }y1J9SxofY5Z&* Ud:~x*,`9ؠ*łaMT_U+*M 3ob[ bGޤ`?s ]U&m_q5Yfι17lofINyYNҀVCw%!1v .ҨI7uGzRG" lɀ#1)QN>6_gm0,}WD :[?P\N`1%SH^%'  a<CDSG搋PaJhG,Y2ۍ $ʈt (=If1ݼ/0zVpQ&nv0(L-QY&esve`ciWɟgUʲ,3Η!J֞1Gߺ؝^! qg[a ( 2^/-ks^(]0q(N J.,1#=M ͜{9fz04K'c䐡j\"(wkЩS3A<#aQAxw)}B-r=% |Ɯ;Fe 6'JO.= ! vAsTձjڛ0AG`fxiFk5[aOu(|3ɡBep_uʁvۘ.]T$kD(.dץQߟ˿_di+<@q^0<ѿ `mTP>aRB4 Ǐl[7Ʂ- BvKͲDWR ol1( 7cTY$O-SNk'XtcC=OIw tnŧ^"hB2\yFX_ X%+h V"vl7x<2$0GPάtS/YYS!ڒT `sEh, @G/Kc/ǟ&Mq''Jzl8kFBUM"fڟӠ_t$[4jƝS_i.:,:quwy5.?tsu̝|ߊ!U>q}…1CIF8Qvx@5T֢Ea~htǗP8Uk%Q"?!kCM^o{Uib\3hd"eRG~weoO agE{kj30"!dWj7 J0N'aq}Z#3EY~l Veq)tm!iib)}DH)P;Z{j3!pvDNd/:>>Ad,/QEtlMW4>y̧N{tN2lXTց_'qBcm<練}uza("1(k@ {@U}?WmDpeaL;%>T%N8aYv>sIYP-+7Sޮv:7~*\C} &3@c2X1g]Oubb H*T z.ia@(,:9Krw "veYfu P+PS%5aK5Mv 04{o;5fMaU~ox(g(Bq$Nh48aB&8.uM,C"i츘Qg< H(Br D1D^7t(O:V9 #3DяWLbQ:Vk@a?uX2Q.+Yg_c,MϕK8Lc[3htv_q~ fsFgF6כ6j73D~DbLtC<0 rD靉M:0_Һm{"hxCZ ce*ho\X"uZ1}D9);9,ᬅg}pߟƶAU45 ƍcuSOM/(,/@`eO!*Dt4Td_`پ.@#26ܔ(-K9vc)|_]w:yeWUc DJ ]- ۇgJ B, $^)Z-~QXzN3߲o22(GCИcMg*Xu1`du:>څI3u*𶀧~e:8{:jȯzJ9s1/,iJHq߄w]vkGJiiop槒Y;nR{>49T}X52ht.OoT %c +X4enFη!82:[ȦwCء\OXl:PD'P ?woVGhb<;r*ial'2/MQGרg8EpV0 &i$':uz [{t05#^Lh^OZa8 nSlN&8low˨dHZ1FPTTj)A_tO` *r\lckmbN$ ?^#z+h Сomp#[F +99a$yp*6s =+|Ks畊 Lyk"(^4债~. իp ϴԠM-lUҁ19T):t ELlMy!T)SNj,sp"L{s^I7sm&'$_._p페PCrr1m!#xO V'C>i9>.H c *Rĥa)RgWuiʦ:}j#&jD:_90`C_E>yoHJ_y5$> h7f 7AfPWzAZﱦ?yJJ-vI5N($q4L).49 "詍…6;8D!d /5l+a%X$/я SԩsRMsche>=FqIcٺrξh-`Z}hv{$( .4>Mh_uu UNNMto kE.(T.I6k䵗F!-A5%Սx`ͲXo,NQ*eջՖƌ]#9 H=>ǿKޑ{Ad~jEYuI d|lڃ58 ۔AT nBO.A6] ~cɠEk#{!cKcʜ~*zKNY Bh2`#k,j‰x)Az*6ugӍ\}w;b NA~pP?ÀƬ"Q`rH#&3$^f\wLnPf{W:#h\] 1غ3oۗy\sy`>EgVMI81<99ssڃ/;!}xkS~DhrY)ۂ+DZãb8u^Kt=wT`fnQVYk :K̀fQ<>7z?%q(0FIP[(sn1-ͨa_|8I VZ?70Zg<2 ,J>] T{Zu  NjT%\%Hm Z ׄ`銟q<2:h)uWn+(l8a"xqӘga%L#UW< w:H!ud9*6 ְGM-}{UodiϺ_~YUPF3ogl뒗֍AڽhՌTRGs4V?cw}36EX=^ɒz6!ի)'1$dg bUџ>}p4hz=TQt@5$~{֜{B/6C^)EaPK\[ù"wufJlVtdQj zױSY4gl;"x3 ɫpzw!_.Z:ebt/-:8+$R -nD(i* 'ˮ)SzNSZ*38;zgX$dTOi>ipgfL0i`g}oȆ{xb#5!$uV+/-rF([>CX}LCo?Ԙ(rIOBnѸCʃ%u*"ͺw(w73v֮rR(DiFX}:!}oр;ʎ wSnf$ [f}Gó|)e@z=%~Bi툹=g?, 1ot.w>5yir=*J3_]гNk(̴GL M|Pc$$J%AP zW}EU d=s #cK^&L7 V#$1Y :T3p ׀ѽB`p5|̭bǢBU <@*!aeH)y.3(Hӂ4G*5sRK̞ %p% UZۈ$k9ƏAS7 &]iEOʌa "kQɶ˫2ePuEe&m§6.C}FYB*W0anf7IF$s{4 AL m1/Dk>0pSԡ@BX>kh[ly@JߌFt+h`eՂI6rljP^joY) l 8*f4a>@B6Qۚ<>tYLL5I3@^.eCL i1h޶eN+uzЗ8eS邒"\/?֫7 7f7XNW $U\{=Hǣ%Z7X%[sŀ.{6 swX@Gq/yG(e^ q= .̬Dh"CxM(@7h2| 0Ar`=m| a3-"Y[}ݍc.F+㘁+udXXTAd)11w4C58Dj2/s=O9AJ#0Rц~VQA  6:DZ:]Jz!Jd捒sSLj$2 xB İVwh!;p`]H lGKH |ťjFT xkF}čf# NiAXZ|Gֹl"Vc >gqX{AB N:nL[kq^D0Aޡ@Wr{kպ&l#h I, q+9kpxi9ٽ˵'tA蔀hwgEbx}%!y'5=> Apr\c& 5TZW$Nc%DM; ̪\Yi뒸Dwd{* D5,ߏ*;^O^ƊogB2P1%GwXDY/HxoeFAPI~l t[G;F², 6Vl AԖ[y6X<2pi=邴Ýy 9ynq(P&y̓hsycUz f 95)TFb Pf Tn K@<(:pB̶`šcC ^kPbfjQm&M.{l7goګoX֨K'9zhf>jLJ|mm;SjiXV6\I+q𳢪UT(\CBf!⭓) qp/?`:+D<`;?Dǻ<yvUm{d}MmLbUUD=W0j/,4ulfZ{ƣ;u[#ƹ*Eܦι[+N Vo%9sd_ X_W\)AMr}x$Y2QOn5iD<7nR[GTTyi#ץ@ЮӓO; o0[Qrh>~¬N&0Ġ+3/%QDM$U?2+ H<5}·e}j w,#_|JC(\6 D2pu ߎuSS ^k^! zxщ%Y#vOhg&(*7ʯ~kPXK6_ XXS8!k`4`cYOME[ͱ L2 -*!+"tc3_I1uHsg1>D!ށ/p%ߓU l,𢌝z6B% M)&xʹ/>Ā͛<^s\q3]HGEP |aGL\rMߑv$:vDWe[[1yd%HQ#?vBA@8iȉrH1CIJot.D&M/&CB`'0.:'yaӓPxF\_m> ?&6+v&+\hA1Q~F˙D\>Vo|s7xU.Gzch+S}'*Sh3BN iv"iE5 s1J+@/ݧV=܍aN*[C뾕*ܵ-b ɍu#i8YO{|u"P=̠n&y뀭i…+݊/-:3H˜'yyqP5Ff{#Wu{ݜ& x3.uPDnϨ)qFBT{PIWo; NBDKc^"ѤErWFTg9*XIﴲZ> .,<<8'2}@VvX1P<O9}"&Lz&`Xmnì{M /W>lώuJ⳩a,H*&.[$X6M6;@jtմG0f/f"&ʸEZdڄC`htm+1?"SC-ijKB#a`ӊ7`+HtY6ri ˀm:mTdϞIEM ;wWXᆑEB[sC@lQɛ!Sx|(1^c\+t߀K0K'uh"̐g]Gm?ij&t$o^lBb?9a@JkVg.<4/T~-XvQ \4c5;|9P4YF<{$*ri_$>錚N6J[K MB14=!0sw9^⯈O{2zqަtuVў47GݴY*l≯ߗyvKjm=ݭBV.7W|ה0jW?s/}e$ ax{,#R'DV-GU.#Q|?qH_ .B4Y AՌQJ-)OZYwA vH@B⑶YZ՟lDg^^T6_mL )w)ru kэd~[-F1xO$;G f]PTYF]dVoqkOԷE[4_{BFmThgq%Slz/YjSC^HefnxeM,xX~?3GE`5EVʉiϝC<) NH=*0Gk*NXxoV)ml.(Ra, #GRa}Nr8ҥUY0~{2\$k}_w|,2@E`Ͽ-tb"*PxQ]Vz޴󔐯L (ӵ۷k-xp}aZ˹<1ZӚѩ^@븧nmy戀7g;"`V(1<6KQR 8IwMZ#X}P zq]L|¢c DžrpX}vtF,gbI*Gups%6w~%c+gp LOP&Z8dku|#!@%SFo>#b?9hY'>۶KCQen"/(2 S%A .sLA! 3rXlwaF?4<%0VŮ(jdQ:(EAX'1_vNmTdArx9´p$L`2BG8i>vNj,S1s'Z14A[dJ aBTxelhWf& *EwW$NBLbJB[>v)fTK)e}fք'r;F D׀a/)&/* =kTKd0=)<3L&l9E\3&/O87WlE:A~z.rC,V~5@q.o_-]b#f T-叏rɕ"$Z[z M5Ca:룫JE|aYeaieCԕp3X!©8{|I'^ٖ-cs +z VW z` VBOYL?^C]} o.0zw7f2^x2OBI;E7DٮڮLQd⻿虣mg-tC;t+˘xd ĥِDlAM M UT!%y"ra ^;?uCmR&]҆: އ*Ǘ-G)GK:.~{bPr` DTuf:9w5*bC00Gt6gg#\Y j;9{+ꌠlqΘz oJUa.?ZQߺZFdy6WO{%o`*[曐ntDMv<<33!)RɃ[̶̂$syYݳ;Ը 촮.zuȇ,tZ#=Eg "ܜe̡$"+&dK^F|_o 4NN R1 SjwZ%m<n9ON@ 4,# sZqښU>8cYǶeYX\(l9ꆽe-h8t^~0l!Ӷ?*|>]IyǛɸ<":K'D )Ɏ `a]p!\Y0xڗ&DTr '$@"Y]Xwl͚ ]`tBFx gӸt'Εi:X`gEWl}l+ٖ-!~(ȻL~xcIq}fV'(6:ՕvuԎĻRTMG2NBzBf3oMw?xxy0`ayQKHlSY!"LAR f&fCe$$|*QUFb ۀ*U*Ɇ6oq+*aeFtRXyhr|M`WJnmÏI(/1Uv}ӁؚǪWһ}5180t/72{ yCQW3V[t=DجF19Da7^gz@()PU',j>!0.~_ԯR|b$%urEp35⣍*ZpO0]9){ܷ!:!а/'X_^1h;`-Ob~{WQ%9Ď@oq0'Mdٕ-zKEKr:$ڎ Yne@^--/9~zMD"k  y;=a_ȭVKJ9bo}e!MIBdXP V& 3g⟛S'PgL4HB~ԕXekLԾxQZto40 ̋r wTGU: i!\xhՐ.P}Cz0{S)Y}TC-\oiXqΆP6+HY.a v9ȋg|F|BJFd*_wCDX2s`μ$%6H¹ԢgR$dXW8nʔ1(U_z8eeE4/цaVW`z0EְFEJ0`t2"ЅѮ5X̫$G(d(؍CMN&A]n`#6 N;kbKm ۡ#*[|Vh%/@1'',,! ?|@luhAQ6Pf2cmjR2̓]%REpjgdWp.y[DOv]q$}Ȓ,+,a\IW!zQ|#">c? kԌsPR窟xssBkV /?*6;h̚^zo #94W bWv kALuò}GͲށag,F3I[Lġs{S>qj\ \ e+}LlS?q@O}FspQkNMWmn9AI[K]c.:yN3ch][S)ERY&TClM-U땑yLYNU')+8ȤW=^qmTihܭR#YaQa:-UZx^`)W)&7! g;nhoI=+}7 ú4WEWE+>2wtnzU,+& _ n!PvQC c Ir/H&a8!(xIvGuΝrkP#Jg 'ؓNH`Y?oIkqb41{VhRaJ"H{twvVg:'yjf$JSpsbx~hs1 }7DEUVzn0Ży믧 s(O> UӆK#P{̛̞[LWł-B I$C:ַ;Q'"rjdZFព"EESPUHÔ 4[np0 岇g;O:b3g1XBx0hWsvosg kpd-"vb2V[\Gt -N3 1!"2~ 2烪̓tNJBt.*E8[ xh>qv`#4vDd^cK.m "@[{gӪ! \|S;i> !a݆ n $L)f'jdۡv.nU=ͭMȱ72,0cJ&~K$9( KINhD?%>`D溘jS1, 4aHuudј8 h>@Ҋ"YX)vT'7zhȥxT/?WRH<:'+8Q1<3>p^pZ8\F7.d|{=}$?'Y =iWMfHs'DOINd]u/O >AtMTGHBD~1z`zKkJ~Rwٌ=eg<=p׊@Jo[P9M! 0Y7G|dߛ9RfU^EIzjmg@vJ08+gu}%)VKª$aQ0B._L;{8៌995l~n5G5Ac>lP @5~`]-@u>2xf<[41L!_97&syo't LӷZARtK7M2CЁ(_gW0@X o>AwRBp?T2CuOnC `/`̛1flbg=LЯ| <FzCtinjғY"iI{G=!KmbonTE7RSkyf)P[4a&׈aR$=~XOxY:CfkOV:[> c:#Y&e͐ۑ/J.!wD5 Pf|3k(S&or3ȥ~d뜼\:/kyC#MƓ̱J5]=*]SŜ%$%\r%<1 \8%x8iXo߼طY鈚s5pty|A!G״0tEaxIJa vuUH"k*r:8pĪD/:Vv cOw % @ H/џʑaWgm)~gyR9UjOhuQs%qR?ce?'z>ᬧ}Vn#(_mu\kCQ#P LNVtjKCH*p]I:߻6Sؚ \}3ty]6/'.&KNNX/)ي#{ugC[w]΀ MlcE~fp28Zr)! ReQFacR%FYCFL65Mu}0e2z$?E VuX ~)<~w̜%׮PQ[4ʕ S3{zA2&r~_^|#g  ,Xkצ8 Üa!rs^!E:.x*wNU(jV- dy<X2n8W5WJ*oi6Diwf.{b7)>pJ_m;;3lndvʻBMSrpim)!Wy 哣$H9 3LQV7t u:{'B X~ti߂"DUNPJaUX'RSLH'o=.<5q'#) P22;'f88ʵb7}0l' }DԵ(~YRs _-9ye:JrXwd.| lE-W\2{)GZ:m F )kU2U+tJ>"[HUO!Q2gpo lge?z|Jy!|Zlߕt8ڍބEaHܑX%m1`r-`_/شOq;<2z4ƀMI@~uT\s DԸp▽%ž /9E;71'&{f]_##R*UF6fcy?.Tʜ5{3UZr"^kD7&Ybf>E- -HEzc( $԰g/JJ#w* ?s#0NV`7I9P쇑Eϲ1gǴE3"!c|MmǭTZ@*Mģ0-d(Ab9S PAw+u۩5%pQ(#V4xe4sPԕ":>|^'^JP>T 9k+N2o˕ح3jv) i6~b>A!"+TEF?/̰v䊆Y!/}f&IiwWy"ULe&NXr=yx& 4umbzMl~HT.|KsGBbvKa=P!Mc-yjT )|1М}xA_yqs?d#^ dTֺ2@|b=t2lWz9tcV;qd Nd2"`zyQgJ2X"Z  ?;hs$ 6fOnjmD$JB\OKyJ">י{ *NXO/ ڕ C ntyި8mX v-י7B80S eH"VB5v.\W7%R1ҕ9W08!ɾIvCKidK?I*XBjV>kɏ<{6Ιۥ'3+swH`?@tAD })K)sQ%M䐬=H,B y8|"w}^qlG%X.lM{E2 G(`Lm\0G睃串GKɯ܍SΨV t/<4dS] +T0;#9u~:gqHh(!7 9<2S~L #HH/„P w@)T& 踡> W "L)(Jҭ_|p*򗉎{~e%ݖ#L9W5R*ؼ!|+'m:e4ŏY3[lC.K<>-ǾDXJ\1R|cGPNUFJyG1\tco,ɟ%ZxЀ;~rk YhVvI2 3—]X5Jz!#q}}T6DE}f6+48o۞x<AY,l{#^TlW ?7$EiH@-6'+?QSTqG %r4f17I틏Oڽz(q^Y-ΫP@R.K[^8 Y]:u3_C$d+Ҽ+x`dCg Ĺe v>WIvS*v`g v*`|b_hH#rv|]rj<ʏ}W $g t$\x7]Xꀏgd:&ՈčF߭#LC6L'q/3.f)aT3(ZM88-EuJ{|k .V@f-)Ֆ5Q7Jq^@RCS#* ]1#9|n%MuLa`lyS֖Hȑ9CkA#GJQ:+VU\C<*`!=#rVԢQ`ӗĭIS" TF8Dw&?* S\ߡ;ɹ,CZ8Y2 i9k5B :}3 eg/ijǿ(;Ǟ)4ۚ6qk8/f2{r2ܿ11[v= ^Kڃ

n@n].IH9e2_'6sjmoJ9NkfBID<ṋ`c\.(NI#2zvPI%y\ E{G 8[֩g)w_R|HiK9d_YX4pVs;u9Ի箕_N/=["~`-ؒ*CGpuCb0|2x>cʘ;JI9Qql`jC(3Ryqiy ,D7? svM_ \`јJڿ\g&Qqw9z{Dً!$L$V1!Y,.>cKFІ#a[jZ06#  u SQSAHä䙡Y ,|4_WrcZ: P9tR  LĹД˦ Чd3bf'jw_q6dy$n8Htr3~m0F,)}6EN ۊK'ƕlgP"m%єUnYQE f w0,T[)9ӻ6lʠcjY1Ȃ-~:tn29(.k)ZTC7Aۣ\GB̉`Qh0*)VѦt-2)]5m"΄S y7a=,eoQ&OۧZ6@-6IPSV2֓|/_[DC)s5%"),Jghc-aF MM"WhPNcpavYuK4=ejl^-׬vswJ\:zr3'VPtr"6c̝\y7ԜT(T?~Dki(d[0FA0-zo5l K_]wEU '7[i\DFݦ6y83,ı``X^OGHU-Nb<{G3oazؤ=ӡ|`oa ̆,6)kz%ͱǻ%;+Xo0|mmMh.6MQN:#Ar ONph*45Rb"Җi Z O Q3neo~/"!Pl``UʧrpV0cݏBb OaKt).ҽk\J9j;6)0<$m{t]qb,`|_2ObԿڰ2ck5ZiD$0Tהh<;ͪPJ/tj/f= 0-!#)}8:,55Oo˄~96jwV>bL{ FF_({ИoKg#N!G8Ae^-r7/{UiϨr0OJ"_n; ?b?&$w&vP]/ bGHߵL-GIV`j|fu9 L;hTEI=h y:W(rQH'd5\ZşdyQS!ɎD}R+qPkL%)vE ѣMN ER7hc 4( e uyP5Jkj-5=ȔpTY\\O/u&(d#% X&3hvgx0 f:YR%xܪK?n6 Ͼ%lC#s(Nbm F 7ɻ{@3mRפ+cD๬6;Ёcz8sXsQauʨB]i9 -ibêj@'h=[{kM0iysUZLaWdD~IHJWyM!oGml-fiɩ _r8HAZ2E8HWe@,_sКci c! vOk|F !W=WósZ9,V+.K K۴3U"yفzQyݕ=F& }FbMoEݼUV5d~p:& l-$t?,̫=١Fd$ZKWcXΔSx|w^ }s 7sIGV5"~G+6̚QF^K/ϗb2ƨv2P?;sKp)͜ ǧa]}fɿBT7ub$תtAadmV&ukda9kHP$ͪ3&^]"Y0ap; ^9dMT9z dȟ x!Y)k1@X`>/V(ZG.r"l)ܭ. K5cM X`%]̘Rb*9+e\0;Ԓᨦ"' rLm]>b S|8 0mv6qcaw \ ,?‹q%%f*K%RAFm0>a'5 _ZFf~A@{+~#z1+StKQ>a9azu`&4-kayUKZQ\X!Y"N"ْKls31JH-uL& MaPxxx fl!a-P&]߮RrBnKY!5O.w'Jq1c>U1 <|./z|dI& y0{Mk(joG$aY%7 PUsnm1V& kf4 =a=NEk+[{$-Qg[pꟘ)5̶°` e Zu7L8{ $gdXE0y3fe7+IfQw_ )xbi{K5'Lp[Y1Quk >w){9sNR-X"b2罶䮂/#W΄4_cUO'f' GÒO悵JMI~)opOy\C㦪 5Kiat.6l(:~19;saΰ!" utտ(Y,.e8mv1_-468(Vc%6dCRݳ yǎPκեRde[-kd,h[D!v&/"\]m!> + 7V%B5n )S6\wIw{+/Dci"wF=Z 5|Iإنu3pUTaþl:AgLc_/jJUk+k\LOkB.tV]¶%K0*'X9 +拴n73X0bS=)1K,Db|S<ޤҀ^Aښyi #rZbS.vL8p‡xZzD$ u՝]jDΜ%"[ҁL'XZ`Y*NK$+syyhhg=pH;%6^ -8t)Ҍ_sqrPACd6AYI cւ5}hAտ {ewKNR{eQvGIMP,@1ƻ[T[05C`݂DLN@#oՂQb~7+EFzv6ue1X(pLi7`Z&9e=_ӟ8 ޑyc^]fgJ<:>ElzW9yvש,q?H)iξ,d+R@Uu%1C' HA&{!t`4?y…"~?{a@⏄<}k :KtðugKIx/펮$3KpńCG S1P!aoCzd+EbՖiBC{AWq+ !-,nyU_"Yk]=Ro#yPCw٢VZw= JI=H\TAs#l|C n9]rܱ  łM#TO>tҸWCXƔI 9O eq_%w/_"]sS đo\"]<10]k_fNB5 mj#LBfxQ`fP[甂S7_hl9%a@ؽ<ڌefYþb [[z,c!c|d!G\T* e0I {;iZ%WMW^hP ~S6Lʌ1JHc65V= :?^'-9J]a-| lFy۬ U`s|febAw9J |J&de"M8DXk8{=J47Qתį:> IVhW jRݠ,)(|U[NmLYmS0z[8o ]WHh˝6)uSre_] ba!bSbђ#WDd|KwNa.5K|$DBՏVK34DpɝB޽12>F qMz;'$˝= &'`i0:+ٚ=3Ś 2`]KZ7PWy1z75ԍy*#]W-EjAE%I$~ 򳧄50؀ xc;Aƺv䠘œo4if4>qAS^):>fTouMt >Vy&fy,xt}9厏mLRX]$%H Y(oe1(6Nw(@YnsK^.uW>@lBQy RQio&ƳWîBG1Ɏ"(OCfl;s:]'3*xb+鬺yZ.IYxdZ?Ј`2j|6Ap"ũqt'y|hlVɋJ{ly=J"鐥S ko͖٘2w+Zrju[ۮvDszpq[/vUύZRu}{/ڳ{4pDÃ>L+[9D3л 5 &ڄfH/PK5H< "=ka$A~q4F K.K;w= Vq[Zs~GVFnXI@>O\ۮ&8m:Kjp7W(H!M%|Ny 65{mTl2.S=q1hrA+Gw=GمXtrn*5і pΔBpq:2>y&oi{M?6>ȱTgQh"( 22`;f=HgÔpM%1,gdQ>l$k$~t]651qh@7HH>Q$]g}Ӧ&v`n%]I&["2kCj`~ cRcM$yZ-oBZ kH=ܰ)\Q^Ks%9]K:/r9&v:oaݩ9 ) P,IT{aM˂XȚu8N׃7/%A'+*@b(a ZtU} ftIZ%P%hQCpk,*:gy6}:ڱ'l,.ԝE;Z8N7^zU Bo8롚U; (}Um w57hx_Q?5}Pk&sm WP*lLgJ]M(^HrpkcapLjN VBWDk)K?I01^D<?W͞6j ۿ:FJv+n_| VC0]0 IZJŇS*iP6/`A;袰D WXG3fh|&e{0 GpXxQxL¿pL8 ɓdsBGCJEXy$h}7L/c$LAܵ0Fz6x৞lmZEz !n- SW]>0|?޳zTu"'#2}zVl {o:{h=( jbս16$& }eȫW@!\?H%*Kł9bм|~]NJH*4J} *D9D'@Wꀢ3/Hf /5.`̽ƊI𗍧%f|p ѦQ LPOdDۘ6 ( lSkNOD(ɵvY~(o$,G]cZ^eȳ&zN/|A.򪍇]?."S`v7Է it$1EQ֖BхX YG0iMT;#2Z-nRQvfd|rA ~.sX̛9+e]1)>NlLSv7 pl`=r7w5T>97βܝIbs5 E;~㾘e ~pbՃp<6.=>D^% Ӹ0 =k-4th*dqD}nPu2DwصpLȟ.lp&k)ٵH`.\#M{ a0 D&i*^fdNf2h\S9~("$L*[|0@>ϋ4$R~$7viE ,zf:K`܆ۧEi~B" I""ٴZi_i7SHZNn6ʧ(A;%.ڢz%i.:B8IH%jl #L2r+"yd1Zvt&E 1g_Zfk4w|){]mIx-YkWpxqs0)_"^Rtd2G&ʯ"@2oOg;dga`"FUTv"of{ :&[a]L={q+#jdXoПC䖋D_,0v(|.yrR2 3!_~/s:jF&]쑫2/uYh|"|/2XZUY8BG w =Xgza7w:yp[YO6X v7S@t%S۬h_hȋ؄T}xm;]e*whzbU|= I3V SM4giF *BzΌR1(8WBg,a6¹R%R']r,cf^;&;G%}л^!BBuΎxk[Bړk^v9#`z[3n#vvن2 7=.XZMYs8yxSY$Irdk#1Y 7{wekC$lth@rUOyLp>eCc[dmcN(k<`fEx# JGՓ9&u%xeK{-S2v0DzOSخdAYl_B6UɶU螺 E($kol%_{Y7 N}][܉8sP+M@ { l!kZ`a[=G5yvA(J;*_}k\AH)AZBp jJ: vu8"7 ?9 `kІZ&%a 8NanC[5@Zk(D &29gU$5]-h YH<3Sx\_ Da`z>< ~ȷb.7$S]mX,V/(4^s:ȼ⒥ȡ1Bn1Iُf@_=,NgrA& ^]39OG"a ɀߕy0ü^R̽`0%Ц`9{Ng\{ $\ۯog7`FF\IxO cH߻qE"uϦ`iX=b3}kC$ ^9%)WrLq4G {xgOQ&06ٖ=پ8H"HB(^{+ܺVa1^> m0Zˌ QO!auAR$Us5 >x:qֱ(9jJj=O %=ͮy&A <`ܬ ro>zvTov4#a~/4{Y Xգ_`>Km[*~g0L9(/:b./Q[`}]_I^wp -_jr΂ ,N? +/X~MR궷U TqSOa)P4Ĥ%gT-20]؅|hCͰNؔ";iuLpZTkdU,7^ dBu#vAݧ6d=MwMȈ UǨyh4wrHw@ CkDOX7r$oVJ$t{*Ra9 $he*p߽cF)edA%&d)h'}4"^e, .Ź(ȹ60t*k|}0kڷg~q2q{ŝw/-6yM:[C<~Zs':PHɍ7c$X=e7wvupts_2dB;)F(;ގ2芦q[^'b]39"y$;~$0,:)J4>AEM_:eWMi *uy,4AsgGdbXLm6h^L)/BQ9.~+\S.gD@E=^׮0<ޓq6U*3GCwܾR#/'Mb|p]xOr;M1[}j`EtFW|ǭ\Ef 9(j2v(JlIiQ>/>|[E~}b5Q# MG2+7<2`>j WBϔs!exy#gz΋2h9hkG5%\>m\>{^c^*"f>\xpPs L0= bsLX >]t9%z<"D=S\=q`iW[OIpOQj.i%(J k S5)tvBD^hn!|=u!`VWY +EdyDT2 D K"?b N\b`?n'~qkYȬ!A|sLpa15 }FcA\IA#%2aC] IʸOx:MdId̖vDf9;ySՉqh^ŘY''g=K#Є6o$H\>$6,^zAcԨ2e-*::VLl ާEMw[40ڲOgA{3B]P6cl X#Ez&@o>͘-;0ӿ` Gr`? I˃zXHbd8lH$P%6 b2c"WtggD`]lX$XyglbW]<~;f˪ې|5^2aO~{(}P!PK6qvn~\](q8FoQ 4&|W paO e J3 8ӱ9. ¼tGQ4ł 2b1Y xdZ832j6[y٘j:r-S5{G L\v oѲwۮ+l «R9Jd_)%XYܞN)GFA*eQK`8SJM'5G.Qx: m2zvl tFR,P;iP]H|\ Ma(^;knG\?4ȧ}{:6T'Vl 6򹽾\|^)K,͗]ϘcDBҩrXۇ^#CI>Qhv(U}E:WpgQ 0?"_a# r( aNȸE'FZ^*#3FsypM|^dH}|Cl6nFN RjrPSϚinPo~ӨYzeR>IPA:6%z!Qse:3s+K%lѐsr!_@U.UJQ zɋ3c,jW-]o҅[oOk&Lrax}b;f:sh-?mF!nٺ<]8駦+Z'?=o2e]'%sS=iw+~Y*HkU4[j;֔5oqN|8`>e ? Ψ7n8´?DQؠ}j6ʹ[aiG.޵?\Crd7]ϵ-uz*Z9KUY6񏂺g[& g+{APJYM>WpX/Ax{3 g ]DWkGծhUlx ֋gj]okGiL` g; 'jC.@! y>aBlP69glcWFk^gݷsč3D|̜\tr84S}3QuQ+ع^k{0iۏ~:Rq R݈2POP ;`|q0Gυ\Xk4+ /?_ -=kOBH Pyb!g+QxAX|obݛI9Pt`Vœ֣}*(Bwƴ .+gK`Z3 Aȣ3a^{]ӖkX$jMvUJN5Un'zrEfH?ePlD4d--Cb0.?880{H33a+ܓtkzG9(&9hq+32z̠@e$ƸQkN9/tlpKߍ\P0|"h4G12D2_r0|Eu4 :j'y#_9-} & TZg|d@ t_ze|M_HoH;C Nh7 ro 3fJaD3z8y7n}4aΡ,b_9lпޗFBI=^[aHa A+M&n.$1&+z_~_\AKԠ홧}1"]p' _ҺZ#^EEo*"KFǴ|^|]tbzKhm.H(㑱zWWccf.z Ьn^pQL\ L1*Ur#m<}gM7or_㫟#GR2'8g4*~l*_H)wx]ClRb9֙" y3 hq}XNOt g1h}[>YvR{)"PWR_I'LPsxRIku3 I2ؔA-FBWuTW[%",8K-@L-^eaKV~dIURc#]c,tNz2^*n;)Ŏ; Mc. Jii2 Qf)i_K^0B*x!uhFHQ^@y Lv"?5ld:b:q@7ɁRb_>OyѯHR-|m+4pc0/d^,1Ih#0z9@FC&y9_GFwSf'Nf${yo$/Dw5FѦ$^EH{hxb?}vR\NUQ6͞"qiUEͽCueYbۘbktUEm'Nf IJ̀)Gk8aKs.C#$e7ߕ}TR c z/ptt6BÓ2'4fۋ !1l~-xk#jw9p, |QK^? PTO+f=H'en։8KR z.mgzyaa#SyULK#X6/x N@Jt-fdy,&0-pؕ- ^eV C'ڎWrA3|S)d5ʋ YuVfVu@Ҿf0pdZsL, /ަ*#j,BnbF*gL$]lH=AnJc:DU=uI|r2t^sZdF~14yl!1hA\vg?/ssKO;K~.v?_YSNPn0$Tu;*X2vj>b1~baɰ[<z {HV8Fg@~9Kc̣z<~4.uM{/t2Yp ^&&I=La1O8&w*YoyӐV[q"y~jd(KtU@HjL Qv;th /ϣZ}ACȥN2:kNWoX9[LJd#0 ̗Onԗ76,8+KIn;%#vOJGk/E.FBjiW+kS ,9T\h#Ts)̵(M޸a6E)ȫ ):a3V2Ơs`@`};R2VQ)B'4=Bn^F\mˀgO:?3[K1ӑPꜷ"1jkFM v-2׉~S9 IaBÉAbY[XlRE^E$rLłJDQC4Arh#2`H(>N2w{P&KTJ wF+N䜎&)奯kF!krP+10CV]fpyjmSx> CF$4W!ĨoK` $$`cu vDfQ2T3Rۮ +6h7}EG 0\RDL[yg),BrւEE fw KObH q=lGAaS4P(I3{a(-s$9FB(u0UN5v~Q,U#$\j I!yG]_qE=qE|dU ndg7"S58k *b)V1?[3졢xp3rW:`8d;A5{؃C+Qr-c2%f矢}jf{<2NPWֈ%$9?I#D $Ͳ|.MY6>eowҤ>x>lm½A)`xǺ uLÈm?qO ;q4|:|a I=6Yڸ?uÜ 1|.^Mvjjdkp AvH-{DmJ.;nb 3鸘̥&NB5V]2>:O͘q'a$7e,M<"%aw- t;z0 :gh~(w+43trV1 NSbqR7HZޝOꝳ61dl JV$$p)^I. [&ʳnk~B{,t$Rò}*")2㕧l6vU%/KZt;9c vtrwʧpgV˦]"dFYᬑ((( ,B4.B']&\g-y qa vZ]j?X\#vi|nox`[} S~qDKOALf FY;Mo~-*HtjMW8 rH)wܛE Av>ކuU_:\TǺv!Lm៷IElxl#hK<+mv(zwvuԎk{ǹy,84G_k)A0qZW&^y*w)8B8z*(RCnCws=zKׄX_0A#酪T[6 OMj(Sq5 tlۓG<  i+݉oޖQsFφGRGM9UzYcFnU5#_,L.]q%5]8Ő79+&ζFg㧑u& 8'ٳSOp)\TK/wj%񹢓M]i +d[]O<bgn.H=4F<(prbgő|Ԗ(+N; {!McS5V@c0ǣ\FPԣrh'=vuAo+P0BZ*&k3ul YY% r >&Y(yHOŁ2=Y,v8Ϛ+1eQ h94eJ]S׈g9VN!4CP]ʛVʝ{tdp<.:@1Jꈰ@z,~ ?U7 )_x7s"4E[Z#?y+[32Xpm0}0C-2sQ+eY'HS=4@ @)[,0D3x1^ ؟.R->Q $V~f0EUӏ騌]xp#LwKGq>Wvy7#{6 b=* 4xI=^ꓜ]^rrOʝ.FV1ɳL?8aib׾8 j0$: O 8j!9QQ֝p6NIh8vxj&X xH9,Z,61iT o:)fLv>oCϫ6Z\L$}.%ۣ$#cu[wmP(rH<L(Q#y`@f0ͧ30#!dO҃ƂTvՐL_hz2cTa"Ԃ0veT`/.SLbEEyc]`xU%dkPAe7Mؐdښ3 -b!Vtf& eFbsGeY*z+)a'` ,7++=Iyо a'DB|18FQ͟~u~LV2ͩ(;J{x:6 OͤLKM5D-Dž{͟x l#]&'ۃ2JP_WT-.3&ڨmjÏu<9/-NmLn/5t zP=zHT7jOnT2]Q}3lmxaxcr^PݡIYpC`!+jY' "`mֱLҁ"Yj +hp$[8Z s=+Ræ9Ēlxі7C5C&9"!*M qH'/hB  xXZKx%cS4\㗣*4k/8PCjs«>pΖx-)}ZV2gIUE>{knh$ی,UtyE(Q.,4T*PTNgOZ`ʃCcC`,gG]\mȋN.c&DOSF U:D>jlC9eow,Xy/8l~F FMR9I2D%q1L) rI~j/TI|YvDrqTq3JȞ$EڸB9 _ 6XJܿ:Vgvu,m`ӁG$͔ǨzxY4H wi"1q;g{xmmp7t7wṂ%vPv%>=) ccYMۼnetƿjNHn+,1c9mG">#_v̊Hcgy3*R*N?t.bI*E Hξ`Qd)Gϗdtiq&x]p</-cTn7R(EpT.Ö|d422F%׭`8@4 g<{IyTMh6/&>W<{-0q#}Ufaq 1!BP {KZI/\;Z=A5r⹔I(?*\|`E84j^*Cx-E.,ԩŮ^ o=Rt - ! XHGjW!B9\*7*@`C 8={<֭JJR^r7;%wNc$l,9cLƀ2"l\nPf c=s}#sS&y2f2A=M,"?qNlnUe@X3բ}O/#HVn+}Ґ`SMm*J`qov~M1O3Zָ$oЊ [/.t=q4ze?~`v a1e:F@Ű` d1/w;|s5VKucHm߉^NϱP،/|;HJ2 lG. ~Y3S.\*l1HO`1ZblܸJ1ĘM!)@p Zk>Mxar:`ҜcX:J:jd3čsnp$(h]d]AO[(3i5amV_PXf7dɷsNdJ|e.ѩNZJCܬ+O ˷&>4 K&3Z=́}+y$= 쩃)vb,:SsJ SɫSסyoLLNh'~#yo}S Mb*V;Ww"Ѩy"ⶑ~j5EDvLx(#Hs0'Tdͧ%O`dK(>+݈ej?dih!NS@pdtuZYY7)y/ [n%GF< ~dgԈ0scz;>s% MS5EyRjʨvDV6a ) \wI+1ZQ2;b+_4(4x70̍ŧ4.ZaD. z._r2ZBm;H 1tuC}(:x@=)E,o yf[]`oBq1!ՕSJPɣ8j-տM"'Tbǁ *m#tqͅ9o}V=@|ԯKW5(>Y;NEk~"m Yg)+oAIXvīcmBKY_-%m12Y*V.9/Z9eXm4*qXKJ|q9 9ǼԫY_c 5MˉgkI9ډQ}ss)Q"DSzH!~g o? DDCB9dYtL'N៮.퐸NB'ѾM9ι* (l"<7ECpKovFV94s6qinHN=a q _C o-4}`\CXc&">.8k>Wo`@De#o+1"bt*RV6"Zmz`Sdp]rm3_DHa-{V=XlN=R DŽqA7fM s4Ef3,CGjĥ&8uf6,T$>V*)J(kŽ$t)W`Y %nY^G\wRwDuObZ}(7wij/XRe` 4؈:`̈́F5TqEZ' 0ReP RY`wsqϿ~C,WD>IUn:Oaܹl`K!:H}4 4.'# ^ߡ+| Q1!ȯ6"Afb҂838g@t_Niq{R;wSF,얲tT!%Wn2He2̀xy[mpFZ2avOvQG ީA@MAÅ7?tbpLߴAc}^}ϻW><o6܂NoupB:zI~k8c E(+@zxkrhW+S:.xӍl$耟mwa.8Y ~uҸ)1ƊVppg{T3e0r{SK%b ԭQa` F;S0p+V<*rޜgx H+ ,'Ӂwb6cC[)J5,p&R+Դ,{.+x& [In\<1/hdAlN<U_UM|n@ >9/IhFUR1t(k 8~j}%C4Xsg3Q,Q9y;OLˁ4ݕّP <4}vv]F=wqǃq yG֦q\2-*3B~X8]E_gÈMlo!DLC[9FDG~`X.Y*Bm ( ]{;/APt]BvNc69]kDU8]Hj6s9!Bg2<& ̴ezfcw/p]MvrZf9qbo6 ":]Vʴr"lirE?ALѬkЯ/1Ts-`#2蜝3! 1'K$^1<67Va[ jTڠvtBU š=~n՛_N*1ꠤŌ\{&Xf/xbXkwkCj. EUim un%wUa"`uү/ }MDihR'I ::hL6E [N>ADCjH8\JvX,=!z"1t+mFٔV } l”gޞ4<)JCyy T0ir]SYj:42/V1U-*||P6uA, ڨL(mpbnWUuzesSof,ۊ즛Ml -bBC+Fw!6#Jqy̨}uhK&=#Jd9TZu.OwvG % M?>$W[-9j}PȎʸOS94EXixTޢ6Z]^IIazͼC=ޢK Xd_E:dh\D gብՒByEMЯz#(6F-MG|\, < T]33{- $- ߸SqʬZ8gPA!Œ-ӳ-R54_YqdƋ aCf+œG>nU IxȄE](vҨ$Z`->+p,bQxcm Q<`c݊2s^_o{1)]Ht>f" IAƊ#=ZߴPwa XUaq&ϸ\}3lX}_$:J9! MGc%1rt+Z(BX)~Oz+Ft k wS씔z8`ݝtN D`I""D*ɷ(tCIxukD@T!MJWp$^h 3i|ֹЛc?,/`_/:rL"IEm,T̫u[؈}Iݙ{6߅mb7}^vs!~3b_;0v߃aO0Ӽ3怛9g"kB3k+ǜ̃2[/L'W~J W˜޸lL,_#L{i@Xdus>E7=(?}IX`n̍=ys=ZWts<0x-Ys4n=޸ eʙ?`aH@QoIa7'jW\$F'?;u3juk~LV INO3T?)0Ḁဢdy]Hv"e)z;c"e-l``d܍l] .b>kYνIMKX͵#~,wi%N|Vh{HqKZOMitr?Яtp*PaM#oOzX)k z~ 8D1Zyri1[tB Yd͸Q([ЂGGV sV˚\79ta=[EY/uCt2sC7,=cd5~ AY`0|.jzV$^8& K]=@m)PK+X|O˭oATqIq Ho,.>6%54 j"⟚:.Hf.%S߫f`Qy2KݔX )`R2FRSkStn2iL!&b͗60K}lNoke 7_TeA9k`@52pu DňeD&"q$|ռtQ'!1V"BTDjoDTiʾ_0s]gTy+:Evwx}*ij1f|Œy #WdsҪͨ%6 $cȫTN\}ąP47N5Ga q{UB:``/zMÿM*{('J}uwufZae0:VS-z$єEC8K5RS$|Rn!QWk0!֧T &ڧC=Zb{O|u3}2GmfJN\  <*?9-/P *$c yOATH}s%cC&RaV`(MxE7Mq Dw'U҂18/43`jq#T[2|!IP>:7"aOS<Ѹӂ8}pyC{Jr)$?XZYD*림)'̶?7{_0#j&{6[龜2;1,N @QCDrۖl'ҏ_փs|GjǪN=2^$~ƨ<*}mR) 8/H4*s\e7%'~,࿃!M7 f8- JY$kYXdBIc@3s6 "r~眧-܈ds=__O~{l ^/ɭ5D0DH{R Lpܩ_̡̚/&Mx:I6Z;wBI,~#I _:;:Փc?yX"nxcH}4RcSB(%ceгu%|VS):}y'%- PPdV0(0 Kqbl %kJ(6)F|SH_'nuscrxV>ǵq#Zax(N?^r`q/hۧ(|]1K+;SA1IY]ͣ#TJT }5jħ)xembʦD仱FuaHCy,Q/vLGI("D$+զ1yo*\I4)ݔFj_ .hWNgѐxj8|&uon`.6` *_f6XA@`8j}Ը6sazk2bR#f }=ag.u>U#SIfH37@ T. enB$:wNAtj7[[~<&H?ug]+<ɹ0;elUiMAn0Z1'B46NGL9Q$<Mwi.I,.5|Y41;"I$h`:Qa)AQfْؐP׮E봲/D_S$"$j]pq*-p.J"8*=>@kqp^`%!ۆIpASu lKZ7e@k^L|^^%Mԅ.Q6gn6xg !yt'ŗ%w L y3/s#I 고_;}I v+KFa1a o\nm~:?+<%C^4D6sE-K8vd$*B,4pM0\K9/Iߜ =guMiwNT}Kp} '-~`".2LI<ë"[9ܯV'Q@/J(wW(:׎^F{"*&D}ԙwz٪gte1Vog1 {B,@$p|'A/n"r(fa 2xYsEi^-h$sxP|NǙ0N-Dnzb+Ik758RpĐ%|e3! I!JJ!Okkzמ=S*wNS.ذnrMi6A^"{\5!H1#}l6LM9a}[F̈́=T.zP#zۚͨ Qua8w5d/@|bbUDםM^y)@7ǜ!'uKr\`yȍ_0!KcFgi-Z+_uۃ3ɾu^~%ˡ+Oi׎IH~CT ohXͰ8G׌-u GrXMmgL|'Oa i_XuˇɱzD!|whp@n`&6 Ы~!RQԖ |97 fߺ 0X\ ׌%#t0jρX;⫏_ ,Nm\'V󏧛?c.C`9wY̳Un;=xpnȉR:ƣM')zǍymjuZA]KΤOFy`nL,3KA6`טYlHm 5a1k|~^QH2gJNB ],u_WHNbxZ^ pGʡ@VZTC[:6NjĨ'^Nl0ƜԷE`QZ+9B^fdb ʎcx} usO@wh XH h5o [QK*}`5qhe$'U ]8]JտL};SyM?Qı +PE':eiQJN;լ :nDL-@ + "!==my0Co sЌ}=\-\Yr%/4"ѱ-R1T.AW1 zkK$AģNי{t0F=Tt$ <i!zx١xc"vW sX]8Jcjp .5 QoYW6S\;  ϓ: R_?{)F\d`FJG8؜'ݧ@CVM_ rį6Rfb_p>m/`Vw}BQDzG0@`ttsě:E?΂6rJIoCR3߰EOB Wi=U4h.}bw\\'͎9ZW Al<,&bFn'0~ۧ- ùԏĹUtA]+l@ o@;.Gj,Fo FQE.*}M7/[jЃ"Z8!("pn"ZGKd[篐^];_/N MxCAOW[SŷH-j6Y$:8V~D#Jx Rttףh6c<JHJU}#Z }5we=u뎮Yj! ئ' `^3ʟ/%eI-s7_8TNn:r<:?DSfdήoՅ@͗񏺃Ox~oŁ"y#pխTpM9Y첾p61csT0ҋj9a-$Zv i>*G'dKS?cQaȜ*r%)_4#_ngdCmdTIj˱ 'kh6ktrx;ۆvЉ J8U#˖EO 𒢑= G^aUf8l`p6 &}vlkFki '8~Bi'e縭=ȃ*u]S.Mۋw$ 9O_ViZN8'*fdW-S`˫iDguY߬aKZ,e'y#D~Ĭra%@qHk Dwf8 Z},\uOHݟU_PD#` 2&E_f| (`u.LdU c/}z(R܁*(_P6eaf$pʉ4y:Y-1ThЪn"eԪjNrY'WQݵ3Fp:`&i'f ("y>T0(]_G+<=3.լ{;Zt`"k`xq%:^qj,)bd.$3n֠XK} zŜ=R4 ABnS4iL>, O4#R Sn2c䍯ưoS8٥zX=y%Pm@DJ '8n+ @6e(~Jarq%X ,kk X3ܰ7*pqA6)_oj^v_)'+.lC5p%zj*<Y4K0c:HBx%A}kfћ$SH*4DdjA|[){UB̖?gĦ'PPv֫1o"YcOF cnYKl ;q4& Prڐ_79SM3ge]`#*eK~$>rOZ/x:&=u^Kh5o|o4jBB_WD KH^8=ez}syeSjmsWeHg%ctqC6Ӭ%Ӏ>`>?UygQN B02fJPE_([s0GOᾧlW?pS=aųqqwf2w~ڞ &?W'ŧm~r"4؅1yLۊ_xuSِ-'d>L) !WNN 9aDQ fj X$CT8kٷ'nĞ=sӑp#Ģ@-e$0t >d1˦;oy8윎7r݀'MJh5"v{`>6E\bu$Ew(HN'[x4ИyR-eVP mnY/.7HǺTK}3(7.IyII&T˕^[ ikNb%ۅ X$Y-fzo","RoC7'@ zV맧֞c2>Ey{? j#t! ѨqtTiu^x]1D#Jm$"Ē[p>;!ssN1)7SmщS}`oտ'G6PscJ/R [zZ?,gqW4ZcswN٢QcgA}UvnUgC uL%Cld4[伱3[J&X~U\PA]ݎ\Dnz!6 zӤvfnٯ{E%tz`f| [$ ͖d>8v7&w _/sPJc;_g*M}0:/Rbd_`xŅf$GvϯnȈp P^ L3U%uv),\z9rHGu?Ƌzc FrUrP( }]LNZ>Q,Luz6!toA+qhϰ $E_.h\|_? ]uҽ$7d x:lKL X.ĝ-;g(0Y)-8ƒ4o &^.{v突.He{W,'d*Ny/E<9Aw-D V'ؘhg8ZUki]DW5ҷ/ E&3 Զ"qOɕE4y]wW8.?ޣd.!'zVP^dX|uYٹiVUFbna40#S|O<ھfgw;DG@j5sg8}3S%id6)L63.ܲ8#oM)iJۋI׀}xU~~y!u-clKW+-vDMV24}ŀc^w섺;E% ;kxXX4Bj.|xqT "9aW ^U)[1bJcȫs++9]G( uʉ`qpfT=cɒ&J?ᩊx+X;U?hp˜XeLPYB،*;^p~5چr~F|q+ )aG\azҌ/BJ9( J@EN|҆+=#wDYDXῄs-+m>=4Cݕ}I:̵*oQ~כW' 3+U 2Rncz bH}}B6| 1g`ꃬg?}w3'.7i?Fs̾ .ɱ h:h9Qw?W&+M ޖ[x9(z=ev xI ECrB]AUM/y̖c*OZjT V:1n2 RϓB>TZ bD(wX־Y|%$>r'?f+`M/נlLlu 0c]hZ8:,v n80vSms-[+;v\ b4k9.P՜+oup>LU6g=X5:^Rtm}~T;S)@>!b+ O"{'# fp;ZP㚫м(ղ~q*6 /:mDՁ砕ڦ̆UO+W=*f3gF*+&l~O̍z2oUXWWƦFRHu}~/߲H炑JTwNk6! cMObG`Q Oh|'  X3EfW!0LSւtDI躞AY%@`zBӺu ?8}˒ Ҋw~\ej02v~_?Y6c^SHQ?qBȯA.ruNmpNw/&q_虢EM80L̚&4ivԞŵ zUΞ7*蓴!|1O7eCO6d c(bx[ғ{xL5jjw5. {þdS XKSn{TxZ:LhrhGؘ(2xYmjv$H!X4 槈L"$=UиK7HoLNNY#Ĩ@Ș`xƓ41z2>U+9&p}EeY@NՉCƪ)T<&m jtGG:3(Y[' .ꘞ;iGaVQMi Fzd U,^!\G)7 Vwn-Hʗ.鹼UyU>׷Yb]BCMYʻ )0M o S7N<{#]޲ȴL4'V~͚ڞ2ZfE ޑzE@̹{P DA)iZ^PʉJ F~s#YeuPp!P1P Yƨdk[& eFt.>G%mien qCD2a2UAbw0W =-hJ'*.nJ˚jA`>q-,VSEbcoRjF!@ /ѽfV'\?cA)KbniJ[c@&^eL@ϱv6~ ur2q&m4b)eɑez۹5wepc&76hZWy5BFCpFd+G\k-2l.z41)ەyG xHw4G^13%j.e<քr/<A}a1Le`Ө;bZTfi&h>u'漦VS>!t2*!HzCm8y@¨qa <#Έ?ϛ/=\_*%?+=aVrJM)?}7:)ݸMlӫ\TÙYqi\$5n-˫}JEm]2ɮOS=nȵ'J넿AG\l1jcBckKNv0E/7@ {anP۱w1>5=@R/ #) uxM[iTHWvYJo\*Й/_t)`W=V-oQ$E^G)Ⱦ Gq OրSm#)2/T?& m\ukD`stk:$V/s&^S 5' K+Wx;t`CO YawQTV/c*cQ'xJ S|p;)fyTt%kpc i!„Ou#/F45I5z \)L#,Œ .B)tf[tlJ]@CYi&s$;{Ra7:rs(/JeMI6UOi`p*Q!=n'}zZ>{G1"gStUc65"bO= )ɺ񏰡;2KXiL SUtY$Q jj`\KV` Ixe3rj~ ?1\}n ,-vZ1Y^dz 0Y!F᜚3M"Jg(JB1ojo~JE6EJ trda>RA,M(] & V#2duRz_mwOT@40s%tުŠ}%6Up̮T_KJcV}I:e WaHٽ6Vgd셿WEI%݆Y UHM*dBтYHB"CrӬ!aSpQDCuZ㕓Ui*LuXzl\;^\!I9˩5)]I^V$14!-L`U^&1*jTM}bUZUBӃ\Tg BI{\1HKczelG*0*Neˇ"GnxvWK͚#F/u6cB 4`ZL@ʆI}X9{Nwv)Q>R/fRH!`Gjq-*j*gV: <9jIA1Gce{ƦDRdK&f%ڼH+I%OBC:HQvrwţL% ByavC̴=QP;Y]w5PI^ݱ$[c=ic"-} Ff|k!zDk:*(4y/GUmՉwQ9IL;!~\5hYXl[}$$/"[" _k豛% $x.}!~h-z1W/Ogϭ~|8+P8fc$_"5>G.pE^<gIh+z.L|0'C|)6xc`Lf"[u. ZkB׊-^UXpG5,RouAew{ 3_ g6ފR#󳔻lΜ;XCT -"W) l{ Zf[8&z-q~\Coazۄ'4Mu8Dp[݂&12q]Gr7NW(wj=$]weG1# ؐe+e2R$>`jI9rL/q .ȂE)4:o Cɔ1@xGcXET6BŅ` RH5k 9"P!ՌIUdobqw"'i җTHzd7_BZẆheʰ-%ˊl8xf"Dy/Zz=}REĈ~|Tǽc Ns{ -1 ӜZ0.{܈"%C>MBcQxjInk~ hiOq́"QqDOce=*!s}R xmNV1'DBGDNڌ틼9Q!  QͅS2/{1q"I)ܙ>6RdHDm]Voçy-OY](ly-c{vǮi< qtܸjkA.,4g~$}V_N,טOVYv3T@E}-@6R_RMSZ ,}.jගB/1( Ht>o܌~^Ozcڗvϛgu4"7񑃈$=xcg[ΠEGNѕD%ˬ9M(:($7,Po9"-Ӭw_PS\?ҔnzFg>yߪc2+ҦX4UUoܝ 9Fs7aJXRd6lwdj] xoSNߓ}rжCt `FWE ϕwsO5aܒCۓyA$q,DΎދ 5p'jl(EgS'&OJ6(`J{Iy9 Rh`ahb2R4SzGɟü 2~=~Mkzφh xM[eg)ʿ} '.cYuM3E:c2$%!v(@i>GQ om9PՄ:0K4Zs  `Sm]as5\8iab {+w}Y$Iaz4[II'Kܘ (W 1>-Rҋཐ2afĚcMaA{_7iٴ7 j62a\⟿zߏl1 LMQ6dT5L{l] Gg!T.B$R?qΆ"#m)_N]mԎ 1mT q4fsXNz$$9(RB#t gMsa}chfBuh<;i!v53}c_+u66nNn(GIèwQ3`F_JLA d27Y' ~BQƌ#=4+2mJ ٗQthUTɚAؑ().`9/U$#&7RyWɸ.Fsos`t ߅k;gOzANcgw&lQWZOhwUFiIb rhggHp^F9s։ *ăOŢ&~8<zc ݮf^+[6*+/TQ0Pr{,Z>&_K ;qSpcUBt7f`GI"U"ĩdvq*{cJ)bվ;neq>]'C\,2b ,h J;Ò.Ѫ4Mv A :Wm}=lkγqUl4Bn<*s`n]237#'=6=)v299^{ F|XYiwh=LwGU* V~@c % 5^<8$*{c7F|!ګUӽ*~t .UK3OE-T Lq]_N>NbgڒT٫2jks 7Vr|2Ip;e(a 'L?rd"YmڒmҺnzı\V"xM^{lfh&rzcVSh:rc[.xfpӫ'ۡEq|m*>g_ fKQJV *!)L|`(jf J%jq k&B3Qz@ ,S'l]ف4!܄͔]XH,<ţ 4a(qBYmpҋPJHξی"N ގ!)}eURFC?~N$p/e|H|Bms ~$(նf S$ ӗxλ됟.APP4Y:TaYAt9xv@&e`N[!7ߚg 쾔щ=,хծJUNXUO޶[w얌O 0`b$9>~=@HL3Pq2/tZ$2\p5 ݭF$B-܏\m)?Fl^NT?ܩ\}KhWG( ܶS*ĔćGoGp/KPi1ȁ|s Ԃdakv|sf61jdx pf'qE"$A nW Q gV5ƾ|DŽ"4@#snC~T4m=!+~['lKzl*+d *+K1<AiÅt=A_qwsbbgGdi2!ȹìLQZIvQ.~lϿv~`,pt`]œK QN9rWPKTKPh~""O\ٓF|4MQ<؍C:Gl98㫾?/ΊM0dh[X8@_sg=B]&PFIX\*lmQ:G~YsZQ²f&^Gmv5jV2J>(j]Zv/3uj?k.{ufRLj9da:>>Cka+u)J>i P^Bqfg7nv JPt8 l$4A I9_BNm0DPC6D8҄i!Fw~!bW{GLCs nL8 \,1ӗq{Oﲛ[*LlYIs_[SMK! 5ڬE$/ ˠj'J]*updr"s+ +5eK IA1Ǎ[02iK}N#w1Q3/o6[(yc JR6_ 9z/4 SXP^?AE}?EG .W/\@Ac.JϏ㺛JNe+J-vS]C6 7 {Rp_*5?₈|B׏b8xs*i )UP}9>+ ifԡ˷޾w{:}+cGg4%=0s6+t: fn#!ʘi0ӷKa$N,CY2 -9P҂G=#X7iѵK0'(ԉt?@-%|}~m F$ߖ8D_? 3&7j%62UФ F?7uwz^$>\8N 3}Ma#n^+츜ޙGnpW$RkӜx)h;;Ҿ+b ԩkt][!$,`)F7)\J.lݢ]܃`tc(ItgAA(iQ&hmyEff_"Ot@\CxlYn׷BBQ`E%,{, hZ-Op[h$vc`n/m7Hl/2W9E k/L48C~Ԯ]JCK*wz3<ͦM|&Hg FİIZGQjCTf)6 J :H{SW;Mk1"_´Ҝo1GE{&|=Le^5N|Lv Bws" ڍM"P%t{̰ af /9qפE_86aZk7i%@駥5LGZV5."LLoprK5Q } >;W%5Oc T$a [$Y逼ꭱD'U/*̏GR |ݼP+{25cM]q,pQcHʊSdQ(Q2V]xEAYe')7"UE`? 6ƀxEf=\ɣ~쇽$ ={H= 4wH(XP[drxmMN p՘2u%7]2;yi&˕2V/:h6o+p,|c /)nL#zݍ10!_qݭ p:_rvFc| |^Vvtٓo! chee_kܑs Y(}֠9 wb_38Ĺk^ոI$TJM@ε_<5/ P97/;l ,@?7'e?oW L-(u:bmkVFŰh :)r ͽ E;-A%Ne5mL0Vs","~,xi#zT[qm5446I|?; ,, fs vasڙ' : PUIG(C֔=`H5sD8Ni\Ӥ_WLc @v,׎zO Z:2?OlUҲvn%ɯ=n nDCVÅ dL<&N Wl`Ϊ R8 LqLⲜ`$g!i)b{Se~Hm&c+=kݹ^ 7mশ+ZpQ\V2|AkmM AXJ+l(6>%u>Ii{jcBLNU/qJMnȾa} S*M*ݐGg :T !!Yk4LyVul :(]vzVYnxQnWFHh%lj%n PX$xwڃXNKr [w2T>nXAᙩ۷=kuUb /7D/ .VD|ŜjouᎂO*r]=fq?WdT?PPSY)߸X{bgm3zk^{?'zkdH_Fh@RWJ % ٭JgܷRFҎ<j+sK;5bgZ~60\τoXxoO;eD9' koMS d4R %QM'\݁ys4'*LEC BmLWM 2}xs3RT73y+S^M֢1lhֹ~⇁UZ4m+V?s9d`M*j^&CքAp3K_~hږ|HV%<&FMU-m #gHw⬜H&yt[-Df[J\-,q.Gձ~NX̴;UQ A\lWҩ{;H+ZW쉅Vu@BZ#ͯ-X,(f:o JppŻԁ 8[9 T{X& YwF"+]ߥ2)\h:I2N)mNGC;?S-CZõN85)ku&+@FSV(~z‘ P۪` f0K)k8pD/k<ڜ>sv%w)\eiNC4(_`Af5iW 7ڽbBk nѹ"=OVdܔ"ݓ,Za8ZaBm k vkkhѡ^iÁDTa rՀ։Ggl=`i[Mu^2B| =m:.QίJ 4Υϫ "PYsuaݗZQz.'ҰۆxU9,ʝgC.4ǟ,ϗ؈܈Nh^<&/ph|=&\cbx>cjϣq%RF@TvFFBDQK =BDhtQWЪ%1l΂!/"w (JpL7t$T,{'y1t2cb?`x3>2Ǩ͊<%_B DBheO-`e ?;}w= RSݰkC5~bnwW4JHjD4_@HU=H>ଙiGbv|?8\qٌ`2Wv'M tD^-'{U\`D?o h}5t!L6M\N[aMYBR7!mK*0& ޴4\Zp|ƶ, cL#(Ax~Cc|&WE YTU"XⱀƂ,O_?Lpew&!H)Y ٧.{~i:#򸙖(}ń3)Vϭ} AeD2QtHd򡿘7)Aڡv->2pˍ%f*g9_<&j{ WeaƯ!G<<0!/;d G}@$t~I 0I|v${UdE^ -6%PK6)ykr߾l3F2| %H [+  k[y h\x9>ϹM0p7F&KhC5){i,.H8̓F|( C8ǐa +c}d[{*HضFڬC)SGa#܊ě-NzM|`:}dZl,rNm%nTyYś;"#"S{FvOuÂo)8xa?QZnzr3Rd0!Đ N&\L): /8Qa2!\ݕh)UPLdy4Horigbo e-AtrZ_ t+6pZPu/?bb97[D oU4 aX,Kd&v9KlS4@Ab*Wt@1Uqۂa?VD }ŧ]8J]G@jts$ܓ#0|ch_/oޕq=Z0SG|''IhVy"L2ޛ:#CiI5΁)pwgz#u)Õ%?M,u< _ATtH1FD:- -9. /́>){OV^ )~:T@8T+QtS> 38]t|ŇX,Out~i5;a/Up3NZMľjj6!7ϯ0D Ph{դ665~sf<[|+Qޙ M%oKug`)tZAqqwM.B@ 3Ap\N*;gdc~)i): piAQG6v&عo\ȱ7tjb-yHyHȞ(ZHZK2C6”T}[#} Eze#@vhƯ {wcsJ2MK9yjn\rB*m?kYd="vaFx)aO!<- ? /rk[0B͖Uq5*բkG*85vi C%n%ʀZIl֞~cyf hA)eUޑX34.J/%]"G+E[+o6NKLmoQ#~6ɏ+l ?L~TnOt L)?5^mT&J(T =ZlB'PK&y)_GuDҒ/̥_d;e՚Zp5#^C^1-=1g0 Χh? ƬP?p7C]A9sR&4$0!t0MܳoMWb=gzCوȷ@uA“4 p9ʵomF0>/G췿HLv 08ʅdd_zEɊ#)X8eOۘ7E -R>}6C!߄)toRaU6\#sYͿ8iT\m.jSJ^4%ɮ 9]A pŝxti\|i<`/4U?\/}-'@!y$eE hGF#[}A{5wc;DZ@.uk@lsS /59o.VU_[s'Xi_'o J*JpcY*s,(4A^ kw0 f09XUWQ13\Ե:w޽alLGh9 *71L+B E;- ΋7"u1>s@@KD%MB d]z|[ }b7ӱh;wʌw {hCkq?״_/z};͓:oL 6[m@OhXסR J2\Ҭ$QL_u Xr<#]L h"icikB4]S~Xa-'@(IWZ5yd[=zq"/s.9蜄XP6Y?%+,RrO+<] p-U{%YwbrACr*L"I+4\x~ $?>ɗҾ6k.WڠWMLw?) .$OJ'ԩq;FHLH[\簨*_MK aѽDP4s_ZU'3a@` z* ]e^{T` V2Gp"d%ɠTaP+ʨ]Ak:d(q UdV?#c"fvvv29gfťYL&h7  pAD0(8\bb1e/;o"I$vg2^)%$JjRf7\=$w/fl+a8ɼ_>܉~y'LE"TkD;FOmQRne.M)>H aoSFC]ވPEEn3 ն/?Q ^:<#j6R: ѮpH6[?~SI@B@L "@Q>^!]#+S"r+{\_\OKWݹ+7Tehǜܸy D5zʏB=6]E!83~p2Oodn/3F]r(ߏ i:8t.¨EZ =gis*w6$ؒ&&%BAPT8A|({y 5+%,+]Fy?KOU@;jELuIf_˧ r'Λ:9AR;@ %v8(U&[')wB =89}CrqYnJc3lb)*cdq,S7+= j&h6z5 (?մԀ;Yj! =y)J-VHj>%f H2q^ޖB3 LNOS.i&b]54qd9g-Y@[Mt&ih0\{4.em<os>3|FjDboTq=YҥNzM]/uXc)$uނ$s~VqgG /8qg7EB/q/)ӝp}+ґq}gvcnbfv`z}#gF, f2#g? +ZW6BJ>o~||#v]H9QwCyR7mBE@1h /%:^44 ?%zi yvBEgtwvQ ʸFl  ,!m}A|-Gv) w=CzR#;!HDvEo&Am⊶G7a,~ïi|]é []:MOs ϐx^++,@; uCGyG:@~VyZv4Ҟ7_ˁ~͍+׍+t3J[V. X4|7zMkeRaCgʸx37!#qFVO€TG1;b 2 x8R͆/EE{MvE "DM޼^zٽ1H_76O|PP6y7hbEQ9XlNU_b59QrgE;3c߭Hèus^>~i6 -9F5D$6]+V@lڅJ/X.)Wޝpen.8({c$ؤJ\Ul6q܊A_']6e_ m8)WRq>Rl8_pObf4G<H %;ZF?|xy#CG՛]qXB4JϮ="BzCb%si[7 [[B(%+qXR+nq< |ׄ 4|^ܟ:PGf0~ Vd'djQ@:@&hh&FHֹVꛨ:GMіLL40@#qd&ț S+p '*&UE䣁$;:vMnUGiWυbQZ]YP5$[+S iHXֲWBsܾpSj>5s*e\*j~`9rgn}Idt&729h³pT49谱 ScUt|uQP]H8{~ag'<:7El7r.@%C8'~\8#s ˴Ft#ҵ<Dž84dlv)OuMP 9 *s1@xLik#U ڈ.|?ul&R 5{XkToqUغ`r0DB+TPTQEUMBHTc@;r//D$րuRhreg?4(c(6W3Z9WGA`HuRuqn"$ϊeϞ0x1AU>ިryļfɞ³1ȡT>|2ÁZn"&ݗGͿ4ʯt'k/WΜwϒX-fmB-ӅvRRWOzUNb| xO.ȱk3c$Pژ|qC*lg2&u9\P ΅ !/H᫾/Cj2YjQYpjc;īk^65%SAs"/4ʖwNO%_SUM{̥+d\sW }g1ubeIwbFbɳg'o>Y܇lxIiR+< n'_ &]j~}kփS̛۔Y3&^;v6 pe]i;\ϱ}!$S |fNUfIY 劮#o޹O$)?ݤc^dÖlXh n"| #tO+k5' =lya9.L0~mB##uPG`z!ho.)Z?@st"~̞CDqӮQ,U$/;30߼Ž޿"/iuh4 k]QRdchH 7-jƉ8BTgHuxM`HRCiԜzbq(DQ40m- a)yxZHI e_=RQ7L.pm* @]hjB'^M*߁S׎=eb상eܿ#8ң-a=aC(K" *X5-'Eu?O&uxPO5e; @̛pAAz}w&Ow1r H{e-r7 ˾pxEl=5{]K3ܸXTڅ\|t/9_Z|wLmt!,3CFR/cJ6ԙX-r1a:4"н*{tzi_B@&pcغ qz(2 nT"NEvM@IP;F{<#u)Mf|@(bt,Z6_hn&X &Ud7K3tXz79㿦ficÉsjG2 a{'Yx GכGݿU%s{ yMd5wUJ-`Op'd]"S1jllb ߩbC!-k8޽8vw]Z3PY$kQY13!_Vmii̍]WÓg3xӿ[d&3@W$N/ѓCCTd<B| h7hf?'avڪ-rNE{)h0۪'/kr.|g& [4 smH#!s.݈ʇuOW8@aJn/H7GV4WYJ9Y0 n$zDNafo}<1v_]$\^^QnӏC3{3c ¢q^ǁQfATwdޝCroD:PQc(!}nɉfr|%F-~!HGB=3jWr̞F,bFS;dCk=qh jRI{O4Ez@yubm֋#J `)\uf̿AU!P37XRz]pp2jLdMElW~tYbF,}sK"QhiBvENO%cKzR*k? &Pi`1#Klߖ/aĕy,[?l!Rq^^*%YfV@Q؎=]m 9u0$2)t''Mrog9}|V::ʩf$m2;:j TR1UrDSpV]xj@5A8{oA ,˾whc&ABu\נ"=9ÁZoFFmb_(ܞdFla TWwWyvP|O?%Wiu<_bK)7رIevf状U1ġ5]rPPݙjR˩Եyf +ωP5x+t?Mf=v 6ֶ8bq#:m.i'cG:z7vm߆PߐqΉalf 62{/igH a3wwA{TzXhJTGM/SR$δꮛ %AXy5IFDq;{*eZugɞ2Rs"ѺV9f *80_)qHũNAI7m0L6 }5+OT;ذ#p%W7ACj92 }srMd5/UZcJU"zSQ,& _= [gו7B`FF ϳAñd 30 dO03,g?c:f)=zY2`W4nF C¦u_/ )^ȽBTKϷKs&3-Bma:I;495A47V&e+w*]=25N){$Gr ["Kᩫ,CсuEH/L"CMr@F황~Rr1$EQp`_K{rSHj*_ؾ? "8UR̮10:#]^`Wǖ6N00Be SݙK.e[U$| lGcUN,_rX -P*e~#ܖk$UV%)D.u&\$+0.ܒhX-: d ^ R!/xSIN$?.t4z#Gp ҧ}=/,,k5|hΕ)ܭڧZu*rT0tsgH%~,ŅrO^TvgILRv#p}_'0j=Gb,{i&zm w|.G: AFлJͭ&NritaDyE{K;HpU8s[ޝݪ; eiؿ$„ !(Rt/"os3i:&M$8 i"-pvNBAg*\wKOPc`guyɠ9հV|a]f-3.2n}۬!qqYh;>U[l}p5z@/$dw7ᱤF"R0uyxߌCnG2K5u^Q|`LT".WpubWwVwcL׎8en3{WG!R*v$/H'30Hbpl9Zkz q.x佋#_uxk$qu][fy 2J +k q3gvc^2!d'„](d:wHwu$ۆ0ޠq.-4N2 >%4¨?=XKʠYg,?íRa\sgQk_R"Cs 8XBlY|#Tn`_$(8{z ފUJa$LsAHC*.3x| ?GZL"C2m-^_wkl} j#cCn~ |;\>AkH xdU~XqIV.e#pFx`5yS4\h> ,Ӏ疔IO4SddmOOmgr G$E`.'L\BNN?D@bKA!zK4f^wԹE]t3=>Ԭh^x"I~yNWLm#rӪ4@6""{G|QMxv钝("wyL6A1<&ݏٺD)dܞ!jziJPpBG=)ۣ"d2wrOEy7Ҋ7Yr:)S=c.mhtakc};rؚJ@UFEH=Bxo='cJRpt!~:,_f3g7 s ZRt4fjp{Rқ6eLļ3$rhSnjC|۞m <(˒ڌ3QKk2dZپa>ꔻl': 9R9K}΁XC!sJw@rLGn~]s&î=vuI&|KTKxK F> dN k5aɋZ#y 1ӊ؃yI-ebTo6 R^A<Ӗ6͡Z1g7ϸ\+I̓ iQd=Oe|2+!~)0h={BUE؆ׅAa޼&,vA,Zu8 |0<ǐR :mvN|$6INrƂl"FUЧ&ueZ$vIMxun$f 'Hwܙђf'C=:+Kr%_/uxT䵺)@?@N, (n+*% m"g@du0M50c\j/-2gR'A߃v?b}=A!AWEb 1W >UB!Xy̥:4 :W!R>o]QfQqmj4}/;Ɍa &NRHta30&Ctv=|2bnaMk\;} 5R'pSrOOAAqѪ3v O=柨 z=)(CbU@e u#|I\q4k ]c*Z̴]o6Pdx"\]&'5b*\?f!Ea*-kWu:5,EsE"1{"a,w/kʫ+-@-ٕWky3[AY<8ǫ3;Hpp1j$.Y,-d%/X"jLe7iM<-3 ݁V8xo\8=VtwvER9e| [ y~:GvyS<ٺ^MĘTZ^25r6V5x8f2&S8eN9HB^:Sx0fIQ(4:ZbY8,lK2]QoͪE %+d8ZU. +sp0dzirmUT"`A?z² -𞊕֬ą]-}d眣A3A{},˝b|kl6LoաcKETԄIʟ>/a& DžCnȴ)70ĕaAfb+XuŪ*t%WGBi(@x|lɉVyZM:ΉD,A;CDpZrb60eI0g'.L뮥`tbB#(KMzs~!2B]u>Uh M&Ǻ_D]6Xq [ii-rArm8J#Ƃi1@ sW7^z9_gIG`=9b+k{Q?G&Ϸ^6æ 9HxKhOn kfn"єħ,)TI-@x5AUuBJGFmp+N'FO-tQ*ZG5X:-bHdpFf??3i!V .1AS)BT^2 iXӠ Hؚ~a![O&ȵҁ:լMSyQhB}'[i>&CX };y;aO;6Q5_Ɣ>M^>b[\a1D3V: lr\Wa^O!6W6/)n/eRuֿ_mxe~SׇR.B?m[SѕW5iRVu7 "czC͈e,O}6hH32UmMg[p0m@9 UZ_nWg\uN\cQYbq*Ukc,K~~.><- ܀M5F#egreMh]Ohdvhm #dE?uR"/by)c8aBZ_^ܨ:]CmAS8A NDg%+Rܪ 5Kpjmt!F<`3 Ls+ ӥ\NMPfT%v8cosD!ᔲ<@([ia6_V'Fiu[NT>9bPٸ96reD4o1]tf'J1{? ܉X$iC`tVkq6fK$8 l!=/Q~?$ybK#O9̛.0\oPQYHMIsed$)5sAgOO\[$fZ̑>_Y6-|^ЍCգ7; "(T P'xgZQCyGAAFG z]"!µVIC#@az<:,y@#3H7Yg[_̒:Yg!crèCn'g RݵbC"j,G;y*e,A n 4]=WUVx:e޵A3yV|yn bHա1!Ƽ|MumbH >RŹaZ^sRA93Fח1TOȿ:rX~)G%1nޮ u{7M;An׊ H wv^VIc?f$N6n +IRq-9Sz sn\Zà M}7MO#{;@:g cE;9H[Ȯ^̲BKA =q *7cMḓ 0 42eYmdk+"Hp}aUkҊ&Em;߾(Gƶ53`z )nn~L T޷rRtǁe %C@ٕR}Hi%ouD9p3"l75ɇ^. }޵Ԃsl=1{ٴ([d"h{P-mXVqeSOy-*B=qBtE]pvO$8-qJ:iu^۷J兩=A[ӴlH<926țsh͉r3[aؿߎK;sAaX{ږ3?@[컀 EmxB![=y^/+ ʫ0b Јt9)3@iu4oA~/vWUog-穛 fA}z[[ ;IKD "ȇ3% iQ)](.Lj~_F<0n""⺪K-Ԁ_5IJ,"ֈ1S&Ng|>EPJe'o&R'TczyX+1ȫcHDOJȊC=ւtOEs. Rջnq@r ЦѼz28XJOϽl*BZEVI+mȏcXu1 ]5)^Td*~ Jb7:#ZUQG6wLa|.e8L4wE[yVgE˒u;ӝS-ag5Zq_~s#}5D ǗrBO3I]ؽBC\fK*cb$S eU湘JӎǗ!W6 (irOvHl{jЪWj6=^.}?'gq#89q= #;:e4Ef:(uDm㻳T>R a)Qy&$i8 뱦x $!*O H߀=]ՆQwX? m7 ]5Iqp4F*LT1~I #Dfm΁#۾4D l Ƀ/|&rmX_I}f8&bpfP3$3ֺz>d :]?]P=I*lzkq̠|m3ΉO_zvW nZM xk:35zjzªE}5/'pF7!z=#"Dοwlx/>k I嚳}s4%|ww#mvřTڇ8ޘ}|sMy&4Cb"y/  ʏ0-C˘|_b88-CAqF|_NEgI( !JG( k|W' f&UrCZϣь@LǩJ#`Zz2g] -dzImMbD/'\83MsE%5`m*s/=L8Ot_` Qjޢm5تu<#L鄝  ([w!tOE3 yOc<)aѐ#fr%i)~ŀ>m׿~՛l )Bga=Z'l!/XKX'mo Z׵N/E?F߇ˑgBq@vYrl' [oGTru.ZheK?R=M`WR7M+ܬ_Ϗi5ःMk+0fMD7}Pf;r(!SilS9Y"FSXP!+,X&v=vvl* hMIƘcDQN%,0J )&{^{4( B?LOCiZUQH/`LwT3^n_Q$s7Uz\)Nz'v~ńRp!QE׮|e܎@q"Zvf/3oh9i H6ۊ@_|GQb{[H%CJOZx1̧K@HB-Q$'w9r8]%EC]ci}Ek̓t5urKzU[ZmkFN6!hfxO^HlTrѩ[&.ENQrzBnfUF|=jN 9-33FOA3'vpu]<+ظtY+2A PՖ 5̂[H4윶>~L;ʯ%@4׭Z\.cFSs4X+a$:&k2Nj`ލdjіW#44}͸%hrRg8Zim!p&; rʆF6,/g1s_){} [M.M7Ĥ;LGOeJb6 (րe@U˗ZdRFߺ8Y#bv"` DBJP$9(/'`opH~ڢ"i/$Ѯu6(e7f tj."sOqKn>Q5(eV<ۋ] g4/HE0F 5@$HS(~pGU޺uSh!mK;hDs.T,Ń6޼ ؼ:Mbujw3ݣ'(A>KdJ̎&z|(AdK>6Do>}.P(|cQ_ҕ5i=(CmO`0ԠyL?PWWn-7zbq]V z.bkRLmv4g>Fu}[&. Wy Fsʒ5S;k[17z0 |B4۔ϗϩ 9 ny2ԗMu'(iLBPs4w^rvw41NzBTF&ʗkt<_$6xN-oCk)iv28㮄=c'_\`{KUrkq:ΠĠM6iRߖP\*H"\Zݒ#ivO<0q0!9@Ң&c=ſ.Qڛ lH8ሜ'M;٦jwets *E`nsKJ]{O\Q4؎3ak&yըGAN*1nfW"?2 GPӞT!Y4Q7þ!4UM98D]Crx,եO>&zFV6E@}EE;7.J$B^]],vR\J(򄢓< ZٴYc9x0 t7ðV9{?o_|i1] 1cdUBk|3I\E RzCrD7,6.n_V zjFF Podx:*BZOL!z^b&uAz"m t}z[S4h9e# 1Q'%_%݂,s@-)A8UUc LujdzxZ+ 21.ScHmO6pR^]N_c+"|U[&:~@l Am0zE975.CHٓ/F%B\]qe;e icc**hBbIw~b=֎MC xH'Ո*dm5'615hLujf5$+hj^w6,ƏPXXwi\El^?j:dFڞ^Wdsw ^[+#NxK ˫ BB9}V(p;%=J2Ч:/irgS}-fAhվs9 .jR/Zv;Sř'"X,`x#T<BB޸pX(ӄoH&eK$#~q@f .|ij$/VhE4pU˂\29 TMapgWHzDU"mQDHIO@mzk[H!I}Oν,)SDZ\ѕ,Z5L-Bqy}*z IIJOYwAٸuMڴ U=x0d)27ѳ#cGBW呮Fq~|ly~NDLzp%ĘA .*JϥTqB]3T$';z li5PD\xi&h+ b݀jŻEp9>}E2/iWq^ 5Fe8HF$ ;3+#N9s=ȻOE]QIs_.=f[!22>fwoUdJ3?btfjV}lR,B]xTɘC;{'O;+kUǥxʌnEy]KMNrqض|wVfSGmY]<ڰ T7~?!( x8Xzw%2F~Tc>=4C7!`3Zy>ɼ:W_‡4C rpy橩:2LYgr5pS#$)c%>ِ̂O s}<+) :<8b]ǎn.ɲQ0f︼ >+ig.eRI"pS8Y2HxhXKHx^܊%ߌr_f։U-ʤYvkzytokɄ#@Y-PH~}:;DAKyW8TL̎*.N"UjWAH)wMU>YO(R0ᢲ`פ]RCsu3KB9 Y8EД1_e`ͨJO.}A"MYtvf[S#os'4g;sٰ}Kyj}/q l GׯOhIo&Bl2'8B?_~eM(/:_]=#??l~1b V[`EdkʅJȝTW(pQG%FUN:oG +h5EgYMT/3&ص sm( vu~ܦIN;Ly)^]@w{v~N pF, a -|_y~ܲ\6B@edX\A]dOS33çV ;(u7W$@Y4 Y軩J+zTtl% <ߴwp/ռ7f"_p#}{(x3h)br5.Zަ39l e ʴS;lʄdwC0\םZ^oM -G1 0,Q#Nh" )u*0Ew>Mư d$MMɧn2|bT:KaB#3{ '7[b{p6ZΠkuTJisn7xi=&3%|=J.{;C! Α8D<P*3…ú}HM9Nj8Z4J{v9Q[- jӠ}dnMӵޏۈ+B?41Z/vZ"my y*8י&* Rk`v+ Dѹ2F sQש}/ БQYt('m3p Gq@[5N?+{ol 5W'1EML{ k̬+1+4 :q,$M!%֏88Iv5h%rQfN1ok7bJ,%LhΤQwtΞ@ICvn} v9oA9up!5qۍf\발?yŝ9Z* `{=>X#bny79xJ܎qIЛ&>B_CU&@M x ߄q፽2mR]["QNz@>dzk%(`7M9( f,%w2XYp]E8dk¢@4I6Î_"U4t4bfѫ \4 ax?oUم(]ZU׬K+5$Fl%]ʼ'qk2+<*MqHwSFm&Z<&)O1#Г 3FLRW:Ϲ x Z*NF-D*Lɬ:_N  `v AAhh=(#!z x搭WwlwoODzvg^[hQ<ЙJdC̑jÎ'I ls?R;׶*NWH" بAs%dOcM4!g}E[C!3P߿9ZOҚ!Lq2"~D2&hz(@aq|j_69#8t}|uz  x --?ML$n£{ecb^O L:Y 6ioPPE`>,D띇>B[]+H}1 ooO AxF+!YMEhU;gr{_̽|:,d*=}X9~[jvv v)@ $I Rێ|'ϩ/F1_韯;# ]+@C&)'0h |s`jd |זHL.I~Njdg/6)2 EwtAUIЃ~J$$ WH;F%3POV+UeRqׂIq n-͗ @ɤ<], 90ٴGYA4}7TۦLѲ=\2*i8g>S,C%k?TFͬ'%-!O)}j%{@uaB$4[ jG0tC|}ςKL0N©fE`V)q^pw:.;7̫fvwpw&=EҾn{W,)2$GO>F-KT1u:Z#Y.=0Y!Kz Ƌh{2 Ͳ5ul'$I.EW^;:~T 0D@dm` ǵIIs5e>B8䂀UMn/NlC!B]\e#^a:m %|:h\CS6$mb/Ǚ')/DR6eQnNlڦ"TߴR7^wzJ56@b2tC#BnX]VYb `Qv觪>gH8=Z "}O+F{S!{ ~#}&ݲ6ĢBNjQlcn*^;1$%C7q_+a>\{&{lJ#Rc,$"O@ 7R l%^r49Yt1|7S^( 'qaE6!ϟ9%Ac_\qwf % ϴF3$:3Gi >tEs%=*'9]]mDzᱥPӟ 5vs5t E:޹$D?2nythF˙=ZsP(svE`x9b 뮞O =cŰ8!wfI%쥼"~ ږ!G yf60EgU5t+d=T` ~-DcK_(9 S&F&EFG{/y/ͩ)Wx$\;юg ĀPSg;_-J ZH!3Iz0͓c(!1!'7!.V%aLrK&^1A8|)>"cB*/-zW#[φm}ح–O7UE J`TgHwbF4/y\Yǚ(DSU%L/}5"ƨl{h~kH 5*\Q6AU)7d(tlK0{9?)d K\3.FšLLdfuij6eUH8BQFnt=q/ 9 e2L#QQvl SZαO{ɴkD3/ V #4~h.*'? MVKDHJlq^XBg2fh@&Hsc "5>6 l.X/qXUv)$V.=*J\aVŦΗ2M6 ,33m`Qِ2?!QeϤ!ܿS뾩w׿3V {RB=2Gb2Xޢ^4$ IUz_k)tD F.pvD|ܹ(K,5RuoLcv\?=y@咡G26tZH<ˆ>ć=.XvD q5 hx&FZS-Cp{+蘏1oCC>}6R!e{2W- \T%#zu Ԡ~h[ KP~6E,[4Uc'v b5URb;=|NGB B Vl[k.Flx֜E"kAqN|ɗOolX>l(,#:+H W:zQ(?PB Yd]10翋O;qLJ<yij: |=Q6$QR+w j&{e߲2 }a11YtFȩ&\eABR!#7ZZ5 uh|Ɏ,ŏo+A 9Xc !_MdT ,?ӼC`Y"5o.F-G3YW WY+3SIK̴WѷM=AS`AOo) PGKC6[_2.6aC,Vr=? A7$gnvjkSu!],N2KAxd.J==9Dt花qB>Yp)(Xc%]9Ư/{M/ht-r_Vy*Im;Ydl5Y"uAFv͇:A_>I`DPD6rb4 uDsR%t9Vk#ƙa+9mQ{ ~js8ZLvh ,~|Y3.bI. zr}|KN @m}Vב3´%o7܍/z} {O;ПYj =LFd),(kPƇ~&Gez1jd78{;\u1 ~y4( 8?cɤ6戒׭B%s *u_!mUY݃r`?Kxp:-^^@47Eehnh8p=Z*Wy2DdSR >_؂Pk!rcA7g/\a1=~}Vi X=[ms uq7vr_CVɖyξ=@(`DtάKA[ojYWn/"%P5 $\ Wl;Q(^Ć4DwOvr4&[va5X- c UP2M_-u,7%<_G㙸]:p@)^^-~2 Iڐy9&xN0%Cĭn &5@ Wj_ o"Uo 2l<]v⑄fՙ:&G^Y;|)xrT~xQ .+AtBO^77 Laq>NwdMB) S L7GE4y~gesg'S;юq@h)WtP]!ĐV*vqaXg.@7nJzX$Qb4mC{_C{7P, {p?fYٖm'<oD HrNqFENMrod+i7 .D)'TW6E}J{߫թOZ=&mq7p~=T]]| بQۤmFV S5S%crML=#P͝ǖn6jjv'xu OV BX(aϮ0똱2 K\ɱ=u@5d Xo$"t7ҎJ|!6y#\97iA$\Lj$B!hx:=f)ϭZ]3j4 ̻*#s_4 n]VL[@(CLzPQX_nW`eA_;+5QrOL ܀q,au qIByz@ǨK Mjiu& U%̙T ef:֘%|,I+wYigRȲQn=cieۚ ?h !Dm>_F^2s<2Qt_1oSMʺީPae$!QNZGC}KuOaP't j k3]XpŦ?uZ[!!kIIudpv;}jxHVcx&8v)26-B?'+Xy8E +HJ d'PER%*S;v6l֒~-شԯ((Ytִ}_jqĒQ_hU ?Ip7oɛVTR$5!"0 )0VHTNWuØW&@0E>6/1Ô91 oWﻙX-~(AY(ĦOsGxeW \  ,u ج XwބCΣ*5(>a>"8 9WQeZE@@B/,cg8J&.v\d5z6ȕ%ӮOv871,,$ H^uʩx~k n? &iYi>M>|ktQGyH__1 yAבGAuz9g(5XI?UJ Sf&TPeIQvkd&A Kib@d5#9LAv^jQIyk7 b}yec_#jt7R=]>5'nOfP bAg`Ϥ?07NY;ֆ"RO)1.?17?cI 1ܼM{Îñg|9vC?" R,*(4 hpi+u5D_=7l0"}7 Y[7k: R>piCr;aIU`1>%7bV?_R24U~~R܀I6L'r}^x{`@e ofp+hߟm!>+4@3s&l"|s9b5ʩϵnJN GiG?H>$GfHO$GU* ]Lɐjo@!qbŌC>(+wo&@8ieqwW+Rr%P4hw˸l)xiRt]H!vPp^>p̛e"{JB"h={1ѴKg훍ZGC[W(s4W OgV vn/K7rӷ\o"+x حȇ_XM6xTCaSij0Ȅ\OMi8ZVRWi,og{q{F9 jâM4d`*c#g6"h~v%RmOF3|^5fBAuf\Q$lEe"Z1a (5V 4sz [('?2ϸSRAa1_^y&88i<F5jv:; e.¡)zh.s ٖMF_cmٜ lu8~ɵS0OM%FWHonGֽJ۽K)a_*_!ܢzwbNQiZ:f};p` 1` hZ}G^b7vA_.|Z6 s%ͪbw+MZ6ȸC a( _ܼV"}Pw?4{Xq+zZ#|wW"DAo| |KmWJ(sP+[[8:`.'0(߳@طBpJ_`z,lO›GN[':ZuUPo~JA=BԒ?s V/Qx %;4=;;\ A`IO@ 眯7Oy8s`Ӌ3,SivF/‰,\H:@ShLIh^F18oW?ic `&ѝC#gIlY&, ,IMl!C0Ovin |}cgWڮJ0sCb0/hxer"% L1sh0UN.v2J%y9zPD6}!@| 9u:\sY%6ģ%R8ɴM)pB i~y kjn?ǖUJ"K]#hx YĪ;Q\BF^F'T#6v26‘样 fa:O"._HLDA&Vؔ.z&45"⎐OGG3FNݓV!H r3;9䏂W41 ؁'$%>A\qGHlTKV8+&/U<@.JcWr@IW/*1sUz:x,8.e6BYC >%ΔvV֪r={~ 2@įjO nsطNƣn ˆ9V=\ʈ ?9&N8+s3:(Fv"ǟ`Xc~Cj/v0>6͌#".8%KsC6 P"B +\Ճl,\{sk&Xop^"?%`IZ;vEՋ%QPSkGR.~=&lpOPćwiS*nVE¿ra}<$Þ^H~fJ՜#@:Qyΰ/Ҭ߱ԟole53-ӲKhlDx_Qo/ڿVY0A]+ƩSo;H]p=+f񸅛Fihg h ]vc1+r7wE KSvob)]Hf:2ӿ$x{'=6w3 -8y%b CHS9ND3]6xBx@c")7/P[2bck9R ;89%p*?!`6e-}"V)g[Qop>Q*CRS_ d&8.;\'$p՜9@W7O`MD";]ԂR-ZB}GEYqDƹ|Hf_@_hB ܧrq4Yi~)>|7(tlCM8 W'-RG+3TqAIaP.?Ce4M/+gIX 0?(ysUcΌQNtsMXQSWG1XD0<_V24(YfaRtIJXnZF+ 4j R@6b׏K.XG`az]Crwdfy'v|_"M}Z.L9j)Ӵk.FT>z_?1`/F/400[8,[A'ץCPP >oiH+uA-H%國N #JgHNZMУܜyPicNɇ&o碘@ĉj.{.QaT?B $09Ot%iUjM ,\W.u%3^}rd(rSCCz.k/˺*M(Jx^QF/`mKb?¥JY# k vuB١lHG3S['y lJW'" 1LhǯI eQj MFˋx9]< nc? -@Dfqv~,<%!Yl`1c qqHqK>Pո%|o' yGƖAN`DBR?rZfX!Xo摳w(i%\S'|C @VKJ/px(~k>~@X!Ka) R/YDKbMi/ Źj ^շuB@Og56.q [@e5@4ׅxP"|즣`?ؒ(W;񍪬e Xtbyrx=`ynz/,FL `vNXINH9َ\8Ǩycߠϳ5ž[%d6p^t7U1`f:pV$7Ȥ#pG;JUm0Q z2kх 3DMrBrUlIHJ<~,8ZgІ}<%!i|_2IR;8PvNSj0:ޓ_\Z*NxR/aNGO4rfI.eo28)Ar9 X5^ePFm0$L誋]^NDv`r7N- KjAeFiIQb`WI'C肎HVr2a' c5<7"Ϩ?B}?uʊkw.*厳gLn]u`1"t'5VRDi:q]]M=wѦoSa(Hqһ"u^h#"l\%2M긛b,LujYb` X:Z%:pJO:!>F}6kraWageUniƋa'֭uzw627ƨ :ƻK]mXuHNۈw&^%%tk]R6"¤$*.>MD^ ('Je=zpj x,w94N+g!s8Fgbwz4F?gP9 em:e,!OsQ( I~ ꪶH]($<~ׂ  Upe@mP3KW ɰrQ'{ k&8 RlN_F&-,!ͅʫTR&ei,gm{d,AG1ʺEOK`-mݷ(u2FA2r %{jYs~ŽDL}5n[Xs謲`CBWZ=C~cƐ:Rbf"avS(ƒU8FǾ-*\Ƞ`!= >M[e0#u֪߷>͖9E\r*wMMs(V hFF" q1e]BkdIeu1hMmf?ʹ2_tugRH?rq(>\:p[DzAZ(5߀^I,RvP-t}uzڶ{ 3FsAW+/2>`5Vb0;9?$g֏j2H9mAR ɗKvxHh)o2_UEg '/S2N/ennDOρŅV9lL^ӢpLƇr /ݯB~ r7+k;E21nMh6ԴTnI󾣅<cMc͆䟔߸dcWcm ch9a >NGIl>v;yENvu]܆2+\"* +[Op//D1;wsv-Q$J 2y?f閨[w9~hoiާrvKĭ 6k 1ɇg֐(jen{k$3z8-~~' n^^Nh; rxv'lDruq0znT,A#_|X^??}aoGdqRGtDrY z\"c7zCn gxJzp,>=ԖvX$Vn_LM*^uRi*tBCJ+v(R4M`te&& )5ޙkљ'[Cp{GRpglJV#ϙ҃r{~Cc{gHVyrZQzzˌg7UǯTZ8$ 8m'3"Gm5_g'Ҥ= 1+uce(l)C1q*~g;PR^_ijh"cU4p>w^C"3}靟o]:KP,K@O<79޾n&R%#,S^fn>K].\@hyK 0%^ޚ' )h JE X`߯P܊F¤Tـ@Q?3A]D' n.ŹAֿ}fI y*N$*U%So|yA?Q"A`։]aтp?+n$?3mbe"b"Ljh;VvHLz0i{Yh)f!M9Ϳ02ɾvFJi.`wyjzñHPH+ mǡ. 3P5\AF(NI Mt,M`ʼnm\=L[tT$LBͰ3J}>"*ǛidBcclqEWi,i=f&-}K0`sxrP=m1@) as "c$YXo}.7A~HtT nZd5rS(c=*y0?E#/hqtЌ9Vㅌ{aw(% _NS/7!tT1?X9Z×~Ce'^z֒(Y$T̩h˥i)M^jU] 9Np5ע`$.#ٴ#bCmd^EYWdxf bwW[5شPl^L<&-9^)- ߓESԕƸr!Epn &f&GuFPmt"Qݏm_4|D%"Np?EzON=|{eo?#l1$qy[{,ʆIaqVI Ks[WHuzϰSxaE"HEc3JĘ.K'W"JdZ:e qy^H7}RC3oSlǰ~98Mz'aKS'_fF"*S\qkhs"L~BY&]3>mz]eu: uJ7>`i]Ta7Q½~T@RC<7>Z33@XְH*W+?#ی KI "ab}RpbTndd.>c^v eݛ'%Mu;~z=Ta}1+6#o"$3#k'ua؂#X]D~Ĝ!cK- 7c?[YW>(QSŅNRo`%OãyO!"G- b$1Va~xxft;;0݋'_nHJߩκћ020$YntշYWnpwyY]ԟݶ΍mFQrvWB"$ޝP?2;XBߙ@PVZ*$eiHwc(K)x\e D᠁T X0FۼHpv#4Hnufwj{93jXޔkQ r(Bi:ҵ"iGoNY݆(zk>,x2P\Ht|Ol#SP4./H4:Y#dʌX" G`ѴӺ|=k?,𜛦JGXH/C _ BKYӤ fחZtg|K'2].RFjV#b6%$ U3)5vIڮםע::yK-')hLێ+q~<PLpa(fDEPE&aI%9PÓ5`yMd|Mkg8e;JBV,EY؞ʉ2k=זL;%>x TiEj%HU΃." \Y=kj?W̠9T XxMxu3y(snÞfSlyd~_mbǭ2/+ԛPOVM;AM KnFN6R?8C xAz[IJzs>[3 qOnqN/jmT"oWe%rRȵdRD[$%']o Bu5@Wӹr c7Y-3-s\6Anj}%hK#6>`[~ڷtgxaIUWӰ=بդ%y=&{7 9h 9,uqgFT}ݒf:KS@f|padnľ Zaݙo}:ܛD[dn![X6Ѯ3[Tb&0Zs̖ͧߧ,P+qIעw:4AXjpTimS-28!c+2{C*X3'"9A i^ b4T7BC}:룚3h8_eUl%b>f?G@t1ui>58e |i2tVO5C21l$WwՖs0uVغ?_"Ub/ h+[{,ni`[L& H{!bp[Eifzֲ |;մD@E+*]UڲL(m(~_dҜG7C]@aS`NRCrQ)d&XaO-anLuZxm窦b*CT/|'JCvB)%as,qFe5Pg,\ 85uJ97"qiХc<BA'W8NQaVuR32PTڭ8و!cmQIamUX:ܞyZs6F_rl˙KLHm.G!^B+zN-YGmfuO/UHH; HA$ÓaШ[Y"2*UԱ#+痣ʿ`|kLuguZ%_UيK;U mnT-DL:ZsP3_&wWg}r#;ZpnGS,NfKe) /t :<(oM?>/;]'!A-7Hɼ /Y-%LS5};ޕ :X$.Qas8vBS|[J3u[B;1Wk"hN@PeLfXrc3P6qH%%Z!.SlwSģn.$xM1p&T-qxj9M #; .<ڛX8~8Gi BjE{Cݧ-#vgX‹в[\MlŁ!ew>8{c]o c[>lzxK?SV?u:xڜ@JOZ]l zGJeГOjWV7>G+Xj^LrLZv_Qyc4miþ6tP>:JNY3 /n\/6ө YXfؤzz7 qCaJb&gkz^OJ`a\Y`(jt>BgALD5JCW-Tb R}1Y; JmD>54V5sb5D[-`+%K.B2.8Ȣ4^*^Τ#CnGg즄{1iN'gXql**4U Qh'J Я޴Ξ3Ɍ+8|7;#z[+k&R58zTI@W9FwY!E-F^UN?Ywl!]c:#-ƿATn{:J=|@s"\*[9V&rK[_7^X1 }CG;/-T*i؛iUcD oڍxB٭jǸjNf %lщzcpb| kFީ-i!6#Xd=g^{NsÚimsNy-LD{1pfX ZZcNLsO1Vھ!@~ϓ}lyڴ7E2]2{ȸ6 oJȟ;Ar!M^+<muc|i>dGDfq <تYLjyi`hro2Pز6K6[=;fk1 b}UmW~_<")q\zϥ@8U@Qړo˪'0hd%X#B*idJ)c&ǣut XC ,x}sH$d;>|!j%{" X{-@AKX8,Z.Ƕ\z)A=.kY 64P\NtcS[<ƍr>`l<݆YMXzN׻0Z} xkDH1w<<0Q~Fc5tvqvj:=1ҍ[+s*.!b[7{esep3Ĺ ]Q $(:[3X/.N~5%$PS%%:j`T_k0 IJiNR~T5gJZlq{ _mo{5Wk\ h닋amwIP *.Gql\|f`T+>JYˈAkh_i'Q6š <%it}j4 D)!h0gUۍ -">"~Rϓӱ\g8јL!}J]4Ij5>PQ`">L7q`D5OVULƉ ^+vLC,wl&Z),cһ]xj#Rʿț*ƅ+Ym}f7**;DPGᐶL.|Xqb¶MCv9ivf⟸hMcMLUtgX]x⩶yo[he~Pz_Qnիo:34D`cւbh;Gs6Ԍ=I܃$U o$]A˜)je),yh#h3345U~u֣`QHsʦQ+л2GmPWiI2_:z߸EXm6šOhDN4""0OAĴڌN(mE\""YTp%,JEJ#S-JJ;HgۼaY +C(=/VpJI--`ged(WSԃvNb (`ܥ)+' V]=I5K%Bc 3’) ds搧|?HVQP&2V)YW1]tO4P)[2YퟌͅD)݉w"Q6u͋U+ƢC|PH"Vq1R'0PX9U>%Ef!MhckA#6|pSBAt ZSr=[ݪ^f@,{r5 J D6ʘF(ۛgP{j8ZMaO2@J!bɘe".toq9Ro ":עK0͎tc_ʍ Fn2f+d/jPқ'λ C; nb7u!x[l7WAfAߓڣ_x! NڊHR]{[i;hgZ`Q &3UP +5?c1R=)yV&±*l"fMT`rKNtgmKy9`G.{(x:yC8kzް,nFY>VK-83Er$W '-?p՘ ,Ӈ>8j')>0A3hA#J6"ycrLqZh$54iS%:Sr8*G^7ׄ;-ٍdXBۇ)) hr, ?ۉIk V]%<@d>B'cT6ڲGnld- (SFyPFY%Pae$u게usZPF+_2^JL|DŽr .R}us^rk)7̭7n~4?Dsk5f/edNG9_m(ۄȓ^Og+yT.}f!FGՠ5& Jd8LV @G}3ER>RUx'd_N^ ųRdlk% B]ׁ$q8XkBIAF|ُ ЩgL_ C2j:&\Vzp1!spt5 NW'xXX}n*&GBv T"$':dR^HyA3pio58?K;_J2ۏ=+1qE[߸ HN0dnP4#m V~ #)]Yuɠ.X1%{b%"7yn {1v|g(a-E 4#_ Mu֓N|Ԫs\O0R oRCW p 0[KN}&n4q8m= g;O>%Oʵn&e>b5T1'L.JD[bӯ/Eܩf5gS'Pc(=5^bIaRᵻY%Ys.|T:㏘8 z4y//7YZE.D88j;)r+jC'@MPB:>mb䂤1c dUn{~l͋qR +g!kh+J16\K# Ce+M+As'xF}ܠ >b%oƴ7t[>EK+= {.zh݉kqW7|Tl0X~t'\quĹ]<#wBFĒ*Y'Nk*Dh+rދ9mL.mcHChjG/kqL/Լ5xH9"nhjB$V nyӊ4w[ąGc}=mxC8>}* J]$ ,d.{6id|8.zRE/d􍬫3@/l;A 4Io3˒aά50;:x5s1LGvZ ו~,{REj3ALObM!qIcNjF;/U^IU aE}iK\vݾ`:ܵ^TuF0=I ~0'n` ). wfe5TGx~2F^5J /#uw6ez秝Sw6EBl- {/mYX0@4 +32M;im eMA 1r"S=u҄BOZn@ eFRmGT<`Y0!h qaRa6v &iJ^w1X/d*S0Hdr |2(&bᄁ蓓P]fUr!ʋ緓C倞NǺ@'v&,p#1ɲ2OcҍcX2/8Of>n )̔}lk,trƖ#k)lvjƭgxD'w n^O ВhTyZBAB0֦䲢" dP  H3_6j>6.Mj;d"]H}V$ /j1{<c% gD@|hͼPf4 ×f!D8w.mxi$mu٧F:D~4㰸?rU,X A-eɠ» Uj|LZr^KkYE"!іRFh[\lJF}N':WBS6)M?Hm5Oy[-̆wx{ÁL T?,80RP+|ˎb1jdžAUD9$/X c8@&G aAq!EHz]8RPJR KqY{%c$L6݃6v;}, bTGzidM(=ksck+a寪+G"Howە'j#\EAl /@1gcݨ*z%R 8PwM'A`Xl5I)O2'cs1!F-O`"UO\ ^Yd*w0G{ej˨p;Yn,˖r>0.ԴMЏ5MQz=ja0۲4@]^?SR@{ l- D~v6 #R{EgY j;zɶ9QQ34v\E qcmp߹a7S7KJ/R?i]+Q`NX${R\gz%9PݯH6D,T N @ Ŷ/A)CݪH Oph!'A7b)||,~<$Pct=Aw `'56T2 2}XM= ,ZNnAof#f@ CiX%=#iЍ$Y 4? 6gª5b=y y]t$GS%O[|v8V)n qhrS|U.՗Jf5=3HIK%w\g#wŬeeTs]6 YP}>r׻Ψ-`xZD"(y^idHJ?{ Ӓ-QSdWQiMhv$7&R}Si=K%b)m{s‘)zKxO٧6z*pgfPV_Ulqҹ8R--؞?*._eD:O\1G2`Z˒9y҉w j51Uנ-8 Gv-&J-͘9 dN ?Km`3~c7FSb"klapsd%ǵs#pʸ.d^E|ǤD%]Cf.)y³:O`ԃ6[jeU4 frs J+UD=P&KBoeq5bpЩ 1;֎*(x>2f;$ Y7 R^'Iov슯7g&z覎1[E@Buy)5&>=b+@>ol,__);O:-M4>3 uK+֯/V{ })k[o+vd;ŀZ?}OafUO -|lP*M "{SYsaq -*E9\䇧/1pLgmc\ۡبcB+t{: W#l'˰ql<ֹP/8i S[k^Y8/B7Ќpō2+BG ]&-b?f,d{:[a&yw?6Ndlѩ́$K3rуX+Ir3c>=toFH^1F0tWV#ΫWKEV al5XÆ7Oa\ݳ^Nk\]TsPjF4zҎ 5Qn.59oj^R?RzUS- ]qSy*"pCN{`x. l-PMoICoַfBowlA^mg3Ц0nWbgH:~Wl9w2+ܯn^J31NLSC =xWaN&-#q:Lvx\pBvO-ܷ 8  +aYq< qز,TLY fZ*k7JoBNb=B?W$> ō(dzy p*>k[e Vq q, H*e2xYdD;M~,PА}r8HNsC(|g qRcuSˉkčnN:vt-ZF_p.B'>4%1z ԃE J MʿH1oY'rF=^$WfnvQH^Fk@ dO#a:mp9I}0:ٱ:fvWkV|mgkWvS! .;K{^ܾacC-*glIa!1e/и.Vw:JB#bx-j wԡfZ@hTg&&9iq1ThH .юؑ%?$ܙly%S|4Kv7kqWPy& 2=D_CKz$HB''XHeэn^X6T7EV֌u}oP%CQĜ]Bu7H]f9c SiK$Zjzһb25G[6;ewݑpUPӅ=)S\EmJw 7h};7cs,;?=xtuV#?`.'S"n\k,K~UHI0:v1bQ\/O_+E]a:$t? @u51deƝI֐pFYdܚb#aE@ 'w”i'Dpl_7 a~ ўl3/I'"Y3 0Yr>f{lñr ֪b(9۸^" (G?{*uwQM+a?4%{(TN,P&s e0S@i*Q69j[=fǺg5,)ʋ4}6jM)Rˇ>LiC\8@B:Rzd5֍ƔJ͵Mnf68*!څ|vԔkv}C{Mm!X~`8W_G,h>ՊU,"2:juF>aQ 6;# ءbL>,˛t!2h_|J|YXTq,c//żƄP#1śHfVzg(ddb6?.z^BB#iqF3RҮDzaKPь{F ~RL{n(``H:/9qP%ӫ˥ 6H8[S匨iY_i>t.Tx`CZ-$RC`ɾ7,+<lj HMٴ.b6hυٕ3,}N!UD'rgЃCK? t3G!veV  1UUHGfeX6hmryWADj`3Bt¡G+'.clۋyX ZG\8eƝy`J53}Gvp>vTkXW!00~f3NDU\k<EZ16ējnINyvxGN#NFF`o &,(1cQE-KSx;I  h̭tT6XIJ>lyn:#N2'.8xH&Y 4`iA^\ 4}gۺ@AiȄNMpMeS0{{2W`"x N1`]=YKǨ`WH [~EL?I)G>+ĪtG臭L% Yjd qF0„:c?Ӭi'W a6;cd}6."w1l:st*iDTlUðXxO3Ur7+ۢQ`/AM7!Ԕ2|t%Qm|1D,`]zب'h2QKNUK*m?=QNĐ!B0-Ȉu(z(}P)fA8QWLݥ*& $_eq8fQrM['IfFFPrp|i#o= gJV[ċ3n%ۘ2dnL4T 0J a?6 Ms67uC$ZHY'W!pf1-FV*UMFb t/1Vm: g?:dK#oM[r'5t%OkWt6`R<:D:j8sJR0a0l.0E)Rs6H)!;]g7i&Xc*o to.Ξƒf˃IGܤHy=*9hvw$"Ki:(چ>&^㝜B"ŸܑSsI%:83)BdU.KhJPFPSp'+8tY2^+H˖{-ѕA>2׊c @_Mٽ`BMQȾ6ޣU)Ɨf+dff]e.9A:G#4.LPmN~=$ߚP.,-Zm>R)SY3r{TU훢iu ra7-&Lo'!WHjfO J RO@QtMYEDVHo5DY+d&Qݍ@ym[Si =a<ɥO]$xg,$]yERy⾘vQ=[1Q+ǎ`Wk؀Bov+-|58r(ډM˻gf+"FR7I]b,j;{ӆ ۷[Tw!oS/כJD(kz~Ίxs}2ǃ[Ѝ3 Mq-fx39Пh䎓@a_ C5S#c\u$rEsg`E.|K9+_Kg7[}ST}2l:NY+6 b"UOPv%|W8k)*}Ac)J-ql9h:}&Q Bg+f\ _wOYy$.X<ȕ;Qކ>Jxiw@,z'mPc 1j%mD]7G9F(i煒u,7.;zI*f[=n'Ujգ ľ=39Њ7a~&"P-]`3="FIgG8 T>&͍ˢʖء2OxӴg_ _N'n{a x~ƩFj+c%R;֤AQwp6Ws@M@3 }J.-n9D\ fa50Nt{Xa:8"XM(S.t0b#G)vሉ7FRCC^Tee_uf?u岶bUwAje-ޅ2& HS)ԈRHM6ti6*@a4\#f6|:ɇiHbP;al =kAju9 )BaZ\Ruqg8 p HYbpگ.G9:G6΄j פo2ٛ#JMeGO9r=i{oz05T2gc{'W?)Ոm\ŚT vZ4mo( 7RӣEnme]XHMKq*VAi.~a4eX8,y[:laZ3mȁ%Ӧf=Y/cӈKDw\a?V`5$rV򥢠]<("Iцηp0 6=8RE0FS[="~gƙT?3dHQ:5utNZ|gw|s;HA+ ׭;P,QC1w[`_9%@qߟk./Ht~ζnJ\e , sBdZ/={M!P,S>))1@Ol)*@ KX̘ #[EۣKxihr4y۫aNJo= xf @#wIp=(Id/ }Rb%rޠRw%b"Zu֮%s7Pk~9IoA\>[c W tq8خRAmKYRZ"=,oJ" 54&t/:U;_Td+ ʧIr\>ʀ!N7C{f+i/<>jc ]FcHu֑;Jf")))h}I,׫*b!߼T4~6T Z R`ө,50cW\șe/[ 17tK([M"mֈ2YU5' ȠOYu!׺`,HD-h }&Vu$t{z&=.t $s".?FFcb#Ǐb^ŧE8=Q$qu N[ģ9%$fDK@X蝈,;v/6Yz%vsɌ\\џvr ? 8'-lmq!q2. 鰋>AdqPA[?kuZOOsq#k_!<:.?Ng54آji/\nڠŰ*`nO9f+ga"(T=?LJm_\JKFЩ.h200J ‰.wpz{+?}ti3 Wz&ǻ\1fpm#7:6s|n!?&ɮ>h.6x^>mjn˾~:@=InLłma5W#h;h]jB sMQÞ <8ᇨ8 ږ,|xfwTLdH+<wG!spty`dNL^S͘Hc˼oEgp̍a|mZ%xfq8) ,f Hv2]B9]I8y:ڬ[J]AMp7 s ŧVXߍH\kDvѐi;)Vpoe:[o]uUFv鼳' 济Gn@'BBӇLk!cKFʶ'LaV9-z*F6wm=5eZNsTFLy㮵)U bלMozQ^Q!L$ VJ98C޶e7la77kBe9ԩdUyP[sYU1RJ.x$^+“#_͟ 9C S[ǡ")Coi_'qƹ&?ƕYf0}:gآOʬ 3=gvݷX32,gj4yG1K]:?"4E$edPY#e^v{=P4CH!%d ,׷F^|UŤ1' QN;eҨRT9PW K`JN ¥h +;Tv jMq$OI; ^ҙ g2JXeq}O+' HmNQ>fn+ (! DoG347xXzM 8T?j.cC|ݬ̿}<_{M.|njgT _r~լ\Tȭ-FN2U.W$dw[w1\xvPE7((!CSrvpk[5Lb{!#%u|}q.'m=ˑsP"4 k[r3 ^lHr# HP2+hYVd Sl rܧ#/Zl9}ƶ[㧵'cJ{A9{;6Vʴb;L뫘10h>F#GٝyM% Y: H>qQ(Q;Q8ˠɍo|Rb`&+Vԕ|I~%d D\C[8Z!cߥ(pλ;*!lCGb+ ()I*7X|{u^up9 kVtN/|w ~TLsܘwa SxKh\0 Yq.7<*mެoζo vKu}K1UdiC{)m"V D rVP3<Ҡ( sof` Zr[Œ ? jB0 G)zEC{fwA=²du$\@w*?;PɺEi϶nq]ij&w/ݭ9&_{iwA!Y@/U ?{V8vڠ$%'%K݁OfT$4c]q{18S)8P%ob`ng-ԙr+pW_O [-J+tX.{&16AN|mm Cb HG-Xk dԢ"~<*]<'~qSe2ml/.W~djm0;g"5OYo^YN у|>ɎT6T>ll Iu>%uV{Kؓeڜ{]SL 4}[e,,QBYs`; HU8u݋,"0K# [Œ.+93SoAgk ω#J}EJ⁨$ԓhh>rzsFUc^QAミs(Q[77⭼-aTZ?` 4K35UNo0YbDl!X/SCT>%`8e@k+^/aZ:ʀ^h2/65*dywoG`ZX7nQ;?sЮyi֩!2l _e:oNZ`aL|'$U% k^6ԷN5tx% eå/gh+ t|UɄ:#{]jkHv笱4r._x(@~GGq*ИzB>DHtLfX -q2$ľ1Qw+!'CDtAM?B2R}TpTfgZxP~4\ƫ v5p}g2utir}9 ŢY-û,oXz{GYQ/Vt .*zYam1JH0 99{tֻvlG{cg'8Ca.)sJK `dt@Q'3{+Z%j%xx8| 񲕚O#| ޑ2Mɕ[x^j Zo=OzXw:`;i1mDz>[TQ8m e@#Sl\8hOi M ajf^ 4{ܐKW`sǀʖ bi.M {(U2&֕k7t]'h'<b KV*HB=+18%];Z/8Zxm:= 7q_iC[h7G W/XI'",DZ1oC'M2|itvnDP4]1:͕ Fr-V;]viP'ULK&>pMBW^8#/[#~(VDBzx> j/g,.WtF~2՝CU]+ ;jr`C[K{k^  €{wRz'CK%nJ;}{ -K(=P>m|9\20Ŝh nf$)Sx)Jl)Kis6ڄ")gxwLG+i, HƲkB\Zm0/B߄u5ScF___7L}0F1+Z)3,o>v]~ZEn'YK+w Q8V홪ms6>?6 8_@$ZChn4׳j`ECtѧC4TrO7'C]}C?UlL< ?Eĥ\Qe*C ܽExN[VXvʌDE,nL; /ֹ3#|w3^Jߠc/(Y |1jun2߰$u-c HR(FJj3x"2oA>W:؎g+r˲t..͇rvp 2*4;R[; g p/&QcxWYԿlI=݉B)CR $ӨĄ$K7@!(6uBBMwGIt=[zt=1T;F#cx`GhCqe@eABntZJ YI qwk;\Udt*_Uk:Ӂ 劰/"3f!ri#FsAv2ji[W$D$єֺ#%x}vXQZ5X5q% NJju0tzboębLѦsaʐLn29j5>--\l:KCS &>l*"ih_D\CBhE.IMHxF gSuPJՕykE\gR 3p^cwfFR 5 6dr7y!E7Uΰ}*aS^P}Yf{Pi9ր,rԪ.c)%[QMڋvBnݴxS6Rr>Y㖵P$Ita[{ׅ6:grۗ?td o+*rºH%8"P"_T˫1t'z"$4n@N}8g+EH>੕&sU`PQ%fAfs+ʠMաYol6˅J#z|Ķ^3D=_1!\<֥"!^ً&e  N)#~ ռzQx  L@G,eAזofEGcgYe.o\vqxP1+%,h "Ayܔm Pŀj;QYe~z./&j9T{/v(SV;| ]>đq]ҜvꧢP̘͡+ "!,F<_DTZ /# ')1#+ޫrt9"ſmLeqUy\x1)Oڵ'h_Z_wN6w{͝PRCɟԷVFY ju '. D [PL\|8!r%j/ɰ9 vgkk ~ef+@ju45CK4~bGZ/E41+)MkkgTHڧڤn`ER0_~W7C`l2/f4 IAs`؃=4< W$.q*YOv̐QmIBω0x::8tM\ˆҕf#wt$|>j+ Wi 82\/9< 1pRiu2u>sI-szM(ۓM18V ℉H8P$ 8$F =JoJ&}ooj$S{vuH}쇔Aɷ+,Ϟqμ0ݗ{ x ?U`NA|_Meb\O$e6ASwjjYp9UF8J>LieB~ RDFD 'Dm!n[j _&WJeܑ}muvZӁ0 [uHSa Db|wI9&"br[GX^J]ƶ*y.y괰h%YޜӱimERNn'8JSpL X0.#i\/$GqM39_l[Dwo[mJ-J`dۗ9G#0I]:& oms<۸)=z L\7k5;ND˃iۓq ]5 ?F4y] ݊oް鷁Vcca b#XG\!*|Th8t+uT %ͧc[&T ب8E [ݛX I[i2>3KwZjyC8 ok[WtO/A淫p;ʧsy/`Z !ZRlg~q;jDQh=64Urj_\Bb5 PN< [|V&9 }E]iab3ACK&noP۹HD%uݩ9j9}:Nf#_1aBdH ޹~6r8wƝXFQx|JlJA Q9[I- ֬ I߂9}i$.]@R>wDCF/eQG]Fz n1_"eP7>],4 kCßt).47z܀mciB|eX1*>kȀ7}^.qUm2XCrJW^(xq,?B%s03@q7 ~Tٓiiiz/tDL^sؕd|켕_P0hz߫1?}Ǘp9hJo0v-mo*$;F^R[|[~hRٻ`ϫU6 X8尺nnfč| =4`(ƽG<[[Y'ǑSrjw"҄R&ҔN|uʃ%lY@ ^<H=UXnjIQ#y&o HҨܰ&|KbKJqV?L?#8%œWaBPI,w>:H}O Ӣ/q~4 #{H-R W%.ycVez2?CgCtD7T,k"3c- =Ɨ-b F,٧tfAskO*.u~$c Itq y AKn^8F^ cq$A |IBs4O]H}m# O'WS|7m&"[" <3p^eLg M$^Raq@uR!q{:v#1,ռz(v#Ϋ_3y}` $dm_J MW7ClSIGH՟^sLh7]< 5(.rU_}s1+yO s_s(_q O*)q5kGIh8mi .+GMGgES!ϪqlWzB\vcC_}u>Cx>$;ybMb]Bd/#']>znލq0?7s! ,~8r#n&:MD\RUi=zx?$w+#*/Hӄ'8* U> .teafFc|NW@JtS+Jm)̽=zՐmRP^#" 6<8FŘkk_ V>Kh A!X˯j:i/4LhVuOnҬpo ܏3ITjK^0i%q Oɫt[t`i>H/6H?"@Y:Ww<[#i$I4vDlY6iݦMtZ) V)W[^y9qMj0$OtD wTh[wET?sSnr}BrMAswN:N/Qwv#Xl!RonK}Oh02M_Xwo>* zLO,DTuOʋT+^{H)Gaf>Ha+HkO[m8I]d!TW _ڨy =]4L0Fv%$}>1rN潿gM]RO&T5/n`샖?uo:o)Yme+pDK4Q0A)wjZv8r*,LF\/~}@n%d 9 >Y`ƲX+-r4SrJnG}t~V&.)^3#+Lh;Wc͹:/7=A8 3j4[ cG mޜr4vͪ 6yQo2|-*}oeEpɹ 3[{OUJd9ܤW3HJ5W"*QA DI1?Kт-SHG8jg ߵ eC[z]TߺHe42H ٰiuzV-Zv,ive\18"xLtM47˻%.\X!T2f%NK4eW¿*p7ݥl{ym?0RRp0>m5 3`>'kx{ beZ1{e@:3bQ<9*12Ofy#..sqkpQa= W^l3. ̙2 ! Z{Z2 Ix-_MLn-(Th4wW&R?2o%ZM4D{}o:˼nuFֲyiHkuK>u]MG}nܽa)Ҹ7 ,H6BJ|=@&J[Rhp[T5m MJU)\(XDഛpU<J.ULp]a؃8VC5M21a(}1[MO=P;b寰w`DT`0-MQ洮1%k|tP\ 8sJpik!5ùSw?TJ;}MTđtŷ+d\̟["׬2 :g-iu {? n]|=Ƈ160=p;e ?mJֱΡdo<}~/h< ("ـV  -K!/)Rlt>:mk@1ͤicqf,*  }% `%(Eޚq";ʐg[&V\FX-r+؁\6rll71缛ߡ?8F  %kaY}#w8Ki"T}Qb{Wdvڮ^-e.r0;%WjSa-Y~Z?\%do!h#ܜ1 މbsipX8ƈfD&)4+%NLm RAR&wڛp|lYePmMA'ieYFksNTݱSc[hLb@fS˾&‹,ᦗگDT6%SI3tETC.4MGLҧ%n$WLQ ce3aJX #涑HaK&xRQX|& @7Lkh*lSgE[[Z~Kׅ;i$=9H}Z*.lIvy.gдw"(,Ye2 $yȝA̋)zʞJHmu*{uFo0fSI&K#SV%lC mRBn"9}#IAHvt! ӊS=xE,_"/(4ݑB!eM#;w^FzdZ"2yĽL`{/WX2'JϾ򀈀: ]rc#{l!>] jY_TON%;GJtH%{ARQυFҐEeA9v,iѮ\4nbNL|13?wti(DŽ[jW\sJ5QeATF~@ I 6 %҂o%!Ԑ{~`*?mBýU5E$ qy ku4vA MUOkE#~~>E^UƂ`҉tuz5%V`WD!!P-7S*B{VA^C~6E4sjLU=]?qy.~!hhCU9Ij z%K4A c~^=G` D/cBqO>8= TJe %|(w=BpW!~=灟0jwl/5K8?m*fI} &+rG wtSӱ(BMpkA,FL0]lz%ǼM,М_1Dt IuJQ@j!SL^tIW*n!%9n?Qp!>#2,<.fl`4s 0i ԐؤgQ RY&7'cN,([=|& SH9.D_\Bypq<ʾQOzkԠ;\I,hƠoR`S[Jo-kѢav{V8}%k ?Bc̯^Cv,p ty!;#bO{>zđ;A^EBu~75Xp kq536ldDX7*~Mfaưe <7Ų襡xHOb^~]@BE8F  Q FZb9ͻ1msشЃw3KDZ/x€,J AXS:ך;u@x62K!=("OVNƍSw}_Fa62P\PJBj6골E=ӦxMN&A ؜H_JWPMB}dKAz-U; i8f"1⺘#~e|sn%vi3)՘ÒU{z+PbCvۃ_4ɉ"t ю!дVMƎNNw{w,ZK. 5K^ e䋥ov"?yU%̤틥EL=)fvEUtG@X*a~qZ0|$h (Ɣ '/ &9+ n칋pyQx)Su 1Gk0@tSCoS}?Bqvf|q^!"{R0 ;"9gƸDLj] T׶umhb)ql@i[BRn#:<\,2 \hX+S^J;q#/(T>zQs:TsY˅ )|W1fزZ ֿ}f`ͺ/8 CyrM @n( (,TUYf ;i0nz UȌْ. (%aI1d֋ / (ټm q7n"QL-u;QZ w"6\As#)^D{'{]:%A.9c3ODUg6-½*)r%h۲J.g 506el¿Y\Z"*gq8]_cY_=Ǵ8ع\U_Ϳ:]A: ԋq;c~WKWTgB;V=Agq6b{j&En02خ2$>ƘUO7!ֲkMۋDSA햸2KP7U[9 [9e' 5ʪ74Ub'م:4VV sw&:Xn#hћb8I-YkۥaLQfl\նhڻ)RE!jH/*+j#LO`'߿I\a꒩]L{ FcThF2 c{$O([#&ǿ!cff]ϞUGŖaUq b8gz.쏏f_ MPhtS(j ޹ϠGtkp~"'Vj;ɑe Qϑļ"eeA( HslY(t5`wn10?oe3rY] H$'izd/VҤWJ,N``7b՘##u zh"wglC1´s E^X][-hċn*,|}  uge!'t5FަczAlGed*k%ZZHjΣgkb~.0.;m<\߯sGfPpX9Q[I`%nk(}( p ^|k &*tz,J)Cs4uƐ%CBk}^C5YjF| r .K̹ ~g3\p $05~kGZy=i8ޔ;"4Idh/5UЕIçv)IE&z{7h H8nVK'㐞 *|J98ώ$(h-n8ߚMԁso$vBb"MGG[\& %-]ȀI#lNFxt DfƟQ'v-f+:@0Rx@F3O8-lbG@O!"/2 ڱ@G!#"?fry,!6† rWX%qwum.P1+qYV򄫝{ˣx~E{)Pr*}ȈϤϮ|XζHkcQ2YzS$;M}|u-\ Ɣr )JT.r͠s%ױl3Ӿ?\O -k/]ǨFK٦&7}q{l%oq >hܿSN6eK ʱ|..I~◃$ 9Nx-BPHwF+ޯ;6-FXhӴe:z U#_0 ^8 ůnr|`ZX !Ou[> UM\,s>Ts IU,5b 25XUKQO\HDN _wc: m{4eٱ7sŬoKĭa_#̤@C\&pNz nUoImxC,At 9ӻn|oJ:LFY*GL]U[i>U|_ĊXE- ?;N@U'"^mЖ [ b% T!tDp l| "6bBPR\kbo^ +B!jhtЖ\|j>vWł%FU,بR;=D#Ir )E]ǭ, V'(,baWԝpkYƼoiY{.l*< @&MRD-wd> TGv"S2槝+ GoGQ3 x#L/nj4bw) KJFχL0{謄ьi/@&Jo!RӺZ99^I+6{CvwbtFj{r;MQu?k[x4uܙfđhJ| ?{]q3h2]Sy6f5*')$* GoSRD{ %Qd=JdIii +j6HI:|Òt7F&OB]T=ᨸ3vD\I=$7RrLSq?!dWfA~:6Gs{t@ǮR*q{D<⻓9k)C.J1Q:_c$$h˱6⦿ʭhQN%n RpwBb$nd"K wN7 4 p̨vT?.p+RSŴ Aٛu@t< +M\Fh'nDDna'>^I\u.^̧V@brVlQvCC Uԅ>c~ܓŰ/G_O,Tp0tDJ6J Rex6} q.5tVp3]Y"IEE@8:еBWRRTёET]{rD!˛g/{?I;%a\ %}$\w$R 1O  I8yoGA\-B]mr{oI6RƝt뻜*}[*HKQYㅺez \bX }m~w 59}υH.+hwy!J^RlȎ?c}~3"nM\փC߳Ϭ&.A4j{J6yq+:2IW7 RQ`d"F2ʲnh-bKdsZZ8[[ ,,Jsă1FC`/R?# WD KMn9)F|=cWls*' &?>7FUi4Մfě$ޟ*\R8Ϙ >AJƖZ$=&$En؉Q4}\*ѰyHk/~ZǒVMIxPcpU]AC_t `E>4uu٪܈z"zdWlGSGx<Ws^.2C0QWw#MjC"GW%X^;ըE u{5Hx9Sx^XtFVK8wSXH:-؛{.HUbY3^e9J[6ҹ\y5p!-J}CEJ$[֌*MlRBu|sMug j|ԐS"A~7PGGyXkP<~<3n{ʛsqjS!sVto$m62u?3*񲜣,%}j+dTi 6&W,RhR:&GI0()d>qeΤ0Ietׄ1 胯pB1oɼIтmKW䶪R"4 Ԝb ]5Huкas/~l~z ,[vktVT(^8#*Ң/数! ble_dMN `[<Hn>] ":L=ZYkjPXT lx|6;#++..EXBlq^)zZ;AUgOEC@սYj9OM+d7_$f&7cNUNacBXJRBBzt/gggoě*2U"U=ޅS5n41q.D֬k^4]jyp:[ZFI0KQCn5fmtR'u2b〭xh8-Ӽ\,0Ueu;e8tH̆{ӁevXw$᱈"OO EV?f-䀠9RJnv .Iطb~ q"%~xEnoܿI }- Q*}iqD\C?VuYQDi?:"lr>?\OR׌rHfb;llL&13sx^G lرM_N&uېVؔ5+$q&_H%K\q$A NMj2.=lT>>6ԮI7{=L:CJXkSᒆTw^',X4xKտ hk gᦂމ,^κi,j-o0fʵB(FOHb9'6Y2}uAoL+rA.PYvwbf?[`1zϮ'g(A3B@!(Ė/څȑsW9Y4Aa.-O;Dڊe:'<{`7.u~ibIUs'AOG4WF;[52k!}_%>16ne svYLd tNFV2 $¼B҅;x`hi;f5JavOkϒ0Ò257VͮJ7ty.~q$qVd}"%JSYX%ǿ\[[j*xtq7P=r/Lxxk*cz6.^LT\[iV; Fd F0-w3yc?X@'ڿ>LT+ҍNaW 3M_-_)@?'԰䠞!,b2+KM9#9gCKeyT4[9izdc8*;YVC`;Y-pîF!8y(3&Z6(},:4 ν]xF\/ѩfc3Oy렭VdHK]HKxJPnȾ%*kn1!sbxg侸y`RӸHRZo )5ەRfQD =G-Oq@G[_":¹c TbpWp+m;-BȟTocYS@[fcrE.ZJkQ`:G CRG'2Fl_>#qH\0Ì![>4.rt) [XEajrGaLݯ(`wA =[;tZ!}z%(&|H|^ @yJ0^|!28L$] ;`7QoW I!vtwQ1Ia?d c> -ٝX("J7+k1 tki5خt\j#pR}~ tUhm'Zy܈;5h~֜1PNi"Z *yY06%=DKqMR&]Xk2̈́'GMOyTvE~fKc~ =9/I)%tc\0!n7u*Z9JaYH8uki$%3_#IW.>4ZcVwC(2#(r 5 ]Nnq = '&0Oˈj4 EmX8_/v7#2)T2CtOtmH7]cA`$EļPy(-6 ޛhZ[Ԁ0 t=U멥R{ʘ[ ׭nO["!/?>hmt;%`v}/քs?1hHh(@h(Os&]bd~l(B*Yj2 lx0iTƻ=fޅHTY lm\:ev_Qo_RS\k"0~"p>qll+ν; {)(Ħvʫ$y>5{cYH\j5VuG[r&*KsR4aSh%q&^'iá>iO_ $iP!!vE8(F;wA&1dJ]\1f̯vmJP6.mxͶ&Z7cSxNxVKem<+yw#*'X-Nk5Fjx C;B3T/""hcmWe'rq7ӕ*gx'M&_y L]ط?ϐg]qu] …]+^1Ǔm?O?\oxk{lMR p($O-*yNa2:dd#گb-o(]Z`E e/>"s|\U*{ù#kC܀:%I,ȁwG3yK&w>- #R${:Oˎd2u\ (#{ )L:b˙-sI5m9 EO+H:S_ΆҶ4٩hYȪPMtNݮaWA)S5,x" y|[ Z쟓"8_yg _q^r[&zJ ʙŅUy׊&+a]w2 P&cZpQ|NB82<64Xsjv2ּܕ.p%>^ ~m;+ѝmL%ڔ8k[|15UN9'sf< |Y`9q)9SU9pL+܆vdӶzԯdS[/;.A-D .6dH@3 w۔ CGf,&í@BOʣ6?S|ğVN$?jˆtlP~5M:-G]?BڙRӬ"U^XJA&[[S?0 ReHڄ99oMEZH;ԅ` JĨ"4O _sME%[) r,z(`stdhDq4(WLR˧Q獬# o_V: LyaxBD3@$18b0'y,~RAc0]ᬧ~鸆֯iQo k+ĩWb~\Sb檀58J) wc8ʞ\>.e~ (r rOg6Do1ΗW1Хi:F2`7]VV ɃO3i|L7ӗ<\oYl/LIVo*b kΘ>S$+rEDON$^;Oz`@ՆLJ q#FnTrZ TxhZ]!%^4r b֎i t)G;`DcШ(YHqH"WtE% 5c*r?XIzԫI``&>R_/Gl7~c.\s yFWVjL14'dBmOYi+aYBEu,MꔦG&P5 #wum&_QP ,6WBݢפ L6pz:,rHmSWhb 3S s\?b{#Vj'q%_])8&q_+Ʃ"H]{M:H>`) ݥ7"ȜGBqD'2O\4π:+!jO֌&ɜRU@̣TlO:!7 i2,27( `5tK>`}Ψҷ TP1tPKw-k4{ ۼ:N ~m'Mܩu}/VmۿSԪYRsB(1HneGI5V{ql"bsw$,\1OO6=|o!mR|9|@P P QNf=_8xBxR\ˠDpGz=ݧKW"$G+{}5e=mY:vnpFǐ{Tqlq@(SySS-(} Al~FN9K_Y6#Z sx-k7ɵc`s1S:Jz`CQTCE*0P q:/` $UteCqV@~*zvCa#ٟ> 7G@q Ѐ 2hZ{l=dJ S;rQMo4~&=s݄E?sAPm 7!2t_(|H.jO=HvaZ$V0H5`7>D&a{$> 8g[4J`@RL8Q!([eɋ3uuN>@C9חd1 @a{Ny8 $i%xLIEC)#ה PLbtg4=$& ʆ_2XHhZ*2O;>Ӝi`L:ID~B/MX9.bˇrd. p^Qc'v|$Al6>RL؎!C'Ljw[ G}MsXr~,LmJ?E2'Gp0b '8WW 穔{K^d&99Kh[yJT&¯(gKPK˵WrO:z@gP]P$5rb2f7hd#!_Ǭ`HʭW:s{!*(6Z[8kE<`jĄ &6 GCaEY EJQ֖ rs{zCwF'{#ܕVB7D z };*Ds]FFf&KdP8iFgV1)L0JFmUϩLD9@ԧZ%)Uy(BhόVݪQ:hFL?u]UbzmR:y'bĜ'B6=Am*ɟP~VgxE;\I#q3 [|\s8UceE4 p0ot"1 m-q>0i4Ծ1ف\??ybm}^J.N8&L/ ևG/M"2A 0QYGzҗ;A]I7+^zVjUd7[xm&?p?@?чc6<a rD:xx-\+(cB #T&(&~q6%&yld)W{sbPВ@puv ?s?ņWYc1]@&A7=iԯ| 1M7_ :Ww25پ :T L>akl0L{"Q r"GČԋ@z(j\D?=u .I-y0 ڍ*HfJ@3cԸqRiȗKG8Z+pۈlthũI6~,3{b:*>kRV!G(mfFVm$T<{U@!dx$T h_.mzBL;M`˩*&pa\V'El'r&ښW~&v>gJpO^. UỈW!(l15\h"R?8Jdd#JO#mb9SJl%CHv] P)ѹi? <6۽75FEX3O|F(KEf-26\ӏ#,r,9!8Ր)~3Mn0%NM81LMt^cUsu cI>oGJwomX8Ɔw/``E0A4&|y}k`rAʛz,ʳ f ϰbImrC3S R:2mϢi>R?W[4,y-钪3̖oI\C;Rdkqo骧νc!L]EEFxsDOѣ=J+yT YBe%ĥ8,Uɪe{*o/ԭz}pWӹX R"y%.3?LdT–]x%]^&n Ÿmt'PUw .QFB%a-JPr!M/uQ2) 1OT]B?M+-`"Zmha;#Dly(r(]tS+#KE2oFu:x # >5F VV:[ګm0Pѣzr^*D5⚠S[דUЎb+y%eu\"sY8hndEf%C LG)[|~fAcSIVk>\¯KIjc4cH`c97{oè7r7x"x!EL~ح&u%)V)oRd1%'N$tup1b*k(o!gƄ(Z1*hQ"|5?ٌq7kh׀!xSߙ=8cRaBt(U@Bdv WspCiuRNE: QgXZ,j8"J6ct0 l=ȣWm܊<@Zve\- }} h~vSp؀FUg ~XD)=]Zw @ z-v/ѣ]4–([046I- 'KLJxm*7a2Yd@Kzܵ={Ұ#TȦUDߞdOgF7ckֶ٨o 5NzC{%un1 To%ؒyP}`RMV O%S|dۥT1ewT~dWfdⶌßyQ0+kC*%j3@-R}]j?=qj1qߚWwTSc&ʝ+vބv5Ծ'[W~.n4&T|tF'xh9qA$r9 0$Az`;E/>PɭoJ=4>²A}R({Gm =1'8Yp}/ 3{{hU2BL#,(,pcõZ?!ݴ;ZDt ɐ \0~bRRRIC7W*!8Gk!)A[n$<>M#&7-B D,b,Y_톧fo}*geũh9Pqd$a/ Vӌ #kDz"?^=`N lhlT$K/b/J//&IB# Eb m5h=lLѼޞ!WG.5/=t`=Gd8$zDj5R lScn ϯvY]cs/=H&l4>i}plc%yZg̏T*:eO؍K˘bC\lbn;}&Z€Z .$.w@'Tw!+tkJXJM jE3 Sdv^z;+m:'.r ~nW&7t$Xjq*?뺴9׵34K}fA9=3E[rc;66:ʒ+@d:ը"d0;wXm GO)T(-g'm7n}$N;E]1cr%yZxQ(OD?UgTYҩo_wiF~- 8CToMWD(Ma ofcZh:v*0TWqI1>YQ ax'3YcC20?;}OH*T2t6 Iǐ \y&:q}38G.~\j1ZښyF)`=p(z5^$$h%E|Nuf9nm{`4l|1&cXTrHTePià-'MA}T"ڭRZORsjG{ܤEWKG\;Iz3e@+su7%ΐcOymY($#fS )y|>x#iOҝ9;2 d|rã9 ;F߭*Dpǯ=|X$JNϋo4ƪ+j{ 2BP9>nk[wV=k 2KH{ |wF)ioD~j*dƚ;N 学8 $#P)?fBglieR[A+flX*M`Dd Jp,^ӀY8 8 >oJ\J';'z+&:pœiqV|/8lGjg&\XyJt[L_D1䙘;RðH`o3<^t6ogxTi4# ԝT ir^}R덠A\U0†oXi Q对K eK'pLEHOQCCGBR"_P6\v復Ε|WCb(Oa S۵Ѷ-`[* /85:׳fvjwW4O!H^o\4^]+FK.ILJ1 "aTr* %g7wxVXrB~ Fe! Kp$/_5QxsK934Z")jakg'&^TBO&I"D~B. %6yw30ri)p GRD(OeWŽ}#I.Ȟ" cvEXn#5g_sdYn%Iϵ!n`F%q9?1Oj_/"\Y).$3By|[Fb5Ic`9#Q4FXW.'"YE3$ JV.q$([5w11Rw*I6xmpzVG. b;}CYDS:ipٟO&)ɋI'7kq6!,G'`Q; {*QUz6> Is]EܬRR!ESlCUk5)"4.X ' |(9r R[u:6&)ّ?tɤ΁jmNz@VɖϞ$}2ά"v[%{Qj8NቒG;+o_KMig@YfdEUYEqf[s 9}OB?pAxPJ'ImtgQb?cDpHȔT`<궐, 2P< 'X|=?᧎h hSjj6u>kX[J}mBcీU:sCh1/)Os{Dݒ$VH]}JP~"?yث6x.Up4sAH, ӇG׿}25&%#ҟ{Q+[ 7ݚ3u<6S":ϞJV:ĪdC;;^hp8:~3цPnm!hqg0|6 ̓S23p,nmn Pu yv'ϭ!~r.k2F.`L,`IHLlpp/_޷P>/qhbӥ&+ӤP412sSB/pa5٘}",u\Zv͈!i]o v1,En(H}36ɯ躞}!ۙƃt5:-teG}?]k gfҺP{yw˗t۶ԋdP}RFH^$(#i=o' vxVD88KZ<̩-K9&mAqWiZ6m%=2+"diCZn/`vX@64?hb0{ g­42]Bţڰ mrv, f#o纘fPu*RކUwùD4Pmc+wFaδ曌EͥMطH"66|sY((lqA:YNLN'kv<,RxBe0焚,jc FoR%ͶE8ueu]r:-6~ayJ=>?_-FH,\M#|[ ̲av.*R,]0q?l 1% ֕ޮgʵiuZ/" ̂ BHֶoyj;7ocR9SzI9N\ͦ;)W/G[xllLW \w?Lxb _tU0U$Gv-_mHm>be6SO=LDV\DJpS+-C=g~D,?&6TBJo-$1p:뼻bgkt_+fκA0F D'>%5d'!Lz%vO[:簷;'힧s!wsV>A }1gC Hq/} N<,efOʂ;ADO >foOxf q-/kI(luܬē/|Lp+x??p;"p<>}Xj."ŁkϲZ@aZT!Ox\㓭4òE=6|Rz1;=d,1Qڎ?1@$֊H *ncto zohp١ ])Js5'*E1MNKԄAgc4k0A3zG& tFYDjOٗ ZF'mg@]ďGƌδ+fCpPNRnIʝ. U&lT,\ q& @D>eAfl^GӻqI-{l*M'hrh7"cVod1:!|mVRBǪCԣ6E0džFJQ&ĔuGOoYdɲ,'r^^g^űӋbX+x*qe7'-<ӳ|in3 $rs'%*[zi9TkZ10#Uv??NX߹La65+15>& :!\Q d,*4)$3;-b%1s `F<]Դ=d9J\F)LJ9cKkЙdvĎ!?hr3XZ2o!@S(3܀a'r$(ؘ'x|/~4Wwvp*3<#+ qQyԷ8JB[#h,z S7ӔN!t #M>iXP&H񈁀Ir: {ݩ1ֲIXB-߀~G}D-') J &NrH@\ &F)fFa Ӹ_=DuFJF.: C@~5kPȵa8 [1w7CZ0e {x: #KSd08JT{w|hF"6;XD:G$zwELL iV1&+\՗W,,=e{e r 00.g2tN$E* fE`/Ηm&q[4VEAՓ*1d^z/ӵL!vXВ$?JU'x)|{{w;Z©ZD=r}uU_RO<-򋽯 æ,rOr9C:#ȴ2¬}_->5~'“=EmC=}MT_cwd۵U|Ff3I9%trr`Q;SlY:8w'Py=>pc(I`KMXBpG!;0tJP,u96DWElb5G_ۯqg8in*yxF~ 5Nz{e{ptB6!0gDw uw5 JJ z(;ct<%I8V9&(T2Ś$=1T]cϦ`Ex 䊲Ԝ;L}a>0$zsen4{Vlj܇Ԝ[2/g'/Xc{7y QG-1'*!ɨ3V]NqG??G&4}<_wB*]&w$Қ.u{0J[A2TSgſoT1G"zo~n̶l.EnXzA<|8`enBj)- ټ| V0P,ڵ+7F:bvRJewa~Iw !ZՙpFc vQD6"?P P:U@.z]\A2PT&)dՒ52_ȖO{e@nmF_FjRGdmt`䩅 3@"IEXbJU!ȘkKW;1-˄Dm?'/kP!+BNOl hJ~Y. > N#HrU?H:zuqxR" &z>}_1|hX]هxՌ,ځۛ?CȐIjW^7>V5_2VIع-m+aϧna)ئD\EyfEӵCti!uwZ6 @"ک)6$-1$Xf ؉lZ^|i b8BV#ijD KPSVī* Fl%ɠC_Mng='*VJO(AbMS3}Yn$2~4Vќ톽:ّE)/|Jh %"8lR˔n#rRC&Ka0}P5+S5>duy^O>LeXVzƖZ-a,DxTM4{?_0#Q1p 8A"҅8Iu;yb9WSE1hQ՟ <)vA7u 4h" ړ#rѬqhvhz^3aϨcUÀvf>(a5j7 %5[ V(I:Ջ}Z!Y<MQRdǪxaPC1 L䶰Y6zŘ5O4fmT$:)y0Δul|FQIV~Dd0ULR;\lE 9e%m3#$%~hoa D&{_$bz8Nt?1$0Y7oc?7~T ߻ #<ӎɯ>+fh$(cZ|Kv.9O mb[qr[+*e^eNsJHN i⓮쉎$I78n#9@+Ț&Xq@[+ ,y !HWJdn [ȇM ;*}'ԣ,"b!~h/ 'XPNlw`r*%!5ه>vz;'Wh,"Dl$E/&Ϳ{SrD2?'M hyB=i盧 lxNO1|zrěpmO5m Юź2%m"P,(GE5KK) = ͜H>A-`E0V)`Q@EkcLD# b# p,,Mk J1 p83pWGtD@gk'.Ǧd$ZЂq1HG !z Io+oV|ZRE++8Q30k[,#H$ -o]6_GOiӝڋSQ6Ա/X  DoօQ_:┫mu / z.WC? s`%[TtO߅{ً3@0$&dY2Jqj0ԩ~Aqև[\TQ;h\BggǦK Mfm聴E:t3ߡx&xŀ1@fm{A5Dˋ;v{ٓs4oo-]=X8#_{-KT- t.^$g80m@% qp1'Ϟ#@,=\bR>;Yy <KLcB,G,5P:!Dq=mh?O8 jK ;J|lhW|e"GgSjc,D{eH Ip׃6Y T-8 3r{&r„Fl]b+.ZW4~"ٕg7C8?7aFEt/lzW/ nΏymBhK'*g?|K?jy {n*Vv}' }Jov,p<'ɡRI+J68&ԐGVj!;3˞<*9JBܥ]Kk)z!Q>Oj\P sྜྷ8'u ST" ftnKJ}``JiDl M(RHYMo\O԰db~V>W[)cMoO\`l5בwdO݁󓋗yscHnO_|u@rA֜DVֵf+ 1vː:̈#}\n n|ͩ ;~jHi|VVn(N?R wۣ]EjP)aq,a -1 lh, BНMe\e9)%}L;J&fY>C8{RJ SmG2Gϕ8Y-KJŠJ5/LhQeG0Zꘕo`Ӛ+$-,;g}p `DW~4!;k+9QJ?rHRL ͯZaS=yTXAyRƼPZ6rM q;^&:@C\.Gan8E`!Uʶ 4 2HKlmNP›#+Vktm bEbرalR 1[:'0q2+W'P.[jbf)V6,*)ŔbvxAjrٹ\e w[¯mM`ވ3{`"fK`Qyb67O_8bdh*4Wmjo2 X8m 7tLu~Qv~\+bv1ݕƑ|rhǩ&1C ri?h{chjإɣ+LKo#h)mtY5r r65+'H"Qg5| 2"u33w.>KT$B;L=,'R6gF1WܮFk/׹lY A~z kъ":ͤLs.=%HrGǸx<:?[jΠOhZ"]ɠTbB4qJ$~\LHiR*\5|ϰz Ry|t](utާ*l]jL}$ʹdXV`{ө}'y$B{BoaseZO\vJ]5WsC~ ~F͂Lܮ@}K.gၥ$+@fN2.ε#sP_۱L.}7v7)n]f#ciO2+y-Ȩ$ \?]հۋU@Dߣ_r`4$Ǥm~SA U5Z@1ω,~%+t\">U#Vn8!# \c'#zX s񵇓-+<13-j^}DźLϖ%_K#iChd f>R$|OΒrN+d]_NKZ2CN?:$Iݿް1C3ڰu-3\އܖ1|5n[#}>@%kH6kRfA0Hߏ^Θ-Rcb$ eL煌LP-솨n̨m+M$r'Q@6qQ[ةS C~ej$[ 4[iحatі(1ev;[s8"U͚•GSI}K ZDQzX:×1N,d$~*zv*V);SP{Kn0Ȧ 5c&1lVFgf~?I^J{wS6J8sle+#QNlh-U\ 33 =f聋R1ؠq̞PZmA&Ƶ \Ca ~&¶d5C_b;B*|,^sPX'zvdVhH%q4۶',a^ltDh]J](_a!뎅*)BEGF2RWtJ` 6%zD;6yO7y;i'wbgG^.?\A)Wp+|w ޼艠Oe(0X} vHvsAG|(4=0J&cFS@=gKk/Bt`ztos7%e^}-zX0 pD(%*B W˂&;?ٳ-F IW-F-[Tܛ=wa],| T}2п~I<6j}֬UгHߌ`zbTs--{gH. LK4ȓUS?RH@2bWQXĢicW!O wl+Bf]yn?vQG.BlV0aG@z~J \ ¡|hzZYBDžWt5w!+Uw <Jj 6J?;O(/_:g2hں!#@hzc{q̵h̤Fe$LSZWHSxC1ʭr+ /v{׏v򋕄ZXЁxjJJҗ.REqFIY4E܊~+*q*j1M[+l=- &,4Jryf DZvc3dMsQ7HkשB\GZqޥ@GzQ]).gQB{,h.d%XHS9ˆ pC5%8R._J?IP_DЕk^p W=bd[o+T@rqOs*BC*5Rk6p7NĮws=4m޸_KiE._&2C:ê" 4Gu'iT[ 3s=G-C-KykMPeg0\DP> 7u(|"-z RVA897r.WS B5w2]M{YV9Y7yc,*aNuJ'ŎBR4y?uǓ~=6ՏA{5`rG#]A%w8KK`MA|A9Ke]Q8Sm˂q[ZԾyh) ݋3].]{|id<6XՅ:'hGnkT?#4E>M~*B ,JVΙgD@$`FXp"GYdeh8a-~?4~aG4ZWgmf]PӐn 0gg^3Xufj(D>N9,+粝x:~߆͂Ԫajꁵd3~w{iabM䑈 [ʧ\2+Hآ5n/ӊŷHܘ6 l7"AI度@Ua)&)ԓ\Rme(4"r]@/u55f(p]:PΙ<@Q"F%;,"O-7.Ue B}!9{& etUމOA[MApp^t3H~$խqe{@kO9S!McEt@jc$}YJ/MCYeN%!^*&m[[DQQEY s$0SA7Iq%,!*mCϨo΃~]W$SZjFX8d`]2+\UhXt:VĈ{qViIڤbp*|0=?\=tA:4^ R"#G)2e7U#l!ƃvw!ɱiݓ` xSa@~?/FT7 & S3jp0drb}S7߉ AISl,c_q4e%'DL.$qnҾ>$2TeU-QEPfIZ ރHdP[4YHn-۪ =K069d為76*g\EjǓNZ@S\Ar4އ @ Pgyde򨠘wv!"B2!4ϹIT)b_#n;z&%7+@.W9,[; "h4"ua.,(  KpREY ʅlbhmvAu GСohý z{DcPurv @mi{sϿ&h?"KcnAOf˾&qHq(5.9zga|Vf@WI6ʻ{*QwjIHx?T30Zu$x`:4>ZO={ng§.{\K O!5 QpE_JK  RN#"WIJ=?;0mX>0 FŨ{\RIP4L;"/>iIsehE=Wu\gѳ& ڛ挄I_}QȞ]n &;5"C "%nNmB}F9=f_s3wƱ,L7KR sQ*CtF޹ R tx7׉;erMTes]|t&qg! f%1O׹ k\ʆ6Ijuр+^B UJvKgV%S 555#1_l1ō7/צg / Ts>L R^C2Q +F3۳DBלYG-zѵb9wl-?|53]}!Duӯͧ WyX-Ev6ϞܽT@إ)rº./ [jX2?v4ӟ=GzCqDǹՎ]j/t$Z߃u\  }  #^߸ .(NoIk4+; 3=CLO|׍40:a:0U\60׽ͩ]TX~G&#nLs1IJH3Y v#pyJPm HuF [ƭc'xQ 4Xx,>zASung{х3nQM_d Rf ι`⬢-аD42pMd>$Հ I0sӔ9v_߯b11ݞݪxs?w`+c]@? #.\qMz0yt0x| ftJ[E_25ßX3ױcةnxɏqdn@)?vI=09~Ng?X>14D3br甋sf^pPr$>jH@ Rar\.HSn!$47Ю&Wcsh JԵt1v ɥ~Pij1Ȱ=}mީ*'SuDutm NB@Qj0DERք /gU^&%X0C Kݳwkhp2wD"LR)bwsͩP)e~XAF볣Jq"9K!;J|Ic˯1K]gʝ9zm!*(^`:AQ?"DEG {rO[O맗.\Z:Gꑓy9?wLPY+\wo%kk@K P"> H.." |Wbƒ.פ3q޺9Ⱎ9ە|ko3+f:)̶7C=78ùv IwG `Zea0V0F _('USbTQC9`\b9Y NB{2s8IwZ`&>" jV;^q-?33הUV1#0tPdT H7G3 [ 38У~B?{>c9Xg/9r(З[,Ⱀ g7qOxͻ$7<6 rTmkt=)he|B%Zf}bZBԊqHnZW" ,_[p6'c %:ZꔒZg ;9i]h!V}XބʭSWǾ,W]Hp[,:>96-7,;%kCo߭v1?ae[$#(a4o= ; \J@\N蜔ЉUswَ'E0:}|8PF7IѕkC!<*KIJ8g7;"5UVA5a>8#cPlsJy@5 ښ1"Coт Ly[cn8 O1.Ŵa$B)9ΘEz{-W*קn<6Bn5p(ؕY f W= 輪3 V\tYTxrm c$F`X8U`^BP۰c,a-Nǃ).[d/Qpe3;';!̻7Eb(@-Z{O*-YgnLAQx/FQ%Nc?A@F}-P@VXfj񂯝t0gpһ1ÝL_ Y0᪯xؼfӐ#j|8tu*%;k*7nxU&v, umnZɖfj ޿{=u!O=oQ7zT4LJeBF-9rEDskaeQI.D״w7ÈҒ1͹MNeh҆Sp]6t5x)OJs'.kܣ-8pw E~61sǏ7{io\:, Ȓk\<^tNB?mi,LOj{ts'>`2qY&`O9|mr ` La]vfJEɶ̨@d ȴ e?AƤh?B&"S"XRbqygU ܶ&pK%Ub^g7q pWI2 CaJ =נD05֠Alk)j}c?1\ F֍ut|Q\φVB霴j xj{ը$Ғ/_L̚o+\+"V&tWwvUD廄ξP769NOlO)_+$q2(_R߲4,Qj r[zIbvtOIMwt;Zl 6)%tDJrhFVcY)( !q2w&DCR`+VoPy&Ys1왟m21GT(hX6#p]r9WJS(?p|^7;Xƨ<(Pf Dĉ[g-DJ]W-AUb-C9vÎDZf.z$tCkERydIH=$]E&p|YQ$nĐpnX6nABڥE^U)vmD#O~jTQƆmdYm'Z-&kYIP*A/K*R%wXÀSCj*yZk Tk>a8n? "i@._M?Thv,s$H~qDopѐ%mI.#f,n8]1Zvx VNKQ /K%1mKGP!$:1{U#I|D̚StQX !N!+)hùLW>qE .s]]fʿs2oxj?:1=KYw~,˨vك+UaFHlRab (;4<5sWeixPHU_92w(h6k3׿5&8p Py(n$&I{hqK[x&S kӔS+]A`P51@[޸W?y/N$7dR1CQ}OF@ե`~|vvr ʭܾ/-zX_;9:bc *U⍌A a&h (\$VӬHBӨy-%Ŧnp鑾$![6,, t2'/㵓H_w4*!b@F\FX"(`4^"< ^P "ĖH,D|cEҗg¿d#MV&ȟlSE1D@zFL\jH}[Ǝ3`=Mۦe<lZD9Q[Y;PUԳ.$wnL}cvFj,cѭ.Qz_.WOh ֬%3FyĂ/؟:oN̂aNcr*zJ(r-&8B1ANsU#5u]}MUWd"7hOLm@ةHZ6%;LܷE.eAEjBP6aHqy oX M^-a7O^:t|E^9`YUףbI/%T7)к=$&7u*}g5@j_&À#0Swk̘a ҈IXKh}`0 [gU,{G3UMnʾ?@?"?]}uj 6&U)=5 YN4bt۸_ TK.h;N eO3unuLx#m1?SV" yNIQ=U(x.^ߖUM}7"C%mp!XWO(*71*a)J~A`n[owg(CJK({cm`DR^6p 21R#3+/+AKK0;+j5"ax+TJaNg}O 6@$"\>J{щ U\A"?<|/dTKrjFt՘+>y8bŮ|nϣ6)`2/C1m'!+8әL v)tt4VэD ُ_,6KN>Du*ES_ !')b`gHm+gVIDu;u +mgPC.g "Vy%JGr )MVpbB X< K_o麁U"( T58EoEnkvM UDr9l|Y5,,li8a2<ư2BuF!mׄZmfg(bV-1"2P7 gڠ(Ƈ}VW>@fVfhtw3{, y~fe*"-пM4|x8λRәWjvB /7 jw!ָ?'p//L5{eI }Va(T0/w1tQ[3i<ٲ"-/^Չ c V/0NJBf^cr*@yR]~xgfߛyW|,%ݣ-˧YX3KHŮUb2$]s q\T\J̹/ HIKiyݤUζblT3by )^;'%sBk+ P+=f@yBb'~.KxTy4 _k:{o뙯YkI]6ڵぇg$U9 Io33a[ 4QIY bk.f[eb9b1I=;>)aA&H:O5s_Z_cT&ZʋIP?'w(>Ѣ}8_C$"?hۚ8oN~x#&tjN CC1M! F*bK5<%ݲ@h=%APqtov/Qݸ];ihRKة%^P6|C42`WJ_;ܴ3B#&w룸RC;:?Bu5TT+ ч3Z<0Ԋ("jc͙Ƌե۝OrS\N7\Й'I[Yp U2ڐ8GPKՐ[yx4纩ŐLٹJ;bFIđ?/ -?fL$3<'1u4́1T&uyZlPdd$$I&4 Ahk>iA(N9CV(Hv}F<2A{ln☕#lVe= 1]zZR֣;;{=ÉxJ+q,{TmmN^^.WV|QIb2)uJ3`IIK_& #ƿl:y9 9,"H2]ij{ޮ6t^k㥺}A>ɂHiF{hN4CcZ{w-$2o_ 5h{|&Bjx %9 rcswԙh>$[m?Б SWwjTf,^r{^B:C2۫|14k/L;q7]R/$&%'hBLnHyP$1K;<v¶⫪M^JI&c]5v| ^{mAPrB\{|\7^0 HWs.9?y(}dCCBANjM(xJk]΁CP8e{=BliQ^ Cm' QKj༉ziW+ )ݱ3tQ:R(脏.% hJpn8iVdJ$6mj7:K/Ub,Vvo:M6;48#C 8U0mz՗.scoU-`YgP b3oꌱ$;6<#~LڴvWQRDݥ(pA@J;"pGkdw ՉyA&zhX=R@d8b4녜!`w s}G=\ﳚuvyg.ʾJՅdR̫P!G."h,r Oz_ wmЃ!tq<:'7@aK*>CB>xv(?d';@Y0iҸ%\ C@7O1NĨ4@-̵s/xm=U;q\_ ,#XaDV Lɸф yzP5:nԪ/ thoAQ;DTsCJp*'3SKY̆.r'bj ΂7\؟ƤF^F|N )1%=k{ W&n{0)d?RdI(ߍChn [dAN^}_\02?%VмHz@9G!m2c N8`&IU89Qac1kjy#\T :?9Hlݴ0=d5TsB{6JU_h"ܑ_|cNwF I% oϋ!F 'z:Rfk#_Ʊ[_;T1wiRs#`Ә}G"nElE#7g-t)iV*^EvN$V֞$tU$QVQLcIAM.Q6h3:/\3t-1$\ &* uR3V9ZAZ q1ϋ ֝Xۭ.S# ҄9ƒGnEdtƕR/|j_@y}Eܻ$qkeP[&WhiS-h(ZǾ+ ߌF5#|0, 7p/9 d#˟ dLv޴^hT2}7z&~DzEМ@HGd:EKzcOK(u2D͇ Ƿ;x^TE4pMb[6SHӡݰ>x<7qDazVLZ3MT: z'UqDi-u*fpmGb^3r`L\,,c~rV2*O68<Qyr31̈́!anQF@ȏgӫڠh{OWcwŠN됕mU XB}d) *~^<1ްhoSa{k+h:AEiC N)Nx{D0:4njɵcs@J<=G"$b{L[y\H kF#&Ά*Ybe= >Ry\*INn a7ED_˪inʴ[w֛T\-e tE#T[»aJgpzz*(pP)KgMY*j'?Ư3RhQ=ҿ05}+ZoQ5?vqdA4saFEJh:AeKLylIxd:reaf\4^/)'S觑pJTp}S>%)%+~|f7b"u:!N!LhU RGQ Eė,sGhKBjkM' |vBs6,=o Sp|Dq'Ժ1 ~jl&Cܡ_ Cx2&^S#WDi2V±2@UݪD; A2 Yy8~ǔgvwkJo dWLH 7p񼷔. m4ba}]B ZOcf3 ^u|m,rjU#8!j؍E6-[F(/hESGS?"Y `vŸ΀G,viz$A̖ R]r 8~{zXó'O~3Z- #Ɩ>w _l.L_jivu8)'Dz(+;yh;NhiV]Ҋa5VwQAͿvcbxhQ v QL??+7JއDP#V L&2}rÇ|Բ Sϛғnu)Nmq hf]@BӶژụ&DI CfYc%i ~1Whu\k-q m`H8_He?LKw<k_EsHl:lsWʊi'9(o jc?$}g A%K뎨8mV &,͸~62& RYm"0%rF}Z |/c~k}*Ɇo4|YG9]\W~hR X1ˬ I)\CAE&wu ?}R^L!9ةNJ%hJ Ɗ bD \l P.=y|y0Fmo`"'{Xv`#eV==+ox./%D^XY|hwԡN%sۢ G,/Џ<62?-?$  gT‘۞'=.K8 aOѶb69 ~wsx<@Z$;CMkr툗M}[|qif6ߐ9ua5.w7 i"7"}X ՘~5T X~*>%>-KYx<(>$=t}sd\_fь#t=;;e0!Gb_.ВMSX‚I R2+9m]v#f@aʩC^ Gް&V 91y *=C+8'nl U`+jApTF>Fդw2$!% 7JN7Ljro u& lB|/wIz|1 f\M_aydn֭Ěx~ Eg 3Z[{ωPEFEfDh69Jۭj>B$CGQپ~Z:PGJ lOњ]U& Z{QZ!$eM~gA|g>rr  TǖOWO=m\){LV9id[/ez|a>HHQg,0PJҡACI60'VgkX@O /Q:~4`C3Dʘ `u4624pOighxi7\ F$zxKʈ:NEmNG/WO!2ʳ4?2_Ia!PQ?m(Hq 0"Fչ#n 2 BN\ݛSs 9O|BP➆}UroޝbƟVM{Id{Vg3 tiP E?xՍ S'0D|ysA9V1DvppJ?Tr^>R@1ef^r\4׽Z@e+!d@op>joiYjL[֫.b"SXc?*aDB<5_G`>ghi]ß!fY>ˋaҞn$t[ > lqv0΢F-*7zK-Mlʠ||&B]#Vy$g3]_T*pXExK, Aa&&f4/(W=;}v.P!Kq$q̜Pk=R>X6WB?N$-@\%WdH=u뤨 żIAl ֥|7ļ̱bS2ٳұK%PpeY(fX_l .ڛt,1xE?f,TխH('2VOJyۊRFr}LsgW(|>fEj;VYf[jxoӋ Ʉtw }ֿ@ps@&\WӁUHڋt(4Z0F(HA~:o et[zbq41Ў)uO"'fG ?^0lnZg-F P ?^"]Xժ1=ΖғM~(D=V07e@kELvzq9m!"mO*b:V"x_8E+a`jZ@´7Mo5yl<7ӡ[j>ֳn53 {*@0$D-&}:̙So٫x)M4P\ [ɯf74F:rȺ粙'9PHOLd~Mmd\J|^,p2nh@;_X]c04(әmr_~켉3D}x?Ǿ\}D*+F@t$?7]d 6鶓h_gUho%,nۂyz̬|f+bK[!cy+ڒX1<^|[ߪq!e yΣ1||sT[SbzDrGNkQXG)b_Ot1:mx$%-k'6 FLw֕ `GJ rRJŖ ]v埛_]PFeiI^a8 ?-7 u\{T)m,. |ZDdSv&a dZPYf ݾؗ[PWmx]!1L/F`LqU"gA}邥x9x+y~.F}t8BrúDѪd=BR\B+eY~:ƚ2G3ӍFn7Gμ#Ҍ}b&}@->t#,]>UKBxv? MYG4- {EIC#v,9/](T42X */W\p6^ȡ=KJ&q궝(2S.}Y7-uZQ& hQ G 񲈉̌ې :s.CNU7䳏7FrA7M4&]tF,d~ Gt tܖ͟8`uVT8L^{Nʑ DX˼]4'@y_av:Y ^rrMOkFM3fo &=E{z3Ӊ{U N72Gfy,% Bxv FU9ƠKqci8w?Ӝ|}(r >&r @zG<%촩5Wj19R._{"M% T4c)3K;T$zLz؇}[aS*5hF'= 3NoiUi ڍn}7NRCc[ec_F%ѴC@TId)xg1 e;ZKmS6)%qd¯⪺i(Ф=ծt⳥'v'}M"*pPUIA g(ֽ0ᜲ7IWM מ>6(>0(B|)T+IvBMq?a$1qOG^80-B  ,Yd*-UmUGe]pL ŔL giL_K6 ^ uғ|d;_Zݥs~[(OfSBUDvjpX?SdO/Le$ׇ P‡N:rίN./=;Il=\fֻ:Tۡus+Z M>Qyf.BB]H:}O]d>WV_J ܢDjKM}uTLQ&]8eғ0P"8y3S׹3Z^dnzZs-mU5e^I-*E=߲"?RJ9"FPx}ʦV_5- @*[eX?#6<(lAK"&w_$ב×:ǨT}Z0:&^I?(_:Mc܍QQ@@Z9dr>!4ʿJ'J̷W4O :)U`q}'}b b !??]$v?M ٣fQF`DZ4H ? ~-_EG5 hTe `_VhGR =Cv|.(4ZWҩR:`@2Dq6+-2f"l&J^>ޯGMNJ @5o7O"{_ xs+QXjsL+[,f+%sJ>sv} =g;L78bнO`\. I@a/UR=֖IVbQDaH' [_-.(p+sqJc'K#iZ~%#Q@2B(xB=5[.ʨrS>1T[=aWk=s!:i(b+[͌*b4LHBY#"3n8@D7Xzb@Fll#F*3лګNi5i_䂟DO | :`j>b_/ㆫ^k:urh8h 2 +y!SHd$+ٖm:*~sp(E˳">"nfzS-8nⷌ,gTM]9E K&Wܖ -]SkvQVEd\G_hVݍCzƍdb̅s:RcE01tukkh2t/y3OzA~Ty!T)ksW_7+Xu@$Or0bC5Ov #ʫ@eA-7bqwy~nh[T/ J-{rс ܚ8/b#``d v$C+3 >гK߽9*:M<覥 <#v[ ,b8΋2{[ F &6j^>?UIH^5d?C{@f,ՏjYu߫"Tez8~tMs.]Yk+DL|i-IlY߹`T3vTm C"fսَJ6 [N*>\Rn%p3 ( ,P%VǫN)ԩȔzNfC*OIB{.!FǨOwu/FRbQ`pq)l_g6"<+0 b|A&nK$9VSQ3BqdX4]TLN`zÊY$Ps%7H:W(vP=;۩|Nzy+FQdbw:OZ.CjB< 5^:'"kl21;PSOl8!ND(0u?A lk?bIY[ڪ䝱YljOSL%5Pp8]_}FÍGhTj_ SS<:0[%cN7bo%n>:U9 KdRJï8)d4~QU=izIpuHo]::i,F3.<ňڝEk`ILvT b0ɀz(ݞTHL$d4GRb }Hz'R0*[˴chBrOk_CgBKNpe:{@zqo1_\gp{  abW$L7 ej BJ2>D8*bN^Sp0BdY||4,QR9. %W) /فx@G^W l,:2?.u.iS>LmhY9[x~fNs'C`Sg.<14}wk# %2B9vw+N~԰|A{̓s=$ݥ=N?0 #QōD~h kmgs듔~d1(,szRޒDߘ}rB)Wx,zB\7GqQXEbxD sp_ckj1. ^7^iCHh^JVDVFɒmIYUΞ|C7a{[{S³O寳HFʂTuyWsVݟŻPI^Pjt0E}3m![ F*lB'P0K,V)U(is>>$@ LUy qg]m?B)u2!CY?!(,n*uB([W JUF,SL!pm\-ܑ/b-QAըݳ5K+ڋٿSM@_=V~(Y6?ATWm l0|a@ogx@G4^*%nU횯qڏ 56{ї"uRF$݃"Sv?t={K`ʢt2e$ܪPB g8ه[UjGv8ؘtͬ*Z>~c 1i݇ ÷Jڟ0Rߧ+m]W^$; Uﴵ4(|Kҷ)lp7tHc{q鱔^ĝ-q 78ʵ2ZRwƁmxuk•$ 9'JenW A`/ _,d\:^` y,=~Br=$ފ8t|i_tY1S2"2[ c[ \h0J7-KDs WfVE {棅j]OlXO<˪WS?SI(`o9-?oǚ-w oX$'6j8T}#λl<{8͟w9J.2oT&MBY 5<3+(,X}Kɹn)f=k'Ucqcٷ^Ia3\MND߄nT>e»?F($dµЫ攻?hE18^-XhWBPGV(n()mB5%ƨ4Ue]^4]|D:H|y,Eu~v3~$Ĵ9ȫ$SǗ|ȐznQj׈stIv9*ϨV;Ӭ5^N|Z`@[է*F gk J痑C #N2R}Dpm3sZٽ`}Doc[t'Z]f>.C)(p8 Jbdf:e$ 췡(&.`*t?+ &8_ܺ|[2/ Yk07}wb5oRPLVpT\`Lfy7T/HpI64cPpd8ubLJΕ<(@園ȕrw@ul~'a9S? M*5X#F~)0V_™8p%F*=`* *ACwh:6;? qc@]8iI @2ꕻZM^DA&yCg>??ӱ> >5 8!Ny^@(|Ðg>%W'֖uc -ױ`6f$W%b)/ 2WIH;N)h/?BpڱF-H\TG`F6Kd:3z9{P&`̛,=BVЖ+fa:q+ՏP |eFWۚ#h "̛ndD|0';dr*P ՙp`#Z9CNw1gV@vHEu. _»1"qi(k}~)x61mw>}܁)ί6QwaȒv t(Q֓bTb"9*K\]ٿj-IAJ^tv xk|NCj7ptAr"[z7phC9but dtm qc0"{P>./ykFqDoVWh)'iW2X=A#OTU-%ecFE>r jwbSQwDġFH*pb'ZCXzZMq/:BZ5Z9)|i\D䪸G(м݋i߾tz"6@,҈4 '->!oQ*Z*>s:;t {|_Ee̕|>ꠉDdҩ1J̭ZSdX&b_@n–Jm oN\mTF ϜdD!xLJ{R2"QXi}ɺF@^лEg%G}Mm5I3]7#ՃNHNA{@r4}:7֪!4gv(Vs{V!N,ݼPH3TTx0v7x/7Im~4ELvh<b_{`i{ciAOYpJ= QgGiJ{ru+ˉ-2IdO=r|Af&_a@`t4P\v:\zDTŻD]F+µx(GڡfY܎lDhGtDe6(nj[D?kDM^&Pɫt.&` kj Z$e%˂Ú%9~ԘU_1{4nuy-$щ4Yv&D<݅/H[o$T4Juc 6!umkX4_6Ty'8zMוnh c{jOU9RA]1Y){U-hG}y'Y D;%F,J Nygvx1XFbdٰK}!FdiχF0W-\ï%%쿩:sNHw03bEڍ'oVLH#̲%=Ah&><ɍI7$ħm_mP̟#}kIg79zert-ٕyHPԦg泵n铀rd']R@my8mHp\Am_E;&fj"H_jV &6$\\I aan*O]3DX1^ez`BϖJzIB `Dl*)5E'@ƕk#!BV@M槩j~*>p3)VU*,@sяN&*J[Lb))w5E+?e9!U9-)A;OK x.)v2@n.nZR͑O|*d~S)yXy@[X L_Ľ-*Ca!So:/AR(}@ cH`3siDYm #r~TnqmS lgIܾ3#H+7<4 hQ՟G&[Ն NF4O@ &`XnK]cH];6y}Ǣe&'lqr.0/$:.e~|{nk}POnᴐ/R5 YNZq{hm"(o4(T "~*Qk0 #G)[8 ۳l_.7p7Vi@Wœl33cPƌig7tT1;]xi8m+hoH-s,TT= ӊy9΄ؙϝXjKrSDؠBɗ=c8-%fZGo5&&l}Qa9+4r٬dAscOTq-ۙ]Lapy~$X Q4SS`8tU_ @wA0Nyc6&s*eXAK5ȍ7v:T4IYw| 4-UBC Ril8s\ C?Rr'е9/\G̽rQ2/Z+`8TT谶U򄀆xsyflo+IŮQ%P1CM鷔n7|rkh$Q*w4wiWB?W\֯CBAWo!\zWH  z,C̏9s{9tK7%ȖNsZ27/.K( 1DT,9ҝ߿^kf';as>M"J|'?ݲ9Oz,fdBO@;cYcuȖz$FXWDk"@7nڶ,H`JF2Ƙ(:+033(̅hQGzNEJo%.Nc*#L }t4I:n3Y(Sf&Ѕ_֛NrY6bG没-*` IyFxԚdfwBW%O? uMI Bj.^I93|:e ?I=A\wx֔ wop֍[:OwZRbk PZ]3Dǃ<䳁L%\;n+ ߆`ţA[Ň{;"wet/yKl"M,$> 23 Xd}آ]="JZâ7B2 zNb 26+'C˽#_h nHut.ugbW ʞ"- Nd#= k/stCK )~gAҕ^в3F ?*Jcq]B-r6zӝrF$vLZAe5o,3;9ɷhqcs^eDT_x([ͅ3nxҐۭ8oRϳs!?Q%옠J ζ!I}f"TBQӇ9IT RC* $Ż[تZqDmAI}]7oЦŠMa_$?}2+h"4Pr^YR1Pf y_t}~@]jd9%ʢ{p~x8Vṭzc!y< 7]AaS܉ NXc+[nWBi( OK?D+Щ&3Z_Hg*jjX~_m Q:֌ 8?]Ѣ˙lx0El0]_KO%_ 0D[!\eZ1H[Er v~gTE`g/ MXzk/h5aylUT9?,uh7 1L.FTb zC_>k^!PIПrF eXl&$3h\ժ{r8. x]%$}7hYYDie # 'w+7ly>q<8Cf0noJ^pM/=4(m /{/dӑNZNezj u罌@/n=][R1MH荔O#җn\ݬ qiS;a(ok W]#ɖ=n{y-PW\ll]zPKAYy'p/+o˪e@U>xϔW=Fm H;`z NR[oRir_ՠR wAB2wK(g!=(r D5" {eU4'ecyD U_Ju@3TYקɾhV2'~EifkPBSq|U}*\4BIA^3{¿9Z 0zԬ]y6Xr;+1~յQ ε>[w귋R}zOI#gvLg{豽:唘3H39PИ KTKۅCsRqQdO+LtD_ct!Ngu1qxy q?bd %)QNY|DtVwtNaV^w]HRE.5? ;PS ڀÁ_{keAWkɃEէ{*P9-V+]YakAqTGHšц7]J1,ژ2kG8I uo}*2'YXx٢%֡+F-D%Ґ*=gSqVVԷta=S,wPJY0+¯e/Ҟ'I4=t2dY9ABjԆ 18uU#Cgog ;*e"ֶ 4Qg z!~_8Y"sAզa)wh~)mvs Is\7JUWN(eQ2 MJ bˀntZ=N)zb:I]W9bU*ZGEeII|}tÛ0VsYg5Zč !sv%E{f }qAcj ,gP2Ɉ8&[Se&Lm;/URC.K!E_b6A N#a$GݟCuk ~sg INS]4F>TL\ͺ\{צHȨE3~ҊK_V*!>FqC'Q K!+*IGVĝExIG{rsr`)Tb// `ZtXpbF=+Yk;A xY:QI{S([ ,u:@Lg+!B-rIYc;Kǧ$ !{ UB[]`E<+$NQj Bgv?T)%ZVm;fmRъ!pk;G&Љת-E=l_Ri0FfM qm|;|ZSc D9嶖9`KO跊h>q7!@t)IoU`:%,8pR2#; ԵjApӈ wAc_#ȐysbS1p#bDϣ G5/x] Z3X>c0,zOđL[Z:bݿZ9Zp \O"J6B9t5/Ү"08?|f oW$@1z>S" "E2SGu:r_|=\S[.K\w_Pa}qT!SV璉jNxRdSRQ_t{$?W^UU0;D~c>/L=i`1.0lBRuscR;떬snY^hY^CU1On4kp䒦 @)j,Q^Oqw'*Kys~Όe`u.ä@i$"KzY:kcХY#gr%IgˀЃムM\<ȹ+F'p( 6$ S@[]a&iEvҎ$P%1E]q1T6A#`7LcWhbV +Br 'BD 'l0&9V5Sxݕ 0V/e%j0 ?{'y(y6+L1\efܙ0&3]3DVI6>^J./km分g'5C"^QԘefU"%G~u` UZbRUA.Z /,8iE,~f2U9SzY<L:MFO<nT[^hZ VPM>B]E@o-KL'])`-h:櫏[~N2a {9 ŅY-?}e D붤v >O. `!JYgf B`1_=+lE92sU?`@Y%B-M"~mZI?{*YF#&JA-악5 BXX.Cȶ9S xK $t4M)JX_GmBZCsF@ Yv7K33Uf_ ΰ0LJ1o@h[[vĮ v >N$ O6VϞZN5?.T`\aTݫT8`*y;\MNC<Q{WJ{ܸ{#lw =5ɳ5I _w]MPY[cEnSªvs~itM9zRQ7XaY2 eG8k?g=N>TI5ⱄk ]WeV. fU'%r VgNƐԙn*v Uz݂Aq4٬}yT@:9ӯ%F@.%>ϲZ_FKA8u4 jz-+9P-{{,JCtt@#^E˗-)N2ϦF)5e#ty78a.|3j-#jŽ&gڢ ̀ ܁ZP`\>x䪰$o`D@u^4yml[=>ƅ)wߑЉUma#E6;Qb>3k>?7wqaKv.6⼦2Ӷ$GXG+J5 FWW2I,w^{HdaZaqF$N'BX*Y{j;9N,ȓs4'mmT  6Vhy*v<+L\߽LkA{ZUr!dl?eɓЌ֔K߂)ˑUv=ehNi{$$nؓ2'8JB:SVOe[WR`*$?%JleϓMChYzCddVqQ{Ue*=̑Uol\F0y %ҫ+.*'LLԌ1G\nõHZc5A41(DL62auqyӯ$# SaE MWro)$J:[a{K~xld' # )p;sj^d~FFٗ`HxQ)OQ uSIwqhB8 Ѿΰ|$d_|?:d8bha%FVBoZæ iP.8N\|5ɥLZ^Pq(+0ܗrrIQgW\'iG)'$U{'ֿ3LAZ!.a0A[ɃYvGp'G9s$)끾 kj4w \SrsWsd#H:JwGCX_=4ْU.Wq<pW~J=KXg1ќ6bqL,X A*"φTM\W:`od0y֏or{|em,&wXCXdk櫥W9ʞMZ08F&57r]wq7': 7(ܓaǠl]M,2b乑9 gA_^GnZXY[q TWSFxDxxtsx#|p2j˒ĥ`Q""zDqǡ_f@~q:~f'zWӈ#Sҳq]]-P@u*XH"Yٳ6Pri^#4bbJ]f JͷwW,ZouE Hx/~Iس!i/xɒM^ze(TӠϟIv̊DžD#ss5=|)a=kB&l==&LS2=h(d.l@"o`(>>]_*{M)75I|El΂iK΀>|.[b8(ڿdT.Nmݟq-8p}u+W i†ON4%åؙ w(XmZk}C) V t H. #>uZbJ4KS3^]6`?]Ŝ![P`X٠> BuhQ^ rc:ք!?ɡr,yM@Tvh>X=H74K%.:gۑƼ*Q|G< }]JkiϠaGJ-f@wo.8GWY1yUGi/I] Qi|E=DzWL8RU7MSZ6}p;IߵH`?p){ӲY~Pe90[)rUv#8=f y>5t(+в>ϸZvHG$4FُYX]`L֎%Ry\ HS {i}9mXZ\++_`?jּ*MPJ,PڕڊpL[Jt̓uP= LL}k⹔9ӉrEY 4$n +K~Hwzy58-ҁP.T5 H82 C2ɮvͩs U^ox{M^#b4vEsZS{%QHcfHNtqAְԤB! mY݅f߱B.1Ȳa>ҩ*E-`^"ǹ-[}쨔stFp*mUd0U}Zb=3;'ǼXZz!ف [(ϸ׈-vwN%6/oܸ|WU$}=X$.v3FծV$*Ǯ6u7^ UDXᛅq&=0DwgUj羠4B=/1@{*j$CDo;q&Q#ULR*Z5əi-ѾJ{iLW6+*OؾL֪6(.^F5Ey'`@ty_.ph*?H{_X_ᠻ[{Z!sr C6aWHy_5 iY]Rp:#@L(k '~ۋ 扲wL<=3?7l PmloyN*/Wd MD?K[/qKs5rh6B=v99v+X]܅ N$JDhzwVdg(Er*NIv*k=l^QPx@NWt%pZU˷8kE˩>&M1WF~ ~8Yl7k5U"zE9G~%ЃjB 4qQ!FFU=L5;jU%fxRyf -K f3ӝW\왙JI D~;#M-,s>TX΅"dmRƁ0bD|UXa#gmr.Vc9ӈydq`C׭Ee(zu)~fʙrR_u&AOvi0c}Sul?ҏg {@(9\wև`@y Mx _mj>W w"^ʇt;@zm3A==_~, vh qniB3kGAw7N *kAQGa[2UE#`5.nKuݛp3UvCxƁ,a.8/ERآsp3N˪Μ:SYc?own!@,:8^ OnkhkBG<|,SHnN}o;X t掗~F_=rb2 uUZ)f(.r^I3 >[.ڲL-cvoNOlɺPޘ@݈e:NʮnqsP/Pf"d.% ݩW`r3!J舞Rλj*f(~Vth)Kd%x_Cy8O5}IaXN~I{ }K^H'.ے2R(u˭2Y5Scc Je9c 4_P{2Z"{0uyIR~m"\?b7W勑 s=ULmY5T fyrun\kã7fJ^S'$V}6)$G-:x $ɢC-ZRzv,Fh. |  w)&>@ǓOYgĹyGxAl,(y9~oP*5MLy@]ؤ1%4GC$Fj^b)chjׇِ8]imMEId^< /jVJbG%V.d@p舜Qhi(c­ C̒)|vxTk?8wL cߕ tm+GwV7^ֈ8wP@r†rcTx ǏO*e} ܸ_ Js#5T)s\ܩRuT~'r (ߌA۳3ՑRw|cTf1} z%< =f,?*EފLg:I'FARJh3Ku0%&^>Y}GYVϔz~'#TyRףx0xڍ?HNUQAQuкVXϯ uQpL6\ lhkRJbroy4i`/2cY2uòhaT,ms79/=`?4Ջ9 RtS%=~7k[ ,LVk&ujQuc"{}DE?fğ!8AX/pxgfrvۋtu6v=X} }R*FGAёqo)d!)8#r  8.$rFaTձMzӝvOs{:%,I#oqS7ҦL-FB5O}^$:WLJ cE~korhORLjb^(r8N{ w>hW~'' >V?]?UA5%81Ҏ\yv ~ib4+ |q;b92/Nhu 1j%Ui41ڂ$Lo}2CN#vޣ_!7$t$dPp3hD7L֨`R"JEJ N,6~Goʹdͅ.!Pӭ4Pb\Gⷳ/BIe[6ՠby $8ojș9.I|C!4AuhzseDrG؆*x\6/v!)د0 %R" D*i'Sg؍$N[\Й?^"Ifd$Ռ {V\qg$>]OZQ۷mȶdMcκhO-l>\ޜuzNV_?gKj`ijK@yzoPJ& $5 .?}콢XV 6~[R <QvueXIŨ0G J(A@-&MjvZ5%&\ UWG;_X7Aci!5sc\)Ỵ)PqF\fR`vQ=2x9J+BS=$}9H1S4 4YtE!'b5P_Flf:ڋbI&n(TtzR܀cx 35d1jP &NHSvDg nux愴"(53Mr붴֞ix3=N7vmaϞ(^Gn|s 簹s+O90JhJoƒAP._f 0Bs[8t}x̓R&MHAmLO`'l?PL+\F[bX{ 8C~`uqU9k{Jc1C6_∏ eϹ fW@cG셍}VRVxk[ƷQ |\=4Xk0nPUs˯XEfP:'de|ʺEg>8,""ɱ0<;c M8 2b$VgOJmlZaýJ&OPM9)zIخ yNvDx=I+q̖\Aw!=:n!zDs|iy|轏J鏍ͩ7z dK7~Ϝ_.p}FK5N̿k젴ru|(0md* `Iؠpw< m@6>>N-emƌ?OXWzRRI{zPt+eA`1=oh:z&o͸9^ OJ3I:&`o4yL%$M2, M7ɴŸsؒ 9MhYZjzOo== &ol#dB0E5U"LyGHr JlʕU1]T3&WiCd$=y9OKZ/ µx+ͭbNd^J(BoX(GybC# &dWKA ,FKFuv=?cG,R%PHZ9Uչ'rXɽCK$, Q{=a&.lnf׎![t+H9#Q'OU!QIگf vp5g f!gv 1`!%P[5r$&dmIa*K?˜)d@tq,'AP O&#kw6l{x|2$O!J\3'O" A^54MѣBFV!n2Z(k8j,a3ɪ/i'I9N4uo̠ FTCVEeamI4- ;z_e"Xш Q;f %MkJ8 lڐn!OC$Z &&[ϻ&&8Ok)\!ƦF%\!p|j7ko]TP3s JblUCaBl*rzZz *ƜrG5uF~xH%U|P:{adF d" 3Mx1̜8U0A.);^y9b1#jO4 [̿ל6=U1yޤBj={;Ga,PW60T&iH.yƑ!]X̞'xڛ_29Yٹ[2coxq,ɯX+;$Pb?PB!c$AʙJ5=b-ڮ#!>dsT U2SƢva M᜾PjFkg5<ӹ˱FOv|b"GǮ$}ԍb,S ifgkC?޳7O>$?y);)O9cf%R_ttiI1v 8i"dmU;SYtkK$Oq}iKdCΡWq*"pXMٟx`;mh;{Tw);,_vJǝJnNmPۄeO Е͒ÓP!TF7xR]-Cu ~C6``TrZ0ٌp+!]5KVßZ'c%9w!CM}a f&F5"V'.4Idrx mrYCh#SɆ;fрmOW^x7xAtyBb$]XZݎ0jXӇ;L`'򯣪o橴ٶuߵ1-kBwxOCFv}j)|΋ S]A}~-BDKǼk"ʼ';Abt*R^bN jK`A<!I F`q9gQ}lrݪ/]ڹ4+X=B p{tf=>4_Z3 P \e{6+ζbH䂪b|_)]Q5W1` Co7oNw{KsM+;Prr]tWT|EVMr.Ũ˧]Os> CEXi&mtFocD.1\ φ㼯76Wݠ_ ^/z~b>ENGĕAL50"Di|OzHr7!(\'*tBHqI{ qA)6=ҷ,o~\M1MkYNG }=Zj' xe`XQmk҉i(F!hdIߟ~v' ͧad?h:JdwŔDBBikU HKjų{ j+t(AF;7Z`((kj= O=d=q݄!Xv$@q=ЂŽƉy}:ղR[+< %K=ȔCOż\5/兀o Y-_y{22O?#,BٍaPIP;872&]z#qzŃ a5S?P:DEn`R2 -eX(0j"5N܎D0;_]*z6u S[b t(&)HbDk}H?#;0δE$"1&,̾3xM!!ȨY;9Om-?)_ȭVλ4~<,9(XnX?Qasq$ :ͨF\;ڰV}9@QV;jpKxƶ>>w=ua9e+\>K?AZn.w~[z* aKJ^=q $6M(MVU+ bp$g 9V QU]g*oG+yX 􆴛QpLadvTG* F?þ7]&ImZSi&ߵU@pSDZuU8.o_p*񲼣}vs++GQ;'-v%jM$08rhdA/NZ2s` .;JPKqfZć#v>GD`d j?&q8">/.7Gi,Vo_ն^`0:mB7*,cpLݜ^~y6@O=줨ݞLc̲B^kH'/L$vWa5ů+|=s헚a5x6F*ڻd ǤC{ٳ_D Ψ&;I0h;AVWYd9t9qAK[KYm\OA]tDchH 1L]$%0&aF+͔PO܇uB bQo&QYc~m߶JCf<9*(Z+:p:f*AyF6Ë" E ;g^ZCvm)OGFT_Rʾw^ԗ:0 PêپYr\ (1 ݏj^Ř|;5YPNO?>3꜠4Oiak/Pe0+ Ԯ?SU&mXf5Ϭ4vƒ}2K=퐪j7Se1}y?NʐE%0ª@0͔׷3@y6wqNnӌ7M(h^q^VR*+l}6ч\DОBÄVfT3s1XG;*#E#D0Ubp :JnFNrη=n4U.<Earvf/ʹnζ2F?Ewr$_`Z١ENw"H[~`_昴y̅IO+;!Co!aC $P!k],C+4@,At{='KlEA;=mz㢮edM*kI;V|S/H6#@vhG[4šۂַļ)#oSg܌ȟ;ÎkW;UdOױW@raIڑo\>\?n!SS|*F/!Pufa}Yh'F|Ѷpи}_ˁԣT7qē=NN0`ٮFZؚq~ Eo5atM _mU姧UlSV9K@@NUP Ԋ}Dј K(o*yLCdg#x'YA@~,e|.@l|+bbbpc.qEatQWpG37p,\p@Nߑs\Y_)oxEc8BvE4;u4h *9`2X;.onWo !t':~Kʠ"|S3isJJU}oYp8S-} z20+ u:LuMB`ݹ}oaP.9C:B\c㇉{eXlh`/vԙsvq8K ɽRTrۡ{[¾g^l J =\ Qtx]JiPNbP 5w12:OtP$u4[x.s99o7kʆOوr+FC`\"vip"ՅYG,iX"&3vWc`,Ws*͢4"}%.Co|ʓϽːd0L񦌚l_TgUҹ@`DM?u.[ˣ'Bo݊(~ )>e5Hm,'8PS5һKWGt/y%독-T1 ܏X HaZNtNx "_*S`Qo%JI֨3ך=P}BOE .[J19'OŽHhYPK{bPF(ͺۆC}UewzOXB'ezit ws\6k-X2c\J`嗹Ot ,M3D*eפ+׶k8(WՌp4 Q-s2>ns*N%uvJ=h<z %u9<=GG|he -޺Tb{Z (ȳhw( as5U"F(ȓx:|Ҫ MmSCg u9d;15]oi] -Z?) S :ci@MLѢeAVbDř:5 Gm{G\M٢ډHl܈4o{vV j +~X[ݣ6|(25f&yiLAmTX#ʻVؗ o w T!~&fMmZ#zvmU/7Оu]D*˥*q51e)\}oKr@yb^1c-C *ǼIs5 x{8V1dI2|\S\yPH<)#|KH1uƢ)ͨ};ө,̈o*CKSΉl:loQz2J&d%i4"JE&!hj.oE4\+G5ɐʽHK SPŃsPH8[i:*f&n >>JnOD/ u, ZпXU8nU[#oJ{<N1E^pjefNwt:SZ;-ÉT#3 \ʁl %JFub9V̤_{v` ga]_j@g.wprܡ^ qY$p,yuD_'}piX`Nxm j>qay8TÛ7ɴ0S4sRW;,nF6&757ֹV6[AZ9>࿧fO I} Za1 -"LfK鼱np~4O+5 =/؟(涁h#v1@5y{U]{:GMn8lN!L0*l%* i9| 7'9IiwZ2]Qay4ca?'#47Ra|^L"p"Ж3WLz>&9NYbkT XW8qΌ:X$?ܜZކxޠe__VmSr\>y"5uhRښ*&e**[k=?p~IC>oۻnų/imc.^%?G 9$]2ŀV [{) |}gIw%h?Ë,] _M#٪gaM5DIMU3m-ℂA!ƀҦQE6}q.'*oXUѶa#FfOI1 8&\sAبvuH?R%ue+W!Ʌť)7s7aAgENk!q]d|:0.W h{ȗԛ!*U:mqšʴa %uq, L#xYvyxZʳt²Wtut)c07y1l.]phC}W|#jM:Vھl,.z_SI6_44 qڡfr.N|(#z~<61}"p[Ɇǻ_]Mn%N(v^$j>rb}YҁJ+ޑ?f:w$E#L/#%.Tdnb~X3Xj2U02#ήt!BFFb:NI$w)'zϰjuT עCFn+xE1WnivWӥ=7 z<~*ֹ3kӁ'M,3 2VxlD'U_7ۀ:9]f۪2CޕZO>[&Y!"msNZ`DX6dδK^0Uy4%"KL2Fw<\jBMA8zl|OGxsOZT:sPg$!&J~$cm[#7A3 ̀=Me<?}7@0.*锬nUʩJM^b!X؃א߂2޼U玬5aӌʷ2b:?CGNV́]NH$1WRYzpoQI]ي3vk#|:rWـDL%\Ӌlw%ӚRULƘOA NȉݜH9?hZeN5VE.FHD?w)V;hNǗ_]DbϮ}4łQ>k7L&~EK>Z#-pBO2ho'aUEEFD.WJe2Aod^Z+SwH G@ n@^EfL\E壹JҫY IizREf+S-ѠfWV%S((zdt$\BI?ڱ `ysU6E`[,!@5 Ɓ;z^uU}ep bdIf]YsIBƲ?r:7ƒCdak]D;SϸF\M} ~ZZ,yOrER+vѵ|T؀:ftrL'~Wƭ:nu\quQ ^h[\dѲ}@8 I]l0/8Z~ȷ956#AEjb׮)Vβ (;?օXXB}z:۰ipAҿ!=Rz!t=й,$7/6"۩QJ23wLI2pa# `I"a=5dTVN}.R$[怿^1@IPms<`?8DF3Cѿ 0sMREB T+ęG7X#;ŨTZY+npvwGk,-ofb1TEstbxU}T 7z:0AͫRr.y3W 0bh^gZp(7g6|T SF^W|QJ뤦0vIbuHN5 D8\ 7lFEV3f @I"e'm^i+Q  ¿+ O u;[nh{W +|f)2UΜqBĺQM y\הbj7[:ĺ`])#d?z"*4Fti#y!zS_-KHB5S=Za)H *"JW苐{pYQE(w:6/܆ q_NPm!_P='4#M` =OAADvP9/_glu+#Z{Ha@(%wAjJ8o Cjuc_=4AqtL5fY݆"S.M5gT&_5W!7gzIY2IEvQpU_Ţ֒|$Cۜ9Б >\{GB[۟:]ܣ)݉aa)~XX)nH#*ǐ7Wͭo$'x&-agtTurk0zv#QtЦr`$7$,nNN5Gdf`4Ja.I?M`Du090 *Un3oh^WS*|ߩy{զk`jD8W9jLu0| Wh:(Tc9 "{*L[pT/hEz!~cJvWن nigU i㏒ fBA~1R:(<"v*axp-Wi>SŕZF.O|z_ 7ΝQO=qJOa'Y[^ z5 c?: -U~pMRhr(^1%$iI,3 ּhl6(Vf~kRE(g9[&[8: <i"KnF]XM|`ETUzI,fsk@hyJ 5.;YzSv3*]M:yFMDuLFW+jzfBqm TF퇱V@Jn\HVJ))i-0bX+3po ñ)DJD >UYs14h84!h%UG7bE~Ql{]p<2y`@k@[MjvKU*7S< 7_pu3ENs+ͮTGC 5d1R I5ae6 PM藞|!7-:8uL!۩dpcjUP'௭)B!61-ؠSA{~CpUųN0$)V%Jy$?@}a@ ?80Zg=ΣUU-ٳiP(zّ">2A )h/H~[: *V#6k< ]M,(;`P@ e0|4^Ţt!87/閍(>?n\.^x@\ W+XS"a 4M>Wh`2)cgN 7L桁Ww;~aᓅl`2ˠͭmUح{?ͼDoCw잃$M_aiA„(Yq*t#"Fs}b ŵv@Np@RPhd'+̃y@gͯ^ %.py`8oSG<A /+*V]"j˽g-Gyз{+IOgw=ɯ`$zT)vR^jlw{)c쁇38JvO13iLky|FiMюK\ -&/,U +,F2 @/`|%mŘ {& = ZDRiSY VpݱH-,ƤWn;r}[8ߍS#Qir 2N[GRr])ܗyV/QG$ #kN99 YWkQP̘$U!]$(h+=K r;V;n Yd[m!WX tghu "jp" z׺Y8-t;;Pk q`GY2HGƺ]$6C|A`" -~fdK Dp0y˲Lci۳V?!sYt,r2*7@;-Q K}PT'O IK6͗~l"(5}sLK,D):OfI9sʸCI-d]rL6g7Ynε{?k@5RS=8ә?z`)ρͿ+UH fqnrR-^`&$gYyTc2G1|XvPSS/6b K}jXb~l`ӻ+z]|81|Lȷjfij:3Elt#(G(f5ְyZc=σIn$'N3Pxľ5mn]Gsꈃ44V3&VtHliZmʊ0ٗ.<Z=v5g L,5tE2 ;$cy _eٷUâ+@S;˫ܬ^ј,,pwtg9}''$fK|&Glx&xCB7thfzϴdQyD=6 TmWBp/޶lO,N%|ME8[7FP5joJ5QH5@ ϏEÂ]xy~^T43B I46&X|aaWB#pJT[+ π_6?FS ۡeYepk[ۤRk ~)^5a<3X:m)4pe#VB ?&]@ˉ8:Zw-t~nW%USyذi#,QP/x%ۺ'La"[s';>i4_3KlB[SHuԄ{vʬ%^#c4顨YY=coS sשMB( A)NYRy868 !<ӭ@aãr ;@E/5_!Z: ?U?Pfe}뻮-3peuK1h*#%4s+ܘvS㡎<" Z 7 SrZFl[gCm _iz`QRm[~1!B}r>$3'i,I^հҟ- `e&tO!7#C=Wߢ>3P/c]$Z2P^r5mU99gU5 2QHQD^yo4cD*![x teXx(h+r*IV=mCl.j"k5xc7w|>1hF0ZIHZ,C6JgLMDu.I2pM[7[L "kO *iIE]4(]S +uY~&!*gpO-ȝEVH/JlKiXL OEeW0i kz*NlNru.:JqͯF%<>3GHq@#Ÿ2rv%*g()찆q1) =+ 7)Z6e&z ΋N |"mT3|kH/Vc;p-#-犎5Hr%ĄZm}"+CֽcgVyJTXxh>[#^X13Ap7ćKMM?֣q.ԁ̆a ֠Qu)> ؐH 3IQ&ゟmfQ GBK߸ 4p)% O5#T!ms;fRTny:z@\Иs~"ie7q+p$v+I/vȋy>O+6#=w$ix('y$ m٥6KqਰG9O琯JleaUa (Rr 76 D_dq[f7?%~QWwB_o 䎘L>)&h%)١b6X3/ Y0eZeudeZ%/,q ܀q;6㑡_k~.G^unFvc`ϞQw=LЗi;SȬXQw:sm\_d0ہb/וVA?كv. =@Q+ ZS e;1Md )[ 8v S k6b* ZŨQNG6~.AK}v~q`a&>e  y n>B' luo,ɛ;Tvx4lv~Ie >8q|h1Ilt^:ěW"l mϞܨ&FSɇPoLOMh?րfLUe򜡇;vG<ɜ*o`MgG}WŶ YxUnj4L5C2<Պ$g:kn[;Fѷ;zlosDF/ ǚ4_<?*׈e-+k>m[ՍeRO0B2M;o|Wƣ?[[~ʂi&;=x],Hq-Td̞dun1(8h> %٠CAU̅Eϟ[&!6/݌lʄu/$Т"aQ ^tEyujiak :hйFi8#@g ˜]0!yۼ-{"Ӳ~,oZLDL*쀪֟OjܴIy]P}Qԏ@AAEgXKB07eir{7f+J޴*y+',h~@-S? GjP}/A 9 &1~h|=fIv+qݰyбc8ߓbpas&jxkG\25̦SXc04-ƼG)w5ZC\a' J%'Qe-,ܾ>)PϜrra4DP>^}h[d$Vi/u&vSe ~C X18AI=̞G9Յ~DXLԤ?x*ɈL\|W4%,Qdɳ:`|egLSf۰B[}ẑz/:}CR=|+LH7q9gxJ^ R>yo'' =I}/gV(S>UĻH9H\U^,?JJh%7K]:Bׄgd?_WW9cBSHOPgRZ@#4U:a1)E󩓠7I0brgš[VRg{5cL1f,jjkJnJbRE(z_\8p9MZ&&wK_6J6K6(d["15zkҚy&T|;`.GWI^1*XCzݟV'\1o]dB5~kdܸE" sh!v5R6Syh+k0].w -!yܽJRp.E>T+MtN4gh~ mF=1;t}bp ;TRd'm~tl)Ukxˣ:OP߆I k@Uپ.tqo O)mE}p+IJ.H 9A]Fkoq,QY<9a s\OL; ^bCEzV6DhƳQ0E 霡7OsJ5/PLk?ߖXvM#WCyx?.ʤtd 2m.)xSn%LϷUUV[O'~@jB@ GK"L*q%8YG,ۋ"xL57᥎z*|BKW%Ռo,v2/.KcfOMvDcA}/Pruy*eb/vB|e xW7":{>L c&þxDw_m09{zͫp\] +cΕyn =4k0j6nWht%pu 3hq\䜴mqNQF7b^wwO%<)NNTpt8Lnq> iIytSY:ɳ,DK 6;0?7Rz`sYG((qSA}=(X_Ǒ6NZnUӆ]іr~)!XM)ou\ Ɠ>$. ׶uBDt(+M{{jC0rH%AG_Z̍h&`#͕kѕX&I d c=t 6cMgs<7J4|C c ~\4ӕ\:L`Zs5D!moհUh4PyO%&[&flO݊/݁cVl%#Id̈CQ|&6>'u 3Cܡd%;W>@()]ڒI^9+jU5'ŽZRH8ō2WС\N`o&׳hJH0ZGz(f 24.jn$qWhe]z JpK8i?AG˨4uœȨs['j?,:*wz|9цwId[DEEDTݫgm#"\Ӧ IhW 4_ NtѸHF3ʃEL~YH<%tv|Ȉo<!UAsǞ ig+9?xSwBPv̱8σ(G['@u&{7 ' tIAu꤄|w2J:"lHʓTs[ZG4ߴW>)v*(m7{z|Y"tUڻA,JQG}qx3@6`*SU@':t[ ;ma,Gj:4ܖC[:b^b #)x`B!QӋi&ߨQNJcSQ)R_&Fp[)|4T܂I{VY\rh-77*Ik-T?c4lCþR:e&J5 %6[52J^V?zFx:4XETtMOĎ{skci$ꍆNQc9OMsD:.CE@۸8NϳW2D+?5hJzTos q~T=7$Ğ ̼@< hBNTpU*bG\PSe!4DK C~ 5TMAy&7'&Yc[ >NrYEl-^pfE&; ѡ^}--C㣃~ {د~-s~u9_#ՊQIgZ.%2ҩ;x<.=ОO]z ppAB2ٔ.ց$\77+;hr_[ 3u*R;^%O@\D^a~ ]ߋǩ9-TS$OEMS.DS '\ׅLG1f+a bu00>\T7KK V8e# e#6ٛ4%}7ںF@C]1I \W(=[RWDO4t]0 bH{hJsUy?Z_R 6wYAvmO|Z~!EŦ9 UguZd&w}`cZh967+-7M޿xĥ=u3HkGҗ[R:%aZҽP Q7[xWeFi:ڲ>ij-V !f~uS]/vKW_ȋErj7UͫMA]o6(NWծb 78 5dcY;D^}YNy1X˯moF(豥n -#A9*'4(izPY)keXk`khȳ*߆٘Sj:DZLե^cf^(+RzAӶNNޔUj uPky~= 4FDИmGù\ECȰi bNYwP<5[ ҎL* <(D%Ͽ}ACbT7D%,RmudʄLMLRXU^L"VO\]X@m9 '‚sA R%}˕:3FDCUMa ĉ)],ߍX)8kx6>jܵ~p k9 hgwca|wȱוT!x>Y٢]a(%Yd$\6Bv{ J Zk.5r rZeÙ(&Zrd~Jh8HQ{I+Ō`㺙 JXd'NK$bz׺;zbP%"Pe=P/Ol7yY~;&_SiX4Ds O2-@?W;--^js =RF|b4n~NLJ7^ݾm(x,{9б2y0" (6͛֜GYbd dF5WwD]]P-OٞvܨDOUR17`J83r|sz17|c#`_SXT_7&L (&MU{K`Wh[XZuws>)N NXҀb'M6I.nV 5XbU۷hr7He1]VGtQ=d^N`tˠcDQ H# 1h]瘄6B;xλ~( NK&%\;}LA粯+u44$ٌy M}0k)3 Kn9Щ {@^VMkg` Nxɲxٱ&%w*a^ ]Ij+oPc˱F_^6KfHRJq0K %fGNb(Cdu=mQgק+ngȈɆqܡw Fc` 5hEТDt|a7*Gu.W*bįQVZɴ:vĄ\$9LN@Vo_e=%Nz=~?+۱}Gޙx xp1SaoND.=y}$//(F%{("-9;ugҲ6&GCH9'p_G7>M;{]$b%M4KگsZD19.SR)`rTn)PUrj;n0͙ )򉎩,z&L?]G0{Xқ1^hPWHbLRHq%I77IHmI" 6VWUtѕB@`]L1!YhٞDAR}j(ЍӮylH%U{c%m1 JՊoS[_0""d9* uc6&;b$hީg|jV 5Z /t̿fm(3%T^IWȱć/I|,dX!2Ϩ 龨r.HprF9_gjY]Wt,Oo~rMb$fQma7~~ -ڈhŽ,ՕڏuNRS*YoCf޺C9Xccүcb09pQ9:c<.a#mzfp妣{.ylz/^Ŕ_A-O9«#vz`%@+j-aKYCn%&ΚH;Ԥq|{_\z+@b xYjWKIJ-:$QccBZ0Su%}0iL8;!7j@,pnFK% rp匏1tTT.L,X`(ooHќ0 XA3&W 4߆;07S вvŠ&ayE״\]՝٢@Ɗ"B+6+#33pJY^s cH1Ӫ!}ΐOkȽKjB?7 Z7rxڍ-C%~2[=>;ULyCa6AUcxJtS5\#64v t#rۼIwȉ%:2_ep(..(J鬒 yq|R_GGмh$PR#B+)LuCZ*zpU VөTc8$yRݪޖPJ7$Z.!*ȑ4 2B#a8|]gHY?J ewikB[>ev, W 6#:K'Z>5)& ϵu@TX)ބAY!„KG(uz倈dr{2ZXq~4ISlBkȞꔪq|P!a- @=N7|N_MCV[q |`orᔡ]PG87fȰ'a`ˮ>5HY$+/4y>]{βfZ[!vk [:]O7 -Ҏq_rPZئO/ )KI /8goI$oeU.kYeRep 8 b+Ǡjج FZ(W?K^(Օlzb^{Jd D{唡w(8蘥[gH@dEީ}mwu*~뒕]~G>^o+8A$'w~b&:Kx+O1UwC}Sdy|meWCJ."<Ҿ@){rL"`M't|[Cx%ݢJ<>4[jW|sYt0=0O#X6'ɭ}dS0CYgG;.>>j=k߇䧦|1F )\\֔ ɚ^h p-u~v~Kɵ"БO`rXQ|@i/W5RBQ{b_;Tʡ EXqvXc7d'=oCW \(3~3N^!~@xf-!17QʸM( @c}[;Н,^00; q!Bv/s]: z{H }nfWn%n|ns;| 梮2IR|zV*dn?M)đ/sVt$"+5|^vkWMHxm-;&Qh6n+ -Ca9-@(ZgVtUΖk21Π6'pjK6Î$;=Z'.>lM]ciN($c&/Tm_ ͵KGG_FuW+thHX}+b;\sݬk3WL0aL uPWy{SS9W0siBPfa7M[ʀ[FL!l/~.LR'\dE8)kKoJ`ӾISI;b ]x5̵[1ĚVUL7,, IBoL>Ԭ,ҢFɧha~UVXYfsGEiaZ* 0 e1fDG,5;w6XW'q Fm$t0_(82>qa:e`a㯔p4 !K5SCHtC.!xs0j&zGL"Ob&ջrt>(ϻ`MwKmi3֬%a<^ߟnG` y+2ᇗv.nr@gzu-b~/ dDcwjGPXvR-bb8l!uRISrAn>x3b)[6:i^չR ~ڶeVD_2>K}JM7[TŹ`ٴꎀ=kYW`źf)qA-m!k/׃s>t/c@K쫽-ϗ i&NZ`6ZL)Ey`Y5;vjpjM@^&u쑗)VLbNQNjd-΢^I)(#u&ߒ0-yߘM i>OvL^Td8bv,4$&!Ԃb&wһR)L`klhj5oG4@uTDֿAr 962<ȍs]n05t_֚Cpa6z.8QebݱMxLˣ_Vn^iA1*Շo߄{uy æ]] ,03(RO\L!Ģ}{I5A=g.ցK3i$O^`XRǞUIT"b\BĶ%qWO! ) #ӈșԍNoS,8 ~6Mt{؃=$ʴSQ8Q0H ]l-YW;eO떂X'ɵcfDMKKj.2?^$<i> Z`>q28&rj͉{uuyoi7N%S"9) #Na</2Nxy8D VH. N&dD^2o5unJR,t)2sΕsRg}/s XƇS#W~{?z'r/ !1<Ыzqh46;4e% Mjjb-zM?:FoPeofY+4wn=$`Ƞ28}xI ^oI>{z^iH=?lņCQ{4_ OILK$nX2%7#=! [A1Ʊd[3q MV2a{ feYpa&DAf9U:]{w ,(܌Ϗ?0H'1,WDS#DF 24a&݋d΢94َ3p_[BO;UdJ >'K 3S\< 4ӪԬb#ޡE˩ *jcfC`feg,/((Rpb2N1b08G\фV2>vGpG:ç<^6H~tܵ5-+Qeg6P\shHe@ziq믁4}f"}pC,DC,Jd1Y^c?Ɛ^};Y=S?m>S7ppzS;ƱYpɜ8X)x*~I@'N'\d93ބX#UOL]d/c%|Eg8\>UeNg[G Vy \ͅW>1P$Ks=P-Bel,B]Ek_kj+oF%Zr&ՒH'8ap9=Tr Z+6aEM|mRO[pv/Gh4g1O Kgm ie29}Nxy-WvEB r7[0zgdh:#<8NvdȠFHBEIή }:-iKMz3 |d wC,P/a|PW8\tW|ߜ  6vSfVCt:>>eԤF688R8ȫf1x%k]}ۓɓyo r(LSX8ӫ~qA|CK6κ8wg%%%.PC;.>5 q}`pk~XN/ZxCRx?$LE߇O@lT$y˝#6m}vHg9́SϥΔROE"1C"Kί2(]e~WGHght( @:ЬN<|=4Zb%@̹6tL6[?2 2 VYWh }to9Rj)N@919hbŕ&Svi /nblu9mOD Ѣv uP޳,>)$LJߏY :KKwA$rQ^C9SJġC'43gdsnf>L=Y ]VZr(pCd6V1N`g') dђJH;DsJm3?}̞.9y74 nMOcٌ]vyQʁC4mSܣ$,6CX̙p9bOg{4\]6FMHQ;hZ予qX>?M`ߙ9QaeQQYAy*c#'d`l[CͲfG4Q3dzI<-$)\u… ػ0W̾@#9PpGP'׉2۞jB$d@nG]|ܡMgX^-J{*YJ>qH2k I6xԇo3>pLa8~+6"B ,HT$L!4nw?Gd\Xw[ 4vCHQؙ[g?@>sd NQ>sR_@؈dw5lSzLڑÑm~b:F1yW:\01?.7o?eZrFC -művwJ18SVqTEE>Io\(8ʝ+ Ђ曉Z޸XOD$q)؟82cm܊G)D|vpL\bM1Sj CѯBpSwb=]]炎L @d&4b*yAQd_{GMlM0ڴh/[:Z}6Si:R0q\ޅj㟴C|V_>XTYnj'Nn=%A10w 0Eù FˌObqʢj5\G8^P!I)\]ͺǩz.A8IX^ukypgkJBƧFəѣOC,𧗤b w7jP]fO}7 g&#E_҃=ղ+rm\Jn']jC3:&G".Lؘj !8]ab k_/k}E 0Tކzqd,j}\(Ҁ?JjphFuU%wOݖĆQQvpOR5Ie$ $+ڗeAygƻMxoߴِ @۳S") MemWꟽ\jΫ`:ꦈI`?rl1hIDpz]9uK`a8ut.q僷MIcB/wU Pmt` UUK힠#dGKnd\/!'OEi|X"w&{G**Jt5VԦ#ҷ4Bw@s.*I<٩(t+1^d\ZN*#[KFzf(ESk%_Jt.)S55Cn`?^u_0o3 ٷGٱMVctBK&h#㙔mMa€埩^ N壣&<@DfTb8s7QY LR;0ܗ@ Sj;h=APv w;R3'"%QH# 4ِ'i/PܰL&\9Sn[c$ԓ f?#̋n{.:u|)㽛&4'42kwU@Ӛ"Bp X`^Qif,5wJ\,A0[[fyi~{*j*+mig"Re٣PQI/|H22''5QQFN% W*;jLU])cYưDs(+mtM1$I 8FBr!ځx ziOt#T+ Vxu6;ۤWT-k)c[s7㬁.ϖ< ؍_;tIhQEu/&H~e1 W7(֬>\k} Xt,54g-DA 5|>l[ڞ]p#^}؃N 5|k0.q4W~#'!r4tn*l 8V@Ɛp"kpb҉$ |:p2Z+|(Sx`7vver )^?,0P;}8rFښ 8* L `PFN[Le"6!OAo  /޹/c 8[ y8&Գ_Wͻ6q33ٖ^>4zpY[;P{W= -ܪ2}G!"+;5h5rnku<-hbDFF[fr)Q2 Gn1\aԟ# L.SȲ͹*7By"1Y5xd* EڨJ8M%?+r'ay!)]&I: *7L|ᔎ2P5zB`3zGbFC:Eo{=nhVLa)p/}R" >ay"+Չ.AC9t3$I#Jl(p-BJ1. ;w#8-b~N6`޽~u CGk!e5Tٹ2*/vgy0"b%dBm3zR ?U?UODHC&A(cg8DW_L#ݜzee v'ZD!$Y`ÚꃗL'WryeZDq*A 'O'sѣ2hG/F[޹eQ1Y)?+ x_ G qrE+5Y^>B G0R1}~NSK1Q` #Ҧ/tEP G'ݥ+)(2Phb.U;N;y—zORHv8| {TѢ~|h/Mt9ꒉMcPVl%D]8d'h:=hD*OWĎHހ;ryD_UuѾ1#,-ub6oj]$UFn\y j UHGx}ΉYUjס)ꢆ_>u"W@0H "uwe#j@VQש_mes-H ]蒎nOGF{dA"z] !tɑ[EeL#]~6V&C:`q~cimI31`p;^g_cL`$-UkK6&mI,cGmxBV+T ]BomfؗI`͊@Os)͕&jcYWe+ҏ2ȁP{N/H'@B®Ȝbqj8|3blS y9NLs|&iN~ֳY;UF [.@=fV:[r)Ruoq%6 0b9سĊbB]_]{š 5HpR DwJMPL{*E|r |ÎAJ( \+zynčؚw Ǖԁ^6&b'!ݮ'̪cQ܉Nc+n4Η$E*~d J ?+NNܤ˜%`>j3̺Es.CPLr'g=̝jJY1 ;zLJ肰Z'q>o%Ԇ巺(5;xbM;_kS9HUԆ<BdbuJc!4kx@Si#3X|oC̺ S ʦGdv7(5L=xCfS3spZ̲YC1]9gx\^HF|']Y#/c-}bgS6wI ؞X 5bC^RǕG49?kb_۶@&^U; IfGJ5fZEL/+7S-/gLE{zh >q6~ XZEd.D zy Y%XA>p̣iTi.ވf::CO r.SQ+BG{h DG5zT˜ ,\p6KчolļBwߕH_D)TdCOs,8:x,8canP;zj>:Ŵ:rF`b?e@z$o7W.%ndߒaE&lHm<ݦN=u(BҪ%qK7C J=N,d0a 5bldK"3aΒ!' u3v~trm,)c;S4UOMUB8sar:{?T4 &*V5_gWpP(Ɨ&9^aw98Adz (0Z jn&s.jG<ĤV3 T^;|lU~u 念3/cOi_і`PzSLy!m'ih[2iQΆ:&fcLu*@.{<U23 tx5ɑ㷃\fl\f}y 颳#_6S`u" uiz.%#&|>WhI) Vf˯3:';iا풯tΥlC@vc[J5yP8;;k] u6鹵65H5}&FȘEH!J&K^l-3$:~ Β ,m r=a,|{Z!9>NiT@$ALJ3fRN8>+cMPI0U*yCyw .b'W|T 21T,5ĭk>Jk:tc),А.> [w:Wt(qej X%߂֦>c `0U0<~q¥f(\\Ӧ",&S@1v'sS V/_{vc|ďy`h0c]-~'ޡM"' Ddx`v}`GO@QTKHP۳0Sd5 Ɖ-Q*:?+9 d˽1h"n! T\qO_y4$i]cS#zl.հ~n/!8it@"ϢFD#׋ ,>͑ab9tԦ E:1*#ǕD낄9dωp2l!Az;MI3PuUh?]"B;>JMC|_JVI2d&}{j{GrNA /Lkl{n\JRBh%.}EiY+dz b-RfJ9={֗'crb%q͊Es:E i},IiP(nPOྛ%H(6KW#21OBvsQp ͕]!ԁ6L=@G8Q`xԒGB3@_/m1~׿sj_OEp<_8bN9` U<$# X]c',C~=L`>ߜArc,rv[y`¡?Ob]ht=Q(|^y}{l8:<NɡK*ʎE6}c1l}z&S(45=NLv:(r":`6z}xaZٶj^0z=]),_nN7t= =N:Ї jZ=.όOJ EoԮVk*O;.,w=f|rS˧J3>F\st_=HE{j9mߚH vyɪ4Gt?_ :/Hqț,ZYMe$h 1t)BqU(Sk]ʣZ B0}&4(LDɹb y &7XtfQA^>ܾοHWۛ.]\4xTbv6M|yJPuG%u]k2y@wĭ Eک`_ͳ^ȣ1$LUC hrWӘ~Qݦbv/ ZTUM8H7-A`Sc<Դ6_49&o# 6F8ZL6XQ@Ij͉Ӯo!!J| ],/4C ~eCS:Dz:D3R!jNaP}Md{[4;=?Q>E':,!39pDJUrb✢v(:]./O+4Khfi1Y'd(@}5@fh;kTS$X츯؜gĕO]? r ]?!1y1mFwGFIJ4VO$6.QFpiЪ7v8!ϡ6k3V"C8羉y_LE&29wIxGw9|ؘ %DxM?!ОӵÛ3.d^YɼWXҠa8ϼ4qW;>uBp\U\we+G1{JYl)o;m *;M;梴78g}E`M| /adG4Md~khYUrm[C^3_T3k(s:Uk /[N+B?Nv0p\(Ҟ?yZ:6y'ҕDB@#fLY2.|$rm cJwR-/LݾmkuM:ӵbi7?zE48e*kmp*}הN\BksP5Kvj$H{T>JAܕ'] a[hv6wCw~Q:Խ+*PC)`oW7kP>;9j' 8GΡ)1iyisV\@ ZQڄ2 $c 9qQC!csPۤ- o6" gNأok֓})-,%jsGIeMèmuq[ ξ~ N|"nuկdP0`湖4Ec/j-EiLz~A}7x{ 2B!s1FXuМ}-"lJ3sR@LtY2TOt<8HՁLXkۍX4,Mo4Vȓ%p (}%+MR1'Jb-yv^uSNvkrʈ>Eshi.jǗ{M{/;Iq'.ƍ^w$ .v-|:ǣ@*JI㨈ޅѪE?]DL ^$en3EE:5#Ji`Q,`<h|ߟZ3Icr_\3{*t.u܋p4bD #꪿Dpf0Ux&5C%AeTVJI_5Nr"9 8)OCz j*:H/LV+RziE%-S@A*_hݲdCvLǶXdGFƯ(.QL#X"q*ba\RtosH%FjdNMW"z`o_T&ESiLFzʥ>MixaYpSx0Gxf8Hu$!=b˯&?<kX,I Pz5Aju6IO0eEs=V(4*p6wJrSf%Bky\e5VId"JGFdŒq67D*x,ۉo;OcsGHʰAUU'L{XEJ\d#wW{zlo$.QcC4@PM($ }qʷ+[dƂ]Phj&4[/f| *j0}u= Mn I."̲ BYiXGLDpQ^3n|!ź4CRҋvr 31UGj`*†EXAJyl,xMtˆo6!R=-!973iܮˆxfHxEbL䊚m,DkJx+fi?x٧&xm{IhJ&X"^jk$6BɒfD^Ӱ&$')6:(!oj*r&TpD{#Ao2]]@O\JxlWoKTjG0%ثKܳ~іۻ)]֭LPc^s^} D=G8}鉀Ӥxy8šx$dcLmuL]> saO|vT8!زVz&/*h (eqɦ)ϯyp>ek_[` ,4oKKU=l"Ԫ+uEsY}q[/c݌f-R%hNaJj+drQW㌯W. pqTp\HP%PmܕSH.( ghL{GJQq&A 0V熔:?$,:޼`;6$ԭ̽{))H4GN+-TKQ'84H;7'* DOAR`ug"y ($GAhT _ޤ 5e,8s+'nzDb%8~ .ɴ/H%E_ "v"z[zN06#>)i1HC% j.qdhi߄O|)`x`ˤ*Sg\f42’z¯ot?P*[Ԏ Pdz^ܦUK #B.-,yp<,cҶ 0:g(_8e٭}528W#|4;!T@@ta/$gcr )̮zH%s+aQY]W.j )W(z쪴˷ )Moc+WtNh ̎lfg=pLvvT+W|j7+C{662*v śys"yj[h}K+@ xnq?Z?8Ȁ"+IfyQ23AE8-B;#'OǾطº VbU]u\O]"NlY"^^ff46z{(;,4ia<Չ0(;4|*Pի2:W_7=H>PlPk_" n´#;^Y^ߠ1:]ucJ$1^s&z x(L6} { "H-I&%M@0$$ut)T&>Sx\\[6q oDys[AGX;LK~n/ o6>v;6XnHΟgo Jj %,~cJ݆h&czj"hOtCsKɖsVxj^'g3`mm7k| #cqϠ5$w!O&d*}ĉݢ\6]pbϯ}j$7b @wՋX=`>@!\~`-E1L*l" K|2a;H ]*=XmHD_Hې[=N߯D`Ǐ@3bt3$`iE*6Ꚛ|"X3;'"Bm߽9]ebJ#w#Gv}q#t ?( ]G:j+uЃb $rWxXۛr(rffYCxU*$IXYFiQ*%M v&ii#pZn}: ?([[ p^&\BΛL=sg8x[W'\Ln{0_J~nb )_0vjL!dɀON r:?~xvQa]=f꺕Ǟ_ŚioFBm13(}+?8h.TvlN#'lGn0">ܧH)=u%Ȃ+H@XR; O~Ks)]9d K _J FTXS1BFd0`|Ԉ-fL f,gv=2uO?4 v>cUG"^fauE&'ީ|| H$IL$/]bYDE/Ο]-zo+ ^M a"B=j|Nz9\́ظ?f};> inDžpRGͅ\UM&_0s?(JjTމotL*[2\CLw .n,xT}lRsܽ6e˟c#֯Pߎ0/'o/'O^9r ~@ 3H1;6uC5gGkpyvيĉ\i8U5Σ)w1cvTc/ֲ̉+%isl MBۍw Z%o7/Ry°lNJJ2&ܿ8,?[$zݧ?QƂ#DI~hAS8yXs|KcgK aç@3ȸ# 9+8x˾S,l&ZTeDըTu;&8N㡸WTq 2ҡ20Xu?V}ujNݛ)o|fP>ڤuO 7I}-Eq(Ga:]kTo"l\!}OR* зGH[ ؝)3+錏K=_ofv,HY,uG;.FiYo˴WZj4)wQE7JCi͠;bpe;ȝ@>gvɨ_85lLfg)1E|=AdfE:s'# \j D=!Jc29:|hHK,?|| {ica54A:dҚoiѶm Q23'(daE&d_|E-{Cekѻ>9dw##uS1X矰n".cdaQbM4>ݺ:)"t>fy\VP;p,w^2jif-,WwQ|?`0 Hٶ۷Cm9&fq9귱eG 1 -?ca J&L5VFPNQ?9f'W .5},UG) ha=Pd/; xޙ8~0Bih?7 ~YǕAPA$^1+*ᔶՌk^;+3m;Dkr$dZEo$Ovo~scj8ޥ:u? gb9T 5JX/hCne3ZbE45G+[D`"*$VeMJb[&=j֬U)3k 7$g;AӂVF1E?/cj* :=y5"J;H:߿ns^688BBP>xй$ :#|*fIhx`iFr 4r9M攈Q."Zu!iL&x+ZlF8 빰<-i{+g_Hi &銨 N Y B1[y*!@>f4y<u-F)RaaHliCm9GBLJϰ|i+qƊec,6\;A£Ңزx-anFأQѣdMςNSG"9+8#$Egghȫv-y`m 쥋dkSdU"A~P9c-X1[$^?srb蘍o\Q뛁^CƂM~(Z^q>LP9B0nw/BChش~o dU"nF FHW@l3zie dw HCXճ6&ٸbo;c\Qiw5fD]$CG-v /XW=PcH &6!ދSt V:)[/j ;TOelM_2d~izh]dn$Xe]. F!hkA#Gh Q*ADʅ[hkk%Y' u&I|' [ش?"?921 +x7_Zǯ~& UC,6Ÿ#;A;J.ʯz2}A2NHG'niQ)h[O#%UD vcsW<^tk(J9Q\[p< x\s2o7]prަoN*C4b[Ŵ-0:Mcw(:\7ag|Ì /u :*{A ET<@x$FfnYq~`7# m %!4YerN0[xp"s9k ڈԖt 8I9&Z3K/aH?_kpʛv Y$xQhER5TWŃL*-5'[$#"[Ą;Aێ YCrn1 hHX>g݂AAj+Z[xm<9wj5{l"N M}GY79R6][ܡ= 8'/DNxFSyKB|3ꎱ!te:JbPiT/rU"N?)]%A$)O-ogBo`k1 W! jFОRDM)}wP1߆c0/Z o nS{k-[ong '1cԯk ;o6sh1ʄ T~kcrl؏1B:x]u> Pu[2nX^/\y_&2}نAVuLNހ;GRj%O3 ~ZjOXnEk(pٳ4K*ZOlZ5_”Vw@1Az6D$w!'a.v-įֿ1 R#xv>qZ[ v΅k~fsz5VJ; )%Rif#+ /˲i\RpS@e`#]I[&ԣI9*7zڸ_'uY$E=!k3Z{&"v:/J]+D.)%Wr2e׀=gN:G!J?Wjnj Qu{AwUh|Vbt AO~pҁ gu\b([b!\]mE]-Zp*5 Pnvr3ک ݾ/%Z: I$G4XZ4? BZaܒ,~\^|&|0Z *0̀ %( n!'POZ&_Mf8c!['kπ㑽lI@v=!# &KxAmpDFE\gpMɾi/;4&}J;XEuLuJlQuV^oMyRx:?N1%lEi3mةf@krH^ 45oYsv0x.;Kuf֢rsW{a[̜[IlN3; }O<(a' H{H# p#uFő&*5/,FjD>}6|F0u}֔8CFBPju\x3#it'ioνOX_6GHQ;%GU -lf*_vJ~/6A)RgYb gF |tKGk$U_Q0)+/VAy"u;x[Z|#d/zdwK, U"2D}?VI@ C4v +3lEtjJ]կ|wড়"EM4P^Y RݚXǍ&"Ty(GK62|m%qíh.iT2'T,g>QoQ*~m/7m_*iۃo(.E`&hMhrc/ ŧei:3]W ]hD_yߑJzPi,ަj+V)zC#z+z &}eI!E@4n *A :⡡/1j#Y]a ͱx$HbMn?$k[gmqKxwV= ;K/.wM6,;aQ.RҀؑ) CL{~lgg=RۼejplM=&2ά+bڹqv]|#E4kcrN .'%n!0xK{UBͭ#/Juxԕ kN#hg;"o`kT<'~ 0zV/vE߀Nir@=5wv@ M 3WMλR W'>žbDܻ%/[[POV[Ӡy^EŲ+ʞB$^t'':S% 6NjfV0i7Hݲb8R؍Zj1QjFnz'YhD5=( K #gƇmRmN4c '%YTkbSk&UTӜk]60mI~*jpcu/-R3xv_|%*%!:5˷|cwҟ^:RnLDT+&J_S쭾4p*t NNyiv8h00;dB!W٥DE4xWſuhr\ 3B~8ܽ9]G 9 ?dlSsG)) mB$V?OՊ*mWCJP. u, 4[\@RcJ=t"P|(xǨ Hg1?%tkNga|KA7 _EV tu9 e帯ǧ∛w߷%Jk̿t "Bpo#wZ2LM>};eHk#,/i|QKlebpsL4hrPrkNzeILئ6_AQK[Жd4*:7hY8sO% ?RZ\f煮SB`e);ݰF9`vE.>x.DjNhD„e0t[u0?xH:"bf4-z0{JwW=u)R4J˱L$> R|bF?X aCHjӸ/Kae\A!v_1R{)QgKYdfţs(5?"Of p.]Nc8]؋Bڟ/50MW5pF;p%o% ΗJ .1'_+ѧj .d뜑H6h?RwGS 'ƅ 5d$I$)UGi3Xܷ6*Oːr{5v?,ε>eUg(+41X)bPP".0O"_ءke|hlLlG#kxk dm'v\#su0$Ȁ"pAih1S!; Iiaoٹx.-tH{XxN0>gU0A-,0GϮ eqEh|A%gjoEF1)1[;Luak0[ԣ҇+OYdÛ]mr.׸0}F6m wa5eWc]8 mG{CVP4]Ώuh~p)\, \v)s1^ 5quG(Y?h\tuV) bjZpo Zf/2@xn  K3I1H3~"ޢ=NAuyZ{K|{*mu>JC˩^Nr/kz>=)3z(3A<"hD1k/uBݰ(׌2M[8>Pإ\XҌ]K9YQ<.ĝx̕+wf"ސVuQ4 +P=Y7enk0D8mA@^b1BJR`JvqIi4O OTYWuLM;̰E;4;Ua~4=>w"M ?\' iʼaG@8؟΂ Xܳy}꫄ :u ]ޏ[G(aMFMM8+XV[bI`&Gv/ kw 0HTmv,`B̛߁q\Oa/P}[ X 48.F*$IFNM k x7eYͩ6]#qU.`Gl{Xw^?Q1ꖨՅtI(y/iuj{{nc (]l[ G65$gІ8oq,mx`x$YH*&&Ua9&hELy=}-ȁB[-JO^n\ݙx2Wc V,2CCͺ>bO-ZtC\9bh&sxd|ck5@F6(S'ÏMrV+% ClZ0K▼I&u ejiAvDWi#HLM.t %]bG1T/M\F gGTBJj,GzHHTqmG+m?'c>;F6DHeUJD]046̓C_CM a>W3+p?ok]k^*ߋB~d3.{nfig 2l+ơu @ɑXP"l֒5f"TT%=1E2V2[,HO^'=,ż|KY75egwr 3]K8n^VoKtn/7w>7rOu! p=ױ5j)NmU+beX…*}ƨ`tG. stsH%[ŭě[ݯ{/9ncz ?^;9LfoidlP' (r,wl}z5ZPs##ٗ6u)~Bdk = HiZ;ؒ'VSqwhvX0h/$5; Ƞ%24UҺCHpNK2$9ELcv@}$H:#Tx} }O;XD_6{(ED)-x:W\ %H6}-AQ>J U j "IEP 5ۄ2'y$)NJB]+T+)]]N~E'\0' hWhΎ:;֊Lii9hs'F8 '%syb}{39F67CSOK`-{S]U@B#=+\qi_]%<m)E/k:'Q+wG{]kP }I:T$֔.5!tˋ$b3l;t*uLU*`pԷ7HCmJw\E_y\omt> fۜխ=<޵2MӠD``omw|(`k]˞>dd%0At& _sS|)d^o)d1`twQ;[N8- 28le݄:h%'%~Di0ZKn〞,h&xH |`1Oc0*KRT0~y;6լt`~d14͠I%~-j \]G#ŨhJۦsZYb؋PNoVm0 ;n9;HE9dճluQu|Q0-2}- V x,8Hb9EWHmpf^ۂطʶ[^@*DLUvous; ;*m3H`n~`Bc_{QPI9ƔwK]!ްRNvE riD 9 b-2Q-B 8 cJ !J">"4iaر3pF %& W B VoOૢʛ=lt_6L5#7/ŵ8rzC +WԭÃ-i{ְ=%*PQ$HY7lFIrMgJE~?H^m^Ey"X<{h#"/~XS{gD}_tz"{S^iQ1Y $huFL F~ PS}VFWS;b2X{q`mFkV@uq OWJ}Rhuc Ւ^8]FQ*եyh?Bi7wE~*&{ >7!.# gסηp:= /%gA%%ש<N;rN'.>iI˷H- w8@wu9&vj7C7erHD GU~F<7>AVAumPDSt'"MQjCB4gdW潸7D9EU|/4ed*O;N,sC7]qFTo~v|Lff"1d GZq| ݥ``<੄9> j] [%zvt[3u._F{R NLȈtʨwJI_R%_F5y]%fPU|S堑X;9UƼN@Q QtጃGKAs k˺+gwqn74Z^anœEH zk򴦃d[ܹh֐© M;G2ĥ=msac؞+#N9wq.``#k.y0Fň.naƒ\uf֍g a0X&=Z;K֐lwEs]ĮQI(5R=IxxXW#*ILH&HctiN30;`Oe}С6_"dP,%ej$,o+ƠmWQu&5FżuX~ sXHbOZUv[ _-?>gvb$~R0ZpbØKXu܃-Sv`')QB2QE!Km8LiQ>DWrn/$h}9jvx~WI2p֓$٭ `WD[@W^fP" Ty$/P}:$z ~MZiDX~4'zR5 eHn_eo[ཱུi~&rOӧZlvN&^B8S-p67&c͢ujx1O?P>CVK ;[>: ]n.1'~!ҕF</?Z8sC?`0DŸQ::suyt(\jD9`V;r/:]\lZqAob;A׼-NKXI53FuGPy`e`(a9T@Y%ߺOEj)@P<ˊOr/h<)xMϸ}Ԉr= ʇ0OM6^Ga =V3'0Xy[?~I{G["hY.AΗnn,N5;"cA߅rH_YqVN]99ͩS[&&M.sbL.'QY[ ;[CZSŋPY] }OƲOyN(Lk$] `9?1jR<=^ ȁ2 ^ȥS˛[d9ȿE~^kAa:6)=-zM-I\![%eƟG:g[&~MSP(>R'j%Ɨl1d;2kyш}8Vhs!Mҩ˳sNmq`aeLOq]Jmlq_LTBT$Y!;.%|D>.Yu7XΓmH8U rJDHTbKv3D0)quVILTbJjͭD:d1pH5]է a"K‘ҋ=fv؂i &8 ܩTL̟h@?0C/&e7.rrqcbmJ%|C{2_x1E%;mr|i!(5鍊 D%o @*Ӿ(DY5t_*"%6WL5ZH'1@PZ$'Q>`b#Wi|p) LP<@ A3Q6iXJ}iI %)&D&]?꾳dP(T:6(N$!hrs2E;&yR_!NE 9?#wEcQ‘fGدpoqA/IArGϾ7rhHǼAunJ fV9(\:K 'J!4YVx9}PAEHg'gnO2ncL* s;GAEIZ)L:(i7WTc:p%2lw-W`+n !(]বY2In LsZټALvtlĜH*$k%HY7묋6W.ݓIQb6t6㑦Ƙ'[1狆:zH8B'5fȾCIraZ$ Y5,fN z@1k= Y5inmZ=t/PNp+#9pRye0uX*to)ZY*[]!:3WQ5 RuG%b]hW4Lc'Gevz(A_@SV->q=hxau@A]9Ѳcb0 xbܻ<4~Nk`d|5Ae,$v1rq͈ 6F$_3гB.N&M~GIQJw82T(xK>Aj"r{z: ԝYn",1<*[6Ue>J*+e3M֋SB ɸ_j<+h^+7:;W/{,'ר\uøIoz2zkU*V1]Bxd&~9_>9J̗Ꙛ[*QDxfţD8Ru9@NKZȻ…яQUVb =MSwR9]w `ŦYuIIA<*ЙHmJxO9wqj0K]0;x.U8sDd!ՠ hlĒ0nTaU9hMdvp8zI6X$-VoydsrD0 eDoe˨\^ߟaz8L6 ˋPkkDle<{8E5 @L24-.#GH ?i~y!i52- V]̣& MD\B#"kBo=fbI,Ͳ o1qP/d~a1$Ҡ*e1wOBi&dj* FN 9\$&bb6$7"0lHPm\rRxGCh~lcÖz4a_ J}{Cu1@#Ai&_Snmeh ٰJb|j~q/`P5E}}vD1i ̎Lh֫Mhf#/Wl],Ҋ'`+9b\jTC+:/AJX y/ חc08of-!Y6z1AC*6)! E7?@jQ6$3g:z&4cQ뫰jRyrf2{USD! 36^&~1"mBS-EIaiq3^5%p1uf8*WLY⨄ag8:_8ճ) EylLQ(aBV>D Ao뮽N#Հ^6$Pk_dj+YcD}P@N3=DLGNz_ #FE9<``ܕ/prCR7<|}[S$V m-Oh,1B]xp f`e^JS^W3zνI o5/H|_#xjL\1,>K bs~C9haV{hxnٶ¾; I '@% qIeL)rPvJ~oJ+Ǎ)~kCΰ&! sr=##h\y ej7b";}܄Ä>}+;Qjox0G4E[4eOl3Oκ*͈d@J7uR^Б4ɡFjq و8sKs ~ǽ\%\bhJ#&Fب>2sƹԋ.i'X>B*G[P~!-J' -OeqӖ^kេoT_҉-= <0i_h~nco> m5)w9br~؉ `XZ|'fÔaevY8l`3+t߀ rM=|<hH1Po4489E#-cHt*tI +=ӕA-I+ƶԳ{?FP׎q_nj)cXm>{##&àX)|--=e.4)nv3G8s'M }ZEJnCˈKbpt$)g Xn5+J2WӻK|h^[rX2Gq3:f9U-< ~u-dQev Y`MӤH> {sAOd9*W8PZX2A Ȍ3 0 B߈?߰w˓$s*tDtFEϛ}^gHO\BO Kەyk10˻v0Olq䣂Wj-6 ϛUQ ;=JoTUգ3 5bJ3tm)4U:B!X٢9#2[0 l-MVU E\ A'T |L Zl)m_ aT"q7=ysyPM{GZr ? $չ4m3(3.K4TMO%UG퇵Gj 1=iىsժ% k|aeG9Yꦯ$f>4ܘ?;ѧ_K U6KvISZ g J@sr'P°j_{J5Qs]}WC-tܫ$#?rOPz&M4\v/ϛ)mjTj@.WljkL,B܃蛀.[IԷ*ת:;Db])h[P95N{i,劽ÅjwB)w7čQ =s(zKlHkØ@džd͎Oˇp{s`ϊIZ" N29_,~]|V-£5bMd+s*a"  )=n-׼;܁ RBsQpcwMF&e$(H;9T*|QInRõ++z8|dwh(C7HP*'ы۹M_Āqُ.)bZNC Dơ~}uAU""K /$9!z\yR: 7w=jIYdRR-%]8w޹(\$,knIs:9[?{oee3&IuJ8,&bc6)sako Tb !PPO4!1j,Nk4:P":i"CWyoWLxu}ac/c™/$HPk?zf 2is8@9g1u9L\$((6@}R;轣Ly`3Y[y\=X-*+_H a;"Z-qĵ;rp6i7IՁq rn+?9 3T:Q ƺsرPm(2l̈́{~ v O]0`Q@okN2u t}'J;w0 * ҄]CAM *@h}xVUaK$55a./VآL2Y&|BT'3Z[:Ԇ(y$g]<7˕bzo9;:Uo=#8П]3gq)*5k|+S_4mʐz^V+̨*LPo2'("'6Sۧj_j7\H;cqVQp! *i,frz y81kqVJWlvA…ҏzB2">:p-s, 7<9_iTG x_^v|x)N_0Ms:H<_=C@֭ɬSjE?$*8N/OWN, ͒xGobD5'TA? B,3+ . b*kIP疻` $Z} ATC]lpFU%?1gEȰ)]LƓ| D7]ܻq;23yd&Ǽ\K`wT*Q!h#K ٛ#rro1a.B|"kj҉7ck/us[u 0d˅cҙI}c~ToR-cir> "J|n:G N7uk_t =W*u%4K$ LLrwuN<ئ1[<~] 2Q^5' !Ԯs?P$7'u菹d"p!0҈ !hSID8NlR]E׃_x(X1;BVbOS~#2q]{P68@]783qOLm=Xvi#v$R]7B ,~w=KAWHLeZ PoQ2!:t4Z8'`r3N#{ ZD~4P81hWuIbݘMU;Ě W{jxlq5<.9b1PNrˤBJp2uZre|#z;=(N]xi ;u#*̝MN][[jdtƪ7<ʁ  @q=yCZn>\3&:RYS[Byxo˯_w{+Sw_x KԅXpt^3K·:O L Nm_Dټ)ho&G,DcgBge<䬺{F)2SA>zfߣ'x_^9[v*[@Ŕhۂ6Lk+*Y;,Yfw.$ËNZf-mb3L[p CPI|B1g ͎Un^CjJ 2T]~Y7"E =(<5r!(+Jr ;xQzx̷|^8}U{\I9AϜ&oXŐ^n};ŇNR) @Yh1sZ=TCHpFb)8쭍Ӵj$kHk7 Ɖc(mt@rE^Cnz٤P7N2h-En3_+R}.10XO.g27=P`h lͳ X6YV0~9-6^xS \i0^EF:G&3h>@<963^-cnL\T5_)\a:wPSDZ6qs쓶#MOrp%%^Hn3\FGr Μ `1ʥ[ a}kLm|yLjeN/h 9XrB#ݮ5T k HshVJ|0Xl<&n4DhI) E@Ͽ|7h aЖezjszN{ \ жeS&ԐB>!6 RI+kRp23Q3_Ah Z{,\Xs[07ۧ(NNd4w]eAlz< B /"T6*Ęً9^gb߂;z݇=qoiyLi ֖z?˾:)H'ugTTD^R"?O{cXC$䮤}eY%QǠ}ЛjzpƐԱ.de*@tEеV5 4b13. ۔F̉S~O-UOϋT4&6 \tT?_%r}(PZ^Q$8Lxqi)J,Ђhh U#a3m;G.ԿQΠlrO#ͭZc@ǖGO>u!U7_l +Wv* IS*Zcwzbx7f} `b't'+co'dRLSao_7Y>!|p\z9 ;uQ7#Vbs Li>s8"fB =hf"'/gvY]lM$ ӤbkQ GQZ.ь:SV8CiܩxܻCjn*6M;qu1/Z u+ {UatXpUi6k$D{St|`]f-.~Mԭ*LZ-Q6N57y\ [W[Hk!gkrC/t{E3$֛k>Kt-LoAzVέT}OAP Z2=Xgw{]V]nνi 6f#R%8W b߶tJ^(S=JȜ}{M3-.2(zP̀ ӊuAW+!&acr._j.ͦ Gڟ 8a<1@\Cľ{D&jI\Yi4Y[#h<Kp|)fEFz<1r?PɘF",d3nBcc,\flcs˲1y+?Q@ yrѠ^y_pTJf:LApaF{cY=u6/Dvjf+qQR˚ːU˸tsTJQpoAnŧt]dFHڄ޽H]3_l+R-:#,Rƀp0yy) =DO|f3٤2JX4*;n+]CvjCc^OFAޱ؁DA\+~ϭMpMRC/=Pq]$24!UHb#(&7 Eu_YHgơ55=`kQscɪ%+rE?QWh=mj fxRP}B}EZg(c +P*8{ |^w۸Zu l5֜6)NE-ڨf j&&!D0Vp߀'B<".h֓a)/k 7dS+]&;-43`'@#J}Z% JBT tFg *vtC%{=0U&g›Z9 l"E)!wڻ6 z]GoxzM&{PO,Dy94G2ج?.ө:[luQU|xܦnp ~~ *o"zȨDO#ڴӜG;@ăC":f`:: <B'ڭS5效z !4MU~0ΔQ'?-nҢ KMd5`e!||~☖+Y)Y\dI?;,g6b?v5Bl4JjiSYgy^@錮ͻڊxmGc,2A讖َ0U],ő%6VR>ޢl)Sf{& f`1A.QAn덀L)a<&eE-#. JPaP~*u~ |B~:a ץ OT֢0!g[9yx3Jb, 8&2! !^Bdᛝ&pa'd)_`b/]"4%b})_>o c.v ཬiy4b7P1΂fWjB%Z"jM@kuHD~Q5rh7RE U6e7% ^K䖏wk$N;ڞ1  |K?a|!ZБ=_ 9 i.b ?#X]Fho(Fu˭lOy @5ra!bp m8mb & /ԟPds@P ڍC_祩 n4}LM#6.4DuK> Kp0R~_luhHB ŧI>cb[t)D/ < FI#$*Fi/Jn5/=ʞ?dr E4ΰĻ_:#MvN> ON2Y0܇5{dh%G~uY>bp(^py 6;QO$ZR0Pç0 %j{RG}-46GdRk|8 GH4Z( pvQ(#ZWqN"M|{mLWR$"wXp0jxf<א Exޝn\JNjW:M+0;G|,ow߭!2wb8y})r\0ct2s6JpU:Y7*_"+ '{{uEoEyCy 0&Rjl`Egaҏ!1n[Dʮ_kf )SsaʖP c"zVa&hWR1u^UCҟ'?CbLۘSqb^pe|?:ӞZOԠ̲mp">Wg˺SF#%XӰ.ӖSb}iitsF7j,j߳us죡cBD"{ԓy˄4ZT3ɝ^ 6m=KTuV3՞<0sbR%Sj,D%XA,fj;P.$ S@߰4*\ eJMM l\\V72^ΘB7Nw>R`8Y0{Z)3ro8uu*Lylǻm8SL7KE1-(P#LM]IHόlK {BFwƞ*` Дg썇%`5DwCZJuOe3a%>`|51;l$e75I:6blFer5K&*h.티Ԁ|ۿܥ|܌lSA!L5'>ĸ0^CKЗ!Ut8xc PYYbK]$T^ rNf~5([ ,Ki CN=b$ 2s'EQ3uK еk8nYùb,TmؐڝuGBل|Jϧp&u+*g;7gi>se5_Sp|f (UΏ['R~jE^mFTVO_Ќ}f- ^>fs_>,U t*UZ$;3&U\NRsU9R (lv-`ĉ1]n3Y 0 KAh`Cw5;^,}X122EN?tk_"'(R}%#~8Eq*D^Rk %e'%4c uw覈 A2g`+L[@$GҾU6Oȉ}޿<᪟JmaG;e-ӥJKMR Wa?սq:& ɷg Ḉ `kDAr7{& s-{MA9pf@Ӫs~{O34{fEJT.;M>4Z7NFvÑ@:$"6v&PԌ׷7CkƊߒ~c6 Z?|1a틨̪sM밼>k(?(dX2`RPyOYrg{bC+Uh#ȩb~;F40)Z~>ZF2ش>h)JoaoxF]s5? o^ D qrp-mcdYv{-a\4J=|1­%yO<ƻɏ^k#'U[3~g!T.~SB\ $)_I,mmœ0f *:f XݔGPfG+։0ʹ*/zIpᨄem&M, }x J\+gq|VfW S4C'DTA|Fl4(jΞL^ۖUaڐ>$ű slg8J#,Ug3*E\mf=]澍hS ֈ{l]',ˁH?LdTȧ_v L]jH֎HuN(-_b+ ^Xᕁ/ kktT! 9g㊙;2ၯ1nϩLBӎV˨6\%qB,(/$ /sGWfze Po,/X]m)7rOdOguh_DH>P$wX~ߕrfwhe-e0enD4~p:,$s\d:mo#pr*+LAe@M-H 0ܳIlX zEKƺ%7QeT1]#T`+I;gioJ)Jܻ G①>{4VQI޷DVVVˆ㎄):__3S9#qt9o1uY=Ƿ*,B  la^?q jOsRo73KQ;r/8 b=8wJV?l> 'ӯR@EJx3Ҋl3H^%0"&7Ke%Jb)Z0l5_Y-qXeYBSǤƞd| NpʚXq@ ;Kx~::rf"s:/o[9odF3r_u~1G{rϋ"K2l]*}H󠐤+/ڋ((Ps+oh˃SB::1npڦhcA BiyOvTo)'@F[28׿hLnˤ x ɼʰvSI ^cw!}!!qQipE=LoPR71)d3Vl[Iz0ݡS~ŝaH^gʄN4x=89NڑɕM) \lDִ2~8zU{(m,x;x1#T{Z 3jY䑜!*ʒ7$9Fi ` 8J0 q  ӹbxػ#'.p; IGo)a TcCCCD~I+ZH' h|0LPǍ& O!/B rP!qvR;7E 7Qz3i310@\v%UBqGj=ɛ&ͽE)G |-Ԟ1}_z C8lHWNC^O_>%Kpj0:%u&u-EtYԥaVOV#dQ="!8_3i*7!&ɇ&rwnjf7NsQLJ*Nչ T~%Ol=G}O]L32B~;?8W1% Ԡ5Z_pz<(Sو *Y$Q%A 6scmhb>DOǺ;$D`i!1֠rlxmM)~}a4>ΔqShX)Fۚe# &7AWwMC<9! c8n<DjBOg-։?Bl=,l@J~oyX8?Q7rSgѸ-TcfbK$ g_\(g-O63Dt.Jzq=UΝr&¢fMyk*JbgT|]9pƪtw]l C-4ʂ"=g!#]~ԁ?ƾ${,Pݑ o\@AcA/Wf.0Hzwk-BhIodت(IrN5VO>N?%أ)mHƼ-*>A\r,i|Y5n!vKYU-~`kˢ 10G/Fk+wG QbysÉFܸ-Y0/9gػmQ0qVn DVw|:)7RQGKx$IrC<)LjX֧6XgnisZ۲T6u!#stvBOb \|e8o:ȮdYCMKXhpX\YĿ2 t$UvN%ɡ}Yc+be\z>ծ@Ox2wtZ+[[rSPV_9j=(Op5T{Ycc>-+Bw%&X_>Ug*Ok?t)\2gT:LEm$Vyk l>#Ͻ vEKw͋d%& <!R2 s;<ZNt9☓pT;O܋;"L[2sǘsF>\@'/d _3J\xd+'77߁hoO<1_rVO]s2O7VRudTFJx-_@. RL/Q=Y/$6yl4T穹:Mׄ@i6@dZ">+zCMzn֕8 1Š{VksFH"҂ pF.*Sz8\(9!G\@{~ѹ9z,Uv'!^B<<' )c-@%6p} u w''4li5חue-dE>$/ʅ M@2MxCp[on-wq1: Z ,DOKi,GqaUcMʃxR 嬦{MfO<=Q7(<$A|)Si ϮBf-A?: uM*wj+5wHt9I䈊Dz8T n&sV(\@ZJvVbBOGKꌭʂM&U 1F i[!y]t1q*m)G-dlAA28._Y'XzE zNgd2gh=X'7¤˔_”<3CRS揇 [!q%9RBEkxSʿ_Ӓ$P:wʮx{LWEKd/Yl~rYJ-cӔEABB|z¦V۟jʤ.VƴȅQ?3g%6XK|go.l(֒Sy$|\{^KR uNX.s+6ôMKgÆXF%Jx1AWߛ D1r,cҽOTwRc0m5 pc knj?-׎L;]1˯}`{#}UD.tXG7*<Zn'T/$[ BPVr'dYpU}޶eJ5%% F+~ǿ4wŮ?A䬇& eaFwײ/|cg߂"F43{y{@>L(A7=>"Ǣe&:WS=4'NP9!lHj`G$E(1 ~q(-Eo#!#5izd{j v^4`1^#v"XxS)Sݪ,ZBt[:p9S7vzQ~|cL=ֽZ{yYOܠe|J/w2vH1@sƩdS"˾!T[^ d1wga57Us~i׃&hK$M ~ aQ㲟WAZJܚqZa4A~-1>CptC91+NaTfV?m78Bg|D{|%z .=,0 9>vfq)l؎[#oRpt Pp`U}hK5QX3}vuJ74xw:w,-̦ ~6я2HnZ&U1;\з䭜U$ngVJ7dpO aӫ_+r5#TQt%z.)ľuvyٞ{T)p_=ݪ׳*LsG,Jj^ z54B+ځSFi=ήh?׀G?"'exl/>on7'ٌQAi~xŔ'zSzzQ&f)(-ږ؎Uv"VհDU>ʏ0*4B0$ Zt1.|#>L>Í], o#BPjT j$8!|1]eK\lWOˣ#ú]M$XnQ;s'cbOH$fD桃&rU׼7 BlW70߻k$t3LՍ~>֮V&j"S>d>u^.BÎrbϧVCO@jmqb|`$O߄(F NoNY*[.,ÞJy[4;{M|/$ owk-J *zM IqbZ_؎.2Q}!_4>LC;v:J.cI> iqD\vB1>2["%W?C#^ml!5Gj ͔#M)Iz}p] i SPٹ>s"hؾfQj=RP&#JfCTA}=‘>om+`ֺXk,qoHi koWF\}K I9.Izܢx1v@5͊y@!.dFP1\Xsf^OB϶OEQ;97d{J\V#H^ؘilj#n# <ӎQ9M.pΈrq| f _'Kx/{'y\lMYk yFd> qTF!~Iq-ȲTyLh [B7HQIY:lqfE_f!oS+R dGpou6ӓ}_ݰ7H)x#VQlTH4t/@>tQ,#wUpfdRA섢`˳!xxM]'n,M*0]+J7v#㞰N8eؚWEti)4eo寯ׅ@̭&mY9z{ӐpP6,'1tr-D Z<2.j?fë9cpPBțsvl|^?bBRް3+PyZˁ~a*}=Ĝӯs0@]J*Ζlw_uc`y? Cϥ-?LzF~{1 ]~܎(0VS7ȥ⵷Z2\?\'NWrQlM ;# ^_^Ԝ6z{xG\S,Cmk $ցs njEqCQ,ϻ0(h/6~5L>&xB]k|?wwwcVʐDwn#Gզ)*]*~p_#H/a/t[sY(XޭH6r,Ijdw\ɓSms)#~uuC!p'Gk_r'3N S,pvi@Ƣ5K()u֞B ?!G0g<-[$R .q7b$~\F f=IFǶhP)||]?JM@Yg ; ˅&Ӻ8TӘ(XRv m'DnbT)htɤg}Jgx3,&6'ԑ&&')?69 ܜ;A!bY}bljvK˲‏  (( !Sȥk\b uCg+'\N8i(D-ێo#B$$ oNG26i";1l16R#_us;Z 5A#KCbV7l@Ё; 8U1wSX::zTRkNT9V;W,X[4XȕoʧքӴCp=eUY@ z:vZ&(ܝ =d@3Lԅw)̀wgG }.Dej /:nHbe2O8 }-! r&VJ~; &z9LPKk8ɷ*Pb KAZlOԐ;0p {2ә@9ϥJvN[q~׻f;&_W^xq#+ e犐M`TqsJ@!8P{^Dd "=ZZof J\F'lDOmuވț4T{pVd0g`zW: %wivq&?~( M~=ac}ҙ[ ;B`f?]k8nc,fn5vd bD1}qd"j`F{^;qxH@bZ1xԇM<8Ԇ\x#k_~=E|h{Fpo1H|d [֩"Ni˹BG얯A y)J _@I7ҾIj}dKe2ʇP d]W"vDMEB5OӔ'88ZDk`hBQC=LGY9䉃_uk*GDFj;}ڈ̯, hۛ@Б|{o?Lq0ᵖY2]c5R@[aᩦ' o}xO(ܙ%Qv)?[eLV ڊV$?da6j&@&2~(EqLyB3Z;#7H2]7 ,5U3_|Me)X\ / 7XGfNg n S*7\$XMU'nWrU_x+("AT.t'XO:,S UIȃ榁!{o.7u3= d1 andr6lam(VRסWy~Нc^~HBR\M?q^BȆGcva  J* m[y(A"&4 ABn^#n;6D'*iUjQ_b;w糿okPӹXy Mvm#Muoء1lrG,wʜ by[#\Aa.$ATC5>T K / V#A`;̈́2ѓk!SױC|`qIo֤᣸@vx{_zK"TNDΘ,hf1h[Ki#A-KnFY<=+wkL{% ]k.M ?vN\a i86JP@./lYH+x^N՜7T2?/Kp-Tːrt &KhOFח"3n&fד϶:K75R2緶 @58b`ĩޕe}Ȫ czbnzsm SyP8f sx;DֈSy٧H.;˺|jiJMA[ezb.D! @ɜz]JMuDT^q10 fN80G_E8BxשG{҇v4-)BY6ov#r{zBwY>SX}u%&T/7 b}–ʹ^cEnen>}R'JyT u6Xx)Pk3PRpIVC^0C:ݰt)g"~I!Ozq*x[AKyL2sQ$$4$-}&OXj#Ǻ_N.8V,[t9`jͬ:*!Dɺ{(ޑu<_cDՁ3I=b) d6%+E]ȕ{ĺ"ݐiI+cnErVBQ\0}Vl 2ձqMa27>tuL޻bwV63ӠXZB}h!%rŋB͕Q}[*ɸbergQr8"R0YV#lƤpq0E-[:1x։j1B'?J6ԁ{AaLX0?#ktkgdǴ4 9'Um$aV%)m^wߦzZʈ^LMY: W9GWV^SΑ 3Igw&K+\)XۅқXu&H ݅G4A g" )mP9 pɑta$$tG[dCv1ˊXmbph9BY C*墖<k%e&OHTrbJWƈIO~D6.!HCZ/LR_~9NXL-A $=I芯au1ZxJš eU&,wy|rD-|`'aG73B?q)#3<]T d;tDy͋$ /r=?I}H]PV<-<zJb&f>\s[_7͋"XCLgh1[c!(@2j0ID:bQJ3ۼ~P+GS9q>rA?Wx9}Qu>N4{֙!v]Yq9`тܛ?8VuF„!T|9u {a\=T^j j s)U&AlqSE vXW~N֔1072;\bk[j&U'ۇ hQꔿ y@g s8c;g>'hKVB|i5cD0ѭ@!WAe]Aä0\R-uqlT}l~aٙ?p}ƍfb ͹wjߓgZP`1I w9ߝ^-6P$/Ymv~ Mnً+EHwVNDULL^2nD(|g`ߝn!>z0"|8| }/DrÐk= 6$͋11߳OoBD5X1b2j+ -':ϾyH_󯁸)oy 1?T̶îZ3`^ n#n|~b[$;ti]jY/kY{I?N?NE|}-ѪNelBVSkγ dfz?+I4I¨-k9b3.S2CHNr"VC\;.I@EEWNQ(HQ,6d5b_^˰ak$˖ nǛ zh~[y<\' @<嬞 |O7 >$N:!hxl$E\*|ZcX ^'#"czQ">l yxѥ0K NxuUXѲyRbb'fA`Lxx˰%4S<s&mEn~3Ό(8E8"8v]F_e]Or(1e8GX'5؝m`|Buѳ, #?8[ðZ2/dPl*;rZWS$?]Bf.6ePu2QQ& ^q6svmd(+ 0hN67Qyeװ* Qx|akuIX%||N&R 6-ը?c{ `nCn/?zms*f/%q{ENcn#1+ݵ#!eH3]+7[3CjikP`5 jABc22O MiyZj<5hR8‘Y&TR=Tg[](HT[BFq39j()7$cؒ`ZMfF,[96{A)T˜0ӝ^aX{V'4PXEmA:rW.fW3i !ת+Ц~rBʒo[w1 yAK-(`\ۙhXx0"t.BoNGN7o (&?;rַW |i޷+iMH=v7'O= kC>DsiH 8rݤogQ P_{A*epjY }=9Qߪy*w5؊-qK(((τmↄsl"XXFYuZ2LzR.L`$8!gc/eqfꢷz]#f0<Y}ˢhNVpC}pF}[@B$JfOCcz LؔT % p,IϾ\A^5u] cӭ  ~^ZB: IROD'*bS* j1.7vG6De1K1R{1˳vm|Wy~x;zfK<w)pq8 x@w'8ؑᜱ LjcHgr0| AQˏ8CBF1M$__a!8vT'`p v"[V!0՝iOMz|4$ Ta*͑~C$XMύx4gޣ?E/N8d  j@? ݹic}Bȶ^.>8"odEUpXEd {+Sץ$D'(TZ'M•I F&JCvYs_CRwbkcmDUuĈX87(PqoTN\T«p~d!`q[F]q+yY8>48 'ma|5=Z8$+ʵ5؃/ #a#(`pѲXq;Լ,FpoiTI@)+9,0ʖJƅV]yבwv0 -%Hb AaI~($7 =⏸mM|lSŐ ݺTg{qvyD4uE5ی,ڴ !΂&)Qh:cV0H4Q;䧝0m݂ENJ:Q7>1Wv۞Of{Pح,nF9}ǘZGuaGD8_Uɣw o:va@ghdֽuwHZx~_ >ZOD96Sk: 0 z4Ezٶ+kTWu31Ł-;C J:_7p>r*|p20j㣐?ZSIef퍷uj8饨`3+Oe ?Tʀ2md_/d*5W"vDrtǐ57Ki g^VD9Ejڥk iKu[:udq@?Gчj}G+$W ҿo K]$.`] ƺESTb!WQJv?+ P%m"rqZW] H[f ({`F0EIaƿ N%Qa/6<׈qW`9j$j4v^g8$;ЙXh'FѹbHRuĀ?? 3k%VN>Q"r3H"^+vE]ҕվ[_lzN2ԏ|=. ϋy'ΰ-E1.X3|UVhY;>TYһKOL!β!lSfרH#]XoXo!eȑP>Nt>u|_u̵-(_TWL_5V0|7sKfF9)~0H;=wy'GS__^Q/ ½UHoB5@^ٞVW~]9V

FMؗp 1}K&O𩂠"+Z"V΀j4JK\ԕsZ`ը9%6ڸɍGf飖6. >eΦ[0 B@5l9lNiHCX.Q'd4dCn{5ưs3M;R+.'P_Wգ:RNmDzWIw֣/ P'O"@F㬢 p)Ycsg߁ gַHNqle'Xn犋8Lv-[_y1TtcbW@N`~Y_Qnɷоju(<̉uΜۂ܁0ss59]b^]U 4*![~"䇸C3*7!x)w<yVݥ}бNV$AE\pۆW‚: ?a骮Ts(S"gNxnنPTNjm0k~="sR@2s ER#8k{9!Q:+,"MR zwȵ TN")|+YK.1RIُ (nЫ_3]l[6cL$9iz;I";8oN󒄂tl M^[^ ڟEH?_/Vq=R`6w͜d{CoY*c6.E!m2k AE|b&rmPcq1p!5͒pQ0B;'aFj[Hf=RIug4x}FDNo|."*-%?A" (~L`CǽӔUE!Z 1wĎִq{^0q/::Ҭ@}7 ΎH.T+|K pkA$5};42 'x:YG- ^ ]* O7nG6):8k  Yug({Pg=q@5F0N KUݜW}Kϱ BiW s߯|z*&u?H>gG%q}fNlRиX6% &V_JSp6Wl ݶZ߱c!;dӮREcHwPIcYlKS눸ט;*gvdI蔩KRfVuBtA,FW(prӐ/Nf'r )6ɀxMCIȲ2״DƆ@QI<&0Zj@"lajzQ-tp M|0ԍRo0}Sѓ*/ՌhZj\ʙ$[N+190oxs#X WYr@WF]:RtGț[%[+MZ/c>q*"دj?E6}w <#OԙLj<.}DahL ׁX:ywwEAx";P y_|r{7_(V.A9OqLBb966Rׂͥlߝ)L?N;3xk+ugZ/,6zKJ[W Oң+k_cl^8uՖqkaGn|4Nlݖλv o>n4ST>9nz ENq*.5 qEr:eYRngO~2\q L2K^yumE|>HOuu"^Չҙ B/Lv5YTȎ)Z,ٟK0횷t`oҸVeDڻ]k@Ng({y|:-%;ęWn&| C.hat`\HòͦB$gp*Jm33Od)*~P7뤧zuj% LwuPx=Y@_|%Pv&EMM ؇wή8KMF`lΊ"o5D3Pφf^= ҏ8{L7JCA\`O7{x ?BOԹLn {1TYI`ǴCOiw,?8b_xԺ,YDl\/dtz!6h^^sRo}XcHK/!OS¡9 ͈ @J2Ӏ v<9jI6{)g-iMu-f-] [l'j[8{Flgfe.157J!s[_+y:Fexl{r`4%\P6WC ů3^KifOK|Oj3IXhC6WݱLxQ̬OdV* תZuEz N&tgx` Qݑp|qb$-K)yu[h*S^Y{P Pj8nO%NTK0~_n|Hf'ѴRUwnV`kEֺUl ns\LKg^%6Y1ʰ8)Hn[3_$@S$c~&>Xq<,QM]YNMlR(EKȰ夲ɿWMsulݲڑL57k|TP%cɴ/G'as̠OǶv= /F;ˆf^].ÁYJdHtӕ&|mg/*u&ct-ćJ;P' ,qoBwB1/ w;2`#ڹt눨KrN1< ^I!+ #OHo Fx1jh̛0\{GFXh'ēBk)pUlƗuJQ34eXWVۭ(Q5 ʂ&xN+ؔuvEov" 3Q"sD#+:Nۅ3enu6-hVν>h?8( 1i(;yP$s#6 AУGiȢ]S;w028v߉q"-:cĜZiW?=>^Nӥ19Ȣ~[B(}Dkh`̬bSW<ՑC:Ȍ-2粞ZFχfT4+!T&j?Į 0Q@wǮxүQug4~կP:;yq>ﰻVQ$Dg?"QG e -F2Y,@K$q 1~YF(beJbKb~z?Pؾ< p Fs &Oo>ZWW,hw'^w\uz3&bnWGwB!"Z![P04nk򊰴[: =M:/q?QSzHn[SZ|@lKU22HMY,RkUR04 7H%uS{ 8˗S^Nc*JQ8fJмQ~aY;~2ʾ52(L/{FS qT, {G;39y[I@s7d1 Ͷ;pH}DD~#OZ+=pW_;ٷ "Ye^\2;IP  72v/qaͺ&ڭpeQ8S7D{+"&OBҦ.sY\\h/ezUJ bL >/፹ks?5?2'dDMXf-"33^H` Z(KjMaH|zM&sKf81YsvmP-ݧ.t#wLxȲF= 8Q*h< H5۸%?nPD'H5!jcsi4ю1rs6⩃S-79ʣ|0/yza:T 3rN2{;g5 Xn@"E4&2&6ɝ62Tﮭ'"61rQ̙WeM&y1ڥa#r/b'o8أ{yKj$|檋;$EdO,zA,?I7 E$]FQuHM4X#a#Ɇ.(ⓐ)QTR('uzFXM9?+@ U٦Nk,t{-_ g'u:zQ8ǰZʹsޱMrIwb2HX]4Pa=qv8d_TX y5HG)MA2;Q@r12X8GH7,ٗg%^"9i+6K'fM#ln>ܻ :GyyI¤ 3hv}R;XOtM*LoNI6"zU#@߲Mhm:| G7M7T1'V"W+w#$l~zNjmq4/ʔv!bAm!sO0} $4L~{nhPl2wt"q  Es{ |OxV#F[^UzЖAҸŦÐ_?F([g{umu= )]{7t?.r"AyY(0Eח˱ E]H+~שU|3vӫʻv }i3t }b?@X6%彊<#*X8rT*_A4D8CGv(gܥArϿ*ƍ?3dijMя->?0۪Nb|RxCDw3 [=C6vZ;ʹ\M>ڈ'B:v^z[ky=BDԀ;äYp,RZ 6='P@- CS->S:jv`{JQ] L~&/7@m她J37; -6 )ykCaK2L ;뤞~j-7$S׺2nY'*9!|hw}Tf Y5]&\6l>%ώi1-^ޭ[N@3dcdMs߬}+;@ӆsQ"% @.с: peo7*8ٛ7Cd;1b5u-6˴^>ey].: 8IϐӦF3ZHEx@CNeˌ3n4i 4OXo jdCx RD(Jo0JKv9jhxl>=̢)j.CQNxH :Mf29SHz$Zݮl3SZ wԏrYtxx(+cnNÓsi`r8s4\Q\,RȴQkE QHA>%A.6e bc 8TLKrZh^^oe"ۻM^[؈ 8rA2N쓹)X'wo~џΌ0pHv,W)BFb|VDl6}@6EG?#S*ⲷ2E%$h*+8Riϙ@ 5fh[&!]^Z}R F͋3c\6ݚ!dXGuYJW{KOfZ H@9":N 8A3BUDرglEae#(]iSq#jxWyR٫Yրh3Њ,"hA@ 2h(-ʇEA<:VjyC>ȔE`+s itn ^/wsn8:kV>?ZTOmYG/`Qn)VRUJR;hW.୮av4q8zC0؉[[H8F/PܳPCgզ~`Hl{!A7ZS8ih5Ap7׉L h~_"7s~q? f}m" Vf~*~{'(K?z+X.ЂʍǰFꚣE}-[*bxK݃iZ +ԈnE[!^dxiIՏdI(uvjo5um -C<\>lau*nm=~㫡Y{m!;Ơj)P+Eqe+ 0˶4$*K2.Ԍ&ƹ廓-w"OVw$2̹ʉ/'4nI~83Y4ptN}2 Ҙd&0ٛ8ZO+irV9難}1HQ >xe'?YZa标HTryB( [rr/.² NAzJ ]}ZCtQ=B8T [B h+=L%&WCϏܷU}@o hǗnE73 N87>%Exc"I ?سb VpWe dq"khHDoX>zj>5e47U&s0^R/ŔHF  !6+QghHPt>PʠA&ũ% _!󔶓"qvןRO*Il Mxj`{a@9^8>A^5ǿF1wHh+AoM3A6{j S R`UB"*+9 NzCL;ЀXtjpK/Hi&%ZV;-GZ*u"ʵ2hL\ե"q ,jdXK igfϜU=;k |PMsB5ә^ (,o$3jL[VȴJz9MGcLG%?"U\źCsDBj &N$w01:,t 'l4v>VçybO+]h9X&'.C+N2싚Y -OןڟNYÃv6=j7yӚf'y_]U%MN<[S}.dSB,KKTճ4ֆfzzR|ri+@d } +i/H>"y.Ҿ8!^gBoGt9HǃV#̝퓺h5$0^WT)4^G<˨+y^sUUqz]"֨ vC=0^x /0Fl^7 2JFs8~Y[qG`W=MZچ=dRr=RtB}S>^ĜԻ)`ԊZN^n,ת!8M+BP'rڙ>@h1vU-+YՉ9T~ 9CPs8_o"CC3N~;T.=yJ'Pmw[5 gCn㖞AzJѶF47\wZ$YgO+=1wm-]ЉGu%^|J]1fU:ZH覕!5uelIu ڡ }/;אε`M/8 0a?2i-7}HdէOiJp&@9z`u6xeLq `NX"2ךi<;'_VD;+Ğ hǓduYUt 2! fAn<ܮ0sUvqKׅeeK2t⦘^\^33h9"> @lr!N/ew,X[YI|MޖX:AOom# @Z3~̥nO?^f_~[h6ȻI9jVK |vjrX12&fUROHyَ[wיTG']oҜ]@=Ew9^6CA/W゙&âWr"WxSQrLO}tWJ%#)8y v8:ě" :]Qqkzj}(׹L)d'pwv7Cdfe̻fEȲZ3BKJG 0 7WAh%0}_|! yhRBƃD4=7"&ݽ`AL.b o+t;iϋcpeL$] z8w5Eڜ«EKw#R8xV[V{Bzr@u@gh, EL"$2bO}c. ԯb:R#uut$/r쭦vaI4w!֧ZCLq]= 4ŜFP'w1Hǝg{MsFGX~% $Y:UVm{~%e}vS#A=|u#jΦ[|/t쩕t;:[xp~Ȧ biڬRRnS^<`_/'7e)}IakiZBTD,dүF#:K{H@!2)pw,Xw{[KEDG$+LLVNz^1)d5-fqB8ˇsAUgS 䳅5|[UO)B8hw}AÎ)_B z7]x y}i=0eP0)7{l`\Ϲ▁E#̘s*ڏF@w$޻{EtbE٧5AƚeZnZ"qd%eF2V܉;Q7QD38{󶋾Ͼ&;eHїiA[! Ѹ2D #]!w!'À hЂ+3x*C(5/Grq׍[bGd˭ Bk:8/[83 CM?0GaWeVoQ^)qȩ0= ~t-L4-`/݇b͘5br`ws\Þ<*=cluG92?wd8YD޽+EMJbno?Bv!Oan2;tIG>-~Ç_;󘭚迈1wӰ£%mKHU:i]M9,Uy<. Usì +ű2hoDW'm~֏lxѳ#Q}Ţמh%3ES/Uknʧ\A։=/ry9S!|g+}/ב<"ɀxge:9* vwvZVs@k>hb_1b*mFs 2(Af HwêM1"K Ru8T x\CؘKDva0 |]'1O>,wģcv<ڥu eAGW7fTJF18d-ݫkG!n*}{ G6tL-?%++nd?k LO\;?j)PZuxH0*YN4h9BuqfAޖ' 1`%GF a$tmrC" ֕@L7ϿW37f`3 \i3/UJ<?=Z姑 #t9{'ɍHMpu3P" RltN!7_w Ԫ׋fu4A\|Rl+hM)G#Mq;Ȕa"U;@}p3jtD/;n`*7hOP@l)2Jlgw]$f6(˲wB'oIEr\9LV:* +BjDl?P#["*+[Obf\Ff\=BtT .P8>5ִM 5+e KC#Sb31ۑ\nxqL`3%c>,\?[Bsbۛ9ߔ"Gtm`:BP5$o~|)Ӯ}c`)6\]uw]ԫ15X[O`X6g-FJ'Teι\1z -~²{%vjdu$)8:.?OXO|t5H:GyM\.RC5U?7&2m Tdlu*O!c #)x^gUس3OKRXđ\p4)MN`Qۏjz%4*JWk#I%qՐnY~iwA7ґb2.Kޓ$^/`6dR>iWGժUF@{ T]WO~[~sUJ-b,="2utQ(2Gqbn0\nZ.YwJ|G'*KOZT{baycW].l}6CZʤj=Dgm>aI$lgydXеI'л?1Cx() QyϼO{`,KEs"aنlAQe ~GLk})"eH%)Kۈ.P?U:STj$Qǔ@?嵜WP|hv~Ʒ+h}V`FXd?ڑw05֔Fx9SЁRv;`H*tWUh3; U|6ximv]ޔO畝t1"H%[ϭ E]r}Z3o]fʇ{ kN+v%҅oXnqEs % " Qrn謺UF=bm3K BFodM^$f]v/A' EL_?v"6wvbE}!^W7_f7*D: ~7Xwz61CO+⯊0=6H`xM#i|S[}ZtR4GKwkt,j .# NQP ϱw]DzԣR^ v-oI餄g@)|whvN~l3\'RYe\?hPMc] 0'z+L,RI*bhgrS'U N4"T:c'CTR]NBzh]>r$滶^ UD9BI9%E{Ha1L2s&cl !z|KA2;bS/L/e   }*1DFyN9 'Q%!cp5__t}ZPj/p{W)Bh!GMW=>yh 4 \I<EM}(J\QrCʡٱ%,VK΅ݯQ* h- @ )NyD<҃Lxzi.l|gsJݤs_aXMaLlX6{Ž`yEk uf Z_uKI'm]' JqaxnNڕH@+*B!ȤB/LSi ezʷY[&b^|ђ`P- &kATS^{_x BL6EslN^HSAE%_ V tD-ȣ(R=z*c%SD O_Yl{B(a2B;ZDPז)U4:2lr$Eu q<挬.a*ŵ)ma9XKĿHXoWo#y:[qAC0m)bb/쭹40@M|Š>2$mD)wÜ1;Z1Wɟ~Dt+g=S7}@[zB4 D-v"n1~l<'ZlD0Ou*`]cqy#LU0\zPP:v.6mܗ5K_J |J[بLO֭_#TN$dNEv訌闆fA\3p{`7\z/MWnV(X m^qD͡ߥQ$N iY6 d9`!1:2*{l=nI$/Ew|剓!ZVq?rp;%pࠕBjBv*cY4`(?tg1/8]}9>6GH\͞dn}f`Z,U/},o7zGT9Ym(p2T>!"wφ<> ]0ecRІ8&W_\AHVǧ<2AFK{iDž6k  Hc}en4}(t+NlƘ׷t{q~0[vbDZҜ \q]>ЯU^*Fy/(-4]fK>6, O?a((t/1 񎊨ζ5;7 ,y"`5K~x`}G~SƊL Ѱɖ "=D|ןo/=`M;&RNs㰍(R݃Tں4A(0pJX՛ DĥnFȔ}NfVǫf ғ/B/9"!^ ;[# 4&a@oFuV{B6Ll uxבd8E6}䑨p;ʯC[]g(B:WޭXͶExcuQvɜ?%YM}P/%i\Z\+r)OQqKPs3[;.s2H!]-7'wRu 05ÖQ'W i/Z4ŦUz~xȇ]&ۮ.sv5J<}BxvLCX6ꀻF߈_1飆y6Y:A̩Y:}ƀ{C aYX;7UB KZlo|ai2%J: \6AΥV%Z ;^c Jřp U+m3#Z?Wŧٓ ,:)um*b_~fNx)0x?´"/B Nl7)K,08_/d#4sW@MgҢ =w+0ljد }!v}L-`f5Ou&^TK;2*g? `)Y>X!-L ɲiR)lA&j-'<wpPP't_yE}vB䄝!q>L{t:ݡHKi#.DĖ!(?Fi 9eL! 9"ַiVin&cڈؼǹTyV^ ,bԌL%z:4󘊎\39,GSzKuyK g-W"JZ֜00}jL͆ZRV 7Y{kGQ*5$,J$ŒkjDC{PKt^Fʺua_y1qe 9fAJPk G:ga낒iHXdwND$ptoը mwBFy~ `%X~r fk5: ێXoI 9's ɢ]m TV_R[l }mAbޏp+1P8}n9Wb553*)^-LM5u)S]% |=>\Ȋu.!oo:AIң!.&9P8 |%q{ar50}Th ^dƺtIt/R 1~1?rNwxއa AGq9OʳQD+?8M_mk"2VZCe'(*3wǥ8i(4*p^+?'fhF8kOIEߊobAr;R='z)xC |3-d Hk"!b$IDŽ|tam%vK b. )'?WNh⓻ruxEUxextQD] Yq QDcj^+ ѫvg9+Ř{az6e()uw7:t[V2HƯP;eOSOA dk  >S +NVg%z k}CZ\?9Z 4]VicilgќJY7)D/] ŀ3R J%[oKDCy=Ԟ jrͻ uȬnŻj1bD^z\j}[6y> BN#w$`\n'«(F#icu{i$T\*ӆKbR^Ni0tMUrKfb#pi` jBh%e߉ԡ'SPDKm!kb ›5s=)1㋥9X P^w'f gz:<;{Q#>G80򃟟@O-Ԃ"Ug@;E-˱aCDB&Yu6;/WZ39SX; `DZ W:"<ј'*7?b}v5MY ;[4 HWe85`g(BΡJ6iH y{ 3>FarԜt"l׋E.kKBq˴T 9=i ̾eBEԛ#/Oz9/ lv{;ɭ 8*;&՞TYgRjIn;H0WIr $W9>*`/bQ?#Ѭ.|hޖQXɳ& ;ޕdrtc ~W '4]K!n=Ua2{߀"7sfέrUEkƥc9moDڲ6NT vuɶh9BVo03 yit-O Oi;bϼ.A:d*;F8ozX};tl5'rd%èwSKz 4@5`@9@s` ]mBu4]V<9M/z;=+(*¬ʖ/\Q M9"1*2]lip\B<:;~_ebbPP+b[`\u4u&FDA9ԦiX 2&Sb5rOBcՉ+ݓdAd{O@0f@Is)9Ҟ'.EU<%qg0tc)8;szy־8~YEPl\ TirՀqlTx~5vQ%V`=\[) S0Jt'67XC<"5y)oWsM"(lp ^"Vۙ1ldq+};~ro?|QԅuzQ;e2 hSlNCPSSkf NH܌n)ʹh` fDsʫKQn:7%#(Ճ%Y i]ЀPp <+pwME[.*Jqд)l$kM8\@=^X0y:? )7lـ'و2FugqH-=$FٲZ$0ƖCjVh\gL޴M94R)P/!O*ˇ4)ZY\Ap'­@ bRz \  dVѯ^C1aGd[?ɠҊO `Lx\蚢$F:& [;˲BUvi njz9J2 0I uC>T5Wb#9vHe=&;`>+Ų[B'^p BMgv9(͙Dma(X#W-+h-FByO]SU\&eh H mAPcyo2Jۊfϥo#_RCvzFk+ޑX b2BqœJg5d hc~soiI{ \B&؅<|Z+qTl&4djȰ-7yHnxy70V~Ԓ8jseLdKqy0&JcKzL$)=ZO6 HMԓ(rcuk[zP!ӰCea]qE٣IB!a<2+E!ȹ~,%k$r$yY4ݠ\/ }w =_o+Ml8[Q4Kd4cqmj/?A;ܬ{6RV3)lX9 EfBJ}̰p&]n(  ~AJ6+gNl\ |>ō@ꦴh#lyCngRhNHa ǀJ`=$BD"K5nMOΓw/ʗ-73E9Xt?R~ rJ%b*5/8Ŷ@쾫Y)JiqaJ[)Wnѳ SX+m\qpjy% +z{5BA:(_{^!clTds<ͱL ƛ6DG1!S /F|J"2@RcOK < '̊3?4gug 5]YtGe͞9q9:RXTDy=T:DZuwn#q\bJ4x6!·fٔtWjU,R\baaJxMKaP dbPBy$Pp]Kalb6;º^ 210nhgG&E@̣l^XSZ)yqmZq.YS\ΔM%%wq* 7}+ 2:6nz-8}V v;N!ۍWt\(Rm/g z_^ǕL5+RM#<{;%FX"b֝qF=VSTSpOx3~8fЮ Ue%kbc!m,^d(SU,j!`$5\4..`UY B}r-\zQ184šŌ(Tfq1k嫀^l,?i(j=}e wPk$t9U[Ay?m/]&'JlNXW1 0v &eNi(_au햒"%(W,I& Tx {}nssYFk|5la/an ˬă!HL26ΐ [`̈́ecHJnSgQV3q#"]W5I.x$p0 3.iwZ4~'C*F=*~x6_@Fz_(hT`:ꁎrK, gt|6MJf po\l !3@N4k4dZRupR3'=WA6ZJ$Cf'hu[]d$Ym5ǒW'6W\!OrA|k{/,uâ,e>!nYOld5Ю'3 [ŋ5ڠez@[kG֒Fi}!k͟(^N#שzN}PG\,o5<\ EzFjEWYeAtt7oca 2y ˒c L0NnV$.sH\M)U+o5 Spt0&:Lfg;KzCMYLOwcP{ ~^ =_9%bmEUN-FX;7Lf`+@҃@ir$㾼}b!R9NRl&'XC7:N˫@d$9RFBn JkA.<!6m^IJ8-rkW7o/q]F!jd?ɰ #;Wi`b@"#,Ԉ\j,.:0.9OfT*?-Tf` ?3(}DJ'u|YZ,XNd԰da5aG @B9Ǩwt{ڮD‚t: "LJ4i>x}iER[PQⷼ c-}'Ԣ_fvm4>Sݮ`ilo/}QK _~~@-Z3mb͓C(0_Py7Z+k\/pׯ)aĖ`af&;QGxD>3!Ӧtm`+k6C"_䣨rk&A>$LQd `+[wkVSOϴUsoL` qdѥ B)Y:i$JJ;y }a'Hxpt`,&b׺~[7zםv̦3>M k4ڴ^dZ30ĩim`i-|RKLd:ʷ6uNeɶCʹsBUXf*[Pt5(G3H WEa:UTiԝEM[\⇇e9n&pg 1aifM+[쾖5sYXZcmQgae5L}1& & h5i GDUh6{{ Pw}}LMoT3];5:6w-H{5?mZ q2t_r˕7HG\a_[SnѫN#:wI-Mj:E Ž'mhpsMF}Re G%<þt?w[gg!/&(4DouF<՜BmܲxqXCgA] $E Zg4f0Nw1aʨ~wbkq`?m}PhhRwƣ<7-[Șqe36P|FZ=ҹ}ӝEv`@^9y"Y?]b_*rZS`q9ke굊( (M/o}:A6nNo'u'LHCwp=v׋QF-p19nY(RMF9&ηz Q8zg_6;?HH\O$ n.5MBT̮Ok30I<&6P0lUAVX#q (}G@;F ,$ndBZo He|psemk)STIA زN( vDU<>>E1ٜi=^]DŽE(Af d (īhnN>eY7l>>7B>aBVOM N" >G/dtt2NlO§Һ˜!nlt8~cO h! k>_sMP[4% )- dI_\+>I܍Mf UJ %u mnIq&4rӪȶ,^wJr3ZW- ( ?z5,xѬID7<83_a>h3Hnl`Ѣ0b~hiK#9Pdb5SgCȩߓۊ-M@BS=Wܙʊ8I ~ͬ(iU>7IX=yAژj'0q,j;]e$F b,7h,/WYna2!6뽝)D$MU)-~ҚsOr?Kmcղ]/ܗe+aIoZY CxQʴEO/qN)μ?@2jc*~EvPJ!dwϕ#y i` ]ed=:GU[NJ& tsr{09*Tmc\-10 HOL`K&VwiKt^a`ϽJH>.Bt=d-'25 ݹ̹.';Xر|/z/5C?Z_hwVuwO_E(^B۠Z3 &9Y5@%7sh%L^%ҏ ܭ7]UH`:=M.J+'IOJf3p!p\Iぎ-`Qh{ +3hp-t[eb uYo@I _^\2~bYb@eӪ Bԋ7`\ťAM lFzK9)YqG 'vXQpău`<?~CGPA<ܡ?g2j,?W;k `\N`"#f: THtOiY:os4t.,lF_į#Ҙxsg<Â4vᗛ{_j,#GfW^ Mt:eh5f_P>VcFpdž-FR\Kaټ<:zjtdq>%obuF^ܦ8ΑhFc5A'L k[o=9_$7 x>d`e+|pS&a!ʁXf,-sU;`慨DL\ lY;m[`Td\\(4FCw9a iwI>KǙXb7LrpBDW-U(GS7FtGA:Z×Lը.b,we*E9Ʌ|6N"UG4 C*.s(W3$E8Aq@'6dQ jU[6\@MwT n8 N@z 軥k(DQiA?c:$T%} ; fpc'ΐw|P\3иR祇ٔS|r9t˕-JhIE3osen;nM9x1~(g7``\_>j0_ @x/k%᭯}~w(dEgZ+l_XCҕi:lL;[x$G:.|r[.rluSFBm2@lp%sA IjGkGOUIwEK+ cC̃S6z\U8[t9,ߗcHmb~w sMڧe'9oH%-O'TM=bJ<%XHWz:sסGX]{BLظ}OK r m*;!vFv|j^3^=~aˑH;07~g-dPϥ>x05XfP3$8pBDJm^\+p %Zg yo(ovFlRXIy-}׍XNTbk=3 pa5B@!%2b0)wP"TEݖ!fkLA31xd[FΒdemg~.=sQ:}G?DrxZͤDCzO!Eؕqng1v7H1%̱c,q@Og{ 熓=04` U*Xtb| U;M$dR)[hG|wKeHK")~nt91wli`gUo.=JުY:^̟omwm& 4!H$PjFD!HrK~SmIJ!tck-w+3F"GO%4DrPE9m\la~t6A֟J6N*DzmL$J@NNZ[~ *E=`~Y6͡tZv.{&ӽ3 [Np62X zwoQ_uijE9BԿ(qB((|(G9o~y"VyR `#--M-ك؊3[[5Q"wY}'ě|[mǶbftNŧkҲ4Au]f;s)ҧXڬQ8w^[ Wjބ)T`X,jr\FJj?,\"+VRQ񡘌(_|E7|a02'8 uan1!D!b'T ׋F8g/.l`7dHZDZ2 <| DLL |pAZD}o-[ȭDO> |&Bx^/G{c[!Pc[fAbEs?j~ o,Q q?U\/ϐS;KeA!׶_GF!{ ]۔}fڞ=)l]!cy26@9YL x}0Z{Hym4)-Сꔻg糑80Ƥ3ө炿xek~D`V<$%FV_YDgn.R7dczMX2Av)fF+زvE?F@9yxul6[ t,V$]MWW^ F^?y/U3o\w]DAm '31xdw.䀶]"lU$uONnXFS@)0yu^ dsE90B۳}<\rMV gU%WDpFII:.x6TSb`%+7.eڐIO̅#|$yzѥ*y%Wbwwz_@-Gg .sZL+%U=d('='S4FLK@U2BίzWA>IAVAJtMP; e*osd+cӄU|*0Aㇶ3󞷍qA',u-csb5v]أ+[Nm8K4 ޚ"rGa2UӌT/Ю=R  {C ejcΦ.j,0n}﩮)ƒ6M@ L|ddq畯ފE =bCrD= o;RܹXri[!} , spQFeWv$;Zh]:&%zv@ѨOIET9L*VޯVF C;1ky$f&ÙJgǩř 9jv]+RI)IUs< l:$ eZ` R S 7DWVSԆ?d˵\Up'<])K嗖&XEf45Sɶ?d>]Ӊ\|N| FX֥d,38e7?T`e7ӮMPk.XBDRƚWM_QŽ:2+i(YLNM'X}61JkcX4A w%4w\~=+\d:ڤT>/ Z.6U`oBښ+,QL>l*uHmop`&~Zӫyqdć|\EOԿq߸W64_5}rXmC'NX[$KwɕS eI!e'Iq1W!n=B2w#"шԄhp2 h\xAW ”Q\Qb}|(3;ٌ`!Yu߽{vg՗t7Bd' SͧG}jGJpJ͚  'i͌!5.?MH~ r!R?5j5Nd`& ?-)w0 bQyiC8_5~FWjR֏Ϲ:tl|X{rc*<7 4AcFvԉ"(Cw ͷ$)ʌ 󍊙  =&\5FvDjPNeIͬt6 T4eLZ;BV hANl4~1SelFgJkbuZS4d 4P興eZ2QgMkeLZkVhm~i~Yl`H֞JܼJ4dnNzQ @i2%V.qYw{; cb^Oſ WsUs& <{G"̊ K˱LEbG7g+%ό=O|޼jW!p_;K44vQ%i,Fm7eo/NKEk3I76JRNXӦ2ҜUNn  Ci0P/cWgMZ lX~.xNEV6LBȸ t0q_Ds y E/d*hz>`S988*`h<0Pƅr^+kO%2| 8CnU2%8j2}E {؊n!ЛѮm0d٫LM c"؊3T:sN*RL. EcGfFa)EAD%s.\ꟓN@c)!lن$ T3QC)",>xZ>FDj)T5O򉪠 S˛Y$^L_j)Sf0uE?jJ/A܅k^KOۆOӷUylMW݅+ƨCߥ7+J>{d+ˑpg3%UK~(͂CV>f kc>N*_'i@t= N_[ᲇ:E \=s]ۭS෧*4{G2|;kC[Kc<D&ll6ީۼc#86YP\I -kǠ*5Y˧fv Dh5;TLbGZ`?Mb0vڕ’&͟ǟzÔ~9r.@+\!𑚖`w'tҞͪ~9$GS5us(z-*8"BRJ14IX;@>$9Op`X<7j&{'EY/ 7=xblZ/Op"HaFМTQ:SMi#du7}mIL[*)poGU#8ҸvRc͙ zpIWSBO6Rk!;Sw6?3|hT90'3hvY9ZYщ}fYeKs˦%m<'&l^J/kd9 N?۰5.qPnQr->p)b:$1 $T>ؖuKĕDuC8oǎ(V58e)v#(H5KS( jҬafu<97~r?.P)#-tU@-h[L, ա~ɯj $}+g$=A"(/`\/U;tu+؀\@cTlK 9G1PhG}Z,Hp9J|]~`- eK>AbA_:Zۘ@6-,fҊm= u$w_ӧ˔,3 ݹق¨v[+Vfi)J 9Ń u 2V( fU  %w& Xހ~JfPNc!^M`**5͵tl=:Vдido$9of}a26,< #]E|,#_8t޲؏نumx\-'fJOoi R2e#, lf,5x\Pa6T^IO8 4R?nz9W&WmHɵؖ):YGz:( Eua VC W\(:fFBFI8) MPEDpv)釸rC8(RJU>>tIb"!m5P9-QNPR<S`4P22-",Aݖ(`,Vw* J/:6ھ7lW}!)wX , 9k mw Hsa|>eAMYV ^#@=p5O%|@b QE\zDBګ T]/q745w2/8Vx KأTBVbYH2z8>n 5̙wAl=ys%*o^7N$VJ{v癰0QioGzⲳv+})3!;8|[y9`i&VF !',Ph=(fkO֓N$} Cf;~׊Ǜ."1Ӥ\]+WJ9*f ۛ5[U1z.X-j٨DnD%}2iȖMAlDLh?-S#5|+u@o.{KdӻgQgj.fxm bo* #cՈb:]VIS`MDTBҀ6;~*0]\k(%2é+߯vl>0/Z :S0U܆VVBgCz3ՇsR!7 LfGx>ǾK%y? [iUr+u}a# 7>$'MAwlp7Z8Z/+Rb$rh$naavPichS g5礨tIa1?+.nLsu ? YjG$INoT!4lwC,yߝxbs >{Yq;$hCR6[{C XζWt}tRP]tb˜–”N^V4i6QML8oG9gķ^"gv ,@jk1N=WX̋DOOt<ӰyH7ak5Ydڋ.1v\ mu1Zƅ[m-݉.BdӨY_ }RU*'W7X1%dlb!<c)B<0] /h9H\F]>lzq33tu9N$\ӟNS3I*U;1.ޖ<]X5 `UE9^d< ^<:L{[=ȧ $yvA_.x"DvM/` sŌ uL8;s oְJbʶ}BڨR5WYsV0kQCRNB3<_և0dTcڤZg6I5b[@C9OSVPLΙU*t2+6NQPr2))hYV|% \] zL Uf+qꦶAǪQ>CbqLJ{VkDHO/ )#EKu;$*ljh"shG\wܢR tS886}6"E٩3LݰjBPT޲u"$qRxgo^JQ M(nPL޸m_' ;ratN8ČF <ljKY1Oz^Pj'A:H*ݙ XY۴݌=u60Ī#-(Ǫt}XK͎\в@ l,#ַv♪`9n!,)(|4k fk}jJN`ͳ^}#a5OND2ָLGYh猣i 2G֩\PfC?Mo3eZ>0ؕ e!'snE8)T}A|ۈ4SPtj qƯt@0"M&-W4B*C c>upo/\ Nׇ* 3'[/`#DW%TB/$TxHIbY vGZrFԈGN"`t=I WBm4Z 3>O\^kN//5OptU+G 8Q5!ͬ]?hEc)a &xJh~ϡj04~ $,T?m,a8y*ߟ.+58bZ"HBWX5\ 4+br?5I [H<=K >"~؂]ծj;[>Gd=ղ5ÒXfMsim<+ԽJy2Un%@;׏J}O *NOupml#K$K346ź?geoQHSWd@|B0V%~h5@(~m>+>ɝU4ovׯul#Ǔ^jTlU輟<~^CI G6/l^ ULoΘ$@S[5}8,upVM7(Xl9&},J~9()L,LGkYQTr&Q!&o}fdEc +WWw=_^">\ <%,vIJvT @Wly"kFM;R;;~%JV=`P~khKi)L:Zi./`Y=>44©7VDF;)s<8bN܃(SQpZn6߼F&HLSEhϟ!7cyiOpޖ0bEHBI P.3P*ViUG[6Km)]#j#-"h! {xDV&8p J[уÁ5x,GeA6̂|WBځL𻨖M< ?OE{rߊON@~P+eS RIdڰѽFsHA.39 0oxP& ]#M wH:OKY,-$v<9zۄLsÅ_^ֻIxV*FDM-h}`RcS ءN.#TD©8T[ כwx(M==O2uc ӥ~փT!C~N~@QL*r?U}9gԂTC *D"i9soH;kW'nF\3&'>7# B' c _<Ƒ7|t%+vפ"N F1ќR-G@fE圥~Mתt:TK ꉪb,[l91cɿA;=U `4LS?%3al_xA&>[W 2i!11?z6W4<-{S"د=GՆJ3Yw2g:Xq{ot~qLn ;qX,S4%hw6rFq k?(cR/ iiJ/>&$zyi瘴obٿO*@kN%xn?ӡa0;s)OD'-`U?ȩu{&.ɕb]s} ?A~Ob[/{-$Po|=n~V^5t^j1.68`4" W{*dv0 HT@n=N•~Y:XFo^F@0En#|{-uZuP|U\8T,Ŭ E_#?9#ȹ5·?mvr y+kL/tp {S}MYDr:h0Oʫ#d}()w([eQ QJ).+KAy HF! ]ljÊZ٤~P(WR7H6&!,f[ْqj19ȒB.}d=ìT`_.X$ܣ о B/{jģfF,\ګbUzmvj%pݖudU.*XelQ 8ޗ[kGB3X棊1Wz+W:AGV燝(6āGq,Eȧk {8aIuVMZmkD[nZ%z(.}/DfRBr5 b+\hIgc߃{QyY=]2O{A߿fG%p\nb{Iu V]}zKZEx`Y[hRdZ_nVn&7R5XxiU1+T0shknh$_HX$2k $gGLUh1Rg~vs@ץdNwg!j]tbTH$~鳘K8K;.QՏ />ZF]ccJ4b"YD\}!O JLM[_Bj]c0 .GBߥŅA0סeQKoYQfPI38(u)&h %i/>Lfu1w$) ^Ll2z'SD]7bW^pmMtf _ #g׭-)^{x?7*W- 5W)d12&JBow˃-k(PM}np 僖w L'r .~>sc8LOu̟Cn 7+\2Q#ӨmjZezBA6x [b& \#jXK+DEwwmxθ@4׼6TY.`Kg Fz(r$Hu2k0W2[ ߠ`=nfx堬dԣl{ӞkϡCCT&-rS窃 qƚG~'6/8XP<+:-ᰞa1~~?Iu)QJ1* ĜAvKp>O .{]q]wBK+$TVƟQ,zk"_-?k K'_զxͳ"9@ݸGzrF}FEc~&N_O4La 3JeʨG3]81RK?v0P7G.٬{TfcE&&/ƍY2~<ؒ/D)!$Q&+CAaȊs'0OqR"yC,n[\JʠecT863lϔz=ejYl-{ 5'4& 0t|} yihvNJk4Ljtv&uszJa+CK{^W+B)1=o{R֮2綫9sufm6y)gc`m`zBMG\r6l=/N4a؂n-W-/aE8427/>I!bF}ԩBjM*GNA,5#E@5z[skb\JN'z4F05S]mf0Dˡ؞nD# <U^ɼ%T% b4*;QcS?6H'J AԞ]w׮;'lCߴr86kk@|R[CBKdN~lQSc4;Q-EOBIZin\ "! r\% $w:[3+S Vi"Brc̐L/.cp ]=]؜ Cݍiek/X*DhhWFS5[ y;ڊGx'6s`$q@҂ ؃b+A+HaDG-aI flUUҷD EMw%c3Q -|;쾔[M%]i'-1u2#.[bD,efl;@65Y$HV{{4gqS#G&lbw;ՀVZO_lu}:>ǾR>He~/nc5sȥ(#T2eOS !g_s3%ԊKf6Y Hi܋gXЗD2+gO~{EQ#?{k>J]rW9&JX<" ¥"CF|\?|zP*_b!t@g_;Mku%%mVv(kw“T_(RPs#@W(t0sLlP yƛ-2^ٟ''8 X~dtnݴCnf -r# r}<fύۗk#ݸo{lZ2㔱! hB+n3fcţsڔ!m[,8k߀n6`?勀 cxP<}Wk9u@{u]'v8͸XO_-ڢ\)h/u+|buT,w Dɼ6/z(nוSy٫A[Z4n(j+I>RЏMrpi\bk)n4q1ݽtf!Z6u6+Ɯd>:+߉s_3a_"T[ >SUn(*k^B<^7GGBVqc1qg9`koo,Yů!|k#Ġk޲_Cܻ_~$:e2X4Qjij(" Ko֋0{Z}/,z *@ 6ywit&В-׬5AXM??Fx SWC{?娰غC`^( q.Vq Roră!tS;40/tdw[*|dgsrzkB҈ `1 x*NYS5^^y*ĝwv:g*o1T9D44(U upJhNvsz6*v)bD1_XU|h0n-pnl 1HΘ~/.GF#iZyVd DŽz)DU?PeF6ꋇLyBJnОǺܙiGEzܿ3P3`%D Z7emC6])(;.& ken}Ue&4uYqYstQ2tʾU[#qF4x(\Xr!4sGO|nZ*O8 NxU7w6EL!h_O`iY|%:/R{fw7~EL_I2 \ݫq5Z U!I<.x*S^Ea [ ^,K4j9̈́,SXڈiZ>)@0P9)#&n?Ca?u_à4WsߦzdWg1m}F`C]f>Fs f@ZX]N vTPIbG,̍@weGiJ48*f$F{kE_1ΠN> p,p{ e^÷VDD<-OhC>5~Z@t%~6$aJ[{ R_btfgs;?-$h<H$sV%KwCΉIjU]SkU$WC"I&wi-*Oh}`#p2vjV9:}381_d*rRmAN65EIM#&ZO1on\e4PEkkz+Wgp'Qg[cPl=eWG$,cJ:&wsu}Hpv FF6 x0b^xq )(*2oB*Z l[Ωmح.q8( 0j(IlOHsk' Y+uFs9vGm /dĈ's*^J\E.*[ Mpvm ;f`3Pv[C9}HC\?i'#{]%ApM s,FV#eڃBpLsDϞTƶp0#Jp"lVKt0dYF^cjF=bB6EHkx i䚯MN(RZG$!J۝VQZ@28ORPӪ|h 9A7?W'QUZ%\M.Yv+:Vr]ALL=bOTxq8)l(ϘJN\}-f6j'%9a ~J'*)k(*~nn|ʸ;B514ZEoLz~O$P$;@۱i6X7n85V߂^x?RYTHt%huX" {oy\n&j1oʸU$,w+G0m#0a߽ՂCgFۇ|YlUA@36v,N[ŕא< |TቂF)|76R(:}zrmV#GntvYAfZEK>zDگ.}!#Bc+N$[Ic4BQJo DSP{PXer-3\8)XT ֳG17/VFo iokR!JbOl];dj<=N6` 6Ÿ|] 2|ڸ-8qZs7 eBò_2&AjĖI)_%,/x+ RAc+H%G[ű/2cq7Kr"Gt1hϚ+_݌vF0xR"\H#j=΢tGYW( ,r6^M7B”B" [ ,3!/w:5 `z=u{ _ ^*:Z+Q@pmjNϛCpKCzyeWXȞ9[,8;| 5_"KMB{斊20 CX[XgJ)27Uۛ|=%v i~Y?H3yt-=%*Myabxa0*VYq噞au< H uoNgtfpthαMj`Ce+<5O0M+$TF;==^?2?7Rrb'Y('Gx͕XOr'9 ܹG 6GƜUUvv;wM=7 Gl"plܿ(gC3Z/21H|.~tH?RvW=y;w>6 )e])נl8C>_DF P$%^_oTk-H3EbwuLr`@즟4y l0p ?%݁I9Z;ģYFcS~#ԯX&E#onI`cq?Y& |2Kj=n)`m0ax4I/~Jgז 7jn!0ӭ97?5%>݄wSSA[CTX䙼'Lzjf`q>e)U,dh׬ F7 w31}w2nZ|IKەX(64ى-s $AoNnd~q;T+?[p`؝$}MƠ dhwE0uT1`D8qؾ3{#FWSZ1mZ ш0woє.C?͵a,io\Zq&nU)HPkj 4ZnjM OzKO3j|Ul4qQ0w+I×ᦡd{Ϗv)jf1{fU8e )?KE6ЬC(`lR&3IFv7V!.e<& FZQ~S%em715$aE.ԋ]rBP{I?3Z5NnB\e4&nH*Cpa(xuY,)|^s}z:n { qCR#3g1 xP'ԝ=($VpÃAT =lIQV渮Q|U+EwvQ_H7>mNiRwVaXybt?2,6z~F\jq,s V݋wc-3a >0k ݸ83W̵=@jվW(ƨE=FuO%m[gE8;@ g䙈o} ~"KQ쇔_wgAHU$Rٴ/U]G>Pؗ݁W i W t#{06, 'ŃO = H2z6:)yqATd4* :WF &;VdMEU /IxB{xoMe$9r\L3椷fpb|sٕ^jFlɮ@Aࡧ\Tm'$œGlSKy&i~j!gX·KbA.GyMjgD'҃w]'ռr"t5avW{Bӥ_4?7 "t=!}Ic$Byv6U&:@`p޵Sd {I G*z( Cl֩> uP!(5lmQ`/g,UNmr0奺^dv|(SoҊvź:Bw!LDEPc8]+7LUx߆-fೊ3غRA-+-ې 3JmO\.ߜN/E ӕ_"W]0J=vYNJv)Òq2_3 S9E5~YRTT^W Ŝ[?QLc@gSL{$. A _}NVU+òcט0m12M}eW^)skGd78E%,4. to=R>iO_"0c ::c$>S<\:G]ޘm. 6Ҭq\9%5^(x$@ˆ4%#VuA$=nHǨqi g /Me0T6bk5Mgw}C48dLYS< jQizYGeɼG.Bڴq8U_ҋE*vIK*5Z`} 1-w0B+P|Z(uXGqR[?ȭEѲH=;X1iA Hʣ3لbf'p&}<0ښ t qsz1I-m(3{p44qb~Df<<;iYv(~^Dِ{{.j_ Xm.9aiJldX^r.O@)muHIѕk< 4HK+.w?8OKWGpiyLlac%H  p pAPeF4ef]ojz1$ȩB~$\p!.O̕RwaS7@]}Dh@_;3 S lu'bV$tx,Sߚyf㼒eh*Y`&ߑ@vFF)ȹj? ʍݿ?PL޵hAD|%|0(A|)D2Kɗ'O86V)XF5!H@-wV_AV-T b/ZcSF'Gju`*m?Az) z;}r;gm%|[+G 319xή+sߎuU[ĐVha4@(qn"Dv% ndn &tqSO0jy23̿oEHx^wnšu+| _YLS1s݁.]#S B|20CgA&sv +7;N3+haVAU?g%$2n܍nlk}W snۼh E@ `|omU˯5Lۡv^[$rwVZbmѮU]'> D E'B:5)c|&J:GlD;D"c@uγRVL[0?2kX!rz((iLo~MjͧrP\-q)o+մEr$[jx7ԩ `^<,FKR*NHO ~IgxޥrU(W_m/D@cwB-.w4@oė]S۵F8HTpڒrn 3SZa!:>!XIxȉh#`k*'g'xtU5[h0ފ`jJ!$/ `n(5>>"h q, Xxq0mʿ Du1R{d.=0є {5wڟG=xaOF%-O-YbL+4 ]ZZ]z#C;\9} rl2 {:U|IJtGxlw1u4Yz37;;{ur0}>l>ur&ߪF֚{ {K-{eXF5 =oE "5@EZ;Y'{p.ee?䀓mH\s>lBHmE8@9k\k>1N=897l&='u)g}S4N&׾)m^{djJ]&υd>ovd|!*}V{}UmLe.lSZ@u7מ6$AR~-Ѽ|g+ ߀sx1BN9k';w!:@6k y~s:W+07Sj+wʑmf_0qz!rp RP_FbԱ1*S)aDAj'p˼?]iy7}f-p'XXW5>q=E@8yL_! 'j|lW e>IͯBζ: >ۮx|mHarynuZbP6Nz: şb\(Zh7uNnZ၊RԵ7CDVj372g'MS kq[ltNuu}ݫQmuQOoIs*ui_{ ϟ7<2@$ ^кzU<$l}]hu3͟"]<}Įئ &怏ƎggnHa-VI z4 Lu*l1i 3a%XaZU9h^=i>_0*ճh4䨈g"ejaaWO@ t `uɃ>oX䙋~ w~q…G64+u'~!m] P=5g4j=!,UǢKQ q͗حEyV`gw$C9*UxM gZjB|iB%`+;NĄ4`$*4zfVT&4Qt*GW'Sf?TLzbK@QD omc;YпSN-Ť[,XM_K-=σD2J9'~~|) 2bQ\ ^~Yn,^Cwzkz@Ғz@9>vh>KLěG.+]С"wNtoB* ܣbdk` 6tO1h:UVOoNj=sh6+88C sS1IY2tX]8rEeYǥ5.S,I?'G'f6<yؕ,~]!9Pt͡k]c$~'*0H; $g[UJK.Y$Y~`a6ޡt 2\y|NbKۮSj uk3 U^; `+yTs]_g_D여:qwꍀ@u* Q#FX$H[*7<3!uf/_٤r}q՜4K>{:w<.jpLeWYwo<ÏkM!qG4"%ClPp ^Ϩ3aMY/a>7&9?hTm'[k/UCD!yV:Y$Ő8a>2,4D8斞v<vV]u$ehIщp]2Aёwoű!<4] qY¹HP|3bzcBVN 6rd:Gsٸو<'NP!fT9~mJީ ֖:R}{L+Fi2&*"*ٯ :<@ψ죾୭`ok}'?n[3R"ԇf}p!@x&Ԛ*a#jjӁuEjKvcީ}\*;O y~e.\2,0fG95߻V59|M*mơx[a|˦4jQ"cOn;vq@p SS֘;cScmeI;$2ĕ 06+(Ǹa{K 4%,(4V}Bsf-@ UG!Ʊ{ۮީ'p]a0ӧO(GmT;}Vd˰o M%19=GldIVb@9vSlQHA蟉":6m\JY=M#}$о{W;ǘ<:i"l/_GÒG}C %˹tp`SBz>=y#vxIy@Y"{UDT0,yWCbo-94BAHv\ֽۡƏ&Ç lQ/{|+l!>zq+4nst!˺RHd@ zW(ѱ@M+؛dE;7?&> >Ű fab]}Ẩ)ო+\H {`()P xdF7 ^w1wBF]xޢA:f{IF#՟t)Q~ \y̤YC[A.-њ:R@dLܑ5|qp#IO|'&J}NnPXj锵[x+Az Z{.u̻&%9o{ZI\pec)%M tw|XY."WԺQf.!ϳ}@)ӻ꘶MڕyȒ! o Hi`][,)YRf^PP.^LX$gg؊~}vxBQbvrz S݊wQ?Ly urmZ4SؘEύ3} 4(c861?R>LEm HB)M%Jꉓ7W( MnevK\)֩8`8bB䚞vOqoo&=DCxKFsD{~>[:&%F4yh`{QSdװ4YH $TҾ,eOCdQjuOS$&KVSZتI?GWPP#v[8h`D'-K \ B19Ӎ/֚u0 u (ɺ:'&:9ĜDÀ'ܮ5i'ۛ!Mh"X6 Ҳ'>nk9ny/dL8rw2ͳJF-8/Bs&ffP(O6 О2 8ch-d*wݕz4qt )jf??:u&},Nzսo([$=Sl5C/-ƑH&Ŵ.0e~rC|5TZs?[邓#䓥^ȑ +߼G雦񿗐Rts0luǤ/A{E:/\8e&=iw,rsȉЫ@"tNHE.@ub asQ2!tTNU^tSnm6(3m>۪FŹ&5*bH_]z؟ .(`sR!k֥Vӹ۠@O uI2~\͎ Nԙ]Ux&8U-zصA{9U4wjDӡuVޚGQjѴ".F?gk{a_ ;b]mbY)Ert j_Mݯ!l[Αh "x2= !صOV>p-Gc" m sDwC2g9H> N@3 5U^-'T|raR$eB8~B$J:'!wnZZwU.,v(Zu"vREdz\XjR-TY5zm'2@K b.΁ t U%C|VZ@z]owc2nua#t/Oʸ*# /Di8ɍ9PGGC.8"̛"oRF:=Umi _CZ9횔ӭBgD(W4I'Q~<7Ƃ>=1n'YH*(ZTm:J#zC@Wf]0R*yN}ㄐVwB.GK  \sl0Q\Oo;\9xgо[=R+a^ ̱EK$3US)Wi?]n┹vyU[y?X6+EoCKsPȫkJZcߴ"Ċ$"r`ZoIu~Ր!6,~(0Kb[dd7U$+]S8@t}PY w$S:_Ww?# *2/3*.fISŶ%DSƁI'X[SFI/EȗZK9}T2";~֐Xo7[(5]'%s 6i"|PɟEY!I^MϚ% L_`~UFp͔fWk3eN@+rH]Qp'&1tu` (IVEeec%r̿wl @qh 7<I MH6| [q1 pZڥe6[w)>tܩ ur 14 h@ԙ \cbI*|gis I3$5to}i+ {&ˋv+IUt=Jt-U_O/YZVXM粕ZLljʲPmN1Z~1vtLvd1UK*!Ҙ4b~.AOʛ=B{[{)H\d i#/ "ɐT<  +u]1@YޤXZM{5D ~fMݐۓkP<3ݦ^W{dڢG ^y Aoڔ=Lx3/Yxl6PyaD(Ea֣_/#C=2i,Q!|uU8M~DgvDPO>T+`x`q26H!`Cj5Cy kVcY5VпWMV"#;>br ű8\a@\Bm9}R}-QLm99F禮ݩw<u꼁dKʫm5F8:@אȦgh k"ۮae!DҀdBI->"&ޑS 46\}4bt'ӧ-z+R |RRu»RnsP\R5T-;gs%T3>/R'Zi0NG{cGsmB`29'k >o51?!S]zy2fC5j\J|V&hI,o̬߅P~evckW@eK?KxʮG24^myq^ DBK! _DlHc{Zwf<{Emf0e4 Ug遲}P8fjKbfX9:/_Fqv~McN!MU#̰[jqt~[y ^^4f7O]N7nx*_J7ϙ~U|d"9;_Q毼`NEhe?˛3)&hHÒr5> 7S5Wԭ UKbn8ܥ|QwjvY0HJ# kgK*9>.ѬL2]MڑKu ӻ8:8ClaSձH 8$\CLC-)w0&{ eS=+2(!Sy[ui?S-*uIfG'po/ BqОαtO~<}Z)9op_?lČe1̝+G V3{)Z#@γ}R !D̙ϗT!:WWkX2qr4Gh18E?jkHF-M.*{ MFvL3㆛x鍽S[ZFj@$Yx jv6= l޳:1 _痴!Y?B]CM')O7Es,>Dv j1:0xS h]J))xB&U ;C#Qs}QQMiP|]5TcW/pfWel7XeߐۃS02+sFdYX+z\jܡbkLZ}q{[6Nk!ԠDW{CrG6i4F)Mc  ~zL何AWnͫ ׌?#DЙlO߻F) {7y-pi_'@XqOE+&}D0JfƧ&5SG55VdvvNo)k`}YC_^`U*n{wES6ٱ5V0mNQi\Ɨl)XT&)T溱CEfK Jy/d<5=4ʗJy5|^G{'-+u[O)e@7h]l+qz.h aR9[wC-W\ -wA#PݘYc {r-` O-ܕUMS{v^5N"Mm@beCDsVZwc`K#[*"hc\y ƕHYb\w9Q_U;K.=s !Hsݦ^^4?Q^,Ÿ}niq,$o9@^%?֕_:PO9Zhr}&w6Ȃr{{`5Ӝ:%٤HFpqr$D꩐!T}4I&d :!RHI"=2Ԍ\?};z{*ظT: ہ RdN0̱,`|_G {sW^S]nk3%SLZ,h)6־|93D~ήka܌jf7iÚnԧte(޵O Q>i ZvjP>oG2g} /2oDf|!ީjlw*bx{; ,<ᄾ!JG"1Tp$#kvYua]n#L@·At*ϟBik$%/sp胔~:]j5ܫYp^`_OO's<␷ޫs=hn%F1Xٚ,h|s~;/Mtށ~Gj$ h+?)Fd x#)O뉪 +*J>&!D)W4V@_sNJy5ZhCgZ0cUO`ܜRS} >¦0Qvqs}}- _ L4"~(2q&ܸt8:*l7z<,4`# 0t-8XeKՍj!Bc V^hkߩz PӁ#qMPN6Ѳq_&4@~-_ċm𢓊O,/LK ~4K=+O1PEǡ;^[u)Nxg'3F&Mf~\4CwX-+LSCSQAf:RoG i^#wijF䖆#:fSw-G 3yY Z`qkb[ ˹|_-K+OEU:<*KO|ͅ&QmpZo?B`*Jm"/p2L_ݨVNQ'G@)0N* Ylep[yoyԝ<sWg=x V%s|.>6WqZa*pM혨 Eޣ:⽇~cc+&|n3^|6"{9)c"e!2oxhX?Kʏ_uֻz$kJ@T} &DzG`kx8[S+gSr[ߦ|׸oP:HB^7n4/u,lj#owr=D\f1tVUdhXhmѓD^=!J*.б}[ꞲǭQ MyIsˋw0ƍ;?T%[+tCoha=`JRi#9,!}CkǬ&1plJʤ|8UwF-[cEXt[Rt:|u5PE<0]ƒ>]iJ.'A`I.fc.iE~6FE =MW ACֱoħEЏUOaYѤi&ż@/pr~~ 30y}%#U}r/XV.zw"Px|"z'Cw'1ݸavi,Xհ9PbٱidΦƐ-(gyGJ޶Vd:\ce%I??!7IAl jȁ!6|3Fu'i̸pG]rHs+jpf='2@cgs4ֿ/@9=o[;-WKa4nTl^u\Xy`6],R>I+PM &x=@8}91 I 7V}JGq `Cj , kh3QyU 娈} ~]~-"{HPmIT@Ij3ƿ^C.i掬lLoiӾc╂ƹՙǽ_tݾN\(KRvQP(&IŠQd8T|#;WuJt @{M: ɽ\Jǂ6^2<"\עfIuȫD!Pdup V472pÏK/I՗.ᆱ0-k:IUoX Z}6C= ;Ča*:{ԛNYYwT1r}쟤!75d.aבQ)Kػ^]J~ҶWYaw d}@5S hu :7u)^Aۘd'CId(;t)\Xx 8pLs^QD|@8_1 ^}3__dĒ`{l~+R9;[Uz~c1};1eQPfhs^(~YڢNIoPY+eYs ;wR`cLr^_1'fzq 8ŋ䭏14RA)j*#nL =9՚*sFyfj,؍$w}L?Q%`װ{Qf ԾBdS : Bdq9*) Dz3a縻SJPQeJ֏X`KWTp^O%D6{~w^$F9֌;r1%P'KR'%U7R'?t#|9FY^=K?1-0k̚^z߉Y_R~64mS\m* ȻO( $"S_s?0ϥZ@Ev{$^8y@ O>A$EtY= Bר o5G-bJEp0Fݮ-zUT.2*Sڞu ᜶JF <_#ӽ02W.hn҆O;NQ~eOB_1{CZpD,2Auϻ n'"-+}y#JN(`t|H uQ˻lz2xg 7m,C=1j|E8hJ zwggT$yJBfW除T=~*/x`IJU\36pY[otHVAˆԉH(ti N\)cgYE6 v[y|{&A{믻WhŹ`s=EyCN:Bewy,z]7TӖrAhW;/j[ELV3Gڴ+AL\b./Z\No Ryٸ X':Zfd=&:#%W<qۯ'nE RS7;EՑnLn ޗHڇZ$ATxLE$V O!8b?y]:YIXp-`bo:YhW2Xma [ƥMaÁ%yq*1䛭Eߦ ө`O-"g!lN<0ƺ "q^o5਺zk肠jhqyki)n qC}Iwx" =3WWυ} ׆Bg.f_@cm+&Ʋ lٲ)~L_NQ\ZgIUn zng@!>%U2=X9omP~3YUS0!Ǟ{Q;hy2;Rz] K6.8+ -TkÃ]e .r KO^yo7s^ztAO22:dMx'48ø9<.#a:/E9Sf/4?oHzdF/<2pb|% ٛ<: EN iEc>geynmTeG0O QJ2tYYJrtˁ,eG5^qm/cef8VӡE_^j@.e5/h? !I8wh:rR-=]F u8YCY: =O}>p+^$ܑ+<b,7/%[^!ş8d O ؜KV]T^s18k$GH+;:B|:jbN+jgM"S/x@oUCoq*Ru)|i7+ݽq>F+Т?HŶ1#baWqDi͍ syHsl^upjGiXb4 .YPw2zٛRױGo8&YL%fLbHg=VۇDLuFK ,vqfby!c[U^xOkt=3P:ER\%KQBٯq#evԦ)m8i!(bQ;)G'^I-$W X\`k WΊJڂ Y&J Jz&OmKCk:%mHƓp(rKDb5 !ápjER8E;=PeRC唵"7ԯ4b%ͅ~$C9^ɟWҎL16k"je&oOyEdB,iW>Z~Ri7`a!vcP/ 坶UI+OJi|,%b<픿B x{q44L R!4~Cǝpce,3hG"UA6VrX-:.]8L"^!17i76NX#("_Xyz(<(*Z]QQ"ǯ=qHqخsCCVK2v$!B'j̨! -05~4U%r2sG,Bum<ԍ[x]$~ϑk0}Sh(Tj BJ .̕ud>]j'2:+ [P ͑>+j+BbMK2l]U[cp)fv2I[K#8vVcK )Ҁo$HҨ|tnҗ/</Psd9iq2sl CSeLn0?J q)4W^E3Ao TWcҼF"};j=?qоQݰI 2MfkYw28-"pr@7XD!9j  _XjB,|^xqXJSk,譏\'T } 5ZLAckA5` BiTamyZ8iy*tsE)7\ZhٶXL&^5]gf' -S)جܡvYvxĤK.0,-u'3ogN6uA߫R~A-9$g2?~8i,{E,{~&Mm)3.4Cj_dYR iLO K }I#c8jU'W5f>j'FGEg@~5u]G@*Z.tCSÆ7xPp.=;^ &ѣndyd`VžUkʽĹ?MIFq<@̩5zK" S4H#[lV5M=.0ʽ.З4/iVZ5CGð񄆥1g_si8?}B]@=;b཯eb!Qҍdh- "h@]Ka3&ȊMMؠ3<*4"6au7xSr^Bj~΃oSo.7|2WP;=4 3#2%_b9DwphPh~{@rF>8D&[/eM4 t`FmRgzWuҙL x.ch(?"?}v7<9."94",l̙to9T4h-6fw{t)35 r4C!^>U^F'0OW{csЯM%N^2wĬd=V5ؼV/4UȹΣ B?F+|V`+x7$N%2d,"a?/R`q{A]]zNDfJ3ٳE=Cx62y`i pb8; Kܶd.uc8j\Q'3ŗ>Z1.&|-&"ÌXn< PEtRoYx(p-ȭ^ʧ f~…S箸SfSzǚtW-W5-uH]4ߵdgLK\ ut U+:vD/ 94W\Ai&ohNՊna9*{ȽH\U8Om4M661bPn BG=OB" (F6J';$;2Zx}䪑T]7"m>hsy$tp𚛺qNc/s MP Z>I/!J'ﵾ\c })tugg_`|&(l{/㲪x,1AMHGpqGpxC?E? \C}!14XEU ?fı?t11zn TS AO登exz>Pٳ7h0 oc5W8)X&rUc+2'esJ|a+/Q/&/ S4X@'7~X؍BD,'2o<拎=Uze¡x_эTZs2NmކKPSɒLvd>gnpd+p"J'g"L,^5 %}o%E&k4eW!wSoH1R.4tj)H~q߱E , 6MSgUbmN{a@DHi>R(lH,5r5){.q^;!#G?bBPy{ASo䌕LPh70*D.۽uQySz%θ3D{ٱi-|l 7 6b6 4xt'S9wsf\A<6M tRg"j?ؔk2  "|u*p6,UJ0 ]P&*3b䒽61uę>BγĒfYnZhn7WYs ."5"KMS]#5W >ΡT9~|pLnc1ȚTgG:gw,!:VM,ԼD(7s]w]L(_f@]/MCwnWM@..mǺ> @dSԂaʿhL4VɁHln=iB[G*HD2j @쉶4PJ{KF\ b+qz5=矽y}׷*ǿوS[.No` ݰD MqYoa/}wb:F ?7߂*1ƔN^̬ ap;;TNػi1"x+Hfy8TY&ha =|vztD˞h34,F2[z xzKiִ;=V@ɮ{9u?{b/FB"S6(}C~b`f0P4:EK-]wN%@{Ոy2'P/͜3>&&LsBb]IlP}q:].c|2gqF`NļrOx)\bHQ/N's' ;+(ZM.hv:tՐ@Z93Xe[n$JM&zUD.bXO QV 9"d[Oo6yEb P7a3vI6yXtN8;LH?.m9sh$=[|ׁ07^n I+h,鰝LB@GD.bhGaeg%l9v8z0"`m3CHǯM ɻҦVaڍi҂gpcV@0 mMH!Ks6-JnX&dYS XPɮ0N/:h]tTdH"u};h*_`: gϾe7K^0D4qA΋YTۃrBw3C56f9}iusG &0?ό:y#~(cޕæT$ISuWW> ҈wRr:xBUq6,@[7|C&ExE`#י# "e7q3/*`\?vtQe >I qs\`hCkG92%?ޛp*Ce2HmTк7Ά ?SC byͼa;ti! ݏy;`^JmΑu #˿QMDDS\x{q 3>e- Qa+AkBرEfhwUXj#}q;dުqXxk◾;0xmpLK;ؙJ$* ֠0FVѐli"l,zvk@[n]6Ǟ7lt\ֵC\"OȄ;N]f@YR.hCx4l; . !4EhL0'&f +} K*]#:mLYt*EABV1:4FS^m=ŠQ/a0/T8̴Arq7^fjܺ/.1$D@ծ > wFS"q3wؗ^+;t}kMNUdBwՊ믔\A&\WQnQF_-41]'A+0~y$dK)ϴYSM}`0V{L^iomjmڼ*sc0|c-h]K} 獽y>!yR2څ,n%=Z < $r(s㧍]\%9CL2D8j:XE0`*OEi1=XmZfb6Q ˘t`V6tRXe"}Խ5QF r7OU]rH|z/C \Qְh ;vVw>FqQۑQGD=9][ ڎ(+a!mOCn - $qbc ڐ?p=1x"LS![J,+S) G4roMpnB(\EQ=/+I"$.ɧRU5][a՞} кlH =SYeE9S6WgosIyޯf^x&ОP;o#Hl0r|I\Cg&lnS.ʈZy{ksYZrC2N]C7`WX Tm_nT.Ӎ|Ub-+-kKSOmN8[^ԼG?f᱉&@ 1J@uemL ᆥ̝Wc\#\ s#SW-*e~JZ #3G ٤EBV#Lg piܘ'n>6߾.lvPn9'ƋopHڎxdSNҒj4 e6 4l.rif=5߰> H]G=0Ƞu <@%'>dѵ"Ӌ m7umhv9.C1'e-kDm&fb%s{,1գe˃? =v|0=\T/EoIP@wuYw vT ~$ ܶw}nȉVY-7zBm})ObB,nU+} , DnW 76sQb5`[u #=\n Cah\/uS{Numpy>G7/`CX0xMTw3w՞Sz1b%up)wgZPnbNDωYUH-o8dЋQ˅B1^rfa  jיQSᢶEL:$LjoFg9`jp673It>@DZMq(/i㓿"jnIta0IyS`-!WV\qkß a7+V#iBT c`-J4R 96yz>;-G KCIzrxaX.a>vi58wn8{~;DGh;גdgq.*xcJ;~wvdQ?aSnhv~LKD>Er4U"QѪ^q1ڤ j6]aU־_bL/,T 3N39+ֽ3+D>LdK[ ,O/ \LN,L 7*!jqK7*sC8-?D\L*[K2RگXk7\ A+ PDAE߶HBo˛"Dq8+6R.$- owtp_LQVfzY A7BuǏl)s=~pLa72u% L}1ٓS.u$zISt[z1,Ejb(:_Ӂ|á_j]u*Y8욢邰#4c9<[PGw]/CfXoȈ0㻼&5 -RDlc [,_IK@n TNXPg>˟ OT0&XLZ2MuA56b).RʬzBշWHs:@z5@2, cI?4&K6tU1~Cv\mGpfX?D,jZt}N&S̃1BU27xU}2FȄYa(Q:7?Z'U-?@^0b\yuYOKR֭> ^XQ z.C*¯Y!%X'0/eZjqJ\\B&!8;Ɇj= w.=ft ̹4D`$e#΍EZ51+6Eظ_^Tx]_䃘 O%61pH@tQk@`7Vm Ya7+n" h/鿧32sYZ9="0Un^gY4b bS[=wU*oI &)N9B8 3 syrx#A8Vu;lZ%}jk[2Q1ʹIn3n|¼x-*2}PKgq)ۿE ϛ<?uQd>[` -*4a6(Bc/GzOo,.,jd)ʕ6͖ȕJ} AXrUKq0s=hEP`ǘ ښT]7y6Ӫ8|J23HRe|h.yʸuЅaهW,>erc`&w›S]-9Eݥ/#ikbB+EW3 &,gǓ# q,WhԹH,LD7BP2-k%uW31( b%DA7%%0Rls13UA2=rwXf |W׆@iahb6Hn -%ޖGәxm(#Xvb}x B 6 ^Wy]:O] $~SPȿG٨64rVEOƮIn1.e[Bͷin3]j$x*0Ua"tk}p;Oj(q wXt{LGSzisj}*\܎g[$bq /TKo೦;8l$pgU8:"e}:3f24?rY^ܖЖȣh@ݿ*Ւ%e~*K|3ׯpi8,I$a‰"&BM+ӑ(lx 1;jȦR<[Z4XG~$k&v8q]Y$wlNQ$ڟ vE U{x[fEH$kv닃P ;_"-)^`lv Lg!oHJ| :|ڞg0r!v8wLz1~E\EoYY%d`4T{\D7Kvj7FwJs6?:^m݋Mn^Ѕce;[L#2ڣP]_']/͛o˾8W)A{jPK%{ֵ ?P-}'AS;qOf7=tꖽc3Ǵą9 WjLdޢKDC=8 H2 N>xŜ]&r/vey➮t %A$9By8USeH*v k.J TpuJp7ghۘD$k<p0ߎGmVcCBNywl{p 7>G!rbx\[Xq%VI==]/v%DHDpi]q(իK1!`l eۦk%?[[ "X4mo2<@QLF&6P`!bjJXO.mres 2" jZPq 3CaDdxZ\+Ut"Na:J0ܱ4] &F9jvuv {.GM"U;yA3%; UY_͂,#|Csׇ|C[q55]4-ͱ<bIe7bľ]c_ATFLM=VT=t:m1^R[uV+(Hh,͍GIY@#dcTQB$T 8R?q`^ o=;W(ޟ})Lbo鶫KB}Ұ >>EJ1JQ *Hc36m)S>OWRz+˜.E%8tޠgfDZJCdM|4h `f:_nl3)8 9)N0Ur5bH yHT zzG: + Vjh7Ued$uz]d˖Uoe7:ԊD7ZB[p2tjb4hyI?UT-ECt*h-&y]J)e (FSd}-$K.Z+_+B3Ӫ>݄ru6#"{6fiR-| !X1N΁m~">UjpgE|%Nޮ wP8DQS6q1SNE:Ŗ1)eIc@eO[L* nw1AHn(CPDkJн+)Nz@;e{4nr͞`AU8 XZ8,'@ Z04zw+Ƿ] Wٶ j \BR·=Bd,/)\pv h*6A ݯ`O%eZ];t'mݮ5ˣSE,f~8}4~~!hJ=9f\7%V]`Yuʐ Qat,G[#:#$GDCH6b{4 ye ])L%[GG$\@ƮwI ?, Z0E_Ԫnݥ[`OC,y{%{LѲˤ}j 7s?5O4~*fDilFiZ3Wles|1v1/p10tRn㟘iX$&~qf-$C, DO%|q3ugwn{& َ#/p*<;Y$G]yDث,@9ݒkopg] 7'MܥОxrv0FNzS*#R)QԽe%μ) >{m1褩`m&8LcjvdBOL?:xYjg8vAQA?7i͋)hr CgnNo.HSTj3zB·}! oFC0}iSM` v?ۓڠg14gF87d;9_yEv{15f@K9z}QvYnxH_qEd$7S DRVyjO'mE|y:MvΞA;cǹkVRZ/Ӗpst5݆_qGfQ5tXC>„t/1լnjsw+0Q [u]ie`,^S Q-ctd;WU'?(g2֚ӂ¡sUgn,:+ +j$վ4#O01lC6zR|TdzK̹E}N~67Ɋ_}q֔ Sـ 'dwe|8B`!7\9/\վe1lPO<} gUkzN'bZ β6(Ŵyt!e~i4TF4/{|㛠) D-m-ܳMcKGJjWjS!ڢP e ݺ#!A,?oÇUF*%j!L-wc!<$sPBB]Lxq㨩PO P+0e ;Z*oK-t$~O[EÒ}"GD[GXBQ·M£} :@qU%|[I148a|Nga1;Snl3AvyQ'|GGߒz= W\@Jb)cXI}pUҮ ^,t?] b{w]spםsdjD|ɉ&Te\^ \/5N8y5p#=ipC0E*n; M"6ݩ~b)P>=SwFȉ}jS(N$ÕƽrmHK~3O~}b)Ѵa]Ip۶r)$3?{9F1=f 6ГG@`{U/ T6pSakfE0ӣV)^fޟƙ}"%95Uz]LY,: Uz&WjެfwRoI26^7|&az$v h:8fL8fGu ?s ( pE{Vy}w(%fl)2 K3Wߊp }C0G/"ޓt&I@N vÊ_d~#Vw0*7F5ْ ͝ld0Df\U&7Ҏ3NKzcˇO~1<-C&Kr$MjB2eH6D]t s'G&G}bM #Q2H42yN rdQwNKKTěxZk8,s hM=:Z9ʋ==b VaWq?c;=vG+ҩ#bpbX1}lFGvJF\"2ClbKB0d[MC"2I?Q+i-7 Ϟ˔BVfR(41w' (B8c8v?, v'5MTT$AqSM][(^URYe'5d𩘱aE/[Ayu.pՒI~w[tڔZL?HuZlKV.y\4mSl2s {Mi l˟kjE1-U,ֻƠS} y7e;*pjBDS I(a[AHGiW`6db[[k<:{%Lg\lH<[?8{O] [mO,eGya{=C80  ǢexA[/wM=خ7)9HckNm`7ͼ.P=V]йDй#Lj=|:! )17GeW--4Xtpj7&kL`.mP^&^8sW9\o$aqiNK9,$\š 0\obq 팻K膀QAO K `oׂy(Й)]?ץ%W|>/ɑ) )B0u7^C3љ˞/KLT0ɔfM[q s(NM 4 >M2-']qM/ S<<S mp̼1ShdRSju&pa^ `2O:]mf[J}:τ|n0S=|:55N40hF\SIXbcl&;IV7ok[P)kZdd&pQNL-{3_BJ|= d_x$j*m?BH$0"c!Fh\ʜ0+꿺Q%/$D}@H \ 3?bdTj.R0T{ՓQR)HMЬ!IiW%Ct븳FZ02=RZ[R; ^0H!$jlDrZj2u|LdsA!L ìe):ai^@]h2&]kyÁL /8׈d[ߴCV,4@>P؊)v,J$uŽ_G׸cĔUB"K~ԾsIɇc'k@/QĶhbLt1  ~#!%1ɩEOA@fͫq̚@hX'&|=ӧPL+Bt_THR9Tmp_ée[ A,PӼlGe z u|&3iP+v7S#ṃa$5=ڡːr%ӑqx!H_ΤJ|$U GdZbe:dRn\#&;[ʧ{ۨPͫ{ {"L"ws@Uo=~kN̉b}c+L'dS}Y7;Uhc60H%li*iEihf|lm)hcb+I^!'u֣Q}0@;UH}~vBrRA'Z(_Ѯk NL$@'^PFWm5 pG}nr+s ܢJUHRrd+T네.lvGbX >phfJ͡=`o_-dʴt͋w'ܺ +1nl]~\s?0M>㥍.x7@ШgcG|eJ|m'8-=hXb&u, gXZz>tݫ U)8{[,8ٷ%X21 u£# xW$\ .v+v#nGrҼ*vU,"%WݖÆb|rP-OY<D O;~֡9&] fF;< GtZGN?\!+c)+"zk +ǿ|HƬ\_vtn*F}\$ AU억vOU< q()0zi* \\5ƣ\eXO>tJ;W D~|~Lg5L6wC8K7tb6xq[V?7'6SP[kA!m-H>sYֺ,;ad'(/.I'ܱGFA\D9;vڱǁ%,e+ad%& -cRe}x~x *)@^eoѷZ=I2p8CO?o;f \TuFeIUqڏ`~36 sK54qӥv?)iWT)"{-Ej5 -SvSPSӹ@ =A%ʋ̯vS,jOٻi͇kgj?~#:'rGYZɧPvԘT9O6U*WlWҮ?^=kgnq|yDdg/M2se=aG!]d)TG>3)3fء, |Po,x. ÌxeuKRɵŶm`N "Q3o_YRc>-_]L}jz[1d2t\]^A/L^F]Ո6w?nL@ /^pr4@Ŝx$m{*b|-['c_Ր&71PlD [D:&1kHqvR"q5Ccı9zECT&1n:"Sh= =CE)ȼ&n@fqxT%\ /E\OOd/"= `t˩s s|.>QhPa^ JfS0kSAVo&_E"6 * %3[Չ9ÒJ J 8G[8 LG?qsZ "!y D,'f*H@gjYwM|O7Ig`=hudS@ӯxgrބj3%3KukΩzeU9/n#"@΃볫X 8Y;ݝ7,o6 m~49 o I3l@S@v*b{/]ig SZ!i^5of` v!g-lt1W6Ί^0GWA5~sH ȿ: *O80EsqBBS9Q!mQX/ETY5А]WV>t8V4qfrRSWхGfүa|,B(4Md]dT%)ȃXIVITՀبh8e\m{֬RZ#7+|BTh{b]& EFEasPI/{Բ@|42lJ4Q1.rHn1I2 ^Ġy8* 42dLvK)"n|1DLBnrɞGU s.qF̬[v4?TewDze-Q7G<ْo* zFjd7Ǧ[20L^L(cO F/hwVAN"@C?m5u)>2N)A$f;ftó#iW[?׫h`⦢EhU[txWMl1u.fӚu 4>Yn{.>6SA:ӳX b}{5NrHPl[UcGW]5^cdb1SҒce/XݖZpiUHu,]`ɞ< Jf[KkA1 {$ f ܬ13>h[}!MB }UHH/aU-wes NRE99h UI.P6="&Y׼^D9MCн'(m#vu(|Nq'thnA.h~X~:/%D#xZCc6nZ*cCS ۱bKOVK_sd䃞x9M]z2f|.p*Km-#3;K> =WR2Z1fct6DپR ;wk{E_amͺ|kMz.-`A'Սf:!Ц^e??KO[ZvUp84*NgcG4˼r=ȍ/3AVQ)VS@e:5 s[^ɿ:W|P >>S[ck0QdS3`TZ5+xleQ_+)LMIֿ@NB, r{r݊ Xor5VC ՄF 08" ֣}:a <i({kA@zNrb! wX(wp l|fW™TޱP/Ϡhcg;ء71bT-0 :hfAeIXU(וGht(óv*Hoqe}qs*t_*xGzddO^g> Ue%վxc'[,wfy%- j4bWX4Ia#E,8OÑd-HBL%$9j2Ͱ. &r-dU 0vDӚ͎T-{r~N7&пc;{KBt[7dEY5Ù*ح㦱G};Zv%8.&DoJie O2[x )U1HwQ5WwtfZ+u;3mOu2]u(>1Ɛ6"D9JC[_4ؼ`0'gV__ֹK O2ܓ6#GЧ *brkT{sp\(D$ろHWTvBש4m H|v/.wO= !=LH١C*솕bKٙH~Nܥ!`hr0u|z>Lkyq+M DW\=|rdWj"U޶DY5?,vl⅌KJ9>8t3DovO %QZ gN[`G4K>0IT^sv"(wŒy'+"Yj;\&: \\q/4Ξ20>|W\K"Ni5@4n<:F l*=|\OfL$CK/ºTzm_@~ aY퀫9ˡR5J3Z9!c&xWLsTƷp?|F ["2~khh /1(RTBl2ZY99&Cɵ+F:h!Hm5?8 G!+ ˺T:GHYዢ:ǷYWOV6n{ =(:Ũ8\}vS.s-"d8`xa 2.R^"PmaϠ%G_نiLwM uɨ 2u8{G$9!l什d.w nhcyQݻWX) o ^3cKW}ϜaVv!-RB=9lBX{TC ~|f:|8IWA#*5W gmlz-h ЛwE]EDa4Z)7L FFg"^lśefJԎ[rDfkE4b2\ !iP0ehYr'Kxy#ثԝQx+,i<@?}B:Px-mE$.[ht֏&\biIiqn+\w\#M&evsMQѽǪjZ_!匷#|0؍L[яO9~َ. ]pЮ7a]V2AƟ_:*=:<4H>e' |[-tyo-n-F8[&k6HND߯*_Gk?5Z4>oeA%| Exx?ݪbA ͎7p_[;`Og{A|E{2Wh44"P͖-+@.@t4#**) *!L8;{t-H.K5kwM+@I]MHitYL!5}(0 J 6|YPL͋ 1hg7DіJ9{1ANjyAqq&\k[ ~ct\)Jߔ"n.A^q <Md!7åV;Յ?5V$t#"b 9\,\8R/$im)9d6CÈՇ'Q'> [[=p>+g _-sf{@U;Yxm?6ea ; |;:R6ϋ~؃^NxU…;P(Xg rZ+ Ѥ >g{˕`{ {:ab// bq,] {l"j '9.,=Sy>3]+O}fSCdnvim/d Zg!8='7Rϯ!T :5>z c— n,>^tϐD˜yzv0B>mSꑭwB6i0~ģw?tG5wH!L|)~̗Lm:7Bxc7@ '=@Tdqy q9DpTi ZOގ._@CS#J2 82p7^Ij|6@3d?J+>ZOg0|}02 G:0-TCa: rf GHk?J=ڮD[ou]K/hk&x*G-ȗ(ؽjִ3q&oX"Ħ$r @AP&x.f l'r(VLDv1k~QJJVlMz I6_vL:$A@߄{ Zd "L%Ew8wB?K]ئx"oVڶt.}Sx8ې<0&+9psdp̉gp%0Cnwb7Bj8" ##7ᗟ(lPvE/75@U(ޗwykanFia4^Aw~N w|={ JJ P#X63&. Blĩ云J7vp܅qM/ # P>&F2 5NY8c1-qLrKk,eϐwW܈sgV݌:7``/j_ )3_-1Y4BX|J.ym cyVsVpDJx1: /QWM0))>;S֜ )(W?g(US I&T 0DS-2e򻦶@J_mq_k-a: PGW]j@c8gK]CDʳe<:BwpK^@P{gU6HIE]- s}xx2Fk8 Hgw'W؜hH#[yZL<.8UYŜqIMac+\\nTH? 7հX?Xfg wNK)t7A1Q|d^ ۃ!J$\΄6dZi]m V10.$A8ۘQ%>9gcs gӂ\<'@J y{El k)_@PRęoG:\?ш-PzGnGyMB_Xf)>6)J5pW]ens>i"I`!}n̨OW'inLY5NaHWJ *xH$i>X{H],`q.:ۘ33| :wGtH;W>Lp x2 |$twmoPpH߷q8܂.e]酦 a3_93 7 /%xbֺlhPU"arW)nVogcr~44!(,d@;7_ӒdD?laZ5[ ޹>0Wֺ[O9y"zE .`Dh?`nBf|CXWkR_+ZVBm.ytVx&1dOh cXJ@\ djޮݲU1>O9CG:BZ[ُ5{S'Ar5Bs[khoYJO\ZNEI6Ҧ1HZA;J[sC~6YUZE:QsqsA)N){j܉@ 8.ۑ5,f_$ :"%TIPL?!L?6t>=:WCH7l^MBC\I !g;u,x ɤ0x{"ˬG4'%1J?Sp71΢POEl&OD3../lg%V#@}"8O|DBlmGE sFHP_Jн./*aA$FUG0E1Dzдb'iE'ei)H1ZJi41[C;F2]˞ QO\/Auhl-/}t@o&gXQo1ӣ6Z9{]>:Vbl㝫HHcN ;u'ޗߩ_SM'b[GB.߻6+hƜg>gq94O0!յ,Z]{Ӈ>wOIHE?FjHWy0aGNf$M;Zt9.@JwbmOFEk⽗j;>tPewq$^2x; $X{BGñꯉɔl*Dc՛l)*d,j{Q#ܬb4HͯU)!2 H _?A XsR{zP)"$ojJ%ޡ^+t@ k# _gF( /t\'RDa#cCVkܢОV1Y) '4Ĥ'3I#ʛA.,2kˈe { _-sЅF1縛F@Bl2EsMx$V2&&hH1ֵxKUT1Fzpd5!y>2맾5ydr"x1Fʍ#eʿqAܕ7h)SS= ɞ#=5̨s7*~0&2ZBU *jHsQ_Rh 8V_+q? JƈE+ݜ*;O8KsW<)ۀz<=\#byu-ԩ\ݟU^\ ?1lc^?")ύlH "|it뺛f˺<<=w@4[/\6cQׁ$jK<|i]ɚRP6C$3,3=oFWފMǤ>? VK҃np)&r3>1Qf%HHָ#vƝD~{hׄ =C \HAO4K2;KHD8vjc9Zß%u(f-e1 $v<>cS!.1fu-HV}V0 ~{࣎;;Vnn}}7藄 EՕ$(<{=|e&o 9EEmةtWMe9-'zrP'rh`FovmnQ0+B?+j&AD*"0vb6TZ ~xͥئt|Y~aOrAlֹYşJsyOWh" b] r2!؀;,xS4!͞:`OgՊfwI4d|Iu~a!QPxܱH[6ņ<AF$"j.2U3KqNjF}D_⽅j & +DW/~ ,9MEW*n4x̶ç F犱S.\=*{8g%q%tJ@Cޕp`$V?ytNd"փWMxK4ͭ]O;vsqh3gwBP7:٭u\AcXzr}M ]l Idg>y9˥PAiƍw0 nz䃷5mLV'$^\+}6?{3!qZ֩OĻ鴡$m Ug}?'J|@aPdC\eaF,:## NqwWrQXLve{-vSq'PFhN(YEhomeWvMthEW{Ǡ nR*KPW8Y諸7Ë˞ mr<V=\ l` Ƣ\c < r?.ݢҲ~Vui~J=f'!~Of1ڕ͌m#Bs[5}-wCРTC`Ȝ_|a\JgQ;Y`uwV81YEcMjaك"P Q1]@l jԭxᅥ1O,~2t-S} TnRdtOxɴXr̈<78aOsUd&$p*_n z Yː"Ÿ-Kc3@Q^ G¢.LN-S;!-ҩ?c׬enU:s[e=18\u=%f|V:H _7vnv hx"bX.{L:0'p`-P_^C/ҫ`G]?+Ϭ1ݵ0XQSZvv&6W.J0X4= npq63,gW0 ,-B9H\7s5Oy`^ܨ7= ~Տ fkLp܊3#1.$X{NR`f˗c,?t-6IX >b{ڂMҰi,2TwF(Ji]S?a<.1毹 KG;_ g YIJD2+tzC':4Z Z1#c8w%f3fŖ2G+SGX KqnhΏ,ny C]` j)u# [8c>,C5mǥݙC#rz /A53cTԠ˚VSo>Dܷ'3>Y$;:ˢJ J7&F 1 ?KdcZF}F~->:@O/=ݢr}$ǣ&"mu)up mq 'IQ& E4/iyvh\1 bO&o%FSwkל3kAVR E%#SF|f>7@?F(hI0OefV%a{.،cJAɛ2d S %~ĞTMHQ? >_2=Y@#hSƚ,q߿1#$oΐG!uSJc5?bnP79Ѡ'Wi`PR՝/O|ԒgO&9WczؔV/fsi MTmw=~+({4L= Zsx`6]WkP!Kog 2i"Z΀wg$FO5Yf0Of:Jx0Z:"1Gxpr:f8p!6s{p7˓;Jmȉ\iȱB`[5ѳ2im Quv/Bm'߉jD99W-Q.- 3[qrAK-|ÄӽiyNvwH&BvR[)Zu93|݂Uݭki\de*5) tbB]wtW e<5Yl񧸄La3{8]2/щ9/FO--.ڋή3+g+vo6qJYu-K1w!Mrzd?2S[,bxARkq#!y&)Ӄ#zzf|}1/vs AD,@ܮ@G&m޳; Ax;?Ԓ[u#͸k1m{ҬfЄ_" Vh~];{;{|8,PZ`|EXL0){ōgE,Mכ!Os<`e<1%X#{ IGv/+d kA(xsR| Urc]UB((XǃOm+t#2 Ɵ4+r3ٛ7楍~4 nݧOɢB9|DfH;(E-vbQ`'҉ƥHJ7>'֙hۣzp}.s&:1~MSVDD9!Іpw+c5SFOO(NqNNo*[ NFtUP=v)&^qlSxNTg5OmE5t{Lj)USkƄ?0o ([I|I%&w:JeCȟuǸdr3 K2Xr*1+QcTu#9uUQGiaPɘʠ7t>>&+KX06 U*|7f`Z +O詇Ua_۶_ek'W3=W5Ir9Ga|gCϕ1†5}Y.aۢwl, m6_TCdvyES7cadJIӷc̓MK+{N@ɣ-@dlpX rcYw7dADtGoa'wjitluLksthڊ@8%'HU?2e{j!DJJ EL ȯ"8МLY1k “'G 3:=^*̈ H Jyٲ֋ wp~5.R#_Bg{>,.T{Zݓ>\r3.W!xN+σXoJC.ȓ>9sgAXֵzhvېgіeu4ڔ窰G;G~8<.5K;hd|(Y/]t3x~J`]q" p|TN2tr˔I@RV|/ mE-af7@ o64D<Ёr1D㙋"[dw!\U@~\KZ)j/-xg[' (>01C 8#=鞧NZVnܵqko+Qeu▜lejUxzղiXS cX 8qgD_daI F8!1]=LdPSE1܀(NIkwK5QJY_I,g\ HMVȝr5;+n70(x5=hRH l+rm[%@ 3.h軖OXqcF{* RZ('\~@wpKQLس&܃ 8#Y,SoyuXl7Re.ȷ8-z8A)-g("3pA~T*y ^!C_ngB{2ZcX.hZ{RHKFەeA!.e@lej\E@XvX@;?"Pl̛"ml[`mʔQ~UsE,.Oyfx>mxTX`_Tiyg6n%b+5ǺU{PkUo/lq}W t ]!Ro"c4H cIY /٨ >X%Rwv2v&5&J\=cBHbCYtDD8jrH?\'?{&Q~hwMgpyX1Ij7adu *Mi2|>FEO[<{?I7n&~sݛnXAjcIRX? ,?|o0l?f{I{<_I94bbxN`cuK=-g^{\!QYijSJoӢ<(DW6lvNTWy#17L1e ygb eȶU=]ui,P+cOy)dw=IM>~YO+L-Ko 1"ic9}@@dUoN0eʝM^{[61MF5UmZp7O:&uJ(,._ɹ}` jiSS-~&*"M}MxX}0R P7*j?.,Fx[[&O.HZђLq#!>&se}h ^;^ND|d,V˝P4>xQLǢ%h19r\~,ɚG7R~kuJ0K=_b!ʫGD5ïp5=gX +{zC3\݄e{X;7F@a%2'IaDŽq3u\YrǭP+Aa^a9:S.m'>]ǤF\o \s%OoJ0:."2`; =ӻ;R*²x,IhȀ F(:B|)}ּA8FWN3d߫+jy8,%]?4z W3 ^>(|a[x{~^$H Fvh?xYl(#TZ.yֆ6Y޽,gD{)' ҫxd83rr7hnSn߰]±WE?^J{̞F`YONdMh^d[HΚgq5|znP2sFDF8|6GC׸,6,/ƃ:e`2m&RsR>Z!YA.fǧeRLb K#>D"+t32qz­BpeGto\1_P[^` brm*1.Sxb CL{K=E4{6 jć"dga\a:e` !1$%2l7Co8!'IyBHO#wWUEc.wb=?gg%c,Q%b:NЖ$ItF+[$./]kiģ- lC' hj>4YRmGwˋ^4棛_ZM'(e6 F.ОS+?jU.7={ ^Gbd-5+acϷG^N]0B"/⚀]7_3p֕V0 7t`cgܙ + lIz;+o1B Ӱg'~@dYW*&ڣbҸxF_}$ \l񪔑*hYl0bCھ6"=QB,(X x#_QAD$'ڡeI C oViUn3fd2 W!% &,+`,Ѹ0 yqhEŎ:Ku<':yŠuJ/z(<;ST(,=V`E C*D? ]Ѯrpe[J 'xIg&pK 3F4}|J҈B!3VTӦ!C"J$yl#D|+ЈȘy ے(߸-W遹<E4W [ﻈܒJ1Dj.XLIV ( Ut rXL wK *%yn߂N;ޅc?qP_?ֳs&rq/}m-HVg٨O?X6{f2,qv#``Mhx$p4 [رJX'k1h@#<egӶc5v!qDܛWwpd.t >[u߮n$W {2~{bω5^ZSZɟγ DxH&&Sz mq;VQ4m. wlnokfօ}UG41ӆ(jm*@'/:kn%9gnf*[f 3oޤH aq2N;Q&W-Kv(@=f!~<חbRT*rZnƵ Ek?dAwL )D}E'{#iVWz NY>wSp[AK~f^9&] q4;2Ҕ,,.줱CR:F3f4X-%:! O}6yQ~rZdHPmyq]+܀@c dz|j8uň]Ϲ`p BtGK!.@{-A?Q.hLܭn^n[@ ЮiŢGD+{Lɍ lχh/21DzrlX=,~r<^hO}):=ȮB/- 4Ӭ- -/Wy=/v0 &xJj5wrN8<᥏M 9S7QxzI@קwc4m\آkb>jc`xۮK=P/uyЬQmh] `;Y(QUXZ8gZ{$ج**Eg˷CGdq7wXrKBDM̮b87˯ⵛ$/|[/ `NYfX6FXOUﺕ&0,/]8sNTqo?:L S:ǫ'd R0˼N{WQe7lP-@E ԣާ~%=3L7~Xʬ]%,T,j'|*VyW ef+ºƃԒ‡ZqmdEb }$2jmo Ӕeu:S[ "C\7h];ACDa}TlG)fc!q9B`C{yf)'z.O@}Ԛu4 q~lYptNݑ < suǛ* vo Ou|dBenR2~"n*A6Ώؙ(#Л`nGT=R!j_.VwWJ`ۼCv $&w_Ôgɽe'ޜR TFDcaH濏+3^;C3W\@)b/nY̩H>)E=V kį8v\(4kAâe U\CZ,Wl5o(MlDuHq_n"zu4 rn"s2sfwʐ)OH< n9]K+?d3 ]TW8|l#WeKl-h~[ 砏J`@r!!D`3\TƗZHƻvs<s2 <NBFHR;5PGCT^B9 /*D tysQ+O'rfޖ2pAS ܅n.Lؕs+c/}~NnqZюtNGX͌)+˫qaВ, UkDws$tLu]3BIVF„uxb-N#EUMUQ!=u>>.xkOiJ``@X6Dbj?72yZF8zbF*6jǝѠg]<9 S|#5+4n ǰtyB^e2تo9O L[{ 1~h8°:_vwg'w{3E bYeBOY5]=bWռPYdAG32i#o$ B!:_^VV=fډ@VrRV ifoV`=BwD͹Uv{N13y( 6Dy,36Y{fyP-LlD9EC@oYΨȍo,lTXQ9OX{mw.vKgX]Ԑ kND,@wlJ/"qHɲNOTaG*lwz׹#WJzWS4DGj #Y2Ԭ+{ $.?H)kho6kUp泮gIst{/S[θi(;Ga`P=zvc?!\)a°!RᖆNTx aZx耗v}/m4&MXՊ"kl#0;LG- O$L[YI+U?:$7ofL1 ,$Sb|-pC'c8nQ{,<[ʒVWZeLy8 }B!FreL$!]jB։Ö,6rk+w(Dz(KS,a (+Ɛ_LPS>zNa$V.9^$u%zڅ8C &_E>ٓ#e>xܓV b6 )׻£}dsH\ q> m`Q9KeG(QMgP` xpYU0k%:KhqL=J~9Yh.31mR'xfi6gg"ˎr)ؤGsTD\/bL|[cK4du+P7'Iqrn  9D<*iZ9?5\hLHySSz1=|h!K jfWX胲/C'w5;A >{mI}t⹠)k¦^W$) /'$KXtL`>T#L!S F<Ɓ!k# ~4!F5_-B |6b껱*YT-7ɀ=l USO4nYmSoWLfy^C9lEAa \hy}4Lv_kg~~Ɂ7qz7`nd%Uﲑ#=~3< Q7"C P*U׀aF1叛]5 7qΓAih5<`L] 68vqZo fV(;[Q .ﻁHr".⏿>kY>"GxPЪfWtMݽ^nD3DÙ)rm5/i?i{U==?ltBIewLjޘX!%y)l/ܥMkv ;PT2]A朆!]l{7.(gx3]4]뫃yHHþrIiA$n5V+Qp;5NK7c Z1Ԡ;CX]vo?\:Z`FqČ2RTͬQ{01UnβM加-)n,e_Rǣ4?,Mdfȅsn(WW c!\ @]rn vUyLn]3} _C]v*7'?/Jʲۼc9$)7Cu UtpV跟Z {GjN-bZb E^[J (8%߿U*E>XLXA8kkLw291y#or'A}3u丸Y+!DSK_g<2ٲa*2jp} Χ4A7;}}i0iuF=7[`1^Qt'n~B OlKv;"^̭Z*#J]Rx+ޙf]A=IE0;m 196{\Oc{B?YNDbb50 9 lE^V1yoR)0(t}@#̞RX:HNu6ioE+?ޱHf&6^>sNeEC ҡaP*I)zGR'x*D+%paR|ζzRetaoB,vNh|t2YM'yjtNNb'b\dANd47l%QCK<W޸þa%щYVP@\V4Gi7͇?G,oDf".i*oLwEiv$PQ XQhLdd3q"ʓ9z/,~S J;Y &JI,HP&-~-(KG2f랒92N6ԕϘ>Y!4*D =Ae5>w:t5^Һ`K lOOZ?竬~1 &#M8Tt꧌d%{Y8wf_Ľ0cgqܬH 5ßy2ҿ%~% GYKh(|8IX\l Ycl^My1n+9@RS=pٸlKn 5A1k1.E.^k) !v݇3xy=Bz))GS\W& pE|yDBy;MMtityx~"*zӸ3AD/+;br0Ŝ )M6C~,85#DNKZu 쮞 .e\`|M(6o` ١= t,<+׷dpsRy6rB4S/ױ89|_ TGtW;3{l|~\d ds(>*'){c26C`4cA5)Bnq>-[Əl zy(p2'>.7V1ȖhmՔ>mg+w!?!!,ӠgaVµT+D8-NPH\YB(#Veh枠3aj;s.zB! Et'{a׏ 41Qd!2X;EP: _bd*HӘeY;`j4tτkP;-R.lcXSQdRA*d(z$pEkQh =-?4*VH55/h귈y~lջ-^rDE k֞@|GAٸ2pf8Szb{)WeXȅ ]np͡`ttV3{(~Xs^3rE zoC:EKpc#y^j;W,p3/H(V#>Xy,ƱoY29o< y$(hu 0O z+v T*0C =,&X{WV(p6N}8;0gt1Gi_-sP,jMդ ^=@݁1%8HD8pĠ|}^de! iT@΢xT=;\1h2 'u/o 1i_0bAXmMEԭTD9."G8ycM{ #[gvŜc\8ԓ&Lz\ P XrSaL00 {,tyB*P45mhmC#''_$nŶVz|NdX;%R&KZI+m2mBخ^s`RC{@\wD9c=wKVߐNʥ(X,_z?Cf/VyI/2/2Ë0(9L7AricqmɿcU;ߥ˻Ob;KX P6H}"tF"ǒDg\EˡmV.(! 1ۺFDO(m7LGqJjqnid1{c3!-> v %ިl;[W ϐj"A4>S[>B,x]*SfB1mVg_<t@I xs>"i|k56W@B 'bsLa#ʗ(!=A&WMЮ\ &ZF>Ge]%35D y;V>*7o=،w3ko}+3kPP!t^+z=DrbP(Bu,\WC P`E^S7p$|C{HՁ,D;4Iiv?R6P%W$Kgz9zn}fMCAJhoegG9@P ͆X<V_FN?s"_kLRVpG;H"ٛ%D\L;[ff~ /B>4BS1ҫ,$b8ʒ(Hx`6cPݖx NWZSA֣?? _2T1Q$ T|isV[(Y?e-l:_g*[W0KvR~D#{9w̹?YaзT~G7lc2&:dExz9y*Gli3lR.:\:%#8domt֘C=VOP$,e2\կ#bRD/tdh~S,9FO;1s|T/.J>_մh@C!o\? ɟ!4qlyM*f=ORb%Ug_&A`,RCkRpZYaD]_(m|jеaOyܐ ??$} m~u1Ej+YH.kb8c ﰺx&0-)?R0#AɟM;اRgR6&HI+DO8#Rx+yNj|d( }.H_) AJoώp+ ^p9^GLU 009!ǀ#4M#d"iɨ7qKvA3U9ATur5f#QwF=QuN췿J@ {LԨAK~iF?TźrZ^0mk!t g$ #S2aK"nƊ캁BKq /X{={Q(ϺҵR7Rx<(mà:vwY:0oNXozLPtKun:$EBK>L )a5 ロ;P@8Duv}o+a2@}$3`:P\VSk~6EN 06Ҫ:ʤrnUnyN#Sڝ_HZ.xa͙zr+L>஺oVKB ~Hj|gUpD5zBb pp=%Z3dm >Qu͇D,+a QD \y|QۻlC?[yRM9qQcHScdmv.H|eJDDYt9-ɛW )):oyԬߠp{hzgՈ{ جEy'ف5{.ir)M txA'=݁< "6=he}9*mŎ.>L@rsOzOv"#+<*'UEӰfQv^k0hǽf> >S:K'YCU8>Q al߁V|sB^@KQ#`FWфIri/D.0~zcGqj :Yë.z<(`-\ T+v}/OpɖaV 6_j4؏u?*it#3hN; w6SZ1 @q~qD^;ny3Vθ&s=è ll~+EWs.E:EQi16#` x?tf ٮ[ј ^I1FxJ]*<j!mCV͘܍UFM'_ B S,`n/{鼲^0[NB1K)tI ҅dHBH挓$\N™7xB +$-f ?>_YymmlE085f"N3DKT]`V(Ji 6܋l%Q9I=+LEـX`V[3 ߳ 4A@`bX^Ef:OE5[o v! &.ȟMMyPFʐ4\ܿvP.5=c6X(O #ibW(Ftq@#Ѣ@Tp@|\T$Xr݈*(9U u$ 2jc"1p%*%j؛c?ɂj οNOSBD/TI3e@T 2f!90U=Qi`lMZk=*K 8DeٔJH~MKC/BOZMxmodۙ3)gVul [oF&NͶ3-rF>bILMnXjLy,F pphx>#p9ȕ5H|0|'T>r <$+;YagA˹@C{ ^0l -drHO”\2Vdu+&|&_σʹa~ݠ> &FJ_Fy2(-L.匁O4/ zU"7bNGT̴ CL1_5ho? W1u*M Z6qB%JC0FK` |aHaRMC*[t+/鱜J>~PH{GY평 rIj=LSD&WEHڒ5x^&D(|(%pL#lU}Xf݅$Kq{>s7һ HF36K\Q/ZܓӒկ/ jFfJmعJI tcowdqba1h0R`u_-GA;M)M7q1HV[,])p6dCH <ЅB"p ;Nd3ա  l/[/#m8wn*f ~9'$>)ߌWA'C8Q>bAO[MNFPKEVw| p,c.^F`O?TyǺ-lkNYigZPT8wؤJwa93is^WJ\J;37YDknn(K"fO5z-Nb²<wDȭc8;^9hĨ1("H'VJYlLi oћźV늬:21a+w j9WSPrYRz"pE/c+6}moa#K #N#rS*.a'Lpo]Y |eWøGG#Zj!84InWAXrp H(y\C]`y\E95rT5Cq"wHBi3tٚDža~©3 l|uVx}F`I϶Y=m;MLF n{5iCyN`yazT6v=kɁ]E |D[ Z}`n'2rbHe]ْѢ*5рuI" iZ7tpF"PRpĿr"a_N|oFGҖ>S|,p˥#TxPaKJW.fVjӂ[ɹ6%4:vT$HPN ;|kw&5aC$=&[>=VV)c#&<j&j L u97޹-D**%{ na9V[Dͬhߕ!h+;HVg-B 8ai4eM2&WT| 04D~ DǖeƒnٛC}a 1`'|°}CkAm{mO9z4[l{y"x.@:IvJh-I=K&;N83KY9)p]>0<1^5/xg\d' LIŪ};6L΂mV:k)Oql]ut@a}Dlfo0'A唍%TЉx>WgVJHjeIP`O!D 9'Lqz(1xjEf[Mj9f l+I0-.m` շ; o6qNka&Oʛldme?;eX.֌aX sLucz4K.]'ie1'ڒ1 v3Ki|NҦzMz56ʫ.6t͚pT-iD./CMVIBR>9*\4csQY]ޝɷCR<8 hﶖ0yy?YA|BKUHgC>OZРj"6aórtkq[M{Z Ņ4km,i_iUmL[H KMJ}\gG6:9c$#`G:E?#IȤOdR?/(|%+7sJPGܪ,K1K/T!-'9i{ |MQlSەڑz4Ƶkofi W,ͥLN&y<-lX6]N%PZ.=;k=J5@hKYKvT/'1zd}cDb<sܟ쩹_6E@ /FP(ͦ[oaT7 }Kg*K ʘK 3d^ՙsD:WKJ$y=Ve^.-.jYI7+LsYR. Ri'/6\=Jxb8ݹQC9 ނ xDzz-YpOW0pLQev*/@\^o >? m;=2k^5Ah6]G;WP{RQy/sDRK ut+@Xa[l9U5mIP`{.VtG!&vM֮36g'Ap;&S)}))TqNUG<)_`^)@'"JOuvM/^7|ֆ^tt8a]TԹai͓͟rg'[Y1Ml ?}"sUSL^ lkg @[p 1gC-Mlr^>5$2:m[if^GiהS! t}o$K{,'W0~ACK~"'[)A:'=>MAz >o=hULԐ4XAһi^)<6ij65T`bŽk9,myCBga%1 XB&An cl[U֤ftm@c;C?{P w8뜏Ga|.p =\jt@̠Js~`A|=?5(C{kq9-3nh ɠRbgpḆ\v̇OU lPO[wO``oU-J澓c̵w,vk(\zHq@MTb1ؚ( b:~-O,zV%C]=^֥q"Uh!ت%;l\[)^"fOO82 % *$Ijf N1_ŷ !ԟGC7Gfߛ7O2*~Cdi +]ޱPq!t?( 7G5+O8QFN# f,G fyxFs܀Ԥ^9od;nz|>5d}P$y$|NAP1SZjWJ7t H A٘qj]%a}Gzێ䪏%Nlqcɤyf@++B8L:W}?m fx|7eND/Ixi֖s|3#5Wb{gqHCzzO_gW`G!%L}) Z1)(֭&䎹W/2k6ԃsGwDŽ?k$ri5X󂇮9˾d.|օ-;9̰K)Kin!aA^,GJ|WW_]=ʴf  B{qL$;UܸJ.OI(ha 4f=Ŷ-bkm7G!ʏݤ0jUft})ʖp7F<1}M@tvP 6 p 9+}]ڋ!XZT/"!us$Zv&22pwZM{%XZa2z*pxj5r$1B[$WJN4~i 0 1ډ1ŠŇL)O, вbMj~?Śש#$hZ2TQġmJ; pSFn2A"NJl6ʸ: gS#0Q8^*>+H1n`H}t(@3dz{oJizşCiʍm1n7|\o䢇"M9NӐ_}ayT瘟asOKKh$9_a;w_M6͊^+`Q;^ʍU(*hJ.#7@8Az N(و=>yb|#7yR44 (K0YIj@R{cHZ!m-i!|=!#t yxrWR) ;HʢZ#2g| +{002+j@=M\`3{oFGr Ňk: F2=@Gss( =,qyZ|J'=\Ÿoy˅hs@M=X sGgPxH(Y)"'q+v%T?p-Q>DDȧHn⟳/\-^Bɀ*ï_m.m9W ~޾9G^N@7f@R0nӦ7ev2G۶]pu֍b&3kaRIaݘKєOy-K11kgBQ>΢! ֖"I2[Ah8lS_"|Q{.UL_x j =c"GYkM{}o| qoAE澶)#D9kQ(!^8k^3i~A.gbh "/eSsT&bP&6CU15R Ffe'|zrF!10"S qP@FOvzV !n{ 31i Q)A_g:DIiW|Z!^FrZu巳42f%.&h,8}7@I%Rh %pÃ$7x iԌ˵ 1'"F~*:\.DžnÚh-+,4TrrchgA:l*(bumĀvhqf #U`BIZkdI~bC2M: anW#hA(,?v @5O^᧤\tb.͐6\o =eLuA!@QMiP:pIuq5ۖ^wAfpā_B#`A tїV||F{$/''LrʹOa .lGvd<]V)gPOE8oujMꤦqA8Ș4 e׭.6!pzX۪=q}8 O qn«J/0Zg<TU9ʢh&M) 8K:0 /`! }t97fXm_l̇&=+=vqpYނ UFB뼾+ >B @gvVbܡ,rD"jL+"(h(ʠ$yu-5bh져<5Se{8S<=B3:}f)Vr*͟n~GCjgڪ*OaI+k~:(ie _}LT 0^TQըPSX,!rYsPmW໑ j.wi;G6.atqc1FRQ\@ E9N5OdbB+i׶NQza6ص>\X}7#k6gD/kdX; x;@$iݷbǵr\-uKRu }"*)7~;b((f-Q={c-|ɾ@S..۟ƿ_B\a4Y..Z'6TS(/ĺԓԞ- z5:R}_n(\rS 2<&F|n$ w^ cs8apá Њ8B^ u񣈫a ^-lC9Wuab3 "A5қ4;t>'ó2K{ +cj,&핟M9`̓LP\ 2 tF}iSԈT[8>Y6/=/^zm&]YRcrO 9Ա>~p+!׍RݰPȻ߳ ٫]]@vleKdXl0o`I^'*j TkRh0:Q@aZ3o֭XEMگY[cwbб0 -51ëX5u϶Gw CX^QLD)ޔn3}*N鈖KG !BunjdD?\0*8JqP^ߘ+y68>ֵ#}`?gw'v )HI/vɽI~OSg+L8K8m#P5QRZǥmVWP!ˊϲJ9.S is8`2QiNlceCSlh7S >Gѣ˧`w铼C(^|o{_k )Fң[l7،Hj v,N͇_P9 ~S5%2 LV%!$} uu4fU:(S, oF8.0U}[ +ԺtxEk]f_-HwADD%g>uxo _".ebZ䒤xHng5ccx\]wZ+U͵ TጠLYID5CPB\-PrĮpѼzwkiψ2{ygޔu Z @ ^e 7ˁ(\hR(;6|APuܹJ<^B@p~$ϥ+P{@fEi 'Ò_;>Zš>(7qѲA5hm?2{h|.f3܋@9z,'5Kx˴_k*ʜ-bgwqkrrꪲH땣0u*{W}/J+IMh'eQj3 -Vr\]KblI+SS` $MX}rȣAFFs]`Jn"Y 9jwFb{8 r11 %y/`l :6 $ , )쭬,VpH"ZLn6:ES@@CI\~0h@;GjHڝzkh&G?B;܀}vT"/\>y̻%D%+_}Q׺MP㮣~9 +p)ôh~i.k#?XĴl^tgVz:Os1'!ټM[Dj4-8nL?gGMt) %~_ xxDf̽pWec?)fUe|bq,ze ;;"Zi}XwIe:Ғk >&T9T/RBQo^ZҐe؞ #[ F͋ITr58G@ڐHv.cZ}.A=- (kO y]0@6=%uHXC9*Q>J$N<AT2lS +ACGSR3)tm>T's!* 66x9?khw'='7^:3K{?ɳHgnK[*\n p/>Ӛ'rL2I{b %# j9|!JŠZr)ځw ۣ;kAѹz.1tl&~j'GN)6;dDc;x)qUp#(V:QzCP|mt2bnZ%HR %uOv(\ri o}Iimt:J^t©>` XN0bpH %[jyVzb ךܢG||^5/DғAdn-1V* yVYۗWUQEX_OrJFr85?ֆte>R逥2p㣩+P/m!RPyLp3F6HQxsz; a# "Hzh1Oӡc(9ym*2&1jdt7ÂF`9.*!I/3ZuZVZ7(Ft4/0BGJ\].TT{uѝueԢ[PgORwyLQ}=qȂ`jj3%?=ss B E5Z vFUS 4rWT=op6o~B2P fMn$NzL q|!uSbwTmfA*1-z 6zFPt@ gZtO,GcSZ 7ϿQPRkl ϯ\dE HtlFΝ;C&3 0*ݱΩg~xQ\"@:^:RS{' _(hz,oS>Oyd%#32G,=k:3v5nXvb/5 g!s!'˙AYu }Rg}W`z1Pޚ0Aw=d_1G*%)\$;2݉*+8v[!gяP^թ7z<2}> QoR&ܦWQrNuڕ;0pZm]hVEQtz@(Gk8Eѻ%pD\ߩ!>tNtF 2Seu&o^n>@+T*8*rHHV$z|)GR8: W2M#zz[fhԆMws(APSeb,ca̧+4u5ZE~7+oī`Wۼ4p}F_ıUg .I>.{6gQD(_^ڿB{Q{.E?Gc:\N9⬙_en+1-ݒuIz&Ri psJ\5cV S;wڌZ ph@}f*$IKi/׷=[*ˠS>wԹhrsDGo]y#h`OBA va_͔5'7mR@oCi[ladR"`;xej3HtS_]GR9Y]ߑomYIe<¹0T At 4qV"+LkP+ыzW7m F72/dUO  :Ե dǏ]iFR?iŸׯ2Ys5O\L#PrP]1t |Gȉ٠4r>ۛb+&*ur?TFOW B`zoh}:k j֧0R;cĐb/?qY;*ɭ>im m\0 QaDu7SͧyI p:N7w= I@bskd"+ eEmR D$pl+ߥCؑ[쳉8G"I͚ݫ8 H1tnڤ;d DO4%o ЌIA ]KK@>BTyWyn&®tWFxsX&3܉xǤ vRl ,MĿ<%d uPC]~OqHCB#!{̎C& Pg](~#SއQ4Ft ?զ4 F7#mi_>f$ADWiYUJԬM=J <݄CA_N{͋"PvZiv_i&|v pAUpo񊒚6-vIn Wo0Ď_jGƺ"ز(d.`&Ǣsju/9Ղa0[m96/Ѣ/{;!p޻9}uSebrg"n2;' s \`Z.BNmsԟ-@NKrdPmX3ء{ncUYD旃8. n4XvݟS,x0ZLT0^X&r5y9[)xлډܷ7Gݬi|N yCiډd`R9I; o@,ukw P%ܸ{KVFCʌgzGAæ?4QTbwٱ` S=%Kڿ~ƠlDE< # ;J;G뉠97I+AƗE㈭t1NyˁPJ+n@sqwn[k0K歴c*ДCʭN.@MlXJҸ[Bk;]?..25 ?0}6A!P%|fܓ0]+YiDqVcx %q(룋>Wl-pqP$6Do,L2X .^pGGժVߣtb}޸]Y+&æ!efہto"a"wo#k2MQ (!Ù=Q$wVVk%y$!/V_7H?bQpg?pJ].\#T 6@&Vn]B?<`6 Ap*QJLcv;X @2{1&MN j- DVe8nG9sh'*fз|zryq u1NeLf[ 9P@%KAPtrRҀ厸h#@ɍ$/O\226DPD K!Q$%JP^rSe̓Bzws"/$m3 ufM6rKJ't\~&PpFew*P@gQm) g3\+?xq"q>j)ZLTyڦ eKU/hAYKև.\npSBb(=:/ kT2^R&NlУٺbժzj+9rߓ7w~w7ӝI ئnzmiy#^X/$ZGo*)(6ŒB 2 r/#fLq1J\\21SBz૲6\-br}!i#)GBj>~|x^bf?4ܘ & z9v"Ǎơig+nis#tk*0x0:-52Xf>G] {4#n[|Ѣ/Uԭǣ 1;@ 3GN/?$% fB/!U{Yg$|?: I’╡%4{9`U`ME߃ E/]܉Ca(lLcE-u'k\Z\S'P0 HC F)Y콯D;uAv{?@/&)rQYnх*N"r }:U8(oyXF#bs @r{{cTtEs3cqp 7e?;+,M="V#ofB=)b#3ϷmK$_Ipu؆FVb޽{w%vt5rI8 |&W˭;*2{@/RSoݘ1I)̌u.?#=L< T Paz#MlNN=cYF96bь TA(-2i⨊3 aw#+S psu]IѴFF88vYFf?)->E&rk7(t^^1">] =izI_OY~c}IG9 W 7vNEE\ڠ̵7S!cѸ^υ麨E<>iTe]LQDsSEb60ᕲb=҆dk{Oc]("P$_x #)M]KN[BF+;\kZucȤOLl4 ආ\٧:qIEZWF4SkGpW? U=.Kۧl/{8FtDP\; ㎾jtKtkجU?&.eKc[Iک!*ף$C7X ;LRl= U<F&w8iO '`^wek#B40HJLg?ke̛PF)`33Wyu+= p7D6QY,=f~>Q vw\$|']El%Y ӑ]0""{J@XJ&uk6zVZo`s{h| <ҕI"k΄oI(TmQ0gE`45ushMd9'5!N`0$ ˏjdz$uF&[Qy)CGDA?r̊Hf0k?3<USR]Gl3=CRS1!)#"^EEzئyw*LHCⶂ_jQ ǣRUNq#9 hn`6dJvzTFuVBQT((IPR4cqsuYߜEmz񠄪C$~2FZRY/abTlY%oE᪊mx/Ltfa} l`0;c#pm|W Ӆ@{hK3b4?-JM$_ DA{QgG軯C_}\k@QR{QR$҄Q~^ ú1JdM\EC%'\j hRڅYM45,nW84Kګ@{8Hʑ Zg\4*٫Iyŝ}-\vn ЮĹBDe|ʧc_K %tCDEAE-2`>~]XpX1u㶗i< 341u5ΝUGd; >WЂL IEo-mmSH^A?]' ^_Z0X8V}!xѭY:0)|cDjn:e(g e,SCTJu?:>1na]5C]UQ,2 r6_ Y|&[OHrKMrTgEQa")4B* 5w0Zdِjc`ܛ)sw:iov&cn;ޟ[`+%溮=0$:..R)tXzc+jW\3d:Qj¿1.{ *r]8̚e5<|lҪH5miy@ŠpvH?#fjװN8ܙb]4!Qz ,ݛx&W.{#NO!`qGgu.7-QA7&j^ز~hqon)Tw%_Hz6= ώ=Bamy w9M%9dPuYN [Z#+:WoVڊ| lgKtiaM #m&QngW51>[sx olP%&|Na~6%WxfJƑaE$=/ŀgZ:m"k*^,ԬZܨ!fP ^iWu7B,"wqĵ]*/,%?3ЦrHҺzFJ=Ax0VjU1GMnn䚾"S jzuK4f&8|' u d# w!?ש}?K?_kSrd4Xzր;,6NaLzW+tg `iAW /m(?O@3~_q @3㮓a _ 9cʷγEmh?uUCR>~t_ji^coLfyB})8<%(3wR\+1(-cVӞpaҳ6Ŕ,#eFW[I=UG]0-P*wǡC^W6.478U VL'jJ_-/k%3?N[=Ƅ[EB)rMrZ!Xi*2:핦9$>wY:Bpr)6yz2 #}ؤΕE_ `edlg"P2Bih&Ĺ^I鷞/ W6&sp[s=3h;̰A;^Ay{%(?(1~*_~\N ˬ0ʧ:'X9a4 +Q >fj jUcϖw$csf))7pۺh]gQ#5n̮ ;VK5ϱR[n ,{c0BBadJ.zف_=Ps`h/ۓ01Xjrr^;t~ߢbPR~Hٲu:t,l);%'3WCI,W1S!<)VXga9Kݳ X:A6VOنMȏC rGCiKor !uq 7l\@.VR~ru aX&3:Xr] fA~bQq3Vk'mC9U8D+$Q+U/z E&?W9mG! |BD'ʶY-$hDv 1 ]Ff2ZWU׺0n o JP@E)ICo"6(_"9Vn:uhL<S4Z͎ ) ttOK-#Qb_2u0j2iqncb6; 6dO{{˂k,JTh D%ܫo|/rĤ%sr nFqnoɺW?6 bَA ʱJ2b$(sap`h%xǸԉ>kE40\`l+1/#zWy7a4 aq \Zsfmղ6 @IV u {CX$ths*@–Zbe!ͥXf,~_D^r2rJ}صBֆ[-՝tFK.-NEf=}xJ0G~$ ))1tƔAsƏn#b_„C::~ŖʹAEO<_륝=ۛ3UF:rmLÓ,&@jȩ@e4bޢE}`yebES#ې?""lK}^ԡ{S[Ԡ1h/:w'V qjnt Riq0WIj'#Z`w n;+ܻ 0:RѶ m\ֲpCtuwS#%\ò?aQNG\:qLIO d'^0?`M[:(oADH6ȃAR:>Qd~,16ʷg^Ufq)?Bv8bL8ǖL2|A4vսīE4 _2cbV ](gKw~+\XAusp|ŷA:_"5M@TxP|}+ɹ; ZSS,݈X4)k]&bm| "~Cr!QɄнRaz5}LٰJO U6+2m$^Y܏VE5-nJϡ^:xשzc6 *;:,IָBxf˼U< TA FZi"ۻSˡ:*^mH} ><‡f$IO,W*[;UDo%%aC-4iwW'=j-K 0/P Pyv )ݡ^8΃j/w'FS G[=u$K.cDoB_Ϋz2IMiE Ybw6jց ?GH{̈́gz# K3܊;@4ɏ6q/wf56yvރ{/|@(S:R%Na4+P ^\YHYΣ%4 uzr7uY4D'<ֳ82hJLVqPpfLS}_$o֛җTp>hBf?m&"#:kR_\46=6p*l[iT1ՉXRCא txӉKn1y-sD?DyqH _}dIB^][{-Mn@A`u>t d>:Kն.ԑ1\ꍡz\d$$b[gFNueݯp/NGi>)^z2Kn \]צ^]OGv~ mƗd'0BXvQ-(8b1Cyx:FwcžckϏn?uSx2&(LtOr0G})+ዊ3#gZQ{n>z "P$qiG D5M' v2NGy@U2WĈAUe'ȼJ~fk'_-B7 uQ.|ym za[ Zq_ }5vw.೉ r`}jj5*.D`2 ;Wй8 @[h$z":k Ś/r֡v/ײz%) xe3p8dXC]wח~:GI2^j`1Ņ</i~uWH,[ɳDj%̒w5CJ(0r7 ~hVe`04U}=$k~{)ql@yi5,vgzs JXڐ?VaBj 3LŽNh " ۲yٖ<+|\w Ww bWF>邝$[y9 /YPj_:K[9P0r !6($SZN w!#pIp`McwҠ"~7"' t$^<1_G Jo6+א*tYh\<4%!ptJW\bax07]&xBv܄~RMr8L~T Wn.1Q 1XJ_'ՠ2ȋm`@?';aE  iR&;kň,q/{]lK_t|rIXUdΤIPوj&9 /v?>U%U23@-ZKYh䳹x<68v,I`c}i6:namg  7{mTwϥ+;en4h(ƑxQh/r@Zλc \٭rӧGn!w.Uzo|Wxuow+WKvb9rEYA,E/G.@[S0CQ?XQ-vV"ϯ(4GDmy$^.D̏_Jnʲ{+:\9t'_fg7Vlj Eh˙dq-?-?Y%܇?=k؍[M;\QxBٞ $T 3'H> um kY.Amn|}@HPNVg0k&Sup~Kl"q }]`+_,mF`b0-Ё܆&݈eze O۫߯z?Hyf[dw鹆8BfƽתgNQiزR`6 c97z $$V^s;a ɁL#&#^I./)л@в2u[dbbyg-KI{o1Z'vT큷B*OYG =:f Sj1U>Û6oRڊ,y* +,*ɚ&8Ǐpws"`AĂlmz9uLŅp]>>%1e8Ivȯ0bњhU\J$g~{HN- 2se;0^ƠE-,dar2Rp!}_YessB@6 /!U!숍qQC>Pd۳9ko.iT4a WηQ=eRw@㶓ʍfC><1r"CYTTa|u[k4L6k{J85׹%M|)g. ?XuuQjt_E7aLD2YK)wކhcJ"shTx9#fV2X˗[d¿`~?ePv&mr3CX zD 1֔edPt!qy ?@=i̽pA0j@0@:Ah7unT &+6dhK/ L,tB⣖@p[.kKDٝ \K'5d9㦂#/pXI{Ac.6%ɐMBA.8H3I\S:tX#n tMBӪJ&ܓEf"or4RD/we0iICcf嬄vΦ2M> 5z 9"RҏG"*]9: 70k;~ofZ߄Vf竟 ArZ'0S=g_hr _c, u&ފKeeȦÚ7+a/+DP"%.7N0grܙ ! -nK f gU5} fU}̟~2%M_N]崴Q@ֵ[V:e׸TD+/\ K35Wlr_/S,2cZ%HD6H!OP;\ELiqv s;]K:-Bmt6I$U`I_a jYK>/DzkyTy'GX;h6MX;%IF"u)Z;DZ+e{]:H pTp),]1|N0 @uO){\ A{ ϳ-2 :Wd@^pj"(`*}$ yɟyQLSsM#'w~7,]4z2%  T ,QIdҙ& layO!o60k,+R!,k&h .jFivlfS<;g[֣OKwbM٣LHmbԀ-R;A嚪뿠ySfuu Kcٯ 1"gviH;r 0djS_FR/6|Z_~,&w3o<,m=SϞ֘ 3?)ӣ w HJrJ@DE<=WM/OT;8 Ru_r=w qW)tO7G!Gۥ|T.spSz GygNp!6ث Oz* '* TzVW 0vD<҈>?|e,9̓r!}= mo&H~kTp~jeO~8 #{qq>|dMHEl_N۬]%l=,]o(2[B}g]/ދMĉQok`M*+*ߔs~%Hu=99xzUõvdiAFPڷ8yƂo|jo)< p)ۯ"oA5P <`sH=梔Sgݎ 6;29~%T{|ɾ$Z5[RQAlQ,{;uPSWn%F`e((0-f'̚xeG;K \P\[,cW8>461ܦAٛֈTȂXĦ*(9wƽ:Mew Ko2D9lZ@C_E9#K,RګpZʤaֶVJU5G(Ј JttۥL !"< Y򂃂ɉ$LdVopLaIdf# c.hn[PG?2u;>G~ K*1U}c}fG0 zs:nnK`]PsS 5gZtP/o3+hSW$^hvzUd?J=WOY" ΖQh1͝yHLaO4%':nh E m/AO2諭\@^`hxi]ZZVgx\!n,CjX۱Um7ßXHFf#qjb|PD,4;-0,yp~FZ(IoᏦse++ ;!MڇC_E;Va/I:& ,^gP!}8\rK5SUBq'#R2tt?%ڤ] 3+%yBG?i~wtIb̉\eLʻLF/6;tȕ]!0(d՗$~[G}"(\Xd>x+6be`!|8)P{e'V'&)#wާkMB'j5筼zef!z^/Ymf ~!x_=5 \U5]!ňEF9?;7L@=;;w\W1 )Ϋd+2TmdXp8NTI<7/&A=ȧcۈԗFd&]SפM{}:2o0IJJ*'EjU݆wPbO5Hyo}yHZ舡ݓINGWAsD;9Bh!*; f┝,肞4euUu #xqwLLɳ |at`8(04O anfֶ?Ou!7_g,*Rn=~X[/\a+S*Vl&R^)73r͢5bӎ;µJ*m̘k=/dZ}4vzPTN A20f[W.DN](ź$GTCQ0bv%"Q:)2$#@<=-PKe@{qv 12 êQA[B>bva?<q;ј )<:zHG~ZD60p1 0HE撽}T.&ƶ*d#m~2ݝ⭥u.ݣ71vB0Ix@Jh[\C cs¸gVҗ[5c%{E≉ISGSRAV{`;r0_++x$ϺR! Na~`9nH4+/dC^t7\ca#ւz)]w IŚ%zB4O]9@f+rIo.T{M䟟j ]C+'$ͦA[:Tѡ?E)&\Rjڞi_| .Ж0?-.~Խʗm o7/LDKPfL𔏇R+SƀY$$kHeQE n#8(S\!gZ:>ah),(Sщ`ϳaNq ȏy.AT8Zs_QqAa}2zUQ ~\G35 <2 8k~50>6VNdmie*1=nOByWIMةۏ:sp0v@ld8vdujV`>#P'Ud 3D$W{`$4KV+:{VwM[c_..i B8Sv ('|+rHm`/갸Uϓ%3ߔdxjf}Y= 75%##Vxr3|@yU ./ȯJ3*^@|X]v]zz:gًp7gH zK^bqz}H \RS1j`/>yDž+E&7$YBl#x 2\hL! 쀦.눩L[Zi^Ȕq y@rTK WZTXBCUN=[~SXpGk!p٭y//.$=1nhMcd/qcv UXr%{_-v@|W淥p;N$8yQ%YCxQ`E-רq$U0!kH KR&qU? BշS6lڤ|Pr-R,lZq%*IYoQ(D EoYeH#i{{(ZdD{˦DTYeL"@Qlȕm4Α<ĥcdA88ĞlJHEhCA9nUn9Xkh=#Ob@=שIۨDe&u8Oe%.A0E+N=!|?!YPApp4T TmXyujTH%rWN)@gNJvI6e1Hi{p$FTϊHW11E װ}̚* eujR抬tL 0r|avwvcYBA)\Tx#l}`Z}QTҀFA[%9a!2"2#+HZ W2VnQ5:hu-B f<[Pj8EYoi(W~Rwa+V]~\G=&"{WHeg'>uWsd` r7aBurQ m(mU}ںڅ{ARJs3c0sjϢ+fBNu }Ⱦu2jkWVG*Z_:4%Wnnic{ʴol4:}2k@'WgrA*H"mv ]/n^K5LjI(OTd=$9(Z=_ԗvAn 0rVw]|4D 8@Cr  ΍2xMKB=4FB]3:IeSjÐ=Dp6p5rv fkҙTVrKHdܵ.$NnxF u9v0EJ+ ˆIkFy$ZvaZpWѪǪ(گ)-:IѻR'l {x٪98ވؼqR!cq\oCTEtiȃrѩy趣lr9|Ԓ.: "!چ%ݰC׉IIִͳGv&ӛ7AR5pA}et%)C;14 ƪ pKL@U_laV{seuф0tq;?T^!}Y[R@V- ,pOY P2Wǒ exn]/  Qun CyѻIϝСgsv+Y'EMNaK ?Sc ? W+D휠坭 Qs3IUv>~[|A ovћk~JTWF.2n*# *` 4n .NuD )kf8c0 0grЏI"z< 0.ZD6ٶ®v4lGuM" # ܱnqQcqrǩM٭(Vk/1K~M &!ژᡤ MQrX^\dJ.K$Ff oCq/^qC:%1 {Ǩcdf1oZ gʃҍZ3q^EGhr*JgR[xO#t&ܜIwG7=oDO?hnhAAoͬ&ChM[lZ'zJL8IA (yLAOU솎q#A' To'AR%:aoO VYc1j{83m&)wZ# F|/gP ?/5ʆ35q5\^^k9nlQ΁DȺ5IoY3" SdLR l0)};z1;D?,s9GN mpkѐMKD|g6o>)\6 C*#J2)}DA9Kw /2}d9 /4AtE-忊;u:MЦ vrL?kuljgZLٲGܑՊ'~EE!@Lj )K=WxND32~ yu3`SO{([XoVI`,@8qK)Gr&X7\ܙ,ZVM68 |h}1ָ'G546;A3hB?t-bgɧB9BځnsMI7)咁hG HV|!xpf[8peDnۓc+O {iQ< pQ~ ԟ8|b!C i͋M FO8P(~#5*8ܔ.Lr﷝T-Qixh)ml̳ڟt dkK"1Xȝep"5!{F%n=V:jɬRc{V0p Rxm)ꅋ<;˞ 0>J_)Nս<ɽMֆN_OaV'g_jE;S23lW2KDHSF8o2zAN`JF)găUcv/O x3:j'p<{LڡRR0efןh|Γ)g(*o"~M mrz텪ݞA.pOzˎZcbTjߺ\Y`PP OLi5T/Ospư4vPˆ[ (s;a]'+qEH9?^FEnUexʰ`uGK*ŲP;;+Q@yBۯ0.?XCLcg43m_״(<;,ZJÀ?M5򜹙a,u=u|SQGa #1'epX4=ؔ@wpޙ֓$1*%Y교NnQYQ5Pqs'챗OWЛhs3lÕw/9P2 ެIILL=i+ɸ  !47V|ʭ?pZjFunU'LĒD@:z ;Y4r~\Os Fcf,)HV SL$1G "[g3!R|[ߓH(ճ, uGpÆ;~Ц!;JeV hSғAz ,=:/NY3-jj+ĚZts6}%a/ЀD1g37˓vݭ<94ɚ8D.˦lgzηdu`z>˺}}p2'/ = OpD7[yCD&HCL C>R>Dp4RPó- 88##f ưyK?: ͺ5.sʶ y=Rd*'2uuT] ]'3hMR 82HMI.V`WԬpPAl/T6j T4b#vB@Ջ\LRԳAsV-;N tVQI=*#`?~n9{'lVh? _&lrϗvvi|5'(C2EBllߟ3lc*8k=ώ4Iy\b+@$$Ȉ~6"6}l|f.ic$1y\)gj\[CTjp(+/y#oCGO* nIaOiP ;=dzruW?Śm85@* ozo ]!xZ{2sLO9QE6谶,+,&Φ:sYy&: JN(ڏa ETnNGRȉ)]/]Uvh]<>5aȈ^"y5ut*Ῠ '[_~F,713[3UM7.]I/Z~<Ъd%y1s+遣3ox5iاE3FψU\c?/#W3I`SrI^ZjcUq~Pu1eMV:A` Nt2\@t5-i+d/̆*O9,Ь"նk$\7Z:WXn!M~oP{<Dž4.8C8,ڿRGQ#$?sS^cIbc/1NџeW蕗_b1OCNf-eӏCL?:eJr)F|P72y$Dy5G@  9CSi?'3N m\{e@Vt0nF}[7&i`ݽ9mCHQs/e&3p ׇݣЁEɔQegȒMl&`a$?I|wOVKU9 _['{cYNcl*d9!:ڧǒeK:RЄPX6;˔U"ߢ=Wc"; K䩄NcAp-,΁7FtŚA]US30Lں׳Ϫ+pWp?KgT,P.P}7Yk\ٲ+#QRTjVj mY4| J ()֡K1~-v͢4frdHE2Mn,Q6I qAܙX>RD}´.<5 U, lZצ8]z(-s7WHPߑ[.ƫ҉>(W2uWPq V *S xU/O2P,KiV[Q6)cj׳0~',XKT"^uL)ji&ΊR%ʭS|sL+ `miaDk+X"БM<&po YԞIG8s#T9Hvq܄+5cSNEv}m4ok_ʩw+G 5-:YgGxaJe~ÏxQTn;>Aprax@M~RYJ' jkZBڕwcYk%47#M^sRƒ³^soښIЇɑ MLT Fr4nyKNJ;S$Y邩3'ðaI).bFlzjXڐA7yY6Go=~lߞZ}b"-\ׅWgTa`iQ{<`M΄%(mzXJA Xg ^iDIe`KOAZײtîц9C.tK&V 䠊WKdsF\s$NXʂ;SyfugQ[9pkBWڕXqrXO}֎;5ۗBσfi>&2j3>-ͽWd@Fa5Py}P &Ė{6b!ӚiOÍ~x'>NH.B6sx3%ZډT!Q/Q"g_݁d]AmeMӣxki_P#R 焝t{!Y1' Q-u¦l#xO0O2ٙ_­_%Uv,8Ӡi‰jId3MnCS6/8> W"t-3eTW;-:1Z(}{(~A^"NnSZZmk1Dғ(&t2+z-˨X `_r~Յ88+'HS(V 0$L׆JSaݲ7`,"l_:w\Z3qHA+o)E8z&:"Ks#B2Kߞv =fTJ/edbcsSh4`4$qvFرEa}D..]'HS]q8&05r=X0+B"Qtuq\;{i,j:Q1Vx\w0 bB~žH-}YQkWqª dQ9Ӿ@p"Ϣ{gZwahij)/iY*,`]Aֺ[K ~ `%^rzΗ6ʐ B-Ҍj W\nSzPJ>5΂GJYɢAX&y_L]~ E5WT>XA7ԗz]:'ISA՝ܗ AA, 6Arq)LX-2%\̉A2^A*QrC¶(qR|pIS;8}uv]tݾ_r^*?2(>O ΝvW0pR2V~'*@-@he>&->CFQBӲiwsqȈ2o&&^$mt5zAӰ dy-#\Ux@Nw9,Qu8q/ [+߇ct(+Lh;̈arxdJnG =(]yU0k;b`\?UL2\覿9? L&ٯ|P4Lp19 [Lء,y(;#B qObZ5ǿ%aPHr>Qk ȡZ8F~/$WKcCp> kgzeLܖA֭tRPH{?[ ,v{RAJTcFA~fkCKgEѳ nqn̞o>Z'h"S3COǸ~; VmzM!hh@>ڳ J?ico3 Ԧ|ez[Ksd%Jy5%NvTtׂaS(&wqxKCxs29M{\(qD I0wUE,%Iz@|1KdDjFETnL<[P܁Xhx!Cpؑȹ.H}q{=aGeƬHQnUhfp@pa~jQ̆cTt@3@ƙ?0 wmTA~-}Mn+vBu<z5y_O>᪕kHj0Il4pn3-1F06bIB Na 5Hðhyf/V9&|c%&c*2".?&#D'54wyHYp ?E]G)r&а8'|`zdk.d1'Ze8$EK"`6Md6&raf>CO{],eJLO.!.]V(zALR űj M5!a !6_DNlar[ʞŐrygt!EV&` f' *2~9e!q pu?4!9΀ӕ@| 7QLްG";}YxiM!:Y"pںQPGhG[ZGζm *F'ڍ:Mv9 B`n5[w(Vc"2taKjwf㢽aKW)DŽRzWc^(~#Ft.#sM0-dc0>~14倔/TO`YQE71!WŅK#v%is{J.7 7_k5_T1)0VYG{p;RZwiJ>UDQ#au!K4:0V+Ӄ=G}xerbQ\ 7ݼ:a!`_v +_h&$mX/tlsD-}*)z mQ3_YĤ3d%,?7!kHxӆZC5]m4ct6!7!UQW鴬۟|17/֘5$8BY{)j5Vw>^%b:G/-G/5ӭK~o奷hTGcIjX:Ӳ5ߓ>Cг^x_j/a{<ٶ۳XZܞ&<.(KW҂N䍘ْ^-^9(9. B |l\.17)֑256wG, Q WMm@Gٚ|7'LLzG,oP~S"MgÕgahidaf%+Un|8qfMԨO9|%}O a?$16e}'%T0Z01ipaUzhzcal-kLPĵF$zonX_ĺo,u,RGl 5{FhS<kN)CIU8!:{RV<:UސGƜ$mXu*oD,@b4܏/Kf>OkQ"]t8=^&,n'-J`vQAhMp2jQ;uєuAtGP htAhy5Va4t=O81e0f t@kAvSV9>6d bYu_@1e.6r~s6qh؍ ^ٮ3rAkN`l jYA=N*Y>m4+kϊ6h47'7n+"( ጢ+DLgc1r܋|p˝}o-+*7*89tnuW6Gc5|G%g Ǿ-%Wy}XxF/#@1I ؾm&wUsNK hxN+׌̍j˔87$aSz όd.JY;wy~E 9T ?]gHy># EM^TGb2v _4O岾, "HrL33Ύ=:*kӥU% sn#T2ku멺oUʸ`7sxF"/\t^,,mȺpFIAaw4nbmE5+i}`9Hb"t¼ti݊?G& 层NM@?PzTξsz_b naOȶJ򟓉dDmY0?3{ͮ9 gy$DyE|ZG D;x>'A~DjhVIƖ}Ot?)'7H⩗G>l\Ũ N9s=+9Co֧oG& 7hf0亩6 f rpa(Y [S W}BT#r;253~*h54S{#.0$.g ߝ7C`Ջ\PTPJ/CX:lcmiF[Ů7YXPo0XL `(991A hg/'ix)#5K'c;]3o:{)ۖ`sϖ*6y|Hݳk.V3Ͷ+pRmfhIxf4Yc4~k^h9n^9H[fb7񮪽f5Tz>`6IG;s#'0Oӑ쵟T CU(4AsO,~e +\z¶Hv?Һ286v3:\)G#8J-%5ODlQZHB^IYn!U.x>B `mKlp0 rO嚣{-a_MH_''M;OX'v!஡/osd;wR4IAjUS^71/*U*"a?>=( ѨB~n[|{RTMӝK7W6g\iౣY8H%%Pw9zw@Z$pX=V76b%;61"xXf}X|>ǕFj[c=Tc2u()l5 (fT4~kT^ۚ:„tlT*,R k#(_$CNl "zƛA@j\%؃qp3]@"evq h*0AO4T64#?w8 вwy$I9!}$׵fGv![KUu(rx{( &TŽ{}MΝOX djuQ"J#\;? 㐬$tf9eh<~K{^W ?-.Vk@KT}ExK0;WYVRB_zzS G6N/*E4BF"l:J`IR{A쬵-j=R_ȢeYT>e0>TUP,<#ZNT$пI) f57,mdԿxb7`8MW"+PUG 1 7 p2a69poc)$ݳ̩dɼPнC9ͦ>Rc꺁n㞀0 {%G‰hZ>ĊWDk#Yı)m@7VƝk,JME~|[9S%!gŗa]dEw>qkJM9𰝐MEC&ZCt-ݪQA7@n0U4F6|)_k\vC<#R`}˦!@"N.}z;"Gvo<%!JY01XŖC]DX94\ooc.mQю`ן1fvZ&/=w_Cv6epjRQm\jCk .-&É <)4ZrL~8 7- <z8buY]/UP3="tR~r$\>.Glr-+4+őYrxഛ1{1 <^cyaLzySQG{!?Wfx2/(Af'+GV6aRRynBrO+ނGʖ-q@a-=>󮠿W"E8:zm[F 9xwx zwˋl-IҘgnV'B6])F>-,#n y7M)8Rw[kW_*h*@U?G([I MލM\У:EVWĩ#7;8,[O ,JJN~$6d]bo}7XM^I6)`%9ك}3vGQ|(c,=x=•?8 Ii6^KV ^ވ&`_nEF1&,+N+ʌdl D2Vk /Ӏ[g U{E\ȯǧu&HL/E=E<&v<+=UjW?ȏ>p|75%[ k?^1͵2 1ט.2y8<(;'kJ>D?hwo99q'üEz_[V=cĕ;< ì0N5 s(WEg`1 7WCq20Q\)Û*sQ.~kv$_x ɾOWe3m8*k}^6;(med͜J4oGE%YK_sEۣШz X]ˮg. =x5u`n/[ ۣ9q"^-5材qXP? ɽE z"Aa6[Ƭ?Q 5V%t%89 t TIԥ-:ѩ, G f2|J``Bi28{!RRXAuFDZ2#Xe-mrv"I=,S06'—bmGi/o@?\G2&o-ut-oK`Mk]VYI?~~4i-Y:tVL|lm -ˣs[6xNY'$P΅nܡ@yUz0h;UET<-lp"M\#VHIA屇=q8b<@N(݅>έI݉-A_H`nr<1iaY&ubaWDu02ޅ VƑh&G>}U2|+6'.8 |(zDBgTU{ meMȩN͚LU1^ێ+t)X<*Di;_N!OWN.VkBŵdK#2Sg NH]E#1;ݘtWir$y;vU:nb?5 k1d=O%#߱/[YI*? _EI*_qH ͶtӪYhJ8z5{1{ߝ@6?Hނ o,J(}8oK Yq/Ն4YXк?Ei>FQ^׺Lň<r8IZTIh@@}.QpUmLo){PlfEdB:J[([]X@)\pOOmk ͣBH >(9οC/MvhͮL<_b3rh+ Fo. Wg+M ǩ?ZxX#I{>n,TP;(!;-)OiHf'3:[@&RY(2CنU6p{nM{NjȈjL6GT6 ;@W-2pʯcR%C3 zXODyT_l8.JE lR,v8C-LVkkUַa;1fCº@ OÌU3'c()3Ma<䦷c: "7P_gv*rRx4t:u"R00IE){1ნy;S"/` iι$.a3:I! }_zw̡`&g?$vv AOߤ2UW{AGc?b_,'Pvfi@2`<1zK< X?3uAW'kD<~؍|Bز5?"AJZ]Jp.r7rAxlk%roЫ̝+q2kL1M[_bVl3XhH̃PR\H1eDiqZHcSnl7NE*szI*D0Qԗ=w"=F6SNn^lf7-x=jsDLn]Ia->IAY7t[s!T=0O`{f۽tbё>30vbl C@N1 m$)mFDiX&Dqg,M $DCiFAP5P&:nB$XEٽ;ܖc*9ZQd hqJa}|O͗W=xuG5ݞXhBB^=K[7HMP8< .;v^T:Er=T1AK bʙX9E@ڼH)eAzW>Qր/TiO~M8鼝;ְataYoQϥT`ЄH󌓚8`Qo(QJ/Mh[`hIuo]֊8 k.191H](7nHVD tcyhs=Q]A;zT\ 5NG-zoZX]#ˢ{L)rka4>`I6>>;+uiL5eՈc|<A-{ê`f$TP4`iĽY3'/[)гvk#TR@1Tw^3}Yn+o\`b d= eU3_Sncա'>XD3LNsǜA9/F/tHwI'R"p8Q}apeB cOO_@7_Z<|A.-xp(Q,Dx\_\^$J~Ses0wP] %׍=+S97܎dYGba?XU NA䱅9RPxZwy-b3:8-(z"?e-~ǞD;y`vk1܎KbMf/rlnNX9DJuJk \vX3[,nOӜTf_+*4-ÝxM8m K׀%.5Kj SOK6(GK98YexN;TH&1P (S_WάC# Bl7r.sӥwi;@kQ:Kao#<ct_qNo w&mݜig,"caeҭ+),uO〉 1lUIETc}>yMטJPh0͔Y<>-3zdʩ۶m"8]0cAZy3qyx# 𴡀)Gnl+|{sR&bik#$:gΕP2*HhHPI+C(ҍ!Yz:+-?ͥ/MP<ǞL}Z0P*bxz7c;F|H,!kݪKrVHAcJB*vyq;\+J?-Q%,9[T Dي_klGdSݚ{`iaMcaQDx;oesTvM ?A1c3G=JoBF&K]typ`5Ycg,JZp!n\PSVOuLvĕzHObuLQ ' 0ґuTL̒&t³cu;pk4p~`4|'ǾFf*'CxÕJ1]9gQ?}޽ v g:4S^/7aoNAI]2Q AE0!,BjxL C5"E@GuJ?A*X׮.}]d0񎕯?.4/biR|hup2Eb]:&@pw3]o/ZxjԓrAs-t28^< Q@}q50@p&ĩA{su3SUoY0_ gQu\_qD|87Z2|eKsE0& H&>m=ح[SaHUxJ!dh8@dS-7yZgmU;)lD=bءܑJà<FTL-Ì 'Z/V%crv&q6 `a3g%b-K/}o:]optyդ]i}C/5WII 1 Evq) eu gׂJ9e!/^f3OPfo_i;5e&}@޹U)£ 19 R%EvwL+,9kkf- $4!z}3)*#]?*X.- 3b/ Ϲ~5L.N?+>q->]pTB|Zjjcq٠{6ɼ֠z؄b]Ӳ.*/. eok4CkF(nz?f_SiD̾˽(u@u_&1WHĝ/嬆P|ݫTsŔϊaC%_3w {Zr. Mi恵³^d=r4>I4Uo.@%Xh^OtŽB/G=Q@,S<]d_TD#)PݒS8=f]qqנ) Dŕ\V1Ň?'֭U#q㝵@0(^m1v cîDVcj_ɉvc۫*>M02> siW=[ZA")p@gF"U)Bȭ{pesn KuN9&ZXB9d' 8s4=EPѵ!Xv̼ziyL!қ{+2pB]اGz aw}꜈)r !CV-] 5 [AϠe l.KɁn=S~THATiCQm,Y6=Jא#ﴍ o .xh: z[ RqAj9\Co <ţ(*C?^^URi,ѷ뷥29c!\erv|k}]2\JRKfQ;rBp4H4_ɈhE> ޣU2jK6~$g]rD3=(!zRl \o@˕͌~Ql*)狜>  KsxqCi|5-&J.*=?gҘԾy!j黟}4iJ0 u`C..CJ<*K1!J6gg\S8a~ɪPٙ@#~y$sZzX~ SdV+!@A%UaҎfThR jӰ'`u4Xk@Ytg= UiaQeq/|-PlI M=Numw XXllNLWаf- ߖR_^ y:% U.q"HUuC?(6w$!V"~:[NgCm1)ЪIq#iBnhpځi0"2І Z93c31 *F6Z'c]L3>Y}jcwʭFVrM‚JuNNQ8]zTdsʉ:ƨRΗ@%אlv Cƒ"8xĀ{\cO#)c{@&@4/#id$JC^ #5F; l J0y5Ynd$ Fad%ATϴwb!VZ2es^ =cɠ:|?kty1jC3Y!| ?KdX]f ̀p~?{u& "<*Ο !2^3%i X50@r91BJItr\DԛC? eCQrAZbS8O0$1h^g$T.I^8}CPJFt9Xk%;3'Rw\*vQݻƁ,76SzzQ.nQyuCTbݠU3@ɕ&?ApPħtp'%6Nu^*oX]obTjSh{$Tp;ߚ7y,b,Oޭ Kp.6Q*XkՆF_`Q'OTNh^CqvI(TSyf̍pVaz=e .K<0Ao8e($'?oc2}ʷ›K!pv}w ٚXlnl[M6u"{@PAQ֥onèyoXl bkoMv.X8­?5^^8Lub {C.PNi7QI?zKH5|W҄sL8I$ Akw.2hAO%5>ˇM5ׇĴ O'F5/_%`}\vWfݵ^xwG۱zj )%aQ,0u5/33CW姹i2u p?n 'k|OOOZ =] 0Yjlnr Od9~umQŻ~/P pAX`=ZNAs$-KMG֦ՁصΧTryA_P v\4*' WImԊ Jǃ,˓i "_̩V {#v)! eq'l{JʝV7 3*>oӠX`>J*2<q[9*5g7Sc}!'+;ė*;`wd#8g#E۳-&\pBK˲ i!5 (p*߱ytLy7u(O#)GigR\vRH]مpʀjWj}iqF,{H$.aU2Vq"!#5+#2lm,ҖJ%ՙ!XI-|,z nvST'P'~zsO-F^0n > (Ao.81zƱuca[vKu]ePcVoNk뒊iw 幱~Irx,AFӟ:\âxl50d[xp(vj>D~yh1-p6`WS4[jZmO<'kxH;rx3Ud q4HJZwc?ۧeJ2I($f3ޫ kYi`72=(5DmB[֍7/et8 =K!o$N#jO[| d/In('{Si{5'{eٴw+wL6t."{y(@nD~͸Ǜ}9*Qp2*0YR;$t7@vca{\|`'R[%{Hes|g1ѯX@dгar⊷~bs%XmJ":?ݢSnBhW1E^2* /p=Xn \|D4s>(H㘭3e uʑn;blO 8kFPmh뉈{i:"2zْ >#`?jV)u>"?@k} FTFnHe|*IA^ɛL#N {Zz9ᬐD?Eu$w=ܻG&: ?!]N]z~K],!+fc *m\f?{GHB?$ROgPpO7_ΡHڻZCEfTB|X.>5K9kӋyƗ'DelڣbtNŒP,+OA ̷\ltéL3u/iar[Ye)b?f<"f5zsv3zjxP=~xo(K1N:Љ-vrL,,ȝ}>=\(UJ)Z5O\w)}[e}AB7ˁ=IY v&8P^>>fڡoD! ^Θ0)0a԰~Nf5kdim? ]md.9rylmEceɆ:esXū܂9,yȽJ݃"tżˏăV `pgnOR-ըޙD>TsBA e!B8eΒ3ׇnH*?Z`蔄8'\2/`i.Q~ ղʒAf~. M`iUvJU_o]#urX\2\Fpy1I^uY+bnv3}Hmˎ|E0ѐCO.y5ri@aOڃt$ot0 E\k:6!$(糗iW2l7J.C5"vnd\ *&s}ug^ˌeILq@s"|˂jrF5"a<4wPٚ\>F(㷑@\Hݙq0HG`DghLɕv C.å~IWE;Q**-|߇og꒫hF z٬a_,}Ѩ婊)-fHYRYBc=e(lY\?vD:h7Hȉ;J~I,[Mki&Ů'UK f.[Cc5!Ϻ )#3ֹ ސkbD\321T2ӖnSAWJQF|ry\] Z+m[9c BT2I՝oWd u_.=lHJj-JRN=ltOp7YAdlg\f鬋f3]47j)h*~~YNJ9u75%߷R f# S'W˄ dl, )+Ly>%Cְ7ӣx_#N%8CoH^E+$_eC)ï˴VsD8]EktN&ѯ۴<8eL:ˬ_ۼ6%Ӵx#+YRDٴ gtbTAm-GE'BdMl0c΃)Nym~p:`)K꽢(yŔշOLdwYIJܮ3"JQЕejӅbtQplðH^E:$wy`q ;x0<ÖۊSO!ϳc˖[AcY]Y—Wʁh%'rDZZ^iPeõwJ_4v +-*S!N *ܖptb)Sd|*=)V!.DQeBn=E}4D9YH)LgqȤ $ح)MܰS;|C1Nw+XbzRG1).7llQl).+ڑLXƐ{9 'OH[s)'?Fu&]8 _vE6w7@ .uGmdC0]oBG٦渗qOKNl/3C<ڸrv`!-{\)F8=~?Ƈ|_:,ŖL$ٍ#VRkSO Up4{cx"Y%ɯ's^ `ۈ)$%O'$4b?YJ7y&} Tao4WV-[B fCd" n,1s[H0pxj6 esl~VoJq5ke+ظ1Vgu 7n9-:%^7C4o[CN =]:5%)ÇAb=i䞲S+&Uw$NBRrcԺ2fà;UdWڐ;ENf"rT.囡F ],q13K xE^{OJ]R@Abp(Fw5_v5PЬ忂 dݛ>[7J2H|? NOμ't`჉\οV9Æ>+U5j$%ʐӹTQlU:6Q! k$x޴*&Fh`+IHXomv  9.Vo ÌS3ƴС`oUr~!W:J5dFt8>WZ>X⒇WIK P(UCGj^ŕA:F7ww*[br"f9x!EIn$ͬi)&$Icp(=KR~zXp ^ fjKc-@Zm'繿S(Nz)/o)xDk]yW |Y%As0W=kubRMm찜E )q.bHjn1ݓTM~F3{^E.k"5is?sl斻{9K-ʧp|0`k|at-ԧ=vFA{g R°HLPe- Yt}HQ : \nsXg#%=Ӛ<6*}uUjCt ._4C&ag *ivPWgUX^UxCZGs 7R=-9Nk+yj >B2j]JVίE 2dh=rC+oF1b*e7dK WeK?ZwD/JX ;6 lE}f-2oqT=dei㛄 c[9|!lZZ?)ΰw Oʅ9.LpᅒÑ1ŭJ+F.օ {1Slt\d~^~=UӕNc@Gjw+F-P!vTlayd\οz̀& ~P͊{Co~Yߴ p墆i0խrI `Fg9f[f6aC.nSoWƅx4m(eo\_pGvK9tL}O^`VKpn,\[ejEd؟fGF_a71 4ƍed2pBeWtAXxV"CK Q2+T3@pV.+~&roTX6(1%cCYzVRI;p!s<w~2ǭr%?q,mڊ>#\7Vkx`d̀ <+ z'V-? {ɯ_FT Y I&_{|> %!2&*,nk. vd (9Lnlnt¤M$?w$ doa*2$+7?&WEoLO<IOڐ9RV|s eL!/b(6d.:24[~:-h~Y@Tڷ{߫fΫ;DAyC#/6Y}Ы% ':8Z O&PԼ`ջhs`+t|xMƆu_>-O@ě83e>.rvC8^ ON0]p{!ޠTB.@4ޙH x' UG gneq@[rU*ɻ=R,`Qۺ \/Ow¯qSu9觾zXd֨V+_.k@[!1z`g^ws4-ĒN&Yu~3S$vhݰ87`=E_9P1q|. Z OFW$4( S̞E?2 D&MҜy!)?[_ov9h^8-*/cI>'!b vvKkcðH;jGv= ЕֈJ7i\Hk 3T,Tw4qo8|{ umU 3}g /^#l֧\3bS,jXHg= *pLE=}e"M0ZbO5=eOP?-RG%Tڵ?܌']F!m_q6 ZC1Z O7P KDBukbs>~$z5Kkj똿 ċ]9-$"u^PxݫϵQ 0-T[C5'cs#"7 ؋8}uju~ؔ]a>j {K|ʚ$YR0-op/{{͏gŅq.êٜ!?Bci D<]rpc|n ]1ɞ4&(* `u]ho o<sUJ[|գ+Ƞ\(4{H^KE^8{btE(yo`?NfR˵97וҀJù"oV`yaٲ9jq1 QT\_ǺZh#e 5oOj2p&g^Vcb6[ȱ-ߣ< :˗V5 @B} ./a'ÑLWL(؇E9 )we.d.W^OQ#yfr8>\W$[).7StoZ.JteqёArF+RYK2 F,J>{(r͞#ufXuf5h-dgqjL$ $ l,=#CҖكM\=y+,j~)亢! 枨1>@"ˮ]v{Y^4Qp (u=de *t}ܔJȃuiq; jLV?*I?eha4/ \dJidNSM's/hef=gujd%#p2 c f;* A{u!2 We :/Gv(v :SRc)@OȈU`\*f+;Y|I.[V&^e;z;LIueڸ:D>{΂/OVϝ)v5zA-c"`G6|z3Ûԧ-mR] gFLYO` Xe w#d+VmR"e,KlQ3xgM"@/wvWF+S*;brڎ\x3]]-&<3IAQ/׶ɷ9U2+}.It6N'[I3.oeXϭxU]IC&m;%,$Mǒ{]-kư>Q-9.:+r*pC/ (}M#ˢ̩&P PGWMO 3pa8[(jv%a~N=Ims6 j(uAN4o=Bny>lCm{D-r6M-e E˻eHl-B,0Ώߙrw3~v&Uܜ~/ϗ#}85PfxתC@ïO":ʬx"3_M>Ro9xs>:߆#7}Z[SJ|#0R$,Sw~: D!^z0\<$^ rR9W'ҹ<>G1e J$ejo6!"1A i4Gbu0-͒IYOXNܔê/Fd }R.@gw즏:1VZu8`}˪UJM4/e;8P36eT} -|\}%; #A^zd!V+nAGb}(q'$}>HY?&K/YM_cQ e62Z0򺷚 x?dRMF@^$aQs =wu'" g> m  pzBIa&*à4 셖Z9? Jaגyr;^oƫ+[*fuhwTx-nc ڭGb؝$I +2`s S{f\l`Zg-<EPB]Y`"+ɣC5JօW'-E\@=qAfΆytp:߅acZU)XO Q}-VKjW=Z[]p9X2h6 >u_?@2Nwӥ6m|X.:2bă-eLg\j"w#g(!D_4KWrHBibW3UrLΙ{{WE4di&PGB΀cudr`ewIM6\0(1+ |v8#8">a /Dm:Ҷw'H$K gmuv!v;I&Ai$*k㹞ѲX;m"Xýѱθ}JDCc>v/>; C wB{z) I|^ҁ"wo6Dq VqP'80=[ LLjDcdUs{4!Jvnֲo먘IwN9 Kir }! bN 6 >2Hl H2mhD[TiG.DaW"l`@3iDzمn$h `ț@3Q{(cs~K)x(&jBUѕJ6`1]2]JD[B[#d ^!mK K6eL0> w_Ѫ('kcʡ/CsXÜbAcq(9a; =u) 012hl(e!)Q(W鹄MS+÷X# )0,uqBzP[{SvA.ݱ] (e jVB9JN )RT$\Z&x M#[cAcQ‰yA\4CN-xs9M\KE Dʲ(ef l5Je6D-/ԞOSLPUKRv?b%ڟO:sΝݭ'G*."`džRs£mG{_|1@Wmnj;bԆ^LX;t<~ܠ~%&Gw:ftrT$$K ,(HUo/3 XfpEbH,1O9/jzSǤ;a:_E`3E]'"%j:[+gⷹkAkl -U塰~v3E!,2y#E.4?";R򇒿T6IqZlQI5T8hcbAAhMƫ> Αn5=c~.'N[WDRmגf]SOץ Y{8&㘓`t9>P(z\!'[+$Im؂,Ta<$]|2WM]ʨ;R;^ho_z}J ov1͕ZbZdogO,|5AT, nēe͟_*6Łbn!_Rȋ>󈽘#I"(R΍YZxLf3g'q>zT LLaPR-09 }P;"wxОh{5^"*IO-u 4DP5F-r^2>D $¢ú8]1$ݘI͕rrxƢvù'O1-۳ħ*&R_ݯۇ \GR v0ߧt՛aqb gnh&ώ83p;&ޏ+(o{S[fWvz*ys{P\o[މ[*La+ $ kG`c,/'B56 zS,0_kԔ1+}݊zp8P6*aJ\mcvAuʟLr 0lljA(Sk :}crN?ot ڶjbD3N>`։6VM)cx6F@L  8Vxu2Vusʳ]3Tq{$,3"6'Ӳj[Kp:+h |:r/H Qo"HSJXe)M`*5{*ݬ9Y` M/؎=Favzp7 G: {u&LB[4 q7u2Qaܧ'|YЉ%fϖ8LeBt6 !'W/F(8enNကW7_=n՟6qѹ!߻;~`n%(#;&S`D¶D}9ժb -ϋ Uh 3"8ݣ",+U՟M ISD[1/ :4ɒ&WEg 6QH$5+1 ,%'b"32x^:5-6x8Qq,li;0$o"5GU;),=&fbٍ5De%C԰^Q>nQS(Br-4vj KS^6skv+ioHB-[t7' D֖CGEP{Kʻ2״ )$b/'<*DфpTT jQ$0 ܻ2%"g!7VREV \:B&SӇΠG_b)~ʯc&Q0Sp|Q9$d@C\žj8heNR(166Ǽ%7va\ n/N;ܝ{V5P?>QS! Ē u8gM&AfWXxg[e\ŪK>0$%ÄsF Z=?NWʜ~x{B?\v/&dXMh_9fR[m׀Ms;x0A$ɆVMׯ7Ũ +v2:DO-$&-ޝYPU)%Zц0Elyͣί35'(V?}BvV},YwKG9Ψs] +޽ިEK~NuU]U]!34% Z70^< Ѵm˺׃h3--AI2 g5Sቷ1{5KpD}mq+(`x}OC*vߗo&t@pUN,6NÌI5ɲ̠ŐӈjN _Fq <^ ߌp@Şj1+W&4BZ? Awl'fWEL ՟D~XGxJi5aֲBrټ(z/Sf`Uv/mGѴ]~E'Xz_~Ymļ{mc qz| :DbBRԵ0v=ޫ3B^R3u$wKwIA7N|]9kz*_$<x6~~\/-4Bʼn1B,׷b=k*С|O74 N`{V@Yw?>- <4f Zq&?u%D7)}f@ Xfǁ:^$6F"ĵéР$':0Bz̅%ـv!*h ir<NkF(*5p[ A9m%ԧA6 ~~mu;7=iD1u:_t5J{HtS =q l5hG'.q{A?X1ΦCM$/#5tMC`8hGL ( RVk+, Z㸢J3=ةTk]6y Ik=iKRQr5|):)e"ʺ?Xoَ2VYuHUZ՝L[WHsjt7K",3JƔ֦/CbC.2M^V׼3ok$oHY]2 ,ڙ/~rJZٞˀr5~)WgPBS˥B!qX %3!7Y/g f^ `!R@7t2c$42`}6ۻKy=X [Xuoqm$vn„)0t5i!Vj6"w~h0R% *&pKZ<4FLajtlȅ)bT\H>AcX&)pGR$ܧG|ؐJq?JyK9IFclzÄwr Im+4Q :ǧhcnbeIIe(9ɵ ]jTSnTX!l޳nOð SN_+I\{3ux7lk(+,66\cFbP0?$׶(W>")j2>֔|TZF@^ DAPnfP4qϢ@+ BBcy>o,Qy'fiA0jp;tU:^a:zd1%Qo=*!xo #vCv6 kN†FelmFnn+ ΆQb#- j3]Ȓm;@ZU!^x2߮I]b1{=72긆 :nyy>Mu1{d>8a\L'c!W87TyK}N۹H;l~>p_W~pk "lNq&$80vWrrkG_Hos8+jUĚ"p{WonИ]qhWڛ;2 o̖\=HjwNB(#w Z{7vC+<`G)(?%;~?WЕ7K1 ]{S2u8mdW#΂K / 丈S峱֕)ϋ{{}t,,;m6<{uq.!6..%8F8~;a7#+LAߑH7#cReNw1H# \n̟G@Gݥ.tAG8>&RTLfZ/ߦ_Pɵ@eN/.ma `F>FKsvT)i&bIakjh+9E'~Nv <.CfN wFLL([L_^'6reه}y{I$A6݉V:Y*4y j[):^SR69.ϫvE }E{#bftE菵c.TxxNu||(4Qƙv@k⇝@xZy+=5iDzhiHS_D(̉fMР1IM922 s'l }<#(6%B_!̺_q.Ϳ=W'r% YW83XmBkVRhSp(9lӑ}nT)?yFSH0dl=}v[H?U)\|[wC +QǹE୻Nzp҆QU8^]l`/wR@% >䙔Г|dSL!1W٠ӟr5FWW㓚:3ֆY\TrZdyA'b!ã[, Ƞ%ϟc(-d"Fo9&x! LF_KbTPQ0D6,Lm>v%$qG;Wx.f:g.W0Bbu0W ̲`rHE -LhD{BI>~}ɖIXL@`pS{?Poq=؜me0$3v2Ot O94b,xż 8Pp`:>_5䆻K\N*%]1|w<5cVH x_)K~&~z`,r37vq\/,ei`mXۛ̂Rz;K[~&;QR Ì=j=ږd e!=y"Rݠ(CdOQg Hb.{U[Sze *S{, -`"*01#¯3G:Tåu Z $F BGLj0<>){rUjJu[/{5 !vO`kͯ'0/]L[q.Wz=rf+`Vv7P7³|Ϳ E+bIs:bү7_Є鐽+䏼˪@ꜞRHE_f&r3`g蜚o s&%~׍S(O] o`.\|ګ&v'r4]4wSF_otՇ1fǪ3\`TLf50ދ=6˶?dƯ0! F'qs\:1 y.KM4; S&P!M&RWe %觊p{2Ǥ&Rhp :,džbED_FMݫipxub<,:Q[2Rƪ$**IU~,p{̜0M>>j@@U W.#Y)7my}r$[>^b;VId4WHJ=L&ў5)7<~L2vJc 6.xϤB|!.W.nlPS7`kfT7ncX[ [ORBfr"_̉I% ]<(Pϖd,V"#p -a/u7#))vc9{a=mEJyyn8AԶ# r$z͍ ()Cjmv#vQot-2lgmưY remWZ,e55KlK(Y6G r`i"JQ7lj@ԱIuV30XۿUP`+8Rwy?š N:$pΝ.便4Qo]";0 o Am:&LQ,d#?wxf9kJ4$qg+~Dqΐ=FaG$޵iݾN.Zgqi)UO+IXX.SnWg6_"iz{>~s{ٰY2-iޓ/-tb/@.]G1FŃKED)y9Y#G5VIxE)ad1+z*^I[j[dV@ݠ,4gaw"1ݣ9Kzz51w:X Sȅ!WkdËڷ;6[D Z OikɊO #S gt: _O2ןPDN𢾋93p22:>nqӥxkR!kuq)6+3¦^1GAq^PcX(/=PCXr޳)sfuQ/{,)}uuUmhE o*KЀKp҉(se ֌G{>3TV;Yvݬ~gCܻ2 ;r찮 6gjKt-S|4jNZX?Vjh,@dcc*# i1%gɬd\LůϞ2T L<2?_:~8tUC%!l]eU u^m+ \"jHhP:yĚMi_;0]ؔKi3#!32hkl[]߻4*1nE#`|YJ1}\gCj\R%MHhHd WPЧBՆoпl2b}XiVLܓ1 ښ]ޗf~PCAZ`+N#d,`̏PM[,:Mi;EC~J4O!J4n2ş26.l KP{lL|Sx GqчJ9 jR:n5 f/-pN wmFDUb*RB*_>, ~ErhEJ;[')00_~U%Aն7ݭ*tYJIŝ"4,HWrȱnu**z6t7nKrVQ9{ߩ1xsy{iJUu03UW~R: H5vӳ4?#35Mp7W tFAu_|zfQ;`}LjY D'qd_i5PW~S~ )(Uv/10PE/4`9ܢ;\EyogёC?c0Nu;Ƹ a$)#FY 9Ih{|%V/r+o C0}Ÿ4X~u qG5Ct2VFzIIc2 کoVW qvTT~jc =^ݓxI3wʥ/r2 esIaV@NjJY$Aе^2yDCpmRiTub}yCG |t1Aj2rJtWvGI5[F;Ò~K;r u %j0a;mnO 5Qi$}ΘXmnQ[lcc#FV5} "7Ӻ{.vg;'37,< ]K*j99KTƧVYO0N&+-790oje7ސf[ܩꖨ7M`ӗĿjL1{>%a]1D]"6LZR,d9%\]>=z줩 B ܮ>yE@%۟9fН l Ob kEH3dFi }@՟X:r=Qo95ʹ5"/@x0&R+9[3,5=h2 oP?#N)S8~( p%eO$٣$+tͦ]3|]}_'wS Ou͎kR@Y} Dx.xrU$EBe*ߗP.%preϜ< 29Skbֵ7&[eK`,pCfAVU+X%w޽iD/^^z^tFY{|r{]VryUj%7^oA e/i^ Ac t%4:T=>\1%e;!pnG}e?k;$A}(!9W)| *#]خ("6l_ WɈFJY'V,&Mnf5*#xwRwK;~?{]_F/q ;>aocMRqԑ03HpK8ңB3z30j}s|Ѝ:s!s0W۝iF CT @wkoj׶]PgUwyR"8O-#ɓJJȋEZ]3ҔvH-&Z% 7oh+n%3-lV9};$YHIgj):2 IvBPhnMxk +Mg[y?  en/*8+Q 83 :?6o2l؏@HO4oMυښK",a5d~QmO݌fp3n>NVeNxVq}ɇ0"! \ClgGC/ U@$ j*53 %L:cZy(>WoB!#$ 紛ģSAlJ1^L=_]I񩾃x8ݠ˩r+\;UqLifIRʑY2P;sKovoپ*=2l(BHl@-aʯ~ڃ ˭Ie6b ߁QNE،9 E*qnL:LڄX@ZTD^W8 ԲZ i}L# 2ARG+^bItaOTL X@ rܑu*B"xX[o-ס!>p&4A_^]&F2_l^^REqZTL-4B3V(\]{ֈOGچ<2nYf^/bdhRhj XbpO0 fx,i4#? +Pa*]S1/&I G$ciZQ*VC0.)٫QPz0U>sXBXGT)XUA}ì(gU j(Ñtzy.D벊CKEK62{x4KXA?!&5S{OGE+Ra}5BA*$J/1T)k biWV66JŞ,(0!M>AEc{-ҳRjL6鍟zjin栤Iي:~md-LBCq2 lwp] } ֈaD_jN>ΰ-/l7}mT.Z;-[Nvfϒ[_e0KNMU<}ʵo YV_ A@K 7S5%L^ Qk1FA 0`tzl8|U{}jÕv`۱:j3'18MfW@1"iGfZW=oXD{/G:+ aRj .VbC>@t+P\:zFN!%+}z!fIZ1oTs)nxT"Xp:_AuŞw0c| {NgB @a2ÎrLc"t_zy6R'|)*ޠV_ۺ@`a"l!%JH&KÙSL-!}ԛwh؜.` Krpag9ޓ"MYdw$`{# q֫נ /ƋE= Kൖl?rg"0 ,|)쌢< Z=pwisȞjt ~f(Ǻw#&xf5(xh ,싫6T1z$UbG29z n(v)H 1MmRy^%h(jl8HDԲl|ʐ}=z}JFg' 6ܯeۺ@J $/BKtfF+ nC ZeŸ@2WA~kXcΌGI`%b.s)4ޢz#픝 aL5Yht݇[RsaB&zd 2.K>m}@ºTu?t~gP=xJJ{ձ\x,IJ[^ۂP#]-keRiik_|F~a0ߛ` "[`;?$FÊYEU`ΥgD XB3']DT[rxwjf=?mΔ9ad'Š1Z]J7IaR:O2h>>k??3ĥR)QuBj؅-=J05Li$X8ݦab)<!wxID3)gȞA+(MG+=-v<] * C>BI3JHҩ @Qu#Q)GRE]9B&)syK`nc}P]P?KL@$ְ o><5/@_m.{z5DqQڸ4ʙuJV'mն$YKD}νV:<oRB ~z9r]bh2C}`'#R2[8C5\KVXνdu((|V%0׆T&EG9ES _= e͛5{VмkWo]1JJuDM{=Sk6XšIlG, $1VVl)rb3n-pC^^ gC^AҨpb TDrARY"0$GɅš:l 6\7.HpP@c&_BAr:s<`K;k&v#z,sW3'E \"*_Pe7&@oS6IpoYn Iݜ+hN2kةq M )UpIZ NcfmDҙO, R  5Yb:^yAhaWhG%L, /WYlgᮮ}4%#9>NxinWټ֙w}:DI&0b*dc E5:7 欧raB4ɕN?kXBtCT$nqp+A!Mv(E9Е#L0=vN^5hNol~vVβ T`:cLB"KD2<H6e%ڬ]6W o+ǹs ᧙hlI 7r{NC i} t.&*f,g%FO}\ 0}= S2'VW|m2|gsʘ\`0S `|& !ȎDFZثa:QSOf;/`x/}Pv)(jޖNۑETƊNy«3_|aAVVõH37Նib_i)0԰ևeM9\vU?R$[ug`I~R}!$]KfA8/Ihfs4M<ݩjrmiWJeӗ~͌MflIs!^ˬȫ wF#1,19 u@>R8:tNj5d5G5择vcM8}ݷXLuaLn^}R]zJzO!^Y7?@C?LuqQ-M74 dh]ʋ}-K좖5Xű7* Š_EZXF `035M[+hR-)ʁ[}bܤE:P*m֨fIyaVG ʉ-+?|uJB0pQ wj #)`= c ^=,}Oi+=E6s8i1 r# 5B?rݰs[7Cm? /[8Re^fN:9z3]X%<}XhP/5!ò3,Q /9j &!af(j_ ;[˻S&a|$1^3]e(rl%/ߴU5 0xXȧViWENE\ڃT2oQc{Hw`5?NnX l$3s>: $+e"K%A7Rd|b٪u8\B gpk$Dܼo-zڞj e)%kbg[D;MSg3 Ui^,l"DŽwo#tݹ3`tc?z}I=vXXI3NS\ՄgE+]cZ_X/C$@2)}u2B%;ZiI|wZ vV 樦ԟ\7DAp|3*SOAE‹Ԋy|=8#y}ˡŨ9YSpy8b?OL[ FÁ04ϟ"X V:hU?JC8>FbNDPgJ+~#(gX77`!{ǜz)fͳhbu< JlfpN-xMY͆Pe^n-h ?DZDWIoK>7]OjwPwzME HvޖәF+&K 4F[Y{&u2jO$N@ .'hN(+JXiPK.c0' (6fَ_P`MpĽhr)e&x)ݸZ-qpμpT%f`Ea|q2l5mZy/wsQt "βv_ ZiZ[S_S+̒@8۹< RlXD/q1O Uro5Cz'nVZEC5F c@xt} K xv8f)c^g[1=pSf = ,~AZ_̸nТg$xkcRtbR̨PU:ƍp2ϲELbdum*6:Q@L2Zfk7H8XQ^\qJĥ~]0uN8Z=cq]l6VY j KhV%zɄ{.A\4j;>yrv3.e,_,rhLeσj?A"0kAbkK.{4^}=+TS8eI&cBAÊIX:x=8ܦǥ s2F2Ewb xZmFv; w9܁yʹtAUuC*!gx %qWg%†"*unPOq-]UXҦwL69ewWKVG[QOGCagJvݘ~1-3(ĮD{Mp`WΔ(`ϱtO۽VGSa@ O$<7}f^ϰCxg_]t %8T@M_vF YIu i\d|+m\*F54.,"|=i=ܑy%]H2YP ;uQװ 9 (Xiw/ƪEU}nይ)ڜκ3tc"fY Z0f0GtJ2Ev 2N75$citB;:{gcZ2NhOXz$$-~wb)ehڿ7\{~ծu^YGԝQ-Hn>&>ۣB݁ |9 V٢5}MsS\3ZfMNpfYo o^؏ DZ6۰Q jLܝmFbΫ!3ykq6ښݩ ^0u_1Rd[WOih_ekdו,jAխ88sAj}?s\|bM/Y6f^S+*Kd[;{/D(zqaIc_A[]D7kPϰ, \&6,7.wR疌, Rg=_St帴HbvH7kÐuhtU+EdK?犵XPj&J 8Ͼ5C؀}(Jx/)g6fs}j_+9'c͎ M2-vx H0{stFCe ^h>T[ vڱx 8ǻsTW&b0V~)[a]к`bu$t"o\ɑ[,La*$'|$C ÞIO)S{)b+*J$)XQ RHĺ 8tJBF);f#6C+éHq'xq"-I׌2##W1"6ed&wxs+R_.ez' zyߣzFJ L\:7v+[PHI܁߼i}lxeF/ EަV@߰F!UjÙqs]Sqyp_sE䫗h繇݄kD=L쇚B T?TYw#tN[7o[HLa 앃NB3eG<{+wOۛu(x9mhCɲ$*) OZߊnxz #F)MBioY%>  'ڣMu;Arq-Z/$B ƋzYCBP"i7 tbž^9AYb*֚2iLcwg){vV$l+9%?G :f~zÿj8WgP8cmy7 sz%(q9Jt:wc:v|Vgpw$8Svf(,&cV?#D~쵉[8<^f "7Bh揆8VCQM\c.6v<`oS=<[-k g뜺LeW@K/҂-?yVlX̑W5zG(`mʣ@A>ve}9c0.ː} ?^^"7? p2,~LZXw\6^mQZ!ݹ@U\zFc5Sxq+ؽ.^ǝ˩-ynp~I4yA]@ƒʂJ4Oeڛ P!Ѡb^Lѥue@c_DI aQC+% dVHSmuKݠ&TtKێ[>gr } \#.ݯ a8fk-arGW[#7CssXH9(- #l-{]0ލJjKG}hM1%CŜJ 0J~ԖL:5IxJfЅUE G,UE*ׄqZ}gT9A }R_g$یh0zkMNiyv"iHJ@XWp[bC;~GhUin2x!\C&і푻- ,.:[Z?S8-~ }bfIK'Y ˎ4HaUSpLĠQ @A- ?ḇ6k(M#É5N kecitn"%^;m G[q[3aͪ'"SڼmQ3& @ قKC&ܐDM}X!q qnzUN7VpAE_XŠ9wsr$e FT GS+ dXoJ.П;Ԭgbr 8LVO8/BðXA&֌~tˆsM%s{9|]vt)1(>!NDH;V7e'h x t\ʃ$zӈU3 >)ef' П  miVu6Ke Awr#& entHA= .Bj舨8 E~MsYhT;Ğ}0]N#轞oƓGEJ+Mma3%gPUe٪VڈɏG݇zϵ36B1S/:+!<S^_Jp˗G<+@ѡq)U^R>2 cEA[9[{/ 91T2Z'8g=\7̜USð\>mmrwŐ9}緓Ajnդ{_2: &5 Xi\VNd5䟋Dv]z)V?=Y=qGpL&aP24 y5 dn2v@D>!6K*L隳b!EP2&}z?-a'83 H0IV%6]@dJNbVL| N0^Ww p*U~uw4^tNcP|mc@Y 2"/fDiwDr],oHA-/GuBmb4uJ7x),#Aߨz/,5dVX_`8A JpF, <Ta9c oG=#ݩqw9,[p5޻6J#0xK)a$'6M&uہꃱ4FbO8E3nye%q&v@\~;DFnq6R*Ahr~Q 5]5x\F79h6JtpC,X@f_Вj\XE'dr:IZ8 KS j7t!7ũ')O7}Yğ)ܣ] (0D+co &JvbFJ8]`{+~64uFu%hm U'#Zp-/I| !/ljb)Ο,̞7h.Wُz[d^ @ԞbT D {/&gU"*9`&NKh3J3<fd6RQ`u=@iV`ey c*!P^zK<.ykʼnHϗki(z0mF!>N4b%"3*5sW }LHAM *Ol o:ZY8ǘ-)x"jSU89ZWw۶0 {tVu.xa"P{ > CǤ0"6CRB3\1S!7ij ηqJ/{,ϖNX3xjs K^`p4@f1aHҤ6vS| YH89"6 Fv)YrguphZ/)#oEXeN e{!ٳ-y⚖a2];L pz ^  @5c{;JsoTɁub,f^0<>\RO!WfAj赿x^AK%5AD=*ᎫL9&Z[bɞr?SjFݡ¯JFD'g>CAꏠhʋUN1' |XIiBI;\~3RU֏+-';tS?˦L 2*ȴܯ'p VSW}|4FjKMax0P0ZqU;*/WIΣa{E"m)Ĺ4j`?Pq`PEvԾ)reXwX OdGJz dۏ𜣂pqlo2`1]y,&Iql ?T STzThVMоI_F*{VE%k{Zr3BC $ɒ{|dOpV]8: \#5L] rP&(OJf?mxPhQRo:溛P1Õ)9waHvʫcC(=`Ѝ(Nt/m*iK;66ġF8p+ TJ)xww}iՂXA:/yn$ Ƥ Y ?SwwJ;`P}oБ jUCTi}<$ͦ.SI-?꒼͉_qnϝOЇa’PPsH@)W] |;4\n97r:5Ke/uGsTva6O&OGͯ\8=pCk. Ox%Z5]ܱUa'g(=lS 1+(mPXS'|P)~|,NUD'ʐȎ4]n h/*1y_rM8;i֋uOe뱩K3*-tw*ޒ) L /H:3wխ& (#z[Z&L~̙*ME/.*Q7\fmwT M37 ӳ? . U0k*  / h\qr8] LEGԮdMR2m&,{HDMCپ ;hI2#ls5LkR<)] @\0e=ɚiѕ"WRKB~ .ywW}|Lzb1>?UU,( Eb1`>ĢfPMVԶ%s6-K(V7B5jBF09~T2\)\]# GVuFb kU`j |^5'?X|wHV]5qTNL{WM΁1p Zv E?[j]`5$gu+uw;3DTeyݫ} bNoΪ-Qs=p&sݝRv[c$Uct@L/O Q$D?$A,Fdj PH;Cv|λ>I<KRVxbfoCW N?(1L efyPi]r>ߑ)qze ᡐ$xPGKZ(J{V܄q[;lOR8/\.1NףOLgMX@qvbegao [ԫUbm_׀mܿL/cF??Gͼ; iZd/Cg6;bijt9k"[|TW{3GiQ;[B7ɯ蠖s>1+5ѽPvJ,lc>Jdڪ莃 PG4V_f)(p%.Q4six-,m rg]I`iQꎋsjLtnEHo},kcSt.k-K;+m|lemw(JMqIvcu: {dGAf'E;ǷAf馪}tm.Qv `7Yf$]H]h c ,3;P)D27evϤvOEaxT1| @m!]ӛ=.m~ ) ˧Xy!BGo>}L(ARe@f.pl:Еt@6K1^Dk(B.^[@{q(RBC5_r"d$@ nez&|"YbtJ?6/2ۏk촚5(C$b?kdX\zKY{Hޗ@@RatFqh}1!(MHE$jdFO ^a2U8c*J4Se2%5u;f_L3r,[l(caLCl iء~:v !!gpê0(.N*+[>>☷ @4,,~ld̪@`GexbwS'pV }LG(<{NIz,+N0住|,p X4r"G"Mdծ_,3xٿΑSTo\p IBwV0BX(853܁>ڣHsvb*s2uw܂""_LQTc?O4 t݂K>H`n-<|&4Ȃr1Ö TeXĶI47jO+3QS7yv'5kV^NLOl\i 06JH{db-ʽW*wD8t1T!ojO7NVԊ| ;y*YwH$-oaR>E ~0Z;0XTzҘ; X, @E.aT?o]3cil?uQFv .E-^.Ҩ0#LW~Q1]6OWc r>W4'H]~wˠᄈiHf 0 q9iF*eI3O5'@4'¯ Pܬ:8q%gX,uaIyƖ9 c(W8O{O]; ߴ*xRb Ś oO22t1ۦ yMY; Q;8Gx"^xauIU% x1%4b{kneEvԳyVB1OAeUK勧iėKI6]T&r&P^b뼚$L2~>hlk?m5&MCu?-j9 ޡvT3уݯI}QZhq,Z+5$+o_<Q, ;ɓ2w]}}d3kw{iM&G-fcO%h My%=M5 !~ix䗡F7KCI2<9[z*#?gں+ڀ?Ԃ&AKuo+^=}>2=T~oxhB{6&J~-&iƫkAb{d!p%zf7iHjQz[׋Zц!ѫ3O\k]nP[>9L^9VpfڜkTzJVhٸFU(nɎ }#BmTT,A0S78fȷ1\_g{/PguN :03<ˆ>;b)>Ű.vsS!0"(EmqR*:5bk/3<&[H6܊+G~ 2GȄ%뛞`/Kp;4؆5tq$T 1RGV)R"L3 Ӱ-rg{n 6A[y&ETWB]?gBzص#\{-龅Z8CXIs yqRS. H(]͚HdR HSϥǛwREwvScg?H/j"o5!XdiP7 1JytWoElqx%ф:zO>-@]ҭ :Z9ZVZ`@XQ2ɧ#I&m=0!BV>N򆏇 "bK*,N82&|vbwr"n8;^ɳB&#B@_ r{Dns |_mCJy-at.beDJ<ƒfsSFGG8Q )J6Z@XCGt e$ G>SPᆶ=Zߔz#2puXξaAQ,h"qBh]UB!{eM9 Bwmi樍GƴMo@n`'sj ײfVWcJJ5F ;xަbп?gTjݿgAo:9>2WTh>S9;tXL01&9l'| _,# P@`fW!ڨFW8]$f)qJ!ǞRsKJwR(oeј>w8_yE6@j<9Vb 4%@ լ<} hw|4|Scr< wajf}~hN`F@MeO&@q+71=Fe ([uu;qeqJHNZߞI>exuhaSbV~NR6UW-Xw0_]3C{3*>P?܅1ȴѶzX=ј-^EE4A>G<`d׶ AD~O8dl%z?C~$B&&foTu Ϳbl Xy7vJ-|!5=kp>fco)5*eCn84BoDZ]r EϞO`\;ٚ9a %gBr+Jj%^dqG;mֳ\̈3_3&#)a*Z]㋫)@Ɂ&m`eLu7 uAFRBc{=+<1(Scnfײ5DNA<1^akPm]c3ɍ;Y&ftBP{ +suG@bvbك>͔`( jsu@ ou9,Je_Ѯb|7*wH_o"G-K\`Uş= <+7Q!|u'@zw_?@2E Fniu  up6h LbpIRyrߤ؄#WΡ+h)s6PoTPMGEVgR=js*/8okc>Nd.e{; J et M.<2`Ԯm4vHpK7j5۝n3fZo 5s+]1?}}j^%N~5'F7XSA*8:Z'A32JMR!hx,9!^{*^;Ç:6xYe[pd| _rTlx{4P_ \&{Db;A {*CmMW"@Н6#G x{'/[ү}>^SD2|Yx\?x=8`؀Gw7LD k'Da۔xш8$9(G>ggIvWk@J 8F'?s d=JBçR5̀e씣1}sE'$[~7Cn{8Ԃ`իpJ~j6J#\u\ ~Aiq$_,upG"DRRhت(<;TڮТ{v}G'v}Fd!>_*߀WڣՉܔ._yzsj0i@1r5 b>~jZi73Fg-?cp㛺quE朂UH,WvA啲 2ȔU5Yg>z}/oNx_"5癋t*dڑ 00qŊNoA[w?rd7k'zO%9(!P9l'_*bRxW˯U^]Fj/(,8 П wqcϒlǫ/Pmǥ@LK߿AI1|[ _q`EiA#֋1$<'xIc|  ԵϢtCS5۬I XL">/ +c{w Hrr9SI״8OX5]O)]{_T^·v˾_aN Z!ts3w$=k U^i{`G-#0ܼ{ͥ?9+ /c(-H4}Nה O5X~i>WkMﰫ"VҎ ?/5qV @D\۔= T;x]cKr=d]F_GJpldRy]=\$;cPD 52Qժ=BK^@,B3cD96+(rjw?u[(6, ʏJ )x_|5f&_{˜u9 Si @iQm mߛJRKudhʐҐ& -ϒ'H\3%ErJA:nF4蝸/fKwSTM_g-;r>VF$b3{GQfvt$Z7Iw^npwi j>Bܦ\ uwE<}/$ey2$~~A&W<{H/%;웳#Sظ>ʫhmX&7&;$qupv427: ;S,=0 {n8jqڠh(zwC pH3 ? ؈ZQa #[yGQdnHJMRĘjDClQuE3q+Du3P$˸{E"c>/aw4=R⻕GϾHiei^Yd:9C[2l={ex{QG:`l7N)#u츷EsF?y"(a߯MgG=55{ ǡ$ڸ:qcK5ݒݿ;? }{ʾ9z=B~X+ s+bgXP Xzvz`EiI?C2 ;V23=K9' Va̠x}yTrN\O`o(MV$N丯Msa[`8YDNG}ߩQ&,\WFv(dӠ,kN{_:nfqɗ _0,&5OT?夭_@b \.+/7Dԓ+!Xpbq}7M# XS|L vTbTVM+P&2iL~\Ifz+Y?Њc^;wTFp?m$wVgm*6&+O^<: y!6=73MQs2*=6|:"Wj-^I*&= q('eF+89Kuw7XOIn.]W,cET1mC}^VR?aPԋ,TҮKG/¢ 1K\ P^)Bh uYfPqXzNi '$e'c8ڰoa$24HnA@LR O%ꁿ + OcsܐUE4)C)}idS?D($͈|LPܢsT Kt?̑ Br`VcG;«7ۗPaH;ʱoE^|]u

H>=|}x15LQ*k"RIv, IIaKŷ-y} :^ȑIS48qңCйtqiWOJGfiͰ(Q_; 2BI^qH7sÚV7M]毭M N9(#~]ܰˋ0Įe O1;qQV=ژ$z]2F[Wwm]j/۝S&/ ȄRF_hsa^qG? JCԧ/ͤ35"~=& Ùix obnXKð=o, .ӞdE΄Htԋc#ىq! D0rt?9{nS1E ǮxjgZWTk." , f5 n^?!XJ_DQ@V;WWR؋!Jk? x/IU9]<_)Twy}߲B9s,bE{'B2Q%<@eca_=aysa،^j4JK\"eJgo}GE/($-r ?Z6CG467b Q1gf.s+J BZe-:y&Ͱ֞J`񽐼;jC0e7@>'/"XD954)( Y?lָOƑQЊsG['/ bKBS F[|BS)lEIBP4OJ83#f IH!ғ$1I&B Gy ] hU//Zp& }xsY*n_~H:(hF1^Dz_iWp~k_$&ua9@ǷEFW6xVL_zPtZr2~_7ZrgT"ʧ5ͿFISé7U}?*)LZˠt'Wţi 鍠 ?pkkR\}Hq@\ =!Gu>@PQ&Yj,)΋ٛ,?jgZ0xOYGQaI i9s)VDc >mꆑaD<6YS"$s k-c*u/lJhގ|GnBc?ظe@åGuٱ癶 9RagW6;* U%3C!X?lXΆcweH-.-+uJ5ZbXWKurѶ{C*` = Qdn>هgPά:#eyyFﴎG[3 %Q0K7Rf>MCq!5g q j@c?Q9ϗ8HZHV:Л99CV d0+NlF[[QTZH.!LG* 2]/*`B/Ϳt&vѸtrN+Pr@9MoǫXej2/"D樹uI`Wgg> NLr$ l:06YhYo t\vl='do ^Q91|2? k*0o֩Kyu&7v 9 O Ϡ7PaMLlȣKCfq3ݸڵ3NRCqeFkDtDĚPdOxCrf+Ē"IsYOhuq3 h<:~ު$R#41d'Dr4Y;fpLQ[`$d2q)IYcМMI⽍sOU'~WHTҏ 8­z=ƞ LlSHq\ +"xi$vyT9ᅧKZı,D@\g,Po(5K8hwFŗ R/GBaEbr•oYꏮ\Rc>Gե'~GdF?eDz9+uTbV:] $|KSK0<ן0\4YL>3g@Nښnc5~mm⺵<6N6#z lΦgB9.ǥP;56Y r٫V ܂߱*LEhuz XdNHE1C9W@C"szRaT݀2.R=sg܇"QS, fvެ #9 CQ2NM x&|b࡜RW*sO an:֯fCg6YA1ȏ^E3b2[T\99?65Uh׮}WJS3\Z7O_ ;~YkdQR^7% ND-RNSxfwt,q%sO0:_ 0~gI.26$ Fl>~*"z /jԴ']湓i Tg#H _XMQvmٺ*ZtWhՒG4qy{#dT'J4`ZsⷳlhyE4N0tc( 7 o왝,2Pnsb ' G&-FQ/A"[.4鋤9sKR.C0uz|d:K6LFk^[RdpvHVRgYYEwX|ު,Ph'͂\js+cuEymf\6LrKGRI9= eH Y]ib*II"'+/]xLLrm-Պ6*-&zISI6HAW:j7 9c6̇íN[ SJE\~q.΀ra7_QNLg֘Xcq%(GK畴&`!e a%KZpE-&kBn~Hr!Ilw*GyJ|"6ltPŌO꿧a<0H§rع'f<'1 *~wlk$o8gֵQQUϻ2RgR&-82, q/ ´:7R-|"1]y- wZ[/hOFnѳ=FZq~ yA!C[oT}%oZ~O;z*R?~i,S]!NYXiDXzm+ 4JB eeq-OvU-҇gя9mlmR ՕK~+8pbx&`әqtOa@}R&!H(t 6D nj /L;$P+Qe`OZ h#SS5hdR sFL:O}f rl3;+mrO;DS(=NYԚ1퐆<0V h5mJ" dXAK|!ځ } 9eXضI b~fF'>V!?jnuTy?x J6Þ@JM1O XBx O>'|évZa0ɰrE&jeKk^S41'h|A6zqRO)B6@ $lZ>އ #TO,Q ߮̈́UerJPh|(IqL! 5d<1R8dz`zaYtqt7%A˰YME ;i雐շCYՁ^Vf\31T#kQD{l'I~,@ZLSw}% zL=^s}[֠::9|*1?0AvE"Uc!($]ayTNq ۡm[+Ys*| Oeݒ7Hs$0}i/M1M%ax+;c2Kt0N'E%dDEܦ,zELhU2%Hϑ}>sW#lfie4S#6~ (! Jg\#**B~Tt ц\78%߄G~ /' 3f2@ zoi#(p6RguuTV38tVNQ=?J~]ء$s5\ D0cLۮXؒ" >KLvCں "'M󲽙Nȡ qQ 듆ImG5 c]{5v3CMiMbZ1µͱ/)89.iʼnL○i8MM̎l(rwgᒮ(z~R7q?>~FtY14&cˏ;kQ,|'' ̓5yŲ+&E݈:Z{vC.eh{KlO+lgvЇEA(9*@+B7 Jw9{<-@9vvr>}>_͢ sB*o^HqN|rGq:Z[dG!(mws3 ̀KZB<5sXNSN:K"f4Se e"-m.ZzfR# `` g t7#vaOͯɧB.T9n^ c~={4:;`="\ Me&al14|'$0 c$87QO#\ϡ }"xA3L?\T[pJ߅L7.({ROl56Ͻ+B9,:_Go5S\[Z< 01L>bw} wH?g0%oBMٲEq \ FnF:b OX?.}a'eMtF$pvw>Z4Ґ{4h,ā-P/;kRJTNpK@ƞ+B |`1ƭC,OW8]"LqpIzX !:=>y6CO;}57]48-|T,ȧX6Śi <J GYx%%Gc6eH/bf>ZN=DZ"i"NΖ}YWyK*Uj4R'?CX|5 &94}>BZUNYlf&g8CJW2w7H4Ej~8w| ͑!C1Od.܎C0U#E1zWL+"Pq QEd(xTO[jYW Kq(^`dA@?R&!??͟nVl'L|~ajMNt92+RlzMM?t \rOB\qڿԗx\ԛ0cyT]+oAb7M7)qgN^*.[s鉻ļJϹ1jL@;%T ҷ'[˻ GoܾmvcRՋe*oM(dzOq1Ga9BdTpȑS/5zZTGIѥzJSDAY?9(؈t񎀖Mni|caQZ/fŢ= WF v&F,?=\y(fډb}P !Bۣ.w(YN˹Sˣo_ۓ9eL[qdP($Z|] AaJV+b<꽉;УOa$QbB8EbnqŠzDrMLCp"M( Sֹ %͒O-"fI4j{]z(+"*늷%CF9\)@T\SACAXxLSr $'b,ZY(ՋihZ_bJ%bΝ26LP~cųKH}\d/,/A̎K%3cS5$MWA!KVV,/NJ1O`ӑG$dꤻ 'v733ѽ|.SuZ, ~"rJ v舨BEeп= 1 uTT!GZE-$@Jj;9LZ|j1&V.]eѳ!<~rH}VGF3ΩqzͷEBay_4l6m<# ,d3ZQG[4"(y%;fcI;Q FPLB%pM yan֭oNpXz) ,2U 4 Nn; roՍ*bh*HՆ;k!(ۤ߼/wY. ^8ftz 2=#՘ˌ舏>`IhcR0ȧXZ?"!GGNpʫJi*5!e s%6Ȩk>݀SW# me9:0xeGIGu LK\+9mL(edi_oHpWc!~o?ϝdh'@GBgV~mOp ϙ5lh)I*wUzxKmgkxaO2x|Z;fjCiRp%Ÿ́Y !Cz'aTpEVK[)!0*?&Mf{잋Y1(ՊN*Q.=BbZE?1s\(^Դ5Y\}s Ʈ#U9:4=u4?K Sꓴϕ;9wNYs=M a<#[g Svo\0u8 yQ mɚg96NRjC,0@f\.JP+0 q݊סRֱ#_Pc9SMSҰTw "MllHfiuΕDbVXW9_EN؏;+m*5Yԍ'JX=s 7 0ּ59@e} =BY@V;nsluK6rL1a[}#%;/t.&Khz,$ړ4H!CVFg?jA}ui9qY E::SzQ@K\]w&a._Z׿5x7u f~sA:T ;| q0$q^O_X5v./7`n #Qj7Úq5;QZ=§_6y$3"z"9d;a^bGd019g'i07H} Lm0[-7fV9S椡jA~ޭqmad._m O^/FsIԘHn/7 Յ0fSMT-xͪ}z0#[*Rz? e.F;L ғI3D19% rNBYBFNG,z sS3sz*Q+u4*G̉/؏48:yM1zd[!| <`=.~(YLj;%ótajүsҊFa2)lY}-q7I3`0^OK<~<#JoNF T:g2a)B[y2<4.>9 +d8D$IԾǮ LfQ_ bV}\5Ɵ!)흽V߲T3)o9o|Łx%|$$lMykB:}'w(,>[*el~r;1=aN@)WBxcָ1 |i 憂gN?b"6b|Otev=5 `67́߃ư"3=HRյ]c´faI>:bFsOzU\IjVo <^4O% ?K}=cpV.@HKjd [-FC+FE{RKа^P0}dTeȌ)t B UMxۭ26U#k[^憺q1%NGz^}Ϲ^NFz*)䥩T2VLwm\hÜKCܪhM֦u7 >!ټb*zPvc3 fX4 920/P 6D&'=۟aE X@?4q̼AN6K(s9-Җгrb@P{}rOYf0_wNx) ^QHH>q9U_,O@*L`s;B *qo,֤Jz^D)5: j,+fiHפg`2+|<$vg2ν;(];di6)k9 퐥A6\ONNAX256i;2Jo'Ltֲɕ cJQ-2O$s'<48trdALc*!'duVKVȆ ̡AKl9 7ACtu~h"?zTB( v^YM6槓 [ZZ%<[.1SɒÓȨ\MeꃖRFW$6}4&̳f>:`- .>սېR`o#R`}r> /;?,T‰_;h@qEndᙸ^}u%VV]3Ȳ1Q҇mUqqӄ *_Sb{bf-_jv'1-]c}0P:EZ&8]a^y]WEP p[aX(FMq k EWoﲄVL,iXT wgMQ~ċ0ي+L]`ۛg&`E/bD4vm_SYJۻ% )-M?H'tAZČ{ nP}ZACOzMT5zD2*!\:_dt<ЩY8v^Q7+\P%˼Jڲ҆:W¶՗WºkOWJHp~ c鏜`V mchw*/5 OK8ļɢ@o=dTҰm%)j,yWJָp(TՁ j8X̏o?b![s o-7 xkF?:X)I^^ ׽l ^3PIcD/^ӅHȑ=ц𺃹GeJ 0j$YG]#NJ@ytLqLx33 #tH8w2Eg=mi@W%Ԁ%tg—8VN4_ dmw+1:Qa, Q9{9UsHI_VohwLKBwdփPFjJBDzU9GD50@Yq=<)![zyncSwA5 Tzym6mz`P&Kxċ~?S91[~PG.tcف}4gwM%OxXt_bhB(>j{G,a:ڇcZӿ%2#fAhB@`-=6{N7cE&' i-2 E>P0>k+NiIkt`nl{[M= ԔLwÔUO𘪇IGJU]=]RjyvG+s#J W,qE\Dqe7a]rl>~r9f"Ǖ58J &5Jw{%BMȼ4qό垔S6ry=&w ZM^'. 5>bҊ3WW:A(<4h3\ t,ߢ>=b+v !ql %:$Àhάsm)G$s U{{β.щ tsRɖY'V}</WKo5>O+v_1-\}YwacP`y7 xٶ>LTHU!JIXmR@@Ndc~N>Bt`ssZ>x۱M}aor{){5lz3}=AbE kf%R,}Bg5·UbY@z$#Tr)b3G] ".Rkߘ[9;:l9Q:1/\G%*ʿ i'>NTRrL=l< p{bq_dZpJ Jwhk&,&z}얧}[ao2--&Ev !hۏ Ѣ#sz;g>[4~GK}e{GF- O,^4%07CHlDXKInP9 ~,co]搻 w٪#h+<YGLE p+8W|wy4[nxy]NC;#nFR+BäiW U3_Î8C8 lB, Gϙ'3KYKiTg2Qy+[r䌘GN4<yNɨtzǶ2Aa[Ry~59lMOvvލG6> KiVEU=ap%[?IJ7L1v ЋF\%-fiy@ZqIB yM#,ꌈQdzH 41BYח䅖ًYOW)4zoy}L#h<'Ȁ.:I[JϭZo!MFvU{*E F.6Dm{xuԹ͎G\nOHR *e_n[ 9<.TʋܪÞ(z5Hb2@)E6 ?@4 LE?㘅 `j.yoå?u#1wB4TkhVpe#eiepy#-JE]=(q(c 9eqg~PG+[_ }Ғ}yueVѡjU{*b,o fYT)Hf7?eDMC?EcXHSi9\uzMyw{0g\k?@+^<) "ZeWfQ#z x1:!h'Hz.&I>f@k͕Pk@ܟ* AjagH95~YE,kS35BIC;Z(eH0x $\Xp kD)nNSHăz2-ŃܬLв@lIK >?)91KZS IzLGǧb]{E:m%8Nt: ~\+ZEyPaUф͗2Fz Yʗm&FCMFeڤa1)#!Z uvH +(5?!3bb 0.cM)D?Vv T01Xtr? ؃΀kuvTyU[r! q~o]W's6 :Zɐfu.VPG'2҃q@>窞@ ${~l8y))IqK6 NNs?Bd*G%>3h[,B4#&ۉ HOBּnJ^D~Ed;Nz\_ /ONGʦ=jrǥ7iliKhr4vU?,3ԧW6|Ӫ眲󇅊ۿh(Ce,/) MzҰc&[ tadZ7@7CR%q`(W*Kyr>܂iU_!D8~o$'͎Ca~K7RK!e` y@)rta\^ ,8DbZ]g>ZT|he:>8໣lRJn. 3z Jz}L)\` ma.)o`V kLB͚,_FbQ| Üfc#l ؐ6?H+ eڲ*;SZd.nt/!v6zN#F7#ݶb4' cĈ 3@T|ɕ%I=?b9M8D0JSV Hĩ<+}dȁ@$P'{D3KvI.ܙ5"s"gj)s0 u>N?/E\P_6/ҡ|͂@YD)ۣhwq26}-gPNAܓ" Am2gfPT%Uʩ]mF0@+ EOS$4dcZ[Aн֊UsJ :W-`);)wZe,V6%3LGH #6UJk* Dz'S AF}@Sߒب̚go}#&Lm+=HG׌D4UA=b$m޼ìhsscRyn_РE0&40fM=DTT}ە{tJO-ڧbxauA]O;6|#`ZA<̜L##uz'@`|Py 8$+-މXRY;qyTډģL3M1Es("q 9TC4ϮÞG.Kٍ|-K#/OGN9w8ߪlClШ4;V[*]VB4o 3ƴhc0>Z@bjLHp5gM FscR.=W,G SHG6ɞtj)WW~6겸}PE_.` UeJJt]/oO|̤q \8"gkQBq8eGTsV3U,]a |(GX_ yUJ{3γtE4!fh斺qGfcEq[&삭e?(?-h+\Va c ^9{7ْwž# G|ob z0f7$!gVC|B9O9f+Kv |뺎\$γ:nX8y+-MkȰGXSj>~ػg/8Ë~7>"&/ `58`|j\»4@FYP`،擇&7D3WRלm0py0ϣ;=%;R_!ݾZ]K^ޏYTt M81я#>|\BՒҪ xצ/aZ¦VZ7%@k~ٸʝ0fUFS$USGnh_Qiߧ`T}Z}+R-Cu2!UȮ=$5OIyBx|$^ 0ϐtD$5 x*|pϳYɡ)<62z璴`M̔2lySf'"_Rpm޲w,UY@:S߃lN^]o՟]j^EUt}{ i|X{S1G)tGumӄmpkS|.;w,H!v/̠:j?#-o 2TI1urWvQ͹חta\%du &|$Am/uee|)H ::bw_[+Y߼eL7$;4p"C9[犏 tR,ܕn4R(6/"^1 6~ |F8LQP}c#Yc '>2XrLl#dKD!Q.)Tg&; o?g- cuW+;s x?A|Kn_ٕGR]tOv|ͧȩj:l۩֯K yn?w4y8pMa͚j%(Vy䭔AWlo`k%2ZFG9~'͛Uf^y2:8_+i~s DˀgS0B>

r4c1},* UN#C6"O,Iqw`Fxf->^O>}:=TZC?lYDړ&咄v(h5xL%}QFm ,;4̍8ȯ&9W>(YL} i{B,={ ĸxDI@:H;HzHz;# bU䑥#5 qja_M;_/:?н3*@Ⱦk|عUqm$ЦIߗx44^n0=w/X_OD1 O6q:M)m9q\o~=LzųR&GR8jH Teo&޲s [ qQX3fᠳ̫ 3P@ѳj7 >q91[ WռZPeH{*E~x[׏x!"qAvohoJ-0|^bqUF^NdY6b3wTԾ3,HLVZ"P3b]ѻYdBwwc28w%J'-e EXRbjjT/Ӧgݾ[{ +^^/h΂sl?+!~^V B-ʦI43j)!Z4fUJ(U` >!U< 2_*Y2h~). X#F0YVb͸L`=[]1aJKwF#+)L8!CY\ֆҜLC)Tk*=LUqwQnq;9vޒ\S Ccæ PG{,v.q<=IM{ VA TjMn {ӱ%YXvؑ\D*!VWXKύz%6 oXEpG I+O[+ZhhWxL"jfiٱ"痤ޅקM Q) x"4WVE!wnEYұ[ L`]qs|$SU仺SW'\(F<.A䓴/0 .Unh0{~n` L1TV= D,L)"2:3ߟ֟05dXiUkȱ`yCr@K|] h 4<4Q/ %kj^ސl]8R4R*a+l܎A<`#n``#9b5 jS{<-(M7;a>Ms0˶v\au(z/̧m{7 BLy^_q.' ;=x;OmSc"J6sȃ/i6>20v qwGZP;͒u3N_͋$' 4y,Ve<sCJpNh6 #LLiR@[="7%gNVGyB;%k1k]T2q8LDiWM_iz $)lϽ+NRY`ۇ$獧|%ۇ%;̫Ȑ1GʨW%81f!~miW{ zj&ӝ^|mW(⋹"6 0:T>Nq*UqS-~Yi. t0x!x۾2qy.DFvc, !v3[˫r9)%u'>5FTMFԖtCz셬&Y(%C)ٿti1\ګB O Ʋv3wЙsDⷓxW@42K' v衼a' :ԥb|H4@j\iA D1ǫK7J)UE!;brMXhdf-!93 ܢy1I%]ʃCp@ fXtFÌ[HDlZ4$.">4lAn2t1r]zN[e|G0R֌|`{ #?]T';O\XP4dO m@[GcJw5֣FT˂IW,ƿX͚s6={T/+'4b}nxAC^#o54|Z /ʂqcY&yf8#Ea7VtXZƛ;Jǟ`'f GX2NN8Q,Ȯԏ'2 skA n6Qss.D-PnQ7έb'A Y 'J}>(=K1dE}Y7 UDtCvGtXN9E tULƁ?eo["z[y [ʾiDv`Jd6ʻ(UuO҆7_ob}~RC^;s?־殱uC}M;V=CTFQ}ӒogPڌ0o-J5eNDSE2.Ɖb;iNxFeDFݍJ-r]rnDүݰ?ly+uwr [͍mhIﳄ&6BWUa 4l ;]vVJ;PBYJ P1!?g[2i# [.Xh!2W*S6dn W'4('tJˮ'ӮAyҰj@Clй1X>tIZWrҐd)#G;_}Րg LfzX;#mL*7kM#|gVhՆ(cbU"iBq$iR»M*QZxQ$R?iCA.a56|d+ʊjK):b"茾@(Xb5@!ȓ厹g\@|-ϰGr LKXN~+A<|eOAzd%MkU)lC`0O Qjk0ORqP37=@n"L†fXZ 4Z< /~8+QM4w4%Ue%' ]4ZpX )ϼ8n}/YY8W"=ÙF+4}WQޓ[5 P]E pMa:r̸դ q#}?iӚ5CȸS2t !5+s>6b+4Bb, o|ucM|3}xt+j:1Hi8Oۉ9C`iG{QCU}tW$ƥ,!ΐR1;ޖ~\vɗK|\TUՕh7 H( ac>/vgmH{ݹ7I\ [P/!V".e: SvB GD7Yp P^J8/Gtqdb{?Fɧ``P 2MP>i ԣ^z3[fNoYJ\Rsov|Yn1%#9tGbE1[K8g[ +B%JJ)KtzݻUUD)xDhxQhЉ~\EG)Dv%.6mmlP}2Bw-JJ>({Luo[ҫ_}"X+Rz"mOV;V(,|GȉhlĎt%C`j`wπoq~mA|zҐ GvsʙK ߁&)լynef#WN;iP&C4'(ǗG:ʜEL%A?hwH!CdKf(m45M IY(L*]vSOӚ v?Y0S`u$3e#suZz   E/ALZ"5訳,Ä ;Js'R"ER/2UU:O8ZG_ $wQs9i_Q+ȃFك;9ֿ&\%Rdꥤ Lg|ˋ+ɖ#U.4TH4`[g`fn}`_EO}ni_1$5m"Qt}rpڇ/r"Ic^:˩8el5!cDmRCeI :}ͮt0љ@ۉki <^1*@ |+' \; +lD]3ݖQ$.>3l_Ӻɺtլ2=V*goքE218,34 #N+ĮTtg֯cӿD ٷT¾r[/ >74- | WxlZuO8/ V]^82ԭT ?W9Ht,:,V(Z$!@!Vql:F`ʼ)U>s%mI[v"&޴@OLՠ=5.%ҍ{0Y2[&&E3a=?eoZ/i0j*.ͮ5jb OpYӸ8ZgW*Or^97(fbMr0X4^xA kDUGVj0SSs?S֖~c:[S2l,ԘmB Nqt%?1z,%)AHnQli?^ 7K\(+}1ǎinl+"x%m7o60b"* F1aNhSTr/@} b,tƦNqfwQ L,5sOc crSVS-ِ ^tv??<4>z%S`2ӒL ;8菉v׬?7hF{=SdY9a/ iA\8#| ļ@,6b!saI>O"09(tp?8;Yn,l[|çI/|f ]R 1cDLA n~GD$t.rD_RDpb/[#Xz/6{PIxpApv[5+6 퀮XCʏ2 lܩdVՂH54e.Ěvpwh%l$(W0"]0xqZ~#֒m&q5ꄍ (]!!a}:7#9Jϭ޿CѨQm!ˎZuANK0f&H>`+2[?zShlU\]蓖> eyq>m`Xg3#PvBk繑Hr/nZrI{#n+x;(3ЇHKG}?+Gڭ"cב٨5neQ0SG]cl=-l IצƠ@Y~:Y_r{AĐ$J4I; !pE L kv@mdlkꔳۋ z VtZ ^.t j? @>! k+\tX@͘4sʍ/Jg1!PG^ϨNx[ɧ(o^4Ơr_${6c=$atL{Ѿf>6$~:svl~Ȝa86ϋa+m>Evz&3\Wr|pwuۀW9%JG|ޒԲ*E7osש] ק! "6;;%VMkJ^/Ye1|n Lmw/jPE(MMI}"R)1Ӫ:T+byvhyus4ƨcj#rnO"λPw/FiSxvSH)ufJlWI nq (bpu3+(.C! yzDqFN:oj*{p1 -M?~G h8?H޹بJNfhf'po}M{AN"JQL0=aQjl 70㢲 iA%-RX2Fs\'yO@XYE|EVg&,w%)G״ JQQ )h kk5YpU(/ljv CpP9pZ%p5{~ 7lu%mXJ`.ZVԺ}p"XQcĕ\Dfuxȷ ls5J%Z!˒_HF5éak̚$ $FkQE|+㑼tQgZ9Cǖ/^՞[>:85ovG&{Yi[K͏o12U{eTk>LM4RoqfNxWU9RO ?K&S-71@Ug%ʲIi/:yRJ{sQwl:3ط.;:Xo+UNs9tϰDh>[Z6P0OD9^*SNs24 fR!dՒ~VTKFdQCg0STAWn&HΊOWbbi٦,]07[KMY/1di&z\geWBjvEWcm"!T+Y]o7Z;>98F"yy<^ۈcuZ+9z4hWSpwƀD"5 ld"c-"-n|? .ptmRY#  Á mJעbW}Y\W\)V7k1fļ=P)ry);yoƶ!`%  4ǡX]v$żK"eϛW*CMx4Z0ɽ}}'fv3GR0Pl?gjڑ65; 'CDZ)i}^#oJ`kf2-k,PI"ۨhIR'A>pobʶ_}X9DɴTǣ xBU$D#91wEo]/uQ![w'bv.m pMŽԐY1{N1BN2霍 D ORL5g_O;-9oI!l={HW֡F˄ U͡vo>L3?[9\mb^n{`49zk]`d!HrdA&I%FN;`TL9 RtY>/$ [CU=-0TYT_+᪯y/?)fj]gͳ3rԂ0J}GH ]g =0Uss >s +,S 0d!}ycbM๼e=jj:>1zFHJQύm fΑJfTۙO'Fjމ Zz}7Lz;G0L M$xr/& ƗrMnStRjsW1irz+ݹIpcO76I Y$ѷdm:|+EUgMl؛ΈRf'l1;UfW1,kmgɇUE_g*@-laɥ $qvt\jz6ݘSY 'u:5. F6,HiOHh/.u>iP}d51HW:W'vwV[wU: MEOVvjoŦV* vXft39duc`ɻNdF*9T:yAǂ2~YU0UF> ]̅f:!<--/ Q"|_qf HB|v%s`2pD al@H)$ٜb9p~Rmyey?i8(NR *~^GXJ,چVdr@O'(yFCnˤ?_djWdj`2oz nR;r'Sp:ur PFN@n)z)5G Jsj<aGIlCдV嬲yGɗ] vq=04T[oщDK18Bҁ`xt%|Ot޹F<.N%U{M"9+Г]e# x>Y*C! whDRٌVoZٔqpioCMtȅh%/ _0B{ɭd C봾W~MvAT>-5?AXD#NkvYxl_h3FߚE9s&xeSfbFe1ӨuV^&) s4W Rj촠$~y~N&pݩSShbzKm @EU:PSk]t6ĵkv4a([k?D;e=Jpm[w} j 3u7Zf! 6/*w ןPȊAWJwk+wFOo^߇-M];6o9n6WTo1`॑P3n:vGmeŦdԮup:mp~jB>4M4OB,Ur]16&6o\Th,=]st'Ȟ$K3FzfO2 wO^"?=la h7Itf^/sێM8 Rϔl|ۚջBUҌĵ3<‡D=; M> I(q 4`F"_A֞5x¡8]9h`Ӛxb <`$QOt\SQ-[-N+T(8q]p)DOͭz0ceqRY;P>P$ V;xSI~#5:DM!FO7[ GZvֆB J~-Kx riəZ!>hXsmvz21s%eh,'Fc&͚N*ٿ-Y>3|TaUbœ-_8gJ *y0f.H _w*Glvu"2*y-<.ZQW聤Lj f;i%$ R3[t0ʅc:eS'֛_ eͬ~5mwdD \A\~oKILv {m*=A8\G)Y?v).ܬwhڭڢ hmQ!?بU,HS&Co@co9x!Ss@2/73ERޑrùߨ1%،7!D)T5 lNZ+c|<p*H3{s=K{;L:LBsÃ}?2R/MC+c&Jb6wN)i1vwo櫔 O<_ $%⸁'o_ER/?3} ϛ=2N dmhPB'"1A3: G6HrO/i0E'P Wȏ=Yֳ4Y_}}Z|( q@ ǃp;f!35ȇJ1R=[.9c;̇{@?⻾Tڝ9{a5TR¢BL1C/7X1)D @,6/T'5U1hBh)zImT0; 7UxƤ&}EՒŅj⦬Ok?4a2c(QB}ѬÉsVBw ɹR%b0R08Yq8"i}2N23?wR1.#kL MG[멛$0}_d5_Vd. aEnPC7\FEF+oZ4 zzܗ= tk8:@8 <.$!W&{ˏ~0o&<R푾Yapw?M@#* f8)#<^p|~hTHRHf:dMx1ҬRy ^֦S`܁!ah ЭHD-M%Cմj9uJA[%jsNI?pژ1KsRi3^o+lh[,ު 4(͙IhxZx[k[[o՜+͗;l=VQ]Ci4k(iѠ ֵ0܇8W\: `Q .Q,ܰOzY:2oRMDHmof>*&[`fvX*yK sK;NVQ؄1Mqp^r?Qd="dDǒ`ωػup], B{Q/B [vJ!k+DX*{x=);ClMcx@Y!U$-hfK6 Nn,-1GO03}eƌW q>SK@f`Y:P 슩 &ڋ3ԯ 䟡G0rAM<"FAj?#M;ɕ4-X VrγBr*wn) \L̼ x6|=6-Og1ZԲJMuUAy d? []?ReU)e:ZY,;z` r!Ds5cXB2[VDEnWZGd5`\O#,+r4b28u)QdDa19nF%?.ljԯ2GYMhmљF.|+;(N|˭c8LRc2A%{7.w Z+2aEVt{ Ӳxo+9%i:k Eg_H78ex0xnq~ҪQD=3׻XY{ +M!"p;7{Cg%rY*6U*;: Źv\ӅHW͙Lå#Wx;6DL*ȘT"yvD5 E8aԵ||Ʊ?^kAhͧ'0cY@D!!< JZ}rd͜Q%t@ǩ&~RJJfӻ}-?H%G C]kY<ݏ'a:7)p=c_h i\F=SRx6K-=*VV%@5Qjc%r]Oq"W.mɀ  gCt֡( JmM+luIx#eu땰y!Q8u$g>TO~ O*v &hN%R8P! W`C:#B(ύ FC{h+yW tTI '~S+S+spnr(rBˌGV쐔&u*C㘚NJt2K^<̰FOu +< &i*A6)evr5~YU}V.%o4Qx`qQO&u>9>d؃&q ŵAR  )*^^USkuM4$k{ rcCNJL%V$dWL,`v G+!'〦wjrqFm2.#԰(rjA-'VVHJ؉'.,lgc,y۪+P•@=# Aܛ1P0BAJ``M'*%lF-GG `١%UϸտtPw待n[x,A.8pufG3}cQK̨pAR%+Pv[yrHE>.NQ˨X@6ӄbJd(f6(W_!GշQ= 3\Y8 _d,TxKC"f` $W;N0ti;٫e;=]RXhOm*C]Q9ٯ--Y^2d\>l`")C}<,BF_fFq sOt5V텣FL~bT.1~R$aY0 IvOG; f~AXq61׀fCƨPd<Acוbt 4%tGL*-;CEE&+ *}`/T {|q]>}NKamr^'aӺy*{T7xs$z0JiYD6Y?ƒ*u2;{iǴ_;ᖱr VTE8je0Q!5| G(Tg[J&ye47?sK⏪|$kO X"[rD(O~ʟ^.t})3 K@:J1w `4 ]ڶ n1`bI0= հ/oJ# 25 alLl'wU~t.Jxt`}7(XP0(g"FL9';! / Wh. _:Q!=ב25 '!xuڲcJ>7Ӓ#Uh[ n`ahY!`2۷Jq <8[ʂ],4o,9_Iml͢f8ԉu^7Tu} ]r ݬ&T-Ŵ(J70A*th/R4Td)Y@ -2WP{o0ݔz&#(ʦ[neB-F<*y4BNoȫ\";·&]IZlb^mS|^K3 'ΰBFUTXyYE| )ô|Eua;ZKJphLD[;0%f62>|xjyMGԘe/)RWVZd_rHR+?,kQ!C~:·k(0PΒ~Cn?ٕ'g5*"C ;9࢞+泲 2ٶvݜOU=Vr|?{I"MhG5 >ezq \[ KsPn,&k]A#䵺}b2L+yFxVb5%< phڝЇZE*v}]U3 t4.6"bp=1D*Z#mzUm-H$> 4hhi23*Yg k=ƕu1f%=zڡ$07@7m'/!˴|fLP]6$@lUa$mj7LDy+}ڰ+.|Q =`p-P9=+n< \j9^G`Ufusak& +D YLR!6Ȓd#rf ĪGtqCǃj/<'/0Jʑ{ھ|>cTIJqTv*Ě(`Ne AzVW|ˤ ]Lp8xs:0B9F1A"ɓdP'4޳)=DdtZsN,Ḧk\#75Z`,nvpzƑO MiO^Tc=BC==]8<.$wN?%m63C::%&HK;>K}n[mHϕͷ|BiKD}tYYQk/хwmL(*Qzx~Vp(kh)DL7 #mM ? kѹ W'$p}ײCp77~</MZG.=hLo0Ye5Iro6XȧqFQ>JW#]+{۱K!{> B^K%eNg| {[f StD+;ܑ)hJ(܂FzjA:*1tqkC>ڐ ԡ~%,UYW%Rg6L( k9,:&=5w ä+`|STgG-H?OFrӢHWfa \:.}4?<_sٓ`CKRkJ (.tWukSKK9;^vS+Ӎ]#&D=>b/#%Jh~0w#bF s.@V w6\hh3Q11ծyrEb"F٦vw 7PbwK*7!}50ct,XNA>kfY#ERWf >{H Bd6sӆV7ǜ~ e9zkfCZŽ]xS}8ICnwso!0qw*HB :=& PxHd$ȕWsqQ1t;h^#} rI["?*mp{uD>{eE6>ǝIgsFӬր;TdIF lPB IaSQJPt\.'͠.?I,t_u!YiwSxܸͣLw`mm ^x.t~=;섗!yFaierp-T>f6/% u diif.Yʱc!$ v pdIc32.46u̎5.7.&p%fgD*J4`O׽4o2*ÒJԃEΚ;1 )fh}vA\lE˩Ѓ]k~=I 0WA)(_14 6cw)M[Zd ߿jB!?pyU=lGp%AuXāEh' <| Fwh+֌+JOOP_q-X(줽Yh&ʗd<4kى7#秆·O)8Hn}#,$\8"?mx?CZ➺,+o_B}4Ju9ܟ"gHA ڙTڏdPJțj;xҎ|}BN [֫ˋ[Fᴴ}4Vt+LOu:>1R]R']EnA<O?ۏ"Fkj7jkY:| !RN\*Jn7A`$IUZYih+xz_H ;UMd 5c]<"ensefZ)DUgg$o u fZ5:{~{(u:lc=p6J yF~ʋ2)9 %Mn-B{S.s!fNZcx[RmLҕ1-0;nbͧ$j2t{ߊ&s\6Ky}kvwdB^$6"n̓LdyT*Τ99ɣ*B (xoYT/qQٺiFTkcB;`5xOZRMłNCH@cNr8(CO_?[ r=5ķRFXK^ 'qgH1ˎωHxnV֧0]{pZ یJ ̦[4*?̠7B?Lܼu^U,WRbf|.ϩgeD][/;4A:P^V1X:)mURU!dfe_F8/.!i\7PPѳB#ޫ׊$ײe7-N7qzm6,X}$| OIJVhR![- ,q,h=sKv\{S0`\\Smi z)"vHTFӼ,ʂ,%5=h ef`Z{"Q{Ɗ=j6]Zޗ5IFuFN\%DA*1K醀`Mw2 ބKcd|P~d:_#Èxx JntpjZ P"L&ْ -O_O.LkX]"p + *]aze~#25;;@bROIS9"?͎C)mA$Iv%2v D(rA%oklK5sE%^3Qp~)+-ΰ.;>R1@ExC_ԩu:Ƃ[%)[fE 0> T$׳_VrU^YW٬n({cZ VVurALF1m<`&X+)LJ]%kt\њε~e`*B*TE0} bvG:fKV>Ot(rՊ|V.smLWpU$Au7 Q%՜T='eB(HPe݆ "p?*]赀!RS?y%ƴJ3vj..,"꽑ֶ;ܚoPFחn'&'|x׎,L$ F%٩ޱ-︴dq"] 9hYDž*c֘Ew=ܽsgwzTK6|si辀3tam- ;Ԉ^VĂDbDs8T2qr yөqne-UٍN@D^k\zׯ&1+k}]&Tn3GfPXB~s"gPHt;tL3h`9+qpe9/sy]qil- ojF`.*0VK(Tgf_ Rt!4 UWPHg@E*ouo>b(/`Ӻ7 fĘhrDuTX˖}BJ .q .5Wg{~ vNk|q0'5D3ҧI)˼fEH}o#i58rd{\SN6YN˘*j;r_qTіXYEY,#ż4#l.o8.ʟ 8(ϠLqO5ba_:w<{I "Å"|9xj&;u/c("!8{7%Uu@v X1 \?:H=#;̬qтu?i*nB:«]ԢtJ9VKk,R ן \fU|AL\(`; 26Rc`? /H` K$H (u%S{r*|ĿUjm>s#[ HZ%hr?]"Y0}so՟ܻiPJs~pN;ӛ"6ds$?"w\!HƻFnm7,$G_]N4GRGyqUܧfLS#2g(`&Gۋ{Y]qXwΪ*Ug)`8kk6RQsy:o?JO@[% bx KrC Lj׌!M%:12ƒ!lH+;KUM)UC yu-߸ŒдgK?\hri=xV@ɇ\y; 4WS}p#l1I:w= 25- _x˃0O-BY+ Fy|*TYo@GA3TkNۡG 4IIS 1>le0`0?$'^s;ϧ~٦Ѭ5-!a n}3}$/-(zeQ鑗#{<'`m$}H Wv0uRBwn23 cVHp4l`d蟄VxIV|ܗX~vUbG83S=H(ԙ;zQ>olXWaߊ%uMA*}^JiCkmc&FD-2`]WrC?aPko -jyo>&Y1|v˦.>eR"`~ѭ-~oog[P`cSRAP3b+WXUts?fCɐ-RwTԋ|Y>DQYSJd+dIu -K;USk /04+co7T){גˆ㍼~f Re˃c|&:^ DL! c8\& эw*{x&!1;, G8=J=^we-,17Iw6L0yi5(<.$8a3]v.7uAGdTmԦ66T'00ull6ZJ4)K.^=K:x?O̊&tveg^}vXFc`MS Ϊޖ!`%TL-E\Z :E1ԟ-wONRYT{ٛ;JQ,#*L*M`.9=D +~#8j#3!8KƎVyp,HӸPgA2|dok>U R)'ü>ccuGfbEmO"IjiL\`Qߝy&w5܇2=% a h[ vBF+հʯg$#,/q'zdQC RF @.7_wy;:28K@S~S{IY>xC6"Z1;@&(M7 t0E`F@b)rùJp;M;BFЅ:{5PTO(I$&-?q Ŏ@m.Fo9PB|8EWbiLփ$N^52ln"V]i"Lm/!1~a YEYTCA7HԉG4ECKs~k^'2BlEԪFPD],7aѫj_C=dw /Mvϒ T̥gІ}MoCՒt<QiktXzԉfV0<ϸR^F(٨t5SaX$ҎG[zȀ_{ ͏S`гc_T>̃pWf#Ur@2EV{6Q׋X|Sip%?y;DD]~c}muTy{/;xG(\Gڭje)i ߵ%RXD_Z2B+qiE26)PܴROO%^:GݘQ񡾛6p㏎$gSfϽ=rX8Q>d}QLiKokT _3_Ñvk6rdH(_;;)[;!3[lte"Ϲ5P"ߎ)IzRAӧ᱕)랅㖭!D&Ґv}Vb\X-$N@0+6`$xyސal1٪a^nX;A?5J 4 N@ Wrau\.7Jڌv~_9JM3! %&;|Z.!L>vGFUw"[@;UԶiS`^+8vg[lqUuJR"ep.ּC dw2RnTe{sY)Ҫ5V,8viBMZgpi@Fds A!OC/0Y B6ŷ5u6GF~YCj)v&&5ӧйwRy~\LtɆdmQOZ ߾8G_ĘgpHw7[ټlXZ_;Xh@Ud μ,AzABhS@2F/U'0xF1bDA~㈯.<K6^Xzj]c! rm5h)#ŒKQgj^B身ZKz\RN#^?dheEvAvִ)2Pر__lkbLkcwfxMܪ8)@\bFV(Bvi%BޘC2h3!FKk0{a`h}B i72Lޭ_Gw(1&TE M4-Utͣ>ˈ;TM F= aanJ3df)Jϰu87s,8wl1mV1b782uڇDA9B\'c!LycY]IysOW?;qia{˜/7L39@1I QUr"8UVM{VqG@w: bXDwn)f99|DЄ$&);mְvF>R4ѿu /n%fLVcšm ihFa\iD0!5|!=fRFG4Ѫy u3sE߬Z~- z16Dv?ɣh -e̪Ω{V3JԈSxi -|(xS8-cZS\s wK]FtC^;1504 qf7R9W.zs ]\0=;/VB:b ī[Ggd<wgc)?d~ 2Ն*}{ú ]sE`)()ܪu咇*&p t?jkV \i|gkvM.DKgǂŝ½A'HT֕z^i1QU(nsoUfўߛ5Zk[y8\_m/ M@&"oq5?J5.J5Ij /S^6Dԭ*0/v(Q9q}">df+:@M`'bRC~^mp4;o$pZ4G!6]G)EA͚YUuL ;S V;r9jچ"{F(*N` -W/t&MUn=@a4 oeiI:*hl߁֑ڔ(0LY;J;b*v؉.ٸHp֚+[^7 (Ctbd`ULaԦi@6jouܩC:yŕe*pM )ܚ*u1{we{kfq#}-إ_Lº*J 47J }}?F)O=""oSuÐJp ACN_欫o:gfs@ىж"aq_b|Hw<8D\bohf:٫xlRZ0MB\,(==gE$$'.H+ϥ7*^"Z'D_X?I(f!_]ZuiL[LRFҮ5A zՕ-"W9(ݼ],BG|O'75ʼn0biν)mv2WJ B֪bչ6p*=;^A&`4AiQX|4ZPD='խ-U*=YNp#KR;y8i_1kZ92;Uca=!*/OdSiIx~F[#(.KAW݈P)S]-s,*!_:! WScJ|T}UiNA;XzU =%éyNsǕUvnπomW-@l)+~I⾪A#4U?e:1|@t$i (CLOpIǎϪ^&ݪ1^E$?T:.^I3xܸ2FEƲ Ռ\ЍuNUes[O.,_t+~@GfnBiL'1Mf#q31 ᨫ ?I1;_]>\mnZ0ed8Oل>Fchp4ë] Dow)GM҈ף!f$j81:[K}}"u5({Ij"2$mUP"]ϟl00D/Aj˃P54Ci[Frt 틒x7ı ٴl@` d vп!l:S LL5EB2ҌWmJo&` Hi^vZhi-_H֮t~^->(\R?¤dS*=KAp5jz[PFE.4S6!:.Jу-{` fC9>Q*gs\e*wWFLUX'b$,6 ۾[̷*TPKrk 8Q46`tZ!;{Lsex<)GRo0f2ht#9yZ2ƒULТx8B[±tILeA̺ QgY_%˃84hUENkXcj 4u78qt%`6G/ 01v%Y%[Y QR/fVeo[7|zY;3Îg F7 lrj/SGuFl|@%≮ecю;xC2Bm/2TC#2h0k[Vf`eUbU$p}7{H(YsЇW{m*oXm_KV.ȱi/{}&]#pl򜁌J~ ӬXk3ezwC+iȤ1F Uz7}I[\P%'@ɧB X"2B?e#-QY}/ ̔f^y@,_hx;*z9Wv6h#ؾm~Z N._gǖ3zqr0 .9JQQ8v?beՕ RM6۴akn,A5P"WR{8(a3egE ˭=>pm6h'u[d,X?#ٱdsPb<55ZpϞ MzӉ`!p(R"rԸ/mPptQ+PU鱪t;Cٱ'\7tFQq`ޕmƒe {A4_XֱWd@)(/OT3ӻtKNʊwí#]NZѳe׌؛8`w2%37bM5k:3qK( ʀe +H8.iTQʾ2"27e M'ݱc0(_+"xYë3OҭF/KO87a-GuW,q qgL*q~5Z&5 }Cq>Aa$9 u[bn<*vw]bm8asaƂn#I|R,z]OvD|\3z? Ah)+j&f Qf 2 ,Ŕ3wWN Yo-ǩ8eA"B9 8Dayի W򩸈"JyPFƣ}@)^_v&d9gY ) YI@:*?ЬǗG}" 68^9V+M)@BF t)889*,96c h^jjub+: gu5C<%ZF(m~U VSl2%{_ĻT }Q'L"SaXBz7K*a β&N1 $1I8M^ʕ;4D0 Bs epҠêei%ZBvyaOX!e.Y6oٞcQ4qZ{ M$)$yvuCQsJHS{!- A4S}58)wvGGM" yajݘD>9'7& `wsvSYR#l2)4s }}fȖ]lqOi / m( &qM=# CxSBz/T%t_7˱iΗAhW"dX&v_sl+urSW.?_>Dm#) 5O:.!4}t k#d.YY$jP~iT,Ld;KӦkcRc~fFt3ģ@nZ?Bf='Pj8BU_y nΪ@o0cT)!EJ١Q2cA99+FddtY$Y!Nj [SUfi6fY"0ӶLO2)-"/|5D SS[-A7\!䅃F, }R~%W vsI.){K惬'{`@C}zLR x[M j'  CApj'-ª ?OU/{r(>ۮI7Ȉ_'|&(yt1 ȂWr5%"?O6\Փ O&L IIzA8b6zx=?KNŀ>)!t}];]KfL'm(~la{ABM}}ˍ/_E RLY"t3:'YQWqbw)5qle9 $=.c^D [(_Mh>FE{P*G8*z%4WUf$y*Y "G4ᐅ'RX}1=e80,Y~ǟs/,Ix*=)LnyGRIw&ٽؾ}9Tj0Mޚ3$J9]:wP=4d|HY}V2KbuPJٓÕ0U5cDu/[QGT ?>|&ID{/T@T j{&>0v3*)?Y.r8lje:8XkKوw'?tN&SR[/?RE x6-G=D_4[B |&, 4w:|-< _.bxdLkGҞΣߔ |upPj٩nv!%&g5u*;pk!:+;.'1Cl33ϱFYB0U6 `|q 󳰄g,V_B},P[Eӹ|6ɗgaVIVŝ={d䠅a[nKm3F_mEXlgaZ]W׬J 5t Ӽ!g'[B!ךt/)6Karn ';[f'POO߻}Q1>}9yJBK).Y\pv)pZ5ůNnsj}d(q>_57Rz׳GW%%|܍ I%G2PzUBТȜ MN%* #͍evBQV]1A!DyUZ.N4:",í 'K[T4~5s%/x/H\S%k`~:XERlD#osYp) .6plfrּ栲EpxTB|TxA'E2:c[^Q0qrpk#jEbOѝ,eB|pi$qc`|MX@ _Kl`{8$k&n`(pۭJY$B?ᑁ.Ɇ4}`iխ\'J8~ִxCeU-MIբVbCƃ`paݺ 2ЩZ .O-Na\;^\^Q8 + tk $(2Y?GH%a,.xGĪnb%01SyXz;fb~ 3䔼;oڱԯ4:[#b߻tRVgT߅Qh>l %dKX9[WOhU>ܱEsbR;ӓ߯ېE8 0Ek}&wM`R6hKgW2y„nF' Fc-+EըHpԷ`ݞ;μ XS;#,gFgyY\:- {Sw!,FgͶG q#V6,7DٗHuB}2 rXTٿ_!XN-WWR= Cw: (PR#"TFMCtgf5qUۜnOU,?\4C5cHV(ZNA@ޛT˕kĴ|7e4 ham͙t'1z_?[D}zi$y4貍L 0?Poڡa :Ksѕ##5 P*~?'*yL5:nëZx$\?CH+#4"j㑮"?1!$ ʆdQ1[؜( q͡nt,ư [ρ.rzAta&8CH %G9;R?4Rrb;rSΌ>Pi'^YsoTnVS6L򃒉q[,FţȜĜ'PЖf5^c;2Aы 7N.yFwM%(:dCMvq_0J#98:%T$&-ۊg YC6,9* >0VnJPCC~@ZWg * xZt=Z T4GqzM,j*{6ER//\+J#a)ҫԗ,1,hD* Lnj $hk4-vC8 MM,yQfZĄxV{HԐw͈ (+WRs>{$[`/-~pI׫G*t%%G㿯E1N{6{ 7/ $™2\#Ֆ5jPN)oMmyZrD}r u_\җ#YaPUf qU (I_3CF Mnu8lщȔrpy󳑠o8{..EZe)Q2MG(4\.eHIAF$/^ ͧQחayr m" |ދ ̐`CBp% yh/y d!~|#x8u_T%jϏTk!? B)^k[ bcpbjb\I' 4Ȣ*+yO+`T2L\(yD,־.}njJdQmqphȧH9BS!K)Zi+ e ֧[Zyo`K(I'#ud7Bo@*(Q̋V%vB85\2[<Pu%)I,[-3建ݥb^" YML nAA5{ =Gnʇy]p4sVwpܞ?dsk:1]lk>5 uL{]x`׾3GmE)w.5ge 0iVMC7iūl9EMt5pXTgb TW$OIyzBo6 $iV\" spZ=cMD>S@}W:5luB33qh9L ]&6t6uaӗJf⫷؟-Go) U~Wlnߤ{ȫ f䃑#<F&YK{͏^Owh@ps-c*lVK|˂^%7Ͳ"v61*Iu3qPne.xM aןLXGlǛ`pWB]vNjA0ݷ!9*.*HTn ^k"l)9b?j ׊h;- rAh X!0D~JޚKrA$UfUTrOPHN}y\Kt5b!V|W4yMҪ9ܵ7nKi]xjZ7a~Z9.M-P[x"^v*\v$(8ff[sڢ[79KST4{00m Œ,-o x2rŴpXr_tskyሹ@…`N͐"yhDA,ReO5?.]ܩUU v~P]Mh7>^V_FyslĦ[tTnU={QML~}Hf FʑHy02%cE]h/9y)6Xxzū%RSY賭,}k`b zO<ƜDjʯZ`PS1 rM !=3d*FP [EYlOJ7s\SD5P9<@^1)+Q`,|/*bqX|JxIB^0sdB9LVQ %݀:xW7Y>?u-!?o;]sb+:?p 9J'V(xuc-^kq~NⓏ_OYR@Fc xEՔl .Ͳos{̜s+SJY$!uE&Z(M+<ĞTOh>r M2EUs=aN^bu>s2#n &cqp#ăl .1-j:]S.%6grF5'cFJugeQ aP/iLOK?<$.u|XFv*$R#if#ItW„F'i:͛1󩻖%rcX\w苽mpʼJOUl!L2no'_rf$[ 2GZ̀&nSl@V %^!UtcK^Vi8][ (p[>צJ%@}<>=fYej2sY`$:;٠pҭ˿<$PxM|BE~[Pul%%)l F«,H;2z;]%C$ 9Ŷ 67B>Aef+I@YhzܼbwSN_3C'+;͠VNxb`-㖯.&:N Lsd+Hxc_h4f&- ˨M;URP Z-!YymʪzV,%bvp?d5bKLr}x$VmF;YtK:,t./UC~GS>rEG>w!MH73~>MjRC]\,t$$[RtI<%68'(oI{GqNSK93Z$!񲗝Oۺ5;vѾɹN^bN,3-ř"ā8G*PN,{y3eReUE{d[yly`B.`1ٶsZ,"n^Fx_H:MИJr`K\@^K>&M$.d&&}I }JN5ƉL"6|dhAa]zHB"XEhFMן%}XEĄ"p>a-<&!`Dͼ@5 NmdKh qцQOͶ͌Q_lI"퇤_L2jBd6Opf/!SowDP wp[v(zӞjfU8[X3Gӹ/о+"ydj _28Юi"Ce琂օf%Tέ}j;LEԠI֠C]?WQ dv&LU av$rR} Ms"r1] 稁b, @7:NdoS+˾C29"1> g l}g\ s?%EK̆!VZ"ׄg堫糆le_{m5Łm$KPi:]%rΨQV=?emfC&߃IZ9U: {, ;|,; Ծ9νbNiR _C3vx(wcy%&Jͣ@j3@4ԇT6=AqR`f!pQep쮊4I zUZer@t TteG0tujXw!ujxb05уw)+kTPPԇje^ u{l׮K 1 XqGJ Z ܨ ́挚WoYz֍v圁1: ,)׾:Kn gb0S7Oi>flJK: ZwfٮwC{OJT} N95 =-vY2ܻS+Zz d3R fxϫnbcAoM@ݮ5HcfGf O.XqK 3N[ s!wC͍O`.p m#@\ryFF< g &?kJ0X\vEPDG-(jKz!$1ȷt;MݗV*ZwKˇ@jJ e4($8x.c/i=4 3VED#4n4ũ},JkexFB0{zYy - %ظhk`-(]f⣢N$t@4.O,.`|t soZ WKuP9NUkJ]I|Xol[+*&Ztw1!2cnM78++kN9tb^vX9 eDdt)IVS5lȮ0WEy"V=Ӫ"S?K$ܽYgPubQM?t_LR  .yMIϿ;KZh_Yo1d`܋k"s!Ĉ+(SzH0waZ)DDvFJM~l\l,"vkr*CUkИBaK)l`@qqznU^XK.;uuq?|%yrm7B(HV.-.j Օ&IXO_0p.upb/"}FEA՝kyO,Ӷ/siV 8$b&E$iKG( J^Q;mQzI|+skIy. {^s(vWMx*L@~tQEIpҍaju`7>kN>H3}GG,? tWeߏc/q_h&h~lO5+W)ʯs DvdҶ1qkcWD)0֑7_V Y樫tQ29WZ<2GWAcM}IGv O;Z J8ʼn.rpszt?gUvNANӬA UCySQivެ}t`XQ!kX1hL櫁C[I"@ۯ"+/ж3>Aq1Y vc``_5b*"du bvb%(^ɰ9 DS4v}%}ЉX&,c~s0l iɿ"/ wnKoȖTgy6ZQLٜg;bGCSVT):dUweIp_n#7Džn8.MGznι`G:=zwnNt|SOIDlA1 AqPprPsu[)^Ki@Ǯ>YaǬ\cR+m^lq!'SUPV]-L!:ނY [*HO3q}Ej*gQY%EJ`?+ S۬ؔy`xk.=a{D^Tw_2oЇ?q15p3`K;JL&us)f }\;yYO0%Äos1ad,P䐂&}t+2hWO;LpfƷﺙ瀔̏ՌZ :b:AU[SS׎E /]2! ) 9HO<&d3͛cf52?*V F"G2PHlrn'v ,̰~HKDdN07].ft@n!7؍~aN%79G[.f.$nK}7p5ٹF_mG>${%ΨU 4WeDʷlP![>q.nBW,qa\K%I60"IE^8SdBgm6SwYyk'`!vт!p1N*~uD9 sXp@ >r whyxZI44V0S 6rE5EBĭB!յ%< JB7)m(:8]YO?D|w3ZޢzSr')I& *[w)'.ݎvzXe]sIg3Z`E3RQCC+_IFR }VJ7\t+o½@myc^n*2c_ón*]P\ܘlqecaBlvqA(Y 3-NSFI׭U W 5G,Tt/p}" {k=PŊe*m#,;x2pG %3/ 6AEw\1y+nB`}Cl }Rkph,Td (cHZW\ Wu.w\$;3i:>syPL/qF)?e-X,HC?)ykr&Xv +#)l(CWl:Lj}MHEl|Jj>苨늬e,ɹ>Ax7Vq>2J$4۬SfAMN6^'A)cg5zu_J> IVdYеkΔuljSgjt@3ŐڕupL%whJ5Li73UAv`XiPm#Yk W#PaxdHrM;IO{npIr}i9jg`1fZ\FLfzucIP\I'=7bjܗZ>^ 3IBB,M(EAF.LB.",]6Ԓ+1}wi&OmoZ}@W1u 60ahQVg Uf9&ډBnX!qCY>HY6kέ~s>;; |ؽؾ#:RFTbՄd=dg_1Ic1k#rll 8"h,nηAz'/=rU%]QuC* >,eP#绿NQwPpߣ͹bx.top.]>2|GOX|E׼+0n,RU2 &->}+rV&Z *!qsglA*be|oC~€NN6hK<eTSC K%}vA6O[K jb詸ȯyTǟ9{?C]]9Ka ߒ"R e}$EO),\$g>)&kj:`iyͨO^Z}jBcTy t2}=0Lj#]2(4loEdR!VY.-s\=yqB!{*5^WG ÿ%U$"U4s)Մ!;/lIzD]J,&FvVHcDX+C[[] F]ň=Ts֓ZE=f!\°Rn#M4F`kNhA$.dƅΑ(qo'ﻒӺ)?{T CG L\ݧj:x1@#widؔE3e(2͂m^n>CmTQ?)iC3|/wT@3gQO~* aF1qH7gf]Ѣo1xZvK#!91tCF; %.odQ:1\+K%0?3܁:t^u!0UO(v+V[MEؤ xB@<ɑk^Fںè("xR=0ӧ"aΌǘ́)DI*r3ɂTXh@eؼ)TF;!u=HOݚrHڛbqTLkd`F'GMQ=U5mZ;:#YstDӵwiw``mu,UF; FvvdzyyI'^ћ,Lr6, VhyCmXeٱgRf;wR # mJ;'Y% V{'J%&bE.uHcKkc x* _""q9G'%~`*<}|Xx=dt_٤uj{'B~tEr=JPRwV[tc] [ /22kC.1);C˞Q tsMB;9ݝj'n4D']Ck^!&K%#D=cmɂFpd{*E+) sJ12Z b.:?z_8I{ `F\hKyI0+XhIfVeaWڰY$q% iEUm53?P.#W|C*pCRHJ`L'ug)Qc:~ba/P^-)R!i+畄eGN愃+'Lc tste>,PTw~|.$p3,Lbkjm^+R2jdD/S R3=zW;)E$R9*2^4Am趉Q]=aՆФC$FV8Rku ۋ)qn[SdCDS^X]Uҁ%NBE[^CƙF}FtxO$'(lQxWTi[S幡D,cW8fqP5fEv'''7t LrQ>:E*:_Ɗ X|8k<HY*u3Qj@R\,W?I4ZBc(_c^h\D2'@-)rp{bp&,Ccn'ѳj2Ҹ\_a)8VAX pT1)n&󥩒9N0g2T#N&77޲z*@ǖ^o4x@!1Iv4Ӏ޿oܗ:d60GM0ju,aE7rA^-w貐6&+^-ܭZ3$,Ӟ&{+p^Ʉȃ:?~!ʵEy1[ ܏ޙ:EnHSZ/pbq>[7RlC]@Ԃ;E4m`' O;xM'|>Ml)~Zj}k fCZ^D Nx܌/='8In sf's3j9P %س;"-WܓS"[ը=jW[0=(]zZ{uP[߸D /aw !~ Bf1-l47&~uH"OĠ?$V\(`oNd&@Be0؁L^9U{c^3"c%Eb=nkh;$UH]]9%h1M4YŠHhx'syl*dI RUܬ~xbc(b!M*-hj),>۱m iPU3nڊA}`՚ek@èTa"QX) lfX Eh_XG1u"dTl~d=" VxpMxӈo|$2?֣Y/zꖉ;wݲD(#lYѣǚHcAp @Ƃ\;Sτ,YD*:qo[V |a)3SP zq/F`!KvBtKź䌽 G)s;!")]-yj\+ߣKE꿙5f-eYfy8Q |.?4Y.V|[]}ihTc׈K_nU1XVǴz`(N> J-anقW9LtAJYN,LM,YdN 1A1|>yyx$D'_f4XҎ|/NDZ.:t[k` hLX!ʮq |V=]}D ~D2&1|:>shzHRX=\4|,@9YBq&WRԑviElHv֓[\ f '&#T©:'q4f~V2gKĔN*=_T ?q\n՝ENeKǶ NB Ol}k&ADf?hDAп3&U‡nus_-AIbą;k&p?쌼" /(BaηY$) qY,yҲ˵hCz信 =ٷBdlGʲp@"$MŲxjhʉD 9{I E_~IyNEȡ6UL >8X|I֖#Y;}9+aX-w}`Mc Y cҫy/\8eJ7%;\7]*~-Hu0;FJ!'@:Wr.a֕S-چ5l.q@j:5-7܃ !p @`a]E_1-~ c}a 3:՗5qew`_CApQʌnI4![)‹8p~=xLDGEef2S zv6) ͼƇgu!@GUSe"/Og$R ^x:x0kFXe[` 9#33Iݪ~v%R775C),/2- vonaeaJ;Pi8ͿabBvhRJq|`rBwڑlR"Xh=_@BM;O{ cTrgAWbӾs07]1oк0HʷM!P 鬖sz{%ֆHW>`DىF^H88Vh[Hr9Z$ceeBl1\ԕ)qʧBtk(k;(:# {w@C`=zL47eZ~=sh$PfKrʣEo E>\҆ J]K R|:IYLuյx0k&Ngߛ2k~Xxc:Z>9 ?Ħ=R ųVBqy?w~#L+VقM /x/@+2ȝF\r/Tf>{wxh.?rWmOdjlcZ<8AZBiڻw0 8t9|T,e9d~{uq짳XLeAƦ+y- p.Je Cϙvr(NJU}ﱶOIkL Xf8SQ* 'b ԓw5"jfh/a-//t#Z!t/}d"?/i1NT%fn<־8asu&# htrk)\8$r51KG*@9]-nhw=B ae8Hdϵ +I@osKpq`# ;;Pm}}{X#K~/eg!s! jѻ҄E'JR}BXS$}Rbt͒R`* +C gL!sAdS$_qnsK|.cB|᧮WT!c"x]$ӜF֊5=zs4*N ,r@#c66coj Mg$aHL {3)La`L՘L:Qs"e!b68KOnHhǬrD۹Dn_@o9{6Vɿ O ))q(o ap1 ssy9!fosK04$n﫡{5:ajtߦC+(`ظ]^l+m/ , c9O+,,\W޴SRtI766djȑ2L4%A%GB:|+\RL=WTWB Ƒ$cB6X ubڏ~ )"E DigtFV 5iXӻ5(=ک5Fz2ll?( mg+aLe2m"!`^-8!'eR ˘6D#/LCLsůзs¾d@BQaBēZ|nTЬ+0g%o<,"9nz2*מFl Nk^qqcóロeɰ6iIm..3Hs6 T!%N=8O[Șl̘n.qų;ei5Ti$^U Rt#=;ysiqmJBw(]Jb޳1` &JT)?t\蔷? ,wüC6St5_<PXؘձ Nuʰ72$j4G%ϏZQTLxzDQ__E{Պ ehQ`ՃjG5lD`]ױ}&)1^j'RrֆOz*Ð%G(D:~'/4OYj3\iTH篩TI<'&=Bmcgm9]$Ű,LyĤ^HdK`_q@tXP7Gm ϠL~&^_y;K#fQZ1':O5pjdbL;05D^Wu"xs\8翼B{:旸̈́3pj Nr~eƱkGɝL_B氨uXzqJQ)? z$iO9Iȩ@%O-}w]nS`p̾C\fPOk3W;tI9[䤁WK5Hy1 툶t*GF^Ǧi#ilU JcA0#@JNC:^RY@kDO:JDS|uye3(M=7=ao/U\ۡԜ- vW  "5 h( Aoy\oU-A T1 Kk ;tڐNĈש[LJ0>H7nN3z#p#tKtJnBS(;6@NAD*(§|8Ta'24{VfhAxr dT!vsmv |D8IllxzR@Q^zP,_*~vb|49EV ¤e\=A+a^I?k)uv7?rf0 !^DD,{cJF Kd!-B}tB&W3c$Ӟ] z.gۤ6[wp}I<%n7%"e  5r cżt/> ש}iЀ8 c-tEf c9m%)D8;sg%3Vxޞ t_ t-w4"aSqުu[ >Jh,ujqV%ySZĄƚ -lXֵ?0 }FsǬwjk8zgW k* b <;L!wnDg` Z)R]ķ[X9-y*0 f+,;5AE| K%>+ f3PJ(}$}QKfC1B?b柆ByO[3&1[ӁȩСF'*tcEJG\/Nwt[{3 8P%ܚv>IN> SV$rU5~iԂ#pcXD'µIȂU̿m7%sB#nI]کbU IV%?&HC5~ҝw gKa&iu#(y!h:l,Ac%FJNp4_}) N!ZQ  oJ~|kx"R2y3Tx[ r)WJ"u5Dp> ZNߠ*p>\eb%dZ8%6O9Ws\^fVTl7*S6%qVNN2M yQF7o1Fp<7OD RSSNm0&hpw@}j `ٔ.TH--AAHb<3xώͧY\B;:quX-Q4;?sA[7 L j<%/볗GЏKʯbW#|$xzk\2E68=)Z<k="!f0{GF.=Al0˃J ]j JK^ ȫ%"jS@ 5LRD)O~=o3o"A.Ǘi>kH6knjF[>0>nr]( R1|p+x\ 42p¸AB#9&#8kvIm&.;7Ŏ4OċE\%N9>:иR} ћ$-{ 3lpk,=7jBOK LN9\cÄj0@T;5T%Tso2,TͬC*{.ひUЮ x?Wɔ~78q\Y*/dJ#@>'nUh)zŁ({VF=f~*5A&Xⲡ6 I|0[Z$ [OT^ ^ M}$* xLl?T'`O8T;h^YfֆǑ_)4)i횣] W86 V<0qt& M;xZU<Z,x01U4f1.TFC?#\UCbk¹r e1ЩgUw%oOWuLwo1=ޡI ^KU^8ٙIX*\ۇފE\wJ[ixoL`#N@B;A99u"ǻxaë;d>%<14MfIRXL38N!f l0Oc;-!33LcԕYrQc=zI^0P¼oYQޅ1rdǙWc>ԄV#,uaD ~-(WΗK}nuA hg~ g9{*ãKE~c!x~J0uOnEn\:D3\O*2! ;aL̀7|!;ǧ`x=\8GTzO }=Idq[L,r~gљJm탽oq* @2k&GsǗ1x:1_ukEm|k]OSNk߰'>3s̐]b<~'%32qrÐQ=)Dt+> pnFR'5p`ĸ%hv?}_UON@V2"2  IMj-R'+됦V,_vvs=/u^To++ct&j.7wY%d KKcMCv0ܚD832( gSzkqY_jPVPm5'ёtӗ_uGF~ к5_hX;i1t@GyER>0|Z%q}τ|ܛ9*]섇p^{NJ˞V(1dMյ*G:ƥ@sTJLo#H06 ṌvM.%$ug\;nTK)ø/:0mܲ.TX'rUT+vUcOd9*;I^qjzk 5ے{_dw%saSf##&|z,>yzdo;kPL'ohxn,T>ϵ)zE?? ~cKIגHEU?J*Hx f)]m(zp05H9 bϻhq8-҅į]1+.q2]Y>#O>SF bg\78sUR5#I(,V2i6-OL:~e" iۄKnA䋊YdapA>;pNeOaJQМ]QH,Ъ>7Fɶѽ`JװO;[lo,aq7 46eQvBPT"kޱU3lj+T$Óm>ۈ+ ٖ~#~"~1WR[*- 6y NN6 Zlq7pQ.,[a89t.rG 5B.e."3@х&=-Q1xwxg"?Yl#} ϵ9|g)BT{2=/kU`MJ2.?TKjD63s=PES`vk *m(6M h,ZY([!Y,&B}\!Wr[|@;312sz8z|a%Ef)9ˠܭh(7ʳ- ,R__ܕfbqD.Uz"R*'9W*!\`up7j 7V` Gv3HEӰ6!Sڣ{ga49*ՎPtKdY.f>uVhj-շ5M=bSlf,3mEShm<_ 5Ý6PlUf-Թ;#^h~V!L"ؗo|ȤsdI%Y͌)yiqP+2Ru0; wJmiI 1{;n2SX\o;6~H/M^'"ZnOYFSsCvKԱ02Ƈ],[(IY K w#<)K͈zxP79S5u{ԷƔcHPaӮ` GU ->;Ë #]w$@'m8pskad30~=vAʫUj:a5ro1D.tY%WuF,% v,qx·$GJG ě+l-И/i>M}?u. :]6.XSZJd+m@Bm UJC/:gR\`'9= Ԯ^_#ߙ&) дQFn5;Z 5U˅j.`?TDb9 `~w # {z.%7MI qQTQXVEJ{I(j3@$Gc| Y60>C 87'W!rB:ooFM# .#SAdqBu3f[i1 v`ziy-آM2A)RLI76W*ޅ1!m*69ay5yz AdÜjf1AXx 5N#mPM'jW<\Ej ,5&./-(0L'Ձ]깛d^Q5wBOTC_2 ؿ DIMz&qv)qeSww)̰wӝ7< ^mmv؝5N|(Fmg=W>dqv vu$?OL{.lO}A o FL'dUJ{~hS֯onZ{L#yS44?kpG;TXw%RKE }$P1 Ia)]D 9FXS]G_api虫2sӋyԷa~n?jKB ~6s|"5^JOճSrmvWb`})@{^j(F WCraLjO5)sùG#k|ŠʘD_G'G΂!zA-UMYW"O fDRku@ I;&ɓIK{^|K n%0C.i9j8|^RtBxY5om\Nq~f{-3};5% M_; Xs7yh[漢o$?%4i?p457=ȕ9M U9/t51}#%I(B d[ys;=MxZĈU&|~*Lg>ĂoT"fUpFrj(nQȎ_闵@rG9ˏp⻆Y׼2+%lybJ;#%*w(jCS瞧̨,9,\- 0HXߥf,m]Ԋ9zGJ_DlXwSjw ETB Lxz$ mmwP$Mہ`{#eeO.'{RbŅC1lqׇCU5aKfc~;>gK-k*d;WA@@ %27hoa~;![~5=|@*|JiX5Rix+EBP)9i@ݘk64NdT[~rcfe* Q+!~!r{Әڈ[QȻ`7Y8<0fd!r|ib|IlS9)7M]|grT|D;w@t_sO+rN~oPA:5^y/fe1H>?d7ce22F^"LDA0L,Rxq-P_E⌾"3VwQ5Y3y5=q=H^{^ëT\A!0`yV@.I"9QlvHݘ׼Ȁvϝ_=s^\)|b)X=mLtcMXc9̚L)g#l\n/₳\5N2r=AtWz @x~ɁݍŽ"hl RV 5!+k'raFy:@ T06 ~OjFb SOs,hISn\(`^|V4Z"Au%$' RVx湻ݡ4Q'}Pp cpw k{sLXoiYʡr2E0*^|GYg -yóW?t+`_$]8S7B)Ђ@ʢtai}$j t+gV jwQ{ M6!dž62cp,* *ϋL T9|t6e3C Rkp%'oJsrva*ȋu‰[5[B]~RR. ޸TE 1lOw .ը 1Wڤ=KÇ%pe;^(nUHGL@!%2QVBX(D%BnYbʋԅ*J]]]fT{9Q9v)2VPN f➒o,Nv0Q@g,2E$MG2X#?b;5U.povns2w$M>puOk|ǫ DznápuEF9DŽb,otXȅdc[CTLhV I6> p.5K<}Y=ý0m&`x i30-_3td˭$O5+>)DD9!My~6Dn>Ɗd_skzࡃcr@VfLUCD~•M_ru2" ߄*0JT񐊂gAnU=NtJ|cй ?|PLt4V--"(Z"֍Y* #b!vn].2 g!Gh[IK.v38>Ý.8 P !O=мȓ%$ :1Bc3= \ΛKLl;xQChxOߪOCsII%\V/mW18Uüa1Q to`o_ٍ3Q/I x1+J*%NW̺Dluq*wYi6->4OV$#>( VᰥJiv"Kك%H 9HcPxUK {!ڞ",S˘=]>9=9ks{PM;!?qKrB{G; cw!!j"}\Ƽn! HoxQ֢|0*W~-ywfzC{7RvbB[Tkv~U=v9%rDd pٛkf2!Vʽ;&6P[)754)Zi)WǷsl]d0C]K*@yh}Hz'Gae4z?a r81U»g]6F9EP XZQץ֑uyf,\{}J6S#)ˁp  d@LQp12wX#p:?E z/QG ocE:Q%Bq)̍( M鉌ɗ=%`D#mup i_!9t@Yt[(';"Sw?/:MRݕx~N4(@Ȓ@\!QJfn=E13lݧ|}s-Z7Z8.B8.>Xlj#{Tz}6KUxdmjvUo{:_x= ٱv?_YD1lZ:q KJ1t~P*q\ ێ.W]61]Pel: B.k?<TV_{#([[2֮$Ii|k-灪$uUӒ _X+ie%VE dLk )j2\ ^a9t2I%+Ib:r;3DқoT,ڔ0Mwndr(Oͤo&򼗭:pgj~:>7п*zjdOhEbߥ0d^F6oj87E̲aЮ*mtXRc0.5< PJ)n S/SC=~5oS'5$0^MY609Or^*hR)GC-CVy0pUl]IJ)iSTq?Az rꊼ}& '8BQ z{k.sg]ce3i?Ey㖤ذ W!ӈ( ƂK⯼-GnTf槮z Ep⽢Kj:,tfn$ߏ.AĹX#ƚ{fg۶W!sl%w73G*Pld|;:8`Ξ[Z+fZSޕ©j~,YY!RH2pri[1 ѐʻCI6>Y]K_eeGYU 9u]rBRm^'RJo5&3QA_~Of "5fV/L3-t7?̇`O?OǾ'!mP Na^j1Jz Rw[t8'4 <#O5#ܵABȪ- s1n(.8ȯi@1fP܌{W?-&t|J:/f@ȉcg0g0yH_RNUKMǴ (%-kJyꁂ..mhb 3|4Œ7Å ?AdL*ZqP~R0zjp;g |CG/Y QzAjȫ2tM2SiޛJW)w0E,j6 (xn% 0f¶j 2ж=M8(rjzO1̈>lXݨ/G!;Q6I:8@`@?YȤPHD ]4%y:cr,Y $yDm\ zH7x9yiML*jDw@n^! n(e@(f\`6N uE1PZ}o+G3j<#9ЧaY3Nn&܇u!2z*wU> ïfSͱ"y,:B0"E٭"&aO u(Gԑ:^ XeY08ܺ% .q#Aٹg-V]s'UOD AMn, HbAʀ&}G栥}Y#嘫ܦsŘ,c 24ߎe)E|~ZiNHvzw၌k * 5#b n2,6.W"|-tŷ sc)s߇t"fQeˮ.㸒fӄbhfl` ׊-8^ l)`D#Vݺ魦O, ݸaݥF3H`=N6ccd)htF0oIkZ{dؠȺ\p 8H')B-\0z}td길~R:x vXNBudշ'?FX½8IJ{Q D]J­HFzұP`gRDGT>[^N'`ku0C%0~7/f Ff1aIXR zc'*h>:򝒛MtQʍ/[%j7j xƹ UkDfR.,?pD Mk~\6 BY{&@ gTЎN~sIx9q SZI7 -3MljIt̾JM!=La%}i|WGe8^P7>#")*e2\6Ԉ1*01%VVn=@?#wa15z-sa,3|b4r5oICh$kI(s"NJ"I]=Hst `\SxUY>,x<ڧӸ6PXƜļ|u?}vy 7f>kC=7J!,~eD0QgxXl10sz6p%-p\##̩tЄލ%ڴ|iGs'+ .6sNxF/CTz\K$Dv "kQth؟1t "}QvLT8)fq5`bRUqv{+_b DYs9,= r)xbn`%d\p|w۬bC tѲC(IDd2 BJJ_?D Xuw 9B"/sc44Q~n;HHeMS[־I9Eo)!`QM#IJ?R|c|3'_ı QI>93ʰAE#.8dcTs)iIN'he:8-& Q; ->80 ʼރ; GZ N/\jVjn0U^<6#;1I+rUw!N炙OS*LɅa[NșF1*lwbiH&coE/u 98`L=ɯ1 *F{3`o!"{SK@1cO7 <~d"17;`i xuNjvW<$ěp0β}!δn\g3YB$=uA5jmW]} ]M#|谭=aQ!dA"[TxX/Unv6x-8=9\NjGH,%bÌJ)m+|@Ϳå;/_]9ITlZujzU$5 'ɉ32+t?~T]"=az"WqEmdiT%7X|D5iUq(\veX|Ղ˺/hte ̗Q=:v(ph5XՏБ>qX_̗KYXWӓ\Ɲ΃n>J s$0k  e^)2xЖc1ƅ Rq  U(>bX<_I&`*U/X PW>c&sWTA]^$h,ʀܢ2Iv2$+qaDz2\Z'fQڜA;OE'R|7p3Zչ18|=BlAHNGr<+e&кIc)>,,R o2Фao/OWmE9_dl`ue7b| ܶ[]L#Ijj G @%WYlEHJkih|qr9@m (ѽSL׶4P6?6-0b7N?BZ ζ>-õz9G E"%_X)ӄ PR?e-gK`IYƂZ5NQWU7od#MgAOJa-@]CrYQQ<ۣa\TwSf|ܞow~ՓL)kbN}dWﱂI=aX[s{PV꿗P1<F-Xӵmt"=Sjnu6}%Yeq1[H]jʇ2Rp3qY2Dg0Dxg/5:_lŖy& E-n[tpܾ0AS`\ q)me+٩fꆏ3 :@=IymjAGy{nD rO,]N2 G,_iEJ2=FH9=Qige*\?'cWS\~ȿW<,{_ YJ蟿jYt:W8DiM?1e=Mopss|g !~qaVz@p(]Ԏ(!5%=@pFg>uԧܔwy[8%Cpey k*I^ۇ}_;2[Zӗ !=H{8*,-IՆC1M}"_'2mtonXG`[̑x}&7mt%ml[_Ͻ9R1Z1+e _=L\Ɗ$~8$&2r?BG.BF 0fh<Ùv.L]@!q*u ݿMobGxe}osSO諆cKDoH69ap%ͥ{n u6vֿ"T':4(IeYE[']gHX%pG\CBw?2] #b+Lm-> x,W+3>i)+ۧD5hC&q5i8%-?̴zv1ci4f76H-gѷ fHqpx(%0՝zD&(r|V-EFi(A*+ _s_'q E~mf,%UMZ/u[t*[E nt%^ӏX6n^L{bΊxoRc g̖&bԟUoO}$Vrr )+ZjABWb^r96pp@YzfK* @lL\3ӝYݩ~83b& ΰ:tC1؄qFHvgy!>- ZQ` ~ntMu#{ ȗe(, ivi&*|u~u` ;'[2.;[9r4R6|'\H!GG2VGZs"ԉhHK~ W>O(OU4 i(ǥ^W!ʕ3| Q>*{ضx^Kc+;~qE9b o _˹NJa$mJn7A =$-١!&oQ2*IxS'<@0ʑ, GS̊:`B")8T"SGҘOKqNE.Lk>!V =i 4T('!.(UοX6属kb7e owj_eh̒9RTkIiw(؋])o )ymw@ UndePku2v䢰(=d'+.%ʸD9awR ؖ2Bn4㞾8豊m]ڢG]`7:Ō8Fkm77r4i^ }(1/̌n^<ʮ[Xg cĘJD Id leݳ4*ܡ&\<MPV0I'.:} ~g,c$E8ӻR\d+K#>ѱd_}L5 v*_hKek߰ΕW|`|NAz0pW7Oכ{ dUS"+fiW@9l]TS!=ʍ.' jά̃af6t"v+Ł(4 D6,K9D Ak7, [,V!%"Je) D* _nְ|ocG%@|ixx9?05J8=9*RʞQP.=8ZHU^y_m|2c_Huni2<"u x {lvA+ʏrW6GV~:,QUAώB ;Gzu'ˀyVXm ,g7AVpW " 1;I1nY?G<+q7wŦoWarT+l0aiD#|ȣe5nGxM@[>W),`;Dy4`g90֌=~Qj 3;->Ad̶H?PξO} lݾHO|Ņ]+ߜ'F{XU_3fdzsOkEt>Jk ֶa 8$ݶqm@A!I}qbܦcW,c t} {3,^yvVFC簘| gTnU;< b/k.Y zQ]rZgmHBjY>=#/μY;TF7?2-,ts4n?WyXt%R9kZYbV-ޕyMb奫1HޮFKݎ:!cKڀک W?Df96DB\-tj>l˒+ !\S ɈL߄X BO;lbH~&[!:հ)gGѸ$$9 |{h&HAqɝ~l6 y~Ygo{zww[!oIYlt`} _#?mr'i߯{W.T&mFxCACu9J@WoWkEUd58d=VzȞ;OzNqMJ0.c# Uwllf %+[ϼl2HVI.6#8HAWVbħuDKa,P `@&gKcDk1%e a m /*IsoÖO\ﹱd=Uh uܢXM*0w oODTHfM<[ B 81B;#oz'؉M}%_=AZ%gXH "mL(Ecp;DE FqIE9OG_r}HS$C: %FB'EsP GaO_d!9b(6baT@e93ňI5^\mzE &yp8keޤ&ܭe^;߹~)4kу) d=X e IjDKVt ~39Yg5./{O\1Wl|Uwܨ/vXn7e K9v IrT:D@92ź= kgy=b :?qgNw=  qqgȷ+&%hmX#sjzΤOs$;(#+PWsaL(JdXdcQ#_>cnN( ȱrq]kɵێ[oZL]NDNŊ/ !˻ = ojGc>g:;6O(Ӱ2\=(|/_G!L{YA#wkYZ5N l吗3*%Mv[r(*?}haÝ\a>Ydk>!0ΐ?q Ҫ>{⏤!NP=縗}?؈h׻2<|:3}B"b0 AΝY4s?yyAޜdr힒إ6RđFk7Yⰼ^1|rVQx>1=DRM.R9TQwK?-Dq>[C 82M)m;bsN osӾ̊LG[zL(\ rI<= v_Abe5: 3kTHMeU4`6iAb}z^5Hs*4WT7|@ *%, "%DrB36[쥢9%G]zE :S@<'{炨8V~eNwt8P`^_;!6.Tц(:EVL:a'L z89ՋE`u'kzJ9!L1BQ_/z8I C$dWx#'uWH#&tx! kVAX84rhR Ta]5ii.3m)C趺񹶣{4ݗb~ڀ2ȸ4ok rM[G8cH9!\r5rɚ`bD St9NA@T* SÄ_geRLX1jdk =L";"5(JL5*m=Ǥo|W +v4e#DhGl`'0`qWI2Df!~ćL MІ%OlIe# mQ"rg{Fg6`(lt$!  B#V ]PBtYlh]F"mϤo v"xy/!]uT4g7UKCnx~[*wsII<bT`U$ai|쇂oj.N歌PuCt dB<d03;xԘRq,>rHb͐`3M=.K EZ@MZVRuY1=!cjO-e-`0yxV|ݥfwgW6FŸ;h(_jl(nʯrH$kÕۥACK <<-9tB+s? -Xˆ6S/ Rd 7g:L:u7 nv1юyM&mdf^7")bn*/QLjQiXqQ}u#i |cHe ̀wNqi${kIYӡr ]a3ۋ`GMϒȎ\[vn}Ұ0>A-Qxlb>h{/~{|>D 85y)|4#uˌ>nmŽ̻1ޫ?P#(1!b!` @$ ۑ޵0cWFbZx3y X`vo%ڴk((_\C~mv@& $2o}p^5 4LRYXԃlCEU';o":,wa%<,UMCAXP<%9s8r 2S; rIB՗x nQåWxDs8Pn$a Zۊ# Sm)3 "*,'RDzq[[& Ǟܨ7/sޚ4`B7fB9 75_\UC/1U92E#';o7{DAm.5#\_sv*ͮM-Dȉn=ءHӃp!q~Q׬Yl9:0P>T,Or& dH6I=?*K4Dc@@O2aQ4J''`.8I `0&0%n?}NrԛBWeh{qO2 Z '3(EQuk PEeʀ 'E򘗴GfC9r}v yDx]l}0İRMf&fvWJylŮT(" Qphr2M.ȵ.;l&4m 5./MoxWab$8kv?:U<ʮ+ӡacE)qq`Gա4GGש9N>߿'>R?D61E :UoZfA/W|(>UA)jɍ># r y(vζ{Pj'ye=^^ibQ̾99-n*+nHn _U@VNǟwE ^bpKx1 A`ayʤztRgFn ůXA/\궧lPٳ2()SA얚Cjv.ČJj`X9 U;m&(OP+1$Jλ0]\"WE _?. &ؾIǝ7%O!c7u&:ŽV;- {զ $e2kVL4!? ޮ%LmUecl6w.v+ c$5뎍{MEATp`^-.]P/ewQuYYH[NBz:3WX9"XhoHӶ$^z2C-$0!e-l3cY.gNSCoS!3 9,& 嗳c='3|jvfr&%@V,`BRQbP ASܭ6NبG ,x(Npk JLE;bTм~7Fz2`BQ2(Ƚ!Tb鞗H {7 J=[ ˖p;)H0RD5Te*Vi+c[q:O&>p.=潼+@tC`;_NuB)zqPv۠Mq/*ufDTO^pʂBTsP?OW!V@lbm勼UШ 67"(H9ˆ?g3 2 *j.@ja<" ;k[$`>Rch;!䍗XtH*#֫-8tB 5՜KL8jM)3: ςfb:]J”hΪs9.8q**ƫP9r(E$A6~ !m29LMz{Cu#j(NrI漴UC̣<2:?b?v?GyddaD 7gUX͑y a }ЦM\WbPM7PXCC}0ΊĖ|23go=]|=^DOBL\ U&bv/5 fV&:iDnO<*@ I=wb"g=ֿ"S(Gr~-똖"J ~,V`] \7<wE$P,Ɗ0w!Hãuɒh@gZYYϥ^5^9[ke33މ {z8]xVAECH^o'uVN8>Hg!eTtז8(o^tRVg:j1r+a nP)M`͔5'+pUF:Eð/LMHcFÐЯ}O L%IESu(8[}M|wD :EV55p+ҟ04"pWJA|'{@JY5i;ybʈCfx۪EE&yJ`sgbmqK _K&?fepß!+$heD?'3-{bnXn)Ld;OY~N6EXz0ܥ@v;d ؐOzHk<#>*oC@YyEŃ^d=]Ϯ)F KZ-!(@9yn`^\">o8ctTu+L)gTΟƊtb7XXlx#Wj.TJn^ jC|:-}S9h/Y&ly[_9tĞ MRn9ZI [R6W+jeC@"=K|Է-(vQ@K7dJNJWЂtE'\D~G2șCQej,{/k?A~Ed2=!$+HPkЄ/Pp$oOڊQ?%upaRV) 5kⴕu\R9uЂ3|B71fYHĚ3bGLdE"^G5UTMg 9S$F>XZf?(Bwf/?σs_ +C ?4."x.IY Gq$ H[Gj3fCG֧PN@!XZ6p~p/bO>TNU"f!^gr\C#D,H)Jc{|H-}İ#'5 հc3U Os #kk>矀ggʝDMw޸[L_S1h8cϰd~=Vύb8eNJf> ִKCRysW顖jpo7KB5Skz;j߫*-I\G{ 1HBBj=#j֧aË4:x06ZRz ( C^3Ǣv%iI:Y4v; }ދPV L+ǵy#y&N^-#6ފuzޱ/ָFiiרQ3"HP{"ݾ;tkyM9}5쏉j7޴#K"\wN2lRKagćE&Q"s[PiQA_']f/g$"_d>FN A 8E%-/QrS:F"!m49 j}HƛY[( !jrͺ9N(5l&}ZHM` }(ٻ C6_y$F}XquoD^Tӈw+qvj!ۢkQ;g#7]0?APt] S3$Ey :?ةYd꾗R5 %YRlpJ+?x f4?/.)c,|.*_w@&w}G$="a  #kx+XA.Do_VJ ;)ˣL@U^'sB= S rQ JNl=mDkޚ"&Px'ZJGI1Ș K)֗ùYUWDLٺ jBb['w6&qhOEaF mXQ#JFu^䵿0ê~'}bC\8" SjCs!CFbWTyqz[u${ӰT{̎嵓@IFĒgrb`JLU^x++-.am)FRټϘԵ4XGY 1R 14Uk_d, hCB`](6vk NDMl)CVՇ H\!ย*h[! P5An%0O2 s :RЮMt(EG^L(3V;ݣ4^-OWקHSTI5u)x == $s0$U4ٍaGCpd9ȆO  QÆ=3høeCZ),XjȒB,[0RhB/:$+41_!ǯRYa*R ~TRkpظjxB.|D{1!9_c^<"Kr":Sl-3m9ڿ13SEɁ`QV9z(0֘j|AQ*2݀tQYddX9WiX}źSE=բ2̝$zun_T`qUJ`YgB˙͵tC8Vˈ'̃(i>4!Cg~/V* _ W\ҩqB%z7 TO coA1rz0\zG2n_B<&%S+8|f}M"PD|vg?c{p燋IS6-āw-da+1], Y`<>!U,) K+llp^(i^9赈'%PHEиz}I0ȇo'f".F8qMSC.źq\GlI1P7qiLzF-][<Diy|JB_W5ߎlFC+h7{gHcf7Z\è@< p}{p,mť5,הvSOOpmh̏u9:' p^ʢSE4r$ے jS Xsovs&voNH=~L jVA#7Zۚl{XFs8 MuD\!kUz 'JJj|->=ǛYJU#U>w)lj`s-w$p3杄fCJR ;όpԹY°g}c?)ygWZ&a/x@bk%/&IνC~V;]y@xGUnZ1:!1Z9)]=o&.=w9$_aFl+^H E/_{p^ME^a>gֈ*.( 7Opgqj8A4n?#+Y`/ ?T?Z9χ!K.P摥8(m)J K c3:cVoslnӱvr'Og٢t5Pw 8δyJs.%aE#0-d8좃Y`aÔgM8ýzӱ@A'D xggeƩC.rrM8Ʉ;A~!+Q\зb{'g@J= ~rmn)G Zs.E(6oU:6UQvɴ2.b+(pEW!t5J#1vx([QbupO*Wn;[B]7Uxdd}>Gro[RMRxGϧ0a;v&wjLk$?| '%&4U&j7Su~U\+)ICXmtcGJު~oĜFoB ;˲7I)[E| 6M#)$mmwA7b| ;:0{.J$Aӊ&.C@e(g'!.l/G*'Le hL.?9ntu'3kCݞWJa帖e?t=ucb̅ ,}fwz+u[E3oGŅTL V78]9YFGj*PhķީpDSmLT1uZ3۹WaQh\xɸ Z;_;vSё~13,"F%% %`bgpӃT}͑5 W0KD;%U8-B*I1!(@e{BL^ s)7s/ůU1Kv*Y n*=RYD_tzgRqq8j;{+prf {ĜеAgH Da5fmy/õ<\Sv AVu'H|onzIc*TjaGΆQAщ#ˊ"FҎڿ3WJxԑRт4 :s]7~O-3ST&=7&CHy)8: ,j- ) *6?ppT*P-*SXc+t@טAk?cdlKۢ!/-y (iQC8wܚfQݲG^>P^^8a7*]CT]9Y\&YɏEʔgUir,cUtk{Ol/z >|s$J!܀'ǏDSY۞p䚆+\j?j ca3]vI|[N\ ),7R/YfkQP9,em\ Y "LC&P$$'7@hND(534laQXYr[P@Zw=;K-`u??/"¶ OUL0zYx/,kXq ^yNs88 rS|q[}k E*XJ*tM3[X;I<ٟ'`EvC‚!vk |D0!Qgy"eO?ȕc9ż PǞtU+9i Q?{N-EcҳlZfxb@`/5VmwNǯ&Z{Y5nvkC@p~×j @jf Yn}qdUۚɥ[T #h olF=0}MIP'7`Zqo 7DߋvxRJ=fav39z->'ۻ 9\"RLtɶƮhApl]lN0_7jAmU#,] 5HH E*^0{A[^D:>/I.<֩Ujrvӝuprb >e%1;#ʲw9V(FU7'1kps^!p<|zF'7濳KC6 UA9&g+|%Ja¯Ͷf4:<!ZɥbT1ic2樖yz|G1ǶLh:1f;I^/ EZe8t{ (:?PZʆ`e4Ӝ;IpCF  UM-]y¹?E*[skXƋXt0=;3qB!)=w.u̘ '< ȸ~CCROT́*l6\"OCz(UL_YJS3EEЇG;2OT#y;|&ʪ1XA+~ӛP*)kbDѤ_^jug% {;@VCHBTz W6,TRuz"qcpȘ勂$ĸV&?rDZK_']Hb/AwU bי$'&t 2~E腕~yHgΓ`̣g N_ 2 ra3ڏ:&N^ ĶG?bA?0TP ~Xj ww e(pgfYl(Gπ; Q} ڮuur0U[geAZ*Ns7>DY1I5؛nKG*M8-`/+ƥFc폃 ,Mc eE9/iZ15vYq2]U d= )q|yDw Ź+H\Ms>lZU-L'-C0KhR#AQ1a1̅&\{f=At]DUeY$䭙$! .5b>nm tg~&ٽ6'oژ oo ƲT 4b19s$ahwf1BqufYrxlQ큪;ZM]d+ |!"wL BpK}0?mB1IJ!t'nD؝2ryDcqaA c$j_!ѻUgnexK!lVpHX&P;Fiz(݈Iڐ~cO7fI"-mx1+ʟ"w2m W;挆"y":R^WvW#(lMT{]fQb<9EAf`TZ Q*@mn&'L ͔ID٘G33,m!ͧ7p)..Cfݞ!=W; Qu@{|fOPK3S|ُ`b*w ReVqWK aVZvY\Wa-ݬP"SG gB*C1@,kյoG%Kq\]*̷oۋG8a )[ 0b_֦UF/}XAh`fΎ5J22q -ekvlvcTc0q#"%K ; 6@AAm\7<RNYf.)w}VO\gjP%e戜UFBۗDQN/PQ-.;[@-egϰ*4L9=u[5XBi*[-Э4y-˗˚΁"B)`,Sڻ~r&H,V>~4+x5Z Ȟ9FG+@U}8ھ[3 K.0 x_ N옲3{%SBKY΃,!`oN,~!bϺ 3ԙoO}ښen'ipJζDV<'PJ!l:mU14Rzhzv߾6F^.I]:5D?5ł'Xkuq6y%t.AB=VGwАI-Ty(TuڋUaܲ"W7q'4jGC<2Sԕ~v#!Kr.&0R#":Zbכ$CGOV) "9U7KV9gY\p|<3.NɈJL]uX>ЊP\=sOUT"|b*_XFil>SJFTRVKN8eF5@ɄFYΪ-#$E:a[3_!~Yrg0Йgg &Y=b1mTG{i*=5 vui ݯTNL^AH&bV9p>uo\X >LL/5_Od6BGUS= 0DXBv^Zl#$MA ۟|k-MQhsT0 Xmʏ*,ޅ;OXg48 guIZ?rv ovZ)0~Ԅ[H_N=]1팳AlaFt@lDyLJŀxJu;gd#(׆~׻q]ߒ|!-1,u!j%`#1r;a8>z.l_{ 3_4 òSK]G5½`ҫ+iNBpFm5Z'1Ҍ% dr8tT&ҔhfN]噩v@ l޼O+cyKg?ZM6/-NֲA /QK%$Q^ NF&ITqs#_2Fta7lH͝x@yfeZ H 7`Q}2W ی,FjV Q+p_ C@AkL>{Y(nS~R8h(z< 6'{MJ((Gp0Ěn+OuA܄]VзXEt#hFil![ewAMZ{7ljmjͼσlNS̟F??7{_Dqoytg. Jܿۊ8SbU$VX5{3,x!;R(A5^| 5`TjcV-5{Ir D쨶_ l"p|K >~Ml; ²ޒ>#)RHxaj.d`Ұ~NsV`qS|<>b 0W1ۚA#^cP=ۂuIz9#kI5 6[k-N9ipcL&qi!Pubz()/5Z-Mڃ;^JG4`Oay+tUV-;?g=ÍV^8B~0@MleuU % bpTSrz\] 3gLz3"]!Lb)$Wkg:Vh,)ayjLĹFE/hE6*N|Z , XnZ||H295:f WshPꋠTh\ϥvs" FժՠQɸyeށj@{,C X y`@ / iI<5 PB' 1F1"E7Dyn\'G_%!-E6׵zMa?z]vw3⦉@kr~N=,/ MxUԜۤ$W̘ ]v*qB*Zք-f .qManժ{?>^6u] قu3kcL$o 5yLIWRWTT+(_$/xB+%:+Qai>aɊD$V؎t7:F[zZ0R4[[fdA0h=$2|o jJ]YtFXb.|a$z;UC#BI'x DQcH~Wb $nu vY[=(7j~Z:! vOV8ђ!:}OA[ < tqvk&OUs.kK1@uݾG0쎗 oNfQӅzM*a5+|R.#x9Q)f ^Ŋ@&N$r#n)l]Y x5J P9Hʒ?W.P%zvg8LaB}R.32fYl2:kʏ=no:wxA~#LE0:V33##5nԺ@EŝUXJNɽ&CG[wEdE]A].ȓT  R1xmd'cr[o--Ebݷ(mr͸} tHu(NUÇuxwiJ4˕ٻO 2+m"(} H'4L얚$!zQNG Up*NW<p 圩0>L߲э"C)9 kC%-bR{Z 9΅e`WI2`Vr}}kAW&K@=0>.6 ֿj;NjT?IǶ'NzOH=LQI 1|)4మvYsQ6uzrsvȶ^DhkP&heWcx 7ie3ɷna;)K-_h"RTz38&h Ӧ%MĚ]W<-MѠݮ #ΜՕWWŏn{2}g:4%b& 9vօ5wu:ܜs ~g*TVM=#x(F).(8RMrd仯<ۧ]}aUyUk\3 ;pDWHVVO.B^SX+_(m$a:4*[)H5x"B}WLS,t)ȯExšďZB%oGi'&:D>"R,%GJ)X߫putgk&0#y0L,H/XPue~:g_KƏjdJWX\L ?KӻڱkyJ: W7$ )u&]PGZ}$oo`Yn(M uKZ;HPw~\"UN'* ϸ*# Zy7(/F?Lɟoz*"*D>W% i0e k".sRW›Fa'p mɤT=}x$g4_yf6R~3[T)}^RSw\h6 U$SHBD: ZF_@S+&#NNtq' w E@l8S#^\ؽGfK ~y|*]8{ާQX>,ΕC=_JIs ʛVG1)`Wl4iKQ}ɴdR?~j\ ZwNdW~E>UG";'Yׅ_f`9m\ p(iLalXP|?v_)ۜB%L ͋0[/H-rJJ‚ꎳ _rJ[٥xWB #JqL<VAs f`ZfN]6ӟg) s1-%rߺ_bʯR T۽2x!9bEXOiGX{pV{rblX*t2ݰ5Z1pw3i,ՠl I&Dd4߭Y!![  \4 8&/)RW¸-ޖIB⧉4:;5=٘^2_~I /nX!C{h0o$6~ViBWMр>%ͪ>֢}݅5E.c /4@}{[=}!A,k.(\m+?s(BO2%)m[։9Qm2" L/\i| "xɇTJ{b:U nI^T811y ְ'T6F=@ėwR~Q,cȩTm!5g @*Z|_wdpOhtٽ}(`"XvҲZvzxr5D]ĹF;8Ze &8N^\or:yT)z|0*neZiB͌@Q.8 Q5)vdy0a(J+\r[|dEzawbD3rだ bgzZDco*.׻>&"5_=D(zB6p1^&=Km ̆@?jx*@#QztJEۖu(;ꖹoָXr3jG΅̇Y ;԰x5AXZ -ksYJd=M K>*.JHojt]k,xTN_u.ŁX'&~+/^ط dd^0|"Ӈ6/X"| f}o3߱}z.zeQF3F? &Kܟv|nvz=#n+0Cz\0*R9A8QrI8R}|FdtB/a0%kTg A ϒ{ДMn?-ϹVߖ>|`4=\HqDu.'~AVwKFܱ̭K/>=o+ST Lem3-1ޚǦd@+՞ק5Сu(j2'g8#Soϗ♺Qic[:dY0{)l߭#p50d*z+L%z><4fDcKxØ͢X,fQ;?5ٙrVZ-?`[ ,M[{= Qh9  &[tO.3>  T>D<&!m&@as}6,~?{63+u+kO 0M V?(rH3SHG?ďѓYj?e\NTEQG'g2\Fxn#u]c[ZnNե Y ȩs.r.c@>^ҥCTXaB;I3\TۇI<"zv-ZE@62&bͼNMY"DcWu ë59 _rKm%1£_՜ g TU?ΙRF9u>.ٮC6L{ A 2P5]Ovy=o=,t`s3NɯƸf{{s0&hJ:u1hRA­;9s(g@Kx.4OK~gC:?A^6-hI~>m"q>,̩ԱuUk (S퉬zD'pQh'x<0+;}$'vRm(.5@u/Js<]sPA'/ dѴO0J0YOLL[+t/ Fhmܖܭq@6[f5X)H/~yaŻ}/ W:g'w)ϊ׌rO̽. EGzfR| S癛fѠ6TPwC@7^zi|n3jq.$8V7)ƈ\DH'}gJ),fݥYp ]P΍@BVG~Xqwa'|m)?ua 4@.H툙B `T ̲fYmh%qVEjH^=’i Mr >W{R+2JG[v~́!z 'zt}RVDl?n6Z4LϾrQRÙFbSp_ h6zϰ;^M4jip&DJYAz|@k'|=6c՝}q{_.Ι3ÙܫgM";~.Z@`lDz1Pds,wݽ+٤ʟX{ޝ`{(.fDmmv+@G*ƛڎf@T+(ԍ]gOz6I[#@ڃY]֓a|8w!wƦu^C@;%qiQPgn`3#A艹W1f2 O1z#_\ M *:~ĈvA |Tyʪ !^ǖz;u&]`,&j,=ąH7u1]:/5=AEEVm 0b8 tl7KN՞G HO˂J\9*/Mܷ~'SC'2\4ʇoQ Lygr ]|YJ;{d4e?Gߑe&ci,G Lwh͜^1bZ|Pe[  >[70eс:jyMX 08>G"k^ޛba*Վ:UoO,'b >3Oèݛ[\w܈ç'Cq P/@NY? qpψ_@Fޏ;=o;Fy&n[w`ޢ8A@+m\n^an5P fޭeJT|CI ˟?fUd}FfΠkRgڧ>.1 a'8:V#GRm${?KuU3UG-my޾LO&"<%lf8+,9B2:OTs >T(6)vgclIB1KUt(,dÂ+`Ay]wH"u™u鞁1y,NĿY݃Z6Su$-Vxj 8"0}qBݯ-2{VKx0s Y Հ#^zPq8Z( +4"*t=YmX͉ ~7[Fiw%)3Z)EenUcevBp-Nf%K\^K Wua"CVX1!BW#!IoVm1 j, &od$MJ,{S魾7p`7}כ&WjJJk]EwANJ.RIm|ruHQrڣqzY9hBn !b ӻ*Am?uÜG$c8(0LV6-O6`Nu iMF+D/\i{;pP :Eh)tMGn Nc؎2ZGja!VٱyG-4ךș(N[e x?z}Z@}? pH = MXēKp׎j~ W.=lUW3TvR_S`"ZQ},N#PjRD=@b ;e)R?!>gs, uV0on(H ݱ / xE0>@@$@Qܜ64eIA`aBbw{):땛(n}'&]ЧдQɉAqv9C5@6dn"b رN{YG^?Y^n$s.%iTL a :K,JgOܩy`poצw0^n7ۋ?׏0kW8]כnjb{W-%ԽcT4ػ-OWĮ\6dl1-v!Ud\}dH )TAxj'XJCy"Ͼܓ'ɘkЀ%5;Nk??T:)ڗDAiH-V1Y\;+*IG᫃0v՚eX؆~ق?1-]GW`",ϑ@#{ZU.F*M* NE3ϸ0YH1﹃ZJ,ՄM,nUAñmKLukV|zdeFgg{GX0n#::_Q%%Q?R lӅÌN}P}~ 2;ugJm,6o ??9/ Rw7"H؛}!g(up.ם|^+S<*RlςéL15t 4A|ȧȹ,|kPe(nC f@a1 q`fހWwfTj*o'=݌+b$T 2 2g[,Iϑz؈\#>'؉P@Ae"*yYzaPKzN?GG5.aȴAb幞1{ 쒪 AR5{S%>52@ޘ .PڗxJF] Cvn@TӍg):9⅟H[ vA3BJFPIYpq3i7͉>Sˎ(}o0Ok/tv >lKB 9nDt=^{isCU^#\3Ǭ2:*Lr@([Wo% i K,.)#,[ʗ "DJ&ɗeITeDIBi?0 -^ws%\HKR-x?R&"q .uYj+Ș5r6N{"hFۊ\hr9MNtIBYGhMACL⟰Ȥ_q!/@1ļeZyU*"us+*#" ޑ[ND IH#{NmPU;ZGpsn|)jw=^ojrKuâ(ߌ9( @x+KivUZ[!uB$̐KC~PBb/Q]0yX䨱nŅ)Pꮗ{|m˙Pt_s)06;QP!`B{;_]umP("P2,X$]R vyŎ0^)2za#nbSQ.F@It>Vs͉ /!~Єhr1U 1:C$FTPM+ PmNҸ2YD6LwLqQM`~']E>C 2TqJҨJ>XQ Ey$O+ib?Ƣ:=oR`KRNCd*E/*0n+c콬d'S rUdP&,X}*-ƖH@P 1(r:f2V-Ӡ5>ígwf=mt5铗h:(AO )9BjD'Kl>z |--=Z%ӷK f~C7/[XS,sM[jw--)&SMwBxsH2-P|J]y q %1B%i >TcZi:q=@ΔUWXfWAb]lR" _JGk1xoUZ_1]4^|r[f-6s<&pIn62/)R ȢvHFbmXv _1H_KZsw$-]SPy(L {as Ʈsw^/D*ׯ^L>UFrC6u᯼ :+!V;ygNرqhqA3<.AfA (08VZB̭f\̭-#C췄,Ky1j4]vG^,k8Vr/dZb.KZz115KAt.T*>َ2Stܧ>0'$5Fw+_cٲmXX{S v+}n&{ְQ\M*̅f7I-<"㭑ȇ)`Qx祊 z޿o/y.N}I=QÉt<-rhD:nhB ݲԢ CV, L#`Y*'#< AS8d{KcT!JRz|j)rܓDh,s #U9PW/a Mܡ~@ +W̝)z& \%v̫7bmi3yj2R!VYf!]$mى^bIqxǺl%Է+֓;\LQ@sy5Po3f ce*' vf'8b-ؘߔKro6 L* IIۀ2@qEaj[[.&g<awHB@T#Oy!z?Jga^Z_K$!$*WZa5񈝨FzI4(6XVv Rr@k&,JZ齱7p뀥$zNJ=V!?X.] ft؅sRt{ |&gӟ!f-c=% OV靟ЄďE !O{i|N'*{F|Mcd ;omy$@iL{7GiG[' RADeli5EU8ʞ@{rƎX- 8s%}J.(J/ fH-a}?e/])vBN*4}آr +b9|RyY#W4lqdt[Iukhm#|<=k?kwFdSV? DB[9v1{OJ\[gHTB^ڼw H]@'-*su!N5WymBsV/;ؘtD֨)O=l5PapϻRv"AE,fqr.:w\qM{t2&HiepIB2n⯂L wn"^U7fA ah2,/=Zǧ]&V lڐeF/;4s飙ȇwUXZuB^Ÿsk|;pD,u{KNN} kyڀg%\~$k, qʢkqX8XeȳKg921HA{OBpө8A(# H +D4gN@MmzkRW d74AE|@+½.v:c+k0 o!3,d76yzI_w} nc{mB3՛%t6x4z-A[&./=m/Ц8 E[NY)}gVIbolFNMf 3m9g#?Vi$gT4 ,p9!Avmc|%WOZAml܍N>hVu}+3`!gjbMxLW[ŒG# 2+%*|EՅm;wcvnqE+/Q]! jK*&AF!ؖrJW_KD~\coBYeUyTO-0beWyyVI\bh`(TzrFF F#we{RW?n AI לuhm鞡H;gYWn 1MD {Vzw,%qP(8>/(&oaf'[(ຕ÷ }'Q㥉Λ2+8JbĽ/r9,J4ENE?#r>joLOG[J R2OLu?}qetgJ/,'p!:M}fM; k/ҡ 3~)-0zp7blk-$&N'x'e 8M5tl}`'_+gи( 9CQ˜\t. bqyou5}bE hl$Y11u$4+.6 rɜimJLVZCƫPFbΗtr7ԣG*Q؛?"c h]_XO>/UjT*8aE RaP\2 n.Ÿ|оFDBÞ9؎IX:C4.#!0ykV3YDZ>uJa/ttw/2F/zSN=d$Pp] |ԩܧ=FH`]M LXMېq>;ȸ9T67%U_0r. 9R^)Up5K "@%RW+;;_<ў4T 1 SvM0`)DG_-^pɁŸ yd؞#ZQVMdpmA,:l7WÙ;1y)ɟ%Wb!t;ST).9»YN=iR6U;nAH,:&Ϟrddw*vr]M~=XyP }X>J#A{*d]AѬ|7RH80M3bυGwW9bs@vظqCBBw@Cs,/GGgaXQ;*Ь2*|?Բ_+J9G [vnde);P0'Spjr6Iaxdt2϶ZI!A뵌nz@O ~:cqsbD \1n#ô@|nc>72PDhkR-͂l*,[Y? "dKs3JD"VRwHgy`|RKJz R8.|&,7y(&$Ưþ(;T?c墺-7q4d؝@'HM[mV|`Vyȅtl'Is IIOt@v}yT+U> +Iowdf6u_F\jkr'Z5 a[3 m*zyO!J1| ٬/Y; ?K~\YoS͡51E! #khW/nK~JUi'lip=\^N4;_2~yJES+Fz9@⸎e*~ M޿v^v@=l[fp(ճR&ёsK^+OEfns֧zT('Z<\O-<ԝY#etgjZzhwr܊p !a'.]ziRT*I g`H 6Un.SK/[:- ?N@WFqTqK,~NIEu1WnAr%h$q0 lapr0\;]̷B>sC\8Pn'u xeʠ&5ɪ/.EqqZԬu~l>0)6TQ~P^׍fJ QWql!qſbb~g!_dR*1#h~( XP"t^1.$ThGcw9l9|>ֳN({"e#E._RFuF C3m\=ijc#"&s;,ҸdAdK5äs^LuT\K)K<]-rs.R(#ePfLQx=W@'cg`~QZbZ@]n=&>+fI15k@1+im7T GV!σ$U|2-=PI݇c6xd4K[JeiDMѹ>SAW{&# ՗o֍rrB?jካ'2VToX,IdEZ=tCfČ=φ#Pݦ#)Iwx ΃,ߚK2@ @9L2)ùᵢ9<_L$:3^+j1keߦ9>ثq/h5 NSc,]<6pF0};$>gutM1O=HGqQ10l8zЫU6M Xe^[Yn $my:kbn jS-p8ǹ5 "Y4qͣ#9 dojjzC] !1k,Tpb d0?Zn; ?DžQ8tG.O{IJn^5^QB9rӻT9 MҨIN_ET58JDzj~꾶@T5@pW(Tw1CCtvqBfr!ĚSݹԁQۺr~^7OҖ=H7+w!'t ReENxp>쫋ĢwC0 ~1!~+Wo-coȜ({qD0^_-16!i8nCA2K Z7D]1A!.IGc'a]ɪHaRkj{CR/~&Yꪒm͢$2f, D GKV^ ?޵ #dkUωHj$3[K4|@<ƚz`5:e_pپoAN Ut*NF_ϒ*TwYT$ 8MsȹoIbзj>~(^s'V!;/-[Z|-flv`GV2!C4ڃs>R>*%&6 Úa9gҕ*1sjRuG u:z£Ⱥa?ѮM7fg ZL겔1;LfRŚ4\Ϋ1P|ԶpNa7InqZuo T205Gߣ|?PL4ד Uo\>b{i J9: -ز+!tL/[Sgݒ2MK*X΁+7'ͰI}>Cܸ'^"9R&v5X;fbA2WqWNV Զ=9fnKiy-Aۺ'2v_\$eҔoS+(iWO"90'2ULhKWAWR!'y8!ȺHQPRjPJ,P#Seer3cV _$a~ivSe}:[g( Z =V,Ȕ5Mq^W&߆BRY&Y%a+q;9y&yUKj3 ȳU,oit'gľJM[!Bl{FdeBk{G_yA)S%aM#qqzR`RgLD:XǓO±rҮp2}BFDghuꊹihqiH?_A\2mڗS~a Kʘ7C0JjtߩreTJ7 j̛B̗0]Y5hL)?|hNPJX'p8d+ mbwRTjrv'db-UG'0J";YRMUep331R\23*Oyi~k|ۨA mjT),Z7Fڱ/2^ҐD)2XÏfpмq1.y}Yr!LbWUt#{ÇT/4Tg'Su&zꈐqUHQ8 Uz'Ct_hg>ăh5OEZbdGk) 6bRsrCY=7,74?G{~immqy᨝Du4J5HNDҰi iH(HaPqK1Ζa!A-?m\J?)GV?q+bPǨ[%X_ I!5 .AuFPL~썫)T9RIqNbfB"q ̴!P%p|VVqu]Cܧ-0zw?Xc D)JSD(+z&&U ڀ{ϸZf^wA{AkB6R\@kjM.]4*T4|LEuݣv!Bylڄ8*U-h@L*nnSМ9%kѾ@l9SV|2#=Jۧmٸ-(2rZ$\R )S9ߜW>ֈ~/&} cQ ^nV**o *v(1k |:'[uPZW)AK=l 2W/k 7G=YC`gNZ!š]keW~JR$W{Y=#A)o͌ )qC"De_kU-_N3Z~d;S/{ /3rts[1A.4T ^oY7,;)n:<* yYⓃWV*)>oH˲S*ɕ)JSd" Il+N2މ$-;~sooHXcSnaM>5ҘSz55Už_JM>{Ӣab'!ZMj9)FÛg$pf]Ywd^:Eyu ڛ͝dרSV- >HAe Zxk0VRD[yLk*eܬm%&8wC ?hŌ܁49FRV摸?*=A] M@M?FrYX9J`%[eZqbvZָ"ڟcma>+ibD^Hct.7j8ҥهX3"7ldak% }nN {ĄvcW}k$&C?79HYnB1 8_+[%2cL#qҠDQk(65=o?5 DDZe-_Y֠@x{}_R%V}ev;eh6#[#>/ =D+7D'X¾e6XCg0Mƞde|0kQUۡ]'A&mlrݶDPIlȇ[bŸ3Gn'kˮ8,$ԆgjwT1 H:;/C)ŭZWE۩}1MZzu^8f]ʤ W/Hw#[]{ƴL5mZ&V@R0zoJՊaZw23ȁE?`yb6(o uX^s*ʲz+ Eևoy#m]{,Y{ݚr%U5+&K%n)Z1lvR{g;>NEY39ֈ^7)W-.sɐA}HMdຝŭ,/GH?tVr۴x`8H jyN\…>JdٔlY8?0Ɔw1gKo??",iVb7u69+ʠ"g*I};D3NCZLR]Fml*_[X,PWJ:xt޵bgqg'(q5l8e|5N-`pE؉ӑkCCe^N~'y@'; |~-*,U(`/kH#`P吊M.EMsp, J͊>$[P)G7][EJI( FeJ ~e(/cI+R_y$T$}S@!l$D(%JQ0gԴXg,Oj{:@&ԉC%yswLŲ ~g*bTaq -]3xwfNm /^Az?RiӺ#VŸs2 &;.x@E,įNPEziau`'y2)^}P_90|J^HDY#>'h) 1μ`7zgPiU1ٓm :46EˍiLnˁWG4" P^ `gA!|f9PeiKK|Y An_`QWB1?Rpɫ To`9[|TkwJ!rgh#W4l{7yc.[`{_>M yBD2cW*|B Gb2آE{5bu^s /'ߨn0(6XY09Rp ce|"|˅˜VM޿=S9|R _ uck/ф:uW.zh i@3*ɄF'ܻѮ9 ۃM$\q%B3ڠͩN\Jp'*z{MI|`9XeBo*6k5/ @Rd׋-$0L:2-" I}u|Y wC!K'=K6Z챖&nE,@yGiF~ם[F<@G3ҡsv^TnfW(WL ``3ŧ U۠g'JgxVe`K޹"3ub:5>n^2>FnzF3?a?|3t.![i ~?vLڒɳ{{ľ)U {6sUf &1$6I>Fޣ%4ު3 Lo]O  _#Də \Ķ>7ՕQKjxBA6lL>-"z_N$,:B]Sw80l- ={;܂gVX6i͙3W]6t {NqAJrd7MRU-jq &5c&n[yqrlpd2/+͔%u=Xח \X5푮P;LR5\KD@ҧs:vR>"tֶ[sJEf=!҃^4]U,#us Scjs wXRT^OAg`F,5Yrq  4au=zVP:QFpGxb.%PoQlԥXkO8Ө\ճa fm c͏(Y,%;;EvI8DAX}ȗ@tvj;hyu<>[ N4C^'!PDD )Ps;S 6 ݼR=9p=ZV@E6I\!UJhWg㋣挩5ғNNݥa5+&(zaML:se^BSRJ~9a8Jj☐e*O^"1hMnyhz|A; uU(_$ww4; ɻ+_~l +\D=k";; Izo9&ꑲf~X ÀiKR{O=*\D_GpL 佫$+4X/){AdK Ϋi!0]O`I48dN%N@?~p#s~7cѰ|o?.*rU30|kEENT1x,Jc ^PQgJ3?߲%Ss`9PS'L\""g\kEoSԢFڻ}A >KT;RtQ|zWs$xDd'b`+qd?1w;lۺc&yc}U>KfQw$qv/q›4^J(KOf:wj[lK"oδڹ>j7Yu#.G Ox5wMf*Q$tPE/vE'"szմXv^$ym&VX[U0 _-8S4 2Ճ1;${lxHkEqO)7091F۪+t~'R3Mnɜah?luUQW-VWxyp7,)k)*+*"l').[>Z ȶf#v󵋘at,54SaOi@I$Y ArS4!3;{YM"hR^MVN|+#(9,G"?a9#rɦAzed/1U&U9Q !{B#-x 1E@*o_rĜk8ұKMV\ڃ c ؒk2 &"uN% $ )Xt:miv5jj8 )js-=!TDECڧkó7gD"ГVK9F|rRkq! o⣃ \O!!D k"U Wwnt#zy\-čQ=ܱpfM=sޤ&`T8)ٻ2ZDFAs:Λ:~)OnYptyd$dH.ξJ1I=zjtH8WݤNPB!YyiKd/Qv4}FQaūT껅D"1Mi/tj]-DYʮ c}6a|(+9ovɣ$ }T8#L 2k eS0 Vh܆1}妚-;!kR+`cI8YsT!ѻH,-1%Rą 6iK:aQM.ܭGG.%Hh5c]^OhOg`.X:=gz70y81<wZU@-MfͷvM#$Í C7{kﰻL'e rOVLF|Yf.{ ~'C0l[YДvq68΍ yurmd6;Eb4M\ħ6VN_لm5gئoD2hÚLaDE=O>xpR];U\A5T")x}V ؤ|w\?1Ɇpi?}¼r#31M$Vw*%)pBuJL3 d] x`V?WpǭOķoZ|`G-T<'3QaTy(a)J. F-V\C7&$UswmQIPfΈR";b?؆:}-w[B{(q)tQe@R~BFZ~^TD1DAF䫭6cLzj0a?JCTiZqjJ8y04]AoqVeO1V;.˥ey;y~uqR>gD\cn'f[TUTժ{AˠjRx/oq!%~y@zA[RX^Cʠ˜p~l+ZԠjS[IL g%a/l/-2pWz;O& O"7n\W;Xvf^)Og)UWs*B"v-kA[Z鐾fgYe0 r $GqL!˺NJ&FEix#%n{~\B©mxom,Mn #SZoS*TLщW)!XQƵԟd}Yĕ›Ez~KK|u(y8!fHDp\&E Ɋɾ.Um gI 2dGk hYKp n{ݒ 5,hϽh&[sCtLuOV V^|0Ӝ-_JQ<+`o5pASO5űeN#Az%\<9 sm>;kpQ,|nا6`~iT^A3{JV%Kc DӷbJHeyJ[D^Y@#e^)kTR%`&XVPdT!7urC=+"7Jaԅ"A:L=noN9S킱ϙ<״g[efAzn6ͨx${Qf Oܭ y/2Ar.z;0Cgn GCUA J ~t4id9v:YK8o-"o1r+v aRrrP"LN&p$})t L~l0SX-݀iY>TВ$J4 AbItb{谌.Qxq`;)C=?/K7⊚5Ę6(z߀nl)EZbI-,nVciV)pVŻ|󳒅Fal n[ztY#?/ztv% W.(/x(CER0(3߁,Slsҩ NsUTq+\AJ9}mZv| ˰/: jSH B~g'A[ /!(dmӎFRkm|2 9MYp .Ty)$ $S32!ОO)^v|w9$b 72efQ?9k8P)juѢ6Sl4*R)m˶8o ?Z 9'-1\Jf1S/0K'U40̔`q6}^o iaIշ0RIJ jO{KDLb!+|D:L)qq9Yd=xcHCj/<*Dlߥ$iAY?NV`1hg{~:қe!'9.0G`:J\? A(h V;bgd -  ȳDZKi80uQ@CK2xLBZ$󆏆>FJ~G;YnǗU4X @gCޕ{(f`ӀE|:hCq%KiNJ`4h=ۆ:C<PyXQZ Ky c2Y$Ή$0^H>4qyPO ʭ%Q2{~2jI;MqtsyIM`/SzIq!9|Wh$yZ@״E{$WQ8?aBG $qЦe4;?EZtJyv 8WehHeH8@}<3{ o}&7[{!6X:X~d%]#FL&i],zf xQ`DC5 !GMVv>)yz'lJdF;:h`:v:>xEw)-PP$$.Gdh6M]>yh:o[j rsEJ\301)1.R 3-R*ci䨀xz7x7^bs69ި^[W]̸QҝqNt]ct@{RpTQ,A[p_IqxchSsE׊-#k-ب< '>XWhr,Ad&6z fɲ#o3ax]"5z>5[My(՘19 7cp0Zb*Z] <p+î8%Od9*wF,~M_G~ (#Ch(hDf.0ȟZlT ӨI+_PFlhyL8!vPjR'􉏰?6en?˖ 3=5 +2tΨ2&q2~j=5}6 D2Ak< _MZ|֙E "j׳p~W%J߁ޒ]{dtUM}DӰ Zs>~4S. X \7{0--'yM6IHSkOY&I@g\kLMrW*Jc&Qȹ;o(튝)MbCo3^'KUJ`^FrtA.MMF3ri:6c> # _X$TEcL-J]E% 4(Ï3Ne> c 1}`\8de%>[z(ki)< 7+h-Us[\5v5ue4o6#|S;XQ84̼Vgբu"f̦)j_s O>ذ0WF{DdƧ@&#)6YhNqdG[ʫ n~p>$CS BGu 7{\˯^ 7%:G5c$cQ&`vnİXuV]r:&]CkӈD/ɾiH۟oKK| K6uК1=4"+;mgv= 76Se-wל\yri2@Aca tmh*R.Dp~q(.= Bы3 LLSOI]vJ,\?QIH.V Jh>ѯqAOG7ŭ1D¥ ] 1PF=fH!SRj@;pQ̩ē=71d\67RǤ Mz;\%s9{(Q[ hn|-e8}l AX5@=xNHT룡R\(g q0~:<=/ט *Ŧ[N G銲}-Ma w\ C؊ k6s'<5I~Qbic~HR!{-ĎfxUlcvT݈|'%I(mb-L*0Dzh~ 4YuAD!$k]Z;Uk5⹍B|ZU'_$ Ħ_ ѼD_0ߥbE Z06^?|ToI>-[㬾JѿE0rGiPqtQ02N& ڹQ9ON]TBUp t!_YN(u3$ncJS8}psnBgp S։u1fMH| L0gR+}L(\i`$:Jzvo!xL b]RMp,HN[(Lō$*nݽ7YSdq})+$M LaL8Drю_Stųѥ[65L|J@N&2_=/Pad?S]XQhP{`;U['LҖ/XW7zϙOZa+,J0E$R,˞C{gk*HAzØ#h#M!3}<>Ph3J&FuI8ط'a6Ɯ;!\4]R OǬ$$[E[Gz˹ vm`'kq'jRWfFӨYJsQ+D챉ج,:LA7Dqɾ؎ bSJޛ] ö~ :B Ю<4*S@ , |$fUek*qmmьS\6$2B/#D/5&@_#3HZepӑI~<`}oEt !* Ka\@F)k-]4eՔ4G ZS5ip4<&Ppe5تNϠMT%ۛ)Q*ĵjM&쐲ŭURMŖggJm0/|Rz: #J*C;ݴa~J3ɴbebGV7Sr,n ki"fm},/"4NuUu~,D-&tZ<PKߤXw^4GRzSvws _7tLgY^$WD&|<+téSxA[CNRGw2 bMl,T:#Z,hi Ϙc#A 1jX׌mGب!Pg?b|)4}b|/}.Ok&L=F,"ih~(\N[/ O1kqr4<޽uQ`q1hsx$nGˬ.qL`hDYAJAs}TQRO݃Fo Q'Vo@u Sq?ٶ~.Nj|QD3J%A 7gC=` ~-A<=><63|9f6D`8^ ]w2*$ve[P@ѹp5?K6xlv@I/<8M>,qŊ8se\ȟ9Xjuˢ&T!b4c# (S_K2G_^|@Qa5 UѠ!l'ΰ p'q HĄR_P˼m t~+ #G(W<8T9 rTƠ1ٶ/J Q2i^AfPen95'wh2ù_Lt~#~k&a[,E,x&&/D-6G:k gJ y9f9y"x*I:a͎diҳ.On; cC{@vb}CvǦ`TIZF }8Lo-B/O}9rls#7glN <]7 ; .UoR׽r}'2*9`[ `M`2DQJ^fLz{0&;.Nr^:Aۊp&7U@t23[`x]oE59KdTuR7<?VL 7~Ը(oY,@]8$d5͑Eg]nUupyxt *`\Z7ycLO3VgŠX.W-{T<1iFÃGz/"m I 4D󠙽pA&FbՂ1&G []kr) Yxg)7u:yz7ҷbTYoj2,}sه_b?G tGEX t0%``IۘS:&ͫMFxPe YK 9(qyBr 3zb'Җv4́h@aaHc}De, JKNs%mz}u{ČlYG[ؿ DaWa A/U~:7&T:_{=zEYk:\@f+܈)씾g4)֒YlPM6 <+C1$ aZ2v _q4YG9LnB ÐTC&"v[wNt}T0يo097s&ͨ6i٩2ظ ,GKWΛ߫#*m!Wfma%ky0#_Ek/řXRR.6=cnE3x`0,1HZo^ǿs"Ίqt_1?zI@/hmVT9hbyGF5yꄙ0;!:hIW޾ۉm ^jzg?[\GY|K = Y08A:Q<<ȯrQ&ҝOwk%-qeA JyCL.R&IHg/wTF=f۹WfwS;~ 잵I?sf-YB!>s4twEU#7!bȶ; va(-܂չ G)B )ŰtEZ{'$^hĀG+]S~]:#[-٩15kC#v͉Ҍea0G&ESG?|wAwx6ONbHcxLЁ|O`jUjDE |t-qFhSfku ˏ _oZ B'=l$c묋 eSTW}?X> x{C+_9:SM fIޠRxGizժ6k34|P0k埔RE?ç\? nSo!|_iqO,& 滗u YW#u$bzJPe]!6ә\IM {9(d-j,>tA.S0ۀ`x_lbOλP[?D,M#*I,) z&^XYT/Jź 1MWD2SfjF,NE" c?keqjNEGdKJJ?aGiDT+Ed\"ո`m%IeNHkJW1z2k%~AB(ؘmEZyqqa&HHg&gXF?Mcr8ׅlTm,%0Ęؔ˦-3q/z~8 ^a sxo-0g, l9^C`s\S 0 S Xioy3̛}`K0/HI_WTI\j?=YHiyb̖]ġH?K9xD'zx-;2NgV˜# ^S ,upS>S~{Etr?v&4ѕ1ܒ}.(-L. 0ե{R}fx PwV ɐtn>H\kuN-3BKV,cqַDCѡ^!1ykΙV1xܚU/H,${HaSu!  @>0*H(P)zΎ@boWS(^εUv-~YaW<"F t]}ڝo^PI">ښaSdr}s1cлRvwY)[NSć"d!q|nb駿[ ;a!g2=X~5,vxr;໥DT-l6D]zx <1Lm5x.=xȎ!7p}Xi 'pKzlbp/vlU9VOU^4|;iQ|L$o@缋Մ3b zSO~e`S'W|m-Fqee0ʕ=; *,kɒZN Ͼ X!_7<~$dCwQeҨ[O9XsK^b$--#aމ/o $4H)'tɁ ~&w?2@_=qj5U g*S a 0&Fr%_s>?Wkad TDyh9Ŗ~}LqzԅK, h^"ޒSga0;Ri(- 9),>#R决]l!{d;e͚Y2j7~_ _* uCp;|S|7V_3'Č,I= cʹY /.n3:l>lT5tP-QCwm~~BotW>Mϊu{#S8#j 4c42]8w/!܆Fk2 {/ '!D^|=$wNϽٖ.5a}9w[X3 6R Hb(䥗׿:2%eM _;ԓ@8 ]GJnS3^LO}:{0+6t'.pcȶ-w=_ǹ/m_fKj):=o3@blj:(:ńE" ~𷕾;|3_2&D{ڈ߿1m:;]َ#%U)T#R ;}@:aUaݰ b=cێm,=16MǾTN"$DknD$7!Ϸ_v;]}?p wlfLͮ1/c^=)CVI ~N15FiTH%=M H+@\3 T5X=uJmW(rCZg}XQoDQek%h4ZԌqV}n*TGI SqQ:V8-tc8',%SWr p2d7.rt+1m6 4Ffw;$Ƴa I#Hs=Wy8x|zcNsip!/|)hmbrEF|6vu.G5>ɺ*Ϧ!Vzw@wUuI&eWmti'C#B*#2e㣝:1/Qe ZZh1):%oHa5W5t?TBAG"qՓsmkihw.vg~=Y*3&IqHg0tL*#ܮ5h'}7—V@FYT(|k#s k> c-:f\,7\/"Jo@7'-C5 LdaG=b|zK'F`@`BMQ6J{.Fsbz 2߁씏@ *mT,N3LO_ގ;≊?I W1޶ZjVL95 {EEY.?|lk*ۙTh, H@dwFlfN%3c3|%B軇= KsZ3!cFKL4ukovE6~M5[YғxyeYejЧԓ\0B%}e.,fs#S@Pqtke+bm7DDxMd$drkI}8"$2 _^ c?Æ;/BLݜWr7=i׏dOy!)Q J|}59QЗ5-RiCa ?&Wyq]Syy0box(f;('8&3'9(t\M+o&K+,[,d84G=g@Mo*OwZ͸!@y(4ݶeb(m*e8dc.xC/QTV~{?+: ޮ]g̓ U Z0GBWHr9gV: Υ,FɜYv[P[;ueVKTX?@O}OFA\~>&0uܦreڪ/#|Zy+M̬'x}$V|^?˭#ImK_RP@Fš,񠫽^;7JR9;WY`](MS[ UMA "cir/-SyQjL!&Yn%BK9jDWЊ]A[<霢ҘT{ G.bx4.!bU4B4&$љAį|]vg[oCjWO{/IAwϐ$dF.A-]m @^ U/H_IZ> XTGue wBZh%I 䝓2-犧- # `=fl t|Mz)nRZ,L0.;y' ~bA9q@Di"P퓠0(t=^jя`{J1B# /j Ey( r8I3t!y\9^{BsF}o ][2Zb,>> t}ĴH;th u>GPoߵ̺"㢴{ /y, wwy0XG1Aù}bhR.90ɪO~$Havx,1D8oZ*!tbCk66]/09}1+ B5Iq2ȤNJD&5'Vw􉦽3eE^;uph:WδL$/>@$%?5d,.MᏳ- ]VC 0ĹRrK|O"?Co>84:VljSp-빁}tsF&e&FV46;V̠lhEZNkea,H&{5#L,g/m\N90":POk0,0X6,`?B>J<<(Q_D=0g|׉ ~:9P1l"i+.;?OGf[ьmպ>~,V`ބm|~|s[L`əċ(b3{5TFEj&R[{+,%G3[J.͚tv @V#|վWIx\\K7 ŋAˁo]Zh!E]" yA~ &oaGBh] /S3XKP{ p@;$<,ޅRUPKDbj]a9"H>"+Ӝịz`]#e)_ 8?O@8*Nu*3JtdG'ʇ@GC{\}D#"y7~]n3-2gs@? 9za`=^ EA[10@h r}`0l<%ڏ^J5S´~7 MPp}Fi8Y?}]SL _l[Ku]أvȨmw{, nc6;8h|h$]6!mq7z4_[-yjT)Gz&kuW"͝/.BVQOZȐuW!j'}F$`e^U BPc%Tx )ө) ah.\Qvˠln|g07^: 6[V8̄sw^ZZS-^h` pxJ@uFSi3?nF_.}YGҴ3Ց*QZXX+*n&?6c9\.*XBHɾ3sޓ5NopKro*n"q!i*CƉb3Q3a%lbA [7|g4.78IGS<%IBL漺yHCۑZ7qq/cs㊓OB+(6u>n沨pgu@O[2P^*],j 'g沨J(Q7{9)D߬LZǩww\3O*zHS9FYd vno,|48`ZI5^i:pRr1lCǦ@zO}Xn` l7U|IBNJ_OVqc1nOˊHf cW`y+»1\}cxR(BԲQWQf(Bv6' QMy$CKXVWKB@@a̐K|.'|b=G09>O֠IơҔ{STܮ匯Tp2i4r1"b"-\]'nXx+-nhdG"^7 oa3R)\BGU[$|3SP?qܶ ꔪ[^?Z#yX'H߬7Ӷ:KlL{Na_8 ٴ$Թ9ȵ8}onָՄS#7rј˯_yFsveTk{x8ɞ;̺jhLzpgλ2Xܛ;b+DL2>vSJÌecYy!0l>U ) ܩ/a!7>n2>#B)m9DOMkWӲ̈́ºgA:[?ՒÅ;oYƟa$Us(I@ ֫XU Șw۬׊u`b:b)qi |= dz|db]ޣLM%RjFA9< mΪMfsop-㤢]=asY}}+QE@_,>_iF>q.-5׻rRJ^`>qvoͲp-h/rEygѲa{ 0'S6QK|\2ҹ3Pn 1YS ['%h)6Nhk}{<'C՜(^,4zKwLYZvt|4޻Wa47Eo9QMKzcCI"~ ̊ߏ .EXjD6Yz5 (4?@GzA6 zâ}0H#ZN5j0BsY;* akkM>Ʀj Kpe^V_rl%wg/+ erNQO4v ?0sXm1-~s좥Q)o*rۨg9oi k|~b5۴=qbFQJ,-|֓N""04GG]mlȘ0b6$lmif|udU9ONz hm`IǮ%&q}Mˋ:zԥ¡h*?A/)7U>o4Ɍ4$~ڊ[ŘK\P\X|.@ ۢ *6\V<Zz9 U58w"{|Oj} qljoQ'3Oo@Qdk,vR}r*77yH M`[U֤"{6C G<|5~!($--)m,$ҷA#ZsK,FJ_gMs?&=ЋZG:wL#E}<%nU`(~s Oe?ɡ"Ŕ ;KtJ-}Sjvō^onv퉙C;F89L"Shhxd(.tK΄zA؝6zêmЌXddCg ? %&xd&wp1w<ܥEgX\sXFN;xfy+OtY! ,wr+j Ex-L4~ IBm־H-i3P3r!S~*ٍPOG"yF~<{#B!>mӲSld@k*T+l - @{zŰAX 5;5ѽҸy:QT5\MA[ n9l@w QhOhjUB=Bs1I ^5v[D:5=>^2kU[&.4a$eܞ (I5a {LV%i%mSnOg*|. /=OSTƭPv>sT{/o^&R1@|/_ҫOn+e_s#]ΌC{d$'q2&V;Jp~p8bI|ǔ#\$vWgGWϐe6][h6,r<]h6?V25qP}+{ټH[i!Ljg>q'vg=ǁ9pm"oJ@o)B/}B{Z74!xѴqDc=}j8ioQ>3GH)9a0hlkxO?}ƬzCfè"* `e$I i:N@i9g\(LF%ZJ}~f5DJvS'5T@k:;N?aY"Y|Oa1PQ/!Va a&I\u}߾A!DZH fƣq98sm:o{n4Z}@2I郫VMl .>:]p_,*(%܆WىJ ah6 dgIklC[O}7P"nJ]hxvL f2rDRwo+'E u,pGE!uBS}$rL|y qRa$= kkgtcA`Űe82'-XE% ;7>; ]wM˲Uʧh):"L'J)]/u[p}Ιcޔ{mQS߹'+ȀU3x/RE1Iw%ọ^W7 ?cnSg\j6!:+Wko'lё:D.rwU"%H^+fdf-g# O>HD $=J DL/ro"4K\R_^n/D -5εLoi5/Ԋ9\sG4Zg*b5 O{ 1wTFS_m8`>)OYQB} TL$R'Zr}J6џB> PG _~M$&yLdA' kݟ;u~t{;Čo,)޲4csS \`ٛwy8jM(}ج49!=̩;2qi ބ6R(hs̃j~u<"7>TKN٨z2yyo%gwѪ3;_ )d9goZ72ckR eiQ&n>Txn1 r4x@l&4J"i= O.r$NONt8713H); jR0?_OyX6PH3RZ4am@c٘@iB-YV85pDk>5EIԼ__ * yHS>`κWS6G7]P];_ ȑKA׹aR%=t!Dd(K tDh1WqSfo.B,#30>`kBo@x&-%{0#;-SRw`s|$NKP1jAY6pYYM@NLobؾ*1XUvnCY}~d_pFrK0X7 +2LYGd;{#`҅7Xxܓ鰼,q[GbN?ˑxZs%@\&M7&19PQEmxc!pe:n4+Į}XKG2-RD-5;wrwnJaaPCoJv?IzC49%[gĊzcپ&|ܢ̬ܸ~_4L?~428EAc5bb1S0, O/\Ѱ|m FTs}ڂ+Ԛ>bN 0^l֨Pfe\CKȘJ}:B8b`ʫq8h? 9 Gвha]3Wj#\^"C`MR}`ux0@&ڿ*j"^~{@:j7FOiƼ5퓜 20{5 `9xƪPSJ~ I{q+oe4a19 .XDBC;Rl&DȺ[(autA%>CWA- <A]|dϺ9#VYԥ4VXlbh9EA$=C29 0wqM@e5]j3;?J;<;4 kbXhTS\+EzlAT~#qCԢ$ݿ0 Woq4bFo'Qu]L5"Q?LR/R*}^$[+Q3EŘ8{*g֜(BGﶼ%g7RE]-%#ċ.1um]Gj=מt, aù^_6V`Ν̵G\R%%ɃR+P(2$[i](_I1tm\E3Uj2;̳S }DT'8nĨs]v 6ݥ"s}"X[:RTT=;|ߊmON |YiPk')*'Ep{2G4[X 'ɣ,o6ំbrI;`Ѩ׃Puͥ?AKu) AL||=J5pK-֦_3ۙ""P-a'&akxi|6!=xb3*f?G&9#|3$j[;Հ %}I`圄פ|LJ8阬k.*csSR^ )WaCwIo5@qk:W Zx`bnɌ4֓XK9]0S~Hg|7Q`VHE:ZDNc' `kϢ@Ƣv?LD, @C7U=͔2cc+]%vg.ipw{}&8h UrXG|`Ae Ni\(9Ů_;P]5d.$ qcUP(Qb'Z{6a_:|$-F1_{0ať-K$C$/a2H]<9C0irP(FV75GaUk +}7{z}6:HTSF5\Ol:쪝 "'42?Tbxy6A ؚ2I< as~%Β`Vxk v`cωs;U:4BGJNp{ՕSQ|&1WŅȮ 7̼"NO¤RpEBBVA"B7vxKlGb? 6mjt<+ "M1:][EgHcċb.J]Zl jg"m rL<\lʺH+1X/RϊE-v=I^ qgArl5֕@&ݗH*O4Q:w'|'s~nɐ+ %V nIrrs*{)@ۣSDx ~qNdQTSOrxδSY_-x/t>F$},t"VD.a]Ogd&D 6Ip;љ|޷^ZivwaU\X O{"SUH-vev? (2o_չ$VQOL!Dѡ -PLFv m!akr2( Wf!>6-? HA-nY$a?`#A{Y|l Hǟ-hq): wlr׺]nm%}n9ƭϿb}'x2b/hM6^;'8r6YPyru_y㧺!VZL8Fݵt/XjX%yx[Ìm~Qi} 6\uk~#ZvǤi4t~;~HW4V6@m3wETODUY%9hP0xu63@4,hy.$r[N?{ϭ}  7w@i,{E,ꗐb'/5mT<|"BH'IR&HW8"L&,ښSKm}95\p݅*zf8+<NjWF *C +0T3 #m?$$u99vx^4V!Ab:CK-|26aK9'N%ϫeTp<DP1p-ޥǁqqq&z", "IΏBNU\@e rWxIΡPwiG3E9EjQy*8 <@Xeb&+Y\dzA<ŵ ±w~\-ٶOoy#>暄&жHddn" -0r bAHJJxd+'"2Co;&'0ˈЉ&T1Â2^(m"u=X uKV"3̋mI İςtyλ{Ibݦ'ބk)5CܦL2Pݯ~qD0F3i_S16}9b0eLbmfs\1e` m]޿\kuj4JO>bjzZun=llIbd#sڼyj#s189߃1g {j-H'oǁڐ|M xZ:ԥKaC<*DI@t%.N{ m՛V DCפ +W$%J_S]' zôb Tt-I,lsʯI'~ì߻j_@ꝰAzX#(rmÍ\ @h=޶72?}o1&lo5yxHwr]:~g"8@Co;d!s`յ\;_a-vd' eeO c㫛aDhJ.e u`43аq( Rm Er0 X?Lf02} i83=`nG$Kac*-g_",: _dCy ;W* `h֒bF5]`G]u2W0`3 b' ˀ@qVmtUӜä>Ⱥ$[cvImpLr |of\*N*Er v0nN<{I[.>|&wk`>ϸi'kX$= S0x+Va*۱+X%3+ONLPrYl8|L8_J;}ǦPlF<^_lVO4n9܆.%&t _iÓNOkNd!&P8<ɹ{,+~Ɏo~Qϖ9D0g/ϳ._IIu?L!z4쌙(l2{f؋^/3]*TP]TvOb6J,&\54)G{V0 [Ge$gAf^ @o:rNkjX\\=Mmv$.%* ,7S5ºr碃.w)1-I{| tť+h\GIGma p+&#tdN32LfxJ3d/D䊁=H5Ս9o\lJj6\~Vzۏ-nTGەO1kњ׾s{02xw6c~.z]j(E g1c{sl *IJC.B (_:OorQdF'tM2x0t1#5u 32XݸO:^OsF- ȉU_goWxp74" +W >9Ɨ Kc Z۔1&rͶW3>>O#E!W͛Wo)U2*Nڲ)vJ;$虹 @[7o'C:*B{@VmږNi$Ыfo-"eWyMӏ"OşMQ46gh;O x=%[㷯\_Z(+JFzQt=S5:(_?VhhiSjw=gkˍTv6\ (wؕ;cX}XUs+d!yvhgbJu:XSr L FTJ @_VKG~8  >Ҫ?zeY^`!WӉ| >4sO>V>kL3ʟ^X$P%>|RP_ER8;NHq'ߧ YDb?zVnNPn7|eJ )<: -F} bI\MBu+a;blv~f]]0z`mBؖ$ty>R5ێ/xZN߻) {ПN3 XO-sQ~p6#SA^=uRUTڎ(:HfJFZ ⷟f"Bj'#aպ/!\I-\"s}khl%ksYIs޽EF-"=ErGE);tȚ`h(-&Pqn{8{.@L"@Rji 8bgn: 餀rJ|NTjD5 qsJ`a(3p;bԥ@*a'*wךu!؈N+T^’%ɣk-m`EAH8/ԛnC~Uhx(Jڹl7[pi}[٨"0R,D Pg~G<sSP-#BZ4s:rK 1=];&yjPAM!;pB0ѢZϤW#?2\ Ӭ c3M6PktB"hG.}I[4҆GZ{}aPXv3?<5a~*{bPq;/*ۤҮ`΃_ +ٽ.Kq^,_*β>2fepF1£+n0Y)/^3FPU؊_9Wu9 Nm#BS,lXmh!m@5b)V9$9ֱ#ÉU]ͦHAē;>w;tmBZeaSn׍l f +?EEsQ~ObK*}B-җNm3[827Y1f[)+Gp,UMInyEC}/F~yiU~f#H/9脱h2ɸ쎓@y"JIB>j~p&(./SۺwrzGRKvhIY=,lEW}Dp]wQj^LjK#@yQ3i GwƋ6l\*S~`rV=0!Ijw+ڞgTOCqzWtKe IOTV,K-8'dBFTmX}/L &-+}yL+JŁ R; `PSbd+#Ԕ͚ 5=+)]*:a`ӈ噤ĭ)}Nf;=Îeц$oa~IPx[$߾kF!]t(i , |/qu?AqMgs_ʼU#\4;C+TewhN*C_" `H=-AYʣ7ʯn7WaZ1uǂS(Q1XDwxO/uq|t{˻jw_I{Υ;k50AJYIІj3BVJkPBSM W9Ǜ݁ fݯB20,(^䵢̲E؏{ B{bN9]55HnCuSy &HiUD3j)+Xc Q=jDX\8WC}U:VہJ-DSɦGvz_mFB}2/o|!a2$V7Rʬ"Q{[J9쳎@; Eou42a~ᜇIOvuB͕keirY#$zrq11>u6DfA?r0@>-r0+̍ |y8U+ 28Bc5 s $(WhwB2bA!NUSZ:ӬlDV0%ToEswpx>_LS-( 2Y$ q I%c0<mJ>,w/`B?}:̒jf1!M[6\F{~fiJqjF/ h:Zc#RTGsHʻg#1hX^6P!^JPl_uwMRZ{p;/4wN(n]ٜm P3NlbQ¶4٣lBsfd{\6K {ozʜܨД3 hLOO 8V/y:%`bXXnBᆃ1m&Z}:`;]$ة_ D-7[њ ܇AvvEКj?v)x/j99I\үC S$ȩWcM2~Q Gq~7gVK5>ya#Ns,HwK))0J;hֳ40 2 M?#w|R{?LS5'5&T<\|GsKոua| _ ;]#X-)RYf֥GF.P@]+:X5[t)n+TS|e \'օ'2rsa[bW{ WLφ9R^P dx3̪9cHA<l7M)7w.%#O,7żk0[ -;Ky(ӯ< }FJY8LA~96VI Ď6 'A :'iN l#X~ϸ @?0 Dr۽!w< v9E $ѵ IڋmFo} CژtHfG`}OPAآ+ O;r[d(6@CH:vJIQ {m] UwCJ9 '*asOUјD8^DB#.;ɧcMU U`IPH}˵"^gɭRj}1jdD5f4$KADրO2bwOlp+';JL,~ɕTĆר2M7.4kN+̩j&('9*-2B㸘q N7} +"eo gpZL0c~M}m8\$!Ɨ'! ɬ>*e Ak-1*"3Iޫ#u쀳d+ĭ>u\LG/`w?Qy/gKU^FeѲ;fր2!/;C8J4 @G=~6ca cua:2HɽE=Mm8KmmƋPt$dUnY闕Ł::6+;;6X@:3 ߴW~  f,Rw[.ߒCefp]pi6"oJŞxt*> 2qSo$tAXɴ֪GIoIqf fo;gFuۣ;T SXf<8/t><~lc'4X1dPmUEPA$hZUnAZ'g':0KўmaI;O`6tGpQRfWϊ#wSN5SGeAl^eb{" K֑쎝?x/jiUf(0Gk&aOƬ2]EV0\Ӡ=(M?7N`i. [Vk#ƪ4]V='0za܄Y8Aƺj; n }<6hnʄ3mEwU)/.G4i3EL^@Eblz!<eRZo_+@YGg7]͇~+UIJk-QG.f/wqa#hWN(w0S1d{Kib$v@F_7 S|RK8NVU2߫*[{m@ٙtp@kM\<"Ï=[rZUy^^ey.}i~cT wZ =ﳎ.oo{:lj)x  FHN3<"զ#?sNo2d/;aw@|dCv}Er„6'vł/5}V`~ʘ+If`ψl߰"ܬ"C<dJ|vΫHrCD/-ȔҤEMU2NylƤ?霓:J++xă]/tZ,pf=KA8b΀)S<A/]~iWӛ ۰Bilria(sfO_{⺜.l%rL񉣟vrk1^zڙ+턭NhyfLȻ$ #Kč_fzC2 $*?j5:kk G]%6FV'|&VfR}wo<* 5"o)է[H˳ӏDHjb6Zܛ HK#f Jc) ^$H}}v{eQ #Yzp`D' I-m~'|'He=Q$7ƻsp( b$ÝqPbWk״Lh+\hc.؈3S2%mMS)"vfO†Esr|fբHo;4p\Zѕq 5-l+hͤJbëT|q<05b̮d?֌gRm'# 5^r)ί˷d'h U eJAܼ} )/Ev@U9+{d;j(-]J4}pR2?3%IȠul\w=y i,&$R.4 ?aJȭ)gH)|KL]`A/gcJ*$=Kby|ôk<; z@ +c"o_βxe0h[מ4srk&F+Mwf Ui$:esN>+X~蜲ّ낧D~sq Oö&A{fm>~&CC{r6jP]=_QYXy־.z΂8υ\_"1Wxخ'h)OBy\_}ف~D9/xWW6(XBOTH^5xT'y[{nd'M-h)ivʼIZHa&Ưw߀zcclڞ\-9)0uo0wzힴ`њW)-qĚ&8bX%Ēh3{8/ٺ):tU^Oξ(3@Wx>؉{%xBvN1/.@.jcLdԮ,D޹‹JEO%5R smj0mP^= K9.Kgk,XuX"]w Yxw;ߠ *&Gް^?S. 5Nm`٫D;xDpvGu&;i:%Fzej(DWn#ԧP\ZN&#iq8ztդ4 sbp^GthY]M{ȶl|0č<07x4aH6 Ӱ$V)B#6،Up;(6bF97ܫ\B+i'؎,|WןG|֮\u~ÉL#5ّv4^ȐԚ"]M4nHEjWb #9ѺnqKjJhUxv5}0C[ʱ3so` 6Zv xP'd:nV[INa[,{t!c-#o+)Y&焤MHqf1uVSʛ7/7s#ß}EwK> m~ƥX|8Ҵ*\ 'c]_#[UUStM8󴜻dI#o[>%epS@$iiyHt'g^t|1&u?'"Wɐ)ͣׄΥkjm#DH8>/ąs. 6Tsk3! 28XDS$.N-G0Vq@FJhrcQP1jgfB!8F|0ivAKbWeMZ6u-Q/d2NOgHYseԳ|?C@ ~J؇n"? $NyIФ7Xv@]IPyג+13CN{[lނxIH #mr`SAkDN%[rϙ0-uX0-!Kؖ9:8znvWyF(P_h 1KC~]$p:~IU{m^-L7Jj跡w6=65^~'.fCM~Y3A8Fh3'NRtSݭOt*хJqUxm)fo-g ( 15mYJ_5Ue~'c#Ђpu.2R} ۮ3MC >iˊa'!{J1N;KU:Zu269Ӡ\Z~ޯI{?@ro m,-˸*nlCԖLʎhBET!`gt1"Y,]Fy:,+D͡xm<ϯz/SB)W08TϿW'Jּ, ^#3N(2V3aN" 9xqoc?pns'h4>=' Ϳ"DfG(~87UjY؇Q}'G?Q)X5Wמ!wܤ]5 쯐x{8!qP0S 96WLwt8l2Fd~wrsWx%Vv7[ȧJ(SȤ(g/yerGsP)Lrm]M%p̆pJ[_ 3eEwMv5ZjhfjE፽k ־eJΟD7B0[8Og|:Ky~FOZ q˃C0bÁ _7vk-'yZEuVYXӄLM$MĭW##JvJ)ʤYě.U)Ч-Z熛N*΀<22 MP:bi uFZ4+Yw HۢC:ե͕%E6K^o57/*T-el Yr \Sg>>(r^4!t&nѩڕk0Js2)fGRAci'C~Sd EUXkk@uZ#/fpFؽB` 9. nnG:sbXy-lLh.N^2,!k5./@|0]ޠSeQl2O,wBl3? -$9޿хR,%jIH?R`ͱd")  Ĵ+r,]s.h s# m}T9tg)dGN.1gꏕdF\К$QГmm T2(c_LWfQ(zx#!t]:ڋy-*l!Y 4M;69p <)!ZU0.繋-9 $ߏBd/&V`8#-\qśLݣ7UxS$գ!UwO.ڑ(9q,4ї4- оU~?7|rV¤ĔGԱ@i| Ws`j 4QZ"! (I\ӂYݦE(АWlS&J%~h+L m( nKy oD9H\߸ ʩ\A8㎓jRV jd+4O 2~YaWsj7fdqʎ^ʰ'b EA cgۆYd=lŋ &GbZ3=t@?mk!b䷁N]|2BN?̇I5Olo%dH 7imfZ(:4R$*S,^b\y[i|ٝ)*?HF&= _-j_9R>*~Eis@GO򟙏9=VQ\lR`gy^>vXDJvPJAB3ouD(BQGk R7us+rъuolti!\PxsY|< w$x4+.D ^";(zJSd^NF\ ]f4)i[K#&S@Y528sC⃧澂_Uh0l'b5zߛڭXN0Xч\ђv\ĭH:;XېB# *Yx{pSxh[ Iҧ5/: LItT&]\?l\*KKJF~5Lm-\ v1^ݧV9OtXvNOLkIx w5>`m#fU"HN7[Ag+)!ޏ6<|g6 hx@2Rrq/ $RNH> 68e{%)Rmw:K+28q#c0ΖNKfhֳǵqVlW%8j aҁN͉rM6ֱ)x=;P&G'4̂@wa3 ^قbdEP5n!?t܆ !8x Ư7~Et0ap lfbr&t . 4?!|AC exNq "oaVZ2>=>7|δF?ōWs"v׶Ady3rr%KPMfuIH?K?/Ye,?GK`u$'VpnZQ(E.×^G;kFel %~%7Ve2 lŶCo |#_dH|亞? 5ԥp@h(cד7]T~ ,GlIN=tPÏF~6>Ȫ*>n%vNY4MIRU1Yue9AI/c'7V `i=6H2}Go_N_TнCcHz57^hF?h$*UiaΌ~wKM,|xt<x"$2C$+A}9=U 2;=i(&v4I܄Iocy(࿥otyvW|"@qőKwrXzKƜe-cۉƔ?wwKc~WTS7>M}ҍesfzK ki3nI92zM-.Eu*жI8ZMj7k"1&-~2o1+g]k,3.gn~P{#OHņPd2G0[ˁ'DL5#WyV܋ax :n a-i= KНmRпSŸb4jkU]l<2VS(I>}7*i| 3!k!ܘBc8nr:fo'zJym Fl]j'8ǂ#C(A J/טC:TF~xѳwg=.% S>Rl{.yEj#`Xp2QG|jz4p\bVBG3l}T\+ o-\۪P"%ˑPI̅q&<=ܹz 'X}= >ĈMصUxpYQh.h0EfOQ8҅zChsf=?鿟_=QG5wE@"> I}+1q)L`}XGLӃ=9v8TLpj磜(כ~Jxq9qi?],=z;GGu.0^wWVC\Ғi(*ÚwFwaVdH,#/l9!LcwUבY~tk$i7 AWS 5C]R](C{1ك*U'miE#UO[E#< h'~MOsm;yy (QYڭK4a߿Jmf'gз+8c$,gZev=d $l:TF:dBl~';$@JJ"iocKGuv~Ьp|,TF{ y=Rw t0%ӉHI+\cMexoUY%b-M>pz%8?޹@aĴQOУFO4 #&os_㛭i]Ќ'9~%,.q({y̏vC^nsJF xSD:^7GOAp^$2Fg+2~oX ȥsq̙X.ͮ9{s]^g^@k?)g7fvȢ\lB;&n)]@ٔ)PHs"%R BZywy4;eLvNp 5mX#Lyy4R..(׵OT',AG>"vbR H(TwzzԵʕG3qK/Bޤᯇ-@/S`!0a@{|pϒ<*[ U#IInD.x|IAtdx|k8}K1 jr3NfZ89*|!9^`&K<) H< OcWp>5Qs?~\db,F2w5iPQ^',4/}XDF-8r%$Lhm/;pխՏW JGvc|.ؠʼnGgw r+e̼Ƞ0dn'I  *)hhS^aQ2*mԏ1t!+eynN\rV=ZtK>VV=]R+`rkU;LUH5Ϫ7!f/2P`Ұ@ٵ1>U0:9O}b^'0Lc}O,< xS$)ڬNo+ e,JCھ]FKez!8+1 ȭȖzŜtRGLهBUp 8@ ` 2`>9JQ̞2௹0cܘ'|wc"]qw\խ#F,KHG`7լ̒OڎGu "q,Y/ 8+b>豎&GCm5d5p);I%[4㾘_}ӘTRy}&gu3LK4egk"H?}YPI<fȯh5z1ق\dMD&IOymu{34<. ok=C}Fh/mz?tk8iSө!׷Fui!k8|h^6';LS#:Q\9 k^>#l!2^Dx'+n# .CC#α X~*^k@0$"r%6f[uO"ҥD'Ɔ"{JsfCn7؄ T8QM8G.+01V2{qȒ=Zy,cL8R侤A=P4A.5)iX&3O95O~ΐk}3F':ghЍb? Bο(/eҤM9 R,BE n$qcOE{Q֍`Gg?\G^/qn [dMuBo?Yyb8ko@,/!wacS\R: ^ v%"!K86Kp_~6y8>GǍ bCt 2/%#S#Anz_QV.n  QJjz{p'Ȭ7:tD[gݖ{8sj xhp"+ԷWM|;ސ[54gK~ ¨vlK(wK #ZMEd o.Myjc`>㺗q۪ڽ)Dչ^#Y@E65R$v6ˌa% RX&{yeΨX[=RSUԃM~uW/Ipô(+}8="N UAVrj bXu,TݐO8nWPłn?b *`K -uBO&p*sЮmCa7)oU*6Hy/ѧlcϟL;쉺Ox$Vo[{QOOaRK[ (k7sՇsGIN';zt2I' ef=h}.pk*7331)?#hX6W(##NSj 񶑂 w}(T`)O|L* q@K'vl/2΋"Oղ]#־ g /f^SOyedYuN&N]Ԃ|J&GbMNeፅcʺVgX@ :H FHuj[8y)F,hYBK؍<$s7CySnjNy GFD3(9y r7T#o (%Gh2Q!{>{3,K#פ/8s%ڵT~@~+h`'AYim[9f֩C71P(}5[q䯌'3>s\7()~\]|3CvTk>6mXX NCiB?Uֈ ,TxD_Mhީ= SK+٬#O xky&( ؑ؅{_vCa5_ զ M}2qT! iF;'-P2A(Ԅ֜^nA0i)Վ/ P(z(!bTseضmƆgq+ [w;\_3AW]AnF^*%ߪx"H3W3+z$!̗3l p3j=I=dO2_B-V0}ҁ"ǐlR@a]dd}WjAzJW^R4Ǜ8ɷ9:*@چ8m+ye?3bYm N7Y+vXJ:b 9AޢAZ4rzAby0rUJ;&IX9&nCQi~j/7]U3>Cٳ](vƀ)ֶ~ >W*{ǓF~1NA>eZ?o:ˤJ}1Ǹ^TO[m[#i t[;i|pz:4(a=n"iᰉS߅cix(:- ʍ'0!S!E!NN_=,6LnZ>a\vh8͓Ҏ Ag JX )wEeC4n:Ev;,.jjEDǂ8F&cvᮝ=S2lqbl*){& Աh.ߔtMX|yL-o=\ʃW0T(/f}ܔv2|C8(ݹ肆M-d'gq Dr1Vqm9;Hޠ3(*pOe8!>mPw,~mP&@k"j *IJq!" S mw;֖f85EkCtq#M!oEݼخc`et*tLE࿭9t:kʢQלGq ץhm珊.*Ů3)]&VkB3\fy+ 6ȗBGMTVCC[*|?9alxbJtT7bCdhR˕T!D.ΉLlG}_ pGb'Bя Tc %2 _ qUѐf=\xW0yl(jnXSKJ?"P9A2U=F/`hg'߲V1O/^lw>VDsa {)yV H8+}"^pX`Mnt 8Iɉl} \C ,Si4%>ޘ9jg#!9/,:+>H}g3TS [(Ku,*=݄Vc0A!kQ@<va:u?ZjQ r5+VA=1iarCl q)R- 9.EHx%` + |=gСsA:O5k.HxXH/TCiy|AEb6!8 eoNц,*s"z9yߝ\qBo?rͨ`YWj/@Bovc7Ћ6.Yyvr8=%|VQf}Ǡ]S O)N(:pS'pA/¬W*E'VuWs)S&#zW]:2Vna3ͩ k—d6B1(?>6$ƳJ@UgufT*=Z3B]~B oz1D{f(H3!M5OXՊpi5E/9-oЁl3;Dޛ ĺ/c@3sF/$; !oZqܹ!C@3LN;+Ȉ< (\Aui9_Lod9IC&+xoCay(ێ'JcUz(^9uN,+Un:\r“UZRxOAmC 3BJϮ@R+k( j8 __ Sc=qUBLSqNÔU2h.3WMwʇ.HR㒔}a9{<rhKhJT*P$zGߐn :5~-7C.:]fAQ4r< AijZJ) F8yhPlp|Gch /c^z+ɦcMAxSzmb44հU?uyg69= fYDl xi! dq]GayޖyDe o`؛GL:65nCrAHPײ*`6"YI@|$z#;L|"/"І7<@RVR,Bo߄96ɘ`MHyҐE N+Tl]#*PoCӽW`h-?π`1?߭m;'m5kGǨWcžP- $:pf!:^J b&`͵qN6$M{Tv ؅~QU6/H-w.v^G*D_iC϶%blQQ)s2ܡW4ą]$sGj܌mo\tRE6P عRㆳDo>U0R4JZ(GaHAm]{:cg 'lÙbj(jK FGiI9 (.LkE?`S (%Q,׌jhSZ85qAwc1z2j`j?DSn_N$D)Ea96?~3]wPoGd ; d8eKI_멞I5 a❷3BD0M)c8bOw iqY] tŪ*:(! :Ȁ 3xZe0z4|>.6+w{/GB.-{#ͥH\qw~?26Wʘ=ly]L& E +(.SLw[l<>2N60MaB7툐op;)\wI|zw^ <RiPAU1K)GȊF3vFq% ڴ$2|m\qO/F.u?ud#- Ď9Dyi[ RcU%r 6{&]6 IG IOaL˘w)]V,`cr<!Nt_<[bDq T%ј8UE,lw tT;&VcZ0-OB9h/gMV|>ڐkz+]R,r"Ch 3F)YM#F,\d4#"QU׫8:_j |qwK> 0x7 GNƠJ,~/JX?:cmwuYCc@w~'C29Jwy{EVe'i*VqWSY_6 )}=_)@sw[ %;Ѩ$4W H}|?ln71+Dl/㰹w⥄"pO7}N|onA*gq4fWt^XPsZ@Owq̭F];|%SfqkYm7C2;i!OO%^!PʃWgs0΂< lk,!m1T\0" c싀t҆DWSg]8\fThWE=_4 8A^MJԷN',>w&fW,_IY JIOTfNa3($d_XNrd& Eq8HQG %H\Sqݚ7ȏN Fpi2#OB.b7[x}xc7xW RȂćǥ|DE.do 7:y-z{NvԖ*=!O ^fK"O["C,q$o@K;|y)wcUg?~]-ݷ.Q0Gx EQ~{ܪN Wg9TxM?eOԏ:F HO.JY=[ "A7xB1"$Kunn94rHQJ_mWT^LCy%-\TF$'/qbFr8 0 tU|YM}7g̾.٣Y4p `EvD 7L²5ю)rԭ336{NvEyU:{p4<ﭨp3%]uǠwCr7!>lQV㠸Pjм*@p|(gw,Eyoi`[;}Ea=7 *5TOY>/0>]CkZGIonJTu:_WN٤~˛mvhnZG弡zt|wҽ SM2u5+*D+V>dUwJS7?Ibob=u^I^rUsg 3,\m@0uGlπ_ #cc l"Yf1:7X'nVR@~o;I雯[R {^ 4quεFvd1=;q!r !ظeة +*郿 l0 L5\K%FXiF^> (\>‹rClJT|jNvv)d4OJ`0H1$yUG*rOkv*VI=6Z_ MmjϫIbaQ¯s-mDPOW#6W`A~KnRa1EpQzL](J Dă\/1kEªw/5[?$ Kт VvM=בarf 8Z7o6hT  _^Hƴf:X7?u1 쿋'Z){0IX^X1K*4Q:l4RBrWd!/w02y^2S3ˑb3=P.~ *o(/ n{q[-u`V#i@g' ȵUb洑0b eդ? 5 Ttm8tl!he.Fs,CHGdZ,+OST&ҕqwgUf2HZp!;/eHAµ&(M `Cgh\.QTy,8JNeVr댙f FI"ƜCW"gan0.pf?pR'*Wuܤ+-?J#•QTq&[)(;6Zsu2|0;iCY6}jNҰEEInP|;NJ5(Jx>"Iݩqy }Ž0dM,P63'SNwԂ]_ XGr$hkO†O^ f3=,{k?Vt2|%s\$w9e!BkXeUA =7|qG崡t}EM ˨AWrHB7)*}3ƔW;WaC7vij;_.@ٵL._.CPi5!77c>ᇲ{ܼY}Q։y9-ұN/S0HuQ1s.)LJ=l_AR lh Ȼ +sJKCAhÂP?n\J0ҝzHS&\3raѼsr4D B# b#⤌W22zbtጭ͐T[t'cq!Z_+{UPJ1P-I3ڐn*j!_Ec{\DlIWG_2yZ'}N+>E <Mt-a>:4_2JELŵi@eVP>E5~m;GhTh&ݫ̞u0'=7}UFWMLєk9I㺔d7zR9 EkFD3s;Լihs^XD<N.'O Yaj/ʚq3E߷\(<:綹`y_{iӖF Dvi@-|(sӴqY]Xsbh^ 4Eu֧蛧$ -]tx5)ϠLY@_$H lUj\!i) ΂3JqSr}9l  ױ.Jb톕#d,كd#UL1m]|ǒVk \ Q/;svyI 6Vƺ.@@p[>Rz>ghXqPTjgMX6{2 XQy]fEJWΐ-Yӫ3-mL&Frhǘ&KΛbiM*h|X43 Ch蓩c֙lpr1O$H0HJ݈oF]4x ;$wL#s_oMNC;^Ɏ[\Yp^) p`w)gKwLtдe F a=@05,KɯpwJ+ 8y퍤9U/"ѕ;YZ*!n&, wUG]M ~'_}n; b"(.,e~>PPQKx Oϻrgʧ{b2̎5E Y:CWz.Q#;-?qfNeM )p:νV"4: 1r<@*B33Q ʻ*t:KF>]axO%nǫ5R OPqA,1/wEYKK|nNi HERmdv'0wLsZ79go=tʄ\D&+Ga ?%&㊞+"yiD(gO)qL̓@&, Dc/Uńt#1s]7''|!2xk#嬓q%dsIp36K}f#5@NyF@y:N⥌BJonET56oljDiaԻEGQ;@d>/*2DN+YhN&y+:OiE֧7Q;)-L~Nvp)!GLs[M @~rM T|J ]|KH!*'^$> kJav/ش sea A,t9m`4ޖ9ţBYD/lKQ=[vgcjS޾?h;)qӮBV'xZV;N# .9@slJn$r.=s=p~ə{/fV?$MlϵR (0ΰ@ &e=դf$iZW߅MgfVݍl~ܸ&Z"IJPi{/\ x*gq+|x^Ec ʵto50>ա%$@[jji>Zdy^3|!dG',? DG "_1i_e^d2v-jO8S8޺Q3B-퓸2kT><%l 4 WN@-,jh%[L0tRNNt3Qv!T)_cY_4wr׏t/y\ҲͬJɿ@X˝ \K\d"qPO!o9ìb}x(c :9:d 6ole-jO:s8?BP}71J3CЛ;!B$$뛼$BGR,kUT{! } 7U>Z~l@Y)EHJzsԤ{G_欛*͘g;?Gn5!"::xfFQa鲧cOQQ͓̈́&P1i`?oIғa<'9VoƑ&~v""W@/懚-`@Hn{z$˪OY5VrـŤ&O{7HWH90OYVx6OhU/j a*@|ed`i(+C63ƋJ@ZG!BӔ'7^_KdaQ G@gp*&Y=M÷#¢SsGQHfM,"!h9`3}: e-x8Jvtgn/,ٰzQ*I{>\Bg<cCUO7"] @xb* g֖HyIn:.s,Ks@EI^@0HMϖ 3 Ò-CZȈزZF枼G5T(ފT;AtƉ?xX194?A<{5@#+ @#^koDpA{YҬse FVI"@d MqG<:%m a6)<Gf1ͬVQLc~^,/O2eR-ȚbE ]N܋(n۝mx~|{|kF0QpY-)lM ux>S1>huź3}*Qf(Ti(J?ok{KBH}؄ G#{+2tB|Dz#ͷ4L cEWO+ wo_MSWI@F:^-3ǯ'_9*2ǾH jb]/OZ =ĵyVRcC2C8k\񲝢%7l,Uh)MͭI%u]ʀ=bVl <3Pv4KPyblqRGbcUFFs6ػ~ZdeEWFB:=cȬǐ"!*cqm ,/[0Zwjs%UwTϦgVYr]kܙ tl_~0XSz)IJUI 2,tiL c0e1z @2z _Dc'{%[+fX.k$.\;}g5$P"LU=dOlM^Zc>sK0Z5oƗJo3umүX8ovmܺ^ P o7V-i"u@qhȬ%Tmc Mv4_\zjO~}v>Д9=X՚ HEjOMUTS2@%Y"4.w O9oK[4# mW᭔РdnF=WX849w7- fVP;F) P'=A] #LXМfzĶ讝 Rx9ѹ]W&$W؇x{/=ھeX1?5)4+u}-[WJȩ)ʼn$"wA^E_ ̲mZ`&ѶjЩ!{AnvRTfꎵE@s@]xKVh*QLg.hQEU` DBQxYӮI4ΫoE7i;^#h|TǹzO\k:&cQUZ=̊i둡Oz[w@KI5ӆ2ALNA T) GhbFiGaɹCPL eO/J`WD"SOr_f|%hN1X\#`3+El۫qզºsTE5U?AG>6%]8M09ZV&bC/4F^/~_*ātT?p0z#BpL pYw20:m#w#eJ39t%݉UGc>-5crM0+$pGJ걣I-QYیueskxr[&)~t?@GnB* >E)jiā.zM_ɥ[́h#m饃;4zMp hð<=!r{%ĺ!Jtlmsb$ݝJa$ vA,|`1d,8_UuN߮i 3ƕv5A!HɇG{Ĵtl0XL{=fO3h,,;gIՖJcl$uTX2d~!CV:|+I{޽7vS>=Q#j[LLYBoLԄQ's**Ř-$,]S-[3!*.p<륓GafGvHpUyvgIոUp<ȧPlu`#\M91;59Ra#!{>*^ j?B$,Ა,vhY[^P;Qs}B90UI@]/&g 6ƇR*kYAk9Cd_k\_cﷁs S`ӛ둷 9ʒ"!o n#nsElhhUSZYͰlЎ)H_3\iC~zҜ}<U{Y:j!}GܳI*ɍ99:8.@r~LN*yu!=>xzi|pu onmУjx XC]̼- lKFp&.+6j%,;Cb^+`֫Sh jY6ayKD,O5Jzu Xԃ7BsES9ӗ%dj Pwgt";: ދ*>EoS<*U-/m/Zpa5k%&wjQρ;gLJ4,4x*5Ч^JCX7r=#ЀNᶷک7ѾzvX\لlMIaŪ ×p5=Oz>RUmhu4%&$(qᄕ4;/H) _ҡʹ0ddr֙\2ɜ\2yζ̐TyILHEҌY8x379&@:ݥ+*@}sӒJZze,k'1>Rao#K`=?2„Dـ1fZ57~?Gc t V#"(<2jOW;=YԼMG>\ThOnoYwW%OWg17B=< H%̓5l؃+2/a-ØJ8c:]Z0 s^&&i,* }{8;-jXٟlfКn3ODX 13 >MO.⏛|DF2Cw>HPsp< I'By\4A'?ht׫h\F9whF'BԷbH0EJNKݔ*QI6[di?#N`6t]LHul*54萌O OīfR`^`,4#{N/WH?L"n97+~K{Z?T1,;1W)kyLAJ!az/;B{1.怏!RN01)KonreяQ'3!ҚF|&{^ %@]s) g/| Ƶ/Nt%ۛlh3D}'D\3shq,Xzk5Lc M0oj_+Ta'L'<- b XaF>ˇ4M"ϕA#k\6 M Y[cOL|bl 4hCg- G.c 09SƸF&4bi7ePtg/sU}{D çw(V~4̟װg#XlqЭ:B<1&XM`&tac_jn?D *Nl6 aCWUxu^>f>P7uD3 X5uDE/9":Ue2 &)a7Jvn*]w2XDXmͨr4, ozēk8v/yy8ӳ ۙ-)F[ |wuN\iK;83h,+dDi Z1 @k:83ȺQ]#} C&d. _fڎ8|)vs^ $4me&WwYkrL":,+%US'c-rx[ R,2c3Y~bx*5A x/i )cPڞc:2rnt#hJ2'",,./A= c[O<o4eh9yu$E12LbֱBkіj ]f=-VVf>,~j#_CZm8=9 QIͱ m~@׳Wa~0a\BSy {Nbk͌g;i|Y3t;,GtJXfw8\՞;s GwⰌ7surm DMT*5F:J+Ѻ߈Ư=[ø:HȟHBX'G|s:fOF?USԈ]:W`_Üpe9vF*t#?/ H֊թqNA_&/u[\kM4.ѳ qܣ(X]nA4=?_N)t%gLι I86/"ugSW8TegԐ%ƥvCME& w պ7]|8典 si>Y|_Zlޭ 6tbf%?/G_[PhOz'Z ̚"RY!U[s  yP W3 ʇч:@̋ifT$[ȯ[$Dd ǀJ>^;Ӳsm`atXȀaDጙEP'.țSV_E/1 1m@6 Pz:n6 į_Qɥq Gl8+/h] x T+݃~ Y4$ZKc4}hZeN%ҹQ&# w]KV=睺 "b@ךM2.ReF^0䶈WQ\"yĀuKIނVcHo \#>pnL%#?\X8 sE"ǥtfLmǤIF>|`!S`mBU_uҽ2n~—ꨮ9:|CNۅ :z?7YIm$<4dڥF@CX[?/M?qshJ )>Dp/Z(a<=؉hsRQr&"R[ul_z@PvCθ7í<7pрb4DQ #a)g@cdfOx5D*ڐU, Yk!&| :} ܮ*ta>PvL%k5wָWH.=JIo겚F!t'u`xħzH=/ƦpDQ>,5#W&A ;ײgs5:-2OLIk/2IuI AWt6MR`=-KUssGj{mJ=)USq>~IP9@ "uu^qhޕ ղSXiLCp/Jxrb_A $Q U\ùʽ]aT}?^@6g[}{XW b p;#D|a>qg!Kn,du4-hRT9Yob\{R[?؁_w<7tEov/5wS1 C + kuS%RtqVu%-AFSխ%,F{ɳ ^sC0MMZ}l|tץrT266CuLdN-*7ӬA']QmqqD=k[17gsXLntMG6}lR"yϑHTHof\P]R qPdH "쎭2!æuZįF ㌷Wmd'ۘ7~FMȪ+?fF6hKH97a%rmDa= S:=r]Z4=ko9&/?m7xmkYf OBIl%Vc$‘9Tbf:{@WԚQvS* Mm-k*MĄ:nSdnƏGQT䣏7'Wky0d C !ީ74*PnNH="?QM,7dPw-wM^oXB<˿*־L)Q#XtyY&HI;t[3NyIJW_%bKe&e=3,|wyiKRށm }k2m(G0_挮d;aR@VP}=G[v,ԧT,FωyO"ʘ\+!E#_#qhskZw9i= lKˢwOR2qdiak%qOUЎwyj.0͆~`ElnRB+7Fz}DƔ㔦o42 SSӹ<֞i}/A"WPw_zǔ*4l 6/$EATopHzז fہU70&@^ei,~de'vYB× C\63Vݳ=/fb 8=QEwʙU+~/Jntג%JaXt(")Ռ~ Z&Z]6} Di??b fzRS<*Q*bw6&rхU-y)7x5:*E\D6{݅QkeΊS-9?ѱDW ѻ?f|W4AUV^Ñf74YwKQ<p daņNrDey@eJ ˖t õ>de}Esq'/z=3,tJ MfJ+byOe 8J}`:Y O8c*dݘN$7(+ſQ$D,Ѽrm-v \]r믓EbRCQcשVxbg LD4wÜ?k~շgr%63Xh6M*x~ν=ä\t 'V%f0Okp|51HOHG%gy)l('m-cv1zDkӟyGuC_/Őh ;VP%9'`:jѲӊV]#, cO]j@FFp:2JtQsL(5_Z]̴‘' fq@ p@spf3A⛭IY@wlP} ͞ӪxmUI&d5ňA&8!*  }U @vmSRеFl).e;|3?K3vK~,ߊj \R%JEbTFu I5;s7^b͠e :yNM0 HJ]mc_Q- lۗ"cy^p.SN\z}C ]h/ٜ(鍉QJ,l5FŻv۲t?ᡸôYQa} gwtbH0J)ATHosm^SW)+l%.+;Bks)yvqo(?flfW֕yKY݁am\pqaW{NCnT~Ĉƺrdoxri+ _k*Ҵ.nW(=AG5DH>DA*UR'b|\ܝ>WHYM|>##T.#ƍ=ZG /f BYj>=e "%6L^ψGUX5Nř!>{7(?wYV[4Թδs-W[LrVc{siő04 :Z9Iew@U V") %n{M-L| cTCfI~NFދ]75ǿ~D- 7@@|{Ak4st0I2?1)Vma&`:gKg[+PK.Ŧ.j)0bf6GY+% l2 #ѧн?s9 g~G* bR𧡾<#;rb4hǥ9aC×jTRM@`\a^M~qE*q窃-ykUFQcU@H%)5o("esf9<|!jJcwʊZ]$4CT$`dA&SW5ĎWT|Td/?$M,>!k:woS9#Bb~1ґoVeXh;-=;E(PłiY})Eܒ[ ܺ& 拉{ᚾ@,RGk]WJ?¿RbFRS?/3ahO֩v5iDbwos0+Jjϒڕq`-Y_R?ق=D]Vx ޕsx1"0n*c$/+-gQ~SfE;W$CR8At* Qa#]^f5$N(cR'+8$, Y9ȃ=(5?Mۿj*s@i1H˵ XF/& \I02 x^o| kܬ|._7(^v3װplr5!k?F#[hx$[Clb5v=lt o 7H,$wNo}_L:uidJ{@E=Db02nW߲z9[p G2ZOK jr7옉?HDsn~4Z{WJ[>Qm>AX̔:7&{woYIjB%IfvQt?i) jJvA0+^אT59+|'s¸D΍k:g*м:fܤD3@͞[-|\٨8i4U6I(N5ursg-RE  W@s;|};gcŋW l#6Nhno-~"ך VC =Gn4<oizDʿ*zZcLZ׿I^~9w! U^9~eʖk5 eᥑxq+hnU~ o'ý4 kV[Di{R jD)A;st5UrPCoiS)r*َ>o {[yG@DӨثTsչoEldg71;,D~]#8_H^}(ⴖSOEc/:S] jBTk%dnAfuq ~㎄E'#(m`Lϫa{i )3j[D׶_Oƹyen%԰zI?~kҁU7qn#*ΨYFH$_ j`[q+8ٕ~|Ӽq4>Fj^'"j{Og$&nJc)u'fb&\ `Zr2s+AL:_ }9ښDͨj(7#XLZJ4eCd58THL\ǧnr­-RTUHBx #18=עLr4R4[i!?+vږ#ۛ@/-͞!'e1_Mwa6,GD '2r}7:8ݻ p29f0`Cz}ݒ߽Jzz?2d՛Tt.eAח-?0kXL9yAWd. OUZ=NmnOh[374 GIۑ` $R֑H|e|UEm'' Qelv4fZ\j3EbNY4T$]$7U߉@FĴbbJ>= 6 p%qIGǐ蛳[hp3FEJ-*({`HF3/0/Hz7kYm!)'̝\dEɨq q])٬MSk"uA1/>=>z6\rr5PRj FߥpW$s:nXhp!Mrk/ϱu+ƾUJE \PK9TP0$$B|gIQ6IVU:vAir7ovP5^#"+7=c<-Bg~Tԩ*;'E {8?9ڇ< 2hTQ/̣F . 5ŀ?ӨgMfQyD B)?nZD_^se`d}}7g "j `֐vT9`.8ÕZךXɿuY"?oϚ*9Kr*^6^_Z cƷJ'J .8Wjdcq:G|!'̧/,0Ӵ#6 hoaƠrwcSF}k=OoFdP>Ogw&?TCQs!(+5Lɝŕ[Ei r+L`ihkmU /tӐtqSfLp▊1V.s Fkpȼa]~&cKЩy aG#6V0.0b'{u&AJ\/bp{!a"G3CKPDP><9*O2yS+n~f.(R%xy\Z [uЬK8f5xB=oV[;iA/ 174a|ruPҍ}h8>h(HMAQ*)l=ZOIٌ܌1 "zQrb+Ma^Cʙÿ\,C>NdOkBGέ$h) yl>y$q}4"tM2@,SJ*Y-׶σW`JE/*$~1D@?-ۼk^r)Uhrm\3žNNT+Y,s2J+ Np<]Ѓev @KoUkX|7?̼(g7zB2#Еcc;RV1>-{ Xm# WF嫄.=>so0獎#&9 ե}ϻQ+$ɿ}QZmr(inƫ(M8uw&$|pG(]xV|2㟖X7&n[.Py*!G;o_w'yG\|Fl- 9rwZMV~fhtO~i$T|AO:z݃o@`QK5w9̈́rVց8>y't-˿Gj6<9kUda&jRlb3e6s-G%ՋE].uFoec6T*/ t\=H}:8d1] ^Bl-61>Æ!Chh|bUT{=y#0>ƕtn2?YH5BpVRvWGĞ\g/1/-{F;iTe@ J+'~ͮ@*@і(ECӻ :YMTpg .ITMP\Cn{7VQ`&-+$xHs~b$lY  d:읟 Ŗe7.}xRJZY^Z)a{(.ceC1j ;r%O~ǘo5|krE9('\0@8-.lɖI^7ick f߯&(yOݖC>V`ku"{HEvt6擡i5W?u-^I2 ~5ʥ1dg>Ζ,6VAR).3dbɹTX!32&ܥ :9H=lkDф$^/e,0XJ[oʮU|4kZnu?47qh#M$Uˬ162\gW_KK/n{CwAHM%)Z->[!k/jU :7җ8zڲ\joZ15Ă.VPZe{!ÇKPRNpK<$D1-/ F%߰\˼*()xU83Ih!#*~{6޼Z`%5e"dĥo ~Txx.*L Փ5OUk d ftnǚ57!I`Ik&E.ץWfBI;v.m-J3|A(IҀ'0^)1Ƚۇm;vHȒlPgO]ġ%B$D/V$MKf!RT#K81|g|e|œEMx˩FLH RU3WE#OtF'H ++{e#=PѴ8̘@Otg гIJΕv}0 lQW>Pe'N@&S@U;McS7 e)r/?e n&hU%GO۞G59[[w1ܥmC]V=b(DpxF$ XVwbGMyiVc;)&jAy;),[wԛk=Pmr-b ?{tRA9 \Hl*cúkAl.Gm=PxsS<֍H_fdV?)[Mć8?Z 9.mu?{D=FO i΄p=:Q0j,'ۚNF"|yE/yx{e (2t7ZW E4E=&V(hO10Kf)@V@b<@,A~1ǑaDnJ1gS\Z'渪lV7;. jD鰏T 3EAm&hmbr_Q//VZ#<>vI~y·;=9bb&ۧ7৆ALFтhRkzt[',ӡ:Z"瓹Ic P8>ȱqȩ&d &K mqDA@i$zhp k{wA:z8Mj>sG)K6SQP.(~ߠ7"G\PV:p@;%|,Z''#]2COR_)Tag=ӝߨv|znMcpZyoX'G C3!J: Wi+aFN ]Qȋ5;vŲmB5lŜDμr5ÂJu DAX~MG=,WaDnS`XJs <0'X9̇AQ5TAxx;z6$ -4Z{o<o~WE#p4MX")H}l$G 3LXc?-\M5R7A6V{Kh_ _q%BhA?(KtQI/3t:@ŦxBؒ2x4SF:惖1Z ,o¡E&Pξ!&`nr5 &7c9KR-M&eeA<:whS0 ieR `:< `҅cdוFΒ3#PT>7q\8I\jSW~5EB,+3gi?$=Pu%nWPv8uu׊.B\ >\UBQF8UqO,<5iI![f|VDZU!9M7)d'|p$` C6/68]m {7EX~I==>߆`P}O5@dbNU,zyըu| /:(໦M012Dsp:yGk$RiDF>u+-:k N&Y_}6knd3]iR\ gt/DG%"b ]5xQA3 D%5[>r4s_֞/4 uwQo]dQ*}4!ݛ9[ uHTFv;Ľy9QưN" j¾ ? |)/E21ՍDR ryk!YyBxzgl4)mPŕ?L e6Ij `K:$6KSrz熆Usz_r%m2=|%H9!֕'?dN;x(Y^c{;pM`e33b)[' at 2):>)n1Y2}nht0WCD~-7nc?3f e+J#W1 /3h\"4fL!L薰 ]h=9:ȤuHM3 ׼wD!6ngb^ٴģJm;YeqYmZ]5>/!Be8-6(j̜g!$F<:-hvtܪyB5(A6v=@VnK0\Q܅{4T-LklJ0HbO)#7WwbH;63J.N)), Pri%[tq8&f=֛^)P)JTp_HQ%e@wvP9gx*FVLR)Up3ҧxo 3$ \Ȅ34j!C-C?}ZJž|{m5nTjj9ߕRnD=˙o|I`AG8\\:xi_> ز$LkjOSmYIxM3+mJq煡pv-`_$]DZ@,ϣ\I>n:Uu\by tr`Y;nZ(%ɂAiy)6gVFV!أ>k~e>j_s,\+w88 >iOdZ0/2_f[G@]k9X}*Ru>d"pc%S6 !3dHA؜FkIdִܹoYEuZ}0J,˾SRtLb/=c1U 'C6GB1O)E6R بc Z=FS]y[?5Gά~N]WZkܟx;uSg/S~<aFؙJ=ƯH- 6'lg&!ORDgΞb_׉O3vN'8fdVBT }tokjg z"bT&eoR fQ6GHUxP /ʐI\m`6젬eY0'4ݼ㯔D"g0÷~++C$c2pz6~Qn4X la3mx];<+ Õ%3ՇPE\_D\<}od!!I5r=??hz: OT&'ڏz$ʲ$- &A~hպ@615y,e#YV4 v` 50zD%:ڼM$ Ieْ.^Ayc IRH[k_Ae$OC8;>p<1?.ԍFnfOs8updmzE;to&g~\3*X9!n*wYfM(v` "ӡUڌ.k^͐*s0,MjDX~q5^~:Cq3gS #w`7=_ɫSS0fېDi5#͆dk/հtVYxD-jKfN}`=DgDPjM3.CuWv0Y>S/Ly c dRòm9DeMm 7gfK -鉏h+ $jV.b8@*m3BQ}H WV3ӯ وdp?#7 (i18ckIjvR{} !HTd*dg[RdBUaqE}=OFB@DZeay=tKt@vK& .S{(wjqR%iڋ-w%ոqlJTpDQvKaW_ -KC j][vJhUy{b+3)r%D.f t̵ `5Npy\'&tzv)YzGzl_~֌!k +Nqܤ;5kHҠ[]MA&qM_ A}>bZAUS̃Iِ0p0 &p>Ɖ/kváe8vn0iD{ DOrO<J>bj|5K1brՖY Ca(:CKwoOoL'yq\Xc} Qa=4aoH*!TKHpAA"||ٟ oZ} KE MFѹCXN5Uf&VdYF$l9}Va4Y--&EyK@ŧk͞Y$4P{_ يT56N>Yk;rY>,nRdR, f!-]Ba]@J}-XRH'Fj8:#>Vr~ Zk‹ōȯI@RZE΄QW VgȕYb3a}H?k5JοJB1"ZO, gyL ~S#=8o8l,Mp~e $H$brj?tO=eGe(d )qq-@jQ4D+I`& @2đx綣 ) 5A)ӽ5764+n*;&HV,=.΍vͫӛlnu#[ ?4u`xn9tx2ҡI 3rKUSϔ{w '1XGD8XJe}:iKmW@?1n?r\8 OlF m׀: G(e0؝?)/īP& eIM`~$NUl ސs{c~̨f8* nѮ3򿇀( 9*#h`z7=ϰ6GqFUV6ь#JT&|H3F)ȁ?$澄?zyVfᴻ"gGtDY*V4XSM,}ԚЗ#Owb)@)p'ڄE(2v [e21N)0a@RRBقLi/Bk&S'BGĪ!l2:Mw yIDO}P~)]C<ҟKB0?38`K^H˷ki 7zdaX̔S,-'ϡGR״ܲ JvAqI N:]ka,CD:CJTj>!˖*Z'uj~z7pj$dςqTkd'9'{]I 1H|a:CTW=-;/|k(p5'~ Hi,sEnPRc4?~Al5""nN`÷@ Jc 87|,\:ӳ'cUfM,&WiAl?ug,&_ ']ДpѦРe?G :Ks7x.c{lᕌ*ɑχ!mu~3f%Fx! zt+PR"K#.UtPJH+#٬.,>ab)?;R X\3FAЃ,f :` ө#&՗;%Nt1S bPb9Z~fIR<0O.>B~A-e}:8ڹK\?٬%?l ]Gr{URKOb3:3 g;&asY:m?yG~&$7B һri)#iUr'e2<0Iޖ*1t(n|c{Hۃ\7}rBX3 3|LlnJMـ(3ܗq[ r5]s`J[zx<p}`O!? BO6-:EEJ+ddLc2u߭ά$߀|QƔa'7~u)-b$?=`xf"@ׇOKXLOsntբ6}/D->G~r@ 佂^Ȫj4GV)ܬIs)5? (B(~ҍA(s'u~4e߱|Tg4#6D+ϏTWB:8v?^w-sT;cgsgUٽc'MwVh , )vm_mt ./L+6D_nͫ7w %Q!Zٵd`>X%b#Z1Wˋ6%DnJ0%P f3[5GD2:#@X!/󽲞?0U9:rgO@u"[e~I_'1f5ʄ{4 0L)A%9VN@-׻ {0[Mj"7/G)R$T# M36̌=Pm3Zgap@$Htދa^ Ir"b@uU.O,Qi %&nK}g=/IlnDKi>|;R PMWMOC tX//T|6wRaaP3ȫݳ(0qseU]4wInknDVo9s;5 UYiW2;LZkpBzhrV9s1e4hqy{ E$*ϒI.rF =@qwd.:~)ʸsӏkݑGkԃD{W؎ZuUU==kZP.zޥlوl:%kX-n;g`GbxCzȒ,ﭨ2@$ ʧGk/sIgX* 7oڷk)^{ UxX>v~capALe;/1Y'uNT)ˢk+Pvvzp '"x;C&g`G$MLV tDžb.MAe`_[(i1,B+7q8r8FP{,`5pB@'yƞXoCSZ';[SiLB)6#%XLAҢu vӂxyIoPoz=>Ч .ܼßK3Lxhյ]gBk /FZґ 8 oB,xYI*s")5;k@@BepaWvpQCNt'$|a,AU]f6@v$FY| c±9lD]Jj2s"Խ!Sib^"$3- k="!OVN">2%rs:k9'fcV>Β_5zT`$R)-׫Z7sndt8J-o0|Z mT-X2!1|RDhnu&ljܬ]C^Bi8Ci?Fw7evrFl 4*>'Pn!sawO%X#|n*ir?QEI_nE&Ә(ID/Rh{XYz&%& n[+PGKHdPVZo 8 6 ҈RSU1Z2)4\Z%SZb,@X'*EKNu焴&fŃ2Eq5@Se?fK{jBt( @4BmKsDAU7 ߻L []$r X?L!oa$YAWw)e'7 & KkSϟ o@H4y"BP1VCGg;xThz֧"%񓦿>KD;x?c1ωn!0$ᕉ]r,>?yNp코xpcJu;moؕVpٛÓ_3+Oj\׆ ~KdyN@HG%"b^Wc@oph9 yPcxT7F9G.TOСx !U-#GSh%RJ2sMȬ˷gyU1 ;gxPGaB[P0Hߺ꺡D5|!料)`u1#W S;angh'g052E̛[ ri5r-'f}DCJ6"p _̂?cI@:( خ Rb,W] r$Gŵv/ɿ}37Bc2kkE>PiND|ٹ$꺀?P2c(?sd/ ˈҪQ['I#%=)~B!;8ߖO> U}!X92vFw.x€TdzY 1JYWn-l+dgxh?jqTN,9v)j)pX33xM+)p6i}Hwm[=+a7W}ߚ0$Xr,>cCPO7=~}#!E)zwlU 8\ E:L)IA*S5L in1<דi {"ʹO&1.U@ƽS|4*&wGm 8m57/lxVKLF=p 6iq@g?ӉĀr?*Ɠ}]]2NsBV@&}nOyz&rreV*e(R:]xNϪRﵶկ HuYfHlKm߱ @<`pA06:9/|)v Qs,QfQ]칽\Z>[1 ea8(SwsV|5'rR+ E1[JsY']Vs9ȬF )[XUg<`75'nm-GnfME"D7$Jz Ey7 OiJ*יIH|™OŪ.\x[f>yphR4܄YҢpF@M'6N*t q:)Xcpqdɰ|p`y3mY2>'&u6:Iy(_XK~%Dpr?|٫U>*X >UWXj4}j8>A=͉+͎^!L5m3I~_4)8=vk9!\LJKZ^raQ]?A,~ gyivoSGi{-QWe\Z  +!j92(JCJm:%Oظ!l!-Hdpsk`;h} dvDsتe̎QIl zPϖᘄ+L|>b\w\RYHLnW3>D^Q_ʦ|coٝ_¶ɆTg[P_?yXS%r~"v\͞:i za)I 78dNh;%'OYLh _1tз>@N! n3|* 7܍l*(?W0Y? u*:̀4iJ-TC `dHD4X?D;%SuKb1TOukhזc/v5D6]'!큰|A$?mmZ&/lGZ2Gza;bG^n $@ r rs%Mela ZoTk y!Řd3BL1 %"\-bUEJk/20kLUy5WvoGknt(yۙ:U85Z}w70}PrM0֦a^Ax_i!UpEdҶB7e-E!&f]cuTuԂ).i(Q'Xet>,͖#/ҤNw*X 9Z +~ RS] J7Aン(S)b6Z5lcilG:Sw9x1Vg2^l+*KM*PFKᔩ*\CzWwpX=pYZ/*B|zZ{}OSX){%ɴKK ȎR L H7a2U?[Ik;17/6#@-|Lv_,g$Xt1eA3"f$ǺU(ԷHқS{ N; ߞSUPNg >; d:&kxc:  4@hLgr0AI) X/av|!o!EZ-?? <:h[!Kt-Q|ʡp,T[`'0Y/} fKkgJ}|Wgbx}h/CޢZ8'#}D5>ғMsW(\O#!*`;$[9zc "V)dА݁wFVQk;+>=t(f aVF;!v.K{ + hh ղ3qHkQ*6w%D:[Z/˭P&_@?3t~9.ԟF41raٵSOխbb?s\ȋ  j$XkS Rқ5mPW:w<Q=p/V߫&v[16 BCYj/W?5_z1"FӃ2`{[k 8iʴPB'aTTyCtVg{RnS2^S\"zURy]0 OuPo4 "l`+ml#yPѧ@2Q7]\k媱!+]Qbۊ#Do'\Bcu~bW,A/}"m|S@4wa zb߁V/r K:M9ILP[fR Nr8Ӗ^s[?Z;R-mӞwY*l oR_j<};輒28񾸭Hz{{QC׾ +hN"-:^;R4!! &O *]Qʵ< \ 5 FzPя(sRsd\:3dZI#o̥*~qc:Hˍa6\Ⱦt50~+a0؍D1J8; PO7:U+`;)w2~0毈 N?nGtʳWxg$[qU%NWh蔷$RG9r oNř}<fJFםdUM^ cxoxJΰ`QYymå;T<>oz<7"K`Ŝ5fS`g;j'C A@ kYaRnZ/"{g$d"&"Ƃ+f(2pz=0DYwzr"[O >ž, 3i笯 >"oqa+C :ohDf+ܔ Wf^$]Բ<;:q6.SuDe(8C(m ,e} e:0ތw݇~_Q2Ȳ*\-m/fSC!Q0 `.Xs1Uzh/ьkb5 qSZk/pD!;;|wxt/oàYn>in42d xEQg|n=#[]dL$]3Y扽D4 :+ pr| !EjnN!TT3Zwy{Zfۜڧ*Ѷ'+ jhT!}S czɥz7&|}kd'պxPcܤo28C$i%(1\ H2,P5_^M3rLjO{zs 5+3w l.)AE] }L[݃4lh[9@~Vo8J}Ȑ8Q-HJ%HQNo1e7_M_a>~i_)8]J&/ҼWk}wo;{t;d2\2O8 ] "@BE^᠟R|/D?q$"gQ6X iە 0@l&n!χ * %8ۂa_[q]bBtL *}[b7P ? _46w jfkE"B!1S,xn/7ݑmHYmUw;?< cF.!.?RUB,E2N%څFv %Ivx0 &*¨6S:`(SyI`{H3G"#ԖFK~JQaY\Ұ}oVt &T[TOzZoDdGjX$~ۊbkZRJ*,Ė=~bW se$l0x>w^w =oGٽ,,,tS>T42RÛ|qA!40hаmF:@zr?Ω(ʜ1HrFp9Smg8po@ɕZXeC5Υcd/+2? : GQ)\F|D[m L BG=FXD-{DMd7+TkLZ~>+iZWgΦk@n@^Rv 7a*I '\5cKU6؉BeQf=f.шqZ?B@Bܸ4UǑR:v~[:_ȫ1wޤ8m QM?Mi \;h[=&p6 FʒNhV.F:BC48[8M/YMr6]{HYUQ5rD;Ck~^2am-QtҫqKqxڧgpeoIH;/H'm7ȑtH@Xf;I6y$nֆag<f~NC'%9s'\*vuMygez=$=K D6;3T +ch^1£]"#M,@WlRbaL qefK!'V^l_J3S{H 8AǪ(+unJC`Xywۭv#H_0}pUO ?"4]A_!OrWP$xN"R!3YeOV5(rKh\ƹ*^E?=#e<$[q|saRDᛴ0{ rխR` SJ1XP3"|<yxOT 2H(3FkUNlEM:|tFso6sp,>SfŔ{zo@_ Ztװk`Ɏ5rzSo魀#\MF`-d^6@d kP)6cJ~K"=QYsx5C^BsNnI9c}}?hlg g_Sw>/c P^׾ ko^)2ǜPSܩ 7"9Iƶ9G WVn&)u]偽֑Qh8™n,9Z) DBl~e # xKH ^zLx^YA/QGp´*>@V,x6>B V^c@uio:2 Q|r=gVMfJ NԐZ{A wT׬x}YGE#XG]qϨBN[^mev׃pxpCq([Y}U *Sp_2!vLI0lʎ{_Q$ʘc lxp (y`Q,V>AW" RuXGKc)sjrND"&nNiNT-[&-Hn؛%=\HQ%2JH q3$pG)W3/F/ =S'wp֠:b !y"Osl[͢Æj e+|z₤(qŷ75 A 7Jٽ|E1;uBhљ frl V' 0bpTgm&IKLV]9Y'5T CUE+{Wm3O%4==`ռw^- 8E('`oק69N%kS^k=#-"kzT1} "2R=R׿A["+)C12&vg #mB\]Ӧ?с-aݶ Q@LDeәE%W|H Bi^ZOz C=JPa _I !8%mJ,_-& D4apvnvۻr8S5}s < %Gӭo=sSb7&(2Um($$v =mt4e#)ϏnrIPkft(CP|^br9:rDq` ?z \`j2oxg준.0?C?Jܪ  YtF.-+i`N_iW۽Ěi&h_s@xxߗSKh侬xI>}IR#)L J]O.h/ZSeEN6g_i:ίqh{E-m(I Դ^}^ cӟ15lHծ0fT _uI \M!K!07@:^Sc2X\VĢ P_sGDF7:ʚ5^|yWz\2 H>^@s3[lCr6 @VE =& v0aHKR{'˒_#*%GI<9"]DS%z#YKx?f ,$\2;G|ۉלCS < _4S0跖RX)ѕ@dSNf[ RxAPqIVHB +-kMD|vq:4aJ^%G\67ZMgM!x-}N<@ <-?^fkK>!r$PZD,]qwHtvM:o+dkІ|/Rw|1%sN^ޭh쯅GTVܒTKo@ *UAqt# bT"?^7;Xyz'0)PLȷxN=QC\ŷ}1b>7rVdeG1v(?3aVef7KTyA1ڍW1cx'u|ogL2XTXsŃ+n-ե:>/1! K A@]# 1p-,؂ڧ<@ȗ$&upZبYz:W9DFb6ѱxTS$dm/w"4,{ `%jrc870 YxFvb[' TD&U/Z[ ?Ь@c*_gĵd)]NJ@Vt菟jt(΍a}:lg$i kѭyOµf װHN>pB0b>LJ!5eªΉMUI4\G}3-tHpA!{$oR%)ۓ$eA4.!W9 e*JŁ:>SJqQ^t޳Uq>ߖ =Qی 9h ZJCs [Pq\:ʂV,FeXĈo7^!~NN\i95J-c8c}Dt>sʩ*ݶUi(rV?Ǝ!4M"uowg}yFR/:.|A ViQ([a[?UɾsOar:6fgcDR}OZLIf@R{yU9hȒnnY4t6=cQxؤa`VnA{= -𖆬2Ǟ##;ToDK~95ͻUtX@>dg\pw2XV=j7*ߟ<'n#CB4]hYqX4h4G.TF+bI̴G#F;;-!7͏t9"8z`ݽ`[Qwtiq̉K10#liç,r͹97 1 Ei˯γW˅zE?p mۋQ%rs='Bb>}ᣩγ 0K; $NZp.R&؜`{nCxU<1 /P'1f"C {vIM_{ C1:Ѹyo™~f}⪓?Pk^pm}m<Іaͯ*N2~dvd! J(sE3S S NL NUWS% xxm2_ɩM+/@ GS>;Y(| U Ny?F6:s |D~)O; 3^yG| m CA©B{9z.v1ielk=]ZP?[8TD`coS8ǎr&ׅ4kdƒ R]9 l^f'Vі 4vs* b\̋CpuH:*6ݏ~{F> x:,ziKǘ'䇄6gX%nlVvɰe@Mh~T57~Լ4H0d dE٦T逜Id lJ!75<|3Q:b~2nO'*qg~ZIRB (q,N\+&Ύڛ|ࡦNz%YGvw.;dCW G+W~dq]8maOkz +\h)vRqF (4<l3Dbyjc7^olGޜZy]c+pl1d;Y7%Dĵ039fG$FIԗ/i:㩦fS~\w`ܦzۻ[6FD LtULMaĨQb`|,5Ձq{-{Ш OmJaRI9XQdUatrY}8peӤ^.,x mx_\#1IXlZs$8 })TIĉZ3~ `k1LCJjIQW, 2d7>pS9hqJ GRL_;ggnW~b&8QH |+.E@abs%NL* :PaSCg&e()%Ɉ[ք]Xv՟ò74X.J%Ja$%J#Q8 -ۗ2ۊ=BKyc@G2g5Od]FAwkp9u ][WI}w_j ]<).2 B@H âKdb_wH%2_{<،̱B'x4 }h{THzΐ#s:Qlė'G[ yb_ 4;Jqc1,-$38h=!I?ͅf>JAvv}Y`A#i_SevZECCIK﹇tz4qZ?]Ak?j/xPN#=7h >;%pMh1?S\8iR/ˎ sԒhA ~vT@NlIo¤eqiSĔ'(Par 6u u ݳGe'#3#; gL2ogO~ڙq?_8pҏumJ? #~Z-J#[n,I*=@?_TPV}(C.nR"nzgى¯%ad:aڇTnGIFy\ `.srs }-80eZ$#,|D? -F`eԕF9Ђ \k>>r w{)r7|wd?ɫR(AF_:܀U CЍwu7aEiIyR%_:m;iH4C/Tue۲s(,?]b{"' ـfM<=L`)^ַ`S/$k2+.=KY~ԈIu| W Fo4[B~#${B mqgEEڸf#ti#_R.*ށuGF/ZjcLjVh[cK*͹$ve癅@ݲ@}>C,MJl@@@Z,4եAvLdzISyM~+J-y} @3`+)I>47K;n~4GjI4wTMglIԄ- Z62QD*C M76v8s+!! O= /E|DgttEwRF^I ^X@ &v*B%'DG|URL AAEȖLR ogX Lj~E=r9N +,#ϣo 5 ‹ !V]sMq{O!cL!l6fAmo b6sv5&ytBUVj;2'YARb+ω ,(4!3MBJ<ҙfV5+ұk;7IjNU:ДBX#Lg v1/nViE"YՁnwɎew+zb+H_ә 웆"h}˚¿』IcX^ľg순XrL_*0H,ʓNH4"Iܟ|ӏ œ78w>| ZEBF,v>s1Z؀MfڛtTԯA.PZfJœDP**Kqej"ia}\`oijcNAg4UJmķSi9̼E=iWUP~ɣ~wxȆ/d7`t!dQiq@ Ҫs jp/ɹ2EeĂSi;ɮ Tc.Y@ a7ADNX0AJ쾝:Aߗro M9t #Z|J;_j&o~d}-o<ɹIgO4db} L,Z, ~3% hu" S'[6&p2Ҕ%]_nt8ߺdiNoJchE[#uT56k&OܗN}GSQ5"[GؿfC77? dx'lIa08MVJt8w _Ao!W7<КF&_RWM)|95z ('ٺSo%n_EVl9=D%ڴ٤т< 15KֿnP6dm.3}(JߔpE$.MpY`qn0Olt܋)`7-¤O5: Pt0O4%O 斧 `c/KPr p{;1H` ScHrr!=%ULW6U?*<)1J~y}eX6$Y PG1||DLG.TS*x\'\` J"E! r4l'HqM_Dan0^X]= $ 7{ wl >akHd4G-'{ꥥp8F0-B0z uwllQ?S#XϫaGE }+k!:T{~W !hқg^-?~GuV8-MKu.H)[!@f J& HӍM'@8Yr^X7NCZ/UL94 N9:≜TL1]3{}^P_D&T}RS+Й^CP,/e[tĜS!0!h'@ʉLvKIV.{фN>mwAB;3`2I]N"QeLΛu(pz\-: zGD!NGdWHVD*+RoϟT5!c(uS!,VIt̰hudy42;)vpC7_أ8䶽J)&3kdQw0Aϒ^?1[>I%rń@'zXc/>WbŒ';Bt8 Wx1'?vN- hdp^'Q':{AFLSB V|khLVoe. t0)Q30V>tOS=YEՠF}r{$>#G7 Ajvs@q /rɄzA7QGKi}-njWxE,: řw.+g:6AP`'xJ"`6)@!ѱa*3~w`z|cc<+ni @̱H\M mly ļ^R8]${}dY1 "(UA ++NlsnL-OA/)_˕#|ϚQ#ycY5Ǿ3~#)q.|YȢB0]WwP!,:\ ͑m~p )TA| fC FôЦ8*/O0 dđ,Pds-x[]pg YK2L_O-o˼uT ՠ*{D:ѿ uqND mˣ!uP7@uO"$:rP^gM]M61XaSO[szDX̉bp =_uC*gris-P")F6L!Xgw %;[//&_j9 "ei椳aEhhT"{m$<D!頚@yRI|8 UZZ.&@ln|p|ڽ2Sf]\d軶*ixw0@y=UNW+J0a; )돈0J>Ϯ"djJ֨BitdI[;zJ.EJ Q$`Jb 1spb)-F<Ï{め.b,=C/B~X 3.!G1i E[ %K:)&=0y¤Rp9840}WT`Jo,Ԟk'NonK=QE *I&dmVKq9gb\.Q_gyjt@T ?eI}D\[ _$g!]W &$/p՚@$QE$ PR+athk)޸Y$( Ky"i'A/ | t-ǎUEZHN(utaQ8tֿEI{IVh"cOAM8ŵ_Cǂo)" m=l[3{S?ȯF>ȕN279/Z4e[gYI r{l|Y%f19~Ћx}p}ŜQfeQLx`&R zP mmz1Y܃[VdGoX.dutNBR"uF9HkLlr^mA!׏O8b%?U[ZV s+>Q%U9: gdDKE[y7}nbJ RT'x!*w}{uTC1M*wZM n%I0T͟=/9.:y1тlMtghϒQ42K^pѣË\.ϊtN2c ^ okj'鼐$O@lѱ^Iaw;j0*Pd_J=ˑëF%uZ `thΚxX|7=0VvB˚9=հ!d݃s  ew5RE#ӻW!j6Ӆ/'S#~`!"vL 6bc#jܛ /4-ln(:YToqnT2?y1% wpE \s ^)M k8=̖Iqmw{7"ymǹ[I|wjER=Y"ɁqZjcQrѦK҂J ۙ hYlՐLdNjyxLV3/IwN=Ռ|G7VCp K41@rSJkIY=l "IRo"ev4z}{vCXY-ul~Ure>Kη*IhꠕΰdORB NHKEO{PEr2t7@%p9WK2oߦw2y0Wnfϋ Uš{LYNmxhRxk \@O7tOVex0T2+* y !B+7܂TpNI+aXuq6?%s L# EY%U􁯁o 瞎VZ{|͖}2Ke'gu7EXqYa#K02@M̢ #eL[%G׌sDOگ5Ӄ0ʓm.n$R aro+7 :Cw-2mjz^{ "y aY^+zr)`R*Ӣ4.o|$#oyd6[;id9 '!鐼B0V&2Y꛲R'()'"狳-YG8KW>0jWQaQ]vqx"  - j'd:dQ1 yV}N ƴNM6Rl GvhzXAw`qmwd–0q$tdEhli2(gw#ԮSž"VelKHOϜKDPZ(mw{&}EE@aDyYbm qYTyyYQҙ-~2\Lζ.|KMٍcQm'E%_Xw h(_ɍ鎐0l${t~`?}T|:cLҞ%;gpIJ{KhXP#XW0Q*㋺q쫕vDեrN.HB^Z-Vϩc1೵}cqZNNsma Z[-[%TEx$2AzT&3)3DHrlHfd5eQ<ſQ)O*Iͫ$K#>RVN w?P pde~"|A؊<6 bt2X@63O#PLatY@'Wf;|Xo1M+s&!:B{eQFh|h*@GC40- ~w<g25&~/GbcJkAzwr!z o B~}%D[IAMw<7Q1_%\m]bTgJ̦>ɧIo}3;kCFF+ 3P V7 E@-ߺ*=+_K;mȪJAXk;=rta-ϷĄMi;sqj߅j_v<7M)xB'?z_(l%I6XvbE׭t% Pt_pPjYGMIXULwq8iu:De8OЙ̀?+>?/[C螀 1~锾h2ǒxP%ܻ!!ڮv#͘Z8і>Q9?b9fQtx^tјQݟË),@坢hM.2 3fHM8>!wD`#.>^H IílaC7?2E\CYCwB'6\DJ/C?N-V:VM/ "YH{uIK5 bLp",~AmW 1LetCNk}xऩR.A7{ʯ#?Dwca,bu Ip4zg Axfv)S&x RfS~ʛ˗ݶ-1rq{ILG5_=lPĒ+?-i GoZc.%G^BqR-?58^5U1 ֞d}QMZؑf0 A&!?d^(B^hh㓮p@(M3Cc/f)'ٷ69/b,,Ϛ`~wDÛ͸ \)%T Gp/NWzŭ_Q|8Պ_5]I(X#?H%r"=Z[#+PkmTÏVN/,0adgc^37|c4ԛQBzDD|36F=S1c}'l[fK|\I-+cC-`;u'hm>K,A"?E|l6>`OҠxtۧi oXi3cߓPs$|7dw~Cb^PO 73b+ #hwʈhƂ :XJRl!A% *B"&%g*TN]O%Ledef-N M(am~G [1908guL4焸IyNX5xR8znUGe%҃pFjEcuk!9>Rpmy5Q蟱O6R*!C Ϭr{ K4h@w]'ѼV1AUHvMOwy ʳv!Jp掭K˙bB1x챨+":-z+[0N+T=,]C5{24UtlYNA5thVWcUYTm-hln{ZIm֞fT'xYsT-%ɓFTB(:uޣhR݀s_S=cJKF\13{7H t`[5XmCBT<:B^7!9͢*\=4妵y(%J҉gOwiқ x"MFɧu&Ğ 9[*Ko] ^t ;tGs U͏khP!&>c{>:@a<$DRa - s*.ȢB,YB]X$<$S-<9rhޛV_e?t{ \=D V ^fÝbBxvԎBcIv刬YC' 8 s .Zt+`4KK' H2ͭjL+-v9V%C-P+AMwD2)>_sk^bp젺OT<Y;4i1b^ /F1zfLXIE|fP [sǍ/ VkqpVbwǥEKZ]_f(tLNce Dj× A8^W"P.fNqIKg~]W")CPLVxF+  .eΤЦ2n[{_lbm#Ӧ0b&|klPQ-:",Șe=b~WsJG΃RmaVc6sQ=35Z-ls4Xg-6R,T rfʟeaVL_wA?v^U_',g,3TPQX*qi䲪[:%)*XOyе8?dS]jk`(oZzۤW9LX #˽vi=IQ!psWƛkjRɅM{fyCOvF$4A$~qSۗ|0 '5 ݔ0y>s[[^ݟA.&5i{IKFwdJ܂q~sHd!Cjk#=מ'#IŞվ@U!>y .#ڳ7/h2Hwm=G'Wk8X|Q$)G.D;N>p$G|k߁;5%Ӌ7րXRP?;rie1`H42'c9:@u`vߚńt󛌡6,:1h=gߘ1Hln o&sۑ^eMxeevAr;3С%Q5J}e:ה)&_!t0€]s!q UsB4EӨHu~tlY?qu,  gɋL:zE\> x~e:,EXhm9]q\byhO?W`@?H'[ ޽rŦR"%!F"z㜘u*Ą ǩ;ƕl7>_ SpM+7᰼y#6a៾0=l1-kLvn칕uOsLkLzض-"7ɃӃ$dQHtzp.rl6{\Qа"pz!jЖs#V58^سns!o&Y#!]ѐ(C]k@ USLnӚJhBdT c1?Y>^$;SKa,Nm/fsQlCK}qIY`,Lq2#_E}OH3tBTE~l%4Hxa ':Pp6z'vΎU+|KQnMc:Ԋ x(v `8Y d W!PRRoHsq8M82h|?dynݟᨙ?O ҆ X0qq>Hz k8cf7^=:ҴwdKN;'XC"iϮ|-toHy*[_L;H<t'ujvWodRL*O[Rq+/Efl睶{GHmX/:Nfh4[';{jXKGVj8nA0m*B {:e=+[ZKEj r.iM,0~e3QbuׯMeEhoe*`D, OWE)&<؉~=%S3L3AXАǻΦ9: tgA6#wHB /ӟ<~ö;e>y>~'dM:'Pm}UxrEIK_4Cا4q"q:x}$쑻LF/DfٿcЮ<(.w 4hd\WTJ8p^I =N|C5'b9M J pUբ^"ԫߕA '[n2OE ~JJRXOH0yswzZ= KpTH ZRP!tI(=v?<6gk=\$:= .k"::p4*liᑙ+V ']bVƚA?hI4R0oȢsG}DckJR/e_Sҡ8vq݆J$LA̧ba6`RE\W#[15F}x|v': NGع/p=ATGi>Ge !,nwyՏO%7e)$?q'濡 رƶ^鐠xغ+ z~`8VdU["*#{zX Y)ξG-&ҡ ƈ9u/ο3SI(|sKǼ/{)G6'aW RBwfm@ĬZO^FZWř7G8uoڶEr'm4j!]B tL?#'ěNF- ux8e(,`/I[Xw=-̣Z5iWZ 2 SOȚ @ µ=q6 %K<6< z!r<܇8c̍!2 @VN{}e~SOF;d$<Y\aS1`Jmg[&rqV|}0>)b29si%U  ZU5eaF wY3XV=LqC}Y ΀_Au6;6jf]KҖ sDS+8pqױRkQN/oUe Ru"g4v5%ԩY듹 ?󠇦dW$_]9 RpUwgt:ظ'Ѝv$"N1C,t6±Q-37^ WR qd+o'ra*7+_~ d6Ŵz-kGwޜq)dOji-]BL*w! ,dZ4Nwb,Hi3 +gGs8VX7͕tެ\w_&sHU&wHAYQsNϕ Q;m)Zp|F-s2uk0GWnP+azh\DKRĬWY  ʺV!dE#u'wúW*\f}]V}T]*pX] 2SF(ѽ?l#|te,6 .M:Rpqءn!K򩬶,grPu(k!!{ZGg.~ gĉ8E$=!]$1lZp;alvBǸuV1#m?e[.G`9q殙L;KM7i\c!%|1G2yXΦu=g :o`U};^}ypbM%P4Mp )^[E xܪ4/ų`G{(?ܗTIhYXTr ipڈP0gBXԳޥ)m%WU߄k3Fv4,d~&;9l)D1'u\@Y ^QNt9<ؽԂ_b R("d7]nnI:T$4uH(  O%a؋y-LPE;ݳfg<\6#~vm~vd>N|,D,]-A0"y͆IOZN\I Ƚ?\eϺLeu>+^t=Y,jjtnKqenq%0v5IXg6/"L 6݀x&l!uaewTPLC2x9a{wA:#:,FIH{́*hiS5>H{%)Oa]|tD|ܛsUn hNYTyYhF1 #Yfǯӟ@v-Ww ʠ!AR0p QX#_Ht* AiI{{O3䦳!ùjƬᩙ Dz\f╻pW&<q.7o]~*vu7[qąG,X#[ATx+e="gG1Fq'L\ca{-w-N=ʥw@ƚt0ۍ$p"@Ws??LSgIXsRM%R|id) i \ E<#_"u\{L#x⟸iiqB9t`{x"FE_UbpN$]?Pm"dz/y7ZD>V{m;%L^ANz^qOʝTĽ_zki `XH{; k2dH!N 8s؃/;Ē!/|d lE$#<SLl/I#1v>MNT.u$]/d=7\,DXlz"e#Νř9Y%/y,W+>l֨L_4U+v<V sdzOyhp xǥ 6۟E%yAU y!yOhxj%dmR*S},S'߆dyZPf!T{(d>wTLpJ}UcW-(4Fo{g}`71YՀ=^`+\I\>"!h/靾@i‚zGgs9k2tQal=u=ޅFA V/ئmAL(<-PQxvpµNi.l9!uՉ~תKK዇ʻt< aqJ {I3pd T6{w_xRO5/X*о5^}zyWNH!a_X9ah0(ߔ%4 _I|DzC^57 ~8HEp03=UCK5@ 5yeG\5Ӣ?䁢dtx7t_h0[6w/1PKK D; ]xu4Lcӭ+kC-@(ME#zvZU^ǽу#vsvaǔʹ! 5ieDX\ hK4O} ީtK4o %oD`c9 Bɠ19`CNZda[ig䚠{3v`p,awCљdxK=la4u;O=-66̲$r!yCd5zNy(|c/I3yonWr23:! Ůo,|VEt}:usy\&?s8O?A LZEɘh1f8jE'\;roZflPx.j)[5@H~%t^C1PԅUUvr]S8TH*WȌPs1&D4%_zb=ƦFH1/"s&vG8NUu1Hdt;զvXXSwur_I $NϪ Q mϹ-vhǚ'{gޝ{";1԰Чچq}Tkt&$Ҳ 9zEx5;Q\ä'VֲKM&Ϝѩ9@[tOwI^}EnQ!TC@;"c2ȇ)&$t ¿Ty(?)OlnW)Tk9MlUfi7ؗ1Taʝ.Ow4jDxzx5~X`^i!۱w lj߅)ʏ:x-=x1 ~<-k!r.fh ? ):حh''L(K+}Ҟdl{pdW:"MJԕ9cVϴg.Oul}BQtI'ҦnXc'-^^~_Ř1ׄRn>>*NmG4w$׆1b/*W*;#5犥\9MnΛMsx6CJ[<믄B]}:X"jʼnW[ . J cK4/!`f)ŪlBľSQ9k;ܗ v5n~zC1DCʁM@LXzq;WKa/f'J(SUfj!UXp=tDn.<'YpLeY-NXkYvKS?_>eٌ8WE2D3~a qb9NO5 tUYS7nĎm+E6[l?,3ӔCP>S%1֍)xڞ)I_ IG$U^FJMkdnd \ٖ`z/s 5eE(:3EX;nOs$,4_Tc2~b8(vߖvF"x_&:۔e̯oPT%@g11 " e32*l%>ײKFD:MޕKR 4͓S; &4Gib txhFI%WHa` ׂiZ5#Ep60߲` 2ҚMZq,\|t>yRCz'yCC1Z3kG)rW`Bzӏ>tVS["X#d\qUΘ/8`kStz [_wƟ9Z_V")W.wEllbQUHY&0W -XN襙}{װנXx7D}~]m&)&@ʄnB HmtҪr ^qLjFʫaT*>WU e I04cA4;1<+~K+^m(k~{Z %(]i%$A%Co0U@)]\Ba+V`;=C6OCE׵ՀNMRG"v؋E%TU`",۔Q*7u#Ȇ\qe#A0ʂoxQ!sE=^veɍ&!-muOri>Em+m].]+ 줨 T?ۭ7_a&o0SׁR X5)jK#],dbh1T?W[֤v-4_XGBs0E|2EH9=1񥰹=& ; =>\U}ϞŰeUQT(3 iit8ȴxSufVA8OߣdŻhw°Rw^irvߠ@g1q q*x~Og7Qށ:@_¯cL۞{ U?lʝo.tNsŷ)БֵdžE9]Z$ f TC4Ȅ$ ݖp:KnS=(W)x3LAv2JÊj@EBP\RZc) `2E./m7 ;yE$"y]^kuQOG~/T9\vSwєݢͦgVם8#R]*zk㠭@Z4FPUUM?QȃfGtzy W GCN˭[v(C }± R@)x9^nl ٤nHy[z}=s+#xkETOtT#yտ9̩1AKI6Ts%$\hx|ľa)us*o5 525EPTo OXgu>. ~U參i pg, ^(I)Z2VԌ3k*ql8-̶hP8 eaA">bcԈj jãk&**S$/?z۩Tj`(( D5T$!Ihs Zu1:^>66;[!32E_WfKEa b5ET[ΰN@+p¢a*gWDrϢ(iN/O/>ImjcICeVytfqȋa]ݰ^̷ѓf~qd݁мnU@^\S#3 N7ӶCK=H-Jır[Ia+l8,ӽ,f(]]摊IRtһF C)t Y)m|]]`l#H'2}n _D% ˀ}|VZwj @ʡAtr@al?K1I}Y ֒1a&?ɹ-;;=l5qlTAr]\_'L\My78 Qw1RXV9Rf_VCۿ%YEy{vTws̢O $_=Ie$EzϹ1SL x d{O[&,烊&"[)RPx$|ϙYUU~XbZIe˨#5Z^P" :}tѺbfXo(|У#>k2<;ÆOËK 2֪k.; )M/kG&ғϕy3gOݢN cUzoZqj$dthlČ&LebuD_3esv'4W4\w+X!9^ddE{|vX&F܊a2-Qf]sLl'Ny摹+-n==m!o)З+ %uD@lAA圸0j5_TNkѭ(BvYc+c󿉤rT. tf+vdYlMĉёxxZpr`#V,sVKR;s`Kܤ~>2zc' C5I.@/_+n{4 nue8hXk [("v5#ҋa0"H9q5tdZ¬ʥ}LbRʑ|be#!  dgGT 6zzO/)%Y&WjxŎ2ׂP9V'Z~ MK=4R\"Þay7 ߞ"*;cv'x/-uZ .J{̎[vDo< o 0EZ%wo5 RY.Q+<9x#9Bx836/ ˂a#w\S?j\a,[DZSe;Ni,Wiݛ.w )YSu*" 7K{RZ iT64(+IH,Dǹ>I) 7MY) Z=綞dѼ{^m%,zkAj` O+om;T%E>ذ=\M(=ӷ8\B&+}޳c4?d:Fէe {%* 7:K%\xHw9UKA?qϨЕ+DeٵmuNDQbzndֵ H-T0ih~D)k,?AL߇)-aדL8XU~TO:ȗ1hqXނxe^;*gco2-p[N:ﵠ.vҠFN).p')ph`F ّD8iN@V- V@\l~ɿ;z"kI8iV:Et԰n3쒖fD8w9Nh0:_^#^q2 2 et#F.g8S'?]WqfZcڙH Vӯ (HFU+qD;]5zma\jv%y@iqTImJ KcIҷ‡ vRaJuoDz6tH0&iHbBZy'x4ϤDi,,r?} |z Q ΅zm┧,@& 6`+.vC٬YkM,ݟ)P<eYa5N[JTHY3-EOB'op:v:$[@"4+vi,.CEC˪D ]QsHSƦUBH&,'BY9X ^Q=4V苁 QJ3J(Pq݈8;5>ETm.NUch Uf2GaSo Mxj ͹CdTcSM[шNMTҨib*kUP EF@!(?AZ t4Ҕ0K[ϣ>)URĦ)駫LbO(R}JkLUОe]8%U'?xh'u ENJ9 T]۫Yn<^;{2[!J_b\M~ IZ=!@l4!Gnyژ>Jg.(ul{"AIZ%+79id0/V1 ~ET|Ri;,[M\ #{Y 5bٱ-wPi؋=u*BCNOfj-ìIL)$f$IG'KV,2R>p1ܟtIe%Z+&/S~;NpcBfϕ}5Vx׻L0jVR|.&QUBgR7ݧ4AR~Vߵ[/޹z0s%֔BG:ZiA5{NR9Q1-WGH~W-#; Z}/w\,HE;O%l#D^| }u lX2 LM;XY[]0sH]=$~)y`dۙ7t+mܒk<-,.o62hǬwLv^‰yj C$*vfâŸjt&n&ً{bp`R=Y7N\Y\d SeiCR4{/z+3Ј>g`Ӳy}fB0o-0? 84ZBR&ſn쬚@Qfa=$`ܽ z-уhuIe-~]=+<k׷罧ٔw.1Rm.ϑȹ`rb+3K'BMMhEu3&5 s\D+!$SJ>4llpkӗkVʯE@SW{& !|kQS.ߡ[Ka8eYX_(L'.Ù95x] L#]BcQ5[hjE0aѶŋjGȗ?R"HZzg̒,[kĤC='ږ2Quem 6S:%oSo|j\ Ц9#$nf>.UV~uhhNx.t %N3NR/NIbCUNH'_U͎ؿId7Z+Kjދ"v1lb/i{j!wZ3o{ Zƌqqyve33ԽԤPqOa>;Qݭs֫˛HΆg$v/;@B]K#Gqnjxϔ">"ڌqTRSVJLu$y,:8Fo'i h(ݎœ&͢1 =}P{X?糜TsDBk׬&0#~o1qt$X0`Q#d=-7S}a ɧ;J_gat ,&F=+$g{u|Da'˳Bfw|k^@9v߫+$2VZ݀w&NF{W3 ;#%w@$);$A9WQ{FPtfZD $?0$` :9]|x]v3 (2{mhUEg*0{𾇐-l\/>)TDc !͍y%"tNzwQw8'@ tϹj b7R󤒽?k;kS۫2#nvˋ&ax9$%rُ 7e ++I i3sn }Y:,=V{wNhYVzлa"!_@ cm]*c * p)Tg@ݐXaPt3I{ڏaMw1h cNYi=%A F;~nl 8`tgCmz@GXl4{YW~]g0]5#[gc9k?Þ0[Pz]j˓~3θcE[ФF: H8R8'| C.iVzRʰwU/A|͜_ܼv5bh[ <* 0z;beTJGsylƭBS#Yr_v7f]?ʬiNL4ty>\8b%\7/daMӜd42ֵl {VZs-'f!wQDw7eEP05Cw&2hc*O oL¿o@9O17sYQg 񰆢>}lH"ma Li(RLru3Mej}o]D ua;'WGHAJ˪7PHh}DkӆPkerK1Lv-%CbZr8RBy.QB-vQal/`T[EÃ< UZgVJ}xu''Ek2$gWmjJ;+,.kR7]ȗg"]p6 '(#B3ݯ7"p鞿mC'㞅^g4Vt.Y)CR]$5MN iីtą^yJ >s*"뛸$dno"*V`z|NЯCOH?.XrՓ'nE?(;z-Pj*69\A{cQlܿ=m)Xutv;gL>rC(UPUR܏i8,tE{),9ua= toWD KmAR-|vDKN/t}1y%PzEp8(ͬ1;.|t'3ZO;DDdu3F;kYD<@բVQO\j|uc{[B2`+E^& DtW;Ӣzmr ݊ֈ"ڎ{X6w-A؞<ץ:[OFTئO/ LVW :pmK"ѿ5)yb?8ئr/Cn] 5^87Hw#$2򭜩yapّ(:ay}>w1>߳?jF ;F2$a?KWz"Éeq 4/UZ KmX'2cH%+6)Ժb3#fD X&\"شUsy/Imj1>2?MΒáƻ-O1"L:dpE2 `8̄xtq˻!J>ȚY&fmDbyAy$[E%vP bvAoLU1*7ֿc,gUz՝x5n#2 6Zke Fx_S' 8kpQӃx.˙}ފ>LW`U>6iD ¹Xu[XW-t7Yrl )[?Ԟ5 kSqrXh|p~AJV3 |{iS%b1jw, YG ^ Uį<\#:JKi֍ 懸^-OvOn49W&u(r^2%hݑBʒUxB~Kv͌.[/8MV<1;`MApeU%a̩Ge0ciBz |+O-ԩ2+$%W+*F%p)(p0BiU96y(>y!npAU.kׇ .®5pcF۳j!kۑ"H\L; N)qU̒D2w #6:-׶z*Mh48LM:רE]]Jx;:3PL͏2AOQ ztK/:'7@6^ږ& ٖe ȗ[ܚTOo,;ӳ𮽐+Gĵfh--s?A,!oYWLrIݥjg^z67^ jGRfIQss_P,G*p=iaדLdBIw ҕYS[( I*AINj5 wΝ~\rl T7=Lo&#]A)zjZZ6 5@Ik8CT9ҴGu 78߼>v#>RA%t 2EcGhV"Q*ir4Gv qQ5z͇~{\eSG A\5EzThx=‰UU^- ndT|ԤVMV+zR2ݸgr~]eg. D߇ PA2T _T߄O[d^SXzvè1~Lv `kBpu1ZX\b(j,,w\q_ 7Jb`hEވw2ЁRDű9DOoh޼wI؀$PQ46Y9+ Zo`9'+BjJLxqI%O`%Nkѣ˻C*pR Cz]EqBTY,0cюv2gİEī  9Ɖq d t1bCX5V=lD@>Kj[._} u=dQ.>[sO;0yVzGkĭ oW(M42Oq{r]F`J j\Oo,<%ߧR%c$X_| e2BU% kk0sMk*j-#UJ䉀C MV&׫,Hy%rb{aO a(z rU5$aC5R>/BUpdqDoUHIqȪ{q JCݝmUyޓ!\l6Vr5@J ZsL0ioݥ2??DOw8Fߣ[W>ހuzjɘQ ySu3&z$rc1pQ$U g0t)Mz'tjv3u TS K0td ĮhZOL,:@P ޸ܪ_s[o9pSJ6gfw 3`g6eIg2JO?e$I)o :4 )v.1=`# `?3wIV7IaZ|hi>s1HMa7+K'EpdϑG/>#FTxF!90\;Bm$Z5*X.*3Z}nLC5C{wJXs4eVuB\N^;N~TU޷^w#y~l] .nځGo?R MmEɶWu Hpz$fb~Rbj5 'Bv D\Z`II@*"GlNjd J?0l]SbxO>*/j.eRD~ܗ߭Xˉ-WQZ V3arGt:;DK7귕+pfW [sq!`4(3MwiCf D? DN8C˪ ̆(v]zɉB@W0fљQ,J#M0VmKfv"3& FO%ʌ} ՏA ohY=7D#DL8ע= kWYen&¤eo}ݮ 1.E9nv|X$rwJ4\\-)?8yXGZ0NL԰qzBʎVfuFln#UgnCH4vqb}zg{u 61/>Oȉ?(0au>suF]Nx+Ih2+u?S>3Qreξz+!{Z\fIEMk6 NE`*CוC~\Ɗ*Ƚ/TϠg]mqd+@$ײydAaӪϝ tgߋ[O˲Φ/ e炁;Bf(z 5[L2U!|G^h5o5*%Á8udZ*/l!W5V`0@,k_`&j$+%-PD&L:0[3Xn<9Ud=֩jCKh+}i@ap0צnB8!r^bGS 491+Z\ U m#(8U^ד7{BO chl(,$7t}U}ETNn11F 518w ƌ"F(&kv:gdR{9kj"Ƅl{ B c=i򫾿P0#<9]([Lw\cm DKIwCTݕ<9U M45`]q}#>QÎzJ%O+Wb%|kB,vD2 ""G&:' Qc.,9Z( jaN!LE|»[IvW]8/b%qSF2mCSǚ l