From 432bd7458e4aa9d3a097dcd34e5f2f7e2818b191 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Mon, 12 Feb 2018 20:13:44 -0500 Subject: [PATCH] rearchitect as a gem embedding Ruby in C did not go so well --- .gitignore | 11 +- Gemfile | 4 + Gemfile.lock | 20 +++ LICENSE.txt | 21 +++ Makefile | 19 --- README.md | 41 +++++ Rakefile | 1 + configure | 2 - lib/svi.rb | 6 + {share/svi/lib => lib}/svi/svn_runner.rb | 0 lib/svi/version.rb | 3 + share/svi/lib/bootstrap.rb | 9 - share/svi/lib/svi.rb | 12 -- share/svi/lib/yawpa.rb | 202 ----------------------- share/svi/lib/yawpa/version.rb | 4 - src/main.cc | 120 -------------- svi.gemspec | 32 ++++ waf | 169 ------------------- wscript | 19 --- 19 files changed, 136 insertions(+), 559 deletions(-) create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 LICENSE.txt delete mode 100644 Makefile create mode 100644 README.md create mode 100644 Rakefile delete mode 100755 configure create mode 100644 lib/svi.rb rename {share/svi/lib => lib}/svi/svn_runner.rb (100%) create mode 100644 lib/svi/version.rb delete mode 100644 share/svi/lib/bootstrap.rb delete mode 100644 share/svi/lib/svi.rb delete mode 100644 share/svi/lib/yawpa.rb delete mode 100644 share/svi/lib/yawpa/version.rb delete mode 100644 src/main.cc create mode 100644 svi.gemspec delete mode 100755 waf delete mode 100644 wscript diff --git a/.gitignore b/.gitignore index 9c0382d..9106b2a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,8 @@ -/.lock-waf* -/.waf* -/build/ +/.bundle/ +/.yardoc +/_yardoc/ +/coverage/ +/doc/ +/pkg/ +/spec/reports/ +/tmp/ diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..5ed4f48 --- /dev/null +++ b/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +# Specify your gem's dependencies in svi.gemspec +gemspec diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..5e4903b --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,20 @@ +PATH + remote: . + specs: + svi (0.1.0) + +GEM + remote: https://rubygems.org/ + specs: + rake (10.4.2) + +PLATFORMS + ruby + +DEPENDENCIES + bundler (~> 1.10) + rake (~> 10.0) + svi! + +BUNDLED WITH + 1.10.6 diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..0ec1b46 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Josh Holtrop + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Makefile b/Makefile deleted file mode 100644 index d490692..0000000 --- a/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -.PHONY: build -build: - ./waf "$@" - -.PHONY: distclean -distclean: - ./waf "$@" - -.PHONY: clean -clean: - ./waf "$@" - -.PHONY: install -install: - ./waf "$@" - -.PHONY: uninstall -uninstall: - ./waf "$@" diff --git a/README.md b/README.md new file mode 100644 index 0000000..18938d1 --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# Svi + +Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/svi`. To experiment with that code, run `bin/console` for an interactive prompt. + +TODO: Delete this and the text above, and describe your gem + +## Installation + +Add this line to your application's Gemfile: + +```ruby +gem 'svi' +``` + +And then execute: + + $ bundle + +Or install it yourself as: + + $ gem install svi + +## Usage + +TODO: Write usage instructions here + +## Development + +After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment. + +To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). + +## Contributing + +Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/svi. + + +## License + +The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). + diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..2995527 --- /dev/null +++ b/Rakefile @@ -0,0 +1 @@ +require "bundler/gem_tasks" diff --git a/configure b/configure deleted file mode 100755 index a9d33b7..0000000 --- a/configure +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec ./waf configure "$@" diff --git a/lib/svi.rb b/lib/svi.rb new file mode 100644 index 0000000..0977744 --- /dev/null +++ b/lib/svi.rb @@ -0,0 +1,6 @@ +require_relative "svi/svn_runner" +require_relative "svi/version" + +module Svi + # Your code goes here... +end diff --git a/share/svi/lib/svi/svn_runner.rb b/lib/svi/svn_runner.rb similarity index 100% rename from share/svi/lib/svi/svn_runner.rb rename to lib/svi/svn_runner.rb diff --git a/lib/svi/version.rb b/lib/svi/version.rb new file mode 100644 index 0000000..d3bef09 --- /dev/null +++ b/lib/svi/version.rb @@ -0,0 +1,3 @@ +module Svi + VERSION = "0.1.0" +end diff --git a/share/svi/lib/bootstrap.rb b/share/svi/lib/bootstrap.rb deleted file mode 100644 index 277c491..0000000 --- a/share/svi/lib/bootstrap.rb +++ /dev/null @@ -1,9 +0,0 @@ -begin - load "#{$SHARE_DIR}/lib/svi.rb" -rescue Interrupt => e -rescue Exception => e - $stderr.puts "#{e.class}: #{e}" - e.backtrace.each do |entry| - $stderr.puts "> #{entry}" - end -end diff --git a/share/svi/lib/svi.rb b/share/svi/lib/svi.rb deleted file mode 100644 index b59db9c..0000000 --- a/share/svi/lib/svi.rb +++ /dev/null @@ -1,12 +0,0 @@ -$LOAD_PATH.unshift("#{$SHARE_DIR}/lib") -require "yawpa" -require_relative "svi/svn_runner" - -module Svi - class << self - def run(args) - end - end -end - -Svi.run($ARGS) diff --git a/share/svi/lib/yawpa.rb b/share/svi/lib/yawpa.rb deleted file mode 100644 index ce0393b..0000000 --- a/share/svi/lib/yawpa.rb +++ /dev/null @@ -1,202 +0,0 @@ -require "yawpa/version" - -# Yet Another Way to Parse Arguments is an argument-parsing library for Ruby. -# -# Yawpa does not try to provide a fancy DSL. -# It does not require you to define a class or inherit from a class. -# it just provides a simple functional interface for parsing options, -# supporting subcommands and arbitrary numbers of arguments for each option. -# -# Features: -# - POSIX or non-POSIX mode (supports subcommands using POSIX mode) -# - Options can require an arbitrary number of parameters -# - Options can be defined with a range specifying the allowed number of -# parameters -module Yawpa - - # Exception class raised when an unknown option is observed. - class ArgumentParsingException < Exception; end - - class << self - - # Parse input parameters looking for options according to rules given in - # flags. - # Syntax: - # opts, args = parse(params, options, flags = {}) - # - # An ArgumentParsingException will be raised if an unknown option is - # observed or insufficient arguments are present for an option. - # - # Example +options+: - # - # { - # version: nil, - # verbose: {short: 'v'}, - # server: {nargs: (1..2)}, - # username: {nargs: 1}, - # password: {nargs: 1}, - # color: :boolean, - # } - # - # The keys of the +options+ Hash can be either strings or symbols. - # - # - # @param params [Array] - # List of program parameters to parse. - # @param options [Hash] - # Hash containing the long option names as keys, and values containing - # special flags for the options as values (examples above). - # Possible values: - # +nil+:: No special flags for this option (equivalent to +{}+) - # +:boolean+:: - # The option is a toggleable boolean option (equivalent to - # +{boolean: true}+) - # Hash:: - # Possible option flags: - # - +:short+: specify a short option letter to associate with the long - # option - # - +:nargs+: specify an exact number or range of possible numbers of - # arguments to the option - # - +:boolean+: if true, specify that the option is a toggleable - # boolean option and allow a prefix of "no" to turn it off. - # @param flags [Hash] - # Optional flags dictating how {.parse} should do its job. - # @option flags [Boolean] :posix_order - # Stop processing parameters when a non-option argument is seen. - # Set this to +true+ if you want to implement subcommands. - # - # @return [Array] - # Two-element array containing +opts+ and +args+ return values. - # +opts+:: - # The returned +opts+ value will be a Hash with the observed - # options as keys and any option arguments as values. - # +args+:: - # The returned +args+ will be an Array of the unprocessed - # parameters (if +:posix_order+ was passed in +flags+, this array might - # contain further options that were not processed after observing a - # non-option parameters). - def parse(params, options, flags = {}) - options = _massage_options(options) - opts = {} - args = [] - i = 0 - while i < params.length - param = params[i] - if param =~ /^--([^=]+)(?:=(.+))?$/ - param_name, val = $1, $2 - bool_val = true - if options[param_name].nil? - if param_name =~ /^no(.*)$/ - test_param_name = $1 - if options[test_param_name] - param_name = test_param_name - bool_val = false - end - end - end - opt_config = options[param_name] - raise ArgumentParsingException.new("Unknown option '#{param_name}'") unless opt_config - param_key = opt_config[:key] - if opt_config[:boolean] - opts[param_key] = bool_val - elsif opt_config[:nargs].last == 0 - opts[param_key] = true - else - opts[param_key] = [] - i += _gather(opt_config[:nargs], i + 1, params, val, param_key, opts[param_key]) - end - elsif param =~ /^-(.+)$/ - short_flags = $1 - short_idx = 0 - while short_idx < short_flags.length - opt_config = _find_opt_config_by_short_name(options, short_flags[short_idx]) - if opt_config.nil? - raise ArgumentParsingException.new("Unknown option '-#{short_flags[short_idx]}'") - end - param_key = opt_config[:key] - if opt_config[:nargs].last == 0 - opts[param_key] = true - else - opts[param_key] = [] - i += _gather(opt_config[:nargs], - i + 1, - params, - short_flags[short_idx + 1, short_flags.length], - param_key, - opts[param_key]) - break - end - short_idx += 1 - end - elsif flags[:posix_order] - args = params[i, params.length].map(&:dup) - break - else - args << params[i].dup - end - i += 1 - end - - # Condense 1-element arrays of option values to just the element itself - opts.each_key do |k| - if opts[k].is_a?(Array) and opts[k].length == 1 - opts[k] = opts[k].first - end - end - - return [opts, args] - end - - private - - # Internal helper method to gather arguments for an option - def _gather(nargs, start_idx, params, initial, param_key, result) - n_gathered = 0 - if initial and initial != '' - result << initial - n_gathered += 1 - end - num_indices_used = 0 - index = start_idx - while n_gathered < nargs.last and - index < params.length and - params[index][0] != '-' do - result << params[index].dup - index += 1 - num_indices_used += 1 - n_gathered += 1 - end - if n_gathered < nargs.first - raise ArgumentParsingException.new("Not enough arguments supplied for option '#{param_key}'") - end - num_indices_used - end - - # Internal helper method to format the options in a consistent format - def _massage_options(options) - {}.tap do |newopts| - options.each_pair do |k, v| - v = {} if v.nil? - v = {boolean: true} if v == :boolean - newkey = k.to_s - newopts[newkey] = {key: k} - nargs = v[:nargs] || 0 - nargs = (nargs..nargs) if nargs.is_a?(Integer) - newopts[newkey][:nargs] = nargs - newopts[newkey][:short] = v[:short] || '' - newopts[newkey][:boolean] = v[:boolean] - end - end - end - - # Internal helper method to find an option configuration by short name - def _find_opt_config_by_short_name(options, short_name) - options.each_pair do |k, v| - return v if v[:short] == short_name - end - nil - end - - end - -end diff --git a/share/svi/lib/yawpa/version.rb b/share/svi/lib/yawpa/version.rb deleted file mode 100644 index 37ef8c8..0000000 --- a/share/svi/lib/yawpa/version.rb +++ /dev/null @@ -1,4 +0,0 @@ -module Yawpa - # gem version - VERSION = "1.3.0" -end diff --git a/src/main.cc b/src/main.cc deleted file mode 100644 index ab723f1..0000000 --- a/src/main.cc +++ /dev/null @@ -1,120 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -VALUE svi_ruby_protect_eval_string_rescue(VALUE exception, VALUE exception_object) -{ - *(bool *)exception = true; - fprintf(stderr, "Unhandled exception: %s\n", - rb_obj_classname(exception_object)); - return Qnil; -} - -VALUE svi_ruby_protect_eval_string(const char * ruby_expression, bool * exception) -{ - *exception = false; - return rb_rescue((VALUE(*)(...))rb_eval_string, (VALUE)ruby_expression, - (VALUE(*)(...))svi_ruby_protect_eval_string_rescue, (VALUE)exception); -} - -static char * read_file(const char * filename) -{ - int fd = ::open(filename, O_RDONLY, 0); - if (fd < 0) - { - return nullptr; - } - off_t size = ::lseek(fd, 0, SEEK_END); - if (size <= 0) - { - return nullptr; - } - ::lseek(fd, 0, SEEK_SET); - char * buffer = new char[size]; - off_t n_bytes_read = 0u; - for (;;) - { - off_t rd_size = ::read(fd, &buffer[n_bytes_read], size - n_bytes_read); - if (rd_size <= 0) - break; - n_bytes_read += rd_size; - if (n_bytes_read >= size) - break; - } - ::close(fd); - if (n_bytes_read == size) - { - return buffer; - } - else - { - delete[] buffer; - return nullptr; - } -} - -std::string get_exe_path() -{ - pid_t pid = getpid(); - char proc_path[25]; - sprintf(proc_path, "/proc/%d/exe", pid); - char exe_path[100]; - ssize_t n = readlink(proc_path, exe_path, sizeof(exe_path)); - if ((n > 0) && (n < (ssize_t)sizeof(exe_path))) - { - return exe_path; - } - return ""; -} - -static std::string share_dir; - -const char * read_bootstrap_file() -{ - auto exe_path = get_exe_path(); - size_t index = exe_path.rfind('/'); - if ((index != std::string::npos) && (index > 0u)) - { - index = exe_path.rfind('/', index - 1u); - if (index != std::string::npos) - { - share_dir = std::string(exe_path, 0u, index) + "/share/svi"; - char * bootstrap = read_file((share_dir + "/lib/bootstrap.rb").c_str()); - if (bootstrap != nullptr) - { - return bootstrap; - } - } - } - share_dir = SHARE_DIR; - return read_file(SHARE_DIR "/lib/bootstrap.rb"); -} - -int main(int argc, char * argv[]) -{ - bool exception = false; - const char * ruby_startup = read_bootstrap_file(); - if (ruby_startup == nullptr) - { - fprintf(stderr, "Could not read Ruby startup file\n"); - return 1; - } - { - RUBY_INIT_STACK; - ruby_init(); - rb_gv_set("$SHARE_DIR", rb_str_new(share_dir.c_str(), share_dir.size())); - VALUE argv_ruby_value = rb_ary_new(); - rb_gv_set("$ARGS", argv_ruby_value); - for (int i = 0; i < argc; i++) - { - rb_ary_push(argv_ruby_value, rb_str_new_cstr(argv[i])); - } - svi_ruby_protect_eval_string(ruby_startup, &exception); - } - delete[] ruby_startup; - return exception ? 1 : 0; -} diff --git a/svi.gemspec b/svi.gemspec new file mode 100644 index 0000000..190ad63 --- /dev/null +++ b/svi.gemspec @@ -0,0 +1,32 @@ +# coding: utf-8 +lib = File.expand_path('../lib', __FILE__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require 'svi/version' + +Gem::Specification.new do |spec| + spec.name = "svi" + spec.version = Svi::VERSION + spec.authors = ["Josh Holtrop"] + spec.email = ["jholtrop@gmail.com"] + + spec.summary = %q{TODO: Write a short summary, because Rubygems requires one.} + spec.description = %q{TODO: Write a longer description or delete this line.} + spec.homepage = "TODO: Put your gem's website or public repo URL here." + spec.license = "MIT" + + # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or + # delete this section to allow pushing this gem to any host. + if spec.respond_to?(:metadata) + spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'" + else + raise "RubyGems 2.0 or newer is required to protect against public gem pushes." + end + + spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } + spec.bindir = "exe" + spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } + spec.require_paths = ["lib"] + + spec.add_development_dependency "bundler", "~> 1.10" + spec.add_development_dependency "rake", "~> 10.0" +end diff --git a/waf b/waf deleted file mode 100755 index 54b3534..0000000 --- a/waf +++ /dev/null @@ -1,169 +0,0 @@ -#!/usr/bin/env python -# encoding: ISO8859-1 -# Thomas Nagy, 2005-2016 - -""" -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -""" - -import os, sys, inspect - -VERSION="1.8.19" -REVISION="886d9b5813e0debe701577920d3d2c10" -GIT="x" -INSTALL='' -C1='#.' -C2='#,' -C3='#*' -cwd = os.getcwd() -join = os.path.join - - -WAF='waf' -def b(x): - return x -if sys.hexversion>0x300000f: - WAF='waf3' - def b(x): - return x.encode() - -def err(m): - print(('\033[91mError: %s\033[0m' % m)) - sys.exit(1) - -def unpack_wafdir(dir, src): - f = open(src,'rb') - c = 'corrupt archive (%d)' - while 1: - line = f.readline() - if not line: err('run waf-light from a folder containing waflib') - if line == b('#==>\n'): - txt = f.readline() - if not txt: err(c % 1) - if f.readline() != b('#<==\n'): err(c % 2) - break - if not txt: err(c % 3) - txt = txt[1:-1].replace(b(C1), b('\n')).replace(b(C2), b('\r')).replace(b(C3), b('\x00')) - - import shutil, tarfile - try: shutil.rmtree(dir) - except OSError: pass - try: - for x in ('Tools', 'extras'): - os.makedirs(join(dir, 'waflib', x)) - except OSError: - err("Cannot unpack waf lib into %s\nMove waf in a writable directory" % dir) - - os.chdir(dir) - tmp = 't.bz2' - t = open(tmp,'wb') - try: t.write(txt) - finally: t.close() - - try: - t = tarfile.open(tmp) - except: - try: - os.system('bunzip2 t.bz2') - t = tarfile.open('t') - tmp = 't' - except: - os.chdir(cwd) - try: shutil.rmtree(dir) - except OSError: pass - err("Waf cannot be unpacked, check that bzip2 support is present") - - try: - for x in t: t.extract(x) - finally: - t.close() - - for x in ('Tools', 'extras'): - os.chmod(join('waflib',x), 493) - - if sys.hexversion<0x300000f: - sys.path = [join(dir, 'waflib')] + sys.path - import fixpy2 - fixpy2.fixdir(dir) - - os.remove(tmp) - os.chdir(cwd) - - try: dir = unicode(dir, 'mbcs') - except: pass - try: - from ctypes import windll - windll.kernel32.SetFileAttributesW(dir, 2) - except: - pass - -def test(dir): - try: - os.stat(join(dir, 'waflib')) - return os.path.abspath(dir) - except OSError: - pass - -def find_lib(): - src = os.path.abspath(inspect.getfile(inspect.getmodule(err))) - base, name = os.path.split(src) - - #devs use $WAFDIR - w=test(os.environ.get('WAFDIR', '')) - if w: return w - - #waf-light - if name.endswith('waf-light'): - w = test(base) - if w: return w - err('waf-light requires waflib -> export WAFDIR=/folder') - - dirname = '%s-%s-%s' % (WAF, VERSION, REVISION) - for i in (INSTALL,'/usr','/usr/local','/opt'): - w = test(i + '/lib/' + dirname) - if w: return w - - #waf-local - dir = join(base, (sys.platform != 'win32' and '.' or '') + dirname) - w = test(dir) - if w: return w - - #unpack - unpack_wafdir(dir, src) - return dir - -wafdir = find_lib() -sys.path.insert(0, wafdir) - -if __name__ == '__main__': - - from waflib import Scripting - Scripting.waf_entry_point(cwd, VERSION, wafdir) - -#==> -#BZh91AY&SY"hP#*Y c%H4#*`(b|yn#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*1L ܹ6[_GݒI޻yڗQE>^}ɩg]SIbH>{=wkBv׶ZnwOZnc}FN}V7`v۝{'p.mm7滽p#*#*#*P#*#*[ C+ܘUu lMc\of[(P{:=-UeSm)`m5PQ"#.%Ov⧬PTH#*%ws^w٪l={ܞLNԝ}ZO2ݝ7[]vovwݾnݾͲۍ}]7wm}q#*[`U5lE#,h#,(;wnQ^rm*7]%TFcE=QO@{v)mp۬9uۛ=ঌ<]Ϸ3=uen>=ΆyZݤj>W#*y ^t{__5_}}(iWwxyuuJ ˻o;Mv{]v\^{gwN,nt#,7qKZ}4irx&sY╲[o=$wۯ}wwjҺ[k8}Ͻ7{O$:|A.4=R@٩NJe'xz,KwYu\t^f;*#,z#*g#*Axw{i۽N/{G'q<띳n9#,b![6/|mկ}&wݗs^ݩ5sxϽuwnNj9X>7}wi7{|16P}nZzx>u xZ];ޖ#*`(H{WunΞҽil}ޯwJv{/#,#*zeh{opн5Q ӽ݆&Ayk׼Mg}'AZzﺀCmrOkjt9ݷQv#.I#wgkwtO.9fe6}w'+֚nwz}`:niӽsmэn{|v>7jҝ]׆.Gßn@2#*4#*&i4##B?Jd4doEA4#*ѩOa#,(#*#*#*#* @M&)ڿ&?mk[\; 2 !#Y @B( ?z$֢HnNa+Jx\IywӚ3?t>Ca) 8I `Aᑗ .|pͥV*bq1TA37nWZ'㾾yG#.D "CjҵZ*1m@n@H@y&d#* @U[#*akjVtjbV_jB$c3L@Lhm2$KJQIP$@6(0&h([)AFXКaJ#.$RlE"E@K-$$0e$Rآ-&)eE,MJ2PRJ)05EiVҫRmDə2hت +X0͙mIc4`b$jZdȦI5@ԍ+ITM%#.$Z)Mc$3d0BFfc4*i`1 fb "QP6" !C$Fd!# ,,Rdi0Ji-LjT,#,i Q$MJ&1bb2E$He$M,)S2,mdQ,($#.lE6j2AQ#.DTj"#.)#.fI,Rb )2f2[2A!BT!$J),Yf`ٴFFBHI#,"S5K6YJ(1aK$(KdlhLĒ(-,*$ʃMAF#c $#, BfEԙ)4Z4YRLI%()hFHiDC*f[H•HC)R6L)#.m%#XLJ%5l& ##,M&MDb1T33JbS&1f&QddĔTB*dX#h1Ie$6MFLCHj(IR#,l&B&K&Qf$e2&a-%*4Tm )"#,űLla$0(TJ(*Y0X52DL3,!Y#*j4e6kjmQl`i(12S$ƓF-)f1IfT)b%6Q!_mv4%J2SXEbQITD%KAQV"Ɩ!e) RF*&,k&Cc)Ebd5-*c$&,32Ye#k*ERX$)dԈɦVD5 [%YYJSL+f(i5KMD%ƱX3hH3`FѶѱQ3L5E!4jQHmbY05Rhe1%h5(ږm$5!bVA,#ei6F&l3)#.I6ԲZRɶmZ4fk32IKYRSJ( C5J4Qb- 3ѵ$JME2iIFL#,%0ŠE,AieHi)e6hbĄTZ, bcl3K1`2FLlBK!IlI&h42S2T4Rma3`#.TX1S6RBlE543 3hFhɩ"aK-$L؅3R2I҈Jԙ6lei+#dfMBT)Fj[,شIlbTQfJfdѩH$FY1Қ#@Y6Jhbb&I F5BTmm1I2 &h K#.e$*50ie24´mIkhЙfHA ,#,RJQliI&k2*HI"*ƆMEc&&VJQ%4ET*Je)F`$Qdd06KdԛjIEJj&CI3dRTXiH- h#.3BFV&#JKEhƲEd6%`1#hTh1E& VZSTj-V1Y-f(#(1B$4lVmhҚHe#.&ѐ66hTZI5f͐Ī1h,UMIH()DF`ƒ-dԖIeM‘QIFkTeCI$Z66Z[$Il%E$ѭFhڡK&ZeJ2bFL`lMlTȨ1$I2$jMfV?I7Da?Ll+Iekzz/NDNTlsAQ 3IHM.Y#,`q#LW\;=qwhYy7V2]QTȥ܅; 'tݹ,>?KV#.g~o-5Z8bL|H#մtYWVڶy)QTUvadi2ӆY[#+neW_%|=?ײU.nZ65A5_eגyʉ-w˫։S/ł(,jc[ܰK L!¤#,j6eU=eȱ~?aZ3#*#.7AOS(C (`)L>Xnv#.D`cyj(0)̚BVH5)#**^WI搢3vIԠ%(16dȗ:t$"R5$s(:%U|6Jv("ޖFDROHG,iRFF1:*#,-o/;ȐVhh#v[)[A_#=tVZ0LM'}Li6J@`@hQ?W1#,.0fN9#,t陸gxVz$5 uy\ah^y*Z9١:.ZR;0 9!jУij?+9j&gJ4ѐJ[I$[IXR`[FZ,* )AKh[eԘkX&R7h$K!M](߃޻f|q[+/W(E*HLVi]!F1d"}ommcFs2ɼk-WхKE%a|WF<,kM_IxJm~7Pyݣz^#,C@8D`Ɨ:T0WJ͐@00b"m}]O+u7]H\XӝPd-7 ,jԒ,pB4֔ݟ$RE`xҢ&|#.nx2O N봈,%R0VQɆZdiGR[N w<@-#,2UXԥTh؊+Vsz3#*{x64 P쎘=RhUc=EZcLx?τPʹ>hs1V|X /'.H##~DژÈEa/iX/䙻 o4WMtNH5ӤxW8τMnzu H#.NjԹXhjPxs.DHc5 7>OY o5Ѭ=.\(HHY8Di E瞧VܻLo+sRgSDSi 63Q݄Q- WU@82~U/tM ؍ 1|t^ v/`7HzoۚKxHl5{ mbO#i0݌~#, ^J -Q^t~t *OfL9^}ˑMOsco$šʥ{jB#*ϝ^A $5/] iLkPzTiytѴ;/_ln70TƫҼf#'(=:YDwi,6Q ?OۙSUrg]oL#.Ftp}UkPw)%CRCzCN<`XcRhJށ4 <%MqSRi\yxdE#.Cz{-ظg]`8/ԭ1tDzSkbRTݱv`URoɿWŇ=NEφCdPD.zQ\kNil*'B#.l 2)}7z%uD륖 +¼EJ&RrWϗޞ|w}۵فM#.THRVlwK=oO]=ջ$+ &E-|6oq Zt-٨jD4]F7Ee}߄49ǐui\uIeŘ]GQʤX:Ox!TR|ö.?#}$qX7lXq\TڼeŌʏ0-ω`d0VZh#.ʢǸVO.L3{^},4ݕ!#,J=8G2ʂYoԙ3 ZR6y{Ƞ'՘ԍvoVBzLL4RlӌK}<3-xnukT~U?8#2!eq 8ѽjXËuZ Ҍ>Ua,=_p:Pbq^=p2[{K*JB*d>\&!ƴQ+JDLX@tj2'2Aj=4Փ|vu"O=TuJVTǞvr)q#*q!*iJ_3c7~ߋ:9Du$)In䛫dFpP47GNBU#,+%ǓL㉚./.t:۩5_5ilQicTʒqb Leaa4[ۘ#<#.F{3:N] ac b24Pvdq:}Yyr.>֠öoKFGWEaMtq|ojz%GħS!9:FCˤhOlҡW}{)>W)!<3'ż^Y5nA$D9812ͻs#On6؛2x׃{iW"#31vDRj, ]k]S3bуOdB8Y YQk<>BMEc7GyUgiͣlwMz˖͚ɺZ׉\UR7魽xXŻ*D'( jԪRv|3dvt:7?RL#.仯\Ha T#d0KMpyxF"a2M[%2ScD2n.;yyog̪%P[@>D"a"rc_-m=@҂uة/5krHN|Δz;K6leE!L;_Xuvn67NO;3MkLɝ38b$fਰ@0}]繁sa NnjlȰ#,*1.!i0CCH(Oq@;$F~#.P,X|I }UyV\2P}őzE7].a6|7vO}t|Qt7P*ۖiUZcWhv#.&b"FB* ~F!HѠ"-ļ1E-IsNb0찲88@]!SS؏{#,ZN :Zwk< =3*{79=Y^5]-Ub2WlQ4cm4W+i;\H%EP~v~&ҶPHMdfARtkOTрDbN;\{)&ùC2&6+(Ewe#,$0=#Rrc:F݅F<&yx ۵j4- kq柝VHloJFg',_ǚc}7Px{VXrPRK>V2+ siG~#.c8:#ʪ ~!QIDBfĸ]e7T\>񑚂iyKB ]{Qq7N#, s>.ukd7|YQr2l909Fo;-;Vq -],/CqL5>~9#." SQ␻#IȺr&XB#,BiE5#E4ԙ1='gu/KDb*1Aikq8<ܪWR$ӷC$هƍ< c@ݻOrs_*O@M aA1&#,꧑Fl]d6YfݤIִ*WttRuNG.g]w$lkMj.n T&1d+BAU1)5IUGw{Mq ޽8μtlXeF>+k#.t/Wͯ5a7sn(Dn#SdPK^#ϥg8#,J\ۓc"]te#,p{c#.ztAh#.9 ,641,$p6`BB[Ce؁x\NX?~ZWxV8gRGkm#.%`Yo1HJq ZPmjf#uLQ$J2zz6NpG~?oSE,BF]SM5q}yfHz~8e#,ZFJ깢#Zܕ180[5&&S?#IpAքMPg-TbB®ћ¡ݦ]wnZWt:ςIX+n#.Z(Nr8tAHg!HEy#Aߑ#.uI(`"X "o#*E2MKWڤaɋ#,XEV\ !.!HA6bAad=66]Tmii#mF_3J)#.[W]kĊUn""W #. #*#, oZc~U{bNY2džz#.W7R탢O]Yfhk>F,黦\Kٴ\R+pKd(Je FK*^,ʳzVMbdLUcE!c|ݍh}dt3~uYPjAlO検v_pn3ώc}W9a~Dž"uoo40w#, lQLCTk80lAi7~Wlk.?,k3I k i(B$GHAe;Rq?N"BU~R"JX*ǰΆ1.݌z!907+ BָQZ7)!,,=[D`q?Q|:yB(=+8I\'ɮ#.fo뫆SM+K(\4ڵ|r9C J@Xİd{d2כራaE+V{eo@¦8#, ؟jzQ]j="CF0$a#**VJU]_.놢|RiE3DAW,*+)PȲAH/C\u5 m*K7!tH bZ T ^:܍GV5S%Gv SđDf9ÐBv#\bɎv7JTg$aؾ$^+5l\M#.Y5&: NTyQr!: 'ytéb4v(UhOT_ܼ-I? _Ljc|DFyPFS>JXy2?Z2F=T|(",C/#nƦ9yKobWRKkE$@cN49,ޮffax!͛ճɕi"1EXw̹̚`BeȪ$$qk#,>=8z/t+Ñ?,| 0l?dpA"m6ir^wP`,{]ZY\q*H[+^i,! rã5i {U1PМK@Q&`ۖEmhm3NguEUO#.F* 88;aBضL^Ӧ |܅vPlD(jH>syۻ|[lqbX-xīPk#8קJ)4a) M9ajpS^2ɭ_Wo+lQ}՘!!G`īPU䰈JnQcziI8#.԰d?H;)$f*OW;30Ra+x_.sy!((ct2o/-bxnzMve4.Z)M!` ?wcƈD\e%#*E"> -Niﯻ/V#..KF?*$Ȉ{8|`:/xLBQwhDtD@kU#,~)KXC#"S:!jZjUHojʒ@0`>%>pp*D-R #,Ke88VpdGa2#.CyU6&)өNjRK;6FΩ#*0M.=]ؒg[bv!E#ҹ,M؋ !M+of-{blk#,A0dy$BA`eXuR*(l1"`UYf1C :HdER{#.OΔ?[B<+t֫ #.'ɈGJH, !q+>=|>i#x=Eâ=hG;>U>|.Vze#.}3}g/>"]}c5=s:-4#.D:Dl䲗i.F#.Wu?GTpׅPs+o34_l|9n#,H#,'q5PV]&!9/UjNǻ+5Ub*.Q xPUZ1_]j0<64#*%3#.N<k2rQzuG뾶TjW"yeS_/jM^/"Q*hk}nN)>cX_CyE{?ܲDE#xj$!Z&c'l+X^):q!iHCv#,i@Nsg:[㋠b!_̅[c~qgczjN\RE&pNMԾn.Dhb#pȏ4$F,b?D#.ld>S"u#i"]?7PPuϹ3wt3N0_A}꘍3M H3uO܉t $sdkxɢ'I(v$ī}Po|ᑯjsTjꛠꈈ0;7LwxqUWSXqRXpdLY,EhhHIp[Lbsz4sImv0??n_ϋg}vrrcϏS{}8tj#,T|:.`n\McFx@wfu7e^9kgQ}BUῆTriy'SGSޡ[ {Kf;9 }+<31sbo۬Oy#,[qhioD;mպޯ?a~^VϣNɱ?ӪM6@ә}z|Ӣ}T-Ǻ-OqU [ײ#,+àsvg01lB@a\c>#,-ղo V?#,x]崲aa?;9sk_ yrg{/캨z*^mVW'e#,?M9F$JNyL$mi=>*䉢QU%_$Ux~oF!GzH-)+l_uvdxTH2ײrƝGur|Ԧ.?[[t?=bmÁO=YR+⿠MZo>h>t#,8ۻ>vNsV,XŚ(|;!?ntm=Uׄari/mp՗;&h)igZo_m?ǿƾgy??zN?IG7ѩ~Wœl|[ClwSijWKv|>^?!Xz !L^j#5B?GԽ#,cwxq#OoCT&#. d1_}ƄLH{sl?Fuyyz[8<Kl8XW>[ZU?ʻ5l#fWXT1;>'^^p#.]#,ey[5ym0jZ#. ݎ3U#,Ӳ#,O _Zդͪzq[Ul.(Aj[Sҷ{vS+STj^wrʜonmY%9Bv-͹;?x$`iI$-$79KXh%w谯F`+|NS#,NCO){:q8>-ЇC]03xM!uMWջ;uMZ6U'ȉOxݟ{Oʻ;~6ltD2H\Y/%\.m ]ۏAc|14w/A붻[Ma(J(-a4禘1ɜը%vʿWEK`dٻ?ZukJB]otg:}y}G~fl[|UO9{w+ڻeeTЊ;u77?ꏳPj2dnRꑬ$fOmEj呂;8q'"#,Uyyjgֹ.qgl} XW_-Ff\[rg# kGߺ{a0XGA#.+EJcZ!"AUFnU5"m#g/MmiGd&,Zi1Ti7BB%۴7Et* & 845 }QhOfœi/Y޳!Aƻ?51&~ZԺOEFa`>cgBcDbfdK(#.0Q>˧ҽ&pX8Hd@vIGJ(f/~c cXU!P!#,;BDǑFv;2LD™o?!N7YR=?<Ը9Q^iRӦ%9٨lZ^9cи~'¾nòD׋u&-2»>['rwO:SWO1>H&}McIQ6-q7_{5v&k]))ǔ@pJ{?GIfwq>}HI4k/ `@uqwxOs̎/Yoݍ߾_Qh~N0#0@z@gb=w+?׳L?sЈaZ{{/ɽ:n(F>)>m-'-wt<#״q԰J4 Є:yKnBn}Oy0\ \ ԏqrhsec=`ml_۵1{CK^?K;<|;>}3&-vC 1#=#,sV%#.މ=iA+K0 244531Tuh\qAfc Q$RLr8hx8V3\*0be#.MvX0G⭖ޚgm1@aad{aXhthkFTJ# O {Dm,;>Ƒ9iC8CӴ4PK5j&JRP9-& ,#Q6;RGr#X%a`ᴭl)0qaa/r6BpZ/s$T6ޛEZz{Q߇]w| 8"mpڨiǧYR501q#ҋJZD:G#"DjXށNPl-J7yimm:; sRưั BF " #,uvW-=X:BzW&DkmrhB4Q_yq(WFUUɕ̾<O˶A/>~xĚ -(͎⍷gcdSӀDc#.$xS Zۄ6Q#KrkI! ME #,Qk8^n,4'mukfajD"3&`Y)@H1(FM#.5TꩡYJ_f&/ bX9dTd;s!LZf vt1Zth.AU+{ɓ9i/.bTȥ԰9N-4RAEI#0 qeO SHʏɿ-=Do|zsdH1jVnnVQЋS:b85& RPr$oŽT v-[G|AFҦӶ#.jh0ths ȽHKJIlٟa_ &9ـCO!b78s"2f#Tؿ~[YsD!!mb8Keԟ.#,OKesQ;awVQo16⪌>g0QoS#,mI Jte&10g Hf^\t]]MJft@$#Y:v%|gҤ44`,1Neߞf|[\*;Ða}Npef& Cؼ,L>2st8>R3UFi-6ۉ[^\a~[b0kVm<;>^5sc+glz^׷^^6/=%N` ]=<(:.A1i:qIcf61Q6glr47b5mF:+%05ص*@CӶME||e6FD7chG.(ȓ4_H'?jmH9㧚-s:fץ@#.GxKbuX~Sm9(8R:!},D~NσF]^i4Z#տNB+ɺ[S8>[mQ1b6B{DxT+W}p|}r%B#,+:An1j9H<|jFnӅ`91&gs16VW~ldywxKI!Pե҃EƯݎMxl 8yDx3˼#,eU dpYҨ\pZN],rbv@.}HЫ".L*~!snd%/K~lu+Rf9b#CvmZLS,C!JQ4o<լi<ǯW^hب 6LY^;0F%P>S/.[ce%{dgaą$*Gpi4vI 8 S7CAUڶIMJ\fd#,u!J5'.zSDbHB"F*rOLl_xqv::H"Rz.GL7L}(¤;ixiޢY-7do]h=OhG&{#.d5 Αu؆"HE;x̦KM6ݗOTQ'A{`W5x=2RO~#.,#$:I3Cx2cϯٞ捚6vW5g>{q奦.C5s+iӍ88wK{~j}֡k|zv=:e7܎l4d|uʝDeivt]{F#*Oԭ#.pqk+ײhB.5drL=⛠Xsci5dNVFUmpnf&*X" nkm[texeƋov" dD/͔6C9YM+#rNU @θ+Kf? y$.yq1?_k^NtH]`@|P7B4hdNTv fؼ{Gѯ̂>5:7qiSW O4>r;c9V]u |XRikrA\z髳 jZ9e+͡_xǯ5zQ?z)8Cǝq\KgONc3i{=լ{|6RZoc.i.(aU3cϷ\r=!F{H0ф{a`}7i[ .&?& XsfK"&&%)jSP8GB:wNmoY"H :$p?|=8Net,Q2cyىKջuDUF#.G0E8yOw\ʼn7ݱ3vbeG9#O3u֎Cpvq5a1Ȣ^fv: 0Ć7퉎7^N)U Mi3uD}:;z}哤/ǝfOqUT?ra#oeDWXF0ꙖRua0c,B??XᮤLsnYQxSRk$hk: !2`Q?7#6i=8Lf5I_{F:ԦR%30v_4\rPl#L3 w,FcƁfQXLnD$7XM=hF\M*txi"/3n>-a2etD=eFë~v镡e/>ό2y#,M+Z PQk㷕Dtoᢥ<ͱr="$ه=3k]NR`| HSJ.:)aC7Y4pRj;AN!/mո9w,+ b-.lI:k)rPW6e8_ƫKpWW>]4v2Z3+TtI_8i=}l5.f=3lE5=pĔc6T}E6.zlZ7"4cl{aI#.*ѝՒJQGQG\KLPF6Eǒp#-l#,UDW&Ps=_~޺?|:I#NްhǩFV,m~{+glzWS=3:+9돒yDFnW&'cu r#.a#,I<%(GUy7k.x+[YKqf=boG*0'e{i$ݾ1Rx{W GkEuqSS.'r"^\]0FەF5ekc[ 6p0bq[F0r)UYQҏwtRZּj Բ#.E3NqN8eyV,85 ͆Z^a|H\v$sTJ1l l3#,l}ެbCXk#Pީf01En*C+G-ג殻$]1r!  0rK)}TCt~'}{7sEUmFc+.dZuvZ~ZdG5I2Z}Ύ5Ҕ8rE:ұ 7s~{N_}2|*xǧCZܝ=p0.w蛬{zaj)/x̧#.gb i^D;w'kͳ~'a՝ 8vFKφ>Iwz1td?ss츂2ވOO?;2Ms|PzR#qS.ݩ:dwWMK#.FgZV_z'~n}?(Agмx_zN}Hr.(He,SB\з=#Mg)a#,:u A-~rkFu#,*߲,[Hk`~SWSF}&n[:m+e?<{QfsԘ%OryD7tM) Uݷ9Wbu;qk)]E;*x׺#*͆WudwWrQV*!suKWV/M޵#JZ+lArMN0n5ptGꙦR JF}r.>S?)xHinA<քj ?>yCV:}j@q#\.EIT8b]JtDj;$l?zҲye|S,, Pڡo_^3$xvmq~YS>fs~.\I4|PbC|+O5j%l`ת1ifphb袛eۋj:or߾3ni7.?~z)ea8>'[f5[(Lp;sYmw@%yVYT7YC{RWLAhGiC-ٍ+do:^[bZdfxr;#.ѶBǂ5~k @ Mx8@kS.t2ѢwWCu-/Ylݷxj;;.;EǴwС;'/)\#. ]޷vUȔ11/#.e NM2xoնzVay-m܈20ٕJW6쫆,5Ɍ5kTbMDYdI5gb{Umr|#.H*PvGZ_aM\f!>T# xi=+\=6WzW?n:tr7/y`vDzvyKSS C\[ÎԻ8xGhYI{i:k/j)r2#* %LDSiS7);tΨ_\7d#.f\~2NIq 6WfnM #J,>`_dG2/^BxB12U>qJXI`k#Ut4̸jŚ!3 k-"1WĊӡiKJmju+a#Jzhw"J:E`qe7BcOx鐬\Mj~įkNkreO%w:-:jmk+LZ;\J=m5:*jZ>?h֨HĹ+vJQӃhY;擈ƃn\c܁;qbyɒ'~Ȗ vH513!>o#FsngΤ 6AoH<عӾ_ҳW#*ѽ3WOsd42NTw4BHtн'96J^k>Ej[gGMxG/8#촙<1LSR=cwMin߹ջ%-Hz.|Ů}t \%#*ًj8ȦX͚a,z4LL1ۖpͧ^imrkܔAH{T:˱.(&8ȣcopegRfo>8(v4 6|>X[~=$%mun0#.PmNkq&MO4э#,M)}5av$8]ܾh~N G:Q;ﯘݤNqr:Y_ޝ,bimb^!ɨIZ~)S,R]E!?DDQP)vT,~[[Uc5)hl(ۧ$ƽU\s\~gb={}#Ѹ?foz׽ÊpB~|AH36ԘGRӗr:HqO+K[%%ͻ0DLCz š)[eVBIT~&TMHgLv`[wB5I((d>#.`I"E ZƢf#.ɵV-QPrd@8N?G2@\4؆3M53z#.2ؠ@R#.+ Cmg_A|U˼n'jWSSGCrxP#.Uf9ՂjZ^FEx0'˖}F+K#.fRZ)TmWaʤB+]~˷ ̟fnP:MwwXNZ0QP7f}EmC9n#,n|yWy:9 c`γ~d56j滿:;i)@_AHf/M*BAh1rR'~Utb"a$չHn>6I ̘ 8&qײ$J<;!`lh9s}/n~0sn#,#|j-"v3>3pV/M){9#.Lk夦'G8bPVxa?&lgXc#*B}HfD8A;kȆ~{:l1* Om5*'- DgdYĂfʃ*rC1er PLP;Ρ(- [(!@hzy #_W#,M9 8 4#,m%![ <\4"fיWzOfDÕ}7`ۦzp*B64ܽIqƂ7sZh\lޅLvHCh {*WݐxiCb䝻OlJt_}OѫmJcI X :0ĠPc4tr>M2t g#.xY<$Jg |SaӄCx9_yBRgf;6JB!^LE{oj,߰Xv'ahj7\04ᕷ+]:R: |@!Mh' #,#, 9#iQ]*l}Q=Ķ]!(HbA 6?AmQ#D#.[vEk+U=uIj߶=qdGߕ<) {ݫhd ƹ\NO˭#*2hG>8=ڶX`[B#{Ud GIǑi=ګCCuRmyh|om-ХGUîL&#.p牪Bі܁Iu}43i)A&)E9gSẲl^,4A{%l͚4P]+_nq-5)wy]۾=#1%P7&ԇ#.=oU|s6!LX~ nlcj9e[ncVtSr72AN?P0"$.JfԘ?[c|[ϩK޼!Bt6Q#.P- )#,-_#,#,z^1/gosԃH W_ߏO{G#.}WNݏ GA6x=+Վj~.pu| K4!/0[f9sZ뫙 hMz6Vfl`?z\P1]f<5 OCIP8OC#)a,~X3Q#,fW@;zwUTHM%ッ.nXtz)% 0Oz'Ty›h䢄İHw-5#,CԉX$&Lt>6S{DZ1rucyn )#*}Ua032Mw.Z-*ѢZotK]D!~] 2`6Tjb6MNAj"`(鹘~Xd+5ASseg,4uˀ4#,%uxY#.2(%uz8Y9D>EC΄c_4#.˹69FHKmV׊$5hL;#.GTDa>yC%+1Sr`"Gd,C'0,{;{]cFIFBIcx/?%rƎ*rf3Ślp<&=sz=S-a169ERS\UMhY(A\=m+GC[.{@#.jn]5#,C]ЙpXq#,`Iv+=eW#.s{슓[',#5XqwUŮYIk`ݢ!k@Fv4FwV3.霊*U"#{߬'EqNæ4Ҧ(i,aM?~^C9L5g^Fͦ@1E40%~xZe_o*/D)r#CpU;P0d_U҉ ~egWTPQ~dG٣ViD= `)ۑ-b^0%tgI$:=PhݺKҰ XB1 5~VZ~}XA\ Oc`C{ć('hP8D+&Ht#,); h䅘{j | 7}@bjD `!`K?OD.%0R zGA(J(,:PT/1&[F] 1AA` .0#.nD @A79bKw_ףoY{lݛZo&f(bSzTeÓW%?mng7X.t27P|23}vwgWΠ˥'e[0U2cƐ&iG9ZUGJ(9ވ?,PΆl|;KģLvDdFf1W[FU:R&ݧT;}~4ɡ{zؕ!!cb`B_#Z5SK2FD/szΧhTTU$hK[wv#edo)/ #*GWr; bY#*IHgFH pz% Reog^?`pa<SAs^k5Aٞó!lI%),^[iQ]0.[A㧶YaAm\C[q)̪as6Bɦ'𓾣R*n8IwfUlp#*Ş)'6:ٙgqݺ_eC590;XwJiWͯ־kVMZ#,$`݄əڮҲV}6)1jREEP%^n9y !AW!i9U^!)ķ"PB4n2T$1V(]T.MU)rʿ/:3?v5%Q[s%(MCQc D[0QN[7IN`{#,A,5`KS2 jD2SI)!/7t&zq|'HB8.1$ni#,Po)R3*#.ԐEdZ #.e2 }&6U`z#,(-!TW]VY6! |Wb8냦<& *MЛ`#*'.ngcdkxn7ɪS!I#*ѐb^nn=O@U#,S$q`sx_e}.ƦSYK0m;7x1H#*ϧK1LնqVˈL0 pLl0(WX>\^aBEK98(0k0)psjDn$j$hg:Qy~FhivmYE"[;`'M}V(Iz0L%}(C#*QAH=1"#BumGbYtlpz2&`&_aoa"DTw-#, „x~~Ȯ9Z,Mу3rr4z8J V`X##cDqGzP0:nimwg{k~|Yĵ}Ӆ|za 74<#,rc@(@BU_^g8}W+TСoI#yĆCM3E>_ѝ4R w]L|#.R?5Gt.UpNK+b'^BP T6;A0T56l%}htVw;VBLv*m;w=k{zoY'4&,m8G/ȢIb,iØ3^^moGi>k10oU.3q_/a(Z,TGcζYbm7jO?LLA]b#*=O#,(6 mJUKfQLS4*ȳEC'JZߙ!+?!d9uF4\AEjB 3jp 5͚|@VE" CҴ#,Bl_t]>bMu ư%s1SOwk(?-]xE]ŢvаQ G XM}ys:8#,Bz'}m*aI&F#:-XҲȝuPO]Vϣ#.8ϘAv glxk- ,@ζR2g8w}x#,޼t thi(yIcfI?Nc_+#*ηYUP#,iϭ6vZ!M{ulWQs,tJ9{0QsY;,0Fָ/8#,]s, Ȫ+l[Da DZꤳ$h}PXx6*R KlMD8ʊAT#*= Ğ|1x>۫#,QP>f2O3f%_F }L2gp{lP4\zhʡUfMbcSp^J!1* 8(/O֎n'_9h:;@&L!\ր'MHmUUoWl_ȶvQ8&̤X"#,f;Q{kKmMv;c (6|It5xE}KgΓr}VWarIDVQ I]ףd(+Yu#. ?~R*_¤<Ҝ]t#.#.3 $R2؋~#R*n?ьm%̙ mT"ilMBD#*?L+]k*Mf"&Ho(*pSng5G8}*_=HTJ#,P߻gCUXWڿk.WK&SrSjP_fׂ~CpsڨWga#pꅎ\uRDnR)ceVj=h&ߩv BU}Uӵxs-^]k30ZUdS30o־jկ.n6U<%WfCR}8M6#R*˥2y/ i=3FOD ϲ=j)Ί"K>D~©>^vO92,PH#*S"P.<ދs~y%eXpk.s*HC iݟב'돞&gI1#B,]߹êo-I˫Ujh}agWTK=Np k\թ@fՠ#,lLLT>#)=|Hz29Ÿ؎ޖz,%+ owߝ_ Vm8U?W;Z?b%".dy N;:#*æ1˰/?.vv7[^Xתt<Rdݾ1;n/vReyZh3c\<%Lզo;聯AqWQ^yuTgZL*Vk߃ o7P=["v=yEpsCr}\6Ǟrh43ښáo3nY#ȍU]|Ts9ٷ(iIWV~;T@RrK1TF+Hɓ7w2O{mRj! #L$]uOoL#*kLb#,)2dc8Oq5dI&M7|(3)=c¬'zYs8W3j)$.G?(-B#.{Ҽ/ 1Ulm]L[*3+)jz#*~輠8rc}W#,~g}+=J4c@rUL%^W4x33JH':VT{/rn[f A)>nvhyMtVxS0J"f/-)~q:磆:d /8}rC'K{q+[!db^ܕ+ KTIA#,.*??HOsʋeH~o#,B=m Bᗦ#,bWs{ʒñ(n3iܺ|ࣗ"o .e5C /\~S|cڀu"XS$˳x^84uoϘ'`IFvūˏnwNgq {*FɎLlQ^~#,Vq/*BWO0@51C.LTtBevjqlfYi2*20}O B-OrgD0D[g*#,Q"3ށ@I֩diTgN 1q!]Wÿ.#jث?{u#6oZ|ey|:o$C~%fs}}ߧse|aFI9Ϧ7ʩ!l]9&hԃ=uyÿSħYF29qF|4zީNx?cyYIbr+gW֞s<ǯهG#ֲ_K"fHF9ӻ᫴Ǔc`ݠ﹃ "#.p\^'4cs~UQ/sLcPd7Oh/KDeɎ5@~ҁ#.л~[,3Lk9R}#,S<#,V;0ϧ8آ ˇ4v!5%NMūy2Xn\ҋL#,"L8)QќvpGFlZXBtKJITJ Q\2 tcWH镬D#.ջBj9unK,#*6)D ,)Q F#.d%#.x"\EXvf-ݙ~u(cNZUwq^m: !$#,DܳJ^%F#.x//C15[mK:eZfF7hgDF&ILߵ\߬~Fe#*F$G.i8WUA?]W? 7,ZC p?]~GO(K,Țoo;g˜?߲G&AD~%Zy;ST#.K-Z<rZl;4S D͗~& '#.vR#I2uP@ H,ϊ[|:"!kzypYkUd Wꢁ}oZjP+Ix,?7"nA#o~|B$;^׬ٽNپ$! 0b6TSuGJ+7zaK8A]GQؿ?݆Ϻ? uhcq7 ve!Rk;GLv!AN$݈ede^VӌU(#8$b0PڋV#*;OzM`-2DB8Xq+wxWv;+D40ze" C-ۛ{xFd4^#*N&0HB h7WdP"@8F]pQ- <\VKZz/)1v5%0iÖl䳢|m#x}2sC\ /#,M뙎{k,'@}RvLxa!FX&M5E2>~*n2ɚ,I?[[d>t_p@&7i:wsC#.c)Fz-WYxZRF%5՞5ayvĄƧ ̔#,-1$h+Tkϟ#.IJҚ_m|GbO~ȍ"&{g:zh^ұO8y_SMt_?êb"mu#.tG@&Dr3k#,X&q_7O2`OĶ{2z{qXX#3߿Ⱦrp-Xu.Ss&i-ϧ4Hs68e6;iDvw:Lӊ:CÏ&Q(osr(gZ0~e02>C=fia#,[_O,4~J4NW3U:K+ Nmwp>]}%5D-L;D 4jz«cMj>?F5+X rg#.@ZDaGf=_#.ص*Bgnۅa]cXho ɚmaۢȗ!Fj+6[j_Lq$뙘`sDBӝg$\$]ojCSZxλsvc[ɶ_(B!Udˑ;L!Y>&1\mSfGՖ6l0)nP<:W6)bVAB@ C0vW]Wv,0k˄`: 6kj-ܰݣmV4TuiXIӴYO~_[(1Bo_j ~]qGS0bQa0sJfooM3cs#.u\}$UV'Tirh:ٱ4r-Eg)sKqMY/f߫wOek +<xU %߰0~Ŏ8Yeam'{^Yjb/`o7@vH:JCg }g:փ@b)`^w:,n^MjҶ}:䠾#,AW?ӵ0j`}8Q\x#.pNy!,D[Mw䐷<+_'3<kI}Vꃛv9TZI#h?^l_BcCϫ1yHɷzD& h<гTI>WG Z+e!j:H"| #. vC}~pgOT#.1( tP8"9#*?a9X:ODOIaJ>7yӔwE$/禪Mz u(yFXHN5Z/blFSyA D`: (8<[{Ys"#,ߠ) t]\}jvA [E }Kwn:P(#,?EʪC~w_xrÈkr{6rtGzNs,Xiu9r2 w̻Y6# /ooK;K|H`OB[1U&f`G$% )tQM-i|G*k)a}9ӫ\&-Љb'giZ?iP/ U|g0acizf4@&MP-6aY>;zxN!5 9D%iҰFi%!fo#. Pi^#x~6|%Јh#qCow!!)7Y*w Hu@$9/Mw 0#*:4d 4,#,!ƲtϮ;[{S]#,8*Aa#*^28РU0Vffr0=CW2s&ȇz*b )f'UT"'6#,ڣܰ0~`5z242=Ҝ˩!#,B2Á?s~~!A ;$lfwIcC|xܲKqU}ﻺV=o#,ѡŬ#!UfkW:|R17C5J©ѩI"a e̅:B):aǀH|J7T\vfUYEY.X6#,#|Q,2"H~ۘ,XD1?f;7; һD ot'|Q-If(,"C%$8^k#*s#,&#*P]O` .-m>_es" axiAE~R'sJ z19COˇ@a#," A ٝ5e[}4EKD=3X2=0}?{1Ijtђ@h"$F,Vt ~džǸ7w@&L@7kWZa~$=nݽ8HwNq|<bfm6AǞ˙8M{9!#,*1a&#,| p-9сP HBMs,R#. 2(D|#,3 R=sa7>J}`T/~wO 퐌c>>3ռO`xǔ[~JN4O 5z ܀]HkdI#*z#*rkjk#dh=>o/I>SȆmM|g:~]2s^mg-ʶųĔc27b d.Dҫ1ǂŢ9Rtfp)!i9V{M@85V(tݚ\TDJGNsH%#.&$hi{#.tvu5R(bg@L3Ԣ1ITLH`%ǍFL3Y/|ޕNǨ˘n})GzH33<I$KP[<*B2 ;Djvb6;y#*yy{mzD|#*|#,#*{Ԯg7aOXx~IsW*<}SQfEV~ަoi3ַ?RU?wlO겇^cCh9iH#,3D"G\BkI1Ж$AkA?6{A-$|{m1kp!KUf Uo޼#,_lSClCvo7E:C2,K* Q'#*䋛7\;SfsЄ:J55,Xs_߷?ʼ_)Yy6;1D !f#.a0P<#,I F!6>? 9bIrI2q3=SL 4&1,\`-!BDҋ]i:S`DABȟUl[,MB#.#.H @8"4 d?N@(qD #*K_m#.N?r&lfxx_#4(G$biJ XX^B%;xv+Ah0"_OI>sl<.TL1EP~{Zj0U* 2Mfb5|gvmyۋZ0(DlH$lmVyuq1oO>!:=-꫘mP+Tn&ߗQa!m 0$!I1"m0?i^ FdEiW0牑9#,g,I俾#OTaɱ߱tK73Rol9g$EqKl%!(8ZyvMiu(L_qAx_'hH! b腻zi$+elf/B9P#,87F0F* F@n"%@t{gt+Ϥ=&NTH$j`q{t;xP0G6lS#.Pu≜8J_$  : Q4_k)#.)r̄Wno$'P%'og(3=bu$|_dVZnv;;Da JNCқG;';f|o#.k~4 Xt}pf D1XrjN@,6F1WL+ #.5Ftr8B8#A iGad,a#.T~#.s 7#.1b"'{ì yΞϼ . EP]a]#.幸'u:\_#NnWV2S5jdOqo*+W.\N-NHqȹ7P@=G!`X,G4E=Ⳃ9XL#."ϸYcft(9#*<7])9;xn[ " vֳ)D<^e2_o?|zI0TTƽy #%lu$*PAbɡ)TT nc!$6~/Hu9*,Ҟ=߶Љ /F`]A!X ;=vB[ #*m>R3b;Wo8#?wWШ`RHW?EǶ ЇS{>흸U#WtMFwy-S[d+$F. #ݟ͵qnq*HKz"[-gqڕm!njH$bԆ5CGh-#*E$Fȿ?'c/>~5UU]~Q" -߁ti HkZ#,Piw:ϔR0ғasy(?r`nځt:';WNdh(H{lxf6컬Ef3ETpc]]#9{Nh#Ix}ZE20aE%3hҊ5XSe%wYo|ʃglm#*]΂cA&5G|?>#.nTY2PB,x aN#,,߄WVn^vuOKyܢ?#GUʞ{#.EC%ju˜t̤FYa("e`ɔP02 , Rс+z#**̈́BѨVfV1VѰUoo:xbL#.ģYRM3nB_8 ٭'d-a,k&1eROPBc/]#*cA$^YQຫ@8$l7!" @`w`#*Z9&P?V##.3 5b&;NaLFz!ieo,P:a&?3_rpe6n4>|~Ve!/&f>@QI5EhCNMNl'V\W?HIP:I3| ?pǘd<gyߖaPةSm.D#,'1F;O7BbqaH̀>>ɧK71oOAHDP14Z! (s}ܟL|w%ܡDB̅~~3{<ԆLT?9#1S6?&ƱL+BRͬ4LR4g\*C2f mh"cQ=r![ #)! Y8?*kM)8Z;D"#.jǡdm5x9MEA}F#*߻x'-N`H) DPN-,O5 C-8vpR|8~·C몞I6ίzD(ӑ^pzUg꼪iV\!:]ӶuS{0_$dr8]dNe&f-" {r|k@Xz9"˽&9:Êaˡ.Zh}؛}B}4dL9yvc&yi:\}P G.iv=&/P|oln*)~q֊kx7vv/bM$"*4^-ȇudE,0;%!_Yy'e蹮ZJm\㝑j(wZ'K&n;Gx٤5?M0H؅/t΄wQq=Xb/p⎮W+ŭ&Vb/\ cLi#L.]9YQRK @}?InC<ӬC!0d ξ[?>#2iO郖骪hpL@.Lf= i0-}[pC`YݣBB#O᰸{[E8H>M(a0h`Mgx1 >!p6MaUY.6-26O!6aSbc hA %̪hYW;87+=/B~;my~l)yسs<#,lEQUQSrFdO$p&ØNy\2\`曂3OB˅JP02R7Jm;X֊m<%5L$aJ<*UZY+ns5{"d!Mnh59FeG!xFb17Pk+ 4(000jiSu–h05&:J)u֘9z˝/ðu'E{(,$!аUS\!D,^žw7.CzU.W] uƮ#,ΓkCamu]NrЁ!CTWlj#,E6aYY/BQ#."2#,4_%/ߗ]mMTuu>-3YKcvbW j$XH?v'}Jr8*wmBw72l6~I| p‰! +:-.QF峃:Q#mLXtY eV$R*#. b4v=2r#,54by%MMl?!rzW7̓Y0|HQFD@А`@bϡjD{F1=~~~6Y{fS-91 `Lo!65wC:+ax,N-(f#*gKdI\3#EIfҠd:#,aKg%%IeM{&fU^M*WMgy Q/*DB $C*JRzdcKu(f}ZmNZSVjh6"9[cg["#Ӑm!wh^Ǝ'nrm|myU6˕#E2X9G13ǨjC>mad<$`t>!  q˷vZS^Y8ɱ,4 w׻_Wn\9DǯL.7o%&-;xŮa#,πNa!EyD.3֝M K]&Ie<|}Ϳ#*i HܮGjPHm(;Wy.oDMPG@#,2 @AN`:RߋȲzi60`| 05 [սCz!.M'a򸱄S#,%"W;$*^؏,r3<Ft 'T(aȠ\`8C4Glؼ@sz)rl7o&ŽۖHHWr+4q(EKAݜJ>zc2D%'?%լ;;.켏 cf[aăQ<8KK$SQ"Ă$'/xcN_rvcKF|{sS0J"LǙ2ffX3" ̒vK^mT~t8F\务* ,TY®`4TON!{dkQgC|CZ)U s20AS 2L,)98s&+: y'_QyrZިΓiӢ0A{uј̤ Bv9I7EnXQ¤]C{CeM=mT]U+gUUUZ\H t/#,د.\b+ۂCX*w{* I0`F\oRB#,(٭fīwQFD׌Yr1*0#*cq3B.įg)0Ʉ>)Y S r"2Lr*#.hoݶZgXeЏ R/}mdG$hplk%D!SEX K%ŧ;o5q*Q>%.X`**,F"Y*hPrP5E#,+R (|x# (.S@|PMؤDz=R7  @@=VP0̸~Þ(l:L^yכ ƳPԩ-ظ}fd1l7CggqR2/48$EwEqUI?ʔ4{ip#*>F6I|udο3E34|62w #,lanwg">L]s#*S|#"2#*A!!kU_mZɭdժVF`cz-T:E!Ȇ#.\3r>"2"!D)B8k3T#*HZ<2 C,Us3#J= ,YPl#*L+&,]8`kẪi6ǂ8cTZh#,M349c,0#,#,% `A+Ti2&`]2U{ȋ#.;RZ*q9qֆsޑ*ҥQCD#*8Ԏ߯?/?fHcgB2[p,)Й@Z zU0~nD(EBPyZ9豛j)Q(/$&YeT?C状ݐ]CPNo`9I?U#*AǸND79ƦadPPlȻKJ.ƐߞX w&m&o$|zap-LTF 1ʃ*cK0Y#!ڿ;np}T=V'QW(;%\ٲ<>x&%j$(#,p8&nݝ|т %BdjZWRpDPZˆI-q=(н)>/3$ylMVy ZT ^Gtx'HXK|x-k;W:ì?)Zn{KZе5j]6w:k$O>JHytyL^ɡ[3ӣ`p!!Ocf4踱>ErZb#*V0\4UZ B]BB,i0(uAwǥFѱ0X,K/@s,\㷍zo鶉Uכfh{#1" L( 8GAyBjQc!۷9mLQW0AU)AX_w˼@.`b^$/ܯ|#*ǚrz&$_89k&V7V<a6rz4~[9>*k R29P9J>U5#yz2<@fq$Dz'K?#;f'|P6?V k/Wf(6 K_fa#,6'#. -#,ũ)dR%EԳDuKksuuo&5(,C#wSIц.Cew,Hl#,XP $s#,|hkypݸt~^y%̻,AUT!#E0AeQ, d !`L݂ #*^Lh*Q2X<; goQ n#,&(xl46Q]\#,gBR0:,,:89AɜEQ#* 3 s 5D#. Y"se+CgȆLK*@tȒbP**VblSh7eI)X#2\c 3֓_|))>w$a5JVFH\vs,A2(Xו#.#YofmAA1DI#7nOr 2&5.Ք 0|; G~D'#.Tbqi#*,F($/d`~+{||}}{#,#,x%#ԪFqs']z9̢TB!%IzT@s9[Oߡ-zɦiz͸ƏoLܩO!ɪp0{F#nQ燏 #,Q'd#.6l Zph_†E`ư! Cy#G#.!A 7[$`*i##É3荤Ra @X*5 6 = :nZt4ĸ0@=b#,2 Q#.NPȸ -qI9&@M!H2sp2`o)i7X_HmlmG>\ "6@F%8.A0\#j@mAnc~ oAaMG6gfM2j9Ft)ЗCD?fCTXP} &}kMʪ!2n"@(@Zw.iQ+eF ŁcuuI䚈gS: Znr\⊃ sh3TbxgwbN.'=sk<¬OnL @hȥ7MUs ҞT4iqȐN] I_M4uRv2o| AlQF MYvY*}o~|r;ʺ>R<4#.$u/ 'h f^$K@K(: Ȏ 1-i IT;Fܬ`h5QiDM(% --HX (bȐ[&Ӽ`zZd~.ND˙#':r0F`S:xZq^&Q13yN :^N,ʋy!d #*6SmꙌ.'=t4Dʺ5ȤXEȯT-ۙXMDK겆Ӎ1Z1X!e)mn*'$$ȎЀ"E9fM#.R("2A.qP\#*n Ah.MBȸ<D/f/edA`ADt/t~6l'q!ہ-jR1u,0gabSrJ_6iٴ%kHI1] hgL|H9dAÃ8bG w#*<,Im/{.nhIVHѥ?ZZA8tᾐ̟o1p7U`C 00 #,u=6%ơYҴi*#IYHH(ENU[ZU^QΙL>Z#.z-&+մ1a S٧߳3/ޥv(7$F0'/|<)a<մ_ΐk]IKΩĮe#, ~ۗuz,`@6|CcA XmeR4hE$dD2dk^3Anzire5e5'| pw0Uio1]*vϖ%2rb<]1t߷ ԣxgVthLvgJcZA]fk٧R\`:nH'W 0tCpA?edX.D 1O^\דHyp7-Dyˏ44MțfW}28.**t!;Vhi"tӽL蒇_#*:Ά0Sdc3(c?|7BffC jyBKT5m{&H#;<=5cOӸ5r2Oij4\!^;_x@`f#,/u^jofZ'ޙQժ#,C*6nVFׅNY-#*r,fb@هz`I̍k\oo]ATFO$$! C@#,3P7[7#;"}>m!/-Ci'h`8Rݬm<8^jRGԓ.~Zٶ̓)#,Sut8Y9fcZ**]JdBy51-,.KWZ1fޞ1`7fhztJ&R_1/Bi;PU+t6YL##Qqo.Npc y0B#> Lgy(jxOv#,`[\QFe֝R#pnrsVN] Q@"Ѯv6D.1幊[8#&ǜA.Qbai`gѼ3 &]Gj4F[Cbl0<#.Y$ k5v9mHb̿]۲'81G^;eo3!cFebsD;7 QDVC/ iS"٢ 1Dc8PzqoPy-ptΠ< ώ7;'q2:j#.@I&èt9(hsЛ1'm\b\]:Z!⮦M`}nD =aF^ 1tsѻ/n&#*=av'8'CQ<% g#HqMpV;e$d!ήm1]:;rSA94$"o4cZrϖ`՚l aҒL*oO㯪dMx`clGh,+Ejy2Mt{)cً&ǭ2i[rPyd̛zzzgۥe|(>u|nk .*Hr;`@JNq׉]Ǩxj70ln6i¸q-n#ll#,j&(]&M7K|JRq 1dQÃai#.AF7 `^n7nܮ;e*k-b G073ZZ]Yahj5vR!)Ya }<P ӠNZAzA*bbڡr䒳P bq  /nN2>*(Lٗ2j+IABLְ#A Ḱ1P 1ML`i4b]0`FS0 LaDM;)iTJ=VfC(g 31y!Ѷ*< 6P%%5$Zܝ5hdKYA&+Gq:'EHwDăO9h"<0Yێ;7'1 G0gW6E8%2dV@aS$D) f`Ke.Iewb,)% ۙSA&J7ه[Ba6zŒzh&ZdJ@FfflY)"Pj:VD͕!-%2K&P4W $b{#.2j::@?X0NLҗЈ(dZcH1hԪ'r&hJh'I؃e"L9$C[Ph!u-G3^7d:;CAJ#*:5dΌ7F͛A:/l9t&Qlգ0d1N;{#,Ԃ#*n4#*CB< ŀPBaepF'HK|M^Mn[zڽm^KZܷ!qrQp #,洽x4w/Yb2Dԣm-m$fO@;VT"_03%4#.64i!`Tq*8+!D8Q^CT}X/KhJU"!9:`#,TH+ȹ'#*ڼ'#*fDT&t"\mv(.$B\he0;ebMWh%ӂ`#,RaE؆aYh#t(QRc@#.v(Mi n¸na5Jg+P=ʿ0*Zi[~_Ee.M3J3JnOߧM TOyw#.CȟH tv#*r8ńy!c#tǍ.-D7"HWŌJ,~XRnO_WߑtՎՙ-el-mHYS47|yF!,xPfWk l](F@6#.<5GG vkI#.\oTOYіizJ!i?30]C_xXj FKjye(DP-Tm)ѵDIQKLDT61 #.><4@CJ{uwIdK킧ٸ)~M.~;KѫM`4ހƂMeTA eZM*&ʇy4xMZ̹=3F|zP(AC2AHJ$@Cf1#.ņBd}uQLf-0x$k7D#Bm"`ȡQMbZ ̊PԸy !ghJ2Q>A`dxDH(S#,#.Ȱ(&&Ni0Q yhLM<;rƤl%')KЍ∄ܨ g%K#.ǩWnYFx mԁKcآۈUi( -A&qQyD@^ HxP,ۥ|N2ASr #Z-X.DE֟k(DI/_}\`WC _N/ ϼQ$HTg'`Q0# [܈9kưdehLezC8[dK`ՠފM15dɕŊ, @ŇF3XXMBm7k/Y2>=eMݸ>wcŊ}akwG#,dA, q2enjMtwW:mu5I[PQ,b#:*N. (p1Fmpj"LgixIo0!BRS[$4G]Ae{"h4Ά<ĢQ;kb 05Z4RÜtvhg:978"d,8F#.E!a1bCE=#,(k*V" VftmPilmM/ Ds9(}2YgvLq>0y2!G8q;d&=1ZB#,sC ,'!.I"( Ő9xokeAE #*PJ` ,F'5>wb$Kh\As|ث^y&]dӦbD %AtiB@ԱDc>W;dVQKl]s\sq-jZ#,J\wi1kDNכonkvĒ!fF)8p6j@Ele5"lmE3]K]+K51b"C1"l̓REki*d#*F_6HݝRƜqƫdrDTQ5֦S"p#.=dLq)$v(SfX4,*+j׍zb#iSD=몂LsA6c[Zilm%Me2ifBa%?* ZL5$ȩ-kTԱ{Qwt[uQSiTV6LTku_cLMH+cRk[$m|-y^Y2ie6f٭kf1iS^utM6]&]em)1+hK[[ #$K$v RVF;pWsw|&y45&eQ1%aq~^ %)BzS2BK[ώMo]3YiQ,M͢Rj}%_&m#.@FD hZ}e+]+5DH)G#.l @H}SfĀ #*aHlSWŦQ%ڴ6[2iM- i2VĴ"QCiȕ&lf#.cT$ԚRVlQfi)fĖ٫&d`ER%fTmiA"PIJLFIE,ڦƨZ RSRlkZi2Xҙ5)@A, #*%R+Q,JJSkkMU)JEje5Xִ[)7֪ZMZET$PȒQ[%ecMYHg3q ƅNyVahY$<^#,)Du/2Ȟ_v0hoBC;]Qv͝vf͵1.d]̓q #*꾤^|u 6ou:F,"R3$P(Ma""A5,Ub } =JЁn T_-KiRf_UC謲(QZZ]::ljpر{oMjhhn&L=Q@d(NYǪ8Tpp;Q CYnu0l0}g#*,(a HD5]\R"H<#*Qj*J&%T#.CX6D+HlraeFGӭXX on$A,#.Q1[(*#,C*9'jjC{z5%շwE٠r.<㫡&+&v5FL$l Ӵ. CW,w{ In?;+#*F-b,WBIIIV~&1(*h1!ҲlCwwgRVI#*!t s@Yx4p`Q#,m6$9h3N>D}-w]'+ȫ&h|OH(R#.ܔ6Xp:#jfZ,-F"dI*{-yc4:㹵Ѩu &]"LHijL=hFDFKn]-T҄ꂒR \<8WF$Bly,,j.{Ti;Q46@vD;72`-̾׳홰2#,4ApU X09ιG@Q#,2/8#,hL6aj"j:ɶ47+}bON2hnT*p9f8ɖĬ{d@@h86BFG䶕M5ZLXFi%[=惑IR6Bkwz%2#*Ri6z4M$Z,Ulj=/;#,Zu@5Dh'}cgIkeRFdw^ki7vC#}cܘ-l9:$#,Dʤ_]í[jHw7cY#HeNbûA#)#.!(RRHV53)vDIRu2 (ՠ shƨA-z3?GAy ^&Wʑa#.Dv"@Ӊe$Y 8m.^nn6rT#,]f3 8̒"UU#, l#,*iTN `gɾ7}i<^M#.vqiݔ:;' i `1Y:`֊#.).'3fx7JPZtġ&PP]I""JI֥ [JYWkmGmȶ+jY=B\4DV\B#0z)=f>ovgTb#,,/rK5.,#.q6{e?gɄ,W֊hT [DVM5r#* d`⨋m6mi)蹴LiVUnEb(&5iFޯe͵5W*ɪkDCC8 Sb…OcKˮ3LPB`5Yo6Ŀ``ah2Slh NPP-.!f؟y5#,FX(%#,#.kE" 7V6}]gR32F0GNvZ͠"xPvfuuݻlF#T)(iT7 qH"## 5jKO#.ky@" q#,;#.{ݴ(#*j*H?1-O@dox3w aEi7Gh` m :}#v0ѐ*UBZ|,sSf|wTeRI8 Ȁ9 }sl3]o9tOӕu莟1l{G]A8*vThg\n58DB{Cc~>vš++`U_C70}U6ţ놌X1Ayd5e1E5E6 u[#.EEP%|Dl>] {-cM|9#.u alN,48o^Y͟:aj*-G#۔W?C@!!ꑞ!=Y#."}Vel")΅e*/Z,qelawUTkkx*0wL(aDa8#,%P)Ht90ڍ7 ,5`81>/c[rUms6ڲ22Cv e`CLu"F4d(1]X7r{#Eguje]5IH,0&[փ݋bcZ/q"5#,i*0o 6֤n;$#,!66č '$:LoSQ<lVÖTި#,"(Zjic;γssZ#.nre{zK#,cs !K2.i0gDSYQoOUL@۸1t@phxYX4TֈRA@XH&]nyX6\u22#.Y~sͺJ}%[ljIḖ~={PC#.e3-Pj3%QFئIb%#,4>7(t3G+y=fP^U#,~hF5QR#'idى65ڢrLD06\WSQڮn@"d@`(Q6!.REU}#*FL ټ}_Aa`,I*sB#.)N.7G3Qya1Lg:zmW"( Q!#&R+YO@a ] PlCܼ= {{Ed$@\laᗉj9mïG>k,h@# ":0"7I58lnMmn\64j5RجC J'$kkѪuf%{ukJ1#*(20نA #,BGn?n\z4\ !a6 `ti9g*h&Iaq-L=addG1/܍]@Ԣܚ5a'Ǚ\wy_EP-IRUM[FF35tM QigmmiTIV5SJZDʹSYRSKY5lF6hȲ֔iKJEdZSJaѤ[$"h#!G!j#.HNjQFSZ+vo %@XO ȞǦUѭ\᫔c&GT$Oΐ]_\p貾 XjP4,J=st#*=ܣv#r#*'A^0YPW;MwNKg/HbR<#*@?"{R C#*zBxxqxg?BVyˆ.IBzz"U!QDDIX-0`?^(ր-|r=N 51G֔FUM8'\8*>@k: 9kRN%T:{=pضw0li@ 7?y˗b[ 5 88JY6h! MQxvYQC~L: (Mm*q~2|al&"NH8[FYD0uű~[dBdbt[|.uW #,qG/+_}LS .6i@11f&K>^&m5V~RE AN䥂(#bKw>d6kG:htt#*꾟mWeA=;)J!&#,#,RZHb*\KQCOun ʃ"$G 11m5JAIvN"bG p !)%xh4) 4Ui3Nb0d5#,c #*W.1'e:={xU)V&?nߴfQ#.ŶkFK8]gB˔Udn[FRP#[$Y Ti$׍Ek]ړf8kp'0ax4t8cLFeaFIͳMF5?)seKddXKIYz_#,f6-L"JD(,ZTYql#,d3euи_k0\\;#.#. B#ftZ Ah#"UJ#x*GyA2#.{H+u^;A3^~ɖ*LD@"aXm#*L:MǔAIB@!SisܨC2)׷fUİmokaw"j3\ldtQ 6vKotEwrhu]vxPD^,Rb#*4T$T`¬PBhlY,B$#.~_=@6/@[kbAEMUT@HU}|Skb *&gaWP n(W#.7.iXu3Q6tFWyD.w4F4=1IHqbSbF0ɽk&ɇ4VuLī5ljKy2u`(I2p`p!nՠF#, E"#puJM) =Sg;N"e\cHH%@9{<`]i5;ls-/Pd&5N&3#*}T% Po!Eե&lfTj+_mỏ]vwjƹ[r%kߓ_1 W,\͵L_0XyfC5bz\w+۞|[{#.YGA Bvtqڜ'ϥǦ+?ꃈ0]kR/5`m";P<n611#,0iI(4Ocea΢i@}nl@QP#.FQA5G^(0cSWY!{ub{*8BgLRS*T#.3(\j dK[WI0 hmh=/uJ'9صS2ˤEh£#P3엾c%^EXbi<#*3sDFсcؽ)2 ǽ lsm:)b䐣9#2yHoGr h0&\?Bq$Uﮞ#tp|;%kmM5|J@R ~\:G,x99]#.P>?@}v!#*n;YܜSn[9"B~sZM:dáA:1Ej(mjKy"t@.!NoAgw$/ôHbE5 $$@\uYlS5Jf-UlhݔrM+Jk`,cɁsC=#,?KeI0F,G*%keEkU#h% T/_5!>rs1 fل/{ƴw6m$/w`ր) &$6e!ap}VbE,4#,S_T+VMۊ27h_7plred4/8{kݱ_E%y7zN0<^į6R^"D+fflY[Ǿ#.|>M il2)Nōd?qрtMFBXhh+Y8 ^>Nj_:?йbZlDa24Rڤ(M9WVҡ#*-m RF~FUխfKR䍷PgTqMP8. Hx`kAd2#.aM՘g̳bP0@$C/tقtEHnB sBlx]#.82,#acq4kmcobwB9itcF߱Q0'42]>!#,1' *"fyKlsxIj@* DjVmEmmF3kIk[*U[k%k D`1R0"PU{ ڎ#ʹ纞=]l&#.8;PXJd tV0Dce+5=n[mV:ؑLhy[0T7&pOnPhzT=#.@DaA(J\ l:3c砋<Ѯa'Ρ ̺LGm[قȥ?6ݥiP&$7rOIޠX5 Y(t#.nH>-~%?SUI啪4`+Ъt4㯳V;K'8r˲cXB/|]4צAZY -VRB̅^R.pkBo×~#*F6BM>~ZIv@v@z5tnʢ;M E4IyԵ(-I u,~h{Q{PNo#,[u店mI[wWlm2QA@ɀ1f/F3ш1F#@\D+9q))(b LzrjChfT 5H!Ƞ#B#,!lXؽ`OD-DaA5["ٵTfUΑyiۺʙ5<|[6ѢW{WҔ#,ʶYfe1D-&k6V%ci5B&)KQa{DӮrl7]żCiT0/4LF#.dc eYRql48u&1FfB`h CuupǕmI"2hADGXHWlbf#*g.h0E#,7qW!cL68OЄD)аC_h{+#c(f*бy.ܔЌJF@ȂDVs"dMb N# 5т10c6Ѿ#.FL1YXQ4#,7V#,#,Ҵ!In5,b#*Ԉn1oۗ6#oaqe&2q0r1j&J#,dqg =?6#E=Jd< uL֬i@ 륤cxT)#,Od1aو9`1 zyTK~#,OA$-*!S#Tk_5=O:D`fз(3sɁ4#.CFKd¸d(,Y!#,6#X UQM5oPDtQYLUeȮ)(p5V!]fEte#. Bh6q#* 3*ґ#.G#, EIҊ"WǚUVmT"b Q62J""`-.K]#.n;vD#.}~uw>nZi?96#yhmZU*'J'"G#.4ԃ$Q8du<^wᲩU[5]mY`V6э=Mn*L>S⠈#;fVu`vHO*Qp30#,{kX"g'C.`<"2kkm m#,~̷D?ޔLg#*>EkV5hsVוŷC~~=4\dA0A#*\N~P5iI5k\hX %nBpbXͅ{5hI#,Wm}kU2Zƛb?qyݻw]H(DeR{%!a#ZawiZ{ҥcl‚f#,&ZRcVQ ՋXD31@aED* X^#T9`#,&`C(0Rrb{޸1HpiQK*By?^sx%c-T}BUgՙ3p#,;9_BxA1Z۴~'gH@; I= *(y@q"@y})9P*HxCf_@5H\3CB;M?4`EN9GlL=RvN؍(? ijOOл/gs.1"Keg@pΏ*ǻ~MKLG,tIRi!@23EP&Oey[` jZKcH 8Kl@(`-YEl96<@)E]`neyto`ݿ䌒6i}a3gC9m7@ wnҫiWH!VwPDw&v47|[FTv6Bc$TY UVwi5\2My-2ZSRLWn[K#,]5+:]B廻txҼk,lymXhjyԙ6IunM)YvWRwv@41B,?@pWԞi,^ޞ,P=n@lGSĴ0"YN"YT^G܊xH7#*|`H(9(޽e8nZ5Uh7!R} P~~=Rn;D_XfmQ)QTJ) P]ar#*4^VXEXD0I(DOQ(}*ѰjW;l3wZny%B TӬ+ʩRg^>CHg#,#.yվ#.Bd/Z*&#.aH#.QYmεQպm6}yS]umڷbDʃS4 „#,iL^}e*F#*"A60{sSX#,s#,A("+56Z6L $8x3#."#*#,-omdU(H#. #*2H΃tbHd&tDx#,wzq F 0cKOxn]!p#,2Z|#.gY'#*&էȡ(-ſH,\M/خ)P-}(v-4r!k{#.rCH6iHili)bD9e-ܿZ߸)@+Mva'@DI)2XCib/7KkS]MCf4@8CPhȘxQO'3t2~w)>(U:#,#.m3*:ήf,+ p SF,sr#,n%jUNy/JlJ3: c9W#*omL a4 1ij\㴉#*PƔDEmeK@PV"N:AhdhPCmAUMxEc>Ԇ2(6=о]_j=[[Q!6ALDi$gjԄrw[kxkk6V[L'O^+#޳o2-Z珓To2NR׼}C.C>6繍fA]B"#* )d.Q& L#,!u;7AܴZoc':#f.05ѠV'UOP$mdD=!t>_DEI$DY#,ŪO3?5>wΘ#,ԐN#.z21{]Ej[<227{N|2v[~cE@ő_g^RJT^KTM2+x#.(v|(>i$℆'W!3*o@q33hs h|Pݙh3٠`KgwQmj"( =hHpኖXiݿq͵9Ggm4Bt$X1djELm~;&-*wLb A+vA*R#*hP,)E>Gɐwͅ$}PT } ZaÐkEYM tD40! h_C͓`xAN=e\GtBs#.=3Ll#z#*nx5wwr5L2K0$GIbc`#@/\V^!Ǵp?2=ؚŪˡ[`Hjl=QPp'w3!s0\KEǻ#*za3&Ŵ67Eg!,'[cu;&g82*PoԇXDjt`w.G BoO;kdPYk$""2mEdL#,6 i K#*lUbD2:W.jIsP"Q1llHi[+C[f1mȰE` ģw$#,*!切MT[BY@XB( dj2m˥Ntnq& L#Z ZMVeX*֛a^%a ~xHGFv Z4w?KQ*v!VX↊F(&J C{ME4keEi6Ͷ{.uE/.nvj۞Q4KA&#,5 A{X&6qD51F_S=Ok{%{M3@d#,Ʉ#(DUiǙLXFn",TH̠,Y#.`Lq#zf0Ԇ%)HBPG9L6lsZ][Lqle",fg&T `IVն(dq%oYȖ(̡F=b7bA{9ÎFr3tDƣ62 *z֢\Y8. 5 n՘&⎳ Qt[ s#TrU#*#,c0oŐ QT`hdS4B-FDP6M4fm6g3v} fch.b`&:AACXB%˪Il si&PajsfU/o;˻YE C3X ha#MU3!c`& R4zM2Mh&l*3t~h&iExT.lP&)L,FhiMSbFXkt jIܑiJacZT)%#.U4iLHB0y7}w_ъ#,4-d`!G`#.lA=P T'~b(PH;rQvg{ܢ/ h(}D!E7 T֚eۯmP`h^ǰˆRPK9HA02 ڟB#. J#,;܋Yw]y?[Ǯ,[+uutjJ,PKTZ=i.аG](7ơR%@OBb˕+d6b`Ǝ]GJu8^ۊikvwG7}.%~LRD6db?Z#,|#,A-`,G~"$t7"h{Gb?հIȱ^\"e:s'2JvCThʺ=kXlg Ixn=F1i5N9E$`\&A8^#j;ˢXe\mG9W<eҦ۔=qPo`(ٸ8:J'Q>`|0J۝[d`00ȇw3&!B lQlZKV3ONJVjܴ$N PlP aL6`#.$4JIWm8.|eݝE#.PWy#,EWUR҃),F`][zo5jt^-xr^9Ey(Mkt[-ZoK(YP`&0F#,0icD#.qS `v7|3>c%*#*HU8>$V#*lDTK;vrOZx%#.""إ(!0!a5?:0H UQD{crZݚZ6wpg@¼(VDĪ+QmkQ6D" Sb6,X(R`NF D""B#.C#*mPJUBl|=CU=B#,>08m(:sJ^@*̿Πq6aC &O?Dszl^ 87@C,HcHF6RƚHlhٖe%$[hFbbMS*bֱm3Qf|ǟ"$ek2lArc+"}RcPyC,##db1#.< J`k1W*@E0Rȋ#Cc$u P*6C #CDB##"AR#.#*##*-vBb $P)X~uD} h@՚Z]ӳrj{h(ҤAlb$7ߓd;*y;qYZyh4@"A@x|eM™:ˋx6tM`,#.Y!VF@A1ީ-$<8kbHe.#*m“6%;מ]tWK33|]K-*[#.WRȇWO8GQ{ki3k@QEkd.Z=0Yeml~.~ fLyu%%bw6Oy{fIvWZ׺q-v]<\cqӭt@Ʋ"LR٘}D_Bڗ(t)'*}6TBB99^Cu*:Cz bWE#.qw;\tR|?#,]8H3Y}V>v3U,iaO#*çe:Sؕϔ6ʧ>';]*:"*+%K_{^c>5ۤLC"Q)S3ڨKI;C:@w01ɱw97NIv{ή 虘}+ejs(9+'?.:.)CbwG2jvsUFlώiDPMJ 3Hl~IaI-DИ#a#*#0m{;KLxR&ŜÙvxcvw#AV=Ƥǒ^dQ1#,ebƱfu-5r\Ιo74#,{pF#Y.dLGlvZ9#,3S2΀/]9aR#*HEѼ Qmf̲K-<Ne Q,iʄG^F3$#.u#*ـ[ #*`+nf9 * ;lk:U=P*f@v6GzYXn1@RiDŐLs;ICH)Y.$gF\m>Ӝ>OzһP{u-9jj>/~_NZ*l7UwFe1w17V6'#*7[~O~ò ctr>*Gn|Pz il0;8~kFds$.jS$2*!Sږ3o`b#4@Rp#.sAM<;q1$iqqľm!ΙkEZ 2c4}:Sl4_]ۧeY5A<»ZJF]_V#,Q6Xpl#, ^˨ f#,+tzG}uc)j&?$,DkMߏ5Ǣ:>N"#.P!Rڐ{{kqߢbLM8LmCքWz^*nG<@DH* 2"+#*PsGת)U·g 9lpҔ:C?Cg^:A Gt#,\+:&S#.$M4 B0`3VYBǓA)BEIj#,U..4#hUTD`Aȇ zS"&PU,EI#PfGͳ;S$!,յebK$PlA!-˥V%1woT]i881$#V[/s#c7l܁AAlȱ6$܉m6R-ڤM^Ef{&^b8u"gHeu|10F7€e #.#LLa 1j$eH!0bEk3q΃4 f7˩RcXKD #,hR$[aj7T)!F1=흨I#Z5d3mF#.R(Uoi4cyHHܽ8Z8aw"0d``p5#.3i50um#,7I -`ۺ+fᲐi2pbȹ :d#,Q";#.12]5)C-U-41j”+CaɌ#.1,ujfgY[5k*#JHv26 ,mJ8G*nÚCX Rx*+#Zj16]Υxmև[zX[2u6 .µf@3HΝһYGSAi02F"2YV ,nnap]-x#,H#,@dD#.-CO#,sˣEiMr1Qj_csiMM"(]vdI01#,jKh[=bPUguJbk,5%ݛ&cboZ-STUIJƒ1B PL{ٞG wFN#*yA_иL+}^ĺRuo d] !g<=u5#* "M,#;6[3z^F.Vg; 2ҼqcUNf1x0: D(+ "GN0qAueA&)XERE9,;2ĝCIvOD{"DEy^)z`qp*.u;ZBI=]('hc#A a&!sMDətQ'wAsH"IDPA/?lzESߧl d$AqaaLuG霈][S8:ֈUtaŅnH 3bs"CfQ#,A_y1$=3@%O}o 댡x75DR!G\l l,#g \2r1$wtTn"rrJuZWk)Ndiaq4(ȥ#*m0"gK6Ҵ@?DE R.C4iuWd3tEPbʼn o6D %؉)6SP[kFtc;oBve ɪl#*1F5@̓3Z).e#,6SF l+ÜS&ɓt<ၢBY0@7(0 P0A(dbjA o NQ\ӫG44fJ,HZTjb2#, lDSh9wq|RH¶Ṟ5CLQQ dj"lٙNcQW gC #)DZͳ#= N#W:?ozz@cGWCu4X}+]zK:-ޡIE-  {C þp%8Z!%&$#."A-a+ cnH KJG:}sZ5cSJj8ޏMMq1Nr4#T ,R3\[,%ѥ!;{\`[$ZXɕQs(f֛ICR#*:\R-Q"(ZCL@ϑH[e#,h8mj%!tIo/RGY85dOC9f̋ɺx38NJ(CaT8.Cx*[#.94SZ_CJDDP҉,RTJ1nR\SMMr3a3WeOgkq%ՁY=jE*>γS]OkJYA^ɜy_&k46:HM 5)n8L:4}8>d;R@tir1=KrhC)v].ahC)r@H#acb͐Κm vjJ"bpڶ1nqA#,rEsHHtsŽ,[O%cdl5(܄c2C,D$<s? us#,*j2lX<4Mg~UZ9 a`WL[g1t%:3Л鯨L6Nj,1D׭Ûkx.Bo,W5˕8ԬU.+V&XDóYuGy6KG˕JN*4>ib%)bm-/k"j޾prDR%wq*ghش}GS&qFnɎ!f_y+kNZ5r HL vjbˁsF\5:n^%\쑀L)yXľa9xL!U$C.Y#.0Ba ÌY#7*n^<oT(|i4&!$X0Qh#*riQЛ| wyӌ0fU4QHPz!hEAFH"PMO6ܣvz-H[@d8R ntW2[Q#*aΜl%éъ"1j%79ADUDHAci@lE!"3 Xj@KF6d:>lbhI@c00@!(d`:#p]LFY}H;($0 jRS/HnnSg~x#;`B$DQuL &-k UOW(*1hT۟OX3ǻB$$#,E#*:H;oePgLy>xH^r鍮*EC: .WPڲImCk\9ƌmClc$l&)#.)Eiq[uyUA-D  ".DU&ʥ7;`48Gn1VT&Kh3cm ~tW5"JXωz#:n:~wpǁR4xhThbl*#,+ѲN.|ǭ'k͑7uli:GHIxXї#|:N8"e]E=#*l⛬.'.A"Pa6MJ"%u#D*r !Oi#. ߉cF'EdXU,JX'LJl5j%*W-u6󩠫=8q'F D$P#,mA|Bs0O(bxf( _4!O062ipR!2RHjKƵIݶͪ].)@#.ȡ8pj 鷫g8dPNT;OO;\1&Su}|X5@$/Ha;MWiKW]]hv!6Mk>]ViL[]/Z '#.fgL(lV#,d#dIS5}ׇA-X7P hbv9krU;Bv{i0XPtn-U%c f+!e;1ԏa) #,`{ Df J|! ^Ǭ/ϭ>wzY=((7/*HK43IPmmC5eiFXnI\gJnV q ǸȘ``.ljFhjz/uH8xml6$B@C@26L'.N#*(ň[ESO5 f{~x#,s-/%KrC}O)hY̱F$t0yifPM4F+ 5c:^,~"\i^!Z:b-xfJhZ);#,2fbbg^ k9}̌vINf:>eGMoQ&MUX&Բ1S>'U#*E% 6آj2&[5, ºf5`mX Y MA !IBuY]} R)eZA.#V. '<|Hm~1\#"2jq"H@Ta7OR]AǘZ TB.B6Rj#.}痼`qfBx|vFp҉OG!A]~( ~7J7޾Ќ>"&)äBKO?{C\@kʫP(JHt%hr ZD@TwXS#*]-$c!3#rY$C+yyx蒛ATREd@#j]<0k4I[Sm3 )@ HЊ)z< ǒHd<I]Ē*dg1O`_hv, `$A!I%IK2Y,%I6sUm}#.E&Tj&YK4;KV !dT*"iꄥhB7 g^n162j&mEb#i=4 !=#*Z"x ObPM4|GvdI+O6+b"l?!)6pHx 1W!P*8E5y?i|y$Q/1u_ӓ2賸ڂo_·a!QdmĨP*VRVZMiHl_Ky0@7q0$DžSeo X"%d{%p)Xޟ|iHŶ~RTڏ͟33C`s4[-d 4XigO5ՃZSc%W#*Iqzosj{;#.)7&.0鹗Wlh,7 M2B*m4ؚ=({.eoD'4TCVzID%%ZK*1iKֽoZ&f2S #,#h6T3!V¸[L^% 2ȋmw1w^Fr)UP"4*{{uGWISPx=?}숺!ƃY"Ȅ>K-ilބw#'"!q*~Ċr;j# ;U˛%jFjro%Wؽh53_ZdQ }_@?}h'r>ReAۭiG藀rՊz |JO//TT*gt֙dlYK/A!;{ >sy=C_WGF}gnH[lO.]գ̂P=*w5#,;\{=|ڈ&#,YG~Nkb,_,ۊ+'k9kUiCn_ &JpA-#,L;>퓧m3,^]eKΜ+ 61e>yYk3@=>4¬ymwٱY'8,1떪"C]%c|L