[5082] in arla-drinkers

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

Re: PATCH v12: Arla 0.90 on Linux 2.6.34 to 4.5

daemon@ATHENA.MIT.EDU (Bo Branten)
Fri Mar 18 21:37:23 2016

From arla-drinkers-bounces@stacken.kth.se Sat Mar 19 01:37:23 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 14362 invoked from network); 19 Mar 2016 01:37:22 -0000
Received: from mx5.kth.se (130.237.32.10)
  by charon.mit.edu with SMTP; 19 Mar 2016 01:37:22 -0000
Received: from mx5.kth.se (localhost [127.0.0.1])
	by mx5.kth.se (Postfix) with ESMTP id CB79D2401C6;
	Sat, 19 Mar 2016 02:37:21 +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 yXMLScpto7Jw; Sat, 19 Mar 2016 02:36:59 +0100 (CET)
Received: from vingummi.stacken.kth.se (lists.stacken.kth.se [130.237.234.174])
	by mx5.kth.se (Postfix) with ESMTP;
	Sat, 19 Mar 2016 02:36:59 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
	by vingummi.stacken.kth.se (Postfix) with ESMTP id 027E114CBEC;
	Sat, 19 Mar 2016 02:36:59 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
 id 31C8314CBEC; Sat, 19 Mar 2016 02:36:57 +0100 (CET)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx5.kth.se (mx5.kth.se [130.237.32.10])
 by vingummi.stacken.kth.se (Postfix) with ESMTPS id 2844C14CBDA
 for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:36:57 +0100 (CET)
Received: from mx5.kth.se (localhost [127.0.0.1])
 by mx5.kth.se (Postfix) with ESMTP id 16A542401C6
 for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:36:57 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
X-Amavis-OS-Fingerprint: ???; dist: 8; link: Ethernet or modem; params: none; 
 raw_freq: 100.00 Hz; raw_mtu: 1500; raw_sig:
 4:56+8:0:1460:32850,1:mss,nop,nop,ts,nop,ws,nop,nop,sok:df,id+:0;
 uptime: 8 days 19 hrs 1 min (modulo 497 days), [130.239.18.156]:50556
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 0otO52SPmt96 for <arla-drinkers@stacken.kth.se>;
 Sat, 19 Mar 2016 02:36:54 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [130.239.18.156])
 by mx5.kth.se (Postfix) with ESMTPS
 for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:36:54 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by amavisd-new (Postfix) with ESMTP id 2829C9D6
 for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:27:55 +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 048449D5
 for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:27:48 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
 id EAB3644B8C; Sat, 19 Mar 2016 02:27:47 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by suiko.acc.umu.se (Postfix) with ESMTP id E4B7544B8B
 for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:27:47 +0100 (CET)
Date: Sat, 19 Mar 2016 02:27:47 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v12: Arla 0.90 on Linux 2.6.34 to 4.5
In-Reply-To: <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1603190225040.21643@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-552710021-1458350867=:21643"
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-552710021-1458350867=:21643
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

PATCH v12: Arla 0.90 on Linux 2.6.34 to 4.5

Bo Branten
---276651502-552710021-1458350867=:21643
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v12-arla-0.90-for-linux-2.6.3x-to-4.5
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1603190227470.21643@suiko.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=patch-v12-arla-0.90-for-linux-2.6.3x-to-4.5

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
eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAyLTIwIDE5OjQ0OjM5LjAwMDAwMDAw
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
KTsNCkBAIC0zMTMsMTQgKzMyNCwyNiBAQCBubnBmc19ibG9ja19vcGVuKHN0
cnVjdCBubnBmc19ub2RlICpub2RlDQogCQkgc3RydWN0IGZpbGUgKipmaWxl
KQ0KIHsNCiAgICAgY2hhciBjYWNoZW5hbWVbTk5QRlNfQ0FDSEVfUEFUSF9T
SVpFXTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDMsMSwwKQ0KKyAgICBjaGFyIGZ1bGxfY2FjaGVuYW1lW05OUEZTX0NB
Q0hFX1BBVEhfU0laRV07DQorI2VuZGlmDQogICAgIHVpbnQ2NF90IGJsb2Nr
aW5kZXggPSBubnBmc19ibG9ja19pbmRleChvZmZzZXQpOw0KICAgICB1aW50
MzJfdCBpZCA9IG5vZGUtPmluZGV4Ow0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5u
cGZzcCA9IE5OUEZTX0ZST01fWE5PREUobm9kZSk7DQogICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBYTk9ERV9UT19WTk9ERShub2RlKTsNCiAgICAgaW50
IGZsYWdzID0gT19MQVJHRUZJTEUgfCBmbGFnOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVj
dCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0
aDsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDI5KQ0KICAgICB1aWRfdCBzYXZldWlkOw0KICAgICBn
aWRfdCBzYXZlZ2lkOw0KKyNlbHNlDQorICAgIGNvbnN0IHN0cnVjdCBjcmVk
ICpvbGRfY3JlZDsNCisgICAgc3RydWN0IGNyZWQgKm92ZXJyaWRlX2NyZWQ7
DQorI2VuZGlmDQogICAgIGludCByZXQ7DQogDQogICAgIEJVR19PTighbm5w
ZnNwKTsNCkBAIC0zMzAsMTIgKzM1MywyMiBAQCBubnBmc19ibG9ja19vcGVu
KHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogCXJldCA9IHNucHJpbnRmKGNh
Y2hlbmFtZSwgc2l6ZW9mKGNhY2hlbmFtZSksDQogCQkgICAgICAgTk5QRlNf
Q0FDSEVfRElSX1BBVEgsDQogCQkgICAgICAgaWQgLyAweDEwMCwgaWQgJSAw
eDEwMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigzLDEsMCkNCisJcmV0ID0gc25wcmludGYoZnVsbF9jYWNoZW5hbWUs
IHNpemVvZihjYWNoZW5hbWUpLA0KKwkJICAgICAgICIvdXNyL2FybGEvY2Fj
aGUvIiBOTlBGU19DQUNIRV9ESVJfUEFUSCwNCisJCSAgICAgICBpZCAvIDB4
MTAwLCBpZCAlIDB4MTAwKTsNCisjZW5kaWYNCiAgICAgfSBlbHNlIHsNCiAJ
cmV0ID0gc25wcmludGYoY2FjaGVuYW1lLCBzaXplb2YoY2FjaGVuYW1lKSwN
CiAJCSAgICAgICBOTlBGU19DQUNIRV9GSUxFX1BBVEgsDQogCQkgICAgICAg
aWQgLyAweDEwMCwgaWQgJSAweDEwMCwNCiAJCSAgICAgICAodW5zaWduZWQg
bG9uZyBsb25nKWJsb2NraW5kZXgpOw0KLQ0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApDQorCXJldCA9IHNucHJp
bnRmKGZ1bGxfY2FjaGVuYW1lLCBzaXplb2YoY2FjaGVuYW1lKSwNCisJCSAg
ICAgICAiL3Vzci9hcmxhL2NhY2hlLyIgTk5QRlNfQ0FDSEVfRklMRV9QQVRI
LA0KKwkJICAgICAgIGlkIC8gMHgxMDAsIGlkICUgMHgxMDAsDQorCQkgICAg
ICAgKHVuc2lnbmVkIGxvbmcgbG9uZylibG9ja2luZGV4KTsNCisjZW5kaWYN
CiAJaWYgKCFubnBmc19ibG9ja19oYXZlX3Aobm9kZSwgb2Zmc2V0KSAmJiAo
ZmxhZ3MgJiBPX0NSRUFUKSA9PSAwKSB7DQogCSAgICBwcmludGsoS0VSTl9F
TUVSRyAicmVhZGluZyBibG9jayAlczogbm90IHRoZXJlXG4iLCBjYWNoZW5h
bWUpOw0KIAkgICAgQlVHKCk7DQpAQCAtMzQ2LDIyICszNzksMzcgQEAgbm5w
ZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICBC
VUdfT04oIW5ucGZzcC0+Y2FjaGVkaXIgfHwgIW5ucGZzcC0+Y2FjaGVyb290
KTsNCiAgICAgDQogICAgIC8qIHVzZSB0aGUgbmZzZCB0cmljayB0byBnaXZl
IHVzIGFjY2VzcyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMjkpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50LT5m
c3VpZDsNCiAgICAgc2F2ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBj
dXJyZW50LT5mc3VpZCA9IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50LT5m
c2dpZCA9IG5ucGZzcC0+Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBkZ2V0
KG5ucGZzcC0+Y2FjaGVkaXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQobm5w
ZnNwLT5jYWNoZXJvb3QpOw0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNUX05P
Uk07DQotICAgIG5kLmRlcHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAwOw0K
LSAgICANCi0gICAgaWYgKGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxhZ3Mg
PSBMT09LVVBfUEFSRU5UOw0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93YWxr
KGNhY2hlbmFtZSwgJm5kKTsNCisjZWxzZQ0KKyAgICBvdmVycmlkZV9jcmVk
ID0gcHJlcGFyZV9jcmVkcygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9
PSBOVUxMKQ0KKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJy
aWRlX2NyZWQtPmZzdWlkID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRl
X2NyZWQtPmZzZ2lkID0gbm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0g
b3ZlcnJpZGVfY3JlZHMob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSww
KQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRp
ciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJ
ICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkg
ICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxOSwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5w
ZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNo
ZW5hbWUsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNf
cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv
b3QsDQorCQkJICBjYWNoZW5hbWUsIDAsICZwYXRoKTsNCisjZW5kaWYNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDAp
DQogICAgIGlmIChyZXQpIHsNCisjZWxzZQ0KKyAgICBpZiAocmV0ICYmICEo
ZmxhZ3MgJiBPX0NSRUFUKSkgew0KKyNlbmRpZg0KIAl1aW50MzJfdCBubWFz
a3MgPSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWludDMyX3QgbWFzazsNCiAN
CkBAIC0zODcsMTcgKzQzNSwzNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVj
dCBubnBmc19ub2RlICpub2RlDQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBP
X0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNf
SVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5
ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCXN0cnVjdCBk
ZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1
bGxfY2FjaGVuYW1lLCAmbmQucGF0aCwgMCk7CQ0KKyNlbHNlDQorCXN0cnVj
dCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0Qs
IGZ1bGxfY2FjaGVuYW1lLCAmcGF0aCwgMCk7CQ0KKyNlbmRpZg0KIAlpZiAo
SVNfRVJSKGRlbnRyeSkpIHsNCiAJICAgIHJldCA9IFBUUl9FUlIoZGVudHJ5
KTsNCiAJfSBlbHNlIHsNCi0JICAgIHJldCA9IHZmc19jcmVhdGUobmQuZGVu
dHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5k
X2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQorCSAgICAvKiBYWFggc2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRvIHZm
c19jcmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQorCSAg
ICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBk
ZW50cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2Vsc2UNCisJICAgIC8q
IFhYWCBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTog
Ym9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZm
c19jcmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVT
UnxTX0lXVVNSLCAwKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCSAgICBkcHV0KGRl
bnRyeSk7DQorCSAgICBtdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5k
X2lub2RlLT5pX211dGV4KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZuZC5wYXRoLCBkZW50
cnkpOw0KKyNlbHNlDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZwYXRoLCBk
ZW50cnkpOw0KKyNlbmRpZg0KIAl9DQogDQotCW11dGV4X3VubG9jaygmbmQu
ZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCi0JcGF0aF9yZWxlYXNlKCZu
ZCk7DQotDQogCWlmIChyZXQpIHsNCiAJICAgIHByaW50aygibm5wZnNfYmxv
Y2tfb3BlbiglcykgY3JlYXRlIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwg
LXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQpAQCAtNDEwLDEy
ICs0NzgsMjQgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9k
ZSAqbm9kZQ0KIAkgICAgcmV0ID0gbm5wZnNfYmxvY2tfZXh0ZW5kKG5vZGUs
IG9mZnNldCk7DQogCX0NCiAgICAgfSBlbHNlIHsNCi0Jc3RydWN0IGZpbGUg
KmYgPSBkZW50cnlfb3BlbihuZC5kZW50cnksIG5kLm1udCwgZmxhZ3MpOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MjkpDQorCXN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5k
ZW50cnksIG5kLnBhdGgubW50LCBmbGFncyk7DQorI2VsaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorICAgICAgICBz
dHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBhdGguZGVudHJ5LCBu
ZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZWxpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor
ICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZuZC5wYXRo
LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbHNlDQorICAgICAgICBz
dHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZwYXRoLCBmbGFncywgY3Vy
cmVudF9jcmVkKCkpOw0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGYpKSB7DQog
CSAgICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAgcHJpbnRrKCJubnBmc19i
bG9ja19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwg
LXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQotCSAgICBwYXRo
X3JlbGVhc2UoJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgcGF0aF9wdXQoJm5kLnBhdGgp
Ow0KKyNlbHNlDQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQog
CX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBAIC00MjQsOCAr
NTA0LDEzIEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUg
Km5vZGUNCiAgICAgLyogcGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxseSBoYW5k
bGVkIG9uIGNsb3NlICovDQogDQogIG91dDoNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjdXJyZW50
LT5mc3VpZCA9IHNhdmV1aWQ7DQogICAgIGN1cnJlbnQtPmZzZ2lkID0gc2F2
ZWdpZDsNCisjZWxzZQ0KKyAgICByZXZlcnRfY3JlZHMob2xkX2NyZWQpOw0K
KyAgICBwdXRfY3JlZChvdmVycmlkZV9jcmVkKTsNCisjZW5kaWYNCiANCiAg
ICAgcmV0dXJuIHJldDsNCiB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt
MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jDQotLS0gYXJsYS0wLjkwLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDA2LTEyLTExIDE3OjMx
OjQ2LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1OjAwLjAwMDAwMDAw
MCArMDEwMA0KQEAgLTExMiwxMCArMTEyLDE1IEBAIG5ucGZzX3ByaW50X2Fs
aWFzZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lkDQogbm5wZnNfcHJp
bnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQor
ICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiAgICAg
c3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQgYmFpbG91dCA9IDEw
MDsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5Lm5leHQ7
DQogICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5KSB7DQog
CWlmICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAtMTMxLDYgKzEzNiwyNiBAQCBu
bnBmc19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0IGluDQogCX0N
CiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAgICAgfQ0KKyNlbHNlDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0K
KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5v
ZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9m
b3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxp
YXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50
cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlm
DQorCWlmICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBwcmludGsoIiAuLi4i
KTsNCisJICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50cnkpIHsNCisJICAg
IHByaW50aygiICUuKnMoJXApIiwgKGludClkZW50cnktPmRfbmFtZS5sZW4s
DQorCQkgICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnkpOw0KKwkgICAg
aWYgKG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRyeS0+ZF9oYXNoKSkN
CisJCXByaW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQorICAgIH0NCisjZW5k
aWYNCiAgICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCkBAIC0xNDYsNyArMTcx
LDExIEBAIG5ucGZzX3ByaW50X2NoaWxkcmVuKGNvbnN0IHN0cnVjdCBkZW50
cnkNCiANCiAgICAgd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJk
aXJzKSB7DQogCXN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiAJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwg
c3RydWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNlbHNlDQorCXN0cnVj
dCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50
cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0KIA0KIAlwcmludGsoIiAlLipzKCVw
KSIsIChpbnQpY2hpbGQtPmRfbmFtZS5sZW4sDQogCSAgICAgICBjaGlsZC0+
ZF9uYW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJs
YS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19kZXYuYyBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfZGV2LmMNCi0tLSBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAtMjQgMTg6MzM6MzYuMDAw
MDAwMDAwICswMjAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz
X2Rldi5jCTIwMTYtMDEtMTQgMTY6Mjg6MTkuMDAwMDAwMDAwICswMTAwDQpA
QCAtMzAwLDcgKzMwMCw5IEBAIG5ucGZzX2ludmFsaWRhdGVfYWxsKHN0cnVj
dCBubnBmcyAqbm5wZnMNCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJl
ZV9hbGxfbm5wZnNfbm9kZXMgc3RhcnRpbmdcbiIpKTsNCiANCiAgICAgc2hy
aW5rX2RjYWNoZV9zYihubnBmcy0+c2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzcpDQogICAgIGludmFsaWRh
dGVfaW5vZGVzKG5ucGZzLT5zYik7DQorI2VuZGlmDQogICAgIA0KICAgICBO
TlBGU0RFQihYREVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBkb25l
XG4iKSk7DQogfQ0KQEAgLTM3NCw3ICszNzYsMTEgQEAgbm5wZnNfZGV2Y2xv
c2Uoc3RydWN0IGlub2RlICogaW5vZGUsIHN0cg0KIHN0YXRpYyBzc2l6ZV90
DQogbm5wZnNfZGV2cmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVm
LCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykNCiB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAg
bm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlf
cmRldjsNCisjZWxzZQ0KKyAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5m
X3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQogICAg
IHN0cnVjdCBubnBmcyAqbm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0K
ICAgICBzdHJ1Y3Qgbm5wZnNfbGluayAqZmlyc3Q7DQogICAgIGludCByZXQg
PSAwLCBlcnJvciA9IDA7DQpAQCAtNDM5LDggKzQ0NSwxMiBAQCBubnBmc19k
ZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgDQogDQogICAgIE5O
UEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2d3JpdGVcbiIpKTsNCiAgICAg
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAgICAgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlf
cmRldjsNCi0gICAgbm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KKyNl
bHNlDQorICAgIGRldiA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUt
PmlfcmRldjsNCisjZW5kaWYNCisgICAgIG5ucGZzcCA9ICZubnBmc1tNSU5P
UihkZXYpXTsNCiANCiAgICAgZG93bigmbm5wZnNwLT5jaGFubmVsX3NlbSk7
DQogICAgIGlmIChubnBmc3AtPnN0YXR1cyAmIE5OUEZTX0RFVldSSVRFKSB7
DQpAQCAtNTA1LDE5ICs1MTUsMzcgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0
IGZpbGUgKmZpbGUsIGNvbnN0IA0KIC8qDQogICogTm90IHVzZWQuDQogICov
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlu
b2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNp
Z25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0
YXRpYyBsb25nDQorbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3RydWN0IGZp
bGUgKmZpbGUsDQorCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25l
ZCBsb25nIGFyZykNCisjZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgTk5QRlNERUIo
WERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAl
ZFxuIiwNCiAJCSAgICAgICBpbm9kZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdz
KSk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2Rl
dmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3Mp
KTsNCisjZWxzZQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2Rl
dmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZp
bGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldiwgZmlsZS0+Zl9m
bGFncykpOw0KKyNlbmRpZg0KICAgICByZXR1cm4gLUVJTlZBTDsNCiB9DQog
DQogc3RhdGljIHVuc2lnbmVkIGludA0KIG5ucGZzX2RldnBvbGwoc3RydWN0
IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpDQogew0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg
IG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5p
X3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+
Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KICAg
ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsN
CiAgICAgaW50IHJldCA9IDA7DQogICAgIA0KQEAgLTk1Myw3ICs5ODEsMTEg
QEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0KICAg
ICByZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBmc19k
ZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAg
ICAgaW9jdGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxv
Y2tlZF9pb2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlm
DQogICAgIHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJ
CW5ucGZzX2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArMTAwMCwxMyBAQCBu
bnBmc19pbml0X2RldmljZSh2b2lkKQ0KIAlpbml0X3dhaXRxdWV1ZV9oZWFk
KCYobm5wZnNbaV0ud2FpdF9xdWV1ZSkpOw0KIAlubnBmc19pbml0cSgmbm5w
ZnNbaV0ubWVzc2FnZXEpOw0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0uc2xl
ZXBxKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM3KQ0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5pbmFjdGl2ZV9z
ZW0pOw0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5jaGFubmVsX3NlbSk7DQor
I2Vsc2UNCisJc2VtYV9pbml0KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0sIDEp
Ow0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAxKTsNCisj
ZW5kaWYNCiAJSU5JVF9MSVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0aXZlX2xp
c3QpOw0KIAlubnBmc1tpXS5ubm9kZXMgPSAwOw0KICAgICB9DQpkaWZmIC11
cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNf
aW5vZGVvcHMuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVv
cHMuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfaW5v
ZGVvcHMuYwkyMDA2LTEyLTExIDE3OjM1OjI2LjAwMDAwMDAwMCArMDEwMA0K
KysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIw
MTYtMDMtMTkgMDI6MDM6MTAuMDAwMDAwMDAwICswMTAwDQpAQCAtNDAsMjUg
KzQwLDQxIEBADQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Rldi5oPg0KICNp
bmNsdWRlIDxubnBmcy9ubnBmc19kaXJlbnQuaD4NCiAjaW5jbHVkZSA8bm5w
ZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisjaW5jbHVkZSA8bGludXgvYWlvLmg+
DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMuaD4NCiAjaW5jbHVkZSA8bGlu
dXgvZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQogI2lu
Y2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3MuaD4NCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyNpbmNsdWRlIDxs
aW51eC91aW8uaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8bGludXgvd3JpdGVi
YWNrLmg+DQogI2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KICNpZmRlZiBS
Q1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyMyAy
MDA2LzEyLzExIDE2OjM1OjI2IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6
IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyNiAyMDEwLzA4LzA4IDIwOjQzOjA0
IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBpbnQNCiBubnBm
c19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDYsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0K
KyNlbHNlDQogc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2Vu
ZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOCkNCitzdGF0aWMNCitpbnQNCiBubnBmc19kX2RlbGV0ZShz
dHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KKyNlbHNlDQorc3RhdGljDQoraW50
DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5
KTsNCisjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFz
ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KQEAgLTEwNSw3ICsxMjEsNyBA
QCBubnBmc192bWFfY2xvc2UgKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqDQog
fQ0KIA0KIHN0YXRpYyBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgbm5w
ZnNfZmlsZV92bV9vcHMgPSB7DQotICAgIC5ub3BhZ2UJPSBmaWxlbWFwX25v
cGFnZSwNCisgICAgLmZhdWx0ICAgICAgPSBmaWxlbWFwX2ZhdWx0LA0KICAg
ICAuY2xvc2UJPSBubnBmc192bWFfY2xvc2UsDQogfTsNCiANCkBAIC0xMzQs
MTIgKzE1MCwxNCBAQCBubnBmc19wcmludF9wYXRoKHN0cnVjdCBkZW50cnkg
KmRlbnRyeSkNCiAgKg0KICAqLw0KIA0KKyNpZiAwDQogdm9pZA0KIG5ucGZz
X3ByaW50X2xvY2soY2hhciAqcywgc3RydWN0IHNlbWFwaG9yZSAqc2VtKQ0K
IHsNCiAgICAgTk5QRlNERUIoWERFQkxPQ0ssICgibG9jazogJXMgc2VtOiAl
cCBjb3VudDogJWRcbiIsDQogCQkgICAgICBzLCBzZW0sIChpbnQpYXRvbWlj
X3JlYWQoJnNlbS0+Y291bnQpKSk7DQogfQ0KKyNlbmRpZg0KIA0KIC8qDQog
ICoNCkBAIC0xODUsNyArMjAzLDcgQEAgbm5wZnNfZF9pcHV0KHN0cnVjdCBk
ZW50cnkgKmRlbnRyeSwgc3RydQ0KICAgICBOTlBGU0RFQihYREVCVk5PUFMs
DQogCSAgICAgKCJubnBmc19kX2lwdXQ6IGRlbnRyeSAlcCwgaW5vZGUgJXBc
biIsIGRlbnRyeSwgaW5vZGUpKTsNCiAgICAgDQotICAgIGlmIChub2RlLT5m
bGFncyAmIE5OUEZTX05PREVfSVBVVCkgLyogWFhYIGxvY2tpbmcgKi8NCisg
ICAgaWYgKG5vZGUtPmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFgg
bG9ja2luZy4gbmV2ZXIgc2V0PyAqLw0KIAlubnBmc19pcmVsZShpbm9kZSk7
DQogICAgIGVsc2UNCiAJaXB1dChpbm9kZSk7DQpAQCAtMjEyLDggKzIzMCwx
MyBAQCBubnBmc19pbm9kZV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0K
ICAqIG5ucGZzX2xvb2t1cCBub3cgcmV0dXJucyBhIGRlbnRyeS4NCiAgKi8N
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZzX2xvb2t1
cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg
c3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0
IGRlbnRyeSAqDQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwg
c3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQor
I2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRub2Rl
IG1zZzsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAtMjQwLDcg
KzI2MywxMSBAQCBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBz
dHJ1Y3QgDQogDQogCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dF
VE5PREU7DQogICAgICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3Vy
cmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBm
c19nZXRfcGFnKCk7DQogCW1zZy5wYXJlbnRfaGFuZGxlID0gZC0+aGFuZGxl
Ow0KICAgICAgICAgDQpAQCAtMzEwLDcgKzMzNywxMSBAQCBubnBmc19vcGVu
X3ZhbGlkKHN0cnVjdCBpbm9kZSAqdnAsIHVfaW50DQogICAgICAgew0KIAlz
dHJ1Y3Qgbm5wZnNfbWVzc2FnZV9vcGVuIG1zZzsNCiAJbXNnLmhlYWRlci5v
cGNvZGUgPSBOTlBGU19NU0dfT1BFTjsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlk
ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcg
PSBubnBmc19nZXRfcGFnKCk7DQogCW1zZy5oYW5kbGUgPSB4bi0+aGFuZGxl
Ow0KIAltc2cudG9rZW5zID0gdG9rOw0KQEAgLTM5Nyw3ICs0MjgsMTEgQEAg
ZmluZF9maXJzdF9ibG9jayhzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIHN0
YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUs
IHVfaW50IGZsYWcpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5v
ZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBz
dHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9p
bm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBO
TlBGU19GUk9NX1ZOT0RFKGlub2RlKTsNCiAgICAgc3RydWN0IG5ucGZzX25v
ZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICBsb2ZmX3Qg
bGVuID0gaV9zaXplX3JlYWQoaW5vZGUpOw0KQEAgLTQyNSw3ICs0NjAsMTEg
QEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1X2ludA0K
IA0KIAltc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QVVREQVRBOw0K
IAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1z
Zy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAg
bXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNn
LmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogCW1zZy5mbGFnICAgPSBmbGFnOw0K
IAltc2cub2Zmc2V0ID0gb2ZmOw0KQEAgLTQ2MCwxNCArNDk5LDI3IEBAIG5u
cGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiAgKg0K
ICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzUpDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jKHN0cnVj
dCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBkYXRh
c3luYykNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDEsMCkNCitzdGF0aWMgaW50DQorbm5wZnNfZnN5bmMoc3RydWN0
IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxzZQ0KK3N0YXRpYyBp
bnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHN0
YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQorI2VuZGlmDQogew0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2
LDM1KQ0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBmaWxlLT5mX3Bh
dGguZGVudHJ5Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl
ID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQogICAgIHN0cnVjdCBubnBm
cyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAg
IGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAg
ICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQogICAgIGlm
IChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTUxMSw3ICs1NjMsMTEg
QEAgbm5wZnNfYXR0cl92YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgdV9pbg0K
ICAgICAgICAgICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX2dldGF0dHIgbXNn
Ow0KIA0KICAgICAgICAgICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNf
TVNHX0dFVEFUVFI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpDQogICAgICAgICAgICAgbXNnLmNyZWQudWlk
ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICAgICAgbXNnLmNy
ZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgICAgICAg
ICBtc2cuY3JlZC5wYWcgPSBwYWc7DQogICAgICAgICAgICAgbXNnLmhhbmRs
ZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICAgICAgZXJyb3IgPSBubnBmc19t
ZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7
DQpAQCAtNTUxLDcgKzYwNywxMSBAQCBubnBmc19yaWdodHNfdmFsaWQoc3Ry
dWN0IGlub2RlICogdnAsIG5uDQogICAgICAgICAgICAgc3RydWN0IG5ucGZz
X21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNnLmhl
YWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
ICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UN
CisgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K
KyNlbmRpZg0KICAgICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsNCiAg
ICAgICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAg
ICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o
ZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC01OTIsMTEgKzY1MiwyNSBAQCBj
aGVja19yaWdodHMgKG5ucGZzX3JpZ2h0cyByaWdodHMsIGludCBtDQogICog
V2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNpZiAoTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSB8fCBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApKQ0KK3N0
YXRpYyBpbnQNCitubnBmc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5v
ZGUsIGludCBtb2RlKQ0KKyNlbHNlDQogc3RhdGljIGludA0KLW5ucGZzX3Bl
cm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUsIHN0cnVj
dCBuYW1laWRhdGEgKm5kKQ0KK25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlu
b2RlICppbm9kZSwgaW50IG1vZGUsIHVuc2lnbmVkIGludCBmbGFncykNCisj
ZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQotICAgIG5ucGZzX3Bh
Z190IHBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisgICAgbm5wZnNfcGFnX3Qg
cGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMywxLDApDQorICAgIGlmIChtb2RlICYgTUFZX05PVF9CTE9DSykNCisg
ICAgICAgIHJldHVybiAtRUNISUxEOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIGlmIChmbGFn
cyAmIElQRVJNX0ZMQUdfUkNVKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7
DQorI2VuZGlmDQorDQorICAgIHBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAg
ICAgDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19hY2Nlc3Mg
KCVwKSBtb2RlID0gMCVvIGFsaWFzZXM6IiwgaW5vZGUsIG1vZGUpKTsNCiAg
ICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQpAQCAtNjM2LDcgKzcx
MCwxMSBAQCBubnBmc19kb19nZXRkYXRhKHN0cnVjdCBubnBmc19ub2RlICp4
biwgDQogICAgIGludCBlcnJvcjsNCiANCiAgICAgbXNnLmhlYWRlci5vcGNv
ZGUgPSBOTlBGU19NU0dfR0VUREFUQTsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQu
dWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBh
ZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgbXNnLmhhbmRsZSA9IHhuLT5o
YW5kbGU7DQogICAgIG1zZy50b2tlbnMgPSB0b2s7DQpAQCAtNzUwLDExICs4
MjgsMTkgQEAgbm5wZnNfZGF0YV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCB1Xw0KIGludCBubnBmc19maWxlX21tYXAoc3RydWN0IGZpbGUgKiBmaWxl
LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiB2bWEpDQogew0KICAgICBpbnQg
ZmxhZ3MsIGVycm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlu
b2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vsc2UNCisgICAg
c3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRf
aW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt
YXBwaW5nID0gZmlsZS0+Zl9tYXBwaW5nOw0KIA0KICAgICBOTlBGU0RFQihY
REVCVk5PUFMsICgibm5wZnNfbW1hcCBpbm9kZTogJXBcbiIsIGlub2RlKSk7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAgICAgbm5wZnNfcHJpbnRfcGF0aChmaWxlLT5mX2RlbnRyeSk7
DQorI2Vsc2UNCisgICAgbm5wZnNfcHJpbnRfcGF0aChmaWxlLT5mX3BhdGgu
ZGVudHJ5KTsNCisjZW5kaWYNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo
Im5ucGZzX21tYXAgYWxpYXNlczoiKSk7DQogICAgIG5ucGZzX3ByaW50X2Fs
aWFzZXMoaW5vZGUpOw0KICAgICANCkBAIC03ODksMzcgKzg3NSw1MCBAQCBp
bnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICogZmlsZSwgDQogICoN
CiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3Jl
YWQoc3RydWN0IGtpb2NiICppb2NiLA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KIAkgICAgICAgY29uc3Qg
c3RydWN0IGlvdmVjICppb3YsIHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCisJ
ICAgICAgIGxvZmZfdCBwb3MpDQogI2Vsc2UNCi0JICAgICAgIGNoYXIgX191
c2VyICpidWYsIHNpemVfdCBjb3VudCwNCitzdGF0aWMgc3NpemVfdA0KK25u
cGZzX3JlYWRfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3Zf
aXRlciAqdG8pDQogI2VuZGlmDQotCSAgICAgICBsb2ZmX3QgcG9zKQ0KIHsN
CiAgICAgaW50IGVycm9yID0gMDsNCiAgICAgc3RydWN0IGZpbGUgKmZpbGUg
PSBpb2NiLT5raV9maWxwOw0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g
S0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDApDQogICAgIHNzaXplX3QgY291
bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyAgICBzc2l6ZV90IGNvdW50
ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbHNlDQorICAgIHNzaXplX3QgY291
bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7DQogI2VuZGlmDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAg
c3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2Rl
Ow0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5m
X3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAg
IA0KICAgICBpZiAoeG4gIT0gTlVMTCkNCiAJTk5QRlNERUIoWERFQlZOT1BT
LCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJ
CQkgICAgIGlub2RlLCB4bi0+dG9rZW5zKSk7DQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJy
b3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIHBv
cywgcG9zICsgY291bnQpOw0KKyNlbHNlDQorICAgIGVycm9yID0gbm5wZnNf
ZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBpb2NiLT5raV9wb3Ms
IGlvY2ItPmtpX3BvcyArIGNvdW50KTsNCisjZW5kaWYNCiAgICAgaWYgKGVy
cm9yKSB7DQogCU5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2Zp
bGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KIAlyZXR1cm4g
ZXJyb3I7DQogICAgIH0NCiAgICAgDQotI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3Ig
PSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgaW92LCBucl9zZWdzLCBw
b3MpOw0KICNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb19y
ZWFkKGlvY2IsIGJ1ZiwgY291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2Vu
ZXJpY19maWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQogI2VuZGlmDQogICAg
IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9y
ID0gJWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC04
MjksMjMgKzkyOCwzNiBAQCBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2Ig
KmlvY2IsDQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQog
bm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCiAJ
CWNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3Nl
Z3MsDQorCQlsb2ZmX3QgcG9zKQ0KICNlbHNlDQotCQljb25zdCBjaGFyIF9f
dXNlciAqYnVmLCBzaXplX3QgY291bnQsIA0KK3N0YXRpYyBzc2l6ZV90DQor
bm5wZnNfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBp
b3ZfaXRlciAqZnJvbSkNCiAjZW5kaWYNCi0JCWxvZmZfdCBwb3MpDQogew0K
ICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSA9
IGlvY2ItPmtpX2ZpbHA7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3Vu
dCA9IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXplX3QgY291bnQg
PSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3Vu
dCA9IGlvdl9pdGVyX2NvdW50KGZyb20pOw0KICNlbmRpZg0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg
IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k
ZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+
Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0
IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDAp
DQogICAgIGxvZmZfdCByZWFscG9zID0gcG9zOw0KKyNlbHNlDQorICAgIGxv
ZmZfdCByZWFscG9zID0gaW9jYi0+a2lfcG9zOw0KKyNlbmRpZg0KICAgICAN
CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fpb193cml0ZSgl
cCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkgaW5vZGUsIHhuLT50b2tlbnMp
KTsNCkBAIC04NTksMTAgKzk3MSwxMCBAQCBubnBmc19haW9fd3JpdGUoc3Ry
dWN0IGtpb2NiICppb2NiLA0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAN
Ci0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs
NiwxOSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxNiwwKQ0KICAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fd3Jp
dGUoaW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQotICAgIGVy
cm9yID0gZ2VuZXJpY19maWxlX2Fpb193cml0ZShpb2NiLCBidWYsIGNvdW50
LCBwb3MpOw0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVy
KGlvY2IsIGZyb20pOw0KICNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxV
RShlcnJvcikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAv
KiBYWFggcmFjZSAqLw0KQEAgLTg3MSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlv
X3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9y
Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1
Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAg
IGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0
aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1
Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBm
c19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwNCisJICAgICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5k
aWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1
Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtOTAzLDkgKzEwMjUsMTcgQEAgbm5w
ZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZA0KICAgICBY
QV9DTEVBUigmbXNnLmF0dHIpOw0KICAgICBYQV9TRVRfTU9ERSgmbXNnLmF0
dHIsIG1vZGUpOw0KICAgICBYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZT
X0ZJTEVfUkVHKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIs
IGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICBYQV9TRVRfR0lEKCZt
c2cuYXR0ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYNCiAgICAgbXNn
Lm1vZGUgPSAwOwkJLyogWFhYICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQg
PSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcg
PSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2Fn
ZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAg
ICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05NDYsNyArMTA3NiwxMSBAQCBubnBm
c191bmxpbmsgKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0DQogICAgIGlm
IChzdHJsY3B5KG1zZy5uYW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXpl
b2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1F
TkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL
RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1
cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJy
ZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBm
c19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMo
bm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAo
ZXJyb3IgPT0gMCkNCkBAIC05OTEsNyArMTEyNSwxMSBAQCBubnBmc19yZW5h
bWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9kaXIsIHN0DQogICAgIGlmIChzdHJs
Y3B5KG1zZy5uZXdfbmFtZSwgbmV3X2RlbnRyeS0+ZF9uYW1lLm5hbWUsIHNp
emVvZihtc2cubmV3X25hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0
dXJuIC1FTkFNRVRPT0xPTkc7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNyZWQudWlk
ID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNnLmNyZWQucGFn
ID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAg
ICAgaWYgKGVycm9yID09IDApDQpAQCAtMTAwOCw4ICsxMTQ2LDEzIEBAIG5u
cGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAg
cmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZz
X21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19t
a2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRy
eSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5u
cGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBA
IC0xMDQwLDkgKzExODMsMTcgQEAgbm5wZnNfbWtkaXIoc3RydWN0IGlub2Rl
ICogZGlyLCBzdHJ1Y3QgZA0KIAlYQV9DTEVBUigmbXNnLmF0dHIpOw0KIAlY
QV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1vZGUpOw0KIAlYQV9TRVRfVFlQRSgm
bXNnLmF0dHIsIE5OUEZTX0ZJTEVfRElSKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJWEFfU0VUX0dJ
RCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAg
ICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQor
I2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp
ZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91
aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3Bh
ZygpOw0KIAllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1z
Zy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAJaWYgKGVycm9yID09IDApDQpA
QCAtMTA4Myw3ICsxMjM0LDExIEBAIG5ucGZzX3JtZGlyKHN0cnVjdCBpbm9k
ZSAqIGRpciwgc3RydWN0IGQNCiAgICAgbXNnLnBhcmVudF9oYW5kbGUgPSB4
bi0+aGFuZGxlOw0KICAgICBpZiAoc3RybGNweShtc2cubmFtZSwgZGVudHJ5
LT5kX25hbWUubmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFY
X05BTUUpDQogCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg
ICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg
IG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAg
IG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3Ig
PSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXpl
b2YobXNnKSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTExMjgsNyAr
MTI4MywxMSBAQCBzdGF0aWMgaW50IG5ucGZzX2xpbmsoc3RydWN0IGRlbnRy
eSAqb2xkDQogCWlmIChzdHJsY3B5KG1zZy5uYW1lLCBuYW1lLCBzaXplb2Yo
bXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAt
RU5BTUVUT09MT05HOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0g
S0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJy
ZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1
cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZz
X2dldF9wYWcoKTsNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBm
c3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogCWlmIChlcnJvciA9
PSAwKQ0KQEAgLTExNTcsMjkgKzEzMTYsNDcgQEAgc3RhdGljIGludCBubnBm
c19zeW1saW5rKHN0cnVjdCBpbm9kZSAqZA0KICAgICB4biA9IFZOT0RFX1RP
X1hOT0RFKGRpcik7DQogDQogICAgIHsNCi0Jc3RydWN0IG5ucGZzX21lc3Nh
Z2Vfc3ltbGluayBtc2c7DQorCXN0cnVjdCBubnBmc19tZXNzYWdlX3N5bWxp
bmsgKm1zZyA9IE5VTEw7DQogDQotCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5Q
RlNfTVNHX1NZTUxJTks7DQotCW1zZy5wYXJlbnRfaGFuZGxlID0geG4tPmhh
bmRsZTsNCi0JaWYgKHN0cmxjcHkobXNnLm5hbWUsIG5hbWUsIHNpemVvZiht
c2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KLQkgICAgcmV0dXJuIC1F
TkFNRVRPT0xPTkc7DQotCWlmIChzdHJsY3B5KG1zZy5jb250ZW50cywgc3lt
bmFtZSwgc2l6ZW9mKG1zZy5jb250ZW50cykpID49IE5OUEZTX01BWF9TWU1M
SU5LX0NPTlRFTlQpDQotCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0J
WEFfQ0xFQVIoJm1zZy5hdHRyKTsNCi0JWEFfU0VUX01PREUoJm1zZy5hdHRy
LCAwNzc3KTsNCi0JWEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxF
X0xOSyk7DQotCVhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dp
ZCk7DQorCW1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVM
KTsNCiANCi0JbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KLQltc2cu
Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQotCWVycm9yID0gbm5wZnNf
bWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykp
Ow0KKwlpZiAobXNnID09IE5VTEwpDQorCSAgcmV0dXJuIC1FTk9NRU07DQor
DQorCW1zZy0+aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0K
Kwltc2ctPnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwlpZiAoc3Ry
bGNweShtc2ctPm5hbWUsIG5hbWUsIHNpemVvZihtc2ctPm5hbWUpKSA+PSBO
TlBGU19NQVhfTkFNRSkgew0KKwkgIGtmcmVlKG1zZyk7DQorCSAgcmV0dXJu
IC1FTkFNRVRPT0xPTkc7DQorCX0NCisJaWYgKHN0cmxjcHkobXNnLT5jb250
ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1zZy0+Y29udGVudHMpKSA+PSBOTlBG
U19NQVhfU1lNTElOS19DT05URU5UKSB7DQorCSAga2ZyZWUobXNnKTsNCisJ
ICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisJfQ0KKwlYQV9DTEVBUigmbXNn
LT5hdHRyKTsNCisJWEFfU0VUX01PREUoJm1zZy0+YXR0ciwgMDc3Nyk7DQor
CVhBX1NFVF9UWVBFKCZtc2ctPmF0dHIsIE5OUEZTX0ZJTEVfTE5LKTsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy
OCkNCisJWEFfU0VUX0dJRCgmbXNnLT5hdHRyLCBjdXJyZW50LT5mc2dpZCk7
DQorI2Vsc2UNCisgICAgICAgIFhBX1NFVF9HSUQoJm1zZy0+YXR0ciwgY3Vy
cmVudF9mc2dpZCgpKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNnLT5jcmVk
LnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLT5j
cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1zZy0+Y3Jl
ZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQorCWVycm9yID0gbm5wZnNfbWVz
c2FnZV9ycGMobm5wZnNwLCAmbXNnLT5oZWFkZXIsIHNpemVvZigqbXNnKSk7
DQogCWlmIChlcnJvciA9PSAwKQ0KLQkgICAgZXJyb3IgPSBOTlBGU19NU0df
V0FLRVVQX0VSUk9SKCZtc2cpOw0KKwkgICAgZXJyb3IgPSBOTlBGU19NU0df
V0FLRVVQX0VSUk9SKG1zZyk7DQogDQogCS8qIFhYWCBzaG91bGQgdGhpcyBy
ZWFsbHkgYmUgaGVyZSAqLw0KIAlpZiAoREVOVFJZX1RPX1hERU5UUlkoZGVu
dHJ5KS0+eGRfZmxhZ3MgPT0gMCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1F
UkcgIk5OUEZTIFBhbmljOiBubnBmc19zeW1saW5rOiBkZW50cnkgbm90IHZh
bGlkXG4iKTsNCiAJfQ0KKwlrZnJlZShtc2cpOw0KICAgICB9DQogDQogICAg
IHJldHVybiBlcnJvcjsNCkBAIC0xMTg4LDEyICsxMzY1LDIxIEBAIHN0YXRp
YyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAq
IFdlIGhvbGQgaV9tdXRleC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBu
bnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVu
dCwgZmlsbGRpcl90IGZpbGxkaXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQor
bm5wZnNfaXRlcmF0ZShzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJf
Y29udGV4dCAqY3R4KQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0K
ICAgICBsb2ZmX3Qgb2Zmc2V0LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAg
c3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2Rl
Ow0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5m
X3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qg
aW5vZGUgKmNhY2hlX2lub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAq
eG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsN
CkBAIC0xMjE3LDYgKzE0MDMsNyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBm
aWxlICogZmlsZSwgdm9pZCAqDQogDQogICAgIGNhY2hlX2lub2RlID0gYmFj
a2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KICAgICB3aGlsZSAo
ZmlsZS0+Zl9wb3MgPCBpX3NpemVfcmVhZChjYWNoZV9pbm9kZSkpIHsNCiAJ
Tk5QRlNERUIoWERFQlJFQURESVIsDQogCSAgICAgICAoIm5ucGZzX3JlYWRk
aXIgZmlsZS0+Zl9wb3M6ICVkIGlfc2l6ZTogJWRcbiIsDQpAQCAtMTIyOSw2
ICsxNDE2LDIwIEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxl
LCB2b2lkICoNCiAJbWFwcGluZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7DQog
CWlucGFnZSA9IGZpbGUtPmZfcG9zICYgKFBBR0VfQ0FDSEVfU0laRS0xKTsN
CiAJcGFnZV9udW0gPSBmaWxlLT5mX3BvcyA+PiBQQUdFX0NBQ0hFX1NISUZU
Ow0KKyNlbHNlDQorICAgIHdoaWxlIChjdHgtPnBvcyA8IGlfc2l6ZV9yZWFk
KGNhY2hlX2lub2RlKSkgew0KKwlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJ
ICAgICAgICgibm5wZnNfcmVhZGRpciBmaWxlLT5mX3BvczogJWQgaV9zaXpl
OiAlZFxuIiwNCisJCShpbnQpIGN0eC0+cG9zLCAoaW50KSBjYWNoZV9pbm9k
ZS0+aV9zaXplKSk7DQorCWJlZ2luX29mZnNldCA9IGN0eC0+cG9zICZ+IChO
TlBGU19ESVJFTlRfQkxPQ0tTSVpFIC0gMSk7DQorCW9mZnNldCA9IGN0eC0+
cG9zICYgKE5OUEZTX0RJUkVOVF9CTE9DS1NJWkUgLSAxKTsNCisJY3R4LT5w
b3MgPSBiZWdpbl9vZmZzZXQ7DQorCU5OUEZTREVCKFhERUJSRUFERElSLCAo
Im5ucGZzX3JlYWRkaXIgYmVnaW5fb2Zmc2V0OiAlZCBvZmZzZXQ6ICVkXG4i
LA0KKwkJCSAgICAgKGludCliZWdpbl9vZmZzZXQsIChpbnQpb2Zmc2V0KSk7
DQorCW1hcHBpbmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KKwlpbnBhZ2Ug
PSBjdHgtPnBvcyAmIChQQUdFX0NBQ0hFX1NJWkUtMSk7DQorCXBhZ2VfbnVt
ID0gY3R4LT5wb3MgPj4gUEFHRV9DQUNIRV9TSElGVDsNCisjZW5kaWYNCiAN
CiAJTk5QRlNERUIoWERFQlJFQURESVIsDQogCSAgICAgICAoIm5ucGZzX3Jl
YWRkaXIgaW5wYWdlOiAlZCBwYWdlX251bTogJWx1XG4iLA0KQEAgLTEyNjQs
NiArMTQ2NSw3IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxl
LCB2b2lkICoNCiAJCSAgICAoaW50KSB4ZGlyZW50LT5kX25hbWxlbiwNCiAJ
CSAgICAoaW50KSAob2Zmc2V0K2JlZ2luX29mZnNldCkpKTsNCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0K
IAkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCiAJCSYmIChmaWxs
ZGlyX2Vycm9yID0gZmlsbGRpciAoZGlyZW50LA0KIAkJCQkgICAgIHhkaXJl
bnQtPmRfbmFtZSwNCkBAIC0xMjc1LDEyICsxNDc3LDI4IEBAIG5ucGZzX3Jl
YWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBm
c19yZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQog
CQlicmVhazsNCiAJICAgIH0NCisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQt
PmRfZmlsZW5vICE9IDANCisJCSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2Vt
aXQgKGN0eCwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAg
ICAgeGRpcmVudC0+ZF9uYW1sZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9m
aWxlbm8sDQorCQkJCSAgICAgRFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5Q
RlNERUIoWERFQlJFQURESVIsDQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxs
ZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAg
ICB9DQorI2VuZGlmDQogCSAgICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNs
ZW47DQogDQogCSAgICBpZiAoeGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0K
IAkJcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiAiDQogCQkgICAg
ICAgImVtcHR5IGRpcmVudCBhdCAlbGxkIGluIG5ucGZzX3JlYWRkaXIsIHBv
cyAlZCBzaXplICVkXG4iLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDExLDApDQogCQkgICAgICAgKGxvbmcgbG9uZylv
ZmZzZXQsIChpbnQpZmlsZS0+Zl9wb3MsDQorI2Vsc2UNCisJCSAgICAgICAo
bG9uZyBsb25nKW9mZnNldCwgKGludCljdHgtPnBvcywNCisjZW5kaWYNCiAJ
CSAgICAgICAoaW50KWNhY2hlX2lub2RlLT5pX3NpemUpOw0KIAkJTk5QRlNE
RUIoWERFQlZOT1BTLCAoImlub2RlOiAlcCBhbGlhc2VzOiIsIGlub2RlKSk7
DQogCQlubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC0xMjk4LDcg
KzE1MTYsMTEgQEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUs
IHZvaWQgKg0KIAlpZiAob2Zmc2V0ID4gTk5QRlNfRElSRU5UX0JMT0NLU0la
RSkNCiAJICAgIG9mZnNldCA9IE5OUEZTX0RJUkVOVF9CTE9DS1NJWkU7DQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTEsMCkNCiAJZmlsZS0+Zl9wb3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7
DQorI2Vsc2UNCisJY3R4LT5wb3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7
DQorI2VuZGlmDQogDQogCWlmIChlcnJvciB8fCBvZmZzZXQgPCBOTlBGU19E
SVJFTlRfQkxPQ0tTSVpFKQ0KIAkgICAgYnJlYWs7DQpAQCAtMTMzMSwxMiAr
MTU1MywyNSBAQCBubnBmc19yZWFkbGluayAoc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LCBjDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIs
MCkNCiBzdGF0aWMgdm9pZCAqDQogbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0
LDUsMCkNCitzdGF0aWMgY29uc3QgY2hhciAqDQorbm5wZnNfZm9sbG93X2xp
bmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJCSB2b2lkICoqcGFnZSkN
CisjZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBmc19nZXRfbGlu
ayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHN0cnVjdCBpbm9kZSAq
aW5vZGUsDQorCQkgc3RydWN0IGRlbGF5ZWRfY2FsbCAqZG9uZSkNCisjZW5k
aWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsNSwwKQ0KICAgICBzdHJ1Y3Qg
aW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQorI2Vu
ZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19mb2xs
b3dfbGlua1xuIikpOw0KICAgICANCkBAIC0xMzQ0LDcgKzE1NzksMTMgQEAg
bm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAg
ICBpZiAoZXJyb3IpDQogICAgICAgIHJldHVybiBFUlJfUFRSKGVycm9yKTsN
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
NCwyLDApDQogICAgIHJldHVybiBwYWdlX2ZvbGxvd19saW5rX2xpZ2h0KGRl
bnRyeSwgbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDQsNSwwKQ0KKyAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlu
a19saWdodChkZW50cnksIHBhZ2UpOw0KKyNlbHNlDQorICAgIHJldHVybiBw
YWdlX2dldF9saW5rKGRlbnRyeSwgaW5vZGUsIGRvbmUpOw0KKyNlbmRpZg0K
IH0NCiANCiAvKg0KQEAgLTEzOTgsNyArMTYzOSwxMSBAQCBubnBmc19zZXRh
dHRyIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0DQogICAgICAgICBzdHJ1
Y3Qgbm5wZnNfbWVzc2FnZV9wdXRhdHRyIG1zZzsNCiANCiAgICAgICAgIG1z
Zy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BVVEFUVFI7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
CW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAg
ICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJ
bXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICAgICAgbXNn
LmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICBubnBmc19pYXR0cjJh
dHRyKHhuLCBhdHRyLCAmbXNnLmF0dHIpOw0KQEAgLTE0MjIsNiArMTY2Nyw4
IEBAIG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0IGlub2RlICppbm9kZSwN
CiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KICAgICBpbnQgZXJyb3Ig
PSAwOw0KIA0KKyAgICAodm9pZClubnBmc3A7DQorDQogICAgIE5OUEZTREVC
KFhERUJWTk9QUywgKCJubnBmc19yZWxlYXNlX2ZpbGVcbiIpKTsNCiANCiAg
ICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQpAQCAtMTQ1
MCwxOCArMTY5NywxOCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBp
bm9kZSAqaW5vZGUsDQogICoNCiAgKi8NCiANCi0jaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCiBzdGF0aWMgaW50
DQogbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyX3Qg
aWQpDQotI2Vsc2UNCi1zdGF0aWMgaW50DQotbm5wZnNfZmx1c2goc3RydWN0
IGZpbGUgKmZpbGUpDQotI2VuZGlmDQogew0KICAgICBOTlBGU0RFQihYREVC
Vk5PUFMsICgibm5wZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBpZiAo
ZmlsZSAmJiBmaWxlLT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZSkNCiAJcmV0dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX2Rl
bnRyeS0+ZF9pbm9kZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYgKGZpbGUg
JiYgZmlsZS0+Zl9wYXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5
LT5kX2lub2RlKQ0KKwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUt
PmZfcGF0aC5kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRpZg0KICAg
ICBlbHNlDQogCXJldHVybiAwOw0KIH0NCkBAIC0xNDcwLDEwICsxNzE3LDI0
IEBAIG5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlKQ0KICAqIFJldHVy
biAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlkLCBvdGhlcndpc2UgMC4N
CiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0
ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5k
KQ0KKyNlbHNlDQogc3RhdGljIGludA0KLW5ucGZzX2RfcmV2YWxpZGF0ZShz
dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKSAN
CitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1
bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg
aW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQorDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCisgICAgaWYgKGZsYWdzICYgTE9PS1VQX1JDVSkNCisgICAgICAgIHJl
dHVybiAtRUNISUxEOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIGlmIChuZCAmJiBuZC0+Zmxh
Z3MgJiBMT09LVVBfUkNVKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQor
I2VuZGlmDQorDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19k
X3JldmFsaWRhdGUgJXAgXCIlLipzXCIgKGlub2RlICVwKVxuIiwNCiAJCSAg
ICAgICBkZW50cnksDQogCQkgICAgICAgKGludClkZW50cnktPmRfbmFtZS5s
ZW4sDQpAQCAtMTUxOSw5ICsxNzgwLDE1IEBAIG5ucGZzX2RfcmV2YWxpZGF0
ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkNCiAgICAgcmV0dXJuIDA7DQogfQ0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogc3RhdGljDQogaW50DQogbm5wZnNfZF9kZWxldGUoc3RydWN0
IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5w
ZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNl
bmRpZg0KIHsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZTsNCiAgICAgc3Ry
dWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTE1NDYsMTEgKzE4MTMsMTYgQEAg
bm5wZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIH0NCiAN
CiBzdGF0aWMgc3NpemVfdA0KLW5ucGZzX3NlbmRmaWxlKHN0cnVjdCBmaWxl
ICpmaWxlLCBsb2ZmX3QgKnBwb3MsIHNpemVfdCBjb3VudCwNCi0JICAgICAg
IHJlYWRfYWN0b3JfdCBhY3Rvciwgdm9pZCAqdGFyZ2V0KQ0KK25ucGZzX3Nw
bGljZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3QgKnBwb3MsDQor
CQkgIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsIHNpemVfdCBjb3Vu
dCwNCisJCSAgdW5zaWduZWQgaW50IGZsYWdzKQ0KIHsNCiAgICAgaW50IGVy
cm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmls
ZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlu
b2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQor
I2VuZGlmDQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RP
X1hOT0RFKGlub2RlKTsNCiAgICAgDQogICAgIGlmICh4biAhPSBOVUxMKQ0K
QEAgLTE1NjEsOCArMTgzMyw3IEBAIG5ucGZzX3NlbmRmaWxlKHN0cnVjdCBm
aWxlICpmaWxlLCBsb2ZmX3QNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5u
cGZzX3NlbmRmaWxlOiBkYXRhIG5vdCB2YWxpZCAlZFxuIiwgZXJyb3IpKTsN
CiAJcmV0dXJuIGVycm9yOw0KICAgICB9DQotDQotICAgIGVycm9yID0gZ2Vu
ZXJpY19maWxlX3NlbmRmaWxlKGZpbGUsIHBwb3MsIGNvdW50LCBhY3Rvciwg
dGFyZ2V0KTsNCisgICAgZXJyb3IgPSBmaWxlLT5mX29wLT5zcGxpY2VfcmVh
ZChmaWxlLCBwcG9zLCBwaXBlLCBjb3VudCwgZmxhZ3MpOw0KIA0KICAgICBO
TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfc2VuZGZpbGU6IGVycm9yID0g
JWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC0xNjM5
LDQwICsxOTEwLDQxIEBAIG5ucGZzX3dyaXRlX2JhY2twYWdlKHN0cnVjdCBw
YWdlICpwYWdlLCANCiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcg
PSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KIAl1bnNpZ25lZCBsZW4gPSBQQUdF
X0NBQ0hFX1NJWkU7DQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCisJdm9p
ZCAqZnNkYXRhOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCiAJaW50
IGVycm9yOw0KIAkNCi0JZG8gew0KLQkJYmFja3BhZ2UgPSBncmFiX2NhY2hl
X3BhZ2UobWFwcGluZywgbm5wZnNfZ2V0X2JhY2tpbmRleChwYWdlKSk7DQot
CQlpZiAoIWJhY2twYWdlKSB7DQotCQkJcHJpbnRrKCJubnBmc193cml0ZV9i
YWNrcGFnZTogbm8gcGFnZVxuIik7DQotCQkJcmV0dXJuIC1FSU87DQotCQl9
DQorCSh2b2lkKW9mZnNldDsNCiANCi0JCWVycm9yID0gbWFwcGluZy0+YV9v
cHMtPnByZXBhcmVfd3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KLQkJCQkJ
CSAgICAgIDAsIGxlbik7DQorCWRvIHsNCisJCWVycm9yID0gcGFnZWNhY2hl
X3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQorCQkJ
CQkgICAgICBBT1BfRkxBR19VTklOVEVSUlVQVElCTEUsDQorCQkJCQkgICAg
ICAmYmFja3BhZ2UsICZmc2RhdGEpOw0KIAkJaWYgKCFlcnJvcikgew0KIAkJ
CWNvcHlfaGlnaHBhZ2UoYmFja3BhZ2UsIHBhZ2UpOw0KIAkJCWZsdXNoX2Rj
YWNoZV9wYWdlKGJhY2twYWdlKTsNCi0JCQllcnJvciA9IG1hcHBpbmctPmFf
b3BzLT5jb21taXRfd3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KLQkJCQkJ
CQkgICAgIDAsIGxlbik7DQorCQkJZXJyb3IgPSBwYWdlY2FjaGVfd3JpdGVf
ZW5kKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQorCQkJCQlsZW4sIGJh
Y2twYWdlLCBmc2RhdGEpOw0KKwkJCWlmIChlcnJvciA+IDApDQorCQkJCWVy
cm9yID0gMDsNCiAJCX0NCiAJCWlmIChlcnJvciA9PSBBT1BfVFJVTkNBVEVE
X1BBR0UpIHsNCi0JCQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFja3BhZ2UpOw0K
IAkJCWNvbnRpbnVlOw0KIAkJfQ0KIAl9IHdoaWxlICgwKTsNCiANCiAJb2Zm
c2V0ID0gcGFnZV9vZmZzZXQoYmFja3BhZ2UpOw0KLQl1bmxvY2tfcGFnZShi
YWNrcGFnZSk7DQotCXBhZ2VfY2FjaGVfcmVsZWFzZShiYWNrcGFnZSk7DQog
DQogCWlmIChlcnJvcikNCiAJCXByaW50aygibm5wZnNfd3JpdGVfYmFja3Bh
Z2U6IEVJT1xuIik7DQogI2lmZGVmIE5OUEZTX1NBRkVfU1lOQw0KIAllbHNl
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzMikNCiAJCSh2b2lkKXN5bmNfcGFnZV9yYW5nZShtYXBwaW5nLT5ob3N0
LCBtYXBwaW5nLCBvZmZzZXQsIGxlbik7DQorI2Vsc2UNCisJCSh2b2lkKWZp
bGVtYXBfd3JpdGVfYW5kX3dhaXRfcmFuZ2UobWFwcGluZywgb2Zmc2V0LCBv
ZmZzZXQgKyBsZW4gLSAxKTsNCisjZW5kaWYNCiAjZW5kaWYNCiAJDQogCXJl
dHVybiBlcnJvcjsNCkBAIC0xNjg5LDEzICsxOTYxLDkgQEAgbm5wZnNfcmVh
ZF9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgcw0KIAlzdHJ1Y3QgcGFn
ZSAqYmFja3BhZ2U7DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0KLSNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4
KQ0KKwkodm9pZClvZmZzZXQ7DQorDQogCWJhY2twYWdlID0gcmVhZF9tYXBw
aW5nX3BhZ2UobWFwcGluZywgbiwgYmFja2ZpbGUpOw0KLSNlbHNlDQotCWJh
Y2twYWdlID0gcmVhZF9jYWNoZV9wYWdlKG1hcHBpbmcsIG4sDQotCQkJCSAg
IChmaWxsZXJfdCAqKW1hcHBpbmctPmFfb3BzLT5yZWFkcGFnZSwNCi0JCQkJ
ICAgYmFja2ZpbGUpOw0KLSNlbmRpZg0KIAlpZiAoIUlTX0VSUihiYWNrcGFn
ZSkpIHsNCiAJCXdhaXRfb25fcGFnZV9sb2NrZWQoYmFja3BhZ2UpOw0KIA0K
QEAgLTE4NDIsMTEgKzIxMTAsMTcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShz
dHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIA0KIAlpZiAobW9kc2l6ZSA+IGlfc2l6
ZV9yZWFkKGlub2RlKSkgew0KIAkJaW50IGVycm9yOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJCWVycm9y
ID0gdm10cnVuY2F0ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2Vsc2UNCisJCWVy
cm9yID0gaW5vZGVfbmV3c2l6ZV9vayhpbm9kZSwgbW9kc2l6ZSk7DQorCQlp
ZighZXJyb3IpDQorCQkJdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgbW9kc2l6
ZSk7DQorI2VuZGlmDQogCQlpZiAoZXJyb3IpIHsNCiAJCQlwcmludGsoIm5u
cGZzX3ByZXBhcmVfd3JpdGU6IHRydW5jYXRlKCVsbHUpIC0+ICVkXG4iLA0K
IAkJCSAgICAgICBtb2RzaXplLCAtZXJyb3IpOw0KLQkJCUJVRygpOyAvKiBY
WFggbm90IGNvcnJlY3QgKi8NCisJCQkvKkJVRygpOyovIC8qIFhYWCBub3Qg
Y29ycmVjdCAqLw0KIAkJfQ0KIAl9DQogDQpAQCAtMTg3Miw0NCArMjE0Niwx
MTggQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwg
cw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiBzdGF0aWMgaW50DQot
bm5wZnNfY29tbWl0X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qg
cGFnZSAqcGFnZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pDQorbm5w
ZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRy
ZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KK3Vuc2lnbmVkIGxl
biwgdW5zaWduZWQgZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQg
Kipmc2RhdGEpDQogew0KLSAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gcGFn
ZS0+bWFwcGluZy0+aG9zdDsNCi0gICAgbG9mZl90IHBvcyA9ICgobG9mZl90
KXBhZ2UtPmluZGV4IDw8IFBBR0VfQ0FDSEVfU0hJRlQpICsgdG87DQorCXN0
cnVjdCBwYWdlICpwYWdlOw0KKwlwZ29mZl90IGluZGV4Ow0KKwl1bnNpZ25l
ZCBmcm9tOw0KKwlpbnQgcmV0ID0gMDsNCiANCi0gICAgaWYgKHBvcyA+IGlu
b2RlLT5pX3NpemUpIHsNCi0JaV9zaXplX3dyaXRlKGlub2RlLCBwb3MpOw0K
KwlpbmRleCA9IHBvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKwlmcm9tID0g
cG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOw0KIA0KLQlzcGluX2xvY2so
Jmlub2RlLT5pX2xvY2spOw0KLQlpbm9kZS0+aV9ibG9ja3MgPSAocG9zICsg
SV9CTE9DS1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7DQotCXNwaW5f
dW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCi0gICAgfQ0KLSAgICBzZXRfcGFn
ZV9kaXJ0eShwYWdlKTsNCisJcGFnZSA9IGdyYWJfY2FjaGVfcGFnZV93cml0
ZV9iZWdpbihtYXBwaW5nLCBpbmRleCwgZmxhZ3MpOw0KKwlpZiAoIXBhZ2Up
DQorCQlyZXR1cm4gLUVOT01FTTsNCisNCisJKnBhZ2VwID0gcGFnZTsNCisN
CisJcmV0ID0gbm5wZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9t
LCBmcm9tICsgbGVuKTsNCisJaWYgKHJldCkgew0KKwkJdW5sb2NrX3BhZ2Uo
cGFnZSk7DQorCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQorCX0NCisN
CisJcmV0dXJuIHJldDsNCit9DQorI2VuZGlmDQogDQorLyogWFhYIHdlIHVz
ZSB0aGUgc3lzdGVtIHByb3ZpZGVkIHNpbXBsZV9jb21taXRfd3JpdGUgaW5z
dGVhZCBzbyB0aGlzIGZ1bmN0aW9uIGlzIHVudXNlZCBmb3Igbm93ICovDQog
I2lmIDANCi0gICAgew0KLQljaGFyICphZGRyOw0KLQlrbWFwKHBhZ2UpOw0K
LQlhZGRyID0gcGFnZV9hZGRyZXNzKHBhZ2UpOw0KLQlOTlBGU0RFQihYREVC
Vk5PUFMsICgibm5wZnNfY29tbWl0X3dyaXRlKCVwKTogJXgleCV4JXhcbiIs
DQorc3RhdGljIGludA0KK25ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmls
ZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQorCQkgICB1bnNpZ25lZCBm
cm9tLCB1bnNpZ25lZCB0bykNCit7DQorCXN0cnVjdCBpbm9kZSAqaW5vZGUg
PSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KKwlsb2ZmX3QgcG9zID0gKChsb2Zm
X3QpcGFnZS0+aW5kZXggPDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsNCisN
CisJaWYgKCFQYWdlVXB0b2RhdGUocGFnZSkpDQorCQlTZXRQYWdlVXB0b2Rh
dGUocGFnZSk7DQorDQorCWlmIChwb3MgPiBpbm9kZS0+aV9zaXplKSB7DQor
CQlpX3NpemVfd3JpdGUoaW5vZGUsIHBvcyk7DQorDQorCQlzcGluX2xvY2so
Jmlub2RlLT5pX2xvY2spOw0KKwkJaW5vZGUtPmlfYmxvY2tzID0gKHBvcyAr
IElfQkxPQ0tTX1VOSVQgLSAxKSA+PiBJX0JMT0NLU19CSVRTOw0KKwkJc3Bp
bl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKwl9DQorCXNldF9wYWdlX2Rp
cnR5KHBhZ2UpOw0KKw0KKyNpZiAwDQorCXsNCisJICAgIGNoYXIgKmFkZHI7
DQorCSAgICBrbWFwKHBhZ2UpOw0KKwkgICAgYWRkciA9IHBhZ2VfYWRkcmVz
cyhwYWdlKTsNCisJICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19j
b21taXRfd3JpdGUoJXApOiAleCV4JXgleFxuIiwNCiAJCQkgICAgIGZpbGUt
PmZfbWFwcGluZy0+aG9zdCwgDQogCQkJICAgICBhZGRyWzBdLCBhZGRyWzFd
LCBhZGRyWzJdLCBhZGRyWzNdKSk7DQotCWt1bm1hcChwYWdlKTsNCi0gICAg
fQ0KKwkgICAga3VubWFwKHBhZ2UpOw0KKwl9DQogI2VuZGlmDQotICAgIA0K
LSAgICByZXR1cm4gMDsNCisgDQorCXJldHVybiAwOw0KIH0NCisjZW5kaWYN
CiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDIsNiwxOCkNCi1jb25zdA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g
S0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKy8qIFhYWCB3ZSB1c2UgdGhlIHN5
c3RlbSBwcm92aWRlZCBzaW1wbGVfd3JpdGVfZW5kIGluc3RlYWQgc28gdGhp
cyBmdW5jdGlvbiBpcyB1bnVzZWQgZm9yIG5vdyAqLw0KKyNpZiAwDQorc3Rh
dGljIGludA0KK25ucGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwg
c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQor
CQl1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IHBhZ2Ug
KnBhZ2UsIHZvaWQgKmZzZGF0YSkNCit7DQorCXVuc2lnbmVkIGZyb20gPSBw
b3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQorDQorCS8qIHplcm8gdGhl
IHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29w
eSAqLw0KKwlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJdm9pZCAqa2Fk
ZHIgPSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJ
CXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQor
CQltZW1zZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3Bp
ZWQpOw0KKwkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJa3Vu
bWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5t
YXBfYXRvbWljKGthZGRyKTsNCisjZW5kaWYNCisJfQ0KKw0KKwlubnBmc19j
b21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7
DQorDQorCXVubG9ja19wYWdlKHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVh
c2UocGFnZSk7DQorDQorCXJldHVybiBjb3BpZWQ7DQorfQ0KKyNlbmRpZg0K
ICNlbmRpZg0KKw0KK2NvbnN0DQogc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3Bl
cmF0aW9ucyBubnBmc19hb3BzID0gew0KIAkucmVhZHBhZ2UgPSBubnBmc19y
ZWFkcGFnZSwNCiAJLndyaXRlcGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4
KQ0KIAkucHJlcGFyZV93cml0ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQot
CS5jb21taXRfd3JpdGUgPSBubnBmc19jb21taXRfd3JpdGUsDQorCS5jb21t
aXRfd3JpdGUgPSBzaW1wbGVfY29tbWl0X3dyaXRlLA0KKyNlbHNlDQorCS53
cml0ZV9iZWdpbiA9IG5ucGZzX3dyaXRlX2JlZ2luLA0KKwkud3JpdGVfZW5k
ID0gc2ltcGxlX3dyaXRlX2VuZCwNCisjZW5kaWYNCiB9Ow0KIA0KIC8qDQpA
QCAtMTkxNywyMSArMjI2NSwzMCBAQCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9v
cGVyYXRpb25zIG5ucGZzX2FvDQogICovDQogDQogc3RydWN0IGZpbGVfb3Bl
cmF0aW9ucyBubnBmc19maWxlX29wZXJhdGlvbnMgPSB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAg
LmFpb19yZWFkCT0gbm5wZnNfYWlvX3JlYWQsDQogICAgIC5haW9fd3JpdGUJ
PSBubnBmc19haW9fd3JpdGUsDQorI2Vsc2UNCisgICAgLnJlYWRfaXRlcgk9
IG5ucGZzX3JlYWRfaXRlciwNCisgICAgLndyaXRlX2l0ZXIJPSBubnBmc193
cml0ZV9pdGVyLA0KKyNlbmRpZg0KICAgICAubW1hcAk9IG5ucGZzX2ZpbGVf
bW1hcCwNCiAgICAgLm9wZW4JPSBubnBmc19vcGVuLA0KICAgICAuZmx1c2gJ
PSBubnBmc19mbHVzaCwNCiAgICAgLnJlbGVhc2UJPSBubnBmc19yZWxlYXNl
X2ZpbGUsDQogICAgIC5mc3luYwk9IG5ucGZzX2ZzeW5jLA0KLSAgICAuc2Vu
ZGZpbGUJPSBubnBmc19zZW5kZmlsZSwNCisgICAgLnNwbGljZV9yZWFkID0g
bm5wZnNfc3BsaWNlX3JlYWQsDQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVy
YXRpb25zIG5ucGZzX2RlYWRfb3BlcmF0aW9ucyA9IHsNCiB9Ow0KIA0KIHN0
cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZGlyX29wZXJhdGlvbnMgPSB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTEsMCkNCiAgICAgLnJlYWRkaXIJPSBubnBmc19yZWFkZGlyLA0KKyNlbHNl
DQorICAgIC5pdGVyYXRlICAgID0gbm5wZnNfaXRlcmF0ZSwNCisjZW5kaWYN
CiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQogfTsNCiANCkBAIC0xOTY4
LDYgKzIzMjUsMTAgQEAgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgbm5wZnNf
ZGVhZF9pbm9kZQ0KIA0KIHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIG5ucGZz
X2xpbmtfaW5vZGVfb3BlcmF0aW9ucyA9IHsNCiAgICAgLnJlYWRsaW5rIAkJ
PSBubnBmc19yZWFkbGluaywNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oNCw1LDApDQogICAgIC5mb2xsb3dfbGluayAJPSBu
bnBmc19mb2xsb3dfbGluaywNCiAgICAgLnB1dF9saW5rIAkJPSBwYWdlX3B1
dF9saW5rLA0KKyNlbHNlDQorICAgIC5nZXRfbGluawkJPSBubnBmc19nZXRf
bGluaywNCisjZW5kaWYNCiB9Ow0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYyBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfbG9hZC5jDQotLS0gYXJsYS0wLjkwLW9sZC9u
bnBmcy9saW51eC9ubnBmc19sb2FkLmMJMjAwNi0xMC0zMSAxMTowMjo0MS4w
MDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w
ZnNfbG9hZC5jCTIwMTYtMDEtMTMgMjA6MTQ6MDIuMDAwMDAwMDAwICswMTAw
DQpAQCAtNTQsNyArNTQsMTEgQEAgZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJh
dGlvbnMgbm5wZnNfZm9wcw0KIA0KIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBl
IG5ucGZzX2ZzX3R5cGUgPSB7DQogICAgICAgIG5hbWU6ICAgICAgICAgICAi
bm5wZnMiLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzkpDQogICAgICAgIGdldF9zYjogICAgICAgICBubnBmc19n
ZXRfc2IsDQorI2Vsc2UNCisgICAgICAgbW91bnQ6ICAgICAgICAgIG5ucGZz
X21vdW50LA0KKyNlbmRpZg0KICAgICAgICBraWxsX3NiOiAgICAgICAga2ls
bF9saXR0ZXJfc3VwZXIsDQogICAgICAgIG93bmVyOiAgICAgICAgICBUSElT
X01PRFVMRSwNCiB9Ow0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAt
b2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYyBhcmxhLTAuOTAvbm5w
ZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jDQotLS0gYXJsYS0wLjkwLW9sZC9u
bnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAwNy0wMS0wOSAxNzozMzoz
MS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnNfbWVzc2FnZS5jCTIwMTYtMDEtMjQgMTg6NTI6MjguMDAwMDAwMDAw
ICswMTAwDQpAQCAtNDUsNyArNDUsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9t
b3VudC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZz
X21lc3NhZ2UuYyx2IDEuMTQzLjIuMSAyMDA3LzAxLzA5IDE2OjMzOjMxIHRv
bCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX21lc3NhZ2UuYyx2IDEu
MTQ1IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQogI2VuZGlm
DQogDQogc3RhdGljIHZvaWQNCkBAIC01NSw5ICs1NSwxNSBAQCBzdGF0aWMg
dm9pZA0KIG5ucGZzX2RfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkN
CiB7DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfZF9yZW1vdmUg
JXBcbiIsIGRlbnRyeSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygmZGNhY2hl
X2xvY2spOw0KICAgICBkZ2V0X2xvY2tlZChkZW50cnkpOw0KICAgICBzcGlu
X3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9j
aygmZGVudHJ5LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKGRlbnRyeSk7
DQorICAgIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7DQorI2VuZGlm
DQogICAgIGRfZHJvcChkZW50cnkpOw0KICAgICBkcHV0KGRlbnRyeSk7DQog
fQ0KQEAgLTEyMSw3ICsxMjcsMTEgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxs
bm9kZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICBzdHJ1Y3QgaW5vZGUgKmRpLCAq
aW5vZGU7DQogICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCA9IE5VTEw7DQog
ICAgIHN0cnVjdCBxc3RyIHNxc3RyOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3Rf
aGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICph
bGlhczsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJNU0cs
ICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZVxuIikpOw0KICAgICANCkBA
IC0xNzYsMTIgKzE4NiwyNiBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2Rl
KHN0cnVjdCBubnBmcyAqDQogICAgICAqDQogICAgICAqLw0KICAgICANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp
DQogICAgIGFsaWFzID0gZGktPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxl
IChhbGlhcyAhPSAmZGktPmlfZGVudHJ5KSB7DQogCXBhcmVudCA9IGxpc3Rf
ZW50cnkoYWxpYXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KLQlzcGlu
X2xvY2soJmRjYWNoZV9sb2NrKTsNCi0JZGdldF9sb2NrZWQocGFyZW50KTsN
Ci0Jc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxp
c3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCBhbGlhcywgJmRpLT5pX2RlbnRy
eSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50
cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UN
CisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCAmZGktPmlfZGVu
dHJ5LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIHNwaW5f
bG9jaygmZGNhY2hlX2xvY2spOw0KKyAgICBkZ2V0X2xvY2tlZChwYXJlbnQp
Ow0KKyAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQor
ICAgIHNwaW5fbG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rs
b2NrKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZwYXJlbnQtPmRfbG9j
ayk7DQorI2VuZGlmDQogCWRlbnRyeSA9IGRfbG9va3VwKHBhcmVudCwgJnNx
c3RyKTsNCiAJTk5QRlNERUIoWERFQk1TRywNCiAJCSAoIm5ucGZzX21lc3Nh
Z2VfaW5zdGFsbG5vZGU6IGFsaWFzICVwLCBsb29rdXAgJXBcbiIsDQpAQCAt
MjMzLDcgKzI1Nyw5IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3Ry
dWN0IG5ucGZzICoNCiAJDQogCWRwdXQoZGVudHJ5KTsNCiAJZGVudHJ5ID0g
TlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQog
CWRwdXQocGFyZW50KTsNCiAgICAgfQ0KICAgICBOTlBGU0RFQihYREVCTVNH
LCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6IGRvbmUgaW5zdGFsbGlu
Z1xuIikpOw0KQEAgLTI2OCw3ICsyOTQsMTMgQEAgbm5wZnNfbWVzc2FnZV9p
bnN0YWxsYXR0cihzdHJ1Y3Qgbm5wZnMgKg0KICAgICB9DQogDQogICAgIGlu
b2RlID0gWE5PREVfVE9fVk5PREUodCk7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBkZW50cnkgPSBs
aXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5uZXh0LCBzdHJ1Y3QgZGVudHJ5
LCBkX2FsaWFzKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQorICAgIGRlbnRyeSA9IGhsaXN0X2VudHJ5
KGlub2RlLT5pX2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF9hbGlh
cyk7DQorI2Vsc2UNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUt
PmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9hbGlhcyk7
DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5u
cGZzX21lc3NhZ2VfaW5zdGFsbGF0dHIgbmFtZTolc1xuIiwNCiAJCSAgICAg
ICBkZW50cnktPmRfbmFtZS5uYW1lKSk7DQpAQCAtMzk2LDE3ICs0MjgsMzUg
QEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsZGF0YShzdHJ1Y3Qgbm5wZnMgKg0K
IHN0YXRpYyB2b2lkDQogY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5v
ZGUgKmlub2RlLCBpbnQgcGFyZW50KQ0KIHsNCisgICAgc3RydWN0IGRlbnRy
eSAqZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7
DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5k
aWYNCiANCiAgYWdhaW46DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVf
bG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZpbm9kZS0+aV9sb2Nr
KTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5
Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5
KSB7DQotCXN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCisjZWxpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxp
c3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2Rl
bnRyeSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hf
ZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQor
I2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5v
ZGUtPmlfZGVudHJ5LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0KIAlzdHJ1
Y3QgbGlzdF9oZWFkICpzdWJkaXJzOw0KIAlzdHJ1Y3Qgbm5wZnNfZGVudHJ5
X2RhdGEgKnhkOw0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQogCWRlbnRyeSA9IGxpc3RfZW50cnkoYWxp
YXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAo
ZGVudHJ5ID09IE5VTEwpIHsNCiAJICAgIHByaW50ayhLRVJOX0VNRVJHICJO
TlBGUyBQYW5pYzogZGVudHJ5IGluIGFsaWFzIGxpc3QgaXMgbnVsbFxuIik7
DQogCSAgICBicmVhazsNCkBAIC00MjIsNyArNDcyLDExIEBAIGNsZWFyX2Fs
bF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwNCiAJc3ViZGlycyA9
IGRlbnRyeS0+ZF9zdWJkaXJzLm5leHQ7DQogCXdoaWxlIChzdWJkaXJzICE9
ICZkZW50cnktPmRfc3ViZGlycykgew0KIAkgICAgc3RydWN0IGxpc3RfaGVh
ZCAqdG1wID0gc3ViZGlyczsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgc3RydWN0IGRlbnRyeSAq
Y2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF91LmRf
Y2hpbGQpOw0KKyNlbHNlDQorCSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9
IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsNCisj
ZW5kaWYNCiAJICAgIHN1YmRpcnMgPSB0bXAtPm5leHQ7DQogCSAgICBOTlBG
U0RFQihYREVCTVNHLCAoImNsZWFyX2FsbF9jaGlsZHJlbiBjaGlsZDogJS4q
cyBpbm9kZTogJXAvJXAgIg0KIAkJCSAgICAgICAiZGNvdW50OiAlZCBhbGlh
c2VzOlxuIiwNCkBAIC00NDIsMTQgKzQ5NiwyNCBAQCBjbGVhcl9hbGxfY2hp
bGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogDQogCSAgICAvKiBUaHJv
dyBpbW1lZGlhdGVseSAqLw0KIAkgICAgaWYgKG5ucGZzX2Rjb3VudChjaGls
ZCkgPT0gMCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzgpDQogCSAgICAgICAgc3Bpbl91bmxvY2soJmRjYWNo
ZV9sb2NrKTsNCisjZWxzZQ0KKwkgICAgICAgIHNwaW5fdW5sb2NrKCZpbm9k
ZS0+aV9sb2NrKTsNCisjZW5kaWYNCiAJCW5ucGZzX2RfcmVtb3ZlKGNoaWxk
KTsNCiAJCWdvdG8gYWdhaW47DQogCSAgICB9DQogCX0NCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCWFsaWFz
ID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogICAgIH0NCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBz
cGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5f
dW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCisjZW5kaWYNCiB9DQogDQogc3Rh
dGljIHZvaWQNCkBAIC02MDUsMTIgKzY2OSwxMCBAQCBnY19ibG9jayhzdHJ1
Y3Qgbm5wZnMgKm5ucGZzcCwNCiAgICAgfQ0KIA0KICAgICBpZiAoIW5ucGZz
X2Jsb2NrX2hhdmVfcCh4biwgb2Zmc2V0KSkgew0KLSNpZiAwICAgLyogaGFw
cGVucyB3aGVuIGRhZW1vbiBzZW5kcyBzZXZlcmFsIG1lc3NhZ2VzIGZvciBz
YW1lIGJsb2NrICovDQogCXByaW50ayhLRVJOX0VNRVJHICJOTlBGUy9nY19i
bG9jazogIg0KIAkgICAgICAgIkVOT0VOVCAoJWQsJWQsJWQsJWQpIDB4JWxs
eFxuIiwgDQogCSAgICAgICB4bi0+aGFuZGxlLmEsIHhuLT5oYW5kbGUuYiwg
eG4tPmhhbmRsZS5jLCB4bi0+aGFuZGxlLmQsIA0KIAkgICAgICAgKHVuc2ln
bmVkIGxvbmcgbG9uZylvZmZzZXQpOw0KLSNlbmRpZg0KIAlyZXR1cm4gLUVO
T0VOVDsNCiAgICAgfQ0KIA0KQEAgLTcyMSwxMiArNzgzLDIyIEBAIG5ucGZz
X21lc3NhZ2VfdmVyc2lvbihzdHJ1Y3Qgbm5wZnMgKm5ucGYNCiANCiAgICAg
Lyogc2FuaXR5IGNoZWNrIGJlZm9yZSB3ZSBsb29rIGF0IGl0ICovDQogICAg
IGlmIChzaXplID09IHNpemVvZigqbWVzc2FnZSkgJiYgbWVzc2FnZS0+dmVy
c2lvbiA9PSBOTlBGU19WRVJTSU9OKSB7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVp
ZGF0YSBuZDsNCisjZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRp
Zg0KIAlpbnQgZXJyb3I7DQogDQogCXVpbnQ2NF90IGJsb2Nrc2l6ZSA9IG1l
c3NhZ2UtPmJsb2Nrc2l6ZTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9v
a3VwKCIuIiwgMCwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRo
KCIuIiwgMCwgJm5kLnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9w
YXRoKCIuIiwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsN
CiAJICAgIC8qDQogCSAgICAgKiBCYWQgY2FjaGUgcm9vdCwganVzdCByZXR1
cm4uDQpAQCAtNzM3LDEyICs4MDksMjMgQEAgbm5wZnNfbWVzc2FnZV92ZXJz
aW9uKHN0cnVjdCBubnBmcyAqbm5wZg0KIAkJICAgIm5ucGZzX21lc3NhZ2Vf
dmVyc2lvbiBmYWlsZWQgcGF0aF9sb29rdXAsICINCiAJCSAgICJlcnJubzog
JWRcbiIsIGVycm9yKTsNCiAJfSBlbHNlIHsNCi0JICAgIG5ucGZzcC0+Y2Fj
aGVyb290ID0gbW50Z2V0KG5kLm1udCk7DQotCSAgICBubnBmc3AtPmNhY2hl
ZGlyID0gZGdldChuZC5kZW50cnkpOw0KLQkgICAgcGF0aF9yZWxlYXNlKCZu
ZCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCisJICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0KG5k
LnBhdGgubW50KTsNCisJICAgIG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KG5k
LnBhdGguZGVudHJ5KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisj
ZWxzZQ0KKwkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQocGF0aC5t
bnQpOw0KKwkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQocGF0aC5kZW50
cnkpOw0KKwkgICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAkgICAg
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOSkNCiAJICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1aWQ7DQog
CSAgICBubnBmc3AtPmdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KKyNlbHNlDQor
ICAgICAgICAgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQor
ICAgICAgICAgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50X2ZzZ2lkKCk7DQor
I2VuZGlmDQogDQogCSAgICAvKiBYWFggd2Ugc2hvdWxkIHZhbGlkYXRlIHRo
ZXNlIHZhbHVlcyAqLw0KIAkgICAgbm5wZnNfYmxvY2tzaXplID0gYmxvY2tz
aXplOw0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZz
L2xpbnV4L25ucGZzX25vZGUuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w
ZnNfbm9kZS5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBm
c19ub2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDAN
CisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIwMTYt
MDEtMTQgMTY6NTE6MTEuMDAwMDAwMDAwICswMTAwDQpAQCAtMTMyLDcgKzEz
MiwxMiBAQCBubnBmc19zZXRzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVp
bnQ2DQogCXByaW50aygibm5wZnNfc2V0c2l6ZTogdHJ1bmNhdGluZyBAMHgl
bGx1XG4iLA0KIAkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylzaXplKTsN
CiAjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw4LDApDQogCXZtdHJ1bmNhdGUoaW5vZGUsIHNpemUpOyAvKiBY
WFggcmV0dmFsICovDQorI2Vsc2UNCisJaWYoIWlub2RlX25ld3NpemVfb2so
aW5vZGUsIHNpemUpKQ0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwg
c2l6ZSk7DQorI2VuZGlmDQogCW5ucGZzX2Jsb2NrX3RydW5jYXRlKHhuLCBz
aXplKTsNCiAgICAgfQ0KIH0NCkBAIC0xNTAsOSArMTU1LDE4IEBAIG5ucGZz
X2F0dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJc3RydWN0
IHRpbWVzcGVjIG5vdGltZSA9IHswfTsNCiANCiAJaW5vZGUtPmlfbW9kZSAg
ID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxNCwwKQ0KIAlpbm9kZS0+aV91aWQgICAgPSAwOw0KIAlpbm9kZS0+
aV9naWQgICAgPSAwOw0KKyNlbHNlDQorCWlub2RlLT5pX3VpZCAgICA9IEtV
SURUX0lOSVQoMCk7DQorCWlub2RlLT5pX2dpZCAgICA9IEtHSURUX0lOSVQo
MCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSAxOw0KKyNl
bHNlDQorCXNldF9ubGluayhpbm9kZSwgMSk7DQorI2VuZGlmDQogCWlub2Rl
LT5pX2F0aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfbXRpbWUgID0gbm90
aW1lOw0KIAlpbm9kZS0+aV9jdGltZSAgPSBub3RpbWU7DQpAQCAtMTY5LDcg
KzE4MywxMSBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBm
c19hdHRyDQogICAgIGlmIChYQV9WQUxJRF9HSUQoYXR0cikpDQogCWlub2Rl
LT5pX2dpZCAgICA9IGF0dHItPnhhX2dpZDsNCiAgICAgaWYgKFhBX1ZBTElE
X05MSU5LKGF0dHIpKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gYXR0ci0+
eGFfbmxpbms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCBhdHRyLT54
YV9ubGluayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAoWEFfVkFMSURf
U0laRShhdHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2RlLCBhdHRyLT54
YV9zaXplKTsNCkBAIC01MTAsMTIgKzUyOCwyNCBAQCBubnBmc19oYXNfcGFn
KGNvbnN0IHN0cnVjdCBubnBmc19ub2RlICp4DQogaW50DQogbm5wZnNfbm9k
ZV91c2VycyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0
cnVjdCBsaXN0X2hlYWQgKnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaGxp
c3Rfbm9kZSAqcG9zOw0KKyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAwOw0K
ICAgICANCiAgICAgLyogWFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHBy
b3RlY3RlZCBzb21laG93ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBsaXN0X2Zvcl9lYWNoKHBv
cywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zv
cl9lYWNoKHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbmRpZg0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBz
dHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwg
ZF91LmRfYWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAobm5wZnNfZGNvdW50KGRl
bnRyeSkgPiAxKQ0KIAkgICAgdXNlcnMrKzsNCiAgICAgfQ0KZGlmZiAtdXBy
TiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5
c2NhbGxzLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxz
LmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2Nh
bGxzLmMJMjAwNy0wMS0wMyAxNToyNjoyNy4wMDAwMDAwMDAgKzAxMDANCisr
KyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2
LTAyLTIwIDE5OjQzOjQyLjAwMDAwMDAwMCArMDEwMA0KQEAgLTQyLDcgKzQy
LDkgQEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAj
aW5jbHVkZSA8bm5wZnMvbm5wZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxp
bnV4L2ZpbGUuaD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM5KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5o
Pg0KKyNlbmRpZg0KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVk
ZSA8bGludXgvcHJvY19mcy5oPg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQog
I2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkN
CisjdW5kZWYgU1lTQ0FMTEhBQ0sNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQg
J2xvd2VyX2JvdW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5k
IGxhdGVyLCBzZSBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgKi8NCisjZW5k
aWYNCisNCiAjaWYgMA0KICNpZmRlZiBDT05GSUdfQ09NUEFUDQogI2luY2x1
ZGUgPGxpbnV4L2lvY3RsMzIuaD4NCkBAIC02NCw3ICs3MSw3IEBADQogI3Vu
ZGVmIE5FRURfVklDRUlPQ1RMMzINCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJ
RCgiJElkOiBubnBmc19zeXNjYWxscy5jLHYgMS4xMjIgMjAwNy8wMS8wMyAx
NDoyNjoyNyB0b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNj
YWxscy5jLHYgMS4xMjUgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQi
KTsNCiAjZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0IHByb2NfZGlyX2VudHJ5
ICpubnBmc19wcm9jZnNfZGlyOw0KQEAgLTgyLDEyICs4OSwyMiBAQCB0eXBl
ZGVmIHN0cnVjdCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2lnbmVkIGxvbmcg
c3lzY2FsbDsNCiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGlu
dA0KIG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBz
dHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVu
c2lnbmVkIGxvbmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5w
ZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5z
aWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0K
IA0KIHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nm
c19mb3BzID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZzX3Byb2Nmc19p
b2N0bCwNCisjZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwgPSBubnBmc19w
cm9jZnNfaW9jdGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBAIC0xNDcsNTMg
KzE2NCw0OCBAQCBzdGF0aWMgaW50IG5ucGZzX3NlY19yZWdpc3RlcmVkID0g
MDsNCiAjZGVmaW5lIFNFQzJQQUcocykgKG5ucGZzX3BhZ190KSh1bnNpZ25l
ZCBsb25nKShzKQ0KICNkZWZpbmUgUEFHMlNFQyhwKSAodm9pZCAqKSh1bnNp
Z25lZCBsb25nKShwKQ0KIA0KLXN0YXRpYyBpbnQNCi1ubnBmc19zZWNfdGFz
a19hbGxvYyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBm
c19wYWdfdCBwYWcgPSBTRUMyUEFHKGN1cnJlbnQtPnNlY3VyaXR5KTsNCi0g
ICAgaWYgKHBhZykNCi0JcC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZyk7DQot
ICAgIHJldHVybiAwOw0KLX0NCi0NCi1zdGF0aWMgdm9pZA0KLW5ucGZzX3Nl
Y190YXNrX2ZyZWUoc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KLXsNCi0gICAg
bm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhwLT5zZWN1cml0eSk7DQotICAg
IGlmIChwYWcpDQotCXAtPnNlY3VyaXR5ID0gTlVMTDsNCi19DQotDQogc3Rh
dGljIG5ucGZzX3BhZ190DQogbm5wZnNfZ2V0X3BhZ19zZWModm9pZCkNCiB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQogICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVu
dC0+c2VjdXJpdHkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3BhZ190IHBhZyA9
IFNFQzJQQUcoY3VycmVudF9zZWN1cml0eSgpKTsNCisjZW5kaWYNCiAgICAg
aWYgKHBhZykNCiAJcmV0dXJuIHBhZzsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJu
IGN1cnJlbnQtPnVpZDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE0LDApDQorICAgIHJldHVybiBjdXJyZW50X3Vp
ZCgpOw0KKyNlbHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3Vp
ZCgpOyByZXR1cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCiB9DQogDQogc3Rh
dGljIGludA0KIG5ucGZzX3NldF9wYWdfc2VjKHZvaWQpDQogew0KICAgICBz
dGF0aWMgbm5wZnNfcGFnX3QgcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYs
MjkpDQorICAgIHN0cnVjdCBjcmVkICpjcmVkOw0KKyNlbmRpZg0KIA0KICAg
ICBpZiAocGFnbnVtID09IE5OUEZTX1BBR19VTElNKQ0KIAlyZXR1cm4gLUVO
T01FTTsNCiAgICAgLyogcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07ICovDQog
ICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDI4KQ0KICAgICBjdXJyZW50LT5zZWN1cml0eSA9IFBBRzJTRUMo
cGFnbnVtKTsNCisjZWxzZQ0KKyAgICBjcmVkID0gKHN0cnVjdCBjcmVkICop
IGN1cnJlbnQtPmNyZWQ7DQorICAgIGNyZWQtPnNlY3VyaXR5ID0gUEFHMlNF
QyhwYWdudW0pOw0KKyNlbmRpZg0KICAgICBwYWdudW0rKzsNCiAgICAgcmV0
dXJuIDA7DQogfQ0KIA0KLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0
aW9ucyBubnBmc19zZWNfb3BzID0gew0KLSAgICAudGFza19hbGxvY19zZWN1
cml0eSA9IG5ucGZzX3NlY190YXNrX2FsbG9jLA0KLSAgICAudGFza19mcmVl
X3NlY3VyaXR5ID0gbm5wZnNfc2VjX3Rhc2tfZnJlZSwNCi0vLyAgICAudGFz
a19yZXBhcmVudF90b19pbml0ID0gbm5wZnNfc2VjX3JlcGFyZW50X3RvX2lu
aXQsDQotfTsNCi0NCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovDQog
DQogI2lmZGVmIEdST1VQUEFHUw0KQEAgLTIwNiw3ICsyMTgsMTIgQEAgZmlu
ZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBGU0RFQihY
REVCU1lTLCAoImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdpLT5uZ3Jv
dXBzKSk7DQogDQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0gMTsgaSA+
PSAwOyBpLS0pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxNCwwKQ0KIAlnaWRfdCBncm91cCA9IEdST1VQX0FUKGdp
LCBpKTsNCisjZWxzZQ0KKwlrZ2lkX3Qga2dyb3VwID0gR1JPVVBfQVQoZ2ks
IGkpOw0KKwlnaWRfdCBncm91cCA9IGtncm91cC52YWw7DQorI2VuZGlmDQog
CWlmICgobm5wZnNfcGFnX3QpZ3JvdXAgPj0gTk5QRlNfUEFHX0xMSU0gJiYg
KG5ucGZzX3BhZ190KWdyb3VwIDwgTk5QRlNfUEFHX1VMSU0pIHsNCiAJICAg
IE5OUEZTREVCKFhERUJTWVMsDQogCQkgICAgICgiZmluZF9wYWc6IEV4aXN0
aW5nIHBhZyAldSBhdCBwb3MgJXVcbiIsIGdyb3VwLCBpKSk7DQpAQCAtMjIy
LDE1ICsyMzksMzEgQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdp
KQ0KIHN0YXRpYyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfZ3JvdXAo
dm9pZCkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9
IGN1cnJlbnQtPmdyb3VwX2luZm87DQogICAgIG5ucGZzX3BhZ190IHJldCA9
IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgZ3JvdXBfaW5m
byAqZ2kgPSBnZXRfY3VycmVudF9ncm91cHMoKTsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBubnBm
c19wYWdfdCByZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1
aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNfcGFnX3Qg
cmV0ID0ga3VpZC52YWw7DQorI2VuZGlmDQorI2VuZGlmDQogICAgIGludCBp
Ow0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDI4KQ0KICAgICBnZXRfZ3JvdXBfaW5mbyhnaSk7DQorI2VuZGlm
DQogDQogICAgIGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5O
UEZTX1BBR19OT1RGT1VORCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwg
aSk7DQorI2Vsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBp
KTsgcmV0ID0ga2dpZC52YWw7IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dy
b3VwX2luZm8oZ2kpOw0KIA0KQEAgLTI0MiwxMyArMjc1LDE5IEBAIG5ucGZz
X2dldF9wYWdfZ3JvdXAodm9pZCkNCiBzdGF0aWMgaW50DQogc3RvcmVfcGFn
KG5ucGZzX3BhZ190IHBhZ251bSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBn
cm91cF9pbmZvICpvbGRfZ2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KKyNl
bHNlDQorICAgc3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGdldF9jdXJy
ZW50X2dyb3VwcygpOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5m
byAqbmV3X2dpOw0KLSAgICBpbnQgbmJsb2NrcywgY291bnQ7DQorICAgIHVu
c2lnbmVkIGludCBuYmxvY2tzLCBjb3VudDsNCiAgICAgaW50IGZvdW5kID0g
MDsNCiAgICAgaW50IGksIGs7DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KSAgICANCiAgICAgZ2V0
X2dyb3VwX2luZm8ob2xkX2dpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZp
bmRfcGFnKG9sZF9naSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RG
T1VORCkNCkBAIC0yNzQsMTAgKzMxMywxNyBAQCBzdG9yZV9wYWcobm5wZnNf
cGFnX3QgcGFnbnVtKQ0KIAljb3VudCAtPSBOR1JPVVBTX1BFUl9CTE9DSzsN
CiAgICAgfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE0LDApDQogICAgIGlmIChmb3VuZCkNCiAJR1JPVVBfQVQo
bmV3X2dpLCBpKSA9IHBhZ251bTsNCiAgICAgZWxzZQ0KIAlHUk9VUF9BVChu
ZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0gcGFnbnVtOw0KKyNlbHNl
DQorICAgIGlmIChmb3VuZCkNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lO
SVQocGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9IGtnaWQ7IH0NCisg
ICAgZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0p
OyBHUk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0ga2dp
ZDsgfQ0KKyNlbmRpZg0KICAgICANCiAgICAgc2V0X2N1cnJlbnRfZ3JvdXBz
KG5ld19naSk7DQogICAgIHB1dF9ncm91cF9pbmZvKG5ld19naSk7DQpAQCAt
MzE3LDcgKzM2MywxMyBAQCBubnBmc19nZXRfcGFnKCkNCiAgICAgcmV0dXJu
IG5ucGZzX2dldF9wYWdfZ3JvdXAoKTsNCiAjZW5kaWYgLyogR1JPVVBQQUdT
ICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS
U0lPTigyLDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQorI2Vs
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KKyAgICByZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7
IGt1aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFs
OyB9DQorI2VuZGlmDQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50DQpAQCAt
NDIyLDcgKzQ3NCw3IEBAIG5ucGZzX3NldGdyb3VwczE2IChpbnQgZ2lkc2V0
c2l6ZSwgb2xkX2cNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5k
aWYgLyogR1JPVVBQQUdTICovDQogDQotc3RydWN0IGZpbGVfaGFuZGxlIHsN
CitzdHJ1Y3Qgbm5wZnNfZmlsZV9oYW5kbGUgew0KICAgICBubnBmc19kZXZf
dCBkZXY7DQogICAgIGlub190IGlub2RlOw0KICAgICBfX3UzMiBnZW47DQpA
QCAtNTA5LDI2ICs1NjEsNTggQEAgbm5wZnNfZGVidWdfcHJpbnQgKHN0cnVj
dCBhcmxhVmljZUlvY3RsIA0KICAqIGZvbGxvdyBzeW1saW5rcyBpZmYgYGZv
bGxvdycNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxOSwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoN
CiB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hh
ciAqdXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNlbHNlDQorc3RhdGljIHN0
cnVjdCBkZW50cnkgKg0KK3VzZXJfcGF0aDJkZW50cnkgKHN0cnVjdCBwYXRo
ICpwYXRoLCBjaGFyICp1c2VyX3BhdGgsIGludCBmb2xsb3cpDQorI2VuZGlm
DQogew0KICAgICBjaGFyICprbmFtZTsNCiAgICAgaW50IGZsYWdzID0gMDsN
CiAgICAgaW50IGVycm9yID0gMDsNCiANCi0gICAga25hbWUgPSBnZXRuYW1l
ICh1c2VyX3BhdGgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDcsMCkNCisgICAga25hbWUgPSBnZXRuYW1lKHVzZXJf
cGF0aCk7DQorI2Vsc2UNCisgICAga25hbWUgPSBfX2dldG5hbWUoKTsNCisj
ZW5kaWYNCisNCiAgICAgaWYgKElTX0VSUihrbmFtZSkpDQogCXJldHVybiBF
UlJfUFRSKFBUUl9FUlIoa25hbWUpKTsNCiAgICAgaWYgKGZvbGxvdykNCiAJ
ZmxhZ3MgfD0gTE9PS1VQX0ZPTExPVzsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KKyAgICBlcnJvciA9
IHN0cm5jcHlfZnJvbV91c2VyKGtuYW1lLCB1c2VyX3BhdGgsIFBBVEhfTUFY
KTsNCisgICAgaWYgKGVycm9yIDwgMCB8fCBlcnJvciA9PSBQQVRIX01BWCkg
ew0KKwlfX3B1dG5hbWUoa25hbWUpOw0KKwlyZXR1cm4gRVJSX1BUUihlcnJv
cik7DQorICAgIH0NCisjZW5kaWYNCisNCiAgICAgTk5QRlNERUIoWERFQk1T
RywgKCJubnBmc19zeXNjYWxsOiBsb29raW5nIHVwOiAlc1xuIiwga25hbWUp
KTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM5KQ0KICAgICBlcnJvciA9IHBhdGhfbG9va3VwKGtuYW1lLCBm
bGFncywgbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25h
bWUsIGZsYWdzLCAmKG5kLT5wYXRoKSk7DQorI2Vsc2UNCisgICAgZXJyb3Ig
PSBrZXJuX3BhdGgoa25hbWUsIGZsYWdzLCBwYXRoKTsNCisjZW5kaWYNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDAp
DQogICAgIHB1dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAgIF9fcHV0bmFt
ZShrbmFtZSk7DQorI2VuZGlmDQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJu
IEVSUl9QVFIoZXJyb3IpOw0KLSAgICByZXR1cm4gbmQtPmRlbnRyeTsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KKyAgICByZXR1cm4gbmQtPnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorICAg
IHJldHVybiBwYXRoLT5kZW50cnk7DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxp
bmthZ2UgbG9uZw0KQEAgLTU0MCwxMiArNjI0LDI0IEBAIHN5c19hZnNfaW50
IChpbnQgb3BlcmF0aW9uLA0KIHsNCiAgICAgbG9uZyBlcnJvciA9IDA7DQog
ICAgIHN0cnVjdCBhcmxhVmljZUlvY3RsIHZpY2VfaW9jdGw7IA0KLSAgICBz
dHJ1Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwgbXNnOw0KKyAgICBzdHJ1Y3Qg
bm5wZnNfbWVzc2FnZV9waW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVj
dCBubnBmc19tZXNzYWdlX3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRl
bnRyeSAqZGVudHJ5ID0gTlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgbmFtZWlk
YXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7DQorI2Vu
ZGlmDQogICAgIA0KKyAgICBtc2cgPSBrbWFsbG9jKHNpemVvZigqbXNnKSwg
R0ZQX0tFUk5FTCk7DQorICAgIGlmIChtc2cgPT0gTlVMTCkNCisgICAgICBy
ZXR1cm4gLUVOT01FTTsNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICBsb2NrX2tlcm5lbCgpOw0K
KyNlbHNlDQorICAgIC8qIFhYWCBsb2NrX2tlcm5lbCgpIGlzIHJlbW92ZWQs
IGNvbnNpZGVyIGFkZGluZyBhbiBwcml2YXRlIGxvY2sgKi8NCisjZW5kaWYN
CiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCBs
b2NrZWRcbiIpKTsNCiANCkBAIC01NzUsNyArNjcxLDcgQEAgc3lzX2Fmc19p
bnQgKGludCBvcGVyYXRpb24sDQogCSAgICBnb3RvIHVubG9jazsNCiAJfQ0K
IAlpZiAodmljZV9pb2N0bC5pbl9zaXplICE9IDApIHsNCi0JICAgIGlmKGNv
cHlfZnJvbV91c2VyKCZtc2cubXNnLA0KKwkgICAgaWYoY29weV9mcm9tX3Vz
ZXIoJm1zZy0+bXNnLA0KIAkJCSAgICAgIHZpY2VfaW9jdGwuaW4sDQogCQkJ
ICAgICAgdmljZV9pb2N0bC5pbl9zaXplKSAhPSAwKSB7DQogCQllcnJvciA9
IC1FRkFVTFQ7DQpAQCAtNTgzLDcgKzY3OSwxMSBAQCBzeXNfYWZzX2ludCAo
aW50IG9wZXJhdGlvbiwNCiAJICAgIH0NCiAJfQ0KIAlpZiAoYV9wYXRoUCAh
PSBOVUxMKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAJICAgIGRlbnRyeSA9IHVzZXJfcGF0aDJkZW50
cnkgKCZuZCwgYV9wYXRoUCwgYV9mb2xsb3dTeW1saW5rcyk7DQorI2Vsc2UN
CisJICAgIGRlbnRyeSA9IHVzZXJfcGF0aDJkZW50cnkgKCZwYXRoLCBhX3Bh
dGhQLCBhX2ZvbGxvd1N5bWxpbmtzKTsNCisjZW5kaWYNCiAJICAgIGlmICgh
ZGVudHJ5KSB7DQogCQllcnJvciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9j
azsNCkBAIC02MjgsMTkgKzcyOCwyMyBAQCBzeXNfYWZzX2ludCAoaW50IG9w
ZXJhdGlvbiwNCiAJCWVycm9yID0gLUVJTlZBTDsNCiAJCWdvdG8gdW5sb2Nr
Ow0KIAkgICAgfQ0KLQkgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQor
CSAgICBtc2ctPmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogCX0NCiANCi0JbXNn
LmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUElPQ1RMOw0KLQltc2cub3Bj
b2RlID0gYV9vcGNvZGU7DQorCW1zZy0+aGVhZGVyLm9wY29kZSA9IE5OUEZT
X01TR19QSU9DVEw7DQorCW1zZy0+b3Bjb2RlID0gYV9vcGNvZGU7DQogCQ0K
LQltc2cuaW5zaXplICAgPSB2aWNlX2lvY3RsLmluX3NpemU7DQotCW1zZy5v
dXRzaXplICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQotCW1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnQtPnVpZDsNCi0JbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0
X3BhZygpOw0KKwltc2ctPmluc2l6ZSAgID0gdmljZV9pb2N0bC5pbl9zaXpl
Ow0KKwltc2ctPm91dHNpemUgID0gdmljZV9pb2N0bC5vdXRfc2l6ZTsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy
OCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0K
KyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vu
ZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCQ0K
LQllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKCZubnBmc1swXSwgJm1zZy5o
ZWFkZXIsIHNpemVvZihtc2cpKTsgLyogWFhYICovDQotCW1zZzIgPSAoc3Ry
dWN0IG5ucGZzX21lc3NhZ2Vfd2FrZXVwICopICZtc2c7DQorCWVycm9yID0g
bm5wZnNfbWVzc2FnZV9ycGMoJm5ucGZzWzBdLCAmbXNnLT5oZWFkZXIsIHNp
emVvZigqbXNnKSk7IC8qIFhYWCAqLw0KKwltc2cyID0gKHN0cnVjdCBubnBm
c19tZXNzYWdlX3dha2V1cCAqKSBtc2c7DQogCWlmIChlcnJvciA9PSAwKQ0K
IAkgICAgZXJyb3IgPSBtc2cyLT5lcnJvcjsNCiANCkBAIC02NzUsMTIgKzc3
OSwyMSBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAgICAgDQog
IHVubG9jazoNCiAgICAgaWYgKGRlbnRyeSkNCi0JcGF0aF9yZWxlYXNlKCZu
ZCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCisJcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCXBh
dGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERF
QlNZUywgKCJubnBmc19zeXNjYWxsIHJldHVybnMgZXJyb3I6ICVsZFxuIiwg
ZXJyb3IpKTsNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZz
IGtlcm5lbCB1bmxvY2tcbiIpKTsNCisgICAga2ZyZWUobXNnKTsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0K
ICAgICB1bmxvY2tfa2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyogWFhYIHNl
ZSB0aGUgY29tbWVudCBhdCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2Vu
ZGlmDQogDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAtNzI5LDkgKzg0
MiwxNSBAQCBzeXNfYWZzIChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFf
Zm9sbG93U3ltbGlua3MpOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBu
bnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0
IGZpbGUgKmZpbGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25l
ZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJv
Y2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQg
aW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAg
ICBhZnNwcm9jZGF0YSBhcmdzOw0KICAgICBsb25nIHJldDsNCkBAIC03ODAs
MjEgKzg5OSwzMSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZv
aWQpDQogew0KICAgICBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmVudHJ5Ow0K
ICAgICANCi0gICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIoTk5Q
RlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIG5ucGZzX3Byb2Nm
c19kaXIgPSBwcm9jX21rZGlyKCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxM
KTsNCiAgICAgaWYgKG5ucGZzX3Byb2Nmc19kaXIgPT0gTlVMTCkNCiAJcmV0
dXJuIC1FTk9NRU07DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzApDQogICAgIG5ucGZzX3Byb2Nmc19k
aXItPm93bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAgIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEwLDAp
DQogICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19O
T0RFLCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxzZQ0KKyAgICBl
bnRyeSA9IHByb2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwgMDY2NiwgTlVM
TCwgJm5ucGZzX3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAgaWYgKGVu
dHJ5ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19p
bml0X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KLQlyZW1vdmVfcHJvY19lbnRy
eShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisJcmVtb3ZlX3By
b2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KIAlyZXR1
cm4gLUVOT01FTTsNCiAgICAgfQ0KICAgICANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBlbnRyeS0+
b3duZXIgPSBUSElTX01PRFVMRTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRy
eS0+cHJvY19mb3BzID0gJm5ucGZzX3Byb2Nmc19mb3BzOw0KKyNlbmRpZg0K
IA0KICNpZmRlZiBTWVNDQUxMQ09NUEFUDQogICAgIGlmIChyZWdpc3Rlcl9p
b2N0bDMyX2NvbnZlcnNpb24oQVJMQV9WSU9DX1NZU0NBTEwzMiwgbm5wZnNf
cHJvY2ZzX2lvY3RsMzIpKSB7DQpAQCAtODE1LDcgKzk0NCw3IEBAIHN0YXRp
YyB2b2lkIG5ucGZzX2V4aXRfcHJvY2ZzKHZvaWQpDQogICAgIH0NCiAjZW5k
aWYgLyogU1lTQ0FMTENPTVBBVCAqLw0KICAgICByZW1vdmVfcHJvY19lbnRy
eShOTlBGU19QUk9DX05PREUsIG5ucGZzX3Byb2Nmc19kaXIpOw0KLSAgICBy
ZW1vdmVfcHJvY19lbnRyeShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2Zz
KTsNCisgICAgcmVtb3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19E
SVIsIE5VTEwpOw0KIH0NCiANCiAjaWZkZWYgR1JPVVBQQUdTDQpAQCAtODM5
LDE0ICs5NjgsNiBAQCBpbnN0YWxsX3NldGdyb3Vwcyh2b2lkKQ0KIHZvaWQN
CiBpbnN0YWxsX2Fmc19zeXNjYWxsKHZvaWQpDQogew0KLSNpZmRlZiBDT05G
SUdfU0VDVVJJVFkNCi0gICAgaWYgKHJlZ2lzdGVyX3NlY3VyaXR5KCZubnBm
c19zZWNfb3BzKSkNCi0JTk5QRlNERUIoWERFQlNZUywNCi0JCSAoImluc3Rh
bGxfYWZzX3N5c2NhbGw6IG5ucGZzX2luaXRfc2VjIGZhaWxlZFxuIikpOw0K
LSAgICBlbHNlDQotCW5ucGZzX3NlY19yZWdpc3RlcmVkID0gMTsNCi0jZW5k
aWYNCi0NCiAgICAgbm5wZnNfaW5pdF9wcm9jZnMoKTsNCiANCiAjaWZkZWYg
U1lTQ0FMTEhBQ0sNCkBAIC04ODcsMTIgKzEwMDgsNiBAQCByZXN0b3JlX2Fm
c19zeXNjYWxsICh2b2lkKQ0KICNlbmRpZg0KICNlbmRpZiAvKiBTWVNDQUxM
SEFDSyAqLw0KIA0KLSNpZmRlZiBDT05GSUdfU0VDVVJJVFkNCi0gICAgaWYg
KG5ucGZzX3NlY19yZWdpc3RlcmVkKQ0KLQlpZiAodW5yZWdpc3Rlcl9zZWN1
cml0eSgmbm5wZnNfc2VjX29wcykpDQotCSAgICBwcmludGsoS0VSTl9FTUVS
RyAibm5wZnNfZXhpdF9zZWM6IGNvdWxkbid0IHVucmVnaXN0ZXJcbiIpOw0K
LSNlbmRpZiAvKiAhQ09ORklHX1NFQ1VSSVRZICovDQotDQogI2lmZGVmIEdS
T1VQUEFHUw0KICNpZmRlZiBTWVNDQUxMSEFDSw0KICAgICBpZiAob2xkX3Nl
dGdyb3Vwcykgew0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xk
L25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhLTAu
OTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jDQotLS0g
YXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3Nz
YWdlLmMJMjAwNi0xMi0xMSAxNzozMTo0NS4wMDAwMDAwMDAgKzAxMDANCisr
KyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2Fn
ZS5jCTIwMTYtMDEtMTMgMjE6NTE6NDkuMDAwMDAwMDAwICswMTAwDQpAQCAt
NDcsMTEgKzQ3LDIwIEBADQogI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPg0K
IA0KICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxz
LWxvc3NhZ2UuYyx2IDEuMTcgMjAwNi8xMi8xMSAxNjozMTo0NSB0b2wgRXhw
ICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMs
diAxLjE5IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQorI2Vu
ZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigzLDcsMCkNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2Jv
dW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyICov
DQorI3VuZGVmIFNZU0NBTExIQUNLDQogI2VuZGlmDQogDQogI2luY2x1ZGUg
PGxpbnV4L2thbGxzeW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNLDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0K
IHN0YXRpYyB2b2lkICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhyZWFkOw0K
KyNlbmRpZg0KKyNlbmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKCh3
ZWFrKSkgc3lzX2NhbGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lzX2NhbGxf
ZnVuY3Rpb24gKm5ucGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02Myw2ICs3
MiwxMSBAQCBjb25zdCBjaGFyICogX19hdHRyaWJ1dGVfXygod2VhaykpDQog
CQkgICAgdW5zaWduZWQgbG9uZyAqb2Zmc2V0LA0KIAkJICAgIGNoYXIgKipt
b2RuYW1lLCBjaGFyICpuYW1lYnVmKTsNCiANCisjaWZkZWYgX194ODZfNjRf
Xw0KK2V4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrIF9fYXR0cmlidXRl
X18oKHdlYWspKTsNCisjZW5kaWYNCisNCisjaWZkZWYgU1lTQ0FMTEhBQ0sN
CiBzdGF0aWMgdm9pZCAqKg0KIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAj
aWZkZWYgX194ODZfNjRfXw0KQEAgLTcxLDYgKzg1LDcgQEAgZ2V0X3N0YXJ0
X2FkZHIodm9pZCkgew0KICAgICByZXR1cm4gKHZvaWQgKiopJm11dGV4X2xv
Y2s7DQogI2VuZGlmDQogfQ0KKyNlbmRpZg0KIA0KIHN0YXRpYyBpbmxpbmUg
aW50IA0KIGthbGxzeW1faXNfZXF1YWwodW5zaWduZWQgbG9uZyBhZGRyLCBj
b25zdCBjaGFyICpuYW1lKQ0KQEAgLTEzOSw2ICsxNTQsOCBAQCB2ZXJpZnko
dm9pZCAqKnApIHsNCiAgICAgcmV0dXJuIDE7DQogfQ0KIA0KKyNpZmRlZiBT
WVNDQUxMSEFDSw0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGxvb2tzX2dvb2Qo
dm9pZCAqKnApDQogew0KICAgICBpZiAoKnAgPD0gKHZvaWQqKWxvd2VyX2Jv
dW5kIHx8ICpwID49ICh2b2lkKilwKQ0KQEAgLTE4OCwzICsyMDUsNSBAQCBu
bnBmc19maXh1cF9zeXNjYWxsX2xvc3NhZ2Uodm9pZCkNCiANCiAgICAgcmV0
dXJuIDA7DQogfQ0KKw0KKyNlbmRpZg0KZGlmZiAtdXByTiAtWG5vZGlmZiBh
cmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFybGEt
MC45MC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFybGEtMC45
MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAwNi0xMi0xMSAx
Nzo0MzozNS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMv
bGludXgvbm5wZnNfdmZzb3BzLmMJMjAxNi0wMi0xNCAwMTozNjowNi4wMDAw
MDAwMDAgKzAxMDANCkBAIC00NCwzMCArNDQsMjYgQEANCiAjaW5jbHVkZSA8
bGludXgvbW0uaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBu
bnBmc192ZnNvcHMuYyx2IDEuMTA5IDIwMDYvMTIvMTEgMTY6NDM6MzUgdG9s
IEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjEx
MSAyMDEwLzA4LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0K
IA0KIHN0cnVjdCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KLXN0YXRpYyB2
b2lkIG5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQog
c3RhdGljIHZvaWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9j
ayAqc2IpOw0KLXN0YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3Qg
aW5vZGUgKmlub2RlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHZvaWQgbm5wZnNfd3JpdGVf
c3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpOw0KKyNlbmRpZg0KIA0K
LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2
LDE4KQ0KIHN0YXRpYyBpbnQgbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkg
KmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2Vsc2UNCi1zdGF0
aWMgaW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBz
dHJ1Y3Qga3N0YXRmcyAqYnVmKTsNCi0jZW5kaWYNCiANCiBzdGF0aWMgc3Ry
dWN0IHN1cGVyX29wZXJhdGlvbnMgbm5wZnNfc29wcyA9IHsgDQotICAgIHJl
YWRfaW5vZGUJCTogbm5wZnNfcmVhZF9pbm9kZSwNCi0gICAgcHV0X2lub2Rl
CQk6IG5ucGZzX3B1dF9pbm9kZSwNCiAgICAgYWxsb2NfaW5vZGUJCTogbm5w
ZnNfbm9kZV9hbGxvYywNCiAgICAgZGVzdHJveV9pbm9kZQk6IG5ucGZzX25v
ZGVfZnJlZSwNCiAgICAgZHJvcF9pbm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9p
bm9kZSwNCiAgICAgcHV0X3N1cGVyCQk6IG5ucGZzX3B1dF9zdXBlciwNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp
DQogICAgIHdyaXRlX3N1cGVyCQk6IG5ucGZzX3dyaXRlX3N1cGVyLA0KKyNl
bmRpZg0KICAgICBzdGF0ZnMJCTogbm5wZnNfc3RhdGZzLA0KIH07DQogDQpA
QCAtOTQsNyArOTAsMTEgQEAgbm5wZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5v
ZGUgKmkpDQogCSAqIHJvb3QncyBwcml2aWxpZ2VzICh1c3VhbGx5IG5vbmUs
IGFuZCBub25lIGlzIG5lZWRlZCkuDQogCSAqLw0KIAkNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAltc2cu
Y3JlZC51aWQgPSAwOw0KKyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9IEtVSURU
X0lOSVQoMCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0K
IAllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFk
ZXIsIHNpemVvZihtc2cpKTsNCkBAIC0xMjksOCArMTI5LDEzIEBAIG1ha2Vf
cm9vdF9pbm9kZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VU
X01PREUoJm5vZGUuYXR0ciwgU19JRkRJUiB8IDA3NzcpOw0KICAgICBYQV9T
RVRfTkxJTksoJm5vZGUuYXR0ciwgMTAwKTsNCiAgICAgWEFfU0VUX1NJWkUo
Jm5vZGUuYXR0ciwgMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgWEFfU0VUX1VJRCgmbm9kZS5h
dHRyLCAwKTsNCiAgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCAwKTsNCisj
ZWxzZQ0KKyAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIEtVSURUX0lOSVQo
MCkpOw0KKyAgICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIEtHSURUX0lOSVQo
MCkpOw0KKyNlbmRpZg0KICAgICBYQV9TRVRfQVRJTUUoJm5vZGUuYXR0ciwg
MCk7DQogICAgIFhBX1NFVF9NVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAg
WEFfU0VUX0NUSU1FKCZub2RlLmF0dHIsIDApOw0KQEAgLTE1OSw3ICsxNjQs
MTEgQEAgbWFrZV9yb290IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAg
ICBubnBmcy0+cm9vdCA9IGlub2RlOw0KIA0KICAgICAvKiBYWFggZXJyb3Ig
aGFuZGxpbmcgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw0LDApDQogICAgIGRwID0gZF9hbGxvY19yb290KGlub2Rl
KTsNCisjZWxzZQ0KKyAgICBkcCA9IGRfbWFrZV9yb290KGlub2RlKTsNCisj
ZW5kaWYNCiAgICAgbm5wZnNfZF9pbml0KGRwKTsNCiAgICAgc2ItPnNfcm9v
dCA9IGRwOw0KICAgICByZXR1cm4gMDsNCkBAIC0xODMsMTMgKzE5MiwyNyBA
QCBubnBmc19yZWFkX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQog
ICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19yZWFkX3N1cGVyOiBi
ZWdpbiBzZXR0aW5nIHZhcmlhYmxlc1xuIikpOw0KIA0KICAgICBpZiAoZGF0
YSAhPSBOVUxMKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisj
ZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAkNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0K
IAllcnJvciA9IHBhdGhfbG9va3VwKGRhdGEsIDAsICZuZCk7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
KwllcnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAmbmQucGF0aCk7DQorI2Vs
c2UNCisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJnBhdGgpOw0KKyNl
bmRpZg0KIAlpZiAoZXJyb3IpDQogCSAgICBkZGV2ID0gRVJSX1BUUihlcnJv
cik7DQogCWVsc2UNCi0JICAgIGRkZXYgPSBuZC5kZW50cnk7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJ
ICAgIGRkZXYgPSBuZC5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKwkgICAgZGRl
diA9IHBhdGguZGVudHJ5Ow0KKyNlbmRpZg0KIA0KIAlpZiAoIUlTX0VSUihk
ZGV2KSkgew0KIAkgICAgbWlub3JkZXZpY2UgPSBNSU5PUihkZGV2LT5kX2lu
b2RlLT5pX3JkZXYpOw0KQEAgLTIzMyw3ICsyNTYsNyBAQCBubnBmc19maWxs
X3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQogICAgIHJldHVybiAw
Ow0KIH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W
RVJTSU9OKDIsNiwxOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMiw2LDM5KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1
Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxh
Z3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KQEAgLTI0MiwxOSArMjY1LDIy
IEBAIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMN
CiAgICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywgZGF0
YSwgbm5wZnNfZmlsbF9zdXBlciwgbW50KTsNCiB9DQogI2Vsc2UNCi1zdHJ1
Y3Qgc3VwZXJfYmxvY2sgKg0KLW5ucGZzX2dldF9zYiAoc3RydWN0IGZpbGVf
c3lzdGVtX3R5cGUgKmZzX3R5cGUsDQotCSAgICAgIGludCBmbGFncywgY29u
c3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEpIA0KK3N0cnVjdCBkZW50
cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZz
X3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFt
ZSwNCisJICAgICB2b2lkICpkYXRhKSANCiB7DQotICAgIHJldHVybiBnZXRf
c2Jfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3Vw
ZXIpOw0KKyAgICByZXR1cm4gbW91bnRfbm9kZXYoZnNfdHlwZSwgZmxhZ3Ms
IGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIpOw0KIH0NCiAjZW5kaWYNCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp
DQogc3RhdGljIHZvaWQNCiBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKiBzYikNCiB7DQogICAgIHNiLT5zX2RpcnQgPSAwOw0KIH0N
CisjZW5kaWYNCiANCiAvKg0KICAqIFhYWCBpcyB0aGlzIGdvb2Q/IA0KQEAg
LTI3Myw3MyArMjk5LDYgQEAgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IpDQogICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBm
c19wdXRfc3VwZXIgZXhpdGluZ1xuIikpOw0KIH0NCiANCi1zdGF0aWMgdm9p
ZA0KLW5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkNCi17
DQotICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUg
c3RhcnRpbmcgaW5vZGU6ICVwXG4iLGlub2RlKSk7DQotICAgIE5OUEZTREVC
KFhERUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgaW5vZGUtPmlfaW5vOiAl
bGRcbiIsaW5vZGUtPmlfaW5vKSk7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCi0gICAgaW5vZGUtPmlfYmxr
c2l6ZSA9IDEwMjQ7DQotI2VuZGlmDQotICAgIGlub2RlLT5pX21vZGUgPSAw
Ow0KLSAgICBpbm9kZS0+aV9vcCA9IE5VTEw7DQotICAgIE5OUEZTREVCKFhE
RUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgZXhpdGluZ1xuIikpOw0KLX0N
Ci0gDQotLyoNCi0gKiBDYWxsZWQgd2hlbiBgaW5vZGUnIGlzIGRlLXJlZmVy
ZW5jZWQsIGllIHdoZW4gaXB1dCBpcyBjYWxsZWQuDQotICovDQotDQotc3Rh
dGljIHZvaWQNCi1ubnBmc19wdXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9k
ZSkNCi17DQotICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RP
X1hOT0RFKGlub2RlKTsNCi0gICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBO
TlBGU19GUk9NX1ZOT0RFKGlub2RlKTsNCi0gICAgaW50IGJhZDsNCi0NCi0g
ICAgTk5QRlNERUIoWERFQlZGT1BTLCgibm5wZnNfcHV0X2lub2RlOiBpbm9k
ZTogJXAgY291bnQ6ICVkIGFsaWFzZXM6IiwNCi0JCQlpbm9kZSwgbm5wZnNf
aWNvdW50KGlub2RlKSkpOw0KLSAgICBubnBmc19wcmludF9hbGlhc2VzKGlu
b2RlKTsNCi0gICAgDQotICAgIGRvd24oJm5ucGZzcC0+aW5hY3RpdmVfc2Vt
KTsNCi0NCi0gICAgaWYgKChubnBmc3AtPnN0YXR1cyAmIE5OUEZTX0RFVk9Q
RU4pID09IDApIHsNCi0JaWYgKCFpc19iYWRfaW5vZGUoaW5vZGUpKSB7DQot
CSAgICBpZiAoaW5vZGUgIT0gbm5wZnNwLT5yb290KSB7DQotCQltYWtlX2Jh
ZF9pbm9kZShpbm9kZSk7DQotCQlubnBmc19pcmVsZShpbm9kZSk7IC8qIHNl
ZSBubnBmc19ub2RlX2FkZCgpICovDQotCSAgICB9DQotCSAgICB4bi0+Zmxh
Z3MgfD0gTk5QRlNfU1RBTEU7DQotCX0NCi0JYmFkID0gMTsgLyogb3Igcm9v
dCwgcmVhbGx5ICovDQotICAgIH0gZWxzZSB7DQotCWJhZCA9IGlzX2JhZF9p
bm9kZShpbm9kZSk7DQotICAgIH0NCi0NCi0gICAgaWYgKHhuLT5mbGFncyAm
IE5OUEZTX1NUQUxFICYmICFubnBmc19ub2RlX3VzZXJzKGlub2RlKSkgew0K
LQl4bi0+ZmxhZ3MgfD0gTk5QRlNfTk9ERV9JUFVUOyAvKiBYWFggbG9ja2lu
ZyAqLw0KLSAgCW5ucGZzX2ZvcmNlX2ludmFsaWRfbm9kZSh4bik7DQotCXhu
LT5mbGFncyAmPSB+Tk5QRlNfTk9ERV9JUFVUOw0KLSAgICB9DQotICAgIA0K
LSAgICBpZiAoYmFkKSB7DQotCWlmIChubnBmc19pY291bnQoaW5vZGUpID09
IDEpDQotCSAgICBubnBmc19ub2RlX2NsZWFyKHhuKTsNCi0gICAgfSBlbHNl
IGlmIChubnBmc19pY291bnQoaW5vZGUpID09IDIpIHsNCi0JLyogDQotCSAq
IFRoZSBsYXN0IGV4dGVybmFsIHJlZmVyZW5jZSBpcyBiZWluZyBkcm9wcGVk
LCBvbmx5IHRoZSBvbmUNCi0JICogZnJvbSBubnBmc19ub2RlX2FkZCgpIGlz
IGxlZnQuIFRpbWUgdG8gbGV0IGRhZW1vbiByZWxlYXNlDQotCSAqIHRoaXMg
bm9kZSBwcm9wZXJseS4NCi0JICovDQotCWlmICgoeG4tPmZsYWdzICYgTk5Q
RlNfTElNQk8pID09IDApIHsNCi0JICAgIG5ucGZzX25vZGVfY2xlYXIoeG4p
Ow0KLQkgICAgbm5wZnNfcXVldWVfaW5hY3RpdmUoeG4pOw0KLQl9DQotICAg
IH0NCi0NCi0gICAgdXAoJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsNCi19DQot
DQogc3RhdGljIGludA0KIG5ucGZzX3N0YXRmc19pbnQoc3RydWN0IHN1cGVy
X2Jsb2NrICpzYiwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQpAQCAtMzUy
LDI1ICszMTEsMjUgQEAgbm5wZnNfc3RhdGZzX2ludChzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKnNiLA0KICAgICB0bXAuZl9iYXZhaWwgID0gMTAyNCoxMDI0KjIt
NTA7DQogICAgIHRtcC5mX2ZpbGVzICAgPSAxMDI0KjEwMjQ7DQogICAgIHRt
cC5mX2ZmcmVlICAgPSAxMDI0KjEwMjQtMTAwOw0KKyAgICB0bXAuZl9mc2lk
LnZhbFswXSA9IDA7DQorICAgIHRtcC5mX2ZzaWQudmFsWzFdID0gMDsNCiAg
ICAgdG1wLmZfbmFtZWxlbiA9IE5BTUVfTUFYOw0KKyAgICB0bXAuZl9mcnNp
emUgID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMF0gPSAwOw0KKyAgICB0bXAu
Zl9zcGFyZVsxXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzJdID0gMDsNCisg
ICAgdG1wLmZfc3BhcmVbM10gPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQorICAgIHRtcC5mX3NwYXJl
WzRdID0gMDsNCisjZWxzZQ0KKyAgICB0bXAuZl9mbGFncyA9IDA7DQorI2Vu
ZGlmDQogICAgICpidWYgPSB0bXA7DQogICAgIHJldHVybiAwOw0KIH0NCiAN
Ci0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs
NiwxOCkNCi0NCiBzdGF0aWMgaW50DQogbm5wZnNfc3RhdGZzKHN0cnVjdCBk
ZW50cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQogICAg
IHJldHVybiBubnBmc19zdGF0ZnNfaW50KGRlbnRyeS0+ZF9zYiwgYnVmKTsN
CiB9DQotDQotI2Vsc2UNCi0NCi1zdGF0aWMgaW50DQotbm5wZnNfc3RhdGZz
KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYp
DQotew0KLSAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChzYiwgYnVmKTsN
Ci19DQotDQotI2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45
MC1vbGQvYXJsYWQvZmNhY2hlLmMgYXJsYS0wLjkwL2FybGFkL2ZjYWNoZS5j
DQotLS0gYXJsYS0wLjkwLW9sZC9hcmxhZC9mY2FjaGUuYwkyMDA2LTEyLTEx
IDE3OjIzOjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9hcmxh
ZC9mY2FjaGUuYwkyMDE2LTAxLTIyIDE3OjAwOjQzLjAwMDAwMDAwMCArMDEw
MA0KQEAgLTcxMyw3ICs3MTMsNyBAQCBmY2FjaGVfaGF2ZV93YW50ZWQoRkNh
Y2hlRW50cnkgKmVudHJ5LCB1DQogaW50DQogZmNhY2hlX2Rpcl9uYW1lIChG
Q2FjaGVFbnRyeSAqZW50cnksIGNoYXIgKnMsIHNpemVfdCBsZW4pDQogew0K
LSAgICByZXR1cm4gc25wcmludGYgKHMsIGxlbiwgIiUwMlgiLCBlbnRyeS0+
aW5kZXggLyAweDEwMCk7DQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVu
LCBOTlBGU19DQUNIRV9GSUxFX0RJUjEsIGVudHJ5LT5pbmRleCAvIDB4MTAw
KTsNCiB9DQogDQogLyoNCkBAIC03MjMsNyArNzIzLDcgQEAgZmNhY2hlX2Rp
cl9uYW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYQ0KIHN0YXRpYyBpbnQN
CiBmY2FjaGVfZmlsZV9uYW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYXIg
KnMsIHNpemVfdCBsZW4pDQogew0KLSAgICByZXR1cm4gc25wcmludGYgKHMs
IGxlbiwgIiUwMlgvJTAyWCIsDQorICAgIHJldHVybiBzbnByaW50ZiAocywg
bGVuLCBOTlBGU19DQUNIRV9GSUxFX0RJUl9QQVRILA0KIAkJICAgICBlbnRy
eS0+aW5kZXggLyAweDEwMCwgZW50cnktPmluZGV4ICUgMHgxMDApOw0KIH0N
CiANCkBAIC04MTUsNyArODE1LDcgQEAgZmNhY2hlX2ZoZ2V0IChjaGFyICpm
aWxlbmFtZSwgZmNhY2hlX2NhYw0KIAlpbnQgcmV0LCBhLCBiOw0KIAljaGFy
IGJ1ZlsxMDI0XTsNCiANCi0JcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCAiJTAy
WC8lMDJYIiwgJmEsICZiKTsNCisJcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCBO
TlBGU19DQUNIRV9GSUxFX0RJUl9QQVRILCAmYSwgJmIpOw0KIAlpZiAocmV0
ICE9IDIpDQogCSAgICByZXR1cm4gRUlOVkFMOw0KIA0KQEAgLTgyNCw3ICs4
MjQsNyBAQCBmY2FjaGVfZmhnZXQgKGNoYXIgKmZpbGVuYW1lLCBmY2FjaGVf
Y2FjDQogCQ0KIAlyZXQgPSBzbnByaW50ZigoY2hhciAqKWhhbmRsZS0+bm5w
ZnNfaGFuZGxlLCANCiAJCSAgICAgICBzaXplb2YoaGFuZGxlLT5ubnBmc19o
YW5kbGUpLA0KLQkJICAgICAgICIlc1xcJTAyWFxcJTAyWCIsIGJ1ZiwgYSwg
Yik7DQorCQkgICAgICAgIiVzXFwiIE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BB
VEgsIGJ1ZiwgYSwgYik7DQogDQogCWlmIChyZXQgPiAwICYmIHJldCA8IHNp
emVvZihoYW5kbGUtPm5ucGZzX2hhbmRsZSkpDQogCSAgICBoYW5kbGUtPnZh
bGlkID0gMTsNCg==

---276651502-552710021-1458350867=:21643
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-552710021-1458350867=:21643--

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