[5067] in arla-drinkers

home help back first fref pref prev next nref lref last post

Re: PATCH v5: Arla 0.90 on Linux 2.6.36 to 4.4

daemon@ATHENA.MIT.EDU (Bo Branten)
Sun Jan 24 17:51:34 2016

From arla-drinkers-bounces@stacken.kth.se Sun Jan 24 22:51:33 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 22683 invoked from network); 24 Jan 2016 22:51:33 -0000
Received: from mx5.kth.se (130.237.32.10)
  by charon.mit.edu with SMTP; 24 Jan 2016 22:51:33 -0000
Received: from mx5.kth.se (localhost [127.0.0.1])
	by mx5.kth.se (Postfix) with ESMTP id 2A581240129;
	Sun, 24 Jan 2016 23:51:32 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx5.kth.se ([127.0.0.1])
	by mx5.kth.se (mx5.kth.se [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id BHHqwT3WLZ6B; Sun, 24 Jan 2016 23:51:17 +0100 (CET)
Received: from vingummi.stacken.kth.se (lists.stacken.kth.se [130.237.234.174])
	by mx5.kth.se (Postfix) with ESMTP;
	Sun, 24 Jan 2016 23:51:17 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
	by vingummi.stacken.kth.se (Postfix) with ESMTP id 8014914865B;
	Sun, 24 Jan 2016 23:51:17 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
 id 38DF514CA67; Sun, 24 Jan 2016 23:51:15 +0100 (CET)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx7.kth.se (mx7.kth.se [130.237.48.48])
 by vingummi.stacken.kth.se (Postfix) with ESMTPS id 3521B14C913
 for <arla-drinkers@stacken.kth.se>; Sun, 24 Jan 2016 23:51:15 +0100 (CET)
Received: from mx7.kth.se (localhost [127.0.0.1])
 by mx7.kth.se (Postfix) with ESMTP id 2D47914014C
 for <arla-drinkers@stacken.kth.se>; Sun, 24 Jan 2016 23:51:15 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
X-Amavis-OS-Fingerprint: Windows NT kernel; dist: 9; link: Ethernet or modem; 
 params: generic fuzzy; raw_mtu: 1500; raw_sig:
 6:55+9:0:1440:mss*45,0:mss,nop,ws,nop,nop,sok::0,
 [2001:6b0:e:2018::156]:59560
Received: from mx7.kth.se ([127.0.0.1])
 by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id lmclhNAEAwil for <arla-drinkers@stacken.kth.se>;
 Sun, 24 Jan 2016 23:51:12 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [IPv6:2001:6b0:e:2018::156])
 by mx7.kth.se (Postfix) with ESMTPS
 for <arla-drinkers@stacken.kth.se>; Sun, 24 Jan 2016 23:51:12 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by amavisd-new (Postfix) with ESMTP id 9D0E2A23
 for <arla-drinkers@stacken.kth.se>; Sun, 24 Jan 2016 23:51:11 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [130.239.18.162])
 by mail.acc.umu.se (Postfix) with ESMTP id 14F05A22
 for <arla-drinkers@stacken.kth.se>; Sun, 24 Jan 2016 23:51:05 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
 id 052CF44B8C; Sun, 24 Jan 2016 23:51:05 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by suiko.acc.umu.se (Postfix) with ESMTP id F38DD44B8B
 for <arla-drinkers@stacken.kth.se>; Sun, 24 Jan 2016 23:51:04 +0100 (CET)
Date: Sun, 24 Jan 2016 23:51:04 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v5: Arla 0.90 on Linux 2.6.36 to 4.4
In-Reply-To: <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1601242345590.24998@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
 <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED;
 BOUNDARY="-276651502-705249015-1453675864=:24998"
X-BeenThere: arla-drinkers@stacken.kth.se
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Arla discussions <arla-drinkers.stacken.kth.se>
List-Unsubscribe: <https://lists.stacken.kth.se/mailman/options/arla-drinkers>, 
 <mailto:arla-drinkers-request@stacken.kth.se?subject=unsubscribe>
List-Archive: <http://lists.stacken.kth.se/pipermail/arla-drinkers/>
List-Post: <mailto:arla-drinkers@stacken.kth.se>
List-Help: <mailto:arla-drinkers-request@stacken.kth.se?subject=help>
List-Subscribe: <https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers>, 
 <mailto:arla-drinkers-request@stacken.kth.se?subject=subscribe>
Errors-To: arla-drinkers-bounces@stacken.kth.se
Sender: "Arla-drinkers" <arla-drinkers-bounces@stacken.kth.se>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---276651502-705249015-1453675864=:24998
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

PATCH v5: Arla 0.90 on Linux 2.6.36 to 4.4

Updates in this patch:
nnpfs_block_open: removed unused variable
nnpfs_d_revalidate: support for RCU (read-copy-update)
nnpfs_message_installdata: lock the inode

Bo Branten

---276651502-705249015-1453675864=:24998
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v5-arla-0.90-for-linux-2.6.36-to-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1601242351040.24998@suiko.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=patch-v5-arla-0.90-for-linux-2.6.36-to-4.4

ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2luY2x1
ZGUvbm5wZnMvbm5wZnNfYXR0ci5oIGFybGEtMC45MC9ubnBmcy9pbmNsdWRl
L25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODozMzoz
MC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAw
MDAwMDAgKzAxMDANCkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBm
c19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50
MzJfdAkJeGFfdHlwZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAg
dWludDMyX3QJCXhhX3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisj
ZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMywxNCwwKQ0KKyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90
CQl4YV9naWQ7DQorI2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisg
ICAgdWludDMyX3QJCXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAg
ICAgdWludDMyX3QJCXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRp
bWU7DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaCBhcmxhLTAuOTAvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaA0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2LTEw
LTI0IDE4OjMzOjMxLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2Jsb2Nrcy5oCTIwMDctMDEtMjQg
MTg6MDk6MTcuMDAwMDAwMDAwICswMTAwDQpAQCAtMSw1ICsxLDUgQEANCiAv
Kg0KLSAqIENvcHlyaWdodCAoYykgMjAwNS0yMDA2LCBTdG9ja2hvbG1zIFVu
aXZlcnNpdGV0DQorICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDcsIFN0b2Nr
aG9sbXMgVW5pdmVyc2l0ZXQNCiAgKiAoU3RvY2tob2xtIFVuaXZlcnNpdHks
IFN0b2NraG9sbSBTd2VkZW4pDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4N
CiAgKg0KQEAgLTMxLDExICszMSwxNSBAQA0KICAqIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tz
LmgsdiAxLjIgMjAwNi8xMC8yNCAxNjozMzozMSB0b2wgRXhwICQgKi8NCisv
KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5oLHYgMS4zIDIwMDcvMDEvMjQgMTc6MDk6
MTcgdG9sIEV4cCAkICovDQogDQogI2RlZmluZSBOTlBGU19OT19JTkRFWCAg
IDAgIC8qIGR1bW15IGNhY2hlIGluZGV4ICovDQogI2RlZmluZSBOTlBGU19O
T19PRkZTRVQgICgodWludDY0X3QpLTEpICAvKiBkdW1teSBvZmZzZXQsIG5v
IGJsb2NrICovDQogDQotI2RlZmluZSBOTlBGU19DQUNIRV9GSUxFX1BBVEgg
ICAgIiUwMlgvJTAyWC8lMDJsbFgiDQotI2RlZmluZSBOTlBGU19DQUNIRV9E
SVJfUEFUSCAgICAgIiUwMlgvJTAyWEAiDQotI2RlZmluZSBOTlBGU19DQUNI
RV9QQVRIX1NJWkUgICAgKCA2ICsxICsyKzEgKzE2ICsxKQ0KKyNkZWZpbmUg
Tk5QRlNfQ0FDSEVfRklMRV9ESVIxICAgICAgICAiJTAyeCINCisjZGVmaW5l
IE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVIxICIvIiBOTlBGU19DQUNIRV9GSUxFX0RJUjENCisjZGVmaW5lIE5O
UEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSCAgIiUwMmxseCINCisNCisjZGVm
aW5lIE5OUEZTX0NBQ0hFX0ZJTEVfUEFUSCAgIE5OUEZTX0NBQ0hFX0ZJTEVf
RElSX1BBVEggIi8iIE5OUEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSA0KKyNk
ZWZpbmUgTk5QRlNfQ0FDSEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVJfUEFUSCAiQCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX1BBVEhfU0la
RSAgICggNiArMSArMisxICsxNiArMSApDQpkaWZmIC11cHJOIC1Ybm9kaWZm
IGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19tZXNz
YWdlLmggYXJsYS0wLjkwL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVz
c2FnZS5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX21lc3NhZ2UuaAkyMDA2LTEwLTI0IDE4OjMzOjMyLjAwMDAwMDAw
MCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZzL25u
cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTMxLDcgKzMxLDcgQEANCiAgKiBTVUNIIERBTUFHRS4NCiAg
Ki8NCiANCi0vKiAkSWQ6IG5ucGZzX21lc3NhZ2UuaCx2IDEuNjEgMjAwNi8x
MC8yNCAxNjozMzozMiB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX21l
c3NhZ2UuaCx2IDEuNjIgMjAwOS8wMi8yNCAyMDoyMDo1NSB0b2wgRXhwICQg
Ki8NCiANCiAjaWZuZGVmIF94bXNnX2gNCiAjZGVmaW5lIF94bXNnX2gNCkBA
IC01Miw3ICs1MiwxNSBAQCB0eXBlZGVmIHVpbnQxNl90IG5ucGZzX3JpZ2h0
czsNCiAgKiBUaGUgbm5wZnNfY3JlZCwgaWYgcGFnID09IDAsIHVzZSB1aWQg
DQogICovDQogdHlwZWRlZiBzdHJ1Y3Qgbm5wZnNfY3JlZCB7DQorI2lmbmRl
ZiBfX0tFUk5FTF9fDQogICAgIHVpbnQzMl90IHVpZDsNCisjZWxzZQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KKyAgICBrdWlkX3QgdWlkOw0KKyNlbHNlDQorICAgIHVpbnQzMl90IHVp
ZDsNCisjZW5kaWYNCisjZW5kaWYNCiAgICAgbm5wZnNfcGFnX3QgcGFnOw0K
IH0gbm5wZnNfY3JlZDsNCiANCkBAIC0xMDYsNyArMTE0LDcgQEAgdHlwZWRl
ZiBzdHJ1Y3Qgbm5wZnNfYmxvY2tfaGFuZGxlIHsNCiANCiAvKiBubnBmc19u
b2RlLmZsYWdzDQogICogVGhlIGxvd2VyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIGNvbW1vbiBubnBmcyBmbGFncw0KLSAqIFRoZSB1cHBlciAx
NiBiaXQgZmxhZ3MgYXJlIHJlc2VydmVkIGZvciBvcGVydGluZyBzeXN0ZW0g
ZGVwZW5kYW50DQorICogVGhlIHVwcGVyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50DQogICogZmxh
Z3MuDQogICovDQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ubnBmcy5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBm
cy9saW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAw
MDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm
cy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCArMDIw
MA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMuaCx2IDEuMiAy
MDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8qICRTb3VyY2U6
IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9zaXRvcnkvYXJs
YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCisvKiAkU291
cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0b3J5L2FybGEv
bm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQogDQogI2RlZmlu
ZSBOTk5QRlMgMg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xk
L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0xMC0yNCAxODozMzo0
OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7DQog
ICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlmeSBv
cGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpj
YWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAgdHJh
Y2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lkOw0K
KyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFl
bW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5kaWYN
CiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11cHJO
IC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5w
ZnNfbG9jbC5oIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19s
b2NsLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25u
cGZzX2xvY2wuaAkyMDA3LTAxLTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEw
MA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns
LmgJMjAxNi0wMS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0z
NCw3ICszNCw3IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyog
JElkOiBubnBmc19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkg
dG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIw
MTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhB
VkVfQ09ORklHX0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyAr
NTEsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUg
PGxpbnV4L3N0cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQog
I2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEzOCwxNSAr
MTQwLDE2IEBAIHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGludA0KIG5u
cGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw
ZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRl
dl9uYW1lLA0KIAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAq
bW50KTsNCiAjZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNf
Z2V0X3NiIChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0J
ICAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAq
ZGF0YSk7DQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3Ms
IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0K
ICNlbmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMg
bm5wZnNfZGVudHJ5X29wZXJhdGlvbnM7DQpAQCAtMjAwLDE2ICsyMDMsMjUg
QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg
YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s
aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz
X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv
dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg
YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl
dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl
cm4gDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMTgpDQogY29uc3QNCi0jZW5kaWYNCiBzdHJ1Y3QgYWRkcmVzc19z
cGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvcHM7DQogDQogI2lmbmRlZiBsaXN0
X2Zvcl9lYWNoDQpAQCAtMjM3LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9z
eXNjYWxsX2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBu
bnBmc19kZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2Vu
dHJ5X3VuaGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisj
ZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5o
YXNoZWQoZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAg
ICB3aGlsZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45
MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5oIGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgNCi0tLSBhcmxhLTAu
OTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaAkyMDA2LTEy
LTExIDE3OjI5OjM5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgJMjAxMC0wOC0wOCAyMjo0
MzowNy4wMDAwMDAwMDAgKzAyMDANCkBAIC01NCw3ICs1NCw3IEBAIGV4dGVy
biB1aW50MzJfdCBubnBmc19ibG9ja3NpemViaXRzOw0KICAqIGZsYWdzLg0K
ICAqLw0KIA0KLSNkZWZpbmUgTk5QRlNfTk9ERV9JUFVUCTB4MDAwMTAwMDAg
ICAvKiBub2RlIGlzIGluIGlwdXQoKSwgYXZvaWQgZGVhZGxvY2sgKi8NCisj
ZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBp
cyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrLiBDYW4gYmUgcmVtb3ZlZD8g
Ki8NCiANCiAjZGVmaW5lIFhOX0hBU0hTSVpFIDEwMDkNCiAjZGVmaW5lIFhO
X0NMRUFOVVBfSVRFUlMgMTI5DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt
MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS0wLjkwLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3LTAxLTA4IDE0OjI0
OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTIzIDE1OjA4OjI0LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEANCiAgKiBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZzX2Jsb2Nr
cy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6MjQgdG9sIEV4cCAkICovDQor
LyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEuNiAyMDEwLzA4LzA4IDIwOjQz
OjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19s
b2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2ZzLmg+DQpAQCAtNDMs
NiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiAjaW5j
bHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCitleHRlcm4gaW50IHZmc19w
YXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCB2ZnNtb3VudCAq
LA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qg
cGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0KICAqIHJldHVybiB0cnVlIGlm
IGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAtMjkwLDcgKzI5NSwxMyBA
QCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5ucGZzX25vZGUgKm5vDQog
ICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiAN
CiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAg
ICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9uZXdzaXplX29rKGJhY2tu
b2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBpZighcmV0KQ0KKyAgICAg
ICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2NrKCZiYWNrbm9kZS0+aV9t
dXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3NlKGJhY2tmaWxlLCBOVUxM
KTsNCkBAIC0zMTgsOSArMzI5LDE4IEBAIG5ucGZzX2Jsb2NrX29wZW4oc3Ry
dWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgc3RydWN0IG5ucGZzICpubnBm
c3AgPSBOTlBGU19GUk9NX1hOT0RFKG5vZGUpOw0KICAgICBzdHJ1Y3QgaW5v
ZGUgKmlub2RlID0gWE5PREVfVE9fVk5PREUobm9kZSk7DQogICAgIGludCBm
bGFncyA9IE9fTEFSR0VGSUxFIHwgZmxhZzsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3Qg
bmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7
DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOSkNCiAgICAgdWlkX3Qgc2F2ZXVpZDsNCiAgICAgZ2lk
X3Qgc2F2ZWdpZDsNCisjZWxzZQ0KKyAgICBjb25zdCBzdHJ1Y3QgY3JlZCAq
b2xkX2NyZWQ7DQorICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVkOw0K
KyNlbmRpZg0KICAgICBpbnQgcmV0Ow0KIA0KICAgICBCVUdfT04oIW5ucGZz
cCk7DQpAQCAtMzQ2LDIxICszNjYsMzYgQEAgbm5wZnNfYmxvY2tfb3Blbihz
dHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICBCVUdfT04oIW5ucGZzcC0+
Y2FjaGVkaXIgfHwgIW5ucGZzcC0+Y2FjaGVyb290KTsNCiAgICAgDQogICAg
IC8qIHVzZSB0aGUgbmZzZCB0cmljayB0byBnaXZlIHVzIGFjY2VzcyAqLw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MjkpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2
ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9
IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+
Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBkZ2V0KG5ucGZzcC0+Y2FjaGVk
aXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQobm5wZnNwLT5jYWNoZXJvb3Qp
Ow0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNUX05PUk07DQotICAgIG5kLmRl
cHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAwOw0KLSAgICANCi0gICAgaWYg
KGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxhZ3MgPSBMT09LVVBfUEFSRU5U
Ow0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93YWxrKGNhY2hlbmFtZSwgJm5k
KTsNCisjZWxzZQ0KKyAgICBvdmVycmlkZV9jcmVkID0gcHJlcGFyZV9jcmVk
cygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBOVUxMKQ0KKyAgICAg
ICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzdWlk
ID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzZ2lkID0g
bm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMo
b3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KKyAgICByZXQgPSB2
ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNo
ZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JF
QVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZuZCk7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
KyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwg
bm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBm
bGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZu
ZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAo
bm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBj
YWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFS
RU5UIDogMCwNCisJCQkgICZwYXRoKTsNCisjZW5kaWYNCiAgICAgaWYgKHJl
dCkgew0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5tYXNrczsN
CiAJdWludDMyX3QgbWFzazsNCkBAIC0zODcsMTYgKzQyMiwzNyBAQCBubnBm
c19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIA0K
ICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJp
dHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQorCS8qIFRPRE86IGNoZWNrIHRoZSBjYWxsIHRvIGtlcm5fcGF0
aF9jcmVhdGUoKSwgaXMgdGhlIHNlY29uZCBhcmd1bWVudCBvcHRpb25hbD8g
Ki8NCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0
ZShBVF9GRENXRCwgTlVMTCwgJm5kLnBhdGgsIDApOwkNCisjZWxzZQ0KKwkv
KiBUT0RPOiBjaGVjayB0aGUgY2FsbCB0byBrZXJuX3BhdGhfY3JlYXRlKCks
IGlzIHRoZSBzZWNvbmQgYXJndW1lbnQgb3B0aW9uYWw/ICovDQorCXN0cnVj
dCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0Qs
IE5VTEwsICZwYXRoLCAwKTsJDQorI2VuZGlmDQogCWlmIChJU19FUlIoZGVu
dHJ5KSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihkZW50cnkpOw0KIAl9IGVs
c2Ugew0KLQkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5kZW50cnktPmRfaW5v
ZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCisJICAg
IHJldCA9IHZmc19jcmVhdGUobmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRl
bnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAgIC8q
IFRPRE86IHNob3VsZCB0aGUgbGFzdCBhcmd1bWVudCB0byB2ZnNfY3JlYXRl
OiBib29sIHdhbnRfZXhjbCwgYmUgMCBvciAxPyAqLw0KKwkgICAgcmV0ID0g
dmZzX2NyZWF0ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBT
X0lSVVNSfFNfSVdVU1IsIDApOw0KKyNlbHNlDQorCSAgICAvKiBUT0RPOiBz
aG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9vbCB3
YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZmc19jcmVh
dGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lX
VVNSLCAwKTsNCisjZW5kaWYNCiAJICAgIGRwdXQoZGVudHJ5KTsNCiAJfQ0K
IA0KLQltdXRleF91bmxvY2soJm5kLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRl
eCk7DQotCXBhdGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCW11dGV4X3VubG9j
aygmbmQucGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KKwlwYXRo
X3B1dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJbXV0ZXhfdW5sb2NrKCZwYXRo
LmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBhdGhfcHV0KCZwYXRo
KTsNCisjZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkgICAgcHJpbnRrKCJu
bnBmc19ibG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVkOiAlZFxuIiwgY2Fj
aGVuYW1lLCAtcmV0KTsNCkBAIC00MTAsMTIgKzQ2NiwyNSBAQCBubnBmc19i
bG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogCSAgICByZXQg
PSBubnBmc19ibG9ja19leHRlbmQobm9kZSwgb2Zmc2V0KTsNCiAJfQ0KICAg
ICB9IGVsc2Ugew0KLQlzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5k
LmRlbnRyeSwgbmQubW50LCBmbGFncyk7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisJc3RydWN0IGZpbGUg
KmYgPSBkZW50cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwgbmQucGF0aC5tbnQs
IGZsYWdzKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCisgICAgICAgIHN0cnVjdCBmaWxlICpmID0gZGVu
dHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50LCBmbGFncywg
Y3VycmVudF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJc3RydWN0IHBhdGggdG1wX3Bh
dGggPSB7IC5tbnQgPSBuZC5wYXRoLm1udCwgLmRlbnRyeSA9IG5kLnBhdGgu
ZGVudHJ5IH07DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9v
cGVuKCZ0bXBfcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZWxz
ZQ0KKyAgICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbigmcGF0
aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZW5kaWYNCiAJaWYgKElT
X0VSUihmKSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihmKTsNCiAJICAgIHBy
aW50aygibm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBmYWlsZWQ6ICVkXG4i
LCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNfZGVidWdfb29wcygp
Ow0KLQkgICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAgIHBhdGhf
cHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkgICAgcGF0aF9wdXQoJnBhdGgp
Ow0KKyNlbmRpZg0KIAl9IGVsc2Ugew0KIAkgICAgKmZpbGUgPSBmOw0KIAl9
DQpAQCAtNDI0LDggKzQ5MywxMyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVj
dCBubnBmc19ub2RlICpub2RlDQogICAgIC8qIHBhdGhfcmVsZWFzZSgpIGlz
IHVzdWFsbHkgaGFuZGxlZCBvbiBjbG9zZSAqLw0KIA0KICBvdXQ6DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkN
CiAgICAgY3VycmVudC0+ZnN1aWQgPSBzYXZldWlkOw0KICAgICBjdXJyZW50
LT5mc2dpZCA9IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAgcmV2ZXJ0X2NyZWRz
KG9sZF9jcmVkKTsNCisgICAgcHV0X2NyZWQob3ZlcnJpZGVfY3JlZCk7DQor
I2VuZGlmDQogDQogICAgIHJldHVybiByZXQ7DQogfQ0KZGlmZiAtdXByTiAt
WG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2NvbW1v
bi5jIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYw0KLS0t
IGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMJMjAw
Ni0xMi0xMSAxNzozMTo0Ni4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAu
OTAvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMJMjAxNi0wMS0xNCAxNjox
NTowMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0xMTIsMTAgKzExMiwxNSBAQCBu
bnBmc19wcmludF9hbGlhc2VzKGNvbnN0IHN0cnVjdCBpbm9kZSAqDQogdm9p
ZA0KIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25zdCBzdHJ1Y3QgaW5v
ZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmFs
aWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQor
I2VuZGlmDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCiAgICAgaW50
IGJhaWxvdXQgPSAxMDA7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9IGlub2RlLT5p
X2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmlub2RlLT5p
X2RlbnRyeSkgew0KIAlpZiAoLS1iYWlsb3V0IDwgMCkgew0KQEAgLTEzMSw2
ICsxMzYsMjYgQEAgbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0
cnVjdCBpbg0KIAl9DQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQogICAgIH0N
CisjZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5
LCBhbGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbGlm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN
CisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlf
ZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2Vh
Y2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX3UuZF9hbGlh
cykgew0KKyNlbmRpZg0KKwlpZiAoLS1iYWlsb3V0IDwgMCkgew0KKwkgICAg
cHJpbnRrKCIgLi4uIik7DQorCSAgICBicmVhazsNCisJfQ0KKwlpZiAoZGVu
dHJ5KSB7DQorCSAgICBwcmludGsoIiAlLipzKCVwKSIsIChpbnQpZGVudHJ5
LT5kX25hbWUubGVuLA0KKwkJICAgZGVudHJ5LT5kX25hbWUubmFtZSwgZGVu
dHJ5KTsNCisJICAgIGlmIChubnBmc19kX2VudHJ5X3VuaGFzaGVkKCZkZW50
cnktPmRfaGFzaCkpDQorCQlwcmludGsoIih1bmhhc2hlZCkiKTsNCisJfQ0K
KyAgICB9DQorI2VuZGlmDQogICAgIHByaW50aygiXG4iKTsNCiB9DQogDQpA
QCAtMTQ2LDcgKzE3MSwxMSBAQCBubnBmc19wcmludF9jaGlsZHJlbihjb25z
dCBzdHJ1Y3QgZGVudHJ5DQogDQogICAgIHdoaWxlIChzdWJkaXJzICE9ICZk
ZW50cnktPmRfc3ViZGlycykgew0KIAlzdHJ1Y3QgbGlzdF9oZWFkICp0bXAg
PSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlz
dF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxkKTsNCisj
ZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50cnkodG1w
LCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsNCisjZW5kaWYNCiANCiAJcHJp
bnRrKCIgJS4qcyglcCkiLCAoaW50KWNoaWxkLT5kX25hbWUubGVuLA0KIAkg
ICAgICAgY2hpbGQtPmRfbmFtZS5uYW1lLCBjaGlsZCk7DQpkaWZmIC11cHJO
IC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfZGV2
LmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jDQotLS0gYXJs
YS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19kZXYuYwkyMDA2LTEwLTI0
IDE4OjMzOjM2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBm
cy9saW51eC9ubnBmc19kZXYuYwkyMDE2LTAxLTE0IDE2OjI4OjE5LjAwMDAw
MDAwMCArMDEwMA0KQEAgLTMwMCw3ICszMDAsOSBAQCBubnBmc19pbnZhbGlk
YXRlX2FsbChzdHJ1Y3Qgbm5wZnMgKm5ucGZzDQogICAgIE5OUEZTREVCKFhE
RUJOT0RFLCAoImZyZWVfYWxsX25ucGZzX25vZGVzIHN0YXJ0aW5nXG4iKSk7
DQogDQogICAgIHNocmlua19kY2FjaGVfc2Iobm5wZnMtPnNiKTsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0K
ICAgICBpbnZhbGlkYXRlX2lub2RlcyhubnBmcy0+c2IpOw0KKyNlbmRpZg0K
ICAgICANCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5w
ZnNfbm9kZXMgZG9uZVxuIikpOw0KIH0NCkBAIC0zNzQsNyArMzc2LDExIEBA
IG5ucGZzX2RldmNsb3NlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHINCiBz
dGF0aWMgc3NpemVfdA0KIG5ucGZzX2RldnJlYWQoc3RydWN0IGZpbGUgKmZp
bGUsIGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQogICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5
LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3Qg
ZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0K
KyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tN
SU5PUihkZXYpXTsNCiAgICAgc3RydWN0IG5ucGZzX2xpbmsgKmZpcnN0Ow0K
ICAgICBpbnQgcmV0ID0gMCwgZXJyb3IgPSAwOw0KQEAgLTQzOSw4ICs0NDUs
MTIgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0
IA0KIA0KICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldndyaXRl
XG4iKSk7DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQogICAgIGRldiA9IGZpbGUtPmZfZGVudHJ5
LT5kX2lub2RlLT5pX3JkZXY7DQotICAgIG5ucGZzcCA9ICZubnBmc1tNSU5P
UihkZXYpXTsNCisjZWxzZQ0KKyAgICBkZXYgPSBmaWxlLT5mX3BhdGguZGVu
dHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQorICAgICBubnBmc3Ag
PSAmbm5wZnNbTUlOT1IoZGV2KV07DQogDQogICAgIGRvd24oJm5ucGZzcC0+
Y2hhbm5lbF9zZW0pOw0KICAgICBpZiAobm5wZnNwLT5zdGF0dXMgJiBOTlBG
U19ERVZXUklURSkgew0KQEAgLTUwNSwxOSArNTE1LDM3IEBAIG5ucGZzX2Rl
dndyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCANCiAvKg0KICAqIE5v
dCB1c2VkLg0KICAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX2Rldmlv
Y3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0K
IAkgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcp
DQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9ja2VkX2Rldmlv
Y3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5zaWduZWQgaW50
IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQog
ICAgIE5OUEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2aW9jdGwgZGV2ID0g
JWQsIGZsYWdzID0gJWRcbiIsDQogCQkgICAgICAgaW5vZGUtPmlfcmRldiwg
ZmlsZS0+Zl9mbGFncykpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgTk5QRlNERUIoWERFQkRF
ViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwN
CisJCSAgICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2LCBm
aWxlLT5mX2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5QRlNERUIoWERFQkRF
ViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwN
CisJCSAgICAgICBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3Jk
ZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAgcmV0dXJuIC1F
SU5WQUw7DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQNCiBubnBmc19k
ZXZwb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQ0K
IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxOSwwKQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRy
eS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90
IGRldiA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsN
CisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNb
TUlOT1IoZGV2KV07DQogICAgIGludCByZXQgPSAwOw0KICAgICANCkBAIC05
NTMsNyArOTgxLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNf
Zm9wcyA9IHsNCiAgICAgcmVhZDoJCW5ucGZzX2RldnJlYWQsDQogICAgIHdy
aXRlOgkJbm5wZnNfZGV2d3JpdGUsDQogICAgIHBvbGw6CQlubnBmc19kZXZw
b2xsLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzYpDQogICAgIGlvY3RsOgkJbm5wZnNfZGV2aW9jdGwsDQorI2Vs
c2UNCisgICAgdW5sb2NrZWRfaW9jdGw6CW5ucGZzX3VubG9ja2VkX2Rldmlv
Y3RsLA0KKyNlbmRpZg0KICAgICByZWxlYXNlOgkJbm5wZnNfZGV2Y2xvc2Us
DQogICAgIG9wZW46CQlubnBmc19kZXZvcGVuLA0KIH07DQpAQCAtOTY4LDgg
KzEwMDAsMTMgQEAgbm5wZnNfaW5pdF9kZXZpY2Uodm9pZCkNCiAJaW5pdF93
YWl0cXVldWVfaGVhZCgmKG5ucGZzW2ldLndhaXRfcXVldWUpKTsNCiAJbm5w
ZnNfaW5pdHEoJm5ucGZzW2ldLm1lc3NhZ2VxKTsNCiAJbm5wZnNfaW5pdHEo
Jm5ucGZzW2ldLnNsZWVwcSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzNykNCiAJaW5pdF9NVVRFWCgmbm5wZnNb
aV0uaW5hY3RpdmVfc2VtKTsNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uY2hh
bm5lbF9zZW0pOw0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uaW5h
Y3RpdmVfc2VtLCAxKTsNCisJc2VtYV9pbml0KCZubnBmc1tpXS5jaGFubmVs
X3NlbSwgMSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFEKCZubnBmc1tp
XS5pbmFjdGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVzID0gMDsNCiAg
ICAgfQ0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZz
L2xpbnV4L25ucGZzX2lub2Rlb3BzLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4
L25ucGZzX2lub2Rlb3BzLmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xp
bnV4L25ucGZzX2lub2Rlb3BzLmMJMjAwNi0xMi0xMSAxNzozNToyNi4wMDAw
MDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNf
aW5vZGVvcHMuYwkyMDE2LTAxLTI0IDE1OjI4OjQ1LjAwMDAwMDAwMCArMDEw
MA0KQEAgLTQwLDI1ICs0MCw0MSBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBm
c19kZXYuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfZGlyZW50Lmg+DQog
I2luY2x1ZGUgPG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+DQorI2luY2x1ZGUg
PGxpbnV4L2Fpby5oPg0KICNpbmNsdWRlIDxsaW51eC9iaW5mbXRzLmg+DQog
I2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4NCiAjaW5jbHVkZSA8bGludXgvcGFn
ZW1hcC5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlLWZsYWdzLmg+DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTig0LDEsMCkN
CisjaW5jbHVkZSA8bGludXgvdWlvLmg+DQorI2VuZGlmDQogI2luY2x1ZGUg
PGxpbnV4L3dyaXRlYmFjay5oPg0KICNpbmNsdWRlIDxhc20vZmNudGwuaD4N
CiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc19pbm9kZW9w
cy5jLHYgMS4yMjMgMjAwNi8xMi8xMSAxNjozNToyNiB0b2wgRXhwICQiKTsN
CitSQ1NJRCgiJElkOiBubnBmc19pbm9kZW9wcy5jLHYgMS4yMjYgMjAxMC8w
OC8wOCAyMDo0MzowNCB0b2wgRXhwICQiKTsNCiAjZW5kaWYNCiANCiBzdGF0
aWMgaW50DQogbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1
X2ludCBmbGFnKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIGludA0KIG5ucGZzX2RfcmV2
YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRh
dGEgKm5kKTsNCi0NCisjZWxzZQ0KIHN0YXRpYyBpbnQNCitubnBmc19kX3Jl
dmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQg
ZmxhZ3MpOw0KKyNlbmRpZg0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorc3RhdGljDQoraW50DQogbm5w
ZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZWxzZQ0K
K3N0YXRpYw0KK2ludA0KK25ucGZzX2RfZGVsZXRlKGNvbnN0IHN0cnVjdCBk
ZW50cnkgKmRlbnRyeSk7DQorI2VuZGlmDQogDQogc3RhdGljIHZvaWQNCiBu
bnBmc19kX3JlbGVhc2Uoc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCkBAIC0x
MDUsNyArMTIxLDcgQEAgbm5wZnNfdm1hX2Nsb3NlIChzdHJ1Y3Qgdm1fYXJl
YV9zdHJ1Y3QgKg0KIH0NCiANCiBzdGF0aWMgc3RydWN0IHZtX29wZXJhdGlv
bnNfc3RydWN0IG5ucGZzX2ZpbGVfdm1fb3BzID0gew0KLSAgICAubm9wYWdl
CT0gZmlsZW1hcF9ub3BhZ2UsDQorICAgIC5mYXVsdCAgICAgID0gZmlsZW1h
cF9mYXVsdCwNCiAgICAgLmNsb3NlCT0gbm5wZnNfdm1hX2Nsb3NlLA0KIH07
DQogDQpAQCAtMTM0LDEyICsxNTAsMTQgQEAgbm5wZnNfcHJpbnRfcGF0aChz
dHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogICoNCiAgKi8NCiANCisjaWYgMA0K
IHZvaWQNCiBubnBmc19wcmludF9sb2NrKGNoYXIgKnMsIHN0cnVjdCBzZW1h
cGhvcmUgKnNlbSkNCiB7DQogICAgIE5OUEZTREVCKFhERUJMT0NLLCAoImxv
Y2s6ICVzIHNlbTogJXAgY291bnQ6ICVkXG4iLA0KIAkJICAgICAgcywgc2Vt
LCAoaW50KWF0b21pY19yZWFkKCZzZW0tPmNvdW50KSkpOw0KIH0NCisjZW5k
aWYNCiANCiAvKg0KICAqDQpAQCAtMTg1LDcgKzIwMyw3IEBAIG5ucGZzX2Rf
aXB1dChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnUNCiAgICAgTk5QRlNE
RUIoWERFQlZOT1BTLA0KIAkgICAgICgibm5wZnNfZF9pcHV0OiBkZW50cnkg
JXAsIGlub2RlICVwXG4iLCBkZW50cnksIGlub2RlKSk7DQogICAgIA0KLSAg
ICBpZiAobm9kZS0+ZmxhZ3MgJiBOTlBGU19OT0RFX0lQVVQpIC8qIFhYWCBs
b2NraW5nICovDQorICAgIGlmIChub2RlLT5mbGFncyAmIE5OUEZTX05PREVf
SVBVVCkgLyogWFhYIGxvY2tpbmcuIG5ldmVyIHNldD8gKi8NCiAJbm5wZnNf
aXJlbGUoaW5vZGUpOw0KICAgICBlbHNlDQogCWlwdXQoaW5vZGUpOw0KQEAg
LTIxMiw4ICsyMzAsMTMgQEAgbm5wZnNfaW5vZGVfdmFsaWQoc3RydWN0IGlu
b2RlICppbm9kZSkNCiAgKiBubnBmc19sb29rdXAgbm93IHJldHVybnMgYSBk
ZW50cnkuDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoN
CiBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQor
c3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK25ucGZzX2xvb2t1cCAoc3RydWN0
IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQg
aW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzX21l
c3NhZ2VfZ2V0bm9kZSBtc2c7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNw
Ow0KQEAgLTI0MCw3ICsyNjMsMTEgQEAgbm5wZnNfbG9va3VwIChzdHJ1Y3Qg
aW5vZGUgKmRpciwgc3RydWN0IA0KIA0KIAltc2cuaGVhZGVyLm9wY29kZSA9
IE5OUEZTX01TR19HRVROT0RFOw0KICAgICAgICAgDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5j
cmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNn
LmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNy
ZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAltc2cucGFyZW50X2hhbmRs
ZSA9IGQtPmhhbmRsZTsNCiAgICAgICAgIA0KQEAgLTMxMCw3ICszMzcsMTEg
QEAgbm5wZnNfb3Blbl92YWxpZChzdHJ1Y3QgaW5vZGUgKnZwLCB1X2ludA0K
ICAgICAgIHsNCiAJc3RydWN0IG5ucGZzX21lc3NhZ2Vfb3BlbiBtc2c7DQog
CW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX09QRU47DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
CW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAg
ICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJ
bXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAltc2cuaGFuZGxl
ID0geG4tPmhhbmRsZTsNCiAJbXNnLnRva2VucyA9IHRvazsNCkBAIC0zOTcs
NyArNDI4LDExIEBAIGZpbmRfZmlyc3RfYmxvY2soc3RydWN0IG5ucGZzX25v
ZGUgKm5vZGUNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5bmNfaW50KHN0cnVj
dCBmaWxlICpmaWxlLCB1X2ludCBmbGFnKQ0KIHsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1
Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQor
I2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0
aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBm
cyAqbm5wZnNwID0gTk5QRlNfRlJPTV9WTk9ERShpbm9kZSk7DQogICAgIHN0
cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsN
CiAgICAgbG9mZl90IGxlbiA9IGlfc2l6ZV9yZWFkKGlub2RlKTsNCkBAIC00
MjUsNyArNDYwLDExIEBAIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAq
ZmlsZSwgdV9pbnQNCiANCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19N
U0dfUFVUREFUQTsNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygp
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o
Miw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs
c2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQor
I2VuZGlmDQogCW1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAltc2cuZmxh
ZyAgID0gZmxhZzsNCiAJbXNnLm9mZnNldCA9IG9mZjsNCkBAIC00NjAsMTQg
KzQ5OSwyNyBAQCBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUs
IHVfaW50DQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM1KQ0KIHN0YXRpYyBpbnQNCiBubnBm
c19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LCBpbnQgZGF0YXN5bmMpDQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxLDApDQorc3RhdGljIGludA0KK25ucGZz
X2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgZGF0YXN5bmMpDQorI2Vs
c2UNCitzdGF0aWMgaW50DQorbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZp
bGUsIGxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCwgaW50IGRhdGFzeW5jKQ0K
KyNlbmRpZg0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F
TF9WRVJTSU9OKDIsNiwzNSkNCisgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5
ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeTsNCisjZW5kaWYNCiAgICAgc3RydWN0
IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50cnkpOw0KICAg
ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25v
ZGUgKnhuOw0KICAgICBpbnQgZXJyb3IgPSAwOw0KIA0KKyAgICAodm9pZClu
bnBmc3A7DQorDQogICAgIGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQoaW5v
ZGUpOw0KICAgICBpZiAoZXJyb3IpDQogCXJldHVybiBlcnJvcjsNCkBAIC01
MTEsNyArNTYzLDExIEBAIG5ucGZzX2F0dHJfdmFsaWQoc3RydWN0IGlub2Rl
ICogdnAsIHVfaW4NCiAgICAgICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2Fn
ZV9nZXRhdHRyIG1zZzsNCiANCiAgICAgICAgICAgICBtc2cuaGVhZGVyLm9w
Y29kZSA9IE5OUEZTX01TR19HRVRBVFRSOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICAgICAgICAg
IG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAg
ICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlm
DQogICAgICAgICAgICAgbXNnLmNyZWQucGFnID0gcGFnOw0KICAgICAgICAg
ICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICAgICAgICAgIGVy
cm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwg
c2l6ZW9mKG1zZykpOw0KQEAgLTU1MSw3ICs2MDcsMTEgQEAgbm5wZnNfcmln
aHRzX3ZhbGlkKHN0cnVjdCBpbm9kZSAqIHZwLCBubg0KICAgICAgICAgICAg
IHN0cnVjdCBubnBmc19tZXNzYWdlX2dldGF0dHIgbXNnOw0KIA0KICAgICAg
ICAgICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVEFUVFI7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQogICAgICAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+
dWlkOw0KKyNlbHNlDQorICAgICAgICAgICAgbXNnLmNyZWQudWlkID0gY3Vy
cmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgICAgICAgICBtc2cuY3JlZC5w
YWcgPSBwYWc7DQogICAgICAgICAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5k
bGU7DQogICAgICAgICAgICAgZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhu
bnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtNTkyLDEx
ICs2NTIsMjUgQEAgY2hlY2tfcmlnaHRzIChubnBmc19yaWdodHMgcmlnaHRz
LCBpbnQgbQ0KICAqIFdlIGRvbid0IGhvbGQgaV9tdXRleC4NCiAgKi8NCiAN
CisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzOCkgfHwgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDMsMSwwKSkNCiBzdGF0aWMgaW50DQotbm5wZnNfcGVybWlzc2lvbihzdHJ1
Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAq
bmQpDQorbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBp
bnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19wZXJtaXNz
aW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtb2RlLCB1bnNpZ25lZCBp
bnQgZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0K
LSAgICBubnBmc19wYWdfdCBwYWcgPSBubnBmc19nZXRfcGFnKCk7DQorICAg
IG5ucGZzX3BhZ190IHBhZzsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49
IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KKyAgICBpZiAobW9kZSAmIE1BWV9O
T1RfQkxPQ0spDQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZWxpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0K
KyAgICBpZiAoZmxhZ3MgJiBJUEVSTV9GTEFHX1JDVSkNCisgICAgICAgIHJl
dHVybiAtRUNISUxEOw0KKyNlbmRpZg0KKw0KKyAgICBwYWcgPSBubnBmc19n
ZXRfcGFnKCk7DQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgi
bm5wZnNfYWNjZXNzICglcCkgbW9kZSA9IDAlbyBhbGlhc2VzOiIsIGlub2Rl
LCBtb2RlKSk7DQogICAgIG5ucGZzX3ByaW50X2FsaWFzZXMoaW5vZGUpOw0K
QEAgLTYzNiw3ICs3MTAsMTEgQEAgbm5wZnNfZG9fZ2V0ZGF0YShzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG4sIA0KICAgICBpbnQgZXJyb3I7DQogDQogICAgIG1z
Zy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVERBVEE7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAg
ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAg
ICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIG1zZy5o
YW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICBtc2cudG9rZW5zID0gdG9rOw0K
QEAgLTc1MCwxMSArODI4LDE5IEBAIG5ucGZzX2RhdGFfdmFsaWQoc3RydWN0
IGlub2RlICppbm9kZSwgdV8NCiBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVj
dCBmaWxlICogZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICogdm1hKQ0K
IHsNCiAgICAgaW50IGZsYWdzLCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3Ry
dWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0K
KyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3Bh
dGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgYWRk
cmVzc19zcGFjZSAqbWFwcGluZyA9IGZpbGUtPmZfbWFwcGluZzsNCiANCiAg
ICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX21tYXAgaW5vZGU6ICVw
XG4iLCBpbm9kZSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQogICAgIG5ucGZzX3ByaW50X3BhdGgoZmls
ZS0+Zl9kZW50cnkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3ByaW50X3BhdGgo
ZmlsZS0+Zl9wYXRoLmRlbnRyeSk7DQorI2VuZGlmDQogICAgIE5OUEZTREVC
KFhERUJWTk9QUywgKCJubnBmc19tbWFwIGFsaWFzZXM6IikpOw0KICAgICBu
bnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCiAgICAgDQpAQCAtNzg5LDM3
ICs4NzUsNTAgQEAgaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAq
IGZpbGUsIA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0K
IG5ucGZzX2Fpb19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCiAJ
ICAgICAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25n
IG5yX3NlZ3MsDQorCSAgICAgICBsb2ZmX3QgcG9zKQ0KICNlbHNlDQotCSAg
ICAgICBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsDQorc3RhdGlj
IHNzaXplX3QNCitubnBmc19yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICppb2Ni
LCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKQ0KICNlbmRpZg0KLQkgICAgICAgbG9m
Zl90IHBvcykNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVj
dCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCi0jaWYgTElOVVhfVkVS
U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0KICAg
ICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisgICAg
c3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX25ieXRlczsNCisjZWxzZQ0KKyAg
ICBzc2l6ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQodG8pOw0KICNlbmRp
Zg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2Rl
bnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlu
b2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYN
CiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUo
aW5vZGUpOw0KICAgICANCiAgICAgaWYgKHhuICE9IE5VTEwpDQogCU5OUEZT
REVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGUoJXApOiB0b2tlbnM6
IDB4JXhcbiIsDQogCQkJICAgICBpbm9kZSwgeG4tPnRva2VucykpOw0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2
LDApDQogICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5Q
RlNfREFUQV9SLCBwb3MsIHBvcyArIGNvdW50KTsNCisjZWxzZQ0KKyAgICBl
cnJvciA9IG5ucGZzX2RhdGFfdmFsaWQoaW5vZGUsIE5OUEZTX0RBVEFfUiwg
aW9jYi0+a2lfcG9zLCBpb2NiLT5raV9wb3MgKyBjb3VudCk7DQorI2VuZGlm
DQogICAgIGlmIChlcnJvcikgew0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgi
bm5wZnNfcmVhZF9maWxlOiBkYXRhIG5vdCB2YWxpZCAlZFxuIiwgZXJyb3Ip
KTsNCiAJcmV0dXJuIGVycm9yOw0KICAgICB9DQogICAgIA0KLSNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDAp
DQogICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb19yZWFkKGlvY2IsIGlv
diwgbnJfc2VncywgcG9zKTsNCiAjZWxzZQ0KLSAgICBlcnJvciA9IGdlbmVy
aWNfZmlsZV9haW9fcmVhZChpb2NiLCBidWYsIGNvdW50LCBwb3MpOw0KKyAg
ICBlcnJvciA9IGdlbmVyaWNfZmlsZV9yZWFkX2l0ZXIoaW9jYiwgdG8pOw0K
ICNlbmRpZg0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVh
ZF9maWxlOiBlcnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICByZXR1cm4g
ZXJyb3I7DQpAQCAtODI5LDIzICs5MjgsMzYgQEAgbm5wZnNfYWlvX3JlYWQo
c3RydWN0IGtpb2NiICppb2NiLA0KICAqDQogICovDQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0
aWMgc3NpemVfdA0KIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlv
Y2IsDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMTkpDQogCQljb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWdu
ZWQgbG9uZyBucl9zZWdzLA0KKwkJbG9mZl90IHBvcykNCiAjZWxzZQ0KLQkJ
Y29uc3QgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCANCitzdGF0
aWMgc3NpemVfdA0KK25ucGZzX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICpp
b2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pDQogI2VuZGlmDQotCQlsb2Zm
X3QgcG9zKQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAgc3RydWN0
IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KLSNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDApDQogICAg
IHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbGlmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyAgICBz
c2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbHNlDQorICAg
IHNzaXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudChmcm9tKTsNCiAjZW5k
aWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxOSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9k
ZW50cnktPmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICpp
bm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlm
DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RF
KGlub2RlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNiwwKQ0KICAgICBsb2ZmX3QgcmVhbHBvcyA9IHBvczsNCisj
ZWxzZQ0KKyAgICBsb2ZmX3QgcmVhbHBvcyA9IGlvY2ItPmtpX3BvczsNCisj
ZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBm
c19haW9fd3JpdGUoJXApOiB0b2tlbnM6IDB4JXhcbiIsDQogCQkJIGlub2Rl
LCB4bi0+dG9rZW5zKSk7DQpAQCAtODU5LDEwICs5NzEsMTAgQEAgbm5wZnNf
YWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJcmV0dXJuIGVycm9y
Ow0KICAgICB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmlj
X2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCiAj
ZWxzZQ0KLSAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUoaW9j
YiwgYnVmLCBjb3VudCwgcG9zKTsNCisgICAgZXJyb3IgPSBnZW5lcmljX2Zp
bGVfd3JpdGVfaXRlcihpb2NiLCBmcm9tKTsNCiAjZW5kaWYNCiAgICAgaWYg
KCFJU19FUlJfVkFMVUUoZXJyb3IpKQ0KIAl4bi0+ZmxhZ3MgfD0gTk5QRlNf
REFUQV9ESVJUWTsgLyogWFhYIHJhY2UgKi8NCkBAIC04NzEsOSArOTgzLDE5
IEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICAg
IHJldHVybiBlcnJvcjsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRpYyBpbnQNCiBubnBm
c19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwNCiAJICAgICBpbnQgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQp
DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQorc3RhdGljIGludA0KK25ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5v
ZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkgICAgIHVtb2Rl
X3QgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0
aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBib29s
IGV4Y2wpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZz
cDsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTkwMyw5ICsx
MDI1LDE3IEBAIG5ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry
dWN0IGQNCiAgICAgWEFfQ0xFQVIoJm1zZy5hdHRyKTsNCiAgICAgWEFfU0VU
X01PREUoJm1zZy5hdHRyLCBtb2RlKTsNCiAgICAgWEFfU0VUX1RZUEUoJm1z
Zy5hdHRyLCBOTlBGU19GSUxFX1JFRyk7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIFhBX1NFVF9H
SUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorI2Vsc2UNCisgICAg
WEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQorI2Vu
ZGlmDQogICAgIG1zZy5tb2RlID0gMDsJCS8qIFhYWCAqLw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAg
ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg
bXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAg
bXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9
IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVv
Zihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAtOTQ2LDcgKzEw
NzYsMTEgQEAgbm5wZnNfdW5saW5rIChzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0
cnVjdA0KICAgICBpZiAoc3RybGNweShtc2cubmFtZSwgZGVudHJ5LT5kX25h
bWUubmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUp
DQogCXJldHVybiAtRU5BTUVUT09MT05HOw0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cu
Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNy
ZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNnLmNy
ZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5ucGZz
X21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cp
KTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAtOTkxLDcgKzExMjUsMTEg
QEAgbm5wZnNfcmVuYW1lIChzdHJ1Y3QgaW5vZGUgKiBvbGRfZGlyLCBzdA0K
ICAgICBpZiAoc3RybGNweShtc2cubmV3X25hbWUsIG5ld19kZW50cnktPmRf
bmFtZS5uYW1lLCBzaXplb2YobXNnLm5ld19uYW1lKSkgPj0gTk5QRlNfTUFY
X05BTUUpDQogCXJldHVybiAtRU5BTUVUT09MT05HOw0KIAkNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg
ICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg
IG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAg
IG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3Ig
PSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXpl
b2YobXNnKSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTEwMDgsOCAr
MTE0NiwxMyBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9k
aXIsIHN0DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRp
YyBpbnQNCiBubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwgaW50IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMg
aW50DQorbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkNCisjZW5kaWYNCiB7DQog
ICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNf
bm9kZSAqeG47DQpAQCAtMTA0MCw5ICsxMTgzLDE3IEBAIG5ucGZzX21rZGly
KHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGQNCiAJWEFfQ0xFQVIoJm1z
Zy5hdHRyKTsNCiAJWEFfU0VUX01PREUoJm1zZy5hdHRyLCBtb2RlKTsNCiAJ
WEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxFX0RJUik7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp
DQogCVhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQor
I2Vsc2UNCisgICAgICAgIFhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50
X2ZzZ2lkKCkpOw0KKyNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQg
PSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9
IG5ucGZzX2dldF9wYWcoKTsNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3Jw
YyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogCWlmIChl
cnJvciA9PSAwKQ0KQEAgLTEwODMsNyArMTIzNCwxMSBAQCBubnBmc19ybWRp
cihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkDQogICAgIG1zZy5wYXJl
bnRfaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgaWYgKHN0cmxjcHkobXNn
Lm5hbWUsIGRlbnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cubmFtZSkp
ID49IE5OUEZTX01BWF9OQU1FKQ0KIAkgICAgcmV0dXJuIC1FTkFNRVRPT0xP
Tkc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP
TigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsN
CisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K
KyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7
DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNn
LmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkN
CkBAIC0xMTI4LDcgKzEyODMsMTEgQEAgc3RhdGljIGludCBubnBmc19saW5r
KHN0cnVjdCBkZW50cnkgKm9sZA0KIAlpZiAoc3RybGNweShtc2cubmFtZSwg
bmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQog
CSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNy
ZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cu
Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3Jl
ZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCWVycm9yID0gbm5wZnNfbWVz
c2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0K
IAlpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMTU3LDI5ICsxMzE2LDQ3IEBAIHN0
YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAgICAg
eG4gPSBWTk9ERV9UT19YTk9ERShkaXIpOw0KIA0KICAgICB7DQotCXN0cnVj
dCBubnBmc19tZXNzYWdlX3N5bWxpbmsgbXNnOw0KKwlzdHJ1Y3Qgbm5wZnNf
bWVzc2FnZV9zeW1saW5rICptc2cgPSBOVUxMOw0KIA0KLQltc2cuaGVhZGVy
Lm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0KLQltc2cucGFyZW50X2hh
bmRsZSA9IHhuLT5oYW5kbGU7DQotCWlmIChzdHJsY3B5KG1zZy5uYW1lLCBu
YW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCi0J
ICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0KLQlpZiAoc3RybGNweShtc2cu
Y29udGVudHMsIHN5bW5hbWUsIHNpemVvZihtc2cuY29udGVudHMpKSA+PSBO
TlBGU19NQVhfU1lNTElOS19DT05URU5UKQ0KLQkgICAgcmV0dXJuIC1FTkFN
RVRPT0xPTkc7DQotCVhBX0NMRUFSKCZtc2cuYXR0cik7DQotCVhBX1NFVF9N
T0RFKCZtc2cuYXR0ciwgMDc3Nyk7DQotCVhBX1NFVF9UWVBFKCZtc2cuYXR0
ciwgTk5QRlNfRklMRV9MTkspOw0KLQlYQV9TRVRfR0lEKCZtc2cuYXR0ciwg
Y3VycmVudC0+ZnNnaWQpOw0KKwltc2cgPSBrbWFsbG9jKHNpemVvZigqbXNn
KSwgR0ZQX0tFUk5FTCk7DQogDQotCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQt
PnVpZDsNCi0JbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KLQll
cnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIs
IHNpemVvZihtc2cpKTsNCisJaWYgKG1zZyA9PSBOVUxMKQ0KKwkgIHJldHVy
biAtRU5PTUVNOw0KKw0KKwltc2ctPmhlYWRlci5vcGNvZGUgPSBOTlBGU19N
U0dfU1lNTElOSzsNCisJbXNnLT5wYXJlbnRfaGFuZGxlID0geG4tPmhhbmRs
ZTsNCisJaWYgKHN0cmxjcHkobXNnLT5uYW1lLCBuYW1lLCBzaXplb2YobXNn
LT5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpIHsNCisJICBrZnJlZShtc2cp
Ow0KKwkgIHJldHVybiAtRU5BTUVUT09MT05HOw0KKwl9DQorCWlmIChzdHJs
Y3B5KG1zZy0+Y29udGVudHMsIHN5bW5hbWUsIHNpemVvZihtc2ctPmNvbnRl
bnRzKSkgPj0gTk5QRlNfTUFYX1NZTUxJTktfQ09OVEVOVCkgew0KKwkgIGtm
cmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQorCX0NCisJ
WEFfQ0xFQVIoJm1zZy0+YXR0cik7DQorCVhBX1NFVF9NT0RFKCZtc2ctPmF0
dHIsIDA3NzcpOw0KKwlYQV9TRVRfVFlQRSgmbXNnLT5hdHRyLCBOTlBGU19G
SUxFX0xOSyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQorCVhBX1NFVF9HSUQoJm1zZy0+YXR0ciwgY3Vy
cmVudC0+ZnNnaWQpOw0KKyNlbHNlDQorICAgICAgICBYQV9TRVRfR0lEKCZt
c2ctPmF0dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlmDQorDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp
DQorCW1zZy0+Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisg
ICAgICAgIG1zZy0+Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp
Zg0KKwltc2ctPmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKwllcnJv
ciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy0+aGVhZGVyLCBz
aXplb2YoKm1zZykpOw0KIAlpZiAoZXJyb3IgPT0gMCkNCi0JICAgIGVycm9y
ID0gTk5QRlNfTVNHX1dBS0VVUF9FUlJPUigmbXNnKTsNCisJICAgIGVycm9y
ID0gTk5QRlNfTVNHX1dBS0VVUF9FUlJPUihtc2cpOw0KIA0KIAkvKiBYWFgg
c2hvdWxkIHRoaXMgcmVhbGx5IGJlIGhlcmUgKi8NCiAJaWYgKERFTlRSWV9U
T19YREVOVFJZKGRlbnRyeSktPnhkX2ZsYWdzID09IDApIHsNCiAJICAgIHBy
aW50ayhLRVJOX0VNRVJHICJOTlBGUyBQYW5pYzogbm5wZnNfc3ltbGluazog
ZGVudHJ5IG5vdCB2YWxpZFxuIik7DQogCX0NCisJa2ZyZWUobXNnKTsNCiAg
ICAgfQ0KIA0KICAgICByZXR1cm4gZXJyb3I7DQpAQCAtMTE4OCwxMiArMTM2
NSwyMSBAQCBzdGF0aWMgaW50IG5ucGZzX3N5bWxpbmsoc3RydWN0IGlub2Rl
ICpkDQogLyoNCiAgKiBXZSBob2xkIGlfbXV0ZXguDQogICovDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiBz
dGF0aWMgaW50DQogbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUs
IHZvaWQgKiBkaXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKQ0KKyNlbHNlDQor
c3RhdGljIGludA0KK25ucGZzX2l0ZXJhdGUoc3RydWN0IGZpbGUgKiBmaWxl
LCBzdHJ1Y3QgZGlyX2NvbnRleHQgKmN0eCkNCisjZW5kaWYNCiB7DQogICAg
IGludCBlcnJvcjsNCiAgICAgbG9mZl90IG9mZnNldCwgYmVnaW5fb2Zmc2V0
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2Rl
bnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlu
b2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYN
CiAgICAgc3RydWN0IGlub2RlICpjYWNoZV9pbm9kZTsNCiAgICAgc3RydWN0
IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAg
ICBjaGFyICpidWY7DQpAQCAtMTI2NCw2ICsxNDUwLDcgQEAgbm5wZnNfcmVh
ZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAkJICAgIChpbnQp
IHhkaXJlbnQtPmRfbmFtbGVuLA0KIAkJICAgIChpbnQpIChvZmZzZXQrYmVn
aW5fb2Zmc2V0KSkpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDExLDApDQogCSAgICBpZiAoeGRpcmVudC0+ZF9m
aWxlbm8gIT0gMA0KIAkJJiYgKGZpbGxkaXJfZXJyb3IgPSBmaWxsZGlyIChk
aXJlbnQsDQogCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1lLA0KQEAgLTEyNzUs
NiArMTQ2MiwxOCBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmls
ZSwgdm9pZCAqDQogCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxu
IiwgZmlsbGRpcl9lcnJvcikpOw0KIAkJYnJlYWs7DQogCSAgICB9DQorI2Vs
c2UNCisJICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQorCQkmJiAo
ZmlsbGRpcl9lcnJvciA9IGRpcl9lbWl0IChjdHgsDQorCQkJCSAgICAgeGRp
cmVudC0+ZF9uYW1lLA0KKwkJCQkgICAgIHhkaXJlbnQtPmRfbmFtbGVuLA0K
KwkJCQkgICAgIHhkaXJlbnQtPmRfZmlsZW5vLA0KKwkJCQkgICAgIERUX1VO
S05PV04pKSA8IDApIHsNCisJCU5OUEZTREVCKFhERUJSRUFERElSLA0KKwkJ
CSAoIm5ucGZzX3JlYWRkaXIgZmlsbGRpcjogJWRcbiIsIGZpbGxkaXJfZXJy
b3IpKTsNCisJCWJyZWFrOw0KKwkgICAgfQ0KKyNlbmRpZg0KIAkgICAgb2Zm
c2V0ICs9IHhkaXJlbnQtPmRfcmVjbGVuOw0KIA0KIAkgICAgaWYgKHhkaXJl
bnQtPmRfcmVjbGVuID09IDApIHsNCkBAIC0xMzMxLDkgKzE1MzAsMTUgQEAg
bm5wZnNfcmVhZGxpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgYw0KICAq
IFdlIGRvbid0IGhvbGQgaV9tdXRleC4NCiAgKi8NCiANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwyLDApDQogc3RhdGlj
IHZvaWQgKg0KIG5ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnksDQogCQkgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitz
dGF0aWMgY29uc3QgY2hhciAqDQorbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwNCisJCSB2b2lkICoqcGFnZSkNCisjZW5kaWYN
CiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBpbm9kZSAq
aW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCkBAIC0xMzQ0LDcg
KzE1NDksMTEgQEAgbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkg
KmRlbnRyeQ0KICAgICBpZiAoZXJyb3IpDQogICAgICAgIHJldHVybiBFUlJf
UFRSKGVycm9yKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oNCwyLDApDQogICAgIHJldHVybiBwYWdlX2ZvbGxvd19s
aW5rX2xpZ2h0KGRlbnRyeSwgbmQpOw0KKyNlbHNlDQorICAgIHJldHVybiBw
YWdlX2ZvbGxvd19saW5rX2xpZ2h0KGRlbnRyeSwgcGFnZSk7DQorI2VuZGlm
DQogfQ0KIA0KIC8qDQpAQCAtMTM5OCw3ICsxNjA3LDExIEBAIG5ucGZzX3Nl
dGF0dHIgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3QNCiAgICAgICAgIHN0
cnVjdCBubnBmc19tZXNzYWdlX3B1dGF0dHIgbXNnOw0KIA0KICAgICAgICAg
bXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUFVUQVRUUjsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN
CiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg
ICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K
IAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgICAgICBt
c2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAgIG5ucGZzX2lhdHRy
MmF0dHIoeG4sIGF0dHIsICZtc2cuYXR0cik7DQpAQCAtMTQyMiw2ICsxNjM1
LDggQEAgbm5wZnNfcmVsZWFzZV9maWxlIChzdHJ1Y3QgaW5vZGUgKmlub2Rl
LA0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAgIGludCBlcnJv
ciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAgICAgTk5QRlNE
RUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlbGVhc2VfZmlsZVxuIikpOw0KIA0K
ICAgICBlcnJvciA9IG5ucGZzX2lub2RlX3ZhbGlkKGlub2RlKTsNCkBAIC0x
NDUwLDE4ICsxNjY1LDE4IEBAIG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0
IGlub2RlICppbm9kZSwNCiAgKg0KICAqLw0KIA0KLSNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KIHN0YXRpYyBp
bnQNCiBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSwgZmxfb3duZXJf
dCBpZCkNCi0jZWxzZQ0KLXN0YXRpYyBpbnQNCi1ubnBmc19mbHVzaChzdHJ1
Y3QgZmlsZSAqZmlsZSkNCi0jZW5kaWYNCiB7DQogICAgIE5OUEZTREVCKFhE
RUJWTk9QUywgKCJubnBmc19mbHVzaFxuIikpOw0KIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIGlm
IChmaWxlICYmIGZpbGUtPmZfZGVudHJ5ICYmIGZpbGUtPmZfZGVudHJ5LT5k
X2lub2RlKQ0KIAlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZf
ZGVudHJ5LT5kX2lub2RlLCBmaWxlKTsNCisjZWxzZQ0KKyAgICBpZiAoZmls
ZSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5ICYmIGZpbGUtPmZfcGF0aC5kZW50
cnktPmRfaW5vZGUpDQorCXJldHVybiBubnBmc19yZWxlYXNlX2ZpbGUoZmls
ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZmlsZSk7DQorI2VuZGlmDQog
ICAgIGVsc2UNCiAJcmV0dXJuIDA7DQogfQ0KQEAgLTE0NzAsMTAgKzE2ODUs
MjQgQEAgbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUpDQogICogUmV0
dXJuIDEgaWYgYGRlbnRyeScgaXMgc3RpbGwgdmFsaWQsIG90aGVyd2lzZSAw
Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCitzdGF0aWMgaW50DQorbm5wZnNfZF9yZXZhbGlk
YXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAq
bmQpDQorI2Vsc2UNCiBzdGF0aWMgaW50DQotbm5wZnNfZF9yZXZhbGlkYXRl
KHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQp
IA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnks
IHVuc2lnbmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7DQogICAgIHN0cnVj
dCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCisN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KKyAgICBpZiAoZmxhZ3MgJiBMT09LVVBfUkNVKQ0KKyAgICAgICAg
cmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFID49
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgaWYgKG5kICYmIG5kLT5m
bGFncyAmIExPT0tVUF9SQ1UpDQorICAgICAgICByZXR1cm4gLUVDSElMRDsN
CisjZW5kaWYNCisNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZz
X2RfcmV2YWxpZGF0ZSAlcCBcIiUuKnNcIiAoaW5vZGUgJXApXG4iLA0KIAkJ
ICAgICAgIGRlbnRyeSwNCiAJCSAgICAgICAoaW50KWRlbnRyeS0+ZF9uYW1l
LmxlbiwNCkBAIC0xNTE5LDkgKzE3NDgsMTUgQEAgbm5wZnNfZF9yZXZhbGlk
YXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAgICByZXR1cm4gMDsNCiB9
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOCkNCiBzdGF0aWMNCiBpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1
Y3QgZGVudHJ5ICpkZW50cnkpDQorI2Vsc2UNCitzdGF0aWMNCitpbnQNCitu
bnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQor
I2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlOw0KICAgICBz
dHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTU0NiwxMSArMTc4MSwxNiBA
QCBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogfQ0K
IA0KIHN0YXRpYyBzc2l6ZV90DQotbm5wZnNfc2VuZGZpbGUoc3RydWN0IGZp
bGUgKmZpbGUsIGxvZmZfdCAqcHBvcywgc2l6ZV90IGNvdW50LA0KLQkgICAg
ICAgcmVhZF9hY3Rvcl90IGFjdG9yLCB2b2lkICp0YXJnZXQpDQorbm5wZnNf
c3BsaWNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCAqcHBvcywN
CisJCSAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwgc2l6ZV90IGNv
dW50LA0KKwkJICB1bnNpZ25lZCBpbnQgZmxhZ3MpDQogew0KICAgICBpbnQg
ZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBm
aWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3Qg
aW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsN
CisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVf
VE9fWE5PREUoaW5vZGUpOw0KICAgICANCiAgICAgaWYgKHhuICE9IE5VTEwp
DQpAQCAtMTU2MSw4ICsxODAxLDcgQEAgbm5wZnNfc2VuZGZpbGUoc3RydWN0
IGZpbGUgKmZpbGUsIGxvZmZfdA0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgi
bm5wZnNfc2VuZGZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikp
Ow0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCi0NCi0gICAgZXJyb3IgPSBn
ZW5lcmljX2ZpbGVfc2VuZGZpbGUoZmlsZSwgcHBvcywgY291bnQsIGFjdG9y
LCB0YXJnZXQpOw0KKyAgICBlcnJvciA9IGZpbGUtPmZfb3AtPnNwbGljZV9y
ZWFkKGZpbGUsIHBwb3MsIHBpcGUsIGNvdW50LCBmbGFncyk7DQogDQogICAg
IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19zZW5kZmlsZTogZXJyb3Ig
PSAlZFxuIiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVycm9yOw0KQEAgLTE2
MzksMzQgKzE4NzgsMzEgQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0
IHBhZ2UgKnBhZ2UsIA0KIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu
ZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7DQogCXVuc2lnbmVkIGxlbiA9IFBB
R0VfQ0FDSEVfU0laRTsNCiAJc3RydWN0IHBhZ2UgKmJhY2twYWdlOw0KKwl2
b2lkICpmc2RhdGE7DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0KIAlp
bnQgZXJyb3I7DQogCQ0KLQlkbyB7DQotCQliYWNrcGFnZSA9IGdyYWJfY2Fj
aGVfcGFnZShtYXBwaW5nLCBubnBmc19nZXRfYmFja2luZGV4KHBhZ2UpKTsN
Ci0JCWlmICghYmFja3BhZ2UpIHsNCi0JCQlwcmludGsoIm5ucGZzX3dyaXRl
X2JhY2twYWdlOiBubyBwYWdlXG4iKTsNCi0JCQlyZXR1cm4gLUVJTzsNCi0J
CX0NCisJKHZvaWQpb2Zmc2V0Ow0KIA0KLQkJZXJyb3IgPSBtYXBwaW5nLT5h
X29wcy0+cHJlcGFyZV93cml0ZShiYWNrZmlsZSwgYmFja3BhZ2UsDQotCQkJ
CQkJICAgICAgMCwgbGVuKTsNCisJZG8gew0KKwkJZXJyb3IgPSBwYWdlY2Fj
aGVfd3JpdGVfYmVnaW4oYmFja2ZpbGUsIG1hcHBpbmcsIDAsIGxlbiwNCisJ
CQkJCSAgICAgIEFPUF9GTEFHX1VOSU5URVJSVVBUSUJMRSwNCisJCQkJCSAg
ICAgICZiYWNrcGFnZSwgJmZzZGF0YSk7DQogCQlpZiAoIWVycm9yKSB7DQog
CQkJY29weV9oaWdocGFnZShiYWNrcGFnZSwgcGFnZSk7DQogCQkJZmx1c2hf
ZGNhY2hlX3BhZ2UoYmFja3BhZ2UpOw0KLQkJCWVycm9yID0gbWFwcGluZy0+
YV9vcHMtPmNvbW1pdF93cml0ZShiYWNrZmlsZSwgYmFja3BhZ2UsDQotCQkJ
CQkJCSAgICAgMCwgbGVuKTsNCisJCQllcnJvciA9IHBhZ2VjYWNoZV93cml0
ZV9lbmQoYmFja2ZpbGUsIG1hcHBpbmcsIDAsIGxlbiwNCisJCQkJCWxlbiwg
YmFja3BhZ2UsIGZzZGF0YSk7DQorCQkJaWYgKGVycm9yID4gMCkNCisJCQkJ
ZXJyb3IgPSAwOw0KIAkJfQ0KIAkJaWYgKGVycm9yID09IEFPUF9UUlVOQ0FU
RURfUEFHRSkgew0KLQkJCXBhZ2VfY2FjaGVfcmVsZWFzZShiYWNrcGFnZSk7
DQogCQkJY29udGludWU7DQogCQl9DQogCX0gd2hpbGUgKDApOw0KIA0KIAlv
ZmZzZXQgPSBwYWdlX29mZnNldChiYWNrcGFnZSk7DQotCXVubG9ja19wYWdl
KGJhY2twYWdlKTsNCi0JcGFnZV9jYWNoZV9yZWxlYXNlKGJhY2twYWdlKTsN
CiANCiAJaWYgKGVycm9yKQ0KIAkJcHJpbnRrKCJubnBmc193cml0ZV9iYWNr
cGFnZTogRUlPXG4iKTsNCkBAIC0xNjg5LDEzICsxOTI1LDkgQEAgbm5wZnNf
cmVhZF9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgcw0KIAlzdHJ1Y3Qg
cGFnZSAqYmFja3BhZ2U7DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0K
LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2
LDE4KQ0KKwkodm9pZClvZmZzZXQ7DQorDQogCWJhY2twYWdlID0gcmVhZF9t
YXBwaW5nX3BhZ2UobWFwcGluZywgbiwgYmFja2ZpbGUpOw0KLSNlbHNlDQot
CWJhY2twYWdlID0gcmVhZF9jYWNoZV9wYWdlKG1hcHBpbmcsIG4sDQotCQkJ
CSAgIChmaWxsZXJfdCAqKW1hcHBpbmctPmFfb3BzLT5yZWFkcGFnZSwNCi0J
CQkJICAgYmFja2ZpbGUpOw0KLSNlbmRpZg0KIAlpZiAoIUlTX0VSUihiYWNr
cGFnZSkpIHsNCiAJCXdhaXRfb25fcGFnZV9sb2NrZWQoYmFja3BhZ2UpOw0K
IA0KQEAgLTE4NDIsMTEgKzIwNzQsMTcgQEAgbm5wZnNfcHJlcGFyZV93cml0
ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIA0KIAlpZiAobW9kc2l6ZSA+IGlf
c2l6ZV9yZWFkKGlub2RlKSkgew0KIAkJaW50IGVycm9yOw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJCWVy
cm9yID0gdm10cnVuY2F0ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2Vsc2UNCisJ
CWVycm9yID0gaW5vZGVfbmV3c2l6ZV9vayhpbm9kZSwgbW9kc2l6ZSk7DQor
CQlpZighZXJyb3IpDQorCQkJdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgbW9k
c2l6ZSk7DQorI2VuZGlmDQogCQlpZiAoZXJyb3IpIHsNCiAJCQlwcmludGso
Im5ucGZzX3ByZXBhcmVfd3JpdGU6IHRydW5jYXRlKCVsbHUpIC0+ICVkXG4i
LA0KIAkJCSAgICAgICBtb2RzaXplLCAtZXJyb3IpOw0KLQkJCUJVRygpOyAv
KiBYWFggbm90IGNvcnJlY3QgKi8NCisJCQkvKkJVRygpOyovIC8qIFhYWCBu
b3QgY29ycmVjdCAqLw0KIAkJfQ0KIAl9DQogDQpAQCAtMTg3Miw4ICsyMTEw
LDM3IEBAIG5ucGZzX3ByZXBhcmVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUs
IHMNCiAJcmV0dXJuIHJldDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQorDQorc3RhdGljIGlu
dA0KK25ucGZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1
Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90IHBvcywNCit1bnNp
Z25lZCBsZW4sIHVuc2lnbmVkIGZsYWdzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2Vw
LCB2b2lkICoqZnNkYXRhKQ0KK3sNCisJc3RydWN0IHBhZ2UgKnBhZ2U7DQor
CXBnb2ZmX3QgaW5kZXg7DQorCXVuc2lnbmVkIGZyb207DQorDQorCWluZGV4
ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJRlQ7DQorCWZyb20gPSBwb3MgJiAo
UEFHRV9DQUNIRV9TSVpFIC0gMSk7DQorDQorI2lmZGVmIEFPUF9GTEFHX05P
RlMNCisJcGFnZSA9IGdyYWJfY2FjaGVfcGFnZV93cml0ZV9iZWdpbihtYXBw
aW5nLCBpbmRleCwgZmxhZ3MpOw0KKyNlbHNlDQorCXBhZ2UgPSBfX2dyYWJf
Y2FjaGVfcGFnZShtYXBwaW5nLCBpbmRleCk7DQorI2VuZGlmDQorCWlmIChw
YWdlID09IE5VTEwpDQorCQlyZXR1cm4gLUVOT01FTTsNCisNCisJKnBhZ2Vw
ID0gcGFnZTsNCisNCisJcmV0dXJuIG5ucGZzX3ByZXBhcmVfd3JpdGUoZmls
ZSwgcGFnZSwgZnJvbSwgZnJvbSArIGxlbik7DQorfQ0KKw0KKyNlbmRpZg0K
Kw0KIHN0YXRpYyBpbnQNCi1ubnBmc19jb21taXRfd3JpdGUoc3RydWN0IGZp
bGUgKmZpbGUsIHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCB0bykNCitubnBmc19jb21taXRfd3JpdGUoc3RydWN0IGZpbGUg
KmZpbGUsIHN0cnVjdCBwYWdlICpwYWdlLA0KKwkJICAgdW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgdG8pDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl
ID0gcGFnZS0+bWFwcGluZy0+aG9zdDsNCiAgICAgbG9mZl90IHBvcyA9ICgo
bG9mZl90KXBhZ2UtPmluZGV4IDw8IFBBR0VfQ0FDSEVfU0hJRlQpICsgdG87
DQpAQCAtMTkwMiwxNCArMjE2OSw1MSBAQCBubnBmc19jb21taXRfd3JpdGUo
c3RydWN0IGZpbGUgKmZpbGUsIHN0DQogICAgIHJldHVybiAwOw0KIH0NCiAN
Ci0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs
NiwxOCkNCi1jb25zdA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VS
TkVMX1ZFUlNJT04oMiw2LDI4KQ0KKw0KK3N0YXRpYyBpbnQNCitubnBmc193
cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3Nw
YWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KKwkJdW5zaWduZWQgbGVuLCB1
bnNpZ25lZCBjb3BpZWQsIHN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2Rh
dGEpDQorew0KKwl1bnNpZ25lZCBmcm9tID0gcG9zICYgKFBBR0VfQ0FDSEVf
U0laRSAtIDEpOw0KKw0KKwkvKiB6ZXJvIHRoZSBzdGFsZSBwYXJ0IG9mIHRo
ZSBwYWdlIGlmIHdlIGRpZCBhIHNob3J0IGNvcHkgKi8NCisJaWYgKGNvcGll
ZCA8IGxlbikgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMo
cGFnZSwgS01fVVNFUjApOw0KKyNlbHNlDQorCQl2b2lkICprYWRkciA9IGtt
YXBfYXRvbWljKHBhZ2UpOw0KKyNlbmRpZg0KKwkJbWVtc2V0KGthZGRyICsg
ZnJvbSArIGNvcGllZCwgMCwgbGVuIC0gY29waWVkKTsNCisJCWZsdXNoX2Rj
YWNoZV9wYWdlKHBhZ2UpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDYsMCkNCisJCWt1bm1hcF9hdG9taWMoa2FkZHIs
IEtNX1VTRVIwKTsNCisjZWxzZQ0KKwkJa3VubWFwX2F0b21pYyhrYWRkcik7
DQorI2VuZGlmDQorCX0NCisNCisJbm5wZnNfY29tbWl0X3dyaXRlKGZpbGUs
IHBhZ2UsIGZyb20sIGZyb20gKyBjb3BpZWQpOw0KKw0KKwl1bmxvY2tfcGFn
ZShwYWdlKTsNCisJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOw0KKw0KKwly
ZXR1cm4gY29waWVkOw0KK30NCisNCiAjZW5kaWYNCisNCitjb25zdA0KIHN0
cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW9wcyA9IHsN
CiAJLnJlYWRwYWdlID0gbm5wZnNfcmVhZHBhZ2UsDQogCS53cml0ZXBhZ2Ug
PSBubnBmc193cml0ZXBhZ2UsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJLnByZXBhcmVfd3JpdGUgPSBu
bnBmc19wcmVwYXJlX3dyaXRlLA0KIAkuY29tbWl0X3dyaXRlID0gbm5wZnNf
Y29tbWl0X3dyaXRlLA0KKyNlbHNlDQorCS53cml0ZV9iZWdpbiA9IG5ucGZz
X3dyaXRlX2JlZ2luLA0KKwkud3JpdGVfZW5kID0gbm5wZnNfd3JpdGVfZW5k
LA0KKyNlbmRpZg0KIH07DQogDQogLyoNCkBAIC0xOTE3LDIxICsyMjIxLDMw
IEBAIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW8N
CiAgKi8NCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZpbGVf
b3BlcmF0aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxNiwwKQ0KICAgICAuYWlvX3JlYWQJPSBubnBmc19h
aW9fcmVhZCwNCiAgICAgLmFpb193cml0ZQk9IG5ucGZzX2Fpb193cml0ZSwN
CisjZWxzZQ0KKyAgICAucmVhZF9pdGVyCT0gbm5wZnNfcmVhZF9pdGVyLA0K
KyAgICAud3JpdGVfaXRlcgk9IG5ucGZzX3dyaXRlX2l0ZXIsDQorI2VuZGlm
DQogICAgIC5tbWFwCT0gbm5wZnNfZmlsZV9tbWFwLA0KICAgICAub3Blbgk9
IG5ucGZzX29wZW4sDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KICAg
ICAucmVsZWFzZQk9IG5ucGZzX3JlbGVhc2VfZmlsZSwNCiAgICAgLmZzeW5j
CT0gbm5wZnNfZnN5bmMsDQotICAgIC5zZW5kZmlsZQk9IG5ucGZzX3NlbmRm
aWxlLA0KKyAgICAuc3BsaWNlX3JlYWQgPSBubnBmc19zcGxpY2VfcmVhZCwN
CiB9Ow0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZGVhZF9v
cGVyYXRpb25zID0gew0KIH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9u
cyBubnBmc19kaXJfb3BlcmF0aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KICAgICAucmVhZGRp
cgk9IG5ucGZzX3JlYWRkaXIsDQorI2Vsc2UNCisgICAgLml0ZXJhdGUgICAg
PSBubnBmc19pdGVyYXRlLA0KKyNlbmRpZg0KICAgICAuZmx1c2gJPSBubnBm
c19mbHVzaCwNCiB9Ow0KIA0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAu
OTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYyBhcmxhLTAuOTAvbm5w
ZnMvbGludXgvbm5wZnNfbG9hZC5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBm
cy9saW51eC9ubnBmc19sb2FkLmMJMjAwNi0xMC0zMSAxMTowMjo0MS4wMDAw
MDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNf
bG9hZC5jCTIwMTYtMDEtMTMgMjA6MTQ6MDIuMDAwMDAwMDAwICswMTAwDQpA
QCAtNTQsNyArNTQsMTEgQEAgZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgbm5wZnNfZm9wcw0KIA0KIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIG5u
cGZzX2ZzX3R5cGUgPSB7DQogICAgICAgIG5hbWU6ICAgICAgICAgICAibm5w
ZnMiLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzkpDQogICAgICAgIGdldF9zYjogICAgICAgICBubnBmc19nZXRf
c2IsDQorI2Vsc2UNCisgICAgICAgbW91bnQ6ICAgICAgICAgIG5ucGZzX21v
dW50LA0KKyNlbmRpZg0KICAgICAgICBraWxsX3NiOiAgICAgICAga2lsbF9s
aXR0ZXJfc3VwZXIsDQogICAgICAgIG93bmVyOiAgICAgICAgICBUSElTX01P
RFVMRSwNCiB9Ow0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xk
L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYyBhcmxhLTAuOTAvbm5wZnMv
bGludXgvbm5wZnNfbWVzc2FnZS5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBm
cy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAwNy0wMS0wOSAxNzozMzozMS4w
MDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w
ZnNfbWVzc2FnZS5jCTIwMTYtMDEtMjQgMTg6NTI6MjguMDAwMDAwMDAwICsw
MTAwDQpAQCAtNDUsNyArNDUsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9tb3Vu
dC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX21l
c3NhZ2UuYyx2IDEuMTQzLjIuMSAyMDA3LzAxLzA5IDE2OjMzOjMxIHRvbCBF
eHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX21lc3NhZ2UuYyx2IDEuMTQ1
IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQogI2VuZGlmDQog
DQogc3RhdGljIHZvaWQNCkBAIC01NSw5ICs1NSwxNSBAQCBzdGF0aWMgdm9p
ZA0KIG5ucGZzX2RfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiB7
DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfZF9yZW1vdmUgJXBc
biIsIGRlbnRyeSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygmZGNhY2hlX2xv
Y2spOw0KICAgICBkZ2V0X2xvY2tlZChkZW50cnkpOw0KICAgICBzcGluX3Vu
bG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9jaygm
ZGVudHJ5LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKGRlbnRyeSk7DQor
ICAgIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7DQorI2VuZGlmDQog
ICAgIGRfZHJvcChkZW50cnkpOw0KICAgICBkcHV0KGRlbnRyeSk7DQogfQ0K
QEAgLTEyMSw3ICsxMjcsMTEgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9k
ZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICBzdHJ1Y3QgaW5vZGUgKmRpLCAqaW5v
ZGU7DQogICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCA9IE5VTEw7DQogICAg
IHN0cnVjdCBxc3RyIHNxc3RyOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVh
ZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlh
czsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJNU0csICgi
bm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZVxuIikpOw0KICAgICANCkBAIC0x
NzYsMTIgKzE4NiwyNiBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0
cnVjdCBubnBmcyAqDQogICAgICAqDQogICAgICAqLw0KICAgICANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog
ICAgIGFsaWFzID0gZGktPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChh
bGlhcyAhPSAmZGktPmlfZGVudHJ5KSB7DQogCXBhcmVudCA9IGxpc3RfZW50
cnkoYWxpYXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KLQlzcGluX2xv
Y2soJmRjYWNoZV9sb2NrKTsNCi0JZGdldF9sb2NrZWQocGFyZW50KTsNCi0J
c3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3Rf
Zm9yX2VhY2hfZW50cnkocGFyZW50LCBhbGlhcywgJmRpLT5pX2RlbnRyeSwg
ZF9hbGlhcykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnko
cGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisg
ICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5
LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIHNwaW5fbG9j
aygmZGNhY2hlX2xvY2spOw0KKyAgICBkZ2V0X2xvY2tlZChwYXJlbnQpOw0K
KyAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAg
IHNwaW5fbG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2Nr
KHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZwYXJlbnQtPmRfbG9jayk7
DQorI2VuZGlmDQogCWRlbnRyeSA9IGRfbG9va3VwKHBhcmVudCwgJnNxc3Ry
KTsNCiAJTk5QRlNERUIoWERFQk1TRywNCiAJCSAoIm5ucGZzX21lc3NhZ2Vf
aW5zdGFsbG5vZGU6IGFsaWFzICVwLCBsb29rdXAgJXBcbiIsDQpAQCAtMjMz
LDcgKzI1Nyw5IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0
IG5ucGZzICoNCiAJDQogCWRwdXQoZGVudHJ5KTsNCiAJZGVudHJ5ID0gTlVM
TDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogCWRw
dXQocGFyZW50KTsNCiAgICAgfQ0KICAgICBOTlBGU0RFQihYREVCTVNHLCAo
Im5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6IGRvbmUgaW5zdGFsbGluZ1xu
IikpOw0KQEAgLTI2OCw3ICsyOTQsMTMgQEAgbm5wZnNfbWVzc2FnZV9pbnN0
YWxsYXR0cihzdHJ1Y3Qgbm5wZnMgKg0KICAgICB9DQogDQogICAgIGlub2Rl
ID0gWE5PREVfVE9fVk5PREUodCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBkZW50cnkgPSBsaXN0
X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5uZXh0LCBzdHJ1Y3QgZGVudHJ5LCBk
X2FsaWFzKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQorICAgIGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlu
b2RlLT5pX2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7
DQorI2Vsc2UNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUtPmlf
ZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9hbGlhcyk7DQor
I2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZz
X21lc3NhZ2VfaW5zdGFsbGF0dHIgbmFtZTolc1xuIiwNCiAJCSAgICAgICBk
ZW50cnktPmRfbmFtZS5uYW1lKSk7DQpAQCAtMzk2LDE3ICs0MjgsMzUgQEAg
bm5wZnNfbWVzc2FnZV9pbnN0YWxsZGF0YShzdHJ1Y3Qgbm5wZnMgKg0KIHN0
YXRpYyB2b2lkDQogY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUg
Kmlub2RlLCBpbnQgcGFyZW50KQ0KIHsNCisgICAgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQor
I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5
LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYN
CiANCiAgYWdhaW46DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9j
ayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZpbm9kZS0+aV9sb2NrKTsN
CisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5Lm5l
eHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5KSB7
DQotCXN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3Rf
Zm9yX2VhY2hfZW50cnkoZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2RlbnRy
eSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50
cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vs
c2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5vZGUt
PmlfZGVudHJ5LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0KIAlzdHJ1Y3Qg
bGlzdF9oZWFkICpzdWJkaXJzOw0KIAlzdHJ1Y3Qgbm5wZnNfZGVudHJ5X2Rh
dGEgKnhkOw0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQogCWRlbnRyeSA9IGxpc3RfZW50cnkoYWxpYXMs
IHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAoZGVu
dHJ5ID09IE5VTEwpIHsNCiAJICAgIHByaW50ayhLRVJOX0VNRVJHICJOTlBG
UyBQYW5pYzogZGVudHJ5IGluIGFsaWFzIGxpc3QgaXMgbnVsbFxuIik7DQog
CSAgICBicmVhazsNCkBAIC00MjIsNyArNDcyLDExIEBAIGNsZWFyX2FsbF9j
aGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwNCiAJc3ViZGlycyA9IGRl
bnRyeS0+ZF9zdWJkaXJzLm5leHQ7DQogCXdoaWxlIChzdWJkaXJzICE9ICZk
ZW50cnktPmRfc3ViZGlycykgew0KIAkgICAgc3RydWN0IGxpc3RfaGVhZCAq
dG1wID0gc3ViZGlyczsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgc3RydWN0IGRlbnRyeSAqY2hp
bGQgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF91LmRfY2hp
bGQpOw0KKyNlbHNlDQorCSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxp
c3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsNCisjZW5k
aWYNCiAJICAgIHN1YmRpcnMgPSB0bXAtPm5leHQ7DQogCSAgICBOTlBGU0RF
QihYREVCTVNHLCAoImNsZWFyX2FsbF9jaGlsZHJlbiBjaGlsZDogJS4qcyBp
bm9kZTogJXAvJXAgIg0KIAkJCSAgICAgICAiZGNvdW50OiAlZCBhbGlhc2Vz
OlxuIiwNCkBAIC00NDIsMTQgKzQ5NiwyNCBAQCBjbGVhcl9hbGxfY2hpbGRy
ZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogDQogCSAgICAvKiBUaHJvdyBp
bW1lZGlhdGVseSAqLw0KIAkgICAgaWYgKG5ucGZzX2Rjb3VudChjaGlsZCkg
PT0gMCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzgpDQogCSAgICAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9s
b2NrKTsNCisjZWxzZQ0KKwkgICAgICAgIHNwaW5fdW5sb2NrKCZpbm9kZS0+
aV9sb2NrKTsNCisjZW5kaWYNCiAJCW5ucGZzX2RfcmVtb3ZlKGNoaWxkKTsN
CiAJCWdvdG8gYWdhaW47DQogCSAgICB9DQogCX0NCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCWFsaWFzID0g
YWxpYXMtPm5leHQ7DQorI2VuZGlmDQogICAgIH0NCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBzcGlu
X3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fdW5s
b2NrKCZpbm9kZS0+aV9sb2NrKTsNCisjZW5kaWYNCiB9DQogDQogc3RhdGlj
IHZvaWQNCkBAIC02MDUsMTIgKzY2OSwxMCBAQCBnY19ibG9jayhzdHJ1Y3Qg
bm5wZnMgKm5ucGZzcCwNCiAgICAgfQ0KIA0KICAgICBpZiAoIW5ucGZzX2Js
b2NrX2hhdmVfcCh4biwgb2Zmc2V0KSkgew0KLSNpZiAwICAgLyogaGFwcGVu
cyB3aGVuIGRhZW1vbiBzZW5kcyBzZXZlcmFsIG1lc3NhZ2VzIGZvciBzYW1l
IGJsb2NrICovDQogCXByaW50ayhLRVJOX0VNRVJHICJOTlBGUy9nY19ibG9j
azogIg0KIAkgICAgICAgIkVOT0VOVCAoJWQsJWQsJWQsJWQpIDB4JWxseFxu
IiwgDQogCSAgICAgICB4bi0+aGFuZGxlLmEsIHhuLT5oYW5kbGUuYiwgeG4t
PmhhbmRsZS5jLCB4bi0+aGFuZGxlLmQsIA0KIAkgICAgICAgKHVuc2lnbmVk
IGxvbmcgbG9uZylvZmZzZXQpOw0KLSNlbmRpZg0KIAlyZXR1cm4gLUVOT0VO
VDsNCiAgICAgfQ0KIA0KQEAgLTcyMSwxMiArNzgzLDIyIEBAIG5ucGZzX21l
c3NhZ2VfdmVyc2lvbihzdHJ1Y3Qgbm5wZnMgKm5ucGYNCiANCiAgICAgLyog
c2FuaXR5IGNoZWNrIGJlZm9yZSB3ZSBsb29rIGF0IGl0ICovDQogICAgIGlm
IChzaXplID09IHNpemVvZigqbWVzc2FnZSkgJiYgbWVzc2FnZS0+dmVyc2lv
biA9PSBOTlBGU19WRVJTSU9OKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0
YSBuZDsNCisjZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0K
IAlpbnQgZXJyb3I7DQogDQogCXVpbnQ2NF90IGJsb2Nrc2l6ZSA9IG1lc3Nh
Z2UtPmJsb2Nrc2l6ZTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9va3Vw
KCIuIiwgMCwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRoKCIu
IiwgMCwgJm5kLnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRo
KCIuIiwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsNCiAJ
ICAgIC8qDQogCSAgICAgKiBCYWQgY2FjaGUgcm9vdCwganVzdCByZXR1cm4u
DQpAQCAtNzM3LDEyICs4MDksMjMgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9u
KHN0cnVjdCBubnBmcyAqbm5wZg0KIAkJICAgIm5ucGZzX21lc3NhZ2VfdmVy
c2lvbiBmYWlsZWQgcGF0aF9sb29rdXAsICINCiAJCSAgICJlcnJubzogJWRc
biIsIGVycm9yKTsNCiAJfSBlbHNlIHsNCi0JICAgIG5ucGZzcC0+Y2FjaGVy
b290ID0gbW50Z2V0KG5kLm1udCk7DQotCSAgICBubnBmc3AtPmNhY2hlZGly
ID0gZGdldChuZC5kZW50cnkpOw0KLQkgICAgcGF0aF9yZWxlYXNlKCZuZCk7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCisJICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0KG5kLnBh
dGgubW50KTsNCisJICAgIG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KG5kLnBh
dGguZGVudHJ5KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxz
ZQ0KKwkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQocGF0aC5tbnQp
Ow0KKwkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQocGF0aC5kZW50cnkp
Ow0KKwkgICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAkgICAgDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwy
OSkNCiAJICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1aWQ7DQogCSAg
ICBubnBmc3AtPmdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KKyNlbHNlDQorICAg
ICAgICAgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQorICAg
ICAgICAgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50X2ZzZ2lkKCk7DQorI2Vu
ZGlmDQogDQogCSAgICAvKiBYWFggd2Ugc2hvdWxkIHZhbGlkYXRlIHRoZXNl
IHZhbHVlcyAqLw0KIAkgICAgbm5wZnNfYmxvY2tzaXplID0gYmxvY2tzaXpl
Ow0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xp
bnV4L25ucGZzX25vZGUuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNf
bm9kZS5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19u
b2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDANCisr
KyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIwMTYtMDEt
MTQgMTY6NTE6MTEuMDAwMDAwMDAwICswMTAwDQpAQCAtMTMyLDcgKzEzMiwx
MiBAQCBubnBmc19zZXRzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVpbnQ2
DQogCXByaW50aygibm5wZnNfc2V0c2l6ZTogdHJ1bmNhdGluZyBAMHglbGx1
XG4iLA0KIAkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylzaXplKTsNCiAj
ZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw4LDApDQogCXZtdHJ1bmNhdGUoaW5vZGUsIHNpemUpOyAvKiBYWFgg
cmV0dmFsICovDQorI2Vsc2UNCisJaWYoIWlub2RlX25ld3NpemVfb2soaW5v
ZGUsIHNpemUpKQ0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgc2l6
ZSk7DQorI2VuZGlmDQogCW5ucGZzX2Jsb2NrX3RydW5jYXRlKHhuLCBzaXpl
KTsNCiAgICAgfQ0KIH0NCkBAIC0xNTAsOSArMTU1LDE4IEBAIG5ucGZzX2F0
dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJc3RydWN0IHRp
bWVzcGVjIG5vdGltZSA9IHswfTsNCiANCiAJaW5vZGUtPmlfbW9kZSAgID0g
MDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxNCwwKQ0KIAlpbm9kZS0+aV91aWQgICAgPSAwOw0KIAlpbm9kZS0+aV9n
aWQgICAgPSAwOw0KKyNlbHNlDQorCWlub2RlLT5pX3VpZCAgICA9IEtVSURU
X0lOSVQoMCk7DQorCWlub2RlLT5pX2dpZCAgICA9IEtHSURUX0lOSVQoMCk7
DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSAxOw0KKyNlbHNl
DQorCXNldF9ubGluayhpbm9kZSwgMSk7DQorI2VuZGlmDQogCWlub2RlLT5p
X2F0aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfbXRpbWUgID0gbm90aW1l
Ow0KIAlpbm9kZS0+aV9jdGltZSAgPSBub3RpbWU7DQpAQCAtMTY5LDcgKzE4
MywxMSBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19h
dHRyDQogICAgIGlmIChYQV9WQUxJRF9HSUQoYXR0cikpDQogCWlub2RlLT5p
X2dpZCAgICA9IGF0dHItPnhhX2dpZDsNCiAgICAgaWYgKFhBX1ZBTElEX05M
SU5LKGF0dHIpKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gYXR0ci0+eGFf
bmxpbms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCBhdHRyLT54YV9u
bGluayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAoWEFfVkFMSURfU0la
RShhdHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2RlLCBhdHRyLT54YV9z
aXplKTsNCkBAIC01MTAsMTIgKzUyOCwyNCBAQCBubnBmc19oYXNfcGFnKGNv
bnN0IHN0cnVjdCBubnBmc19ub2RlICp4DQogaW50DQogbm5wZnNfbm9kZV91
c2VycyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVj
dCBsaXN0X2hlYWQgKnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaGxpc3Rf
bm9kZSAqcG9zOw0KKyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAwOw0KICAg
ICANCiAgICAgLyogWFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHByb3Rl
Y3RlZCBzb21laG93ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBsaXN0X2Zvcl9lYWNoKHBvcywg
Jmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9l
YWNoKHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbmRpZg0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
CXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1
Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5
ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF91
LmRfYWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAobm5wZnNfZGNvdW50KGRlbnRy
eSkgPiAxKQ0KIAkgICAgdXNlcnMrKzsNCiAgICAgfQ0KZGlmZiAtdXByTiAt
WG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2Nh
bGxzLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMN
Ci0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxz
LmMJMjAwNy0wMS0wMyAxNToyNjoyNy4wMDAwMDAwMDAgKzAxMDANCisrKyBh
cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2LTAx
LTE0IDE3OjAwOjIwLjAwMDAwMDAwMCArMDEwMA0KQEAgLTQyLDcgKzQyLDkg
QEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAjaW5j
bHVkZSA8bm5wZnMvbm5wZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4
L2ZpbGUuaD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM5KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0K
KyNlbmRpZg0KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8
bGludXgvcHJvY19mcy5oPg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2lu
Y2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisj
dW5kZWYgU1lTQ0FMTEhBQ0sNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xv
d2VyX2JvdW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxh
dGVyLCBzZSBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgKi8NCisjZW5kaWYN
CisNCiAjaWYgMA0KICNpZmRlZiBDT05GSUdfQ09NUEFUDQogI2luY2x1ZGUg
PGxpbnV4L2lvY3RsMzIuaD4NCkBAIC02NCw3ICs3MSw3IEBADQogI3VuZGVm
IE5FRURfVklDRUlPQ1RMMzINCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgi
JElkOiBubnBmc19zeXNjYWxscy5jLHYgMS4xMjIgMjAwNy8wMS8wMyAxNDoy
NjoyNyB0b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxs
cy5jLHYgMS4xMjUgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQiKTsN
CiAjZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpu
bnBmc19wcm9jZnNfZGlyOw0KQEAgLTgyLDEyICs4OSwyMiBAQCB0eXBlZGVm
IHN0cnVjdCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2lnbmVkIGxvbmcgc3lz
Y2FsbDsNCiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0K
IG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1
Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln
bmVkIGxvbmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNf
cHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWdu
ZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0KIA0K
IHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nmc19m
b3BzID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0
bCwNCisjZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwgPSBubnBmc19wcm9j
ZnNfaW9jdGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBAIC0xNDcsNTMgKzE2
NCw0OCBAQCBzdGF0aWMgaW50IG5ucGZzX3NlY19yZWdpc3RlcmVkID0gMDsN
CiAjZGVmaW5lIFNFQzJQQUcocykgKG5ucGZzX3BhZ190KSh1bnNpZ25lZCBs
b25nKShzKQ0KICNkZWZpbmUgUEFHMlNFQyhwKSAodm9pZCAqKSh1bnNpZ25l
ZCBsb25nKShwKQ0KIA0KLXN0YXRpYyBpbnQNCi1ubnBmc19zZWNfdGFza19h
bGxvYyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBmc19w
YWdfdCBwYWcgPSBTRUMyUEFHKGN1cnJlbnQtPnNlY3VyaXR5KTsNCi0gICAg
aWYgKHBhZykNCi0JcC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZyk7DQotICAg
IHJldHVybiAwOw0KLX0NCi0NCi1zdGF0aWMgdm9pZA0KLW5ucGZzX3NlY190
YXNrX2ZyZWUoc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KLXsNCi0gICAgbm5w
ZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhwLT5zZWN1cml0eSk7DQotICAgIGlm
IChwYWcpDQotCXAtPnNlY3VyaXR5ID0gTlVMTDsNCi19DQotDQogc3RhdGlj
IG5ucGZzX3BhZ190DQogbm5wZnNfZ2V0X3BhZ19zZWModm9pZCkNCiB7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs
MjgpDQogICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVudC0+
c2VjdXJpdHkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3BhZ190IHBhZyA9IFNF
QzJQQUcoY3VycmVudF9zZWN1cml0eSgpKTsNCisjZW5kaWYNCiAgICAgaWYg
KHBhZykNCiAJcmV0dXJuIHBhZzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1
cnJlbnQtPnVpZDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE0LDApDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgp
Ow0KKyNlbHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgp
OyByZXR1cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCiB9DQogDQogc3RhdGlj
IGludA0KIG5ucGZzX3NldF9wYWdfc2VjKHZvaWQpDQogew0KICAgICBzdGF0
aWMgbm5wZnNfcGFnX3QgcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjkp
DQorICAgIHN0cnVjdCBjcmVkICpjcmVkOw0KKyNlbmRpZg0KIA0KICAgICBp
ZiAocGFnbnVtID09IE5OUEZTX1BBR19VTElNKQ0KIAlyZXR1cm4gLUVOT01F
TTsNCiAgICAgLyogcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07ICovDQogICAg
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o
Miw2LDI4KQ0KICAgICBjdXJyZW50LT5zZWN1cml0eSA9IFBBRzJTRUMocGFn
bnVtKTsNCisjZWxzZQ0KKyAgICBjcmVkID0gKHN0cnVjdCBjcmVkICopIGN1
cnJlbnQtPmNyZWQ7DQorICAgIGNyZWQtPnNlY3VyaXR5ID0gUEFHMlNFQyhw
YWdudW0pOw0KKyNlbmRpZg0KICAgICBwYWdudW0rKzsNCiAgICAgcmV0dXJu
IDA7DQogfQ0KIA0KLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9u
cyBubnBmc19zZWNfb3BzID0gew0KLSAgICAudGFza19hbGxvY19zZWN1cml0
eSA9IG5ucGZzX3NlY190YXNrX2FsbG9jLA0KLSAgICAudGFza19mcmVlX3Nl
Y3VyaXR5ID0gbm5wZnNfc2VjX3Rhc2tfZnJlZSwNCi0vLyAgICAudGFza19y
ZXBhcmVudF90b19pbml0ID0gbm5wZnNfc2VjX3JlcGFyZW50X3RvX2luaXQs
DQotfTsNCi0NCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovDQogDQog
I2lmZGVmIEdST1VQUEFHUw0KQEAgLTIwNiw3ICsyMTgsMTIgQEAgZmluZF9w
YWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBGU0RFQihYREVC
U1lTLCAoImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdpLT5uZ3JvdXBz
KSk7DQogDQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0gMTsgaSA+PSAw
OyBpLS0pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNCwwKQ0KIAlnaWRfdCBncm91cCA9IEdST1VQX0FUKGdpLCBp
KTsNCisjZWxzZQ0KKwlrZ2lkX3Qga2dyb3VwID0gR1JPVVBfQVQoZ2ksIGkp
Ow0KKwlnaWRfdCBncm91cCA9IGtncm91cC52YWw7DQorI2VuZGlmDQogCWlm
ICgobm5wZnNfcGFnX3QpZ3JvdXAgPj0gTk5QRlNfUEFHX0xMSU0gJiYgKG5u
cGZzX3BhZ190KWdyb3VwIDwgTk5QRlNfUEFHX1VMSU0pIHsNCiAJICAgIE5O
UEZTREVCKFhERUJTWVMsDQogCQkgICAgICgiZmluZF9wYWc6IEV4aXN0aW5n
IHBhZyAldSBhdCBwb3MgJXVcbiIsIGdyb3VwLCBpKSk7DQpAQCAtMjIyLDE1
ICsyMzksMzEgQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0K
IHN0YXRpYyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9p
ZCkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS
U0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGN1
cnJlbnQtPmdyb3VwX2luZm87DQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1
cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq
Z2kgPSBnZXRfY3VycmVudF9ncm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBubnBmc19w
YWdfdCByZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRf
dCBrdWlkID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0
ID0ga3VpZC52YWw7DQorI2VuZGlmDQorI2VuZGlmDQogICAgIGludCBpOw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o
Miw2LDI4KQ0KICAgICBnZXRfZ3JvdXBfaW5mbyhnaSk7DQorI2VuZGlmDQog
DQogICAgIGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZT
X1BBR19OT1RGT1VORCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7
DQorI2Vsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsg
cmV0ID0ga2dpZC52YWw7IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3Vw
X2luZm8oZ2kpOw0KIA0KQEAgLTI0MiwxMyArMjc1LDE5IEBAIG5ucGZzX2dl
dF9wYWdfZ3JvdXAodm9pZCkNCiBzdGF0aWMgaW50DQogc3RvcmVfcGFnKG5u
cGZzX3BhZ190IHBhZ251bSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91
cF9pbmZvICpvbGRfZ2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KKyNlbHNl
DQorICAgc3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGdldF9jdXJyZW50
X2dyb3VwcygpOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq
bmV3X2dpOw0KLSAgICBpbnQgbmJsb2NrcywgY291bnQ7DQorICAgIHVuc2ln
bmVkIGludCBuYmxvY2tzLCBjb3VudDsNCiAgICAgaW50IGZvdW5kID0gMDsN
CiAgICAgaW50IGksIGs7DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KSAgICANCiAgICAgZ2V0X2dy
b3VwX2luZm8ob2xkX2dpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRf
cGFnKG9sZF9naSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RGT1VO
RCkNCkBAIC0yNzQsMTAgKzMxMywxNyBAQCBzdG9yZV9wYWcobm5wZnNfcGFn
X3QgcGFnbnVtKQ0KIAljb3VudCAtPSBOR1JPVVBTX1BFUl9CTE9DSzsNCiAg
ICAgfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE0LDApDQogICAgIGlmIChmb3VuZCkNCiAJR1JPVVBfQVQobmV3
X2dpLCBpKSA9IHBhZ251bTsNCiAgICAgZWxzZQ0KIAlHUk9VUF9BVChuZXdf
Z2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0gcGFnbnVtOw0KKyNlbHNlDQor
ICAgIGlmIChmb3VuZCkNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQo
cGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9IGtnaWQ7IH0NCisgICAg
ZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBH
Uk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0ga2dpZDsg
fQ0KKyNlbmRpZg0KICAgICANCiAgICAgc2V0X2N1cnJlbnRfZ3JvdXBzKG5l
d19naSk7DQogICAgIHB1dF9ncm91cF9pbmZvKG5ld19naSk7DQpAQCAtMzE3
LDcgKzM2MywxMyBAQCBubnBmc19nZXRfcGFnKCkNCiAgICAgcmV0dXJuIG5u
cGZzX2dldF9wYWdfZ3JvdXAoKTsNCiAjZW5kaWYgLyogR1JPVVBQQUdTICov
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP
TigyLDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K
KyAgICByZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1
aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9
DQorI2VuZGlmDQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50DQpAQCAtNDIy
LDcgKzQ3NCw3IEBAIG5ucGZzX3NldGdyb3VwczE2IChpbnQgZ2lkc2V0c2l6
ZSwgb2xkX2cNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5kaWYg
LyogR1JPVVBQQUdTICovDQogDQotc3RydWN0IGZpbGVfaGFuZGxlIHsNCitz
dHJ1Y3Qgbm5wZnNfZmlsZV9oYW5kbGUgew0KICAgICBubnBmc19kZXZfdCBk
ZXY7DQogICAgIGlub190IGlub2RlOw0KICAgICBfX3UzMiBnZW47DQpAQCAt
NTA5LDE0ICs1NjEsMjcgQEAgbm5wZnNfZGVidWdfcHJpbnQgKHN0cnVjdCBh
cmxhVmljZUlvY3RsIA0KICAqIGZvbGxvdyBzeW1saW5rcyBpZmYgYGZvbGxv
dycNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiB1
c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hhciAq
dXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVj
dCBkZW50cnkgKg0KK3VzZXJfcGF0aDJkZW50cnkgKHN0cnVjdCBwYXRoICpw
YXRoLCBjaGFyICp1c2VyX3BhdGgsIGludCBmb2xsb3cpDQorI2VuZGlmDQog
ew0KLSAgICBjaGFyICprbmFtZTsNCiAgICAgaW50IGZsYWdzID0gMDsNCiAg
ICAgaW50IGVycm9yID0gMDsNCiANCi0gICAga25hbWUgPSBnZXRuYW1lICh1
c2VyX3BhdGgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDcsMCkNCisgICAgY2hhciAqa25hbWU7DQorICAgIGtuYW1l
ID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyNlbHNlDQorICAgIGNvbnN0IGNo
YXIgKmtuYW1lOw0KKyAgICBzdHJ1Y3QgZmlsZW5hbWUgKmZuYW1lOw0KKyAg
ICBmbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisgICAga25hbWUgPSBm
bmFtZS0+bmFtZTsNCisjZW5kaWYNCisNCiAgICAgaWYgKElTX0VSUihrbmFt
ZSkpDQogCXJldHVybiBFUlJfUFRSKFBUUl9FUlIoa25hbWUpKTsNCiAgICAg
aWYgKGZvbGxvdykNCkBAIC01MjQsMTEgKzU4OSwyNSBAQCB1c2VyX3BhdGgy
ZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgDQogDQogICAgIE5OUEZT
REVCKFhERUJNU0csICgibm5wZnNfc3lzY2FsbDogbG9va2luZyB1cDogJXNc
biIsIGtuYW1lKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgZXJyb3IgPSBwYXRoX2xvb2t1
cChrbmFtZSwgZmxhZ3MsIG5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGVycm9yID0ga2Vy
bl9wYXRoKGtuYW1lLCBmbGFncywgJihuZC0+cGF0aCkpOw0KKyNlbHNlDQor
ICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywgcGF0aCk7DQor
I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsNywwKQ0KICAgICBwdXRuYW1lKGtuYW1lKTsNCisjZWxzZQ0KKyAg
ICBrbWVtX2NhY2hlX2ZyZWUobmFtZXNfY2FjaGVwLCAodm9pZCAqKWtuYW1l
KTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gRVJSX1BU
UihlcnJvcik7DQotICAgIHJldHVybiBuZC0+ZGVudHJ5Ow0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAg
IHJldHVybiBuZC0+cGF0aC5kZW50cnk7DQorI2Vsc2UNCisgICAgcmV0dXJu
IHBhdGgtPmRlbnRyeTsNCisjZW5kaWYNCiB9DQogDQogYXNtbGlua2FnZSBs
b25nDQpAQCAtNTQwLDEyICs2MTksMjQgQEAgc3lzX2Fmc19pbnQgKGludCBv
cGVyYXRpb24sDQogew0KICAgICBsb25nIGVycm9yID0gMDsNCiAgICAgc3Ry
dWN0IGFybGFWaWNlSW9jdGwgdmljZV9pb2N0bDsgDQotICAgIHN0cnVjdCBu
bnBmc19tZXNzYWdlX3Bpb2N0bCBtc2c7DQorICAgIHN0cnVjdCBubnBmc19t
ZXNzYWdlX3Bpb2N0bCAqbXNnID0gTlVMTDsNCiAgICAgc3RydWN0IG5ucGZz
X21lc3NhZ2Vfd2FrZXVwICptc2cyOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1laWRhdGEgbmQ7
DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAg
ICAgDQorICAgIG1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VS
TkVMKTsNCisgICAgaWYgKG1zZyA9PSBOVUxMKQ0KKyAgICAgIHJldHVybiAt
RU5PTUVNOw0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzkpDQogICAgIGxvY2tfa2VybmVsKCk7DQorI2Vsc2UN
CisgICAgLyogVE9ETzogbG9ja19rZXJuZWwoKSBpcyByZW1vdmVkLCBjb25z
aWRlciBhZGRpbmcgYW4gcHJpdmF0ZSBsb2NrICovDQorI2VuZGlmDQogDQog
ICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgbG9ja2Vk
XG4iKSk7DQogDQpAQCAtNTc1LDcgKzY2Niw3IEBAIHN5c19hZnNfaW50IChp
bnQgb3BlcmF0aW9uLA0KIAkgICAgZ290byB1bmxvY2s7DQogCX0NCiAJaWYg
KHZpY2VfaW9jdGwuaW5fc2l6ZSAhPSAwKSB7DQotCSAgICBpZihjb3B5X2Zy
b21fdXNlcigmbXNnLm1zZywNCisJICAgIGlmKGNvcHlfZnJvbV91c2VyKCZt
c2ctPm1zZywNCiAJCQkgICAgICB2aWNlX2lvY3RsLmluLA0KIAkJCSAgICAg
IHZpY2VfaW9jdGwuaW5fc2l6ZSkgIT0gMCkgew0KIAkJZXJyb3IgPSAtRUZB
VUxUOw0KQEAgLTU4Myw3ICs2NzQsMTEgQEAgc3lzX2Fmc19pbnQgKGludCBv
cGVyYXRpb24sDQogCSAgICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVM
TCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQogCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgm
bmQsIGFfcGF0aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAg
ICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwg
YV9mb2xsb3dTeW1saW5rcyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRy
eSkgew0KIAkJZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpA
QCAtNjI4LDE5ICs3MjMsMjMgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRp
b24sDQogCQllcnJvciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsNCiAJ
ICAgIH0NCi0JICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwkgICAg
bXNnLT5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAl9DQogDQotCW1zZy5oZWFk
ZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BJT0NUTDsNCi0JbXNnLm9wY29kZSA9
IGFfb3Bjb2RlOw0KKwltc2ctPmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0df
UElPQ1RMOw0KKwltc2ctPm9wY29kZSA9IGFfb3Bjb2RlOw0KIAkNCi0JbXNn
Lmluc2l6ZSAgID0gdmljZV9pb2N0bC5pbl9zaXplOw0KLQltc2cub3V0c2l6
ZSAgPSB2aWNlX2lvY3RsLm91dF9zaXplOw0KLQltc2cuY3JlZC51aWQgPSBj
dXJyZW50LT51aWQ7DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWco
KTsNCisJbXNnLT5pbnNpemUgICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsNCisJ
bXNnLT5vdXRzaXplICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQor
CW1zZy0+Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg
ICAgIG1zZy0+Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K
Kwltc2ctPmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAkNCi0JZXJy
b3IgPSBubnBmc19tZXNzYWdlX3JwYygmbm5wZnNbMF0sICZtc2cuaGVhZGVy
LCBzaXplb2YobXNnKSk7IC8qIFhYWCAqLw0KLQltc2cyID0gKHN0cnVjdCBu
bnBmc19tZXNzYWdlX3dha2V1cCAqKSAmbXNnOw0KKwllcnJvciA9IG5ucGZz
X21lc3NhZ2VfcnBjKCZubnBmc1swXSwgJm1zZy0+aGVhZGVyLCBzaXplb2Yo
Km1zZykpOyAvKiBYWFggKi8NCisJbXNnMiA9IChzdHJ1Y3Qgbm5wZnNfbWVz
c2FnZV93YWtldXAgKikgbXNnOw0KIAlpZiAoZXJyb3IgPT0gMCkNCiAJICAg
IGVycm9yID0gbXNnMi0+ZXJyb3I7DQogDQpAQCAtNjc1LDEyICs3NzQsMjEg
QEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogICAgIA0KICB1bmxv
Y2s6DQogICAgIGlmIChkZW50cnkpDQotCXBhdGhfcmVsZWFzZSgmbmQpOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQorCXBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwlwYXRoX3B1
dCgmcGF0aCk7DQorI2VuZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJTWVMs
ICgibm5wZnNfc3lzY2FsbCByZXR1cm5zIGVycm9yOiAlbGRcbiIsIGVycm9y
KSk7DQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJu
ZWwgdW5sb2NrXG4iKSk7DQorICAgIGtmcmVlKG1zZyk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAg
dW5sb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IHNlZSB0
aGUgY29tbWVudCBhdCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2VuZGlm
DQogDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAtNzI5LDkgKzgzNywx
NSBAQCBzeXNfYWZzIChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFfZm9s
bG93U3ltbGlua3MpOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBm
c19wcm9jZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZp
bGUgKmZpbGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBs
b25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2Zz
X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50
IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAgICBh
ZnNwcm9jZGF0YSBhcmdzOw0KICAgICBsb25nIHJldDsNCkBAIC03ODAsMjEg
Kzg5NCwzMSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQp
DQogew0KICAgICBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmVudHJ5Ow0KICAg
ICANCi0gICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIoTk5QRlNf
UFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIG5ucGZzX3Byb2Nmc19k
aXIgPSBwcm9jX21rZGlyKCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsN
CiAgICAgaWYgKG5ucGZzX3Byb2Nmc19kaXIgPT0gTlVMTCkNCiAJcmV0dXJu
IC1FTk9NRU07DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzApDQogICAgIG5ucGZzX3Byb2Nmc19kaXIt
Pm93bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAgIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEwLDApDQog
ICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RF
LCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxzZQ0KKyAgICBlbnRy
eSA9IHByb2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwgMDY2NiwgTlVMTCwg
Jm5ucGZzX3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAgaWYgKGVudHJ5
ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19pbml0
X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KLQlyZW1vdmVfcHJvY19lbnRyeShO
TlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisJcmVtb3ZlX3Byb2Nf
ZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KIAlyZXR1cm4g
LUVOT01FTTsNCiAgICAgfQ0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBlbnRyeS0+b3du
ZXIgPSBUSElTX01PRFVMRTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRyeS0+
cHJvY19mb3BzID0gJm5ucGZzX3Byb2Nmc19mb3BzOw0KKyNlbmRpZg0KIA0K
ICNpZmRlZiBTWVNDQUxMQ09NUEFUDQogICAgIGlmIChyZWdpc3Rlcl9pb2N0
bDMyX2NvbnZlcnNpb24oQVJMQV9WSU9DX1NZU0NBTEwzMiwgbm5wZnNfcHJv
Y2ZzX2lvY3RsMzIpKSB7DQpAQCAtODE1LDcgKzkzOSw3IEBAIHN0YXRpYyB2
b2lkIG5ucGZzX2V4aXRfcHJvY2ZzKHZvaWQpDQogICAgIH0NCiAjZW5kaWYg
LyogU1lTQ0FMTENPTVBBVCAqLw0KICAgICByZW1vdmVfcHJvY19lbnRyeShO
TlBGU19QUk9DX05PREUsIG5ucGZzX3Byb2Nmc19kaXIpOw0KLSAgICByZW1v
dmVfcHJvY19lbnRyeShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsN
CisgICAgcmVtb3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIs
IE5VTEwpOw0KIH0NCiANCiAjaWZkZWYgR1JPVVBQQUdTDQpAQCAtODM5LDE0
ICs5NjMsNiBAQCBpbnN0YWxsX3NldGdyb3Vwcyh2b2lkKQ0KIHZvaWQNCiBp
bnN0YWxsX2Fmc19zeXNjYWxsKHZvaWQpDQogew0KLSNpZmRlZiBDT05GSUdf
U0VDVVJJVFkNCi0gICAgaWYgKHJlZ2lzdGVyX3NlY3VyaXR5KCZubnBmc19z
ZWNfb3BzKSkNCi0JTk5QRlNERUIoWERFQlNZUywNCi0JCSAoImluc3RhbGxf
YWZzX3N5c2NhbGw6IG5ucGZzX2luaXRfc2VjIGZhaWxlZFxuIikpOw0KLSAg
ICBlbHNlDQotCW5ucGZzX3NlY19yZWdpc3RlcmVkID0gMTsNCi0jZW5kaWYN
Ci0NCiAgICAgbm5wZnNfaW5pdF9wcm9jZnMoKTsNCiANCiAjaWZkZWYgU1lT
Q0FMTEhBQ0sNCkBAIC04ODcsMTIgKzEwMDMsNiBAQCByZXN0b3JlX2Fmc19z
eXNjYWxsICh2b2lkKQ0KICNlbmRpZg0KICNlbmRpZiAvKiBTWVNDQUxMSEFD
SyAqLw0KIA0KLSNpZmRlZiBDT05GSUdfU0VDVVJJVFkNCi0gICAgaWYgKG5u
cGZzX3NlY19yZWdpc3RlcmVkKQ0KLQlpZiAodW5yZWdpc3Rlcl9zZWN1cml0
eSgmbm5wZnNfc2VjX29wcykpDQotCSAgICBwcmludGsoS0VSTl9FTUVSRyAi
bm5wZnNfZXhpdF9zZWM6IGNvdWxkbid0IHVucmVnaXN0ZXJcbiIpOw0KLSNl
bmRpZiAvKiAhQ09ORklHX1NFQ1VSSVRZICovDQotDQogI2lmZGVmIEdST1VQ
UEFHUw0KICNpZmRlZiBTWVNDQUxMSEFDSw0KICAgICBpZiAob2xkX3NldGdy
b3Vwcykgew0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jDQotLS0gYXJs
YS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdl
LmMJMjAwNi0xMi0xMSAxNzozMTo0NS4wMDAwMDAwMDAgKzAxMDANCisrKyBh
cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5j
CTIwMTYtMDEtMTMgMjE6NTE6NDkuMDAwMDAwMDAwICswMTAwDQpAQCAtNDcs
MTEgKzQ3LDIwIEBADQogI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPg0KIA0K
ICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLWxv
c3NhZ2UuYyx2IDEuMTcgMjAwNi8xMi8xMSAxNjozMTo0NSB0b2wgRXhwICQi
KTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAx
LjE5IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQorI2VuZGlm
DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigzLDcsMCkNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5k
JyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyICovDQor
I3VuZGVmIFNZU0NBTExIQUNLDQogI2VuZGlmDQogDQogI2luY2x1ZGUgPGxp
bnV4L2thbGxzeW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNLDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KIHN0
YXRpYyB2b2lkICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhyZWFkOw0KKyNl
bmRpZg0KKyNlbmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFr
KSkgc3lzX2NhbGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lzX2NhbGxfZnVu
Y3Rpb24gKm5ucGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02Myw2ICs3Miwx
MSBAQCBjb25zdCBjaGFyICogX19hdHRyaWJ1dGVfXygod2VhaykpDQogCQkg
ICAgdW5zaWduZWQgbG9uZyAqb2Zmc2V0LA0KIAkJICAgIGNoYXIgKiptb2Ru
YW1lLCBjaGFyICpuYW1lYnVmKTsNCiANCisjaWZkZWYgX194ODZfNjRfXw0K
K2V4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrIF9fYXR0cmlidXRlX18o
KHdlYWspKTsNCisjZW5kaWYNCisNCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCiBz
dGF0aWMgdm9pZCAqKg0KIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAjaWZk
ZWYgX194ODZfNjRfXw0KQEAgLTcxLDYgKzg1LDcgQEAgZ2V0X3N0YXJ0X2Fk
ZHIodm9pZCkgew0KICAgICByZXR1cm4gKHZvaWQgKiopJm11dGV4X2xvY2s7
DQogI2VuZGlmDQogfQ0KKyNlbmRpZg0KIA0KIHN0YXRpYyBpbmxpbmUgaW50
IA0KIGthbGxzeW1faXNfZXF1YWwodW5zaWduZWQgbG9uZyBhZGRyLCBjb25z
dCBjaGFyICpuYW1lKQ0KQEAgLTEzOSw2ICsxNTQsOCBAQCB2ZXJpZnkodm9p
ZCAqKnApIHsNCiAgICAgcmV0dXJuIDE7DQogfQ0KIA0KKyNpZmRlZiBTWVND
QUxMSEFDSw0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGxvb2tzX2dvb2Qodm9p
ZCAqKnApDQogew0KICAgICBpZiAoKnAgPD0gKHZvaWQqKWxvd2VyX2JvdW5k
IHx8ICpwID49ICh2b2lkKilwKQ0KQEAgLTE4OCwzICsyMDUsNSBAQCBubnBm
c19maXh1cF9zeXNjYWxsX2xvc3NhZ2Uodm9pZCkNCiANCiAgICAgcmV0dXJu
IDA7DQogfQ0KKw0KKyNlbmRpZg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAwNi0xMi0xMSAxNzo0
MzozNS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGlu
dXgvbm5wZnNfdmZzb3BzLmMJMjAxNi0wMS0xNCAxNzoxMzoxOC4wMDAwMDAw
MDAgKzAxMDANCkBAIC00NCwzMCArNDQsMjYgQEANCiAjaW5jbHVkZSA8bGlu
dXgvbW0uaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBm
c192ZnNvcHMuYyx2IDEuMTA5IDIwMDYvMTIvMTEgMTY6NDM6MzUgdG9sIEV4
cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAy
MDEwLzA4LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0K
IHN0cnVjdCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KLXN0YXRpYyB2b2lk
IG5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQogc3Rh
dGljIHZvaWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAq
c2IpOw0KLXN0YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5v
ZGUgKmlub2RlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHZvaWQgbm5wZnNfd3JpdGVfc3Vw
ZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpOw0KKyNlbmRpZg0KIA0KLSNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4
KQ0KIHN0YXRpYyBpbnQgbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2Vsc2UNCi1zdGF0aWMg
aW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1
Y3Qga3N0YXRmcyAqYnVmKTsNCi0jZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0
IHN1cGVyX29wZXJhdGlvbnMgbm5wZnNfc29wcyA9IHsgDQotICAgIHJlYWRf
aW5vZGUJCTogbm5wZnNfcmVhZF9pbm9kZSwNCi0gICAgcHV0X2lub2RlCQk6
IG5ucGZzX3B1dF9pbm9kZSwNCiAgICAgYWxsb2NfaW5vZGUJCTogbm5wZnNf
bm9kZV9hbGxvYywNCiAgICAgZGVzdHJveV9pbm9kZQk6IG5ucGZzX25vZGVf
ZnJlZSwNCiAgICAgZHJvcF9pbm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9pbm9k
ZSwNCiAgICAgcHV0X3N1cGVyCQk6IG5ucGZzX3B1dF9zdXBlciwNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog
ICAgIHdyaXRlX3N1cGVyCQk6IG5ucGZzX3dyaXRlX3N1cGVyLA0KKyNlbmRp
Zg0KICAgICBzdGF0ZnMJCTogbm5wZnNfc3RhdGZzLA0KIH07DQogDQpAQCAt
OTQsNyArOTAsMTEgQEAgbm5wZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUg
KmkpDQogCSAqIHJvb3QncyBwcml2aWxpZ2VzICh1c3VhbGx5IG5vbmUsIGFu
ZCBub25lIGlzIG5lZWRlZCkuDQogCSAqLw0KIAkNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAltc2cuY3Jl
ZC51aWQgPSAwOw0KKyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lO
SVQoMCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAll
cnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIs
IHNpemVvZihtc2cpKTsNCkBAIC0xMjksOCArMTI5LDEzIEBAIG1ha2Vfcm9v
dF9pbm9kZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01P
REUoJm5vZGUuYXR0ciwgU19JRkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRf
TkxJTksoJm5vZGUuYXR0ciwgMTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5v
ZGUuYXR0ciwgMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRy
LCAwKTsNCiAgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCAwKTsNCisjZWxz
ZQ0KKyAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIEtVSURUX0lOSVQoMCkp
Ow0KKyAgICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIEtHSURUX0lOSVQoMCkp
Ow0KKyNlbmRpZg0KICAgICBYQV9TRVRfQVRJTUUoJm5vZGUuYXR0ciwgMCk7
DQogICAgIFhBX1NFVF9NVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFf
U0VUX0NUSU1FKCZub2RlLmF0dHIsIDApOw0KQEAgLTE1OSw3ICsxNjQsMTEg
QEAgbWFrZV9yb290IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBu
bnBmcy0+cm9vdCA9IGlub2RlOw0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFu
ZGxpbmcgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw0LDApDQogICAgIGRwID0gZF9hbGxvY19yb290KGlub2RlKTsN
CisjZWxzZQ0KKyAgICBkcCA9IGRfbWFrZV9yb290KGlub2RlKTsNCisjZW5k
aWYNCiAgICAgbm5wZnNfZF9pbml0KGRwKTsNCiAgICAgc2ItPnNfcm9vdCA9
IGRwOw0KICAgICByZXR1cm4gMDsNCkBAIC0xODMsMTMgKzE5MiwyNyBAQCBu
bnBmc19yZWFkX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQogICAg
IE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19yZWFkX3N1cGVyOiBiZWdp
biBzZXR0aW5nIHZhcmlhYmxlc1xuIikpOw0KIA0KICAgICBpZiAoZGF0YSAh
PSBOVUxMKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxz
ZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAkNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAll
cnJvciA9IHBhdGhfbG9va3VwKGRhdGEsIDAsICZuZCk7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwll
cnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UN
CisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJnBhdGgpOw0KKyNlbmRp
Zg0KIAlpZiAoZXJyb3IpDQogCSAgICBkZGV2ID0gRVJSX1BUUihlcnJvcik7
DQogCWVsc2UNCi0JICAgIGRkZXYgPSBuZC5kZW50cnk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAg
IGRkZXYgPSBuZC5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKwkgICAgZGRldiA9
IHBhdGguZGVudHJ5Ow0KKyNlbmRpZg0KIA0KIAlpZiAoIUlTX0VSUihkZGV2
KSkgew0KIAkgICAgbWlub3JkZXZpY2UgPSBNSU5PUihkZGV2LT5kX2lub2Rl
LT5pX3JkZXYpOw0KQEAgLTIzMyw3ICsyNTYsNyBAQCBubnBmc19maWxsX3N1
cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQogICAgIHJldHVybiAwOw0K
IH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDIsNiwxOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM5KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3Ms
IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KQEAgLTI0MiwxOSArMjY1LDIyIEBA
IG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiAg
ICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwg
bm5wZnNfZmlsbF9zdXBlciwgbW50KTsNCiB9DQogI2Vsc2UNCi1zdHJ1Y3Qg
c3VwZXJfYmxvY2sgKg0KLW5ucGZzX2dldF9zYiAoc3RydWN0IGZpbGVfc3lz
dGVtX3R5cGUgKmZzX3R5cGUsDQotCSAgICAgIGludCBmbGFncywgY29uc3Qg
Y2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEpIA0KK3N0cnVjdCBkZW50cnkq
DQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5
cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwN
CisJICAgICB2b2lkICpkYXRhKSANCiB7DQotICAgIHJldHVybiBnZXRfc2Jf
bm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIp
Ow0KKyAgICByZXR1cm4gbW91bnRfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRh
dGEsIG5ucGZzX2ZpbGxfc3VwZXIpOw0KIH0NCiAjZW5kaWYNCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog
c3RhdGljIHZvaWQNCiBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKiBzYikNCiB7DQogICAgIHNiLT5zX2RpcnQgPSAwOw0KIH0NCisj
ZW5kaWYNCiANCiAvKg0KICAqIFhYWCBpcyB0aGlzIGdvb2Q/IA0KQEAgLTI3
Myw3MyArMjk5LDYgQEAgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9i
bG9jayAqc2IpDQogICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19w
dXRfc3VwZXIgZXhpdGluZ1xuIikpOw0KIH0NCiANCi1zdGF0aWMgdm9pZA0K
LW5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkNCi17DQot
ICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgc3Rh
cnRpbmcgaW5vZGU6ICVwXG4iLGlub2RlKSk7DQotICAgIE5OUEZTREVCKFhE
RUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgaW5vZGUtPmlfaW5vOiAlbGRc
biIsaW5vZGUtPmlfaW5vKSk7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCi0gICAgaW5vZGUtPmlfYmxrc2l6
ZSA9IDEwMjQ7DQotI2VuZGlmDQotICAgIGlub2RlLT5pX21vZGUgPSAwOw0K
LSAgICBpbm9kZS0+aV9vcCA9IE5VTEw7DQotICAgIE5OUEZTREVCKFhERUJW
Rk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgZXhpdGluZ1xuIikpOw0KLX0NCi0g
DQotLyoNCi0gKiBDYWxsZWQgd2hlbiBgaW5vZGUnIGlzIGRlLXJlZmVyZW5j
ZWQsIGllIHdoZW4gaXB1dCBpcyBjYWxsZWQuDQotICovDQotDQotc3RhdGlj
IHZvaWQNCi1ubnBmc19wdXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkN
Ci17DQotICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hO
T0RFKGlub2RlKTsNCi0gICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBG
U19GUk9NX1ZOT0RFKGlub2RlKTsNCi0gICAgaW50IGJhZDsNCi0NCi0gICAg
Tk5QRlNERUIoWERFQlZGT1BTLCgibm5wZnNfcHV0X2lub2RlOiBpbm9kZTog
JXAgY291bnQ6ICVkIGFsaWFzZXM6IiwNCi0JCQlpbm9kZSwgbm5wZnNfaWNv
dW50KGlub2RlKSkpOw0KLSAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2Rl
KTsNCi0gICAgDQotICAgIGRvd24oJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsN
Ci0NCi0gICAgaWYgKChubnBmc3AtPnN0YXR1cyAmIE5OUEZTX0RFVk9QRU4p
ID09IDApIHsNCi0JaWYgKCFpc19iYWRfaW5vZGUoaW5vZGUpKSB7DQotCSAg
ICBpZiAoaW5vZGUgIT0gbm5wZnNwLT5yb290KSB7DQotCQltYWtlX2JhZF9p
bm9kZShpbm9kZSk7DQotCQlubnBmc19pcmVsZShpbm9kZSk7IC8qIHNlZSBu
bnBmc19ub2RlX2FkZCgpICovDQotCSAgICB9DQotCSAgICB4bi0+ZmxhZ3Mg
fD0gTk5QRlNfU1RBTEU7DQotCX0NCi0JYmFkID0gMTsgLyogb3Igcm9vdCwg
cmVhbGx5ICovDQotICAgIH0gZWxzZSB7DQotCWJhZCA9IGlzX2JhZF9pbm9k
ZShpbm9kZSk7DQotICAgIH0NCi0NCi0gICAgaWYgKHhuLT5mbGFncyAmIE5O
UEZTX1NUQUxFICYmICFubnBmc19ub2RlX3VzZXJzKGlub2RlKSkgew0KLQl4
bi0+ZmxhZ3MgfD0gTk5QRlNfTk9ERV9JUFVUOyAvKiBYWFggbG9ja2luZyAq
Lw0KLSAgCW5ucGZzX2ZvcmNlX2ludmFsaWRfbm9kZSh4bik7DQotCXhuLT5m
bGFncyAmPSB+Tk5QRlNfTk9ERV9JUFVUOw0KLSAgICB9DQotICAgIA0KLSAg
ICBpZiAoYmFkKSB7DQotCWlmIChubnBmc19pY291bnQoaW5vZGUpID09IDEp
DQotCSAgICBubnBmc19ub2RlX2NsZWFyKHhuKTsNCi0gICAgfSBlbHNlIGlm
IChubnBmc19pY291bnQoaW5vZGUpID09IDIpIHsNCi0JLyogDQotCSAqIFRo
ZSBsYXN0IGV4dGVybmFsIHJlZmVyZW5jZSBpcyBiZWluZyBkcm9wcGVkLCBv
bmx5IHRoZSBvbmUNCi0JICogZnJvbSBubnBmc19ub2RlX2FkZCgpIGlzIGxl
ZnQuIFRpbWUgdG8gbGV0IGRhZW1vbiByZWxlYXNlDQotCSAqIHRoaXMgbm9k
ZSBwcm9wZXJseS4NCi0JICovDQotCWlmICgoeG4tPmZsYWdzICYgTk5QRlNf
TElNQk8pID09IDApIHsNCi0JICAgIG5ucGZzX25vZGVfY2xlYXIoeG4pOw0K
LQkgICAgbm5wZnNfcXVldWVfaW5hY3RpdmUoeG4pOw0KLQl9DQotICAgIH0N
Ci0NCi0gICAgdXAoJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsNCi19DQotDQog
c3RhdGljIGludA0KIG5ucGZzX3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Js
b2NrICpzYiwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQpAQCAtMzUyLDI1
ICszMTEsMjEgQEAgbm5wZnNfc3RhdGZzX2ludChzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKnNiLA0KICAgICB0bXAuZl9iYXZhaWwgID0gMTAyNCoxMDI0KjItNTA7
DQogICAgIHRtcC5mX2ZpbGVzICAgPSAxMDI0KjEwMjQ7DQogICAgIHRtcC5m
X2ZmcmVlICAgPSAxMDI0KjEwMjQtMTAwOw0KKyAgICB0bXAuZl9mc2lkLnZh
bFswXSA9IDA7DQorICAgIHRtcC5mX2ZzaWQudmFsWzFdID0gMDsNCiAgICAg
dG1wLmZfbmFtZWxlbiA9IE5BTUVfTUFYOw0KKyAgICB0bXAuZl9mcnNpemUg
ID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMF0gPSAwOw0KKyAgICB0bXAuZl9z
cGFyZVsxXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzJdID0gMDsNCisgICAg
dG1wLmZfc3BhcmVbM10gPSAwOw0KKyAgICB0bXAuZl9zcGFyZVs0XSA9IDA7
DQogICAgICpidWYgPSB0bXA7DQogICAgIHJldHVybiAwOw0KIH0NCiANCi0j
aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwx
OCkNCi0NCiBzdGF0aWMgaW50DQogbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50
cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQogICAgIHJl
dHVybiBubnBmc19zdGF0ZnNfaW50KGRlbnRyeS0+ZF9zYiwgYnVmKTsNCiB9
DQotDQotI2Vsc2UNCi0NCi1zdGF0aWMgaW50DQotbm5wZnNfc3RhdGZzKHN0
cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYpDQot
ew0KLSAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChzYiwgYnVmKTsNCi19
DQotDQotI2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvYXJsYWQvZmNhY2hlLmMgYXJsYS0wLjkwL2FybGFkL2ZjYWNoZS5jDQot
LS0gYXJsYS0wLjkwLW9sZC9hcmxhZC9mY2FjaGUuYwkyMDA2LTEyLTExIDE3
OjIzOjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9hcmxhZC9m
Y2FjaGUuYwkyMDE2LTAxLTIyIDE3OjAwOjQzLjAwMDAwMDAwMCArMDEwMA0K
QEAgLTcxMyw3ICs3MTMsNyBAQCBmY2FjaGVfaGF2ZV93YW50ZWQoRkNhY2hl
RW50cnkgKmVudHJ5LCB1DQogaW50DQogZmNhY2hlX2Rpcl9uYW1lIChGQ2Fj
aGVFbnRyeSAqZW50cnksIGNoYXIgKnMsIHNpemVfdCBsZW4pDQogew0KLSAg
ICByZXR1cm4gc25wcmludGYgKHMsIGxlbiwgIiUwMlgiLCBlbnRyeS0+aW5k
ZXggLyAweDEwMCk7DQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVuLCBO
TlBGU19DQUNIRV9GSUxFX0RJUjEsIGVudHJ5LT5pbmRleCAvIDB4MTAwKTsN
CiB9DQogDQogLyoNCkBAIC03MjMsNyArNzIzLDcgQEAgZmNhY2hlX2Rpcl9u
YW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYQ0KIHN0YXRpYyBpbnQNCiBm
Y2FjaGVfZmlsZV9uYW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYXIgKnMs
IHNpemVfdCBsZW4pDQogew0KLSAgICByZXR1cm4gc25wcmludGYgKHMsIGxl
biwgIiUwMlgvJTAyWCIsDQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVu
LCBOTlBGU19DQUNIRV9GSUxFX0RJUl9QQVRILA0KIAkJICAgICBlbnRyeS0+
aW5kZXggLyAweDEwMCwgZW50cnktPmluZGV4ICUgMHgxMDApOw0KIH0NCiAN
CkBAIC04MTUsNyArODE1LDcgQEAgZmNhY2hlX2ZoZ2V0IChjaGFyICpmaWxl
bmFtZSwgZmNhY2hlX2NhYw0KIAlpbnQgcmV0LCBhLCBiOw0KIAljaGFyIGJ1
ZlsxMDI0XTsNCiANCi0JcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCAiJTAyWC8l
MDJYIiwgJmEsICZiKTsNCisJcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCBOTlBG
U19DQUNIRV9GSUxFX0RJUl9QQVRILCAmYSwgJmIpOw0KIAlpZiAocmV0ICE9
IDIpDQogCSAgICByZXR1cm4gRUlOVkFMOw0KIA0KQEAgLTgyNCw3ICs4MjQs
NyBAQCBmY2FjaGVfZmhnZXQgKGNoYXIgKmZpbGVuYW1lLCBmY2FjaGVfY2Fj
DQogCQ0KIAlyZXQgPSBzbnByaW50ZigoY2hhciAqKWhhbmRsZS0+bm5wZnNf
aGFuZGxlLCANCiAJCSAgICAgICBzaXplb2YoaGFuZGxlLT5ubnBmc19oYW5k
bGUpLA0KLQkJICAgICAgICIlc1xcJTAyWFxcJTAyWCIsIGJ1ZiwgYSwgYik7
DQorCQkgICAgICAgIiVzXFwiIE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEgs
IGJ1ZiwgYSwgYik7DQogDQogCWlmIChyZXQgPiAwICYmIHJldCA8IHNpemVv
ZihoYW5kbGUtPm5ucGZzX2hhbmRsZSkpDQogCSAgICBoYW5kbGUtPnZhbGlk
ID0gMTsNCg==

---276651502-705249015-1453675864=:24998
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Arla-drinkers mailing list
Arla-drinkers@stacken.kth.se
https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers

---276651502-705249015-1453675864=:24998--

home help back first fref pref prev next nref lref last post