GNU bug report logs - #76322
Make ctags a thin wrapper around etags

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; Severity: wishlist; Reported by: Paul Eggert <eggert@HIDDEN>; Keywords: patch; dated Sun, 16 Feb 2025 05:22:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

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


Received: (at 76322) by debbugs.gnu.org; 12 Mar 2025 07:18:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 12 03:18:23 2025
Received: from localhost ([127.0.0.1]:47133 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tsGMB-0003G1-3F
	for submit <at> debbugs.gnu.org; Wed, 12 Mar 2025 03:18:23 -0400
Received: from mail.cs.ucla.edu ([131.179.128.66]:45016)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eggert@HIDDEN>)
 id 1tsGM8-0003Fe-Kb
 for 76322 <at> debbugs.gnu.org; Wed, 12 Mar 2025 03:18:21 -0400
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 3D8FC3C01084A;
 Wed, 12 Mar 2025 00:18:13 -0700 (PDT)
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP
 id 3-PuzhR8GRq3; Wed, 12 Mar 2025 00:18:12 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id BF8313C01084D;
 Wed, 12 Mar 2025 00:18:12 -0700 (PDT)
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu BF8313C01084D
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu;
 s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1741763892;
 bh=D2rj4Ld9oKafsLEjoSCKoqVdEXZhU+LOxVGbdtlPNII=;
 h=Message-ID:Date:MIME-Version:To:From;
 b=WOy0NirKPQxEnVCfTTqbcEenqSbaVA2mJu+I/Fk+2J4OLprmr/Z8kk07WWfAviYrR
 uGu8NFYPIe+PcS1b9aQYA2n7UJ51GlBmaV+845sLb4k4BMwzStR+il6BmrD1QtQH16
 fpBw36bczepgK2IQx6c+9WrysTPxly1P4fz5SUmxeMroHj2qAefaRRAnKsf8q2xpee
 gSiEKZ39c5yLnllgo4vU1oR8s0U37alplNW28sOsU83llY8cy8QiR42JEBTdgNOzN2
 CWKxhMRiHPJgSvsDdQOiQ9psA5IYy9EpW1nLU7+vEcLF9s9El3OH96n7Wyj0o1Q19U
 gQ2efWPqMct0Q==
X-Virus-Scanned: amavis at mail.cs.ucla.edu
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP
 id cD4HQL9STIDi; Wed, 12 Mar 2025 00:18:12 -0700 (PDT)
Received: from [192.168.254.12] (unknown [47.147.225.25])
 by mail.cs.ucla.edu (Postfix) with ESMTPSA id 9B4FB3C01084A;
 Wed, 12 Mar 2025 00:18:12 -0700 (PDT)
Message-ID: <18200637-fd05-4b0b-a721-fc3569251899@HIDDEN>
Date: Wed, 12 Mar 2025 00:18:11 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
To: rms@HIDDEN, Dmitry Gutov <dmitry@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
 <86ikogevwc.fsf@HIDDEN> <1da853c1-1fd4-4022-a351-371b4f84ed6c@HIDDEN>
 <E1tsDgI-0007UZ-Vc@HIDDEN>
Content-Language: en-US
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
In-Reply-To: <E1tsDgI-0007UZ-Vc@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, eliz@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 2025-03-11 21:26, Richard Stallman wrote:
> Can you summarize the important differences between this and our ctags?
> Can you summarize the important differences between this and etags?

No. And as I haven't used ctags or etags (of any flavor) for decades, I 
would not be a good choice to investigate details.

That being said, by all reports Universal Ctags is better than what's 
shipped with GNU Emacs. Of the recent discussions I found on this topic, 
nobody recommended Emacs ctags; everybody wanted Universal Ctags, or 
something fancier like GNU Global or a language server, and some users 
were frustrated when Emacs ctags was installed by mistake.

Apparently Emacs ctags is a revenant that costs us more in maintenance 
effort than it's worth, which is why I suggested removing it.




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

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


Received: (at 76322) by debbugs.gnu.org; 12 Mar 2025 04:27:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 12 00:27:09 2025
Received: from localhost ([127.0.0.1]:46834 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tsDgT-0000ep-Bv
	for submit <at> debbugs.gnu.org; Wed, 12 Mar 2025 00:27:09 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:33166)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <rms@HIDDEN>) id 1tsDgP-0000eH-Tq
 for 76322 <at> debbugs.gnu.org; Wed, 12 Mar 2025 00:27:06 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <rms@HIDDEN>)
 id 1tsDgJ-0001mE-Kd; Wed, 12 Mar 2025 00:26:59 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From:
 mime-version; bh=y25eDbUj9xsZ43w+brV5DnZSPRVlBja1Ssd81D8naI8=; b=jicWujUEoFxy
 lOoMIQlFFj0+viqWFk6R1K8W6D4XK5rNe1QXu+SE8QeMoCyp5+66uQhjiilZKdE5HeMWghUgTLWZ+
 O9A6xfWUNb3duD7XkXcXEtppZfGjM5gO7LR4xzWNbSg/AUFejMlY0Z3zoTzSkB2BHoojNhE+Mfgez
 c27OvqVi5YiiNp0mutYIcadZlePeGb0BU8e50zJOIc59+RNJ59uP5shupffK6Q+3QUa071fPoRqTV
 E0Wby6vQJlz/avBMhL5YgTt+I9LZOV0UStP2zujAjtoeFrAGpHTGv+pOJJcDx9yGFc7aUhZyDQdYn
 MEWFz3LuHUHYFyiS3a9I6A==;
Received: from rms by fencepost.gnu.org with local (Exim 4.90_1)
 (envelope-from <rms@HIDDEN>)
 id 1tsDgI-0007UZ-Vc; Wed, 12 Mar 2025 00:26:59 -0400
Content-Type: text/plain; charset=Utf-8
From: Richard Stallman <rms@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <1da853c1-1fd4-4022-a351-371b4f84ed6c@HIDDEN> (message from
 Dmitry Gutov on Tue, 11 Mar 2025 04:34:55 +0200)
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
 <86ikogevwc.fsf@HIDDEN> <1da853c1-1fd4-4022-a351-371b4f84ed6c@HIDDEN>
Message-Id: <E1tsDgI-0007UZ-Vc@HIDDEN>
Date: Wed, 12 Mar 2025 00:26:58 -0400
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, eliz@HIDDEN, 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>
Reply-To: rms@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  >  From what I'm reading, a lot of distros have replaced their 'ctags' 
  > package with universal-ctags:

  > https://repology.org/project/universal-ctags/versions

Can you summarize the important differences between this and our ctags?

Can you summarize the important differences between this and etags?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)






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

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


Received: (at 76322) by debbugs.gnu.org; 11 Mar 2025 18:02:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 11 14:02:57 2025
Received: from localhost ([127.0.0.1]:45506 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ts3wO-000290-Oo
	for submit <at> debbugs.gnu.org; Tue, 11 Mar 2025 14:02:57 -0400
Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]:60633)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <stefankangas@HIDDEN>)
 id 1ts3wI-00028h-NC
 for 76322 <at> debbugs.gnu.org; Tue, 11 Mar 2025 14:02:52 -0400
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5e5bc066283so9067011a12.0
 for <76322 <at> debbugs.gnu.org>; Tue, 11 Mar 2025 11:02:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1741716164; x=1742320964; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=0FpmU10+Q/VcKbvZjNyhHNX6fuJ3yTrKqAswhoXiSpg=;
 b=byACAdysRZ1Drj5ZOFalr8P2XR9ckeyp8mJEKWj4cB9TOYLA+QBGUMzEE22IIXOifM
 AHmatMutD+JJFVyha5iGWjw7tWr5xXhqtuZnP2qjjwdiINlIRHSom+FXUfdtZ2Bma5jL
 1lt1cj8Bsous4eJ5BPeDBw7Md9Ch2dZHQHh9SsDe3aHY0jIM2GVrCHPtLcU7BoCs+YAI
 n6m43imeAQE3qNZa5Bznf2phzMy54gFbcdreSw575MoHWraVy72LLUfNmQ+dUVt12iP2
 1CdW5vHiM5j9iiADpGtmjsvcvhoR8RaAJEAdz/akmYrkj/Z7g5QeG5ubW9cVlpL5wIxf
 sfiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1741716164; x=1742320964;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=0FpmU10+Q/VcKbvZjNyhHNX6fuJ3yTrKqAswhoXiSpg=;
 b=iy1ZThUC8F991Qk2DX/kR/F/tUVKjtErQXdKaWSEknrHy+ELV0IY8sHpWIyje4eSvN
 ivUQacpapBRep6+KIvXv28OAH7kauzrxU7NF2BkoD8h0J7pPULZrbL/o7fJjfsYfiEEX
 TfV9zHVEI7sVWXnZmh9WnsHnaVUFaovHi7rRmwqCmDmS6MVm9dhNFl/YiMo8zCwR1wml
 Wxmx7gulnGK24WToBxu7qgCD0cGMQzYyNNAqZ8roTo3BdhXeL4XKu4rDxbCrll/jbRAZ
 piQ76UGKTJhN29a2FRsUfMnVGTdXuZ7GLmsv0l8G0+eovf4gPCNj8a7ILjPpjTw/sK0P
 BDtg==
X-Gm-Message-State: AOJu0YwJiTeNLWHSBAUDF8sEsypEE057Jx5xNcOVny+4PA9rK1p4+6RZ
 ixaRW6mV2Mhme41Qe4I3hZcz00eD0GD15uTtD6hvR34iSFlwD9e3z/kLZsV3bt9zlYlBTZFChtx
 EKzj93FlfeMsDnXHVGlYvo6a7YPs=
X-Gm-Gg: ASbGncto+S9SqK3B6dbWQR5MKr4IsYEaDEsFesYIMjqo0P0smJPDUrV0Dimjj5E6jcg
 XrxBis31Y5r5NspBeMAwsrwkPSyn/XsXpih5nmo3qFkq6ZBIiaAS32/9Va2SjjIOw6FByz8CoEw
 8g/fRqoIOde+rSPfyFU8HNcs5nyg==
X-Google-Smtp-Source: AGHT+IFfZKbcZrwT3MMhf7+xP5pV6+WpR/uhb00MZsvtMltzP8wXC37/mh3c+Ntkl/fQgpOo7vGSGP3BjIJqrF+vh3I=
X-Received: by 2002:a05:6402:5c8:b0:5e5:bde4:755f with SMTP id
 4fb4d7f45d1cf-5e5e22df03amr22566009a12.14.1741716163990; Tue, 11 Mar 2025
 11:02:43 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Tue, 11 Mar 2025 14:02:43 -0400
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <7124a452-38f2-442a-ab6e-6a5c6ff672f6@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
 <2b588fd7-10ee-4d46-958c-3c9adba18ccf@HIDDEN> <86bju8eur1.fsf@HIDDEN>
 <CADwFkmkRHCh8_U5w6n8_3-SdgAiXzdn8aWwM=Wt2HFYYQEKOag@HIDDEN>
 <86h63zdaxs.fsf@HIDDEN> <7124a452-38f2-442a-ab6e-6a5c6ff672f6@HIDDEN>
MIME-Version: 1.0
Date: Tue, 11 Mar 2025 14:02:43 -0400
X-Gm-Features: AQ5f1Jo4SAjYuD83msbVYF-tJwJDdtl5QNka73DqEV3A519RDMKSqmKg_2I4j10
Message-ID: <CADwFkmk3tZECqqrqDtbmHqfddzXRR6DHjhEDT0oW=S93yzcfkQ@HIDDEN>
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
To: Paul Eggert <eggert@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, rms@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 (-)

Paul Eggert <eggert@HIDDEN> writes:

> On 2025-03-11 05:11, Eli Zaretskii wrote:
>> If we think our ctags is not being used (I suggested to query a few
>> distros about that), I'd rather drop it entirely, first by adding the
>> --ctags option to etags, and later maybe removing the ctags-only code
>> from etags.c.
>
> That would be simpler, yes. Proposed patch attached.
>
> My impression is that distros generally prefer Universal Ctags these
> days, though you can use Exuberant Ctags if you're old-fashioned or
> Emacs ctags if your even older-fashioned. On Fedora, 'ctags' is
> Universal Ctags; on Ubuntu all three variants are available as options
> and /usr/bin/ctags is a symlink to /etc/alternatives/ctags which in turn
> can link to /usr/bin/ctags-universal or /usr/bin/ctags-exuberant or
> /usr/bin/ctags.emacs.
>
> To some extent it's a chicken-and-egg problem: if we keep shipping ctags
> some distros will keep making it available as an option. But there's no
> real need for us to keep maintaining the third (and oldest) variant.

Makes sense to me.




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

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


Received: (at 76322) by debbugs.gnu.org; 11 Mar 2025 17:01:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 11 13:01:58 2025
Received: from localhost ([127.0.0.1]:45325 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ts2zJ-0007kW-20
	for submit <at> debbugs.gnu.org; Tue, 11 Mar 2025 13:01:58 -0400
Received: from mail.cs.ucla.edu ([131.179.128.66]:60068)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eggert@HIDDEN>)
 id 1ts2zC-0007k8-KN
 for 76322 <at> debbugs.gnu.org; Tue, 11 Mar 2025 13:01:49 -0400
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 7F4BF3C01085E;
 Tue, 11 Mar 2025 10:01:40 -0700 (PDT)
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP
 id EAax3p6KVQFt; Tue, 11 Mar 2025 10:01:39 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id E9D4D3C010877;
 Tue, 11 Mar 2025 10:01:38 -0700 (PDT)
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu E9D4D3C010877
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu;
 s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1741712499;
 bh=Ibri/35MfzhYxCdyEeUmeXsb/oTfaw2OjU91JhqB4ks=;
 h=Message-ID:Date:MIME-Version:To:From;
 b=QTL+lAZPOiFPbzbCflUlSS9ae41xN9B63purPqPXUweAizOqQT9qXQhd/z4NxTO9S
 +cI3+jhBQyd+0tzNWpDYYwmYXVjFOHOq9ibOxFIaUr3c+poPt1v1KQ5RI9AeiLzAfA
 yjUWi56GyDgp0vbTjjBWi9pZaz3MYMiLvW1pzAxqJ8fiW7Qx4xEzTVZD+U0RBOOTRF
 Nr6tBpTy5Wrp5WTLPSdKzx2x64Q+NY+Yqsf//K9421PMoztAiNDJwUIcyXtz1gAPnX
 hFuIBM2E6Q+9o/6H0I3PcG5x4Gl+23Iw755VJLH/pH0uvsDxpwOekJh8QvT+a+3NgT
 uzvqfyMLidgoA==
X-Virus-Scanned: amavis at mail.cs.ucla.edu
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP
 id 6rO3M7qKbZBV; Tue, 11 Mar 2025 10:01:38 -0700 (PDT)
Received: from [192.168.254.12] (unknown [47.147.225.25])
 by mail.cs.ucla.edu (Postfix) with ESMTPSA id B81353C01085E;
 Tue, 11 Mar 2025 10:01:38 -0700 (PDT)
Content-Type: multipart/mixed; boundary="------------9qiQVdaWm68jOl0btT32niHF"
Message-ID: <7124a452-38f2-442a-ab6e-6a5c6ff672f6@HIDDEN>
Date: Tue, 11 Mar 2025 10:01:38 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
To: Eli Zaretskii <eliz@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
 <2b588fd7-10ee-4d46-958c-3c9adba18ccf@HIDDEN> <86bju8eur1.fsf@HIDDEN>
 <CADwFkmkRHCh8_U5w6n8_3-SdgAiXzdn8aWwM=Wt2HFYYQEKOag@HIDDEN>
 <86h63zdaxs.fsf@HIDDEN>
Content-Language: en-US
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
In-Reply-To: <86h63zdaxs.fsf@HIDDEN>
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, rms@HIDDEN, Stefan Kangas <stefankangas@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 (-)

This is a multi-part message in MIME format.
--------------9qiQVdaWm68jOl0btT32niHF
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2025-03-11 05:11, Eli Zaretskii wrote:
> If we think our ctags is not being used (I suggested to query a few
> distros about that), I'd rather drop it entirely, first by adding the
> --ctags option to etags, and later maybe removing the ctags-only code
> from etags.c.

That would be simpler, yes. Proposed patch attached.

My impression is that distros generally prefer Universal Ctags these 
days, though you can use Exuberant Ctags if you're old-fashioned or 
Emacs ctags if your even older-fashioned. On Fedora, 'ctags' is 
Universal Ctags; on Ubuntu all three variants are available as options 
and /usr/bin/ctags is a symlink to /etc/alternatives/ctags which in turn 
can link to /usr/bin/ctags-universal or /usr/bin/ctags-exuberant or 
/usr/bin/ctags.emacs.

To some extent it's a chicken-and-egg problem: if we keep shipping ctags 
some distros will keep making it available as an option. But there's no 
real need for us to keep maintaining the third (and oldest) variant.
--------------9qiQVdaWm68jOl0btT32niHF
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-Remove-ctags-program.patch"
Content-Disposition: attachment; filename="0001-Remove-ctags-program.patch"
Content-Transfer-Encoding: base64

RnJvbSBjNmU0Y2FmOWZhZjIwNTBmMDA2Yjg1NDQxYTlhM2I3ZTZkMWIwMTBhIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBUdWUsIDExIE1hciAyMDI1IDA4OjQ3OjMwIC0wNzAwClN1YmplY3Q6IFtQQVRD
SF0gUmVtb3ZlIGN0YWdzIHByb2dyYW0KClJlbW92ZSBvdXIgb2xkIGN0YWdzIGFuZCBzdWdn
ZXN0IFVuaXZlcnNhbCBDdGFncyBpbnN0ZWFkLgpUaGlzIGZpeGVzIGEgRklYTUUgaW4gbGli
LXNyYy9NYWtlZmlsZS5pbiBhbmQgc3BlZWRzIHVwIGNvbXBpbGF0aW9uCnF1aXRlIGEgYml0
IG9uIG15IG9sZGVyIENQVSB3aGVuIEkgY29tcGlsZSB3aXRoCS0tZW5hYmxlLWdjYy13YXJu
aW5ncy4KSXQgYWxzbyBsZXNzZW5zIGluc3RhbGxhdGlvbiBhbmQgcnVudGltZSBmb290cHJp
bnQuCiogYWRtaW4vYXV0aG9ycy5lbCAoYXV0aG9ycy1yZW5hbWVkLWZpbGVzLWFsaXN0KTog
UmVtb3ZlIGN0YWdzLjEuCiogYWRtaW4vY2hlY2stbWFuLXBhZ2VzOiBjdGFncy4xIGlzIG5v
IGxvbmdlciBhIHNwZWNpYWwgY2FzZS4KKiBhZG1pbi9xdWljay1pbnN0YWxsLWVtYWNzIChQ
VUJMSUNfTElCU1JDX0JJTkFSSUVTKTogUmVtb3ZlIGN0YWdzLgoqIGNyb3NzL01ha2VmaWxl
LmluIChMSUJTUkNfQklOQVJJRVMpOiBSZW1vdmUgbGliLXNyYy9jdGFncy4KKiBkb2MvbWFu
L2N0YWdzLjEsIGxpYi1zcmMvY3RhZ3MuYzogUmVtb3ZlLgoqIGphdmEvTWFrZWZpbGUuaW4g
KENST1NTX0xJQlNSQ19CSU5TKTogUmVtb3ZlIGN0YWdzLgoqIGxpYi1zcmMvTWFrZWZpbGUu
aW4gKElOU1RBTExBQkxFUyk6IFJlbW92ZSBjdGFncyR7RVhFRVhUfS4KKGN0YWdzJHtFWEVF
WFR9KTogUmVtb3ZlLgoqIGxpYi1zcmMvZXRhZ3MuYyAoQ1RBR1MpOiBSZW1vdmUuICBBbGwg
dXNlcyByZXBsYWNlZCBieSAuLi4KKGN0YWdzKTogLi4uIHRoaXMgbmV3IHN0YXRpYyB2YXIu
CihTVERJTik6IFJlbW92ZSBtYWNyby4gIEFsbCB1c2VzIHJlcGxhY2VkIGJ5IG5ldyBTVERJ
Tl9PUFRJT04gY29uc3RhbnQuCihDVEFHU19PUFRJT04sIFNURElOX09QVElPTik6IE5ldyBj
b250YW50cy4KKGxvbmdvcHRzKTogTmV3IC0tY3RhZ3Mgb3B0aW9uLgooY3RhZ3NfZGVmYXVs
dF9DX2hlbHApOiBOZXcgY29uc3RhbnQsCnRvIG92ZXJyaWRlIGRlZmF1bHRfQ19oZWxwIGF0
IHJ1bnRpbWUuCihkZWZhdWx0X0NfaGVscCk6IE5vdyBhbHdheXMgdGhlIGV0YWdzIHZlcnNp
b24uCihDX0xBTkdfTkFNRVNfSU5ERVgpOiBOZXcgbWFjcm8uCihwcmludF9sYW5ndWFnZV9u
YW1lcyk6IERvIG5vdCBhc3N1bWUgZXRhZ3MuCihQUk9HUkFNX05BTUUpOiBSZW1vdmUuICBB
bGwgdXNlcyByZW1vdmVkLgoocHJpbnRfaGVscCk6IERvY3VtZW50IC0tY3RhZ3MgaWYgUFJJ
TlRfVU5ET0NVTUVOVEVEX09QVElPTlNfSEVMUC4KKG1haW4pOiBTdXBwb3J0IG5ldyAtLWN0
YWdzIG9wdGlvbiwgYW5kIHN1cHBvcnQgYWxsIFtjZV10YWdzIG9wdGlvbnMuCi0tLQogLmdp
dGlnbm9yZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIElOU1RBTEwgICAgICAgICAgICAg
ICAgICAgIHwgICAyICstCiBNYWtlZmlsZS5pbiAgICAgICAgICAgICAgICB8ICAgNCArLQog
YWRtaW4vYXV0aG9ycy5lbCAgICAgICAgICAgfCAgIDEgLQogYWRtaW4vY2hlY2stbWFuLXBh
Z2VzICAgICAgfCAgIDcgLS0tCiBhZG1pbi9xdWljay1pbnN0YWxsLWVtYWNzICB8ICAgMiAr
LQogY3Jvc3MvTWFrZWZpbGUuaW4gICAgICAgICAgfCAgIDIgKy0KIGRvYy9lbWFjcy9hbmRy
b2lkLnRleGkgICAgIHwgICA2ICstCiBkb2MvbGlzcHJlZi9wcm9jZXNzZXMudGV4aSB8ICAg
NyArLS0KIGRvYy9tYW4vY3RhZ3MuMSAgICAgICAgICAgIHwgICAxIC0KIGRvYy9tYW4vZXRh
Z3MuMSAgICAgICAgICAgIHwgIDMyICsrKysrLS0tLS0KIGV0Yy9ORVdTICAgICAgICAgICAg
ICAgICAgIHwgICA2ICsrCiBldGMvUFJPQkxFTVMgICAgICAgICAgICAgICB8ICAgNCArLQog
amF2YS9NYWtlZmlsZS5pbiAgICAgICAgICAgfCAgIDQgKy0KIGxpYi1zcmMvTWFrZWZpbGUu
aW4gICAgICAgIHwgICA5ICstLQogbGliLXNyYy9jdGFncy5jICAgICAgICAgICAgfCAgIDIg
LQogbGliLXNyYy9ldGFncy5jICAgICAgICAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysr
LS0tLS0tLS0tLS0tLS0tLS0tLQogbnQvUkVBRE1FICAgICAgICAgICAgICAgICAgfCAgIDIg
Ky0KIG50L1JFQURNRS5XMzIgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvY2FsbHByb2Mu
YyAgICAgICAgICAgICB8ICAgNiArLQogMjAgZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlv
bnMoKyksIDEyMyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBkb2MvbWFuL2N0
YWdzLjEKIGRlbGV0ZSBtb2RlIDEwMDY0NCBsaWItc3JjL2N0YWdzLmMKCmRpZmYgLS1naXQg
YS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCBlYTk0MmI4NmY4MC4uODY0MmZmNDdj
MjkgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMjA5LDcg
KzIwOSw3IEBAIHRlc3QvaW5mcmEvYW5kcm9pZC8qKi8qLnppcAogdGVzdC9pbmZyYS9hbmRy
b2lkLyoqLyouamFyCiB0ZXN0L2luZnJhL2FuZHJvaWQvYmluL2J1aWxkLnNoCiAKLSMgY3Rh
Z3MsIGV0YWdzLgorIyBldGFncy4KIFRBR1MKICFhZG1pbi9ub3Rlcy90YWdzCiAKZGlmZiAt
LWdpdCBhL0lOU1RBTEwgYi9JTlNUQUxMCmluZGV4IGQzOGZmZjdiMmU2Li40MGNiNjc0ZDQ4
ZiAxMDA2NDQKLS0tIGEvSU5TVEFMTAorKysgYi9JTlNUQUxMCkBAIC02MTIsNyArNjEyLDcg
QEAgaW5zdGFsbGVkIGxvY2F0aW9ucywgd2l0aCAnbWFrZSBpbnN0YWxsJy4gIEJ5IGRlZmF1
bHQsIEVtYWNzJ3MgZmlsZXMKIGFyZSBpbnN0YWxsZWQgaW4gdGhlIGZvbGxvd2luZyBkaXJl
Y3RvcmllczoKIAogJy91c3IvbG9jYWwvYmluJyBob2xkcyB0aGUgZXhlY3V0YWJsZSBwcm9n
cmFtcyB1c2VycyBub3JtYWxseSBydW4gLQotCQknZW1hY3MnLCAnZXRhZ3MnLCAnY3RhZ3Mn
LCAnZW1hY3NjbGllbnQnLgorCQknZW1hY3MnLCAnZXRhZ3MnLCAnZW1hY3NjbGllbnQnLgog
CiAnL3Vzci9sb2NhbC9zaGFyZS9lbWFjcy9WRVJTSU9OL2xpc3AnIGhvbGRzIHRoZSBFbWFj
cyBMaXNwIGxpYnJhcnk7CiAJCSdWRVJTSU9OJyBzdGFuZHMgZm9yIHRoZSBudW1iZXIgb2Yg
dGhlIEVtYWNzIHZlcnNpb24KZGlmZiAtLWdpdCBhL01ha2VmaWxlLmluIGIvTWFrZWZpbGUu
aW4KaW5kZXggY2E2ZDk5MWJjZTYuLjBmMDZiYTAwZWU4IDEwMDY0NAotLS0gYS9NYWtlZmls
ZS5pbgorKysgYi9NYWtlZmlsZS5pbgpAQCAtODE4LDkgKzgxOCw3IEBAIGluc3RhbGwtaW5m
bzoKIAogIyMgImd6aXAgfHwgdHJ1ZSIgaXMgYmVjYXVzZSBzb21lIGd6aXBzIGV4aXQgd2l0
aCBub24temVybyBzdGF0dXMKICMjIGlmIGNvbXByZXNzaW9uIHdvdWxkIG5vdCByZWR1Y2Ug
dGhlIGZpbGUgc2l6ZS4gIEVnLCB0aGUgZ3ppcCBpbgotIyMgT3BlbkJTRCA0Ljkgc2VlbXMg
dG8gZG8gdGhpcyAoMjAxMy8wMykuICBJbiBFbWFjcywgdGhpcyBjYW4KLSMjIG9ubHkgaGFw
cGVuIHdpdGggdGhlIHRpbnkgY3RhZ3MuMSBtYW5wYWdlLiAgV2UgZG9uJ3QgcmVhbGx5IGNh
cmUgaWYKLSMjIGN0YWdzLjEgaXMgY29tcHJlc3NlZCBvciBub3QuICAiZ3ppcCAtZiIgaXMg
YW5vdGhlciBvcHRpb24gaGVyZSwKKyMjIE9wZW5CU0QgNC45IHNlZW1zIHRvIGRvIHRoaXMg
KDIwMTMvMDMpLiAgImd6aXAgLWYiIGlzIGFub3RoZXIgb3B0aW9uIGhlcmUsCiAjIyBidXQg
bm90IHN1cmUgaWYgcG9ydGFibGUuCiBpbnN0YWxsLW1hbjoKIAl1bWFzayAwMjI7ICR7TUtE
SVJfUH0gIiQoREVTVERJUikke21hbjFkaXJ9IgpkaWZmIC0tZ2l0IGEvYWRtaW4vYXV0aG9y
cy5lbCBiL2FkbWluL2F1dGhvcnMuZWwKaW5kZXggNTk4ZGViNjgxZTUuLmI5ZjVmMTcwZmMw
IDEwMDY0NAotLS0gYS9hZG1pbi9hdXRob3JzLmVsCisrKyBiL2FkbWluL2F1dGhvcnMuZWwK
QEAgLTE0NzEsNyArMTQ3MSw2IEBAIGF1dGhvcnMtcmVuYW1lZC1maWxlcy1hbGlzdAogICAg
ICgib3JnL0NPUFlSSUdIVC1BTkQtTElDRU5TRSIgLiAib3JnL1JFQURNRSIpCiAgICAgKCJs
aXNwL25ldC9pZG5hLmVsIiAuICJwdW55LmVsIikKICAgICA7OyBNb3ZlZCB0byBkaWZmZXJl
bnQgZGlyZWN0b3JpZXMuCi0gICAgKCJjdGFncy4xIiAuICJjdGFncy4xIikKICAgICAoImV0
YWdzLjEiIC4gImV0YWdzLjEiKQogICAgICgiZW1hY3MuMSIgLiAiZW1hY3MuMSIpCiAgICAg
KCJlbWFjc2NsaWVudC4xIiAuICJlbWFjc2NsaWVudC4xIikKZGlmZiAtLWdpdCBhL2FkbWlu
L2NoZWNrLW1hbi1wYWdlcyBiL2FkbWluL2NoZWNrLW1hbi1wYWdlcwppbmRleCA0MDkwMDNl
MDQ2Mi4uODRjYTU2YmYwODQgMTAwNzU1Ci0tLSBhL2FkbWluL2NoZWNrLW1hbi1wYWdlcwor
KysgYi9hZG1pbi9jaGVjay1tYW4tcGFnZXMKQEAgLTMyLDEzICszMiw2IEBAIGV4aXRfc3Rh
dHVzPTAKIAogY2QgIiRQRCIvLi4vZG9jL21hbgogZm9yIHBhZ2UgaW4gKi4xOyBkbwotICAg
ICMgY3RhZ3MuMSBqdXN0IGluY2x1ZGVzIHRoZSBtYW4gcGFnZSBldGFncy4xLCB3aGljaCBB
RkFJQ1Qgd2lsbAotICAgICMgZGVmYXVsdCB0byB0aGUgb25lIGluc3RhbGxlZCBvbiB0aGUg
c3lzdGVtICghKSwgaW5zdGVhZCBvZiB0aGUKLSAgICAjIG9uZSBpbiB0aGUgcmVwb3NpdG9y
eS4gIFNvIGNoZWNraW5nIGl0IGlzIHBvaW50bGVzcywgYW5kIHdlIHdpbGwKLSAgICAjIGlu
IGFueSBjYXNlIGFscmVhZHkgY2hlY2sgZXRhZ3MuMSBzZXBhcmF0ZWx5LgotICAgIGlmIFsg
IiRwYWdlIiA9PSAiY3RhZ3MuMSIgXTsgdGhlbgotICAgICAgICBjb250aW51ZQotICAgIGZp
CiAgICAgbG9nPSQoZW1hY3NfbWt0ZW1wKQogICAgIExDX0FMTD1DLlVURi04IE1BTlJPRkZT
RVE9JycgTUFOV0lEVEg9ODAgXAogICAgICAgICBtYW4gLS13YXJuaW5ncz1hbGwsbWFjIC1F
IFVURi04IC1sIC1UdXRmOCAtWiAiJHBhZ2UiID4vZGV2L251bGwgMj4gIiRsb2ciCmRpZmYg
LS1naXQgYS9hZG1pbi9xdWljay1pbnN0YWxsLWVtYWNzIGIvYWRtaW4vcXVpY2staW5zdGFs
bC1lbWFjcwppbmRleCBjZWFiZTgwMDI0ZS4uNTQ1MzQ1NmQwOWMgMTAwNzU1Ci0tLSBhL2Fk
bWluL3F1aWNrLWluc3RhbGwtZW1hY3MKKysrIGIvYWRtaW4vcXVpY2staW5zdGFsbC1lbWFj
cwpAQCAtMjcsNyArMjcsNyBAQAogIyMgaW5zdGFsbCBlbWFjcyB2ZXJ5IG9mdGVuLiAgU2Vl
IHRoZSAtLWhlbHAgb3V0cHV0IGZvciBtb3JlIGRldGFpbHMuCiAKIAotUFVCTElDX0xJQlNS
Q19CSU5BUklFUz0nZW1hY3NjbGllbnQgZXRhZ3MgY3RhZ3MgZWJyb3dzZScKK1BVQkxJQ19M
SUJTUkNfQklOQVJJRVM9J2VtYWNzY2xpZW50IGV0YWdzIGVicm93c2UnCiAKIEFWT0lEPSJD
VlMgLURJQyBSRUFETUUgQ09QWUlORyBDaGFuZ2VMb2cgfiBbLl1vcmlnJCBbLl1yZWokIE1h
a2VmaWxlJCBNYWtlZmlsZS5pbiQgbWFrZWZpbGUkIG1ha2VmaWxlLnczMi1pbiQgc3RhbXAt
c3ViZGlyIFsuXWN2c2lnbm9yZSBbLl1hcmNoLWlkcyBbe11hcmNoW31dIFsuXVtjaG9dJCBt
YWtlLWRvY2ZpbGUiCiAKZGlmZiAtLWdpdCBhL2Nyb3NzL01ha2VmaWxlLmluIGIvY3Jvc3Mv
TWFrZWZpbGUuaW4KaW5kZXggOTRhMjhhNzU1YmMuLmIxMzIyZWE0YzViIDEwMDY0NAotLS0g
YS9jcm9zcy9NYWtlZmlsZS5pbgorKysgYi9jcm9zcy9NYWtlZmlsZS5pbgpAQCAtNTAsNyAr
NTAsNyBAQCBMSUJfU1JDX1RPUF9TUkNESVIgPQogCiAjIFRoaXMgaXMgYSBsaXN0IG9mIGJp
bmFyaWVzIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGluIGxpYi1zcmMuCiAKLUxJQlNSQ19CSU5B
UklFUyA9IGxpYi1zcmMvZXRhZ3MgbGliLXNyYy9jdGFncyBsaWItc3JjL2VtYWNzY2xpZW50
IFwKK0xJQlNSQ19CSU5BUklFUyA9IGxpYi1zcmMvZXRhZ3MgbGliLXNyYy9lbWFjc2NsaWVu
dCBcCiAJCSAgbGliLXNyYy9lYnJvd3NlIGxpYi1zcmMvaGV4bCBsaWItc3JjL21vdmVtYWls
CiAKIENMRUFOX1NVQkRJUlMgPSAkKHdpbGRjYXJkIHNyYyBsaWItc3JjIGxpYiBldGMpCmRp
ZmYgLS1naXQgYS9kb2MvZW1hY3MvYW5kcm9pZC50ZXhpIGIvZG9jL2VtYWNzL2FuZHJvaWQu
dGV4aQppbmRleCBjMzE4MzczNTM2YS4uOGIwMGVhOTRjYjMgMTAwNjQ0Ci0tLSBhL2RvYy9l
bWFjcy9hbmRyb2lkLnRleGkKKysrIGIvZG9jL2VtYWNzL2FuZHJvaWQudGV4aQpAQCAtMzUz
LDExICszNTMsMTEgQEAgQW5kcm9pZCBFbnZpcm9ubWVudAogICBUaGUgRW1hY3MgZGlzdHJp
YnV0aW9uIGFsc28gaW5jb3Jwb3JhdGVzIHNldmVyYWwgYmluYXJpZXMuICBXaGlsZQogYmVp
bmcgZXhlY3V0YWJsZSBmaWxlcywgdGhleSBhcmUgcGFja2FnZWQgYXMgbGlicmFyaWVzIGlu
IHRoZSBsaWJyYXJ5CiBkaXJlY3RvcnksIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBzeXN0ZW0g
d2lsbCBub3QgdW5wYWNrIHRoZW0gd2hpbGUKLUVtYWNzIGlzIGJlaW5nIGluc3RhbGxlZC4g
IFRoaXMgbWVhbnMgdGhhdCBpbnN0ZWFkIG9mIEBjb2Rle2N0YWdzfSBvcgotQGNvZGV7ZW1h
Y3NjbGllbnR9LCBMaXNwIGNvZGUgbXVzdCBzcGVjaWZ5IEBjb2Rle2xpYmN0YWdzLnNvfSBv
cgorRW1hY3MgaXMgYmVpbmcgaW5zdGFsbGVkLiAgVGhpcyBtZWFucyB0aGF0IGluc3RlYWQg
b2YKK0Bjb2Rle2VtYWNzY2xpZW50fSwgTGlzcCBjb2RlIG11c3Qgc3BlY2lmeQogQGNvZGV7
bGliZW1hY3NjbGllbnQuc299IG9uIHRoZSBjb21tYW5kIGxpbmUgd2hlbiBzdGFydGluZyBl
aXRoZXIgb2YKIHRob3NlIHByb2dyYW1zIGluIGEgc3VicHJvY2VzczsgdG8gZGV0ZXJtaW5l
IHdoaWNoIG5hbWVzIHRvIHVzZSwKLWNvbnN1bHQgdGhlIHZhbHVlcyBvZiB0aGUgdmFyaWFi
bGVzIEBjb2Rle2N0YWdzLXByb2dyYW0tbmFtZX0sCitjb25zdWx0IHRoZSB2YWx1ZXMgb2Yg
dGhlIHZhcmlhYmxlcwogQGNvZGV7ZXRhZ3MtcHJvZ3JhbS1uYW1lfSwgQGNvZGV7aGV4bC1w
cm9ncmFtLW5hbWV9LAogQGNvZGV7ZW1hY3NjbGllbnQtcHJvZ3JhbS1uYW1lfSwgQGNvZGV7
bW92ZW1haWwtcHJvZ3JhbS1uYW1lfSwKIEBjb2Rle2Vicm93c2UtcHJvZ3JhbS1uYW1lfSwg
YW5kIEBjb2Rle3JjczJsb2ctcHJvZ3JhbS1uYW1lfS4KZGlmZiAtLWdpdCBhL2RvYy9saXNw
cmVmL3Byb2Nlc3Nlcy50ZXhpIGIvZG9jL2xpc3ByZWYvcHJvY2Vzc2VzLnRleGkKaW5kZXgg
ODA0ZWZiNTAxNjIuLjU2ZTc4ZWFjOTAwIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9wcm9j
ZXNzZXMudGV4aQorKysgYi9kb2MvbGlzcHJlZi9wcm9jZXNzZXMudGV4aQpAQCAtMTg2LDcg
KzE4Niw2IEBAIFN1YnByb2Nlc3MgQ3JlYXRpb24KIEBlbmQgZGVmdW4KIAogQGNpbmRleCBw
cm9ncmFtcyBkaXN0cmlidXRlZCB3aXRoIEVtYWNzLCBzdGFydGluZwotQHZpbmRleCBjdGFn
cy1wcm9ncmFtLW5hbWUKIEB2aW5kZXggZXRhZ3MtcHJvZ3JhbS1uYW1lCiBAdmluZGV4IGhl
eGwtcHJvZ3JhbS1uYW1lCiBAdmluZGV4IGVtYWNzY2xpZW50LXByb2dyYW0tbmFtZQpAQCAt
MTk3LDExICsxOTYsMTEgQEAgU3VicHJvY2VzcyBDcmVhdGlvbgogbXVzdCB0YWtlIGludG8g
YWNjb3VudCB0aGF0IHRoZSBwcm9ncmFtIG1heSBoYXZlIGJlZW4gcmVuYW1lZCBpbiBvcmRl
cgogdG8gY29tcGx5IHdpdGggZXhlY3V0YWJsZSBuYW1pbmcgcmVzdHJpY3Rpb25zIHByZXNl
bnQgb24gdGhlIHN5c3RlbS4KIAotICBJbnN0ZWFkIG9mIHN0YXJ0aW5nIEBjb21tYW5ke2N0
YWdzfSwgZm9yIGV4YW1wbGUsIHlvdSBzaG91bGQgc3BlY2lmeQotdGhlIHZhbHVlIG9mIEBj
b2Rle2N0YWdzLXByb2dyYW0tbmFtZX0gaW5zdGVhZC4gIExpa2V3aXNlLCBpbnN0ZWFkIG9m
CisgIEluc3RlYWQgb2Ygc3RhcnRpbmcgQGNvbW1hbmR7ZW1hY3NjbGllbnR9LCBmb3IgZXhh
bXBsZSwgeW91IHNob3VsZCBzcGVjaWZ5Cit0aGUgdmFsdWUgb2YgQGNvZGV7ZW1hY3NjbGll
bnQtcHJvZ3JhbS1uYW1lfSBpbnN0ZWFkLiAgTGlrZXdpc2UsIGluc3RlYWQgb2YKIHN0YXJ0
aW5nIEBjb21tYW5ke21vdmVtYWlsfSwgeW91IG11c3Qgc3RhcnQKIEBjb2Rle21vdmVtYWls
LXByb2dyYW0tbmFtZX0sIGFuZCB0aGUgc2FtZSBnb2VzIGZvciBAY29tbWFuZHtldGFnc30s
Ci1AY29tbWFuZHtoZXhsfSwgQGNvbW1hbmR7ZW1hY3NjbGllbnR9LCBAY29kZXtyY3MybG9n
fSwgYW5kCitAY29tbWFuZHtoZXhsfSwgQGNvZGV7cmNzMmxvZ30sIGFuZAogQGNvbW1hbmR7
ZWJyb3dzZX0uCiAKIEBub2RlIFNoZWxsIEFyZ3VtZW50cwpkaWZmIC0tZ2l0IGEvZG9jL21h
bi9jdGFncy4xIGIvZG9jL21hbi9jdGFncy4xCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxZWFiMDJmMjE0NS4uMDAwMDAwMDAwMDAKLS0tIGEvZG9jL21hbi9jdGFncy4xCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotLnNvIG1hbjEvZXRhZ3MuMQpkaWZmIC0tZ2l0
IGEvZG9jL21hbi9ldGFncy4xIGIvZG9jL21hbi9ldGFncy4xCmluZGV4IGE4N2FkMjJkNDhl
Li43MDlkNjM4Yjk4MCAxMDA2NDQKLS0tIGEvZG9jL21hbi9ldGFncy4xCisrKyBiL2RvYy9t
YW4vZXRhZ3MuMQpAQCAtMSw1ICsxLDUgQEAKIC5cIiBTZWUgc2VjdGlvbiBDT1BZSU5HIGZv
ciBjb3B5cmlnaHQgYW5kIHJlZGlzdHJpYnV0aW9uIGluZm9ybWF0aW9uLgotLlRIIEVUQUdT
IDEgIjIwMjQtMTItMjEiICJHTlUgVG9vbHMiICJHTlUiCisuVEggRVRBR1MgMSAiMjAyNS0w
My0xMSIgIkdOVSBUb29scyIgIkdOVSIKIC5kZSBCUAogLnNwCiAudGkgLS4yaQpAQCAtNyw3
ICs3LDcgQEAKIC4uCiAKIC5TSCBOQU1FCi1ldGFncywgY3RhZ3MgXC0gZ2VuZXJhdGUgdGFn
IGZpbGUgZm9yIEVtYWNzLCB2aQorZXRhZ3MgXC0gZ2VuZXJhdGUgdGFnIGZpbGUgZm9yIEVt
YWNzLCB2aQogLlNIIFNZTk9QU0lTCiAuaHkgMAogLm5hCkBAIC0yNyw3ICsyNyw3IEBAIGV0
YWdzLCBjdGFncyBcLSBnZW5lcmF0ZSB0YWcgZmlsZSBmb3IgRW1hY3MsIHZpCiBbXHxcLVwt
aGVscFx8XSBbXHxcLVwtdmVyc2lvblx8XQogXGZJZmlsZVxmUCAuXHwuXHwuCiAKLVxmQmN0
YWdzXGZQIFtcfFwtYUNkZ0lRUlZoXHxdIFtcfFwtQnRUdXZ3eFx8XSBbXHxcLWwgXGZJbGFu
Z3VhZ2VcZlBcfF0KK1xmQmV0YWdzIFwtXC1jdGFnc1xmUCBbXHxcLWFDZGdJUVJWaFx8XSBb
XHxcLUJ0VHV2d3hcfF0gW1x8XC1sIFxmSWxhbmd1YWdlXGZQXHxdCiAuaWYgbiAuYnIKIFtc
fFwtbyBcZkl0YWdmaWxlXGZQXHxdIFtcfFwtciBcZklyZWdleHBcZlBcfF0KIFtcfFwtXC1w
YXJzZVwtc3RkaW49XGZJZmlsZVxmUFx8XQpAQCAtNDcsMTcgKzQ3LDE4IEBAIGV0YWdzLCBj
dGFncyBcLSBnZW5lcmF0ZSB0YWcgZmlsZSBmb3IgRW1hY3MsIHZpCiBUaGUgXHxcZkJldGFn
c1xmUFx8IHByb2dyYW0gaXMgdXNlZCB0byBjcmVhdGUgYSB0YWcgdGFibGUgZmlsZSwgaW4g
YSBmb3JtYXQKIHVuZGVyc3Rvb2QgYnkKIC5CUiBlbWFjcyAoIDEgKVxjCi1cJjsgdGhlIFx8
XGZCY3RhZ3NcZlBcfCBwcm9ncmFtIGlzIHVzZWQgdG8gY3JlYXRlIGEgc2ltaWxhciB0YWJs
ZSBpbiBhCitcJjsgaWYgdGhlIGZpcnN0IG9wdGlvbiBpcyBcfFxmQlwtXC1jdGFnc1xmUFx8
Cit0aGUgcHJvZ3JhbSBpcyB1c2VkIHRvIGNyZWF0ZSBhIHNpbWlsYXIgdGFibGUgaW4gYQog
Zm9ybWF0IHVuZGVyc3Rvb2QgYnkKIC5CUiB2aSAoIDEgKVxjCi1cJi4gIEJvdGggZm9ybXMg
b2YgdGhlIHByb2dyYW0gdW5kZXJzdGFuZAorXCYuICBUaGUgcHJvZ3JhbSB1bmRlcnN0YW5k
cwogdGhlIHN5bnRheCBvZiBDLCBPYmplY3RpdmUgQywgQysrLCBKYXZhLCBGb3J0cmFuLCBB
ZGEsIENvYm9sLCBFcmxhbmcsCiBGb3J0aCwgR28sIEhUTUwsIExhVGVYLCBFbWFjcyBMaXNw
L0NvbW1vbiBMaXNwLCBMdWEsIE1ha2VmaWxlLCBNZXJjdXJ5LCBQYXNjYWwsCiBQZXJsLCBS
dWJ5LCBSdXN0LCBQSFAsIFBvc3RTY3JpcHQsIFB5dGhvbiwgUHJvbG9nLCBTY2hlbWUgYW5k
IG1vc3QKIGFzc2VtYmxlclwtbGlrZSBzeW50YXhlcy4KLUJvdGggZm9ybXMgcmVhZCB0aGUg
ZmlsZXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUsIGFuZCB3cml0ZSBhIHRhZwot
dGFibGUgKGRlZmF1bHRzOiBcZkJUQUdTXGZQIGZvciBcZkJldGFnc1xmUCwgXGZCdGFnc1xm
UCBmb3IKLVxmQmN0YWdzXGZQKSBpbiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4K
K0l0IHJlYWRzIHRoZSBmaWxlcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZSwgYW5k
IHdyaXRlIGEgdGFnCit0YWJsZSAoZGVmYXVsdDogXGZCVEFHU1xmUCwgb3IgXGZCdGFnc1xm
UCBpZgorXGZCXC1cLWN0YWdzXGZQIGlzIHVzZWQpIGluIHRoZSBjdXJyZW50IHdvcmtpbmcg
ZGlyZWN0b3J5LgogRmlsZXMgc3BlY2lmaWVkIHdpdGggcmVsYXRpdmUgZmlsZSBuYW1lcyB3
aWxsIGJlIHJlY29yZGVkIGluIHRoZSB0YWcKIHRhYmxlIHdpdGggZmlsZSBuYW1lcyByZWxh
dGl2ZSB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSB0YWcgdGFibGUKIHJlc2lkZXMuICBJ
ZiB0aGUgdGFnIHRhYmxlIGlzIGluIC9kZXYgb3IgaXMgdGhlIHN0YW5kYXJkIG91dHB1dCwK
QEAgLTczLDggKzc0LDcgQEAgcGFyc2luZyBvZiB0aGUgZmlsZSBuYW1lcyBmb2xsb3dpbmcg
dGhlIHN3aXRjaCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuCiBsYW5ndWFnZSwgb3ZlcnJpZGlu
ZyBndWVzc2VzIGJhc2VkIG9uIGZpbGVuYW1lIGV4dGVuc2lvbnMuCiAuU0ggT1BUSU9OUwog
U29tZSBvcHRpb25zIG1ha2Ugc2Vuc2Ugb25seSBmb3IgdGhlIFxmQnZpXGZQIHN0eWxlIHRh
ZyBmaWxlcyBwcm9kdWNlZAotYnkgY3RhZ3M7Ci1cZkJldGFnc1xmUCBkb2VzIG5vdCByZWNv
Z25pemUgdGhlbS4KK3dpdGggdGhlIFxmQlwtXC1jdGFnc1xmUCBvcHRpb247IHRoZXkgYXJl
IGlnbm9yZWQgb3RoZXJ3aXNlLgogVGhlIHByb2dyYW1zIGFjY2VwdCB1bmFtYmlndW91cyBh
YmJyZXZpYXRpb25zIGZvciBsb25nIG9wdGlvbiBuYW1lcy4KIC5UUAogLkIgXC1hLCBcLVwt
YXBwZW5kCkBAIC04Nyw3ICs4Nyw3IEBAIGV4cHJlc3Npb24gc2VhcmNoIGluc3RydWN0aW9u
czsgdGhlIFxmQlwtQlxmUCBvcHRpb24gd3JpdGVzIHRoZW0gdXNpbmcKIHRoZSBkZWxpbWl0
ZXIgIlx8XGZCP1xmUFx8IiwgdG8gc2VhcmNoIFxmSWJhY2t3YXJkc1xmUCB0aHJvdWdoIGZp
bGVzLgogVGhlIGRlZmF1bHQgaXMgdG8gdXNlIHRoZSBkZWxpbWl0ZXIgIlx8XGZCL1xmUFx8
IiwgdG8gc2VhcmNoIFxmSWZvcndhcmRzXGZQCiB0aHJvdWdoIGZpbGVzLgotT25seSBcZkJj
dGFnc1xmUCBhY2NlcHRzIHRoaXMgb3B0aW9uLgorVGhpcyBvcHRpb24gbWFrZXMgc2Vuc2Ug
b25seSBpZiBcZkJcLVwtY3RhZ3NcZlAgaXMgdXNlZC4KIC5UUAogLkIgXC1cLWRlY2xhcmF0
aW9ucwogSW4gQyBhbmQgZGVyaXZlZCBsYW5ndWFnZXMsIGNyZWF0ZSB0YWdzIGZvciBmdW5j
dGlvbiBkZWNsYXJhdGlvbnMsCkBAIC0xODUsNyArMTg1LDcgQEAgdGhlIHByZXZpb3VzIG9u
ZXMuICBUaGUgcmVnZXhwcyBhcmUgb2Ygb25lIG9mIHRoZSBmb3JtczoKIHdoZXJlIFxmSXRh
Z3JlZ2V4cFxmUCBpcyB1c2VkIHRvIG1hdGNoIHRoZSB0YWcuICBJdCBzaG91bGQgbm90IG1h
dGNoCiB1c2VsZXNzIGNoYXJhY3RlcnMuICBJZiB0aGUgbWF0Y2ggaXMgc3VjaCB0aGF0IG1v
cmUgY2hhcmFjdGVycyB0aGFuCiBuZWVkZWQgYXJlIHVuYXZvaWRhYmx5IG1hdGNoZWQgYnkg
XGZJdGFncmVnZXhwXGZQLCBpdCBtYXkgYmUgdXNlZnVsIHRvCi1hZGQgYSBcZkluYW1lcmVn
ZXhwXGZQLCB0byBuYXJyb3cgZG93biB0aGUgdGFnIHNjb3BlLiAgXGZCY3RhZ3NcZlAKK2Fk
ZCBhIFxmSW5hbWVyZWdleHBcZlAsIHRvIG5hcnJvdyBkb3duIHRoZSB0YWcgc2NvcGUuICBc
ZkJcLVwtY3RhZ3NcZlAKIGlnbm9yZXMgcmVnZXhwcyB3aXRob3V0IGEgXGZJbmFtZXJlZ2V4
cFxmUC4gIFRoZSBzeW50YXggb2YgcmVnZXhwcyBpcwogdGhlIHNhbWUgYXMgaW4gRW1hY3Ms
IGV4Y2VwdCB0aGF0IGJhY2tzbGFzaCBlc2NhcGVzIGFyZSB0aGUgc2FtZQogYXMgR05VIGdy
ZXAgKHdoaWNoIG1lYW5zLCBmb3IgZXhhbXBsZSwgdGhhdCBzaHkgZ3JvdXBzIGFyZSBub3Qg
c3VwcG9ydGVkKSwKQEAgLTI4MSwxNSArMjgxLDE3IEBAIHRhZyBlbnRyaWVzIGZvciBvdGhl
ciBmaWxlcyBpbiBwbGFjZS4gIEN1cnJlbnRseSwgdGhpcyBpcyBpbXBsZW1lbnRlZAogYnkg
ZGVsZXRpbmcgdGhlIGV4aXN0aW5nIGVudHJpZXMgZm9yIHRoZSBnaXZlbiBmaWxlcyBhbmQg
dGhlbgogcmV3cml0aW5nIHRoZSBuZXcgZW50cmllcyBhdCB0aGUgZW5kIG9mIHRoZSB0YWdz
IGZpbGUuICBJdCBpcyBvZnRlbgogZmFzdGVyIHRvIHNpbXBseSByZWJ1aWxkIHRoZSBlbnRp
cmUgdGFnIGZpbGUgdGhhbiB0byB1c2UgdGhpcy4KLU9ubHkgXGZCY3RhZ3NcZlAgYWNjZXB0
cyB0aGlzIG9wdGlvbi4KK1RoaXMgb3B0aW9uIG1ha2VzIHNlbnNlIG9ubHkgaWYgXGZCXC1c
LWN0YWdzXGZQIGlzIHVzZWQuCiAuVFAKIC5CIFwtdiwgXC1cLXZncmluZAogSW5zdGVhZCBv
ZiBnZW5lcmF0aW5nIGEgdGFnIGZpbGUsIHdyaXRlIGluZGV4IChpbiBcZkJ2Z3JpbmRcZlAg
Zm9ybWF0KQotdG8gc3RhbmRhcmQgb3V0cHV0LiAgT25seSBcZkJjdGFnc1xmUCBhY2NlcHRz
IHRoaXMgb3B0aW9uLgordG8gc3RhbmRhcmQgb3V0cHV0LgorVGhpcyBvcHRpb24gbWFrZXMg
c2Vuc2Ugb25seSBpZiBcZkJcLVwtY3RhZ3NcZlAgaXMgdXNlZC4KIC5UUAogLkIgXC14LCBc
LVwtY3hyZWYKIEluc3RlYWQgb2YgZ2VuZXJhdGluZyBhIHRhZyBmaWxlLCB3cml0ZSBhIGNy
b3NzIHJlZmVyZW5jZSAoaW4KLVxmQmN4cmVmXGZQIGZvcm1hdCkgdG8gc3RhbmRhcmQgb3V0
cHV0LiAgT25seSBcZkJjdGFnc1xmUCBhY2NlcHRzIHRoaXMgb3B0aW9uLgorXGZCY3hyZWZc
ZlAgZm9ybWF0KSB0byBzdGFuZGFyZCBvdXRwdXQuCitUaGlzIG9wdGlvbiBtYWtlcyBzZW5z
ZSBvbmx5IGlmIFxmQlwtXC1jdGFnc1xmUCBpcyB1c2VkLgogLlRQCiAuQiBcLWgsIFwtSCwg
XC1cLWhlbHAKIFByaW50IHVzYWdlIGluZm9ybWF0aW9uLiAgRm9sbG93ZWQgYnkgb25lIG9y
IG1vcmUgXC1cLWxhbmd1YWdlPUxBTkcKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05F
V1MKaW5kZXggOTI2ZDQyNmVhYWUuLjUyMWQ1NDUyOGE1IDEwMDY0NAotLS0gYS9ldGMvTkVX
UworKysgYi9ldGMvTkVXUwpAQCAtMjksNiArMjksMTIgQEAgYXBwbGllcywgYW5kIHBsZWFz
ZSBhbHNvIHVwZGF0ZSBkb2NzdHJpbmdzIGFzIG5lZWRlZC4KIFRoZSB0cmFkaXRpb25hbCB1
bmV4ZWMgZHVtcGVyLCBkZXByZWNhdGVkIHNpbmNlIEVtYWNzIDI3LCBoYXMgYmVlbgogcmVt
b3ZlZC4KIAorLS0tCisqKiBFbWFjcydzIG9sZCBjdGFncyBwcm9ncmFtIGlzIG5vIGxvbmdl
ciBidWlsdCBvciBpbnN0YWxsZWQuCitZb3UgYXJlIGVuY291cmFnZWQgdG8gdXNlIFVuaXZl
cnNhbCBDdGFncyA8aHR0cHM6Ly9jdGFncy5pby8+IGluc3RlYWQuCitGb3Igbm93LCB0byBn
ZXQgdGhlIG9sZCBjdGFncyBiZWhhdmlvciB5b3UgY2FuIGNhbiBydW4gJ2V0YWdzIC0tY3Rh
Z3MnCitvciB1c2UgYSBzaGVsbCBzY3JpcHQgbmFtZWQgJ2N0YWdzJyB0aGF0IHJ1bnMgJ2V0
YWdzIC0tY3RhZ3MgIiRAIicuCisKIC0tLQogKiogQ2hhbmdlZCBHQ0MgZGVmYXVsdCBvcHRp
b25zIG9uIDMyLWJpdCB4ODYgc3lzdGVtcy4KIFdoZW4gdXNpbmcgR0NDIDQgb3IgbGF0ZXIg
dG8gYnVpbGQgRW1hY3Mgb24gMzItYml0IHg4NiBzeXN0ZW1zLApkaWZmIC0tZ2l0IGEvZXRj
L1BST0JMRU1TIGIvZXRjL1BST0JMRU1TCmluZGV4IDBkNjFhM2JjNzZlLi45NTI4MTNmMGM1
YiAxMDA2NDQKLS0tIGEvZXRjL1BST0JMRU1TCisrKyBiL2V0Yy9QUk9CTEVNUwpAQCAtMzk3
Myw3ICszOTczLDcgQEAgVGhlcmUgYXJlIHNldmVyYWwga25vd24gd29ya2Fyb3VuZHM6CiAK
IFRoZSBsaW5rZXIgZXJyb3IgbWVzc2FnZXMgbG9vayBsaWtlIHRoaXM6CiAKLSBvby1zcGQv
aTM4Ni9jdGFncy5vOmN0YWdzLmM6KC50ZXh0KzB4MTU2ZSk6IHVuZGVmaW5lZCByZWZlcmVu
Y2UgdG8gYF9pbXBfX3JlX3NldF9zeW50YXgnCisgb28tc3BkL2kzODYvZXRhZ3MubzpldGFn
cy5jOigudGV4dCsweDE1NmUpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfaW1wX19yZV9z
ZXRfc3ludGF4JwogIGNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCiAKIFRo
aXMgaGFwcGVucyBiZWNhdXNlIEdDQyBmaW5kcyBhbiBpbmNvbXBhdGlibGUgcmVnZXguaCBo
ZWFkZXIKQEAgLTQwMDQsNyArNDAwNCw3IEBAIFNvbWUgdmVyc2lvbnMgb2YgbWluZ3czMiBt
YWtlIG9uIHNvbWUgdmVyc2lvbnMgb2YgV2luZG93cyBkbyBub3Qgc2VlbQogdG8gZGV0ZWN0
IHRoZSBzaGVsbCBjb3JyZWN0bHkuICBUcnkgIm1ha2UgU0hFTEw9Y21kLmV4ZSIsIG9yIGlm
IHRoYXQKIGZhaWxzLCB0cnkgcnVubmluZyBtYWtlIGZyb20gQ3lnd2luIGJhc2ggaW5zdGVh
ZC4KIAotKioqIEJ1aWxkaW5nICdjdGFncycgZm9yIE1TLVdpbmRvd3Mgd2l0aCB0aGUgTWlu
R1cgcG9ydCBvZiBHQ0MgZmFpbHMuCisqKiogQnVpbGRpbmcgJ2V0YWdzJyBmb3IgTVMtV2lu
ZG93cyB3aXRoIHRoZSBNaW5HVyBwb3J0IG9mIEdDQyBmYWlscy4KIAogVGhpcyBtaWdodCBo
YXBwZW4gZHVlIHRvIGEgYnVnIGluIHRoZSBNaW5HVyBoZWFkZXIgYXNzZXJ0LmgsIHdoaWNo
CiBkZWZpbmVzIHRoZSAnYXNzZXJ0JyBtYWNybyB3aXRoIGEgdHJhaWxpbmcgc2VtaS1jb2xv
bi4gIFRoZSBmb2xsb3dpbmcKZGlmZiAtLWdpdCBhL2phdmEvTWFrZWZpbGUuaW4gYi9qYXZh
L01ha2VmaWxlLmluCmluZGV4IDM5ZDZlODVjN2E3Li40OTg4MjkwYTIwNyAxMDA2NDQKLS0t
IGEvamF2YS9NYWtlZmlsZS5pbgorKysgYi9qYXZhL01ha2VmaWxlLmluCkBAIC0xMjgsNyAr
MTI4LDYgQEAgSVNfRDhfUjggOj0KICMgY29udGFpbmluZyB0aGUgZm9sbG93aW5nIGZpbGVz
OgogIyAgbGliLyQoQU5EUk9JRF9BQkkpL2xpYmVtYWNzLnNvCiAjICBsaWIvJChBTkRST0lE
X0FCSSkvbGliYW5kcm9pZC1lbWFjcy5zbwotIyAgbGliLyQoQU5EUk9JRF9BQkkpL2xpYmN0
YWdzLnNvCiAjICBsaWIvJChBTkRST0lEX0FCSSkvbGliZXRhZ3Muc28KICMgIGxpYi8kKEFO
RFJPSURfQUJJKS9saWJoZXhsLnNvCiAjICBsaWIvJChBTkRST0lEX0FCSSkvbGlibW92ZW1h
aWwuc28KQEAgLTE0Myw4ICsxNDIsNyBAQCBhbGw6CiAKICMgQmluYXJpZXMgdG8gY3Jvc3Mt
Y29tcGlsZS4KIENST1NTX1NSQ19CSU5TIDo9ICQodG9wX2J1aWxkZGlyKS9jcm9zcy9zcmMv
YW5kcm9pZC1lbWFjcwotQ1JPU1NfTElCU1JDX0JJTlMgOj0gJCh0b3BfYnVpbGRkaXIpL2Ny
b3NzL2xpYi1zcmMvY3RhZ3MJXAotCQkgICAgICQodG9wX2J1aWxkZGlyKS9jcm9zcy9saWIt
c3JjL2hleGwJCVwKK0NST1NTX0xJQlNSQ19CSU5TIDo9ICQodG9wX2J1aWxkZGlyKS9jcm9z
cy9saWItc3JjL2hleGwJCVwKIAkJICAgICAkKHRvcF9idWlsZGRpcikvY3Jvc3MvbGliLXNy
Yy9lYnJvd3NlCVwKIAkJICAgICAkKHRvcF9idWlsZGRpcikvY3Jvc3MvbGliLXNyYy9lbWFj
c2NsaWVudAlcCiAJCSAgICAgJCh0b3BfYnVpbGRkaXIpL2Nyb3NzL2xpYi1zcmMvZXRhZ3MK
ZGlmZiAtLWdpdCBhL2xpYi1zcmMvTWFrZWZpbGUuaW4gYi9saWItc3JjL01ha2VmaWxlLmlu
CmluZGV4IDQzOWQ5YTFhNTJkLi40OWEyNDNlNDc5NSAxMDA2NDQKLS0tIGEvbGliLXNyYy9N
YWtlZmlsZS5pbgorKysgYi9saWItc3JjL01ha2VmaWxlLmluCkBAIC0xNTUsNyArMTU1LDcg
QEAgQU5EUk9JRD0KIENMSUVOVFcgPSBAQ0xJRU5UV0AKIAogIyBUaGluZ3MgdGhhdCBhIHVz
ZXIgbWlnaHQgYWN0dWFsbHkgcnVuLCB3aGljaCBzaG91bGQgYmUgaW5zdGFsbGVkIGluIGJp
bmRpci4KLUlOU1RBTExBQkxFUyA9IGV0YWdzJHtFWEVFWFR9IGN0YWdzJHtFWEVFWFR9IGVt
YWNzY2xpZW50JHtFWEVFWFR9ICQoQ0xJRU5UVykgXAorSU5TVEFMTEFCTEVTID0gZXRhZ3Mk
e0VYRUVYVH0gZW1hY3NjbGllbnQke0VYRUVYVH0gJChDTElFTlRXKSBcCiAgICAgICAgICAg
ICAgICBlYnJvd3NlJHtFWEVFWFR9CiAKICMgVGhpbmdzIHRoYXQgRW1hY3MgcnVucyBpbnRl
cm5hbGx5LCBvciBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MsCkBAIC00MTUsMTMgKzQxNSw2
IEBAIGV0YWdzX2xpYnMgPQogZXRhZ3Mke0VYRUVYVH06ICR7ZXRhZ3NfZGVwc30KIAkkKEFN
X1ZfQ0NMRCkkKENDKSAke0FMTF9DRkxBR1N9IC1vICRAICQ8ICQoZXRhZ3NfbGlicykKIAot
IyMgY3RhZ3MuYyBpcyBkaXN0aW5jdCBmcm9tIGV0YWdzLmMgc28gdGhhdCBwYXJhbGxlbCBt
YWtlcyBkbyBub3Qgd3JpdGUgdHdvCi0jIyBldGFncy5vIGZpbGVzIG9uIHRvcCBvZiBlYWNo
IG90aGVyLgotIyMgRklYTUU/Ci0jIyBDYW4ndCB3ZSB1c2UgYSB3cmFwcGVyIHRoYXQgY2Fs
bHMgJ2V0YWdzIC0tY3RhZ3MnPwotY3RhZ3Mke0VYRUVYVH06ICR7c3JjZGlyfS9jdGFncy5j
ICR7ZXRhZ3NfZGVwc30KLQkkKEFNX1ZfQ0NMRCkkKENDKSAke0FMTF9DRkxBR1N9IC1vICRA
ICQ8ICQoZXRhZ3NfbGlicykKLQogYXNzZXQtZGlyZWN0b3J5LXRvb2wke0VYRUVYVH06ICR7
c3JjZGlyfS9hc3NldC1kaXJlY3RvcnktdG9vbC5jICQoY29uZmlnX2gpCiAJJChBTV9WX0ND
TEQpJChDQykgJHtBTExfQ0ZMQUdTfSAkPCAkKExPQURMSUJFUykgLW8gJEAKIApkaWZmIC0t
Z2l0IGEvbGliLXNyYy9jdGFncy5jIGIvbGliLXNyYy9jdGFncy5jCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwYTY4MzhhOWRiYi4uMDAwMDAwMDAwMDAKLS0tIGEvbGliLXNy
Yy9jdGFncy5jCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0jZGVmaW5lIENUQUdT
IDEKLSNpbmNsdWRlICJldGFncy5jIgpkaWZmIC0tZ2l0IGEvbGliLXNyYy9ldGFncy5jIGIv
bGliLXNyYy9ldGFncy5jCmluZGV4IGI1OWI3MGM5ZWM3Li5kNTExYmMzOTU4OCAxMDA2NDQK
LS0tIGEvbGliLXNyYy9ldGFncy5jCisrKyBiL2xpYi1zcmMvZXRhZ3MuYwpAQCAtMTI2LDE2
ICsxMjYsNiBAQCBDb3B5cmlnaHQgKEMpIDE5ODQsIDE5ODctMTk4OSwgMTk5My0xOTk1LCAx
OTk4LTIwMjUgRnJlZSBTb2Z0d2FyZQogI2luY2x1ZGUgPGdldG9wdC5oPgogI2luY2x1ZGUg
PHJlZ2V4Lmg+CiAKLS8qIERlZmluZSBDVEFHUyB0byBtYWtlIHRoZSBwcm9ncmFtICJjdGFn
cyIgY29tcGF0aWJsZSB3aXRoIHRoZSB1c3VhbCBvbmUuCi0gTGVhdmUgaXQgdW5kZWZpbmVk
IHRvIG1ha2UgdGhlIHByb2dyYW0gImV0YWdzIiwgd2hpY2ggbWFrZXMgZW1hY3Mtc3R5bGUK
LSB0YWcgdGFibGVzIGFuZCB0YWdzIHR5cGVkZWZzLCAjZGVmaW5lcyBhbmQgc3RydWN0L3Vu
aW9uL2VudW0gYnkgZGVmYXVsdC4gKi8KLSNpZmRlZiBDVEFHUwotIyB1bmRlZiAgQ1RBR1MK
LSMgZGVmaW5lIENUQUdTIHRydWUKLSNlbHNlCi0jIGRlZmluZSBDVEFHUyBmYWxzZQotI2Vu
ZGlmCi0KIC8qIERlZmluZSBNRVJDVVJZX0hFVVJJU1RJQ1NfUkFUSU8gYXMgaXQgd2FzIG5l
Y2Vzc2FyeSB0byBkaXNhbWJpZ3VhdGUKICAgIE1lcmN1cnkgZnJvbSBPYmplY3RpdmUgQywg
d2hpY2ggaGF2ZSBzYW1lIGZpbGUgZXh0ZW5zaW9ucyAubQogICAgU2VlIGNvbW1lbnRzIGJl
Zm9yZSBmdW5jdGlvbiB0ZXN0X29iamNfaXNfbWVyY3VyeSBmb3IgZGV0YWlscy4gICovCkBA
IC00NjUsMTIgKzQ1NSwxMiBAQCAjZGVmaW5lIHhybmV3KG9wLCBuLCBtKSAoKG9wKSA9IHhu
cmVhbGxvYyAob3AsIG4sIChtKSAqIHNpemVvZiAqKG9wKSkpCiAJCQkJLyogbWVtYmVyIGZ1
bmN0aW9ucy4gKi8KIHN0YXRpYyBib29sIGNvbnN0YW50eXBlZGVmczsJLyogLWQ6IGNyZWF0
ZSB0YWdzIGZvciBDICNkZWZpbmUsIGVudW0gKi8KIAkJCQkvKiBjb25zdGFudHMgYW5kIHZh
cmlhYmxlcy4gKi8KLQkJCQkvKiAtRDogb3Bwb3NpdGUgb2YgLWQuICBEZWZhdWx0IHVuZGVy
IGN0YWdzLiAqLworCQkJCS8qIC1EOiBvcHBvc2l0ZSBvZiAtZC4gIERlZmF1bHQgaWYgY3Rh
Z3MuICovCiBzdGF0aWMgaW50IGdsb2JhbHM7CQkvKiBjcmVhdGUgdGFncyBmb3IgZ2xvYmFs
IHZhcmlhYmxlcyAqLwogc3RhdGljIGludCBtZW1iZXJzOwkJLyogY3JlYXRlIHRhZ3MgZm9y
IEMgbWVtYmVyIHZhcmlhYmxlcyAqLwogc3RhdGljIGludCBkZWNsYXJhdGlvbnM7CS8qIC0t
ZGVjbGFyYXRpb25zOiB0YWcgdGhlbSBhbmQgZXh0ZXJuIGluIEMmQ28qLwogc3RhdGljIGlu
dCBub19saW5lX2RpcmVjdGl2ZTsJLyogaWdub3JlICNsaW5lIGRpcmVjdGl2ZXMgKHVuZG9j
dW1lbnRlZCkgKi8KLXN0YXRpYyBpbnQgbm9fZHVwbGljYXRlczsJLyogbm8gZHVwbGljYXRl
IHRhZ3MgZm9yIGN0YWdzICh1bmRvY3VtZW50ZWQpICovCitzdGF0aWMgaW50IG5vX2R1cGxp
Y2F0ZXM7CS8qIG5vIGR1cGxpY2F0ZSB0YWdzIGlmIGN0YWdzICh1bmRvY3VtZW50ZWQpICov
CiBzdGF0aWMgYm9vbCB1cGRhdGU7CQkvKiAtdTogdXBkYXRlIHRhZ3MgKi8KIHN0YXRpYyBi
b29sIHZncmluZF9zdHlsZTsJLyogLXY6IGNyZWF0ZSB2Z3JpbmQgc3R5bGUgaW5kZXggb3V0
cHV0ICovCiBzdGF0aWMgYm9vbCBub193YXJuaW5nczsJLyogLXc6IHN1cHByZXNzIHdhcm5p
bmdzICh1bmRvY3VtZW50ZWQpICovCkBAIC00NzksMTggKzQ2OSwyMCBAQCAjZGVmaW5lIHhy
bmV3KG9wLCBuLCBtKSAoKG9wKSA9IHhucmVhbGxvYyAob3AsIG4sIChtKSAqIHNpemVvZiAq
KG9wKSkpCiBzdGF0aWMgYm9vbCBpZ25vcmVpbmRlbnQ7CS8qIC1JOiBpZ25vcmUgaW5kZW50
YXRpb24gaW4gQyAqLwogc3RhdGljIGludCBwYWNrYWdlc19vbmx5OwkvKiAtLXBhY2thZ2Vz
LW9ubHk6IGluIEFkYSwgb25seSB0YWcgcGFja2FnZXMqLwogc3RhdGljIGludCBjbGFzc19x
dWFsaWZ5OwkvKiAtUTogcHJvZHVjZSBjbGFzcy1xdWFsaWZpZWQgdGFncyBpbiBDKysvSmF2
YSAqLworc3RhdGljIGJvb2wgY3RhZ3M7CQkvKiAtLWN0YWdzICovCiBzdGF0aWMgaW50IGRl
YnVnOwkJLyogLS1kZWJ1ZyAqLwogc3RhdGljIGludCBmYWxsYmFja19sYW5nOwkvKiAtLShu
by0pZmFsbGJhY2stbGFuZzogRm9ydHJhbi9DIGZhbGxiYWNrcyAqLwogc3RhdGljIGludCBl
bXB0eV9maWxlczsJCS8qIC0tKG5vLSllbXB0eS1maWxlLWVudHJpZXMgKi8KLQotLyogU1RE
SU4gaXMgZGVmaW5lZCBpbiBMeW54T1Mgc3lzdGVtIGhlYWRlcnMgKi8KLSNpZmRlZiBTVERJ
TgotIyB1bmRlZiBTVERJTgotI2VuZGlmCi0KLSNkZWZpbmUgU1RESU4gMHgxMDAxCQkvKiBy
ZXR1cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICovCiBzdGF0aWMgYm9v
bCBwYXJzaW5nX3N0ZGluOwkvKiAtLXBhcnNlLXN0ZGluIHVzZWQgKi8KIAorLyogRm9yIGxv
bmcgb3B0aW9ucyB0aGF0IGhhdmUgbm8gZXF1aXZhbGVudCBzaG9ydCBvcHRpb24sIHVzZSBh
CisgICBub24tY2hhcmFjdGVyIGFzIGEgcHNldWRvIHNob3J0IG9wdGlvbiwgc3RhcnRpbmcg
d2l0aCBDSEFSX01BWCArIDEuICAqLworZW51bQorICB7CisgICAgQ1RBR1NfT1BUSU9OID0g
Q0hBUl9NQVggKyAxLAorICAgIFNURElOX09QVElPTgorICB9OworCiBzdGF0aWMgcmVnZXhw
ICpwX2hlYWQ7CQkvKiBsaXN0IG9mIGFsbCByZWdleHBzICovCiBzdGF0aWMgYm9vbCBuZWVk
X2ZpbGVidWY7CS8qIHNvbWUgcmVnZXhlcyBhcmUgbXVsdGktbGluZSAqLwogCkBAIC00OTks
NiArNDkxLDcgQEAgI2RlZmluZSBTVERJTiAweDEwMDEJCS8qIHJldHVybmVkIGJ5IGdldG9w
dF9sb25nIG9uIC0tcGFyc2Utc3RkaW4gKi8KICAgeyAiYXBwZW5kIiwgICAgICAgICAgICAg
bm9fYXJndW1lbnQsICAgICAgIE5VTEwsICAgICAgICAgICAgICAgJ2EnICAgfSwKICAgeyAi
cGFja2FnZXMtb25seSIsICAgICAgbm9fYXJndW1lbnQsICAgICAgICZwYWNrYWdlc19vbmx5
LCAgICAgMSAgICAgfSwKICAgeyAiYysrIiwgICAgICAgICAgICAgICAgbm9fYXJndW1lbnQs
ICAgICAgIE5VTEwsICAgICAgICAgICAgICAgJ0MnICAgfSwKKyAgeyAiY3RhZ3MiLCAgICAg
ICAgICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsICAgICAgICBDVEFHU19PUFRJT04g
fSwKICAgeyAiZGVidWciLCAgICAgICAgICAgICAgbm9fYXJndW1lbnQsICAgICAgICZkZWJ1
ZywgICAgICAgICAgICAgMSAgICAgfSwKICAgeyAiZGVjbGFyYXRpb25zIiwgICAgICAgbm9f
YXJndW1lbnQsICAgICAgICZkZWNsYXJhdGlvbnMsICAgICAgMSAgICAgfSwKICAgeyAibm8t
bGluZS1kaXJlY3RpdmUiLCAgbm9fYXJndW1lbnQsICAgICAgICZub19saW5lX2RpcmVjdGl2
ZSwgMSAgICAgfSwKQEAgLTUxNCwxMCArNTA3LDEwIEBAICNkZWZpbmUgU1RESU4gMHgxMDAx
CQkvKiByZXR1cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICovCiAgIHsg
InJlZ2V4IiwgICAgICAgICAgICAgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAgICAgICAg
ICAgICAgICdyJyAgIH0sCiAgIHsgIm5vLXJlZ2V4IiwgICAgICAgICAgIG5vX2FyZ3VtZW50
LCAgICAgICBOVUxMLCAgICAgICAgICAgICAgICdSJyAgIH0sCiAgIHsgImlnbm9yZS1jYXNl
LXJlZ2V4IiwgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAgICAgICAgICAgICAgICdjJyAg
IH0sCi0gIHsgInBhcnNlLXN0ZGluIiwgICAgICAgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxM
LCAgICAgICAgICAgICAgIFNURElOIH0sCisgIHsgInBhcnNlLXN0ZGluIiwgICAgICAgIHJl
cXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAgICAgICAgU1RESU5fT1BUSU9OIH0sCiAgIHsgInZl
cnNpb24iLCAgICAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAgICAgICAgICAg
ICAgICdWJyAgIH0sCiAKLSNpZiBDVEFHUyAvKiBDdGFncyBvcHRpb25zICovCisgIC8qIGN0
YWdzIG9wdGlvbnMgKi8KICAgeyAiYmFja3dhcmQtc2VhcmNoIiwgICAgbm9fYXJndW1lbnQs
ICAgICAgIE5VTEwsICAgICAgICAgICAgICAgJ0InICAgfSwKICAgeyAiY3hyZWYiLCAgICAg
ICAgICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsICAgICAgICAgICAgICAgJ3gnICAg
fSwKICAgeyAiZGVmaW5lcyIsICAgICAgICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEws
ICAgICAgICAgICAgICAgJ2QnICAgfSwKQEAgLTUyOCw3ICs1MjEsNyBAQCAjZGVmaW5lIFNU
RElOIDB4MTAwMQkJLyogcmV0dXJuZWQgYnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRp
biAqLwogICB7ICJ2Z3JpbmQiLCAgICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVM
TCwgICAgICAgICAgICAgICAndicgICB9LAogICB7ICJuby13YXJuIiwgICAgICAgICAgICBu
b19hcmd1bWVudCwgICAgICAgTlVMTCwgICAgICAgICAgICAgICAndycgICB9LAogCi0jZWxz
ZSAvKiBFdGFncyBvcHRpb25zICovCisgIC8qIGV0YWdzIG9wdGlvbnMgKi8KICAgeyAibm8t
ZGVmaW5lcyIsICAgICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsICAgICAgICAgICAg
ICAgJ0QnICAgfSwKICAgeyAibm8tZ2xvYmFscyIsICAgICAgICAgbm9fYXJndW1lbnQsICAg
ICAgICZnbG9iYWxzLCAgICAgICAgICAgMCAgICAgfSwKICAgeyAiaW5jbHVkZSIsICAgICAg
ICAgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICAgICAgICAgICAgICAgJ2knICAgfSwK
QEAgLTUzNiw3ICs1MjksNyBAQCAjZGVmaW5lIFNURElOIDB4MTAwMQkJLyogcmV0dXJuZWQg
YnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAqLwogICB7ICJmYWxsYmFjay1sYW5n
IiwgICAgICBub19hcmd1bWVudCwgICAgICAgJmZhbGxiYWNrX2xhbmcsICAgICAxICAgICB9
LAogICB7ICJuby1lbXB0eS1maWxlLWVudHJpZXMiLCBub19hcmd1bWVudCwgICAgJmVtcHR5
X2ZpbGVzLCAgICAgICAwICAgICB9LAogICB7ICJlbXB0eS1maWxlLWVudHJpZXMiLCBub19h
cmd1bWVudCwgICAgICAgJmVtcHR5X2ZpbGVzLCAgICAgICAxICAgICB9LAotI2VuZGlmCisK
ICAgeyBOVUxMIH0KIH07CiAKQEAgLTU5OCwxNSArNTkxLDE3IEBAICNkZWZpbmUgU1RESU4g
MHgxMDAxCQkvKiByZXR1cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICov
CiAgICBUaGF0IGlzIHdoeSBkZWZhdWx0X0NfZW50cmllcyBpcyBjYWxsZWQgZm9yIHRoZXNl
LiAqLwogc3RhdGljIGNvbnN0IGNoYXIgKmRlZmF1bHRfQ19zdWZmaXhlcyBbXSA9CiAgIHsg
ImMiLCAiaCIsIE5VTEwgfTsKLSNpZiBDVEFHUwkJCQkvKiBDIGhlbHAgZm9yIEN0YWdzICov
Ci1zdGF0aWMgY29uc3QgY2hhciBkZWZhdWx0X0NfaGVscCBbXSA9CisKKy8qIEMgaGVscCBm
b3IgY3RhZ3MgKi8KK3N0YXRpYyBjb25zdCBjaGFyIGN0YWdzX2RlZmF1bHRfQ19oZWxwW10g
PQogIkluIEMgY29kZSwgYW55IEMgZnVuY3Rpb24gaXMgYSB0YWcuICBVc2UgLXQgdG8gdGFn
IHR5cGVkZWZzLlxuXAogVXNlIC1UIHRvIHRhZyBkZWZpbml0aW9ucyBvZiAnc3RydWN0Jywg
J3VuaW9uJyBhbmQgJ2VudW0nLlxuXAogVXNlIC1kIHRvIHRhZyAnI2RlZmluZScgbWFjcm8g
ZGVmaW5pdGlvbnMgYW5kICdlbnVtJyBjb25zdGFudHMuXG5cCiBVc2UgLS1nbG9iYWxzIHRv
IHRhZyBnbG9iYWwgdmFyaWFibGVzLlxuXAogWW91IGNhbiB0YWcgZnVuY3Rpb24gZGVjbGFy
YXRpb25zIGFuZCBleHRlcm5hbCB2YXJpYWJsZXMgYnlcblwKIHVzaW5nICctLWRlY2xhcmF0
aW9ucycsIGFuZCBzdHJ1Y3QgbWVtYmVycyBieSB1c2luZyAnLS1tZW1iZXJzJy4iOwotI2Vs
c2UJCQkJCS8qIEMgaGVscCBmb3IgRXRhZ3MgKi8KKworLyogQyBoZWxwIGZvciBldGFncyAq
Lwogc3RhdGljIGNvbnN0IGNoYXIgZGVmYXVsdF9DX2hlbHAgW10gPQogIkluIEMgY29kZSwg
YW55IEMgZnVuY3Rpb24gb3IgdHlwZWRlZiBpcyBhIHRhZywgYW5kIHNvIGFyZVxuXAogZGVm
aW5pdGlvbnMgb2YgJ3N0cnVjdCcsICd1bmlvbicgYW5kICdlbnVtJy4gICcjZGVmaW5lJyBt
YWNyb1xuXApAQCAtNjE3LDcgKzYxMiw2IEBAICNkZWZpbmUgU1RESU4gMHgxMDAxCQkvKiBy
ZXR1cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICovCiAnLS1uby1tZW1i
ZXJzJyBjYW4gbWFrZSB0aGUgdGFncyB0YWJsZSBmaWxlIG11Y2ggc21hbGxlci5cblwKIFlv
dSBjYW4gdGFnIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBhbmQgZXh0ZXJuYWwgdmFyaWFibGVz
IGJ5XG5cCiB1c2luZyAnLS1kZWNsYXJhdGlvbnMnLiI7Ci0jZW5kaWYJLyogQyBoZWxwIGZv
ciBDdGFncyBhbmQgRXRhZ3MgKi8KIAogc3RhdGljIGNvbnN0IGNoYXIgKkNwbHVzcGx1c19z
dWZmaXhlcyBbXSA9CiAgIHsgIkMiLCAiYysrIiwgImNjIiwgImNwcCIsICJjeHgiLCAiSCIs
ICJoKysiLCAiaGgiLCAiaHBwIiwgImh4eCIsCkBAIC04NjIsNiArODU2LDcgQEAgI2RlZmlu
ZSBTVERJTiAweDEwMDEJCS8qIHJldHVybmVkIGJ5IGdldG9wdF9sb25nIG9uIC0tcGFyc2Ut
c3RkaW4gKi8KIHsKICAgeyAiYWRhIiwgICAgICAgQWRhX2hlbHAsICAgICAgIEFkYV9mdW5j
cywgICAgICAgICBBZGFfc3VmZml4ZXMgICAgICAgfSwKICAgeyAiYXNtIiwgICAgICAgQXNt
X2hlbHAsICAgICAgIEFzbV9sYWJlbHMsICAgICAgICBBc21fc3VmZml4ZXMgICAgICAgfSwK
KyNkZWZpbmUgQ19MQU5HX05BTUVTX0lOREVYIDIKICAgeyAiYyIsICAgICAgICAgZGVmYXVs
dF9DX2hlbHAsIGRlZmF1bHRfQ19lbnRyaWVzLCBkZWZhdWx0X0Nfc3VmZml4ZXMgfSwKICAg
eyAiYysrIiwgICAgICAgQ3BsdXNwbHVzX2hlbHAsIENwbHVzcGx1c19lbnRyaWVzLCBDcGx1
c3BsdXNfc3VmZml4ZXMgfSwKICAgeyAiYyoiLCAgICAgICAgbm9fbGFuZ19oZWxwLCAgIENz
dGFyX2VudHJpZXMsICAgICBDc3Rhcl9zdWZmaXhlcyAgICAgfSwKQEAgLTkzNCwxNSArOTI5
LDEwIEBAIHByaW50X2xhbmd1YWdlX25hbWVzICh2b2lkKQogZXRhZ3MgLS1oZWxwIC0tbGFu
Zz1hZGEuIik7CiB9CiAKLSNpZiBDVEFHUwotIyBkZWZpbmUgUFJPR1JBTV9OQU1FICJjdGFn
cyIKLSNlbHNlCi0jIGRlZmluZSBQUk9HUkFNX05BTUUgImV0YWdzIgotI2VuZGlmCiBzdGF0
aWMgX05vcmV0dXJuIHZvaWQKIHByaW50X3ZlcnNpb24gKHZvaWQpCiB7Ci0gIGZwdXRzICgo
UFJPR1JBTV9OQU1FICIgKCIgUEFDS0FHRV9OQU1FICIgIiBQQUNLQUdFX1ZFUlNJT04gIilc
biIKKyAgZnB1dHMgKCgiZXRhZ3MgKCIgUEFDS0FHRV9OQU1FICIgIiBQQUNLQUdFX1ZFUlNJ
T04gIilcbiIKIAkgIENPUFlSSUdIVCAiXG4iCiAJICAiVGhpcyBwcm9ncmFtIGlzIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBpbiBFVEFHUy5SRUFETUVcbiIpLAogCSBzdGRvdXQp
OwpAQCAtOTg0LDcgKzk3NCw3IEBAIHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZmZXIp
CiAgIHB1dHMgKCItLXBhY2thZ2VzLW9ubHlcblwKICAgICAgICAgRm9yIEFkYSBmaWxlcywg
b25seSBnZW5lcmF0ZSB0YWdzIGZvciBwYWNrYWdlcy4iKTsKIAotICBpZiAoQ1RBR1MpCisg
IGlmIChjdGFncykKICAgICBwdXRzICgiLUIsIC0tYmFja3dhcmQtc2VhcmNoXG5cCiAgICAg
ICAgIFdyaXRlIHRoZSBzZWFyY2ggY29tbWFuZHMgZm9yIHRoZSB0YWcgZW50cmllcyB1c2lu
ZyAnPycsIHRoZVxuXAogICAgICAgICBiYWNrd2FyZC1zZWFyY2ggY29tbWFuZCBpbnN0ZWFk
IG9mICcvJywgdGhlIGZvcndhcmQtc2VhcmNoIGNvbW1hbmQuIik7CkBAIC05OTcsOSArOTg3
LDEzIEBAIHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZmZXIpCiAgICAgICAgIFRyZWF0
IGZpbGVzIHdob3NlIG5hbWUgc3VmZml4IGRlZmF1bHRzIHRvIEMgbGFuZ3VhZ2UgYXMgQysr
IGZpbGVzLiIpOwogICAqLwogCisgIGlmIChQUklOVF9VTkRPQ1VNRU5URURfT1BUSU9OU19I
RUxQICYmICFjdGFncykKKyAgICBwdXRzICgiLS1jdGFnc1xuXAorCUltcGxlbWVudCBjdGFn
cyBiZWhhdmlvci4iKTsKKwogICBwdXRzICgiLS1kZWNsYXJhdGlvbnNcblwKIAlJbiBDIGFu
ZCBkZXJpdmVkIGxhbmd1YWdlcywgY3JlYXRlIHRhZ3MgZm9yIGZ1bmN0aW9uIGRlY2xhcmF0
aW9ucywiKTsKLSAgaWYgKENUQUdTKQorICBpZiAoY3RhZ3MpCiAgICAgcHV0cyAoIlx0YW5k
IGNyZWF0ZSB0YWdzIGZvciBleHRlcm4gdmFyaWFibGVzIGlmIC0tZ2xvYmFscyBpcyB1c2Vk
LiIpOwogICBlbHNlCiAgICAgcHV0cwpAQCAtMTAwOCw3ICsxMDAyLDcgQEAgcHJpbnRfaGVs
cCAoYXJndW1lbnQgKmFyZ2J1ZmZlcikKICAgcHV0cyAoIlx0SW4gTWVyY3VyeSwgdGFnIGJv
dGggZGVjbGFyYXRpb25zIHN0YXJ0aW5nIGEgbGluZSB3aXRoICc6LScgYW5kXG5cCiAgICAg
ICAgIGZpcnN0IHByZWRpY2F0ZXMgb3IgZnVuY3Rpb25zIGluIGNsYXVzZXMuIik7CiAKLSAg
aWYgKENUQUdTKQorICBpZiAoY3RhZ3MpCiAgICAgcHV0cyAoIi1kLCAtLWRlZmluZXNcblwK
ICAgICAgICAgQ3JlYXRlIHRhZyBlbnRyaWVzIGZvciBDICNkZWZpbmUgY29uc3RhbnRzIGFu
ZCBlbnVtIGNvbnN0YW50cywgdG9vLiIpOwogICBlbHNlCkBAIC0xMDE2LDcgKzEwMTAsNyBA
QCBwcmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVmZmVyKQogICAgICAgICBEb24ndCBjcmVh
dGUgdGFnIGVudHJpZXMgZm9yIEMgI2RlZmluZSBjb25zdGFudHMgYW5kIGVudW0gY29uc3Rh
bnRzLlxuXAogCVRoaXMgbWFrZXMgdGhlIHRhZ3MgZmlsZSBzbWFsbGVyLiIpOwogCi0gIGlm
ICghQ1RBR1MpCisgIGlmICghY3RhZ3MpCiAgICAgcHV0cyAoIi1pIEZJTEUsIC0taW5jbHVk
ZT1GSUxFXG5cCiAgICAgICAgIEluY2x1ZGUgYSBub3RlIGluIHRhZyBmaWxlIGluZGljYXRp
bmcgdGhhdCwgd2hlbiBzZWFyY2hpbmcgZm9yXG5cCiAgICAgICAgIGEgdGFnLCBvbmUgc2hv
dWxkIGFsc28gY29uc3VsdCB0aGUgdGFncyBmaWxlIEZJTEUgYWZ0ZXJcblwKQEAgLTEwMjYs
NyArMTAyMCw3IEBAIHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZmZXIpCiAgICAgICAg
IEZvcmNlIHRoZSBmb2xsb3dpbmcgZmlsZXMgdG8gYmUgY29uc2lkZXJlZCBhcyB3cml0dGVu
IGluIHRoZVxuXAogCW5hbWVkIGxhbmd1YWdlIHVwIHRvIHRoZSBuZXh0IC0tbGFuZ3VhZ2U9
TEFORyBvcHRpb24uIik7CiAKLSAgaWYgKENUQUdTKQorICBpZiAoY3RhZ3MpCiAgICAgcHV0
cyAoIi0tZ2xvYmFsc1xuXAogCUNyZWF0ZSB0YWcgZW50cmllcyBmb3IgZ2xvYmFsIHZhcmlh
YmxlcyBpbiBzb21lIGxhbmd1YWdlcy4iKTsKICAgZWxzZQpAQCAtMTAzNyw3ICsxMDMxLDcg
QEAgcHJpbnRfaGVscCAoYXJndW1lbnQgKmFyZ2J1ZmZlcikKICAgcHV0cyAoIi0tbm8tbGlu
ZS1kaXJlY3RpdmVcblwKICAgICAgICAgSWdub3JlICNsaW5lIHByZXByb2Nlc3NvciBkaXJl
Y3RpdmVzIGluIEMgYW5kIGRlcml2ZWQgbGFuZ3VhZ2VzLiIpOwogCi0gIGlmIChDVEFHUykK
KyAgaWYgKGN0YWdzKQogICAgIHB1dHMgKCItLW1lbWJlcnNcblwKIAlDcmVhdGUgdGFnIGVu
dHJpZXMgZm9yIG1lbWJlcnMgb2Ygc3RydWN0dXJlcyBpbiBzb21lIGxhbmd1YWdlcy4iKTsK
ICAgZWxzZQpAQCAtMTA0NSw3ICsxMDM5LDcgQEAgcHJpbnRfaGVscCAoYXJndW1lbnQgKmFy
Z2J1ZmZlcikKIAlEbyBub3QgY3JlYXRlIHRhZyBlbnRyaWVzIGZvciBtZW1iZXJzIG9mIHN0
cnVjdHVyZXNcblwKIAlpbiBzb21lIGxhbmd1YWdlcy4iKTsKIAotICBpZiAoIUNUQUdTKQor
ICBpZiAoIWN0YWdzKQogICAgIHsKICAgICAgIHB1dHMgKCItLWZhbGxiYWNrLWxhbmdcblwK
IAlJZiBhIGZpbGUncyBsYW5ndWFnZSBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCwgdHJ5IHRv
IHBhcnNlXG5cCkBAIC0xMDkyLDcgKzEwODYsNyBAQCBwcmludF9oZWxwIChhcmd1bWVudCAq
YXJnYnVmZmVyKQogICBwdXRzICgiLS1wYXJzZS1zdGRpbj1OQU1FXG5cCiAgICAgICAgIFJl
YWQgZnJvbSBzdGFuZGFyZCBpbnB1dCBhbmQgcmVjb3JkIHRhZ3MgYXMgYmVsb25naW5nIHRv
IGZpbGUgTkFNRS4iKTsKIAotICBpZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICB7CiAg
ICAgICBwdXRzICgiLXQsIC0tdHlwZWRlZnNcblwKICAgICAgICAgR2VuZXJhdGUgdGFnIGVu
dHJpZXMgZm9yIEMgYW5kIEFkYSB0eXBlZGVmcy4iKTsKQEAgLTExMDEsNyArMTA5NSw3IEBA
IHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZmZXIpCiAgICAgICAgIGFuZCBDKysgbWVt
YmVyIGZ1bmN0aW9ucy4iKTsKICAgICB9CiAKLSAgaWYgKENUQUdTKQorICBpZiAoY3RhZ3Mp
CiAgICAgcHV0cyAoIi11LCAtLXVwZGF0ZVxuXAogICAgICAgICBVcGRhdGUgdGhlIHRhZyBl
bnRyaWVzIGZvciB0aGUgZ2l2ZW4gZmlsZXMsIGxlYXZpbmcgdGFnXG5cCiAgICAgICAgIGVu
dHJpZXMgZm9yIG90aGVyIGZpbGVzIGluIHBsYWNlLiAgQ3VycmVudGx5LCB0aGlzIGlzXG5c
CkBAIC0xMTEwLDcgKzExMDQsNyBAQCBwcmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVmZmVy
KQogICAgICAgICB0YWdzIGZpbGUuICBJdCBpcyBvZnRlbiBmYXN0ZXIgdG8gc2ltcGx5IHJl
YnVpbGQgdGhlIGVudGlyZVxuXAogICAgICAgICB0YWcgZmlsZSB0aGFuIHRvIHVzZSB0aGlz
LiIpOwogCi0gIGlmIChDVEFHUykKKyAgaWYgKGN0YWdzKQogICAgIHsKICAgICAgIHB1dHMg
KCItdiwgLS12Z3JpbmRcblwKICAgICAgICAgUHJpbnQgb24gdGhlIHN0YW5kYXJkIG91dHB1
dCBhbiBpbmRleCBvZiBpdGVtcyBpbnRlbmRlZCBmb3JcblwKQEAgLTExNjAsNyArMTE1NCw2
IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgbGluZWJ1ZmZlciBmaWxlbmFt
ZV9sYjsKICAgYm9vbCBoZWxwX2Fza2VkID0gZmFsc2U7CiAgIHB0cmRpZmZfdCBsZW47Ci0g
IGNoYXIgKm9wdHN0cmluZzsKICAgaW50IG9wdDsKIAogICBwcm9nbmFtZSA9IGFyZ3ZbMF07
CkBAIC0xMTkyLDkgKzExODUsNyBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAK
ICAgLyogV2hlbiB0aGUgb3B0c3RyaW5nIGJlZ2lucyB3aXRoIGEgJy0nIGdldG9wdF9sb25n
IGRvZXMgbm90IHJlYXJyYW5nZSB0aGUKICAgICAgbm9uLW9wdGlvbnMgYXJndW1lbnRzIHRv
IGJlIGF0IHRoZSBlbmQsIGJ1dCBsZWF2ZXMgdGhlbSBhbG9uZS4gKi8KLSAgb3B0c3RyaW5n
ID0gY29uY2F0ICgiLWFjOkNmOklsOm86UXI6UlNWaEgiLAotCQkgICAgICAoQ1RBR1MpID8g
IkJ4ZHRUdXZ3IiA6ICJEaToiLAotCQkgICAgICAiIik7CisgIHN0YXRpYyBjaGFyIGNvbnN0
IG9wdHN0cmluZ1tdID0gIi1hQmM6Q2REZjpoSGk6SWw6bzpRcjpSU3RUdXZWd3giOwogCiAg
IHdoaWxlICgob3B0ID0gZ2V0b3B0X2xvbmcgKGFyZ2MsIGFyZ3YsIG9wdHN0cmluZywgbG9u
Z29wdHMsIE5VTEwpKSAhPSBFT0YpCiAgICAgc3dpdGNoIChvcHQpCkBAIC0xMjE1LDcgKzEy
MDYsMTMgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCSsrZmlsZV9jb3VudDsK
IAlicmVhazsKIAotICAgICAgY2FzZSBTVERJTjoKKyAgICAgIGNhc2UgQ1RBR1NfT1BUSU9O
OgorCS8qIE9wZXJhdGUgYXMgY3RhZ3MsIG5vdCBldGFncy4gICovCisJY3RhZ3MgPSB0cnVl
OworCWxhbmdfbmFtZXNbQ19MQU5HX05BTUVTX0lOREVYXS5oZWxwID0gY3RhZ3NfZGVmYXVs
dF9DX2hlbHA7CisJYnJlYWs7CisKKyAgICAgIGNhc2UgU1RESU5fT1BUSU9OOgogCS8qIFBh
cnNlIHN0YW5kYXJkIGlucHV0LiAgSWRlYSBieSBWaXZlayA8dml2ZWtAZXRsYS5vcmc+LiAq
LwogCWFyZ2J1ZmZlcltjdXJyZW50X2FyZ10uYXJnX3R5cGUgPSBhdF9zdGRpbjsKIAlhcmdi
dWZmZXJbY3VycmVudF9hcmddLndoYXQgICAgID0gb3B0YXJnOwpAQCAtMTMyNSw3ICsxMzIy
LDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgIH0KIAogICBpZiAodGFn
ZmlsZSA9PSBOVUxMKQotICAgIHRhZ2ZpbGUgPSBzYXZlc3RyIChDVEFHUyA/ICJ0YWdzIiA6
ICJUQUdTIik7CisgICAgdGFnZmlsZSA9IHNhdmVzdHIgKGN0YWdzID8gInRhZ3MiIDogIlRB
R1MiKTsKICAgY3dkID0gZXRhZ3NfZ2V0Y3dkICgpOwkvKiB0aGUgY3VycmVudCB3b3JraW5n
IGRpcmVjdG9yeSAqLwogICBpZiAoY3dkW3N0cmxlbiAoY3dkKSAtIDFdICE9ICcvJykKICAg
ICB7CkBAIC0xMzQ5LDcgKzEzNDYsNyBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3Yp
CiAgIGxpbmVidWZmZXJfaW5pdCAoJmZpbGVidWYpOwogICBsaW5lYnVmZmVyX2luaXQgKCZ0
b2tlbl9uYW1lKTsKIAotICBpZiAoIUNUQUdTKQorICBpZiAoIWN0YWdzKQogICAgIHsKICAg
ICAgIGlmIChzdHJlcSAodGFnZmlsZSwgIi0iKSkKIAl7CkBAIC0xNDA3LDEzICsxNDA0LDEz
IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgZnJlZSAoZmlsZWJ1Zi5idWZm
ZXIpOwogICBmcmVlICh0b2tlbl9uYW1lLmJ1ZmZlcik7CiAKLSAgaWYgKCFDVEFHUyB8fCBj
eHJlZl9zdHlsZSkKKyAgaWYgKCFjdGFncyB8fCBjeHJlZl9zdHlsZSkKICAgICB7CiAgICAg
ICAvKiBXcml0ZSB0aGUgcmVtYWluaW5nIHRhZ3MgdG8gdGFnZiAoRVRBR1MpIG9yIHN0ZG91
dCAoQ1hSRUYpLiAqLwogICAgICAgcHV0X2VudHJpZXMgKG5vZGVoZWFkKTsKICAgICAgIGZy
ZWVfdHJlZSAobm9kZWhlYWQpOwogICAgICAgbm9kZWhlYWQgPSBOVUxMOwotICAgICAgaWYg
KCFDVEFHUykKKyAgICAgIGlmICghY3RhZ3MpCiAJewogCSAgZmRlc2MgKmZkcDsKIApAQCAt
MTQ2Miw3ICsxNDU5LDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICBpZiAo
ZmNsb3NlICh0YWdmKSA9PSBFT0YpCiAgICAgcGZhdGFsICh0YWdmaWxlKTsKIAotICBpZiAo
Q1RBR1MpCisgIGlmIChjdGFncykKICAgICBpZiAoYXBwZW5kX3RvX3RhZ2ZpbGUgfHwgdXBk
YXRlKQogICAgICAgewogCS8qIE1heWJlIHRoZXNlIHNob3VsZCBiZSB1c2VkOgpAQCAtMTg2
MCw3ICsxODU3LDcgQEAgcHJvY2Vzc19maWxlIChGSUxFICpmaCwgY2hhciAqZm4sIGxhbmd1
YWdlICpsYW5nKQogICAvKiBJZiBub3QgQ3RhZ3MsIGFuZCBpZiB0aGlzIGlzIG5vdCBtZXRh
c291cmNlIGFuZCBpZiBpdCBjb250YWluZWQgbm8gI2xpbmUKICAgICAgZGlyZWN0aXZlcywg
d2UgY2FuIHdyaXRlIHRoZSB0YWdzIGFuZCBmcmVlIGFsbCBub2RlcyBwb2ludGluZyB0bwog
ICAgICBjdXJmZHAuICovCi0gIGlmICghQ1RBR1MKKyAgaWYgKCFjdGFncwogICAgICAgJiYg
Y3VyZmRwLT51c2VjaGFybm8JLyogbm8gI2xpbmUgZGlyZWN0aXZlcyBpbiB0aGlzIGZpbGUg
Ki8KICAgICAgICYmICFjdXJmZHAtPmxhbmctPm1ldGFzb3VyY2UpCiAgICAgewpAQCAtMjA5
Miw3ICsyMDg5LDcgQEAgbWFrZV90YWcgKGNvbnN0IGNoYXIgKm5hbWUsIAkvKiB0YWcgbmFt
ZSwgb3IgTlVMTCBpZiB1bm5hbWVkICovCiAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXMgb24g
JXM6JSJQUklkTUFYIjogJXNcbiIsCiAJICAgICBuYW1lZCA/IG5hbWUgOiAiKHVubmFtZWQp
IiwgY3VyZmRwLT50YWdnZWRmbmFtZSwgbG5vLCBsaW5lc3RhcnQpOwogCi0gIGlmICghQ1RB
R1MgJiYgbmFtZWQpCQkvKiBtYXliZSBzZXQgbmFtZWQgdG8gZmFsc2UgKi8KKyAgaWYgKCFj
dGFncyAmJiBuYW1lZCkJCS8qIG1heWJlIHNldCBuYW1lZCB0byBmYWxzZSAqLwogICAgIC8q
IExldCdzIHRyeSB0byBtYWtlIGFuIGltcGxpY2l0IHRhZyBuYW1lLCB0aGF0IGlzLCBjcmVh
dGUgYW4gdW5uYW1lZCB0YWcKICAgICAgICBzdWNoIHRoYXQgZXRhZ3MuZWwgY2FuIGd1ZXNz
IGEgbmFtZSBmcm9tIGl0LiAqLwogICAgIHsKQEAgLTIxMzMsMTcgKzIxMzAsMTcgQEAgcGZu
b3RlIChjaGFyICpuYW1lLAkJLyogdGFnIG5hbWUsIG9yIE5VTEwgaWYgdW5uYW1lZCAqLwog
ewogICByZWdpc3RlciBub2RlICpucDsKIAotICBpZiAoKENUQUdTICYmIG5hbWUgPT0gTlVM
TCkKKyAgaWYgKChjdGFncyAmJiBuYW1lID09IE5VTEwpCiAgICAgICAvKiBXZSB1c2VkIHRv
IGhhdmUgYW4gYXNzZXJ0aW9uIGhlcmUgZm9yIHRoZSBjYXNlIGJlbG93LCBidXQgaWYgd2Ug
aGl0CiAJIHRoYXQgY2FzZSwgaXQganVzdCBtZWFucyBvdXIgcGFyc2VyIGdvdCBjb25mdXNl
ZCwgYW5kIHRoZXJlJ3Mgbm90aGluZwogCSB0byBkbyBhYm91dCBzdWNoIGVtcHR5ICJ0YWdz
Ii4gICovCi0gICAgICB8fCAoIUNUQUdTICYmIG5hbWUgJiYgbmFtZVswXSA9PSAnXDAnKSkK
KyAgICAgIHx8ICghY3RhZ3MgJiYgbmFtZSAmJiBuYW1lWzBdID09ICdcMCcpKQogICAgIHJl
dHVybjsKIAogICBucCA9IHhtYWxsb2MgKHNpemVvZiAqbnApOwogCiAgIC8qIElmIGN0YWdz
IG1vZGUsIGNoYW5nZSBuYW1lICJtYWluIiB0byBNPHRoaXNmaWxlbmFtZT4uICovCi0gIGlm
IChDVEFHUyAmJiAhY3hyZWZfc3R5bGUgJiYgc3RyZXEgKG5hbWUsICJtYWluIikpCisgIGlm
IChjdGFncyAmJiAhY3hyZWZfc3R5bGUgJiYgc3RyZXEgKG5hbWUsICJtYWluIikpCiAgICAg
ewogICAgICAgY2hhciAqZnAgPSBzdHJyY2hyIChjdXJmZHAtPnRhZ2dlZGZuYW1lLCAnLycp
OwogICAgICAgbnAtPm5hbWUgPSBjb25jYXQgKCJNIiwgZnAgPT0gTlVMTCA/IGN1cmZkcC0+
dGFnZ2VkZm5hbWUgOiBmcCArIDEsICIiKTsKQEAgLTIxNjgsNyArMjE2NSw3IEBAIHBmbm90
ZSAoY2hhciAqbmFtZSwJCS8qIHRhZyBuYW1lLCBvciBOVUxMIGlmIHVubmFtZWQgKi8KICAg
ZWxzZQogICAgIG5wLT5jbm8gPSBpbnZhbGlkY2hhcm5vOwogICBucC0+bGVmdCA9IG5wLT5y
aWdodCA9IE5VTEw7Ci0gIGlmIChDVEFHUyAmJiAhY3hyZWZfc3R5bGUpCisgIGlmIChjdGFn
cyAmJiAhY3hyZWZfc3R5bGUpCiAgICAgewogICAgICAgaWYgKHN0cm5sZW4gKGxpbmVzdGFy
dCwgNTApIDwgNTApCiAJbnAtPnJlZ2V4ID0gY29uY2F0IChsaW5lc3RhcnQsICIkIiwgIiIp
OwpAQCAtMjI5NSw3ICsyMjkyLDcgQEAgYWRkX25vZGUgKG5vZGUgKm5wLCBub2RlICoqY3Vy
X25vZGVfcCkKICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgaWYgKCFDVEFHUykKKyAgaWYg
KCFjdGFncykKICAgICAvKiBFdGFncyBNb2RlICovCiAgICAgewogICAgICAgLyogRm9yIGVh
Y2ggZmlsZSBuYW1lLCB0YWdzIGFyZSBpbiBhIGxpbmtlZCBzdWJsaXN0IG9uIHRoZSByaWdo
dApAQCAtMjM5NCw3ICsyMzkxLDcgQEAgaW52YWxpZGF0ZV9ub2RlcyAoZmRlc2MgKmJhZGZk
cCwgbm9kZSAqKm5wcCkKICAgbm9kZSAqbnAgPSAqbnBwOwogICBzdGtlbnRyeSAqc3RhY2sg
PSBOVUxMOwogCi0gIGlmIChDVEFHUykKKyAgaWYgKGN0YWdzKQogICAgIHsKICAgICAgIHdo
aWxlIChucCkKIAl7CkBAIC0yNTA0LDcgKzI1MDEsNyBAQCBwdXRfZW50cnkgKG5vZGUgKm5w
KQogICAvKiBPdXRwdXQgdGhpcyBlbnRyeSAqLwogICBpZiAobnAtPnZhbGlkKQogICAgIHsK
LSAgICAgIGlmICghQ1RBR1MpCisgICAgICBpZiAoIWN0YWdzKQogCXsKIAkgIC8qIEV0YWdz
IG1vZGUgKi8KIAkgIGlmIChmZHAgIT0gbnAtPmZkcCkKQEAgLTI1NzYsNyArMjU3Myw3IEBA
IHB1dF9lbnRyaWVzIChub2RlICpucCkKICAgaWYgKG5wID09IE5VTEwpCiAgICAgcmV0dXJu
OwogCi0gIGlmIChDVEFHUykKKyAgaWYgKGN0YWdzKQogICAgIHsKICAgICAgIHdoaWxlIChu
cCkKIAl7CmRpZmYgLS1naXQgYS9udC9SRUFETUUgYi9udC9SRUFETUUKaW5kZXggYTkwOWFk
YTFjODcuLjE0ZmY1OWRlODdjIDEwMDY0NAotLS0gYS9udC9SRUFETUUKKysrIGIvbnQvUkVB
RE1FCkBAIC00NCw3ICs0NCw3IEBACiAgICsgYWRkcG0uZXhlIC0gQSBiYXNpYyBpbnN0YWxs
ZXIgdGhhdCBjcmVhdGVzIFN0YXJ0IE1lbnUgaWNvbnMgZm9yIEVtYWNzLgogICAgIFJ1bm5p
bmcgdGhpcyBpcyBvcHRpb25hbC4KIAotICArIGN0YWdzLmV4ZSwgZXRhZ3MuZXhlIC0gVG9v
bHMgZm9yIGdlbmVyYXRpbmcgdGFnIGZpbGVzLiAgU2VlIHRoZQorICArIGV0YWdzLmV4ZSAt
IFRvb2wgZm9yIGdlbmVyYXRpbmcgdGFnIGZpbGVzLiAgU2VlIHRoZQogICAgIGBUYWdzJyBu
b2RlIG9mIHRoZSBFbWFjcyBtYW51YWwuCiAKICAgKyBlYnJvd3NlLmV4ZSAtIEEgdG9vbCBm
b3IgZ2VuZXJhdGluZyBDKysgYnJvd3NlIGluZm9ybWF0aW9uLiAgU2VlIHRoZQpkaWZmIC0t
Z2l0IGEvbnQvUkVBRE1FLlczMiBiL250L1JFQURNRS5XMzIKaW5kZXggMjVjYTIwYmM3YmYu
LmZjNDE1ZDY3NzY5IDEwMDY0NAotLS0gYS9udC9SRUFETUUuVzMyCisrKyBiL250L1JFQURN
RS5XMzIKQEAgLTEwNCw3ICsxMDQsNyBAQCBTZWUgdGhlIGVuZCBvZiB0aGUgZmlsZSBmb3Ig
bGljZW5zZSBjb25kaXRpb25zLgogICArIGFkZHBtLmV4ZSAtIEEgYmFzaWMgaW5zdGFsbGVy
IHRoYXQgYWRkcyBFbWFjcyB0byAiU3RhcnQiIG1lbnVzIGFuZAogICAgIGFkZHMgRW1hY3Mt
cmVsYXRlZCBlbnRyaWVzIHRvIHRoZSBXaW5kb3dzIFJlZ2lzdHJ5LgogCi0gICsgY3RhZ3Mu
ZXhlLCBldGFncy5leGUgLSBUb29scyBmb3IgZ2VuZXJhdGluZyB0YWcgZmlsZXMuICBTZWUg
dGhlCisgICsgZXRhZ3MuZXhlIC0gVG9vbCBmb3IgZ2VuZXJhdGluZyB0YWcgZmlsZXMuICBT
ZWUgdGhlCiAgICAgYFRhZ3MnIG5vZGUgb2YgdGhlIEVtYWNzIG1hbnVhbC4KIAogICArIGVi
cm93c2UuZXhlIC0gQSB0b29sIGZvciBnZW5lcmF0aW5nIEMrKyBicm93c2UgaW5mb3JtYXRp
b24uICBTZWUgdGhlCmRpZmYgLS1naXQgYS9zcmMvY2FsbHByb2MuYyBiL3NyYy9jYWxscHJv
Yy5jCmluZGV4IDMzYjBmZWFmMjY2Li43MDU5YTJiYWM2ZiAxMDA2NDQKLS0tIGEvc3JjL2Nh
bGxwcm9jLmMKKysrIGIvc3JjL2NhbGxwcm9jLmMKQEAgLTIxNjcsMTQgKzIxNjcsMTAgQEAg
c3ltc19vZl9jYWxscHJvYyAodm9pZCkKICAgVnByb2Nlc3NfZW52aXJvbm1lbnQgPSBRbmls
OwogCiAgIERFRlZBUl9MSVNQICgiY3RhZ3MtcHJvZ3JhbS1uYW1lIiwgVmN0YWdzX3Byb2dy
YW1fbmFtZSwKLSAgICBkb2M6IC8qIE5hbWUgb2YgdGhlIGBjdGFncycgcHJvZ3JhbSBkaXN0
cmlidXRlZCB3aXRoIEVtYWNzLgorICAgIGRvYzogLyogTmFtZSBvZiB0aGUgYGN0YWdzJyBw
cm9ncmFtLgogVXNlIHRoaXMgaW5zdGVhZCBvZiBjYWxsaW5nIGBjdGFncycgZGlyZWN0bHks
IGFzIGBjdGFncycgbWF5IGhhdmUgYmVlbgogcmVuYW1lZCB0byBjb21wbHkgd2l0aCBleGVj
dXRhYmxlIG5hbWluZyByZXN0cmljdGlvbnMgb24gdGhlIHN5c3RlbS4gICovKTsKLSNpZiAh
ZGVmaW5lZCBIQVZFX0FORFJPSUQgfHwgZGVmaW5lZCBBTkRST0lEX1NUVUJJRlkKICAgVmN0
YWdzX3Byb2dyYW1fbmFtZSA9IGJ1aWxkX3N0cmluZyAoImN0YWdzIik7Ci0jZWxzZQotICBW
Y3RhZ3NfcHJvZ3JhbV9uYW1lID0gYnVpbGRfc3RyaW5nICgibGliY3RhZ3Muc28iKTsKLSNl
bmRpZgogCiAgIERFRlZBUl9MSVNQICgiZXRhZ3MtcHJvZ3JhbS1uYW1lIiwgVmV0YWdzX3By
b2dyYW1fbmFtZSwKICAgICBkb2M6IC8qIE5hbWUgb2YgdGhlIGBldGFncycgcHJvZ3JhbSBk
aXN0cmlidXRlZCB3aXRoIEVtYWNzLgotLSAKMi40NS4yCgo=

--------------9qiQVdaWm68jOl0btT32niHF--




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

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


Received: (at 76322) by debbugs.gnu.org; 11 Mar 2025 12:46:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 11 08:46:23 2025
Received: from localhost ([127.0.0.1]:42121 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tryzz-0005ZN-N9
	for submit <at> debbugs.gnu.org; Tue, 11 Mar 2025 08:46:23 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:46594)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tryzq-0005Yz-RA
 for 76322 <at> debbugs.gnu.org; Tue, 11 Mar 2025 08:46:11 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tryzk-0005w8-Dp; Tue, 11 Mar 2025 08:46:04 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=x1QOWOXIFTb4qSkN3nj0M3UMqdxlDcrS89yuNQwp0ZY=; b=YNwHgd5P63IW
 qOmb8mgdYR3hqrdWRAd1Vcmuk5XRwCaPgbGexidjC3ezyh5qyaQcklNpHQ2MNFgPWVkzS4T/T6HUj
 uO4DsU4mjN7ZlJUNwLGHhVwoOgHaIgBMYJWhX8DeNjFq5vVWvLAwJ7gTYnBHEB5BB9EOcFut1EsWg
 t9NJJnvu5cPgLc3Pnw6+8kRhY+rplJeL8YCkirVDvk5mVmAF9lKEnr2ai9FF1qkfIUi9MbpzVqkWM
 E2N8KMhrgKuUC8+bxDzEeZ9NnSHwR5RYKJ1KZFsKpx7VeSUQZTtvy+AETRrS8oN4UJU2yOkZiWIXA
 XYeEqKMTYr/Rxfme+5EGww==;
Date: Tue, 11 Mar 2025 14:45:53 +0200
Message-Id: <867c4vd9by.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <1da853c1-1fd4-4022-a351-371b4f84ed6c@HIDDEN> (message from
 Dmitry Gutov on Tue, 11 Mar 2025 04:34:55 +0200)
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
 <86ikogevwc.fsf@HIDDEN> <1da853c1-1fd4-4022-a351-371b4f84ed6c@HIDDEN>
X-Spam-Score: -1.6 (-)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, eggert@HIDDEN, rms@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: -2.6 (--)

> Date: Tue, 11 Mar 2025 04:34:55 +0200
> Cc: 76322 <at> debbugs.gnu.org, eggert@HIDDEN
> From: Dmitry Gutov <dmitry@HIDDEN>
> 
> On 10/03/2025 17:40, Eli Zaretskii wrote:
> > AFAIR, the ctags output is used by other editors (Vim, I think?).
> > Whether that, or the fact that we shipped ctags since forever, is a
> > significant enough reason to keep it in the tree and in the tarballs,
> > is another question.  Maybe we should ask downstream distros how they
> > feel about dropping ctags.
> 
>  From what I'm reading, a lot of distros have replaced their 'ctags' 
> package with universal-ctags:
> 
> https://repology.org/project/universal-ctags/versions
> 
> It's the main ctags fork out there, and a pretty active one.

Yes, that's what I had in mind.




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

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


Received: (at 76322) by debbugs.gnu.org; 11 Mar 2025 12:11:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 11 08:11:41 2025
Received: from localhost ([127.0.0.1]:42036 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tryST-0003vp-7C
	for submit <at> debbugs.gnu.org; Tue, 11 Mar 2025 08:11:41 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:50180)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1trySP-0003vW-KS
 for 76322 <at> debbugs.gnu.org; Tue, 11 Mar 2025 08:11:38 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tryS9-0006mi-LJ; Tue, 11 Mar 2025 08:11:24 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=IFf6ClQY3NzHrftjTdSxhZgn7xZTQmpKjRbjUanbiO0=; b=LMjJS0JSUN8I
 5LDucGmWjFV7sg03QzDr1GpMwaJXLOZAvM5gZo3kXi2TystlGZAJgjXLw18zlmA28Xdb0gCt2mNYf
 BfMFsagRgMxXD3vaT9iyqXnL26PUu6ZLiLYngxf7rod0LhkjbndFc6mmiXHkRU0yFRsYTyV7AWGKT
 j3ejx0B/iFHGJsSU4h7QLWGJgmW4moESFqnX1d1E5RPb7jT234S4X5essm9wPXMrTyLXZPT0k5En6
 MOAwukVHWkRKc7iIA3iJ+0p/UnidVwv9nsQKUFrvpCwvNasmQstTJeHuYDYSEVhGxFDo2Y2Hxi8Fq
 Am1bL+6DRamvzU3PJcBb7w==;
Date: Tue, 11 Mar 2025 14:11:11 +0200
Message-Id: <86h63zdaxs.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <CADwFkmkRHCh8_U5w6n8_3-SdgAiXzdn8aWwM=Wt2HFYYQEKOag@HIDDEN>
 (message from Stefan Kangas on Mon, 10 Mar 2025 16:14:13 -0400)
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
 <2b588fd7-10ee-4d46-958c-3c9adba18ccf@HIDDEN> <86bju8eur1.fsf@HIDDEN>
 <CADwFkmkRHCh8_U5w6n8_3-SdgAiXzdn8aWwM=Wt2HFYYQEKOag@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, eggert@HIDDEN, rms@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: Stefan Kangas <stefankangas@HIDDEN>
> Date: Mon, 10 Mar 2025 16:14:13 -0400
> Cc: 76322 <at> debbugs.gnu.org, rms@HIDDEN
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> >> More radically, Emacs could also stop installing etags, and advise
> >> people to run ctags -e instead, where this is the other ctags.
> >
> > To this I object, since the master source of the format of the TAGS
> > files must be in Emacs, and what better to document this format than
> > to maintain and distribute etags the program.
> 
> As a counter-point, we distribute parsers for quite a few formats where
> the master source of the format is not in emacs.git.  They don't usually
> have the same legacy as ctags, admittedly.
> 
> How about adding a --without-ctags flag, for those of us that never have
> a need for it?

Is that worth the extra maintenance headaches?

If we think our ctags is not being used (I suggested to query a few
distros about that), I'd rather drop it entirely, first by adding the
--ctags option to etags, and later maybe removing the ctags-only code
from etags.c.




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

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


Received: (at 76322) by debbugs.gnu.org; 11 Mar 2025 02:35:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 10 22:35:07 2025
Received: from localhost ([127.0.0.1]:40665 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1trpSV-00031v-2Z
	for submit <at> debbugs.gnu.org; Mon, 10 Mar 2025 22:35:07 -0400
Received: from fhigh-a6-smtp.messagingengine.com ([103.168.172.157]:51145)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1trpSS-0002yt-LV
 for 76322 <at> debbugs.gnu.org; Mon, 10 Mar 2025 22:35:05 -0400
Received: from phl-compute-08.internal (phl-compute-08.phl.internal
 [10.202.2.48])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 07860114021D;
 Mon, 10 Mar 2025 22:34:59 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-08.internal (MEProxy); Mon, 10 Mar 2025 22:34:59 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1741660499;
 x=1741746899; bh=rHjaIU/HMIdnS2DSgncU9MamCajOOLsEYvfNHyIZKtY=; b=
 zVVKqrfqyvHrl6DKufE8MSeryh/3g2vzgOFuYEBxaAfZR+APyNH2WmK4bvu6cUqV
 btQFzZxXnoHtI7fRNxXTi7oLuzRsGWTtfx7FdDPkhPeIrGgwafaJRrww2FJSBfxK
 58OFfcoawOTx/Iwa+eR8crqcTgVYGWcReI77jjrGkVSH6aqY4pO5EkrzyAGy0JnF
 b+NffYmfW5xDbAU+XP23zcm1DquBjx5AtMUEB78MJgXP9gy0Kb/U0Ezv234oQfVg
 dABaiewZo2TU3ZqNg4FTLkpel1lzU4GHJCI95XoMGJ3IUviG8lnUFAnx0poRtrhe
 GQrIInnY6zxkOlquX21rKQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1741660499; x=
 1741746899; bh=rHjaIU/HMIdnS2DSgncU9MamCajOOLsEYvfNHyIZKtY=; b=r
 Uto3Bb1aWQTIZvLeYBP4m4TvWbzUQAoKPJoaurQ22AbBnQoiXLlNyWCCZBFXpgQR
 MmTw9oATEOC6dUhsnqWZvs0d7PkXtWHVA1HXNoC6hump1FCunQ7uwLfwzx8knn41
 riJdThUHBBV+xplykoTVyLfKtD0sP1tZdj/SU1wcYcmfed4ejWeLeM9koNO97iRi
 oTRsgJ3yqmCIvmn3rkpBwdFmF2AM8b4jPmMlcWjbqXOwERuNlwY5Ctl0FCAn2b8P
 5C+pysiRlCr3X9lRmGjQ4B7S5t6sPwvbE4UyuduwAi/g7hXIt1ZHDgFVZuSSUqop
 7Abl76BfZw3mtmzt5bFjw==
X-ME-Sender: <xms:UqHPZ4fuKcuiJdeCa_e8xguovgaOJeYcwNdoVaWwbmOXA_Qr0Fx2RA>
 <xme:UqHPZ6P1kWt0KviHhS1w98U6g8khqkksv4HW8L2pbp9VIJY4Oya-kqU11r62L2PXa
 zMEBVVcIaUWlSifUEk>
X-ME-Received: <xmr:UqHPZ5hgerOOV92bc2FyMghJ8FZATR0UW3o7sVIO_T-FEsi-pbAYQ2j9K-tU07-Wa0Kp>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduvddutdegucetufdoteggodetrf
 dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
 pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
 gvnhhtshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddt
 vdejnecuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovh
 druggvvheqnecuggftrfgrthhtvghrnhepfeevgeehheejgfevteeihfeileeihfdtffej
 udevueekheelieehleegjeegjeffnecuffhomhgrihhnpehrvghpohhlohhghidrohhrgh
 enucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhi
 thhrhiesghhuthhovhdruggvvhdpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtph
 houhhtpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpdhrtghpthhtoheprhhmshes
 ghhnuhdrohhrghdprhgtphhtthhopeejieefvddvseguvggssghughhsrdhgnhhurdhorh
 hgpdhrtghpthhtohepvghgghgvrhhtsegtshdruhgtlhgrrdgvughu
X-ME-Proxy: <xmx:UqHPZ98c535Wq9ccKl8OZ2QhUDa39dCi0Heu9RsuKSnk9LkyFF-RnQ>
 <xmx:UqHPZ0tpL-gZfLfgr6ROYvFwZbGJtc16uW57MrEIUry_NADGgM3XGQ>
 <xmx:UqHPZ0HT0xBh_bNOYf7DtGG8ByXEg_t0HU9x4zaItoquSEfxlQfAuQ>
 <xmx:UqHPZzPqhgrlSU0uocOHyIqH9owozmZAC-4___kFqiubbgV1_LWrog>
 <xmx:UqHPZ2JsKgIuV_1_o9mhXh6Qe1YFl7qWphCamEKgyj1vhD04qYANewpc>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 10 Mar 2025 22:34:56 -0400 (EDT)
Message-ID: <1da853c1-1fd4-4022-a351-371b4f84ed6c@HIDDEN>
Date: Tue, 11 Mar 2025 04:34:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
To: Eli Zaretskii <eliz@HIDDEN>, rms@HIDDEN
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
 <86ikogevwc.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <86ikogevwc.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, 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 10/03/2025 17:40, Eli Zaretskii wrote:
> AFAIR, the ctags output is used by other editors (Vim, I think?).
> Whether that, or the fact that we shipped ctags since forever, is a
> significant enough reason to keep it in the tree and in the tarballs,
> is another question.  Maybe we should ask downstream distros how they
> feel about dropping ctags.

 From what I'm reading, a lot of distros have replaced their 'ctags' 
package with universal-ctags:

https://repology.org/project/universal-ctags/versions

It's the main ctags fork out there, and a pretty active one.




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

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


Received: (at 76322) by debbugs.gnu.org; 10 Mar 2025 23:42:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 10 19:42:22 2025
Received: from localhost ([127.0.0.1]:40415 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1trmlK-0003W7-GP
	for submit <at> debbugs.gnu.org; Mon, 10 Mar 2025 19:42:22 -0400
Received: from mail.cs.ucla.edu ([131.179.128.66]:34586)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eggert@HIDDEN>)
 id 1trmlI-0003Vh-4R
 for 76322 <at> debbugs.gnu.org; Mon, 10 Mar 2025 19:42:20 -0400
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id A7FA33C01086D;
 Mon, 10 Mar 2025 16:42:13 -0700 (PDT)
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP
 id RA_XUaLkHTV0; Mon, 10 Mar 2025 16:42:13 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 2917F3C010874;
 Mon, 10 Mar 2025 16:42:13 -0700 (PDT)
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 2917F3C010874
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu;
 s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1741650133;
 bh=eBhChcd54+JNyXRIyYjx2STKjAq5BuRKAAbmOYcdBuQ=;
 h=Message-ID:Date:MIME-Version:To:From;
 b=M/ZvzFbU2O+YPoDxDrhggZ96pfqoKyAK7IXI1uyK6JUUd1sox3QuUvXk6wEANeEx5
 3sW7Q9Qx5uEHvnSWMWeHIlS2m2duIc4rR2cyRDptpbwiwNMWbecZN/1/l4Ap0G0SYj
 +xAibSJG6F0touNMnEtZwUq2mWujn8KwWJFAQ0lms9a3Bx5gZ7ISOBE55lZD1tA2Of
 EGp1AEg6fS2IFv/DXHy9MDiQT6MMI1jblvaDBaMK7hZLE7Gewx0+FfSMr8Sf0EVNXp
 1De+HkFXhltmBZ68zmm/ZZpuj3dmhGDKc5dq6ko0USPVkkfSgntXb+tEEFs6QH9iEm
 pccex1f+YhlfA==
X-Virus-Scanned: amavis at mail.cs.ucla.edu
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP
 id f5U5yG_Nz7J2; Mon, 10 Mar 2025 16:42:13 -0700 (PDT)
Received: from [131.179.64.200] (Penguin.CS.UCLA.EDU [131.179.64.200])
 by mail.cs.ucla.edu (Postfix) with ESMTPSA id 0D94C3C01086D;
 Mon, 10 Mar 2025 16:42:13 -0700 (PDT)
Message-ID: <caf4726d-e86a-475e-8910-89c1373d3536@HIDDEN>
Date: Mon, 10 Mar 2025 16:42:12 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
To: Stefan Kangas <stefankangas@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
 <2b588fd7-10ee-4d46-958c-3c9adba18ccf@HIDDEN> <86bju8eur1.fsf@HIDDEN>
 <CADwFkmkRHCh8_U5w6n8_3-SdgAiXzdn8aWwM=Wt2HFYYQEKOag@HIDDEN>
Content-Language: en-US
From: Paul Eggert <eggert@HIDDEN>
Autocrypt: addr=eggert@HIDDEN; keydata=
 xsFNBEyAcmQBEADAAyH2xoTu7ppG5D3a8FMZEon74dCvc4+q1XA2J2tBy2pwaTqfhpxxdGA9
 Jj50UJ3PD4bSUEgN8tLZ0san47l5XTAFLi2456ciSl5m8sKaHlGdt9XmAAtmXqeZVIYX/UFS
 96fDzf4xhEmm/y7LbYEPQdUdxu47xA5KhTYp5bltF3WYDz1Ygd7gx07Auwp7iw7eNvnoDTAl
 KAl8KYDZzbDNCQGEbpY3efZIvPdeI+FWQN4W+kghy+P6au6PrIIhYraeua7XDdb2LS1en3Ss
 mE3QjqfRqI/A2ue8JMwsvXe/WK38Ezs6x74iTaqI3AFH6ilAhDqpMnd/msSESNFt76DiO1ZK
 QMr9amVPknjfPmJISqdhgB1DlEdw34sROf6V8mZw0xfqT6PKE46LcFefzs0kbg4GORf8vjG2
 Sf1tk5eU8MBiyN/bZ03bKNjNYMpODDQQwuP84kYLkX2wBxxMAhBxwbDVZudzxDZJ1C2VXujC
 OJVxq2kljBM9ETYuUGqd75AW2LXrLw6+MuIsHFAYAgRr7+KcwDgBAfwhPBYX34nSSiHlmLC+
 KaHLeCLF5ZI2vKm3HEeCTtlOg7xZEONgwzL+fdKo+D6SoC8RRxJKs8a3sVfI4t6CnrQzvJbB
 n6gxdgCu5i29J1QCYrCYvql2UyFPAK+do99/1jOXT4m2836j1wARAQABzSBQYXVsIEVnZ2Vy
 dCA8ZWdnZXJ0QGNzLnVjbGEuZWR1PsLBlQQTAQgAPwIbAwYLCQgHAwIGFQgCCQoLBBYCAwEC
 HgECF4AWIQR+N5Kp2Kz31jO8FYjtl+kOYqp+NAUCZiLOewUJHWQLDAAKCRDtl+kOYqp+NHGE
 D/9Wmbk+cAaQsYLPGBvyzIjZIRzo/V2p3ZwckVA1VEQivx5azu1cs86qDoVIe45AtwmKOvdV
 wTQd/QeglkZR6D2YPW7UR/7emajyJZZcy+etVTDKoaw1i6/hmd/CpGjUeUSvgoPs6nYR+1lo
 pSXTpaGrh1W0qQHalSkOOwCHG3HtGk9Ve2AERDUYxmcn8/eZHb7xpUJEJMBBI1bx/zcw1EtB
 rjsQ1R1faJ/r/7LPAyV36RLvnbX69PylHKQEbJoaY9aUb2Vpm63ni3FeTA7/3jpPvaSRWHJh
 vPYx6Fm2Ln8pI0Yf/W2B8QMiPTnF/LnH2kvUcf9VXm+1mQJ3fBFU25HZwBhuqZ24IeKymPEt
 BUMQAum97Dto0jSgR2OUvX7z+twhpQEgRGBzPHYwDi4SxF5Z4Q5Y7B7a++HP9tIxG6CVFIwI
 4xVaZud18bPa0YBL+cISmMgxq7h7yoVXl6u3pm9Yiv+W6Lp9QGN8Rw1VuJMOoFCYuoxG8mXO
 TA5b1jvlQ32gHFFhqErDAhNJRsfgrpe9Gok4Ycp+rWljbvS5Wrl0uth5MP7FbaHN2kmTZibq
 KXAd//IqczhDyU6qnW6ao+h4iDBDgYgRbQjmToX/vmIdEMzvPGqWXKhe/q1TYMuOO+IfP+bI
 fyPFH29nVN/o9c4J7myeKvv3HKSXdSVjlh2V787BTQRMgHJkARAApoXrvxP3DIfjCNOtXU/P
 dwMShKdX/RlSs5PfunV1wbKP8herXHrvQdFVqECaTSxmlhzbk8X0PkY9gcVaU2O49T3qsOd1
 cHeF52YFGEt0LhsBeMjgNX5uZ1V76r8gyeVlFpWWb0SIwJUBHrDXexF67upeRb2vdHBjYDNe
 ySn+0B7gFEqvVmZu+LadudDp6kQLjatFvHQHUSGNshBnkkcaTbiI9Pst0GCc2aiznBiPPA2W
 QxAPlPRh3OGTsn5THADmbjqY6FEMLasVX8DSCblMvLwNeO/8SxziBidhqLpJCqdQRWHku5Xx
 gIkGeKOz5OLDvXHWJyafrEYjjkS6Ak6B5z6svKliClWnjHQcjlPzyoFFgKTEfcqDxCj4RY0D
 0DgtFD0NfyeOidrSB/SzTe2hwryQE3rpSiqo+0cGdzh4yAHKYJ+UrXZ4p93ZhjGfKD1xlrNY
 DlWyW9PGmbvqFuDmiIAQf9WD/wzEfICc+F+uDDI+uYkRxUFp92ykmdhDEFg1yjYsU8iGU69a
 Hyvhq36z4zctvbqhRNzOWB1bVJ/dIMDvsExGcXQVDIT7sDNXv0wE3jKSKpp7NDG1oXUXL+2+
 SF99Kjy753AbQSAmH617fyBNwhJWvQYg+mUvPpiGOtses9EXUI3lS4v0MEaPG43flEs1UR+1
 rpFQWVHo1y1OO+sAEQEAAcLBfAQYAQgAJgIbDBYhBH43kqnYrPfWM7wViO2X6Q5iqn40BQJm
 Is58BQkdZAsMAAoJEO2X6Q5iqn40Q68QAJ9GubS/ej30Vc4idoZdc0IyMcL7kQJbMohF+Tyn
 ZE+TGn9WvzP10yLyzoI0vNlcNfP92d2MS//pFjOuANb5mwyiEYA+rDZIdS4ZZpHxCs2sxMC4
 afLCf3kv4aMnTeBvb9na403dlczz9cAacvsmniSFdpb1+BzMpYbybglU5oYMGhYT2nnCRjXN
 6S2nKYt4mjJeeOuxHrdeqQQdVBNYeNfTcPePeqvZ2+bD6u9yxZtaV+wxdpqglosQvjqhOYz7
 h50/ZTSq70/npoCq44TzdJKttaYvlW6ziRz0g4RRAqZyoxjYXiy5qj8r8zXJuB11ApZCGuKn
 /usbji9RYbflAhxFeh4LMmpDVi6BrF30b73Md59K7PuEKN1NxzlWiqqQHZZ9momN0GXLPcGq
 4uyfq7yVEy7wP5PMOh6oqscKklE3gFQtq0P1Ki0xqdF6Fq5LPJc+0Db2CYkVIy7Xaa/f74I3
 sOfQfEeDylVXR5iDfUJEYv/0DYhOr7q5/0b1kh3M4wkrB4C5jVNHjIIj+RsAK90c3t38OhAl
 jiSN7Bkwy24Afy8eIu6wWzvhnsQGpZPB+IffmxT1wkTy8UxZKjUWV0C82iphVgCUUi2f9sDV
 Q/tNcwVWmOS+gdv9Wk6tdGeM+Ee+Qs6YG05jcSoajzF0TL07ajLcayRq2j1Os2CtQ8qu
Organization: UCLA Computer Science Department
In-Reply-To: <CADwFkmkRHCh8_U5w6n8_3-SdgAiXzdn8aWwM=Wt2HFYYQEKOag@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, rms@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 3/10/25 13:14, Stefan Kangas wrote:
> How about adding a --without-ctags flag, for those of us that never have
> a need for it?

I assume you mean a --disable-ctags option for 'configure'. Yes, that's 
doable. We could also have a --disable-etags if we want people to be 
able to disable ctags without disabling etags. The reverse wouldn't be 
possible (or needed).

This is an independent issue of course.




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

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


Received: (at 76322) by debbugs.gnu.org; 10 Mar 2025 20:14:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 10 16:14:24 2025
Received: from localhost ([127.0.0.1]:39994 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1trjW3-0001Eb-QG
	for submit <at> debbugs.gnu.org; Mon, 10 Mar 2025 16:14:24 -0400
Received: from mail-ed1-x52a.google.com ([2a00:1450:4864:20::52a]:42167)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <stefankangas@HIDDEN>)
 id 1trjW0-0001EN-Rx
 for 76322 <at> debbugs.gnu.org; Mon, 10 Mar 2025 16:14:21 -0400
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5dccaaca646so503828a12.0
 for <76322 <at> debbugs.gnu.org>; Mon, 10 Mar 2025 13:14:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1741637654; x=1742242454; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=ZJbNoPWAbkcOSKOzzsaQRGB1KTkeLyuGLJrvtshJHN0=;
 b=M+nVrHDdsasuHpDeyMJsiNCi++uCzMM41oiSCsih9ZwWY6duJN2/4qatZogcgoMFlX
 6t6G3d3+XLoGmJ4NThhA8cYug9twODnn8yw32rk/cYHeQvNBf7klfg7E7qMf0xC7G1UA
 +hOh9mRP9w/gcc5uX4YEPoVWxdHIszB2EVaBmIxWpbxzRUmWve4s66yIkOzSZ0qf6anH
 B1flONtLwDgxNXazV5kWijNwYOKSM5qWJiBnFVhm3JPTG0Y9kKP1ZK0xxSWPh4tgkQNi
 NtHP0Ybo+kiR3ED/6UZuFJe/lynP78KZujDRBd3bEO5vcJg9cAudTbXsVjB/whCj4in8
 N7Aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1741637654; x=1742242454;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=ZJbNoPWAbkcOSKOzzsaQRGB1KTkeLyuGLJrvtshJHN0=;
 b=ImM1S6TxzuwJc3eybdEAIUvJdG4lcdTewxhswd/7821S2j/d8rfo+JPVBjs+GUMfw7
 n+yhLlrnaT02Ed+oigrZKZoeVQP1soDiUBoqRQ5dro2soHByC1EN86Tch9cNCW/dXsAU
 89l/00F/ETrcMmgfu/tfIpXjxOg0VEhFWAdyEOp39409puJc077NPIaZhW75YGfqNg6K
 9oG6YmAgC52cuJ7Pr0J40hjeflrmjplWXt953Q8R0hT5PA7Ey1CnpUvHbRx1cmB4Tfxq
 YrqnOFAwkIO8Hbvu9/vy/HZccN9x17Zl4YA99YEsJZy0VSjan/w7U+5GXnN1Pi6UJczu
 LzNw==
X-Gm-Message-State: AOJu0YzKE17x5XqkqGzW3cJdjj66XMAoNWRSJnUqzqSWn3fAnG9OsN3h
 0JfVZq5buRlgIsAY95fjfbiR9A/6EXN0HNbOsn5OU/gtGO8R8A47id3ybpQ6TLa9avMdlPbHZs9
 wMsfbu6qiQcdWudRvAj5kdwJ2td4=
X-Gm-Gg: ASbGncu+fRsV8kK4OMMAA/zA2NorH/v9KwcDazpjwKznoZDIM9jPtn1Nysygu71J6pB
 FRuoaEXYi5w65d0w8c1f+dF1abnKfaf+q+LYu+S6S2R4JkW/bHBnB4LhMj8DW/pPALT2zuoc17X
 cVTl9grYXSeNWkG4mX+qGlH2GFOWdz+u36uCopCA==
X-Google-Smtp-Source: AGHT+IGHYwIdI24gWIccf//JXYZ/GrlHld6vc0QhfSIjam0hHFjmXhdrOrjF3ZDHMVDuKYj/5emRj/L8YbvNF11NOqY=
X-Received: by 2002:a05:6402:270d:b0:5e4:95fc:d748 with SMTP id
 4fb4d7f45d1cf-5e7628ff54cmr1004263a12.5.1741637654289; Mon, 10 Mar 2025
 13:14:14 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Mon, 10 Mar 2025 16:14:13 -0400
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <86bju8eur1.fsf@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
 <2b588fd7-10ee-4d46-958c-3c9adba18ccf@HIDDEN> <86bju8eur1.fsf@HIDDEN>
MIME-Version: 1.0
Date: Mon, 10 Mar 2025 16:14:13 -0400
X-Gm-Features: AQ5f1Jqf_AFjhDNrRlJnjxHtkWtR-UdtKkmodtBSS3XaDjD4FEUq8Dipepqzp3o
Message-ID: <CADwFkmkRHCh8_U5w6n8_3-SdgAiXzdn8aWwM=Wt2HFYYQEKOag@HIDDEN>
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
To: Eli Zaretskii <eliz@HIDDEN>, Paul Eggert <eggert@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, rms@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 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

>> More radically, Emacs could also stop installing etags, and advise
>> people to run ctags -e instead, where this is the other ctags.
>
> To this I object, since the master source of the format of the TAGS
> files must be in Emacs, and what better to document this format than
> to maintain and distribute etags the program.

As a counter-point, we distribute parsers for quite a few formats where
the master source of the format is not in emacs.git.  They don't usually
have the same legacy as ctags, admittedly.

How about adding a --without-ctags flag, for those of us that never have
a need for it?




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

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


Received: (at 76322) by debbugs.gnu.org; 10 Mar 2025 16:05:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 10 12:05:59 2025
Received: from localhost ([127.0.0.1]:39431 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1trfdf-0000F3-74
	for submit <at> debbugs.gnu.org; Mon, 10 Mar 2025 12:05:59 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:55244)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1trfdc-0000Em-NZ
 for 76322 <at> debbugs.gnu.org; Mon, 10 Mar 2025 12:05:57 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1trfdW-0007dH-BP; Mon, 10 Mar 2025 12:05:50 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=npFlJr4BJErnXgJ/YMJxtwuCcqyLPq16czmdRVjLJvM=; b=Y3GwsAP2V8fv
 VjURfrhqv0Wmjy+KWknrmMKFOBww+i91CtYsU9Ol8Lm1JZ/lvaZdxxuWE1yUoykclZ0MpJtYRAD0U
 iBApyxcb65E15wgUeHGDosyMBkoax++S6fbHJa8wu6EoUpzdor7hdsWHPS8BKYgVVcynylqopcVQf
 0fd2Dl9uNQNAiJ/69YfaqBblb9AOwcB6wcHvYcySZEbf00Dyi9TbGy1UdKWHXFaDqo06zC0M5Kg33
 0eaUA42+4hSLlVBvnre/Iw3uSfSo+XUedbkdFmtcmr/Y+bLd/NumxQIQHMRN0rSNMYC+eqXiYXDJi
 uS6jJ2/2OB2JWpD5PG6cvg==;
Date: Mon, 10 Mar 2025 18:05:38 +0200
Message-Id: <86bju8eur1.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Paul Eggert <eggert@HIDDEN>
In-Reply-To: <2b588fd7-10ee-4d46-958c-3c9adba18ccf@HIDDEN> (message from
 Paul Eggert on Sun, 9 Mar 2025 23:33:03 -0700)
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
 <2b588fd7-10ee-4d46-958c-3c9adba18ccf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, rms@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 (---)

> Date: Sun, 9 Mar 2025 23:33:03 -0700
> Cc: 76322 <at> debbugs.gnu.org
> From: Paul Eggert <eggert@HIDDEN>
> 
> On 2025-03-09 21:18, Richard Stallman wrote:
> > The idea was that a user could give the program any name,
> > and it would still behave the same.
> 
> Yes, the idea is that a user can copy /usr/bin/ctags to (for example) 
> /usr/bin/ceetags or /home/eggert/bin/sitags and the command will still 
> work under its new name.

If we must support arbitrary renames of programs that are not
synchronized across the entire Emacs installation, i.e. not bounded by
what we have in --program-transform-name=PROGRAM and --program-prefix
etc., then no wrapper script can ever work reliably to cause etags
work as ctags, because the script will be unable to find the correct
etags to run.

> If ctags invokes etags by replacing $0's basename with "etags", copying 
> /usr/bin/ctags to /usr/bin/ceetags just works, whereas copying 
> /usr/bin/ctags to /home/eggert/bin/sitags will require that the user 
> also copy or link /usr/bin/etags to /home/eggert/bin/etags. I assume 
> this requirement is OK (as I understand it, Eli says it's OK).

This requirement will be OK if the programs were renamed using the
facilities mentioned above, or at least the most common uses fog them.

> Dropping support for ctags output would address the problem by removing 
> the need for two programs. And since there is a GPL'ed ctags[1] that is 
> better than what's shipped with Emacs, one option is for Emacs to stop 
> installing ctags, and to advise users who want a ctags program to use 
> the other ctags instead. That's the default on many distros nowadays anyway.

We can do something less drastic: tell them to use "etags --ctags"
instead.

> More radically, Emacs could also stop installing etags, and advise 
> people to run ctags -e instead, where this is the other ctags.

To this I object, since the master source of the format of the TAGS
files must be in Emacs, and what better to document this format than
to maintain and distribute etags the program.

> As a practical matter, ctags and etags both have problems with languages 
> like C++ and Python where the same name can mean many different things 
> depending on context. My impression is that nowadays many (most?) people 
> who want tags-like capabilities use Language Server Protocol[2] clients 
> like lsp-mode[3] instead, as LSP can handle these more-complicated 
> naming conventions. Ctags and etags are mostly needed for old-fashioned 
> users.

Given that there still is no GCC-based LSP server for C and C++, using
LSP for C/C++ development means one needs to install clang in addition
to GCC, and that is a nuisance.

(I urged the GCC developers several years ago to develop LSP
capabilities, but AFAIK nothing practical came out if that.)

In any case, etags is a much more lightweight solution for what it
provides (which us only a small part of what an LSP server can
provide), so removing it for that reason would be unwise, IMO.




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

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


Received: (at 76322) by debbugs.gnu.org; 10 Mar 2025 15:41:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 10 11:41:24 2025
Received: from localhost ([127.0.0.1]:39349 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1trfFs-0004PW-4y
	for submit <at> debbugs.gnu.org; Mon, 10 Mar 2025 11:41:24 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:44408)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1trfFo-0004PH-Ij
 for 76322 <at> debbugs.gnu.org; Mon, 10 Mar 2025 11:41:21 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1trfFh-0003ix-Al; Mon, 10 Mar 2025 11:41:13 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=ttnwN43x4itgs3NA1fQbPfRkw/YTmHyb4hLj/wcBfSQ=; b=UlSr70NSOO9e
 vtc2JmCEam25pMo1R/0d5zJwHAmOLYyF+FriPGOHi+II6iCNt80b2v9e0zdfGUhQ5NWDnKqCFloZc
 03HRWuiDnrAtdBMDIUebG3XgzyGGxqb/0zIWiFKBZfiwlKc5fl4Fc9DHgovM0GLMnvgW+85EGr0eP
 b1yC2DCpHAGMAjhLE9tBVy0Pf/mx4kh70LQnmh0EeplJGao1BhMH1/gM3p8rvACM9nvnXSS+awe0x
 jOKcOWt71g4M4Qur/nnsRB1wqA0g6bXobQIlF559e4RtqwG742v/B7wiyWRLGO/egzOqFVlWw8jO6
 Vf2RgbKN+xzunqnSEjsZ5A==;
Date: Mon, 10 Mar 2025 17:40:51 +0200
Message-Id: <86ikogevwc.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: rms@HIDDEN
In-Reply-To: <E1trUaq-0004Xr-Ph@HIDDEN> (message from Richard
 Stallman on Mon, 10 Mar 2025 00:18:20 -0400)
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, 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: -3.3 (---)

> From: Richard Stallman <rms@HIDDEN>
> Cc: eggert@HIDDEN, 76322 <at> debbugs.gnu.org
> Date: Mon, 10 Mar 2025 00:18:20 -0400
> 
> i wrote etags very early in development of GNU, starting from ctags
> which I did not write.  At that time, I considered it unclean for a
> program to behave differently depending on the name it is invoked
> with.  The idea was that a user could give the program any name,
> and it would still behave the same.
> 
> Back then, there was a reason to have ctags and etags, making their
> different formats.  etags output had rough source locations which sped
> up finding a definition in the source.
> 
> Nowadays that speedup may be insignificant in practice.
> 
> Is it still beneficial?

Emacs doesn't use the output of ctags.  All our tags-related commands
use on the TAGS files produced by etags.  So dropping ctags will lose
Emacs nothing.

AFAIR, the ctags output is used by other editors (Vim, I think?).
Whether that, or the fact that we shipped ctags since forever, is a
significant enough reason to keep it in the tree and in the tarballs,
is another question.  Maybe we should ask downstream distros how they
feel about dropping ctags.




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

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


Received: (at 76322) by debbugs.gnu.org; 10 Mar 2025 06:33:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 10 02:33:20 2025
Received: from localhost ([127.0.0.1]:36039 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1trWhU-00054Z-Aa
	for submit <at> debbugs.gnu.org; Mon, 10 Mar 2025 02:33:20 -0400
Received: from mail.cs.ucla.edu ([131.179.128.66]:39594)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eggert@HIDDEN>)
 id 1trWhR-00054E-Vb
 for 76322 <at> debbugs.gnu.org; Mon, 10 Mar 2025 02:33:18 -0400
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id BB8D83C01085F;
 Sun,  9 Mar 2025 23:33:11 -0700 (PDT)
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP
 id QFHjgjoneCAh; Sun,  9 Mar 2025 23:33:11 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 6148D3C010861;
 Sun,  9 Mar 2025 23:33:11 -0700 (PDT)
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 6148D3C010861
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu;
 s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1741588391;
 bh=56vtGxg+hqYRvk2rBoMnaLHN4C7CTcPvgjGGgMM704U=;
 h=Message-ID:Date:MIME-Version:To:From;
 b=gOvyoiXb+R5nBoxW8shsB2ExSZxsbKC5KjzYk1oqbSvWxYKPJumSV+2oJHPqjU0Ba
 qT2IXZ8R2dAEFoEKuhwkL/gZ4K97Um2mtDdYD+UKC9w+V1494YzPXJtIMHnt8rvTZ+
 FjRjfVycKG7szbL1IM5AAzINwIIhm+wT/elAuDegi+H+MBdtzS4ApuIfEFWE8FDDPQ
 cdsTlIPT83aHm/yLLX0Hu0VNf93fwiioCkhGMLA4fWTxTwKopy4FhTZJ5HbYem38kr
 Eb+vDwzLpTwf0N/9sWSl/W3feD3+rCN6D/lzSHK1fOpMVmxKZg7j7q2iH+ipCO4pXF
 HuiG6HEV7TQiA==
X-Virus-Scanned: amavis at mail.cs.ucla.edu
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP
 id y2ps1juUQWB3; Sun,  9 Mar 2025 23:33:11 -0700 (PDT)
Received: from [192.168.254.12] (unknown [47.147.225.25])
 by mail.cs.ucla.edu (Postfix) with ESMTPSA id 410AA3C01085F;
 Sun,  9 Mar 2025 23:33:11 -0700 (PDT)
Message-ID: <2b588fd7-10ee-4d46-958c-3c9adba18ccf@HIDDEN>
Date: Sun, 9 Mar 2025 23:33:03 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
To: rms@HIDDEN, Eli Zaretskii <eliz@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <E1trUaq-0004Xr-Ph@HIDDEN>
Content-Language: en-US
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
In-Reply-To: <E1trUaq-0004Xr-Ph@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.7 (/)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <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: -0.3 (/)

On 2025-03-09 21:18, Richard Stallman wrote:
> The idea was that a user could give the program any name,
> and it would still behave the same.

Yes, the idea is that a user can copy /usr/bin/ctags to (for example) 
/usr/bin/ceetags or /home/eggert/bin/sitags and the command will still 
work under its new name.

If ctags invokes etags by replacing $0's basename with "etags", copying 
/usr/bin/ctags to /usr/bin/ceetags just works, whereas copying 
/usr/bin/ctags to /home/eggert/bin/sitags will require that the user 
also copy or link /usr/bin/etags to /home/eggert/bin/etags. I assume 
this requirement is OK (as I understand it, Eli says it's OK).


> Back then, there was a reason to have ctags and etags, making their
> different formats.  etags output had rough source locations which sped
> up finding a definition in the source.
> 
> Nowadays that speedup may be insignificant in practice.
> 
> Is it still beneficial?

Dropping support for ctags output would address the problem by removing 
the need for two programs. And since there is a GPL'ed ctags[1] that is 
better than what's shipped with Emacs, one option is for Emacs to stop 
installing ctags, and to advise users who want a ctags program to use 
the other ctags instead. That's the default on many distros nowadays anyway.

More radically, Emacs could also stop installing etags, and advise 
people to run ctags -e instead, where this is the other ctags.

As a practical matter, ctags and etags both have problems with languages 
like C++ and Python where the same name can mean many different things 
depending on context. My impression is that nowadays many (most?) people 
who want tags-like capabilities use Language Server Protocol[2] clients 
like lsp-mode[3] instead, as LSP can handle these more-complicated 
naming conventions. Ctags and etags are mostly needed for old-fashioned 
users.

[1]: https://github.com/universal-ctags/ctags
[2]: https://en.wikipedia.org/wiki/Language_Server_Protocol
[3]: https://emacs-lsp.github.io/lsp-mode/





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

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


Received: (at 76322) by debbugs.gnu.org; 10 Mar 2025 04:18:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 10 00:18:33 2025
Received: from localhost ([127.0.0.1]:35735 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1trUb3-00070q-7j
	for submit <at> debbugs.gnu.org; Mon, 10 Mar 2025 00:18:33 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:50488)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <rms@HIDDEN>) id 1trUb0-00070e-RJ
 for 76322 <at> debbugs.gnu.org; Mon, 10 Mar 2025 00:18:31 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <rms@HIDDEN>)
 id 1trUat-00089o-Kp; Mon, 10 Mar 2025 00:18:24 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From:
 mime-version; bh=tUrfNGkFSkkIvKCtmgBqrr3wUrWTVNsfYSG9ZKmkPlM=; b=K9/Hx2ZTBXTK
 oBxKRyCACgWzM6i8ijQ7IIIht8XVgjk8aUD6wW+SUab4mKrRZlYZ3ZkmdgtDLHLCDSxZ4l+Wyf2S2
 gf2jR2OWAPk5T7D87V6ABSMuGPPh5RvfT59BzVpQc1aVTu6WWY/l5GCeXZKAjvwQgMsXWbma1w82L
 Gi/C5iB6fHvZ6N2HRTLhpH/WPmII9NwQ8xWQ33parCp2+sGGSSVhLJDOaBConjNVac2MDzTZsxbHr
 A5lB+BJ018y0PE4bbkFLJn0iZPzf7a9u41V7ALOgVAoiSuCQ46m5tB0apbFCdUVSztvDgMATDqRJe
 sZNO7YazR2rdZEe0NiBO3w==;
Received: from rms by fencepost.gnu.org with local (Exim 4.90_1)
 (envelope-from <rms@HIDDEN>)
 id 1trUaq-0004Xr-Ph; Mon, 10 Mar 2025 00:18:21 -0400
Content-Type: text/plain; charset=Utf-8
From: Richard Stallman <rms@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <86senqmgkg.fsf@HIDDEN> (message from Eli Zaretskii on Thu, 06
 Mar 2025 15:31:11 +0200)
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN>
Message-Id: <E1trUaq-0004Xr-Ph@HIDDEN>
Date: Mon, 10 Mar 2025 00:18:20 -0400
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <at> debbugs.gnu.org, 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>
Reply-To: rms@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

i wrote etags very early in development of GNU, starting from ctags
which I did not write.  At that time, I considered it unclean for a
program to behave differently depending on the name it is invoked
with.  The idea was that a user could give the program any name,
and it would still behave the same.

Back then, there was a reason to have ctags and etags, making their
different formats.  etags output had rough source locations which sped
up finding a definition in the source.

Nowadays that speedup may be insignificant in practice.

Is it still beneficial?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)






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

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


Received: (at 76322) by debbugs.gnu.org; 9 Mar 2025 13:08:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 09 09:08:46 2025
Received: from localhost ([127.0.0.1]:58809 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1trGOc-0001ek-Db
	for submit <at> debbugs.gnu.org; Sun, 09 Mar 2025 09:08:46 -0400
Received: from mail-40131.protonmail.ch ([185.70.40.131]:24719)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1trGOa-0001eW-Aj
 for 76322 <at> debbugs.gnu.org; Sun, 09 Mar 2025 09:08:45 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1741525717; x=1741784917;
 bh=iA5yKtDoh25w872xZeUwZOghoVGIuGwSFj82f3SiZEU=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=Gun6AKeNVGPO6gQnFxNqp4IDt+s5aj4SsPu5I459Ipv0nO7a8lyvY001NKGPA5VBT
 wQEQysPPqy/YIh5E7W68JAW89bo5FE0k5swoKecxCxmuTCg6SCu+lUiw/69rWIS3cw
 FExh2XVHP2m4sIqtyeBpFtl8jbhIrs5hN0myBoNVYAWnPzGy9eZeRa4e10dHOeqNbh
 XXgLpgtXMHpz7jTm4P43EeXz0LHrb1HcNAYunlepw3wGe/oMxqIbXOLeiHAOcVKEjO
 PyzRzcWpH5Pckvlnmd0yrV/tO1UKhXNH3Hh5g2S8ByLmygAhPpN4WfFb5i27gTm3Ae
 hLGxumzIi40gg==
Date: Sun, 09 Mar 2025 13:08:32 +0000
To: Paul Eggert <eggert@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
Message-ID: <87pliq5p3m.fsf@HIDDEN>
In-Reply-To: <719e33a6-66cb-41af-a01e-be1b5a1ffdad@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <719e33a6-66cb-41af-a01e-be1b5a1ffdad@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 96ca08d844ddf53469f51947eb83115f9cdb1849
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: 76322
Cc: 76322 <at> debbugs.gnu.org, Eli Zaretskii <eliz@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 (-)

Pip Cet <pipcet@HIDDEN> writes:

> "Paul Eggert" <eggert@HIDDEN> writes:
>
>> +  for (; *s; s++)
>> +    {
>> +      if (*s =3D=3D '"')
>> +        store (d, i, bscount + 1, '\\');
>
> This sholud be i =3D store (d, i , ...), so we don't lose the
> backslashes.

Also (but much more harmless, no buffer overflow here):

  size_t nargbytes =3D sizeof etags_program + sizeof option_prefix - 1;

should be

  size_t nargbytes =3D sizeof option_prefix - 1;

because etags_program is no longer copied into the newly allocated area.

Pip





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

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


Received: (at 76322) by debbugs.gnu.org; 9 Mar 2025 12:23:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 09 08:23:47 2025
Received: from localhost ([127.0.0.1]:58728 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1trFh5-0004uy-10
	for submit <at> debbugs.gnu.org; Sun, 09 Mar 2025 08:23:47 -0400
Received: from mail-40134.protonmail.ch ([185.70.40.134]:13049)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1trFh2-0004uh-3T
 for 76322 <at> debbugs.gnu.org; Sun, 09 Mar 2025 08:23:45 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1741523017; x=1741782217;
 bh=XtFeDWGBTf25sKUuPA1dPq/JySYcojke73JZYdjsjfY=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=mpQ8utINCzjlsTjYv6sSz1JipSzsNYDwFf8/mouMgzzMxjWnjYlp6NwAGneCNKpjP
 Yu3AxzkxFiCFDHLfS7F12Dxz3DaFvNjUZaJ9rqShXqp2DD7gINKJJ5mdnY9vQdenDb
 elfi67ZT+K8aA1qQOcVfBZgyLpqlwGb7gRpyXLbQCSY+KydT5FT+Dho+DTXt9CqPki
 YtHFiXjWgxbhn4pS15U1x11q/1LsahU4/nwZndiYoezz8wmZfayV64iWCRlf0ajpQ3
 JPeHlfttxc0h7QUBFyiHVaxrTxzHlXHxeEbJubLrfyh0RyKoasS7hdtzs8jXVahrjj
 rCPk2T5gvzy+w==
Date: Sun, 09 Mar 2025 12:23:33 +0000
To: Paul Eggert <eggert@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
Message-ID: <87v7si5r6n.fsf@HIDDEN>
In-Reply-To: <719e33a6-66cb-41af-a01e-be1b5a1ffdad@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <719e33a6-66cb-41af-a01e-be1b5a1ffdad@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 86f02cd3256498793b58a9f065a228f30b7dbf5b
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: 76322
Cc: 76322 <at> debbugs.gnu.org, Eli Zaretskii <eliz@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 (-)

"Paul Eggert" <eggert@HIDDEN> writes:

> On 2025-03-06 05:31, Eli Zaretskii wrote:
>>> Date: Tue, 4 Mar 2025 10:37:05 -0800
>>> Cc: 76322 <at> debbugs.gnu.org
>>> From: Paul Eggert <eggert@HIDDEN>
>>>
>>> Thanks for the review. Revised patch attached, which I think addresses
>>> all the comments.
>>
>> Thanks.  This mostly worked, but I needed a few minor changes (below).
>> We should use _spawnvp, not _execvp, since the latter doesn't return,
>> so we cannot return the exit status of etags to the caller.  More
>> importantly, the counting of bytes to allocate missed the PROGRAM part
>> of --ctags=3DPROGRAM, so ctags would crash in weird ways.  Finally, I
>> need to include stdio.h to get the declaration of perror.  Here's the
>> patch:
>
> Thanks, I incorporated all that into the proposed patch. A couple of
> things, though. First, when _spawnvp returns -1 I assume ctags should
> call perror and exit with status 127 rather than simply try to exit with
> status -1. Second and more important, my earlier proposal violated the
> GNU Coding Standards because its behavior depended on its name.[1]

If you're referring to the previous behavior of looking for etags in the
right directory, rather than a hard-coded directory as the current patch
does, I'm not sure how the GNU coding standards prohibit that.

> Fixing the second problem simplified the C and shell code a bit. Revised
> patch attached.

But that means we hard-code the installation path for "etags" in the
"ctags" shell script/executable, which seems worse than simply depending
on the name (or going back to building two binaries) to me.
Non-relocatable builds are a pain.

It's also different from what other GNU utilities do: gunzip looks for
gzip in the PATH, for example.

> diff --git a/lib-src/ctags.sh b/lib-src/ctags.sh
> new file mode 100755
> index 00000000000..13a4320d9e9
> --- /dev/null
> +++ b/lib-src/ctags.sh
> @@ -0,0 +1,2 @@
> +#!/bin/sh
> +exec '@ETAGS_PROGRAM@' --ctags=3D"$0" "$@"

I think this file should not be executable (and I'm not sure why it's
called "ctags.sh" rather than "ctags.in" or something similar, which
would indicate it needs to be processed to yield an executable file).

> +  for (; *s; s++)
> +    {
> +      if (*s =3D=3D '"')
> +        store (d, i, bscount + 1, '\\');

This sholud be i =3D store (d, i , ...), so we don't lose the backslashes.

Pip





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

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


Received: (at 76322) by debbugs.gnu.org; 9 Mar 2025 12:16:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 09 08:16:07 2025
Received: from localhost ([127.0.0.1]:58719 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1trFZe-0004cD-ST
	for submit <at> debbugs.gnu.org; Sun, 09 Mar 2025 08:16:07 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:59382)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1trFZa-0004bf-5g
 for 76322 <at> debbugs.gnu.org; Sun, 09 Mar 2025 08:16:04 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1trFZT-0000Ae-W0; Sun, 09 Mar 2025 08:15:56 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=LxYZCzWgAzvZRaqVJfgizF1mPZfHn9j4yDIWTyo4qXs=; b=bylfiTawOU/J
 LS+mmOU/Q1aR5CHfLX6x77tUZrvZ1lKl0n4GpeB7HhoBvBXRkB/eclxGkCkHjnTYkyDm7hKWqdj8h
 2UNLhSNofkSnTSkZZFuiUP04miqvkHenGBM6mRcQHKk+JnwV6cUFtBwe0IfqJgoOyCb2ym07hQVv7
 Tb78IoeA207wqNyFmq2Z4zfsmZxnXSK5RpF3bYdK4tP4dwtxW2VsS41Yceop2lsM9WOSpwqPM6t3+
 A/dtYaKmBPcUp/lgP27P9ZudTPPbBgiZLKqywqAxpAWdPgCYL+Rs0DXuNIK1Z8q8FGaLwMiijDY7n
 bqNhmrtDt//6r3KB5vNQJA==;
Date: Sun, 09 Mar 2025 14:15:51 +0200
Message-Id: <86ecz6flhk.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Paul Eggert <eggert@HIDDEN>
In-Reply-To: <719e33a6-66cb-41af-a01e-be1b5a1ffdad@HIDDEN> (message from
 Paul Eggert on Sun, 9 Mar 2025 00:13:51 -0800)
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN> <719e33a6-66cb-41af-a01e-be1b5a1ffdad@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <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 (---)

> Date: Sun, 9 Mar 2025 00:13:51 -0800
> Cc: 76322 <at> debbugs.gnu.org
> From: Paul Eggert <eggert@HIDDEN>
> 
> > Thanks.  This mostly worked, but I needed a few minor changes (below).
> > We should use _spawnvp, not _execvp, since the latter doesn't return,
> > so we cannot return the exit status of etags to the caller.  More
> > importantly, the counting of bytes to allocate missed the PROGRAM part
> > of --ctags=PROGRAM, so ctags would crash in weird ways.  Finally, I
> > need to include stdio.h to get the declaration of perror.  Here's the
> > patch:
> 
> Thanks, I incorporated all that into the proposed patch. A couple of 
> things, though. First, when _spawnvp returns -1 I assume ctags should 
> call perror and exit with status 127 rather than simply try to exit with 
> status -1. Second and more important, my earlier proposal violated the 
> GNU Coding Standards because its behavior depended on its name.[1]
> 
> Fixing the second problem simplified the C and shell code a bit. Revised 
> patch attached.

Thanks, but this doesn't quite work.  The reason is here:

> +  static char const etags_program[] = ETAGS_PROGRAM;

ETAGS_PROGRAM is computed by lib-src/Makefile, which sets it to the
absolute file name of etags in the installation tree.  So if the etags
there doesn't exist (e.g., Emacs was not yet installed), or is not the
new etags which understands the --ctags= option, ctags will fail.  So
I cannot even run the etags test suite after building the patched
tree, because all ctags tests failed.

Why did you drop the previous approach, which just replaced "ctags"
with "etags" in the original argv[0]?  That did work, was reliable,
and allowed to move the installed programs to any other directory
(something that happens a lot on Windows).  It also made sure the pair
of programs came from the same Emacs version, which is also important.
Was there any problem with that approach that required you to abandon
it?

Thanks.




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

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


Received: (at 76322) by debbugs.gnu.org; 9 Mar 2025 08:14:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 09 04:14:18 2025
Received: from localhost ([127.0.0.1]:58100 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1trBna-0006LL-Rt
	for submit <at> debbugs.gnu.org; Sun, 09 Mar 2025 04:14:18 -0400
Received: from mail.cs.ucla.edu ([131.179.128.66]:49526)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eggert@HIDDEN>)
 id 1trBnP-0006KY-8M
 for 76322 <at> debbugs.gnu.org; Sun, 09 Mar 2025 04:14:13 -0400
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id C144C3C010856;
 Sun,  9 Mar 2025 00:13:56 -0800 (PST)
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP
 id pjenJtKZ7YRg; Sun,  9 Mar 2025 00:13:55 -0800 (PST)
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 69FE23C010857;
 Sun,  9 Mar 2025 00:13:55 -0800 (PST)
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 69FE23C010857
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu;
 s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1741508035;
 bh=1wiH8xq8Mtt48xj8dLpbtyUrLlRorBx976BZRAZVTmE=;
 h=Message-ID:Date:MIME-Version:To:From;
 b=O6slWB5blV1eoTFgaRPRJ09FGOpf0hErdGeAXlfuKglqiqZgy8vmzWdFcnBSkvsgF
 Gh1mnFGxQgM1y0z/B/tDTRzWh8I8oUjXSjJgyEC7jkGLST2pP8lUXG7fap1AyE2RVv
 X0vRXWGkjCJ/8eREapOCg3RRMjISzpah1Ya5cg2pyFZVeiMDKJwuKmIcfjudq9sOTu
 38GZuMUXbg+YDCmpGQXlqTUhKeOTidRyufVsuh1TCygxtB31JaUoMFG6/HB5iBQ28v
 w+k9BgWonozQTVnK8GXu/gyyLeGxAFu93uXKLXHuykjA4/DIy//d6teXKDSq4tUByA
 dcPvy8bMslbHg==
X-Virus-Scanned: amavis at mail.cs.ucla.edu
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP
 id gRpswDy8bL2b; Sun,  9 Mar 2025 00:13:55 -0800 (PST)
Received: from [192.168.254.12] (unknown [47.147.225.25])
 by mail.cs.ucla.edu (Postfix) with ESMTPSA id 3FBA23C010856;
 Sun,  9 Mar 2025 00:13:55 -0800 (PST)
Content-Type: multipart/mixed; boundary="------------9gmm2n9oWGUy1pHeOdxqY2Vp"
Message-ID: <719e33a6-66cb-41af-a01e-be1b5a1ffdad@HIDDEN>
Date: Sun, 9 Mar 2025 00:13:51 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
To: Eli Zaretskii <eliz@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
 <86senqmgkg.fsf@HIDDEN>
Content-Language: en-US
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
In-Reply-To: <86senqmgkg.fsf@HIDDEN>
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <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: -1.0 (-)

This is a multi-part message in MIME format.
--------------9gmm2n9oWGUy1pHeOdxqY2Vp
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2025-03-06 05:31, Eli Zaretskii wrote:
>> Date: Tue, 4 Mar 2025 10:37:05 -0800
>> Cc: 76322 <at> debbugs.gnu.org
>> From: Paul Eggert <eggert@HIDDEN>
>>
>> Thanks for the review. Revised patch attached, which I think addresses
>> all the comments.
> 
> Thanks.  This mostly worked, but I needed a few minor changes (below).
> We should use _spawnvp, not _execvp, since the latter doesn't return,
> so we cannot return the exit status of etags to the caller.  More
> importantly, the counting of bytes to allocate missed the PROGRAM part
> of --ctags=PROGRAM, so ctags would crash in weird ways.  Finally, I
> need to include stdio.h to get the declaration of perror.  Here's the
> patch:

Thanks, I incorporated all that into the proposed patch. A couple of 
things, though. First, when _spawnvp returns -1 I assume ctags should 
call perror and exit with status 127 rather than simply try to exit with 
status -1. Second and more important, my earlier proposal violated the 
GNU Coding Standards because its behavior depended on its name.[1]

Fixing the second problem simplified the C and shell code a bit. Revised 
patch attached.

[1]: 
https://www.gnu.org/prep/standards/html_node/User-Interfaces.html#index-program-name-and-its-behavior
--------------9gmm2n9oWGUy1pHeOdxqY2Vp
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-Make-ctags-a-thin-wrapper-around-etags.patch"
Content-Disposition: attachment;
 filename="0001-Make-ctags-a-thin-wrapper-around-etags.patch"
Content-Transfer-Encoding: base64

RnJvbSA0YTI5MmFmODRiZmU4MThjMGY4MmQ1NWMwNDNlZGZjMjJkNDI3NjcxIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBTYXQsIDggTWFyIDIwMjUgMjM6MzY6NTIgLTA4MDAKU3ViamVjdDogW1BBVENI
XSBNYWtlIGN0YWdzIGEgdGhpbiB3cmFwcGVyIGFyb3VuZCBldGFncwoKVGhpcyBmaXhlcyBh
IEZJWE1FIGluIGxpYi1zcmMvTWFrZWZpbGUuaW4gYW5kIHNwZWVkcyB1cCBjb21waWxhdGlv
bgpxdWl0ZSBhIGJpdCBvbiBteSBvbGRlciBDUFUgd2hlbiBJIGNvbXBpbGUgd2l0aAktLWVu
YWJsZS1nY2Mtd2FybmluZ3MuCkl0IGFsc28gbGVzc2VucyBpbnN0YWxsYXRpb24gYW5kIHJ1
bnRpbWUgZm9vdHByaW50LgoqIGphdmEvTWFrZWZpbGUuaW4gKGluc3RhbGxfdGVtcCk6IFRy
ZWF0IGN0YWdzIGxpa2UgcmNzMmxvZy4KKiBsaWItc3JjL01ha2VmaWxlLmluIChJTlNUQUxM
QUJMRV9FWEVTLCBJTlNUQUxMQUJMRV9TQ1JJUFRTKToKTmV3IG1hY3JvcywgcmVwbGFjaW5n
IElOU1RBTExBQkxFUy4gIEFsbCB1c2VzIGNoYW5nZWQuCihVVElMSVRZX0VYRVMpOiBSZW5h
bWUgZnJvbSBVVElMSVRJRVMsIGZvciBjb25zaXN0ZW5jeS4gIEFsbCB1c2VzIGNoYW5nZWQu
CihVVElMSVRZX1NDUklQVFMpOiBSZW5hbWUgZnJvbSBTQ1JJUFRTLCBmb3IgY29uc2lzdGVu
Y3kuICBBbGwgdXNlcyBjaGFuZ2VkLgoobW9zdGx5Y2xlYW4pOiBDbGVhbiAqLXQuCihTRVRf
ZXRhZ3MpOiBOZXcgbWFjcm8uCihjdGFncyk6IE5ldyBydWxlIGlmIG5vdCBFWEVFWFQuCihj
dGFncyR7RVhFRVhUfSk6IFJlbW92ZSBydWxlIHVubGVzcyBFWEVFWFQuICBEZWZpbmUgRVRB
R1NfUFJPR1JBTS4KVXNlIG9ubHkgTlRMSUIgYW5kIExPQURMSUJFUy4KKiBsaWItc3JjL2N0
YWdzLmM6IFJld3JpdGUgZnJvbSBzY3JhdGNoOyBpdCdzIG5vdyB1c2VkIG9ubHkgaWYgRVhF
RVhULgoqIGxpYi1zcmMvY3RhZ3Muc2g6IE5ldyBmaWxlLgoqIGxpYi1zcmMvZXRhZ3MuYyAo
Q1RBR1MpOiBSZW1vdmUuICBBbGwgdXNlcyByZXBsYWNlZCBieSAuLi4KKGN0YWdzKTogLi4u
IHRoaXMgbmV3IHN0YXRpYyB2YXIuCihTVERJTik6IFJlbW92ZSBtYWNyby4gIEFsbCB1c2Vz
IHJlcGxhY2VkIGJ5IG5ldyBTVERJTl9PUFRJT04gY29uc3RhbnQuCihDVEFHU19PUFRJT04s
IFNURElOX09QVElPTik6IE5ldyBjb250YW50cy4KKGxvbmdvcHRzKTogTmV3IC0tY3RhZ3Mg
b3B0aW9uLgooY3RhZ3NfZGVmYXVsdF9DX2hlbHApOiBOZXcgY29uc3RhbnQsCnRvIG92ZXJy
aWRlIGRlZmF1bHRfQ19oZWxwIGF0IHJ1bnRpbWUuCihkZWZhdWx0X0NfaGVscCk6IE5vdyBh
bHdheXMgdGhlIGV0YWdzIHZlcnNpb24uCihDX0xBTkdfTkFNRVNfSU5ERVgpOiBOZXcgbWFj
cm8uCihwcmludF9sYW5ndWFnZV9uYW1lcyk6IERvIG5vdCBhc3N1bWUgZXRhZ3MuCihQUk9H
UkFNX05BTUUpOiBSZW1vdmUuICBBbGwgdXNlcyByZW1vdmVkLgoocHJpbnRfaGVscCk6IERv
Y3VtZW50IC0tY3RhZ3MgaWYgUFJJTlRfVU5ET0NVTUVOVEVEX09QVElPTlNfSEVMUC4KKG1h
aW4pOiBTdXBwb3J0IG5ldyAtLWN0YWdzIG9wdGlvbiwgYW5kIHN1cHBvcnQgYWxsIFtjZV10
YWdzIG9wdGlvbnMuCi0tLQogZXRjL05FV1MgICAgICAgICAgICB8ICAgNCArKwogZXRjL1BS
T0JMRU1TICAgICAgICB8ICAgNCArLQogamF2YS9NYWtlZmlsZS5pbiAgICB8ICAgNyArKy0K
IGxpYi1zcmMvTWFrZWZpbGUuaW4gfCAgNjAgKysrKysrKysrKysrKy0tLS0tLS0KIGxpYi1z
cmMvY3RhZ3MuYyAgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKy0KIGxpYi1zcmMvY3RhZ3Muc2ggICAgfCAgIDIgKwogbGliLXNyYy9ldGFncy5j
ICAgICB8IDEzMSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogNyBmaWxlcyBjaGFuZ2VkLCAyNDEgaW5zZXJ0aW9ucygrKSwgOTAgZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA3NTUgbGliLXNyYy9jdGFncy5zaAoKZGlmZiAtLWdpdCBhL2V0
Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggMjU4ZjBkY2M0YmEuLjAyNDNiY2RjMGVlIDEwMDY0
NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVXUwpAQCAtMjksNiArMjksMTAgQEAgYXBw
bGllcywgYW5kIHBsZWFzZSBhbHNvIHVwZGF0ZSBkb2NzdHJpbmdzIGFzIG5lZWRlZC4KIFRo
ZSB0cmFkaXRpb25hbCB1bmV4ZWMgZHVtcGVyLCBkZXByZWNhdGVkIHNpbmNlIEVtYWNzIDI3
LCBoYXMgYmVlbgogcmVtb3ZlZC4KIAorLS0tCisqKiBjdGFncyBpcyBub3cgbWVyZWx5IGEg
dGhpbiB3cmFwcGVyIGFyb3VuZCBldGFncy4KK1RoaXMgc3BlZWRzIHVwIGNvbXBpbGF0aW9u
IGFuZCBsZXNzZW5zIGluc3RhbGxhdGlvbiBmb290cHJpbnQuCisKIC0tLQogKiogQ2hhbmdl
ZCBHQ0MgZGVmYXVsdCBvcHRpb25zIG9uIDMyLWJpdCB4ODYgc3lzdGVtcy4KIFdoZW4gdXNp
bmcgR0NDIDQgb3IgbGF0ZXIgdG8gYnVpbGQgRW1hY3Mgb24gMzItYml0IHg4NiBzeXN0ZW1z
LApkaWZmIC0tZ2l0IGEvZXRjL1BST0JMRU1TIGIvZXRjL1BST0JMRU1TCmluZGV4IDBkNjFh
M2JjNzZlLi45NTI4MTNmMGM1YiAxMDA2NDQKLS0tIGEvZXRjL1BST0JMRU1TCisrKyBiL2V0
Yy9QUk9CTEVNUwpAQCAtMzk3Myw3ICszOTczLDcgQEAgVGhlcmUgYXJlIHNldmVyYWwga25v
d24gd29ya2Fyb3VuZHM6CiAKIFRoZSBsaW5rZXIgZXJyb3IgbWVzc2FnZXMgbG9vayBsaWtl
IHRoaXM6CiAKLSBvby1zcGQvaTM4Ni9jdGFncy5vOmN0YWdzLmM6KC50ZXh0KzB4MTU2ZSk6
IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9pbXBfX3JlX3NldF9zeW50YXgnCisgb28tc3Bk
L2kzODYvZXRhZ3MubzpldGFncy5jOigudGV4dCsweDE1NmUpOiB1bmRlZmluZWQgcmVmZXJl
bmNlIHRvIGBfaW1wX19yZV9zZXRfc3ludGF4JwogIGNvbGxlY3QyOiBsZCByZXR1cm5lZCAx
IGV4aXQgc3RhdHVzCiAKIFRoaXMgaGFwcGVucyBiZWNhdXNlIEdDQyBmaW5kcyBhbiBpbmNv
bXBhdGlibGUgcmVnZXguaCBoZWFkZXIKQEAgLTQwMDQsNyArNDAwNCw3IEBAIFNvbWUgdmVy
c2lvbnMgb2YgbWluZ3czMiBtYWtlIG9uIHNvbWUgdmVyc2lvbnMgb2YgV2luZG93cyBkbyBu
b3Qgc2VlbQogdG8gZGV0ZWN0IHRoZSBzaGVsbCBjb3JyZWN0bHkuICBUcnkgIm1ha2UgU0hF
TEw9Y21kLmV4ZSIsIG9yIGlmIHRoYXQKIGZhaWxzLCB0cnkgcnVubmluZyBtYWtlIGZyb20g
Q3lnd2luIGJhc2ggaW5zdGVhZC4KIAotKioqIEJ1aWxkaW5nICdjdGFncycgZm9yIE1TLVdp
bmRvd3Mgd2l0aCB0aGUgTWluR1cgcG9ydCBvZiBHQ0MgZmFpbHMuCisqKiogQnVpbGRpbmcg
J2V0YWdzJyBmb3IgTVMtV2luZG93cyB3aXRoIHRoZSBNaW5HVyBwb3J0IG9mIEdDQyBmYWls
cy4KIAogVGhpcyBtaWdodCBoYXBwZW4gZHVlIHRvIGEgYnVnIGluIHRoZSBNaW5HVyBoZWFk
ZXIgYXNzZXJ0LmgsIHdoaWNoCiBkZWZpbmVzIHRoZSAnYXNzZXJ0JyBtYWNybyB3aXRoIGEg
dHJhaWxpbmcgc2VtaS1jb2xvbi4gIFRoZSBmb2xsb3dpbmcKZGlmZiAtLWdpdCBhL2phdmEv
TWFrZWZpbGUuaW4gYi9qYXZhL01ha2VmaWxlLmluCmluZGV4IDM5ZDZlODVjN2E3Li4yMWFj
NGU0MjUwZCAxMDA2NDQKLS0tIGEvamF2YS9NYWtlZmlsZS5pbgorKysgYi9qYXZhL01ha2Vm
aWxlLmluCkBAIC0zMDUsOCArMzA1LDEzIEBAIGluc3RhbGxfdGVtcDoKIAkgICAgY3AgLWYg
JCRmaWxlIGluc3RhbGxfdGVtcC9saWIvJChBTkRST0lEX0FCSSk7CVwKIAkgIGZpIAkJCQkJ
CQlcCiAJZG9uZQotIyBOZXh0LCBwcm9kdWNlIGEgdmVyc2lvbiBvZiByY3MybG9nIGJlZml0
dGluZyBBbmRyb2lkJ3MgbmFtaW5nCisjIE5leHQsIHByb2R1Y2UgdmVyc2lvbnMgb2YgY3Rh
Z3MgYW5kIHJjczJsb2cgYmVmaXR0aW5nIEFuZHJvaWQncyBuYW1pbmcKICMgY29udmVudGlv
bnMgYW5kIHNoZWxsIGludGVycHJldGVyIGxvY2F0aW9uLgorCSQoQU1fVl9hdCkgXAorCXNl
ZCAnc3wvYmluL3NofC9zeXN0ZW0vYmluL3NofCcJCQkJCVwKKwkgJCh0b3Bfc3JjZGlyKS9s
aWItc3JjL2N0YWdzID4JCQkJCVwKKwkgaW5zdGFsbF90ZW1wL2xpYi8kKEFORFJPSURfQUJJ
KS9saWJjdGFncy5zbworCSQoQU1fVl9hdCkgY2htb2QgK3ggaW5zdGFsbF90ZW1wL2xpYi8k
KEFORFJPSURfQUJJKS9saWJjdGFncy5zbwogCSQoQU1fVl9hdCkgXAogCXNlZCAnc3wvYmlu
L3NofC9zeXN0ZW0vYmluL3NofCcJCQkJCVwKIAkgJCh0b3Bfc3JjZGlyKS9saWItc3JjL3Jj
czJsb2cgPgkJCQlcCmRpZmYgLS1naXQgYS9saWItc3JjL01ha2VmaWxlLmluIGIvbGliLXNy
Yy9NYWtlZmlsZS5pbgppbmRleCA0MzlkOWExYTUyZC4uMjhjNTYwMjM0MzMgMTAwNjQ0Ci0t
LSBhL2xpYi1zcmMvTWFrZWZpbGUuaW4KKysrIGIvbGliLXNyYy9NYWtlZmlsZS5pbgpAQCAt
MTU1LDEyICsxNTUsMTMgQEAgQU5EUk9JRD0KIENMSUVOVFcgPSBAQ0xJRU5UV0AKIAogIyBU
aGluZ3MgdGhhdCBhIHVzZXIgbWlnaHQgYWN0dWFsbHkgcnVuLCB3aGljaCBzaG91bGQgYmUg
aW5zdGFsbGVkIGluIGJpbmRpci4KLUlOU1RBTExBQkxFUyA9IGV0YWdzJHtFWEVFWFR9IGN0
YWdzJHtFWEVFWFR9IGVtYWNzY2xpZW50JHtFWEVFWFR9ICQoQ0xJRU5UVykgXAotICAgICAg
ICAgICAgICAgZWJyb3dzZSR7RVhFRVhUfQorSU5TVEFMTEFCTEVfRVhFUyA9IGV0YWdzJHtF
WEVFWFR9ICQoaWYgJChFWEVFWFQpLCBjdGFncyQoRVhFRVhUKSkgXAorICBlbWFjc2NsaWVu
dCR7RVhFRVhUfSAkKENMSUVOVFcpIGVicm93c2Uke0VYRUVYVH0KK0lOU1RBTExBQkxFX1ND
UklQVFMgPSAkKGlmICQoRVhFRVhUKSwgLCBjdGFncykKIAogIyBUaGluZ3MgdGhhdCBFbWFj
cyBydW5zIGludGVybmFsbHksIG9yIGR1cmluZyB0aGUgYnVpbGQgcHJvY2VzcywKICMgIHdo
aWNoIHNob3VsZCBub3QgYmUgaW5zdGFsbGVkIGluIGJpbmRpci4KLVVUSUxJVElFUyA9IGhl
eGwke0VYRUVYVH0gCQkJIAkgXAorVVRJTElUWV9FWEVTID0gaGV4bCR7RVhFRVhUfSBcCiAJ
ICAgICQoaWYgJCh3aXRoX21haWx1dGlscyksICwgbW92ZW1haWwke0VYRUVYVH0pIFwKICAg
ICAgICAgICAgICQoYW5kICQodXNlX2dhbWVkaXIpLCB1cGRhdGUtZ2FtZS1zY29yZSR7RVhF
RVhUfSkKIApAQCAtMTc1LDEyICsxNzYsMTIgQEAgRE9OVF9JTlNUQUxMPQogZW5kaWYKIGVu
ZGlmCiAKLSMgTGlrZSBVVElMSVRJRVMsIGJ1dCB0aGV5J3JlIG5vdCBzeXN0ZW0tZGVwZW5k
ZW50LCBhbmQgc2hvdWxkIG5vdCBiZQorIyBMaWtlIFVUSUxJVFlfRVhFUywgYnV0IHRoZXkn
cmUgbm90IHN5c3RlbS1kZXBlbmRlbnQsIGFuZCBzaG91bGQgbm90IGJlCiAjICBkZWxldGVk
IGJ5IHRoZSBkaXN0Y2xlYW4gdGFyZ2V0LgotU0NSSVBUUz0gcmNzMmxvZworVVRJTElUWV9T
Q1JJUFRTID0gcmNzMmxvZwogCiAjIEFsbCBmaWxlcyB0aGF0IGFyZSBjcmVhdGVkIGJ5IHRo
ZSBsaW5rZXIsIGkuZS4sIHdob3NlIG5hbWVzIGVuZCBpbiAke0VYRUVYVH0uCi1FWEVfRklM
RVMgPSAke0lOU1RBTExBQkxFU30gJHtVVElMSVRJRVN9ICR7RE9OVF9JTlNUQUxMfQorRVhF
X0ZJTEVTID0gJHtJTlNUQUxMQUJMRV9FWEVTfSAke1VUSUxJVFlfRVhFU30gJHtET05UX0lO
U1RBTEx9CiAKICMgU3BlY2lmeSBhZGRpdGlvbmFsIC1EIGZsYWdzIGZvciBtb3ZlbWFpbC4g
T3B0aW9uczoKICMgLURNQUlMX1VTRV9GTE9DSyBvciAtRE1BSUxfVVNFX0xPQ0tGICh1c2Ug
ZmxvY2sgb3IgbG9ja2YgZm9yIGZpbGUgbG9ja2luZykuCkBAIC0yODMsNyArMjg0LDcgQEAg
QUxMX0NYWEZMQUdTID0KICMgQ29uZmlndXJhdGlvbiBmaWxlcyBmb3IgLm8gZmlsZXMgdG8g
ZGVwZW5kIG9uLgogY29uZmlnX2ggPSAuLi9zcmMvY29uZmlnLmggJChzcmNkaXIpLy4uL3Ny
Yy9jb25mX3Bvc3QuaAogCi1hbGw6ICR7RVhFX0ZJTEVTfSAke1NDUklQVFN9CithbGw6ICR7
RVhFX0ZJTEVTfSAke0lOU1RBTExBQkxFX1NDUklQVFN9ICR7VVRJTElUWV9TQ1JJUFRTfQog
CiBpZmVxICgkKFNFQ0NPTVBfRklMVEVSKSwxKQogYWxsOiBzZWNjb21wLWZpbHRlci5icGYg
c2VjY29tcC1maWx0ZXItZXhlYy5icGYKQEAgLTMyNCw3ICszMjUsNyBAQCAkKERFU1RESVIp
JHthcmNobGliZGlyfToKIAl1bWFzayAwMjIgJiYgJHtNS0RJUl9QfSAiJChERVNURElSKSR7
YXJjaGxpYmRpcn0iCiAJZXhwX2FyY2hsaWJkaXI9YGNkICIkKERFU1RESVIpJHthcmNobGli
ZGlyfSIgJiYgcHdkIC1QYCAmJiBcCiAJaWYgWyAiJCRleHBfYXJjaGxpYmRpciIgIT0gImBw
d2QgLVBgIiBdOyB0aGVuIFwKLQkgIGZvciBmaWxlIGluICR7VVRJTElUSUVTfTsgZG8gXAor
CSAgZm9yIGZpbGUgaW4gJHtVVElMSVRZX0VYRVN9OyBkbyBcCiAJICAgICQoSU5TVEFMTF9Q
Uk9HUkFNKSAkKElOU1RBTExfU1RSSVApICQkZmlsZSBcCiAJICAgICAgIiQoREVTVERJUikk
e2FyY2hsaWJkaXJ9LyQkZmlsZSIgfHwgZXhpdDsgXAogCSAgZG9uZSA7IFwKQEAgLTM1MSw3
ICszNTIsNyBAQCAkKERFU1RESVIpJHthcmNobGliZGlyfToKICAgZW5kaWYKIAlleHBfYXJj
aGxpYmRpcj1gY2QgIiQoREVTVERJUikke2FyY2hsaWJkaXJ9IiAmJiBwd2QgLVBgICYmIFwK
IAlpZiBbICIkJGV4cF9hcmNobGliZGlyIiAhPSAiYGNkICR7c3JjZGlyfSAmJiBwd2QgLVBg
IiBdOyB0aGVuIFwKLQkgIGZvciBmaWxlIGluICR7U0NSSVBUU307IGRvIFwKKwkgIGZvciBm
aWxlIGluICR7VVRJTElUWV9TQ1JJUFRTfTsgZG8gXAogCSAgICAkKElOU1RBTExfU0NSSVBU
KSAke3NyY2Rpcn0vJCRmaWxlIFwKIAkgICAgICAiJChERVNURElSKSR7YXJjaGxpYmRpcn0v
JCRmaWxlIiB8fCBleGl0OyBcCiAJICBkb25lIDsgXApAQCAtMzY0LDI2ICszNjUsMzkgQEAg
aW5zdGFsbDoKIAkkKGluZm8gJC4pCiAJJChpbmZvIEluc3RhbGxpbmcgdXRpbGl0aWVzIGZv
ciB1c2VycyB0byBydW4uKQogCXVtYXNrIDAyMiAmJiAke01LRElSX1B9ICIkKERFU1RESVIp
JHtiaW5kaXJ9IgotCWZvciBmaWxlIGluICR7SU5TVEFMTEFCTEVTfSA7IGRvIFwKKwlmb3Ig
ZmlsZSBpbiAke0lOU1RBTExBQkxFX0VYRVN9IDsgZG8gXAogCSAgJChJTlNUQUxMX1BST0dS
QU0pICQoSU5TVEFMTF9TVFJJUCkgJCR7ZmlsZX0gXAogCSAgICAiJChERVNURElSKSR7Ymlu
ZGlyfSIvYCBcCiAJICAgICAgZWNobyAkJHtmaWxlfSB8IHNlZCAtZSAncy8ke0VYRUVYVH0k
JC8vJyAtZSAnJChUUkFOU0ZPUk0pJyBcCiAJICAgIGAke0VYRUVYVH0gfHwgZXhpdDsgXAog
CWRvbmUKKwlmb3IgZmlsZSBpbiAnJyAke0lOU1RBTExBQkxFX1NDUklQVFN9OyBkbyBcCisJ
ICBbICIkJGZpbGUiIF0gfHwgY29udGludWU7IFwKKwkgICQoSU5TVEFMTF9QUk9HUkFNKSAk
JHtmaWxlfSBcCisJICAgICIkKERFU1RESVIpJHtiaW5kaXJ9Ii9gIFwKKwkgICAgICBlY2hv
ICQke2ZpbGV9IHwgc2VkIC1lICckKFRSQU5TRk9STSknIFwKKwkgICAgYCB8fCBleGl0OyBc
CisJZG9uZQogCiB1bmluc3RhbGw6Ci0JZm9yIGZpbGUgaW4gJHtJTlNUQUxMQUJMRVN9OyBk
byBcCisJZm9yIGZpbGUgaW4gJHtJTlNUQUxMQUJMRV9FWEVTfTsgZG8gXAogCSAgcm0gLWYg
IiQoREVTVERJUikke2JpbmRpcn0iL2AgXAogCSAgICBlY2hvICQke2ZpbGV9IHwgc2VkIC1l
ICdzLyR7RVhFRVhUfSQkLy8nIC1lICckKFRSQU5TRk9STSknIFwKIAkgIGAke0VYRUVYVH07
IFwKIAlkb25lCisJZm9yIGZpbGUgaW4gJycgJHtJTlNUQUxMQUJMRV9TQ1JJUFRTfTsgZG8g
XAorCSAgWyAiJCRmaWxlIiBdIHx8IGNvbnRpbnVlOyBcCisJICBybSAtZiAiJChERVNURElS
KSR7YmluZGlyfSIvYCBcCisJICAgIGVjaG8gJCR7ZmlsZX0gfCBzZWQgLWUgJyQoVFJBTlNG
T1JNKScgXAorCSAgYDsgXAorCWRvbmUKIAlpZiBbIC1kICIkKERFU1RESVIpJHthcmNobGli
ZGlyfSIgXTsgdGhlbiBcCiAJICBjZCAiJChERVNURElSKSR7YXJjaGxpYmRpcn0iICYmIFwK
LQkgIHJtIC1mICR7VVRJTElUSUVTfSAke1NDUklQVFN9OyBcCisJICBybSAtZiAke1VUSUxJ
VFlfRVhFU30gJHtVVElMSVRZX1NDUklQVFN9OyBcCiAJZmkKIAogbW9zdGx5Y2xlYW46Ci0J
cm0gLWYgY29yZSAuLyoubyAuLyoucmVzCisJcm0gLWYgY29yZSAuLyoubyAuLyoucmVzIC4v
Ki10CiAKIGNsZWFuOiBtb3N0bHljbGVhbgogCS1ybSAtZiBzZWNjb21wLWZpbHRlci5icGYg
c2VjY29tcC1maWx0ZXIucGZjIHNlY2NvbXAtZmlsdGVyLWV4ZWMuYnBmIHNlY2NvbXAtZmls
dGVyLWV4ZWMucGZjCkBAIC00MTUsMTIgKzQyOSwyMCBAQCBldGFnc19saWJzID0KIGV0YWdz
JHtFWEVFWFR9OiAke2V0YWdzX2RlcHN9CiAJJChBTV9WX0NDTEQpJChDQykgJHtBTExfQ0ZM
QUdTfSAtbyAkQCAkPCAkKGV0YWdzX2xpYnMpCiAKLSMjIGN0YWdzLmMgaXMgZGlzdGluY3Qg
ZnJvbSBldGFncy5jIHNvIHRoYXQgcGFyYWxsZWwgbWFrZXMgZG8gbm90IHdyaXRlIHR3bwot
IyMgZXRhZ3MubyBmaWxlcyBvbiB0b3Agb2YgZWFjaCBvdGhlci4KLSMjIEZJWE1FPwotIyMg
Q2FuJ3Qgd2UgdXNlIGEgd3JhcHBlciB0aGF0IGNhbGxzICdldGFncyAtLWN0YWdzJz8KLWN0
YWdzJHtFWEVFWFR9OiAke3NyY2Rpcn0vY3RhZ3MuYyAke2V0YWdzX2RlcHN9Ci0JJChBTV9W
X0NDTEQpJChDQykgJHtBTExfQ0ZMQUdTfSAtbyAkQCAkPCAkKGV0YWdzX2xpYnMpCitTRVRf
ZXRhZ3MgPSBldGFncz0iJHtiaW5kaXJ9LyJgZWNobyBldGFncyB8IHNlZCAtZSAnJChUUkFO
U0ZPUk0pJ2AKKworaWZlcSAoJChFWEVFWFQpLCkKKyAgY3RhZ3M6ICR7c3JjZGlyfS9jdGFn
cy5zaAorCSQoQU1fVl9HRU4pJChTRVRfZXRhZ3MpICYmIFwKKwlzZWQgInNcIkBFVEFHU19Q
Uk9HUkFNQFwiJCRldGFnc1wiZyIgJD8gPiRALXQKKwkkKEFNX1ZfYXQpY2htb2QgYSt4ICRA
LXQKKwkkKEFNX1ZfYXQpbXYgJEAtdCAkQAorZWxzZQorICBjdGFncyR7RVhFRVhUfTogJHtz
cmNkaXJ9L2N0YWdzLmMgJChOVExJQikgJChjb25maWdfaCkKKwkkKEFNX1ZfR0VOKSQoU0VU
X2V0YWdzKSAmJiBcCisJJChDQykgJHtBTExfQ0ZMQUdTfSAtREVUQUdTX1BST0dSQU09Ilwi
JCRldGFnc1wiIiAtbyAkQCBcCisJICAkPCAkKE5UTElCKSAkKExPQURMSUJFUykKK2VuZGlm
CiAKIGFzc2V0LWRpcmVjdG9yeS10b29sJHtFWEVFWFR9OiAke3NyY2Rpcn0vYXNzZXQtZGly
ZWN0b3J5LXRvb2wuYyAkKGNvbmZpZ19oKQogCSQoQU1fVl9DQ0xEKSQoQ0MpICR7QUxMX0NG
TEFHU30gJDwgJChMT0FETElCRVMpIC1vICRACmRpZmYgLS1naXQgYS9saWItc3JjL2N0YWdz
LmMgYi9saWItc3JjL2N0YWdzLmMKaW5kZXggMGE2ODM4YTlkYmIuLmY0MjEzM2M0NGUzIDEw
MDY0NAotLS0gYS9saWItc3JjL2N0YWdzLmMKKysrIGIvbGliLXNyYy9jdGFncy5jCkBAIC0x
LDIgKzEsMTIxIEBACi0jZGVmaW5lIENUQUdTIDEKLSNpbmNsdWRlICJldGFncy5jIgorLyog
TGlrZSBjdGFncy5zaCBidXQgZm9yIE1TLVdpbmRvd3MsIHdoaWNoIGxhY2tzIHRoZSBzaGVs
bC4KKworQ29weXJpZ2h0IDIwMjUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisK
K1RoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KKworR05VIEVtYWNzIGlzIGZyZWUg
c29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKK2l0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5Cit0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lv
biAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKK3lvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKworR05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCitidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorR05VIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKK2Fsb25nIHdpdGgg
R05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv
Pi4gICovCisKKyNkZWZpbmUgREVGRVJfTVNfVzMyX0gKKyNpbmNsdWRlIDxjb25maWcuaD4K
KworI2luY2x1ZGUgPGZpbGVuYW1lLmg+CisKKyNpbmNsdWRlIDxtYWxsb2MuaD4KKyNpbmNs
dWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5o
PgorCisvKiBEZWNsYXJlIF9leGVjdiBieSBoYW5kLCBzaW5jZSBNUy1XaW5kb3dzIDxwcm9j
ZXNzLmg+IGNvbGxpZGVzIHdpdGgKKyAgIC4uL3NyYy9wcm9jZXNzLmguICAqLworI2luY2x1
ZGUgPHN0ZGludC5oPiAvKiBmb3IgaW50cHRyX3QgKi8KK2V4dGVybiBpbnRwdHJfdCBfc3Bh
d252IChpbnQsIGNoYXIgY29uc3QgKiwgY2hhciBjb25zdCAqY29uc3QgKik7CisKKyNpZmRl
ZiBXSU5ET1dTTlQKKy8qIFN0b3JlIGludG8gRFtJXSB0aHJvdWdoIERbSSArIE4gLSAxXSB0
aGUgYnl0ZSBDLCBhbmQgcmV0dXJuIEkgKyBOLgorICAgQnV0IGlmIEQgaXMgbnVsbCwganVz
dCByZXR1cm4gdGhlIGluY3JlbWVudGVkIGNvdW50LiAgKi8KK3N0YXRpYyBzaXplX3QKK3N0
b3JlIChjaGFyICpkLCBzaXplX3QgaSwgc2l6ZV90IG4sIGNoYXIgYykKK3sKKyAgaWYgKGQp
CisgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBuOyBqKyspCisgICAgICBkW2kgKyBqXSA9
IGM7CisgIHJldHVybiBpICsgbjsKK30KKyNlbmRpZgorCisvKiBSZXR1cm4gdGhlIG51bWJl
ciBvZiBieXRlcyB1c2VkIHRvIHJlcHJlc2VudCB0aGUgc3RyaW5nIFMgYXMgYW4KKyAgIGV4
ZWN2IGFyZ3VtZW50LCBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nIG51bGwgYnl0ZS4KKyAgIElm
IEQgaXMgbm9ubnVsbCwgYWxzbyBzdG9yZSB0aGUgcmVwcmVzZW50YXRpb24gaW50byBELgor
ICAgT24gTVMtV2luZG93cyBzb21lIGVzY2FwaW5nIGlzIHJlcXVpcmVkOgorICAgZHVlIHRv
IE1pY3Jvc29mdCBDIHJ1bnRpbWUgY29uc3RyYWludHMsIFMgY2Fubm90IGNvbnRhaW4gJ1xu
JywKKyAgIGFuZCBpZiBTIGNvbnRhaW5zICciJyB0aGUgcmVwcmVzZW50YXRpb24gY2Fubm90
IGJlIHVzZWQgZm9yIGFyZ3VtZW50IDAuICAqLworc3RhdGljIHNpemVfdAordzMyX2V4ZWNf
YXJnX3JlcHIgKGNoYXIgY29uc3QgKnJlc3RyaWN0IHMsIGNoYXIgKnJlc3RyaWN0IGQpCit7
CisgIHNpemVfdCBpOworI2lmZGVmIFdJTkRPV1NOVAorICAvKiBTZWUgPGh0dHBzOi8vbGVh
cm4ubWljcm9zb2Z0LmNvbS9lbi11cy9jcHAvYy1sYW5ndWFnZS9wYXJzaW5nLWMtY29tbWFu
ZC1saW5lLWFyZ3VtZW50cz4uCisgICAgIEFsdGhvdWdoIHF1b3RpbmcgaXMgbmVlZGVkIG9u
bHkgaWYgUyBpcyBlbXB0eSBvciBjb250YWlucyBzcGFjZSBvciB0YWIsCisgICAgIGl0IGlz
IHNpbXBsZXIgYW5kIHBlcmhhcHMgY2hlYXBlciB0byBhbHdheXMgcXVvdGUuICAqLworICBp
ID0gc3RvcmUgKGQsIDAsIDEsICciJyk7CisKKyAgc2l6ZV90IGJzY291bnQgPSAwOyAvKiBD
b3VudCBvZiBwcmVjZWRpbmcgYmFja3NsYXNoZXMuICAqLworICBmb3IgKDsgKnM7IHMrKykK
KyAgICB7CisgICAgICBpZiAoKnMgPT0gJyInKQorCXN0b3JlIChkLCBpLCBic2NvdW50ICsg
MSwgJ1xcJyk7CisgICAgICBpID0gc3RvcmUgKGQsIGksIDEsICpzKTsKKyAgICAgIGJzY291
bnQgPSAqcyA9PSAnXFwnID8gYnNjb3VudCArIDEgOiAwOworICAgIH0KKworICBpID0gc3Rv
cmUgKGQsIGksIGJzY291bnQsICdcXCcpOworICBpID0gc3RvcmUgKGQsIGksIDEsICciJyk7
CisgIGkgPSBzdG9yZSAoZCwgaSwgMSwgJ1wwJyk7CisjZWxzZQorICBpID0gc3RybGVuIChz
KSArIDE7CisgIGlmIChkKQorICAgIG1lbWNweSAoZCwgcywgaSk7CisjZW5kaWYKKyAgcmV0
dXJuIGk7Cit9CisKK2ludAorbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICBz
dGF0aWMgY2hhciBjb25zdCBldGFnc19wcm9ncmFtW10gPSBFVEFHU19QUk9HUkFNOworICBz
dGF0aWMgY2hhciBjb25zdCBvcHRpb25fcHJlZml4W10gPSAiLS1jdGFncz0iOworCisgIGNo
YXIgY29uc3QgKnByb2duYW1lID0gYXJndlswXTsKKworICAvKiBOdW1iZXIgb2YgYnl0ZXMg
bmVlZGVkIHRvIHJlcHJlc2VudCBhbGwgZXRhZ3MgYXJncy4gICovCisgIHNpemVfdCBuYXJn
Ynl0ZXMgPSBzaXplb2YgZXRhZ3NfcHJvZ3JhbSArIHNpemVvZiBvcHRpb25fcHJlZml4IC0g
MTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdjOyBpKyspCisgICAgbmFyZ2J5dGVzICs9
IHczMl9leGVjX2FyZ19yZXByIChhcmd2W2ldLCBOVUxMKTsKKworICBjaGFyIGNvbnN0ICoq
ZXRhZ3NfYXJndiA9IG1hbGxvYyAoKGFyZ2MgKyAyKSAqIHNpemVvZiAqYXJndiArIG5hcmdi
eXRlcyk7CisgIGlmIChldGFnc19hcmd2KQorICAgIHsKKyAgICAgIGNoYXIgKmQgPSAoY2hh
ciAqKSAoZXRhZ3NfYXJndiArIGFyZ2MgKyAyKTsKKyAgICAgIGV0YWdzX2FyZ3ZbMF0gPSBl
dGFnc19wcm9ncmFtOworICAgICAgZXRhZ3NfYXJndlsxXSA9IG1lbWNweSAoZCwgb3B0aW9u
X3ByZWZpeCwgc2l6ZW9mIG9wdGlvbl9wcmVmaXggLSAxKTsKKyAgICAgIGQgKz0gc2l6ZW9m
IG9wdGlvbl9wcmVmaXggLSAxOworICAgICAgZCArPSB3MzJfZXhlY19hcmdfcmVwciAocHJv
Z25hbWUsIGQpOworCisgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ2M7IGkrKykKKwl7
CisJICBldGFnc19hcmd2W2kgKyAxXSA9IGQ7CisJICBkICs9IHczMl9leGVjX2FyZ19yZXBy
IChhcmd2W2ldLCBkKTsKKwl9CisKKyAgICAgIGV0YWdzX2FyZ3ZbYXJnYyArIDFdID0gTlVM
TDsKKyAgICAgIGludCByID0gX3NwYXdudiAoMCwgZXRhZ3NfcHJvZ3JhbSwgZXRhZ3NfYXJn
dik7CisgICAgICBpZiAoMCA8PSByKQorCXJldHVybiByOworICAgICAgcHJvZ25hbWUgPSBl
dGFnc19wcm9ncmFtOworICAgIH0KKworICBwZXJyb3IgKHByb2duYW1lKTsKKyAgcmV0dXJu
IDEyNzsKK30KZGlmZiAtLWdpdCBhL2xpYi1zcmMvY3RhZ3Muc2ggYi9saWItc3JjL2N0YWdz
LnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwLi4xM2E0MzIwZDll
OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYi1zcmMvY3RhZ3Muc2gKQEAgLTAsMCArMSwyIEBA
CisjIS9iaW4vc2gKK2V4ZWMgJ0BFVEFHU19QUk9HUkFNQCcgLS1jdGFncz0iJDAiICIkQCIK
ZGlmZiAtLWdpdCBhL2xpYi1zcmMvZXRhZ3MuYyBiL2xpYi1zcmMvZXRhZ3MuYwppbmRleCBi
NTliNzBjOWVjNy4uZGFhNTFjMTI1ZDQgMTAwNjQ0Ci0tLSBhL2xpYi1zcmMvZXRhZ3MuYwor
KysgYi9saWItc3JjL2V0YWdzLmMKQEAgLTEyNiwxNiArMTI2LDYgQEAgQ29weXJpZ2h0IChD
KSAxOTg0LCAxOTg3LTE5ODksIDE5OTMtMTk5NSwgMTk5OC0yMDI1IEZyZWUgU29mdHdhcmUK
ICNpbmNsdWRlIDxnZXRvcHQuaD4KICNpbmNsdWRlIDxyZWdleC5oPgogCi0vKiBEZWZpbmUg
Q1RBR1MgdG8gbWFrZSB0aGUgcHJvZ3JhbSAiY3RhZ3MiIGNvbXBhdGlibGUgd2l0aCB0aGUg
dXN1YWwgb25lLgotIExlYXZlIGl0IHVuZGVmaW5lZCB0byBtYWtlIHRoZSBwcm9ncmFtICJl
dGFncyIsIHdoaWNoIG1ha2VzIGVtYWNzLXN0eWxlCi0gdGFnIHRhYmxlcyBhbmQgdGFncyB0
eXBlZGVmcywgI2RlZmluZXMgYW5kIHN0cnVjdC91bmlvbi9lbnVtIGJ5IGRlZmF1bHQuICov
Ci0jaWZkZWYgQ1RBR1MKLSMgdW5kZWYgIENUQUdTCi0jIGRlZmluZSBDVEFHUyB0cnVlCi0j
ZWxzZQotIyBkZWZpbmUgQ1RBR1MgZmFsc2UKLSNlbmRpZgotCiAvKiBEZWZpbmUgTUVSQ1VS
WV9IRVVSSVNUSUNTX1JBVElPIGFzIGl0IHdhcyBuZWNlc3NhcnkgdG8gZGlzYW1iaWd1YXRl
CiAgICBNZXJjdXJ5IGZyb20gT2JqZWN0aXZlIEMsIHdoaWNoIGhhdmUgc2FtZSBmaWxlIGV4
dGVuc2lvbnMgLm0KICAgIFNlZSBjb21tZW50cyBiZWZvcmUgZnVuY3Rpb24gdGVzdF9vYmpj
X2lzX21lcmN1cnkgZm9yIGRldGFpbHMuICAqLwpAQCAtNDc5LDE4ICs0NjksMjAgQEAgI2Rl
ZmluZSB4cm5ldyhvcCwgbiwgbSkgKChvcCkgPSB4bnJlYWxsb2MgKG9wLCBuLCAobSkgKiBz
aXplb2YgKihvcCkpKQogc3RhdGljIGJvb2wgaWdub3JlaW5kZW50OwkvKiAtSTogaWdub3Jl
IGluZGVudGF0aW9uIGluIEMgKi8KIHN0YXRpYyBpbnQgcGFja2FnZXNfb25seTsJLyogLS1w
YWNrYWdlcy1vbmx5OiBpbiBBZGEsIG9ubHkgdGFnIHBhY2thZ2VzKi8KIHN0YXRpYyBpbnQg
Y2xhc3NfcXVhbGlmeTsJLyogLVE6IHByb2R1Y2UgY2xhc3MtcXVhbGlmaWVkIHRhZ3MgaW4g
QysrL0phdmEgKi8KK3N0YXRpYyBib29sIGN0YWdzOwkJLyogLS1jdGFncyAqLwogc3RhdGlj
IGludCBkZWJ1ZzsJCS8qIC0tZGVidWcgKi8KIHN0YXRpYyBpbnQgZmFsbGJhY2tfbGFuZzsJ
LyogLS0obm8tKWZhbGxiYWNrLWxhbmc6IEZvcnRyYW4vQyBmYWxsYmFja3MgKi8KIHN0YXRp
YyBpbnQgZW1wdHlfZmlsZXM7CQkvKiAtLShuby0pZW1wdHktZmlsZS1lbnRyaWVzICovCi0K
LS8qIFNURElOIGlzIGRlZmluZWQgaW4gTHlueE9TIHN5c3RlbSBoZWFkZXJzICovCi0jaWZk
ZWYgU1RESU4KLSMgdW5kZWYgU1RESU4KLSNlbmRpZgotCi0jZGVmaW5lIFNURElOIDB4MTAw
MQkJLyogcmV0dXJuZWQgYnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAqLwogc3Rh
dGljIGJvb2wgcGFyc2luZ19zdGRpbjsJLyogLS1wYXJzZS1zdGRpbiB1c2VkICovCiAKKy8q
IEZvciBsb25nIG9wdGlvbnMgdGhhdCBoYXZlIG5vIGVxdWl2YWxlbnQgc2hvcnQgb3B0aW9u
LCB1c2UgYQorICAgbm9uLWNoYXJhY3RlciBhcyBhIHBzZXVkbyBzaG9ydCBvcHRpb24sIHN0
YXJ0aW5nIHdpdGggQ0hBUl9NQVggKyAxLiAgKi8KK2VudW0KKyAgeworICAgIENUQUdTX09Q
VElPTiA9IENIQVJfTUFYICsgMSwKKyAgICBTVERJTl9PUFRJT04KKyAgfTsKKwogc3RhdGlj
IHJlZ2V4cCAqcF9oZWFkOwkJLyogbGlzdCBvZiBhbGwgcmVnZXhwcyAqLwogc3RhdGljIGJv
b2wgbmVlZF9maWxlYnVmOwkvKiBzb21lIHJlZ2V4ZXMgYXJlIG11bHRpLWxpbmUgKi8KIApA
QCAtNDk5LDYgKzQ5MSw3IEBAICNkZWZpbmUgU1RESU4gMHgxMDAxCQkvKiByZXR1cm5lZCBi
eSBnZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICovCiAgIHsgImFwcGVuZCIsICAgICAg
ICAgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAgICAgICAgICAgICAgICdhJyAgIH0s
CiAgIHsgInBhY2thZ2VzLW9ubHkiLCAgICAgIG5vX2FyZ3VtZW50LCAgICAgICAmcGFja2Fn
ZXNfb25seSwgICAgIDEgICAgIH0sCiAgIHsgImMrKyIsICAgICAgICAgICAgICAgIG5vX2Fy
Z3VtZW50LCAgICAgICBOVUxMLCAgICAgICAgICAgICAgICdDJyAgIH0sCisgIHsgImN0YWdz
IiwgICAgICAgICAgICAgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAgICAgICAgQ1RBR1Nf
T1BUSU9OIH0sCiAgIHsgImRlYnVnIiwgICAgICAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAg
ICAmZGVidWcsICAgICAgICAgICAgIDEgICAgIH0sCiAgIHsgImRlY2xhcmF0aW9ucyIsICAg
ICAgIG5vX2FyZ3VtZW50LCAgICAgICAmZGVjbGFyYXRpb25zLCAgICAgIDEgICAgIH0sCiAg
IHsgIm5vLWxpbmUtZGlyZWN0aXZlIiwgIG5vX2FyZ3VtZW50LCAgICAgICAmbm9fbGluZV9k
aXJlY3RpdmUsIDEgICAgIH0sCkBAIC01MTQsMTAgKzUwNywxMCBAQCAjZGVmaW5lIFNURElO
IDB4MTAwMQkJLyogcmV0dXJuZWQgYnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAq
LwogICB7ICJyZWdleCIsICAgICAgICAgICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwg
ICAgICAgICAgICAgICAncicgICB9LAogICB7ICJuby1yZWdleCIsICAgICAgICAgICBub19h
cmd1bWVudCwgICAgICAgTlVMTCwgICAgICAgICAgICAgICAnUicgICB9LAogICB7ICJpZ25v
cmUtY2FzZS1yZWdleCIsICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgICAgICAgICAgICAg
ICAnYycgICB9LAotICB7ICJwYXJzZS1zdGRpbiIsICAgICAgICByZXF1aXJlZF9hcmd1bWVu
dCwgTlVMTCwgICAgICAgICAgICAgICBTVERJTiB9LAorICB7ICJwYXJzZS1zdGRpbiIsICAg
ICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgICAgICAgIFNURElOX09QVElPTiB9LAog
ICB7ICJ2ZXJzaW9uIiwgICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgICAg
ICAgICAgICAgICAnVicgICB9LAogCi0jaWYgQ1RBR1MgLyogQ3RhZ3Mgb3B0aW9ucyAqLwor
ICAvKiBjdGFncyBvcHRpb25zICovCiAgIHsgImJhY2t3YXJkLXNlYXJjaCIsICAgIG5vX2Fy
Z3VtZW50LCAgICAgICBOVUxMLCAgICAgICAgICAgICAgICdCJyAgIH0sCiAgIHsgImN4cmVm
IiwgICAgICAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAgICAgICAgICAgICAg
ICd4JyAgIH0sCiAgIHsgImRlZmluZXMiLCAgICAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAg
ICBOVUxMLCAgICAgICAgICAgICAgICdkJyAgIH0sCkBAIC01MjgsNyArNTIxLDcgQEAgI2Rl
ZmluZSBTVERJTiAweDEwMDEJCS8qIHJldHVybmVkIGJ5IGdldG9wdF9sb25nIG9uIC0tcGFy
c2Utc3RkaW4gKi8KICAgeyAidmdyaW5kIiwgICAgICAgICAgICAgbm9fYXJndW1lbnQsICAg
ICAgIE5VTEwsICAgICAgICAgICAgICAgJ3YnICAgfSwKICAgeyAibm8td2FybiIsICAgICAg
ICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsICAgICAgICAgICAgICAgJ3cnICAgfSwK
IAotI2Vsc2UgLyogRXRhZ3Mgb3B0aW9ucyAqLworICAvKiBldGFncyBvcHRpb25zICovCiAg
IHsgIm5vLWRlZmluZXMiLCAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAgICAg
ICAgICAgICAgICdEJyAgIH0sCiAgIHsgIm5vLWdsb2JhbHMiLCAgICAgICAgIG5vX2FyZ3Vt
ZW50LCAgICAgICAmZ2xvYmFscywgICAgICAgICAgIDAgICAgIH0sCiAgIHsgImluY2x1ZGUi
LCAgICAgICAgICAgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAgICAgICAgICAgICAgICdp
JyAgIH0sCkBAIC01MzYsNyArNTI5LDcgQEAgI2RlZmluZSBTVERJTiAweDEwMDEJCS8qIHJl
dHVybmVkIGJ5IGdldG9wdF9sb25nIG9uIC0tcGFyc2Utc3RkaW4gKi8KICAgeyAiZmFsbGJh
Y2stbGFuZyIsICAgICAgbm9fYXJndW1lbnQsICAgICAgICZmYWxsYmFja19sYW5nLCAgICAg
MSAgICAgfSwKICAgeyAibm8tZW1wdHktZmlsZS1lbnRyaWVzIiwgbm9fYXJndW1lbnQsICAg
ICZlbXB0eV9maWxlcywgICAgICAgMCAgICAgfSwKICAgeyAiZW1wdHktZmlsZS1lbnRyaWVz
Iiwgbm9fYXJndW1lbnQsICAgICAgICZlbXB0eV9maWxlcywgICAgICAgMSAgICAgfSwKLSNl
bmRpZgorCiAgIHsgTlVMTCB9CiB9OwogCkBAIC01OTgsMTUgKzU5MSwxNyBAQCAjZGVmaW5l
IFNURElOIDB4MTAwMQkJLyogcmV0dXJuZWQgYnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1z
dGRpbiAqLwogICAgVGhhdCBpcyB3aHkgZGVmYXVsdF9DX2VudHJpZXMgaXMgY2FsbGVkIGZv
ciB0aGVzZS4gKi8KIHN0YXRpYyBjb25zdCBjaGFyICpkZWZhdWx0X0Nfc3VmZml4ZXMgW10g
PQogICB7ICJjIiwgImgiLCBOVUxMIH07Ci0jaWYgQ1RBR1MJCQkJLyogQyBoZWxwIGZvciBD
dGFncyAqLwotc3RhdGljIGNvbnN0IGNoYXIgZGVmYXVsdF9DX2hlbHAgW10gPQorCisvKiBD
IGhlbHAgZm9yIGN0YWdzICovCitzdGF0aWMgY29uc3QgY2hhciBjdGFnc19kZWZhdWx0X0Nf
aGVscFtdID0KICJJbiBDIGNvZGUsIGFueSBDIGZ1bmN0aW9uIGlzIGEgdGFnLiAgVXNlIC10
IHRvIHRhZyB0eXBlZGVmcy5cblwKIFVzZSAtVCB0byB0YWcgZGVmaW5pdGlvbnMgb2YgJ3N0
cnVjdCcsICd1bmlvbicgYW5kICdlbnVtJy5cblwKIFVzZSAtZCB0byB0YWcgJyNkZWZpbmUn
IG1hY3JvIGRlZmluaXRpb25zIGFuZCAnZW51bScgY29uc3RhbnRzLlxuXAogVXNlIC0tZ2xv
YmFscyB0byB0YWcgZ2xvYmFsIHZhcmlhYmxlcy5cblwKIFlvdSBjYW4gdGFnIGZ1bmN0aW9u
IGRlY2xhcmF0aW9ucyBhbmQgZXh0ZXJuYWwgdmFyaWFibGVzIGJ5XG5cCiB1c2luZyAnLS1k
ZWNsYXJhdGlvbnMnLCBhbmQgc3RydWN0IG1lbWJlcnMgYnkgdXNpbmcgJy0tbWVtYmVycycu
IjsKLSNlbHNlCQkJCQkvKiBDIGhlbHAgZm9yIEV0YWdzICovCisKKy8qIEMgaGVscCBmb3Ig
ZXRhZ3MgKi8KIHN0YXRpYyBjb25zdCBjaGFyIGRlZmF1bHRfQ19oZWxwIFtdID0KICJJbiBD
IGNvZGUsIGFueSBDIGZ1bmN0aW9uIG9yIHR5cGVkZWYgaXMgYSB0YWcsIGFuZCBzbyBhcmVc
blwKIGRlZmluaXRpb25zIG9mICdzdHJ1Y3QnLCAndW5pb24nIGFuZCAnZW51bScuICAnI2Rl
ZmluZScgbWFjcm9cblwKQEAgLTYxNyw3ICs2MTIsNiBAQCAjZGVmaW5lIFNURElOIDB4MTAw
MQkJLyogcmV0dXJuZWQgYnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAqLwogJy0t
bm8tbWVtYmVycycgY2FuIG1ha2UgdGhlIHRhZ3MgdGFibGUgZmlsZSBtdWNoIHNtYWxsZXIu
XG5cCiBZb3UgY2FuIHRhZyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgYW5kIGV4dGVybmFsIHZh
cmlhYmxlcyBieVxuXAogdXNpbmcgJy0tZGVjbGFyYXRpb25zJy4iOwotI2VuZGlmCS8qIEMg
aGVscCBmb3IgQ3RhZ3MgYW5kIEV0YWdzICovCiAKIHN0YXRpYyBjb25zdCBjaGFyICpDcGx1
c3BsdXNfc3VmZml4ZXMgW10gPQogICB7ICJDIiwgImMrKyIsICJjYyIsICJjcHAiLCAiY3h4
IiwgIkgiLCAiaCsrIiwgImhoIiwgImhwcCIsICJoeHgiLApAQCAtODYyLDYgKzg1Niw3IEBA
ICNkZWZpbmUgU1RESU4gMHgxMDAxCQkvKiByZXR1cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAt
LXBhcnNlLXN0ZGluICovCiB7CiAgIHsgImFkYSIsICAgICAgIEFkYV9oZWxwLCAgICAgICBB
ZGFfZnVuY3MsICAgICAgICAgQWRhX3N1ZmZpeGVzICAgICAgIH0sCiAgIHsgImFzbSIsICAg
ICAgIEFzbV9oZWxwLCAgICAgICBBc21fbGFiZWxzLCAgICAgICAgQXNtX3N1ZmZpeGVzICAg
ICAgIH0sCisjZGVmaW5lIENfTEFOR19OQU1FU19JTkRFWCAyCiAgIHsgImMiLCAgICAgICAg
IGRlZmF1bHRfQ19oZWxwLCBkZWZhdWx0X0NfZW50cmllcywgZGVmYXVsdF9DX3N1ZmZpeGVz
IH0sCiAgIHsgImMrKyIsICAgICAgIENwbHVzcGx1c19oZWxwLCBDcGx1c3BsdXNfZW50cmll
cywgQ3BsdXNwbHVzX3N1ZmZpeGVzIH0sCiAgIHsgImMqIiwgICAgICAgIG5vX2xhbmdfaGVs
cCwgICBDc3Rhcl9lbnRyaWVzLCAgICAgQ3N0YXJfc3VmZml4ZXMgICAgIH0sCkBAIC05Mjgs
MjQgKzkyMywyMCBAQCBwcmludF9sYW5ndWFnZV9uYW1lcyAodm9pZCkKIEZvcnRyYW4gaXMg
dHJpZWQgZmlyc3Q7IGlmIG5vIHRhZ3MgYXJlIGZvdW5kLCBDIGlzIHRyaWVkIG5leHQuXG5c
CiBXaGVuIHBhcnNpbmcgYW55IEMgZmlsZSwgYSBcImNsYXNzXCIgb3IgXCJ0ZW1wbGF0ZVwi
IGtleXdvcmRcblwKIHN3aXRjaGVzIHRvIEMrKy4iKTsKLSAgcHV0cyAoIkNvbXByZXNzZWQg
ZmlsZXMgYXJlIHN1cHBvcnRlZCB1c2luZyBnemlwLCBiemlwMiwgeHosIGFuZCB6c3RkLlxu
XAorICBwcmludGYgKCJDb21wcmVzc2VkIGZpbGVzIGFyZSBzdXBwb3J0ZWQgdXNpbmcgZ3pp
cCwgYnppcDIsIHh6LCBhbmQgenN0ZC5cblwKIFxuXAogRm9yIGRldGFpbGVkIGhlbHAgb24g
YSBnaXZlbiBsYW5ndWFnZSB1c2UsIGZvciBleGFtcGxlLFxuXAotZXRhZ3MgLS1oZWxwIC0t
bGFuZz1hZGEuIik7CislcyAtLWhlbHAgLS1sYW5nPWFkYS5cbiIsCisJICBwcm9nbmFtZSk7
CiB9CiAKLSNpZiBDVEFHUwotIyBkZWZpbmUgUFJPR1JBTV9OQU1FICJjdGFncyIKLSNlbHNl
Ci0jIGRlZmluZSBQUk9HUkFNX05BTUUgImV0YWdzIgotI2VuZGlmCiBzdGF0aWMgX05vcmV0
dXJuIHZvaWQKIHByaW50X3ZlcnNpb24gKHZvaWQpCiB7Ci0gIGZwdXRzICgoUFJPR1JBTV9O
QU1FICIgKCIgUEFDS0FHRV9OQU1FICIgIiBQQUNLQUdFX1ZFUlNJT04gIilcbiIKLQkgIENP
UFlSSUdIVCAiXG4iCi0JICAiVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSB0ZXJtcyBpbiBFVEFHUy5SRUFETUVcbiIpLAotCSBzdGRvdXQpOworICBwcmludGYgKCgi
JXMgKCVzICVzKVxuIgorCSAgICIlc1xuIgorCSAgICJUaGlzIHByb2dyYW0gaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIHRlcm1zIGluIEVUQUdTLlJFQURNRVxuIiksCisJICBjdGFncyA/
ICJjdGFncyIgOiAiZXRhZ3MiLCBQQUNLQUdFX05BTUUsIFBBQ0tBR0VfVkVSU0lPTiwgQ09Q
WVJJR0hUKTsKICAgZXhpdCAoRVhJVF9TVUNDRVNTKTsKIH0KIApAQCAtOTg0LDcgKzk3NSw3
IEBAIHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZmZXIpCiAgIHB1dHMgKCItLXBhY2th
Z2VzLW9ubHlcblwKICAgICAgICAgRm9yIEFkYSBmaWxlcywgb25seSBnZW5lcmF0ZSB0YWdz
IGZvciBwYWNrYWdlcy4iKTsKIAotICBpZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICBw
dXRzICgiLUIsIC0tYmFja3dhcmQtc2VhcmNoXG5cCiAgICAgICAgIFdyaXRlIHRoZSBzZWFy
Y2ggY29tbWFuZHMgZm9yIHRoZSB0YWcgZW50cmllcyB1c2luZyAnPycsIHRoZVxuXAogICAg
ICAgICBiYWNrd2FyZC1zZWFyY2ggY29tbWFuZCBpbnN0ZWFkIG9mICcvJywgdGhlIGZvcndh
cmQtc2VhcmNoIGNvbW1hbmQuIik7CkBAIC05OTcsOSArOTg4LDEzIEBAIHByaW50X2hlbHAg
KGFyZ3VtZW50ICphcmdidWZmZXIpCiAgICAgICAgIFRyZWF0IGZpbGVzIHdob3NlIG5hbWUg
c3VmZml4IGRlZmF1bHRzIHRvIEMgbGFuZ3VhZ2UgYXMgQysrIGZpbGVzLiIpOwogICAqLwog
CisgIGlmIChQUklOVF9VTkRPQ1VNRU5URURfT1BUSU9OU19IRUxQICYmICFjdGFncykKKyAg
ICBwdXRzICgiLS1jdGFncz1QUk9HUkFNX05BTUVcblwKKwlJbXBsZW1lbnQgY3RhZ3MgYmVo
YXZpb3IgdW5kZXIgdGhlIG5hbWUgUFJPR1JBTV9OQU1FLiIpOworCiAgIHB1dHMgKCItLWRl
Y2xhcmF0aW9uc1xuXAogCUluIEMgYW5kIGRlcml2ZWQgbGFuZ3VhZ2VzLCBjcmVhdGUgdGFn
cyBmb3IgZnVuY3Rpb24gZGVjbGFyYXRpb25zLCIpOwotICBpZiAoQ1RBR1MpCisgIGlmIChj
dGFncykKICAgICBwdXRzICgiXHRhbmQgY3JlYXRlIHRhZ3MgZm9yIGV4dGVybiB2YXJpYWJs
ZXMgaWYgLS1nbG9iYWxzIGlzIHVzZWQuIik7CiAgIGVsc2UKICAgICBwdXRzCkBAIC0xMDA4
LDcgKzEwMDMsNyBAQCBwcmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVmZmVyKQogICBwdXRz
ICgiXHRJbiBNZXJjdXJ5LCB0YWcgYm90aCBkZWNsYXJhdGlvbnMgc3RhcnRpbmcgYSBsaW5l
IHdpdGggJzotJyBhbmRcblwKICAgICAgICAgZmlyc3QgcHJlZGljYXRlcyBvciBmdW5jdGlv
bnMgaW4gY2xhdXNlcy4iKTsKIAotICBpZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICBw
dXRzICgiLWQsIC0tZGVmaW5lc1xuXAogICAgICAgICBDcmVhdGUgdGFnIGVudHJpZXMgZm9y
IEMgI2RlZmluZSBjb25zdGFudHMgYW5kIGVudW0gY29uc3RhbnRzLCB0b28uIik7CiAgIGVs
c2UKQEAgLTEwMTYsNyArMTAxMSw3IEBAIHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZm
ZXIpCiAgICAgICAgIERvbid0IGNyZWF0ZSB0YWcgZW50cmllcyBmb3IgQyAjZGVmaW5lIGNv
bnN0YW50cyBhbmQgZW51bSBjb25zdGFudHMuXG5cCiAJVGhpcyBtYWtlcyB0aGUgdGFncyBm
aWxlIHNtYWxsZXIuIik7CiAKLSAgaWYgKCFDVEFHUykKKyAgaWYgKCFjdGFncykKICAgICBw
dXRzICgiLWkgRklMRSwgLS1pbmNsdWRlPUZJTEVcblwKICAgICAgICAgSW5jbHVkZSBhIG5v
dGUgaW4gdGFnIGZpbGUgaW5kaWNhdGluZyB0aGF0LCB3aGVuIHNlYXJjaGluZyBmb3JcblwK
ICAgICAgICAgYSB0YWcsIG9uZSBzaG91bGQgYWxzbyBjb25zdWx0IHRoZSB0YWdzIGZpbGUg
RklMRSBhZnRlclxuXApAQCAtMTAyNiw3ICsxMDIxLDcgQEAgcHJpbnRfaGVscCAoYXJndW1l
bnQgKmFyZ2J1ZmZlcikKICAgICAgICAgRm9yY2UgdGhlIGZvbGxvd2luZyBmaWxlcyB0byBi
ZSBjb25zaWRlcmVkIGFzIHdyaXR0ZW4gaW4gdGhlXG5cCiAJbmFtZWQgbGFuZ3VhZ2UgdXAg
dG8gdGhlIG5leHQgLS1sYW5ndWFnZT1MQU5HIG9wdGlvbi4iKTsKIAotICBpZiAoQ1RBR1Mp
CisgIGlmIChjdGFncykKICAgICBwdXRzICgiLS1nbG9iYWxzXG5cCiAJQ3JlYXRlIHRhZyBl
bnRyaWVzIGZvciBnbG9iYWwgdmFyaWFibGVzIGluIHNvbWUgbGFuZ3VhZ2VzLiIpOwogICBl
bHNlCkBAIC0xMDM3LDcgKzEwMzIsNyBAQCBwcmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVm
ZmVyKQogICBwdXRzICgiLS1uby1saW5lLWRpcmVjdGl2ZVxuXAogICAgICAgICBJZ25vcmUg
I2xpbmUgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgaW4gQyBhbmQgZGVyaXZlZCBsYW5ndWFn
ZXMuIik7CiAKLSAgaWYgKENUQUdTKQorICBpZiAoY3RhZ3MpCiAgICAgcHV0cyAoIi0tbWVt
YmVyc1xuXAogCUNyZWF0ZSB0YWcgZW50cmllcyBmb3IgbWVtYmVycyBvZiBzdHJ1Y3R1cmVz
IGluIHNvbWUgbGFuZ3VhZ2VzLiIpOwogICBlbHNlCkBAIC0xMDQ1LDcgKzEwNDAsNyBAQCBw
cmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVmZmVyKQogCURvIG5vdCBjcmVhdGUgdGFnIGVu
dHJpZXMgZm9yIG1lbWJlcnMgb2Ygc3RydWN0dXJlc1xuXAogCWluIHNvbWUgbGFuZ3VhZ2Vz
LiIpOwogCi0gIGlmICghQ1RBR1MpCisgIGlmICghY3RhZ3MpCiAgICAgewogICAgICAgcHV0
cyAoIi0tZmFsbGJhY2stbGFuZ1xuXAogCUlmIGEgZmlsZSdzIGxhbmd1YWdlIGNvdWxkIG5v
dCBiZSBkZXRlcm1pbmVkLCB0cnkgdG8gcGFyc2VcblwKQEAgLTEwOTIsNyArMTA4Nyw3IEBA
IHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZmZXIpCiAgIHB1dHMgKCItLXBhcnNlLXN0
ZGluPU5BTUVcblwKICAgICAgICAgUmVhZCBmcm9tIHN0YW5kYXJkIGlucHV0IGFuZCByZWNv
cmQgdGFncyBhcyBiZWxvbmdpbmcgdG8gZmlsZSBOQU1FLiIpOwogCi0gIGlmIChDVEFHUykK
KyAgaWYgKGN0YWdzKQogICAgIHsKICAgICAgIHB1dHMgKCItdCwgLS10eXBlZGVmc1xuXAog
ICAgICAgICBHZW5lcmF0ZSB0YWcgZW50cmllcyBmb3IgQyBhbmQgQWRhIHR5cGVkZWZzLiIp
OwpAQCAtMTEwMSw3ICsxMDk2LDcgQEAgcHJpbnRfaGVscCAoYXJndW1lbnQgKmFyZ2J1ZmZl
cikKICAgICAgICAgYW5kIEMrKyBtZW1iZXIgZnVuY3Rpb25zLiIpOwogICAgIH0KIAotICBp
ZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICBwdXRzICgiLXUsIC0tdXBkYXRlXG5cCiAg
ICAgICAgIFVwZGF0ZSB0aGUgdGFnIGVudHJpZXMgZm9yIHRoZSBnaXZlbiBmaWxlcywgbGVh
dmluZyB0YWdcblwKICAgICAgICAgZW50cmllcyBmb3Igb3RoZXIgZmlsZXMgaW4gcGxhY2Uu
ICBDdXJyZW50bHksIHRoaXMgaXNcblwKQEAgLTExMTAsNyArMTEwNSw3IEBAIHByaW50X2hl
bHAgKGFyZ3VtZW50ICphcmdidWZmZXIpCiAgICAgICAgIHRhZ3MgZmlsZS4gIEl0IGlzIG9m
dGVuIGZhc3RlciB0byBzaW1wbHkgcmVidWlsZCB0aGUgZW50aXJlXG5cCiAgICAgICAgIHRh
ZyBmaWxlIHRoYW4gdG8gdXNlIHRoaXMuIik7CiAKLSAgaWYgKENUQUdTKQorICBpZiAoY3Rh
Z3MpCiAgICAgewogICAgICAgcHV0cyAoIi12LCAtLXZncmluZFxuXAogICAgICAgICBQcmlu
dCBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0IGFuIGluZGV4IG9mIGl0ZW1zIGludGVuZGVkIGZv
clxuXApAQCAtMTE2MCw3ICsxMTU1LDYgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2
KQogICBsaW5lYnVmZmVyIGZpbGVuYW1lX2xiOwogICBib29sIGhlbHBfYXNrZWQgPSBmYWxz
ZTsKICAgcHRyZGlmZl90IGxlbjsKLSAgY2hhciAqb3B0c3RyaW5nOwogICBpbnQgb3B0Owog
CiAgIHByb2duYW1lID0gYXJndlswXTsKQEAgLTExOTIsOSArMTE4Niw3IEBAIG1haW4gKGlu
dCBhcmdjLCBjaGFyICoqYXJndikKIAogICAvKiBXaGVuIHRoZSBvcHRzdHJpbmcgYmVnaW5z
IHdpdGggYSAnLScgZ2V0b3B0X2xvbmcgZG9lcyBub3QgcmVhcnJhbmdlIHRoZQogICAgICBu
b24tb3B0aW9ucyBhcmd1bWVudHMgdG8gYmUgYXQgdGhlIGVuZCwgYnV0IGxlYXZlcyB0aGVt
IGFsb25lLiAqLwotICBvcHRzdHJpbmcgPSBjb25jYXQgKCItYWM6Q2Y6SWw6bzpRcjpSU1Zo
SCIsCi0JCSAgICAgIChDVEFHUykgPyAiQnhkdFR1dnciIDogIkRpOiIsCi0JCSAgICAgICIi
KTsKKyAgc3RhdGljIGNoYXIgY29uc3Qgb3B0c3RyaW5nW10gPSAiLWFCYzpDZERmOmhIaTpJ
bDpvOlFyOlJTdFR1dlZ3eCI7CiAKICAgd2hpbGUgKChvcHQgPSBnZXRvcHRfbG9uZyAoYXJn
YywgYXJndiwgb3B0c3RyaW5nLCBsb25nb3B0cywgTlVMTCkpICE9IEVPRikKICAgICBzd2l0
Y2ggKG9wdCkKQEAgLTEyMTUsNyArMTIwNywxNCBAQCBtYWluIChpbnQgYXJnYywgY2hhciAq
KmFyZ3YpCiAJKytmaWxlX2NvdW50OwogCWJyZWFrOwogCi0gICAgICBjYXNlIFNURElOOgor
ICAgICAgY2FzZSBDVEFHU19PUFRJT046CisJLyogT3BlcmF0ZSBhcyBjdGFncywgbm90IGV0
YWdzLiAgKi8KKwljdGFncyA9IHRydWU7CisJcHJvZ25hbWUgPSBvcHRhcmc7CisJbGFuZ19u
YW1lc1tDX0xBTkdfTkFNRVNfSU5ERVhdLmhlbHAgPSBjdGFnc19kZWZhdWx0X0NfaGVscDsK
KwlicmVhazsKKworICAgICAgY2FzZSBTVERJTl9PUFRJT046CiAJLyogUGFyc2Ugc3RhbmRh
cmQgaW5wdXQuICBJZGVhIGJ5IFZpdmVrIDx2aXZla0BldGxhLm9yZz4uICovCiAJYXJnYnVm
ZmVyW2N1cnJlbnRfYXJnXS5hcmdfdHlwZSA9IGF0X3N0ZGluOwogCWFyZ2J1ZmZlcltjdXJy
ZW50X2FyZ10ud2hhdCAgICAgPSBvcHRhcmc7CkBAIC0xMzI1LDcgKzEzMjQsNyBAQCBtYWlu
IChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgfQogCiAgIGlmICh0YWdmaWxlID09IE5V
TEwpCi0gICAgdGFnZmlsZSA9IHNhdmVzdHIgKENUQUdTID8gInRhZ3MiIDogIlRBR1MiKTsK
KyAgICB0YWdmaWxlID0gc2F2ZXN0ciAoY3RhZ3MgPyAidGFncyIgOiAiVEFHUyIpOwogICBj
d2QgPSBldGFnc19nZXRjd2QgKCk7CS8qIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5
ICovCiAgIGlmIChjd2Rbc3RybGVuIChjd2QpIC0gMV0gIT0gJy8nKQogICAgIHsKQEAgLTEz
NDksNyArMTM0OCw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgbGluZWJ1
ZmZlcl9pbml0ICgmZmlsZWJ1Zik7CiAgIGxpbmVidWZmZXJfaW5pdCAoJnRva2VuX25hbWUp
OwogCi0gIGlmICghQ1RBR1MpCisgIGlmICghY3RhZ3MpCiAgICAgewogICAgICAgaWYgKHN0
cmVxICh0YWdmaWxlLCAiLSIpKQogCXsKQEAgLTE0MDcsMTMgKzE0MDYsMTMgQEAgbWFpbiAo
aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICBmcmVlIChmaWxlYnVmLmJ1ZmZlcik7CiAgIGZy
ZWUgKHRva2VuX25hbWUuYnVmZmVyKTsKIAotICBpZiAoIUNUQUdTIHx8IGN4cmVmX3N0eWxl
KQorICBpZiAoIWN0YWdzIHx8IGN4cmVmX3N0eWxlKQogICAgIHsKICAgICAgIC8qIFdyaXRl
IHRoZSByZW1haW5pbmcgdGFncyB0byB0YWdmIChFVEFHUykgb3Igc3Rkb3V0IChDWFJFRiku
ICovCiAgICAgICBwdXRfZW50cmllcyAobm9kZWhlYWQpOwogICAgICAgZnJlZV90cmVlIChu
b2RlaGVhZCk7CiAgICAgICBub2RlaGVhZCA9IE5VTEw7Ci0gICAgICBpZiAoIUNUQUdTKQor
ICAgICAgaWYgKCFjdGFncykKIAl7CiAJICBmZGVzYyAqZmRwOwogCkBAIC0xNDYyLDcgKzE0
NjEsNyBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgIGlmIChmY2xvc2UgKHRh
Z2YpID09IEVPRikKICAgICBwZmF0YWwgKHRhZ2ZpbGUpOwogCi0gIGlmIChDVEFHUykKKyAg
aWYgKGN0YWdzKQogICAgIGlmIChhcHBlbmRfdG9fdGFnZmlsZSB8fCB1cGRhdGUpCiAgICAg
ICB7CiAJLyogTWF5YmUgdGhlc2Ugc2hvdWxkIGJlIHVzZWQ6CkBAIC0xODYwLDcgKzE4NTks
NyBAQCBwcm9jZXNzX2ZpbGUgKEZJTEUgKmZoLCBjaGFyICpmbiwgbGFuZ3VhZ2UgKmxhbmcp
CiAgIC8qIElmIG5vdCBDdGFncywgYW5kIGlmIHRoaXMgaXMgbm90IG1ldGFzb3VyY2UgYW5k
IGlmIGl0IGNvbnRhaW5lZCBubyAjbGluZQogICAgICBkaXJlY3RpdmVzLCB3ZSBjYW4gd3Jp
dGUgdGhlIHRhZ3MgYW5kIGZyZWUgYWxsIG5vZGVzIHBvaW50aW5nIHRvCiAgICAgIGN1cmZk
cC4gKi8KLSAgaWYgKCFDVEFHUworICBpZiAoIWN0YWdzCiAgICAgICAmJiBjdXJmZHAtPnVz
ZWNoYXJubwkvKiBubyAjbGluZSBkaXJlY3RpdmVzIGluIHRoaXMgZmlsZSAqLwogICAgICAg
JiYgIWN1cmZkcC0+bGFuZy0+bWV0YXNvdXJjZSkKICAgICB7CkBAIC0yMDkyLDcgKzIwOTEs
NyBAQCBtYWtlX3RhZyAoY29uc3QgY2hhciAqbmFtZSwgCS8qIHRhZyBuYW1lLCBvciBOVUxM
IGlmIHVubmFtZWQgKi8KICAgICBmcHJpbnRmIChzdGRlcnIsICIlcyBvbiAlczolIlBSSWRN
QVgiOiAlc1xuIiwKIAkgICAgIG5hbWVkID8gbmFtZSA6ICIodW5uYW1lZCkiLCBjdXJmZHAt
PnRhZ2dlZGZuYW1lLCBsbm8sIGxpbmVzdGFydCk7CiAKLSAgaWYgKCFDVEFHUyAmJiBuYW1l
ZCkJCS8qIG1heWJlIHNldCBuYW1lZCB0byBmYWxzZSAqLworICBpZiAoIWN0YWdzICYmIG5h
bWVkKQkJLyogbWF5YmUgc2V0IG5hbWVkIHRvIGZhbHNlICovCiAgICAgLyogTGV0J3MgdHJ5
IHRvIG1ha2UgYW4gaW1wbGljaXQgdGFnIG5hbWUsIHRoYXQgaXMsIGNyZWF0ZSBhbiB1bm5h
bWVkIHRhZwogICAgICAgIHN1Y2ggdGhhdCBldGFncy5lbCBjYW4gZ3Vlc3MgYSBuYW1lIGZy
b20gaXQuICovCiAgICAgewpAQCAtMjEzMywxNyArMjEzMiwxNyBAQCBwZm5vdGUgKGNoYXIg
Km5hbWUsCQkvKiB0YWcgbmFtZSwgb3IgTlVMTCBpZiB1bm5hbWVkICovCiB7CiAgIHJlZ2lz
dGVyIG5vZGUgKm5wOwogCi0gIGlmICgoQ1RBR1MgJiYgbmFtZSA9PSBOVUxMKQorICBpZiAo
KGN0YWdzICYmIG5hbWUgPT0gTlVMTCkKICAgICAgIC8qIFdlIHVzZWQgdG8gaGF2ZSBhbiBh
c3NlcnRpb24gaGVyZSBmb3IgdGhlIGNhc2UgYmVsb3csIGJ1dCBpZiB3ZSBoaXQKIAkgdGhh
dCBjYXNlLCBpdCBqdXN0IG1lYW5zIG91ciBwYXJzZXIgZ290IGNvbmZ1c2VkLCBhbmQgdGhl
cmUncyBub3RoaW5nCiAJIHRvIGRvIGFib3V0IHN1Y2ggZW1wdHkgInRhZ3MiLiAgKi8KLSAg
ICAgIHx8ICghQ1RBR1MgJiYgbmFtZSAmJiBuYW1lWzBdID09ICdcMCcpKQorICAgICAgfHwg
KCFjdGFncyAmJiBuYW1lICYmIG5hbWVbMF0gPT0gJ1wwJykpCiAgICAgcmV0dXJuOwogCiAg
IG5wID0geG1hbGxvYyAoc2l6ZW9mICpucCk7CiAKICAgLyogSWYgY3RhZ3MgbW9kZSwgY2hh
bmdlIG5hbWUgIm1haW4iIHRvIE08dGhpc2ZpbGVuYW1lPi4gKi8KLSAgaWYgKENUQUdTICYm
ICFjeHJlZl9zdHlsZSAmJiBzdHJlcSAobmFtZSwgIm1haW4iKSkKKyAgaWYgKGN0YWdzICYm
ICFjeHJlZl9zdHlsZSAmJiBzdHJlcSAobmFtZSwgIm1haW4iKSkKICAgICB7CiAgICAgICBj
aGFyICpmcCA9IHN0cnJjaHIgKGN1cmZkcC0+dGFnZ2VkZm5hbWUsICcvJyk7CiAgICAgICBu
cC0+bmFtZSA9IGNvbmNhdCAoIk0iLCBmcCA9PSBOVUxMID8gY3VyZmRwLT50YWdnZWRmbmFt
ZSA6IGZwICsgMSwgIiIpOwpAQCAtMjE2OCw3ICsyMTY3LDcgQEAgcGZub3RlIChjaGFyICpu
YW1lLAkJLyogdGFnIG5hbWUsIG9yIE5VTEwgaWYgdW5uYW1lZCAqLwogICBlbHNlCiAgICAg
bnAtPmNubyA9IGludmFsaWRjaGFybm87CiAgIG5wLT5sZWZ0ID0gbnAtPnJpZ2h0ID0gTlVM
TDsKLSAgaWYgKENUQUdTICYmICFjeHJlZl9zdHlsZSkKKyAgaWYgKGN0YWdzICYmICFjeHJl
Zl9zdHlsZSkKICAgICB7CiAgICAgICBpZiAoc3RybmxlbiAobGluZXN0YXJ0LCA1MCkgPCA1
MCkKIAlucC0+cmVnZXggPSBjb25jYXQgKGxpbmVzdGFydCwgIiQiLCAiIik7CkBAIC0yMjk1
LDcgKzIyOTQsNyBAQCBhZGRfbm9kZSAobm9kZSAqbnAsIG5vZGUgKipjdXJfbm9kZV9wKQog
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICBpZiAoIUNUQUdTKQorICBpZiAoIWN0YWdzKQog
ICAgIC8qIEV0YWdzIE1vZGUgKi8KICAgICB7CiAgICAgICAvKiBGb3IgZWFjaCBmaWxlIG5h
bWUsIHRhZ3MgYXJlIGluIGEgbGlua2VkIHN1Ymxpc3Qgb24gdGhlIHJpZ2h0CkBAIC0yMzk0
LDcgKzIzOTMsNyBAQCBpbnZhbGlkYXRlX25vZGVzIChmZGVzYyAqYmFkZmRwLCBub2RlICoq
bnBwKQogICBub2RlICpucCA9ICpucHA7CiAgIHN0a2VudHJ5ICpzdGFjayA9IE5VTEw7CiAK
LSAgaWYgKENUQUdTKQorICBpZiAoY3RhZ3MpCiAgICAgewogICAgICAgd2hpbGUgKG5wKQog
CXsKQEAgLTI1MDQsNyArMjUwMyw3IEBAIHB1dF9lbnRyeSAobm9kZSAqbnApCiAgIC8qIE91
dHB1dCB0aGlzIGVudHJ5ICovCiAgIGlmIChucC0+dmFsaWQpCiAgICAgewotICAgICAgaWYg
KCFDVEFHUykKKyAgICAgIGlmICghY3RhZ3MpCiAJewogCSAgLyogRXRhZ3MgbW9kZSAqLwog
CSAgaWYgKGZkcCAhPSBucC0+ZmRwKQpAQCAtMjU3Niw3ICsyNTc1LDcgQEAgcHV0X2VudHJp
ZXMgKG5vZGUgKm5wKQogICBpZiAobnAgPT0gTlVMTCkKICAgICByZXR1cm47CiAKLSAgaWYg
KENUQUdTKQorICBpZiAoY3RhZ3MpCiAgICAgewogICAgICAgd2hpbGUgKG5wKQogCXsKLS0g
CjIuNDUuMgoK

--------------9gmm2n9oWGUy1pHeOdxqY2Vp--




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

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


Received: (at 76322) by debbugs.gnu.org; 6 Mar 2025 13:31:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 06 08:31:24 2025
Received: from localhost ([127.0.0.1]:41947 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tqBJr-000354-KY
	for submit <at> debbugs.gnu.org; Thu, 06 Mar 2025 08:31:24 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:34084)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tqBJp-00034k-0n
 for 76322 <at> debbugs.gnu.org; Thu, 06 Mar 2025 08:31:22 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tqBJj-0004Je-Hq; Thu, 06 Mar 2025 08:31:15 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=BzPtbp8B5MF4z4/chpWcURsmfcdPJa0UuS7vanPvfF0=; b=W7u/EU8gGXZR
 sazEZ622IxqcS0ASNwimuuf3byJdXdQ7mv3uNCQHfvNibkvQurlFW+Dvbc05+IBQAefrVbbRzdcHQ
 P+srWuxsTXI+eMQQzAYIp2RxO6xdJkS/EiUoofsyWsEg7AOudv6DnLJXHWUdDl2ru5ujOo7ORdoAG
 eTsP75BNGAyCQ4IUfL5dXQFvNqg/YdOPxGVE42x4CDkrDiOrjOJfqD/Jyzgn8y5Q6e72cR7GLqX1k
 CwDQ43eqGMdkdLnCGRNmqlVQP54S7BF2CZbTjlgurk42EfGPtT0OliGGvrVdeyVwCB8U5ynmLQLGc
 zuW1+kw9lo4yA+Nj7a8iIw==;
Date: Thu, 06 Mar 2025 15:31:11 +0200
Message-Id: <86senqmgkg.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Paul Eggert <eggert@HIDDEN>
In-Reply-To: <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN> (message from
 Paul Eggert on Tue, 4 Mar 2025 10:37:05 -0800)
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN> <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <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 (---)

> Date: Tue, 4 Mar 2025 10:37:05 -0800
> Cc: 76322 <at> debbugs.gnu.org
> From: Paul Eggert <eggert@HIDDEN>
> 
> Thanks for the review. Revised patch attached, which I think addresses 
> all the comments.

Thanks.  This mostly worked, but I needed a few minor changes (below).
We should use _spawnvp, not _execvp, since the latter doesn't return,
so we cannot return the exit status of etags to the caller.  More
importantly, the counting of bytes to allocate missed the PROGRAM part
of --ctags=PROGRAM, so ctags would crash in weird ways.  Finally, I
need to include stdio.h to get the declaration of perror.  Here's the
patch:


diff --git a/lib-src/ctags.c b/lib-src/ctags.c
index 82324f5..2a2a7d2 100644
--- a/lib-src/ctags.c
+++ b/lib-src/ctags.c
@@ -23,13 +23,14 @@ #define DEFER_MS_W32_H
 #include <filename.h>
 
 #include <malloc.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
 /* Declare _execvp by hand, since MS-Windows <process.h> collides with
    ../src/process.h.  */
 #include <stdint.h> /* for intptr_t */
-extern intptr_t _execvp (char const *, char const *const *);
+extern intptr_t _spawnvp (int, char const *, char const *const *);
 
 #ifdef WINDOWSNT
 /* Store into D[I] through D[I + N - 1] the byte C, and return I + N.
@@ -100,7 +101,10 @@ main (int argc, char **argv)
   for (int i = 0; i < argc; i++)
     nargbytes += w32_execvp_arg_repr (argv[i], NULL);
   nargbytes -= progname_baselen;
-  nargbytes += sizeof etags_basename - 1 + sizeof option_prefix - 1;
+  nargbytes += sizeof etags_basename - 1;
+  nargbytes += w32_execvp_arg_repr (option_prefix, NULL);
+  nargbytes += w32_execvp_arg_repr (argv[0], NULL)
+	       - progname_baselen + sizeof etags_basename - 1;
 
   char const **etags_argv = malloc ((argc + 2) * sizeof *argv + nargbytes);
   if (etags_argv)
@@ -122,7 +126,7 @@ main (int argc, char **argv)
 
       etags_argv[argc + 1] = NULL;
       progname = etags_argv[0];
-      _execvp (progname, etags_argv);
+      return _spawnvp (0, progname, etags_argv);
     }
 
   perror (progname);




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

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


Received: (at 76322) by debbugs.gnu.org; 4 Mar 2025 18:37:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 04 13:37:21 2025
Received: from localhost ([127.0.0.1]:60873 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tpX8q-0006E5-4e
	for submit <at> debbugs.gnu.org; Tue, 04 Mar 2025 13:37:21 -0500
Received: from mail.cs.ucla.edu ([131.179.128.66]:38140)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eggert@HIDDEN>)
 id 1tpX8j-0006Df-9M
 for 76322 <at> debbugs.gnu.org; Tue, 04 Mar 2025 13:37:16 -0500
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 6B4DA3C00E420;
 Tue,  4 Mar 2025 10:37:07 -0800 (PST)
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP
 id DZ9SqtoEXwN3; Tue,  4 Mar 2025 10:37:06 -0800 (PST)
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 2D5003C0275C1;
 Tue,  4 Mar 2025 10:37:06 -0800 (PST)
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 2D5003C0275C1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu;
 s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1741113426;
 bh=R67dm+e1joH95BZ/Z5tDXCw5u186J98vn6F2nOGVOKM=;
 h=Message-ID:Date:MIME-Version:To:From;
 b=Hhx8nOpPMJcGHVpsTjz1KXm/I6fg8k7yr/r3NW3j2v21AwvwjEDZHo7erWSyoLiiS
 ++XZgjft5CFe8uP8KYlFhnvxGszE4i7ng/m+aFzXLwgALcLuGE0ekI87uEqxPxxl9a
 sKMOFQVBPcNa+UbmnlJfd7uOIaWkOyEo5TcWkNmAsalHrAbIH2ZLCXA8lJ9OEJCvff
 fAQnhfMKQp2VRfAbXO21q/2lnS75ILsZnnLTv9pzUjcnGUeoESV4yg9wA3qIvvVUkg
 I8e6oPB82zPhC4GAIVN+4XWg93+7Z6AmOCyicVrsNZweG2Cc/Msob+ckucI4131Ukc
 jeG9OFK9GfEfg==
X-Virus-Scanned: amavis at mail.cs.ucla.edu
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP
 id ZBG3OGaBzZxo; Tue,  4 Mar 2025 10:37:06 -0800 (PST)
Received: from [192.168.254.12] (unknown [47.147.225.25])
 by mail.cs.ucla.edu (Postfix) with ESMTPSA id 0A61B3C00E420;
 Tue,  4 Mar 2025 10:37:06 -0800 (PST)
Content-Type: multipart/mixed; boundary="------------wA10kCTfJC3MAqAN9RoB0bQW"
Message-ID: <341c6d80-607c-41eb-990a-97154fc031be@HIDDEN>
Date: Tue, 4 Mar 2025 10:37:05 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
To: Eli Zaretskii <eliz@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
 <86ldu13r7j.fsf@HIDDEN>
Content-Language: en-US
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
In-Reply-To: <86ldu13r7j.fsf@HIDDEN>
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <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: -1.0 (-)

This is a multi-part message in MIME format.
--------------wA10kCTfJC3MAqAN9RoB0bQW
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Thanks for the review. Revised patch attached, which I think addresses 
all the comments.
--------------wA10kCTfJC3MAqAN9RoB0bQW
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-Make-ctags-a-thin-wrapper-around-etags.patch"
Content-Disposition: attachment;
 filename="0001-Make-ctags-a-thin-wrapper-around-etags.patch"
Content-Transfer-Encoding: base64

RnJvbSA5NGMzNWQ3OWI1MjE1MzQwY2VjODkxNzk5MTk2NzgyNDU0NGFjMjAxIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBUdWUsIDQgTWFyIDIwMjUgMTA6Mjg6MzkgLTA4MDAKU3ViamVjdDogW1BBVENI
XSBNYWtlIGN0YWdzIGEgdGhpbiB3cmFwcGVyIGFyb3VuZCBldGFncwoKVGhpcyBmaXhlcyBh
IEZJWE1FIGluIGxpYi1zcmMvTWFrZWZpbGUuaW4gYW5kIHNwZWVkcyB1cCBjb21waWxhdGlv
bgpxdWl0ZSBhIGJpdCBvbiBteSBvbGRlciBDUFUgd2hlbiBJIGNvbXBpbGUgd2l0aAktLWVu
YWJsZS1nY2Mtd2FybmluZ3MuCkl0IGFsc28gbGVzc2VucyBpbnN0YWxsYXRpb24gYW5kIHJ1
bnRpbWUgZm9vdHByaW50LgoqIGphdmEvTWFrZWZpbGUuaW4gKGluc3RhbGxfdGVtcCk6IFRy
ZWF0IGN0YWdzIGxpa2UgcmNzMmxvZy4KKiBsaWItc3JjL01ha2VmaWxlLmluIChJTlNUQUxM
QUJMRV9FWEVTLCBJTlNUQUxMQUJMRV9TQ1JJUFRTKToKTmV3IG1hY3JvcywgcmVwbGFjaW5n
IElOU1RBTExBQkxFUy4gIEFsbCB1c2VzIGNoYW5nZWQuCihVVElMSVRZX0VYRVMpOiBSZW5h
bWUgZnJvbSBVVElMSVRJRVMsIGZvciBjb25zaXN0ZW5jeS4gIEFsbCB1c2VzIGNoYW5nZWQu
CihVVElMSVRZX1NDUklQVFMpOiBSZW5hbWUgZnJvbSBTQ1JJUFRTLCBmb3IgY29uc2lzdGVu
Y3kuICBBbGwgdXNlcyBjaGFuZ2VkLgooY3RhZ3MpOiBOZXcgcnVsZSBpZiBub3QgRVhFRVhU
LgooY3RhZ3Mke0VYRUVYVH0pOiBSZW1vdmUgcnVsZSB1bmxlc3MgRVhFRVhULiAgVXNlIG9u
bHkgTlRMSUIgYW5kIExPQURMSUJFUy4KKiBsaWItc3JjL2N0YWdzLmM6IFJld3JpdGUgZnJv
bSBzY3JhdGNoOyBpdCdzIG5vdyB1c2VkIG9ubHkgaWYgRVhFRVhULgoqIGxpYi1zcmMvY3Rh
Z3Muc2g6IE5ldyBmaWxlLgoqIGxpYi1zcmMvZXRhZ3MuYyAoQ1RBR1MpOiBSZW1vdmUuICBB
bGwgdXNlcyByZXBsYWNlZCBieSAuLi4KKGN0YWdzKTogLi4uIHRoaXMgbmV3IHN0YXRpYyB2
YXIuCihTVERJTik6IFJlbW92ZSBtYWNyby4gIEFsbCB1c2VzIHJlcGxhY2VkIGJ5IG5ldyBT
VERJTl9PUFRJT04gY29uc3RhbnQuCihDVEFHU19PUFRJT04sIFNURElOX09QVElPTik6IE5l
dyBjb250YW50cy4KKGxvbmdvcHRzKTogTmV3IC0tY3RhZ3Mgb3B0aW9uLgooY3RhZ3NfZGVm
YXVsdF9DX2hlbHApOiBOZXcgY29uc3RhbnQsCnRvIG92ZXJyaWRlIGRlZmF1bHRfQ19oZWxw
IGF0IHJ1bnRpbWUuCihkZWZhdWx0X0NfaGVscCk6IE5vdyBhbHdheXMgdGhlIGV0YWdzIHZl
cnNpb24uCihDX0xBTkdfTkFNRVNfSU5ERVgpOiBOZXcgbWFjcm8uCihwcmludF9sYW5ndWFn
ZV9uYW1lcyk6IERvIG5vdCBhc3N1bWUgZXRhZ3MuCihQUk9HUkFNX05BTUUpOiBSZW1vdmUu
ICBBbGwgdXNlcyByZW1vdmVkLgoocHJpbnRfaGVscCk6IERvY3VtZW50IC0tY3RhZ3MgaWYg
UFJJTlRfVU5ET0NVTUVOVEVEX09QVElPTlNfSEVMUC4KKG1haW4pOiBTdXBwb3J0IG5ldyAt
LWN0YWdzIG9wdGlvbiwgYW5kIHN1cHBvcnQgYWxsIFtjZV10YWdzIG9wdGlvbnMuCi0tLQog
ZXRjL05FV1MgICAgICAgICAgICB8ICAgNCArKwogZXRjL1BST0JMRU1TICAgICAgICB8ICAg
NCArLQogamF2YS9NYWtlZmlsZS5pbiAgICB8ICAgNyArKy0KIGxpYi1zcmMvTWFrZWZpbGUu
aW4gfCAgNTEgKysrKysrKysrKystLS0tLS0KIGxpYi1zcmMvY3RhZ3MuYyAgICAgfCAxMzIg
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGxpYi1zcmMv
Y3RhZ3Muc2ggICAgfCAgIDYgKysKIGxpYi1zcmMvZXRhZ3MuYyAgICAgfCAxMzEgKysrKysr
KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNyBmaWxlcyBjaGFuZ2Vk
LCAyNDYgaW5zZXJ0aW9ucygrKSwgODkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3
NTUgbGliLXNyYy9jdGFncy5zaAoKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MK
aW5kZXggMzljNjI3NTYwODUuLmFlM2I5OTM1M2Q5IDEwMDY0NAotLS0gYS9ldGMvTkVXUwor
KysgYi9ldGMvTkVXUwpAQCAtMjksNiArMjksMTAgQEAgYXBwbGllcywgYW5kIHBsZWFzZSBh
bHNvIHVwZGF0ZSBkb2NzdHJpbmdzIGFzIG5lZWRlZC4KIFRoZSB0cmFkaXRpb25hbCB1bmV4
ZWMgZHVtcGVyLCBkZXByZWNhdGVkIHNpbmNlIEVtYWNzIDI3LCBoYXMgYmVlbgogcmVtb3Zl
ZC4KIAorLS0tCisqKiBjdGFncyBpcyBub3cgbWVyZWx5IGEgdGhpbiB3cmFwcGVyIGFyb3Vu
ZCBldGFncy4KK1RoaXMgc3BlZWRzIHVwIGNvbXBpbGF0aW9uIGFuZCBsZXNzZW5zIGluc3Rh
bGxhdGlvbiBmb290cHJpbnQuCisKIAogKiBNYWNPUy9OUyBDaGFuZ2VzIGluIEVtYWNzIDMx
LjEKIApkaWZmIC0tZ2l0IGEvZXRjL1BST0JMRU1TIGIvZXRjL1BST0JMRU1TCmluZGV4IDBk
NjFhM2JjNzZlLi45NTI4MTNmMGM1YiAxMDA2NDQKLS0tIGEvZXRjL1BST0JMRU1TCisrKyBi
L2V0Yy9QUk9CTEVNUwpAQCAtMzk3Myw3ICszOTczLDcgQEAgVGhlcmUgYXJlIHNldmVyYWwg
a25vd24gd29ya2Fyb3VuZHM6CiAKIFRoZSBsaW5rZXIgZXJyb3IgbWVzc2FnZXMgbG9vayBs
aWtlIHRoaXM6CiAKLSBvby1zcGQvaTM4Ni9jdGFncy5vOmN0YWdzLmM6KC50ZXh0KzB4MTU2
ZSk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9pbXBfX3JlX3NldF9zeW50YXgnCisgb28t
c3BkL2kzODYvZXRhZ3MubzpldGFncy5jOigudGV4dCsweDE1NmUpOiB1bmRlZmluZWQgcmVm
ZXJlbmNlIHRvIGBfaW1wX19yZV9zZXRfc3ludGF4JwogIGNvbGxlY3QyOiBsZCByZXR1cm5l
ZCAxIGV4aXQgc3RhdHVzCiAKIFRoaXMgaGFwcGVucyBiZWNhdXNlIEdDQyBmaW5kcyBhbiBp
bmNvbXBhdGlibGUgcmVnZXguaCBoZWFkZXIKQEAgLTQwMDQsNyArNDAwNCw3IEBAIFNvbWUg
dmVyc2lvbnMgb2YgbWluZ3czMiBtYWtlIG9uIHNvbWUgdmVyc2lvbnMgb2YgV2luZG93cyBk
byBub3Qgc2VlbQogdG8gZGV0ZWN0IHRoZSBzaGVsbCBjb3JyZWN0bHkuICBUcnkgIm1ha2Ug
U0hFTEw9Y21kLmV4ZSIsIG9yIGlmIHRoYXQKIGZhaWxzLCB0cnkgcnVubmluZyBtYWtlIGZy
b20gQ3lnd2luIGJhc2ggaW5zdGVhZC4KIAotKioqIEJ1aWxkaW5nICdjdGFncycgZm9yIE1T
LVdpbmRvd3Mgd2l0aCB0aGUgTWluR1cgcG9ydCBvZiBHQ0MgZmFpbHMuCisqKiogQnVpbGRp
bmcgJ2V0YWdzJyBmb3IgTVMtV2luZG93cyB3aXRoIHRoZSBNaW5HVyBwb3J0IG9mIEdDQyBm
YWlscy4KIAogVGhpcyBtaWdodCBoYXBwZW4gZHVlIHRvIGEgYnVnIGluIHRoZSBNaW5HVyBo
ZWFkZXIgYXNzZXJ0LmgsIHdoaWNoCiBkZWZpbmVzIHRoZSAnYXNzZXJ0JyBtYWNybyB3aXRo
IGEgdHJhaWxpbmcgc2VtaS1jb2xvbi4gIFRoZSBmb2xsb3dpbmcKZGlmZiAtLWdpdCBhL2ph
dmEvTWFrZWZpbGUuaW4gYi9qYXZhL01ha2VmaWxlLmluCmluZGV4IDM5ZDZlODVjN2E3Li4y
MWFjNGU0MjUwZCAxMDA2NDQKLS0tIGEvamF2YS9NYWtlZmlsZS5pbgorKysgYi9qYXZhL01h
a2VmaWxlLmluCkBAIC0zMDUsOCArMzA1LDEzIEBAIGluc3RhbGxfdGVtcDoKIAkgICAgY3Ag
LWYgJCRmaWxlIGluc3RhbGxfdGVtcC9saWIvJChBTkRST0lEX0FCSSk7CVwKIAkgIGZpIAkJ
CQkJCQlcCiAJZG9uZQotIyBOZXh0LCBwcm9kdWNlIGEgdmVyc2lvbiBvZiByY3MybG9nIGJl
Zml0dGluZyBBbmRyb2lkJ3MgbmFtaW5nCisjIE5leHQsIHByb2R1Y2UgdmVyc2lvbnMgb2Yg
Y3RhZ3MgYW5kIHJjczJsb2cgYmVmaXR0aW5nIEFuZHJvaWQncyBuYW1pbmcKICMgY29udmVu
dGlvbnMgYW5kIHNoZWxsIGludGVycHJldGVyIGxvY2F0aW9uLgorCSQoQU1fVl9hdCkgXAor
CXNlZCAnc3wvYmluL3NofC9zeXN0ZW0vYmluL3NofCcJCQkJCVwKKwkgJCh0b3Bfc3JjZGly
KS9saWItc3JjL2N0YWdzID4JCQkJCVwKKwkgaW5zdGFsbF90ZW1wL2xpYi8kKEFORFJPSURf
QUJJKS9saWJjdGFncy5zbworCSQoQU1fVl9hdCkgY2htb2QgK3ggaW5zdGFsbF90ZW1wL2xp
Yi8kKEFORFJPSURfQUJJKS9saWJjdGFncy5zbwogCSQoQU1fVl9hdCkgXAogCXNlZCAnc3wv
YmluL3NofC9zeXN0ZW0vYmluL3NofCcJCQkJCVwKIAkgJCh0b3Bfc3JjZGlyKS9saWItc3Jj
L3JjczJsb2cgPgkJCQlcCmRpZmYgLS1naXQgYS9saWItc3JjL01ha2VmaWxlLmluIGIvbGli
LXNyYy9NYWtlZmlsZS5pbgppbmRleCA0MzlkOWExYTUyZC4uMzAwYWJlNjA5ZDEgMTAwNjQ0
Ci0tLSBhL2xpYi1zcmMvTWFrZWZpbGUuaW4KKysrIGIvbGliLXNyYy9NYWtlZmlsZS5pbgpA
QCAtMTU1LDEyICsxNTUsMTMgQEAgQU5EUk9JRD0KIENMSUVOVFcgPSBAQ0xJRU5UV0AKIAog
IyBUaGluZ3MgdGhhdCBhIHVzZXIgbWlnaHQgYWN0dWFsbHkgcnVuLCB3aGljaCBzaG91bGQg
YmUgaW5zdGFsbGVkIGluIGJpbmRpci4KLUlOU1RBTExBQkxFUyA9IGV0YWdzJHtFWEVFWFR9
IGN0YWdzJHtFWEVFWFR9IGVtYWNzY2xpZW50JHtFWEVFWFR9ICQoQ0xJRU5UVykgXAotICAg
ICAgICAgICAgICAgZWJyb3dzZSR7RVhFRVhUfQorSU5TVEFMTEFCTEVfRVhFUyA9IGV0YWdz
JHtFWEVFWFR9ICQoaWYgJChFWEVFWFQpLCBjdGFncyQoRVhFRVhUKSkgXAorICBlbWFjc2Ns
aWVudCR7RVhFRVhUfSAkKENMSUVOVFcpIGVicm93c2Uke0VYRUVYVH0KK0lOU1RBTExBQkxF
X1NDUklQVFMgPSAkKGlmICQoRVhFRVhUKSwgLCBjdGFncykKIAogIyBUaGluZ3MgdGhhdCBF
bWFjcyBydW5zIGludGVybmFsbHksIG9yIGR1cmluZyB0aGUgYnVpbGQgcHJvY2VzcywKICMg
IHdoaWNoIHNob3VsZCBub3QgYmUgaW5zdGFsbGVkIGluIGJpbmRpci4KLVVUSUxJVElFUyA9
IGhleGwke0VYRUVYVH0gCQkJIAkgXAorVVRJTElUWV9FWEVTID0gaGV4bCR7RVhFRVhUfSBc
CiAJICAgICQoaWYgJCh3aXRoX21haWx1dGlscyksICwgbW92ZW1haWwke0VYRUVYVH0pIFwK
ICAgICAgICAgICAgICQoYW5kICQodXNlX2dhbWVkaXIpLCB1cGRhdGUtZ2FtZS1zY29yZSR7
RVhFRVhUfSkKIApAQCAtMTc1LDEyICsxNzYsMTIgQEAgRE9OVF9JTlNUQUxMPQogZW5kaWYK
IGVuZGlmCiAKLSMgTGlrZSBVVElMSVRJRVMsIGJ1dCB0aGV5J3JlIG5vdCBzeXN0ZW0tZGVw
ZW5kZW50LCBhbmQgc2hvdWxkIG5vdCBiZQorIyBMaWtlIFVUSUxJVFlfRVhFUywgYnV0IHRo
ZXkncmUgbm90IHN5c3RlbS1kZXBlbmRlbnQsIGFuZCBzaG91bGQgbm90IGJlCiAjICBkZWxl
dGVkIGJ5IHRoZSBkaXN0Y2xlYW4gdGFyZ2V0LgotU0NSSVBUUz0gcmNzMmxvZworVVRJTElU
WV9TQ1JJUFRTID0gcmNzMmxvZwogCiAjIEFsbCBmaWxlcyB0aGF0IGFyZSBjcmVhdGVkIGJ5
IHRoZSBsaW5rZXIsIGkuZS4sIHdob3NlIG5hbWVzIGVuZCBpbiAke0VYRUVYVH0uCi1FWEVf
RklMRVMgPSAke0lOU1RBTExBQkxFU30gJHtVVElMSVRJRVN9ICR7RE9OVF9JTlNUQUxMfQor
RVhFX0ZJTEVTID0gJHtJTlNUQUxMQUJMRV9FWEVTfSAke1VUSUxJVFlfRVhFU30gJHtET05U
X0lOU1RBTEx9CiAKICMgU3BlY2lmeSBhZGRpdGlvbmFsIC1EIGZsYWdzIGZvciBtb3ZlbWFp
bC4gT3B0aW9uczoKICMgLURNQUlMX1VTRV9GTE9DSyBvciAtRE1BSUxfVVNFX0xPQ0tGICh1
c2UgZmxvY2sgb3IgbG9ja2YgZm9yIGZpbGUgbG9ja2luZykuCkBAIC0yODMsNyArMjg0LDcg
QEAgQUxMX0NYWEZMQUdTID0KICMgQ29uZmlndXJhdGlvbiBmaWxlcyBmb3IgLm8gZmlsZXMg
dG8gZGVwZW5kIG9uLgogY29uZmlnX2ggPSAuLi9zcmMvY29uZmlnLmggJChzcmNkaXIpLy4u
L3NyYy9jb25mX3Bvc3QuaAogCi1hbGw6ICR7RVhFX0ZJTEVTfSAke1NDUklQVFN9CithbGw6
ICR7RVhFX0ZJTEVTfSAke0lOU1RBTExBQkxFX1NDUklQVFN9ICR7VVRJTElUWV9TQ1JJUFRT
fQogCiBpZmVxICgkKFNFQ0NPTVBfRklMVEVSKSwxKQogYWxsOiBzZWNjb21wLWZpbHRlci5i
cGYgc2VjY29tcC1maWx0ZXItZXhlYy5icGYKQEAgLTMyNCw3ICszMjUsNyBAQCAkKERFU1RE
SVIpJHthcmNobGliZGlyfToKIAl1bWFzayAwMjIgJiYgJHtNS0RJUl9QfSAiJChERVNURElS
KSR7YXJjaGxpYmRpcn0iCiAJZXhwX2FyY2hsaWJkaXI9YGNkICIkKERFU1RESVIpJHthcmNo
bGliZGlyfSIgJiYgcHdkIC1QYCAmJiBcCiAJaWYgWyAiJCRleHBfYXJjaGxpYmRpciIgIT0g
ImBwd2QgLVBgIiBdOyB0aGVuIFwKLQkgIGZvciBmaWxlIGluICR7VVRJTElUSUVTfTsgZG8g
XAorCSAgZm9yIGZpbGUgaW4gJHtVVElMSVRZX0VYRVN9OyBkbyBcCiAJICAgICQoSU5TVEFM
TF9QUk9HUkFNKSAkKElOU1RBTExfU1RSSVApICQkZmlsZSBcCiAJICAgICAgIiQoREVTVERJ
Uikke2FyY2hsaWJkaXJ9LyQkZmlsZSIgfHwgZXhpdDsgXAogCSAgZG9uZSA7IFwKQEAgLTM1
MSw3ICszNTIsNyBAQCAkKERFU1RESVIpJHthcmNobGliZGlyfToKICAgZW5kaWYKIAlleHBf
YXJjaGxpYmRpcj1gY2QgIiQoREVTVERJUikke2FyY2hsaWJkaXJ9IiAmJiBwd2QgLVBgICYm
IFwKIAlpZiBbICIkJGV4cF9hcmNobGliZGlyIiAhPSAiYGNkICR7c3JjZGlyfSAmJiBwd2Qg
LVBgIiBdOyB0aGVuIFwKLQkgIGZvciBmaWxlIGluICR7U0NSSVBUU307IGRvIFwKKwkgIGZv
ciBmaWxlIGluICR7VVRJTElUWV9TQ1JJUFRTfTsgZG8gXAogCSAgICAkKElOU1RBTExfU0NS
SVBUKSAke3NyY2Rpcn0vJCRmaWxlIFwKIAkgICAgICAiJChERVNURElSKSR7YXJjaGxpYmRp
cn0vJCRmaWxlIiB8fCBleGl0OyBcCiAJICBkb25lIDsgXApAQCAtMzY0LDIyICszNjUsMzUg
QEAgaW5zdGFsbDoKIAkkKGluZm8gJC4pCiAJJChpbmZvIEluc3RhbGxpbmcgdXRpbGl0aWVz
IGZvciB1c2VycyB0byBydW4uKQogCXVtYXNrIDAyMiAmJiAke01LRElSX1B9ICIkKERFU1RE
SVIpJHtiaW5kaXJ9IgotCWZvciBmaWxlIGluICR7SU5TVEFMTEFCTEVTfSA7IGRvIFwKKwlm
b3IgZmlsZSBpbiAke0lOU1RBTExBQkxFX0VYRVN9IDsgZG8gXAogCSAgJChJTlNUQUxMX1BS
T0dSQU0pICQoSU5TVEFMTF9TVFJJUCkgJCR7ZmlsZX0gXAogCSAgICAiJChERVNURElSKSR7
YmluZGlyfSIvYCBcCiAJICAgICAgZWNobyAkJHtmaWxlfSB8IHNlZCAtZSAncy8ke0VYRUVY
VH0kJC8vJyAtZSAnJChUUkFOU0ZPUk0pJyBcCiAJICAgIGAke0VYRUVYVH0gfHwgZXhpdDsg
XAogCWRvbmUKKwlmb3IgZmlsZSBpbiAnJyAke0lOU1RBTExBQkxFX1NDUklQVFN9OyBkbyBc
CisJICBbICIkJGZpbGUiIF0gfHwgY29udGludWU7IFwKKwkgICQoSU5TVEFMTF9QUk9HUkFN
KSAkJHtmaWxlfSBcCisJICAgICIkKERFU1RESVIpJHtiaW5kaXJ9Ii9gIFwKKwkgICAgICBl
Y2hvICQke2ZpbGV9IHwgc2VkIC1lICckKFRSQU5TRk9STSknIFwKKwkgICAgYCB8fCBleGl0
OyBcCisJZG9uZQogCiB1bmluc3RhbGw6Ci0JZm9yIGZpbGUgaW4gJHtJTlNUQUxMQUJMRVN9
OyBkbyBcCisJZm9yIGZpbGUgaW4gJHtJTlNUQUxMQUJMRV9FWEVTfTsgZG8gXAogCSAgcm0g
LWYgIiQoREVTVERJUikke2JpbmRpcn0iL2AgXAogCSAgICBlY2hvICQke2ZpbGV9IHwgc2Vk
IC1lICdzLyR7RVhFRVhUfSQkLy8nIC1lICckKFRSQU5TRk9STSknIFwKIAkgIGAke0VYRUVY
VH07IFwKIAlkb25lCisJZm9yIGZpbGUgaW4gJycgJHtJTlNUQUxMQUJMRV9TQ1JJUFRTfTsg
ZG8gXAorCSAgWyAiJCRmaWxlIiBdIHx8IGNvbnRpbnVlOyBcCisJICBybSAtZiAiJChERVNU
RElSKSR7YmluZGlyfSIvYCBcCisJICAgIGVjaG8gJCR7ZmlsZX0gfCBzZWQgLWUgJyQoVFJB
TlNGT1JNKScgXAorCSAgYDsgXAorCWRvbmUKIAlpZiBbIC1kICIkKERFU1RESVIpJHthcmNo
bGliZGlyfSIgXTsgdGhlbiBcCiAJICBjZCAiJChERVNURElSKSR7YXJjaGxpYmRpcn0iICYm
IFwKLQkgIHJtIC1mICR7VVRJTElUSUVTfSAke1NDUklQVFN9OyBcCisJICBybSAtZiAke1VU
SUxJVFlfRVhFU30gJHtVVElMSVRZX1NDUklQVFN9OyBcCiAJZmkKIAogbW9zdGx5Y2xlYW46
CkBAIC00MTUsMTIgKzQyOSwxMyBAQCBldGFnc19saWJzID0KIGV0YWdzJHtFWEVFWFR9OiAk
e2V0YWdzX2RlcHN9CiAJJChBTV9WX0NDTEQpJChDQykgJHtBTExfQ0ZMQUdTfSAtbyAkQCAk
PCAkKGV0YWdzX2xpYnMpCiAKLSMjIGN0YWdzLmMgaXMgZGlzdGluY3QgZnJvbSBldGFncy5j
IHNvIHRoYXQgcGFyYWxsZWwgbWFrZXMgZG8gbm90IHdyaXRlIHR3bwotIyMgZXRhZ3MubyBm
aWxlcyBvbiB0b3Agb2YgZWFjaCBvdGhlci4KLSMjIEZJWE1FPwotIyMgQ2FuJ3Qgd2UgdXNl
IGEgd3JhcHBlciB0aGF0IGNhbGxzICdldGFncyAtLWN0YWdzJz8KLWN0YWdzJHtFWEVFWFR9
OiAke3NyY2Rpcn0vY3RhZ3MuYyAke2V0YWdzX2RlcHN9Ci0JJChBTV9WX0NDTEQpJChDQykg
JHtBTExfQ0ZMQUdTfSAtbyAkQCAkPCAkKGV0YWdzX2xpYnMpCitpZmVxICgkKEVYRUVYVCks
KQorICBjdGFnczogJHtzcmNkaXJ9L2N0YWdzLnNoCisJY3AgJD8gJEAKK2Vsc2UKKyAgY3Rh
Z3Mke0VYRUVYVH06ICR7c3JjZGlyfS9jdGFncy5jICQoTlRMSUIpICQoY29uZmlnX2gpCisJ
JChBTV9WX0NDTEQpJChDQykgJHtBTExfQ0ZMQUdTfSAtbyAkQCAkPCAkKE5UTElCKSAkKExP
QURMSUJFUykKK2VuZGlmCiAKIGFzc2V0LWRpcmVjdG9yeS10b29sJHtFWEVFWFR9OiAke3Ny
Y2Rpcn0vYXNzZXQtZGlyZWN0b3J5LXRvb2wuYyAkKGNvbmZpZ19oKQogCSQoQU1fVl9DQ0xE
KSQoQ0MpICR7QUxMX0NGTEFHU30gJDwgJChMT0FETElCRVMpIC1vICRACmRpZmYgLS1naXQg
YS9saWItc3JjL2N0YWdzLmMgYi9saWItc3JjL2N0YWdzLmMKaW5kZXggMGE2ODM4YTlkYmIu
LjgyMzI0ZjUzNzM4IDEwMDY0NAotLS0gYS9saWItc3JjL2N0YWdzLmMKKysrIGIvbGliLXNy
Yy9jdGFncy5jCkBAIC0xLDIgKzEsMTMwIEBACi0jZGVmaW5lIENUQUdTIDEKLSNpbmNsdWRl
ICJldGFncy5jIgorLyogTGlrZSBjdGFncy5zaCBidXQgZm9yIE1TLVdpbmRvd3MsIHdoaWNo
IGxhY2tzIHRoZSBzaGVsbC4KKworQ29weXJpZ2h0IDIwMjUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuCisKK1RoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KKworR05V
IEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
ciBtb2RpZnkKK2l0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cit0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKK3lvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworR05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCitidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorR05V
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKK2Fsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3Lmdu
dS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNkZWZpbmUgREVGRVJfTVNfVzMyX0gKKyNpbmNs
dWRlIDxjb25maWcuaD4KKworI2luY2x1ZGUgPGZpbGVuYW1lLmg+CisKKyNpbmNsdWRlIDxt
YWxsb2MuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKwor
LyogRGVjbGFyZSBfZXhlY3ZwIGJ5IGhhbmQsIHNpbmNlIE1TLVdpbmRvd3MgPHByb2Nlc3Mu
aD4gY29sbGlkZXMgd2l0aAorICAgLi4vc3JjL3Byb2Nlc3MuaC4gICovCisjaW5jbHVkZSA8
c3RkaW50Lmg+IC8qIGZvciBpbnRwdHJfdCAqLworZXh0ZXJuIGludHB0cl90IF9leGVjdnAg
KGNoYXIgY29uc3QgKiwgY2hhciBjb25zdCAqY29uc3QgKik7CisKKyNpZmRlZiBXSU5ET1dT
TlQKKy8qIFN0b3JlIGludG8gRFtJXSB0aHJvdWdoIERbSSArIE4gLSAxXSB0aGUgYnl0ZSBD
LCBhbmQgcmV0dXJuIEkgKyBOLgorICAgQnV0IGlmIEQgaXMgbnVsbCwganVzdCByZXR1cm4g
dGhlIGluY3JlbWVudGVkIGNvdW50LiAgKi8KK3N0YXRpYyBzaXplX3QKK3N0b3JlIChjaGFy
ICpkLCBzaXplX3QgaSwgc2l6ZV90IG4sIGNoYXIgYykKK3sKKyAgaWYgKGQpCisgICAgZm9y
IChzaXplX3QgaiA9IDA7IGogPCBuOyBqKyspCisgICAgICBkW2kgKyBqXSA9IGM7CisgIHJl
dHVybiBpICsgbjsKK30KKyNlbmRpZgorCisvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRl
cyB1c2VkIHRvIHJlcHJlc2VudCB0aGUgc3RyaW5nIFMgYXMgYW4KKyAgIGV4ZWN2cCBhcmd1
bWVudCwgaW5jbHVkaW5nIHRoZSB0cmFpbGluZyBudWxsIGJ5dGUuCisgICBJZiBEIGlzIG5v
bm51bGwsIGFsc28gc3RvcmUgdGhlIHJlcHJlc2VudGF0aW9uIGludG8gRC4KKyAgIE9uIE1T
LVdpbmRvd3Mgc29tZSBlc2NhcGluZyBpcyByZXF1aXJlZDoKKyAgIGR1ZSB0byBNaWNyb3Nv
ZnQgQyBydW50aW1lIGNvbnN0cmFpbnRzLCBTIGNhbm5vdCBjb250YWluICdcbicsCisgICBh
bmQgaWYgUyBjb250YWlucyAnIicgdGhlIHJlcHJlc2VudGF0aW9uIGNhbm5vdCBiZSB1c2Vk
IGZvciBhcmd1bWVudCAwLiAgKi8KK3N0YXRpYyBzaXplX3QKK3czMl9leGVjdnBfYXJnX3Jl
cHIgKGNoYXIgY29uc3QgKnJlc3RyaWN0IHMsIGNoYXIgKnJlc3RyaWN0IGQpCit7CisgIHNp
emVfdCBpOworI2lmZGVmIFdJTkRPV1NOVAorICAvKiBTZWUgPGh0dHBzOi8vbGVhcm4ubWlj
cm9zb2Z0LmNvbS9lbi11cy9jcHAvYy1sYW5ndWFnZS9wYXJzaW5nLWMtY29tbWFuZC1saW5l
LWFyZ3VtZW50cz4uCisgICAgIEFsdGhvdWdoIHF1b3RpbmcgaXMgbmVlZGVkIG9ubHkgaWYg
UyBpcyBlbXB0eSBvciBjb250YWlucyBzcGFjZSBvciB0YWIsCisgICAgIGl0IGlzIHNpbXBs
ZXIgYW5kIHBlcmhhcHMgY2hlYXBlciB0byBhbHdheXMgcXVvdGUuICAqLworICBpID0gc3Rv
cmUgKGQsIDAsIDEsICciJyk7CisKKyAgc2l6ZV90IGJzY291bnQgPSAwOyAvKiBDb3VudCBv
ZiBwcmVjZWRpbmcgYmFja3NsYXNoZXMuICAqLworICBmb3IgKDsgKnM7IHMrKykKKyAgICB7
CisgICAgICBpZiAoKnMgPT0gJyInKQorCXN0b3JlIChkLCBpLCBic2NvdW50ICsgMSwgJ1xc
Jyk7CisgICAgICBpID0gc3RvcmUgKGQsIGksIDEsICpzKTsKKyAgICAgIGJzY291bnQgPSAq
cyA9PSAnXFwnID8gYnNjb3VudCArIDEgOiAwOworICAgIH0KKworICBpID0gc3RvcmUgKGQs
IGksIGJzY291bnQsICdcXCcpOworICBpID0gc3RvcmUgKGQsIGksIDEsICciJyk7CisgIGkg
PSBzdG9yZSAoZCwgaSwgMSwgJ1wwJyk7CisjZWxzZQorICBpID0gc3RybGVuIChzKSArIDE7
CisgIGlmIChkKQorICAgIG1lbWNweSAoZCwgcywgaSk7CisjZW5kaWYKKyAgcmV0dXJuIGk7
Cit9CisKK2ludAorbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICBzdGF0aWMg
Y2hhciBjb25zdCBldGFnc19iYXNlbmFtZVtdID0gImV0YWdzIjsKKyAgc3RhdGljIGNoYXIg
Y29uc3Qgb3B0aW9uX3ByZWZpeFtdID0gIi0tY3RhZ3M9IjsKKworICBjaGFyIGNvbnN0ICpw
cm9nbmFtZSA9IGFyZ3ZbMF07CisgIGNoYXIgY29uc3QgKnByb2duYW1lX2Jhc2UgPSBwcm9n
bmFtZSArIEZJTEVfU1lTVEVNX1BSRUZJWF9MRU4gKHByb2duYW1lKTsKKyAgY2hhciBjb25z
dCAqcDsKKyAgZm9yIChwID0gcHJvZ25hbWVfYmFzZTsgKnA7IHArKykKKyAgICBpZiAoSVNT
TEFTSCAoKnApKQorICAgICAgcHJvZ25hbWVfYmFzZSA9IHAgKyAxOworICBzaXplX3QgcHJv
Z25hbWVfZGlybGVuID0gcHJvZ25hbWVfYmFzZSAtIHByb2duYW1lOworICBzaXplX3QgcHJv
Z25hbWVfYmFzZWxlbiA9IHAgLSBwcm9nbmFtZV9iYXNlOworCisgIC8qIE51bWJlciBvZiBi
eXRlcyBuZWVkZWQgdG8gcmVwcmVzZW50IGFsbCBldGFncyBhcmdzLiAgKi8KKyAgc2l6ZV90
IG5hcmdieXRlcyA9IDA7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnYzsgaSsrKQorICAg
IG5hcmdieXRlcyArPSB3MzJfZXhlY3ZwX2FyZ19yZXByIChhcmd2W2ldLCBOVUxMKTsKKyAg
bmFyZ2J5dGVzIC09IHByb2duYW1lX2Jhc2VsZW47CisgIG5hcmdieXRlcyArPSBzaXplb2Yg
ZXRhZ3NfYmFzZW5hbWUgLSAxICsgc2l6ZW9mIG9wdGlvbl9wcmVmaXggLSAxOworCisgIGNo
YXIgY29uc3QgKipldGFnc19hcmd2ID0gbWFsbG9jICgoYXJnYyArIDIpICogc2l6ZW9mICph
cmd2ICsgbmFyZ2J5dGVzKTsKKyAgaWYgKGV0YWdzX2FyZ3YpCisgICAgeworICAgICAgY2hh
ciAqZCA9IChjaGFyICopIChldGFnc19hcmd2ICsgYXJnYyArIDIpOworICAgICAgZXRhZ3Nf
YXJndlswXSA9IG1lbWNweSAoZCwgcHJvZ25hbWUsIHByb2duYW1lX2Rpcmxlbik7CisgICAg
ICBkICs9IHByb2duYW1lX2RpcmxlbjsKKyAgICAgIG1lbWNweSAoZCwgZXRhZ3NfYmFzZW5h
bWUsIHNpemVvZiBldGFnc19iYXNlbmFtZSk7CisgICAgICBkICs9IHNpemVvZiBldGFnc19i
YXNlbmFtZTsKKyAgICAgIGV0YWdzX2FyZ3ZbMV0gPSBtZW1jcHkgKGQsIG9wdGlvbl9wcmVm
aXgsIHNpemVvZiBvcHRpb25fcHJlZml4IC0gMSk7CisgICAgICBkICs9IHNpemVvZiBvcHRp
b25fcHJlZml4IC0gMTsKKyAgICAgIGQgKz0gdzMyX2V4ZWN2cF9hcmdfcmVwciAocHJvZ25h
bWUsIGQpOworCisgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ2M7IGkrKykKKwl7CisJ
ICBldGFnc19hcmd2W2kgKyAxXSA9IGQ7CisJICBkICs9IHczMl9leGVjdnBfYXJnX3JlcHIg
KGFyZ3ZbaV0sIGQpOworCX0KKworICAgICAgZXRhZ3NfYXJndlthcmdjICsgMV0gPSBOVUxM
OworICAgICAgcHJvZ25hbWUgPSBldGFnc19hcmd2WzBdOworICAgICAgX2V4ZWN2cCAocHJv
Z25hbWUsIGV0YWdzX2FyZ3YpOworICAgIH0KKworICBwZXJyb3IgKHByb2duYW1lKTsKKyAg
cmV0dXJuIDEyNzsKK30KZGlmZiAtLWdpdCBhL2xpYi1zcmMvY3RhZ3Muc2ggYi9saWItc3Jj
L2N0YWdzLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwLi43ZTFh
MTBiN2FiNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYi1zcmMvY3RhZ3Muc2gKQEAgLTAsMCAr
MSw2IEBACisjIS9iaW4vc2gKK2Nhc2UgJDAgaW4KKyAgKi8qKSBldGFncz0kezAlLyp9L2V0
YWdzOzsKKyAgKikgICBldGFncz1ldGFnczs7Citlc2FjCitleGVjICIkZXRhZ3MiIC0tY3Rh
Z3M9IiQwIiAiJEAiCmRpZmYgLS1naXQgYS9saWItc3JjL2V0YWdzLmMgYi9saWItc3JjL2V0
YWdzLmMKaW5kZXggYjU5YjcwYzllYzcuLmRhYTUxYzEyNWQ0IDEwMDY0NAotLS0gYS9saWIt
c3JjL2V0YWdzLmMKKysrIGIvbGliLXNyYy9ldGFncy5jCkBAIC0xMjYsMTYgKzEyNiw2IEBA
IENvcHlyaWdodCAoQykgMTk4NCwgMTk4Ny0xOTg5LCAxOTkzLTE5OTUsIDE5OTgtMjAyNSBG
cmVlIFNvZnR3YXJlCiAjaW5jbHVkZSA8Z2V0b3B0Lmg+CiAjaW5jbHVkZSA8cmVnZXguaD4K
IAotLyogRGVmaW5lIENUQUdTIHRvIG1ha2UgdGhlIHByb2dyYW0gImN0YWdzIiBjb21wYXRp
YmxlIHdpdGggdGhlIHVzdWFsIG9uZS4KLSBMZWF2ZSBpdCB1bmRlZmluZWQgdG8gbWFrZSB0
aGUgcHJvZ3JhbSAiZXRhZ3MiLCB3aGljaCBtYWtlcyBlbWFjcy1zdHlsZQotIHRhZyB0YWJs
ZXMgYW5kIHRhZ3MgdHlwZWRlZnMsICNkZWZpbmVzIGFuZCBzdHJ1Y3QvdW5pb24vZW51bSBi
eSBkZWZhdWx0LiAqLwotI2lmZGVmIENUQUdTCi0jIHVuZGVmICBDVEFHUwotIyBkZWZpbmUg
Q1RBR1MgdHJ1ZQotI2Vsc2UKLSMgZGVmaW5lIENUQUdTIGZhbHNlCi0jZW5kaWYKLQogLyog
RGVmaW5lIE1FUkNVUllfSEVVUklTVElDU19SQVRJTyBhcyBpdCB3YXMgbmVjZXNzYXJ5IHRv
IGRpc2FtYmlndWF0ZQogICAgTWVyY3VyeSBmcm9tIE9iamVjdGl2ZSBDLCB3aGljaCBoYXZl
IHNhbWUgZmlsZSBleHRlbnNpb25zIC5tCiAgICBTZWUgY29tbWVudHMgYmVmb3JlIGZ1bmN0
aW9uIHRlc3Rfb2JqY19pc19tZXJjdXJ5IGZvciBkZXRhaWxzLiAgKi8KQEAgLTQ3OSwxOCAr
NDY5LDIwIEBAICNkZWZpbmUgeHJuZXcob3AsIG4sIG0pICgob3ApID0geG5yZWFsbG9jIChv
cCwgbiwgKG0pICogc2l6ZW9mICoob3ApKSkKIHN0YXRpYyBib29sIGlnbm9yZWluZGVudDsJ
LyogLUk6IGlnbm9yZSBpbmRlbnRhdGlvbiBpbiBDICovCiBzdGF0aWMgaW50IHBhY2thZ2Vz
X29ubHk7CS8qIC0tcGFja2FnZXMtb25seTogaW4gQWRhLCBvbmx5IHRhZyBwYWNrYWdlcyov
CiBzdGF0aWMgaW50IGNsYXNzX3F1YWxpZnk7CS8qIC1ROiBwcm9kdWNlIGNsYXNzLXF1YWxp
ZmllZCB0YWdzIGluIEMrKy9KYXZhICovCitzdGF0aWMgYm9vbCBjdGFnczsJCS8qIC0tY3Rh
Z3MgKi8KIHN0YXRpYyBpbnQgZGVidWc7CQkvKiAtLWRlYnVnICovCiBzdGF0aWMgaW50IGZh
bGxiYWNrX2xhbmc7CS8qIC0tKG5vLSlmYWxsYmFjay1sYW5nOiBGb3J0cmFuL0MgZmFsbGJh
Y2tzICovCiBzdGF0aWMgaW50IGVtcHR5X2ZpbGVzOwkJLyogLS0obm8tKWVtcHR5LWZpbGUt
ZW50cmllcyAqLwotCi0vKiBTVERJTiBpcyBkZWZpbmVkIGluIEx5bnhPUyBzeXN0ZW0gaGVh
ZGVycyAqLwotI2lmZGVmIFNURElOCi0jIHVuZGVmIFNURElOCi0jZW5kaWYKLQotI2RlZmlu
ZSBTVERJTiAweDEwMDEJCS8qIHJldHVybmVkIGJ5IGdldG9wdF9sb25nIG9uIC0tcGFyc2Ut
c3RkaW4gKi8KIHN0YXRpYyBib29sIHBhcnNpbmdfc3RkaW47CS8qIC0tcGFyc2Utc3RkaW4g
dXNlZCAqLwogCisvKiBGb3IgbG9uZyBvcHRpb25zIHRoYXQgaGF2ZSBubyBlcXVpdmFsZW50
IHNob3J0IG9wdGlvbiwgdXNlIGEKKyAgIG5vbi1jaGFyYWN0ZXIgYXMgYSBwc2V1ZG8gc2hv
cnQgb3B0aW9uLCBzdGFydGluZyB3aXRoIENIQVJfTUFYICsgMS4gICovCitlbnVtCisgIHsK
KyAgICBDVEFHU19PUFRJT04gPSBDSEFSX01BWCArIDEsCisgICAgU1RESU5fT1BUSU9OCisg
IH07CisKIHN0YXRpYyByZWdleHAgKnBfaGVhZDsJCS8qIGxpc3Qgb2YgYWxsIHJlZ2V4cHMg
Ki8KIHN0YXRpYyBib29sIG5lZWRfZmlsZWJ1ZjsJLyogc29tZSByZWdleGVzIGFyZSBtdWx0
aS1saW5lICovCiAKQEAgLTQ5OSw2ICs0OTEsNyBAQCAjZGVmaW5lIFNURElOIDB4MTAwMQkJ
LyogcmV0dXJuZWQgYnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAqLwogICB7ICJh
cHBlbmQiLCAgICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgICAgICAgICAg
ICAgICAnYScgICB9LAogICB7ICJwYWNrYWdlcy1vbmx5IiwgICAgICBub19hcmd1bWVudCwg
ICAgICAgJnBhY2thZ2VzX29ubHksICAgICAxICAgICB9LAogICB7ICJjKysiLCAgICAgICAg
ICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgICAgICAgICAgICAgICAnQycgICB9
LAorICB7ICJjdGFncyIsICAgICAgICAgICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwg
ICAgICAgIENUQUdTX09QVElPTiB9LAogICB7ICJkZWJ1ZyIsICAgICAgICAgICAgICBub19h
cmd1bWVudCwgICAgICAgJmRlYnVnLCAgICAgICAgICAgICAxICAgICB9LAogICB7ICJkZWNs
YXJhdGlvbnMiLCAgICAgICBub19hcmd1bWVudCwgICAgICAgJmRlY2xhcmF0aW9ucywgICAg
ICAxICAgICB9LAogICB7ICJuby1saW5lLWRpcmVjdGl2ZSIsICBub19hcmd1bWVudCwgICAg
ICAgJm5vX2xpbmVfZGlyZWN0aXZlLCAxICAgICB9LApAQCAtNTE0LDEwICs1MDcsMTAgQEAg
I2RlZmluZSBTVERJTiAweDEwMDEJCS8qIHJldHVybmVkIGJ5IGdldG9wdF9sb25nIG9uIC0t
cGFyc2Utc3RkaW4gKi8KICAgeyAicmVnZXgiLCAgICAgICAgICAgICAgcmVxdWlyZWRfYXJn
dW1lbnQsIE5VTEwsICAgICAgICAgICAgICAgJ3InICAgfSwKICAgeyAibm8tcmVnZXgiLCAg
ICAgICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsICAgICAgICAgICAgICAgJ1InICAg
fSwKICAgeyAiaWdub3JlLWNhc2UtcmVnZXgiLCAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEws
ICAgICAgICAgICAgICAgJ2MnICAgfSwKLSAgeyAicGFyc2Utc3RkaW4iLCAgICAgICAgcmVx
dWlyZWRfYXJndW1lbnQsIE5VTEwsICAgICAgICAgICAgICAgU1RESU4gfSwKKyAgeyAicGFy
c2Utc3RkaW4iLCAgICAgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICAgICAgICBTVERJ
Tl9PUFRJT04gfSwKICAgeyAidmVyc2lvbiIsICAgICAgICAgICAgbm9fYXJndW1lbnQsICAg
ICAgIE5VTEwsICAgICAgICAgICAgICAgJ1YnICAgfSwKIAotI2lmIENUQUdTIC8qIEN0YWdz
IG9wdGlvbnMgKi8KKyAgLyogY3RhZ3Mgb3B0aW9ucyAqLwogICB7ICJiYWNrd2FyZC1zZWFy
Y2giLCAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgICAgICAgICAgICAgICAnQicgICB9
LAogICB7ICJjeHJlZiIsICAgICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwg
ICAgICAgICAgICAgICAneCcgICB9LAogICB7ICJkZWZpbmVzIiwgICAgICAgICAgICBub19h
cmd1bWVudCwgICAgICAgTlVMTCwgICAgICAgICAgICAgICAnZCcgICB9LApAQCAtNTI4LDcg
KzUyMSw3IEBAICNkZWZpbmUgU1RESU4gMHgxMDAxCQkvKiByZXR1cm5lZCBieSBnZXRvcHRf
bG9uZyBvbiAtLXBhcnNlLXN0ZGluICovCiAgIHsgInZncmluZCIsICAgICAgICAgICAgIG5v
X2FyZ3VtZW50LCAgICAgICBOVUxMLCAgICAgICAgICAgICAgICd2JyAgIH0sCiAgIHsgIm5v
LXdhcm4iLCAgICAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAgICAgICAgICAg
ICAgICd3JyAgIH0sCiAKLSNlbHNlIC8qIEV0YWdzIG9wdGlvbnMgKi8KKyAgLyogZXRhZ3Mg
b3B0aW9ucyAqLwogICB7ICJuby1kZWZpbmVzIiwgICAgICAgICBub19hcmd1bWVudCwgICAg
ICAgTlVMTCwgICAgICAgICAgICAgICAnRCcgICB9LAogICB7ICJuby1nbG9iYWxzIiwgICAg
ICAgICBub19hcmd1bWVudCwgICAgICAgJmdsb2JhbHMsICAgICAgICAgICAwICAgICB9LAog
ICB7ICJpbmNsdWRlIiwgICAgICAgICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgICAg
ICAgICAgICAgICAnaScgICB9LApAQCAtNTM2LDcgKzUyOSw3IEBAICNkZWZpbmUgU1RESU4g
MHgxMDAxCQkvKiByZXR1cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICov
CiAgIHsgImZhbGxiYWNrLWxhbmciLCAgICAgIG5vX2FyZ3VtZW50LCAgICAgICAmZmFsbGJh
Y2tfbGFuZywgICAgIDEgICAgIH0sCiAgIHsgIm5vLWVtcHR5LWZpbGUtZW50cmllcyIsIG5v
X2FyZ3VtZW50LCAgICAmZW1wdHlfZmlsZXMsICAgICAgIDAgICAgIH0sCiAgIHsgImVtcHR5
LWZpbGUtZW50cmllcyIsIG5vX2FyZ3VtZW50LCAgICAgICAmZW1wdHlfZmlsZXMsICAgICAg
IDEgICAgIH0sCi0jZW5kaWYKKwogICB7IE5VTEwgfQogfTsKIApAQCAtNTk4LDE1ICs1OTEs
MTcgQEAgI2RlZmluZSBTVERJTiAweDEwMDEJCS8qIHJldHVybmVkIGJ5IGdldG9wdF9sb25n
IG9uIC0tcGFyc2Utc3RkaW4gKi8KICAgIFRoYXQgaXMgd2h5IGRlZmF1bHRfQ19lbnRyaWVz
IGlzIGNhbGxlZCBmb3IgdGhlc2UuICovCiBzdGF0aWMgY29uc3QgY2hhciAqZGVmYXVsdF9D
X3N1ZmZpeGVzIFtdID0KICAgeyAiYyIsICJoIiwgTlVMTCB9OwotI2lmIENUQUdTCQkJCS8q
IEMgaGVscCBmb3IgQ3RhZ3MgKi8KLXN0YXRpYyBjb25zdCBjaGFyIGRlZmF1bHRfQ19oZWxw
IFtdID0KKworLyogQyBoZWxwIGZvciBjdGFncyAqLworc3RhdGljIGNvbnN0IGNoYXIgY3Rh
Z3NfZGVmYXVsdF9DX2hlbHBbXSA9CiAiSW4gQyBjb2RlLCBhbnkgQyBmdW5jdGlvbiBpcyBh
IHRhZy4gIFVzZSAtdCB0byB0YWcgdHlwZWRlZnMuXG5cCiBVc2UgLVQgdG8gdGFnIGRlZmlu
aXRpb25zIG9mICdzdHJ1Y3QnLCAndW5pb24nIGFuZCAnZW51bScuXG5cCiBVc2UgLWQgdG8g
dGFnICcjZGVmaW5lJyBtYWNybyBkZWZpbml0aW9ucyBhbmQgJ2VudW0nIGNvbnN0YW50cy5c
blwKIFVzZSAtLWdsb2JhbHMgdG8gdGFnIGdsb2JhbCB2YXJpYWJsZXMuXG5cCiBZb3UgY2Fu
IHRhZyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgYW5kIGV4dGVybmFsIHZhcmlhYmxlcyBieVxu
XAogdXNpbmcgJy0tZGVjbGFyYXRpb25zJywgYW5kIHN0cnVjdCBtZW1iZXJzIGJ5IHVzaW5n
ICctLW1lbWJlcnMnLiI7Ci0jZWxzZQkJCQkJLyogQyBoZWxwIGZvciBFdGFncyAqLworCisv
KiBDIGhlbHAgZm9yIGV0YWdzICovCiBzdGF0aWMgY29uc3QgY2hhciBkZWZhdWx0X0NfaGVs
cCBbXSA9CiAiSW4gQyBjb2RlLCBhbnkgQyBmdW5jdGlvbiBvciB0eXBlZGVmIGlzIGEgdGFn
LCBhbmQgc28gYXJlXG5cCiBkZWZpbml0aW9ucyBvZiAnc3RydWN0JywgJ3VuaW9uJyBhbmQg
J2VudW0nLiAgJyNkZWZpbmUnIG1hY3JvXG5cCkBAIC02MTcsNyArNjEyLDYgQEAgI2RlZmlu
ZSBTVERJTiAweDEwMDEJCS8qIHJldHVybmVkIGJ5IGdldG9wdF9sb25nIG9uIC0tcGFyc2Ut
c3RkaW4gKi8KICctLW5vLW1lbWJlcnMnIGNhbiBtYWtlIHRoZSB0YWdzIHRhYmxlIGZpbGUg
bXVjaCBzbWFsbGVyLlxuXAogWW91IGNhbiB0YWcgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGFu
ZCBleHRlcm5hbCB2YXJpYWJsZXMgYnlcblwKIHVzaW5nICctLWRlY2xhcmF0aW9ucycuIjsK
LSNlbmRpZgkvKiBDIGhlbHAgZm9yIEN0YWdzIGFuZCBFdGFncyAqLwogCiBzdGF0aWMgY29u
c3QgY2hhciAqQ3BsdXNwbHVzX3N1ZmZpeGVzIFtdID0KICAgeyAiQyIsICJjKysiLCAiY2Mi
LCAiY3BwIiwgImN4eCIsICJIIiwgImgrKyIsICJoaCIsICJocHAiLCAiaHh4IiwKQEAgLTg2
Miw2ICs4NTYsNyBAQCAjZGVmaW5lIFNURElOIDB4MTAwMQkJLyogcmV0dXJuZWQgYnkgZ2V0
b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAqLwogewogICB7ICJhZGEiLCAgICAgICBBZGFf
aGVscCwgICAgICAgQWRhX2Z1bmNzLCAgICAgICAgIEFkYV9zdWZmaXhlcyAgICAgICB9LAog
ICB7ICJhc20iLCAgICAgICBBc21faGVscCwgICAgICAgQXNtX2xhYmVscywgICAgICAgIEFz
bV9zdWZmaXhlcyAgICAgICB9LAorI2RlZmluZSBDX0xBTkdfTkFNRVNfSU5ERVggMgogICB7
ICJjIiwgICAgICAgICBkZWZhdWx0X0NfaGVscCwgZGVmYXVsdF9DX2VudHJpZXMsIGRlZmF1
bHRfQ19zdWZmaXhlcyB9LAogICB7ICJjKysiLCAgICAgICBDcGx1c3BsdXNfaGVscCwgQ3Bs
dXNwbHVzX2VudHJpZXMsIENwbHVzcGx1c19zdWZmaXhlcyB9LAogICB7ICJjKiIsICAgICAg
ICBub19sYW5nX2hlbHAsICAgQ3N0YXJfZW50cmllcywgICAgIENzdGFyX3N1ZmZpeGVzICAg
ICB9LApAQCAtOTI4LDI0ICs5MjMsMjAgQEAgcHJpbnRfbGFuZ3VhZ2VfbmFtZXMgKHZvaWQp
CiBGb3J0cmFuIGlzIHRyaWVkIGZpcnN0OyBpZiBubyB0YWdzIGFyZSBmb3VuZCwgQyBpcyB0
cmllZCBuZXh0LlxuXAogV2hlbiBwYXJzaW5nIGFueSBDIGZpbGUsIGEgXCJjbGFzc1wiIG9y
IFwidGVtcGxhdGVcIiBrZXl3b3JkXG5cCiBzd2l0Y2hlcyB0byBDKysuIik7Ci0gIHB1dHMg
KCJDb21wcmVzc2VkIGZpbGVzIGFyZSBzdXBwb3J0ZWQgdXNpbmcgZ3ppcCwgYnppcDIsIHh6
LCBhbmQgenN0ZC5cblwKKyAgcHJpbnRmICgiQ29tcHJlc3NlZCBmaWxlcyBhcmUgc3VwcG9y
dGVkIHVzaW5nIGd6aXAsIGJ6aXAyLCB4eiwgYW5kIHpzdGQuXG5cCiBcblwKIEZvciBkZXRh
aWxlZCBoZWxwIG9uIGEgZ2l2ZW4gbGFuZ3VhZ2UgdXNlLCBmb3IgZXhhbXBsZSxcblwKLWV0
YWdzIC0taGVscCAtLWxhbmc9YWRhLiIpOworJXMgLS1oZWxwIC0tbGFuZz1hZGEuXG4iLAor
CSAgcHJvZ25hbWUpOwogfQogCi0jaWYgQ1RBR1MKLSMgZGVmaW5lIFBST0dSQU1fTkFNRSAi
Y3RhZ3MiCi0jZWxzZQotIyBkZWZpbmUgUFJPR1JBTV9OQU1FICJldGFncyIKLSNlbmRpZgog
c3RhdGljIF9Ob3JldHVybiB2b2lkCiBwcmludF92ZXJzaW9uICh2b2lkKQogewotICBmcHV0
cyAoKFBST0dSQU1fTkFNRSAiICgiIFBBQ0tBR0VfTkFNRSAiICIgUEFDS0FHRV9WRVJTSU9O
ICIpXG4iCi0JICBDT1BZUklHSFQgIlxuIgotCSAgIlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli
dXRlZCB1bmRlciB0aGUgdGVybXMgaW4gRVRBR1MuUkVBRE1FXG4iKSwKLQkgc3Rkb3V0KTsK
KyAgcHJpbnRmICgoIiVzICglcyAlcylcbiIKKwkgICAiJXNcbiIKKwkgICAiVGhpcyBwcm9n
cmFtIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBpbiBFVEFHUy5SRUFETUVcbiIp
LAorCSAgY3RhZ3MgPyAiY3RhZ3MiIDogImV0YWdzIiwgUEFDS0FHRV9OQU1FLCBQQUNLQUdF
X1ZFUlNJT04sIENPUFlSSUdIVCk7CiAgIGV4aXQgKEVYSVRfU1VDQ0VTUyk7CiB9CiAKQEAg
LTk4NCw3ICs5NzUsNyBAQCBwcmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVmZmVyKQogICBw
dXRzICgiLS1wYWNrYWdlcy1vbmx5XG5cCiAgICAgICAgIEZvciBBZGEgZmlsZXMsIG9ubHkg
Z2VuZXJhdGUgdGFncyBmb3IgcGFja2FnZXMuIik7CiAKLSAgaWYgKENUQUdTKQorICBpZiAo
Y3RhZ3MpCiAgICAgcHV0cyAoIi1CLCAtLWJhY2t3YXJkLXNlYXJjaFxuXAogICAgICAgICBX
cml0ZSB0aGUgc2VhcmNoIGNvbW1hbmRzIGZvciB0aGUgdGFnIGVudHJpZXMgdXNpbmcgJz8n
LCB0aGVcblwKICAgICAgICAgYmFja3dhcmQtc2VhcmNoIGNvbW1hbmQgaW5zdGVhZCBvZiAn
LycsIHRoZSBmb3J3YXJkLXNlYXJjaCBjb21tYW5kLiIpOwpAQCAtOTk3LDkgKzk4OCwxMyBA
QCBwcmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVmZmVyKQogICAgICAgICBUcmVhdCBmaWxl
cyB3aG9zZSBuYW1lIHN1ZmZpeCBkZWZhdWx0cyB0byBDIGxhbmd1YWdlIGFzIEMrKyBmaWxl
cy4iKTsKICAgKi8KIAorICBpZiAoUFJJTlRfVU5ET0NVTUVOVEVEX09QVElPTlNfSEVMUCAm
JiAhY3RhZ3MpCisgICAgcHV0cyAoIi0tY3RhZ3M9UFJPR1JBTV9OQU1FXG5cCisJSW1wbGVt
ZW50IGN0YWdzIGJlaGF2aW9yIHVuZGVyIHRoZSBuYW1lIFBST0dSQU1fTkFNRS4iKTsKKwog
ICBwdXRzICgiLS1kZWNsYXJhdGlvbnNcblwKIAlJbiBDIGFuZCBkZXJpdmVkIGxhbmd1YWdl
cywgY3JlYXRlIHRhZ3MgZm9yIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucywiKTsKLSAgaWYgKENU
QUdTKQorICBpZiAoY3RhZ3MpCiAgICAgcHV0cyAoIlx0YW5kIGNyZWF0ZSB0YWdzIGZvciBl
eHRlcm4gdmFyaWFibGVzIGlmIC0tZ2xvYmFscyBpcyB1c2VkLiIpOwogICBlbHNlCiAgICAg
cHV0cwpAQCAtMTAwOCw3ICsxMDAzLDcgQEAgcHJpbnRfaGVscCAoYXJndW1lbnQgKmFyZ2J1
ZmZlcikKICAgcHV0cyAoIlx0SW4gTWVyY3VyeSwgdGFnIGJvdGggZGVjbGFyYXRpb25zIHN0
YXJ0aW5nIGEgbGluZSB3aXRoICc6LScgYW5kXG5cCiAgICAgICAgIGZpcnN0IHByZWRpY2F0
ZXMgb3IgZnVuY3Rpb25zIGluIGNsYXVzZXMuIik7CiAKLSAgaWYgKENUQUdTKQorICBpZiAo
Y3RhZ3MpCiAgICAgcHV0cyAoIi1kLCAtLWRlZmluZXNcblwKICAgICAgICAgQ3JlYXRlIHRh
ZyBlbnRyaWVzIGZvciBDICNkZWZpbmUgY29uc3RhbnRzIGFuZCBlbnVtIGNvbnN0YW50cywg
dG9vLiIpOwogICBlbHNlCkBAIC0xMDE2LDcgKzEwMTEsNyBAQCBwcmludF9oZWxwIChhcmd1
bWVudCAqYXJnYnVmZmVyKQogICAgICAgICBEb24ndCBjcmVhdGUgdGFnIGVudHJpZXMgZm9y
IEMgI2RlZmluZSBjb25zdGFudHMgYW5kIGVudW0gY29uc3RhbnRzLlxuXAogCVRoaXMgbWFr
ZXMgdGhlIHRhZ3MgZmlsZSBzbWFsbGVyLiIpOwogCi0gIGlmICghQ1RBR1MpCisgIGlmICgh
Y3RhZ3MpCiAgICAgcHV0cyAoIi1pIEZJTEUsIC0taW5jbHVkZT1GSUxFXG5cCiAgICAgICAg
IEluY2x1ZGUgYSBub3RlIGluIHRhZyBmaWxlIGluZGljYXRpbmcgdGhhdCwgd2hlbiBzZWFy
Y2hpbmcgZm9yXG5cCiAgICAgICAgIGEgdGFnLCBvbmUgc2hvdWxkIGFsc28gY29uc3VsdCB0
aGUgdGFncyBmaWxlIEZJTEUgYWZ0ZXJcblwKQEAgLTEwMjYsNyArMTAyMSw3IEBAIHByaW50
X2hlbHAgKGFyZ3VtZW50ICphcmdidWZmZXIpCiAgICAgICAgIEZvcmNlIHRoZSBmb2xsb3dp
bmcgZmlsZXMgdG8gYmUgY29uc2lkZXJlZCBhcyB3cml0dGVuIGluIHRoZVxuXAogCW5hbWVk
IGxhbmd1YWdlIHVwIHRvIHRoZSBuZXh0IC0tbGFuZ3VhZ2U9TEFORyBvcHRpb24uIik7CiAK
LSAgaWYgKENUQUdTKQorICBpZiAoY3RhZ3MpCiAgICAgcHV0cyAoIi0tZ2xvYmFsc1xuXAog
CUNyZWF0ZSB0YWcgZW50cmllcyBmb3IgZ2xvYmFsIHZhcmlhYmxlcyBpbiBzb21lIGxhbmd1
YWdlcy4iKTsKICAgZWxzZQpAQCAtMTAzNyw3ICsxMDMyLDcgQEAgcHJpbnRfaGVscCAoYXJn
dW1lbnQgKmFyZ2J1ZmZlcikKICAgcHV0cyAoIi0tbm8tbGluZS1kaXJlY3RpdmVcblwKICAg
ICAgICAgSWdub3JlICNsaW5lIHByZXByb2Nlc3NvciBkaXJlY3RpdmVzIGluIEMgYW5kIGRl
cml2ZWQgbGFuZ3VhZ2VzLiIpOwogCi0gIGlmIChDVEFHUykKKyAgaWYgKGN0YWdzKQogICAg
IHB1dHMgKCItLW1lbWJlcnNcblwKIAlDcmVhdGUgdGFnIGVudHJpZXMgZm9yIG1lbWJlcnMg
b2Ygc3RydWN0dXJlcyBpbiBzb21lIGxhbmd1YWdlcy4iKTsKICAgZWxzZQpAQCAtMTA0NSw3
ICsxMDQwLDcgQEAgcHJpbnRfaGVscCAoYXJndW1lbnQgKmFyZ2J1ZmZlcikKIAlEbyBub3Qg
Y3JlYXRlIHRhZyBlbnRyaWVzIGZvciBtZW1iZXJzIG9mIHN0cnVjdHVyZXNcblwKIAlpbiBz
b21lIGxhbmd1YWdlcy4iKTsKIAotICBpZiAoIUNUQUdTKQorICBpZiAoIWN0YWdzKQogICAg
IHsKICAgICAgIHB1dHMgKCItLWZhbGxiYWNrLWxhbmdcblwKIAlJZiBhIGZpbGUncyBsYW5n
dWFnZSBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCwgdHJ5IHRvIHBhcnNlXG5cCkBAIC0xMDky
LDcgKzEwODcsNyBAQCBwcmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVmZmVyKQogICBwdXRz
ICgiLS1wYXJzZS1zdGRpbj1OQU1FXG5cCiAgICAgICAgIFJlYWQgZnJvbSBzdGFuZGFyZCBp
bnB1dCBhbmQgcmVjb3JkIHRhZ3MgYXMgYmVsb25naW5nIHRvIGZpbGUgTkFNRS4iKTsKIAot
ICBpZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICB7CiAgICAgICBwdXRzICgiLXQsIC0t
dHlwZWRlZnNcblwKICAgICAgICAgR2VuZXJhdGUgdGFnIGVudHJpZXMgZm9yIEMgYW5kIEFk
YSB0eXBlZGVmcy4iKTsKQEAgLTExMDEsNyArMTA5Niw3IEBAIHByaW50X2hlbHAgKGFyZ3Vt
ZW50ICphcmdidWZmZXIpCiAgICAgICAgIGFuZCBDKysgbWVtYmVyIGZ1bmN0aW9ucy4iKTsK
ICAgICB9CiAKLSAgaWYgKENUQUdTKQorICBpZiAoY3RhZ3MpCiAgICAgcHV0cyAoIi11LCAt
LXVwZGF0ZVxuXAogICAgICAgICBVcGRhdGUgdGhlIHRhZyBlbnRyaWVzIGZvciB0aGUgZ2l2
ZW4gZmlsZXMsIGxlYXZpbmcgdGFnXG5cCiAgICAgICAgIGVudHJpZXMgZm9yIG90aGVyIGZp
bGVzIGluIHBsYWNlLiAgQ3VycmVudGx5LCB0aGlzIGlzXG5cCkBAIC0xMTEwLDcgKzExMDUs
NyBAQCBwcmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVmZmVyKQogICAgICAgICB0YWdzIGZp
bGUuICBJdCBpcyBvZnRlbiBmYXN0ZXIgdG8gc2ltcGx5IHJlYnVpbGQgdGhlIGVudGlyZVxu
XAogICAgICAgICB0YWcgZmlsZSB0aGFuIHRvIHVzZSB0aGlzLiIpOwogCi0gIGlmIChDVEFH
UykKKyAgaWYgKGN0YWdzKQogICAgIHsKICAgICAgIHB1dHMgKCItdiwgLS12Z3JpbmRcblwK
ICAgICAgICAgUHJpbnQgb24gdGhlIHN0YW5kYXJkIG91dHB1dCBhbiBpbmRleCBvZiBpdGVt
cyBpbnRlbmRlZCBmb3JcblwKQEAgLTExNjAsNyArMTE1NSw2IEBAIG1haW4gKGludCBhcmdj
LCBjaGFyICoqYXJndikKICAgbGluZWJ1ZmZlciBmaWxlbmFtZV9sYjsKICAgYm9vbCBoZWxw
X2Fza2VkID0gZmFsc2U7CiAgIHB0cmRpZmZfdCBsZW47Ci0gIGNoYXIgKm9wdHN0cmluZzsK
ICAgaW50IG9wdDsKIAogICBwcm9nbmFtZSA9IGFyZ3ZbMF07CkBAIC0xMTkyLDkgKzExODYs
NyBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKICAgLyogV2hlbiB0aGUgb3B0
c3RyaW5nIGJlZ2lucyB3aXRoIGEgJy0nIGdldG9wdF9sb25nIGRvZXMgbm90IHJlYXJyYW5n
ZSB0aGUKICAgICAgbm9uLW9wdGlvbnMgYXJndW1lbnRzIHRvIGJlIGF0IHRoZSBlbmQsIGJ1
dCBsZWF2ZXMgdGhlbSBhbG9uZS4gKi8KLSAgb3B0c3RyaW5nID0gY29uY2F0ICgiLWFjOkNm
OklsOm86UXI6UlNWaEgiLAotCQkgICAgICAoQ1RBR1MpID8gIkJ4ZHRUdXZ3IiA6ICJEaToi
LAotCQkgICAgICAiIik7CisgIHN0YXRpYyBjaGFyIGNvbnN0IG9wdHN0cmluZ1tdID0gIi1h
QmM6Q2REZjpoSGk6SWw6bzpRcjpSU3RUdXZWd3giOwogCiAgIHdoaWxlICgob3B0ID0gZ2V0
b3B0X2xvbmcgKGFyZ2MsIGFyZ3YsIG9wdHN0cmluZywgbG9uZ29wdHMsIE5VTEwpKSAhPSBF
T0YpCiAgICAgc3dpdGNoIChvcHQpCkBAIC0xMjE1LDcgKzEyMDcsMTQgQEAgbWFpbiAoaW50
IGFyZ2MsIGNoYXIgKiphcmd2KQogCSsrZmlsZV9jb3VudDsKIAlicmVhazsKIAotICAgICAg
Y2FzZSBTVERJTjoKKyAgICAgIGNhc2UgQ1RBR1NfT1BUSU9OOgorCS8qIE9wZXJhdGUgYXMg
Y3RhZ3MsIG5vdCBldGFncy4gICovCisJY3RhZ3MgPSB0cnVlOworCXByb2duYW1lID0gb3B0
YXJnOworCWxhbmdfbmFtZXNbQ19MQU5HX05BTUVTX0lOREVYXS5oZWxwID0gY3RhZ3NfZGVm
YXVsdF9DX2hlbHA7CisJYnJlYWs7CisKKyAgICAgIGNhc2UgU1RESU5fT1BUSU9OOgogCS8q
IFBhcnNlIHN0YW5kYXJkIGlucHV0LiAgSWRlYSBieSBWaXZlayA8dml2ZWtAZXRsYS5vcmc+
LiAqLwogCWFyZ2J1ZmZlcltjdXJyZW50X2FyZ10uYXJnX3R5cGUgPSBhdF9zdGRpbjsKIAlh
cmdidWZmZXJbY3VycmVudF9hcmddLndoYXQgICAgID0gb3B0YXJnOwpAQCAtMTMyNSw3ICsx
MzI0LDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgIH0KIAogICBpZiAo
dGFnZmlsZSA9PSBOVUxMKQotICAgIHRhZ2ZpbGUgPSBzYXZlc3RyIChDVEFHUyA/ICJ0YWdz
IiA6ICJUQUdTIik7CisgICAgdGFnZmlsZSA9IHNhdmVzdHIgKGN0YWdzID8gInRhZ3MiIDog
IlRBR1MiKTsKICAgY3dkID0gZXRhZ3NfZ2V0Y3dkICgpOwkvKiB0aGUgY3VycmVudCB3b3Jr
aW5nIGRpcmVjdG9yeSAqLwogICBpZiAoY3dkW3N0cmxlbiAoY3dkKSAtIDFdICE9ICcvJykK
ICAgICB7CkBAIC0xMzQ5LDcgKzEzNDgsNyBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFy
Z3YpCiAgIGxpbmVidWZmZXJfaW5pdCAoJmZpbGVidWYpOwogICBsaW5lYnVmZmVyX2luaXQg
KCZ0b2tlbl9uYW1lKTsKIAotICBpZiAoIUNUQUdTKQorICBpZiAoIWN0YWdzKQogICAgIHsK
ICAgICAgIGlmIChzdHJlcSAodGFnZmlsZSwgIi0iKSkKIAl7CkBAIC0xNDA3LDEzICsxNDA2
LDEzIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgZnJlZSAoZmlsZWJ1Zi5i
dWZmZXIpOwogICBmcmVlICh0b2tlbl9uYW1lLmJ1ZmZlcik7CiAKLSAgaWYgKCFDVEFHUyB8
fCBjeHJlZl9zdHlsZSkKKyAgaWYgKCFjdGFncyB8fCBjeHJlZl9zdHlsZSkKICAgICB7CiAg
ICAgICAvKiBXcml0ZSB0aGUgcmVtYWluaW5nIHRhZ3MgdG8gdGFnZiAoRVRBR1MpIG9yIHN0
ZG91dCAoQ1hSRUYpLiAqLwogICAgICAgcHV0X2VudHJpZXMgKG5vZGVoZWFkKTsKICAgICAg
IGZyZWVfdHJlZSAobm9kZWhlYWQpOwogICAgICAgbm9kZWhlYWQgPSBOVUxMOwotICAgICAg
aWYgKCFDVEFHUykKKyAgICAgIGlmICghY3RhZ3MpCiAJewogCSAgZmRlc2MgKmZkcDsKIApA
QCAtMTQ2Miw3ICsxNDYxLDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICBp
ZiAoZmNsb3NlICh0YWdmKSA9PSBFT0YpCiAgICAgcGZhdGFsICh0YWdmaWxlKTsKIAotICBp
ZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICBpZiAoYXBwZW5kX3RvX3RhZ2ZpbGUgfHwg
dXBkYXRlKQogICAgICAgewogCS8qIE1heWJlIHRoZXNlIHNob3VsZCBiZSB1c2VkOgpAQCAt
MTg2MCw3ICsxODU5LDcgQEAgcHJvY2Vzc19maWxlIChGSUxFICpmaCwgY2hhciAqZm4sIGxh
bmd1YWdlICpsYW5nKQogICAvKiBJZiBub3QgQ3RhZ3MsIGFuZCBpZiB0aGlzIGlzIG5vdCBt
ZXRhc291cmNlIGFuZCBpZiBpdCBjb250YWluZWQgbm8gI2xpbmUKICAgICAgZGlyZWN0aXZl
cywgd2UgY2FuIHdyaXRlIHRoZSB0YWdzIGFuZCBmcmVlIGFsbCBub2RlcyBwb2ludGluZyB0
bwogICAgICBjdXJmZHAuICovCi0gIGlmICghQ1RBR1MKKyAgaWYgKCFjdGFncwogICAgICAg
JiYgY3VyZmRwLT51c2VjaGFybm8JLyogbm8gI2xpbmUgZGlyZWN0aXZlcyBpbiB0aGlzIGZp
bGUgKi8KICAgICAgICYmICFjdXJmZHAtPmxhbmctPm1ldGFzb3VyY2UpCiAgICAgewpAQCAt
MjA5Miw3ICsyMDkxLDcgQEAgbWFrZV90YWcgKGNvbnN0IGNoYXIgKm5hbWUsIAkvKiB0YWcg
bmFtZSwgb3IgTlVMTCBpZiB1bm5hbWVkICovCiAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXMg
b24gJXM6JSJQUklkTUFYIjogJXNcbiIsCiAJICAgICBuYW1lZCA/IG5hbWUgOiAiKHVubmFt
ZWQpIiwgY3VyZmRwLT50YWdnZWRmbmFtZSwgbG5vLCBsaW5lc3RhcnQpOwogCi0gIGlmICgh
Q1RBR1MgJiYgbmFtZWQpCQkvKiBtYXliZSBzZXQgbmFtZWQgdG8gZmFsc2UgKi8KKyAgaWYg
KCFjdGFncyAmJiBuYW1lZCkJCS8qIG1heWJlIHNldCBuYW1lZCB0byBmYWxzZSAqLwogICAg
IC8qIExldCdzIHRyeSB0byBtYWtlIGFuIGltcGxpY2l0IHRhZyBuYW1lLCB0aGF0IGlzLCBj
cmVhdGUgYW4gdW5uYW1lZCB0YWcKICAgICAgICBzdWNoIHRoYXQgZXRhZ3MuZWwgY2FuIGd1
ZXNzIGEgbmFtZSBmcm9tIGl0LiAqLwogICAgIHsKQEAgLTIxMzMsMTcgKzIxMzIsMTcgQEAg
cGZub3RlIChjaGFyICpuYW1lLAkJLyogdGFnIG5hbWUsIG9yIE5VTEwgaWYgdW5uYW1lZCAq
LwogewogICByZWdpc3RlciBub2RlICpucDsKIAotICBpZiAoKENUQUdTICYmIG5hbWUgPT0g
TlVMTCkKKyAgaWYgKChjdGFncyAmJiBuYW1lID09IE5VTEwpCiAgICAgICAvKiBXZSB1c2Vk
IHRvIGhhdmUgYW4gYXNzZXJ0aW9uIGhlcmUgZm9yIHRoZSBjYXNlIGJlbG93LCBidXQgaWYg
d2UgaGl0CiAJIHRoYXQgY2FzZSwgaXQganVzdCBtZWFucyBvdXIgcGFyc2VyIGdvdCBjb25m
dXNlZCwgYW5kIHRoZXJlJ3Mgbm90aGluZwogCSB0byBkbyBhYm91dCBzdWNoIGVtcHR5ICJ0
YWdzIi4gICovCi0gICAgICB8fCAoIUNUQUdTICYmIG5hbWUgJiYgbmFtZVswXSA9PSAnXDAn
KSkKKyAgICAgIHx8ICghY3RhZ3MgJiYgbmFtZSAmJiBuYW1lWzBdID09ICdcMCcpKQogICAg
IHJldHVybjsKIAogICBucCA9IHhtYWxsb2MgKHNpemVvZiAqbnApOwogCiAgIC8qIElmIGN0
YWdzIG1vZGUsIGNoYW5nZSBuYW1lICJtYWluIiB0byBNPHRoaXNmaWxlbmFtZT4uICovCi0g
IGlmIChDVEFHUyAmJiAhY3hyZWZfc3R5bGUgJiYgc3RyZXEgKG5hbWUsICJtYWluIikpCisg
IGlmIChjdGFncyAmJiAhY3hyZWZfc3R5bGUgJiYgc3RyZXEgKG5hbWUsICJtYWluIikpCiAg
ICAgewogICAgICAgY2hhciAqZnAgPSBzdHJyY2hyIChjdXJmZHAtPnRhZ2dlZGZuYW1lLCAn
LycpOwogICAgICAgbnAtPm5hbWUgPSBjb25jYXQgKCJNIiwgZnAgPT0gTlVMTCA/IGN1cmZk
cC0+dGFnZ2VkZm5hbWUgOiBmcCArIDEsICIiKTsKQEAgLTIxNjgsNyArMjE2Nyw3IEBAIHBm
bm90ZSAoY2hhciAqbmFtZSwJCS8qIHRhZyBuYW1lLCBvciBOVUxMIGlmIHVubmFtZWQgKi8K
ICAgZWxzZQogICAgIG5wLT5jbm8gPSBpbnZhbGlkY2hhcm5vOwogICBucC0+bGVmdCA9IG5w
LT5yaWdodCA9IE5VTEw7Ci0gIGlmIChDVEFHUyAmJiAhY3hyZWZfc3R5bGUpCisgIGlmIChj
dGFncyAmJiAhY3hyZWZfc3R5bGUpCiAgICAgewogICAgICAgaWYgKHN0cm5sZW4gKGxpbmVz
dGFydCwgNTApIDwgNTApCiAJbnAtPnJlZ2V4ID0gY29uY2F0IChsaW5lc3RhcnQsICIkIiwg
IiIpOwpAQCAtMjI5NSw3ICsyMjk0LDcgQEAgYWRkX25vZGUgKG5vZGUgKm5wLCBub2RlICoq
Y3VyX25vZGVfcCkKICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgaWYgKCFDVEFHUykKKyAg
aWYgKCFjdGFncykKICAgICAvKiBFdGFncyBNb2RlICovCiAgICAgewogICAgICAgLyogRm9y
IGVhY2ggZmlsZSBuYW1lLCB0YWdzIGFyZSBpbiBhIGxpbmtlZCBzdWJsaXN0IG9uIHRoZSBy
aWdodApAQCAtMjM5NCw3ICsyMzkzLDcgQEAgaW52YWxpZGF0ZV9ub2RlcyAoZmRlc2MgKmJh
ZGZkcCwgbm9kZSAqKm5wcCkKICAgbm9kZSAqbnAgPSAqbnBwOwogICBzdGtlbnRyeSAqc3Rh
Y2sgPSBOVUxMOwogCi0gIGlmIChDVEFHUykKKyAgaWYgKGN0YWdzKQogICAgIHsKICAgICAg
IHdoaWxlIChucCkKIAl7CkBAIC0yNTA0LDcgKzI1MDMsNyBAQCBwdXRfZW50cnkgKG5vZGUg
Km5wKQogICAvKiBPdXRwdXQgdGhpcyBlbnRyeSAqLwogICBpZiAobnAtPnZhbGlkKQogICAg
IHsKLSAgICAgIGlmICghQ1RBR1MpCisgICAgICBpZiAoIWN0YWdzKQogCXsKIAkgIC8qIEV0
YWdzIG1vZGUgKi8KIAkgIGlmIChmZHAgIT0gbnAtPmZkcCkKQEAgLTI1NzYsNyArMjU3NSw3
IEBAIHB1dF9lbnRyaWVzIChub2RlICpucCkKICAgaWYgKG5wID09IE5VTEwpCiAgICAgcmV0
dXJuOwogCi0gIGlmIChDVEFHUykKKyAgaWYgKGN0YWdzKQogICAgIHsKICAgICAgIHdoaWxl
IChucCkKIAl7Ci0tIAoyLjQ1LjIKCg==

--------------wA10kCTfJC3MAqAN9RoB0bQW--




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

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


Received: (at 76322) by debbugs.gnu.org; 20 Feb 2025 09:23:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 20 04:23:24 2025
Received: from localhost ([127.0.0.1]:60036 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tl2mB-0002jN-Pt
	for submit <at> debbugs.gnu.org; Thu, 20 Feb 2025 04:23:24 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:58136)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tl2m8-0002iU-Qe
 for 76322 <at> debbugs.gnu.org; Thu, 20 Feb 2025 04:23:21 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tl2m2-0001z1-Ik; Thu, 20 Feb 2025 04:23:14 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=stf/DK1QrBs3qF1voGJwce5nP3uRvQg9ayO3ipL8dWQ=; b=ez2I7JYyKyT6
 zstK5PXYeidMZOXnfWbUtTe5GiCtD+vD1ySebR9DfGJstAKQE0uxYvRya7MRrT+QM099sWztnCGQK
 TouPOXLOyYs4EWiO4EoAj0KKdAN7lUNC2FxLmSB4SQnRv0Kq212z3sHhNnEd1k5ArT/pi3EoHWYoK
 jjSwWVNUCU0AMa7NOANuJEEKNfPiJ9Tuz90T1D2FvlE6mhT8pXFFzfz+T2OZH6fA/hIhbvz6CqD9C
 n0fCUrkX7dxfMrBuXiEPHIVUMvGWYZ/2vpZYwGRiSeGrprpk5ZBVPLZkmvABRAy9inUNgb0EGmjpy
 xwDmXvz71uga3lvH3PjCNg==;
Date: Thu, 20 Feb 2025 11:23:12 +0200
Message-Id: <86ldu13r7j.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Paul Eggert <eggert@HIDDEN>
In-Reply-To: <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN> (message from
 Paul Eggert on Mon, 17 Feb 2025 00:16:58 -0800)
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN> <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <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 (---)

> Date: Mon, 17 Feb 2025 00:16:58 -0800
> Cc: 76322 <at> debbugs.gnu.org
> From: Paul Eggert <eggert@HIDDEN>
> 
> On 2025-02-16 01:31, Eli Zaretskii wrote:
> >> Date: Sun, 16 Feb 2025 00:26:02 -0800
> >> From: Paul Eggert <eggert@HIDDEN>
> >> How about if we compile a little .exe file that merely execs etags with
> >> the --ctags option? That would be the equivalent of the script.
> > 
> > That'd be fine, thanks.  But we will need to invoke etags via
> > w32_execvp because of the problems explained in emacsclient.c where
> > that function is defined (which will need to be moved to ntlib.c).
> 
> I took at shot at doing something along those lines; see revised patch 
> (attached).
> 
> Since I don't use MS-Windows or compile or test anything on that 
> platform, I quailed a bit at doing nontrivial surgery on ntlib.c. Also, 
> emacsclient.c's w32_execvp has some alternate-editor code specific to 
> emacsclient, and it uses alloca in a potentially-unsafe way, and it 
> mishandles strings longer than INT_MAX bytes, and it appears to 
> mishandle '\t', '\\' and '"' if Microsoft's documentation is to be 
> believed. So the attached patch defines its own w32_execvp_arg_repr 
> function that attempts to be standalone and free of these issues. If 
> needed later, someone with MS-Windows expertise could merge this into 
> ntlib.c and combine it with what's in emacsclient.c.

Thanks, a few minor comments below.

> +INSTALLABLE_EXES = etags${EXEEXT} $(if $(NTDIR), ctags$(EXEEXT)) \
> +  emacsclient${EXEEXT} $(CLIENTW) ebrowse${EXEEXT}
> +INSTALLABLE_SCRIPTS = $(if $(NTDIR), , ctags)

The dependence on NTDIR is sub-optimal, IMO.  For starters, it means
that one cannot reliably invoke "make" in lib-src, because (AFAIU)
NTDIR is defined in the top-level Makefile.  It is better to depend on
the value of NTLIB, which is defined in lib-src/Makefile.

Or maybe we should just depend on the value of EXEEXT?  I think that
might be preferable, because it will also work for the MS-DOS build of
Emacs, where we have the same problem with invoking Unix shell
scripts.

> +/* Return the number of bytes used to represent the string S as an
> +   MS-Windows _execvp argument, including the trailing null byte.
> +   If D is nonnull, also store the representation into D.
> +   Due to Microsoft C runtime constraints, S cannot contain '\n',
> +   and if S contains '"' the representation cannot be used for argument 0.  */
> +static size_t
> +w32_execvp_arg_repr (char const *restrict s, char *restrict d)
> +{
> +  /* See <https://learn.microsoft.com/en-us/cpp/c-language/parsing-c-command-line-arguments>.

This part should be under #ifdef WINDOWSNT, since it's specific to
Windows.  The MS-DOS build doesn't have these problems with execvp.

> +int
> +main (int argc, char **argv)
> +{
> +  char const *progname = argv[0];
> +  static char const option_prefix[] = "--ctags=";
> +
> +  /* Number of bytes needed to represent all etags args.  */
> +  size_t nargbytes = sizeof option_prefix - 1;
> +  for (int i = 0; i < argc; i++)
> +    nargbytes += w32_execvp_arg_repr (argv[i], NULL);
> +
> +  char const **etags_argv = malloc ((argc + 2) * sizeof *argv + nargbytes);
> +  if (etags_argv)
> +    {
> +      char *d = (char *) (etags_argv + argc + 2);
> +      etags_argv[0] = "etags";
> +      etags_argv[1] = memcpy (d, option_prefix, sizeof option_prefix - 1);
> +      d += sizeof option_prefix - 1;
> +      d += w32_execvp_arg_repr (progname, d);
> +
> +      for (int i = 1; i < argc; i++)
> +	{
> +	  etags_argv[i + 1] = d;
> +	  d += w32_execvp_arg_repr (argv[i], d);
> +	}

Likewise here: the calls to w32_execvp_arg_repr should only be done on
WINDOWSNT.

Also, this:

> +      etags_argv[0] = "etags";

basically means the etags to be invoked is the one found on PATH,
whereas I think we want to invoke etags from the same place from where
ctags was invoked.  So I would suggest keeping any leading directories
in argv[0] intact, and just replacing "ctags" with "etags" to generate
the new argv[0].

Caveat: I didn't try to actually build this stuff on Windows, let
alone run the test suite; that will need to wait till later, maybe
even till after you install this on master.

Thanks again.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76322; Package emacs. Full text available.
Severity set to 'wishlist' from 'normal' Request was from Stefan Kangas <stefankangas@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 76322) by debbugs.gnu.org; 17 Feb 2025 08:17:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 17 03:17:13 2025
Received: from localhost ([127.0.0.1]:42216 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tjwJT-0002mX-1q
	for submit <at> debbugs.gnu.org; Mon, 17 Feb 2025 03:17:13 -0500
Received: from mail.cs.ucla.edu ([131.179.128.66]:41838)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eggert@HIDDEN>)
 id 1tjwJO-0002lc-6K
 for 76322 <at> debbugs.gnu.org; Mon, 17 Feb 2025 03:17:08 -0500
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 6C9BF3C00D405;
 Mon, 17 Feb 2025 00:17:00 -0800 (PST)
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP
 id EpEJSIjAcJkP; Mon, 17 Feb 2025 00:16:59 -0800 (PST)
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 2F0EE3C00D406;
 Mon, 17 Feb 2025 00:16:59 -0800 (PST)
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 2F0EE3C00D406
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu;
 s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1739780219;
 bh=AwMnvv3Igb7H6RY9yOtrlXQUdf9Kps3pOxNpsPFVcPE=;
 h=Message-ID:Date:MIME-Version:To:From;
 b=gxSKOod4K/nkrrjk4dB/kr8iKGdcU6ocHwc6yK8uioGJtkIR7L2s6zZFwzH3dC3XD
 wiSfmI4DZ75IlseZ/qYJRMNdfBHWUEE2IhY8r517mKuq1bRWXt7UYLxO9T2VRBONfo
 gsYAAl/r0DDSljZj5nbx1/ferto46GFD8O/xBuiS5tnXovlILowuxe/eDw2rsiKNgH
 xV7wYOUPOYOzTH4iGBWyY62hKe1hwcIuUAFvAQhZP9TWu1CN2I2lOhEKWqs3fWV1yy
 4t4L7tqmqMnQZZoed9UaRkngWvq51CcQzBLh56sYkntGc9JqOuWCatE/TYGTaslQ7h
 ZVuGMpFcRiD/A==
X-Virus-Scanned: amavis at mail.cs.ucla.edu
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP
 id iBIaw5_E2o3y; Mon, 17 Feb 2025 00:16:59 -0800 (PST)
Received: from [192.168.254.12] (unknown [47.147.225.25])
 by mail.cs.ucla.edu (Postfix) with ESMTPSA id 0B0833C00D405;
 Mon, 17 Feb 2025 00:16:59 -0800 (PST)
Content-Type: multipart/mixed; boundary="------------lebYMyBJwUzUgOiVUY8mTPFp"
Message-ID: <e09eb17a-04ff-4140-8cc6-408399c9f983@HIDDEN>
Date: Mon, 17 Feb 2025 00:16:58 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
To: Eli Zaretskii <eliz@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
 <864j0uck2g.fsf@HIDDEN>
Content-Language: en-US
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
In-Reply-To: <864j0uck2g.fsf@HIDDEN>
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <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: -1.0 (-)

This is a multi-part message in MIME format.
--------------lebYMyBJwUzUgOiVUY8mTPFp
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2025-02-16 01:31, Eli Zaretskii wrote:
>> Date: Sun, 16 Feb 2025 00:26:02 -0800
>> From: Paul Eggert <eggert@HIDDEN>
>> How about if we compile a little .exe file that merely execs etags with
>> the --ctags option? That would be the equivalent of the script.
> 
> That'd be fine, thanks.  But we will need to invoke etags via
> w32_execvp because of the problems explained in emacsclient.c where
> that function is defined (which will need to be moved to ntlib.c).

I took at shot at doing something along those lines; see revised patch 
(attached).

Since I don't use MS-Windows or compile or test anything on that 
platform, I quailed a bit at doing nontrivial surgery on ntlib.c. Also, 
emacsclient.c's w32_execvp has some alternate-editor code specific to 
emacsclient, and it uses alloca in a potentially-unsafe way, and it 
mishandles strings longer than INT_MAX bytes, and it appears to 
mishandle '\t', '\\' and '"' if Microsoft's documentation is to be 
believed. So the attached patch defines its own w32_execvp_arg_repr 
function that attempts to be standalone and free of these issues. If 
needed later, someone with MS-Windows expertise could merge this into 
ntlib.c and combine it with what's in emacsclient.c.

--------------lebYMyBJwUzUgOiVUY8mTPFp
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-Make-ctags-a-thin-wrapper-around-etags.patch"
Content-Disposition: attachment;
 filename="0001-Make-ctags-a-thin-wrapper-around-etags.patch"
Content-Transfer-Encoding: base64

RnJvbSBiNDhkNmE1NDQ0NjczZWJmYTczZDJmZDY3NWI5NDMyNzQwMDE5ZTk3IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBTdW4sIDE2IEZlYiAyMDI1IDIzOjU3OjUyIC0wODAwClN1YmplY3Q6IFtQQVRD
SF0gTWFrZSBjdGFncyBhIHRoaW4gd3JhcHBlciBhcm91bmQgZXRhZ3MKClRoaXMgZml4ZXMg
YSBGSVhNRSBpbiBsaWItc3JjL01ha2VmaWxlLmluIGFuZCBzcGVlZHMgdXAgY29tcGlsYXRp
b24KcXVpdGUgYSBiaXQgb24gbXkgb2xkZXIgQ1BVIHdoZW4gSSBjb21waWxlIHdpdGgJLS1l
bmFibGUtZ2NjLXdhcm5pbmdzLgpJdCBhbHNvIGxlc3NlbnMgaW5zdGFsbGF0aW9uIGFuZCBy
dW50aW1lIGZvb3RwcmludC4KKiBqYXZhL01ha2VmaWxlLmluIChpbnN0YWxsX3RlbXApOiBU
cmVhdCBjdGFncyBsaWtlIHJjczJsb2cuCiogbGliLXNyYy9NYWtlZmlsZS5pbiAoSU5TVEFM
TEFCTEVfRVhFUywgSU5TVEFMTEFCTEVfU0NSSVBUUyk6Ck5ldyBtYWNyb3MsIHJlcGxhY2lu
ZyBJTlNUQUxMQUJMRVMuICBBbGwgdXNlcyBjaGFuZ2VkLgooVVRJTElUWV9FWEVTKTogUmVu
YW1lIGZyb20gVVRJTElUSUVTLCBmb3IgY29uc2lzdGVuY3kuICBBbGwgdXNlcyBjaGFuZ2Vk
LgooVVRJTElUWV9TQ1JJUFRTKTogUmVuYW1lIGZyb20gU0NSSVBUUywgZm9yIGNvbnNpc3Rl
bmN5LiAgQWxsIHVzZXMgY2hhbmdlZC4KKGN0YWdzKTogTmV3IHJ1bGUgaWYgbm90IE5URElS
LgooY3RhZ3Mke0VYRUVYVH0pOiBSZW1vdmUgcnVsZSB1bmxlc3MgTlRESVIuICBVc2Ugb25s
eSBOVExJQiBhbmQgTE9BRExJQkVTLgoqIGxpYi1zcmMvY3RhZ3MuYzogUmV3cml0ZSBmcm9t
IHNjcmF0Y2g7IGl0J3Mgbm93IHVzZWQgb25seSBvbiBNUy1XaW5kb3dzLgoqIGxpYi1zcmMv
Y3RhZ3Muc2g6IE5ldyBmaWxlLgoqIGxpYi1zcmMvZXRhZ3MuYyAoQ1RBR1MpOiBSZW1vdmUu
ICBBbGwgdXNlcyByZXBsYWNlZCBieSAuLi4KKGN0YWdzKTogLi4uIHRoaXMgbmV3IHN0YXRp
YyB2YXIuCihTVERJTik6IFJlbW92ZSBtYWNyby4gIEFsbCB1c2VzIHJlcGxhY2VkIGJ5IG5l
dyBTVERJTl9PUFRJT04gY29uc3RhbnQuCihDVEFHU19PUFRJT04sIFNURElOX09QVElPTik6
IE5ldyBjb250YW50cy4KKGxvbmdvcHRzKTogTmV3IC0tY3RhZ3Mgb3B0aW9uLgooY3RhZ3Nf
ZGVmYXVsdF9DX2hlbHApOiBOZXcgY29uc3RhbnQsCnRvIG92ZXJyaWRlIGRlZmF1bHRfQ19o
ZWxwIGF0IHJ1bnRpbWUuCihkZWZhdWx0X0NfaGVscCk6IE5vdyBhbHdheXMgdGhlIGV0YWdz
IHZlcnNpb24uCihDX0xBTkdfTkFNRVNfSU5ERVgpOiBOZXcgbWFjcm8uCihwcmludF9sYW5n
dWFnZV9uYW1lcyk6IERvIG5vdCBhc3N1bWUgZXRhZ3MuCihQUk9HUkFNX05BTUUpOiBSZW1v
dmUuICBBbGwgdXNlcyByZW1vdmVkLgoocHJpbnRfaGVscCk6IERvY3VtZW50IC0tY3RhZ3Mg
aWYgUFJJTlRfVU5ET0NVTUVOVEVEX09QVElPTlNfSEVMUC4KKG1haW4pOiBTdXBwb3J0IG5l
dyAtLWN0YWdzIG9wdGlvbiwgYW5kIHN1cHBvcnQgYWxsIFtjZV10YWdzIG9wdGlvbnMuCi0t
LQogZXRjL05FV1MgICAgICAgICAgICB8ICAgMyArCiBldGMvUFJPQkxFTVMgICAgICAgIHwg
ICA0ICstCiBqYXZhL01ha2VmaWxlLmluICAgIHwgICA3ICsrLQogbGliLXNyYy9NYWtlZmls
ZS5pbiB8ICA1MSArKysrKysrKysrKy0tLS0tLQogbGliLXNyYy9jdGFncy5jICAgICB8IDEw
NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGxpYi1zcmMvY3RhZ3Mu
c2ggICAgfCAgIDIgKwogbGliLXNyYy9ldGFncy5jICAgICB8IDEzMSArKysrKysrKysrKysr
KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCAyMTYg
aW5zZXJ0aW9ucygrKSwgODkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgbGli
LXNyYy9jdGFncy5zaAoKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXgg
MTJkN2JkNGY0MWYuLjYzZTY5Y2IxMjJlIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9l
dGMvTkVXUwpAQCAtMjksNiArMjksOSBAQCBhcHBsaWVzLCBhbmQgcGxlYXNlIGFsc28gdXBk
YXRlIGRvY3N0cmluZ3MgYXMgbmVlZGVkLgogVGhlIHRyYWRpdGlvbmFsIHVuZXhlYyBkdW1w
ZXIsIGRlcHJlY2F0ZWQgc2luY2UgRW1hY3MgMjcsIGhhcyBiZWVuCiByZW1vdmVkLgogCisq
KiBjdGFncyBpcyBub3cgbWVyZWx5IGEgdGhpbiB3cmFwcGVyIGFyb3VuZCBldGFncy4KK1Ro
aXMgc3BlZWRzIHVwIGNvbXBpbGF0aW9uIGFuZCBsZXNzZW5zIGluc3RhbGxhdGlvbiBmb290
cHJpbnQuCisKICoqIENoYW5nZWQgR0NDIGRlZmF1bHQgb3B0aW9ucyBvbiAzMi1iaXQgeDg2
IHN5c3RlbXMuCiBXaGVuIHVzaW5nIEdDQyA0IG9yIGxhdGVyIHRvIGJ1aWxkIEVtYWNzIG9u
IDMyLWJpdCB4ODYgc3lzdGVtcywKICdjb25maWd1cmUnIG5vdyBkZWZhdWx0cyB0byB1c2lu
ZyB0aGUgR0NDIG9wdGlvbnMgJy1tZnBtYXRoPXNzZScgKGlmIHRoZQpkaWZmIC0tZ2l0IGEv
ZXRjL1BST0JMRU1TIGIvZXRjL1BST0JMRU1TCmluZGV4IDVmZGI0YmQ5NWRiLi40Yzg1ZGJi
N2RhOCAxMDA2NDQKLS0tIGEvZXRjL1BST0JMRU1TCisrKyBiL2V0Yy9QUk9CTEVNUwpAQCAt
Mzk0Nyw3ICszOTQ3LDcgQEAgVGhlcmUgYXJlIHNldmVyYWwga25vd24gd29ya2Fyb3VuZHM6
CiAKIFRoZSBsaW5rZXIgZXJyb3IgbWVzc2FnZXMgbG9vayBsaWtlIHRoaXM6CiAKLSBvby1z
cGQvaTM4Ni9jdGFncy5vOmN0YWdzLmM6KC50ZXh0KzB4MTU2ZSk6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYF9pbXBfX3JlX3NldF9zeW50YXgnCisgb28tc3BkL2kzODYvZXRhZ3Mubzpl
dGFncy5jOigudGV4dCsweDE1NmUpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfaW1wX19y
ZV9zZXRfc3ludGF4JwogIGNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCiAK
IFRoaXMgaGFwcGVucyBiZWNhdXNlIEdDQyBmaW5kcyBhbiBpbmNvbXBhdGlibGUgcmVnZXgu
aCBoZWFkZXIKQEAgLTM5NzgsNyArMzk3OCw3IEBAIFNvbWUgdmVyc2lvbnMgb2YgbWluZ3cz
MiBtYWtlIG9uIHNvbWUgdmVyc2lvbnMgb2YgV2luZG93cyBkbyBub3Qgc2VlbQogdG8gZGV0
ZWN0IHRoZSBzaGVsbCBjb3JyZWN0bHkuICBUcnkgIm1ha2UgU0hFTEw9Y21kLmV4ZSIsIG9y
IGlmIHRoYXQKIGZhaWxzLCB0cnkgcnVubmluZyBtYWtlIGZyb20gQ3lnd2luIGJhc2ggaW5z
dGVhZC4KIAotKioqIEJ1aWxkaW5nICdjdGFncycgZm9yIE1TLVdpbmRvd3Mgd2l0aCB0aGUg
TWluR1cgcG9ydCBvZiBHQ0MgZmFpbHMuCisqKiogQnVpbGRpbmcgJ2V0YWdzJyBmb3IgTVMt
V2luZG93cyB3aXRoIHRoZSBNaW5HVyBwb3J0IG9mIEdDQyBmYWlscy4KIAogVGhpcyBtaWdo
dCBoYXBwZW4gZHVlIHRvIGEgYnVnIGluIHRoZSBNaW5HVyBoZWFkZXIgYXNzZXJ0LmgsIHdo
aWNoCiBkZWZpbmVzIHRoZSAnYXNzZXJ0JyBtYWNybyB3aXRoIGEgdHJhaWxpbmcgc2VtaS1j
b2xvbi4gIFRoZSBmb2xsb3dpbmcKZGlmZiAtLWdpdCBhL2phdmEvTWFrZWZpbGUuaW4gYi9q
YXZhL01ha2VmaWxlLmluCmluZGV4IDM5ZDZlODVjN2E3Li4yMWFjNGU0MjUwZCAxMDA2NDQK
LS0tIGEvamF2YS9NYWtlZmlsZS5pbgorKysgYi9qYXZhL01ha2VmaWxlLmluCkBAIC0zMDUs
OCArMzA1LDEzIEBAIGluc3RhbGxfdGVtcDoKIAkgICAgY3AgLWYgJCRmaWxlIGluc3RhbGxf
dGVtcC9saWIvJChBTkRST0lEX0FCSSk7CVwKIAkgIGZpIAkJCQkJCQlcCiAJZG9uZQotIyBO
ZXh0LCBwcm9kdWNlIGEgdmVyc2lvbiBvZiByY3MybG9nIGJlZml0dGluZyBBbmRyb2lkJ3Mg
bmFtaW5nCisjIE5leHQsIHByb2R1Y2UgdmVyc2lvbnMgb2YgY3RhZ3MgYW5kIHJjczJsb2cg
YmVmaXR0aW5nIEFuZHJvaWQncyBuYW1pbmcKICMgY29udmVudGlvbnMgYW5kIHNoZWxsIGlu
dGVycHJldGVyIGxvY2F0aW9uLgorCSQoQU1fVl9hdCkgXAorCXNlZCAnc3wvYmluL3NofC9z
eXN0ZW0vYmluL3NofCcJCQkJCVwKKwkgJCh0b3Bfc3JjZGlyKS9saWItc3JjL2N0YWdzID4J
CQkJCVwKKwkgaW5zdGFsbF90ZW1wL2xpYi8kKEFORFJPSURfQUJJKS9saWJjdGFncy5zbwor
CSQoQU1fVl9hdCkgY2htb2QgK3ggaW5zdGFsbF90ZW1wL2xpYi8kKEFORFJPSURfQUJJKS9s
aWJjdGFncy5zbwogCSQoQU1fVl9hdCkgXAogCXNlZCAnc3wvYmluL3NofC9zeXN0ZW0vYmlu
L3NofCcJCQkJCVwKIAkgJCh0b3Bfc3JjZGlyKS9saWItc3JjL3JjczJsb2cgPgkJCQlcCmRp
ZmYgLS1naXQgYS9saWItc3JjL01ha2VmaWxlLmluIGIvbGliLXNyYy9NYWtlZmlsZS5pbgpp
bmRleCA0MzlkOWExYTUyZC4uNzlkYjM0NjZiZTkgMTAwNjQ0Ci0tLSBhL2xpYi1zcmMvTWFr
ZWZpbGUuaW4KKysrIGIvbGliLXNyYy9NYWtlZmlsZS5pbgpAQCAtMTU1LDEyICsxNTUsMTMg
QEAgQU5EUk9JRD0KIENMSUVOVFcgPSBAQ0xJRU5UV0AKIAogIyBUaGluZ3MgdGhhdCBhIHVz
ZXIgbWlnaHQgYWN0dWFsbHkgcnVuLCB3aGljaCBzaG91bGQgYmUgaW5zdGFsbGVkIGluIGJp
bmRpci4KLUlOU1RBTExBQkxFUyA9IGV0YWdzJHtFWEVFWFR9IGN0YWdzJHtFWEVFWFR9IGVt
YWNzY2xpZW50JHtFWEVFWFR9ICQoQ0xJRU5UVykgXAotICAgICAgICAgICAgICAgZWJyb3dz
ZSR7RVhFRVhUfQorSU5TVEFMTEFCTEVfRVhFUyA9IGV0YWdzJHtFWEVFWFR9ICQoaWYgJChO
VERJUiksIGN0YWdzJChFWEVFWFQpKSBcCisgIGVtYWNzY2xpZW50JHtFWEVFWFR9ICQoQ0xJ
RU5UVykgZWJyb3dzZSR7RVhFRVhUfQorSU5TVEFMTEFCTEVfU0NSSVBUUyA9ICQoaWYgJChO
VERJUiksICwgY3RhZ3MpCiAKICMgVGhpbmdzIHRoYXQgRW1hY3MgcnVucyBpbnRlcm5hbGx5
LCBvciBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MsCiAjICB3aGljaCBzaG91bGQgbm90IGJl
IGluc3RhbGxlZCBpbiBiaW5kaXIuCi1VVElMSVRJRVMgPSBoZXhsJHtFWEVFWFR9IAkJCSAJ
IFwKK1VUSUxJVFlfRVhFUyA9IGhleGwke0VYRUVYVH0gXAogCSAgICAkKGlmICQod2l0aF9t
YWlsdXRpbHMpLCAsIG1vdmVtYWlsJHtFWEVFWFR9KSBcCiAgICAgICAgICAgICAkKGFuZCAk
KHVzZV9nYW1lZGlyKSwgdXBkYXRlLWdhbWUtc2NvcmUke0VYRUVYVH0pCiAKQEAgLTE3NSwx
MiArMTc2LDEyIEBAIERPTlRfSU5TVEFMTD0KIGVuZGlmCiBlbmRpZgogCi0jIExpa2UgVVRJ
TElUSUVTLCBidXQgdGhleSdyZSBub3Qgc3lzdGVtLWRlcGVuZGVudCwgYW5kIHNob3VsZCBu
b3QgYmUKKyMgTGlrZSBVVElMSVRZX0VYRVMsIGJ1dCB0aGV5J3JlIG5vdCBzeXN0ZW0tZGVw
ZW5kZW50LCBhbmQgc2hvdWxkIG5vdCBiZQogIyAgZGVsZXRlZCBieSB0aGUgZGlzdGNsZWFu
IHRhcmdldC4KLVNDUklQVFM9IHJjczJsb2cKK1VUSUxJVFlfU0NSSVBUUyA9IHJjczJsb2cK
IAogIyBBbGwgZmlsZXMgdGhhdCBhcmUgY3JlYXRlZCBieSB0aGUgbGlua2VyLCBpLmUuLCB3
aG9zZSBuYW1lcyBlbmQgaW4gJHtFWEVFWFR9LgotRVhFX0ZJTEVTID0gJHtJTlNUQUxMQUJM
RVN9ICR7VVRJTElUSUVTfSAke0RPTlRfSU5TVEFMTH0KK0VYRV9GSUxFUyA9ICR7SU5TVEFM
TEFCTEVfRVhFU30gJHtVVElMSVRZX0VYRVN9ICR7RE9OVF9JTlNUQUxMfQogCiAjIFNwZWNp
ZnkgYWRkaXRpb25hbCAtRCBmbGFncyBmb3IgbW92ZW1haWwuIE9wdGlvbnM6CiAjIC1ETUFJ
TF9VU0VfRkxPQ0sgb3IgLURNQUlMX1VTRV9MT0NLRiAodXNlIGZsb2NrIG9yIGxvY2tmIGZv
ciBmaWxlIGxvY2tpbmcpLgpAQCAtMjgzLDcgKzI4NCw3IEBAIEFMTF9DWFhGTEFHUyA9CiAj
IENvbmZpZ3VyYXRpb24gZmlsZXMgZm9yIC5vIGZpbGVzIHRvIGRlcGVuZCBvbi4KIGNvbmZp
Z19oID0gLi4vc3JjL2NvbmZpZy5oICQoc3JjZGlyKS8uLi9zcmMvY29uZl9wb3N0LmgKIAot
YWxsOiAke0VYRV9GSUxFU30gJHtTQ1JJUFRTfQorYWxsOiAke0VYRV9GSUxFU30gJHtJTlNU
QUxMQUJMRV9TQ1JJUFRTfSAke1VUSUxJVFlfU0NSSVBUU30KIAogaWZlcSAoJChTRUNDT01Q
X0ZJTFRFUiksMSkKIGFsbDogc2VjY29tcC1maWx0ZXIuYnBmIHNlY2NvbXAtZmlsdGVyLWV4
ZWMuYnBmCkBAIC0zMjQsNyArMzI1LDcgQEAgJChERVNURElSKSR7YXJjaGxpYmRpcn06CiAJ
dW1hc2sgMDIyICYmICR7TUtESVJfUH0gIiQoREVTVERJUikke2FyY2hsaWJkaXJ9IgogCWV4
cF9hcmNobGliZGlyPWBjZCAiJChERVNURElSKSR7YXJjaGxpYmRpcn0iICYmIHB3ZCAtUGAg
JiYgXAogCWlmIFsgIiQkZXhwX2FyY2hsaWJkaXIiICE9ICJgcHdkIC1QYCIgXTsgdGhlbiBc
Ci0JICBmb3IgZmlsZSBpbiAke1VUSUxJVElFU307IGRvIFwKKwkgIGZvciBmaWxlIGluICR7
VVRJTElUWV9FWEVTfTsgZG8gXAogCSAgICAkKElOU1RBTExfUFJPR1JBTSkgJChJTlNUQUxM
X1NUUklQKSAkJGZpbGUgXAogCSAgICAgICIkKERFU1RESVIpJHthcmNobGliZGlyfS8kJGZp
bGUiIHx8IGV4aXQ7IFwKIAkgIGRvbmUgOyBcCkBAIC0zNTEsNyArMzUyLDcgQEAgJChERVNU
RElSKSR7YXJjaGxpYmRpcn06CiAgIGVuZGlmCiAJZXhwX2FyY2hsaWJkaXI9YGNkICIkKERF
U1RESVIpJHthcmNobGliZGlyfSIgJiYgcHdkIC1QYCAmJiBcCiAJaWYgWyAiJCRleHBfYXJj
aGxpYmRpciIgIT0gImBjZCAke3NyY2Rpcn0gJiYgcHdkIC1QYCIgXTsgdGhlbiBcCi0JICBm
b3IgZmlsZSBpbiAke1NDUklQVFN9OyBkbyBcCisJICBmb3IgZmlsZSBpbiAke1VUSUxJVFlf
U0NSSVBUU307IGRvIFwKIAkgICAgJChJTlNUQUxMX1NDUklQVCkgJHtzcmNkaXJ9LyQkZmls
ZSBcCiAJICAgICAgIiQoREVTVERJUikke2FyY2hsaWJkaXJ9LyQkZmlsZSIgfHwgZXhpdDsg
XAogCSAgZG9uZSA7IFwKQEAgLTM2NCwyMiArMzY1LDM1IEBAIGluc3RhbGw6CiAJJChpbmZv
ICQuKQogCSQoaW5mbyBJbnN0YWxsaW5nIHV0aWxpdGllcyBmb3IgdXNlcnMgdG8gcnVuLikK
IAl1bWFzayAwMjIgJiYgJHtNS0RJUl9QfSAiJChERVNURElSKSR7YmluZGlyfSIKLQlmb3Ig
ZmlsZSBpbiAke0lOU1RBTExBQkxFU30gOyBkbyBcCisJZm9yIGZpbGUgaW4gJHtJTlNUQUxM
QUJMRV9FWEVTfSA7IGRvIFwKIAkgICQoSU5TVEFMTF9QUk9HUkFNKSAkKElOU1RBTExfU1RS
SVApICQke2ZpbGV9IFwKIAkgICAgIiQoREVTVERJUikke2JpbmRpcn0iL2AgXAogCSAgICAg
IGVjaG8gJCR7ZmlsZX0gfCBzZWQgLWUgJ3MvJHtFWEVFWFR9JCQvLycgLWUgJyQoVFJBTlNG
T1JNKScgXAogCSAgICBgJHtFWEVFWFR9IHx8IGV4aXQ7IFwKIAlkb25lCisJZm9yIGZpbGUg
aW4gJycgJHtJTlNUQUxMQUJMRV9TQ1JJUFRTfTsgZG8gXAorCSAgWyAiJCRmaWxlIiBdIHx8
IGNvbnRpbnVlOyBcCisJICAkKElOU1RBTExfUFJPR1JBTSkgJCR7ZmlsZX0gXAorCSAgICAi
JChERVNURElSKSR7YmluZGlyfSIvYCBcCisJICAgICAgZWNobyAkJHtmaWxlfSB8IHNlZCAt
ZSAnJChUUkFOU0ZPUk0pJyBcCisJICAgIGAgfHwgZXhpdDsgXAorCWRvbmUKIAogdW5pbnN0
YWxsOgotCWZvciBmaWxlIGluICR7SU5TVEFMTEFCTEVTfTsgZG8gXAorCWZvciBmaWxlIGlu
ICR7SU5TVEFMTEFCTEVfRVhFU307IGRvIFwKIAkgIHJtIC1mICIkKERFU1RESVIpJHtiaW5k
aXJ9Ii9gIFwKIAkgICAgZWNobyAkJHtmaWxlfSB8IHNlZCAtZSAncy8ke0VYRUVYVH0kJC8v
JyAtZSAnJChUUkFOU0ZPUk0pJyBcCiAJICBgJHtFWEVFWFR9OyBcCiAJZG9uZQorCWZvciBm
aWxlIGluICcnICR7SU5TVEFMTEFCTEVfU0NSSVBUU307IGRvIFwKKwkgIFsgIiQkZmlsZSIg
XSB8fCBjb250aW51ZTsgXAorCSAgcm0gLWYgIiQoREVTVERJUikke2JpbmRpcn0iL2AgXAor
CSAgICBlY2hvICQke2ZpbGV9IHwgc2VkIC1lICckKFRSQU5TRk9STSknIFwKKwkgIGA7IFwK
Kwlkb25lCiAJaWYgWyAtZCAiJChERVNURElSKSR7YXJjaGxpYmRpcn0iIF07IHRoZW4gXAog
CSAgY2QgIiQoREVTVERJUikke2FyY2hsaWJkaXJ9IiAmJiBcCi0JICBybSAtZiAke1VUSUxJ
VElFU30gJHtTQ1JJUFRTfTsgXAorCSAgcm0gLWYgJHtVVElMSVRZX0VYRVN9ICR7VVRJTElU
WV9TQ1JJUFRTfTsgXAogCWZpCiAKIG1vc3RseWNsZWFuOgpAQCAtNDE1LDEyICs0MjksMTMg
QEAgZXRhZ3NfbGlicyA9CiBldGFncyR7RVhFRVhUfTogJHtldGFnc19kZXBzfQogCSQoQU1f
Vl9DQ0xEKSQoQ0MpICR7QUxMX0NGTEFHU30gLW8gJEAgJDwgJChldGFnc19saWJzKQogCi0j
IyBjdGFncy5jIGlzIGRpc3RpbmN0IGZyb20gZXRhZ3MuYyBzbyB0aGF0IHBhcmFsbGVsIG1h
a2VzIGRvIG5vdCB3cml0ZSB0d28KLSMjIGV0YWdzLm8gZmlsZXMgb24gdG9wIG9mIGVhY2gg
b3RoZXIuCi0jIyBGSVhNRT8KLSMjIENhbid0IHdlIHVzZSBhIHdyYXBwZXIgdGhhdCBjYWxs
cyAnZXRhZ3MgLS1jdGFncyc/Ci1jdGFncyR7RVhFRVhUfTogJHtzcmNkaXJ9L2N0YWdzLmMg
JHtldGFnc19kZXBzfQotCSQoQU1fVl9DQ0xEKSQoQ0MpICR7QUxMX0NGTEFHU30gLW8gJEAg
JDwgJChldGFnc19saWJzKQoraWZlcSAoJChOVERJUiksKQorICBjdGFnczogJHtzcmNkaXJ9
L2N0YWdzLnNoCisJY3AgJD8gJEAKK2Vsc2UKKyAgY3RhZ3Mke0VYRUVYVH06ICR7c3JjZGly
fS9jdGFncy5jICQoTlRMSUIpICQoY29uZmlnX2gpCisJJChBTV9WX0NDTEQpJChDQykgJHtB
TExfQ0ZMQUdTfSAtbyAkQCAkPCAkKE5UTElCKSAkKExPQURMSUJFUykKK2VuZGlmCiAKIGFz
c2V0LWRpcmVjdG9yeS10b29sJHtFWEVFWFR9OiAke3NyY2Rpcn0vYXNzZXQtZGlyZWN0b3J5
LXRvb2wuYyAkKGNvbmZpZ19oKQogCSQoQU1fVl9DQ0xEKSQoQ0MpICR7QUxMX0NGTEFHU30g
JDwgJChMT0FETElCRVMpIC1vICRACmRpZmYgLS1naXQgYS9saWItc3JjL2N0YWdzLmMgYi9s
aWItc3JjL2N0YWdzLmMKaW5kZXggMGE2ODM4YTlkYmIuLmQxOTA0OTZkMzdlIDEwMDY0NAot
LS0gYS9saWItc3JjL2N0YWdzLmMKKysrIGIvbGliLXNyYy9jdGFncy5jCkBAIC0xLDIgKzEs
MTA1IEBACi0jZGVmaW5lIENUQUdTIDEKLSNpbmNsdWRlICJldGFncy5jIgorLyogTGlrZSBj
dGFncy5zaCBidXQgZm9yIE1TLVdpbmRvd3MsIHdoaWNoIGxhY2tzIHRoZSBzaGVsbC4KKwor
Q29weXJpZ2h0IDIwMjUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKK1RoaXMg
ZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KKworR05VIEVtYWNzIGlzIGZyZWUgc29mdHdh
cmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKK2l0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5Cit0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQKK3lvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KworR05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCitidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorR05VIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKworWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKK2Fsb25nIHdpdGggR05VIEVt
YWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov
CisKKyNkZWZpbmUgREVGRVJfTVNfVzMyX0gKKyNpbmNsdWRlIDxjb25maWcuaD4KKworI2lu
Y2x1ZGUgPG1hbGxvYy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmlu
Zy5oPgorCisvKiBEZWNsYXJlIF9leGVjdnAgYnkgaGFuZCwgc2luY2UgTVMtV2luZG93cyA8
cHJvY2Vzcy5oPiBjb2xsaWRlcyB3aXRoCisgICAuLi9zcmMvcHJvY2Vzcy5oLiAgKi8KKyNp
bmNsdWRlIDxzdGRpbnQuaD4gLyogZm9yIGludHB0cl90ICovCitleHRlcm4gaW50cHRyX3Qg
X2V4ZWN2cCAoY2hhciBjb25zdCAqLCBjaGFyIGNvbnN0ICpjb25zdCAqKTsKKworLyogU3Rv
cmUgaW50byBEW0ldIHRocm91Z2ggRFtJICsgTiAtIDFdIHRoZSBieXRlIEMsIGFuZCByZXR1
cm4gSSArIE4uCisgICBCdXQgaWYgRCBpcyBudWxsLCBqdXN0IHJldHVybiB0aGUgaW5jcmVt
ZW50ZWQgY291bnQuICAqLworc3RhdGljIHNpemVfdAorc3RvcmUgKGNoYXIgKmQsIHNpemVf
dCBpLCBzaXplX3QgbiwgY2hhciBjKQoreworICBpZiAoZCkKKyAgICBmb3IgKHNpemVfdCBq
ID0gMDsgaiA8IG47IGorKykKKyAgICAgIGRbaSArIGpdID0gYzsKKyAgcmV0dXJuIGkgKyBu
OworfQorCisvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyB1c2VkIHRvIHJlcHJlc2Vu
dCB0aGUgc3RyaW5nIFMgYXMgYW4KKyAgIE1TLVdpbmRvd3MgX2V4ZWN2cCBhcmd1bWVudCwg
aW5jbHVkaW5nIHRoZSB0cmFpbGluZyBudWxsIGJ5dGUuCisgICBJZiBEIGlzIG5vbm51bGws
IGFsc28gc3RvcmUgdGhlIHJlcHJlc2VudGF0aW9uIGludG8gRC4KKyAgIER1ZSB0byBNaWNy
b3NvZnQgQyBydW50aW1lIGNvbnN0cmFpbnRzLCBTIGNhbm5vdCBjb250YWluICdcbicsCisg
ICBhbmQgaWYgUyBjb250YWlucyAnIicgdGhlIHJlcHJlc2VudGF0aW9uIGNhbm5vdCBiZSB1
c2VkIGZvciBhcmd1bWVudCAwLiAgKi8KK3N0YXRpYyBzaXplX3QKK3czMl9leGVjdnBfYXJn
X3JlcHIgKGNoYXIgY29uc3QgKnJlc3RyaWN0IHMsIGNoYXIgKnJlc3RyaWN0IGQpCit7Cisg
IC8qIFNlZSA8aHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL2NwcC9jLWxhbmd1
YWdlL3BhcnNpbmctYy1jb21tYW5kLWxpbmUtYXJndW1lbnRzPi4KKyAgICAgQWx0aG91Z2gg
cXVvdGluZyBpcyBuZWVkZWQgb25seSBpZiBTIGlzIGVtcHR5IG9yIGNvbnRhaW5zIHNwYWNl
IG9yIHRhYiwKKyAgICAgaXQgaXMgc2ltcGxlciBhbmQgcGVyaGFwcyBjaGVhcGVyIHRvIGFs
d2F5cyBxdW90ZS4gICovCisgIHNpemVfdCBpID0gMDsKKyAgaSA9IHN0b3JlIChkLCBpLCAx
LCAnIicpOworCisgIHNpemVfdCBic2NvdW50ID0gMDsgLyogQ291bnQgb2YgcHJlY2VkaW5n
IGJhY2tzbGFzaGVzLiAgKi8KKyAgZm9yICg7ICpzOyBzKyspCisgICAgeworICAgICAgaWYg
KCpzID09ICciJykKKwlzdG9yZSAoZCwgaSwgYnNjb3VudCArIDEsICdcXCcpOworICAgICAg
aSA9IHN0b3JlIChkLCBpLCAxLCAqcyk7CisgICAgICBic2NvdW50ID0gKnMgPT0gJ1xcJyA/
IGJzY291bnQgKyAxIDogMDsKKyAgICB9CisKKyAgaSA9IHN0b3JlIChkLCBpLCBic2NvdW50
LCAnXFwnKTsKKyAgaSA9IHN0b3JlIChkLCBpLCAxLCAnIicpOworICBpID0gc3RvcmUgKGQs
IGksIDEsICdcMCcpOworICByZXR1cm4gaTsKK30KKworaW50CittYWluIChpbnQgYXJnYywg
Y2hhciAqKmFyZ3YpCit7CisgIGNoYXIgY29uc3QgKnByb2duYW1lID0gYXJndlswXTsKKyAg
c3RhdGljIGNoYXIgY29uc3Qgb3B0aW9uX3ByZWZpeFtdID0gIi0tY3RhZ3M9IjsKKworICAv
KiBOdW1iZXIgb2YgYnl0ZXMgbmVlZGVkIHRvIHJlcHJlc2VudCBhbGwgZXRhZ3MgYXJncy4g
ICovCisgIHNpemVfdCBuYXJnYnl0ZXMgPSBzaXplb2Ygb3B0aW9uX3ByZWZpeCAtIDE7Cisg
IGZvciAoaW50IGkgPSAwOyBpIDwgYXJnYzsgaSsrKQorICAgIG5hcmdieXRlcyArPSB3MzJf
ZXhlY3ZwX2FyZ19yZXByIChhcmd2W2ldLCBOVUxMKTsKKworICBjaGFyIGNvbnN0ICoqZXRh
Z3NfYXJndiA9IG1hbGxvYyAoKGFyZ2MgKyAyKSAqIHNpemVvZiAqYXJndiArIG5hcmdieXRl
cyk7CisgIGlmIChldGFnc19hcmd2KQorICAgIHsKKyAgICAgIGNoYXIgKmQgPSAoY2hhciAq
KSAoZXRhZ3NfYXJndiArIGFyZ2MgKyAyKTsKKyAgICAgIGV0YWdzX2FyZ3ZbMF0gPSAiZXRh
Z3MiOworICAgICAgZXRhZ3NfYXJndlsxXSA9IG1lbWNweSAoZCwgb3B0aW9uX3ByZWZpeCwg
c2l6ZW9mIG9wdGlvbl9wcmVmaXggLSAxKTsKKyAgICAgIGQgKz0gc2l6ZW9mIG9wdGlvbl9w
cmVmaXggLSAxOworICAgICAgZCArPSB3MzJfZXhlY3ZwX2FyZ19yZXByIChwcm9nbmFtZSwg
ZCk7CisKKyAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgYXJnYzsgaSsrKQorCXsKKwkgIGV0
YWdzX2FyZ3ZbaSArIDFdID0gZDsKKwkgIGQgKz0gdzMyX2V4ZWN2cF9hcmdfcmVwciAoYXJn
dltpXSwgZCk7CisJfQorCisgICAgICBldGFnc19hcmd2W2FyZ2MgKyAxXSA9IE5VTEw7Cisg
ICAgICBwcm9nbmFtZSA9IGV0YWdzX2FyZ3ZbMF07CisgICAgICBfZXhlY3ZwIChwcm9nbmFt
ZSwgZXRhZ3NfYXJndik7CisgICAgfQorCisgIHBlcnJvciAocHJvZ25hbWUpOworICByZXR1
cm4gMTI3OworfQpkaWZmIC0tZ2l0IGEvbGliLXNyYy9jdGFncy5zaCBiL2xpYi1zcmMvY3Rh
Z3Muc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLjljYzk1Zjc5
YjAxCi0tLSAvZGV2L251bGwKKysrIGIvbGliLXNyYy9jdGFncy5zaApAQCAtMCwwICsxLDIg
QEAKKyMhL2Jpbi9zaAorZXhlYyBldGFncyAtLWN0YWdzPSIkMCIgIiRAIgpkaWZmIC0tZ2l0
IGEvbGliLXNyYy9ldGFncy5jIGIvbGliLXNyYy9ldGFncy5jCmluZGV4IGI1OWI3MGM5ZWM3
Li5kYWE1MWMxMjVkNCAxMDA2NDQKLS0tIGEvbGliLXNyYy9ldGFncy5jCisrKyBiL2xpYi1z
cmMvZXRhZ3MuYwpAQCAtMTI2LDE2ICsxMjYsNiBAQCBDb3B5cmlnaHQgKEMpIDE5ODQsIDE5
ODctMTk4OSwgMTk5My0xOTk1LCAxOTk4LTIwMjUgRnJlZSBTb2Z0d2FyZQogI2luY2x1ZGUg
PGdldG9wdC5oPgogI2luY2x1ZGUgPHJlZ2V4Lmg+CiAKLS8qIERlZmluZSBDVEFHUyB0byBt
YWtlIHRoZSBwcm9ncmFtICJjdGFncyIgY29tcGF0aWJsZSB3aXRoIHRoZSB1c3VhbCBvbmUu
Ci0gTGVhdmUgaXQgdW5kZWZpbmVkIHRvIG1ha2UgdGhlIHByb2dyYW0gImV0YWdzIiwgd2hp
Y2ggbWFrZXMgZW1hY3Mtc3R5bGUKLSB0YWcgdGFibGVzIGFuZCB0YWdzIHR5cGVkZWZzLCAj
ZGVmaW5lcyBhbmQgc3RydWN0L3VuaW9uL2VudW0gYnkgZGVmYXVsdC4gKi8KLSNpZmRlZiBD
VEFHUwotIyB1bmRlZiAgQ1RBR1MKLSMgZGVmaW5lIENUQUdTIHRydWUKLSNlbHNlCi0jIGRl
ZmluZSBDVEFHUyBmYWxzZQotI2VuZGlmCi0KIC8qIERlZmluZSBNRVJDVVJZX0hFVVJJU1RJ
Q1NfUkFUSU8gYXMgaXQgd2FzIG5lY2Vzc2FyeSB0byBkaXNhbWJpZ3VhdGUKICAgIE1lcmN1
cnkgZnJvbSBPYmplY3RpdmUgQywgd2hpY2ggaGF2ZSBzYW1lIGZpbGUgZXh0ZW5zaW9ucyAu
bQogICAgU2VlIGNvbW1lbnRzIGJlZm9yZSBmdW5jdGlvbiB0ZXN0X29iamNfaXNfbWVyY3Vy
eSBmb3IgZGV0YWlscy4gICovCkBAIC00NzksMTggKzQ2OSwyMCBAQCAjZGVmaW5lIHhybmV3
KG9wLCBuLCBtKSAoKG9wKSA9IHhucmVhbGxvYyAob3AsIG4sIChtKSAqIHNpemVvZiAqKG9w
KSkpCiBzdGF0aWMgYm9vbCBpZ25vcmVpbmRlbnQ7CS8qIC1JOiBpZ25vcmUgaW5kZW50YXRp
b24gaW4gQyAqLwogc3RhdGljIGludCBwYWNrYWdlc19vbmx5OwkvKiAtLXBhY2thZ2VzLW9u
bHk6IGluIEFkYSwgb25seSB0YWcgcGFja2FnZXMqLwogc3RhdGljIGludCBjbGFzc19xdWFs
aWZ5OwkvKiAtUTogcHJvZHVjZSBjbGFzcy1xdWFsaWZpZWQgdGFncyBpbiBDKysvSmF2YSAq
Lworc3RhdGljIGJvb2wgY3RhZ3M7CQkvKiAtLWN0YWdzICovCiBzdGF0aWMgaW50IGRlYnVn
OwkJLyogLS1kZWJ1ZyAqLwogc3RhdGljIGludCBmYWxsYmFja19sYW5nOwkvKiAtLShuby0p
ZmFsbGJhY2stbGFuZzogRm9ydHJhbi9DIGZhbGxiYWNrcyAqLwogc3RhdGljIGludCBlbXB0
eV9maWxlczsJCS8qIC0tKG5vLSllbXB0eS1maWxlLWVudHJpZXMgKi8KLQotLyogU1RESU4g
aXMgZGVmaW5lZCBpbiBMeW54T1Mgc3lzdGVtIGhlYWRlcnMgKi8KLSNpZmRlZiBTVERJTgot
IyB1bmRlZiBTVERJTgotI2VuZGlmCi0KLSNkZWZpbmUgU1RESU4gMHgxMDAxCQkvKiByZXR1
cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICovCiBzdGF0aWMgYm9vbCBw
YXJzaW5nX3N0ZGluOwkvKiAtLXBhcnNlLXN0ZGluIHVzZWQgKi8KIAorLyogRm9yIGxvbmcg
b3B0aW9ucyB0aGF0IGhhdmUgbm8gZXF1aXZhbGVudCBzaG9ydCBvcHRpb24sIHVzZSBhCisg
ICBub24tY2hhcmFjdGVyIGFzIGEgcHNldWRvIHNob3J0IG9wdGlvbiwgc3RhcnRpbmcgd2l0
aCBDSEFSX01BWCArIDEuICAqLworZW51bQorICB7CisgICAgQ1RBR1NfT1BUSU9OID0gQ0hB
Ul9NQVggKyAxLAorICAgIFNURElOX09QVElPTgorICB9OworCiBzdGF0aWMgcmVnZXhwICpw
X2hlYWQ7CQkvKiBsaXN0IG9mIGFsbCByZWdleHBzICovCiBzdGF0aWMgYm9vbCBuZWVkX2Zp
bGVidWY7CS8qIHNvbWUgcmVnZXhlcyBhcmUgbXVsdGktbGluZSAqLwogCkBAIC00OTksNiAr
NDkxLDcgQEAgI2RlZmluZSBTVERJTiAweDEwMDEJCS8qIHJldHVybmVkIGJ5IGdldG9wdF9s
b25nIG9uIC0tcGFyc2Utc3RkaW4gKi8KICAgeyAiYXBwZW5kIiwgICAgICAgICAgICAgbm9f
YXJndW1lbnQsICAgICAgIE5VTEwsICAgICAgICAgICAgICAgJ2EnICAgfSwKICAgeyAicGFj
a2FnZXMtb25seSIsICAgICAgbm9fYXJndW1lbnQsICAgICAgICZwYWNrYWdlc19vbmx5LCAg
ICAgMSAgICAgfSwKICAgeyAiYysrIiwgICAgICAgICAgICAgICAgbm9fYXJndW1lbnQsICAg
ICAgIE5VTEwsICAgICAgICAgICAgICAgJ0MnICAgfSwKKyAgeyAiY3RhZ3MiLCAgICAgICAg
ICAgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICAgICAgICBDVEFHU19PUFRJT04gfSwK
ICAgeyAiZGVidWciLCAgICAgICAgICAgICAgbm9fYXJndW1lbnQsICAgICAgICZkZWJ1Zywg
ICAgICAgICAgICAgMSAgICAgfSwKICAgeyAiZGVjbGFyYXRpb25zIiwgICAgICAgbm9fYXJn
dW1lbnQsICAgICAgICZkZWNsYXJhdGlvbnMsICAgICAgMSAgICAgfSwKICAgeyAibm8tbGlu
ZS1kaXJlY3RpdmUiLCAgbm9fYXJndW1lbnQsICAgICAgICZub19saW5lX2RpcmVjdGl2ZSwg
MSAgICAgfSwKQEAgLTUxNCwxMCArNTA3LDEwIEBAICNkZWZpbmUgU1RESU4gMHgxMDAxCQkv
KiByZXR1cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICovCiAgIHsgInJl
Z2V4IiwgICAgICAgICAgICAgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAgICAgICAgICAg
ICAgICdyJyAgIH0sCiAgIHsgIm5vLXJlZ2V4IiwgICAgICAgICAgIG5vX2FyZ3VtZW50LCAg
ICAgICBOVUxMLCAgICAgICAgICAgICAgICdSJyAgIH0sCiAgIHsgImlnbm9yZS1jYXNlLXJl
Z2V4IiwgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAgICAgICAgICAgICAgICdjJyAgIH0s
Ci0gIHsgInBhcnNlLXN0ZGluIiwgICAgICAgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAg
ICAgICAgICAgICAgIFNURElOIH0sCisgIHsgInBhcnNlLXN0ZGluIiwgICAgICAgIHJlcXVp
cmVkX2FyZ3VtZW50LCBOVUxMLCAgICAgICAgU1RESU5fT1BUSU9OIH0sCiAgIHsgInZlcnNp
b24iLCAgICAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAgICAgICAgICAgICAg
ICdWJyAgIH0sCiAKLSNpZiBDVEFHUyAvKiBDdGFncyBvcHRpb25zICovCisgIC8qIGN0YWdz
IG9wdGlvbnMgKi8KICAgeyAiYmFja3dhcmQtc2VhcmNoIiwgICAgbm9fYXJndW1lbnQsICAg
ICAgIE5VTEwsICAgICAgICAgICAgICAgJ0InICAgfSwKICAgeyAiY3hyZWYiLCAgICAgICAg
ICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsICAgICAgICAgICAgICAgJ3gnICAgfSwK
ICAgeyAiZGVmaW5lcyIsICAgICAgICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsICAg
ICAgICAgICAgICAgJ2QnICAgfSwKQEAgLTUyOCw3ICs1MjEsNyBAQCAjZGVmaW5lIFNURElO
IDB4MTAwMQkJLyogcmV0dXJuZWQgYnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAq
LwogICB7ICJ2Z3JpbmQiLCAgICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwg
ICAgICAgICAgICAgICAndicgICB9LAogICB7ICJuby13YXJuIiwgICAgICAgICAgICBub19h
cmd1bWVudCwgICAgICAgTlVMTCwgICAgICAgICAgICAgICAndycgICB9LAogCi0jZWxzZSAv
KiBFdGFncyBvcHRpb25zICovCisgIC8qIGV0YWdzIG9wdGlvbnMgKi8KICAgeyAibm8tZGVm
aW5lcyIsICAgICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsICAgICAgICAgICAgICAg
J0QnICAgfSwKICAgeyAibm8tZ2xvYmFscyIsICAgICAgICAgbm9fYXJndW1lbnQsICAgICAg
ICZnbG9iYWxzLCAgICAgICAgICAgMCAgICAgfSwKICAgeyAiaW5jbHVkZSIsICAgICAgICAg
ICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICAgICAgICAgICAgICAgJ2knICAgfSwKQEAg
LTUzNiw3ICs1MjksNyBAQCAjZGVmaW5lIFNURElOIDB4MTAwMQkJLyogcmV0dXJuZWQgYnkg
Z2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAqLwogICB7ICJmYWxsYmFjay1sYW5nIiwg
ICAgICBub19hcmd1bWVudCwgICAgICAgJmZhbGxiYWNrX2xhbmcsICAgICAxICAgICB9LAog
ICB7ICJuby1lbXB0eS1maWxlLWVudHJpZXMiLCBub19hcmd1bWVudCwgICAgJmVtcHR5X2Zp
bGVzLCAgICAgICAwICAgICB9LAogICB7ICJlbXB0eS1maWxlLWVudHJpZXMiLCBub19hcmd1
bWVudCwgICAgICAgJmVtcHR5X2ZpbGVzLCAgICAgICAxICAgICB9LAotI2VuZGlmCisKICAg
eyBOVUxMIH0KIH07CiAKQEAgLTU5OCwxNSArNTkxLDE3IEBAICNkZWZpbmUgU1RESU4gMHgx
MDAxCQkvKiByZXR1cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICovCiAg
ICBUaGF0IGlzIHdoeSBkZWZhdWx0X0NfZW50cmllcyBpcyBjYWxsZWQgZm9yIHRoZXNlLiAq
Lwogc3RhdGljIGNvbnN0IGNoYXIgKmRlZmF1bHRfQ19zdWZmaXhlcyBbXSA9CiAgIHsgImMi
LCAiaCIsIE5VTEwgfTsKLSNpZiBDVEFHUwkJCQkvKiBDIGhlbHAgZm9yIEN0YWdzICovCi1z
dGF0aWMgY29uc3QgY2hhciBkZWZhdWx0X0NfaGVscCBbXSA9CisKKy8qIEMgaGVscCBmb3Ig
Y3RhZ3MgKi8KK3N0YXRpYyBjb25zdCBjaGFyIGN0YWdzX2RlZmF1bHRfQ19oZWxwW10gPQog
IkluIEMgY29kZSwgYW55IEMgZnVuY3Rpb24gaXMgYSB0YWcuICBVc2UgLXQgdG8gdGFnIHR5
cGVkZWZzLlxuXAogVXNlIC1UIHRvIHRhZyBkZWZpbml0aW9ucyBvZiAnc3RydWN0JywgJ3Vu
aW9uJyBhbmQgJ2VudW0nLlxuXAogVXNlIC1kIHRvIHRhZyAnI2RlZmluZScgbWFjcm8gZGVm
aW5pdGlvbnMgYW5kICdlbnVtJyBjb25zdGFudHMuXG5cCiBVc2UgLS1nbG9iYWxzIHRvIHRh
ZyBnbG9iYWwgdmFyaWFibGVzLlxuXAogWW91IGNhbiB0YWcgZnVuY3Rpb24gZGVjbGFyYXRp
b25zIGFuZCBleHRlcm5hbCB2YXJpYWJsZXMgYnlcblwKIHVzaW5nICctLWRlY2xhcmF0aW9u
cycsIGFuZCBzdHJ1Y3QgbWVtYmVycyBieSB1c2luZyAnLS1tZW1iZXJzJy4iOwotI2Vsc2UJ
CQkJCS8qIEMgaGVscCBmb3IgRXRhZ3MgKi8KKworLyogQyBoZWxwIGZvciBldGFncyAqLwog
c3RhdGljIGNvbnN0IGNoYXIgZGVmYXVsdF9DX2hlbHAgW10gPQogIkluIEMgY29kZSwgYW55
IEMgZnVuY3Rpb24gb3IgdHlwZWRlZiBpcyBhIHRhZywgYW5kIHNvIGFyZVxuXAogZGVmaW5p
dGlvbnMgb2YgJ3N0cnVjdCcsICd1bmlvbicgYW5kICdlbnVtJy4gICcjZGVmaW5lJyBtYWNy
b1xuXApAQCAtNjE3LDcgKzYxMiw2IEBAICNkZWZpbmUgU1RESU4gMHgxMDAxCQkvKiByZXR1
cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICovCiAnLS1uby1tZW1iZXJz
JyBjYW4gbWFrZSB0aGUgdGFncyB0YWJsZSBmaWxlIG11Y2ggc21hbGxlci5cblwKIFlvdSBj
YW4gdGFnIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBhbmQgZXh0ZXJuYWwgdmFyaWFibGVzIGJ5
XG5cCiB1c2luZyAnLS1kZWNsYXJhdGlvbnMnLiI7Ci0jZW5kaWYJLyogQyBoZWxwIGZvciBD
dGFncyBhbmQgRXRhZ3MgKi8KIAogc3RhdGljIGNvbnN0IGNoYXIgKkNwbHVzcGx1c19zdWZm
aXhlcyBbXSA9CiAgIHsgIkMiLCAiYysrIiwgImNjIiwgImNwcCIsICJjeHgiLCAiSCIsICJo
KysiLCAiaGgiLCAiaHBwIiwgImh4eCIsCkBAIC04NjIsNiArODU2LDcgQEAgI2RlZmluZSBT
VERJTiAweDEwMDEJCS8qIHJldHVybmVkIGJ5IGdldG9wdF9sb25nIG9uIC0tcGFyc2Utc3Rk
aW4gKi8KIHsKICAgeyAiYWRhIiwgICAgICAgQWRhX2hlbHAsICAgICAgIEFkYV9mdW5jcywg
ICAgICAgICBBZGFfc3VmZml4ZXMgICAgICAgfSwKICAgeyAiYXNtIiwgICAgICAgQXNtX2hl
bHAsICAgICAgIEFzbV9sYWJlbHMsICAgICAgICBBc21fc3VmZml4ZXMgICAgICAgfSwKKyNk
ZWZpbmUgQ19MQU5HX05BTUVTX0lOREVYIDIKICAgeyAiYyIsICAgICAgICAgZGVmYXVsdF9D
X2hlbHAsIGRlZmF1bHRfQ19lbnRyaWVzLCBkZWZhdWx0X0Nfc3VmZml4ZXMgfSwKICAgeyAi
YysrIiwgICAgICAgQ3BsdXNwbHVzX2hlbHAsIENwbHVzcGx1c19lbnRyaWVzLCBDcGx1c3Bs
dXNfc3VmZml4ZXMgfSwKICAgeyAiYyoiLCAgICAgICAgbm9fbGFuZ19oZWxwLCAgIENzdGFy
X2VudHJpZXMsICAgICBDc3Rhcl9zdWZmaXhlcyAgICAgfSwKQEAgLTkyOCwyNCArOTIzLDIw
IEBAIHByaW50X2xhbmd1YWdlX25hbWVzICh2b2lkKQogRm9ydHJhbiBpcyB0cmllZCBmaXJz
dDsgaWYgbm8gdGFncyBhcmUgZm91bmQsIEMgaXMgdHJpZWQgbmV4dC5cblwKIFdoZW4gcGFy
c2luZyBhbnkgQyBmaWxlLCBhIFwiY2xhc3NcIiBvciBcInRlbXBsYXRlXCIga2V5d29yZFxu
XAogc3dpdGNoZXMgdG8gQysrLiIpOwotICBwdXRzICgiQ29tcHJlc3NlZCBmaWxlcyBhcmUg
c3VwcG9ydGVkIHVzaW5nIGd6aXAsIGJ6aXAyLCB4eiwgYW5kIHpzdGQuXG5cCisgIHByaW50
ZiAoIkNvbXByZXNzZWQgZmlsZXMgYXJlIHN1cHBvcnRlZCB1c2luZyBnemlwLCBiemlwMiwg
eHosIGFuZCB6c3RkLlxuXAogXG5cCiBGb3IgZGV0YWlsZWQgaGVscCBvbiBhIGdpdmVuIGxh
bmd1YWdlIHVzZSwgZm9yIGV4YW1wbGUsXG5cCi1ldGFncyAtLWhlbHAgLS1sYW5nPWFkYS4i
KTsKKyVzIC0taGVscCAtLWxhbmc9YWRhLlxuIiwKKwkgIHByb2duYW1lKTsKIH0KIAotI2lm
IENUQUdTCi0jIGRlZmluZSBQUk9HUkFNX05BTUUgImN0YWdzIgotI2Vsc2UKLSMgZGVmaW5l
IFBST0dSQU1fTkFNRSAiZXRhZ3MiCi0jZW5kaWYKIHN0YXRpYyBfTm9yZXR1cm4gdm9pZAog
cHJpbnRfdmVyc2lvbiAodm9pZCkKIHsKLSAgZnB1dHMgKChQUk9HUkFNX05BTUUgIiAoIiBQ
QUNLQUdFX05BTUUgIiAiIFBBQ0tBR0VfVkVSU0lPTiAiKVxuIgotCSAgQ09QWVJJR0hUICJc
biIKLQkgICJUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIGlu
IEVUQUdTLlJFQURNRVxuIiksCi0JIHN0ZG91dCk7CisgIHByaW50ZiAoKCIlcyAoJXMgJXMp
XG4iCisJICAgIiVzXG4iCisJICAgIlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgdGVybXMgaW4gRVRBR1MuUkVBRE1FXG4iKSwKKwkgIGN0YWdzID8gImN0YWdzIiA6
ICJldGFncyIsIFBBQ0tBR0VfTkFNRSwgUEFDS0FHRV9WRVJTSU9OLCBDT1BZUklHSFQpOwog
ICBleGl0IChFWElUX1NVQ0NFU1MpOwogfQogCkBAIC05ODQsNyArOTc1LDcgQEAgcHJpbnRf
aGVscCAoYXJndW1lbnQgKmFyZ2J1ZmZlcikKICAgcHV0cyAoIi0tcGFja2FnZXMtb25seVxu
XAogICAgICAgICBGb3IgQWRhIGZpbGVzLCBvbmx5IGdlbmVyYXRlIHRhZ3MgZm9yIHBhY2th
Z2VzLiIpOwogCi0gIGlmIChDVEFHUykKKyAgaWYgKGN0YWdzKQogICAgIHB1dHMgKCItQiwg
LS1iYWNrd2FyZC1zZWFyY2hcblwKICAgICAgICAgV3JpdGUgdGhlIHNlYXJjaCBjb21tYW5k
cyBmb3IgdGhlIHRhZyBlbnRyaWVzIHVzaW5nICc/JywgdGhlXG5cCiAgICAgICAgIGJhY2t3
YXJkLXNlYXJjaCBjb21tYW5kIGluc3RlYWQgb2YgJy8nLCB0aGUgZm9yd2FyZC1zZWFyY2gg
Y29tbWFuZC4iKTsKQEAgLTk5Nyw5ICs5ODgsMTMgQEAgcHJpbnRfaGVscCAoYXJndW1lbnQg
KmFyZ2J1ZmZlcikKICAgICAgICAgVHJlYXQgZmlsZXMgd2hvc2UgbmFtZSBzdWZmaXggZGVm
YXVsdHMgdG8gQyBsYW5ndWFnZSBhcyBDKysgZmlsZXMuIik7CiAgICovCiAKKyAgaWYgKFBS
SU5UX1VORE9DVU1FTlRFRF9PUFRJT05TX0hFTFAgJiYgIWN0YWdzKQorICAgIHB1dHMgKCIt
LWN0YWdzPVBST0dSQU1fTkFNRVxuXAorCUltcGxlbWVudCBjdGFncyBiZWhhdmlvciB1bmRl
ciB0aGUgbmFtZSBQUk9HUkFNX05BTUUuIik7CisKICAgcHV0cyAoIi0tZGVjbGFyYXRpb25z
XG5cCiAJSW4gQyBhbmQgZGVyaXZlZCBsYW5ndWFnZXMsIGNyZWF0ZSB0YWdzIGZvciBmdW5j
dGlvbiBkZWNsYXJhdGlvbnMsIik7Ci0gIGlmIChDVEFHUykKKyAgaWYgKGN0YWdzKQogICAg
IHB1dHMgKCJcdGFuZCBjcmVhdGUgdGFncyBmb3IgZXh0ZXJuIHZhcmlhYmxlcyBpZiAtLWds
b2JhbHMgaXMgdXNlZC4iKTsKICAgZWxzZQogICAgIHB1dHMKQEAgLTEwMDgsNyArMTAwMyw3
IEBAIHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZmZXIpCiAgIHB1dHMgKCJcdEluIE1l
cmN1cnksIHRhZyBib3RoIGRlY2xhcmF0aW9ucyBzdGFydGluZyBhIGxpbmUgd2l0aCAnOi0n
IGFuZFxuXAogICAgICAgICBmaXJzdCBwcmVkaWNhdGVzIG9yIGZ1bmN0aW9ucyBpbiBjbGF1
c2VzLiIpOwogCi0gIGlmIChDVEFHUykKKyAgaWYgKGN0YWdzKQogICAgIHB1dHMgKCItZCwg
LS1kZWZpbmVzXG5cCiAgICAgICAgIENyZWF0ZSB0YWcgZW50cmllcyBmb3IgQyAjZGVmaW5l
IGNvbnN0YW50cyBhbmQgZW51bSBjb25zdGFudHMsIHRvby4iKTsKICAgZWxzZQpAQCAtMTAx
Niw3ICsxMDExLDcgQEAgcHJpbnRfaGVscCAoYXJndW1lbnQgKmFyZ2J1ZmZlcikKICAgICAg
ICAgRG9uJ3QgY3JlYXRlIHRhZyBlbnRyaWVzIGZvciBDICNkZWZpbmUgY29uc3RhbnRzIGFu
ZCBlbnVtIGNvbnN0YW50cy5cblwKIAlUaGlzIG1ha2VzIHRoZSB0YWdzIGZpbGUgc21hbGxl
ci4iKTsKIAotICBpZiAoIUNUQUdTKQorICBpZiAoIWN0YWdzKQogICAgIHB1dHMgKCItaSBG
SUxFLCAtLWluY2x1ZGU9RklMRVxuXAogICAgICAgICBJbmNsdWRlIGEgbm90ZSBpbiB0YWcg
ZmlsZSBpbmRpY2F0aW5nIHRoYXQsIHdoZW4gc2VhcmNoaW5nIGZvclxuXAogICAgICAgICBh
IHRhZywgb25lIHNob3VsZCBhbHNvIGNvbnN1bHQgdGhlIHRhZ3MgZmlsZSBGSUxFIGFmdGVy
XG5cCkBAIC0xMDI2LDcgKzEwMjEsNyBAQCBwcmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVm
ZmVyKQogICAgICAgICBGb3JjZSB0aGUgZm9sbG93aW5nIGZpbGVzIHRvIGJlIGNvbnNpZGVy
ZWQgYXMgd3JpdHRlbiBpbiB0aGVcblwKIAluYW1lZCBsYW5ndWFnZSB1cCB0byB0aGUgbmV4
dCAtLWxhbmd1YWdlPUxBTkcgb3B0aW9uLiIpOwogCi0gIGlmIChDVEFHUykKKyAgaWYgKGN0
YWdzKQogICAgIHB1dHMgKCItLWdsb2JhbHNcblwKIAlDcmVhdGUgdGFnIGVudHJpZXMgZm9y
IGdsb2JhbCB2YXJpYWJsZXMgaW4gc29tZSBsYW5ndWFnZXMuIik7CiAgIGVsc2UKQEAgLTEw
MzcsNyArMTAzMiw3IEBAIHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZmZXIpCiAgIHB1
dHMgKCItLW5vLWxpbmUtZGlyZWN0aXZlXG5cCiAgICAgICAgIElnbm9yZSAjbGluZSBwcmVw
cm9jZXNzb3IgZGlyZWN0aXZlcyBpbiBDIGFuZCBkZXJpdmVkIGxhbmd1YWdlcy4iKTsKIAot
ICBpZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICBwdXRzICgiLS1tZW1iZXJzXG5cCiAJ
Q3JlYXRlIHRhZyBlbnRyaWVzIGZvciBtZW1iZXJzIG9mIHN0cnVjdHVyZXMgaW4gc29tZSBs
YW5ndWFnZXMuIik7CiAgIGVsc2UKQEAgLTEwNDUsNyArMTA0MCw3IEBAIHByaW50X2hlbHAg
KGFyZ3VtZW50ICphcmdidWZmZXIpCiAJRG8gbm90IGNyZWF0ZSB0YWcgZW50cmllcyBmb3Ig
bWVtYmVycyBvZiBzdHJ1Y3R1cmVzXG5cCiAJaW4gc29tZSBsYW5ndWFnZXMuIik7CiAKLSAg
aWYgKCFDVEFHUykKKyAgaWYgKCFjdGFncykKICAgICB7CiAgICAgICBwdXRzICgiLS1mYWxs
YmFjay1sYW5nXG5cCiAJSWYgYSBmaWxlJ3MgbGFuZ3VhZ2UgY291bGQgbm90IGJlIGRldGVy
bWluZWQsIHRyeSB0byBwYXJzZVxuXApAQCAtMTA5Miw3ICsxMDg3LDcgQEAgcHJpbnRfaGVs
cCAoYXJndW1lbnQgKmFyZ2J1ZmZlcikKICAgcHV0cyAoIi0tcGFyc2Utc3RkaW49TkFNRVxu
XAogICAgICAgICBSZWFkIGZyb20gc3RhbmRhcmQgaW5wdXQgYW5kIHJlY29yZCB0YWdzIGFz
IGJlbG9uZ2luZyB0byBmaWxlIE5BTUUuIik7CiAKLSAgaWYgKENUQUdTKQorICBpZiAoY3Rh
Z3MpCiAgICAgewogICAgICAgcHV0cyAoIi10LCAtLXR5cGVkZWZzXG5cCiAgICAgICAgIEdl
bmVyYXRlIHRhZyBlbnRyaWVzIGZvciBDIGFuZCBBZGEgdHlwZWRlZnMuIik7CkBAIC0xMTAx
LDcgKzEwOTYsNyBAQCBwcmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVmZmVyKQogICAgICAg
ICBhbmQgQysrIG1lbWJlciBmdW5jdGlvbnMuIik7CiAgICAgfQogCi0gIGlmIChDVEFHUykK
KyAgaWYgKGN0YWdzKQogICAgIHB1dHMgKCItdSwgLS11cGRhdGVcblwKICAgICAgICAgVXBk
YXRlIHRoZSB0YWcgZW50cmllcyBmb3IgdGhlIGdpdmVuIGZpbGVzLCBsZWF2aW5nIHRhZ1xu
XAogICAgICAgICBlbnRyaWVzIGZvciBvdGhlciBmaWxlcyBpbiBwbGFjZS4gIEN1cnJlbnRs
eSwgdGhpcyBpc1xuXApAQCAtMTExMCw3ICsxMTA1LDcgQEAgcHJpbnRfaGVscCAoYXJndW1l
bnQgKmFyZ2J1ZmZlcikKICAgICAgICAgdGFncyBmaWxlLiAgSXQgaXMgb2Z0ZW4gZmFzdGVy
IHRvIHNpbXBseSByZWJ1aWxkIHRoZSBlbnRpcmVcblwKICAgICAgICAgdGFnIGZpbGUgdGhh
biB0byB1c2UgdGhpcy4iKTsKIAotICBpZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICB7
CiAgICAgICBwdXRzICgiLXYsIC0tdmdyaW5kXG5cCiAgICAgICAgIFByaW50IG9uIHRoZSBz
dGFuZGFyZCBvdXRwdXQgYW4gaW5kZXggb2YgaXRlbXMgaW50ZW5kZWQgZm9yXG5cCkBAIC0x
MTYwLDcgKzExNTUsNiBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgIGxpbmVi
dWZmZXIgZmlsZW5hbWVfbGI7CiAgIGJvb2wgaGVscF9hc2tlZCA9IGZhbHNlOwogICBwdHJk
aWZmX3QgbGVuOwotICBjaGFyICpvcHRzdHJpbmc7CiAgIGludCBvcHQ7CiAKICAgcHJvZ25h
bWUgPSBhcmd2WzBdOwpAQCAtMTE5Miw5ICsxMTg2LDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNo
YXIgKiphcmd2KQogCiAgIC8qIFdoZW4gdGhlIG9wdHN0cmluZyBiZWdpbnMgd2l0aCBhICct
JyBnZXRvcHRfbG9uZyBkb2VzIG5vdCByZWFycmFuZ2UgdGhlCiAgICAgIG5vbi1vcHRpb25z
IGFyZ3VtZW50cyB0byBiZSBhdCB0aGUgZW5kLCBidXQgbGVhdmVzIHRoZW0gYWxvbmUuICov
Ci0gIG9wdHN0cmluZyA9IGNvbmNhdCAoIi1hYzpDZjpJbDpvOlFyOlJTVmhIIiwKLQkJICAg
ICAgKENUQUdTKSA/ICJCeGR0VHV2dyIgOiAiRGk6IiwKLQkJICAgICAgIiIpOworICBzdGF0
aWMgY2hhciBjb25zdCBvcHRzdHJpbmdbXSA9ICItYUJjOkNkRGY6aEhpOklsOm86UXI6UlN0
VHV2Vnd4IjsKIAogICB3aGlsZSAoKG9wdCA9IGdldG9wdF9sb25nIChhcmdjLCBhcmd2LCBv
cHRzdHJpbmcsIGxvbmdvcHRzLCBOVUxMKSkgIT0gRU9GKQogICAgIHN3aXRjaCAob3B0KQpA
QCAtMTIxNSw3ICsxMjA3LDE0IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkr
K2ZpbGVfY291bnQ7CiAJYnJlYWs7CiAKLSAgICAgIGNhc2UgU1RESU46CisgICAgICBjYXNl
IENUQUdTX09QVElPTjoKKwkvKiBPcGVyYXRlIGFzIGN0YWdzLCBub3QgZXRhZ3MuICAqLwor
CWN0YWdzID0gdHJ1ZTsKKwlwcm9nbmFtZSA9IG9wdGFyZzsKKwlsYW5nX25hbWVzW0NfTEFO
R19OQU1FU19JTkRFWF0uaGVscCA9IGN0YWdzX2RlZmF1bHRfQ19oZWxwOworCWJyZWFrOwor
CisgICAgICBjYXNlIFNURElOX09QVElPTjoKIAkvKiBQYXJzZSBzdGFuZGFyZCBpbnB1dC4g
IElkZWEgYnkgVml2ZWsgPHZpdmVrQGV0bGEub3JnPi4gKi8KIAlhcmdidWZmZXJbY3VycmVu
dF9hcmddLmFyZ190eXBlID0gYXRfc3RkaW47CiAJYXJnYnVmZmVyW2N1cnJlbnRfYXJnXS53
aGF0ICAgICA9IG9wdGFyZzsKQEAgLTEzMjUsNyArMTMyNCw3IEBAIG1haW4gKGludCBhcmdj
LCBjaGFyICoqYXJndikKICAgICB9CiAKICAgaWYgKHRhZ2ZpbGUgPT0gTlVMTCkKLSAgICB0
YWdmaWxlID0gc2F2ZXN0ciAoQ1RBR1MgPyAidGFncyIgOiAiVEFHUyIpOworICAgIHRhZ2Zp
bGUgPSBzYXZlc3RyIChjdGFncyA/ICJ0YWdzIiA6ICJUQUdTIik7CiAgIGN3ZCA9IGV0YWdz
X2dldGN3ZCAoKTsJLyogdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgKi8KICAgaWYg
KGN3ZFtzdHJsZW4gKGN3ZCkgLSAxXSAhPSAnLycpCiAgICAgewpAQCAtMTM0OSw3ICsxMzQ4
LDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICBsaW5lYnVmZmVyX2luaXQg
KCZmaWxlYnVmKTsKICAgbGluZWJ1ZmZlcl9pbml0ICgmdG9rZW5fbmFtZSk7CiAKLSAgaWYg
KCFDVEFHUykKKyAgaWYgKCFjdGFncykKICAgICB7CiAgICAgICBpZiAoc3RyZXEgKHRhZ2Zp
bGUsICItIikpCiAJewpAQCAtMTQwNywxMyArMTQwNiwxMyBAQCBtYWluIChpbnQgYXJnYywg
Y2hhciAqKmFyZ3YpCiAgIGZyZWUgKGZpbGVidWYuYnVmZmVyKTsKICAgZnJlZSAodG9rZW5f
bmFtZS5idWZmZXIpOwogCi0gIGlmICghQ1RBR1MgfHwgY3hyZWZfc3R5bGUpCisgIGlmICgh
Y3RhZ3MgfHwgY3hyZWZfc3R5bGUpCiAgICAgewogICAgICAgLyogV3JpdGUgdGhlIHJlbWFp
bmluZyB0YWdzIHRvIHRhZ2YgKEVUQUdTKSBvciBzdGRvdXQgKENYUkVGKS4gKi8KICAgICAg
IHB1dF9lbnRyaWVzIChub2RlaGVhZCk7CiAgICAgICBmcmVlX3RyZWUgKG5vZGVoZWFkKTsK
ICAgICAgIG5vZGVoZWFkID0gTlVMTDsKLSAgICAgIGlmICghQ1RBR1MpCisgICAgICBpZiAo
IWN0YWdzKQogCXsKIAkgIGZkZXNjICpmZHA7CiAKQEAgLTE0NjIsNyArMTQ2MSw3IEBAIG1h
aW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgaWYgKGZjbG9zZSAodGFnZikgPT0gRU9G
KQogICAgIHBmYXRhbCAodGFnZmlsZSk7CiAKLSAgaWYgKENUQUdTKQorICBpZiAoY3RhZ3Mp
CiAgICAgaWYgKGFwcGVuZF90b190YWdmaWxlIHx8IHVwZGF0ZSkKICAgICAgIHsKIAkvKiBN
YXliZSB0aGVzZSBzaG91bGQgYmUgdXNlZDoKQEAgLTE4NjAsNyArMTg1OSw3IEBAIHByb2Nl
c3NfZmlsZSAoRklMRSAqZmgsIGNoYXIgKmZuLCBsYW5ndWFnZSAqbGFuZykKICAgLyogSWYg
bm90IEN0YWdzLCBhbmQgaWYgdGhpcyBpcyBub3QgbWV0YXNvdXJjZSBhbmQgaWYgaXQgY29u
dGFpbmVkIG5vICNsaW5lCiAgICAgIGRpcmVjdGl2ZXMsIHdlIGNhbiB3cml0ZSB0aGUgdGFn
cyBhbmQgZnJlZSBhbGwgbm9kZXMgcG9pbnRpbmcgdG8KICAgICAgY3VyZmRwLiAqLwotICBp
ZiAoIUNUQUdTCisgIGlmICghY3RhZ3MKICAgICAgICYmIGN1cmZkcC0+dXNlY2hhcm5vCS8q
IG5vICNsaW5lIGRpcmVjdGl2ZXMgaW4gdGhpcyBmaWxlICovCiAgICAgICAmJiAhY3VyZmRw
LT5sYW5nLT5tZXRhc291cmNlKQogICAgIHsKQEAgLTIwOTIsNyArMjA5MSw3IEBAIG1ha2Vf
dGFnIChjb25zdCBjaGFyICpuYW1lLCAJLyogdGFnIG5hbWUsIG9yIE5VTEwgaWYgdW5uYW1l
ZCAqLwogICAgIGZwcmludGYgKHN0ZGVyciwgIiVzIG9uICVzOiUiUFJJZE1BWCI6ICVzXG4i
LAogCSAgICAgbmFtZWQgPyBuYW1lIDogIih1bm5hbWVkKSIsIGN1cmZkcC0+dGFnZ2VkZm5h
bWUsIGxubywgbGluZXN0YXJ0KTsKIAotICBpZiAoIUNUQUdTICYmIG5hbWVkKQkJLyogbWF5
YmUgc2V0IG5hbWVkIHRvIGZhbHNlICovCisgIGlmICghY3RhZ3MgJiYgbmFtZWQpCQkvKiBt
YXliZSBzZXQgbmFtZWQgdG8gZmFsc2UgKi8KICAgICAvKiBMZXQncyB0cnkgdG8gbWFrZSBh
biBpbXBsaWNpdCB0YWcgbmFtZSwgdGhhdCBpcywgY3JlYXRlIGFuIHVubmFtZWQgdGFnCiAg
ICAgICAgc3VjaCB0aGF0IGV0YWdzLmVsIGNhbiBndWVzcyBhIG5hbWUgZnJvbSBpdC4gKi8K
ICAgICB7CkBAIC0yMTMzLDE3ICsyMTMyLDE3IEBAIHBmbm90ZSAoY2hhciAqbmFtZSwJCS8q
IHRhZyBuYW1lLCBvciBOVUxMIGlmIHVubmFtZWQgKi8KIHsKICAgcmVnaXN0ZXIgbm9kZSAq
bnA7CiAKLSAgaWYgKChDVEFHUyAmJiBuYW1lID09IE5VTEwpCisgIGlmICgoY3RhZ3MgJiYg
bmFtZSA9PSBOVUxMKQogICAgICAgLyogV2UgdXNlZCB0byBoYXZlIGFuIGFzc2VydGlvbiBo
ZXJlIGZvciB0aGUgY2FzZSBiZWxvdywgYnV0IGlmIHdlIGhpdAogCSB0aGF0IGNhc2UsIGl0
IGp1c3QgbWVhbnMgb3VyIHBhcnNlciBnb3QgY29uZnVzZWQsIGFuZCB0aGVyZSdzIG5vdGhp
bmcKIAkgdG8gZG8gYWJvdXQgc3VjaCBlbXB0eSAidGFncyIuICAqLwotICAgICAgfHwgKCFD
VEFHUyAmJiBuYW1lICYmIG5hbWVbMF0gPT0gJ1wwJykpCisgICAgICB8fCAoIWN0YWdzICYm
IG5hbWUgJiYgbmFtZVswXSA9PSAnXDAnKSkKICAgICByZXR1cm47CiAKICAgbnAgPSB4bWFs
bG9jIChzaXplb2YgKm5wKTsKIAogICAvKiBJZiBjdGFncyBtb2RlLCBjaGFuZ2UgbmFtZSAi
bWFpbiIgdG8gTTx0aGlzZmlsZW5hbWU+LiAqLwotICBpZiAoQ1RBR1MgJiYgIWN4cmVmX3N0
eWxlICYmIHN0cmVxIChuYW1lLCAibWFpbiIpKQorICBpZiAoY3RhZ3MgJiYgIWN4cmVmX3N0
eWxlICYmIHN0cmVxIChuYW1lLCAibWFpbiIpKQogICAgIHsKICAgICAgIGNoYXIgKmZwID0g
c3RycmNociAoY3VyZmRwLT50YWdnZWRmbmFtZSwgJy8nKTsKICAgICAgIG5wLT5uYW1lID0g
Y29uY2F0ICgiTSIsIGZwID09IE5VTEwgPyBjdXJmZHAtPnRhZ2dlZGZuYW1lIDogZnAgKyAx
LCAiIik7CkBAIC0yMTY4LDcgKzIxNjcsNyBAQCBwZm5vdGUgKGNoYXIgKm5hbWUsCQkvKiB0
YWcgbmFtZSwgb3IgTlVMTCBpZiB1bm5hbWVkICovCiAgIGVsc2UKICAgICBucC0+Y25vID0g
aW52YWxpZGNoYXJubzsKICAgbnAtPmxlZnQgPSBucC0+cmlnaHQgPSBOVUxMOwotICBpZiAo
Q1RBR1MgJiYgIWN4cmVmX3N0eWxlKQorICBpZiAoY3RhZ3MgJiYgIWN4cmVmX3N0eWxlKQog
ICAgIHsKICAgICAgIGlmIChzdHJubGVuIChsaW5lc3RhcnQsIDUwKSA8IDUwKQogCW5wLT5y
ZWdleCA9IGNvbmNhdCAobGluZXN0YXJ0LCAiJCIsICIiKTsKQEAgLTIyOTUsNyArMjI5NCw3
IEBAIGFkZF9ub2RlIChub2RlICpucCwgbm9kZSAqKmN1cl9ub2RlX3ApCiAgICAgICByZXR1
cm47CiAgICAgfQogCi0gIGlmICghQ1RBR1MpCisgIGlmICghY3RhZ3MpCiAgICAgLyogRXRh
Z3MgTW9kZSAqLwogICAgIHsKICAgICAgIC8qIEZvciBlYWNoIGZpbGUgbmFtZSwgdGFncyBh
cmUgaW4gYSBsaW5rZWQgc3VibGlzdCBvbiB0aGUgcmlnaHQKQEAgLTIzOTQsNyArMjM5Myw3
IEBAIGludmFsaWRhdGVfbm9kZXMgKGZkZXNjICpiYWRmZHAsIG5vZGUgKipucHApCiAgIG5v
ZGUgKm5wID0gKm5wcDsKICAgc3RrZW50cnkgKnN0YWNrID0gTlVMTDsKIAotICBpZiAoQ1RB
R1MpCisgIGlmIChjdGFncykKICAgICB7CiAgICAgICB3aGlsZSAobnApCiAJewpAQCAtMjUw
NCw3ICsyNTAzLDcgQEAgcHV0X2VudHJ5IChub2RlICpucCkKICAgLyogT3V0cHV0IHRoaXMg
ZW50cnkgKi8KICAgaWYgKG5wLT52YWxpZCkKICAgICB7Ci0gICAgICBpZiAoIUNUQUdTKQor
ICAgICAgaWYgKCFjdGFncykKIAl7CiAJICAvKiBFdGFncyBtb2RlICovCiAJICBpZiAoZmRw
ICE9IG5wLT5mZHApCkBAIC0yNTc2LDcgKzI1NzUsNyBAQCBwdXRfZW50cmllcyAobm9kZSAq
bnApCiAgIGlmIChucCA9PSBOVUxMKQogICAgIHJldHVybjsKIAotICBpZiAoQ1RBR1MpCisg
IGlmIChjdGFncykKICAgICB7CiAgICAgICB3aGlsZSAobnApCiAJewotLSAKMi40NS4yCgo=


--------------lebYMyBJwUzUgOiVUY8mTPFp--




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

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


Received: (at 76322) by debbugs.gnu.org; 16 Feb 2025 09:31:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 16 04:31:33 2025
Received: from localhost ([127.0.0.1]:60168 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tjazt-0003MO-Ca
	for submit <at> debbugs.gnu.org; Sun, 16 Feb 2025 04:31:33 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:45150)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tjazq-0003M4-0Q
 for 76322 <at> debbugs.gnu.org; Sun, 16 Feb 2025 04:31:31 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tjazj-0001Fh-KA; Sun, 16 Feb 2025 04:31:23 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=jqgY+phBAyQZCn2iQvChxrZZB+OjUFERejskfAgdcKI=; b=RVu/FD+z/OtZ
 n9H+TmUqG+iO+Tir+dP/1hDqnjcfZM55XSWawlrie0ttwsV00xViuYVkjMpa6UuV1JqQ4HdIOVEqg
 SvxE/b5BhG5sarMU9FKboQsgaC4UnNz2uZAHLqPxxZkQld/5T3pesFOyMFmzvHBEIbuGqFPCVKdAA
 G4zI0pp5EcDqfKgeCOdlZwcGA5IbsgiCPUT23kmajvyruR1U8pUU/YOBdM+xndTu9VVFc8TXiZUFX
 kThOKmFS0+vhRzaYX6mVbXBt+JQ8nj1yb5p3RpKm3xqYCLeiRADnbDwDVn1tDNa0VtKFdiTVuv7S5
 UGMUqxRqktUdq5+Lr6btbA==;
Date: Sun, 16 Feb 2025 11:31:19 +0200
Message-Id: <864j0uck2g.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Paul Eggert <eggert@HIDDEN>
In-Reply-To: <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN> (message from
 Paul Eggert on Sun, 16 Feb 2025 00:26:02 -0800)
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN> <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <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 (---)

> Date: Sun, 16 Feb 2025 00:26:02 -0800
> Cc: 76322 <at> debbugs.gnu.org
> From: Paul Eggert <eggert@HIDDEN>
> 
> On 2025-02-15 23:12, Eli Zaretskii wrote:
> > So building Emacs on Windows and DOS will still need
> > to compile the same source twice,
> 
> How about if we compile a little .exe file that merely execs etags with 
> the --ctags option? That would be the equivalent of the script.

That'd be fine, thanks.  But we will need to invoke etags via
w32_execvp because of the problems explained in emacsclient.c where
that function is defined (which will need to be moved to ntlib.c).




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

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


Received: (at 76322) by debbugs.gnu.org; 16 Feb 2025 08:26:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 16 03:26:13 2025
Received: from localhost ([127.0.0.1]:59929 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tjZye-0002ec-Rs
	for submit <at> debbugs.gnu.org; Sun, 16 Feb 2025 03:26:13 -0500
Received: from mail.cs.ucla.edu ([131.179.128.66]:48008)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eggert@HIDDEN>)
 id 1tjZyb-0002eK-Gz
 for 76322 <at> debbugs.gnu.org; Sun, 16 Feb 2025 03:26:10 -0500
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id A17D63C00E415;
 Sun, 16 Feb 2025 00:26:03 -0800 (PST)
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP
 id DQnqIPtwdTbV; Sun, 16 Feb 2025 00:26:03 -0800 (PST)
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 2EE713C00E41C;
 Sun, 16 Feb 2025 00:26:03 -0800 (PST)
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 2EE713C00E41C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu;
 s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1739694363;
 bh=exR13w4xuEq13Q5e3dd9Z8V1FULHTC1PbckjHBIsSSU=;
 h=Message-ID:Date:MIME-Version:To:From;
 b=HxtSgqCedLPFW2SUdhKD+x1K7oaBzto6AlTxhV4POATZ4uOz+PVhzvr8BM9Thxvqt
 V0hJ3M+/VgIIXabRK73PIY7QlNyTb7TBFkVfmDyx5NKInLvg4xIpNtMZf1i6QYC7Vb
 WGemvwjfBp3oDsJoyw2w6wvP8UF3JoS610QWmqZRyicVXSLuuxDrs206ZN0/gPgVPr
 vABfHfPiWIyJRK3Xgui5YNhYOzGqmffJhZHVrZYGLKnOOv9Kqm0PgN/oiGtzgwo/mH
 V0+mUHqigSj97ThhPDj10j2NWErjOgnMjvy5Rdzl/c+ccdUXhO7rs5mCzK66j/SskD
 vTv48XJ5ztG0w==
X-Virus-Scanned: amavis at mail.cs.ucla.edu
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP
 id JApXippK9OHR; Sun, 16 Feb 2025 00:26:03 -0800 (PST)
Received: from [192.168.254.12] (unknown [47.147.225.25])
 by mail.cs.ucla.edu (Postfix) with ESMTPSA id 0D6973C00E415;
 Sun, 16 Feb 2025 00:26:03 -0800 (PST)
Message-ID: <c004c070-fcce-4f8f-802b-4763d02a4d77@HIDDEN>
Date: Sun, 16 Feb 2025 00:26:02 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
To: Eli Zaretskii <eliz@HIDDEN>
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
 <86bjv2cqhx.fsf@HIDDEN>
Content-Language: en-US
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
In-Reply-To: <86bjv2cqhx.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <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: -1.0 (-)

On 2025-02-15 23:12, Eli Zaretskii wrote:
> So building Emacs on Windows and DOS will still need
> to compile the same source twice,

How about if we compile a little .exe file that merely execs etags with 
the --ctags option? That would be the equivalent of the script.




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

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


Received: (at 76322) by debbugs.gnu.org; 16 Feb 2025 07:12:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 16 02:12:37 2025
Received: from localhost ([127.0.0.1]:59752 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tjYpQ-0004Ig-OC
	for submit <at> debbugs.gnu.org; Sun, 16 Feb 2025 02:12:37 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:50406)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tjYpO-0004IS-DG
 for 76322 <at> debbugs.gnu.org; Sun, 16 Feb 2025 02:12:35 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tjYpJ-0000VB-2K; Sun, 16 Feb 2025 02:12:29 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=rarc650hKpAOAMvrnIwLHc/bWU6aR4xVQT30nrtSmpA=; b=moaa9Ykt3wzP
 QNdncTFop7ViZMyxJYJCEodTP3NTIiJOa8ByVoJsyfdHWLQm4KfpRmHfM/v2Dx98SeM1fAUHvlPdy
 eSEb9bCZjFKH1CZ4sqJZPqVfH8b0k7vYoj03M42SEWREyUGPo072jcIEnA3mjZvxxT4az7LEzm3w1
 6NLSuMLwIwIgbWhcdB2itCKaLHR/wZxkCILjyaVFXY98zR3TyZMLUTEB/VPHl+JrVdqX8E7TsZwT7
 tPhSQEFZg2T1HJzN5DlnDzuEux+/im33EWsgwlYQE/FHiU7juAimjcpDVmFw7rcE7qreJ3uuPYeYx
 yi+rSINPsjlGeQWOzaXfPA==;
Date: Sun, 16 Feb 2025 09:12:26 +0200
Message-Id: <86bjv2cqhx.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Paul Eggert <eggert@HIDDEN>
In-Reply-To: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN> (message from
 Paul Eggert on Sat, 15 Feb 2025 21:21:00 -0800)
Subject: Re: bug#76322: Make ctags a thin wrapper around etags
References: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76322
Cc: 76322 <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 (---)

> Date: Sat, 15 Feb 2025 21:21:00 -0800
> From: Paul Eggert <eggert@HIDDEN>
> 
> ctags and etags are both built from the same source file, with a 
> different compile-time flag. This takes quite a while on my old desktop 
> when I configure with --enable-gcc-warnings as is my usual practice. 
> Also, it means two very similar executables are floating around where 
> one would do. This has long been a FIXME and I finally got annoyed by 
> the long compiles enough to do something about it. Patch attached.

Sorry, that won't fly as suggested because Unix shell scripts don't
work on Windows.  So building Emacs on Windows and DOS will still need
to compile the same source twice, and the patch needs to be changed to
do what you suggest only on Posix platforms, leaving ctags a .exe
program on DOS/Windows.  (And I'd like to avoid making ctags a batch
file on Windows, for various obscure reasons.)




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76322; Package emacs. Full text available.
Added tag(s) patch. Request was from Paul Eggert <eggert@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at submit) by debbugs.gnu.org; 16 Feb 2025 05:21:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 16 00:21:21 2025
Received: from localhost ([127.0.0.1]:59450 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tjX5k-0000nv-9g
	for submit <at> debbugs.gnu.org; Sun, 16 Feb 2025 00:21:21 -0500
Received: from lists.gnu.org ([2001:470:142::17]:49754)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eggert@HIDDEN>)
 id 1tjX5g-0000nd-5Z
 for submit <at> debbugs.gnu.org; Sun, 16 Feb 2025 00:21:18 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eggert@HIDDEN>)
 id 1tjX5a-0002bs-1F
 for bug-gnu-emacs@HIDDEN; Sun, 16 Feb 2025 00:21:10 -0500
Received: from mail.cs.ucla.edu ([131.179.128.66])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eggert@HIDDEN>)
 id 1tjX5V-0004pO-0S
 for bug-gnu-emacs@HIDDEN; Sun, 16 Feb 2025 00:21:09 -0500
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 160453C00E415
 for <bug-gnu-emacs@HIDDEN>; Sat, 15 Feb 2025 21:21:02 -0800 (PST)
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP
 id OqUD1LHZitC2 for <bug-gnu-emacs@HIDDEN>;
 Sat, 15 Feb 2025 21:21:00 -0800 (PST)
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id DB9873C00E41C
 for <bug-gnu-emacs@HIDDEN>; Sat, 15 Feb 2025 21:21:00 -0800 (PST)
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu DB9873C00E41C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu;
 s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1739683260;
 bh=dkKuwfa3rj9ME911XA87sh+i9mey2DKCFi56EGeDCVw=;
 h=Message-ID:Date:MIME-Version:To:From;
 b=EDNM58DPp2J7B2YhgbOntmlQoktcMtDbmZ+I84tXUZxgoCu5jqS5YgGQZYr6BqVqQ
 zKjzBVCBSVk4o77yU6f3GnXDcFpeuueG1l0Yc5a251GMOG3I9BFhNy1RXoai15AM5u
 5mC16mY8X33lzOlUlffm1mzwAYNDDgP6WWLq8uYVciFXl1NZ261GJJjTNtqBQuGROH
 B9Xsee33KtQ0+P40Zv9pZFc3uaHlCAN1o/4z5wwPuO65xu//2fXOt2lTodxp/YuvJP
 qLuKxf2DysYTaUrJvO5Y9Ic81n4yR/Zk7gAZmU/xAWaJiKBpGPJ9+4D0Hw7rpH07L7
 sHw80+Hu5hjcw==
X-Virus-Scanned: amavis at mail.cs.ucla.edu
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP
 id ws0peilm0PTM for <bug-gnu-emacs@HIDDEN>;
 Sat, 15 Feb 2025 21:21:00 -0800 (PST)
Received: from [192.168.254.12] (unknown [47.147.225.25])
 by mail.cs.ucla.edu (Postfix) with ESMTPSA id BB4163C00E415
 for <bug-gnu-emacs@HIDDEN>; Sat, 15 Feb 2025 21:21:00 -0800 (PST)
Content-Type: multipart/mixed; boundary="------------dnnF13bq50zKGWyjX7a2gd5u"
Message-ID: <06f7198c-4191-476e-a0c0-c781b119330b@HIDDEN>
Date: Sat, 15 Feb 2025 21:21:00 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Emacs bug reports and feature requests <bug-gnu-emacs@HIDDEN>
From: Paul Eggert <eggert@HIDDEN>
Subject: Make ctags a thin wrapper around etags
Organization: UCLA Computer Science Department
Received-SPF: pass client-ip=131.179.128.66; envelope-from=eggert@HIDDEN;
 helo=mail.cs.ucla.edu
X-Spam_score_int: -19
X-Spam_score: -2.0
X-Spam_bar: --
X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
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: -0.0 (/)

This is a multi-part message in MIME format.
--------------dnnF13bq50zKGWyjX7a2gd5u
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

ctags and etags are both built from the same source file, with a 
different compile-time flag. This takes quite a while on my old desktop 
when I configure with --enable-gcc-warnings as is my usual practice. 
Also, it means two very similar executables are floating around where 
one would do. This has long been a FIXME and I finally got annoyed by 
the long compiles enough to do something about it. Patch attached.
--------------dnnF13bq50zKGWyjX7a2gd5u
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-Make-ctags-a-thin-wrapper-around-etags.patch"
Content-Disposition: attachment;
 filename="0001-Make-ctags-a-thin-wrapper-around-etags.patch"
Content-Transfer-Encoding: base64

RnJvbSA4YzMyMzRkMjU0NjE3ZWFhY2VkMjFhMzQzMWJhYWE4ODFmOGJiNDgyIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBTYXQsIDE1IEZlYiAyMDI1IDE0OjU4OjU0IC0wODAwClN1YmplY3Q6IFtQQVRD
SF0gTWFrZSBjdGFncyBhIHRoaW4gd3JhcHBlciBhcm91bmQgZXRhZ3MKClRoaXMgZml4ZXMg
YSBGSVhNRSBpbiBsaWItc3JjL01ha2VmaWxlLmluIGFuZCBzcGVlZHMgdXAgY29tcGlsYXRp
b24KcXVpdGUgYSBiaXQgb24gbXkgb2xkZXIgQ1BVIHdoZW4gSSBjb21waWxlIHdpdGgJLS1l
bmFibGUtZ2NjLXdhcm5pbmdzLgpJdCBhbHNvIGxlc3NlbnMgaW5zdGFsbGF0aW9uIGFuZCBy
dW50aW1lIGZvb3RwcmludC4KKiAuZ2l0aWdub3JlOiBEbyBub3QgaWdub3JlIGxpYi1zcmMv
Y3RhZ3MuCiogamF2YS9NYWtlZmlsZS5pbiAoaW5zdGFsbF90ZW1wKTogVHJlYXQgY3RhZ3Mg
bGlrZSByY3MybG9nLgoqIGxpYi1zcmMvTWFrZWZpbGUuaW4gKElOU1RBTExBQkxFX0VYRVMs
IElOU1RBTExBQkxFX1NDUklQVFMpOgpOZXcgbWFjcm9zLCByZXBsYWNpbmcgSU5TVEFMTEFC
TEVTLiAgQWxsIHVzZXMgY2hhbmdlZC4KKFVUSUxJVFlfRVhFUywgVVRJTElUWV9TQ1JJUFRT
KTogTGlrZXdpc2UsIHJlcGxhY2luZyBVVElMSVRJRVMuCihjdGFncyR7RVhFRVhUfSk6IFJl
bW92ZSBydWxlLCBhcyBpdCBpcyBub3cgYSBkaXN0cmlidXRlZCBzY3JpcHQuCiogbGliLXNy
Yy9jdGFnczogTmV3IHNoZWxsIGZpbGUuCiogbGliLXNyYy9jdGFncy5jOiBSZW1vdmUuCiog
bGliLXNyYy9ldGFncy5jIChDVEFHUyk6IFJlbW92ZS4gIEFsbCB1c2VzIHJlcGxhY2VkIGJ5
IC4uLgooY3RhZ3MpOiAuLi4gdGhpcyBuZXcgc3RhdGljIHZhci4KKFNURElOKTogUmVtb3Zl
IG1hY3JvLiAgQWxsIHVzZXMgcmVwbGFjZWQgYnkgbmV3IFNURElOX09QVElPTiBjb25zdGFu
dC4KKENUQUdTX09QVElPTiwgU1RESU5fT1BUSU9OKTogTmV3IGNvbnRhbnRzLgoobG9uZ29w
dHMpOiBOZXcgLS1jdGFncyBvcHRpb24uCihjdGFnc19kZWZhdWx0X0NfaGVscCk6IE5ldyBj
b25zdGFudCwKdG8gb3ZlcnJpZGUgZGVmYXVsdF9DX2hlbHAgYXQgcnVudGltZS4KKGRlZmF1
bHRfQ19oZWxwKTogTm93IGFsd2F5cyB0aGUgZXRhZ3MgdmVyc2lvbi4KKENfTEFOR19OQU1F
U19JTkRFWCk6IE5ldyBtYWNyby4KKHByaW50X2xhbmd1YWdlX25hbWVzKTogRG8gbm90IGFz
c3VtZSBldGFncy4KKFBST0dSQU1fTkFNRSk6IFJlbW92ZS4gIEFsbCB1c2VzIHJlbW92ZWQu
CihwcmludF9oZWxwKTogRG9jdW1lbnQgLS1jdGFncyBpZiBQUklOVF9VTkRPQ1VNRU5URURf
T1BUSU9OU19IRUxQLgoobWFpbik6IFN1cHBvcnQgbmV3IC0tY3RhZ3Mgb3B0aW9uLCBhbmQg
c3VwcG9ydCBhbGwgW2NlXXRhZ3Mgb3B0aW9ucy4KLS0tCiAuZ2l0aWdub3JlICAgICAgICAg
IHwgICAxIC0KIGV0Yy9ORVdTICAgICAgICAgICAgfCAgIDMgKwogZXRjL1BST0JMRU1TICAg
ICAgICB8ICAgNCArLQogamF2YS9NYWtlZmlsZS5pbiAgICB8ICAgNyArKy0KIGxpYi1zcmMv
TWFrZWZpbGUuaW4gfCAgNDEgKysrKysrKystLS0tLS0KIGxpYi1zcmMvY3RhZ3MgICAgICAg
fCAgIDIgKwogbGliLXNyYy9jdGFncy5jICAgICB8ICAgMiAtCiBsaWItc3JjL2V0YWdzLmMg
ICAgIHwgMTMxICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiA4IGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspLCA5MCBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDc1NSBsaWItc3JjL2N0YWdzCiBkZWxldGUgbW9kZSAxMDA2NDQg
bGliLXNyYy9jdGFncy5jCgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUK
aW5kZXggZTYzMDllZDBiMWYuLmE1NmRlZjA1ZTRhIDEwMDY0NAotLS0gYS8uZ2l0aWdub3Jl
CisrKyBiLy5naXRpZ25vcmUKQEAgLTIyOSw3ICsyMjksNiBAQCBhLm91dAogbGliLXNyYy9h
c3NldC1kaXJlY3RvcnktdG9vbAogbGliLXNyYy9iZS1yZXNvdXJjZXMKIGxpYi1zcmMvYmxl
c3NtYWlsCi1saWItc3JjL2N0YWdzCiBsaWItc3JjL2Vicm93c2UKIGxpYi1zcmMvZW1hY3Nj
bGllbnQKIGxpYi1zcmMvZXRhZ3MKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MK
aW5kZXggNmQ5MzRiMjAyOWMuLjIyMzE2YTFmMmE2IDEwMDY0NAotLS0gYS9ldGMvTkVXUwor
KysgYi9ldGMvTkVXUwpAQCAtMjksNiArMjksOSBAQCBhcHBsaWVzLCBhbmQgcGxlYXNlIGFs
c28gdXBkYXRlIGRvY3N0cmluZ3MgYXMgbmVlZGVkLgogVGhlIHRyYWRpdGlvbmFsIHVuZXhl
YyBkdW1wZXIsIGRlcHJlY2F0ZWQgc2luY2UgRW1hY3MgMjcsIGhhcyBiZWVuCiByZW1vdmVk
LgogCisqKiBjdGFncyBpcyBub3cgbWVyZWx5IGEgdGhpbiBzaGVsbCBzY3JpcHQgd3JhcHBl
ciBhcm91bmQgZXRhZ3MuCitUaGlzIHNwZWVkcyB1cCBjb21waWxhdGlvbiBhbmQgbGVzc2Vu
cyBpbnN0YWxsYXRpb24gZm9vdHByaW50LgorCiAqKiBDaGFuZ2VkIEdDQyBkZWZhdWx0IG9w
dGlvbnMgb24gMzItYml0IHg4NiBzeXN0ZW1zLgogV2hlbiB1c2luZyBHQ0MgNCBvciBsYXRl
ciB0byBidWlsZCBFbWFjcyBvbiAzMi1iaXQgeDg2IHN5c3RlbXMsCiAnY29uZmlndXJlJyBu
b3cgZGVmYXVsdHMgdG8gdXNpbmcgdGhlIEdDQyBvcHRpb25zICctbWZwbWF0aD1zc2UnIChp
ZiB0aGUKZGlmZiAtLWdpdCBhL2V0Yy9QUk9CTEVNUyBiL2V0Yy9QUk9CTEVNUwppbmRleCA1
ZmRiNGJkOTVkYi4uNGM4NWRiYjdkYTggMTAwNjQ0Ci0tLSBhL2V0Yy9QUk9CTEVNUworKysg
Yi9ldGMvUFJPQkxFTVMKQEAgLTM5NDcsNyArMzk0Nyw3IEBAIFRoZXJlIGFyZSBzZXZlcmFs
IGtub3duIHdvcmthcm91bmRzOgogCiBUaGUgbGlua2VyIGVycm9yIG1lc3NhZ2VzIGxvb2sg
bGlrZSB0aGlzOgogCi0gb28tc3BkL2kzODYvY3RhZ3MubzpjdGFncy5jOigudGV4dCsweDE1
NmUpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfaW1wX19yZV9zZXRfc3ludGF4JworIG9v
LXNwZC9pMzg2L2V0YWdzLm86ZXRhZ3MuYzooLnRleHQrMHgxNTZlKTogdW5kZWZpbmVkIHJl
ZmVyZW5jZSB0byBgX2ltcF9fcmVfc2V0X3N5bnRheCcKICBjb2xsZWN0MjogbGQgcmV0dXJu
ZWQgMSBleGl0IHN0YXR1cwogCiBUaGlzIGhhcHBlbnMgYmVjYXVzZSBHQ0MgZmluZHMgYW4g
aW5jb21wYXRpYmxlIHJlZ2V4LmggaGVhZGVyCkBAIC0zOTc4LDcgKzM5NzgsNyBAQCBTb21l
IHZlcnNpb25zIG9mIG1pbmd3MzIgbWFrZSBvbiBzb21lIHZlcnNpb25zIG9mIFdpbmRvd3Mg
ZG8gbm90IHNlZW0KIHRvIGRldGVjdCB0aGUgc2hlbGwgY29ycmVjdGx5LiAgVHJ5ICJtYWtl
IFNIRUxMPWNtZC5leGUiLCBvciBpZiB0aGF0CiBmYWlscywgdHJ5IHJ1bm5pbmcgbWFrZSBm
cm9tIEN5Z3dpbiBiYXNoIGluc3RlYWQuCiAKLSoqKiBCdWlsZGluZyAnY3RhZ3MnIGZvciBN
Uy1XaW5kb3dzIHdpdGggdGhlIE1pbkdXIHBvcnQgb2YgR0NDIGZhaWxzLgorKioqIEJ1aWxk
aW5nICdldGFncycgZm9yIE1TLVdpbmRvd3Mgd2l0aCB0aGUgTWluR1cgcG9ydCBvZiBHQ0Mg
ZmFpbHMuCiAKIFRoaXMgbWlnaHQgaGFwcGVuIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgTWluR1cg
aGVhZGVyIGFzc2VydC5oLCB3aGljaAogZGVmaW5lcyB0aGUgJ2Fzc2VydCcgbWFjcm8gd2l0
aCBhIHRyYWlsaW5nIHNlbWktY29sb24uICBUaGUgZm9sbG93aW5nCmRpZmYgLS1naXQgYS9q
YXZhL01ha2VmaWxlLmluIGIvamF2YS9NYWtlZmlsZS5pbgppbmRleCAzOWQ2ZTg1YzdhNy4u
MjFhYzRlNDI1MGQgMTAwNjQ0Ci0tLSBhL2phdmEvTWFrZWZpbGUuaW4KKysrIGIvamF2YS9N
YWtlZmlsZS5pbgpAQCAtMzA1LDggKzMwNSwxMyBAQCBpbnN0YWxsX3RlbXA6CiAJICAgIGNw
IC1mICQkZmlsZSBpbnN0YWxsX3RlbXAvbGliLyQoQU5EUk9JRF9BQkkpOwlcCiAJICBmaSAJ
CQkJCQkJXAogCWRvbmUKLSMgTmV4dCwgcHJvZHVjZSBhIHZlcnNpb24gb2YgcmNzMmxvZyBi
ZWZpdHRpbmcgQW5kcm9pZCdzIG5hbWluZworIyBOZXh0LCBwcm9kdWNlIHZlcnNpb25zIG9m
IGN0YWdzIGFuZCByY3MybG9nIGJlZml0dGluZyBBbmRyb2lkJ3MgbmFtaW5nCiAjIGNvbnZl
bnRpb25zIGFuZCBzaGVsbCBpbnRlcnByZXRlciBsb2NhdGlvbi4KKwkkKEFNX1ZfYXQpIFwK
KwlzZWQgJ3N8L2Jpbi9zaHwvc3lzdGVtL2Jpbi9zaHwnCQkJCQlcCisJICQodG9wX3NyY2Rp
cikvbGliLXNyYy9jdGFncyA+CQkJCQlcCisJIGluc3RhbGxfdGVtcC9saWIvJChBTkRST0lE
X0FCSSkvbGliY3RhZ3Muc28KKwkkKEFNX1ZfYXQpIGNobW9kICt4IGluc3RhbGxfdGVtcC9s
aWIvJChBTkRST0lEX0FCSSkvbGliY3RhZ3Muc28KIAkkKEFNX1ZfYXQpIFwKIAlzZWQgJ3N8
L2Jpbi9zaHwvc3lzdGVtL2Jpbi9zaHwnCQkJCQlcCiAJICQodG9wX3NyY2RpcikvbGliLXNy
Yy9yY3MybG9nID4JCQkJXApkaWZmIC0tZ2l0IGEvbGliLXNyYy9NYWtlZmlsZS5pbiBiL2xp
Yi1zcmMvTWFrZWZpbGUuaW4KaW5kZXggNDM5ZDlhMWE1MmQuLjY0MzA3YTU5MThjIDEwMDY0
NAotLS0gYS9saWItc3JjL01ha2VmaWxlLmluCisrKyBiL2xpYi1zcmMvTWFrZWZpbGUuaW4K
QEAgLTE1NSwxMiArMTU1LDEzIEBAIEFORFJPSUQ9CiBDTElFTlRXID0gQENMSUVOVFdACiAK
ICMgVGhpbmdzIHRoYXQgYSB1c2VyIG1pZ2h0IGFjdHVhbGx5IHJ1biwgd2hpY2ggc2hvdWxk
IGJlIGluc3RhbGxlZCBpbiBiaW5kaXIuCi1JTlNUQUxMQUJMRVMgPSBldGFncyR7RVhFRVhU
fSBjdGFncyR7RVhFRVhUfSBlbWFjc2NsaWVudCR7RVhFRVhUfSAkKENMSUVOVFcpIFwKK0lO
U1RBTExBQkxFX0VYRVMgPSBldGFncyR7RVhFRVhUfSBlbWFjc2NsaWVudCR7RVhFRVhUfSAk
KENMSUVOVFcpIFwKICAgICAgICAgICAgICAgIGVicm93c2Uke0VYRUVYVH0KK0lOU1RBTExB
QkxFX1NDUklQVFMgPSBjdGFncwogCiAjIFRoaW5ncyB0aGF0IEVtYWNzIHJ1bnMgaW50ZXJu
YWxseSwgb3IgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLAogIyAgd2hpY2ggc2hvdWxkIG5v
dCBiZSBpbnN0YWxsZWQgaW4gYmluZGlyLgotVVRJTElUSUVTID0gaGV4bCR7RVhFRVhUfSAJ
CQkgCSBcCitVVElMSVRZX0VYRVMgPSBoZXhsJHtFWEVFWFR9IFwKIAkgICAgJChpZiAkKHdp
dGhfbWFpbHV0aWxzKSwgLCBtb3ZlbWFpbCR7RVhFRVhUfSkgXAogICAgICAgICAgICAgJChh
bmQgJCh1c2VfZ2FtZWRpciksIHVwZGF0ZS1nYW1lLXNjb3JlJHtFWEVFWFR9KQogCkBAIC0x
NzUsMTIgKzE3NiwxMiBAQCBET05UX0lOU1RBTEw9CiBlbmRpZgogZW5kaWYKIAotIyBMaWtl
IFVUSUxJVElFUywgYnV0IHRoZXkncmUgbm90IHN5c3RlbS1kZXBlbmRlbnQsIGFuZCBzaG91
bGQgbm90IGJlCisjIExpa2UgVVRJTElUWV9FWEVTLCBidXQgdGhleSdyZSBub3Qgc3lzdGVt
LWRlcGVuZGVudCwgYW5kIHNob3VsZCBub3QgYmUKICMgIGRlbGV0ZWQgYnkgdGhlIGRpc3Rj
bGVhbiB0YXJnZXQuCi1TQ1JJUFRTPSByY3MybG9nCitVVElMSVRZX1NDUklQVFM9IHJjczJs
b2cKIAogIyBBbGwgZmlsZXMgdGhhdCBhcmUgY3JlYXRlZCBieSB0aGUgbGlua2VyLCBpLmUu
LCB3aG9zZSBuYW1lcyBlbmQgaW4gJHtFWEVFWFR9LgotRVhFX0ZJTEVTID0gJHtJTlNUQUxM
QUJMRVN9ICR7VVRJTElUSUVTfSAke0RPTlRfSU5TVEFMTH0KK0VYRV9GSUxFUyA9ICR7SU5T
VEFMTEFCTEVfRVhFU30gJHtVVElMSVRZX0VYRVN9ICR7RE9OVF9JTlNUQUxMfQogCiAjIFNw
ZWNpZnkgYWRkaXRpb25hbCAtRCBmbGFncyBmb3IgbW92ZW1haWwuIE9wdGlvbnM6CiAjIC1E
TUFJTF9VU0VfRkxPQ0sgb3IgLURNQUlMX1VTRV9MT0NLRiAodXNlIGZsb2NrIG9yIGxvY2tm
IGZvciBmaWxlIGxvY2tpbmcpLgpAQCAtMjgzLDcgKzI4NCw3IEBAIEFMTF9DWFhGTEFHUyA9
CiAjIENvbmZpZ3VyYXRpb24gZmlsZXMgZm9yIC5vIGZpbGVzIHRvIGRlcGVuZCBvbi4KIGNv
bmZpZ19oID0gLi4vc3JjL2NvbmZpZy5oICQoc3JjZGlyKS8uLi9zcmMvY29uZl9wb3N0LmgK
IAotYWxsOiAke0VYRV9GSUxFU30gJHtTQ1JJUFRTfQorYWxsOiAke0VYRV9GSUxFU30gJHtJ
TlNUQUxMQUJMRV9TQ1JJUFRTfSAke1VUSUxJVFlfU0NSSVBUU30KIAogaWZlcSAoJChTRUND
T01QX0ZJTFRFUiksMSkKIGFsbDogc2VjY29tcC1maWx0ZXIuYnBmIHNlY2NvbXAtZmlsdGVy
LWV4ZWMuYnBmCkBAIC0zMjQsNyArMzI1LDcgQEAgJChERVNURElSKSR7YXJjaGxpYmRpcn06
CiAJdW1hc2sgMDIyICYmICR7TUtESVJfUH0gIiQoREVTVERJUikke2FyY2hsaWJkaXJ9Igog
CWV4cF9hcmNobGliZGlyPWBjZCAiJChERVNURElSKSR7YXJjaGxpYmRpcn0iICYmIHB3ZCAt
UGAgJiYgXAogCWlmIFsgIiQkZXhwX2FyY2hsaWJkaXIiICE9ICJgcHdkIC1QYCIgXTsgdGhl
biBcCi0JICBmb3IgZmlsZSBpbiAke1VUSUxJVElFU307IGRvIFwKKwkgIGZvciBmaWxlIGlu
ICR7VVRJTElUWV9FWEVTfTsgZG8gXAogCSAgICAkKElOU1RBTExfUFJPR1JBTSkgJChJTlNU
QUxMX1NUUklQKSAkJGZpbGUgXAogCSAgICAgICIkKERFU1RESVIpJHthcmNobGliZGlyfS8k
JGZpbGUiIHx8IGV4aXQ7IFwKIAkgIGRvbmUgOyBcCkBAIC0zNTEsNyArMzUyLDcgQEAgJChE
RVNURElSKSR7YXJjaGxpYmRpcn06CiAgIGVuZGlmCiAJZXhwX2FyY2hsaWJkaXI9YGNkICIk
KERFU1RESVIpJHthcmNobGliZGlyfSIgJiYgcHdkIC1QYCAmJiBcCiAJaWYgWyAiJCRleHBf
YXJjaGxpYmRpciIgIT0gImBjZCAke3NyY2Rpcn0gJiYgcHdkIC1QYCIgXTsgdGhlbiBcCi0J
ICBmb3IgZmlsZSBpbiAke1NDUklQVFN9OyBkbyBcCisJICBmb3IgZmlsZSBpbiAke1VUSUxJ
VFlfU0NSSVBUU307IGRvIFwKIAkgICAgJChJTlNUQUxMX1NDUklQVCkgJHtzcmNkaXJ9LyQk
ZmlsZSBcCiAJICAgICAgIiQoREVTVERJUikke2FyY2hsaWJkaXJ9LyQkZmlsZSIgfHwgZXhp
dDsgXAogCSAgZG9uZSA7IFwKQEAgLTM2NCwyMiArMzY1LDMzIEBAIGluc3RhbGw6CiAJJChp
bmZvICQuKQogCSQoaW5mbyBJbnN0YWxsaW5nIHV0aWxpdGllcyBmb3IgdXNlcnMgdG8gcnVu
LikKIAl1bWFzayAwMjIgJiYgJHtNS0RJUl9QfSAiJChERVNURElSKSR7YmluZGlyfSIKLQlm
b3IgZmlsZSBpbiAke0lOU1RBTExBQkxFU30gOyBkbyBcCisJZm9yIGZpbGUgaW4gJHtJTlNU
QUxMQUJMRV9FWEVTfSA7IGRvIFwKIAkgICQoSU5TVEFMTF9QUk9HUkFNKSAkKElOU1RBTExf
U1RSSVApICQke2ZpbGV9IFwKIAkgICAgIiQoREVTVERJUikke2JpbmRpcn0iL2AgXAogCSAg
ICAgIGVjaG8gJCR7ZmlsZX0gfCBzZWQgLWUgJ3MvJHtFWEVFWFR9JCQvLycgLWUgJyQoVFJB
TlNGT1JNKScgXAogCSAgICBgJHtFWEVFWFR9IHx8IGV4aXQ7IFwKIAlkb25lCisJZm9yIGZp
bGUgaW4gJHtJTlNUQUxMQUJMRV9TQ1JJUFRTfSA7IGRvIFwKKwkgICQoSU5TVEFMTF9QUk9H
UkFNKSAkJHtmaWxlfSBcCisJICAgICIkKERFU1RESVIpJHtiaW5kaXJ9Ii9gIFwKKwkgICAg
ICBlY2hvICQke2ZpbGV9IHwgc2VkIC1lICckKFRSQU5TRk9STSknIFwKKwkgICAgYCB8fCBl
eGl0OyBcCisJZG9uZQogCiB1bmluc3RhbGw6Ci0JZm9yIGZpbGUgaW4gJHtJTlNUQUxMQUJM
RVN9OyBkbyBcCisJZm9yIGZpbGUgaW4gJHtJTlNUQUxMQUJMRV9FWEVTfTsgZG8gXAogCSAg
cm0gLWYgIiQoREVTVERJUikke2JpbmRpcn0iL2AgXAogCSAgICBlY2hvICQke2ZpbGV9IHwg
c2VkIC1lICdzLyR7RVhFRVhUfSQkLy8nIC1lICckKFRSQU5TRk9STSknIFwKIAkgIGAke0VY
RUVYVH07IFwKIAlkb25lCisJZm9yIGZpbGUgaW4gJHtJTlNUQUxMQUJMRV9TQ1JJUFRTfTsg
ZG8gXAorCSAgcm0gLWYgIiQoREVTVERJUikke2JpbmRpcn0iL2AgXAorCSAgICBlY2hvICQk
e2ZpbGV9IHwgc2VkIC1lICckKFRSQU5TRk9STSknIFwKKwkgIGA7IFwKKwlkb25lCiAJaWYg
WyAtZCAiJChERVNURElSKSR7YXJjaGxpYmRpcn0iIF07IHRoZW4gXAogCSAgY2QgIiQoREVT
VERJUikke2FyY2hsaWJkaXJ9IiAmJiBcCi0JICBybSAtZiAke1VUSUxJVElFU30gJHtTQ1JJ
UFRTfTsgXAorCSAgcm0gLWYgJHtVVElMSVRZX0VYRVN9ICR7VVRJTElUWV9TQ1JJUFRTfTsg
XAogCWZpCiAKIG1vc3RseWNsZWFuOgpAQCAtNDE1LDEzICs0MjcsNiBAQCBldGFnc19saWJz
ID0KIGV0YWdzJHtFWEVFWFR9OiAke2V0YWdzX2RlcHN9CiAJJChBTV9WX0NDTEQpJChDQykg
JHtBTExfQ0ZMQUdTfSAtbyAkQCAkPCAkKGV0YWdzX2xpYnMpCiAKLSMjIGN0YWdzLmMgaXMg
ZGlzdGluY3QgZnJvbSBldGFncy5jIHNvIHRoYXQgcGFyYWxsZWwgbWFrZXMgZG8gbm90IHdy
aXRlIHR3bwotIyMgZXRhZ3MubyBmaWxlcyBvbiB0b3Agb2YgZWFjaCBvdGhlci4KLSMjIEZJ
WE1FPwotIyMgQ2FuJ3Qgd2UgdXNlIGEgd3JhcHBlciB0aGF0IGNhbGxzICdldGFncyAtLWN0
YWdzJz8KLWN0YWdzJHtFWEVFWFR9OiAke3NyY2Rpcn0vY3RhZ3MuYyAke2V0YWdzX2RlcHN9
Ci0JJChBTV9WX0NDTEQpJChDQykgJHtBTExfQ0ZMQUdTfSAtbyAkQCAkPCAkKGV0YWdzX2xp
YnMpCi0KIGFzc2V0LWRpcmVjdG9yeS10b29sJHtFWEVFWFR9OiAke3NyY2Rpcn0vYXNzZXQt
ZGlyZWN0b3J5LXRvb2wuYyAkKGNvbmZpZ19oKQogCSQoQU1fVl9DQ0xEKSQoQ0MpICR7QUxM
X0NGTEFHU30gJDwgJChMT0FETElCRVMpIC1vICRACiAKZGlmZiAtLWdpdCBhL2xpYi1zcmMv
Y3RhZ3MgYi9saWItc3JjL2N0YWdzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwLi45Y2M5NWY3OWIwMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYi1zcmMvY3RhZ3MK
QEAgLTAsMCArMSwyIEBACisjIS9iaW4vc2gKK2V4ZWMgZXRhZ3MgLS1jdGFncz0iJDAiICIk
QCIKZGlmZiAtLWdpdCBhL2xpYi1zcmMvY3RhZ3MuYyBiL2xpYi1zcmMvY3RhZ3MuYwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE2ODM4YTlkYmIuLjAwMDAwMDAwMDAwCi0t
LSBhL2xpYi1zcmMvY3RhZ3MuYworKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotI2Rl
ZmluZSBDVEFHUyAxCi0jaW5jbHVkZSAiZXRhZ3MuYyIKZGlmZiAtLWdpdCBhL2xpYi1zcmMv
ZXRhZ3MuYyBiL2xpYi1zcmMvZXRhZ3MuYwppbmRleCBiNTliNzBjOWVjNy4uZGFhNTFjMTI1
ZDQgMTAwNjQ0Ci0tLSBhL2xpYi1zcmMvZXRhZ3MuYworKysgYi9saWItc3JjL2V0YWdzLmMK
QEAgLTEyNiwxNiArMTI2LDYgQEAgQ29weXJpZ2h0IChDKSAxOTg0LCAxOTg3LTE5ODksIDE5
OTMtMTk5NSwgMTk5OC0yMDI1IEZyZWUgU29mdHdhcmUKICNpbmNsdWRlIDxnZXRvcHQuaD4K
ICNpbmNsdWRlIDxyZWdleC5oPgogCi0vKiBEZWZpbmUgQ1RBR1MgdG8gbWFrZSB0aGUgcHJv
Z3JhbSAiY3RhZ3MiIGNvbXBhdGlibGUgd2l0aCB0aGUgdXN1YWwgb25lLgotIExlYXZlIGl0
IHVuZGVmaW5lZCB0byBtYWtlIHRoZSBwcm9ncmFtICJldGFncyIsIHdoaWNoIG1ha2VzIGVt
YWNzLXN0eWxlCi0gdGFnIHRhYmxlcyBhbmQgdGFncyB0eXBlZGVmcywgI2RlZmluZXMgYW5k
IHN0cnVjdC91bmlvbi9lbnVtIGJ5IGRlZmF1bHQuICovCi0jaWZkZWYgQ1RBR1MKLSMgdW5k
ZWYgIENUQUdTCi0jIGRlZmluZSBDVEFHUyB0cnVlCi0jZWxzZQotIyBkZWZpbmUgQ1RBR1Mg
ZmFsc2UKLSNlbmRpZgotCiAvKiBEZWZpbmUgTUVSQ1VSWV9IRVVSSVNUSUNTX1JBVElPIGFz
IGl0IHdhcyBuZWNlc3NhcnkgdG8gZGlzYW1iaWd1YXRlCiAgICBNZXJjdXJ5IGZyb20gT2Jq
ZWN0aXZlIEMsIHdoaWNoIGhhdmUgc2FtZSBmaWxlIGV4dGVuc2lvbnMgLm0KICAgIFNlZSBj
b21tZW50cyBiZWZvcmUgZnVuY3Rpb24gdGVzdF9vYmpjX2lzX21lcmN1cnkgZm9yIGRldGFp
bHMuICAqLwpAQCAtNDc5LDE4ICs0NjksMjAgQEAgI2RlZmluZSB4cm5ldyhvcCwgbiwgbSkg
KChvcCkgPSB4bnJlYWxsb2MgKG9wLCBuLCAobSkgKiBzaXplb2YgKihvcCkpKQogc3RhdGlj
IGJvb2wgaWdub3JlaW5kZW50OwkvKiAtSTogaWdub3JlIGluZGVudGF0aW9uIGluIEMgKi8K
IHN0YXRpYyBpbnQgcGFja2FnZXNfb25seTsJLyogLS1wYWNrYWdlcy1vbmx5OiBpbiBBZGEs
IG9ubHkgdGFnIHBhY2thZ2VzKi8KIHN0YXRpYyBpbnQgY2xhc3NfcXVhbGlmeTsJLyogLVE6
IHByb2R1Y2UgY2xhc3MtcXVhbGlmaWVkIHRhZ3MgaW4gQysrL0phdmEgKi8KK3N0YXRpYyBi
b29sIGN0YWdzOwkJLyogLS1jdGFncyAqLwogc3RhdGljIGludCBkZWJ1ZzsJCS8qIC0tZGVi
dWcgKi8KIHN0YXRpYyBpbnQgZmFsbGJhY2tfbGFuZzsJLyogLS0obm8tKWZhbGxiYWNrLWxh
bmc6IEZvcnRyYW4vQyBmYWxsYmFja3MgKi8KIHN0YXRpYyBpbnQgZW1wdHlfZmlsZXM7CQkv
KiAtLShuby0pZW1wdHktZmlsZS1lbnRyaWVzICovCi0KLS8qIFNURElOIGlzIGRlZmluZWQg
aW4gTHlueE9TIHN5c3RlbSBoZWFkZXJzICovCi0jaWZkZWYgU1RESU4KLSMgdW5kZWYgU1RE
SU4KLSNlbmRpZgotCi0jZGVmaW5lIFNURElOIDB4MTAwMQkJLyogcmV0dXJuZWQgYnkgZ2V0
b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAqLwogc3RhdGljIGJvb2wgcGFyc2luZ19zdGRp
bjsJLyogLS1wYXJzZS1zdGRpbiB1c2VkICovCiAKKy8qIEZvciBsb25nIG9wdGlvbnMgdGhh
dCBoYXZlIG5vIGVxdWl2YWxlbnQgc2hvcnQgb3B0aW9uLCB1c2UgYQorICAgbm9uLWNoYXJh
Y3RlciBhcyBhIHBzZXVkbyBzaG9ydCBvcHRpb24sIHN0YXJ0aW5nIHdpdGggQ0hBUl9NQVgg
KyAxLiAgKi8KK2VudW0KKyAgeworICAgIENUQUdTX09QVElPTiA9IENIQVJfTUFYICsgMSwK
KyAgICBTVERJTl9PUFRJT04KKyAgfTsKKwogc3RhdGljIHJlZ2V4cCAqcF9oZWFkOwkJLyog
bGlzdCBvZiBhbGwgcmVnZXhwcyAqLwogc3RhdGljIGJvb2wgbmVlZF9maWxlYnVmOwkvKiBz
b21lIHJlZ2V4ZXMgYXJlIG11bHRpLWxpbmUgKi8KIApAQCAtNDk5LDYgKzQ5MSw3IEBAICNk
ZWZpbmUgU1RESU4gMHgxMDAxCQkvKiByZXR1cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAtLXBh
cnNlLXN0ZGluICovCiAgIHsgImFwcGVuZCIsICAgICAgICAgICAgIG5vX2FyZ3VtZW50LCAg
ICAgICBOVUxMLCAgICAgICAgICAgICAgICdhJyAgIH0sCiAgIHsgInBhY2thZ2VzLW9ubHki
LCAgICAgIG5vX2FyZ3VtZW50LCAgICAgICAmcGFja2FnZXNfb25seSwgICAgIDEgICAgIH0s
CiAgIHsgImMrKyIsICAgICAgICAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAg
ICAgICAgICAgICAgICdDJyAgIH0sCisgIHsgImN0YWdzIiwgICAgICAgICAgICAgIHJlcXVp
cmVkX2FyZ3VtZW50LCBOVUxMLCAgICAgICAgQ1RBR1NfT1BUSU9OIH0sCiAgIHsgImRlYnVn
IiwgICAgICAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAgICAmZGVidWcsICAgICAgICAgICAg
IDEgICAgIH0sCiAgIHsgImRlY2xhcmF0aW9ucyIsICAgICAgIG5vX2FyZ3VtZW50LCAgICAg
ICAmZGVjbGFyYXRpb25zLCAgICAgIDEgICAgIH0sCiAgIHsgIm5vLWxpbmUtZGlyZWN0aXZl
IiwgIG5vX2FyZ3VtZW50LCAgICAgICAmbm9fbGluZV9kaXJlY3RpdmUsIDEgICAgIH0sCkBA
IC01MTQsMTAgKzUwNywxMCBAQCAjZGVmaW5lIFNURElOIDB4MTAwMQkJLyogcmV0dXJuZWQg
YnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAqLwogICB7ICJyZWdleCIsICAgICAg
ICAgICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgICAgICAgICAgICAgICAncicgICB9
LAogICB7ICJuby1yZWdleCIsICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwg
ICAgICAgICAgICAgICAnUicgICB9LAogICB7ICJpZ25vcmUtY2FzZS1yZWdleCIsICByZXF1
aXJlZF9hcmd1bWVudCwgTlVMTCwgICAgICAgICAgICAgICAnYycgICB9LAotICB7ICJwYXJz
ZS1zdGRpbiIsICAgICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgICAgICAgICAgICAg
ICBTVERJTiB9LAorICB7ICJwYXJzZS1zdGRpbiIsICAgICAgICByZXF1aXJlZF9hcmd1bWVu
dCwgTlVMTCwgICAgICAgIFNURElOX09QVElPTiB9LAogICB7ICJ2ZXJzaW9uIiwgICAgICAg
ICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgICAgICAgICAgICAgICAnVicgICB9LAog
Ci0jaWYgQ1RBR1MgLyogQ3RhZ3Mgb3B0aW9ucyAqLworICAvKiBjdGFncyBvcHRpb25zICov
CiAgIHsgImJhY2t3YXJkLXNlYXJjaCIsICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAg
ICAgICAgICAgICAgICdCJyAgIH0sCiAgIHsgImN4cmVmIiwgICAgICAgICAgICAgIG5vX2Fy
Z3VtZW50LCAgICAgICBOVUxMLCAgICAgICAgICAgICAgICd4JyAgIH0sCiAgIHsgImRlZmlu
ZXMiLCAgICAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAgICAgICAgICAgICAg
ICdkJyAgIH0sCkBAIC01MjgsNyArNTIxLDcgQEAgI2RlZmluZSBTVERJTiAweDEwMDEJCS8q
IHJldHVybmVkIGJ5IGdldG9wdF9sb25nIG9uIC0tcGFyc2Utc3RkaW4gKi8KICAgeyAidmdy
aW5kIiwgICAgICAgICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsICAgICAgICAgICAg
ICAgJ3YnICAgfSwKICAgeyAibm8td2FybiIsICAgICAgICAgICAgbm9fYXJndW1lbnQsICAg
ICAgIE5VTEwsICAgICAgICAgICAgICAgJ3cnICAgfSwKIAotI2Vsc2UgLyogRXRhZ3Mgb3B0
aW9ucyAqLworICAvKiBldGFncyBvcHRpb25zICovCiAgIHsgIm5vLWRlZmluZXMiLCAgICAg
ICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAgICAgICAgICAgICAgICdEJyAgIH0sCiAg
IHsgIm5vLWdsb2JhbHMiLCAgICAgICAgIG5vX2FyZ3VtZW50LCAgICAgICAmZ2xvYmFscywg
ICAgICAgICAgIDAgICAgIH0sCiAgIHsgImluY2x1ZGUiLCAgICAgICAgICAgIHJlcXVpcmVk
X2FyZ3VtZW50LCBOVUxMLCAgICAgICAgICAgICAgICdpJyAgIH0sCkBAIC01MzYsNyArNTI5
LDcgQEAgI2RlZmluZSBTVERJTiAweDEwMDEJCS8qIHJldHVybmVkIGJ5IGdldG9wdF9sb25n
IG9uIC0tcGFyc2Utc3RkaW4gKi8KICAgeyAiZmFsbGJhY2stbGFuZyIsICAgICAgbm9fYXJn
dW1lbnQsICAgICAgICZmYWxsYmFja19sYW5nLCAgICAgMSAgICAgfSwKICAgeyAibm8tZW1w
dHktZmlsZS1lbnRyaWVzIiwgbm9fYXJndW1lbnQsICAgICZlbXB0eV9maWxlcywgICAgICAg
MCAgICAgfSwKICAgeyAiZW1wdHktZmlsZS1lbnRyaWVzIiwgbm9fYXJndW1lbnQsICAgICAg
ICZlbXB0eV9maWxlcywgICAgICAgMSAgICAgfSwKLSNlbmRpZgorCiAgIHsgTlVMTCB9CiB9
OwogCkBAIC01OTgsMTUgKzU5MSwxNyBAQCAjZGVmaW5lIFNURElOIDB4MTAwMQkJLyogcmV0
dXJuZWQgYnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAqLwogICAgVGhhdCBpcyB3
aHkgZGVmYXVsdF9DX2VudHJpZXMgaXMgY2FsbGVkIGZvciB0aGVzZS4gKi8KIHN0YXRpYyBj
b25zdCBjaGFyICpkZWZhdWx0X0Nfc3VmZml4ZXMgW10gPQogICB7ICJjIiwgImgiLCBOVUxM
IH07Ci0jaWYgQ1RBR1MJCQkJLyogQyBoZWxwIGZvciBDdGFncyAqLwotc3RhdGljIGNvbnN0
IGNoYXIgZGVmYXVsdF9DX2hlbHAgW10gPQorCisvKiBDIGhlbHAgZm9yIGN0YWdzICovCitz
dGF0aWMgY29uc3QgY2hhciBjdGFnc19kZWZhdWx0X0NfaGVscFtdID0KICJJbiBDIGNvZGUs
IGFueSBDIGZ1bmN0aW9uIGlzIGEgdGFnLiAgVXNlIC10IHRvIHRhZyB0eXBlZGVmcy5cblwK
IFVzZSAtVCB0byB0YWcgZGVmaW5pdGlvbnMgb2YgJ3N0cnVjdCcsICd1bmlvbicgYW5kICdl
bnVtJy5cblwKIFVzZSAtZCB0byB0YWcgJyNkZWZpbmUnIG1hY3JvIGRlZmluaXRpb25zIGFu
ZCAnZW51bScgY29uc3RhbnRzLlxuXAogVXNlIC0tZ2xvYmFscyB0byB0YWcgZ2xvYmFsIHZh
cmlhYmxlcy5cblwKIFlvdSBjYW4gdGFnIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBhbmQgZXh0
ZXJuYWwgdmFyaWFibGVzIGJ5XG5cCiB1c2luZyAnLS1kZWNsYXJhdGlvbnMnLCBhbmQgc3Ry
dWN0IG1lbWJlcnMgYnkgdXNpbmcgJy0tbWVtYmVycycuIjsKLSNlbHNlCQkJCQkvKiBDIGhl
bHAgZm9yIEV0YWdzICovCisKKy8qIEMgaGVscCBmb3IgZXRhZ3MgKi8KIHN0YXRpYyBjb25z
dCBjaGFyIGRlZmF1bHRfQ19oZWxwIFtdID0KICJJbiBDIGNvZGUsIGFueSBDIGZ1bmN0aW9u
IG9yIHR5cGVkZWYgaXMgYSB0YWcsIGFuZCBzbyBhcmVcblwKIGRlZmluaXRpb25zIG9mICdz
dHJ1Y3QnLCAndW5pb24nIGFuZCAnZW51bScuICAnI2RlZmluZScgbWFjcm9cblwKQEAgLTYx
Nyw3ICs2MTIsNiBAQCAjZGVmaW5lIFNURElOIDB4MTAwMQkJLyogcmV0dXJuZWQgYnkgZ2V0
b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAqLwogJy0tbm8tbWVtYmVycycgY2FuIG1ha2Ug
dGhlIHRhZ3MgdGFibGUgZmlsZSBtdWNoIHNtYWxsZXIuXG5cCiBZb3UgY2FuIHRhZyBmdW5j
dGlvbiBkZWNsYXJhdGlvbnMgYW5kIGV4dGVybmFsIHZhcmlhYmxlcyBieVxuXAogdXNpbmcg
Jy0tZGVjbGFyYXRpb25zJy4iOwotI2VuZGlmCS8qIEMgaGVscCBmb3IgQ3RhZ3MgYW5kIEV0
YWdzICovCiAKIHN0YXRpYyBjb25zdCBjaGFyICpDcGx1c3BsdXNfc3VmZml4ZXMgW10gPQog
ICB7ICJDIiwgImMrKyIsICJjYyIsICJjcHAiLCAiY3h4IiwgIkgiLCAiaCsrIiwgImhoIiwg
ImhwcCIsICJoeHgiLApAQCAtODYyLDYgKzg1Niw3IEBAICNkZWZpbmUgU1RESU4gMHgxMDAx
CQkvKiByZXR1cm5lZCBieSBnZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICovCiB7CiAg
IHsgImFkYSIsICAgICAgIEFkYV9oZWxwLCAgICAgICBBZGFfZnVuY3MsICAgICAgICAgQWRh
X3N1ZmZpeGVzICAgICAgIH0sCiAgIHsgImFzbSIsICAgICAgIEFzbV9oZWxwLCAgICAgICBB
c21fbGFiZWxzLCAgICAgICAgQXNtX3N1ZmZpeGVzICAgICAgIH0sCisjZGVmaW5lIENfTEFO
R19OQU1FU19JTkRFWCAyCiAgIHsgImMiLCAgICAgICAgIGRlZmF1bHRfQ19oZWxwLCBkZWZh
dWx0X0NfZW50cmllcywgZGVmYXVsdF9DX3N1ZmZpeGVzIH0sCiAgIHsgImMrKyIsICAgICAg
IENwbHVzcGx1c19oZWxwLCBDcGx1c3BsdXNfZW50cmllcywgQ3BsdXNwbHVzX3N1ZmZpeGVz
IH0sCiAgIHsgImMqIiwgICAgICAgIG5vX2xhbmdfaGVscCwgICBDc3Rhcl9lbnRyaWVzLCAg
ICAgQ3N0YXJfc3VmZml4ZXMgICAgIH0sCkBAIC05MjgsMjQgKzkyMywyMCBAQCBwcmludF9s
YW5ndWFnZV9uYW1lcyAodm9pZCkKIEZvcnRyYW4gaXMgdHJpZWQgZmlyc3Q7IGlmIG5vIHRh
Z3MgYXJlIGZvdW5kLCBDIGlzIHRyaWVkIG5leHQuXG5cCiBXaGVuIHBhcnNpbmcgYW55IEMg
ZmlsZSwgYSBcImNsYXNzXCIgb3IgXCJ0ZW1wbGF0ZVwiIGtleXdvcmRcblwKIHN3aXRjaGVz
IHRvIEMrKy4iKTsKLSAgcHV0cyAoIkNvbXByZXNzZWQgZmlsZXMgYXJlIHN1cHBvcnRlZCB1
c2luZyBnemlwLCBiemlwMiwgeHosIGFuZCB6c3RkLlxuXAorICBwcmludGYgKCJDb21wcmVz
c2VkIGZpbGVzIGFyZSBzdXBwb3J0ZWQgdXNpbmcgZ3ppcCwgYnppcDIsIHh6LCBhbmQgenN0
ZC5cblwKIFxuXAogRm9yIGRldGFpbGVkIGhlbHAgb24gYSBnaXZlbiBsYW5ndWFnZSB1c2Us
IGZvciBleGFtcGxlLFxuXAotZXRhZ3MgLS1oZWxwIC0tbGFuZz1hZGEuIik7CislcyAtLWhl
bHAgLS1sYW5nPWFkYS5cbiIsCisJICBwcm9nbmFtZSk7CiB9CiAKLSNpZiBDVEFHUwotIyBk
ZWZpbmUgUFJPR1JBTV9OQU1FICJjdGFncyIKLSNlbHNlCi0jIGRlZmluZSBQUk9HUkFNX05B
TUUgImV0YWdzIgotI2VuZGlmCiBzdGF0aWMgX05vcmV0dXJuIHZvaWQKIHByaW50X3ZlcnNp
b24gKHZvaWQpCiB7Ci0gIGZwdXRzICgoUFJPR1JBTV9OQU1FICIgKCIgUEFDS0FHRV9OQU1F
ICIgIiBQQUNLQUdFX1ZFUlNJT04gIilcbiIKLQkgIENPUFlSSUdIVCAiXG4iCi0JICAiVGhp
cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBpbiBFVEFHUy5SRUFE
TUVcbiIpLAotCSBzdGRvdXQpOworICBwcmludGYgKCgiJXMgKCVzICVzKVxuIgorCSAgICIl
c1xuIgorCSAgICJUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1z
IGluIEVUQUdTLlJFQURNRVxuIiksCisJICBjdGFncyA/ICJjdGFncyIgOiAiZXRhZ3MiLCBQ
QUNLQUdFX05BTUUsIFBBQ0tBR0VfVkVSU0lPTiwgQ09QWVJJR0hUKTsKICAgZXhpdCAoRVhJ
VF9TVUNDRVNTKTsKIH0KIApAQCAtOTg0LDcgKzk3NSw3IEBAIHByaW50X2hlbHAgKGFyZ3Vt
ZW50ICphcmdidWZmZXIpCiAgIHB1dHMgKCItLXBhY2thZ2VzLW9ubHlcblwKICAgICAgICAg
Rm9yIEFkYSBmaWxlcywgb25seSBnZW5lcmF0ZSB0YWdzIGZvciBwYWNrYWdlcy4iKTsKIAot
ICBpZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICBwdXRzICgiLUIsIC0tYmFja3dhcmQt
c2VhcmNoXG5cCiAgICAgICAgIFdyaXRlIHRoZSBzZWFyY2ggY29tbWFuZHMgZm9yIHRoZSB0
YWcgZW50cmllcyB1c2luZyAnPycsIHRoZVxuXAogICAgICAgICBiYWNrd2FyZC1zZWFyY2gg
Y29tbWFuZCBpbnN0ZWFkIG9mICcvJywgdGhlIGZvcndhcmQtc2VhcmNoIGNvbW1hbmQuIik7
CkBAIC05OTcsOSArOTg4LDEzIEBAIHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZmZXIp
CiAgICAgICAgIFRyZWF0IGZpbGVzIHdob3NlIG5hbWUgc3VmZml4IGRlZmF1bHRzIHRvIEMg
bGFuZ3VhZ2UgYXMgQysrIGZpbGVzLiIpOwogICAqLwogCisgIGlmIChQUklOVF9VTkRPQ1VN
RU5URURfT1BUSU9OU19IRUxQICYmICFjdGFncykKKyAgICBwdXRzICgiLS1jdGFncz1QUk9H
UkFNX05BTUVcblwKKwlJbXBsZW1lbnQgY3RhZ3MgYmVoYXZpb3IgdW5kZXIgdGhlIG5hbWUg
UFJPR1JBTV9OQU1FLiIpOworCiAgIHB1dHMgKCItLWRlY2xhcmF0aW9uc1xuXAogCUluIEMg
YW5kIGRlcml2ZWQgbGFuZ3VhZ2VzLCBjcmVhdGUgdGFncyBmb3IgZnVuY3Rpb24gZGVjbGFy
YXRpb25zLCIpOwotICBpZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICBwdXRzICgiXHRh
bmQgY3JlYXRlIHRhZ3MgZm9yIGV4dGVybiB2YXJpYWJsZXMgaWYgLS1nbG9iYWxzIGlzIHVz
ZWQuIik7CiAgIGVsc2UKICAgICBwdXRzCkBAIC0xMDA4LDcgKzEwMDMsNyBAQCBwcmludF9o
ZWxwIChhcmd1bWVudCAqYXJnYnVmZmVyKQogICBwdXRzICgiXHRJbiBNZXJjdXJ5LCB0YWcg
Ym90aCBkZWNsYXJhdGlvbnMgc3RhcnRpbmcgYSBsaW5lIHdpdGggJzotJyBhbmRcblwKICAg
ICAgICAgZmlyc3QgcHJlZGljYXRlcyBvciBmdW5jdGlvbnMgaW4gY2xhdXNlcy4iKTsKIAot
ICBpZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICBwdXRzICgiLWQsIC0tZGVmaW5lc1xu
XAogICAgICAgICBDcmVhdGUgdGFnIGVudHJpZXMgZm9yIEMgI2RlZmluZSBjb25zdGFudHMg
YW5kIGVudW0gY29uc3RhbnRzLCB0b28uIik7CiAgIGVsc2UKQEAgLTEwMTYsNyArMTAxMSw3
IEBAIHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZmZXIpCiAgICAgICAgIERvbid0IGNy
ZWF0ZSB0YWcgZW50cmllcyBmb3IgQyAjZGVmaW5lIGNvbnN0YW50cyBhbmQgZW51bSBjb25z
dGFudHMuXG5cCiAJVGhpcyBtYWtlcyB0aGUgdGFncyBmaWxlIHNtYWxsZXIuIik7CiAKLSAg
aWYgKCFDVEFHUykKKyAgaWYgKCFjdGFncykKICAgICBwdXRzICgiLWkgRklMRSwgLS1pbmNs
dWRlPUZJTEVcblwKICAgICAgICAgSW5jbHVkZSBhIG5vdGUgaW4gdGFnIGZpbGUgaW5kaWNh
dGluZyB0aGF0LCB3aGVuIHNlYXJjaGluZyBmb3JcblwKICAgICAgICAgYSB0YWcsIG9uZSBz
aG91bGQgYWxzbyBjb25zdWx0IHRoZSB0YWdzIGZpbGUgRklMRSBhZnRlclxuXApAQCAtMTAy
Niw3ICsxMDIxLDcgQEAgcHJpbnRfaGVscCAoYXJndW1lbnQgKmFyZ2J1ZmZlcikKICAgICAg
ICAgRm9yY2UgdGhlIGZvbGxvd2luZyBmaWxlcyB0byBiZSBjb25zaWRlcmVkIGFzIHdyaXR0
ZW4gaW4gdGhlXG5cCiAJbmFtZWQgbGFuZ3VhZ2UgdXAgdG8gdGhlIG5leHQgLS1sYW5ndWFn
ZT1MQU5HIG9wdGlvbi4iKTsKIAotICBpZiAoQ1RBR1MpCisgIGlmIChjdGFncykKICAgICBw
dXRzICgiLS1nbG9iYWxzXG5cCiAJQ3JlYXRlIHRhZyBlbnRyaWVzIGZvciBnbG9iYWwgdmFy
aWFibGVzIGluIHNvbWUgbGFuZ3VhZ2VzLiIpOwogICBlbHNlCkBAIC0xMDM3LDcgKzEwMzIs
NyBAQCBwcmludF9oZWxwIChhcmd1bWVudCAqYXJnYnVmZmVyKQogICBwdXRzICgiLS1uby1s
aW5lLWRpcmVjdGl2ZVxuXAogICAgICAgICBJZ25vcmUgI2xpbmUgcHJlcHJvY2Vzc29yIGRp
cmVjdGl2ZXMgaW4gQyBhbmQgZGVyaXZlZCBsYW5ndWFnZXMuIik7CiAKLSAgaWYgKENUQUdT
KQorICBpZiAoY3RhZ3MpCiAgICAgcHV0cyAoIi0tbWVtYmVyc1xuXAogCUNyZWF0ZSB0YWcg
ZW50cmllcyBmb3IgbWVtYmVycyBvZiBzdHJ1Y3R1cmVzIGluIHNvbWUgbGFuZ3VhZ2VzLiIp
OwogICBlbHNlCkBAIC0xMDQ1LDcgKzEwNDAsNyBAQCBwcmludF9oZWxwIChhcmd1bWVudCAq
YXJnYnVmZmVyKQogCURvIG5vdCBjcmVhdGUgdGFnIGVudHJpZXMgZm9yIG1lbWJlcnMgb2Yg
c3RydWN0dXJlc1xuXAogCWluIHNvbWUgbGFuZ3VhZ2VzLiIpOwogCi0gIGlmICghQ1RBR1Mp
CisgIGlmICghY3RhZ3MpCiAgICAgewogICAgICAgcHV0cyAoIi0tZmFsbGJhY2stbGFuZ1xu
XAogCUlmIGEgZmlsZSdzIGxhbmd1YWdlIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLCB0cnkg
dG8gcGFyc2VcblwKQEAgLTEwOTIsNyArMTA4Nyw3IEBAIHByaW50X2hlbHAgKGFyZ3VtZW50
ICphcmdidWZmZXIpCiAgIHB1dHMgKCItLXBhcnNlLXN0ZGluPU5BTUVcblwKICAgICAgICAg
UmVhZCBmcm9tIHN0YW5kYXJkIGlucHV0IGFuZCByZWNvcmQgdGFncyBhcyBiZWxvbmdpbmcg
dG8gZmlsZSBOQU1FLiIpOwogCi0gIGlmIChDVEFHUykKKyAgaWYgKGN0YWdzKQogICAgIHsK
ICAgICAgIHB1dHMgKCItdCwgLS10eXBlZGVmc1xuXAogICAgICAgICBHZW5lcmF0ZSB0YWcg
ZW50cmllcyBmb3IgQyBhbmQgQWRhIHR5cGVkZWZzLiIpOwpAQCAtMTEwMSw3ICsxMDk2LDcg
QEAgcHJpbnRfaGVscCAoYXJndW1lbnQgKmFyZ2J1ZmZlcikKICAgICAgICAgYW5kIEMrKyBt
ZW1iZXIgZnVuY3Rpb25zLiIpOwogICAgIH0KIAotICBpZiAoQ1RBR1MpCisgIGlmIChjdGFn
cykKICAgICBwdXRzICgiLXUsIC0tdXBkYXRlXG5cCiAgICAgICAgIFVwZGF0ZSB0aGUgdGFn
IGVudHJpZXMgZm9yIHRoZSBnaXZlbiBmaWxlcywgbGVhdmluZyB0YWdcblwKICAgICAgICAg
ZW50cmllcyBmb3Igb3RoZXIgZmlsZXMgaW4gcGxhY2UuICBDdXJyZW50bHksIHRoaXMgaXNc
blwKQEAgLTExMTAsNyArMTEwNSw3IEBAIHByaW50X2hlbHAgKGFyZ3VtZW50ICphcmdidWZm
ZXIpCiAgICAgICAgIHRhZ3MgZmlsZS4gIEl0IGlzIG9mdGVuIGZhc3RlciB0byBzaW1wbHkg
cmVidWlsZCB0aGUgZW50aXJlXG5cCiAgICAgICAgIHRhZyBmaWxlIHRoYW4gdG8gdXNlIHRo
aXMuIik7CiAKLSAgaWYgKENUQUdTKQorICBpZiAoY3RhZ3MpCiAgICAgewogICAgICAgcHV0
cyAoIi12LCAtLXZncmluZFxuXAogICAgICAgICBQcmludCBvbiB0aGUgc3RhbmRhcmQgb3V0
cHV0IGFuIGluZGV4IG9mIGl0ZW1zIGludGVuZGVkIGZvclxuXApAQCAtMTE2MCw3ICsxMTU1
LDYgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICBsaW5lYnVmZmVyIGZpbGVu
YW1lX2xiOwogICBib29sIGhlbHBfYXNrZWQgPSBmYWxzZTsKICAgcHRyZGlmZl90IGxlbjsK
LSAgY2hhciAqb3B0c3RyaW5nOwogICBpbnQgb3B0OwogCiAgIHByb2duYW1lID0gYXJndlsw
XTsKQEAgLTExOTIsOSArMTE4Niw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikK
IAogICAvKiBXaGVuIHRoZSBvcHRzdHJpbmcgYmVnaW5zIHdpdGggYSAnLScgZ2V0b3B0X2xv
bmcgZG9lcyBub3QgcmVhcnJhbmdlIHRoZQogICAgICBub24tb3B0aW9ucyBhcmd1bWVudHMg
dG8gYmUgYXQgdGhlIGVuZCwgYnV0IGxlYXZlcyB0aGVtIGFsb25lLiAqLwotICBvcHRzdHJp
bmcgPSBjb25jYXQgKCItYWM6Q2Y6SWw6bzpRcjpSU1ZoSCIsCi0JCSAgICAgIChDVEFHUykg
PyAiQnhkdFR1dnciIDogIkRpOiIsCi0JCSAgICAgICIiKTsKKyAgc3RhdGljIGNoYXIgY29u
c3Qgb3B0c3RyaW5nW10gPSAiLWFCYzpDZERmOmhIaTpJbDpvOlFyOlJTdFR1dlZ3eCI7CiAK
ICAgd2hpbGUgKChvcHQgPSBnZXRvcHRfbG9uZyAoYXJnYywgYXJndiwgb3B0c3RyaW5nLCBs
b25nb3B0cywgTlVMTCkpICE9IEVPRikKICAgICBzd2l0Y2ggKG9wdCkKQEAgLTEyMTUsNyAr
MTIwNywxNCBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJKytmaWxlX2NvdW50
OwogCWJyZWFrOwogCi0gICAgICBjYXNlIFNURElOOgorICAgICAgY2FzZSBDVEFHU19PUFRJ
T046CisJLyogT3BlcmF0ZSBhcyBjdGFncywgbm90IGV0YWdzLiAgKi8KKwljdGFncyA9IHRy
dWU7CisJcHJvZ25hbWUgPSBvcHRhcmc7CisJbGFuZ19uYW1lc1tDX0xBTkdfTkFNRVNfSU5E
RVhdLmhlbHAgPSBjdGFnc19kZWZhdWx0X0NfaGVscDsKKwlicmVhazsKKworICAgICAgY2Fz
ZSBTVERJTl9PUFRJT046CiAJLyogUGFyc2Ugc3RhbmRhcmQgaW5wdXQuICBJZGVhIGJ5IFZp
dmVrIDx2aXZla0BldGxhLm9yZz4uICovCiAJYXJnYnVmZmVyW2N1cnJlbnRfYXJnXS5hcmdf
dHlwZSA9IGF0X3N0ZGluOwogCWFyZ2J1ZmZlcltjdXJyZW50X2FyZ10ud2hhdCAgICAgPSBv
cHRhcmc7CkBAIC0xMzI1LDcgKzEzMjQsNyBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFy
Z3YpCiAgICAgfQogCiAgIGlmICh0YWdmaWxlID09IE5VTEwpCi0gICAgdGFnZmlsZSA9IHNh
dmVzdHIgKENUQUdTID8gInRhZ3MiIDogIlRBR1MiKTsKKyAgICB0YWdmaWxlID0gc2F2ZXN0
ciAoY3RhZ3MgPyAidGFncyIgOiAiVEFHUyIpOwogICBjd2QgPSBldGFnc19nZXRjd2QgKCk7
CS8qIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5ICovCiAgIGlmIChjd2Rbc3RybGVu
IChjd2QpIC0gMV0gIT0gJy8nKQogICAgIHsKQEAgLTEzNDksNyArMTM0OCw3IEBAIG1haW4g
KGludCBhcmdjLCBjaGFyICoqYXJndikKICAgbGluZWJ1ZmZlcl9pbml0ICgmZmlsZWJ1Zik7
CiAgIGxpbmVidWZmZXJfaW5pdCAoJnRva2VuX25hbWUpOwogCi0gIGlmICghQ1RBR1MpCisg
IGlmICghY3RhZ3MpCiAgICAgewogICAgICAgaWYgKHN0cmVxICh0YWdmaWxlLCAiLSIpKQog
CXsKQEAgLTE0MDcsMTMgKzE0MDYsMTMgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2
KQogICBmcmVlIChmaWxlYnVmLmJ1ZmZlcik7CiAgIGZyZWUgKHRva2VuX25hbWUuYnVmZmVy
KTsKIAotICBpZiAoIUNUQUdTIHx8IGN4cmVmX3N0eWxlKQorICBpZiAoIWN0YWdzIHx8IGN4
cmVmX3N0eWxlKQogICAgIHsKICAgICAgIC8qIFdyaXRlIHRoZSByZW1haW5pbmcgdGFncyB0
byB0YWdmIChFVEFHUykgb3Igc3Rkb3V0IChDWFJFRikuICovCiAgICAgICBwdXRfZW50cmll
cyAobm9kZWhlYWQpOwogICAgICAgZnJlZV90cmVlIChub2RlaGVhZCk7CiAgICAgICBub2Rl
aGVhZCA9IE5VTEw7Ci0gICAgICBpZiAoIUNUQUdTKQorICAgICAgaWYgKCFjdGFncykKIAl7
CiAJICBmZGVzYyAqZmRwOwogCkBAIC0xNDYyLDcgKzE0NjEsNyBAQCBtYWluIChpbnQgYXJn
YywgY2hhciAqKmFyZ3YpCiAgIGlmIChmY2xvc2UgKHRhZ2YpID09IEVPRikKICAgICBwZmF0
YWwgKHRhZ2ZpbGUpOwogCi0gIGlmIChDVEFHUykKKyAgaWYgKGN0YWdzKQogICAgIGlmIChh
cHBlbmRfdG9fdGFnZmlsZSB8fCB1cGRhdGUpCiAgICAgICB7CiAJLyogTWF5YmUgdGhlc2Ug
c2hvdWxkIGJlIHVzZWQ6CkBAIC0xODYwLDcgKzE4NTksNyBAQCBwcm9jZXNzX2ZpbGUgKEZJ
TEUgKmZoLCBjaGFyICpmbiwgbGFuZ3VhZ2UgKmxhbmcpCiAgIC8qIElmIG5vdCBDdGFncywg
YW5kIGlmIHRoaXMgaXMgbm90IG1ldGFzb3VyY2UgYW5kIGlmIGl0IGNvbnRhaW5lZCBubyAj
bGluZQogICAgICBkaXJlY3RpdmVzLCB3ZSBjYW4gd3JpdGUgdGhlIHRhZ3MgYW5kIGZyZWUg
YWxsIG5vZGVzIHBvaW50aW5nIHRvCiAgICAgIGN1cmZkcC4gKi8KLSAgaWYgKCFDVEFHUwor
ICBpZiAoIWN0YWdzCiAgICAgICAmJiBjdXJmZHAtPnVzZWNoYXJubwkvKiBubyAjbGluZSBk
aXJlY3RpdmVzIGluIHRoaXMgZmlsZSAqLwogICAgICAgJiYgIWN1cmZkcC0+bGFuZy0+bWV0
YXNvdXJjZSkKICAgICB7CkBAIC0yMDkyLDcgKzIwOTEsNyBAQCBtYWtlX3RhZyAoY29uc3Qg
Y2hhciAqbmFtZSwgCS8qIHRhZyBuYW1lLCBvciBOVUxMIGlmIHVubmFtZWQgKi8KICAgICBm
cHJpbnRmIChzdGRlcnIsICIlcyBvbiAlczolIlBSSWRNQVgiOiAlc1xuIiwKIAkgICAgIG5h
bWVkID8gbmFtZSA6ICIodW5uYW1lZCkiLCBjdXJmZHAtPnRhZ2dlZGZuYW1lLCBsbm8sIGxp
bmVzdGFydCk7CiAKLSAgaWYgKCFDVEFHUyAmJiBuYW1lZCkJCS8qIG1heWJlIHNldCBuYW1l
ZCB0byBmYWxzZSAqLworICBpZiAoIWN0YWdzICYmIG5hbWVkKQkJLyogbWF5YmUgc2V0IG5h
bWVkIHRvIGZhbHNlICovCiAgICAgLyogTGV0J3MgdHJ5IHRvIG1ha2UgYW4gaW1wbGljaXQg
dGFnIG5hbWUsIHRoYXQgaXMsIGNyZWF0ZSBhbiB1bm5hbWVkIHRhZwogICAgICAgIHN1Y2gg
dGhhdCBldGFncy5lbCBjYW4gZ3Vlc3MgYSBuYW1lIGZyb20gaXQuICovCiAgICAgewpAQCAt
MjEzMywxNyArMjEzMiwxNyBAQCBwZm5vdGUgKGNoYXIgKm5hbWUsCQkvKiB0YWcgbmFtZSwg
b3IgTlVMTCBpZiB1bm5hbWVkICovCiB7CiAgIHJlZ2lzdGVyIG5vZGUgKm5wOwogCi0gIGlm
ICgoQ1RBR1MgJiYgbmFtZSA9PSBOVUxMKQorICBpZiAoKGN0YWdzICYmIG5hbWUgPT0gTlVM
TCkKICAgICAgIC8qIFdlIHVzZWQgdG8gaGF2ZSBhbiBhc3NlcnRpb24gaGVyZSBmb3IgdGhl
IGNhc2UgYmVsb3csIGJ1dCBpZiB3ZSBoaXQKIAkgdGhhdCBjYXNlLCBpdCBqdXN0IG1lYW5z
IG91ciBwYXJzZXIgZ290IGNvbmZ1c2VkLCBhbmQgdGhlcmUncyBub3RoaW5nCiAJIHRvIGRv
IGFib3V0IHN1Y2ggZW1wdHkgInRhZ3MiLiAgKi8KLSAgICAgIHx8ICghQ1RBR1MgJiYgbmFt
ZSAmJiBuYW1lWzBdID09ICdcMCcpKQorICAgICAgfHwgKCFjdGFncyAmJiBuYW1lICYmIG5h
bWVbMF0gPT0gJ1wwJykpCiAgICAgcmV0dXJuOwogCiAgIG5wID0geG1hbGxvYyAoc2l6ZW9m
ICpucCk7CiAKICAgLyogSWYgY3RhZ3MgbW9kZSwgY2hhbmdlIG5hbWUgIm1haW4iIHRvIE08
dGhpc2ZpbGVuYW1lPi4gKi8KLSAgaWYgKENUQUdTICYmICFjeHJlZl9zdHlsZSAmJiBzdHJl
cSAobmFtZSwgIm1haW4iKSkKKyAgaWYgKGN0YWdzICYmICFjeHJlZl9zdHlsZSAmJiBzdHJl
cSAobmFtZSwgIm1haW4iKSkKICAgICB7CiAgICAgICBjaGFyICpmcCA9IHN0cnJjaHIgKGN1
cmZkcC0+dGFnZ2VkZm5hbWUsICcvJyk7CiAgICAgICBucC0+bmFtZSA9IGNvbmNhdCAoIk0i
LCBmcCA9PSBOVUxMID8gY3VyZmRwLT50YWdnZWRmbmFtZSA6IGZwICsgMSwgIiIpOwpAQCAt
MjE2OCw3ICsyMTY3LDcgQEAgcGZub3RlIChjaGFyICpuYW1lLAkJLyogdGFnIG5hbWUsIG9y
IE5VTEwgaWYgdW5uYW1lZCAqLwogICBlbHNlCiAgICAgbnAtPmNubyA9IGludmFsaWRjaGFy
bm87CiAgIG5wLT5sZWZ0ID0gbnAtPnJpZ2h0ID0gTlVMTDsKLSAgaWYgKENUQUdTICYmICFj
eHJlZl9zdHlsZSkKKyAgaWYgKGN0YWdzICYmICFjeHJlZl9zdHlsZSkKICAgICB7CiAgICAg
ICBpZiAoc3RybmxlbiAobGluZXN0YXJ0LCA1MCkgPCA1MCkKIAlucC0+cmVnZXggPSBjb25j
YXQgKGxpbmVzdGFydCwgIiQiLCAiIik7CkBAIC0yMjk1LDcgKzIyOTQsNyBAQCBhZGRfbm9k
ZSAobm9kZSAqbnAsIG5vZGUgKipjdXJfbm9kZV9wKQogICAgICAgcmV0dXJuOwogICAgIH0K
IAotICBpZiAoIUNUQUdTKQorICBpZiAoIWN0YWdzKQogICAgIC8qIEV0YWdzIE1vZGUgKi8K
ICAgICB7CiAgICAgICAvKiBGb3IgZWFjaCBmaWxlIG5hbWUsIHRhZ3MgYXJlIGluIGEgbGlu
a2VkIHN1Ymxpc3Qgb24gdGhlIHJpZ2h0CkBAIC0yMzk0LDcgKzIzOTMsNyBAQCBpbnZhbGlk
YXRlX25vZGVzIChmZGVzYyAqYmFkZmRwLCBub2RlICoqbnBwKQogICBub2RlICpucCA9ICpu
cHA7CiAgIHN0a2VudHJ5ICpzdGFjayA9IE5VTEw7CiAKLSAgaWYgKENUQUdTKQorICBpZiAo
Y3RhZ3MpCiAgICAgewogICAgICAgd2hpbGUgKG5wKQogCXsKQEAgLTI1MDQsNyArMjUwMyw3
IEBAIHB1dF9lbnRyeSAobm9kZSAqbnApCiAgIC8qIE91dHB1dCB0aGlzIGVudHJ5ICovCiAg
IGlmIChucC0+dmFsaWQpCiAgICAgewotICAgICAgaWYgKCFDVEFHUykKKyAgICAgIGlmICgh
Y3RhZ3MpCiAJewogCSAgLyogRXRhZ3MgbW9kZSAqLwogCSAgaWYgKGZkcCAhPSBucC0+ZmRw
KQpAQCAtMjU3Niw3ICsyNTc1LDcgQEAgcHV0X2VudHJpZXMgKG5vZGUgKm5wKQogICBpZiAo
bnAgPT0gTlVMTCkKICAgICByZXR1cm47CiAKLSAgaWYgKENUQUdTKQorICBpZiAoY3RhZ3Mp
CiAgICAgewogICAgICAgd2hpbGUgKG5wKQogCXsKLS0gCjIuNDUuMgoK

--------------dnnF13bq50zKGWyjX7a2gd5u--




Acknowledgement sent to Paul Eggert <eggert@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#76322; 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: Wed, 12 Mar 2025 07:30:02 UTC

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