libucs-devel-1.13.1-150500.2.17 >  A dZbp9||t,.M$RӂQo7$_~ j7%z)a]i)n\AذfQ2HPAslguVMk>4Yu--!O^E8±6)p>?d " ^+ Aau{VV V 4V V V  VxV&VVP(C8L9: FvGvVHwVIyPVXyYy\yV]{<V^~{bcsdefluVvDwtVxVy$z,<@FClibucs-devel1.13.1150500.2.17Development files for Unified Communication Services (UC-S)This framework provides infrastructure for component based programming, memory management, and system utilities.dZaibs-arm-3SUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/Development/Libraries/C and C++http://openucx.org/linuxaarch64C J4@v: i:|^(#G ,?!`k#9"4 V=&2(S(Sj' $ { ?x )AA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤AA큤dZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZadZa6e22c0bde2472752547ed0bb23b146fddc2041c38d1aac159504ba570593c997b1f5a51464a27bd226e978cdfbbfa29ce1c236523b3d11c7373c82f716da7a136223a9e50ee221db7e3ad298ee5f6c7e0b4f13ba8ac7ee8f485e2ac2a8b7f78d9bb9768878071721961bc90f8474803496dd0428e615aee8c424a1d7af80c9439506ba0b867a3665b3fd3bdf9472ecf09156530e38687d0b348a01d9b7a3c7c2622b792fc6a25b9f431c4674426fcaecf9b057fc559cb71d36131c4e8577091872f593d3be421c18a19f215cede686dcff8d4df3ba1fd3e81760b58244a7cdb72d4f78e1f338c69acb66a8376b09c00e9e0bc3b4fb2626253fb4b4badc818bf3f2eb2d5daf248cef39634289aab343cc83413bcede30fe0d80f05ee4ab8e57827205b0eb62a3d11299fc12162b5a31ca67e5fbcf5860ad7ae52d017c9107c3fcfecaebb381dcf04e37648a7183dc78420717d89ff230ab12325eed20ea34e3a8daeefd2f720abb3d5351e7c7445c26f79b1a93b59af87173f66abdda8bd19c596bd5d9f147e2782f72c709cf7e372d896722f2f0e2f150b5c88674f7b8e934165bde1f8813f417629f11682a7610ee510fef875a7eab17574daa7a39c9384ffdb2932c6d3ae9ea7f430df29a660113c6bc908e99665790a9b6e1cc8adcb70a9d4875f6c212e3c7b4e947754476104467e677f8542a0566fe339d68214919d7e54b8712efbafc055eea724140db81b3ae2ff9e85a52adeb08fa2c454cf28835d66a387c83ce3bf3ea04ca18d09825364fdd1dd393deb4bcdc1d5f96867fe4ef57dcbc4cbdabb4218df03e88f134ca869dc4c99f46d47c927cd8a36a1badfc3a694c7996d4c040a70c810396e859ba731af138963d90509e3eac3d6b5874b3eeea398e663e1af3afb67911fde76be99428a5a0c421ad5302ecd793cd9e53c4867067725647182f8b8c18b059a28a425ef0fcf42f5f76497fef057aec46a038e4c18b1a53b12e2f5e2b506faaf7f3a5dc793a7eea22328a7e1f23162c2cf78a4768e0b3b7e24c8f4a36de6b2fc2778e77cd01dbe45e3a65fd9a7c5289bd79522fbce968b56d44c51e70aad4a18d4f381f5348f9a7be644c6aaa6c8153a755036ccd75d00cdf046882578b7bc60c5fa9351df10c190f49b2330aa4c4e54f87b8e6f4dc436d72e0e18c151666d9b9524420a8ad273e01a5f8d4c74ec7f5061995e1a910e49f231c3bee284539cda6b12923eec434383b7a9e1e7c32400b8bc22bc606f7faf943e3af16c43013093d88e331ab1b0ac07e90942dac57ffdceeedff7ba66238d777d8fc15fc576236415a19f9a4cfed71a1b42059b92b096a3cf64d1a302504cdfe3b948cfa11549195c756367bec2d4456855417e62d04f39f0bd2c9ac357286ba0f0f2dcf319da0c08ac3e076c9e14fc4071c6ddf72e20245e2849e749f764cf6edb43ba87881dbf46728a0ad95de97bec7b64f1d4d80727c513957087c080c5d499144fe41117af5e85bc8ddb28074a6227ed5b5d3e42903100d9f5942781a204a45a20c7f03ec35e174a167f73fddf22564af1b51dbe57b112352c89015b7783e046803baecdc55afe2fa3d24b89f385d37aaf4f37eeaecddbd37eeb2841b4711fccb243cfd40b6d0b0ee9471979a6d63059971330d78f2ca8313543f689e40fa4c4c295067c2fb4eae7c2276518e93d7dc308c4f02779075f2fb07ad80bc578e2363c3e41390033ebc72a364b57d2e1b8c16b5af04c86a033d6b49413ea2d46a325910eea169e92ea8cca46be08afc9af2545fc93376751bfecb71e6d59057c9d6efb1959743a6edf6205b11181eb49efe3594a5a8d8e5c8338a9923991435b700e55ebe242ab06fb58af26a868ef8bf4b3f843b1bdea2628c6556a687c449af78fc0e94a572157bd90679f51417024a2b7216ddb1d16a4d075ec1cfec479505821a4a3b5e309c7008d54f2ada73bf0b8248f796d898dbb00cbd55a71c7267c7a86c439dc51b719bd9e927ff2ee70a29b7f4bf3d5e5b105672cc93fad71d1a425e0fcf7f9e535d3905fe2aa5a79c71d28a86b57f32441e69d8c537e8d18c0af59e37c58759355c5b979f95e870ecf21356feeeb0d98d866e49bd73511de5162d368ea01760e07fee7302ff2759fb41b685a79e18ec205e7fb2868244c1d4bc437c0e75eb1dc9291beb3944998df3b28ac1205ee2e2162870eadc20eb86f4906f8bc47012a66705c745229a92be2fdf10de88ea038781770bd6075ef63d174dc60c59db78a7f68aa862a81ee9b57ca5ab1baddcf795d03098da0ccc71efac7fb56daffbcda33683cb794a7d5f99bc439c839f04c826d3b55127934422fccb1d1fb8f4a879e9d95c62a72944921b55f96c1dfc5e24a0da1ecc0c01e604b25011adb48a3879774669277db21a92afcf67be2e241054bf99265833fd5a2a2938ad46b1038c70cc07fdf1da6e1c7de45b8da0803ddc36a345e8238fb1fe431b3cef8b9b2fbcabf504ab97d497cb76388c9beb9dcf101ad84ea5394651ffd08d05011dca1212bee25d1c7808798cefc9c67cd6a593e0ce2873739df35572b35cf2aa6ce522c57fb0da91e2c5b77b734e4d8071029dc5dc6a4f1c7caff8eb82da40a5b67bb1799281e8d39842e3af310b5a60be846f194cb2703b59d5f8e6444ff20cb11e09c3d792d47b0c40b7e2b773a77352b0957fdc2c1df3175df0a67775cc2b9463d680179072dce54dc945e7eb58a1050bbd41dc3c75c82200e655e591e9d697a5ed0ed3cdf263a156ff23977ff3a8e062af0bcec1d3316af5bad7166c8181f24e1d115a8b0e61feb498e0f32857f37c06bfaf4446ab10160f0851libucs.so.0.0.0libucs_signal.so.0.0.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenucx-1.13.1-150500.2.17.src.rpmlibucs-devellibucs-devel(aarch-64)pkgconfig(ucx-ucs)@    /usr/bin/pkg-configlibucs0rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.13.13.0.4-14.6.0-14.0-15.2-14.14.3c< @c2a@aLl@`6?_{ _ L^3^@]4@]@\@\s\o@[@[ā@[l,[!@Z2@Zc/@ZaZ*~YYYV=@YS@Y9<@Y(We7Ue@U@nmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comjengelh@inai.denmoreychaisemartin@suse.comjengelh@inai.denmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.commliska@suse.cznmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comjengelh@inai.denmoreychaisemartin@suse.comdimstar@opensuse.orgjengelh@inai.denmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comjengelh@inai.dejengelh@inai.dejengelh@inai.dejengelh@inai.de- Update openucx-s390x-support.patch to add missing ucs_ffs32 on s390x - Drop baselibs.conf as openucx only works on 64b systems- Update to v1.13.1 (jsc#PED-912) - Core - Added new objects to VFS: local and remote address of endpoint, statistics of ucp_ep_create success/failure, failed/destroyed endpoints - Added support for UCX static libraries - Added profiling for rkey management routines - PCIe relaxed order enabled by default for AMD CPUs - Fixed not deallocating memory from ucp_mem_unmap if no rcache - Fixed versioning infrastructure - Multiple code improvements: refactoring, debug prints and assertions, etc. - Multiple improvements in build, test and docs infrastructure - Added new objects to VFS (md, component, log_level, etc.) - Added configuration variable to specify which loadable modules are allowed - Added build-time configuration to disable sigaction overriding - UCP - Added API to pass pre-registered memory handle to UCP operations - Added implementation of AM rendezvous protocol - Added 2-stage pipeline rendezvous protocol for GPU - Added support for fragment mem_type for v1 pipeline proto, disabled by default - Added active message support for proto v2 - Added UCP memory registration cache - Improved adaptive progress - deactivate iface when all p2p lanes are destroyed - Added support for user memh in proto_v1 - Added support for selecting local address when creating a client endpoint - Added option to limit GPUDirectRDMA size in rendezvous protocol, UCX_RNDV_MEMTYPE_DIRECT_SIZE - Deprecated UCX_SOCKADDR_AUX_TLS configuration parameter - Resolving remote EP ID when creating local EP disabled by default - Added client_id to ucp_worker_create() and ucp_conn_request_query() APIs - Added ucp_worker_address_query() API - Updated ucp_ep_query() API for getting local and remote addresses - Added address versioning to correctly preserve wire compatibility starting from version 1.11.0 - Added new client/server connection establishment packet header format - Enabled rendezvous and tag sync protocols when error handling is enabled on the endpoint - Added iov zcopy support to RMA operations - Reduced memory usage of unexpected messages by fitting receive buffer size to packet size - Added support for modifying UCT and UCS configs by ucp_config_modify() API - Optimized unpacked rkeys memory consumption - Added request flag to influence latency vs. bandwidth protocol - Reduced memory management overhead with new protocols - Improved performance calculations for new protocols - Added AMO support with GPU memory target using new protocols - Added put_zcopy, get_zcopy and pipeline based rendezvous in new protocols - Added support for user-defined alignment in Active Messages - Added support for offload tag sync in new protocols - Updated ucp_atomic_post() to use NBX flow - UCT - Introduced API uct_md_mkey_pack_v2 - Introduced UCT iface features API - Introduced max_inflight_eps parameter in perf_attr API - Introduced UCT_SEND_FLAG_PEER_CHECK flag that forces checking connectivity to a peer - Introduced UCX_RCACHE_PURGE_ON_FORK to enable/disable cleaning regions when application is forking - Disabled PEER_FAILURE capability for XPMEM - Added API - uct_iface_is_reachable_v2() - Added IPv6 address support in TCP - Added latency estimation to uct_iface_estimate_perf() - Adjusted knem and cma overhead cost - Increased built-in TCP keep-alive interval to 2 seconds - RDMA CORE (IB, ROCE, etc.) - Introduced NDR autorecognition - Introduced CQE zipping support - Set the default MAX_RD_ATOMIC to maximum value supported by the hardware - Disabled mlx5 ifaces on verbs MD - Added detection of IB NDR devices - Added check for CQ overrun in assert mode - Added bitmap usage for releasing detached DCIs - Added configuration for requests ack frequency with DevX - Added remote QP info to tx error CQE traces - ROCM - Increased maximum number of HSA agents - UCS - Added topo module infrastructure - Added memtrack and rcache information to VFS - Added API for a per-process aggregate-sum statistics report - Added memory pool set data structure - Added new ptr_array API for bulk allocation - Added ucs_string_buffer_append_flags() for string buffer - Added ucs_ffs32() - Added ucs_vsnprintf_safe() which always adds '\0' - Added thread-safe put to ptr_map - Improved accuracy of the topology distance estimation - Added prints of leaked callbacks from the callback queue - Removed a diagnostic message when fuse thread is stopped - Added configurable limit for the memory consumed by rcache - Added configuration for VFS(FUSE) thread affinity - Added memory limit support to memtrack - Packaging - Added cmake config files for better integration with external cmake based projects - Tools - Added loop-back transport support in ucx_perftest - Split ucx_perftest into separate modules - Added process placement option for ucx_info - Extended parameters correctness check in ucx_perftest - Backported UCS-DEBUG-replace-PTR-with-void.patch from upstream to fix compilation- Fix UCM bistro support on non s390x archs - Add ucm-fix-UCX_MEM_MALLOC_RELOC.patch to disable malloc relocations by default (bsc#1194369)- Update to v1.11.1 (jsc#SLE-19260)- Update openucx-s390x-support.patch to fix mmap syscall on s390x (bsc#1182691) - Core: - Added support for UCX monitoring using virtual file system (VFS)/FUSE - Added support for applications with static CUDA runtime linking - Added support for a configuration file - Updated clang format configuration - UCP - Added rendezvous API for active messages - Added user-defined name to context, worker, and endpoint objects - Added flag to silence request leak check - Added API for endpoint performance evaluation - Added API - ucp_request_query - Added API - ucp_lib_query - Added bandwidth optimizations for new protocols multi-lane - Added support for multi-rail over lanes with BW ratio >= 1/4 - Added support for tracking outstanding requests and aborting those in case of connection failure - Refactored keep-alive protocol - Added device id to wireup protocol - Added support up to 128 transport layer resources in UCP context - Added support CUDA memory allocations with ucp_mem_map - Increased UCP_WORKER_MAX_EP_CONFIG to 64 - Adjusted memory type zcopy threshold when UCX_ZCOPY_THRESH set - Refactored wireup protocols, rendezvous, get, zcopy protocols - Added put zcopy multi-rail - Improved logging for new protocols - Added system topology information - Added new protocols for eager offload protocols - UCT - Extended connection establishment API - Added active message AM alignment in iface params - Added active message short IOV API. - Added support for interface query by operation and memory type - Added API to get allocation base address and length - Added md_dereg_v2 API - UCS - Added log filter by source file name. - Added checking for last element in fraglist queue - Added a method to get IP address from sockaddr. - Added memory usage limits to registration cache - RDMA CORE (IB, ROCE, etc.) - Added report of QP info in case of completion with error - Refactored of FC send operations - Added support for DevX unique QPN allocation - Optimized endpoint lookup for DCI - Added support for RDMA sub-function (SF) - Added support for DCI via DEVX - Added DCI pool per LAG port - Added support for RoCE IP reachability check using a subnet mask - Added active message short IOV for UD/DC/RC mlx, UD/RC verbs - Added endpoint keep alive check for UD - Suppressed warning if device can't be opened - Added support for multiple flush cancel without completion - Added ignore for devices with invalid GID - Added support for SRQ linked list reordering - Added flush by flow control on old devices - Added support for configurable rdma_resolve_addr/route timeout - Shared memory - Added active message short IOV support for posix, sysv, and self transports - TCP - Added support for peer failure in case of CONNECT_TO_EP - Added support for active message short IOV - See NEWS for a complete changelog and bug fixes - Refresh openucx-s390x-support against latest sources- Update to v1.9.0 (jsc#SLE-15163) - Features: - Added a new class of communication APIs '*_nbx' that enable API extendability while - preserving ABI backward compatibility - Added asynchronous event support to UCT/IB/DEVX - Added support for latest CUDA library version - Added NAK-based reliability protocol for UCT/IB/UD to optimize resends - Added new tests for ROCm - Added new configuration parameters for protocol selection - Added performance optimization for Fujitsu A64FX with InfiniBand - Added performance optimization for clear cache code aarch64 - Added support for relaxed-order PCIe access in IB RDMA transports - Added new TCP connection manager - Added support for UCT/IB PKey with partial membership in IB transports - Added support for RoCE LAG - Added support for ROCm 3.7 and above - Added flow control for RDMA read operations - Improved endpoint flush implementation for UCT/IB - Improved UD timer to avoid interrupting the main thread when not in use - Improved latency estimation for network path with CUDA - Improved error reporting messages - Improved performance in active message flow (removed malloc call) - Improved performance in ptr_array flow - Improved performance in UCT/SM progress engine flow - Improved I/O demo code - Improved rendezvous protocol for CUDA - Updated examples code - Bugfixes: - Fixes for most resent versions of GCC, CLANG, ARMCLANG, PGI - Fixes in UCT/IB for strict order keys - Fixes in memory barrier code for aarch64 - Fixes in UCT/IB/DEVX for fork system call - Fixes in UCT/IB for rand() call in rdma-core - Fixed in group rescheduling for UCT/IB/DC - Fixes in UCT/CUDA bandwidth reporting - Fixes in rkey_ptr protocol - Fixes in lane selection for rendezvous protocol based on get-zero-copy flow - Fixes for ROCm build - Fixes for XPMEM transport - Fixes in closing endpoint code - Fixes in RDMACM code - Fixes in memcpy selection for AMD - Fixed in UCT/UD endpoint flush functionality - Fixes in XPMEM detection - Fixes in rendezvous staging protocol - Fixes in ROCEv1 mlx5 UDP source port configuration - Multiple fixes in RPM spec file - Multiple fixes in UCP documentation - Multiple fixes in socket connection manager - Multiple fixes in gtest - Multiple fixes in JAVA API implementation - Refresh openucx-s390x-support.patch against new version- Update to v1.8.1 - Features: - Added binary release pipeline in Azure CI - Bugfixes: - Multiple fixes in testing environment - Fixes in InfiniBand DEVX transport - Fixes in memory management for CUDA IPC transport - Fixes for binutils 2.34+ - Fixes for AMD ROCM build environment- Trim bias and filler wording from descriptions.- Update to v1.8.0 - Features: - Improved detection for DEVX support - Improved TCP scalability - Added support for ROCM to perftest - Added support for different source and target memory types to perftest - Added optimized memcpy for ROCM devices - Added hardware tag-matching for CUDA buffers - Added support for CUDA and ROCM managed memories - Added support for client/server disconnect protocol over rdma connection manager - Added support for striding receive queue for hardware tag-matching - Added XPMEM-based rendezvous protocol for shared memory - Added support shared memory communication between containers on same machine - Added support for multi-threaded RDMA memory registration for large regions - Added new test cases to Azure CI - Added support for multiple listening transports - Added UCT socket-based connection manager transport - Updated API for UCT component management - Added API to retrieve the listening port - Added UCP active message API - Removed deprecated API for querying UCT memory domains - Refactored server/client examples - Added support for dlopen interception in UCM - Added support for PCIe atomics - Updated Java API: added support for most of UCP layer operations - Updated support for Mellanox DevX API - Added multiple UCT/TCP transport performance optimizations - Optimized memcpy() for Intel platforms - Added protection from non-UCX socket based app connections - Improved search time for PKEY object - Enabled gtest over IPv6 interfaces - Updated Mellanox and Bull device IDs - Added support for CUDA_VISIBLE_DEVICES - Increased limits for CUDA IPC registration - Bugfixes: - Multiple fixes in JUCX - Fixes in UCP thread safety - Fixes for most recent versions GCC, PGI, and ICC - Fixes for CPU affinity on Azure instances - Fixes in XPMEM support on PPC64 - Performance fixes in CUDA IPC - Fixes in RDMA CM flows - Multiple fixes in TCP transport - Multiple fixes in documentation - Fixes in transport lane selection logic - Fixes in Java jar build - Fixes in socket connection manager for Nvidia DGX-2 platform - Multiple fixes in UCP, UCT, UCM libraries - Multiple fixes for BSD and Mac OS systems - Fixes for Clang compiler - Fix CPU optimization configuration options - Fix JUCX build on GPU nodes - Fix in Azure release pipeline flow - Fix in CUDA memory hooks management - Fix in GPU memory peer direct gtest - Fix in TCP connection establishment flow - Fix in GPU IPC check - Fix in CUDA Jenkins test flow - Multiple fixes in CUDA IPC flow - Fix adding missing header files - Fix to prevent failures in presence of VPN enabled Ethernet interfaces - Refresh openucx-s390x-support.patch against new version- Ensure /usr/lib/ucx is owned at all times.- Update to v1.6.0 - Features: - Modular architecture for UCT transports - ROCm transport re-design: support for managed memory, direct copy, ROCm GDR - Random scheduling policy for DC transport - Optimized out-of-box settings for multi-rail - Added support for OmniPath (using Verbs) - Support for PCI atomics with IB transports - Reduced UCP address size for homogeneous environments - Bugfixes: - Multiple stability and performance improvements in TCP transport - Multiple stability fixed in Verbs and MLX5 transports - Multiple stability fixes in UCM memory hooks - Multiple stability fixes in UGNI transport - RPM Spec file cleanup - Fixing compilation issues with most recent clang and gcc compilers - Fixing the wrong name of aliases - Fix data race in UCP wireup - Fix segfault when libuct.so is reloaded - issue #3558 - Include Java sources in distribution - Handle EADDRNOTAVAIL in rdma_cm connection manager - Disable ibcm on RHEL7+ by default - Fix data race in UCP proxy endpoint - Static checker fixes - Fallback to ibv_create_cq() if ibv_create_cq_ex() returns ENOSYS - Fix malloc hooks test - Fix checking return status in ucp_client_server example - Fix gdrcopy libdir config value - Fix printing atomic capabilities in ucx_info - Fix perftest warmup iterations to be non-zero - Fixing default values for configure logic - Fix race condition updating fired_events from multiple threads - Fix madvise() hook - Refresh openucx-s390x-support.patch against new version- Disable Werror to handle boo#1121267- Update openucx-s390x-support.patch to fix support of 1.5.0 on s390x (bsc#1121267) - Add baselibs.conf for ppc- Update to v1.5.0 (bsc#1121267) * Features: * New emulation mode enabling full UCX functionality (Atomic, Put, Get) * over TCP and RDMA-CORE interconnects which don't implement full RDMA semantics * Non-blocking API for all one-sided operations. All blocking communication APIs marked * as deprecated * New client/server connection establishment API, which allows connected handover between workers * Support for rdma-core direct-verbs (DEVX) and DC with mlx5 transports * GPU - Support for stream API and receive side pipelining * Malloc hooks using binary instrumentation instead of symbol override * Statistics for UCT tag API * GPU-to-Infiniband HCA affinity support based on locality/distance (PCIe) * Bugfixes: * Fix overflow in RC/DC flush operations * Update description in SPEC file and README * Fix RoCE source port for dc_mlx5 flow control * Improve ucx_info help message * Fix segfault in UCP, due to int truncation in count_one_bits() * Multiple other bugfixes (full list on github) * Tested configurations: * InfiniBand: MLNX_OFED 4.4-4.5, distribution inbox drivers, rdma-core * CUDA: gdrcopy 1.2, cuda 9.1.85 * XPMEM: 2.6.2 * KNEM: 1.1.2- Update to v1.4.0 (bsc#1103494) * Features: * Improved support for installation with latest ROCm * Improved support for latest rdma-core * Added support for CUDA IPC for intra-node GPU, CUDA memory allocation cache for mem-type detection, latest Mellanox devices, Nvidia GPU managed memory, multiple connections between the same pair of workers, large worker address for client/server connection establishment and INADDR_ANY, and for bitwise atomics operations. * Bugfixes: * Performance fixes for rendezvous protocol * Memory hook fixes * Clang support fixes * Self tl multi-rail fix * Thread safety fixes in IB/RDMA transport * Compilation fixes with upstream rdma-core * Multiple minor bugfixes (full list on github) * Segfault fix for a code generated by armclang compiler * UCP memory-domain index fix for zero-copy active messages- Update to v1.3.1 (fate#325996) - Prevent potential out-of-order sending in shared memory active messages - CUDA: Include cudamem.h in source tarball, pass cudaFree memory size - Registration cache: fix large range lookup, handle shmat(REMAP)/mmap(FIXED) - Limit IB CQE size for specific ARM boards- Update to v1.3.0 (bsc#1104159) - Added stream-based communication API to UCP - Added support for GPU platforms: Nvidia CUDA and AMD ROCM software stacks - Added API for client/server based connection establishment - Added support for TCP transport - Support for InfiniBand tag-matching offload for DC and accelerated transports - Multi-rail support for eager and rendezvous protocols - Added support for tag-matching communications with CUDA buffers - Added ucp_rkey_ptr() to obtain pointer for shared memory region - Avoid progress overhead on unused transports - Improved scalability of software tag-matching by using a hash table - Added transparent huge-pages allocator - Added non-blocking flush and disconnect for UCP - Support fixed-address memory allocation via ucp_mem_map() - Added ucp_tag_send_nbr() API to avoid send request allocation - Support global addressing in all IB transports - Add support for external epoll fd and edge-triggered events - Added registration cache for knem - Initial support for Java bindings - Multiple bugfixes (full list on github) - Drop UCT-UD-fixed-compilation-by-gcc8.patch as it was fixed upstream - Refresh openucx-s390x-support.patch against latest sources- Remove libnuma-devel on s390x for older releases- Add UCT-UD-fixed-compilation-by-gcc8.patch to fix compilation with GCC8 (bsc#1084635)- Use right documentation path.- Update to 1.2.2 - Support including UCX API headers from C++ code - UD transport to handle unicast flood on RoCE fabric - Compilation fixes for gcc 7.1.1, clang 3.6, clang 5 - When UD transport is used with RoCE, packets intended for other peers may arrive on different adapters (as a result of unicast flooding). - This change adds packet filtering based on destination GIDs. Now the packet is silently dropped, if its destination GID does not match the local GID. - Added a new device ID for InfiniBand HCA- Drop doxygen BuildRequires: The documentation was already not built with this enabled. Removing the BR causes no regression in the package but eliminates a build cycle boost -> curl -> doxygen -> openucx -> boost- Rediff openucx-s390x-support.patch as p1 to be in line with potential git-generated patches.- Switch to version 1.2.1 (Fate#324050) Previous 1.3+ version was based on a development branch. Supported platforms - Shared memory: KNEM, CMA, XPMEM, SYSV, Posix - VERBs over InfiniBand and RoCE. VERBS over other RDMA interconnects (iWarp, OmniPath, etc.) is available for community evaluation and has not been tested in context of this release - Cray Gemini and Aries - Architectures: x86_64, ARMv8 (64bit), Power64 Features: - Added support for InfiniBand DC and UD transports, including accelerated verbs for Mellanox devices - Full support for PGAS/SHMEM interfaces, blocking and non-blocking APIs - Support for MPI tag matching, both in software and offload mode - Zero copy protocols and rendezvous, registration cache - Handling transport errors - Flow control for DC/RC - Dataypes support: contiguous, IOV, generic - Multi-threading support - Support for ARMv8 64bit architecture - A new API for efficient memory polling - Support for malloc-hooks and memory registration caching- Disable avx at configure level- Add openucx-s390x-support.patch to fix compilation on s390x - Compile openucx on s390x- Fix compilation on ppc- Update to snapshot 1.3+git44 * No changelog was found - Add -Wno-error and disable AVX/SSE as it is not guaranteed to exist.- Update to snapshot 0~git1727 * New: libucm. libucm is a standalone non-unloadable library which installs hooks for virtual memory changes in the current process.- Update to snapshot 0~git862 * License clarification on upstream's behalf- Initial package for build.opensuse.org (version 0~git713)ibs-arm-3 1683644862  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV1.13.1-150500.2.171.13.1-150500.2.171.13.1     ucsalgorithmcrc.hqsort_r.harchaarch64bitops.hglobal_opts.hatomic.hbitops.hgenericatomic.hglobal_opts.hppc64bitops.hglobal_opts.hx86_64atomic.hbitops.hglobal_opts.hasyncasync_fwd.hconfigglobal_opts.hini.hparser.htypes.hdatastructarray.harray.inlcallbackq.hhlist.hkhash.hlinear_func.hlist.hmpool.hmpool_set.hpgtable.hqueue_types.hstrided_alloc.hstring_buffer.hstring_set.hdebugdebug.hlog_def.hmemtrack.hmemorymemory_type.hmemtype_cache.hrcache.hprofileprofile_defs.hprofile_off.hprofile_on.hstatslibstats.hstats_fwd.hsyscompiler_def.hevent_set.hmath.hpreprocessor.hsock.hstring.hstubs.htopobasetopo.huid.htimetime_def.htypeclass.hcpu_set.hinit_once.hparam.hspinlock.hstatus.hthread_mode.hvfsbasevfs_cb.hvfs_obj.hlibucs.solibucs_signal.soucx-ucs.pc/usr/include//usr/include/ucs//usr/include/ucs/algorithm//usr/include/ucs/arch//usr/include/ucs/arch/aarch64//usr/include/ucs/arch/generic//usr/include/ucs/arch/ppc64//usr/include/ucs/arch/x86_64//usr/include/ucs/async//usr/include/ucs/config//usr/include/ucs/datastruct//usr/include/ucs/debug//usr/include/ucs/memory//usr/include/ucs/profile//usr/include/ucs/stats//usr/include/ucs/sys//usr/include/ucs/sys/topo//usr/include/ucs/sys/topo/base//usr/include/ucs/time//usr/include/ucs/type//usr/include/ucs/vfs//usr/include/ucs/vfs/base//usr/lib64//usr/lib64/pkgconfig/-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:SLE-15-SP5:GA/standard/87f022ac0f6d68cd280646c0898f2d13-openucxcpioxz5aarch64-suse-linuxdirectoryC source, ASCII textpkgconfig filePRYnesײ]A~utf-81a8b6810d8ba1bcb8f3a6a5c002a325f9bc177f71a267bf0272972ba927ba913? 7zXZ !t/] crt:bLL ֭3M|nԐ0AΒOw (a!^)d0q8r@j뾞;|uy# eoPFO&N W}>@ӻmG*##iu{\#`(c`##]sՏÂk8D 'zN%F+'`? $hk2Ue|TV*f~7IX~R' <}=QI6w rX]%*̛!rBG^NaBp+Y;ӹ^ZS#l,f(EA5ϣl `&)\OvM3)J-Ht)QHq t58?L2[W{:thjaI xg2 rCJ@>>KS R%We']A v\ӹrN`H&@]82y a1Z/jƯQ`xW53] Iq}~{z)A1+2&*l`t-Ȭb:ZmBH)I_ųk)٘թ$Ō3"t0!`K0Uo`vlk՚Tq 7F/H4 Qרޭp-Dq{-nK+g#Rl "#Kp= Ҡ>@D a} ڴ!%OKA.^$8^OHpjBUZ4qDp8o(Bӄk]iN-ôZN3"BF'!*S ^NQZ8 J^GQD/,ue6Ԫ  R1nj47F1u'ŧO}O8 KܢKKw /x&)/seA#]OPG>Qa -T4>(ʽ@PY{.ھ&œJJO+fj#I }̂*|jx҉|n IҘoHfK pM lŠ]x_bS9!0cG_Ɲqe$38˽*"O$gDeyFW`b,_"ה7t~Syx ">&þ"T( ?9CYU.ϵf)$n%IQ;VJDmItK䱄9E+ l>mfKr c2XQ235{:,#b*{9ڇR2V_؉o=}Qth>Dq3B!i\|\"C3[s&9(3)M q3 \q(BT;6yuF?,wbZ2BkM|K}B*\,;)P*ƌny6QJd'J^(}/\oT$K` i)=E|h W;]]'M-Jh&AFotgyC ~Uj~t }{Wpp[|ڎN^ma^k@R̝om=tIZ8_窀32hvȸ!Í{pxQ(֔ks3^7Ln9aXD lky:{h,| T VeM\?Re(}n?nf L+vDƯm{үtHމSYj<%GԃEX{T Uc@79'#bFPMlA{Ϟ<TUi2|M< ;U]J(+Ir %a5b7rKr;KR)&='sR2ՊFZη;0:(RwKo:^m3˴aS󙀿k9>;? 7zNDXU4kz ^5$Mr?iZl?GF8"=ݒ#s8(c&8Pw%+~]qmEboignN _$܍@`ZZ2< \ynHPC"D&*@+ru-7)6Γ0Ba!y@XTV/t՜gSbHruU)-}ޥ7kjWy%cM%?hS@8ӄG-W5/ g9wD(!O,fVLR$r ֨'w+]%.a?E~R0Yb?vrBƼ6J1+H91_*s 6A, 9_d")|nc eb+^OЊֽf'{0Ubڭs e^fݥ{[aЊpH_";c:M&fжn] oYcV vѫN9ĂmH[ړbdiWG%#n>sDNHqf ڗ@BR }}ƌFάGX-|.IB?;sW7ɃWe[vr>E"mUC'' $2=oe ͻNan0eۥ yT1L8 "= )(q?F}/40:ڕ|p@=Cp EuzT"43ЯI{D;c :b- {ݪi,7ļUveֲ![ S hvB3=\)MkBBBNBnl0FYbP`Wo(Uw(qlut6#ɧ&0JkOh_nة0F& 5T*HГ!eR`mmGp/jhߢ{c26nP>{YOCfΩ)Ͻ9 , *bl6YQB6C:WqRgMs9Msnc]FF._UZtd9vYgMgUUӖՃ~.zUxF3{{,dĻe|Q[T(zq;Y.S(xw`<M%KWӹOQ.Hu*K2)J<\IYC\­ K:8=tWq &,WC]^[2 lwnIb}e0Pi1":QM%M}=X.*y8^hP߯/"J6UnqP%ؾHpejG22V'6' yEbML"43R%\_iE+t݀Ď+ȀjB=.V כ_b%(8}<_ "Ezu\-|8\ԎazjMW_fAKDwK'&,͑n`aNli>7ޟ*L۸ zr㺱ElcYiY+ʉnZpX~->BmÐҽgCrGgmT 3Bl㵡A:u`ʷn}j+70Vp4 R"KGNJ=(LhBkś^PXs n7+q"҉\0:V*|3+hI[J.n\܏gy"Y>ޗC&2 ZWiY oM'Urm%BO4 U"7%Fc4K\cRz2iA5E% wD6%K& 4)3mI<VC.G/_-cP@<# {>ۊELb?>gAd}Rozj ׾ڃz5][|B%JO(1 GAt`A pzş"𐟷_=߈tQ[_dljwsb^Fz.WE2TӽU3&s;42G,uꍧV}1WԮӯ𹞪/ؾvY >  ~5H=Ѥ|a+,\đg-vy\!\@X2<9N+m-hFD NPO.PPe#s"P4P#FTD LpVb,a*Mھp962 }Vzw$3H$$:H~@zXF,Txa_=&Xk?yjR3ͪYc򏥗  ~jR 8+W&0: M*`zD|ƒwok&-kSDP9`t'-fe aϚ;̀"$y|_+MuBB+L}xZ/D+ev ;u`"WYXLD(ȝgA(Z2@L~%Aj'j4iuyJF$L(]5 #A.w,h7L@˟4,ӏVZjM }%DLqeO9ߧ͸E=JԌt%rq vu'a=%T3[ IGd&$m )ʽB ᨺ㳹RxEhfec%3okY ?cw(YwKFx65^=[X82#<3H%2+g] % f;YSra<\HenUvXAo$%bJū(mqY"!*+* (JˤIsvjށ񢭵ʤvLBaACXS >@/hkoa1? 2oU?MW}["2__rzblȺ Sl6V" `}H$6=3:I蹂'7ƙ|NQGO_z}׾I(^X|,-선Rߞ+YB5'^}8\{evJf O>L9kғ+*mc˩@;~SWܖ$+YJ<gz_2c\{W72p"Y 4Q+!ߡgmyL<(;pcBncW( /^&`8>W rl2RqS>p[',_N$'\ZUyj>|`ۥȐ/JOݫGU`'˧ O9ooM`u$T vΣ-]0>ۈ!x|kjbOɋ(4qӉvH~.^`V*W= EJ;,0p2Ѵo[.^)V0tsՀ^tAdůLUz: M t;y-<qZ0< =`B)S >G!bHRp-gn]Cx}^RHaT=9#CR ';PymF)ܿ -Ղc=U()#' 5֜br\<#lr[9Z/._F\Z[#E^%Ee Tu#¤9@ջ7܂cdG)q]mn3DkO0ǿ/Fԩ(&N7(FePRQ֏{yDߩ).uKwv8lS#`pa>^\Hؖt⩅@97q4mgTz"C!n龗b ]Z{7zDh#_JNx5 s|4wi{phRuzw F-!= q[7N7 ?27obʈ p|vtAJ,LZ&8eQz( `{ Yۃ{[ZXjJ`@7 zR%U(wom^ R +@,F7(GbcƆ4qzvz+\$ SXhqFZ1gQ¨˖alQ3 +4XcIn{{y wJP TXң7jK~,?8IBpTS,)'Jid\hh ƚ򐿹#}Yt]K4-Z5vkҊ7?}{[ zm?Hl)`u|etg`.vF*֭^ndXnǟ&Sf8szE`,=f(˙Bݘ4|q<kNˏJܫ&9Ԩ۹2jODB|΍vKX{=-,(!"+=,_Y΢c`PEپ"g>JrKAwmHnR8I La{ڦـxmetW{ufI#`袏z+23O RX@Q97g@9&}(>;HBe7bqO7&[eDӹH6zEOUT,W6ѝ]KMS; z D>f/`ruCbIr.(k4>f|/Է?r6IPY_ n CKPmL9=:R:c iV&Qw߅M*f@8Cc}C>.x{h$ΰm$?P[fρB Y Lp2 A%: 9et|~㮦-/ݜ%7DC:{~)Yf??Zhvx2\}:C⓼ܜh Y2P-LIR?`ع~ յgN>9ɻCC"beBZgIZOQ`H#|Ï"8\Gl%s%/\ -Dƹ <5'{hweލv~`Sf)pe:w|p,P  2yGKMwzS~GJNipό|*?:(*. yr]py-6!?t%1 66DD\zh>uy#y21W C^ہXhQ]19\н5SD@Y5 xWi=lE3e'O>iuaxVeG|i槖)l}Uhrw0 DQ4.u = l՚؁us'.s}TJ5UJ8c^T/-.L[F7- 1{uND6%Z$Qj_01nr>3$U11rK~w, F+I:p沇9WDT$c{p'"gշ˜ :&#n[ Lb:>A D/0`mԃ߂zxNH,;"V2o NWP<>HObK FNb;`S {c_D12y*ϰZ&Qǥf<7-/*~J$(ʾ?'}wUxb?픒AÇ^u}#yDAz +Ȩ~7O??'ѷ"ub5AHaӤ BjR,Wx~;s`u$9i"kNJSr;u|x?#eI1X-)`N@*m4B:ۢO+cdSJ-g#u ZTT\AD [,͕(6@g#R)ⱨ]*A!>! ٹԻ-vxϤOE` [tVΚ;̏m2"=h|/fܛI$SRhV6D3BLǪg[D!7&XC2=a3&%gFćVKOǦJBpu;sP&Nt60ΓgףBMvesd6c6rF5.@|tyVATK?yd>XPKlè<RL>ˏ.:uq40URyB[%èJ:rg?sK@ -)~k C1^¦Ò(WGL?&i^TN5ˑw Q|h3}? ̫'@Ex Cl9>c tD(Q[B9wd끍,8Nz]Eb )E:X(0l1xṳq'q Ub8Lظ۴zJƦ̷ р+ZϾ/FQ^*~4KN2y;݌UF4NNۉdmx(JG<}KŅD.6C[f_?S`3_(:ߛz8Yn27>Ssp{nUoh k9g4|^˺%JMP)3Lv U46w3Y^ jA/ _ ^ԐR妤&ogu'T!۷ z] E03 x``E)L<е nΛYK^jUݢ4e_6(-JNw¬x[fͧ @,BԚ 5!.[ǗY`feh(X)H%o%א}yCiax 46!ԳBSte>&M7- Da~57#l5=CAskiw*/<_@$V“{oi LȮRέѓrvh Y!EBEw׾̰2&s#o6'.4F+~1j"BזZl>S-#7Xz!Ju()i nvgOTR@W3B9b㽉~֏^UsR?cwdpK2/K?~|X+# n͞.7fT\-ʰY{ԜR/TIYWb\!?O,82wGy+P&T^1< F 6k̛҇=R Z-tkv2b,2u(Fw4+IczDIzw>>8,j6#4zdPT /J@f3:uXaMj~]) 7#4[ـ |F+oSu]#P ~͕qD٣ %9֗+']˜?EN*f|sC -t  P0&85wcmB3s]6]-U#^M:vgѴ{齏–h PhTՏ)_phy0r֌~ߕgDS%LX"#+)hct%Dlb%o_ްcyDŽ#!јA/dlފ>o g֭ZgS3Ie2·~sLIB:/]{¨1 [<Hӊg,JiBB8'3|]zC%tf\ ?,/OxжpUQ1C{g쎖 2ChZKaS~fP. =D./!hX -' B#:`m -VƃJ_5SA)ljPG n>-y hz?*w'衛% d|S]!G"zV 6м̌85hz0o'.Q;0g j;GRXw{CTG D1ΘmkƙN⨑Q: \Z cŧ?9_nUP1E S96n(mջ?$PcHrQNA#v4A/jF?3⅞0_Gm^FP:ڥyDJH2T4J,<4bDHSb)u^+NH+[=ԫS2D=*dK2(`'}R9|PK?:!"% X`Ig+ `@ފ@*.d&Ғ҂ {K 7j.v,6{iWWֱkX^h0kz51"Es%f HJ J/4V]"EV殡 4_f0@{?2ӼS$7$bkY DŸU8 yaC*ziϰw"zMO8@K@ý3)@y-h\M̝!-ܢDQcݗyޙA~ud+[, T!CĒ#/zi5B#6lEE (A A1 EjNfHh$yD[GK8T@nPeoϹD`KcCYK&+*5jk޾,~?5]Ŭ];*d8:ObބxSSO# dѮψ̈́5^3Vg0cR?dWmȈ$GJ]@=컙|@4_>M''pd^h6겟C==gnC(qԽؖ 7,ߘ#7'/S8w ]&<[Z #DWu0b9x͹DtB'_6vpC eSڑ  wpdzĐ: ƍA¾QI>=80۠X&sDWR n4<7z&  ; sC=iۨG+Jb؆^u/oE~;{6FGWZ?@~vѾז,KVg/7h^JS2_Mwi"-\;Lg}Me^ñFp6^9uQ+}<^ z a+n+ {GճG&&[˅|oŲ/,;ŕUk@\xWU&uQR]ȌɹO>]hz!hP.@73E7X I-!LܔsmD>Ѓȋ~Bv8=DƓ,m=694{WwȉX@EͧinE j͑11+贚)UL`+K~IvՃԵ`XxB.ԯlt3 9u c.ga`&Q2F;])HeG+:\wpLJ!'. ZNV!{q BεQq;mw1-KCLx궥pb =M6$2[w7L0c'uƢAY=SZ0/=&Y_yʑ,΁^nuš),ȃ㸕^ZrAsa$/bݍ&@V՟jFSƼG1 %du;Sxa:2QG+{D)"z+P96ȴ+]iOh/: ؙH!*?qR%g$ p&bYjSwAA_JSIie50 + 58H!{[քv_z~k$s"Lʀ6 Ymɢd=c\N-T,dޚ7"1Q2 H (f:zB39wl$u*ydF!.ٗ*Y4xTs}X)l#t-LdVeRV-| %a MX]:yRhܞ7o 9֧ovԻμ?VX3SvQLd?7G}A8FUJ} 0FL< r|uwG>ꇞgS agfm '8qbf0(@wl&q8bx 6#㴰{@Canqi~"l/Q.ag")GL%3qUV;NK,DF&% |n1W;rF@ 1ZL-tte! Oԝ[y]~ũ‘.k_匙xv׺RL>qk-s3S Kr*Snis28snoLhf TlQuV1>0BX̓Z0lGOx}O̷-r$WzJ:3`U0*If |u-PapWtTGyAOJ ״C梓m.GjM5Qii*13*3᭾qIL ܔ/ H gpn<ldc;6>K"BC/Vojࢧ$s0" dzv|%>҂]!g( [?蚭#ATuWFc{ֳ#wmuB~N VT\?#VNLf U[Ib֜|A@S$p89-.P~5ONpպ\9cq$}Lߙ#NPշq.}H,N&-da:XLK$SC2-P'4Bkv<'rs 2 5?iWjZm۾Q?0NG 4,> 7F[ۨd^)Ey611eazuABm *͝t(7R۔x1{+CJ̽Hh>x{23FF!+ȟ%cr78vQVG :LWUqgS~w/`3ncgȇV3Bfjܥɍsri'%FICy|}jgP(/FyKXc cf>vU#N{?B,K:qi;|a^đ1o뙈w^,5}׺FTsB'H~ka+P'B 5HWo7"ףT@gW (Dm4&X>(I`q.G'Hy9ˈS s5<>y,Mz=}s'Eʝ v3$Rbuy-2/%|(nkT⟼l_RT"clzXXNްK=L#T8"*VZ7@bZUJvd̆4M\RyS!߈:˿ On4oX黆4)/q|V&8(~oYd's3#S<%#JEݐ*{ҜrbBVWQKel~M'Motad0Fox(OI|(- l9E?}Tʀ9XYϬkѐOW'rZR}SPt$72oe2snl^xoXqgPaPd7!ԝZ% 9 O?)  H"ifDŽ*ؚ_E!bzLPu ~U\L2 *(pdFm/x9VkeҚ2ٛ17O*GVh ҹo\]ȠγݹWp[Afl[| MnM{e|޳f+2i8Bp<[Կ1O]Ob2 gvO2z 7 GSNWL.,^*{v䶧]!iRY|cOXue}Crj:Pom~ORh3dkP5._ǺU:F=_rx` "4CN'MՠdZ|>$V%\|sht^KS齔^yxlfRć#4&r6U:0 XJa-Wjz;XNo)zp-u Qo_Պ3riPSQ*y`J_.ʲaǖe{r~z" -q#JXV#w(WǕ;O8(Mx3rcyʷw$Ӄ'pHg4 fK"XrkyT.hCNyƂ'>̳@8`6ԧ@A{]5C@[5kN!Gv)ԄhCMok6Il ^[q6&i&9\i/]SB &/"e%'h@֨Jؕ<NQFw ZF .->}Txl%MR?5H vjly 1c6(V@1A7{uMP*-oKFK 6zlgW&1W7 U!v58aa]O)#(ȯ(2ZCXi(LC]e*F7gI 9c|R[8988kZB-JU%ɡɠ%[T^'G{+Gk6hZ|D2v- .I{4&IoouxEׇKz>ޗ!ũ AO{{w QXh=i]KQs.wzZznz0P~~ˋW(_nt x5׬X}s)sFF lW4[/ W6"9{M\ O>i{?+Q>TWVٮn*NzqVQMx1k$wzpBIK4iߑMWR XB)pGdpe_=J|w6#):srb̝&H,)>rvg֗d$TRy}654Y~k*.Ok|0Rc0W6DBm␮Q!29vkcUVi;/v2yTsJ<"/r3(\]03~MN>Jbb_} \B v䉣"fjG-!u$=Hj.פo4ņy|+' {{I#S[ F0#QNg%RՕz I0\GOl;yy;b0ámHR:.,#! ~akP-ZtC=M u27~pSѶމEQaWoe vCFАKh:sGEԞn,]o,fmגlTϫUc{ϛ(e=MjqsBv- ,hc(.Hǣla Vpcm?$v Y\|,ab]Pċ2;1RNtxYNy|*H]*S.e,W߯$ )g ='rAXԗy+eRbDZ {I0bɈRB꣒,9wq qqC'DOcqb:ݮU-!T1 >{:u@Dw>n6ۭwZmy аE+~_]=Cwb#Ht5~g@yU!Vz`8ݲh=ME G])8{;gˤhl ӯ]r&^}4wbNl'n1ЄF%GxJiF^}]RMɠaF2. B2׫̻ٴuQodipjiI,}7LEq>y:+h$Dnjd*_  Ko̩dJ9S4]w|h,DNa{) &40C0K#ЧB'Qʵol d#uc3DRB!h (ϧ7y~})-`7ļe7^]Br%bIho)w{YibzpHM=fȂ L,Zmb!E=ޖHC X,jÀ?G~JUe$8K,]e){old:S؁ E@|̆W|;_)T[/dd=m_\@˒ 7uknpvfXpxw17 +.*DQ/Lcݎ<1؝xߙ0ѫSDE1{g ?wsxR_V]' dߞ(@AR*].]2gǗ~K+eIoxM*)N=h,ߤtwČg#(~`{'ebP[OL-CnW2WtB8j:!:<1xhwjB~Iv^Sa&/ 2q.?\}A%rϖ+@B+/Tx1q mЇ%?aK&d+T}s w= {1~@IV{'2PjDp. 7uc*B(oF XjBu"`_F c,J0g䋔\*(.?ʗHHX^<Ie5:ߢ 5Y'쨤TƼ,PF:U12D H(SNs$<O&s[*ז(?d9rt:Kx=X^D%hj*Y#*T{# "6j^S'$]v3ޝQq5/Bu,$+ ǩn,Q'MR߆$u*Y'8⭿SPK}S_VBŤN,`Vr 8B M^$ÄCq|;xqڹ{ڻp) Bfo^mvw0:hg}! 9 O>+w $1Y "kFnY<ڑ }ſб}ˇs@";{],=0dpBHwOI6TyT%}ߜ} m^2qp/R*)A\H#]jV1ǬϚ;ˁV H{vVU3ey2Fna7`zRŨ|?9Q"??2DunK% %n!ȿ&(Ȣ=u{KkX% 7h厄{RSk)[GJLk砀 &G uGL(do5*^mJNFU3ZsdgUMZ:<8&bEr 3A MhJ!>;:ݹdU'F2\aj!z.Smn(+6*E c >V^\4̾?$ |Uʷ5 M_[|7ʐ&)̣jM/&|)'j^oj_Oj ]v-9vE \MD]dX7э }(1ᦇ٭À6#eƼ'>65W34An ̽,ԏfED&F~e109I'n5̃e\tփ0!7].RzQ ur8|ud;_9b&'ذ}C3*K猡kZ"`5eх1Z2f #JӸ>!JΜ) YSn rj׼/H_^| ˳",$ ~w :y+`ə_/P)ڭ5f"ZLorsCzH_XX;j6 ~军,9\x-F7tȬ0#פpW(:*>#DrZnïeW|oޒDG)B-EPsEgD,^L2KjTt0T(]V nRߝP8r8\)&O)JۧY2~/\f9[0{Y VG>Lल"lcyW2(eVNdn+mUpO|T*3IlbX,['Ȥ] ~u%+PM(0x@2.AYqϸ/=&TN7;ykF՜/eZQg4)=@H~9# 9Ad9K EO1"UHJ]2]?߆ 1I90Oh61f=YDP>Q bY,Ϣ|Ǘ怌v %B4SzJ59(Nfp;×;#FVlVs,Trcb]C ͮrUbU]o(ZXbTk5S$9jᲭTCehXrFCp z1r:D*^&/n lu%|[j 2ė'_bW?zF֔e$}3# mM`mڦ \d./φ2iiB^jwSUT8CrF_T*Ұ ;NlH& 53~;fW8@T|JNz-!c(}0*&< ~rcd-J)E"3W>b&fȒf5-- qe#U|7npϥje]ʮ.S-F"y6Sm'hg+SQMߧm@F+el I0ܣ5"Dҥ_%;l44>`YCUܩln4őmp hѩR"p0)P{`oBG t:>'w8 zK9(P> -1VT"/#tNf ˢzD!ܢXN {W#@C[lf2tjGpxз~m/x"ڻHK "/P5A2*y+muIZ&l&G&F(EҔ٫$3%~rtkS_*s$F[(JZJk6(!ɷMWhв$`:n}}VB_lFآ<PoPϣj~JMsl z42II!k=FDk{V ) ݟӡ-=ю!r))eAN%O.poMM?Sf` Ѫˠ0ԧ8_F FH cԚT8|$f;ălYQrFdz(pg|ti:Fh^ŘHա 7N,5(?)aVg &ʥt{=3I etwyiCUO񗏊w M6āh@AJYѼ>?b0 _ t<4P3a %z?͒2kѨJOzHA|Zv#Išn'8t &Ý(yX!o :F%Pp㘞ӹ%0~^fSW3)Od|(*ie&8"ehs XSEJͻ[I}Up_ V ~C^XiIXԞ.Ds=wJ=)JR y8=UIa +)of&fO7*%0:(C,Ӿ]zJrSوZk81˷ l/J¡,WRd l O^77*ט(0HL;W'ߚ̚uK`bw*Ζ 3hmryb*1I.-!CWrad޲C2^I<=魡(ܦ 7|/J7 q}\ 'W<;_}9-(Pɽa:Oo]X ްxo<eHOhBՓ8VROSipAv,s5YdbM["A8zyc*+FDW Z_:RR?jS2P{*FZ ?lٰT39pH;ɐ)d\}+8o>h훣~Oʸ_ZR*+v4Cs1WTJ47yIvw"HWawJrk0+uOq,д`bڑ^rr Sk8CG^w{pۚr|lt 5AY}T\մF?q8-q}[;ٮGL$aSf-'Zc&nPwR1v3Kag]Ѧ{O*no{|\ώgvwC]ڱn:;PTP:+_#ĭ d?"`RNg|N.@xcֻ2##J8=)myI4$ `qF$ d,m:j*V@YABo:;CZ̑ޤ6Jp9= uT*<mܤVW.URm)yf<U`"y7G@i|n0SעZ.W^sNO&z-i5\0jGvcd-یRKu|`{ *B|:"N!OZ(TP(L3ot)uHqƷs"PspZ&%soy5ᄋTf!`a;G 3ڱSlC\lY$VDpG@κm'Up /Y P,a'2emN/v B1nu)ijZA|Wn  23y±oռEzئt]qeJW:Tr">!@8G\dZA0U>D 7 Q)Ҹ>>AM|jLHO6#_g*RVA.ٷQޱ ^ N @H1Yibx~ WqY*W$҅ pE\[{mxE,xmS~jIBo`2;Jt^Mg{o~~q + wPIasmؑ.櫿U-;0@j/(P ;(EkV.׷LZs\AsR󄢵$3p帚^j5gO#gQN 6ؘ{} 2b3A, !cxXc!*B1Q~ &ymB& ^$w\V%86er]/5ϊV&uaoF>?ZIb?n";ޓӖӤ'_S0)7b2q>2!d®M4~P `8J󟄽/6\}9SD2[4( ~Jۇ :ޥj1E a~~A$t!2T#Mv}Q>5pUYp%(o`]yE#Pi ~%IMmhÌZD WqsxAxgVx9@Q%\mv7"q<ս".>|Wh5Seaxnal$D H[V0ZlPNLM#m. UUY,Sq99z9#IUq /tnNoΠEe$x;]Ƕ98edkTlHu> yS-J) D4BU70rLUnT.#&0851dm<'wSGrLig$]Fc4{8SDɦ9A=_꬐J,W.L]ҕk&N2AC[szhm]8`^%H zyxqə^}@axz#po_;aMp\ہU+M52K|O1SkRcJb ͯ@v ӪiXboK!)($f*-/Pۣ~]}bљ@'߻ }n;UVg|:ű@aͼyIE;?u(bFhp"oK*qoD!ʦg%Sne #b;.Ayhtnd5B1HdRI_P=FJu-| yx2m4<~a]L߬ww*.>}4{~27$6?TSE|xcAKJsK-˥KfKQ 7̂^`2#h&[cAjOho M+mtclFU@@mТsM^Y\f L\F:@Qxf0cbш4g7LfW69)TGpO$̷H3*Go\nYwםXwvcF =f00xGtÂBA ǰNK$q->ʠb3})՜AB'`xw l!q\0';EYD׭XGXӓ+;:ח/$$C(c8nU$tc0/d$֓kvq"t]"Ѧ9> nr:/FpָV>]`$jUL#eUMsͣaJ{և.xj֡\rGsxiH>26Crh{pܣFw_4rc\nJI*$g~kϞJlAS.ҲHŢVoe$6g4T$W=:xE b8n<#:ѮZgC&ܝ)9Y54B{.MZ W%ZwdBAEA/$[ Sr'1福#1HW*!ĥ5n(CO$=,1ԁYG8߀MDC;@+)J\JM6_7*H&k+$rcIwTuӗ]/:d*.q˷Y<(E&EжMvL#sas¿]Ea`Aw{`U,spm꣺V_q#=~p& b=_p@1"`?4EчŽސ }3,VD'2G/$xL>j;_58}qï.vkFT|NVDLn`ʀ i,-dײM߼Xԧ[dl[s T+,^Bo5I{gW}epy%maŅi>KOb&mP==.)6P8 ZJ&TU\3iyexV7% ==i?r]41| p>ϴ/80_ŦQ<Ȁ6<|Fo-CK W|V8U!DD)'i1hqQVĚpyF[WP-qȉZMQs<㜁({ICLoHȣ$T䛰t@_%TG̘Zƛkp:j98\Rgd?q3۹KP(ۑ3H5";BtSrlSPa'uqg389_cM1i$#|!/Fɐʉ)T͢JT3' -nޕRW_*Ih YЊىXMb%IS=SbuM!P?zZ)zp9g"GʡV$> QN:WwHz\/Jv 2}+5Eu)̄WW(P@cPZ:8=܌6jtOY)ѫ-RO&#*i}bȣ6 т̡Yѻ0&4z{&ͯĸ-Qj _:W ^;_4h484 ix&ѢZ ᔑRXF }pz+K)R@Jݞ͸֋c6s5D"]?Q>cV@ޔދ;8jT钪ӳHg+ #zЦ,:l:~6<`f#:K?rp_Q,D:4\^3NWbt! 4fѥ`uA s~i5*X{ l{ ˵s O0*AZsMtW&cɱb'k{hP,nv0Y1DKEQDz'!* W{PXd #5QqjQ5YVX@NڇLmw>{rnFxeEgXO:qml<B: VfȹU'dSjN;b G٭JET+6ekȷ _:BSu$z\ ɞ .d9eiQX3Aߏ |I݇0YtG؏5>wp+랮dv1>XØ_噮/gEKB=IeX9F8v!G/8M{GwBg%H؃0BqjH$.}*g*o/Xaג0TYNO`DSME"|s-!UxU%c2)Q5Bg`gXGT_VWH_\^(7. 陪iI1IjR}ehn1A():WaZxg]Ҟ9ߓa Ԗu;A@|ltCH-s0+LcȺb~3Z`WEɩ[2)3vY;C}`!g1$ŏm}3hm[>b?9~>IueӇȅb/RX=+<7K5\MoD܉K,PgQMiU+ߣ4x'AJ%yGx2AlI4] OnN, Uy3Z>MF #ioGct{aGq|%y6Wp/ 9,#Ւ9Ai={(lg3>r Ğ<%Sdń-pٹ c< :4@Wܻ_ ̗@p8q:Wt ZŅ}8/[x욉&~j\g_Pـ3n38y5s!ay&@7J"|R+(*| ;Uz قũ b9넟L3g}]KGzhĴfJ۸XW!]$t -<8݁]Ohca0 \BjH̩Q}9󪔽#|1V#;JZ#VS5/CcjluO^=/eGM|ni&S2]ݪsYXl *[.&Aу`hCC6ᯑ>b44K'ޅ' L_@[7ZHTQ«r0jk\`9lo܂wfiZGwMR.A1p]A>_s)8-A|3\ y}ÂwJtA> > "㩛\0L0= ^@f545Ȃ-M<9ɺ9D9JaN8yW{L5(pct=cc O| .2]\n=fjbߟ3{ ೐,P*'@%1R(Ncd?c?n- HGMc$ULZLPMK2e?nd3ԑmJ&UAAdЮ,m:Ǎ4 $hRẀ0%HGט)!K#x4۱%dOL/D#_DIN#52$Vq0~tIv7llM 6ޔB&sv&iFshC5_X:zA B47U"w3Z"y1~iWiDx+`<ل~=[vj8B3=ec'C^s$cnVi5 ~M&Tv/ZDW7qS:"!ʌ`wbl0E'*ڣCʢKrvhwaRW vD4Eͤ*an'!PVoshc2pa#3+jaꎣزxA'>t\0hTQG{^^ ?J/ʋiCyKebWɤq_%d$ugvG2J$j7/[0tez<A,va)<0j{}!CE;M>^e0Ruevsv3 ӜY|;ški:l(0b`ޙ pnDB 97q}jrsDRzcK!k$:8)VV>R\;|+! ߝw> 7\1% :f&!>oDxek0 \Z3ՑUEJ6j$=:QL1;v2NKX`J=ԓQ JR )~2׎3w+ ܻd6ezs06S,ʸd3ݑbZ{#Їn\y b)_8!?#~3IϿF5% 6 @MтW,%Fu7m;D^Sg%0z,v);tE6I]L =½؆"uRߤznc=F 9hJ$c^g<]{Ȳp1>3˞u(k7Z_/CK8{Pr Ԗ>dR("'Zw.x{Z@a{ϓP)fsIcٟ\@F: sO= R;.UIl Z1#6݅q#[VX[C_޴5X#OM;5 W+h MҠ5Y%ux8Wwm':~?&5|O=fe|N5dyd+%'yIVR~b oQJlAIJ"Px [  k C!Q[ǏqxUc VFm49+áM SBJw j@,mQ.¥([tV χ\TB#˒~z$nt b'XwG~g݉ʄj]JWa,<гpP QDbaMXC/HSQE]_|{*[4Ūu#9x$[nH_ b][]M~DXZV-adUN(|8]F縃1 [*9,hq|B*LߤXƪ3}x ̌;=m2vvd"kpD4o FEqی:'g +ld5 sǖQ׺N/:ۂq8Ys 8D ieC, ,nOA ItZKFk?\E( \ZDg%e16Sr_b9/d u15u7SѾu9vUPrm;[rG!mjJtFu-r#]d{BşM2Ԣ$M2Պ}tD3ɫ&UcfugC,r, Q(GA#h7RfͽdEv$M(Ȩ= fgӇK6dپ"seR^ 9gY>'&]z;Z.عsk[&"擪FAN,ksTX,h[, GRb)Z @dS`.Wp)"OaMg ^ xC UKXk*P*@09C 1&]ZӷC ,|ai-hO=ʢ <ißM+g܇!xE?,q+I'J YV?4 F>>YE#;u}NDzҪCIJϐW)/"LohDR2&/;l u qw}p0Gx!hΖXK8ꨗ Ȫ1SElQ8L:\F3bQJ%&F 0'fz\C~Rr.v0a¼085pO\'Q|I&pl4~or dmKQ_mazʐ\_xG,袛Mtbi``…r깋CEQK=sB_~NFcK42~gMq6`O!R`VYY' q!uq5y)A*2LA <ew?}ˁ>Җ/ըs+N^wnMJCEV溦z?FDl) $sÀ:]9YD(QO~`N LQ[^!8MCj` \x#'\*sx^ҌBVQ~5g8Mvs4[+Ӟ~S3͸ZWf:!imjA=ݔ/$fqm\ A @1z*"~SʀvK/nҋpbXљاVxS@=Cv ?TMYږsC{1+ >YSH(|uD Zx;~n0C1`XfnSF,"@9d`ViHp2>Ƴ8O)gKz]8K|SƗ—m5R(oЗۓeӨ˟ذcT*^U!8 ɡ ˒ld "0_o׋kjcS0R>Q8Iq66D=;Ts@(#w쇉Mqy/ w))}a/ M8PLk.7Y6Kys`hd;E;+C,%*!7N }&Vh +YH)YܿrτZ1ZCr:Z QOCپSxwc+X3SkE^8fvtp|+]"%Ɩ"@@hz'\\6'z7Ekυ "ڑA@cqW։VE qu9-&$XDwzATI-Sq [h'Bcxn&P8BA5>sibQOu>a4tYȂfeWlX|:~=ٯJ| ăaFVUH3}DSTx#^DuX-qb6 ^>H}ҧ=<[Z,^%#+0Kɥq&%[za oGAdLy߄R H &y^R>ݫ 5o'BÁ{ G &ZjG?)IVM71\߾9OWh5po̶His;Ѥ}LQ=EMx㨁vaDKJ;)a*#yi!?2iF`+7c+dn\ZJq$lrԷ0jx+0'܈uoLzT.[wFZ|k[.p3CM+ɊleA;1f S 34 {?3`A-15\`D7EGVp,܌aŒG'Nan.]̵lXJ59ңiBou}ZРˇN9{я)1R2^c9y yoFŤuj3N L4V`ruB/? MkCx&M ?F_ 2@ɒuxNqW=PIP,88Qqz (JU$,tY1o-B;W|TŽu:yi6>+T-v? 9W.E-LSSl;$Þl&4M3-yY4-ڙ+D`17{%acDHa⑬[ "LLYx`3k(A)BPG~c Ǫ4TT$Kz1| XQ۞־(&Ȓ9ſ7[Wŭ8qY9Ƞ垧6ռU bM%l  ߂}k~-SƢ²\Ca2T. p3Ne:sMu {v@q ~ M:œPs{ `:ރLF>7(L.߳p0:G2J]b߻ M^&J>:] E K@FD"n&ڪ0"Q:Xrʡw-6~ehX Ɲ%=}}/'v\i;8r^DљhMs haqi ėŖZNٳj8S>e{R}q~ a $(ڄ6[JL_bEGpu)5&nҙKn;*rwl49L$ELλ"nT`_LPW@{[pqD;/@Ci %Ըʙu\'Ĭ1c6'")%J1<9] }zXͼH>؆މ*Yd)lW8͊?eigh޼N7^҈5|&!j i]s|e44\+jn7feF8`Lo_8J$)7ZTq3QNop⭀k\ A(n3~P׆Jz'-CD3:슨W+eAz ptsέ+nw2V m,IdigoυAi"zdn:TѢ#sHg:rhh O.{јle߉j&FL+H1ߒi-gxwR ta؏ iG@g[_7~E6{>5/#";(/0qM!7*Ĵo_MQN^$5h+iXYfyNyȤ)TADZN-2MOuy<*x@2vO3ޅԹ\t㊚C dv m ~)!)x~cACVuH [p#В~Ő!mb.eS}>Q%p>S؀\δ ^R΄: HG$U.fs\ki,[wɃox6sϜc,0`!G!,)Z+ɱhsF\-dvgc 04 lKd\>Mle.qSw,`PF:&uq="ssѭ*̝Ivt>V0 n7fpQh_7]n|'0&Cq?`7?/-B4s jsdT4hfU}38|VYƙj[`K6=Sa&TOD _.hbE7Cb̸1c?Q;+h-pJSKGr ~S4z$qUUlƯkeD]gd8\P$Zر۝h"ᒸ9{1(=`Xv(L-fIl9an&{:#:z "&gm`zȫZO`}2 }``Cѝ߂T<ѻ7()P8?uu0Mxv*[Ҷ:1|F}RK1{ocj@+ttZ|ϴy](n"U$áCI\QG%0ƢO-sDMįZ2:zPkΜ`W^xNB3!nƬFD ?DZgk$VYM߱7UieOwYk"RЃ8ʉ̈́`'TJןL Y_.Qxh 8~Aі~\_ã N_zSTyB|G%) @ mӑvF{5%}p@ -VpFB,ڔ /Jg\ &J_8z^r8,alu䀪 75SMy+p(ty\uMA}k?ꤝ6MbźeI5W+>d@KI8)\tmR҃H?(wV(U42hqn6ɍ5;;Es_$jf&=䝡ÜH k=VD&R-F7!x_9GBSi/0(kھqD(ח|_HžygQ91M WiGԸ.Y5h`^Vb+ ̱29̘Λ tO VA1;m]垕.tf;0n EN"lK_P0ag69qTj߅ UDw,hW5Aќz(gg6,bUi]}k.E‚i[d"axe84-cbafƢVx ̏hC\X`@q}~K#83@YպC')0 P%,p! [}w+il2םZ27Ƈ* X }afd,Z9b>Fwe ?RԬx]цWS{m 6ĨD]B]J!([RJj(Ali@I.URЖ0Zϲ+іr",)_5Q9]IԈ'*3.)b|zU 9v]ʐRƭu9N{U F_6Mwh24m[E݅8ec<Z٫SBބH\FA ˔6O P4 _>_ZѐZ$:R*VmCgo#m KeE¹ ]!B!3\j'8|0۸iV{JEzl ]4Ø5:G9e ihimxgY!rۙhϳrg868q:*~ 4]E(*^m:im՜r6kZ۾=J_Xsޛ\X尘Un+d`,O"s9<}! [%#S2G|Uh̝bCZ K^(dyޏ3eN$j[ =!4>S\`nG)VAۻICģH `  -/TJ/llFsbePuh䎨KDЎIEl1 =\ "S5SWZ5qFh8 7\lL2M'| $>PÅ|JȮ41 -AYX.UИEjLؽxSw~2Ͽwqؑ(0{(|*|*ŬO] *<c юmI1+5GJ7ub7~& UNuJ$p߇ G9bќʜ;c705Biq=j٤y@XHt+}ć`(`!q{ba75w!,^jqh!m0Tޖ@0Ax5'~"i[)@`Zh1!@7jk뽑ydYxe05݂w7.]p!n|vB[#gWG@=oٱe|KgIv5;D24{k\:.XS؆-B@2;/eeyFdCȟNgfbtio ]I$X-QeLڲ;)ȒY ɧ6h)y/UeZ; g o#BA{uOļs= :ߊ>1bh=fs>fRAiW:\k?.ZQuQ_L ==g8?A%x3Q؃|Ę6PW8pη{2*P!?17z u\w"|+)zeJ~zcjlW ,3)U&϶iy4,|f E{R/5 1;>G]eYo9Jg5k QߥЕjp( :D#0MqPD]-MicBTH3 ;>J34Fu<aj>Ali|{>~L q\%ׅ+ppC{2T!v Ww;C͜?C"M ݱ NX9!3kυ8K^(i]z;m =(pIlK\y0Z8>)K_Nf 1#B}δcSB;qbRNԔ98h7`/aB`c=1gԙ)nOFq*LYzD,# |kWZ.9;=]ҏ ݡo$[g#s\[8Yx'781#B_/ 00B瞉qy*Da\^Tɢqi7X-BJ"J7*g:tbenV\lx~"G˴"~]#81}z6:AH<ϒ2P' |Ol}-Ds)(j& JR4u FN)c$DҲ͗Y:]Q7C3ՈvRY1J9sW&VT'r56Yy&*$ьjAUtHɺfG|B~7*f@N'mE~ARQ%jcu 9|Ay "@79Z8:.9܃V %ˍ>0jÑfƓV,Ẅ́G :A(x3#_׷&<;Ͽʜ#s® YL7uK0wÃQBqhm$(o,ib}bf<%S>䭋{r6ũ!cXhO0NbWnaXiqk^:WmJ(7jՊ2T3s m}ٔ蜡OԔ-P<(K7tޞ/(X_ Ymޜ:խݎ\6WUjg@?hؑ7E~V3Jݺz(𐬻R 1߫钅pK?*!,jE}oPZ"mqyT!fg )&>u܃3nPi c86 ,h`z1r2}Z]JeȮB=E]/jHFrcuɸ'Id5BUwvs%lZ]؝n,۽CƫyV7)鋙m a7dRzq&Νv,v VLܳXM4{qJo|_H!sAc$B5?Vgro6*/Wa+2bSC$1`Ntĵ$'½YJ6M!PiYO$)4l^JÔ \c3ҸbΕOǧ7vнr1G\%q܏< =5rA{@*g#BS2L9[Iǂ .,{8|CI ێ;-,Fi$rwz eN?83rF?(5&q{+6p^:kØUX)19elw*'MfZ0g˄Ps0 :˟vgg<FcO듂XqhTT2pIk Tیup?m]rg!GLy\3ӏHFno@D#v~MQԿ?B0/AxuA)PG4'|E䊩 A1pSh;8fRI,ROr^ iHy:EBxjpe%0dͻw5RXTG {`ԡ [۾(8sIYa=5k`>"$tG.M,Sr7|RcG&!l .'M\La:IJ/bcgZ"f°N{̠K*FdHCcTԭ 鸣!!@34;ս @LmwCVH(1*8G ][|yJ;*nY_" Zs˪*+n@S"0MHkXI[F-RjQv,s0mgXj; 9fPqܰq]v%)K8ckCjdP"DQv*a瑱ImS݈C9C)9G|| :XLB<*6Ԭ ~խL*Xm_OrpÝ֦}JM@9aw# OծމxHe<;β܂dPhT03m75/#/>\:;gr&,~~Xy+P6]1/O~aߝ \ʽ@ap^+GVPc$056 gazZC<_ËVv~`&Q(H>i}ɲJqP?^reP㒹jdJ)֫i?[K'hs<*ng숇irw9ӊϧv(3NimKr"jDnMz7)0+$o[NL͐jtZ[ƒiK|KG'.*[hCtfW_5qY;+͘k\Y-͆ Σ;#x& $M >局 nFN9}PJuxP2#t K0Q:8%k1 w7Qiݏ K9/@A^gfDZf ;->I"T?Q~pqa~=[2D6&zhh@,_EHo7{ ȅ<fd)TBۊ>J@օC/DZD_GJ[X/ҧDznѨHN} QQx)JP}$.[dDQHDv=pXEl;"-!: 2"6t Ŭr8(! sFzgƆxqI(=Sc 0ZFr\:9h>l RUYuŶ?Gkz(OBW{SȤwMC_OEx{FUm4O#f(B:m`S--P7)ZL$]rw”b+wv_d~S hE>O'3H"A)iޫ[>^Hz@'h)؍i zv9Vn I-R'텝ŝg,,ʒ ԗ@l}1BG8PijMc%=6@0JD 0a˽֢=K}mV]x$\86PINVY߀>ktt&޲SפoHڻ<]2 ȻUZ(%tlpqArg?bf_o6g&jEˌ;zS31d:-I$^Ë1wY`A*t9`J VevQxeN&@h51-|Ő<뛨E1PuA|]x\5ƙYPɱout0( |K?t+%fKb*fUf̻@^ I`79A'6 Jjzoڲ*Nw"sjZ;ePnebTI*iI(}́׊fR?;7xSuIo`uJ](5L֕E蟛]KWoH qA: H]]8pMm"vY,L 5xkF35t{E)#GVKu3W5UX;@(jq'LJF!6W k",k|HzpV=MҚu05"#x#Q2uI<dmxSFuJ-$"6`hǓ'OQ+hOCK)4wH}&g>kFTCg (/ӫv}%d(/|FE1IsWUx)3|m79k"ðsrlX5w{%5 |Ek^3޶oՔ*+&Q4iȾLRڸ^NxWcmZv d۫)9e-M\ 5-}Ts "nX] %<|(˅5ٳ]bl_: Ye@VRF{Nlm+27l'KU~I@u/''/,jJjj#|VqlZ**pd*&ݿiܠW60u @ąF{d -$!ljD^#[딃2߼6]i5Dz,Ab*?IQ":Sδ0A -Tӊ<;=a0qW;~+#iGx0˖qC mu&rt$f$(7:.j(q?fѮ)E:7 o?!VmɂIY&L~$[ +kPs,V;$QQ p? B-9e>;imff{KFR+R:֐rgv hDᱩ#B?+,p7 /s$u^9^q1";.IQ!7L݈vJuy|*11/i'B珦qrXcmV|S,l:T>*yMO19ݔV\1d ߧ%O ]YIz`%<@:uT^(R_9WW!6D*v*y)hw;h١X gKyh'`x>v4X?'x,=&"|{&}"Js+Ae2ii9}1IbOL%E$N ^]Z~~i[ jU6a<׾p*A!ê;=(08G =N*څάpjkP68~Shx`K|uK8?աMˈ LN@?k_fh!<~-qBY1E#3'Sc#*u7Ha69lD̤#o_'6:,q597fǢK &?&י?T*ܘ1#;`D)I,c]nej)Hk^īC田bɰ'p+ɯ-6)zXN ;q}ЂK=6/oq+ G/BOV9No㮞vZ$ P4q KG;祣"X5G̛_C ٍ}b!烲% aޝ$;HQ`kpT8 +yBi3$.gةa*-껽l?b^rh(ƪVJ3G9_ݪ[>N@DBˑPÇMzU-{(A%)KU.nS|[ZcWk?+eK`0NrrS۷hjVFgYҐ.~'O}Mm+ SJh$cU4T?dLyn1PbKw9K3\oZ'm!ۢq%U Ep.^)OOW=AI+Z循WvΤ35\0W_K9w\TY(Dg٥*%s*BElg1NQ؉F T .;OIݯN[>1@ՖpNʡF\ح dȤY]࡫<9oRHCýϏ.v~&RntFS VENLTfJw64۵{¬6 fx]_HHx7#taW[g6};1%c^Ak@tоz[?#46e}KAQl rݗr!_~5 DUTWSY܋= ь>5# MbjU:3y!_džDi&'XgHS3 Ig`f\+ɚr0Aug0>(J˕$ hyLC66-XoB$sTx]n&rtx4 YC=ux Q] ?mFK{1P kӀ#O $Xp?S,nIлޛSL!;`(9`#T]v䰚$-"{(rM%Gaxiu^ێw:GFi͚_^4"=ѡ }N K~8ƪ)|+@8d8[mCZ-+6xPɀhZ9jPèvTU%H