From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#67687: Feature request: automatic tags management Date: Sun, 24 Dec 2023 03:43:25 +0200 Message-ID: References: <2f86b882-9ec1-f63f-d90b-5f8f7ae114f2@gutov.dev> <58D84A29-9A63-45BA-AD8B-B476CDC931A1@gmail.com> <812729c8-726f-d60e-2603-2d8e588929fd@gutov.dev> <835y0sgg12.fsf@gnu.org> <661f4951-cb0a-5257-63b0-efe71a0d217e@gutov.dev> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------tVrEx8w7FeNSDtzk4CvPYG0r" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38684"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 67687@debbugs.gnu.org, eskinjp@gmail.com, stefankangas@gmail.com To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Dec 24 02:44:27 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rHDXV-0009p4-G4 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 24 Dec 2023 02:44:26 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rHDX3-0004MJ-Sd; Sat, 23 Dec 2023 20:43:57 -0500 Original-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 ) id 1rHDX3-0004MB-0G for bug-gnu-emacs@gnu.org; Sat, 23 Dec 2023 20:43:57 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rHDX2-0002sw-Np for bug-gnu-emacs@gnu.org; Sat, 23 Dec 2023 20:43:56 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rHDX7-0002Dr-Lo for bug-gnu-emacs@gnu.org; Sat, 23 Dec 2023 20:44:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 24 Dec 2023 01:44:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 67687 X-GNU-PR-Package: emacs Original-Received: via spool by 67687-submit@debbugs.gnu.org id=B67687.17033822258514 (code B ref 67687); Sun, 24 Dec 2023 01:44:01 +0000 Original-Received: (at 67687) by debbugs.gnu.org; 24 Dec 2023 01:43:45 +0000 Original-Received: from localhost ([127.0.0.1]:51524 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rHDWq-0002DF-8W for submit@debbugs.gnu.org; Sat, 23 Dec 2023 20:43:45 -0500 Original-Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:40941) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rHDWo-0002D0-Bm for 67687@debbugs.gnu.org; Sat, 23 Dec 2023 20:43:43 -0500 Original-Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 8D3483200A30; Sat, 23 Dec 2023 20:43:30 -0500 (EST) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Sat, 23 Dec 2023 20:43:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc: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=fm1; t=1703382210; x=1703468610; bh=QDe1lpSnh+ L2Vtxs/tOTFVhpK4UM9JQu3BItA3+Cmzo=; b=p3ruBDfCB4e8TCwyxZVZ5v0YHa YU7WwBwosNq2vFvOjqgcAu6YXV/vUDKEluaqJygC2tDt0MM86WhkWgrCdyde2T/O tolAhlhXMoIy/czHRT9W3/sNvKA7ACmnkMwwIgteph1Z30dEWPr+5C6Db6TxetH3 41vSJhjTYuWugb8dk0woRRt0iZF9aLqG226BLUBCNVNccPVgK911RX7xZXMjaRQG JTyaCiOZBkADIp0q4dv0u3HzqGB1FoE/ikFdESGWeDYkWEQdQhxcKrihKRoZw5Zx mQhsZnexBW3cYB/jP1nyEE1JwMF7cKgBH7YsBL2+LL4ArRuetfaiCoqFkdFQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc: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-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1703382210; x=1703468610; bh=QDe1lpSnh+L2Vtxs/tOTFVhpK4UM 9JQu3BItA3+Cmzo=; b=FY+cDgmQR8WD+SJTzHBFKbTkXKeRw0VKzgsWygkrs+GS XElXvafpZy0gy3r2HMIPZdZHjClDF19dLUcZblsDjXbsVhch58iU9i5pmdfSiti9 ti4r+t+ICrZKQKFkNm8NAvbbi193WfGg/7lW9pBxx27YCT4UXIJ2WlSeq3paGHvj T3tUZeaKZM/uJaumplTERzFhYCdgsHzRGMBdUSnaMrOlFUxmGPhL+6IjldsKkKiF ot+bsob/qeYivTH4BGJvkzF5F2dY7J5Rd2mipIw6lr7/LTxNfYn31Zpi36NHbgVr w0vIfhO7+HNwBAeH+216UW7SjJih2QEc/f4QN0ewSA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvddvtddgfeejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptgfkffggfgfuhffvvehfjgesmhdtreertddvjeenucfhrhhomhepffhmihht rhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtth gvrhhnpedtvdeugedvteelvdegvefguedtgfethefggeffkedtkeegveeifeeiudejueff ffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumh hithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 23 Dec 2023 20:43:28 -0500 (EST) Content-Language: en-US In-Reply-To: <661f4951-cb0a-5257-63b0-efe71a0d217e@gutov.dev> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:276779 Archived-At: This is a multi-part message in MIME format. --------------tVrEx8w7FeNSDtzk4CvPYG0r Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 22/12/2023 01:37, Dmitry Gutov wrote: > On 21/12/2023 18:46, Dmitry Gutov wrote: >> See instead the patch attached to this bug report. > > Here's an update, incorporating the feedback from here and there. Fixed a typo in dir-locals and implemented better support for etags-regen-ignores (though with one omission). To me it looks good to check in now. --------------tVrEx8w7FeNSDtzk4CvPYG0r Content-Type: text/x-patch; charset=UTF-8; name="etags-regen-v3.diff" Content-Disposition: attachment; filename="etags-regen-v3.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhLy5kaXItbG9jYWxzLmVsIGIvLmRpci1sb2NhbHMuZWwKaW5kZXggZTA4 N2FhODljZDEuLmNlN2ZlYmNhODUxIDEwMDY0NAotLS0gYS8uZGlyLWxvY2Fscy5lbAorKysg Yi8uZGlyLWxvY2Fscy5lbApAQCAtOCw2ICs4LDEyIEBACiAgICAgICAgICAodmMtZ2l0LWFu bm90YXRlLXN3aXRjaGVzIC4gIi13IikKICAgICAgICAgIChidWctcmVmZXJlbmNlLXVybC1m b3JtYXQgLiAiaHR0cHM6Ly9kZWJidWdzLmdudS5vcmcvJXMiKQogCSAoZGlmZi1hZGQtbG9n LXVzZS1yZWxhdGl2ZS1uYW1lcyAuIHQpCisgICAgICAgICAoZXRhZ3MtcmVnZW4tcmVnZXhw LWFsaXN0CisgICAgICAgICAgLgorICAgICAgICAgICgoKCJjIiAib2JqYyIpIC4KKyAgICAg ICAgICAgICgiL1sgXHRdKkRFRlZBUl9bQS1aXyBcdChdK1wiXFwoW15cIl0rXFwpXCIvXFwx LyIKKyAgICAgICAgICAgICAiL1sgXHRdKkRFRlZBUl9bQS1aXyBcdChdK1wiW15cIl0rXCIs WyBcdF1cXChbQS1aYS16MC05X10rXFwpL1xcMS8iKSkpKQorICAgICAgICAgKGV0YWdzLXJl Z2VuLWlnbm9yZXMgLiAoInRlc3QvbWFudWFsL2V0YWdzLyIpKQogICAgICAgICAgKHZjLXBy ZXBhcmUtcGF0Y2hlcy1zZXBhcmF0ZWx5IC4gbmlsKSkpCiAgKGMtbW9kZSAuICgoYy1maWxl LXN0eWxlIC4gIkdOVSIpCiAgICAgICAgICAgICAoYy1ub2lzZS1tYWNyby1uYW1lcyAuICgi SU5MSU5FIiAiTk9fSU5MSU5FIiAiQVRUUklCVVRFX05PX1NBTklUSVpFX1VOREVGSU5FRCIK ZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggNmRmMTdhYTNmMGEuLjJm ZjMzNTZkM2M5IDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVXUwpAQCAtMTIz OCw2ICsxMjM4LDExIEBAIHRoZSBuZWVkcyBvZiB1c2VycyB3aXRoIHJlZC1ncmVlbiBvciBi bHVlLXllbGxvdyBjb2xvciBkZWZpY2llbmN5LgogVGhlIEluZm8gbWFudWFsICIobW9kdXMt dGhlbWVzKSBUb3AiIGRlc2NyaWJlcyB0aGUgZGV0YWlscyBhbmQKIHNob3djYXNlcyBhbGwg dGhlaXIgY3VzdG9taXphdGlvbiBvcHRpb25zLgogCisqKiBOZXcgZ2xvYmFsIG1pbm9yIG1v ZGUgJ2V0YWdzLXJlZ2VuLW1vZGUnLgorVGhpcyBtaW5vciBtb2RlIGdlbmVyYXRlcyB0aGUg dGFncyB0YWJsZSBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHRoZQorY3VycmVudCBwcm9qZWN0 IGNvbmZpZ3VyYXRpb24sIGFuZCBsYXRlciB1cGRhdGVzIGl0IGFzIHlvdSBlZGl0IHRoZQor ZmlsZXMgYW5kIHNhdmUgdGhlIGNoYW5nZXMuCisKIAwKICogSW5jb21wYXRpYmxlIExpc3Ag Q2hhbmdlcyBpbiBFbWFjcyAzMC4xCiAKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL2V0 YWdzLXJlZ2VuLmVsIGIvbGlzcC9wcm9nbW9kZXMvZXRhZ3MtcmVnZW4uZWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg4YjczMDE5NWMzCi0tLSAvZGV2L251 bGwKKysrIGIvbGlzcC9wcm9nbW9kZXMvZXRhZ3MtcmVnZW4uZWwKQEAgLTAsMCArMSw0MTEg QEAKKzs7OyBldGFncy1yZWdlbi5lbCAtLS0gQXV0by0ocmUpcmVnZW5lcmF0aW5nIHRhZ3Mg IC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQgLSotCisKKzs7IENvcHlyaWdodCAoQykgMjAyMSwg MjAyMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworOzsgQXV0aG9yOiBEbWl0 cnkgR3V0b3YgPGRtaXRyeUBndXRvdi5kZXY+Cis7OyBLZXl3b3JkczogdG9vbHMKKworOzsg VGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgorCis7OyBHTlUgRW1hY3MgaXMgZnJl ZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorOzsg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCis7OyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorCis7OyBHTlUgRW1hY3MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl Cis7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCis7 OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8 aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCis7OzsgQ29tbWVudGFyeToKKwor OzsgU2ltcGxlIGF1dG9tYXRpYyB0YWdzIGdlbmVyYXRpb24gd2l0aCB1cGRhdGVzIG9uIHNh dmUuCis7OworOzsgVGhlIGdvYWwgb2YgdGhpcyBtb2RlIGlzIHRvIHByb3ZpZGUgYSBmZWF0 dXJlIHRoYXQgc2hvdWxkIGJlCis7OyBmYW1pbGlhciB0byB0aGUgdXNlcnMgb2YgY2VydGFp biBsaWdodHdlaWdodCBwcm9ncmFtbWVyJ3MgZWRpdG9ycywKKzs7IHN1Y2ggYXMgU3VibGlt ZSBUZXh0LiAgV2hpY2ggaXMgImdvIHRvIGRlZmluaXRpb24iIHdpdGggYXV0b21hdGljCis7 OyBpbmRleGluZywgYWRkZWQgaW4gU1QzIChyZWxlYXNlZCBpbiAyMDE3KS4KKzs7Cis7OyBB dCB0aGUgbW9tZW50IHJlaW5kZXhpbmcgd29ya3Mgb2ZmIGJlZm9yZS9hZnRlci1zYXZlLWhv b2ssIGJ1dCB0bworOzsgaGFuZGxlIG1vcmUgY29tcGxleCBjaGFuZ2VzIChlLmcuIHRoZSB1 c2VyIHN3aXRjaGluZyB0byBhbm90aGVyCis7OyBicmFuY2ggZnJvbSB0aGUgdGVybWluYWwp IHdlIGNhbiBsb29rIGludG8gcGx1Z2dpbmcgaW50byBzb21ldGhpbmcKKzs7IGxpa2UgYGZp bGVub3RpZnknLgorOzsKKzs7IE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUgZGlzYWJsZXMgaXRz ZWxmIGlmIHRoZSB1c2VyIGhhcyBzb21lIHRhZ3MKKzs7IHRhYmxlIGFscmVhZHkgdmlzaXRl ZCAod2l0aCBgTS14IHZpc2l0LXRhZ3MtdGFibGUnLCBvciB0aHJvdWdoIGFuCis7OyBleHBs aWNpdCBwcm9tcHQgdHJpZ2dlcmVkIGJ5IHNvbWUgZmVhdHVyZSB0aGF0IHJlcXVpcmVzIHRh Z3MpLgorCis7OzsgQ29kZToKKworKHJlcXVpcmUgJ2NsLWxpYikKKworKGRlZmdyb3VwIGV0 YWdzLXJlZ2VuIG5pbAorICAiQXV0by0ocmUpZ2VuZXJhdGluZyB0YWdzLiIKKyAgOmdyb3Vw ICd0b29scykKKworKGRlZnZhciBldGFncy1yZWdlbi0tdGFncy1maWxlIG5pbCkKKyhkZWZ2 YXIgZXRhZ3MtcmVnZW4tLXRhZ3Mtcm9vdCBuaWwpCisoZGVmdmFyIGV0YWdzLXJlZ2VuLS1u ZXctZmlsZSBuaWwpCisKKyhkZWNsYXJlLWZ1bmN0aW9uIHByb2plY3Qtcm9vdCAicHJvamVj dCIpCisoZGVjbGFyZS1mdW5jdGlvbiBwcm9qZWN0LWZpbGVzICJwcm9qZWN0IikKKyhkZWNs YXJlLWZ1bmN0aW9uIGRpcmVkLWdsb2ItcmVnZXhwICJkaXJlZCIpCisKKyhkZWZjdXN0b20g ZXRhZ3MtcmVnZW4tcHJvZ3JhbSAoZXhlY3V0YWJsZS1maW5kICJldGFncyIpCisgICJOYW1l IG9mIHRoZSBldGFncyBwcm9ncmFtLgorCitJZiB5b3Ugb25seSBoYXZlIGBjdGFncycgaW5z dGFsbGVkLCB5b3UgY2FuIGFsc28gc2V0IHRoaXMgdG8KK1wiY3RhZ3MgLWVcIi4gIFNvbWUg ZmVhdHVyZXMgbWlnaHQgbm90IGJlIHN1cHBvcnRlZCB0aGlzIHdheS4iCisgIDs7IEFsd2F5 cyBoYXZpbmcgb3VyICdldGFncycgaGVyZSB3b3VsZCBiZSBlYXNpZXIsIGJ1dCB3ZSBjYW4n dAorICA7OyBhbHdheXMgcmVseSBvbiBpdCBiZWluZyBpbnN0YWxsZWQuICBTbyBpdCBtaWdo dCBiZSBjdGFncydzIGV0YWdzLgorICA6dHlwZSAnZmlsZSkKKworKGRlZmN1c3RvbSBldGFn cy1yZWdlbi10YWdzLWZpbGUgIlRBR1MiCisgICJOYW1lIG9mIHRoZSB0YWdzIGZpbGUgdG8g Y3JlYXRlIGluc2lkZSB0aGUgcHJvamVjdC4KKworVGhpcyB2YWx1ZSBzaG91bGQgZWl0aGVy IGJlIGEgc2ltcGxlIGZpbGUgbmFtZSAobm8gZGlyZWN0b3J5CitzcGVjaWZpZWQpLCBvciBh IGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhIHByb2plY3Qgcm9vdCBkaXJlY3RvcnkKK2FuZCBy ZXR1cm5zIGEgZGlzdGluY3QgZmlsZSBuYW1lIGZvciB0aGUgdGFncyBmaWxlIGZvciBpdC4g IFRoZQorbGF0dGVyIG9wdGlvbiBpcyBtb3N0IHVzZWZ1bCB3aGVuIHlvdSBwcmVmZXIgdG8g c3RvcmUgdGhlIHRhZworZmlsZXMgc29tZXdoZXJlIG91dHNpZGUgLS0gZS5nLiBpbiBgdGVt cG9yYXJ5LWZpbGUtZGlyZWN0b3J5Jy4iCisgIDp0eXBlICcoY2hvaWNlIChzdHJpbmcgOnRh ZyAiRmlsZSBuYW1lIikKKyAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uIDp0YWcgIkZ1bmN0 aW9uIHRoYXQgcmV0dXJucyBmaWxlIG5hbWUiKSkpCisKKyhkZWZjdXN0b20gZXRhZ3MtcmVn ZW4tcHJvZ3JhbS1vcHRpb25zIG5pbAorICAiTGlzdCBvZiBhZGRpdGlvbmFsIG9wdGlvbnMg dG8gcGFzcyB0byB0aGUgZXRhZ3MgcHJvZ3JhbS4iCisgIDp0eXBlICcocmVwZWF0IHN0cmlu ZykpCisKKyhkZWZjdXN0b20gZXRhZ3MtcmVnZW4tcmVnZXhwLWFsaXN0IG5pbAorICAiTWFw cGluZyBvZiBsYW5ndWFnZXMgdG8gYWRkaXRpb25hbCByZWdleHBzIGZvciB0YWdzLgorCitU aGUgdmFsdWUgbXVzdCBiZSBhIGxpc3Qgb2YgY29uc2VzIChMQU5HVUFHRVMgLiBUQUctUkVH RVhQUykKK3doZXJlIGJvdGggY2FyIGFuZCBjZHIgYXJlIGxpc3RzIG9mIHN0cmluZ3MuCisK K0VhY2ggbGFuZ3VhZ2Ugc2hvdWxkIGJlIG9uZSBvZiB0aGUgcmVjb2duaXplZCBieSBldGFn cywgc2VlCitgZXRhZ3MgLS1oZWxwJy4gIEVhY2ggdGFnIHJlZ2V4cCBzaG91bGQgYmUgYSBz dHJpbmcgaW4gdGhlIGZvcm1hdAorYXMgZG9jdW1lbnRlZCBmb3IgdGhlIGAtLXJlZ2V4JyBh cmd1bWVudHMuCisKK1dlIGN1cnJlbnRseSBzdXBwb3J0IG9ubHkgRW1hY3MncyBldGFncyBw cm9ncmFtIHdpdGggdGhpcyBvcHRpb24uIgorICA6dHlwZSAnKHJlcGVhdAorICAgICAgICAg IChjb25zCisgICAgICAgICAgIDp0YWcgIkxhbmd1YWdlcyBncm91cCIKKyAgICAgICAgICAg KHJlcGVhdCAoc3RyaW5nIDp0YWcgIkxhbmd1YWdlIG5hbWUiKSkKKyAgICAgICAgICAgKHJl cGVhdCAoc3RyaW5nIDp0YWcgIlRhZyBSZWdleHAiKSkpKSkKKworOzs7IyMjYXV0b2xvYWQK KyhwdXQgJ2V0YWdzLXJlZ2VuLXJlZ2V4cC1hbGlzdCAnc2FmZS1sb2NhbC12YXJpYWJsZQor ICAgICAobGFtYmRhICh2YWx1ZSkKKyAgICAgICAoYW5kIChsaXN0cCB2YWx1ZSkKKyAgICAg ICAgICAgIChzZXEtZXZlcnktcAorICAgICAgICAgICAgIChsYW1iZGEgKGdyb3VwKQorICAg ICAgICAgICAgICAgKGFuZCAoY29uc3AgZ3JvdXApCisgICAgICAgICAgICAgICAgICAgIChs aXN0cCAoY2FyIGdyb3VwKSkKKyAgICAgICAgICAgICAgICAgICAgKGxpc3RwIChjZHIgZ3Jv dXApKQorICAgICAgICAgICAgICAgICAgICAoc2VxLWV2ZXJ5LXAgIydzdHJpbmdwIChjYXIg Z3JvdXApKQorICAgICAgICAgICAgICAgICAgICAoc2VxLWV2ZXJ5LXAgIydzdHJpbmdwIChj ZHIgZ3JvdXApKSkpCisgICAgICAgICAgICAgdmFsdWUpKSkpCisKKzs7IFdlIGhhdmUgdG8g bGlzdCBhbGwgZXh0ZW5zaW9uczogZXRhZ3MgZmFsbHMgYmFjayB0byBGb3J0cmFuCis7OyB3 aGVuIGl0IGNhbm5vdCBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgdGhlIGZpbGUuCis7OyBodHRw Oi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZW1hY3MtZGV2ZWwvMjAxOC0wMS9tc2cw MDMyMy5odG1sCisoZGVmY3VzdG9tIGV0YWdzLXJlZ2VuLWZpbGUtZXh0ZW5zaW9ucworICAn KCJyYiIgImpzIiAicHkiICJwbCIgImVsIiAiYyIgImNwcCIgImNjIiAiaCIgImhoIiAiaHBw IgorICAgICJqYXZhIiAiZ28iICJjbCIgImxpc3AiICJwcm9sb2ciICJwaHAiICJlcmwiICJo cmwiCisgICAgIkYiICJmIiAiZjkwIiAiZm9yIiAiY3MiICJhIiAiYXNtIiAiYWRzIiAiYWRi IiAiYWRhIikKKyAgIkNvZGUgZmlsZSBleHRlbnNpb25zLgorCitGaWxlIGV4dGVuc2lvbnMg dG8gZ2VuZXJhdGUgdGhlIHRhZ3MgZm9yLiIKKyAgOnR5cGUgJyhyZXBlYXQgKHN0cmluZyA6 dGFnICJGaWxlIGV4dGVuc2lvbiIpKSkKKworOzs7IyMjYXV0b2xvYWQKKyhwdXQgJ2V0YWdz LXJlZ2VuLWZpbGUtZXh0ZW5zaW9ucyAnc2FmZS1sb2NhbC12YXJpYWJsZQorICAgICAobGFt YmRhICh2YWx1ZSkgKGFuZCAobGlzdHAgdmFsdWUpIChzZXEtZXZlcnktcCAjJ3N0cmluZ3Ag dmFsdWUpKSkpCisKKzs7IEZJWE1FOiBXZSBkb24ndCBzdXBwb3J0IHJvb3QgYW5jaG9yaW5n IHlldC4KKyhkZWZjdXN0b20gZXRhZ3MtcmVnZW4taWdub3JlcyBuaWwKKyAgIkFkZGl0aW9u YWwgaWdub3JlIHJ1bGVzLCBpbiB0aGUgZm9ybWF0IG9mIGBwcm9qZWN0LWlnbm9yZXMnLiIK KyAgOnR5cGUgJyhyZXBlYXQKKyAgICAgICAgICAoc3RyaW5nIDp0YWcgIkdsb2IgdG8gaWdu b3JlIikpKQorCis7OzsjIyNhdXRvbG9hZAorKHB1dCAnZXRhZ3MtcmVnZW4taWdub3JlcyAn c2FmZS1sb2NhbC12YXJpYWJsZQorICAgICAobGFtYmRhICh2YWx1ZSkgKGFuZCAobGlzdHAg dmFsdWUpIChzZXEtZXZlcnktcCAjJ3N0cmluZ3AgdmFsdWUpKSkpCisKKyhkZWZ2YXIgZXRh Z3MtcmVnZW4tLWVycm9ycy1idWZmZXItbmFtZSAiKmV0YWdzLXJlZ2VuLXRhZ3MtZXJyb3Jz KiIpCisKKyhkZWZ1biBldGFncy1yZWdlbi0tYWxsLW10aW1lcyAocHJvaikKKyAgKGxldCAo KGZpbGVzIChldGFncy1yZWdlbi0tYWxsLWZpbGVzIHByb2opKQorICAgICAgICAobXRpbWVz IChtYWtlLWhhc2gtdGFibGUgOnRlc3QgJ2VxdWFsKSkKKyAgICAgICAgZmlsZS1uYW1lLWhh bmRsZXItYWxpc3QpCisgICAgKGRvbGlzdCAoZiBmaWxlcykKKyAgICAgIChjb25kaXRpb24t Y2FzZSBuaWwKKyAgICAgICAgICAocHV0aGFzaCBmCisgICAgICAgICAgICAgICAgICAgKGZp bGUtYXR0cmlidXRlLW1vZGlmaWNhdGlvbi10aW1lCisgICAgICAgICAgICAgICAgICAgIChm aWxlLWF0dHJpYnV0ZXMgZikpCisgICAgICAgICAgICAgICAgICAgbXRpbWVzKQorICAgICAg ICAoZmlsZS1taXNzaW5nIG5pbCkpKQorICAgIG10aW1lcykpCisKKyhkZWZ1biBldGFncy1y ZWdlbi0tY2hvb3NlLXRhZ3MtZmlsZSAocHJvaikKKyAgKGlmIChmdW5jdGlvbnAgZXRhZ3Mt cmVnZW4tdGFncy1maWxlKQorICAgICAgKGZ1bmNhbGwgZXRhZ3MtcmVnZW4tdGFncy1maWxl IChwcm9qZWN0LXJvb3QgcHJvaikpCisgICAgKGV4cGFuZC1maWxlLW5hbWUgZXRhZ3MtcmVn ZW4tdGFncy1maWxlIChwcm9qZWN0LXJvb3QgcHJvaikpKSkKKworKGRlZnVuIGV0YWdzLXJl Z2VuLS1yZWZyZXNoIChwcm9qKQorICAoc2F2ZS1leGN1cnNpb24KKyAgICAobGV0KiAoKHRh Z3MtZmlsZSAoZXRhZ3MtcmVnZW4tLWNob29zZS10YWdzLWZpbGUgcHJvaikpCisgICAgICAg ICAgICh0YWdzLW10aW1lIChmaWxlLWF0dHJpYnV0ZS1tb2RpZmljYXRpb24tdGltZQorICAg ICAgICAgICAgICAgICAgICAgICAgKGZpbGUtYXR0cmlidXRlcyB0YWdzLWZpbGUpKSkKKyAg ICAgICAgICAgKGFsbC1tdGltZXMgKGV0YWdzLXJlZ2VuLS1hbGwtbXRpbWVzIHByb2opKQor ICAgICAgICAgICBhZGRlZC1maWxlcworICAgICAgICAgICBjaGFuZ2VkLWZpbGVzCisgICAg ICAgICAgIHJlbW92ZWQtZmlsZXMpCisgICAgICAoZXRhZ3MtcmVnZW4tLXZpc2l0LXRhYmxl IHRhZ3MtZmlsZSAocHJvamVjdC1yb290IHByb2opKQorICAgICAgKHNldC1idWZmZXIgKGdl dC1maWxlLWJ1ZmZlciB0YWdzLWZpbGUpKQorICAgICAgKGRvbGlzdCAoZmlsZSAodGFncy10 YWJsZS1maWxlcykpCisgICAgICAgIChsZXQgKChtdGltZSAoZ2V0aGFzaCBmaWxlIGFsbC1t dGltZXMpKSkKKyAgICAgICAgICAoY29uZAorICAgICAgICAgICAoKG51bGwgbXRpbWUpCisg ICAgICAgICAgICAocHVzaCBmaWxlIHJlbW92ZWQtZmlsZXMpKQorICAgICAgICAgICAoKHRp bWUtbGVzcy1wIHRhZ3MtbXRpbWUgbXRpbWUpCisgICAgICAgICAgICAocHVzaCBmaWxlIGNo YW5nZWQtZmlsZXMpCisgICAgICAgICAgICAocmVtaGFzaCBmaWxlIGFsbC1tdGltZXMpKQor ICAgICAgICAgICAodAorICAgICAgICAgICAgKHJlbWhhc2ggZmlsZSBhbGwtbXRpbWVzKSkp KSkKKyAgICAgIChtYXBoYXNoCisgICAgICAgKGxhbWJkYSAoa2V5IF92YWx1ZSkKKyAgICAg ICAgIChwdXNoIGtleSBhZGRlZC1maWxlcykpCisgICAgICAgYWxsLW10aW1lcykKKyAgICAg IChpZiAoPiAoKyAobGVuZ3RoIGFkZGVkLWZpbGVzKQorICAgICAgICAgICAgICAgIChsZW5n dGggY2hhbmdlZC1maWxlcykKKyAgICAgICAgICAgICAgICAobGVuZ3RoIHJlbW92ZWQtZmls ZXMpKQorICAgICAgICAgICAgIDEwMCkKKyAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAg IChtZXNzYWdlICJldGFncy1yZWdlbjogVG9vIG1hbnkgY2hhbmdlcywgZmFsbGluZyBiYWNr IHRvIGZ1bGwgcmVzY2FuIikKKyAgICAgICAgICAgIChldGFncy1yZWdlbi0tdGFncy1jbGVh bnVwKSkKKyAgICAgICAgKGRvbGlzdCAoZmlsZSAobmNvbmMgcmVtb3ZlZC1maWxlcyBjaGFu Z2VkLWZpbGVzKSkKKyAgICAgICAgICAoZXRhZ3MtcmVnZW4tLXJlbW92ZS10YWcgZmlsZSkp CisgICAgICAgICh3aGVuIChvciBjaGFuZ2VkLWZpbGVzIGFkZGVkLWZpbGVzKQorICAgICAg ICAgIChhcHBseSAjJ2V0YWdzLXJlZ2VuLS1hcHBlbmQtdGFncworICAgICAgICAgICAgICAg ICAobmNvbmMgY2hhbmdlZC1maWxlcyBhZGRlZC1maWxlcykpKQorICAgICAgICAod2hlbiAo b3IgY2hhbmdlZC1maWxlcyBhZGRlZC1maWxlcyByZW1vdmVkLWZpbGVzKQorICAgICAgICAg IChsZXQgKChzYXZlLXNpbGVudGx5IHQpCisgICAgICAgICAgICAgICAgKG1lc3NhZ2UtbG9n LW1heCBuaWwpKQorICAgICAgICAgICAgKHNhdmUtYnVmZmVyIDApKSkpKSkpCisKKyhkZWZ1 biBldGFncy1yZWdlbi0tbWF5YmUtZ2VuZXJhdGUgKCkKKyAgKGxldCAoKHByb2opKQorICAg ICh3aGVuIChhbmQgZXRhZ3MtcmVnZW4tLXRhZ3Mtcm9vdAorICAgICAgICAgICAgICAgKG5v dCAoZmlsZS1pbi1kaXJlY3RvcnktcCBkZWZhdWx0LWRpcmVjdG9yeQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldGFncy1yZWdlbi0tdGFncy1yb290KSkp CisgICAgICAoZXRhZ3MtcmVnZW4tLXRhZ3MtY2xlYW51cCkpCisgICAgKHdoZW4gKGFuZCAo bm90IGV0YWdzLXJlZ2VuLS10YWdzLXJvb3QpCisgICAgICAgICAgICAgICA7OyBJZiBleGlz dGluZyB0YWJsZSBpcyB2aXNpdGVkIHRoYXQncyBub3QgZ2VuZXJhdGVkIGJ5CisgICAgICAg ICAgICAgICA7OyB0aGlzIG1vZGUsIHNraXAgYWxsIGZ1bmN0aW9uYWxpdHkuCisgICAgICAg ICAgICAgICAobm90IChvciB0YWdzLWZpbGUtbmFtZQorICAgICAgICAgICAgICAgICAgICAg ICAgdGFncy10YWJsZS1saXN0KSkKKyAgICAgICAgICAgICAgIChmaWxlLWV4aXN0cy1wIChl dGFncy1yZWdlbi0tY2hvb3NlLXRhZ3MtZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChzZXRxIHByb2ogKHByb2plY3QtY3VycmVudCkpKSkpCisgICAgICAobWVzc2Fn ZSAiRm91bmQgZXhpc3RpbmcgdGFncyB0YWJsZSwgcmVmcmVzaGluZy4uLiIpCisgICAgICAo ZXRhZ3MtcmVnZW4tLXJlZnJlc2ggcHJvaikpCisgICAgKHdoZW4gKGFuZCAobm90IChvciB0 YWdzLWZpbGUtbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgdGFncy10YWJsZS1saXN0 KSkKKyAgICAgICAgICAgICAgIChzZXRxIHByb2ogKG9yIHByb2ogKHByb2plY3QtY3VycmVu dCkpKSkKKyAgICAgIChtZXNzYWdlICJHZW5lcmF0aW5nIG5ldyB0YWdzIHRhYmxlLi4uIikK KyAgICAgIChsZXQgKChzdGFydCAodGltZS10by1zZWNvbmRzKSkpCisgICAgICAgIChldGFn cy1yZWdlbi0tdGFncy1nZW5lcmF0ZSBwcm9qKQorICAgICAgICAobWVzc2FnZSAiLi4uZG9u ZSAoJS4yZiBzKSIgKC0gKHRpbWUtdG8tc2Vjb25kcykgc3RhcnQpKSkpKSkKKworKGRlZnVu IGV0YWdzLXJlZ2VuLS1hbGwtZmlsZXMgKHByb2opCisgIChsZXQqICgocm9vdCAocHJvamVj dC1yb290IHByb2opKQorICAgICAgICAgKGRlZmF1bHQtZGlyZWN0b3J5IHJvb3QpCisgICAg ICAgICA7OyBUT0RPOiBNYWtlIHRoZSBzY2FubmluZyBtb3JlIGVmZmljaWVudCwgZS5nLiBt b3ZlIHRoZQorICAgICAgICAgOzsgZmlsdGVyaW5nIGJ5IGdsb2IgdG8gcHJvamVjdCAocHJv amVjdC1maWxlcy1maWx0ZXJlZC4uLikuCisgICAgICAgICAoZmlsZXMgKHByb2plY3QtZmls ZXMgcHJvaikpCisgICAgICAgICAobWF0Y2gtcmUgKGNvbmNhdAorICAgICAgICAgICAgICAg ICAgICAiXFwuIgorICAgICAgICAgICAgICAgICAgICAocmVnZXhwLW9wdCBldGFncy1yZWdl bi1maWxlLWV4dGVuc2lvbnMpCisgICAgICAgICAgICAgICAgICAgICJcXCciKSkKKyAgICAg ICAgIChpci1zdGFydCAoMS0gKGxlbmd0aCByb290KSkpCisgICAgICAgICAoaWdub3Jlcy1y ZWdleHBzCisgICAgICAgICAgKG1hcGNhciAjJ2V0YWdzLXJlZ2VuLS1pZ25vcmUtcmVnZXhw CisgICAgICAgICAgICAgICAgICBldGFncy1yZWdlbi1pZ25vcmVzKSkpCisgICAgKGNsLWRl bGV0ZS1pZgorICAgICAobGFtYmRhIChmKSAob3IgKG5vdCAoc3RyaW5nLW1hdGNoLXAgbWF0 Y2gtcmUgZikpCisgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wICIvXFwuIyIgZikK KyAgICAgICAgICAgICAgICAoY2wtc29tZSAobGFtYmRhIChpZ25vcmUpIChzdHJpbmctbWF0 Y2ggaWdub3JlIGYgaXItc3RhcnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9y ZXMtcmVnZXhwcykpKQorICAgICBmaWxlcykpKQorCisoZGVmdW4gZXRhZ3MtcmVnZW4tLWln bm9yZS1yZWdleHAgKGlnbm9yZSkKKyAgKHJlcXVpcmUgJ2RpcmVkKQorICA7OyBJdCdzIHNv bWV3aGF0IGJyaXR0bGUgdG8gcmVseSBvbiBEaXJlZC4KKyAgKGxldCAoKHJlIChkaXJlZC1n bG9iLXJlZ2V4cCBpZ25vcmUpKSkKKyAgICA7OyBXZSBjb3VsZCBpbXBsZW1lbnQgcm9vdCBh bmNob3JpbmcgaGVyZSwgYnV0IFxcPSBkb2Vzbid0IHdvcmsgaW4KKyAgICA7OyBzdHJpbmct bWF0Y2ggOi0oLgorICAgIChjb25jYXQgKHVubGVzcyAoZXEgPy8gKGFyZWYgcmUgMykpICIv IikKKyAgICAgICAgICAgIDs7IEN1dHRpbmcgb2ZmIHRoZSBhbmNob3JzLgorICAgICAgICAg ICAgKHN1YnN0cmluZyByZSAyICgtIChsZW5ndGggcmUpIDIpKQorICAgICAgICAgICAgKHVu bGVzcyAoZXEgPy8gKGFyZWYgcmUgKC0gKGxlbmd0aCByZSkgMykpKQorICAgICAgICAgICAg ICA7OyBFaXRoZXIgbWF0Y2ggYSBmdWxsIG5hbWUgc2VnbWVudCwgb3IgZW9zLgorICAgICAg ICAgICAgICAiXFwoPzovXFx8XFwnXFwpIikpKSkKKworKGRlZnVuIGV0YWdzLXJlZ2VuLS10 YWdzLWdlbmVyYXRlIChwcm9qKQorICAobGV0KiAoKHJvb3QgKHByb2plY3Qtcm9vdCBwcm9q KSkKKyAgICAgICAgIChkZWZhdWx0LWRpcmVjdG9yeSByb290KQorICAgICAgICAgKGZpbGVz IChldGFncy1yZWdlbi0tYWxsLWZpbGVzIHByb2opKQorICAgICAgICAgKHRhZ3MtZmlsZSAo ZXRhZ3MtcmVnZW4tLWNob29zZS10YWdzLWZpbGUgcHJvaikpCisgICAgICAgICAoY3RhZ3Mt cCAoZXRhZ3MtcmVnZW4tLWN0YWdzLXApKQorICAgICAgICAgKGNvbW1hbmQgKGZvcm1hdCAi JXMgJXMgJXMgLSAtbyAlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZXRhZ3MtcmVn ZW4tcHJvZ3JhbQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY29uY2F0ICMnaWRl bnRpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXRhZ3MtcmVn ZW4tLWJ1aWxkLXByb2dyYW0tb3B0aW9ucyBjdGFncy1wKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIgIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg Y3RhZ3MncyBldGFncyByZXF1aXJlcyAnLUwnIGZvciBzdGRpbiBpbnB1dC4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKGlmIGN0YWdzLXAgIi1MIiAiIikKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgdGFncy1maWxlKSkpCisgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAg IChtYXBjIChsYW1iZGEgKGYpCisgICAgICAgICAgICAgIChpbnNlcnQgZiAiXG4iKSkKKyAg ICAgICAgICAgIGZpbGVzKQorICAgICAgKHNoZWxsLWNvbW1hbmQtb24tcmVnaW9uIChwb2lu dC1taW4pIChwb2ludC1tYXgpIGNvbW1hbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuaWwgbmlsIGV0YWdzLXJlZ2VuLS1lcnJvcnMtYnVmZmVyLW5hbWUgdCkpCisgICAg KGV0YWdzLXJlZ2VuLS12aXNpdC10YWJsZSB0YWdzLWZpbGUgcm9vdCkpKQorCisoZGVmdW4g ZXRhZ3MtcmVnZW4tLXZpc2l0LXRhYmxlICh0YWdzLWZpbGUgcm9vdCkKKyAgOzsgSW52YWxp ZGF0ZSB0aGUgc2Nhbm5lZCB0YWdzIGFmdGVyIGFueSBjaGFuZ2UgaXMgd3JpdHRlbiB0byBk aXNrLgorICAoYWRkLWhvb2sgJ2FmdGVyLXNhdmUtaG9vayAjJ2V0YWdzLXJlZ2VuLS11cGRh dGUtZmlsZSkKKyAgKGFkZC1ob29rICdiZWZvcmUtc2F2ZS1ob29rICMnZXRhZ3MtcmVnZW4t LW1hcmstYXMtbmV3KQorICAoc2V0cSBldGFncy1yZWdlbi0tdGFncy1maWxlIHRhZ3MtZmls ZQorICAgICAgICBldGFncy1yZWdlbi0tdGFncy1yb290IHJvb3QpCisgICh2aXNpdC10YWdz LXRhYmxlIGV0YWdzLXJlZ2VuLS10YWdzLWZpbGUpKQorCisoZGVmdW4gZXRhZ3MtcmVnZW4t LWN0YWdzLXAgKCkKKyAgKHN0cmluZy1zZWFyY2ggIkN0YWdzIgorICAgICAgICAgICAgICAg ICAoc2hlbGwtY29tbWFuZC10by1zdHJpbmcKKyAgICAgICAgICAgICAgICAgIChmb3JtYXQg IiVzIC0tdmVyc2lvbiIgZXRhZ3MtcmVnZW4tcHJvZ3JhbSkpKSkKKworKGRlZnVuIGV0YWdz LXJlZ2VuLS1idWlsZC1wcm9ncmFtLW9wdGlvbnMgKGN0YWdzLXApCisgICh3aGVuIChhbmQg ZXRhZ3MtcmVnZW4tcmVnZXhwLWFsaXN0IGN0YWdzLXApCisgICAgKHVzZXItZXJyb3IgImV0 YWdzLXJlZ2VuLXJlZ2V4cC1hbGlzdCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggQ3RhZ3MiKSkK KyAgKG5jb25jCisgICAobWFwY2FuCisgICAgKGxhbWJkYSAoZ3JvdXApCisgICAgICAobWFw Y2FuCisgICAgICAgKGxhbWJkYSAobGFuZykKKyAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAo cmVnZXhwKQorICAgICAgICAgICAgICAgICAgIChjb25jYXQgIi0tcmVnZXg9IgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHNoZWxsLXF1b3RlLWFyZ3VtZW50CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGZvcm1hdCAieyVzfSVzIiBsYW5nIHJlZ2V4cCkpKSkKKyAg ICAgICAgICAgICAgICAgKGNkciBncm91cCkpKQorICAgICAgIChjYXIgZ3JvdXApKSkKKyAg ICBldGFncy1yZWdlbi1yZWdleHAtYWxpc3QpCisgICBldGFncy1yZWdlbi1wcm9ncmFtLW9w dGlvbnMpKQorCisoZGVmdW4gZXRhZ3MtcmVnZW4tLXVwZGF0ZS1maWxlICgpCisgIDs7IFRP RE86IE1heWJlIG9ubHkgZG8gdGhpcyB3aGVuIEVtYWNzIGlzIGlkbGUgZm9yIGEgYml0LiAg T3IgZGVmZXIKKyAgOzsgdGhlIHVwZGF0ZXMgYW5kIGRvIHRoZW0gbGF0ZXIgaW4gYnVyc3Rz IHdoZW4gdGhlIHRhYmxlIGlzIHVzZWQuCisgIChsZXQqICgoZmlsZS1uYW1lIGJ1ZmZlci1m aWxlLW5hbWUpCisgICAgICAgICAodGFncy1maWxlLWJ1ZiAoYW5kIGV0YWdzLXJlZ2VuLS10 YWdzLXJvb3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldC1maWxlLWJ1ZmZl ciBldGFncy1yZWdlbi0tdGFncy1maWxlKSkpCisgICAgICAgICAocmVsbmFtZSAoY29uY2F0 ICIvIiAoZmlsZS1yZWxhdGl2ZS1uYW1lIGZpbGUtbmFtZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldGFncy1yZWdlbi0tdGFncy1yb290 KSkpCisgICAgICAgICAoaWdub3JlcyBldGFncy1yZWdlbi1pZ25vcmVzKQorICAgICAgICAg cHIgc2hvdWxkLXNjYW4pCisgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAod2hlbiB0YWdz LWZpbGUtYnVmCisgICAgICAgIChjb25kCisgICAgICAgICAoKGFuZCBldGFncy1yZWdlbi0t bmV3LWZpbGUKKyAgICAgICAgICAgICAgIChraWxsLWxvY2FsLXZhcmlhYmxlICdldGFncy1y ZWdlbi0tbmV3LWZpbGUpCisgICAgICAgICAgICAgICAoc2V0cSBwciAocHJvamVjdC1jdXJy ZW50KSkKKyAgICAgICAgICAgICAgIChlcXVhbCAocHJvamVjdC1yb290IHByKSBldGFncy1y ZWdlbi0tdGFncy1yb290KQorICAgICAgICAgICAgICAgKG1lbWJlciBmaWxlLW5hbWUgKHBy b2plY3QtZmlsZXMgcHIpKSkKKyAgICAgICAgICAoc2V0LWJ1ZmZlciB0YWdzLWZpbGUtYnVm KQorICAgICAgICAgIChzZXRxIHNob3VsZC1zY2FuIHQpKQorICAgICAgICAgKChwcm9nbiAo c2V0LWJ1ZmZlciB0YWdzLWZpbGUtYnVmKQorICAgICAgICAgICAgICAgICAoZXRhZ3MtcmVn ZW4tLXJlbW92ZS10YWcgZmlsZS1uYW1lKSkKKyAgICAgICAgICAoc2V0cSBzaG91bGQtc2Nh biB0KSkpKQorICAgICAgKHdoZW4gKGFuZCBzaG91bGQtc2NhbgorICAgICAgICAgICAgICAg ICAobm90IChjbC1zb21lCisgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGlnbm9y ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKGV0YWdzLXJlZ2VuLS1pZ25vcmUtcmVnZXhwIGlnbm9yZSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsbmFtZSkpCisgICAgICAgICAgICAgICAg ICAgICAgIGlnbm9yZXMpKSkKKyAgICAgICAgKGV0YWdzLXJlZ2VuLS1hcHBlbmQtdGFncyBm aWxlLW5hbWUpCisgICAgICAgIChsZXQgKChzYXZlLXNpbGVudGx5IHQpCisgICAgICAgICAg ICAgIChtZXNzYWdlLWxvZy1tYXggbmlsKSkKKyAgICAgICAgICAoc2F2ZS1idWZmZXIgMCkp KSkpKQorCisoZGVmdW4gZXRhZ3MtcmVnZW4tLXJlbW92ZS10YWcgKGZpbGUtbmFtZSkKKyAg KGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgKHdoZW4gKHNlYXJjaC1mb3J3YXJkIChmb3Jt YXQgIlxmXG4lcywiIGZpbGUtbmFtZSkgbmlsIHQpCisgICAgKGxldCAoKHN0YXJ0IChtYXRj aC1iZWdpbm5pbmcgMCkpKQorICAgICAgKHNlYXJjaC1mb3J3YXJkICJcZlxuIiBuaWwgJ21v dmUpCisgICAgICAobGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkpCisgICAgICAgIChkZWxl dGUtcmVnaW9uIHN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZW9icCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAoLSAocG9pbnQpIDIpKSkpKQorICAgIHQpKQorCisoZGVmdW4gZXRhZ3MtcmVnZW4t LWFwcGVuZC10YWdzICgmcmVzdCBmaWxlLW5hbWVzKQorICAoZ290by1jaGFyIChwb2ludC1t YXgpKQorICAobGV0ICgob3B0aW9ucyAoZXRhZ3MtcmVnZW4tLWJ1aWxkLXByb2dyYW0tb3B0 aW9ucyAoZXRhZ3MtcmVnZW4tLWN0YWdzLXApKSkKKyAgICAgICAgKGluaGliaXQtcmVhZC1v bmx5IHQpKQorICAgIDs7IFhYWDogY2FsbC1wcm9jZXNzIGlzIHNpZ25pZmljYW50bHkgZmFz dGVyLCB0aG91Z2guCisgICAgOzsgTGlrZSAxMG1zIHZzIDIwbXMgaGVyZS4KKyAgICAoc2hl bGwtY29tbWFuZAorICAgICAoZm9ybWF0ICIlcyAlcyAlcyAtbyAtIgorICAgICAgICAgICAg IGV0YWdzLXJlZ2VuLXByb2dyYW0gKG1hcGNvbmNhdCAjJ2lkZW50aXR5IG9wdGlvbnMgIiAi KQorICAgICAgICAgICAgIChtYXBjb25jYXQgIydpZGVudGl0eSBmaWxlLW5hbWVzICIgIikp CisgICAgIHQgZXRhZ3MtcmVnZW4tLWVycm9ycy1idWZmZXItbmFtZSkpCisgIDs7IEZJWE1F OiBJcyB0aGVyZSBhIGJldHRlciB3YXkgdG8gZG8gdGhpcz8KKyAgOzsgQ29tcGxldGlvbiB0 YWJsZSBpcyB0aGUgb25seSByZW1haW5pbmcgcGxhY2Ugd2hlcmUgdGhlCisgIDs7IHVwZGF0 ZSBpcyBub3QgaW5jcmVtZW50YWwuCisgIChzZXRxLWRlZmF1bHQgdGFncy1jb21wbGV0aW9u LXRhYmxlIG5pbCkpCisKKyhkZWZ1biBldGFncy1yZWdlbi0tbWFyay1hcy1uZXcgKCkKKyAg KHdoZW4gKGFuZCBldGFncy1yZWdlbi0tdGFncy1yb290CisgICAgICAgICAgICAgKG5vdCBi dWZmZXItZmlsZS1udW1iZXIpKQorICAgIChzZXRxLWxvY2FsIGV0YWdzLXJlZ2VuLS1uZXct ZmlsZSB0KSkpCisKKyhkZWZ1biBldGFncy1yZWdlbi0tdGFncy1jbGVhbnVwICgpCisgICh3 aGVuIGV0YWdzLXJlZ2VuLS10YWdzLWZpbGUKKyAgICAobGV0ICgoYnVmZmVyIChnZXQtZmls ZS1idWZmZXIgZXRhZ3MtcmVnZW4tLXRhZ3MtZmlsZSkpKQorICAgICAgKGFuZCBidWZmZXIK KyAgICAgICAgICAgKGtpbGwtYnVmZmVyIGJ1ZmZlcikpKQorICAgICh0YWdzLXJlc2V0LXRh Z3MtdGFibGVzKQorICAgIChzZXRxIHRhZ3MtZmlsZS1uYW1lIG5pbAorICAgICAgICAgIHRh Z3MtdGFibGUtbGlzdCBuaWwKKyAgICAgICAgICBldGFncy1yZWdlbi0tdGFncy1maWxlIG5p bAorICAgICAgICAgIGV0YWdzLXJlZ2VuLS10YWdzLXJvb3QgbmlsKSkKKyAgKHJlbW92ZS1o b29rICdhZnRlci1zYXZlLWhvb2sgIydldGFncy1yZWdlbi0tdXBkYXRlLWZpbGUpCisgIChy ZW1vdmUtaG9vayAnYmVmb3JlLXNhdmUtaG9vayAjJ2V0YWdzLXJlZ2VuLS1tYXJrLWFzLW5l dykpCisKKyhkZWZ2YXIgZXRhZ3MtcmVnZW4tbW9kZS1tYXAgKG1ha2Utc3BhcnNlLWtleW1h cCkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVmaW5lLW1pbm9yLW1vZGUgZXRhZ3MtcmVnZW4t bW9kZQorICAiR2VuZXJhdGUgYW5kIHVwZGF0ZSB0aGUgdGFncyBhdXRvbWF0aWNhbGx5Lgor CitUaGlzIG1pbm9yIG1vZGUgZ2VuZXJhdGVzIHRoZSB0YWdzIHRhYmxlIGF1dG9tYXRpY2Fs bHkgYmFzZWQgb24KK3RoZSBjdXJyZW50IHByb2plY3QgY29uZmlndXJhdGlvbiwgYW5kIGxh dGVyIHVwZGF0ZXMgaXQgYXMgeW91CitlZGl0IHRoZSBmaWxlcyBhbmQgc2F2ZSB0aGUgY2hh bmdlcy4iCisgIDpnbG9iYWwgdAorICAoaWYgZXRhZ3MtcmVnZW4tbW9kZQorICAgICAgKHBy b2duCisgICAgICAgIChhZHZpY2UtYWRkICdldGFncy0teHJlZi1iYWNrZW5kIDpiZWZvcmUK KyAgICAgICAgICAgICAgICAgICAgIydldGFncy1yZWdlbi0tbWF5YmUtZ2VuZXJhdGUpCisg ICAgICAgIChhZHZpY2UtYWRkICd0YWdzLWNvbXBsZXRpb24tYXQtcG9pbnQtZnVuY3Rpb24g OmJlZm9yZQorICAgICAgICAgICAgICAgICAgICAjJ2V0YWdzLXJlZ2VuLS1tYXliZS1nZW5l cmF0ZSkpCisgICAgKGFkdmljZS1yZW1vdmUgJ2V0YWdzLS14cmVmLWJhY2tlbmQgIydldGFn cy1yZWdlbi0tbWF5YmUtZ2VuZXJhdGUpCisgICAgKGFkdmljZS1yZW1vdmUgJ3RhZ3MtY29t cGxldGlvbi1hdC1wb2ludC1mdW5jdGlvbiAjJ2V0YWdzLXJlZ2VuLS1tYXliZS1nZW5lcmF0 ZSkKKyAgICAoZXRhZ3MtcmVnZW4tLXRhZ3MtY2xlYW51cCkpKQorCisocHJvdmlkZSAnZXRh Z3MtcmVnZW4pCisKKzs7OyBldGFncy1yZWdlbi5lbCBlbmRzIGhlcmUK --------------tVrEx8w7FeNSDtzk4CvPYG0r--