libbcc0-0.26.0-150500.3.6.1<>,,ĉf4p9|!w^c4EL Ҝ~ k@m vG}85Y*Y#H" ƽK`ö$KHf+JOwmPBZKRvf/^)=ċxܛ`KpEA HVwXzԔN]Q4jL:+$+Wuv{;PLHᚄ{0U 8'⹠gC$J^l­s?Ep='Br;>@?d   N %,D P \ t : d|8: : :( g8 pK9 K:8K> @F)G@HXIpXxY\]^"b`c defluvwxy(TzxClibbcc00.26.0150500.3.6.1Shared library from the BPF Compiler CollectionShared Library from the BPF Compiler Collection.f4h01-ch5a7SUSE Linux Enterprise 15SUSE LLC Apache-2.0https://www.suse.com/System/Librarieshttps://github.com/iovisor/bcclinuxx86_64/j@,]A큤f4f4f4f4f4cFad86163d816403d3aa288016c728375a7609d999dfe7f522c5bb7971c30b4233de5c3976fe0b72d8828031ca20d26717d02c4496077864f67da0253c2ba3ffb8b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1libbcc.so.0.26.0libbcc_bpf.so.0.26.0rootrootrootrootrootrootrootrootrootrootrootrootbcc-0.26.0-150500.3.6.1.src.rpmlibbcc.so.0()(64bit)libbcc0libbcc0(x86-64)libbcc_bpf.so.0()(64bit) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     (kernel-debug-devel if kernel-debug)(kernel-default-devel if (kernel-default or kernel-default-base))(kernel-kvmsmall-devel if kernel-kvmsmall)(kernel-pae-devel if kernel-pae)(kernel-vanilla-devel if kernel-vanilla)/sbin/ldconfig/sbin/ldconfigkernelkernel-devellibLLVM.so.15()(64bit)libLLVM.so.15(LLVM_15)(64bit)libbpf.so.1()(64bit)libbpf.so.1(LIBBPF_0.0.1)(64bit)libbpf.so.1(LIBBPF_0.0.6)(64bit)libbpf.so.1(LIBBPF_0.0.7)(64bit)libbpf.so.1(LIBBPF_0.0.8)(64bit)libbpf.so.1(LIBBPF_0.0.9)(64bit)libbpf.so.1(LIBBPF_0.1.0)(64bit)libbpf.so.1(LIBBPF_0.5.0)(64bit)libbpf.so.1(LIBBPF_0.6.0)(64bit)libbpf.so.1(LIBBPF_0.7.0)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.2)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libc.so.6(GLIBC_2.9)(64bit)libclang-cpp.so.15()(64bit)libelf.so.1()(64bit)libelf.so.1(ELFUTILS_1.0)(64bit)libelf.so.1(ELFUTILS_1.3)(64bit)libelf.so.1(ELFUTILS_1.5)(64bit)libelf.so.1(ELFUTILS_1.6)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)libm.so.6()(64bit)libm.so.6(GLIBC_2.29)(64bit)libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.5)(64bit)libstdc++.so.6(CXXABI_1.3.8)(64bit)libstdc++.so.6(CXXABI_1.3.9)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.14)(64bit)libstdc++.so.6(GLIBCXX_3.4.15)(64bit)libstdc++.so.6(GLIBCXX_3.4.18)(64bit)libstdc++.so.6(GLIBCXX_3.4.20)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rpmlib(RichDependencies)4.1.04.1.03.0.4-14.6.0-14.0-15.2-14.12.0-14.14.3f4ecc@b@bbb @aV@aD@aD@`@`@`a@_@__m_-B@^@^@^@^1^^F^%@^@]q]@]]c@\]@\@\M\\@n@\=@[[;@[(@Za@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*!@shung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comdimstar@opensuse.orgaaronpuchert@alice-dsl.netshung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.commimi.vx@gmail.comidonmez@suse.comglin@suse.comglin@suse.comidonmez@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comjengelh@inai.deasarai@suse.comasarai@suse.comglin@suse.comglin@suse.commsrb@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- Fix incorrect offset calculation when consecutive bitfields are present (bsc#1219096) * add fix-alignment-issue-on-x86_64-due-to-consecutive-bit.patch- Fix BPF verifier rejection of nfsslower.py (bsc#1217884) + add tools-nfsslower.py-Fix-uninitialized-struct-pad-erro.patch- Force specific versioning of LLVM in preparation of Leap 15.5/SLES 15-SP5 + Remove now duplicate dependency llvm-clang-devel, having clang-devel is enough- Update to version 0.26.0: + Support for kernel up to 6.1 + bcc tool updates for biosnoop, opensnoop, biopattern, killsnoop, runqslower, offcputime, wakeuptime, etc. + libbpf-tools updates for klockstat, sigsnoop, hardirqs, softirqs, opensnoop, statsnoop, offcputime, tcplife, cpufreq, cpudist, etc. + new libbpf-tools: tcptop, tcpstates, biotop, capable + doc update, bug fixes and other tools improvement- Update to version 0.25.0: + Support for kernel up to 5.19 + bcc tool updates for oomkill.py, biolatpcts.py, sslsniff.py, tcpaccept.py, etc. + libbpf tool updates for klockstat, opensnoop, tcpconnect, etc. + new bcc tools: tcpcong + new libbpf tools: tcpsynbl, mdflush, oomkill, sigsnoop + usdt: support xmm registers as args for x64 + bpftool as a submodule now + remove uses of libbpf deprecated APIs + use new llvm pass manager + support cgroup filtering libbpf tools + fix shared lib module offset <-> global addr conversion + riscv support + LoongArch support + doc update, bug fixes and other tools improvement- Update to version 0.24.0: + Support for kernel up to 5.16 + bcc tools: update for trace.py, sslsniff.py, tcptop.py, hardirqs.py, etc. + new libbpf tools: bashreadline + allow specify wakeup_events for perf buffer + support BPF_MAP_TYPE_{INODE, TASK}_STORAGE maps + remove all deprecated libbpf function usage + remove P4/B language support + major test infra change, using github actions now + doc update, bug fixes and other tools improvement - Changes from version 0.23.0: + Support for kernel up to 5.15 + bcc tools: update for kvmexit.py, tcpv4connect.py, cachetop.py, cachestat.py, etc. + libbpf tools: update for update for mountsnoop, ksnoop, gethostlatency, etc. + fix renaming of task_struct->state + get pid namespace properly for a number of tools + initial work for more libbpf utilization (less section names) + doc update, bug fixes and other tools improvement - Drop Do-not-export-USDT-function-when-ENABLE_USDT-is-OFF.patch: fixed upstream.- Move kernel{,-devel} requirements to libbcc0 for deduplication. - Require additionally kernel-$variant-devel for libbcc0. - Declare python3-bcc, bcc-examples and bcc-docs as noarch.- Use shared libbpf library instead of building it along with bcc + Delete libbpf-0.5.tar.gz - Fix build on i586 due to use of shared libbpf library + Do-not-export-USDT-function-when-ENABLE_USDT-is-OFF.patch- Update to 0.22.0 + Support for kernel up to 5.14 + add ipv4/ipv6 filter support for tcp trace tools + add python interface to attach raw perf events + fix tcpstates for incorrect display of dport + new options for bcc tools runqslower, argdist + new libbpf-tools: filetop, exitsnoop, tcprtt + doc update, bug fixes and other tools improvement- Update to 0.21.0 + Support for kernel up to 5.13 + support for debug information from libdebuginfod + finished support for map elements items_*_batch() APIs + add atomic_increment() API + support attach_func() and detach_func() in python + fix displaying PID instead of TID for many tools + new tools: kvmexit.py + new libbpf-tools: gethostlatency, statsnoop, fsdist and solisten + fix tools ttysnoop/readahead for newer kernels + doc update and bug fixes - Update libbpf to 0.5 + libbpf_set_strict_mode() allowing to opt-in into backwards incompatible libbpf-1.0 changes. See "Libbpf: the road to 1.0" and "Libbpf 1.0 migration guide" for more details. + streamlined error reporting for low-level APIs, high-level error-returning APIs, and pointer-returning APIs (as a libbpf-1.0 opt-in); + "Light" BPF skeleton support; + BPF_PROG_TYPE_SYSCALL support; + BPF perf link support for kprobe, uprobe, tracepoint, and perf_event BPF programs; + BPF cookie support for kprobe, uprobe, tracepoint, and perf_event BPF programs through bpf_program__attach_[ku]probe_opts() APIs; + allow to specify ref_ctr_off for USDT semaphores through bpf_program__attach_uprobe_opts() API; + btf_custom_path support in bpf_object_open_opts, allowing to specify custom BTF for CO-RE relocations; + sk_reuseport/migrate program type support; + btf_dump__dump_type_data() API, allowing to dump binary data according to BTF type description; + btf__load_into_kernel() and btf__load_from_kernel_by_id(), and split BTF variants of them; + btf__load_vmlinux_btf() and btf__load_module_btf() APIs; + bpf_map__initial_value() API to get initial value of mmap-ed BPF maps; + bpf_map_lookup_and_delete_elem_flags() API. + support for weak typed __ksym externs; + BPF timer helpers: bpf_timer_init(), bpf_timer_set_callback(), bpf_timer_start(), bpf_timer_cancel(); + bpf_get_attach_cookie() helper to get BPF cookie from BPF program side; + bpf_get_func_ip() helper; + bpf_sys_bpf() helper; + bpf_task_pt_regs() helper; + bpf_btf_find_by_name_kind() helper; + usability improvements for bpf_tracing.h when target architecture is missing. + improve BPF support detection on old Red Hat kernels with backported BPF patches; + improvements for LTO builds with GCC 10+; + pass NLM_F_EXCL when creating TC qdisc; + better support of BPF map reuse on old kernels; + fix the bug resulting in sometimes closing FD 0, which wasn't created and owned by libbpf itself.- Update source URL for bcc and libbpf- Update to 0.20.0 + Support for kernel up to 5.12 + Some basic support for MIPS + added bpf_map_lookup_batch and bpf_map_delete_batch support + tools/funclatency.py support nested or recursive functions + tools/biolatency.py can optionally print out average/total value + fix possible marco HAVE_BUILTIN_BSWAP redefine warning for kernel >= 5.10. + new tools: virtiostat + new libbpf-tools: ext4dist + doc update and bug fixes - Update libbpf to 0.4 + BPF static linker APIs; + subprogram address relocation support (e.e., for use with bpf_for_each_map_elem()); + support for extern kernel functions (a.k.a. BPF unstable helpers); + TC-BPF APIs; + ksym externs support for kernel modules; + BTF_KIND_FLOAT support; + various AF_XDP (xsk.{c, h}) improvements and fixes; + btf__add_type() API to copy/append BTF types generically; + bpf_object__set_kernel_version() setter; + bpf_map__inner_map() getter; + __hidden attribute for global sub-program forces static BPF verifier verification; + static BPF maps and entry-point BPF programs are explicitly rejected. + libbpf will ignore non-function pointer members in struct_ops; + Makefile fixes for install target; + use SOCK_CLOEXEC for netlink sockets; + btf_dump fixes for pointer to array of struct; + fixes for some of xxx_opts structs to work better with debug compilation modes; + ringbuf APIs fixes and improvements for extreme cases of never ending consumption of records; + BPF_CORE_READ_BITFIELD() macro fixes.- Update to 0.19.0 + Support for kernel up to 5.11 + allow BCC as a cmake subproject + add LPORT support in tcpconnlat and tcpconnect + added bpf_map_lookup_and_delete_batch support + new tools: virtiostat + new libbpf-tools: cpufreq, funclatency, cachestat + add install target to libbpf-tools + a few lua fixes + doc update and bug fixes - Set ENABLE_NO_PIE to "OFF" to enable PIE for bcc-lua (bsc#1183399)- Update to 0.18.0 + Support for kernel up to 5.10 + add bpf kfunc/kretfunc C++ example + add PT_REGS_PARMx_SYSCALL helper macro + biolatency: allow json output + biolatpcts: support measuring overall latencies between two events + fix build when ENABLE_CLANG_JIT is disabled + doc update and bug fixes - Update libbpf to 0.3 + kernel modules BTF support on all levels + ring_buffer__epoll_fd() API + xsk_socket__update_xskmap() and xsk_setup_xdp_prog() APIs + New BPF helpers: - bpf_task_storage_get() and bpf_task_storage_delete(); - get_current_task_btf(); - bpf_bprm_opts_set(); - bpf_ktime_get_coarse_ns(); - bpf_ima_inode_hash(); - bpf_sock_from_file(). + ring_buffer__poll() returns number of consumed records correctly + handle corner-case case with unused sub-programs + xsk_socket__delete() bug fixes- Update to 0.17.0 + Support for kernel up to 5.9 + usdt: add uprobe refcnt support + add bpf iterator C++ support + new bcc tools: tcprtt, netqtop, swapin, tcpsynbl, threadsnoop + tcpconnect: add DNS correlation to connect tracking + new libbpf-tools: llcstat, numamove, runqlen, runqlat, softirgs, hardirqs + doc update, bug fixes and some additional arguments for tools - Update libbpf to 0.2 + full support for BPF-to-BPF function calls, no more need for __always_inline; + support for multiple BPF programs with the same section name; + support for accessing in-kernel per-CPU variables; + support for type and enum value CO-RE relocations; + libbpf will auto-adjust CO-RE direct memory loads to adjust to 32-bit host architecture; + BPF_PROG_BIND_MAP support, .rodata will be bound automatically if kernel supports it; + new APIs for programmatic generation of BTF; + support for big-endian and little-endian endianness in BTF; + sleepable fentry/fexit/fmod_ret/lsm BPF program. - Enable lua support only for Tumbleweed to close the gap between SLE and openSUSE Leap- Update to 0.16.0 + Support for kernel up to 5.8 + trace.py: support kprobe/uprobe func offset + support raw perf config for perf_event_open in python + add BPFQueueStackTable support + added Ringbuf support support + libbpf-tools: readahead, biosnoop, bitesize, tcpconnlat, biopattern, biostacks + bug fixes and some additional arguments for tools - Update libbpf to 0.1.1 + __ksym extern variables support for getting kernel symbol addresses; + BPF XDP link support; + bpf_program__set_autoload() to disable loading and verifying specific BPF programs; + support for attaching map elements BPF iterator programs; + new getters/setters for more control over BPF map definitions; + all destructor-like APIs (e.g., perf_buffer__free() and bpf_object__close()) now accept pointers returned on error (in addition to NULL and valid pointers) and ignore them, no need to guard destructors with extra checks now; + bpf_link__detach() for force-detaching link, while it's still alive; + btf__parse_raw() and btf__parse() APIs for more convenient and flexible BTF parsing. + fix an issue with loading XDP programs on older kernels. + CO-RE relocations in .text section (in sub-programs) are now performed properly; + vmlinux BTF is not loaded unnecessarily twice; + perf_buffer__new() can be used on old kernels down to at least 4.9 version; + libbpf's internal hashmap fixes for 32-bit architectures; + few BTF sanitization bugs and memory leaks fixed; + btf_dump handling of GCC built-in types for Arm NEON fixed; + BTF-defined map-in-map initialization fixed for 32-bit architectures; + various BTF fixes for 32-bit architectures.- Modify URLs to get the tarballs with names not just versions - Drop _constraints + We don't link the static clang libraries anymore and this reduces the requirements of hardware. - Drop the unused _service file- Update to 0.15.0 + Support for kernel up to 5.7 + new tools: funcinterval.py, dirtop.py + support lsm bpf programs + support multiple pid/tids for offwaketime + usdt: add helpers to set semaphore values + turn off x86 jump table optimization during jit compilation + add support to use bpf_probe_read[str}{_user,kernel} in all bpf + programs, fail back to old bpf_probe_read[_str] for old kernels + tools: add filtering by mount namespace + libbpf-tools: cpudist, syscount, execsnoop, vfsstat + lots of bug fixes and a few additional arguments for tools - Update libbpf to 0.0.9 + BTF-defined map-in-map support; + bpf_link support expanded to support new kernel BPF link objects; + BPF_ENABLE_STATS API; + new BPF ringbuf map support, added ring_buffer API for consuming; + bpf_link-backed netns attachment (flow_dissector). + bpf_object__load() better error code propagation; + few memory leaks and corruptions fixed; + register naming in PT_REGS s390 macros; + .bss pre-setting through skeleton is now supported as well. - Drop upstreamed patch + bcc-bsc1172493-Make-reading-blacklist-optional.patch- Add bcc-bsc1172493-Make-reading-blacklist-optional.patch to make reading kprobe blacklist optional so that the bcc scripts can work with the locked down kernel (bsc#1172493)- Amend the sed rule for python3 shebang- Update to 0.14.0 + Support for kernel up to 5.6 + new tools: biolatpcts.py + libbpf-tools: tools based on CORE and libbpf library directly + add --cgroupmap to various tools, filtering based cgroup + support kfunc (faster kprobe) for vfsstat, klockstat and opensnoop + lots of bug fixes and a few additional arguments for tools - Update libbpf to 0.0.8 + Add support for BPF-LSM + CO-RE relocation edge cases + expected_attach_type handling fixes at load time + fixes in hanling kernels without BTF support + internal map sanitization improvements - Drop support-clang9.patch + Upstream fixed it in another way.- Update to 0.13.0 + Support for kernel up to 5.5 + bindsnoop tool to track tcp/udp bind information + added compile-once run-everywhere based libbpf-tools, currently only runqslower is implemented. + new map support: sockhash, sockmap, sk_storage, cgroup_storage + enable to run github actions on the diff + cgroupmap based cgroup filtering for opensnoop, execsnoop and bindsnoop. + lots of bug fixes. - Update libbpf to 0.0.7 + Major new features: - BPF skeleton support; - Kconfig extern variables support; - STRUCT_OPS support; - support for BPF program extensions; - cgroup MULTI-mode support (bpf_prog_attach_xattr() API). - bpf_send_signal_thread() BPF helper; + Usability improvements: - BPF CO-RE improvements (flexible array, LDX/ST/STX instructions, improved conditional relocations); - generic bpf_program__attach() API; - SK_REUSEPORT program type support; - bpf_link_disconnect(); - bpf_find_kernel_btf() API exposed; - large instruction limit probing added; - improved error message for RLIMIT_MEMLOCK. + Fixes: - fix perf_buffer handling of offline/missing CPUs; - various other fixes and usability improvements. - Drop upstreamed fix: bcc-fix-test_map_in_map.patch- drop python2 bindings - don't require python3-devel package- Fix build when pkg_vcmp is not defined- Update to 0.12.0 + Support for kernel up to 5.4 + klockstat tool to track kernel mutex lock statistics + cmake option CMAKE_USE_LIBBPF_PACKAGE to build a bcc shared library + linking with distro libbpf_static.a + new map.lookup_or_try_init() API to remove hidden return in map.lookup_or_init() + BPF_ARRAY_OF_MAPS and BPF_HASH_OF_MAPS support + support symbol offset for uprobe in both C++ and python API, kprobe already has the support + bug fixes for trace.py, tcpretrans.py, runqslower.py, etc. - Update libbpf to 0.0.6 + New features - new extensible bpf_object__open_{file,mem} APIs and DECLARE_LIBBPF_OPTS() macro to go with them - bpf_helpers.h, bpf_endian.h, and bpf_tracing.h are now distributed with libbpf - BPF CO-RE: added field size, field existence, and bitfield relocation support - BPF CO-RE: BPF_CORE_READ(), bpf_core_field_exists(), bpf_core_field_size() and other BPF CO-RE related helpers available through bpf_core_read.h header - bpf_object__open() API now auto-detects program type from its section name - BPF_PROG_TRACING programs support (incuding BTF-typed raw tracepoints, fentry/fexit programs) - mmap() support for BPF global variables - declarative map pinning support added - probe_read_{user,kernel}[_str]() BPF helpers added - bpf_get_link_xdp_info() function to get more XDP information added - a bunch of other AF_XDP changes + Usability improvements - no need for int version SEC('version') = 1; anymore - raw_tp/tp and uprobe/uretprobe section prefixes added - new bpf_program__get_{type,expected_attach_type} getters - preserve error code on program load failure + Fixes - btf_dump padding handling - bpf_object__name() returning name, not path - ELF section handling off-by-one bug fix - mem leak/double free fix in BPF program relocation code - Replace lua51-luajit-devel with luajit-devel to reflect the recent change in Factory (bsc#1159191) - Add bcc-fix-test_map_in_map.patch to fix the build error in the test case- Enable USDT for s390x since 0.10.0 already supports it- Add support-clang9.patch and apply it for llvm >= 9 - Fix sed call for python- Update to 0.11.0 + Support for kernel up to 5.3 + Corresponding libbpf submodule release is v0.0.5 + Fix USDT issue with multi-threaded applications + Fixed the early return behavior of lookup_or_init + Support for nic hardware offload + Fixed and Enabled Travis CI + A lot of tools change with added new options, etc. - Update libbpf to 0.0.5 + bpf_btf_get_next_id() API to iterate over system's BTF objects + libbpf_set_print() now returns previously set print callback + libbpf versioning, build, and packaging improvements + convenience helpers for working with BTF types + experimental BPF CO-RE relocation support + various AF_XDP fixes and enhancements + BTF-defined maps + tracing attachment APIs and bpf_link abstraction + perf buffer API + BTF-to-C conversion API + btf__parse_elf API for loading .BTF from ELF files + libbpf_num_possible_cpus() added + passing through prog_flags through bpf_object__open + new attach types detection added - Use version for REVISION instead of libversion- Update to 0.10.0 + Support for kernel up to 5.1 + corresponding libbpf submodule release is v0.0.3 + support for reading kernel headers from /proc + libbpf.{a,so} renamed to libcc_bpf.{a,so} + new common options for some tools + new tool: drsnoop + s390 USDT support - Update libbpf to 0.0.3 + Also add the source url of libbpf - Drop upstreamed patches + 0001-fix-string-re-being-used-on-bytes-for-Python-3.patch + 0001-Convert-bytes-to-string-for-re-in-get_tracepoints.patch + 0001-tools-don-t-mix-print-end-with-printb.patch - Drop bcc-libbpf0 since upstream dropped the so file - Enable SMP build flags since we don't need static clang anymore- Add upstream patches to improve python3 compatibility + 0001-fix-string-re-being-used-on-bytes-for-Python-3.patch + 0001-Convert-bytes-to-string-for-re-in-get_tracepoints.patch + 0001-tools-don-t-mix-print-end-with-printb.patch- Update to 0.9.0 - Add libbpf-5beb8a2ebffd.tar.gz since libbpf became a submodule of bcc - Drop bcc-bsc1080085-import-readline-from-lib.patch + Upstream provide an additional argutment for the shared readline- Correct the library version- Remove unnecessary use of xargs. - Remove idempotent %if..%endif guards. - Update descriptions for grammar.- Update to 0.8.0. - Remove upstreamed patches, and un-needed ones. - bcc-check_int128.patch - bcc-python3.patch (replaced with sed pipeline) - bcc-install-additional-headers.patch (bpftrace has fixes now)- Switch to %license over %doc for licenses. - Add upstream patch for bpftrace builds. boo#1117223 + bsc-install-additional-headers.patch- Update to 0.7.0 - Refresh bcc-python3.patch - Drop upstreamed patches + bcc-bpf_probe_read-fixes.patch + bcc-fix-ext4slower.patch + bcc-fix-tcpaccept.patch + bcc-prevent-bpf_probe_read-MemberExpre-rewrite.patch - Remove bcc-bsc1065593-llvm4-hack.patch and set ENABLE_LLVM_SHARED - Remove COPYRIGHT.txt which was dropped by upstream- Update to 0.6.0 - Add upstream patches + bcc-bpf_probe_read-fixes.patch + bcc-fix-ext4slower.patch + bcc-fix-tcpaccept.patch + bcc-prevent-bpf_probe_read-MemberExpre-rewrite.patch - Drop upstreamed patches + bcc-fix-build-for-llvm-5.0.1.patch + bcc-fix-a-compilation-error-with-latest-llvm-clang-trunk.patch + bcc-bsc1080085-backport-bytes-strings.patch + bcc-bsc1080085-detect-slab-for-slabratetop.patch + bcc-bsc1080085-fix-cachetop-py3-str.patch + bcc-bsc1080085-fix-syscount-str.patch - Refresh bcc-python3.patch- Add bcc-fix-a-compilation-error-with-latest-llvm-clang-trunk.patch to fix build with LLVM6.- 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)- 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 library/sbin/ldconfig/sbin/ldconfigh01-ch5a 17147471200.26.0-150500.3.6.10.26.0-150500.3.6.1libbcc.so.0libbcc.so.0.26.0libbcc_bpf.so.0libbcc_bpf.so.0.26.0libbcc0LICENSE.txt/usr/lib64//usr/share/licenses//usr/share/licenses/libbcc0/-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:33629/SUSE_SLE-15-SP5_Update/67d34ab4d7dcd6a1625a73f508dfc178-bcc.SUSE_SLE-15-SP5_Updatedrpmxz5x86_64-suse-linuxELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=dd45f31e83d06a4669d9fbb2544ff30098b52ee3, strippedELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=ca35ef02dc3201b0e4e92dbac8e2fd7bac29719a, strippeddirectoryASCII text--'PR'R%RRRRR RRRR R+R/R1R*R.R4R0R2R,R)R-R3RRRRRRRRR R#R!R"R RR RR R(R&R$RPR'R%RRRRRRR RR R#R!R"R RRRRRRR2R.R,R1R)R/R4R3R*R0R-RR R(R&R$R $&Ze俈utf-84ef44dd406e4375d3fb0d06be1fb1c7f6f60c585bf38290ce3981f8f9880ce2f?7zXZ !t/Zjq]"k%r=e8|գǠB8Ći#,;0oK?=G9%=HAoegW6hH=nh+uY90r)a'o$wG  `/?xutDmy ;њYE W"#_=O 6è(vbk9 7DL큇oFӚ3jfM SRq㪒6e9uǒG&k,3Q*fA9jW1`A9pJL8A0EmxB4m̿.T%?jlVIqܽnPn9-l,7>gKխ|O5 9hل`ЮB*DPc 6 8-r~2Ơ"5M&]|xFN $&]̄^JQa~qoV3 x r\|W=U) S,ǹ+K`46h:+A6GL`#%*tmdi&,Dj^fUŵI^%أ o/(*bm ON("9@RZfT,y~puZ/vGJs`a(VA0 7F{T3k~$x"!K5+uNVg3.@k4ƀVzx=J)ނ򪆺ARZ}7 b3 K @I#e^ f{ ;muE zG,ݽ' d7% y`+obSh콲[ԃ8<X=[A҅L.`5}Cf-b",EtlͮT>=xWVj۱nB? _ݍ]##69B%lJ|'v$+^@РQd.t`}rU~t"{#f%DlЂ>*]^uw&oYHIY!0Ъ&Әdi[.T 44;w֛5 H6$]۳! X}K򔃭KH f ME׉0T/[0pDuhpJa9V>M*PxQ+V5/\h"'ΞވsND;&}?;iEfJ )͇ d,ʜJx7mX1)Nv$:EJ̺n}h\wL>1Y[[;ԇ-Ĩ5 >K{VKLy(nöG& '(QEPMP(/?h;o#@alPNӜ}'}T=;$I!&ůBQS!CB@j1v0a!e68|FXf##NCBa4;FXٛ(į3,z$6ǮTLͶ6a,r&]zOK;Sd[+ T73n;55!RQzEpxlUAx56`})JD$P~;rEK@w\HҬrRXgpMF 2ܫUJ@zE7+YM:}_i4oN{#HT?Ђh8+'>>9ҴYyM+><WhKj;_thbZX ch _1{Zt.mD8h2Q9$ ܮ2TܿKkaa2p3-RQ j+Rn`[>B{־i-you@V }Y%a-MͼF1vg`$Mjmr'A2FPKk{ⶽgS V۠jgp#ьg~3ND?R]H>ӗBTC!UkIGB"'SR.Q Tl(/HCKb(]`ؽH7Ѝ[=,[Z]luƧ[}5vʸG^52iвHR|)F=G~ê`FOQp3|[LJ+xjR1=b4jDdl$x݃9t ĽY˒+|W)#w]0fD#6[Fn0[ZwQhWWH|CA&(O0(!?^LE~t{ڤgԘLEQ¥>3SL=#y0?r1MwM))Ŋ~%$%k*2-i;3RFeWdz\y<]bݗ)k+9s<љm)FQY^X6q.]vU+`2<>P\AD[XwP~+ O}c{q_;wyۆ?[R[k9e٘Q,3܄*?@RuP2{DllW ݘBv9}iuȞFPK3/)o%ٿU=@kR}Uf " />7Z'^l}x^?{.k BtW(B9F҉F0 g0c0 =Zšh x]G X*s:Z[~[dN>iaLpc"' Y6$$:Ϡb [ %j4~60u~Y@x5 P*dRƐYZ7t)`( ¹gjUHfw{TΧ<1{]|Ԏ S%-/dGxn:t_S"eԱ R>_[c 3cd!=Kk"*vbų'>Mgrmuq6"#[ލݘ=Z\"iׄ c sӰVnRSK+@~87>3t &O#{8sgC zI}nr.A~v錳%Rk.쒺˥N>eUV5b5$Ur +Kzb\ЌBp7:C\d\r!cԜmfރaa0;qif{=ɩQ3uxꅕHk]_\ Q^~K< Fk%+]'oI1EM 0=H- ʁA]HP&^s.tL}ln%Mvv SH"/~UNv̊]'2q/P:v@%HSsrt=e&zA/.0*.7o Ef_MY6Bd#,,&,=]:Vڽ mtXlM Wwu>mxj[!eDTs7y62Z.ELOyt0E!6a-4O ΪvC 'CbA56,Ҕ/ArERU9e%N0Ey-휦z HK~2Y(!,E@֌{A ʼ"϶yf TjI㮙at3_UŶo//Z,X wet Y=Z[ ybae~EQLҫ \IbÌypp߾P ?0_實K˕ns-yٴX'D5(:M I*?׃2%N~C7X,Ve4ƶ÷1ti> ߲3nS0<ɓ7ݢgg͉ۥvDhBm&5vB\vVml,I+P7{2ؖ~g~]1[&N~SI@"Q&AE 04H XYu17\}$(֍_uо4$ޙ|q'{_q]Q0 ][b(YC )ŽTNWE?\pX&9Tn9f0Z^Y)M,V39]eRމ\dž⼑MM& W" جNSoͯ8^JO|=2lq#fw->ޏ5y1o4J'R"$%Czm̠"EQMYX+a1^$pBʹ6s/YRz)1Hȴ C Cd@RU"Qzat:> k>B~oN QG'ko uJ{9zגMԋLdgRaX>xMIC30aC6TсvƂRXnxߘә+ge $郠X۱ruqTny^),5Q'E#G k[=ziB9?#{0 ޿jO"Ff:c}? ԖhZr  ȹ:ꭋQ2$zD7xu0GJ$ d) A=6ϝho'g`Fڿ5ח>F^΋wݐgD%9ŘWzN4'-2۷v[ɗ7l_Bnϩc_R; >`^]_ƀۛ1zLa Mjb*D/ .+/J"'?/ V+qf& ??ZjHV v@5y_ o۞Bxj.ѐ<*#y0ò<"´xU8js-ӻk0?=SKi_ď1IdzPʭc!qvdk/ 1p\Ѵ̉mCpۋ[7q1K쿈DoՖZ۫魡0+sf|h漹CZ,~})<X׃RZ@znnuiuk^1,Q!OW{L͊\I#캉p> C16n%&~b(h0Ińc@z%eV,S#؇U " 6던[NC QoSo #AĒCg=͓WvUT8kv1ͱ/ ާ11{@P6[g}S?V;3\PnwdkPd*ڮZä́VC}R %S65R\iCG3㗿|jh'Գ9'&G9lI/daXYcl)$jb])v/ao9RPOt; 55 UCe̢H}0AfmKYed}hp.69{|ΙYWTg`zcO`G Vq+fI(ث"cRH|JyXRBNFE@/|MOҊxDdhsnyP9 ]@ 46w!uB>ap_DnwzK*BMB&?/OL&ك]Jy,>ʃ|dx+cC;b+XM ۣr zT =rda=Z[挂9k\,Ё}CWJěK BDͺLn3eˇ?H؛DW%b`#^5mhjzBP0~z'|;JS@24TxhY*/&S!,Bʃ/2k0'e!- jꏷkd2aʨw%kyIX߅m$s |) {'+Ti-Wj炃uéC"J|, w7s1vJ$B]Z7b_;ի} 󾦃Xi ŶwYėlgK#>7Dio&){ϪVP?8VJ^t×Dd h@bR57b#aZAO,EY+]o!Yq5!<P6JM0tHʂ)/v)3u5`C1wUD !a#}/&5 S8c=CYĄ;'5 QQfU!OV\r\ N;^;QuQij”PuLeBsshAoN8$bz0n=)iX-"f[Š`떚,2nt3b+t&uAKr0 ZS)e.s(WeI|3oX_b_<$FB0'fQ!Uxh`|-f𳐰u B/jMI ז)hs[.sv̐՟e vWqБwW{vRtœV3wy .L. " v :ͧVʰ}W:6nLK˽|ò-w vdVYSDs67rdd}% ųwtm1)|0ܱwy9$a-lBvưĘp[cNR|QNj?Ǘ=p,iq؀9^t1`m\XZ@08o)+ 0_]+.G2E۫&A~a^6%G/ s:P,|'3\}Q2yEOݯB\`$v6pܝ!rIGn*h$ѮBzB&Dۍh2T_Vt?TTJ8F'B-ɢ~L*<ht&9{ޒKUnԐ/) !F(`s/dr;*0zOG.hv@Pcf>frO?p^>enIpgX9Mv]kl֎Rc"t֮|no'Ќ;x>tR71(<$@]Dp sѥHvv&%|U|4t/TnД-QfѪ|#W4F㎱xrq a#bL'`8gWSz&US~bSS\ nO\ψ@=z#%̃itUA7u[}32qϴ1J?SȱsKq7KdfCDE36^LPݤ)r>%չ9"b:aOu{ox;HVWvBv4^?m^Tv/Lrxpc38G. 8<wtIFX { Lenk8|#b-F3AX{M2\3ȧ47ۖ@g:8ˢP%h:r}w<-\'o `a\I?YMYMD SBҗlZ&ɌuӬuS&ZPfc>ub8:k?8k +(U32"-5p0X|{|hCh.bHDnfFKy;x≞B^.5\M6#kKfvwd3:=__r%IMjy]27ےPK^,id$!kjGARH=!\7U3C)~]j x|&Q=:e`Ot Ce6֪P(bEisZD‡yczNԑW b3!^d9h%LntvG;ƒy!ܬ7fVSʵm=|+uzae.u`~h[O(E xWCP? hŠo;a P)R&RٝJdr Dц vwc߷Yi T cQ뻼ӎ eg+%V\l#a1evR#YlQ \d58(DivamF"D2wb.B9LYuu申 3zM6R[U Yz <,%ęLkIǽB#]umg* 8(0CZ.`h-@1|H4TcRnqv=!WI]8"%WjBc9^D B5[lW)*;y^enZ7k%*qՑ% j64yQ#Bܒy]f#_J7" ZJsc_+ OFGy'^#mSa'Mi$]C$$Nh,es;Vk/-»òG\ klNVd2֔ir$$%a6 CJ/;b]Q(YӪ2σDOTE/8v&c3[g⿠ w& c T@E@E>]Tqˏzsݞ碳9]̍վ+;&Z6LN)Y/V.]j@`w?47[P N+ŋ{Dž^[L@lIek{W`P #Na4wZꩤA~W|Z=).wc2fo@NXj3"gT"X^ ֓u{޵ѫد{yh9Bcc<$+ i0^(HȢ:=iF?ŨL1BkDO#tbf!`z37^LwnyOvB:سҮ\vHM\o+?y+hˁpи5Fa Ep u0jR JE&W!_ALu'ib)&I1Vs=q?yzjae/C%Ecilq뜀x xkkFV|z9 ocþ#=YZ%w}\Mϝ,x&XZv|إdEza#6Kw`1ѩcJ'n<'t62}*ut}?+OV4K>6]S/+n+9ݜCT:-FX!#'Cl@qn{^FC_<mR)jp ;N^t=Yi:b=5bM4 $N  钷8"yn|)}8ZNkȈ1 j/#7_f'ɄF־.w%mCsJnrT4MtXd UMnM@/'_(|m{;H'LToLRI>iӶ7o(<@ШT&vEP(u['NHw81>9~w)Qn) ,k }?M]p=Y*I Ǔ9[ hIS]'&4Lc4m vj9M`V;s,diX+^j=3یfo'S;m˦u~ Su[QEZ)' 2}'/$ lE< gt#kN1UV=anԿTKoGM֡^^nM4>צҐmfz)/ݓf 8'̿߃ A(_;4 yYd$m$nМu_PxyFuD{&vqAU"}w M4}kS\ݹ׈Or-;SC fDG|WT~ᰍOb NxuCzkgz5xAt; 9IG;!oݧa(i H84TZdhg| ʲf6̺QZ",}mϻ8 ~cW ZʦmjI`R*.L LktA<)/kэA{(A{ؕ>ӓz+Jq! @$/AkUjH=8'']_  K<_ԫ *t= ݔs? '*f1EZ7ȯE҈Lx뙣]wMN/q,JTgCNJuEƼ]z16XC'z!jd^N?+}17~59{}d{ݝ&w5 he{YV?2aQ<Ad*JgC\F0$!;W{WKݼ,M(pNЫk kJ /3ϑ( 0c׀L(46e~xwy-:LuVm~@TG`xpqL}4YAy.\Vf@*uo[_ﮫhdZOV)W T&,(!f!gTB@pXFꕣΊ(J/ t+8*X+cq,RrWebss;¤>27׳FPc%C 5[&<V"S̹NkJ[~ or"c5v'g%Zub.bKcY3@wALor 8xj>}{[}tBlON/Fe t @!;m$h[]4&u )[ϯ$T=d{ /@%ʸپIWyZE>hK|l5G::L=ܻ!CoX(=o Ze є E nk2ՂԚS^#8{, ĐA@XIC81Gfn rĀs$C-_ Nd^*l\-6A,6D[8/&K }h:l_ҿ&y7}M_gb`^y ) zG~)dZ5 /l͸ k Gɝ'Jb][z1@m1Ӭw{sЅ@aFekR,Gٟ0xyV`iawH C2vv& r1fUZ{o6RkصfthBGiЦJ#oWdž5'gġL!t}2gdo{. ;r9"FS/:󔪖*udh70q!)=*xz83ؚJ {!|eI 1X?]+$%7QL5瓛w0[+ \ ]#>C?,S(R8/,Qc68ЪDHW?rwR_$# } ; BÛ8t|Fp*0Z=+@rRq6c2߯Q{$j99n!H\+$HhqZtm8M}+NNJBY!" !kWJE"@Y]2 N__ǵ06k ]BEVɬ$I4atۑIwW<RkHZcX n: _5 !_$-.`;m#8D\C4Tg51Gꬮ/EZl?LVf?ONYDNQZƒ&|LchYXBG䦒cTB\PO1plt[ri,Cԙʪ)^G&O%~~mxjf'wzfXf 7nXtnUЩ>mb <c0wkZqߐ ,U7v\}81+凞y܁DBe/WEϪ`R8wڄ0K>|QfYNGhiǜ$ Cs 0I?rB5)>ދN3o~|RDpɈ. ՏΦT8'k[y2qpe/FFkpj==q_-k/D6w~l>γ=Rt!YRZ b`7E:`uB/>kB呠c#m-^v}zxB=4Ñn`}D}"|q_,|#jjg!b8AHVǛ+*ئpx43|q\ Tռ&k%VMGUZK5*d; ԕ={iISo5'LmrZ1$OW(BŻ k *¨Z9"^K~,^nw*v]gOwCK(y߄:2`;6b^OOK `rީ}]2TL[s$ w޷ lcai0j+<=+778ʊB旁%ЊhD!+<غ'zxgdP'}koѿeVV(f -:[ v#st'YɽXfy@#OQ-Rz(v+Uȗ(l%I,ΐ66So5 _ &ZR0'/< Ga' ;I A<3a9q? [ `< 4?~Vj sTB * n{G& 1/Di pˮx 3#'2VJL/- x(d IeF8P P4kشc[fwNQ|6ͥs܌O_tž=.>bAPpV d-Na'} y5z ulokc_>1g +X>4=tiMdv߆Μ)ZX]0|amOvDZvɢ Pu#Plˠ񃬛qJE)?2?.B'* shdٲ:;ƚP@ xybZyUraz_xJpW M@A ]tDŽsJ_Hf]ӱ!Cٰ 66 ]:+'S8= o'G4= XMρҞyp/`1%'ˀYCĤz18=@mYfpŏCivyE]Gl(O bւRUNj<@]`=g+ ;bFA3u?PM/fK}ټ"Tz]ܳX<WkCC\aP}utIո8D.wMv=#[ V~f}x"s i92fЧDVʱS2<#' ]4, (smm*BYH(^31?-CzWh#(0DgՑt0W*pp˕!|z">p@͝P|>mN׈Թv BLg7$Rۺ,AS4\Rn56PC5$|dKffO.PQ< ł`T#tM,e*  8DLUu37&{U2{Ѹ4 35sM׏0흇0O5*JI/iwdKDFdf&L3T}n<}h֍rk%Q+,|Qq92Cʌv{<"q櫌 ﯦ,OY활кV7y}?N> (~ {UFN9K|EcLv7> L6tƫs,O\cG<)t8>?*H;!U8 2`Q8fKOWO,0ż-vk~tO'ĂlSp"=&d7=\ܚ;c]e:0|kѳjSk{-fnҽa@⬐ykEp<ӓXr *¢~eZ'LwGd{( "PO[y.}t1'%}Nu'YQU=@&KIIt|@Q/hw͵|0^+9Bz^2#߾$"^c|o.XJeDfW9@R+}ci8RbVPm|H3g8Qc@-`hz*rx/ΛUP  Ş𾮉XD!}2@e !Z_.u^]Mn"c~S={Yߠ&.b)綍f'q]A!ҳ8Tavߘ)iGo.8oH(!rOJk~Hը3T"&o{+T7v*X?!N3U~rEQVk*q4CJf^$ b_~k7I"^﹂s5BQ6ŝ~x_ESo4We`J髀B]PiK%9:1^^__::Ebf #=D.).bg1reg}}igBb~"?Y%mYIzj 3,PH ozjX&1OtbhR#%tJA %CaCil 6$#+:;WmX/HD8w%R)V>?\w*!WK~/ W.6ʕE j;ekŶv˛qq6_eP=u+"}6Y|M[=J=Q |kKAU2*?.jBGαFϑ m9\[&mrsD;-\ ԫB4p)XJ+aZ_ġ჻IICxJh^ bX1sAc7w8e@Q]5PXf$E-HвA Yf)#mVjV7UE]bw%̗6KFs#1ر^GE[R!rCRBh}qEyU97FG qP( I> 6j(6 s:zVSM2^2(7'`x +_PXVȶk:(ՙ 8dOwW9DyYSӦyJI-=h#4W ąQkXe4Jh&PQxnjM`uX֦bE 7TPvS(2)g2аq N]ʐt ,;i t1 , ~nrCo!?^}maz:/vu];_i=9=|7 []Q%T®#>[)wH|oCE_5;c^Y#ق7$VvYͼ9` 0f/IF:ńü _L#m90,(MD|_[ PoE{TY/t {Y 7L ~  QqFtXo[f~+(u~{fсl㢒L.y6GO7 SPMyrxl6Dqxo3o 5r! D҂o7P, npmQ0[ gG%()q IQZi?`AfQA]o8%Fou#߹"DaȃtR3I)D851J\kjBߦ)T -H{bZNaGKlpaQ 7.OYsKT^ oG(ʥwjss$]W &gl%2(EVp}oBn\;3 8}\)܀pxiQ嵈ʡ4Ĭd@gH:-mm:24m׶4qb/c},F .̡f(֠.Eh>FkuB) *,,t;~㡲?B7/KMJ3楸ʂA(y}1oYBM36`ab*XI튣A3z+?g|B;Cɑy4 _Xi F(LyDڊ {ʇeRJQ*Gz"/56.3:>g7Vȯ9G<ڜ4$wh<2sV9CnU' 2"C6/-&1}36:NV^!R.DZFBQ%ڤ8  jF~H,`&ŰZOkM&_e~`(,b!{&{kGNBKK+ÍTٜ-r<":\[“NNit֗uL@iq7xuYR^F_u?vo|\5nbxǐق W9nl\ˍXfSVi7Ԝ"`/D׳pCɸ5a5W>OtVwƝ78mTڎ/;gB#" 't%B{I9OPϩQZ92)x.,{S\m#9㸏`]NpQ5-j4,S]ur{YUUㄹpn+3Jȏ~-8 N6}jbpW/NT r[ BbJ0~0QK9Njv,{4 eC@7Ğ",4ǥI'Hw۪}|V@m:wֿ$$b^ɬ &wB/;md'4`;=CˠZI1 &wulSkx&zoAӌ~PG%Ct1L:x КBr $Ecǚ{sV6SODc'bVr/4I^I'U9ȣ[2X crXݮ (`79xyԳ2m55D#u/3Y-IXL*h:ezAjWҔwXrc⭏A7dOK{֏C8\f(vӰ.3GDE/U}A~3L| GR5.ɻ .=%n){\hqIs2`h'X?Tlnaĺ2+Nf 38NK=<{S'8Č>Z O˿qi&*b~sfj SvMזoްy,托ud1זв=fOW梊a &Fj8Ϗ؃R!%zSW9^ vkrSWz0g͌k yFlTZWxpei'ضTPV/݂+Ojw1p쎣w)YDϴ/ m56Q{(kQTiZᕦVl.O}2.uޭގzk3 /I0aDZ ȀFlҝFt}*ev;1-Ğ@e)st DRy8Gi.F1b އw,%\Oy=@БWX1p7r>u{bfSL)7kv3k>e`5W^i -y%ۺ w;Xm5mi ~1@v@b0쨛7Jn9$7:G?A) Ș:۰>ĺ/k%ob5v0\&n  H`X WTpI=skgG/ }HkxM#0.»6N*$Y왕u6=*!9Zhq$Ivz' Y%s$6nڋpPXB6\P~-\̧-ˆg1@ uc"-dY)K!+X;!XMi\s[Ø$L鵵B]\dAkk]. [`p@Sy Bm=!e0jV?cj(Z#ca{sr{9h;$2]TA8Ywbr똺̑PؠFS_M:ж>ZX V⭪&K}n_\KW33'rBfx`/l DEUa.c;,>A;6Q}9t߬+cyЫ*rr&Hn2P&KZϗNGA=vS/=O0‚/5^׭-@Ƌn! םCO)#ɸQv(s?_t LTXh0w=ȥ0Uԗ?,Tr.K7n3q$sV=&䢲\ nSd>:< ^E_$n.`r/l!hؿ^,PZŸ? O9Yk_2ia@X4etcAތHİnStF/ts>z aUHe_!6E5_uɢЏ}J]I!ȌJϦ#SY}): owd!~u\R߄n6 d3]>qH۪? YZ