pcre-devel-8.45-150000.20.13.1<>,ibLp9|'2O|6|M5tVr'E+"1'p;[C!7&|{I9NNPNţ6/Œeٲ5?hK)/ވ6T5HmJe{Sa%$=p#eR޸b"_&j(HŏU jf8-䓖E.0̧k}cc/(!dU`8οv6mѿuQɒOHɁB>_?_d  ! S&3 Ii~t\t Dt ,t t pt ttt"8"\t$,$ $ % (%8%9&:'#FFGF(tHGtIItXJ<YJT\Jt]L`t^VUbVcWbdWeWfWlWuWtvY w[tx]Tty_$ z_L_\_`_f_Cpcre-devel8.45150000.20.13.1A library for Perl-compatible regular expressionsThe PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5.bLsheep58 SUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/Development/Libraries/C and C++http://www.pcre.org/linuxx86_64X{gL38!$"!$"P/NpN[D6 . "Fw큤bCbCbCbCbCbCbCbBbBbBbBbCbCbCbCbCbCbCbDbDbDbDbEbEbEbEbEbEbDbDbDbDbEbEbDbEbDbEbDbDbDbDbDbEbCbDbDbDbDbDbDbEbEbEbDbEbDbDbEbDbDbDbDbDbDbDbEbEbEbDbDbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbC6259142b9534f1accaa533e7ee1d7c064968a6f788ca6a72bd390f1c3bc057cb1a960e5f4752eec93bb81da47901e1a00f546820777fb0fbbfcfa1dac6c8eafd7442638d75522e87497d442425dc51a6d69ef6bed73c8ab266dbb73343039fb63510f9eb6e848a586c6313c9641de7434e0dcdabd1532118935f2adce58b4d07165767e52e03797cbbce3e6147e2436459f8b468ffecefedfd8477c157aecfe789912f03f8da84f71c4645385d45e7d6af6e286601285e432249da3b5420b98b1770f2b30c0af2f24543428173cf6e6479e921045efdbd009fd07817b84e04adbeb72671983138ce54b66145ab6a3166a46667baaca0e2db6df892d63baa5af144761e22c7b3b5d11caafe9dcb95acc993e5c05d1b3e92d63e499592c1a5d4081aebf2f3af24b91a74130c73116bd33b48dae0be064d84b3d6acbe43a3ad431e4a080dcf1ec11bad41868d54acdddc8e8779c0dee5dbecf3737f6053775a63adfd31ecc94df0cf58b0797f545f0f2ad06eb9dd83239eb8216dac1adea81472a9934a5e6b147a6a3f16a15fb81b6b9379ad36c266e3bba10e9af3b36dbf1b5e57e32ca02b567e53dd48a4e442a86dfadf90d5bf50596aac9c64727547b1a18288e3c0ddca4a6725d8791d4795e3d44a29be0c662a2b94f298261cdab2fa02c71fd1678b87b588fcda715784f99cd81ce473e7d3b0ca5bf5feeb8d4bfa57e6fb390bbe2c304ccadaa2ed865d9d4a50954e94a767c12d7ed9d19957c4693916b56095b0dde3ce337c683e2621be68f4ddf21d1f0722f3a5db731f357769348e97652a05f5e37a4141c5768fd581b0eafbfbf208631deb315490d121d4613da1ecf7341978b6b603981b40748600ef82626d7769ab70d7aa9c8758fa4bf01b6be7741eddc2450d283a1470b9ef597da8bf70df9b3ba0059563c39430434b90361cbb14f9ba8e976a3a66f8c02f2e797f4cf21ff24bce7a36f6a48e323f672d07a8277d089e45f60e9e6cf741f0a508dd52fd896e7d701fadd06cb921f345692786d62c1db9a54875a36ed211e0fce8d4c1a5f607c0e371cae3d10ac945b549c5789d13d8434259ef7472b405d74b89f1484e5e8fd70b74acd5c0193bec06eb1f9c615ce4dbb22a5f761d1480afdab62419130d2d4f127aed214d3a4fd330183f12494b1d35592155f84317b517bfb326d0eb54e50bb4a72c81366e9c2a6cad69662d37425fdd325c397aa2825c4354f6ef10aec4b25eb99bf3e487cdc65823ccbe69055afe59302c9501001bc7bb61adb9216327ce2de3ed81ba72a54636c3879d4d5becf13f6d2e57995d337c86ab727149987316097af8289067421b70c7cb528107d02847b47cff2affd7341a703604fd8c4fa546ebf47ec09d20eb0286184dfa37dfc236445d1707bcc27479d1b6e84fdaecc77a0549f41fa889cbacbc8c1003810f60e8f5a848d3246dfa6da5bc08915a83ba85db8a238f02d25d67661f8a537076ca60bbcc9a4b6b5094e7f4cb985ae471ca7e128dacb42dce8bc2a7ffd3fd92d2dcb392e67d57c5b0220cde4bd4b0d1d9b3bed3fb3f148d2dd018e12c05631a1a181ad5ce17a669649557b85f45f2ee391e5f2ee63db83b0015e68ac33ea74ce028b75852446aa616ae631205574084829736c59437be8ea8c1b24b8594f9a920601f285300a4dc1b45154afb24991a58343a6bb0c60e549368c01864c0b1a38ffcbcb42d9a2e2e81eb34844388b5e0e12fcb1e8b4fa45a6a841b5a8a5d9d27782dedd6b70d35a0b270488d9a7944ff5248905b4472e319773330e12eeaa92cf52621b094c47bea991184f24ee95dbbc557c955506629fdd587a8164e79bc67f6e27472f6b5e66dab45b50dd7003cb5d586b394d46295434aeb4eaf53ef2118b6d38f376f54a2db74454227f1dc618c5aef25d2abcd0e9fb1976e91a2be98627ef14ca268b9095855dcfe205a5ed11d8310e525cca55522866efae5c61956254b42dc96eff6389803da9fc9673ec7a774023e3fcbc1656ecd8b557806d1a27ed1c68110a41993c8a63b266acf4f33d2de0615a49bc0e9be6c3b0c7a00078db816d7e15ba582c942dab5b0140e2f861d41f340a9b16c5e0b19b069997d304ed772531f57557d5ee963a82def04ceb5893af85bf43fb5bb40cef01849a6f1dbba0ac3aa4a737c75d8041ddef3517d4f16a233cc58f09dce49b8ac4e1eca793474bee6ec78bb63543753211a8a2656d4d0c9b864a8c1b28f91db471264611a889a17726fff1689ca2e860434cc2256834a6f4f36bcf266342e60df47d45a01728b392add374d553fae053246244f05a7f5706a3b4450d4d967c8032a3488393151f62f3970ddf55d3561f718abf0c1e5fbf2afbe7144fcb701f930faecf897c1ac0178380fc19ec7810dc512e2f2c2e6b9dd2f6afa695b54755a6a930abfa372705e87c52cf1eaed46ebf3428ecb6a531cd8e2a8364f4503754632531a3acfd6fbcb2bcde1af643f6d625465a22725b318462347280a49f826677500bd00b7ecd78eaef1ba8a5124a50c43a4bfde3f4f3a1a82c129f732b39cd30ff7f937c289a0489f4d20a2e33a59e3e4e916576d761f6378be140878ac294a5f5bb15a5159ced06c66eeb857def6bca662b3b1288d28dc6e0994d12912b4561880f363b22739719e5b60a121af0497f69b3d0c50bcb729759738c7bd777ab594633c9b7265libpcre.so.1.2.13libpcre16.so.0.2.13libpcrecpp.so.0.0.2libpcreposix.so.0.0.7pcre_assign_jit_stack.3.gzpcre_compile.3.gzpcre_compile2.3.gzpcre_config.3.gzpcre_copy_named_substring.3.gzpcre_copy_substring.3.gzpcre_dfa_exec.3.gzpcre_exec.3.gzpcre_free_study.3.gzpcre_free_substring.3.gzpcre_free_substring_list.3.gzpcre_fullinfo.3.gzpcre_get_named_substring.3.gzpcre_get_stringnumber.3.gzpcre_get_stringtable_entries.3.gzpcre_get_substring.3.gzpcre_get_substring_list.3.gzpcre_jit_exec.3.gzpcre_jit_stack_alloc.3.gzpcre_jit_stack_free.3.gzpcre_maketables.3.gzpcre_pattern_to_host_byte_order.3.gzpcre_refcount.3.gzpcre_study.3.gzpcre_utf16_to_host_byte_order.3.gzpcre_version.3.gzpcre_assign_jit_stack.3.gzpcre_compile.3.gzpcre_compile2.3.gzpcre_config.3.gzpcre_copy_named_substring.3.gzpcre_copy_substring.3.gzpcre_dfa_exec.3.gzpcre_exec.3.gzpcre_free_study.3.gzpcre_free_substring.3.gzpcre_free_substring_list.3.gzpcre_fullinfo.3.gzpcre_get_named_substring.3.gzpcre_get_stringnumber.3.gzpcre_get_stringtable_entries.3.gzpcre_get_substring.3.gzpcre_get_substring_list.3.gzpcre_jit_exec.3.gzpcre_jit_stack_alloc.3.gzpcre_jit_stack_free.3.gzpcre_maketables.3.gzpcre_pattern_to_host_byte_order.3.gzpcre_refcount.3.gzpcre_study.3.gzpcre_utf32_to_host_byte_order.3.gzpcre_version.3.gzrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpcre-8.45-150000.20.13.1.src.rpmpcre-develpcre-devel(x86-64)pkgconfig(libpcre)pkgconfig(libpcre16)pkgconfig(libpcrecpp)pkgconfig(libpcreposix)@@@    /bin/sh/usr/bin/pkg-configlibpcre1libpcre16-0libpcrecpp0libpcreposix0libstdc++-develpkgconfig(libpcre)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)8.458.458.458.453.0.4-14.6.0-14.0-15.2-14.14.1b{@an@`qZY@Y@Yw2Y1S@XYXW9WaC@VV@UB@T@jsikes@suse.comcoolo@suse.combwiedemann@suse.comfvogt@suse.comkstreitova@suse.commatz@suse.comastieger@suse.commpluskal@suse.comastieger@suse.comdimstar@opensuse.orgastieger@suse.commpluskal@suse.comastieger@suse.comastieger@suse.comp.drouand@gmail.com- Added pcre-8.45-bsc1199232-unicode-property-matching.patch * bsc#1199232 * CVE-2022-1586 * Fixes unicode property matching issue- pcre 8.45 (the final release) * Fixed a small (*MARK) bug in the interpreter (Bugzilla #2771). - pcre 8.44 * Small patch to pcreposix.c to set the erroroffset field to -1 immediately after a successful compile, instead of at the start of matching to avoid a sanitizer complaint (regexec is supposed to be thread safe). * Check the size of the number after (?C as it is read, in order to avoid integer overflow. (bsc#1172974, CVE-2020-14155) * Tidy up left shifts to avoid sanitize warnings; also fix one NULL deference in pcretest. - pcre 8.43 * In a pattern such as /[^\x{100}-\x{ffff}]*[\x80-\xff]/ which has a repeated negative class with no characters less than 0x100 followed by a positive class with only characters less than 0x100, the first class was incorrectly being auto-possessified, causing incorrect match failures. * If the only branch in a conditional subpattern was anchored, the whole subpattern was treated as anchored, when it should not have been, since the assumed empty second branch cannot be anchored. Demonstrated by test patterns such as /(?(1)^())b/ or /(?(?=^))b/. * Fix subject buffer overread in JIT when UTF is disabled and \X or \R has a greater than 1 fixed quantifier. This issue was found by Yunho Kim. (bsc#1172973 CVE-2019-20838) * If a pattern started with a subroutine call that had a quantifier with a minimum of zero, an incorrect "match must start with this character" could be recorded. Example: /(?&xxx)*ABC(?XYZ)/ would (incorrectly) expect 'A' to be the first character of a match. - pcre 8.42 * If a backreference with a minimum repeat count of zero was first in a pattern, apart from assertions, an incorrect first matching character could be recorded. For example, for the pattern /(?=(a))\1?b/, "b" was incorrectly set as the first character of a match. * Fix out-of-bounds read for partial matching of /./ against an empty string when the newline type is CRLF. * When matching using the the REG_STARTEND feature of the POSIX API with a non-zero starting offset, unset capturing groups with lower numbers than a group that did capture something were not being correctly returned as "unset" (that is, with offset values of -1). * Matching the pattern /(*UTF)\C[^\v]+\x80/ against an 8-bit string containing multi-code-unit characters caused bad behaviour and possibly a crash. This issue was fixed for other kinds of repeat in release 8.37 by change 38, but repeating character classes were overlooked.- Do not run profiling 'check' in parallel to make package build reproducible (boo#1040589)- Use %license (boo#1082318)- add pcre-8.41-stack_frame_size_detection.patch to fix pcre stack frame size detection because modern compilers broke it by cloning and inlining pcre match() function [bsc#1058722]- RunTest needs much stack, on s390x more than the default 8 MB. [bnc#1046102]- pcre 8.41: * If pcregrep in multiline mode with --only-matching matched several lines, it restarted scanning at the next line instead of moving on to the end of the matched string, which can be several lines after the start. * Fix a missing else in the JIT compiler reported by 'idaifish'. CVE-2017-6004 bsc#1025709 * A (?# style comment is now ignored between a basic quantifier and a following '+' or '?' (example: /X+(?#comment)?Y/. * Avoid use of a potentially overflowing buffer in pcregrep * Fix issues reported by fuzzers in pcretest: - Check for values < 256 when calling isprint() in pcretest. - Give an error for too big a number after \O. * In the 32-bit library in non-UTF mode, an attempt to find a Unicode property for a character with a code point greater than 0x10ffff (the Unicode maximum) caused a crash. CVE-2017-7186 bsc#1030066, CVE-2017-7244 bsc#1030807 * The alternative matching function, pcre_dfa_exec() misbehaved if it encountered a character class with a possessive repeat, for example [a-f]{3}+. * When pcretest called pcre_copy_substring() in 32-bit mode, it set the buffer length incorrectly, which could result in buffer overflow. CVE-2017-7245 bsc#1030805, CVE-2017-7246 bsc#1030803- Enable jit on aarch64 - Enable profiled building- pcre 8.40: * Using -o with -M in pcregrep could cause unnecessary repeated output when the match extended over a line boundary. * Fix register overwite in JIT when SSE2 acceleration is enabled. * Ignore "show all captures" (/=) for DFA matching. * Fix JIT unaligned accesses on x86 * In any wide-character mode (8-bit UTF or any 16-bit or 32-bit mode), without PCRE_UCP set, a negative character type such as \D in a positive class should cause all characters greater than 255 to match, whatever else is in the class. There was a bug that caused this not to happen if a Unicode property item was added to such a class, for example [\D\P{Nd}] or [\W\pL]. * When pcretest was outputing information from a callout, the caret indicator for the current position in the subject line was incorrect if it was after an escape sequence for a character whose code point was greater than \x{ff}. * A pattern such as (?abc)(?(R)xyz) was incorrectly compiled such that the conditional was interpreted as a reference to capturing group 1 instead of a test for recursion. Any group whose name began with R was misinterpreted in this way. (The reference interpretation should only happen if the group's name is precisely "R".) * A number of bugs have been mended relating to match start-up optimizations when the first thing in a pattern is a positive lookahead. These all applied only when PCRE_NO_START_OPTIMIZE was *not* set: + A pattern such as (?=.*X)X$ was incorrectly optimized as if it needed both an initial 'X' and a following 'X'. + Some patterns starting with an assertion that started with .* were incorrectly optimized as having to match at the start of the subject or after a newline. There are cases where this is not true, for example, (?=.*[A-Z])(?=.{8,16})(?!.*[\s]) matches after the start in lines that start with spaces. Starting .* in an assertion is no longer taken as an indication of matching at the start (or after a newline).- Explicitly package %{_docdir}/%{name} to fix build with RPM 4.13.- record minor vulnerabilities fixed in 8.39- Update to version 8.39: * Some appropriate PCRE2 JIT improvements have been retro-fitted to PCRE1. * CVE-2016-3191: workspace overflow for (*ACCEPT) with deeply nested parentheses (boo#971741) * CVE-2016-1283: Heap buffer overflow DoS (boo#960837) * Apart from that, this is another bug-fix release.- pcre 8.38: * CVE-2015-3217: Call Stack Overflow Vulnerability in match() bsc#933878 * Other fixes to assertions, crashes, buffer overflows and performance issues found by fuzzer, affecting applications accepting regular expression from untrusted sources- pcre 8.37: * CVE-2015-2325: Patterns with certain groups specifying a zero minimum quantifier caused incorrect code to be compiled, leading to an incorrect memory read. [boo#924960] * CVE-2015-2326: Specific patterns containing a forward reference with subroutine calls caused incorrect code to be compiled [boo#924961] * CVE-2014-8964: If an assertion condition was quantified with a minimum of zero, SIGSEGV or other misbehaviour could occur. [boo#906574] * further bug fixes as listed in ChangeLog- Update to version 3.16 * This is primarily a bug-fix release. * The Unicode data tables have been updated to Unicode 7.0.0. - Remove pcre-commit1472.patch; fixed on upstream release - Remove obsolete "Obsoletes" tagsheep58 1655971404  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst8.45-150000.20.13.18.45-150000.20.13.18.458.458.458.45pcre-configpcre.hpcre_scanner.hpcre_stringpiece.hpcrecpp.hpcrecpparg.hpcreposix.hlibpcre.solibpcre16.solibpcrecpp.solibpcreposix.solibpcre.pclibpcre16.pclibpcrecpp.pclibpcreposix.pcpcre-config.1.gzpcre.3.gzpcre16.3.gzpcre16_assign_jit_stack.3.gzpcre16_compile.3.gzpcre16_compile2.3.gzpcre16_config.3.gzpcre16_copy_named_substring.3.gzpcre16_copy_substring.3.gzpcre16_dfa_exec.3.gzpcre16_exec.3.gzpcre16_free_study.3.gzpcre16_free_substring.3.gzpcre16_free_substring_list.3.gzpcre16_fullinfo.3.gzpcre16_get_named_substring.3.gzpcre16_get_stringnumber.3.gzpcre16_get_stringtable_entries.3.gzpcre16_get_substring.3.gzpcre16_get_substring_list.3.gzpcre16_jit_exec.3.gzpcre16_jit_stack_alloc.3.gzpcre16_jit_stack_free.3.gzpcre16_maketables.3.gzpcre16_pattern_to_host_byte_order.3.gzpcre16_refcount.3.gzpcre16_study.3.gzpcre16_utf16_to_host_byte_order.3.gzpcre16_version.3.gzpcre32.3.gzpcre32_assign_jit_stack.3.gzpcre32_compile.3.gzpcre32_compile2.3.gzpcre32_config.3.gzpcre32_copy_named_substring.3.gzpcre32_copy_substring.3.gzpcre32_dfa_exec.3.gzpcre32_exec.3.gzpcre32_free_study.3.gzpcre32_free_substring.3.gzpcre32_free_substring_list.3.gzpcre32_fullinfo.3.gzpcre32_get_named_substring.3.gzpcre32_get_stringnumber.3.gzpcre32_get_stringtable_entries.3.gzpcre32_get_substring.3.gzpcre32_get_substring_list.3.gzpcre32_jit_exec.3.gzpcre32_jit_stack_alloc.3.gzpcre32_jit_stack_free.3.gzpcre32_maketables.3.gzpcre32_pattern_to_host_byte_order.3.gzpcre32_refcount.3.gzpcre32_study.3.gzpcre32_utf32_to_host_byte_order.3.gzpcre32_version.3.gzpcre_assign_jit_stack.3.gzpcre_compile.3.gzpcre_compile2.3.gzpcre_config.3.gzpcre_copy_named_substring.3.gzpcre_copy_substring.3.gzpcre_dfa_exec.3.gzpcre_exec.3.gzpcre_free_study.3.gzpcre_free_substring.3.gzpcre_free_substring_list.3.gzpcre_fullinfo.3.gzpcre_get_named_substring.3.gzpcre_get_stringnumber.3.gzpcre_get_stringtable_entries.3.gzpcre_get_substring.3.gzpcre_get_substring_list.3.gzpcre_jit_exec.3.gzpcre_jit_stack_alloc.3.gzpcre_jit_stack_free.3.gzpcre_maketables.3.gzpcre_pattern_to_host_byte_order.3.gzpcre_refcount.3.gzpcre_study.3.gzpcre_utf16_to_host_byte_order.3.gzpcre_utf32_to_host_byte_order.3.gzpcre_version.3.gzpcreapi.3.gzpcrebuild.3.gzpcrecallout.3.gzpcrecompat.3.gzpcrecpp.3.gzpcredemo.3.gzpcrejit.3.gzpcrelimits.3.gzpcrematching.3.gzpcrepartial.3.gzpcrepattern.3.gzpcreperform.3.gzpcreposix.3.gzpcreprecompile.3.gzpcresample.3.gzpcrestack.3.gzpcresyntax.3.gzpcreunicode.3.gz/usr/bin//usr/include//usr/lib64//usr/lib64/pkgconfig//usr/share/man/man1//usr/share/man/man3/-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:24767/SUSE_SLE-15_Update/b3f414715e9265530a92cf9ceb676799-pcre.SUSE_SLE-15_Updatedrpmxz5x86_64-suse-linuxPOSIX shell script, ASCII text executableC source, ASCII textC++ source, ASCII textpkgconfig filetroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)HTML document, ASCII text (gzip compressed data, max compression, from Unix)troff or preprocessor input, UTF-8 Unicode text (gzip compressed data, max compression, from Unix)C source, ASCII text (gzip compressed data, max compression, from Unix)RPRPRPRPRR"KB.Futf-8558b6aa3948fa9dfa65af6b31adfb9804de05320546b2340cc191444e790ae74? 7zXZ !t/]"k%js.Y@`=&96)Fۑ>SoA"t}c` DkEJmY)MWRSmpDqUO 7;v 0q]WUgiTyRԓe'7f~x;d"qy8,I&|ɃJˬU}:8Tbʟw]b>08+Y`_e_]:߆N-UzJj\ mf"*\ٰ'%VxPj` _Vǘ qQJI#NwFq!̢'+~p؄*W:a99D1>alXӦNZH97-l~XЭs(nS[boYe*,.]]܋f+`z\ۖrr)cлk=P y=-ʈjsܳfFUEқu' ?&W ytsFgS<܇[Zۣn[Lj[\d*4dzl;@4{8 WWZIW5^ Up<*_=L6"9b˺i\C)ӰCzӢlXnisǠԧ_<8VJ#{Qza]*1ɟ,(Z%ĝjOc7s)Q&E|spƃE9KW$\"On%3{CHYAj>AVMLО]'#SL^ j70'F+2~%͂!ܩIqH$|yLUٸԘ?' FNrH~%2Ib(0fg0(/(e