From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id F19441FF16B
	for <inbox@lore.proxmox.com>; Thu, 14 Nov 2024 16:16:07 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 5238E34B53;
	Thu, 14 Nov 2024 16:16:10 +0100 (CET)
From: Fiona Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Date: Thu, 14 Nov 2024 16:07:51 +0100
Message-Id: <20241114150754.374376-25-f.ebner@proxmox.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241114150754.374376-1-f.ebner@proxmox.com>
References: <20241114150754.374376-1-f.ebner@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.056 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [create.pm]
Subject: [pve-devel] [PATCH container v4 24/27] restore tar archive: check
 potentially untrusted archive
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

J3RhcicgaXRzZWxmIGFscmVhZHkgcHJvdGVjdHMgYWdhaW5zdCAnLi4nIGluIGNvbXBvbmVudCBu
YW1lcyBhbmQKc3RyaXBzIGFic29sdXRlIG1lbWJlciBuYW1lcyB3aGVuIGV4dHJhY3RpbmcgKGlm
IG5vdCB1c2VkIHdpdGggdGhlCi0tYWJzb2x1dGUtbmFtZXMgb3B0aW9uKSBhbmQgaW4gZ2VuZXJh
bCBzZWVtcyBzYW5lIGZvciBleHRyYWN0aW5nLgpBZGRpdGlvbmFsbHksIHRoZSBleHRyYWN0aW9u
IGFscmVhZHkgaGFwcGVucyBpbiB0aGUgdXNlciBuYW1lc3BhY2UKYXNzb2NpYXRlZCB0byB0aGUg
Y29udGFpbmVyLiBTbyBmb3Igbm93LCBzdGFydCBvdXQgd2l0aCBzb21lIGJhc2ljCnNhbml0eSBj
aGVja3MuIFRoZSBoZWxwZXIgY2FuIHN0aWxsIGJlIGV4dGVuZGVkIHdpdGggbW9yZSBjaGVja3Mu
CgpDaGVja3M6CgoqIGxpc3QgZmlsZXMgaW4gYXJjaGl2ZSAtIHdpbGwgYWxyZWFkeSBjYXRjaCBt
YW55IGNvcnJ1cHRlZC9ib2d1cwogIGFyY2hpdmVzLgoKKiBjaGVjayB0aGF0IHRoZXJlIGFyZSBh
dCBsZWFzdCAxMCBtZW1iZXJzIC0gc2hvdWxkIGFsc28gY2F0Y2gKICBhcmNoaXZlcyBub3QgYWN0
dWFsbHkgY29udGFpbmluZyBhIGNvbnRhaW5lciByb290IGZpbGVzeXN0ZW0gb3IKICBzdHJ1Y3R1
cmFsIGlzc3VlcyBlYXJseS4KCiogY2hlY2sgdGhhdCAvc2JpbiBkaXJlY3Rvcnkgb3IgbGluayBl
eGlzdHMgaW4gYXJjaGl2ZSAtIGlkZWFsbHkgdGhlCiAgY2hlY2sgd291bGQgYmUgZm9yIC9zYmlu
L2luaXQsIGJ1dCB0aGlzIGNhbm5vdCBiZSBkb25lIGVmZmljaWVudGx5CiAgYmVmb3JlIGV4dHJh
Y3Rpb24sIGJlY2F1c2UgaXQgd291bGQgcmVxdWlyZSB0byBrZWVwIHRyYWNrIG9mIHRoZQogIHdo
b2xlIGFyY2hpdmUgdG8gYmUgYWJsZSB0byBmb2xsb3cgc3ltbGlua3MuCgoqIGFib3J0IGlmIHRo
ZXJlIGlzIGEgbXVsdGktdm9sdW1lIG1lbWJlciBpbiB0aGUgYXJjaGl2ZSAtIGNoZWFwIGFuZAog
IGlzIG5ldmVyIGV4cGVjdGVkLgoKQ2hlY2tzIHRoYXQgd2VyZSBjb25zaWRlcmVkLCBidXQgbm90
ICh5ZXQpIGFkZGVkOgoKKiBhYm9ydCB3aGVuIGEgZmlsZSBoYXMgdW5yZWFsaXN0aWNhbGx5IGxh
cmdlIHNpemUgLSB3aGlsZSB0aGlzIGNvdWxkCiAgaGVscCB0byBkZXRlY3QgY2VydGFpbiBraW5k
cyBvZiBib2d1cyBhcmNoaXZlcywgdGhlcmUgY2FuIGJlIHZhbGlkLgogIHVzZSBjYXNlcyBmb3Ig
ZXh0cmVtZWx5IGxhcmdlIHNwYXJzZSBmaWxlcywgc28gaXQncyBub3QgY2xlYXIgd2hhdAogIGEg
Z29vZCBsaW1pdCB3b3VsZCBiZSAoMSBFaUIgbWF5YmU/KS4gQWxzbywgYW4gYXR0YWNrZXIgY291
bGQganVzdAogIGFkYXB0IHRvIHN1Y2ggYSBsaW1pdCBjcmVhdGluZyBtdWx0aXBsZSBmaWxlcyBh
bmQgdGhlIGFjdHVhbAogIGV4dHJhY3Rpb24gaXMgYWxyZWFkeSBsaW1pdGVkIGJ5IHRoZSBzaXpl
IG9mIHRoZSBhbGxvY2F0ZWQgY29udGFpbmVyCiAgdm9sdW1lLgoKKiBjaGVjayB0aGF0IC9zYmlu
L2luaXQgZXhpc3RzIGFmdGVyIGV4dHJhY3RpbmcgLSBjYW5ub3QgYmUgZG9uZQogIGVmZmljaWVu
dGx5IGJlZm9yZSBleHRyYWN0aW9uLCBiZWNhdXNlIGl0IHdvdWxkIHJlcXVpcmUgdG8ga2VlcAog
IHRyYWNrIG9mIHRoZSB3aG9sZSBhcmNoaXZlIHRvIGJlIGFibGUgdG8gZm9sbG93IHN5bWxpbmtz
LiBEdXJpbmcKICBzZXR1cCB0aGVyZSBhbHJlYWR5IGlzIGRldGVjdGlvbiBvZiAvZXRjL29zLXJl
bGVhc2UsIHNvIGlzc3VlcyB3aXRoCiAgdGhlIHN0cnVjdHVyZSB3aWxsIGFscmVhZHkgYmUgbm90
aWNlZC4gQWRkaW5nIGEgaGFyZCBmYWlsIGZvcgogIHVudHJ1c3RlZCBhcmNoaXZlcyB3b3VsZCBy
ZXF1aXJlIGVpdGhlciBwYXNzaW5nIHRoYXQgaW5mb3JtYXRpb24gdG8KICB0aGUgc2V0dXAgcGhh
c2Ugb3IgZXh0cmFjdGluZyB0aGUgcHJvdGVjdGVkX2NhbGwgbWV0aG9kIGZyb20gdGhlcmUKICBp
bnRvIGEgaGVscGVyLgoKKiBhZGRpbmcgJ3Jlc3RyaWN0JyB0byB0aGUgKGNvbW1vbikgdGFyIGZs
YWdzIC0gdGhlIHRhciBtYW51YWwgKG5vdAogIHRoZSBtYW4gcGFnZSkgZG9jdW1lbnRzOiAiRGlz
YWJsZSB1c2Ugb2Ygc29tZSBwb3RlbnRpYWxseSBoYXJtZnVsCiAgJ3Rhcicgb3B0aW9ucy4gIEN1
cnJlbnRseSB0aGlzIG9wdGlvbiBkaXNhYmxlcyBzaGVsbCBpbnZvY2F0aW9uIGZyb20KICBtdWx0
aS12b2x1bWUgbWVudS4iLiBUaGUgZmxhZyB3YXMgaW50cm9kdWNlZCBpbiAyMDA1IGFuZCB0aGlz
IGlzCiAgc3RpbGwgdGhlIG9ubHkgdGhpbmcgaXQgaXMgdXNlZCBmb3IuIFRyeWluZyB0byByZXN0
b3JlIGEKICBtdWx0aS12b2x1bWUgYXJjaGl2ZSBhbHJlYWR5IGZhaWxzIHdpdGhvdXQgZ2l2aW5n
IG11bHRpcGxlICctLWZpbGUnCiAgYXJndW1lbnRzIGFuZCAnLS1tdWx0aS12b2x1bWUnLCBzbyBk
b24ndCBib3RoZXIgYWRkaW5nIHRoZSBmbGFnLgoKKiBjaGVjayBmb3JtYXQgb2YgdGFyIGZpbGUg
LSB3b3VsZCByZXF1aXJlIHlldCBhbm90aGVyIGludm9jYXRpb24gb2YKICB0aGUgZGVjb21wcmVz
c29yIGFuZCB0aGVyZSBzZWVtcyB0byBiZSBubyBidWlsdC1pbiB3YXkgdG8ganVzdAogIGRpc3Bs
YXkgdGhlIGZvcm1hdCB3aXRoICd0YXInLiBUaGUgJ2ZpbGUnIHByb2dyYW0gY291bGQgYmUgdXNl
ZCwgYnV0CiAgaXQgc2VlbXMgdG8gbm90IG1ha2UgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIG9sZCBH
TlUgYW5kIEdOVSBhbmQgb2xkCiAgUE9TSVggYW5kIFBPU0lYIGZvcm1hdHMsIHdpdGggdGhlIG9s
ZCBvbmVzIGJlaW5nIGNhbmRpZGF0ZXMgdG8KICBwcm9oaWJpdC4gU28gdGhhdCB3b3VsZCBsZWF2
ZSBqdXN0IGRldGVjdGluZyB0aGUgb2xkICd2NycgZm9ybWF0LgoKU3VnZ2VzdGVkLWJ5OiBGYWJp
YW4gR3LDvG5iaWNobGVyIDxmLmdydWVuYmljaGxlckBwcm94bW94LmNvbT4KU2lnbmVkLW9mZi1i
eTogRmlvbmEgRWJuZXIgPGYuZWJuZXJAcHJveG1veC5jb20+Ci0tLQoKTm8gY2hhbmdlcyBpbiB2
NC4KCiBzcmMvUFZFL0xYQy9DcmVhdGUucG0gfCA2NyArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgNCBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvUFZFL0xYQy9DcmVhdGUucG0gYi9zcmMvUFZF
L0xYQy9DcmVhdGUucG0KaW5kZXggZDJmNjc1ZS4uYmY0MjRmNiAxMDA2NDQKLS0tIGEvc3JjL1BW
RS9MWEMvQ3JlYXRlLnBtCisrKyBiL3NyYy9QVkUvTFhDL0NyZWF0ZS5wbQpAQCAtOTksMTIgKzk5
LDY1IEBAIG15IHN1YiB0YXJfY29tcHJlc3Npb25fb3B0aW9uIHsKICAgICB9CiB9CiAKKyMgQmFz
aWMgY2hlY2tzIHRyeWluZyB0byBkZXRlY3QgaXNzdWVzIHdpdGggYSBwb3RlbnRpYWxseSB1bnRy
dXN0ZWQgb3IgYm9ndXMgdGFyIGFyY2hpdmUuCisjIEp1c3QgbGlzdGluZyB0aGUgZmlsZXMgaXMg
YWxyZWFkeSBhIGdvb2QgY2hlY2sgYWdhaW5zdCBjb3JydXB0aW9uLgorIyAndGFyJyBpdHNlbGYg
YWxyZWFkeSBwcm90ZWN0cyBhZ2FpbnN0ICcuLicgaW4gY29tcG9uZW50IG5hbWVzIGFuZCBzdHJp
cHMgYWJzb2x1dGUgbWVtYmVyIG5hbWVzCisjIHdoZW4gZXh0cmFjdGluZywgc28gbm8gbmVlZCB0
byBjaGVjayBmb3IgdGhvc2UgaGVyZS4KK215IHN1YiBjaGVja190YXJfYXJjaGl2ZSB7CisgICAg
bXkgKCRhcmNoaXZlKSA9IEBfOworCisgICAgcHJpbnQgImNoZWNraW5nIGFyY2hpdmUuLlxuIjsK
KworICAgICMgVG8gcmVzb2x2ZSBsaW5rcyB0byBnZXQgdG8gJ3NiaW4vaW5pdCcgd291bGQgbWVh
biBrZWVwaW5nIHRyYWNrIG9mIGV2ZXJ5dGhpbmcgaW4gdGhlIGFyY2hpdmUsCisgICAgIyBiZWNh
dXNlIHRoZSB0YXJnZXQgbWlnaHQgYmUgb3JkZXJlZCBmaXJzdC4gQ2hlY2sgb25seSB0aGF0ICdz
YmluJyBleGlzdHMgaGVyZS4KKyAgICBteSAkZm91bmRfc2JpbjsKKworICAgICMgSnVzdCB0byBk
ZXRlY3QgYm9ndXMgYXJjaGl2ZXMsIGFueSB2YWxpZCBjb250YWluZXIgZmlsZXN5c3RlbSBzaG91
bGQgaGF2ZSBtb3JlIHRoYW4gdGhpcy4KKyAgICBteSAkcmVxdWlyZWRfbWVtYmVycyA9IDEwOwor
ICAgIG15ICRtZW1iZXJfY291bnQgPSAwOworCisgICAgbXkgJGNoZWNrX2ZpbGVfbGlzdCA9IHN1
YiB7CisJbXkgKCRsaW5lKSA9IEBfOworCisJIyBUaGUgZGF0ZSBpcyBpbiBJU08gODYwMSBmb3Jt
YXQuIFRoZSBsYXN0IHBhcnQgY29udGFpbnMgdGhlIHBvdGVudGlhbGx5IHF1b3RlZCBmaWxlIG5h
bWUsCisJIyBwb3RlbnRpYWxseSBmb2xsb3dlZCBieSBzb21lIGFkZGl0aW9uYWwgaW5mbyAoZS5n
LiB3aGVyZSBhIGxpbmsgcG9pbnRzIHRvKS4KKwlteSAoJHR5cGUsICRwZXJtcywgJHVpZCwgJGdp
ZCwgJHNpemUsICRkYXRlLCAkdGltZSwgJGZpbGVfaW5mbykgPQorCSAgICAkbGluZSA9fiBtIV4o
W2EtekEtWlwtXSkoXFMrKVxzKyhcZCspLyhcZCspXHMrKFxkKylccysoXFMrKVxzKyhcUyspXHMr
KC4qKSQhOworCisJZGllICJmb3VuZCBtdWx0aS12b2x1bWUgbWVtYmVyIGluIGFyY2hpdmVcbiIg
aWYgJHR5cGUgZXEgJ00nOworCisJaWYgKCEkZm91bmRfc2JpbiAmJiAoCisJICAgICgkZmlsZV9p
bmZvID1+IG0hXig/OlwuLyk/c2Jpbi8kISAmJiAkdHlwZSBlcSAnZCcpCisJICAgIHx8ICgkZmls
ZV9pbmZvID1+IG0hXig/OlwuLyk/c2JpbiAtPiEgJiYgJHR5cGUgZXEgJ2wnKQorCSAgICB8fCAo
JGZpbGVfaW5mbyA9fiBtIV4oPzpcLi8pP3NiaW4gbGluayB0byEgJiYgJHR5cGUgZXEgJ2gnKQor
CSkpIHsKKwkgICAgJGZvdW5kX3NiaW4gPSAxOworCX0KKworCSRtZW1iZXJfY291bnQrKzsKKyAg
ICB9OworCisgICAgbXkgJGNvbXByZXNzaW9uX29wdCA9IHRhcl9jb21wcmVzc2lvbl9vcHRpb24o
JGFyY2hpdmUpOworCisgICAgbXkgJGNtZCA9IFsndGFyJywgJy10dmYnLCAkYXJjaGl2ZV07Cisg
ICAgcHVzaCAkY21kLT5AKiwgJGNvbXByZXNzaW9uX29wdCBpZiAkY29tcHJlc3Npb25fb3B0Owor
ICAgIHB1c2ggJGNtZC0+QCosICctLW51bWVyaWMtb3duZXInOworCisgICAgUFZFOjpUb29sczo6
cnVuX2NvbW1hbmQoJGNtZCwgb3V0ZnVuYyA9PiAkY2hlY2tfZmlsZV9saXN0KTsKKworICAgIGRp
ZSAibm8gJ3NiaW4nIGRpcmVjdG9yeSAob3IgbGluaykgZm91bmQgaW4gYXJjaGl2ZSAnJGFyY2hp
dmUnXG4iIGlmICEkZm91bmRfc2JpbjsKKyAgICBkaWUgImxlc3MgdGhhbiAxMCBtZW1iZXJzIGlu
IGFyY2hpdmUgJyRhcmNoaXZlJ1xuIiBpZiAkbWVtYmVyX2NvdW50IDwgJHJlcXVpcmVkX21lbWJl
cnM7Cit9CisKIG15IHN1YiByZXN0b3JlX3Rhcl9hcmNoaXZlX2NvbW1hbmQgewotICAgIG15ICgk
Y29uZiwgJGNvbXByZXNzaW9uX29wdCwgJHJvb3RkaXIsICRid2xpbWl0KSA9IEBfOworICAgIG15
ICgkY29uZiwgJGNvbXByZXNzaW9uX29wdCwgJHJvb3RkaXIsICRid2xpbWl0LCAkdW50cnVzdGVk
KSA9IEBfOwogCiAgICAgbXkgKCRpZF9tYXAsICRyb290X3VpZCwgJHJvb3RfZ2lkKSA9IFBWRTo6
TFhDOjpwYXJzZV9pZF9tYXBzKCRjb25mKTsKICAgICBteSAkdXNlcm5zX2NtZCA9IFBWRTo6TFhD
Ojp1c2VybnNfY29tbWFuZCgkaWRfbWFwKTsKIAorICAgIGRpZSAicmVmdXNpbmcgdG8gcmVzdG9y
ZSBwcml2aWxlZ2VkIGNvbnRhaW5lciBiYWNrdXAgZnJvbSBleHRlcm5hbCBzb3VyY2VcbiIKKwlp
ZiAkdW50cnVzdGVkICYmICgkcm9vdF91aWQgPT0gMCB8fCAkcm9vdF9naWQgPT0gMCk7CisKICAg
ICBteSAkY21kID0gW0AkdXNlcm5zX2NtZCwgJ3RhcicsICd4cGYnLCAnLSddOwogICAgIHB1c2gg
JGNtZC0+QCosICRjb21wcmVzc2lvbl9vcHQgaWYgJGNvbXByZXNzaW9uX29wdDsKICAgICBwdXNo
ICRjbWQtPkAqLCAnLS10b3RhbHMnOwpAQCAtMTI3LDcgKzE4MCw3IEBAIG15IHN1YiByZXN0b3Jl
X3Rhcl9hcmNoaXZlX2NvbW1hbmQgewogfQogCiBzdWIgcmVzdG9yZV90YXJfYXJjaGl2ZSB7Ci0g
ICAgbXkgKCRhcmNoaXZlLCAkcm9vdGRpciwgJGNvbmYsICRub191bnBhY2tfZXJyb3IsICRid2xp
bWl0KSA9IEBfOworICAgIG15ICgkYXJjaGl2ZSwgJHJvb3RkaXIsICRjb25mLCAkbm9fdW5wYWNr
X2Vycm9yLCAkYndsaW1pdCwgJHVudHJ1c3RlZCkgPSBAXzsKIAogICAgIG15ICRhcmNoaXZlX2Zo
OwogICAgIG15ICR0YXJfaW5wdXQgPSAnPCZTVERJTic7CkBAIC0xNDIsNyArMTk1LDEyIEBAIHN1
YiByZXN0b3JlX3Rhcl9hcmNoaXZlIHsKIAkkdGFyX2lucHV0ID0gJzwmJy5maWxlbm8oJGFyY2hp
dmVfZmgpOwogICAgIH0KIAotICAgIG15ICRjbWQgPSByZXN0b3JlX3Rhcl9hcmNoaXZlX2NvbW1h
bmQoJGNvbmYsICRjb21wcmVzc2lvbl9vcHQsICRyb290ZGlyLCAkYndsaW1pdCk7CisgICAgaWYg
KCR1bnRydXN0ZWQpIHsKKwlkaWUgImNhbm5vdCB2ZXJpZnkgdW50cnVzdGVkIGFyY2hpdmUgb24g
U1RESU5cbiIgaWYgJGFyY2hpdmUgZXEgJy0nOworCWNoZWNrX3Rhcl9hcmNoaXZlKCRhcmNoaXZl
KTsKKyAgICB9CisKKyAgICBteSAkY21kID0gcmVzdG9yZV90YXJfYXJjaGl2ZV9jb21tYW5kKCRj
b25mLCAkY29tcHJlc3Npb25fb3B0LCAkcm9vdGRpciwgJGJ3bGltaXQsICR1bnRydXN0ZWQpOwog
CiAgICAgaWYgKCRhcmNoaXZlIGVxICctJykgewogCXByaW50ICJleHRyYWN0aW5nIGFyY2hpdmUg
ZnJvbSBTVERJTlxuIjsKQEAgLTE3MCw3ICsyMjgsNyBAQCBzdWIgcmVzdG9yZV9leHRlcm5hbF9h
cmNoaXZlIHsKIAkgICAgbXkgJHRhcl9wYXRoID0gJGluZm8tPnsndGFyLXBhdGgnfQogCQlvciBk
aWUgImRpZCBub3QgZ2V0IHBhdGggdG8gdGFyIGZpbGUgZnJvbSBiYWNrdXAgcHJvdmlkZXJcbiI7
CiAJICAgIGRpZSAibm90IGEgcmVndWxhciBmaWxlICckdGFyX3BhdGgnIiBpZiAhLWYgJHRhcl9w
YXRoOwotCSAgICByZXN0b3JlX3Rhcl9hcmNoaXZlKCR0YXJfcGF0aCwgJHJvb3RkaXIsICRjb25m
LCAkbm9fdW5wYWNrX2Vycm9yLCAkYndsaW1pdCk7CisJICAgIHJlc3RvcmVfdGFyX2FyY2hpdmUo
JHRhcl9wYXRoLCAkcm9vdGRpciwgJGNvbmYsICRub191bnBhY2tfZXJyb3IsICRid2xpbWl0LCAx
KTsKIAl9IGVsc2lmICgkbWVjaGFuaXNtIGVxICdkaXJlY3RvcnknKSB7CiAJICAgIG15ICRkaXJl
Y3RvcnkgPSAkaW5mby0+eydhcmNoaXZlLWRpcmVjdG9yeSd9CiAJCW9yIGRpZSAiZGlkIG5vdCBn
ZXQgcGF0aCB0byBhcmNoaXZlIGRpcmVjdG9yeSBmcm9tIGJhY2t1cCBwcm92aWRlclxuIjsKQEAg
LTE4OSw2ICsyNDcsNyBAQCBzdWIgcmVzdG9yZV9leHRlcm5hbF9hcmNoaXZlIHsKIAkJJy4nLAog
CSAgICBdOwogCisJICAgICMgYXJjaGl2ZSBpcyB0cnVzdGVkLCB3ZSBjcmVhdGVkIGl0CiAJICAg
IG15ICRleHRyYWN0X2NtZCA9IHJlc3RvcmVfdGFyX2FyY2hpdmVfY29tbWFuZCgkY29uZiwgdW5k
ZWYsICRyb290ZGlyLCAkYndsaW1pdCk7CiAKIAkgICAgZXZhbCB7IFBWRTo6VG9vbHM6OnJ1bl9j
b21tYW5kKFskY3JlYXRlX2NtZCwgJGV4dHJhY3RfY21kXSk7IH07Ci0tIAoyLjM5LjUKCgoKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcHZlLWRldmVsIG1h
aWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94
bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsCg==