GNU logs - #77613, boring messages


Message sent to bug-grep@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#77613: grep-3.11.69-a4628 on GNU/Hurd
Resent-From: Bruno Haible <bruno@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-grep@HIDDEN
Resent-Date: Mon, 07 Apr 2025 17:34:02 +0000
Resent-Message-ID: <handler.77613.B.17440472151368 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 77613
X-GNU-PR-Package: grep
X-GNU-PR-Keywords: 
To: 77613 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-grep@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.17440472151368
          (code B ref -1); Mon, 07 Apr 2025 17:34:02 +0000
Received: (at submit) by debbugs.gnu.org; 7 Apr 2025 17:33:35 +0000
Received: from localhost ([127.0.0.1]:56696 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1u1qLm-0000Lx-ES
	for submit <at> debbugs.gnu.org; Mon, 07 Apr 2025 13:33:35 -0400
Received: from lists.gnu.org ([2001:470:142::17]:40022)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <bruno@HIDDEN>) id 1u1qLi-0000L7-Ch
 for submit <at> debbugs.gnu.org; Mon, 07 Apr 2025 13:33:31 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bruno@HIDDEN>) id 1u1qLL-0006fg-86
 for bug-grep@HIDDEN; Mon, 07 Apr 2025 13:33:09 -0400
Received: from mo4-p00-ob.smtp.rzone.de ([85.215.255.23])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bruno@HIDDEN>) id 1u1qLH-0001PZ-W0
 for bug-grep@HIDDEN; Mon, 07 Apr 2025 13:33:06 -0400
ARC-Seal: i=1; a=rsa-sha256; t=1744047180; cv=none;
 d=strato.com; s=strato-dkim-0002;
 b=R3VR2kW9YVn0NPVpK7cVbeBC8DRaJ/F4ZMPhtEO8fOvG/8dZT1gqITLXg0XRh2YBPs
 pl3a4R19DUDcN0Niy7C3jjGb7mNZszGYXOt85iU89F7IDhGo+tiZDSqe/2MESCaSlPJ6
 1ZLvCBWGv7OjBhPLVZGzm/n4Z7oGwrgenNGX0INEsjscIx9wAQk0667sFg2DZRD7pQ0j
 oWzofGG4sjuCv3bKm4L3JBaMhuY65sLiQJUInua+IhBLfkaUlqFjnQQHqgJd5gn/DT63
 S3hOmJBYYrk1pKeFygTX3ndc6kINmCuVipflVS+/eHYnePTl8i2uxreHU8SwbjOi9e0e
 ZICA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1744047180;
 s=strato-dkim-0002; d=strato.com;
 h=References:In-Reply-To:Message-ID:Date:Subject:To:From:Cc:Date:From:
 Subject:Sender;
 bh=dKuQjinzWhxJ6lsh0c6oiAFxVlwhLkGRBFqEPFmAHpQ=;
 b=sdQbsuHXMQbaXH7bz+z/NSh0GEeh0j0s+y86yBt9ZHUetyY+4JMPTc+X3JxkdUuYbu
 MwXjE3cnqpiVk7kM/I0q1Uti0Eq5IGHIvKRj3ucrLiV27cOIpUR3zexG4sTGq+qyJ8rA
 woGxe+0vuUiCpTew30iP42z8HtJjhb0gkQqVCMuitwT+PdNzawf/dlMqb4CCocYaC4Vz
 sf79Bv0lpAuPF9ZefD4JW/8L2HXztWeU1L59UDqCQ4SCTw4f110uSCNQHHmkwGEFRDFX
 tIqgXGh+Q7SOXtMiJn7ir2N/EXdIZwJz4M+wcZ1SEO7YyN0KokYVR6eW9+vI/pEewWw1
 Fp0g==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1744047180;
 s=strato-dkim-0002; d=clisp.org;
 h=References:In-Reply-To:Message-ID:Date:Subject:To:From:Cc:Date:From:
 Subject:Sender;
 bh=dKuQjinzWhxJ6lsh0c6oiAFxVlwhLkGRBFqEPFmAHpQ=;
 b=NUaQXI3dkcv/578dQ80ARihBryMX4sFxpbvAhMHuE+cn5cq3/uEGba/QKAAxZCCbfi
 QwjNAX7nu9u+NJrQnnlWZ2Pp2KoAWmlnSs7zBjohnDYsAiX6zw+Z8eF1PG7e+cB3kKoL
 HNYrrWcVVaQCsL1GQiyeU5QXEtNpmLX+5lYfD2ehytnDAGi6qd6oYeFCNQBP9796UHNO
 xoMr/OH7pqzigOUyqDxxBF9M3CMg4mjLxAa0UlQ6j4zK1DySi7pz8tF8tsOVYrBOOlrL
 WnQuunnPkhy741oUszavCt+BRuydf0ntKTfcvCURaacpgNqoPT6WrXHDnWd2LvC0FE9m
 Fv6g==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1744047180;
 s=strato-dkim-0003; d=clisp.org;
 h=References:In-Reply-To:Message-ID:Date:Subject:To:From:Cc:Date:From:
 Subject:Sender;
 bh=dKuQjinzWhxJ6lsh0c6oiAFxVlwhLkGRBFqEPFmAHpQ=;
 b=SOnSMHe9YBlUSYid5c+0U2ebsp0PAKDXDqTOtD2hSuhzSTJhmkos8mjqj6l3aJKakz
 DkUwCR36djwjZvwQMwBQ==
X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlLnY4jECd2hdUURIbZgL8PX2QiTuZ3cdB8X/nqmiYFWMbvteGGfKaAeIFhoa2LeU="
Received: from nimes.localnet by smtp.strato.de (RZmta 51.3.0 AUTH)
 with ESMTPSA id N7dcf8137HX0OHR
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate);
 Mon, 7 Apr 2025 19:33:00 +0200 (CEST)
From: Bruno Haible <bruno@HIDDEN>
Date: Mon, 07 Apr 2025 19:33:00 +0200
Message-ID: <3353032.JoGBPyJhv8@nimes>
Organization: GNU
In-Reply-To: <m2r024u0pj.fsf@HIDDEN>
References: <m2r024u0pj.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="nextPart2434568.3c9HiEOlIg"
Content-Transfer-Encoding: 7Bit
Received-SPF: none client-ip=85.215.255.23; envelope-from=bruno@HIDDEN;
 helo=mo4-p00-ob.smtp.rzone.de
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DC_PNG_UNO_LARGO=0.001,
 DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001,
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.

--nextPart2434568.3c9HiEOlIg
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"

On
  - GNU/Hurd x86_64 from 2024,
  - GNU/Hurd i386 from 2023,
I see a test hang: hash-collision-perf.

On GNU/Hurd x86_64:

When I interrupted the build, the file 'in' has 5120000 lines, and
find attached the log file of this test. As you can see, the value of
small_ms stays 0 even for larger files.

By running
  $ date; LC_ALL=C ../../src/grep --file=in empty; date
I can see that the execution times grow like this:
  640000  0.3 sec
 1280000  0.9 sec
 2560000  1.5 sec
 5120000  > 60 sec

On GNU/Hurd i386, it's similar. Here it's when the file 'in' has
40960000 lines, that the grep execution hangs. Find attached the
last stack trace I was able to obtain before it hung.

Regardless how much RAM I give to the machine, there will always
be a point where "grep --file=in empty" will take more RAM than
available, and (since Hurd does not have an OOM killer) the machine
then hangs.

IMO, the correct behaviour would be that 'grep' exits via xalloc_die(),
not that it hangs.

Whereas on GNU/Linux (in a machine that has the same amount of RAM as
the GNU/Hurd machine):

  $ : > empty
  $ seq 640000 > in; LC_ALL=C time ./src/grep --file=in empty
  real 0.44s
  $ seq 1280000 > in; LC_ALL=C time ./src/grep --file=in empty
  real 0.99s
  $ seq 2560000 > in; LC_ALL=C time ./src/grep --file=in empty
  real 2.22s
  $ seq 5120000 > in; LC_ALL=C time ./src/grep --file=in empty
  real 4.84s
  $ seq 10240000 > in; LC_ALL=C time ./src/grep --file=in empty
  real 24.19s
  $ seq 20480000 > in; LC_ALL=C time ./src/grep --file=in empty
  Killed
  real 24.40s

Here it was the OOM killer that saved the machine from hanging.

So, IMO, there are two bugs:

  1) When the allocation of the kwset takes more memory than available,
     'grep' should exit via xalloc_die(), instead of waiting to be killed
     by the OOM killer.

  2) In the 'hash-collision-perf' unit test: The use of a perl primitive
     for measuring the execution time of a child process, that is not
     properly ported to GNU/Hurd.

Bruno

--nextPart2434568.3c9HiEOlIg
Content-Disposition: attachment; filename="hash-collision-perf.log"
Content-Transfer-Encoding: 7Bit
Content-Type: text/x-log; charset="x-UTF_8J"; name="hash-collision-perf.log"

++ initial_cwd_=/home/bruno/grep-3.11.69-a4628/build/tests
+++ testdir_prefix_
+++ printf gt
++ pfx_=gt
+++ mktempd_ /home/bruno/grep-3.11.69-a4628/build/tests gt-hash-collision-perf.XXXX
+++ case $# in
+++ destdir_=/home/bruno/grep-3.11.69-a4628/build/tests
+++ template_=gt-hash-collision-perf.XXXX
+++ MAX_TRIES_=4
+++ case $destdir_ in
+++ destdir_slash_=/home/bruno/grep-3.11.69-a4628/build/tests/
+++ case $template_ in
++++ unset TMPDIR
+++ d=/home/bruno/grep-3.11.69-a4628/build/tests/gt-hash-collision-perf.bCSE
+++ case $d in
+++ :
+++ test -d /home/bruno/grep-3.11.69-a4628/build/tests/gt-hash-collision-perf.bCSE
++++ ls -dgo /home/bruno/grep-3.11.69-a4628/build/tests/gt-hash-collision-perf.bCSE
+++ perms='drwx------ 2 4096 Apr  7 15:55 /home/bruno/grep-3.11.69-a4628/build/tests/gt-hash-collision-perf.bCSE'
+++ case $perms in
+++ :
+++ echo /home/bruno/grep-3.11.69-a4628/build/tests/gt-hash-collision-perf.bCSE
+++ return
++ test_dir_=/home/bruno/grep-3.11.69-a4628/build/tests/gt-hash-collision-perf.bCSE
++ cd /home/bruno/grep-3.11.69-a4628/build/tests/gt-hash-collision-perf.bCSE
++ case $srcdir in
++ srcdir=../../../tests
++ builddir=..
++ export srcdir builddir
++ gl_init_sh_nl_='
'
++ IFS=' 	
'
++ for sig_ in 1 2 3 13 15
+++ expr 1 + 128
++ eval 'trap '\''Exit 129'\'' 1'
+++ trap 'Exit 129' 1
++ for sig_ in 1 2 3 13 15
+++ expr 2 + 128
++ eval 'trap '\''Exit 130'\'' 2'
+++ trap 'Exit 130' 2
++ for sig_ in 1 2 3 13 15
+++ expr 3 + 128
++ eval 'trap '\''Exit 131'\'' 3'
+++ trap 'Exit 131' 3
++ for sig_ in 1 2 3 13 15
+++ expr 13 + 128
++ eval 'trap '\''Exit 141'\'' 13'
+++ trap 'Exit 141' 13
++ for sig_ in 1 2 3 13 15
+++ expr 15 + 128
++ eval 'trap '\''Exit 143'\'' 15'
+++ trap 'Exit 143' 15
++ saved_IFS=' 	
'
++ IFS=:
++ new_PATH=
++ for dir in $PATH
++ IFS=' 	
'
++ case "$dir" in
++ test -d /home/bruno/grep-3.11.69-a4628/build/src/.
++ new_PATH=/home/bruno/grep-3.11.69-a4628/build/src
++ for dir in $PATH
++ IFS=' 	
'
++ case "$dir" in
++ for dir in $PATH
++ IFS=' 	
'
++ case "$dir" in
++ test -d /usr/local/bin/.
++ new_PATH=/home/bruno/grep-3.11.69-a4628/build/src:/usr/local/bin
++ for dir in $PATH
++ IFS=' 	
'
++ case "$dir" in
++ test -d /usr/bin/.
++ new_PATH=/home/bruno/grep-3.11.69-a4628/build/src:/usr/local/bin:/usr/bin
++ for dir in $PATH
++ IFS=' 	
'
++ case "$dir" in
++ test -d /bin/.
++ new_PATH=/home/bruno/grep-3.11.69-a4628/build/src:/usr/local/bin:/usr/bin:/bin
++ for dir in $PATH
++ IFS=' 	
'
++ case "$dir" in
++ test -d /usr/local/games/.
++ new_PATH=/home/bruno/grep-3.11.69-a4628/build/src:/usr/local/bin:/usr/bin:/bin:/usr/local/games
++ for dir in $PATH
++ IFS=' 	
'
++ case "$dir" in
++ test -d /usr/games/.
++ new_PATH=/home/bruno/grep-3.11.69-a4628/build/src:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
++ IFS=' 	
'
++ PATH=/home/bruno/grep-3.11.69-a4628/build/src:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
++ export PATH
++ trap remove_tmp_ EXIT
+ path_prepend_ ../src
+ test 1 '!=' 0
+ path_dir_=../src
+ case $path_dir_ in
+ abs_path_dir_=/home/bruno/grep-3.11.69-a4628/build/tests/../src
+ case $abs_path_dir_ in
+ PATH=/home/bruno/grep-3.11.69-a4628/build/tests/../src:/home/bruno/grep-3.11.69-a4628/build/src:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+ create_exe_shims_ /home/bruno/grep-3.11.69-a4628/build/tests/../src
+ case $EXEEXT in
+ return 0
+ shift
+ test 0 '!=' 0
+ export PATH
+ fail=0
+ require_perl_
+ test perl
+ perl -e 'use warnings'
+ :
+ n_pat=40000
+ :
+ seq 40000
++ LC_ALL=C
++ user_time_ 1 grep --file=in empty
++ perl -le '
    my $expected_exit_status = $ARGV[0];
    shift @ARGV;

    system (@ARGV);
    my ($user, $system, $child_user, $child_system) = times;

    my $me = q(hash-collision-perf);
    $? == -1
      and die qq($me: failed to exec ") . join (" ", @ARGV) . qq(": $!\n);
    my $rc = $?;
    my $sig = ($rc & 127);
    $sig and die "$me: child died with signal $sig\n";
    $rc >>= 8;
    $rc == $expected_exit_status
      or die "$me: bad exit status: expected $expected_exit_status; got $rc\n";

    # Print milliseconds of child user time.
    $child_user *= 1000;
    print int ($child_user + 0.5)' 1 grep --file=in empty
+ small_ms=0
+ test 0 -ge 200
++ expr 40000 '*' 2
+ n_pat=80000
+ :
+ seq 80000
++ LC_ALL=C
++ user_time_ 1 grep --file=in empty
++ perl -le '
    my $expected_exit_status = $ARGV[0];
    shift @ARGV;

    system (@ARGV);
    my ($user, $system, $child_user, $child_system) = times;

    my $me = q(hash-collision-perf);
    $? == -1
      and die qq($me: failed to exec ") . join (" ", @ARGV) . qq(": $!\n);
    my $rc = $?;
    my $sig = ($rc & 127);
    $sig and die "$me: child died with signal $sig\n";
    $rc >>= 8;
    $rc == $expected_exit_status
      or die "$me: bad exit status: expected $expected_exit_status; got $rc\n";

    # Print milliseconds of child user time.
    $child_user *= 1000;
    print int ($child_user + 0.5)' 1 grep --file=in empty
+ small_ms=0
+ test 0 -ge 200
++ expr 80000 '*' 2
+ n_pat=160000
+ :
+ seq 160000
++ LC_ALL=C
++ user_time_ 1 grep --file=in empty
++ perl -le '
    my $expected_exit_status = $ARGV[0];
    shift @ARGV;

    system (@ARGV);
    my ($user, $system, $child_user, $child_system) = times;

    my $me = q(hash-collision-perf);
    $? == -1
      and die qq($me: failed to exec ") . join (" ", @ARGV) . qq(": $!\n);
    my $rc = $?;
    my $sig = ($rc & 127);
    $sig and die "$me: child died with signal $sig\n";
    $rc >>= 8;
    $rc == $expected_exit_status
      or die "$me: bad exit status: expected $expected_exit_status; got $rc\n";

    # Print milliseconds of child user time.
    $child_user *= 1000;
    print int ($child_user + 0.5)' 1 grep --file=in empty
+ small_ms=0
+ test 0 -ge 200
++ expr 160000 '*' 2
+ n_pat=320000
+ :
+ seq 320000
++ LC_ALL=C
++ user_time_ 1 grep --file=in empty
++ perl -le '
    my $expected_exit_status = $ARGV[0];
    shift @ARGV;

    system (@ARGV);
    my ($user, $system, $child_user, $child_system) = times;

    my $me = q(hash-collision-perf);
    $? == -1
      and die qq($me: failed to exec ") . join (" ", @ARGV) . qq(": $!\n);
    my $rc = $?;
    my $sig = ($rc & 127);
    $sig and die "$me: child died with signal $sig\n";
    $rc >>= 8;
    $rc == $expected_exit_status
      or die "$me: bad exit status: expected $expected_exit_status; got $rc\n";

    # Print milliseconds of child user time.
    $child_user *= 1000;
    print int ($child_user + 0.5)' 1 grep --file=in empty
+ small_ms=0
+ test 0 -ge 200
++ expr 320000 '*' 2
+ n_pat=640000
+ :
+ seq 640000
++ LC_ALL=C
++ user_time_ 1 grep --file=in empty
++ perl -le '
    my $expected_exit_status = $ARGV[0];
    shift @ARGV;

    system (@ARGV);
    my ($user, $system, $child_user, $child_system) = times;

    my $me = q(hash-collision-perf);
    $? == -1
      and die qq($me: failed to exec ") . join (" ", @ARGV) . qq(": $!\n);
    my $rc = $?;
    my $sig = ($rc & 127);
    $sig and die "$me: child died with signal $sig\n";
    $rc >>= 8;
    $rc == $expected_exit_status
      or die "$me: bad exit status: expected $expected_exit_status; got $rc\n";

    # Print milliseconds of child user time.
    $child_user *= 1000;
    print int ($child_user + 0.5)' 1 grep --file=in empty
+ small_ms=0
+ test 0 -ge 200
++ expr 640000 '*' 2
+ n_pat=1280000
+ :
+ seq 1280000
++ LC_ALL=C
++ user_time_ 1 grep --file=in empty
++ perl -le '
    my $expected_exit_status = $ARGV[0];
    shift @ARGV;

    system (@ARGV);
    my ($user, $system, $child_user, $child_system) = times;

    my $me = q(hash-collision-perf);
    $? == -1
      and die qq($me: failed to exec ") . join (" ", @ARGV) . qq(": $!\n);
    my $rc = $?;
    my $sig = ($rc & 127);
    $sig and die "$me: child died with signal $sig\n";
    $rc >>= 8;
    $rc == $expected_exit_status
      or die "$me: bad exit status: expected $expected_exit_status; got $rc\n";

    # Print milliseconds of child user time.
    $child_user *= 1000;
    print int ($child_user + 0.5)' 1 grep --file=in empty
+ small_ms=0
+ test 0 -ge 200
++ expr 1280000 '*' 2
+ n_pat=2560000
+ :
+ seq 2560000
++ LC_ALL=C
++ user_time_ 1 grep --file=in empty
++ perl -le '
    my $expected_exit_status = $ARGV[0];
    shift @ARGV;

    system (@ARGV);
    my ($user, $system, $child_user, $child_system) = times;

    my $me = q(hash-collision-perf);
    $? == -1
      and die qq($me: failed to exec ") . join (" ", @ARGV) . qq(": $!\n);
    my $rc = $?;
    my $sig = ($rc & 127);
    $sig and die "$me: child died with signal $sig\n";
    $rc >>= 8;
    $rc == $expected_exit_status
      or die "$me: bad exit status: expected $expected_exit_status; got $rc\n";

    # Print milliseconds of child user time.
    $child_user *= 1000;
    print int ($child_user + 0.5)' 1 grep --file=in empty
+ small_ms=0
+ test 0 -ge 200
++ expr 2560000 '*' 2
+ n_pat=5120000
+ :
+ seq 5120000

--nextPart2434568.3c9HiEOlIg
Content-Disposition: attachment; filename="last-stacktrace.png"
Content-Transfer-Encoding: base64
Content-Type: image/png; name="last-stacktrace.png"

iVBORw0KGgoAAAANSUhEUgAAAtQAAAGVCAYAAADewWakAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
AElEQVR4Xu3dYW7jOpCu4erB/J+5G2g0elOtJfJsKjCygZlZQe6PhKeZz0WyRFGyZL8PQByzWCIp
WnYYHcf94+32/mFf/t9//1d+CAAAAKDjf/73/+w/NAgAAAAgjg01AAAAsMF/lhU+8gEAAADEvd3e
uUMNAAAAbMGGGgAAANjgUhvqlJKGdnPkWAAAALiub5+hznQzuSzLt/psKaXdxwAAAAD2cLeh9ja3
XuwRjpzD7LHOsoYAAACY625DHdW7i503kGWel6OPNSdrtUfHisRy3Oy+D7PYWGbfz81rBwAAwJN4
u71/5GJmHymlDzNrFi9HYyklN6bHteJaanmRsbRei/XaRsbSOoVCoVAoFArlOcrb7f1j1z9KPPLO
7LOOBQAAgHPbdUMNAAAAPLvhz1CjLvIZawAAADyH0B3qcnOIuGVZ2EwDAAA8uZe9Q33ELwmRu9Q5
p9YOAACAc7vbUOvHFXJM672cNcr+vH7KsVp5LTpnrWczxkrp/uv4vBgAAACu78fX1+WZmdnvXz/L
NgzyNs9eDAAAANf2dnu/v0ON7by732ymAQAAnhMb6p2wgQYAAHgNoW/5AAAAAOCrbqhTSncfWwAA
AADwnbuhzn9A530WGAAAAMBfd5+h1m+jyJtq/UywbrS1HQAAAHgFQ1+bV9tgawwAAAB4Zm+3d/8j
HwAAAABipm2ouTsNAACAVzRtQw0AAAC8IjbUAAAAwAZsqAEAAIANpm2o9Wv0AAAAgFcwbUMNAAAA
vKK7f9glwvsXFPmWDwAAALyioQ21GRtoAAAAwIyPfAAAAACbsKEGAAAANmBDDQAAAGzAhhoAAADY
YGhDrd/wcUZXmOMjPGJdjhjziDEAAAA8d9/y0dqYvNo3e6SUXu6csV1+DW25dvR16PWlOWb3eZqj
7Wb3OWbf87zXgca8PjI9dgZvvNFx9FyexbOeFwCc0tvt/SMXM/tWUkp3sVb8TGXrHFNKm/ugfJaz
reMR89kyhnesF+u1eXEv1mvzXgtaj7bNLjPGmtHHGcuznheFQqGcrbzd3j/u7lCvkYq7RHonJH3d
HWnlmN3faZqR47Wv4c19De94b07a/545Zn/zvPY850ispO1m856LyFhm7fMy689n5vOFc4g8p2Vb
6xrqPe/RsaI5rVi0H32sOQCAyUbvUGubV/dirboX07oX8+oai5byuC196LG9uhfTuhfTei3Wa/Pi
GtO6F/PqGosU7xgv1mvTuNZzTOO9ei0WaeuVtcfW8mvxWqnl53jZXsvttc0utbEiz2kvXmvTWGSs
aE5Z92KRfnpxCoVCocwtb7f3j6E/SjSL3fGI5PSM9DFyjNn93aAtZvWj9up3LzPnO7Mv1eu71z5T
vgOZ5M4o1jn6OeuJ5ETM6gcAMM+mj3ys5f0giGwaIjlnN3ruETP6yZu4PM/aLxczxorI88mPz+Co
czf7e86z1qCc+2hfeo28ipHnPbJGkRwAwDUcuqH29H6oeD/AR37ARWnf3vizzOp3Vj8Rjxhry6Yy
bwLL+gjvOtBrZQ/lGuj4a+haIm7LugMAXsPDN9Rnoj84t25iMMeMTeXocY+w5Tz3pr+gAACAwX/Y
ZU+9H9a9drNYzhlF5j0rx5M3S2s2dL2xeu01o8fV5POa1e+sfo50ljnPfB4e4ai518apxUdc/bkA
gLN46B1q726XbuQ0R+teTOtn5M2xd+45pvVejtn3H8L5sZfXEhlLc7Qe5R2nY5n1zyul+18OvFiP
zkfrWW8+EV7fXh+9sbQfrWe9flStn6itx5utn3NLOR/tw5ur5syiY2m9Fq/Np3VeAIDJWl+bR6Fc
vSTnq8O8GOXYwnMwVlg3CoVCOV/Z/A+7AGend/NyDI+T0vr/QwAAwJn9+LozbWZmv3/9LNsAAAAA
NLzd3s/3R4kAAADAlbChBgAAADZgQ30R+jlgxKQ/GjmP9Od883OvMy+G18I14HJfLzi/2tNWi+/h
yLFwiMYfJeZne+sfD/X60auql+e1ax9ZK9drm62c1xHjnUfeKC7/fI+XIjlXkv7Ez2VN7lGO+mPB
GV/lphsZ7UvbM83LWueuffXyau1ZayyzeD+vrrWOkTUsn9dWnll9rPxHz17bHo4ca7Vkx/2Yq411
5I/3Um0+RzpiDkeMMaD3Wo6+h2/mf21e+dVMW76mqdfPSKzX3iq9fmaWvfs/f0l/7mNaIjlbyt79
l2XNWGtyjyqp9pVstfhAKceojtcp3nFeTEstJ6XUbFsb89rLtl6795jyvbTWMbKGtbhXWmOt7Wtr
OXKs1SU5sb1Ka6xWW6+MHjty3MgxrTK7P68cMcbK0ntNeO1ebGupfG2e/gqyODGtezGte/1E6DF7
9/P9N5n7drN+jtfvuNS425K+7ljkHDM/L0I/fuDdQY3kHCk6nzJPc7y7xRrL9VY/SvuI8o7T2Mh8
WvJ11FT+lt/LdegY3t09rddis3ivn7V0ft55mfXH0mNq/Uyj86iNk/O8du0j01zN0/YVWuuo6+Wt
odZbWmNl3hhraf/aV9meH2vOQ839kde2day8lK0+yqejlWdWn49eMl6OWX+sXj9le+vcev2YxXJK
tXOPCI7Vut63vu5mczbUr8y7OjSm9Vpsnt4bul5UWo/QDZsX03otdhRv7EhM61F6nNZLtbZyA5wf
e3kROobWp0rJvm2CpF67Ptdeh3upvSa82F6OHKtLn89azOwzVnl+3XzN9fodvH5qz+MejhrLG0dj
+bHGT2HfH3/fzRhrsc9+anQMrZdqbV48EuvVvVh+rPGS16YxrddiWautxzvWi13M4IZ6se9nP7oS
uR+NjZjVj4r04+XsNZ97e73B6uZM62fkzdGLjYj209rY5ngrJ2rr8at0rrFZ12D+5bG1gcg5R/DG
0vk8jRnn5W2eAyJr6l0Lo3rP6cyxeo4aB0FHPh0jYx11jFn9uNEtX0ulv97ro/daPvI9fHBDbfZ5
9nmSo5PznhUv1uPlj/Qzk4796PnMUd5hxb0ZG+VXV74B1t74NK5vmLN4GysvdjnL8rn5zY9naG2m
d3p+Runz9+jndK/rd3dH/lg7cqyII+az2Oc4+fEWsy6xI857BX3d6mtZ67XYDBs21Hg13maRDfZ3
yz/+OuFx9nrzvLy8JjM21q3NtFm7bQXdeO753B41ltevjo0Xli+NLRtrbxM8eokt5veHLRvqckVZ
XSB7xU11bQOgG4WIcoPhbTYwWbmxHlnr0eMKketHr4M9rw3td8+xLuvIH/tHjhXxiPmcabu12GHz
yO8NV3j9Of+wS16pzFs1jekxXkyPiYr0o2N7Iv14In1Hcq6nd/e51/4IM+Y0o4+8qZ5hVj8ty3L/
ObM1lmVxi+aUY3ibFI3pMR495mg6x9H5rOknpdRdl6Ytx5ZSMqvMsUnG1+vGu34i1qzhLLPH2PS8
RqWv0tLKSRb78WnW7idr5awZa4baPLKZ84mMtYdov6083VKp1nPqWZN7UpU71OVKbblyev14z0gv
r9dextSMfmblxOgPBzOb+uadeRtAvcOqOVrPylh+rH1Fcnq88df2YXbfj9ZHjd6p1vG1fmXlhmfL
dVy+Lmb1481LN2g5piLn1Rsr12ttJW9eqyyLmR7vjVfm5Meap/2Yfc+JjjVJbw29tfPyjqLz0Xqp
d24vrVyy/FiXKJKz2Pc8bY/QPnJMaZ7maHuOecpczdF+tN6KteRjenlqxVit69x7rWh+JGeWH1//
oIuZmf3+9bNsAx6mtYFcu0FFXEpz77ZhPzxXj8dzAMDM7O32zoYaAK6GjRwAnMfb7d37DDUA4MzY
TAPAubChBgAAADZgQw0AAABswIYal6V/uftoZ5tPKaWNX7N2YR8f//6ZyCFmrPIRz9X+IwDA66h8
bd73N3Tv83r6hu/l4Hr+/Pmwf/75oWGczJo/SluTexZ5E/zjx7WuxZFvkHqU/M1VV5kvAJyZu6Hu
/QD22r0YcAVsKs7nx48f0+4sX21TbsYNCgC4mrsNNRvja8l3lP/8+bv58O4wl+1m9zlle37s5fRi
kflEctbo/d+Unuiduuj/lWnNx3t9aSzXW/0o7SPKO05jI/PxfHx83G2URze7utmu9dO60z1zPmb9
a2jt9eO1ax+Z5mqetmeRaz/31MoBgJf3dnv/yMXMPlJKH2bWLF6OF6PsX/78+fj48+fjLtaq12Kt
eK1NY9H5eDHtu1dSSnfXndbXlOTE/m1z+tVYZD5a92Jr+9E27acsXk4v5h2r9UjJNKZ5vTYv7sV6
bZnGNC9atl4/0TYtmqv1WuzfNiem7b0cCoVCeeXydnv/uLtDbda/u6F3q3IMj7Hl7u4eIvOJ5ETM
vO4id+tK3thebES0n+TcYc5yvJUTtfX4bMsd4GxGH9nMvtaasaYzntuefXsHgOfgbqj1DVrftLVe
i+ExvM1q+fGKo3nzOYr/P8jrm4TF1m2qH+mVX3OfN5KvY1n+3oSY9Zy1nn+94QEA2Je7ocbzeeSm
9pH87UbdVTbTZn83abVN1bP6+Pj87LPGzq78PwZlfUTveW+1AQDm43uogS9X2kxn5Z1PXMOyLJue
t95merb0VQAAdWyoX9SMj4DM6OMsRjbToxui0ow+tmzO1NZ+epuvPe4k79HniPxxIc/Wdc1GN9O1
8SPXfa8dAOB85MP74axv4JEcnId+RV2OecpczdF+tH5VoU3FpGte+9H6qNzP2jnp+FqfLfI1dWV7
flzmeX14m+peP0fy1tV7rsqc/FjztB+z7znRsQAA8/z4+ro8MzP7/etn2QYA03iffX5GkV/QziA6
z2geALyqt9s7H/kAgJmusvmMzjOaBwCvjA01gEO8wt1pAMBrYkMNAAAAbMCGGgAAANigu6HWvxbf
QvvSek00b6ujxgEAAMDzaG6oR76Gaw/e10ABAAAAZ9DcUK/BhhcAAACv6O4fdsl6d6f1H4PwRHLM
Ynmj/3BFVjvWi/fmo788aE7uc2s/AAAAuIC32/tHLmb2b0kpfau32rTuxVJK4Zj2FWnrlfLY1mMd
o1f3YrP6oVAoFAqFQqGcu7zd3j+mfeSjp3b3tRZ/lFnzmdUPAAAAzq36kQ/UpYHPi3sb7JF+AAAA
cC5DG+rI54Of2azzndUPAAAAHmdoQ52xIQQAAMCrq36GWu9Ce1JK/5aeWk4trpLzbRxnET2Hnln9
AAAA4DhDd6i9za3GdEOu9Vpc+52lHEcfr6HzzbG1ZvUDAACAB6t9bV4uyfkqt2hsVtmzbwqFQqFQ
KBQKZbS83d4/fnxtpM3M7Pevn/lhF3dXAQAA8Orebu9jH/kwYwMNAAAAmDX+KBEAAABAHxtqAAAA
YAM21Biin6FHTPqjkfNIf843P/c682J4LVwDLvf1AuAQ1c9Ql1+DVz4ujX713Jj8RrF1rF4/+obU
y/PatY+sleu1zVbO64jxziNvFJd/vsdLkZwrSX/i57Im9yi1953ZZryP6UZG+9L2TPOy1rlrX728
WnvWGsss3s+ra61jZA3L57WVZ1Yfa1k+v47VawOws9rX5qXiq+rKx17Ma59byv63jNXrZyTWa2+V
Xj8zy979n7+kP/cxLZGcLWXv/suyZqw1uUeV6vtKLT5QZryPecd5MS21nJRSs21tzGsv23rt3mPK
99Jax8ga1uJeaY21ti8KhTKnvN3eP4Y+8pHkN+D8W/E+kn2/m7p8xUpaN7uPRfqJOLqfJMXTy9Gx
tkmp/q9j5njOqeVF5I8gtD6KEMk5UnQ+rZxILNdb/ahIjsc7TmMj82nR9xhXSn/LAB3Dex/Tei02
i85phPbhnZfZfZ7S9lo/05TPZ2ucVrv2Ucvtta+g61TSNm8NNaclkuuNAWB/dx/5KF+IvCgfLdn9
RlhjWq/F5um9YeubvtYj0h+7+wiCxrReix3FGzsS03qUHqf1Uq2t3Pjmx15ehI6h9alSMiuvKanX
rs+11+Feaq8JL7aXI8fq0uezFjP7jFWeXzdfc71+B6+f2vO4hyPHArDe3YY6b5byC/caL+LF7Nsm
cnRDmfvR2IhZ/ahIP17OXvO5t9f1opszrZ+RN0cvNiLaT2tjm+OtnKitx6/SucZmXYOR98OccwRv
LJ3P05hxXt7mOSCypt61MKr3nM4cC8A+7jbU17XY303j6BuPtxH3Yj1e/kg/M+nYj57PHOUdVtyb
sVF+deUmtrap0bhukGbxNlZe7HKW5XPzmx/P0NpM7/T8jNLn7ymeU+DF3G2o8w+C8gcCL26ckbdZ
ZIP93fKPv054HN5PK/KazNhYtzbTZu22FfQXpz2f2yPHArDe3Yba7O9vy9d6wZZ3XJ/j7iswwytu
qnXzkY28n5Xvg9d6T7yocmM9stajxxUi149eB3teG9rvnmMBGDP0LR/L8v1zfPu+uBf73CBn3mZZ
Y3qMF9NjoiL96NieSD+eSN+RnOvp3X3utT/CjDnN6CNvqmeY1U+LvsestSyLWzSn9z6mMT3Go8cc
Tec4Op81/aS07Rt9bMuxpZTMKnNskvH1uvGun4g1azjLEWMAuOfeoY4o3yj2f/GWm88tY/X6KdvL
mDpTP7NyYvSHg5nt8vx7G0C9w6o5Ws/KWH6sfUVyerzx1/Zhdt+P1keN3qnW8bV+ZbPex8rXxax+
vHnpBi3HVOS8emPleq2t5M1rlWUx0+O98cqc/FjztB+z7znRsSbpraG3dl4egHP78fUPupiZ2e9f
P8s2AF9aG8i1G1TEcbftOniuHo/nAHiMt9s7G2oAwDZs5AC8srfb+9hnqAEAyNhMA3h1bKgBAACA
DdhQAwAAABuwocY954/kzawe38ORYwEAAGww/LV5Z3TqP4xJZoPfVLdebay8SfXa9lSbz5GOmMMR
YwzofaUbX9kFAMA2T7WhRsdisTu/7KeeRu+XTK/diwEAgLpLbKh7d9DK9tYX6D/MkXcut44VuYtd
Ph2tPLP6fHRj7+WY9cfq9VO2t86t149ZLKdUO/eI4Fit652NMQAAB3m7vX/kYmanKymlUKwVf2hJ
TmyvEhlrS05y2rQeafPiGouMpfVarBWvtWlM616srGvbmuId68Xs85qvXfe1eC/Hi1EoFAqFQvHL
2+394/R3qLnDdjJHPh0jYx11jFn9uC13pmsq/fVeH73/u7Ms/LPHAABsdfoNtdn9puAy9thY1Rw5
VsQR81ms/TGONWZdYkec9wq6OdaPgWi9FgMAAHWn31B7P9wvu8HGfPnS2LKx9jbBo5dY3uRrfwAA
4GnxPdR7OXJTdeRYEY+Yz/JVRjfCMx04j5QSv2ACAPBgl9tQH7J5SF+lpZWzZkPZ6idr5awZa4ba
PLKZ84mMtYdov6283qa69Zx61uQCAIBDnf4jH/pHU1ovlW36MZGXVy5ZfqxLFMnRjaK2R2gfOaY0
T3O0Pcc8Za7maD9ab8Va8jG9PLVirNZ17r1WND+SAwAA2n58fV2emZn9/vWzbAMAAADQ8HZ7v95H
PgAAAIAzYUMNAAAAbMCGGgAAANiADTUAAACwARvqy0hf5Rz0myFglv5oBI/yDM+F+xrzYsDRTngd
uq8X4EDVr80r/4VC718rzFptc9W+82ytXj/6ouzlee3aR9bK9dqyZP32kuZqe6Z5zytvsJZ/vsfP
LP3Zf75HjPHs9ljDo95XZ3zNqG5ktC9tzzQva5279tXLq7VnrbHM4v1Mkc/tiLEiUjpkLpHnNJKT
vwLUawMO8XZ7/8jFzP4tKSX3sebU2uaWcowt4/X6GYn12lul189omxfTEsl5rpL+3Mdmltn9z+7P
K0eM8Yhy5HntMVb1fbUWHyiR9/he8Y7zYlpqOa2fKV68F/Pay7Zeu/d413LUOGWpjVmL99pWFG9d
Nab1WqwVp1D2Lm+394/hj3ykw34T1Luzy1espHWz+1ikn4iz9XO8lOr/3HWO55xaXk++o5z+/C0q
kjNTOU5rrF5Or58yXssx6/djFsspRXI8Ot9aP735eDGz+3ivn6yVE4nleqsfFclpCb23pvS3DNAx
8t29ktZrsVl0TiO0D++8zO7zlLbX+jlU+Zx7c8mxVo5ZvF0fe3p9HewUzxNe1t1HPsqLsXVhtt6M
MEu5/vmxrrvWI5KNHfep96alP4y0HpX+2Lf/la51L6b1Wbx+I7Fe3YvlxxoveW0a03otlrXaIvT4
Xr0Wy2ptXjwS03qUHqf1UqttmpTMyteT1GuvzZHX4B5q7wdebC9HjjWFPufR2Nq62d+611bS9oHr
MPI8RHKAM7jbUOfNUr6Ia29+57KYfdskjm4Ycz8aGzGjnzXnU47Xy93XrOslsjGJ5BxpZD5HHWNW
P27GRnDr8Vt4Y3uxEdF+ZqxhSOf1Ne31F/hZkHOO4I2l83l5R65HZ6w1z035vLaOy3mtHOBR7jbU
17XY303l6IvN27h6sR4vf6SfNcq+9x7rMQ7ZrOxs+edz45Ufb5H72eqwjaDNm/PZHLmGRyo3sbVN
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
PzNExtIcrcfpD2qzPZ/3v7w71fr5aO8jHd5m3Ls7XeZ4/UREx3qYZTFL6fO/Gm8JI7sAACAASURB
VPMeezllTOu9nKw2zgrlpnHL9Vdez7P68ealm9wcU5Hz6o2V67W2kjcvAMB6P77+QRczM/v962fZ
BuAiWnchgRauHQDY5u32foWPfADoYUOEEWymAWAONtQA8KLYTAPAHGyoAQAAgA3YUOPp6R9daR0A
AGALNtSoYuMJAADQN/y1eYdLafgrtlabNFbka6t6dFPb6uuoPzAq56Tj6XyzMi+Sk81Yw5491q3V
p56/5ml7pnlm7fVZ009Wm7f2NZJT63uLVp+R+Xg0z+xc62zWn48X36LVZ2/O2p5pnln/vDxeblab
t/bl5WStPrz4Fq0+e3PW9kzzzM61zr2cWt9btPqMzMejeWasc6vPyHw8mmd2onV+u71/5GJm5y0p
3cf2KhPGSkUf5eM1xTvOi+V4rW20eP15sV6JHOPlzFhD79hefWtpPRdeXGNar5WR9Wnl1eYdiWnd
i2l9a6nNN7f1YlqvlTOts8Z67TNKbb65rRfTeq30zssrrbzavKOxVh+tY0bL2rE0pvVaOdM6a92L
aX1rqc03t/ViWq8V1tmfb27rxbReK2dZ57fb+8f5P/KR0mfRxyq31XIisehYHUl+u1mW+388Qeu1
WISO50np819Ey8UTae+NM4uO5a1hlM7Zq/f6zu1nWSMdJ3IOLdrfHiJzZJ3b9HhvPl5Msc59vT4i
c2Sdt4vMkXXeLjJH1rnt/B/5yCeX0t/HymvzYj2BsWpP1pYnoSbaZy/Pu0g05tVn0H49kZy95Rdi
ax7arnWz/nPxSN58W/E9sM738T2wzvfxtSJ9sM738TWix7PO9/E1osezzvfxNc6/oZ5lWcxSsVEu
H6+wdcEzvXBbT2ZKfze3tZy1ev3k+SmN9fp5JjPOtbauSnNmjO1pXXeZN2c9xssZpX2PiM5Hc2aM
7Rld5z315hMRnbPmzBjbwzpfd51zbq/fmtHjStE5a86MsT2z17nM6/VbM3pcKTpnzZkxtmfWOj/P
hrpzomZmtix/8zqLd4TyCWo9mWVb5Infk4796PnMlJ+Pvc9H+9cXqbabPXadvbG9mNb1vDLWuU7H
1jmvwTrX6dg65zVY5zodW+ecRebJOtfp2DrnrMyrzZl1rtOxdc7Ps6F+4CLDF7n4IznYrrXO+qbQ
ykVba+1Y53laa8c6z9Nau1nrPHrcM2mtwax1RnvtZqzz82yoI1L6u/EuH6+gi56tXXiz70+Y9+R5
MexrWY757fws9DyPOnfW+ZhzZ52POXfWeezc1x7HOo+d+9rjWOexcz//t3yMSrLxTbKBXpb7nIBl
WdyiOano23tyNKbH7K03Vq99b7oeul570rH35J1XZGydo9fPI0Xmo+ewJ28+kbF1jl4/e/HGGpmP
HrMnbz6RsXWOXj97mTWWnsOevDlHxtY5ev3sZdZYeg578uYcGVvn6PWzl1lj6TnsyZtzZGydo9fP
XryxrnOHelnM8sLpgpVtZWxUa6yg8onWRY/SiyXHlF5QZt/zIv1ojtZbsb3MWMOj9Z6LMm5235Zj
kXU+an2i8+md10zPuM5m/TmbPW4+tTF7c77qOkfOfZbIWL05P8M6Z7XcrV51naNznuVV1/nH1z/o
YmZmv3/9LNsAAAAANLzd3p/4Ix8AAADAAdhQAwAAABuwoQYAAAA2YEMNAAAAbMCGGgAAANig+7V5
Kd1/154X26rVZ++rU7Q90zyz+le4mK3rJ6vNW/vSHG3Pyrxa31u0+tQ5aZ62Z5pndp51zso8zan1
vUWrz96ctT3TPLPzrLO2Z2Vere8tWn3qnDRP2zPNMzvPOpv1c2p9b9HqMzIfj+aZsc6tPiPz8Wie
2fZ1juRkrbGyVk5rTUa1+tRz0zxtzzTPrH9enj3X2ax+7rX4Fq0+9dw0T9szzTNrn3ukn0hO1hrL
3m7vH7mY2beSUvpIKblxjW0ptXFyWy+m9Vop80aO0VKbdySmda9EctaU2nxzWy+m9Vo50zrXYmva
15bafHNbL6b1WjnbOmvRHK1vLbX55rZeTOu1cqZ11roX0/rWUptvbuvFtF4rrLM/39zWi2m9Vmas
s9ZrJTJWL8eLbSmvus65rdZei4+WtWNpTOu1Ej332jFevVZaY73d3j+qH/lIjd8sluX+C7dVbk8p
/Vs8rXFm0nEi59Ci/e0hMkfWuS1yfGSOrPN2kTmyzttF5sg6bxeZ47Ovc0tkrEiOF1Osc38szVO1
40qsc3ssd0OtB3q8zlTuJxcvvzfOI9XWoRbfQ23dSqzzdrV1K7HOcbU+a+tWYp23q61biXXerrZu
pWdd5yPV1q3EOrdF+q6tW4l1rrv7DPXMwWb0U3vClObMGNsTWZ+j5zx6XOnoOfewznPm3DNznWfp
zSciOmfNmTG2Z9Y6ezm9fmtGjyt58/FozoyxPXuu86jefCKi89GcGWPXHDlWxIzxWee+GeM/6zrf
bajXyIsyMvAa2n/kxI+YV4uOvWXOrHOdjq1zNvNzNGbGOrfo2DrnNVjnOh1b5+zNz4uZsc4tOrbO
2SyWY/aa6+z1uddYGev8aa+xMtb508hY7oZaT2yk46trnTPrM09r7VjneVprN3udtx5/Za1zn73O
r6y1dqzzPKzdMVjnY+y9zncbah2sN4FlOea3mbPQ8zzq3FnnY86ddT7m3FnnY86ddT7m3F9tnR+F
dT4G6zzG/aPEtfLiH8F7kiNj6xy9fvbijRWZs9Jz2NPonHWOXj97mTWWnsOevDlHxtY5ev3sZdZY
eg578uYcGVvn6PWzl1lj6TnsyZtzZGydo9fPXiJjRXL0HPbkzScyts7R6ydi1liRHKXH7MmbT2Rs
naPXT8SRYyntd0/enCNj6xy9fiJmjXV3h/poOkGzz4mXyhxtyzFdkF6e1z7TrDnPwjp/j+3lVdf5
aK+6ztE5z/Kq62wWy5nlaus8c6xIziyvvM6Rc58lMtYzrvOPr3/QxczMfv/6WbYBAAAAaHi7vc/5
yAcAAADwqthQAwAAABuwoQYAAAA2YEMNAAAAbMCGGgAAANjA/dq83teHpHT//XtbtfqMzMejeWb1
r3Axi/UTyclaY5nd96V5rTUZ1eozMh+P5pm1zz3STyQna42lvPP3Ylu1+tRz0zxtzzTPrH3ukX4i
OdmMsbxjt2j1qXPSPG3PNM9szrl7Wv15bVnZn+a11mRUq089N83T9kzzzNrnHuknkpPNGMs7dotW
nzonzdP2TPPM5py7p9Wf12Z235fmtdZkVKvPyHw8mmfWPvdIP5GcrDWW2X1fmtdak1GtPiPz8Wie
WfvcI/1EckrV83q7vX/kYmYfKaUPM/tWNKb1rSWlVO3Ti2tM67VS5o0c49VrpTdWJKb1reUV11lz
vRwvtqXUxsltvZjWa2XNudfytF4rvbG8mJZIzpryiuvcikfb15ZXXWctmqf1reUV1zkS0/rWwjr7
Ma1vLc+4zjnXy3+7vX8MfeRjWe6/BFvl9pTSv8WTajv9yXScyDmMmjVW5DjWOTaW5pZax2Ws8/ax
Isexzu2xNMfjHadY5+1jRY5jnbePFTmOdd4+VuS4V15ns/vx1N2GupVcikw8D56Llx8d7xF6i7dF
tN/aupVY57ZI/7V1K7HO29XWrcQ6b1dbtxLrHFcbq7ZuJdZ5u9q6lVjn7WrrVnrlde4d536GOssL
1eukZvS4Uu0JU5ozY+yamWOVfY32M3pc6VnXecuLR83o51nX2WxeP6PHlVjnvtHjSs+8zrPMGP9Z
19k7r5F+zMaPK3nz8WjOjLFrZowVPa+IkfFVdD6aM2PsmhljVTfUKfU3InlRenlbaf+RE99rXl6f
W8Yqj6v1wzp/2musjHX+NDKWl1/rh3X+NDqWHlPrh3X+tNdYGev8aWQs7xgvZsY6Z6Nj6TF6Xhnr
/GlkLHdDPdLRs2ENjnHEOusL9Ygxz+YVz/kRWOdjHLnOR451Nq987kdinY+x9zrffYZ67YDLErt1
j+/WrhnrPGZZ/n7WK1/XreubdT4G63wM1vkYrPMxWOdjsM5j7jbUI45cfG/DHxlb5+j1E3HkWEr7
3ZM358jYOkevn4gjx1La7568OUfG1jl6/UTMGivSj9J+9zQ6Z52j10/EkWMp7XdP3pwjY+scvX4i
jhxLab978uYcGVvn6PUTceRYSvvdkzfnyNg6R6+fiL3GiuRov3vy5hMZW+fo9RMRGSui+pEPNTLJ
CF0Ms/uxyhxtyzGdcy/Pa4+YNVa0n1ledZ2P9qrrHO1nFtb5e2wvr7rOR3vVdY72M8urrrNZ/7xm
etZ17p3Xj69/0MXMzH7/+vlvAwAAAIC2t9v7nI98AAAAAK+KDTUAAACwARtqAAAAYINLbKj1w+Ja
BwAAAB7lEhtqnAe/zAAAAHxX3VCnlKqbp1p8iz36vISUPstJtJ53M//rZfZ05FirHTm1I8eK0Plo
/SxONK/82uq9xnrtWSQHAHCM6vdQ5+/WKx/v5aV/MCzLaTbURz/vwKvwXk+9mNeevfR7JgCc0dvt
/SMXM/tIKX2Y2bcSjXntKaV/i+Zonra9TGmde0rfi9eueZoTKN76e7FIW6SU14XXl7Z7OQ8tyYnt
VWpjJSleu+ZpjrbXcjS/F9N6LebFI/Pp5Wi7lxMtwX5a16kX15jWezGvjUKhUCjHl7fb+4d7hzoi
/6//2h0Us/s7LFo38/81GnxJ6fMO9tqY1FPlbtaj1t67DjQWuUv3MMnMjppSbSwvHon16rVY1mrL
tuR4cY1p3Yvlxxpfyzvei3XMvIZn9gUAmGN4Qx3BG/9BOut8tufhbPN5Gt6yerGekWOygc1m1+z+
tqrMJ3pd519wo/kAgPPbtKFelv5damxUubt8dbW75qe3x4axpjXWYp/t+XHUmlzVmo9Zvz0iel5X
vXx4vwSAp7RpQ40DPOEPX29TcdkN9iPlJYxsQI+QN8Nb5xE5Ly92ct51DwB4Dps31NylPr/aZpXn
bKUZm8WoNWOVG9DoMWtF+561qTY75rwman2Ug/dIAHhud99DnTfIWeQHgR7zKCn1v7/1yJxdDIy5
LItbNCf6vLfaRhyyjumrtLRy1mzqWv1krZzIWLVjZ9C+I/Mp5U31iKOPM2s/F541uSuseQ0CAM7F
vUNdvrHv/YauP0DM9h9zBv3hN6Q8Pj8uz31Zvufk2E6Oet517bReOmpOl+NtWkeWZ1Y/Kvdb9lWO
pY+zyHwiOVltnKgVY/WuT+8a12Mi1/tV3zMB4Jn9+Pr+aTMz+/3rZ9mGjle8g/SK5wwAAFDzdnu/
/8gHYl51Y/mK5wwAANDChnoQG0sAAACYsaEGAAAANmFDDQAAAGzAhvoU0le5Du8bC/BX+qORx+M5
AwBgH+7X5pl9/6M77w/w9Iezts+35buvSr1+dNPRy+u1Z628WltW9uXlrhnLrN5+HrUN6fKPRq4p
n99R5+O9hgEAwCRvt/ePXMzs35JSch979VpsXin73jJOr5+RWK+9FWvFt7T3Yl77uUr6cx97tnLk
Oe77+qRQKBQK5XXL2+39o3qH+jz0Du7ixLTuxbTu9ROhx4z2EzGrX+1n25xb/5hEvhNa/h8ML28W
vZPt3fHt5ZTtyz9/62Ve+vO9TdtL3vFr9ea8BnenAQDY192GutwI6cc6Mn4490TWp1zb/DhynBo5
ZhvdMCvdwGl9lrzJbcW0Xovletmmeb16phvvtbx+vRgAADiHuw113iy1Pj+dHXUXsk/vuI7efc39
aGxU2Zf2E53rmvls2ZjPM+ta0E1pZEMZyRm1Z98AAOC67jbUaxxxFzKu3AyPzsPb3HqxqPK40X70
mFo/tfh1vfIGVn+ZAAAA53W3oc53nfWjH4/dLKPt+TbTr+6Vf5kAAOBq3O+hXpbl3w10+ThrfX72
cfKmsrxT/ShHjs9mGgAA4JHcDfW56AbZ20BqTI/xYnpM1Kx+jnTFOY/Z86MSe/bds2Xs3h+RAgCA
be4+8hHh/YDWu9hzlRvCLeP0+tGNZ46pWf30RPvRHLP7vN6cY/SjQGZ7P/d13rdp6EclIjlR2pfX
T9meH2teL0fHyTEAAHBOP77+QRczM/v962fZBuDLM3xtHX8LAQDAfG+39yt85APADGymAQDYBxtq
IODqd6cBAMB+2FADAAAAG7ChBibSP9bVOgAAeD5sqAEAAIANXm9DHbljGMk5mZTS5ruhuY9WX5Ec
s9h8jswx698tjvYzS22sWnxE+Vx5/XqxUUeOVfL69WIj9Jy8c9P6VrVxctsMej7eeFrfojVObp/l
yLGyXp+1uZj1jx0R6bOWU4tv0erzbM/X2eZT8vK82Fa1PnVtvDXS+gy9PmtzyW2z1foc+h5qnEtK
f78OrXy8hnecxrQeiXntGt87x6z+Asii/czSm88M3nl4sRm8fr3YbEes497nUDpizcz8c9prLb1z
8mIzeP16sZl663bG95ZIziytsbz18GIzXWk+pWjeVr1x9lwLT28+ez8/qjmft9v7Ry5mdr6S0t//
5qI52u7laPtojpfntWveSE6gJOc4jWndi2ndi2ndi2ndi2ndi2ndi2m9F/PaanEvNqv05tNr0z5y
qeWMxLz2s4zl5WpbK67trbG8mFd6eWcbyytenhfz2ltjbYl57WcZS/O0rRaPxrz2rfNZm1Mrs+bj
xaMxr/3Z5hPNq8W1fet8anEtvbxnnM/b7f3jGhtqnXyvXou14tEcr01j0Tl7saJePrm1J1rrXkzr
tZgWzdG6F9O6F9O6F9O6F9N6LdZr8+JebHbpjdFqTyl2LWip5dTiuU3bte6VWk4tntu0Xesa89qj
bdreq7dKK/dsY2lptffatL1Xr8Va8dym7b16LdaK5zZt13qkzYt7sVY8t2m71qNt0ZxW+x7z6eXW
4rlN27UebdNSy63Fc5u2a32kLZqnZdZ8anGvtHKfcT5vt/ePa3zko3c7v9f+CJE5dXJm/W+MZfn8
p+Kj/9sxff0vDc3J/WgMj7Fm7WvPaVT0uPL6iB6jesf1rt81Iv3MuuYjxx051iy9sWa+b/SO88Ya
1RvraM8+n6PeoyKOeB+LOPq9LkJfX6P9jh6nzjSfa2yoIya9iYaMjDXhydqi/EHTunBaL2CvzYth
jvycbV3fSB+zxiqPr/U3a6yIrWN5x9X62zqW2f14tf5mjBW1dSzvWC9mtn0sM38NPTPGmumV5xMZ
58j5lGPUxjxyPhFHzMfruzbmEfMxu59Tbcwj5vMcG+qUzHSRKm+iU+hYT2Lviw3He9bnVDdJz3qe
R2Dt8Ehcf228113H631t3oWkdP/1NPriisovwvxbmuJFek615yti7XO6daw1toyVr+Nccqxmy1hr
MdZ2zzpWxKvN58j3qIi1fe89nzO/10W82nyusaFeuwBr87faaTx9MZUvqjKnvEC8NyiN6TEzad86
ttmxORGz+tmLzm9PjPXdyDGjY41grLbIa3nWWB7t+9HzGcF82l5pPiP97jmfEXvO5xof+ViW75tW
fUPy2msLVrZpP1krx+tbcw5WXiC9N+sW7yIr+/MuRG+8yHyOzCnnXMuN9DNLZD6z6PNlts9Y0Wvj
ao48ryPHOtLR51WOtec4ZrHX8tneWyI5s0TG0mvD7D5nlt58HnmtevM5Wm8+Z1ufs83nx9fX5ZmZ
2e9fP/9tOI2UzHZcIAAAAGDU2+39Ih/5AAAAAE7q/Btq7k4DAADgxM6/oQYAAABOjA01AAAAsAEb
agAAAGCDu6/N068gycqvBkmp/12aa7X61DlpXuvYUa0+j5xPb6zM+wqX7BHzMauPW4uPiMynl/Pq
8yl5Y3uxUb35aHtW5h05n6zM05wj56Pt2SPXp5fz6vMx+5vntT9iPmb1cWvxEZH59HJefT4lb2wv
Nqo3H23Pyrwj55OVeZpz6Hzebu8fuZiZW1JKzfrWklKq9unFNab1reUs8/H66cV67VuK148Xy/FW
m8ZGitePxrTuxbQ+Wrx+NKZ1L6b10eL148XKNq/di40Urx+Nad0rkZxI8fqJxta0R4vXjxfTojla
Hy1ePxrTuhfT+mjx+tGY1r2Y1keL108v1mvfUrx+vFiOt9o0NlK8fjSmdS+m9dHi9aMxrXsxrY8W
rx8vVrZ57V5spHj9aEzrXonkRIrXTzS2pj1avH7K2Nvt/WPoIx/Lcv9l2iq3p9T+J7PThN8ennk+
PTpfb2wvpmbNx+x+Turo+fQwn/Zz9oj5tBw5n9a6ZEfOJ4L5tB05n5R4f96K+bSfs0fMp+XI+bTW
JTtyPt071MnZlUfbtF3rkTYv7sVa8dym7VqPtHlxL9aK5zZt17pXNEfrtVgrntu0XeteaeW02nrt
e8ynl1OL5zZt17pXtuTU4rlN27XuFS+njHnt0TZt17pXNEfrrdLKfdb5aGm199q0Xete0Ryt12Kt
eG7Tdq17RXO0Xou14rlN27XuFc3Rei3Wiuc2bde6V1o5rbZe+x7z6eXU4rlN27XulS05tXhu03at
e8XLKWNee7RN27XuFc3Requ0cp9xPm+394+7z1DP1PvNIcL77WK039HjSt58Rq2ZTx5zzTFrren7
ivOJ5LSsOa43VnkN1XJ61hxXm08K/IYftaaf2nzMvq+NmZ8Tsea4K81nljV91+azLPfvh5oTtea4
NfMZpX3XzHgtR0T7vup8as9pVPS4yHwiOT3R41pjpXT8+3NrPmbHvx9eaj5b7lC32r24F+u1eXEv
1mvz4l4s0qallVtr8+JerBWvtXmxXpsX92KtuJZIXi3Hi3uxVnxtTivPi3uxVrxWWvm1Ni/uxVpx
r03rWmrtXtyLteK10sqvtXlxL9aK19q8WK/Ni3uxVtwrvdxauxf3Yq14rc2L9dq8uBdrxWullV9r
8+JeTIvmaL0W67V5cS+mpZXTauvleHEvpqWWU4trqeV5cS+mZWtOrc2LezEtmtOra6m1e3EvpmVr
Tq3Ni3sxLZqj9Vqs1+bFvZiWMqd7hzpN/O0IY872HFxxPpGcWY4cKyIynyS/4UeOGbVn3yOuPJ81
uaOOGGONs80H2/Gcth35/oxthv4osbQs8/4X2wzPNJ89XjivNp9ITumI+ayx93yWZflWcqxm7/ms
xXzamE/b1vnM9mrzWfucHjGfNfaez7Ic+/4826vNZ/OG2mzbJPdw5Hwibwh7zkf7fvR8RjCftlea
z0i/e85nBPNpO3I+j34/1L4fPZ8RzKftleYz0u+e8xmx53yaH/k4gr7ZmH2ecOadfO8NaYvefMq4
2X3bbHruZvdjlmukbbNF5hNZw1nWzifTnFl6Yz3yes72HK+nN5+zrc/Z5nO03nzOuD5ljrbNFD33
Ms9rnyU6nzJnz3mNzCfz8raKzCeSM8uRY0VE5hPJmSUyViRnlshYP77+GNHMzH7/+lm2AQAAAGh4
u73P+cgHAAAA8KrYUAMAAAAbsKEGAAAANmBDDQAAAGzAhhoAAADY4O5r8/RrQbLy60FS6n+XZpSO
5/Xby3nm+ZRa/eY5ee2t47bo9Vtrr8W3qvV7tufrbPMpeTlebAavX12brMzzjpuh1W85L81pHbeF
1+8Z10fnpDm147aq9XvUfHSczOs759bavPhaa+ZjVh+3Fl8rOh/N89o1NkLHybRvzfPaNTZCx8la
fXtje7ERkflEc46aT1bmavuR87nbUHsD1zrayjtRjWm9FpvB61djWq/FZms9B+X4R8zFrD0fs377
bLXxvPXwYrNdZT6lSM4srbH2XgtPaz5HPD+qNh9vHrXcmWpjeGvjxWY7y3wi/Zbj7zkXs9h8zOrr
N1tvPt56eLFZev16Y3uxWdb0e8RzFplPJGeWyFh7Pj+qN87QRz6W5f4LrlVuTyn9W/by7PNpXTDa
5o3txdSs+Zj124+eTw/zaec8Yj4tR86n1ZYdOZ8I5tM2ez4tOldvbC+mZs3H7H5O6uj59DCf9nP2
iPm0HDmf1rpkR87H3m7vH7mY2V1JKd3Fom3arnWvaI7Wa7FWPLdpu9a9ojlar8Va8dym7VrXWK+9
FWvFc5u2a11jXnst1yut9j3m08urxXObtmtdY167V2p5tXhu03ata8xr13gtJ9Km7VrXWK+9V1q5
zzofLa2cXpu2a11jvfZWrBXPbdqudY312luxVjy3aXuv7hUvx4u14rlN23v1Xunlt9r3mE/vuFo8
t2l7rx4tteNq8dym7b16rZR5rWN6bdreq3slkhPJfcb5vN3eP+4+8jFT7zeHLBW/Degx3m8XmhMV
PW7tfEZp3yoFfvuaqTfW1eeTn7c1x5R6x62ZT+sai+odF5lPJCeq1090LH19RY7x9I676nxm6Y0V
mc+y3L8f9o6p6R03Op9RvbHM5l0bEZG+rzyfnNvKaYkcF51PmVfL6Ykc15tP5JqPivTTm49ZLCci
clxkrEhOROS47lhb7lC32r24F9OiOVqvxXptXtyLadmaU2vz4hrr1dfEem1eXGO9upZeeyvHi2us
V4+2RfK8uMZ69Vpp5dXavLjGenUvpnUttXYvrrFevVZaebU2L66xXn1NrNfmxTXWq3ull1Nr9+Ia
69XXxHptXlxjvXqttPJqbV7ci2nRHK3XYr02L+7FtLRyWm29HC/uxbTUcmpxLbU8L+7FtGzNqbV5
cS+mRXN6dS21di/uxbRszam1eXEvpkVztF6L9dq8uBfTUuZ071Cnib8dYUyS34ge/ZxccT5ebC+R
+RwpMp9IzixHjhVx5fm02mZZM58jnG0+2I7nsI1r/jqG/iixtCzj/4tt9LiWZ5rPsizfSo5t8Wrz
Wfvmc8R81th7PpGc0t7zWYv5tDGfti3z2cOrzefI9+eItX3vPZ+11/ze81nr1eazeUNttv8k1zpy
PpE3hD3no30/ej4jmE/bK81npN895zOC+bQdOZ893w8jx2jfj57PCObT9krzieSoPeczYs/5ND/y
sTfvxPTNJpIzS3SsMsdrP1o57zPMp1yfM8xLn1Ozx80neo29qrOtz9nmfCnS4gAAEdJJREFUczZn
XJ+j3p+j537U+3N0Pke9P4/MJ/PytorMJ5Izy5FjRUTmE8mZJTJWJGeWyFg/vv4Y0czMfv/6WbYB
AAAAaHi7vc/5yAcAAADwqthQAwAAABuwoQYAAAA2YEMNAMAD6R87aR3A+bGhBgAAj8UvEbi4u6/N
q/1mXH49SEr979KMiIxldp/ntWtshI6Tad+a57VrbItyvFq/Ocdrf8R8zOrj1uKjevM52/N1tvmU
vLG92Bat+ejaZGXekfPJWjlHzueM66Nz0pxnnY+Ok3l951yvDeeiz6s+Z9qe6WvQszbH7D5P282O
zTHrvwZf1tvt/SMXc/6tcnP+TXOtj5ZIP16OxrQ+WiL9eDka0/qWEumrzPHyvdhoifaVUqrm1uIj
pdeX164xrW8pvb68do1pfUtZ01ftOfNio6XXV689mhMtkb56Ob32NWWkLz1G61tKry+vXWNa31J6
fXntGtP6zOL1Xca8di+udcoxxVt3jWk9WvQ4rXvFy9GY1r2Y1r2Y1tfEKPbxdnv/GPrIx7Lcf8G1
yu0ppX/LXp51Pin176Rojje2F1Oz5mPWzzt6Pj3Mp537iPm0HDmfSM6R84lgPm2z5hOhc66Nreel
9ctK6XupabVrH7XcXjs20+sZoneHOjV+G+m1aXuv7hUvx4u14rlN23t1r3g5XqwVz23a3qt7xcvx
Yq14btP2Xr1Xevmt9j3m0zuuFs9t2t6rR0vtuFo8t2l7r14rZV7rmF6btvfqXonkRHKfdT5aWsf0
2rS9V/eKl+PFWvHcpu29ule8HC/Wiuc2bde6Fq89GnvK4p2nF4u0adFcrTux/JxquTtOiuZoPVK8
Y7xYpOhxWvdiWvdiWvdiWqf8LW+394+7z1DPFPlNJslvknqM9xu95kRFjuuN5c1nlPbt0bEix4yK
9H3l+eTcVk5L5LjofMq8Wk5P5LjefNLEOw6RfnrzMYvlRESOi4wVyYmIHDdrrIhI3735LMv9+6Hm
REWO643lzWeU9o0JZqxpSkP9rHk+e+/Peo15ORFr+sm5muNd87NyPJqj/by0LXeoW+1e3Itp0Ryt
12K9Ni/uxbRszam1eXGNad2Lab0W67V5cY1pvRaLtPVyvLjGtF6LteJaanleXGNar8W0tHJqbV5c
Y1r3Yr26llq7F9eY1msxLa2cWpsX15jWvZjWa7FemxfXmNZrsRntXlxjWvdiWq/Fem1eXGNar8W0
tHJqbV7ci/Xao7GnLSnd3SmulkheLSePo0XzBkrk+erl9Np7ebV4rU1jWq/FtGiO1muxVyzdO9Qp
zbt7BTwK13FbkjsOrNc18DydB89FRV6T/B6zZY16d6ZbbQ+09drYejyOM/RHiaXo/yY4CvNpe7X5
rH0zOmI+a+w9n2VZvpUcq9l7Pmsxnzbm03a2+TytZfkso2udOpvpgJT+/oFpWTTnTFJa9/MLj7V5
Q202/qY0ckzEkfOJXPCj84nQvh89nxHMp+2V5jPS757zGcF82o6cz6PfD7XvyHxaUrrfBKojc5q2
HFtKaWwzLeMvy/ebB7mstWlNCrP62csR1+qzaX7kY2/6ZpNjWu/lzBIdq8zx2meJzqfM89pnic6n
zNlzXiPzyby8rSLzieTMcuRYEZH5RHJmiYwVyZnlyLEiIvOJ5MwSHavM8dqPVs77DPOJ8tZ7lWW5
29Sad/5lTn6sedqP2fec6Fgd3jnrcxbJiYj2ozlm3/Mi/URyzPqvnWg/Zn7us/vx9ceIZmb2+9fP
sg0AALyolLbdpcRre6Xr5+32PucjHwAA4Hm80mYI873i9cMdagAAAGAQd6gBAACAjdhQAwAAABtc
a0P97H8x+uzndwEpXeerfq4yT+AwvCQAPMi1NtSoutJGcLpJ553/iGLrH1Ic9Vwc/bVER4612pFT
O3KsCJ2P1vFQ+f0g8r7QawdwXg/9HurV1mx0UlqXf2HlX9OWj/EYR290AZyT937sxXIcwHVdZ0Od
32ycNyIz+9tu5ufkDXYkr6Q5s/ox6/cRoG/OeTPnvWFP0TuvvD6RWEnbzfo5ZXt+rDkT6Q+80TWO
9BPJMZvzfPfGKtvzY815qGRmR02nNpZcqnc5+bgyT3PM+v2o2nxKXo4XM7uPR+YzI2f2+vT6iQiO
NeM1kV/D+loEcCFvt/ePXMzs3CWl+5gX13qOabxX92Iz+9G6xFJKbtEcHcuLTSlevxrTuhfTuhfT
ei3Wilt8DbV4/URivTYvrjGt12KRtl7xjvVirfhDS3Jie5XaWF5cY6kSa9VrsV5bGV+bU3tci2nd
i2ndi6VKrFX3YpF+IsU7xovZ3/cPjee2SCzSRqFQzlvebu8f17lDPcOGOwjfzOqntCxmnTuFl5DP
I8+9fFzmjBg4LrKGOSc17vTW4jPs2XfPI8d+at6yerGekWMyvds8w0h/0WOieSXvGC82Q6Xf1mvI
u+vcygdwXa+1od6L9wb5rP/rLnJeeVOdH3si/ZyM/mAcUf6Abf1gnTFW1JFjTbXHhrGmNdZin+35
cdSaXNWaj1m/PSJ6XpHLJ5KjWmNehPdLuhcDcH3PsaEuN3C5/mhnmMMeZpyXd9f65Js674fg6Ea0
vCNe1ktebA8zz+ul5SWMbECPsNi8TbVZ+7y8WMmbB5cYgCfzHBvq7KBNyFFqGxvdAJ1OuWH2Ns8H
OvMalhvrM8znUrxN2l7WjFVuQKPHrBXte7F4bs8R53VRrV+MAbyO59pQn+0udam3sXQ2fpE36PwR
gsjmbJc3fj0vrS/LfUw55+7q9eOYeq6F2ka9p/X8tNSOq8VHjZ7XKnmI1rRbOWs2da1+slZOZKxI
zijtW+s9i60/JtvruJmXWG+sltbz7tkyFoCnd40NdflDPj9ubeJqsZ68+dPYWpF+NEfrK+RNdX5c
U+YN8ebYGK9K+9F6K+Ypc2s5G+naaT0rY95z4h2nz1kkZxYdS+ul6HX2chb73GxpbK1Z/ajcb9lX
OZY+ziLzGcnRepR3nI41y4qxWq8F7/Xk5ffeNwBcwKW+Nq9WvK8a8mIUvpbpiQrPJYVCoVAojy9v
t/ePH18baTMz+/3rZ354PXpXjd/u76Q09+MBAAAAr+7t9m7Ps6EGAAAADvZ2e7f/0CAAAACAODbU
AAAAwAZsqE8hfZXr0L9cv4L0RyP7uuIaAY/C6wXAlVW/Nq/8A7beH7P12ufwvtdpRK8ffVPv5fXa
s1Zerc0s3k9E2deWftBzzGviOLrZeaZzm2Xm1531rp/eWL3nS9szzVujN+eslpe/Ys5r28ORY63W
+7Ew05FjRZxtPg+mr1Xvmu3laHvWy9N2dNS+Ni8VX8lVPtaSUmq2zyll/1vG6vUzEuu1t2KteK3N
i0XK6HGUkbL/a8IpO43pnYsXO33Zcc7R98tI6b2n9saKxrREcmqlN+doXqttdjlyrNUlObG9ypFj
RUpkPpGcJyjeNaoxrddiWjRH67UYxS9vt/eP6h3qiPT1G36q/PYzh/66ujgxrXsxrXv9ROgxo/3M
pOuvc5k7v/x8e7+9eteEl9dTfjxj+edvffnnb9zse57ZfXtWO97ss60cw8zPi8prUKWvF81N6TNW
5mmOWb/drD/WGfXmPGt9cj+9WIc+396dVq33YrX3VD3GG2smnYc3Tm/OWSRvxvlo/9pX2Z4fa85D
JbOJb9dttbH0KdKcfFyZpzlm/X5UZD619hnzifYT0RvryymvQQy521B7bzaerW96zy2yLuXa5sd6
nNY93juQF5un90NRrw2tR+VNbd7wth5nXszsM6ab75Iep/VpUjLTtYjE1taDsdrzqJu2wwTm7MbW
1oMi6zPTjH5H+vBeo9GY1j3ecXvwxtFYfqzxU0hmO751f1cby4tHYr16LZbV2jSu9UzjvXo0pvUI
7xgv1rHX9XnKa/8J3G2ol+X7HQJv4b3YYy32/WoduHLN7G8/GhtV9qX9rJ1r7ktztV4z87zajro2
Zm54Z/bVFF2baN5aA5uhrNxcrjlulWi/0byNZp1n5H11tkOer4AjzjU7apyX4y2rF+sZOSZqVt+z
+lGVfqPXbH49a35+b9nK60fHQtvdhvq6FqtvOqO8za0XiyqP29JP79jIi0mP7/V5Da27zqc18uZ3
gje28s11103SUeuzLJ9j5WPLxzsof2DttnaFGc+X/oC9givO2cyOfUtujbXY3x8ptRzPmlzVms8o
r7+rXhqd16+2jbwGvDG8GOruNtT5iSifEG9R9QnzcjBD753Ga1//Yroi72MZp99ge5u2gTe/fzeD
Zf0ZsD6Ha7131+JrHfXzwutXx0ZAXsK8dPOfqrjFvv9I2zKXLcc+iHdNbzG7P/x1t6E2+/smWlt4
jdXyjlVuLL1N5pFmjT+rHzytja+72majfD2f4/U9aOO8I+sTVa7jnmu6Z98jdC5nm98pHPlWv2as
I36kRvuO5FxQfo/xXhO8Vq7F3VCfy2LfX3Heq09jeowX0/aoWf3sxd8AvIKz3J1elhXfVFDZsIWV
x0fHK/JCc1yh9cNhyN7rsyx/c5z2yHno8+099xrTY6L0uJE+tth7vNn95+txV3mI1rRbOWt+hLT6
yVo5kbEiOaO0b623lE9l9Jgeb3wv5mmtsyfa70azX0OIu8CG2uzzKlx79Xp6/ZTtZUzN6idC+zH7
3peOpfVWbL3yB9T0zdNK+s0dWs/KWH6sHxU5TLmB8+pRKX0e24p5fesxAXkTpzGPl7uKzlnrUboW
tdgk5XnX1iYi8vrqjeU9B15eT7SfyJyPonPWeqm3ji9rMZvy42JWP8nuj/NiPdH5aJ6X06N95Jij
d+15168eo9f8CO+1MtrXy6r9wy4UCmVbSXt+Kb7Xtxd7QNn1vKPFm4MXo5ymnOK6oZyveP+Iixeb
Ufbql/L05e32/vHjayNtZma/f/3MDwGcnd65OMHdhJRO9L8bT7g+AAboTdq9Xsojd74BM3u7vRsb
agAAAGDQ2+3d/kODAAAAAOLYUAMAAAAbdDfU+lefW2hfWq+J5l3Vs58fAADAM2tuqM/yB0be17lc
wRXnDAAAgHWaG+o12DyOO8MvLQAAABhT/YddenenI18kHskxi+Xlu9S19gjd9Ht99XLyHFpzLtvy
Y83JWu3RsaKxkrYDAABgUO0fdkmNL9nXNq17sZRSOKZ9Rdp6xTtWY1r3YmvmXItrqeVFxtK6F9N6
LUahUCgUCoVCWVfebu8f0z7y0VO7I1qLH2F07NHjRhw5FgAAANarfuQDzyXJRz4AAAAwx9CGuve5
XpwPzxEAAMA+hjbUGZs0AAAAvLrqZ6j1LrQnpfRv6anl1OIqOd9csVV07CuJnlM0DwAAAG1Dd6i9
za3GdEOu9Vpc+51Fx8kxrfdy1ij78/opx2rlteictd6KAQAAYILa1+blkpyvV4vGZpU9+6ZQKBQK
hUKhUEbL2+3948fXRtrMzH7/+pkfdnHHEwAAAK/u7fY+9pEPMzbQAAAAgFnjjxIBAAAA9LGhBgAA
ADa41IZaP7e9pyPHAgAAwHW5n6HWzeTen5dO8pV7AAAAwFXcbai9za0Xe4Qj5zB7rLOsIQAAAOa6
21BH9e5i5w1kmefl6GPNyVrt0bEisRw3u+/DLDaW2fdz89oBAADwJPQfdkmBf0TFy9FYSsmN6XGt
uJZaXmQsrddivbaRsbROoVAoFAqFQnmO8nZ7/9j1jxKPvDP7rGMBAADg3HbdUAMAAADPbvgz1KiL
fMYaAAAAzyF0h7rcHCJuWRY20wAAAE/uZe9QH/FLQuQudc6ptQMAAODc7jbU+nGFHNN6L2eNsj+v
n3KsVl6Lzlnr2YyxUrr/Oj4vBgAAgOv78fV1eWZm9vvXz7INg7zNsxcDAADAtb3d3u/vUGM77+43
m2kAAIDnxIZ6J2ygAQAAXkPoWz4AAAAA+NhQAwAAABuwoQYAAAA2YEMNAAAAbMCGGgAAANiADTUA
AACwARtqAAAAYAM21AAAAMAGbKgBAACADdhQAwAAABuwoQYAAAA2YEMNAAAAbMCGGgAAANjgP8tK
SqmsupZl0RAAAADwsrhDDQAAAGzw4+32/pEr/++//6tsAwAAANDwP//7f9yhBgAAALb4/0/WgO+0
DbEkAAAAAElFTkSuQmCC


--nextPart2434568.3c9HiEOlIg--







Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Bruno Haible <bruno@HIDDEN>
Subject: bug#77613: Acknowledgement (grep-3.11.69-a4628 on GNU/Hurd)
Message-ID: <handler.77613.B.17440472151368.ack <at> debbugs.gnu.org>
References: <3353032.JoGBPyJhv8@nimes>
X-Gnu-PR-Message: ack 77613
X-Gnu-PR-Package: grep
Reply-To: 77613 <at> debbugs.gnu.org
Date: Mon, 07 Apr 2025 17:34:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-grep@HIDDEN

If you wish to submit further information on this problem, please
send it to 77613 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
77613: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D77613
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-grep@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#77613: grep-3.11.69-a4628 on GNU/Hurd
Resent-From: Jim Meyering <jim@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-grep@HIDDEN
Resent-Date: Tue, 08 Apr 2025 05:49:02 +0000
Resent-Message-ID: <handler.77613.B77613.17440912863383 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 77613
X-GNU-PR-Package: grep
X-GNU-PR-Keywords: 
To: Bruno Haible <bruno@HIDDEN>
Cc: 77613 <at> debbugs.gnu.org
Received: via spool by 77613-submit <at> debbugs.gnu.org id=B77613.17440912863383
          (code B ref 77613); Tue, 08 Apr 2025 05:49:02 +0000
Received: (at 77613) by debbugs.gnu.org; 8 Apr 2025 05:48:06 +0000
Received: from localhost ([127.0.0.1]:58333 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1u21oc-0000sU-EE
	for submit <at> debbugs.gnu.org; Tue, 08 Apr 2025 01:48:06 -0400
Received: from mail-pg1-f177.google.com ([209.85.215.177]:51419)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <meyering@HIDDEN>)
 id 1u21oa-0000rk-GO
 for 77613 <at> debbugs.gnu.org; Tue, 08 Apr 2025 01:48:05 -0400
Received: by mail-pg1-f177.google.com with SMTP id
 41be03b00d2f7-af93cd64ef3so3377791a12.2
 for <77613 <at> debbugs.gnu.org>; Mon, 07 Apr 2025 22:48:04 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1744091278; x=1744696078;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=tmzf+43Qhudd4QvkpWivtFvpGgki/uwMh1WdTbfbwpk=;
 b=gzP+Dsv1mvaCpwK//CpgwWbCerSDx+JDPPRzrkDn9aPqfRBJ4NrG0lZJGdXK17E8UO
 YfId50Xf9ynkrc9s5ee6tQ8u3Y0EnNN2tHs7fPJFp6iI1Wh2N8Gpb/Kh9gqHGjM2hLFE
 mUv3Gfn7CK1PCyMT1V7p4qtg9WiwmunexOh82DMqHBsQdv2HmQ0JVnT40nK6NYTjilXS
 WUgTw0LPjCtQPMD2IvlyZ28QhE8ax36M+RiUgYf6qK1TdnXms1OMB+0nZBSllwIAic39
 JyMCYuFrbKNsF1s7WWtpijYMq135JulaF1C/nknH1QcJAY8lGUDkLqlpeDEUiAA6CKSN
 dhwg==
X-Gm-Message-State: AOJu0Yyc0DTx0Qx0NxrdN3hpOacxHABp3+ipcQLOx9G1TL9nzwvcgwT5
 5dBtKIiDSM9RwZiH3JbUxD42axv4nFSp4MUzG2eXTKQtAvH+bGAKGT0RBIli+dgG9/IE8v7/Zmq
 xhzMON2r3rmZyIeP9A/PpMzsQDM4=
X-Gm-Gg: ASbGncsrff4xWHa0oWHuOEXAfMyy6CrwAkn2a6SIWV+QgJDkT5w2S/ERBdHsr1SfpRu
 g3YBpcKPYah82HvpvYIJf4VjAyuE2mMNxB1hD6R/6SqiwxMA7kttQ9zO92jutsW3uG2vDv/PZdX
 5DxGW0z7l4V9GK2/VRKUAowYu6uK53ZYW6SPHEKXRjfA==
X-Google-Smtp-Source: AGHT+IH6i3VSnoEy6KJxblpJUo4IpTV4FNfCusGGf07WgKHmEZcUq8w2vDs/AouqYsLxHtPB9RTuD53T5ftUbjofXAA=
X-Received: by 2002:a17:90b:5150:b0:2ea:37b4:5373 with SMTP id
 98e67ed59e1d1-306a485efd9mr22246721a91.10.1744091278283; Mon, 07 Apr 2025
 22:47:58 -0700 (PDT)
MIME-Version: 1.0
References: <m2r024u0pj.fsf@HIDDEN> <3353032.JoGBPyJhv8@nimes>
In-Reply-To: <3353032.JoGBPyJhv8@nimes>
From: Jim Meyering <jim@HIDDEN>
Date: Mon, 7 Apr 2025 22:47:45 -0700
X-Gm-Features: ATxdqUGv3VjV-SoGSP0-pdcORq2CNVKgmKcvYX4vhf08JeRoLBZWYle-HU7WzDk
Message-ID: <CA+8g5KHpk6sr1Mdsqb+71T4ZAuFz22ZjA2TY=s8f-LK=HMCeLQ@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000001965f706323de57b"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000001965f706323de57b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 7, 2025 at 10:34=E2=80=AFAM Bruno Haible via Bug reports for GN=
U
grep <bug-grep@HIDDEN> wrote:
> On
>   - GNU/Hurd x86_64 from 2024,
>   - GNU/Hurd i386 from 2023,
> I see a test hang: hash-collision-perf.
>
> On GNU/Hurd x86_64:
>
> When I interrupted the build, the file 'in' has 5120000 lines, and
> find attached the log file of this test. As you can see, the value of
> small_ms stays 0 even for larger files.
>
> By running
>   $ date; LC_ALL=3DC ../../src/grep --file=3Din empty; date
> I can see that the execution times grow like this:
>   640000  0.3 sec
>  1280000  0.9 sec
>  2560000  1.5 sec
>  5120000  > 60 sec
>
> On GNU/Hurd i386, it's similar. Here it's when the file 'in' has
> 40960000 lines, that the grep execution hangs. Find attached the
> last stack trace I was able to obtain before it hung.
>
> Regardless how much RAM I give to the machine, there will always
> be a point where "grep --file=3Din empty" will take more RAM than
> available, and (since Hurd does not have an OOM killer) the machine
> then hangs.
>
> IMO, the correct behaviour would be that 'grep' exits via xalloc_die(),
> not that it hangs.
>
> Whereas on GNU/Linux (in a machine that has the same amount of RAM as
> the GNU/Hurd machine):
>
>   $ : > empty
>   $ seq 640000 > in; LC_ALL=3DC time ./src/grep --file=3Din empty
>   real 0.44s
>   $ seq 1280000 > in; LC_ALL=3DC time ./src/grep --file=3Din empty
>   real 0.99s
>   $ seq 2560000 > in; LC_ALL=3DC time ./src/grep --file=3Din empty
>   real 2.22s
>   $ seq 5120000 > in; LC_ALL=3DC time ./src/grep --file=3Din empty
>   real 4.84s
>   $ seq 10240000 > in; LC_ALL=3DC time ./src/grep --file=3Din empty
>   real 24.19s
>   $ seq 20480000 > in; LC_ALL=3DC time ./src/grep --file=3Din empty
>   Killed
>   real 24.40s
>
> Here it was the OOM killer that saved the machine from hanging.
>
> So, IMO, there are two bugs:
>
>   1) When the allocation of the kwset takes more memory than available,
>      'grep' should exit via xalloc_die(), instead of waiting to be killed
>      by the OOM killer.
>
>   2) In the 'hash-collision-perf' unit test: The use of a perl primitive
>      for measuring the execution time of a child process, that is not
>      properly ported to GNU/Hurd.

Thanks for reporting that!
Adding a timeout should resolve this. Expect to push tomorrow:

--0000000000001965f706323de57b
Content-Type: application/octet-stream; name="gr-Hurd-hang.diff"
Content-Disposition: attachment; filename="gr-Hurd-hang.diff"
Content-Transfer-Encoding: base64
Content-ID: <f_m982vqjh0>
X-Attachment-Id: f_m982vqjh0

RnJvbSAwNzRmODFhMjBjNjNiM2I3YTM4NzczZjExNjBkZGM3MjM3Y2E3NWE0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQG1ldGEuY29tPgpEYXRl
OiBNb24sIDcgQXByIDIwMjUgMjI6NDI6MjIgLTA3MDAKU3ViamVjdDogW1BBVENIXSB0ZXN0czog
aGFzaC1jb2xsaXNpb24tcGVyZjogYXZvaWQgdGVzdCBoYW5nIG9uIEdOVS9IdXJkCgpUaGlzIHRl
c3Qgd291bGQgaGFuZyBvbiBHTlUvSHVyZCBiZWNhdXNlIHRoZSBwZXJsIGNvZGUKd2UgdXNlIHRv
IG1lYXN1cmUgc3Vic2Vjb25kIGR1cmF0aW9uIGlzbid0IHBvcnRlZCwgYW5kCnRoYXQgbG9vcCB3
b3VsZCBuZXZlciB0ZXJtaW5hdGUuCiogdGVzdHMvaGFzaC1jb2xsaXNpb24tcGVyZjogQWRkIGEg
NS1zZWNvbmQgdGltZW91dC4KTm9ybWFsIHBlci1pdGVyYXRpb24gZHVyYXRpb24gaXMgMjAwbXMg
b3IgbGVzcy4KUmVwb3J0ZWQgYnkgQnJ1bm8gSGFpYmxlIGluIGh0dHBzOi8vYnVncy5nbnUub3Jn
Lzc3NjEzCi0tLQogdGVzdHMvaGFzaC1jb2xsaXNpb24tcGVyZiB8IDMgKystCiAxIGZpbGUgY2hh
bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMv
aGFzaC1jb2xsaXNpb24tcGVyZiBiL3Rlc3RzL2hhc2gtY29sbGlzaW9uLXBlcmYKaW5kZXggYjlh
NWI1MS4uMTdlYzZmNyAxMDA3NTUKLS0tIGEvdGVzdHMvaGFzaC1jb2xsaXNpb24tcGVyZgorKysg
Yi90ZXN0cy9oYXNoLWNvbGxpc2lvbi1wZXJmCkBAIC0yMiw2ICsyMiw3IEBACiBmYWlsPTAKCiBy
ZXF1aXJlX3BlcmxfCityZXF1aXJlX3RpbWVvdXRfCgogOiA+IGVtcHR5IHx8IGZyYW1ld29ya19m
YWlsdXJlXwoKQEAgLTM5LDcgKzQwLDcgQEAgZG9uZQogIyBOb3csIHNlYXJjaCBmb3IgdGhvc2Ug
c2FtZSBkaWdpdHMgbWFwcGVkIHRvIEEtSi4KICMgV2l0aCB0aGUgUEpXLWJhc2VkIGhhc2ggZnVu
Y3Rpb24sIHRoaXMgYmVjYW1lIE8oTl4yKS4KIHNlcSAkbl9wYXQgfCB0ciAwLTkgQS1KID4gaW4g
fHwgZnJhbWV3b3JrX2ZhaWx1cmVfCi1sYXJnZV9tcz0kKExDX0FMTD1DIHVzZXJfdGltZV8gMSBn
cmVwIC0tZmlsZT1pbiBlbXB0eSkgfHwgZmFpbD0xCitsYXJnZV9tcz0kKExDX0FMTD1DIHVzZXJf
dGltZV8gMSB0aW1lb3V0IDUgZ3JlcCAtLWZpbGU9aW4gZW1wdHkpIHx8IGZhaWw9MQoKICMgRGVs
aWJlcmF0ZWx5IHJlY29yZGluZyBpbiBhbiB1bnVzZWQgdmFyaWFibGUgc28gaXQKICMgc2hvd3Mg
dXAgaW4gc2V0IC14IG91dHB1dCwgaW4gY2FzZSB0aGlzIHRlc3QgZmFpbHMuCi0tIAoyLjQ5LjAu
MTU0Lmc5ZDIyYWM1MTIyCgo=
--0000000000001965f706323de57b--




Message sent to bug-grep@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#77613: grep-3.11.69-a4628 on GNU/Hurd
Resent-From: Bruno Haible <bruno@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-grep@HIDDEN
Resent-Date: Tue, 08 Apr 2025 07:55:01 +0000
Resent-Message-ID: <handler.77613.B77613.17440988807937 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 77613
X-GNU-PR-Package: grep
X-GNU-PR-Keywords: 
To: Jim Meyering <jim@HIDDEN>
Cc: 77613 <at> debbugs.gnu.org
Received: via spool by 77613-submit <at> debbugs.gnu.org id=B77613.17440988807937
          (code B ref 77613); Tue, 08 Apr 2025 07:55:01 +0000
Received: (at 77613) by debbugs.gnu.org; 8 Apr 2025 07:54:40 +0000
Received: from localhost ([127.0.0.1]:58801 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1u23n5-00023t-VX
	for submit <at> debbugs.gnu.org; Tue, 08 Apr 2025 03:54:40 -0400
Received: from mo4-p00-ob.smtp.rzone.de ([85.215.255.22]:37239)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <bruno@HIDDEN>) id 1u23n2-00023X-Qv
 for 77613 <at> debbugs.gnu.org; Tue, 08 Apr 2025 03:54:38 -0400
ARC-Seal: i=1; a=rsa-sha256; t=1744098873; cv=none;
 d=strato.com; s=strato-dkim-0002;
 b=YuZCBfkZSBw9PlGU2DhmerGh6djOAX6trUQdMfW0HKOvJ/9exvEwEx7o8kLbJHZABv
 LDowxZcIIqqMx5v17kc7EHcctzrJz7b2+lVujobhkDsF4XCbNhwMsMbiOTwlOj26EU6J
 dY7yrulYngvlRm0uJ2qQwTOg6782T4086aRHwHYN9SRvmCIApCbzhLxNGWhI0Fzbv4SF
 WOC2S6Jpnw0wIxSofW5+h+mCOc1yP6kP+DvTXAtxhqXqBiShGMObRysQJr1Tl7FodxX2
 /gcPYzFU446cCKKQZMq1Ia4kK8+2FWoK1cr6YmxFoPe5QZL882xJGdUlHGVN7OkZfQIb
 mJ1Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1744098873;
 s=strato-dkim-0002; d=strato.com;
 h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date:
 From:Subject:Sender;
 bh=qIArQqsllpb5nsmvKz8TmUeVsR22kTWEqaO+yDLNtPk=;
 b=FY1CZaZg8c7w7ISiDuQOJaHml4QNMSVBYVA8MjdR0lXL8qraE8Jt7ZdTg2qNHbw6Y3
 ax3E3t9nKY5TFDwiycjWy0xG1QaCZ49IPavFsk+e+Uph8jA7TxgsyCrHMHa+IqM2Q2rO
 rGPDVi33emHXqwlcHkPieB6/T3r0MiNiJzxqHLY5cxI26ZCLgj2fL/JZLwA4+41AZzK+
 7+RaDF4aJQAojgj0wCNLe8LIT9mKJKDqm7u7RVrsv86sbn5MUIK6by/kh8/yvtWbX3wM
 hpfD+V428HJuLCaOLqv7I3Z5wsGmJmhWDlzDeB4YQdjnU3iSudTqv7JDC6ET1jdL8wM8
 grog==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1744098873;
 s=strato-dkim-0002; d=clisp.org;
 h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date:
 From:Subject:Sender;
 bh=qIArQqsllpb5nsmvKz8TmUeVsR22kTWEqaO+yDLNtPk=;
 b=RCiiibF+IiZ04+vQABYp6gjpKQxR3zlH3JctgtfT+8YJ3Fb1WSEOFtNdIA051z85ZJ
 j9krXeU63JnShVyvKdbQ64lVwCJpjHHbomFfVElTk9DRE6j5Ej/ABi/l+nJqVBrhwd2B
 32zQ9XPCi+fHyau5gG+XjeJJxwEiXetxpjbV2zcqpUBdlHjtMaLmFIBNlg0ihBoy54O9
 slZ9lJLzjbqBcmlLdu6/TM7naePoesTMwCFnRDlAbKWym6K6WU69z+9Z3zJd4/hpSWeg
 ALRC7qzFkadPGSzkuqPCAkS2odQQKz2aUD4fRp/rzcOmO+ZKnbsVN0wXF8XBVrJOy1wu
 +EHA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1744098873;
 s=strato-dkim-0003; d=clisp.org;
 h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date:
 From:Subject:Sender;
 bh=qIArQqsllpb5nsmvKz8TmUeVsR22kTWEqaO+yDLNtPk=;
 b=vUq4g/lK8ky2cVlK6Nmufs2CAHuIj/xFe96Cgllw++SqTpNfWhKrOo/3OoLZScEgkQ
 aSOVFjMj+u9EbndEWICA==
X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlLnY4jECd2hdUURIbZgL8PX2QiTuZ3cdB8X/nqmmcFTvhkvcyS6W4Yb9/mO9QBnQI"
Received: from nimes.localnet by smtp.strato.de (RZmta 51.3.0 AUTH)
 with ESMTPSA id N7dcf81387sXQ6K
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate);
 Tue, 8 Apr 2025 09:54:33 +0200 (CEST)
From: Bruno Haible <bruno@HIDDEN>
Date: Tue, 08 Apr 2025 09:54:33 +0200
Message-ID: <2047803.NnIJQXNAa5@nimes>
Organization: GNU
In-Reply-To: <CA+8g5KHpk6sr1Mdsqb+71T4ZAuFz22ZjA2TY=s8f-LK=HMCeLQ@HIDDEN>
References: <m2r024u0pj.fsf@HIDDEN> <3353032.JoGBPyJhv8@nimes>
 <CA+8g5KHpk6sr1Mdsqb+71T4ZAuFz22ZjA2TY=s8f-LK=HMCeLQ@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="nextPart2114479.o4kTbAZ4gJ"
Content-Transfer-Encoding: 7Bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.

--nextPart2114479.o4kTbAZ4gJ
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"

Hi Jim,

> > So, IMO, there are two bugs:
> >
> >   1) When the allocation of the kwset takes more memory than available,
> >      'grep' should exit via xalloc_die(), instead of waiting to be killed
> >      by the OOM killer.
> >
> >   2) In the 'hash-collision-perf' unit test: The use of a perl primitive
> >      for measuring the execution time of a child process, that is not
> >      properly ported to GNU/Hurd.
> 
> Thanks for reporting that!
> Adding a timeout should resolve this. Expect to push tomorrow:

No, it does not resolve the problem.

In both of my Hurd machines, with the patch, the 'hash-collision-perf'
unit test is still running after 20 minutes.
In the Hurd (32-bit) machine, a 'grep --file=in empty' command crashed from
signal 6 (SIGABRT); see attached screenshot.
Both machines are unresponsive and need to be rebooted.

--nextPart2114479.o4kTbAZ4gJ
Content-Disposition: inline; filename="hurd-hang.png"
Content-Transfer-Encoding: base64
Content-Type: image/png; name="hurd-hang.png"

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


--nextPart2114479.o4kTbAZ4gJ--







Message sent to bug-grep@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#77613: grep-3.11.69-a4628 on GNU/Hurd
Resent-From: Jim Meyering <jim@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-grep@HIDDEN
Resent-Date: Tue, 08 Apr 2025 14:28:02 +0000
Resent-Message-ID: <handler.77613.B77613.174412242525643 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 77613
X-GNU-PR-Package: grep
X-GNU-PR-Keywords: 
To: Bruno Haible <bruno@HIDDEN>
Cc: 77613 <at> debbugs.gnu.org
Received: via spool by 77613-submit <at> debbugs.gnu.org id=B77613.174412242525643
          (code B ref 77613); Tue, 08 Apr 2025 14:28:02 +0000
Received: (at 77613) by debbugs.gnu.org; 8 Apr 2025 14:27:05 +0000
Received: from localhost ([127.0.0.1]:34371 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1u29ur-0006fX-2p
	for submit <at> debbugs.gnu.org; Tue, 08 Apr 2025 10:27:05 -0400
Received: from mail-pj1-f47.google.com ([209.85.216.47]:58742)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <meyering@HIDDEN>)
 id 1u29un-0006eT-9V
 for 77613 <at> debbugs.gnu.org; Tue, 08 Apr 2025 10:27:02 -0400
Received: by mail-pj1-f47.google.com with SMTP id
 98e67ed59e1d1-2ff799d99dcso5362100a91.1
 for <77613 <at> debbugs.gnu.org>; Tue, 08 Apr 2025 07:27:01 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1744122414; x=1744727214;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=5uKS+StvrNbgSGiAltpdmB3MbGNzG9Wfq85K7GVB3L4=;
 b=LNNhxK95q99x80k9Ut0TEfogoqLqKPuP7MUElPVopL4ypw7n3wy5CZhtTY69u5ATJU
 sUFo8gE5JlNf7ClPxAYiNFIFFpBvFYnykp0fT/nPv1w3yUG68xSgh0swaT6I8d123Fy2
 OELcFgZj8G+8Zh3+LUgvrdFqSSH4ITz5AftTibV/IF09eR7ZCMR1/8X5MqU0Xl2gbVPU
 NWqVYdDE0RS61X9TPmBO3eBMwQl4x8xVRr73X5cts8k733PZofhDnSeauMe/3qZx6U7O
 5iiOiRmDBhezoM6upCsDpjt8c6C1qe4h3aUiNX17oS4MgCLtCkpsQNzZQzphUi7+YEiu
 UaUw==
X-Gm-Message-State: AOJu0YznXuxylxFXkB97aBRHfze0DEvOtM5TeKBGSLfjd+VhZMgRkdFu
 oKyepPuPUf8MDsynPwlHugcDCP35PHq0DCkYexupDurvczx25THStkguzXmvN4mjSrAW5xfYQFa
 a4IWbCgmPVnpbH1aOO5VPdc1/+450wg==
X-Gm-Gg: ASbGncu9i+RzBN2YOqoyUeQ/zgIzcTyyRupRMecJ+dAk+37u5wZ15y7fYbcXYStbiKp
 3SSQj31AIQmIC/EmbiZZbXWScDSgZ7YVAcaqSasxbOOzooKwZZjv2RZtSNr0lO6ymIWn5xyeLbD
 PhfWBUZf6NifA+09U5SWItA3wwQwIftYfAOu0UDldaXQ==
X-Google-Smtp-Source: AGHT+IHD8kUd73DsOGHzTQOOe793kReZm6Fgb23KETCCJYEYWjRFMaILa7GWSNOIXuksd+OvCVOXvItArlCwP5wSMok=
X-Received: by 2002:a17:90b:51cc:b0:2fc:3264:3657 with SMTP id
 98e67ed59e1d1-306a601d9e8mr28362245a91.0.1744122413734; Tue, 08 Apr 2025
 07:26:53 -0700 (PDT)
MIME-Version: 1.0
References: <m2r024u0pj.fsf@HIDDEN> <3353032.JoGBPyJhv8@nimes>
 <CA+8g5KHpk6sr1Mdsqb+71T4ZAuFz22ZjA2TY=s8f-LK=HMCeLQ@HIDDEN>
 <2047803.NnIJQXNAa5@nimes>
In-Reply-To: <2047803.NnIJQXNAa5@nimes>
From: Jim Meyering <jim@HIDDEN>
Date: Tue, 8 Apr 2025 07:26:40 -0700
X-Gm-Features: ATxdqUFK-ophP1DcQJFMbDFNvUwVOS5vBCRWKYCXOiCyMFKN4NLAmgTBvNl7DRw
Message-ID: <CA+8g5KGw9Tm5x2rFvv+EE+vY6=b-2yPVuZ+QTwyadf0DgMK0Lg@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000eaa22906324524ea"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000eaa22906324524ea
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Apr 8, 2025 at 12:54=E2=80=AFAM Bruno Haible <bruno@HIDDEN> wrot=
e:
> Hi Jim,
>
> > > So, IMO, there are two bugs:
> > >
> > >   1) When the allocation of the kwset takes more memory than availabl=
e,
> > >      'grep' should exit via xalloc_die(), instead of waiting to be ki=
lled
> > >      by the OOM killer.
> > >
> > >   2) In the 'hash-collision-perf' unit test: The use of a perl primit=
ive
> > >      for measuring the execution time of a child process, that is not
> > >      properly ported to GNU/Hurd.
> >
> > Thanks for reporting that!
> > Adding a timeout should resolve this. Expect to push tomorrow:
>
> No, it does not resolve the problem.
>
> In both of my Hurd machines, with the patch, the 'hash-collision-perf'
> unit test is still running after 20 minutes.
> In the Hurd (32-bit) machine, a 'grep --file=3Din empty' command crashed =
from
> signal 6 (SIGABRT); see attached screenshot.
> Both machines are unresponsive and need to be rebooted.

Oh! Sorry. I made only the final invocation use the timeout. Must use
it in the loop, too.
Here's a better patch:

--000000000000eaa22906324524ea
Content-Type: application/octet-stream; name="gr-Hurd-hang.diff"
Content-Disposition: attachment; filename="gr-Hurd-hang.diff"
Content-Transfer-Encoding: base64
Content-ID: <f_m98lftyv0>
X-Attachment-Id: f_m98lftyv0

RnJvbSA4ZDU0MTc2YzBhMzQ1OTU1ZjYzMDc3OGZhNDgyNjlkMWYzZmY3Y2E4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQG1ldGEuY29tPgpEYXRl
OiBNb24sIDcgQXByIDIwMjUgMjI6NDI6MjIgLTA3MDAKU3ViamVjdDogW1BBVENIXSB0ZXN0czog
aGFzaC1jb2xsaXNpb24tcGVyZjogYXZvaWQgdGVzdCBoYW5nIG9uIEdOVS9IdXJkCgpUaGlzIHRl
c3Qgd291bGQgaGFuZyBvbiBHTlUvSHVyZCBiZWNhdXNlIHRoZSBwZXJsIGNvZGUKd2UgdXNlIHRv
IG1lYXN1cmUgc3Vic2Vjb25kIGR1cmF0aW9uIGlzbid0IHBvcnRlZCwgYW5kCnRoYXQgbG9vcCB3
b3VsZCBuZXZlciB0ZXJtaW5hdGUuCiogdGVzdHMvaGFzaC1jb2xsaXNpb24tcGVyZjogQWRkIGEg
NS1zZWNvbmQgdGltZW91dC4KTm9ybWFsIHBlci1pdGVyYXRpb24gZHVyYXRpb24gaXMgMjAwbXMg
b3IgbGVzcy4KUmVwb3J0ZWQgYnkgQnJ1bm8gSGFpYmxlIGluIGh0dHBzOi8vYnVncy5nbnUub3Jn
Lzc3NjEzCi0tLQogdGVzdHMvaGFzaC1jb2xsaXNpb24tcGVyZiB8IDUgKysrLS0KIDEgZmlsZSBj
aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVz
dHMvaGFzaC1jb2xsaXNpb24tcGVyZiBiL3Rlc3RzL2hhc2gtY29sbGlzaW9uLXBlcmYKaW5kZXgg
YjlhNWI1MS4uZDg0YjkzOSAxMDA3NTUKLS0tIGEvdGVzdHMvaGFzaC1jb2xsaXNpb24tcGVyZgor
KysgYi90ZXN0cy9oYXNoLWNvbGxpc2lvbi1wZXJmCkBAIC0yMiw2ICsyMiw3IEBACiBmYWlsPTAK
CiByZXF1aXJlX3BlcmxfCityZXF1aXJlX3RpbWVvdXRfCgogOiA+IGVtcHR5IHx8IGZyYW1ld29y
a19mYWlsdXJlXwoKQEAgLTMxLDcgKzMyLDcgQEAgcmVxdWlyZV9wZXJsXwogbl9wYXQ9NDAwMDAK
IHdoaWxlIDo7IGRvCiAgIHNlcSAkbl9wYXQgPiBpbiB8fCBmcmFtZXdvcmtfZmFpbHVyZV8KLSAg
c21hbGxfbXM9JChMQ19BTEw9QyB1c2VyX3RpbWVfIDEgZ3JlcCAtLWZpbGU9aW4gZW1wdHkpIHx8
IGZhaWw9MQorICBzbWFsbF9tcz0kKExDX0FMTD1DIHVzZXJfdGltZV8gMSB0aW1lb3V0IDUgZ3Jl
cCAtLWZpbGU9aW4gZW1wdHkpIHx8IGZhaWw9MQogICB0ZXN0ICRzbWFsbF9tcyAtZ2UgMjAwICYm
IGJyZWFrCiAgIG5fcGF0PSQoZXhwciAkbl9wYXQgJyonIDIpCiBkb25lCkBAIC0zOSw3ICs0MCw3
IEBAIGRvbmUKICMgTm93LCBzZWFyY2ggZm9yIHRob3NlIHNhbWUgZGlnaXRzIG1hcHBlZCB0byBB
LUouCiAjIFdpdGggdGhlIFBKVy1iYXNlZCBoYXNoIGZ1bmN0aW9uLCB0aGlzIGJlY2FtZSBPKE5e
MikuCiBzZXEgJG5fcGF0IHwgdHIgMC05IEEtSiA+IGluIHx8IGZyYW1ld29ya19mYWlsdXJlXwot
bGFyZ2VfbXM9JChMQ19BTEw9QyB1c2VyX3RpbWVfIDEgZ3JlcCAtLWZpbGU9aW4gZW1wdHkpIHx8
IGZhaWw9MQorbGFyZ2VfbXM9JChMQ19BTEw9QyB1c2VyX3RpbWVfIDEgdGltZW91dCA1IGdyZXAg
LS1maWxlPWluIGVtcHR5KSB8fCBmYWlsPTEKCiAjIERlbGliZXJhdGVseSByZWNvcmRpbmcgaW4g
YW4gdW51c2VkIHZhcmlhYmxlIHNvIGl0CiAjIHNob3dzIHVwIGluIHNldCAteCBvdXRwdXQsIGlu
IGNhc2UgdGhpcyB0ZXN0IGZhaWxzLgotLSAKMi40OS4wLjE1NC5nOWQyMmFjNTEyMgoK
--000000000000eaa22906324524ea--





Last modified: Tue, 8 Apr 2025 14:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.