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 [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id F27AD1FF162
	for <inbox@lore.proxmox.com>; Mon,  7 Apr 2025 14:50:18 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 63F763E534;
	Mon,  7 Apr 2025 14:50:09 +0200 (CEST)
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
To: pve-devel@lists.proxmox.com
Date: Mon,  7 Apr 2025 14:49:31 +0200
Message-Id: <20250407124932.571913-1-f.gruenbichler@proxmox.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.046 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
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: [pve-devel] [PATCH kronosnet 1/2] (temporarily) revert routing
 checks
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>

dGhlc2UgY2hlY2tzIGFsc28gdHJpZ2dlciBmb3IgZnVsbC1tZXNoIHNldHVwcyB3aGVyZSB0aGUg
Y29yb3N5bmMgbm9kZQpJUCBpcyBpbnRlbnRpb25hbGx5IGNvbmZpZ3VyZWQgb24gbXVsdGlwbGUg
aW50ZXJmYWNlcywgdGhleSBtaWdodCBuZWVkCnRvIGJlIGFkYXB0ZWQgZm9yIHRob3NlIG9yIGF0
IGxlYXN0IGJlIGNvbmZpZ3VyYWJsZS9vcHQtb3V0LgoKc2VlIGh0dHBzOi8vZm9ydW0ucHJveG1v
eC5jb20vdGhyZWFkcy8xNjQ2MDMKCmZpbGVkIHVwc3RyZWFtIGFzIGh0dHBzOi8vZ2l0aHViLmNv
bS9rcm9ub3NuZXQva3Jvbm9zbmV0L2lzc3Vlcy80NDAKClNpZ25lZC1vZmYtYnk6IEZhYmlhbiBH
csO8bmJpY2hsZXIgPGYuZ3J1ZW5iaWNobGVyQHByb3htb3guY29tPgotLS0KIC4uLmtldHMtY29t
ZS1mcm9tLXRoZS1jb3JyZWN0LWludGVyZmFjZS5wYXRjaCB8IDM4MSArKysrKysrKysrKysrKysr
KysKIGRlYmlhbi9wYXRjaGVzL3NlcmllcyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAr
CiAyIGZpbGVzIGNoYW5nZWQsIDM4MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg
ZGViaWFuL3BhdGNoZXMvMDAwMi1SZXZlcnQtQ2hlY2stcGFja2V0cy1jb21lLWZyb20tdGhlLWNv
cnJlY3QtaW50ZXJmYWNlLnBhdGNoCgpkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvMDAwMi1S
ZXZlcnQtQ2hlY2stcGFja2V0cy1jb21lLWZyb20tdGhlLWNvcnJlY3QtaW50ZXJmYWNlLnBhdGNo
IGIvZGViaWFuL3BhdGNoZXMvMDAwMi1SZXZlcnQtQ2hlY2stcGFja2V0cy1jb21lLWZyb20tdGhl
LWNvcnJlY3QtaW50ZXJmYWNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwLi5iNzY2MDQ4NwotLS0gL2Rldi9udWxsCisrKyBiL2RlYmlhbi9wYXRjaGVzLzAwMDItUmV2
ZXJ0LUNoZWNrLXBhY2tldHMtY29tZS1mcm9tLXRoZS1jb3JyZWN0LWludGVyZmFjZS5wYXRjaApA
QCAtMCwwICsxLDM4MSBAQAorRnJvbSAxOWI4NmI3NzY0ZWZmOWU1NzIyNWNjNTY4MGJiMzhlNDk4
ZDc5MTNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0ZhYmlhbj0y
MEdyPUMzPUJDbmJpY2hsZXI/PSA8Zi5ncnVlbmJpY2hsZXJAcHJveG1veC5jb20+CitEYXRlOiBN
b24sIDcgQXByIDIwMjUgMTQ6Mzc6MjcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gUmV2ZXJ0ICJD
aGVjayBwYWNrZXRzIGNvbWUgZnJvbSB0aGUgY29ycmVjdCBpbnRlcmZhY2UiCitNSU1FLVZlcnNp
b246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50
LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1RoaXMgcmV2ZXJ0cyBjb21taXQgYzc2MTA1MzIz
NDdiNTNjMDc3NGRiY2EwYmM5ODQ0MGZlNTk5NjM3Yy4KKworU2lnbmVkLW9mZi1ieTogRmFiaWFu
IEdyw7xuYmljaGxlciA8Zi5ncnVlbmJpY2hsZXJAcHJveG1veC5jb20+CistLS0KKyBsaWJrbmV0
L2ludGVybmFscy5oICAgICAgICB8ICAgMSAtCisgbGlia25ldC9saW5rcy5jICAgICAgICAgICAg
fCAgMjAgLS0tLS0tLQorIGxpYmtuZXQvdGhyZWFkc19yeC5jICAgICAgIHwgICA3IC0tLQorIGxp
YmtuZXQvdHJhbnNwb3J0X2NvbW1vbi5jIHwgICAzICstCisgbGlia25ldC90cmFuc3BvcnRfY29t
bW9uLmggfCAgIDIgKy0KKyBsaWJrbmV0L3RyYW5zcG9ydF9zY3RwLmMgICB8ICAxNiArKystLS0K
KyBsaWJrbmV0L3RyYW5zcG9ydF91ZHAuYyAgICB8IDEwNSArKystLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgNyBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxMzYg
ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWJrbmV0L2ludGVybmFscy5oIGIvbGlia25l
dC9pbnRlcm5hbHMuaAoraW5kZXggN2VkZGI3MWEuLmYxMjBhM2QzIDEwMDY0NAorLS0tIGEvbGli
a25ldC9pbnRlcm5hbHMuaAorKysrIGIvbGlia25ldC9pbnRlcm5hbHMuaAorQEAgLTE1MSw3ICsx
NTEsNiBAQCBzdHJ1Y3Qga25ldF9mZF90cmFja2VycyB7CisgCQkJCQkgICAgICogd2l0aCB0aGlz
IGZkICovCisgCXNvY2tsZW5fdCBzb2NrYWRkcl9sZW47ICAgICAgICAgICAgIC8qIFNpemUgb2Yg
c29ja2FkZHJfaW5bNl0gc3RydWN0dXJlIGZvciB0aGlzIHNvY2tldCAqLworIAl2b2lkICpkYXRh
OwkJCSAgICAvKiBwb2ludGVyIHRvIHRoZSBkYXRhICovCistCWludCBpZmluZGV4OyAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIGludGVyZmFjZSBpbmRleCBmb3IgdGhpcyBib3VuZCBhZGRyZXNz
ICovCisgfTsKKyAKKyAjZGVmaW5lIEtORVRfTUFYX0ZEUyBLTkVUX01BWF9IT1NUICogS05FVF9N
QVhfTElOSyAqIDQKK2RpZmYgLS1naXQgYS9saWJrbmV0L2xpbmtzLmMgYi9saWJrbmV0L2xpbmtz
LmMKK2luZGV4IGM2OTVjNmMwLi5kMzU1YTUzYSAxMDA2NDQKKy0tLSBhL2xpYmtuZXQvbGlua3Mu
YworKysrIGIvbGlia25ldC9saW5rcy5jCitAQCAtMjIsMjUgKzIyLDYgQEAKKyAjaW5jbHVkZSAi
aG9zdC5oIgorICNpbmNsdWRlICJ0aHJlYWRzX2NvbW1vbi5oIgorICNpbmNsdWRlICJsaW5rc19h
Y2wuaCIKKy0jaW5jbHVkZSA8aWZhZGRycy5oPgorLSNpbmNsdWRlIDxuZXQvaWYuaD4KKy0KKy1z
dGF0aWMgaW50IGZpbmRfaWZpbmRleChzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSAqYWRkcikKKy17
CistCXN0cnVjdCBpZmFkZHJzICppZnJzLCAqaWZhOworLQorLQlpZiAoZ2V0aWZhZGRycygmaWZy
cykgPT0gMCkgeworLQkJZm9yIChpZmEgPSBpZnJzOyBpZmEgIT0gTlVMTDsgaWZhID0gaWZhLT5p
ZmFfbmV4dCkgeworLQkJCWlmIChpZmEtPmlmYV9hZGRyICYmIGNtcGFkZHIoYWRkciwgKHN0cnVj
dCBzb2NrYWRkcl9zdG9yYWdlICopaWZhLT5pZmFfYWRkcikgPT0gMCkgeworLQkJCQlpbnQgaWZp
bmRleCA9IGlmX25hbWV0b2luZGV4KGlmYS0+aWZhX25hbWUpOworLQkJCQlmcmVlaWZhZGRycyhp
ZnJzKTsKKy0JCQkJcmV0dXJuIGlmaW5kZXg7CistCQkJfQorLQkJfQorLQkJZnJlZWlmYWRkcnMo
aWZycyk7CistCX0KKy0JcmV0dXJuIC0xOworLX0KKyAKKyBpbnQgX2xpbmtfdXBkb3duKGtuZXRf
aGFuZGxlX3Qga25ldF9oLCBrbmV0X25vZGVfaWRfdCBob3N0X2lkLCB1aW50OF90IGxpbmtfaWQs
CisgCQkgdW5zaWduZWQgaW50IGVuYWJsZWQsIHVuc2lnbmVkIGludCBjb25uZWN0ZWQsIHVuc2ln
bmVkIGludCBsb2NrX3N0YXRzKQorQEAgLTg3LDcgKzY4LDYgQEAgaW50IF9saW5rX3VwZG93bihr
bmV0X2hhbmRsZV90IGtuZXRfaCwga25ldF9ub2RlX2lkX3QgaG9zdF9pZCwgdWludDhfdCBsaW5r
X2lkLAorIAkJaWYgKCsrbGluay0+c3RhdHVzLnN0YXRzLmxhc3RfdXBfdGltZV9pbmRleCA+PSBN
QVhfTElOS19FVkVOVFMpIHsKKyAJCQlsaW5rLT5zdGF0dXMuc3RhdHMubGFzdF91cF90aW1lX2lu
ZGV4ID0gMDsKKyAJCX0KKy0JCWtuZXRfaC0+a25ldF90cmFuc3BvcnRfZmRfdHJhY2tlcltsaW5r
LT5vdXRzb2NrXS5pZmluZGV4ID0gZmluZF9pZmluZGV4KCZsaW5rLT5zcmNfYWRkcik7CisgCX0g
ZWxzZSB7CisgCQl0aW1lKCZsaW5rLT5zdGF0dXMuc3RhdHMubGFzdF9kb3duX3RpbWVzW2xpbmst
PnN0YXR1cy5zdGF0cy5sYXN0X2Rvd25fdGltZV9pbmRleF0pOworIAkJbGluay0+c3RhdHVzLnN0
YXRzLmRvd25fY291bnQrKzsKK2RpZmYgLS1naXQgYS9saWJrbmV0L3RocmVhZHNfcnguYyBiL2xp
YmtuZXQvdGhyZWFkc19yeC5jCitpbmRleCA2NGFmNDUwOS4uNmFhYjFjZmEgMTAwNjQ0CistLS0g
YS9saWJrbmV0L3RocmVhZHNfcnguYworKysrIGIvbGlia25ldC90aHJlYWRzX3J4LmMKK0BAIC05
NzMsOSArOTczLDYgQEAgdm9pZCAqX2hhbmRsZV9yZWN2X2Zyb21fbGlua3NfdGhyZWFkKHZvaWQg
KmRhdGEpCisgCXN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGFkZHJlc3NbUENLVF9SWF9CVUZTXTsK
KyAJc3RydWN0IGtuZXRfbW1zZ2hkciBtc2dbUENLVF9SWF9CVUZTXTsKKyAJc3RydWN0IGlvdmVj
IGlvdl9pbltQQ0tUX1JYX0JVRlNdOworLSNpZiBkZWZpbmVkKElQX1BLVElORk8pIHx8IGRlZmlu
ZWQoSVBWNl9QS1RJTkZPKQorLQl1bnNpZ25lZCBjaGFyIGNvbnRyb2xfaW5bQ01TR19TUEFDRShz
aXplb2Yoc3RydWN0IGluNl9wa3RpbmZvKSldW1BDS1RfUlhfQlVGU107CistI2VuZGlmCisgCisg
CXNldF90aHJlYWRfc3RhdHVzKGtuZXRfaCwgS05FVF9USFJFQURfUlgsIEtORVRfVEhSRUFEX1NU
QVJURUQpOworIAorQEAgLTk5MiwxMCArOTg5LDYgQEAgdm9pZCAqX2hhbmRsZV9yZWN2X2Zyb21f
bGlua3NfdGhyZWFkKHZvaWQgKmRhdGEpCisgCQltc2dbaV0ubXNnX2hkci5tc2dfbmFtZWxlbiA9
IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSk7IC8qIFJlYWwgdmFsdWUgZmlsbGVkIGlu
IGJlZm9yZSBhY3R1YWwgdXNlICovCisgCQltc2dbaV0ubXNnX2hkci5tc2dfaW92ID0gJmlvdl9p
bltpXTsKKyAJCW1zZ1tpXS5tc2dfaGRyLm1zZ19pb3ZsZW4gPSAxOworLSNpZiBkZWZpbmVkKElQ
X1BLVElORk8pIHx8IGRlZmluZWQoSVBWNl9QS1RJTkZPKQorLQkJbXNnW2ldLm1zZ19oZHIubXNn
X2NvbnRyb2wgPSAmY29udHJvbF9pblswXVtpXTsKKy0JCW1zZ1tpXS5tc2dfaGRyLm1zZ19jb250
cm9sbGVuID0gQ01TR19TUEFDRShzaXplb2Yoc3RydWN0IGluNl9wa3RpbmZvKSk7IC8qIExhcmdl
c3Qgb2YgdGhlIHR3byBwa3RpbmZvIHN0cnVjdHMgKi8KKy0jZW5kaWYKKyAJfQorIAorIAl3aGls
ZSAoIXNodXRkb3duX2luX3Byb2dyZXNzKGtuZXRfaCkpIHsKK2RpZmYgLS1naXQgYS9saWJrbmV0
L3RyYW5zcG9ydF9jb21tb24uYyBiL2xpYmtuZXQvdHJhbnNwb3J0X2NvbW1vbi5jCitpbmRleCBk
ODUwY2JhOS4uZmJhMDFhMzYgMTAwNjQ0CistLS0gYS9saWJrbmV0L3RyYW5zcG9ydF9jb21tb24u
YworKysrIGIvbGlia25ldC90cmFuc3BvcnRfY29tbW9uLmMKK0BAIC00MjYsNyArNDI2LDcgQEAg
aW50IF9pc192YWxpZF9mZChrbmV0X2hhbmRsZV90IGtuZXRfaCwgaW50IHNvY2tmZCkKKyAgKiBt
dXN0IGJlIGNhbGxlZCB3aXRoIGdsb2JhbCB3cml0ZSBsb2NrCisgICovCisgCistaW50IF9zZXRf
ZmRfdHJhY2tlcihrbmV0X2hhbmRsZV90IGtuZXRfaCwgaW50IHNvY2tmZCwgdWludDhfdCB0cmFu
c3BvcnQsIHVpbnQ4X3QgZGF0YV90eXBlLCBzb2NrbGVuX3Qgc29ja2xlbiwgdm9pZCAqZGF0YSwg
aW50IGlmaW5kZXgpCisraW50IF9zZXRfZmRfdHJhY2tlcihrbmV0X2hhbmRsZV90IGtuZXRfaCwg
aW50IHNvY2tmZCwgdWludDhfdCB0cmFuc3BvcnQsIHVpbnQ4X3QgZGF0YV90eXBlLCBzb2NrbGVu
X3Qgc29ja2xlbiwgdm9pZCAqZGF0YSkKKyB7CisgCWlmIChzb2NrZmQgPCAwKSB7CisgCQllcnJu
byA9IEVJTlZBTDsKK0BAIC00NDIsNyArNDQyLDYgQEAgaW50IF9zZXRfZmRfdHJhY2tlcihrbmV0
X2hhbmRsZV90IGtuZXRfaCwgaW50IHNvY2tmZCwgdWludDhfdCB0cmFuc3BvcnQsIHVpbnQ4X3QK
KyAJa25ldF9oLT5rbmV0X3RyYW5zcG9ydF9mZF90cmFja2VyW3NvY2tmZF0uZGF0YV90eXBlID0g
ZGF0YV90eXBlOworIAlrbmV0X2gtPmtuZXRfdHJhbnNwb3J0X2ZkX3RyYWNrZXJbc29ja2ZkXS5z
b2NrYWRkcl9sZW4gPSBzb2NrbGVuOworIAlrbmV0X2gtPmtuZXRfdHJhbnNwb3J0X2ZkX3RyYWNr
ZXJbc29ja2ZkXS5kYXRhID0gZGF0YTsKKy0Ja25ldF9oLT5rbmV0X3RyYW5zcG9ydF9mZF90cmFj
a2VyW3NvY2tmZF0uaWZpbmRleCA9IGlmaW5kZXg7CisgCisgCXJldHVybiAwOworIH0KK2RpZmYg
LS1naXQgYS9saWJrbmV0L3RyYW5zcG9ydF9jb21tb24uaCBiL2xpYmtuZXQvdHJhbnNwb3J0X2Nv
bW1vbi5oCitpbmRleCBiNDU0Y2ZmZC4uODc4MzQ1N2MgMTAwNjQ0CistLS0gYS9saWJrbmV0L3Ry
YW5zcG9ydF9jb21tb24uaAorKysrIGIvbGlia25ldC90cmFuc3BvcnRfY29tbW9uLmgKK0BAIC0x
NSw3ICsxNSw3IEBAIGludCBfY29uZmlndXJlX3RyYW5zcG9ydF9zb2NrZXQoa25ldF9oYW5kbGVf
dCBrbmV0X2gsIGludCBzb2NrLCBzdHJ1Y3Qgc29ja2FkZHJfCisgaW50IF9pbml0X3NvY2tldHBh
aXIoa25ldF9oYW5kbGVfdCBrbmV0X2gsIGludCAqc29jayk7Cisgdm9pZCBfY2xvc2Vfc29ja2V0
cGFpcihrbmV0X2hhbmRsZV90IGtuZXRfaCwgaW50ICpzb2NrKTsKKyAKKy1pbnQgX3NldF9mZF90
cmFja2VyKGtuZXRfaGFuZGxlX3Qga25ldF9oLCBpbnQgc29ja2ZkLCB1aW50OF90IHRyYW5zcG9y
dCwgdWludDhfdCBkYXRhX3R5cGUsIHNvY2tsZW5fdCBzb2NrbGVuLCB2b2lkICpkYXRhLCBpbnQg
aWZpbmRleCk7CisraW50IF9zZXRfZmRfdHJhY2tlcihrbmV0X2hhbmRsZV90IGtuZXRfaCwgaW50
IHNvY2tmZCwgdWludDhfdCB0cmFuc3BvcnQsIHVpbnQ4X3QgZGF0YV90eXBlLCBzb2NrbGVuX3Qg
c29ja2xlbiwgdm9pZCAqZGF0YSk7CisgaW50IF9pc192YWxpZF9mZChrbmV0X2hhbmRsZV90IGtu
ZXRfaCwgaW50IHNvY2tmZCk7CisgCisgaW50IF9zZW5kbW1zZyhpbnQgc29ja2ZkLCBpbnQgY29u
bmVjdGlvbl9vcmllbnRlZCwgc3RydWN0IGtuZXRfbW1zZ2hkciAqbXNndmVjLCB1bnNpZ25lZCBp
bnQgdmxlbiwgdW5zaWduZWQgaW50IGZsYWdzKTsKK2RpZmYgLS1naXQgYS9saWJrbmV0L3RyYW5z
cG9ydF9zY3RwLmMgYi9saWJrbmV0L3RyYW5zcG9ydF9zY3RwLmMKK2luZGV4IDliNGQ4NWRiLi4y
ZWI1ZTEwNiAxMDA2NDQKKy0tLSBhL2xpYmtuZXQvdHJhbnNwb3J0X3NjdHAuYworKysrIGIvbGli
a25ldC90cmFuc3BvcnRfc2N0cC5jCitAQCAtMTE4LDcgKzExOCw3IEBAIHN0YXRpYyBpbnQgX2Ns
b3NlX2Nvbm5lY3Rfc29ja2V0KGtuZXRfaGFuZGxlX3Qga25ldF9oLCBzdHJ1Y3Qga25ldF9saW5r
ICprbl9saW5rCisgCQkJaW5mby0+b25fcnhfZXBvbGwgPSAwOworIAkJfQorIAorLQkJaWYgKF9z
ZXRfZmRfdHJhY2tlcihrbmV0X2gsIGluZm8tPmNvbm5lY3Rfc29jaywgS05FVF9NQVhfVFJBTlNQ
T1JUUywgU0NUUF9OT19MSU5LX0lORk8sIDAsIE5VTEwsIC0xKSA8IDApIHsKKysJCWlmIChfc2V0
X2ZkX3RyYWNrZXIoa25ldF9oLCBpbmZvLT5jb25uZWN0X3NvY2ssIEtORVRfTUFYX1RSQU5TUE9S
VFMsIFNDVFBfTk9fTElOS19JTkZPLCAwLCBOVUxMKSA8IDApIHsKKyAJCQlzYXZlZGVycm5vID0g
ZXJybm87CisgCQkJZXJyID0gLTE7CisgCQkJbG9nX2VycihrbmV0X2gsIEtORVRfU1VCX1RSQU5T
UF9TQ1RQLCAiVW5hYmxlIHRvIHNldCBmZCB0cmFja2VyOiAlcyIsCitAQCAtMjU4LDcgKzI1OCw3
IEBAIHN0YXRpYyBpbnQgX2NyZWF0ZV9jb25uZWN0X3NvY2tldChrbmV0X2hhbmRsZV90IGtuZXRf
aCwgc3RydWN0IGtuZXRfbGluayAqa25fbGluCisgCQlnb3RvIGV4aXRfZXJyb3I7CisgCX0KKyAK
Ky0JaWYgKF9zZXRfZmRfdHJhY2tlcihrbmV0X2gsIGNvbm5lY3Rfc29jaywgS05FVF9UUkFOU1BP
UlRfU0NUUCwgU0NUUF9DT05ORUNUX0xJTktfSU5GTywgc29ja2FkZHJfbGVuKCZrbl9saW5rLT5z
cmNfYWRkciksIGluZm8sIC0xKSA8IDApIHsKKysJaWYgKF9zZXRfZmRfdHJhY2tlcihrbmV0X2gs
IGNvbm5lY3Rfc29jaywgS05FVF9UUkFOU1BPUlRfU0NUUCwgU0NUUF9DT05ORUNUX0xJTktfSU5G
Tywgc29ja2FkZHJfbGVuKCZrbl9saW5rLT5zcmNfYWRkciksIGluZm8pIDwgMCkgeworIAkJc2F2
ZWRlcnJubyA9IGVycm5vOworIAkJZXJyID0gLTE7CisgCQlsb2dfZXJyKGtuZXRfaCwgS05FVF9T
VUJfVFJBTlNQX1NDVFAsICJVbmFibGUgdG8gc2V0IGZkIHRyYWNrZXI6ICVzIiwKK0BAIC04NzAs
NyArODcwLDcgQEAgc3RhdGljIHZvaWQgX2hhbmRsZV9pbmNvbWluZ19zY3RwKGtuZXRfaGFuZGxl
X3Qga25ldF9oLCBpbnQgbGlzdGVuX3NvY2spCisgCisgCWlmIChfc2V0X2ZkX3RyYWNrZXIoa25l
dF9oLCBuZXdfZmQsIEtORVRfVFJBTlNQT1JUX1NDVFAsIFNDVFBfQUNDRVBURURfTElOS19JTkZP
LAorIAkJCSAgICBrbmV0X2gtPmtuZXRfdHJhbnNwb3J0X2ZkX3RyYWNrZXJbbGlzdGVuX3NvY2td
LnNvY2thZGRyX2xlbiwKKy0JCQkgICAgYWNjZXB0X2luZm8sIC0xKSA8IDApIHsKKysJCQkgICAg
YWNjZXB0X2luZm8pIDwgMCkgeworIAkJc2F2ZWRlcnJubyA9IGVycm5vOworIAkJZXJyID0gLTE7
CisgCQlsb2dfZXJyKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQX1NDVFAsICJVbmFibGUgdG8gc2V0
IGZkIHRyYWNrZXI6ICVzIiwKK0BAIC05MDIsNyArOTAyLDcgQEAgZXhpdF9lcnJvcjoKKyAJCSAq
IGNoZWNrIHRoZSBlcnJvciB0byBtYWtlIGNvdmVyaXR5IHNjYW4gaGFwcHkuCisgCQkgKiBfc2V0
X2ZkX3RyYWNrZXIgY2Fubm90IGZhaWwgYXQgdGhpcyBzdGFnZQorIAkJICovCistCQlpZiAoX3Nl
dF9mZF90cmFja2VyKGtuZXRfaCwgbmV3X2ZkLCBLTkVUX01BWF9UUkFOU1BPUlRTLCBTQ1RQX05P
X0xJTktfSU5GTywgMCwgTlVMTCwgLTEpIDwgMCl7CisrCQlpZiAoX3NldF9mZF90cmFja2VyKGtu
ZXRfaCwgbmV3X2ZkLCBLTkVUX01BWF9UUkFOU1BPUlRTLCBTQ1RQX05PX0xJTktfSU5GTywgMCwg
TlVMTCkgPCAwKXsKKyAJCQlsb2dfZGVidWcoa25ldF9oLCBLTkVUX1NVQl9UUkFOU1BfU0NUUCwg
IlVuYWJsZSB0byB1cGRhdGUgZmR0cmFja2VyIGZvciBzb2NrZXQgJWQiLCBuZXdfZmQpOworIAkJ
fQorIAkJZnJlZShhY2NlcHRfaW5mbyk7CitAQCAtOTc2LDcgKzk3Niw3IEBAIHN0YXRpYyB2b2lk
IF9oYW5kbGVfbGlzdGVuX3NjdHBfZXJyb3JzKGtuZXRfaGFuZGxlX3Qga25ldF9oKQorIAkJCSAq
IGNoZWNrIHRoZSBlcnJvciB0byBtYWtlIGNvdmVyaXR5IHNjYW4gaGFwcHkuCisgCQkJICogX3Nl
dF9mZF90cmFja2VyIGNhbm5vdCBmYWlsIGF0IHRoaXMgc3RhZ2UKKyAJCQkgKi8KKy0JCQlpZiAo
X3NldF9mZF90cmFja2VyKGtuZXRfaCwgc29ja2ZkLCBLTkVUX01BWF9UUkFOU1BPUlRTLCBTQ1RQ
X05PX0xJTktfSU5GTywgMCwgTlVMTCwgLTEpIDwgMCkgeworKwkJCWlmIChfc2V0X2ZkX3RyYWNr
ZXIoa25ldF9oLCBzb2NrZmQsIEtORVRfTUFYX1RSQU5TUE9SVFMsIFNDVFBfTk9fTElOS19JTkZP
LCAwLCBOVUxMKSA8IDApIHsKKyAJCQkJbG9nX2RlYnVnKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQ
X1NDVFAsICJVbmFibGUgdG8gdXBkYXRlIGZkdHJhY2tlciBmb3Igc29ja2V0ICVkIiwgc29ja2Zk
KTsKKyAJCQl9CisgCQkJaW5mby0+YWNjZXB0ZWRfc29ja3NbaV0gPSAtMTsKK0BAIC0xMTEyLDcg
KzExMTIsNyBAQCBzdGF0aWMgc2N0cF9saXN0ZW5fbGlua19pbmZvX3QgKnNjdHBfbGlua19saXN0
ZW5lcl9zdGFydChrbmV0X2hhbmRsZV90IGtuZXRfaCwgcworIAkJZ290byBleGl0X2Vycm9yOwor
IAl9CisgCistCWlmIChfc2V0X2ZkX3RyYWNrZXIoa25ldF9oLCBsaXN0ZW5fc29jaywgS05FVF9U
UkFOU1BPUlRfU0NUUCwgU0NUUF9MSVNURU5FUl9MSU5LX0lORk8sIHNvY2thZGRyX2xlbigma25f
bGluay0+c3JjX2FkZHIpLCBpbmZvLCAtMSkgPCAwKSB7CisrCWlmIChfc2V0X2ZkX3RyYWNrZXIo
a25ldF9oLCBsaXN0ZW5fc29jaywgS05FVF9UUkFOU1BPUlRfU0NUUCwgU0NUUF9MSVNURU5FUl9M
SU5LX0lORk8sIHNvY2thZGRyX2xlbigma25fbGluay0+c3JjX2FkZHIpLCBpbmZvKSA8IDApIHsK
KyAJCXNhdmVkZXJybm8gPSBlcnJubzsKKyAJCWVyciA9IC0xOworIAkJbG9nX2VycihrbmV0X2gs
IEtORVRfU1VCX1RSQU5TUF9TQ1RQLCAiVW5hYmxlIHRvIHNldCBmZCB0cmFja2VyOiAlcyIsCitA
QCAtMTIxNyw3ICsxMjE3LDcgQEAgc3RhdGljIGludCBzY3RwX2xpbmtfbGlzdGVuZXJfc3RvcChr
bmV0X2hhbmRsZV90IGtuZXRfaCwgc3RydWN0IGtuZXRfbGluayAqa25fbGkKKyAJCWluZm8tPm9u
X2xpc3RlbmVyX2Vwb2xsID0gMDsKKyAJfQorIAorLQlpZiAoX3NldF9mZF90cmFja2VyKGtuZXRf
aCwgaW5mby0+bGlzdGVuX3NvY2ssIEtORVRfTUFYX1RSQU5TUE9SVFMsIFNDVFBfTk9fTElOS19J
TkZPLCAwLCBOVUxMLCAtMSkgPCAwKSB7CisrCWlmIChfc2V0X2ZkX3RyYWNrZXIoa25ldF9oLCBp
bmZvLT5saXN0ZW5fc29jaywgS05FVF9NQVhfVFJBTlNQT1JUUywgU0NUUF9OT19MSU5LX0lORk8s
IDAsIE5VTEwpIDwgMCkgeworIAkJc2F2ZWRlcnJubyA9IGVycm5vOworIAkJZXJyID0gLTE7Cisg
CQlsb2dfZXJyKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQX1NDVFAsICJVbmFibGUgdG8gc2V0IGZk
IHRyYWNrZXI6ICVzIiwKK0BAIC0xMjQwLDcgKzEyNDAsNyBAQCBzdGF0aWMgaW50IHNjdHBfbGlu
a19saXN0ZW5lcl9zdG9wKGtuZXRfaGFuZGxlX3Qga25ldF9oLCBzdHJ1Y3Qga25ldF9saW5rICpr
bl9saQorIAkJCWluZm8tPm9uX3J4X2Vwb2xsID0gMDsKKyAJCQlmcmVlKGtuZXRfaC0+a25ldF90
cmFuc3BvcnRfZmRfdHJhY2tlcltpbmZvLT5hY2NlcHRlZF9zb2Nrc1tpXV0uZGF0YSk7CisgCQkJ
Y2xvc2UoaW5mby0+YWNjZXB0ZWRfc29ja3NbaV0pOworLQkJCWlmIChfc2V0X2ZkX3RyYWNrZXIo
a25ldF9oLCBpbmZvLT5hY2NlcHRlZF9zb2Nrc1tpXSwgS05FVF9NQVhfVFJBTlNQT1JUUywgU0NU
UF9OT19MSU5LX0lORk8sIDAsIE5VTEwsIC0xKSA8IDApIHsKKysJCQlpZiAoX3NldF9mZF90cmFj
a2VyKGtuZXRfaCwgaW5mby0+YWNjZXB0ZWRfc29ja3NbaV0sIEtORVRfTUFYX1RSQU5TUE9SVFMs
IFNDVFBfTk9fTElOS19JTkZPLCAwLCBOVUxMKSA8IDApIHsKKyAJCQkJc2F2ZWRlcnJubyA9IGVy
cm5vOworIAkJCQllcnIgPSAtMTsKKyAJCQkJbG9nX2VycihrbmV0X2gsIEtORVRfU1VCX1RSQU5T
UF9TQ1RQLCAiVW5hYmxlIHRvIHNldCBmZCB0cmFja2VyOiAlcyIsCitkaWZmIC0tZ2l0IGEvbGli
a25ldC90cmFuc3BvcnRfdWRwLmMgYi9saWJrbmV0L3RyYW5zcG9ydF91ZHAuYworaW5kZXggMjVi
NDAwZTYuLjJlNmFlMjU1IDEwMDY0NAorLS0tIGEvbGlia25ldC90cmFuc3BvcnRfdWRwLmMKKysr
KyBiL2xpYmtuZXQvdHJhbnNwb3J0X3VkcC5jCitAQCAtMTcsNyArMTcsNiBAQAorICNpbmNsdWRl
IDxuZXRpbmV0L2luLmg+CisgI2luY2x1ZGUgPG5ldGluZXQvaXAuaD4KKyAjaW5jbHVkZSA8bmV0
aW5ldC9pcF9pY21wLmg+CistI2luY2x1ZGUgPG5ldC9pZi5oPgorICNpZiBkZWZpbmVkIChJUF9S
RUNWRVJSKSB8fCBkZWZpbmVkIChJUFY2X1JFQ1ZFUlIpCisgI2luY2x1ZGUgPGxpbnV4L2VycnF1
ZXVlLmg+CisgI2VuZGlmCitAQCAtNTIsNiArNTEsOSBAQCBpbnQgdWRwX3RyYW5zcG9ydF9saW5r
X3NldF9jb25maWcoa25ldF9oYW5kbGVfdCBrbmV0X2gsIHN0cnVjdCBrbmV0X2xpbmsgKmtuX2xp
bgorIAlzdHJ1Y3QgZXBvbGxfZXZlbnQgZXY7CisgCXVkcF9saW5rX2luZm9fdCAqaW5mbzsKKyAJ
dWRwX2hhbmRsZV9pbmZvX3QgKmhhbmRsZV9pbmZvID0ga25ldF9oLT50cmFuc3BvcnRzW0tORVRf
VFJBTlNQT1JUX1VEUF07CisrI2lmIGRlZmluZWQgKElQX1JFQ1ZFUlIpIHx8IGRlZmluZWQgKElQ
VjZfUkVDVkVSUikKKysJaW50IHZhbHVlOworKyNlbmRpZgorIAorIAkvKgorIAkgKiBPbmx5IGFs
bG9jYXRlIGEgbmV3IGxpbmsgaWYgdGhlIGxvY2FsIGFkZHJlc3MgaXMgZGlmZmVyZW50CitAQCAt
OTAsNyArOTIsNyBAQCBpbnQgdWRwX3RyYW5zcG9ydF9saW5rX3NldF9jb25maWcoa25ldF9oYW5k
bGVfdCBrbmV0X2gsIHN0cnVjdCBrbmV0X2xpbmsgKmtuX2xpbgorIAorICNpZmRlZiBJUF9SRUNW
RVJSCisgCWlmIChrbl9saW5rLT5zcmNfYWRkci5zc19mYW1pbHkgPT0gQUZfSU5FVCkgeworLQkJ
aW50IHZhbHVlID0gMTsKKysJCXZhbHVlID0gMTsKKyAJCWlmIChzZXRzb2Nrb3B0KHNvY2ssIFNP
TF9JUCwgSVBfUkVDVkVSUiwgJnZhbHVlLCBzaXplb2YodmFsdWUpKSA8MCkgeworIAkJCXNhdmVk
ZXJybm8gPSBlcnJubzsKKyAJCQllcnIgPSAtMTsKK0BAIC0xMDMsMzUgKzEwNSw5IEBAIGludCB1
ZHBfdHJhbnNwb3J0X2xpbmtfc2V0X2NvbmZpZyhrbmV0X2hhbmRsZV90IGtuZXRfaCwgc3RydWN0
IGtuZXRfbGluayAqa25fbGluCisgI2Vsc2UKKyAJbG9nX2RlYnVnKGtuZXRfaCwgS05FVF9TVUJf
VFJBTlNQX1VEUCwgIklQX1JFQ1ZFUlIgbm90IGF2YWlsYWJsZSBpbiB0aGlzIGJ1aWxkL3BsYXRm
b3JtIik7CisgI2VuZGlmCistI2lmZGVmIElQX1BLVElORk8KKy0JaWYgKGtuX2xpbmstPnNyY19h
ZGRyLnNzX2ZhbWlseSA9PSBBRl9JTkVUKSB7CistCQlpbnQgdmFsdWUgPSAxOworLQkJaWYgKHNl
dHNvY2tvcHQoc29jaywgU09MX0lQLCBJUF9QS1RJTkZPLCAmdmFsdWUsIHNpemVvZih2YWx1ZSkp
IDwwKSB7CistCQkJc2F2ZWRlcnJubyA9IGVycm5vOworLQkJCWVyciA9IC0xOworLQkJCWxvZ19l
cnIoa25ldF9oLCBLTkVUX1NVQl9UUkFOU1BfVURQLCAiVW5hYmxlIHRvIHNldCBQS1RJTkZPIG9u
IHNvY2tldDogJXMiLAorLQkJCQlzdHJlcnJvcihzYXZlZGVycm5vKSk7CistCQkJZ290byBleGl0
X2Vycm9yOworLQkJfQorLQkJbG9nX2RlYnVnKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQX1VEUCwg
IklQX1BLVElORk8gZW5hYmxlZCBvbiBzb2NrZXQ6ICVpIiwgc29jayk7CistCX0KKy0jZW5kaWYK
Ky0jaWZkZWYgSVBWNl9SRUNWUEtUSU5GTworLQlpZiAoa25fbGluay0+c3JjX2FkZHIuc3NfZmFt
aWx5ID09IEFGX0lORVQ2KSB7CistCQlpbnQgdmFsdWUgPSAxOworLQkJaWYgKHNldHNvY2tvcHQo
c29jaywgSVBQUk9UT19JUFY2LCBJUFY2X1JFQ1ZQS1RJTkZPLCAmdmFsdWUsIHNpemVvZih2YWx1
ZSkpIDwwKSB7CistCQkJc2F2ZWRlcnJubyA9IGVycm5vOworLQkJCWVyciA9IC0xOworLQkJCWxv
Z19lcnIoa25ldF9oLCBLTkVUX1NVQl9UUkFOU1BfVURQLCAiVW5hYmxlIHRvIHNldCBSRUNWUEtU
SU5GTyBvbiBzb2NrZXQ6ICVzIiwKKy0JCQkJc3RyZXJyb3Ioc2F2ZWRlcnJubykpOworLQkJCWdv
dG8gZXhpdF9lcnJvcjsKKy0JCX0KKy0JCWxvZ19kZWJ1ZyhrbmV0X2gsIEtORVRfU1VCX1RSQU5T
UF9VRFAsICJJUFY2X1JFQ1ZQS1RJTkZPIGVuYWJsZWQgb24gc29ja2V0OiAlaSIsIHNvY2spOwor
LQl9CistI2VuZGlmCisgI2lmZGVmIElQVjZfUkVDVkVSUgorIAlpZiAoa25fbGluay0+c3JjX2Fk
ZHIuc3NfZmFtaWx5ID09IEFGX0lORVQ2KSB7CistCQlpbnQgdmFsdWUgPSAxOworKwkJdmFsdWUg
PSAxOworIAkJaWYgKHNldHNvY2tvcHQoc29jaywgU09MX0lQVjYsIElQVjZfUkVDVkVSUiwgJnZh
bHVlLCBzaXplb2YodmFsdWUpKSA8MCkgeworIAkJCXNhdmVkZXJybm8gPSBlcnJubzsKKyAJCQll
cnIgPSAtMTsKK0BAIC0xNTIsNiArMTI4LDcgQEAgaW50IHVkcF90cmFuc3BvcnRfbGlua19zZXRf
Y29uZmlnKGtuZXRfaGFuZGxlX3Qga25ldF9oLCBzdHJ1Y3Qga25ldF9saW5rICprbl9saW4KKyAJ
CQlzdHJlcnJvcihzYXZlZGVycm5vKSk7CisgCQlnb3RvIGV4aXRfZXJyb3I7CisgCX0KKysKKyAJ
bWVtc2V0KCZldiwgMCwgc2l6ZW9mKHN0cnVjdCBlcG9sbF9ldmVudCkpOworIAlldi5ldmVudHMg
PSBFUE9MTElOOworIAlldi5kYXRhLmZkID0gc29jazsKK0BAIC0xNjYsNyArMTQzLDcgQEAgaW50
IHVkcF90cmFuc3BvcnRfbGlua19zZXRfY29uZmlnKGtuZXRfaGFuZGxlX3Qga25ldF9oLCBzdHJ1
Y3Qga25ldF9saW5rICprbl9saW4KKyAKKyAJaW5mby0+b25fZXBvbGwgPSAxOworIAorLQlpZiAo
X3NldF9mZF90cmFja2VyKGtuZXRfaCwgc29jaywgS05FVF9UUkFOU1BPUlRfVURQLCAwLCBzb2Nr
YWRkcl9sZW4oJmtuX2xpbmstPnNyY19hZGRyKSwgaW5mbywgLTEpIDwgMCkgeworKwlpZiAoX3Nl
dF9mZF90cmFja2VyKGtuZXRfaCwgc29jaywgS05FVF9UUkFOU1BPUlRfVURQLCAwLCBzb2NrYWRk
cl9sZW4oJmtuX2xpbmstPnNyY19hZGRyKSwgaW5mbykgPCAwKSB7CisgCQlzYXZlZGVycm5vID0g
ZXJybm87CisgCQllcnIgPSAtMTsKKyAJCWxvZ19lcnIoa25ldF9oLCBLTkVUX1NVQl9UUkFOU1Bf
VURQLCAiVW5hYmxlIHRvIHNldCBmZCB0cmFja2VyOiAlcyIsCitAQCAtMjQxLDcgKzIxOCw3IEBA
IGludCB1ZHBfdHJhbnNwb3J0X2xpbmtfY2xlYXJfY29uZmlnKGtuZXRfaGFuZGxlX3Qga25ldF9o
LCBzdHJ1Y3Qga25ldF9saW5rICprbl9sCisgCQlpbmZvLT5vbl9lcG9sbCA9IDA7CisgCX0KKyAK
Ky0JaWYgKF9zZXRfZmRfdHJhY2tlcihrbmV0X2gsIGluZm8tPnNvY2tldF9mZCwgS05FVF9NQVhf
VFJBTlNQT1JUUywgMCwgc29ja2FkZHJfbGVuKCZrbl9saW5rLT5zcmNfYWRkciksIE5VTEwsIC0x
KSA8IDApIHsKKysJaWYgKF9zZXRfZmRfdHJhY2tlcihrbmV0X2gsIGluZm8tPnNvY2tldF9mZCwg
S05FVF9NQVhfVFJBTlNQT1JUUywgMCwgc29ja2FkZHJfbGVuKCZrbl9saW5rLT5zcmNfYWRkciks
IE5VTEwpIDwgMCkgeworIAkJc2F2ZWRlcnJubyA9IGVycm5vOworIAkJZXJyID0gLTE7CisgCQls
b2dfZXJyKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQX1VEUCwgIlVuYWJsZSB0byBzZXQgZmQgdHJh
Y2tlcjogJXMiLAorQEAgLTQ4MSw3NyArNDU4LDExIEBAIGludCB1ZHBfdHJhbnNwb3J0X3R4X3Nv
Y2tfZXJyb3Ioa25ldF9oYW5kbGVfdCBrbmV0X2gsIGludCBzb2NrZmQsIGludCBzdWJzeXMsIGlu
CisgCXJldHVybiAwOworIH0KKyAKKy0vKgorLSAqIElmIHRoZSByZWNlaXZlZCBJUCBhZGRyIGRv
ZXNuJ3QgbWF0Y2ggdGhlIGRlc3RpbmF0aW9uIElQCistICogdGhlbiB3ZWlyZCByb3V0aW5nIGlz
IGdvaW5nIG9uLgorLSAqLworLXN0YXRpYyB2b2lkIGNoZWNrX2RzdF9hZGRyX2lzX3ZhbGlkKGtu
ZXRfaGFuZGxlX3Qga25ldF9oLCBpbnQgc29ja2ZkLCBzdHJ1Y3QgbXNnaGRyICptc2cpCistewor
LSNpZiBkZWZpbmVkKElQX1BLVElORk8pIHx8IGRlZmluZWQoSVBWNl9QS1RJTkZPKQorLSAgICAg
ICAgc3RydWN0IGNtc2doZHIgKmNtc2c7CistCistCWZvciAoY21zZyA9IENNU0dfRklSU1RIRFIo
bXNnKTsgY21zZyAhPSBOVUxMOyBjbXNnID0gQ01TR19OWFRIRFIobXNnLCBjbXNnKSkgeworLQkJ
aW50IHBrdF9pZmluZGV4ID0gLTE7CistCQlpbnQgaWZpbmRleCA9IGtuZXRfaC0+a25ldF90cmFu
c3BvcnRfZmRfdHJhY2tlcltzb2NrZmRdLmlmaW5kZXg7CistCQlzdHJ1Y3Qgc29ja2FkZHJfc3Rv
cmFnZSBkc3RhZGRyOworLSNpZmRlZiBJUF9QS1RJTkZPCistCQlpZiAoY21zZy0+Y21zZ19sZXZl
bCA9PSBTT0xfSVAgJiYgY21zZy0+Y21zZ190eXBlID09IElQX1BLVElORk8pIHsKKy0JCQlzdHJ1
Y3QgaW5fcGt0aW5mbyAqcGkgPSAodm9pZCopQ01TR19EQVRBKGNtc2cpOworLQkJCXN0cnVjdCBz
b2NrYWRkcl9pbiAqZHN0YWRkcjQgPSAoc3RydWN0IHNvY2thZGRyX2luICopJmRzdGFkZHI7Cist
CistCQkJcGt0X2lmaW5kZXggPSBwaS0+aXBpX2lmaW5kZXg7CistCQkJZHN0YWRkcjQtPnNpbl9m
YW1pbHkgPSBBRl9JTkVUOworLQkJCWRzdGFkZHI0LT5zaW5fcG9ydCA9IDA7IC8qIHVua25vd24g
dG8gUEtUSU5GTyAqLworLQkJCWRzdGFkZHI0LT5zaW5fYWRkci5zX2FkZHIgPSBwaS0+aXBpX2Fk
ZHIuc19hZGRyOworLQkJfQorLSNlbmRpZgorLSNpZmRlZiBJUFY2X1BLVElORk8KKy0JCWlmIChj
bXNnLT5jbXNnX2xldmVsID09IElQUFJPVE9fSVBWNiAmJiBjbXNnLT5jbXNnX3R5cGUgPT0gSVBW
Nl9QS1RJTkZPKSB7CistCQkJc3RydWN0IGluNl9wa3RpbmZvICpwaSA9ICh2b2lkKilDTVNHX0RB
VEEoY21zZyk7CistCQkJc3RydWN0IHNvY2thZGRyX2luNiAqZHN0YWRkcjYgPSAoc3RydWN0IHNv
Y2thZGRyX2luNiAqKSZkc3RhZGRyOworLQkJCW1lbXNldChkc3RhZGRyNiwgMCwgc2l6ZW9mKHN0
cnVjdCBzb2NrYWRkcl9pbjYpKTsKKy0KKy0JCQlwa3RfaWZpbmRleCA9IHBpLT5pcGk2X2lmaW5k
ZXg7CistCQkJZHN0YWRkcjYtPnNpbjZfZmFtaWx5ID0gQUZfSU5FVDY7CistCQkJZHN0YWRkcjYt
PnNpbjZfcG9ydCA9IDA7IC8qIHVua25vd24gdG8gUEtUSU5GTyAqLworLQkJCW1lbWNweSgmZHN0
YWRkcjYtPnNpbjZfYWRkciwgKGNoYXIgKikmcGktPmlwaTZfYWRkciwgc2l6ZW9mKHBpLT5pcGk2
X2FkZHIpKTsKKy0JCX0KKy0jZW5kaWYKKy0JCWlmIChpZmluZGV4ICE9IC0xICYmIHBrdF9pZmlu
ZGV4ICE9IC0xICYmIGlmaW5kZXggIT0gcGt0X2lmaW5kZXgpIHsKKy0JCQkJY2hhciBzcmNhZGRy
X3NbS05FVF9NQVhfSE9TVF9MRU5dOworLQkJCQljaGFyIHNyY3BvcnRfc1tLTkVUX01BWF9QT1JU
X0xFTl07CistCQkJCWNoYXIgZHN0YWRkcl9zW0tORVRfTUFYX0hPU1RfTEVOXTsKKy0JCQkJY2hh
ciBkc3Rwb3J0X3NbS05FVF9NQVhfUE9SVF9MRU5dOworLQkJCQljaGFyIGV4cGVjdGVkX2lmbmFt
ZVtJRl9OQU1FU0laRV07CistCQkJCWNoYXIgdXNlZF9pZm5hbWVbSUZfTkFNRVNJWkVdOworLQor
LQkJCQkvKiBNYWtlIGFzIGRldGFpbGVkIGEgbWVzc2FnZSBhcyB3ZSBjYW4gKi8KKy0JCQkJaWYg
KChpZl9pbmRleHRvbmFtZShwa3RfaWZpbmRleCwgdXNlZF9pZm5hbWUpID09IE5VTEwpIHx8Cist
CQkJCSAgICAoaWZfaW5kZXh0b25hbWUoaWZpbmRleCwgZXhwZWN0ZWRfaWZuYW1lKSA9PSBOVUxM
KSkgeworLQkJCQkJbG9nX3dhcm4oa25ldF9oLCBLTkVUX1NVQl9UUkFOU1BfVURQLCAiUmVjZWl2
ZWQgcGFja2V0IG9uIGlmaW5kZXggJWQgd2hlbiBleHBlY3RlZCBpZmluZGV4ICVkIiwgcGt0X2lm
aW5kZXgsIGlmaW5kZXgpOworLQkJCQl9IGVsc2UgaWYgKGtuZXRfYWRkcnRvc3RyKG1zZy0+bXNn
X25hbWUsIG1zZy0+bXNnX25hbWVsZW4sCistCQkJCQkJCSAgc3JjYWRkcl9zLCBzaXplb2Yoc3Jj
YWRkcl9zKSwKKy0JCQkJCQkJICBzcmNwb3J0X3MsIHNpemVvZihzcmNwb3J0X3MpKSAhPSAwKSB7
CistCQkJCQlsb2dfd2FybihrbmV0X2gsIEtORVRfU1VCX1RSQU5TUF9VRFAsICJSZWNlaXZlZCBw
YWNrZXQgb24gaS9mICVzIHdoZW4gZXhwZWN0ZWQgaS9mICVzIiwgdXNlZF9pZm5hbWUsIGV4cGVj
dGVkX2lmbmFtZSk7CistCQkJCX0gZWxzZSBpZiAoa25ldF9hZGRydG9zdHIoKHN0cnVjdCBzb2Nr
YWRkcl9zdG9yYWdlICopJmRzdGFkZHIsIHNpemVvZihkc3RhZGRyKSwKKy0JCQkJCQkJICBkc3Rh
ZGRyX3MsIHNpemVvZihkc3RhZGRyX3MpLAorLQkJCQkJCQkgIGRzdHBvcnRfcywgc2l6ZW9mKGRz
dHBvcnRfcykpICE9IDApIHsKKy0JCQkJCWxvZ193YXJuKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQ
X1VEUCwgIlJlY2VpdmVkIHBhY2tldCBmcm9tICVzIG9uIGkvZiAlcyB3aGVuIGV4cGVjdGVkICVz
Iiwgc3JjYWRkcl9zLCB1c2VkX2lmbmFtZSwgZXhwZWN0ZWRfaWZuYW1lKTsKKy0JCQkJfSBlbHNl
IHsKKy0JCQkJCWxvZ193YXJuKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQX1VEUCwgIlJlY2VpdmVk
IHBhY2tldCBmcm9tICVzIHRvICVzIG9uIGkvZiAlcyB3aGVuIGV4cGVjdGVkICVzIiwgc3JjYWRk
cl9zLCBkc3RhZGRyX3MsIHVzZWRfaWZuYW1lLCBleHBlY3RlZF9pZm5hbWUpOworLQkJCQl9Cist
CQl9CistCX0KKy0jZW5kaWYKKy19CistCisgaW50IHVkcF90cmFuc3BvcnRfcnhfaXNfZGF0YShr
bmV0X2hhbmRsZV90IGtuZXRfaCwgaW50IHNvY2tmZCwgc3RydWN0IGtuZXRfbW1zZ2hkciAqbXNn
KQorIHsKKyAJaWYgKG1zZy0+bXNnX2xlbiA9PSAwKQorIAkJcmV0dXJuIEtORVRfVFJBTlNQT1JU
X1JYX05PVF9EQVRBX0NPTlRJTlVFOworIAorLQljaGVja19kc3RfYWRkcl9pc192YWxpZChrbmV0
X2gsIHNvY2tmZCwgJm1zZy0+bXNnX2hkcik7CistCisgCXJldHVybiBLTkVUX1RSQU5TUE9SVF9S
WF9JU19EQVRBOworIH0KKyAKKy0tIAorMi4zOS41CisKZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRj
aGVzL3NlcmllcyBiL2RlYmlhbi9wYXRjaGVzL3NlcmllcwppbmRleCAzZjY1NzJhMi4uNjMzNjky
ZGIgMTAwNjQ0Ci0tLSBhL2RlYmlhbi9wYXRjaGVzL3NlcmllcworKysgYi9kZWJpYW4vcGF0Y2hl
cy9zZXJpZXMKQEAgLTEgKzEsMiBAQAogMDAwMS1jb21wcmVzcy11c2UtbHpvMXhfZGVjb21wcmVz
c19zYWZlLnBhdGNoCiswMDAyLVJldmVydC1DaGVjay1wYWNrZXRzLWNvbWUtZnJvbS10aGUtY29y
cmVjdC1pbnRlcmZhY2UucGF0Y2gKLS0gCjIuMzkuNQoKCgpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZl
bEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK