tcmu-runner-1.5.4-150400.3.3.1<>,ddWp9|auD\$a2C|K5 Y=cw #M=E(Lأɵk[<"$L;>֝-Γ"<ZC/Chx1P %ШϠ .:P||Xiz sr{'P>t>d.v sPyykNszyP 0p}.*fp"ɦI@C3TِV:pAyͫ?0R7/[>F`?`d ! \  GMUz  D   4  $t<dh(.889:>=W>W?W@WFW&GW@HWIWXWYX\X<]X^Yb[c[d\/e\4f\7l\9u\Lv\w^x^y_Lz_____Ctcmu-runner1.5.4150400.3.3.1A userspace daemon that handles the LIO TCM-User backstoreLIO is the SCSI target in the Linux kernel. It is entirely kernel code, and allows exported SCSI logical units (LUNs) to be backed by regular files or block devices. But, if we want to get fancier with the capabilities of the device we're emulating, the kernel is not necessarily the right place. While there are userspace libraries for compression, encryption, and clustered storage solutions like Ceph or Gluster, these are not accessible from the kernel. The TCMU userspace-passthrough backstore allows a userspace process to handle requests to a LUN. But since the kernel-user interface that TCMU provides must be fast and flexible, it is complex enough that we'd like to avoid each userspace handler having to write boilerplate code. tcmu-runner handles the messy details of the TCMU interface -- UIO, netlink, pthreads, and DBus -- and exports a more friendly C plugin module API. Modules using this API are called "TCMU handlers". Handler authors can write code just to handle the SCSI commands as desired, and can also link with whatever userspace libraries they like.ddWibs-centriq-3SUSE Linux Enterprise 15SUSE LLC Apache-2.0https://www.suse.com/System/Managementhttps://github.com/open-iscsi/tcmu-runnerlinuxaarch64 if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in tcmu-runner.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi/sbin/ldconfig if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in tcmu-runner.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable tcmu-runner.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop tcmu-runner.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in tcmu-runner.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart tcmu-runner.service ) || : fi fi /sbin/ldconfig p/-,;ggAA큤A큤큤AAA큤A큤A큤ddVddV`T`TddV`TddV`TddVddVddVddVddV`TddW`TddW`T`T`T10340e4dfe0862cb32ad085ed49b1cf639968085211db192a98646ec44a2a66c139d47db37406f46fdb854cf70f5a0f2649541bdc3774fdec2bad65967c012d4cc262749c5425de5f4a0006f262d38c455873f6c7e84645d55aeb3b95baffb189e335fd2d718e84e657a06b31030ddc77e0312adc499b7e91f4999276100394a57afeff6fefa0a01036d2fc77508dedbb9837c7d212f82932f424a69bc9b4933c80957ca974932b558b61c634bc0711b70ea99982630a6b838f335c0c473cff2d8919ad7240c7d4cfca9789b68cf11c6e7fe581fba09505e22c168f496bdff8ab656065b3a71664563d54feaab6e62e46633ac0b33c5b0727bea4bbc740fb0226dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a87540db2f3b8debc29c2871db039998d77b4359d9000069fd3949920b73676ca22fa6c24b3124d010de30491631fbc3b25587001b93377847068aa08a2ba3efbservicerootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottcmu-runner-1.5.4-150400.3.3.1.src.rpmconfig(tcmu-runner)tcmu-runnertcmu-runner(aarch-64) @@@@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/shconfig(tcmu-runner)ld-linux-aarch64.so.1()(64bit)ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.17)(64bit)libgio-2.0.so.0()(64bit)libglib-2.0.so.0()(64bit)libgobject-2.0.so.0()(64bit)libkmod.so.2()(64bit)libkmod.so.2(LIBKMOD_5)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.17)(64bit)libtcmalloc.so.4()(64bit)libtcmu.so.2()(64bit)libtcmu2libz.so.1()(64bit)logrotaterpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)systemdsystemdsystemdsystemd1.5.4-150400.3.3.11.5.43.0.4-14.6.0-14.0-15.2-14.14.3db'E@aI@`J@_^,^ @]@\9\@[@Z}@YX@Y@Yp@Yp@Y@YR@YR@YR@WW@WE@WI@W+5lduncan@suse.comddiss@suse.comlduncan@suse.comlduncan@suse.comddiss@suse.comlduncan@suse.comlduncan@suse.comddiss@suse.comddiss@suse.comddiss@suse.comopensuse-packaging@opensuse.orgddiss@suse.comlduncan@suse.comlduncan@suse.comlduncan@suse.comlduncan@suse.comddiss@suse.comddiss@suse.comddiss@suse.comddiss@suse.comjengelh@inai.delduncan@suse.comjengelh@inai.delduncan@suse.comlduncan@suse.com- Remove patch that modified our handler path, since the RPM macros seem to be correct now (bsc#1212636), removing: * tcmu-runner-remove-handler-path-install-prefix.patch- fix g_object_unref: assertion 'G_IS_OBJECT (object)' failed; (bsc#1196787).- Updated to latest upstream (jsc#SLE-17360). Added file: * tcmu-runner-updates-since-v1.5.4.xz with latest upstream changes since v1.5.4: * rbd: switch strtok to strtok_r * tcmur_device: rename the state_lock to rdev_lock * tcmur_device: rename lock to cmds_list_lock * rbd: fix and add more debug logs * rbd: fix the possible warning of incorrect return value type * rbd: remove the reduntant logs * rbd: fix memory leak when fails to get the address * Revert "Create codeql-analysis.yml" * rbd: fix use-after-free of addr * Create codeql-analysis.yml * main: fix g_object_unref: assertion 'G_IS_OBJECT (object)' failed * remove pthread_getname_np calls * implicitly cast pthread_t to long unsigned int * add missing pthread.h include * replace assert_perror with assert * cast time_t to intmax_t when printing * spec: make dist tag optional (#659) * install-dep.sh: do not install multiple packages in one single line (#657) * tcmu_read_config() check read() return value. (#656) And added these changes in v1.5.4 from v1.5.3: * Bump version to 1.5.4 (#652) * handler: add writesame/caw hooks support * tcmur: fall back to writesame without unmap if not aligned * tcmur: clean up the code * rbd: fix the unmap align and granularity size * rbd: use the new format of the daemon name * file_zbc: Remove unnecessary zone boundary check- Update to version 1.5.3: * tcmur: error if both src/dst_dev are unset after CSCD parsing * tcmur: don't assume two XCOPY CSCDs * tcmur: fail XCOPY requests with inline data * tcmur: fail cross-device XCOPY requests * scsi: minor simplification of inquiry if/else logic * Add supported vpd pages to zbc vpd pages * lock: do not try to acquire the lock for read fops * rbd: remove all the stale blacklist entries when opening devices * tcmu-runner: explicitly release the g_runner_handlers resources * glfs: add init/destroy support to fix memory leak * tcmur: add the init/destroy support in struct tcmur_handler * CMakeList.txt: fix the style and switch tabes to white spaces * worker: do not set thread name in the callback fn * target: convert recovery thread to work helpers * rbd: add report event support * runner: add handler error reporting cb * runner: convert alua code to work helpers * runner: add thread helpers * rbd: fix formatting * tcmur_device: remove unused recovery_thread member * rbd: fix logging when client is blacklisted * glfs: allow to load the device when the sizes disagree * Fix possible cdb printing overflow * libtcmu_log: Set tcmu_logbuf before log thread is created * extra/install_dep.sh: Add support for SUSE * glfs: disable the fencing when it is not support * Simplify tcmu_set_thread_name * extra script: Fix install_dep.sh * logger: add pthread name * tcmu-runner: set a name for each pthread * libtcmu: remove stale fns declaration * glfs: check EOF for read * Add missing libpthread * logger: correct the log message for log dir path * logger: fix posible crash when loging to file * Add tcmu_dev_get_memory_info() and split+rename device_add(). * Add support for Debian * glfs: add lock support * alua: make the lock done as INFO message- Fix for security advisory CVE-2020-28374; (bsc#1180676).- Fixed i586 compilation complaint in tcmur_cmd_handler.c, adding: * tcmu-runner-fix-i586-size_t-error.patch (which came from David Disseldorp). Also, added requirement for libnl3-devel version that supports signed network functions, such as nla_put_s32().- Update to version 1.5.2: * Bump version to 1.5.2 * Fix man unmap len reporting * Bump version to 1.5.1. * spec: fix build error * Bump version to 1.5.0. * Disable explicit alua support. * Don't install headers. * Add missing whatis entry for manpage * Add link to tcmu-runner manpage from tcmu-runner.service * Fix spelling s/Igoring/Ignoring/ * Fix spelling s/reseting/resetting/ * darray.h: avoid UB when decrementing zero pointer * Log timed out commands * lib/runner: Add helpers to convert lbas and bytes * Check for optional handler callouts * Drop unused tcmulib_cmd code * Convert runner handlers and core code to tcmur_cmd * Add tcmur-runner cmd struct * Prep for separating runner fields from tcmulib_cmd * tcmu-runner: simplify format unit io limit check * Cleanup runner callout definitions * runner: unbind aio code from tcmulib_cmd * Set write_verify cbks in write_verify_init * Set handle_caw_read_cbk in caw_init_readcmd * Add tcmu-runner cmd completion function * runner: fix up callout return info * rename tcmur tcmulib command completion function * libtcmu: Allow handlers to allocate n bytes with each command * tcmur: remove useless code * alua: fix pthread attr destroy * tcmur: fix free of xcopy parse * fbo: fix mutex destroy * reconfig_device: add request cfg type to logs * api: tcmu_cdb_print_info convert err log to debug * tcmu: reconfig_device convert err log to debug * tcmu: link libtcmalloc with libtcmu and handlers * runner: fix crash during compound command execution * cmake: set '-fno-builtin-XYZ' options when tcmalloc is used * configfs: fix index out of bounds * cmake: add a minor .so version number to libtcmu * spec: track backuped files * spec: update the spec file to fix the build error * spec: pass the tcmalloc option to cmake command * spec: switch to use rpm conditional switches * extra: add gperftools-devel to install_dep script * Optionally link against tcmalloc for improved small IO performance * libtcmu_time: void header file include muti-times * glfs: update the glfs logdir * README: update to add uninstall * lockfile: switch to use /run/tcmu.lock * logrotate: fix duplicate log entry error * Validate input for tcmu_log_dir_check() * Fix parameter for tcmu_setup_log() * Follow coding style, move leading brace * Add method to query whether OOOC is supported * glfs: fix build error for GFAPI version check * glfs: add gfapi version check * Fix unmap to handle refcount being 0 * fix typo in code * rpm: remove %defattr * rpm: remove %clean section * rpm: use valid short name licenses in License field * configfs: clean up the code * Fix pthread error ret * rbd: fix the error ret in tcmu_rbd_unlock * Drop sense arg from tcmu_explicit_transition * libtcmu: setup_netlink maybe failure but can't sensed * Drop is_sync arg from tcmu_acquire_dev_lock * Allow some commands to run while taking lock * Drop in_lock_thread from __tcmu_reopen_dev * Fix pthread error handling * Check if device is opened before calling handler * main: load_our_module maybe failure but can't sensed * tcmu: clean up the code * spec: fix building error * logrotate: do not overwrite the exist config file * logrotate: fix the install cmake file * README: update and add the make_runnerrpm.sh info * Fix 80 col formatting in def_log_path setup * format-security: fix snprintf usage * config: clean up the code * Drop cfg path variable * Switch some inotify messages from info to debug. * libtcmu: carve-out library packages separately * logger: skip resetting options if they match with current * load_config: retry opening conf-file if the initial attempt fail * cmake_install: backup old tcmu.conf version as tcmu.conf.old * doc: update readme * daemon: log start/exit msgs with crit level * dyn-logger-config: honor the precedence * main: organize the cleanup sequence * config: deprecate tcmu_parse_config * logger-init: honor the defaults when config key:value pair is commented * config: cleanup few allocations and naming * inotify: watch the directory not just file * logger: check for -1 return value on open * Call block/reset nl directly * Call block/reset dev directly * Fix up configfs file not found error message * Move tcmu_get_runner_handler * Build zbc/fbo with scsi.c * Remove daemon priv hack * Sync lbtmcu cmd and misc naming * Sync libtcmu dev get/set naming * Rename dev/nl block/reset cfgfs functions * Rename tcmu_get_wwn to tcmu_cfgfs_dev_get_wwn * Use uin32_t for cfgfs action values * Rename tcmu_cfgfs_dev_get_attr to tcmu_cfgfs_dev_get_attr_int * Drop tcmu_get_dev_size * Drop tcmu_set_dev_size * Rename tcmu_set_control to match cfgfs lib functions * Use uin32_t instead of unsigned long for cfgfs lib function * cfgfs: Add tcmu_cfgfs prefix to cfgfs lib functions * lib: Update tcmulib_command_complete comments * Partial revert of "libtcmu: do not install headers and drop libtcmu stable API" * Revert "build: drop versionless libtcmu.so symlink" * libtcmu: move tcmu_get_runner_handler into scsi.c * libtcmu: move SCSI helpers out of libtcmu * libtcmu: declare tcmu_cancel_thread in libtcmu_common.h * libtcmu_log: get subtype from tcmulib_handler * libtcmu_priv.h: drop unnecessary header files * libtcmu: explicitly include tcmu-runner.h where necessary * cmake: drop rsyslog build time check * spec: remove changelog * cmake: add rsyslog to dependencies list * spec: add rsyslog to requires list * systemd: start rsyslog.service before tcmu-runner.service * config: do not update the logdir when it's commented in conf * logger: add critical log level support * libtcmu: remove useless parameter in remove_device * spec-file: further changes to take options to ignore dependencies * logrotate: add logrotate support for tcmu-runner-glfs.log * tcmur: fix the unmap logging format * glfs: add writesame support * api: add zeroed iov check support * tcmu: Fix CMake to install file_optical * tcmu:fix extra backslash * tcmu-runner.spec: fix the rpm build errors * tcmu: Simplify command completion * file_zbc: optionally build zbc handler * file_zbc: fixed compile error under ppc64le * Enable explicit alua support. This replaced tcmu-runner-1.4.0.tar.xz with tcmu-runner-1.5.2.tar.xz, and removed two patches that are already in 1.5.2 so no longer needed: * file_zbc-fixed-compile-error-under-ppc64le.patch * file_zbc-optionally-build-zbc-handler.patch- Move tcmu.conf into main package; (bsc#1138443)- Add explicit libtcmu package dependency to avoid incorrect upstream .so versioning; (bsc#1135815)- Rename openSUSE zbc patches: + file_zbc-fixed-compile-error-under-ppc64le -> file_zbc-fixed-compile-error-under-ppc64le.patch + file_zbc-optionally-build-zbc-handler -> file_zbc-optionally-build-zbc-handler.patch- Update to version 1.4.0: * tcmu-runner: bump version to 1.4.0 * Disable explicit alua support. * logger: notification on changing the options for dynamic reloading * logger: update .gitignore for logrotate.conf_install.cmake * logger: fix the return value * Sync sig handler naming. * Add logrotate support * Move starting log message. * Allow log file restart from SIGHUP * Simplify log outputs Replacing tcmu-runner-1.3.0.tar.gz with tcmu-runner-1.4.0.tar.xz, updating the SPEC file, and removing patches: * api-avoid-compiler-Werror-return-type-failures.patch * build-drop-versionless-libtcmu.so-symlink.patch * tcmu-runner-remove-uio-include-for-iovec.patch * support custom cephx credentials; (bsc#1135369)- Update to version 1.3.0; (fate#322524) + Improved Ceph RBD integration + Support XCOPY copy-offload commands + Support COMPARE_AND_WRITE, with Ceph OSD request mapping + Asynchronous I/O improvements and bug fixes - Remove a number of downstream patches now carried upstream: + glfs-discard-glfs_check_config + fixed-local-dos-when-unregisterhandler-was-called-for-a-not-existing-handler + only-allow-dynamic-unregisterhandler-for-external-handlers-thereby-fixing-dos + fixed-a-number-of-memory-leaks-with-deregistering-of-dbus-handlers + removed-all-check_config-callback-implementations-to-avoid-security-issues + tcmu-runner-add-local-target_core_user-h - Remove development packages (bsc#1080619) + API discontinued upstream - Add fix for -Werror-return-type failures: + api-avoid-compiler-Werror-return-type-failures.patch - Add fix for library versioning: + build-drop-versionless-libtcmu.so-symlink.patch- Add two patches: make target_core_user.h local, to insulate tcmu-runner from kernel version/data structure/naming changes, and add include of to that file, to fix "stuct iovec" not defined issue (bsc#1058303), adding patches: * tcmu-runner-add-local-target_core_user-h * tcmu-runner-remove-uio-include-for-iovec.patch The latter patch is added only for SUSE version >= 13.3, since it is only needed there.- Remove install prefix from beginning of install libdir when setting tcmu-runner plugin path (bsc#1052795), adding SUSE-specific patch: * tcmu-runner-remove-handler-path-install-prefix.patch- One more update from Security Audit, adding one more patch: - removed-all-check_config-callback-implementations-to-avoid-security-issues (bsc#1049491)- Updates based on Security Audit, adding 4 patches: * glfs-discard-glfs_check_config (bsc#1049485) * fixed-local-dos-when-unregisterhandler-was-called-for-a-not-existing-handler (bsc#1049488) * only-allow-dynamic-unregisterhandler-for-external-handlers-thereby-fixing-dos (bsc#1049489) * fixed-a-number-of-memory-leaks-with-deregistering-of-dbus-handlers (bsc#1049490)- Make Ceph RBD handler aarch64 and x86-64 only for now + librbd isn't yet available for all platforms- Build the Ceph RBD handler and package separately; (fate#322524). - Split the GlusterFS handler into a separate package + avoid adding an unnecessary dependencies to tcmu-runner core- Explicitly disable the GlusterFS handler for SLE builds.- Update to upstream version 1.2.0; (bsc#1038712). + Add remove devices when tcmulib teardown + fix builds done outside of source directory + free tcmu_device after dev->fd is closed + fix Read_Capacity_16 + detect INQURY response truncation + fix incorrect memcpy length + fix inquiry buffer length calculations + add tcmu.conf for log level configuration - Remove upstreamed fixes: + tcmu-runner-include-falloc-in-qcow.patch + tcmu-runner-let-cmake-install-man-page.patch + tcmu-runner-Use-CMake-FULL-library-directory-for-SOs.patch + include-tcmu-runner-h-in-install.patch- rename libtcmu1-devel to libtcmu-devel - drop unnecessary %oname indirect macro- Updated SPEC file to break library into separate packages - Install tcmu-runner.h, adding: * include-tcmu-runner-h-in-install.patch- Drop silly buildrequires on libgfapi0/libglib-2_0-0. Abolish old macros.- Updated SPEC file to install LICENSE file (bsc#982130)- Created from upstream version 1.0.4/bin/sh/bin/sh/bin/sh/bin/shibs-centriq-3 1690199127 1.5.4-150400.3.3.11.5.4-150400.3.3.11.5.4-150400.3.3.1 dbus-1system.dtcmu-runner.conftcmu-runnertcmutcmu.conftcmu-runnertcmu-runner.servicetcmu-runnerhandler_qcow.sorctcmu-runnerdbus-1system-servicesorg.kernel.TCMUService1.servicetcmu-runnerREADME.mdtcmu-runnerLICENSE.Apache2LICENSE.LGPLv2.1tcmu-runner.8.gz/etc//etc/dbus-1//etc/dbus-1/system.d//etc/logrotate.d//etc/tcmu//usr/bin//usr/lib/systemd/system//usr/lib64//usr/lib64/tcmu-runner//usr/sbin//usr/share//usr/share/dbus-1//usr/share/dbus-1/system-services//usr/share/doc/packages//usr/share/doc/packages/tcmu-runner//usr/share/licenses//usr/share/licenses/tcmu-runner//usr/share/man/man8/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:29913/SUSE_SLE-15-SP4_Update/2b191f54985400a7c1767c468f9f1efc-tcmu-runner.SUSE_SLE-15-SP4_Updatedrpmxz5aarch64-suse-linuxdirectoryXML 1.0 document, ASCII textASCII textELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=6e2e776e33ab5570f1c25a2d6c338d95183e28d7, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=c527a6cd1114373a5405bd93cb52cf8757f77429, strippedASCII text, with very long linestroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)RRR RRRR R R RR RRRRRRRRRR"%Zuvutf-823d8cfb3c27f39c9cb84e7c02df05bcc5e8a018bce9a772a7cb884c7e6beadbe?7zXZ !t/|^?]"k%fAĦRLȪ70띹a3/Kp}4A"Gm@`r2@PD^ԲGkYjEL hvjٟX8 ,\^h9pO~\B =!fHc8bϐӃa }E#Z@/bh^p fK rOf!!hwYon V:'hVaֈ.!8V_&_R 6iHATkS)(OY vkhSoKfR*i3 <[)kٸ50p7F$ɽ1쥵v/ӟ/ n3f#&R-Ik?\M 6C/JKӤq lE/1cL)JVx"`rꙄm=k.gUmq1U/[t#$LެuĦJz>8U^>zZf}r࿁CINΣ8L'ڭ]Y)"Ѻmx$vΉ6ZtݿH@ji{ kq}?,$YYp/zȩjD"2iiM\'  D=ij~/Eټ}sSمe,$v훔 oӀm3?dK}{I xI@ N^QfV+˗oTJ7P2[jFâ{&QXr }8/ᯓNܝ0O#}fHxi(GON~8Bm;" dJH귅Y 9uF،* !4IRA+Ic#vs7 +X0>9wcya< 6W%ls t`FG1l6Jҳ$H,a"ߗ>9<ۭ- *5'e9|qk'z;=Qq,ax j,ZNi*lu 5Q@黒cz56(pCJ<=})xkΥ*x[_zPFŀ=԰=(L-ߦ" "cRw[)/& S%ƐL5st0G@#nNS@WK'Mf;24b5D#e5i(Po& $#B_e9h+8,|y:rI q}ZzPLϔሷ.58cv2tSm<4#e* Ǐ]ўq҂;C#җ!7EV4$]|sK-]aV2/;(ff8mynv'cбm뭢ԁ]E\K.79<Hɾ#~̵RXyG\d諒xK+bu6R 7s*/'#/p39&B7A^ꔯ|5&+eJ ;FHyqϡuYzM=^@)1YoG iC9SvO%Q\IbwY{b%(C|;b췈vs /KiPȽ̤h<7 L>"|XZzO[myFm=l.%dF7?0tf65ŽBpW!iFXhD{˸_V/Zdϴg,_cXB湗k3?'oRer5򩏼) $E=`M-1$I0})״緞Ǧxd_HPWh}9D+D6nhZXb+s&:Dx*u mn#1y\QV>! Xw.ƆP!EWXmzLeUA6,ڨ "'^Ծs$!U+}PR\x̢L?aT2,l" q!Šc22H':֑ f8Lj-,‰FܡP/v+BtcFc{euق]] HBN&k#hj+GVJDO`^Y::'FcY <9.4 /NVڞFmʤX=Wj_7! 5M~!2xtB(sf05ag~a9xٷP5ũ B uQD%ysNbPD(,\~K$V=YX&6ӊ] )/q)ԞX`5({<ƣ'D(TRBcE<,ijoi_.%꼊X!GcY>uH"i 92|4M:~Q+6҈ ϛԼnM'NH$Yz+` VXw[:4x-؇:gu)^U@o3/'2E~C j8@t^l6dqYa!7\φ *̽[Qbtր5y<7A :db;<n) `o8~V?k 7ݙ[6B"RķYޝԈPgEIG0W%N`I/@NHq%HR˒u 4߿I*!d$"mvLa=j֡4r?CQ|xz]>yOB-aZVte >h!Ö?󜪝,֘}4(%-~)3ȟheP?ؕ9u#L[qFDAE eP!|i1_9:MbfȆ\R-?@ZffZVqP78 +h2OMyԳԾ1/Z[I\蟳dCDF7^sGB}~6ϮyWdzp'x IAS􇋶ʔkD`;oµ\ '0SbϘ][yc8p T%Qq)pq&UiIK/z*O]%TXwUYJ ur9ޫA+?Y4g?$Kr^k}S' 1y)@Xnep }b:7`wy`` ыOmcK$L T+~;w 8lpŢ2kV<xn ؝tv*ð\+h.ի{TxQ$rG-ڌY~K p_&/z P,;켅ȦK ?wwpuPfsEu ="HS@ $f2R~{~Ii6&XKWGRqSSCNosX B;E (O),g"n;;ȱ|{Gc>/=FSsz7e:-<*Z7SZ0ň ݕEWF9F$)Ss 襌&+ps,C`U.]؉ ry)L#EfYE5BfT9 ]\YhCf8@L4KwPqb9=p$MIbVF#4<*+%1V C6RPesT t>̈́}d+ 2Τּ]? 5 QN^Z|hM j$EpF vmXLzRvpcWǣAc#bTpCy k!!Šb<0ʋ?-k5r4z 4jWxMq4 tVkI@I7|ˠtU|v~X B >Fcfn?l5ȩ}3'w.o#?bLf[ & Ъ '.!+8(G܃Er~]OUljԆ'|~Z;Y~ f7%C`eG{Qsxyl7UۥF 7! Xwݎ(gV3t.eB*Q6wʆL1!/I6B[EԿ^Uuo;D洄Qd,yH~cLjGЮ)b"6<;׮Z85]gJ`hIsڝ`xIj .f-L>s>r\ɍW4gRudA5R"8\ٮNGwCf7DMV`~ rCBME(Z3Pyx#x05V/_-@Ihư-SЂ~[c`\LK d f;~_iHxmOY$Ȉ$!=Ģ o_| M`Ӝ Ǎ˹xwJ("OnV"o h|=f=ղ>o5̘ᒷB{A{'r\)U13@K[&=҃{kg 8sJ6nEr-_Db֕ L`;4|{,mwte?}!Wb wUʹa rb.]."Ǣ|( 5{KDe\L"=[4wfܻK6M ittk [`28b=zd!fD0?A`9_гN.=(f8E)&tT璉 06 /lNIF:) +s_<Q;mJ羜Ivs%5PY<PX@ +TX Wg&CO O~hWݼ"0ղ:gJ(U?>@P\ߔؘ*[#Pϭb^)dE‚mfr^ߜﹹOq92*f5 ==u'܀rqПփnPh? }x_F6iaKԭM>B!o-:]PWԈ7DsޗZDJ+MZ'm;j8K'D/Gt IJ2[v2?*gM,F婼ys{G,n('i_=|H+P~:R0N`k*zJ 2{<,0A̷-*4^rҖdM9%`bnƵ]M|.e Zfԕ< '!(2Om?-W̕Ք1fjZڙIуW1M޿HMq:pQ٩8|96A=]]$UV mi9ֺ^KH\y j% !((I&"AW\@Yl] B("0<Е=9AW /ƊI~2ag/rJGl~f 䗩 }cٸl7n)/9\V-u_U,l6JCwV*~c s ?aFlow%AD jBQxy8FqXzdP8S´E#DSNy^¥\gΘpGIQcI$ U,O2xJ~0Sl{?c 7{ŏs-&ddI߳wpǴ[c9!-0:[gzyۈǖj)`M|4kO51ݲ "ro1?&Ӓ=V7_N:}s^6vA_;x^+QԨ;=HGCiLWԀgKj (BXw)tn/p~sߢH8Ox*T"L{zbOW}9<֝;;f A,3Vvsx3{r* 2ŻVf3DE6K ;27G14j֣)0S.i- V4G)BBvz8$‘P5gC 1wx"ys&Ѯ4h:q"aKն16tDJ0j|"Yh۴D}$&18}ׇk?i $Hd<_Zj*՜%kJ43 Ͱ!JwG *':_ҕ{&C~/s#IȤ"2C# #[nV0K'Z;236@]s"vh "᫄KEmtGjp5n6"FĄZgR 6H ŷB0N4J*JE/K*Evz:P'I^S`7KA,Š+ě:2Nt&>oїk{JUd:_]?7uYh3Ry'A8W&-@o;`!ƟҴ5VUآJ: N~4 o(kf_i01F[*#014Sj2 N]X8O^!iGQ Ht@73\q58qk! D奥|*` -s K)՛R`FaFwM YN > TD)) <2۠2Tmo_ x#2/ L9uږf V%=P#izXJU8k%%췌9|-!W4}m @a ) ee IZqX%ah{U+j5 u]fw,eyjhd=[1$o{Wmf~ڈG0M᫲0vbӺڈ 抍(y5c0n@z!+aO8Ula7*2HM"2R[NSٟСmU4׈,%'O|  m%ꕦʼnX\ RdJF_/YLfv 6ww&vV"H^)r<]PkzgxU4W)4o^[؜&pכb%*$m*oUd=_]| hsCإ4:W@:. =?(^Ie^Q&M'ecN`y]awPiXnK*⿹O&ty34zLj}R7 }q&9 +Mjzgy?Btҵ@W9w1\pNe-Z3uf*t~bZm/:a!jQ!!;c(R@[Xi&zѺۦn:NS`gՎliz=/6|lic $u6 V/f5][7*e&4U:Ң5瀜jwJǢ{#œGȘەLNl?Ԋm;l +bM /-/0UzWinۋDϢT:0-t0%|)J`&ku >4R{QJ iQ'FLG%Lh1?R@ f+eRnʤ۝ %`D鐾јQE50VQ3~#0ŘqvRq_؏ , Ƨl;2YoX.^Ź(Kjr4eiޏN-f6~v|> /rCzNvh0%~Na+&2HzȆMVJКНV G5M&M]5h|PAE\L!tM 3:7XqmQt!.X31 -@ncݍ5kc·i(^[g{p,t'aqw!z{P!6/ӫS|OPуBq ၢz[rӣ7${J?})_ܽYjmfa*=#ÍnPjQ: #h'Nuf E?eέy T<_z4&(U|*xF,b6AAԬ.gg;M3C ⩎+f]EBbUoklщ,:4􇘈h{NaCr+Z=JT gbNh׃u\kN 3C5 ~xɆDzD [mjiΫ l? |>Ռ[SJ!]q[r3R@<s}CzWoAc䏹UDvC㡁u tV}esMcQ؏@!][7z{P17.do{DUb} E󬨌3,Jq/}3>?$yIODf dk"mߝ{$7y3uXS9Af{i۠$atmå&ʕEp\:{<(YmGHpszbfF 1޽;P /% Ŝϕ_#s,Q㭇x1`95W."3Uɗd;;~1M7($<'RԞ,ysef{щ +GnHSkvV[n;bE?W`AiohAls7;xXIy{x:#[vV-p5eH2Gidw)nK>S~EX 1 )(ЊcS0Ap?*fDy UD$ ;er%>܇dvl UYBNO~`8=*Mjl[0bM5w?^ZyH_?J*`Ŵɫ/ě^J\ZRlNI|7m6M } C( (%f-X3|5˯6<sϧHι4xLstШR H",8W.?-qzj/m"0β0g,rY? O(s#Eȸ k%MoP5ԡ{_e/o n:yv_@Edve0嶢51&t:QLYdu‘ˊp?aA\9X\H|}I] KiEG(VI7Ey^:u21c eͨ9Q)TD1k&<|?2|>>IeDI m}U"nzoSȮ+̵"dUމhR׳VNԦ"{J Xxr%Ro. ;X2Af(΅/uNcC~uGsuD9L1pWOg~t3V>qT; }OtqA6H{@g~FM|lF#ŝ/ݫ|G7d Ö}@h"3!XHe%S0. ӸVD). ț МZ!a8`-խ:Z+U۔ۺ$ݑxz&%@|Uƣ{wN]}{Rd دb}v79s\/ Ԕ&qZC5*ɉN4O_Z`f7`D@DyK̤fmw5.n3iaU2֊Csxy[ 7h!iBp Uu:Xy  +?~G ((†-kW9VjW$xో5K ئϿf'Ts+&=l%{Nxo"QE7SLׯnzʛe!p6`x?fR-5(mA#Љ9g,Xಧkr+)v5"(dtէcgDJ 1 =ҼG/>ăItcX%f聺#'8򬩷z}-#Yr&8gd4T㜂RɅ = Sshi՚KgϿ WE=: gPD{E"HJ)xWwݪ`iwZL ]VuEbx? zM&S VΆemHoכ-T"hfP{""o"ό}nr_!ludž2QAP.U\Roξ8+^!*;Ptz]: 늘]Nw[ b\,쵘m}m'Y㘆#ޥEwՙ/pڊpD#Ga$b;E\2t,ߟML5AQИVi# jk8cǧXT5yvB])7?@`ިuDaЯtf5o&VPS0j˯Hq hħ02UdÖ<%9F%%pT e5njvL<*z؈ukA{ks'%O2#^̈ $-y2x L tϞYZI{\lfS ۗk#3: l1>!^+PmG}G&U>Чc@>ҧ T#,a_6ĖXnUe'9 vBq q[ڭ6rC.|p9=ľo(\Π2.eE$ۘ˴AJ|'0FKrqƨR5F )l>{/ZEU4z+c( |;9u":Է5'uR1uF2鱅5jrN#8 ڲ q؏P[}cW$@~ WACˌn6_dO."rWZ*⫬JZ έQ̈}f Xć$l6ro@MM+E}\[y1]FhyFUcSg\rƄfքZ\uM0WߔKoN^T+/Vw[@3;l5ya/0CefշxY1Zj? 5va{' bVҟ1Fu΁­#kf rd> G 9 9pZ@<I-h?n9t>?gP&qkXX !xЁ~ WƝ-4#k_vu)H|0Ci;^ )C6Fķ$f{`_¿.p.{$Y=ыfadj{Ѯ2f̥A[ j4BD = e%KYw-~x=b֯УKߦdd罞"Vwmg?acv`oTA}3.qK3-O~h0a偸X^5bHStjs]x5H!zAn4F'd#\nͽ%}1I¯" 6 リt]60CFI1(XԦfi¾eA tL}Xcj dž')"` 1!u7ˆ*EI%~Bn]#S>5S#tR~4  'ɀj")hQ%ѸГجM4njޒ IC|myhnv/l6j׈&s^A1&U}Y[Bg&Mvr=]JelRvӄm70Wr\l93hC*j~o(jmrI'.LQ~xP)|>6y죈; )' ݛb{I~L(ArxFKc|~ϰJ?KAł= qӏ`&"G3q#B/Ĕ65&4&A~ZЪG[Rѵ__fáF?rU 1=@V9J (_wBo^ woXSLZ#.z1Fl3{S6Zc 9%r/:O<,UPG)놑zz`S˘{9nUX` g+sh.Y$撯 p3k0<<{'G6Pvٽ )Q T*!a`uݎ@TJ?i4zj&-.=[vy6=hb"?1yTnx\q KYmW7Q!W)J>,7+fhRQF6P7Q5);'ހ=V:WrjV82꺏l8kY6:pm?J@J-v8ldC *u2_55Rr``HKIpFI@Y؜"jtKpKv[dPo\~.8]NmR"ˠtvHW[y~b>~jQolt "rd@MTZ3Y>婅ZqJ4t"PōivZ3sC:2>FAX.uK ʖfOM13EH5xi9uF.D JuNmX\CU'%[4Av6(ƍi*?_e 5d1E[Lv0,T_ eb38?Û 3wgGT(T/o+ti%4fwLMb0[&JDH+PS^| .*@)S@Re!J]RyL~ڦ71<ܤkp86&Y:b-jZzK9Ux?~ dؿY+;ea+񛹎nܭ_Ow*\EӇ?I mRɵ|xKX $蓄7|F|?Y9PvԡLHb|旿?8N>B׾J"9 j8&82Y~؆囊at!xJј h[H9.J-SkDP'Ou1Kt}Us tq,>{_ʓp]+̈ r輪 ƹbD8pܘY/a<2^2y =5Ho9Sh $e'EϚ? MC oup@.% oQqOjʔ\Zd)ZSrn91eT=֥@)1\ O {sӢFx  v.H~D@(6LR';H rOKr[U)997bfK`/Y D1VA3٨&[Tkr,Zцt5hVSL;w[  +;3~]g}@zidruӰ@U 8MVYk4NtX:6ɒN*:ue~ ؗ|}vȒϢ%/`҉:$:C6VS2/*IJ ̷_Y,fx,W) rN87ݠzG)|/j+!2vQ*RCSra2rUQL'ZIʅ@n6N"~P j!hʁY>n e,5Oɑ49NR6:aE. )Bŏ /"UK)1T^ՔfNZm[tQ,/R9PnF3L?@?\wwwpC\Fɧ(?|.PݓL~C߸Wwd1 ںV|7Xb)3ǭ̝ݿDŜR Ͱ6S|"p{88mռ:'L|T+DijԧH6[)R* D=:4a /MGN,>pND [(gRܑlFu=X= s'tuJ_竈_arꛦ<⭙p9/U8Z\hG:ұ!g'IE㷉F˟ʛ&z|N [mID@1Ńv*"[=গ"XX륕Uc6@P =`=Aͫ vOK3^9>!ߪz,xwU c YZ