bcc-docs-0.5.0-lp151.11.5 >  A \@/=„[oC5ܫp[[fp>h2stb4 A 9 HH@)ϊ]ݼGuxͣ% 2Y-hf'*KꜿTd+=z@#Cic$8J(Hux3`ɝՀ2wRzk[jR M |l:F1Ӛ {|kR-F&)vN2>+TMݴ 116(eBUDV6e6c27b3a358c994853365cf74a2a72971bb566b3f174aee54d2acbf56269f706a435af35220dc5802c3db107270f34c32512d57ސ\@/=„S|~cW*fy)u8qi*k8pΔvڕ- mAǞLW>-;Qcsi;D5Ԇo$/4}8]:OEc*>F,laP$C6;ݡ/7 h^cQwڤSJ-2v=&s S6iɢ͸L %6fիb3L, ̈E%{υ,-z^uF%+af(R ӡ>p;`?`d   H ",H V d   ,Or;(W8`&9&:&F]zG]H]I]X]Y]\]]^^^b^c_fd_e_f_l_u_v_z`|````Cbcc-docs0.5.0lp151.11.5BPF Compiler Collection (BCC) documentationThe documentation of how to write programs with BPF Compiler Collection (BCC)\lamb02 openSUSE Leap 15.1openSUSEApache-2.0https://bugs.opensuse.orgDocumentation/Otherhttps://github.com/iovisor/bcclinuxx86_64[K3U3t"A큤\Z 0Z 0Z 0\Z 0Z 00d754db0c6549b4b8f1f395ed5795cc411ca1624c49ae9e7229429a9cfcfa5dbc51e8e931ba5b87b37ba5000a3d92aeab388383ab72f231cdb1382ffbd72b5fb1b3135723d467c1e2c751bdb84349ab9011e7b71502afc6fd05be7d439f8b79759e5aaa997ef629860fc35239d22d098f1dd929a71be1c8ecc06124710457f9dc2fab0d9134404d906769e1f4ca60e2badeede009462baf13c53a0c2c02d793f1416bfd79e7a2ef2d5b0b68af9508019d2538c70ffe76a8bfbc2630fdf4a1a26rootrootrootrootrootrootrootrootrootrootrootrootrootrootbcc-0.5.0-lp151.11.5.src.rpmbcc-docsbcc-docs(x86-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.1[^Z2@ZZ`@Z_@Z|;ZaZ8@Z3@Z)-@Z%8Z!D@Z Z@ZC@YY5GX•@X @X @XF@X@W WҤ@W/@W Wo@V@V޾VVŲ@V@V_V@VqR@V\:@VI@V*!@msrb@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comdimstar@opensuse.orgglin@suse.comglin@suse.comglin@suse.comglin@suse.commanfred.h@gmx.netglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comidonmez@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.com- Add bcc-fix-compilation-error-with-latest-llvm.patch, bcc-fix-a-compilation-error-with-latest-llvm-clang-trunk.patch and bcc-compilation-error-with-latest-llvm.patch to fix build with llvm7 (fate#325696)- Add bcc-bsc1080085-fix-syscount-str.patch to convert ausyscall output to string (bsc#1080085)- Only enable bcc-lua for openSUSE (bsc#1085810) - Amend the spec file to enable bps only for Tumbleweed (bsc#1085403)- Add bcc-bsc1080085-import-readline-from-lib.patch to read the symbol "readline" from libreadline. (bsc#1080085) - Add bcc-bsc1080085-detect-slab-for-slabratetop.patch to detect the current memory allocator and include the correct header. (bsc#1080085) - Make bcc-tools require audit since syscount.py needs ausyscall to get the syscall list. (bsc#1080085) - Remove bps due to the incomplete support in kernel (bsc#1085403)- Add bcc-bsc1080085-backport-bytes-strings.patch and bcc-bsc1080085-fix-cachetop-py3-str.patch to fix the python3 compatibility issue (bsc#1080085)- Update bcc-python3.patch to make python3 default for all the python scripts (bsc#1079961)- Add bcc-fix-build-for-llvm-5.0.1.patch to fix the compilation error against llvm-5.0.1- Replace clang4-devel-static BuildRequires with clang-devel-static: use the unversioned one, folling the llvm meta package version (like all the other llvm/clang packages in the build chain).- Request at least 10GB disk since the clang4-devel-static needs more than 3GB and sometimes caused build fail (FATE#322227)- Request at least 4G RAM for the s390x build (FATE#322227, bsc#1070362)- Tweak the installation path of bps directly instead of installing it manually. For those architectures without luajit, %{_bindir} wasn't created and it failed the previous install command. (FATE#322227, bsc#1070362)- Update to 0.5.0 (bsc#1070563) + Explain possible reason of an error in scripts that rely on /proc/kallsyms + bpf: fix a couple of issues related to arm64 + bpf: Add support for prog_name and map_name + Add a few introspection helpers + Introduce BPF Program Snapshot helper (bps) + Trace external pointers through maps + Merge BType, Map, and Probe Consumers + Fix exception handling in python3 + Add usdt support for ARM64 + bpf: make test py_test_tools_smoke pass on arm64 + Add soname to libbpf.so + Fix Module display for unreadable Modules + Use bpf_prog_load_flag in APIs + Add flag to enable verifier log_level 2 + bpf: use MCJIT explicitly for ExecutionEngine + change frontend rewriter to better handle anonymous struct/union + Move BCC debug options to an installed header file + use user-provided log_level in bpf_prog_load + Add utility for cc tests to read command outputs + Fix 'test_libbcc' from failing due to symbol name mismatch + Update perf event type and config checks + libbpf: Support unbound raw socket creation + force linking the whole api-static library into shared library + man/bps: Add a man page for introspection/bps.c + Do not keep Loader instances around + python: make _decode_table_types aware of __int128 + python: Avoid unnecessary pointer object creations - Only exclude ppc and s390 build (FATE#322227, bsc#1070362) - Add _constraints to reserve 2GB memory for linking with clang4-devel-static - Rename armv7.patch as bcc-check_int128.patch to check if the compiler support int128 or not - Drop upstreamed patches: + bcc-bsc1065593-switch-to-mcjit.patch + bcc-add-soname-to-libbpf.patch- Add patch (bcc-python3.patch) to explicitly use "/usr/bin/python3"- Use the python3 package by default - Provide and obsolete python-bcc (it's python2-bcc now)- Update to 0.4.0 + Fix helper to access stack pointer for powerpc + bpf: rename helper function bpf_get_stackid + bpf: print out the src debug info to a temporary file + attempt to compile with system bpf.h if default compile failed + sync src/cc/compat/linux headers with latest net-next + Fix segfault with enumerations + Allow BCC to parse vDSO symbols + libbpf: print error to error stream + Avoid potential SEGFAULT when resolving Kernel symbols + Fix 'tools/statsnoop' from failing to attach kprobes + Update USDT argument constraint for powerpc and powerpc64 + examples:dns_matching: make it work as DNS sniffer + add debug option to dump asm insns embedded with source + examples:dns_matching: helper function for adding cache entry + Traces external pointers in parenthesized expressions + examples:dns_matching: fixed loop break condition + Fix bcc_resolve_global_addr on shared libraries + BCC macro for the creation of LPM trie maps (#1359) + bpf_probe_read*: src argument should be const void *. + hardirqs, softirqs: Fix distribution mode units handling + Add a generic utility to check any binary availability + Fix 'test_debuginfo' from failing if a symbol has multiple aliases + nfsdist tool (#1347) + annotate program tag + add helpers to access program tag + examples: fixed http_filter example + nfsslower: trace slow NFS operations + Update after lookup in map.increment for HASH types + fix a bug introduced by previous lua-bcc build fix commit + Better check for compiler standard support + fix lua-bcc build issue with cmake try_compile + Fix segfault on incomplete types + Trace external pointers from helpers + Allow the flags to be specified in remove_xdp() + bcc-lua: --no-pie, not -no-pie + solisten, tcpconnlat, tcpretrans: Remove unnecessary bpf_probe_reads - Add the new subpackage libbpf0 - Add bcc-bsc1065593-llvm4-hack.patch to work around the llvm libraries searching issue (bsc#1065593) (Also add clang4-devel-static to BuildRequires) - Add bcc-bsc1065593-switch-to-mcjit.patch to switch from OrcJIT to MCJIT. OrcJIT actually doesn't work for bcc, and the bug was covered until we start to use the unified LLVM shared library. (bsc#1065593) - Add bcc-add-soname-to-libbpf.patch to install the shared library properly - Update the group of packages - Disable USDT for ARM and AArch64 since it's not ready.- Update to 0.3.0+git1502955391.9de830a + avoid large map memory allocation in userspace + python - set attach_xdp's default flag value to 0 + have uniform uprobe event names for python and C++ + Remove extra S_MAXSTAT array allocation in some tools + Omit include of ptrace.h for empty usdt contexts + Add clang check for -nopie option + Correct commit id for BPF_FUNC_get_socket_cookie + tools/tcptracer: add timestamp option + Since LUA_GLOBALSINDEX is obsolete from Lua 5.2, use lua_getglobal function instead. + better state default value handling + add --state to offcputime + tcptop: Filter out negative values in receive probe + tcptop: Cleanup argument parsing + Use unsigned conversion specifier for nlmsg_pid + Fix wrong netlink port id check + 1. Use more safe snprintf instead of sprintf; 2. Modify procfilename buffer length in bcc_procutils_language function. + permit multiple pids attaching to the same probe + generate proper usdt code to prevent llvm meddling with ctx->#fields + MySQL tracing without USDT (#1239) + Fix a clang memory leak + Update bpf.h and virtual_bpf.h to 4.13-rc1 + Fix trace.py for library filenames containing colons (#1252) + cc: Add open_perf_event to the C/C++ API (#1232) + memleak: expand allocator coverage (#1214) + libbpf: fix build warning on setns (#1246) + usdt: Use ProcMountNS + proc: Enhance bcc_mapping_is_file_backed + Fix bcc.lua build issue in Ubuntu 17.04 + Added helpers for BPF_PERCPU_ARRAY (#1230) + Add an option to strip leading zeros from histograms (#1226) + gethostlatency was rounding to full ms + Change clang frontend optimization level from 0 to 2 + fix cc: error: unrecognized command line option -no-pie + fix incorrect code generation in usdt- Update to 0.3.0+git1496334311.6fa3681 + Improve PerfEventArray clean up + make libbpf standalone-ready + Add support for generic XDP mode + Add option to control bcc_elf_foreach_sym behavior + Add bpf_get_first_key helper + Enable recursive scanf support for char[] as string + Fix computation of LUAJIT_INCLUDE_DIR + cc: Work around verifier error when reading USDT probe arguments + Disable non-static function calls + Added the option(USINGISYSTEM) of Cmake for controling whether using -isystem. (#1064) + softirqs: Migrate to kernel tracepoints instead of kprobes (#1091) + lua/bpf: implemented packet direct access + lua/bpf: support for NET_OFF for dissector + KVM hypercall analysis example (#1082) + cc: add support for prog table + cc: add support for array table + Add TableStorage class for wrapping bpf map tracking + funcslower: Trace slow kernel or user function calls + map.insert bcc helper to expose the BPF_NOEXIST flag (#1085) + bcc container improvements (#1051) + cc: define load_func and unload_func public + Python 3 compatibility fixes around string handling (#986) + Verify format specifiers in bpf_trace_printk in rewriter + Add build option for installing C++ examples + bpflist: Display processes with running BPF programs and maps + python: Allow module=None when resolving kernel symbols + mdflush: Add missing #include - Enable AArch64 build (FATE#322227) - Remove remove-isystem.patch since it can be controlled by the cmake option now. - Add gcc-c++ to the BuildRequires and switch to gcc/g++- Update to 0.3.0 + Added s390x support. Needs 4.10 Kernel + Restrict rewrite of unary operators to dereference operator + cmake: Explicitly mark static libraries as such + Fix bpf_dins_pkt rewrite in BinaryOperator + cc: Symbol resolution with multiple executable regions per module + cc: Fix assertion for debug builds + cc: Don't parse the same module multiple times for USDT probes + add XDP return values to python interface + python: handle null module in BPF.sym + filetop: support specifying sort column via cmdline argument + cc: Retry symbol resolution using perfmap + cc: Handle nested functions correctly when resolving symbols- Add remove-isystem.patch to unconditionally removing -isystem, looks like the gcc check is broken. - Add armv7.patch to disable __uint128_t usage which does not exist on ARMv7. - Always use clang as C compiler, note that the build system will always use clang++ ad CXX compiler if it finds it.- Update to 0.2.0+git1488325605.4d0d430 + Fix long running test_debuginfo and python3 fix + Make perf ring buffer size configurable + docs: Update eBPF features list + Improve matching of file-backed memory mappings + Fix symbol resolution by name (SymbolCache.resolve_name) + cc: Resolve symbols from external debuginfo + cc: Correctly treat PIE files as shared objects for symbols + Migrate to new symbols resolution API + Simplify BCC symbol resolution API + trace, argdist: Treat small USDT arguments correctly + Support base + index * scale addressing for USDT arguments + cc: Fix SEGV when there is no build-id section + syscount: Summarize syscall counts and latencies + u* tools: PHP support + bcc: add support for lpm trie map type + cc: Support for __data_loc tracepoint fields + Fix python2/3 incompatible percpu helpers + fix iteration over CPUs + Fixes for LLVM 4.0 and python3 + Update [virtual_]bpf.h to 4.10 + add bpf_obj_pin/bpf_obj_get to pin/get bpf objects + uobjnew: Attach uprobe only to the requested process + uflow: Trace method execution flow + ustat: Activity stats from high-level languages + ugc: Monitor GC events in high-level languages + ucalls: Summarize method calls with USDT + Example of using USDT + Add USDT support to C++ API + Improve linear histogram limit, and improve error message + add runqlen tool + docs: Update eBPF features list + Improve C++ API perf buffer polling + add support for bpf map flags + Fix bug of missing to install simple_tc.py + Add support for aarch64 + Avoid unexpected log message on BPF program load error + Add lru_hash/lru_percpu_hash to python/lua + bcc: add lru_hash and lru_percpu_hash map types - Remove the clang workaround since llvm 3.9.1 supports gcc c++11 abi tag. (bsc#935533) - Enable PowerPC64 and PowerPC64le build- Move manpages back to /usr/share/bcc/man since trace.8 is conflicted with the one from postfix.- Update to 0.2.0+git1480569532.5647de0 + profile: -p should match user PID + tcplife: reorder logic to catch missed timestamps + hello_perf_output: match the data type of pid + Remove debug flag override in bcc_exception.h + Use StatusTuple constructor in mkstatus_ + Implement StatusTuple class instead of using std::tuple + biotop.py: fix compiler error on newer kernels + Determine kernel dirs at runtime (fix #743) + Rename exception.h to bcc_exception.h + tcplife.py: Catch passive closed by server, #788 + Install exception.h and common.h + Fixup test errors in clang, c api + trace: Avoid passing -1 as the pid to USDT + Fix Tracepoint example (#809) + cc, python: Clean up BPF module and tables + Fix warnings covered by -Wdelete-non-virtual-dtor + Fix argument type for increment() in documentation (#794) + trace: add pid/tid filtering, fix symbolizing, misc nits (#798) + Expose destruction of SymbolCache in libbcc + perf_reader: install perf_reader.h + Use headers from BCC in installed files (#793) + funccount: Bail early if there are no matching functions (#792) + python: Grab all keys before zeroing + funccount: Switch to BPF array instead of hash + Update profile.py to use new perf support (#776) + Example for using BPF perf event + funccount: Do not prepopulate location cache + python: Filter duplicate in get_kprobe_functions + Python API for BPF perf event + Add bpf_attach_perf_event in libbpf + Add BPF_PROG_TYPE_PERF_EVENT to bpf_prog_type enum + add tcplife (#773) + add reset-trace (#766) + funccount: Verify probe max limit (#771) + python: Fix kprobe quota test breakage, add uprobes + funccount: Generalize for uprobes, tracepoints, and USDT + bcc: Make regex helpers publicly accessible + stackcount: Style fixes for linter (pep8) + fix profile.py page_offset_base breakage (#768) + trace, argdist: -I switch for trace and miscellaneous fixes (#761) + cc: Support glob+offset format in USDT arguments (#753) + Support filtering by process ID in the filesystem slower tools (#756) + trace: STRCMP helper function + mysqld_slower: Fix breakage after USDT API change + trace: Add %K and %U format specifiers (#742) + Update opensnoop to filter by PID and TID (#739) + funclatency: user functions support (#733) + tplist: Print USDT locations and arguments (#734) + src/lua: LuaJIT BPF compiler, examples, tests (#652) + stackcount: Support uprobes, tracepoints, and USDT (#730) + trace: Initialize USDT arguments to 0 before reading (#725) + argdist, trace: Native tracepoint support (#724) + argdist: Cumulative mode (-c) (#719) + trace: Print USDT arg helpers in verbose mode (#723) + argdist, trace: Support naked executable names in probes (#720) + docs: Update eBPF features list by kernel version (#717) + fixup the issue in which distributed_bridge example (#716) + Fix bpf_common.cc include style (#715) + Fix argdist, trace, tplist to use the libbcc USDT support (#698) + [tcpconnect] filter traced connection based on destination ports + Fix bpf log buffer for large bpf program: (#680) + opensnoop: Introduce process name filtering - Exclude the cpp examples from installation - Remove the isystem path since we are using clang++ - Install the manpages correctly - Improve the spec file to search the luajit pathes and fix some dependency issue in Leap 42.2 - Remove "-DBCC_KERNEL_HAS_SOURCE_DIR=1" since bcc can detect the kernel dir dynamically now.- Add llvm-gold to the BuildRequires since the package was split from llvm since 3.8.1- Update to 0.2.0 + examples: fix indentation in tracing/tcpv4connect + fileslower/filetop: use de->d_name.name, add filtering- Update to snapshot v0.1.8+git1472097662.4ebb7cf + fix biosnoop after kernel change + offcputime improvements: use less RAM, add PID/TID support + Add perf_submit_skb + Adjustments to the documentation + fix build with 4.0 llvm trunk + frontends/clang: Safety check for invalid opLoc in ProbeVisitor + Tool to sniff data contents before encrypted with OpenSSL or GnuTLS + Add bpf_get_current_task() helper definition + USDT Python API and example + Lua Tools for BCC + BPF: better format for `ksymaddr` + table: Implement a StackWalker for StackTrace tables + added percpu support in bcc + Fix error handling when attaching {u,k}{,ret}probes + Fix python3 incompatibilities + Update headers with 4.5+ features + Add v6 headers to proto.h + Use pre-calculated function addresses in funccount + Add name to address ksym helper + Add a table.zero() function to bcc.TableBase + Enforce limit of 1000 open [uk]probes - Drop upstreamed bcc-kernel-header-search.patch - Add bcc-docs to collect the documentation - Add bcc-lua to process the lua scripts - Add the license files to libbcc0- Use the upstream tarball and add the URL - Amend the description of the pacakge - Use the right group for libbcc0- Remove "strip" from "make install" to enable debuginfo- Switch to clang to avoid the c++11 tag issue (bsc#935533) - Update bcc-kernel-header-search.patch to include headers in /lib/modules/$(uname -r)/build/- Replace bcc-suse-kernel-headers.patch with the upstream fix, bcc-kernel-header-search.patch, and add "-DBCC_KERNEL_HAS_SOURCE_DIR=1" to cmake. - Fix the formation in the spec file- Update to version 0.1.8 + http_filter renamed, README fixed + Migrated filelife to bpf_perf_event + migrated to use bpf_perf_events + Migrated killsnoop to bpf_perf_event + Print traceback only if verbose mode was requested + trace: trace function execution with custom format strings and filters - Add back python3-bcc - Make python-bcc require libbcc0- Update to version 0.1.7+git1455766673.13e74d3 + use __builtin_memcpy() instead of unrolled loop + http filter example + Add bpf_module.h to CMakeLists.txt + different man formats + Fix segfault in ~BPFModule on syntax error + Add bitesize tool + Support array and pointer types in scanf generated function + Add biotop tool + Added memory leak tracer + Fix python map.items() racing with bpf delete + Don't show allocations newer than a configurable age + Add bpf_get_prandom_u32 to helpers + Added --stack-depth switch to control the number of stack frames captured for each allocation + Fixed long arg name from stack_depth to stack-depth + Added option to display only top N stacks by size + use bpf_perf_event_output() instead + save one bpf_probe_read() + 3 tools: oomkill, dcstat, dcsnoop + Implemented histogram functionality, including strings; added examples + Added ret probes + Renamed to argdist.py, updated command-line switches, added kernel probe pid filtering, added verbose mode that prints the BPF program + ext4 and xfs tools + tcp to bpf_perf_output + 3 tools: tcpretrans, zfsslower, zfsdist + inline C in /tools + 2 tools: btrfsdist, btrfsslower + Split bcc/__init__.py into multiple files + Split bcc.table.BPFTable into multiple type-specific classes + Support native integer indexing in table.Array type + Fix breakage in open_perf_buffer + Embed runtime header files in libbcc.so - Add bcc-suse-kernel-headers.patch to fix the kernel header path - Drop bcc-workaround-gcc5-abi.patch since it never works... - Drop the dependency of bcc-devel from python-bcc- Update to version v0.1.7+git20160131.143df80 + Updates to use cmake GLOB and libbcc.so.0 in python init + Add decode() to ascii string in offcputime.py + Add libbpf.c support for uprobes + Add python support for attaching bpf programs to uprobes + Fixes for address calculation + Fixup objdump calling syntax and add docstrings + Add uprobe strlen histogram example + Update test_dump_func to be python3 compatible- Update to version v0.1.7+git20160119.f50ca1f + fix pep8 lint errors in the rest of the tools + Close fd and unshare when public map is destructed + stack walker typo and improvement + optimize code, remove unnecessary filter check + add -u, and change from 2 to 1 traced funcitons- Update to version v0.1.7+git20160110.a0aa7f2 + Remove runtime dependency on gcc stdarg headers and make + Add ability to set custom cflags when loading programs + Add ability to export maps, enables cross-program sharing + Rename BPF_EXPORT to BPF_TABLE_PUBLIC + fix pep8 lint errors in biolatency and biosnoop - Remove make from Requires of python-bcc- Update to version v0.1.7+git20151210.23b87e5: + Fixup dependencies of bcc-tools package + Automatically bump memlock ulimit + fixed bugs in control-flow generation + Fix breakage from LLVM 3.8 API change + make sure LDFLAGS are propagated as well + Improve json type support for misc struct/union types + Drop broken p4/docs symlink and create README.md+URL - Drop upstreamed bcc-honor-external-cflags.patch- Udpate to bcc-0.1.7+git48.g1c7debd - Add python-future as the Recommends for bcc-examples so that the scripts can be compatible with python 2 and python 3. - Remove python3-bcc- Update to bcc-0.1.7+git34.gfa9684d - Add bcc-workaround-gcc5-abi.patch to work around the old c++11 abi in clang - Add bcc-honor-external-cflags.patch to adopt the external cflags - Drop bcc-fix-packaging.patch which is already in the tarball - Amend the requirements of python-bcc + make and kernel-devel are necessary - Add python3-bcc since the python binding is compatiable with both 2 and 3- initial import: v0.1.7 - Add bcc-fix-packaging.patch to fix versioning issue of the shared librarylamb02 15549690750.5.0-lp151.11.50.5.0-lp151.11.5bcc-docsFAQ.txtREADME.mdkernel-versions.mdreference_guide.mdtutorial.mdtutorial_bcc_python_developer.md/usr/share/doc/packages//usr/share/doc/packages/bcc-docs/-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.opensuse.org/openSUSE:Leap:15.1/standard/a6a5b85510f80b516966120750fa4780-bcccpioxz5x86_64-suse-linuxdirectoryASCII textUTF-8 Unicode textASCII text, with very long linesPython script, ASCII text executable, with very long linesi&&2b_utf-8eee510f7f7ecbffab394de4f965b8edb392dbff3be57c758a50f9deace5327c4?P7zXZ !t/y] crt:bLL p{bu4܀4^4li w !Cs)cyP3IQ9=/ o>iۤX"_lŞ6x,aUDXkJ.!mLR牢)Zt1UY&Z#L(p/,1j֕ծﮩ Y1D}<((ynt10~kb%%!.24aOtWЖ4KG/IIڕ5QQS^ fGTۮúFx]`|i~%M@+eϚqȑGnB ѱjlan2bH(򹸘G|!ۣf+GCEm%EoEȑZv ЧZ]Jm:PϞ.$դ064loߣIboX2xeJPn#vUWe٥=]zdĈjcSH:͠JHץԇ}Xh_UQ_+Ua4v'0Fƙ4}~H#_Fn/7[߀17]B \yYVz8|$'DUt]'B΀P; "k jux\ɓv?Q=] }$ҒH9}\ +xi/ M05:Nىn2?I ϏB%H/iLč5A,R!&,۔/Tc*(CШ@!K3⇔ɚW}eDriL41=x+="mE\s`'3اorbʰ&ngO] ZPvR+MyT6Vb?<;}&h B(~:e^E Ra [}\Uc?U{C/3璘@['@v).%ml6wGLc ^eQxKq~<[oSrQ|Yg%GwPOYl7ba$܄t!q1,V<^N@ҏ +p̟K~Rqyg ḣОϊgz %N2@ɝc!/NE2εRCېz>Jd0e_pi!s7O{A6ϸ4o„REqC??)!WmI"k)'W3 )XXCkJ4;թFl%AOOOy!Sbpp|^KĈb(}F87([SY?!)PզʙfI"* 4uz+4M'$yʽ㘐[hd>%QN%G.4;' [sNhȄ?^.wc~SM2|kzA8`hJfS&fs,]|#×` DBa9ģi |*Vaxx 0WBJ>lBJY3zЉP;zg o֣%\[6uUR!fyŖ9죊W-(Mm+ѣ);x?F+mXO"l^&TT=J)yLtޠWeqU*(w@G߬Z#>wB)R͙M ɧ=g2R)RT9(nt+l<d K[ty9'P8:} L^1^ѹH +N'9:aK65-8,q/h1ɌE 0nz o(gPGj4[,;{+݁'ՠ-P{7G:؆ yel.SD#x/U"s#("S?#}k&3%zP$8tEpWHy7!?F1,`6Mv3UGM[ZAl%1eGnJH[rrǼfz`:)7Ɣ) #HJ\XrےS`WO:jK y0F=zia095kF\T!؍(ݕh]XX5Lp+m W \K 59$n+c_wJ]7 Rt5x[&)h] Ns ބB8t/Zysnhd5,.^#q;9۴' hAHla/nlT=׋ʯy\-H\8[O<3;O{u xeR1{̖1w7Ѩ!$tv5aGP/x5H*E%5ElO盇oRjC-le㖃n񐔂o8C1JżjQ%DF2^+HdKwuf-f 'fb,^@P'&Fsg,MYJ;02\uQ8)qQJ ̹01^tK  cag`nsU7 L!~Hm}=1DP8I'宺Kn祄r"4M>s;AS 5MpQIt. Ab ReL9fE_<|`Q iQGo|,k|dH8!\NA87?vvAVlXPvcիJ&Y9q6O%Axs~A!ء-.uɗwrsW]-1m**5/:L,A'W86 D%"?׺>(/'PjfEŃI&t upSxmBf` I+17;)F;/ȅ.A\!RX_Fu,V0fvKظjp;v~57͵F6ù$JN~3k`w(0`k:d"9n3|)՞' X=/P bNƫ1YzA3$O ˍGLc|>VK`pl@&˖|#[.8-?Tìn/-hܙ dv_QN%~| YIv*>@h33>e@ŕ׫z@~uN=:5惀~Y( mwE/i"nz+ldSt)OKI+LM떟[w3w>Cf^tfĥ7Kr@L_sEh Ή(5Fd;5xGv P=Kl˰a  Cxuy%gazM_Kuܿ{]MFd;|~. rYͰ!  6r-N{x+_>ds*[\j@*ڟ,&ucmI}gxm Ft 戂Bzn;l-~ʌ,Ddz?$O/8^u\CO,d@ƞp`#Jgey6`Ӹ)@4X 5D82X]4r%\8]_ y3qqsp+%yx"O"0=zH7zhһ,,bD̅r3? % jO¯nd1XnpYkRmnl&%H({0 ?Dp6Mfw93%<`ըiHFX> dwٹ YWTRnVj:rQe8%e\tUExI]*.1 mD7sn02wCäey#}`w漜/U w!8"=xI _Ñ&w.ɕM0$?I)6BYo_#}Dugm5v%|dq' E@Hi@aMʙD$= |nɄ- G쾳{j]@67}n P/ڲ3!_4t_|J%\h?WPNDtjb 2ƅ&БFǬY/a 5m#斶I;W pgxYb@-KF1y빍j.xC5&3j eT,/b6!GuaߐSM"ug<o uZlr\%Gvee#+mr5hkY|;q>'ƌ|!^rlK>ARȋk*$܁PfH- >^TNǃG3q@;(xWS Y=L(H,K/.Ha3 C7LX@4y={~5.0}v>!gk 1Yܻ/9~tiRJZQr {Lh2*Sq?0zZ%MNU3'MUXme6P:5ה$Roxt h}0h|]VWᤦ<𝾸C8h6)rՉd1t^O۲+p'Գ7F{vOmL?"L8r Lޝo Kz)Aȋ?*y{)9Qt->9( YΖ#_Lec1/eF(y4/x26~jMKgLjЬi3m 1Fs.'-Fk*sBcڝ/hauޓiJJy0EHqڶC#ss,;"$fhT~nvK!5/@۵zU*k(5> V4{Qdw-XNݹ-d~d%ŀ2$#iWI"q  }0dY6c#G&٨mU8E+䯕?nJ}6qY-gC~aSmbPa[N|a=w?#MH&n:O}ѡ9`0U `_:ɏ-M,$a v *R{YI {jġ)E gAz?,uыN?X1{#D4aZ q'ܨV=R買!oVb/hN|,ɬ`N ƗlBt-b:Ip3 W.gƽ$U#;P +`+/IjQ=ۊRN]?r%n6I`OU#5d sõI1w.uZ_~&bGGfmƠ.h70-A\D@9|7.ԌmRyCaFWU=$:`P14H w/_Ɩ:7M˹ͫߏ[A5 y99ygHjcsrTQ Ci]?L2d+g7'Y9yc>PDuP:oAAt܀4-$&+ ;bI1 -`&j>Rkv4 a`mADg41B5) @~ທɚO?iwPju"ُ Y5mrZbg6qVoߣU1t98飥0>Z(ߵWp^ jk [˞^ O6\5Y eSMcLQqѳ%}[^1uA46'ЩOL70웨vg_7AﴐAQ4]㣨臻n3>'SaI ֔?P8}V CxgAH;N'CݣzK,`hm5Y<;NcHMnWmV{,U/j vȤ_G\U ;%v{>e%Ej6wTVgLh8ӄ$ZJw7RF@ 3PWJ@3I$ǩ䛥Nuv g:8.p[mݗϵDES]Th=.X³!de=iP$@*Eyiާ 2N =NXf+(#H~D͇Nn.uCz g6qdYž hN1EF(=P0NSl[*H)ZD`ӲS^*, ̆Qld s`6dw; B]a@ˋ ~Wqk ZoS}*!MI7 ]T ʴ2eԵ$ ~zvު[*KЯPWɹ?G?#Z|!t\MHiw݅owiTm_' $"6@Dn^H@ݢs ް9e=|ͫc{w"pcvޓ|gG!6QY9q\BJPJ_<bQ@U1q q}P#Z5!ˌIuxifHN.gƲ%{thT~[4:YهKsv3dn/dM VwLN6UtaDmZC{?Jr~hvzcq3Dre{#%JܶPGp̆4HqGv?+LѦTn~NX mޣ~^'>?~'>R_|P0V> jzr=4|:ƖZ>A:WCz75{6iu/>IF6ec)|z}'T| 7/ql {8)꽭k1%;;w~w֔qץ|>~>3: -\OA[ܸ^AXb#ۤ)B⧛?<Ӫ!C{?nΫXd§Y YÔA1q-cS,OŠQ\ze!KTF3U#4; 5!5›|x6"@AfjBqAI/LcxgQ$ ?4KEJb$0]1رiTLأ,'V\YH1u_tyv+]!Cuw܋zPϽ喊 4yFN:HfD.@PZ6{ӷ-V]Q*Zcy" M'w0xxȍ-ѱnk|pҠ~B#UjA=Ңpm}XCȀION[]i98G=8~47vzaFΉ(>.X#Y&gGL Hi3/g[7?n0N7-q<6[=1lS.ܥq?Zg~>f(?D;̭*1] {0Q |(Ùhg`5^{JpLeʁ6l̮ kʿX/YpcJs^\s]=Qтkz儤e1?*VrڄO#Ad$Jw:'53jzï+W>"ήL"eW9C,'^)12c΁^WN Xx,cwn`yE^Wd[4QFnLg$TI ,2By`p]դ,U\t[>=  t)=nY+\*%5 | ;툕, ^~hjy2}at#g,C9LK["؀7ۻifI2;+: |YYl(/iɨGw.S:˧׈qd\]P p|w?V6ڑWDCg 8MZRw7{w%^Ĩ|CqȞȊqy)%,`*NNJK\J&UE;"0\z젲 [S\M#?88brE3Cvu©6itA5AG&TzؒI&n#V%p/uߖ/-8mZ5R Lԓp]媝4-zwx=Z ͕};"eO.;Cagȯ3T . |Ry8GVߒ=Nn:-1̈b̴tȌ.Ŗ͔|s%Üz2bX*#Ҡ"1f8@|^lUtC-`J+ͅW|Dp|B Q-I$Ga+\ RFd.@uveuhtxۚ*Y"L;{2W(M!ʧK_sex֒R2o_ZԆCr1~ZEhՑV|Db xb7<=u뉢0J]\p>o^Ts> twafSeL(v Jg3J\J\zAX~5$zv YEYӪm40dۺ0&J4{YeN[^Qb́; Lx/$0oW rj/"ջ'g݅?r0k#(*A`5 </( !*Z}XfɺqS|OA@",sz/g#f-`NO-UءPu#pluZ^AaM9lȞk' %.iԎyPEƜ`ZZk%Ԅȹ '1VԷK8M *i]^5|#4M#ٓtRBҾ׺80?/}7xh {j=-,"8MGݰXhӾQ e&чb/Q *D<!i.ql2rDc[Έ B94F7jB|~j,煍RUaJh0Z}ŭ -3/}{Iwͨ#7XüD`;9`@_h֏!Dl!iݽY26VS+KR^w囄XtGdEe3|ᾶ*l"le*C6)0݈'z$rb>O_N5=Gg孖y6S+b}z,D;Cj67.6-_VSWYgleh7= l;OS ۪kM:~-zF9ؾjأ[f Bf>p)3wDuf7С}sCSS<*#]eXb MŒ$b3cskxr|^>D^ _$]%2Րf}ɟwlGǷ\؆ط@ #N0Z Tuح IV8w\z8CNՎVncrA:8V_`pF_EImr`]Ye[_XPB`t1J~T ˜cGu%/Ӯz&8xsSBmA^U9c~8B̬F֚\r/-=5gn(D"lůwk3@ *n,Hq' 57 ˵w1FN(Ajtc J,6 =1*_4>9*2g^DYY^$bN$WȌӱ$oC~;oG-fsI;cq%F/"/xja (ICI(-, nFp'߼Jj:xA)ICMwEo(+>O`}1cCy$ Y<=R- &*'gφT <vڲȩ4teğY48zUfCm Pw0"ƞTVSxwu/v<<`j ",c*1UF5]a׳<!zW{PzBQ]Tm͌i$>B(,>[WOzţa_TP,-ͺ{ Y1[kf?8}&ǩ˿OUQ\8t^ 1"Y%BJ)p;FGv<_rb9”߁ޣ;rlp.2jC>yMa.UNiduԼɟ_u&+]Ι3Dv2'hX>;Z{k2 0'hQ"ysOj.4 EUV 6 [0µx v)O4C- dY^;Qsou[rx(( )`b1p݉:úA'T}}hHSc0cH␛Wj=+KV`gU֞L_,8.+/_KR@DLIrd] PGh*y=W\q.5VF PpxFn֕Fk2]t*.08g K{YN52K&{åU!z?HDUmWT녧t9|ǍcDC$FS ׇKTdN~Y̺;Bπ^(yo{N eGs @ɁK@b^90,FMx|lz䪒i`Ԁ9iJ^jqdRn`mMm$)xYm+24 -U S$Qhc~ C׌;kwgWd)\bp3\QI) dyk˰! 81 ̛OxlP Lmiq[cN[ăU  ?;ocq[j)v)5z. ( i.9h~u|ݙ|ϴթPTTD.ذ[\!r-1LƗEI[)swo {~C1%; W@VCٷ$Bİ8.#FTާS7UGku2}oimg9$m8zʩ*. \4Mզ3rwD6^XłW7Lې{rlBYH5Rm߷k}X74vG6O"@+? S`]N̙(< 6 2%EB+IیNnZ0.`C|A|fC_e`hH1QyZ?$&/]Sw[ش@(9]U/#dL)>8Tƚ4BB~wH܄Wu.hMz{5<ب} dcUKAqzmT?Ig偨YPXQ7&†zC|W9,sh k+XfCaY1ʸHzY?6Jccsi1Oi,ޫVW"өtIi(On'?)ʂV@Y>kidр,G<-ُ=*\M<:L՛W5 6a5I/7MͭH~uO'JJ<:0Glqúl7F (|E֒BԪө6>e^99=EѩDdW̌gBg|'!s>!^0Y6vV`d*φB?n3x#uHL*n5 W} xVS? ~{T;rI|}8L[am4Nι$y/ِZOwDEŬP)x3|U 빅pHn)HzrnBB[[vY ~J]^=T.xmt4w~Z|YG(]z35;$7bN4[l8^8p2 Fa\GV;;=.v6ߒ]0'=4PӉ(FdL(5 $lTPP;\$jYNn(]Q&nfk 6a 4O0<Π. SKmClɔ0iαjA/A6(`P% SRF:Y&Cz$If6%07hX T9j4ϱ3GN3^$ZMix$79[ôU诂`Α8Oј4&^͖X㨓fk[<׃t:Hr+!o]0჈5 eIZLs՝q~&؊e='^] a{ Gt @954P1x!:!L ' ,_8˶*` Nt5Pl~ RO$ uU¦h%T][Ij~_̤۲KTydey1ܰbw'#.^&o-v˰QJ G3*>s[6\=^6Q`K6,4h􍰷.nk #QrZ9Kx7- %T|f{}d后{go Zť(7VX-,+fS DGIhK‹4,of~^/+lf F8OVǤ`uc}nƼ'!vz}9D ;`b(#<[&OixGZ>0iw 7Oes31+ޱ-Z8 ]UX^[UkҮ֌"G\{LeՈ'Rd RyWURl<7P&"xb;`eye9K~Ӿ蹕 Oz`wRXr\$H髃6:eg[ĥܻ|J|fn$lbAԁሉ(z1WLU9כ}'Lt3Ƚdiۍ ں$VW탍)%a['GgNJ9|0,q]2;+ \K!k5):b=IRz̪U;+.5ZRA=ϭ]>+eVg1IW%H~\t"Te)R}}PYTSJheq03z+6Mj)4WӴ-$=x ⊫ ?y٠RRՈ jѮ~PAVؒfS[l1ʃ!s>ӍaSu+҃k0ּ.}Z d a,d!y' \{E܋7F BO-pMlOL{_Ifjܱ%;>vRʒ:E<֠)~vO_{L8s7j :[rv;&zz4E>%0FԢ,B_ /Cu\, hڪBg=UL_oreGY3E B1O4F~2W󛛵9}eԉrկ'a5Xa>.,@gR5dY%Ɔ d"4AI1YEt&zQr˷_TM+?\f|hd|}5w`E-\[*%AR]Pv!3MZJ7fFfWhO.!,n)mpfBz#$`Q7-| ;H+jzUT(ik(]M{nr+d?RU-E0e&^ ?VpL*PݽiA|̻U`mq{Bqu>NI9K}o# vI8{qɁ}͆ ^;ImD>pֶ=\fi4yѤNuLUG.G0(EY6و N[UAc,q=;qv :O.%9p?9u.a+VR*,d}W79SjcSblq=FAn,Y@#&.=P+=rz@YhRԩv?΀j%^9BK|Ƞf+/wHUk/Dݦ&`56@'e xHsg3B T !|^ 2֩Y9|4sqkΠ1y6^LSMDq)V)+F*QKWϰ4dᇞYw^ V& i{r9AkNVyvATڬ)xu(B}ȶvԘI #Lj<]K4>L`Z/<9ZO{=Ͻ4FEl)VNi.3.7?l!\wnʹHM$p;1-I W?!:xh*e6W_d5*:0 -T;Z#!Ɛl QtDt£6^馮ziC Xt**]j"]Ucq"qNDuU'fE" d.]sT{UTAo[XdmL4 2&'){(BUiuš:o%h+R' }2es`uɭ`w@i] 4J:"=H÷=Qi_e4Yb ByKRgj6a/%I!I˻[pȣzQSJjU E2gB'$VUpN9`uԌScߕhT;JjxC[ү"GѥpHT(9kij!"M 87i*$췱ոGk^PUvK3d&K+g!+f`Xy3 2hU-juf&'%\nSզu p @kT#RL2o6_C$9GWw3g2O瞻¨-: .^q>w'VWyꭙ^a {bO,4ZZ )^윥#P&2|RNl۲ksY^j-ǘdk2ȮBLT)uMLsƔ7vSjgEK$DYfQ 66iHx;P&_q_N: G-( k3dCUdPŕB?SJ[|{8ۃȞGYrxw.ٱ]"H>iorC2q1H׍pt7 H4J[B /k ތ,,2w?ؘ)j?ݳ-/%=9؅UT$'hv1tf5A".<PF?7c X\u+?ܦcHɸ)N\|?$e0z0l :|@Tu@ 3( Y8K*^r0f=(_]Q S q |zB[󌕷;gZ(Š ̐Ko$DR,X?B0t<8{[E0rnؘjr3Ԭ _8N\Tmf3օX`]@=b^v}Y3wtbɋ#C5-;GTQ^ ڬ}j~)y+f;a5CPnErNF@hk8búWh>P+\4߸:kֻ $HQz rm:wg]͎"?kKxq @|ie NDN93^M"nqʘq$6m娐V}-ƫ0-hjkD Luy!j]N~ +GJp*ڠKt ^V(t& - m,3vpҔ?b4 >v*?`= :Ib8`/L@{X:&v8Z2!x$ƿp]ӉTD.T@Kˍ4Tթlkf:ҞiGh1@[el)NZT *' ՉzET2)L K߆c4'-^dp eSԯibV'E3FRʍP&t46<e./,$BBu 'Q&q`ŗP=O·"_1OEa}& > 4#[i'& D5ƛni`0,|a-Qk$ Fԝ?ͫO.p':~{2^P+oFv5f0˞:Dgᆋ1\$iyGy?? O7/WSRL2Z )#e.as"qe^*MMynvS]GyRbW{; n.[ufgbǡeRXGg J\RPMDuzl qK@_$7UV ҷwN$aH#dhoYX7c IC߶i MbxW brjEAI7qP;N+E#CzH'x]wDbSRN`,%}{~?lĀRtxWh@M ]}El”|-N C3+#3XHodLiݱy.Z@_B Z&rL!Fow6..VrE)`luEX2`$#S Ǵq`Vw7Ϫ@kP6{z$t:#=0B3GpmwFl4ºI!t`+RȻn Cfo'sdžRS4 iVzGLSZ0\՟ջ}F;Tokw**[-{r؏ԦOCVƯg{qaPUsr*p;æd{iπƅ\MҌӬG,ʇΊv1!޸9Bf"'W:D^8s^4y,0=W8]dkQ2'T;q̓:t1\3^05@b)vn슐/4X]yGw'ؖB_+kdfuci<|>P@&G3b#uOz!2ye0MMa!! ݨz/YTO<ӝ'O0NPѶe\?6c lͷ,·yS*9v˥-y}wh!giBb$@IcJ16b(UtTv.#"'vEӤG8o9u"qjQ-JU*B  %~bJCJZK Ì/贆kaBk# hIeJů:ږ9CKsV^ ~'c)_ &'ފϓSR.+cǯz;*a_*ހ o=h C O|`}㞿YRZ^\-8,B\R\=C0"F-G6R=rFS| xMH}ú6UC‘PX[@g|tAmߩZD (eL<[ۋL[DR?f#G&zaO H})Tty"l1hXB'\;7 Ȥˤ5uYzI&: KC\ؑot2FwkI\>20A|><0vLmzۓ=(g?HjoSu.e@F&6]>8s?]#,EeI_ ҕ QbHg2LV4;gXYur<)> 1pNn RG;%ئ( Q[ې l&`ԑ(Qf$ɞe1xxt|il92q_]/U~&Mu*i#RR66n'oh͡S[%BKo 7+-t *,Ыr6X85rKD-tةetOdah8nH q:)o**Hkϳ#w֫ޙz쨗Кp-@S15#t4%+iDL0jlEVzũWU#? Js#{lK1f}<e/kwtG͡xQTQ_׃^ OQ,Q"5A. Nz}qvL#3ֱі|/KQ/ btD2.'mU Dn1%(f[a[S{.=51r\;[Nߝ+V $n&ر&l *f#9^Miz%@7Ǹ0=!Zu}@^]qGfw+:j&`q>&疗*j޺p}b`!hFewr!KP hב|J-NuT6Wi::UWG;[wsGnRizFkңtr$# $[GY)ƕ|70h)6Vf\8,ɀǿW2d8Bprf+~ͷ.M@kjhL d?,!6Ыex8*_O/6%/}vr̨52Pszx D"n\0C؉=bfj% E.!yC(-aCоqg3܃Ny5h~YZklgBT?"G+kEILdL\E,?qo͗ۼJNn}2=0TkH}߻L 5Ѡp,;[[Y=LfaΦG ~8IFv'lMA @(um ̀7~OFˆv|Wy  ʬބuk}o༨?-4-LTrmuY[*jHcs{Oa q|@ :UgeXλB`o m4<12:7Mǀ`z)z9O .RgJmJ&)^+ tH@%*fyZA.鐵0n~[v mV7rt{OsL< EkG\\="pձZ7t:2;e(B K<&g]т o6wiHnEiuFU}z12 8ND-%=ηv@oyĊTzƭ?: .(hCih?̣[r/ZkvUU Q#Y :T?sp#(p"vvO{%ƻN'/E5Ֆl.IV['׺j&k r߯bĒeA2kɘqx]'!^C9ʐ01(B-^y+#ͼQq8w2ru{]}T:$gLQN>L}A*sh~ oU1i2&I#W$+n*,o#OCEE_je40REDWa`_I<c%v7It/3Tq|wL Elt=xl]MSp"N4fW6m`y,~ u e{-RikQ`9t$RDqgH1yE? 8ڇد$kWA #x18:VDc- Ԡ T|%WƝBڻ))faEDpJZpJj̰ؽUB|.@p؎'=OeAEVcy_!Dv#zq]Y*n[Xi`{Q44P6@Vx=7WՕ6<7 oWCT` Pm:KY#IeE3ĬgIX ԅeVb[l׭kͱech|oWƪ:D=o7J!\`d# x_v}~jc{ЃGw]~Hԁ/,D_ɖ\5ˁ6+lT^Q><l,E֨쁠3}Ap,dGq#/?<= `tF~zb2{=_Efd}W7т̤zp0(F )Z vw3/@~|0=R_eyb42=}ıB%:n>CFPS P.>~=^W+l:_-K:pWm!"1,ڽEIqL).G%Ƃ 2.Nql!cBZ5 ^ W6],:C_ Z`7tѢƐ `m[o-0^N;j|T L]F[v,џ `9_x *̆QSHew4XXbía]=ow &Zp"g( MաOٙj .^ѬR67rO0H1FɥՒs  =.z#=50+ X@|ho[dɭ[syҡg(X }_ƒ SW:gLb-y/p;&q 3D(zxa f?ǻЌ:4H&[zr\;c"dyvZi"A޳(֌#RCTs߷`W_@,MpY ,8AnzI!.vP1pE,Ni\0a ӑu7ĪE"Z댪$Uاy܍Fa̭>]57 P+%Hmh,3E囜+ $Zv8D㍵R\륟;?H]g sD]gWՌ[}SF:7 廝x6~ԧq VZdO5-N@ʫDzKCeTLQ\X{]kfi0N޻DEH1]L%Me^Ub93J?R$] AFj­&S֗-= n+lUhkuy41 mexH AG&ն YZ