/* * POSIX message queues filesystem for Linux. * * Copyright (C) 2003,2004 Krzysztof Benedyczak (golbi@mat.uni.torun.pl) * Michal Wronski (michal.wronski@gmail.com) * * Spinlocks: Mohamed Abbas (abbas.mohamed@intel.com) * Lockless receive & send, fd based notify: * Manfred Spraul (manfred@colorfullife.com) * * Audit: George Wilson (ltcgcw@us.ibm.com) * * This file is released under the GPL. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "util.h" #define MQUEUE_MAGIC 0x19800202 #define DIRENT_SIZE 20 #define FILENT_SIZE 80 #define SEND 0 #define RECV 1 #define STATE_NONE 0 #define STATE_PENDING 1 #define STATE_READY 2 /* default values */ #define DFLT_QUEUESMAX 256 /* max number of message queues */ #define DFLT_MSGMAX 10 /* max number of messages in each queue */ #define HARD_MSGMAX (131072/sizeof(void*)) #define DFLT_MSGSIZEMAX 8192 /* max message size */ /* * Define the ranges various user-specified maximum values can * be set to. */ #define MIN_MSGMAX 1 /* min value for msg_max */ #define MAX_MSGMAX HARD_MSGMAX /* max value for msg_max */ #define MIN_MSGSIZEMAX 128 /* min value for msgsize_max */ #define MAX_MSGSIZEMAX (8192*128) /* max value for msgsize_max */ struct ext_wait_queue { /* queue of sleeping tasks */ struct task_struct *task; struct list_head list; struct msg_msg *msg; /* ptr of loaded message */ int state; /* one of STATE_* values */ }; struct mqueue_inode_info { spinlock_t lock; struct inode vfs_inode; wait_queue_head_t wait_q; struct msg_msg **messages; struct mq_attr attr; struct sigevent notify; struct pid* notify_owner; struct user_struct *user; /* user who created, for accounting */ struct sock *notify_sock; struct sk_buff *notify_cookie; /* for tasks waiting for free space and messages, respectively */ struct ext_wait_queue e_wait_q[2]; unsigned long qsize; /* size of queue in memory (sum of all msgs) */ }; static const struct inode_operations mqueue_dir_inode_operations; static const struct file_operations mqueue_file_operations; static struct super_operations mqueue_super_ops; static void remove_notification(struct mqueue_inode_info *info); static spinlock_t mq_lock; static struct kmem_cache *mqueue_inode_cachep; static struct vfsmount *mqueue_mnt; static unsigned int queues_count; static unsigned int queues_max = DFLT_QUEUESMAX; static unsigned int msg_max = DFLT_MSGMAX; static unsigned int msgsize_max = DFLT_MSGSIZEMAX; static struct ctl_table_header * mq_sysctl_table; static inline struct mqueue_inode_info *MQUEUE_I(struct inode *inode) { return container_of(inode, struct mqueue_inode_info, vfs_inode); } static struct inode *mqueue_get_inode(struct super_block *sb, int mode, struct mq_attr *attr) { struct user_struct *u = current_user(); struct inode *inode; inode = new_inode(sb); if (inode) { inode->i_mode = mode; inode->i_uid = current_fsuid(); inode->i_gid = current_fsgid(); inode->i_mtime = inode->i_ctime = inode->i_atime = CURRENT_TIME; if (S_ISREG(mode)) { struct mqueue_inode_info *info; struct task_struct *p = current; unsigned long mq_bytes, mq_msg_tblsz; inode->i_fop = &mqueue_file_operations; inode->i_size = FILENT_SIZE; /* mqueue specific info */ info = MQUEUE_I(inode); spin_lock_init(&info->lock); init_waitqueue_head(&info->wait_q); INIT_LIST_HEAD(&info->e_wait_q[0].list); INIT_LIST_HEAD(&info->e_wait_q[1].list); info->messages = NULL; info->notify_owner = NULL; info->qsize = 0; info->user = NULL; /* set when all is ok */ memset(&info->attr, 0, sizeof(info->attr)); info->attr.mq_maxmsg = msg_max; info->attr.mq_msgsize = msgsize_max; if (attr) { info->attr.mq_maxmsg = attr->mq_maxmsg; info->attr.mq_msgsize = attr->mq_msgsize; } mq_msg_tblsz = info->attr.mq_maxmsg * sizeof(struct msg_msg *); mq_bytes = (mq_msg_tblsz + (info->attr.mq_maxmsg * info->attr.mq_msgsize)); spin_lock(&mq_lock); if (u->mq_bytes + mq_bytes < u->mq_bytes || u->mq_bytes + mq_bytes > p->signal->rlim[RLIMIT_MSGQUEUE].rlim_cur) { spin_unlock(&mq_lock); goto out_inode; } u->mq_bytes += mq_bytes; spin_unlock(&mq_lock); info->messages = kmalloc(mq_msg_tblsz, GFP_KERNEL); if (!info->messages) { spin_lock(&mq_lock); u->mq_bytes -= mq_bytes; spin_unlock(&mq_lock); goto out_inode; } /* all is ok */ info->user = get_uid(u); } else if (S_ISDIR(mode)) { inc_nlink(inode); /* Some things misbehave if size == 0 on a directory */ inode->i_size = 2 * DIRENT_SIZE; inode->i_op = &mqueue_dir_inode_operations; inode->i_fop = &simple_dir_operations; } } return inode; out_inode: make_bad_inode(inode); iput(inode); return NULL; } static int mqueue_fill_super(struct super_block *sb, void *data, int silent) { struct inode *inode; sb->s_blocksize = PAGE_CACHE_SIZE; sb->s_blocksize_bits = PAGE_CACHE_SHIFT; sb->s_magic = MQUEUE_MAGIC; sb->s_op = &mqueue_super_ops; inode = mqueue_get_inode(sb, S_IFDIR | S_ISVTX | S_IRWXUGO, NULL); if (!inode) return -ENOMEM; sb->s_root = d_alloc_root(inode); if (!sb->s_root) { iput(inode); return -ENOMEM; } return 0; } static int mqueue_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, struct vfsmount *mnt) { return get_sb_single(fs_type, flags, data, mqueue_fill_super, mnt); } static void init_once(void *foo) { struct mqueue_inode_info *p = (struct mqueue_inode_info *) foo; inode_init_once(&p->vfs_inode); } static struct inode *mqueue_alloc_inode(struct super_block *sb) { struct mqueue_inode_info *ei; ei = kmem_cache_alloc(mqueue_inode_cachep, GFP_KERNEL); if (!ei) return NULL; return &ei->vfs_inode; } static void mqueue_destroy_inode(struct inode *inode) { kmem_cache_free(mqueue_inode_cachep, MQUEUE_I(inode)); } static void mqueue_delete_inode(struct inode *inode) { struct mqueue_inode_info *info; struct user_struct *user; unsigned long mq_bytes; int i; if (S_ISDIR(inode->i_mode)) { clear_inode(inode); return; } info = MQUEUE_I(inode); spin_lock(&info->lock); for (i = 0; i < info->attr.mq_curmsgs; i++) free_msg(info->messages[i]); kfree(info->messages); spin_unlock(&info->lock); clear_inode(inode); mq_bytes = (info->attr.mq_maxmsg * sizeof(struct msg_msg *) + (info->attr.mq_maxmsg * info->attr.mq_msgsize)); user = info->user; if (user) { spin_lock(&mq_lock); user->mq_bytes -= mq_bytes; queues_count--; spin_unlock(&mq_lock); free_uid(user); } } static int mqueue_create(struct inode *dir, struct dentry *dentry, int mode, struct nameidata *nd) { struct inode *inode; struct mq_attr *attr = dentry->d_fsdata; int error; spin_lock(&mq_lock); if (queues_count >= queues_max && !capable(CAP_SYS_RESOURCE)) { error = -ENOSPC; goto out_lock; } queues_count++; spin_unlock(&mq_lock); inode = mqueue_get_inode(dir->i_sb, mode, attr); if (!inode) { error = -ENOMEM; spin_lock(&mq_lock); queues_count--; goto out_lock; } dir->i_size += DIRENT_SIZE; dir->i_ctime = dir->i_mtime = dir->i_atime = CURRENT_TIME; d_instantiate(dentry, inode); dget(dentry); return 0; out_lock: spin_unlock(&mq_lock); return error; } static int mqueue_unlink(struct inode *dir, struct dentry *dentry) { struct inode *inode = dentry->d_inode; dir->i_ctime = dir->i_mtime = dir->i_atime = CURRENT_TIME; dir->i_size -= DIRENT_SIZE; drop_nlink(inode); dput(dentry); return 0; } /* * This is routine for system read from queue file. * To avoid mess with doing here some sort of mq_receive we allow * to read only queue size & notification info (the only values * that are interesting from user point of view and aren't accessible * through std routines) */ static ssize_t mqueue_read_file(struct file *filp, char __user *u_data, size_t count, loff_t *off) { struct mqueue_inode_info *info = MQUEUE_I(filp->f_path.dentry->d_inode); char buffer[FILENT_SIZE]; ssize_t ret; spin_lock(&info->lock); snprintf(buffer, sizeof(buffer), "QSIZE:%-10lu NOTIFY:%-5d SIGNO:%-5d NOTIFY_PID:%-6d\n", info->qsize, info->notify_owner ? info->notify.sigev_notify : 0, (info->notify_owner && info->notify.sigev_notify == SIGEV_SIGNAL) ? info->notify.sigev_signo : 0, pid_vnr(info->notify_owner)); spin_unlock(&info->lock); buffer[sizeof(buffer)-1] = '\0'; ret = simple_read_from_buffer(u_data, count, off, buffer, strlen(buffer)); if (ret <= 0) return ret; filp->f_path.dentry->d_inode->i_atime = filp->f_path.dentry->d_inode->i_ctime = CURRENT_TIME; return ret; } static int mqueue_flush_file(struct file *filp, fl_owner_t id) { struct mqueue_inode_info *info = MQUEUE_I(filp->f_path.dentry->d_inode); spin_lock(&info->lock); if (task_tgid(current) == info->notify_owner) remove_notification(info); spin_unlock(&info->lock); return 0; } static unsigned int mqueue_poll_file(struct file *filp, struct poll_table_struct *poll_tab) { struct mqueue_inode_info *info = MQUEUE_I(filp->f_path.dentry->d_inode); int retval = 0; poll_wait(filp, &info->wait_q, poll_tab); spin_lock(&info->lock); if (info->attr.mq_curmsgs) retval = POLLIN | POLLRDNORM; if (info->attr.mq_curmsgs < info->attr.mq_maxmsg) retval |= POLLOUT | POLLWRNORM; spin_unlock(&info->lock); return retval; } /* Adds current to info->e_wait_q[sr] before element with smaller prio */ static void wq_add(struct mqueue_inode_info *info, int sr, struct ext_wait_queue *ewp) { struct ext_wait_queue *walk; ewp->task = current; list_for_each_entry(walk, &info->e_wait_q[sr].list, list) { if (walk->task->static_prio <= current->static_prio) { list_add_tail(&ewp->list, &walk->list); return; } } list_add_tail(&ewp->list, &info->e_wait_q[sr].list); } /* * Puts current task to sleep. Caller must hold queue lock. After return * lock isn't held. * sr: SEND or RECV */ static int wq_sleep(struct mqueue_inode_info *info, int sr, long timeout, struct ext_wait_queue *ewp) { int retval; signed long time; wq_add(info, sr, ewp); for (;;) { set_current_state(TASK_INTERRUPTIBLE); spin_unlock(&info->lock); time = schedule_timeout(timeout); while (ewp->state == STATE_PENDING) cpu_relax(); if (ewp->state == STATE_READY) { retval = 0; goto out; } spin_lock(&info->lock); if (ewp->state == STATE_READY) { retval = 0; goto out_unlock; } if (signal_pending(current)) { retval = -ERESTARTSYS; break; } if (time == 0) { retval = -ETIMEDOUT; break; } } list_del(&ewp->list); out_unlock: spin_unlock(&info->lock); out: return retval; } /* * Returns waiting task that should be serviced first or NULL if none exists */ static struct ext_wait_queue *wq_get_first_waiter( struct mqueue_inode_info *info, int sr) { struct list_head *ptr; ptr = info->e_wait_q[sr].list.prev; if (ptr == &info->e_wait_q[sr].list) return NULL; return list_entry(ptr, struct ext_wait_queue, list); } /* Auxiliary functions to manipulate messages' list */ static void msg_insert(struct msg_msg *ptr, struct mqueue_inode_info *info) { int k; k = info->attr.mq_curmsgs - 1; while (k >= 0 && info->messages[k]->m_type >= ptr->m_type) { info->messages[k + 1] = info->messages[k]; k--; } info->attr.mq_curmsgs++; info->qsize += ptr->m_ts; info->messages[k + 1] = ptr; } static inline struct msg_msg *msg_get(struct mqueue_inode_info *info) { info->qsize -= info->messages[--info->attr.mq_curmsgs]->m_ts; return info->messages[info->attr.mq_curmsgs]; } static inline void set_cookie(struct sk_buff *skb, char code) { ((char*)skb->data)[NOTIFY_COOKIE_LEN-1] = code; } /* * The next function is only to split too long sys_mq_timedsend */ static void __do_notify(struct mqueue_inode_info *info) { /* notification * invoked when there is registered process and there isn't process * waiting synchronously for message AND state of queue changed from * empty to not empty. Here we are sure that no one is waiting * synchronously. */ if (info->notify_owner && info->attr.mq_curmsgs == 1) { struct siginfo sig_i; switch (info->notify.sigev_notify) { case SIGEV_NONE: break; case SIGEV_SIGNAL: /* sends signal */ sig_i.si_signo = info->notify.sigev_signo; sig_i.si_errno = 0; sig_i.si_code = SI_MESGQ; sig_i.si_value = info->notify.sigev_value; sig_i.si_pid = task_tgid_nr_ns(current, ns_of_pid(info->notify_owner)); sig_i.si_uid = current_uid(); kill_pid_info(info->notify.sigev_signo, &sig_i, info->notify_owner); break; case SIGEV_THREAD: set_cookie(info->notify_cookie, NOTIFY_WOKENUP); netlink_sendskb(info->notify_sock, info->notify_cookie); break; } /* after notification unregisters process */ put_pid(info->notify_owner); info->notify_owner = NULL; } wake_up(&info->wait_q); } static long prepare_timeout(struct timespec *p) { struct timespec nowts; long timeout; if (p) { if (unlikely(p->tv_nsec < 0 || p->tv_sec < 0 || p->tv_nsec >= NSEC_PER_SEC)) return -EINVAL; nowts = CURRENT_TIME; /* first subtract as jiffies can't be too big */ p->tv_sec -= nowts.tv_sec; if (p->tv_nsec < nowts.tv_nsec) { p->tv_nsec += NSEC_PER_SEC; p->tv_sec--; } p->tv_nsec -= nowts.tv_nsec; if (p->tv_sec < 0) return 0; timeout = timespec_to_jiffies(p) + 1; } else return MAX_SCHEDULE_TIMEOUT; return timeout; } static void remove_notification(struct mqueue_inode_info *info) { if (info->notify_owner != NULL && info->notify.sigev_notify == SIGEV_THREAD) { set_cookie(info->notify_cookie, NOTIFY_REMOVED); netlink_sendskb(info->notify_sock, info->notify_cookie); } put_pid(info->notify_owner); info->notify_owner = NULL; } static int mq_attr_ok(struct mq_attr *attr) { if (attr->mq_maxmsg <= 0 || attr->mq_msgsize <= 0) return 0; if (capable(CAP_SYS_RESOURCE)) { if (attr->mq_maxmsg > HARD_MSGMAX) return 0; } else { if (attr->mq_maxmsg > msg_max || attr->mq_msgsize > msgsize_max) return 0; } /* check for overflow */ if (attr->mq_msgsize > ULONG_MAX/attr->mq_maxmsg) return 0; if ((unsigned long)(attr->mq_maxmsg * attr->mq_msgsize) + (attr->mq_maxmsg * sizeof (struct msg_msg *)) < (unsigned long)(attr->mq_maxmsg * attr->mq_msgsize)) return 0; return 1; } /* * Invoked when creating a new queue via sys_mq_open */ static struct file *do_create(struct dentry *dir, struct dentry *dentry, int oflag, mode_t mode, struct mq_attr *attr) { const struct cred *cred = current_cred(); struct file *result; int ret; if (attr) { ret = -EINVAL; if (!mq_attr_ok(attr)) goto out; /* store for use during create */ dentry->d_fsdata = attr; } mode &= ~current->fs->umask; ret = mnt_want_write(mqueue_mnt); if (ret) goto out; ret = vfs_create(dir->d_inode, dentry, mode, NULL); dentry->d_fsdata = NULL; if (ret) goto out_drop_write; result = dentry_open(dentry, mqueue_mnt, oflag, cred); /* * dentry_open() took a persistent mnt_want_write(), * so we can now drop this one. */ mnt_drop_write(mqueue_mnt); return result; out_drop_write: mnt_drop_write(mqueue_mnt); out: dput(dentry); mntput(mqueue_mnt); return ERR_PTR(ret); } /* Opens existing queue */ static struct file *do_open(struct dentry *dentry, int oflag) { const struct cred *cred = current_cred(); static const int oflag2acc[O_ACCMODE] = { MAY_READ, MAY_WRITE, MAY_READ | MAY_WRITE }; if ((oflag & O_ACCMODE) == (O_RDWR | O_WRONLY)) { dput(dentry); mntput(mqueue_mnt); return ERR_PTR(-EINVAL); } if (inode_permission(dentry->d_inode, oflag2acc[oflag & O_ACCMODE])) { dput(dentry); mntput(mqueue_mnt); return ERR_PTR(-EACCES); } return dentry_open(dentry, mqueue_mnt, oflag, cred); } SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, mode_t, mode, struct mq_attr __user *, u_attr) { struct dentry *dentry; struct file *filp; char *name; struct mq_attr attr; int fd, error; if (u_attr && copy_from_user(&attr, u_attr, sizeof(struct mq_attr))) return -EFAULT; audit_mq_open(oflag, mode, u_attr ? &attr : NULL); if (IS_ERR(name = getname(u_name))) return PTR_ERR(name); fd = get_unused_fd_flags(O_CLOEXEC); if (fd < 0) goto out_putname; mutex_lock(&mqueue_mnt->mnt_root->d_inode->i_mutex); dentry = lookup_one_len(name, mqueue_mnt->mnt_root, strlen(name)); if (IS_ERR(dentry)) { error = PTR_ERR(dentry); goto out_err; } mntget(mqueue_mnt); if (oflag & O_CREAT) { if (dentry->d_inode) { /* entry already exists */ audit_inode(name, dentry); error = -EEXIST; if (oflag & O_EXCL) goto out; filp = do_open(dentry, oflag); } else { filp = do_create(mqueue_mnt->mnt_root, dentry, oflag, mode, u_attr ? &attr : NULL); } } else { error = -ENOENT; if (!dentry->d_inode) goto out; audit_inode(name, dentry); filp = do_open(dentry, oflag); } if (IS_ERR(filp)) { error = PTR_ERR(filp); goto out_putfd; } fd_install(fd, filp); goto out_upsem; out: dput(dentry); mntput(mqueue_mnt); out_putfd: put_unused_fd(fd); out_err: fd = error; out_upsem: mutex_unlock(&mqueue_mnt->mnt_root->d_inode->i_mutex); out_putname: putname(name); return fd; } SYSCALL_DEFINE1(mq_unlink, const char __user *, u_name) { int err; char *name; struct dentry *dentry; struct inode *inode = NULL; name = getname(u_name); if (IS_ERR(name)) return PTR_ERR(name); mutex_lock_nested(&mqueue_mnt->mnt_root->d_inode->i_mutex, I_MUTEX_PARENT); dentry = lookup_one_len(name, mqueue_mnt->mnt_root, strlen(name)); if (IS_ERR(dentry)) { err = PTR_ERR(dentry); goto out_unlock; } if (!dentry->d_inode) { err = -ENOENT; goto out_err; } inode = dentry->d_inode; if (inode) atomic_inc(&inode->i_count); err = mnt_want_write(mqueue_mnt); if (err) goto out_err; err = vfs_unlink(dentry->d_parent->d_inode, dentry); mnt_drop_write(mqueue_mnt); out_err: dput(dentry); out_unlock: mutex_unlock(&mqueue_mnt->mnt_root->d_inode->i_mutex); putname(name); if (inode) iput(inode); return err; } /* Pipelined send and receive functions. * * If a receiver finds no waiting message, then it registers itself in the * list of waiting receivers. A sender checks that list before adding the new * message into the message array. If there is a waiting receiver, then it * bypasses the message array and directly hands the message over to the * receiver. * The receiver accepts the message and returns without grabbing the queue * spinlock. Therefore an intermediate STATE_PENDING state and memory barriers * are necessary. The same algorithm is used for sysv semaphores, see * ipc/sem.c for more details. * * The same algorithm is used for senders. */ /* pipelined_send() - send a message directly to the task waiting in * sys_mq_timedreceive() (without inserting message into a queue). */ static inline void pipelined_send(struct mqueue_inode_info *info, struct msg_msg *message, struct ext_wait_queue *receiver) { receiver->msg = message; list_del(&receiver->list); receiver->state = STATE_PENDING; wake_up_process(receiver->task); smp_wmb(); receiver->state = STATE_READY; } /* pipelined_receive() - if there is task waiting in sys_mq_timedsend() * gets its message and put to the queue (we have one free place for sure). */ static inline void pipelined_receive(struct mqueue_inode_info *info) { struct ext_wait_queue *sender = wq_get_first_waiter(info, SEND); if (!sender) { /* for poll */ wake_up_interruptible(&info->wait_q); return; } msg_insert(sender->msg, info); list_del(&sender->list); sender->state = STATE_PENDING; wake_up_process(sender->task); smp_wmb(); sender->state = STATE_READY; } SYSCALL_DEFINE5(mq_timedsend, mqd_t, mqdes, const char __user *, u_msg_ptr, size_t, msg_len, unsigned int, msg_prio, const struct timespec __user *, u_abs_timeout) { struct file *filp; struct inode *inode; struct ext_wait_queue wait; struct ext_wait_queue *receiver; struct msg_msg *msg_ptr; struct mqueue_inode_info *info; struct timespec ts, *p = NULL; long timeout; int ret; if (u_abs_timeout) { if (copy_from_user(&ts, u_abs_timeout, sizeof(struct timespec))) return -EFAULT; p = &ts; } if (unlikely(msg_prio >= (unsigned long) MQ_PRIO_MAX)) return -EINVAL; audit_mq_sendrecv(mqdes, msg_len, msg_prio, p); timeout = prepare_timeout(p); ret = -EBADF; filp = fget(mqdes); if (unlikely(!filp)) goto out; inode = filp->f_path.dentry->d_inode; if (unlikely(filp->f_op != &mqueue_file_operations)) goto out_fput; info = MQUEUE_I(inode); audit_inode(NULL, filp->f_path.dentry); if (unlikely(!(filp->f_mode & FMODE_WRITE))) goto out_fput; if (unlikely(msg_len > info->attr.mq_msgsize)) { ret = -EMSGSIZE; goto out_fput; } /* First try to allocate memory, before doing anything with * existing queues. */ msg_ptr = load_msg(u_msg_ptr, msg_len); if (IS_ERR(msg_ptr)) { ret = PTR_ERR(msg_ptr); goto out_fput; } msg_ptr->m_ts = msg_len; msg_ptr->m_type = msg_prio; spin_lock(&info->lock); if (info->attr.mq_curmsgs == info->attr.mq_maxmsg) { if (filp->f_flags & O_NONBLOCK) { spin_unlock(&info->lock); ret = -EAGAIN; } else if (unlikely(timeout < 0)) { spin_unlock(&info->lock); ret = timeout; } else { wait.task = current; wait.msg = (void *) msg_ptr; wait.state = STATE_NONE; ret = wq_sleep(info, SEND, timeout, &wait); } if (ret < 0) free_msg(msg_ptr); } else { receiver = wq_get_first_waiter(info, RECV); if (receiver) { pipelined_send(info, msg_ptr, receiver); } else { /* adds message to the queue */ msg_insert(msg_ptr, info); __do_notify(info); } inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; spin_unlock(&info->lock); ret = 0; } out_fput: fput(filp); out: return ret; } SYSCALL_DEFINE5(mq_timedreceive, mqd_t, mqdes, char __user *, u_msg_ptr, size_t, msg_len, unsigned int __user *, u_msg_prio, const struct timespec __user *, u_abs_timeout) { long timeout; ssize_t ret; struct msg_msg *msg_ptr; struct file *filp; struct inode *inode; struct mqueue_inode_info *info; struct ext_wait_queue wait; struct timespec ts, *p = NULL; if (u_abs_timeout) { if (copy_from_user(&ts, u_abs_timeout, sizeof(struct timespec))) return -EFAULT; p = &ts; } audit_mq_sendrecv(mqdes, msg_len, 0, p); timeout = prepare_timeout(p); ret = -EBADF; filp = fget(mqdes); if (unlikely(!filp)) goto out; inode = filp->f_path.dentry->d_inode; if (unlikely(filp->f_op != &mqueue_file_operations)) goto out_fput; info = MQUEUE_I(inode); audit_inode(NULL, filp->f_path.dentry); if (unlikely(!(filp->f_mode & FMODE_READ))) goto out_fput; /* checks if buffer is big enough */ if (unlikely(msg_len < info->attr.mq_msgsize)) { ret = -EMSGSIZE; goto out_fput; } spin_lock(&info->lock); if (info->attr.mq_curmsgs == 0) { if (filp->f_flags & O_NONBLOCK) { spin_unlock(&info->lock); ret = -EAGAIN; msg_ptr = NULL; } else if (unlikely(timeout < 0)) { spin_unlock(&info->lock); ret = timeout; msg_ptr = NULL; } else { wait.task = current; wait.state = STATE_NONE; ret = wq_sleep(info, RECV, timeout, &wait); msg_ptr = wait.msg; } } else { msg_ptr = msg_get(info); inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; /* There is now free space in queue. */ pipelined_receive(info); spin_unlock(&info->lock); ret = 0; } if (ret == 0) { ret = msg_ptr->m_ts; if ((u_msg_prio && put_user(msg_ptr->m_type, u_msg_prio)) || store_msg(u_msg_ptr, msg_ptr, msg_ptr->m_ts)) { ret = -EFAULT; } free_msg(msg_ptr); } out_fput: fput(filp); out: return ret; } /* * Notes: the case when user wants us to deregister (with NULL as pointer) * and he isn't currently owner of notification, will be silently discarded. * It isn't explicitly defined in the POSIX. */ SYSCALL_DEFINE2(mq_notify, mqd_t, mqdes, const struct sigevent __user *, u_notification) { int ret; struct file *filp; struct sock *sock; struct inode *inode; struct sigevent notification; struct mqueue_inode_info *info; struct sk_buff *nc; if (u_notification) { if (copy_from_user(¬ification, u_notification, sizeof(struct sigevent))) return -EFAULT; } audit_mq_notify(mqdes, u_notification ? ¬ification : NULL); nc = NULL; sock = NULL; if (u_notification != NULL) { if (unlikely(notification.sigev_notify != SIGEV_NONE && notification.sigev_notify != SIGEV_SIGNAL && notification.sigev_notify != SIGEV_THREAD)) return -EINVAL; if (notification.sigev_notify == SIGEV_SIGNAL && !valid_signal(notification.sigev_signo)) { return -EINVAL; } if (notification.sigev_notify == SIGEV_THREAD) { long timeo; /* create the notify skb */ nc = alloc_skb(NOTIFY_COOKIE_LEN, GFP_KERNEL); ret = -ENOMEM; if (!nc) goto out; ret = -EFAULT; if (copy_from_user(nc->data, notification.sigev_value.sival_ptr, NOTIFY_COOKIE_LEN)) { goto out; } /* TODO: add a header? */ skb_put(nc, NOTIFY_COOKIE_LEN); /* and attach it to the socket */ retry: filp = fget(notification.sigev_signo); ret = -EBADF; if (!filp) goto out; sock = netlink_getsockbyfilp(filp); fput(filp); if (IS_ERR(sock)) { ret = PTR_ERR(sock); sock = NULL; goto out; } timeo = MAX_SCHEDULE_TIMEOUT; ret = netlink_attachskb(sock, nc, &timeo, NULL); if (ret == 1) goto retry; if (ret) { sock = NULL; nc = NULL; goto out; } } } ret = -EBADF; filp = fget(mqdes); if (!filp) goto out; inode = filp->f_path.dentry->d_inode; if (unlikely(filp->f_op != &mqueue_file_operations)) goto out_fput; info = MQUEUE_I(inode); ret = 0; spin_lock(&info->lock); if (u_notification == NULL) { if (info->notify_owner == task_tgid(current)) { remove_notification(info); inode->i_atime = inode->i_ctime = CURRENT_TIME; } } else if (info->notify_owner != NULL) { ret = -EBUSY; } else { switch (notification.sigev_notify) { case SIGEV_NONE: info->notify.sigev_notify = SIGEV_NONE; break; case SIGEV_THREAD: info->notify_sock = sock; info->notify_cookie = nc; sock = NULL; nc = NULL; info->notify.sigev_notify = SIGEV_THREAD; break; case SIGEV_SIGNAL: info->notify.sigev_signo = notification.sigev_signo; info->notify.sigev_value = notification.sigev_value; info->notify.sigev_notify = SIGEV_SIGNAL; break; } info->notify_owner = get_pid(task_tgid(current)); inode->i_atime = inode->i_ctime = CURRENT_TIME; } spin_unlock(&info->lock); out_fput: fput(filp); out: if (sock) { netlink_detachskb(sock, nc); } else if (nc) { dev_kfree_skb(nc); } return ret; } SYSCALL_DEFINE3(mq_getsetattr, mqd_t, mqdes, const struct mq_attr __user *, u_mqstat, struct mq_attr __user *, u_omqstat) { int ret; struct mq_attr mqstat, omqstat; struct file *filp; struct inode *inode; struct mqueue_inode_info *info; if (u_mqstat != NULL) { if (copy_from_user(&mqstat, u_mqstat, sizeof(struct mq_attr))) return -EFAULT; if (mqstat.mq_flags & (~O_NONBLOCK)) return -EINVAL; } ret = -EBADF; filp = fget(mqdes); if (!filp) goto out; inode = filp->f_path.dentry->d_inode; if (unlikely(filp->f_op != &mqueue_file_operations)) goto out_fput; info = MQUEUE_I(inode); spin_lock(&info->lock); omqstat = info->attr; omqstat.mq_flags = filp->f_flags & O_NONBLOCK; if (u_mqstat) { audit_mq_getsetattr(mqdes, &mqstat); if (mqstat.mq_flags & O_NONBLOCK) filp->f_flags |= O_NONBLOCK; else filp->f_flags &= ~O_NONBLOCK; inode->i_atime = inode->i_ctime = CURRENT_TIME; } spin_unlock(&info->lock); ret = 0; if (u_omqstat != NULL && copy_to_user(u_omqstat, &omqstat, sizeof(struct mq_attr))) ret = -EFAULT; out_fput: fput(filp); out: return ret; } static const struct inode_operations mqueue_dir_inode_operations = { .lookup = simple_lookup, .create = mqueue_create, .unlink = mqueue_unlink, }; static const struct file_operations mqueue_file_operations = { .flush = mqueue_flush_file, .poll = mqueue_poll_file, .read = mqueue_read_file, }; static struct super_operations mqueue_super_ops = { .alloc_inode = mqueue_alloc_inode, .destroy_inode = mqueue_destroy_inode, .statfs = simple_statfs, .delete_inode = mqueue_delete_inode, .drop_inode = generic_delete_inode, }; static struct file_system_type mqueue_fs_type = { .name = "mqueue", .get_sb = mqueue_get_sb, .kill_sb = kill_litter_super, }; static int msg_max_limit_min = MIN_MSGMAX; static int msg_max_limit_max = MAX_MSGMAX; static int msg_maxsize_limit_min = MIN_MSGSIZEMAX; static int msg_maxsize_limit_max = MAX_MSGSIZEMAX; static ctl_table mq_sysctls[] = { { .procname = "queues_max", .data = &queues_max, .maxlen = sizeof(int), .mode = 0644, .proc_handler = &proc_dointvec, }, { .procname = "msg_max", .data = &msg_max, .maxlen = sizeof(int), .mode = 0644, .proc_handler = &proc_dointvec_minmax, .extra1 = &msg_max_limit_min, .extra2 = &msg_max_limit_max, }, { .procname = "msgsize_max", .data = &msgsize_max, .maxlen = sizeof(int), .mode = 0644, .proc_handler = &proc_dointvec_minmax, .extra1 = &msg_maxsize_limit_min, .extra2 = &msg_maxsize_limit_max, }, { .ctl_name = 0 } }; static ctl_table mq_sysctl_dir[] = { { .procname = "mqueue", .mode = 0555, .child = mq_sysctls, }, { .ctl_name = 0 } }; static ctl_table mq_sysctl_root[] = { { .ctl_name = CTL_FS, .procname = "fs", .mode = 0555, .child = mq_sysctl_dir, }, { .ctl_name = 0 } }; static int __init init_mqueue_fs(void) { int error; mqueue_inode_cachep = kmem_cache_create("mqueue_inode_cache", sizeof(struct mqueue_inode_info), 0, SLAB_HWCACHE_ALIGN, init_once); if (mqueue_inode_cachep == NULL) return -ENOMEM; /* ignore failues - they are not fatal */ mq_sysctl_table = register_sysctl_table(mq_sysctl_root); error = register_filesystem(&mqueue_fs_type); if (error) goto out_sysctl; if (IS_ERR(mqueue_mnt = kern_mount(&mqueue_fs_type))) { error = PTR_ERR(mqueue_mnt); goto out_filesystem; } /* internal initialization - not common for vfs */ queues_count = 0; spin_lock_init(&mq_lock); return 0; out_filesystem: unregister_filesystem(&mqueue_fs_type); out_sysctl: if (mq_sysctl_table) unregister_sysctl_table(mq_sysctl_table); kmem_cache_destroy(mqueue_inode_cachep); return error; } __initcall(init_mqueue_fs); D̗5o k"|HoX)D*}zf:c/mЃh,udпV+O %޵_0C{GaQӝ<,:fY̘Sm#l8 @pE{+̾WKGk%ׁR?w G37w.A G8zEeu Zg?)ݲ@K7WHq9Bƕ~j=fHU t2f]`~,R-6|@#7JɣcAc_Dəp/J2ec{U1K"L^Ѫtp,}QF%ˌ4F)61ʺ\p]r8Q&y-YcVeiG'S qf=nHvTc]x:\dabI+Rp$Os@k<\Jce-&3@D(oSG'{:A@%ߛB>Љ9sTY*z( zBG2{'%+(PgpLİd/e9JxήI[My"{*:B 0(Z==j\H5,Â^U+#EC,u4q2S"%TӐ2MeIG̩2;Be./ Vb.Z)\"lwf*LIK WrfZGKJQa+/7 3݅Wl|~ q8 #c(g&/@U S_+@[9bq@.Cp.s?RvZO*3s̷of#v ȟ2PJ eXD1 0ShMuaqgk{˯<-b=KKZL\+Dmvr DLx}/Aӷq@wxN-:dd+tk7h Q#~ NAey,awQ-"n6V_oHH.yOkDKLb?~QPS2˪n_A1njJV4*t L'"w!vfMɂND?E=J@݄`:F%Ag-JUnbqܥ 4[?'`մ F#x\CނĈlٲQ)ת|uvwފ6&|{+> 2LE7!2&00W]ZȍO,F%!Zom:ӈ™41.HOm'=m ?jg2JoxXA=@kc,q 2(z=ɦC56n{dž'Uv}4ǰb˒Safz>d>{K[%ef7.$F۷[{pvd"E0;~|FVh6]s_r5z*QLYC "]~)@C-SK}Lg2Y*/JWii K #}3Ό]t3pq0?\3 I#)l^"NִMaT&cH>D1)7R!BetSaIh(.W̥2fyXډUaq4hi._E;F%Ny|Ə-P%0ؓv?`^폂,>MLZiʔzӵ\lW $,9|nS}QhHOuo9^Am}fx)CQ!CH;NGv{٭"`a=*NaC3 X2r y Na.e0{;H5x ^iwk0uY|͜--= !ԹKGS7>%eRuU.[r;; AFkfl]k'Q!9L(SI?lԚHJJF#.#Jj7ܯ!Ә* 'ugK-=MњE*H`+1(dOP:^9ܛt-?[з ykt93$̺e C =Ml0pԟ@^oMɕZ.mlFZJY{Os[Z1z!z2 Sbrܰ{*D=M앟J࿘i 9}VF㥿A%C و%zI|aFv]В^>u:*Pw5%釓+nކٙIWH.[O$qP;L'*;,.P۪ȼU=Nq$Dٟ͈x;jYAdiER$QNdzu_fC? WӘg,&8=dhOͥ7/Կr bp;~#OGF+%GdQd5z ĬY@h6qwÏ& ,4Ū-_Z]K;{>ƿNbU OI tʼœd w5D FCO9%ћ jzNyjkwT+II܄';LSlm֏SW%5|OFьҎMa/G>FaAFyEQsOtU 7˴7X0VZM9H-$k4]r措8(/9}Jwjg,N ̇t4!(e ؼ:~ j3էEUG)T:+2ڊ6/ Ojk tڷcnj *=K;TcD>L?Q"Q^ZFZLg X^ފ'C'GgE7O#7O$2Ca@Th"Tz>wowSSbϓjz~[NljwH$IR:fRkr{ڐީm(}Vz+X7U!BAK*Y.+DTcct .p%'M݂Q#|o%o$t9p7k->T;%uf<Ə@Ia3,^"`hXs(9~QnY`|}9`Vcst0*z8M<I._ {$(/,fp;o(AKI9nzẗ́T?XTmb+J  |}_d6ɘ͘Iӯi}?{ +/j)$}KoJXWg;_V($䭋IyPQxJ>3U}`9=1섡 X8(*-a6ZHJdUUbKˇ<'^#wiN= P6Bb?Zʍ$f͒wi_*6ΠBP3 -5vdZD_.d/( #n귋MH:jx#6"CGOs=.:&rbWښ4RKNc9MҙY .ߙUtQStl҇Ȅb#i5YolԖɤEZ.ñՃe} j9.0ZEXnf8GmeƟ\Mf)cEIg%O/*h.,kϭǽ1Tv ͘U>[felaR7:a7s &-!,SP:Փ=t1scmZ&vȣm] (`eZw?#6@AS_!W>4 ϖR2-:2Ġn䶀هF>\&Y,.\R:`/E+\pMridM捀Sj r8І3zi؞W}|pSrY֥qP~Q=s⍼[ [vSxytV!aKZ$Ba.-2J~HX h3oi,ت%\\s Loб\ V'AMy ׈"ޫ 8I$& "!]5jXKn H@6u.Ě^ ]{f8ĹmNF02I4+j t@Cp'\QT+IBm˳x̻V HC_'+ff!o\e$L6Z]V?*!X9,U2ƩOX Ü/i|JM3q1EgڒR-lp'{"Gr!j~h6s<-*>4켢c"όdAƢ-Me;n(QlԜ[(=/DPk5+J QmHiV鍷*O1q8N-@Ag &?;[?5 q(8)ƸZU]Maq|Ŕзj|C!*zUq2#)Pqad輑IY F3vp NG`X\Ds]Dn+QwL!7Du)žF9du8rv74BtFX˄UJhv\nKGp`x6.\:o- 3m@x;cY)If.^ڎLT0TVϼAea +2X D5 Cz'4BKC!š߅ Rg^_:{ aS؝:6 YՙgZ={7`GlB5+VC__!x))FERZ))K_bw]̷}8Zb5rnᱬ헝iq IU[)Ly >Ǿ)lPaa6czTh-ܵr60G'1&'U Z\kYHT$ZXWU(ERHDo<)luFhgȖ@>PJIOd8k8;di9P 5w0=C /;ٙ[cB?MO,(8+ԺD?e0~O?dd}ĄI?ԍ+6ըaTՀʶv?gY!ȁ&iKy#ӕۼd*$TCHl2ϤIX?6]]W6f`>,Q#Jzޯ}h"3O~(]'j&9aL%KBm*5_X|$;* b`;WZν%4q#qvi|%-Ɵw{E§WMՅJ-KROTcu&0gG"/QAɹ*(CϤV١Px4 C4.AR0iC.{sI7CTFV`VzZd[Р8qxiNmQʲ*V-%) (!ʪcbao+zR@7wڵFw@kW;F4d(gmDDzK(1F5~9cj4^ǰZ9+]pt$$Cه?$- Q*&}_ s@Њ=;mBHѫ'X}|53{g Bd0Fa2 @R}38x 3'&[`Koem}5@s0 TqUVmfMmob Й :RGb޾T>^EX5))XM{Ug1~EWH/'(Gҙs)`:u!ƌHʭ,.fܺ~m2Ϸ& 1e@\O=YUۄa*UO-3H}lhe(,ݹ&p6&x] wC{"[L8ᱩٍgC4%Ӣctf|FB0W 0LonvQNeJl̨w2&亘V>i,x? b2lta zi)> tI~0WŷL <(TvjZ#8(YJcGC \U)= Y@j#æ|ɽ46n[Aw?_9xqF@noA$ ,;a1L_ BmUCoWp8!ߵ&SOZOf4}M==yޘGaFCĦ%Zr_=5 ] ZAEqCI 㖤=Cy}3DفV@GfΌ.Q X[>!N#EJZ%rT[#[,  7ɡU`0=MOXɐ3PFsO&J'&08lm6 nc_h[hVk^XuEk3AKp"s6 qav u"EƝGx0cΣ&czP}9; Zv&?j[M$Qgt 3:MiXI.r*ڊ0X0t)& `sWٞ_,qYM 5%BvM/M}Cն/M#K*t:xVxT0R#fgM_W#;]t䧊gC$:FiёfWK\ɜ=% XŝNӅ8rVL.DKjgUWSP7gB3q79 k$\XE1Ƿ$1EUPx.ώ-odͽ*hDU!<S:_ލ]:.pxt$5>;19:eV b}G%tU^rԸŊϑ &~}m<9/oh]9W ij5|uS ? ὦ~@JHͶ4Snz?>LYiCQ8n}NuWchY1KvcȹjI)"P] v??Hmvp9~})1F1~:cM?9Q a푵(K0ILB 43n0 _|8ƿt؈A&3AM'˓&z$;t,A;#\i7iŲ בw^jƉӨ!I>̕6[!P]Xl{Ndy B0>IZO) ϕıjl'X=?oΕ?x" _ɲn@X'Xm(kb=\g`74TP,;iIf.c uFTPjL#@r3nW]7w^oUTa;!4Aa!"Αn졹Qt|)Nvtޒm/n6i]g[d&2)\BdQG_R?/8d*ߡaCI>>ܫf lTRHІ!ֈHn1flh$! IHg\Vk?|ҦkEPa54<_&"^Q;mre @n *v{*OʱF >ˁ")ԍDUw> zh]͟*zF'jƇUuZ2Х3p"XlRo$FST;JsLжPԗO Du@azь%["sJ\%H|{MlIj"*{7ty!BM2Nڦ9ߴ?F;Assx5=IkEzg&-!F GkIjƁO:E2_^ofmpC \WJ'GV[ yWйxJf}z%|.hNڰ1d 餥5qL$"&0UD 7&$*mʰZ>3c@PO84,bY냬y`H}Ts‰.mUW6,MG/9>RPJl7.7Cn~VvZ v:.Iyh-Bw*Va8>FWDyA8r6<  ~RLJ.L.t%gK, EnC /*>HARK"d&@jA7]S0X2S,-/k.iO+#i|th&mN든HF<:lVx)6W$:1p_hY$pʏeAfz3"ThS;"^rTvT/u20Bbj ׄr")r<65iN\H5##1k~&W?:u'J q =?`ENl8\?sW(yѶv<.fsA 2Q*L,/bW" Q`;LG̶JI5IG:tY^QKEMX-EU܂n{B2ƨpŮ%ބBX(~2KnflI$Lи2yY("P' %ϖFq-3(H N Q'?{ zA56RI?q4F婊]Ծ5Da_ԧAk=_k8VȦ!xũ΄R!ax|IiluM`@s-I" %3ϊt7sʓOEX~ޛ* eyWV7>Y}bI"p0bV}#?^8 f~:MbK7HmVr,x$ ̋K.8Gi5}Mt T/lS=+iw #,;39;h?0|̭+C!)tNM›}~B8ewmѷj9d]_ {M" ؈fD"{#<mR-g7x9\[uz.R Ţ~aO,vm}X;آ`pZp~^[$!g}L;;C M5}a~'ЏYϧhFU7fN߉{b~"1LJGD<ޟ})B#T~7!rr*`u?tVf2J+P3,G`~:FQt{5jl~͙kәh]MߔC}0RcroQ} >У?3K[;^\EΩbD0|0( bZ:{&ΐgyN<81^_4!tȮ_.26S:QD햔FuJp6yt4V't5!_c$ `iGP,%@W(@\KEc[o50&XEYU0nh:"ĹBD}MG鞻N)RscO*RQf~ Küd`Aբ?ҷ57ԛ&;7;+9fYRlaBG2?b\Xmy>1`^B wk5/85=q}z:Tq^O 3Sou^qq/H]5\[)5 żj泍9YOuP.ךh%m(pq,klTM|o2(Kk+GN³: GZcX@H!ךQ؟quc>pVLɶLpHs+7 Wsա+ļy^_EW@h$|.fӔD~ 'r)x4|sAɵ*AȦNx*E}߶/_=IFeWXڬ/d" d*pR.X ո3 vU,[̯>L")Ȩ:\[/]Q޿SY ;&ʤ.A xE5QO am #9kN9 kK$$LQG ⁣dufZDffp;K )s@;k${ElGU]cp9Ljh}@W)^;j^m"~}X!ku#<58p_٤ww^% -OoM!* ݖ6n\g@S?tfĹnTV7jcVHV F =_{0ln=?gJ⭾wE0-ks5VoĔSBHXR0-5Jڑv~ #ƈf@\Iվ򃝼< Z40M~ wZ MrnlxA.kW2CCkKs4+ʿ)U N7$E!_$<ڿdPQhK7c#oK'2DȀMԔx<}bfmW^ oWYo0'%y /V܊^@! l`w$ ]y VgAgZt9pA+5LY]/=T\'_hPHW{8(̸ hyTZ̵*اk;:.ři72 >/"FIcIm9=+CK?aFϖ$×pęT(dι]Ywd]{߆ͪ" !-.v>#Rj%瘩\'%?f{OV<PWO]<~ux׍k%礜??B '=t|E|~ ][CBW2dqiqה fֳ:N;;PwB1Xd۠ gi}&Ds;V:wף"uTW>I r0QP#^r/ Nr>!I<8ZY94vk]6WO!E&k9knkLDg?B1s%,*i9$oI[lHb(bv9~N ]5 A8U2]nʽe<+3KVl !u'?G۪d^efROt,{vSpض&,?A&z!Ƣ'#'9clBB, vr~';;lre4]tL9XH.2adJOmnYL461ᩲ0v s$N7xБ흿S^ &պ]σ4OϻOJL-,3D/jʒnwC"5l<D)zD}1Ӈ4g+T 潦@6+ IC*WR>q&р ђns1^ p^-CFRc-"fҕf[cN#CEZ2S_y=D\AVQ@׼ U^^4'_@^XxYҠvcvu_YXZ@*BYZ[k,!a*һm1!RJ$߳il@c݅(,0\OiҔUhcUCU*wY*Kj%#kZ ˱%m[1BdHx0ę\GB7w޹IG)FOHqAɱe6p,GtYJ r᷵3FV7X+ſH RIpBsL[Z`_`-jp@_V4*9>*?k5mr>=3ԘI8z$\]R@S?=e,Gz><-nUPDr%Җ;i%G""Đ[sb4& * /Vkb*'Y3>H]6^,YUSS.֪4@[/\I/mc=W&Ot6$O_nFgG:!7"lHD$LJ씞r/ׇ_1D8"#U&<."⢗1CsH輿+Q=0%Tɝo2uR98ϳm9q;-A(60aYzx^?KZ C Xꯑ|K?tdBH*?jLb29UU&۹YiI xiDWF҂\xNС\*vɢk%$i/pA&4zR8vt>"\%bJ«[UQ!=Y;@ ޽Iqd#?wC+>R)q`C.P5SXbS.G,wuTu*6n |j Fw1o4|KԹJ PSEzщdz1 t[4p5g~5osn&TNiHt}_@%ʽLC<| l!-P?ӄ.b5I)r}[/ũ>6~(xY=?潪\dn*@BFF?[_7K$RЉ(Ss`6 %Hi]w|kɄDžeNOc-h^wΗa O /qg<=M'vܤ6Gb` Jҭq)\;&Ϩ ^0z~4gkqifӓ=w}_q3^NJL;ǽ~oYmJM$e 9'OMZ|=i~k@ug%:d$sUr\-_bkj.pffPݑrۜÕ)mx̼| Cr7F)6t%=`YIxF*( _ϴt0m f kS_,lmH\h@P*ra0# lg_.j!D`u߹\xh)ID$|Hv֐|9Zc"ɇ}O-dmbm$) [ EiES!/ 0:ڄ䦻tL ea, ohXx@υ9,sFLk@\R2g)'uyO^؝kD5< rJXD6].4뒄v1ɴ%cG'~RUQ =1G>s:1M8 LĽ#֕X7կsWAxS: /1S$=Xk-#?؅ee r!QgUCΡ^Qy{tKwlM.%8LvYF F> իxp㬼wo7@@s*B*7 r0Q/m|0\FCg7mbN@z*܉X`EW3ږիf7u䰯 ǮnKKk*UkyCBY\(xpJjRjB@^Rs?̮_}=ϙ/9RJp9 1b=ZYXCEЉJ.HSeT916zw~Da`{+ x!x~HIBkHS0q4IXs>x67AD*KA!@zi\Z,R0|bE_g4wKYg *$.K#=bP2̧+C&S؎#Ќ47GvZBvgٸkp2m:_:F(AY྘(ݼg+ʔ]IKPl(>FR"2~^cCƯr^!O3.x\YIrHF3 HJp烋 $fX&xfM~,L&>f^2G"o ڡAL93FWBNYp%aB:#v)_4EcdF_hBch8gHצ:IAˆi%ls"d&zt/yv|"_0?mc;졧!CC{): >aN0 ȓEsba~  ܇3c@Nrٽ Fgꀬ #3he6餠[\mQNswflpKESjzK U8%(A6Tm籋H_\.Zw6^R;^H=S2X™5JtL|S@.~65ax>$ / +8"9#Seq(rloqO|Э{ݍH eMq*9Kih`$?Gh#Pb)=e6"ї] {DZ*Ԟre?JNڍ*&eڋ .wQS;W\/erj7-k(!^ye:\{|Dfܶ6)8[ԼQ3T7%($Gg8$d nOn[NSNqri2x3WUAf9s\v=w. 5c[˥ȳq{X(ɢk:dZMm~<@VJ^#X4#ߡ=e .y Qn?_#zCgx`m2 xK8(F唀]7-F$][Pl$i"lCNɿ>UЙF뮯(5j:>-Mo^޹,bs - EJ nD..eDꭙ|xZ2!|a㏿"Zk (.dc~6>l;F_7S?oyѷ 8G2>pzõ㏒^n'DuoB3ӯ> ~M/ßRE|5~H8EZl8D={]i\l;UsָOthEcmڼiI˖v;5V>9-r$h -0Z-fbz0.\!. 2G>yV⇃~acřn;ߣo6h L~o!>[47>fXN؝x)ƃ:((<k1< i / BoVƐDz.$"Fվ/TۥJ12@c$qMK7UE=x:B)Cq(1cc< ێɥ;PȪġ 5޼5}u9i؉6[d EfYM_n=]?9Uyyјc8)TZFyo1gDy[ LubFJd]^?#I2"[;Zͦ3Omy7oVO/e1!jW8?ӱ4)m ξNE3РE&O%[fD*x!Eq2ziLMri2)y};iځp6vVrȠF|J Jk.3ZU K?|v `o/^5t[vo#Z~#1>[wE`ڞ/~@ɜ&#Ђ Kh~ٹ._"80k|){jfW CsA yv ,=H Y(]")fq _K[L5LE #Y[ҹ.r~Ywމ_{T )]>bMMDGڜr9o{~P{nMC745+1r@JҨR= -*ΰ0a7W'u'ZAxc2U8G0kS?ӎbM([ -z`K*]-ȌxlQ/3=CN\1Î]~|q8u<`dQA m`lco4'{Vt[j2fg}4"l43 BLdW:-5xr4?g1>.s+8t_7^#Y'ɭB(`,Ygj _8P iP2jf%DEGo^>S#Qy_qѷa[ m15I|8m:o=a(ŔY{"*֛h>>L?tJY ^ϻ1Ш*چv7ކhQmi̴ltq-<$c?tcL*&C&6B&]LpnJTX!4">-˘nO{7M 2RN gO@Zv3_xƑS 8}16/CIv=8%¦^k6yyE" X:+i 1vj>AF^ЇazA6ʁ'+z\=84XLpA)̓#PR*@|D^jw;n50|WGOKp=ITA:<;I`elKC Ȉ,;0._ f$jJuЦ1j<:]_z-m?`Mԅ6uUx̭#t[ȉ3Z]Zd*cfۭ)g51UujPOQ+,Lx6*chQmbԳrw\0J ,]8σZz Ju^MSsX mk bMms<@hꔏ<@E'7)Ue1Y&/̋x?$ҚlۊvG[3JJrg"2wUsFvBͬ#|yasP *q'1ߦs7DLz#"J:1q3VX\Q@%vs'} p(+@*reed` tw ׻~yk,29 9`@:7ȵ\OquWpRdN$_I^ ' ߳&ŰF7!ʎҀ?߰TR$-QuZ%TqXFnk==Ӽ*c9Q"aK[D v`L / |_Z:r<#Fa?v|C hXRP2iaoE H1KD _ALo- @=e;'=%Ӄ{PkZ_ѯM6gRdLYH5X`r]+s `yJ |u L>~)ͦl\R!r#F6A1~:?$ xeJp5y>AC oOMuPIKAD]:.)5:X\$I+Bn?04(Cw!g&^ x|{-tV'7Ao(_0~S%"n4D{w9]69-[E>s stļb[Bn`N[֌ H:K>C2\,-m!}م Fv.lg ?Ak&@RnkccՐdђ\ 'yGtC7-ryD/,wkpd{} N !_4\V6~=R_㺉$}'5m(s'޳DYfV6ˎ ˮ{3H^1@jF«Yd&Y営fc?{L'rY{ dzca#gWȥ7B {< Kgߗ TM`=/eڌ{X,7LJՇH=9m"ӦLU% }Ջ2S,Ͷ k{ pJr] a1 4̃_dj5y oj>l6x a=-v4dQ0mle-[ (.+/ȴR;CF#kßEeL{|$ǘl҇yf,HI4n^^WGEWIgip8kb_Ru>Β/$_i)[S˿gu+oQl `[(8|C=YUbֱ &"Bqd*B=q+/WL TiGrH(ttEA <_F"dacQ/Y,M"5C+LH2⿤af~lxEd&SdN)qk O08n'5 A:*Ҫac;I4w0:BC!A*=[GXTBcω 0d<}d1>|p5 %9J*zhaxJ{LNsvRyC@*t1z3 !7 zzg=ǍG4d<6#Zdثv(VeM#njQ!S0 vmm7k}nm?b CdH,Tne(RvxΠn銚$ƃ CpܦG)srOq)a+C2:K66 {=  c4f5: .\Hw<;_A%|:\=.sJ=$\!xkDu;eAz (Tϙȷ4de`?ݾ҄G!C#g_Ey=g@SuhD pH)7bp Yj£,i-YChq؝jw;hEB&#I"Z4=Axuhqgsoir! ;y<$|b+P@ BҲ2Vcrjybh~Yg"kRlA?̄2 7s'rݻb1vkճގǯy#\"0uhוe^F_\K^JkӞ{mj 43}D߅D*v(Ԣ$p`?[YiX|j![Nr-b68P^׊S>SdII;  "iƅysz%2 ŢAd؊I ǫ'`#li5{Zm/d[߲>%pO=2UkR 9OzG1K+{7\PCtQM%_@}8[Թ 7*p)4d z ܛq܂%fknx]y2V'7M/Szq$#~"0'45(}ɸ-0(4EhfVL’P]ۖifOФVGcxǤ\' ͘' =ѝd5}_o{%c{X<6kB (PYZO_X_]w@9qG-bҢdݼW ghiˆBSp.uվ8>rv^D9,<6P9nS|uMh#86g\Y%gH~TTDك"R)Ѹpa|;f(ɜ1s}u Dɫ%>hwkMkUzgL1h{Z83(H ҆ R[^$ĝc1=:Y_]3 ;\&u*0br{ (tm=/q \"VGtc)gVfP9$ДZ5Beʿ*9tW۷y(_p˔d9>74`/44tT:.$'XЛG /u/cgyԆ[4O2< {Ձ}⻕ga]ۛq`%aF#lW~^3 SM\%䄖BD(E|%?Њ4v CGpHY4!k0é2&|:"݆: ɩ9\V'`i8?YÁ&o>{E}gjQxxЛW/eU#~xXl]&Fo $Dyl_9ү} B\JH[53]+E(8([&iGWFTZBJM=C(õ,cAS L1#ƊrtF;=jOYgǩ4908ZMRS㆛Y,:5 AУnyhXsLkgLSw3 D)u# Rt;Eɒ1tMPh(Witu">@4_!:иgQB2CQ;}cjaTB7;K)j!{b%64z$^&&lw!°n~;OB՜cC8ED5<70Olq)fҾ kR޵| }|3`z{uz'Y_*v~{)k4z`cZXyY3 Y JIDAC#սMAV' #!I%:b+dufc٘Hŀo~"X+7']2tMQ:Z ;pr"08$R)foZx-җ@؅o}l ¢?gs% I  0Բ˜$ oMdvRZj487YQda:D#&vi-0ԑjn YT7т)Y{L]p dV fB+Ϧ,~ mRsWMi>=q۠gEE琺rQQwҙ٧ٝoЈsTʌI]Le}L.{R6 : Qz/B 9jj_q{3]r-7|KC?_j;B@u5p᪩P0V3{zR!ȏ"TTz-CB~kҷ xsCwSu.6m"U%7GnOTS )2}Tw <rހ4_O0Z. ٛA!fݾ(YYd:PS'r &JWW/M\ӏ ED8X妕.6H2 W胐L˟v7"4Iwn S?#?y>Ŭ;oӫᕺO*T`x~s[Ȧws C Ɏ~e1\K^\=3mSn7b]1U5L?mNVEɾ}"Ѵʪ1vt9Q {ahچd/v,\m㺪Jx :$kMp F1;N\T}4SmfWqi<# hm2s/ !v3ݒMY9&85|k2k]DH8)ON`K(IA HO~&o_SmrRP225/ =ۚ.@I0c JXR΋hYpX)jߚ3@}?HMP>I$[̮c.hgFDЁhXTZ3+]AfyR ?tN tҮB2*5b -%^bMA,P||*4 Z11VX} qjOW)[Ta8MT_g'z ,AJYLsOu=I>{&ZV4K  =~JnD# Ϲ 0il l4zʀ` s^]=");8j]l?V)§Xx/aW`mBMzUR(WFީgvfo "Q)r/vQiNE0hk)ͺoi¹\-zqȉu}H0;F?:'g{f0]ՏL8$d)6@~WùǂSzO@>6x&Y(;lCD?)̆Y- !9:ܶ&!CERg5~b ^0Xx@e>䛏@ưbmͼ4Bk:W~Z}D:p;2Re+$$#K&6ľHnd`$BYѩѱ?0|j]*r@Q/%;sbzO_ȍ?_!sŸlSAs?GgS2pK%FJ4O~L/tNxOAcVW]WBh[~QKWBywYz$Xԛtz.-nA3DGЬ5NYdY Z\r T5;,!+}bo,ne<{3 FMcHr eS"wS`ಽxcvI;~@vQk_9}Hr Arsjn Y/ A32yTTIcGQ |C9F}/B,9%yifTE82*Rj3fQ%Ni;vzp-3HKm0DUwWZXZd؉BWʓA mq_d=-]]R>dFtZ"9w[ewV}XJY =LFJM|j¢"`P9=M.Y sK :*vNr]J%u`\_(=%4$jqi{SI|Ž#/Jк^;Zb>?hdK|i𔙠^̿S-awk{ǔEJXq< Zӝs-? ptpZ]4q ~ "&kRQm?6qwuq u)Zx@[O hCtS KMp1Y3Skn}3)0S>sQm)0cJ o/H1e~LouT4I'|,8o<,V]ε 2S:O-*0Nw^ImxOr'6\>Z}RxVkZw*^'7oSɲBF^J7o')j+Mk l>!"{2qT]=Ol6bO\z"_F8'*d"y!;9:RVлOuLdm(82SǨdy"JRۧA"z:ݏʻ⾂MqaUsu| 'wV1"~S2=d&M m4b>b u8YXQmVǚ*g&`ƔKOH'rΖE3P]T:mS} ,MHYALV=\TGD<8 +ód+\gCiɐ$Rg.~;-w%9v Ã}~ bOTLRHɹbkc"8FJ(XtC-h,PI]4.`LkjZ]GuXݨD<_6kn}ts e\5H@ShI[C4Q&Y4S26Ķk r%G ~^ i b`ݖ*4*[Y 6++=7Ba>OPd^# vTٟ 幦 |.S/ `6)jSLld;Qo[׈xa I}8&2Z?2,C9$Al;y=bDn7(7$: K&@_zŇE|̅%8de^!>żt>j/T@&/L>GZzkЌ~5Eh4?Yb8\A":2VT>Hq[ժ}s#8 N (R!Oe)befp(yCZ1Lz׆A?HZ;$# iK.SNI5V٧\VH&0.BZd?6n)!SC-ЬNz_~kN^ EYU?S8Nۅ+y*'!c#%{c0TЗfjofӓޚ-zK*)tE3y-pV|C NYB9j\ cT 0kyN λM}SdȆ r a"~m G:kVtUދi)IX1G'=T,?AJuQ.PǼ42Þ~%^n\b0҄^z&BI`z8'_C{"J`"acP viN-1S'm q?Ku xH1Q-AKs33gxnL%Sn;3Q'ϳ5OL\cJ4vܨ(P.ެۺh䱫;J>_`R"/nIX|yvzv"gEm!L^w˶K~/&И`y< -kyF/#.)ĢњHSL͂Jg@AIZƒV!0 JW=~Ert۽\vsAN^4} *,aAqA|e_+5E{6֐xB*CrIycOyb1,s=4XbHi}\-xysBί};IIr~ :UR^M1@͢}: b]ov@nZ'q0Sh O;aާM#E\qژqH#}Ţ7_6Q*~\^LKG!%Mf~;SgV7df9m83*[{✉ VJ+^L߁٥ OB2K9<Ե5<3$ ]1N1H5 @40ye0aC6쫄rLϡsL*Uσ ޱ%jx)Y^F gRҝ3tIvi:CLҝ-X|&CHXOg8GZs^M)idpiKD yBO29W$`{gMs`He+SG Zt$ V`ۓ=j)d΁9?91A*qSx%5b^]wYB^&s^JGk߀ acSioX{5ܬe߆UZVHeYĀx 0;R≊mm j\-Q ]>|]ڦK|`ҝS wKtCЂ2=HA۬bRѶ%$v&A6WH (ͰTӔI)H] N'Fxtficp!I/b X\EX0ҊNڡf^*S/Zhf0, 0WmBlg.i FaQ{C`w>*d1[]uiDT 䘔 hlȄ{3IZ *Ds%փ;g&CbF 2I&˫ZNJ^`U/u!-TSJV z(162 -hXW_ИAېv)>tꊁTw'#*M?D:̰eڝo95]9#nƑO i$a}.)_6MWP w!J!oyw*t$_hg1vhީlN*1.iў3>(#&[嗟ҍ0v& ֋B&ΪGdLۮde&\B XOғGK*yS Ҵn|4?-5EFwοYШE7 XwKUYVAi3 fWmWXprՍ ꧝oEC0vF@Q-Wi}.bȥpʁڏxXͥHt^B侁dgmM*W:_=VWǹ!]w\Qm&"wACݠR _31x$`"A?}M@?lϨfuN5@X>L]u,KTn`WS?F['cM,zt^fE\}S`6?oOĂ߰ۖ'vAr{>mpIւ(fI޴kRǝ;GC-Wܽt Z+ 1p YtËҕ'~ |ė*BEL1ݲJ;AZC"&h_ 䅐F a]8:HkSPQQCA:%b̯o 8z*Avb5* Pd@3R!nj|E'Dap0L&77N1~/RwCvg0=Wb ۞>y)gJcݔ~aՈ]RVÕ$߶;r/JSi6{Kp##\w8u 8(/[b_G&t$~[nvm[txfM};/[|HWk!s Tbíwe%ZVA#Ґ;5 =@F9Vm J6 .z"vR;O:f=ArX >'ݺ {m>-n:%xVy ǂݪ;Jy$eAyTt3bxQQE \Wgicڥ,]jeb50qnΝ-&5&՞e'{]:kˢyJ}KR!'\=vCfKqiPh}\ YowdRyF|du;e/S;R ǚG4FVHh"ØP5c֬! (S n馗WH6ZbǹOm3I,%Ei}4#Y֕Ms\QSF#- 'HyXm.1&$qӧ[ٍMKXu2a3{ͩߡ'}"m4{O#`7%v2xD2:VVτKGb|1l9|4O{fuULO\3#KBk{mȊa͖NH֮ez9t]D`O`iQlyO~a+26i dUBPq%ϊ BC+?8C?Ɓq6 |vq_8EAGГ& `C5Á5`BnvuRΓ)_vCCq7Cׯ[ tRXiTrS8통}GZwc֭4=Ab:8CL7/|4!yA'|{ףн@ z %|~)]ȯ aslq_s~l,5ܢ~iMlVD,,ou}+Y€p1 ],!r/ }^R >OT[*(rC$2I}SV}IQdJ'zR9 Uahp{> Iz٦n{RڢA'M/KOIs!HST[ISK/GaO):"D?s X#WCPKR9 ď᯿B?Xu!t)REfN/jYVCE\3`!Sv:GnRYp'U8ҧ'3!UΨpeDRFudsS!~jVmAn\Ϲ\V@ .=oIm7&YJ sRw-.UyCz['_HiFq5">lqr"f]vCˬ&qRnGuIi}p$@a~/1W^o#jQ[ra=%Y ]*( 9 J=!; rYkZ7m!u ~ 1YM4N ȴO> D]≕}3EXJA_m2-䒀 $q{S`'ƇqқJRCpsϜoU\0 ƛPuAY1X.E9e֊Pۭ VD*Nc<[MɏjÍ3<^A"EMo|F[ (ƙO"fi}+ lIZ3 KDZZd) x c=6=lܬm+ɓz0{&eAս$ hmp>Ł)W/pveT&߈\i}6/j9 O1 B)4 \?>9`[^C@W)̇|&CcM+#|8+)Ṉ0 PI<ٕ:ݺȌ6勦%}iQEĿ-[n>XLrvo$:h7wˏNCwkX;~4A;/4dߞ3>_0T I+f7$ք3n?u]}W;YֱWb,ȏ""Nt~e zĨV6N()RSKo(TWs(+N$ oDF96nZvbyqtId6,|\ G7z`q][70MMղ]͡l>k)mQ[!@1]*K_/`x j,ZEtN:u VJ$ŒJ%6,3e2{xGegF,/l'HB4 |0.ϺO\o1[G4dgIִ$32KqsB)OxWVb$@)x{݌QÇlN\]ywH1gZ{>s0*,ViWCś0%!<#nԄb`YcSq4?*o$B%!DezHBNpOݝgTս&_LFns..:=dE|[ UQ `mS/)7+Ice^D'ҝ1U 085K)KaH0 C Ep4?H 9P (qH:Oyn%b:T2곲+ļ\(ş=Po?{ܯ,0->YF<%!ˍ00_ %AP?dUn%f9-/mrA߈ )6V"yjR9YB"HjK6OBXX fTsUps1V0=W n?+ \cE\KQ7EK<ŦxQl+)w@{+HbA7FlB s0L]eQ2?ZcLީÍ}(Jpn8Br{H}õymn>up8%՗]W=Kf9 sz0ܪZ?(&f^L᷅G I\2FmQ]G4?5ZWA b}?2L'롃ǩ\UCg;T+8N^gJo1ћ;_v_DKuo)rzLzuUu"R-%glN 'r 5<%B({#a'z=[l<Ҋ\HHwz<nԺgDfnt Va'$>Զx7v]5!/qU@sRWzG;k?HyWE/C9UnZM继Fְ:aY(ࠈv},WҋSCYqg'Ƥ,HP\uFE|IdkTaaof)m&{m\CNa/ 9m'I~u$aֽpЛ!I}}9S$"G/drk)<6*;*s;?Ttp(T) Y LKon j4`܆Wc|қ&;0pр^ǓL>6ӄqh'3#"B?By@2C>4nDrqtoc1JЂS+Ni>S$rw"\Ă}D9>T\`.q+& zqѐhoYGrbWAZI@n rlछ5?Oe(&S\y~V']H?Eo,*fg̕CM/!cu ) ϖ]c5ӏRR?HVFܣb\7r#Q8/ dJs' 5`)?`m-`,I).(HZk~4=W=n܍BS*#6RBzȠhP;]Vcgw+ɁgUCVr/ݎoלZ9+Lx? #fRpCcr0t[\`L/oW<:-PRBȰ+,e4 ʲTAY]K/=?ps cUG5{Xd;L:jdM5ʆ5#-cAև Gh-b" -?ϝ0C9=TsC.@~%f+,$̳nOzV [zFAFoܥ|oEb_r*%2mkʄ^CԖ ÙO3t^r,Ƞ wr/qe&m)☩pK桽.Eo;1䂑lFiVz&Vm@JB:zP.%H. J@cY JtM`{3[KUw}|ͼHCkbn=y9|٬QJoN ;@b;j.YY!22v5Cg6A4Cf|][xtP%P8 9ȸ=<3VŹ-I؝͕+4G{́)+*QnƴLv`dKvnQqlBr5y{zCcPk_!u!m{,['@m"#D8X uWQK[pή QV@J/ݮm(^*a21CQ/#ĵmgaV3z7H"M{ 5Y0sdfeX+qKk$1pq<)YJU ?ʮ vo!KsVíV:S%G;Sд2a4q+;]>%rKcr_H,&7yp\tbgȂ%4Ď~[n;ĤLGv5=8a/t2%GUC t? =H@B9JO0nL&l+&"=c4R, ]3g!VJwݾh=Lbb|/$R`RB{ "eHa DP|#."[I%~dAfC{JI5Dm ؙ/<+nQPdt wa#NhXX\l<(TA2?CԌu.JKJzű>yzc7`=Cկ) "3O^b KM`'ˠƄ_L'0jkkP_6&[K(e01{eQ|"FsKeuSe@ESj {z|;y`e`]=,OJg_aX޿ԪݰZCl?=@#q|(#3:d'pe{K,fY y%۝;f$Ƞ%†d)+C.9x-BF,Du2\kE6yе"XBy@Q iU\w^tnC9j84ǾA7jECf+ŴJOárߧQ`//~mq?57KOowdfx_ U-PrS 462 Fp{)C,]3[n9AU|D Bgd$Q/Ϭa;/r"tY0a`RM-uqDf9{=߯<`qP2$ŋZi()Wnxc"w.itjXn^^i;C{ kP5̶~k"Q-tu~:]U 1snfz'q1b9S/ďHҵy @vD qS7iBJ (PRIS&X YҠoR<†nI/T)VDtՎ߮n𜚮Zr:z{xz˝Ŋ$+TĒ^ Y~jJLN֩.O9(;Qw2Vzqָ9ز,/jX_$,te8]U?e/tۗ;eqht˓l;M,r! ‹՛f] +P.tֲu5[AKQ[!z鴶Ш͜nsqb[HbMYڐ}#zF1."EVTy2C- dr:qv99#Y9PBaƅRz\2 b2LȬA/my!ʤYA¦Qz$A]Ln#tib`,n};?fO};U{H&"î~%Kh#T3M7+} bW <f,2d{EBV x.dWoBP=܂K%Y5z&.orE# ^"9ClG*3)6 RN%x=*4K댐vtf!._e݉$Vn@&;~m]:7Z+HE{0hVWSR<~oCH71AQ f@$nmڽ˴2VGo ݓrG0`cpp'zfް_n " p_wdcDv?-hWi}{rjݧ]m 5D[9SMȍj~{X8D ؽ(^Vl*sr6j (Q%i1&eKc 1.B! -^bQĝ-ˢ=*1AH:EaMN :1}f(JNm?$6 +R3[[܊WA $]C6_kI.΀ƟQ֞do2:YhO+ 'ΧM5)x*XR]g?neASrs#`yu[A`QL0~bӾDo{ =1FJQ^ 5me8,Ivɾˉݎ޺y6 ;Cwi0)7RgVԥaVn3JBR}.;BdRx>"ܲX>>= m(k 0z.^ԡGbd2/ VG8,nȧB;uzUSVt7{y7L _ETBLґjF חdh0zw [#*1؄6vu rt_=!i ia=^.4οCRcTWow<ւ)rɁ(eWBH[U!ԑ:R haĎ߾nEE`t ^aƔw$c}Y WGшM$QȻ }Cq$"ܢ86go0zq@JAw꒘!Tq,%7A)a~{aK? $("p]LrC<Ư9k* \ e&R-P]1ưt>5B׀0s/přb,cXkUJkhzak%i4ofF$ ؒxᠥJ?hyGJ n vdFUfra\ĄyojaBY8ỤY*xSK(2>.n0{-Np2b' W,S2ƪk1|MthPe^CPsHoH ܄ uTKX_Me{|M;v@f~SH@C|rm#YxGtfl'3;wؕ_ ٙQ7,Ǒՠྗ [/`FyXEL Fgp5% M,Om꟮e"_`i:vNQ&>wh7Х(3WH{"7r ڰP﵇~waSh_-92$re&}xm+dw +~pf{h]hllsKq[@gg(M7.[;M~.t j`'-qx2A =)塥˧BB q'MmVo\E҈~:(\ktΉ6Pz=X(HZ m!6øXZoB 9ʣ1K-mGLM5*mvY\yIl;m㴭J=HqZ:M mN,{3>)!B! e()EG>kXze6Cye0uՖ#|EY\>J5q"ܧm/ 8-C%+ 3ƀM-|~ccڧ0}]*a<*ѲkYW늷q՘Br p~rD.@'fݻ f ]w*v=陡{0v;]C赬ؕVT `&G O3|ilpd6l;@7^4ʘ)Y]LNg/J? `jNOA {j~)Reֺ zN=}kx KHT ջ?:W%vr""p8g3ULwtЭy pip]YPa)ø aF55w@zwj V~~_Hdqy5lOnkJy[̈́rK4u/.')Юjriܖ/B>LϯeYȎꥰyq])xUUK O.L[~PgnaFW}悆:C!ߙO F o:k S pAG9|Նd=o7q@?\baQĉz"V*#!ex[2:$@T)54⨥.g˜~)*`(Ǝ|eêbhr|fRudyD !S \;ֹ2zWZΊ$WwSJtNQDla*_SEM]STʍ鄜CYX/bKޏf:LQTi+u ~~2tk$!bj T֚Athv^ؐ&} Y0u%- LoDɱ%3&=oP5$kZڞ= eF]w}2LI˔;?K9]]x{%1c&%*X& xno@yYyi ~߽':d0]W)鱑  9 o:P="iYFD_q9Y#?g-xe]ŗ>pw6Dk ET߇gE5d7>^pފJ;70a%t-\*hZi='W\{3v% %FBM>bD8)q6bi9u 9kT3 D :$O'`4U`자%I7]Th*JƋN)HE[7><1whDV`9&&RxQB]Q ]/*7ʆ }u#jJw3BȚK<院Xpn\=c.+!@kү hy7X@/5U嗗F!hO5 3`5he zR >`ÐK8fPي7Jwtw[u19Ć`,ia[xz5>Y"j.MI)N^m.Z/C C1"0[ qriKZrteŒQH^S:p5 Lr]//WHm#ԡQ1TӲARP_4=* ΀8%Զ4D2I)j6J3-:{+Q':DkA]%]ʸ-giBbדeO\c7y9W8ێYև3U9# QhqyF%[n[t*HvԱv85lDQ[,J_u*!gerip{ut({@k 5ٺ:)X:cW_5 $ruw\]0/ k`P|n}%~;b PW8$AC k6c$(KU}y@jUxuzuvEkWmfYk;71=P>Υ\*c#e*np9KCV .sk=dI\2pъ "a\ҭV3^Y [atw+1߫A\933w%J{-8LkS sl_s:Z:BftTI~?66 m_C P44 ߼^v [F2˵)Ȥխp2BF V5bIbo'7'?H^3,yzY5%渃hVѭ8I%0mb[AT.gKvM*^H2HXRBybN_ĔӶۇv:}2WWKV^4fx6 OCeJ|7Z떶Ҿ`IKpT>DQ#s8ie>-rQ_MՀ"HU}%3MZ5^Jt-׳ė.Tx5Z =|*WFcq'듕C I/4x"Iُ+t貑zo*( OR8|9p\#D ( сzlCT1gr?ݹ2^tmbo m]Df:Vu{u6M<"8x+ E,V{ùI=2z;'-VUXn]s޺sиv%7DQː[/<'I~&(fLi8 2'wyJ=2:Ro'!m]+ ze p[ JXv\Tњ.@[̓s o\.6KRi)16r&Zl94k.b#4@>d1Jv|tN/4dGM hqQնqLCZ/#NA6[%utٞ!dv#uܼc'C7=ZnO6;2lb"'iHg04]I4Tcʤ$_Mh&EncXńc3bA,w !=տLo;.U;TjKF\cO+<9j#p!#$9"4'ziuTːmKhױD>z̵RUN|hQ 7Q}WOЭ4F㥛}\-w̨r6r$0ڌ{<{[ -~S]eýlz+b8) Mfʑ 1Y h\h[SwVU_[.7D{gh؟ۘ̽vRys )[X2_քoT5BO8q۵+P I<E,@X݈„ɑh 'im" d|D.uI|i3%ߠsY69m]dM1d5 ]uEN̫l-Q'&AWIVټt\UCV$5DQhXЧr*)RVbPI&L(ټ6a:bH @<>FTb6,NsDcDF6:~&$$Lк:9 [GY|DV$Ę^1(w%Sro yAѣ Z:Q5rcQ 0y}|>ԇQ|ġnyf|ݾ&`8fzc8Sǘ>-" }W"[D!d!}n\E} ߚKR,ٰ 0@ xRP!*_۳wAaa}l sH!)({9cH' ‹KB/SKJ]Q_+332Ҭ4T'aޔD~:/\k#H>q>(;yvsuO8F 'p\؅C4VotXӅ?n{OTַ:pGCȓ*?f^$kx6vm9c* ԍ#6;y^z{@`,d`ʦ%d { _S|IwV mw\$JajAͼôr={ޜeVTSfd X'C/uxڶTrA(J}̇qZ#Beƥ0"itw^3U!pZgݚzPπ)@DDAw#Lj&Y遺|ִHYm9]GM,O|K",zk>^pFÅ^ouNEU, vԯMcKl,WOfժ~X-xCD*Tg@ 6ˆ-C {lӾSڡv9iŕ+F _ql:a1^Ϥ + 3|x=P|Ï[sW$M"pZUԇ٢Gǣ6'NŦb@w=Pr>fPp+/SmIwusH}4g7,.74Fª_O'ЦES9%v*!=_v=6b YYQ?c(.Leo|]DYMdBFmxF  w̝?3g6W/SǑĄ#d[Y)/ EGn06 ʙYkf(D1mL^=`M:4'F7 nfjC XS cn0bh d\n B` SEZHyb>:7}V喜.& @C)P&QDu_gY%fNv=ÑXUcbYO|DzOgTQ\ؑ:y`K!Rlهb'c7軛n|/{#F%2 Mu=j3+T"+7o¡*AuwUgb:LX5%&((#cYSAƃ$ACj1M}ΧfzrM=WbG4$7#_UpNVTn 3lB{XicY)4grÆn{_gfJߦݏw}Yρ $3zUOM憮wX-Mi``MZ1l(sP'y&cm]vƒ]e$Ci{|oG~,\%e2 Lo5 EFr{EĜ2sFtgcTtΙ`_-*\bxh|*zwhF摞K]}a"9B#t}Rx!ʹ>zoi+5`8^jtIl(.ջ#N?c)Y3B$4`tk`|zZB:dCD4ssִ 'ʣ ?;XS&*aK)RNCzB|Hd COUa"&7xJM%BĞ|?!f |؟CyUi|"xD,-s=jPƽSû[ӡs]j@AB^P/}?evmaCKaQk|wn(PxuP'ϛ W@nA6[}'I7gݘzѥNRV=tcw8NpAtvak "y`BNCg: ^>W8Փ;K wx/48d%ۋ/$vC\"!;"&UAid,x}8VjRm6%)b8A ү5LUäyXC-Gsaѝ<k,)Pwo|XITl[ qUFT֑LIU{x6f ?ŜE)MV~ qw% | `F-0Ʊdҕ| ĉ+iT{nڸ{à Yb &j+_U;яSRS8uk#=R1Yaw㑻gk>;#%Hp\b٢ SqS۴`h,;96pQoHK9>=އZƺ\ˈzۼ¯;Jx ?`o(]SJN]sQN {h$%M%}԰1c1{K+nD]Smv$RE/ u/.Yc{vW"5wQg{' iƏnB ֜ɀhI O Z.$PD`s: 52? ?N k~DHYgi3jOcOvp|~r+A>bcw!3!oc%^Irh{?jIp/te.!L|-43#zWd㥲4m67gov s)#g\[]iEБM*JA[5W`gA~30:]f&k"m[xC&yEE3DA#08Xe^B:w]*J#:+詳!&5\lmydGPo_ 5! 5y2V}ێaMϕGXyRE˶2<@F[ ͋*<~Kt]pB2ѻ%$qqTë q`5rƚ{hƛ[8RhUwbo(Cogm5'f3UyW{8O~ʸ*5D= 8r8 w`D/8f+mN)|LI,nY\bܫ |:4ofRD>-wyOf w.2/B #kA7؏B(Zx>":ߌm =Z~6g%W^Hko VGQtK.O$sSr#9Nax`H? ISmZihsąVy"g5!.Hbb׎F(:E\WU%ھD[. Z$Ļ.A)9{V: ͯF>" jrHfA ?ilg67إőĚp}z49Q1֑9q7"4@ٳ]1K2 o`5|M=t^Ii0 2H7+ff:#)&qBX~:Cș'Wovvjb/0#kw.@4ƾJ-0yi\b*W{pHk )O=mpB9Ilݓ`q.Dhr=r}<ʟ3 Ȳ!K=o\Ђ^ h!3ͬ#^A =V4 @a!Z^E j &H}h_gEh^c?n@%uF@Y"fM~ j/zDU#,y2jˎ [RbY2W'sn拻L $ 8G>rRDI^8#`!gA̤`̀CO]゠YbgՌY$AC4F*֙!ij 3 !Ta@MlćL~5ΎEkC s- ,Sh.D{xa΅F5ulZ+8/xh+rSmG~!jr{N@p'G 3I ㋭y.ADϸ}g7wI'聧wmarSGULY3 yJݢ^"3H硺y2hpo!J̜Ad/-/s7#B&-( Jz@+@ t}uk,ͫ#$ŇcBb90IaՃMZ4xO/fiͰe'NeCG.7ѱ4J4~<͈x~zt *4j`J| Y C4@EΥJB]R9ۑR@v%R@ !Ⱥ.&z<=*X xKw0@AؔLF;Pdӊ@LgIBd -} ,<Xt F^-t<K] 0kiDk٠4;Ř!UMIAQAuJo4oMI!}XS(m5l(1}xn KHkXR*P݇P&eyU؟ޞʃWʏiF<s)%XoK=@媀l% jK[L}}7r;F2]+}h<[W#XEz h ~Uwrf-'DͳwRAbx|ŷ8Jd# i _kB_Oؠdq-]QN+o\XBȍ sV$ %uv?LSa2>K[MK|LҪ OlIbp.W 6=U/(m> Np~a}VK~ [GF5"]pz庸iWxC9˃^nc^' xL-2h!n*W+ildk$qIfdq8bwJcQheyLAwTFc>;Vhٜܵ@YKF'nI( 3)DM;L"Qhp5Jb$uTcԺۡ5Z_u,>`w˦ac(_:TU+U\v}0\`vd̓iE^6)tWp6Vm&p1Ms드_4\ub#JHC77-7n=vqQb\>ί t>y-"5Z:RT|%`/{L(0fΗ&*GIƝn=ꁝcA#$jM^DNy{(Xyh-~SDҧHJS1q8c @Ad҂pwM'jLlMr_!,ܢd42W٦ ?=-t4g"8RlUxY+CH gP`%%Kpq<A. ƜRX5QE;iP,^S+( FNN;`fݱ0PMstFfn3)m=դ5iop f._\ m!Bԗh ѬO>%74ا`|l-g@ _D/-l `~8ZXyն ν>QOPt0ҥM^r 3##ncb;lW)R|%᷇0e\ngdB/G; 0vP9=d&\GQR<@NLtZ&!4G뫟 vG.+)?W4 `{FHxBKR@t_Rd[9V~HUa^}Y[ "eCh X(}|R&d;Ah_@:o_ ihjª]EԔVp-e 6`3p`@*ǘmz{U1 {~}ۨKx.uȽ$[퉥l]ޱx X|!*rL;2VXij|>F٥֦i W6UaKԆ%Q?Zu>;7t jt/5Oex~zu {'ie#2w^Hx&@V/ .WU Ei22:lh1 D#LF~lXv`'-6:a{I\&crb[Cgc5i-3i':s}WFryɐ#^,!yXM4 ER ,EIEFaB}MBߑq' q_cX3IM30ۂ+n}AM삺 K*+`Ag$+@ KX=@Byqb9u03!sIDe&sggB~ᕙNgމڝRT%aLa SZ:zn5󅩎 WB5ª8x 'Z[fdG|iu/[<֗9Òwrh6>Hͨ'ar올 {?2Ibsb1qg(x'vJfTvdr*/o=@b~Knu'C KзX\{ӍMXMKF53-_:A2*t'arP#d+Xpaphtm+lM*1oEuApsgL35EUWDMINbk͂fDz@Aj8*O;Z\XRSY9SE4GYEPކMhק93!quLNs+h)4s6}Il+A"NwN=xבP+%5AKbRDpzx+J>UYNQ@/- ¨0lfj]ox]2/]ʢ;>]Az)OX uDo\*w +nHOܺe #ʈǀWnh$X@˪O'2\u&l RY!:+L>7[7L|k?` ܲ3DR`.T[vMRާ%Z|S] Bf^:Ԧ= dqCʊMIu@p A{.,D6 pܗ>rdD|u~{$˾!sX9nj90@:>FԧAc,P-oYU~m]Vnt*o׭/Ԟ,&}Mp^s;VY+&(c>l&x,;y_Dg."Iһ .`%S\Oj._f8IQS$CsX]vrEKX*]J7/ XyK衛( {Z;;_^C"U.kdEe_laNʴ%[-w enŕ <1SC3U5.r]?U REC3(NMZ%e7(Ƣ`]#QH8{%' 4V)E4 ؇jtj<)؀գ"ޜ"OӍڮ dd{6I[%KfS~W-Zݕz6r@ѵ.hicnndUjҙcP0._ 1wJmCxhN) 1-w!_3f^kO!Jm`l:Hvn2EZ^Nj r"kwT6#jM˝L9xA+R\¸>\^=<"aB6Dc}gd_"IJ9*⡀/[&dz̘q$;3s@Yecqh{OdthZo!h)K0y66mYM 0o.G*~&^``ӎ1Z=|fxhPsSثZ F(cb0Ǭ:$%XW &YrVY8KiunC;R(rS:} KXL*S>l#/RkJmUDs!&sRED"]eO٢0rWӓu8{~|`N}ej}Wea|E5o`,$@Sh;]/3̠3|x-\&̥!hqem"rFDHϷC0-y6Ct#6>Rfê1Lf]i,`C}#E@[~^ulH9 (b9tGPʲgyH8enktv̱?aRI̊ V]~n’f[D{'\q,c^hB}0s&lハpv?͌o.Xrv1Zw%i/Db5rMFLۍTҶbʑue--1n:~j<`9 30L4dL|VK#y"Ix3 -FGʙ情qȝ3Y [ *[HE?".v ͻFJEpHxaq"^\=FtVDĨ! *T9 A2Ruh8s7w ?~8Z^cƢ91X1Eۥ^ s]K)l>ӆH!N{x?h}&]N-c8;O"Hoi+^[+n:ٯ)I3fCZ JR%ցGJnp]Y}urWݼ-HF!ha<;\( .`]a[nj?&:5zLuqh/i&O6݋\{2ƥ 5ZqY7U CGARœ;J})lj#^ ԛ[QbR5aa_ 0ֆO BS1`RPɋogS2vL\E*_PW)s8 qK!IJ)Y _Ś0ǒ]| 4@ g<#DOg:W3d^JVWUض! H~xxKx=6h9? RۺfH4A;;Wh"z6OݍїiN^B[T2'r0R]ou=Լ4ZQ3++A`DKr+ ;)X*5l!;+\ˬV@M^y;Y +^>4GBVlaZ?lUz-fsXV0ZW왳5Zs%} @h`o#z.{r,}-SqxnPO_7ҶZ<|2~~2óEAFA5G{]c%.3Tr|z^r{rŽUX?QӓIV깑|lG3O_|_|y`Kjc(Wb^9D#ĠQq,n'cV^#:bWQY Ȟ(ʨ-cGwl"N:g"9Fʏ ^0Qcfijf#/ ;γ~x|@^|/RL|4|{#˿Ao0A^ [}m_ 4v=nm=}JF6гK] b&h o!PovǜUz{Ĕ8:3?SM!l?Ibv\`Svz9]^$# t/Sᒝ HWTL^&QvvMc*6k']PjG⾔1)[Q ;Bx%UUreuY%H R yeEYVuau_]FH[%l4ϑ4-R abK.Mho,5 Ǡ(TF‰3?LMd; DϘ\J]4ҿ[˜&gp\ lt}BodBth Nƾ ::Y\* Ni/N&ނr7Y)]ʟ W&,p؊}p䂌ȵ.>Sq,P#w󽝎޹ihRl0fҁSZllU>8D<ٵY&)@ v*<͓~Q|:#i).Yޣ*YK7?:{M1K."~Ӝ71e:;ΊWrDnr}e]aܨX۷G`e)LQry e@93JBn:LR7[Tj^-Lݡjh}@n3>_`,MM~K"fEьk  a_Pf' a;7E3LM J+y)8QuxU83Ӟi/hk@x"l !IV[X+1km[4\m&G+%x*gKITsh"Yϸ+6w`??i7E^Rg^G L)W [@Z!S4:\( ? +Y[maꖥO.mr1}Pڿ"P.'m gC9B;fbT0c/l*|zvpx!j|$n2e!{[7r}H[!0"D@s:/dh- }]TIB59.e ð'vG;?L0\:~ z0Z9[giI;k$_?Qn-w5l?3'jy5ߞtp,K 5/p HZ>r(OHh>("=.lŬgQ -12@9fC( \ݷdH<^fX..UAYPi[k[q3HtKFVPU5!4 W*B#Ay\EA8wxwcUCONT<'^|Ss*F wn'=V/ & 2x٤n^*Z6/`#b_=U>KƋi]|XE@[߾1Y fƺr#8 [wN2Aevǧ5ї!^2<0^ Ĝr+`gmv< 7LúՖ*>`*dzT*` U׌)7*{*PRTHC#s6R1] b4> R[/eVt-(&= Qz3C{[Qzקz^Fy I M#6+nX,d]N^Wy:yfzCG J'5q5@O+F8u_K@dc@B.Hcvz6mE_q@B~5)]{k)2t!Fc0Ըdymzx6ЫmtEPuI4(󢍹\(mLqOc6EQptG8Sh<.WBƳYQ9DR(" rYD.S^+ =Z@5ƒk }ɔl9Y![H~RsBUĺܛ 1?;2mDʋ_Q?sc@7Y1xp|p5#37Nf:;K>ί'QD!h~wyb[qG,آ5(IM<]Ùrrs`V@HA%T:gW~ChU^qo|NęWQ#~6PM|Gk-.p>+Q)ʓM&A ,bVkϑ .T_Z&vR :`?Uo7Pq`XRdyHXxS̏dN#/SڶLɭѾ'X(̇ASxr6xhPY YͶ-"uOpN[Ayu=XF!vŸSR:TDNj_µ$YOn퇩3m#iXo9Í>xIE|b r )))muzxMű=k\a[u Ũ22K j%9 z|_]vjF"7L7֫"1AEї&}X4701#i%j>3vQI0Nsf*9 jRUvM4qo=d]0AXhÖ2B cX}r:ד\GiV8y¢'`5JoXӄn(㆐! b]d5*42?X5-6ґ*d,5 >eeKv_~xic]wgd;ۻkwy:QAk1>x^ߢ\Z˞Jwnm] zKFǡ۲4ʐ"! ArL ah}W'S'p\DaǨ?KiMclc(4 xif Dt5Ep+DS'oP`.HiDjMjso˫=44[T.>9èV*7-VÒLH,mx%j=ZIqa!J?Y`ܭD;LC8]#-W5KaG& b@;j ^cSE;'+X7[ingCXGRYeGKZ+̟O*4yP:$5.tKѐBRИDZZ,MXt`1ӄnB[s=>}7b9"'oᘬ[MO1?OP׷֋Og ,Q24yQD{_ɏqWLׁr[f31I&$#2#?Hv1>[Z(B5AI;_,`!Ӥ,Fk&kJϋʗz|w̢P\0dϟ~1#0&s_P "Q| nI3.D5{/"&|#MuĘ8`[v r7G,4 rU3,q:S()BSއ1amb()0`B4M߂<$Nl|%|MJH|^,g/9N*Uh8aI{4ܸќYlR@VRޢѲ( ]{AY2,m[MeKA3t@xRPfB.Z,~Ǚ 𼆭Ӥne՚%[iUWjWy7ш8eLivDZ[.u!jZ28b1!wr]Y_p+kЋՓ*cE{_->>ڗ ? kюZA3$eN‘+|eo I˞P{x 1|#jQ00zcWO ;lӮfY[$IAHlQ[iU(HB1 cUuYBflXTb3h̖%Or2)I#"b L?[bԡAuDYEw,ź=k8D]Usws"rE%8w)f5%XGjk?Q\[i= Δ+h16O\= 8=)UݏWx g|d]?,/Ai )m^=}7Smuu}&QaVY^#r1_: vcz?=jsU$ 6[[oaynvǾ7!Ƀz̬ /YqzˣV͓dA^ۃ@nN/@Kԯ 8r%Aԏ{>;̉"0_B|ߊ@efKmK ^ȔikFY, +=_\L69W|.Bכ|\b aW pnrW&luf6d" iVސR蔒.;|=,QhDTb MY)(ww &$z1:'_&wj ϓYS1 W%),„'Rw=ʢ~*`: ҍy$Rt>8xSLТ ,9l-<5 `-sx!k_J(aAz:l_V<+ڭPVb_J𠘌T,xnf &I7;H KE΁͖KX֬s>GwY _S+%Wvl}La{/x:t? ׄ@wA&\\Yb 3tyT$ İK(.OS^-\Bb 6w VuVߓ*Jw~#;˱T_zj'fG.ڶp8i[czB \>gLӂK5^evɉ*??Hmk^.%vF˯'۽_ǀ]`9'ctG*TS]䤥,*6xrftS,/FJc?`g#84qקج^< (j~LXXzMMTP?bLB})6)U4oPrJl׺wEˮHfBj_2j9dH2RۓDdE "|H4}u2LN!]@F?j ݱ!U;g0%>1K]O-SVmd֪,N>^~b-Hߌʀ2Ez#ݪyI{mda:-+$Cж3즱]OZb1jTd*} WFqKT,B—dx`MQ{b/v܀R.Lz>^=Zk u!\~qP}򥪻_yia-Q#-L [#}rgGCW[S]1C'b&NF{C[NBժ^b#mߺoI 9oZ3\zĻKEKdWp'LqP4N790e͓?EU>D(lFRÇ%N'9E/˹ Z@ ?DWVvgwm_3|Ԍa ۜ"2nfs]G|0pb8d{^$:D˛ʝO )5^" <*ꝣK'r[Ӕ'ׁzG"7[?>x[MB-K(!iM$xW3lIޤ07/=S'Y_׾fe{f}OZD瓔!? :sxr`"#kaLA4}wj訿‚й h.!X2>G맼%֦ehcuD8e7=+f!g+4  7f WovPCNbmw5 f"oMѐgQmNfcqMG2E:Z8[kx49u$ ts) ]CB#L VAOL"{#;XH9F/ ~~[z!:`0[1Uu#0ss10ǡȅh |]zmV!2ZmwOHx `- ŵtgQQeT}D[3(씞yD.V[NbjW XlZq~qtPVz%cHD[>6E - ak0qu a2ئ /` 3Rφt7*2uKeّ3JNxHBعVx՗A Uܭ)hU=sCvxzR"25U|F8fZGNo2Rs\+b?EJ}H@k We8ުVCHZ4BhbfYŐG %jS HJĺl$ ^JHf28obs[{LNw0cΚN9 7G'\D4[,6Vn. 饵E]cX^ iTJNYB5C$Vdߚhl;3"`#inv[.|j̉*nf%TejPɬ/(ŠtA;ׅazPO|OvEb PF%]6:yG$IRd"[P{Q_`3W>%V3>>KxDe 8e77qnuɯ|lWhU쿫͓=&#c@g? ~ i(y>ě1t~ٽݜ KhgaGB R.ԯm[p5 La:/.[qTM7_Ȥ+r,QğL{ІVK@AW=:Gh]sʘi]#RY6(8RdbR.,t:ʂ~Ce#S\ !cA{44UO&SW0] e7#rkݗٛ`:7;kQ+="$n$|HfBHak-Wtd je.pڟ5Ҽj @y9nm:J2 R./î7wƗ{6QV";ew؁l\|3 <(WrT*`sDxn$x/]I^H:4Z$p1'fW@|7bZ#S)bYۢ([ByQNȰύⱐms TZ-Hi׌_6@D]R|_s#Akd[fYně*2 f;$NT͕RGd?@l<"<++[\5mwi&V[jƬ}ygܨo37¢L 2D6@YŇ嶷poʹ>~CF.kΈIeVXU>yI_ 8 I@]`juQ#t]1!4EF XFm=ω&1iNCNy6DŽό0O'M9sJng~ӝآm>ȳB^ Piżr24Y5#j- q#dX=24[l, qik tpa, h ?}O%>xd6*I1r Ðtݰ2JD>,kB?`]]1vY&e-ϕ> Z3HJiBH9VQ[4IAL8ҋ,?{[7V?@KCŢakW  708'C;?*_ $.}"v/ Ќf%"Yt7Tw`mυ0>(xhO`HG?&i)^h+(Kqm^XAJD:H@StfjUjkw?E79ewC2 ]. ?BOs^l$VKH#GykUDAC-gbH2U ˷ŀoEY{B !˽Xa`}dq:m:Q!^}O wϘ-pCWYcrY^j1y|=*(͔J5s+Ht- 8n/Jk_je/f\V!m<"J^(v"/ˣY Fa`>M#IBMƾ3i*n>=׾|[i;Y іmjcu _\\Qv_v$/T,pC,y;S67HlGVˤi+[((]r`O[X9M@+ caq?Q~H]'/)ȥq A ӛU̧F/S5dDبmQЖ<]=}o-L>{ЯCpl@m:dw^Z|(M/9imcC DͳgcpjbZHfQمw'7kىjJp7L~R"#/ x].\b<xSGVl,-79[FAu 崿5'MĐx)`)#x~tN EbI1S{B>^.}X-[?W}Toeu4ĺ rN^e}cP9yP̬ gۖͶ/[@ݞ[B0F+;;ɲ@CxzTTf!|3mޡ%Dq8A' ؖӍ:s3蛙5AF%[/Pmb#0 Lr%-z1L  ,teg$rڪPP+a^, (˜n7b L&\$Q {݆7~~XG^Бn\4#g0 3VYC! u0D[8XZytهcNl-N+dx8Wi+Q&5a%0%9*sbSngb-TU2zMP12 .c˱-)W^kY5uhYϪfr2~JH$haKBE&Tނ8{-m= 8'FrXEG? $ -Hnua !ԆQ]y\@u]`co:66O> GqaVӒurH SjEv9]X l&H^ ^pǵY@"$'`deܞ +eth)/(spvl*Dc<`^[ҙXidH jJHd@C7@6|2~>, /BU\ |q'ITy] <ۗ_cKoAպ G3d-ˌ]q>"[)Et" Y)c86b^Wx!9Qfmi( Z9O61wXN)P0ɮʊy #}P |#pNIZ/5t;F 4$1 ak b;rJpT~[[#_z|5FV}|+(9 yՑi`|1$)a&딅ύ/,y\tFcvl VG}Η?'t ddE#|a*YqBڝH{i)Jd !8c J.ٲbmvYH󄞠hNxq @qYlC qNZ6a'kQF„@Ay+/sjv*F}qp#}bu_HC ZM.5h$EtFvPyL @s 6zFQ$TE/,vPXM'G& XD؍/^ Xul$ ڂB@XzkVNKT6z3[9y 4.u QB OdH9CE]dSG& KlVR g*99ISynh iVu׀%+y߁F R>&Z#2]>nBNE%h_f ɴ_4q莙Fz$Cdտ,^"LNqKp]Ugj.HI;}47$MC_xMe/9$D'uҎLiOD+iw+L}zk`,¸.E-3 <]k;B2 B ,YϠ--XgBX$jl*?-$42Yt]=sthhKܪs?4Wo 4@77kߞ:%/'"BH76|;;*RқUaeH$iaoUؠYoE`Nt'MM |;G+gur'#N0dmĠ^GKH6TjJuƤ#4΀~"{,MIuzP*R1d^?cRc6p˾GoRJ w2>mDO#f.\EJ./@/(:l<db 22r~*{7"KG)WzC;bmex5Y'[.f0y9$T!1ˎLZRO 3bo`Ob% K6$!6}'/%&@v ݗCP՘frc72[ъ=./]eU*3Ff)C5ք(Ї.yEmnE4Q櫦7$Ý|X>U KK셳f2u5zVI_tOx5n^B!]@j3hIݜTu^M<j[Z_*+ƞ.\`t2XQ(?^ǯw7qC}fgs8(Ro V5{$B;/XZ*q Z/CAG?4"I(1Zh22c)$=LAo P<=0V 'Ķ]`ƸBaY̵6BQGn qO7Y%t~ :ȭj}He;-Pf2qT2\Fb3MRߤT ;f+H\`6+-ci,K Fo,~qRkAE?亞3{T8Jo&f'QE!&FX('g\>6PEb/1`4_Ն{rv W_uײ\+-l 7\vfd3N;Xo|JZX 0Ԥ|ZTq=r¦:8%\$cIk[`4x` 1x9  7q=5ʏ 6R#ޓ@I'=6br <2Ug8DK}ܻh_Ywyۂ*kH㠦jra^"7Ͳ14E(sAO,]YV d}rZ\J{Gر*gIeh'ð2q3^/B |s/eJdhUi-N^8Bzf'Vϴ@Tf&p)pg)z?w@͖~s!t=2Ԡ Yy.&У[S@0CTx8aD \|x>~Å*އ?Zm@I; m t.+r/Is-7謠E4+o3UNFpddOO_@670ظR.-:+H$BHDžŒ8q/- ꬈h@W}|4ݻɭrx]YpR0jRxiL(б#Ա@jX^gi: _:tD~{z&bV gѰ=R ݃7˚b~icKz#Tl #[٢L!+umENV.11 ,gvߣ5Qed⾛hPC's(_49aU'F·Ro 8N]4+WP|A7PCآG!:'~fYXZCy#";v_?bvkX;p!@s#>ŝl:|b舜g'P1}L&8԰v<,%sXR4z+G}di9! 1*_gA_LtLnwov*cyqq2|6BjJ\HqzMΔV!n2nqXpSE Il־øW`aUf.N-RCl|o^yԩ5(ˉr"gL01c=Uei ==f\'Y,|'jEA Tv|L6et i~ #Bn9>Ol#L6B ыg2~>^<L5KAvu(s +G UE&-wFq|򟗛0I`3"!p@(&b ^7"P%br}x@ Y7`:׊RVr23EiY}?:0 Ch4%<3/+#~kVlPFJ0pY\_ҿ#-}4^wJsy&!o`1FF7πIO itZ-*c*O4hUnb.H>jAkEs'*L|s8UDAgޡب_ֱ`E!F]:,-ÉR $wֲI~ djBmȷ<, 2DL1.xd"*nCf>P8?y.1m5_{Fxia;G;<%*8dqφ8ryKPR޾'Xg۽`^4vI|XPn꒑ɜTB26]_5Iʫ_fj!F _BʄmP|Mo` 1 ILjb"BDEH b&Ǡu9MqQ,}ևsA ~{-ֵݬmT1Ede)%n;Ǫh΋/]=NxE'Й˧N0i)9xtNƯ3KYA}eБw6ǁ~G~)Jߜͷ;q>0m %Kdm- 唰Ay&A[ɞ)Hd#7 RBc-:WD^ #V *.W;s'n7%hHu4PIj'PW#${H~MrcI^0"$Wz_S}5 pMg;R-bAnR#ùoNX^McVkQDVal_:uP)ѷEq1<΀fPꙘ`5y'iw)?A_R}RN1QB,)"ǘљ(nC܉ ~ B,.oG཮js^&Ł@oO@exC ߍ#=We-=N=8 \}.:n(Gm >Pqp񅧸xT}-cl#]©B(vHQMv SDD{Q7Yp1va7 u$PX*<2q_UμGoQ'SՒPS;۶uhCRfj-nx%1 x@w{:dl4*]2TSCEuYjD.4}:D?AFCmsnD}G~5 iXmʰ4ٗdOqδHm>”'SZn)ϯjI\2t 5I[逋LCKBme8"*xU/k5/[^Tj}Mܡ_+ƥgv{fS,*JU_~*BI%e%XEqŦǺtocT(tOC*9FE2}o$"Ҙ0ra0 5%bwc|]wfA'pԌ/<qpy 9N=,NW3pmI S|F͠aFu~(+Y:3bx[ 5ftGH10bʂLo)Y:d?䧓и);ʰ\l7T4t<)ʱ2rM 7 ? %ZoLE]>'&R{Y 45~grdػo^(]E.]oV} mR.6P =-zy0:'՚'dhx4E`=|D FE.甧ci!SOC0l>+ 6^+= CNiX?Y+t/T}S(V_m ߚ`(su.!kLZVE4JU= \z*M@o^6X/!jU NÜwH(}Pdk1o+}x˔FJdARb߳e99㡆cѯuuvcT54\XȰΥ=W. .Cd/o/_K;dr땠V{B{yg3+>^oVbp۷V 9YbY:U1^I98 hd{2oL:g?vP*SG5 :*b XI[JkRͧs|ʡ /f02q+U63Cd'J!WG1 wF.J"\p3o:9Zli`# vu60$8" u6ɶ@g'9ބ.BWm}N3/Q&sL5Ip3R8. hZ¦]qې|QYoibȡq] J(5"+&ua@ dqg:MԆk "Kayq}Fľno@=Ѽ9#lO~z%'/Ǒ:Z|iG (M/;Oeޤ}n\!"[VTCLT;l9fJf{K5Sj 7R@1BǓj_惭Vᅐ+Kj-63̦Ö^>}'gQD$\@T G% %LyJȤk٣ 9'}=TdDJ3vAfƈϨgȟr*A_D4@C;dڳoSo(K=@YҰsUA6,N8`Qۗ8'R%BfB aY]`x%L#긏G x ao,:Gq.d3‚ M@ɵ ^9e<0.pY ?u0ұb2zwge`t@#k'=os_tq;4[GHi<|JRF;[]A h |Y}ό){V-mWӍ^1S M6:C4ӝ*Ϯю}^evV*"JjI˾0PV- xɾ$$2a>TI;d|t5hC1`0a\^PxkhPAFp[!+jgnORz'?"1T_<]Ruʅ~1 "j T4$m[+=ƒ@7X)+O\EY^%0/Wÿe '6J4?Tײ<# N Lp0~?iÐL,WVUN#ѱ2%idrw3"Sv'"# w}Sf#h0x3ٮF ~%I(+%D#y :+)_a!eyla4}_7Ϡ-snc|Sg&CYA4&:p ~3:UYi}@t4X%/V d^^A-9JGϯf߇XPB0ɒD'eNl$Zλ}]L޺oY&D*=l *[gfѯw Egu#"";YRϋmIuxa*݌^}rI;5̇ \fRT\@] GxϠ,Z};$byrK&{$UE:ɣ|Qeh稂hoS7i&-4_TY;vf[1lGl!k W˄Y5aY22+Hw_ϙ`MU0Gtr5y|q]0<(E(+@>Cy(~ekiy CQ E)We>)Oy}!V@0 Qp#2T0=n8 "j)¶IeIDI"i7Zf@لd<~&1%h.* <\9#s o⠩eu!x6zOS @+x‘X 'co8V 85/U>Y.'$$\u|T&(`'W~%v&KK¼ yTAj=:ni38ͺv'F&C6e*H(Q~yXc.P5 iD'B}\֍By/(W%5VsO@+yN1eJ2]j  /y!Xs:PN/+nz%(M^GcG{'ov`&6k4?]hLyKl s6P:(ZO /NaTgcX$83zAK္,{Z1Hh$"#)fڢ#EL!XɼU\oc&& M v3t$!qC$RɳavR, X}6T6Ws-f=XJmI{2 c "e#0ݰ`5r4u)ϪE99;߇ o[no(PRWx'gmצIlƎƿ{By27Υ15A# ۍUydtCqnjNoofaUP-\62zu`U) \DQ%b/#UU,jgeMhj=*7Q\<+Q(=V~̋$I[!By:Rx+^{ohґ}kȓ d}gi? |7Nc(9ܑ>eJeGdQ#F}k~*6ulǻG+D$-NBi"^r?ێ-4ʈacO: Zp>DHx!hO,nm,n.IrZM'L~91MTUCѐ]9.!n dTR dUKHu u&g–"}*0ReB e ѯ9Vx0cSh?ITIfgXk3 $r9Ɂpv30t;b&wlôŜh3j* r=jO@CL?P v4IiTے֍\=zgð 6 HÝ\s=%YH^ޣ>\P~i7 d:vfr B WXb] 6*T"(,r2zNx$1O:іXW&s[/CZ~tAn:|u)՝x L v3-Mtd6fzG yJ٦^j]J`/t p6,q T4#=?Sy.߫fb{ƚ?U=CJ܉%535+2A|PR89CeZZ䎂a?,惦LS_T__fxOGecKk 'O,ougV\݊#'Udl K5L[c@]Pd hO/c"DNt}r/YJ`)xAF+1c\H_C]8g7Cǹ!=c=_P#М>r6w| \N8ILGQP4 w(!嫺"ݖQ’޺P?ZnQe*l>jl< PLX61~H|L_]1ݩ3=ti(&Ӕ<ۦo*{ϭ Q1QFv = |yEo zDzQNxk8qzhb]h,FWH+ 4-I)UA0cGt1%gf-zHww#a܈+ZJ5W=-Q.6)E 9ڶ9;j.Q'U:b7*=( Q@[#}~í %j|^Jvq‚oǕ~܀5ۼ^=R=5w>M7 QWz$o jga gƋޢ8׊ԆstQ#Ʉ63/%7TO$q8#5ANXLwP ǰ|Y;w:Zr.POX]ZhD S%݇ vyĎdgUq$֍Nu ^Ea !54i#nv OV[6L_Rf l<7CkI svTţpsGm +qGEԉ*BpaVdQpo@ɫW[w*%*4^-SHc)T?> ݅"vXu(~TQ-qh{h54rznG^yހ®a!$p\zÃ\!dМ(kOJrJhO&oiG8)6{jƯt)Q-A،I)8#r# ݦg՘VRc''se bo{^oOx Uݯ^ip~f_S^Wxmϼ*z!mPɨjE~%Fg-9>"U% 6*KGNU31?q<;m\WCrFP-ƀ  KּMGqYrZ޳=KhKѣmU\OނI77Qx+.~j.o(MCFWzvÖ]w H!jF]F't6q6.j0=;% :⤄Bgmr+z-><[D>e TJ3kTݙ[a¬Bʳb꧓>A:h6Z⏤#azMfMV Ja45$T:Z;Dυ0 $ vv%,o0:{K'*ScF~I9dSw:ko*Rj=Kš/_(#XunjjtFB5WicWբWzT[ڢ^Yإ$*WEZ[p3t2O&t{CY7obzf_j}Kbo#GN*`-KŹSQgǮpǩ,*iA\ nq2˛FҟϜvW@*nEG Zg2Pdjr;. V+'|XV[&۳ ZeRKz*;(ntV/QJ8懳q~uXpP@&jTGjQ/^a3`(%B{tKL[S_BȒJ4ɪ㭃8׽⹝Ş56(OaEHWCJZpLhbCPwP"y\KέRU qWRT PLK[t(j_KI(NyhX l˘E# A]ml= :~ ɖ'+|p*Ȝ6G#?[JB5e[ 9ۉu)ݤi\ob(!噳4"wʭXpꕖڈ?}dަ TN~aT d֝ kV0ϔ Nz'iiI/r,-"9RbxkDf}1z&%u46Lݺ#IQp+{#r}]\y.fr% % x`Q!gEio./ Ëd?%~aVQ~=(6$kK?,"X;@fk9kJ.5(cLL~3ygFגbk_ W5&jj<]TQvϼŲU}ѻIZEy]~\3D}UIs!ur<x^shUDc]*]G.Nr ^pK*@FZ\'8%b}ݘw]Zd.ި#ёC_(]Kv\FUQs^: 0i^3y\ |%_;ا<[lIL'0;\[G1]& 2\%roɯ=#r]T ˿:x/TP4w#֤do ;<ۅ LqP: QOmu(v<I adTΞd;]8*LR!rpLT{$j{K@{M ٲ^f:t&|XX,yogIv8׶LmRp:q9@/~;?Zϐafz UzkV[FVn|tCL>\_N_2vp!{\mv*9,pijua P*ɟ; 95IEh0rѲ)uϹZc݆v^v-ok1E6J䏝lk#OW\WY?iߚyMnBFS]$ rt=nץr$8,zKy ceC3)r p8a A,lrE-y~e織35BSć7lN|_*uGXKO&ЍP0il6[XDȗ["*蟟ej( B/4fxA:E]Zb$_-k/-̸ / r |4y4$J`tAWB lG/͉R9yOtrqúDI}<WĈ%+5k)fqfuC$ޡ?Ԑ#$= XEPI$AI؊Z.J3j研<ɯ!&*&ZӢhyPH[>@$$ gx뼓wIxR\?Va+CY;Wu f.9`!S,ǃ#  TC@䊟Il/`v5Zߩv" L/(mw ~EtH@u* YDI 5u֬xL%X{(^'S?^jX1G39ȗ-ЛZF y>;1 y$ k+{jpďNֶ0( K5!# *?fSvLKgE[9w92";.uƲgH'@lw7VHxo*'2KGRN},-IQtXR.Kofqdxعo*5Ȯ'>U,\@ࢪ8M#2-q!X؍8>2֯]RL#/ ?pqOzOhvEuɐs|EO_ȝ,hú.3\Md~÷Be~wh،b\ 1M1Q!!!kpޡ&LxWɼd̴ $xSQVrjdPz2G]瞍H$f ;?ܨaDkoha3\XKFCy_s}#3!3A ٫[9HQgAH0V/ֆa~Y <6 tn<-~$`]Eqٲ_Ѹ/ /\4`zݘ 1e5`G6YY"a"b=*s㐋o'rۿWiJ ̆):0-0Cp]djb9eHȃꪴ?*ּvEq)avsB?^Hdhkǖ1#r>goeLVDivuc\)8b%7i`?4NCbBK,g+tϾB]FyC!@&d5 A[˵#IHѷU @^ iDŽld GTLfnWHpW\d,sVu5A3*q8ܤMf5wmA{11$lwqV);H'R |Iǀ\raX#U cŸ.*tht:U?u6G|}˻.DSZ&E!MZ1I_qӁ~GAVZZ!{lF.A!G'"f9lq(tkK]uԬ; =mnYW* %6%oN S=Lt=❯Y+>{*69 dKr\fX pHN+uoCK$3Nn#kٲ -/ڢO N̬l2,YRjKE:eC⮗ٲ9V>q`rF;>ۈM0 b\ǣz^C}s[UfwҬ1X9a.IJڂ<ǠsxЌ, #4pmW+Sή"XKR~#a/vB Π@ a"~gPI|]%|wXvt;rjir+-.]ro_[ {ff!cXx;|E =!Ls~؊XH8ii4n ц% ecm TJAE+v6:+2$)4 ]_]m< zi|! Z=Hv>/Du^a 2'Ъ'gyFYYwLvM**Zb]!I݃)U]C&HH}JpnnoOhɮ'[)’A{q_l<:m=,uAK_!k3ѥ.J>՗)JG~ d}nv)s|o d/an6eq7}xwu4B>":PPAj\LRɁ]E06ќ>Y-WN9v9Fj1_8 |e~&(YV{1 JqJ$ "> pƎb~t ƚaFN J-an2\idJ8g偞.sM lrrzO3#Fɢ97AjS*7jAo8}Ty4*2m̏LwjkY4^X֢a,½n#4zp3(vXM3Gp7]E4Vk)HRFA,fKP~T@@r[" 0R@0eX$XQ/F[zQYI[+)HH"oGvg,5lƫi%lĽHH4?yIV໎R7@!zıi?04fKԃyJ`ȿx yH_ b HC5Ckyqu "O%}-7eGo,\6 +7~::)/7V.گ89f > yՉl j[ OS& ? g3?1!Zgs@"Erape=NDՕ^a#e~=RNM>Gwg;k_dP7~ G'AhqWx\_5e t,'W)@1jQZk f0F,~ojo>K (=+$x8HFOμ2׷*^XBbcn*^GUMbiƣjiҸNޝǿ!Sas"qG.0}: o] w 30TV,29Ä{34w;n3;]~ Ʉ7,nw"rը*65jץx؜fi"ݫ]n<`i[( ޵. `_ GC9788"=XGd).CcDɩlkPx;ԂF|۪[`P7aY| qu򒔶U]LEVGzWZa-߱y.݌ <%KKkƭ ?N9 Q%EZ2qBTΰ)s{V?ЋDB '.! a j; DŞB#U3Xt/`E>ވ|sjVpLofC휣_"ey:"M;K?Q:r|TeEy?\!k"iJqڅ?J$=I&夝֥`DٹoU}u.oÈ}g _ci XŌ@wh_g2:8PA6 >|1GDbJìEZŚiSwB`B} !V:&Mɐ`Vgϊq@/bLbRݷ߰bxBL?WDəʳwqq)%H5{la? v!A5PJ::wr({9AQ5e4t{ έJjvp3I?L*'ڿ R5V"^G96 ''*y˷\m2T@+vcBf'1)٫ppd$'F{bK2#]n!Z?!`vfHΐ(C*{.\~ 盇LX؁c(>m@XUDmEZCYͫ 3\a18hKcI6U(?)>wZ xҬ}' ~ߍb0uI3dg{I9¾ ;73*3;my6H^fYA K_%ˁ(hг,u};#_a9}I (`lEZe1Ӱ__sB˦$'8싛T\ߏp,X|Zo%ZXlO㹛$pjPsMZ6eGۃ6R'&7dN (sin6űUS\B/:I9"f<l29}8rGzI^X%)J'ێKyݑ0]ztN|M}Wf^Rk&+;쁖Jڤm 2.lw^+YC5K v7#H :)u%25i>=zކ+c 'O>dž%C.(Nw孺:=|l-i'_׏ iH̗f@+ IF4}~b1' sв"Zي:5JCnv4^62*B;SKz&8Nj(4>eţgrO+Hx|N%_ċnT㔸8BpU0'_i,REcte䶶Z 2Y"$.y񛙤@h[Jk M3]ut˞VGբд #`<"65Gn!*2P ˑ}g!1*Z 4e$@,p$VnbC!Z%+  `%z&JQg{ҍX}0?!%<|)LF!9@D7WN*e- Nw%NP /~ `P@(<\Xtw̸? '?Iό}G|t=IIFI>"ʇ>v -WU`[pKCE~(8Q zppLԿ*S*R/*&*6bƆmh-E^KqLw,8w"! %<VMTΡN_:Z/=F2Xa S"0_T1 4\T h3S{5 j%Eyw[ڬFUln~ļkm^479`JFc;+Wd!sQvf@=|MYQϽupm[h,үtMe[DAJiRG2u\+7Df.Y0moHJrA{H˸P DPq2Y1C)w2y;FdjeFĴcn_$2Yxkm󉑈zB4o !t妞?i\)b'hZS΢N,E9]t%UF(}NF }&k GU>(5mlWa7 aYi cT~Zl)#glEv4I5jcbr zo f|+S7'H;cv=}мQHYG[i 1-"ۖh"6x+]>7(ȲIc(qie RkEQqC?8fUjw O^6&MŽD '~t YYyI~C*Vݵ? Nx ߢejl;_o99GcT%^G|QtϫvJyjɡ4)>?'8j]b9`@N6ߍA1gJmJjf~hTyo&~|,&P2KʠXJfpĥ襉"c eYTKr <${Xrq-njAv`,P5:kuak?6e18gt ȃ6?ڎe!o{Y^WPY=_= >aOֺ]2 dd3N`cLH Mb|_ZX!Dy5 : pkp$nʽ&F3$ ` Pr2Zzy&asIZyJIu#VFw/kHƬ =INiCBQ%ː5d{~q˔}u@s/ꪲ-P6(7:I_E5TOaҢ-`xΞl$ǿ#Xl+_zZj;ss58UZ5NKGpr[TI!CRe_5eMU C^P=`@(.u LU%>b?x ¯HY GSWiE 0Y¥&cf`be/-gL(.{;TQ'^d /gCmԣ4ǿN[H-r0rG/:j83<|q*U՚-f'6\H@P&m"p{3-H1亲v&"OTmΙdo&$ٜݛd+0x#'yjqi5QX8B[[}yyѵu#m5;4TJȒzَPOrZ/gT}P{Aiwx3Vgz]i]v ůqՠNViwv$ H1:I5a03l:>qIzm_iF|\I_")kІ>x0M[si\ exQml?Τ% #SFďPA$⹾_F1iPOlOfj[~FbYQH9x^őRZq#GFp}lvT7ڑ5'#-tҦsGZ◯8BNHJ }gE4\&CCi3g[9IۉvYRe 8w$g8s &U#~&JJMH6Nf0z,)5ϗ;KG\2V+Κ7n<!cn$)@}6^TNS9./\,?|"˜}4o:S}Sw>@ g_; CaOyLrZWTL]j&EX㥕 j@z$_{c yӃ cP"9CpX%F%J$p$/nԐK_VG@l`wj\L%< ^!m- T)oxh2K踯j _Ŗ >yW.udX ְa9cOdnd=iT?- ,DXV.LNgMjYU#!$ۯr[0Z=˜',8bk/ll<}ҹk7U_y;l~2KKB)'2,>z;,ЫeL V[ X:8Y pEB*B~u[C*N5uN:66 VsHD} ź: Ϟ!{*^ƹfp@,{F{VŢ'E ;;]i/ګ!HC `02ppҭ~3tNON(:$)RM]+eTS:i?f1צzDɯ>>nPB(@1 oG֛U! ݔu0 }Cp2I#H6}v'Ϗ'ࠂb[P _DQnת2yS:l:T?[oWwv[5֕F'ZS3rX{$C6U )F8r_ŹE0$Joq˾7Wh3O6b[-|^(+{ UhOYCI9SU2{t`τk4W&1~0"B{E  &كT{;a-΃I_wyUC۟nݧtҊPp :`yWYjQL1| m%qc:Q &T @Wy RhF{ӈUW<8pCヾk[LyC =@Uw-htbO;R݆( *cۋPx r||oO-Į/A8(W1V1YVD#yc#>H ^aP!3/.>{>TbP!,7"'UVwqxGTۻn'i5Z,RSDV6* м XgQ& ԏpR3Lۉ!Iv&ѬϪC4_HΑ]㶀< 6H_IiʵI Y 0>KnI5']KV˖k0L@LzP]hg ,ΰ7N.2Ie1uh"5M̼hqL-%BpS}.&}h[/h6ut/VtEL@\?3_Kb}-/Ҝ(7 EJMX^?mYe[Җ6膊Mq}NrEI'mq(`&->fgnI}[ LJgFU.CbT=Az Ŧxdə 7!Zx[aӶ7c_ ʵHGIY.ݷ_Z(3n?E_AUl]a+.G{Ai 0oǀp U8*&y$\Z 9fS׭~y7*mBTG1J< qmZh!h ,B94A; KdAn}{4d9!æo'L8Zod3~7::B~yzK}vO>pW:6Tl;V5~$R{R6G\;8#xL[PcN0 U^Պ/qD\zxηXeGK'f*>F 616sb/(瘖gz,g־diK jN]0KZ/{J !@Mװpl$Kmr2 ~~ň*} R_<L6w=[+ƈxx,'7N381&O侴6}ss:FuLuAqhRNSsUӌ25ԐXR},&֑S#7@eEWlY(R%tj_SC5cu7ѻ.X . Dfb&t>?Mcl2]Jg5sZ6 :_;WZDSy54+ Ve,q8ۇ WJ]5pa+ƟuJ.iZ&Wo<;.!|M\mK}_|q1pQfpS` ҸWQLj:}6X1{g T,{K|~63~ME>N}D !;mrI1hDf)|@>c3q8/Y-D7Mz~ xȄ4jfʼn)꼉%^go'?WP5Yd~HM32[^wߤAPVVLWS/HADNЦbLL/d`5U*زXM')5@1TZ޿R fZrERRd\k-c!$Q ]"m6 6 OԶ^be!v f>YDʟOAkEqy|[:q=z+3 S9?`F o)m1LE[/8*Ne8!g?\p:Xy6Y} 7ό)6yMVc7*`[%` =Ɲ1L>D 1FvelJ/fJ?uqX94š8x.p} 4_YIץ f mi_`ńgk1QCVh9w8#E_"G)cԴy5*4n!HSCgkQ%6'"+vO7QV[}@BݳK~W`Vp݇Ѳ =)$ˬTP_g\_M+\2o`òo쮑A)}*Ol@rz\uC0DB!V{FrUG^aYؠNF^h4/WLVzĆ7Lm .x;3$9)F1 [piXHB6A-MpF5ULn7(a,∋dt= (5[Q|? -~kl=`. `,5B|EBX_mge=RZs"VY֯9R0Ʋ.,Z~>@c;Ձ^Sq 5w]y{>gB?zЀH흽g*RT6o3PFW1 ?i:֮h#/pljƨ uXzHP:ӿ"s,w_;٣}uTV4W+T[^o&2|*;;Sl",䠛ꠚ\R7#}Qa<?z5mA$ h݅--o!nMc+fw>}SO+ [.jV77{KP۟$Ytҭ;㋙Jee,1(=aX)%-g|E`VK9Ldn #85cgۥï#[V2E+#5cx7F`p#84R[ܿ,\b_č=:.=pBߌxʉtb $Nнn|5SI$xLy3өB.[F- mJ&/sAwӎ7panZz 0dۮ["f1[r*_ƢOnt }9eGaR6^ Y;gi3-N]*x@;JO7 y12VQWo3HnV%0%E{;TΡ"sr0D4+n hb-7`œ1H-ޥ[n.8|Y1Պ{3ˡ1aȑ mdXZЁ;|P(l倬a:b.Iv~6y8dwJt)<(q zҰY6MY-_(I%@$|U ND2, "%IDwo_ [-1L& Ì pM[5uF"V~PWy .O>6i{^0Dk[pf<@ L۠x>™{Ay8b\t١bk b߃<5 8nDz`UoA! D!ਜpzMArq AcMUK,mn1SaʸBquL'h5ݨT H?H[ZvK !M]}UMe0(*3p64LQBl,*r0Y֕Ct=IrI8~]V4fFAwQr_"Ѻ̼rҚ1qV㪞nsF-ūHIC ?zB G?d#"N8Ȇ )SR^T\1F @@'y;`nR3փz-| t<;r^ ts~Bb˔gSY@1g~ySӈT]SPܾ4%ܑ^<Y\IMW8MkP)СIȷ3IrV'QagNI <0ֵ&ikgFڲ34{B~p5ut4(j9h26O|;u!'SJP4\o'[7F 6`yCT1Lm BցA/=84|r@*HeNu:˓v>M`Mo9KFTJ{i7 :J%ph 4?ɺh̑bҢ2yʙ>(XRky}T7P$1<9԰bVQ.Y!;VA%Xm }(nlwZC('=f7KQ{{%nӞCFGQQ8[ +ilzϋMx,ZF* 5Ni秳:160~6}Q8ucw=+HWZ/ _1Bazj(wi7)P֪m&? GeGΪvQ$0nd_yjZV`V -ϴ(k$Kpٖ:74^Evj؞jen P.eX Z .K"`{4޺BX[u*֓TeJ/a D7(?v`&dc?|fA~v%+Zz/ )]!)$/ݜfP!1] d#+ 0UG&Ѿ>ft%_̵>0%ih7ª̗_ ](}_\ As^s(bY,SDm(Ds̓8o1rnĜtWx2;ɏk_7Oqqkdoǚw^+pΧLrKjX~zIzxre+ݧ )102+@~slD).>hz2{ Y{1*!osN\@BwBwU[`9̞"]1 Xո^5g^ [7$G|C͡0 yk-HfH l5Eգf+7 8fUHLWMT?E)_7p\dE&xۯ^Ż{zC5AĜ_-5q~xBvnLLQֺ;"|q(˒hQem3lh/&SIq~gХ~ثJuEYűG\F~Dr&ErJ opl[~"rg<[H4wrSyދF8pm)2&ѫNgچӮGnN^DiFeܞ`ʛ6Eg Mˉ]4Zvbsq6-Z,WFe?UP)?_ "{ƢVBGZ+,~؝>`| p3 u†AgR ԰FxlUϑe=v4HLdb,q0EH .&a@n| ! AzRG]h/m2>.Pc̻]2 ΧY=ҩs=a5v1o'xS(HV& E<ʱTfޚn ,Jy݆5O"wbISXWVǖ,@vl0q̕3]?VV=-xVdj2YP^w_ު2"^[{1ǐ'F FEw|KF/8Y cBqfk }E6zzaD" wxrZ74KD".sq/*ϏB4YK:7W,% );iY or_Cv]sx:rQ'<rp囷nK-[>A: 1r}*XZ`GI y4?gA㐯W[~T%x15 :wnpwm1,O.8 y> e.rQ7L^&l~X~8 X|pQQ_~` ,ҁ>z;1 kdLES6#&LeH^\*/؊>St$ _|$p}.NwXc,}ejCBDOkXsԢ%r {;ಌ?oZ^2v:Bpe`u`U]K{1,R´yޡoE+J6JD]ig#_- x6rt/&&T9zPCWTRJfTo뻄pCv3?VfD@G`M%pQ{[ P1j"?2X>sCkV"B~Jvc4^ۭު6bF5 ~'!a %,T9Q}<6mr]=JkA,4X =2` %Ξ`Ɍh ,' ?:䚑O?{)$p6'a!dcXeJ3q7γX ^L2bpA KV^K zURSMUP8-F#KC}>rF4?$L,Bn (7+DZ,icU_֍Xg , Cf$Sx)A+-I.SmN&I.)/?=C~h$o 30b,CAi :g}F6~凨˽ aba. ˴97<^cV>6oȓH!U ĿN\|a: ZQoC7wa[%5N|d?DAcJ_o> >f></':nˈڍªUgԁH( /juNc-oA].&Bywxo7k>U BF_$r #uoĪ> .u`7,MEKDoAy~J3Jsc`S#90Eqe1ѐ?WcIq#t?HaY3zG\TkUZ `Z%/bsfYcW¦rZ ~-()hPK'e>Ӧ)O1jN2ǡ:փ]5ğ'n,A̶ߦDR-}C[#Vw`y8|g/}gYRʀgDSuNh?? ycF0@4ɽBQp>Gᾁ!" DQHW1`UdWl1}^0"̙ZzZ08s~m!dØQv&|9:u&+Bt"(a"XfkG[r0bg[g9YEsքȖ0XFzvP`閵W)>5kCyoa-SX~Or6 03(V@V׹LYyVyȮʈ^CW6ЉH%LU'f,y'dH@u@?ʛáAḻ-"Vͭv2QX>̊ĿB=~@.*!a! щMZ|mDqpe$g8PdXC&#RR@r\7d^[]vQWJnVL8#sTXzn絳t Y~y7f /%? q$ZܴfLՒhD ̸E$1^6%wW@\|_@O%ZApcbK݄x'G&툂)ej` }0UY mx6JE迻#^ 4  {6y>o}b:+{_" ^2<֝mCx:zpFzgPzB^Џ7( \q9mw ޚ|0(zB ªC\`gd~qৢ&hNҠynxYkrsݼOzJu ɐU)GZzAApo,:HOUwUYTQ[ euP I b$0^L!Ju2(2I\{9æH1a4è"ZML5#D`Ok˓+"z滌Y~z2tր?Khv6o$"|NTgP|L ne-2!F5hR6EɔM/f7%Z]\v<̏xu80ZN"R[^(qnEQ{`TdaK[nO]s]6 "e3pz]b+.Kn\6>Q^vs~QBؗe5,1=_4SIqȮZw̳?X_ȉ?hx-Аkvƺ?$es\A1uo4h<35\ϲ/%tCDHe@w4`h;%p &eQajV5r^hFrW*Lvҗ?"/}GX7#%y40\PQ񣧨 ~|hK>Sa'A5x-~m1/"܎gg_< Bkh SSOppjG;2틷,ѷ@Ux#gptB,}^}tt q֦Uv3h:0G2; x(*ba|˶7][Cnfc˫C,lЈ[ڶ -Ip@Gɡ}øa$woɃ%k >!G[6rL◔D6niE5b2KvQiΰ[zmj7,yB)B#.ݸzvB+J.Syuw{YD%;/+5<&oh3l~O/0n=Q*/٭Qj(Pl̹GwsLLm <2&[ՑvXLh;MuC[']x_-.1&18d[e /)0c%ګW;Haai5S&Q%9|;ݢ0q:9@~z>e+ӲK ÓjuDj2A6dcF &R=p8] 9>-_kYz1-X}ԛhw%-Bu'Y_= 5"_=ɻs"_kȏ aϵ:VO| ΝEF0@Dv5W+uep8 4Jؚp\!dk?)`#s)!#ҖaK|L? 鲇6/eϟRF0 | |ekqi_MョEavƆH&|6qz ~BaF<P+ygt Ɨq'oտS8n@П 8$U&M~D}R{F>~X~9i6gdm꺋Ag+6jJ .)1ysEq=l`iN_W;#Rm_FaI<&E&ֺˎv̾7U@`" * dםwȢuaKv&J|a;@c >3-\a(PɿPcTtAu5 N]1>G_p[Hs(ZQkP` C%8"4PpqybּaLM}rgc7`#w# N} )b/k]>K=К|;Osq4Nj ѹd? ϵ5$ԑiVbN [a.*պ+H1vs7#ȥbcE}-W>Vչp00Y+_JA/kI{^BX j8һauM'0Y1r6}peTy3Ox&~B&)MWx`JBpX QNr uŚ9ص=k:.Ejqgo/̗uHfL2tSqbU4kҷh<I W|7O}IMp@Ưp)|7Ŀ=c@q-=;ٹ(J"'^*gߖO\Zx1 ܹ|3loBT4PAI&ZSUD$:VxwxBU(IJ (?G*6̑{;Ր\?v\6| ZLp.^TalkEL]D=2eJ=d1!z̤ZC\Gn ~ضSSЎ|Jn?h |E6Q|Z-bs᪯:ݲ$d!J^kӥa_ ᴘ@F&wCg"}q5 >N(ַVNbs tI,Uwoȶv2B" G "`2JSy/y귦Wxe I>-ue+38ٮzTB\j{&qRZ&\}c X4N%lrc~`;YbI{Ew@a%_Yx2̩n YnmQ\ÁQ)$k)+WJ2 FlaM8X-r1<}͔EkupZvIAc>_K-t!rô6AoH#Ą;n' .{;Us [6"7X}bvz8U9i"j6qV߃f:uL`pEۣ/mKVz9;"0Kwnr<۾pgy AŒc&g'؛dK*(kX\--47#y5yr^p/f;:Gm:bβ5Q h-%#Ϙ$ gcan3ulKhSJ( C*KQWD |Atux-#IE42Hn:!ַzLZcޕݍ '׭v#0m.7)D` b;A\xI;|ۇG<[W@i^kט{߯c|a㒔sJVpUsyaȃ;~'\+]>\SRyd<&1_iWV搓3zXl I5x!>Dc}Yed ēNrQMUw&T 73;'b*9sJxlPv0cWo/0/8=v)C(lbU"G70-Pʷ>Ҹ+sǓ#ÔTE^tqL-uoI/O1%||b#e#:y>@Qoh}<:AgFDP,\؏ ^ 7 \!lr&1$`E=%Y!PI 芮<ۖ04J'͋aDCYFKǦecUsD²BL49>FJڝӯzpe(?;˸4AptPes!9lc ゕQ"k?h&36VH_~DN[D\sFaocK`v7PO]V+"DivN^#x|[i֝c8XkSanK`p b[e,m%쮄.4m9 N%;|w0kiv(g'Ibߚ%) osrLBw8M6 |[r}e!@c/ W nKVdk5\>wqJO)cR!G;%d'KP'"GzX[XQ'1QI3|&}Q")#aL؍iR{k? t&VJA(YLJ E%ĨDY @EXtrzIWZ'ХW,qsFYڀ mrGC.;p[S DK4ی6ټaq&u(* b Lf$S_SGb%h#; ]2p%z3 Ff\o+roC_gЎ$kP@yx,Ӱn6D9 ښݫq}"}(܈|3ͮ4K+PjN ]2W4h"bhא1׈Ԡ֨(RPa-<1lY`DzEaX%`Po-)KG G`[Metv`٥>][XY*ND#0{t\L V^gr*QP9%o|9d@o6gx.u47*51TG[Xz@:w IS]e+/5~^ J8M,%=_ 1j ^:uYV0t*2+Xj]"s]UUGr &;7s+ *731WvmG?%Sjw(e&u!@e6x.hލE%.6C65g %w !Xf~g[vvK׎|--G5G/58~rxfv4pu$!Wż LTv`262_9xz+v7 YQ&cF*] *2t d")Xkj^*6%Τؓ5\ _ }nPBaV\RXEg{]ıPWV`?F ʞeWOQ ܻRT4"$GX^LuC{nX+5+HȌa7"\=ioPy H, begV7+3!1Ga]3ʜFWн"`xSj  8󵽔q.tntHDmhVR:<:$/g[s}62YwjٻOvlIV/^d܅hހ6:Qˇb;évСHAd2}B5ZshKW'=IF>C)L뵽r%:Pi^u %aSmC]1X O@؃!U=ۀ؅ x".Wc_pH#ͺiduCa?[m"?sZ]٢Z Co'waA{꬙ Aԋ`jd}񴽸)[m՝sײ]:cZjz,QPg| QK?5Q#5F#yWf}v·u(oL=("=% SP/-l?Z:m1ܓLJtaAc F*᥂e8-a]re .SZ^MsZ9edD!̡x-@,xX 0ܬ^qq=G$Kxx bֱtw>ײ#ώdWcZ .n\o!-$V) ipxG(+4?nн䄣sx%I{nxTA%ER;z|!g*nPXZ 8TfFQ(Sf7G ;f^ɅK>< yC]7^k\l&K;РԾ A,K]? iuBO?Ȥm'lL; t0z?[i\sW=&b`CF0G-RYb&r+CO$_(Nhu`.Ԛ@l%OV:K[g \ 7Q~t-y7*<ϖ|2XnWS#t,.rݑUQ m=r]M{~`(D\j]<"o*eldݮt $0MhytKa̭z?h*1ZJ38L%CnE RƊ;D_$6Wxʼn 1aG#5ӽUlkǓzaO2?,DAyeBݵC+J$١H-i-\[$r䊹i+Fe_I~,Xh7~y0xga+UZr7@~lvwu5oҮ=StF?挂bRVӞLFPI~Cvs3N4U%j^>]ZLL3g+m(oX'3EIvaPdbR|* 5b b7 ࣦ'z+"dT,v״\)*UI*pOdl?aU„ŕ柢>_8BxUy%Iת$֬1Col[a%+Z}¦=vsU{bzyAE"ZdN)o.J+x9&.1pTRrs{ ^}mqHifxXH47%UĢi$?+|pW9ߏׁژ @Z1IB2URF.16$TENqUgLfSrGv֤ <\;eqcO`<J7!vweg1{-مiulgm%&r@ϫ6ߏ?-.vAMO20ehR-Ynxc A dR!),Z![?ŌlG7!y29QEYGav7Rbs5ajC_M9Ζp݌\NeڑBL8 ;[h)<SG KkAuTrj ȱ"| Y l wY=,0Drb ~ԛ |%dSmoj\N-WǨζ!b_]]uHRlH؛b*EBaP)PREr/ /"a@9TJ4(z[-8YqTqȕ58_L{YOUI4)dGk(0%^h&ԬﺈA\ݢsw;J[DŽ@4>z9.WD}&_h }=r4PhNZew8mEuQͰDEDUo@BN~Vu8l̠9Tn."K"f+ƖySǝPMƫ[gJw|:)?AڥT8;9 9[M-,kDQ,zdr1 ^msW#Օtu&|RC7/ˍ>;1Jh˺};%LpITՑI~1_qGH+/UI{\Ozw5We!˪S0dGsʝdUp=5 Yڤ~D7r} 3H R$+}H,c|cz5 LDn= kWY ֺ*.Ō*1%@|5;K moHVE쩹YN֜١.L-nυ>gy A.Ag({^4M iFW2T ^V_HwD_ pF1-YނFH˪ںDֈf%'b,2qYcت-0']iW3ѷ?k@+7{DX*S$7 >ǀ@tL,I5t I[҈0ߗߝ`ﳨfJQћE4C}Y<5@H,!@2G }CVE;ؗ c9zH|攣Q,CU7AHdٗakntK.d g& `aI]/\i`=KJ; MGFS%QȶuUX句$NfswFmP70Aa;{F phW@\2ep.u}l| $up=ݙynUDO|NnG+^>ˬDz:2HQE#ߣa6QcmI؄OI@VI }N 1~P<ZAd3ٹxA"#bb?{]MZhuٟȣ*%Ȓ'`^qTX(d ruLg!tO\ُAk9g ED3hIbe?5uɣ7Is`,F/cDf1#;#6ʜݹ3o3d{'ոp +w;l枸]H˱+EZ#hv͡!*,`+PCEBO{R cFɯsGjJs KibwG"we{7hFGLwuC(\~,y1q~͑[{]uR|#U@L!*ʻrXU~f)0|~&uyѽ| DD\vʴ=.6?D`g1jLC)u!eacΪpwqG Hn[NBV Lu_C@@amEWu\;80PNŗK t4[ϻ⒛99hEaC282졳XtgR%]~O__ wnnބ 7rT.+&Lq !gRnlgR_b]%$Pm>/Us]_1Vmnȉ0}:ψ:&˻)`]{ѾA23N?|7&>A(!x1+&#Mj .~+&~C"rVe;7wΛ.,`4 4سjǁMWCN93RCyfOalni`4ChSzNg$ܶOuVyL;Hwg}^HU _9`2Iak:l`=(8^e2Rxs,BnSҨ44Uȴ+o] ZXMc < I~dd6n \:}O8AItcsZOU:k 121Wm¤۵'g -TNNj"sWO'ak!O8AᗬVUwf$0 : .D_^.t_ ūVG~ CbxtVd<),LHs)!qo݄c#( +C/|N*Pl+e( #YFdAn̷n761LoJhVubby\r՜ӍjsP1E {Ϣkڷ~'܊#K8li&hmh 8~v 8RϢD4~T fs }6;u<seU6Q"v8 o:(ҟRsSק42"!JA(-2硆OYth߲eX ,|磃rEt?UϑUO;4QBzz♥+k@y9 Q5MeX#W-;4iV<()ӂcMd{Z88:X΢6!^($3*|9OC<$zI{$AD {p\~\P^ZD /O  GX\rv9R8 >윴ӺjZ)= 9iՌ@I~Q\(q)ssD686f B۱7S҆͟a"Laib<LI^b!]vXNْ+ {P p={)~#Rz75f-Ԋ`2f~L %=2b+4z ٫ٵijᤁ]Z] I&TpnJbN~kRf,٭R}>"|8 L,bh[;?ᷔu{UA\ 2 JoKMŦl3ߢ&VC-4]E+U%紘ښtlYrOdRh:gL>n ˍQNU0aƬވ$t? 瓴6')*V\-R Y?"n~w!6VR̼K*zYx}OTU.K3No 8U1)vRE] Xp}H"('>Wq!GOoشXٳ^;sd7"QTYk6$FFM?KqY. }t6H+ePpGY5AsT} GN^dprX2X| x⾎hfIOW+`XMiu>RBRYȣ W)`&QvW1Hiv2 >[A*b$S:WM1,WѤwMEϚ$Z!M=Jhih-x=Zga[NQTͷ\QL[nth';Y$vsp^C tK `O7G5O @-3hug$M*ߛs `J`SɧB&O];ddQ3 L/vFb REAqsY'Iq#CޡQJ}|X:jC@t;+R&]34N6:0Z*WA $z6gpHx·(ل  Ef(< D/S6mD rGjUwsndǙkO.V&t0S'2I"imN_#U邟\L{Qxi] y!ktZ9zQ,\:jp" e`Kq)め{@ 0"#]g71Y  ՈaXK6v/zfο$WmAҥ0OmjWk~s}RR38"JDw- `ÉZѕ-3X_%h~Q ū/T˿RY66g VfDv`w:hC1H\s{H+bXJ+y:3q4H,N&I_ch/NxkZOHCm#mCTD+ r@r/[BauZf5NZ<cj[\0m}}GiE=*-l~1q.VUHL% t@cM)Y,%>px-,ظwK7Y&f|B~<2 KnN׳TFƵr~2"W]zPS^euQ Ox׼ėֹyMxbvjo!Qd>hDjGB?DSoM^L_R BcաfWcтa|`2;%˙=Ѧ ֒|jM B&Zt9_6M5'K'L%+rDDͶ?Y ==S g`*.cD|#J9QC T%V)mXnP a[z oQ&>d 6גq/Nڵitz@Kt#p lQ3x3,h<#nj+"B=.7N ⢁Y?\,|1݂w43o($Oޠb #?^fm?=Cu=rVZZaY][ A ۅ{ Sse,=)؇`6bzbw}ߋ١+UBbZJ|m:f,/đ1tOߏjJRLoT_'* ǘ̹P_2qbuH8\ P3BZ_ZVy8-[4OBQx D_uY sjOSQː/ }Y鑘P;^,2sV8w@ܲev~|g'Sao,uqȸS"ľ*A/lQL@Dˇ ﬒)Uߜl&mT5)qOVnCcR)E]H`6C=QTF?~&|tԣPuclD(́:ѹ20뜷ݝo%sq-,x2pWҿPu)XQz[ "E@<;Y1*4o(*ƎX7a_ٜb9kxU/cfml.x1j/勶[_`̌ǽLZ:SRE*s^ |?5R߾8=R׫p(;Ya˽%3yB핼IL/2n6l+fApNMC\;R4q,aY=j]Epﭡ]бW69PQ l`݈\擣)駱r3 Ab X5= ! *)dæ^!G X7BLz .p篁=_NU0<[ǵs4vY16_9YI)9cDG7x l_#P޼RFRcZfa{4"7zq Lj`ec-v;HQ/Vd_ ^Hsv མ+b Ct7֤ mU :BtJ;etiګvfNL}{3O kN4V`qzė9)o߅k1 4;YwB2q.:ȩos]60amB1"CxX_ $"-a ty 'ZktPǛ )V3nc&q7Ԣ&F$)k%{.#Sr~L7#i-f"JapPo_*+^GyAK]r$6֜ꤿ3Q;b#olfuү"Ě}/ʃ_tK1\z? }?2<ԀviVҧTњfpԚ_ķc8rP hOr9F T9Uٻ8!}thˉB*d+Q TKty2hU2LM)%S'*74"RUfiϪކ;n[x2c/cӨmhG}ԊnPr_Yqɬd#q~$bZފG89D;KSd>ڳjWw( M-Ș#bAi5s=q[7X"zll Ӿeo袠!2R\_=5JwеY90}J{5X:pb`9&<^S6`S=2(qD(o`B]=yO,fB^CǓ cUAk}. Oa:䭘J1Nȉ?eaJ j&l#F LBE}7 zʄ_edS) us￞IŽq?C/ Gzƭ?öy.^N4~\a:,qFCCmYĀ>3P*;NקgiPM_Lۜ (Iצ?䲋+3^w}hC$"\y4Ob* 4=ƇR;rQGBmvzh^IY}!r,i|:W?z)ǠqH@lNoRsoX\Ds sݘ r>\o G,3rAg:~Ȝ ",q3@Azq^4b8#>5h'Ά%=mOEc*;CQN;wB1p*֋ #4L$o$zP5#2Yt[ AV)M3?``'Q$uxq׍ 8[!|82gsـ4tIMIdɜuϵC{l S6Hus.Pa=x7(.\;[X׆y vNſ$#,udbTHC*pIWm&uC:e\X"ޛlaOIKQ)V;fvPFy~zb\1T7~dJiIoyq_[ΝH {%Ljj2eFae̶Q^H츉W%X+VRd]=H?QaZpiyUH kjDWXHuQ+0 :gȠl 0&YwDnJ%x6Q+Sw )^`ۛײ楊E@DEXRx"h$k:rCI 7UD|-l\zDLH#,澩%TNzIb4M!}G-՗!ok7RFkx=.X.Sz%7KGhR8I\qr&*1H%mF vΑ'jN4ݯ!DBrjegޅZϕy-'Jʮ_IP'ůAd Ԅ>o8B@sS>Zk~PA_6nf쥭*4q+i-d@t5Bhxw[4nʊ<8o VWr ^%} rݕϹm2gOb?( M̘חV:$He@+2\;F "t!j.!K^#5't?f Lz99 OmkY9YJ4$0EZ8Rn)` ,@6mrW5 yqɢgeugeeY7cos+~5CRM8x|Iջm{)|hGڹ^cU a{2 WS!nHZ^,B󒄼0'MG-IKq%ikз8DМ>xȈ%CDM*&`5rS -eD>Xٟ Q8ԜC+}6@"Vln]ls0+w&jt$T2?SȽRQw|Px91_HƱɷĒ6j(Go =zt𤓖DP'm|%*PO'0X&5Ͳ9OH>T,fF q2[nsV5tnf3Y %L }?$5Pб#D:8_ б"+sé%2: 6bfAZ H;޲kH*@p,^jDLX]rR\ tk շ)jt(nq$Y/u5KFynHu%qF ȍ{W=-BA}LemJ4ĭp@:Ԯ%){HFe%KXG$ҸrXẓ(?:VD֝Tp>GYɝH \l&#D.[HLWF)<-Eb6'}%{, _r|5W*=d]OgـEFD"&|, H}߄ðӞފWVݍo^ fIP- uk>&՞.[*^ՎH(RثhmYk#w3[mmn#Hhoy:-$ghysg <+]ȟ.TjcS̑סSWKQj9&43I>(JHg :ncO,܁7M*T nF! řɈׄ8( PįI܁`eMEnͬV M%.d-Lf-q\E%Yek8B".kp$%k b”Ʌu5Z1;;hE&(D}J>:Lnj1iE?@X`,wD:;%[nfdadZZ{x wJU Vaa%r:Nռ畸54ϰ5wsWkgsFMYo f WT8;@uK5J"|d4Tr:WTF#ƭ11gPnq"i앚!b:/tƭ{Sp<5v>8,߄Pe5YfKM[`[>_EJ_I<=`NGtLL 3y.X}a!'vLdض;) 3"STvk[V'n|OE+S|y\`/i~Bڐtv~b>h>( ~ @'\?MG8@+c12idOEMOt=gf6VXyETk^=NTn.M8Ԭg$)ٰܲi1ڌNܨD1_Hu((A-6Bef6LjmxGLKy|$dq{@$ptmW~WNHw"\Р"iy"w  kG[7@w=3srY0'E^+!~[21cHadZ }=o.4se;wrgEcʾ\ܡΗ f2%QU8ڋcp2))w߇%ݿTUm+:3xgFC:_|bU!0hp$|3b'T M"[m:FX`=蟯Cvb(VGR5{;?n['wd?6- ,P@sk',\U~j F{ִZ @^C~O8oy{Ԫ϶ XWϖ'֊僢Lqcٱn:; eYid0Y-%=s__DZWCMyf6Svه\},VBVύd3+sp0̤ P5M  /sGUR^4=TM(2\? >"&ԓ_ .v7+ta>m_'>`,r1ahDJd4c˨vqHFQJϧj25߅0ϥ)uZ7qv^%5j;\"V_ |ZwҦP0MۮjCu%yç_ tzU~ ?$M@>e,nV\XkOD>H}wHH(aĴh7uuaк%?G)WpWp{#D+> O ^hkSeOf19t^o)~t{[N뺁77s&"xzclxy]s%l*,t>lG< gP2vQ` 0I#VS|#(qjg09. 5>p / :LJ7RM*bH3xWcX02| z26T. Kgދ,"{sm*"_g{Ka֥@Zf(jqJ4|QKAR7ƾ}CyS}iX$svT:@,f غO/9hLc']i6NJ訉Yz zIڎT(W`mŬE嬬֏)8:;f1fúYt0Rs^J