GNU bug report logs - #36649
27.0.50; pure space and pdumper

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Pip Cet <pipcet@HIDDEN>; dated Sun, 14 Jul 2019 14:27:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 22 Jul 2019 14:30:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jul 22 10:30:56 2019
Received: from localhost ([127.0.0.1]:33473 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpZL6-0006Mv-8H
	for submit <at> debbugs.gnu.org; Mon, 22 Jul 2019 10:30:56 -0400
Received: from eggs.gnu.org ([209.51.188.92]:53208)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1hpZL4-0006Mg-Db
 for 36649 <at> debbugs.gnu.org; Mon, 22 Jul 2019 10:30:54 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:59748)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1hpZKy-0004fp-T1; Mon, 22 Jul 2019 10:30:48 -0400
Received: from [176.228.60.248] (port=1527 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1hpZKy-0003jI-24; Mon, 22 Jul 2019 10:30:48 -0400
Date: Mon, 22 Jul 2019 17:30:35 +0300
Message-Id: <83ftmyqgz8.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Robert Pluim <rpluim@HIDDEN>
In-reply-to: <m236iypjt4.fsf@HIDDEN> (message from Robert Pluim on Mon, 22
 Jul 2019 10:14:47 +0200)
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
 <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
 <m2wogbmnqf.fsf@HIDDEN>
 <CAOqdjBfVwDE-e7hZR_eKf1uoix8sGFWSyraW1jyFTne6bG3k=Q@HIDDEN>
 <m2sgqzmftx.fsf@HIDDEN>
 <CAOqdjBfPvNKc2fj=0nUxZ8VsDH_h+dkFnQd_srOpUxWPjvs+WQ@HIDDEN>
 <m2o91nmcc9.fsf@HIDDEN>
 <CAOqdjBfi4Oq1oHAj+xPnS8f5bhQ8ze6A1uv6iDDL9e3phB_D+g@HIDDEN>
 <m2ftmzm96e.fsf@HIDDEN>
 <CAOqdjBfO5p7hranKYnV8vUYsnFa-8kWty_cipzX0ragisQuCMw@HIDDEN>
 <m236iypjt4.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, eggert@HIDDEN, pipcet@HIDDEN
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: -3.3 (---)

> From: Robert Pluim <rpluim@HIDDEN>
> Date: Mon, 22 Jul 2019 10:14:47 +0200
> Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
> 
> >>>>> On Mon, 22 Jul 2019 03:58:29 +0000, Pip Cet <pipcet@HIDDEN> said:
> 
>     Pip> On Sun, Jul 21, 2019 at 8:20 PM Robert Pluim <rpluim@HIDDEN> wrote:
>     Pip> Can you try again with this incremental patch?
>     >> 
>     >> I offer two alternatives, both of which build and run:
> 
>     Pip> Oops, sorry. I think the second alternative might break
>     Pip> live_vector_holding, though?
> 
> OK. Here╩╝s hoping no other code in emacs tries to create a 0-length
> vector :-)

I think font.c (or fontset.c?) does.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 22 Jul 2019 08:14:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jul 22 04:14:58 2019
Received: from localhost ([127.0.0.1]:59902 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpTTG-0002rZ-1R
	for submit <at> debbugs.gnu.org; Mon, 22 Jul 2019 04:14:58 -0400
Received: from mail-wm1-f45.google.com ([209.85.128.45]:51182)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1hpTTE-0002rL-DU
 for 36649 <at> debbugs.gnu.org; Mon, 22 Jul 2019 04:14:57 -0400
Received: by mail-wm1-f45.google.com with SMTP id v15so34197913wml.0
 for <36649 <at> debbugs.gnu.org>; Mon, 22 Jul 2019 01:14:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:mail-copies-to:gmane-reply-to-list
 :date:in-reply-to:message-id:mime-version:content-transfer-encoding;
 bh=OHltutE6o3mU9mx6rEII3gMQGtBbN9mVsmq2T9LKJ4Q=;
 b=PXctSJsOUp9wccZQDi0YSbSaKr68pxoqvfC1OiLY6ob8jFmlnHRoYWE6GVGN21at+P
 lTE7nkfzUcTfdsnAMnzjYJkaOxi6XgLV/V6yhO6UVytNMn/A7gWbfpae9fsheu76HyWB
 fJCyTbn6G7z+kc2lzYWdd7ykqlInBkcoFc/HojDPXVMK9y6FbjalsMFyB+/YncRCxS/k
 uJKRUjw9X9oX7wmID3zhJyqD2IvJPi5eNEVot2enOLIqpCNeBGzOSwI3C21ibmmbP5iz
 FdNwikNFbP6rBHR8eAdSGQ4Zzcs5yn6m4Hv1P9zh55zW9iK2C3whsgvkHKJGchufv5VZ
 5PeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:mail-copies-to
 :gmane-reply-to-list:date:in-reply-to:message-id:mime-version
 :content-transfer-encoding;
 bh=OHltutE6o3mU9mx6rEII3gMQGtBbN9mVsmq2T9LKJ4Q=;
 b=B6Ez0USEPrQW7/EhLpp2R3dsXDVyteb4URS5jtWRpa4U8+YlyCgi2qTd08jD3BPisk
 rbsvkPp0JFPiIzu68b0toCd4CpVR+nmnium/E0GqgRHTIllAqE3jYwQjwq09ekj95j/T
 5guKSsIMNoELbbxU/4G5moyi/+ATtIkPSI1PXfzbV1tgZzO8kPGgoTnkMiITCb192vxg
 EH2HnkBLSQqBs4fmgg4yWSbmmbZ1R5ZXr7/Bt6eA5DWOSS9Xpd5r2j/W3fwyjr9AxsBI
 GfbJtB0IWvgPR1yUi7Z9wduuyTmKsthpEWHR4P0ewtmp3ClIOF1Y+h564eiKdxGkMTGL
 J9Ug==
X-Gm-Message-State: APjAAAWDWqCbgYYFv2idrocXDvjvjievZt6bM1bsShgUOKMEx6gHCiwJ
 osPRzu4xIKdEhcCq5jmHQR0=
X-Google-Smtp-Source: APXvYqx8g0cXgheQNUCiuXx2POvgwiohJ/fxJXp9SJtfGlYFZCaDOwl07UtR3mpMBI32z0dLzTdZUA==
X-Received: by 2002:a1c:9e4d:: with SMTP id h74mr65602648wme.9.1563783290386; 
 Mon, 22 Jul 2019 01:14:50 -0700 (PDT)
Received: from rpluim-mac ([2a01:e34:ecfc:a860:c53e:f59d:3814:6a60])
 by smtp.gmail.com with ESMTPSA id v16sm17158925wrn.28.2019.07.22.01.14.48
 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256);
 Mon, 22 Jul 2019 01:14:48 -0700 (PDT)
From: Robert Pluim <rpluim@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
 <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
 <m2wogbmnqf.fsf@HIDDEN>
 <CAOqdjBfVwDE-e7hZR_eKf1uoix8sGFWSyraW1jyFTne6bG3k=Q@HIDDEN>
 <m2sgqzmftx.fsf@HIDDEN>
 <CAOqdjBfPvNKc2fj=0nUxZ8VsDH_h+dkFnQd_srOpUxWPjvs+WQ@HIDDEN>
 <m2o91nmcc9.fsf@HIDDEN>
 <CAOqdjBfi4Oq1oHAj+xPnS8f5bhQ8ze6A1uv6iDDL9e3phB_D+g@HIDDEN>
 <m2ftmzm96e.fsf@HIDDEN>
 <CAOqdjBfO5p7hranKYnV8vUYsnFa-8kWty_cipzX0ragisQuCMw@HIDDEN>
X-Debbugs-No-Ack: yes
Mail-Copies-To: never
Gmane-Reply-To-List: yes
Date: Mon, 22 Jul 2019 10:14:47 +0200
In-Reply-To: <CAOqdjBfO5p7hranKYnV8vUYsnFa-8kWty_cipzX0ragisQuCMw@HIDDEN>
 (Pip Cet's message of "Mon, 22 Jul 2019 03:58:29 +0000")
Message-ID: <m236iypjt4.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
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 (-)

>>>>> On Mon, 22 Jul 2019 03:58:29 +0000, Pip Cet <pipcet@HIDDEN> said:

    Pip> On Sun, Jul 21, 2019 at 8:20 PM Robert Pluim <rpluim@HIDDEN> wr=
ote:
    Pip> Can you try again with this incremental patch?
    >>=20
    >> I offer two alternatives, both of which build and run:

    Pip> Oops, sorry. I think the second alternative might break
    Pip> live_vector_holding, though?

OK. Here=CA=BCs hoping no other code in emacs tries to create a 0-length
vector :-)

    Pip> Attaching an updated patch.

I put this on top of it. The result builds, runs, and is sending this
email.

diff --git i/src/image.c w/src/image.c
index 355c849491..b21dff34d4 100644
--- i/src/image.c
+++ w/src/image.c
@@ -4596,7 +4596,7 @@ xpm_make_color_table_h (void (**put_func) (Lisp_Objec=
t, const char *, int,
   *get_func =3D xpm_get_color_table_h;
   return make_hash_table (hashtest_equal, DEFAULT_HASH_SIZE,
 			  DEFAULT_REHASH_SIZE, DEFAULT_REHASH_THRESHOLD,
-			  Qnil, false);
+			  Qnil);
 }
=20
 static void




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 22 Jul 2019 03:59:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 23:59:13 2019
Received: from localhost ([127.0.0.1]:59812 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpPTl-0002iu-B2
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 23:59:13 -0400
Received: from mail-ot1-f45.google.com ([209.85.210.45]:42899)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1hpPTj-0002ii-Uf
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 23:59:12 -0400
Received: by mail-ot1-f45.google.com with SMTP id l15so38756492otn.9
 for <36649 <at> debbugs.gnu.org>; Sun, 21 Jul 2019 20:59:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=TM2kzoI2jylz9b2NsRYwaZl4rm4knLD0MhkATHz1MTQ=;
 b=NlR6NO6XU4Rj0CDnDj+YqiG8+brgUToIQVpS0u2JYamIFznrYQDHroLDa/mef9X5l3
 H6iDSr+Ge4brLuxCMQr8w1kSFD9qO/2lHRQiB4VXK4PWwu+DQYFV1cCRKSSAXjmDigSy
 hgreoF3yOpXw2B19Toq6splJbEm2s1YR6JBeVBdGpMcPsbCRZI+BY3pQkBcYnCluHGqi
 U0966YR3loSA+ox84pDYZhyk7nP9CNBBHCieDWTOMhIHeIldtBdEBzaP4lVi0/t2aPOD
 Xt5mUzvtriI5R170YUb52VwwcoFWDnkeZGwGD7qOIDvjeXUTA/EmtHbpGaJRpiy/1ICd
 WVnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=TM2kzoI2jylz9b2NsRYwaZl4rm4knLD0MhkATHz1MTQ=;
 b=beQD+/pcNuaTxqzRzjpOMFAgUu7fpJok3QOCAHOqZmBghGqm8D+BU7mozkJdDkLBDD
 BFYCGUX7bR7//oM5wgt4y7GJ3pV47tTP0yUOj3FEY4wtovmYjbHT7NC7CaPi2lvEixCK
 IG+7Tb5/bqy9veByigWInE8SRSbxB0hIidI4/l3i495fpmD8g7T4KqPKgQMrTKyV+dc4
 os6OB1guS3ggP/pk10UKeSpQEMiCKC5rprH+Thkdk9ydnmESi4CmPbEsGMLczqW5w2n/
 IOcwKYdK0v1eyncoqaTnOa3LbAFAZVR1uUOqwj+kbghSGGQT/uidvDC8lCnCyErxftAr
 axew==
X-Gm-Message-State: APjAAAXD1BtaqZM82Ewqak1NH19qdo9oW6I0Lq8kOYduTDeXuz6vosvn
 PGkr4zmueBDVqHf1yA7Cx3XRfL8tsnfcXVDX17M=
X-Google-Smtp-Source: APXvYqwNa+/jAkS2DV552MnufKcMq6FxjPp8BuZ6nEOTrDRdeJCeNDv0AVt/J2ksLHHnDK7qQWx/4xEzKGvwj0TGi0E=
X-Received: by 2002:a9d:7352:: with SMTP id l18mr46087107otk.292.1563767946198; 
 Sun, 21 Jul 2019 20:59:06 -0700 (PDT)
MIME-Version: 1.0
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
 <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
 <m2wogbmnqf.fsf@HIDDEN>
 <CAOqdjBfVwDE-e7hZR_eKf1uoix8sGFWSyraW1jyFTne6bG3k=Q@HIDDEN>
 <m2sgqzmftx.fsf@HIDDEN>
 <CAOqdjBfPvNKc2fj=0nUxZ8VsDH_h+dkFnQd_srOpUxWPjvs+WQ@HIDDEN>
 <m2o91nmcc9.fsf@HIDDEN>
 <CAOqdjBfi4Oq1oHAj+xPnS8f5bhQ8ze6A1uv6iDDL9e3phB_D+g@HIDDEN>
 <m2ftmzm96e.fsf@HIDDEN>
In-Reply-To: <m2ftmzm96e.fsf@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Date: Mon, 22 Jul 2019 03:58:29 +0000
Message-ID: <CAOqdjBfO5p7hranKYnV8vUYsnFa-8kWty_cipzX0ragisQuCMw@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
To: Robert Pluim <rpluim@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000f1e99b058e3d1896"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
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 (-)

--000000000000f1e99b058e3d1896
Content-Type: text/plain; charset="UTF-8"

On Sun, Jul 21, 2019 at 8:20 PM Robert Pluim <rpluim@HIDDEN> wrote:
>     Pip> Can you try again with this incremental patch?
>
> I offer two alternatives, both of which build and run:

Oops, sorry. I think the second alternative might break
live_vector_holding, though?

Attaching an updated patch.

--000000000000f1e99b058e3d1896
Content-Type: application/gzip; name="0001-Remove-pure-space.patch.gz"
Content-Disposition: attachment; filename="0001-Remove-pure-space.patch.gz"
Content-Transfer-Encoding: base64
Content-ID: <f_jydv0vf00>
X-Attachment-Id: f_jydv0vf00

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
SwEA
--000000000000f1e99b058e3d1896--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 20:20:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 16:20:37 2019
Received: from localhost ([127.0.0.1]:59563 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpIJw-0002Fv-6K
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 16:20:37 -0400
Received: from mail-wr1-f49.google.com ([209.85.221.49]:39371)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1hpIJu-0002Fe-AY
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 16:20:35 -0400
Received: by mail-wr1-f49.google.com with SMTP id x4so37162894wrt.6
 for <36649 <at> debbugs.gnu.org>; Sun, 21 Jul 2019 13:20:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:mail-copies-to:gmane-reply-to-list
 :date:in-reply-to:message-id:mime-version;
 bh=PYqckJMvpoKZx4jkgEfhzhoeavFJik6+h96ea7GrVe4=;
 b=kWX2HC1ui3nSpHEpKfw+J8ky5XcOkBOwwdNuKy1kvW9dm4rjuekvjwiJ3xACgvHBwt
 0N5VC8+DmE2/lM/+jyIbhw5kaaLTJkE49Vil8wQMiPVao46vzXMhG7kztlRYLQZckD5Z
 HtRws/ADE+gjwt6iU1Qe/uMzkItEvGE82rYwOq7+klYait85JwfSgaY+06CNDgEjFr4t
 UCe44C/ZRjfnQURTHCBnikYq/gLroD/0oXYxuAqxwIcFjSa6ceOEIXrLA2yOPN6mC7u4
 alOKhWXBcJQQ568x85GHMZO7QMETcCNVPPmR4WUARGD8A9uplFXXsP2EAwF88U1WrfOD
 cbHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:mail-copies-to
 :gmane-reply-to-list:date:in-reply-to:message-id:mime-version;
 bh=PYqckJMvpoKZx4jkgEfhzhoeavFJik6+h96ea7GrVe4=;
 b=SWLj+m5b6iHICmSdbujhy17ewe1sJJ80/7ij48dMNzX93b1URmudrmRb2lJolNinZ2
 +PM8MUbJGPkV3wCnB3ZK9t34vZJ/U/28FEsnisr3ZZ4jIRVxsSbu37J1mYWDmzeiT6Lc
 7vWnM2b+JJmhMoTwVx7SJoOZ4JIWj/oN6mbVQNK5iwKVKXVW1F38Jt8f9v+GiudoFwr8
 Ixr9tR7bDftBtAe0AdcSf1JMYPTqSePlIGq4GbjHIGjUzfG22EFfSkXqy2ezJftPCw6s
 BiAcm6fTtDG/Tyxh8TDU9CvnqCwpaauIX4eRC3L/DyeTkjf90oY8D62uZKTm74YbxOjl
 jNTQ==
X-Gm-Message-State: APjAAAXgbXFxYsjForexM8Kg5hRkBoh22kG/SoPwKzSapoCiXT/96ANi
 vY4aC3MD3I/yYFBhCIDnFpQ=
X-Google-Smtp-Source: APXvYqxWsp6YB4ZHloMFUqeTVNNkLgYcaaATyGjITjJGv+w2GcIb2nrDzke9jKIZFH2c582cLcOf3w==
X-Received: by 2002:a5d:4b50:: with SMTP id w16mr62579904wrs.132.1563740428343; 
 Sun, 21 Jul 2019 13:20:28 -0700 (PDT)
Received: from rpluim-mac ([2a01:e34:ecfc:a860:c53e:f59d:3814:6a60])
 by smtp.gmail.com with ESMTPSA id c78sm54367101wmd.16.2019.07.21.13.20.26
 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256);
 Sun, 21 Jul 2019 13:20:27 -0700 (PDT)
From: Robert Pluim <rpluim@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
 <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
 <m2wogbmnqf.fsf@HIDDEN>
 <CAOqdjBfVwDE-e7hZR_eKf1uoix8sGFWSyraW1jyFTne6bG3k=Q@HIDDEN>
 <m2sgqzmftx.fsf@HIDDEN>
 <CAOqdjBfPvNKc2fj=0nUxZ8VsDH_h+dkFnQd_srOpUxWPjvs+WQ@HIDDEN>
 <m2o91nmcc9.fsf@HIDDEN>
 <CAOqdjBfi4Oq1oHAj+xPnS8f5bhQ8ze6A1uv6iDDL9e3phB_D+g@HIDDEN>
X-Debbugs-No-Ack: yes
Mail-Copies-To: never
Gmane-Reply-To-List: yes
Date: Sun, 21 Jul 2019 22:20:25 +0200
In-Reply-To: <CAOqdjBfi4Oq1oHAj+xPnS8f5bhQ8ze6A1uv6iDDL9e3phB_D+g@HIDDEN>
 (Pip Cet's message of "Sun, 21 Jul 2019 19:35:01 +0000")
Message-ID: <m2ftmzm96e.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
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 (-)

>>>>> On Sun, 21 Jul 2019 19:35:01 +0000, Pip Cet <pipcet@HIDDEN> said:

    Pip> Thanks! I messed up quite badly initializing the zero vector, it turns
    Pip> out, so it was trying to initialize the first entry in the zero
    Pip> vector, which, er, obviously wasn't a good idea :-)

    Pip> Can you try again with this incremental patch?

I offer two alternatives, both of which build and run:

diff --git i/src/alloc.c w/src/alloc.c
index 1b55ad8cab..206f0ce8d7 100644
--- i/src/alloc.c
+++ w/src/alloc.c
@@ -3091,7 +3091,7 @@ #define VECTOR_ELTS_MAX \
 static struct Lisp_Vector *
 allocate_vectorlike (ptrdiff_t len)
 {
-  eassert (0 < len && len <= VECTOR_ELTS_MAX);
+  eassert (0 <= len && len <= VECTOR_ELTS_MAX);
   ptrdiff_t nbytes = header_size + len * word_size;
   struct Lisp_Vector *p;
 
@@ -3151,8 +3151,8 @@ allocate_vector (ptrdiff_t len)
 init_vectors (void)
 {
   zero_vector =
-    make_lisp_ptr (allocate_vectorlike (sizeof (struct Lisp_Vector)),
-		   Lisp_Vectorlike);
+    make_lisp_ptr (allocate_vectorlike (0), Lisp_Vectorlike);
+  XVECTOR(zero_vector)->header.size = 0;
   staticpro (&zero_vector);
 }
 

diff --git i/src/alloc.c w/src/alloc.c
index 1b55ad8cab..294aa9a2aa 100644
--- i/src/alloc.c
+++ w/src/alloc.c
@@ -3151,8 +3151,8 @@ allocate_vector (ptrdiff_t len)
 init_vectors (void)
 {
   zero_vector =
-    make_lisp_ptr (allocate_vectorlike (sizeof (struct Lisp_Vector)),
-		   Lisp_Vectorlike);
+    make_lisp_ptr (allocate_vectorlike (1), Lisp_Vectorlike);
+  XVECTOR(zero_vector)->header.size = 0;
   staticpro (&zero_vector);
 }
 




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 19:35:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 15:35:46 2019
Received: from localhost ([127.0.0.1]:59527 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpHcX-000108-PR
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 15:35:46 -0400
Received: from mail-oi1-f173.google.com ([209.85.167.173]:43570)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1hpHcV-0000zv-QH
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 15:35:44 -0400
Received: by mail-oi1-f173.google.com with SMTP id w79so28080208oif.10
 for <36649 <at> debbugs.gnu.org>; Sun, 21 Jul 2019 12:35:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=B5dlhGF02dgT5lyOXgFxsiAXV4Wt4nYLD2s5IybBKJ4=;
 b=PNzEIMfSyHqxfUezZFZB5PqCezWt1XsY1tIbdIbERwroAfHRpnvpoY5MF7n71vhbBe
 OywAHwXyUS1uWb2fLdpSVQYZiE1r+0XuNui0MayCWcMv5iZ4TSuX6+p9SXyQURibM/g7
 U6o7YchSADOOd9pO/MfNu3oVzLyI4y8RVhqA7oJZ4i4IvDjHsVzzwYwKGqUIWjdoRe4a
 msGS/MrOKg57m+xx393/ZJ7vXNDNB2ZVkm1K4JMDzEc5IZHcx6qc+GYgq4/6jZal+zMH
 dEGuk+ln8y+bfj++oG8LMJxJ/AFJbggDpJn6uvLF+pDDA7gR+2dzUnqG9w1DN/4SJ8O3
 S9hQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=B5dlhGF02dgT5lyOXgFxsiAXV4Wt4nYLD2s5IybBKJ4=;
 b=dKrhMu2qdWwmzRr9Wi5ElStVqeHT2t2SaOcpbmCYdQjvOP9KS8kC8UTzvHAvUBtC8/
 mCBlG7MJMkeB6qcu/jZUXa7+TRY+x/CpmPcxoUdRDsX7iCRwibW3zwC60zwJJqkYxox0
 o0kawzBErdqUg7pFoGWLKMozsgpkIOD1E/n0yh3gzMdVstOLsi18GodsSC+BBB2YtXR6
 h0o3rdrY2dsM0COmEyABdIHKRDUwj2SFh9h7t6z05JsFfSP4ubG6Rrp54LGMSa5SliWk
 DiQ2ns9NDPFyoGUHFBpx71Cnt0oA9nXYIs+EEksPLZUZCq9BpQ3Gc0Om/3FTszsC+3nx
 k4Rw==
X-Gm-Message-State: APjAAAXcvlQKV0qyZ4fEJ/G7+YaY03rKaSN53YzI7JyOc/Y8L1ItcEQP
 d9Fi3GXYLkwmjlHmB4yooQBjDg7WmJGjCmLZgz8=
X-Google-Smtp-Source: APXvYqwPPLJR9VxpE5lpPg3uZdliFa9UtDN+RV3ZmCMsZMGt0CwqahDI6LXnLLNHRRkWwNCB+z6WpWnu8ZkZATgRYko=
X-Received: by 2002:aca:2303:: with SMTP id e3mr28776834oie.112.1563737737862; 
 Sun, 21 Jul 2019 12:35:37 -0700 (PDT)
MIME-Version: 1.0
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
 <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
 <m2wogbmnqf.fsf@HIDDEN>
 <CAOqdjBfVwDE-e7hZR_eKf1uoix8sGFWSyraW1jyFTne6bG3k=Q@HIDDEN>
 <m2sgqzmftx.fsf@HIDDEN>
 <CAOqdjBfPvNKc2fj=0nUxZ8VsDH_h+dkFnQd_srOpUxWPjvs+WQ@HIDDEN>
 <m2o91nmcc9.fsf@HIDDEN>
In-Reply-To: <m2o91nmcc9.fsf@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Date: Sun, 21 Jul 2019 19:35:01 +0000
Message-ID: <CAOqdjBfi4Oq1oHAj+xPnS8f5bhQ8ze6A1uv6iDDL9e3phB_D+g@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
To: Robert Pluim <rpluim@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000634cf3058e361044"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
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 (-)

--000000000000634cf3058e361044
Content-Type: text/plain; charset="UTF-8"

On Sun, Jul 21, 2019 at 7:12 PM Robert Pluim <rpluim@HIDDEN> wrote:
> >>>>> On Sun, 21 Jul 2019 18:07:43 +0000, Pip Cet <pipcet@HIDDEN> said:
>     Pip> I'm not sure about debugging on macOS, but can you get a full
>     Pip> backtrace, or a core dump, or both? We're particularly interested in
>     Pip> what "i" is in mark_vectorlike.
>
> You want a lisp backtrace? I can always run under gdb if needed. As to
> 'i':
>
> (lldb) up
> frame #1: 0x000000010016dbec temacs`mark_object(arg=<unavailable>) at alloc.c:6082 [opt]
>    6079       {
>    6080         struct Lisp_Symbol *ptr = XSYMBOL (obj);
>    6081       nextsym:
> -> 6082         if (symbol_marked_p (ptr))
>    6083           break;
>    6084         CHECK_ALLOCATED_AND_LIVE_SYMBOL ();
>    6085         set_symbol_marked(ptr);
> (lldb)
> frame #2: 0x000000010016f2aa temacs`mark_vectorlike(header=0x0000000101803200) at alloc.c:5666:5 [opt]
>    5663      The distinction is used e.g. by Lisp_Process which places extra
>    5664      non-Lisp_Object fields at the end of the structure...  */
>    5665   for (i = 0; i < size; i++) /* ...and then mark its elements.  */
> -> 5666     mark_object (ptr->contents[i]);
>    5667 }
>    5668
>    5669 /* Like mark_vectorlike but optimized for char-tables (and
> (lldb) p i
> (ptrdiff_t) $0 = 0
> (lldb) p ptr->contents
> error: incomplete type 'Lisp_Object []' where a complete type is required
> (lldb) p ptr->contents[0]
> (Lisp_Object) $1 = 0x0008040000080400

Thanks! I messed up quite badly initializing the zero vector, it turns
out, so it was trying to initialize the first entry in the zero
vector, which, er, obviously wasn't a good idea :-)

Can you try again with this incremental patch?

--000000000000634cf3058e361044
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-Initialize-the-zero-vector-properly.patch"
Content-Disposition: attachment; 
	filename="0001-Initialize-the-zero-vector-properly.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jydd1vnu0>
X-Attachment-Id: f_jydd1vnu0

RnJvbSA5MTEyMTE3MDVmM2UxY2IwZmFmYjQwN2MzNjNhM2E0OTJkYzk3MDIyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaXAgQ2V0IDxwaXBjZXRAZ21haWwuY29tPgpEYXRlOiBTdW4s
IDIxIEp1bCAyMDE5IDE5OjMyOjQ5ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gSW5pdGlhbGl6ZSB0
aGUgemVybyB2ZWN0b3IgcHJvcGVybHkuCgotLS0KIHNyYy9hbGxvYy5jIHwgNCArKy0tCiAxIGZp
bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L3NyYy9hbGxvYy5jIGIvc3JjL2FsbG9jLmMKaW5kZXggZGY4YjFjYWY0ZS4uNWMxYmVjNzY2NiAx
MDA2NDQKLS0tIGEvc3JjL2FsbG9jLmMKKysrIGIvc3JjL2FsbG9jLmMKQEAgLTMxNTEsOCArMzE1
MSw4IEBAIGFsbG9jYXRlX3ZlY3RvciAocHRyZGlmZl90IGxlbikKIGluaXRfdmVjdG9ycyAodm9p
ZCkKIHsKICAgemVyb192ZWN0b3IgPQotICAgIG1ha2VfbGlzcF9wdHIgKGFsbG9jYXRlX3ZlY3Rv
cmxpa2UgKHNpemVvZiAoc3RydWN0IExpc3BfVmVjdG9yKSksCi0JCSAgIExpc3BfVmVjdG9ybGlr
ZSk7CisgICAgbWFrZV9saXNwX3B0ciAoYWxsb2NhdGVfdmVjdG9ybGlrZSAoMCksIExpc3BfVmVj
dG9ybGlrZSk7CisgIHplcm9fdmVjdG9yLT5oZWFkZXIuc2l6ZSA9IDA7CiAgIHN0YXRpY3BybyAo
Jnplcm9fdmVjdG9yKTsKIH0KIAotLSAKMi4yMi4wCgo=
--000000000000634cf3058e361044--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 19:12:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 15:12:16 2019
Received: from localhost ([127.0.0.1]:59510 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpHFn-0006Zs-Pe
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 15:12:16 -0400
Received: from mail-wm1-f66.google.com ([209.85.128.66]:39556)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1hpHFm-0006Zg-0h
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 15:12:14 -0400
Received: by mail-wm1-f66.google.com with SMTP id u25so22911499wmc.4
 for <36649 <at> debbugs.gnu.org>; Sun, 21 Jul 2019 12:12:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:mail-copies-to:gmane-reply-to-list
 :date:in-reply-to:message-id:mime-version;
 bh=SwsHpLXCUuUrL3zJ4NRgRM9dOKnnB1He+80YtSTsr+A=;
 b=hq86k1Ae+wvWoo2DRl+ALREZnYSgyQiMsxv877ZdKvbDtNJ22cYGXLsj6ZzV1QIDWE
 iQUOjLUlJtvXJ47gHpSXmwwkMlTSVzMgk5pTFvyQ/cHff/5D/2X0IgwRDzoOtHYmG92H
 D4WUvSmkH2RXcTb1RaLiJrXTzzpaP2Pj8l0pV0t0ZbAb5stGA7zWsK8YXTpVLaRSNxHK
 bT+0vOhwQ2haJ6JdqoebOfNyXimfgppEB5Ng2VVa6quaIRQta5b1Ndocg2fVAW8rArff
 YJRmA4+4h5dIMLndO07+w1L/dIFs3NsBOUqAy1iGZexPEDct1d0MkDN/25j/FPLdRYnh
 T7qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:mail-copies-to
 :gmane-reply-to-list:date:in-reply-to:message-id:mime-version;
 bh=SwsHpLXCUuUrL3zJ4NRgRM9dOKnnB1He+80YtSTsr+A=;
 b=h4IVuMEAqHfq0zS3LVhQSm4DcZdWW3njZ5/yndzsdg1m5mNgHKPVQn/GHrj6mJ1NyY
 yM01FcU+gVKJxw5luo/YdRZPRN6Z1X5IhU3uyu3AizjkJyRtKqeLdlNTFVtdfDNSC4cH
 gV17k9SlLyLJ7lWRR0M+vsAUsaaNRNpJRawpIflrGykSpQp4sIgfnuGb3AsjtlGM8ukH
 AjNeK65pW3IQAD4t88JumeNhSgkUm9kW2o7ALAyzfCXYEj8LNqV3pGoA1BkN/AqU8fVq
 v25KOXusVlUmwG5EJdGg3O7Z8VeWWIiHuljQDR0Zr/HGSK8OtDPIylMGNdMyYCcCGNrn
 6Gmg==
X-Gm-Message-State: APjAAAVYGH3CsfldxxlSdGIYZ+9NrCuxPTVhWz8y1rymCD4fEv+TTnD9
 sZMakaDuiKu1pFgexjikZuY=
X-Google-Smtp-Source: APXvYqwU3CqB4EH2HoUyl93m4jWv5JCSwJi/zhnToHdIbTq4MnKw1tYJAVsRXhqEJfaxSE07RTu2UA==
X-Received: by 2002:a05:600c:20ca:: with SMTP id
 y10mr28558703wmm.72.1563736328044; 
 Sun, 21 Jul 2019 12:12:08 -0700 (PDT)
Received: from rpluim-mac ([2a01:e34:ecfc:a860:c53e:f59d:3814:6a60])
 by smtp.gmail.com with ESMTPSA id h8sm37076646wmf.12.2019.07.21.12.12.06
 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256);
 Sun, 21 Jul 2019 12:12:07 -0700 (PDT)
From: Robert Pluim <rpluim@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
 <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
 <m2wogbmnqf.fsf@HIDDEN>
 <CAOqdjBfVwDE-e7hZR_eKf1uoix8sGFWSyraW1jyFTne6bG3k=Q@HIDDEN>
 <m2sgqzmftx.fsf@HIDDEN>
 <CAOqdjBfPvNKc2fj=0nUxZ8VsDH_h+dkFnQd_srOpUxWPjvs+WQ@HIDDEN>
X-Debbugs-No-Ack: yes
Mail-Copies-To: never
Gmane-Reply-To-List: yes
Date: Sun, 21 Jul 2019 21:12:06 +0200
In-Reply-To: <CAOqdjBfPvNKc2fj=0nUxZ8VsDH_h+dkFnQd_srOpUxWPjvs+WQ@HIDDEN>
 (Pip Cet's message of "Sun, 21 Jul 2019 18:07:43 +0000")
Message-ID: <m2o91nmcc9.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
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 (-)

>>>>> On Sun, 21 Jul 2019 18:07:43 +0000, Pip Cet <pipcet@HIDDEN> said:
    Pip> I'm not sure about debugging on macOS, but can you get a full
    Pip> backtrace, or a core dump, or both? We're particularly interested in
    Pip> what "i" is in mark_vectorlike.

You want a lisp backtrace? I can always run under gdb if needed. As to
'i':

(lldb) up
frame #1: 0x000000010016dbec temacs`mark_object(arg=<unavailable>) at alloc.c:6082 [opt]
   6079	      {
   6080		struct Lisp_Symbol *ptr = XSYMBOL (obj);
   6081	      nextsym:
-> 6082	        if (symbol_marked_p (ptr))
   6083	          break;
   6084	        CHECK_ALLOCATED_AND_LIVE_SYMBOL ();
   6085	        set_symbol_marked(ptr);
(lldb)
frame #2: 0x000000010016f2aa temacs`mark_vectorlike(header=0x0000000101803200) at alloc.c:5666:5 [opt]
   5663	     The distinction is used e.g. by Lisp_Process which places extra
   5664	     non-Lisp_Object fields at the end of the structure...  */
   5665	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
-> 5666	    mark_object (ptr->contents[i]);
   5667	}
   5668
   5669	/* Like mark_vectorlike but optimized for char-tables (and
(lldb) p i
(ptrdiff_t) $0 = 0
(lldb) p ptr->contents
error: incomplete type 'Lisp_Object []' where a complete type is required
(lldb) p ptr->contents[0]
(Lisp_Object) $1 = 0x0008040000080400

    Pip> Otherwise, the attached patch should produce (probably a lot of)
    Pip> information, the last lines of which would be interesting...

Since you broke Robert's Second Rule of printf debugging, I stuck an
extra 'mark ' on the front of the fprintf in 'mark_vectorlike' :-)

0x10320c9e0 nil
0x10320c9e0 nil
0x10320c9e0 nil
0x10321ab70 z-group
0x10320c9e0 nil
0x10321a6f0 x-frame-parameter
0x10320ca40 unbound
0x10321aba0 zero-width
0x10320c9e0 nil
0x10320c9e0 nil
0x10320ca40 unbound
mark 0
make[1]: *** [bootstrap-emacs.pdmp] Segmentation fault: 11
make: *** [src] Error 2





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 18:15:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 14:15:06 2019
Received: from localhost ([127.0.0.1]:59464 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpGMT-0002qd-NH
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 14:15:05 -0400
Received: from eggs.gnu.org ([209.51.188.92]:50456)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1hpGMR-0002pn-Aa
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 14:15:04 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:43080)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1hpGML-0001HZ-RN; Sun, 21 Jul 2019 14:14:57 -0400
Received: from [176.228.60.248] (port=3119 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1hpGML-0000s2-4A; Sun, 21 Jul 2019 14:14:57 -0400
Date: Sun, 21 Jul 2019 21:14:41 +0300
Message-Id: <83muh7qmpa.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Robert Pluim <rpluim@HIDDEN>
In-reply-to: <m2sgqzmftx.fsf@HIDDEN> (message from Robert Pluim on Sun, 21
 Jul 2019 19:56:42 +0200)
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
 <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
 <m2wogbmnqf.fsf@HIDDEN>
 <CAOqdjBfVwDE-e7hZR_eKf1uoix8sGFWSyraW1jyFTne6bG3k=Q@HIDDEN>
 <m2sgqzmftx.fsf@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, eggert@HIDDEN, pipcet@HIDDEN
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: -3.3 (---)

> From: Robert Pluim <rpluim@HIDDEN>
> Date: Sun, 21 Jul 2019 19:56:42 +0200
> Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
> 
>     Pip> That's strange. Looking at the crash backtrace again, it seems that
>     Pip> this is the initial garbage collection, when everything should be
>     Pip> pristine. I still think it dies while marking the obarray, upon
>     Pip> encountering a symbol which has somehow become corrupted...
> 
> OK. How do we go about detecting which symbol that is?

etc/DEBUG has some advice for debugging crashes inside GC.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 18:08:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 14:08:27 2019
Received: from localhost ([127.0.0.1]:59459 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpGG2-0002gY-TS
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 14:08:27 -0400
Received: from mail-ot1-f54.google.com ([209.85.210.54]:35674)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1hpGG1-0002gJ-5u
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 14:08:25 -0400
Received: by mail-ot1-f54.google.com with SMTP id j19so37884480otq.2
 for <36649 <at> debbugs.gnu.org>; Sun, 21 Jul 2019 11:08:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=LOnVyhddL2rsM1y0vyo10kZZiNHMiCXDNtUyM+sZhO0=;
 b=qK38B4sR0dbJhQlRMvQHDtjMcYbEk8grBqljlqxezi1nDPYdDfMhUaqY+kqzzWgkso
 rULKOeFtolc0vVf80MoQ8wI2YRKlT+HwNrnZWZavo4Ijx6f7jx/C6lBickSlhuSmxmi/
 8qi/g+k1UyyfhN+vegWIl9adA+o7PFNjx4YZUY4g+o65kTgEG2cu0t83s8z+GK2cD/VR
 HxRbJaj1i4b9dMacWI2NGpRbkonty2iyH1iSrhWFh+3CfQzstfsVin0vXxtfdi3kqKzU
 Mekuc2sOIJNiFZ30HzoREy3UFTtYaxmu8/PnKQkilnmzE0Ti6Kq0xS1DdFeb/uwpOPKl
 beew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=LOnVyhddL2rsM1y0vyo10kZZiNHMiCXDNtUyM+sZhO0=;
 b=g+V/5/I9Qj9YmzeNPriFLZmJo1VjwsECmajuCvTYyFQRzCdUG+s24kjNzT/lkNC8uI
 k+Yzi/3VAK18cy0IkP+w6gEoM2Zoh+S3JIpg5Pyk4fKec6zm8zWvwf7EqrcyWdouxR2f
 dE14uHxUVwoIO+1VQileTNNNLReb9e/aKI0MT1+CatBsNiCSLgK3XA4QlVVmLRLkfrOT
 cmXdueV3yPF42O7gwYhWgAr/Q5PkcLFE76N3cY1KJsVzMqvSfmkn0eS13BEwpN4vu5n5
 d1FHBFY1gFW02wTCr+Njq65r8Hkp040IL9B40Zw3Q7rAohfwCecZum7xzehHEGc4I1ON
 eYTw==
X-Gm-Message-State: APjAAAVswg+rRHmPmHI+aIfRSEgUOOHhbCVjDgsDP1yTnZz1CJXLtz03
 Msc8cqk2bTkYsr3VEiJ1eahBZxT3aognshW5GZo=
X-Google-Smtp-Source: APXvYqxK1u0wad/M3/GWgR2TLqk9Ft2rCTDd5k9XKIP6qhOiAyhDC+t52jqX29XuY8YqXBTbAAnzqqsXqckQJGuY5KI=
X-Received: by 2002:a9d:744f:: with SMTP id p15mr26353445otk.287.1563732499715; 
 Sun, 21 Jul 2019 11:08:19 -0700 (PDT)
MIME-Version: 1.0
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
 <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
 <m2wogbmnqf.fsf@HIDDEN>
 <CAOqdjBfVwDE-e7hZR_eKf1uoix8sGFWSyraW1jyFTne6bG3k=Q@HIDDEN>
 <m2sgqzmftx.fsf@HIDDEN>
In-Reply-To: <m2sgqzmftx.fsf@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Date: Sun, 21 Jul 2019 18:07:43 +0000
Message-ID: <CAOqdjBfPvNKc2fj=0nUxZ8VsDH_h+dkFnQd_srOpUxWPjvs+WQ@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
To: Robert Pluim <rpluim@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000002b7b11058e34d88e"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
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 (-)

--0000000000002b7b11058e34d88e
Content-Type: text/plain; charset="UTF-8"

On Sun, Jul 21, 2019 at 5:56 PM Robert Pluim <rpluim@HIDDEN> wrote:
> >>>>> On Sun, 21 Jul 2019 17:43:05 +0000, Pip Cet <pipcet@HIDDEN> said:
>
>     Pip> On Sun, Jul 21, 2019 at 3:06 PM Robert Pluim <rpluim@HIDDEN> wrote:
>     >> Hmm, it crashed the first time I ran make, then I got distracted, so I
>     >> ran make again later, and this time it built:
>     >>
>     >> make[2]: Nothing to be done for `all'.
>     >> ELC      char-fold.elc
>     >> freeing symbol def-tmp-var
>
>     Pip> Hmm. So it worked with the second patch, but only when you reran make?
>     Pip> That's strange. Looking at the crash backtrace again, it seems that
>     Pip> this is the initial garbage collection, when everything should be
>     Pip> pristine. I still think it dies while marking the obarray, upon
>     Pip> encountering a symbol which has somehow become corrupted...
>
> OK. How do we go about detecting which symbol that is?

I'm not sure about debugging on macOS, but can you get a full
backtrace, or a core dump, or both? We're particularly interested in
what "i" is in mark_vectorlike.

Otherwise, the attached patch should produce (probably a lot of)
information, the last lines of which would be interesting...

--0000000000002b7b11058e34d88e
Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Other-debugging-changes.patch"
Content-Disposition: attachment; 
	filename="0001-Other-debugging-changes.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jyd9xfcr0>
X-Attachment-Id: f_jyd9xfcr0

RnJvbSBmMzY2ZDY2ZTgzZDc2ZGYxZDg5ZTI2NGI0NjNhNmY5MDM0NTlkMDI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaXAgQ2V0IDxwaXBjZXRAZ21haWwuY29tPgpEYXRlOiBTdW4s
IDIxIEp1bCAyMDE5IDE4OjAzOjE3ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gT3RoZXIgZGVidWdn
aW5nIGNoYW5nZXMuCgotLS0KIHNyYy9hbGxvYy5jIHwgNyArKysrKystCiAxIGZpbGUgY2hhbmdl
ZCwgNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2FsbG9j
LmMgYi9zcmMvYWxsb2MuYwppbmRleCAxYjU1YWQ4Y2FiLi5mZTk4ZWNhMDg2IDEwMDY0NAotLS0g
YS9zcmMvYWxsb2MuYworKysgYi9zcmMvYWxsb2MuYwpAQCAtNTY2Myw3ICs1NjYzLDEwIEBAIG1h
cmtfdmVjdG9ybGlrZSAodW5pb24gdmVjdG9ybGlrZV9oZWFkZXIgKmhlYWRlcikKICAgICAgVGhl
IGRpc3RpbmN0aW9uIGlzIHVzZWQgZS5nLiBieSBMaXNwX1Byb2Nlc3Mgd2hpY2ggcGxhY2VzIGV4
dHJhCiAgICAgIG5vbi1MaXNwX09iamVjdCBmaWVsZHMgYXQgdGhlIGVuZCBvZiB0aGUgc3RydWN0
dXJlLi4uICAqLwogICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSAvKiAuLi5hbmQgdGhlbiBt
YXJrIGl0cyBlbGVtZW50cy4gICovCi0gICAgbWFya19vYmplY3QgKHB0ci0+Y29udGVudHNbaV0p
OworICAgIHsKKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVkXG4iLCAoaW50KWkpOworICAgICAg
bWFya19vYmplY3QgKHB0ci0+Y29udGVudHNbaV0pOworICAgIH0KIH0KIAogLyogTGlrZSBtYXJr
X3ZlY3Rvcmxpa2UgYnV0IG9wdGltaXplZCBmb3IgY2hhci10YWJsZXMgKGFuZApAQCAtNjA3OSw2
ICs2MDgyLDggQEAgI2RlZmluZSBDSEVDS19BTExPQ0FURURfQU5EX0xJVkVfU1lNQk9MKCkJKCh2
b2lkKSAwKQogICAgICAgewogCXN0cnVjdCBMaXNwX1N5bWJvbCAqcHRyID0gWFNZTUJPTCAob2Jq
KTsKICAgICAgIG5leHRzeW06CisJaWYgKCFOSUxQIChwdHItPnUucy5uYW1lKSkKKwkgIGZwcmlu
dGYgKHN0ZGVyciwgIiVwICVzXG4iLCBwdHIsIFNEQVRBIChwdHItPnUucy5uYW1lKSk7CiAgICAg
ICAgIGlmIChzeW1ib2xfbWFya2VkX3AgKHB0cikpCiAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IENIRUNLX0FMTE9DQVRFRF9BTkRfTElWRV9TWU1CT0wgKCk7Ci0tIAoyLjIyLjAKCg==
--0000000000002b7b11058e34d88e--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 17:56:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 13:56:51 2019
Received: from localhost ([127.0.0.1]:59455 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpG4o-0000ET-Qy
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 13:56:51 -0400
Received: from mail-wr1-f54.google.com ([209.85.221.54]:43003)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1hpG4n-0000EF-KK
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 13:56:49 -0400
Received: by mail-wr1-f54.google.com with SMTP id x1so22024024wrr.9
 for <36649 <at> debbugs.gnu.org>; Sun, 21 Jul 2019 10:56:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:mail-copies-to:gmane-reply-to-list
 :date:in-reply-to:message-id:mime-version;
 bh=ok6Ith4y4PdKNocWPFQfkUCX4PiGt1cR+koHlxQlbeE=;
 b=G6z/DF2azrpr8C/e3cygn37Ey+l8yWPqGoF7TMg/6xt/8mP/nbyLOks1RB4+urJnYl
 adp7pJRmk2ojD4EkTkG3xWesnww21VE72WL1cBQ9CFQYeQUfx+hY3KleOYNiypsytWiN
 pxJFw8+uoBivg0s7GhTvHmfUjMGO36uEQIfMjhMpRWcgVw2xEk87IOHXlvvza+FIA9Pn
 hKM+tQpc1sNRzxn9qVNxiVZPO1bo61IqZ7AsDsrbMZPIzXxKgaAmko0L9YDdWrwGUSqX
 c3SwqjmHIBbxXpi7Bxsn9JEPpUtzZwZx6dq3mlxXAXhu4sBHeK7fv2yMTG6Y+EUE7qFQ
 hZYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:mail-copies-to
 :gmane-reply-to-list:date:in-reply-to:message-id:mime-version;
 bh=ok6Ith4y4PdKNocWPFQfkUCX4PiGt1cR+koHlxQlbeE=;
 b=e4zOlhgmrsrqXZSBpZEYMzTEmDAIQcp81qVShz8xHi27akZLVj2cVrjipchegMYbTu
 Du3RLVPD2+rjXR9GSmFQsWwQi8pdx9+l+GzNm8+rfiV6parC1J63p+JVum/QXfFuI0U6
 RZYv/aly4OxTT+kn7OeY0NKpqAwqTJ2sY39pWwOwgkWMtspM7gkpWzTvzE4vIK/DSfiu
 +kDYwprYVwMxoeQBnD6u06dCXjEVlu7srCJn0owCN2iujIUBdCua3vbBdTXfj5S6dvl1
 9Of0CJ+YrcfMnSP2Kic1R+WVVjs9ZVSAbSwDLcm/ySH+rpg+b7ZlqqD3dG9TCztEVJiY
 qVNQ==
X-Gm-Message-State: APjAAAUWZ9P4yn+CdG3+hIYrvEHO1lzd9AGoHI6ETNhif/VFInqOWJ43
 VjbLGsyEGUOJClq8eoSf6WM=
X-Google-Smtp-Source: APXvYqz2HW2I2iRvdiXYz5Gtlt+1+O862SlgUptG8JTn2vE1IevqYj467hep59hs9OwxpyD/v4EG7g==
X-Received: by 2002:a5d:428b:: with SMTP id k11mr38702603wrq.174.1563731803658; 
 Sun, 21 Jul 2019 10:56:43 -0700 (PDT)
Received: from rpluim-mac ([2a01:e34:ecfc:a860:c53e:f59d:3814:6a60])
 by smtp.gmail.com with ESMTPSA id l8sm66224175wrg.40.2019.07.21.10.56.42
 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256);
 Sun, 21 Jul 2019 10:56:42 -0700 (PDT)
From: Robert Pluim <rpluim@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
 <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
 <m2wogbmnqf.fsf@HIDDEN>
 <CAOqdjBfVwDE-e7hZR_eKf1uoix8sGFWSyraW1jyFTne6bG3k=Q@HIDDEN>
X-Debbugs-No-Ack: yes
Mail-Copies-To: never
Gmane-Reply-To-List: yes
Date: Sun, 21 Jul 2019 19:56:42 +0200
In-Reply-To: <CAOqdjBfVwDE-e7hZR_eKf1uoix8sGFWSyraW1jyFTne6bG3k=Q@HIDDEN>
 (Pip Cet's message of "Sun, 21 Jul 2019 17:43:05 +0000")
Message-ID: <m2sgqzmftx.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
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 (-)

>>>>> On Sun, 21 Jul 2019 17:43:05 +0000, Pip Cet <pipcet@HIDDEN> said:

    Pip> On Sun, Jul 21, 2019 at 3:06 PM Robert Pluim <rpluim@HIDDEN> wrote:
    >> Hmm, it crashed the first time I ran make, then I got distracted, so I
    >> ran make again later, and this time it built:
    >> 
    >> make[2]: Nothing to be done for `all'.
    >> ELC      char-fold.elc
    >> freeing symbol def-tmp-var

    Pip> Hmm. So it worked with the second patch, but only when you reran make?
    Pip> That's strange. Looking at the crash backtrace again, it seems that
    Pip> this is the initial garbage collection, when everything should be
    Pip> pristine. I still think it dies while marking the obarray, upon
    Pip> encountering a symbol which has somehow become corrupted...

OK. How do we go about detecting which symbol that is?

Robert




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 17:43:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 13:43:49 2019
Received: from localhost ([127.0.0.1]:59423 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpFsD-0008J0-Mh
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 13:43:49 -0400
Received: from mail-ot1-f47.google.com ([209.85.210.47]:43969)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1hpFsB-0008Il-BG
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 13:43:48 -0400
Received: by mail-ot1-f47.google.com with SMTP id j11so13568984otp.10
 for <36649 <at> debbugs.gnu.org>; Sun, 21 Jul 2019 10:43:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=i9VIOhCCXWSSVnuT1r+ltnJoyAqpWxcZniYZnhq+gZI=;
 b=ux8La9ulP4IOZ3kR2PHQhMLw+mYCIsK5oGb38HSc3RMo06+390bAu851dHQ4lzksPb
 X5ctw6Q2MMSF3H42yUZPKCZGeIXs+yfZRbDJ07WE17NEvxwfitHZ2tQAlrvcZCvivGUO
 a04Uf7w04Ao7OVvzNHgUsh6wXjQ40MBg0lZKYk9Fi5XF1q9Q49YNM99VYGr0R3d1Vhy9
 8wtPh1cl2I4P9jyPzybYRmed7CB24yuMfH1gOWwQ7lKUoCXUoV7/xiOeBTu/fYhjmkAV
 Cu0l5dIkymHp8rh2jUqT9VF70AMATpag7GBtnY+OaoWD3NEMajgy99vGbOGOXi1bK+vG
 nxlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=i9VIOhCCXWSSVnuT1r+ltnJoyAqpWxcZniYZnhq+gZI=;
 b=AvuVDvzX+q/Nh8cRGzbPU/wiKxmnkp50z+8erWwPwEIEfzqPYsgyuQRAU40vCwwX9D
 nOcXt8+u55u7ZQYLDWCDODDEmHa1hITIROF5de3yOwQ2RlVCum/Od/yTpERMOkA0DQWF
 uUrj1mMeKMiw0I8a9sT43rEaE5LDUuWHvypHMSictEFQK33JTKVgfRMmMk2sXFl2VUMy
 pkqTReIaVpBGG9jAU2IyirDTtDu/YXzGRa3CcX//RSjmV/G6A+FtaYLUrxG8W8p9gOrP
 pdZ2zL7YruAB/ba/6KNKvWX+/xQOUzwSvs19LPBPVCtMPRWJ795naEM+lpejv0ftMA8V
 OaaA==
X-Gm-Message-State: APjAAAVrGkQE29HD7c1hbVK0/Q91Mbvz70EvkVl5dhm2d9DuqTM0NNHt
 TpUoMJjpFvO0cAfGlwCJhHb+hbaG9LmSf6JSFbI=
X-Google-Smtp-Source: APXvYqxE+xOMkIItfUVEeT5UdEVg/F06zvDmbuJKXcCaf4TSHDt7r8ll0WPq9BRChvsXPSTrxhWl/n2X4SEcphU4spk=
X-Received: by 2002:a9d:664c:: with SMTP id q12mr41407360otm.175.1563731021730; 
 Sun, 21 Jul 2019 10:43:41 -0700 (PDT)
MIME-Version: 1.0
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
 <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
 <m2wogbmnqf.fsf@HIDDEN>
In-Reply-To: <m2wogbmnqf.fsf@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Date: Sun, 21 Jul 2019 17:43:05 +0000
Message-ID: <CAOqdjBfVwDE-e7hZR_eKf1uoix8sGFWSyraW1jyFTne6bG3k=Q@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
To: Robert Pluim <rpluim@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
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 (-)

On Sun, Jul 21, 2019 at 3:06 PM Robert Pluim <rpluim@HIDDEN> wrote:

> Hmm, it crashed the first time I ran make, then I got distracted, so I
> ran make again later, and this time it built:
>
> make[2]: Nothing to be done for `all'.
>   ELC      char-fold.elc
> freeing symbol def-tmp-var

Hmm. So it worked with the second patch, but only when you reran make?
That's strange. Looking at the crash backtrace again, it seems that
this is the initial garbage collection, when everything should be
pristine. I still think it dies while marking the obarray, upon
encountering a symbol which has somehow become corrupted...




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 15:06:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 11:06:14 2019
Received: from localhost ([127.0.0.1]:59297 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpDPi-0006KW-5W
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 11:06:14 -0400
Received: from mail-wm1-f52.google.com ([209.85.128.52]:35436)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1hpDPd-0006KE-J3
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 11:06:12 -0400
Received: by mail-wm1-f52.google.com with SMTP id l2so32981064wmg.0
 for <36649 <at> debbugs.gnu.org>; Sun, 21 Jul 2019 08:06:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:mail-copies-to:gmane-reply-to-list
 :date:in-reply-to:message-id:mime-version:content-transfer-encoding;
 bh=2mWvbYZlJIE4pge4GIi+QjuJhkTE/1BZlrrwRQaRXb8=;
 b=QA17vpA9FlLGzogKFTiG9RresMx9Irwu9jwMQ2enOY2RC9hEfWebEmjSv4iefFcP2f
 FVnFl+LSjW2Juk0IceT4WrYS4ljiS2dcimDgb45CwsOw9Y+NCA1+tLRLCW72a7GriTQr
 MLZVKUUZIfWSDqWaICRNEGHzw2OKgrkrzLT4+ithIoqO78x29cnHQ8lEYNmDHkRMmKz/
 YNhTMR88+PhU8PfgCq8znkhphQhk6nUVAXAxFwV9WV2qwpTip9Eh/oNdQl+LKCptOmnq
 n22tqjIpNXOs+j7CqggQjmsgQkFYzselQuZBkxo2Mt4q3uBs9kbDao7OX9wG7QAbq2Vc
 c4hg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:mail-copies-to
 :gmane-reply-to-list:date:in-reply-to:message-id:mime-version
 :content-transfer-encoding;
 bh=2mWvbYZlJIE4pge4GIi+QjuJhkTE/1BZlrrwRQaRXb8=;
 b=JVmmyBoDu8R+CM8NPvgBMl4Eqi9gtLDabWwp4NCK1UWaLna2xTnupnD0UKT48IRTmG
 c8pA8gbvOtXd0uyvodM5Veak5AME8IXLcfrh944UhOxU2xQFD9KT7I2xmL4KB/36lEWK
 gaHMmOtzc1zdF3Ph6HYAN/RN4awUlHi6FzKjpSutYUg0ZA/iKACoiV+d6wA/vzEP+fFM
 mCiyWSCGxuz6sQn+NvVPpvJ3ajOTvFWYykWcB5QataiBUiWIi454DT/AxOuxwKl3x8m/
 Kupbo2tSTNYAaWAmVH3s5RBS4ffWNEl+VAUhxN4vprd9849g4BvvVcsMLKKo1qJHqe50
 9OGQ==
X-Gm-Message-State: APjAAAWcE42IkVy9aSV0lnPdycu4UR36QIuTsWg916oM2Wy+Jr9XnFwA
 6BeXZOX9+pMtnyw039d1ipk=
X-Google-Smtp-Source: APXvYqy3c8iFkz46CN+KBaEQUAAB/kWvlxmkA5l24RcvxYrAVfG+1ZhK5VDcNftMDHUuIDYlW72Ebg==
X-Received: by 2002:a1c:63d7:: with SMTP id x206mr60071802wmb.19.1563721562912; 
 Sun, 21 Jul 2019 08:06:02 -0700 (PDT)
Received: from rpluim-mac ([2a01:e34:ecfc:a860:c53e:f59d:3814:6a60])
 by smtp.gmail.com with ESMTPSA id l8sm65384727wrg.40.2019.07.21.08.06.01
 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256);
 Sun, 21 Jul 2019 08:06:01 -0700 (PDT)
From: Robert Pluim <rpluim@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
 <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
X-Debbugs-No-Ack: yes
Mail-Copies-To: never
Gmane-Reply-To-List: yes
Date: Sun, 21 Jul 2019 17:06:00 +0200
In-Reply-To: <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
 (Pip Cet's message of "Sun, 21 Jul 2019 14:36:41 +0000")
Message-ID: <m2wogbmnqf.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
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 (-)

>>>>> On Sun, 21 Jul 2019 14:36:41 +0000, Pip Cet <pipcet@HIDDEN> said:

    Pip> On Sun, Jul 21, 2019 at 1:44 PM Robert Pluim <rpluim@HIDDEN> wr=
ote:
    >> >>>>> On Sun, 21 Jul 2019 12:53:21 +0000, Pip Cet <pipcet@HIDDEN>=
 said:
    Pip> I think we should do (1) for now, since it simplifies the code eno=
ugh
    Pip> to introduce immutable objects "soon"; but until that time, we was=
te
    Pip> more space on duplicate objects that we no longer know to be
    Pip> immutable, so cannot merge.
    >>=20
    Pip> I'm attaching a first patch that removes pure space, pinned symbol=
s,
    Pip> pinned objects, but keeps Fpurecopy (for hash consing), and doesn't
    Pip> touch the Lisp codebase.
    >>=20
    >> This doesn=CA=BCt build for me on macOS. After adjusting the paramet=
ers to
    >> the call to make_hash_table in image.c, it crashes when dumping:

    Pip> Thanks for testing! Indeed, I'd only verified it builds here.

    Pip> My first guess is there's a symbol in the obarray which used to be
    Pip> pinned, but is now collected before it is interned.

    Pip> Can you try with the attached patch relative to the one I'd sent
    Pip> before, and see what the output is?

Hmm, it crashed the first time I ran make, then I got distracted, so I
ran make again later, and this time it built:

make[2]: Nothing to be done for `all'.
  ELC      char-fold.elc
freeing symbol def-tmp-var




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 14:37:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 10:37:25 2019
Received: from localhost ([127.0.0.1]:59256 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpCxp-0001II-5o
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 10:37:25 -0400
Received: from mail-oi1-f170.google.com ([209.85.167.170]:44380)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1hpCxn-0001I5-Av
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 10:37:23 -0400
Received: by mail-oi1-f170.google.com with SMTP id e189so27675302oib.11
 for <36649 <at> debbugs.gnu.org>; Sun, 21 Jul 2019 07:37:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=98XvsXihjWDyCXP1fxjvhJTEFQBvjRWO1UUsNpa/zwM=;
 b=QOxrUWNMBVBFbhlGEVDqkAYxxzwWz+z4hJxyXwVz5BkPjdeyWNTY81I1q6vfFQhVp7
 u0NTU35ENmoPHERrzsfKSHHwPvK4jr0rI3TYaSc4rwZYhw5ON0YQC2+vCfIkkMoMp/GY
 97gU5vn+8KhEPO943zn/zfSLVRHkEaaWI8bSr9NzuirHhAfBZRqicFNnCD+AAi7ygXRX
 BDGbmTWqj1HyAU+5SYotJY7KAj6ARhXTM01Fv4L7+sBzyCjonSBJOZZQA8bkFbceic/z
 biAhUkECs+EGeNu5//pBFKQA09ree60R4NkXxyZq4JjWLGLBno34Dhex3O1EqMYLRPNt
 /mbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=98XvsXihjWDyCXP1fxjvhJTEFQBvjRWO1UUsNpa/zwM=;
 b=hnbLMaUYPTnir9HfDiEcEd2UyVacbvb+pYQ12S4hrJTxS2U9y4pdKIJcAc9cMnq/b2
 m/yod8QbZeePAcLZDshNE2iLpEAjguGYhQMtoHwpQPhvzk7fCF/BwlUJF+3ZdUoPVQpx
 JZ1D+4rOD/2QsAS1IBzcXV4hjI3o1amZ1cbkXZRvZWnychu9KvuvbuHPV5Fvagf9KQZU
 Kx/wPERGLGbXafyd/tVzKGjsmIsfLGlct9FjmmW37TRgQvXhHjPfhZd33swN/NGB8gy6
 JqtLmqqeqT0/heSuU9yVngtKGQV/wGN7+nC+p+CZpfHt24OVSMshNRfLPKMe27ldjsat
 2q8Q==
X-Gm-Message-State: APjAAAWYFPU3bZ77bwTrMZHsqQRnRe0R4HXOjNjwbSGYWuy3Bh3sWMbU
 6PkoYj4Ki7sx4U4a1xV/Enxxliprk35bNG96p8Y=
X-Google-Smtp-Source: APXvYqyCCJFDpj/GWg659s9hFuZvVOle6wNvQY+PXgP+BClnuuV9+ln0QBUeLqAXQ84kPpyqVfg/c4YcquQps20S/FQ=
X-Received: by 2002:a05:6808:313:: with SMTP id
 i19mr31018355oie.30.1563719837675; 
 Sun, 21 Jul 2019 07:37:17 -0700 (PDT)
MIME-Version: 1.0
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 <m21ryjo624.fsf@HIDDEN>
In-Reply-To: <m21ryjo624.fsf@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Date: Sun, 21 Jul 2019 14:36:41 +0000
Message-ID: <CAOqdjBcXoYick-UbTv+D=TaeHCOG5WAamGnyqpyLTKwPOzVqOg@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
To: Robert Pluim <rpluim@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000741940058e31e5ff"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
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 (-)

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

On Sun, Jul 21, 2019 at 1:44 PM Robert Pluim <rpluim@HIDDEN> wrote:
> >>>>> On Sun, 21 Jul 2019 12:53:21 +0000, Pip Cet <pipcet@HIDDEN> said=
:
>     Pip> I think we should do (1) for now, since it simplifies the code e=
nough
>     Pip> to introduce immutable objects "soon"; but until that time, we w=
aste
>     Pip> more space on duplicate objects that we no longer know to be
>     Pip> immutable, so cannot merge.
>
>     Pip> I'm attaching a first patch that removes pure space, pinned symb=
ols,
>     Pip> pinned objects, but keeps Fpurecopy (for hash consing), and does=
n't
>     Pip> touch the Lisp codebase.
>
> This doesn=CA=BCt build for me on macOS. After adjusting the parameters t=
o
> the call to make_hash_table in image.c, it crashes when dumping:

Thanks for testing! Indeed, I'd only verified it builds here.

My first guess is there's a symbol in the obarray which used to be
pinned, but is now collected before it is interned.

Can you try with the attached patch relative to the one I'd sent
before, and see what the output is?

--000000000000741940058e31e5ff
Content-Type: text/x-patch; charset="US-ASCII"; name="0001-debugging-changes.patch"
Content-Disposition: attachment; filename="0001-debugging-changes.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jyd2e5nt0>
X-Attachment-Id: f_jyd2e5nt0

RnJvbSA0NWU4ZjdiZGJiYTQzZjYyN2IzOTk1NzM2NmI3MGRjYmRjNjU3NWE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaXAgQ2V0IDxwaXBjZXRAZ21haWwuY29tPgpEYXRlOiBTdW4s
IDIxIEp1bCAyMDE5IDE0OjM1OjA0ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gZGVidWdnaW5nIGNo
YW5nZXMKCi0tLQogc3JjL2FsbG9jLmMgfCAzICsrLQogc3JjL2ltYWdlLmMgfCAyICstCiAyIGZp
bGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9zcmMvYWxsb2MuYyBiL3NyYy9hbGxvYy5jCmluZGV4IGRmOGIxY2FmNGUuLjFiNTVhZDhjYWIg
MTAwNjQ0Ci0tLSBhL3NyYy9hbGxvYy5jCisrKyBiL3NyYy9hbGxvYy5jCkBAIC02NDI4LDYgKzY0
MjgsNyBAQCBzd2VlcF9zeW1ib2xzICh2b2lkKQogICAgICAgICB7CiAgICAgICAgICAgaWYgKCFz
eW0tPnUucy5nY21hcmtiaXQpCiAgICAgICAgICAgICB7CisJICAgICAgZnByaW50ZiAoc3RkZXJy
LCAiZnJlZWluZyBzeW1ib2wgJXNcbiIsIFNEQVRBIChzeW0tPnUucy5uYW1lKSk7CiAgICAgICAg
ICAgICAgIGlmIChzeW0tPnUucy5yZWRpcmVjdCA9PSBTWU1CT0xfTE9DQUxJWkVEKQogCQl7CiAg
ICAgICAgICAgICAgICAgICB4ZnJlZSAoU1lNQk9MX0JMViAoc3ltKSk7CkBAIC02NTE5LDEyICs2
NTIwLDEyIEBAIHN3ZWVwX2J1ZmZlcnMgKHZvaWQpCiBzdGF0aWMgdm9pZAogZ2Nfc3dlZXAgKHZv
aWQpCiB7CisgIHN3ZWVwX3N5bWJvbHMgKCk7CiAgIHN3ZWVwX3N0cmluZ3MgKCk7CiAgIGNoZWNr
X3N0cmluZ19ieXRlcyAoIW5vbmludGVyYWN0aXZlKTsKICAgc3dlZXBfY29uc2VzICgpOwogICBz
d2VlcF9mbG9hdHMgKCk7CiAgIHN3ZWVwX2ludGVydmFscyAoKTsKLSAgc3dlZXBfc3ltYm9scyAo
KTsKICAgc3dlZXBfYnVmZmVycyAoKTsKICAgc3dlZXBfdmVjdG9ycyAoKTsKICAgcGR1bXBlcl9j
bGVhcl9tYXJrcyAoKTsKZGlmZiAtLWdpdCBhL3NyYy9pbWFnZS5jIGIvc3JjL2ltYWdlLmMKaW5k
ZXggMzU1Yzg0OTQ5MS4uYjIxZGZmMzRkNCAxMDA2NDQKLS0tIGEvc3JjL2ltYWdlLmMKKysrIGIv
c3JjL2ltYWdlLmMKQEAgLTQ1OTYsNyArNDU5Niw3IEBAIHhwbV9tYWtlX2NvbG9yX3RhYmxlX2gg
KHZvaWQgKCoqcHV0X2Z1bmMpIChMaXNwX09iamVjdCwgY29uc3QgY2hhciAqLCBpbnQsCiAgICpn
ZXRfZnVuYyA9IHhwbV9nZXRfY29sb3JfdGFibGVfaDsKICAgcmV0dXJuIG1ha2VfaGFzaF90YWJs
ZSAoaGFzaHRlc3RfZXF1YWwsIERFRkFVTFRfSEFTSF9TSVpFLAogCQkJICBERUZBVUxUX1JFSEFT
SF9TSVpFLCBERUZBVUxUX1JFSEFTSF9USFJFU0hPTEQsCi0JCQkgIFFuaWwsIGZhbHNlKTsKKwkJ
CSAgUW5pbCk7CiB9CiAKIHN0YXRpYyB2b2lkCi0tIAoyLjIyLjAKCg==
--000000000000741940058e31e5ff--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 13:45:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 09:45:02 2019
Received: from localhost ([127.0.0.1]:58241 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpC98-0003ut-3z
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 09:45:02 -0400
Received: from mail-wr1-f42.google.com ([209.85.221.42]:45525)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1hpC96-0003uO-9K
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 09:45:00 -0400
Received: by mail-wr1-f42.google.com with SMTP id f9so36635498wre.12
 for <36649 <at> debbugs.gnu.org>; Sun, 21 Jul 2019 06:45:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:mail-copies-to:gmane-reply-to-list
 :date:in-reply-to:message-id:mime-version:content-transfer-encoding;
 bh=h88p0JVhhD/SFKZ0GmKxrRojxz1j/bPv/ghIh/pNpLU=;
 b=YgGuhceSujuk+1qYhrvYMWtoNPI8Ln57QFeksTx7F7rBy+j6wPjsd2Ag66cwEbXLfk
 Y935rGZ/dKgg9EogyzeKaqEMSAAmTyaF7QhWVDd35cmIOytZOHyTWq65RJHIY1R0HjOX
 9IJPdXGvUDhyCiQ/oOzc01ia9O1GLt881yrY/Qxt6CV1SeyZ9OK8NAlak+Po3J9n5LPi
 mF00wHe9pA/9i4qJq1PSysUvqwPzfMzEQUpqgTp6BNhR5zbsWY7q+C3goX9i1rWzu33B
 aX2M97nUFyAIpwjBpzwaUh9VGIsfwjDBGoAVZckbOlIorJ5VjgMSmUzEvBEvD874dJn3
 6cbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:mail-copies-to
 :gmane-reply-to-list:date:in-reply-to:message-id:mime-version
 :content-transfer-encoding;
 bh=h88p0JVhhD/SFKZ0GmKxrRojxz1j/bPv/ghIh/pNpLU=;
 b=XmFS+Kr26Pb30P3CpGTQ1eTBO726ujv7pAhUTC+NIJH2NMfSRFbXWml7BetK3ZJpZ4
 oMtkXcU79o6BCqtF7aJrm8JBINDDYo+24YzU8eR+yHHov9sipP41H1kFUK2DYkpoCC0p
 PiI9rPMYSPqBVvam6jRDe8lJ/6UoBfA1m6Nv79fUE12pkfF94Ls3yIHHWKjHr/BXggR4
 cNRYQxf5WMC/Y+ZhWJIDbksW+bmfrQCUb2UDLPyAI+qOkyvoVJyqBOY8MDx5sTrRW8rw
 jba1l6Sxaqs2+uO2+yoozMi9AN0A0n9h+j8U6ER1uqA0V/rzTauEOiEAIB3Qmnocv9qF
 Qqlg==
X-Gm-Message-State: APjAAAV91SRB4LXn07AuC+Ee67yyD8DgWd000QRX3NY+wZVeZ1zH3xIx
 iEXhAlRK8pRWru18Gau3mkY28sKp
X-Google-Smtp-Source: APXvYqyAl4sEp9EYi9dmher00DQF1WlasRqPuLIB0uLA7oZoySFvZ7Sytv2usr6Johf9lSTioQzRow==
X-Received: by 2002:adf:e483:: with SMTP id i3mr28563306wrm.210.1563716693809; 
 Sun, 21 Jul 2019 06:44:53 -0700 (PDT)
Received: from rpluim-mac ([2a01:e34:ecfc:a860:c53e:f59d:3814:6a60])
 by smtp.gmail.com with ESMTPSA id c6sm34347717wma.25.2019.07.21.06.44.52
 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256);
 Sun, 21 Jul 2019 06:44:52 -0700 (PDT)
From: Robert Pluim <rpluim@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
 <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
X-Debbugs-No-Ack: yes
Mail-Copies-To: never
Gmane-Reply-To-List: yes
Date: Sun, 21 Jul 2019 15:44:51 +0200
In-Reply-To: <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
 (Pip Cet's message of "Sun, 21 Jul 2019 12:53:21 +0000")
Message-ID: <m21ryjo624.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org, Paul Eggert <eggert@HIDDEN>
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 (-)

>>>>> On Sun, 21 Jul 2019 12:53:21 +0000, Pip Cet <pipcet@HIDDEN> said:
    Pip> I think we should do (1) for now, since it simplifies the code eno=
ugh
    Pip> to introduce immutable objects "soon"; but until that time, we was=
te
    Pip> more space on duplicate objects that we no longer know to be
    Pip> immutable, so cannot merge.

    Pip> I'm attaching a first patch that removes pure space, pinned symbol=
s,
    Pip> pinned objects, but keeps Fpurecopy (for hash consing), and doesn't
    Pip> touch the Lisp codebase.

This doesn=CA=BCt build for me on macOS. After adjusting the parameters to
the call to make_hash_table in image.c, it crashes when dumping:

make[1]: Nothing to be done for `charscript.el'.
rm -f bootstrap-emacs.pdmp
./temacs --batch  -l loadup --temacs=3Dpbootstrap
make: *** [bootstrap-emacs.pdmp] Segmentation fault: 11


* thread #1, queue =3D 'com.apple.main-thread', stop reason =3D EXC_BAD_ACC=
ESS (code=3DEXC_I386_GPFLT)
    frame #0: 0x000000010016dc70 temacs`mark_object [inlined] symbol_marked=
_p(s=3D0x00080401003fdde0) at alloc.c:3741:14 [opt]
   3738	{
   3739	  return pdumper_object_p (s)
   3740	    ? pdumper_marked_p (s)
-> 3741	    : s->u.s.gcmarkbit;
   3742	}
   3743

* thread #1, queue =3D 'com.apple.main-thread', stop reason =3D EXC_BAD_ACC=
ESS (code=3DEXC_I386_GPFLT)
  * frame #0: 0x000000010016dc70 temacs`mark_object [inlined] symbol_marked=
_p(s=3D0x00080401003fdde0) at alloc.c:3741:14 [opt]
    frame #1: 0x000000010016dc4c temacs`mark_object(arg=3D<unavailable>) at=
 alloc.c:6082 [opt]
    frame #2: 0x000000010016f30a temacs`mark_vectorlike(header=3D0x00000001=
01804000) at alloc.c:5666:5 [opt]
    frame #3: 0x000000010016d6e0 temacs`mark_object(arg=3D<unavailable>) at=
 alloc.c:5607:1 [opt] [artificial]
    frame #4: 0x000000010016c4cc temacs`garbage_collect_1 [inlined] mark_ob=
ject_root_visitor(root_ptr=3D<unavailable>, type=3DGC_ROOT_STATICPRO) at al=
loc.c:5303:3 [opt]
    frame #5: 0x000000010016c4c4 temacs`garbage_collect_1 at alloc.c:5295 [=
opt]
    frame #6: 0x000000010016c34f temacs`garbage_collect_1(gcst=3D0x00007ffe=
efbff248) at alloc.c:5427 [opt]
    frame #7: 0x000000010016c114 temacs`garbage_collect at alloc.c:5551:3 [=
opt]
    frame #8: 0x000000010019b836 temacs`eval_sub [inlined] maybe_gc at lisp=
.h:4974:5 [opt]
    frame #9: 0x000000010019b824 temacs`eval_sub(form=3D0x000000010302e843)=
 at eval.c:2166 [opt]
    frame #10: 0x00000001001a023a temacs`Feval(form=3D0x000000010302e843, l=
exical=3D<unavailable>) at eval.c:2089:28 [opt]
    frame #11: 0x000000010019f082 temacs`internal_condition_case(bfun=3D(te=
macs`top_level_2 at keyboard.c:1099), handlers=3D0x0000000000000090, hfun=
=3D(temacs`cmd_error at keyboard.c:919)) at eval.c:1347:25 [opt]
    frame #12: 0x00000001001107ed temacs`top_level_1(ignore=3D<unavailable>=
) at keyboard.c:1108:5 [opt]
    frame #13: 0x000000010019e617 temacs`internal_catch(tag=3D0x00000000000=
0c420, func=3D(temacs`top_level_1 at keyboard.c:1105), arg=3D0x000000000000=
0000) at eval.c:1108:25 [opt]
    frame #14: 0x00000001000fc16f temacs`command_loop at keyboard.c:1069:2 =
[opt]
    frame #15: 0x00000001000fc093 temacs`recursive_edit_1 at keyboard.c:714=
:9 [opt]
    frame #16: 0x00000001000fc3ac temacs`Frecursive_edit at keyboard.c:786:=
3 [opt]
    frame #17: 0x00000001000fa9b1 temacs`main(argc=3D<unavailable>, argv=3D=
0x00007ffeefbff6b8) at emacs.c:2085:3 [opt]
    frame #18: 0x00007fff7f9da3d5 libdyld.dylib`start + 1
    frame #19: 0x00007fff7f9da3d5 libdyld.dylib`start + 1
=20=20=20=20




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 12:54:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 08:54:03 2019
Received: from localhost ([127.0.0.1]:58201 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hpBLn-0002h2-HM
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 08:54:03 -0400
Received: from mail-oi1-f178.google.com ([209.85.167.178]:34947)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1hpBLm-0002gZ-T8
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 08:54:03 -0400
Received: by mail-oi1-f178.google.com with SMTP id a127so27653436oii.2
 for <36649 <at> debbugs.gnu.org>; Sun, 21 Jul 2019 05:54:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=LK8pNpnpMmL/0Fx8EftnjOE9dEXjVzkZWUQBwl4spJ4=;
 b=h9IHDFNyQPrkYIO8DWfB9csJUKp0jGAY3OVxnUI5mUbn8RVrxxpZi9ld4kODAFSm9F
 BSQymLtm9h1LdtH8bKA5oxTaXNp9Kg0B0N8LhN9GkaWcwY1T5PE0XE2wPna9Q5mFWiek
 R2pjSFZCZpFRrMwj5JDxsp9xS3+MG9ObYS1yBi829v4bylWNU0GpcKqA4E+HIe3n9PIy
 s5wfLOptiOYOf4ElsFKBf/vsrc1KqvaNu4lXeI8ZiZH0/n9GkyUe84fHV0QIJAlxet7z
 6I5KV/IqmNsFGoJsXoOyqBfh4lzOoN5c2t2Y/dMn/ledimLWajqdU+b/X1eY/6+aBqrV
 OTbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=LK8pNpnpMmL/0Fx8EftnjOE9dEXjVzkZWUQBwl4spJ4=;
 b=lZg5CHjXBFIBYkhcs4bM0A1ZNAcPFELwhwaJUJTmeymW/71siJDUghDklReEXb1gxw
 eGxN7lRTpw2w5z5WVQp7GFvYwWM0fy46DUUleELo75XqpgbtkBt8lJ82HteSu8lxFRyP
 GLltZT7yFiPo34rM+r72zcJZvAmPKbPNDILGa0kNQaxea2F58u7x6Fu/xmIvTSMGlSaX
 thDliEON1r4fL10zk6nLW7po3iYt4XitDwmoFn41TXYlJZ8xbYFARZuoNfDk0Bk+lXR2
 S8kc3xzv7l+xTZEVGmYZTgxyR0sidveZFz1B+EmJFvh+8CJs3/1WrgoyLWFVo3jfRN9E
 NokQ==
X-Gm-Message-State: APjAAAVF2S15k0G71vLqzYkTBPLT4TinV8kHQfAYsXjQDFKuWjxh9Nmz
 swkmeBaOWfdt9YQFZU3QSjwDAlwh+y9ztrHI1Wc=
X-Google-Smtp-Source: APXvYqzDTJWfeCu5zBSs56A0rkJ3L0jHUjBhAzDSRHPDePE+GkvuMIB4V3+WuAGLDdcQs0iSrG60lUQHCGKtvcUuJFs=
X-Received: by 2002:aca:2303:: with SMTP id e3mr28158042oie.112.1563713637250; 
 Sun, 21 Jul 2019 05:53:57 -0700 (PDT)
MIME-Version: 1.0
References: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
 <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
In-Reply-To: <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Date: Sun, 21 Jul 2019 12:53:21 +0000
Message-ID: <CAOqdjBdF0JgDJj1H5hc=XBnOxJc=dyCMb=+OhbVh1Tb6fiVnCQ@HIDDEN>
Subject: Re: bug#36649: 27.0.50; pure space and pdumper
To: Paul Eggert <eggert@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000e11ba9058e307302"
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org
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>

--000000000000e11ba9058e307302
Content-Type: text/plain; charset="UTF-8"

On Sun, Jul 21, 2019 at 7:29 AM Paul Eggert <eggert@HIDDEN> wrote:
> > I think we have the following options:
> >
> > 1. remove pure space entirely
> > 2. remove pure space, but leave PURE_P and CHECK_IMPURE as reminders
> > to do something about it.
> > 3. move pure space to BSS
> > 4. xmalloc() pure space, only when needed
> > 5. modify pdumper to mark and recognize pure objects
> > 6. do nothing and accept the wastefulness
>
> I suggest (1), since it will result in simpler code.

I think we should do (1) for now, since it simplifies the code enough
to introduce immutable objects "soon"; but until that time, we waste
more space on duplicate objects that we no longer know to be
immutable, so cannot merge.

I'm attaching a first patch that removes pure space, pinned symbols,
pinned objects, but keeps Fpurecopy (for hash consing), and doesn't
touch the Lisp codebase.

With this patch, I have:
-rw-r--r-- 2 pip pip 11102752 Jul 21 12:28 src/emacs.pdmp

before:
-rw-r--r-- 2 pip pip 10381464 Jul 21 12:29 src/emacs.pdmp

However, the (uncompressed) disk space requirement is about the same,
since the emacs binary is a lot smaller.

I think the next steps are to look at actual live memory usage (which
will increase due to the non-duplication of objects, but not by an
entire megabyte because some of that data is relocations), and GC
performance (no prediction here, it could improve or deteriorate).

--000000000000e11ba9058e307302
Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Remove-pure-space.patch"
Content-Disposition: attachment; filename="0001-Remove-pure-space.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jycyoi560>
X-Attachment-Id: f_jycyoi560

RnJvbSA5MmVkNWI4NjA0MzYzZmU1NDZhYWNkN2E0YmQzODU2ZjhlYTU2YTRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaXAgQ2V0IDxwaXBjZXRAZ21haWwuY29tPgpEYXRlOiBTdW4s
IDIxIEp1bCAyMDE5IDEyOjUxOjIxICswMDAwClN1YmplY3Q6IFtQQVRDSF0gUmVtb3ZlIHB1cmUg
c3BhY2UKCiogc3JjL2xpc3AuaCAoc3RydWN0IExpc3BfU3ltYm9sKTogUmVtb3ZlIGBwaW5uZWQn
IGZsYWcuCihidWlsZF9wdXJlX2Nfc3RyaW5nLCBwdXJlX2xpc3RuKTogUmVtb3ZlLiAgQWxsIGNh
bGxzIHJlbW92ZWQuCiogc3JjL3B1cmVzaXplLmg6IFJlbW92ZSBmaWxlLgoqIHNyYy9mbnMuYyAo
Rm1ha2VfaGFzaF90YWJsZSk6IElnbm9yZSBgOnB1cmVjb3B5JyBhcmd1bWVudC4KKiBzcmMvZG9j
LmMgKHN0b3JlX2Z1bmN0aW9uX2RvY3N0cmluZyk6IFJlbW92ZSBjb21tZW50IGFib3V0IHB1cmUK
c3BhY2UuCiogc3JjL2RhdGEuYyAocHVyZV93cml0ZV9lcnJvcik6IFJlbW92ZS4gIEFsbCBjYWxs
cyByZW1vdmVkLgoqIHNyYy9jb25mX3Bvc3QuaCAoU1lTVEVNX1BVUkVTSVpFX0VYVFJBKTogUmVt
b3ZlLgoqIHNyYy9mbnMuYyAobWFrZV9oYXNoX3RhYmxlKTogRHJvcCBgcHVyZWNvcHknIGFyZ3Vt
ZW50LiAgQWxsCmNhbGxlcnMgY2hhbmdlZCB0byByZW1vdmUgYXJndW1lbnQuCiogc3JjL2FsbG9j
LmMgKG1ha2VfcHVyZV9zdHJpbmcsIG1ha2VfcHVyZV9jX3N0cmluZywgcHVyZV9jb25zKQoocHVy
ZV9saXN0KTogUmVtb3ZlLiAgQWxsIGNhbGxzIHJlbW92ZWQuCihjaGVja19wdXJlX3NpemUpOiBS
ZW1vdmUuICBBbGwgY2FsbHMgcmVtb3ZlZC4KKGNvbnNfbGlzdG4pOiBTaW1wbGlmeS4KKEZtYWtl
X2J5dGVfY29kZSk6IFJlbW92ZSBjb21tZW50IGFib3V0IHB1cmUgc3BhY2UuCihwb2ludGVyX2Fs
aWduKTogTW92ZSBkZWZpbml0aW9uIHRvIGF2b2lkIHdhcm5pbmcuCiogc3JjL01ha2VmaWxlLmlu
OiBSZW1vdmUgY29tbWVudCBhYm91dCBwdXJlIHNwYWNlLgotLS0KIHNyYy9NYWtlZmlsZS5pbiAg
ICB8ICAgMiAtCiBzcmMvYWxsb2MuYyAgICAgICAgfCA1MzcgKysrKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYnVmZmVyLmMgICAgICAgfCAgMTYgKy0KIHNy
Yy9jYWxsaW50LmMgICAgICB8ICAgOCArLQogc3JjL2NhdGVnb3J5LmMgICAgIHwgICA0ICstCiBz
cmMvY29kaW5nLmMgICAgICAgfCAgMTggKy0KIHNyYy9jb25mX3Bvc3QuaCAgICB8ICAzMyAtLS0K
IHNyYy9kYXRhLmMgICAgICAgICB8ICAyOSArLS0KIHNyYy9kYnVzYmluZC5jICAgICB8ICAgNCAr
LQogc3JjL2RlcHMubWsgICAgICAgIHwgIDEwICstCiBzcmMvZG9jLmMgICAgICAgICAgfCAgIDMg
LQogc3JjL2VtYWNzLW1vZHVsZS5jIHwgIDI2ICstLQogc3JjL2VtYWNzLmMgICAgICAgIHwgICAz
IC0KIHNyYy9ldmFsLmMgICAgICAgICB8ICAxMiArLQogc3JjL2ZpbGVpby5jICAgICAgIHwgIDIw
ICstCiBzcmMvZm5zLmMgICAgICAgICAgfCAgMjkgKy0tCiBzcmMvZm9udHNldC5jICAgICAgfCAg
IDQgKy0KIHNyYy9mcmFtZS5jICAgICAgICB8ICAgMiArLQogc3JjL2ludGVydmFscy5jICAgIHwg
ICAyIC0KIHNyYy9qc29uLmMgICAgICAgICB8ICAgNCArLQogc3JjL2tleWJvYXJkLmMgICAgIHwg
ICA4ICstCiBzcmMva2V5bWFwLmMgICAgICAgfCAgMzMgKystCiBzcmMvbGlzcC5oICAgICAgICAg
fCAgNDEgKy0tLQogc3JjL2xyZWFkLmMgICAgICAgIHwgIDQ1ICsrLS0KIHNyYy9wZHVtcGVyLmMg
ICAgICB8ICAgMiAtCiBzcmMvcHJpbnQuYyAgICAgICAgfCAgIDYgLQogc3JjL3Byb2Nlc3MuYyAg
ICAgIHwgICA0ICstCiBzcmMvcHJvZmlsZXIuYyAgICAgfCAgIDIgKy0KIHNyYy9wdXJlc2l6ZS5o
ICAgICB8IDExNSAtLS0tLS0tLS0tCiBzcmMvc2VhcmNoLmMgICAgICAgfCAgMTIgKy0KIHNyYy9z
eW50YXguYyAgICAgICB8ICAgNCArLQogc3JjL3czMmZucy5jICAgICAgIHwgICA0ICstCiBzcmMv
eGRpc3AuYyAgICAgICAgfCAgMjAgKy0KIHNyYy94ZmFjZXMuYyAgICAgICB8ICAgMiArLQogc3Jj
L3hmbnMuYyAgICAgICAgIHwgICA5ICstCiBzcmMveHRlcm0uYyAgICAgICAgfCAgIDQgKy0KIDM2
IGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNlcnRpb25zKCspLCA4OTUgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvc3JjL01ha2VmaWxlLmluIGIvc3JjL01ha2VmaWxlLmluCmluZGV4IGZkMDVhNDVk
ZjUuLmQ2ZTQ4OWQ4MjIgMTAwNjQ0Ci0tLSBhL3NyYy9NYWtlZmlsZS5pbgorKysgYi9zcmMvTWFr
ZWZpbGUuaW4KQEAgLTQwMyw4ICs0MDMsNiBAQCAuYy5vOgogLm0ubzoKIAkkKEFNX1ZfQ0MpJChD
QykgLWMgJChDUFBGTEFHUykgJChBTExfT0JKQ19DRkxBR1MpICQoUFJPRklMSU5HX0NGTEFHUykg
JDwKIAotIyMgbGFzdGZpbGUgbXVzdCBmb2xsb3cgYWxsIGZpbGVzIHdob3NlIGluaXRpYWxpemVk
IGRhdGEgYXJlYXMgc2hvdWxkCi0jIyBiZSBkdW1wZWQgYXMgcHVyZSBieSBkdW1wLWVtYWNzLgog
YmFzZV9vYmogPSBkaXNwbmV3Lm8gZnJhbWUubyBzY3JvbGwubyB4ZGlzcC5vIG1lbnUubyAkKFhN
RU5VX09CSikgd2luZG93Lm8gXAogCWNoYXJzZXQubyBjb2RpbmcubyBjYXRlZ29yeS5vIGNjbC5v
IGNoYXJhY3Rlci5vIGNoYXJ0YWIubyBiaWRpLm8gXAogCSQoQ01fT0JKKSB0ZXJtLm8gdGVybWlu
YWwubyB4ZmFjZXMubyAkKFhPQkopICQoR1RLX09CSikgJChEQlVTX09CSikgXApkaWZmIC0tZ2l0
IGEvc3JjL2FsbG9jLmMgYi9zcmMvYWxsb2MuYwppbmRleCAxNzE4Y2UwZmFmLi5kZjhiMWNhZjRl
IDEwMDY0NAotLS0gYS9zcmMvYWxsb2MuYworKysgYi9zcmMvYWxsb2MuYwpAQCAtMzUsNyArMzUs
NiBAQCBDb3B5cmlnaHQgKEMpIDE5ODUtMTk4NiwgMTk4OCwgMTk5My0xOTk1LCAxOTk3LTIwMTkg
RnJlZSBTb2Z0d2FyZQogI2luY2x1ZGUgImRpc3BleHRlcm4uaCIKICNpbmNsdWRlICJpbnRlcnZh
bHMuaCIKICNpbmNsdWRlICJwdHItYm91bmRzLmgiCi0jaW5jbHVkZSAicHVyZXNpemUuaCIKICNp
bmNsdWRlICJzaGVhcC5oIgogI2luY2x1ZGUgInN5c3N0ZGlvLmgiCiAjaW5jbHVkZSAic3lzdGlt
ZS5oIgpAQCAtMjY1LDMzICsyNjQsNiBAQCAjZGVmaW5lIEdDX0RFRkFVTFRfVEhSRVNIT0xEICgx
MDAwMDAgKiB3b3JkX3NpemUpCiAKICNkZWZpbmUgU1BBUkVfTUVNT1JZICgxIDw8IDE0KQogCi0v
KiBJbml0aWFsaXplIGl0IHRvIGEgbm9uemVybyB2YWx1ZSB0byBmb3JjZSBpdCBpbnRvIGRhdGEg
c3BhY2UKLSAgIChyYXRoZXIgdGhhbiBic3Mgc3BhY2UpLiAgVGhhdCB3YXkgdW5leGVjIHdpbGwg
cmVtYXAgaXQgaW50byB0ZXh0Ci0gICBzcGFjZSAocHVyZSksIG9uIHNvbWUgc3lzdGVtcy4gIFdl
IGhhdmUgbm90IGltcGxlbWVudGVkIHRoZQotICAgcmVtYXBwaW5nIG9uIG1vcmUgcmVjZW50IHN5
c3RlbXMgYmVjYXVzZSB0aGlzIGlzIGxlc3MgaW1wb3J0YW50Ci0gICBub3dhZGF5cyB0aGFuIGlu
IHRoZSBkYXlzIG9mIHNtYWxsIG1lbW9yaWVzIGFuZCB0aW1lc2hhcmluZy4gICovCi0KLUVNQUNT
X0lOVCBwdXJlWyhQVVJFU0laRSArIHNpemVvZiAoRU1BQ1NfSU5UKSAtIDEpIC8gc2l6ZW9mIChF
TUFDU19JTlQpXSA9IHsxLH07Ci0jZGVmaW5lIFBVUkVCRUcgKGNoYXIgKikgcHVyZQotCi0vKiBQ
b2ludGVyIHRvIHRoZSBwdXJlIGFyZWEsIGFuZCBpdHMgc2l6ZS4gICovCi0KLXN0YXRpYyBjaGFy
ICpwdXJlYmVnOwotc3RhdGljIHB0cmRpZmZfdCBwdXJlX3NpemU7Ci0KLS8qIE51bWJlciBvZiBi
eXRlcyBvZiBwdXJlIHN0b3JhZ2UgdXNlZCBiZWZvcmUgcHVyZSBzdG9yYWdlIG92ZXJmbG93ZWQu
Ci0gICBJZiB0aGlzIGlzIG5vbi16ZXJvLCB0aGlzIGltcGxpZXMgdGhhdCBhbiBvdmVyZmxvdyBv
Y2N1cnJlZC4gICovCi0KLXN0YXRpYyBwdHJkaWZmX3QgcHVyZV9ieXRlc191c2VkX2JlZm9yZV9v
dmVyZmxvdzsKLQotLyogSW5kZXggaW4gcHVyZSBhdCB3aGljaCBuZXh0IHB1cmUgTGlzcCBvYmpl
Y3Qgd2lsbCBiZSBhbGxvY2F0ZWQuLiAgKi8KLQotc3RhdGljIHB0cmRpZmZfdCBwdXJlX2J5dGVz
X3VzZWRfbGlzcDsKLQotLyogTnVtYmVyIG9mIGJ5dGVzIGFsbG9jYXRlZCBmb3Igbm9uLUxpc3Ag
b2JqZWN0cyBpbiBwdXJlIHN0b3JhZ2UuICAqLwotCi1zdGF0aWMgcHRyZGlmZl90IHB1cmVfYnl0
ZXNfdXNlZF9ub25fbGlzcDsKLQogLyogSWYgcG9zaXRpdmUsIGdhcmJhZ2UgY29sbGVjdGlvbiBp
cyBpbmhpYml0ZWQuICBPdGhlcndpc2UsIHplcm8uICAqLwogCiBzdGF0aWMgaW50cHRyX3QgZ2Fy
YmFnZV9jb2xsZWN0aW9uX2luaGliaXRlZDsKQEAgLTM2Niw3ICszMzgsNiBAQCBub19zYW5pdGl6
ZV9tZW1jcHkgKHZvaWQgKmRlc3QsIHZvaWQgY29uc3QgKnNyYywgc2l6ZV90IHNpemUpCiBzdGF0
aWMgdm9pZCB1bmNoYWluX2ZpbmFsaXplciAoc3RydWN0IExpc3BfRmluYWxpemVyICopOwogc3Rh
dGljIHZvaWQgbWFya190ZXJtaW5hbHMgKHZvaWQpOwogc3RhdGljIHZvaWQgZ2Nfc3dlZXAgKHZv
aWQpOwotc3RhdGljIExpc3BfT2JqZWN0IG1ha2VfcHVyZV92ZWN0b3IgKHB0cmRpZmZfdCk7CiBz
dGF0aWMgdm9pZCBtYXJrX2J1ZmZlciAoc3RydWN0IGJ1ZmZlciAqKTsKIAogI2lmICFkZWZpbmVk
IFJFTF9BTExPQyB8fCBkZWZpbmVkIFNZU1RFTV9NQUxMT0MgfHwgZGVmaW5lZCBIWUJSSURfTUFM
TE9DCkBAIC01MDksMTYgKzQ4MCw2IEBAICNkZWZpbmUgTUVNX05JTCAmbWVtX3oKIAogaW50IHN0
YXRpY2lkeDsKIAotc3RhdGljIHZvaWQgKnB1cmVfYWxsb2MgKHNpemVfdCwgaW50KTsKLQotLyog
UmV0dXJuIFBUUiByb3VuZGVkIHVwIHRvIHRoZSBuZXh0IG11bHRpcGxlIG9mIEFMSUdOTUVOVC4g
ICovCi0KLXN0YXRpYyB2b2lkICoKLXBvaW50ZXJfYWxpZ24gKHZvaWQgKnB0ciwgaW50IGFsaWdu
bWVudCkKLXsKLSAgcmV0dXJuICh2b2lkICopIFJPVU5EVVAgKCh1aW50cHRyX3QpIHB0ciwgYWxp
Z25tZW50KTsKLX0KLQogLyogRXh0cmFjdCB0aGUgcG9pbnRlciBoaWRkZW4gd2l0aGluIE8uICAq
LwogCiBzdGF0aWMgQVRUUklCVVRFX05PX1NBTklUSVpFX1VOREVGSU5FRCB2b2lkICoKQEAgLTEw
MDIsNiArOTYzLDE1IEBAIHZlcmlmeSAoUE9XRVJfT0ZfMiAoQkxPQ0tfQUxJR04pKTsKICMgZWxp
ZiAhZGVmaW5lZCBIWUJSSURfTUFMTE9DICYmIGRlZmluZWQgSEFWRV9QT1NJWF9NRU1BTElHTgog
IyAgZGVmaW5lIFVTRV9BTElHTkVEX0FMTE9DIDEKICMgIGRlZmluZSBhbGlnbmVkX2FsbG9jIG15
X2FsaWduZWRfYWxsb2MgLyogQXZvaWQgY29sbGlzaW9uIHdpdGggbGlzcC5oLiAgKi8KKworLyog
UmV0dXJuIFBUUiByb3VuZGVkIHVwIHRvIHRoZSBuZXh0IG11bHRpcGxlIG9mIEFMSUdOTUVOVC4g
ICovCisKK3N0YXRpYyB2b2lkICoKK3BvaW50ZXJfYWxpZ24gKHZvaWQgKnB0ciwgaW50IGFsaWdu
bWVudCkKK3sKKyAgcmV0dXJuICh2b2lkICopIFJPVU5EVVAgKCh1aW50cHRyX3QpIHB0ciwgYWxp
Z25tZW50KTsKK30KKwogc3RhdGljIHZvaWQgKgogYWxpZ25lZF9hbGxvYyAoc2l6ZV90IGFsaWdu
bWVudCwgc2l6ZV90IHNpemUpCiB7CkBAIC0xNjA1LDkgKzE1NzUsOSBAQCAjZGVmaW5lIEdDX1NU
UklOR19FWFRSQSBHQ19TVFJJTkdfT1ZFUlJVTl9DT09LSUVfU0laRQogc3RhdGljIHZvaWQKIGlu
aXRfc3RyaW5ncyAodm9pZCkKIHsKLSAgZW1wdHlfdW5pYnl0ZV9zdHJpbmcgPSBtYWtlX3B1cmVf
c3RyaW5nICgiIiwgMCwgMCwgMCk7CisgIGVtcHR5X3VuaWJ5dGVfc3RyaW5nID0gbWFrZV9zcGVj
aWZpZWRfc3RyaW5nICgiIiwgMCwgMCwgZmFsc2UpOwogICBzdGF0aWNwcm8gKCZlbXB0eV91bmli
eXRlX3N0cmluZyk7Ci0gIGVtcHR5X211bHRpYnl0ZV9zdHJpbmcgPSBtYWtlX3B1cmVfc3RyaW5n
ICgiIiwgMCwgMCwgMSk7CisgIGVtcHR5X211bHRpYnl0ZV9zdHJpbmcgPSBtYWtlX3NwZWNpZmll
ZF9zdHJpbmcgKCIiLCAwLCAwLCB0cnVlKTsKICAgc3RhdGljcHJvICgmZW1wdHlfbXVsdGlieXRl
X3N0cmluZyk7CiB9CiAKQEAgLTE2MjUsNyArMTU5NSw3IEBAIHN0cmluZ19ieXRlcyAoc3RydWN0
IExpc3BfU3RyaW5nICpzKQogICBwdHJkaWZmX3QgbmJ5dGVzID0KICAgICAocy0+dS5zLnNpemVf
Ynl0ZSA8IDAgPyBzLT51LnMuc2l6ZSAmIH5BUlJBWV9NQVJLX0ZMQUcgOiBzLT51LnMuc2l6ZV9i
eXRlKTsKIAotICBpZiAoIVBVUkVfUCAocykgJiYgIXBkdW1wZXJfb2JqZWN0X3AgKHMpICYmIHMt
PnUucy5kYXRhCisgIGlmICghcGR1bXBlcl9vYmplY3RfcCAocykgJiYgcy0+dS5zLmRhdGEKICAg
ICAgICYmIG5ieXRlcyAhPSBTREFUQV9OQllURVMgKFNEQVRBX09GX1NUUklORyAocykpKQogICAg
IGVtYWNzX2Fib3J0ICgpOwogICByZXR1cm4gbmJ5dGVzOwpAQCAtMjMwMiw3ICsyMjcyLDcgQEAg
bWFrZV9zcGVjaWZpZWRfc3RyaW5nIChjb25zdCBjaGFyICpjb250ZW50cywKIHsKICAgTGlzcF9P
YmplY3QgdmFsOwogCi0gIGlmIChuY2hhcnMgPCAwKQorICBpZiAobmNoYXJzIDw9IDApCiAgICAg
ewogICAgICAgaWYgKG11bHRpYnl0ZSkKIAluY2hhcnMgPSBtdWx0aWJ5dGVfY2hhcnNfaW5fdGV4
dCAoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgY29udGVudHMsCkBAIC0yMzI2LDggKzIyOTYsNiBA
QCBtYWtlX3VuaW5pdF9zdHJpbmcgKEVNQUNTX0lOVCBsZW5ndGgpCiB7CiAgIExpc3BfT2JqZWN0
IHZhbDsKIAotICBpZiAoIWxlbmd0aCkKLSAgICByZXR1cm4gZW1wdHlfdW5pYnl0ZV9zdHJpbmc7
CiAgIHZhbCA9IG1ha2VfdW5pbml0X211bHRpYnl0ZV9zdHJpbmcgKGxlbmd0aCwgbGVuZ3RoKTsK
ICAgU1RSSU5HX1NFVF9VTklCWVRFICh2YWwpOwogICByZXR1cm4gdmFsOwpAQCAtMjM0NSw4ICsy
MzEzLDYgQEAgbWFrZV91bmluaXRfbXVsdGlieXRlX3N0cmluZyAoRU1BQ1NfSU5UIG5jaGFycywg
RU1BQ1NfSU5UIG5ieXRlcykKIAogICBpZiAobmNoYXJzIDwgMCkKICAgICBlbWFjc19hYm9ydCAo
KTsKLSAgaWYgKCFuYnl0ZXMpCi0gICAgcmV0dXJuIGVtcHR5X211bHRpYnl0ZV9zdHJpbmc7CiAK
ICAgcyA9IGFsbG9jYXRlX3N0cmluZyAoKTsKICAgcy0+dS5zLmludGVydmFscyA9IE5VTEw7CkBA
IC0yNjM2LDE3ICsyNjAyLDE2IEBAIGxpc3Q1IChMaXNwX09iamVjdCBhcmcxLCBMaXNwX09iamVj
dCBhcmcyLCBMaXNwX09iamVjdCBhcmczLCBMaXNwX09iamVjdCBhcmc0LAogfQogCiAvKiBNYWtl
IGEgbGlzdCBvZiBDT1VOVCBMaXNwX09iamVjdHMsIHdoZXJlIEFSRyBpcyB0aGUgZmlyc3Qgb25l
LgotICAgVXNlIENPTlMgdG8gY29uc3RydWN0IHRoZSBwYWlycy4gIEFQIGhhcyBhbnkgcmVtYWlu
aW5nIGFyZ3MuICAqLworICAgQVAgaGFzIGFueSByZW1haW5pbmcgYXJncy4gICovCiBzdGF0aWMg
TGlzcF9PYmplY3QKLWNvbnNfbGlzdG4gKHB0cmRpZmZfdCBjb3VudCwgTGlzcF9PYmplY3QgYXJn
LAotCSAgICBMaXNwX09iamVjdCAoKmNvbnMpIChMaXNwX09iamVjdCwgTGlzcF9PYmplY3QpLCB2
YV9saXN0IGFwKQorY29uc19saXN0biAocHRyZGlmZl90IGNvdW50LCBMaXNwX09iamVjdCBhcmcs
IHZhX2xpc3QgYXApCiB7CiAgIGVhc3N1bWUgKDAgPCBjb3VudCk7Ci0gIExpc3BfT2JqZWN0IHZh
bCA9IGNvbnMgKGFyZywgUW5pbCk7CisgIExpc3BfT2JqZWN0IHZhbCA9IEZjb25zIChhcmcsIFFu
aWwpOwogICBMaXNwX09iamVjdCB0YWlsID0gdmFsOwogICBmb3IgKHB0cmRpZmZfdCBpID0gMTsg
aSA8IGNvdW50OyBpKyspCiAgICAgewotICAgICAgTGlzcF9PYmplY3QgZWxlbSA9IGNvbnMgKHZh
X2FyZyAoYXAsIExpc3BfT2JqZWN0KSwgUW5pbCk7CisgICAgICBMaXNwX09iamVjdCBlbGVtID0g
RmNvbnMgKHZhX2FyZyAoYXAsIExpc3BfT2JqZWN0KSwgUW5pbCk7CiAgICAgICBYU0VUQ0RSICh0
YWlsLCBlbGVtKTsKICAgICAgIHRhaWwgPSBlbGVtOwogICAgIH0KQEAgLTI2NTksMTggKzI2MjQs
NyBAQCBsaXN0biAocHRyZGlmZl90IGNvdW50LCBMaXNwX09iamVjdCBhcmcxLCAuLi4pCiB7CiAg
IHZhX2xpc3QgYXA7CiAgIHZhX3N0YXJ0IChhcCwgYXJnMSk7Ci0gIExpc3BfT2JqZWN0IHZhbCA9
IGNvbnNfbGlzdG4gKGNvdW50LCBhcmcxLCBGY29ucywgYXApOwotICB2YV9lbmQgKGFwKTsKLSAg
cmV0dXJuIHZhbDsKLX0KLQotLyogTWFrZSBhIHB1cmUgbGlzdCBvZiBDT1VOVCBMaXNwX09iamVj
dHMsIHdoZXJlIEFSRzEgaXMgdGhlIGZpcnN0IG9uZS4gICovCi1MaXNwX09iamVjdAotcHVyZV9s
aXN0biAocHRyZGlmZl90IGNvdW50LCBMaXNwX09iamVjdCBhcmcxLCAuLi4pCi17Ci0gIHZhX2xp
c3QgYXA7Ci0gIHZhX3N0YXJ0IChhcCwgYXJnMSk7Ci0gIExpc3BfT2JqZWN0IHZhbCA9IGNvbnNf
bGlzdG4gKGNvdW50LCBhcmcxLCBwdXJlX2NvbnMsIGFwKTsKKyAgTGlzcF9PYmplY3QgdmFsID0g
Y29uc19saXN0biAoY291bnQsIGFyZzEsIGFwKTsKICAgdmFfZW5kIChhcCk7CiAgIHJldHVybiB2
YWw7CiB9CkBAIC0yODM2LDcgKzI3OTAsNyBAQCBsYXJnZV92ZWN0b3JfdmVjIChzdHJ1Y3QgbGFy
Z2VfdmVjdG9yICpwKQogCiBzdGF0aWMgc3RydWN0IGxhcmdlX3ZlY3RvciAqbGFyZ2VfdmVjdG9y
czsKIAotLyogVGhlIG9ubHkgdmVjdG9yIHdpdGggMCBzbG90cywgYWxsb2NhdGVkIGZyb20gcHVy
ZSBzcGFjZS4gICovCisvKiBUaGUgb25seSB2ZWN0b3Igd2l0aCAwIHNsb3RzLiAgKi8KIAogTGlz
cF9PYmplY3QgemVyb192ZWN0b3I7CiAKQEAgLTI4NzQsMTUgKzI4MjgsNiBAQCBhbGxvY2F0ZV92
ZWN0b3JfYmxvY2sgKHZvaWQpCiAgIHJldHVybiBibG9jazsKIH0KIAotLyogQ2FsbGVkIG9uY2Ug
dG8gaW5pdGlhbGl6ZSB2ZWN0b3IgYWxsb2NhdGlvbi4gICovCi0KLXN0YXRpYyB2b2lkCi1pbml0
X3ZlY3RvcnMgKHZvaWQpCi17Ci0gIHplcm9fdmVjdG9yID0gbWFrZV9wdXJlX3ZlY3RvciAoMCk7
Ci0gIHN0YXRpY3BybyAoJnplcm9fdmVjdG9yKTsKLX0KLQogLyogQWxsb2NhdGUgdmVjdG9yIGZy
b20gYSB2ZWN0b3IgYmxvY2suICAqLwogCiBzdGF0aWMgc3RydWN0IExpc3BfVmVjdG9yICoKQEAg
LTMyMDAsNiArMzE0NSwxNyBAQCBhbGxvY2F0ZV92ZWN0b3IgKHB0cmRpZmZfdCBsZW4pCiB9CiAK
IAorLyogQ2FsbGVkIG9uY2UgdG8gaW5pdGlhbGl6ZSB2ZWN0b3IgYWxsb2NhdGlvbi4gICovCisK
K3N0YXRpYyB2b2lkCitpbml0X3ZlY3RvcnMgKHZvaWQpCit7CisgIHplcm9fdmVjdG9yID0KKyAg
ICBtYWtlX2xpc3BfcHRyIChhbGxvY2F0ZV92ZWN0b3JsaWtlIChzaXplb2YgKHN0cnVjdCBMaXNw
X1ZlY3RvcikpLAorCQkgICBMaXNwX1ZlY3Rvcmxpa2UpOworICBzdGF0aWNwcm8gKCZ6ZXJvX3Zl
Y3Rvcik7Cit9CisKIC8qIEFsbG9jYXRlIG90aGVyIHZlY3Rvci1saWtlIHN0cnVjdHVyZXMuICAq
LwogCiBzdHJ1Y3QgTGlzcF9WZWN0b3IgKgpAQCAtMzM1NCwxNCArMzMxMCw2IEBAIGFuZCAob3B0
aW9uYWwpIElOVEVSQUNUSVZFLVNQRUMuCiAgIExpc3BfT2JqZWN0IHZhbCA9IG1ha2VfdW5pbml0
X3ZlY3RvciAobmFyZ3MpOwogICBzdHJ1Y3QgTGlzcF9WZWN0b3IgKnAgPSBYVkVDVE9SICh2YWwp
OwogCi0gIC8qIFdlIHVzZWQgdG8gcHVyZWNvcHkgZXZlcnl0aGluZyBoZXJlLCBpZiBwdXJpZnkt
ZmxhZyB3YXMgc2V0LiAgVGhpcyB3b3JrZWQKLSAgICAgT0sgZm9yIEVtYWNzLTIzLCBidXQgd2l0
aCBFbWFjcy0yNCdzIGxleGljYWwgYmluZGluZyBjb2RlLCBpdCBjYW4gYmUKLSAgICAgZGFuZ2Vy
b3VzLCBzaW5jZSBtYWtlLWJ5dGUtY29kZSBpcyB1c2VkIGR1cmluZyBleGVjdXRpb24gdG8gYnVp
bGQKLSAgICAgY2xvc3VyZXMsIHNvIGFueSBjbG9zdXJlIGJ1aWx0IGR1cmluZyB0aGUgcHJlbG9h
ZCBwaGFzZSB3b3VsZCBlbmQgdXAKLSAgICAgY29waWVkIGludG8gcHVyZSBzcGFjZSwgaW5jbHVk
aW5nIGl0cyBmcmVlIHZhcmlhYmxlcywgd2hpY2ggaXMgc29tZXRpbWVzCi0gICAgIGp1c3Qgd2Fz
dGVmdWwgYW5kIG90aGVyIHRpbWVzIHBsYWlubHkgd3JvbmcgKGUuZy4gdGhvc2UgZnJlZSB2YXJz
IG1heSB3YW50Ci0gICAgIHRvIGJlIHNldGNhcidkKS4gICovCi0KICAgbWVtY3B5IChwLT5jb250
ZW50cywgYXJncywgbmFyZ3MgKiBzaXplb2YgKmFyZ3MpOwogICBtYWtlX2J5dGVfY29kZSAocCk7
CiAgIFhTRVRDT01QSUxFRCAodmFsLCBwKTsKQEAgLTMzOTMsMTMgKzMzNDEsNiBAQCAjZGVmaW5l
IFNZTUJPTF9CTE9DS19TSVpFIFwKIAogc3RhdGljIHN0cnVjdCBzeW1ib2xfYmxvY2sgKnN5bWJv
bF9ibG9jazsKIHN0YXRpYyBpbnQgc3ltYm9sX2Jsb2NrX2luZGV4ID0gU1lNQk9MX0JMT0NLX1NJ
WkU7Ci0vKiBQb2ludGVyIHRvIHRoZSBmaXJzdCBzeW1ib2xfYmxvY2sgdGhhdCBjb250YWlucyBw
aW5uZWQgc3ltYm9scy4KLSAgIFRlc3RzIGZvciAyNC40IHNob3dlZCB0aGF0IGF0IGR1bXAtdGlt
ZSwgRW1hY3MgY29udGFpbnMgYWJvdXQgMTVLIHN5bWJvbHMsCi0gICAxMEsgb2Ygd2hpY2ggYXJl
IHBpbm5lZCAoYW5kIGFsbCBidXQgMjUwIG9mIHRoZW0gYXJlIGludGVybmVkIGluIG9iYXJyYXkp
LAotICAgd2hlcmVhcyBhICJ0eXBpY2FsIHNlc3Npb24iIGhhcyBpbiB0aGUgb3JkZXIgb2YgMzBL
IHN5bWJvbHMuCi0gICBgc3ltYm9sX2Jsb2NrX3Bpbm5lZCcgbGV0cyBtYXJrX3Bpbm5lZF9zeW1i
b2xzIHNjYW4gb25seSAxNUsgc3ltYm9scyByYXRoZXIKLSAgIHRoYW4gMzBLIHRvIGZpbmQgdGhl
IDEwSyBzeW1ib2xzIHdlIG5lZWQgdG8gbWFyay4gICovCi1zdGF0aWMgc3RydWN0IHN5bWJvbF9i
bG9jayAqc3ltYm9sX2Jsb2NrX3Bpbm5lZDsKIAogLyogTGlzdCBvZiBmcmVlIHN5bWJvbHMuICAq
LwogCkBAIC0zNDI1LDcgKzMzNjYsNiBAQCBpbml0X3N5bWJvbCAoTGlzcF9PYmplY3QgdmFsLCBM
aXNwX09iamVjdCBuYW1lKQogICBwLT51LnMuaW50ZXJuZWQgPSBTWU1CT0xfVU5JTlRFUk5FRDsK
ICAgcC0+dS5zLnRyYXBwZWRfd3JpdGUgPSBTWU1CT0xfVU5UUkFQUEVEX1dSSVRFOwogICBwLT51
LnMuZGVjbGFyZWRfc3BlY2lhbCA9IGZhbHNlOwotICBwLT51LnMucGlubmVkID0gZmFsc2U7CiB9
CiAKIERFRlVOICgibWFrZS1zeW1ib2wiLCBGbWFrZV9zeW1ib2wsIFNtYWtlX3N5bWJvbCwgMSwg
MSwgMCwKQEAgLTUwMjEsOCArNDk2MSw2IEBAIHZhbGlkX2xpc3Bfb2JqZWN0X3AgKExpc3BfT2Jq
ZWN0IG9iaikKICAgICByZXR1cm4gMTsKIAogICB2b2lkICpwID0gWFBOVFIgKG9iaik7Ci0gIGlm
IChQVVJFX1AgKHApKQotICAgIHJldHVybiAxOwogCiAgIGlmIChTWU1CT0xQIChvYmopICYmIGNf
c3ltYm9sX3AgKHApKQogICAgIHJldHVybiAoKGNoYXIgKikgcCAtIChjaGFyICopIGxpc3BzeW0p
ICUgc2l6ZW9mIGxpc3BzeW1bMF0gPT0gMDsKQEAgLTUwNzksMjg3ICs1MDE3LDggQEAgdmFsaWRf
bGlzcF9vYmplY3RfcCAoTGlzcF9PYmplY3Qgb2JqKQogICByZXR1cm4gMDsKIH0KIAotLyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCi0JCSAgICAgICBQdXJlIFN0b3JhZ2UgTWFuYWdlbWVudAotICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLwotCi0vKiBBbGxvY2F0ZSByb29tIGZvciBTSVpFIGJ5dGVzIGZyb20gcHVyZSBMaXNwIHN0
b3JhZ2UgYW5kIHJldHVybiBhCi0gICBwb2ludGVyIHRvIGl0LiAgVFlQRSBpcyB0aGUgTGlzcCB0
eXBlIGZvciB3aGljaCB0aGUgbWVtb3J5IGlzCi0gICBhbGxvY2F0ZWQuICBUWVBFIDwgMCBtZWFu
cyBpdCdzIG5vdCB1c2VkIGZvciBhIExpc3Agb2JqZWN0LAotICAgYW5kIHRoYXQgdGhlIHJlc3Vs
dCBzaG91bGQgaGF2ZSBhbiBhbGlnbm1lbnQgb2YgLVRZUEUuICAqLwotCi1zdGF0aWMgdm9pZCAq
Ci1wdXJlX2FsbG9jIChzaXplX3Qgc2l6ZSwgaW50IHR5cGUpCi17Ci0gIHZvaWQgKnJlc3VsdDsK
LQotIGFnYWluOgotICBpZiAodHlwZSA+PSAwKQotICAgIHsKLSAgICAgIC8qIEFsbG9jYXRlIHNw
YWNlIGZvciBhIExpc3Agb2JqZWN0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZnJlZQotCSBz
cGFjZSB3aXRoIHRha2luZyBhY2NvdW50IG9mIGFsaWdubWVudC4gICovCi0gICAgICByZXN1bHQg
PSBwb2ludGVyX2FsaWduIChwdXJlYmVnICsgcHVyZV9ieXRlc191c2VkX2xpc3AsIExJU1BfQUxJ
R05NRU5UKTsKLSAgICAgIHB1cmVfYnl0ZXNfdXNlZF9saXNwID0gKChjaGFyICopcmVzdWx0IC0g
KGNoYXIgKilwdXJlYmVnKSArIHNpemU7Ci0gICAgfQotICBlbHNlCi0gICAgewotICAgICAgLyog
QWxsb2NhdGUgc3BhY2UgZm9yIGEgbm9uLUxpc3Agb2JqZWN0IGZyb20gdGhlIGVuZCBvZiB0aGUg
ZnJlZQotCSBzcGFjZS4gICovCi0gICAgICBwdHJkaWZmX3QgdW5hbGlnbmVkX25vbl9saXNwID0g
cHVyZV9ieXRlc191c2VkX25vbl9saXNwICsgc2l6ZTsKLSAgICAgIGNoYXIgKnVuYWxpZ25lZCA9
IHB1cmViZWcgKyBwdXJlX3NpemUgLSB1bmFsaWduZWRfbm9uX2xpc3A7Ci0gICAgICBpbnQgZGVj
ciA9IChpbnRwdHJfdCkgdW5hbGlnbmVkICYgKC0xIC0gdHlwZSk7Ci0gICAgICBwdXJlX2J5dGVz
X3VzZWRfbm9uX2xpc3AgPSB1bmFsaWduZWRfbm9uX2xpc3AgKyBkZWNyOwotICAgICAgcmVzdWx0
ID0gdW5hbGlnbmVkIC0gZGVjcjsKLSAgICB9Ci0gIHB1cmVfYnl0ZXNfdXNlZCA9IHB1cmVfYnl0
ZXNfdXNlZF9saXNwICsgcHVyZV9ieXRlc191c2VkX25vbl9saXNwOwotCi0gIGlmIChwdXJlX2J5
dGVzX3VzZWQgPD0gcHVyZV9zaXplKQotICAgIHJldHVybiBwdHJfYm91bmRzX2NsaXAgKHJlc3Vs
dCwgc2l6ZSk7Ci0KLSAgLyogRG9uJ3QgYWxsb2NhdGUgYSBsYXJnZSBhbW91bnQgaGVyZSwKLSAg
ICAgYmVjYXVzZSBpdCBtaWdodCBnZXQgbW1hcCdkIGFuZCB0aGVuIGl0cyBhZGRyZXNzCi0gICAg
IG1pZ2h0IG5vdCBiZSB1c2FibGUuICAqLwotICBwdXJlYmVnID0geG1hbGxvYyAoMTAwMDApOwot
ICBwdXJlX3NpemUgPSAxMDAwMDsKLSAgcHVyZV9ieXRlc191c2VkX2JlZm9yZV9vdmVyZmxvdyAr
PSBwdXJlX2J5dGVzX3VzZWQgLSBzaXplOwotICBwdXJlX2J5dGVzX3VzZWQgPSAwOwotICBwdXJl
X2J5dGVzX3VzZWRfbGlzcCA9IHB1cmVfYnl0ZXNfdXNlZF9ub25fbGlzcCA9IDA7Ci0KLSAgLyog
Q2FuJ3QgR0MgaWYgcHVyZSBzdG9yYWdlIG92ZXJmbG93ZWQgYmVjYXVzZSB3ZSBjYW4ndCBkZXRl
cm1pbmUKLSAgICAgaWYgc29tZXRoaW5nIGlzIGEgcHVyZSBvYmplY3Qgb3Igbm90LiAgKi8KLSAg
Z2FyYmFnZV9jb2xsZWN0aW9uX2luaGliaXRlZCsrOwotICBnb3RvIGFnYWluOwotfQotCi0KLSNp
ZmRlZiBIQVZFX1VORVhFQwotCi0vKiBQcmludCBhIHdhcm5pbmcgaWYgUFVSRVNJWkUgaXMgdG9v
IHNtYWxsLiAgKi8KLQotdm9pZAotY2hlY2tfcHVyZV9zaXplICh2b2lkKQotewotICBpZiAocHVy
ZV9ieXRlc191c2VkX2JlZm9yZV9vdmVyZmxvdykKLSAgICBtZXNzYWdlICgoImVtYWNzOjA6UHVy
ZSBMaXNwIHN0b3JhZ2Ugb3ZlcmZsb3cgKGFwcHJveC4gJSJwSSJkIgotCSAgICAgICIgYnl0ZXMg
bmVlZGVkKSIpLAotCSAgICAgcHVyZV9ieXRlc191c2VkICsgcHVyZV9ieXRlc191c2VkX2JlZm9y
ZV9vdmVyZmxvdyk7Ci19Ci0jZW5kaWYKLQotCi0vKiBGaW5kIHRoZSBieXRlIHNlcXVlbmNlIHtE
QVRBWzBdLCAuLi4sIERBVEFbTkJZVEVTLTFdLCAnXDAnfSBmcm9tCi0gICB0aGUgbm9uLUxpc3Ag
ZGF0YSBwb29sIG9mIHRoZSBwdXJlIHN0b3JhZ2UsIGFuZCByZXR1cm4gaXRzIHN0YXJ0Ci0gICBh
ZGRyZXNzLiAgUmV0dXJuIE5VTEwgaWYgbm90IGZvdW5kLiAgKi8KLQotc3RhdGljIGNoYXIgKgot
ZmluZF9zdHJpbmdfZGF0YV9pbl9wdXJlIChjb25zdCBjaGFyICpkYXRhLCBwdHJkaWZmX3QgbmJ5
dGVzKQotewotICBpbnQgaTsKLSAgcHRyZGlmZl90IHNraXAsIGJtX3NraXBbMjU2XSwgbGFzdF9j
aGFyX3NraXAsIGluZmluaXR5LCBzdGFydCwgc3RhcnRfbWF4OwotICBjb25zdCB1bnNpZ25lZCBj
aGFyICpwOwotICBjaGFyICpub25fbGlzcF9iZWc7Ci0KLSAgaWYgKHB1cmVfYnl0ZXNfdXNlZF9u
b25fbGlzcCA8PSBuYnl0ZXMpCi0gICAgcmV0dXJuIE5VTEw7Ci0KLSAgLyogU2V0IHVwIHRoZSBC
b3llci1Nb29yZSB0YWJsZS4gICovCi0gIHNraXAgPSBuYnl0ZXMgKyAxOwotICBmb3IgKGkgPSAw
OyBpIDwgMjU2OyBpKyspCi0gICAgYm1fc2tpcFtpXSA9IHNraXA7Ci0KLSAgcCA9IChjb25zdCB1
bnNpZ25lZCBjaGFyICopIGRhdGE7Ci0gIHdoaWxlICgtLXNraXAgPiAwKQotICAgIGJtX3NraXBb
KnArK10gPSBza2lwOwotCi0gIGxhc3RfY2hhcl9za2lwID0gYm1fc2tpcFsnXDAnXTsKLQotICBu
b25fbGlzcF9iZWcgPSBwdXJlYmVnICsgcHVyZV9zaXplIC0gcHVyZV9ieXRlc191c2VkX25vbl9s
aXNwOwotICBzdGFydF9tYXggPSBwdXJlX2J5dGVzX3VzZWRfbm9uX2xpc3AgLSAobmJ5dGVzICsg
MSk7Ci0KLSAgLyogU2VlIHRoZSBjb21tZW50cyBpbiB0aGUgZnVuY3Rpb24gYGJveWVyX21vb3Jl
JyAoc2VhcmNoLmMpIGZvciB0aGUKLSAgICAgdXNlIG9mIGBpbmZpbml0eScuICAqLwotICBpbmZp
bml0eSA9IHB1cmVfYnl0ZXNfdXNlZF9ub25fbGlzcCArIDE7Ci0gIGJtX3NraXBbJ1wwJ10gPSBp
bmZpbml0eTsKLQotICBwID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgbm9uX2xpc3BfYmVnICsg
bmJ5dGVzOwotICBzdGFydCA9IDA7Ci0gIGRvCi0gICAgewotICAgICAgLyogQ2hlY2sgdGhlIGxh
c3QgY2hhcmFjdGVyICg9PSAnXDAnKS4gICovCi0gICAgICBkbwotCXsKLQkgIHN0YXJ0ICs9IGJt
X3NraXBbKihwICsgc3RhcnQpXTsKLQl9Ci0gICAgICB3aGlsZSAoc3RhcnQgPD0gc3RhcnRfbWF4
KTsKLQotICAgICAgaWYgKHN0YXJ0IDwgaW5maW5pdHkpCi0JLyogQ291bGRuJ3QgZmluZCB0aGUg
bGFzdCBjaGFyYWN0ZXIuICAqLwotCXJldHVybiBOVUxMOwotCi0gICAgICAvKiBObyBsZXNzIHRo
YW4gYGluZmluaXR5JyBtZWFucyB3ZSBjb3VsZCBmaW5kIHRoZSBsYXN0Ci0JIGNoYXJhY3RlciBh
dCBgcFtzdGFydCAtIGluZmluaXR5XScuICAqLwotICAgICAgc3RhcnQgLT0gaW5maW5pdHk7Ci0K
LSAgICAgIC8qIENoZWNrIHRoZSByZW1haW5pbmcgY2hhcmFjdGVycy4gICovCi0gICAgICBpZiAo
bWVtY21wIChkYXRhLCBub25fbGlzcF9iZWcgKyBzdGFydCwgbmJ5dGVzKSA9PSAwKQotCS8qIEZv
dW5kLiAgKi8KLQlyZXR1cm4gcHRyX2JvdW5kc19jbGlwIChub25fbGlzcF9iZWcgKyBzdGFydCwg
bmJ5dGVzICsgMSk7Ci0KLSAgICAgIHN0YXJ0ICs9IGxhc3RfY2hhcl9za2lwOwotICAgIH0KLSAg
d2hpbGUgKHN0YXJ0IDw9IHN0YXJ0X21heCk7Ci0KLSAgcmV0dXJuIE5VTEw7Ci19Ci0KLQotLyog
UmV0dXJuIGEgc3RyaW5nIGFsbG9jYXRlZCBpbiBwdXJlIHNwYWNlLiAgREFUQSBpcyBhIGJ1ZmZl
ciBob2xkaW5nCi0gICBOQ0hBUlMgY2hhcmFjdGVycywgYW5kIE5CWVRFUyBieXRlcyBvZiBzdHJp
bmcgZGF0YS4gIE1VTFRJQllURQotICAgbWVhbnMgbWFrZSB0aGUgcmVzdWx0IHN0cmluZyBtdWx0
aWJ5dGUuCi0KLSAgIE11c3QgZ2V0IGFuIGVycm9yIGlmIHB1cmUgc3RvcmFnZSBpcyBmdWxsLCBz
aW5jZSBpZiBpdCBjYW5ub3QgaG9sZAotICAgYSBsYXJnZSBzdHJpbmcgaXQgbWF5IGJlIGFibGUg
dG8gaG9sZCBjb25zZXMgdGhhdCBwb2ludCB0byB0aGF0Ci0gICBzdHJpbmc7IHRoZW4gdGhlIHN0
cmluZyBpcyBub3QgcHJvdGVjdGVkIGZyb20gZ2MuICAqLwotCi1MaXNwX09iamVjdAotbWFrZV9w
dXJlX3N0cmluZyAoY29uc3QgY2hhciAqZGF0YSwKLQkJICBwdHJkaWZmX3QgbmNoYXJzLCBwdHJk
aWZmX3QgbmJ5dGVzLCBib29sIG11bHRpYnl0ZSkKLXsKLSAgTGlzcF9PYmplY3Qgc3RyaW5nOwot
ICBzdHJ1Y3QgTGlzcF9TdHJpbmcgKnMgPSBwdXJlX2FsbG9jIChzaXplb2YgKnMsIExpc3BfU3Ry
aW5nKTsKLSAgcy0+dS5zLmRhdGEgPSAodW5zaWduZWQgY2hhciAqKSBmaW5kX3N0cmluZ19kYXRh
X2luX3B1cmUgKGRhdGEsIG5ieXRlcyk7Ci0gIGlmIChzLT51LnMuZGF0YSA9PSBOVUxMKQotICAg
IHsKLSAgICAgIHMtPnUucy5kYXRhID0gcHVyZV9hbGxvYyAobmJ5dGVzICsgMSwgLTEpOwotICAg
ICAgbWVtY3B5IChzLT51LnMuZGF0YSwgZGF0YSwgbmJ5dGVzKTsKLSAgICAgIHMtPnUucy5kYXRh
W25ieXRlc10gPSAnXDAnOwotICAgIH0KLSAgcy0+dS5zLnNpemUgPSBuY2hhcnM7Ci0gIHMtPnUu
cy5zaXplX2J5dGUgPSBtdWx0aWJ5dGUgPyBuYnl0ZXMgOiAtMTsKLSAgcy0+dS5zLmludGVydmFs
cyA9IE5VTEw7Ci0gIFhTRVRTVFJJTkcgKHN0cmluZywgcyk7Ci0gIHJldHVybiBzdHJpbmc7Ci19
Ci0KLS8qIFJldHVybiBhIHN0cmluZyBhbGxvY2F0ZWQgaW4gcHVyZSBzcGFjZS4gIERvIG5vdAot
ICAgYWxsb2NhdGUgdGhlIHN0cmluZyBkYXRhLCBqdXN0IHBvaW50IHRvIERBVEEuICAqLwotCi1M
aXNwX09iamVjdAotbWFrZV9wdXJlX2Nfc3RyaW5nIChjb25zdCBjaGFyICpkYXRhLCBwdHJkaWZm
X3QgbmNoYXJzKQotewotICBMaXNwX09iamVjdCBzdHJpbmc7Ci0gIHN0cnVjdCBMaXNwX1N0cmlu
ZyAqcyA9IHB1cmVfYWxsb2MgKHNpemVvZiAqcywgTGlzcF9TdHJpbmcpOwotICBzLT51LnMuc2l6
ZSA9IG5jaGFyczsKLSAgcy0+dS5zLnNpemVfYnl0ZSA9IC0yOwotICBzLT51LnMuZGF0YSA9ICh1
bnNpZ25lZCBjaGFyICopIGRhdGE7Ci0gIHMtPnUucy5pbnRlcnZhbHMgPSBOVUxMOwotICBYU0VU
U1RSSU5HIChzdHJpbmcsIHMpOwotICByZXR1cm4gc3RyaW5nOwotfQotCi1zdGF0aWMgTGlzcF9P
YmplY3QgcHVyZWNvcHkgKExpc3BfT2JqZWN0IG9iaik7Ci0KLS8qIFJldHVybiBhIGNvbnMgYWxs
b2NhdGVkIGZyb20gcHVyZSBzcGFjZS4gIEdpdmUgaXQgcHVyZSBjb3BpZXMKLSAgIG9mIENBUiBh
cyBjYXIgYW5kIENEUiBhcyBjZHIuICAqLwotCi1MaXNwX09iamVjdAotcHVyZV9jb25zIChMaXNw
X09iamVjdCBjYXIsIExpc3BfT2JqZWN0IGNkcikKLXsKLSAgTGlzcF9PYmplY3QgbmV3OwotICBz
dHJ1Y3QgTGlzcF9Db25zICpwID0gcHVyZV9hbGxvYyAoc2l6ZW9mICpwLCBMaXNwX0NvbnMpOwot
ICBYU0VUQ09OUyAobmV3LCBwKTsKLSAgWFNFVENBUiAobmV3LCBwdXJlY29weSAoY2FyKSk7Ci0g
IFhTRVRDRFIgKG5ldywgcHVyZWNvcHkgKGNkcikpOwotICByZXR1cm4gbmV3OwotfQotCi0KLS8q
IFZhbHVlIGlzIGEgZmxvYXQgb2JqZWN0IHdpdGggdmFsdWUgTlVNIGFsbG9jYXRlZCBmcm9tIHB1
cmUgc3BhY2UuICAqLwotCi1zdGF0aWMgTGlzcF9PYmplY3QKLW1ha2VfcHVyZV9mbG9hdCAoZG91
YmxlIG51bSkKLXsKLSAgTGlzcF9PYmplY3QgbmV3OwotICBzdHJ1Y3QgTGlzcF9GbG9hdCAqcCA9
IHB1cmVfYWxsb2MgKHNpemVvZiAqcCwgTGlzcF9GbG9hdCk7Ci0gIFhTRVRGTE9BVCAobmV3LCBw
KTsKLSAgWEZMT0FUX0lOSVQgKG5ldywgbnVtKTsKLSAgcmV0dXJuIG5ldzsKLX0KLQotLyogVmFs
dWUgaXMgYSBiaWdudW0gb2JqZWN0IHdpdGggdmFsdWUgVkFMVUUgYWxsb2NhdGVkIGZyb20gcHVy
ZQotICAgc3BhY2UuICAqLwotCi1zdGF0aWMgTGlzcF9PYmplY3QKLW1ha2VfcHVyZV9iaWdudW0g
KHN0cnVjdCBMaXNwX0JpZ251bSAqdmFsdWUpCi17Ci0gIHNpemVfdCBpLCBubGltYnMgPSBtcHpf
c2l6ZSAodmFsdWUtPnZhbHVlKTsKLSAgc2l6ZV90IG5ieXRlcyA9IG5saW1icyAqIHNpemVvZiAo
bXBfbGltYl90KTsKLSAgbXBfbGltYl90ICpwdXJlX2xpbWJzOwotICBtcF9zaXplX3QgbmV3X3Np
emU7Ci0KLSAgc3RydWN0IExpc3BfQmlnbnVtICpiID0gcHVyZV9hbGxvYyAoc2l6ZW9mICpiLCBM
aXNwX1ZlY3Rvcmxpa2UpOwotICBYU0VUUFZFQ1RZUEVTSVpFIChiLCBQVkVDX0JJR05VTSwgMCwg
VkVDU0laRSAoc3RydWN0IExpc3BfQmlnbnVtKSk7Ci0KLSAgaW50IGxpbWJfYWxpZ25tZW50ID0g
YWxpZ25vZiAobXBfbGltYl90KTsKLSAgcHVyZV9saW1icyA9IHB1cmVfYWxsb2MgKG5ieXRlcywg
LSBsaW1iX2FsaWdubWVudCk7Ci0gIGZvciAoaSA9IDA7IGkgPCBubGltYnM7ICsraSkKLSAgICBw
dXJlX2xpbWJzW2ldID0gbXB6X2dldGxpbWJuICh2YWx1ZS0+dmFsdWUsIGkpOwotCi0gIG5ld19z
aXplID0gbmxpbWJzOwotICBpZiAobXB6X3NnbiAodmFsdWUtPnZhbHVlKSA8IDApCi0gICAgbmV3
X3NpemUgPSAtbmV3X3NpemU7Ci0KLSAgbXB6X3JvaW5pdF9uIChiLT52YWx1ZSwgcHVyZV9saW1i
cywgbmV3X3NpemUpOwotCi0gIHJldHVybiBtYWtlX2xpc3BfcHRyIChiLCBMaXNwX1ZlY3Rvcmxp
a2UpOwotfQotCi0vKiBSZXR1cm4gYSB2ZWN0b3Igd2l0aCByb29tIGZvciBMRU4gTGlzcF9PYmpl
Y3RzIGFsbG9jYXRlZCBmcm9tCi0gICBwdXJlIHNwYWNlLiAgKi8KLQogc3RhdGljIExpc3BfT2Jq
ZWN0Ci1tYWtlX3B1cmVfdmVjdG9yIChwdHJkaWZmX3QgbGVuKQotewotICBMaXNwX09iamVjdCBu
ZXc7Ci0gIHNpemVfdCBzaXplID0gaGVhZGVyX3NpemUgKyBsZW4gKiB3b3JkX3NpemU7Ci0gIHN0
cnVjdCBMaXNwX1ZlY3RvciAqcCA9IHB1cmVfYWxsb2MgKHNpemUsIExpc3BfVmVjdG9ybGlrZSk7
Ci0gIFhTRVRWRUNUT1IgKG5ldywgcCk7Ci0gIFhWRUNUT1IgKG5ldyktPmhlYWRlci5zaXplID0g
bGVuOwotICByZXR1cm4gbmV3OwotfQotCi0vKiBDb3B5IGFsbCBjb250ZW50cyBhbmQgcGFyYW1l
dGVycyBvZiBUQUJMRSB0byBhIG5ldyB0YWJsZSBhbGxvY2F0ZWQKLSAgIGZyb20gcHVyZSBzcGFj
ZSwgcmV0dXJuIHRoZSBwdXJpZmllZCB0YWJsZS4gICovCi1zdGF0aWMgc3RydWN0IExpc3BfSGFz
aF9UYWJsZSAqCi1wdXJlY29weV9oYXNoX3RhYmxlIChzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICp0
YWJsZSkKLXsKLSAgZWFzc2VydCAoTklMUCAodGFibGUtPndlYWspKTsKLSAgZWFzc2VydCAodGFi
bGUtPnB1cmVjb3B5KTsKLQotICBzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICpwdXJlID0gcHVyZV9h
bGxvYyAoc2l6ZW9mICpwdXJlLCBMaXNwX1ZlY3Rvcmxpa2UpOwotICBzdHJ1Y3QgaGFzaF90YWJs
ZV90ZXN0IHB1cmVfdGVzdCA9IHRhYmxlLT50ZXN0OwotCi0gIC8qIFB1cmVjb3B5IHRoZSBoYXNo
IHRhYmxlIHRlc3QuICAqLwotICBwdXJlX3Rlc3QubmFtZSA9IHB1cmVjb3B5ICh0YWJsZS0+dGVz
dC5uYW1lKTsKLSAgcHVyZV90ZXN0LnVzZXJfaGFzaF9mdW5jdGlvbiA9IHB1cmVjb3B5ICh0YWJs
ZS0+dGVzdC51c2VyX2hhc2hfZnVuY3Rpb24pOwotICBwdXJlX3Rlc3QudXNlcl9jbXBfZnVuY3Rp
b24gPSBwdXJlY29weSAodGFibGUtPnRlc3QudXNlcl9jbXBfZnVuY3Rpb24pOwotCi0gIHB1cmUt
PmhlYWRlciA9IHRhYmxlLT5oZWFkZXI7Ci0gIHB1cmUtPndlYWsgPSBwdXJlY29weSAoUW5pbCk7
Ci0gIHB1cmUtPmhhc2ggPSBwdXJlY29weSAodGFibGUtPmhhc2gpOwotICBwdXJlLT5uZXh0ID0g
cHVyZWNvcHkgKHRhYmxlLT5uZXh0KTsKLSAgcHVyZS0+aW5kZXggPSBwdXJlY29weSAodGFibGUt
PmluZGV4KTsKLSAgcHVyZS0+Y291bnQgPSB0YWJsZS0+Y291bnQ7Ci0gIHB1cmUtPm5leHRfZnJl
ZSA9IHRhYmxlLT5uZXh0X2ZyZWU7Ci0gIHB1cmUtPnB1cmVjb3B5ID0gdGFibGUtPnB1cmVjb3B5
OwotICBlYXNzZXJ0ICghcHVyZS0+bXV0YWJsZSk7Ci0gIHB1cmUtPnJlaGFzaF90aHJlc2hvbGQg
PSB0YWJsZS0+cmVoYXNoX3RocmVzaG9sZDsKLSAgcHVyZS0+cmVoYXNoX3NpemUgPSB0YWJsZS0+
cmVoYXNoX3NpemU7Ci0gIHB1cmUtPmtleV9hbmRfdmFsdWUgPSBwdXJlY29weSAodGFibGUtPmtl
eV9hbmRfdmFsdWUpOwotICBwdXJlLT50ZXN0ID0gcHVyZV90ZXN0OwotCi0gIHJldHVybiBwdXJl
OwotfQorcHVyZWNvcHkgKExpc3BfT2JqZWN0IG9iaik7CiAKIERFRlVOICgicHVyZWNvcHkiLCBG
cHVyZWNvcHksIFNwdXJlY29weSwgMSwgMSwgMCwKICAgICAgICBkb2M6IC8qIE1ha2UgYSBjb3B5
IG9mIG9iamVjdCBPQkogaW4gcHVyZSBzdG9yYWdlLgpAQCAtNTM3NiwxMDAgKzUwMzUsMjMgQEAg
REVGVU4gKCJwdXJlY29weSIsIEZwdXJlY29weSwgU3B1cmVjb3B5LCAxLCAxLCAwLAogICAgIHJl
dHVybiBwdXJlY29weSAob2JqKTsKIH0KIAotLyogUGlubmVkIG9iamVjdHMgYXJlIG1hcmtlZCBi
ZWZvcmUgZXZlcnkgR0MgY3ljbGUuICAqLwotc3RhdGljIHN0cnVjdCBwaW5uZWRfb2JqZWN0Ci17
Ci0gIExpc3BfT2JqZWN0IG9iamVjdDsKLSAgc3RydWN0IHBpbm5lZF9vYmplY3QgKm5leHQ7Ci19
ICpwaW5uZWRfb2JqZWN0czsKLQogc3RhdGljIExpc3BfT2JqZWN0CiBwdXJlY29weSAoTGlzcF9P
YmplY3Qgb2JqKQogewotICBpZiAoRklYTlVNUCAob2JqKQotICAgICAgfHwgKCEgU1lNQk9MUCAo
b2JqKSAmJiBQVVJFX1AgKFhQTlRSIChvYmopKSkKLSAgICAgIHx8IFNVQlJQIChvYmopKQorICBp
ZiAoRklYTlVNUCAob2JqKSB8fCBTVUJSUCAob2JqKSkKICAgICByZXR1cm4gb2JqOyAgICAvKiBB
bHJlYWR5IHB1cmUuICAqLwogCi0gIGlmIChTVFJJTkdQIChvYmopICYmIFhTVFJJTkcgKG9iaikt
PnUucy5pbnRlcnZhbHMpCi0gICAgbWVzc2FnZV93aXRoX3N0cmluZyAoIkRyb3BwaW5nIHRleHQt
cHJvcGVydGllcyB3aGlsZSBtYWtpbmcgc3RyaW5nIGAlcycgcHVyZSIsCi0JCQkgb2JqLCB0cnVl
KTsKLQogICBpZiAoSEFTSF9UQUJMRV9QIChWcHVyaWZ5X2ZsYWcpKSAvKiBIYXNoIGNvbnNpbmcu
ICAqLwogICAgIHsKICAgICAgIExpc3BfT2JqZWN0IHRtcCA9IEZnZXRoYXNoIChvYmosIFZwdXJp
ZnlfZmxhZywgUW5pbCk7CiAgICAgICBpZiAoIU5JTFAgKHRtcCkpCiAJcmV0dXJuIHRtcDsKKyAg
ICAgIEZwdXRoYXNoIChvYmosIG9iaiwgVnB1cmlmeV9mbGFnKTsKICAgICB9CiAKLSAgaWYgKENP
TlNQIChvYmopKQotICAgIG9iaiA9IHB1cmVfY29ucyAoWENBUiAob2JqKSwgWENEUiAob2JqKSk7
Ci0gIGVsc2UgaWYgKEZMT0FUUCAob2JqKSkKLSAgICBvYmogPSBtYWtlX3B1cmVfZmxvYXQgKFhG
TE9BVF9EQVRBIChvYmopKTsKLSAgZWxzZSBpZiAoU1RSSU5HUCAob2JqKSkKLSAgICBvYmogPSBt
YWtlX3B1cmVfc3RyaW5nIChTU0RBVEEgKG9iaiksIFNDSEFSUyAob2JqKSwKLQkJCSAgICBTQllU
RVMgKG9iaiksCi0JCQkgICAgU1RSSU5HX01VTFRJQllURSAob2JqKSk7Ci0gIGVsc2UgaWYgKEhB
U0hfVEFCTEVfUCAob2JqKSkKLSAgICB7Ci0gICAgICBzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICp0
YWJsZSA9IFhIQVNIX1RBQkxFIChvYmopOwotICAgICAgLyogRG8gbm90IHB1cmlmeSBoYXNoIHRh
YmxlcyB3aGljaCBoYXZlbid0IGJlZW4gZGVmaW5lZCB3aXRoCi0gICAgICAgICA6cHVyZWNvcHkg
YXMgbm9uLW5pbCBvciBhcmUgd2VhayAtIHRoZXkgYXJlbid0IGd1YXJhbnRlZWQgdG8KLSAgICAg
ICAgIG5vdCBjaGFuZ2UuICAqLwotICAgICAgaWYgKCFOSUxQICh0YWJsZS0+d2VhaykgfHwgIXRh
YmxlLT5wdXJlY29weSkKLSAgICAgICAgewotICAgICAgICAgIC8qIEluc3RlYWQsIGFkZCB0aGUg
aGFzaCB0YWJsZSB0byB0aGUgbGlzdCBvZiBwaW5uZWQgb2JqZWN0cywKLSAgICAgICAgICAgICBz
byB0aGF0IGl0IHdpbGwgYmUgbWFya2VkIGR1cmluZyBHQy4gICovCi0gICAgICAgICAgc3RydWN0
IHBpbm5lZF9vYmplY3QgKm8gPSB4bWFsbG9jIChzaXplb2YgKm8pOwotICAgICAgICAgIG8tPm9i
amVjdCA9IG9iajsKLSAgICAgICAgICBvLT5uZXh0ID0gcGlubmVkX29iamVjdHM7Ci0gICAgICAg
ICAgcGlubmVkX29iamVjdHMgPSBvOwotICAgICAgICAgIHJldHVybiBvYmo7IC8qIERvbid0IGhh
c2ggY29ucyBpdC4gICovCi0gICAgICAgIH0KLQotICAgICAgc3RydWN0IExpc3BfSGFzaF9UYWJs
ZSAqaCA9IHB1cmVjb3B5X2hhc2hfdGFibGUgKHRhYmxlKTsKLSAgICAgIFhTRVRfSEFTSF9UQUJM
RSAob2JqLCBoKTsKLSAgICB9Ci0gIGVsc2UgaWYgKENPTVBJTEVEUCAob2JqKSB8fCBWRUNUT1JQ
IChvYmopIHx8IFJFQ09SRFAgKG9iaikpCi0gICAgewotICAgICAgc3RydWN0IExpc3BfVmVjdG9y
ICpvYmpwID0gWFZFQ1RPUiAob2JqKTsKLSAgICAgIHB0cmRpZmZfdCBuYnl0ZXMgPSB2ZWN0b3Jf
bmJ5dGVzIChvYmpwKTsKLSAgICAgIHN0cnVjdCBMaXNwX1ZlY3RvciAqdmVjID0gcHVyZV9hbGxv
YyAobmJ5dGVzLCBMaXNwX1ZlY3Rvcmxpa2UpOwotICAgICAgcmVnaXN0ZXIgcHRyZGlmZl90IGk7
Ci0gICAgICBwdHJkaWZmX3Qgc2l6ZSA9IEFTSVpFIChvYmopOwotICAgICAgaWYgKHNpemUgJiBQ
U0VVRE9WRUNUT1JfRkxBRykKLQlzaXplICY9IFBTRVVET1ZFQ1RPUl9TSVpFX01BU0s7Ci0gICAg
ICBtZW1jcHkgKHZlYywgb2JqcCwgbmJ5dGVzKTsKLSAgICAgIGZvciAoaSA9IDA7IGkgPCBzaXpl
OyBpKyspCi0JdmVjLT5jb250ZW50c1tpXSA9IHB1cmVjb3B5ICh2ZWMtPmNvbnRlbnRzW2ldKTsK
LSAgICAgIFhTRVRWRUNUT1IgKG9iaiwgdmVjKTsKLSAgICB9Ci0gIGVsc2UgaWYgKFNZTUJPTFAg
KG9iaikpCi0gICAgewotICAgICAgaWYgKCFYU1lNQk9MIChvYmopLT51LnMucGlubmVkICYmICFj
X3N5bWJvbF9wIChYU1lNQk9MIChvYmopKSkKLQl7IC8qIFdlIGNhbid0IHB1cmlmeSB0aGVtLCBi
dXQgdGhleSBhcHBlYXIgaW4gbWFueSBwdXJlIG9iamVjdHMuCi0JICAgICBNYXJrIHRoZW0gYXMg
YHBpbm5lZCcgc28gd2Uga25vdyB0byBtYXJrIHRoZW0gYXQgZXZlcnkgR0MgY3ljbGUuICAqLwot
CSAgWFNZTUJPTCAob2JqKS0+dS5zLnBpbm5lZCA9IHRydWU7Ci0JICBzeW1ib2xfYmxvY2tfcGlu
bmVkID0gc3ltYm9sX2Jsb2NrOwotCX0KLSAgICAgIC8qIERvbid0IGhhc2gtY29ucyBpdC4gICov
Ci0gICAgICByZXR1cm4gb2JqOwotICAgIH0KLSAgZWxzZSBpZiAoQklHTlVNUCAob2JqKSkKLSAg
ICBvYmogPSBtYWtlX3B1cmVfYmlnbnVtIChYQklHTlVNIChvYmopKTsKLSAgZWxzZQotICAgIHsK
LSAgICAgIEFVVE9fU1RSSU5HIChmbXQsICJEb24ndCBrbm93IGhvdyB0byBwdXJpZnk6ICVTIik7
Ci0gICAgICBGc2lnbmFsIChRZXJyb3IsIGxpc3QxIChDQUxMTiAoRmZvcm1hdCwgZm10LCBvYmop
KSk7Ci0gICAgfQotCi0gIGlmIChIQVNIX1RBQkxFX1AgKFZwdXJpZnlfZmxhZykpIC8qIEhhc2gg
Y29uc2luZy4gICovCi0gICAgRnB1dGhhc2ggKG9iaiwgb2JqLCBWcHVyaWZ5X2ZsYWcpOwotCiAg
IHJldHVybiBvYmo7CiB9CiAKLQogDAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAJCQkgIFByb3RlY3Rpb24g
ZnJvbSBHQwpAQCAtNTY1OCwzMSArNTI0MCw2IEBAIGNvbXBhY3RfdW5kb19saXN0IChMaXNwX09i
amVjdCBsaXN0KQogICByZXR1cm4gbGlzdDsKIH0KIAotc3RhdGljIHZvaWQKLW1hcmtfcGlubmVk
X29iamVjdHMgKHZvaWQpCi17Ci0gIGZvciAoc3RydWN0IHBpbm5lZF9vYmplY3QgKnBvYmogPSBw
aW5uZWRfb2JqZWN0czsgcG9iajsgcG9iaiA9IHBvYmotPm5leHQpCi0gICAgbWFya19vYmplY3Qg
KHBvYmotPm9iamVjdCk7Ci19Ci0KLXN0YXRpYyB2b2lkCi1tYXJrX3Bpbm5lZF9zeW1ib2xzICh2
b2lkKQotewotICBzdHJ1Y3Qgc3ltYm9sX2Jsb2NrICpzYmxrOwotICBpbnQgbGltID0gKHN5bWJv
bF9ibG9ja19waW5uZWQgPT0gc3ltYm9sX2Jsb2NrCi0JICAgICA/IHN5bWJvbF9ibG9ja19pbmRl
eCA6IFNZTUJPTF9CTE9DS19TSVpFKTsKLQotICBmb3IgKHNibGsgPSBzeW1ib2xfYmxvY2tfcGlu
bmVkOyBzYmxrOyBzYmxrID0gc2Jsay0+bmV4dCkKLSAgICB7Ci0gICAgICBzdHJ1Y3QgTGlzcF9T
eW1ib2wgKnN5bSA9IHNibGstPnN5bWJvbHMsICplbmQgPSBzeW0gKyBsaW07Ci0gICAgICBmb3Ig
KDsgc3ltIDwgZW5kOyArK3N5bSkKLQlpZiAoc3ltLT51LnMucGlubmVkKQotCSAgbWFya19vYmpl
Y3QgKG1ha2VfbGlzcF9zeW1ib2wgKHN5bSkpOwotCi0gICAgICBsaW0gPSBTWU1CT0xfQkxPQ0tf
U0laRTsKLSAgICB9Ci19Ci0KIHN0YXRpYyB2b2lkCiB2aXNpdF92ZWN0b3JsaWtlX3Jvb3QgKHN0
cnVjdCBnY19yb290X3Zpc2l0b3IgdmlzaXRvciwKICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
dWN0IExpc3BfVmVjdG9yICpwdHIsCkBAIC01ODY5LDggKzU0MjYsNiBAQCBnYXJiYWdlX2NvbGxl
Y3RfMSAoc3RydWN0IGdjc3RhdCAqZ2NzdCkKICAgc3RydWN0IGdjX3Jvb3RfdmlzaXRvciB2aXNp
dG9yID0geyAudmlzaXQgPSBtYXJrX29iamVjdF9yb290X3Zpc2l0b3IgfTsKICAgdmlzaXRfc3Rh
dGljX2djX3Jvb3RzICh2aXNpdG9yKTsKIAotICBtYXJrX3Bpbm5lZF9vYmplY3RzICgpOwotICBt
YXJrX3Bpbm5lZF9zeW1ib2xzICgpOwogICBtYXJrX3Rlcm1pbmFscyAoKTsKICAgbWFya19rYm9h
cmRzICgpOwogICBtYXJrX3RocmVhZHMgKCk7CkBAIC02MDA4LDggKzU1NjMsNiBAQCBERUZVTiAo
ImdhcmJhZ2UtY29sbGVjdCIsIEZnYXJiYWdlX2NvbGxlY3QsIFNnYXJiYWdlX2NvbGxlY3QsIDAs
IDAsICIiLAogLSBGUkVFIGlzIHRoZSBudW1iZXIgb2YgdGhvc2Ugb2JqZWN0cyB0aGF0IGFyZSBu
b3QgbGl2ZSBidXQgdGhhdCBFbWFjcwogICBrZWVwcyBhcm91bmQgZm9yIGZ1dHVyZSBhbGxvY2F0
aW9ucyAobWF5YmUgYmVjYXVzZSBpdCBkb2VzIG5vdCBrbm93IGhvdwogICB0byByZXR1cm4gdGhl
bSB0byB0aGUgT1MpLgotSG93ZXZlciwgaWYgdGhlcmUgd2FzIG92ZXJmbG93IGluIHB1cmUgc3Bh
Y2UsIGBnYXJiYWdlLWNvbGxlY3QnCi1yZXR1cm5zIG5pbCwgYmVjYXVzZSByZWFsIEdDIGNhbid0
IGJlIGRvbmUuCiBTZWUgSW5mbyBub2RlIGAoZWxpc3ApR2FyYmFnZSBDb2xsZWN0aW9uJy4gICov
KQogICAodm9pZCkKIHsKQEAgLTYzNTAsOCArNTkwMyw2IEBAIG1hcmtfb2JqZWN0IChMaXNwX09i
amVjdCBhcmcpCiAgbG9vcDoKIAogICBwbyA9IFhQTlRSIChvYmopOwotICBpZiAoUFVSRV9QIChw
bykpCi0gICAgcmV0dXJuOwogCiAgIGxhc3RfbWFya2VkW2xhc3RfbWFya2VkX2luZGV4KytdID0g
b2JqOwogICBsYXN0X21hcmtlZF9pbmRleCAmPSBMQVNUX01BUktFRF9TSVpFIC0gMTsKQEAgLTY1
NTcsOCArNjEwOCw3IEBAICNkZWZpbmUgQ0hFQ0tfQUxMT0NBVEVEX0FORF9MSVZFX1NZTUJPTCgp
CSgodm9pZCkgMCkKIAkgICAgYnJlYWs7CiAJICBkZWZhdWx0OiBlbWFjc19hYm9ydCAoKTsKIAkg
IH0KLQlpZiAoIVBVUkVfUCAoWFNUUklORyAocHRyLT51LnMubmFtZSkpKQotICAgICAgICAgIHNl
dF9zdHJpbmdfbWFya2VkIChYU1RSSU5HIChwdHItPnUucy5uYW1lKSk7CisJc2V0X3N0cmluZ19t
YXJrZWQgKFhTVFJJTkcgKHB0ci0+dS5zLm5hbWUpKTsKICAgICAgICAgbWFya19pbnRlcnZhbF90
cmVlIChzdHJpbmdfaW50ZXJ2YWxzIChwdHItPnUucy5uYW1lKSk7CiAJLyogSW5uZXIgbG9vcCB0
byBtYXJrIG5leHQgc3ltYm9sIGluIHRoaXMgYnVja2V0LCBpZiBhbnkuICAqLwogCXBvID0gcHRy
ID0gcHRyLT51LnMubmV4dDsKQEAgLTY2NzIsNyArNjIyMiw3IEBAIHN1cnZpdmVzX2djX3AgKExp
c3BfT2JqZWN0IG9iaikKICAgICAgIGVtYWNzX2Fib3J0ICgpOwogICAgIH0KIAotICByZXR1cm4g
c3Vydml2ZXNfcCB8fCBQVVJFX1AgKFhQTlRSIChvYmopKTsKKyAgcmV0dXJuIHN1cnZpdmVzX3A7
CiB9CiAKIApAQCAtNzI1NSw4ICs2ODA1LDYgQEAgaW5pdF9hbGxvY19vbmNlICh2b2lkKQogc3Rh
dGljIHZvaWQKIGluaXRfYWxsb2Nfb25jZV9mb3JfcGR1bXBlciAodm9pZCkKIHsKLSAgcHVyZWJl
ZyA9IFBVUkVCRUc7Ci0gIHB1cmVfc2l6ZSA9IFBVUkVTSVpFOwogICBtZW1faW5pdCAoKTsKIAog
I2lmZGVmIERPVUdfTEVBX01BTExPQwpAQCAtNzMwMCw3ICs2ODQ4LDcgQEAgc3ltc19vZl9hbGxv
YyAodm9pZCkKICAgVmdjX2NvbnNfcGVyY2VudGFnZSA9IG1ha2VfZmxvYXQgKDAuMSk7CiAKICAg
REVGVkFSX0lOVCAoInB1cmUtYnl0ZXMtdXNlZCIsIHB1cmVfYnl0ZXNfdXNlZCwKLQkgICAgICBk
b2M6IC8qIE51bWJlciBvZiBieXRlcyBvZiBzaGFyZWFibGUgTGlzcCBkYXRhIGFsbG9jYXRlZCBz
byBmYXIuICAqLyk7CisJICAgICAgZG9jOiAvKiBObyBsb25nZXIgdXNlZC4gICovKTsKIAogICBE
RUZWQVJfSU5UICgiY29ucy1jZWxscy1jb25zZWQiLCBjb25zX2NlbGxzX2NvbnNlZCwKIAkgICAg
ICBkb2M6IC8qIE51bWJlciBvZiBjb25zIGNlbGxzIHRoYXQgaGF2ZSBiZWVuIGNvbnNlZCBzbyBm
YXIuICAqLyk7CkBAIC03MzI1LDEwICs2ODczLDcgQEAgc3ltc19vZl9hbGxvYyAodm9pZCkKIAkg
ICAgICBkb2M6IC8qIE51bWJlciBvZiBzdHJpbmdzIHRoYXQgaGF2ZSBiZWVuIGNvbnNlZCBzbyBm
YXIuICAqLyk7CiAKICAgREVGVkFSX0xJU1AgKCJwdXJpZnktZmxhZyIsIFZwdXJpZnlfZmxhZywK
LQkgICAgICAgZG9jOiAvKiBOb24tbmlsIG1lYW5zIGxvYWRpbmcgTGlzcCBjb2RlIGluIG9yZGVy
IHRvIGR1bXAgYW4gZXhlY3V0YWJsZS4KLVRoaXMgbWVhbnMgdGhhdCBjZXJ0YWluIG9iamVjdHMg
c2hvdWxkIGJlIGFsbG9jYXRlZCBpbiBzaGFyZWQgKHB1cmUpIHNwYWNlLgotSXQgY2FuIGFsc28g
YmUgc2V0IHRvIGEgaGFzaC10YWJsZSwgaW4gd2hpY2ggY2FzZSB0aGlzIHRhYmxlIGlzIHVzZWQg
dG8KLWRvIGhhc2gtY29uc2luZyBvZiB0aGUgb2JqZWN0cyBhbGxvY2F0ZWQgdG8gcHVyZSBzcGFj
ZS4gICovKTsKKwkgICAgICAgZG9jOiAvKiBObyBsb25nZXIgdXNlZC4gICovKTsKIAogICBERUZW
QVJfQk9PTCAoImdhcmJhZ2UtY29sbGVjdGlvbi1tZXNzYWdlcyIsIGdhcmJhZ2VfY29sbGVjdGlv
bl9tZXNzYWdlcywKIAkgICAgICAgZG9jOiAvKiBOb24tbmlsIG1lYW5zIGRpc3BsYXkgbWVzc2Fn
ZXMgYXQgc3RhcnQgYW5kIGVuZCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24uICAqLyk7CkBAIC03MzQ0
LDEwICs2ODg5LDEwIEBAIHN5bXNfb2ZfYWxsb2MgKHZvaWQpCiAgIC8qIFdlIGJ1aWxkIHRoaXMg
aW4gYWR2YW5jZSBiZWNhdXNlIGlmIHdlIHdhaXQgdW50aWwgd2UgbmVlZCBpdCwgd2UgbWlnaHQK
ICAgICAgbm90IGJlIGFibGUgdG8gYWxsb2NhdGUgdGhlIG1lbW9yeSB0byBob2xkIGl0LiAgKi8K
ICAgVm1lbW9yeV9zaWduYWxfZGF0YQotICAgID0gcHVyZV9saXN0IChRZXJyb3IsCi0JCSBidWls
ZF9wdXJlX2Nfc3RyaW5nICgiTWVtb3J5IGV4aGF1c3RlZC0tdXNlIgotCQkJCSAgICAgICIgTS14
IHNhdmUtc29tZS1idWZmZXJzIHRoZW4iCi0JCQkJICAgICAgIiBleGl0IGFuZCByZXN0YXJ0IEVt
YWNzIikpOworICAgID0gbGlzdCAoUWVycm9yLAorCSAgICBidWlsZF9zdHJpbmcgKCJNZW1vcnkg
ZXhoYXVzdGVkLS11c2UiCisJCQkgICIgTS14IHNhdmUtc29tZS1idWZmZXJzIHRoZW4iCisJCQkg
ICIgZXhpdCBhbmQgcmVzdGFydCBFbWFjcyIpKTsKIAogICBERUZWQVJfTElTUCAoIm1lbW9yeS1m
dWxsIiwgVm1lbW9yeV9mdWxsLAogCSAgICAgICBkb2M6IC8qIE5vbi1uaWwgbWVhbnMgRW1hY3Mg
Y2Fubm90IGdldCBtdWNoIG1vcmUgTGlzcCBtZW1vcnkuICAqLyk7CmRpZmYgLS1naXQgYS9zcmMv
YnVmZmVyLmMgYi9zcmMvYnVmZmVyLmMKaW5kZXggZWE3ODViYmNkNy4uNGFiYWIzN2FiZCAxMDA2
NDQKLS0tIGEvc3JjL2J1ZmZlci5jCisrKyBiL3NyYy9idWZmZXIuYwpAQCAtNTIyMiw4ICs1MjIy
LDggQEAgaW5pdF9idWZmZXJfb25jZSAodm9pZCkKICAgc2V0X2J1ZmZlcl9pbnRlcnZhbHMgKCZi
dWZmZXJfZGVmYXVsdHMsIE5VTEwpOwogICBzZXRfYnVmZmVyX2ludGVydmFscyAoJmJ1ZmZlcl9s
b2NhbF9zeW1ib2xzLCBOVUxMKTsKICAgLyogVGhpcyBpcyBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5
LCBidXQgbGV0J3MgbWFrZSB0aGVtIGluaXRpYWxpemVkLiAgKi8KLSAgYnNldF9uYW1lICgmYnVm
ZmVyX2RlZmF1bHRzLCBidWlsZF9wdXJlX2Nfc3RyaW5nICgiICpidWZmZXItZGVmYXVsdHMqIikp
OwotICBic2V0X25hbWUgKCZidWZmZXJfbG9jYWxfc3ltYm9scywgYnVpbGRfcHVyZV9jX3N0cmlu
ZyAoIiAqYnVmZmVyLWxvY2FsLXN5bWJvbHMqIikpOworICBic2V0X25hbWUgKCZidWZmZXJfZGVm
YXVsdHMsIGJ1aWxkX3N0cmluZyAoIiAqYnVmZmVyLWRlZmF1bHRzKiIpKTsKKyAgYnNldF9uYW1l
ICgmYnVmZmVyX2xvY2FsX3N5bWJvbHMsIGJ1aWxkX3N0cmluZyAoIiAqYnVmZmVyLWxvY2FsLXN5
bWJvbHMqIikpOwogICBCVUZGRVJfUFZFQ19JTklUICgmYnVmZmVyX2RlZmF1bHRzKTsKICAgQlVG
RkVSX1BWRUNfSU5JVCAoJmJ1ZmZlcl9sb2NhbF9zeW1ib2xzKTsKIApAQCAtNTIzMSw3ICs1MjMx
LDcgQEAgaW5pdF9idWZmZXJfb25jZSAodm9pZCkKICAgLyogTXVzdCBkbyB0aGVzZSBiZWZvcmUg
bWFraW5nIHRoZSBmaXJzdCBidWZmZXIhICovCiAKICAgLyogcmVhbCBzZXR1cCBpcyBkb25lIGlu
IGJpbmRpbmdzLmVsICovCi0gIGJzZXRfbW9kZV9saW5lX2Zvcm1hdCAoJmJ1ZmZlcl9kZWZhdWx0
cywgYnVpbGRfcHVyZV9jX3N0cmluZyAoIiUtIikpOworICBic2V0X21vZGVfbGluZV9mb3JtYXQg
KCZidWZmZXJfZGVmYXVsdHMsIGJ1aWxkX3N0cmluZyAoIiUtIikpOwogICBic2V0X2hlYWRlcl9s
aW5lX2Zvcm1hdCAoJmJ1ZmZlcl9kZWZhdWx0cywgUW5pbCk7CiAgIGJzZXRfYWJicmV2X21vZGUg
KCZidWZmZXJfZGVmYXVsdHMsIFFuaWwpOwogICBic2V0X292ZXJ3cml0ZV9tb2RlICgmYnVmZmVy
X2RlZmF1bHRzLCBRbmlsKTsKQEAgLTUyOTksNyArNTI5OSw3IEBAIGluaXRfYnVmZmVyX29uY2Ug
KHZvaWQpCiAgIGFsbF9idWZmZXJzID0gMDsKICAgcGR1bXBlcl9yZW1lbWJlcl9sdl9wdHJfcmF3
ICgmYWxsX2J1ZmZlcnMsIExpc3BfVmVjdG9ybGlrZSk7CiAKLSAgUVNGdW5kYW1lbnRhbCA9IGJ1
aWxkX3B1cmVfY19zdHJpbmcgKCJGdW5kYW1lbnRhbCIpOworICBRU0Z1bmRhbWVudGFsID0gYnVp
bGRfc3RyaW5nICgiRnVuZGFtZW50YWwiKTsKIAogICBERUZTWU0gKFFmdW5kYW1lbnRhbF9tb2Rl
LCAiZnVuZGFtZW50YWwtbW9kZSIpOwogICBic2V0X21ham9yX21vZGUgKCZidWZmZXJfZGVmYXVs
dHMsIFFmdW5kYW1lbnRhbF9tb2RlKTsKQEAgLTUzMTIsMTAgKzUzMTIsMTAgQEAgaW5pdF9idWZm
ZXJfb25jZSAodm9pZCkKICAgRnB1dCAoUWtpbGxfYnVmZmVyX2hvb2ssIFFwZXJtYW5lbnRfbG9j
YWwsIFF0KTsKIAogICAvKiBTdXBlci1tYWdpYyBpbnZpc2libGUgYnVmZmVyLiAgKi8KLSAgVnBy
aW4xX3RvX3N0cmluZ19idWZmZXIgPSBGZ2V0X2J1ZmZlcl9jcmVhdGUgKGJ1aWxkX3B1cmVfY19z
dHJpbmcgKCIgcHJpbjEiKSk7CisgIFZwcmluMV90b19zdHJpbmdfYnVmZmVyID0gRmdldF9idWZm
ZXJfY3JlYXRlIChidWlsZF9zdHJpbmcgKCIgcHJpbjEiKSk7CiAgIFZidWZmZXJfYWxpc3QgPSBR
bmlsOwogCi0gIEZzZXRfYnVmZmVyIChGZ2V0X2J1ZmZlcl9jcmVhdGUgKGJ1aWxkX3B1cmVfY19z
dHJpbmcgKCIqc2NyYXRjaCoiKSkpOworICBGc2V0X2J1ZmZlciAoRmdldF9idWZmZXJfY3JlYXRl
IChidWlsZF9zdHJpbmcgKCIqc2NyYXRjaCoiKSkpOwogCiAgIGluaGliaXRfbW9kaWZpY2F0aW9u
X2hvb2tzID0gMDsKIH0KQEAgLTU1MDAsOSArNTUwMCw5IEBAIHN5bXNfb2ZfYnVmZmVyICh2b2lk
KQogCSAgICAgICBRb3ZlcndyaXRlX21vZGVfYmluYXJ5KSk7CiAKICAgRnB1dCAoUXByb3RlY3Rl
ZF9maWVsZCwgUWVycm9yX2NvbmRpdGlvbnMsCi0JcHVyZV9saXN0IChRcHJvdGVjdGVkX2ZpZWxk
LCBRZXJyb3IpKTsKKwlsaXN0IChRcHJvdGVjdGVkX2ZpZWxkLCBRZXJyb3IpKTsKICAgRnB1dCAo
UXByb3RlY3RlZF9maWVsZCwgUWVycm9yX21lc3NhZ2UsCi0JYnVpbGRfcHVyZV9jX3N0cmluZyAo
IkF0dGVtcHQgdG8gbW9kaWZ5IGEgcHJvdGVjdGVkIGZpZWxkIikpOworCWJ1aWxkX3N0cmluZyAo
IkF0dGVtcHQgdG8gbW9kaWZ5IGEgcHJvdGVjdGVkIGZpZWxkIikpOwogCiAgIERFRlZBUl9QRVJf
QlVGRkVSICgiaGVhZGVyLWxpbmUtZm9ybWF0IiwKIAkJICAgICAmQlZBUiAoY3VycmVudF9idWZm
ZXIsIGhlYWRlcl9saW5lX2Zvcm1hdCksCmRpZmYgLS1naXQgYS9zcmMvY2FsbGludC5jIGIvc3Jj
L2NhbGxpbnQuYwppbmRleCA4MTIyODdkMzY1Li45MTBjMWFiNzNmIDEwMDY0NAotLS0gYS9zcmMv
Y2FsbGludC5jCisrKyBiL3NyYy9jYWxsaW50LmMKQEAgLTgxNiwxMCArODE2LDEwIEBAIHN5bXNf
b2ZfY2FsbGludCAodm9pZCkKICAgY2FsbGludF9tZXNzYWdlID0gUW5pbDsKICAgc3RhdGljcHJv
ICgmY2FsbGludF9tZXNzYWdlKTsKIAotICBwcmVzZXJ2ZWRfZm5zID0gcHVyZV9saXN0IChpbnRl
cm5fY19zdHJpbmcgKCJyZWdpb24tYmVnaW5uaW5nIiksCi0JCQkgICAgIGludGVybl9jX3N0cmlu
ZyAoInJlZ2lvbi1lbmQiKSwKLQkJCSAgICAgaW50ZXJuX2Nfc3RyaW5nICgicG9pbnQiKSwKLQkJ
CSAgICAgaW50ZXJuX2Nfc3RyaW5nICgibWFyayIpKTsKKyAgcHJlc2VydmVkX2ZucyA9IGxpc3Qg
KGludGVybl9jX3N0cmluZyAoInJlZ2lvbi1iZWdpbm5pbmciKSwKKwkJCWludGVybl9jX3N0cmlu
ZyAoInJlZ2lvbi1lbmQiKSwKKwkJCWludGVybl9jX3N0cmluZyAoInBvaW50IiksCisJCQlpbnRl
cm5fY19zdHJpbmcgKCJtYXJrIikpOwogICBzdGF0aWNwcm8gKCZwcmVzZXJ2ZWRfZm5zKTsKIAog
ICBERUZTWU0gKFFsaXN0LCAibGlzdCIpOwpkaWZmIC0tZ2l0IGEvc3JjL2NhdGVnb3J5LmMgYi9z
cmMvY2F0ZWdvcnkuYwppbmRleCA5ZTQ2MGNmYzY0Li45ZTc4NjRmMzE5IDEwMDY0NAotLS0gYS9z
cmMvY2F0ZWdvcnkuYworKysgYi9zcmMvY2F0ZWdvcnkuYwpAQCAtNTMsNyArNTMsNyBAQCBoYXNo
X2dldF9jYXRlZ29yeV9zZXQgKExpc3BfT2JqZWN0IHRhYmxlLCBMaXNwX09iamVjdCBjYXRlZ29y
eV9zZXQpCiAgICAgICAodGFibGUsIDEsCiAgICAgICAgbWFrZV9oYXNoX3RhYmxlIChoYXNodGVz
dF9lcXVhbCwgREVGQVVMVF9IQVNIX1NJWkUsCiAJCQlERUZBVUxUX1JFSEFTSF9TSVpFLCBERUZB
VUxUX1JFSEFTSF9USFJFU0hPTEQsCi0JCQlRbmlsLCBmYWxzZSkpOworCQkJUW5pbCkpOwogICBz
dHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICpoID0gWEhBU0hfVEFCTEUgKFhDSEFSX1RBQkxFICh0YWJs
ZSktPmV4dHJhc1sxXSk7CiAgIExpc3BfT2JqZWN0IGhhc2g7CiAgIHB0cmRpZmZfdCBpID0gaGFz
aF9sb29rdXAgKGgsIGNhdGVnb3J5X3NldCwgJmhhc2gpOwpAQCAtMTIwLDggKzEyMCw2IEBAIERF
RlVOICgiZGVmaW5lLWNhdGVnb3J5IiwgRmRlZmluZV9jYXRlZ29yeSwgU2RlZmluZV9jYXRlZ29y
eSwgMiwgMywgMCwKIAogICBpZiAoIU5JTFAgKENBVEVHT1JZX0RPQ1NUUklORyAodGFibGUsIFhG
SVhOQVQgKGNhdGVnb3J5KSkpKQogICAgIGVycm9yICgiQ2F0ZWdvcnkgYCVjJyBpcyBhbHJlYWR5
IGRlZmluZWQiLCAoaW50KSBYRklYTkFUIChjYXRlZ29yeSkpOwotICBpZiAoIU5JTFAgKFZwdXJp
ZnlfZmxhZykpCi0gICAgZG9jc3RyaW5nID0gRnB1cmVjb3B5IChkb2NzdHJpbmcpOwogICBTRVRf
Q0FURUdPUllfRE9DU1RSSU5HICh0YWJsZSwgWEZJWE5BVCAoY2F0ZWdvcnkpLCBkb2NzdHJpbmcp
OwogCiAgIHJldHVybiBRbmlsOwpkaWZmIC0tZ2l0IGEvc3JjL2NvZGluZy5jIGIvc3JjL2NvZGlu
Zy5jCmluZGV4IDE4OWE0YjM5ZDEuLjU2NTRhZTMzM2QgMTAwNjQ0Ci0tLSBhL3NyYy9jb2Rpbmcu
YworKysgYi9zcmMvY29kaW5nLmMKQEAgLTEwODIxLDcgKzEwODIxLDcgQEAgc3ltc19vZl9jb2Rp
bmcgKHZvaWQpCiAgIFZjb2RlX2NvbnZlcnNpb25fcmV1c2VkX3dvcmtidWYgPSBRbmlsOwogCiAg
IHN0YXRpY3BybyAoJlZjb2RlX2NvbnZlcnNpb25fd29ya2J1Zl9uYW1lKTsKLSAgVmNvZGVfY29u
dmVyc2lvbl93b3JrYnVmX25hbWUgPSBidWlsZF9wdXJlX2Nfc3RyaW5nICgiICpjb2RlLWNvbnZl
cnNpb24td29yayoiKTsKKyAgVmNvZGVfY29udmVyc2lvbl93b3JrYnVmX25hbWUgPSBidWlsZF9z
dHJpbmcgKCIgKmNvZGUtY29udmVyc2lvbi13b3JrKiIpOwogCiAgIHJldXNlZF93b3JrYnVmX2lu
X3VzZSA9IDA7CiAgIFBEVU1QRVJfUkVNRU1CRVJfU0NBTEFSIChyZXVzZWRfd29ya2J1Zl9pbl91
c2UpOwpAQCAtMTA4ODUsOSArMTA4ODUsOSBAQCBzeW1zX29mX2NvZGluZyAodm9pZCkKICAgLyog
RXJyb3Igc2lnbmFsZWQgd2hlbiB0aGVyZSdzIGEgcHJvYmxlbSB3aXRoIGRldGVjdGluZyBhIGNv
ZGluZyBzeXN0ZW0uICAqLwogICBERUZTWU0gKFFjb2Rpbmdfc3lzdGVtX2Vycm9yLCAiY29kaW5n
LXN5c3RlbS1lcnJvciIpOwogICBGcHV0IChRY29kaW5nX3N5c3RlbV9lcnJvciwgUWVycm9yX2Nv
bmRpdGlvbnMsCi0JcHVyZV9saXN0IChRY29kaW5nX3N5c3RlbV9lcnJvciwgUWVycm9yKSk7CisJ
bGlzdCAoUWNvZGluZ19zeXN0ZW1fZXJyb3IsIFFlcnJvcikpOwogICBGcHV0IChRY29kaW5nX3N5
c3RlbV9lcnJvciwgUWVycm9yX21lc3NhZ2UsCi0JYnVpbGRfcHVyZV9jX3N0cmluZyAoIkludmFs
aWQgY29kaW5nIHN5c3RlbSIpKTsKKwlidWlsZF9zdHJpbmcgKCJJbnZhbGlkIGNvZGluZyBzeXN0
ZW0iKSk7CiAKICAgREVGU1lNIChRdHJhbnNsYXRpb25fdGFibGUsICJ0cmFuc2xhdGlvbi10YWJs
ZSIpOwogICBGcHV0IChRdHJhbnNsYXRpb25fdGFibGUsIFFjaGFyX3RhYmxlX2V4dHJhX3Nsb3Rz
LCBtYWtlX2ZpeG51bSAoMikpOwpAQCAtMTExNTQsMjIgKzExMTU0LDIyIEBAIHN5bXNfb2ZfY29k
aW5nICh2b2lkKQogICBERUZWQVJfTElTUCAoImVvbC1tbmVtb25pYy11bml4IiwgZW9sX21uZW1v
bmljX3VuaXgsCiAJICAgICAgIGRvYzogLyoKIFN0cmluZyBkaXNwbGF5ZWQgaW4gbW9kZSBsaW5l
IGZvciBVTklYLWxpa2UgKExGKSBlbmQtb2YtbGluZSBmb3JtYXQuICAqLyk7Ci0gIGVvbF9tbmVt
b25pY191bml4ID0gYnVpbGRfcHVyZV9jX3N0cmluZyAoIjoiKTsKKyAgZW9sX21uZW1vbmljX3Vu
aXggPSBidWlsZF9zdHJpbmcgKCI6Iik7CiAKICAgREVGVkFSX0xJU1AgKCJlb2wtbW5lbW9uaWMt
ZG9zIiwgZW9sX21uZW1vbmljX2RvcywKIAkgICAgICAgZG9jOiAvKgogU3RyaW5nIGRpc3BsYXll
ZCBpbiBtb2RlIGxpbmUgZm9yIERPUy1saWtlIChDUkxGKSBlbmQtb2YtbGluZSBmb3JtYXQuICAq
Lyk7Ci0gIGVvbF9tbmVtb25pY19kb3MgPSBidWlsZF9wdXJlX2Nfc3RyaW5nICgiXFwiKTsKKyAg
ZW9sX21uZW1vbmljX2RvcyA9IGJ1aWxkX3N0cmluZyAoIlxcIik7CiAKICAgREVGVkFSX0xJU1Ag
KCJlb2wtbW5lbW9uaWMtbWFjIiwgZW9sX21uZW1vbmljX21hYywKIAkgICAgICAgZG9jOiAvKgog
U3RyaW5nIGRpc3BsYXllZCBpbiBtb2RlIGxpbmUgZm9yIE1BQy1saWtlIChDUikgZW5kLW9mLWxp
bmUgZm9ybWF0LiAgKi8pOwotICBlb2xfbW5lbW9uaWNfbWFjID0gYnVpbGRfcHVyZV9jX3N0cmlu
ZyAoIi8iKTsKKyAgZW9sX21uZW1vbmljX21hYyA9IGJ1aWxkX3N0cmluZyAoIi8iKTsKIAogICBE
RUZWQVJfTElTUCAoImVvbC1tbmVtb25pYy11bmRlY2lkZWQiLCBlb2xfbW5lbW9uaWNfdW5kZWNp
ZGVkLAogCSAgICAgICBkb2M6IC8qCiBTdHJpbmcgZGlzcGxheWVkIGluIG1vZGUgbGluZSB3aGVu
IGVuZC1vZi1saW5lIGZvcm1hdCBpcyBub3QgeWV0IGRldGVybWluZWQuICAqLyk7Ci0gIGVvbF9t
bmVtb25pY191bmRlY2lkZWQgPSBidWlsZF9wdXJlX2Nfc3RyaW5nICgiOiIpOworICBlb2xfbW5l
bW9uaWNfdW5kZWNpZGVkID0gYnVpbGRfc3RyaW5nICgiOiIpOwogCiAgIERFRlZBUl9MSVNQICgi
ZW5hYmxlLWNoYXJhY3Rlci10cmFuc2xhdGlvbiIsIFZlbmFibGVfY2hhcmFjdGVyX3RyYW5zbGF0
aW9uLAogCSAgICAgICBkb2M6IC8qCkBAIC0xMTMwOSw3ICsxMTMwOSw3IEBAIHN5c3RlbSAoZS5n
LiBgaXNvLTIwMjItN2JpdCcpLgogICAgICAgaW50ZXJuX2Nfc3RyaW5nICgiOmZvci11bmlieXRl
IiksCiAgICAgICBhcmdzW2NvZGluZ19hcmdfZm9yX3VuaWJ5dGVdID0gUXQsCiAgICAgICBpbnRl
cm5fY19zdHJpbmcgKCI6ZG9jc3RyaW5nIiksCi0gICAgICAoYnVpbGRfcHVyZV9jX3N0cmluZwor
ICAgICAgKGJ1aWxkX3N0cmluZwogICAgICAgICgiRG8gbm8gY29udmVyc2lvbi5cbiIKIAkiXG4i
CiAJIldoZW4geW91IHZpc2l0IGEgZmlsZSB3aXRoIHRoaXMgY29kaW5nLCB0aGUgZmlsZSBpcyBy
ZWFkIGludG8gYVxuIgpAQCAtMTEzMjksNyArMTEzMjksNyBAQCBzeXN0ZW0gKGUuZy4gYGlzby0y
MDIyLTdiaXQnKS4KICAgcGxpc3RbOF0gPSBpbnRlcm5fY19zdHJpbmcgKCI6Y2hhcnNldC1saXN0
Iik7CiAgIHBsaXN0WzldID0gYXJnc1tjb2RpbmdfYXJnX2NoYXJzZXRfbGlzdF0gPSBsaXN0MSAo
UWFzY2lpKTsKICAgcGxpc3RbMTFdID0gYXJnc1tjb2RpbmdfYXJnX2Zvcl91bmlieXRlXSA9IFFu
aWw7Ci0gIHBsaXN0WzEzXSA9IGJ1aWxkX3B1cmVfY19zdHJpbmcgKCJObyBjb252ZXJzaW9uIG9u
IGVuY29kaW5nLCAiCisgIHBsaXN0WzEzXSA9IGJ1aWxkX3N0cmluZyAoIk5vIGNvbnZlcnNpb24g
b24gZW5jb2RpbmcsICIKIAkJCQkgICAiYXV0b21hdGljIGNvbnZlcnNpb24gb24gZGVjb2Rpbmcu
Iik7CiAgIHBsaXN0WzE1XSA9IGFyZ3NbY29kaW5nX2FyZ19lb2xfdHlwZV0gPSBRbmlsOwogICBh
cmdzW2NvZGluZ19hcmdfcGxpc3RdID0gQ0FMTE1BTlkgKEZsaXN0LCBwbGlzdCk7CmRpZmYgLS1n
aXQgYS9zcmMvY29uZl9wb3N0LmggYi9zcmMvY29uZl9wb3N0LmgKaW5kZXggNGFmMWJhOTMzMS4u
OTJlYWY3NTM3NSAxMDA2NDQKLS0tIGEvc3JjL2NvbmZfcG9zdC5oCisrKyBiL3NyYy9jb25mX3Bv
c3QuaApAQCAtMTU4LDQxICsxNTgsOCBAQCAjZGVmaW5lIGVtYWNzX3JhaXNlKHNpZykgbXNkb3Nf
ZmF0YWxfc2lnbmFsIChzaWcpCiAKIC8qIERBVEFfU1RBUlQgaXMgbmVlZGVkIGJ5IHZtLWxpbWl0
LmMgYW5kIHVuZXhjb2ZmLmMuICovCiAjZGVmaW5lIERBVEFfU1RBUlQgKCZldGV4dCArIDEpCi0K
LS8qIERlZmluZSBvbmUgb2YgdGhlc2UgZm9yIGVhc2llciBjb25kaXRpb25hbHMuICAqLwotI2lm
ZGVmIEhBVkVfWF9XSU5ET1dTCi0vKiBXZSBuZWVkIGEgbGl0dGxlIGV4dHJhIHNwYWNlLCBzZWUg
Li4vLi4vbGlzcC9sb2FkdXAuZWwgYW5kIHRoZQotICAgY29tbWVudGFyeSBiZWxvdywgaW4gdGhl
IG5vbi1YIGJyYW5jaC4gIFRoZSAxNDBLQiBudW1iZXIgd2FzCi0gICBtZWFzdXJlZCBvbiBHTlUv
TGludXggYW5kIG9uIE1TLVdpbmRvd3MuICAqLwotI2RlZmluZSBTWVNURU1fUFVSRVNJWkVfRVhU
UkEgKC0xNzAwMDArMTQwMDAwKQotI2Vsc2UKLS8qIFdlIG5lZWQgYSBsaXR0bGUgZXh0cmEgc3Bh
Y2UsIHNlZSAuLi8uLi9saXNwL2xvYWR1cC5lbC4KLSAgIEFzIG9mIDIwMDkxMDI0LCBET1Mtc3Bl
Y2lmaWMgZmlsZXMgdXNlIHVwIDYyS0Igb2YgcHVyZSBzcGFjZS4gIEJ1dAotICAgb3ZlcmFsbCwg
d2UgZW5kIHVwIHdhc3RpbmcgMTMwS0Igb2YgcHVyZSBzcGFjZSwgYmVjYXVzZQotICAgQkFTRV9Q
VVJFU0laRSBzdGFydHMgYXQgMS40N01CLCB3aGlsZSB3ZSBuZWVkIG9ubHkgMS4zTUIgKGluY2x1
ZGluZwotICAgbm9uLURPUyBzcGVjaWZpYyBmaWxlcyBhbmQgbG9hZCBoaXN0b3J5OyB0aGUgbGF0
dGVyIGlzIGFib3V0IDU1SywKLSAgIGJ1dCBkZXBlbmRzIG9uIHRoZSBkZXB0aCBvZiB0aGUgdG9w
LWxldmVsIEVtYWNzIGRpcmVjdG9yeSBpbiB0aGUKLSAgIGRpcmVjdG9yeSB0cmVlKS4gIEdpdmVu
IHRoZSB1bmtub3duIHBvbGljeSBvZiBkaWZmZXJlbnQgRFBNSQotICAgaG9zdHMgcmVnYXJkaW5n
IGxvYWRpbmcgb2YgdW50b3VjaGVkIHBhZ2VzLCBJJ20gbm90IGdvaW5nIHRvIHJpc2sKLSAgIGVu
bGFyZ2luZyBFbWFjcyBmb290cHJpbnQgYnkgYW5vdGhlciAxMDArIEtCeXRlcy4gICovCi0jZGVm
aW5lIFNZU1RFTV9QVVJFU0laRV9FWFRSQSAoLTE3MDAwMCs5MDAwMCkKLSNlbmRpZgogI2VuZGlm
ICAvKiBNU0RPUyAqLwogCi0vKiBtYWNPUyAvIEdOVXN0ZXAgbmVlZCBhIGJpdCBtb3JlIHB1cmUg
bWVtb3J5LiAgT2YgdGhlIGV4aXN0aW5nIGtub2JzLAotICAgU1lTVEVNX1BVUkVTSVpFX0VYVFJB
IHNlZW1zIGxpa2UgdGhlIGxlYXN0IGxpa2VseSB0byBjYXVzZSBwcm9ibGVtcy4gICovCi0jaWZk
ZWYgSEFWRV9OUwotI2lmIGRlZmluZWQgTlNfSU1QTF9HTlVTVEVQCi0jICBkZWZpbmUgU1lTVEVN
X1BVUkVTSVpFX0VYVFJBIDMwMDAwCi0jZWxpZiBkZWZpbmVkIERBUldJTl9PUwotIyAgZGVmaW5l
IFNZU1RFTV9QVVJFU0laRV9FWFRSQSAyMDAwMDAKLSNlbmRpZgotI2VuZGlmCi0KLSNpZmRlZiBD
WUdXSU4KLSNkZWZpbmUgU1lTVEVNX1BVUkVTSVpFX0VYVFJBIDUwMDAwCi0jZW5kaWYKLQogI2lm
IGRlZmluZWQgSEFWRV9OVEdVSSAmJiAhZGVmaW5lZCBEZWJQcmludAogIyBpZmRlZiBFTUFDU0RF
QlVHCiBleHRlcm4gdm9pZCBfRGViUHJpbnQgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKZGlmZiAt
LWdpdCBhL3NyYy9kYXRhLmMgYi9zcmMvZGF0YS5jCmluZGV4IDQ2YmQ3ZTBlMjUuLjM5ZDBkNGJk
ZmEgMTAwNjQ0Ci0tLSBhL3NyYy9kYXRhLmMKKysrIGIvc3JjL2RhdGEuYwpAQCAtMzAsNyArMzAs
NiBAQAogCiAjaW5jbHVkZSAibGlzcC5oIgogI2luY2x1ZGUgImJpZ251bS5oIgotI2luY2x1ZGUg
InB1cmVzaXplLmgiCiAjaW5jbHVkZSAiY2hhcmFjdGVyLmgiCiAjaW5jbHVkZSAiYnVmZmVyLmgi
CiAjaW5jbHVkZSAia2V5Ym9hcmQuaCIKQEAgLTE1NSwxMiArMTU0LDYgQEAgd3JvbmdfdHlwZV9h
cmd1bWVudCAocmVnaXN0ZXIgTGlzcF9PYmplY3QgcHJlZGljYXRlLCByZWdpc3RlciBMaXNwX09i
amVjdCB2YWx1ZSkKICAgeHNpZ25hbDIgKFF3cm9uZ190eXBlX2FyZ3VtZW50LCBwcmVkaWNhdGUs
IHZhbHVlKTsKIH0KIAotdm9pZAotcHVyZV93cml0ZV9lcnJvciAoTGlzcF9PYmplY3Qgb2JqKQot
ewotICB4c2lnbmFsMiAoUWVycm9yLCBidWlsZF9zdHJpbmcgKCJBdHRlbXB0IHRvIG1vZGlmeSBy
ZWFkLW9ubHkgb2JqZWN0IiksIG9iaik7Ci19Ci0KIHZvaWQKIGFyZ3Nfb3V0X29mX3JhbmdlIChM
aXNwX09iamVjdCBhMSwgTGlzcF9PYmplY3QgYTIpCiB7CkBAIC02MzEsNyArNjI0LDYgQEAgREVG
VU4gKCJzZXRjYXIiLCBGc2V0Y2FyLCBTc2V0Y2FyLCAyLCAyLCAwLAogICAocmVnaXN0ZXIgTGlz
cF9PYmplY3QgY2VsbCwgTGlzcF9PYmplY3QgbmV3Y2FyKQogewogICBDSEVDS19DT05TIChjZWxs
KTsKLSAgQ0hFQ0tfSU1QVVJFIChjZWxsLCBYQ09OUyAoY2VsbCkpOwogICBYU0VUQ0FSIChjZWxs
LCBuZXdjYXIpOwogICByZXR1cm4gbmV3Y2FyOwogfQpAQCAtNjQxLDcgKzYzMyw2IEBAIERFRlVO
ICgic2V0Y2RyIiwgRnNldGNkciwgU3NldGNkciwgMiwgMiwgMCwKICAgKHJlZ2lzdGVyIExpc3Bf
T2JqZWN0IGNlbGwsIExpc3BfT2JqZWN0IG5ld2NkcikKIHsKICAgQ0hFQ0tfQ09OUyAoY2VsbCk7
Ci0gIENIRUNLX0lNUFVSRSAoY2VsbCwgWENPTlMgKGNlbGwpKTsKICAgWFNFVENEUiAoY2VsbCwg
bmV3Y2RyKTsKICAgcmV0dXJuIG5ld2NkcjsKIH0KQEAgLTc5NSwxMCArNzg2LDYgQEAgREVGVU4g
KCJkZWZhbGlhcyIsIEZkZWZhbGlhcywgU2RlZmFsaWFzLCAyLCAzLCAwLAogICAocmVnaXN0ZXIg
TGlzcF9PYmplY3Qgc3ltYm9sLCBMaXNwX09iamVjdCBkZWZpbml0aW9uLCBMaXNwX09iamVjdCBk
b2NzdHJpbmcpCiB7CiAgIENIRUNLX1NZTUJPTCAoc3ltYm9sKTsKLSAgaWYgKCFOSUxQIChWcHVy
aWZ5X2ZsYWcpCi0gICAgICAvKiBJZiBgZGVmaW5pdGlvbicgaXMgYSBrZXltYXAsIGltbXV0YWJs
ZSAoYW5kIGNvcHlpbmcpIGlzIHdyb25nLiAgKi8KLSAgICAgICYmICFLRVlNQVBQIChkZWZpbml0
aW9uKSkKLSAgICBkZWZpbml0aW9uID0gRnB1cmVjb3B5IChkZWZpbml0aW9uKTsKIAogICB7CiAg
ICAgYm9vbCBhdXRvbG9hZCA9IEFVVE9MT0FEUCAoZGVmaW5pdGlvbik7CkBAIC0yMjcxLDcgKzIy
NTgsNiBAQCBERUZVTiAoImFzZXQiLCBGYXNldCwgU2FzZXQsIDMsIDMsIDAsCiAKICAgaWYgKFZF
Q1RPUlAgKGFycmF5KSkKICAgICB7Ci0gICAgICBDSEVDS19JTVBVUkUgKGFycmF5LCBYVkVDVE9S
IChhcnJheSkpOwogICAgICAgaWYgKGlkeHZhbCA8IDAgfHwgaWR4dmFsID49IEFTSVpFIChhcnJh
eSkpCiAJYXJnc19vdXRfb2ZfcmFuZ2UgKGFycmF5LCBpZHgpOwogICAgICAgQVNFVCAoYXJyYXks
IGlkeHZhbCwgbmV3ZWx0KTsKQEAgLTIyOTcsNyArMjI4Myw2IEBAIERFRlVOICgiYXNldCIsIEZh
c2V0LCBTYXNldCwgMywgMywgMCwKICAgICB7CiAgICAgICBpbnQgYzsKIAotICAgICAgQ0hFQ0tf
SU1QVVJFIChhcnJheSwgWFNUUklORyAoYXJyYXkpKTsKICAgICAgIGlmIChpZHh2YWwgPCAwIHx8
IGlkeHZhbCA+PSBTQ0hBUlMgKGFycmF5KSkKIAlhcmdzX291dF9vZl9yYW5nZSAoYXJyYXksIGlk
eCk7CiAgICAgICBDSEVDS19DSEFSQUNURVIgKG5ld2VsdCk7CkBAIC0zODU0LDcgKzM4MzksNyBA
QCBzeW1zX29mX2RhdGEgKHZvaWQpCiAKICAgREVGU1lNIChRY2RyLCAiY2RyIik7CiAKLSAgZXJy
b3JfdGFpbCA9IHB1cmVfY29ucyAoUWVycm9yLCBRbmlsKTsKKyAgZXJyb3JfdGFpbCA9IEZjb25z
IChRZXJyb3IsIFFuaWwpOwogCiAgIC8qIEVSUk9SIGlzIHVzZWQgYXMgYSBzaWduYWxlciBmb3Ig
cmFuZG9tIGVycm9ycyBmb3Igd2hpY2ggbm90aGluZyBlbHNlIGlzCiAgICAgIHJpZ2h0LiAgKi8K
QEAgLTM4NjIsMTEgKzM4NDcsMTEgQEAgc3ltc19vZl9kYXRhICh2b2lkKQogICBGcHV0IChRZXJy
b3IsIFFlcnJvcl9jb25kaXRpb25zLAogCWVycm9yX3RhaWwpOwogICBGcHV0IChRZXJyb3IsIFFl
cnJvcl9tZXNzYWdlLAotCWJ1aWxkX3B1cmVfY19zdHJpbmcgKCJlcnJvciIpKTsKKwlidWlsZF9z
dHJpbmcgKCJlcnJvciIpKTsKIAogI2RlZmluZSBQVVRfRVJST1Ioc3ltLCB0YWlsLCBtc2cpCQkJ
XAotICBGcHV0IChzeW0sIFFlcnJvcl9jb25kaXRpb25zLCBwdXJlX2NvbnMgKHN5bSwgdGFpbCkp
OyBcCi0gIEZwdXQgKHN5bSwgUWVycm9yX21lc3NhZ2UsIGJ1aWxkX3B1cmVfY19zdHJpbmcgKG1z
ZykpCisgIEZwdXQgKHN5bSwgUWVycm9yX2NvbmRpdGlvbnMsIEZjb25zIChzeW0sIHRhaWwpKTsg
XAorICBGcHV0IChzeW0sIFFlcnJvcl9tZXNzYWdlLCBidWlsZF9zdHJpbmcgKG1zZykpCiAKICAg
UFVUX0VSUk9SIChRcXVpdCwgUW5pbCwgIlF1aXQiKTsKIApAQCAtMzg5NCwxNCArMzg3OSwxNCBA
QCAjZGVmaW5lIFBVVF9FUlJPUihzeW0sIHRhaWwsIG1zZykJCQlcCiAgIFBVVF9FUlJPUiAoUW5v
X2NhdGNoLCBlcnJvcl90YWlsLCAiTm8gY2F0Y2ggZm9yIHRhZyIpOwogICBQVVRfRVJST1IgKFFl
bmRfb2ZfZmlsZSwgZXJyb3JfdGFpbCwgIkVuZCBvZiBmaWxlIGR1cmluZyBwYXJzaW5nIik7CiAK
LSAgYXJpdGhfdGFpbCA9IHB1cmVfY29ucyAoUWFyaXRoX2Vycm9yLCBlcnJvcl90YWlsKTsKKyAg
YXJpdGhfdGFpbCA9IEZjb25zIChRYXJpdGhfZXJyb3IsIGVycm9yX3RhaWwpOwogICBGcHV0IChR
YXJpdGhfZXJyb3IsIFFlcnJvcl9jb25kaXRpb25zLCBhcml0aF90YWlsKTsKLSAgRnB1dCAoUWFy
aXRoX2Vycm9yLCBRZXJyb3JfbWVzc2FnZSwgYnVpbGRfcHVyZV9jX3N0cmluZyAoIkFyaXRobWV0
aWMgZXJyb3IiKSk7CisgIEZwdXQgKFFhcml0aF9lcnJvciwgUWVycm9yX21lc3NhZ2UsIGJ1aWxk
X3N0cmluZyAoIkFyaXRobWV0aWMgZXJyb3IiKSk7CiAKICAgUFVUX0VSUk9SIChRYmVnaW5uaW5n
X29mX2J1ZmZlciwgZXJyb3JfdGFpbCwgIkJlZ2lubmluZyBvZiBidWZmZXIiKTsKICAgUFVUX0VS
Uk9SIChRZW5kX29mX2J1ZmZlciwgZXJyb3JfdGFpbCwgIkVuZCBvZiBidWZmZXIiKTsKICAgUFVU
X0VSUk9SIChRYnVmZmVyX3JlYWRfb25seSwgZXJyb3JfdGFpbCwgIkJ1ZmZlciBpcyByZWFkLW9u
bHkiKTsKLSAgUFVUX0VSUk9SIChRdGV4dF9yZWFkX29ubHksIHB1cmVfY29ucyAoUWJ1ZmZlcl9y
ZWFkX29ubHksIGVycm9yX3RhaWwpLAorICBQVVRfRVJST1IgKFF0ZXh0X3JlYWRfb25seSwgRmNv
bnMgKFFidWZmZXJfcmVhZF9vbmx5LCBlcnJvcl90YWlsKSwKIAkgICAgICJUZXh0IGlzIHJlYWQt
b25seSIpOwogCiAgIERFRlNZTSAoUXJhbmdlX2Vycm9yLCAicmFuZ2UtZXJyb3IiKTsKZGlmZiAt
LWdpdCBhL3NyYy9kYnVzYmluZC5jIGIvc3JjL2RidXNiaW5kLmMKaW5kZXggOTBiYTQ2MWM2Yi4u
NGM5YmI0YWJjYSAxMDA2NDQKLS0tIGEvc3JjL2RidXNiaW5kLmMKKysrIGIvc3JjL2RidXNiaW5k
LmMKQEAgLTE2OTAsNyArMTY5MCw3IEBAIHN5bXNfb2ZfZGJ1c2JpbmQgKHZvaWQpCiAgIEZwdXQg
KFFkYnVzX2Vycm9yLCBRZXJyb3JfY29uZGl0aW9ucywKIAlsaXN0MiAoUWRidXNfZXJyb3IsIFFl
cnJvcikpOwogICBGcHV0IChRZGJ1c19lcnJvciwgUWVycm9yX21lc3NhZ2UsCi0JYnVpbGRfcHVy
ZV9jX3N0cmluZyAoIkQtQnVzIGVycm9yIikpOworCWJ1aWxkX3N0cmluZyAoIkQtQnVzIGVycm9y
IikpOwogCiAgIC8qIExpc3Agc3ltYm9scyBvZiB0aGUgc3lzdGVtIGFuZCBzZXNzaW9uIGJ1c2Vz
LiAgKi8KICAgREVGU1lNIChRQ3N5c3RlbSwgIjpzeXN0ZW0iKTsKQEAgLTE3MjksNyArMTcyOSw3
IEBAIHN5bXNfb2ZfZGJ1c2JpbmQgKHZvaWQpCiAJICAgICAgIFZkYnVzX2NvbXBpbGVkX3ZlcnNp
b24sCiAgICAgZG9jOiAvKiBUaGUgdmVyc2lvbiBvZiBELUJ1cyBFbWFjcyBpcyBjb21waWxlZCBh
Z2FpbnN0LiAgKi8pOwogI2lmZGVmIERCVVNfVkVSU0lPTl9TVFJJTkcKLSAgVmRidXNfY29tcGls
ZWRfdmVyc2lvbiA9IGJ1aWxkX3B1cmVfY19zdHJpbmcgKERCVVNfVkVSU0lPTl9TVFJJTkcpOwor
ICBWZGJ1c19jb21waWxlZF92ZXJzaW9uID0gYnVpbGRfc3RyaW5nIChEQlVTX1ZFUlNJT05fU1RS
SU5HKTsKICNlbHNlCiAgIFZkYnVzX2NvbXBpbGVkX3ZlcnNpb24gPSBRbmlsOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9zcmMvZGVwcy5tayBiL3NyYy9kZXBzLm1rCmluZGV4IDJjZGViYThkNGEuLjYz
N2Q4MmMzNWYgMTAwNjQ0Ci0tLSBhL3NyYy9kZXBzLm1rCisrKyBiL3NyYy9kZXBzLm1rCkBAIC0x
MzIsMTAgKzEzMiwxMCBAQCBpbnNkZWwubzoKIGtleWJvYXJkLm86IGtleWJvYXJkLmMgdGVybWNo
YXIuaCB0ZXJtaG9va3MuaCB0ZXJtb3B0cy5oIGJ1ZmZlci5oIGNoYXJhY3Rlci5oIFwKICAgIGNv
bW1hbmRzLmggZnJhbWUuaCB3aW5kb3cuaCBtYWNyb3MuaCBkaXNwdGFiLmgga2V5Ym9hcmQuaCBz
eXNzaWduYWwuaCBcCiAgICBzeXN0aW1lLmggc3ludGF4LmggJChJTlRFUlZBTFNfSCkgYmxvY2tp
bnB1dC5oIGF0aW1lci5oIGNvbXBvc2l0ZS5oIFwKLSAgIHh0ZXJtLmggcHVyZXNpemUuaCBtc2Rv
cy5oIGtleW1hcC5oIHczMnRlcm0uaCBuc3Rlcm0uaCBuc2d1aS5oIGNvZGluZy5oIFwKKyAgIHh0
ZXJtLmggbXNkb3MuaCBrZXltYXAuaCB3MzJ0ZXJtLmggbnN0ZXJtLmggbnNndWkuaCBjb2Rpbmcu
aCBcCiAgICBwcm9jZXNzLmggLi4vbGliL3VuaXN0ZC5oIGdudXRscy5oIGxpc3AuaCBnbG9iYWxz
LmggJChjb25maWdfaCkKIGtleW1hcC5vOiBrZXltYXAuYyBidWZmZXIuaCBjb21tYW5kcy5oIGtl
eWJvYXJkLmggdGVybWhvb2tzLmggYmxvY2tpbnB1dC5oIFwKLSAgIGF0aW1lci5oIHN5c3RpbWUu
aCBwdXJlc2l6ZS5oIGNoYXJhY3Rlci5oIGNoYXJzZXQuaCAkKElOVEVSVkFMU19IKSBcCisgICBh
dGltZXIuaCBzeXN0aW1lLmggY2hhcmFjdGVyLmggY2hhcnNldC5oICQoSU5URVJWQUxTX0gpIFwK
ICAgIGtleW1hcC5oIHdpbmRvdy5oIGNvZGluZy5oIGZyYW1lLmggbGlzcC5oIGdsb2JhbHMuaCAk
KGNvbmZpZ19oKQogbGFzdGZpbGUubzogbGFzdGZpbGUuYyAkKGNvbmZpZ19oKQogbWFjcm9zLm86
IG1hY3Jvcy5jIHdpbmRvdy5oIGJ1ZmZlci5oIGNvbW1hbmRzLmggbWFjcm9zLmgga2V5Ym9hcmQu
aCBtc2Rvcy5oIFwKQEAgLTI3MCwxMiArMjcwLDEyIEBAIHhzZXR0aW5ncy5vOgogICAgYXRpbWVy
LmggdGVybW9wdHMuaCBnbG9iYWxzLmgKIAogIyMgVGhlIGZpbGVzIG9mIExpc3AgcHJvcGVyLgot
YWxsb2MubzogYWxsb2MuYyBwcm9jZXNzLmggZnJhbWUuaCB3aW5kb3cuaCBidWZmZXIuaCAgcHVy
ZXNpemUuaCBzeXNzaWduYWwuaCBcCithbGxvYy5vOiBhbGxvYy5jIHByb2Nlc3MuaCBmcmFtZS5o
IHdpbmRvdy5oIGJ1ZmZlci5oIHN5c3NpZ25hbC5oIFwKICAgIGtleWJvYXJkLmggYmxvY2tpbnB1
dC5oIGF0aW1lci5oIHN5c3RpbWUuaCBjaGFyYWN0ZXIuaCBsaXNwLmggJChjb25maWdfaCkgXAog
ICAgJChJTlRFUlZBTFNfSCkgdGVybWhvb2tzLmggZ251dGxzLmggY29kaW5nLmggLi4vbGliL3Vu
aXN0ZC5oIGdsb2JhbHMuaAogYnl0ZWNvZGUubzogYnl0ZWNvZGUuYyBidWZmZXIuaCBzeW50YXgu
aCBjaGFyYWN0ZXIuaCB3aW5kb3cuaCBkaXNwZXh0ZXJuLmggXAogICBsaXNwLmggZ2xvYmFscy5o
ICQoY29uZmlnX2gpIG1zZG9zLmgKLWRhdGEubzogZGF0YS5jIGJ1ZmZlci5oIHB1cmVzaXplLmgg
Y2hhcmFjdGVyLmggc3lzc2lnbmFsLmgga2V5Ym9hcmQuaCBmcmFtZS5oIFwKK2RhdGEubzogZGF0
YS5jIGJ1ZmZlci5oIGNoYXJhY3Rlci5oIHN5c3NpZ25hbC5oIGtleWJvYXJkLmggZnJhbWUuaCBc
CiAgICB0ZXJtaG9va3MuaCBzeXN0aW1lLmggY29kaW5nLmggY29tcG9zaXRlLmggZGlzcGV4dGVy
bi5oIGZvbnQuaCBjY2wuaCBcCiAgICBsaXNwLmggZ2xvYmFscy5oICQoY29uZmlnX2gpIG1zZG9z
LmgKIGV2YWwubzogZXZhbC5jIGNvbW1hbmRzLmgga2V5Ym9hcmQuaCBibG9ja2lucHV0LmggYXRp
bWVyLmggc3lzdGltZS5oIGZyYW1lLmggXApAQCAtMjk4LDcgKzI5OCw3IEBAIGxyZWFkLm86CiBj
b21wb3NpdGUubzogY29tcG9zaXRlLmMgY29tcG9zaXRlLmggYnVmZmVyLmggY2hhcmFjdGVyLmgg
Y29kaW5nLmggZm9udC5oIFwKICAgIGNjbC5oIGZyYW1lLmggdGVybWhvb2tzLmggJChJTlRFUlZB
TFNfSCkgd2luZG93LmggXAogICAgbGlzcC5oIGdsb2JhbHMuaCAkKGNvbmZpZ19oKQotaW50ZXJ2
YWxzLm86IGludGVydmFscy5jIGJ1ZmZlci5oICQoSU5URVJWQUxTX0gpIGtleWJvYXJkLmggcHVy
ZXNpemUuaCBcCitpbnRlcnZhbHMubzogaW50ZXJ2YWxzLmMgYnVmZmVyLmggJChJTlRFUlZBTFNf
SCkga2V5Ym9hcmQuaCBcCiAgICBrZXltYXAuaCBsaXNwLmggZ2xvYmFscy5oICQoY29uZmlnX2gp
IHN5c3RpbWUuaCBjb2RpbmcuaAogdGV4dHByb3AubzogdGV4dHByb3AuYyBidWZmZXIuaCB3aW5k
b3cuaCAkKElOVEVSVkFMU19IKSBcCiAgICBsaXNwLmggZ2xvYmFscy5oICQoY29uZmlnX2gpCmRp
ZmYgLS1naXQgYS9zcmMvZG9jLmMgYi9zcmMvZG9jLmMKaW5kZXggOGI2NjNmMGYyNC4uNWNjMjY4
YjdlOSAxMDA2NDQKLS0tIGEvc3JjL2RvYy5jCisrKyBiL3NyYy9kb2MuYwpAQCAtNTAwLDggKzUw
MCw2IEBAIHN0b3JlX2Z1bmN0aW9uX2RvY3N0cmluZyAoTGlzcF9PYmplY3Qgb2JqLCBFTUFDU19J
TlQgb2Zmc2V0KQogCXsKIAkgIHRlbSA9IEZjZHIgKEZjZHIgKGZ1bikpOwogCSAgaWYgKENPTlNQ
ICh0ZW0pICYmIEZJWE5VTVAgKFhDQVIgKHRlbSkpKQotCSAgICAvKiBGSVhNRTogVGhpcyBtb2Rp
ZmllcyB0eXBpY2FsbHkgcHVyZSBoYXNoLWNvbnMnZCBkYXRhLCBzbyBpdHMKLQkgICAgICAgY29y
cmVjdG5lc3MgaXMgcXVpdGUgZGVsaWNhdGUuICAqLwogCSAgICBYU0VUQ0FSICh0ZW0sIG1ha2Vf
Zml4bnVtIChvZmZzZXQpKTsKIAl9CiAgICAgfQpAQCAtNTg1LDcgKzU4Myw2IEBAIERFRlVOICgi
U25hcmYtZG9jdW1lbnRhdGlvbiIsIEZzbmFyZl9kb2N1bWVudGF0aW9uLCBTc25hcmZfZG9jdW1l
bnRhdGlvbiwKICAgICAgIGludCBpID0gQVJSQVlFTFRTIChidWlsZG9iaik7CiAgICAgICB3aGls
ZSAoMCA8PSAtLWkpCiAJVmJ1aWxkX2ZpbGVzID0gRmNvbnMgKGJ1aWxkX3N0cmluZyAoYnVpbGRv
YmpbaV0pLCBWYnVpbGRfZmlsZXMpOwotICAgICAgVmJ1aWxkX2ZpbGVzID0gRnB1cmVjb3B5IChW
YnVpbGRfZmlsZXMpOwogICAgIH0KIAogICBmZCA9IGVtYWNzX29wZW4gKG5hbWUsIE9fUkRPTkxZ
LCAwKTsKZGlmZiAtLWdpdCBhL3NyYy9lbWFjcy1tb2R1bGUuYyBiL3NyYy9lbWFjcy1tb2R1bGUu
YwppbmRleCA0Yjk5MWExYzc0Li5jYjMwMmM3MDIyIDEwMDY0NAotLS0gYS9zcmMvZW1hY3MtbW9k
dWxlLmMKKysrIGIvc3JjL2VtYWNzLW1vZHVsZS5jCkBAIC0xMzI4LDQwICsxMzI4LDQwIEBAIHN5
bXNfb2ZfbW9kdWxlICh2b2lkKQogCiAgIERFRlNZTSAoUW1vZHVsZV9sb2FkX2ZhaWxlZCwgIm1v
ZHVsZS1sb2FkLWZhaWxlZCIpOwogICBGcHV0IChRbW9kdWxlX2xvYWRfZmFpbGVkLCBRZXJyb3Jf
Y29uZGl0aW9ucywKLQlwdXJlX2xpc3QgKFFtb2R1bGVfbG9hZF9mYWlsZWQsIFFlcnJvcikpOwor
CWxpc3QgKFFtb2R1bGVfbG9hZF9mYWlsZWQsIFFlcnJvcikpOwogICBGcHV0IChRbW9kdWxlX2xv
YWRfZmFpbGVkLCBRZXJyb3JfbWVzc2FnZSwKLSAgICAgICAgYnVpbGRfcHVyZV9jX3N0cmluZyAo
Ik1vZHVsZSBsb2FkIGZhaWxlZCIpKTsKKyAgICAgICAgYnVpbGRfc3RyaW5nICgiTW9kdWxlIGxv
YWQgZmFpbGVkIikpOwogCiAgIERFRlNZTSAoUW1vZHVsZV9vcGVuX2ZhaWxlZCwgIm1vZHVsZS1v
cGVuLWZhaWxlZCIpOwogICBGcHV0IChRbW9kdWxlX29wZW5fZmFpbGVkLCBRZXJyb3JfY29uZGl0
aW9ucywKLQlwdXJlX2xpc3QgKFFtb2R1bGVfb3Blbl9mYWlsZWQsIFFtb2R1bGVfbG9hZF9mYWls
ZWQsIFFlcnJvcikpOworCWxpc3QgKFFtb2R1bGVfb3Blbl9mYWlsZWQsIFFtb2R1bGVfbG9hZF9m
YWlsZWQsIFFlcnJvcikpOwogICBGcHV0IChRbW9kdWxlX29wZW5fZmFpbGVkLCBRZXJyb3JfbWVz
c2FnZSwKLSAgICAgICAgYnVpbGRfcHVyZV9jX3N0cmluZyAoIk1vZHVsZSBjb3VsZCBub3QgYmUg
b3BlbmVkIikpOworICAgICAgICBidWlsZF9zdHJpbmcgKCJNb2R1bGUgY291bGQgbm90IGJlIG9w
ZW5lZCIpKTsKIAogICBERUZTWU0gKFFtb2R1bGVfbm90X2dwbF9jb21wYXRpYmxlLCAibW9kdWxl
LW5vdC1ncGwtY29tcGF0aWJsZSIpOwogICBGcHV0IChRbW9kdWxlX25vdF9ncGxfY29tcGF0aWJs
ZSwgUWVycm9yX2NvbmRpdGlvbnMsCi0JcHVyZV9saXN0IChRbW9kdWxlX25vdF9ncGxfY29tcGF0
aWJsZSwgUW1vZHVsZV9sb2FkX2ZhaWxlZCwgUWVycm9yKSk7CisJbGlzdCAoUW1vZHVsZV9ub3Rf
Z3BsX2NvbXBhdGlibGUsIFFtb2R1bGVfbG9hZF9mYWlsZWQsIFFlcnJvcikpOwogICBGcHV0IChR
bW9kdWxlX25vdF9ncGxfY29tcGF0aWJsZSwgUWVycm9yX21lc3NhZ2UsCi0gICAgICAgIGJ1aWxk
X3B1cmVfY19zdHJpbmcgKCJNb2R1bGUgaXMgbm90IEdQTCBjb21wYXRpYmxlIikpOworICAgICAg
ICBidWlsZF9zdHJpbmcgKCJNb2R1bGUgaXMgbm90IEdQTCBjb21wYXRpYmxlIikpOwogCiAgIERF
RlNZTSAoUW1pc3NpbmdfbW9kdWxlX2luaXRfZnVuY3Rpb24sICJtaXNzaW5nLW1vZHVsZS1pbml0
LWZ1bmN0aW9uIik7CiAgIEZwdXQgKFFtaXNzaW5nX21vZHVsZV9pbml0X2Z1bmN0aW9uLCBRZXJy
b3JfY29uZGl0aW9ucywKLQlwdXJlX2xpc3QgKFFtaXNzaW5nX21vZHVsZV9pbml0X2Z1bmN0aW9u
LCBRbW9kdWxlX2xvYWRfZmFpbGVkLAotCQkgICBRZXJyb3IpKTsKKwlsaXN0IChRbWlzc2luZ19t
b2R1bGVfaW5pdF9mdW5jdGlvbiwgUW1vZHVsZV9sb2FkX2ZhaWxlZCwKKwkgICAgICBRZXJyb3Ip
KTsKICAgRnB1dCAoUW1pc3NpbmdfbW9kdWxlX2luaXRfZnVuY3Rpb24sIFFlcnJvcl9tZXNzYWdl
LAotICAgICAgICBidWlsZF9wdXJlX2Nfc3RyaW5nICgiTW9kdWxlIGRvZXMgbm90IGV4cG9ydCBh
biAiCisgICAgICAgIGJ1aWxkX3N0cmluZyAoIk1vZHVsZSBkb2VzIG5vdCBleHBvcnQgYW4gIgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24iKSk7
CiAKICAgREVGU1lNIChRbW9kdWxlX2luaXRfZmFpbGVkLCAibW9kdWxlLWluaXQtZmFpbGVkIik7
CiAgIEZwdXQgKFFtb2R1bGVfaW5pdF9mYWlsZWQsIFFlcnJvcl9jb25kaXRpb25zLAotCXB1cmVf
bGlzdCAoUW1vZHVsZV9pbml0X2ZhaWxlZCwgUW1vZHVsZV9sb2FkX2ZhaWxlZCwgUWVycm9yKSk7
CisJbGlzdCAoUW1vZHVsZV9pbml0X2ZhaWxlZCwgUW1vZHVsZV9sb2FkX2ZhaWxlZCwgUWVycm9y
KSk7CiAgIEZwdXQgKFFtb2R1bGVfaW5pdF9mYWlsZWQsIFFlcnJvcl9tZXNzYWdlLAotICAgICAg
ICBidWlsZF9wdXJlX2Nfc3RyaW5nICgiTW9kdWxlIGluaXRpYWxpemF0aW9uIGZhaWxlZCIpKTsK
KyAgICAgICAgYnVpbGRfc3RyaW5nICgiTW9kdWxlIGluaXRpYWxpemF0aW9uIGZhaWxlZCIpKTsK
IAogICBERUZTWU0gKFFpbnZhbGlkX2FyaXR5LCAiaW52YWxpZC1hcml0eSIpOwotICBGcHV0IChR
aW52YWxpZF9hcml0eSwgUWVycm9yX2NvbmRpdGlvbnMsIHB1cmVfbGlzdCAoUWludmFsaWRfYXJp
dHksIFFlcnJvcikpOworICBGcHV0IChRaW52YWxpZF9hcml0eSwgUWVycm9yX2NvbmRpdGlvbnMs
IGxpc3QgKFFpbnZhbGlkX2FyaXR5LCBRZXJyb3IpKTsKICAgRnB1dCAoUWludmFsaWRfYXJpdHks
IFFlcnJvcl9tZXNzYWdlLAotICAgICAgICBidWlsZF9wdXJlX2Nfc3RyaW5nICgiSW52YWxpZCBm
dW5jdGlvbiBhcml0eSIpKTsKKyAgICAgICAgYnVpbGRfc3RyaW5nICgiSW52YWxpZCBmdW5jdGlv
biBhcml0eSIpKTsKIAogICBERUZTWU0gKFFtb2R1bGVfZnVuY3Rpb25fcCwgIm1vZHVsZS1mdW5j
dGlvbi1wIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9lbWFjcy5jIGIvc3JjL2VtYWNzLmMKaW5kZXgg
YWQ2NjFhMDgxYi4uZjRmNDJhOTA4YyAxMDA2NDQKLS0tIGEvc3JjL2VtYWNzLmMKKysrIGIvc3Jj
L2VtYWNzLmMKQEAgLTg5LDcgKzg5LDYgQEAgI2RlZmluZSBNQUlOX1BST0dSQU0KICNpbmNsdWRl
ICJzeW50YXguaCIKICNpbmNsdWRlICJzeXNzZWxlY3QuaCIKICNpbmNsdWRlICJzeXN0aW1lLmgi
Ci0jaW5jbHVkZSAicHVyZXNpemUuaCIKIAogI2luY2x1ZGUgImdldHBhZ2VzaXplLmgiCiAjaW5j
bHVkZSAiZ251dGxzLmgiCkBAIC0yNTM3LDggKzI1MzYsNiBAQCBERUZVTiAoImR1bXAtZW1hY3Mi
LCBGZHVtcF9lbWFjcywgU2R1bXBfZW1hY3MsIDIsIDIsIDAsCiAgIExpc3BfT2JqZWN0IHN5bWJv
bDsKICAgcHRyZGlmZl90IGNvdW50ID0gU1BFQ1BETF9JTkRFWCAoKTsKIAotICBjaGVja19wdXJl
X3NpemUgKCk7Ci0KICAgaWYgKCEgbm9uaW50ZXJhY3RpdmUpCiAgICAgZXJyb3IgKCJEdW1waW5n
IEVtYWNzIHdvcmtzIG9ubHkgaW4gYmF0Y2ggbW9kZSIpOwogCmRpZmYgLS1naXQgYS9zcmMvZXZh
bC5jIGIvc3JjL2V2YWwuYwppbmRleCAwMmE2YzM1NTVhLi5hNGYzN2MyOTVhIDEwMDY0NAotLS0g
YS9zcmMvZXZhbC5jCisrKyBiL3NyYy9ldmFsLmMKQEAgLTcyNSw4ICs3MjUsNiBAQCBERUZVTiAo
ImludGVybmFsLS1kZWZpbmUtdW5pbml0aWFsaXplZC12YXJpYWJsZSIsCiAgIFhTWU1CT0wgKHN5
bWJvbCktPnUucy5kZWNsYXJlZF9zcGVjaWFsID0gdHJ1ZTsKICAgaWYgKCFOSUxQIChkb2MpKQog
ICAgIHsKLSAgICAgIGlmICghTklMUCAoVnB1cmlmeV9mbGFnKSkKLQlkb2MgPSBGcHVyZWNvcHkg
KGRvYyk7CiAgICAgICBGcHV0IChzeW1ib2wsIFF2YXJpYWJsZV9kb2N1bWVudGF0aW9uLCBkb2Mp
OwogICAgIH0KICAgTE9BREhJU1RfQVRUQUNIIChzeW1ib2wpOwpAQCAtODQwLDggKzgzOCw2IEBA
IERFRlVOICgiZGVmY29uc3QiLCBGZGVmY29uc3QsIFNkZWZjb25zdCwgMiwgVU5FVkFMTEVELCAw
LAogCiAgIEZpbnRlcm5hbF9fZGVmaW5lX3VuaW5pdGlhbGl6ZWRfdmFyaWFibGUgKHN5bSwgZG9j
c3RyaW5nKTsKICAgdGVtID0gZXZhbF9zdWIgKFhDQVIgKFhDRFIgKGFyZ3MpKSk7Ci0gIGlmICgh
TklMUCAoVnB1cmlmeV9mbGFnKSkKLSAgICB0ZW0gPSBGcHVyZWNvcHkgKHRlbSk7CiAgIEZzZXRf
ZGVmYXVsdCAoc3ltLCB0ZW0pOyAgICAgIC8qIEZJWE1FOiBzZXQtZGVmYXVsdC10b3BsZXZlbC12
YWx1ZT8gKi8KICAgRnB1dCAoc3ltLCBRcmlza3lfbG9jYWxfdmFyaWFibGUsIFF0KTsgLyogRklY
TUU6IFdoeT8gICovCiAgIHJldHVybiBzeW07CkBAIC0xOTg2LDEyICsxOTgyLDYgQEAgREVGVU4g
KCJhdXRvbG9hZCIsIEZhdXRvbG9hZCwgU2F1dG9sb2FkLCAyLCA1LCAwLAogICAgICAgJiYgIUFV
VE9MT0FEUCAoWFNZTUJPTCAoZnVuY3Rpb24pLT51LnMuZnVuY3Rpb24pKQogICAgIHJldHVybiBR
bmlsOwogCi0gIGlmICghTklMUCAoVnB1cmlmeV9mbGFnKSAmJiBFUSAoZG9jc3RyaW5nLCBtYWtl
X2ZpeG51bSAoMCkpKQotICAgIC8qIGByZWFkMScgaW4gbHJlYWQuYyBoYXMgZm91bmQgdGhlIGRv
Y3N0cmluZyBzdGFydGluZyB3aXRoICJcCi0gICAgICAgYW5kIGFzc3VtZWQgdGhlIGRvY3N0cmlu
ZyB3aWxsIGJlIHByb3ZpZGVkIGJ5IFNuYXJmLWRvY3VtZW50YXRpb24sIHNvIGl0Ci0gICAgICAg
cGFzc2VkIHVzIDAgaW5zdGVhZC4gIEJ1dCB0aGF0IGxlYWRzIHRvIGFjY2lkZW50YWwgc2hhcmlu
ZyBpbiBwdXJlY29weSdzCi0gICAgICAgaGFzaC1jb25zaW5nLCBzbyB3ZSB1c2UgYSAoaG9wZWZ1
bGx5KSB1bmlxdWUgaW50ZWdlciBpbnN0ZWFkLiAgKi8KLSAgICBkb2NzdHJpbmcgPSBtYWtlX2Zp
eG51bSAoWEhBU0ggKGZ1bmN0aW9uKSk7CiAgIHJldHVybiBGZGVmYWxpYXMgKGZ1bmN0aW9uLAog
CQkgICAgbGlzdDUgKFFhdXRvbG9hZCwgZmlsZSwgZG9jc3RyaW5nLCBpbnRlcmFjdGl2ZSwgdHlw
ZSksCiAJCSAgICBRbmlsKTsKQEAgLTQxODIsNyArNDE3Miw3IEBAIHN5bXNfb2ZfZXZhbCAodm9p
ZCkKICAgICAgYWxzbyB1c2Ugc29tZXRoaW5nIGxpa2UgRmNvbnMgKFFuaWwsIFFuaWwpLCBidXQg
anNvbi5jIHRyZWF0cyBhbnkKICAgICAgY29ucyBjZWxsIGFzIGVycm9yIGRhdGEsIHNvIHVzZSBh
biB1bmludGVybmVkIHN5bWJvbCBpbnN0ZWFkLiAgKi8KICAgUWNhdGNoX2FsbF9tZW1vcnlfZnVs
bAotICAgID0gRm1ha2Vfc3ltYm9sIChidWlsZF9wdXJlX2Nfc3RyaW5nICgiY2F0Y2gtYWxsLW1l
bW9yeS1mdWxsIikpOworICAgID0gRm1ha2Vfc3ltYm9sIChidWlsZF9zdHJpbmcgKCJjYXRjaC1h
bGwtbWVtb3J5LWZ1bGwiKSk7CiAKICAgZGVmc3ViciAoJlNvcik7CiAgIGRlZnN1YnIgKCZTYW5k
KTsKZGlmZiAtLWdpdCBhL3NyYy9maWxlaW8uYyBiL3NyYy9maWxlaW8uYwppbmRleCA3ZjgzMjY3
OTU2Li41YjBjOWQ0Y2FiIDEwMDY0NAotLS0gYS9zcmMvZmlsZWlvLmMKKysrIGIvc3JjL2ZpbGVp
by5jCkBAIC02MjI3LDI5ICs2MjI3LDI5IEBAIHN5bXNfb2ZfZmlsZWlvICh2b2lkKQogICBERUZT
WU0gKFFjYXJfbGVzc190aGFuX2NhciwgImNhci1sZXNzLXRoYW4tY2FyIik7CiAKICAgRnB1dCAo
UWZpbGVfZXJyb3IsIFFlcnJvcl9jb25kaXRpb25zLAotCUZwdXJlY29weSAobGlzdDIgKFFmaWxl
X2Vycm9yLCBRZXJyb3IpKSk7CisJbGlzdDIgKFFmaWxlX2Vycm9yLCBRZXJyb3IpKTsKICAgRnB1
dCAoUWZpbGVfZXJyb3IsIFFlcnJvcl9tZXNzYWdlLAotCWJ1aWxkX3B1cmVfY19zdHJpbmcgKCJG
aWxlIGVycm9yIikpOworCWJ1aWxkX3N0cmluZyAoIkZpbGUgZXJyb3IiKSk7CiAKICAgRnB1dCAo
UWZpbGVfYWxyZWFkeV9leGlzdHMsIFFlcnJvcl9jb25kaXRpb25zLAotCUZwdXJlY29weSAobGlz
dDMgKFFmaWxlX2FscmVhZHlfZXhpc3RzLCBRZmlsZV9lcnJvciwgUWVycm9yKSkpOworCWxpc3Qz
IChRZmlsZV9hbHJlYWR5X2V4aXN0cywgUWZpbGVfZXJyb3IsIFFlcnJvcikpOwogICBGcHV0IChR
ZmlsZV9hbHJlYWR5X2V4aXN0cywgUWVycm9yX21lc3NhZ2UsCi0JYnVpbGRfcHVyZV9jX3N0cmlu
ZyAoIkZpbGUgYWxyZWFkeSBleGlzdHMiKSk7CisJYnVpbGRfc3RyaW5nICgiRmlsZSBhbHJlYWR5
IGV4aXN0cyIpKTsKIAogICBGcHV0IChRZmlsZV9kYXRlX2Vycm9yLCBRZXJyb3JfY29uZGl0aW9u
cywKLQlGcHVyZWNvcHkgKGxpc3QzIChRZmlsZV9kYXRlX2Vycm9yLCBRZmlsZV9lcnJvciwgUWVy
cm9yKSkpOworCWxpc3QzIChRZmlsZV9kYXRlX2Vycm9yLCBRZmlsZV9lcnJvciwgUWVycm9yKSk7
CiAgIEZwdXQgKFFmaWxlX2RhdGVfZXJyb3IsIFFlcnJvcl9tZXNzYWdlLAotCWJ1aWxkX3B1cmVf
Y19zdHJpbmcgKCJDYW5ub3Qgc2V0IGZpbGUgZGF0ZSIpKTsKKwlidWlsZF9zdHJpbmcgKCJDYW5u
b3Qgc2V0IGZpbGUgZGF0ZSIpKTsKIAogICBGcHV0IChRZmlsZV9taXNzaW5nLCBRZXJyb3JfY29u
ZGl0aW9ucywKLQlGcHVyZWNvcHkgKGxpc3QzIChRZmlsZV9taXNzaW5nLCBRZmlsZV9lcnJvciwg
UWVycm9yKSkpOworCWxpc3QzIChRZmlsZV9taXNzaW5nLCBRZmlsZV9lcnJvciwgUWVycm9yKSk7
CiAgIEZwdXQgKFFmaWxlX21pc3NpbmcsIFFlcnJvcl9tZXNzYWdlLAotCWJ1aWxkX3B1cmVfY19z
dHJpbmcgKCJGaWxlIGlzIG1pc3NpbmciKSk7CisJYnVpbGRfc3RyaW5nICgiRmlsZSBpcyBtaXNz
aW5nIikpOwogCiAgIEZwdXQgKFFmaWxlX25vdGlmeV9lcnJvciwgUWVycm9yX2NvbmRpdGlvbnMs
Ci0JRnB1cmVjb3B5IChsaXN0MyAoUWZpbGVfbm90aWZ5X2Vycm9yLCBRZmlsZV9lcnJvciwgUWVy
cm9yKSkpOworCWxpc3QzIChRZmlsZV9ub3RpZnlfZXJyb3IsIFFmaWxlX2Vycm9yLCBRZXJyb3Ip
KTsKICAgRnB1dCAoUWZpbGVfbm90aWZ5X2Vycm9yLCBRZXJyb3JfbWVzc2FnZSwKLQlidWlsZF9w
dXJlX2Nfc3RyaW5nICgiRmlsZSBub3RpZmljYXRpb24gZXJyb3IiKSk7CisJYnVpbGRfc3RyaW5n
ICgiRmlsZSBub3RpZmljYXRpb24gZXJyb3IiKSk7CiAKICAgREVGVkFSX0xJU1AgKCJmaWxlLW5h
bWUtaGFuZGxlci1hbGlzdCIsIFZmaWxlX25hbWVfaGFuZGxlcl9hbGlzdCwKIAkgICAgICAgZG9j
OiAvKiBBbGlzdCBvZiBlbGVtZW50cyAoUkVHRVhQIC4gSEFORExFUikgZm9yIGZpbGUgbmFtZXMg
aGFuZGxlZCBzcGVjaWFsbHkuCmRpZmYgLS1naXQgYS9zcmMvZm5zLmMgYi9zcmMvZm5zLmMKaW5k
ZXggZDdlMTIzMTIyZC4uMTI5N2RiOWFjZiAxMDA2NDQKLS0tIGEvc3JjL2Zucy5jCisrKyBiL3Ny
Yy9mbnMuYwpAQCAtMzUsNyArMzUsNiBAQCBDb3B5cmlnaHQgKEMpIDE5ODUtMTk4NywgMTk5My0x
OTk1LCAxOTk3LTIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAogI2luY2x1ZGUgImJ1ZmZl
ci5oIgogI2luY2x1ZGUgImludGVydmFscy5oIgogI2luY2x1ZGUgIndpbmRvdy5oIgotI2luY2x1
ZGUgInB1cmVzaXplLmgiCiAjaW5jbHVkZSAiZ251dGxzLmgiCiAKICNpZiBkZWZpbmVkIFdJTkRP
V1NOVCAmJiBkZWZpbmVkIEhBVkVfR05VVExTMwpAQCAtNDA2NiwxNiArNDA2NSwxMiBAQCAjZGVm
aW5lIElOREVYX1NJWkVfQk9VTkQgXAogICAgc2l6ZSBleGNlZWRzIFJFSEFTSF9USFJFU0hPTEQu
CiAKICAgIFdFQUsgc3BlY2lmaWVzIHRoZSB3ZWFrbmVzcyBvZiB0aGUgdGFibGUuICBJZiBub24t
bmlsLCBpdCBtdXN0IGJlCi0gICBvbmUgb2YgdGhlIHN5bWJvbHMgYGtleScsIGB2YWx1ZScsIGBr
ZXktb3ItdmFsdWUnLCBvciBga2V5LWFuZC12YWx1ZScuCi0KLSAgIElmIFBVUkVDT1BZIGlzIG5v
bi1uaWwsIHRoZSB0YWJsZSBjYW4gYmUgY29waWVkIHRvIHB1cmUgc3RvcmFnZSB2aWEKLSAgIGBw
dXJlY29weScgd2hlbiBFbWFjcyBpcyBiZWluZyBkdW1wZWQuIFN1Y2ggdGFibGVzIGNhbiBubyBs
b25nZXIgYmUKLSAgIGNoYW5nZWQgYWZ0ZXIgcHVyZWNvcHkuICAqLworICAgb25lIG9mIHRoZSBz
eW1ib2xzIGBrZXknLCBgdmFsdWUnLCBga2V5LW9yLXZhbHVlJywgb3IgYGtleS1hbmQtdmFsdWUn
LiAqLwogCiBMaXNwX09iamVjdAogbWFrZV9oYXNoX3RhYmxlIChzdHJ1Y3QgaGFzaF90YWJsZV90
ZXN0IHRlc3QsIEVNQUNTX0lOVCBzaXplLAogCQkgZmxvYXQgcmVoYXNoX3NpemUsIGZsb2F0IHJl
aGFzaF90aHJlc2hvbGQsCi0JCSBMaXNwX09iamVjdCB3ZWFrLCBib29sIHB1cmVjb3B5KQorCQkg
TGlzcF9PYmplY3Qgd2VhaykKIHsKICAgc3RydWN0IExpc3BfSGFzaF9UYWJsZSAqaDsKICAgTGlz
cF9PYmplY3QgdGFibGU7CkBAIC00MTE0LDcgKzQxMDksNiBAQCBtYWtlX2hhc2hfdGFibGUgKHN0
cnVjdCBoYXNoX3RhYmxlX3Rlc3QgdGVzdCwgRU1BQ1NfSU5UIHNpemUsCiAgIGgtPm5leHQgPSBt
YWtlX3ZlY3RvciAoc2l6ZSwgbWFrZV9maXhudW0gKC0xKSk7CiAgIGgtPmluZGV4ID0gbWFrZV92
ZWN0b3IgKGluZGV4X3NpemUsIG1ha2VfZml4bnVtICgtMSkpOwogICBoLT5uZXh0X3dlYWsgPSBO
VUxMOwotICBoLT5wdXJlY29weSA9IHB1cmVjb3B5OwogICBoLT5tdXRhYmxlID0gdHJ1ZTsKIAog
ICAvKiBTZXQgdXAgdGhlIGZyZWUgbGlzdC4gICovCkBAIC00MjE0LDEwICs0MjA4LDYgQEAgbWF5
YmVfcmVzaXplX2hhc2hfdGFibGUgKHN0cnVjdCBMaXNwX0hhc2hfVGFibGUgKmgpCiAJICAgIHNl
dF9oYXNoX2luZGV4X3Nsb3QgKGgsIHN0YXJ0X29mX2J1Y2tldCwgaSk7CiAJICB9CiAKLSNpZmRl
ZiBFTkFCTEVfQ0hFQ0tJTkcKLSAgICAgIGlmIChIQVNIX1RBQkxFX1AgKFZwdXJpZnlfZmxhZykg
JiYgWEhBU0hfVEFCTEUgKFZwdXJpZnlfZmxhZykgPT0gaCkKLQltZXNzYWdlICgiR3Jvd2luZyBo
YXNoIHRhYmxlIHRvOiAlInBEImQiLCBuZXdfc2l6ZSk7Ci0jZW5kaWYKICAgICB9CiB9CiAKQEAg
LTQzMDIsNyArNDI5Miw2IEBAIGNoZWNrX211dGFibGVfaGFzaF90YWJsZSAoTGlzcF9PYmplY3Qg
b2JqLCBzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICpoKQogewogICBpZiAoIWgtPm11dGFibGUpCiAg
ICAgc2lnbmFsX2Vycm9yICgiaGFzaCB0YWJsZSB0ZXN0IG1vZGlmaWVzIHRhYmxlIiwgb2JqKTsK
LSAgZWFzc2VydCAoIVBVUkVfUCAoaCkpOwogfQogCiAvKiBQdXQgYW4gZW50cnkgaW50byBoYXNo
IHRhYmxlIEggdGhhdCBhc3NvY2lhdGVzIEtFWSB3aXRoIFZBTFVFLgpAQCAtNDc2MCwxNiArNDc0
OSwxMCBAQCBERUZVTiAoIm1ha2UtaGFzaC10YWJsZSIsIEZtYWtlX2hhc2hfdGFibGUsIFNtYWtl
X2hhc2hfdGFibGUsIDAsIE1BTlksIDAsCiBXRUFLLiAgV0VBSyB0IGlzIGVxdWl2YWxlbnQgdG8g
YGtleS1hbmQtdmFsdWUnLiAgRGVmYXVsdCB2YWx1ZSBvZiBXRUFLCiBpcyBuaWwuCiAKLTpwdXJl
Y29weSBQVVJFQ09QWSAtLSBJZiBQVVJFQ09QWSBpcyBub24tbmlsLCB0aGUgdGFibGUgY2FuIGJl
IGNvcGllZAotdG8gcHVyZSBzdG9yYWdlIHdoZW4gRW1hY3MgaXMgYmVpbmcgZHVtcGVkLCBtYWtp
bmcgdGhlIGNvbnRlbnRzIG9mIHRoZQotdGFibGUgcmVhZCBvbmx5LiBBbnkgZnVydGhlciBjaGFu
Z2VzIHRvIHB1cmlmaWVkIHRhYmxlcyB3aWxsIHJlc3VsdAotaW4gYW4gZXJyb3IuCi0KIHVzYWdl
OiAobWFrZS1oYXNoLXRhYmxlICZyZXN0IEtFWVdPUkQtQVJHUykgICovKQogICAocHRyZGlmZl90
IG5hcmdzLCBMaXNwX09iamVjdCAqYXJncykKIHsKICAgTGlzcF9PYmplY3QgdGVzdCwgd2VhazsK
LSAgYm9vbCBwdXJlY29weTsKICAgc3RydWN0IGhhc2hfdGFibGVfdGVzdCB0ZXN0ZGVzYzsKICAg
cHRyZGlmZl90IGk7CiAgIFVTRV9TQUZFX0FMTE9DQTsKQEAgLTQ4MDMsOSArNDc4Niw4IEBAIERF
RlVOICgibWFrZS1oYXNoLXRhYmxlIiwgRm1ha2VfaGFzaF90YWJsZSwgU21ha2VfaGFzaF90YWJs
ZSwgMCwgTUFOWSwgMCwKICAgICAgIHRlc3RkZXNjLmNtcGZuID0gY21wZm5fdXNlcl9kZWZpbmVk
OwogICAgIH0KIAotICAvKiBTZWUgaWYgdGhlcmUncyBhIGA6cHVyZWNvcHkgUFVSRUNPUFknIGFy
Z3VtZW50LiAgKi8KLSAgaSA9IGdldF9rZXlfYXJnIChRQ3B1cmVjb3B5LCBuYXJncywgYXJncywg
dXNlZCk7Ci0gIHB1cmVjb3B5ID0gaSAmJiAhTklMUCAoYXJnc1tpXSk7CisgIC8qIElnbm9yZSBh
IGA6cHVyZWNvcHkgUFVSRUNPUFknIGFyZ3VtZW50LiAgKi8KKyAgZ2V0X2tleV9hcmcgKFFDcHVy
ZWNvcHksIG5hcmdzLCBhcmdzLCB1c2VkKTsKICAgLyogU2VlIGlmIHRoZXJlJ3MgYSBgOnNpemUg
U0laRScgYXJndW1lbnQuICAqLwogICBpID0gZ2V0X2tleV9hcmcgKFFDc2l6ZSwgbmFyZ3MsIGFy
Z3MsIHVzZWQpOwogICBMaXNwX09iamVjdCBzaXplX2FyZyA9IGkgPyBhcmdzW2ldIDogUW5pbDsK
QEAgLTQ4NTUsOCArNDgzNyw3IEBAIERFRlVOICgibWFrZS1oYXNoLXRhYmxlIiwgRm1ha2VfaGFz
aF90YWJsZSwgU21ha2VfaGFzaF90YWJsZSwgMCwgTUFOWSwgMCwKICAgICAgIHNpZ25hbF9lcnJv
ciAoIkludmFsaWQgYXJndW1lbnQgbGlzdCIsIGFyZ3NbaV0pOwogCiAgIFNBRkVfRlJFRSAoKTsK
LSAgcmV0dXJuIG1ha2VfaGFzaF90YWJsZSAodGVzdGRlc2MsIHNpemUsIHJlaGFzaF9zaXplLCBy
ZWhhc2hfdGhyZXNob2xkLCB3ZWFrLAotCQkJICBwdXJlY29weSk7CisgIHJldHVybiBtYWtlX2hh
c2hfdGFibGUgKHRlc3RkZXNjLCBzaXplLCByZWhhc2hfc2l6ZSwgcmVoYXNoX3RocmVzaG9sZCwg
d2Vhayk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2ZvbnRzZXQuYyBiL3NyYy9mb250c2V0LmMK
aW5kZXggODI4ZTdmZTcwYy4uYzU1MTk2ZjMyNCAxMDA2NDQKLS0tIGEvc3JjL2ZvbnRzZXQuYwor
KysgYi9zcmMvZm9udHNldC5jCkBAIC0yMTI4LDcgKzIxMjgsNyBAQCBzeW1zX29mX2ZvbnRzZXQg
KHZvaWQpCiAgIHNldF9mb250c2V0X2lkIChWZGVmYXVsdF9mb250c2V0LCBtYWtlX2ZpeG51bSAo
MCkpOwogICBzZXRfZm9udHNldF9uYW1lCiAgICAgKFZkZWZhdWx0X2ZvbnRzZXQsCi0gICAgIGJ1
aWxkX3B1cmVfY19zdHJpbmcgKCItKi0qLSotKi0qLSotKi0qLSotKi0qLSotZm9udHNldC1kZWZh
dWx0IikpOworICAgICBidWlsZF9zdHJpbmcgKCItKi0qLSotKi0qLSotKi0qLSotKi0qLSotZm9u
dHNldC1kZWZhdWx0IikpOwogICBBU0VUIChWZm9udHNldF90YWJsZSwgMCwgVmRlZmF1bHRfZm9u
dHNldCk7CiAgIG5leHRfZm9udHNldF9pZCA9IDE7CiAgIFBEVU1QRVJfUkVNRU1CRVJfU0NBTEFS
IChuZXh0X2ZvbnRzZXRfaWQpOwpAQCAtMjE4Niw3ICsyMTg2LDcgQEAgc3ltc19vZl9mb250c2V0
ICh2b2lkKQogCSAgICAgICBkb2M6IC8qIEFsaXN0IG9mIGZvbnRzZXQgbmFtZXMgdnMgdGhlIGFs
aWFzZXMuICAqLyk7CiAgIFZmb250c2V0X2FsaWFzX2FsaXN0CiAgICAgPSBsaXN0MSAoRmNvbnMg
KEZPTlRTRVRfTkFNRSAoVmRlZmF1bHRfZm9udHNldCksCi0JCSAgICBidWlsZF9wdXJlX2Nfc3Ry
aW5nICgiZm9udHNldC1kZWZhdWx0IikpKTsKKwkJICAgIGJ1aWxkX3N0cmluZyAoImZvbnRzZXQt
ZGVmYXVsdCIpKSk7CiAKICAgREVGVkFSX0xJU1AgKCJ2ZXJ0aWNhbC1jZW50ZXJpbmctZm9udC1y
ZWdleHAiLAogCSAgICAgICBWdmVydGljYWxfY2VudGVyaW5nX2ZvbnRfcmVnZXhwLApkaWZmIC0t
Z2l0IGEvc3JjL2ZyYW1lLmMgYi9zcmMvZnJhbWUuYwppbmRleCA2MzYzYTg3MzY4Li5hNWU2MTdi
MDkyIDEwMDY0NAotLS0gYS9zcmMvZnJhbWUuYworKysgYi9zcmMvZnJhbWUuYwpAQCAtMTA2OCw3
ICsxMDY4LDcgQEAgbWFrZV9pbml0aWFsX2ZyYW1lICh2b2lkKQogICBWZnJhbWVfbGlzdCA9IEZj
b25zIChmcmFtZSwgVmZyYW1lX2xpc3QpOwogCiAgIHR0eV9mcmFtZV9jb3VudCA9IDE7Ci0gIGZz
ZXRfbmFtZSAoZiwgYnVpbGRfcHVyZV9jX3N0cmluZyAoIkYxIikpOworICBmc2V0X25hbWUgKGYs
IGJ1aWxkX3N0cmluZyAoIkYxIikpOwogCiAgIFNFVF9GUkFNRV9WSVNJQkxFIChmLCAxKTsKIApk
aWZmIC0tZ2l0IGEvc3JjL2ludGVydmFscy5jIGIvc3JjL2ludGVydmFscy5jCmluZGV4IDM4MzY3
NDYwYTUuLmM1ODYxMWNiMjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcnZhbHMuYworKysgYi9zcmMv
aW50ZXJ2YWxzLmMKQEAgLTQ0LDcgKzQ0LDYgQEAKICNpbmNsdWRlICJsaXNwLmgiCiAjaW5jbHVk
ZSAiaW50ZXJ2YWxzLmgiCiAjaW5jbHVkZSAiYnVmZmVyLmgiCi0jaW5jbHVkZSAicHVyZXNpemUu
aCIKICNpbmNsdWRlICJrZXltYXAuaCIKIAogLyogVGVzdCBmb3IgbWVtYmVyc2hpcCwgYWxsb3dp
bmcgZm9yIHQgKGFjdHVhbGx5IGFueSBub24tY29ucykgdG8gbWVhbiB0aGUKQEAgLTEwMSw3ICsx
MDAsNiBAQCBjcmVhdGVfcm9vdF9pbnRlcnZhbCAoTGlzcF9PYmplY3QgcGFyZW50KQogICAgIH0K
ICAgZWxzZQogICAgIHsKLSAgICAgIENIRUNLX0lNUFVSRSAocGFyZW50LCBYU1RSSU5HIChwYXJl
bnQpKTsKICAgICAgIG5ldy0+dG90YWxfbGVuZ3RoID0gU0NIQVJTIChwYXJlbnQpOwogICAgICAg
ZWFzc2VydCAoVE9UQUxfTEVOR1RIIChuZXcpID49IDApOwogICAgICAgc2V0X3N0cmluZ19pbnRl
cnZhbHMgKHBhcmVudCwgbmV3KTsKZGlmZiAtLWdpdCBhL3NyYy9qc29uLmMgYi9zcmMvanNvbi5j
CmluZGV4IGQwNWYyYzU0ZTIuLjBjZTJhYzk0YTYgMTAwNjQ0Ci0tLSBhL3NyYy9qc29uLmMKKysr
IGIvc3JjL2pzb24uYwpAQCAtMTEwNiw4ICsxMTA2LDggQEAgZGVmaW5lX2Vycm9yIChMaXNwX09i
amVjdCBuYW1lLCBjb25zdCBjaGFyICptZXNzYWdlLCBMaXNwX09iamVjdCBwYXJlbnQpCiAgIGVh
c3NlcnQgKENPTlNQIChwYXJlbnRfY29uZGl0aW9ucykpOwogICBlYXNzZXJ0ICghTklMUCAoRm1l
bXEgKHBhcmVudCwgcGFyZW50X2NvbmRpdGlvbnMpKSk7CiAgIGVhc3NlcnQgKE5JTFAgKEZtZW1x
IChuYW1lLCBwYXJlbnRfY29uZGl0aW9ucykpKTsKLSAgRnB1dCAobmFtZSwgUWVycm9yX2NvbmRp
dGlvbnMsIHB1cmVfY29ucyAobmFtZSwgcGFyZW50X2NvbmRpdGlvbnMpKTsKLSAgRnB1dCAobmFt
ZSwgUWVycm9yX21lc3NhZ2UsIGJ1aWxkX3B1cmVfY19zdHJpbmcgKG1lc3NhZ2UpKTsKKyAgRnB1
dCAobmFtZSwgUWVycm9yX2NvbmRpdGlvbnMsIEZjb25zIChuYW1lLCBwYXJlbnRfY29uZGl0aW9u
cykpOworICBGcHV0IChuYW1lLCBRZXJyb3JfbWVzc2FnZSwgYnVpbGRfc3RyaW5nIChtZXNzYWdl
KSk7CiB9CiAKIHZvaWQKZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJk
LmMKaW5kZXggYjg2YWQwMzg1MS4uMWE3ODRiNTMzMCAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJk
LmMKKysrIGIvc3JjL2tleWJvYXJkLmMKQEAgLTExMDYsOCArMTEwNiw2IEBAIHRvcF9sZXZlbF8x
IChMaXNwX09iamVjdCBpZ25vcmUpCiAgIC8qIE9uIGVudHJ5IHRvIHRoZSBvdXRlciBsZXZlbCwg
cnVuIHRoZSBzdGFydHVwIGZpbGUuICAqLwogICBpZiAoIU5JTFAgKFZ0b3BfbGV2ZWwpKQogICAg
IGludGVybmFsX2NvbmRpdGlvbl9jYXNlICh0b3BfbGV2ZWxfMiwgUWVycm9yLCBjbWRfZXJyb3Ip
OwotICBlbHNlIGlmICghTklMUCAoVnB1cmlmeV9mbGFnKSkKLSAgICBtZXNzYWdlMSAoIkJhcmUg
aW1wdXJlIEVtYWNzIChzdGFuZGFyZCBMaXNwIGNvZGUgbm90IGxvYWRlZCkiKTsKICAgZWxzZQog
ICAgIG1lc3NhZ2UxICgiQmFyZSBFbWFjcyAoc3RhbmRhcmQgTGlzcCBjb2RlIG5vdCBsb2FkZWQp
Iik7CiAgIHJldHVybiBRbmlsOwpAQCAtMTEwMzQsMTQgKzExMDMyLDE0IEBAIHN5bXNfb2Zfa2V5
Ym9hcmQgKHZvaWQpCiAgIHBlbmRpbmdfZnVuY2FsbHMgPSBRbmlsOwogICBzdGF0aWNwcm8gKCZw
ZW5kaW5nX2Z1bmNhbGxzKTsKIAotICBWbGlzcHlfbW91c2Vfc3RlbSA9IGJ1aWxkX3B1cmVfY19z
dHJpbmcgKCJtb3VzZSIpOworICBWbGlzcHlfbW91c2Vfc3RlbSA9IGJ1aWxkX3N0cmluZyAoIm1v
dXNlIik7CiAgIHN0YXRpY3BybyAoJlZsaXNweV9tb3VzZV9zdGVtKTsKIAotICByZWd1bGFyX3Rv
cF9sZXZlbF9tZXNzYWdlID0gYnVpbGRfcHVyZV9jX3N0cmluZyAoIkJhY2sgdG8gdG9wIGxldmVs
Iik7CisgIHJlZ3VsYXJfdG9wX2xldmVsX21lc3NhZ2UgPSBidWlsZF9zdHJpbmcgKCJCYWNrIHRv
IHRvcCBsZXZlbCIpOwogICBzdGF0aWNwcm8gKCZyZWd1bGFyX3RvcF9sZXZlbF9tZXNzYWdlKTsK
ICNpZmRlZiBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HCiAgIHJlY292ZXJfdG9wX2xldmVs
X21lc3NhZ2UKLSAgICA9IGJ1aWxkX3B1cmVfY19zdHJpbmcgKCJSZS1lbnRlcmluZyB0b3AgbGV2
ZWwgYWZ0ZXIgQyBzdGFjayBvdmVyZmxvdyIpOworICAgID0gYnVpbGRfc3RyaW5nICgiUmUtZW50
ZXJpbmcgdG9wIGxldmVsIGFmdGVyIEMgc3RhY2sgb3ZlcmZsb3ciKTsKICAgc3RhdGljcHJvICgm
cmVjb3Zlcl90b3BfbGV2ZWxfbWVzc2FnZSk7CiAjZW5kaWYKICAgREVGVkFSX0xJU1AgKCJpbnRl
cm5hbC0tdG9wLWxldmVsLW1lc3NhZ2UiLCBWaW50ZXJuYWxfX3RvcF9sZXZlbF9tZXNzYWdlLApk
aWZmIC0tZ2l0IGEvc3JjL2tleW1hcC5jIGIvc3JjL2tleW1hcC5jCmluZGV4IDY3NjI5MTVmNzAu
LmJjYzQ4Yjk1MjAgMTAwNjQ0Ci0tLSBhL3NyYy9rZXltYXAuYworKysgYi9zcmMva2V5bWFwLmMK
QEAgLTUwLDcgKzUwLDYgQEAKICNpbmNsdWRlICJrZXlib2FyZC5oIgogI2luY2x1ZGUgInRlcm1o
b29rcy5oIgogI2luY2x1ZGUgImJsb2NraW5wdXQuaCIKLSNpbmNsdWRlICJwdXJlc2l6ZS5oIgog
I2luY2x1ZGUgImludGVydmFscy5oIgogI2luY2x1ZGUgImtleW1hcC5oIgogI2luY2x1ZGUgIndp
bmRvdy5oIgpAQCAtMTM4LDggKzEzNyw2IEBAIERFRlVOICgibWFrZS1zcGFyc2Uta2V5bWFwIiwg
Rm1ha2Vfc3BhcnNlX2tleW1hcCwgU21ha2Vfc3BhcnNlX2tleW1hcCwgMCwgMSwgMCwKIHsKICAg
aWYgKCFOSUxQIChzdHJpbmcpKQogICAgIHsKLSAgICAgIGlmICghTklMUCAoVnB1cmlmeV9mbGFn
KSkKLQlzdHJpbmcgPSBGcHVyZWNvcHkgKHN0cmluZyk7CiAgICAgICByZXR1cm4gbGlzdDIgKFFr
ZXltYXAsIHN0cmluZyk7CiAgICAgfQogICByZXR1cm4gbGlzdDEgKFFrZXltYXApOwpAQCAtMzM2
LDcgKzMzMyw2IEBAIERFRlVOICgic2V0LWtleW1hcC1wYXJlbnQiLCBGc2V0X2tleW1hcF9wYXJl
bnQsIFNzZXRfa2V5bWFwX3BhcmVudCwgMiwgMiwgMCwKIAkgSWYgd2UgY2FtZSB0byB0aGUgZW5k
LCBhZGQgdGhlIHBhcmVudCBpbiBQUkVWLiAgKi8KICAgICAgIGlmICghQ09OU1AgKGxpc3QpIHx8
IEtFWU1BUFAgKGxpc3QpKQogCXsKLQkgIENIRUNLX0lNUFVSRSAocHJldiwgWENPTlMgKHByZXYp
KTsKIAkgIFhTRVRDRFIgKHByZXYsIHBhcmVudCk7CiAJICByZXR1cm4gcGFyZW50OwogCX0KQEAg
LTc1Nyw3ICs3NTMsNyBAQCBzdG9yZV9pbl9rZXltYXAgKExpc3BfT2JqZWN0IGtleW1hcCwgcmVn
aXN0ZXIgTGlzcF9PYmplY3QgaWR4LCBMaXNwX09iamVjdCBkZWYpCiAKICAgLyogSWYgd2UgYXJl
IHByZXBhcmluZyB0byBkdW1wLCBhbmQgREVGIGlzIGEgbWVudSBlbGVtZW50CiAgICAgIHdpdGgg
YSBtZW51IGl0ZW0gaW5kaWNhdG9yLCBjb3B5IGl0IHRvIGVuc3VyZSBpdCBpcyBub3QgcHVyZS4g
ICovCi0gIGlmIChDT05TUCAoZGVmKSAmJiBQVVJFX1AgKFhDT05TIChkZWYpKQorICBpZiAoQ09O
U1AgKGRlZikKICAgICAgICYmIChFUSAoWENBUiAoZGVmKSwgUW1lbnVfaXRlbSkgfHwgU1RSSU5H
UCAoWENBUiAoZGVmKSkpKQogICAgIGRlZiA9IEZjb25zIChYQ0FSIChkZWYpLCBYQ0RSIChkZWYp
KTsKIApAQCAtODA1LDcgKzgwMSw2IEBAIHN0b3JlX2luX2tleW1hcCAoTGlzcF9PYmplY3Qga2V5
bWFwLCByZWdpc3RlciBMaXNwX09iamVjdCBpZHgsIExpc3BfT2JqZWN0IGRlZikKIAkgIHsKIAkg
ICAgaWYgKEZJWE5BVFAgKGlkeCkgJiYgWEZJWE5BVCAoaWR4KSA8IEFTSVpFIChlbHQpKQogCSAg
ICAgIHsKLQkJQ0hFQ0tfSU1QVVJFIChlbHQsIFhWRUNUT1IgKGVsdCkpOwogCQlBU0VUIChlbHQs
IFhGSVhOQVQgKGlkeCksIGRlZik7CiAJCXJldHVybiBkZWY7CiAJICAgICAgfQpAQCAtODU4LDcg
Kzg1Myw2IEBAIHN0b3JlX2luX2tleW1hcCAoTGlzcF9PYmplY3Qga2V5bWFwLCByZWdpc3RlciBM
aXNwX09iamVjdCBpZHgsIExpc3BfT2JqZWN0IGRlZikKIAkgICAgICB9CiAJICAgIGVsc2UgaWYg
KEVRIChpZHgsIFhDQVIgKGVsdCkpKQogCSAgICAgIHsKLQkJQ0hFQ0tfSU1QVVJFIChlbHQsIFhD
T05TIChlbHQpKTsKIAkJWFNFVENEUiAoZWx0LCBkZWYpOwogCQlyZXR1cm4gZGVmOwogCSAgICAg
IH0KQEAgLTkwNCw3ICs4OTgsNiBAQCBzdG9yZV9pbl9rZXltYXAgKExpc3BfT2JqZWN0IGtleW1h
cCwgcmVnaXN0ZXIgTGlzcF9PYmplY3QgaWR4LCBMaXNwX09iamVjdCBkZWYpCiAJfQogICAgICAg
ZWxzZQogCWVsdCA9IEZjb25zIChpZHgsIGRlZik7Ci0gICAgICBDSEVDS19JTVBVUkUgKGluc2Vy
dGlvbl9wb2ludCwgWENPTlMgKGluc2VydGlvbl9wb2ludCkpOwogICAgICAgWFNFVENEUiAoaW5z
ZXJ0aW9uX3BvaW50LCBGY29ucyAoZWx0LCBYQ0RSIChpbnNlcnRpb25fcG9pbnQpKSk7CiAgICAg
fQogICB9CkBAIC0zNjA0LDEyICszNTk3LDEyIEBAIHN5bXNfb2Zfa2V5bWFwICh2b2lkKQogICBG
c2V0IChpbnRlcm5fY19zdHJpbmcgKCJjdGwteC1tYXAiKSwgY29udHJvbF94X21hcCk7CiAgIEZm
c2V0IChpbnRlcm5fY19zdHJpbmcgKCJDb250cm9sLVgtcHJlZml4IiksIGNvbnRyb2xfeF9tYXAp
OwogCi0gIGV4Y2x1ZGVfa2V5cyA9IHB1cmVfbGlzdAotICAgIChwdXJlX2NvbnMgKGJ1aWxkX3B1
cmVfY19zdHJpbmcgKCJERUwiKSwgYnVpbGRfcHVyZV9jX3N0cmluZyAoIlxcZCIpKSwKLSAgICAg
cHVyZV9jb25zIChidWlsZF9wdXJlX2Nfc3RyaW5nICgiVEFCIiksIGJ1aWxkX3B1cmVfY19zdHJp
bmcgKCJcXHQiKSksCi0gICAgIHB1cmVfY29ucyAoYnVpbGRfcHVyZV9jX3N0cmluZyAoIlJFVCIp
LCBidWlsZF9wdXJlX2Nfc3RyaW5nICgiXFxyIikpLAotICAgICBwdXJlX2NvbnMgKGJ1aWxkX3B1
cmVfY19zdHJpbmcgKCJFU0MiKSwgYnVpbGRfcHVyZV9jX3N0cmluZyAoIlxcZSIpKSwKLSAgICAg
cHVyZV9jb25zIChidWlsZF9wdXJlX2Nfc3RyaW5nICgiU1BDIiksIGJ1aWxkX3B1cmVfY19zdHJp
bmcgKCIgIikpKTsKKyAgZXhjbHVkZV9rZXlzID0gbGlzdAorICAgIChGY29ucyAoYnVpbGRfc3Ry
aW5nICgiREVMIiksIGJ1aWxkX3N0cmluZyAoIlxcZCIpKSwKKyAgICAgRmNvbnMgKGJ1aWxkX3N0
cmluZyAoIlRBQiIpLCBidWlsZF9zdHJpbmcgKCJcXHQiKSksCisgICAgIEZjb25zIChidWlsZF9z
dHJpbmcgKCJSRVQiKSwgYnVpbGRfc3RyaW5nICgiXFxyIikpLAorICAgICBGY29ucyAoYnVpbGRf
c3RyaW5nICgiRVNDIiksIGJ1aWxkX3N0cmluZyAoIlxcZSIpKSwKKyAgICAgRmNvbnMgKGJ1aWxk
X3N0cmluZyAoIlNQQyIpLCBidWlsZF9zdHJpbmcgKCIgIikpKTsKICAgc3RhdGljcHJvICgmZXhj
bHVkZV9rZXlzKTsKIAogICBERUZWQVJfTElTUCAoImRlZmluZS1rZXktcmVib3VuZC1jb21tYW5k
cyIsIFZkZWZpbmVfa2V5X3JlYm91bmRfY29tbWFuZHMsCkBAIC0zNjY1LDEyICszNjU4LDEyIEBA
IHN5bXNfb2Zfa2V5bWFwICh2b2lkKQogICBERUZTWU0gKFFtb2RlX2xpbmUsICJtb2RlLWxpbmUi
KTsKIAogICBzdGF0aWNwcm8gKCZWbW91c2VfZXZlbnRzKTsKLSAgVm1vdXNlX2V2ZW50cyA9IHB1
cmVfbGlzdCAoUW1lbnVfYmFyLCBRdG9vbF9iYXIsIFFoZWFkZXJfbGluZSwgUW1vZGVfbGluZSwK
LQkJCSAgICAgaW50ZXJuX2Nfc3RyaW5nICgibW91c2UtMSIpLAotCQkJICAgICBpbnRlcm5fY19z
dHJpbmcgKCJtb3VzZS0yIiksCi0JCQkgICAgIGludGVybl9jX3N0cmluZyAoIm1vdXNlLTMiKSwK
LQkJCSAgICAgaW50ZXJuX2Nfc3RyaW5nICgibW91c2UtNCIpLAotCQkJICAgICBpbnRlcm5fY19z
dHJpbmcgKCJtb3VzZS01IikpOworICBWbW91c2VfZXZlbnRzID0gbGlzdCAoUW1lbnVfYmFyLCBR
dG9vbF9iYXIsIFFoZWFkZXJfbGluZSwgUW1vZGVfbGluZSwKKwkJCWludGVybl9jX3N0cmluZyAo
Im1vdXNlLTEiKSwKKwkJCWludGVybl9jX3N0cmluZyAoIm1vdXNlLTIiKSwKKwkJCWludGVybl9j
X3N0cmluZyAoIm1vdXNlLTMiKSwKKwkJCWludGVybl9jX3N0cmluZyAoIm1vdXNlLTQiKSwKKwkJ
CWludGVybl9jX3N0cmluZyAoIm1vdXNlLTUiKSk7CiAKICAgLyogS2V5bWFwIHVzZWQgZm9yIG1p
bmlidWZmZXJzIHdoZW4gZG9pbmcgY29tcGxldGlvbi4gICovCiAgIC8qIEtleW1hcCB1c2VkIGZv
ciBtaW5pYnVmZmVycyB3aGVuIGRvaW5nIGNvbXBsZXRpb24gYW5kIHJlcXVpcmUgYSBtYXRjaC4g
ICovCmRpZmYgLS1naXQgYS9zcmMvbGlzcC5oIGIvc3JjL2xpc3AuaAppbmRleCA2ZDEwMWZlZDkw
Li44ZmI2ZjQ5M2IzIDEwMDY0NAotLS0gYS9zcmMvbGlzcC5oCisrKyBiL3NyYy9saXNwLmgKQEAg
LTgyMSw5ICs4MjEsNiBAQCAjZGVmaW5lIFhVTlRBRyhhLCB0eXBlLCBjdHlwZSkgKChjdHlwZSAq
KSBcCiAJIHNwZWNpYWwgKHdpdGggYGRlZnZhcicgZXRjKSwgYW5kIHNob3VsZG4ndCBiZSBsZXhp
Y2FsbHkgYm91bmQuICAqLwogICAgICAgYm9vbF9iZiBkZWNsYXJlZF9zcGVjaWFsIDogMTsKIAot
ICAgICAgLyogVHJ1ZSBpZiBwb2ludGVkIHRvIGZyb20gcHVyZXNwYWNlIGFuZCBoZW5jZSBjYW4n
dCBiZSBHQydkLiAgKi8KLSAgICAgIGJvb2xfYmYgcGlubmVkIDogMTsKLQogICAgICAgLyogVGhl
IHN5bWJvbCdzIG5hbWUsIGFzIGEgTGlzcCBzdHJpbmcuICAqLwogICAgICAgTGlzcF9PYmplY3Qg
bmFtZTsKIApAQCAtMTUxMywyMCArMTUxMCwxNCBAQCAjZGVmaW5lIFNUUklOR19CWVRFU19CT1VO
RCAgXAogLyogTWFyayBTVFIgYXMgYSB1bmlieXRlIHN0cmluZy4gICovCiAjZGVmaW5lIFNUUklO
R19TRVRfVU5JQllURShTVFIpCQkJCVwKICAgZG8gewkJCQkJCQlcCi0gICAgaWYgKFhTVFJJTkcg
KFNUUiktPnUucy5zaXplID09IDApCQkJXAotICAgICAgKFNUUikgPSBlbXB0eV91bmlieXRlX3N0
cmluZzsJCQlcCi0gICAgZWxzZQkJCQkJCVwKLSAgICAgIFhTVFJJTkcgKFNUUiktPnUucy5zaXpl
X2J5dGUgPSAtMTsJCVwKKyAgICBYU1RSSU5HIChTVFIpLT51LnMuc2l6ZV9ieXRlID0gLTE7CQkJ
XAogICB9IHdoaWxlIChmYWxzZSkKIAogLyogTWFyayBTVFIgYXMgYSBtdWx0aWJ5dGUgc3RyaW5n
LiAgQXNzdXJlIHRoYXQgU1RSIGNvbnRhaW5zIG9ubHkKICAgIEFTQ0lJIGNoYXJhY3RlcnMgaW4g
YWR2YW5jZS4gICovCi0jZGVmaW5lIFNUUklOR19TRVRfTVVMVElCWVRFKFNUUikJCQlcCi0gIGRv
IHsJCQkJCQkJXAotICAgIGlmIChYU1RSSU5HIChTVFIpLT51LnMuc2l6ZSA9PSAwKQkJCVwKLSAg
ICAgIChTVFIpID0gZW1wdHlfbXVsdGlieXRlX3N0cmluZzsJCQlcCi0gICAgZWxzZQkJCQkJCVwK
LSAgICAgIFhTVFJJTkcgKFNUUiktPnUucy5zaXplX2J5dGUgPSBYU1RSSU5HIChTVFIpLT51LnMu
c2l6ZTsgXAorI2RlZmluZSBTVFJJTkdfU0VUX01VTFRJQllURShTVFIpCQkJCVwKKyAgZG8gewkJ
CQkJCQkJXAorICAgIFhTVFJJTkcgKFNUUiktPnUucy5zaXplX2J5dGUgPSBYU1RSSU5HIChTVFIp
LT51LnMuc2l6ZTsJXAogICB9IHdoaWxlIChmYWxzZSkKIAogLyogQ29udmVuaWVuY2UgZnVuY3Rp
b25zIGZvciBkZWFsaW5nIHdpdGggTGlzcCBzdHJpbmdzLiAgKi8KQEAgLTIyODcsMTIgKzIyNzgs
OCBAQCAjZGVmaW5lIERFRlNZTShzeW0sIG5hbWUpIC8qIGVtcHR5ICovCiAgIC8qIEluZGV4IG9m
IGZpcnN0IGZyZWUgZW50cnkgaW4gZnJlZSBsaXN0LCBvciAtMSBpZiBub25lLiAgKi8KICAgcHRy
ZGlmZl90IG5leHRfZnJlZTsKIAotICAvKiBUcnVlIGlmIHRoZSB0YWJsZSBjYW4gYmUgcHVyZWNv
cGllZC4gIFRoZSB0YWJsZSBjYW5ub3QgYmUKLSAgICAgY2hhbmdlZCBhZnRlcndhcmRzLiAgKi8K
LSAgYm9vbCBwdXJlY29weTsKLQogICAvKiBUcnVlIGlmIHRoZSB0YWJsZSBpcyBtdXRhYmxlLiAg
T3JkaW5hcmlseSB0YWJsZXMgYXJlIG11dGFibGUsIGJ1dAotICAgICBwdXJlIHRhYmxlcyBhcmUg
bm90LCBhbmQgd2hpbGUgYSB0YWJsZSBpcyBiZWluZyBtdXRhdGVkIGl0IGlzCisgICAgIHNvbWUg
dGFibGVzIGFyZSBub3QsIGFuZCB3aGlsZSBhIHRhYmxlIGlzIGJlaW5nIG11dGF0ZWQgaXQgaXMK
ICAgICAgaW1tdXRhYmxlIGZvciByZWN1cnNpdmUgYXR0ZW1wdHMgdG8gbXV0YXRlIGl0LiAgKi8K
ICAgYm9vbCBtdXRhYmxlOwogCkBAIC0zNjAxLDcgKzM1ODgsNyBAQCAjZGVmaW5lIENPTlNfVE9f
SU5URUdFUihjb25zLCB0eXBlLCB2YXIpCQkJCVwKIExpc3BfT2JqZWN0IGhhc2hmbl9lcWwgKExp
c3BfT2JqZWN0LCBzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICopOwogTGlzcF9PYmplY3QgaGFzaGZu
X2VxdWFsIChMaXNwX09iamVjdCwgc3RydWN0IExpc3BfSGFzaF9UYWJsZSAqKTsKIExpc3BfT2Jq
ZWN0IG1ha2VfaGFzaF90YWJsZSAoc3RydWN0IGhhc2hfdGFibGVfdGVzdCwgRU1BQ1NfSU5ULCBm
bG9hdCwgZmxvYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3BfT2JqZWN0LCBi
b29sKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzcF9PYmplY3QpOwogcHRyZGlm
Zl90IGhhc2hfbG9va3VwIChzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICosIExpc3BfT2JqZWN0LCBM
aXNwX09iamVjdCAqKTsKIHB0cmRpZmZfdCBoYXNoX3B1dCAoc3RydWN0IExpc3BfSGFzaF9UYWJs
ZSAqLCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsCiAJCSAgICBMaXNwX09iamVjdCk7CkBAIC0z
NzUyLDcgKzM3MzksNiBAQCAjZGVmaW5lIENPTlNfVE9fSU5URUdFUihjb25zLCB0eXBlLCB2YXIp
CQkJCVwKIAogLyogRGVmaW5lZCBpbiBhbGxvYy5jLiAgKi8KIGV4dGVybiB2b2lkICpteV9oZWFw
X3N0YXJ0ICh2b2lkKTsKLWV4dGVybiB2b2lkIGNoZWNrX3B1cmVfc2l6ZSAodm9pZCk7CiBleHRl
cm4gdm9pZCBhbGxvY2F0ZV9zdHJpbmdfZGF0YSAoc3RydWN0IExpc3BfU3RyaW5nICosIEVNQUNT
X0lOVCwgRU1BQ1NfSU5UKTsKIGV4dGVybiB2b2lkIG1hbGxvY193YXJuaW5nIChjb25zdCBjaGFy
ICopOwogZXh0ZXJuIEFWT0lEIG1lbW9yeV9mdWxsIChzaXplX3QpOwpAQCAtMzc4MywxMSArMzc2
OSw4IEBAICNkZWZpbmUgT0JKRUNUX0NUX01BWCBJTlRQVFJfTUFYCiBleHRlcm4gTGlzcF9PYmpl
Y3QgbGlzdDUgKExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExpc3BfT2Jq
ZWN0LAogCQkJICBMaXNwX09iamVjdCk7CiBleHRlcm4gTGlzcF9PYmplY3QgbGlzdG4gKHB0cmRp
ZmZfdCwgTGlzcF9PYmplY3QsIC4uLik7Ci1leHRlcm4gTGlzcF9PYmplY3QgcHVyZV9saXN0biAo
cHRyZGlmZl90LCBMaXNwX09iamVjdCwgLi4uKTsKICNkZWZpbmUgbGlzdCguLi4pIFwKICAgbGlz
dG4gKEFSUkFZRUxUUyAoKChMaXNwX09iamVjdCBbXSkge19fVkFfQVJHU19ffSkpLCBfX1ZBX0FS
R1NfXykKLSNkZWZpbmUgcHVyZV9saXN0KC4uLikgXAotICBwdXJlX2xpc3RuIChBUlJBWUVMVFMg
KCgoTGlzcF9PYmplY3QgW10pIHtfX1ZBX0FSR1NfX30pKSwgX19WQV9BUkdTX18pCiAKIGVudW0g
Z2Nfcm9vdF90eXBlCiB7CkBAIC0zODYxLDE3ICszODQ0LDYgQEAgYnVpbGRfdW5pYnl0ZV9zdHJp
bmcgKGNvbnN0IGNoYXIgKnN0cikKIGV4dGVybiBMaXNwX09iamVjdCBtYWtlX3N0cmluZ19mcm9t
X2J5dGVzIChjb25zdCBjaGFyICosIHB0cmRpZmZfdCwgcHRyZGlmZl90KTsKIGV4dGVybiBMaXNw
X09iamVjdCBtYWtlX3NwZWNpZmllZF9zdHJpbmcgKGNvbnN0IGNoYXIgKiwKIAkJCQkJICBwdHJk
aWZmX3QsIHB0cmRpZmZfdCwgYm9vbCk7Ci1leHRlcm4gTGlzcF9PYmplY3QgbWFrZV9wdXJlX3N0
cmluZyAoY29uc3QgY2hhciAqLCBwdHJkaWZmX3QsIHB0cmRpZmZfdCwgYm9vbCk7Ci1leHRlcm4g
TGlzcF9PYmplY3QgbWFrZV9wdXJlX2Nfc3RyaW5nIChjb25zdCBjaGFyICosIHB0cmRpZmZfdCk7
Ci0KLS8qIE1ha2UgYSBzdHJpbmcgYWxsb2NhdGVkIGluIHB1cmUgc3BhY2UsIHVzZSBTVFIgYXMg
c3RyaW5nIGRhdGEuICAqLwotCi1JTkxJTkUgTGlzcF9PYmplY3QKLWJ1aWxkX3B1cmVfY19zdHJp
bmcgKGNvbnN0IGNoYXIgKnN0cikKLXsKLSAgcmV0dXJuIG1ha2VfcHVyZV9jX3N0cmluZyAoc3Ry
LCBzdHJsZW4gKHN0cikpOwotfQotCiAvKiBNYWtlIGEgc3RyaW5nIGZyb20gdGhlIGRhdGEgYXQg
U1RSLCB0cmVhdGluZyBpdCBhcyBtdWx0aWJ5dGUgaWYgdGhlCiAgICBkYXRhIHdhcnJhbnRzLiAg
Ki8KIApAQCAtMzg4MSw3ICszODUzLDYgQEAgYnVpbGRfc3RyaW5nIChjb25zdCBjaGFyICpzdHIp
CiAgIHJldHVybiBtYWtlX3N0cmluZyAoc3RyLCBzdHJsZW4gKHN0cikpOwogfQogCi1leHRlcm4g
TGlzcF9PYmplY3QgcHVyZV9jb25zIChMaXNwX09iamVjdCwgTGlzcF9PYmplY3QpOwogZXh0ZXJu
IExpc3BfT2JqZWN0IG1ha2VfdmVjdG9yIChwdHJkaWZmX3QsIExpc3BfT2JqZWN0KTsKIGV4dGVy
biB2b2lkIG1ha2VfYnl0ZV9jb2RlIChzdHJ1Y3QgTGlzcF9WZWN0b3IgKik7CiBleHRlcm4gc3Ry
dWN0IExpc3BfVmVjdG9yICphbGxvY2F0ZV92ZWN0b3IgKHB0cmRpZmZfdCk7CmRpZmYgLS1naXQg
YS9zcmMvbHJlYWQuYyBiL3NyYy9scmVhZC5jCmluZGV4IGVlY2I1ZTE0MWQuLjRmZjc4MDg1Mjcg
MTAwNjQ0Ci0tLSBhL3NyYy9scmVhZC5jCisrKyBiL3NyYy9scmVhZC5jCkBAIC0yMDQzLDEzICsy
MDQzLDEzIEBAIHJlYWRldmFsbG9vcCAoTGlzcF9PYmplY3QgcmVhZGNoYXJmdW4sCiAJcmVhZF9v
YmplY3RzX21hcAogCSAgPSBtYWtlX2hhc2hfdGFibGUgKGhhc2h0ZXN0X2VxLCBERUZBVUxUX0hB
U0hfU0laRSwKIAkJCSAgICAgREVGQVVMVF9SRUhBU0hfU0laRSwgREVGQVVMVF9SRUhBU0hfVEhS
RVNIT0xELAotCQkJICAgICBRbmlsLCBmYWxzZSk7CisJCQkgICAgIFFuaWwpOwogICAgICAgaWYg
KCEgSEFTSF9UQUJMRV9QIChyZWFkX29iamVjdHNfY29tcGxldGVkKQogCSAgfHwgWEhBU0hfVEFC
TEUgKHJlYWRfb2JqZWN0c19jb21wbGV0ZWQpLT5jb3VudCkKIAlyZWFkX29iamVjdHNfY29tcGxl
dGVkCiAJICA9IG1ha2VfaGFzaF90YWJsZSAoaGFzaHRlc3RfZXEsIERFRkFVTFRfSEFTSF9TSVpF
LAogCQkJICAgICBERUZBVUxUX1JFSEFTSF9TSVpFLCBERUZBVUxUX1JFSEFTSF9USFJFU0hPTEQs
Ci0JCQkgICAgIFFuaWwsIGZhbHNlKTsKKwkJCSAgICAgUW5pbCk7CiAgICAgICBpZiAoIU5JTFAg
KFZwdXJpZnlfZmxhZykgJiYgYyA9PSAnKCcpCiAJewogCSAgdmFsID0gcmVhZF9saXN0ICgwLCBy
ZWFkY2hhcmZ1bik7CkBAIC0yMjYxLDEyICsyMjYxLDEyIEBAIHJlYWRfaW50ZXJuYWxfc3RhcnQg
KExpc3BfT2JqZWN0IHN0cmVhbSwgTGlzcF9PYmplY3Qgc3RhcnQsIExpc3BfT2JqZWN0IGVuZCkK
ICAgICAgIHx8IFhIQVNIX1RBQkxFIChyZWFkX29iamVjdHNfbWFwKS0+Y291bnQpCiAgICAgcmVh
ZF9vYmplY3RzX21hcAogICAgICAgPSBtYWtlX2hhc2hfdGFibGUgKGhhc2h0ZXN0X2VxLCBERUZB
VUxUX0hBU0hfU0laRSwgREVGQVVMVF9SRUhBU0hfU0laRSwKLQkJCSBERUZBVUxUX1JFSEFTSF9U
SFJFU0hPTEQsIFFuaWwsIGZhbHNlKTsKKwkJCSBERUZBVUxUX1JFSEFTSF9USFJFU0hPTEQsIFFu
aWwpOwogICBpZiAoISBIQVNIX1RBQkxFX1AgKHJlYWRfb2JqZWN0c19jb21wbGV0ZWQpCiAgICAg
ICB8fCBYSEFTSF9UQUJMRSAocmVhZF9vYmplY3RzX2NvbXBsZXRlZCktPmNvdW50KQogICAgIHJl
YWRfb2JqZWN0c19jb21wbGV0ZWQKICAgICAgID0gbWFrZV9oYXNoX3RhYmxlIChoYXNodGVzdF9l
cSwgREVGQVVMVF9IQVNIX1NJWkUsIERFRkFVTFRfUkVIQVNIX1NJWkUsCi0JCQkgREVGQVVMVF9S
RUhBU0hfVEhSRVNIT0xELCBRbmlsLCBmYWxzZSk7CisJCQkgREVGQVVMVF9SRUhBU0hfVEhSRVNI
T0xELCBRbmlsKTsKICAgaWYgKEVRIChWcmVhZF93aXRoX3N5bWJvbF9wb3NpdGlvbnMsIFF0KQog
ICAgICAgfHwgRVEgKFZyZWFkX3dpdGhfc3ltYm9sX3Bvc2l0aW9ucywgc3RyZWFtKSkKICAgICBW
cmVhZF9zeW1ib2xfcG9zaXRpb25zX2xpc3QgPSBRbmlsOwpAQCAtMjgzNSwxMSArMjgzNSw2IEBA
IHJlYWQxIChMaXNwX09iamVjdCByZWFkY2hhcmZ1biwgaW50ICpwY2gsIGJvb2wgZmlyc3RfaW5f
bGlzdCkKIAkgICAgICBpZiAoIU5JTFAgKHBhcmFtc1twYXJhbV9jb3VudCArIDFdKSkKIAkJcGFy
YW1fY291bnQgKz0gMjsKIAotICAgICAgICAgICAgICBwYXJhbXNbcGFyYW1fY291bnRdID0gUUNw
dXJlY29weTsKLSAgICAgICAgICAgICAgcGFyYW1zW3BhcmFtX2NvdW50ICsgMV0gPSBGcGxpc3Rf
Z2V0ICh0bXAsIFFwdXJlY29weSk7Ci0gICAgICAgICAgICAgIGlmICghTklMUCAocGFyYW1zW3Bh
cmFtX2NvdW50ICsgMV0pKQotICAgICAgICAgICAgICAgIHBhcmFtX2NvdW50ICs9IDI7Ci0KIAkg
ICAgICAvKiBUaGlzIGlzIHRoZSBoYXNoIHRhYmxlIGRhdGEuICAqLwogCSAgICAgIGRhdGEgPSBG
cGxpc3RfZ2V0ICh0bXAsIFFkYXRhKTsKIApAQCAtMzEwOSwxMyArMzEwNCwxMyBAQCByZWFkMSAo
TGlzcF9PYmplY3QgcmVhZGNoYXJmdW4sIGludCAqcGNoLCBib29sIGZpcnN0X2luX2xpc3QpCiAJ
ICAgICAgLyogTm8gc3ltYm9sIGNoYXJhY3RlciBmb2xsb3dzLCB0aGlzIGlzIHRoZSBlbXB0eQog
CQkgc3ltYm9sLiAgKi8KIAkgICAgICBVTlJFQUQgKGMpOwotCSAgICAgIHJldHVybiBGbWFrZV9z
eW1ib2wgKGVtcHR5X3VuaWJ5dGVfc3RyaW5nKTsKKwkgICAgICByZXR1cm4gRm1ha2Vfc3ltYm9s
IChidWlsZF9zdHJpbmcgKCIiKSk7CiAJICAgIH0KIAkgIGdvdG8gcmVhZF9zeW1ib2w7CiAJfQog
ICAgICAgLyogIyMgaXMgdGhlIGVtcHR5IHN5bWJvbC4gICovCiAgICAgICBpZiAoYyA9PSAnIycp
Ci0JcmV0dXJuIEZpbnRlcm4gKGVtcHR5X3VuaWJ5dGVfc3RyaW5nLCBRbmlsKTsKKwlyZXR1cm4g
RmludGVybiAoYnVpbGRfc3RyaW5nICgiIiksIFFuaWwpOwogCiAgICAgICBpZiAoYyA+PSAnMCcg
JiYgYyA8PSAnOScpCiAJewpAQCAtMzU2Niw5ICszNTYxLDggQEAgcmVhZDEgKExpc3BfT2JqZWN0
IHJlYWRjaGFyZnVuLCBpbnQgKnBjaCwgYm9vbCBmaXJzdF9pbl9saXN0KQogCSAgaWYgKHVuaW50
ZXJuZWRfc3ltYm9sKQogCSAgICB7CiAJICAgICAgTGlzcF9PYmplY3QgbmFtZQotCQk9ICgoISBO
SUxQIChWcHVyaWZ5X2ZsYWcpCi0JCSAgICA/IG1ha2VfcHVyZV9zdHJpbmcgOiBtYWtlX3NwZWNp
ZmllZF9zdHJpbmcpCi0JCSAgIChyZWFkX2J1ZmZlciwgbmNoYXJzLCBuYnl0ZXMsIG11bHRpYnl0
ZSkpOworCQk9IG1ha2Vfc3BlY2lmaWVkX3N0cmluZyAocmVhZF9idWZmZXIsIG5jaGFycywgbmJ5
dGVzLAorCQkJCQkgbXVsdGlieXRlKTsKIAkgICAgICByZXN1bHQgPSBGbWFrZV9zeW1ib2wgKG5h
bWUpOwogCSAgICB9CiAJICBlbHNlCkBAIC00MTUzLDEwICs0MTQ3LDggQEAgaW50ZXJuX2Nfc3Ry
aW5nXzEgKGNvbnN0IGNoYXIgKnN0ciwgcHRyZGlmZl90IGxlbikKIAogICBpZiAoIVNZTUJPTFAg
KHRlbSkpCiAgICAgewotICAgICAgLyogQ3JlYXRpbmcgYSBub24tcHVyZSBzdHJpbmcgZnJvbSBh
IHN0cmluZyBsaXRlcmFsIG5vdCBpbXBsZW1lbnRlZCB5ZXQuCi0JIFdlIGNvdWxkIGp1c3QgdXNl
IG1ha2Vfc3RyaW5nIGhlcmUgYW5kIGxpdmUgd2l0aCB0aGUgZXh0cmEgY29weS4gICovCiAgICAg
ICBlYXNzZXJ0ICghTklMUCAoVnB1cmlmeV9mbGFnKSk7Ci0gICAgICB0ZW0gPSBpbnRlcm5fZHJp
dmVyIChtYWtlX3B1cmVfY19zdHJpbmcgKHN0ciwgbGVuKSwgb2JhcnJheSwgdGVtKTsKKyAgICAg
IHRlbSA9IGludGVybl9kcml2ZXIgKG1ha2Vfc3RyaW5nIChzdHIsIGxlbiksIG9iYXJyYXksIHRl
bSk7CiAgICAgfQogICByZXR1cm4gdGVtOwogfQpAQCAtNDE2NSw3ICs0MTU3LDcgQEAgaW50ZXJu
X2Nfc3RyaW5nXzEgKGNvbnN0IGNoYXIgKnN0ciwgcHRyZGlmZl90IGxlbikKIGRlZmluZV9zeW1i
b2wgKExpc3BfT2JqZWN0IHN5bSwgY2hhciBjb25zdCAqc3RyKQogewogICBwdHJkaWZmX3QgbGVu
ID0gc3RybGVuIChzdHIpOwotICBMaXNwX09iamVjdCBzdHJpbmcgPSBtYWtlX3B1cmVfY19zdHJp
bmcgKHN0ciwgbGVuKTsKKyAgTGlzcF9PYmplY3Qgc3RyaW5nID0gbWFrZV9zdHJpbmcgKHN0ciwg
bGVuKTsKICAgaW5pdF9zeW1ib2wgKHN5bSwgc3RyaW5nKTsKIAogICAvKiBRdW5ib3VuZCBpcyB1
bmludGVybmVkLCBzbyB0aGF0IGl0J3Mgbm90IGNvbmZ1c2VkIHdpdGggYW55IHN5bWJvbApAQCAt
NDE5Miw4ICs0MTg0LDcgQEAgREVGVU4gKCJpbnRlcm4iLCBGaW50ZXJuLCBTaW50ZXJuLCAxLCAy
LCAwLAogCiAgIHRlbSA9IG9ibG9va3VwIChvYmFycmF5LCBTU0RBVEEgKHN0cmluZyksIFNDSEFS
UyAoc3RyaW5nKSwgU0JZVEVTIChzdHJpbmcpKTsKICAgaWYgKCFTWU1CT0xQICh0ZW0pKQotICAg
IHRlbSA9IGludGVybl9kcml2ZXIgKE5JTFAgKFZwdXJpZnlfZmxhZykgPyBzdHJpbmcgOiBGcHVy
ZWNvcHkgKHN0cmluZyksCi0JCQkgb2JhcnJheSwgdGVtKTsKKyAgICB0ZW0gPSBpbnRlcm5fZHJp
dmVyIChzdHJpbmcsIG9iYXJyYXksIHRlbSk7CiAgIHJldHVybiB0ZW07CiB9CiAKQEAgLTQ4NDMs
MTcgKzQ4MzQsMTcgQEAgc3ltc19vZl9scmVhZCAodm9pZCkKIGBsb2FkJyBhbmQgcmVsYXRlZCBm
dW5jdGlvbnMgdHJ5IHRvIGFwcGVuZCB0aGVzZSBzdWZmaXhlcywgaW4gb3JkZXIsCiB0byB0aGUg
c3BlY2lmaWVkIGZpbGUgbmFtZSBpZiBhIHN1ZmZpeCBpcyBhbGxvd2VkIG9yIHJlcXVpcmVkLiAg
Ki8pOwogI2lmZGVmIEhBVkVfTU9EVUxFUwotICBWbG9hZF9zdWZmaXhlcyA9IGxpc3QzIChidWls
ZF9wdXJlX2Nfc3RyaW5nICgiLmVsYyIpLAotCQkJICBidWlsZF9wdXJlX2Nfc3RyaW5nICgiLmVs
IiksCi0JCQkgIGJ1aWxkX3B1cmVfY19zdHJpbmcgKE1PRFVMRVNfU1VGRklYKSk7CisgIFZsb2Fk
X3N1ZmZpeGVzID0gbGlzdDMgKGJ1aWxkX3N0cmluZyAoIi5lbGMiKSwKKwkJCSAgYnVpbGRfc3Ry
aW5nICgiLmVsIiksCisJCQkgIGJ1aWxkX3N0cmluZyAoTU9EVUxFU19TVUZGSVgpKTsKICNlbHNl
Ci0gIFZsb2FkX3N1ZmZpeGVzID0gbGlzdDIgKGJ1aWxkX3B1cmVfY19zdHJpbmcgKCIuZWxjIiks
Ci0JCQkgIGJ1aWxkX3B1cmVfY19zdHJpbmcgKCIuZWwiKSk7CisgIFZsb2FkX3N1ZmZpeGVzID0g
bGlzdDIgKGJ1aWxkX3N0cmluZyAoIi5lbGMiKSwKKwkJCSAgYnVpbGRfc3RyaW5nICgiLmVsIikp
OwogI2VuZGlmCiAgIERFRlZBUl9MSVNQICgibW9kdWxlLWZpbGUtc3VmZml4IiwgVm1vZHVsZV9m
aWxlX3N1ZmZpeCwKIAkgICAgICAgZG9jOiAvKiBTdWZmaXggb2YgbG9hZGFibGUgbW9kdWxlIGZp
bGUsIG9yIG5pbCBpZiBtb2R1bGVzIGFyZSBub3Qgc3VwcG9ydGVkLiAgKi8pOwogI2lmZGVmIEhB
VkVfTU9EVUxFUwotICBWbW9kdWxlX2ZpbGVfc3VmZml4ID0gYnVpbGRfcHVyZV9jX3N0cmluZyAo
TU9EVUxFU19TVUZGSVgpOworICBWbW9kdWxlX2ZpbGVfc3VmZml4ID0gYnVpbGRfc3RyaW5nIChN
T0RVTEVTX1NVRkZJWCk7CiAjZWxzZQogICBWbW9kdWxlX2ZpbGVfc3VmZml4ID0gUW5pbDsKICNl
bmRpZgpAQCAtNDk5Niw3ICs0OTg3LDcgQEAgc3ltc19vZl9scmVhZCAodm9pZCkKIFdoZW4gdGhl
IHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGVzLCB0aGUgZmlsZSBpcyBjb25zaWRlcmVkIHRvIGJl
IHNhZmUKIHRvIGxvYWQuICBTZWUgYWxzbyBgbG9hZC1kYW5nZXJvdXMtbGlicmFyaWVzJy4gICov
KTsKICAgVmJ5dGVjb21wX3ZlcnNpb25fcmVnZXhwCi0gICAgPSBidWlsZF9wdXJlX2Nfc3RyaW5n
ICgiXjs7Oy5cXChpbiBFbWFjcyB2ZXJzaW9uXFx8Ynl0ZWNvbXAgdmVyc2lvbiBGU0ZcXCkiKTsK
KyAgICA9IGJ1aWxkX3N0cmluZyAoIl47OzsuXFwoaW4gRW1hY3MgdmVyc2lvblxcfGJ5dGVjb21w
IHZlcnNpb24gRlNGXFwpIik7CiAKICAgREVGU1lNIChRbGV4aWNhbF9iaW5kaW5nLCAibGV4aWNh
bC1iaW5kaW5nIik7CiAgIERFRlZBUl9MSVNQICgibGV4aWNhbC1iaW5kaW5nIiwgVmxleGljYWxf
YmluZGluZywKZGlmZiAtLWdpdCBhL3NyYy9wZHVtcGVyLmMgYi9zcmMvcGR1bXBlci5jCmluZGV4
IDJhYmFjODBhMzcuLmVmZWJlOGU1N2MgMTAwNjQ0Ci0tLSBhL3NyYy9wZHVtcGVyLmMKKysrIGIv
c3JjL3BkdW1wZXIuYwpAQCAtMjQ3MSw3ICsyNDcxLDYgQEAgZHVtcF9zeW1ib2wgKHN0cnVjdCBk
dW1wX2NvbnRleHQgKmN0eCwKICAgRFVNUF9GSUVMRF9DT1BZICgmb3V0LCBzeW1ib2wsIHUucy50
cmFwcGVkX3dyaXRlKTsKICAgRFVNUF9GSUVMRF9DT1BZICgmb3V0LCBzeW1ib2wsIHUucy5pbnRl
cm5lZCk7CiAgIERVTVBfRklFTERfQ09QWSAoJm91dCwgc3ltYm9sLCB1LnMuZGVjbGFyZWRfc3Bl
Y2lhbCk7Ci0gIERVTVBfRklFTERfQ09QWSAoJm91dCwgc3ltYm9sLCB1LnMucGlubmVkKTsKICAg
ZHVtcF9maWVsZF9sdiAoY3R4LCAmb3V0LCBzeW1ib2wsICZzeW1ib2wtPnUucy5uYW1lLCBXRUlH
SFRfU1RST05HKTsKICAgc3dpdGNoIChzeW1ib2wtPnUucy5yZWRpcmVjdCkKICAgICB7CkBAIC0y
NzQxLDcgKzI3NDAsNiBAQCBkdW1wX2hhc2hfdGFibGUgKHN0cnVjdCBkdW1wX2NvbnRleHQgKmN0
eCwKICAgICAgdGhlbSBhcyBjbG9zZSB0byB0aGUgaGFzaCB0YWJsZSBhcyBwb3NzaWJsZS4gICov
CiAgIERVTVBfRklFTERfQ09QWSAob3V0LCBoYXNoLCBjb3VudCk7CiAgIERVTVBfRklFTERfQ09Q
WSAob3V0LCBoYXNoLCBuZXh0X2ZyZWUpOwotICBEVU1QX0ZJRUxEX0NPUFkgKG91dCwgaGFzaCwg
cHVyZWNvcHkpOwogICBEVU1QX0ZJRUxEX0NPUFkgKG91dCwgaGFzaCwgbXV0YWJsZSk7CiAgIERV
TVBfRklFTERfQ09QWSAob3V0LCBoYXNoLCByZWhhc2hfdGhyZXNob2xkKTsKICAgRFVNUF9GSUVM
RF9DT1BZIChvdXQsIGhhc2gsIHJlaGFzaF9zaXplKTsKZGlmZiAtLWdpdCBhL3NyYy9wcmludC5j
IGIvc3JjL3ByaW50LmMKaW5kZXggY2IzNDA5MDUxNC4uNTM0ZmMxNjhmYiAxMDA2NDQKLS0tIGEv
c3JjL3ByaW50LmMKKysrIGIvc3JjL3ByaW50LmMKQEAgLTE1NzUsMTIgKzE1NzUsNiBAQCBwcmlu
dF92ZWN0b3JsaWtlIChMaXNwX09iamVjdCBvYmosIExpc3BfT2JqZWN0IHByaW50Y2hhcmZ1biwg
Ym9vbCBlc2NhcGVmbGFnLAogCXByaW50X29iamVjdCAoRmhhc2hfdGFibGVfcmVoYXNoX3RocmVz
aG9sZCAob2JqKSwKIAkJICAgICAgcHJpbnRjaGFyZnVuLCBlc2NhcGVmbGFnKTsKIAotCWlmICho
LT5wdXJlY29weSkKLQkgIHsKLQkgICAgcHJpbnRfY19zdHJpbmcgKCIgcHVyZWNvcHkgIiwgcHJp
bnRjaGFyZnVuKTsKLQkgICAgcHJpbnRfb2JqZWN0IChoLT5wdXJlY29weSA/IFF0IDogUW5pbCwg
cHJpbnRjaGFyZnVuLCBlc2NhcGVmbGFnKTsKLQkgIH0KLQogCXByaW50X2Nfc3RyaW5nICgiIGRh
dGEgIiwgcHJpbnRjaGFyZnVuKTsKIAogCS8qIFByaW50IHRoZSBkYXRhIGhlcmUgYXMgYSBwbGlz
dC4gKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm9jZXNzLmMgYi9zcmMvcHJvY2Vzcy5jCmluZGV4IGFi
YWRhYmU3N2UuLjE2MDBmOWQ0NWUgMTAwNjQ0Ci0tLSBhL3NyYy9wcm9jZXNzLmMKKysrIGIvc3Jj
L3Byb2Nlc3MuYwpAQCAtODM2OCw3ICs4MzY4LDcgQEAgc3ltc19vZl9wcm9jZXNzICh2b2lkKQog
ICAgY29uc3Qgc3RydWN0IHNvY2tldF9vcHRpb25zICpzb3B0OwogCiAjZGVmaW5lIEFERF9TVUJG
RUFUVVJFKGtleSwgdmFsKSBcCi0gIHN1YmZlYXR1cmVzID0gcHVyZV9jb25zIChwdXJlX2NvbnMg
KGtleSwgcHVyZV9jb25zICh2YWwsIFFuaWwpKSwgc3ViZmVhdHVyZXMpCisgIHN1YmZlYXR1cmVz
ID0gRmNvbnMgKEZjb25zIChrZXksIEZjb25zICh2YWwsIFFuaWwpKSwgc3ViZmVhdHVyZXMpCiAK
ICAgIEFERF9TVUJGRUFUVVJFIChRQ25vd2FpdCwgUXQpOwogI2lmZGVmIERBVEFHUkFNX1NPQ0tF
VFMKQEAgLTgzOTAsNyArODM5MCw3IEBAICNkZWZpbmUgQUREX1NVQkZFQVRVUkUoa2V5LCB2YWwp
IFwKICAgIEFERF9TVUJGRUFUVVJFIChRQ3NlcnZlciwgUXQpOwogCiAgICBmb3IgKHNvcHQgPSBz
b2NrZXRfb3B0aW9uczsgc29wdC0+bmFtZTsgc29wdCsrKQotICAgICBzdWJmZWF0dXJlcyA9IHB1
cmVfY29ucyAoaW50ZXJuX2Nfc3RyaW5nIChzb3B0LT5uYW1lKSwgc3ViZmVhdHVyZXMpOworICAg
ICBzdWJmZWF0dXJlcyA9IEZjb25zIChpbnRlcm5fY19zdHJpbmcgKHNvcHQtPm5hbWUpLCBzdWJm
ZWF0dXJlcyk7CiAKICAgIEZwcm92aWRlIChpbnRlcm5fY19zdHJpbmcgKCJtYWtlLW5ldHdvcmst
cHJvY2VzcyIpLCBzdWJmZWF0dXJlcyk7CiAgfQpkaWZmIC0tZ2l0IGEvc3JjL3Byb2ZpbGVyLmMg
Yi9zcmMvcHJvZmlsZXIuYwppbmRleCBlZDBlOWRkZDg4Li4zODM4ZjljODM2IDEwMDY0NAotLS0g
YS9zcmMvcHJvZmlsZXIuYworKysgYi9zcmMvcHJvZmlsZXIuYwpAQCAtNjMsNyArNjMsNyBAQCBt
YWtlX2xvZyAodm9pZCkKICAgTGlzcF9PYmplY3QgbG9nID0gbWFrZV9oYXNoX3RhYmxlIChoYXNo
dGVzdF9wcm9maWxlciwgaGVhcF9zaXplLAogCQkJCSAgICAgREVGQVVMVF9SRUhBU0hfU0laRSwK
IAkJCQkgICAgIERFRkFVTFRfUkVIQVNIX1RIUkVTSE9MRCwKLQkJCQkgICAgIFFuaWwsIGZhbHNl
KTsKKwkJCQkgICAgIFFuaWwpOwogICBzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICpoID0gWEhBU0hf
VEFCTEUgKGxvZyk7CiAKICAgLyogV2hhdCBpcyBzcGVjaWFsIGFib3V0IG91ciBoYXNoLXRhYmxl
cyBpcyB0aGF0IHRoZSBrZXlzIGFyZSBwcmUtZmlsbGVkCmRpZmYgLS1naXQgYS9zcmMvcHVyZXNp
emUuaCBiL3NyYy9wdXJlc2l6ZS5oCmluZGV4IGY1ZmFkOGI0MmIuLmU2OWRlMjliYjIgMTAwNjQ0
Ci0tLSBhL3NyYy9wdXJlc2l6ZS5oCisrKyBiL3NyYy9wdXJlc2l6ZS5oCkBAIC0xLDExNSArMCww
IEBACi0vKiBIb3cgbXVjaCByZWFkLW9ubHkgTGlzcCBzdG9yYWdlIGEgZHVtcGVkIEVtYWNzIG5l
ZWRzLgotICAgQ29weXJpZ2h0IChDKSAxOTkzLCAyMDAxLTIwMTkgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuCi0KLVRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KLQotR05VIEVt
YWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp
ZnkKLWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5Ci10aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVy
c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKLXlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLQotR05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi1idXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLQotWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLWFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90
LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0KLSNpZm5kZWYgRU1B
Q1NfUFVSRVNJWkVfSAotI2RlZmluZSBFTUFDU19QVVJFU0laRV9ICi0KLSNpbmNsdWRlICJsaXNw
LmgiCi0KLUlOTElORV9IRUFERVJfQkVHSU4KLQotLyogRGVmaW5lIFBVUkVTSVpFLCB0aGUgbnVt
YmVyIG9mIGJ5dGVzIG9mIHB1cmUgTGlzcCBjb2RlIHRvIGxlYXZlIHNwYWNlIGZvci4KLQotICAg
QXQgb25lIHBvaW50LCB0aGlzIHdhcyBkZWZpbmVkIGluIGNvbmZpZy5oLCBtZWFuaW5nIHRoYXQg
Y2hhbmdpbmcKLSAgIFBVUkVTSVpFIHdvdWxkIG1ha2UgTWFrZSByZWNvbXBpbGUgYWxsIG9mIEVt
YWNzLiAgQnV0IG9ubHkgYSBmZXcKLSAgIGZpbGVzIGFjdHVhbGx5IHVzZSBQVVJFU0laRSwgc28g
d2Ugc3BsaXQgaXQgb3V0IHRvIGl0cyBvd24gLmggZmlsZS4KLQotICAgTWFrZSBzdXJlIHRvIGlu
Y2x1ZGUgdGhpcyBmaWxlIGFmdGVyIGNvbmZpZy5oLCBzaW5jZSB0aGF0IHRlbGxzIHVzCi0gICB3
aGV0aGVyIHdlIGFyZSBydW5uaW5nIFggd2luZG93cywgd2hpY2ggdGVsbHMgdXMgaG93IG11Y2gg
cHVyZQotICAgc3RvcmFnZSB0byBhbGxvY2F0ZS4gICovCi0KLS8qIEZpcnN0IGRlZmluZSBhIG1l
YXN1cmUgb2YgdGhlIGFtb3VudCBvZiBkYXRhIHdlIGhhdmUuICAqLwotCi0vKiBBIHN5c3RlbSBj
b25maWd1cmF0aW9uIGZpbGUgbWF5IHNldCB0aGlzIHRvIHJlcXVlc3QgYSBjZXJ0YWluIGV4dHJh
Ci0gICBhbW91bnQgb2Ygc3RvcmFnZS4gIFRoaXMgaXMgYSBsb3QgbW9yZSB1cGRhdGUtcm9idXN0
IHRoYXQgZGVmaW5pbmcKLSAgIEJBU0VfUFVSRVNJWkUgb3IgZXZlbiBQVVJFU0laRSBkaXJlY3Rs
eS4gICovCi0jaWZuZGVmIFNZU1RFTV9QVVJFU0laRV9FWFRSQQotI2RlZmluZSBTWVNURU1fUFVS
RVNJWkVfRVhUUkEgMAotI2VuZGlmCi0KLSNpZm5kZWYgU0lURUxPQURfUFVSRVNJWkVfRVhUUkEK
LSNkZWZpbmUgU0lURUxPQURfUFVSRVNJWkVfRVhUUkEgMAotI2VuZGlmCi0KLSNpZm5kZWYgQkFT
RV9QVVJFU0laRQotI2RlZmluZSBCQVNFX1BVUkVTSVpFICgyMDAwMDAwICsgU1lTVEVNX1BVUkVT
SVpFX0VYVFJBICsgU0lURUxPQURfUFVSRVNJWkVfRVhUUkEpCi0jZW5kaWYKLQotLyogSW5jcmVh
c2UgQkFTRV9QVVJFU0laRSBieSBhIHJhdGlvIGRlcGVuZGluZyBvbiB0aGUgbWFjaGluZSdzIHdv
cmQgc2l6ZS4gICovCi0jaWZuZGVmIFBVUkVTSVpFX1JBVElPCi0jaWYgRU1BQ1NfSU5UX01BWCA+
PiAzMSAhPSAwCi0jaWYgUFRSRElGRl9NQVggPj4gMzEgIT0gMAotI2RlZmluZSBQVVJFU0laRV9S
QVRJTyAxMCAvIDYJLyogRG9uJ3Qgc3Vycm91bmQgd2l0aCBgKCknLiAgKi8KLSNlbHNlCi0jZGVm
aW5lIFBVUkVTSVpFX1JBVElPIDggLyA2CS8qIERvbid0IHN1cnJvdW5kIHdpdGggYCgpJy4gICov
Ci0jZW5kaWYKLSNlbHNlCi0jZGVmaW5lIFBVUkVTSVpFX1JBVElPIDEKLSNlbmRpZgotI2VuZGlm
Ci0KLSNpZmRlZiBFTkFCTEVfQ0hFQ0tJTkcKLS8qIEVOQUJMRV9DSEVDS0lORyBzb21laG93IGlu
Y3JlYXNlcyB0aGUgcHVyZXNwYWNlIHVzZWQsIHByb2JhYmx5IGJlY2F1c2UKLSAgIGl0IHRlbmRz
IHRvIGNhdXNlIHNvbWUgbWFjcm8gYXJndW1lbnRzIHRvIGJlIGV2YWx1YXRlZCB0d2ljZS4gIFRo
aXMgaXMKLSAgIGEgYnVnLCBidXQgaXQncyBkaWZmaWN1bHQgdG8gdHJhY2sgaXQgZG93bi4gICov
Ci0jZGVmaW5lIFBVUkVTSVpFX0NIRUNLSU5HX1JBVElPIDEyIC8gMTAJLyogRG9uJ3Qgc3Vycm91
bmQgd2l0aCBgKCknLiAgKi8KLSNlbHNlCi0jZGVmaW5lIFBVUkVTSVpFX0NIRUNLSU5HX1JBVElP
IDEKLSNlbmRpZgotCi0vKiBUaGlzIGlzIHRoZSBhY3R1YWwgc2l6ZSBpbiBieXRlcyB0byBhbGxv
Y2F0ZS4gICovCi0jaWZuZGVmIFBVUkVTSVpFCi0jZGVmaW5lIFBVUkVTSVpFICAoQkFTRV9QVVJF
U0laRSAqIFBVUkVTSVpFX1JBVElPICogUFVSRVNJWkVfQ0hFQ0tJTkdfUkFUSU8pCi0jZW5kaWYK
LQotZXh0ZXJuIEFWT0lEIHB1cmVfd3JpdGVfZXJyb3IgKExpc3BfT2JqZWN0KTsKLQotZXh0ZXJu
IEVNQUNTX0lOVCBwdXJlW107Ci0KLS8qIFRoZSBwdXJlc2l6ZV9oXyogbWFjcm9zIGFyZSBwcml2
YXRlIHRvIHRoaXMgaW5jbHVkZSBmaWxlLiAgKi8KLQotLyogVHJ1ZSBpZiBQVFIgaXMgcHVyZS4g
ICovCi0KLSNkZWZpbmUgcHVyZXNpemVfaF9QVVJFX1AocHRyKSBcCi0gICgodWludHB0cl90KSAo
cHRyKSAtICh1aW50cHRyX3QpIHB1cmUgPD0gUFVSRVNJWkUpCi0KLUlOTElORSBib29sCi1QVVJF
X1AgKHZvaWQgKnB0cikKLXsKLSAgcmV0dXJuIHB1cmVzaXplX2hfUFVSRV9QIChwdHIpOwotfQot
Ci0vKiBTaWduYWwgYW4gZXJyb3IgaWYgT0JKIGlzIHB1cmUuICBQVFIgaXMgT0JKIHVudGFnZ2Vk
LiAgKi8KLQotI2RlZmluZSBwdXJlc2l6ZV9oX0NIRUNLX0lNUFVSRShvYmosIHB0cikgXAotICAo
UFVSRV9QIChwdHIpID8gcHVyZV93cml0ZV9lcnJvciAob2JqKSA6ICh2b2lkKSAwKQotCi1JTkxJ
TkUgdm9pZAotQ0hFQ0tfSU1QVVJFIChMaXNwX09iamVjdCBvYmosIHZvaWQgKnB0cikKLXsKLSAg
cHVyZXNpemVfaF9DSEVDS19JTVBVUkUgKG9iaiwgcHRyKTsKLX0KLQotI2lmIERFRklORV9LRVlf
T1BTX0FTX01BQ1JPUwotIyBkZWZpbmUgUFVSRV9QKHB0cikgcHVyZXNpemVfaF9QVVJFX1AgKHB0
cikKLSMgZGVmaW5lIENIRUNLX0lNUFVSRShvYmosIHB0cikgcHVyZXNpemVfaF9DSEVDS19JTVBV
UkUgKG9iaiwgcHRyKQotI2VuZGlmCi0KLUlOTElORV9IRUFERVJfRU5ECi0KLSNlbmRpZiAvKiBF
TUFDU19QVVJFU0laRV9IICovCmRpZmYgLS1naXQgYS9zcmMvc2VhcmNoLmMgYi9zcmMvc2VhcmNo
LmMKaW5kZXggZmE1NzQ5NTlmYi4uNDljMmEyOWUxOSAxMDA2NDQKLS0tIGEvc3JjL3NlYXJjaC5j
CisrKyBiL3NyYy9zZWFyY2guYwpAQCAtMzM2OCwxOSArMzM2OCwxOSBAQCBzeW1zX29mX3NlYXJj
aCAodm9pZCkKICAgREVGU1lNIChRaW52YWxpZF9yZWdleHAsICJpbnZhbGlkLXJlZ2V4cCIpOwog
CiAgIEZwdXQgKFFzZWFyY2hfZmFpbGVkLCBRZXJyb3JfY29uZGl0aW9ucywKLQlwdXJlX2xpc3Qg
KFFzZWFyY2hfZmFpbGVkLCBRZXJyb3IpKTsKKwlsaXN0IChRc2VhcmNoX2ZhaWxlZCwgUWVycm9y
KSk7CiAgIEZwdXQgKFFzZWFyY2hfZmFpbGVkLCBRZXJyb3JfbWVzc2FnZSwKLQlidWlsZF9wdXJl
X2Nfc3RyaW5nICgiU2VhcmNoIGZhaWxlZCIpKTsKKwlidWlsZF9zdHJpbmcgKCJTZWFyY2ggZmFp
bGVkIikpOwogCiAgIEZwdXQgKFF1c2VyX3NlYXJjaF9mYWlsZWQsIFFlcnJvcl9jb25kaXRpb25z
LAotCXB1cmVfbGlzdCAoUXVzZXJfc2VhcmNoX2ZhaWxlZCwgUXVzZXJfZXJyb3IsIFFzZWFyY2hf
ZmFpbGVkLCBRZXJyb3IpKTsKKwlsaXN0IChRdXNlcl9zZWFyY2hfZmFpbGVkLCBRdXNlcl9lcnJv
ciwgUXNlYXJjaF9mYWlsZWQsIFFlcnJvcikpOwogICBGcHV0IChRdXNlcl9zZWFyY2hfZmFpbGVk
LCBRZXJyb3JfbWVzc2FnZSwKLSAgICAgICAgYnVpbGRfcHVyZV9jX3N0cmluZyAoIlNlYXJjaCBm
YWlsZWQiKSk7CisgICAgICAgIGJ1aWxkX3N0cmluZyAoIlNlYXJjaCBmYWlsZWQiKSk7CiAKICAg
RnB1dCAoUWludmFsaWRfcmVnZXhwLCBRZXJyb3JfY29uZGl0aW9ucywKLQlwdXJlX2xpc3QgKFFp
bnZhbGlkX3JlZ2V4cCwgUWVycm9yKSk7CisJbGlzdCAoUWludmFsaWRfcmVnZXhwLCBRZXJyb3Ip
KTsKICAgRnB1dCAoUWludmFsaWRfcmVnZXhwLCBRZXJyb3JfbWVzc2FnZSwKLQlidWlsZF9wdXJl
X2Nfc3RyaW5nICgiSW52YWxpZCByZWdleHAiKSk7CisJYnVpbGRfc3RyaW5nICgiSW52YWxpZCBy
ZWdleHAiKSk7CiAKICAgcmVfbWF0Y2hfb2JqZWN0ID0gUW5pbDsKICAgc3RhdGljcHJvICgmcmVf
bWF0Y2hfb2JqZWN0KTsKZGlmZiAtLWdpdCBhL3NyYy9zeW50YXguYyBiL3NyYy9zeW50YXguYwpp
bmRleCBlZGZkYWUyMjU5Li4xNWJmYmE5MDI0IDEwMDY0NAotLS0gYS9zcmMvc3ludGF4LmMKKysr
IGIvc3JjL3N5bnRheC5jCkBAIC0zNzE2LDkgKzM3MTYsOSBAQCBzeW1zX29mX3N5bnRheCAodm9p
ZCkKIAogICBERUZTWU0gKFFzY2FuX2Vycm9yLCAic2Nhbi1lcnJvciIpOwogICBGcHV0IChRc2Nh
bl9lcnJvciwgUWVycm9yX2NvbmRpdGlvbnMsCi0JcHVyZV9saXN0IChRc2Nhbl9lcnJvciwgUWVy
cm9yKSk7CisJbGlzdCAoUXNjYW5fZXJyb3IsIFFlcnJvcikpOwogICBGcHV0IChRc2Nhbl9lcnJv
ciwgUWVycm9yX21lc3NhZ2UsCi0JYnVpbGRfcHVyZV9jX3N0cmluZyAoIlNjYW4gZXJyb3IiKSk7
CisJYnVpbGRfc3RyaW5nICgiU2NhbiBlcnJvciIpKTsKIAogICBERUZWQVJfQk9PTCAoInBhcnNl
LXNleHAtaWdub3JlLWNvbW1lbnRzIiwgcGFyc2Vfc2V4cF9pZ25vcmVfY29tbWVudHMsCiAJICAg
ICAgIGRvYzogLyogTm9uLW5pbCBtZWFucyBgZm9yd2FyZC1zZXhwJywgZXRjLiwgc2hvdWxkIHRy
ZWF0IGNvbW1lbnRzIGFzIHdoaXRlc3BhY2UuICAqLyk7CmRpZmYgLS1naXQgYS9zcmMvdzMyZm5z
LmMgYi9zcmMvdzMyZm5zLmMKaW5kZXggYWNkOWM4MDUyOC4uZWQzYjBiM2EyZCAxMDA2NDQKLS0t
IGEvc3JjL3czMmZucy5jCisrKyBiL3NyYy93MzJmbnMuYwpAQCAtMTAyNTksOSArMTAyNTksOSBA
QCBzeW1zX29mX3czMmZucyAodm9pZCkKICAgREVGU1lNIChRanNvbiwgImpzb24iKTsKIAogICBG
cHV0IChRdW5kZWZpbmVkX2NvbG9yLCBRZXJyb3JfY29uZGl0aW9ucywKLQlwdXJlX2xpc3QgKFF1
bmRlZmluZWRfY29sb3IsIFFlcnJvcikpOworCWxpc3QgKFF1bmRlZmluZWRfY29sb3IsIFFlcnJv
cikpOwogICBGcHV0IChRdW5kZWZpbmVkX2NvbG9yLCBRZXJyb3JfbWVzc2FnZSwKLQlidWlsZF9w
dXJlX2Nfc3RyaW5nICgiVW5kZWZpbmVkIGNvbG9yIikpOworCWJ1aWxkX3N0cmluZyAoIlVuZGVm
aW5lZCBjb2xvciIpKTsKIAogICBzdGF0aWNwcm8gKCZ3MzJfZ3JhYmJlZF9rZXlzKTsKICAgdzMy
X2dyYWJiZWRfa2V5cyA9IFFuaWw7CmRpZmYgLS1naXQgYS9zcmMveGRpc3AuYyBiL3NyYy94ZGlz
cC5jCmluZGV4IDUwZjY0NDNmNmIuLjE3ODE3NzQxNDggMTAwNjQ0Ci0tLSBhL3NyYy94ZGlzcC5j
CisrKyBiL3NyYy94ZGlzcC5jCkBAIC0zMjk4NSw3ICszMjk4NSw3IEBAIHN5bXNfb2ZfeGRpc3Ag
KHZvaWQpCiAgIHN0YXRpY3BybyAoJmVjaG9fYXJlYV9idWZmZXJbMF0pOwogICBzdGF0aWNwcm8g
KCZlY2hvX2FyZWFfYnVmZmVyWzFdKTsKIAotICBWbWVzc2FnZXNfYnVmZmVyX25hbWUgPSBidWls
ZF9wdXJlX2Nfc3RyaW5nICgiKk1lc3NhZ2VzKiIpOworICBWbWVzc2FnZXNfYnVmZmVyX25hbWUg
PSBidWlsZF9zdHJpbmcgKCIqTWVzc2FnZXMqIik7CiAgIHN0YXRpY3BybyAoJlZtZXNzYWdlc19i
dWZmZXJfbmFtZSk7CiAKICAgbW9kZV9saW5lX3Byb3B0cmFuc19hbGlzdCA9IFFuaWw7CkBAIC0z
MzA2OCw3ICszMzA2OCw3IEBAIHN5bXNfb2ZfeGRpc3AgKHZvaWQpCiAgIERFRlZBUl9MSVNQICgi
b3ZlcmxheS1hcnJvdy1zdHJpbmciLCBWb3ZlcmxheV9hcnJvd19zdHJpbmcsCiAgICAgZG9jOiAv
KiBTdHJpbmcgdG8gZGlzcGxheSBhcyBhbiBhcnJvdyBpbiBub24td2luZG93IGZyYW1lcy4KIFNl
ZSBhbHNvIGBvdmVybGF5LWFycm93LXBvc2l0aW9uJy4gICovKTsKLSAgVm92ZXJsYXlfYXJyb3df
c3RyaW5nID0gYnVpbGRfcHVyZV9jX3N0cmluZyAoIj0+Iik7CisgIFZvdmVybGF5X2Fycm93X3N0
cmluZyA9IGJ1aWxkX3N0cmluZyAoIj0+Iik7CiAKICAgREVGVkFSX0xJU1AgKCJvdmVybGF5LWFy
cm93LXZhcmlhYmxlLWxpc3QiLCBWb3ZlcmxheV9hcnJvd192YXJpYWJsZV9saXN0LAogICAgIGRv
YzogLyogTGlzdCBvZiB2YXJpYWJsZXMgKHN5bWJvbHMpIHdoaWNoIGhvbGQgbWFya2VycyBmb3Ig
b3ZlcmxheSBhcnJvd3MuCkBAIC0zMzE3NiwxOCArMzMxNzYsMTggQEAgc3ltc19vZl94ZGlzcCAo
dm9pZCkKIFRoaXMgdmFyaWFibGUgaGFzIHRoZSBzYW1lIHN0cnVjdHVyZSBhcyBgbW9kZS1saW5l
LWZvcm1hdCcgKHdoaWNoIHNlZSksCiBhbmQgaXMgdXNlZCBvbmx5IG9uIGZyYW1lcyBmb3Igd2hp
Y2ggbm8gZXhwbGljaXQgbmFtZSBoYXMgYmVlbiBzZXQKIFwoc2VlIGBtb2RpZnktZnJhbWUtcGFy
YW1ldGVycycpLiAgKi8pOwotICAvKiBEbyBub3QgbmVzdCBjYWxscyB0byBwdXJlX2xpc3QuICBU
aGlzIHdvcmtzIGFyb3VuZCBhIGJ1ZyBpbgorICAvKiBEbyBub3QgbmVzdCBjYWxscyB0byBsaXN0
LiAgVGhpcyB3b3JrcyBhcm91bmQgYSBidWcgaW4KICAgICAgT3JhY2xlIERldmVsb3BlciBTdHVk
aW8gMTIuNi4gICovCiAgIExpc3BfT2JqZWN0IGljb25fdGl0bGVfbmFtZV9mb3JtYXQKLSAgICA9
IHB1cmVfbGlzdCAoZW1wdHlfdW5pYnl0ZV9zdHJpbmcsCi0JCSBpbnRlcm5fY19zdHJpbmcgKCJp
bnZvY2F0aW9uLW5hbWUiKSwKLQkJIGJ1aWxkX3B1cmVfY19zdHJpbmcgKCJAIiksCi0JCSBpbnRl
cm5fY19zdHJpbmcgKCJzeXN0ZW0tbmFtZSIpKTsKKyAgICA9IGxpc3QgKGVtcHR5X3VuaWJ5dGVf
c3RyaW5nLAorCSAgICBpbnRlcm5fY19zdHJpbmcgKCJpbnZvY2F0aW9uLW5hbWUiKSwKKwkgICAg
YnVpbGRfc3RyaW5nICgiQCIpLAorCSAgICBpbnRlcm5fY19zdHJpbmcgKCJzeXN0ZW0tbmFtZSIp
KTsKICAgVmljb25fdGl0bGVfZm9ybWF0CiAgICAgPSBWZnJhbWVfdGl0bGVfZm9ybWF0Ci0gICAg
PSBwdXJlX2xpc3QgKGludGVybl9jX3N0cmluZyAoIm11bHRpcGxlLWZyYW1lcyIpLAotCQkgYnVp
bGRfcHVyZV9jX3N0cmluZyAoIiViIiksCi0JCSBpY29uX3RpdGxlX25hbWVfZm9ybWF0KTsKKyAg
ICA9IGxpc3QgKGludGVybl9jX3N0cmluZyAoIm11bHRpcGxlLWZyYW1lcyIpLAorCSAgICBidWls
ZF9zdHJpbmcgKCIlYiIpLAorCSAgICBpY29uX3RpdGxlX25hbWVfZm9ybWF0KTsKIAogICBERUZW
QVJfTElTUCAoIm1lc3NhZ2UtbG9nLW1heCIsIFZtZXNzYWdlX2xvZ19tYXgsCiAgICAgZG9jOiAv
KiBNYXhpbXVtIG51bWJlciBvZiBsaW5lcyB0byBrZWVwIGluIHRoZSBtZXNzYWdlIGxvZyBidWZm
ZXIuCmRpZmYgLS1naXQgYS9zcmMveGZhY2VzLmMgYi9zcmMveGZhY2VzLmMKaW5kZXggYzNjYWU3
ZTJhNi4uNDFlMDJmMmE4MCAxMDA2NDQKLS0tIGEvc3JjL3hmYWNlcy5jCisrKyBiL3NyYy94ZmFj
ZXMuYwpAQCAtNjY1OSw3ICs2NjU5LDcgQEAgc3ltc19vZl94ZmFjZXMgKHZvaWQpCiBUaGlzIHN0
aXBwbGUgcGF0dGVybiBpcyB1c2VkIG9uIG1vbm9jaHJvbWUgZGlzcGxheXMKIGluc3RlYWQgb2Yg
c2hhZGVzIG9mIGdyYXkgZm9yIGEgZmFjZSBiYWNrZ3JvdW5kIGNvbG9yLgogU2VlIGBzZXQtZmFj
ZS1zdGlwcGxlJyBmb3IgcG9zc2libGUgdmFsdWVzIGZvciB0aGlzIHZhcmlhYmxlLiAgKi8pOwot
ICBWZmFjZV9kZWZhdWx0X3N0aXBwbGUgPSBidWlsZF9wdXJlX2Nfc3RyaW5nICgiZ3JheTMiKTsK
KyAgVmZhY2VfZGVmYXVsdF9zdGlwcGxlID0gYnVpbGRfc3RyaW5nICgiZ3JheTMiKTsKIAogICBE
RUZWQVJfTElTUCAoInR0eS1kZWZpbmVkLWNvbG9yLWFsaXN0IiwgVnR0eV9kZWZpbmVkX2NvbG9y
X2FsaXN0LAogICAgZG9jOiAvKiBBbiBhbGlzdCBvZiBkZWZpbmVkIHRlcm1pbmFsIGNvbG9ycyBh
bmQgdGhlaXIgUkdCIHZhbHVlcy4KZGlmZiAtLWdpdCBhL3NyYy94Zm5zLmMgYi9zcmMveGZucy5j
CmluZGV4IGI4YTE5MTQxODYuLmFlZTIwNjMwYTMgMTAwNjQ0Ci0tLSBhL3NyYy94Zm5zLmMKKysr
IGIvc3JjL3hmbnMuYwpAQCAtNzY4MCw5ICs3NjgwLDkgQEAgc3ltc19vZl94Zm5zICh2b2lkKQog
I2VuZGlmCiAKICAgRnB1dCAoUXVuZGVmaW5lZF9jb2xvciwgUWVycm9yX2NvbmRpdGlvbnMsCi0J
cHVyZV9saXN0IChRdW5kZWZpbmVkX2NvbG9yLCBRZXJyb3IpKTsKKwlsaXN0IChRdW5kZWZpbmVk
X2NvbG9yLCBRZXJyb3IpKTsKICAgRnB1dCAoUXVuZGVmaW5lZF9jb2xvciwgUWVycm9yX21lc3Nh
Z2UsCi0JYnVpbGRfcHVyZV9jX3N0cmluZyAoIlVuZGVmaW5lZCBjb2xvciIpKTsKKwlidWlsZF9z
dHJpbmcgKCJVbmRlZmluZWQgY29sb3IiKSk7CiAKICAgREVGVkFSX0xJU1AgKCJ4LXBvaW50ZXIt
c2hhcGUiLCBWeF9wb2ludGVyX3NoYXBlLAogICAgIGRvYzogLyogVGhlIHNoYXBlIG9mIHRoZSBw
b2ludGVyIHdoZW4gb3ZlciB0ZXh0LgpAQCAtNzg3MSw3ICs3ODcxLDcgQEAgc3ltc19vZl94Zm5z
ICh2b2lkKQogICAgIGNoYXIgZ3RrX3ZlcnNpb25bc2l6ZW9mICIuLiIgKyAzICogSU5UX1NUUkxF
Tl9CT1VORCAoaW50KV07CiAgICAgaW50IGxlbiA9IHNwcmludGYgKGd0a192ZXJzaW9uLCAiJWQu
JWQuJWQiLAogCQkgICAgICAgR1RLX01BSk9SX1ZFUlNJT04sIEdUS19NSU5PUl9WRVJTSU9OLCBH
VEtfTUlDUk9fVkVSU0lPTik7Ci0gICAgVmd0a192ZXJzaW9uX3N0cmluZyA9IG1ha2VfcHVyZV9z
dHJpbmcgKGd0a192ZXJzaW9uLCBsZW4sIGxlbiwgZmFsc2UpOworICAgIFZndGtfdmVyc2lvbl9z
dHJpbmcgPSBtYWtlX3NwZWNpZmllZF9zdHJpbmcgKGd0a192ZXJzaW9uLCBsZW4sIGxlbiwgZmFs
c2UpOwogICB9CiAjZW5kaWYgLyogVVNFX0dUSyAqLwogCkBAIC03ODg1LDcgKzc4ODUsOCBAQCBz
eW1zX29mX3hmbnMgKHZvaWQpCiAgICAgaW50IGxlbiA9IHNwcmludGYgKGNhaXJvX3ZlcnNpb24s
ICIlZC4lZC4lZCIsCiAJCSAgICAgICBDQUlST19WRVJTSU9OX01BSk9SLCBDQUlST19WRVJTSU9O
X01JTk9SLAogICAgICAgICAgICAgICAgICAgICAgICBDQUlST19WRVJTSU9OX01JQ1JPKTsKLSAg
ICBWY2Fpcm9fdmVyc2lvbl9zdHJpbmcgPSBtYWtlX3B1cmVfc3RyaW5nIChjYWlyb192ZXJzaW9u
LCBsZW4sIGxlbiwgZmFsc2UpOworICAgIFZjYWlyb192ZXJzaW9uX3N0cmluZyA9IG1ha2Vfc3Bl
Y2lmaWVkX3N0cmluZyAoY2Fpcm9fdmVyc2lvbiwgbGVuLCBsZW4sCisJCQkJCQkgICBmYWxzZSk7
CiAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9zcmMveHRlcm0uYyBiL3NyYy94dGVybS5jCmlu
ZGV4IGM5NmFhNzRhN2EuLjk2NGM1ODhlMDUgMTAwNjQ0Ci0tLSBhL3NyYy94dGVybS5jCisrKyBi
L3NyYy94dGVybS5jCkBAIC0xMzQ5OCw3ICsxMzQ5OCw3IEBAIHN5bXNfb2ZfeHRlcm0gKHZvaWQp
CiAgIERFRlNZTSAoUWxhdGluXzEsICJsYXRpbi0xIik7CiAKICNpZmRlZiBVU0VfR1RLCi0gIHhn
X2RlZmF1bHRfaWNvbl9maWxlID0gYnVpbGRfcHVyZV9jX3N0cmluZyAoImljb25zL2hpY29sb3Iv
c2NhbGFibGUvYXBwcy9lbWFjcy5zdmciKTsKKyAgeGdfZGVmYXVsdF9pY29uX2ZpbGUgPSBidWls
ZF9zdHJpbmcgKCJpY29ucy9oaWNvbG9yL3NjYWxhYmxlL2FwcHMvZW1hY3Muc3ZnIik7CiAgIHN0
YXRpY3BybyAoJnhnX2RlZmF1bHRfaWNvbl9maWxlKTsKIAogICBERUZTWU0gKFF4X2d0a19tYXBf
c3RvY2ssICJ4LWd0ay1tYXAtc3RvY2siKTsKQEAgLTEzNjE5LDcgKzEzNjE5LDcgQEAgc3ltc19v
Zl94dGVybSAodm9pZCkKICAgVnhfa2V5c3ltX3RhYmxlID0gbWFrZV9oYXNoX3RhYmxlIChoYXNo
dGVzdF9lcWwsIDkwMCwKIAkJCQkgICAgIERFRkFVTFRfUkVIQVNIX1NJWkUsCiAJCQkJICAgICBE
RUZBVUxUX1JFSEFTSF9USFJFU0hPTEQsCi0JCQkJICAgICBRbmlsLCBmYWxzZSk7CisJCQkJICAg
ICBRbmlsKTsKIAogICBERUZWQVJfQk9PTCAoIngtZnJhbWUtbm9ybWFsaXplLWJlZm9yZS1tYXhp
bWl6ZSIsCiAJICAgICAgIHhfZnJhbWVfbm9ybWFsaXplX2JlZm9yZV9tYXhpbWl6ZSwKLS0gCjIu
MjIuMAoK
--000000000000e11ba9058e307302--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at 36649 <at> debbugs.gnu.org:


Received: (at 36649) by debbugs.gnu.org; 21 Jul 2019 07:28:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 21 03:28:21 2019
Received: from localhost ([127.0.0.1]:58103 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hp6Gb-0005Y0-6B
	for submit <at> debbugs.gnu.org; Sun, 21 Jul 2019 03:28:21 -0400
Received: from zimbra.cs.ucla.edu ([131.179.128.68]:42596)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eggert@HIDDEN>) id 1hp6GY-0005Xk-LO
 for 36649 <at> debbugs.gnu.org; Sun, 21 Jul 2019 03:28:19 -0400
Received: from localhost (localhost [127.0.0.1])
 by zimbra.cs.ucla.edu (Postfix) with ESMTP id 5B6881626E0;
 Sun, 21 Jul 2019 00:28:12 -0700 (PDT)
Received: from zimbra.cs.ucla.edu ([127.0.0.1])
 by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032)
 with ESMTP id 0dSVaBg6s1TK; Sun, 21 Jul 2019 00:28:11 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
 by zimbra.cs.ucla.edu (Postfix) with ESMTP id A94461626ED;
 Sun, 21 Jul 2019 00:28:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu
Received: from zimbra.cs.ucla.edu ([127.0.0.1])
 by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id K3zOPu-2mNeW; Sun, 21 Jul 2019 00:28:11 -0700 (PDT)
Received: from [192.168.1.9] (cpe-23-242-74-103.socal.res.rr.com
 [23.242.74.103])
 by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 7E5AC1626E0;
 Sun, 21 Jul 2019 00:28:11 -0700 (PDT)
To: Pip Cet <pipcet@HIDDEN>
From: Paul Eggert <eggert@HIDDEN>
Subject: 27.0.50; pure space and pdumper
Organization: UCLA Computer Science Department
Message-ID: <bc2d941d-fdd9-0c99-3da0-953bd1f132fe@HIDDEN>
Date: Sun, 21 Jul 2019 00:28:11 -0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.8.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 36649
Cc: 36649 <at> debbugs.gnu.org
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: -3.3 (---)

> I think we have the following options:
> 
> 1. remove pure space entirely
> 2. remove pure space, but leave PURE_P and CHECK_IMPURE as reminders
> to do something about it.
> 3. move pure space to BSS
> 4. xmalloc() pure space, only when needed
> 5. modify pdumper to mark and recognize pure objects
> 6. do nothing and accept the wastefulness

I suggest (1), since it will result in simpler code. Although (2) would be OK 
too, if we ever introduce immutable objects it's likely that PURE_P and/or 
CHECK_IMPURE will just get in the way anyway. We can see a hint of that in my 
patch today that added temporary immutability to hash tables to fix a core-dump bug.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 14 Jul 2019 14:26:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 14 10:26:47 2019
Received: from localhost ([127.0.0.1]:45572 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hmfSg-0000Nm-LZ
	for submit <at> debbugs.gnu.org; Sun, 14 Jul 2019 10:26:46 -0400
Received: from lists.gnu.org ([209.51.188.17]:46561)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1hmfSe-0000Nf-UV
 for submit <at> debbugs.gnu.org; Sun, 14 Jul 2019 10:26:45 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:48493)
 by lists.gnu.org with esmtp (Exim 4.86_2)
 (envelope-from <pipcet@HIDDEN>) id 1hmfSe-0004Ob-0Q
 for bug-gnu-emacs@HIDDEN; Sun, 14 Jul 2019 10:26:44 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM
 autolearn=disabled version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <pipcet@HIDDEN>) id 1hmfSd-0002UV-2Y
 for bug-gnu-emacs@HIDDEN; Sun, 14 Jul 2019 10:26:43 -0400
Received: from mail-ot1-x336.google.com ([2607:f8b0:4864:20::336]:33169)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <pipcet@HIDDEN>) id 1hmfSc-0002Tx-TV
 for bug-gnu-emacs@HIDDEN; Sun, 14 Jul 2019 10:26:43 -0400
Received: by mail-ot1-x336.google.com with SMTP id q20so14221574otl.0
 for <bug-gnu-emacs@HIDDEN>; Sun, 14 Jul 2019 07:26:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=uECDt1XErh/ygfl3ZznBBxBSXpZhBMMpJayEV/QQRg0=;
 b=pK2sU8Pa+lHe2FYjwvKoP2UEC5P5qYQESUhqRDpKq4q80hSKN0Iba1GvvsJn+cxK6F
 wUTHeEJNrfj0ioOxIql2Xs0vS4CZJg5damp9CI152hcLA1wlfnsbFnC8Geqq3XiAOtfv
 Y7pQFjCfxRa72GnJ6HJOxzsqBOAuu7I5EZQLRARDZ3LiK6hXabiu4axQtyNOKT91b67i
 V4qMNuXTTjS9lTL3dCOEGXmRULnB5KRNatPog5uyweF4C9aD4dEtk9DzfloGBEeEmkay
 iYQri4YRROIMG7oj+zYIHJM1HE2OTixdaMIVEtbBPSo/mzeGheCj3Pg04t9UEcKQ9ZVJ
 vITA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=uECDt1XErh/ygfl3ZznBBxBSXpZhBMMpJayEV/QQRg0=;
 b=CO7q6YwtgAFBYpPompfOmHSGFNIqxVIC/iZ2HWPhSjYUWfAGTNaQd19xZJVkjSqnLb
 nrWkFjQAWUxzvT5gCeCp8fAbyR17b6VFRDXTpMmO4k7wkmnVLVCKduM1yw0/yn4DnZ7k
 50XD9bw3TCaq9lTHJ0/vuTNAUhNNOGMOXYkRkRQEjabegWQhONmIUNKB9Z94Nmh4B2mq
 b+++7FdYZ1X/WCc0kL+G49pq0hQQVv25n5afhne4+K3rnz15xPjzSCyl6qkN+g/O+IfL
 PSNZJQWAbfStyZbvpmL67yTPZTPu/VhF5N2gy0iWihNU4rNLgJ6PchoyaXkpYiVddsTW
 1jBA==
X-Gm-Message-State: APjAAAWjh0mmyKO70zlVDkZ8TXFOcjTdhatXoTJnUTC/EHB0W62vh/j+
 iBbOxf5LVOObn9TsvI8Y+b0519cbIiLvSIwP4sT3H8aq
X-Google-Smtp-Source: APXvYqx3tryQ+bsP1sgxrf1tHGu9Uyt1yLf43DKvrLMhRUctcTCTQkDeBIlcpRbVXmXfujLfOL4l1jB9C61oAn73wNo=
X-Received: by 2002:a9d:744f:: with SMTP id p15mr16945889otk.287.1563114401868; 
 Sun, 14 Jul 2019 07:26:41 -0700 (PDT)
MIME-Version: 1.0
From: Pip Cet <pipcet@HIDDEN>
Date: Sun, 14 Jul 2019 14:26:06 +0000
Message-ID: <CAOqdjBc20okPT5GrpV2JNyCaYK8LDT5Z+Rb-UF0Ayf3mse=g9A@HIDDEN>
Subject: 27.0.50; pure space and pdumper
To: bug-gnu-emacs@HIDDEN
Content-Type: text/plain; charset="UTF-8"
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
 recognized.
X-Received-From: 2607:f8b0:4864:20::336
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
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: -2.3 (--)

This is a follow-up to bug #36447, which has been fixed and closed.

Currently, pure space is wasted when using pdumper, and CHECK_IMPURE
does nothing at run time.

The current situation when using pdumper is this:

- pure space is put into the initial emacs executable as an all-zero
area with a single 1 in it, which is used to prevent the area being
placed into BSS
- before dump, data is placed into the pure space by purecopy
- before dump, PURE_P returns true for pure data, and CHECK_IMPURE
dies for pure arguments
- when dumping, pure data is indiscriminately mixed with impure data
and placed in the pdumper file without special treatment of any kind
- when launching the real emacs, pure space is also initialized from
the executable, as an all-zero area
- all data from the pdumper file is restored to heap memory, without
distinguishing formerly-pure data from formerly-impure data
- PURE_P is never called with a pure space pointer, it essentially
always returns false
- CHECK_IMPURE does nothing except waste a few cycles

That situation is unsatisfactory. We fail to catch modification of
formerly-pure data after loading the dump, and we waste several
megabytes of executable image size on zeroed data.

I think we have the following options:

1. remove pure space entirely
2. remove pure space, but leave PURE_P and CHECK_IMPURE as reminders
to do something about it.
3. move pure space to BSS
4. xmalloc() pure space, only when needed
5. modify pdumper to mark and recognize pure objects
6. do nothing and accept the wastefulness


I prefer (2), for this reason:

CHECK_IMPURE is useful, and should be extended to something like
CHECK_MUTABLE, which checks for objects including:

1. pure data
2. data read with `read'
3. data explicitly marked as immutable

(That would mean code like

(defconst list-a (nconc '(a b c) list-b))

would cease to be valid, and that's one of the problems I'm running
into with code I'm playing around with.)




Acknowledgement sent to Pip Cet <pipcet@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#36649; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 22 Jul 2019 14:45:01 UTC

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