spfs-0.09.0010-1.vz7>  j|Zg*X  }Dͭ*E*Z(?82uf>\ẈS'70H]HX޼rRU|4BX}(8-2 xxr]:?d  . (@kqx    _ dp,(8Q90Q:gQGH(I4X8Y@\`]l^bcZdqevfyl{tuvwxy+Cspfs0.09.00101.vz7Stub-Proxy File SystemStub-Proxy File System allows to replace opened files from underneath of running process. Required to CRIU to be able to migrate NFS mount points.Zg*7builder8.eng.sw.ruVirtuozzoVirtuozzoGPLv3Virtuozzo (http://www.virtuozzo.com/support/)System Environment/Basehttps://git.sw.ru/projects/VZS/repos/spfs/linuxx86_640 Zg*7Zg*7Zg*710c0cd68f09b9df03bd95081eed7a8f7bb09aab7705b12692c342ac2959b257e40e32eea09e212eaf43f0ef248c4494280a2191c58aa273a563293e7f03a80067856b7bf56f98efcd20ee29717810ca6d5fa031eabbeaa415e38f2287356b8e3rootrootrootrootrootrootspfs-0.09.0010-1.vz7.src.rpmspfsspfs(x86-64)@@@@@@@@@@@@@@@@@@@   @ libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.5)(64bit)libc.so.6(GLIBC_2.6)(64bit)libc.so.6(GLIBC_2.7)(64bit)libfuse.so.2()(64bit)libfuse.so.2(FUSE_2.2)(64bit)libfuse.so.2(FUSE_2.5)(64bit)libfuse.so.2(FUSE_2.6)(64bit)libfuse.so.2(FUSE_2.9)(64bit)libnl-3.so.200()(64bit)libnl-3.so.200(libnl_3)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libulockmgr.so.1()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.11.3Zg#Z 0.09.0010Stanislav Kinsburskiy 0.09.009Stanislav Kinsburskiy 0.09.008Stanislav Kinsburskiy 0.09.007Stanislav Kinsburskiy 0.09.006Stanislav Kinsburskiy 0.09.005Stanislav Kinsburskiy 0.09.004Stanislav Kinsburskiy 0.09.003Stanislav Kinsburskiy 0.09.002Stanislav Kinsburskiy 0.09.001Stanislav Kinsburskiy 0.09.000Andrey Bondrov 0.08.024-2Stanislav Kinsburskiy 0.08.024Stanislav Kinsburskiy 0.08.023Stanislav Kinsburskiy 0.08.022Stanislav Kinsburskiy 0.08.021Stanislav Kinsburskiy 0.08.020Konstantin Volkov 0.08.019-2Stanislav Kinsburskiy 0.08.019Stanislav Kinsburskiy 0.08.018Stanislav Kinsburskiy 0.08.017Stanislav Kinsburskiy 0.08.016Stanislav Kinsburskiy 0.08.015Stanislav Kinsburskiy 0.08.014Stanislav Kinsburskiy 0.08.013Stanislav Kinsburskiy 0.08.012Stanislav Kinsburskiy 0.08.011Stanislav Kinsburskiy 0.08.010Stanislav Kinsburskiy 0.08.09Stanislav Kinsburskiy 0.08.08Stanislav Kinsburskiy 0.08.07Stanislav Kinsburskiy 0.08.06Stanislav Kinsburskiy 0.08.05Stanislav Kinsburskiy 0.08.04Stanislav Kinsburskiy 0.08.03Stanislav Kinsburskiy 0.08.02Stanislav Kinsburskiy 0.08.01Stanislav Kinsburskiy 0.08.00Stanislav Kinsburskiy 0.07.06Stanislav Kinsburskiy 0.07.05Stanislav Kinsburskiy 0.07.04Stanislav Kinsburskiy 0.07.03Stanislav Kinsburskiy 0.07.02Stanislav Kinsburskiy 0.07.01Stanislav Kinsburskiy 0.07.00Stanislav Kinsburskiy 0.06.19Stanislav Kinsburskiy 0.06.18Stanislav Kinsburskiy 0.06.17Stanislav Kinsburskiy 0.06.16Stanislav Kinsburskiy 0.06.15Stanislav Kinsburskiy 0.06.14Stanislav Kinsburskiy 0.06.13Stanislav Kinsburskiy 0.06.12Stanislav Kinsburskiy 0.06.11Stanislav Kinsburskiy 0.06.10Stanislav Kinsburskiy 0.06.9Stanislav Kinsburskiy 0.06.8Stanislav Kinsburskiy 0.06.7Stanislav Kinsburskiy 0.06.6Stanislav Kinsburskiy 0.06.5Stanislav Kinsburskiy 0.06.4Stanislav Kinsburskiy 0.06.3Stanislav Kinsburskiy 0.06.2Stanislav Kinsburskiy 0.06.1Stanislav Kinsburskiy 0.06.1Stanislav Kinsburskiy 0.06.0Stanislav Kinsburskiy 0.05.3Stanislav Kinsburskiy 0.05.2Stanislav Kinsburskiy 0.05.1Stanislav Kinsburskiy 0.05.0Stanislav Kinsburskiy 0.04.0Stanislav Kinsburskiy 0.03.2Stanislav Kinsburskiy 0.03.1Konstantin Volkov 0.03.0Stanislav Kinsburskiy 0.02.2Stanislav Kinsburskiy 0.02.1Stanislav Kinsburskiy 0.02.0Stanislav Kinsburskiy 0.01.5Stanislav Kinsburskiy 0.01.4Andrey Bondrov 0.01-2Andrey Bondrov 0.01-1- spfs: Main process wakes and kills its children on exit (#PSBM-80055) - spfs: Handle non-zero exit status in cleanup_spfs_mount()- manager: use join_namespaces() to enter container (#PSBM-79733) - manager: join_namespaces() helper introduced- manager: use mount ID when available for resources matching - manager: pass replace info structure to is_mnt_file() - manager: store mount ID on "replace info" structure - manager: collect SPFS mount ID - manager: extract mnt_id when parsing fdinfo - manager: discover fd link early - manager: improve debugging and add more error messages- manager: move main process to freezer root cgroup- manager: disable readahead for SPFS "restore" mode (#PSBM-73023) - manager: improve debug prints in content copying - manager: improve work mode change prints - manager: add error prints to work mode creation - manager: do not try to detach from unattached process - manager: improve error print on status open fail - fixed issues with inclusion spfs_config.h (Grigoriy Melnikov )- spfs: check system call was interrupted while waiting mode change in Stub mode (#PSBM-72314) - futex: don't print error in case of timeout - manager: mount spfs in interruptible mode- manager: treat refused connection as temporary error on mount attempt- manager: do not examine threads - manager: simplify iterate_dir_name() helper- manager: treat timeout as temporary error on mount attempt - spfs: fix shutdown procedure - spfs: switch to mount namespace context only when provided - manager: remove obsolete "mountpoint" mention from help- manager: remove temporary original mountpoint dentry when replaced - manager: unmount SPFS manually only if daemon was killed by a signal - spfs: remove access check for proxy directory in gateway_full_path- manager: use ns_mountpoint when replacing resources (#PSBM-66944) - manager: add support for "ns_pid" option in SPFS change mode request - manager: pass mount namespace pid to spfs as a parameter - manager: add "ns_mountpoint" option to mount request - spfs: open proxy directory in child is namespace pid is provided - spfs: improve debug in case of work mode change failure - spfs: mount namespace pid as "Mode change" command parameter introduced - spfs: minor error messages cleanup - spfs: wrap paths in debug prints - spfs: fix proxy attributes initialization in create_work_mode - spfs: switch to mount namespace in proxy mode when opening proxy directory - spfs: pass mount namespace pid for proxy mode to work mode creation - spfs: "--proxy-mntns-pid" option added - spfs: switch to "mnt_ns_pid" mount namespace on actual mount if provided - spfs: mount_fuse() helper introduced - spfs: store current mount namespace in context - spfs: "--mntns-pid" option added - spfs: fix stale_work_mode() helper - spfs: simplify gateway_stale_fh by comparing work modes addresses - spfs: use /proc path to proxy directory fd as base path. - spfs: take proxy directory reference - spfs: fix debug print - spfs: optimize work mode update on restartable operations - spfs: get work mode instead of copying - namespace: set_ns() helper added - namespaces: pass binary type to open_ns() - configure: remove "tags" redefinition - spfs: print error if root directory is unaccessible in proxy mode- Enable hardened build, see #PSBM-58107 - Make build verbose- manager: create new path if "link-remap"'ed exists (#PSBM-64299) - manager: don't close file object fd if negative- nfs tests: add "sk-unix01" to supported list - unix sockets: restore socket rqueue even if already opened - unix sockets: restore DGRAM socket connections properly (#PSBM-65010) - manager: unix_dgram_peer() helper added - manager: move DGRAM sockets handling to separated helper - manager: open unix sockets in corresponding handlers - manager: return socket fd, if already set - unix sockets: alloc_unix_sk() helper introduced - unix-sockets: do not try to delete already unlinked socket- manager: use current directory as logging directory, if not provided - manager: add "log-dir" option- manager: move to target VE on init - manager: revert commit ce578e797811554ae693d9b76fde67326ccbc16c- manager: allow SPFS mount on top on non-empty directory - spfs: add carriage return to error message - manager: move SPFS process to target VE (#PSBM-58606)- Rebuild in 7.3 environment- spfs: replace error with warning in case of system call interruption- ptrace: fix ax register value check for "in system call" status (#PSBM-53384)- swapfd: sync all the private file mappings (#PSBM-53303) - Makefile: remove explicit path to libnl3 headers from flags - autoconf.sh: new helper to configure and build with libnl3 - configure: add check for libnl3/netlink/msg.h header - configure: add check for sys/capability.h header- swapfd: check, that mapping is accessible ater replace - swapfd: mem_read helper introduced - swapfd: open_pid_mem helper introduced- manager: check that private file mappings content is equal after copy - manager: copy content of writable mappings only (#PSBM-53249)- manager: copy swapped pages for private mappings (#PSBM-53161)- manager: expose process state if seize has failed (#PSBM-53092) - manager: expose process internals in case detach has failed - swapfd: create a helper for ptrace detach- manager: remove per-process share_resources flag - manager: do not detach from a task even if it doesn't use resources- manager: do not duplicate OVZ id per SPFS instance - manager: aling debug print for better output log - manager: restore cwd on return from SPFS context - manager: spfs context leaving helper introduced - manager: do not duplicate manager namespaces descriptors numbers - manager: mgr_work_dir helper introduced- manager: skip resources swap handlers call if nothing to do - manager: do not detach from a task, if it doesn't need resources swap (#PSBM-52883) - manager: use add/del_parasite helper - ptrace: simplify "in syscall" check - ptrace: fix error prints in fd sending helpers - swapfd: Add errno print to recvmsg() - manager: fix error print in transfer_local_fd- ptrace: adjust ip in case of process was traped in syscall (#PSBM-52809) - manager: add debug to fd transfer helper - swapfd: Add errno print to sendmsg() - vz: increase spfs exit timeout to 20 seconds- manager: detach from process on release (#PSBM-52700)- magaer: revert multiple integration of parasite- manager: detach from process after examine and attach again for swap (#PSBM-50800) - swapfd: return error from destroy_parasite_ctl if failed - processes: add/del_parasite helpers introduced - swap: do not postpone exe link swap - process: remove empty process from the list early - processes: inject parasite just before process examening - manager: reduce spfs log to NOTICE level- processes: fix size check in fixup_source_path- unix sockets: fix possible write beyond memory border in unix_bind_socket - shm: simplify shmem data pointer assignment - namespaces: initialize return code in set_namespaces - xattr: fix dereference of freed xattr in spfs_removexattr - unix-sockets: do not close socket in unix_listen_socket - unix_sockets: fix typo in error print in unix_bind_socket - trees: fix null pointer derefernce on error path in collect_fd - swapfd: fix various leaks on error paths in set_parasite_ctl - swapfd: fix close of invalit file descriptors in copy_private_content - swap: fix handler check in process_do_swap_handler - manager: fix uninitialized resulting variables usage in replace_resources - manager: unlock cgroup in any case (including error) in replace_resources - replace: fix fork switch - processes: initialize path to empty array in collect_process_cwd_root - processes: initialize return varibale in iterate_dir_name - processes: check source size in fixup_source_path - processes: check, that readlink returned non-empty path - processes: close fd info stream in parse_fdinfo - manager: use xtoi instead of atol for all 32-bit variables - util: xatoi helper introduced - util: make xatol_base static - manager: lseek freezer state fd instead of reopening in freezer_set_state - file_obj: fix leaked fd in case of fifo_file_fill error in fifo_file_open - manager: check unlink result in cleanup_spfs_mount- vz: add static/seccomp_strict to tests list (#PSBM-50020)- swapfd: Suspend seccomp while changing resources - swapfd: Parse seccomp state- vz: move static/unlink_mmap02 to supported list (#PSBM-49205) - swapfd: Test for private content copying - swapfd: Copy only present pages of private mappings - swapfd: Fail copy_private_content() if size is not aligned - swapfd: Use pread() and pwrite() in copy_private_content() - swapfd: Make available /proc/pid/pagemap file- vz: add socket tests to supported list (#PSBM-47017) - manager: support for unix sockets added - porcesses tries - porcesses: some precursor work to handle sockets - manager: unix sockets facility introduced - trees: add sockets tree and helpers - file_obj: early_open operation callback introduced - file_obj: always unlink path if silly-renamed - manager: fd_skip_fast helper introduced - manager: some swap debug cleanup - manager: small nits here and there - manager: use get_file_obj to collect fs - manager: use get_file_obj to collect exe link - manager: remove obsolete file object helpers - manager: use get_file_obj to collect file mappings - manager: use get_file_obj to collect file descriptors - manager: new file object related helpers introduced - manager: drop process_info argument from is_mnt_file and is_mnt_map - manager: cleanup create_map_obj usage - manager: move create_file_obj to file_obj.c - manager: move handle_sillyrenamed to link_remap.c - manager: export fixup_source_path - manager: include to processes.h - util: fix sillyrenamed_path int case no slash is present in path - manager: netlink diag interface support introduced - parasite: keep service socket inode on parasite_ctl structure- manager: disable timestamp print in signal handler - log: add timestamp print control toggle- manager: close spfs namespaces after environment cleanup- manager: do not detach from processes on resources release- manager: always cleanup spfs directory on its exit - manager: improve startup logging a bit - vz: update unsupported tests list - manager: fix spfs release on repalced exit or master was killed - manager: cleanup messages log level - log: print file and line in error messages - processes: pass received file descriptor to create_file_obj - vz: stop command sequence execution in case of error - processes: keep received file fd while collecting - processes: split collect_process_fd- spfs: remove bogus error print from gateway_real_path - vz: toss tests a bit- swap: remove excessive debug print from do_swap_exe_resources - trees: destroy file object on cleanup - manager: fix unmount of SPFS in case of error in mount_spfs() - manager: unmount spfs wokr directory unconditionally - vz: increase wait for spfs exit timeout to 10 seconds - link_remap: fix and simplify links deletion- manager: added support for unlinked files (#PSBM-47074) - vz: add "unlinked files" tests to tests list - vz: add support for multiple sequential jobs to nfs_tests.sh - vz: set running_tests to test_list in empty in nfs_tests.sh - vz: make "kill" faster in nfs_tests.sh - vz: fix "test is running" check - repalce: added TODO comment how to replace monut point properly - processes: add support for "link-remapped" files - processes: improve error message in transform_path - trees: fix memory leak in collect_path - manager: new "link_remap" facility introduced - file_obj: destroy_fd_obj helper introduced - trees: simplify collect_map_fd interface - processes.h: remove redundant struct replace_fd declaration - swapfd: select only private mappings for syscall injection - processes: add "replaced" tag to fd and map structures - trees: rename collect_map_fd internals - trees: hide replace_fd structure in trees.c - processes: collect only unique fs - processes: collect "exe" object with maps - processes: collect only unique maps - trees: collect_mm helper introduced - trees: fix NULL pointer dereference in collect_fd_table - trees: return pid of the fd owner from fd_table_exists - processes: use create_file_obj to collect mappings - processes: split collect_process_fd - trees: simplify collect_fs_struct prototype - trees: pass file object to collect_fd - processes: rename map_open_mode into map_open_flags - processes: rename release/destroy functions - processes: rename "mfd" into "pm" - file_obj: pass "void *file_obj" to create_fd_obj - processes.h: align structures - processes: rename create_file_obj into create_fd_obj - swap: change exe link after all other resources have changed - processes: improve fixup_source_path - processes: small optimisation to get_fd_info - spfs: check link_remap attribute for any file - manager: spfs_link_remap helper introduced - manager: simplify do_replace_spfs a bit - util: sillyrenamed_path helper introduced - manager: pass source mount reference to replace routine - manager: carry spfs reference during replacements - replace: collect process pid on spfs info structure - manager: return handler result from spfs_manager_handle_packet - manager; rename mounts_info_s into replace_info_s - manager: rename orig_ns_fds info mgr_ns_fds - manager: move cleanup_spfs_mount to context.c - manager: update_spfs_info helper introduced - replace: use generic examine_processes instead of deducated helpers - processes: export examine_processes - processes: treat mounts_info object as const - replace: remove unused ns_pid from __replace_resources declaration- processes: carry original process state during replacement - swapfd: Add debug print of used mapping (Kirill Tkhai ) - swapfd: Pull SIGSTOP handling from criu (Kirill Tkhai )- manager: do not stat mountpoint in init_mount_info- replace: use context namespaces instead opening new in do_replace_resources - namespaces: treat ns_fds as const in set_namespaces - manager: ctx_ns_fds helper introduced - manager: close spfs namespaces upon deletion - trees: release fifo paths on trees destroy - processes: destroy processes object trees on release - processes: destroy processes objects on release - processes: release process maps in case of error - processes: release process fds in case of error - processes: pass fd_info_s to process_add_fd instead of it's parts - vz: fix process search in vz/nfs_test.sh - scripts: add more useful logic to nfs_test - processes: remove "unlinked" from fd_info_s as unused - autogen.sh: add "x" bit to owner- swap: fix root and cwd checks in do_swap_process_fs - replace: fix code execution in case of error in do_replace_resources- swapfd: remove redundant code pieces and debug - swap: pass file pos to swapfd routines - processes: collect file offset during fd parsing - manager: remove excessive debug - swapfd: format debug - manager: remove mappings collecting from swapfd.c - manager: remove unused code from swapfd.c - manager: use swam_map helper for mappings - manager: swap_map helper introduced - manager: collect all mapping attributes- manager: use new swap_{fds,maps,exe,cwd,root} helpers - manager: swap_{fds,maps,exe,cwd,root} helpers introduced - manager: remove debug print from get_fd_flags - vz: some improvements to nfs_test - swapfd: Do not force a change of mappings during fd change - swapfd: Print error message in case of memfd_create() fail- manager: split resources replacement into thre different functions - manager: remove obsolete and outdated fifo code - vz: make nfs_test.sh executable - vz: add additional cleanup after tests to nfs_test.sh - vz: improve test script output - vz: improve nfs test script- swapfd: Pull compat mode of parasite from criu- manager: provide O_CLOEXEC to fd swap routine - swapfd: Allow to fcntl::F_SETFD - swapfd: Check retval in change_fd() - vz: nfs_tests script added- utils: strip_deleted() helper introduced - manager: ressurect get_fd_flags and use it to obtain file flags - manager: improve error prints in files opening - manager: fix print typo in iterate_dir_name - spfs: improve gateway prints - spfs: do not remove xattrs for hidden files on file release - spfs: take link remap attribute into account when path is hidden - spfs: fix attrbutes comparison in find_xattr- spfs: fix debug print condition in spfs_getxattr - manager: colelct map file open from from /proc//map_files- manager: teporary patch to fix fifo migration- manager: remove freezer open_cgroup_state helper - manager: cleanup resources replace helpers- manager: drop redundant "ns_list" option from mount command - manager: remove unused join_one_namespace helper - manager: use set_namespaces instead of join_namespaces - manager: replace spfs mounts without ct_run macro - manager: mount target wihtout using ct_run macro - manager: prepare and cleanup spfs environment by using join_spfs_context - manager: pass ns fds to __replace_resources - manager: join_spfs_context helper introduced - manager: split enter_spfs_context into namespaces and chroot parts - manager: move mount-related code to mount.c - manager: cleanup interface functions - namespaces: treat empty ns_mask as error in set_namespaces - namespaces: open namespaces with O_CLOEXEC - manager: create all spfs-related object in child on mount - manager: pass string agruments as consts to mount_spfs - manager: store init namespaces and pass to SPFS info structure - namespaces: remove unused change_namespaces helper - manager: store ns fds on spfs structure - processes: collect fd wisely - gateway: return spfs xattr if match - spfs: xattrs support introduced - list.h: include libio.h- processes: use fd_info_s contents in collect_process_fd - processe: get_fd_info helper inroduced - file object: discover process mode outside create_file_obj - processes: small cleanup to is_mnt_file - utils: unlinked_path helper introduced - spfs: do not treat gateway file operation result as error - spfs: handle only existent cur_wm in set_work_mode- processes: pass process info to is_mnt_file helper - pie-util-fd.h: include stdbool.h and include/ptrace.h - ptrace.h: drop bool declaration - processes: skip anonymous map examining - manager: infect processes right after seize - manager: seize processes before examining - processes: rename processes_collection_s into mounts_info_s - processes: collect_processes helper introduced - processes: rename collect_*_processes into examine_processes_by_*- manager: collect process root path string - swapfd: Use transfer_local_fd() in change_cwd() - swapfd: Chroot after chdir on given cwd - swapfd: Implement and use transfer_local_fd() - swapfd: Implement fchdir_seized() - swapfd: Implement close_seized() - swapfd: Export set_parasite_ctl() and destroy_parasite_ctl() - swapfd: Fully support seized send_fd() and recv_fd() - swapfd: Implement sendmsg_seized() and recvmsg_seized() - swapfd: Refactor recv_fd() - swapfd: Refactor send_fd() - swapfd: Cleanup: use mmap_seized() - swapfd: Bind local socket - swapfd: Cleanup rename parasite_ctl::addr{,len} to remote_addr{,len} - swapfd: Add chroot support- manager: mount spfs with "-o no_remote_lock"- manager: fix typo in error print in prepare_mount_env_ct- manager: fix typo in error print in prepare_mount_env_ct- manager: print fd open flags in collect_process_fd - manager: collect fifo file to avoid multiple content restore - manager: collect_fifo() helper introduced - manager: "fill" callback for fifo introduced - manager: remove get_target_fd() helper - manager: fifo file object added - manager: "file object" introduced - soruces: move namespace code to src/namespaces.c- manager: move process need replace check to separated function- manager: improve debug output - util: simplify create_dir helper - manager: toss fd open code a bit - print: print_on_level_ts introduced - print: remove print_on_level_va declaration - manager: check either process is kthread in actor instead of loop - manager: try to find search fd table before fd collecting- manager: collect map fd which parsing processes info - manager: map fd tree introduced - manager: collect map files via /proc//maps - manager: split read link and actual fix of the path to open - manager: fix print typo in iterate_pids_list_name- manager: ignore collect process fs struct is shared - manager: fs tree introduced - manager: split collecting of process struct fs and exe - manager: split process_env into fs struct and exe fd - manager: do not collect process files if fd table is shared - manager: fd table tree introduced - manager: move kcmp code to separated helper kcmp() - manager: set 10 sec timeout for freezer and print in case of timed out - manager: rename add_fd_to_tree into collect_process_fd - manager: rename fd_tree.* into trees.* - manager: include list.h into processes.h - manager: rename root into fd_tree_root in fd_tree.c - manager: unmount source mountpoint right after replacement and redirecting - futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- manager: do not collect process files if fd table is shared - manager: fd table tree introduced - manager: move kcmp code to separated helper kcmp() - manager: set 10 sec timeout for freezer and print in case of timed out - manager: rename add_fd_to_tree into collect_process_fd - manager: rename fd_tree.* into trees.* - manager: include list.h into processes.h - manager: rename root into fd_tree_root in fd_tree.c - manager: unmount source mountpoint right after replacement and redirecting - futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- manager: unmount source mountpoint right after replacement and redirecting - futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- manager: reopen freezer state file on each state check (Stanislav Kinsburskiy ) - manager: trim '\n" from current freezer state in freezer_set_state (Stanislav Kinsburskiy ) - manager: return actual result in spfs_freeze_and_lock (Stanislav Kinsburskiy ) - manager: try to rollback freezer state in case of set error (Stanislav Kinsburskiy ) - manager: wait for freeze cgroup changed the state (Stanislav Kinsburskiy ) - manager: freeze processes in replace_resources (Stanislav Kinsburskiy ) - manager: convert mount paths to canonical view (Stanislav Kinsburskiy ) - manager: open map file with correct access mode (Stanislav Kinsburskiy ) - manager: adjust patch by source mount in is_mnt_fd (Stanislav Kinsburskiy ) - manager: fix strsep usage (Stanislav Kinsburskiy ) - manager: do not try to manage namepaces without pid (Stanislav Kinsburskiy ) - manager: "switch" command added to interface (Stanislav Kinsburskiy ) - manager: make repalce fully independent from spfs internals (Stanislav Kinsburskiy ) - manager: cleanup and rename processes fd info (Stanislav Kinsburskiy ) - manager: move all spfs-related code to spfs.c (Stanislav Kinsburskiy ) - manager: make replace interfaces more abstract (Stanislav Kinsburskiy ) - manager: move cgroup pids read routine to freeze.c (Stanislav Kinsburskiy ) - manager: untie processes info from spfs (Stanislav Kinsburskiy ) - manager: "mount" object introduced (Stanislav Kinsburskiy ) - manager: rename mount.{c,h} into replace.{c.h} (Stanislav Kinsburskiy ) - manager: set SIG_CHLD handle to SIG_DFL in mount replace handler (Stanislav Kinsburskiy )- manager: lazily unmount spfs working directory - manager: do not close fd in move_to_cgroup_fd- manager: do not close fd in move_to_cgroup_fd- Makefile: make swapfd "noinst" program - spec: fix repo path- sources: remove spfs-change-mode.sh - spec: fix repo path- manager: try to unmount spfs working directory few times before give up- Add swapfd and spfs-change-mode.sh to package files- Initial package0.09.0010-1.vz70.09.0010-1.vz7spfsspfs-clientspfs-manager/usr/sbin/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generichttps://virtuozzo.com/cpioxz2x86_64-redhat-linux-gnuELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0xa203be5e1cc63655b25a82fe0f8cb61fd1cefe9e, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x032a8aaf6c18370e86fcc310a3a328ce76e99563, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0xada975c34705f5da7feb75c557584234e12b3d43, stripped R R R R RRRRRRRRRRR RRRRRRRRRRR RRRRRRRRRRRRRRR RR?`7zXZ !#, ] b2u y-iSq35Z+,b{?;iV9GbQ3B ^kMq.QQ^/%Y+Z:f5gͻ\/ #_bCUфR7Rw~FW C+jӣ<4'H )a*d'n)2/ o:ܷQA@PF^Q ~br<>AnY@;bؕ^N@q.R#*떡fڇg_LGK 9._U Ty@2{љAz# m耜҈| FrȚ,/DMt7ip≹2*-Mcic_58ݘ;ϣ$a]H.LwrH?|%+{?̀RDH+JmWGӖ蟬jV9m:&piXB#:s'D1Ϯ@Tha6]a$L 9Ծ 3O<:28lz(^:*3h)Vs1P—[Ǻ!UfTƠ$f]%ާ7X"镂O V΋vP ^KDBIky%H*g8TDѵsAadYh'~G(ͧ{H4Ԧ`I b]wlw&UBIO>¡lY6s3,)!#ЛV~$ 0ZX blCwZ@2. to>1D@?Y9c| 8N@I|o뻝%Bog=/QPiܠK qeBxz Fe3՗9doFB=i@whPF2TUg^`G~ߴA"@›/KMg߷!3)Տ&D=r?ܼ8}oo.^ns|Brg;`7a;QdM/lurR9b^5@޵)j@DuXˈ .R摆 YczϨzbhدw}?K>pY8<|1\j/#j6ŷ~[lt@__Č?~yn`Mj5Їs}CG#4П?j$ 78m=1H55YsgBoMfxwgYY;s%>;\mi<NG!0;﷗H/^L"]g^^"A53`ĉ/%v4:ܐ*XŇˁk?Ĉa2_r~ :+C/Lof1`KT$_Җ'8FK<3Fu^?vu;X>@đ >'ۜ9&(nF%t9mgS8E& 5o8Ro d#-ם Q ~ }pb(ʝ|''C|U\d,K݆ac$d|}H^x\@3ajPנG+ <6e&j:Hl!p\˜ 49D]=ɯ.@*;WשuA< v5] *^ohgK+p .P5UlP1nTho z۾w}|H k5띎9]m_OpH}z5"Ś57 <DؗJBO6Q_K 'P߀=w[-‹`;ljQ|64H9;&1jFO|蟁"_^)MTeI}6v}]yh}LMZva-A7f2Novxh2# $2:Z :9vLW4AϏ y}&i__m}m .Z9jSʃ<obRR} ִ7v3%>\<.{, NKbrW* SvJ[?t{՝3kXMep;SZ>2wCw%Q_, >2T{dpr;9ޛ*R&b,9 Sup>S.y|W ntRcaa%Xi2O`s]0"]*9nOUDpej~˒bΛ :?SRZRJ@#9h-'pXdrp%<3?VMTo8vl٠0A8:]EoӿxOSb>LGvK 3+XG6Zo%h k.DGSvKklG/z엏kx۬Z wQ+لpY޺8]T1Lb~iWz$/餦}lhh0vh6o9#/e$^F+>6 r2}p~{ol9L*C tbauPt/K4[tUc-'jP{ɨ[xmV7%56eeo3 6 5vZo0ij{t%Sx5&'ejwRs* |ƚ'Hj)l*?5ZHyn}ɠTrLN-ZUSC/{us_M>RөeWl^V{#Qڌ 7;_-gSIW<) _t:Nj u 0áAm:ck C\fˎ`Yf`+I|T\?3Dx߄eźv,c`6Yc"h-3Fm.GTA|@/5c=m3u! `UsUIbi#ڥkICF+/z FJshʠ('b}mzޚi< [Q "{l) }Pi9xUWIUp>AK.I"bĬۙsuf />K:K[eC5-$7!kֳMPLQ-["1CB@{ fsσψt:SFZEX"OSzjWpVgcϛolGX$kU}rxrS&NF kN8pܸҧމa3F)g۫v&'DnzwRS'(]p;Ceϛx&9WnV]kJ']i0*9#U$ڐbEѠzIႤ0e~FDnݽMb8}ij}~Y&9PgSyЗTR$@ꈙ{_רҩO;qzޡ?BvGߨMez672 ߩ5Q:2F\t,}z g5Q}%[rfО)07Ͽ*m;)Z7˲iʪKo$+g4T2dM0yٺ+kn ts\!A<s[%m;U+H;㠤AF׫1;Ylj`H2TT١n.llҖߣhd})9aK0 ;v$L=Bη@56쑲$ݧ l }\f{0Y^DBӼ=9&B o@tlŲ7VMުnn614l.t?p ٿѩZ ٛKڢzΰD=h)V|>%Y3Ȏ8[6|`@!y 2dqpۅ=d0 #^:xt*P _,% MX_'IhVI.FK9~"瑚ZE *8EylxJ"U;76jk&HBGbI3jgR2׺(pנȃu ,)U`h$_QV}XmI?ĚhO'1 o%E{Xހ"ȧUkB]խݕN[}({=M~)hFgMWF.t᫦Gʻ':YZ}4x=բ78 @ri~X(iěJ^~~t}(8tA90(/s i(Ay@{﷖ѿdH-Lcont%hY`Ұ (q9Zd fwtuLГtCg4bb;)=^-9쁦gjgP+>&s1#2r<͂|M_F.P7ҜX߀ESJkcQ.5 @xbQލDNZg(މUV n .d7D[vk`c1(!WnMnpE$\beȡD9Wٺ˫|>% MvGv~\EIe3. eqf;kq3T'5*2U;"Γ=j5j@N$Ca;_~]$u0& ĕ?&G-d]rAH +~@ߨt/Pne4qTQF䵦x-嚫B?O' ҏ`Gr|ӛ*F CΦ Z'k6BS!qVЕ8;VsV{Vӳx\5kX"ӗ'ߺIЀ+ND[/Z-rbԲ©vlG,=99wzf vIKhȵ=(J+MC]Übxw<ڠC dЁx(\Y#D#U s݁nlz'7.&;#ifE/8g#7OTOOpN3"9;ݦ6qR&\=JKvtT}Q5 сJ $ŀ&@6<x(I:vBwLƦY_Bw$';OՊd+,Aqbp5om M>ٍjezGEwiNc{qҠ.nz3yj_ٓRt6CȒƁ fڻJ7!I YIP6IV"DnLrf[9wơ$AhkboM[]poHKӁ{>kH"ؔtl-rtHi)K \}KTww-_`{.h&Q}ƍ[qM+,drjNɠIuG !:w_(&5Vĺ}n^02b~{).3lxWo(?:>h179"*w^ql]BJPS|d3Ci)j3ٌBɷOa'9Rr:9)Vק$'ۥPlj:m]{[ . 7VqEien8Hv H[0Ӵyqcj v:{o.R*[g4^ R} $M(ƻ.lH]awUGb 㺑t@x4 ]NiΏNZsl,&!yDB1$KRr*8Q zVf&AȀ5[6fNe ><ׅ0F@K9Hܐ|٥[5N3JS]GKZmp[r=mgLgPOO Y5G޶?=MEKka5 r~v՗~"s8t4pDs;nbdT@~PxuSwoNZ2n&ʹo^:pTҩon|6Ou ?Ũ,D@f+ ĝA3˃4Hk-ߍG#LmtԹP%t cX*u(`3`ZoQ~KX؇7[zc{K6>1؆ؤʏXӃ!sRβLݭ32q%rي7Kd~L"YK^t/׋beO`['\Ӡ&Gr>JZ2WVUQH_bc]>^4;j+DFr r|ܷ]Bu][IZJ+tI}Ȣlh8#K(5zhkQ9D^ -V-At}S֘u[t]%>Rƥk;MfEUA3jܤ>hr'OLۖR촎}PAƹ/x/Z`YhSYr&CoΠ8V M b2xku#+Wcזe" {Ď) p>=}IF3yz9ue8t Fg zgbɤ!94h1S>0nbWkOtή/V.;S ;Hk`Th|ćS&m!<숯*{vgF}zqR~- dra;4S8I&PaɐTאzZGD(G8cf戼cV5K>M@A~W -LMU7V#=p<ڝa!Flqgڱ^rtaޮs`ceSV.|0C_y%?x1TW90P "N@Fݰi f+O'&+ s3%"q p$cYvQ9IZO~Y55,69!5 I̱\7 Iudԃ iz8 t#N(kB"/A_6Ӎܼ_B[JZyͳ{=F[$W !rG b(v#|& bDY"Rf[sQT'an}Z"<3Jt-D.4>UB̟wu {i nTW gH4Q}ΊZ$ۊ-hB|`RHRmK;ekzmIe C-*d[ #` ?nʢY&e x{>ح LAe(;؞|3>.=r4V CzR!C51r Q_Mb-q$nfMΘ|o5` ]N=Ѯn`JPcBm(lƹł\}Z:栁Hn"ZNqz@xg)'l-jaП07 ǻDf|R2./PY+Is畬1k,FSi Ts/ytuiz)kA JZ2. ,VgHY:/[:Qv( ?Ԓg yEBD)ڙi^$d,؊z?t^W PPDHZf*@d$!`t"~&RDj4FWϘC $428[?ڲ@W$t1ܱ^d#cxD3(I[!$zv7=0VW DJx"8 1:p8A&tq1]]` ,Jo"5G1ahLrv 6oNI-^L y8}u>;`6m-g4܎Aya0n0@F4?ۣp̧RHtmwPRJ%ǭ CTLFޝ㣬%/Sx [!yS1 (xr|gp"nk4d['L]2?Ta'hL-_{ `?9=/B'j!8~b5+>v8x0ʠ!M ?2gZ刟 9xK->2bY`u#]"|b?z_ = lk a#+[LI\^Jh%3d{ViOESϵ,l=ǚyU -:C/nmh+ħ_֙5SCu:p %;$a8Yʹfuܧĕ&(\I(EHC`5f֯a5;݆*!J&76]diC:=841#U\, q ^Y{|a gm^O!‚i .zp1=0UyA eU[:AXq=432Cn͛뻽1eqz?[L$f$saY)B` p2-TҌM b BF\NUA_:P?4 ɟ=)qAL[˙XHqeZN!G/xj@j3ДچS qSl ~sibO:s?_DPf$HԂ|\zcAR1y6J*ig;/~ MiF9@XD@F)teanWyB`+ǀ"p ᙉ iO;~kM;E{+ON#.ȡSpm@`"@IQ)Kd: ȺWQu| QǶ[fo/,`,h# ;h8ŎiFGayFP.*ߵTsO/Flc[l/ ejهD7 n~@oOqƨnAm5Y c ^iQVq' ,nYZX} *xGfDoP,sNx/w(ny~f±I v*jKsx|Ok*sSG%m-rs)Q5)?m pؙ7Nى]WQr̚fuo9]DD aٟ \vBNi'XNR8Wz. 2􈞂M'Ca[zޏaNt48C6%mVVxDA FwHG7YEP0FGkTZDD<PAm%-XߊT>;u b4!5)6khZPP53{˒ѢO[ gCbKBz}bEX[|Af+8iwӕ\՘D*wp%_!˚f c>TI.!}*g1Q N# -MW&1sV{h7vqe(o .҄<(gмLaNExFsvh(×V"[X7:iIJ-(硍7oJw `n8VA_{HNEm‘NN 2S}y`08vUI*Pϭs`Ȫ=~5`Z7z7\%$03)75܊P'&”x?>Hy_4Z~ ̟=A;e"DxSkbVFQ 9LrCS%T$)< ]1\M^/j闺=Rg^xuZe]"=zɿw<$A#d/ۇ0O}N./"bûX_JbwٟbЭH7T19r7fFka92Gm8`FtV3#řGsbcC5:u`f[=z4΁JR?{8TZil@p.@rNNcˏ n6,֊кJ'0c}w7##]@_(~ILO{="rCzҎ9 da8bnu#w3,^$>%w.C?t"{ai'ϜP"Ўp|}8)br :`Ŷ0oҥ,URv\Yi.VQ>fI3si* ?k[ ܤ]61(o'A]X9'cP>F-i]ZN8LɸnOb)`t#>m- nSB,N.JS #ݱVhyUM}#%z>H_1X1JχITerȯF$2cjF4A;QRmCdYgnCrw- ݫ0,ȱW^~ٛdѾD]4AkmOKo9{6\Ib`_z\9l!o>!G M^`s{BRGƌu!Є@SN2w@MSbpPvAX4coRCUm0@/uPp,ٵ2h 2rVnNik.k]pL[<_RTBw\6*;/u_`v} i珂[9 UpĹ&BjCb"Ե!p?!đ?}jmH mv8k?u!sUS2M+N=akAԱb, {m0Cy<#yت'|[e!RDl}zKjx- 5# Ep>uzj@uqkY2NrM\|Zx` g-ھ1 P<F7%OG柣xI˗ S=$Su:/o[XPwk &[cq%~"Mj]hC|v-x:8(q~.~CNz <-Q@gefMU~b%*yTY!sqEi|ȀZG<$Kx5osH ce6i7t~ *2l|_f z\_5WZC!~vuQP+xR*e63鶡csThb\ I[[!HyF{;"2CP@nng]貴{|+P:'LXTH1ʹl|%y6Q FM{H#l80< iGG@e YH%$@ v,yXXU8)R_OrR?v:yk*<$_rEJO 2I[LVn5RHqMk]AqCD@vعd^NUCZ!Sc H51"#7!Q{mݮ{Cl/GN%"sv/߾لㆢj:;;7oGi!gsP96EcY1OԎ>Ң(^Yf5?6E@;}8ŋqe $56Met7 Sc O|cDnys%N=u(8mlXmJ??}>f%c?%`4֤ٺh !ӈgYL4 *i`m[#vl!YUfLOLZِoDMIJ 9+m9hʪ`t ?_]Akd[ s.O11{5 ^n>= NeN!ɤN˜ ȻXGG\f\~醢}2@8sCsSYY(\Q%_ҘbA8ӫq{fPX9- PdǍSk^|mi6ƂRJ%|MӗYİ"ݸ, ov=Aae,D!!1#V0;Tf9&Ys] LЫ^`8#,ʬt 멛\_:OWg^Bs0(x 22f|<(btL,<|0֢ W' lp؍ꨍ֐DX`:Ĥ ul aiqIr6BJ2E Qq:!)m3ӿqnRCzs2~z-#_zal<iIPd`ss7=Yضҁgqex&1rd_Zr]DCw\Rl_-c9i\=WkvPvX :YRPU("D4^=@-ӭ XGA1(4QU{5>lC *XG;VIUAIgڋ:P/5gk=˒"] angv[E [ĦJb^HiŃ'g4O^ eҳ~RwI %1)q* fDakK%t!JJ Xp@Mc*x"ib!CT=A Fw>QƻNkLԌVp383B?p.!ɨޯ,\R K}L'k5>qh^v2w`DΑf]cao,̓32^o>|(Whw"ޥ(;.['LJEy?BaI`ca{v kZJ DZǽ\aU8{9yC2Sk?ݲP'&_apWG.Yp67!$!|dc$y;%uu4AvBn;D8۱RՏRƤ[HX3uyxv(Dr+l0a>%g)^H˽|OL)Ds=eMq^QR.oWorr8]sFR_\pBJ{)DМ/kct1v_)Yͪҡ([ո$ RbBaw6hRF];eώu%wW~n.q+tM5dϦ[Ö#n &D^̼NN!USqgAaz>$04s#Tf[Z`KO9&ei#{E^[̵`г5Yt(W^Nkm_8X&$o}ܳ?6^q Xu7b9x{lnzi>">BUDIhpqH?TlEk_]Ƽ097j{SGO-)xZ$9o[BW chP]]Qn\ܢZDI $d.m7邭*RO%&G%2[!&1Ct+\+@rp%ˆ(m\TUm9qȜ}dyc?;? L[%jPe|t+tUSY/K)\ØtH#n@̷1_a1'^.jBE/V`a5 '"nzב e%G3ȁԂxyjMF,uB#NM9SkgD~xOK{Iڄ;Ertxe g"ѡa.^$_`^UN흱UAba7gR6o\ڞ"A7 b !FQke؉Rõ <`#ptMmKz5 ,C)V5&z 9:'64ðgj3 ̸, 끙Cg`I<9r<-0 ",M 4\`8%I}Ȍ&W{'e' FxI:gEw%hx9 5x8к(b4d$HQ+<%[~[So8vťɞ@WoOBƮ2 bRuȬq:S'Fo@3BпEyYPtѥTK(H C$(+Nhi }6+c4TsKFgC>.6S[|n0L)ܜdm,Dr43kQdl}.-R&%/۷EͿ3Ob5Q87TQ3Zi.餪3}BV6yw(]*_E23e}~&lnu_S,ɓY JZΛzOb*gM68H}QD=D! P x:5y`t"}TD~>!Jjr(zBJ3"nv=`{h O#rdf;+d6x4^5N;4*7aB3p8E|HrوRfqߟ"Jcu}mYcC:x/ƓYwoT񾔭|*$#i YE$G)񿭿ef$:Kܯi4SrvIIV4LKk8Wq1CrK^uY)d[맰`fł[LxusщL!LRD#]}| C|yU1* ^ 𠵵_SlׇzjX!;8G'1nLS7П= |8 r]Q\ĉG/G?=v^If mx&"7HPV'ޗʼnVV%~') ISYX3$ڔ1TrV՝hס9 9+j8ԁ^X8'-;ը82U4k[)E=ELu%\6tWihy]adkf⓺FF@6EpDE//5tk97)-2*/ v{͢;r:U|іA[ ]O#IPj/xKP@9˩.ZgwL #V&QoׇGsN>ͭ-U+9dټ>,#ݽ`6lwD; ^FQsmU>Fкˬ㬹48'5gt]`2!-cq~c]Yg<7g$St]\9B4,6neHC^zr>YUǃ Gr }Y(7|M 4 ¸) &b3IiƴQCTY jTi{/.pۿX_)2e h.PlJk$M{m2 MSZz!"+29[܋Ʀ ߑ{_~B5Ճ)h2);qO Q !JCnǃqx0PN/L:e WE4d[yպW+m~RBI;-7>65R 'Av`6v-3Qs!X]KBQC䑕E~4m' de7F:^%AoU"Gu +2[Z#@D֨LJ;b4QHKD" +"$}K|6#5Hmؑ3&2ԀY&fApB7žEs =Qg{io*/3=hGv1iJIB~#Sʷ/,'z mlGm D=/ڄCnfuoҭݼM}کz`@} " --7ҟ ~$/JAnFNx)2|khI R#HՈd71@V,$IPfoYl:"Q( $eOgX]ZCY`@Ɩ Lҧ'۶BľݨB5yWUm5 Lbt TYHθE3Ht^.FLzNM"b~̀iR̞>qX+q |d$j[:Hn-1VRY#wj?٠q ԩ-i7`X&kHsɟJe:d:dS$LoO@~2Dz ׺IspӭZ+<=Jpg?05FB`VS [e!Ht5 W<YC?nvUGl S S䅰8X5܅o%8o=l6 I1InkuɖүEU,(CS8 5뚯@ʄD4prPx9svKz~G};\} |ԝIzL,dijޗzPwe{nș51Y5z\c7a=cYZ \LkG\Y;ҵF ƺMċdl2tm='@d¡o L$@ jsJzջy_zIAr'\ 1^(٬XcQ<~ۃAnl=o DrngQ(-Ok]s# CC*)u@fNdeeMHE/DžJnab=~_:g|ı2_m, I.i7+[ZTtMg& m#O:D!z>}U=腢k+D}\D҂ S2>w{kZGJ]#%V0BS*F,u7T)X0ZSX)N?ף. HK0/zëcg=8 T81Eה<9eۀ3[FR'g Is8k4wNxwcϬp=r']$EM"6Vn1cJˆ,Gn?1g-#d캟eU\~#Q D$|%S?UQOj zL` e"\CմgǼK 4șϐKAY&fuIE^)>j?H/HƨVw4/LOy/k}4I1XPШعoޱ_`*c.E@ ,'<k5ba'*ۃF۪υY妟i(XRJ۔%tԔ_zGY%y 6]RWRv林Қf `Ù-Gߋq9&kQP.1F(6)QDdN% %1ʙ'D+YSR}$J@X+-y էh: ;c hCx40/NBHT)-<=>s HVG˱0ѣ~!ʉ%yD'JOBh=\ehmB2VUF7 Ȑ:FTnnjRoF@*MeF>Սn\(𔱦vKP~d6Ɇr%--z. f^7 FҴh %_V/-- ߞI/r`7 H`/8ɂ|T ZLڷw@ƾ&gBv! ^ Ne )Xo=sǐ,-;q^Sw ܟݢ;ŵɮW",4j+R0jX<>2[Uٸ c^iΟcQ=MͪY%$l*=W68%'lڦ(cۢ_/4yynm&<(JԽ*_= 7EF?])QUy3Bb Se`bqH[V%T!}\]b!v)"d1iz4H+ȭ$[Ub_rr؞|.b \+]?bC/ӑCTP=S>^h sMTFV\WC9[џ9/([V$b&|țJ?dC  y|sςY^FoO e< XO#<aH!?z4jي5D\sOyKkkMw OOI+G$:%8}`?LE$iI.xD%\`4Z8z!TlauoAnq~8cmlwvԌd3B9`?F?׺RE,ua|6fl{X-#4wo>ū'𻎕!2/'3*G R4Rl.Ϗ|5L*wS[p{BXmoS,/ =(N]:X6Ubyw$f {}|ٹ58'vٰIx,$n`$_o(xDZNPظV+7X%^S !| @6&B|,#M+èĴpJ=N@L7D( @ZOء1o k7:OۃW>Y z߀!e$Ko%S C4Ive7{0h40&T + ܳp|CÉ[U'%Upvd~ 7fZؒ7|Bږϱ{ʲ`V6D >ߦ>1Y4uJ;>+-륦/*V0]lߊ::ƒ0E~(nkl2U꣨vv`&퍥%m XVTeNe&fc͘#r$MI oֲ1S kt~:tI6=)<_7nr{fŔW@t;~pCY<T\͖|$.Wی—lhI.k}&*ghH:HhXYiSth|>(efų}\J+ e_?eF`k(Y ic)zSo(('K}pX 3vهeErxA:kvvwqxt#PrÌaݶ>\nK\^uG<ƛEs3293%񖸤<' m6Obv@Hhzp~& 6֗_*<| qb7#f헂֌*W ԝNt`OVU`W/tPDR7f\;1|oklpW4q_Qm|{j|ȴFaL}~<\WM@u9@'2>u2c  P9d2Q󬆏{<4()V{w-\PH(5=W5qWl혋u]qI:3lp ="Z5Xr`'e)rku6Z rvG yј1},['kZaxko#9q%>"|onln#Qo-]8.I2RI=.  m~*a y$Q| KU =Ԁkv"t,Mj)̀V-u!@bUEyDbƂorFJ0v 0ޒ>(1jeל8K]… b7׻blb]Qnx&Ήm\5• ;1bcCJC8=_Hna釡cƻlȅP#q}ӈԒzY::iIlArO@%x ki?t W$^2ZRKo4hCJ,S.PV6nwo&56di7&m\yGa&#pU?d44# x-PXn/ vƞV`xO= 1gGLtэV;m\KS눯[?o)#L[zcK@$o]{-DnϠVm%a4t4'ί8܏@J4, [0بL*(ZJ[ t'X8x'QQ(54.` O(ҧsLIAѡ "/kMhv#i9Xe&;m{X.K߃z\uLv[vjObs1n7JfCgM~ wCXl^ c"')ݠ:[˶ggM.yF x9i.Q]3 ՞3.]bCShPaatR_(,[J5BlP?G?@yU[ K (:¤_t'?b#Hbm0cSĤ |/=y9p/՟,T4τ4: @.֖,TMJ[l‰Ѫ$@M[ kBE11פG)-g1[6e)Ȓ+e^P#|Ey۵Qp`qzw8ۛHU|0fGJ1)=g؀Qt霁SJ}w܉R Zѩ%v-C&8| Z^r#˶U̶;Ӯg@J 6վ,7mYw~F/J/A*~/0Wgxр?ilfytJ9 A` rBNa5T?7vNbA@2$@z/8Le-i"O##oQ|+FIbQ*:A^+M-d/IQ\.oz]u>RG KJtdpPNY<`T[/׳S*;v8X8Ê݆cYN~`[ܒW'M ^Q˔ OrbX4FOV;b)u ݂w *!wZA+}Yg cwn,avAfkAuE f- p%[Qp K(KzTtwa'1y$?)ʝfȘ4Bds} W3kl@O3+Ʌ=tjs#Q0<>#5>sjg(n-7@QQ#EbYķ5_"Pj]07BL1ñZ릎 BeTSL$k A#SH ½![>QGKo c}}P`sx.m(EBcbwe 3▪wDBʬg'<ЭƤĩ0.{WP@0I K\ 9yG*)=eiu€`! (ic~YuNO /Cbգsˋs$)y)HrC)/x`IoTWk/hwJ>iՀj:sxYa}#:zE+]/Xɗ$o(ۥJ 1^Y m?1[$ɱa&"XZ+G]Z %?<4#>'YƑ$q^ @LU_> :֭;7 gew,͎CYa9v̒"'t.R_Dr#<= U:eȻkxsˉ"VhfErœR߬ /mCbjljOWp胃L6*s7~J~sʰg5dFoNߌr\rM*fՃx@Zfv\ ߀J3" `4'8OaG,BuQ}AΘld~$sH[vVJr[4^onC<} ňڼ" V4@ 2vqxrg!r D_kgCH]PUoM|rZ,큒i2C#y\X2K&:"ǐ ,`AAI0ձ (ow: i?`+%x>ҿ˽`@=T{X, nNI YJ6:& f 5Fmӧ#:>`"~\Xbf"vVe ۏ!TnG5.J% 1HAa?VxKA,eT&o9ӡcř#O|_aKķL ԝm@ÓX+2+մfB@(sMԹd0i83)Y;oA4\(; m )KgQskݐ.`%zNgvN)w(\ݭ9g%iUfHz?5,U +(z(mA֡|Y=>U%[ɹp׳Uڙ;\@:ziXtV(h#N cqAU=WةeFAoMx=3בzV@)>pS,}b/-˔#z7Y1a_H\s<r=IXg@e_4?H'S`$rR0dR:w+̹xzl_b'|pKla."3̭`ì#6` K!VUExXe1q67:*GKp ӯ`pZ~LoTIl/k+l+IbpwUk~G*my`P,>ƶAzQ?þH&yg'G*2c1C5UrjR[hDJ%eS*XD 7wP zcáiͦpu ~nn'Ql@}r`emSonRYPR^& tW_|`V@񩪴AP_2OUw]krXUz1OBJ4j w88I˃#Hgѽ^Ei5k} Sa >wQlC=~K-;8;Euڦ4!_DGdS$:ݶ ж,_ՆS+xa?D%!{ޝ.K댸Ⱥ6NP)xƤŌܥS]4 2C]xe5t$Q `nv, R<86m]ߨOy*ʷ|vn2,6 aTG'߰! |~D{@N.+jDQy҃\OjG~L0[왻vHÏ2y5{o љ#ҼS#.B:#`k)npY .q?PRͷ> \lAľIqoN[pf N-ҖT tr .~j-i2% \ @8)n䯓y ( rT +};ؒvr)l.!PC$O_om zTj(%v?q C"_6p|zfsm562Ч+v~#^nolydKP#߄Z+ gh3W&4 ,Gڝ΋gzɊ`iDeu'k͌4 /^]}N &jb}*]y!mǸޖJf܄ӳCv{JfN%8Ф"zRkZ5109FNxl^}p0ڎ`mO}\@dLӁ*t<2`r9E(]5rBPDx9m/JmY,} {ft*6 aeBclEŮ=Y2Ai#K(~Y/Vi?ٛ2^(<(hz*vS /Jg= HC ^v6sJ"ϭgVBIa'%=!a/ȏbƭ= L느ި'?8J|`q}P-UW >djs`c6s$ypxUlpÚ8t 1fφ84 (آI@E:3*y\/Z<AG`".4zQa!$+ψZX dۧ瘙`Xl`%! pNŀuz~\˺'&LRvu}ׇCKE$#d/C4W/&{taY?v fpSwp;yqô(MhdCH,mQ: ughmnMH7Ok/|ۂ"?G/7@(BPrG{% ~d2Pc/ +;PnF:V1biJ,!?sV73WrlDz2Hq'L؞ "gb7ĔZ{<}{8j MV E/o4DLI<X' `^͞&>VڃQIK5>kQHBSlL4e?ip]d6k(b2 "$rI9S*e8[Dm,~csCT =.N Y>NKlvX}*4a!-NNW23~:|cwR_ M;fdjxkF4q+2 ^!Tor甾|@~Ad BC-o@ $ :OM051%X@)4<,n ..F-1N3PWD 714M0` cIhC[@kUE>`4<=~Ņ/5_ kCA\֧K:m)33*LGC"zsAi |ms,?QM,Xt*˥6`yjK қ6bDW{ՆNzbiCBZJx7!݃XptE>Hih9xH(w^;-֪|ws5[fCAʟAt!=6r”'Oq}TUEd\EF8,wӊIܓM"$P|/&m%O\3m¤ +v$hf9Z :`@BrQ1E (7"o ] +:6?2z(uNME )9F IS *KTaay[“ʠ*Y=Sgt?-"ȉg;v@c$,5'd/AY` iژ~jJFR@r>I>w=WtИ1E{N^3 h$_LcV*#ahK=h Xý)Rb,7غ}ネ$ނo k)bTzN}"­V=.G8A&2zxŏJx'~dj3Rvݟ=(g0prb P,xxt6wE^G;rle|ZyDYt Խ d@ 6"/= u/F++^V54!"#݌-h_:c)čنԗwRYغCt"{]i}B71#MĖLbU %h21?l[fˮgآjԭKhvq#!\ LיԩPgqMƭNNLBbb.LiyJ.\cf3aoYf+AH'5O-HR"^}۶:0|*}2oB   5y Z5$^|0`Z39yD 1i6;veEtO>M~,ă$2T'ZWmR:wdDM\|j"c:4 42 ".ξu+a MH;. ݾ,3>`BG vv7wI}xCpj< $`_JȡBbxjۆύG5\ b*xյg7,`AUȧQp4=>[`[T>fwbh ߮dZ juǗB+&w5"qE$㼽f>+TV!([0D,76ʯ&:OqN$QAFS/A"%yk0?5Tl5~%lPP C о"s\wqpqWcq -+3 GchޒjO?;*fksOar(x? EH,2l-%Mdm6@+o6H1 "=[] ?-{%՞3gmnw](DJ54ZL}rdUu 0$=ѐ}?%ٛn<:y +")4ݍk!pA z7{2w0E@ѝ6vo>|m隿RZON^+{Qq=tP|zGN|ECMIt(eLJy˜j{IcŶBk~^6ieMՎBI.Ila:: Ųgc$yT\[/c/D/|r+˝1Hc{AafR^D3,C wrm;~J5 躳-(>p:,1˴nFi(-2Ko.w#/x"RH!4znG?/tZss /}5@B̞+ƃPpS" 5^_7r6MK6*FZyE9Pu sm˧9 kdgHo.\D>ļu*1rOȏ)Uф9 #]EȚ۽" Yt#Ddi\d_w۬aL'Lz3X[Lo JSp\ʻO+br`vMwg(NmcTˉ5 Hiry1o[nr Bޡ:rgL(N0I3|kl&[tĻylhSH3צ`ȚzE厗vm=_OtE3d=*Q' 1|! ? ő=׊ov Gu㰖VM<H/@LkԶ_Af~{l[Y誵%KO=.W^0~xM(\T{'p=zp&wZW 9m7.jZk4${q~h%h0LM|X#jFOYTBu!ADK %^,$r7}gϝQjF1Ȟ(ьJ,3IzV}@X^/2d3"( )p2.L?cCPfmԆ ~&Xҙ~kzԀLXOP<>.×WN_̺^ 0{)tr5w v[v81ԉr{IS[猉XU)QtGx'FK[GWk53)M%7g}̓"V!@&zB뗌=QꣴھT\dlkFSqfzZ9?18-|}(poϚN(.LYݵ7E&B^]"X>m`ƣDߘ`*]*'k˞C}NJ}jnjR{ (: tݐJd2,oh_19J?؅!ng4?wFs/G\Ȩ(qzhIORY?f[]Au_Nt78P:"$Z1PVSU\~3C?ۡInAr~m5^oOC~ɲ_%/#j>X &d+^_VCv0-dm`֙0@`>uesk`Y!"dsmjmdUm{{QW~#!A*]%`0`qv~4 k`H-2lɭgA1%:Z'&\cMLGl]in:IζgBΠnY[1Ì1@xb d&%#O*;*r}㩙boE3we5z!\IПerG-sNӲa_D#B)jATS{c 9׻IhǺ.Q$-l W 3G^ز2{as/Sx< eK8%Pk^Nڪ7, {):ʷ$A>(g<[>ڤ- L mjr;O2R֜=$-g&ݠzUvG!70.yҫ|jvA-a$x?7F kRR(?5ToXQiC!d4nB. ht[9ɀwf]KmbѷPau\#-1|Q8gE,\ք`RmB!c:Eene Zf4 TZè?1f+tDl^u fR8'^ʹQ'4{IC%]19^[ZJnǯ3q&Vw ZRH1m7]/Q!i[cjl}ԍg$N=Y]QM2]2nTFY(L쯵x n#p\( >;^]OoWv{7~A !]K3jeC$MeH#e,c_/!yk >Q%@!ݑxWBzjej*F|ub#w%zN&gC63ƴBHfFRD_b σy@p{JXB&JgR+>V/$8ԀJWURhY~+}R\gsxO$z*1n[h$4c`uwB^H^7 wXO3"pktڇ8-C"kEiϗw\W$0"NX9AEI;8o9B4JQЇLby8R>Eu ǀ]99}auV72MN0ik)0-@;Lo]WН/]ӕT=H>F:=3+${FG`OFdh'.oP ` [6>,Nho۝aIJ9n^O/$nL \;h1?.Eբg +SyU\S`¤2s~$a,uAyɡ5б}w% romR[塚tDWLCPh O)7́fgQ({1qv՜CzX`p4g U}rɟgB`9;xQtHb%(Zv,P f):+, G?F pw_@Ujh&%\B2.y{)Ts@%ZO*<N \pF#[@+@9'>G6Ѿ](9w47//qk%~(:P}/n7xCVĕU0d=޺Orq= y;-.23tAJ:$wfyZH4&1H1j0.O M{*:PKR*5VTf#h:2\$֪ܝB<%g=&' H4!>KOy_?hb˅|N ͖>d]}?ƾ&Ӡ,bgӉr4-2ꚫhz9N _:v'3%%JU);b{@Z.[ǝ_GSI_iݺlpy⧧/kڶrS*ZSrr{`x4gtdXl)fVWsLz#J-1((ą!|jA!3(W74lOz+L Ba/ Zl*/`)U~G |o~{|J/z6fɀK:蛠Ԟ'Ϫfh˶ejGI<8i=P.K`m)%_U%k˳ :R[qkKdn2yLs y=ߺ|9JBw d'Ίq'Jkq:nzj8Hhn&b' W6%tn,v1p]"uYbduERpt!RWlTv:DK'u(?^nT~V`=j}oeX?ByJR шհw-^Hj[OyY\o0;ng}1^sdlW$46M13D\߷k:{ʏĿ*ފc`s@H^~f>2ĆQxP٥⭟$ҳ@ rw> y7j˘] sמ])q@-+iqO|A퐪 #Sv1-ټ!OrͨB}Lme1^![6h3+=%Frj /ThXlaAH[ŹwkJu$/yşz5q{@ׯ4Il*-(5U^y_\!-1'= {)%HQNH=D ֗䕝./[5d?9T^GY$xd1Z ͠A ǼwXM/6bFIJVU*:WC6Mjܗ5De>əو娶tGj8?AHžtO6w= 7K ic'j9I`|`oFyMC1PXN~וk$%DAS 2E aToGF0o Q?[/ˏdlj~ʑXh)p w#!mgCH~I9hO[ ҏ-c̦rTYRf$H.~8 ()}T&'^pA*VmQCjy_)$ˁ E Cg]aޔ2\6V^Ӗ.$ ˏ2w]X @K6(yOأ)!`N0bX#H >4;w?Jx?N jqXM1DjH"K@ lcq={`-We͏cyŦ^!F,-Ua=ǐiEMݫMr M'!+q]eX(dti'70 lr切L%@88ՠƁ73Ib&?,1|&a!퓷ޢb5= eE"$>T(:y鸣kB<}K9CB;ukU>yQB?|h<`E+PO\!!>o0F>y>B t6,1;8USg|셩~eP1\u6yse8ciE1˦t`3 !,=r9Y9mbfM}f l_^!GGYgBECMLA2q;IP3yD6^7ј(3^?-![L5@YKy'/-~3x%7?ɟz[e:tFOd4"sy9!!9CNT>L"#d%Sj)zm*V_' a, 8qOzJ,)| qua2OP;}ѱO `.Y'Dx~EJӈ@+(]DY Ktf՚4 &vk-I"kdTPEك)@S9K/x0w /՚e˒^iug07q\QK{ۃ([ppK<r(T4PfGMrrBƉ;!vҩRJX {?">#h;kXx5:U穽|wZEͰnי[N|hrW ^ :z﮶Y4RۊGq)-н* c9~G6eO>c'LZ ξ"c9S Tݔy/TfQ=L0rk >\=/;4G (ǖtsńӍa[X@=|Z4 <|mUI<2n/@VS5opyILui)f恓`5ZWUG{7]Yk/V"}Ԃ_dtzLNBO|B\c ;ns\uUrp2Vi'^ɃlmG">'+61t*Y jyY O1:'NI0Ep5?{ٕ^圉f pS(J Ġth:zy*g]Q!)z(Yuߍ'Zes;? g]e@sTXZ=sg~7W^zԌ{"VE%%?}ҽ6M (KgA(sQ% m!~*K1GƷ2lMboLDK1RzCt/q{S:ՠ;^)h }sk`,}jƭ->U6v%Ş%3UPz(lD٫|YݢrV0ƻbvHk}qa$>p^P_:9-UoNM=z@ِ})^z ~ObF^:^M?_>mz 32V\'8L@j+]eGf;ۭN'QKH$&^YP%4Q`q< z]"I&* 5b@ߜq;.$`14ьIe~h&9 6KvlS7ۉwcv oeͥ8%O#3 $!^֣q̏A=aC.K>*Q̷1Z. c#>Wa娑t'@'+8 Q!)n*qM"|mmrUGNIdfH!۫䮂F}=6&l_hdzb ޶h'a$剖|dd|m2;j,$ʻwBfکPgs:eR75# vol̅k3"/*\Fpw Ϳ՚u) ).'ùiN+ڙZZoR{|ޅpvo/X~ϖ$Y:9GMa0ꄻE4Qh`o  ,F~yWYUm<ɹL9 S\ȹ6G-1F'gT3!oyEPE"bo~,x25crzОsvǀFp9.&,qo VnK-zBFzX-2c 13($a| ۱*O1|{"c_C/f,=GA*ş&nMJ녅%bF`hX\XuBJ®ᮉNiuP)k\hRp`.u]*ݸOr#j岵^mY2=J0EZk)2OLNCW[ UӐ%Mgn}dЭʽ*(DΕ ; Zk`*hꁯ[IIj}e;Rbπu6ܸTݗ}.6aiє@#n="3vb+Na;$ZjF[AO iɬ%7-͹˖z i,wޓ0rq5Ɣj-mc*cd f76Z\p]w? !:ោRktgZA%?sy$. 6}1ma)T~1(i72elrh%7k/,Y?pV(}Eq(e '=`]MCE'1qO:VSwpCF>٭nR zWhuX_cڢBG7mV# 84BmyZ9#٪?'"fͫ/qNr5tVϢO'vlOϴo{k7ޣK5IJdo2( !!Bʯt21xB0cV /;"bWU!Qڥs\"˸zDm$W1'JzB)d p@T [ "vT-Io5vB ce:]QQ_\IЙяᛦ\BA(y:݇'X:bRUBA;hKQef1c/bqhEE4=), B' t#υ19o*ekkIDAe68{2|!@9F?K*ɏ0 @aL?[Pi]>,]Y {,:#Ľ#u0MӲHEPѬόcp\bfGq_@w7,5<[lqи?#!nLy+LFvHXr#uhȗrɪU­>|u"|.M\9+>Sn`Fs@sahaP&W d(U~< },5ts^IZANmS7;ؘxk>]SzNR(~I$F^r+j'w6ߒ4l$p^bo.>ͯt9[g} \!9cᨁ)YS۔s١]+ԯZ4|"r_X_,e‹W0 c `>,Q0= ASc,}l(u2j# y*@an.0Қp6d͗!v&QbE#CSF`z)nkhi^혥E~lQmerk8ºg@ bA';N^qxvN^Ҟx=j&ǿs>Zoz+a"S?3ayR׷ ~ho5ꙗH1.!$#}@ʻbWEn0t L4R8oMõpj=tv~ݡK]՚& :i 6OzẁR9lIZE,:^=b.CW#>F\,yqW;5 :)~@*6|ghr:R$L~ǿ$fI^F$BgEݺ%-hSDoZ\=[`v޴/P[3>c'Stf&l6`5~2M1'aǍg^\F#<2U;.f/uUSkGdIql,Y#%Bpإ&9//O0GGlsgme9pޤoYNH>!0=VcaUydd9}xdᘶ|}9+i˾.:Z%\|\Cγh6rRRx+"{Ao9#hUM!l_F $) ;;sX(Xqo "Y;;pE[L=i5G J3~2 Ah(6|1j4dY9QBoh `ۃǒީ(ѡ[9V=L4 /8KS0پ;,EgI6ʏlrMtIV.9N֓S|3 Hf/ގe3f"T? 19b=gmO=b|Ᵹ9}~8~*oϰk&OO1_E 7nA!i+4vCzD9zcow]F?ݣUr M%I˫=A17%`fdjiLDD"4vd9a2$˪XI!xm=l⎆uNzNvO҃0޵7r4MYa몀Th1/KK!VYث.'^v;m]I)jbQD"p3#2\9 #kAGVY[j֍= +9~-2Ѝ"GC&QXhg 71 Vw G1 jB: @ZED~7O. ĕyGȺM: #8+$v| %"*ըB8x#1vmؾ`@^8P$iJ.PxϹM!8>;u 6yuy`%\|#볅"Mɨ2vB_$g@ɦcWq•mMKq&^@.  }k-{vj8<-9}O!cz$>Ձ}95y#h;_X A9'<ջe0ףݮOB@i@K5=3p2ӽ]SYKZEB (G2ô!qoɮ-Rvww?+4޿Obx&f !({`Dбׯ:-*5羶 KMqgՅ}]T Kgl+CiB_)/SVIv]H'@jbV[y&גG6xV_(^!Ճ8gN8(̮l$BdW pTR-۞qSy4z'6'~9 Y m r5,Joҕ{j- ;xӴ FIPUzApK&PKUҞ9l|G@<6L㐉(u ˍ);ύp|@xG[= |:Dʈ0[Z|o$kM; `_AdH{s\ӗʾhrg 1JoطZvەaC @|xS~#Ufb '#%9: UP WI5aז1{CR>q9eRҙMGb(H(Q!7yvL']G8Tm<<]Nq!}f'<¯{]Ӂh{&gE˻J3p:ko%MH8{S]ȤJ=a{6I}>p$Y;b w @h\W^a:yLD|k L|#- ]*dԛ :x.bVbv^-md~םBƗUe%t}GtuECnaEI0'mz8Bړ#8HTdkvߢT=n`LU{<; ^ 4Iw& Z5۳Ҏo#vMpk]:M6.N+0y/xӿMnSRHުncܐW fTO4O3Z 4\Duu{)DgX Md~ݐL)*AENV%j7D/=K56‡/,I,(.-օ |.s>߾j {oqٴMSX D;qi|vk?3W&{B-@0MgkC`rhY Aؕ|JDԴ}{v8^8 a{7F*1B -wX\Fq|KXU4mEۦ2㔥JU_>'aC$=`+D=tH˙S&̾u`]"DgSK-$delWgG3 'sl)_pUׇM%p SCPᇇ#lG3#i>] ha&榕+Gj [b"LF7)Tj)Ѯ&`XAptM^ב~vkY]o[q@1ў&Dxy5F*}nK"24*:٘`ȴ ˖Ί{B/w+A)j"$Kf\-npV;hY}OJ&q:&FE$KWwV'e1,kk%MT6<F܉|=~X\S鈉L2;g2#OnM3?]Wjs7zWԐ2C60L sQEwp'^:`3>h4PU'>r_֬Iq%AW~ xwdr>@Uj%6Lxm`O%ڰDRʐDnI2V-s5U2K9H3geŵ/WٵYԧt 28vYE}ax1Pvcm(_GuE6cWtZUfK{vVj+'^iXo-’O5+DoԚJLg|Ꝗ㝺Bf_Z@??eo!r,m}d޵)@a梟9PEum3OV6a񏢨,1jqrv?̬h+ # ^2S*e, RG) .iFBmFio ɔGEu k7/6f]WxDp[ms'~NZd"JbTp$(GrbPvp0|@)~ ch85[.r=g2_(3a" wДhɍ 6: L6hej%a /]_w.-ϙ(3J-t(i*zޓ0̏%pjڳqaacXqL3jY^S(ZTvK!iM99grZ.a *{z+u.g[YOAU]O݈강sI(iNlJy@н[Z`5 IFV0=sApRF;\ ԟ%E{;I#msx^Ww^Cb0([/o*%CNC8;Komk6ٚN(>R-V'e8;GjPG>t5OwYHۙa؊xSL^\G$E7/}Ri4ݴ!+9ĻC;B$3Z-' `iiQ 4fZ.Vwq+u̺\\e !1q1v7;aqG.•V&(*cTIM^ OFL--MGbĀou WlH$PDwz7iJ>`SfHh&%k%7Yf<# ~CR:n\*Ţƙg [y(H, L+H_#ũ/Ɔlч1{Y\+_ EsUM_MY\6%@4e|xt\mpj&BrƾȗVgwrN$*gofx\ yJAk] P3fȇQ|,B뮮3B7b]cU4!ܡf)UK6Zar|'0k8r"gy0 y*,y7셰!zhH-3`i2zZG[.;lLn׺&L4 ;aVf|x}%nv^N:ʑ@@0^WQnM8D#/m探߾=:2򃃼q-$))^*jU,kFSʹt@l'qG I*%F̢bp/ѴHc̷6,q7SyL譽b on^ 2+2T{nJ`z6\!RZc- g誄X6Kmצ+N1mqfI wBCՎ]HpcE>Ot.i 0rj$@{z4cF,ݶtn*j@3Hi\S/-d-ba%sX0>8tUksuAUD)51bűr(0azH*p \8!1 t웃a0SEyeAث:}e:h7U6cD̀) Nzu(F8p5Osc$=m몍b;߃ӇC$}{q P;IXRP?U 7SwIte9o+AVr")A-2}(Ey!供ZJK]ܽFrEӆ}^MĚF ^ںmhgR[uGbLل *wZ}^0kannhz}[f"`}?_iapªoX1ׅJdM./JPpM(q5C蟘mEry0hTl{Fq1UV1?$`g s][ Ne( ^K8$JwtA0?zH*bqz<^)&'ہb3tsLيIT xC'00(..,'4F>cT>Mq6.I:c7Nʉ|jLtSO&D^q], kMQ>'uc ξ1NJqBSF#Ʀd:&Qrwsmݙ3'\i?l/k῵ST}ɯݎYXvQYǶsH.0p{K[0<e -tM㫓bVn- \_ CjԿ0\i?'Ԙo 1 B%KCivm ·8#UӅ5VȌ zYg7)nyGfy~L6yiimlH\=W j`G>w䫞^|/}MO`"%՘OgUp6U䇄,~P)Ӎť0CL+_E>6Xa[;5)xj'g4L&9ѣ;R)XW j#nܭZ7 7 {ռOu)5( kcӄBhn d}4+st6(R{;^r$(yɲ֪2':@S`;c a:L~ XU>x qÕaw>׵K t.Nz5XCrlFk FnwL\}/u)힭Ĵ#:TT}$tBEv\y5ìY3F|M__cbԘ$G?{MsrA ґԼΉ=뙂CZrݟzǒ:$୻S@3l>.V !TAٶW5\gMyzY#΄&PN P.bɢ?n,'S&qo.! (D.w1崯tB|a@MOm OVN17'  ̫'/_]wG]M~Hqoai?'9PՎ0?u'vCE'^)X?]v])uw2dc"KASyhXapu Nȧ?RMiiwä>OWHh0TZM0G@H#:ԃŽ* ' #WCP1% K53暦iEZڭT'lH~uÒޅM:ݧnr Q@&=F;eGqkW=_FmlvmKVM}BZ|N_uӟɨs::u6WhFON^]Ń9̎hBrb`3@pt$kHJ4^@o%H*WXӋDm374wYAb[ҲYWx@$D7cp?zo݃*M{CZPKMЀPT 9 $l(+/qypGP8>.0qN))|uJ LM?~%o]ˌ7Y uLd\ ˞ʳ^$B_eS?[Xc:i v6_3r/bp$n;&݆nlUzԅtvmeA#齤ۓeI/8  7 w9ewo} KBY#Wze>܉w+ a1^֧?nuI"ŃskwD Yq/ދ|&> "dtd4=A %: {a][42D)ӑR 7k ׼Hr9c;B:ΌR^6sH8Bu8\a(%Toxq홏r-|+i!p7 NhyLéG&y{d$L[{,򢴙}X&tN;ZT|ƲNT\II\* MvP\#sק<mUf~nJ r48Bg6hN3I[:{ˉ)]\ ]b4D@"Y;qm9B3r[>7ә`Uz "_G8@ۿZ_o,ۏnY։jr9Օ{A7'c+6a3*o >:N嶹 H߉tv wM^Ic2Pp^}g*,X u J5GX;O}'") wAt[k~S 06Bj RJbc!h=sE?3IkfVbTrϠi (v6tV!7E֝~l=;LI(ס(tڦQ-L]' +/Rpar~v25qV1X|Zą;bM&](t㜛~/`X{٘PW5C TWgTR7 ;SA _CECgιәrI$- j+@_˚!K 2LMopuтҦ-cTJ4=EDkMՒT>M$YZQ\-c"M̅W1p;2J i mMVːHjyaSp!"ZNsU%Ȥ{:GWOz Pי.%[Y1ؒ54`w'TO$љhS9.6ZjY*ǔgO>oY婮*;1{7%:hh$$.ʢUlٸoԲiBOΞ" tcJ C:80)҉HT2:Y깅YMm_ۺt لlE@դ|'5䜡mis- M.' {w9G."DQHw*n[?**H?Jip}TV qg5 W#<揥rq zwL;09t5BWwo^RN{/\s>GJ883LxעS%zC%+ 65RFV+`6o <-%шᵕSJ#1LeT'=2I +j&ðs`ԛ9vHn h~O`$zFg} Ԛ~pd 3D9@o/@ ~(ế1;"ge|^ıE2kR^,Qu_͒6p~ D0MEvF?Fbu9'ppPnv=a  ,9,hH#QܶxN%w.QJe糟Jh'j,^ynE繖hBXLGJ%OA\rT 2qlQ@<8Ƚc[߈32J{ay#P T vp9c,D;/9QVEqx$~7XEtFn-4l_,r@yjc 6Sz$BIV{ xX67\!-Fy[AJѴֹ{:So~\@Z$V#Hb89"uBN5R<+8K瑔|W,TuG$ 5GL YKh &^?׏M(讇5?7'hƞTJ v;ΘopǑ*%ȫ' ׄ*=_<99#Q'/<ٌ!ϥ ,,j^l g "+ s|) _N 2,CZ M@3+$Ev.7TR}?ƚY~1ōG՜3>b(X;rS!}! MPғnFpւ㝜Hmo-ծ3¦~s|>7h.RԆi[8UW/-Tf!D҃`iXOseÑ`PeuɇW6!-޾~ϒr4tu{ONŶs5b2s\ԫC>O挷+?.bD*^t:$Dҩ_>7A `[EAߐ{"uuQ-8MvKQ*rူDZWFhK'đc7`vc0XnZ$Ϟp= I" ; ԉŜ.{2rr '*leNPzYi+0v U)㶸 B{ &(K _gPW{ ŒN,L3 C?Hӏl!kBp:N#eӱHIlCxs;-6d=g4  )4HvCU_5bnݍd;)3%Uy^M¯|ͧSuph4bT 31T,\AДn3MtҙW|4W}YSxRgFeƝSNSP;I 䡈NAA5Q.Bn"*3-t*1=ߵFݬ?WͬR8MZo9$ׅSôHbɹ񆩚櫦$XdoRHOyH󓃐+F@uK.Ex K/7NQI ()]x GOgՀpZH) U 3;e'E3+`.ylYŵ~g>AKjfF$r@:6$bC Om{:OLё31]t( #}mM B!dp(DWn{ ʸ#26.x+Ofw <.}xyAO7%aDl|ndDD#1ҍ0G 8U׬K单޲]DtNzj4Ғz`t>{ˈLrH&u:|JZ|#8re'FX~ (-&r=GgMPp0CĵDZF$=b7ة)[e-]5g!-2O_XCfG*{,3O'r7Plc@ jsԣPlDbvݧH.Nq :(sg0TJÆĂ[FN6 8̙(\Iz6BDrU S0!bV~mZ *4j_uxgT6͒8Gqsg&|M|Og<Aj$?bs Lsc$L"RXqڏv R90e x:)Il,janW+5„G|D S 7'~Mn mgq|96|nZ~T  #3Uڇn`uk 7{|h,/o1;}`9MH&ya%99Yt(tS9"Fԥ? tf-2?)KXVu Z/+zJ)u]i!.:nΩBJ\X):լh ۞!tȣ 0ЇXEξɪInK13C]UG0n~ ?x}}!U3zoN9(5iϱ18G>۳>,COvoq,ɫӑT '5l6w֡6dfXub2d^rz8 f, b1[ x5N+-_˝s<>HUˆôr1$ )nէXrc;X,4&^0[dƆ~z"U@ʹLPn`VU&=\HQΤ~qh7%^/ 5BڕGlg巺LH=UceQ$(pǯ?zX𳊅Oj佣FA1s2cAظBCᬡbZ3OL uC'Rsv uHNCΚLDPt'FT:Sdfp$ GqA cţAf'baK_ܾ{gV]A3KE{SD XXnLxS"srԑlKl|]KMxm\;jm{8qy~A)+o+9ϵэ?]Do.y9koɗMWgءs p'"B<*#~VJJfsI J4PIV[#U?z(-PiF?qQwI#fĻ8(¾)fDCwuDƉ56!<\ -&8·+qz$=9( u4JaxUyHK)O0о)|(iU HĮqu.L7X }d/cO ƪ t.1S2q %7LN1iNs2¬%Ƕ!eV;;;74Gc/vF-Q0[1iX,6_d>ф8rI b'WLk>1fu7<<|{c㹶Xm%ZSXņmlt(Ĕ .4@l̰\4X4g#ql K>o[ݦ73^:*Q޺a]sNZ矋Ng2ݮ=Ŀz,+ڀ'. \L$^W#7MZ0Eyv, {K qŅo7,#a"й8W"FgK恋j#HRQ:#AIiM!ZZZ_$뭈[ˑ#G.@iJ"i >Jd(0WYNKM g-hx&SP\zoiImh3h+ZCs%T= IB/bǦ`x: * E!lH{W+@tl6D#< :q EFM͒0ቃ;͖1O* f)~ /-4l6 ]dM1̶ {gݩd?N )Vrxנ&Q-?L9EAA5S>R6>{JY~TM[ r29,z@sk/SWe8=O+02P)ξPP}'Hg2yi2x{Hi dIn |*nZ]=wfuWjǚEƃ",tfq@ oAR7焮yN2[y׷·86r V:Kp+UݒyMDpWTr^7[ ;Г~ļ'#rn/'0Ȋ ɷe=E "*-:{0+$9&r1Kҿ"N` M|Q(:Q]0|t*~"%x!ұmPe,pGT3ܲ%h ÓL:"UC|PڮI\OM #8 əNF+P*ɔw_G x86TaKG䃔CiSɊP$Bq/s GFbgcvw{><>:4/[qRSEwlF$*J(BN lxy䤴d4Ӝ}oh 뇌I]3Nu<È1&"z%rK9?ʬEU?Y~{3! ۓ2{WCBO dz9HK 1C_]W]+R?5ς$AkȔw6 搯GboDE Opd#/@׶çԹ"Am_1g u: %qݞLYq[ pL #h z5YF2uF_g)W>|̥;XPM[觷2:,M]w 3Ca,zG04 "ԃ@EV v$Lh6ǿ ,)ڜi4OªfE%o {4+c\;@xjӵNp@p#NmVN.t0Ml lh{Y?|xPNb/]:=;kyT xcu`oJab2YЕ#YCxHZ6ʥC%:zЗ 6lIHq[ u7up?Sl-mٸ6$m;o }e8M="":u&إ6D QƐaI;UCԂy2|(RxP6OчX~;)~}a;\yZ'K}^U.x)OTrMjHH ds~R<LJU0B$]fĬrrTՒѦ]. ޱIiO7ucui IRL8|dPGbVСcܙ|ܹ^wL;ݵܛ;Up2L@|d(q9J^Jf0P@>6|כŞ{$Tjܾu,_  tjg@zwE~C|çC0P-\VW3amC!Y@"*6`KܞpXӬhSAK5 Ωf.fJ_[3~132)]\uP؈qy7 `<‹Dꠏ Un<*Dd btCEȹ0cԍ_mA>((8Y;LPbm*}tzLCr%Xba\$46M@V>yYNSvښJe+}D'N#"np\R TQ_4)~mn@>]APyoW<aZDPϔn?%|s{'fIޛy_x ^ 2%ʊVvt,:-fΕ?:l4ck KJ+`3D.'sKK1v*Ť_\ၷCO &oeע1N''9C [?1JTA# 84KIgQXsύT5͸0SaYJZZ=lgl_-V[ry0C6h *.owUE.B}R|CH"uWEq]7uu.Ok zBظ`Jz|2^'@q,ᬂ ܪߙ\5H!VDqq3.0F`.5bZjooCyܺ(a`.D3rҥ~@]^GsOC!C^*f7;}xHcf5%i,R֮B;[> ?Gr?g]xGv*td&wzr oA~ :tw^JՄ:kMEciէݳW=`B$$,-Þo0]ACSn4h/`F9>8¢Tqfrg;2`( @+mi=uH#o쓶>pz*MHT x7֛+:~"^: eP(#œm8z̙>! VAo{ =:[Pe̤ĴaSKb;Yj7sRxY|9;ՈPN@yW`[`5iMy {-e@KVC[TB,oԋY_S|W=#'~)$ COIՅ5E1 %W(-Lij@N#x$~x/RkNEHxEKʫ||mEy(`zF- G9!V{bz-t9ZDn O$d'kؼpkh !Aq%Aצ [^mZb=RMf$MYهW*eQL00v ;1$. DЬYFxîm 쁘OI[|5;9ٶ٫4W16z 2**~5pf*{xIDn.bA/CC//V_{ ~!sL,鱡[[7y\Ou P?]i9,)Dհ[{:7i1iԊ:)>bY%Ot9Ǣ;>UFTv>yS6*7e'cW9:㮴r!Vpu 6QwӆQXA7C:f[ =x8=qǕ͛s&btAiQ̺V}9'I?6]h.7U&$jvUmcEXA쫹G4ڨ عv93UП|)kAm讶r)6-'㥠c~aYGa)OK;SDw;Pun* >dn>r6\ Gri^7!يy&.SGZ| ŴHjxHvlsrGh,|@ۯ(3 Ǒ /kU'A5C& {DșÎYX{KڨT v,o"dZz.@ȦPU€A2xI„wduMد {/DzL3Zg ,p%g3VߟPP *Ъ̦ee+>v2Y>0⇜iCvsIw!:'7ȱAZ\4\rg!,p vq"PЈ .fI?&P 2Ȼ]ozǁ3Gaw\"NcX 2_g2&R"˜|fJU ^ڦl-i(GƼTػLTGLA_UhӹKYAAv>EdLW9iS斁)ׂdzGK\Q\[ې+*gxN,S7.Q` $r|ʶ/_LvM]{IYhw|8Im&LM|)Z֩pڎ4 "p1Y| +GΡǦ^cڏE/{0L`sbx0-$QQv-B ^ c>Dg|P):lHLzf4l,C"S"ٸA*v:a_myT9z#y+ET٣Gwt\@?PRV؋М-&Ģ4i  "B)궨>UUC̍5B lr\_n(^xO~m~Ev冱I4+fC%gQ;I $a,uSL0Eрs1#~դ>Cj: atg~=Wώ5@3ZDaZƆ6D֩k&7er|ﺋuW\EXPP1|%|"z]Q)hB 2Ef01\](dHLzTiƟ[y| {xJ]ݸ_kYEY-i"!A?U5jh&eZC3qv&BLXԨd7ͺ="M-SylU5O/MagJ'e:QCO Syf-.)uL&BwS{e6L ieGe>S1 ^4PLִByuh kn H(dQj,m62*b% [lמz 9X;C4qIJNktC;'&9ڼɅ.LߝG3K!U {g~oqdٷ|eBI<1fQNkh e+R9GBVdN?Vј C=i_5Cʤe ̭s?O7(\i*$G!eC̅;W biek촘cV|D?a+ޓ ] N'WU^*e L1I~Vs=uw9IOo|jb.dӏ e#Z2#‰HPd}ύ[m(Q5+Gwcxxwp Qė/M.9o,Ê"gNRtM&a4SCYe/v@JC(Ge[ͭzY6ٵ+ ?if0uzCVEpXB9AoZ2*hBfSW/#V8Vܦؿrur_FqDžpiLS G>92KrƢn0dHO?+}q%@+/lKy\}.6v&u P'$9ʂ]uu_2<9kvb2$c=Cse,U\r[MU >pvc4]| xQͲ& uRƬ\YN"(zF'|ܓZԛ? Ly^Cz}>GwȋɏߥO\H 3#f]e; 3TY%D\WViH.*x}| xsd5 !>nqp voġv҂ש*WLwe`՗P5L>n4>H՜sgt4ӱDMT,|I 8 f`^DG69w|.UҪL)a!L`UȆ{{˨'ZR)vj=G*ur-u9liA>MZc{꾷Q" Jo"mIuۆpkڄr=l_^sbvp`g6.W=EE3M!n{#8Xu TƸ3;3 |@EU~`EkgH U7Y8E")-yo PbPl{o'4Fokv(ܾzҀ)R uX]s~J?/#'~^{dmK Zalo<.$N )f#Lg!9øL/H@o075i'vIj`q$_8䮝SNWrWʈ"Fw9(4 y՚Y ?~ސKy Yܶp7^׶c0NM#-sH-8GrkG#~AjjKN9ŗW3"Oza= ۧI46Nh#{cKKn&"5X{)9:OO-2U]. )ϧSV3Fb,j&kPRr%[?9U`k;7n (_7yO/5 ݔ͊cj}ʝ <@:%^ˉ:&7\ѧ%eZIs ~[V o \{2 WZ2VoHNڒIW c'OjV/KScZg n]*6a茧\`_נּ{0W39!H,ٮB!ڝRHhK lkf<<7Nw8Tm;rt }dsP#x}ZF^?ZYfIW"ga&RUkG qMoX()rGEvt]amM3{b Vw؏;CGalҁJ]1KI%ön1\&K+x\b* @QumȅY-GMs I B_%׏5]Ff~G$kn#f{)>W8{4Oϛ u0ua&-] DhHŬ$U.(ԨܦcGiZY]ٻzs]3WsQL:PS2 2,d44}X$~PZhSS, I =3-UQ'!~Ɂx!F"+)dDѓD5ǥQ;jp﫧E< +WwJ9H"/]`Ŕj񽐣Hv5{?:*H0l uQp/aM;U[}Pa0&2^/mJWuZ[ ܲ;α5greկX׀%T AJ㒃_݂&^)ޔ>5j;ޱS)\Ub7%BPvz.ybK߭\g]&LE׳&jA:1 v4E}j~{o͸ʶt)XAUaE N˄ wd0m;jRQ7(hl0K?)n^q^d凸9Eysjz`KH5r/GJ1WN۷X.b. ,Vʯn.wmaexU~^KGhXbJk^j$ZsBij )f6I'ťdR5nTʷew>@Zke'!N]bPAc(3]/Vؘݘ[:=sGزxĚ\-{cobxN ^%=^.=ϸG*cP;#K#,Jx_~kBOP(pGB'&'~Xĉ|hLzNY)`CBNS5 LBq54֧7W!FNUk@Ӎ9=XF?;HZ Xήߧ&D]:{,iR "&A? r@ TH_ WBڼRez^Z^/77r6cL6p͝LI4͆NV<ߨ;h7hn|S@ʴxzq: 2Z8nPf ঍/D 4S3Dr,qWCxd~ a*v^8DЕıw#d7ɝO`ŇnSD%Y?\ne"̫"OB$H#ax@ցf.du@Z, X픑%^}mz4X2c<"mCWS*N4J:*b,Ծ&2[p`v[MWmTQiI:%ZI%7t^8F[N~4(oSk%Luv(Ԟq%Y^ $nkɮL A < :J"AWz&=B@CR[Qhw@#3Bo"(>2`U]Ge")ziqe`@ bp' 6U!|̗Ϡ'$ ,8Wɨѹ0l 7 HVVTRIQ G&KJ"koָV_Ca~P[s bwߵB9z JIJmM N@LNv_κ%-WI!z(kԯ ٲs-j)̪ZE9bC9qg{oR߫G6D5e3~sLo/ri^t=g206w[Mm2QsV SNl67$ciPhӮ(v=XKcwQb nlp.qK un^-fT#Q6ň > n6|Hry}Mí"'|jT;R>i;0Dޥm/9fBS{<<RDLGՑ?+WY4mE;D}ruc`Xy68Rtl- >m~g =,B; f_ vBhWEn4.DբZLKͥh7${-6b뛕 )UASL_]h7saI8eا?aRYF3I2ْꬱf!Ɏ5'J(yؠkSǶβ&V 3|!Ȕnr.Gp >BbB74䡻N*m dh%/⪘rA|LG#E0))e)SԒUOqۖϔ<4<EYz#Morۂ«UFٴnH }K,|iuб ?D&^;I4*2 *3RMBRGu[NϩIh3-Kz$8,dlTK9ǬW}dBz(KL ]n\n kv29!Zݪ^p)Wig.4XWH G}?%XZg͵ڛlG>ۿ:hCc`*5uZ(Df0liXֳs$%ۃZߞv1v HOϸbL`'t= tZLAz;:τmY%^`"-6qfdDx ^Ky:aq&TQvԳ -o!65h \vvmv$m.SbEzBPz4E )SO%U(bgUwHE 3żgEy"* El tHFqy6_RwAܹrT; U/FDU_K`JN+5)GӴ5%s,C2ؕ(QMcTR@b !:Q$̎w5m]* @OT~*XjyC9ڲFǦ7}$0ȡC'"b·(QQ7"}4뎆ՠ ol QCe؇{f U74<"Mm*$cĆ0BZ^H}FE3umb.I㦴`Hof~|| 7$ОsK"?‰KrI^­Pp _%iYHnL_:B$.@ iDVl.^6lJjldw<5бY ~1mo/Yi?.O#yy)lz8~}Ŷ30[D>Xl1jw؟u%'@ITVrU(uħVQL?4ª(TؼJbkA6R`uܴ]ʔe2څ)eGvW$DH?:U"]Zcr˝}vnc@n6ü|X1xRhOD@3T9pOrP49A1P_plCali.t=W9]+}W{s\U ;R nflsv1vKl^BTWQ:Iobj:,lȵزyOCp+(3Rȗ1V7$;h;Y1P /brQ׸M1s)SN< юXeot؏ϣIEX#"ptKzX${, B{!_jyOlJ(1k{.*~}qi+M<JN %U.b*g56+QR@n_E.(8J"c6J)Dx]nu!}H"DV&s pE\W箠ӴTUT9<92AN4'ҠJ MtkJre Ev3zW,," ?!:] ]nvnru1L>9T+[W?;=;)ec [|I;@aw2XirPn˥Mp .'͍*|Ǧ~bYGhx3ܝD[Og 5%űY`Dtg綳*ksgv\,$NW`6msТwS\K +܎MYDإtt49KD1"6i[y5i`QB)bT &SE5DeNۯkɄr^+K <1^ P1@+;[(!si@:hub֪<˿9 ;[5i{l c9]IﲠXt]DZTg,i=b*bֲ-k&VP4})r]W  ^-ds~\si- X{_#^mЋZbvDv*IT2 *:g~}'q<=$oIݳP- #v s켼&j ##/N)}2Yls֬ڏN&sL_oR"Ph$wAty6E_0ٽ uT J{]G԰#XPюQT&;%Z: -R#=[cl2`9N~^5ᰠJ H֫o DL QOfs.DޥѳbQT="骓FzczA.=^t҈]N3k7VMBt=ٔy-ToV+t\wsze*.|VGs9HŦ'w2v߅SlV g2†3pjs0HcF;W=Z/ b9 Ir+rV-W ^`w9X8$ш.3Ԉ7wVN<ttSrG.D[PA QLA̐y@z>oK26Ow\_ߛ` ȝ”t]% ^l'N%fo7yf=[ hz"M .ntи7G:هÅ0 >[b9* Aӽ]uaɎlEߣ8 (bRFE##'iALٓ0r]E|FyÒ27ވd?3触 &_Gޙp?8 U`sdZ͇urk24M !W4#6&.S{;nX9^Z5L Oju͖Z ǜr_ZD_08Z aJ%Gwfqhp`e|h5jeQ6$xd: ;l`Ʋln O*k[ih:-4c.b6sCkBٍ0nV(D~Y.91\ 3=C\}2LuUkv6,קRD,=u3ſ:kR0P'?AaXdDd͐m { (ɘM 9{z]e~tE/p-s}SR 6ppi._!iTOG2і$ Ǽ3p`(U=]rMil*LuFP:A).p3!CdHFBK|oȳڇief- ,)OPI 䐅¹* h 㐅'Z&䜗LFU}#r^18~Ŗj^brI@J,@:gġ<ɲJcxX<+z,x^oua~aq!oSqVף΋P)R&d u^D|.ͦ7FaEM`e9Kv6y<ބ%UrE}k`^=+>hkLhq!U-G-֥K_{ǀu>0F0Kޅ[o7x gaԚ {/R@EQ9,Dcgf 0*y}i*M&ڋX֌V.]ޅYOs>'(ͪQXݺIu4Eb軎4-X%ѭ:{pJHhРIǟGhKBjj62ŊBؐ R#ǫ6R$F!& zErm$ȃ 򩮄qʚyEJ 䉀usMyQvʨWxZ#5Eqr4:FAld:K(>Vm4TUEENhy:s!y.Sۏ%#ꮌͫ[{@c"hVQwwO~%2Jv&_}%ӘbZVk[(JW7SSʧu_b$ŸƎ}j/`,KXGZV_Z567>EsMiwQ1,껼A\\%0pw!aq+BzB( um},v}Ruis37  ,D?d+:Ѫyb>x|`%`Q%]3\.v-vxe巭zκ0v,v vof ϥE*%_v:MXR׋țLꇿο m!%ceE;ZLާSaAe1~[c>T:KaϺ}ǣ_k ߮!]x ǶNjZ.nWh4>xPx(XT y@G kD.|X 2Nƨ! ,:ԥ/,VM@?lNQtT+1BǨwڏg߄2£>Ǝ1:oioL5H e4"u:!SuYHEߡj!'ikzᓎd6Wr#^*Q?[6W.I|E60n{#vy;ٹ'cnd6q̠suDM Cm8 ݏdg>\#D(c:Y@}kR|3[3!Θx N ȫ*_LAy'>/y݉o{OOCZy-()z靂0i[T}8XlzZ,bEklrZG{DktO^dH!kרQB}ηq!N~t.̂i4Q#0n]"4t 0tmlxv̐~|F;(aBje]|eu4vUr z3a5 8Ft%y$DO04XCSH pXnѻ84F2mK&5k=\Mˆv cYA`f"Q8g? e[M0V͗UAHCF/,OO PgZJk0K[qAsL 0%.6@hm] !A}Pʩ߂Y`?ۺa(ZʇЩ~ݭKwYܿ.5dPE<6STKEI*2W1l>*itDžI|Oji0-&^͓ABxLHr14s ѣ^UXbw\# ᣨOa#xW}alP4손],DqKdм:+EO"~oH=+g& NHtMv?BGс>3LcO'Fԩh]-AJ)]ݞnylykԖQVJQK0zP)# GJ!Dͱ)ζ̷=M}.xtc zF[+ui"d\VT9[` xerI6B!|[*';d#R~*5yǎP٠<̚[lqdZu銤 T]m MHu`?Q v~c:>ϐX?M'ꙋ mMsI7/ r* @>㲾i򘒚n1)$")buCxxV7SnArd@6=3Fq҃;;[Lʭ{<ҔVWKrmo,yBHRճr0Ab9}XiIOѨ A?ɽU@OH?T-7KGRZbP NCwK}Ӌ v Bw%RD},AhHTCY I:7v2!$²H+74}7ada'& oߥPCj25I-#l隼`jS6|d,C+ŘN^92L?1 gtw6{V]I,*-)m :4h5 E~t\qUD[W]n=j2c]=:T9He 6MV Ԝ\  Ȼm@ p3VQk@L?-ܹjN97"; s.酐]V,%FNn&{)GqicJ]8eQ=w FOb;nձ,lgmAa⵬s2ӿ."L0$mQI'JG? {@6j4lp/0^!(>ø-ĵ"#3=x)$|Ƽm1~Qg]1Yp|gXV\r'X縿 |׶,Cp _yq4< >YX$nLG"dt~: x~#9ܗڑ>tUh6C;P808/pA8fip?=H &H|i$G _LVi?{Uj_14|bgaO+\<>j5m3*Aԋl^$#?Fl\@9Ԋ߰>vVsKCE݌8WDt( TMH6H|r@PrE4_[Gz?ӽ#9z]\}&{Urmh =XR]1f cbVl_?8GW`|Uv]T^G]tk&CD4;^cҗe^V7l-nn6r.#* 앞Sl$ AϘ67e.hz/A4}DfUI9K{ˮm;m6W+{88Y~or(Hk/T3 f>+.N6LV_(,vnL+  N[bymRx!tn'Bkb:դDi ԤK?mGEzJhZnYw-0@b7sPPLO 2Tq@ᥡ by$I{'Y EQ"3ޡO{` 깧\b4=-fg鑧'2җՆG-="P/$-62Up^#ȗ[0ZmfGFtއf@?M{N@> 9}pM$}qAm4xtad7]ැo$tݏo2XJzRitOgmU93*}&E RΊpаSu:x8<>Q1o| ,e#3xŘwaw_>{~ 4DDdW|ªP܌ z*ae/%*FO #ޛ`.ꊩ>0jMw1ze[)HT.x#Z;QK^uV 9qdG1VP=R|#da,R\׊0W}xj+ P!/+<}&k-k_*]Tewг&4(Y纐7+{aE<e3kpWz:0iPNJ*͍JWePMc Pg}y!Q0&Db4~[:Wb9aBCl+_T Ђs6)=z{ kGn(!;gwOtaeJj6Blf>z!5df! 3z""nes bT2@y8& t ޵#mq?$yWBm~z֠9tRC^wIap^z%qaJUz[Wt X'UY•mʞc=0kgud 7DpBGW,5fXmeM&O"A'6>)w0ORev`GR */n~-Lv^S[I~_PՈݛg,.lOЧ7O9z†AX@w+V~)S] oܘƑ$d3 Ct `faE0#:"ٰGt;<h6ae9с=~?tqP~,ԽC*P劓qr-Ƀ>E:)Dl8M%GJ)ۘyUBџkF9pj?o.՘Y}}Mo@mt_xp+0:Qb nA9zy©)EuUK`aN.:LDb QU"10N_E+ζ2g$#3KHvTKDe RĪ6߰f=}Â8umt #QqNL?a3l0b׾q%F/(7~BP Q;h1 BE>8 C|7 )E!"(xEƌ͚s0iy5v|J3Vۧ-nJ@ R 6 G txI%M"|zS֯Xd yb@ 5%%tTГAxdU~^mjiM=EJӰ QdrX5*ߘpLf#s=)yV)Ii߽8…>XD۫$)d}Aa $̉7gt9mSBfړ L+sl2SetǧQ8B!E)UV1 B7Ϯ  5 A`-1 {ҵtJ8aqv[{^6䈊_3`. ]%ӀK 68ƽd]`"J1qA9TT) UOޠ-twT\Z5~}tp펳1c"Z 'M*8~)v55wa ;`χO/1X5 ?lnE e@k_4 ~J4;'Sb`s OB".Bd"e7SqBd